]> git.ipfire.org Git - thirdparty/grsecurity-scrape.git/blob - test/grsecurity-3.1-4.4.5-201603102309.patch
Auto commit, 1 new patch{es}.
[thirdparty/grsecurity-scrape.git] / test / grsecurity-3.1-4.4.5-201603102309.patch
1 diff --git a/Documentation/dontdiff b/Documentation/dontdiff
2 index 8ea834f..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 @@ -166,12 +186,14 @@ machtypes.h
139 map
140 map_hugetlb
141 mconf
142 +mdp
143 miboot*
144 mk_elfconfig
145 mkboot
146 mkbugboot
147 mkcpustr
148 mkdep
149 +mkpiggy
150 mkprep
151 mkregtable
152 mktables
153 @@ -187,6 +209,8 @@ oui.c*
154 page-types
155 parse.c
156 parse.h
157 +parse-events*
158 +pasyms.h
159 patches*
160 pca200e.bin
161 pca200e_ecd.bin2
162 @@ -196,6 +220,7 @@ perf-archive
163 piggyback
164 piggy.gzip
165 piggy.S
166 +pmu-*
167 pnmtologo
168 ppc_defs.h*
169 pss_boot.h
170 @@ -205,7 +230,12 @@ r200_reg_safe.h
171 r300_reg_safe.h
172 r420_reg_safe.h
173 r600_reg_safe.h
174 +randomize_layout_hash.h
175 +randomize_layout_seed.h
176 +realmode.lds
177 +realmode.relocs
178 recordmcount
179 +regdb.c
180 relocs
181 rlim_names.h
182 rn50_reg_safe.h
183 @@ -215,8 +245,12 @@ series
184 setup
185 setup.bin
186 setup.elf
187 +signing_key*
188 +size_overflow_hash.h
189 sImage
190 +slabinfo
191 sm_tbl*
192 +sortextable
193 split-include
194 syscalltab.h
195 tables.c
196 @@ -226,6 +260,7 @@ tftpboot.img
197 timeconst.h
198 times.h*
199 trix_boot.h
200 +user_constants.h
201 utsrelease.h*
202 vdso-syms.lds
203 vdso.lds
204 @@ -237,13 +272,17 @@ vdso32.lds
205 vdso32.so.dbg
206 vdso64.lds
207 vdso64.so.dbg
208 +vdsox32.lds
209 +vdsox32-syms.lds
210 version.h*
211 vmImage
212 vmlinux
213 vmlinux-*
214 vmlinux.aout
215 vmlinux.bin.all
216 +vmlinux.bin.bz2
217 vmlinux.lds
218 +vmlinux.relocs
219 vmlinuz
220 voffset.h
221 vsyscall.lds
222 @@ -251,9 +290,12 @@ vsyscall_32.lds
223 wanxlfw.inc
224 uImage
225 unifdef
226 +utsrelease.h
227 wakeup.bin
228 wakeup.elf
229 wakeup.lds
230 +x509*
231 zImage*
232 zconf.hash.c
233 +zconf.lex.c
234 zoffset.h
235 diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt
236 index 13f888a..250729b 100644
237 --- a/Documentation/kbuild/makefiles.txt
238 +++ b/Documentation/kbuild/makefiles.txt
239 @@ -23,10 +23,11 @@ This document describes the Linux kernel Makefiles.
240 === 4 Host Program support
241 --- 4.1 Simple Host Program
242 --- 4.2 Composite Host Programs
243 - --- 4.3 Using C++ for host programs
244 - --- 4.4 Controlling compiler options for host programs
245 - --- 4.5 When host programs are actually built
246 - --- 4.6 Using hostprogs-$(CONFIG_FOO)
247 + --- 4.3 Defining shared libraries
248 + --- 4.4 Using C++ for host programs
249 + --- 4.5 Controlling compiler options for host programs
250 + --- 4.6 When host programs are actually built
251 + --- 4.7 Using hostprogs-$(CONFIG_FOO)
252
253 === 5 Kbuild clean infrastructure
254
255 @@ -643,7 +644,29 @@ Both possibilities are described in the following.
256 Finally, the two .o files are linked to the executable, lxdialog.
257 Note: The syntax <executable>-y is not permitted for host-programs.
258
259 ---- 4.3 Using C++ for host programs
260 +--- 4.3 Defining shared libraries
261 +
262 + Objects with extension .so are considered shared libraries, and
263 + will be compiled as position independent objects.
264 + Kbuild provides support for shared libraries, but the usage
265 + shall be restricted.
266 + In the following example the libkconfig.so shared library is used
267 + to link the executable conf.
268 +
269 + Example:
270 + #scripts/kconfig/Makefile
271 + hostprogs-y := conf
272 + conf-objs := conf.o libkconfig.so
273 + libkconfig-objs := expr.o type.o
274 +
275 + Shared libraries always require a corresponding -objs line, and
276 + in the example above the shared library libkconfig is composed by
277 + the two objects expr.o and type.o.
278 + expr.o and type.o will be built as position independent code and
279 + linked as a shared library libkconfig.so. C++ is not supported for
280 + shared libraries.
281 +
282 +--- 4.4 Using C++ for host programs
283
284 kbuild offers support for host programs written in C++. This was
285 introduced solely to support kconfig, and is not recommended
286 @@ -666,7 +689,7 @@ Both possibilities are described in the following.
287 qconf-cxxobjs := qconf.o
288 qconf-objs := check.o
289
290 ---- 4.4 Controlling compiler options for host programs
291 +--- 4.5 Controlling compiler options for host programs
292
293 When compiling host programs, it is possible to set specific flags.
294 The programs will always be compiled utilising $(HOSTCC) passed
295 @@ -694,7 +717,7 @@ Both possibilities are described in the following.
296 When linking qconf, it will be passed the extra option
297 "-L$(QTDIR)/lib".
298
299 ---- 4.5 When host programs are actually built
300 +--- 4.6 When host programs are actually built
301
302 Kbuild will only build host-programs when they are referenced
303 as a prerequisite.
304 @@ -725,7 +748,7 @@ Both possibilities are described in the following.
305 This will tell kbuild to build lxdialog even if not referenced in
306 any rule.
307
308 ---- 4.6 Using hostprogs-$(CONFIG_FOO)
309 +--- 4.7 Using hostprogs-$(CONFIG_FOO)
310
311 A typical pattern in a Kbuild file looks like this:
312
313 diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
314 index 742f69d..541f1c4 100644
315 --- a/Documentation/kernel-parameters.txt
316 +++ b/Documentation/kernel-parameters.txt
317 @@ -1282,6 +1282,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
318 [KNL] Should the hard-lockup detector generate
319 backtraces on all cpus.
320 Format: <integer>
321 + grsec_proc_gid= [GRKERNSEC_PROC_USERGROUP] Chooses GID to
322 + ignore grsecurity's /proc restrictions
323 +
324 + grsec_sysfs_restrict= Format: 0 | 1
325 + Default: 1
326 + Disables GRKERNSEC_SYSFS_RESTRICT if enabled in config
327
328 hashdist= [KNL,NUMA] Large hashes allocated during boot
329 are distributed across NUMA nodes. Defaults on
330 @@ -2418,6 +2424,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
331 noexec=on: enable non-executable mappings (default)
332 noexec=off: disable non-executable mappings
333
334 + nopcid [X86-64]
335 + Disable PCID (Process-Context IDentifier) even if it
336 + is supported by the processor.
337 +
338 nosmap [X86]
339 Disable SMAP (Supervisor Mode Access Prevention)
340 even if it is supported by processor.
341 @@ -2716,6 +2726,35 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
342 the specified number of seconds. This is to be used if
343 your oopses keep scrolling off the screen.
344
345 + pax_nouderef [X86] disables UDEREF. Most likely needed under certain
346 + virtualization environments that don't cope well with the
347 + expand down segment used by UDEREF on X86-32 or the frequent
348 + page table updates on X86-64.
349 +
350 + pax_sanitize_slab=
351 + Format: { 0 | 1 | off | fast | full }
352 + Options '0' and '1' are only provided for backward
353 + compatibility, 'off' or 'fast' should be used instead.
354 + 0|off : disable slab object sanitization
355 + 1|fast: enable slab object sanitization excluding
356 + whitelisted slabs (default)
357 + full : sanitize all slabs, even the whitelisted ones
358 +
359 + pax_softmode= 0/1 to disable/enable PaX softmode on boot already.
360 +
361 + pax_extra_latent_entropy
362 + Enable a very simple form of latent entropy extraction
363 + from the first 4GB of memory as the bootmem allocator
364 + passes the memory pages to the buddy allocator.
365 +
366 + pax_size_overflow_report_only
367 + Enables rate-limited logging of size_overflow plugin
368 + violations while disabling killing of the violating
369 + task.
370 +
371 + pax_weakuderef [X86-64] enables the weaker but faster form of UDEREF
372 + when the processor supports PCID.
373 +
374 pcbit= [HW,ISDN]
375
376 pcd. [PARIDE]
377 diff --git a/Documentation/sysctl/fs.txt b/Documentation/sysctl/fs.txt
378 index 88152f2..302b5ed 100644
379 --- a/Documentation/sysctl/fs.txt
380 +++ b/Documentation/sysctl/fs.txt
381 @@ -32,6 +32,8 @@ Currently, these files are in /proc/sys/fs:
382 - nr_open
383 - overflowuid
384 - overflowgid
385 +- pipe-user-pages-hard
386 +- pipe-user-pages-soft
387 - protected_hardlinks
388 - protected_symlinks
389 - suid_dumpable
390 @@ -159,6 +161,27 @@ The default is 65534.
391
392 ==============================================================
393
394 +pipe-user-pages-hard:
395 +
396 +Maximum total number of pages a non-privileged user may allocate for pipes.
397 +Once this limit is reached, no new pipes may be allocated until usage goes
398 +below the limit again. When set to 0, no limit is applied, which is the default
399 +setting.
400 +
401 +==============================================================
402 +
403 +pipe-user-pages-soft:
404 +
405 +Maximum total number of pages a non-privileged user may allocate for pipes
406 +before the pipe size gets limited to a single page. Once this limit is reached,
407 +new pipes will be limited to a single page in size for this user in order to
408 +limit total memory usage, and trying to increase them using fcntl() will be
409 +denied until usage goes below the limit again. The default value allows to
410 +allocate up to 1024 pipes at their default size. When set to 0, no limit is
411 +applied.
412 +
413 +==============================================================
414 +
415 protected_hardlinks:
416
417 A long-standing class of security issues is the hardlink-based
418 diff --git a/Documentation/sysctl/kernel.txt b/Documentation/sysctl/kernel.txt
419 index af70d15..ccd3786 100644
420 --- a/Documentation/sysctl/kernel.txt
421 +++ b/Documentation/sysctl/kernel.txt
422 @@ -42,6 +42,7 @@ show up in /proc/sys/kernel:
423 - kptr_restrict
424 - kstack_depth_to_print [ X86 only ]
425 - l2cr [ PPC only ]
426 +- modify_ldt [ X86 only ]
427 - modprobe ==> Documentation/debugging-modules.txt
428 - modules_disabled
429 - msg_next_id [ sysv ipc ]
430 @@ -403,6 +404,20 @@ This flag controls the L2 cache of G3 processor boards. If
431
432 ==============================================================
433
434 +modify_ldt: (X86 only)
435 +
436 +Enables (1) or disables (0) the modify_ldt syscall. Modifying the LDT
437 +(Local Descriptor Table) may be needed to run a 16-bit or segmented code
438 +such as Dosemu or Wine. This is done via a system call which is not needed
439 +to run portable applications, and which can sometimes be abused to exploit
440 +some weaknesses of the architecture, opening new vulnerabilities.
441 +
442 +This sysctl allows one to increase the system's security by disabling the
443 +system call, or to restore compatibility with specific applications when it
444 +was already disabled.
445 +
446 +==============================================================
447 +
448 modules_disabled:
449
450 A toggle value indicating if modules are allowed to be loaded
451 diff --git a/Makefile b/Makefile
452 index d13322a..6eaab55 100644
453 --- a/Makefile
454 +++ b/Makefile
455 @@ -298,7 +298,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
456 HOSTCC = gcc
457 HOSTCXX = g++
458 HOSTCFLAGS = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89
459 -HOSTCXXFLAGS = -O2
460 +HOSTCFLAGS = -W -Wno-unused-parameter -Wno-missing-field-initializers -fno-delete-null-pointer-checks
461 +HOSTCFLAGS += $(call cc-option, -Wno-empty-body)
462 +HOSTCXXFLAGS = -O2 -Wall -W -Wno-array-bounds
463
464 ifeq ($(shell $(HOSTCC) -v 2>&1 | grep -c "clang version"), 1)
465 HOSTCFLAGS += -Wno-unused-value -Wno-unused-parameter \
466 @@ -434,8 +436,8 @@ export RCS_TAR_IGNORE := --exclude SCCS --exclude BitKeeper --exclude .svn \
467 # Rules shared between *config targets and build targets
468
469 # Basic helpers built in scripts/
470 -PHONY += scripts_basic
471 -scripts_basic:
472 +PHONY += scripts_basic gcc-plugins
473 +scripts_basic: gcc-plugins
474 $(Q)$(MAKE) $(build)=scripts/basic
475 $(Q)rm -f .tmp_quiet_recordmcount
476
477 @@ -616,6 +618,8 @@ endif
478 # Tell gcc to never replace conditional load with a non-conditional one
479 KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0)
480
481 +include scripts/Makefile.gcc-plugins
482 +
483 ifdef CONFIG_READABLE_ASM
484 # Disable optimizations that make assembler listings hard to read.
485 # reorder blocks reorders the control in the function
486 @@ -708,7 +712,7 @@ KBUILD_CFLAGS += $(call cc-option, -gsplit-dwarf, -g)
487 else
488 KBUILD_CFLAGS += -g
489 endif
490 -KBUILD_AFLAGS += -Wa,-gdwarf-2
491 +KBUILD_AFLAGS += -Wa,--gdwarf-2
492 endif
493 ifdef CONFIG_DEBUG_INFO_DWARF4
494 KBUILD_CFLAGS += $(call cc-option, -gdwarf-4,)
495 @@ -879,7 +883,7 @@ export mod_sign_cmd
496
497
498 ifeq ($(KBUILD_EXTMOD),)
499 -core-y += kernel/ certs/ mm/ fs/ ipc/ security/ crypto/ block/
500 +core-y += kernel/ certs/ mm/ fs/ ipc/ security/ crypto/ block/ grsecurity/
501
502 vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \
503 $(core-y) $(core-m) $(drivers-y) $(drivers-m) \
504 @@ -930,6 +934,8 @@ endif
505
506 # The actual objects are generated when descending,
507 # make sure no implicit rule kicks in
508 +$(filter-out $(init-y),$(vmlinux-deps)): KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
509 +$(filter-out $(init-y),$(vmlinux-deps)): KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
510 $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
511
512 # Handle descending into subdirectories listed in $(vmlinux-dirs)
513 @@ -939,7 +945,7 @@ $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
514 # Error messages still appears in the original language
515
516 PHONY += $(vmlinux-dirs)
517 -$(vmlinux-dirs): prepare scripts
518 +$(vmlinux-dirs): gcc-plugins prepare scripts
519 $(Q)$(MAKE) $(build)=$@
520
521 define filechk_kernel.release
522 @@ -982,10 +988,13 @@ prepare1: prepare2 $(version_h) include/generated/utsrelease.h \
523
524 archprepare: archheaders archscripts prepare1 scripts_basic
525
526 +prepare0: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
527 +prepare0: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
528 prepare0: archprepare FORCE
529 $(Q)$(MAKE) $(build)=.
530
531 # All the preparing..
532 +prepare: KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS))
533 prepare: prepare0
534
535 # Generate some files
536 @@ -1096,6 +1105,8 @@ all: modules
537 # using awk while concatenating to the final file.
538
539 PHONY += modules
540 +modules: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
541 +modules: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
542 modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
543 $(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order
544 @$(kecho) ' Building modules, stage 2.';
545 @@ -1111,7 +1122,7 @@ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin)
546
547 # Target to prepare building external modules
548 PHONY += modules_prepare
549 -modules_prepare: prepare scripts
550 +modules_prepare: gcc-plugins prepare scripts
551
552 # Target to install modules
553 PHONY += modules_install
554 @@ -1177,7 +1188,11 @@ MRPROPER_FILES += .config .config.old .version .old_version \
555 Module.symvers tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS \
556 signing_key.pem signing_key.priv signing_key.x509 \
557 x509.genkey extra_certificates signing_key.x509.keyid \
558 - signing_key.x509.signer vmlinux-gdb.py
559 + signing_key.x509.signer vmlinux-gdb.py \
560 + tools/gcc/size_overflow_plugin/size_overflow_hash_aux.h \
561 + tools/gcc/size_overflow_plugin/size_overflow_hash.h \
562 + tools/gcc/size_overflow_plugin/disable_size_overflow_hash.h \
563 + tools/gcc/randomize_layout_seed.h
564
565 # clean - Delete most, but leave enough to build external modules
566 #
567 @@ -1216,7 +1231,7 @@ distclean: mrproper
568 @find $(srctree) $(RCS_FIND_IGNORE) \
569 \( -name '*.orig' -o -name '*.rej' -o -name '*~' \
570 -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
571 - -o -name '.*.rej' -o -name '*%' -o -name 'core' \) \
572 + -o -name '.*.rej' -o -name '*.so' -o -name '*%' -o -name 'core' \) \
573 -type f -print | xargs rm -f
574
575
576 @@ -1383,6 +1398,8 @@ PHONY += $(module-dirs) modules
577 $(module-dirs): crmodverdir $(objtree)/Module.symvers
578 $(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@)
579
580 +modules: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
581 +modules: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
582 modules: $(module-dirs)
583 @$(kecho) ' Building modules, stage 2.';
584 $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
585 @@ -1524,17 +1541,21 @@ else
586 target-dir = $(if $(KBUILD_EXTMOD),$(dir $<),$(dir $@))
587 endif
588
589 -%.s: %.c prepare scripts FORCE
590 +%.s: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
591 +%.s: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
592 +%.s: %.c gcc-plugins prepare scripts FORCE
593 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
594 %.i: %.c prepare scripts FORCE
595 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
596 -%.o: %.c prepare scripts FORCE
597 +%.o: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
598 +%.o: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
599 +%.o: %.c gcc-plugins prepare scripts FORCE
600 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
601 %.lst: %.c prepare scripts FORCE
602 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
603 -%.s: %.S prepare scripts FORCE
604 +%.s: %.S gcc-plugins prepare scripts FORCE
605 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
606 -%.o: %.S prepare scripts FORCE
607 +%.o: %.S gcc-plugins prepare scripts FORCE
608 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
609 %.symtypes: %.c prepare scripts FORCE
610 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
611 @@ -1546,11 +1567,15 @@ endif
612 $(build)=$(build-dir)
613 # Make sure the latest headers are built for Documentation
614 Documentation/: headers_install
615 -%/: prepare scripts FORCE
616 +%/: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
617 +%/: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
618 +%/: gcc-plugins prepare scripts FORCE
619 $(cmd_crmodverdir)
620 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
621 $(build)=$(build-dir)
622 -%.ko: prepare scripts FORCE
623 +%.ko: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
624 +%.ko: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
625 +%.ko: gcc-plugins prepare scripts FORCE
626 $(cmd_crmodverdir)
627 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
628 $(build)=$(build-dir) $(@:.ko=.o)
629 diff --git a/arch/alpha/include/asm/atomic.h b/arch/alpha/include/asm/atomic.h
630 index 572b228..e03acdd 100644
631 --- a/arch/alpha/include/asm/atomic.h
632 +++ b/arch/alpha/include/asm/atomic.h
633 @@ -251,4 +251,14 @@ static inline long atomic64_dec_if_positive(atomic64_t *v)
634 #define atomic_dec(v) atomic_sub(1,(v))
635 #define atomic64_dec(v) atomic64_sub(1,(v))
636
637 +#define atomic64_read_unchecked(v) atomic64_read(v)
638 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
639 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
640 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
641 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
642 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
643 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
644 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
645 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
646 +
647 #endif /* _ALPHA_ATOMIC_H */
648 diff --git a/arch/alpha/include/asm/cache.h b/arch/alpha/include/asm/cache.h
649 index ad368a9..fbe0f25 100644
650 --- a/arch/alpha/include/asm/cache.h
651 +++ b/arch/alpha/include/asm/cache.h
652 @@ -4,19 +4,19 @@
653 #ifndef __ARCH_ALPHA_CACHE_H
654 #define __ARCH_ALPHA_CACHE_H
655
656 +#include <linux/const.h>
657
658 /* Bytes per L1 (data) cache line. */
659 #if defined(CONFIG_ALPHA_GENERIC) || defined(CONFIG_ALPHA_EV6)
660 -# define L1_CACHE_BYTES 64
661 # define L1_CACHE_SHIFT 6
662 #else
663 /* Both EV4 and EV5 are write-through, read-allocate,
664 direct-mapped, physical.
665 */
666 -# define L1_CACHE_BYTES 32
667 # define L1_CACHE_SHIFT 5
668 #endif
669
670 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
671 #define SMP_CACHE_BYTES L1_CACHE_BYTES
672
673 #endif
674 diff --git a/arch/alpha/include/asm/elf.h b/arch/alpha/include/asm/elf.h
675 index 968d999..d36b2df 100644
676 --- a/arch/alpha/include/asm/elf.h
677 +++ b/arch/alpha/include/asm/elf.h
678 @@ -91,6 +91,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
679
680 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x1000000)
681
682 +#ifdef CONFIG_PAX_ASLR
683 +#define PAX_ELF_ET_DYN_BASE (current->personality & ADDR_LIMIT_32BIT ? 0x10000 : 0x120000000UL)
684 +
685 +#define PAX_DELTA_MMAP_LEN (current->personality & ADDR_LIMIT_32BIT ? 14 : 28)
686 +#define PAX_DELTA_STACK_LEN (current->personality & ADDR_LIMIT_32BIT ? 14 : 19)
687 +#endif
688 +
689 /* $0 is set by ld.so to a pointer to a function which might be
690 registered using atexit. This provides a mean for the dynamic
691 linker to call DT_FINI functions for shared libraries that have
692 diff --git a/arch/alpha/include/asm/pgalloc.h b/arch/alpha/include/asm/pgalloc.h
693 index aab14a0..b4fa3e7 100644
694 --- a/arch/alpha/include/asm/pgalloc.h
695 +++ b/arch/alpha/include/asm/pgalloc.h
696 @@ -29,6 +29,12 @@ pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
697 pgd_set(pgd, pmd);
698 }
699
700 +static inline void
701 +pgd_populate_kernel(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
702 +{
703 + pgd_populate(mm, pgd, pmd);
704 +}
705 +
706 extern pgd_t *pgd_alloc(struct mm_struct *mm);
707
708 static inline void
709 diff --git a/arch/alpha/include/asm/pgtable.h b/arch/alpha/include/asm/pgtable.h
710 index a9a1195..e9b8417 100644
711 --- a/arch/alpha/include/asm/pgtable.h
712 +++ b/arch/alpha/include/asm/pgtable.h
713 @@ -101,6 +101,17 @@ struct vm_area_struct;
714 #define PAGE_SHARED __pgprot(_PAGE_VALID | __ACCESS_BITS)
715 #define PAGE_COPY __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW)
716 #define PAGE_READONLY __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW)
717 +
718 +#ifdef CONFIG_PAX_PAGEEXEC
719 +# define PAGE_SHARED_NOEXEC __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOE)
720 +# define PAGE_COPY_NOEXEC __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW | _PAGE_FOE)
721 +# define PAGE_READONLY_NOEXEC __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW | _PAGE_FOE)
722 +#else
723 +# define PAGE_SHARED_NOEXEC PAGE_SHARED
724 +# define PAGE_COPY_NOEXEC PAGE_COPY
725 +# define PAGE_READONLY_NOEXEC PAGE_READONLY
726 +#endif
727 +
728 #define PAGE_KERNEL __pgprot(_PAGE_VALID | _PAGE_ASM | _PAGE_KRE | _PAGE_KWE)
729
730 #define _PAGE_NORMAL(x) __pgprot(_PAGE_VALID | __ACCESS_BITS | (x))
731 diff --git a/arch/alpha/kernel/module.c b/arch/alpha/kernel/module.c
732 index 2fd00b7..cfd5069 100644
733 --- a/arch/alpha/kernel/module.c
734 +++ b/arch/alpha/kernel/module.c
735 @@ -160,7 +160,7 @@ apply_relocate_add(Elf64_Shdr *sechdrs, const char *strtab,
736
737 /* The small sections were sorted to the end of the segment.
738 The following should definitely cover them. */
739 - gp = (u64)me->module_core + me->core_size - 0x8000;
740 + gp = (u64)me->module_core_rw + me->core_size_rw - 0x8000;
741 got = sechdrs[me->arch.gotsecindex].sh_addr;
742
743 for (i = 0; i < n; i++) {
744 diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c
745 index 6cc0816..3dd424d 100644
746 --- a/arch/alpha/kernel/osf_sys.c
747 +++ b/arch/alpha/kernel/osf_sys.c
748 @@ -1300,10 +1300,11 @@ SYSCALL_DEFINE1(old_adjtimex, struct timex32 __user *, txc_p)
749 generic version except that we know how to honor ADDR_LIMIT_32BIT. */
750
751 static unsigned long
752 -arch_get_unmapped_area_1(unsigned long addr, unsigned long len,
753 - unsigned long limit)
754 +arch_get_unmapped_area_1(struct file *filp, unsigned long addr, unsigned long len,
755 + unsigned long limit, unsigned long flags)
756 {
757 struct vm_unmapped_area_info info;
758 + unsigned long offset = gr_rand_threadstack_offset(current->mm, filp, flags);
759
760 info.flags = 0;
761 info.length = len;
762 @@ -1311,6 +1312,7 @@ arch_get_unmapped_area_1(unsigned long addr, unsigned long len,
763 info.high_limit = limit;
764 info.align_mask = 0;
765 info.align_offset = 0;
766 + info.threadstack_offset = offset;
767 return vm_unmapped_area(&info);
768 }
769
770 @@ -1343,20 +1345,24 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
771 merely specific addresses, but regions of memory -- perhaps
772 this feature should be incorporated into all ports? */
773
774 +#ifdef CONFIG_PAX_RANDMMAP
775 + if (!(current->mm->pax_flags & MF_PAX_RANDMMAP))
776 +#endif
777 +
778 if (addr) {
779 - addr = arch_get_unmapped_area_1 (PAGE_ALIGN(addr), len, limit);
780 + addr = arch_get_unmapped_area_1 (filp, PAGE_ALIGN(addr), len, limit, flags);
781 if (addr != (unsigned long) -ENOMEM)
782 return addr;
783 }
784
785 /* Next, try allocating at TASK_UNMAPPED_BASE. */
786 - addr = arch_get_unmapped_area_1 (PAGE_ALIGN(TASK_UNMAPPED_BASE),
787 - len, limit);
788 + addr = arch_get_unmapped_area_1 (filp, PAGE_ALIGN(current->mm->mmap_base), len, limit, flags);
789 +
790 if (addr != (unsigned long) -ENOMEM)
791 return addr;
792
793 /* Finally, try allocating in low memory. */
794 - addr = arch_get_unmapped_area_1 (PAGE_SIZE, len, limit);
795 + addr = arch_get_unmapped_area_1 (filp, PAGE_SIZE, len, limit, flags);
796
797 return addr;
798 }
799 diff --git a/arch/alpha/mm/fault.c b/arch/alpha/mm/fault.c
800 index 4a905bd..0a4da53 100644
801 --- a/arch/alpha/mm/fault.c
802 +++ b/arch/alpha/mm/fault.c
803 @@ -52,6 +52,124 @@ __load_new_mm_context(struct mm_struct *next_mm)
804 __reload_thread(pcb);
805 }
806
807 +#ifdef CONFIG_PAX_PAGEEXEC
808 +/*
809 + * PaX: decide what to do with offenders (regs->pc = fault address)
810 + *
811 + * returns 1 when task should be killed
812 + * 2 when patched PLT trampoline was detected
813 + * 3 when unpatched PLT trampoline was detected
814 + */
815 +static int pax_handle_fetch_fault(struct pt_regs *regs)
816 +{
817 +
818 +#ifdef CONFIG_PAX_EMUPLT
819 + int err;
820 +
821 + do { /* PaX: patched PLT emulation #1 */
822 + unsigned int ldah, ldq, jmp;
823 +
824 + err = get_user(ldah, (unsigned int *)regs->pc);
825 + err |= get_user(ldq, (unsigned int *)(regs->pc+4));
826 + err |= get_user(jmp, (unsigned int *)(regs->pc+8));
827 +
828 + if (err)
829 + break;
830 +
831 + if ((ldah & 0xFFFF0000U) == 0x277B0000U &&
832 + (ldq & 0xFFFF0000U) == 0xA77B0000U &&
833 + jmp == 0x6BFB0000U)
834 + {
835 + unsigned long r27, addr;
836 + unsigned long addrh = (ldah | 0xFFFFFFFFFFFF0000UL) << 16;
837 + unsigned long addrl = ldq | 0xFFFFFFFFFFFF0000UL;
838 +
839 + addr = regs->r27 + ((addrh ^ 0x80000000UL) + 0x80000000UL) + ((addrl ^ 0x8000UL) + 0x8000UL);
840 + err = get_user(r27, (unsigned long *)addr);
841 + if (err)
842 + break;
843 +
844 + regs->r27 = r27;
845 + regs->pc = r27;
846 + return 2;
847 + }
848 + } while (0);
849 +
850 + do { /* PaX: patched PLT emulation #2 */
851 + unsigned int ldah, lda, br;
852 +
853 + err = get_user(ldah, (unsigned int *)regs->pc);
854 + err |= get_user(lda, (unsigned int *)(regs->pc+4));
855 + err |= get_user(br, (unsigned int *)(regs->pc+8));
856 +
857 + if (err)
858 + break;
859 +
860 + if ((ldah & 0xFFFF0000U) == 0x277B0000U &&
861 + (lda & 0xFFFF0000U) == 0xA77B0000U &&
862 + (br & 0xFFE00000U) == 0xC3E00000U)
863 + {
864 + unsigned long addr = br | 0xFFFFFFFFFFE00000UL;
865 + unsigned long addrh = (ldah | 0xFFFFFFFFFFFF0000UL) << 16;
866 + unsigned long addrl = lda | 0xFFFFFFFFFFFF0000UL;
867 +
868 + regs->r27 += ((addrh ^ 0x80000000UL) + 0x80000000UL) + ((addrl ^ 0x8000UL) + 0x8000UL);
869 + regs->pc += 12 + (((addr ^ 0x00100000UL) + 0x00100000UL) << 2);
870 + return 2;
871 + }
872 + } while (0);
873 +
874 + do { /* PaX: unpatched PLT emulation */
875 + unsigned int br;
876 +
877 + err = get_user(br, (unsigned int *)regs->pc);
878 +
879 + if (!err && (br & 0xFFE00000U) == 0xC3800000U) {
880 + unsigned int br2, ldq, nop, jmp;
881 + unsigned long addr = br | 0xFFFFFFFFFFE00000UL, resolver;
882 +
883 + addr = regs->pc + 4 + (((addr ^ 0x00100000UL) + 0x00100000UL) << 2);
884 + err = get_user(br2, (unsigned int *)addr);
885 + err |= get_user(ldq, (unsigned int *)(addr+4));
886 + err |= get_user(nop, (unsigned int *)(addr+8));
887 + err |= get_user(jmp, (unsigned int *)(addr+12));
888 + err |= get_user(resolver, (unsigned long *)(addr+16));
889 +
890 + if (err)
891 + break;
892 +
893 + if (br2 == 0xC3600000U &&
894 + ldq == 0xA77B000CU &&
895 + nop == 0x47FF041FU &&
896 + jmp == 0x6B7B0000U)
897 + {
898 + regs->r28 = regs->pc+4;
899 + regs->r27 = addr+16;
900 + regs->pc = resolver;
901 + return 3;
902 + }
903 + }
904 + } while (0);
905 +#endif
906 +
907 + return 1;
908 +}
909 +
910 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
911 +{
912 + unsigned long i;
913 +
914 + printk(KERN_ERR "PAX: bytes at PC: ");
915 + for (i = 0; i < 5; i++) {
916 + unsigned int c;
917 + if (get_user(c, (unsigned int *)pc+i))
918 + printk(KERN_CONT "???????? ");
919 + else
920 + printk(KERN_CONT "%08x ", c);
921 + }
922 + printk("\n");
923 +}
924 +#endif
925
926 /*
927 * This routine handles page faults. It determines the address,
928 @@ -132,8 +250,29 @@ retry:
929 good_area:
930 si_code = SEGV_ACCERR;
931 if (cause < 0) {
932 - if (!(vma->vm_flags & VM_EXEC))
933 + if (!(vma->vm_flags & VM_EXEC)) {
934 +
935 +#ifdef CONFIG_PAX_PAGEEXEC
936 + if (!(mm->pax_flags & MF_PAX_PAGEEXEC) || address != regs->pc)
937 + goto bad_area;
938 +
939 + up_read(&mm->mmap_sem);
940 + switch (pax_handle_fetch_fault(regs)) {
941 +
942 +#ifdef CONFIG_PAX_EMUPLT
943 + case 2:
944 + case 3:
945 + return;
946 +#endif
947 +
948 + }
949 + pax_report_fault(regs, (void *)regs->pc, (void *)rdusp());
950 + do_group_exit(SIGKILL);
951 +#else
952 goto bad_area;
953 +#endif
954 +
955 + }
956 } else if (!cause) {
957 /* Allow reads even for write-only mappings */
958 if (!(vma->vm_flags & (VM_READ | VM_WRITE)))
959 diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
960 index 6312f60..bd07545 100644
961 --- a/arch/arc/Kconfig
962 +++ b/arch/arc/Kconfig
963 @@ -528,6 +528,7 @@ config ARC_DBG_TLB_MISS_COUNT
964 bool "Profile TLB Misses"
965 default n
966 select DEBUG_FS
967 + depends on !GRKERNSEC_KMEM
968 help
969 Counts number of I and D TLB Misses and exports them via Debugfs
970 The counters can be cleared via Debugfs as well
971 diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
972 index 34e1569..b48ad87 100644
973 --- a/arch/arm/Kconfig
974 +++ b/arch/arm/Kconfig
975 @@ -1690,6 +1690,7 @@ config HIGHPTE
976 config CPU_SW_DOMAIN_PAN
977 bool "Enable use of CPU domains to implement privileged no-access"
978 depends on MMU && !ARM_LPAE
979 + depends on !PAX_KERNEXEC && !PAX_MEMORY_UDEREF
980 default y
981 help
982 Increase kernel security by ensuring that normal kernel accesses
983 @@ -1766,7 +1767,7 @@ config ALIGNMENT_TRAP
984
985 config UACCESS_WITH_MEMCPY
986 bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user()"
987 - depends on MMU
988 + depends on MMU && !PAX_MEMORY_UDEREF
989 default y if CPU_FEROCEON
990 help
991 Implement faster copy_to_user and clear_user methods for CPU
992 @@ -2001,6 +2002,7 @@ config KEXEC
993 depends on (!SMP || PM_SLEEP_SMP)
994 depends on !CPU_V7M
995 select KEXEC_CORE
996 + depends on !GRKERNSEC_KMEM
997 help
998 kexec is a system call that implements the ability to shutdown your
999 current kernel, and to start another kernel. It is like a reboot
1000 diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
1001 index ddbb361..caf403d 100644
1002 --- a/arch/arm/Kconfig.debug
1003 +++ b/arch/arm/Kconfig.debug
1004 @@ -7,6 +7,7 @@ config ARM_PTDUMP
1005 depends on DEBUG_KERNEL
1006 depends on MMU
1007 select DEBUG_FS
1008 + depends on !GRKERNSEC_KMEM
1009 ---help---
1010 Say Y here if you want to show the kernel pagetable layout in a
1011 debugfs file. This information is only useful for kernel developers
1012 diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h
1013 index 9e10c45..24a14ce 100644
1014 --- a/arch/arm/include/asm/atomic.h
1015 +++ b/arch/arm/include/asm/atomic.h
1016 @@ -18,17 +18,41 @@
1017 #include <asm/barrier.h>
1018 #include <asm/cmpxchg.h>
1019
1020 +#ifdef CONFIG_GENERIC_ATOMIC64
1021 +#include <asm-generic/atomic64.h>
1022 +#endif
1023 +
1024 #define ATOMIC_INIT(i) { (i) }
1025
1026 #ifdef __KERNEL__
1027
1028 +#ifdef CONFIG_THUMB2_KERNEL
1029 +#define REFCOUNT_TRAP_INSN "bkpt 0xf1"
1030 +#else
1031 +#define REFCOUNT_TRAP_INSN "bkpt 0xf103"
1032 +#endif
1033 +
1034 +#define _ASM_EXTABLE(from, to) \
1035 +" .pushsection __ex_table,\"a\"\n"\
1036 +" .align 3\n" \
1037 +" .long " #from ", " #to"\n" \
1038 +" .popsection"
1039 +
1040 /*
1041 * On ARM, ordinary assignment (str instruction) doesn't clear the local
1042 * strex/ldrex monitor on some implementations. The reason we can use it for
1043 * atomic_set() is the clrex or dummy strex done on every exception return.
1044 */
1045 #define atomic_read(v) READ_ONCE((v)->counter)
1046 +static inline int atomic_read_unchecked(const atomic_unchecked_t *v)
1047 +{
1048 + return READ_ONCE(v->counter);
1049 +}
1050 #define atomic_set(v,i) WRITE_ONCE(((v)->counter), (i))
1051 +static inline void atomic_set_unchecked(atomic_unchecked_t *v, int i)
1052 +{
1053 + WRITE_ONCE(v->counter, i);
1054 +}
1055
1056 #if __LINUX_ARM_ARCH__ >= 6
1057
1058 @@ -38,38 +62,64 @@
1059 * to ensure that the update happens.
1060 */
1061
1062 -#define ATOMIC_OP(op, c_op, asm_op) \
1063 -static inline void atomic_##op(int i, atomic_t *v) \
1064 +#ifdef CONFIG_PAX_REFCOUNT
1065 +#define __OVERFLOW_POST \
1066 + " bvc 3f\n" \
1067 + "2: " REFCOUNT_TRAP_INSN "\n"\
1068 + "3:\n"
1069 +#define __OVERFLOW_POST_RETURN \
1070 + " bvc 3f\n" \
1071 +" mov %0, %1\n" \
1072 + "2: " REFCOUNT_TRAP_INSN "\n"\
1073 + "3:\n"
1074 +#define __OVERFLOW_EXTABLE \
1075 + "4:\n" \
1076 + _ASM_EXTABLE(2b, 4b)
1077 +#else
1078 +#define __OVERFLOW_POST
1079 +#define __OVERFLOW_POST_RETURN
1080 +#define __OVERFLOW_EXTABLE
1081 +#endif
1082 +
1083 +#define __ATOMIC_OP(op, suffix, c_op, asm_op, post_op, extable) \
1084 +static inline void atomic_##op##suffix(int i, atomic##suffix##_t *v) \
1085 { \
1086 unsigned long tmp; \
1087 int result; \
1088 \
1089 prefetchw(&v->counter); \
1090 - __asm__ __volatile__("@ atomic_" #op "\n" \
1091 + __asm__ __volatile__("@ atomic_" #op #suffix "\n" \
1092 "1: ldrex %0, [%3]\n" \
1093 " " #asm_op " %0, %0, %4\n" \
1094 + post_op \
1095 " strex %1, %0, [%3]\n" \
1096 " teq %1, #0\n" \
1097 -" bne 1b" \
1098 +" bne 1b\n" \
1099 + extable \
1100 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
1101 : "r" (&v->counter), "Ir" (i) \
1102 : "cc"); \
1103 } \
1104
1105 -#define ATOMIC_OP_RETURN(op, c_op, asm_op) \
1106 -static inline int atomic_##op##_return_relaxed(int i, atomic_t *v) \
1107 +#define ATOMIC_OP(op, c_op, asm_op) __ATOMIC_OP(op, _unchecked, c_op, asm_op, , )\
1108 + __ATOMIC_OP(op, , c_op, asm_op##s, __OVERFLOW_POST, __OVERFLOW_EXTABLE)
1109 +
1110 +#define __ATOMIC_OP_RETURN(op, suffix, c_op, asm_op, post_op, extable) \
1111 +static inline int atomic_##op##_return##suffix##_relaxed(int i, atomic##suffix##_t *v)\
1112 { \
1113 unsigned long tmp; \
1114 int result; \
1115 \
1116 prefetchw(&v->counter); \
1117 \
1118 - __asm__ __volatile__("@ atomic_" #op "_return\n" \
1119 + __asm__ __volatile__("@ atomic_" #op "_return" #suffix "\n" \
1120 "1: ldrex %0, [%3]\n" \
1121 " " #asm_op " %0, %0, %4\n" \
1122 + post_op \
1123 " strex %1, %0, [%3]\n" \
1124 " teq %1, #0\n" \
1125 -" bne 1b" \
1126 +" bne 1b\n" \
1127 + extable \
1128 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
1129 : "r" (&v->counter), "Ir" (i) \
1130 : "cc"); \
1131 @@ -78,8 +128,12 @@ static inline int atomic_##op##_return_relaxed(int i, atomic_t *v) \
1132 }
1133
1134 #define atomic_add_return_relaxed atomic_add_return_relaxed
1135 +#define atomic_add_return_unchecked atomic_add_return_unchecked_relaxed
1136 #define atomic_sub_return_relaxed atomic_sub_return_relaxed
1137
1138 +#define ATOMIC_OP_RETURN(op, c_op, asm_op) __ATOMIC_OP_RETURN(op, _unchecked, c_op, asm_op, , )\
1139 + __ATOMIC_OP_RETURN(op, , c_op, asm_op##s, __OVERFLOW_POST_RETURN, __OVERFLOW_EXTABLE)
1140 +
1141 static inline int atomic_cmpxchg_relaxed(atomic_t *ptr, int old, int new)
1142 {
1143 int oldval;
1144 @@ -113,12 +167,24 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
1145 __asm__ __volatile__ ("@ atomic_add_unless\n"
1146 "1: ldrex %0, [%4]\n"
1147 " teq %0, %5\n"
1148 -" beq 2f\n"
1149 -" add %1, %0, %6\n"
1150 +" beq 4f\n"
1151 +" adds %1, %0, %6\n"
1152 +
1153 +#ifdef CONFIG_PAX_REFCOUNT
1154 +" bvc 3f\n"
1155 +"2: " REFCOUNT_TRAP_INSN "\n"
1156 +"3:\n"
1157 +#endif
1158 +
1159 " strex %2, %1, [%4]\n"
1160 " teq %2, #0\n"
1161 " bne 1b\n"
1162 -"2:"
1163 +"4:"
1164 +
1165 +#ifdef CONFIG_PAX_REFCOUNT
1166 + _ASM_EXTABLE(2b, 4b)
1167 +#endif
1168 +
1169 : "=&r" (oldval), "=&r" (newval), "=&r" (tmp), "+Qo" (v->counter)
1170 : "r" (&v->counter), "r" (u), "r" (a)
1171 : "cc");
1172 @@ -129,14 +195,36 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
1173 return oldval;
1174 }
1175
1176 +static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *ptr, int old, int new)
1177 +{
1178 + unsigned long oldval, res;
1179 +
1180 + smp_mb();
1181 +
1182 + do {
1183 + __asm__ __volatile__("@ atomic_cmpxchg_unchecked\n"
1184 + "ldrex %1, [%3]\n"
1185 + "mov %0, #0\n"
1186 + "teq %1, %4\n"
1187 + "strexeq %0, %5, [%3]\n"
1188 + : "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter)
1189 + : "r" (&ptr->counter), "Ir" (old), "r" (new)
1190 + : "cc");
1191 + } while (res);
1192 +
1193 + smp_mb();
1194 +
1195 + return oldval;
1196 +}
1197 +
1198 #else /* ARM_ARCH_6 */
1199
1200 #ifdef CONFIG_SMP
1201 #error SMP not supported on pre-ARMv6 CPUs
1202 #endif
1203
1204 -#define ATOMIC_OP(op, c_op, asm_op) \
1205 -static inline void atomic_##op(int i, atomic_t *v) \
1206 +#define __ATOMIC_OP(op, suffix, c_op, asm_op) \
1207 +static inline void atomic_##op##suffix(int i, atomic##suffix##_t *v) \
1208 { \
1209 unsigned long flags; \
1210 \
1211 @@ -145,8 +233,11 @@ static inline void atomic_##op(int i, atomic_t *v) \
1212 raw_local_irq_restore(flags); \
1213 } \
1214
1215 -#define ATOMIC_OP_RETURN(op, c_op, asm_op) \
1216 -static inline int atomic_##op##_return(int i, atomic_t *v) \
1217 +#define ATOMIC_OP(op, c_op, asm_op) __ATOMIC_OP(op, , c_op, asm_op) \
1218 + __ATOMIC_OP(op, _unchecked, c_op, asm_op)
1219 +
1220 +#define __ATOMIC_OP_RETURN(op, suffix, c_op, asm_op) \
1221 +static inline int atomic_##op##_return##suffix(int i, atomic##suffix##_t *v)\
1222 { \
1223 unsigned long flags; \
1224 int val; \
1225 @@ -159,6 +250,9 @@ static inline int atomic_##op##_return(int i, atomic_t *v) \
1226 return val; \
1227 }
1228
1229 +#define ATOMIC_OP_RETURN(op, c_op, asm_op) __ATOMIC_OP_RETURN(op, , c_op, asm_op)\
1230 + __ATOMIC_OP_RETURN(op, _unchecked, c_op, asm_op)
1231 +
1232 static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
1233 {
1234 int ret;
1235 @@ -173,6 +267,11 @@ static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
1236 return ret;
1237 }
1238
1239 +static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *v, int old, int new)
1240 +{
1241 + return atomic_cmpxchg((atomic_t *)v, old, new);
1242 +}
1243 +
1244 static inline int __atomic_add_unless(atomic_t *v, int a, int u)
1245 {
1246 int c, old;
1247 @@ -201,16 +300,38 @@ ATOMIC_OP(xor, ^=, eor)
1248
1249 #undef ATOMIC_OPS
1250 #undef ATOMIC_OP_RETURN
1251 +#undef __ATOMIC_OP_RETURN
1252 #undef ATOMIC_OP
1253 +#undef __ATOMIC_OP
1254
1255 #define atomic_xchg(v, new) (xchg(&((v)->counter), new))
1256 +static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
1257 +{
1258 + return xchg_relaxed(&v->counter, new);
1259 +}
1260
1261 #define atomic_inc(v) atomic_add(1, v)
1262 +static inline void atomic_inc_unchecked(atomic_unchecked_t *v)
1263 +{
1264 + atomic_add_unchecked(1, v);
1265 +}
1266 #define atomic_dec(v) atomic_sub(1, v)
1267 +static inline void atomic_dec_unchecked(atomic_unchecked_t *v)
1268 +{
1269 + atomic_sub_unchecked(1, v);
1270 +}
1271
1272 #define atomic_inc_and_test(v) (atomic_add_return(1, v) == 0)
1273 +static inline int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
1274 +{
1275 + return atomic_add_return_unchecked(1, v) == 0;
1276 +}
1277 #define atomic_dec_and_test(v) (atomic_sub_return(1, v) == 0)
1278 #define atomic_inc_return_relaxed(v) (atomic_add_return_relaxed(1, v))
1279 +static inline int atomic_inc_return_unchecked_relaxed(atomic_unchecked_t *v)
1280 +{
1281 + return atomic_add_return_unchecked_relaxed(1, v);
1282 +}
1283 #define atomic_dec_return_relaxed(v) (atomic_sub_return_relaxed(1, v))
1284 #define atomic_sub_and_test(i, v) (atomic_sub_return(i, v) == 0)
1285
1286 @@ -221,6 +342,14 @@ typedef struct {
1287 long long counter;
1288 } atomic64_t;
1289
1290 +#ifdef CONFIG_PAX_REFCOUNT
1291 +typedef struct {
1292 + long long counter;
1293 +} atomic64_unchecked_t;
1294 +#else
1295 +typedef atomic64_t atomic64_unchecked_t;
1296 +#endif
1297 +
1298 #define ATOMIC64_INIT(i) { (i) }
1299
1300 #ifdef CONFIG_ARM_LPAE
1301 @@ -237,6 +366,19 @@ static inline long long atomic64_read(const atomic64_t *v)
1302 return result;
1303 }
1304
1305 +static inline long long atomic64_read_unchecked(const atomic64_unchecked_t *v)
1306 +{
1307 + long long result;
1308 +
1309 + __asm__ __volatile__("@ atomic64_read_unchecked\n"
1310 +" ldrd %0, %H0, [%1]"
1311 + : "=&r" (result)
1312 + : "r" (&v->counter), "Qo" (v->counter)
1313 + );
1314 +
1315 + return result;
1316 +}
1317 +
1318 static inline void atomic64_set(atomic64_t *v, long long i)
1319 {
1320 __asm__ __volatile__("@ atomic64_set\n"
1321 @@ -245,6 +387,15 @@ static inline void atomic64_set(atomic64_t *v, long long i)
1322 : "r" (&v->counter), "r" (i)
1323 );
1324 }
1325 +
1326 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long long i)
1327 +{
1328 + __asm__ __volatile__("@ atomic64_set_unchecked\n"
1329 +" strd %2, %H2, [%1]"
1330 + : "=Qo" (v->counter)
1331 + : "r" (&v->counter), "r" (i)
1332 + );
1333 +}
1334 #else
1335 static inline long long atomic64_read(const atomic64_t *v)
1336 {
1337 @@ -259,6 +410,19 @@ static inline long long atomic64_read(const atomic64_t *v)
1338 return result;
1339 }
1340
1341 +static inline long long atomic64_read_unchecked(const atomic64_unchecked_t *v)
1342 +{
1343 + long long result;
1344 +
1345 + __asm__ __volatile__("@ atomic64_read_unchecked\n"
1346 +" ldrexd %0, %H0, [%1]"
1347 + : "=&r" (result)
1348 + : "r" (&v->counter), "Qo" (v->counter)
1349 + );
1350 +
1351 + return result;
1352 +}
1353 +
1354 static inline void atomic64_set(atomic64_t *v, long long i)
1355 {
1356 long long tmp;
1357 @@ -273,43 +437,73 @@ static inline void atomic64_set(atomic64_t *v, long long i)
1358 : "r" (&v->counter), "r" (i)
1359 : "cc");
1360 }
1361 +
1362 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long long i)
1363 +{
1364 + long long tmp;
1365 +
1366 + prefetchw(&v->counter);
1367 + __asm__ __volatile__("@ atomic64_set_unchecked\n"
1368 +"1: ldrexd %0, %H0, [%2]\n"
1369 +" strexd %0, %3, %H3, [%2]\n"
1370 +" teq %0, #0\n"
1371 +" bne 1b"
1372 + : "=&r" (tmp), "=Qo" (v->counter)
1373 + : "r" (&v->counter), "r" (i)
1374 + : "cc");
1375 +}
1376 #endif
1377
1378 -#define ATOMIC64_OP(op, op1, op2) \
1379 -static inline void atomic64_##op(long long i, atomic64_t *v) \
1380 +#undef __OVERFLOW_POST_RETURN
1381 +#define __OVERFLOW_POST_RETURN \
1382 + " bvc 3f\n" \
1383 +" mov %0, %1\n" \
1384 +" mov %H0, %H1\n" \
1385 + "2: " REFCOUNT_TRAP_INSN "\n"\
1386 + "3:\n"
1387 +
1388 +#define __ATOMIC64_OP(op, suffix, op1, op2, post_op, extable) \
1389 +static inline void atomic64_##op##suffix(long long i, atomic64##suffix##_t *v)\
1390 { \
1391 long long result; \
1392 unsigned long tmp; \
1393 \
1394 prefetchw(&v->counter); \
1395 - __asm__ __volatile__("@ atomic64_" #op "\n" \
1396 + __asm__ __volatile__("@ atomic64_" #op #suffix "\n" \
1397 "1: ldrexd %0, %H0, [%3]\n" \
1398 " " #op1 " %Q0, %Q0, %Q4\n" \
1399 " " #op2 " %R0, %R0, %R4\n" \
1400 + post_op \
1401 " strexd %1, %0, %H0, [%3]\n" \
1402 " teq %1, #0\n" \
1403 -" bne 1b" \
1404 +" bne 1b\n" \
1405 + extable \
1406 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
1407 : "r" (&v->counter), "r" (i) \
1408 : "cc"); \
1409 } \
1410
1411 -#define ATOMIC64_OP_RETURN(op, op1, op2) \
1412 +#define ATOMIC64_OP(op, op1, op2) __ATOMIC64_OP(op, _unchecked, op1, op2, , ) \
1413 + __ATOMIC64_OP(op, , op1, op2##s, __OVERFLOW_POST, __OVERFLOW_EXTABLE)
1414 +
1415 +#define __ATOMIC64_OP_RETURN(op, suffix, op1, op2, post_op, extable) \
1416 static inline long long \
1417 -atomic64_##op##_return_relaxed(long long i, atomic64_t *v) \
1418 +atomic64_##op##_return##suffix##_relaxed(long long i, atomic64##suffix##_t *v) \
1419 { \
1420 long long result; \
1421 unsigned long tmp; \
1422 \
1423 prefetchw(&v->counter); \
1424 \
1425 - __asm__ __volatile__("@ atomic64_" #op "_return\n" \
1426 + __asm__ __volatile__("@ atomic64_" #op "_return" #suffix "\n" \
1427 "1: ldrexd %0, %H0, [%3]\n" \
1428 " " #op1 " %Q0, %Q0, %Q4\n" \
1429 " " #op2 " %R0, %R0, %R4\n" \
1430 + post_op \
1431 " strexd %1, %0, %H0, [%3]\n" \
1432 " teq %1, #0\n" \
1433 -" bne 1b" \
1434 +" bne 1b\n" \
1435 + extable \
1436 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
1437 : "r" (&v->counter), "r" (i) \
1438 : "cc"); \
1439 @@ -317,6 +511,9 @@ atomic64_##op##_return_relaxed(long long i, atomic64_t *v) \
1440 return result; \
1441 }
1442
1443 +#define ATOMIC64_OP_RETURN(op, op1, op2) __ATOMIC64_OP_RETURN(op, _unchecked, op1, op2, , ) \
1444 + __ATOMIC64_OP_RETURN(op, , op1, op2##s, __OVERFLOW_POST_RETURN, __OVERFLOW_EXTABLE)
1445 +
1446 #define ATOMIC64_OPS(op, op1, op2) \
1447 ATOMIC64_OP(op, op1, op2) \
1448 ATOMIC64_OP_RETURN(op, op1, op2)
1449 @@ -325,6 +522,7 @@ ATOMIC64_OPS(add, adds, adc)
1450 ATOMIC64_OPS(sub, subs, sbc)
1451
1452 #define atomic64_add_return_relaxed atomic64_add_return_relaxed
1453 +#define atomic64_add_return_unchecked atomic64_add_return_unchecked_relaxed
1454 #define atomic64_sub_return_relaxed atomic64_sub_return_relaxed
1455
1456 #define atomic64_andnot atomic64_andnot
1457 @@ -336,7 +534,12 @@ ATOMIC64_OP(xor, eor, eor)
1458
1459 #undef ATOMIC64_OPS
1460 #undef ATOMIC64_OP_RETURN
1461 +#undef __ATOMIC64_OP_RETURN
1462 #undef ATOMIC64_OP
1463 +#undef __ATOMIC64_OP
1464 +#undef __OVERFLOW_EXTABLE
1465 +#undef __OVERFLOW_POST_RETURN
1466 +#undef __OVERFLOW_POST
1467
1468 static inline long long
1469 atomic64_cmpxchg_relaxed(atomic64_t *ptr, long long old, long long new)
1470 @@ -361,6 +564,33 @@ atomic64_cmpxchg_relaxed(atomic64_t *ptr, long long old, long long new)
1471 return oldval;
1472 }
1473 #define atomic64_cmpxchg_relaxed atomic64_cmpxchg_relaxed
1474 +#define atomic64_cmpxchg_unchecked atomic64_cmpxchg_unchecked_relaxed
1475 +
1476 +static inline long long
1477 +atomic64_cmpxchg_unchecked_relaxed(atomic64_unchecked_t *ptr, long long old,
1478 + long long new)
1479 +{
1480 + long long oldval;
1481 + unsigned long res;
1482 +
1483 + smp_mb();
1484 +
1485 + do {
1486 + __asm__ __volatile__("@ atomic64_cmpxchg_unchecked\n"
1487 + "ldrexd %1, %H1, [%3]\n"
1488 + "mov %0, #0\n"
1489 + "teq %1, %4\n"
1490 + "teqeq %H1, %H4\n"
1491 + "strexdeq %0, %5, %H5, [%3]"
1492 + : "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter)
1493 + : "r" (&ptr->counter), "r" (old), "r" (new)
1494 + : "cc");
1495 + } while (res);
1496 +
1497 + smp_mb();
1498 +
1499 + return oldval;
1500 +}
1501
1502 static inline long long atomic64_xchg_relaxed(atomic64_t *ptr, long long new)
1503 {
1504 @@ -385,21 +615,35 @@ static inline long long atomic64_xchg_relaxed(atomic64_t *ptr, long long new)
1505 static inline long long atomic64_dec_if_positive(atomic64_t *v)
1506 {
1507 long long result;
1508 - unsigned long tmp;
1509 + u64 tmp;
1510
1511 smp_mb();
1512 prefetchw(&v->counter);
1513
1514 __asm__ __volatile__("@ atomic64_dec_if_positive\n"
1515 -"1: ldrexd %0, %H0, [%3]\n"
1516 -" subs %Q0, %Q0, #1\n"
1517 -" sbc %R0, %R0, #0\n"
1518 +"1: ldrexd %1, %H1, [%3]\n"
1519 +" subs %Q0, %Q1, #1\n"
1520 +" sbcs %R0, %R1, #0\n"
1521 +
1522 +#ifdef CONFIG_PAX_REFCOUNT
1523 +" bvc 3f\n"
1524 +" mov %Q0, %Q1\n"
1525 +" mov %R0, %R1\n"
1526 +"2: " REFCOUNT_TRAP_INSN "\n"
1527 +"3:\n"
1528 +#endif
1529 +
1530 " teq %R0, #0\n"
1531 -" bmi 2f\n"
1532 +" bmi 4f\n"
1533 " strexd %1, %0, %H0, [%3]\n"
1534 " teq %1, #0\n"
1535 " bne 1b\n"
1536 -"2:"
1537 +"4:\n"
1538 +
1539 +#ifdef CONFIG_PAX_REFCOUNT
1540 + _ASM_EXTABLE(2b, 4b)
1541 +#endif
1542 +
1543 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
1544 : "r" (&v->counter)
1545 : "cc");
1546 @@ -423,13 +667,25 @@ static inline int atomic64_add_unless(atomic64_t *v, long long a, long long u)
1547 " teq %0, %5\n"
1548 " teqeq %H0, %H5\n"
1549 " moveq %1, #0\n"
1550 -" beq 2f\n"
1551 +" beq 4f\n"
1552 " adds %Q0, %Q0, %Q6\n"
1553 -" adc %R0, %R0, %R6\n"
1554 +" adcs %R0, %R0, %R6\n"
1555 +
1556 +#ifdef CONFIG_PAX_REFCOUNT
1557 +" bvc 3f\n"
1558 +"2: " REFCOUNT_TRAP_INSN "\n"
1559 +"3:\n"
1560 +#endif
1561 +
1562 " strexd %2, %0, %H0, [%4]\n"
1563 " teq %2, #0\n"
1564 " bne 1b\n"
1565 -"2:"
1566 +"4:\n"
1567 +
1568 +#ifdef CONFIG_PAX_REFCOUNT
1569 + _ASM_EXTABLE(2b, 4b)
1570 +#endif
1571 +
1572 : "=&r" (val), "+r" (ret), "=&r" (tmp), "+Qo" (v->counter)
1573 : "r" (&v->counter), "r" (u), "r" (a)
1574 : "cc");
1575 @@ -442,10 +698,13 @@ static inline int atomic64_add_unless(atomic64_t *v, long long a, long long u)
1576
1577 #define atomic64_add_negative(a, v) (atomic64_add_return((a), (v)) < 0)
1578 #define atomic64_inc(v) atomic64_add(1LL, (v))
1579 +#define atomic64_inc_unchecked(v) atomic64_add_unchecked(1LL, (v))
1580 #define atomic64_inc_return_relaxed(v) atomic64_add_return_relaxed(1LL, (v))
1581 +#define atomic64_inc_return_unchecked_relaxed(v) atomic64_add_return_unchecked_relaxed(1LL, (v))
1582 #define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0)
1583 #define atomic64_sub_and_test(a, v) (atomic64_sub_return((a), (v)) == 0)
1584 #define atomic64_dec(v) atomic64_sub(1LL, (v))
1585 +#define atomic64_dec_unchecked(v) atomic64_sub_unchecked(1LL, (v))
1586 #define atomic64_dec_return_relaxed(v) atomic64_sub_return_relaxed(1LL, (v))
1587 #define atomic64_dec_and_test(v) (atomic64_dec_return((v)) == 0)
1588 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1LL, 0LL)
1589 diff --git a/arch/arm/include/asm/cache.h b/arch/arm/include/asm/cache.h
1590 index 75fe66b..ba3dee4 100644
1591 --- a/arch/arm/include/asm/cache.h
1592 +++ b/arch/arm/include/asm/cache.h
1593 @@ -4,8 +4,10 @@
1594 #ifndef __ASMARM_CACHE_H
1595 #define __ASMARM_CACHE_H
1596
1597 +#include <linux/const.h>
1598 +
1599 #define L1_CACHE_SHIFT CONFIG_ARM_L1_CACHE_SHIFT
1600 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
1601 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
1602
1603 /*
1604 * Memory returned by kmalloc() may be used for DMA, so we must make
1605 @@ -24,5 +26,6 @@
1606 #endif
1607
1608 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
1609 +#define __read_only __attribute__ ((__section__(".data..read_only")))
1610
1611 #endif
1612 diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h
1613 index d5525bf..e55725d 100644
1614 --- a/arch/arm/include/asm/cacheflush.h
1615 +++ b/arch/arm/include/asm/cacheflush.h
1616 @@ -116,7 +116,7 @@ struct cpu_cache_fns {
1617 void (*dma_unmap_area)(const void *, size_t, int);
1618
1619 void (*dma_flush_range)(const void *, const void *);
1620 -};
1621 +} __no_const;
1622
1623 /*
1624 * Select the calling method
1625 diff --git a/arch/arm/include/asm/checksum.h b/arch/arm/include/asm/checksum.h
1626 index 5233151..87a71fa 100644
1627 --- a/arch/arm/include/asm/checksum.h
1628 +++ b/arch/arm/include/asm/checksum.h
1629 @@ -37,7 +37,19 @@ __wsum
1630 csum_partial_copy_nocheck(const void *src, void *dst, int len, __wsum sum);
1631
1632 __wsum
1633 -csum_partial_copy_from_user(const void __user *src, void *dst, int len, __wsum sum, int *err_ptr);
1634 +__csum_partial_copy_from_user(const void __user *src, void *dst, int len, __wsum sum, int *err_ptr);
1635 +
1636 +static inline __wsum
1637 +csum_partial_copy_from_user(const void __user *src, void *dst, int len, __wsum sum, int *err_ptr)
1638 +{
1639 + __wsum ret;
1640 + pax_open_userland();
1641 + ret = __csum_partial_copy_from_user(src, dst, len, sum, err_ptr);
1642 + pax_close_userland();
1643 + return ret;
1644 +}
1645 +
1646 +
1647
1648 /*
1649 * Fold a partial checksum without adding pseudo headers
1650 diff --git a/arch/arm/include/asm/cmpxchg.h b/arch/arm/include/asm/cmpxchg.h
1651 index 97882f9..0cc6ef1 100644
1652 --- a/arch/arm/include/asm/cmpxchg.h
1653 +++ b/arch/arm/include/asm/cmpxchg.h
1654 @@ -117,6 +117,10 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
1655 (__typeof__(*(ptr)))__xchg((unsigned long)(x), (ptr), \
1656 sizeof(*(ptr))); \
1657 })
1658 +#define xchg_unchecked(ptr, x) ({ \
1659 + (__typeof__(*(ptr)))__xchg((unsigned long)(x), (ptr), \
1660 + sizeof(*(ptr))); \
1661 +})
1662
1663 #include <asm-generic/cmpxchg-local.h>
1664
1665 diff --git a/arch/arm/include/asm/cpuidle.h b/arch/arm/include/asm/cpuidle.h
1666 index 0f84249..8e83c55 100644
1667 --- a/arch/arm/include/asm/cpuidle.h
1668 +++ b/arch/arm/include/asm/cpuidle.h
1669 @@ -32,7 +32,7 @@ struct device_node;
1670 struct cpuidle_ops {
1671 int (*suspend)(int cpu, unsigned long arg);
1672 int (*init)(struct device_node *, int cpu);
1673 -};
1674 +} __no_const;
1675
1676 struct of_cpuidle_method {
1677 const char *method;
1678 diff --git a/arch/arm/include/asm/domain.h b/arch/arm/include/asm/domain.h
1679 index fc8ba16..0c20017 100644
1680 --- a/arch/arm/include/asm/domain.h
1681 +++ b/arch/arm/include/asm/domain.h
1682 @@ -42,7 +42,6 @@
1683 #define DOMAIN_USER 1
1684 #define DOMAIN_IO 0
1685 #endif
1686 -#define DOMAIN_VECTORS 3
1687
1688 /*
1689 * Domain types
1690 @@ -51,9 +50,27 @@
1691 #define DOMAIN_CLIENT 1
1692 #ifdef CONFIG_CPU_USE_DOMAINS
1693 #define DOMAIN_MANAGER 3
1694 +#define DOMAIN_VECTORS 3
1695 #else
1696 +
1697 +#ifdef CONFIG_PAX_KERNEXEC
1698 #define DOMAIN_MANAGER 1
1699 +#define DOMAIN_KERNEXEC 3
1700 +#else
1701 +#define DOMAIN_MANAGER 1
1702 +#endif
1703 +
1704 +#ifdef CONFIG_PAX_MEMORY_UDEREF
1705 +#define DOMAIN_USERCLIENT 0
1706 +#define DOMAIN_UDEREF 1
1707 +#define DOMAIN_VECTORS DOMAIN_KERNEL
1708 +#else
1709 +#define DOMAIN_USERCLIENT 1
1710 +#define DOMAIN_VECTORS DOMAIN_USER
1711 +#endif
1712 +
1713 #endif
1714 +#define DOMAIN_KERNELCLIENT 1
1715
1716 #define domain_mask(dom) ((3) << (2 * (dom)))
1717 #define domain_val(dom,type) ((type) << (2 * (dom)))
1718 @@ -62,13 +79,19 @@
1719 #define DACR_INIT \
1720 (domain_val(DOMAIN_USER, DOMAIN_NOACCESS) | \
1721 domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \
1722 - domain_val(DOMAIN_IO, DOMAIN_CLIENT) | \
1723 + domain_val(DOMAIN_IO, DOMAIN_KERNELCLIENT) | \
1724 domain_val(DOMAIN_VECTORS, DOMAIN_CLIENT))
1725 +#elif CONFIG_PAX_MEMORY_UDEREF
1726 + /* DOMAIN_VECTORS is defined to DOMAIN_KERNEL */
1727 +#define DACR_INIT \
1728 + (domain_val(DOMAIN_USER, DOMAIN_USERCLIENT) | \
1729 + domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \
1730 + domain_val(DOMAIN_IO, DOMAIN_KERNELCLIENT))
1731 #else
1732 #define DACR_INIT \
1733 - (domain_val(DOMAIN_USER, DOMAIN_CLIENT) | \
1734 + (domain_val(DOMAIN_USER, DOMAIN_USERCLIENT) | \
1735 domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \
1736 - domain_val(DOMAIN_IO, DOMAIN_CLIENT) | \
1737 + domain_val(DOMAIN_IO, DOMAIN_KERNELCLIENT) | \
1738 domain_val(DOMAIN_VECTORS, DOMAIN_CLIENT))
1739 #endif
1740
1741 @@ -113,6 +136,17 @@ static inline void set_domain(unsigned val)
1742 set_domain(domain); \
1743 } while (0)
1744
1745 +#elif defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
1746 +#define modify_domain(dom,type) \
1747 + do { \
1748 + struct thread_info *thread = current_thread_info(); \
1749 + unsigned int domain = get_domain(); \
1750 + domain &= ~domain_mask(dom); \
1751 + domain = domain | domain_val(dom, type); \
1752 + thread->cpu_domain = domain; \
1753 + set_domain(domain); \
1754 + } while (0)
1755 +
1756 #else
1757 static inline void modify_domain(unsigned dom, unsigned type) { }
1758 #endif
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 6795368..6c4d749 100644
1795 --- a/arch/arm/include/asm/futex.h
1796 +++ b/arch/arm/include/asm/futex.h
1797 @@ -107,6 +107,7 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
1798 return -EFAULT;
1799
1800 preempt_disable();
1801 +
1802 __ua_flags = uaccess_save_and_enable();
1803 __asm__ __volatile__("@futex_atomic_cmpxchg_inatomic\n"
1804 "1: " TUSER(ldr) " %1, [%4]\n"
1805 diff --git a/arch/arm/include/asm/kmap_types.h b/arch/arm/include/asm/kmap_types.h
1806 index 83eb2f7..ed77159 100644
1807 --- a/arch/arm/include/asm/kmap_types.h
1808 +++ b/arch/arm/include/asm/kmap_types.h
1809 @@ -4,6 +4,6 @@
1810 /*
1811 * This is the "bare minimum". AIO seems to require this.
1812 */
1813 -#define KM_TYPE_NR 16
1814 +#define KM_TYPE_NR 17
1815
1816 #endif
1817 diff --git a/arch/arm/include/asm/mach/dma.h b/arch/arm/include/asm/mach/dma.h
1818 index 9e614a1..3302cca 100644
1819 --- a/arch/arm/include/asm/mach/dma.h
1820 +++ b/arch/arm/include/asm/mach/dma.h
1821 @@ -22,7 +22,7 @@ struct dma_ops {
1822 int (*residue)(unsigned int, dma_t *); /* optional */
1823 int (*setspeed)(unsigned int, dma_t *, int); /* optional */
1824 const char *type;
1825 -};
1826 +} __do_const;
1827
1828 struct dma_struct {
1829 void *addr; /* single DMA address */
1830 diff --git a/arch/arm/include/asm/mach/map.h b/arch/arm/include/asm/mach/map.h
1831 index f98c7f3..e5c626d 100644
1832 --- a/arch/arm/include/asm/mach/map.h
1833 +++ b/arch/arm/include/asm/mach/map.h
1834 @@ -23,17 +23,19 @@ struct map_desc {
1835
1836 /* types 0-3 are defined in asm/io.h */
1837 enum {
1838 - MT_UNCACHED = 4,
1839 - MT_CACHECLEAN,
1840 - MT_MINICLEAN,
1841 + MT_UNCACHED_RW = 4,
1842 + MT_CACHECLEAN_RO,
1843 + MT_MINICLEAN_RO,
1844 MT_LOW_VECTORS,
1845 MT_HIGH_VECTORS,
1846 - MT_MEMORY_RWX,
1847 + __MT_MEMORY_RWX,
1848 MT_MEMORY_RW,
1849 - MT_ROM,
1850 - MT_MEMORY_RWX_NONCACHED,
1851 + MT_MEMORY_RX,
1852 + MT_ROM_RX,
1853 + MT_MEMORY_RW_NONCACHED,
1854 + MT_MEMORY_RX_NONCACHED,
1855 MT_MEMORY_RW_DTCM,
1856 - MT_MEMORY_RWX_ITCM,
1857 + MT_MEMORY_RX_ITCM,
1858 MT_MEMORY_RW_SO,
1859 MT_MEMORY_DMA_READY,
1860 };
1861 diff --git a/arch/arm/include/asm/outercache.h b/arch/arm/include/asm/outercache.h
1862 index c2bf24f..69e437c 100644
1863 --- a/arch/arm/include/asm/outercache.h
1864 +++ b/arch/arm/include/asm/outercache.h
1865 @@ -39,7 +39,7 @@ struct outer_cache_fns {
1866 /* This is an ARM L2C thing */
1867 void (*write_sec)(unsigned long, unsigned);
1868 void (*configure)(const struct l2x0_regs *);
1869 -};
1870 +} __no_const;
1871
1872 extern struct outer_cache_fns outer_cache;
1873
1874 diff --git a/arch/arm/include/asm/page.h b/arch/arm/include/asm/page.h
1875 index 4355f0e..cd9168e 100644
1876 --- a/arch/arm/include/asm/page.h
1877 +++ b/arch/arm/include/asm/page.h
1878 @@ -23,6 +23,7 @@
1879
1880 #else
1881
1882 +#include <linux/compiler.h>
1883 #include <asm/glue.h>
1884
1885 /*
1886 @@ -114,7 +115,7 @@ struct cpu_user_fns {
1887 void (*cpu_clear_user_highpage)(struct page *page, unsigned long vaddr);
1888 void (*cpu_copy_user_highpage)(struct page *to, struct page *from,
1889 unsigned long vaddr, struct vm_area_struct *vma);
1890 -};
1891 +} __no_const;
1892
1893 #ifdef MULTI_USER
1894 extern struct cpu_user_fns cpu_user;
1895 diff --git a/arch/arm/include/asm/pgalloc.h b/arch/arm/include/asm/pgalloc.h
1896 index 19cfab5..3f5c7e9 100644
1897 --- a/arch/arm/include/asm/pgalloc.h
1898 +++ b/arch/arm/include/asm/pgalloc.h
1899 @@ -17,6 +17,7 @@
1900 #include <asm/processor.h>
1901 #include <asm/cacheflush.h>
1902 #include <asm/tlbflush.h>
1903 +#include <asm/system_info.h>
1904
1905 #define check_pgt_cache() do { } while (0)
1906
1907 @@ -43,6 +44,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
1908 set_pud(pud, __pud(__pa(pmd) | PMD_TYPE_TABLE));
1909 }
1910
1911 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
1912 +{
1913 + pud_populate(mm, pud, pmd);
1914 +}
1915 +
1916 #else /* !CONFIG_ARM_LPAE */
1917
1918 /*
1919 @@ -51,6 +57,7 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
1920 #define pmd_alloc_one(mm,addr) ({ BUG(); ((pmd_t *)2); })
1921 #define pmd_free(mm, pmd) do { } while (0)
1922 #define pud_populate(mm,pmd,pte) BUG()
1923 +#define pud_populate_kernel(mm,pmd,pte) BUG()
1924
1925 #endif /* CONFIG_ARM_LPAE */
1926
1927 @@ -128,6 +135,19 @@ static inline void pte_free(struct mm_struct *mm, pgtable_t pte)
1928 __free_page(pte);
1929 }
1930
1931 +static inline void __section_update(pmd_t *pmdp, unsigned long addr, pmdval_t prot)
1932 +{
1933 +#ifdef CONFIG_ARM_LPAE
1934 + pmdp[0] = __pmd(pmd_val(pmdp[0]) | prot);
1935 +#else
1936 + if (addr & SECTION_SIZE)
1937 + pmdp[1] = __pmd(pmd_val(pmdp[1]) | prot);
1938 + else
1939 + pmdp[0] = __pmd(pmd_val(pmdp[0]) | prot);
1940 +#endif
1941 + flush_pmd_entry(pmdp);
1942 +}
1943 +
1944 static inline void __pmd_populate(pmd_t *pmdp, phys_addr_t pte,
1945 pmdval_t prot)
1946 {
1947 diff --git a/arch/arm/include/asm/pgtable-2level-hwdef.h b/arch/arm/include/asm/pgtable-2level-hwdef.h
1948 index d0131ee..23a0939 100644
1949 --- a/arch/arm/include/asm/pgtable-2level-hwdef.h
1950 +++ b/arch/arm/include/asm/pgtable-2level-hwdef.h
1951 @@ -28,7 +28,7 @@
1952 /*
1953 * - section
1954 */
1955 -#define PMD_SECT_PXN (_AT(pmdval_t, 1) << 0) /* v7 */
1956 +#define PMD_SECT_PXN (_AT(pmdval_t, 1) << 0) /* v7 */
1957 #define PMD_SECT_BUFFERABLE (_AT(pmdval_t, 1) << 2)
1958 #define PMD_SECT_CACHEABLE (_AT(pmdval_t, 1) << 3)
1959 #define PMD_SECT_XN (_AT(pmdval_t, 1) << 4) /* v6 */
1960 @@ -40,6 +40,7 @@
1961 #define PMD_SECT_nG (_AT(pmdval_t, 1) << 17) /* v6 */
1962 #define PMD_SECT_SUPER (_AT(pmdval_t, 1) << 18) /* v6 */
1963 #define PMD_SECT_AF (_AT(pmdval_t, 0))
1964 +#define PMD_SECT_RDONLY (_AT(pmdval_t, 0))
1965
1966 #define PMD_SECT_UNCACHED (_AT(pmdval_t, 0))
1967 #define PMD_SECT_BUFFERED (PMD_SECT_BUFFERABLE)
1968 @@ -69,6 +70,7 @@
1969 * - extended small page/tiny page
1970 */
1971 #define PTE_EXT_XN (_AT(pteval_t, 1) << 0) /* v6 */
1972 +#define PTE_EXT_PXN (_AT(pteval_t, 1) << 2) /* v7 */
1973 #define PTE_EXT_AP_MASK (_AT(pteval_t, 3) << 4)
1974 #define PTE_EXT_AP0 (_AT(pteval_t, 1) << 4)
1975 #define PTE_EXT_AP1 (_AT(pteval_t, 2) << 4)
1976 diff --git a/arch/arm/include/asm/pgtable-2level.h b/arch/arm/include/asm/pgtable-2level.h
1977 index aeddd28..207745c 100644
1978 --- a/arch/arm/include/asm/pgtable-2level.h
1979 +++ b/arch/arm/include/asm/pgtable-2level.h
1980 @@ -127,6 +127,9 @@
1981 #define L_PTE_SHARED (_AT(pteval_t, 1) << 10) /* shared(v6), coherent(xsc3) */
1982 #define L_PTE_NONE (_AT(pteval_t, 1) << 11)
1983
1984 +/* Two-level page tables only have PXN in the PGD, not in the PTE. */
1985 +#define L_PTE_PXN (_AT(pteval_t, 0))
1986 +
1987 /*
1988 * These are the memory types, defined to be compatible with
1989 * pre-ARMv6 CPUs cacheable and bufferable bits: n/a,n/a,C,B
1990 diff --git a/arch/arm/include/asm/pgtable-3level.h b/arch/arm/include/asm/pgtable-3level.h
1991 index a745a2a..481350a 100644
1992 --- a/arch/arm/include/asm/pgtable-3level.h
1993 +++ b/arch/arm/include/asm/pgtable-3level.h
1994 @@ -80,6 +80,7 @@
1995 #define L_PTE_USER (_AT(pteval_t, 1) << 6) /* AP[1] */
1996 #define L_PTE_SHARED (_AT(pteval_t, 3) << 8) /* SH[1:0], inner shareable */
1997 #define L_PTE_YOUNG (_AT(pteval_t, 1) << 10) /* AF */
1998 +#define L_PTE_PXN (_AT(pteval_t, 1) << 53) /* PXN */
1999 #define L_PTE_XN (_AT(pteval_t, 1) << 54) /* XN */
2000 #define L_PTE_DIRTY (_AT(pteval_t, 1) << 55)
2001 #define L_PTE_SPECIAL (_AT(pteval_t, 1) << 56)
2002 @@ -91,10 +92,12 @@
2003 #define L_PMD_SECT_SPLITTING (_AT(pmdval_t, 1) << 56)
2004 #define L_PMD_SECT_NONE (_AT(pmdval_t, 1) << 57)
2005 #define L_PMD_SECT_RDONLY (_AT(pteval_t, 1) << 58)
2006 +#define PMD_SECT_RDONLY PMD_SECT_AP2
2007
2008 /*
2009 * To be used in assembly code with the upper page attributes.
2010 */
2011 +#define L_PTE_PXN_HIGH (1 << (53 - 32))
2012 #define L_PTE_XN_HIGH (1 << (54 - 32))
2013 #define L_PTE_DIRTY_HIGH (1 << (55 - 32))
2014
2015 diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h
2016 index 348caab..306b62d 100644
2017 --- a/arch/arm/include/asm/pgtable.h
2018 +++ b/arch/arm/include/asm/pgtable.h
2019 @@ -33,6 +33,9 @@
2020 #include <asm/pgtable-2level.h>
2021 #endif
2022
2023 +#define ktla_ktva(addr) (addr)
2024 +#define ktva_ktla(addr) (addr)
2025 +
2026 /*
2027 * Just any arbitrary offset to the start of the vmalloc VM area: the
2028 * current 8MB value just means that there will be a 8MB "hole" after the
2029 @@ -48,6 +51,9 @@
2030 #define LIBRARY_TEXT_START 0x0c000000
2031
2032 #ifndef __ASSEMBLY__
2033 +extern pteval_t __supported_pte_mask;
2034 +extern pmdval_t __supported_pmd_mask;
2035 +
2036 extern void __pte_error(const char *file, int line, pte_t);
2037 extern void __pmd_error(const char *file, int line, pmd_t);
2038 extern void __pgd_error(const char *file, int line, pgd_t);
2039 @@ -56,6 +62,48 @@ extern void __pgd_error(const char *file, int line, pgd_t);
2040 #define pmd_ERROR(pmd) __pmd_error(__FILE__, __LINE__, pmd)
2041 #define pgd_ERROR(pgd) __pgd_error(__FILE__, __LINE__, pgd)
2042
2043 +#define __HAVE_ARCH_PAX_OPEN_KERNEL
2044 +#define __HAVE_ARCH_PAX_CLOSE_KERNEL
2045 +
2046 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2047 +#include <asm/domain.h>
2048 +#include <linux/thread_info.h>
2049 +#include <linux/preempt.h>
2050 +
2051 +static inline int test_domain(int domain, int domaintype)
2052 +{
2053 + return ((current_thread_info()->cpu_domain) & domain_val(domain, 3)) == domain_val(domain, domaintype);
2054 +}
2055 +#endif
2056 +
2057 +#ifdef CONFIG_PAX_KERNEXEC
2058 +static inline unsigned long pax_open_kernel(void) {
2059 +#ifdef CONFIG_ARM_LPAE
2060 + /* TODO */
2061 +#else
2062 + preempt_disable();
2063 + BUG_ON(test_domain(DOMAIN_KERNEL, DOMAIN_KERNEXEC));
2064 + modify_domain(DOMAIN_KERNEL, DOMAIN_KERNEXEC);
2065 +#endif
2066 + return 0;
2067 +}
2068 +
2069 +static inline unsigned long pax_close_kernel(void) {
2070 +#ifdef CONFIG_ARM_LPAE
2071 + /* TODO */
2072 +#else
2073 + BUG_ON(test_domain(DOMAIN_KERNEL, DOMAIN_MANAGER));
2074 + /* DOMAIN_MANAGER = "client" under KERNEXEC */
2075 + modify_domain(DOMAIN_KERNEL, DOMAIN_MANAGER);
2076 + preempt_enable_no_resched();
2077 +#endif
2078 + return 0;
2079 +}
2080 +#else
2081 +static inline unsigned long pax_open_kernel(void) { return 0; }
2082 +static inline unsigned long pax_close_kernel(void) { return 0; }
2083 +#endif
2084 +
2085 /*
2086 * This is the lowest virtual address we can permit any user space
2087 * mapping to be mapped at. This is particularly important for
2088 @@ -75,8 +123,8 @@ extern void __pgd_error(const char *file, int line, pgd_t);
2089 /*
2090 * The pgprot_* and protection_map entries will be fixed up in runtime
2091 * to include the cachable and bufferable bits based on memory policy,
2092 - * as well as any architecture dependent bits like global/ASID and SMP
2093 - * shared mapping bits.
2094 + * as well as any architecture dependent bits like global/ASID, PXN,
2095 + * and SMP shared mapping bits.
2096 */
2097 #define _L_PTE_DEFAULT L_PTE_PRESENT | L_PTE_YOUNG
2098
2099 @@ -307,7 +355,7 @@ static inline pte_t pte_mknexec(pte_t pte)
2100 static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
2101 {
2102 const pteval_t mask = L_PTE_XN | L_PTE_RDONLY | L_PTE_USER |
2103 - L_PTE_NONE | L_PTE_VALID;
2104 + L_PTE_NONE | L_PTE_VALID | __supported_pte_mask;
2105 pte_val(pte) = (pte_val(pte) & ~mask) | (pgprot_val(newprot) & mask);
2106 return pte;
2107 }
2108 diff --git a/arch/arm/include/asm/smp.h b/arch/arm/include/asm/smp.h
2109 index 3d6dc8b..1262ad3 100644
2110 --- a/arch/arm/include/asm/smp.h
2111 +++ b/arch/arm/include/asm/smp.h
2112 @@ -108,7 +108,7 @@ struct smp_operations {
2113 int (*cpu_disable)(unsigned int cpu);
2114 #endif
2115 #endif
2116 -};
2117 +} __no_const;
2118
2119 struct of_cpu_method {
2120 const char *method;
2121 diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h
2122 index 776757d..a552c1d 100644
2123 --- a/arch/arm/include/asm/thread_info.h
2124 +++ b/arch/arm/include/asm/thread_info.h
2125 @@ -73,6 +73,9 @@ struct thread_info {
2126 .flags = 0, \
2127 .preempt_count = INIT_PREEMPT_COUNT, \
2128 .addr_limit = KERNEL_DS, \
2129 + .cpu_domain = domain_val(DOMAIN_USER, DOMAIN_USERCLIENT) | \
2130 + domain_val(DOMAIN_KERNEL, DOMAIN_KERNELCLIENT) | \
2131 + domain_val(DOMAIN_IO, DOMAIN_KERNELCLIENT), \
2132 }
2133
2134 #define init_thread_info (init_thread_union.thread_info)
2135 @@ -143,6 +146,10 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
2136 #define TIF_SYSCALL_AUDIT 5 /* syscall auditing active */
2137 #define TIF_SYSCALL_TRACEPOINT 6 /* syscall tracepoint instrumentation */
2138 #define TIF_SECCOMP 7 /* seccomp syscall filtering active */
2139 +/* within 8 bits of TIF_SYSCALL_TRACE
2140 + * to meet flexible second operand requirements
2141 + */
2142 +#define TIF_GRSEC_SETXID 8
2143
2144 #define TIF_NOHZ 12 /* in adaptive nohz mode */
2145 #define TIF_USING_IWMMXT 17
2146 @@ -158,10 +165,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
2147 #define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT)
2148 #define _TIF_SECCOMP (1 << TIF_SECCOMP)
2149 #define _TIF_USING_IWMMXT (1 << TIF_USING_IWMMXT)
2150 +#define _TIF_GRSEC_SETXID (1 << TIF_GRSEC_SETXID)
2151
2152 /* Checks for any syscall work in entry-common.S */
2153 #define _TIF_SYSCALL_WORK (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \
2154 - _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP)
2155 + _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP | _TIF_GRSEC_SETXID)
2156
2157 /*
2158 * Change these and you break ASM code in entry-common.S
2159 diff --git a/arch/arm/include/asm/tls.h b/arch/arm/include/asm/tls.h
2160 index 5f833f7..76e6644 100644
2161 --- a/arch/arm/include/asm/tls.h
2162 +++ b/arch/arm/include/asm/tls.h
2163 @@ -3,6 +3,7 @@
2164
2165 #include <linux/compiler.h>
2166 #include <asm/thread_info.h>
2167 +#include <asm/pgtable.h>
2168
2169 #ifdef __ASSEMBLY__
2170 #include <asm/asm-offsets.h>
2171 @@ -89,7 +90,9 @@ static inline void set_tls(unsigned long val)
2172 * at 0xffff0fe0 must be used instead. (see
2173 * entry-armv.S for details)
2174 */
2175 + pax_open_kernel();
2176 *((unsigned int *)0xffff0ff0) = val;
2177 + pax_close_kernel();
2178 #endif
2179 }
2180
2181 diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
2182 index 35c9db8..400e490 100644
2183 --- a/arch/arm/include/asm/uaccess.h
2184 +++ b/arch/arm/include/asm/uaccess.h
2185 @@ -18,6 +18,7 @@
2186 #include <asm/domain.h>
2187 #include <asm/unified.h>
2188 #include <asm/compiler.h>
2189 +#include <asm/pgtable.h>
2190
2191 #ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
2192 #include <asm-generic/uaccess-unaligned.h>
2193 @@ -50,6 +51,59 @@ struct exception_table_entry
2194 extern int fixup_exception(struct pt_regs *regs);
2195
2196 /*
2197 + * These two are intentionally not defined anywhere - if the kernel
2198 + * code generates any references to them, that's a bug.
2199 + */
2200 +extern int __get_user_bad(void);
2201 +extern int __put_user_bad(void);
2202 +
2203 +/*
2204 + * Note that this is actually 0x1,0000,0000
2205 + */
2206 +#define KERNEL_DS 0x00000000
2207 +#define get_ds() (KERNEL_DS)
2208 +
2209 +#ifdef CONFIG_MMU
2210 +
2211 +#define USER_DS TASK_SIZE
2212 +#define get_fs() (current_thread_info()->addr_limit)
2213 +
2214 +static inline void set_fs(mm_segment_t fs)
2215 +{
2216 + current_thread_info()->addr_limit = fs;
2217 + modify_domain(DOMAIN_KERNEL, fs ? DOMAIN_KERNELCLIENT : DOMAIN_MANAGER);
2218 +}
2219 +
2220 +#define segment_eq(a, b) ((a) == (b))
2221 +
2222 +#define __HAVE_ARCH_PAX_OPEN_USERLAND
2223 +#define __HAVE_ARCH_PAX_CLOSE_USERLAND
2224 +
2225 +static inline void pax_open_userland(void)
2226 +{
2227 +
2228 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2229 + if (segment_eq(get_fs(), USER_DS)) {
2230 + BUG_ON(test_domain(DOMAIN_USER, DOMAIN_UDEREF));
2231 + modify_domain(DOMAIN_USER, DOMAIN_UDEREF);
2232 + }
2233 +#endif
2234 +
2235 +}
2236 +
2237 +static inline void pax_close_userland(void)
2238 +{
2239 +
2240 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2241 + if (segment_eq(get_fs(), USER_DS)) {
2242 + BUG_ON(test_domain(DOMAIN_USER, DOMAIN_NOACCESS));
2243 + modify_domain(DOMAIN_USER, DOMAIN_NOACCESS);
2244 + }
2245 +#endif
2246 +
2247 +}
2248 +
2249 +/*
2250 * These two functions allow hooking accesses to userspace to increase
2251 * system integrity by ensuring that the kernel can not inadvertantly
2252 * perform such accesses (eg, via list poison values) which could then
2253 @@ -66,6 +120,7 @@ static inline unsigned int uaccess_save_and_enable(void)
2254
2255 return old_domain;
2256 #else
2257 + pax_open_userland();
2258 return 0;
2259 #endif
2260 }
2261 @@ -75,35 +130,11 @@ static inline void uaccess_restore(unsigned int flags)
2262 #ifdef CONFIG_CPU_SW_DOMAIN_PAN
2263 /* Restore the user access mask */
2264 set_domain(flags);
2265 +#else
2266 + pax_close_userland();
2267 #endif
2268 }
2269
2270 -/*
2271 - * These two are intentionally not defined anywhere - if the kernel
2272 - * code generates any references to them, that's a bug.
2273 - */
2274 -extern int __get_user_bad(void);
2275 -extern int __put_user_bad(void);
2276 -
2277 -/*
2278 - * Note that this is actually 0x1,0000,0000
2279 - */
2280 -#define KERNEL_DS 0x00000000
2281 -#define get_ds() (KERNEL_DS)
2282 -
2283 -#ifdef CONFIG_MMU
2284 -
2285 -#define USER_DS TASK_SIZE
2286 -#define get_fs() (current_thread_info()->addr_limit)
2287 -
2288 -static inline void set_fs(mm_segment_t fs)
2289 -{
2290 - current_thread_info()->addr_limit = fs;
2291 - modify_domain(DOMAIN_KERNEL, fs ? DOMAIN_CLIENT : DOMAIN_MANAGER);
2292 -}
2293 -
2294 -#define segment_eq(a, b) ((a) == (b))
2295 -
2296 #define __addr_ok(addr) ({ \
2297 unsigned long flag; \
2298 __asm__("cmp %2, %0; movlo %0, #0" \
2299 @@ -302,6 +333,7 @@ static inline void set_fs(mm_segment_t fs)
2300
2301 #endif /* CONFIG_MMU */
2302
2303 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
2304 #define access_ok(type, addr, size) (__range_ok(addr, size) == 0)
2305
2306 #define user_addr_max() \
2307 @@ -490,39 +522,46 @@ do { \
2308
2309
2310 #ifdef CONFIG_MMU
2311 -extern unsigned long __must_check
2312 +extern unsigned long __must_check __size_overflow(3)
2313 arm_copy_from_user(void *to, const void __user *from, unsigned long n);
2314
2315 -static inline unsigned long __must_check
2316 +static inline unsigned long __must_check __size_overflow(3)
2317 __copy_from_user(void *to, const void __user *from, unsigned long n)
2318 {
2319 - unsigned int __ua_flags = uaccess_save_and_enable();
2320 + unsigned int __ua_flags;
2321 +
2322 + check_object_size(to, n, false);
2323 + __ua_flags = uaccess_save_and_enable();
2324 n = arm_copy_from_user(to, from, n);
2325 uaccess_restore(__ua_flags);
2326 return n;
2327 }
2328
2329 -extern unsigned long __must_check
2330 +extern unsigned long __must_check __size_overflow(3)
2331 arm_copy_to_user(void __user *to, const void *from, unsigned long n);
2332 -extern unsigned long __must_check
2333 +extern unsigned long __must_check __size_overflow(3)
2334 __copy_to_user_std(void __user *to, const void *from, unsigned long n);
2335
2336 static inline unsigned long __must_check
2337 __copy_to_user(void __user *to, const void *from, unsigned long n)
2338 {
2339 #ifndef CONFIG_UACCESS_WITH_MEMCPY
2340 - unsigned int __ua_flags = uaccess_save_and_enable();
2341 + unsigned int __ua_flags;
2342 +
2343 + check_object_size(from, n, true);
2344 + __ua_flags = uaccess_save_and_enable();
2345 n = arm_copy_to_user(to, from, n);
2346 uaccess_restore(__ua_flags);
2347 return n;
2348 #else
2349 + check_object_size(from, n, true);
2350 return arm_copy_to_user(to, from, n);
2351 #endif
2352 }
2353
2354 -extern unsigned long __must_check
2355 +extern unsigned long __must_check __size_overflow(2)
2356 arm_clear_user(void __user *addr, unsigned long n);
2357 -extern unsigned long __must_check
2358 +extern unsigned long __must_check __size_overflow(2)
2359 __clear_user_std(void __user *addr, unsigned long n);
2360
2361 static inline unsigned long __must_check
2362 @@ -542,6 +581,9 @@ __clear_user(void __user *addr, unsigned long n)
2363
2364 static inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long n)
2365 {
2366 + if ((long)n < 0)
2367 + return n;
2368 +
2369 if (access_ok(VERIFY_READ, from, n))
2370 n = __copy_from_user(to, from, n);
2371 else /* security hole - plug it */
2372 @@ -551,6 +593,9 @@ static inline unsigned long __must_check copy_from_user(void *to, const void __u
2373
2374 static inline unsigned long __must_check copy_to_user(void __user *to, const void *from, unsigned long n)
2375 {
2376 + if ((long)n < 0)
2377 + return n;
2378 +
2379 if (access_ok(VERIFY_WRITE, to, n))
2380 n = __copy_to_user(to, from, n);
2381 return n;
2382 diff --git a/arch/arm/include/uapi/asm/ptrace.h b/arch/arm/include/uapi/asm/ptrace.h
2383 index 5af0ed1..cea83883 100644
2384 --- a/arch/arm/include/uapi/asm/ptrace.h
2385 +++ b/arch/arm/include/uapi/asm/ptrace.h
2386 @@ -92,7 +92,7 @@
2387 * ARMv7 groups of PSR bits
2388 */
2389 #define APSR_MASK 0xf80f0000 /* N, Z, C, V, Q and GE flags */
2390 -#define PSR_ISET_MASK 0x01000010 /* ISA state (J, T) mask */
2391 +#define PSR_ISET_MASK 0x01000020 /* ISA state (J, T) mask */
2392 #define PSR_IT_MASK 0x0600fc00 /* If-Then execution state mask */
2393 #define PSR_ENDIAN_MASK 0x00000200 /* Endianness state mask */
2394
2395 diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c
2396 index f89811f..1d110d1 100644
2397 --- a/arch/arm/kernel/armksyms.c
2398 +++ b/arch/arm/kernel/armksyms.c
2399 @@ -58,7 +58,7 @@ EXPORT_SYMBOL(arm_delay_ops);
2400
2401 /* networking */
2402 EXPORT_SYMBOL(csum_partial);
2403 -EXPORT_SYMBOL(csum_partial_copy_from_user);
2404 +EXPORT_SYMBOL(__csum_partial_copy_from_user);
2405 EXPORT_SYMBOL(csum_partial_copy_nocheck);
2406 EXPORT_SYMBOL(__csum_ipv6_magic);
2407
2408 diff --git a/arch/arm/kernel/cpuidle.c b/arch/arm/kernel/cpuidle.c
2409 index 318da33..373689f 100644
2410 --- a/arch/arm/kernel/cpuidle.c
2411 +++ b/arch/arm/kernel/cpuidle.c
2412 @@ -19,7 +19,7 @@ extern struct of_cpuidle_method __cpuidle_method_of_table[];
2413 static const struct of_cpuidle_method __cpuidle_method_of_table_sentinel
2414 __used __section(__cpuidle_method_of_table_end);
2415
2416 -static struct cpuidle_ops cpuidle_ops[NR_CPUS];
2417 +static struct cpuidle_ops cpuidle_ops[NR_CPUS] __read_only;
2418
2419 /**
2420 * arm_cpuidle_simple_enter() - a wrapper to cpu_do_idle()
2421 diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
2422 index 3ce377f..e4cad12 100644
2423 --- a/arch/arm/kernel/entry-armv.S
2424 +++ b/arch/arm/kernel/entry-armv.S
2425 @@ -50,6 +50,87 @@
2426 9997:
2427 .endm
2428
2429 + .macro pax_enter_kernel
2430 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2431 + @ make aligned space for saved DACR
2432 + sub sp, sp, #8
2433 + @ save regs
2434 + stmdb sp!, {r1, r2}
2435 + @ read DACR from cpu_domain into r1
2436 + mov r2, sp
2437 + @ assume 8K pages, since we have to split the immediate in two
2438 + bic r2, r2, #(0x1fc0)
2439 + bic r2, r2, #(0x3f)
2440 + ldr r1, [r2, #TI_CPU_DOMAIN]
2441 + @ store old DACR on stack
2442 + str r1, [sp, #8]
2443 +#ifdef CONFIG_PAX_KERNEXEC
2444 + @ set type of DOMAIN_KERNEL to DOMAIN_KERNELCLIENT
2445 + bic r1, r1, #(domain_val(DOMAIN_KERNEL, 3))
2446 + orr r1, r1, #(domain_val(DOMAIN_KERNEL, DOMAIN_KERNELCLIENT))
2447 +#endif
2448 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2449 + @ set current DOMAIN_USER to DOMAIN_NOACCESS
2450 + bic r1, r1, #(domain_val(DOMAIN_USER, 3))
2451 +#endif
2452 + @ write r1 to current_thread_info()->cpu_domain
2453 + str r1, [r2, #TI_CPU_DOMAIN]
2454 + @ write r1 to DACR
2455 + mcr p15, 0, r1, c3, c0, 0
2456 + @ instruction sync
2457 + instr_sync
2458 + @ restore regs
2459 + ldmia sp!, {r1, r2}
2460 +#endif
2461 + .endm
2462 +
2463 + .macro pax_open_userland
2464 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2465 + @ save regs
2466 + stmdb sp!, {r0, r1}
2467 + @ read DACR from cpu_domain into r1
2468 + mov r0, sp
2469 + @ assume 8K pages, since we have to split the immediate in two
2470 + bic r0, r0, #(0x1fc0)
2471 + bic r0, r0, #(0x3f)
2472 + ldr r1, [r0, #TI_CPU_DOMAIN]
2473 + @ set current DOMAIN_USER to DOMAIN_CLIENT
2474 + bic r1, r1, #(domain_val(DOMAIN_USER, 3))
2475 + orr r1, r1, #(domain_val(DOMAIN_USER, DOMAIN_UDEREF))
2476 + @ write r1 to current_thread_info()->cpu_domain
2477 + str r1, [r0, #TI_CPU_DOMAIN]
2478 + @ write r1 to DACR
2479 + mcr p15, 0, r1, c3, c0, 0
2480 + @ instruction sync
2481 + instr_sync
2482 + @ restore regs
2483 + ldmia sp!, {r0, r1}
2484 +#endif
2485 + .endm
2486 +
2487 + .macro pax_close_userland
2488 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2489 + @ save regs
2490 + stmdb sp!, {r0, r1}
2491 + @ read DACR from cpu_domain into r1
2492 + mov r0, sp
2493 + @ assume 8K pages, since we have to split the immediate in two
2494 + bic r0, r0, #(0x1fc0)
2495 + bic r0, r0, #(0x3f)
2496 + ldr r1, [r0, #TI_CPU_DOMAIN]
2497 + @ set current DOMAIN_USER to DOMAIN_NOACCESS
2498 + bic r1, r1, #(domain_val(DOMAIN_USER, 3))
2499 + @ write r1 to current_thread_info()->cpu_domain
2500 + str r1, [r0, #TI_CPU_DOMAIN]
2501 + @ write r1 to DACR
2502 + mcr p15, 0, r1, c3, c0, 0
2503 + @ instruction sync
2504 + instr_sync
2505 + @ restore regs
2506 + ldmia sp!, {r0, r1}
2507 +#endif
2508 + .endm
2509 +
2510 .macro pabt_helper
2511 @ PABORT handler takes pt_regs in r2, fault address in r4 and psr in r5
2512 #ifdef MULTI_PABORT
2513 @@ -92,11 +173,15 @@
2514 * Invalid mode handlers
2515 */
2516 .macro inv_entry, reason
2517 +
2518 + pax_enter_kernel
2519 +
2520 sub sp, sp, #S_FRAME_SIZE
2521 ARM( stmib sp, {r1 - lr} )
2522 THUMB( stmia sp, {r0 - r12} )
2523 THUMB( str sp, [sp, #S_SP] )
2524 THUMB( str lr, [sp, #S_LR] )
2525 +
2526 mov r1, #\reason
2527 .endm
2528
2529 @@ -152,6 +237,9 @@ ENDPROC(__und_invalid)
2530 .macro svc_entry, stack_hole=0, trace=1, uaccess=1
2531 UNWIND(.fnstart )
2532 UNWIND(.save {r0 - pc} )
2533 +
2534 + pax_enter_kernel
2535 +
2536 sub sp, sp, #(S_FRAME_SIZE + 8 + \stack_hole - 4)
2537 #ifdef CONFIG_THUMB2_KERNEL
2538 SPFIX( str r0, [sp] ) @ temporarily saved
2539 @@ -167,7 +255,12 @@ ENDPROC(__und_invalid)
2540 ldmia r0, {r3 - r5}
2541 add r7, sp, #S_SP - 4 @ here for interlock avoidance
2542 mov r6, #-1 @ "" "" "" ""
2543 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2544 + @ offset sp by 8 as done in pax_enter_kernel
2545 + add r2, sp, #(S_FRAME_SIZE + 8 + \stack_hole + 4)
2546 +#else
2547 add r2, sp, #(S_FRAME_SIZE + 8 + \stack_hole - 4)
2548 +#endif
2549 SPFIX( addeq r2, r2, #4 )
2550 str r3, [sp, #-4]! @ save the "real" r0 copied
2551 @ from the exception stack
2552 @@ -376,6 +469,9 @@ ENDPROC(__fiq_abt)
2553 .macro usr_entry, trace=1, uaccess=1
2554 UNWIND(.fnstart )
2555 UNWIND(.cantunwind ) @ don't unwind the user space
2556 +
2557 + pax_enter_kernel_user
2558 +
2559 sub sp, sp, #S_FRAME_SIZE
2560 ARM( stmib sp, {r1 - r12} )
2561 THUMB( stmia sp, {r0 - r12} )
2562 @@ -489,7 +585,9 @@ __und_usr:
2563 tst r3, #PSR_T_BIT @ Thumb mode?
2564 bne __und_usr_thumb
2565 sub r4, r2, #4 @ ARM instr at LR - 4
2566 + pax_open_userland
2567 1: ldrt r0, [r4]
2568 + pax_close_userland
2569 ARM_BE8(rev r0, r0) @ little endian instruction
2570
2571 uaccess_disable ip
2572 @@ -525,11 +623,15 @@ __und_usr_thumb:
2573 */
2574 .arch armv6t2
2575 #endif
2576 + pax_open_userland
2577 2: ldrht r5, [r4]
2578 + pax_close_userland
2579 ARM_BE8(rev16 r5, r5) @ little endian instruction
2580 cmp r5, #0xe800 @ 32bit instruction if xx != 0
2581 blo __und_usr_fault_16_pan @ 16bit undefined instruction
2582 + pax_open_userland
2583 3: ldrht r0, [r2]
2584 + pax_close_userland
2585 ARM_BE8(rev16 r0, r0) @ little endian instruction
2586 uaccess_disable ip
2587 add r2, r2, #2 @ r2 is PC + 2, make it PC + 4
2588 @@ -560,7 +662,8 @@ ENDPROC(__und_usr)
2589 */
2590 .pushsection .text.fixup, "ax"
2591 .align 2
2592 -4: str r4, [sp, #S_PC] @ retry current instruction
2593 +4: pax_close_userland
2594 + str r4, [sp, #S_PC] @ retry current instruction
2595 ret r9
2596 .popsection
2597 .pushsection __ex_table,"a"
2598 @@ -782,7 +885,7 @@ ENTRY(__switch_to)
2599 THUMB( str lr, [ip], #4 )
2600 ldr r4, [r2, #TI_TP_VALUE]
2601 ldr r5, [r2, #TI_TP_VALUE + 4]
2602 -#ifdef CONFIG_CPU_USE_DOMAINS
2603 +#if defined(CONFIG_CPU_USE_DOMAINS) || defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2604 mrc p15, 0, r6, c3, c0, 0 @ Get domain register
2605 str r6, [r1, #TI_CPU_DOMAIN] @ Save old domain register
2606 ldr r6, [r2, #TI_CPU_DOMAIN]
2607 @@ -793,7 +896,7 @@ ENTRY(__switch_to)
2608 ldr r8, =__stack_chk_guard
2609 ldr r7, [r7, #TSK_STACK_CANARY]
2610 #endif
2611 -#ifdef CONFIG_CPU_USE_DOMAINS
2612 +#if defined(CONFIG_CPU_USE_DOMAINS) || defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2613 mcr p15, 0, r6, c3, c0, 0 @ Set domain register
2614 #endif
2615 mov r5, r0
2616 diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
2617 index 30a7228..d071196 100644
2618 --- a/arch/arm/kernel/entry-common.S
2619 +++ b/arch/arm/kernel/entry-common.S
2620 @@ -11,18 +11,46 @@
2621 #include <asm/assembler.h>
2622 #include <asm/unistd.h>
2623 #include <asm/ftrace.h>
2624 +#include <asm/domain.h>
2625 #include <asm/unwind.h>
2626
2627 +#include "entry-header.S"
2628 +
2629 #ifdef CONFIG_NEED_RET_TO_USER
2630 #include <mach/entry-macro.S>
2631 #else
2632 .macro arch_ret_to_user, tmp1, tmp2
2633 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2634 + @ save regs
2635 + stmdb sp!, {r1, r2}
2636 + @ read DACR from cpu_domain into r1
2637 + mov r2, sp
2638 + @ assume 8K pages, since we have to split the immediate in two
2639 + bic r2, r2, #(0x1fc0)
2640 + bic r2, r2, #(0x3f)
2641 + ldr r1, [r2, #TI_CPU_DOMAIN]
2642 +#ifdef CONFIG_PAX_KERNEXEC
2643 + @ set type of DOMAIN_KERNEL to DOMAIN_KERNELCLIENT
2644 + bic r1, r1, #(domain_val(DOMAIN_KERNEL, 3))
2645 + orr r1, r1, #(domain_val(DOMAIN_KERNEL, DOMAIN_KERNELCLIENT))
2646 +#endif
2647 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2648 + @ set current DOMAIN_USER to DOMAIN_UDEREF
2649 + bic r1, r1, #(domain_val(DOMAIN_USER, 3))
2650 + orr r1, r1, #(domain_val(DOMAIN_USER, DOMAIN_UDEREF))
2651 +#endif
2652 + @ write r1 to current_thread_info()->cpu_domain
2653 + str r1, [r2, #TI_CPU_DOMAIN]
2654 + @ write r1 to DACR
2655 + mcr p15, 0, r1, c3, c0, 0
2656 + @ instruction sync
2657 + instr_sync
2658 + @ restore regs
2659 + ldmia sp!, {r1, r2}
2660 +#endif
2661 .endm
2662 #endif
2663
2664 -#include "entry-header.S"
2665 -
2666 -
2667 .align 5
2668 #if !(IS_ENABLED(CONFIG_TRACE_IRQFLAGS) || IS_ENABLED(CONFIG_CONTEXT_TRACKING))
2669 /*
2670 @@ -36,7 +64,9 @@ ret_fast_syscall:
2671 UNWIND(.cantunwind )
2672 disable_irq_notrace @ disable interrupts
2673 ldr r1, [tsk, #TI_FLAGS] @ re-check for syscall tracing
2674 - tst r1, #_TIF_SYSCALL_WORK | _TIF_WORK_MASK
2675 + tst r1, #_TIF_SYSCALL_WORK
2676 + bne fast_work_pending
2677 + tst r1, #_TIF_WORK_MASK
2678 bne fast_work_pending
2679
2680 /* perform architecture specific actions before user return */
2681 @@ -62,7 +92,9 @@ ret_fast_syscall:
2682 str r0, [sp, #S_R0 + S_OFF]! @ save returned r0
2683 disable_irq_notrace @ disable interrupts
2684 ldr r1, [tsk, #TI_FLAGS] @ re-check for syscall tracing
2685 - tst r1, #_TIF_SYSCALL_WORK | _TIF_WORK_MASK
2686 + tst r1, #_TIF_SYSCALL_WORK
2687 + bne __sys_trace_return_nosave
2688 + tst r1, #_TIF_WORK_MASK
2689 beq no_work_pending
2690 UNWIND(.fnend )
2691 ENDPROC(ret_fast_syscall)
2692 @@ -199,6 +231,12 @@ ENTRY(vector_swi)
2693
2694 uaccess_disable tbl
2695
2696 + /*
2697 + * do this here to avoid a performance hit of wrapping the code above
2698 + * that directly dereferences userland to parse the SWI instruction
2699 + */
2700 + pax_enter_kernel_user
2701 +
2702 adr tbl, sys_call_table @ load syscall table pointer
2703
2704 #if defined(CONFIG_OABI_COMPAT)
2705 diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S
2706 index 0d22ad2..d776aa0 100644
2707 --- a/arch/arm/kernel/entry-header.S
2708 +++ b/arch/arm/kernel/entry-header.S
2709 @@ -196,6 +196,59 @@
2710 msr cpsr_c, \rtemp @ switch back to the SVC mode
2711 .endm
2712
2713 + .macro pax_enter_kernel_user
2714 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2715 + @ save regs
2716 + stmdb sp!, {r0, r1}
2717 + @ read DACR from cpu_domain into r1
2718 + mov r0, sp
2719 + @ assume 8K pages, since we have to split the immediate in two
2720 + bic r0, r0, #(0x1fc0)
2721 + bic r0, r0, #(0x3f)
2722 + ldr r1, [r0, #TI_CPU_DOMAIN]
2723 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2724 + @ set current DOMAIN_USER to DOMAIN_NOACCESS
2725 + bic r1, r1, #(domain_val(DOMAIN_USER, 3))
2726 +#endif
2727 +#ifdef CONFIG_PAX_KERNEXEC
2728 + @ set current DOMAIN_KERNEL to DOMAIN_KERNELCLIENT
2729 + bic r1, r1, #(domain_val(DOMAIN_KERNEL, 3))
2730 + orr r1, r1, #(domain_val(DOMAIN_KERNEL, DOMAIN_KERNELCLIENT))
2731 +#endif
2732 + @ write r1 to current_thread_info()->cpu_domain
2733 + str r1, [r0, #TI_CPU_DOMAIN]
2734 + @ write r1 to DACR
2735 + mcr p15, 0, r1, c3, c0, 0
2736 + @ instruction sync
2737 + instr_sync
2738 + @ restore regs
2739 + ldmia sp!, {r0, r1}
2740 +#endif
2741 + .endm
2742 +
2743 + .macro pax_exit_kernel
2744 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2745 + @ save regs
2746 + stmdb sp!, {r0, r1}
2747 + @ read old DACR from stack into r1
2748 + ldr r1, [sp, #(8 + S_SP)]
2749 + sub r1, r1, #8
2750 + ldr r1, [r1]
2751 +
2752 + @ write r1 to current_thread_info()->cpu_domain
2753 + mov r0, sp
2754 + @ assume 8K pages, since we have to split the immediate in two
2755 + bic r0, r0, #(0x1fc0)
2756 + bic r0, r0, #(0x3f)
2757 + str r1, [r0, #TI_CPU_DOMAIN]
2758 + @ write r1 to DACR
2759 + mcr p15, 0, r1, c3, c0, 0
2760 + @ instruction sync
2761 + instr_sync
2762 + @ restore regs
2763 + ldmia sp!, {r0, r1}
2764 +#endif
2765 + .endm
2766
2767 .macro svc_exit, rpsr, irq = 0
2768 .if \irq != 0
2769 @@ -217,6 +270,8 @@
2770 .endif
2771 uaccess_restore
2772
2773 + pax_exit_kernel
2774 +
2775 #ifndef CONFIG_THUMB2_KERNEL
2776 @ ARM mode SVC restore
2777 msr spsr_cxsf, \rpsr
2778 diff --git a/arch/arm/kernel/fiq.c b/arch/arm/kernel/fiq.c
2779 index 059c3da..8e45cfc 100644
2780 --- a/arch/arm/kernel/fiq.c
2781 +++ b/arch/arm/kernel/fiq.c
2782 @@ -95,7 +95,10 @@ void set_fiq_handler(void *start, unsigned int length)
2783 void *base = vectors_page;
2784 unsigned offset = FIQ_OFFSET;
2785
2786 + pax_open_kernel();
2787 memcpy(base + offset, start, length);
2788 + pax_close_kernel();
2789 +
2790 if (!cache_is_vipt_nonaliasing())
2791 flush_icache_range((unsigned long)base + offset, offset +
2792 length);
2793 diff --git a/arch/arm/kernel/module-plts.c b/arch/arm/kernel/module-plts.c
2794 index 097e2e2..3927085 100644
2795 --- a/arch/arm/kernel/module-plts.c
2796 +++ b/arch/arm/kernel/module-plts.c
2797 @@ -30,17 +30,12 @@ struct plt_entries {
2798 u32 lit[PLT_ENT_COUNT];
2799 };
2800
2801 -static bool in_init(const struct module *mod, u32 addr)
2802 -{
2803 - return addr - (u32)mod->module_init < mod->init_size;
2804 -}
2805 -
2806 u32 get_module_plt(struct module *mod, unsigned long loc, Elf32_Addr val)
2807 {
2808 struct plt_entries *plt, *plt_end;
2809 int c, *count;
2810
2811 - if (in_init(mod, loc)) {
2812 + if (within_module_init(loc, mod)) {
2813 plt = (void *)mod->arch.init_plt->sh_addr;
2814 plt_end = (void *)plt + mod->arch.init_plt->sh_size;
2815 count = &mod->arch.init_plt_count;
2816 diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c
2817 index efdddcb..35e58f6 100644
2818 --- a/arch/arm/kernel/module.c
2819 +++ b/arch/arm/kernel/module.c
2820 @@ -38,17 +38,47 @@
2821 #endif
2822
2823 #ifdef CONFIG_MMU
2824 -void *module_alloc(unsigned long size)
2825 +static inline void *__module_alloc(unsigned long size, pgprot_t prot)
2826 {
2827 - void *p = __vmalloc_node_range(size, 1, MODULES_VADDR, MODULES_END,
2828 - GFP_KERNEL, PAGE_KERNEL_EXEC, 0, NUMA_NO_NODE,
2829 + void *p;
2830 +
2831 + if (!size || (!IS_ENABLED(CONFIG_ARM_MODULE_PLTS) && PAGE_ALIGN(size) > MODULES_END - MODULES_VADDR))
2832 + return NULL;
2833 +
2834 + p = __vmalloc_node_range(size, 1, MODULES_VADDR, MODULES_END,
2835 + GFP_KERNEL, prot, 0, NUMA_NO_NODE,
2836 __builtin_return_address(0));
2837 if (!IS_ENABLED(CONFIG_ARM_MODULE_PLTS) || p)
2838 return p;
2839 return __vmalloc_node_range(size, 1, VMALLOC_START, VMALLOC_END,
2840 - GFP_KERNEL, PAGE_KERNEL_EXEC, 0, NUMA_NO_NODE,
2841 + GFP_KERNEL, prot, 0, NUMA_NO_NODE,
2842 __builtin_return_address(0));
2843 }
2844 +
2845 +void *module_alloc(unsigned long size)
2846 +{
2847 +
2848 +#ifdef CONFIG_PAX_KERNEXEC
2849 + return __module_alloc(size, PAGE_KERNEL);
2850 +#else
2851 + return __module_alloc(size, PAGE_KERNEL_EXEC);
2852 +#endif
2853 +
2854 +}
2855 +
2856 +#ifdef CONFIG_PAX_KERNEXEC
2857 +void module_memfree_exec(void *module_region)
2858 +{
2859 + module_memfree(module_region);
2860 +}
2861 +EXPORT_SYMBOL(module_memfree_exec);
2862 +
2863 +void *module_alloc_exec(unsigned long size)
2864 +{
2865 + return __module_alloc(size, PAGE_KERNEL_EXEC);
2866 +}
2867 +EXPORT_SYMBOL(module_alloc_exec);
2868 +#endif
2869 #endif
2870
2871 int
2872 diff --git a/arch/arm/kernel/patch.c b/arch/arm/kernel/patch.c
2873 index 69bda1a..755113a 100644
2874 --- a/arch/arm/kernel/patch.c
2875 +++ b/arch/arm/kernel/patch.c
2876 @@ -66,6 +66,7 @@ void __kprobes __patch_text_real(void *addr, unsigned int insn, bool remap)
2877 else
2878 __acquire(&patch_lock);
2879
2880 + pax_open_kernel();
2881 if (thumb2 && __opcode_is_thumb16(insn)) {
2882 *(u16 *)waddr = __opcode_to_mem_thumb16(insn);
2883 size = sizeof(u16);
2884 @@ -97,6 +98,7 @@ void __kprobes __patch_text_real(void *addr, unsigned int insn, bool remap)
2885 *(u32 *)waddr = insn;
2886 size = sizeof(u32);
2887 }
2888 + pax_close_kernel();
2889
2890 if (waddr != addr) {
2891 flush_kernel_vmap_range(waddr, twopage ? size / 2 : size);
2892 diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
2893 index 4adfb46..1cf6cb9 100644
2894 --- a/arch/arm/kernel/process.c
2895 +++ b/arch/arm/kernel/process.c
2896 @@ -114,8 +114,8 @@ void __show_regs(struct pt_regs *regs)
2897
2898 show_regs_print_info(KERN_DEFAULT);
2899
2900 - print_symbol("PC is at %s\n", instruction_pointer(regs));
2901 - print_symbol("LR is at %s\n", regs->ARM_lr);
2902 + printk("PC is at %pA\n", (void *)instruction_pointer(regs));
2903 + printk("LR is at %pA\n", (void *)regs->ARM_lr);
2904 printk("pc : [<%08lx>] lr : [<%08lx>] psr: %08lx\n"
2905 "sp : %08lx ip : %08lx fp : %08lx\n",
2906 regs->ARM_pc, regs->ARM_lr, regs->ARM_cpsr,
2907 @@ -229,7 +229,7 @@ copy_thread(unsigned long clone_flags, unsigned long stack_start,
2908
2909 memset(&thread->cpu_context, 0, sizeof(struct cpu_context_save));
2910
2911 -#ifdef CONFIG_CPU_USE_DOMAINS
2912 +#if defined(CONFIG_CPU_USE_DOMAINS) || defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2913 /*
2914 * Copy the initial value of the domain access control register
2915 * from the current thread: thread->addr_limit will have been
2916 @@ -312,12 +312,6 @@ unsigned long get_wchan(struct task_struct *p)
2917 return 0;
2918 }
2919
2920 -unsigned long arch_randomize_brk(struct mm_struct *mm)
2921 -{
2922 - unsigned long range_end = mm->brk + 0x02000000;
2923 - return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
2924 -}
2925 -
2926 #ifdef CONFIG_MMU
2927 #ifdef CONFIG_KUSER_HELPERS
2928 /*
2929 @@ -333,7 +327,7 @@ static struct vm_area_struct gate_vma = {
2930
2931 static int __init gate_vma_init(void)
2932 {
2933 - gate_vma.vm_page_prot = PAGE_READONLY_EXEC;
2934 + gate_vma.vm_page_prot = vm_get_page_prot(gate_vma.vm_flags);
2935 return 0;
2936 }
2937 arch_initcall(gate_vma_init);
2938 @@ -362,91 +356,13 @@ const char *arch_vma_name(struct vm_area_struct *vma)
2939 return is_gate_vma(vma) ? "[vectors]" : NULL;
2940 }
2941
2942 -/* If possible, provide a placement hint at a random offset from the
2943 - * stack for the sigpage and vdso pages.
2944 - */
2945 -static unsigned long sigpage_addr(const struct mm_struct *mm,
2946 - unsigned int npages)
2947 -{
2948 - unsigned long offset;
2949 - unsigned long first;
2950 - unsigned long last;
2951 - unsigned long addr;
2952 - unsigned int slots;
2953 -
2954 - first = PAGE_ALIGN(mm->start_stack);
2955 -
2956 - last = TASK_SIZE - (npages << PAGE_SHIFT);
2957 -
2958 - /* No room after stack? */
2959 - if (first > last)
2960 - return 0;
2961 -
2962 - /* Just enough room? */
2963 - if (first == last)
2964 - return first;
2965 -
2966 - slots = ((last - first) >> PAGE_SHIFT) + 1;
2967 -
2968 - offset = get_random_int() % slots;
2969 -
2970 - addr = first + (offset << PAGE_SHIFT);
2971 -
2972 - return addr;
2973 -}
2974 -
2975 -static struct page *signal_page;
2976 -extern struct page *get_signal_page(void);
2977 -
2978 -static const struct vm_special_mapping sigpage_mapping = {
2979 - .name = "[sigpage]",
2980 - .pages = &signal_page,
2981 -};
2982 -
2983 int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
2984 {
2985 struct mm_struct *mm = current->mm;
2986 - struct vm_area_struct *vma;
2987 - unsigned long npages;
2988 - unsigned long addr;
2989 - unsigned long hint;
2990 - int ret = 0;
2991 -
2992 - if (!signal_page)
2993 - signal_page = get_signal_page();
2994 - if (!signal_page)
2995 - return -ENOMEM;
2996 -
2997 - npages = 1; /* for sigpage */
2998 - npages += vdso_total_pages;
2999
3000 down_write(&mm->mmap_sem);
3001 - hint = sigpage_addr(mm, npages);
3002 - addr = get_unmapped_area(NULL, hint, npages << PAGE_SHIFT, 0, 0);
3003 - if (IS_ERR_VALUE(addr)) {
3004 - ret = addr;
3005 - goto up_fail;
3006 - }
3007 -
3008 - vma = _install_special_mapping(mm, addr, PAGE_SIZE,
3009 - VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC,
3010 - &sigpage_mapping);
3011 -
3012 - if (IS_ERR(vma)) {
3013 - ret = PTR_ERR(vma);
3014 - goto up_fail;
3015 - }
3016 -
3017 - mm->context.sigpage = addr;
3018 -
3019 - /* Unlike the sigpage, failure to install the vdso is unlikely
3020 - * to be fatal to the process, so no error check needed
3021 - * here.
3022 - */
3023 - arm_install_vdso(mm, addr + PAGE_SIZE);
3024 -
3025 - up_fail:
3026 + mm->context.sigpage = (PAGE_OFFSET + (get_random_int() % 0x3FFEFFE0)) & 0xFFFFFFFC;
3027 up_write(&mm->mmap_sem);
3028 - return ret;
3029 + return 0;
3030 }
3031 #endif
3032 diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c
3033 index ef9119f..31995a3 100644
3034 --- a/arch/arm/kernel/ptrace.c
3035 +++ b/arch/arm/kernel/ptrace.c
3036 @@ -928,10 +928,19 @@ static void tracehook_report_syscall(struct pt_regs *regs,
3037 regs->ARM_ip = ip;
3038 }
3039
3040 +#ifdef CONFIG_GRKERNSEC_SETXID
3041 +extern void gr_delayed_cred_worker(void);
3042 +#endif
3043 +
3044 asmlinkage int syscall_trace_enter(struct pt_regs *regs, int scno)
3045 {
3046 current_thread_info()->syscall = scno;
3047
3048 +#ifdef CONFIG_GRKERNSEC_SETXID
3049 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
3050 + gr_delayed_cred_worker();
3051 +#endif
3052 +
3053 /* Do the secure computing check first; failures should be fast. */
3054 #ifdef CONFIG_HAVE_ARCH_SECCOMP_FILTER
3055 if (secure_computing() == -1)
3056 diff --git a/arch/arm/kernel/reboot.c b/arch/arm/kernel/reboot.c
3057 index 3826935..8ed63ed 100644
3058 --- a/arch/arm/kernel/reboot.c
3059 +++ b/arch/arm/kernel/reboot.c
3060 @@ -122,6 +122,7 @@ void machine_power_off(void)
3061
3062 if (pm_power_off)
3063 pm_power_off();
3064 + while (1);
3065 }
3066
3067 /*
3068 diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
3069 index 20edd34..e18ac81 100644
3070 --- a/arch/arm/kernel/setup.c
3071 +++ b/arch/arm/kernel/setup.c
3072 @@ -110,21 +110,23 @@ EXPORT_SYMBOL(elf_hwcap);
3073 unsigned int elf_hwcap2 __read_mostly;
3074 EXPORT_SYMBOL(elf_hwcap2);
3075
3076 +pteval_t __supported_pte_mask __read_only;
3077 +pmdval_t __supported_pmd_mask __read_only;
3078
3079 #ifdef MULTI_CPU
3080 -struct processor processor __read_mostly;
3081 +struct processor processor __read_only;
3082 #endif
3083 #ifdef MULTI_TLB
3084 -struct cpu_tlb_fns cpu_tlb __read_mostly;
3085 +struct cpu_tlb_fns cpu_tlb __read_only;
3086 #endif
3087 #ifdef MULTI_USER
3088 -struct cpu_user_fns cpu_user __read_mostly;
3089 +struct cpu_user_fns cpu_user __read_only;
3090 #endif
3091 #ifdef MULTI_CACHE
3092 -struct cpu_cache_fns cpu_cache __read_mostly;
3093 +struct cpu_cache_fns cpu_cache __read_only;
3094 #endif
3095 #ifdef CONFIG_OUTER_CACHE
3096 -struct outer_cache_fns outer_cache __read_mostly;
3097 +struct outer_cache_fns outer_cache __read_only;
3098 EXPORT_SYMBOL(outer_cache);
3099 #endif
3100
3101 @@ -255,9 +257,13 @@ static int __get_cpu_architecture(void)
3102 * Register 0 and check for VMSAv7 or PMSAv7 */
3103 unsigned int mmfr0 = read_cpuid_ext(CPUID_EXT_MMFR0);
3104 if ((mmfr0 & 0x0000000f) >= 0x00000003 ||
3105 - (mmfr0 & 0x000000f0) >= 0x00000030)
3106 + (mmfr0 & 0x000000f0) >= 0x00000030) {
3107 cpu_arch = CPU_ARCH_ARMv7;
3108 - else if ((mmfr0 & 0x0000000f) == 0x00000002 ||
3109 + if ((mmfr0 & 0x0000000f) == 0x00000005 || (mmfr0 & 0x0000000f) == 0x00000004) {
3110 + __supported_pte_mask |= L_PTE_PXN;
3111 + __supported_pmd_mask |= PMD_PXNTABLE;
3112 + }
3113 + } else if ((mmfr0 & 0x0000000f) == 0x00000002 ||
3114 (mmfr0 & 0x000000f0) == 0x00000020)
3115 cpu_arch = CPU_ARCH_ARMv6;
3116 else
3117 diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
3118 index 7b8f214..ece8e28 100644
3119 --- a/arch/arm/kernel/signal.c
3120 +++ b/arch/arm/kernel/signal.c
3121 @@ -24,8 +24,6 @@
3122
3123 extern const unsigned long sigreturn_codes[7];
3124
3125 -static unsigned long signal_return_offset;
3126 -
3127 #ifdef CONFIG_CRUNCH
3128 static int preserve_crunch_context(struct crunch_sigframe __user *frame)
3129 {
3130 @@ -388,8 +386,7 @@ setup_return(struct pt_regs *regs, struct ksignal *ksig,
3131 * except when the MPU has protected the vectors
3132 * page from PL0
3133 */
3134 - retcode = mm->context.sigpage + signal_return_offset +
3135 - (idx << 2) + thumb;
3136 + retcode = mm->context.sigpage + (idx << 2) + thumb;
3137 } else
3138 #endif
3139 {
3140 @@ -601,33 +598,3 @@ do_work_pending(struct pt_regs *regs, unsigned int thread_flags, int syscall)
3141 } while (thread_flags & _TIF_WORK_MASK);
3142 return 0;
3143 }
3144 -
3145 -struct page *get_signal_page(void)
3146 -{
3147 - unsigned long ptr;
3148 - unsigned offset;
3149 - struct page *page;
3150 - void *addr;
3151 -
3152 - page = alloc_pages(GFP_KERNEL, 0);
3153 -
3154 - if (!page)
3155 - return NULL;
3156 -
3157 - addr = page_address(page);
3158 -
3159 - /* Give the signal return code some randomness */
3160 - offset = 0x200 + (get_random_int() & 0x7fc);
3161 - signal_return_offset = offset;
3162 -
3163 - /*
3164 - * Copy signal return handlers into the vector page, and
3165 - * set sigreturn to be a pointer to these.
3166 - */
3167 - memcpy(addr + offset, sigreturn_codes, sizeof(sigreturn_codes));
3168 -
3169 - ptr = (unsigned long)addr + offset;
3170 - flush_icache_range(ptr, ptr + sizeof(sigreturn_codes));
3171 -
3172 - return page;
3173 -}
3174 diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
3175 index b263613..93419ed 100644
3176 --- a/arch/arm/kernel/smp.c
3177 +++ b/arch/arm/kernel/smp.c
3178 @@ -78,7 +78,7 @@ enum ipi_msg_type {
3179
3180 static DECLARE_COMPLETION(cpu_running);
3181
3182 -static struct smp_operations smp_ops;
3183 +static struct smp_operations smp_ops __read_only;
3184
3185 void __init smp_set_ops(const struct smp_operations *ops)
3186 {
3187 diff --git a/arch/arm/kernel/tcm.c b/arch/arm/kernel/tcm.c
3188 index b10e136..cb5edf9 100644
3189 --- a/arch/arm/kernel/tcm.c
3190 +++ b/arch/arm/kernel/tcm.c
3191 @@ -64,7 +64,7 @@ static struct map_desc itcm_iomap[] __initdata = {
3192 .virtual = ITCM_OFFSET,
3193 .pfn = __phys_to_pfn(ITCM_OFFSET),
3194 .length = 0,
3195 - .type = MT_MEMORY_RWX_ITCM,
3196 + .type = MT_MEMORY_RX_ITCM,
3197 }
3198 };
3199
3200 @@ -362,7 +362,9 @@ no_dtcm:
3201 start = &__sitcm_text;
3202 end = &__eitcm_text;
3203 ram = &__itcm_start;
3204 + pax_open_kernel();
3205 memcpy(start, ram, itcm_code_sz);
3206 + pax_close_kernel();
3207 pr_debug("CPU ITCM: copied code from %p - %p\n",
3208 start, end);
3209 itcm_present = true;
3210 diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
3211 index bc69838..e5dfdd4 100644
3212 --- a/arch/arm/kernel/traps.c
3213 +++ b/arch/arm/kernel/traps.c
3214 @@ -65,7 +65,7 @@ static void dump_mem(const char *, const char *, unsigned long, unsigned long);
3215 void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long frame)
3216 {
3217 #ifdef CONFIG_KALLSYMS
3218 - printk("[<%08lx>] (%ps) from [<%08lx>] (%pS)\n", where, (void *)where, from, (void *)from);
3219 + printk("[<%08lx>] (%pA) from [<%08lx>] (%pA)\n", where, (void *)where, from, (void *)from);
3220 #else
3221 printk("Function entered at [<%08lx>] from [<%08lx>]\n", where, from);
3222 #endif
3223 @@ -267,6 +267,8 @@ static arch_spinlock_t die_lock = __ARCH_SPIN_LOCK_UNLOCKED;
3224 static int die_owner = -1;
3225 static unsigned int die_nest_count;
3226
3227 +extern void gr_handle_kernel_exploit(void);
3228 +
3229 static unsigned long oops_begin(void)
3230 {
3231 int cpu;
3232 @@ -309,6 +311,9 @@ static void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
3233 panic("Fatal exception in interrupt");
3234 if (panic_on_oops)
3235 panic("Fatal exception");
3236 +
3237 + gr_handle_kernel_exploit();
3238 +
3239 if (signr)
3240 do_exit(signr);
3241 }
3242 diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
3243 index 8b60fde..8d986dd 100644
3244 --- a/arch/arm/kernel/vmlinux.lds.S
3245 +++ b/arch/arm/kernel/vmlinux.lds.S
3246 @@ -37,7 +37,7 @@
3247 #endif
3248
3249 #if (defined(CONFIG_SMP_ON_UP) && !defined(CONFIG_DEBUG_SPINLOCK)) || \
3250 - defined(CONFIG_GENERIC_BUG)
3251 + defined(CONFIG_GENERIC_BUG) || defined(CONFIG_PAX_REFCOUNT)
3252 #define ARM_EXIT_KEEP(x) x
3253 #define ARM_EXIT_DISCARD(x)
3254 #else
3255 @@ -120,6 +120,8 @@ SECTIONS
3256 #ifdef CONFIG_DEBUG_RODATA
3257 . = ALIGN(1<<SECTION_SHIFT);
3258 #endif
3259 + _etext = .; /* End of text section */
3260 +
3261 RO_DATA(PAGE_SIZE)
3262
3263 . = ALIGN(4);
3264 @@ -150,8 +152,6 @@ SECTIONS
3265
3266 NOTES
3267
3268 - _etext = .; /* End of text and rodata section */
3269 -
3270 #ifndef CONFIG_XIP_KERNEL
3271 # ifdef CONFIG_ARM_KERNMEM_PERMS
3272 . = ALIGN(1<<SECTION_SHIFT);
3273 diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c
3274 index e06fd29..0d3f8ab 100644
3275 --- a/arch/arm/kvm/arm.c
3276 +++ b/arch/arm/kvm/arm.c
3277 @@ -57,7 +57,7 @@ static unsigned long hyp_default_vectors;
3278 static DEFINE_PER_CPU(struct kvm_vcpu *, kvm_arm_running_vcpu);
3279
3280 /* The VMID used in the VTTBR */
3281 -static atomic64_t kvm_vmid_gen = ATOMIC64_INIT(1);
3282 +static atomic64_unchecked_t kvm_vmid_gen = ATOMIC64_INIT(1);
3283 static u8 kvm_next_vmid;
3284 static DEFINE_SPINLOCK(kvm_vmid_lock);
3285
3286 @@ -380,7 +380,7 @@ void force_vm_exit(const cpumask_t *mask)
3287 */
3288 static bool need_new_vmid_gen(struct kvm *kvm)
3289 {
3290 - return unlikely(kvm->arch.vmid_gen != atomic64_read(&kvm_vmid_gen));
3291 + return unlikely(kvm->arch.vmid_gen != atomic64_read_unchecked(&kvm_vmid_gen));
3292 }
3293
3294 /**
3295 @@ -413,7 +413,7 @@ static void update_vttbr(struct kvm *kvm)
3296
3297 /* First user of a new VMID generation? */
3298 if (unlikely(kvm_next_vmid == 0)) {
3299 - atomic64_inc(&kvm_vmid_gen);
3300 + atomic64_inc_unchecked(&kvm_vmid_gen);
3301 kvm_next_vmid = 1;
3302
3303 /*
3304 @@ -430,7 +430,7 @@ static void update_vttbr(struct kvm *kvm)
3305 kvm_call_hyp(__kvm_flush_vm_context);
3306 }
3307
3308 - kvm->arch.vmid_gen = atomic64_read(&kvm_vmid_gen);
3309 + kvm->arch.vmid_gen = atomic64_read_unchecked(&kvm_vmid_gen);
3310 kvm->arch.vmid = kvm_next_vmid;
3311 kvm_next_vmid++;
3312
3313 diff --git a/arch/arm/lib/copy_page.S b/arch/arm/lib/copy_page.S
3314 index 6ee2f67..d1cce76 100644
3315 --- a/arch/arm/lib/copy_page.S
3316 +++ b/arch/arm/lib/copy_page.S
3317 @@ -10,6 +10,7 @@
3318 * ASM optimised string functions
3319 */
3320 #include <linux/linkage.h>
3321 +#include <linux/const.h>
3322 #include <asm/assembler.h>
3323 #include <asm/asm-offsets.h>
3324 #include <asm/cache.h>
3325 diff --git a/arch/arm/lib/csumpartialcopyuser.S b/arch/arm/lib/csumpartialcopyuser.S
3326 index 1712f13..a3165dc 100644
3327 --- a/arch/arm/lib/csumpartialcopyuser.S
3328 +++ b/arch/arm/lib/csumpartialcopyuser.S
3329 @@ -71,8 +71,8 @@
3330 * Returns : r0 = checksum, [[sp, #0], #0] = 0 or -EFAULT
3331 */
3332
3333 -#define FN_ENTRY ENTRY(csum_partial_copy_from_user)
3334 -#define FN_EXIT ENDPROC(csum_partial_copy_from_user)
3335 +#define FN_ENTRY ENTRY(__csum_partial_copy_from_user)
3336 +#define FN_EXIT ENDPROC(__csum_partial_copy_from_user)
3337
3338 #include "csumpartialcopygeneric.S"
3339
3340 diff --git a/arch/arm/lib/delay.c b/arch/arm/lib/delay.c
3341 index 8044591..c9b2609 100644
3342 --- a/arch/arm/lib/delay.c
3343 +++ b/arch/arm/lib/delay.c
3344 @@ -29,7 +29,7 @@
3345 /*
3346 * Default to the loop-based delay implementation.
3347 */
3348 -struct arm_delay_ops arm_delay_ops = {
3349 +struct arm_delay_ops arm_delay_ops __read_only = {
3350 .delay = __loop_delay,
3351 .const_udelay = __loop_const_udelay,
3352 .udelay = __loop_udelay,
3353 diff --git a/arch/arm/lib/uaccess_with_memcpy.c b/arch/arm/lib/uaccess_with_memcpy.c
3354 index 588bbc2..4f57e0b 100644
3355 --- a/arch/arm/lib/uaccess_with_memcpy.c
3356 +++ b/arch/arm/lib/uaccess_with_memcpy.c
3357 @@ -85,7 +85,7 @@ pin_page_for_write(const void __user *_addr, pte_t **ptep, spinlock_t **ptlp)
3358 return 1;
3359 }
3360
3361 -static unsigned long noinline
3362 +static unsigned long noinline __size_overflow(3)
3363 __copy_to_user_memcpy(void __user *to, const void *from, unsigned long n)
3364 {
3365 unsigned long ua_flags;
3366 @@ -158,7 +158,7 @@ arm_copy_to_user(void __user *to, const void *from, unsigned long n)
3367 return n;
3368 }
3369
3370 -static unsigned long noinline
3371 +static unsigned long noinline __size_overflow(2)
3372 __clear_user_memset(void __user *addr, unsigned long n)
3373 {
3374 unsigned long ua_flags;
3375 diff --git a/arch/arm/mach-exynos/suspend.c b/arch/arm/mach-exynos/suspend.c
3376 index c169cc3..f290a77 100644
3377 --- a/arch/arm/mach-exynos/suspend.c
3378 +++ b/arch/arm/mach-exynos/suspend.c
3379 @@ -734,8 +734,10 @@ void __init exynos_pm_init(void)
3380 tmp |= pm_data->wake_disable_mask;
3381 pmu_raw_writel(tmp, S5P_WAKEUP_MASK);
3382
3383 - exynos_pm_syscore_ops.suspend = pm_data->pm_suspend;
3384 - exynos_pm_syscore_ops.resume = pm_data->pm_resume;
3385 + pax_open_kernel();
3386 + *(void **)&exynos_pm_syscore_ops.suspend = pm_data->pm_suspend;
3387 + *(void **)&exynos_pm_syscore_ops.resume = pm_data->pm_resume;
3388 + pax_close_kernel();
3389
3390 register_syscore_ops(&exynos_pm_syscore_ops);
3391 suspend_set_ops(&exynos_suspend_ops);
3392 diff --git a/arch/arm/mach-mvebu/coherency.c b/arch/arm/mach-mvebu/coherency.c
3393 index 55348ee..bfcd336 100644
3394 --- a/arch/arm/mach-mvebu/coherency.c
3395 +++ b/arch/arm/mach-mvebu/coherency.c
3396 @@ -163,7 +163,7 @@ exit:
3397
3398 /*
3399 * This ioremap hook is used on Armada 375/38x to ensure that PCIe
3400 - * memory areas are mapped as MT_UNCACHED instead of MT_DEVICE. This
3401 + * memory areas are mapped as MT_UNCACHED_RW instead of MT_DEVICE. This
3402 * is needed as a workaround for a deadlock issue between the PCIe
3403 * interface and the cache controller.
3404 */
3405 @@ -176,7 +176,7 @@ armada_pcie_wa_ioremap_caller(phys_addr_t phys_addr, size_t size,
3406 mvebu_mbus_get_pcie_mem_aperture(&pcie_mem);
3407
3408 if (pcie_mem.start <= phys_addr && (phys_addr + size) <= pcie_mem.end)
3409 - mtype = MT_UNCACHED;
3410 + mtype = MT_UNCACHED_RW;
3411
3412 return __arm_ioremap_caller(phys_addr, size, mtype, caller);
3413 }
3414 diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c
3415 index b6443a4..20a0b74 100644
3416 --- a/arch/arm/mach-omap2/board-n8x0.c
3417 +++ b/arch/arm/mach-omap2/board-n8x0.c
3418 @@ -569,7 +569,7 @@ static int n8x0_menelaus_late_init(struct device *dev)
3419 }
3420 #endif
3421
3422 -struct menelaus_platform_data n8x0_menelaus_platform_data __initdata = {
3423 +struct menelaus_platform_data n8x0_menelaus_platform_data __initconst = {
3424 .late_init = n8x0_menelaus_late_init,
3425 };
3426
3427 diff --git a/arch/arm/mach-omap2/omap-mpuss-lowpower.c b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
3428 index 65024af..70bf184 100644
3429 --- a/arch/arm/mach-omap2/omap-mpuss-lowpower.c
3430 +++ b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
3431 @@ -86,7 +86,7 @@ struct cpu_pm_ops {
3432 void (*resume)(void);
3433 void (*scu_prepare)(unsigned int cpu_id, unsigned int cpu_state);
3434 void (*hotplug_restart)(void);
3435 -};
3436 +} __no_const;
3437
3438 static DEFINE_PER_CPU(struct omap4_cpu_pm_info, omap4_pm_info);
3439 static struct powerdomain *mpuss_pd;
3440 @@ -105,7 +105,7 @@ static void dummy_cpu_resume(void)
3441 static void dummy_scu_prepare(unsigned int cpu_id, unsigned int cpu_state)
3442 {}
3443
3444 -static struct cpu_pm_ops omap_pm_ops = {
3445 +static struct cpu_pm_ops omap_pm_ops __read_only = {
3446 .finish_suspend = default_finish_suspend,
3447 .resume = dummy_cpu_resume,
3448 .scu_prepare = dummy_scu_prepare,
3449 diff --git a/arch/arm/mach-omap2/omap-smp.c b/arch/arm/mach-omap2/omap-smp.c
3450 index 79e1f87..6dd91e3 100644
3451 --- a/arch/arm/mach-omap2/omap-smp.c
3452 +++ b/arch/arm/mach-omap2/omap-smp.c
3453 @@ -19,6 +19,7 @@
3454 #include <linux/device.h>
3455 #include <linux/smp.h>
3456 #include <linux/io.h>
3457 +#include <linux/irq.h>
3458 #include <linux/irqchip/arm-gic.h>
3459
3460 #include <asm/smp_scu.h>
3461 diff --git a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c
3462 index 72ebc4c..18c4406 100644
3463 --- a/arch/arm/mach-omap2/omap_device.c
3464 +++ b/arch/arm/mach-omap2/omap_device.c
3465 @@ -504,7 +504,7 @@ void omap_device_delete(struct omap_device *od)
3466 struct platform_device __init *omap_device_build(const char *pdev_name,
3467 int pdev_id,
3468 struct omap_hwmod *oh,
3469 - void *pdata, int pdata_len)
3470 + const void *pdata, int pdata_len)
3471 {
3472 struct omap_hwmod *ohs[] = { oh };
3473
3474 @@ -532,7 +532,7 @@ struct platform_device __init *omap_device_build(const char *pdev_name,
3475 struct platform_device __init *omap_device_build_ss(const char *pdev_name,
3476 int pdev_id,
3477 struct omap_hwmod **ohs,
3478 - int oh_cnt, void *pdata,
3479 + int oh_cnt, const void *pdata,
3480 int pdata_len)
3481 {
3482 int ret = -ENOMEM;
3483 diff --git a/arch/arm/mach-omap2/omap_device.h b/arch/arm/mach-omap2/omap_device.h
3484 index 78c02b3..c94109a 100644
3485 --- a/arch/arm/mach-omap2/omap_device.h
3486 +++ b/arch/arm/mach-omap2/omap_device.h
3487 @@ -72,12 +72,12 @@ int omap_device_idle(struct platform_device *pdev);
3488 /* Core code interface */
3489
3490 struct platform_device *omap_device_build(const char *pdev_name, int pdev_id,
3491 - struct omap_hwmod *oh, void *pdata,
3492 + struct omap_hwmod *oh, const void *pdata,
3493 int pdata_len);
3494
3495 struct platform_device *omap_device_build_ss(const char *pdev_name, int pdev_id,
3496 struct omap_hwmod **oh, int oh_cnt,
3497 - void *pdata, int pdata_len);
3498 + const void *pdata, int pdata_len);
3499
3500 struct omap_device *omap_device_alloc(struct platform_device *pdev,
3501 struct omap_hwmod **ohs, int oh_cnt);
3502 diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
3503 index 48495ad8..9502fdd 100644
3504 --- a/arch/arm/mach-omap2/omap_hwmod.c
3505 +++ b/arch/arm/mach-omap2/omap_hwmod.c
3506 @@ -200,10 +200,10 @@ struct omap_hwmod_soc_ops {
3507 int (*init_clkdm)(struct omap_hwmod *oh);
3508 void (*update_context_lost)(struct omap_hwmod *oh);
3509 int (*get_context_lost)(struct omap_hwmod *oh);
3510 -};
3511 +} __no_const;
3512
3513 /* soc_ops: adapts the omap_hwmod code to the currently-booted SoC */
3514 -static struct omap_hwmod_soc_ops soc_ops;
3515 +static struct omap_hwmod_soc_ops soc_ops __read_only;
3516
3517 /* omap_hwmod_list contains all registered struct omap_hwmods */
3518 static LIST_HEAD(omap_hwmod_list);
3519 diff --git a/arch/arm/mach-omap2/powerdomains43xx_data.c b/arch/arm/mach-omap2/powerdomains43xx_data.c
3520 index 95fee54..cfa9cf1 100644
3521 --- a/arch/arm/mach-omap2/powerdomains43xx_data.c
3522 +++ b/arch/arm/mach-omap2/powerdomains43xx_data.c
3523 @@ -10,6 +10,7 @@
3524
3525 #include <linux/kernel.h>
3526 #include <linux/init.h>
3527 +#include <asm/pgtable.h>
3528
3529 #include "powerdomain.h"
3530
3531 @@ -129,7 +130,9 @@ static int am43xx_check_vcvp(void)
3532
3533 void __init am43xx_powerdomains_init(void)
3534 {
3535 - omap4_pwrdm_operations.pwrdm_has_voltdm = am43xx_check_vcvp;
3536 + pax_open_kernel();
3537 + *(void **)&omap4_pwrdm_operations.pwrdm_has_voltdm = am43xx_check_vcvp;
3538 + pax_close_kernel();
3539 pwrdm_register_platform_funcs(&omap4_pwrdm_operations);
3540 pwrdm_register_pwrdms(powerdomains_am43xx);
3541 pwrdm_complete_init();
3542 diff --git a/arch/arm/mach-omap2/wd_timer.c b/arch/arm/mach-omap2/wd_timer.c
3543 index ff0a68c..b312aa0 100644
3544 --- a/arch/arm/mach-omap2/wd_timer.c
3545 +++ b/arch/arm/mach-omap2/wd_timer.c
3546 @@ -110,7 +110,9 @@ static int __init omap_init_wdt(void)
3547 struct omap_hwmod *oh;
3548 char *oh_name = "wd_timer2";
3549 char *dev_name = "omap_wdt";
3550 - struct omap_wd_timer_platform_data pdata;
3551 + static struct omap_wd_timer_platform_data pdata = {
3552 + .read_reset_sources = prm_read_reset_sources
3553 + };
3554
3555 if (!cpu_class_is_omap2() || of_have_populated_dt())
3556 return 0;
3557 @@ -121,8 +123,6 @@ static int __init omap_init_wdt(void)
3558 return -EINVAL;
3559 }
3560
3561 - pdata.read_reset_sources = prm_read_reset_sources;
3562 -
3563 pdev = omap_device_build(dev_name, id, oh, &pdata,
3564 sizeof(struct omap_wd_timer_platform_data));
3565 WARN(IS_ERR(pdev), "Can't build omap_device for %s:%s.\n",
3566 diff --git a/arch/arm/mach-shmobile/platsmp-apmu.c b/arch/arm/mach-shmobile/platsmp-apmu.c
3567 index 911884f..2f3aa90 100644
3568 --- a/arch/arm/mach-shmobile/platsmp-apmu.c
3569 +++ b/arch/arm/mach-shmobile/platsmp-apmu.c
3570 @@ -22,6 +22,7 @@
3571 #include <asm/proc-fns.h>
3572 #include <asm/smp_plat.h>
3573 #include <asm/suspend.h>
3574 +#include <asm/pgtable.h>
3575 #include "common.h"
3576 #include "platsmp-apmu.h"
3577
3578 @@ -233,6 +234,8 @@ static int shmobile_smp_apmu_enter_suspend(suspend_state_t state)
3579
3580 void __init shmobile_smp_apmu_suspend_init(void)
3581 {
3582 - shmobile_suspend_ops.enter = shmobile_smp_apmu_enter_suspend;
3583 + pax_open_kernel();
3584 + *(void **)&shmobile_suspend_ops.enter = shmobile_smp_apmu_enter_suspend;
3585 + pax_close_kernel();
3586 }
3587 #endif
3588 diff --git a/arch/arm/mach-tegra/cpuidle-tegra20.c b/arch/arm/mach-tegra/cpuidle-tegra20.c
3589 index 7469347..1ecc350 100644
3590 --- a/arch/arm/mach-tegra/cpuidle-tegra20.c
3591 +++ b/arch/arm/mach-tegra/cpuidle-tegra20.c
3592 @@ -177,7 +177,7 @@ static int tegra20_idle_lp2_coupled(struct cpuidle_device *dev,
3593 bool entered_lp2 = false;
3594
3595 if (tegra_pending_sgi())
3596 - ACCESS_ONCE(abort_flag) = true;
3597 + ACCESS_ONCE_RW(abort_flag) = true;
3598
3599 cpuidle_coupled_parallel_barrier(dev, &abort_barrier);
3600
3601 diff --git a/arch/arm/mach-tegra/irq.c b/arch/arm/mach-tegra/irq.c
3602 index 3b9098d..15b390f 100644
3603 --- a/arch/arm/mach-tegra/irq.c
3604 +++ b/arch/arm/mach-tegra/irq.c
3605 @@ -20,6 +20,7 @@
3606 #include <linux/cpu_pm.h>
3607 #include <linux/interrupt.h>
3608 #include <linux/io.h>
3609 +#include <linux/irq.h>
3610 #include <linux/irqchip/arm-gic.h>
3611 #include <linux/irq.h>
3612 #include <linux/kernel.h>
3613 diff --git a/arch/arm/mach-ux500/pm.c b/arch/arm/mach-ux500/pm.c
3614 index 8538910..2f39bc4 100644
3615 --- a/arch/arm/mach-ux500/pm.c
3616 +++ b/arch/arm/mach-ux500/pm.c
3617 @@ -10,6 +10,7 @@
3618 */
3619
3620 #include <linux/kernel.h>
3621 +#include <linux/irq.h>
3622 #include <linux/irqchip/arm-gic.h>
3623 #include <linux/delay.h>
3624 #include <linux/io.h>
3625 diff --git a/arch/arm/mach-zynq/platsmp.c b/arch/arm/mach-zynq/platsmp.c
3626 index f66816c..228b951 100644
3627 --- a/arch/arm/mach-zynq/platsmp.c
3628 +++ b/arch/arm/mach-zynq/platsmp.c
3629 @@ -24,6 +24,7 @@
3630 #include <linux/io.h>
3631 #include <asm/cacheflush.h>
3632 #include <asm/smp_scu.h>
3633 +#include <linux/irq.h>
3634 #include <linux/irqchip/arm-gic.h>
3635 #include "common.h"
3636
3637 diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
3638 index 4121886..d24c0a1 100644
3639 --- a/arch/arm/mm/Kconfig
3640 +++ b/arch/arm/mm/Kconfig
3641 @@ -442,6 +442,7 @@ config CPU_32v5
3642
3643 config CPU_32v6
3644 bool
3645 + select CPU_USE_DOMAINS if CPU_V6 && MMU && !PAX_KERNEXEC && !PAX_MEMORY_UDEREF
3646 select TLS_REG_EMUL if !CPU_32v6K && !MMU
3647
3648 config CPU_32v6K
3649 @@ -596,6 +597,7 @@ config CPU_CP15_MPU
3650
3651 config CPU_USE_DOMAINS
3652 bool
3653 + depends on !ARM_LPAE && !PAX_KERNEXEC && !PAX_MEMORY_UDEREF
3654 help
3655 This option enables or disables the use of domain switching
3656 via the set_fs() function.
3657 @@ -806,7 +808,7 @@ config NEED_KUSER_HELPERS
3658
3659 config KUSER_HELPERS
3660 bool "Enable kuser helpers in vector page" if !NEED_KUSER_HELPERS
3661 - depends on MMU
3662 + depends on MMU && (!(CPU_V6 || CPU_V6K || CPU_V7) || GRKERNSEC_OLD_ARM_USERLAND)
3663 default y
3664 help
3665 Warning: disabling this option may break user programs.
3666 @@ -820,7 +822,7 @@ config KUSER_HELPERS
3667 See Documentation/arm/kernel_user_helpers.txt for details.
3668
3669 However, the fixed address nature of these helpers can be used
3670 - by ROP (return orientated programming) authors when creating
3671 + by ROP (Return Oriented Programming) authors when creating
3672 exploits.
3673
3674 If all of the binaries and libraries which run on your platform
3675 @@ -835,7 +837,7 @@ config KUSER_HELPERS
3676
3677 config VDSO
3678 bool "Enable VDSO for acceleration of some system calls"
3679 - depends on AEABI && MMU && CPU_V7
3680 + depends on AEABI && MMU && CPU_V7 && !PAX_KERNEXEC && !PAX_MEMORY_UDEREF
3681 default y if ARM_ARCH_TIMER
3682 select GENERIC_TIME_VSYSCALL
3683 help
3684 diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
3685 index 493692d..42a4504 100644
3686 --- a/arch/arm/mm/cache-l2x0.c
3687 +++ b/arch/arm/mm/cache-l2x0.c
3688 @@ -44,7 +44,7 @@ struct l2c_init_data {
3689 void (*configure)(void __iomem *);
3690 void (*unlock)(void __iomem *, unsigned);
3691 struct outer_cache_fns outer_cache;
3692 -};
3693 +} __do_const;
3694
3695 #define CACHE_LINE_SIZE 32
3696
3697 diff --git a/arch/arm/mm/context.c b/arch/arm/mm/context.c
3698 index c8c8b9e..c55cc79 100644
3699 --- a/arch/arm/mm/context.c
3700 +++ b/arch/arm/mm/context.c
3701 @@ -43,7 +43,7 @@
3702 #define NUM_USER_ASIDS ASID_FIRST_VERSION
3703
3704 static DEFINE_RAW_SPINLOCK(cpu_asid_lock);
3705 -static atomic64_t asid_generation = ATOMIC64_INIT(ASID_FIRST_VERSION);
3706 +static atomic64_unchecked_t asid_generation = ATOMIC64_INIT(ASID_FIRST_VERSION);
3707 static DECLARE_BITMAP(asid_map, NUM_USER_ASIDS);
3708
3709 static DEFINE_PER_CPU(atomic64_t, active_asids);
3710 @@ -193,7 +193,7 @@ static u64 new_context(struct mm_struct *mm, unsigned int cpu)
3711 {
3712 static u32 cur_idx = 1;
3713 u64 asid = atomic64_read(&mm->context.id);
3714 - u64 generation = atomic64_read(&asid_generation);
3715 + u64 generation = atomic64_read_unchecked(&asid_generation);
3716
3717 if (asid != 0) {
3718 u64 newasid = generation | (asid & ~ASID_MASK);
3719 @@ -225,7 +225,7 @@ static u64 new_context(struct mm_struct *mm, unsigned int cpu)
3720 */
3721 asid = find_next_zero_bit(asid_map, NUM_USER_ASIDS, cur_idx);
3722 if (asid == NUM_USER_ASIDS) {
3723 - generation = atomic64_add_return(ASID_FIRST_VERSION,
3724 + generation = atomic64_add_return_unchecked(ASID_FIRST_VERSION,
3725 &asid_generation);
3726 flush_context(cpu);
3727 asid = find_next_zero_bit(asid_map, NUM_USER_ASIDS, 1);
3728 @@ -254,14 +254,14 @@ void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk)
3729 cpu_set_reserved_ttbr0();
3730
3731 asid = atomic64_read(&mm->context.id);
3732 - if (!((asid ^ atomic64_read(&asid_generation)) >> ASID_BITS)
3733 + if (!((asid ^ atomic64_read_unchecked(&asid_generation)) >> ASID_BITS)
3734 && atomic64_xchg(&per_cpu(active_asids, cpu), asid))
3735 goto switch_mm_fastpath;
3736
3737 raw_spin_lock_irqsave(&cpu_asid_lock, flags);
3738 /* Check that our ASID belongs to the current generation. */
3739 asid = atomic64_read(&mm->context.id);
3740 - if ((asid ^ atomic64_read(&asid_generation)) >> ASID_BITS) {
3741 + if ((asid ^ atomic64_read_unchecked(&asid_generation)) >> ASID_BITS) {
3742 asid = new_context(mm, cpu);
3743 atomic64_set(&mm->context.id, asid);
3744 }
3745 diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
3746 index daafcf1..8205ed6 100644
3747 --- a/arch/arm/mm/fault.c
3748 +++ b/arch/arm/mm/fault.c
3749 @@ -25,6 +25,7 @@
3750 #include <asm/system_misc.h>
3751 #include <asm/system_info.h>
3752 #include <asm/tlbflush.h>
3753 +#include <asm/sections.h>
3754
3755 #include "fault.h"
3756
3757 @@ -138,6 +139,31 @@ __do_kernel_fault(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
3758 if (fixup_exception(regs))
3759 return;
3760
3761 +#ifdef CONFIG_PAX_MEMORY_UDEREF
3762 + if (addr < TASK_SIZE) {
3763 + if (current->signal->curr_ip)
3764 + 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),
3765 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()), addr);
3766 + else
3767 + printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to access userland memory at %08lx\n", current->comm, task_pid_nr(current),
3768 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()), addr);
3769 + }
3770 +#endif
3771 +
3772 +#ifdef CONFIG_PAX_KERNEXEC
3773 + if ((fsr & FSR_WRITE) &&
3774 + (((unsigned long)_stext <= addr && addr < init_mm.end_code) ||
3775 + (MODULES_VADDR <= addr && addr < MODULES_END)))
3776 + {
3777 + if (current->signal->curr_ip)
3778 + 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),
3779 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
3780 + else
3781 + printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n", current->comm, task_pid_nr(current),
3782 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
3783 + }
3784 +#endif
3785 +
3786 /*
3787 * No handler, we'll have to terminate things with extreme prejudice.
3788 */
3789 @@ -173,6 +199,13 @@ __do_user_fault(struct task_struct *tsk, unsigned long addr,
3790 }
3791 #endif
3792
3793 +#ifdef CONFIG_PAX_PAGEEXEC
3794 + if ((tsk->mm->pax_flags & MF_PAX_PAGEEXEC) && (fsr & FSR_LNX_PF)) {
3795 + pax_report_fault(regs, (void *)regs->ARM_pc, (void *)regs->ARM_sp);
3796 + do_group_exit(SIGKILL);
3797 + }
3798 +#endif
3799 +
3800 tsk->thread.address = addr;
3801 tsk->thread.error_code = fsr;
3802 tsk->thread.trap_no = 14;
3803 @@ -400,6 +433,33 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
3804 }
3805 #endif /* CONFIG_MMU */
3806
3807 +#ifdef CONFIG_PAX_PAGEEXEC
3808 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
3809 +{
3810 + long i;
3811 +
3812 + printk(KERN_ERR "PAX: bytes at PC: ");
3813 + for (i = 0; i < 20; i++) {
3814 + unsigned char c;
3815 + if (get_user(c, (__force unsigned char __user *)pc+i))
3816 + printk(KERN_CONT "?? ");
3817 + else
3818 + printk(KERN_CONT "%02x ", c);
3819 + }
3820 + printk("\n");
3821 +
3822 + printk(KERN_ERR "PAX: bytes at SP-4: ");
3823 + for (i = -1; i < 20; i++) {
3824 + unsigned long c;
3825 + if (get_user(c, (__force unsigned long __user *)sp+i))
3826 + printk(KERN_CONT "???????? ");
3827 + else
3828 + printk(KERN_CONT "%08lx ", c);
3829 + }
3830 + printk("\n");
3831 +}
3832 +#endif
3833 +
3834 /*
3835 * First Level Translation Fault Handler
3836 *
3837 @@ -547,9 +607,22 @@ do_DataAbort(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
3838 const struct fsr_info *inf = fsr_info + fsr_fs(fsr);
3839 struct siginfo info;
3840
3841 +#ifdef CONFIG_PAX_MEMORY_UDEREF
3842 + if (addr < TASK_SIZE && is_domain_fault(fsr)) {
3843 + if (current->signal->curr_ip)
3844 + 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),
3845 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()), addr);
3846 + else
3847 + printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to access userland memory at %08lx\n", current->comm, task_pid_nr(current),
3848 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()), addr);
3849 + goto die;
3850 + }
3851 +#endif
3852 +
3853 if (!inf->fn(addr, fsr & ~FSR_LNX_PF, regs))
3854 return;
3855
3856 +die:
3857 pr_alert("Unhandled fault: %s (0x%03x) at 0x%08lx\n",
3858 inf->name, fsr, addr);
3859 show_pte(current->mm, addr);
3860 @@ -574,15 +647,104 @@ hook_ifault_code(int nr, int (*fn)(unsigned long, unsigned int, struct pt_regs *
3861 ifsr_info[nr].name = name;
3862 }
3863
3864 +asmlinkage int sys_sigreturn(struct pt_regs *regs);
3865 +asmlinkage int sys_rt_sigreturn(struct pt_regs *regs);
3866 +
3867 asmlinkage void __exception
3868 do_PrefetchAbort(unsigned long addr, unsigned int ifsr, struct pt_regs *regs)
3869 {
3870 const struct fsr_info *inf = ifsr_info + fsr_fs(ifsr);
3871 struct siginfo info;
3872 + unsigned long pc = instruction_pointer(regs);
3873 +
3874 + if (user_mode(regs)) {
3875 + unsigned long sigpage = current->mm->context.sigpage;
3876 +
3877 + if (sigpage <= pc && pc < sigpage + 7*4) {
3878 + if (pc < sigpage + 3*4)
3879 + sys_sigreturn(regs);
3880 + else
3881 + sys_rt_sigreturn(regs);
3882 + return;
3883 + }
3884 + if (pc == 0xffff0f60UL) {
3885 + /*
3886 + * PaX: __kuser_cmpxchg64 emulation
3887 + */
3888 + // TODO
3889 + //regs->ARM_pc = regs->ARM_lr;
3890 + //return;
3891 + }
3892 + if (pc == 0xffff0fa0UL) {
3893 + /*
3894 + * PaX: __kuser_memory_barrier emulation
3895 + */
3896 + // dmb(); implied by the exception
3897 + regs->ARM_pc = regs->ARM_lr;
3898 + return;
3899 + }
3900 + if (pc == 0xffff0fc0UL) {
3901 + /*
3902 + * PaX: __kuser_cmpxchg emulation
3903 + */
3904 + // TODO
3905 + //long new;
3906 + //int op;
3907 +
3908 + //op = FUTEX_OP_SET << 28;
3909 + //new = futex_atomic_op_inuser(op, regs->ARM_r2);
3910 + //regs->ARM_r0 = old != new;
3911 + //regs->ARM_pc = regs->ARM_lr;
3912 + //return;
3913 + }
3914 + if (pc == 0xffff0fe0UL) {
3915 + /*
3916 + * PaX: __kuser_get_tls emulation
3917 + */
3918 + regs->ARM_r0 = current_thread_info()->tp_value[0];
3919 + regs->ARM_pc = regs->ARM_lr;
3920 + return;
3921 + }
3922 + }
3923 +
3924 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
3925 + else if (is_domain_fault(ifsr) || is_xn_fault(ifsr)) {
3926 + if (current->signal->curr_ip)
3927 + 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),
3928 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()),
3929 + pc >= TASK_SIZE ? "non-executable kernel" : "userland", pc);
3930 + else
3931 + printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to execute %s memory at %08lx\n", current->comm, task_pid_nr(current),
3932 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()),
3933 + pc >= TASK_SIZE ? "non-executable kernel" : "userland", pc);
3934 + goto die;
3935 + }
3936 +#endif
3937 +
3938 +#ifdef CONFIG_PAX_REFCOUNT
3939 + if (fsr_fs(ifsr) == FAULT_CODE_DEBUG) {
3940 +#ifdef CONFIG_THUMB2_KERNEL
3941 + unsigned short bkpt;
3942 +
3943 + if (!probe_kernel_address((const unsigned short *)pc, bkpt) && cpu_to_le16(bkpt) == 0xbef1) {
3944 +#else
3945 + unsigned int bkpt;
3946 +
3947 + if (!probe_kernel_address(pc, bkpt) && cpu_to_le32(bkpt) == 0xe12f1073) {
3948 +#endif
3949 + current->thread.error_code = ifsr;
3950 + current->thread.trap_no = 0;
3951 + pax_report_refcount_overflow(regs);
3952 + fixup_exception(regs);
3953 + return;
3954 + }
3955 + }
3956 +#endif
3957
3958 if (!inf->fn(addr, ifsr | FSR_LNX_PF, regs))
3959 return;
3960
3961 +die:
3962 pr_alert("Unhandled prefetch abort: %s (0x%03x) at 0x%08lx\n",
3963 inf->name, ifsr, addr);
3964
3965 diff --git a/arch/arm/mm/fault.h b/arch/arm/mm/fault.h
3966 index 05ec5e0..0b70277 100644
3967 --- a/arch/arm/mm/fault.h
3968 +++ b/arch/arm/mm/fault.h
3969 @@ -3,6 +3,7 @@
3970
3971 /*
3972 * Fault status register encodings. We steal bit 31 for our own purposes.
3973 + * Set when the FSR value is from an instruction fault.
3974 */
3975 #define FSR_LNX_PF (1 << 31)
3976 #define FSR_WRITE (1 << 11)
3977 @@ -22,6 +23,17 @@ static inline int fsr_fs(unsigned int fsr)
3978 }
3979 #endif
3980
3981 +/* valid for LPAE and !LPAE */
3982 +static inline int is_xn_fault(unsigned int fsr)
3983 +{
3984 + return ((fsr_fs(fsr) & 0x3c) == 0xc);
3985 +}
3986 +
3987 +static inline int is_domain_fault(unsigned int fsr)
3988 +{
3989 + return ((fsr_fs(fsr) & 0xD) == 0x9);
3990 +}
3991 +
3992 void do_bad_area(unsigned long addr, unsigned int fsr, struct pt_regs *regs);
3993 unsigned long search_exception_table(unsigned long addr);
3994 void early_abt_enable(void);
3995 diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
3996 index 7f8cd1b..6ac64cd 100644
3997 --- a/arch/arm/mm/init.c
3998 +++ b/arch/arm/mm/init.c
3999 @@ -742,7 +742,46 @@ void free_tcmmem(void)
4000 {
4001 #ifdef CONFIG_HAVE_TCM
4002 extern char __tcm_start, __tcm_end;
4003 +#endif
4004
4005 +#ifdef CONFIG_PAX_KERNEXEC
4006 + unsigned long addr;
4007 + pgd_t *pgd;
4008 + pud_t *pud;
4009 + pmd_t *pmd;
4010 + int cpu_arch = cpu_architecture();
4011 + unsigned int cr = get_cr();
4012 +
4013 + if (cpu_arch >= CPU_ARCH_ARMv6 && (cr & CR_XP)) {
4014 + /* make pages tables, etc before .text NX */
4015 + for (addr = PAGE_OFFSET; addr < (unsigned long)_stext; addr += SECTION_SIZE) {
4016 + pgd = pgd_offset_k(addr);
4017 + pud = pud_offset(pgd, addr);
4018 + pmd = pmd_offset(pud, addr);
4019 + __section_update(pmd, addr, PMD_SECT_XN);
4020 + }
4021 + /* make init NX */
4022 + for (addr = (unsigned long)__init_begin; addr < (unsigned long)_sdata; addr += SECTION_SIZE) {
4023 + pgd = pgd_offset_k(addr);
4024 + pud = pud_offset(pgd, addr);
4025 + pmd = pmd_offset(pud, addr);
4026 + __section_update(pmd, addr, PMD_SECT_XN);
4027 + }
4028 + /* make kernel code/rodata RX */
4029 + for (addr = (unsigned long)_stext; addr < (unsigned long)__init_begin; addr += SECTION_SIZE) {
4030 + pgd = pgd_offset_k(addr);
4031 + pud = pud_offset(pgd, addr);
4032 + pmd = pmd_offset(pud, addr);
4033 +#ifdef CONFIG_ARM_LPAE
4034 + __section_update(pmd, addr, PMD_SECT_RDONLY);
4035 +#else
4036 + __section_update(pmd, addr, PMD_SECT_APX|PMD_SECT_AP_WRITE);
4037 +#endif
4038 + }
4039 + }
4040 +#endif
4041 +
4042 +#ifdef CONFIG_HAVE_TCM
4043 poison_init_mem(&__tcm_start, &__tcm_end - &__tcm_start);
4044 free_reserved_area(&__tcm_start, &__tcm_end, -1, "TCM link");
4045 #endif
4046 diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c
4047 index 0c81056..97279f7 100644
4048 --- a/arch/arm/mm/ioremap.c
4049 +++ b/arch/arm/mm/ioremap.c
4050 @@ -405,9 +405,9 @@ __arm_ioremap_exec(phys_addr_t phys_addr, size_t size, bool cached)
4051 unsigned int mtype;
4052
4053 if (cached)
4054 - mtype = MT_MEMORY_RWX;
4055 + mtype = MT_MEMORY_RX;
4056 else
4057 - mtype = MT_MEMORY_RWX_NONCACHED;
4058 + mtype = MT_MEMORY_RX_NONCACHED;
4059
4060 return __arm_ioremap_caller(phys_addr, size, mtype,
4061 __builtin_return_address(0));
4062 diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c
4063 index 407dc78..047ce9d 100644
4064 --- a/arch/arm/mm/mmap.c
4065 +++ b/arch/arm/mm/mmap.c
4066 @@ -59,6 +59,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
4067 struct vm_area_struct *vma;
4068 int do_align = 0;
4069 int aliasing = cache_is_vipt_aliasing();
4070 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
4071 struct vm_unmapped_area_info info;
4072
4073 /*
4074 @@ -81,6 +82,10 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
4075 if (len > TASK_SIZE)
4076 return -ENOMEM;
4077
4078 +#ifdef CONFIG_PAX_RANDMMAP
4079 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
4080 +#endif
4081 +
4082 if (addr) {
4083 if (do_align)
4084 addr = COLOUR_ALIGN(addr, pgoff);
4085 @@ -88,8 +93,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
4086 addr = PAGE_ALIGN(addr);
4087
4088 vma = find_vma(mm, addr);
4089 - if (TASK_SIZE - len >= addr &&
4090 - (!vma || addr + len <= vma->vm_start))
4091 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
4092 return addr;
4093 }
4094
4095 @@ -99,6 +103,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
4096 info.high_limit = TASK_SIZE;
4097 info.align_mask = do_align ? (PAGE_MASK & (SHMLBA - 1)) : 0;
4098 info.align_offset = pgoff << PAGE_SHIFT;
4099 + info.threadstack_offset = offset;
4100 return vm_unmapped_area(&info);
4101 }
4102
4103 @@ -112,6 +117,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
4104 unsigned long addr = addr0;
4105 int do_align = 0;
4106 int aliasing = cache_is_vipt_aliasing();
4107 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
4108 struct vm_unmapped_area_info info;
4109
4110 /*
4111 @@ -132,6 +138,10 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
4112 return addr;
4113 }
4114
4115 +#ifdef CONFIG_PAX_RANDMMAP
4116 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
4117 +#endif
4118 +
4119 /* requesting a specific address */
4120 if (addr) {
4121 if (do_align)
4122 @@ -139,8 +149,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
4123 else
4124 addr = PAGE_ALIGN(addr);
4125 vma = find_vma(mm, addr);
4126 - if (TASK_SIZE - len >= addr &&
4127 - (!vma || addr + len <= vma->vm_start))
4128 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
4129 return addr;
4130 }
4131
4132 @@ -150,6 +159,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
4133 info.high_limit = mm->mmap_base;
4134 info.align_mask = do_align ? (PAGE_MASK & (SHMLBA - 1)) : 0;
4135 info.align_offset = pgoff << PAGE_SHIFT;
4136 + info.threadstack_offset = offset;
4137 addr = vm_unmapped_area(&info);
4138
4139 /*
4140 @@ -183,14 +193,30 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
4141 {
4142 unsigned long random_factor = 0UL;
4143
4144 +#ifdef CONFIG_PAX_RANDMMAP
4145 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
4146 +#endif
4147 +
4148 if (current->flags & PF_RANDOMIZE)
4149 random_factor = arch_mmap_rnd();
4150
4151 if (mmap_is_legacy()) {
4152 mm->mmap_base = TASK_UNMAPPED_BASE + random_factor;
4153 +
4154 +#ifdef CONFIG_PAX_RANDMMAP
4155 + if (mm->pax_flags & MF_PAX_RANDMMAP)
4156 + mm->mmap_base += mm->delta_mmap;
4157 +#endif
4158 +
4159 mm->get_unmapped_area = arch_get_unmapped_area;
4160 } else {
4161 mm->mmap_base = mmap_base(random_factor);
4162 +
4163 +#ifdef CONFIG_PAX_RANDMMAP
4164 + if (mm->pax_flags & MF_PAX_RANDMMAP)
4165 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
4166 +#endif
4167 +
4168 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
4169 }
4170 }
4171 diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
4172 index 4867f5d..dbfed1e 100644
4173 --- a/arch/arm/mm/mmu.c
4174 +++ b/arch/arm/mm/mmu.c
4175 @@ -243,7 +243,15 @@ __setup("noalign", noalign_setup);
4176 #define PROT_PTE_S2_DEVICE PROT_PTE_DEVICE
4177 #define PROT_SECT_DEVICE PMD_TYPE_SECT|PMD_SECT_AP_WRITE
4178
4179 -static struct mem_type mem_types[] = {
4180 +#ifdef CONFIG_PAX_KERNEXEC
4181 +#define L_PTE_KERNEXEC L_PTE_RDONLY
4182 +#define PMD_SECT_KERNEXEC PMD_SECT_RDONLY
4183 +#else
4184 +#define L_PTE_KERNEXEC L_PTE_DIRTY
4185 +#define PMD_SECT_KERNEXEC PMD_SECT_AP_WRITE
4186 +#endif
4187 +
4188 +static struct mem_type mem_types[] __read_only = {
4189 [MT_DEVICE] = { /* Strongly ordered / ARMv6 shared device */
4190 .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_SHARED |
4191 L_PTE_SHARED,
4192 @@ -272,19 +280,19 @@ static struct mem_type mem_types[] = {
4193 .prot_sect = PROT_SECT_DEVICE,
4194 .domain = DOMAIN_IO,
4195 },
4196 - [MT_UNCACHED] = {
4197 + [MT_UNCACHED_RW] = {
4198 .prot_pte = PROT_PTE_DEVICE,
4199 .prot_l1 = PMD_TYPE_TABLE,
4200 .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN,
4201 .domain = DOMAIN_IO,
4202 },
4203 - [MT_CACHECLEAN] = {
4204 - .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN,
4205 + [MT_CACHECLEAN_RO] = {
4206 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN | PMD_SECT_RDONLY,
4207 .domain = DOMAIN_KERNEL,
4208 },
4209 #ifndef CONFIG_ARM_LPAE
4210 - [MT_MINICLEAN] = {
4211 - .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN | PMD_SECT_MINICACHE,
4212 + [MT_MINICLEAN_RO] = {
4213 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_MINICACHE | PMD_SECT_XN | PMD_SECT_RDONLY,
4214 .domain = DOMAIN_KERNEL,
4215 },
4216 #endif
4217 @@ -300,7 +308,7 @@ static struct mem_type mem_types[] = {
4218 .prot_l1 = PMD_TYPE_TABLE,
4219 .domain = DOMAIN_VECTORS,
4220 },
4221 - [MT_MEMORY_RWX] = {
4222 + [__MT_MEMORY_RWX] = {
4223 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY,
4224 .prot_l1 = PMD_TYPE_TABLE,
4225 .prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
4226 @@ -313,17 +321,30 @@ static struct mem_type mem_types[] = {
4227 .prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
4228 .domain = DOMAIN_KERNEL,
4229 },
4230 - [MT_ROM] = {
4231 - .prot_sect = PMD_TYPE_SECT,
4232 + [MT_MEMORY_RX] = {
4233 + .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_KERNEXEC,
4234 + .prot_l1 = PMD_TYPE_TABLE,
4235 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_KERNEXEC,
4236 + .domain = DOMAIN_KERNEL,
4237 + },
4238 + [MT_ROM_RX] = {
4239 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_RDONLY,
4240 .domain = DOMAIN_KERNEL,
4241 },
4242 - [MT_MEMORY_RWX_NONCACHED] = {
4243 + [MT_MEMORY_RW_NONCACHED] = {
4244 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
4245 L_PTE_MT_BUFFERABLE,
4246 .prot_l1 = PMD_TYPE_TABLE,
4247 .prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
4248 .domain = DOMAIN_KERNEL,
4249 },
4250 + [MT_MEMORY_RX_NONCACHED] = {
4251 + .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_KERNEXEC |
4252 + L_PTE_MT_BUFFERABLE,
4253 + .prot_l1 = PMD_TYPE_TABLE,
4254 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_KERNEXEC,
4255 + .domain = DOMAIN_KERNEL,
4256 + },
4257 [MT_MEMORY_RW_DTCM] = {
4258 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
4259 L_PTE_XN,
4260 @@ -331,9 +352,10 @@ static struct mem_type mem_types[] = {
4261 .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN,
4262 .domain = DOMAIN_KERNEL,
4263 },
4264 - [MT_MEMORY_RWX_ITCM] = {
4265 - .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY,
4266 + [MT_MEMORY_RX_ITCM] = {
4267 + .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_KERNEXEC,
4268 .prot_l1 = PMD_TYPE_TABLE,
4269 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_KERNEXEC,
4270 .domain = DOMAIN_KERNEL,
4271 },
4272 [MT_MEMORY_RW_SO] = {
4273 @@ -586,9 +608,14 @@ static void __init build_mem_type_table(void)
4274 * Mark cache clean areas and XIP ROM read only
4275 * from SVC mode and no access from userspace.
4276 */
4277 - mem_types[MT_ROM].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4278 - mem_types[MT_MINICLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4279 - mem_types[MT_CACHECLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4280 + mem_types[MT_ROM_RX].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4281 +#ifdef CONFIG_PAX_KERNEXEC
4282 + mem_types[MT_MEMORY_RX].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4283 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4284 + mem_types[MT_MEMORY_RX_ITCM].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4285 +#endif
4286 + mem_types[MT_MINICLEAN_RO].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4287 + mem_types[MT_CACHECLEAN_RO].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4288 #endif
4289
4290 /*
4291 @@ -605,13 +632,17 @@ static void __init build_mem_type_table(void)
4292 mem_types[MT_DEVICE_WC].prot_pte |= L_PTE_SHARED;
4293 mem_types[MT_DEVICE_CACHED].prot_sect |= PMD_SECT_S;
4294 mem_types[MT_DEVICE_CACHED].prot_pte |= L_PTE_SHARED;
4295 - mem_types[MT_MEMORY_RWX].prot_sect |= PMD_SECT_S;
4296 - mem_types[MT_MEMORY_RWX].prot_pte |= L_PTE_SHARED;
4297 + mem_types[__MT_MEMORY_RWX].prot_sect |= PMD_SECT_S;
4298 + mem_types[__MT_MEMORY_RWX].prot_pte |= L_PTE_SHARED;
4299 mem_types[MT_MEMORY_RW].prot_sect |= PMD_SECT_S;
4300 mem_types[MT_MEMORY_RW].prot_pte |= L_PTE_SHARED;
4301 + mem_types[MT_MEMORY_RX].prot_sect |= PMD_SECT_S;
4302 + mem_types[MT_MEMORY_RX].prot_pte |= L_PTE_SHARED;
4303 mem_types[MT_MEMORY_DMA_READY].prot_pte |= L_PTE_SHARED;
4304 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |= PMD_SECT_S;
4305 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_pte |= L_PTE_SHARED;
4306 + mem_types[MT_MEMORY_RW_NONCACHED].prot_sect |= PMD_SECT_S;
4307 + mem_types[MT_MEMORY_RW_NONCACHED].prot_pte |= L_PTE_SHARED;
4308 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |= PMD_SECT_S;
4309 + mem_types[MT_MEMORY_RX_NONCACHED].prot_pte |= L_PTE_SHARED;
4310 }
4311 }
4312
4313 @@ -622,15 +653,20 @@ static void __init build_mem_type_table(void)
4314 if (cpu_arch >= CPU_ARCH_ARMv6) {
4315 if (cpu_arch >= CPU_ARCH_ARMv7 && (cr & CR_TRE)) {
4316 /* Non-cacheable Normal is XCB = 001 */
4317 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |=
4318 + mem_types[MT_MEMORY_RW_NONCACHED].prot_sect |=
4319 + PMD_SECT_BUFFERED;
4320 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |=
4321 PMD_SECT_BUFFERED;
4322 } else {
4323 /* For both ARMv6 and non-TEX-remapping ARMv7 */
4324 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |=
4325 + mem_types[MT_MEMORY_RW_NONCACHED].prot_sect |=
4326 + PMD_SECT_TEX(1);
4327 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |=
4328 PMD_SECT_TEX(1);
4329 }
4330 } else {
4331 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |= PMD_SECT_BUFFERABLE;
4332 + mem_types[MT_MEMORY_RW_NONCACHED].prot_sect |= PMD_SECT_BUFFERABLE;
4333 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |= PMD_SECT_BUFFERABLE;
4334 }
4335
4336 #ifdef CONFIG_ARM_LPAE
4337 @@ -651,6 +687,8 @@ static void __init build_mem_type_table(void)
4338 user_pgprot |= PTE_EXT_PXN;
4339 #endif
4340
4341 + user_pgprot |= __supported_pte_mask;
4342 +
4343 for (i = 0; i < 16; i++) {
4344 pteval_t v = pgprot_val(protection_map[i]);
4345 protection_map[i] = __pgprot(v | user_pgprot);
4346 @@ -668,21 +706,24 @@ static void __init build_mem_type_table(void)
4347
4348 mem_types[MT_LOW_VECTORS].prot_l1 |= ecc_mask;
4349 mem_types[MT_HIGH_VECTORS].prot_l1 |= ecc_mask;
4350 - mem_types[MT_MEMORY_RWX].prot_sect |= ecc_mask | cp->pmd;
4351 - mem_types[MT_MEMORY_RWX].prot_pte |= kern_pgprot;
4352 + mem_types[__MT_MEMORY_RWX].prot_sect |= ecc_mask | cp->pmd;
4353 + mem_types[__MT_MEMORY_RWX].prot_pte |= kern_pgprot;
4354 mem_types[MT_MEMORY_RW].prot_sect |= ecc_mask | cp->pmd;
4355 mem_types[MT_MEMORY_RW].prot_pte |= kern_pgprot;
4356 + mem_types[MT_MEMORY_RX].prot_sect |= ecc_mask | cp->pmd;
4357 + mem_types[MT_MEMORY_RX].prot_pte |= kern_pgprot;
4358 mem_types[MT_MEMORY_DMA_READY].prot_pte |= kern_pgprot;
4359 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |= ecc_mask;
4360 - mem_types[MT_ROM].prot_sect |= cp->pmd;
4361 + mem_types[MT_MEMORY_RW_NONCACHED].prot_sect |= ecc_mask;
4362 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |= ecc_mask;
4363 + mem_types[MT_ROM_RX].prot_sect |= cp->pmd;
4364
4365 switch (cp->pmd) {
4366 case PMD_SECT_WT:
4367 - mem_types[MT_CACHECLEAN].prot_sect |= PMD_SECT_WT;
4368 + mem_types[MT_CACHECLEAN_RO].prot_sect |= PMD_SECT_WT;
4369 break;
4370 case PMD_SECT_WB:
4371 case PMD_SECT_WBWA:
4372 - mem_types[MT_CACHECLEAN].prot_sect |= PMD_SECT_WB;
4373 + mem_types[MT_CACHECLEAN_RO].prot_sect |= PMD_SECT_WB;
4374 break;
4375 }
4376 pr_info("Memory policy: %sData cache %s\n",
4377 @@ -896,7 +937,7 @@ static void __init create_mapping(struct map_desc *md)
4378 return;
4379 }
4380
4381 - if ((md->type == MT_DEVICE || md->type == MT_ROM) &&
4382 + if ((md->type == MT_DEVICE || md->type == MT_ROM_RX) &&
4383 md->virtual >= PAGE_OFFSET && md->virtual < FIXADDR_START &&
4384 (md->virtual < VMALLOC_START || md->virtual >= VMALLOC_END)) {
4385 pr_warn("BUG: mapping for 0x%08llx at 0x%08lx out of vmalloc space\n",
4386 @@ -1266,18 +1307,15 @@ void __init arm_mm_memblock_reserve(void)
4387 * Any other function or debugging method which may touch any device _will_
4388 * crash the kernel.
4389 */
4390 +
4391 +static char vectors[PAGE_SIZE * 2] __read_only __aligned(PAGE_SIZE);
4392 +
4393 static void __init devicemaps_init(const struct machine_desc *mdesc)
4394 {
4395 struct map_desc map;
4396 unsigned long addr;
4397 - void *vectors;
4398
4399 - /*
4400 - * Allocate the vector page early.
4401 - */
4402 - vectors = early_alloc(PAGE_SIZE * 2);
4403 -
4404 - early_trap_init(vectors);
4405 + early_trap_init(&vectors);
4406
4407 /*
4408 * Clear page table except top pmd used by early fixmaps
4409 @@ -1293,7 +1331,7 @@ static void __init devicemaps_init(const struct machine_desc *mdesc)
4410 map.pfn = __phys_to_pfn(CONFIG_XIP_PHYS_ADDR & SECTION_MASK);
4411 map.virtual = MODULES_VADDR;
4412 map.length = ((unsigned long)_etext - map.virtual + ~SECTION_MASK) & SECTION_MASK;
4413 - map.type = MT_ROM;
4414 + map.type = MT_ROM_RX;
4415 create_mapping(&map);
4416 #endif
4417
4418 @@ -1304,14 +1342,14 @@ static void __init devicemaps_init(const struct machine_desc *mdesc)
4419 map.pfn = __phys_to_pfn(FLUSH_BASE_PHYS);
4420 map.virtual = FLUSH_BASE;
4421 map.length = SZ_1M;
4422 - map.type = MT_CACHECLEAN;
4423 + map.type = MT_CACHECLEAN_RO;
4424 create_mapping(&map);
4425 #endif
4426 #ifdef FLUSH_BASE_MINICACHE
4427 map.pfn = __phys_to_pfn(FLUSH_BASE_PHYS + SZ_1M);
4428 map.virtual = FLUSH_BASE_MINICACHE;
4429 map.length = SZ_1M;
4430 - map.type = MT_MINICLEAN;
4431 + map.type = MT_MINICLEAN_RO;
4432 create_mapping(&map);
4433 #endif
4434
4435 @@ -1320,7 +1358,7 @@ static void __init devicemaps_init(const struct machine_desc *mdesc)
4436 * location (0xffff0000). If we aren't using high-vectors, also
4437 * create a mapping at the low-vectors virtual address.
4438 */
4439 - map.pfn = __phys_to_pfn(virt_to_phys(vectors));
4440 + map.pfn = __phys_to_pfn(virt_to_phys(&vectors));
4441 map.virtual = 0xffff0000;
4442 map.length = PAGE_SIZE;
4443 #ifdef CONFIG_KUSER_HELPERS
4444 @@ -1383,8 +1421,10 @@ static void __init kmap_init(void)
4445 static void __init map_lowmem(void)
4446 {
4447 struct memblock_region *reg;
4448 +#ifndef CONFIG_PAX_KERNEXEC
4449 phys_addr_t kernel_x_start = round_down(__pa(_stext), SECTION_SIZE);
4450 phys_addr_t kernel_x_end = round_up(__pa(__init_end), SECTION_SIZE);
4451 +#endif
4452
4453 /* Map all the lowmem memory banks. */
4454 for_each_memblock(memory, reg) {
4455 @@ -1397,11 +1437,48 @@ static void __init map_lowmem(void)
4456 if (start >= end)
4457 break;
4458
4459 +#ifdef CONFIG_PAX_KERNEXEC
4460 + map.pfn = __phys_to_pfn(start);
4461 + map.virtual = __phys_to_virt(start);
4462 + map.length = end - start;
4463 +
4464 + if (map.virtual <= (unsigned long)_stext && ((unsigned long)_end < (map.virtual + map.length))) {
4465 + struct map_desc kernel;
4466 + struct map_desc initmap;
4467 +
4468 + /* when freeing initmem we will make this RW */
4469 + initmap.pfn = __phys_to_pfn(__pa(__init_begin));
4470 + initmap.virtual = (unsigned long)__init_begin;
4471 + initmap.length = _sdata - __init_begin;
4472 + initmap.type = __MT_MEMORY_RWX;
4473 + create_mapping(&initmap);
4474 +
4475 + /* when freeing initmem we will make this RX */
4476 + kernel.pfn = __phys_to_pfn(__pa(_stext));
4477 + kernel.virtual = (unsigned long)_stext;
4478 + kernel.length = __init_begin - _stext;
4479 + kernel.type = __MT_MEMORY_RWX;
4480 + create_mapping(&kernel);
4481 +
4482 + if (map.virtual < (unsigned long)_stext) {
4483 + map.length = (unsigned long)_stext - map.virtual;
4484 + map.type = __MT_MEMORY_RWX;
4485 + create_mapping(&map);
4486 + }
4487 +
4488 + map.pfn = __phys_to_pfn(__pa(_sdata));
4489 + map.virtual = (unsigned long)_sdata;
4490 + map.length = end - __pa(_sdata);
4491 + }
4492 +
4493 + map.type = MT_MEMORY_RW;
4494 + create_mapping(&map);
4495 +#else
4496 if (end < kernel_x_start) {
4497 map.pfn = __phys_to_pfn(start);
4498 map.virtual = __phys_to_virt(start);
4499 map.length = end - start;
4500 - map.type = MT_MEMORY_RWX;
4501 + map.type = __MT_MEMORY_RWX;
4502
4503 create_mapping(&map);
4504 } else if (start >= kernel_x_end) {
4505 @@ -1425,7 +1502,7 @@ static void __init map_lowmem(void)
4506 map.pfn = __phys_to_pfn(kernel_x_start);
4507 map.virtual = __phys_to_virt(kernel_x_start);
4508 map.length = kernel_x_end - kernel_x_start;
4509 - map.type = MT_MEMORY_RWX;
4510 + map.type = __MT_MEMORY_RWX;
4511
4512 create_mapping(&map);
4513
4514 @@ -1438,6 +1515,7 @@ static void __init map_lowmem(void)
4515 create_mapping(&map);
4516 }
4517 }
4518 +#endif
4519 }
4520 }
4521
4522 diff --git a/arch/arm/net/bpf_jit_32.c b/arch/arm/net/bpf_jit_32.c
4523 index 93d0b6d..2db6d99 100644
4524 --- a/arch/arm/net/bpf_jit_32.c
4525 +++ b/arch/arm/net/bpf_jit_32.c
4526 @@ -20,6 +20,7 @@
4527 #include <asm/cacheflush.h>
4528 #include <asm/hwcap.h>
4529 #include <asm/opcodes.h>
4530 +#include <asm/pgtable.h>
4531
4532 #include "bpf_jit_32.h"
4533
4534 @@ -72,54 +73,38 @@ struct jit_ctx {
4535 #endif
4536 };
4537
4538 +#ifdef CONFIG_GRKERNSEC_BPF_HARDEN
4539 +int bpf_jit_enable __read_only;
4540 +#else
4541 int bpf_jit_enable __read_mostly;
4542 +#endif
4543
4544 -static inline int call_neg_helper(struct sk_buff *skb, int offset, void *ret,
4545 - unsigned int size)
4546 -{
4547 - void *ptr = bpf_internal_load_pointer_neg_helper(skb, offset, size);
4548 -
4549 - if (!ptr)
4550 - return -EFAULT;
4551 - memcpy(ret, ptr, size);
4552 - return 0;
4553 -}
4554 -
4555 -static u64 jit_get_skb_b(struct sk_buff *skb, int offset)
4556 +static u64 jit_get_skb_b(struct sk_buff *skb, unsigned offset)
4557 {
4558 u8 ret;
4559 int err;
4560
4561 - if (offset < 0)
4562 - err = call_neg_helper(skb, offset, &ret, 1);
4563 - else
4564 - err = skb_copy_bits(skb, offset, &ret, 1);
4565 + err = skb_copy_bits(skb, offset, &ret, 1);
4566
4567 return (u64)err << 32 | ret;
4568 }
4569
4570 -static u64 jit_get_skb_h(struct sk_buff *skb, int offset)
4571 +static u64 jit_get_skb_h(struct sk_buff *skb, unsigned offset)
4572 {
4573 u16 ret;
4574 int err;
4575
4576 - if (offset < 0)
4577 - err = call_neg_helper(skb, offset, &ret, 2);
4578 - else
4579 - err = skb_copy_bits(skb, offset, &ret, 2);
4580 + err = skb_copy_bits(skb, offset, &ret, 2);
4581
4582 return (u64)err << 32 | ntohs(ret);
4583 }
4584
4585 -static u64 jit_get_skb_w(struct sk_buff *skb, int offset)
4586 +static u64 jit_get_skb_w(struct sk_buff *skb, unsigned offset)
4587 {
4588 u32 ret;
4589 int err;
4590
4591 - if (offset < 0)
4592 - err = call_neg_helper(skb, offset, &ret, 4);
4593 - else
4594 - err = skb_copy_bits(skb, offset, &ret, 4);
4595 + err = skb_copy_bits(skb, offset, &ret, 4);
4596
4597 return (u64)err << 32 | ntohl(ret);
4598 }
4599 @@ -191,8 +176,10 @@ static void jit_fill_hole(void *area, unsigned int size)
4600 {
4601 u32 *ptr;
4602 /* We are guaranteed to have aligned memory. */
4603 + pax_open_kernel();
4604 for (ptr = area; size >= sizeof(u32); size -= sizeof(u32))
4605 *ptr++ = __opcode_to_mem_arm(ARM_INST_UDF);
4606 + pax_close_kernel();
4607 }
4608
4609 static void build_prologue(struct jit_ctx *ctx)
4610 @@ -554,6 +541,9 @@ static int build_body(struct jit_ctx *ctx)
4611 case BPF_LD | BPF_B | BPF_ABS:
4612 load_order = 0;
4613 load:
4614 + /* the interpreter will deal with the negative K */
4615 + if ((int)k < 0)
4616 + return -ENOTSUPP;
4617 emit_mov_i(r_off, k, ctx);
4618 load_common:
4619 ctx->seen |= SEEN_DATA | SEEN_CALL;
4620 @@ -568,18 +558,6 @@ load_common:
4621 condt = ARM_COND_HI;
4622 }
4623
4624 - /*
4625 - * test for negative offset, only if we are
4626 - * currently scheduled to take the fast
4627 - * path. this will update the flags so that
4628 - * the slowpath instruction are ignored if the
4629 - * offset is negative.
4630 - *
4631 - * for loard_order == 0 the HI condition will
4632 - * make loads at offset 0 take the slow path too.
4633 - */
4634 - _emit(condt, ARM_CMP_I(r_off, 0), ctx);
4635 -
4636 _emit(condt, ARM_ADD_R(r_scratch, r_off, r_skb_data),
4637 ctx);
4638
4639 diff --git a/arch/arm/plat-iop/setup.c b/arch/arm/plat-iop/setup.c
4640 index 5b217f4..c23f40e 100644
4641 --- a/arch/arm/plat-iop/setup.c
4642 +++ b/arch/arm/plat-iop/setup.c
4643 @@ -24,7 +24,7 @@ static struct map_desc iop3xx_std_desc[] __initdata = {
4644 .virtual = IOP3XX_PERIPHERAL_VIRT_BASE,
4645 .pfn = __phys_to_pfn(IOP3XX_PERIPHERAL_PHYS_BASE),
4646 .length = IOP3XX_PERIPHERAL_SIZE,
4647 - .type = MT_UNCACHED,
4648 + .type = MT_UNCACHED_RW,
4649 },
4650 };
4651
4652 diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c
4653 index a5bc92d..0bb4730 100644
4654 --- a/arch/arm/plat-omap/sram.c
4655 +++ b/arch/arm/plat-omap/sram.c
4656 @@ -93,6 +93,8 @@ void __init omap_map_sram(unsigned long start, unsigned long size,
4657 * Looks like we need to preserve some bootloader code at the
4658 * beginning of SRAM for jumping to flash for reboot to work...
4659 */
4660 + pax_open_kernel();
4661 memset_io(omap_sram_base + omap_sram_skip, 0,
4662 omap_sram_size - omap_sram_skip);
4663 + pax_close_kernel();
4664 }
4665 diff --git a/arch/arm64/Kconfig.debug b/arch/arm64/Kconfig.debug
4666 index 04fb73b..368beca 100644
4667 --- a/arch/arm64/Kconfig.debug
4668 +++ b/arch/arm64/Kconfig.debug
4669 @@ -6,6 +6,7 @@ config ARM64_PTDUMP
4670 bool "Export kernel pagetable layout to userspace via debugfs"
4671 depends on DEBUG_KERNEL
4672 select DEBUG_FS
4673 + depends on !GRKERNSEC_KMEM
4674 help
4675 Say Y here if you want to show the kernel pagetable layout in a
4676 debugfs file. This information is only useful for kernel developers
4677 diff --git a/arch/arm64/include/asm/atomic.h b/arch/arm64/include/asm/atomic.h
4678 index f3a3586..832c720 100644
4679 --- a/arch/arm64/include/asm/atomic.h
4680 +++ b/arch/arm64/include/asm/atomic.h
4681 @@ -146,5 +146,15 @@
4682
4683 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
4684
4685 +#define atomic64_read_unchecked(v) atomic64_read(v)
4686 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
4687 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
4688 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
4689 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
4690 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
4691 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
4692 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
4693 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
4694 +
4695 #endif
4696 #endif
4697 diff --git a/arch/arm64/include/asm/percpu.h b/arch/arm64/include/asm/percpu.h
4698 index 0a456be..7799ff5 100644
4699 --- a/arch/arm64/include/asm/percpu.h
4700 +++ b/arch/arm64/include/asm/percpu.h
4701 @@ -127,16 +127,16 @@ static inline void __percpu_write(void *ptr, unsigned long val, int size)
4702 {
4703 switch (size) {
4704 case 1:
4705 - ACCESS_ONCE(*(u8 *)ptr) = (u8)val;
4706 + ACCESS_ONCE_RW(*(u8 *)ptr) = (u8)val;
4707 break;
4708 case 2:
4709 - ACCESS_ONCE(*(u16 *)ptr) = (u16)val;
4710 + ACCESS_ONCE_RW(*(u16 *)ptr) = (u16)val;
4711 break;
4712 case 4:
4713 - ACCESS_ONCE(*(u32 *)ptr) = (u32)val;
4714 + ACCESS_ONCE_RW(*(u32 *)ptr) = (u32)val;
4715 break;
4716 case 8:
4717 - ACCESS_ONCE(*(u64 *)ptr) = (u64)val;
4718 + ACCESS_ONCE_RW(*(u64 *)ptr) = (u64)val;
4719 break;
4720 default:
4721 BUILD_BUG();
4722 diff --git a/arch/arm64/include/asm/pgalloc.h b/arch/arm64/include/asm/pgalloc.h
4723 index c150539..45f5724 100644
4724 --- a/arch/arm64/include/asm/pgalloc.h
4725 +++ b/arch/arm64/include/asm/pgalloc.h
4726 @@ -47,6 +47,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
4727 set_pud(pud, __pud(__pa(pmd) | PMD_TYPE_TABLE));
4728 }
4729
4730 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
4731 +{
4732 + pud_populate(mm, pud, pmd);
4733 +}
4734 +
4735 #endif /* CONFIG_PGTABLE_LEVELS > 2 */
4736
4737 #if CONFIG_PGTABLE_LEVELS > 3
4738 diff --git a/arch/arm64/include/asm/uaccess.h b/arch/arm64/include/asm/uaccess.h
4739 index b2ede967..865eed5 100644
4740 --- a/arch/arm64/include/asm/uaccess.h
4741 +++ b/arch/arm64/include/asm/uaccess.h
4742 @@ -102,6 +102,7 @@ static inline void set_fs(mm_segment_t fs)
4743 flag; \
4744 })
4745
4746 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
4747 #define access_ok(type, addr, size) __range_ok(addr, size)
4748 #define user_addr_max get_fs
4749
4750 diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c
4751 index 354144e..f8c556b 100644
4752 --- a/arch/arm64/mm/dma-mapping.c
4753 +++ b/arch/arm64/mm/dma-mapping.c
4754 @@ -132,7 +132,7 @@ static void __dma_free_coherent(struct device *dev, size_t size,
4755 phys_to_page(paddr),
4756 size >> PAGE_SHIFT);
4757 if (!freed)
4758 - swiotlb_free_coherent(dev, size, vaddr, dma_handle);
4759 + swiotlb_free_coherent(dev, size, vaddr, dma_handle, attrs);
4760 }
4761
4762 static void *__dma_alloc(struct device *dev, size_t size,
4763 diff --git a/arch/avr32/include/asm/cache.h b/arch/avr32/include/asm/cache.h
4764 index c3a58a1..78fbf54 100644
4765 --- a/arch/avr32/include/asm/cache.h
4766 +++ b/arch/avr32/include/asm/cache.h
4767 @@ -1,8 +1,10 @@
4768 #ifndef __ASM_AVR32_CACHE_H
4769 #define __ASM_AVR32_CACHE_H
4770
4771 +#include <linux/const.h>
4772 +
4773 #define L1_CACHE_SHIFT 5
4774 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
4775 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
4776
4777 /*
4778 * Memory returned by kmalloc() may be used for DMA, so we must make
4779 diff --git a/arch/avr32/include/asm/elf.h b/arch/avr32/include/asm/elf.h
4780 index 0388ece..87c8df1 100644
4781 --- a/arch/avr32/include/asm/elf.h
4782 +++ b/arch/avr32/include/asm/elf.h
4783 @@ -84,8 +84,14 @@ typedef struct user_fpu_struct elf_fpregset_t;
4784 the loader. We need to make sure that it is out of the way of the program
4785 that it will "exec", and that there is sufficient room for the brk. */
4786
4787 -#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
4788 +#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
4789
4790 +#ifdef CONFIG_PAX_ASLR
4791 +#define PAX_ELF_ET_DYN_BASE 0x00001000UL
4792 +
4793 +#define PAX_DELTA_MMAP_LEN 15
4794 +#define PAX_DELTA_STACK_LEN 15
4795 +#endif
4796
4797 /* This yields a mask that user programs can use to figure out what
4798 instruction set this CPU supports. This could be done in user space,
4799 diff --git a/arch/avr32/include/asm/kmap_types.h b/arch/avr32/include/asm/kmap_types.h
4800 index 479330b..53717a8 100644
4801 --- a/arch/avr32/include/asm/kmap_types.h
4802 +++ b/arch/avr32/include/asm/kmap_types.h
4803 @@ -2,9 +2,9 @@
4804 #define __ASM_AVR32_KMAP_TYPES_H
4805
4806 #ifdef CONFIG_DEBUG_HIGHMEM
4807 -# define KM_TYPE_NR 29
4808 +# define KM_TYPE_NR 30
4809 #else
4810 -# define KM_TYPE_NR 14
4811 +# define KM_TYPE_NR 15
4812 #endif
4813
4814 #endif /* __ASM_AVR32_KMAP_TYPES_H */
4815 diff --git a/arch/avr32/mm/fault.c b/arch/avr32/mm/fault.c
4816 index c035339..e1fa594 100644
4817 --- a/arch/avr32/mm/fault.c
4818 +++ b/arch/avr32/mm/fault.c
4819 @@ -41,6 +41,23 @@ static inline int notify_page_fault(struct pt_regs *regs, int trap)
4820
4821 int exception_trace = 1;
4822
4823 +#ifdef CONFIG_PAX_PAGEEXEC
4824 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
4825 +{
4826 + unsigned long i;
4827 +
4828 + printk(KERN_ERR "PAX: bytes at PC: ");
4829 + for (i = 0; i < 20; i++) {
4830 + unsigned char c;
4831 + if (get_user(c, (unsigned char *)pc+i))
4832 + printk(KERN_CONT "???????? ");
4833 + else
4834 + printk(KERN_CONT "%02x ", c);
4835 + }
4836 + printk("\n");
4837 +}
4838 +#endif
4839 +
4840 /*
4841 * This routine handles page faults. It determines the address and the
4842 * problem, and then passes it off to one of the appropriate routines.
4843 @@ -178,6 +195,16 @@ bad_area:
4844 up_read(&mm->mmap_sem);
4845
4846 if (user_mode(regs)) {
4847 +
4848 +#ifdef CONFIG_PAX_PAGEEXEC
4849 + if (mm->pax_flags & MF_PAX_PAGEEXEC) {
4850 + if (ecr == ECR_PROTECTION_X || ecr == ECR_TLB_MISS_X) {
4851 + pax_report_fault(regs, (void *)regs->pc, (void *)regs->sp);
4852 + do_group_exit(SIGKILL);
4853 + }
4854 + }
4855 +#endif
4856 +
4857 if (exception_trace && printk_ratelimit())
4858 printk("%s%s[%d]: segfault at %08lx pc %08lx "
4859 "sp %08lx ecr %lu\n",
4860 diff --git a/arch/blackfin/Kconfig.debug b/arch/blackfin/Kconfig.debug
4861 index f3337ee..15b6f8d 100644
4862 --- a/arch/blackfin/Kconfig.debug
4863 +++ b/arch/blackfin/Kconfig.debug
4864 @@ -18,6 +18,7 @@ config DEBUG_VERBOSE
4865 config DEBUG_MMRS
4866 tristate "Generate Blackfin MMR tree"
4867 select DEBUG_FS
4868 + depends on !GRKERNSEC_KMEM
4869 help
4870 Create a tree of Blackfin MMRs via the debugfs tree. If
4871 you enable this, you will find all MMRs laid out in the
4872 diff --git a/arch/blackfin/include/asm/cache.h b/arch/blackfin/include/asm/cache.h
4873 index 568885a..f8008df 100644
4874 --- a/arch/blackfin/include/asm/cache.h
4875 +++ b/arch/blackfin/include/asm/cache.h
4876 @@ -7,6 +7,7 @@
4877 #ifndef __ARCH_BLACKFIN_CACHE_H
4878 #define __ARCH_BLACKFIN_CACHE_H
4879
4880 +#include <linux/const.h>
4881 #include <linux/linkage.h> /* for asmlinkage */
4882
4883 /*
4884 @@ -14,7 +15,7 @@
4885 * Blackfin loads 32 bytes for cache
4886 */
4887 #define L1_CACHE_SHIFT 5
4888 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
4889 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
4890 #define SMP_CACHE_BYTES L1_CACHE_BYTES
4891
4892 #define ARCH_DMA_MINALIGN L1_CACHE_BYTES
4893 diff --git a/arch/cris/include/arch-v10/arch/cache.h b/arch/cris/include/arch-v10/arch/cache.h
4894 index aea2718..3639a60 100644
4895 --- a/arch/cris/include/arch-v10/arch/cache.h
4896 +++ b/arch/cris/include/arch-v10/arch/cache.h
4897 @@ -1,8 +1,9 @@
4898 #ifndef _ASM_ARCH_CACHE_H
4899 #define _ASM_ARCH_CACHE_H
4900
4901 +#include <linux/const.h>
4902 /* Etrax 100LX have 32-byte cache-lines. */
4903 -#define L1_CACHE_BYTES 32
4904 #define L1_CACHE_SHIFT 5
4905 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
4906
4907 #endif /* _ASM_ARCH_CACHE_H */
4908 diff --git a/arch/cris/include/arch-v32/arch/cache.h b/arch/cris/include/arch-v32/arch/cache.h
4909 index 7caf25d..ee65ac5 100644
4910 --- a/arch/cris/include/arch-v32/arch/cache.h
4911 +++ b/arch/cris/include/arch-v32/arch/cache.h
4912 @@ -1,11 +1,12 @@
4913 #ifndef _ASM_CRIS_ARCH_CACHE_H
4914 #define _ASM_CRIS_ARCH_CACHE_H
4915
4916 +#include <linux/const.h>
4917 #include <arch/hwregs/dma.h>
4918
4919 /* A cache-line is 32 bytes. */
4920 -#define L1_CACHE_BYTES 32
4921 #define L1_CACHE_SHIFT 5
4922 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
4923
4924 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
4925
4926 diff --git a/arch/frv/include/asm/atomic.h b/arch/frv/include/asm/atomic.h
4927 index 64f02d4..c1b0839 100644
4928 --- a/arch/frv/include/asm/atomic.h
4929 +++ b/arch/frv/include/asm/atomic.h
4930 @@ -166,6 +166,16 @@ static inline void atomic64_dec(atomic64_t *v)
4931 #define atomic64_cmpxchg(v, old, new) (__cmpxchg_64(old, new, &(v)->counter))
4932 #define atomic64_xchg(v, new) (__xchg_64(new, &(v)->counter))
4933
4934 +#define atomic64_read_unchecked(v) atomic64_read(v)
4935 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
4936 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
4937 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
4938 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
4939 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
4940 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
4941 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
4942 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
4943 +
4944 static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
4945 {
4946 int c, old;
4947 diff --git a/arch/frv/include/asm/cache.h b/arch/frv/include/asm/cache.h
4948 index 2797163..c2a401df9 100644
4949 --- a/arch/frv/include/asm/cache.h
4950 +++ b/arch/frv/include/asm/cache.h
4951 @@ -12,10 +12,11 @@
4952 #ifndef __ASM_CACHE_H
4953 #define __ASM_CACHE_H
4954
4955 +#include <linux/const.h>
4956
4957 /* bytes per L1 cache line */
4958 #define L1_CACHE_SHIFT (CONFIG_FRV_L1_CACHE_SHIFT)
4959 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
4960 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
4961
4962 #define __cacheline_aligned __attribute__((aligned(L1_CACHE_BYTES)))
4963 #define ____cacheline_aligned __attribute__((aligned(L1_CACHE_BYTES)))
4964 diff --git a/arch/frv/include/asm/kmap_types.h b/arch/frv/include/asm/kmap_types.h
4965 index 43901f2..0d8b865 100644
4966 --- a/arch/frv/include/asm/kmap_types.h
4967 +++ b/arch/frv/include/asm/kmap_types.h
4968 @@ -2,6 +2,6 @@
4969 #ifndef _ASM_KMAP_TYPES_H
4970 #define _ASM_KMAP_TYPES_H
4971
4972 -#define KM_TYPE_NR 17
4973 +#define KM_TYPE_NR 18
4974
4975 #endif
4976 diff --git a/arch/frv/mm/elf-fdpic.c b/arch/frv/mm/elf-fdpic.c
4977 index 836f147..4cf23f5 100644
4978 --- a/arch/frv/mm/elf-fdpic.c
4979 +++ b/arch/frv/mm/elf-fdpic.c
4980 @@ -61,6 +61,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
4981 {
4982 struct vm_area_struct *vma;
4983 struct vm_unmapped_area_info info;
4984 + unsigned long offset = gr_rand_threadstack_offset(current->mm, filp, flags);
4985
4986 if (len > TASK_SIZE)
4987 return -ENOMEM;
4988 @@ -73,8 +74,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
4989 if (addr) {
4990 addr = PAGE_ALIGN(addr);
4991 vma = find_vma(current->mm, addr);
4992 - if (TASK_SIZE - len >= addr &&
4993 - (!vma || addr + len <= vma->vm_start))
4994 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
4995 goto success;
4996 }
4997
4998 @@ -85,6 +85,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
4999 info.high_limit = (current->mm->start_stack - 0x00200000);
5000 info.align_mask = 0;
5001 info.align_offset = 0;
5002 + info.threadstack_offset = offset;
5003 addr = vm_unmapped_area(&info);
5004 if (!(addr & ~PAGE_MASK))
5005 goto success;
5006 diff --git a/arch/hexagon/include/asm/cache.h b/arch/hexagon/include/asm/cache.h
5007 index 69952c18..4fa2908 100644
5008 --- a/arch/hexagon/include/asm/cache.h
5009 +++ b/arch/hexagon/include/asm/cache.h
5010 @@ -21,9 +21,11 @@
5011 #ifndef __ASM_CACHE_H
5012 #define __ASM_CACHE_H
5013
5014 +#include <linux/const.h>
5015 +
5016 /* Bytes per L1 cache line */
5017 -#define L1_CACHE_SHIFT (5)
5018 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5019 +#define L1_CACHE_SHIFT 5
5020 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5021
5022 #define ARCH_DMA_MINALIGN L1_CACHE_BYTES
5023
5024 diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
5025 index eb0249e..388ff32 100644
5026 --- a/arch/ia64/Kconfig
5027 +++ b/arch/ia64/Kconfig
5028 @@ -519,6 +519,7 @@ config KEXEC
5029 bool "kexec system call"
5030 depends on !IA64_HP_SIM && (!SMP || HOTPLUG_CPU)
5031 select KEXEC_CORE
5032 + depends on !GRKERNSEC_KMEM
5033 help
5034 kexec is a system call that implements the ability to shutdown your
5035 current kernel, and to start another kernel. It is like a reboot
5036 diff --git a/arch/ia64/Makefile b/arch/ia64/Makefile
5037 index 970d0bd..e750b9b 100644
5038 --- a/arch/ia64/Makefile
5039 +++ b/arch/ia64/Makefile
5040 @@ -98,5 +98,6 @@ endef
5041 archprepare: make_nr_irqs_h FORCE
5042 PHONY += make_nr_irqs_h FORCE
5043
5044 +make_nr_irqs_h: KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS))
5045 make_nr_irqs_h: FORCE
5046 $(Q)$(MAKE) $(build)=arch/ia64/kernel include/generated/nr-irqs.h
5047 diff --git a/arch/ia64/include/asm/atomic.h b/arch/ia64/include/asm/atomic.h
5048 index 8dfb5f6..d58bd69 100644
5049 --- a/arch/ia64/include/asm/atomic.h
5050 +++ b/arch/ia64/include/asm/atomic.h
5051 @@ -209,4 +209,14 @@ atomic64_add_negative (__s64 i, atomic64_t *v)
5052 #define atomic64_inc(v) atomic64_add(1, (v))
5053 #define atomic64_dec(v) atomic64_sub(1, (v))
5054
5055 +#define atomic64_read_unchecked(v) atomic64_read(v)
5056 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
5057 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
5058 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
5059 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
5060 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
5061 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
5062 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
5063 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
5064 +
5065 #endif /* _ASM_IA64_ATOMIC_H */
5066 diff --git a/arch/ia64/include/asm/cache.h b/arch/ia64/include/asm/cache.h
5067 index 988254a..e1ee885 100644
5068 --- a/arch/ia64/include/asm/cache.h
5069 +++ b/arch/ia64/include/asm/cache.h
5070 @@ -1,6 +1,7 @@
5071 #ifndef _ASM_IA64_CACHE_H
5072 #define _ASM_IA64_CACHE_H
5073
5074 +#include <linux/const.h>
5075
5076 /*
5077 * Copyright (C) 1998-2000 Hewlett-Packard Co
5078 @@ -9,7 +10,7 @@
5079
5080 /* Bytes per L1 (data) cache line. */
5081 #define L1_CACHE_SHIFT CONFIG_IA64_L1_CACHE_SHIFT
5082 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5083 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5084
5085 #ifdef CONFIG_SMP
5086 # define SMP_CACHE_SHIFT L1_CACHE_SHIFT
5087 diff --git a/arch/ia64/include/asm/elf.h b/arch/ia64/include/asm/elf.h
5088 index 5a83c5c..4d7f553 100644
5089 --- a/arch/ia64/include/asm/elf.h
5090 +++ b/arch/ia64/include/asm/elf.h
5091 @@ -42,6 +42,13 @@
5092 */
5093 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x800000000UL)
5094
5095 +#ifdef CONFIG_PAX_ASLR
5096 +#define PAX_ELF_ET_DYN_BASE (current->personality == PER_LINUX32 ? 0x08048000UL : 0x4000000000000000UL)
5097 +
5098 +#define PAX_DELTA_MMAP_LEN (current->personality == PER_LINUX32 ? 16 : 3*PAGE_SHIFT - 13)
5099 +#define PAX_DELTA_STACK_LEN (current->personality == PER_LINUX32 ? 16 : 3*PAGE_SHIFT - 13)
5100 +#endif
5101 +
5102 #define PT_IA_64_UNWIND 0x70000001
5103
5104 /* IA-64 relocations: */
5105 diff --git a/arch/ia64/include/asm/pgalloc.h b/arch/ia64/include/asm/pgalloc.h
5106 index f5e70e9..624fad5 100644
5107 --- a/arch/ia64/include/asm/pgalloc.h
5108 +++ b/arch/ia64/include/asm/pgalloc.h
5109 @@ -39,6 +39,12 @@ pgd_populate(struct mm_struct *mm, pgd_t * pgd_entry, pud_t * pud)
5110 pgd_val(*pgd_entry) = __pa(pud);
5111 }
5112
5113 +static inline void
5114 +pgd_populate_kernel(struct mm_struct *mm, pgd_t * pgd_entry, pud_t * pud)
5115 +{
5116 + pgd_populate(mm, pgd_entry, pud);
5117 +}
5118 +
5119 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
5120 {
5121 return quicklist_alloc(0, GFP_KERNEL, NULL);
5122 @@ -57,6 +63,12 @@ pud_populate(struct mm_struct *mm, pud_t * pud_entry, pmd_t * pmd)
5123 pud_val(*pud_entry) = __pa(pmd);
5124 }
5125
5126 +static inline void
5127 +pud_populate_kernel(struct mm_struct *mm, pud_t * pud_entry, pmd_t * pmd)
5128 +{
5129 + pud_populate(mm, pud_entry, pmd);
5130 +}
5131 +
5132 static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long addr)
5133 {
5134 return quicklist_alloc(0, GFP_KERNEL, NULL);
5135 diff --git a/arch/ia64/include/asm/pgtable.h b/arch/ia64/include/asm/pgtable.h
5136 index 9f3ed9e..c99b418 100644
5137 --- a/arch/ia64/include/asm/pgtable.h
5138 +++ b/arch/ia64/include/asm/pgtable.h
5139 @@ -12,7 +12,7 @@
5140 * David Mosberger-Tang <davidm@hpl.hp.com>
5141 */
5142
5143 -
5144 +#include <linux/const.h>
5145 #include <asm/mman.h>
5146 #include <asm/page.h>
5147 #include <asm/processor.h>
5148 @@ -139,6 +139,17 @@
5149 #define PAGE_READONLY __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R)
5150 #define PAGE_COPY __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R)
5151 #define PAGE_COPY_EXEC __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_RX)
5152 +
5153 +#ifdef CONFIG_PAX_PAGEEXEC
5154 +# define PAGE_SHARED_NOEXEC __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_RW)
5155 +# define PAGE_READONLY_NOEXEC __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R)
5156 +# define PAGE_COPY_NOEXEC __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R)
5157 +#else
5158 +# define PAGE_SHARED_NOEXEC PAGE_SHARED
5159 +# define PAGE_READONLY_NOEXEC PAGE_READONLY
5160 +# define PAGE_COPY_NOEXEC PAGE_COPY
5161 +#endif
5162 +
5163 #define PAGE_GATE __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_X_RX)
5164 #define PAGE_KERNEL __pgprot(__DIRTY_BITS | _PAGE_PL_0 | _PAGE_AR_RWX)
5165 #define PAGE_KERNELRX __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_RX)
5166 diff --git a/arch/ia64/include/asm/spinlock.h b/arch/ia64/include/asm/spinlock.h
5167 index 45698cd..e8e2dbc 100644
5168 --- a/arch/ia64/include/asm/spinlock.h
5169 +++ b/arch/ia64/include/asm/spinlock.h
5170 @@ -71,7 +71,7 @@ static __always_inline void __ticket_spin_unlock(arch_spinlock_t *lock)
5171 unsigned short *p = (unsigned short *)&lock->lock + 1, tmp;
5172
5173 asm volatile ("ld2.bias %0=[%1]" : "=r"(tmp) : "r"(p));
5174 - ACCESS_ONCE(*p) = (tmp + 2) & ~1;
5175 + ACCESS_ONCE_RW(*p) = (tmp + 2) & ~1;
5176 }
5177
5178 static __always_inline void __ticket_spin_unlock_wait(arch_spinlock_t *lock)
5179 diff --git a/arch/ia64/include/asm/uaccess.h b/arch/ia64/include/asm/uaccess.h
5180 index 4f3fb6cc..254055e 100644
5181 --- a/arch/ia64/include/asm/uaccess.h
5182 +++ b/arch/ia64/include/asm/uaccess.h
5183 @@ -70,6 +70,7 @@
5184 && ((segment).seg == KERNEL_DS.seg \
5185 || likely(REGION_OFFSET((unsigned long) (addr)) < RGN_MAP_LIMIT))); \
5186 })
5187 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
5188 #define access_ok(type, addr, size) __access_ok((addr), (size), get_fs())
5189
5190 /*
5191 @@ -241,12 +242,24 @@ extern unsigned long __must_check __copy_user (void __user *to, const void __use
5192 static inline unsigned long
5193 __copy_to_user (void __user *to, const void *from, unsigned long count)
5194 {
5195 + if (count > INT_MAX)
5196 + return count;
5197 +
5198 + if (!__builtin_constant_p(count))
5199 + check_object_size(from, count, true);
5200 +
5201 return __copy_user(to, (__force void __user *) from, count);
5202 }
5203
5204 static inline unsigned long
5205 __copy_from_user (void *to, const void __user *from, unsigned long count)
5206 {
5207 + if (count > INT_MAX)
5208 + return count;
5209 +
5210 + if (!__builtin_constant_p(count))
5211 + check_object_size(to, count, false);
5212 +
5213 return __copy_user((__force void __user *) to, from, count);
5214 }
5215
5216 @@ -256,10 +269,13 @@ __copy_from_user (void *to, const void __user *from, unsigned long count)
5217 ({ \
5218 void __user *__cu_to = (to); \
5219 const void *__cu_from = (from); \
5220 - long __cu_len = (n); \
5221 + unsigned long __cu_len = (n); \
5222 \
5223 - if (__access_ok(__cu_to, __cu_len, get_fs())) \
5224 + if (__cu_len <= INT_MAX && __access_ok(__cu_to, __cu_len, get_fs())) { \
5225 + if (!__builtin_constant_p(n)) \
5226 + check_object_size(__cu_from, __cu_len, true); \
5227 __cu_len = __copy_user(__cu_to, (__force void __user *) __cu_from, __cu_len); \
5228 + } \
5229 __cu_len; \
5230 })
5231
5232 @@ -267,11 +283,14 @@ __copy_from_user (void *to, const void __user *from, unsigned long count)
5233 ({ \
5234 void *__cu_to = (to); \
5235 const void __user *__cu_from = (from); \
5236 - long __cu_len = (n); \
5237 + unsigned long __cu_len = (n); \
5238 \
5239 __chk_user_ptr(__cu_from); \
5240 - if (__access_ok(__cu_from, __cu_len, get_fs())) \
5241 + if (__cu_len <= INT_MAX && __access_ok(__cu_from, __cu_len, get_fs())) { \
5242 + if (!__builtin_constant_p(n)) \
5243 + check_object_size(__cu_to, __cu_len, false); \
5244 __cu_len = __copy_user((__force void __user *) __cu_to, __cu_from, __cu_len); \
5245 + } \
5246 __cu_len; \
5247 })
5248
5249 diff --git a/arch/ia64/kernel/module.c b/arch/ia64/kernel/module.c
5250 index b15933c..098b1c8 100644
5251 --- a/arch/ia64/kernel/module.c
5252 +++ b/arch/ia64/kernel/module.c
5253 @@ -484,15 +484,39 @@ module_frob_arch_sections (Elf_Ehdr *ehdr, Elf_Shdr *sechdrs, char *secstrings,
5254 }
5255
5256 static inline int
5257 +in_init_rx (const struct module *mod, uint64_t addr)
5258 +{
5259 + return addr - (uint64_t) mod->module_init_rx < mod->init_size_rx;
5260 +}
5261 +
5262 +static inline int
5263 +in_init_rw (const struct module *mod, uint64_t addr)
5264 +{
5265 + return addr - (uint64_t) mod->module_init_rw < mod->init_size_rw;
5266 +}
5267 +
5268 +static inline int
5269 in_init (const struct module *mod, uint64_t addr)
5270 {
5271 - return addr - (uint64_t) mod->module_init < mod->init_size;
5272 + return in_init_rx(mod, addr) || in_init_rw(mod, addr);
5273 +}
5274 +
5275 +static inline int
5276 +in_core_rx (const struct module *mod, uint64_t addr)
5277 +{
5278 + return addr - (uint64_t) mod->module_core_rx < mod->core_size_rx;
5279 +}
5280 +
5281 +static inline int
5282 +in_core_rw (const struct module *mod, uint64_t addr)
5283 +{
5284 + return addr - (uint64_t) mod->module_core_rw < mod->core_size_rw;
5285 }
5286
5287 static inline int
5288 in_core (const struct module *mod, uint64_t addr)
5289 {
5290 - return addr - (uint64_t) mod->module_core < mod->core_size;
5291 + return in_core_rx(mod, addr) || in_core_rw(mod, addr);
5292 }
5293
5294 static inline int
5295 @@ -675,7 +699,14 @@ do_reloc (struct module *mod, uint8_t r_type, Elf64_Sym *sym, uint64_t addend,
5296 break;
5297
5298 case RV_BDREL:
5299 - val -= (uint64_t) (in_init(mod, val) ? mod->module_init : mod->module_core);
5300 + if (in_init_rx(mod, val))
5301 + val -= (uint64_t) mod->module_init_rx;
5302 + else if (in_init_rw(mod, val))
5303 + val -= (uint64_t) mod->module_init_rw;
5304 + else if (in_core_rx(mod, val))
5305 + val -= (uint64_t) mod->module_core_rx;
5306 + else if (in_core_rw(mod, val))
5307 + val -= (uint64_t) mod->module_core_rw;
5308 break;
5309
5310 case RV_LTV:
5311 @@ -810,15 +841,15 @@ apply_relocate_add (Elf64_Shdr *sechdrs, const char *strtab, unsigned int symind
5312 * addresses have been selected...
5313 */
5314 uint64_t gp;
5315 - if (mod->core_size > MAX_LTOFF)
5316 + if (mod->core_size_rx + mod->core_size_rw > MAX_LTOFF)
5317 /*
5318 * This takes advantage of fact that SHF_ARCH_SMALL gets allocated
5319 * at the end of the module.
5320 */
5321 - gp = mod->core_size - MAX_LTOFF / 2;
5322 + gp = mod->core_size_rx + mod->core_size_rw - MAX_LTOFF / 2;
5323 else
5324 - gp = mod->core_size / 2;
5325 - gp = (uint64_t) mod->module_core + ((gp + 7) & -8);
5326 + gp = (mod->core_size_rx + mod->core_size_rw) / 2;
5327 + gp = (uint64_t) mod->module_core_rx + ((gp + 7) & -8);
5328 mod->arch.gp = gp;
5329 DEBUGP("%s: placing gp at 0x%lx\n", __func__, gp);
5330 }
5331 diff --git a/arch/ia64/kernel/palinfo.c b/arch/ia64/kernel/palinfo.c
5332 index c39c3cd..3c77738 100644
5333 --- a/arch/ia64/kernel/palinfo.c
5334 +++ b/arch/ia64/kernel/palinfo.c
5335 @@ -980,7 +980,7 @@ static int palinfo_cpu_callback(struct notifier_block *nfb,
5336 return NOTIFY_OK;
5337 }
5338
5339 -static struct notifier_block __refdata palinfo_cpu_notifier =
5340 +static struct notifier_block palinfo_cpu_notifier =
5341 {
5342 .notifier_call = palinfo_cpu_callback,
5343 .priority = 0,
5344 diff --git a/arch/ia64/kernel/sys_ia64.c b/arch/ia64/kernel/sys_ia64.c
5345 index 41e33f8..65180b2a 100644
5346 --- a/arch/ia64/kernel/sys_ia64.c
5347 +++ b/arch/ia64/kernel/sys_ia64.c
5348 @@ -28,6 +28,7 @@ arch_get_unmapped_area (struct file *filp, unsigned long addr, unsigned long len
5349 unsigned long align_mask = 0;
5350 struct mm_struct *mm = current->mm;
5351 struct vm_unmapped_area_info info;
5352 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
5353
5354 if (len > RGN_MAP_LIMIT)
5355 return -ENOMEM;
5356 @@ -43,6 +44,13 @@ arch_get_unmapped_area (struct file *filp, unsigned long addr, unsigned long len
5357 if (REGION_NUMBER(addr) == RGN_HPAGE)
5358 addr = 0;
5359 #endif
5360 +
5361 +#ifdef CONFIG_PAX_RANDMMAP
5362 + if (mm->pax_flags & MF_PAX_RANDMMAP)
5363 + addr = mm->free_area_cache;
5364 + else
5365 +#endif
5366 +
5367 if (!addr)
5368 addr = TASK_UNMAPPED_BASE;
5369
5370 @@ -61,6 +69,7 @@ arch_get_unmapped_area (struct file *filp, unsigned long addr, unsigned long len
5371 info.high_limit = TASK_SIZE;
5372 info.align_mask = align_mask;
5373 info.align_offset = 0;
5374 + info.threadstack_offset = offset;
5375 return vm_unmapped_area(&info);
5376 }
5377
5378 diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S
5379 index dc506b0..39baade 100644
5380 --- a/arch/ia64/kernel/vmlinux.lds.S
5381 +++ b/arch/ia64/kernel/vmlinux.lds.S
5382 @@ -171,7 +171,7 @@ SECTIONS {
5383 /* Per-cpu data: */
5384 . = ALIGN(PERCPU_PAGE_SIZE);
5385 PERCPU_VADDR(SMP_CACHE_BYTES, PERCPU_ADDR, :percpu)
5386 - __phys_per_cpu_start = __per_cpu_load;
5387 + __phys_per_cpu_start = per_cpu_load;
5388 /*
5389 * ensure percpu data fits
5390 * into percpu page size
5391 diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c
5392 index 70b40d1..01a9a28 100644
5393 --- a/arch/ia64/mm/fault.c
5394 +++ b/arch/ia64/mm/fault.c
5395 @@ -72,6 +72,23 @@ mapped_kernel_page_is_present (unsigned long address)
5396 return pte_present(pte);
5397 }
5398
5399 +#ifdef CONFIG_PAX_PAGEEXEC
5400 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
5401 +{
5402 + unsigned long i;
5403 +
5404 + printk(KERN_ERR "PAX: bytes at PC: ");
5405 + for (i = 0; i < 8; i++) {
5406 + unsigned int c;
5407 + if (get_user(c, (unsigned int *)pc+i))
5408 + printk(KERN_CONT "???????? ");
5409 + else
5410 + printk(KERN_CONT "%08x ", c);
5411 + }
5412 + printk("\n");
5413 +}
5414 +#endif
5415 +
5416 # define VM_READ_BIT 0
5417 # define VM_WRITE_BIT 1
5418 # define VM_EXEC_BIT 2
5419 @@ -151,8 +168,21 @@ retry:
5420 if (((isr >> IA64_ISR_R_BIT) & 1UL) && (!(vma->vm_flags & (VM_READ | VM_WRITE))))
5421 goto bad_area;
5422
5423 - if ((vma->vm_flags & mask) != mask)
5424 + if ((vma->vm_flags & mask) != mask) {
5425 +
5426 +#ifdef CONFIG_PAX_PAGEEXEC
5427 + if (!(vma->vm_flags & VM_EXEC) && (mask & VM_EXEC)) {
5428 + if (!(mm->pax_flags & MF_PAX_PAGEEXEC) || address != regs->cr_iip)
5429 + goto bad_area;
5430 +
5431 + up_read(&mm->mmap_sem);
5432 + pax_report_fault(regs, (void *)regs->cr_iip, (void *)regs->r12);
5433 + do_group_exit(SIGKILL);
5434 + }
5435 +#endif
5436 +
5437 goto bad_area;
5438 + }
5439
5440 /*
5441 * If for any reason at all we couldn't handle the fault, make
5442 diff --git a/arch/ia64/mm/hugetlbpage.c b/arch/ia64/mm/hugetlbpage.c
5443 index f50d4b3..c7975ee 100644
5444 --- a/arch/ia64/mm/hugetlbpage.c
5445 +++ b/arch/ia64/mm/hugetlbpage.c
5446 @@ -138,6 +138,7 @@ unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr, u
5447 unsigned long pgoff, unsigned long flags)
5448 {
5449 struct vm_unmapped_area_info info;
5450 + unsigned long offset = gr_rand_threadstack_offset(current->mm, file, flags);
5451
5452 if (len > RGN_MAP_LIMIT)
5453 return -ENOMEM;
5454 @@ -161,6 +162,7 @@ unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr, u
5455 info.high_limit = HPAGE_REGION_BASE + RGN_MAP_LIMIT;
5456 info.align_mask = PAGE_MASK & (HPAGE_SIZE - 1);
5457 info.align_offset = 0;
5458 + info.threadstack_offset = offset;
5459 return vm_unmapped_area(&info);
5460 }
5461
5462 diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c
5463 index 1841ef6..74d8330 100644
5464 --- a/arch/ia64/mm/init.c
5465 +++ b/arch/ia64/mm/init.c
5466 @@ -119,6 +119,19 @@ ia64_init_addr_space (void)
5467 vma->vm_start = current->thread.rbs_bot & PAGE_MASK;
5468 vma->vm_end = vma->vm_start + PAGE_SIZE;
5469 vma->vm_flags = VM_DATA_DEFAULT_FLAGS|VM_GROWSUP|VM_ACCOUNT;
5470 +
5471 +#ifdef CONFIG_PAX_PAGEEXEC
5472 + if (current->mm->pax_flags & MF_PAX_PAGEEXEC) {
5473 + vma->vm_flags &= ~VM_EXEC;
5474 +
5475 +#ifdef CONFIG_PAX_MPROTECT
5476 + if (current->mm->pax_flags & MF_PAX_MPROTECT)
5477 + vma->vm_flags &= ~VM_MAYEXEC;
5478 +#endif
5479 +
5480 + }
5481 +#endif
5482 +
5483 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
5484 down_write(&current->mm->mmap_sem);
5485 if (insert_vm_struct(current->mm, vma)) {
5486 @@ -279,7 +292,7 @@ static int __init gate_vma_init(void)
5487 gate_vma.vm_start = FIXADDR_USER_START;
5488 gate_vma.vm_end = FIXADDR_USER_END;
5489 gate_vma.vm_flags = VM_READ | VM_MAYREAD | VM_EXEC | VM_MAYEXEC;
5490 - gate_vma.vm_page_prot = __P101;
5491 + gate_vma.vm_page_prot = vm_get_page_prot(gate_vma.vm_flags);
5492
5493 return 0;
5494 }
5495 diff --git a/arch/m32r/include/asm/cache.h b/arch/m32r/include/asm/cache.h
5496 index 40b3ee98..8c2c112 100644
5497 --- a/arch/m32r/include/asm/cache.h
5498 +++ b/arch/m32r/include/asm/cache.h
5499 @@ -1,8 +1,10 @@
5500 #ifndef _ASM_M32R_CACHE_H
5501 #define _ASM_M32R_CACHE_H
5502
5503 +#include <linux/const.h>
5504 +
5505 /* L1 cache line size */
5506 #define L1_CACHE_SHIFT 4
5507 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5508 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5509
5510 #endif /* _ASM_M32R_CACHE_H */
5511 diff --git a/arch/m32r/lib/usercopy.c b/arch/m32r/lib/usercopy.c
5512 index 82abd15..d95ae5d 100644
5513 --- a/arch/m32r/lib/usercopy.c
5514 +++ b/arch/m32r/lib/usercopy.c
5515 @@ -14,6 +14,9 @@
5516 unsigned long
5517 __generic_copy_to_user(void __user *to, const void *from, unsigned long n)
5518 {
5519 + if ((long)n < 0)
5520 + return n;
5521 +
5522 prefetch(from);
5523 if (access_ok(VERIFY_WRITE, to, n))
5524 __copy_user(to,from,n);
5525 @@ -23,6 +26,9 @@ __generic_copy_to_user(void __user *to, const void *from, unsigned long n)
5526 unsigned long
5527 __generic_copy_from_user(void *to, const void __user *from, unsigned long n)
5528 {
5529 + if ((long)n < 0)
5530 + return n;
5531 +
5532 prefetchw(to);
5533 if (access_ok(VERIFY_READ, from, n))
5534 __copy_user_zeroing(to,from,n);
5535 diff --git a/arch/m68k/include/asm/cache.h b/arch/m68k/include/asm/cache.h
5536 index 0395c51..5f26031 100644
5537 --- a/arch/m68k/include/asm/cache.h
5538 +++ b/arch/m68k/include/asm/cache.h
5539 @@ -4,9 +4,11 @@
5540 #ifndef __ARCH_M68K_CACHE_H
5541 #define __ARCH_M68K_CACHE_H
5542
5543 +#include <linux/const.h>
5544 +
5545 /* bytes per L1 cache line */
5546 #define L1_CACHE_SHIFT 4
5547 -#define L1_CACHE_BYTES (1<< L1_CACHE_SHIFT)
5548 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5549
5550 #define ARCH_DMA_MINALIGN L1_CACHE_BYTES
5551
5552 diff --git a/arch/metag/mm/hugetlbpage.c b/arch/metag/mm/hugetlbpage.c
5553 index 53f0f6c..2dc07fd 100644
5554 --- a/arch/metag/mm/hugetlbpage.c
5555 +++ b/arch/metag/mm/hugetlbpage.c
5556 @@ -189,6 +189,7 @@ hugetlb_get_unmapped_area_new_pmd(unsigned long len)
5557 info.high_limit = TASK_SIZE;
5558 info.align_mask = PAGE_MASK & HUGEPT_MASK;
5559 info.align_offset = 0;
5560 + info.threadstack_offset = 0;
5561 return vm_unmapped_area(&info);
5562 }
5563
5564 diff --git a/arch/microblaze/include/asm/cache.h b/arch/microblaze/include/asm/cache.h
5565 index 4efe96a..60e8699 100644
5566 --- a/arch/microblaze/include/asm/cache.h
5567 +++ b/arch/microblaze/include/asm/cache.h
5568 @@ -13,11 +13,12 @@
5569 #ifndef _ASM_MICROBLAZE_CACHE_H
5570 #define _ASM_MICROBLAZE_CACHE_H
5571
5572 +#include <linux/const.h>
5573 #include <asm/registers.h>
5574
5575 #define L1_CACHE_SHIFT 5
5576 /* word-granular cache in microblaze */
5577 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5578 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5579
5580 #define SMP_CACHE_BYTES L1_CACHE_BYTES
5581
5582 diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
5583 index 71683a8..54062ef 100644
5584 --- a/arch/mips/Kconfig
5585 +++ b/arch/mips/Kconfig
5586 @@ -2641,6 +2641,7 @@ source "kernel/Kconfig.preempt"
5587 config KEXEC
5588 bool "Kexec system call"
5589 select KEXEC_CORE
5590 + depends on !GRKERNSEC_KMEM
5591 help
5592 kexec is a system call that implements the ability to shutdown your
5593 current kernel, and to start another kernel. It is like a reboot
5594 diff --git a/arch/mips/cavium-octeon/dma-octeon.c b/arch/mips/cavium-octeon/dma-octeon.c
5595 index 2cd45f5..d0f4900 100644
5596 --- a/arch/mips/cavium-octeon/dma-octeon.c
5597 +++ b/arch/mips/cavium-octeon/dma-octeon.c
5598 @@ -191,7 +191,7 @@ static void *octeon_dma_alloc_coherent(struct device *dev, size_t size,
5599 static void octeon_dma_free_coherent(struct device *dev, size_t size,
5600 void *vaddr, dma_addr_t dma_handle, struct dma_attrs *attrs)
5601 {
5602 - swiotlb_free_coherent(dev, size, vaddr, dma_handle);
5603 + swiotlb_free_coherent(dev, size, vaddr, dma_handle, attrs);
5604 }
5605
5606 static dma_addr_t octeon_unity_phys_to_dma(struct device *dev, phys_addr_t paddr)
5607 diff --git a/arch/mips/include/asm/atomic.h b/arch/mips/include/asm/atomic.h
5608 index 835b402..afbd327 100644
5609 --- a/arch/mips/include/asm/atomic.h
5610 +++ b/arch/mips/include/asm/atomic.h
5611 @@ -22,15 +22,39 @@
5612 #include <asm/cmpxchg.h>
5613 #include <asm/war.h>
5614
5615 +#ifdef CONFIG_GENERIC_ATOMIC64
5616 +#include <asm-generic/atomic64.h>
5617 +#endif
5618 +
5619 #define ATOMIC_INIT(i) { (i) }
5620
5621 +#ifdef CONFIG_64BIT
5622 +#define _ASM_EXTABLE(from, to) \
5623 +" .section __ex_table,\"a\"\n" \
5624 +" .dword " #from ", " #to"\n" \
5625 +" .previous\n"
5626 +#else
5627 +#define _ASM_EXTABLE(from, to) \
5628 +" .section __ex_table,\"a\"\n" \
5629 +" .word " #from ", " #to"\n" \
5630 +" .previous\n"
5631 +#endif
5632 +
5633 /*
5634 * atomic_read - read atomic variable
5635 * @v: pointer of type atomic_t
5636 *
5637 * Atomically reads the value of @v.
5638 */
5639 -#define atomic_read(v) READ_ONCE((v)->counter)
5640 +static inline int atomic_read(const atomic_t *v)
5641 +{
5642 + return READ_ONCE(v->counter);
5643 +}
5644 +
5645 +static inline int atomic_read_unchecked(const atomic_unchecked_t *v)
5646 +{
5647 + return READ_ONCE(v->counter);
5648 +}
5649
5650 /*
5651 * atomic_set - set atomic variable
5652 @@ -39,47 +63,77 @@
5653 *
5654 * Atomically sets the value of @v to @i.
5655 */
5656 -#define atomic_set(v, i) WRITE_ONCE((v)->counter, (i))
5657 +static inline void atomic_set(atomic_t *v, int i)
5658 +{
5659 + WRITE_ONCE(v->counter, i);
5660 +}
5661
5662 -#define ATOMIC_OP(op, c_op, asm_op) \
5663 -static __inline__ void atomic_##op(int i, atomic_t * v) \
5664 +static inline void atomic_set_unchecked(atomic_unchecked_t *v, int i)
5665 +{
5666 + WRITE_ONCE(v->counter, i);
5667 +}
5668 +
5669 +#ifdef CONFIG_PAX_REFCOUNT
5670 +#define __OVERFLOW_POST \
5671 + " b 4f \n" \
5672 + " .set noreorder \n" \
5673 + "3: b 5f \n" \
5674 + " move %0, %1 \n" \
5675 + " .set reorder \n"
5676 +#define __OVERFLOW_EXTABLE \
5677 + "3:\n" \
5678 + _ASM_EXTABLE(2b, 3b)
5679 +#else
5680 +#define __OVERFLOW_POST
5681 +#define __OVERFLOW_EXTABLE
5682 +#endif
5683 +
5684 +#define __ATOMIC_OP(op, suffix, asm_op, extable) \
5685 +static inline void atomic_##op##suffix(int i, atomic##suffix##_t * v) \
5686 { \
5687 if (kernel_uses_llsc && R10000_LLSC_WAR) { \
5688 int temp; \
5689 \
5690 __asm__ __volatile__( \
5691 - " .set arch=r4000 \n" \
5692 - "1: ll %0, %1 # atomic_" #op " \n" \
5693 - " " #asm_op " %0, %2 \n" \
5694 + " .set mips3 \n" \
5695 + "1: ll %0, %1 # atomic_" #op #suffix "\n" \
5696 + "2: " #asm_op " %0, %2 \n" \
5697 " sc %0, %1 \n" \
5698 " beqzl %0, 1b \n" \
5699 + extable \
5700 " .set mips0 \n" \
5701 : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
5702 : "Ir" (i)); \
5703 } else if (kernel_uses_llsc) { \
5704 int temp; \
5705 \
5706 - do { \
5707 - __asm__ __volatile__( \
5708 - " .set "MIPS_ISA_LEVEL" \n" \
5709 - " ll %0, %1 # atomic_" #op "\n" \
5710 - " " #asm_op " %0, %2 \n" \
5711 - " sc %0, %1 \n" \
5712 - " .set mips0 \n" \
5713 - : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
5714 - : "Ir" (i)); \
5715 - } while (unlikely(!temp)); \
5716 + __asm__ __volatile__( \
5717 + " .set "MIPS_ISA_LEVEL" \n" \
5718 + "1: ll %0, %1 # atomic_" #op #suffix "\n" \
5719 + "2: " #asm_op " %0, %2 \n" \
5720 + " sc %0, %1 \n" \
5721 + " beqz %0, 1b \n" \
5722 + extable \
5723 + " .set mips0 \n" \
5724 + : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
5725 + : "Ir" (i)); \
5726 } else { \
5727 unsigned long flags; \
5728 \
5729 raw_local_irq_save(flags); \
5730 - v->counter c_op i; \
5731 + __asm__ __volatile__( \
5732 + "2: " #asm_op " %0, %1 \n" \
5733 + extable \
5734 + : "+r" (v->counter) : "Ir" (i)); \
5735 raw_local_irq_restore(flags); \
5736 } \
5737 }
5738
5739 -#define ATOMIC_OP_RETURN(op, c_op, asm_op) \
5740 -static __inline__ int atomic_##op##_return(int i, atomic_t * v) \
5741 +#define ATOMIC_OP(op, asm_op) __ATOMIC_OP(op, _unchecked, asm_op##u, ) \
5742 + __ATOMIC_OP(op, , asm_op, __OVERFLOW_EXTABLE)
5743 +
5744 +#define __ATOMIC_OP_RETURN(op, suffix, asm_op, post_op, extable) \
5745 +static inline int atomic_##op##_return##suffix(int i, atomic##suffix##_t * v) \
5746 { \
5747 int result; \
5748 \
5749 @@ -89,12 +143,15 @@ static __inline__ int atomic_##op##_return(int i, atomic_t * v) \
5750 int temp; \
5751 \
5752 __asm__ __volatile__( \
5753 - " .set arch=r4000 \n" \
5754 - "1: ll %1, %2 # atomic_" #op "_return \n" \
5755 - " " #asm_op " %0, %1, %3 \n" \
5756 + " .set mips3 \n" \
5757 + "1: ll %1, %2 # atomic_" #op "_return" #suffix"\n" \
5758 + "2: " #asm_op " %0, %1, %3 \n" \
5759 " sc %0, %2 \n" \
5760 " beqzl %0, 1b \n" \
5761 - " " #asm_op " %0, %1, %3 \n" \
5762 + post_op \
5763 + extable \
5764 + "4: " #asm_op " %0, %1, %3 \n" \
5765 + "5: \n" \
5766 " .set mips0 \n" \
5767 : "=&r" (result), "=&r" (temp), \
5768 "+" GCC_OFF_SMALL_ASM() (v->counter) \
5769 @@ -102,26 +159,33 @@ static __inline__ int atomic_##op##_return(int i, atomic_t * v) \
5770 } else if (kernel_uses_llsc) { \
5771 int temp; \
5772 \
5773 - do { \
5774 - __asm__ __volatile__( \
5775 - " .set "MIPS_ISA_LEVEL" \n" \
5776 - " ll %1, %2 # atomic_" #op "_return \n" \
5777 - " " #asm_op " %0, %1, %3 \n" \
5778 - " sc %0, %2 \n" \
5779 - " .set mips0 \n" \
5780 - : "=&r" (result), "=&r" (temp), \
5781 - "+" GCC_OFF_SMALL_ASM() (v->counter) \
5782 - : "Ir" (i)); \
5783 - } while (unlikely(!result)); \
5784 + __asm__ __volatile__( \
5785 + " .set "MIPS_ISA_LEVEL" \n" \
5786 + "1: ll %1, %2 # atomic_" #op "_return" #suffix "\n" \
5787 + "2: " #asm_op " %0, %1, %3 \n" \
5788 + " sc %0, %2 \n" \
5789 + post_op \
5790 + extable \
5791 + "4: " #asm_op " %0, %1, %3 \n" \
5792 + "5: \n" \
5793 + " .set mips0 \n" \
5794 + : "=&r" (result), "=&r" (temp), \
5795 + "+" GCC_OFF_SMALL_ASM() (v->counter) \
5796 + : "Ir" (i)); \
5797 \
5798 result = temp; result c_op i; \
5799 } else { \
5800 unsigned long flags; \
5801 \
5802 raw_local_irq_save(flags); \
5803 - result = v->counter; \
5804 - result c_op i; \
5805 - v->counter = result; \
5806 + __asm__ __volatile__( \
5807 + " lw %0, %1 \n" \
5808 + "2: " #asm_op " %0, %1, %2 \n" \
5809 + " sw %0, %1 \n" \
5810 + "3: \n" \
5811 + extable \
5812 + : "=&r" (result), "+" GCC_OFF_SMALL_ASM() (v->counter) \
5813 + : "Ir" (i)); \
5814 raw_local_irq_restore(flags); \
5815 } \
5816 \
5817 @@ -130,20 +194,25 @@ static __inline__ int atomic_##op##_return(int i, atomic_t * v) \
5818 return result; \
5819 }
5820
5821 -#define ATOMIC_OPS(op, c_op, asm_op) \
5822 - ATOMIC_OP(op, c_op, asm_op) \
5823 - ATOMIC_OP_RETURN(op, c_op, asm_op)
5824 +#define ATOMIC_OP_RETURN(op, asm_op) __ATOMIC_OP_RETURN(op, _unchecked, asm_op##u, , ) \
5825 + __ATOMIC_OP_RETURN(op, , asm_op, __OVERFLOW_POST, __OVERFLOW_EXTABLE)
5826
5827 -ATOMIC_OPS(add, +=, addu)
5828 -ATOMIC_OPS(sub, -=, subu)
5829 +#define ATOMIC_OPS(op, asm_op) \
5830 + ATOMIC_OP(op, asm_op) \
5831 + ATOMIC_OP_RETURN(op, asm_op)
5832
5833 -ATOMIC_OP(and, &=, and)
5834 -ATOMIC_OP(or, |=, or)
5835 -ATOMIC_OP(xor, ^=, xor)
5836 +ATOMIC_OPS(add, add)
5837 +ATOMIC_OPS(sub, sub)
5838 +
5839 +ATOMIC_OP(and, and)
5840 +ATOMIC_OP(or, or)
5841 +ATOMIC_OP(xor, xor)
5842
5843 #undef ATOMIC_OPS
5844 #undef ATOMIC_OP_RETURN
5845 +#undef __ATOMIC_OP_RETURN
5846 #undef ATOMIC_OP
5847 +#undef __ATOMIC_OP
5848
5849 /*
5850 * atomic_sub_if_positive - conditionally subtract integer from atomic variable
5851 @@ -153,7 +222,7 @@ ATOMIC_OP(xor, ^=, xor)
5852 * Atomically test @v and subtract @i if @v is greater or equal than @i.
5853 * The function returns the old value of @v minus @i.
5854 */
5855 -static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
5856 +static __inline__ int atomic_sub_if_positive(int i, atomic_t *v)
5857 {
5858 int result;
5859
5860 @@ -163,7 +232,7 @@ static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
5861 int temp;
5862
5863 __asm__ __volatile__(
5864 - " .set arch=r4000 \n"
5865 + " .set "MIPS_ISA_LEVEL" \n"
5866 "1: ll %1, %2 # atomic_sub_if_positive\n"
5867 " subu %0, %1, %3 \n"
5868 " bltz %0, 1f \n"
5869 @@ -212,8 +281,26 @@ static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
5870 return result;
5871 }
5872
5873 -#define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
5874 -#define atomic_xchg(v, new) (xchg(&((v)->counter), (new)))
5875 +static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
5876 +{
5877 + return cmpxchg(&v->counter, old, new);
5878 +}
5879 +
5880 +static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *v, int old,
5881 + int new)
5882 +{
5883 + return cmpxchg(&(v->counter), old, new);
5884 +}
5885 +
5886 +static inline int atomic_xchg(atomic_t *v, int new)
5887 +{
5888 + return xchg(&v->counter, new);
5889 +}
5890 +
5891 +static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
5892 +{
5893 + return xchg(&(v->counter), new);
5894 +}
5895
5896 /**
5897 * __atomic_add_unless - add unless the number is a given value
5898 @@ -241,6 +328,10 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
5899
5900 #define atomic_dec_return(v) atomic_sub_return(1, (v))
5901 #define atomic_inc_return(v) atomic_add_return(1, (v))
5902 +static __inline__ int atomic_inc_return_unchecked(atomic_unchecked_t *v)
5903 +{
5904 + return atomic_add_return_unchecked(1, v);
5905 +}
5906
5907 /*
5908 * atomic_sub_and_test - subtract value from variable and test result
5909 @@ -262,6 +353,10 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
5910 * other cases.
5911 */
5912 #define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
5913 +static __inline__ int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
5914 +{
5915 + return atomic_add_return_unchecked(1, v) == 0;
5916 +}
5917
5918 /*
5919 * atomic_dec_and_test - decrement by 1 and test
5920 @@ -286,6 +381,10 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
5921 * Atomically increments @v by 1.
5922 */
5923 #define atomic_inc(v) atomic_add(1, (v))
5924 +static __inline__ void atomic_inc_unchecked(atomic_unchecked_t *v)
5925 +{
5926 + atomic_add_unchecked(1, v);
5927 +}
5928
5929 /*
5930 * atomic_dec - decrement and test
5931 @@ -294,6 +393,10 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
5932 * Atomically decrements @v by 1.
5933 */
5934 #define atomic_dec(v) atomic_sub(1, (v))
5935 +static __inline__ void atomic_dec_unchecked(atomic_unchecked_t *v)
5936 +{
5937 + atomic_sub_unchecked(1, v);
5938 +}
5939
5940 /*
5941 * atomic_add_negative - add and test if negative
5942 @@ -315,54 +418,77 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
5943 * @v: pointer of type atomic64_t
5944 *
5945 */
5946 -#define atomic64_read(v) READ_ONCE((v)->counter)
5947 +static inline long atomic64_read(const atomic64_t *v)
5948 +{
5949 + return READ_ONCE(v->counter);
5950 +}
5951 +
5952 +static inline long atomic64_read_unchecked(const atomic64_unchecked_t *v)
5953 +{
5954 + return READ_ONCE(v->counter);
5955 +}
5956
5957 /*
5958 * atomic64_set - set atomic variable
5959 * @v: pointer of type atomic64_t
5960 * @i: required value
5961 */
5962 -#define atomic64_set(v, i) WRITE_ONCE((v)->counter, (i))
5963 +static inline void atomic64_set(atomic64_t *v, long i)
5964 +{
5965 + WRITE_ONCE(v->counter, i);
5966 +}
5967
5968 -#define ATOMIC64_OP(op, c_op, asm_op) \
5969 -static __inline__ void atomic64_##op(long i, atomic64_t * v) \
5970 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long i)
5971 +{
5972 + WRITE_ONCE(v->counter, i);
5973 +}
5974 +
5975 +#define __ATOMIC64_OP(op, suffix, asm_op, extable) \
5976 +static inline void atomic64_##op##suffix(long i, atomic64##suffix##_t * v) \
5977 { \
5978 if (kernel_uses_llsc && R10000_LLSC_WAR) { \
5979 long temp; \
5980 \
5981 __asm__ __volatile__( \
5982 - " .set arch=r4000 \n" \
5983 - "1: lld %0, %1 # atomic64_" #op " \n" \
5984 - " " #asm_op " %0, %2 \n" \
5985 + " .set "MIPS_ISA_LEVEL" \n" \
5986 + "1: lld %0, %1 # atomic64_" #op #suffix "\n" \
5987 + "2: " #asm_op " %0, %2 \n" \
5988 " scd %0, %1 \n" \
5989 " beqzl %0, 1b \n" \
5990 + extable \
5991 " .set mips0 \n" \
5992 : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
5993 : "Ir" (i)); \
5994 } else if (kernel_uses_llsc) { \
5995 long temp; \
5996 \
5997 - do { \
5998 - __asm__ __volatile__( \
5999 - " .set "MIPS_ISA_LEVEL" \n" \
6000 - " lld %0, %1 # atomic64_" #op "\n" \
6001 - " " #asm_op " %0, %2 \n" \
6002 - " scd %0, %1 \n" \
6003 - " .set mips0 \n" \
6004 - : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6005 - : "Ir" (i)); \
6006 - } while (unlikely(!temp)); \
6007 + __asm__ __volatile__( \
6008 + " .set "MIPS_ISA_LEVEL" \n" \
6009 + "1: lld %0, %1 # atomic64_" #op #suffix "\n" \
6010 + "2: " #asm_op " %0, %2 \n" \
6011 + " scd %0, %1 \n" \
6012 + " beqz %0, 1b \n" \
6013 + extable \
6014 + " .set mips0 \n" \
6015 + : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6016 + : "Ir" (i)); \
6017 } else { \
6018 unsigned long flags; \
6019 \
6020 raw_local_irq_save(flags); \
6021 - v->counter c_op i; \
6022 + __asm__ __volatile__( \
6023 + "2: " #asm_op " %0, %1 \n" \
6024 + extable \
6025 + : "+" GCC_OFF_SMALL_ASM() (v->counter) : "Ir" (i)); \
6026 raw_local_irq_restore(flags); \
6027 } \
6028 }
6029
6030 -#define ATOMIC64_OP_RETURN(op, c_op, asm_op) \
6031 -static __inline__ long atomic64_##op##_return(long i, atomic64_t * v) \
6032 +#define ATOMIC64_OP(op, asm_op) __ATOMIC64_OP(op, _unchecked, asm_op##u, ) \
6033 + __ATOMIC64_OP(op, , asm_op, __OVERFLOW_EXTABLE)
6034 +
6035 +#define __ATOMIC64_OP_RETURN(op, suffix, asm_op, post_op, extable) \
6036 +static inline long atomic64_##op##_return##suffix(long i, atomic64##suffix##_t * v)\
6037 { \
6038 long result; \
6039 \
6040 @@ -372,12 +498,15 @@ static __inline__ long atomic64_##op##_return(long i, atomic64_t * v) \
6041 long temp; \
6042 \
6043 __asm__ __volatile__( \
6044 - " .set arch=r4000 \n" \
6045 + " .set mips3 \n" \
6046 "1: lld %1, %2 # atomic64_" #op "_return\n" \
6047 - " " #asm_op " %0, %1, %3 \n" \
6048 + "2: " #asm_op " %0, %1, %3 \n" \
6049 " scd %0, %2 \n" \
6050 " beqzl %0, 1b \n" \
6051 - " " #asm_op " %0, %1, %3 \n" \
6052 + post_op \
6053 + extable \
6054 + "4: " #asm_op " %0, %1, %3 \n" \
6055 + "5: \n" \
6056 " .set mips0 \n" \
6057 : "=&r" (result), "=&r" (temp), \
6058 "+" GCC_OFF_SMALL_ASM() (v->counter) \
6059 @@ -385,27 +514,35 @@ static __inline__ long atomic64_##op##_return(long i, atomic64_t * v) \
6060 } else if (kernel_uses_llsc) { \
6061 long temp; \
6062 \
6063 - do { \
6064 - __asm__ __volatile__( \
6065 - " .set "MIPS_ISA_LEVEL" \n" \
6066 - " lld %1, %2 # atomic64_" #op "_return\n" \
6067 - " " #asm_op " %0, %1, %3 \n" \
6068 - " scd %0, %2 \n" \
6069 - " .set mips0 \n" \
6070 - : "=&r" (result), "=&r" (temp), \
6071 - "=" GCC_OFF_SMALL_ASM() (v->counter) \
6072 - : "Ir" (i), GCC_OFF_SMALL_ASM() (v->counter) \
6073 - : "memory"); \
6074 - } while (unlikely(!result)); \
6075 + __asm__ __volatile__( \
6076 + " .set "MIPS_ISA_LEVEL" \n" \
6077 + "1: lld %1, %2 # atomic64_" #op "_return" #suffix "\n"\
6078 + "2: " #asm_op " %0, %1, %3 \n" \
6079 + " scd %0, %2 \n" \
6080 + " beqz %0, 1b \n" \
6081 + post_op \
6082 + extable \
6083 + "4: " #asm_op " %0, %1, %3 \n" \
6084 + "5: \n" \
6085 + " .set mips0 \n" \
6086 + : "=&r" (result), "=&r" (temp), \
6087 + "=" GCC_OFF_SMALL_ASM() (v->counter) \
6088 + : "Ir" (i), GCC_OFF_SMALL_ASM() (v->counter) \
6089 + : "memory"); \
6090 \
6091 result = temp; result c_op i; \
6092 } else { \
6093 unsigned long flags; \
6094 \
6095 raw_local_irq_save(flags); \
6096 - result = v->counter; \
6097 - result c_op i; \
6098 - v->counter = result; \
6099 + __asm__ __volatile__( \
6100 + " ld %0, %1 \n" \
6101 + "2: " #asm_op " %0, %1, %2 \n" \
6102 + " sd %0, %1 \n" \
6103 + "3: \n" \
6104 + extable \
6105 + : "=&r" (result), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6106 + : "Ir" (i)); \
6107 raw_local_irq_restore(flags); \
6108 } \
6109 \
6110 @@ -414,19 +551,27 @@ static __inline__ long atomic64_##op##_return(long i, atomic64_t * v) \
6111 return result; \
6112 }
6113
6114 -#define ATOMIC64_OPS(op, c_op, asm_op) \
6115 - ATOMIC64_OP(op, c_op, asm_op) \
6116 - ATOMIC64_OP_RETURN(op, c_op, asm_op)
6117 +#define ATOMIC64_OP_RETURN(op, asm_op) __ATOMIC64_OP_RETURN(op, _unchecked, asm_op##u, , ) \
6118 + __ATOMIC64_OP_RETURN(op, , asm_op, __OVERFLOW_POST, __OVERFLOW_EXTABLE)
6119
6120 -ATOMIC64_OPS(add, +=, daddu)
6121 -ATOMIC64_OPS(sub, -=, dsubu)
6122 -ATOMIC64_OP(and, &=, and)
6123 -ATOMIC64_OP(or, |=, or)
6124 -ATOMIC64_OP(xor, ^=, xor)
6125 +#define ATOMIC64_OPS(op, asm_op) \
6126 + ATOMIC64_OP(op, asm_op) \
6127 + ATOMIC64_OP_RETURN(op, asm_op)
6128 +
6129 +ATOMIC64_OPS(add, dadd)
6130 +ATOMIC64_OPS(sub, dsub)
6131 +
6132 +ATOMIC64_OP(and, and)
6133 +ATOMIC64_OP(or, or)
6134 +ATOMIC64_OP(xor, xor)
6135
6136 #undef ATOMIC64_OPS
6137 #undef ATOMIC64_OP_RETURN
6138 +#undef __ATOMIC64_OP_RETURN
6139 #undef ATOMIC64_OP
6140 +#undef __ATOMIC64_OP
6141 +#undef __OVERFLOW_EXTABLE
6142 +#undef __OVERFLOW_POST
6143
6144 /*
6145 * atomic64_sub_if_positive - conditionally subtract integer from atomic
6146 @@ -437,7 +582,7 @@ ATOMIC64_OP(xor, ^=, xor)
6147 * Atomically test @v and subtract @i if @v is greater or equal than @i.
6148 * The function returns the old value of @v minus @i.
6149 */
6150 -static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v)
6151 +static __inline__ long atomic64_sub_if_positive(long i, atomic64_t *v)
6152 {
6153 long result;
6154
6155 @@ -447,7 +592,7 @@ static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v)
6156 long temp;
6157
6158 __asm__ __volatile__(
6159 - " .set arch=r4000 \n"
6160 + " .set "MIPS_ISA_LEVEL" \n"
6161 "1: lld %1, %2 # atomic64_sub_if_positive\n"
6162 " dsubu %0, %1, %3 \n"
6163 " bltz %0, 1f \n"
6164 @@ -496,9 +641,26 @@ static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v)
6165 return result;
6166 }
6167
6168 -#define atomic64_cmpxchg(v, o, n) \
6169 - ((__typeof__((v)->counter))cmpxchg(&((v)->counter), (o), (n)))
6170 -#define atomic64_xchg(v, new) (xchg(&((v)->counter), (new)))
6171 +static inline long atomic64_cmpxchg(atomic64_t *v, long old, long new)
6172 +{
6173 + return cmpxchg(&v->counter, old, new);
6174 +}
6175 +
6176 +static inline long atomic64_cmpxchg_unchecked(atomic64_unchecked_t *v, long old,
6177 + long new)
6178 +{
6179 + return cmpxchg(&(v->counter), old, new);
6180 +}
6181 +
6182 +static inline long atomic64_xchg(atomic64_t *v, long new)
6183 +{
6184 + return xchg(&v->counter, new);
6185 +}
6186 +
6187 +static inline long atomic64_xchg_unchecked(atomic64_unchecked_t *v, long new)
6188 +{
6189 + return xchg(&(v->counter), new);
6190 +}
6191
6192 /**
6193 * atomic64_add_unless - add unless the number is a given value
6194 @@ -528,6 +690,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
6195
6196 #define atomic64_dec_return(v) atomic64_sub_return(1, (v))
6197 #define atomic64_inc_return(v) atomic64_add_return(1, (v))
6198 +#define atomic64_inc_return_unchecked(v) atomic64_add_return_unchecked(1, (v))
6199
6200 /*
6201 * atomic64_sub_and_test - subtract value from variable and test result
6202 @@ -549,6 +712,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
6203 * other cases.
6204 */
6205 #define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0)
6206 +#define atomic64_inc_and_test_unchecked(v) atomic64_add_return_unchecked(1, (v)) == 0)
6207
6208 /*
6209 * atomic64_dec_and_test - decrement by 1 and test
6210 @@ -573,6 +737,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
6211 * Atomically increments @v by 1.
6212 */
6213 #define atomic64_inc(v) atomic64_add(1, (v))
6214 +#define atomic64_inc_unchecked(v) atomic64_add_unchecked(1, (v))
6215
6216 /*
6217 * atomic64_dec - decrement and test
6218 @@ -581,6 +746,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
6219 * Atomically decrements @v by 1.
6220 */
6221 #define atomic64_dec(v) atomic64_sub(1, (v))
6222 +#define atomic64_dec_unchecked(v) atomic64_sub_unchecked(1, (v))
6223
6224 /*
6225 * atomic64_add_negative - add and test if negative
6226 diff --git a/arch/mips/include/asm/cache.h b/arch/mips/include/asm/cache.h
6227 index b4db69f..8f3b093 100644
6228 --- a/arch/mips/include/asm/cache.h
6229 +++ b/arch/mips/include/asm/cache.h
6230 @@ -9,10 +9,11 @@
6231 #ifndef _ASM_CACHE_H
6232 #define _ASM_CACHE_H
6233
6234 +#include <linux/const.h>
6235 #include <kmalloc.h>
6236
6237 #define L1_CACHE_SHIFT CONFIG_MIPS_L1_CACHE_SHIFT
6238 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
6239 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
6240
6241 #define SMP_CACHE_SHIFT L1_CACHE_SHIFT
6242 #define SMP_CACHE_BYTES L1_CACHE_BYTES
6243 diff --git a/arch/mips/include/asm/elf.h b/arch/mips/include/asm/elf.h
6244 index b01a6ff..aa29db0 100644
6245 --- a/arch/mips/include/asm/elf.h
6246 +++ b/arch/mips/include/asm/elf.h
6247 @@ -420,6 +420,13 @@ extern const char *__elf_platform;
6248 #define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
6249 #endif
6250
6251 +#ifdef CONFIG_PAX_ASLR
6252 +#define PAX_ELF_ET_DYN_BASE (TASK_IS_32BIT_ADDR ? 0x00400000UL : 0x00400000UL)
6253 +
6254 +#define PAX_DELTA_MMAP_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6255 +#define PAX_DELTA_STACK_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6256 +#endif
6257 +
6258 #define ARCH_DLINFO \
6259 do { \
6260 NEW_AUX_ENT(AT_SYSINFO_EHDR, \
6261 diff --git a/arch/mips/include/asm/exec.h b/arch/mips/include/asm/exec.h
6262 index c1f6afa..38cc6e9 100644
6263 --- a/arch/mips/include/asm/exec.h
6264 +++ b/arch/mips/include/asm/exec.h
6265 @@ -12,6 +12,6 @@
6266 #ifndef _ASM_EXEC_H
6267 #define _ASM_EXEC_H
6268
6269 -extern unsigned long arch_align_stack(unsigned long sp);
6270 +#define arch_align_stack(x) ((x) & ~0xfUL)
6271
6272 #endif /* _ASM_EXEC_H */
6273 diff --git a/arch/mips/include/asm/hw_irq.h b/arch/mips/include/asm/hw_irq.h
6274 index 9e8ef59..1139d6b 100644
6275 --- a/arch/mips/include/asm/hw_irq.h
6276 +++ b/arch/mips/include/asm/hw_irq.h
6277 @@ -10,7 +10,7 @@
6278
6279 #include <linux/atomic.h>
6280
6281 -extern atomic_t irq_err_count;
6282 +extern atomic_unchecked_t irq_err_count;
6283
6284 /*
6285 * interrupt-retrigger: NOP for now. This may not be appropriate for all
6286 diff --git a/arch/mips/include/asm/local.h b/arch/mips/include/asm/local.h
6287 index 8feaed6..1bd8a64 100644
6288 --- a/arch/mips/include/asm/local.h
6289 +++ b/arch/mips/include/asm/local.h
6290 @@ -13,15 +13,25 @@ typedef struct
6291 atomic_long_t a;
6292 } local_t;
6293
6294 +typedef struct {
6295 + atomic_long_unchecked_t a;
6296 +} local_unchecked_t;
6297 +
6298 #define LOCAL_INIT(i) { ATOMIC_LONG_INIT(i) }
6299
6300 #define local_read(l) atomic_long_read(&(l)->a)
6301 +#define local_read_unchecked(l) atomic_long_read_unchecked(&(l)->a)
6302 #define local_set(l, i) atomic_long_set(&(l)->a, (i))
6303 +#define local_set_unchecked(l, i) atomic_long_set_unchecked(&(l)->a, (i))
6304
6305 #define local_add(i, l) atomic_long_add((i), (&(l)->a))
6306 +#define local_add_unchecked(i, l) atomic_long_add_unchecked((i), (&(l)->a))
6307 #define local_sub(i, l) atomic_long_sub((i), (&(l)->a))
6308 +#define local_sub_unchecked(i, l) atomic_long_sub_unchecked((i), (&(l)->a))
6309 #define local_inc(l) atomic_long_inc(&(l)->a)
6310 +#define local_inc_unchecked(l) atomic_long_inc_unchecked(&(l)->a)
6311 #define local_dec(l) atomic_long_dec(&(l)->a)
6312 +#define local_dec_unchecked(l) atomic_long_dec_unchecked(&(l)->a)
6313
6314 /*
6315 * Same as above, but return the result value
6316 @@ -71,6 +81,51 @@ static __inline__ long local_add_return(long i, local_t * l)
6317 return result;
6318 }
6319
6320 +static __inline__ long local_add_return_unchecked(long i, local_unchecked_t * l)
6321 +{
6322 + unsigned long result;
6323 +
6324 + if (kernel_uses_llsc && R10000_LLSC_WAR) {
6325 + unsigned long temp;
6326 +
6327 + __asm__ __volatile__(
6328 + " .set mips3 \n"
6329 + "1:" __LL "%1, %2 # local_add_return \n"
6330 + " addu %0, %1, %3 \n"
6331 + __SC "%0, %2 \n"
6332 + " beqzl %0, 1b \n"
6333 + " addu %0, %1, %3 \n"
6334 + " .set mips0 \n"
6335 + : "=&r" (result), "=&r" (temp), "=m" (l->a.counter)
6336 + : "Ir" (i), "m" (l->a.counter)
6337 + : "memory");
6338 + } else if (kernel_uses_llsc) {
6339 + unsigned long temp;
6340 +
6341 + __asm__ __volatile__(
6342 + " .set mips3 \n"
6343 + "1:" __LL "%1, %2 # local_add_return \n"
6344 + " addu %0, %1, %3 \n"
6345 + __SC "%0, %2 \n"
6346 + " beqz %0, 1b \n"
6347 + " addu %0, %1, %3 \n"
6348 + " .set mips0 \n"
6349 + : "=&r" (result), "=&r" (temp), "=m" (l->a.counter)
6350 + : "Ir" (i), "m" (l->a.counter)
6351 + : "memory");
6352 + } else {
6353 + unsigned long flags;
6354 +
6355 + local_irq_save(flags);
6356 + result = l->a.counter;
6357 + result += i;
6358 + l->a.counter = result;
6359 + local_irq_restore(flags);
6360 + }
6361 +
6362 + return result;
6363 +}
6364 +
6365 static __inline__ long local_sub_return(long i, local_t * l)
6366 {
6367 unsigned long result;
6368 @@ -118,6 +173,8 @@ static __inline__ long local_sub_return(long i, local_t * l)
6369
6370 #define local_cmpxchg(l, o, n) \
6371 ((long)cmpxchg_local(&((l)->a.counter), (o), (n)))
6372 +#define local_cmpxchg_unchecked(l, o, n) \
6373 + ((long)cmpxchg_local(&((l)->a.counter), (o), (n)))
6374 #define local_xchg(l, n) (atomic_long_xchg((&(l)->a), (n)))
6375
6376 /**
6377 diff --git a/arch/mips/include/asm/page.h b/arch/mips/include/asm/page.h
6378 index 21ed715..774a251 100644
6379 --- a/arch/mips/include/asm/page.h
6380 +++ b/arch/mips/include/asm/page.h
6381 @@ -118,7 +118,7 @@ extern void copy_user_highpage(struct page *to, struct page *from,
6382 #ifdef CONFIG_CPU_MIPS32
6383 typedef struct { unsigned long pte_low, pte_high; } pte_t;
6384 #define pte_val(x) ((x).pte_low | ((unsigned long long)(x).pte_high << 32))
6385 - #define __pte(x) ({ pte_t __pte = {(x), ((unsigned long long)(x)) >> 32}; __pte; })
6386 + #define __pte(x) ({ pte_t __pte = {(x), (x) >> 32}; __pte; })
6387 #else
6388 typedef struct { unsigned long long pte; } pte_t;
6389 #define pte_val(x) ((x).pte)
6390 diff --git a/arch/mips/include/asm/pgalloc.h b/arch/mips/include/asm/pgalloc.h
6391 index b336037..5b874cc 100644
6392 --- a/arch/mips/include/asm/pgalloc.h
6393 +++ b/arch/mips/include/asm/pgalloc.h
6394 @@ -37,6 +37,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
6395 {
6396 set_pud(pud, __pud((unsigned long)pmd));
6397 }
6398 +
6399 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
6400 +{
6401 + pud_populate(mm, pud, pmd);
6402 +}
6403 #endif
6404
6405 /*
6406 diff --git a/arch/mips/include/asm/pgtable.h b/arch/mips/include/asm/pgtable.h
6407 index 18826aa..f5a6216 100644
6408 --- a/arch/mips/include/asm/pgtable.h
6409 +++ b/arch/mips/include/asm/pgtable.h
6410 @@ -20,6 +20,9 @@
6411 #include <asm/io.h>
6412 #include <asm/pgtable-bits.h>
6413
6414 +#define ktla_ktva(addr) (addr)
6415 +#define ktva_ktla(addr) (addr)
6416 +
6417 struct mm_struct;
6418 struct vm_area_struct;
6419
6420 diff --git a/arch/mips/include/asm/thread_info.h b/arch/mips/include/asm/thread_info.h
6421 index e309d8f..20eefec 100644
6422 --- a/arch/mips/include/asm/thread_info.h
6423 +++ b/arch/mips/include/asm/thread_info.h
6424 @@ -101,6 +101,9 @@ static inline struct thread_info *current_thread_info(void)
6425 #define TIF_NOTIFY_RESUME 5 /* callback before returning to user */
6426 #define TIF_UPROBE 6 /* breakpointed or singlestepping */
6427 #define TIF_RESTORE_SIGMASK 9 /* restore signal mask in do_signal() */
6428 +/* li takes a 32bit immediate */
6429 +#define TIF_GRSEC_SETXID 10 /* update credentials on syscall entry/exit */
6430 +
6431 #define TIF_USEDFPU 16 /* FPU was used by this task this quantum (SMP) */
6432 #define TIF_MEMDIE 18 /* is terminating due to OOM killer */
6433 #define TIF_NOHZ 19 /* in adaptive nohz mode */
6434 @@ -137,14 +140,16 @@ static inline struct thread_info *current_thread_info(void)
6435 #define _TIF_USEDMSA (1<<TIF_USEDMSA)
6436 #define _TIF_MSA_CTX_LIVE (1<<TIF_MSA_CTX_LIVE)
6437 #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)
6438 +#define _TIF_GRSEC_SETXID (1<<TIF_GRSEC_SETXID)
6439
6440 #define _TIF_WORK_SYSCALL_ENTRY (_TIF_NOHZ | _TIF_SYSCALL_TRACE | \
6441 _TIF_SYSCALL_AUDIT | \
6442 - _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP)
6443 + _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP | \
6444 + _TIF_GRSEC_SETXID)
6445
6446 /* work to do in syscall_trace_leave() */
6447 #define _TIF_WORK_SYSCALL_EXIT (_TIF_NOHZ | _TIF_SYSCALL_TRACE | \
6448 - _TIF_SYSCALL_AUDIT | _TIF_SYSCALL_TRACEPOINT)
6449 + _TIF_SYSCALL_AUDIT | _TIF_SYSCALL_TRACEPOINT | _TIF_GRSEC_SETXID)
6450
6451 /* work to do on interrupt/exception return */
6452 #define _TIF_WORK_MASK \
6453 @@ -153,7 +158,7 @@ static inline struct thread_info *current_thread_info(void)
6454 /* work to do on any return to u-space */
6455 #define _TIF_ALLWORK_MASK (_TIF_NOHZ | _TIF_WORK_MASK | \
6456 _TIF_WORK_SYSCALL_EXIT | \
6457 - _TIF_SYSCALL_TRACEPOINT)
6458 + _TIF_SYSCALL_TRACEPOINT | _TIF_GRSEC_SETXID)
6459
6460 /*
6461 * We stash processor id into a COP0 register to retrieve it fast
6462 diff --git a/arch/mips/include/asm/uaccess.h b/arch/mips/include/asm/uaccess.h
6463 index 095ecaf..f1da6ff 100644
6464 --- a/arch/mips/include/asm/uaccess.h
6465 +++ b/arch/mips/include/asm/uaccess.h
6466 @@ -146,6 +146,7 @@ static inline bool eva_kernel_access(void)
6467 __ok == 0; \
6468 })
6469
6470 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
6471 #define access_ok(type, addr, size) \
6472 likely(__access_ok((addr), (size), __access_mask))
6473
6474 diff --git a/arch/mips/kernel/binfmt_elfn32.c b/arch/mips/kernel/binfmt_elfn32.c
6475 index 1188e00..41cf144 100644
6476 --- a/arch/mips/kernel/binfmt_elfn32.c
6477 +++ b/arch/mips/kernel/binfmt_elfn32.c
6478 @@ -50,6 +50,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
6479 #undef ELF_ET_DYN_BASE
6480 #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2)
6481
6482 +#ifdef CONFIG_PAX_ASLR
6483 +#define PAX_ELF_ET_DYN_BASE (TASK_IS_32BIT_ADDR ? 0x00400000UL : 0x00400000UL)
6484 +
6485 +#define PAX_DELTA_MMAP_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6486 +#define PAX_DELTA_STACK_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6487 +#endif
6488 +
6489 #include <asm/processor.h>
6490 #include <linux/module.h>
6491 #include <linux/elfcore.h>
6492 diff --git a/arch/mips/kernel/binfmt_elfo32.c b/arch/mips/kernel/binfmt_elfo32.c
6493 index 9287678..f870e47 100644
6494 --- a/arch/mips/kernel/binfmt_elfo32.c
6495 +++ b/arch/mips/kernel/binfmt_elfo32.c
6496 @@ -70,6 +70,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
6497 #undef ELF_ET_DYN_BASE
6498 #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2)
6499
6500 +#ifdef CONFIG_PAX_ASLR
6501 +#define PAX_ELF_ET_DYN_BASE (TASK_IS_32BIT_ADDR ? 0x00400000UL : 0x00400000UL)
6502 +
6503 +#define PAX_DELTA_MMAP_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6504 +#define PAX_DELTA_STACK_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6505 +#endif
6506 +
6507 #include <asm/processor.h>
6508
6509 #include <linux/module.h>
6510 diff --git a/arch/mips/kernel/irq-gt641xx.c b/arch/mips/kernel/irq-gt641xx.c
6511 index 44a1f79..2bd6aa3 100644
6512 --- a/arch/mips/kernel/irq-gt641xx.c
6513 +++ b/arch/mips/kernel/irq-gt641xx.c
6514 @@ -110,7 +110,7 @@ void gt641xx_irq_dispatch(void)
6515 }
6516 }
6517
6518 - atomic_inc(&irq_err_count);
6519 + atomic_inc_unchecked(&irq_err_count);
6520 }
6521
6522 void __init gt641xx_irq_init(void)
6523 diff --git a/arch/mips/kernel/irq.c b/arch/mips/kernel/irq.c
6524 index 8eb5af8..2baf465 100644
6525 --- a/arch/mips/kernel/irq.c
6526 +++ b/arch/mips/kernel/irq.c
6527 @@ -34,17 +34,17 @@ void ack_bad_irq(unsigned int irq)
6528 printk("unexpected IRQ # %d\n", irq);
6529 }
6530
6531 -atomic_t irq_err_count;
6532 +atomic_unchecked_t irq_err_count;
6533
6534 int arch_show_interrupts(struct seq_file *p, int prec)
6535 {
6536 - seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read(&irq_err_count));
6537 + seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read_unchecked(&irq_err_count));
6538 return 0;
6539 }
6540
6541 asmlinkage void spurious_interrupt(void)
6542 {
6543 - atomic_inc(&irq_err_count);
6544 + atomic_inc_unchecked(&irq_err_count);
6545 }
6546
6547 void __init init_IRQ(void)
6548 @@ -58,6 +58,8 @@ void __init init_IRQ(void)
6549 }
6550
6551 #ifdef CONFIG_DEBUG_STACKOVERFLOW
6552 +
6553 +extern void gr_handle_kernel_exploit(void);
6554 static inline void check_stack_overflow(void)
6555 {
6556 unsigned long sp;
6557 @@ -73,6 +75,7 @@ static inline void check_stack_overflow(void)
6558 printk("do_IRQ: stack overflow: %ld\n",
6559 sp - sizeof(struct thread_info));
6560 dump_stack();
6561 + gr_handle_kernel_exploit();
6562 }
6563 }
6564 #else
6565 diff --git a/arch/mips/kernel/pm-cps.c b/arch/mips/kernel/pm-cps.c
6566 index f63a289..53037c22 100644
6567 --- a/arch/mips/kernel/pm-cps.c
6568 +++ b/arch/mips/kernel/pm-cps.c
6569 @@ -172,7 +172,7 @@ int cps_pm_enter_state(enum cps_pm_state state)
6570 nc_core_ready_count = nc_addr;
6571
6572 /* Ensure ready_count is zero-initialised before the assembly runs */
6573 - ACCESS_ONCE(*nc_core_ready_count) = 0;
6574 + ACCESS_ONCE_RW(*nc_core_ready_count) = 0;
6575 coupled_barrier(&per_cpu(pm_barrier, core), online);
6576
6577 /* Run the generated entry code */
6578 diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c
6579 index f2975d4..f61d355 100644
6580 --- a/arch/mips/kernel/process.c
6581 +++ b/arch/mips/kernel/process.c
6582 @@ -541,18 +541,6 @@ out:
6583 return pc;
6584 }
6585
6586 -/*
6587 - * Don't forget that the stack pointer must be aligned on a 8 bytes
6588 - * boundary for 32-bits ABI and 16 bytes for 64-bits ABI.
6589 - */
6590 -unsigned long arch_align_stack(unsigned long sp)
6591 -{
6592 - if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
6593 - sp -= get_random_int() & ~PAGE_MASK;
6594 -
6595 - return sp & ALMASK;
6596 -}
6597 -
6598 static void arch_dump_stack(void *info)
6599 {
6600 struct pt_regs *regs;
6601 diff --git a/arch/mips/kernel/ptrace.c b/arch/mips/kernel/ptrace.c
6602 index 4f0ac78..491124a 100644
6603 --- a/arch/mips/kernel/ptrace.c
6604 +++ b/arch/mips/kernel/ptrace.c
6605 @@ -873,6 +873,10 @@ long arch_ptrace(struct task_struct *child, long request,
6606 return ret;
6607 }
6608
6609 +#ifdef CONFIG_GRKERNSEC_SETXID
6610 +extern void gr_delayed_cred_worker(void);
6611 +#endif
6612 +
6613 /*
6614 * Notification of system call entry/exit
6615 * - triggered by current->work.syscall_trace
6616 @@ -891,6 +895,11 @@ asmlinkage long syscall_trace_enter(struct pt_regs *regs, long syscall)
6617 tracehook_report_syscall_entry(regs))
6618 ret = -1;
6619
6620 +#ifdef CONFIG_GRKERNSEC_SETXID
6621 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
6622 + gr_delayed_cred_worker();
6623 +#endif
6624 +
6625 if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
6626 trace_sys_enter(regs, regs->regs[2]);
6627
6628 diff --git a/arch/mips/kernel/sync-r4k.c b/arch/mips/kernel/sync-r4k.c
6629 index 2242bdd..b284048 100644
6630 --- a/arch/mips/kernel/sync-r4k.c
6631 +++ b/arch/mips/kernel/sync-r4k.c
6632 @@ -18,8 +18,8 @@
6633 #include <asm/mipsregs.h>
6634
6635 static atomic_t count_start_flag = ATOMIC_INIT(0);
6636 -static atomic_t count_count_start = ATOMIC_INIT(0);
6637 -static atomic_t count_count_stop = ATOMIC_INIT(0);
6638 +static atomic_unchecked_t count_count_start = ATOMIC_INIT(0);
6639 +static atomic_unchecked_t count_count_stop = ATOMIC_INIT(0);
6640 static atomic_t count_reference = ATOMIC_INIT(0);
6641
6642 #define COUNTON 100
6643 @@ -58,13 +58,13 @@ void synchronise_count_master(int cpu)
6644
6645 for (i = 0; i < NR_LOOPS; i++) {
6646 /* slaves loop on '!= 2' */
6647 - while (atomic_read(&count_count_start) != 1)
6648 + while (atomic_read_unchecked(&count_count_start) != 1)
6649 mb();
6650 - atomic_set(&count_count_stop, 0);
6651 + atomic_set_unchecked(&count_count_stop, 0);
6652 smp_wmb();
6653
6654 /* this lets the slaves write their count register */
6655 - atomic_inc(&count_count_start);
6656 + atomic_inc_unchecked(&count_count_start);
6657
6658 /*
6659 * Everyone initialises count in the last loop:
6660 @@ -75,11 +75,11 @@ void synchronise_count_master(int cpu)
6661 /*
6662 * Wait for all slaves to leave the synchronization point:
6663 */
6664 - while (atomic_read(&count_count_stop) != 1)
6665 + while (atomic_read_unchecked(&count_count_stop) != 1)
6666 mb();
6667 - atomic_set(&count_count_start, 0);
6668 + atomic_set_unchecked(&count_count_start, 0);
6669 smp_wmb();
6670 - atomic_inc(&count_count_stop);
6671 + atomic_inc_unchecked(&count_count_stop);
6672 }
6673 /* Arrange for an interrupt in a short while */
6674 write_c0_compare(read_c0_count() + COUNTON);
6675 @@ -112,8 +112,8 @@ void synchronise_count_slave(int cpu)
6676 initcount = atomic_read(&count_reference);
6677
6678 for (i = 0; i < NR_LOOPS; i++) {
6679 - atomic_inc(&count_count_start);
6680 - while (atomic_read(&count_count_start) != 2)
6681 + atomic_inc_unchecked(&count_count_start);
6682 + while (atomic_read_unchecked(&count_count_start) != 2)
6683 mb();
6684
6685 /*
6686 @@ -122,8 +122,8 @@ void synchronise_count_slave(int cpu)
6687 if (i == NR_LOOPS-1)
6688 write_c0_count(initcount);
6689
6690 - atomic_inc(&count_count_stop);
6691 - while (atomic_read(&count_count_stop) != 2)
6692 + atomic_inc_unchecked(&count_count_stop);
6693 + while (atomic_read_unchecked(&count_count_stop) != 2)
6694 mb();
6695 }
6696 /* Arrange for an interrupt in a short while */
6697 diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
6698 index ca9a810..e00a026 100644
6699 --- a/arch/mips/kernel/traps.c
6700 +++ b/arch/mips/kernel/traps.c
6701 @@ -697,7 +697,18 @@ asmlinkage void do_ov(struct pt_regs *regs)
6702 };
6703
6704 prev_state = exception_enter();
6705 - die_if_kernel("Integer overflow", regs);
6706 + if (unlikely(!user_mode(regs))) {
6707 +
6708 +#ifdef CONFIG_PAX_REFCOUNT
6709 + if (fixup_exception(regs)) {
6710 + pax_report_refcount_overflow(regs);
6711 + exception_exit(prev_state);
6712 + return;
6713 + }
6714 +#endif
6715 +
6716 + die("Integer overflow", regs);
6717 + }
6718
6719 force_sig_info(SIGFPE, &info, current);
6720 exception_exit(prev_state);
6721 diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c
6722 index 4b88fa0..b16bc17 100644
6723 --- a/arch/mips/mm/fault.c
6724 +++ b/arch/mips/mm/fault.c
6725 @@ -31,6 +31,23 @@
6726
6727 int show_unhandled_signals = 1;
6728
6729 +#ifdef CONFIG_PAX_PAGEEXEC
6730 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
6731 +{
6732 + unsigned long i;
6733 +
6734 + printk(KERN_ERR "PAX: bytes at PC: ");
6735 + for (i = 0; i < 5; i++) {
6736 + unsigned int c;
6737 + if (get_user(c, (unsigned int *)pc+i))
6738 + printk(KERN_CONT "???????? ");
6739 + else
6740 + printk(KERN_CONT "%08x ", c);
6741 + }
6742 + printk("\n");
6743 +}
6744 +#endif
6745 +
6746 /*
6747 * This routine handles page faults. It determines the address,
6748 * and the problem, and then passes it off to one of the appropriate
6749 @@ -205,6 +222,14 @@ bad_area:
6750 bad_area_nosemaphore:
6751 /* User mode accesses just cause a SIGSEGV */
6752 if (user_mode(regs)) {
6753 +
6754 +#ifdef CONFIG_PAX_PAGEEXEC
6755 + if (cpu_has_rixi && (mm->pax_flags & MF_PAX_PAGEEXEC) && !write && address == instruction_pointer(regs)) {
6756 + pax_report_fault(regs, (void *)address, (void *)user_stack_pointer(regs));
6757 + do_group_exit(SIGKILL);
6758 + }
6759 +#endif
6760 +
6761 tsk->thread.cp0_badvaddr = address;
6762 tsk->thread.error_code = write;
6763 if (show_unhandled_signals &&
6764 diff --git a/arch/mips/mm/mmap.c b/arch/mips/mm/mmap.c
6765 index 5c81fdd..db158d3 100644
6766 --- a/arch/mips/mm/mmap.c
6767 +++ b/arch/mips/mm/mmap.c
6768 @@ -59,6 +59,7 @@ static unsigned long arch_get_unmapped_area_common(struct file *filp,
6769 struct vm_area_struct *vma;
6770 unsigned long addr = addr0;
6771 int do_color_align;
6772 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
6773 struct vm_unmapped_area_info info;
6774
6775 if (unlikely(len > TASK_SIZE))
6776 @@ -84,6 +85,11 @@ static unsigned long arch_get_unmapped_area_common(struct file *filp,
6777 do_color_align = 1;
6778
6779 /* requesting a specific address */
6780 +
6781 +#ifdef CONFIG_PAX_RANDMMAP
6782 + if (!(current->mm->pax_flags & MF_PAX_RANDMMAP))
6783 +#endif
6784 +
6785 if (addr) {
6786 if (do_color_align)
6787 addr = COLOUR_ALIGN(addr, pgoff);
6788 @@ -91,14 +97,14 @@ static unsigned long arch_get_unmapped_area_common(struct file *filp,
6789 addr = PAGE_ALIGN(addr);
6790
6791 vma = find_vma(mm, addr);
6792 - if (TASK_SIZE - len >= addr &&
6793 - (!vma || addr + len <= vma->vm_start))
6794 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
6795 return addr;
6796 }
6797
6798 info.length = len;
6799 info.align_mask = do_color_align ? (PAGE_MASK & shm_align_mask) : 0;
6800 info.align_offset = pgoff << PAGE_SHIFT;
6801 + info.threadstack_offset = offset;
6802
6803 if (dir == DOWN) {
6804 info.flags = VM_UNMAPPED_AREA_TOPDOWN;
6805 @@ -160,45 +166,34 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
6806 {
6807 unsigned long random_factor = 0UL;
6808
6809 +#ifdef CONFIG_PAX_RANDMMAP
6810 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
6811 +#endif
6812 +
6813 if (current->flags & PF_RANDOMIZE)
6814 random_factor = arch_mmap_rnd();
6815
6816 if (mmap_is_legacy()) {
6817 mm->mmap_base = TASK_UNMAPPED_BASE + random_factor;
6818 +
6819 +#ifdef CONFIG_PAX_RANDMMAP
6820 + if (mm->pax_flags & MF_PAX_RANDMMAP)
6821 + mm->mmap_base += mm->delta_mmap;
6822 +#endif
6823 +
6824 mm->get_unmapped_area = arch_get_unmapped_area;
6825 } else {
6826 mm->mmap_base = mmap_base(random_factor);
6827 +
6828 +#ifdef CONFIG_PAX_RANDMMAP
6829 + if (mm->pax_flags & MF_PAX_RANDMMAP)
6830 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
6831 +#endif
6832 +
6833 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
6834 }
6835 }
6836
6837 -static inline unsigned long brk_rnd(void)
6838 -{
6839 - unsigned long rnd = get_random_int();
6840 -
6841 - rnd = rnd << PAGE_SHIFT;
6842 - /* 8MB for 32bit, 256MB for 64bit */
6843 - if (TASK_IS_32BIT_ADDR)
6844 - rnd = rnd & 0x7ffffful;
6845 - else
6846 - rnd = rnd & 0xffffffful;
6847 -
6848 - return rnd;
6849 -}
6850 -
6851 -unsigned long arch_randomize_brk(struct mm_struct *mm)
6852 -{
6853 - unsigned long base = mm->brk;
6854 - unsigned long ret;
6855 -
6856 - ret = PAGE_ALIGN(base + brk_rnd());
6857 -
6858 - if (ret < mm->brk)
6859 - return mm->brk;
6860 -
6861 - return ret;
6862 -}
6863 -
6864 int __virt_addr_valid(const volatile void *kaddr)
6865 {
6866 return pfn_valid(PFN_DOWN(virt_to_phys(kaddr)));
6867 diff --git a/arch/mips/sgi-ip27/ip27-nmi.c b/arch/mips/sgi-ip27/ip27-nmi.c
6868 index a2358b4..7cead4f 100644
6869 --- a/arch/mips/sgi-ip27/ip27-nmi.c
6870 +++ b/arch/mips/sgi-ip27/ip27-nmi.c
6871 @@ -187,9 +187,9 @@ void
6872 cont_nmi_dump(void)
6873 {
6874 #ifndef REAL_NMI_SIGNAL
6875 - static atomic_t nmied_cpus = ATOMIC_INIT(0);
6876 + static atomic_unchecked_t nmied_cpus = ATOMIC_INIT(0);
6877
6878 - atomic_inc(&nmied_cpus);
6879 + atomic_inc_unchecked(&nmied_cpus);
6880 #endif
6881 /*
6882 * Only allow 1 cpu to proceed
6883 @@ -233,7 +233,7 @@ cont_nmi_dump(void)
6884 udelay(10000);
6885 }
6886 #else
6887 - while (atomic_read(&nmied_cpus) != num_online_cpus());
6888 + while (atomic_read_unchecked(&nmied_cpus) != num_online_cpus());
6889 #endif
6890
6891 /*
6892 diff --git a/arch/mips/sni/rm200.c b/arch/mips/sni/rm200.c
6893 index a046b30..6799527 100644
6894 --- a/arch/mips/sni/rm200.c
6895 +++ b/arch/mips/sni/rm200.c
6896 @@ -270,7 +270,7 @@ spurious_8259A_irq:
6897 "spurious RM200 8259A interrupt: IRQ%d.\n", irq);
6898 spurious_irq_mask |= irqmask;
6899 }
6900 - atomic_inc(&irq_err_count);
6901 + atomic_inc_unchecked(&irq_err_count);
6902 /*
6903 * Theoretically we do not have to handle this IRQ,
6904 * but in Linux this does not cause problems and is
6905 diff --git a/arch/mips/vr41xx/common/icu.c b/arch/mips/vr41xx/common/icu.c
6906 index 41e873b..34d33a7 100644
6907 --- a/arch/mips/vr41xx/common/icu.c
6908 +++ b/arch/mips/vr41xx/common/icu.c
6909 @@ -653,7 +653,7 @@ static int icu_get_irq(unsigned int irq)
6910
6911 printk(KERN_ERR "spurious ICU interrupt: %04x,%04x\n", pend1, pend2);
6912
6913 - atomic_inc(&irq_err_count);
6914 + atomic_inc_unchecked(&irq_err_count);
6915
6916 return -1;
6917 }
6918 diff --git a/arch/mips/vr41xx/common/irq.c b/arch/mips/vr41xx/common/irq.c
6919 index ae0e4ee..e8f0692 100644
6920 --- a/arch/mips/vr41xx/common/irq.c
6921 +++ b/arch/mips/vr41xx/common/irq.c
6922 @@ -64,7 +64,7 @@ static void irq_dispatch(unsigned int irq)
6923 irq_cascade_t *cascade;
6924
6925 if (irq >= NR_IRQS) {
6926 - atomic_inc(&irq_err_count);
6927 + atomic_inc_unchecked(&irq_err_count);
6928 return;
6929 }
6930
6931 @@ -84,7 +84,7 @@ static void irq_dispatch(unsigned int irq)
6932 ret = cascade->get_irq(irq);
6933 irq = ret;
6934 if (ret < 0)
6935 - atomic_inc(&irq_err_count);
6936 + atomic_inc_unchecked(&irq_err_count);
6937 else
6938 irq_dispatch(irq);
6939 if (!irqd_irq_disabled(idata) && chip->irq_unmask)
6940 diff --git a/arch/mn10300/proc-mn103e010/include/proc/cache.h b/arch/mn10300/proc-mn103e010/include/proc/cache.h
6941 index 967d144..db12197 100644
6942 --- a/arch/mn10300/proc-mn103e010/include/proc/cache.h
6943 +++ b/arch/mn10300/proc-mn103e010/include/proc/cache.h
6944 @@ -11,12 +11,14 @@
6945 #ifndef _ASM_PROC_CACHE_H
6946 #define _ASM_PROC_CACHE_H
6947
6948 +#include <linux/const.h>
6949 +
6950 /* L1 cache */
6951
6952 #define L1_CACHE_NWAYS 4 /* number of ways in caches */
6953 #define L1_CACHE_NENTRIES 256 /* number of entries in each way */
6954 -#define L1_CACHE_BYTES 16 /* bytes per entry */
6955 #define L1_CACHE_SHIFT 4 /* shift for bytes per entry */
6956 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT) /* bytes per entry */
6957 #define L1_CACHE_WAYDISP 0x1000 /* displacement of one way from the next */
6958
6959 #define L1_CACHE_TAG_VALID 0x00000001 /* cache tag valid bit */
6960 diff --git a/arch/mn10300/proc-mn2ws0050/include/proc/cache.h b/arch/mn10300/proc-mn2ws0050/include/proc/cache.h
6961 index bcb5df2..84fabd2 100644
6962 --- a/arch/mn10300/proc-mn2ws0050/include/proc/cache.h
6963 +++ b/arch/mn10300/proc-mn2ws0050/include/proc/cache.h
6964 @@ -16,13 +16,15 @@
6965 #ifndef _ASM_PROC_CACHE_H
6966 #define _ASM_PROC_CACHE_H
6967
6968 +#include <linux/const.h>
6969 +
6970 /*
6971 * L1 cache
6972 */
6973 #define L1_CACHE_NWAYS 4 /* number of ways in caches */
6974 #define L1_CACHE_NENTRIES 128 /* number of entries in each way */
6975 -#define L1_CACHE_BYTES 32 /* bytes per entry */
6976 #define L1_CACHE_SHIFT 5 /* shift for bytes per entry */
6977 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT) /* bytes per entry */
6978 #define L1_CACHE_WAYDISP 0x1000 /* distance from one way to the next */
6979
6980 #define L1_CACHE_TAG_VALID 0x00000001 /* cache tag valid bit */
6981 diff --git a/arch/openrisc/include/asm/cache.h b/arch/openrisc/include/asm/cache.h
6982 index 4ce7a01..449202a 100644
6983 --- a/arch/openrisc/include/asm/cache.h
6984 +++ b/arch/openrisc/include/asm/cache.h
6985 @@ -19,11 +19,13 @@
6986 #ifndef __ASM_OPENRISC_CACHE_H
6987 #define __ASM_OPENRISC_CACHE_H
6988
6989 +#include <linux/const.h>
6990 +
6991 /* FIXME: How can we replace these with values from the CPU...
6992 * they shouldn't be hard-coded!
6993 */
6994
6995 -#define L1_CACHE_BYTES 16
6996 #define L1_CACHE_SHIFT 4
6997 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
6998
6999 #endif /* __ASM_OPENRISC_CACHE_H */
7000 diff --git a/arch/parisc/include/asm/atomic.h b/arch/parisc/include/asm/atomic.h
7001 index 1d10999..5907031 100644
7002 --- a/arch/parisc/include/asm/atomic.h
7003 +++ b/arch/parisc/include/asm/atomic.h
7004 @@ -280,6 +280,16 @@ static inline long atomic64_dec_if_positive(atomic64_t *v)
7005 return dec;
7006 }
7007
7008 +#define atomic64_read_unchecked(v) atomic64_read(v)
7009 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
7010 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
7011 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
7012 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
7013 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
7014 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
7015 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
7016 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
7017 +
7018 #endif /* !CONFIG_64BIT */
7019
7020
7021 diff --git a/arch/parisc/include/asm/cache.h b/arch/parisc/include/asm/cache.h
7022 index 3d0e17b..602e980 100644
7023 --- a/arch/parisc/include/asm/cache.h
7024 +++ b/arch/parisc/include/asm/cache.h
7025 @@ -5,6 +5,7 @@
7026 #ifndef __ARCH_PARISC_CACHE_H
7027 #define __ARCH_PARISC_CACHE_H
7028
7029 +#include <linux/const.h>
7030
7031 /*
7032 * PA 2.0 processors have 64 and 128-byte L2 cachelines; PA 1.1 processors
7033 @@ -14,6 +15,8 @@
7034 #define L1_CACHE_BYTES 16
7035 #define L1_CACHE_SHIFT 4
7036
7037 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
7038 +
7039 #ifndef __ASSEMBLY__
7040
7041 #define SMP_CACHE_BYTES L1_CACHE_BYTES
7042 diff --git a/arch/parisc/include/asm/elf.h b/arch/parisc/include/asm/elf.h
7043 index 78c9fd3..42fa66a 100644
7044 --- a/arch/parisc/include/asm/elf.h
7045 +++ b/arch/parisc/include/asm/elf.h
7046 @@ -342,6 +342,13 @@ struct pt_regs; /* forward declaration... */
7047
7048 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x01000000)
7049
7050 +#ifdef CONFIG_PAX_ASLR
7051 +#define PAX_ELF_ET_DYN_BASE 0x10000UL
7052 +
7053 +#define PAX_DELTA_MMAP_LEN 16
7054 +#define PAX_DELTA_STACK_LEN 16
7055 +#endif
7056 +
7057 /* This yields a mask that user programs can use to figure out what
7058 instruction set this CPU supports. This could be done in user space,
7059 but it's not easy, and we've already done it here. */
7060 diff --git a/arch/parisc/include/asm/pgalloc.h b/arch/parisc/include/asm/pgalloc.h
7061 index f2fd327..2bb2a26 100644
7062 --- a/arch/parisc/include/asm/pgalloc.h
7063 +++ b/arch/parisc/include/asm/pgalloc.h
7064 @@ -61,6 +61,11 @@ static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
7065 (__u32)(__pa((unsigned long)pmd) >> PxD_VALUE_SHIFT));
7066 }
7067
7068 +static inline void pgd_populate_kernel(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
7069 +{
7070 + pgd_populate(mm, pgd, pmd);
7071 +}
7072 +
7073 static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address)
7074 {
7075 pmd_t *pmd = (pmd_t *)__get_free_pages(GFP_KERNEL|__GFP_REPEAT,
7076 @@ -97,6 +102,7 @@ static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
7077 #define pmd_alloc_one(mm, addr) ({ BUG(); ((pmd_t *)2); })
7078 #define pmd_free(mm, x) do { } while (0)
7079 #define pgd_populate(mm, pmd, pte) BUG()
7080 +#define pgd_populate_kernel(mm, pmd, pte) BUG()
7081
7082 #endif
7083
7084 diff --git a/arch/parisc/include/asm/pgtable.h b/arch/parisc/include/asm/pgtable.h
7085 index 291cee2..2ac33db 100644
7086 --- a/arch/parisc/include/asm/pgtable.h
7087 +++ b/arch/parisc/include/asm/pgtable.h
7088 @@ -236,6 +236,17 @@ static inline void purge_tlb_entries(struct mm_struct *mm, unsigned long addr)
7089 #define PAGE_EXECREAD __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_EXEC |_PAGE_ACCESSED)
7090 #define PAGE_COPY PAGE_EXECREAD
7091 #define PAGE_RWX __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_WRITE | _PAGE_EXEC |_PAGE_ACCESSED)
7092 +
7093 +#ifdef CONFIG_PAX_PAGEEXEC
7094 +# define PAGE_SHARED_NOEXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_WRITE | _PAGE_ACCESSED)
7095 +# define PAGE_COPY_NOEXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_ACCESSED)
7096 +# define PAGE_READONLY_NOEXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_ACCESSED)
7097 +#else
7098 +# define PAGE_SHARED_NOEXEC PAGE_SHARED
7099 +# define PAGE_COPY_NOEXEC PAGE_COPY
7100 +# define PAGE_READONLY_NOEXEC PAGE_READONLY
7101 +#endif
7102 +
7103 #define PAGE_KERNEL __pgprot(_PAGE_KERNEL)
7104 #define PAGE_KERNEL_EXEC __pgprot(_PAGE_KERNEL_EXEC)
7105 #define PAGE_KERNEL_RWX __pgprot(_PAGE_KERNEL_RWX)
7106 diff --git a/arch/parisc/include/asm/uaccess.h b/arch/parisc/include/asm/uaccess.h
7107 index 0abdd4c..1af92f0 100644
7108 --- a/arch/parisc/include/asm/uaccess.h
7109 +++ b/arch/parisc/include/asm/uaccess.h
7110 @@ -243,10 +243,10 @@ static inline unsigned long __must_check copy_from_user(void *to,
7111 const void __user *from,
7112 unsigned long n)
7113 {
7114 - int sz = __compiletime_object_size(to);
7115 + size_t sz = __compiletime_object_size(to);
7116 int ret = -EFAULT;
7117
7118 - if (likely(sz == -1 || !__builtin_constant_p(n) || sz >= n))
7119 + if (likely(sz == (size_t)-1 || !__builtin_constant_p(n) || sz >= n))
7120 ret = __copy_from_user(to, from, n);
7121 else
7122 copy_from_user_overflow();
7123 diff --git a/arch/parisc/kernel/module.c b/arch/parisc/kernel/module.c
7124 index 3c63a82..b1d6ee9 100644
7125 --- a/arch/parisc/kernel/module.c
7126 +++ b/arch/parisc/kernel/module.c
7127 @@ -98,16 +98,38 @@
7128
7129 /* three functions to determine where in the module core
7130 * or init pieces the location is */
7131 +static inline int in_init_rx(struct module *me, void *loc)
7132 +{
7133 + return (loc >= me->module_init_rx &&
7134 + loc < (me->module_init_rx + me->init_size_rx));
7135 +}
7136 +
7137 +static inline int in_init_rw(struct module *me, void *loc)
7138 +{
7139 + return (loc >= me->module_init_rw &&
7140 + loc < (me->module_init_rw + me->init_size_rw));
7141 +}
7142 +
7143 static inline int in_init(struct module *me, void *loc)
7144 {
7145 - return (loc >= me->module_init &&
7146 - loc <= (me->module_init + me->init_size));
7147 + return in_init_rx(me, loc) || in_init_rw(me, loc);
7148 +}
7149 +
7150 +static inline int in_core_rx(struct module *me, void *loc)
7151 +{
7152 + return (loc >= me->module_core_rx &&
7153 + loc < (me->module_core_rx + me->core_size_rx));
7154 +}
7155 +
7156 +static inline int in_core_rw(struct module *me, void *loc)
7157 +{
7158 + return (loc >= me->module_core_rw &&
7159 + loc < (me->module_core_rw + me->core_size_rw));
7160 }
7161
7162 static inline int in_core(struct module *me, void *loc)
7163 {
7164 - return (loc >= me->module_core &&
7165 - loc <= (me->module_core + me->core_size));
7166 + return in_core_rx(me, loc) || in_core_rw(me, loc);
7167 }
7168
7169 static inline int in_local(struct module *me, void *loc)
7170 @@ -367,13 +389,13 @@ int module_frob_arch_sections(CONST Elf_Ehdr *hdr,
7171 }
7172
7173 /* align things a bit */
7174 - me->core_size = ALIGN(me->core_size, 16);
7175 - me->arch.got_offset = me->core_size;
7176 - me->core_size += gots * sizeof(struct got_entry);
7177 + me->core_size_rw = ALIGN(me->core_size_rw, 16);
7178 + me->arch.got_offset = me->core_size_rw;
7179 + me->core_size_rw += gots * sizeof(struct got_entry);
7180
7181 - me->core_size = ALIGN(me->core_size, 16);
7182 - me->arch.fdesc_offset = me->core_size;
7183 - me->core_size += fdescs * sizeof(Elf_Fdesc);
7184 + me->core_size_rw = ALIGN(me->core_size_rw, 16);
7185 + me->arch.fdesc_offset = me->core_size_rw;
7186 + me->core_size_rw += fdescs * sizeof(Elf_Fdesc);
7187
7188 me->arch.got_max = gots;
7189 me->arch.fdesc_max = fdescs;
7190 @@ -391,7 +413,7 @@ static Elf64_Word get_got(struct module *me, unsigned long value, long addend)
7191
7192 BUG_ON(value == 0);
7193
7194 - got = me->module_core + me->arch.got_offset;
7195 + got = me->module_core_rw + me->arch.got_offset;
7196 for (i = 0; got[i].addr; i++)
7197 if (got[i].addr == value)
7198 goto out;
7199 @@ -409,7 +431,7 @@ static Elf64_Word get_got(struct module *me, unsigned long value, long addend)
7200 #ifdef CONFIG_64BIT
7201 static Elf_Addr get_fdesc(struct module *me, unsigned long value)
7202 {
7203 - Elf_Fdesc *fdesc = me->module_core + me->arch.fdesc_offset;
7204 + Elf_Fdesc *fdesc = me->module_core_rw + me->arch.fdesc_offset;
7205
7206 if (!value) {
7207 printk(KERN_ERR "%s: zero OPD requested!\n", me->name);
7208 @@ -427,7 +449,7 @@ static Elf_Addr get_fdesc(struct module *me, unsigned long value)
7209
7210 /* Create new one */
7211 fdesc->addr = value;
7212 - fdesc->gp = (Elf_Addr)me->module_core + me->arch.got_offset;
7213 + fdesc->gp = (Elf_Addr)me->module_core_rw + me->arch.got_offset;
7214 return (Elf_Addr)fdesc;
7215 }
7216 #endif /* CONFIG_64BIT */
7217 @@ -839,7 +861,7 @@ register_unwind_table(struct module *me,
7218
7219 table = (unsigned char *)sechdrs[me->arch.unwind_section].sh_addr;
7220 end = table + sechdrs[me->arch.unwind_section].sh_size;
7221 - gp = (Elf_Addr)me->module_core + me->arch.got_offset;
7222 + gp = (Elf_Addr)me->module_core_rw + me->arch.got_offset;
7223
7224 DEBUGP("register_unwind_table(), sect = %d at 0x%p - 0x%p (gp=0x%lx)\n",
7225 me->arch.unwind_section, table, end, gp);
7226 diff --git a/arch/parisc/kernel/sys_parisc.c b/arch/parisc/kernel/sys_parisc.c
7227 index 5aba01a..47cdd5a 100644
7228 --- a/arch/parisc/kernel/sys_parisc.c
7229 +++ b/arch/parisc/kernel/sys_parisc.c
7230 @@ -92,6 +92,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
7231 unsigned long task_size = TASK_SIZE;
7232 int do_color_align, last_mmap;
7233 struct vm_unmapped_area_info info;
7234 + unsigned long offset = gr_rand_threadstack_offset(current->mm, filp, flags);
7235
7236 if (len > task_size)
7237 return -ENOMEM;
7238 @@ -109,6 +110,10 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
7239 goto found_addr;
7240 }
7241
7242 +#ifdef CONFIG_PAX_RANDMMAP
7243 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
7244 +#endif
7245 +
7246 if (addr) {
7247 if (do_color_align && last_mmap)
7248 addr = COLOR_ALIGN(addr, last_mmap, pgoff);
7249 @@ -127,6 +132,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
7250 info.high_limit = mmap_upper_limit();
7251 info.align_mask = last_mmap ? (PAGE_MASK & (SHM_COLOUR - 1)) : 0;
7252 info.align_offset = shared_align_offset(last_mmap, pgoff);
7253 + info.threadstack_offset = offset;
7254 addr = vm_unmapped_area(&info);
7255
7256 found_addr:
7257 @@ -146,6 +152,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
7258 unsigned long addr = addr0;
7259 int do_color_align, last_mmap;
7260 struct vm_unmapped_area_info info;
7261 + unsigned long offset = gr_rand_threadstack_offset(current->mm, filp, flags);
7262
7263 #ifdef CONFIG_64BIT
7264 /* This should only ever run for 32-bit processes. */
7265 @@ -170,6 +177,10 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
7266 }
7267
7268 /* requesting a specific address */
7269 +#ifdef CONFIG_PAX_RANDMMAP
7270 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
7271 +#endif
7272 +
7273 if (addr) {
7274 if (do_color_align && last_mmap)
7275 addr = COLOR_ALIGN(addr, last_mmap, pgoff);
7276 @@ -187,6 +198,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
7277 info.high_limit = mm->mmap_base;
7278 info.align_mask = last_mmap ? (PAGE_MASK & (SHM_COLOUR - 1)) : 0;
7279 info.align_offset = shared_align_offset(last_mmap, pgoff);
7280 + info.threadstack_offset = offset;
7281 addr = vm_unmapped_area(&info);
7282 if (!(addr & ~PAGE_MASK))
7283 goto found_addr;
7284 @@ -252,6 +264,13 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
7285 mm->mmap_legacy_base = mmap_legacy_base();
7286 mm->mmap_base = mmap_upper_limit();
7287
7288 +#ifdef CONFIG_PAX_RANDMMAP
7289 + if (mm->pax_flags & MF_PAX_RANDMMAP) {
7290 + mm->mmap_legacy_base += mm->delta_mmap;
7291 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
7292 + }
7293 +#endif
7294 +
7295 if (mmap_is_legacy()) {
7296 mm->mmap_base = mm->mmap_legacy_base;
7297 mm->get_unmapped_area = arch_get_unmapped_area;
7298 diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c
7299 index 553b098..eedc047 100644
7300 --- a/arch/parisc/kernel/traps.c
7301 +++ b/arch/parisc/kernel/traps.c
7302 @@ -722,9 +722,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs)
7303
7304 down_read(&current->mm->mmap_sem);
7305 vma = find_vma(current->mm,regs->iaoq[0]);
7306 - if (vma && (regs->iaoq[0] >= vma->vm_start)
7307 - && (vma->vm_flags & VM_EXEC)) {
7308 -
7309 + if (vma && (regs->iaoq[0] >= vma->vm_start)) {
7310 fault_address = regs->iaoq[0];
7311 fault_space = regs->iasq[0];
7312
7313 diff --git a/arch/parisc/mm/fault.c b/arch/parisc/mm/fault.c
7314 index a762864..664087f 100644
7315 --- a/arch/parisc/mm/fault.c
7316 +++ b/arch/parisc/mm/fault.c
7317 @@ -16,6 +16,7 @@
7318 #include <linux/interrupt.h>
7319 #include <linux/module.h>
7320 #include <linux/uaccess.h>
7321 +#include <linux/unistd.h>
7322
7323 #include <asm/traps.h>
7324
7325 @@ -50,7 +51,7 @@ int show_unhandled_signals = 1;
7326 static unsigned long
7327 parisc_acctyp(unsigned long code, unsigned int inst)
7328 {
7329 - if (code == 6 || code == 16)
7330 + if (code == 6 || code == 7 || code == 16)
7331 return VM_EXEC;
7332
7333 switch (inst & 0xf0000000) {
7334 @@ -136,6 +137,116 @@ parisc_acctyp(unsigned long code, unsigned int inst)
7335 }
7336 #endif
7337
7338 +#ifdef CONFIG_PAX_PAGEEXEC
7339 +/*
7340 + * PaX: decide what to do with offenders (instruction_pointer(regs) = fault address)
7341 + *
7342 + * returns 1 when task should be killed
7343 + * 2 when rt_sigreturn trampoline was detected
7344 + * 3 when unpatched PLT trampoline was detected
7345 + */
7346 +static int pax_handle_fetch_fault(struct pt_regs *regs)
7347 +{
7348 +
7349 +#ifdef CONFIG_PAX_EMUPLT
7350 + int err;
7351 +
7352 + do { /* PaX: unpatched PLT emulation */
7353 + unsigned int bl, depwi;
7354 +
7355 + err = get_user(bl, (unsigned int *)instruction_pointer(regs));
7356 + err |= get_user(depwi, (unsigned int *)(instruction_pointer(regs)+4));
7357 +
7358 + if (err)
7359 + break;
7360 +
7361 + if (bl == 0xEA9F1FDDU && depwi == 0xD6801C1EU) {
7362 + unsigned int ldw, bv, ldw2, addr = instruction_pointer(regs)-12;
7363 +
7364 + err = get_user(ldw, (unsigned int *)addr);
7365 + err |= get_user(bv, (unsigned int *)(addr+4));
7366 + err |= get_user(ldw2, (unsigned int *)(addr+8));
7367 +
7368 + if (err)
7369 + break;
7370 +
7371 + if (ldw == 0x0E801096U &&
7372 + bv == 0xEAC0C000U &&
7373 + ldw2 == 0x0E881095U)
7374 + {
7375 + unsigned int resolver, map;
7376 +
7377 + err = get_user(resolver, (unsigned int *)(instruction_pointer(regs)+8));
7378 + err |= get_user(map, (unsigned int *)(instruction_pointer(regs)+12));
7379 + if (err)
7380 + break;
7381 +
7382 + regs->gr[20] = instruction_pointer(regs)+8;
7383 + regs->gr[21] = map;
7384 + regs->gr[22] = resolver;
7385 + regs->iaoq[0] = resolver | 3UL;
7386 + regs->iaoq[1] = regs->iaoq[0] + 4;
7387 + return 3;
7388 + }
7389 + }
7390 + } while (0);
7391 +#endif
7392 +
7393 +#ifdef CONFIG_PAX_EMUTRAMP
7394 +
7395 +#ifndef CONFIG_PAX_EMUSIGRT
7396 + if (!(current->mm->pax_flags & MF_PAX_EMUTRAMP))
7397 + return 1;
7398 +#endif
7399 +
7400 + do { /* PaX: rt_sigreturn emulation */
7401 + unsigned int ldi1, ldi2, bel, nop;
7402 +
7403 + err = get_user(ldi1, (unsigned int *)instruction_pointer(regs));
7404 + err |= get_user(ldi2, (unsigned int *)(instruction_pointer(regs)+4));
7405 + err |= get_user(bel, (unsigned int *)(instruction_pointer(regs)+8));
7406 + err |= get_user(nop, (unsigned int *)(instruction_pointer(regs)+12));
7407 +
7408 + if (err)
7409 + break;
7410 +
7411 + if ((ldi1 == 0x34190000U || ldi1 == 0x34190002U) &&
7412 + ldi2 == 0x3414015AU &&
7413 + bel == 0xE4008200U &&
7414 + nop == 0x08000240U)
7415 + {
7416 + regs->gr[25] = (ldi1 & 2) >> 1;
7417 + regs->gr[20] = __NR_rt_sigreturn;
7418 + regs->gr[31] = regs->iaoq[1] + 16;
7419 + regs->sr[0] = regs->iasq[1];
7420 + regs->iaoq[0] = 0x100UL;
7421 + regs->iaoq[1] = regs->iaoq[0] + 4;
7422 + regs->iasq[0] = regs->sr[2];
7423 + regs->iasq[1] = regs->sr[2];
7424 + return 2;
7425 + }
7426 + } while (0);
7427 +#endif
7428 +
7429 + return 1;
7430 +}
7431 +
7432 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
7433 +{
7434 + unsigned long i;
7435 +
7436 + printk(KERN_ERR "PAX: bytes at PC: ");
7437 + for (i = 0; i < 5; i++) {
7438 + unsigned int c;
7439 + if (get_user(c, (unsigned int *)pc+i))
7440 + printk(KERN_CONT "???????? ");
7441 + else
7442 + printk(KERN_CONT "%08x ", c);
7443 + }
7444 + printk("\n");
7445 +}
7446 +#endif
7447 +
7448 int fixup_exception(struct pt_regs *regs)
7449 {
7450 const struct exception_table_entry *fix;
7451 @@ -234,8 +345,33 @@ retry:
7452
7453 good_area:
7454
7455 - if ((vma->vm_flags & acc_type) != acc_type)
7456 + if ((vma->vm_flags & acc_type) != acc_type) {
7457 +
7458 +#ifdef CONFIG_PAX_PAGEEXEC
7459 + if ((mm->pax_flags & MF_PAX_PAGEEXEC) && (acc_type & VM_EXEC) &&
7460 + (address & ~3UL) == instruction_pointer(regs))
7461 + {
7462 + up_read(&mm->mmap_sem);
7463 + switch (pax_handle_fetch_fault(regs)) {
7464 +
7465 +#ifdef CONFIG_PAX_EMUPLT
7466 + case 3:
7467 + return;
7468 +#endif
7469 +
7470 +#ifdef CONFIG_PAX_EMUTRAMP
7471 + case 2:
7472 + return;
7473 +#endif
7474 +
7475 + }
7476 + pax_report_fault(regs, (void *)instruction_pointer(regs), (void *)regs->gr[30]);
7477 + do_group_exit(SIGKILL);
7478 + }
7479 +#endif
7480 +
7481 goto bad_area;
7482 + }
7483
7484 /*
7485 * If for any reason at all we couldn't handle the fault, make
7486 diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
7487 index db49e0d..de977a0 100644
7488 --- a/arch/powerpc/Kconfig
7489 +++ b/arch/powerpc/Kconfig
7490 @@ -421,6 +421,7 @@ config KEXEC
7491 bool "kexec system call"
7492 depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP)) || PPC_BOOK3E
7493 select KEXEC_CORE
7494 + depends on !GRKERNSEC_KMEM
7495 help
7496 kexec is a system call that implements the ability to shutdown your
7497 current kernel, and to start another kernel. It is like a reboot
7498 diff --git a/arch/powerpc/include/asm/atomic.h b/arch/powerpc/include/asm/atomic.h
7499 index 55f106e..70cc82a 100644
7500 --- a/arch/powerpc/include/asm/atomic.h
7501 +++ b/arch/powerpc/include/asm/atomic.h
7502 @@ -12,6 +12,11 @@
7503
7504 #define ATOMIC_INIT(i) { (i) }
7505
7506 +#define _ASM_EXTABLE(from, to) \
7507 +" .section __ex_table,\"a\"\n" \
7508 + PPC_LONG" " #from ", " #to"\n" \
7509 +" .previous\n"
7510 +
7511 static __inline__ int atomic_read(const atomic_t *v)
7512 {
7513 int t;
7514 @@ -21,39 +26,80 @@ static __inline__ int atomic_read(const atomic_t *v)
7515 return t;
7516 }
7517
7518 +static __inline__ int atomic_read_unchecked(const atomic_unchecked_t *v)
7519 +{
7520 + int t;
7521 +
7522 + __asm__ __volatile__("lwz%U1%X1 %0,%1" : "=r"(t) : "m"(v->counter));
7523 +
7524 + return t;
7525 +}
7526 +
7527 static __inline__ void atomic_set(atomic_t *v, int i)
7528 {
7529 __asm__ __volatile__("stw%U0%X0 %1,%0" : "=m"(v->counter) : "r"(i));
7530 }
7531
7532 -#define ATOMIC_OP(op, asm_op) \
7533 -static __inline__ void atomic_##op(int a, atomic_t *v) \
7534 +static __inline__ void atomic_set_unchecked(atomic_unchecked_t *v, int i)
7535 +{
7536 + __asm__ __volatile__("stw%U0%X0 %1,%0" : "=m"(v->counter) : "r"(i));
7537 +}
7538 +
7539 +#ifdef CONFIG_PAX_REFCOUNT
7540 +#define __REFCOUNT_OP(op) op##o.
7541 +#define __OVERFLOW_PRE \
7542 + " mcrxr cr0\n"
7543 +#define __OVERFLOW_POST \
7544 + " bf 4*cr0+so, 3f\n" \
7545 + "2: .long 0x00c00b00\n" \
7546 + "3:\n"
7547 +#define __OVERFLOW_EXTABLE \
7548 + "\n4:\n"
7549 + _ASM_EXTABLE(2b, 4b)
7550 +#else
7551 +#define __REFCOUNT_OP(op) op
7552 +#define __OVERFLOW_PRE
7553 +#define __OVERFLOW_POST
7554 +#define __OVERFLOW_EXTABLE
7555 +#endif
7556 +
7557 +#define __ATOMIC_OP(op, suffix, pre_op, asm_op, post_op, extable) \
7558 +static inline void atomic_##op##suffix(int a, atomic##suffix##_t *v) \
7559 { \
7560 int t; \
7561 \
7562 __asm__ __volatile__( \
7563 -"1: lwarx %0,0,%3 # atomic_" #op "\n" \
7564 +"1: lwarx %0,0,%3 # atomic_" #op #suffix "\n" \
7565 + pre_op \
7566 #asm_op " %0,%2,%0\n" \
7567 + post_op \
7568 PPC405_ERR77(0,%3) \
7569 " stwcx. %0,0,%3 \n" \
7570 " bne- 1b\n" \
7571 + extable \
7572 : "=&r" (t), "+m" (v->counter) \
7573 : "r" (a), "r" (&v->counter) \
7574 : "cc"); \
7575 } \
7576
7577 -#define ATOMIC_OP_RETURN(op, asm_op) \
7578 -static __inline__ int atomic_##op##_return(int a, atomic_t *v) \
7579 +#define ATOMIC_OP(op, asm_op) __ATOMIC_OP(op, , , asm_op, , ) \
7580 + __ATOMIC_OP(op, _unchecked, __OVERFLOW_PRE, __REFCOUNT_OP(asm_op), __OVERFLOW_POST, __OVERFLOW_EXTABLE)
7581 +
7582 +#define __ATOMIC_OP_RETURN(op, suffix, pre_op, asm_op, post_op, extable)\
7583 +static inline int atomic_##op##_return##suffix(int a, atomic##suffix##_t *v)\
7584 { \
7585 int t; \
7586 \
7587 __asm__ __volatile__( \
7588 PPC_ATOMIC_ENTRY_BARRIER \
7589 -"1: lwarx %0,0,%2 # atomic_" #op "_return\n" \
7590 +"1: lwarx %0,0,%2 # atomic_" #op "_return" #suffix "\n" \
7591 + pre_op \
7592 #asm_op " %0,%1,%0\n" \
7593 + post_op \
7594 PPC405_ERR77(0,%2) \
7595 " stwcx. %0,0,%2 \n" \
7596 " bne- 1b\n" \
7597 + extable \
7598 PPC_ATOMIC_EXIT_BARRIER \
7599 : "=&r" (t) \
7600 : "r" (a), "r" (&v->counter) \
7601 @@ -62,6 +108,9 @@ static __inline__ int atomic_##op##_return(int a, atomic_t *v) \
7602 return t; \
7603 }
7604
7605 +#define ATOMIC_OP_RETURN(op, asm_op) __ATOMIC_OP_RETURN(op, , , asm_op, , )\
7606 + __ATOMIC_OP_RETURN(op, _unchecked, __OVERFLOW_PRE, __REFCOUNT_OP(asm_op), __OVERFLOW_POST, __OVERFLOW_EXTABLE)
7607 +
7608 #define ATOMIC_OPS(op, asm_op) ATOMIC_OP(op, asm_op) ATOMIC_OP_RETURN(op, asm_op)
7609
7610 ATOMIC_OPS(add, add)
7611 @@ -73,42 +122,29 @@ ATOMIC_OP(xor, xor)
7612
7613 #undef ATOMIC_OPS
7614 #undef ATOMIC_OP_RETURN
7615 +#undef __ATOMIC_OP_RETURN
7616 #undef ATOMIC_OP
7617 +#undef __ATOMIC_OP
7618
7619 #define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0)
7620
7621 -static __inline__ void atomic_inc(atomic_t *v)
7622 -{
7623 - int t;
7624 +/*
7625 + * atomic_inc - increment atomic variable
7626 + * @v: pointer of type atomic_t
7627 + *
7628 + * Automatically increments @v by 1
7629 + */
7630 +#define atomic_inc(v) atomic_add(1, (v))
7631 +#define atomic_inc_return(v) atomic_add_return(1, (v))
7632
7633 - __asm__ __volatile__(
7634 -"1: lwarx %0,0,%2 # atomic_inc\n\
7635 - addic %0,%0,1\n"
7636 - PPC405_ERR77(0,%2)
7637 -" stwcx. %0,0,%2 \n\
7638 - bne- 1b"
7639 - : "=&r" (t), "+m" (v->counter)
7640 - : "r" (&v->counter)
7641 - : "cc", "xer");
7642 +static inline void atomic_inc_unchecked(atomic_unchecked_t *v)
7643 +{
7644 + atomic_add_unchecked(1, v);
7645 }
7646
7647 -static __inline__ int atomic_inc_return(atomic_t *v)
7648 +static inline int atomic_inc_return_unchecked(atomic_unchecked_t *v)
7649 {
7650 - int t;
7651 -
7652 - __asm__ __volatile__(
7653 - PPC_ATOMIC_ENTRY_BARRIER
7654 -"1: lwarx %0,0,%1 # atomic_inc_return\n\
7655 - addic %0,%0,1\n"
7656 - PPC405_ERR77(0,%1)
7657 -" stwcx. %0,0,%1 \n\
7658 - bne- 1b"
7659 - PPC_ATOMIC_EXIT_BARRIER
7660 - : "=&r" (t)
7661 - : "r" (&v->counter)
7662 - : "cc", "xer", "memory");
7663 -
7664 - return t;
7665 + return atomic_add_return_unchecked(1, v);
7666 }
7667
7668 /*
7669 @@ -121,43 +157,38 @@ static __inline__ int atomic_inc_return(atomic_t *v)
7670 */
7671 #define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
7672
7673 -static __inline__ void atomic_dec(atomic_t *v)
7674 +static __inline__ int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
7675 {
7676 - int t;
7677 -
7678 - __asm__ __volatile__(
7679 -"1: lwarx %0,0,%2 # atomic_dec\n\
7680 - addic %0,%0,-1\n"
7681 - PPC405_ERR77(0,%2)\
7682 -" stwcx. %0,0,%2\n\
7683 - bne- 1b"
7684 - : "=&r" (t), "+m" (v->counter)
7685 - : "r" (&v->counter)
7686 - : "cc", "xer");
7687 + return atomic_add_return_unchecked(1, v) == 0;
7688 }
7689
7690 -static __inline__ int atomic_dec_return(atomic_t *v)
7691 +/*
7692 + * atomic_dec - decrement atomic variable
7693 + * @v: pointer of type atomic_t
7694 + *
7695 + * Atomically decrements @v by 1
7696 + */
7697 +#define atomic_dec(v) atomic_sub(1, (v))
7698 +#define atomic_dec_return(v) atomic_sub_return(1, (v))
7699 +
7700 +static __inline__ void atomic_dec_unchecked(atomic_unchecked_t *v)
7701 {
7702 - int t;
7703 -
7704 - __asm__ __volatile__(
7705 - PPC_ATOMIC_ENTRY_BARRIER
7706 -"1: lwarx %0,0,%1 # atomic_dec_return\n\
7707 - addic %0,%0,-1\n"
7708 - PPC405_ERR77(0,%1)
7709 -" stwcx. %0,0,%1\n\
7710 - bne- 1b"
7711 - PPC_ATOMIC_EXIT_BARRIER
7712 - : "=&r" (t)
7713 - : "r" (&v->counter)
7714 - : "cc", "xer", "memory");
7715 -
7716 - return t;
7717 + atomic_sub_unchecked(1, v);
7718 }
7719
7720 #define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
7721 #define atomic_xchg(v, new) (xchg(&((v)->counter), new))
7722
7723 +static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *v, int old, int new)
7724 +{
7725 + return cmpxchg(&(v->counter), old, new);
7726 +}
7727 +
7728 +static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
7729 +{
7730 + return xchg(&(v->counter), new);
7731 +}
7732 +
7733 /**
7734 * __atomic_add_unless - add unless the number is a given value
7735 * @v: pointer of type atomic_t
7736 @@ -175,11 +206,27 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
7737 PPC_ATOMIC_ENTRY_BARRIER
7738 "1: lwarx %0,0,%1 # __atomic_add_unless\n\
7739 cmpw 0,%0,%3 \n\
7740 - beq- 2f \n\
7741 - add %0,%2,%0 \n"
7742 + beq- 2f \n"
7743 +
7744 +#ifdef CONFIG_PAX_REFCOUNT
7745 +" mcrxr cr0\n"
7746 +" addo. %0,%2,%0\n"
7747 +" bf 4*cr0+so, 4f\n"
7748 +"3:.long " "0x00c00b00""\n"
7749 +"4:\n"
7750 +#else
7751 + "add %0,%2,%0 \n"
7752 +#endif
7753 +
7754 PPC405_ERR77(0,%2)
7755 " stwcx. %0,0,%1 \n\
7756 bne- 1b \n"
7757 +"5:"
7758 +
7759 +#ifdef CONFIG_PAX_REFCOUNT
7760 + _ASM_EXTABLE(3b, 5b)
7761 +#endif
7762 +
7763 PPC_ATOMIC_EXIT_BARRIER
7764 " subf %0,%2,%0 \n\
7765 2:"
7766 @@ -252,6 +299,11 @@ static __inline__ int atomic_dec_if_positive(atomic_t *v)
7767 }
7768 #define atomic_dec_if_positive atomic_dec_if_positive
7769
7770 +#define smp_mb__before_atomic_dec() smp_mb()
7771 +#define smp_mb__after_atomic_dec() smp_mb()
7772 +#define smp_mb__before_atomic_inc() smp_mb()
7773 +#define smp_mb__after_atomic_inc() smp_mb()
7774 +
7775 #ifdef __powerpc64__
7776
7777 #define ATOMIC64_INIT(i) { (i) }
7778 @@ -265,37 +317,60 @@ static __inline__ long atomic64_read(const atomic64_t *v)
7779 return t;
7780 }
7781
7782 +static __inline__ long atomic64_read_unchecked(const atomic64_unchecked_t *v)
7783 +{
7784 + long t;
7785 +
7786 + __asm__ __volatile__("ld%U1%X1 %0,%1" : "=r"(t) : "m"(v->counter));
7787 +
7788 + return t;
7789 +}
7790 +
7791 static __inline__ void atomic64_set(atomic64_t *v, long i)
7792 {
7793 __asm__ __volatile__("std%U0%X0 %1,%0" : "=m"(v->counter) : "r"(i));
7794 }
7795
7796 -#define ATOMIC64_OP(op, asm_op) \
7797 -static __inline__ void atomic64_##op(long a, atomic64_t *v) \
7798 +static __inline__ void atomic64_set_unchecked(atomic64_unchecked_t *v, long i)
7799 +{
7800 + __asm__ __volatile__("std%U0%X0 %1,%0" : "=m"(v->counter) : "r"(i));
7801 +}
7802 +
7803 +#define __ATOMIC64_OP(op, suffix, pre_op, asm_op, post_op, extable) \
7804 +static inline void atomic64_##op##suffix(long a, atomic64##suffix##_t *v)\
7805 { \
7806 long t; \
7807 \
7808 __asm__ __volatile__( \
7809 "1: ldarx %0,0,%3 # atomic64_" #op "\n" \
7810 + pre_op \
7811 #asm_op " %0,%2,%0\n" \
7812 + post_op \
7813 " stdcx. %0,0,%3 \n" \
7814 " bne- 1b\n" \
7815 + extable \
7816 : "=&r" (t), "+m" (v->counter) \
7817 : "r" (a), "r" (&v->counter) \
7818 : "cc"); \
7819 }
7820
7821 -#define ATOMIC64_OP_RETURN(op, asm_op) \
7822 -static __inline__ long atomic64_##op##_return(long a, atomic64_t *v) \
7823 +#define ATOMIC64_OP(op, asm_op) __ATOMIC64_OP(op, , , asm_op, , ) \
7824 + __ATOMIC64_OP(op, _unchecked, __OVERFLOW_PRE, __REFCOUNT_OP(asm_op), __OVERFLOW_POST, __OVERFLOW_EXTABLE)
7825 +
7826 +#define __ATOMIC64_OP_RETURN(op, suffix, pre_op, asm_op, post_op, extable)\
7827 +static inline long atomic64_##op##_return##suffix(long a, atomic64##suffix##_t *v)\
7828 { \
7829 long t; \
7830 \
7831 __asm__ __volatile__( \
7832 PPC_ATOMIC_ENTRY_BARRIER \
7833 "1: ldarx %0,0,%2 # atomic64_" #op "_return\n" \
7834 + pre_op \
7835 #asm_op " %0,%1,%0\n" \
7836 + post_op \
7837 " stdcx. %0,0,%2 \n" \
7838 " bne- 1b\n" \
7839 + extable \
7840 PPC_ATOMIC_EXIT_BARRIER \
7841 : "=&r" (t) \
7842 : "r" (a), "r" (&v->counter) \
7843 @@ -304,6 +379,9 @@ static __inline__ long atomic64_##op##_return(long a, atomic64_t *v) \
7844 return t; \
7845 }
7846
7847 +#define ATOMIC64_OP_RETURN(op, asm_op) __ATOMIC64_OP_RETURN(op, , , asm_op, , )\
7848 + __ATOMIC64_OP_RETURN(op, _unchecked, __OVERFLOW_PRE, __REFCOUNT_OP(asm_op), __OVERFLOW_POST, __OVERFLOW_EXTABLE)
7849 +
7850 #define ATOMIC64_OPS(op, asm_op) ATOMIC64_OP(op, asm_op) ATOMIC64_OP_RETURN(op, asm_op)
7851
7852 ATOMIC64_OPS(add, add)
7853 @@ -314,40 +392,33 @@ ATOMIC64_OP(xor, xor)
7854
7855 #undef ATOMIC64_OPS
7856 #undef ATOMIC64_OP_RETURN
7857 +#undef __ATOMIC64_OP_RETURN
7858 #undef ATOMIC64_OP
7859 +#undef __ATOMIC64_OP
7860 +#undef __OVERFLOW_EXTABLE
7861 +#undef __OVERFLOW_POST
7862 +#undef __OVERFLOW_PRE
7863 +#undef __REFCOUNT_OP
7864
7865 #define atomic64_add_negative(a, v) (atomic64_add_return((a), (v)) < 0)
7866
7867 -static __inline__ void atomic64_inc(atomic64_t *v)
7868 -{
7869 - long t;
7870 +/*
7871 + * atomic64_inc - increment atomic variable
7872 + * @v: pointer of type atomic64_t
7873 + *
7874 + * Automatically increments @v by 1
7875 + */
7876 +#define atomic64_inc(v) atomic64_add(1, (v))
7877 +#define atomic64_inc_return(v) atomic64_add_return(1, (v))
7878
7879 - __asm__ __volatile__(
7880 -"1: ldarx %0,0,%2 # atomic64_inc\n\
7881 - addic %0,%0,1\n\
7882 - stdcx. %0,0,%2 \n\
7883 - bne- 1b"
7884 - : "=&r" (t), "+m" (v->counter)
7885 - : "r" (&v->counter)
7886 - : "cc", "xer");
7887 +static inline void atomic64_inc_unchecked(atomic64_unchecked_t *v)
7888 +{
7889 + atomic64_add_unchecked(1, v);
7890 }
7891
7892 -static __inline__ long atomic64_inc_return(atomic64_t *v)
7893 +static inline long atomic64_inc_return_unchecked(atomic64_unchecked_t *v)
7894 {
7895 - long t;
7896 -
7897 - __asm__ __volatile__(
7898 - PPC_ATOMIC_ENTRY_BARRIER
7899 -"1: ldarx %0,0,%1 # atomic64_inc_return\n\
7900 - addic %0,%0,1\n\
7901 - stdcx. %0,0,%1 \n\
7902 - bne- 1b"
7903 - PPC_ATOMIC_EXIT_BARRIER
7904 - : "=&r" (t)
7905 - : "r" (&v->counter)
7906 - : "cc", "xer", "memory");
7907 -
7908 - return t;
7909 + return atomic64_add_return_unchecked(1, v);
7910 }
7911
7912 /*
7913 @@ -360,36 +431,18 @@ static __inline__ long atomic64_inc_return(atomic64_t *v)
7914 */
7915 #define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0)
7916
7917 -static __inline__ void atomic64_dec(atomic64_t *v)
7918 +/*
7919 + * atomic64_dec - decrement atomic variable
7920 + * @v: pointer of type atomic64_t
7921 + *
7922 + * Atomically decrements @v by 1
7923 + */
7924 +#define atomic64_dec(v) atomic64_sub(1, (v))
7925 +#define atomic64_dec_return(v) atomic64_sub_return(1, (v))
7926 +
7927 +static __inline__ void atomic64_dec_unchecked(atomic64_unchecked_t *v)
7928 {
7929 - long t;
7930 -
7931 - __asm__ __volatile__(
7932 -"1: ldarx %0,0,%2 # atomic64_dec\n\
7933 - addic %0,%0,-1\n\
7934 - stdcx. %0,0,%2\n\
7935 - bne- 1b"
7936 - : "=&r" (t), "+m" (v->counter)
7937 - : "r" (&v->counter)
7938 - : "cc", "xer");
7939 -}
7940 -
7941 -static __inline__ long atomic64_dec_return(atomic64_t *v)
7942 -{
7943 - long t;
7944 -
7945 - __asm__ __volatile__(
7946 - PPC_ATOMIC_ENTRY_BARRIER
7947 -"1: ldarx %0,0,%1 # atomic64_dec_return\n\
7948 - addic %0,%0,-1\n\
7949 - stdcx. %0,0,%1\n\
7950 - bne- 1b"
7951 - PPC_ATOMIC_EXIT_BARRIER
7952 - : "=&r" (t)
7953 - : "r" (&v->counter)
7954 - : "cc", "xer", "memory");
7955 -
7956 - return t;
7957 + atomic64_sub_unchecked(1, v);
7958 }
7959
7960 #define atomic64_sub_and_test(a, v) (atomic64_sub_return((a), (v)) == 0)
7961 @@ -422,6 +475,16 @@ static __inline__ long atomic64_dec_if_positive(atomic64_t *v)
7962 #define atomic64_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
7963 #define atomic64_xchg(v, new) (xchg(&((v)->counter), new))
7964
7965 +static inline long atomic64_cmpxchg_unchecked(atomic64_unchecked_t *v, long old, long new)
7966 +{
7967 + return cmpxchg(&(v->counter), old, new);
7968 +}
7969 +
7970 +static inline long atomic64_xchg_unchecked(atomic64_unchecked_t *v, long new)
7971 +{
7972 + return xchg(&(v->counter), new);
7973 +}
7974 +
7975 /**
7976 * atomic64_add_unless - add unless the number is a given value
7977 * @v: pointer of type atomic64_t
7978 @@ -437,13 +500,29 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
7979
7980 __asm__ __volatile__ (
7981 PPC_ATOMIC_ENTRY_BARRIER
7982 -"1: ldarx %0,0,%1 # __atomic_add_unless\n\
7983 +"1: ldarx %0,0,%1 # atomic64_add_unless\n\
7984 cmpd 0,%0,%3 \n\
7985 - beq- 2f \n\
7986 - add %0,%2,%0 \n"
7987 + beq- 2f \n"
7988 +
7989 +#ifdef CONFIG_PAX_REFCOUNT
7990 +" mcrxr cr0\n"
7991 +" addo. %0,%2,%0\n"
7992 +" bf 4*cr0+so, 4f\n"
7993 +"3:.long " "0x00c00b00""\n"
7994 +"4:\n"
7995 +#else
7996 + "add %0,%2,%0 \n"
7997 +#endif
7998 +
7999 " stdcx. %0,0,%1 \n\
8000 bne- 1b \n"
8001 PPC_ATOMIC_EXIT_BARRIER
8002 +"5:"
8003 +
8004 +#ifdef CONFIG_PAX_REFCOUNT
8005 + _ASM_EXTABLE(3b, 5b)
8006 +#endif
8007 +
8008 " subf %0,%2,%0 \n\
8009 2:"
8010 : "=&r" (t)
8011 diff --git a/arch/powerpc/include/asm/cache.h b/arch/powerpc/include/asm/cache.h
8012 index 5f8229e..385d90b 100644
8013 --- a/arch/powerpc/include/asm/cache.h
8014 +++ b/arch/powerpc/include/asm/cache.h
8015 @@ -3,6 +3,8 @@
8016
8017 #ifdef __KERNEL__
8018
8019 +#include <asm/reg.h>
8020 +#include <linux/const.h>
8021
8022 /* bytes per L1 cache line */
8023 #if defined(CONFIG_8xx) || defined(CONFIG_403GCX)
8024 @@ -22,7 +24,7 @@
8025 #define L1_CACHE_SHIFT 7
8026 #endif
8027
8028 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
8029 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
8030
8031 #define SMP_CACHE_BYTES L1_CACHE_BYTES
8032
8033 diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h
8034 index ee46ffe..b36c98c 100644
8035 --- a/arch/powerpc/include/asm/elf.h
8036 +++ b/arch/powerpc/include/asm/elf.h
8037 @@ -30,6 +30,18 @@
8038
8039 #define ELF_ET_DYN_BASE 0x20000000
8040
8041 +#ifdef CONFIG_PAX_ASLR
8042 +#define PAX_ELF_ET_DYN_BASE (0x10000000UL)
8043 +
8044 +#ifdef __powerpc64__
8045 +#define PAX_DELTA_MMAP_LEN (is_32bit_task() ? 16 : 28)
8046 +#define PAX_DELTA_STACK_LEN (is_32bit_task() ? 16 : 28)
8047 +#else
8048 +#define PAX_DELTA_MMAP_LEN 15
8049 +#define PAX_DELTA_STACK_LEN 15
8050 +#endif
8051 +#endif
8052 +
8053 #define ELF_CORE_EFLAGS (is_elf2_task() ? 2 : 0)
8054
8055 /*
8056 diff --git a/arch/powerpc/include/asm/exec.h b/arch/powerpc/include/asm/exec.h
8057 index 8196e9c..d83a9f3 100644
8058 --- a/arch/powerpc/include/asm/exec.h
8059 +++ b/arch/powerpc/include/asm/exec.h
8060 @@ -4,6 +4,6 @@
8061 #ifndef _ASM_POWERPC_EXEC_H
8062 #define _ASM_POWERPC_EXEC_H
8063
8064 -extern unsigned long arch_align_stack(unsigned long sp);
8065 +#define arch_align_stack(x) ((x) & ~0xfUL)
8066
8067 #endif /* _ASM_POWERPC_EXEC_H */
8068 diff --git a/arch/powerpc/include/asm/kmap_types.h b/arch/powerpc/include/asm/kmap_types.h
8069 index 5acabbd..7ea14fa 100644
8070 --- a/arch/powerpc/include/asm/kmap_types.h
8071 +++ b/arch/powerpc/include/asm/kmap_types.h
8072 @@ -10,7 +10,7 @@
8073 * 2 of the License, or (at your option) any later version.
8074 */
8075
8076 -#define KM_TYPE_NR 16
8077 +#define KM_TYPE_NR 17
8078
8079 #endif /* __KERNEL__ */
8080 #endif /* _ASM_POWERPC_KMAP_TYPES_H */
8081 diff --git a/arch/powerpc/include/asm/local.h b/arch/powerpc/include/asm/local.h
8082 index b8da913..c02b593 100644
8083 --- a/arch/powerpc/include/asm/local.h
8084 +++ b/arch/powerpc/include/asm/local.h
8085 @@ -9,21 +9,65 @@ typedef struct
8086 atomic_long_t a;
8087 } local_t;
8088
8089 +typedef struct
8090 +{
8091 + atomic_long_unchecked_t a;
8092 +} local_unchecked_t;
8093 +
8094 #define LOCAL_INIT(i) { ATOMIC_LONG_INIT(i) }
8095
8096 #define local_read(l) atomic_long_read(&(l)->a)
8097 +#define local_read_unchecked(l) atomic_long_read_unchecked(&(l)->a)
8098 #define local_set(l,i) atomic_long_set(&(l)->a, (i))
8099 +#define local_set_unchecked(l,i) atomic_long_set_unchecked(&(l)->a, (i))
8100
8101 #define local_add(i,l) atomic_long_add((i),(&(l)->a))
8102 +#define local_add_unchecked(i,l) atomic_long_add_unchecked((i),(&(l)->a))
8103 #define local_sub(i,l) atomic_long_sub((i),(&(l)->a))
8104 +#define local_sub_unchecked(i,l) atomic_long_sub_unchecked((i),(&(l)->a))
8105 #define local_inc(l) atomic_long_inc(&(l)->a)
8106 +#define local_inc_unchecked(l) atomic_long_inc_unchecked(&(l)->a)
8107 #define local_dec(l) atomic_long_dec(&(l)->a)
8108 +#define local_dec_unchecked(l) atomic_long_dec_unchecked(&(l)->a)
8109
8110 static __inline__ long local_add_return(long a, local_t *l)
8111 {
8112 long t;
8113
8114 __asm__ __volatile__(
8115 +"1:" PPC_LLARX(%0,0,%2,0) " # local_add_return\n"
8116 +
8117 +#ifdef CONFIG_PAX_REFCOUNT
8118 +" mcrxr cr0\n"
8119 +" addo. %0,%1,%0\n"
8120 +" bf 4*cr0+so, 3f\n"
8121 +"2:.long " "0x00c00b00""\n"
8122 +#else
8123 +" add %0,%1,%0\n"
8124 +#endif
8125 +
8126 +"3:\n"
8127 + PPC405_ERR77(0,%2)
8128 + PPC_STLCX "%0,0,%2 \n\
8129 + bne- 1b"
8130 +
8131 +#ifdef CONFIG_PAX_REFCOUNT
8132 +"\n4:\n"
8133 + _ASM_EXTABLE(2b, 4b)
8134 +#endif
8135 +
8136 + : "=&r" (t)
8137 + : "r" (a), "r" (&(l->a.counter))
8138 + : "cc", "memory");
8139 +
8140 + return t;
8141 +}
8142 +
8143 +static __inline__ long local_add_return_unchecked(long a, local_unchecked_t *l)
8144 +{
8145 + long t;
8146 +
8147 + __asm__ __volatile__(
8148 "1:" PPC_LLARX(%0,0,%2,0) " # local_add_return\n\
8149 add %0,%1,%0\n"
8150 PPC405_ERR77(0,%2)
8151 @@ -101,6 +145,8 @@ static __inline__ long local_dec_return(local_t *l)
8152
8153 #define local_cmpxchg(l, o, n) \
8154 (cmpxchg_local(&((l)->a.counter), (o), (n)))
8155 +#define local_cmpxchg_unchecked(l, o, n) \
8156 + (cmpxchg_local(&((l)->a.counter), (o), (n)))
8157 #define local_xchg(l, n) (xchg_local(&((l)->a.counter), (n)))
8158
8159 /**
8160 diff --git a/arch/powerpc/include/asm/mman.h b/arch/powerpc/include/asm/mman.h
8161 index 8565c25..2865190 100644
8162 --- a/arch/powerpc/include/asm/mman.h
8163 +++ b/arch/powerpc/include/asm/mman.h
8164 @@ -24,7 +24,7 @@ static inline unsigned long arch_calc_vm_prot_bits(unsigned long prot)
8165 }
8166 #define arch_calc_vm_prot_bits(prot) arch_calc_vm_prot_bits(prot)
8167
8168 -static inline pgprot_t arch_vm_get_page_prot(unsigned long vm_flags)
8169 +static inline pgprot_t arch_vm_get_page_prot(vm_flags_t vm_flags)
8170 {
8171 return (vm_flags & VM_SAO) ? __pgprot(_PAGE_SAO) : __pgprot(0);
8172 }
8173 diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h
8174 index 3140c19..0c43168 100644
8175 --- a/arch/powerpc/include/asm/page.h
8176 +++ b/arch/powerpc/include/asm/page.h
8177 @@ -230,8 +230,9 @@ extern long long virt_phys_offset;
8178 * and needs to be executable. This means the whole heap ends
8179 * up being executable.
8180 */
8181 -#define VM_DATA_DEFAULT_FLAGS32 (VM_READ | VM_WRITE | VM_EXEC | \
8182 - VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8183 +#define VM_DATA_DEFAULT_FLAGS32 \
8184 + (((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0) | \
8185 + VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8186
8187 #define VM_DATA_DEFAULT_FLAGS64 (VM_READ | VM_WRITE | \
8188 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8189 @@ -259,6 +260,9 @@ extern long long virt_phys_offset;
8190 #define is_kernel_addr(x) ((x) >= PAGE_OFFSET)
8191 #endif
8192
8193 +#define ktla_ktva(addr) (addr)
8194 +#define ktva_ktla(addr) (addr)
8195 +
8196 #ifndef CONFIG_PPC_BOOK3S_64
8197 /*
8198 * Use the top bit of the higher-level page table entries to indicate whether
8199 diff --git a/arch/powerpc/include/asm/page_64.h b/arch/powerpc/include/asm/page_64.h
8200 index d908a46..3753f71 100644
8201 --- a/arch/powerpc/include/asm/page_64.h
8202 +++ b/arch/powerpc/include/asm/page_64.h
8203 @@ -172,15 +172,18 @@ do { \
8204 * stack by default, so in the absence of a PT_GNU_STACK program header
8205 * we turn execute permission off.
8206 */
8207 -#define VM_STACK_DEFAULT_FLAGS32 (VM_READ | VM_WRITE | VM_EXEC | \
8208 - VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8209 +#define VM_STACK_DEFAULT_FLAGS32 \
8210 + (((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0) | \
8211 + VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8212
8213 #define VM_STACK_DEFAULT_FLAGS64 (VM_READ | VM_WRITE | \
8214 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8215
8216 +#ifndef CONFIG_PAX_PAGEEXEC
8217 #define VM_STACK_DEFAULT_FLAGS \
8218 (is_32bit_task() ? \
8219 VM_STACK_DEFAULT_FLAGS32 : VM_STACK_DEFAULT_FLAGS64)
8220 +#endif
8221
8222 #include <asm-generic/getorder.h>
8223
8224 diff --git a/arch/powerpc/include/asm/pgalloc-64.h b/arch/powerpc/include/asm/pgalloc-64.h
8225 index 4b0be20..c15a27d 100644
8226 --- a/arch/powerpc/include/asm/pgalloc-64.h
8227 +++ b/arch/powerpc/include/asm/pgalloc-64.h
8228 @@ -54,6 +54,7 @@ static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
8229 #ifndef CONFIG_PPC_64K_PAGES
8230
8231 #define pgd_populate(MM, PGD, PUD) pgd_set(PGD, PUD)
8232 +#define pgd_populate_kernel(MM, PGD, PUD) pgd_populate((MM), (PGD), (PUD))
8233
8234 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
8235 {
8236 @@ -71,6 +72,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
8237 pud_set(pud, (unsigned long)pmd);
8238 }
8239
8240 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
8241 +{
8242 + pud_populate(mm, pud, pmd);
8243 +}
8244 +
8245 #define pmd_populate(mm, pmd, pte_page) \
8246 pmd_populate_kernel(mm, pmd, page_address(pte_page))
8247 #define pmd_populate_kernel(mm, pmd, pte) pmd_set(pmd, (unsigned long)(pte))
8248 @@ -173,6 +179,7 @@ extern void __tlb_remove_table(void *_table);
8249 #endif
8250
8251 #define pud_populate(mm, pud, pmd) pud_set(pud, (unsigned long)pmd)
8252 +#define pud_populate_kernel(mm, pud, pmd) pud_populate((mm), (pud), (pmd))
8253
8254 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
8255 pte_t *pte)
8256 diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
8257 index b64b421..cc8447a 100644
8258 --- a/arch/powerpc/include/asm/pgtable.h
8259 +++ b/arch/powerpc/include/asm/pgtable.h
8260 @@ -2,6 +2,7 @@
8261 #define _ASM_POWERPC_PGTABLE_H
8262 #ifdef __KERNEL__
8263
8264 +#include <linux/const.h>
8265 #ifndef __ASSEMBLY__
8266 #include <linux/mmdebug.h>
8267 #include <linux/mmzone.h>
8268 diff --git a/arch/powerpc/include/asm/pte-hash32.h b/arch/powerpc/include/asm/pte-hash32.h
8269 index 62cfb0c..50c6402 100644
8270 --- a/arch/powerpc/include/asm/pte-hash32.h
8271 +++ b/arch/powerpc/include/asm/pte-hash32.h
8272 @@ -20,6 +20,7 @@
8273 #define _PAGE_HASHPTE 0x002 /* hash_page has made an HPTE for this pte */
8274 #define _PAGE_USER 0x004 /* usermode access allowed */
8275 #define _PAGE_GUARDED 0x008 /* G: prohibit speculative access */
8276 +#define _PAGE_EXEC _PAGE_GUARDED
8277 #define _PAGE_COHERENT 0x010 /* M: enforce memory coherence (SMP systems) */
8278 #define _PAGE_NO_CACHE 0x020 /* I: cache inhibit */
8279 #define _PAGE_WRITETHRU 0x040 /* W: cache write-through */
8280 diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
8281 index 2220f7a..5a9420e 100644
8282 --- a/arch/powerpc/include/asm/reg.h
8283 +++ b/arch/powerpc/include/asm/reg.h
8284 @@ -253,6 +253,7 @@
8285 #define SPRN_DBCR 0x136 /* e300 Data Breakpoint Control Reg */
8286 #define SPRN_DSISR 0x012 /* Data Storage Interrupt Status Register */
8287 #define DSISR_NOHPTE 0x40000000 /* no translation found */
8288 +#define DSISR_GUARDED 0x10000000 /* fetch from guarded storage */
8289 #define DSISR_PROTFAULT 0x08000000 /* protection fault */
8290 #define DSISR_ISSTORE 0x02000000 /* access was a store */
8291 #define DSISR_DABRMATCH 0x00400000 /* hit data breakpoint */
8292 diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h
8293 index 825663c..f9e9134 100644
8294 --- a/arch/powerpc/include/asm/smp.h
8295 +++ b/arch/powerpc/include/asm/smp.h
8296 @@ -51,7 +51,7 @@ struct smp_ops_t {
8297 int (*cpu_disable)(void);
8298 void (*cpu_die)(unsigned int nr);
8299 int (*cpu_bootable)(unsigned int nr);
8300 -};
8301 +} __no_const;
8302
8303 extern void smp_send_debugger_break(void);
8304 extern void start_secondary_resume(void);
8305 diff --git a/arch/powerpc/include/asm/spinlock.h b/arch/powerpc/include/asm/spinlock.h
8306 index 523673d..4aeef3b 100644
8307 --- a/arch/powerpc/include/asm/spinlock.h
8308 +++ b/arch/powerpc/include/asm/spinlock.h
8309 @@ -202,13 +202,29 @@ static inline long __arch_read_trylock(arch_rwlock_t *rw)
8310 __asm__ __volatile__(
8311 "1: " PPC_LWARX(%0,0,%1,1) "\n"
8312 __DO_SIGN_EXTEND
8313 -" addic. %0,%0,1\n\
8314 - ble- 2f\n"
8315 +
8316 +#ifdef CONFIG_PAX_REFCOUNT
8317 +" mcrxr cr0\n"
8318 +" addico. %0,%0,1\n"
8319 +" bf 4*cr0+so, 3f\n"
8320 +"2:.long " "0x00c00b00""\n"
8321 +#else
8322 +" addic. %0,%0,1\n"
8323 +#endif
8324 +
8325 +"3:\n"
8326 + "ble- 4f\n"
8327 PPC405_ERR77(0,%1)
8328 " stwcx. %0,0,%1\n\
8329 bne- 1b\n"
8330 PPC_ACQUIRE_BARRIER
8331 -"2:" : "=&r" (tmp)
8332 +"4:"
8333 +
8334 +#ifdef CONFIG_PAX_REFCOUNT
8335 + _ASM_EXTABLE(2b,4b)
8336 +#endif
8337 +
8338 + : "=&r" (tmp)
8339 : "r" (&rw->lock)
8340 : "cr0", "xer", "memory");
8341
8342 @@ -284,11 +300,27 @@ static inline void arch_read_unlock(arch_rwlock_t *rw)
8343 __asm__ __volatile__(
8344 "# read_unlock\n\t"
8345 PPC_RELEASE_BARRIER
8346 -"1: lwarx %0,0,%1\n\
8347 - addic %0,%0,-1\n"
8348 +"1: lwarx %0,0,%1\n"
8349 +
8350 +#ifdef CONFIG_PAX_REFCOUNT
8351 +" mcrxr cr0\n"
8352 +" addico. %0,%0,-1\n"
8353 +" bf 4*cr0+so, 3f\n"
8354 +"2:.long " "0x00c00b00""\n"
8355 +#else
8356 +" addic. %0,%0,-1\n"
8357 +#endif
8358 +
8359 +"3:\n"
8360 PPC405_ERR77(0,%1)
8361 " stwcx. %0,0,%1\n\
8362 bne- 1b"
8363 +
8364 +#ifdef CONFIG_PAX_REFCOUNT
8365 +"\n4:\n"
8366 + _ASM_EXTABLE(2b, 4b)
8367 +#endif
8368 +
8369 : "=&r"(tmp)
8370 : "r"(&rw->lock)
8371 : "cr0", "xer", "memory");
8372 diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h
8373 index 7efee4a..48d47cc 100644
8374 --- a/arch/powerpc/include/asm/thread_info.h
8375 +++ b/arch/powerpc/include/asm/thread_info.h
8376 @@ -101,6 +101,8 @@ static inline struct thread_info *current_thread_info(void)
8377 #if defined(CONFIG_PPC64)
8378 #define TIF_ELF2ABI 18 /* function descriptors must die! */
8379 #endif
8380 +/* mask must be expressable within 16 bits to satisfy 'andi' instruction reqs */
8381 +#define TIF_GRSEC_SETXID 6 /* update credentials on syscall entry/exit */
8382
8383 /* as above, but as bit values */
8384 #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
8385 @@ -119,9 +121,10 @@ static inline struct thread_info *current_thread_info(void)
8386 #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)
8387 #define _TIF_EMULATE_STACK_STORE (1<<TIF_EMULATE_STACK_STORE)
8388 #define _TIF_NOHZ (1<<TIF_NOHZ)
8389 +#define _TIF_GRSEC_SETXID (1<<TIF_GRSEC_SETXID)
8390 #define _TIF_SYSCALL_DOTRACE (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \
8391 _TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT | \
8392 - _TIF_NOHZ)
8393 + _TIF_NOHZ | _TIF_GRSEC_SETXID)
8394
8395 #define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \
8396 _TIF_NOTIFY_RESUME | _TIF_UPROBE | \
8397 diff --git a/arch/powerpc/include/asm/uaccess.h b/arch/powerpc/include/asm/uaccess.h
8398 index 2a8ebae..5643c6f 100644
8399 --- a/arch/powerpc/include/asm/uaccess.h
8400 +++ b/arch/powerpc/include/asm/uaccess.h
8401 @@ -58,6 +58,7 @@
8402
8403 #endif
8404
8405 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
8406 #define access_ok(type, addr, size) \
8407 (__chk_user_ptr(addr), \
8408 __access_ok((__force unsigned long)(addr), (size), get_fs()))
8409 @@ -318,52 +319,6 @@ do { \
8410 extern unsigned long __copy_tofrom_user(void __user *to,
8411 const void __user *from, unsigned long size);
8412
8413 -#ifndef __powerpc64__
8414 -
8415 -static inline unsigned long copy_from_user(void *to,
8416 - const void __user *from, unsigned long n)
8417 -{
8418 - unsigned long over;
8419 -
8420 - if (access_ok(VERIFY_READ, from, n))
8421 - return __copy_tofrom_user((__force void __user *)to, from, n);
8422 - if ((unsigned long)from < TASK_SIZE) {
8423 - over = (unsigned long)from + n - TASK_SIZE;
8424 - return __copy_tofrom_user((__force void __user *)to, from,
8425 - n - over) + over;
8426 - }
8427 - return n;
8428 -}
8429 -
8430 -static inline unsigned long copy_to_user(void __user *to,
8431 - const void *from, unsigned long n)
8432 -{
8433 - unsigned long over;
8434 -
8435 - if (access_ok(VERIFY_WRITE, to, n))
8436 - return __copy_tofrom_user(to, (__force void __user *)from, n);
8437 - if ((unsigned long)to < TASK_SIZE) {
8438 - over = (unsigned long)to + n - TASK_SIZE;
8439 - return __copy_tofrom_user(to, (__force void __user *)from,
8440 - n - over) + over;
8441 - }
8442 - return n;
8443 -}
8444 -
8445 -#else /* __powerpc64__ */
8446 -
8447 -#define __copy_in_user(to, from, size) \
8448 - __copy_tofrom_user((to), (from), (size))
8449 -
8450 -extern unsigned long copy_from_user(void *to, const void __user *from,
8451 - unsigned long n);
8452 -extern unsigned long copy_to_user(void __user *to, const void *from,
8453 - unsigned long n);
8454 -extern unsigned long copy_in_user(void __user *to, const void __user *from,
8455 - unsigned long n);
8456 -
8457 -#endif /* __powerpc64__ */
8458 -
8459 static inline unsigned long __copy_from_user_inatomic(void *to,
8460 const void __user *from, unsigned long n)
8461 {
8462 @@ -387,6 +342,10 @@ static inline unsigned long __copy_from_user_inatomic(void *to,
8463 if (ret == 0)
8464 return 0;
8465 }
8466 +
8467 + if (!__builtin_constant_p(n))
8468 + check_object_size(to, n, false);
8469 +
8470 return __copy_tofrom_user((__force void __user *)to, from, n);
8471 }
8472
8473 @@ -413,6 +372,10 @@ static inline unsigned long __copy_to_user_inatomic(void __user *to,
8474 if (ret == 0)
8475 return 0;
8476 }
8477 +
8478 + if (!__builtin_constant_p(n))
8479 + check_object_size(from, n, true);
8480 +
8481 return __copy_tofrom_user(to, (__force const void __user *)from, n);
8482 }
8483
8484 @@ -430,6 +393,92 @@ static inline unsigned long __copy_to_user(void __user *to,
8485 return __copy_to_user_inatomic(to, from, size);
8486 }
8487
8488 +#ifndef __powerpc64__
8489 +
8490 +static inline unsigned long __must_check copy_from_user(void *to,
8491 + const void __user *from, unsigned long n)
8492 +{
8493 + unsigned long over;
8494 +
8495 + if ((long)n < 0)
8496 + return n;
8497 +
8498 + if (access_ok(VERIFY_READ, from, n)) {
8499 + if (!__builtin_constant_p(n))
8500 + check_object_size(to, n, false);
8501 + return __copy_tofrom_user((__force void __user *)to, from, n);
8502 + }
8503 + if ((unsigned long)from < TASK_SIZE) {
8504 + over = (unsigned long)from + n - TASK_SIZE;
8505 + if (!__builtin_constant_p(n - over))
8506 + check_object_size(to, n - over, false);
8507 + return __copy_tofrom_user((__force void __user *)to, from,
8508 + n - over) + over;
8509 + }
8510 + return n;
8511 +}
8512 +
8513 +static inline unsigned long __must_check copy_to_user(void __user *to,
8514 + const void *from, unsigned long n)
8515 +{
8516 + unsigned long over;
8517 +
8518 + if ((long)n < 0)
8519 + return n;
8520 +
8521 + if (access_ok(VERIFY_WRITE, to, n)) {
8522 + if (!__builtin_constant_p(n))
8523 + check_object_size(from, n, true);
8524 + return __copy_tofrom_user(to, (__force void __user *)from, n);
8525 + }
8526 + if ((unsigned long)to < TASK_SIZE) {
8527 + over = (unsigned long)to + n - TASK_SIZE;
8528 + if (!__builtin_constant_p(n))
8529 + check_object_size(from, n - over, true);
8530 + return __copy_tofrom_user(to, (__force void __user *)from,
8531 + n - over) + over;
8532 + }
8533 + return n;
8534 +}
8535 +
8536 +#else /* __powerpc64__ */
8537 +
8538 +#define __copy_in_user(to, from, size) \
8539 + __copy_tofrom_user((to), (from), (size))
8540 +
8541 +static inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long n)
8542 +{
8543 + if ((long)n < 0 || n > INT_MAX)
8544 + return n;
8545 +
8546 + if (!__builtin_constant_p(n))
8547 + check_object_size(to, n, false);
8548 +
8549 + if (likely(access_ok(VERIFY_READ, from, n)))
8550 + n = __copy_from_user(to, from, n);
8551 + else
8552 + memset(to, 0, n);
8553 + return n;
8554 +}
8555 +
8556 +static inline unsigned long __must_check copy_to_user(void __user *to, const void *from, unsigned long n)
8557 +{
8558 + if ((long)n < 0 || n > INT_MAX)
8559 + return n;
8560 +
8561 + if (likely(access_ok(VERIFY_WRITE, to, n))) {
8562 + if (!__builtin_constant_p(n))
8563 + check_object_size(from, n, true);
8564 + n = __copy_to_user(to, from, n);
8565 + }
8566 + return n;
8567 +}
8568 +
8569 +extern unsigned long copy_in_user(void __user *to, const void __user *from,
8570 + unsigned long n);
8571 +
8572 +#endif /* __powerpc64__ */
8573 +
8574 extern unsigned long __clear_user(void __user *addr, unsigned long size);
8575
8576 static inline unsigned long clear_user(void __user *addr, unsigned long size)
8577 diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
8578 index ba33693..d8db875 100644
8579 --- a/arch/powerpc/kernel/Makefile
8580 +++ b/arch/powerpc/kernel/Makefile
8581 @@ -14,6 +14,11 @@ CFLAGS_prom_init.o += -fPIC
8582 CFLAGS_btext.o += -fPIC
8583 endif
8584
8585 +CFLAGS_REMOVE_cputable.o = $(LATENT_ENTROPY_PLUGIN_CFLAGS)
8586 +CFLAGS_REMOVE_prom_init.o = $(LATENT_ENTROPY_PLUGIN_CFLAGS)
8587 +CFLAGS_REMOVE_btext.o = $(LATENT_ENTROPY_PLUGIN_CFLAGS)
8588 +CFLAGS_REMOVE_prom.o = $(LATENT_ENTROPY_PLUGIN_CFLAGS)
8589 +
8590 ifdef CONFIG_FUNCTION_TRACER
8591 # Do not trace early boot code
8592 CFLAGS_REMOVE_cputable.o = -pg -mno-sched-epilog
8593 @@ -26,6 +31,8 @@ CFLAGS_REMOVE_ftrace.o = -pg -mno-sched-epilog
8594 CFLAGS_REMOVE_time.o = -pg -mno-sched-epilog
8595 endif
8596
8597 +CFLAGS_REMOVE_prom_init.o += $(LATENT_ENTROPY_PLUGIN_CFLAGS)
8598 +
8599 obj-y := cputable.o ptrace.o syscalls.o \
8600 irq.o align.o signal_32.o pmc.o vdso.o \
8601 process.o systbl.o idle.o \
8602 diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S
8603 index 488e631..6cdd928 100644
8604 --- a/arch/powerpc/kernel/exceptions-64e.S
8605 +++ b/arch/powerpc/kernel/exceptions-64e.S
8606 @@ -1010,6 +1010,7 @@ storage_fault_common:
8607 std r14,_DAR(r1)
8608 std r15,_DSISR(r1)
8609 addi r3,r1,STACK_FRAME_OVERHEAD
8610 + bl save_nvgprs
8611 mr r4,r14
8612 mr r5,r15
8613 ld r14,PACA_EXGEN+EX_R14(r13)
8614 @@ -1018,8 +1019,7 @@ storage_fault_common:
8615 cmpdi r3,0
8616 bne- 1f
8617 b ret_from_except_lite
8618 -1: bl save_nvgprs
8619 - mr r5,r3
8620 +1: mr r5,r3
8621 addi r3,r1,STACK_FRAME_OVERHEAD
8622 ld r4,_DAR(r1)
8623 bl bad_page_fault
8624 diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
8625 index 0a0399c2..262a2e6 100644
8626 --- a/arch/powerpc/kernel/exceptions-64s.S
8627 +++ b/arch/powerpc/kernel/exceptions-64s.S
8628 @@ -1591,10 +1591,10 @@ handle_page_fault:
8629 11: ld r4,_DAR(r1)
8630 ld r5,_DSISR(r1)
8631 addi r3,r1,STACK_FRAME_OVERHEAD
8632 + bl save_nvgprs
8633 bl do_page_fault
8634 cmpdi r3,0
8635 beq+ 12f
8636 - bl save_nvgprs
8637 mr r5,r3
8638 addi r3,r1,STACK_FRAME_OVERHEAD
8639 lwz r4,_DAR(r1)
8640 diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
8641 index 290559d..0094ddb 100644
8642 --- a/arch/powerpc/kernel/irq.c
8643 +++ b/arch/powerpc/kernel/irq.c
8644 @@ -460,6 +460,8 @@ void migrate_irqs(void)
8645 }
8646 #endif
8647
8648 +extern void gr_handle_kernel_exploit(void);
8649 +
8650 static inline void check_stack_overflow(void)
8651 {
8652 #ifdef CONFIG_DEBUG_STACKOVERFLOW
8653 @@ -472,6 +474,7 @@ static inline void check_stack_overflow(void)
8654 pr_err("do_IRQ: stack overflow: %ld\n",
8655 sp - sizeof(struct thread_info));
8656 dump_stack();
8657 + gr_handle_kernel_exploit();
8658 }
8659 #endif
8660 }
8661 diff --git a/arch/powerpc/kernel/module_32.c b/arch/powerpc/kernel/module_32.c
8662 index c94d2e0..992a9ce 100644
8663 --- a/arch/powerpc/kernel/module_32.c
8664 +++ b/arch/powerpc/kernel/module_32.c
8665 @@ -158,7 +158,7 @@ int module_frob_arch_sections(Elf32_Ehdr *hdr,
8666 me->arch.core_plt_section = i;
8667 }
8668 if (!me->arch.core_plt_section || !me->arch.init_plt_section) {
8669 - pr_err("Module doesn't contain .plt or .init.plt sections.\n");
8670 + pr_err("Module $s doesn't contain .plt or .init.plt sections.\n", me->name);
8671 return -ENOEXEC;
8672 }
8673
8674 @@ -188,11 +188,16 @@ static uint32_t do_plt_call(void *location,
8675
8676 pr_debug("Doing plt for call to 0x%x at 0x%x\n", val, (unsigned int)location);
8677 /* Init, or core PLT? */
8678 - if (location >= mod->module_core
8679 - && location < mod->module_core + mod->core_size)
8680 + if ((location >= mod->module_core_rx && location < mod->module_core_rx + mod->core_size_rx) ||
8681 + (location >= mod->module_core_rw && location < mod->module_core_rw + mod->core_size_rw))
8682 entry = (void *)sechdrs[mod->arch.core_plt_section].sh_addr;
8683 - else
8684 + else if ((location >= mod->module_init_rx && location < mod->module_init_rx + mod->init_size_rx) ||
8685 + (location >= mod->module_init_rw && location < mod->module_init_rw + mod->init_size_rw))
8686 entry = (void *)sechdrs[mod->arch.init_plt_section].sh_addr;
8687 + else {
8688 + printk(KERN_ERR "%s: invalid R_PPC_REL24 entry found\n", mod->name);
8689 + return ~0UL;
8690 + }
8691
8692 /* Find this entry, or if that fails, the next avail. entry */
8693 while (entry->jump[0]) {
8694 @@ -296,7 +301,7 @@ int apply_relocate_add(Elf32_Shdr *sechdrs,
8695 }
8696 #ifdef CONFIG_DYNAMIC_FTRACE
8697 module->arch.tramp =
8698 - do_plt_call(module->module_core,
8699 + do_plt_call(module->module_core_rx,
8700 (unsigned long)ftrace_caller,
8701 sechdrs, module);
8702 #endif
8703 diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
8704 index ef2ad2d..645e131 100644
8705 --- a/arch/powerpc/kernel/process.c
8706 +++ b/arch/powerpc/kernel/process.c
8707 @@ -1069,8 +1069,8 @@ void show_regs(struct pt_regs * regs)
8708 * Lookup NIP late so we have the best change of getting the
8709 * above info out without failing
8710 */
8711 - printk("NIP ["REG"] %pS\n", regs->nip, (void *)regs->nip);
8712 - printk("LR ["REG"] %pS\n", regs->link, (void *)regs->link);
8713 + printk("NIP ["REG"] %pA\n", regs->nip, (void *)regs->nip);
8714 + printk("LR ["REG"] %pA\n", regs->link, (void *)regs->link);
8715 #endif
8716 show_stack(current, (unsigned long *) regs->gpr[1]);
8717 if (!user_mode(regs))
8718 @@ -1586,10 +1586,10 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
8719 newsp = stack[0];
8720 ip = stack[STACK_FRAME_LR_SAVE];
8721 if (!firstframe || ip != lr) {
8722 - printk("["REG"] ["REG"] %pS", sp, ip, (void *)ip);
8723 + printk("["REG"] ["REG"] %pA", sp, ip, (void *)ip);
8724 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
8725 if ((ip == rth) && curr_frame >= 0) {
8726 - printk(" (%pS)",
8727 + printk(" (%pA)",
8728 (void *)current->ret_stack[curr_frame].ret);
8729 curr_frame--;
8730 }
8731 @@ -1609,7 +1609,7 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
8732 struct pt_regs *regs = (struct pt_regs *)
8733 (sp + STACK_FRAME_OVERHEAD);
8734 lr = regs->link;
8735 - printk("--- interrupt: %lx at %pS\n LR = %pS\n",
8736 + printk("--- interrupt: %lx at %pA\n LR = %pA\n",
8737 regs->trap, (void *)regs->nip, (void *)lr);
8738 firstframe = 1;
8739 }
8740 @@ -1645,49 +1645,3 @@ void notrace __ppc64_runlatch_off(void)
8741 mtspr(SPRN_CTRLT, ctrl);
8742 }
8743 #endif /* CONFIG_PPC64 */
8744 -
8745 -unsigned long arch_align_stack(unsigned long sp)
8746 -{
8747 - if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
8748 - sp -= get_random_int() & ~PAGE_MASK;
8749 - return sp & ~0xf;
8750 -}
8751 -
8752 -static inline unsigned long brk_rnd(void)
8753 -{
8754 - unsigned long rnd = 0;
8755 -
8756 - /* 8MB for 32bit, 1GB for 64bit */
8757 - if (is_32bit_task())
8758 - rnd = (long)(get_random_int() % (1<<(23-PAGE_SHIFT)));
8759 - else
8760 - rnd = (long)(get_random_int() % (1<<(30-PAGE_SHIFT)));
8761 -
8762 - return rnd << PAGE_SHIFT;
8763 -}
8764 -
8765 -unsigned long arch_randomize_brk(struct mm_struct *mm)
8766 -{
8767 - unsigned long base = mm->brk;
8768 - unsigned long ret;
8769 -
8770 -#ifdef CONFIG_PPC_STD_MMU_64
8771 - /*
8772 - * If we are using 1TB segments and we are allowed to randomise
8773 - * the heap, we can put it above 1TB so it is backed by a 1TB
8774 - * segment. Otherwise the heap will be in the bottom 1TB
8775 - * which always uses 256MB segments and this may result in a
8776 - * performance penalty.
8777 - */
8778 - if (!is_32bit_task() && (mmu_highuser_ssize == MMU_SEGSIZE_1T))
8779 - base = max_t(unsigned long, mm->brk, 1UL << SID_SHIFT_1T);
8780 -#endif
8781 -
8782 - ret = PAGE_ALIGN(base + brk_rnd());
8783 -
8784 - if (ret < mm->brk)
8785 - return mm->brk;
8786 -
8787 - return ret;
8788 -}
8789 -
8790 diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
8791 index 737c0d0..59c7417 100644
8792 --- a/arch/powerpc/kernel/ptrace.c
8793 +++ b/arch/powerpc/kernel/ptrace.c
8794 @@ -1800,6 +1800,10 @@ static int do_seccomp(struct pt_regs *regs)
8795 static inline int do_seccomp(struct pt_regs *regs) { return 0; }
8796 #endif /* CONFIG_SECCOMP */
8797
8798 +#ifdef CONFIG_GRKERNSEC_SETXID
8799 +extern void gr_delayed_cred_worker(void);
8800 +#endif
8801 +
8802 /**
8803 * do_syscall_trace_enter() - Do syscall tracing on kernel entry.
8804 * @regs: the pt_regs of the task to trace (current)
8805 @@ -1828,6 +1832,11 @@ long do_syscall_trace_enter(struct pt_regs *regs)
8806 if (do_seccomp(regs))
8807 return -1;
8808
8809 +#ifdef CONFIG_GRKERNSEC_SETXID
8810 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
8811 + gr_delayed_cred_worker();
8812 +#endif
8813 +
8814 if (test_thread_flag(TIF_SYSCALL_TRACE)) {
8815 /*
8816 * The tracer may decide to abort the syscall, if so tracehook
8817 @@ -1870,6 +1879,11 @@ void do_syscall_trace_leave(struct pt_regs *regs)
8818 {
8819 int step;
8820
8821 +#ifdef CONFIG_GRKERNSEC_SETXID
8822 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
8823 + gr_delayed_cred_worker();
8824 +#endif
8825 +
8826 audit_syscall_exit(regs);
8827
8828 if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
8829 diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
8830 index ef7c24e..755a485 100644
8831 --- a/arch/powerpc/kernel/signal_32.c
8832 +++ b/arch/powerpc/kernel/signal_32.c
8833 @@ -1018,7 +1018,7 @@ int handle_rt_signal32(struct ksignal *ksig, sigset_t *oldset,
8834 /* Save user registers on the stack */
8835 frame = &rt_sf->uc.uc_mcontext;
8836 addr = frame;
8837 - if (vdso32_rt_sigtramp && current->mm->context.vdso_base) {
8838 + if (vdso32_rt_sigtramp && current->mm->context.vdso_base != ~0UL) {
8839 sigret = 0;
8840 tramp = current->mm->context.vdso_base + vdso32_rt_sigtramp;
8841 } else {
8842 diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal_64.c
8843 index c676ece..188c057 100644
8844 --- a/arch/powerpc/kernel/signal_64.c
8845 +++ b/arch/powerpc/kernel/signal_64.c
8846 @@ -769,7 +769,7 @@ int handle_rt_signal64(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs
8847 current->thread.fp_state.fpscr = 0;
8848
8849 /* Set up to return from userspace. */
8850 - if (vdso64_rt_sigtramp && current->mm->context.vdso_base) {
8851 + if (vdso64_rt_sigtramp && current->mm->context.vdso_base != ~0UL) {
8852 regs->link = current->mm->context.vdso_base + vdso64_rt_sigtramp;
8853 } else {
8854 err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[0]);
8855 diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
8856 index 37de90f..12472ac 100644
8857 --- a/arch/powerpc/kernel/traps.c
8858 +++ b/arch/powerpc/kernel/traps.c
8859 @@ -36,6 +36,7 @@
8860 #include <linux/debugfs.h>
8861 #include <linux/ratelimit.h>
8862 #include <linux/context_tracking.h>
8863 +#include <linux/uaccess.h>
8864
8865 #include <asm/emulated_ops.h>
8866 #include <asm/pgtable.h>
8867 @@ -142,6 +143,8 @@ static unsigned __kprobes long oops_begin(struct pt_regs *regs)
8868 return flags;
8869 }
8870
8871 +extern void gr_handle_kernel_exploit(void);
8872 +
8873 static void __kprobes oops_end(unsigned long flags, struct pt_regs *regs,
8874 int signr)
8875 {
8876 @@ -191,6 +194,9 @@ static void __kprobes oops_end(unsigned long flags, struct pt_regs *regs,
8877 panic("Fatal exception in interrupt");
8878 if (panic_on_oops)
8879 panic("Fatal exception");
8880 +
8881 + gr_handle_kernel_exploit();
8882 +
8883 do_exit(signr);
8884 }
8885
8886 @@ -1139,6 +1145,26 @@ void __kprobes program_check_exception(struct pt_regs *regs)
8887 enum ctx_state prev_state = exception_enter();
8888 unsigned int reason = get_reason(regs);
8889
8890 +#ifdef CONFIG_PAX_REFCOUNT
8891 + unsigned int bkpt;
8892 + const struct exception_table_entry *entry;
8893 +
8894 + if (reason & REASON_ILLEGAL) {
8895 + /* Check if PaX bad instruction */
8896 + if (!probe_kernel_address(regs->nip, bkpt) && bkpt == 0xc00b00) {
8897 + current->thread.trap_nr = 0;
8898 + pax_report_refcount_overflow(regs);
8899 + /* fixup_exception() for PowerPC does not exist, simulate its job */
8900 + if ((entry = search_exception_tables(regs->nip)) != NULL) {
8901 + regs->nip = entry->fixup;
8902 + return;
8903 + }
8904 + /* fixup_exception() could not handle */
8905 + goto bail;
8906 + }
8907 + }
8908 +#endif
8909 +
8910 /* We can now get here via a FP Unavailable exception if the core
8911 * has no FPU, in that case the reason flags will be 0 */
8912
8913 diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c
8914 index b457bfa..9018cde 100644
8915 --- a/arch/powerpc/kernel/vdso.c
8916 +++ b/arch/powerpc/kernel/vdso.c
8917 @@ -34,6 +34,7 @@
8918 #include <asm/vdso.h>
8919 #include <asm/vdso_datapage.h>
8920 #include <asm/setup.h>
8921 +#include <asm/mman.h>
8922
8923 #undef DEBUG
8924
8925 @@ -179,7 +180,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
8926 vdso_base = VDSO32_MBASE;
8927 #endif
8928
8929 - current->mm->context.vdso_base = 0;
8930 + current->mm->context.vdso_base = ~0UL;
8931
8932 /* vDSO has a problem and was disabled, just don't "enable" it for the
8933 * process
8934 @@ -199,7 +200,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
8935 vdso_base = get_unmapped_area(NULL, vdso_base,
8936 (vdso_pages << PAGE_SHIFT) +
8937 ((VDSO_ALIGNMENT - 1) & PAGE_MASK),
8938 - 0, 0);
8939 + 0, MAP_PRIVATE | MAP_EXECUTABLE);
8940 if (IS_ERR_VALUE(vdso_base)) {
8941 rc = vdso_base;
8942 goto fail_mmapsem;
8943 diff --git a/arch/powerpc/lib/usercopy_64.c b/arch/powerpc/lib/usercopy_64.c
8944 index 5eea6f3..5d10396 100644
8945 --- a/arch/powerpc/lib/usercopy_64.c
8946 +++ b/arch/powerpc/lib/usercopy_64.c
8947 @@ -9,22 +9,6 @@
8948 #include <linux/module.h>
8949 #include <asm/uaccess.h>
8950
8951 -unsigned long copy_from_user(void *to, const void __user *from, unsigned long n)
8952 -{
8953 - if (likely(access_ok(VERIFY_READ, from, n)))
8954 - n = __copy_from_user(to, from, n);
8955 - else
8956 - memset(to, 0, n);
8957 - return n;
8958 -}
8959 -
8960 -unsigned long copy_to_user(void __user *to, const void *from, unsigned long n)
8961 -{
8962 - if (likely(access_ok(VERIFY_WRITE, to, n)))
8963 - n = __copy_to_user(to, from, n);
8964 - return n;
8965 -}
8966 -
8967 unsigned long copy_in_user(void __user *to, const void __user *from,
8968 unsigned long n)
8969 {
8970 @@ -35,7 +19,5 @@ unsigned long copy_in_user(void __user *to, const void __user *from,
8971 return n;
8972 }
8973
8974 -EXPORT_SYMBOL(copy_from_user);
8975 -EXPORT_SYMBOL(copy_to_user);
8976 EXPORT_SYMBOL(copy_in_user);
8977
8978 diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
8979 index a67c6d7..a662e6d 100644
8980 --- a/arch/powerpc/mm/fault.c
8981 +++ b/arch/powerpc/mm/fault.c
8982 @@ -34,6 +34,10 @@
8983 #include <linux/context_tracking.h>
8984 #include <linux/hugetlb.h>
8985 #include <linux/uaccess.h>
8986 +#include <linux/slab.h>
8987 +#include <linux/pagemap.h>
8988 +#include <linux/compiler.h>
8989 +#include <linux/unistd.h>
8990
8991 #include <asm/firmware.h>
8992 #include <asm/page.h>
8993 @@ -68,6 +72,33 @@ static inline int notify_page_fault(struct pt_regs *regs)
8994 }
8995 #endif
8996
8997 +#ifdef CONFIG_PAX_PAGEEXEC
8998 +/*
8999 + * PaX: decide what to do with offenders (regs->nip = fault address)
9000 + *
9001 + * returns 1 when task should be killed
9002 + */
9003 +static int pax_handle_fetch_fault(struct pt_regs *regs)
9004 +{
9005 + return 1;
9006 +}
9007 +
9008 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
9009 +{
9010 + unsigned long i;
9011 +
9012 + printk(KERN_ERR "PAX: bytes at PC: ");
9013 + for (i = 0; i < 5; i++) {
9014 + unsigned int c;
9015 + if (get_user(c, (unsigned int __user *)pc+i))
9016 + printk(KERN_CONT "???????? ");
9017 + else
9018 + printk(KERN_CONT "%08x ", c);
9019 + }
9020 + printk("\n");
9021 +}
9022 +#endif
9023 +
9024 /*
9025 * Check whether the instruction at regs->nip is a store using
9026 * an update addressing form which will update r1.
9027 @@ -227,7 +258,7 @@ int __kprobes do_page_fault(struct pt_regs *regs, unsigned long address,
9028 * indicate errors in DSISR but can validly be set in SRR1.
9029 */
9030 if (trap == 0x400)
9031 - error_code &= 0x48200000;
9032 + error_code &= 0x58200000;
9033 else
9034 is_write = error_code & DSISR_ISSTORE;
9035 #else
9036 @@ -384,12 +415,16 @@ good_area:
9037 * "undefined". Of those that can be set, this is the only
9038 * one which seems bad.
9039 */
9040 - if (error_code & 0x10000000)
9041 + if (error_code & DSISR_GUARDED)
9042 /* Guarded storage error. */
9043 goto bad_area;
9044 #endif /* CONFIG_8xx */
9045
9046 if (is_exec) {
9047 +#ifdef CONFIG_PPC_STD_MMU
9048 + if (error_code & DSISR_GUARDED)
9049 + goto bad_area;
9050 +#endif
9051 /*
9052 * Allow execution from readable areas if the MMU does not
9053 * provide separate controls over reading and executing.
9054 @@ -484,6 +519,23 @@ bad_area:
9055 bad_area_nosemaphore:
9056 /* User mode accesses cause a SIGSEGV */
9057 if (user_mode(regs)) {
9058 +
9059 +#ifdef CONFIG_PAX_PAGEEXEC
9060 + if (mm->pax_flags & MF_PAX_PAGEEXEC) {
9061 +#ifdef CONFIG_PPC_STD_MMU
9062 + if (is_exec && (error_code & (DSISR_PROTFAULT | DSISR_GUARDED))) {
9063 +#else
9064 + if (is_exec && regs->nip == address) {
9065 +#endif
9066 + switch (pax_handle_fetch_fault(regs)) {
9067 + }
9068 +
9069 + pax_report_fault(regs, (void *)regs->nip, (void *)regs->gpr[PT_R1]);
9070 + do_group_exit(SIGKILL);
9071 + }
9072 + }
9073 +#endif
9074 +
9075 _exception(SIGSEGV, regs, code, address);
9076 goto bail;
9077 }
9078 diff --git a/arch/powerpc/mm/mmap.c b/arch/powerpc/mm/mmap.c
9079 index 0f0502e..bc3e7a3 100644
9080 --- a/arch/powerpc/mm/mmap.c
9081 +++ b/arch/powerpc/mm/mmap.c
9082 @@ -86,6 +86,10 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
9083 {
9084 unsigned long random_factor = 0UL;
9085
9086 +#ifdef CONFIG_PAX_RANDMMAP
9087 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
9088 +#endif
9089 +
9090 if (current->flags & PF_RANDOMIZE)
9091 random_factor = arch_mmap_rnd();
9092
9093 @@ -95,9 +99,21 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
9094 */
9095 if (mmap_is_legacy()) {
9096 mm->mmap_base = TASK_UNMAPPED_BASE;
9097 +
9098 +#ifdef CONFIG_PAX_RANDMMAP
9099 + if (mm->pax_flags & MF_PAX_RANDMMAP)
9100 + mm->mmap_base += mm->delta_mmap;
9101 +#endif
9102 +
9103 mm->get_unmapped_area = arch_get_unmapped_area;
9104 } else {
9105 mm->mmap_base = mmap_base(random_factor);
9106 +
9107 +#ifdef CONFIG_PAX_RANDMMAP
9108 + if (mm->pax_flags & MF_PAX_RANDMMAP)
9109 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
9110 +#endif
9111 +
9112 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
9113 }
9114 }
9115 diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c
9116 index 0f432a7..abfe841 100644
9117 --- a/arch/powerpc/mm/slice.c
9118 +++ b/arch/powerpc/mm/slice.c
9119 @@ -105,7 +105,7 @@ static int slice_area_is_free(struct mm_struct *mm, unsigned long addr,
9120 if ((mm->task_size - len) < addr)
9121 return 0;
9122 vma = find_vma(mm, addr);
9123 - return (!vma || (addr + len) <= vma->vm_start);
9124 + return check_heap_stack_gap(vma, addr, len, 0);
9125 }
9126
9127 static int slice_low_has_vma(struct mm_struct *mm, unsigned long slice)
9128 @@ -277,6 +277,12 @@ static unsigned long slice_find_area_bottomup(struct mm_struct *mm,
9129 info.align_offset = 0;
9130
9131 addr = TASK_UNMAPPED_BASE;
9132 +
9133 +#ifdef CONFIG_PAX_RANDMMAP
9134 + if (mm->pax_flags & MF_PAX_RANDMMAP)
9135 + addr += mm->delta_mmap;
9136 +#endif
9137 +
9138 while (addr < TASK_SIZE) {
9139 info.low_limit = addr;
9140 if (!slice_scan_available(addr, available, 1, &addr))
9141 @@ -410,6 +416,11 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len,
9142 if (fixed && addr > (mm->task_size - len))
9143 return -ENOMEM;
9144
9145 +#ifdef CONFIG_PAX_RANDMMAP
9146 + if (!fixed && (mm->pax_flags & MF_PAX_RANDMMAP))
9147 + addr = 0;
9148 +#endif
9149 +
9150 /* If hint, make sure it matches our alignment restrictions */
9151 if (!fixed && addr) {
9152 addr = _ALIGN_UP(addr, 1ul << pshift);
9153 diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c
9154 index 5038fd5..87a2033 100644
9155 --- a/arch/powerpc/platforms/cell/spufs/file.c
9156 +++ b/arch/powerpc/platforms/cell/spufs/file.c
9157 @@ -263,9 +263,9 @@ spufs_mem_mmap_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
9158 return VM_FAULT_NOPAGE;
9159 }
9160
9161 -static int spufs_mem_mmap_access(struct vm_area_struct *vma,
9162 +static ssize_t spufs_mem_mmap_access(struct vm_area_struct *vma,
9163 unsigned long address,
9164 - void *buf, int len, int write)
9165 + void *buf, size_t len, int write)
9166 {
9167 struct spu_context *ctx = vma->vm_file->private_data;
9168 unsigned long offset = address - vma->vm_start;
9169 diff --git a/arch/s390/Kconfig.debug b/arch/s390/Kconfig.debug
9170 index c56878e..073d04e 100644
9171 --- a/arch/s390/Kconfig.debug
9172 +++ b/arch/s390/Kconfig.debug
9173 @@ -21,6 +21,7 @@ config S390_PTDUMP
9174 bool "Export kernel pagetable layout to userspace via debugfs"
9175 depends on DEBUG_KERNEL
9176 select DEBUG_FS
9177 + depends on !GRKERNSEC_KMEM
9178 ---help---
9179 Say Y here if you want to show the kernel pagetable layout in a
9180 debugfs file. This information is only useful for kernel developers
9181 diff --git a/arch/s390/include/asm/atomic.h b/arch/s390/include/asm/atomic.h
9182 index 911064a..dcbb025 100644
9183 --- a/arch/s390/include/asm/atomic.h
9184 +++ b/arch/s390/include/asm/atomic.h
9185 @@ -322,4 +322,14 @@ static inline long long atomic64_dec_if_positive(atomic64_t *v)
9186 #define atomic64_dec_and_test(_v) (atomic64_sub_return(1, _v) == 0)
9187 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
9188
9189 +#define atomic64_read_unchecked(v) atomic64_read(v)
9190 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
9191 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
9192 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
9193 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
9194 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
9195 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
9196 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
9197 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
9198 +
9199 #endif /* __ARCH_S390_ATOMIC__ */
9200 diff --git a/arch/s390/include/asm/cache.h b/arch/s390/include/asm/cache.h
9201 index 4d7ccac..d03d0ad 100644
9202 --- a/arch/s390/include/asm/cache.h
9203 +++ b/arch/s390/include/asm/cache.h
9204 @@ -9,8 +9,10 @@
9205 #ifndef __ARCH_S390_CACHE_H
9206 #define __ARCH_S390_CACHE_H
9207
9208 -#define L1_CACHE_BYTES 256
9209 +#include <linux/const.h>
9210 +
9211 #define L1_CACHE_SHIFT 8
9212 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
9213 #define NET_SKB_PAD 32
9214
9215 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
9216 diff --git a/arch/s390/include/asm/elf.h b/arch/s390/include/asm/elf.h
9217 index bab6739..f0d5493 100644
9218 --- a/arch/s390/include/asm/elf.h
9219 +++ b/arch/s390/include/asm/elf.h
9220 @@ -163,6 +163,13 @@ extern unsigned int vdso_enabled;
9221 (STACK_TOP / 3 * 2) : \
9222 (STACK_TOP / 3 * 2) & ~((1UL << 32) - 1))
9223
9224 +#ifdef CONFIG_PAX_ASLR
9225 +#define PAX_ELF_ET_DYN_BASE (test_thread_flag(TIF_31BIT) ? 0x10000UL : 0x80000000UL)
9226 +
9227 +#define PAX_DELTA_MMAP_LEN (test_thread_flag(TIF_31BIT) ? 15 : 26)
9228 +#define PAX_DELTA_STACK_LEN (test_thread_flag(TIF_31BIT) ? 15 : 26)
9229 +#endif
9230 +
9231 /* This yields a mask that user programs can use to figure out what
9232 instruction set this CPU supports. */
9233
9234 diff --git a/arch/s390/include/asm/exec.h b/arch/s390/include/asm/exec.h
9235 index c4a93d6..4d2a9b4 100644
9236 --- a/arch/s390/include/asm/exec.h
9237 +++ b/arch/s390/include/asm/exec.h
9238 @@ -7,6 +7,6 @@
9239 #ifndef __ASM_EXEC_H
9240 #define __ASM_EXEC_H
9241
9242 -extern unsigned long arch_align_stack(unsigned long sp);
9243 +#define arch_align_stack(x) ((x) & ~0xfUL)
9244
9245 #endif /* __ASM_EXEC_H */
9246 diff --git a/arch/s390/include/asm/uaccess.h b/arch/s390/include/asm/uaccess.h
9247 index 9dd4cc4..36f4b84 100644
9248 --- a/arch/s390/include/asm/uaccess.h
9249 +++ b/arch/s390/include/asm/uaccess.h
9250 @@ -59,6 +59,7 @@ static inline int __range_ok(unsigned long addr, unsigned long size)
9251 __range_ok((unsigned long)(addr), (size)); \
9252 })
9253
9254 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
9255 #define access_ok(type, addr, size) __access_ok(addr, size)
9256
9257 /*
9258 @@ -278,6 +279,10 @@ static inline unsigned long __must_check
9259 copy_to_user(void __user *to, const void *from, unsigned long n)
9260 {
9261 might_fault();
9262 +
9263 + if ((long)n < 0)
9264 + return n;
9265 +
9266 return __copy_to_user(to, from, n);
9267 }
9268
9269 @@ -307,10 +312,14 @@ __compiletime_warning("copy_from_user() buffer size is not provably correct")
9270 static inline unsigned long __must_check
9271 copy_from_user(void *to, const void __user *from, unsigned long n)
9272 {
9273 - unsigned int sz = __compiletime_object_size(to);
9274 + size_t sz = __compiletime_object_size(to);
9275
9276 might_fault();
9277 - if (unlikely(sz != -1 && sz < n)) {
9278 +
9279 + if ((long)n < 0)
9280 + return n;
9281 +
9282 + if (unlikely(sz != (size_t)-1 && sz < n)) {
9283 copy_from_user_overflow();
9284 return n;
9285 }
9286 diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c
9287 index 0c1a679..e1df357 100644
9288 --- a/arch/s390/kernel/module.c
9289 +++ b/arch/s390/kernel/module.c
9290 @@ -159,11 +159,11 @@ int module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs,
9291
9292 /* Increase core size by size of got & plt and set start
9293 offsets for got and plt. */
9294 - me->core_size = ALIGN(me->core_size, 4);
9295 - me->arch.got_offset = me->core_size;
9296 - me->core_size += me->arch.got_size;
9297 - me->arch.plt_offset = me->core_size;
9298 - me->core_size += me->arch.plt_size;
9299 + me->core_size_rw = ALIGN(me->core_size_rw, 4);
9300 + me->arch.got_offset = me->core_size_rw;
9301 + me->core_size_rw += me->arch.got_size;
9302 + me->arch.plt_offset = me->core_size_rx;
9303 + me->core_size_rx += me->arch.plt_size;
9304 return 0;
9305 }
9306
9307 @@ -279,7 +279,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9308 if (info->got_initialized == 0) {
9309 Elf_Addr *gotent;
9310
9311 - gotent = me->module_core + me->arch.got_offset +
9312 + gotent = me->module_core_rw + me->arch.got_offset +
9313 info->got_offset;
9314 *gotent = val;
9315 info->got_initialized = 1;
9316 @@ -302,7 +302,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9317 rc = apply_rela_bits(loc, val, 0, 64, 0);
9318 else if (r_type == R_390_GOTENT ||
9319 r_type == R_390_GOTPLTENT) {
9320 - val += (Elf_Addr) me->module_core - loc;
9321 + val += (Elf_Addr) me->module_core_rw - loc;
9322 rc = apply_rela_bits(loc, val, 1, 32, 1);
9323 }
9324 break;
9325 @@ -315,7 +315,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9326 case R_390_PLTOFF64: /* 16 bit offset from GOT to PLT. */
9327 if (info->plt_initialized == 0) {
9328 unsigned int *ip;
9329 - ip = me->module_core + me->arch.plt_offset +
9330 + ip = me->module_core_rx + me->arch.plt_offset +
9331 info->plt_offset;
9332 ip[0] = 0x0d10e310; /* basr 1,0; lg 1,10(1); br 1 */
9333 ip[1] = 0x100a0004;
9334 @@ -334,7 +334,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9335 val - loc + 0xffffUL < 0x1ffffeUL) ||
9336 (r_type == R_390_PLT32DBL &&
9337 val - loc + 0xffffffffULL < 0x1fffffffeULL)))
9338 - val = (Elf_Addr) me->module_core +
9339 + val = (Elf_Addr) me->module_core_rx +
9340 me->arch.plt_offset +
9341 info->plt_offset;
9342 val += rela->r_addend - loc;
9343 @@ -356,7 +356,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9344 case R_390_GOTOFF32: /* 32 bit offset to GOT. */
9345 case R_390_GOTOFF64: /* 64 bit offset to GOT. */
9346 val = val + rela->r_addend -
9347 - ((Elf_Addr) me->module_core + me->arch.got_offset);
9348 + ((Elf_Addr) me->module_core_rw + me->arch.got_offset);
9349 if (r_type == R_390_GOTOFF16)
9350 rc = apply_rela_bits(loc, val, 0, 16, 0);
9351 else if (r_type == R_390_GOTOFF32)
9352 @@ -366,7 +366,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9353 break;
9354 case R_390_GOTPC: /* 32 bit PC relative offset to GOT. */
9355 case R_390_GOTPCDBL: /* 32 bit PC rel. off. to GOT shifted by 1. */
9356 - val = (Elf_Addr) me->module_core + me->arch.got_offset +
9357 + val = (Elf_Addr) me->module_core_rw + me->arch.got_offset +
9358 rela->r_addend - loc;
9359 if (r_type == R_390_GOTPC)
9360 rc = apply_rela_bits(loc, val, 1, 32, 0);
9361 diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
9362 index 114ee8b..7d1123f 100644
9363 --- a/arch/s390/kernel/process.c
9364 +++ b/arch/s390/kernel/process.c
9365 @@ -233,23 +233,3 @@ unsigned long get_wchan(struct task_struct *p)
9366 }
9367 return 0;
9368 }
9369 -
9370 -unsigned long arch_align_stack(unsigned long sp)
9371 -{
9372 - if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
9373 - sp -= get_random_int() & ~PAGE_MASK;
9374 - return sp & ~0xf;
9375 -}
9376 -
9377 -static inline unsigned long brk_rnd(void)
9378 -{
9379 - return (get_random_int() & BRK_RND_MASK) << PAGE_SHIFT;
9380 -}
9381 -
9382 -unsigned long arch_randomize_brk(struct mm_struct *mm)
9383 -{
9384 - unsigned long ret;
9385 -
9386 - ret = PAGE_ALIGN(mm->brk + brk_rnd());
9387 - return (ret > mm->brk) ? ret : mm->brk;
9388 -}
9389 diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c
9390 index ea01477..ff5ec44 100644
9391 --- a/arch/s390/mm/mmap.c
9392 +++ b/arch/s390/mm/mmap.c
9393 @@ -229,6 +229,10 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
9394 {
9395 unsigned long random_factor = 0UL;
9396
9397 +#ifdef CONFIG_PAX_RANDMMAP
9398 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
9399 +#endif
9400 +
9401 if (current->flags & PF_RANDOMIZE)
9402 random_factor = arch_mmap_rnd();
9403
9404 @@ -238,9 +242,21 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
9405 */
9406 if (mmap_is_legacy()) {
9407 mm->mmap_base = mmap_base_legacy(random_factor);
9408 +
9409 +#ifdef CONFIG_PAX_RANDMMAP
9410 + if (mm->pax_flags & MF_PAX_RANDMMAP)
9411 + mm->mmap_base += mm->delta_mmap;
9412 +#endif
9413 +
9414 mm->get_unmapped_area = s390_get_unmapped_area;
9415 } else {
9416 mm->mmap_base = mmap_base(random_factor);
9417 +
9418 +#ifdef CONFIG_PAX_RANDMMAP
9419 + if (mm->pax_flags & MF_PAX_RANDMMAP)
9420 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
9421 +#endif
9422 +
9423 mm->get_unmapped_area = s390_get_unmapped_area_topdown;
9424 }
9425 }
9426 diff --git a/arch/score/include/asm/cache.h b/arch/score/include/asm/cache.h
9427 index ae3d59f..f65f075 100644
9428 --- a/arch/score/include/asm/cache.h
9429 +++ b/arch/score/include/asm/cache.h
9430 @@ -1,7 +1,9 @@
9431 #ifndef _ASM_SCORE_CACHE_H
9432 #define _ASM_SCORE_CACHE_H
9433
9434 +#include <linux/const.h>
9435 +
9436 #define L1_CACHE_SHIFT 4
9437 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
9438 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
9439
9440 #endif /* _ASM_SCORE_CACHE_H */
9441 diff --git a/arch/score/include/asm/exec.h b/arch/score/include/asm/exec.h
9442 index f9f3cd5..58ff438 100644
9443 --- a/arch/score/include/asm/exec.h
9444 +++ b/arch/score/include/asm/exec.h
9445 @@ -1,6 +1,6 @@
9446 #ifndef _ASM_SCORE_EXEC_H
9447 #define _ASM_SCORE_EXEC_H
9448
9449 -extern unsigned long arch_align_stack(unsigned long sp);
9450 +#define arch_align_stack(x) (x)
9451
9452 #endif /* _ASM_SCORE_EXEC_H */
9453 diff --git a/arch/score/kernel/process.c b/arch/score/kernel/process.c
9454 index a1519ad3..e8ac1ff 100644
9455 --- a/arch/score/kernel/process.c
9456 +++ b/arch/score/kernel/process.c
9457 @@ -116,8 +116,3 @@ unsigned long get_wchan(struct task_struct *task)
9458
9459 return task_pt_regs(task)->cp0_epc;
9460 }
9461 -
9462 -unsigned long arch_align_stack(unsigned long sp)
9463 -{
9464 - return sp;
9465 -}
9466 diff --git a/arch/sh/include/asm/cache.h b/arch/sh/include/asm/cache.h
9467 index ef9e555..331bd29 100644
9468 --- a/arch/sh/include/asm/cache.h
9469 +++ b/arch/sh/include/asm/cache.h
9470 @@ -9,10 +9,11 @@
9471 #define __ASM_SH_CACHE_H
9472 #ifdef __KERNEL__
9473
9474 +#include <linux/const.h>
9475 #include <linux/init.h>
9476 #include <cpu/cache.h>
9477
9478 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
9479 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
9480
9481 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
9482
9483 diff --git a/arch/sh/mm/mmap.c b/arch/sh/mm/mmap.c
9484 index 6777177..cb5e44f 100644
9485 --- a/arch/sh/mm/mmap.c
9486 +++ b/arch/sh/mm/mmap.c
9487 @@ -36,6 +36,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
9488 struct mm_struct *mm = current->mm;
9489 struct vm_area_struct *vma;
9490 int do_colour_align;
9491 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
9492 struct vm_unmapped_area_info info;
9493
9494 if (flags & MAP_FIXED) {
9495 @@ -55,6 +56,10 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
9496 if (filp || (flags & MAP_SHARED))
9497 do_colour_align = 1;
9498
9499 +#ifdef CONFIG_PAX_RANDMMAP
9500 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
9501 +#endif
9502 +
9503 if (addr) {
9504 if (do_colour_align)
9505 addr = COLOUR_ALIGN(addr, pgoff);
9506 @@ -62,14 +67,13 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
9507 addr = PAGE_ALIGN(addr);
9508
9509 vma = find_vma(mm, addr);
9510 - if (TASK_SIZE - len >= addr &&
9511 - (!vma || addr + len <= vma->vm_start))
9512 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
9513 return addr;
9514 }
9515
9516 info.flags = 0;
9517 info.length = len;
9518 - info.low_limit = TASK_UNMAPPED_BASE;
9519 + info.low_limit = mm->mmap_base;
9520 info.high_limit = TASK_SIZE;
9521 info.align_mask = do_colour_align ? (PAGE_MASK & shm_align_mask) : 0;
9522 info.align_offset = pgoff << PAGE_SHIFT;
9523 @@ -85,6 +89,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
9524 struct mm_struct *mm = current->mm;
9525 unsigned long addr = addr0;
9526 int do_colour_align;
9527 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
9528 struct vm_unmapped_area_info info;
9529
9530 if (flags & MAP_FIXED) {
9531 @@ -104,6 +109,10 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
9532 if (filp || (flags & MAP_SHARED))
9533 do_colour_align = 1;
9534
9535 +#ifdef CONFIG_PAX_RANDMMAP
9536 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
9537 +#endif
9538 +
9539 /* requesting a specific address */
9540 if (addr) {
9541 if (do_colour_align)
9542 @@ -112,8 +121,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
9543 addr = PAGE_ALIGN(addr);
9544
9545 vma = find_vma(mm, addr);
9546 - if (TASK_SIZE - len >= addr &&
9547 - (!vma || addr + len <= vma->vm_start))
9548 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
9549 return addr;
9550 }
9551
9552 @@ -135,6 +143,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
9553 VM_BUG_ON(addr != -ENOMEM);
9554 info.flags = 0;
9555 info.low_limit = TASK_UNMAPPED_BASE;
9556 +
9557 +#ifdef CONFIG_PAX_RANDMMAP
9558 + if (mm->pax_flags & MF_PAX_RANDMMAP)
9559 + info.low_limit += mm->delta_mmap;
9560 +#endif
9561 +
9562 info.high_limit = TASK_SIZE;
9563 addr = vm_unmapped_area(&info);
9564 }
9565 diff --git a/arch/sparc/include/asm/atomic_64.h b/arch/sparc/include/asm/atomic_64.h
9566 index f2fbf9e..fea461e 100644
9567 --- a/arch/sparc/include/asm/atomic_64.h
9568 +++ b/arch/sparc/include/asm/atomic_64.h
9569 @@ -15,18 +15,38 @@
9570 #define ATOMIC64_INIT(i) { (i) }
9571
9572 #define atomic_read(v) READ_ONCE((v)->counter)
9573 +static inline int atomic_read_unchecked(const atomic_unchecked_t *v)
9574 +{
9575 + return READ_ONCE(v->counter);
9576 +}
9577 #define atomic64_read(v) READ_ONCE((v)->counter)
9578 +static inline long atomic64_read_unchecked(const atomic64_unchecked_t *v)
9579 +{
9580 + return READ_ONCE(v->counter);
9581 +}
9582
9583 #define atomic_set(v, i) WRITE_ONCE(((v)->counter), (i))
9584 +static inline void atomic_set_unchecked(atomic_unchecked_t *v, int i)
9585 +{
9586 + WRITE_ONCE(v->counter, i);
9587 +}
9588 #define atomic64_set(v, i) WRITE_ONCE(((v)->counter), (i))
9589 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long i)
9590 +{
9591 + WRITE_ONCE(v->counter, i);
9592 +}
9593
9594 -#define ATOMIC_OP(op) \
9595 -void atomic_##op(int, atomic_t *); \
9596 -void atomic64_##op(long, atomic64_t *);
9597 +#define __ATOMIC_OP(op, suffix) \
9598 +void atomic_##op##suffix(int, atomic##suffix##_t *); \
9599 +void atomic64_##op##suffix(long, atomic64##suffix##_t *);
9600
9601 -#define ATOMIC_OP_RETURN(op) \
9602 -int atomic_##op##_return(int, atomic_t *); \
9603 -long atomic64_##op##_return(long, atomic64_t *);
9604 +#define ATOMIC_OP(op) __ATOMIC_OP(op, ) __ATOMIC_OP(op, _unchecked)
9605 +
9606 +#define __ATOMIC_OP_RETURN(op, suffix) \
9607 +int atomic_##op##_return##suffix(int, atomic##suffix##_t *); \
9608 +long atomic64_##op##_return##suffix(long, atomic64##suffix##_t *);
9609 +
9610 +#define ATOMIC_OP_RETURN(op) __ATOMIC_OP_RETURN(op, ) __ATOMIC_OP_RETURN(op, _unchecked)
9611
9612 #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_OP_RETURN(op)
9613
9614 @@ -39,13 +59,23 @@ ATOMIC_OP(xor)
9615
9616 #undef ATOMIC_OPS
9617 #undef ATOMIC_OP_RETURN
9618 +#undef __ATOMIC_OP_RETURN
9619 #undef ATOMIC_OP
9620 +#undef __ATOMIC_OP
9621
9622 #define atomic_dec_return(v) atomic_sub_return(1, v)
9623 #define atomic64_dec_return(v) atomic64_sub_return(1, v)
9624
9625 #define atomic_inc_return(v) atomic_add_return(1, v)
9626 +static inline int atomic_inc_return_unchecked(atomic_unchecked_t *v)
9627 +{
9628 + return atomic_add_return_unchecked(1, v);
9629 +}
9630 #define atomic64_inc_return(v) atomic64_add_return(1, v)
9631 +static inline long atomic64_inc_return_unchecked(atomic64_unchecked_t *v)
9632 +{
9633 + return atomic64_add_return_unchecked(1, v);
9634 +}
9635
9636 /*
9637 * atomic_inc_and_test - increment and test
9638 @@ -56,6 +86,10 @@ ATOMIC_OP(xor)
9639 * other cases.
9640 */
9641 #define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
9642 +static inline int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
9643 +{
9644 + return atomic_inc_return_unchecked(v) == 0;
9645 +}
9646 #define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0)
9647
9648 #define atomic_sub_and_test(i, v) (atomic_sub_return(i, v) == 0)
9649 @@ -65,25 +99,60 @@ ATOMIC_OP(xor)
9650 #define atomic64_dec_and_test(v) (atomic64_sub_return(1, v) == 0)
9651
9652 #define atomic_inc(v) atomic_add(1, v)
9653 +static inline void atomic_inc_unchecked(atomic_unchecked_t *v)
9654 +{
9655 + atomic_add_unchecked(1, v);
9656 +}
9657 #define atomic64_inc(v) atomic64_add(1, v)
9658 +static inline void atomic64_inc_unchecked(atomic64_unchecked_t *v)
9659 +{
9660 + atomic64_add_unchecked(1, v);
9661 +}
9662
9663 #define atomic_dec(v) atomic_sub(1, v)
9664 +static inline void atomic_dec_unchecked(atomic_unchecked_t *v)
9665 +{
9666 + atomic_sub_unchecked(1, v);
9667 +}
9668 #define atomic64_dec(v) atomic64_sub(1, v)
9669 +static inline void atomic64_dec_unchecked(atomic64_unchecked_t *v)
9670 +{
9671 + atomic64_sub_unchecked(1, v);
9672 +}
9673
9674 #define atomic_add_negative(i, v) (atomic_add_return(i, v) < 0)
9675 #define atomic64_add_negative(i, v) (atomic64_add_return(i, v) < 0)
9676
9677 #define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
9678 +static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *v, int old, int new)
9679 +{
9680 + return cmpxchg(&v->counter, old, new);
9681 +}
9682 #define atomic_xchg(v, new) (xchg(&((v)->counter), new))
9683 +static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
9684 +{
9685 + return xchg(&v->counter, new);
9686 +}
9687
9688 static inline int __atomic_add_unless(atomic_t *v, int a, int u)
9689 {
9690 - int c, old;
9691 + int c, old, new;
9692 c = atomic_read(v);
9693 for (;;) {
9694 - if (unlikely(c == (u)))
9695 + if (unlikely(c == u))
9696 break;
9697 - old = atomic_cmpxchg((v), c, c + (a));
9698 +
9699 + asm volatile("addcc %2, %0, %0\n"
9700 +
9701 +#ifdef CONFIG_PAX_REFCOUNT
9702 + "tvs %%icc, 6\n"
9703 +#endif
9704 +
9705 + : "=r" (new)
9706 + : "0" (c), "ir" (a)
9707 + : "cc");
9708 +
9709 + old = atomic_cmpxchg(v, c, new);
9710 if (likely(old == c))
9711 break;
9712 c = old;
9713 @@ -94,20 +163,35 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
9714 #define atomic64_cmpxchg(v, o, n) \
9715 ((__typeof__((v)->counter))cmpxchg(&((v)->counter), (o), (n)))
9716 #define atomic64_xchg(v, new) (xchg(&((v)->counter), new))
9717 +static inline long atomic64_xchg_unchecked(atomic64_unchecked_t *v, long new)
9718 +{
9719 + return xchg(&v->counter, new);
9720 +}
9721
9722 static inline long atomic64_add_unless(atomic64_t *v, long a, long u)
9723 {
9724 - long c, old;
9725 + long c, old, new;
9726 c = atomic64_read(v);
9727 for (;;) {
9728 - if (unlikely(c == (u)))
9729 + if (unlikely(c == u))
9730 break;
9731 - old = atomic64_cmpxchg((v), c, c + (a));
9732 +
9733 + asm volatile("addcc %2, %0, %0\n"
9734 +
9735 +#ifdef CONFIG_PAX_REFCOUNT
9736 + "tvs %%xcc, 6\n"
9737 +#endif
9738 +
9739 + : "=r" (new)
9740 + : "0" (c), "ir" (a)
9741 + : "cc");
9742 +
9743 + old = atomic64_cmpxchg(v, c, new);
9744 if (likely(old == c))
9745 break;
9746 c = old;
9747 }
9748 - return c != (u);
9749 + return c != u;
9750 }
9751
9752 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
9753 diff --git a/arch/sparc/include/asm/cache.h b/arch/sparc/include/asm/cache.h
9754 index 5bb6991..5c2132e 100644
9755 --- a/arch/sparc/include/asm/cache.h
9756 +++ b/arch/sparc/include/asm/cache.h
9757 @@ -7,10 +7,12 @@
9758 #ifndef _SPARC_CACHE_H
9759 #define _SPARC_CACHE_H
9760
9761 +#include <linux/const.h>
9762 +
9763 #define ARCH_SLAB_MINALIGN __alignof__(unsigned long long)
9764
9765 #define L1_CACHE_SHIFT 5
9766 -#define L1_CACHE_BYTES 32
9767 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
9768
9769 #ifdef CONFIG_SPARC32
9770 #define SMP_CACHE_BYTES_SHIFT 5
9771 diff --git a/arch/sparc/include/asm/elf_32.h b/arch/sparc/include/asm/elf_32.h
9772 index a24e41f..47677ff 100644
9773 --- a/arch/sparc/include/asm/elf_32.h
9774 +++ b/arch/sparc/include/asm/elf_32.h
9775 @@ -114,6 +114,13 @@ typedef struct {
9776
9777 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE)
9778
9779 +#ifdef CONFIG_PAX_ASLR
9780 +#define PAX_ELF_ET_DYN_BASE 0x10000UL
9781 +
9782 +#define PAX_DELTA_MMAP_LEN 16
9783 +#define PAX_DELTA_STACK_LEN 16
9784 +#endif
9785 +
9786 /* This yields a mask that user programs can use to figure out what
9787 instruction set this cpu supports. This can NOT be done in userspace
9788 on Sparc. */
9789 diff --git a/arch/sparc/include/asm/elf_64.h b/arch/sparc/include/asm/elf_64.h
9790 index 9331083..59c0499 100644
9791 --- a/arch/sparc/include/asm/elf_64.h
9792 +++ b/arch/sparc/include/asm/elf_64.h
9793 @@ -190,6 +190,13 @@ typedef struct {
9794 #define ELF_ET_DYN_BASE 0x0000010000000000UL
9795 #define COMPAT_ELF_ET_DYN_BASE 0x0000000070000000UL
9796
9797 +#ifdef CONFIG_PAX_ASLR
9798 +#define PAX_ELF_ET_DYN_BASE (test_thread_flag(TIF_32BIT) ? 0x10000UL : 0x100000UL)
9799 +
9800 +#define PAX_DELTA_MMAP_LEN (test_thread_flag(TIF_32BIT) ? 14 : 28)
9801 +#define PAX_DELTA_STACK_LEN (test_thread_flag(TIF_32BIT) ? 15 : 29)
9802 +#endif
9803 +
9804 extern unsigned long sparc64_elf_hwcap;
9805 #define ELF_HWCAP sparc64_elf_hwcap
9806
9807 diff --git a/arch/sparc/include/asm/pgalloc_32.h b/arch/sparc/include/asm/pgalloc_32.h
9808 index a3890da..f6a408e 100644
9809 --- a/arch/sparc/include/asm/pgalloc_32.h
9810 +++ b/arch/sparc/include/asm/pgalloc_32.h
9811 @@ -35,6 +35,7 @@ static inline void pgd_set(pgd_t * pgdp, pmd_t * pmdp)
9812 }
9813
9814 #define pgd_populate(MM, PGD, PMD) pgd_set(PGD, PMD)
9815 +#define pgd_populate_kernel(MM, PGD, PMD) pgd_populate((MM), (PGD), (PMD))
9816
9817 static inline pmd_t *pmd_alloc_one(struct mm_struct *mm,
9818 unsigned long address)
9819 diff --git a/arch/sparc/include/asm/pgalloc_64.h b/arch/sparc/include/asm/pgalloc_64.h
9820 index 5e31871..13469c6 100644
9821 --- a/arch/sparc/include/asm/pgalloc_64.h
9822 +++ b/arch/sparc/include/asm/pgalloc_64.h
9823 @@ -21,6 +21,7 @@ static inline void __pgd_populate(pgd_t *pgd, pud_t *pud)
9824 }
9825
9826 #define pgd_populate(MM, PGD, PUD) __pgd_populate(PGD, PUD)
9827 +#define pgd_populate_kernel(MM, PGD, PMD) pgd_populate((MM), (PGD), (PMD))
9828
9829 static inline pgd_t *pgd_alloc(struct mm_struct *mm)
9830 {
9831 @@ -38,6 +39,7 @@ static inline void __pud_populate(pud_t *pud, pmd_t *pmd)
9832 }
9833
9834 #define pud_populate(MM, PUD, PMD) __pud_populate(PUD, PMD)
9835 +#define pud_populate_kernel(MM, PUD, PMD) pud_populate((MM), (PUD), (PMD))
9836
9837 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
9838 {
9839 diff --git a/arch/sparc/include/asm/pgtable.h b/arch/sparc/include/asm/pgtable.h
9840 index 59ba6f6..4518128 100644
9841 --- a/arch/sparc/include/asm/pgtable.h
9842 +++ b/arch/sparc/include/asm/pgtable.h
9843 @@ -5,4 +5,8 @@
9844 #else
9845 #include <asm/pgtable_32.h>
9846 #endif
9847 +
9848 +#define ktla_ktva(addr) (addr)
9849 +#define ktva_ktla(addr) (addr)
9850 +
9851 #endif
9852 diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/pgtable_32.h
9853 index 91b963a..9a806c1 100644
9854 --- a/arch/sparc/include/asm/pgtable_32.h
9855 +++ b/arch/sparc/include/asm/pgtable_32.h
9856 @@ -51,6 +51,9 @@ unsigned long __init bootmem_init(unsigned long *pages_avail);
9857 #define PAGE_SHARED SRMMU_PAGE_SHARED
9858 #define PAGE_COPY SRMMU_PAGE_COPY
9859 #define PAGE_READONLY SRMMU_PAGE_RDONLY
9860 +#define PAGE_SHARED_NOEXEC SRMMU_PAGE_SHARED_NOEXEC
9861 +#define PAGE_COPY_NOEXEC SRMMU_PAGE_COPY_NOEXEC
9862 +#define PAGE_READONLY_NOEXEC SRMMU_PAGE_RDONLY_NOEXEC
9863 #define PAGE_KERNEL SRMMU_PAGE_KERNEL
9864
9865 /* Top-level page directory - dummy used by init-mm.
9866 @@ -63,18 +66,18 @@ extern unsigned long ptr_in_current_pgd;
9867
9868 /* xwr */
9869 #define __P000 PAGE_NONE
9870 -#define __P001 PAGE_READONLY
9871 -#define __P010 PAGE_COPY
9872 -#define __P011 PAGE_COPY
9873 +#define __P001 PAGE_READONLY_NOEXEC
9874 +#define __P010 PAGE_COPY_NOEXEC
9875 +#define __P011 PAGE_COPY_NOEXEC
9876 #define __P100 PAGE_READONLY
9877 #define __P101 PAGE_READONLY
9878 #define __P110 PAGE_COPY
9879 #define __P111 PAGE_COPY
9880
9881 #define __S000 PAGE_NONE
9882 -#define __S001 PAGE_READONLY
9883 -#define __S010 PAGE_SHARED
9884 -#define __S011 PAGE_SHARED
9885 +#define __S001 PAGE_READONLY_NOEXEC
9886 +#define __S010 PAGE_SHARED_NOEXEC
9887 +#define __S011 PAGE_SHARED_NOEXEC
9888 #define __S100 PAGE_READONLY
9889 #define __S101 PAGE_READONLY
9890 #define __S110 PAGE_SHARED
9891 diff --git a/arch/sparc/include/asm/pgtsrmmu.h b/arch/sparc/include/asm/pgtsrmmu.h
9892 index ae51a11..eadfd03 100644
9893 --- a/arch/sparc/include/asm/pgtsrmmu.h
9894 +++ b/arch/sparc/include/asm/pgtsrmmu.h
9895 @@ -111,6 +111,11 @@
9896 SRMMU_EXEC | SRMMU_REF)
9897 #define SRMMU_PAGE_RDONLY __pgprot(SRMMU_VALID | SRMMU_CACHE | \
9898 SRMMU_EXEC | SRMMU_REF)
9899 +
9900 +#define SRMMU_PAGE_SHARED_NOEXEC __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_WRITE | SRMMU_REF)
9901 +#define SRMMU_PAGE_COPY_NOEXEC __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_REF)
9902 +#define SRMMU_PAGE_RDONLY_NOEXEC __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_REF)
9903 +
9904 #define SRMMU_PAGE_KERNEL __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_PRIV | \
9905 SRMMU_DIRTY | SRMMU_REF)
9906
9907 diff --git a/arch/sparc/include/asm/setup.h b/arch/sparc/include/asm/setup.h
9908 index 29d64b1..4272fe8 100644
9909 --- a/arch/sparc/include/asm/setup.h
9910 +++ b/arch/sparc/include/asm/setup.h
9911 @@ -55,8 +55,8 @@ int handle_ldf_stq(u32 insn, struct pt_regs *regs);
9912 void handle_ld_nf(u32 insn, struct pt_regs *regs);
9913
9914 /* init_64.c */
9915 -extern atomic_t dcpage_flushes;
9916 -extern atomic_t dcpage_flushes_xcall;
9917 +extern atomic_unchecked_t dcpage_flushes;
9918 +extern atomic_unchecked_t dcpage_flushes_xcall;
9919
9920 extern int sysctl_tsb_ratio;
9921 #endif
9922 diff --git a/arch/sparc/include/asm/spinlock_64.h b/arch/sparc/include/asm/spinlock_64.h
9923 index 9689176..63c18ea 100644
9924 --- a/arch/sparc/include/asm/spinlock_64.h
9925 +++ b/arch/sparc/include/asm/spinlock_64.h
9926 @@ -92,14 +92,19 @@ static inline void arch_spin_lock_flags(arch_spinlock_t *lock, unsigned long fla
9927
9928 /* Multi-reader locks, these are much saner than the 32-bit Sparc ones... */
9929
9930 -static void inline arch_read_lock(arch_rwlock_t *lock)
9931 +static inline void arch_read_lock(arch_rwlock_t *lock)
9932 {
9933 unsigned long tmp1, tmp2;
9934
9935 __asm__ __volatile__ (
9936 "1: ldsw [%2], %0\n"
9937 " brlz,pn %0, 2f\n"
9938 -"4: add %0, 1, %1\n"
9939 +"4: addcc %0, 1, %1\n"
9940 +
9941 +#ifdef CONFIG_PAX_REFCOUNT
9942 +" tvs %%icc, 6\n"
9943 +#endif
9944 +
9945 " cas [%2], %0, %1\n"
9946 " cmp %0, %1\n"
9947 " bne,pn %%icc, 1b\n"
9948 @@ -112,10 +117,10 @@ static void inline arch_read_lock(arch_rwlock_t *lock)
9949 " .previous"
9950 : "=&r" (tmp1), "=&r" (tmp2)
9951 : "r" (lock)
9952 - : "memory");
9953 + : "memory", "cc");
9954 }
9955
9956 -static int inline arch_read_trylock(arch_rwlock_t *lock)
9957 +static inline int arch_read_trylock(arch_rwlock_t *lock)
9958 {
9959 int tmp1, tmp2;
9960
9961 @@ -123,7 +128,12 @@ static int inline arch_read_trylock(arch_rwlock_t *lock)
9962 "1: ldsw [%2], %0\n"
9963 " brlz,a,pn %0, 2f\n"
9964 " mov 0, %0\n"
9965 -" add %0, 1, %1\n"
9966 +" addcc %0, 1, %1\n"
9967 +
9968 +#ifdef CONFIG_PAX_REFCOUNT
9969 +" tvs %%icc, 6\n"
9970 +#endif
9971 +
9972 " cas [%2], %0, %1\n"
9973 " cmp %0, %1\n"
9974 " bne,pn %%icc, 1b\n"
9975 @@ -136,13 +146,18 @@ static int inline arch_read_trylock(arch_rwlock_t *lock)
9976 return tmp1;
9977 }
9978
9979 -static void inline arch_read_unlock(arch_rwlock_t *lock)
9980 +static inline void arch_read_unlock(arch_rwlock_t *lock)
9981 {
9982 unsigned long tmp1, tmp2;
9983
9984 __asm__ __volatile__(
9985 "1: lduw [%2], %0\n"
9986 -" sub %0, 1, %1\n"
9987 +" subcc %0, 1, %1\n"
9988 +
9989 +#ifdef CONFIG_PAX_REFCOUNT
9990 +" tvs %%icc, 6\n"
9991 +#endif
9992 +
9993 " cas [%2], %0, %1\n"
9994 " cmp %0, %1\n"
9995 " bne,pn %%xcc, 1b\n"
9996 @@ -152,7 +167,7 @@ static void inline arch_read_unlock(arch_rwlock_t *lock)
9997 : "memory");
9998 }
9999
10000 -static void inline arch_write_lock(arch_rwlock_t *lock)
10001 +static inline void arch_write_lock(arch_rwlock_t *lock)
10002 {
10003 unsigned long mask, tmp1, tmp2;
10004
10005 @@ -177,7 +192,7 @@ static void inline arch_write_lock(arch_rwlock_t *lock)
10006 : "memory");
10007 }
10008
10009 -static void inline arch_write_unlock(arch_rwlock_t *lock)
10010 +static inline void arch_write_unlock(arch_rwlock_t *lock)
10011 {
10012 __asm__ __volatile__(
10013 " stw %%g0, [%0]"
10014 @@ -186,7 +201,7 @@ static void inline arch_write_unlock(arch_rwlock_t *lock)
10015 : "memory");
10016 }
10017
10018 -static int inline arch_write_trylock(arch_rwlock_t *lock)
10019 +static inline int arch_write_trylock(arch_rwlock_t *lock)
10020 {
10021 unsigned long mask, tmp1, tmp2, result;
10022
10023 diff --git a/arch/sparc/include/asm/thread_info_32.h b/arch/sparc/include/asm/thread_info_32.h
10024 index 229475f..2fca9163 100644
10025 --- a/arch/sparc/include/asm/thread_info_32.h
10026 +++ b/arch/sparc/include/asm/thread_info_32.h
10027 @@ -48,6 +48,7 @@ struct thread_info {
10028 struct reg_window32 reg_window[NSWINS]; /* align for ldd! */
10029 unsigned long rwbuf_stkptrs[NSWINS];
10030 unsigned long w_saved;
10031 + unsigned long lowest_stack;
10032 };
10033
10034 /*
10035 diff --git a/arch/sparc/include/asm/thread_info_64.h b/arch/sparc/include/asm/thread_info_64.h
10036 index bde5982..9cbb56d 100644
10037 --- a/arch/sparc/include/asm/thread_info_64.h
10038 +++ b/arch/sparc/include/asm/thread_info_64.h
10039 @@ -59,6 +59,8 @@ struct thread_info {
10040 struct pt_regs *kern_una_regs;
10041 unsigned int kern_una_insn;
10042
10043 + unsigned long lowest_stack;
10044 +
10045 unsigned long fpregs[(7 * 256) / sizeof(unsigned long)]
10046 __attribute__ ((aligned(64)));
10047 };
10048 @@ -180,12 +182,13 @@ register struct thread_info *current_thread_info_reg asm("g6");
10049 #define TIF_NEED_RESCHED 3 /* rescheduling necessary */
10050 /* flag bit 4 is available */
10051 #define TIF_UNALIGNED 5 /* allowed to do unaligned accesses */
10052 -/* flag bit 6 is available */
10053 +#define TIF_GRSEC_SETXID 6 /* update credentials on syscall entry/exit */
10054 #define TIF_32BIT 7 /* 32-bit binary */
10055 #define TIF_NOHZ 8 /* in adaptive nohz mode */
10056 #define TIF_SECCOMP 9 /* secure computing */
10057 #define TIF_SYSCALL_AUDIT 10 /* syscall auditing active */
10058 #define TIF_SYSCALL_TRACEPOINT 11 /* syscall tracepoint instrumentation */
10059 +
10060 /* NOTE: Thread flags >= 12 should be ones we have no interest
10061 * in using in assembly, else we can't use the mask as
10062 * an immediate value in instructions such as andcc.
10063 @@ -205,12 +208,17 @@ register struct thread_info *current_thread_info_reg asm("g6");
10064 #define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT)
10065 #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)
10066 #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG)
10067 +#define _TIF_GRSEC_SETXID (1<<TIF_GRSEC_SETXID)
10068
10069 #define _TIF_USER_WORK_MASK ((0xff << TI_FLAG_WSAVED_SHIFT) | \
10070 _TIF_DO_NOTIFY_RESUME_MASK | \
10071 _TIF_NEED_RESCHED)
10072 #define _TIF_DO_NOTIFY_RESUME_MASK (_TIF_NOTIFY_RESUME | _TIF_SIGPENDING)
10073
10074 +#define _TIF_WORK_SYSCALL \
10075 + (_TIF_SYSCALL_TRACE | _TIF_SECCOMP | _TIF_SYSCALL_AUDIT | \
10076 + _TIF_SYSCALL_TRACEPOINT | _TIF_NOHZ | _TIF_GRSEC_SETXID)
10077 +
10078 #define is_32bit_task() (test_thread_flag(TIF_32BIT))
10079
10080 /*
10081 diff --git a/arch/sparc/include/asm/uaccess.h b/arch/sparc/include/asm/uaccess.h
10082 index bd56c28..4b63d83 100644
10083 --- a/arch/sparc/include/asm/uaccess.h
10084 +++ b/arch/sparc/include/asm/uaccess.h
10085 @@ -1,5 +1,6 @@
10086 #ifndef ___ASM_SPARC_UACCESS_H
10087 #define ___ASM_SPARC_UACCESS_H
10088 +
10089 #if defined(__sparc__) && defined(__arch64__)
10090 #include <asm/uaccess_64.h>
10091 #else
10092 diff --git a/arch/sparc/include/asm/uaccess_32.h b/arch/sparc/include/asm/uaccess_32.h
10093 index 64ee103..388aef0 100644
10094 --- a/arch/sparc/include/asm/uaccess_32.h
10095 +++ b/arch/sparc/include/asm/uaccess_32.h
10096 @@ -47,6 +47,7 @@
10097 #define __user_ok(addr, size) ({ (void)(size); (addr) < STACK_TOP; })
10098 #define __kernel_ok (segment_eq(get_fs(), KERNEL_DS))
10099 #define __access_ok(addr, size) (__user_ok((addr) & get_fs().seg, (size)))
10100 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
10101 #define access_ok(type, addr, size) \
10102 ({ (void)(type); __access_ok((unsigned long)(addr), size); })
10103
10104 @@ -313,27 +314,46 @@ unsigned long __copy_user(void __user *to, const void __user *from, unsigned lon
10105
10106 static inline unsigned long copy_to_user(void __user *to, const void *from, unsigned long n)
10107 {
10108 - if (n && __access_ok((unsigned long) to, n))
10109 + if ((long)n < 0)
10110 + return n;
10111 +
10112 + if (n && __access_ok((unsigned long) to, n)) {
10113 + if (!__builtin_constant_p(n))
10114 + check_object_size(from, n, true);
10115 return __copy_user(to, (__force void __user *) from, n);
10116 - else
10117 + } else
10118 return n;
10119 }
10120
10121 static inline unsigned long __copy_to_user(void __user *to, const void *from, unsigned long n)
10122 {
10123 + if ((long)n < 0)
10124 + return n;
10125 +
10126 + if (!__builtin_constant_p(n))
10127 + check_object_size(from, n, true);
10128 +
10129 return __copy_user(to, (__force void __user *) from, n);
10130 }
10131
10132 static inline unsigned long copy_from_user(void *to, const void __user *from, unsigned long n)
10133 {
10134 - if (n && __access_ok((unsigned long) from, n))
10135 + if ((long)n < 0)
10136 + return n;
10137 +
10138 + if (n && __access_ok((unsigned long) from, n)) {
10139 + if (!__builtin_constant_p(n))
10140 + check_object_size(to, n, false);
10141 return __copy_user((__force void __user *) to, from, n);
10142 - else
10143 + } else
10144 return n;
10145 }
10146
10147 static inline unsigned long __copy_from_user(void *to, const void __user *from, unsigned long n)
10148 {
10149 + if ((long)n < 0)
10150 + return n;
10151 +
10152 return __copy_user((__force void __user *) to, from, n);
10153 }
10154
10155 diff --git a/arch/sparc/include/asm/uaccess_64.h b/arch/sparc/include/asm/uaccess_64.h
10156 index ea6e9a2..5703598 100644
10157 --- a/arch/sparc/include/asm/uaccess_64.h
10158 +++ b/arch/sparc/include/asm/uaccess_64.h
10159 @@ -10,6 +10,7 @@
10160 #include <linux/compiler.h>
10161 #include <linux/string.h>
10162 #include <linux/thread_info.h>
10163 +#include <linux/kernel.h>
10164 #include <asm/asi.h>
10165 #include <asm/spitfire.h>
10166 #include <asm-generic/uaccess-unaligned.h>
10167 @@ -76,6 +77,11 @@ static inline int __access_ok(const void __user * addr, unsigned long size)
10168 return 1;
10169 }
10170
10171 +static inline int access_ok_noprefault(int type, const void __user * addr, unsigned long size)
10172 +{
10173 + return 1;
10174 +}
10175 +
10176 static inline int access_ok(int type, const void __user * addr, unsigned long size)
10177 {
10178 return 1;
10179 @@ -250,8 +256,15 @@ unsigned long copy_from_user_fixup(void *to, const void __user *from,
10180 static inline unsigned long __must_check
10181 copy_from_user(void *to, const void __user *from, unsigned long size)
10182 {
10183 - unsigned long ret = ___copy_from_user(to, from, size);
10184 + unsigned long ret;
10185
10186 + if ((long)size < 0 || size > INT_MAX)
10187 + return size;
10188 +
10189 + if (!__builtin_constant_p(size))
10190 + check_object_size(to, size, false);
10191 +
10192 + ret = ___copy_from_user(to, from, size);
10193 if (unlikely(ret))
10194 ret = copy_from_user_fixup(to, from, size);
10195
10196 @@ -267,8 +280,15 @@ unsigned long copy_to_user_fixup(void __user *to, const void *from,
10197 static inline unsigned long __must_check
10198 copy_to_user(void __user *to, const void *from, unsigned long size)
10199 {
10200 - unsigned long ret = ___copy_to_user(to, from, size);
10201 + unsigned long ret;
10202
10203 + if ((long)size < 0 || size > INT_MAX)
10204 + return size;
10205 +
10206 + if (!__builtin_constant_p(size))
10207 + check_object_size(from, size, true);
10208 +
10209 + ret = ___copy_to_user(to, from, size);
10210 if (unlikely(ret))
10211 ret = copy_to_user_fixup(to, from, size);
10212 return ret;
10213 diff --git a/arch/sparc/kernel/Makefile b/arch/sparc/kernel/Makefile
10214 index 7cf9c6e..6206648 100644
10215 --- a/arch/sparc/kernel/Makefile
10216 +++ b/arch/sparc/kernel/Makefile
10217 @@ -4,7 +4,7 @@
10218 #
10219
10220 asflags-y := -ansi
10221 -ccflags-y := -Werror
10222 +#ccflags-y := -Werror
10223
10224 extra-y := head_$(BITS).o
10225
10226 diff --git a/arch/sparc/kernel/process_32.c b/arch/sparc/kernel/process_32.c
10227 index c5113c7..52322e4 100644
10228 --- a/arch/sparc/kernel/process_32.c
10229 +++ b/arch/sparc/kernel/process_32.c
10230 @@ -123,14 +123,14 @@ void show_regs(struct pt_regs *r)
10231
10232 printk("PSR: %08lx PC: %08lx NPC: %08lx Y: %08lx %s\n",
10233 r->psr, r->pc, r->npc, r->y, print_tainted());
10234 - printk("PC: <%pS>\n", (void *) r->pc);
10235 + printk("PC: <%pA>\n", (void *) r->pc);
10236 printk("%%G: %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
10237 r->u_regs[0], r->u_regs[1], r->u_regs[2], r->u_regs[3],
10238 r->u_regs[4], r->u_regs[5], r->u_regs[6], r->u_regs[7]);
10239 printk("%%O: %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
10240 r->u_regs[8], r->u_regs[9], r->u_regs[10], r->u_regs[11],
10241 r->u_regs[12], r->u_regs[13], r->u_regs[14], r->u_regs[15]);
10242 - printk("RPC: <%pS>\n", (void *) r->u_regs[15]);
10243 + printk("RPC: <%pA>\n", (void *) r->u_regs[15]);
10244
10245 printk("%%L: %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
10246 rw->locals[0], rw->locals[1], rw->locals[2], rw->locals[3],
10247 @@ -167,7 +167,7 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
10248 rw = (struct reg_window32 *) fp;
10249 pc = rw->ins[7];
10250 printk("[%08lx : ", pc);
10251 - printk("%pS ] ", (void *) pc);
10252 + printk("%pA ] ", (void *) pc);
10253 fp = rw->ins[6];
10254 } while (++count < 16);
10255 printk("\n");
10256 diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c
10257 index 46a5964..a35c62c 100644
10258 --- a/arch/sparc/kernel/process_64.c
10259 +++ b/arch/sparc/kernel/process_64.c
10260 @@ -161,7 +161,7 @@ static void show_regwindow(struct pt_regs *regs)
10261 printk("i4: %016lx i5: %016lx i6: %016lx i7: %016lx\n",
10262 rwk->ins[4], rwk->ins[5], rwk->ins[6], rwk->ins[7]);
10263 if (regs->tstate & TSTATE_PRIV)
10264 - printk("I7: <%pS>\n", (void *) rwk->ins[7]);
10265 + printk("I7: <%pA>\n", (void *) rwk->ins[7]);
10266 }
10267
10268 void show_regs(struct pt_regs *regs)
10269 @@ -170,7 +170,7 @@ void show_regs(struct pt_regs *regs)
10270
10271 printk("TSTATE: %016lx TPC: %016lx TNPC: %016lx Y: %08x %s\n", regs->tstate,
10272 regs->tpc, regs->tnpc, regs->y, print_tainted());
10273 - printk("TPC: <%pS>\n", (void *) regs->tpc);
10274 + printk("TPC: <%pA>\n", (void *) regs->tpc);
10275 printk("g0: %016lx g1: %016lx g2: %016lx g3: %016lx\n",
10276 regs->u_regs[0], regs->u_regs[1], regs->u_regs[2],
10277 regs->u_regs[3]);
10278 @@ -183,7 +183,7 @@ void show_regs(struct pt_regs *regs)
10279 printk("o4: %016lx o5: %016lx sp: %016lx ret_pc: %016lx\n",
10280 regs->u_regs[12], regs->u_regs[13], regs->u_regs[14],
10281 regs->u_regs[15]);
10282 - printk("RPC: <%pS>\n", (void *) regs->u_regs[15]);
10283 + printk("RPC: <%pA>\n", (void *) regs->u_regs[15]);
10284 show_regwindow(regs);
10285 show_stack(current, (unsigned long *) regs->u_regs[UREG_FP]);
10286 }
10287 @@ -278,7 +278,7 @@ void arch_trigger_all_cpu_backtrace(bool include_self)
10288 ((tp && tp->task) ? tp->task->pid : -1));
10289
10290 if (gp->tstate & TSTATE_PRIV) {
10291 - printk(" TPC[%pS] O7[%pS] I7[%pS] RPC[%pS]\n",
10292 + printk(" TPC[%pA] O7[%pA] I7[%pA] RPC[%pA]\n",
10293 (void *) gp->tpc,
10294 (void *) gp->o7,
10295 (void *) gp->i7,
10296 diff --git a/arch/sparc/kernel/prom_common.c b/arch/sparc/kernel/prom_common.c
10297 index 79cc0d1..ec62734 100644
10298 --- a/arch/sparc/kernel/prom_common.c
10299 +++ b/arch/sparc/kernel/prom_common.c
10300 @@ -144,7 +144,7 @@ static int __init prom_common_nextprop(phandle node, char *prev, char *buf)
10301
10302 unsigned int prom_early_allocated __initdata;
10303
10304 -static struct of_pdt_ops prom_sparc_ops __initdata = {
10305 +static struct of_pdt_ops prom_sparc_ops __initconst = {
10306 .nextprop = prom_common_nextprop,
10307 .getproplen = prom_getproplen,
10308 .getproperty = prom_getproperty,
10309 diff --git a/arch/sparc/kernel/ptrace_64.c b/arch/sparc/kernel/ptrace_64.c
10310 index 9ddc492..27a5619 100644
10311 --- a/arch/sparc/kernel/ptrace_64.c
10312 +++ b/arch/sparc/kernel/ptrace_64.c
10313 @@ -1060,6 +1060,10 @@ long arch_ptrace(struct task_struct *child, long request,
10314 return ret;
10315 }
10316
10317 +#ifdef CONFIG_GRKERNSEC_SETXID
10318 +extern void gr_delayed_cred_worker(void);
10319 +#endif
10320 +
10321 asmlinkage int syscall_trace_enter(struct pt_regs *regs)
10322 {
10323 int ret = 0;
10324 @@ -1070,6 +1074,11 @@ asmlinkage int syscall_trace_enter(struct pt_regs *regs)
10325 if (test_thread_flag(TIF_NOHZ))
10326 user_exit();
10327
10328 +#ifdef CONFIG_GRKERNSEC_SETXID
10329 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
10330 + gr_delayed_cred_worker();
10331 +#endif
10332 +
10333 if (test_thread_flag(TIF_SYSCALL_TRACE))
10334 ret = tracehook_report_syscall_entry(regs);
10335
10336 @@ -1088,6 +1097,11 @@ asmlinkage void syscall_trace_leave(struct pt_regs *regs)
10337 if (test_thread_flag(TIF_NOHZ))
10338 user_exit();
10339
10340 +#ifdef CONFIG_GRKERNSEC_SETXID
10341 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
10342 + gr_delayed_cred_worker();
10343 +#endif
10344 +
10345 audit_syscall_exit(regs);
10346
10347 if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
10348 diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c
10349 index 19cd08d..ff21e99 100644
10350 --- a/arch/sparc/kernel/smp_64.c
10351 +++ b/arch/sparc/kernel/smp_64.c
10352 @@ -891,7 +891,7 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
10353 return;
10354
10355 #ifdef CONFIG_DEBUG_DCFLUSH
10356 - atomic_inc(&dcpage_flushes);
10357 + atomic_inc_unchecked(&dcpage_flushes);
10358 #endif
10359
10360 this_cpu = get_cpu();
10361 @@ -915,7 +915,7 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
10362 xcall_deliver(data0, __pa(pg_addr),
10363 (u64) pg_addr, cpumask_of(cpu));
10364 #ifdef CONFIG_DEBUG_DCFLUSH
10365 - atomic_inc(&dcpage_flushes_xcall);
10366 + atomic_inc_unchecked(&dcpage_flushes_xcall);
10367 #endif
10368 }
10369 }
10370 @@ -934,7 +934,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
10371 preempt_disable();
10372
10373 #ifdef CONFIG_DEBUG_DCFLUSH
10374 - atomic_inc(&dcpage_flushes);
10375 + atomic_inc_unchecked(&dcpage_flushes);
10376 #endif
10377 data0 = 0;
10378 pg_addr = page_address(page);
10379 @@ -951,7 +951,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
10380 xcall_deliver(data0, __pa(pg_addr),
10381 (u64) pg_addr, cpu_online_mask);
10382 #ifdef CONFIG_DEBUG_DCFLUSH
10383 - atomic_inc(&dcpage_flushes_xcall);
10384 + atomic_inc_unchecked(&dcpage_flushes_xcall);
10385 #endif
10386 }
10387 __local_flush_dcache_page(page);
10388 diff --git a/arch/sparc/kernel/sys_sparc_32.c b/arch/sparc/kernel/sys_sparc_32.c
10389 index 646988d..b88905f 100644
10390 --- a/arch/sparc/kernel/sys_sparc_32.c
10391 +++ b/arch/sparc/kernel/sys_sparc_32.c
10392 @@ -54,7 +54,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
10393 if (len > TASK_SIZE - PAGE_SIZE)
10394 return -ENOMEM;
10395 if (!addr)
10396 - addr = TASK_UNMAPPED_BASE;
10397 + addr = current->mm->mmap_base;
10398
10399 info.flags = 0;
10400 info.length = len;
10401 diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c
10402 index c690c8e..1d5798e 100644
10403 --- a/arch/sparc/kernel/sys_sparc_64.c
10404 +++ b/arch/sparc/kernel/sys_sparc_64.c
10405 @@ -89,13 +89,14 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
10406 struct vm_area_struct * vma;
10407 unsigned long task_size = TASK_SIZE;
10408 int do_color_align;
10409 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
10410 struct vm_unmapped_area_info info;
10411
10412 if (flags & MAP_FIXED) {
10413 /* We do not accept a shared mapping if it would violate
10414 * cache aliasing constraints.
10415 */
10416 - if ((flags & MAP_SHARED) &&
10417 + if ((filp || (flags & MAP_SHARED)) &&
10418 ((addr - (pgoff << PAGE_SHIFT)) & (SHMLBA - 1)))
10419 return -EINVAL;
10420 return addr;
10421 @@ -110,6 +111,10 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
10422 if (filp || (flags & MAP_SHARED))
10423 do_color_align = 1;
10424
10425 +#ifdef CONFIG_PAX_RANDMMAP
10426 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
10427 +#endif
10428 +
10429 if (addr) {
10430 if (do_color_align)
10431 addr = COLOR_ALIGN(addr, pgoff);
10432 @@ -117,22 +122,28 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
10433 addr = PAGE_ALIGN(addr);
10434
10435 vma = find_vma(mm, addr);
10436 - if (task_size - len >= addr &&
10437 - (!vma || addr + len <= vma->vm_start))
10438 + if (task_size - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
10439 return addr;
10440 }
10441
10442 info.flags = 0;
10443 info.length = len;
10444 - info.low_limit = TASK_UNMAPPED_BASE;
10445 + info.low_limit = mm->mmap_base;
10446 info.high_limit = min(task_size, VA_EXCLUDE_START);
10447 info.align_mask = do_color_align ? (PAGE_MASK & (SHMLBA - 1)) : 0;
10448 info.align_offset = pgoff << PAGE_SHIFT;
10449 + info.threadstack_offset = offset;
10450 addr = vm_unmapped_area(&info);
10451
10452 if ((addr & ~PAGE_MASK) && task_size > VA_EXCLUDE_END) {
10453 VM_BUG_ON(addr != -ENOMEM);
10454 info.low_limit = VA_EXCLUDE_END;
10455 +
10456 +#ifdef CONFIG_PAX_RANDMMAP
10457 + if (mm->pax_flags & MF_PAX_RANDMMAP)
10458 + info.low_limit += mm->delta_mmap;
10459 +#endif
10460 +
10461 info.high_limit = task_size;
10462 addr = vm_unmapped_area(&info);
10463 }
10464 @@ -150,6 +161,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10465 unsigned long task_size = STACK_TOP32;
10466 unsigned long addr = addr0;
10467 int do_color_align;
10468 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
10469 struct vm_unmapped_area_info info;
10470
10471 /* This should only ever run for 32-bit processes. */
10472 @@ -159,7 +171,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10473 /* We do not accept a shared mapping if it would violate
10474 * cache aliasing constraints.
10475 */
10476 - if ((flags & MAP_SHARED) &&
10477 + if ((filp || (flags & MAP_SHARED)) &&
10478 ((addr - (pgoff << PAGE_SHIFT)) & (SHMLBA - 1)))
10479 return -EINVAL;
10480 return addr;
10481 @@ -172,6 +184,10 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10482 if (filp || (flags & MAP_SHARED))
10483 do_color_align = 1;
10484
10485 +#ifdef CONFIG_PAX_RANDMMAP
10486 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
10487 +#endif
10488 +
10489 /* requesting a specific address */
10490 if (addr) {
10491 if (do_color_align)
10492 @@ -180,8 +196,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10493 addr = PAGE_ALIGN(addr);
10494
10495 vma = find_vma(mm, addr);
10496 - if (task_size - len >= addr &&
10497 - (!vma || addr + len <= vma->vm_start))
10498 + if (task_size - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
10499 return addr;
10500 }
10501
10502 @@ -191,6 +206,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10503 info.high_limit = mm->mmap_base;
10504 info.align_mask = do_color_align ? (PAGE_MASK & (SHMLBA - 1)) : 0;
10505 info.align_offset = pgoff << PAGE_SHIFT;
10506 + info.threadstack_offset = offset;
10507 addr = vm_unmapped_area(&info);
10508
10509 /*
10510 @@ -203,6 +219,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10511 VM_BUG_ON(addr != -ENOMEM);
10512 info.flags = 0;
10513 info.low_limit = TASK_UNMAPPED_BASE;
10514 +
10515 +#ifdef CONFIG_PAX_RANDMMAP
10516 + if (mm->pax_flags & MF_PAX_RANDMMAP)
10517 + info.low_limit += mm->delta_mmap;
10518 +#endif
10519 +
10520 info.high_limit = STACK_TOP32;
10521 addr = vm_unmapped_area(&info);
10522 }
10523 @@ -259,10 +281,14 @@ unsigned long get_fb_unmapped_area(struct file *filp, unsigned long orig_addr, u
10524 EXPORT_SYMBOL(get_fb_unmapped_area);
10525
10526 /* Essentially the same as PowerPC. */
10527 -static unsigned long mmap_rnd(void)
10528 +static unsigned long mmap_rnd(struct mm_struct *mm)
10529 {
10530 unsigned long rnd = 0UL;
10531
10532 +#ifdef CONFIG_PAX_RANDMMAP
10533 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
10534 +#endif
10535 +
10536 if (current->flags & PF_RANDOMIZE) {
10537 unsigned long val = get_random_int();
10538 if (test_thread_flag(TIF_32BIT))
10539 @@ -275,7 +301,7 @@ static unsigned long mmap_rnd(void)
10540
10541 void arch_pick_mmap_layout(struct mm_struct *mm)
10542 {
10543 - unsigned long random_factor = mmap_rnd();
10544 + unsigned long random_factor = mmap_rnd(mm);
10545 unsigned long gap;
10546
10547 /*
10548 @@ -288,6 +314,12 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
10549 gap == RLIM_INFINITY ||
10550 sysctl_legacy_va_layout) {
10551 mm->mmap_base = TASK_UNMAPPED_BASE + random_factor;
10552 +
10553 +#ifdef CONFIG_PAX_RANDMMAP
10554 + if (mm->pax_flags & MF_PAX_RANDMMAP)
10555 + mm->mmap_base += mm->delta_mmap;
10556 +#endif
10557 +
10558 mm->get_unmapped_area = arch_get_unmapped_area;
10559 } else {
10560 /* We know it's 32-bit */
10561 @@ -299,6 +331,12 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
10562 gap = (task_size / 6 * 5);
10563
10564 mm->mmap_base = PAGE_ALIGN(task_size - gap - random_factor);
10565 +
10566 +#ifdef CONFIG_PAX_RANDMMAP
10567 + if (mm->pax_flags & MF_PAX_RANDMMAP)
10568 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
10569 +#endif
10570 +
10571 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
10572 }
10573 }
10574 diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S
10575 index bb00089..e0ea580 100644
10576 --- a/arch/sparc/kernel/syscalls.S
10577 +++ b/arch/sparc/kernel/syscalls.S
10578 @@ -62,7 +62,7 @@ sys32_rt_sigreturn:
10579 #endif
10580 .align 32
10581 1: ldx [%g6 + TI_FLAGS], %l5
10582 - andcc %l5, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
10583 + andcc %l5, _TIF_WORK_SYSCALL, %g0
10584 be,pt %icc, rtrap
10585 nop
10586 call syscall_trace_leave
10587 @@ -194,7 +194,7 @@ linux_sparc_syscall32:
10588
10589 srl %i3, 0, %o3 ! IEU0
10590 srl %i2, 0, %o2 ! IEU0 Group
10591 - andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
10592 + andcc %l0, _TIF_WORK_SYSCALL, %g0
10593 bne,pn %icc, linux_syscall_trace32 ! CTI
10594 mov %i0, %l5 ! IEU1
10595 5: call %l7 ! CTI Group brk forced
10596 @@ -218,7 +218,7 @@ linux_sparc_syscall:
10597
10598 mov %i3, %o3 ! IEU1
10599 mov %i4, %o4 ! IEU0 Group
10600 - andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
10601 + andcc %l0, _TIF_WORK_SYSCALL, %g0
10602 bne,pn %icc, linux_syscall_trace ! CTI Group
10603 mov %i0, %l5 ! IEU0
10604 2: call %l7 ! CTI Group brk forced
10605 @@ -233,7 +233,7 @@ ret_sys_call:
10606
10607 cmp %o0, -ERESTART_RESTARTBLOCK
10608 bgeu,pn %xcc, 1f
10609 - andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
10610 + andcc %l0, _TIF_WORK_SYSCALL, %g0
10611 ldx [%sp + PTREGS_OFF + PT_V9_TNPC], %l1 ! pc = npc
10612
10613 2:
10614 diff --git a/arch/sparc/kernel/traps_32.c b/arch/sparc/kernel/traps_32.c
10615 index 4f21df7..0a374da 100644
10616 --- a/arch/sparc/kernel/traps_32.c
10617 +++ b/arch/sparc/kernel/traps_32.c
10618 @@ -44,6 +44,8 @@ static void instruction_dump(unsigned long *pc)
10619 #define __SAVE __asm__ __volatile__("save %sp, -0x40, %sp\n\t")
10620 #define __RESTORE __asm__ __volatile__("restore %g0, %g0, %g0\n\t")
10621
10622 +extern void gr_handle_kernel_exploit(void);
10623 +
10624 void __noreturn die_if_kernel(char *str, struct pt_regs *regs)
10625 {
10626 static int die_counter;
10627 @@ -76,15 +78,17 @@ void __noreturn die_if_kernel(char *str, struct pt_regs *regs)
10628 count++ < 30 &&
10629 (((unsigned long) rw) >= PAGE_OFFSET) &&
10630 !(((unsigned long) rw) & 0x7)) {
10631 - printk("Caller[%08lx]: %pS\n", rw->ins[7],
10632 + printk("Caller[%08lx]: %pA\n", rw->ins[7],
10633 (void *) rw->ins[7]);
10634 rw = (struct reg_window32 *)rw->ins[6];
10635 }
10636 }
10637 printk("Instruction DUMP:");
10638 instruction_dump ((unsigned long *) regs->pc);
10639 - if(regs->psr & PSR_PS)
10640 + if(regs->psr & PSR_PS) {
10641 + gr_handle_kernel_exploit();
10642 do_exit(SIGKILL);
10643 + }
10644 do_exit(SIGSEGV);
10645 }
10646
10647 diff --git a/arch/sparc/kernel/traps_64.c b/arch/sparc/kernel/traps_64.c
10648 index d21cd62..00a4a17 100644
10649 --- a/arch/sparc/kernel/traps_64.c
10650 +++ b/arch/sparc/kernel/traps_64.c
10651 @@ -79,7 +79,7 @@ static void dump_tl1_traplog(struct tl1_traplog *p)
10652 i + 1,
10653 p->trapstack[i].tstate, p->trapstack[i].tpc,
10654 p->trapstack[i].tnpc, p->trapstack[i].tt);
10655 - printk("TRAPLOG: TPC<%pS>\n", (void *) p->trapstack[i].tpc);
10656 + printk("TRAPLOG: TPC<%pA>\n", (void *) p->trapstack[i].tpc);
10657 }
10658 }
10659
10660 @@ -99,6 +99,12 @@ void bad_trap(struct pt_regs *regs, long lvl)
10661
10662 lvl -= 0x100;
10663 if (regs->tstate & TSTATE_PRIV) {
10664 +
10665 +#ifdef CONFIG_PAX_REFCOUNT
10666 + if (lvl == 6)
10667 + pax_report_refcount_overflow(regs);
10668 +#endif
10669 +
10670 sprintf(buffer, "Kernel bad sw trap %lx", lvl);
10671 die_if_kernel(buffer, regs);
10672 }
10673 @@ -117,11 +123,16 @@ void bad_trap(struct pt_regs *regs, long lvl)
10674 void bad_trap_tl1(struct pt_regs *regs, long lvl)
10675 {
10676 char buffer[32];
10677 -
10678 +
10679 if (notify_die(DIE_TRAP_TL1, "bad trap tl1", regs,
10680 0, lvl, SIGTRAP) == NOTIFY_STOP)
10681 return;
10682
10683 +#ifdef CONFIG_PAX_REFCOUNT
10684 + if (lvl == 6)
10685 + pax_report_refcount_overflow(regs);
10686 +#endif
10687 +
10688 dump_tl1_traplog((struct tl1_traplog *)(regs + 1));
10689
10690 sprintf (buffer, "Bad trap %lx at tl>0", lvl);
10691 @@ -1151,7 +1162,7 @@ static void cheetah_log_errors(struct pt_regs *regs, struct cheetah_err_info *in
10692 regs->tpc, regs->tnpc, regs->u_regs[UREG_I7], regs->tstate);
10693 printk("%s" "ERROR(%d): ",
10694 (recoverable ? KERN_WARNING : KERN_CRIT), smp_processor_id());
10695 - printk("TPC<%pS>\n", (void *) regs->tpc);
10696 + printk("TPC<%pA>\n", (void *) regs->tpc);
10697 printk("%s" "ERROR(%d): M_SYND(%lx), E_SYND(%lx)%s%s\n",
10698 (recoverable ? KERN_WARNING : KERN_CRIT), smp_processor_id(),
10699 (afsr & CHAFSR_M_SYNDROME) >> CHAFSR_M_SYNDROME_SHIFT,
10700 @@ -1758,7 +1769,7 @@ void cheetah_plus_parity_error(int type, struct pt_regs *regs)
10701 smp_processor_id(),
10702 (type & 0x1) ? 'I' : 'D',
10703 regs->tpc);
10704 - printk(KERN_EMERG "TPC<%pS>\n", (void *) regs->tpc);
10705 + printk(KERN_EMERG "TPC<%pA>\n", (void *) regs->tpc);
10706 panic("Irrecoverable Cheetah+ parity error.");
10707 }
10708
10709 @@ -1766,7 +1777,7 @@ void cheetah_plus_parity_error(int type, struct pt_regs *regs)
10710 smp_processor_id(),
10711 (type & 0x1) ? 'I' : 'D',
10712 regs->tpc);
10713 - printk(KERN_WARNING "TPC<%pS>\n", (void *) regs->tpc);
10714 + printk(KERN_WARNING "TPC<%pA>\n", (void *) regs->tpc);
10715 }
10716
10717 struct sun4v_error_entry {
10718 @@ -1839,8 +1850,8 @@ struct sun4v_error_entry {
10719 /*0x38*/u64 reserved_5;
10720 };
10721
10722 -static atomic_t sun4v_resum_oflow_cnt = ATOMIC_INIT(0);
10723 -static atomic_t sun4v_nonresum_oflow_cnt = ATOMIC_INIT(0);
10724 +static atomic_unchecked_t sun4v_resum_oflow_cnt = ATOMIC_INIT(0);
10725 +static atomic_unchecked_t sun4v_nonresum_oflow_cnt = ATOMIC_INIT(0);
10726
10727 static const char *sun4v_err_type_to_str(u8 type)
10728 {
10729 @@ -1932,7 +1943,7 @@ static void sun4v_report_real_raddr(const char *pfx, struct pt_regs *regs)
10730 }
10731
10732 static void sun4v_log_error(struct pt_regs *regs, struct sun4v_error_entry *ent,
10733 - int cpu, const char *pfx, atomic_t *ocnt)
10734 + int cpu, const char *pfx, atomic_unchecked_t *ocnt)
10735 {
10736 u64 *raw_ptr = (u64 *) ent;
10737 u32 attrs;
10738 @@ -1990,8 +2001,8 @@ static void sun4v_log_error(struct pt_regs *regs, struct sun4v_error_entry *ent,
10739
10740 show_regs(regs);
10741
10742 - if ((cnt = atomic_read(ocnt)) != 0) {
10743 - atomic_set(ocnt, 0);
10744 + if ((cnt = atomic_read_unchecked(ocnt)) != 0) {
10745 + atomic_set_unchecked(ocnt, 0);
10746 wmb();
10747 printk("%s: Queue overflowed %d times.\n",
10748 pfx, cnt);
10749 @@ -2048,7 +2059,7 @@ out:
10750 */
10751 void sun4v_resum_overflow(struct pt_regs *regs)
10752 {
10753 - atomic_inc(&sun4v_resum_oflow_cnt);
10754 + atomic_inc_unchecked(&sun4v_resum_oflow_cnt);
10755 }
10756
10757 /* We run with %pil set to PIL_NORMAL_MAX and PSTATE_IE enabled in %pstate.
10758 @@ -2101,7 +2112,7 @@ void sun4v_nonresum_overflow(struct pt_regs *regs)
10759 /* XXX Actually even this can make not that much sense. Perhaps
10760 * XXX we should just pull the plug and panic directly from here?
10761 */
10762 - atomic_inc(&sun4v_nonresum_oflow_cnt);
10763 + atomic_inc_unchecked(&sun4v_nonresum_oflow_cnt);
10764 }
10765
10766 static void sun4v_tlb_error(struct pt_regs *regs)
10767 @@ -2120,9 +2131,9 @@ void sun4v_itlb_error_report(struct pt_regs *regs, int tl)
10768
10769 printk(KERN_EMERG "SUN4V-ITLB: Error at TPC[%lx], tl %d\n",
10770 regs->tpc, tl);
10771 - printk(KERN_EMERG "SUN4V-ITLB: TPC<%pS>\n", (void *) regs->tpc);
10772 + printk(KERN_EMERG "SUN4V-ITLB: TPC<%pA>\n", (void *) regs->tpc);
10773 printk(KERN_EMERG "SUN4V-ITLB: O7[%lx]\n", regs->u_regs[UREG_I7]);
10774 - printk(KERN_EMERG "SUN4V-ITLB: O7<%pS>\n",
10775 + printk(KERN_EMERG "SUN4V-ITLB: O7<%pA>\n",
10776 (void *) regs->u_regs[UREG_I7]);
10777 printk(KERN_EMERG "SUN4V-ITLB: vaddr[%lx] ctx[%lx] "
10778 "pte[%lx] error[%lx]\n",
10779 @@ -2143,9 +2154,9 @@ void sun4v_dtlb_error_report(struct pt_regs *regs, int tl)
10780
10781 printk(KERN_EMERG "SUN4V-DTLB: Error at TPC[%lx], tl %d\n",
10782 regs->tpc, tl);
10783 - printk(KERN_EMERG "SUN4V-DTLB: TPC<%pS>\n", (void *) regs->tpc);
10784 + printk(KERN_EMERG "SUN4V-DTLB: TPC<%pA>\n", (void *) regs->tpc);
10785 printk(KERN_EMERG "SUN4V-DTLB: O7[%lx]\n", regs->u_regs[UREG_I7]);
10786 - printk(KERN_EMERG "SUN4V-DTLB: O7<%pS>\n",
10787 + printk(KERN_EMERG "SUN4V-DTLB: O7<%pA>\n",
10788 (void *) regs->u_regs[UREG_I7]);
10789 printk(KERN_EMERG "SUN4V-DTLB: vaddr[%lx] ctx[%lx] "
10790 "pte[%lx] error[%lx]\n",
10791 @@ -2362,13 +2373,13 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
10792 fp = (unsigned long)sf->fp + STACK_BIAS;
10793 }
10794
10795 - printk(" [%016lx] %pS\n", pc, (void *) pc);
10796 + printk(" [%016lx] %pA\n", pc, (void *) pc);
10797 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
10798 if ((pc + 8UL) == (unsigned long) &return_to_handler) {
10799 int index = tsk->curr_ret_stack;
10800 if (tsk->ret_stack && index >= graph) {
10801 pc = tsk->ret_stack[index - graph].ret;
10802 - printk(" [%016lx] %pS\n", pc, (void *) pc);
10803 + printk(" [%016lx] %pA\n", pc, (void *) pc);
10804 graph++;
10805 }
10806 }
10807 @@ -2386,6 +2397,8 @@ static inline struct reg_window *kernel_stack_up(struct reg_window *rw)
10808 return (struct reg_window *) (fp + STACK_BIAS);
10809 }
10810
10811 +extern void gr_handle_kernel_exploit(void);
10812 +
10813 void __noreturn die_if_kernel(char *str, struct pt_regs *regs)
10814 {
10815 static int die_counter;
10816 @@ -2414,7 +2427,7 @@ void __noreturn die_if_kernel(char *str, struct pt_regs *regs)
10817 while (rw &&
10818 count++ < 30 &&
10819 kstack_valid(tp, (unsigned long) rw)) {
10820 - printk("Caller[%016lx]: %pS\n", rw->ins[7],
10821 + printk("Caller[%016lx]: %pA\n", rw->ins[7],
10822 (void *) rw->ins[7]);
10823
10824 rw = kernel_stack_up(rw);
10825 @@ -2429,8 +2442,10 @@ void __noreturn die_if_kernel(char *str, struct pt_regs *regs)
10826 }
10827 if (panic_on_oops)
10828 panic("Fatal exception");
10829 - if (regs->tstate & TSTATE_PRIV)
10830 + if (regs->tstate & TSTATE_PRIV) {
10831 + gr_handle_kernel_exploit();
10832 do_exit(SIGKILL);
10833 + }
10834 do_exit(SIGSEGV);
10835 }
10836 EXPORT_SYMBOL(die_if_kernel);
10837 diff --git a/arch/sparc/kernel/unaligned_64.c b/arch/sparc/kernel/unaligned_64.c
10838 index d89e97b..b4b583de 100644
10839 --- a/arch/sparc/kernel/unaligned_64.c
10840 +++ b/arch/sparc/kernel/unaligned_64.c
10841 @@ -297,7 +297,7 @@ static void log_unaligned(struct pt_regs *regs)
10842 static DEFINE_RATELIMIT_STATE(ratelimit, 5 * HZ, 5);
10843
10844 if (__ratelimit(&ratelimit)) {
10845 - printk("Kernel unaligned access at TPC[%lx] %pS\n",
10846 + printk("Kernel unaligned access at TPC[%lx] %pA\n",
10847 regs->tpc, (void *) regs->tpc);
10848 }
10849 }
10850 diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile
10851 index 3269b02..64f5231 100644
10852 --- a/arch/sparc/lib/Makefile
10853 +++ b/arch/sparc/lib/Makefile
10854 @@ -2,7 +2,7 @@
10855 #
10856
10857 asflags-y := -ansi -DST_DIV0=0x02
10858 -ccflags-y := -Werror
10859 +#ccflags-y := -Werror
10860
10861 lib-$(CONFIG_SPARC32) += ashrdi3.o
10862 lib-$(CONFIG_SPARC32) += memcpy.o memset.o
10863 diff --git a/arch/sparc/lib/atomic_64.S b/arch/sparc/lib/atomic_64.S
10864 index d6b0363..552bcbb6 100644
10865 --- a/arch/sparc/lib/atomic_64.S
10866 +++ b/arch/sparc/lib/atomic_64.S
10867 @@ -15,11 +15,22 @@
10868 * a value and does the barriers.
10869 */
10870
10871 -#define ATOMIC_OP(op) \
10872 -ENTRY(atomic_##op) /* %o0 = increment, %o1 = atomic_ptr */ \
10873 +#ifdef CONFIG_PAX_REFCOUNT
10874 +#define __REFCOUNT_OP(op) op##cc
10875 +#define __OVERFLOW_IOP tvs %icc, 6;
10876 +#define __OVERFLOW_XOP tvs %xcc, 6;
10877 +#else
10878 +#define __REFCOUNT_OP(op) op
10879 +#define __OVERFLOW_IOP
10880 +#define __OVERFLOW_XOP
10881 +#endif
10882 +
10883 +#define __ATOMIC_OP(op, suffix, asm_op, post_op) \
10884 +ENTRY(atomic_##op##suffix) /* %o0 = increment, %o1 = atomic_ptr */ \
10885 BACKOFF_SETUP(%o2); \
10886 1: lduw [%o1], %g1; \
10887 - op %g1, %o0, %g7; \
10888 + asm_op %g1, %o0, %g7; \
10889 + post_op \
10890 cas [%o1], %g1, %g7; \
10891 cmp %g1, %g7; \
10892 bne,pn %icc, BACKOFF_LABEL(2f, 1b); \
10893 @@ -29,11 +40,15 @@ ENTRY(atomic_##op) /* %o0 = increment, %o1 = atomic_ptr */ \
10894 2: BACKOFF_SPIN(%o2, %o3, 1b); \
10895 ENDPROC(atomic_##op); \
10896
10897 -#define ATOMIC_OP_RETURN(op) \
10898 -ENTRY(atomic_##op##_return) /* %o0 = increment, %o1 = atomic_ptr */ \
10899 +#define ATOMIC_OP(op) __ATOMIC_OP(op, , op, ) \
10900 + __ATOMIC_OP(op, _unchecked, __REFCOUNT_OP(op), __OVERFLOW_IOP)
10901 +
10902 +#define __ATOMIC_OP_RETURN(op, suffix, asm_op, post_op) \
10903 +ENTRY(atomic_##op##_return##suffix) /* %o0 = increment, %o1 = atomic_ptr */\
10904 BACKOFF_SETUP(%o2); \
10905 1: lduw [%o1], %g1; \
10906 - op %g1, %o0, %g7; \
10907 + asm_op %g1, %o0, %g7; \
10908 + post_op \
10909 cas [%o1], %g1, %g7; \
10910 cmp %g1, %g7; \
10911 bne,pn %icc, BACKOFF_LABEL(2f, 1b); \
10912 @@ -43,6 +58,9 @@ ENTRY(atomic_##op##_return) /* %o0 = increment, %o1 = atomic_ptr */ \
10913 2: BACKOFF_SPIN(%o2, %o3, 1b); \
10914 ENDPROC(atomic_##op##_return);
10915
10916 +#define ATOMIC_OP_RETURN(op) __ATOMIC_OP_RETURN(op, , op, ) \
10917 + __ATOMIC_OP_RETURN(op, _unchecked, __REFCOUNT_OP(op), __OVERFLOW_IOP)
10918 +
10919 #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_OP_RETURN(op)
10920
10921 ATOMIC_OPS(add)
10922 @@ -53,13 +71,16 @@ ATOMIC_OP(xor)
10923
10924 #undef ATOMIC_OPS
10925 #undef ATOMIC_OP_RETURN
10926 +#undef __ATOMIC_OP_RETURN
10927 #undef ATOMIC_OP
10928 +#undef __ATOMIC_OP
10929
10930 -#define ATOMIC64_OP(op) \
10931 -ENTRY(atomic64_##op) /* %o0 = increment, %o1 = atomic_ptr */ \
10932 +#define __ATOMIC64_OP(op, suffix, asm_op, post_op) \
10933 +ENTRY(atomic64_##op##suffix) /* %o0 = increment, %o1 = atomic_ptr */ \
10934 BACKOFF_SETUP(%o2); \
10935 1: ldx [%o1], %g1; \
10936 - op %g1, %o0, %g7; \
10937 + asm_op %g1, %o0, %g7; \
10938 + post_op \
10939 casx [%o1], %g1, %g7; \
10940 cmp %g1, %g7; \
10941 bne,pn %xcc, BACKOFF_LABEL(2f, 1b); \
10942 @@ -69,11 +90,15 @@ ENTRY(atomic64_##op) /* %o0 = increment, %o1 = atomic_ptr */ \
10943 2: BACKOFF_SPIN(%o2, %o3, 1b); \
10944 ENDPROC(atomic64_##op); \
10945
10946 -#define ATOMIC64_OP_RETURN(op) \
10947 -ENTRY(atomic64_##op##_return) /* %o0 = increment, %o1 = atomic_ptr */ \
10948 +#define ATOMIC64_OP(op) __ATOMIC64_OP(op, , op, ) \
10949 + __ATOMIC64_OP(op, _unchecked, __REFCOUNT_OP(op), __OVERFLOW_XOP)
10950 +
10951 +#define __ATOMIC64_OP_RETURN(op, suffix, asm_op, post_op) \
10952 +ENTRY(atomic64_##op##_return##suffix) /* %o0 = increment, %o1 = atomic_ptr */\
10953 BACKOFF_SETUP(%o2); \
10954 1: ldx [%o1], %g1; \
10955 - op %g1, %o0, %g7; \
10956 + asm_op %g1, %o0, %g7; \
10957 + post_op \
10958 casx [%o1], %g1, %g7; \
10959 cmp %g1, %g7; \
10960 bne,pn %xcc, BACKOFF_LABEL(2f, 1b); \
10961 @@ -83,6 +108,9 @@ ENTRY(atomic64_##op##_return) /* %o0 = increment, %o1 = atomic_ptr */ \
10962 2: BACKOFF_SPIN(%o2, %o3, 1b); \
10963 ENDPROC(atomic64_##op##_return);
10964
10965 +#define ATOMIC64_OP_RETURN(op) __ATOMIC64_OP_RETURN(op, , op, ) \
10966 +i __ATOMIC64_OP_RETURN(op, _unchecked, __REFCOUNT_OP(op), __OVERFLOW_XOP)
10967 +
10968 #define ATOMIC64_OPS(op) ATOMIC64_OP(op) ATOMIC64_OP_RETURN(op)
10969
10970 ATOMIC64_OPS(add)
10971 @@ -93,7 +121,12 @@ ATOMIC64_OP(xor)
10972
10973 #undef ATOMIC64_OPS
10974 #undef ATOMIC64_OP_RETURN
10975 +#undef __ATOMIC64_OP_RETURN
10976 #undef ATOMIC64_OP
10977 +#undef __ATOMIC64_OP
10978 +#undef __OVERFLOW_XOP
10979 +#undef __OVERFLOW_IOP
10980 +#undef __REFCOUNT_OP
10981
10982 ENTRY(atomic64_dec_if_positive) /* %o0 = atomic_ptr */
10983 BACKOFF_SETUP(%o2)
10984 diff --git a/arch/sparc/lib/ksyms.c b/arch/sparc/lib/ksyms.c
10985 index 8eb454c..9f95c5b 100644
10986 --- a/arch/sparc/lib/ksyms.c
10987 +++ b/arch/sparc/lib/ksyms.c
10988 @@ -101,7 +101,9 @@ EXPORT_SYMBOL(__clear_user);
10989 /* Atomic counter implementation. */
10990 #define ATOMIC_OP(op) \
10991 EXPORT_SYMBOL(atomic_##op); \
10992 -EXPORT_SYMBOL(atomic64_##op);
10993 +EXPORT_SYMBOL(atomic_##op##_unchecked); \
10994 +EXPORT_SYMBOL(atomic64_##op); \
10995 +EXPORT_SYMBOL(atomic64_##op##_unchecked);
10996
10997 #define ATOMIC_OP_RETURN(op) \
10998 EXPORT_SYMBOL(atomic_##op##_return); \
10999 @@ -110,6 +112,8 @@ EXPORT_SYMBOL(atomic64_##op##_return);
11000 #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_OP_RETURN(op)
11001
11002 ATOMIC_OPS(add)
11003 +EXPORT_SYMBOL(atomic_add_ret_unchecked);
11004 +EXPORT_SYMBOL(atomic64_add_ret_unchecked);
11005 ATOMIC_OPS(sub)
11006 ATOMIC_OP(and)
11007 ATOMIC_OP(or)
11008 diff --git a/arch/sparc/mm/Makefile b/arch/sparc/mm/Makefile
11009 index 30c3ecc..736f015 100644
11010 --- a/arch/sparc/mm/Makefile
11011 +++ b/arch/sparc/mm/Makefile
11012 @@ -2,7 +2,7 @@
11013 #
11014
11015 asflags-y := -ansi
11016 -ccflags-y := -Werror
11017 +#ccflags-y := -Werror
11018
11019 obj-$(CONFIG_SPARC64) += ultra.o tlb.o tsb.o gup.o
11020 obj-y += fault_$(BITS).o
11021 diff --git a/arch/sparc/mm/fault_32.c b/arch/sparc/mm/fault_32.c
11022 index c399e7b..2387414 100644
11023 --- a/arch/sparc/mm/fault_32.c
11024 +++ b/arch/sparc/mm/fault_32.c
11025 @@ -22,6 +22,9 @@
11026 #include <linux/interrupt.h>
11027 #include <linux/kdebug.h>
11028 #include <linux/uaccess.h>
11029 +#include <linux/slab.h>
11030 +#include <linux/pagemap.h>
11031 +#include <linux/compiler.h>
11032
11033 #include <asm/page.h>
11034 #include <asm/pgtable.h>
11035 @@ -156,6 +159,277 @@ static unsigned long compute_si_addr(struct pt_regs *regs, int text_fault)
11036 return safe_compute_effective_address(regs, insn);
11037 }
11038
11039 +#ifdef CONFIG_PAX_PAGEEXEC
11040 +#ifdef CONFIG_PAX_DLRESOLVE
11041 +static void pax_emuplt_close(struct vm_area_struct *vma)
11042 +{
11043 + vma->vm_mm->call_dl_resolve = 0UL;
11044 +}
11045 +
11046 +static int pax_emuplt_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
11047 +{
11048 + unsigned int *kaddr;
11049 +
11050 + vmf->page = alloc_page(GFP_HIGHUSER);
11051 + if (!vmf->page)
11052 + return VM_FAULT_OOM;
11053 +
11054 + kaddr = kmap(vmf->page);
11055 + memset(kaddr, 0, PAGE_SIZE);
11056 + kaddr[0] = 0x9DE3BFA8U; /* save */
11057 + flush_dcache_page(vmf->page);
11058 + kunmap(vmf->page);
11059 + return VM_FAULT_MAJOR;
11060 +}
11061 +
11062 +static const struct vm_operations_struct pax_vm_ops = {
11063 + .close = pax_emuplt_close,
11064 + .fault = pax_emuplt_fault
11065 +};
11066 +
11067 +static int pax_insert_vma(struct vm_area_struct *vma, unsigned long addr)
11068 +{
11069 + int ret;
11070 +
11071 + INIT_LIST_HEAD(&vma->anon_vma_chain);
11072 + vma->vm_mm = current->mm;
11073 + vma->vm_start = addr;
11074 + vma->vm_end = addr + PAGE_SIZE;
11075 + vma->vm_flags = VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYEXEC;
11076 + vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
11077 + vma->vm_ops = &pax_vm_ops;
11078 +
11079 + ret = insert_vm_struct(current->mm, vma);
11080 + if (ret)
11081 + return ret;
11082 +
11083 + ++current->mm->total_vm;
11084 + return 0;
11085 +}
11086 +#endif
11087 +
11088 +/*
11089 + * PaX: decide what to do with offenders (regs->pc = fault address)
11090 + *
11091 + * returns 1 when task should be killed
11092 + * 2 when patched PLT trampoline was detected
11093 + * 3 when unpatched PLT trampoline was detected
11094 + */
11095 +static int pax_handle_fetch_fault(struct pt_regs *regs)
11096 +{
11097 +
11098 +#ifdef CONFIG_PAX_EMUPLT
11099 + int err;
11100 +
11101 + do { /* PaX: patched PLT emulation #1 */
11102 + unsigned int sethi1, sethi2, jmpl;
11103 +
11104 + err = get_user(sethi1, (unsigned int *)regs->pc);
11105 + err |= get_user(sethi2, (unsigned int *)(regs->pc+4));
11106 + err |= get_user(jmpl, (unsigned int *)(regs->pc+8));
11107 +
11108 + if (err)
11109 + break;
11110 +
11111 + if ((sethi1 & 0xFFC00000U) == 0x03000000U &&
11112 + (sethi2 & 0xFFC00000U) == 0x03000000U &&
11113 + (jmpl & 0xFFFFE000U) == 0x81C06000U)
11114 + {
11115 + unsigned int addr;
11116 +
11117 + regs->u_regs[UREG_G1] = (sethi2 & 0x003FFFFFU) << 10;
11118 + addr = regs->u_regs[UREG_G1];
11119 + addr += (((jmpl | 0xFFFFE000U) ^ 0x00001000U) + 0x00001000U);
11120 + regs->pc = addr;
11121 + regs->npc = addr+4;
11122 + return 2;
11123 + }
11124 + } while (0);
11125 +
11126 + do { /* PaX: patched PLT emulation #2 */
11127 + unsigned int ba;
11128 +
11129 + err = get_user(ba, (unsigned int *)regs->pc);
11130 +
11131 + if (err)
11132 + break;
11133 +
11134 + if ((ba & 0xFFC00000U) == 0x30800000U || (ba & 0xFFF80000U) == 0x30480000U) {
11135 + unsigned int addr;
11136 +
11137 + if ((ba & 0xFFC00000U) == 0x30800000U)
11138 + addr = regs->pc + ((((ba | 0xFFC00000U) ^ 0x00200000U) + 0x00200000U) << 2);
11139 + else
11140 + addr = regs->pc + ((((ba | 0xFFF80000U) ^ 0x00040000U) + 0x00040000U) << 2);
11141 + regs->pc = addr;
11142 + regs->npc = addr+4;
11143 + return 2;
11144 + }
11145 + } while (0);
11146 +
11147 + do { /* PaX: patched PLT emulation #3 */
11148 + unsigned int sethi, bajmpl, nop;
11149 +
11150 + err = get_user(sethi, (unsigned int *)regs->pc);
11151 + err |= get_user(bajmpl, (unsigned int *)(regs->pc+4));
11152 + err |= get_user(nop, (unsigned int *)(regs->pc+8));
11153 +
11154 + if (err)
11155 + break;
11156 +
11157 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11158 + ((bajmpl & 0xFFFFE000U) == 0x81C06000U || (bajmpl & 0xFFF80000U) == 0x30480000U) &&
11159 + nop == 0x01000000U)
11160 + {
11161 + unsigned int addr;
11162 +
11163 + addr = (sethi & 0x003FFFFFU) << 10;
11164 + regs->u_regs[UREG_G1] = addr;
11165 + if ((bajmpl & 0xFFFFE000U) == 0x81C06000U)
11166 + addr += (((bajmpl | 0xFFFFE000U) ^ 0x00001000U) + 0x00001000U);
11167 + else
11168 + addr = regs->pc + ((((bajmpl | 0xFFF80000U) ^ 0x00040000U) + 0x00040000U) << 2);
11169 + regs->pc = addr;
11170 + regs->npc = addr+4;
11171 + return 2;
11172 + }
11173 + } while (0);
11174 +
11175 + do { /* PaX: unpatched PLT emulation step 1 */
11176 + unsigned int sethi, ba, nop;
11177 +
11178 + err = get_user(sethi, (unsigned int *)regs->pc);
11179 + err |= get_user(ba, (unsigned int *)(regs->pc+4));
11180 + err |= get_user(nop, (unsigned int *)(regs->pc+8));
11181 +
11182 + if (err)
11183 + break;
11184 +
11185 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11186 + ((ba & 0xFFC00000U) == 0x30800000U || (ba & 0xFFF80000U) == 0x30680000U) &&
11187 + nop == 0x01000000U)
11188 + {
11189 + unsigned int addr, save, call;
11190 +
11191 + if ((ba & 0xFFC00000U) == 0x30800000U)
11192 + addr = regs->pc + 4 + ((((ba | 0xFFC00000U) ^ 0x00200000U) + 0x00200000U) << 2);
11193 + else
11194 + addr = regs->pc + 4 + ((((ba | 0xFFF80000U) ^ 0x00040000U) + 0x00040000U) << 2);
11195 +
11196 + err = get_user(save, (unsigned int *)addr);
11197 + err |= get_user(call, (unsigned int *)(addr+4));
11198 + err |= get_user(nop, (unsigned int *)(addr+8));
11199 + if (err)
11200 + break;
11201 +
11202 +#ifdef CONFIG_PAX_DLRESOLVE
11203 + if (save == 0x9DE3BFA8U &&
11204 + (call & 0xC0000000U) == 0x40000000U &&
11205 + nop == 0x01000000U)
11206 + {
11207 + struct vm_area_struct *vma;
11208 + unsigned long call_dl_resolve;
11209 +
11210 + down_read(&current->mm->mmap_sem);
11211 + call_dl_resolve = current->mm->call_dl_resolve;
11212 + up_read(&current->mm->mmap_sem);
11213 + if (likely(call_dl_resolve))
11214 + goto emulate;
11215 +
11216 + vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
11217 +
11218 + down_write(&current->mm->mmap_sem);
11219 + if (current->mm->call_dl_resolve) {
11220 + call_dl_resolve = current->mm->call_dl_resolve;
11221 + up_write(&current->mm->mmap_sem);
11222 + if (vma)
11223 + kmem_cache_free(vm_area_cachep, vma);
11224 + goto emulate;
11225 + }
11226 +
11227 + call_dl_resolve = get_unmapped_area(NULL, 0UL, PAGE_SIZE, 0UL, MAP_PRIVATE);
11228 + if (!vma || (call_dl_resolve & ~PAGE_MASK)) {
11229 + up_write(&current->mm->mmap_sem);
11230 + if (vma)
11231 + kmem_cache_free(vm_area_cachep, vma);
11232 + return 1;
11233 + }
11234 +
11235 + if (pax_insert_vma(vma, call_dl_resolve)) {
11236 + up_write(&current->mm->mmap_sem);
11237 + kmem_cache_free(vm_area_cachep, vma);
11238 + return 1;
11239 + }
11240 +
11241 + current->mm->call_dl_resolve = call_dl_resolve;
11242 + up_write(&current->mm->mmap_sem);
11243 +
11244 +emulate:
11245 + regs->u_regs[UREG_G1] = (sethi & 0x003FFFFFU) << 10;
11246 + regs->pc = call_dl_resolve;
11247 + regs->npc = addr+4;
11248 + return 3;
11249 + }
11250 +#endif
11251 +
11252 + /* PaX: glibc 2.4+ generates sethi/jmpl instead of save/call */
11253 + if ((save & 0xFFC00000U) == 0x05000000U &&
11254 + (call & 0xFFFFE000U) == 0x85C0A000U &&
11255 + nop == 0x01000000U)
11256 + {
11257 + regs->u_regs[UREG_G1] = (sethi & 0x003FFFFFU) << 10;
11258 + regs->u_regs[UREG_G2] = addr + 4;
11259 + addr = (save & 0x003FFFFFU) << 10;
11260 + addr += (((call | 0xFFFFE000U) ^ 0x00001000U) + 0x00001000U);
11261 + regs->pc = addr;
11262 + regs->npc = addr+4;
11263 + return 3;
11264 + }
11265 + }
11266 + } while (0);
11267 +
11268 + do { /* PaX: unpatched PLT emulation step 2 */
11269 + unsigned int save, call, nop;
11270 +
11271 + err = get_user(save, (unsigned int *)(regs->pc-4));
11272 + err |= get_user(call, (unsigned int *)regs->pc);
11273 + err |= get_user(nop, (unsigned int *)(regs->pc+4));
11274 + if (err)
11275 + break;
11276 +
11277 + if (save == 0x9DE3BFA8U &&
11278 + (call & 0xC0000000U) == 0x40000000U &&
11279 + nop == 0x01000000U)
11280 + {
11281 + unsigned int dl_resolve = regs->pc + ((((call | 0xC0000000U) ^ 0x20000000U) + 0x20000000U) << 2);
11282 +
11283 + regs->u_regs[UREG_RETPC] = regs->pc;
11284 + regs->pc = dl_resolve;
11285 + regs->npc = dl_resolve+4;
11286 + return 3;
11287 + }
11288 + } while (0);
11289 +#endif
11290 +
11291 + return 1;
11292 +}
11293 +
11294 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
11295 +{
11296 + unsigned long i;
11297 +
11298 + printk(KERN_ERR "PAX: bytes at PC: ");
11299 + for (i = 0; i < 8; i++) {
11300 + unsigned int c;
11301 + if (get_user(c, (unsigned int *)pc+i))
11302 + printk(KERN_CONT "???????? ");
11303 + else
11304 + printk(KERN_CONT "%08x ", c);
11305 + }
11306 + printk("\n");
11307 +}
11308 +#endif
11309 +
11310 static noinline void do_fault_siginfo(int code, int sig, struct pt_regs *regs,
11311 int text_fault)
11312 {
11313 @@ -226,6 +500,24 @@ good_area:
11314 if (!(vma->vm_flags & VM_WRITE))
11315 goto bad_area;
11316 } else {
11317 +
11318 +#ifdef CONFIG_PAX_PAGEEXEC
11319 + if ((mm->pax_flags & MF_PAX_PAGEEXEC) && text_fault && !(vma->vm_flags & VM_EXEC)) {
11320 + up_read(&mm->mmap_sem);
11321 + switch (pax_handle_fetch_fault(regs)) {
11322 +
11323 +#ifdef CONFIG_PAX_EMUPLT
11324 + case 2:
11325 + case 3:
11326 + return;
11327 +#endif
11328 +
11329 + }
11330 + pax_report_fault(regs, (void *)regs->pc, (void *)regs->u_regs[UREG_FP]);
11331 + do_group_exit(SIGKILL);
11332 + }
11333 +#endif
11334 +
11335 /* Allow reads even for write-only mappings */
11336 if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
11337 goto bad_area;
11338 diff --git a/arch/sparc/mm/fault_64.c b/arch/sparc/mm/fault_64.c
11339 index dbabe57..d34d315 100644
11340 --- a/arch/sparc/mm/fault_64.c
11341 +++ b/arch/sparc/mm/fault_64.c
11342 @@ -23,6 +23,9 @@
11343 #include <linux/percpu.h>
11344 #include <linux/context_tracking.h>
11345 #include <linux/uaccess.h>
11346 +#include <linux/slab.h>
11347 +#include <linux/pagemap.h>
11348 +#include <linux/compiler.h>
11349
11350 #include <asm/page.h>
11351 #include <asm/pgtable.h>
11352 @@ -76,7 +79,7 @@ static void __kprobes bad_kernel_pc(struct pt_regs *regs, unsigned long vaddr)
11353 printk(KERN_CRIT "OOPS: Bogus kernel PC [%016lx] in fault handler\n",
11354 regs->tpc);
11355 printk(KERN_CRIT "OOPS: RPC [%016lx]\n", regs->u_regs[15]);
11356 - printk("OOPS: RPC <%pS>\n", (void *) regs->u_regs[15]);
11357 + printk("OOPS: RPC <%pA>\n", (void *) regs->u_regs[15]);
11358 printk(KERN_CRIT "OOPS: Fault was to vaddr[%lx]\n", vaddr);
11359 dump_stack();
11360 unhandled_fault(regs->tpc, current, regs);
11361 @@ -279,6 +282,466 @@ static void noinline __kprobes bogus_32bit_fault_tpc(struct pt_regs *regs)
11362 show_regs(regs);
11363 }
11364
11365 +#ifdef CONFIG_PAX_PAGEEXEC
11366 +#ifdef CONFIG_PAX_DLRESOLVE
11367 +static void pax_emuplt_close(struct vm_area_struct *vma)
11368 +{
11369 + vma->vm_mm->call_dl_resolve = 0UL;
11370 +}
11371 +
11372 +static int pax_emuplt_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
11373 +{
11374 + unsigned int *kaddr;
11375 +
11376 + vmf->page = alloc_page(GFP_HIGHUSER);
11377 + if (!vmf->page)
11378 + return VM_FAULT_OOM;
11379 +
11380 + kaddr = kmap(vmf->page);
11381 + memset(kaddr, 0, PAGE_SIZE);
11382 + kaddr[0] = 0x9DE3BFA8U; /* save */
11383 + flush_dcache_page(vmf->page);
11384 + kunmap(vmf->page);
11385 + return VM_FAULT_MAJOR;
11386 +}
11387 +
11388 +static const struct vm_operations_struct pax_vm_ops = {
11389 + .close = pax_emuplt_close,
11390 + .fault = pax_emuplt_fault
11391 +};
11392 +
11393 +static int pax_insert_vma(struct vm_area_struct *vma, unsigned long addr)
11394 +{
11395 + int ret;
11396 +
11397 + INIT_LIST_HEAD(&vma->anon_vma_chain);
11398 + vma->vm_mm = current->mm;
11399 + vma->vm_start = addr;
11400 + vma->vm_end = addr + PAGE_SIZE;
11401 + vma->vm_flags = VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYEXEC;
11402 + vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
11403 + vma->vm_ops = &pax_vm_ops;
11404 +
11405 + ret = insert_vm_struct(current->mm, vma);
11406 + if (ret)
11407 + return ret;
11408 +
11409 + ++current->mm->total_vm;
11410 + return 0;
11411 +}
11412 +#endif
11413 +
11414 +/*
11415 + * PaX: decide what to do with offenders (regs->tpc = fault address)
11416 + *
11417 + * returns 1 when task should be killed
11418 + * 2 when patched PLT trampoline was detected
11419 + * 3 when unpatched PLT trampoline was detected
11420 + */
11421 +static int pax_handle_fetch_fault(struct pt_regs *regs)
11422 +{
11423 +
11424 +#ifdef CONFIG_PAX_EMUPLT
11425 + int err;
11426 +
11427 + do { /* PaX: patched PLT emulation #1 */
11428 + unsigned int sethi1, sethi2, jmpl;
11429 +
11430 + err = get_user(sethi1, (unsigned int *)regs->tpc);
11431 + err |= get_user(sethi2, (unsigned int *)(regs->tpc+4));
11432 + err |= get_user(jmpl, (unsigned int *)(regs->tpc+8));
11433 +
11434 + if (err)
11435 + break;
11436 +
11437 + if ((sethi1 & 0xFFC00000U) == 0x03000000U &&
11438 + (sethi2 & 0xFFC00000U) == 0x03000000U &&
11439 + (jmpl & 0xFFFFE000U) == 0x81C06000U)
11440 + {
11441 + unsigned long addr;
11442 +
11443 + regs->u_regs[UREG_G1] = (sethi2 & 0x003FFFFFU) << 10;
11444 + addr = regs->u_regs[UREG_G1];
11445 + addr += (((jmpl | 0xFFFFFFFFFFFFE000UL) ^ 0x00001000UL) + 0x00001000UL);
11446 +
11447 + if (test_thread_flag(TIF_32BIT))
11448 + addr &= 0xFFFFFFFFUL;
11449 +
11450 + regs->tpc = addr;
11451 + regs->tnpc = addr+4;
11452 + return 2;
11453 + }
11454 + } while (0);
11455 +
11456 + do { /* PaX: patched PLT emulation #2 */
11457 + unsigned int ba;
11458 +
11459 + err = get_user(ba, (unsigned int *)regs->tpc);
11460 +
11461 + if (err)
11462 + break;
11463 +
11464 + if ((ba & 0xFFC00000U) == 0x30800000U || (ba & 0xFFF80000U) == 0x30480000U) {
11465 + unsigned long addr;
11466 +
11467 + if ((ba & 0xFFC00000U) == 0x30800000U)
11468 + addr = regs->tpc + ((((ba | 0xFFFFFFFFFFC00000UL) ^ 0x00200000UL) + 0x00200000UL) << 2);
11469 + else
11470 + addr = regs->tpc + ((((ba | 0xFFFFFFFFFFF80000UL) ^ 0x00040000UL) + 0x00040000UL) << 2);
11471 +
11472 + if (test_thread_flag(TIF_32BIT))
11473 + addr &= 0xFFFFFFFFUL;
11474 +
11475 + regs->tpc = addr;
11476 + regs->tnpc = addr+4;
11477 + return 2;
11478 + }
11479 + } while (0);
11480 +
11481 + do { /* PaX: patched PLT emulation #3 */
11482 + unsigned int sethi, bajmpl, nop;
11483 +
11484 + err = get_user(sethi, (unsigned int *)regs->tpc);
11485 + err |= get_user(bajmpl, (unsigned int *)(regs->tpc+4));
11486 + err |= get_user(nop, (unsigned int *)(regs->tpc+8));
11487 +
11488 + if (err)
11489 + break;
11490 +
11491 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11492 + ((bajmpl & 0xFFFFE000U) == 0x81C06000U || (bajmpl & 0xFFF80000U) == 0x30480000U) &&
11493 + nop == 0x01000000U)
11494 + {
11495 + unsigned long addr;
11496 +
11497 + addr = (sethi & 0x003FFFFFU) << 10;
11498 + regs->u_regs[UREG_G1] = addr;
11499 + if ((bajmpl & 0xFFFFE000U) == 0x81C06000U)
11500 + addr += (((bajmpl | 0xFFFFFFFFFFFFE000UL) ^ 0x00001000UL) + 0x00001000UL);
11501 + else
11502 + addr = regs->tpc + ((((bajmpl | 0xFFFFFFFFFFF80000UL) ^ 0x00040000UL) + 0x00040000UL) << 2);
11503 +
11504 + if (test_thread_flag(TIF_32BIT))
11505 + addr &= 0xFFFFFFFFUL;
11506 +
11507 + regs->tpc = addr;
11508 + regs->tnpc = addr+4;
11509 + return 2;
11510 + }
11511 + } while (0);
11512 +
11513 + do { /* PaX: patched PLT emulation #4 */
11514 + unsigned int sethi, mov1, call, mov2;
11515 +
11516 + err = get_user(sethi, (unsigned int *)regs->tpc);
11517 + err |= get_user(mov1, (unsigned int *)(regs->tpc+4));
11518 + err |= get_user(call, (unsigned int *)(regs->tpc+8));
11519 + err |= get_user(mov2, (unsigned int *)(regs->tpc+12));
11520 +
11521 + if (err)
11522 + break;
11523 +
11524 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11525 + mov1 == 0x8210000FU &&
11526 + (call & 0xC0000000U) == 0x40000000U &&
11527 + mov2 == 0x9E100001U)
11528 + {
11529 + unsigned long addr;
11530 +
11531 + regs->u_regs[UREG_G1] = regs->u_regs[UREG_RETPC];
11532 + addr = regs->tpc + 4 + ((((call | 0xFFFFFFFFC0000000UL) ^ 0x20000000UL) + 0x20000000UL) << 2);
11533 +
11534 + if (test_thread_flag(TIF_32BIT))
11535 + addr &= 0xFFFFFFFFUL;
11536 +
11537 + regs->tpc = addr;
11538 + regs->tnpc = addr+4;
11539 + return 2;
11540 + }
11541 + } while (0);
11542 +
11543 + do { /* PaX: patched PLT emulation #5 */
11544 + unsigned int sethi, sethi1, sethi2, or1, or2, sllx, jmpl, nop;
11545 +
11546 + err = get_user(sethi, (unsigned int *)regs->tpc);
11547 + err |= get_user(sethi1, (unsigned int *)(regs->tpc+4));
11548 + err |= get_user(sethi2, (unsigned int *)(regs->tpc+8));
11549 + err |= get_user(or1, (unsigned int *)(regs->tpc+12));
11550 + err |= get_user(or2, (unsigned int *)(regs->tpc+16));
11551 + err |= get_user(sllx, (unsigned int *)(regs->tpc+20));
11552 + err |= get_user(jmpl, (unsigned int *)(regs->tpc+24));
11553 + err |= get_user(nop, (unsigned int *)(regs->tpc+28));
11554 +
11555 + if (err)
11556 + break;
11557 +
11558 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11559 + (sethi1 & 0xFFC00000U) == 0x03000000U &&
11560 + (sethi2 & 0xFFC00000U) == 0x0B000000U &&
11561 + (or1 & 0xFFFFE000U) == 0x82106000U &&
11562 + (or2 & 0xFFFFE000U) == 0x8A116000U &&
11563 + sllx == 0x83287020U &&
11564 + jmpl == 0x81C04005U &&
11565 + nop == 0x01000000U)
11566 + {
11567 + unsigned long addr;
11568 +
11569 + regs->u_regs[UREG_G1] = ((sethi1 & 0x003FFFFFU) << 10) | (or1 & 0x000003FFU);
11570 + regs->u_regs[UREG_G1] <<= 32;
11571 + regs->u_regs[UREG_G5] = ((sethi2 & 0x003FFFFFU) << 10) | (or2 & 0x000003FFU);
11572 + addr = regs->u_regs[UREG_G1] + regs->u_regs[UREG_G5];
11573 + regs->tpc = addr;
11574 + regs->tnpc = addr+4;
11575 + return 2;
11576 + }
11577 + } while (0);
11578 +
11579 + do { /* PaX: patched PLT emulation #6 */
11580 + unsigned int sethi, sethi1, sethi2, sllx, or, jmpl, nop;
11581 +
11582 + err = get_user(sethi, (unsigned int *)regs->tpc);
11583 + err |= get_user(sethi1, (unsigned int *)(regs->tpc+4));
11584 + err |= get_user(sethi2, (unsigned int *)(regs->tpc+8));
11585 + err |= get_user(sllx, (unsigned int *)(regs->tpc+12));
11586 + err |= get_user(or, (unsigned int *)(regs->tpc+16));
11587 + err |= get_user(jmpl, (unsigned int *)(regs->tpc+20));
11588 + err |= get_user(nop, (unsigned int *)(regs->tpc+24));
11589 +
11590 + if (err)
11591 + break;
11592 +
11593 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11594 + (sethi1 & 0xFFC00000U) == 0x03000000U &&
11595 + (sethi2 & 0xFFC00000U) == 0x0B000000U &&
11596 + sllx == 0x83287020U &&
11597 + (or & 0xFFFFE000U) == 0x8A116000U &&
11598 + jmpl == 0x81C04005U &&
11599 + nop == 0x01000000U)
11600 + {
11601 + unsigned long addr;
11602 +
11603 + regs->u_regs[UREG_G1] = (sethi1 & 0x003FFFFFU) << 10;
11604 + regs->u_regs[UREG_G1] <<= 32;
11605 + regs->u_regs[UREG_G5] = ((sethi2 & 0x003FFFFFU) << 10) | (or & 0x3FFU);
11606 + addr = regs->u_regs[UREG_G1] + regs->u_regs[UREG_G5];
11607 + regs->tpc = addr;
11608 + regs->tnpc = addr+4;
11609 + return 2;
11610 + }
11611 + } while (0);
11612 +
11613 + do { /* PaX: unpatched PLT emulation step 1 */
11614 + unsigned int sethi, ba, nop;
11615 +
11616 + err = get_user(sethi, (unsigned int *)regs->tpc);
11617 + err |= get_user(ba, (unsigned int *)(regs->tpc+4));
11618 + err |= get_user(nop, (unsigned int *)(regs->tpc+8));
11619 +
11620 + if (err)
11621 + break;
11622 +
11623 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11624 + ((ba & 0xFFC00000U) == 0x30800000U || (ba & 0xFFF80000U) == 0x30680000U) &&
11625 + nop == 0x01000000U)
11626 + {
11627 + unsigned long addr;
11628 + unsigned int save, call;
11629 + unsigned int sethi1, sethi2, or1, or2, sllx, add, jmpl;
11630 +
11631 + if ((ba & 0xFFC00000U) == 0x30800000U)
11632 + addr = regs->tpc + 4 + ((((ba | 0xFFFFFFFFFFC00000UL) ^ 0x00200000UL) + 0x00200000UL) << 2);
11633 + else
11634 + addr = regs->tpc + 4 + ((((ba | 0xFFFFFFFFFFF80000UL) ^ 0x00040000UL) + 0x00040000UL) << 2);
11635 +
11636 + if (test_thread_flag(TIF_32BIT))
11637 + addr &= 0xFFFFFFFFUL;
11638 +
11639 + err = get_user(save, (unsigned int *)addr);
11640 + err |= get_user(call, (unsigned int *)(addr+4));
11641 + err |= get_user(nop, (unsigned int *)(addr+8));
11642 + if (err)
11643 + break;
11644 +
11645 +#ifdef CONFIG_PAX_DLRESOLVE
11646 + if (save == 0x9DE3BFA8U &&
11647 + (call & 0xC0000000U) == 0x40000000U &&
11648 + nop == 0x01000000U)
11649 + {
11650 + struct vm_area_struct *vma;
11651 + unsigned long call_dl_resolve;
11652 +
11653 + down_read(&current->mm->mmap_sem);
11654 + call_dl_resolve = current->mm->call_dl_resolve;
11655 + up_read(&current->mm->mmap_sem);
11656 + if (likely(call_dl_resolve))
11657 + goto emulate;
11658 +
11659 + vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
11660 +
11661 + down_write(&current->mm->mmap_sem);
11662 + if (current->mm->call_dl_resolve) {
11663 + call_dl_resolve = current->mm->call_dl_resolve;
11664 + up_write(&current->mm->mmap_sem);
11665 + if (vma)
11666 + kmem_cache_free(vm_area_cachep, vma);
11667 + goto emulate;
11668 + }
11669 +
11670 + call_dl_resolve = get_unmapped_area(NULL, 0UL, PAGE_SIZE, 0UL, MAP_PRIVATE);
11671 + if (!vma || (call_dl_resolve & ~PAGE_MASK)) {
11672 + up_write(&current->mm->mmap_sem);
11673 + if (vma)
11674 + kmem_cache_free(vm_area_cachep, vma);
11675 + return 1;
11676 + }
11677 +
11678 + if (pax_insert_vma(vma, call_dl_resolve)) {
11679 + up_write(&current->mm->mmap_sem);
11680 + kmem_cache_free(vm_area_cachep, vma);
11681 + return 1;
11682 + }
11683 +
11684 + current->mm->call_dl_resolve = call_dl_resolve;
11685 + up_write(&current->mm->mmap_sem);
11686 +
11687 +emulate:
11688 + regs->u_regs[UREG_G1] = (sethi & 0x003FFFFFU) << 10;
11689 + regs->tpc = call_dl_resolve;
11690 + regs->tnpc = addr+4;
11691 + return 3;
11692 + }
11693 +#endif
11694 +
11695 + /* PaX: glibc 2.4+ generates sethi/jmpl instead of save/call */
11696 + if ((save & 0xFFC00000U) == 0x05000000U &&
11697 + (call & 0xFFFFE000U) == 0x85C0A000U &&
11698 + nop == 0x01000000U)
11699 + {
11700 + regs->u_regs[UREG_G1] = (sethi & 0x003FFFFFU) << 10;
11701 + regs->u_regs[UREG_G2] = addr + 4;
11702 + addr = (save & 0x003FFFFFU) << 10;
11703 + addr += (((call | 0xFFFFFFFFFFFFE000UL) ^ 0x00001000UL) + 0x00001000UL);
11704 +
11705 + if (test_thread_flag(TIF_32BIT))
11706 + addr &= 0xFFFFFFFFUL;
11707 +
11708 + regs->tpc = addr;
11709 + regs->tnpc = addr+4;
11710 + return 3;
11711 + }
11712 +
11713 + /* PaX: 64-bit PLT stub */
11714 + err = get_user(sethi1, (unsigned int *)addr);
11715 + err |= get_user(sethi2, (unsigned int *)(addr+4));
11716 + err |= get_user(or1, (unsigned int *)(addr+8));
11717 + err |= get_user(or2, (unsigned int *)(addr+12));
11718 + err |= get_user(sllx, (unsigned int *)(addr+16));
11719 + err |= get_user(add, (unsigned int *)(addr+20));
11720 + err |= get_user(jmpl, (unsigned int *)(addr+24));
11721 + err |= get_user(nop, (unsigned int *)(addr+28));
11722 + if (err)
11723 + break;
11724 +
11725 + if ((sethi1 & 0xFFC00000U) == 0x09000000U &&
11726 + (sethi2 & 0xFFC00000U) == 0x0B000000U &&
11727 + (or1 & 0xFFFFE000U) == 0x88112000U &&
11728 + (or2 & 0xFFFFE000U) == 0x8A116000U &&
11729 + sllx == 0x89293020U &&
11730 + add == 0x8A010005U &&
11731 + jmpl == 0x89C14000U &&
11732 + nop == 0x01000000U)
11733 + {
11734 + regs->u_regs[UREG_G1] = (sethi & 0x003FFFFFU) << 10;
11735 + regs->u_regs[UREG_G4] = ((sethi1 & 0x003FFFFFU) << 10) | (or1 & 0x000003FFU);
11736 + regs->u_regs[UREG_G4] <<= 32;
11737 + regs->u_regs[UREG_G5] = ((sethi2 & 0x003FFFFFU) << 10) | (or2 & 0x000003FFU);
11738 + regs->u_regs[UREG_G5] += regs->u_regs[UREG_G4];
11739 + regs->u_regs[UREG_G4] = addr + 24;
11740 + addr = regs->u_regs[UREG_G5];
11741 + regs->tpc = addr;
11742 + regs->tnpc = addr+4;
11743 + return 3;
11744 + }
11745 + }
11746 + } while (0);
11747 +
11748 +#ifdef CONFIG_PAX_DLRESOLVE
11749 + do { /* PaX: unpatched PLT emulation step 2 */
11750 + unsigned int save, call, nop;
11751 +
11752 + err = get_user(save, (unsigned int *)(regs->tpc-4));
11753 + err |= get_user(call, (unsigned int *)regs->tpc);
11754 + err |= get_user(nop, (unsigned int *)(regs->tpc+4));
11755 + if (err)
11756 + break;
11757 +
11758 + if (save == 0x9DE3BFA8U &&
11759 + (call & 0xC0000000U) == 0x40000000U &&
11760 + nop == 0x01000000U)
11761 + {
11762 + unsigned long dl_resolve = regs->tpc + ((((call | 0xFFFFFFFFC0000000UL) ^ 0x20000000UL) + 0x20000000UL) << 2);
11763 +
11764 + if (test_thread_flag(TIF_32BIT))
11765 + dl_resolve &= 0xFFFFFFFFUL;
11766 +
11767 + regs->u_regs[UREG_RETPC] = regs->tpc;
11768 + regs->tpc = dl_resolve;
11769 + regs->tnpc = dl_resolve+4;
11770 + return 3;
11771 + }
11772 + } while (0);
11773 +#endif
11774 +
11775 + do { /* PaX: patched PLT emulation #7, must be AFTER the unpatched PLT emulation */
11776 + unsigned int sethi, ba, nop;
11777 +
11778 + err = get_user(sethi, (unsigned int *)regs->tpc);
11779 + err |= get_user(ba, (unsigned int *)(regs->tpc+4));
11780 + err |= get_user(nop, (unsigned int *)(regs->tpc+8));
11781 +
11782 + if (err)
11783 + break;
11784 +
11785 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11786 + (ba & 0xFFF00000U) == 0x30600000U &&
11787 + nop == 0x01000000U)
11788 + {
11789 + unsigned long addr;
11790 +
11791 + addr = (sethi & 0x003FFFFFU) << 10;
11792 + regs->u_regs[UREG_G1] = addr;
11793 + addr = regs->tpc + ((((ba | 0xFFFFFFFFFFF80000UL) ^ 0x00040000UL) + 0x00040000UL) << 2);
11794 +
11795 + if (test_thread_flag(TIF_32BIT))
11796 + addr &= 0xFFFFFFFFUL;
11797 +
11798 + regs->tpc = addr;
11799 + regs->tnpc = addr+4;
11800 + return 2;
11801 + }
11802 + } while (0);
11803 +
11804 +#endif
11805 +
11806 + return 1;
11807 +}
11808 +
11809 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
11810 +{
11811 + unsigned long i;
11812 +
11813 + printk(KERN_ERR "PAX: bytes at PC: ");
11814 + for (i = 0; i < 8; i++) {
11815 + unsigned int c;
11816 + if (get_user(c, (unsigned int *)pc+i))
11817 + printk(KERN_CONT "???????? ");
11818 + else
11819 + printk(KERN_CONT "%08x ", c);
11820 + }
11821 + printk("\n");
11822 +}
11823 +#endif
11824 +
11825 asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
11826 {
11827 enum ctx_state prev_state = exception_enter();
11828 @@ -353,6 +816,29 @@ retry:
11829 if (!vma)
11830 goto bad_area;
11831
11832 +#ifdef CONFIG_PAX_PAGEEXEC
11833 + /* PaX: detect ITLB misses on non-exec pages */
11834 + if ((mm->pax_flags & MF_PAX_PAGEEXEC) && vma->vm_start <= address &&
11835 + !(vma->vm_flags & VM_EXEC) && (fault_code & FAULT_CODE_ITLB))
11836 + {
11837 + if (address != regs->tpc)
11838 + goto good_area;
11839 +
11840 + up_read(&mm->mmap_sem);
11841 + switch (pax_handle_fetch_fault(regs)) {
11842 +
11843 +#ifdef CONFIG_PAX_EMUPLT
11844 + case 2:
11845 + case 3:
11846 + return;
11847 +#endif
11848 +
11849 + }
11850 + pax_report_fault(regs, (void *)regs->tpc, (void *)(regs->u_regs[UREG_FP] + STACK_BIAS));
11851 + do_group_exit(SIGKILL);
11852 + }
11853 +#endif
11854 +
11855 /* Pure DTLB misses do not tell us whether the fault causing
11856 * load/store/atomic was a write or not, it only says that there
11857 * was no match. So in such a case we (carefully) read the
11858 diff --git a/arch/sparc/mm/hugetlbpage.c b/arch/sparc/mm/hugetlbpage.c
11859 index 131eaf4..285ea31 100644
11860 --- a/arch/sparc/mm/hugetlbpage.c
11861 +++ b/arch/sparc/mm/hugetlbpage.c
11862 @@ -25,8 +25,10 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *filp,
11863 unsigned long addr,
11864 unsigned long len,
11865 unsigned long pgoff,
11866 - unsigned long flags)
11867 + unsigned long flags,
11868 + unsigned long offset)
11869 {
11870 + struct mm_struct *mm = current->mm;
11871 unsigned long task_size = TASK_SIZE;
11872 struct vm_unmapped_area_info info;
11873
11874 @@ -35,15 +37,22 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *filp,
11875
11876 info.flags = 0;
11877 info.length = len;
11878 - info.low_limit = TASK_UNMAPPED_BASE;
11879 + info.low_limit = mm->mmap_base;
11880 info.high_limit = min(task_size, VA_EXCLUDE_START);
11881 info.align_mask = PAGE_MASK & ~HPAGE_MASK;
11882 info.align_offset = 0;
11883 + info.threadstack_offset = offset;
11884 addr = vm_unmapped_area(&info);
11885
11886 if ((addr & ~PAGE_MASK) && task_size > VA_EXCLUDE_END) {
11887 VM_BUG_ON(addr != -ENOMEM);
11888 info.low_limit = VA_EXCLUDE_END;
11889 +
11890 +#ifdef CONFIG_PAX_RANDMMAP
11891 + if (mm->pax_flags & MF_PAX_RANDMMAP)
11892 + info.low_limit += mm->delta_mmap;
11893 +#endif
11894 +
11895 info.high_limit = task_size;
11896 addr = vm_unmapped_area(&info);
11897 }
11898 @@ -55,7 +64,8 @@ static unsigned long
11899 hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
11900 const unsigned long len,
11901 const unsigned long pgoff,
11902 - const unsigned long flags)
11903 + const unsigned long flags,
11904 + const unsigned long offset)
11905 {
11906 struct mm_struct *mm = current->mm;
11907 unsigned long addr = addr0;
11908 @@ -70,6 +80,7 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
11909 info.high_limit = mm->mmap_base;
11910 info.align_mask = PAGE_MASK & ~HPAGE_MASK;
11911 info.align_offset = 0;
11912 + info.threadstack_offset = offset;
11913 addr = vm_unmapped_area(&info);
11914
11915 /*
11916 @@ -82,6 +93,12 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
11917 VM_BUG_ON(addr != -ENOMEM);
11918 info.flags = 0;
11919 info.low_limit = TASK_UNMAPPED_BASE;
11920 +
11921 +#ifdef CONFIG_PAX_RANDMMAP
11922 + if (mm->pax_flags & MF_PAX_RANDMMAP)
11923 + info.low_limit += mm->delta_mmap;
11924 +#endif
11925 +
11926 info.high_limit = STACK_TOP32;
11927 addr = vm_unmapped_area(&info);
11928 }
11929 @@ -96,6 +113,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
11930 struct mm_struct *mm = current->mm;
11931 struct vm_area_struct *vma;
11932 unsigned long task_size = TASK_SIZE;
11933 + unsigned long offset = gr_rand_threadstack_offset(mm, file, flags);
11934
11935 if (test_thread_flag(TIF_32BIT))
11936 task_size = STACK_TOP32;
11937 @@ -111,19 +129,22 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
11938 return addr;
11939 }
11940
11941 +#ifdef CONFIG_PAX_RANDMMAP
11942 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
11943 +#endif
11944 +
11945 if (addr) {
11946 addr = ALIGN(addr, HPAGE_SIZE);
11947 vma = find_vma(mm, addr);
11948 - if (task_size - len >= addr &&
11949 - (!vma || addr + len <= vma->vm_start))
11950 + if (task_size - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
11951 return addr;
11952 }
11953 if (mm->get_unmapped_area == arch_get_unmapped_area)
11954 return hugetlb_get_unmapped_area_bottomup(file, addr, len,
11955 - pgoff, flags);
11956 + pgoff, flags, offset);
11957 else
11958 return hugetlb_get_unmapped_area_topdown(file, addr, len,
11959 - pgoff, flags);
11960 + pgoff, flags, offset);
11961 }
11962
11963 pte_t *huge_pte_alloc(struct mm_struct *mm,
11964 diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
11965 index 3025bd5..4934c29 100644
11966 --- a/arch/sparc/mm/init_64.c
11967 +++ b/arch/sparc/mm/init_64.c
11968 @@ -189,9 +189,9 @@ unsigned long sparc64_kern_sec_context __read_mostly;
11969 int num_kernel_image_mappings;
11970
11971 #ifdef CONFIG_DEBUG_DCFLUSH
11972 -atomic_t dcpage_flushes = ATOMIC_INIT(0);
11973 +atomic_unchecked_t dcpage_flushes = ATOMIC_INIT(0);
11974 #ifdef CONFIG_SMP
11975 -atomic_t dcpage_flushes_xcall = ATOMIC_INIT(0);
11976 +atomic_unchecked_t dcpage_flushes_xcall = ATOMIC_INIT(0);
11977 #endif
11978 #endif
11979
11980 @@ -199,7 +199,7 @@ inline void flush_dcache_page_impl(struct page *page)
11981 {
11982 BUG_ON(tlb_type == hypervisor);
11983 #ifdef CONFIG_DEBUG_DCFLUSH
11984 - atomic_inc(&dcpage_flushes);
11985 + atomic_inc_unchecked(&dcpage_flushes);
11986 #endif
11987
11988 #ifdef DCACHE_ALIASING_POSSIBLE
11989 @@ -471,10 +471,10 @@ void mmu_info(struct seq_file *m)
11990
11991 #ifdef CONFIG_DEBUG_DCFLUSH
11992 seq_printf(m, "DCPageFlushes\t: %d\n",
11993 - atomic_read(&dcpage_flushes));
11994 + atomic_read_unchecked(&dcpage_flushes));
11995 #ifdef CONFIG_SMP
11996 seq_printf(m, "DCPageFlushesXC\t: %d\n",
11997 - atomic_read(&dcpage_flushes_xcall));
11998 + atomic_read_unchecked(&dcpage_flushes_xcall));
11999 #endif /* CONFIG_SMP */
12000 #endif /* CONFIG_DEBUG_DCFLUSH */
12001 }
12002 diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig
12003 index 8ec7a45..b0c6dc1 100644
12004 --- a/arch/tile/Kconfig
12005 +++ b/arch/tile/Kconfig
12006 @@ -205,6 +205,7 @@ source "kernel/Kconfig.hz"
12007 config KEXEC
12008 bool "kexec system call"
12009 select KEXEC_CORE
12010 + depends on !GRKERNSEC_KMEM
12011 ---help---
12012 kexec is a system call that implements the ability to shutdown your
12013 current kernel, and to start another kernel. It is like a reboot
12014 diff --git a/arch/tile/include/asm/atomic_64.h b/arch/tile/include/asm/atomic_64.h
12015 index 51cabc2..77cceee 100644
12016 --- a/arch/tile/include/asm/atomic_64.h
12017 +++ b/arch/tile/include/asm/atomic_64.h
12018 @@ -145,6 +145,16 @@ static inline void atomic64_xor(long i, atomic64_t *v)
12019
12020 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
12021
12022 +#define atomic64_read_unchecked(v) atomic64_read(v)
12023 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
12024 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
12025 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
12026 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
12027 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
12028 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
12029 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
12030 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
12031 +
12032 #endif /* !__ASSEMBLY__ */
12033
12034 #endif /* _ASM_TILE_ATOMIC_64_H */
12035 diff --git a/arch/tile/include/asm/cache.h b/arch/tile/include/asm/cache.h
12036 index 6160761..00cac88 100644
12037 --- a/arch/tile/include/asm/cache.h
12038 +++ b/arch/tile/include/asm/cache.h
12039 @@ -15,11 +15,12 @@
12040 #ifndef _ASM_TILE_CACHE_H
12041 #define _ASM_TILE_CACHE_H
12042
12043 +#include <linux/const.h>
12044 #include <arch/chip.h>
12045
12046 /* bytes per L1 data cache line */
12047 #define L1_CACHE_SHIFT CHIP_L1D_LOG_LINE_SIZE()
12048 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
12049 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
12050
12051 /* bytes per L2 cache line */
12052 #define L2_CACHE_SHIFT CHIP_L2_LOG_LINE_SIZE()
12053 diff --git a/arch/tile/include/asm/uaccess.h b/arch/tile/include/asm/uaccess.h
12054 index 0a9c4265..bfb62d1 100644
12055 --- a/arch/tile/include/asm/uaccess.h
12056 +++ b/arch/tile/include/asm/uaccess.h
12057 @@ -429,9 +429,9 @@ static inline unsigned long __must_check copy_from_user(void *to,
12058 const void __user *from,
12059 unsigned long n)
12060 {
12061 - int sz = __compiletime_object_size(to);
12062 + size_t sz = __compiletime_object_size(to);
12063
12064 - if (likely(sz == -1 || sz >= n))
12065 + if (likely(sz == (size_t)-1 || sz >= n))
12066 n = _copy_from_user(to, from, n);
12067 else
12068 copy_from_user_overflow();
12069 diff --git a/arch/tile/mm/hugetlbpage.c b/arch/tile/mm/hugetlbpage.c
12070 index c034dc3..cf1cc96 100644
12071 --- a/arch/tile/mm/hugetlbpage.c
12072 +++ b/arch/tile/mm/hugetlbpage.c
12073 @@ -174,6 +174,7 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *file,
12074 info.high_limit = TASK_SIZE;
12075 info.align_mask = PAGE_MASK & ~huge_page_mask(h);
12076 info.align_offset = 0;
12077 + info.threadstack_offset = 0;
12078 return vm_unmapped_area(&info);
12079 }
12080
12081 @@ -191,6 +192,7 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
12082 info.high_limit = current->mm->mmap_base;
12083 info.align_mask = PAGE_MASK & ~huge_page_mask(h);
12084 info.align_offset = 0;
12085 + info.threadstack_offset = 0;
12086 addr = vm_unmapped_area(&info);
12087
12088 /*
12089 diff --git a/arch/um/Makefile b/arch/um/Makefile
12090 index e3abe6f..ae224ef 100644
12091 --- a/arch/um/Makefile
12092 +++ b/arch/um/Makefile
12093 @@ -73,6 +73,10 @@ USER_CFLAGS = $(patsubst $(KERNEL_DEFINES),,$(patsubst -I%,,$(KBUILD_CFLAGS))) \
12094 -D_FILE_OFFSET_BITS=64 -idirafter $(srctree)/include \
12095 -idirafter $(obj)/include -D__KERNEL__ -D__UM_HOST__
12096
12097 +ifdef CONSTIFY_PLUGIN
12098 +USER_CFLAGS += -fplugin-arg-constify_plugin-no-constify
12099 +endif
12100 +
12101 #This will adjust *FLAGS accordingly to the platform.
12102 include $(ARCH_DIR)/Makefile-os-$(OS)
12103
12104 diff --git a/arch/um/include/asm/cache.h b/arch/um/include/asm/cache.h
12105 index 19e1bdd..3665b77 100644
12106 --- a/arch/um/include/asm/cache.h
12107 +++ b/arch/um/include/asm/cache.h
12108 @@ -1,6 +1,7 @@
12109 #ifndef __UM_CACHE_H
12110 #define __UM_CACHE_H
12111
12112 +#include <linux/const.h>
12113
12114 #if defined(CONFIG_UML_X86) && !defined(CONFIG_64BIT)
12115 # define L1_CACHE_SHIFT (CONFIG_X86_L1_CACHE_SHIFT)
12116 @@ -12,6 +13,6 @@
12117 # define L1_CACHE_SHIFT 5
12118 #endif
12119
12120 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
12121 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
12122
12123 #endif
12124 diff --git a/arch/um/include/asm/kmap_types.h b/arch/um/include/asm/kmap_types.h
12125 index 2e0a6b1..a64d0f5 100644
12126 --- a/arch/um/include/asm/kmap_types.h
12127 +++ b/arch/um/include/asm/kmap_types.h
12128 @@ -8,6 +8,6 @@
12129
12130 /* No more #include "asm/arch/kmap_types.h" ! */
12131
12132 -#define KM_TYPE_NR 14
12133 +#define KM_TYPE_NR 15
12134
12135 #endif
12136 diff --git a/arch/um/include/asm/page.h b/arch/um/include/asm/page.h
12137 index 71c5d13..4c7b9f1 100644
12138 --- a/arch/um/include/asm/page.h
12139 +++ b/arch/um/include/asm/page.h
12140 @@ -14,6 +14,9 @@
12141 #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT)
12142 #define PAGE_MASK (~(PAGE_SIZE-1))
12143
12144 +#define ktla_ktva(addr) (addr)
12145 +#define ktva_ktla(addr) (addr)
12146 +
12147 #ifndef __ASSEMBLY__
12148
12149 struct page;
12150 diff --git a/arch/um/include/asm/pgtable-3level.h b/arch/um/include/asm/pgtable-3level.h
12151 index 2b4274e..754fe06 100644
12152 --- a/arch/um/include/asm/pgtable-3level.h
12153 +++ b/arch/um/include/asm/pgtable-3level.h
12154 @@ -58,6 +58,7 @@
12155 #define pud_present(x) (pud_val(x) & _PAGE_PRESENT)
12156 #define pud_populate(mm, pud, pmd) \
12157 set_pud(pud, __pud(_PAGE_TABLE + __pa(pmd)))
12158 +#define pud_populate_kernel(mm, pud, pmd) pud_populate((mm), (pud), (pmd))
12159
12160 #ifdef CONFIG_64BIT
12161 #define set_pud(pudptr, pudval) set_64bit((u64 *) (pudptr), pud_val(pudval))
12162 diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c
12163 index 48af59a..4c75105 100644
12164 --- a/arch/um/kernel/process.c
12165 +++ b/arch/um/kernel/process.c
12166 @@ -347,22 +347,6 @@ int singlestepping(void * t)
12167 return 2;
12168 }
12169
12170 -/*
12171 - * Only x86 and x86_64 have an arch_align_stack().
12172 - * All other arches have "#define arch_align_stack(x) (x)"
12173 - * in their asm/exec.h
12174 - * As this is included in UML from asm-um/system-generic.h,
12175 - * we can use it to behave as the subarch does.
12176 - */
12177 -#ifndef arch_align_stack
12178 -unsigned long arch_align_stack(unsigned long sp)
12179 -{
12180 - if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
12181 - sp -= get_random_int() % 8192;
12182 - return sp & ~0xf;
12183 -}
12184 -#endif
12185 -
12186 unsigned long get_wchan(struct task_struct *p)
12187 {
12188 unsigned long stack_page, sp, ip;
12189 diff --git a/arch/unicore32/include/asm/cache.h b/arch/unicore32/include/asm/cache.h
12190 index ad8f795..2c7eec6 100644
12191 --- a/arch/unicore32/include/asm/cache.h
12192 +++ b/arch/unicore32/include/asm/cache.h
12193 @@ -12,8 +12,10 @@
12194 #ifndef __UNICORE_CACHE_H__
12195 #define __UNICORE_CACHE_H__
12196
12197 -#define L1_CACHE_SHIFT (5)
12198 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
12199 +#include <linux/const.h>
12200 +
12201 +#define L1_CACHE_SHIFT 5
12202 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
12203
12204 /*
12205 * Memory returned by kmalloc() may be used for DMA, so we must make
12206 diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
12207 index db3622f..8a6202c 100644
12208 --- a/arch/x86/Kconfig
12209 +++ b/arch/x86/Kconfig
12210 @@ -36,14 +36,13 @@ config X86
12211 select ARCH_MIGHT_HAVE_PC_SERIO
12212 select ARCH_SUPPORTS_ATOMIC_RMW
12213 select ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT
12214 - select ARCH_SUPPORTS_INT128 if X86_64
12215 + select ARCH_SUPPORTS_INT128 if X86_64 && !PAX_SIZE_OVERFLOW
12216 select ARCH_SUPPORTS_NUMA_BALANCING if X86_64
12217 select ARCH_USE_BUILTIN_BSWAP
12218 select ARCH_USE_CMPXCHG_LOCKREF if X86_64
12219 select ARCH_USE_QUEUED_RWLOCKS
12220 select ARCH_USE_QUEUED_SPINLOCKS
12221 select ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH if SMP
12222 - select ARCH_WANTS_DYNAMIC_TASK_STRUCT
12223 select ARCH_WANT_FRAME_POINTERS
12224 select ARCH_WANT_IPC_PARSE_VERSION if X86_32
12225 select ARCH_WANT_OPTIONAL_GPIOLIB
12226 @@ -87,7 +86,7 @@ config X86
12227 select HAVE_ARCH_TRACEHOOK
12228 select HAVE_ARCH_TRANSPARENT_HUGEPAGE
12229 select HAVE_BPF_JIT if X86_64
12230 - select HAVE_CC_STACKPROTECTOR
12231 + select HAVE_CC_STACKPROTECTOR if X86_64 || !PAX_MEMORY_UDEREF
12232 select HAVE_CMPXCHG_DOUBLE
12233 select HAVE_CMPXCHG_LOCAL
12234 select HAVE_CONTEXT_TRACKING if X86_64
12235 @@ -276,7 +275,7 @@ config X86_64_SMP
12236
12237 config X86_32_LAZY_GS
12238 def_bool y
12239 - depends on X86_32 && !CC_STACKPROTECTOR
12240 + depends on X86_32 && !CC_STACKPROTECTOR && !PAX_MEMORY_UDEREF
12241
12242 config ARCH_HWEIGHT_CFLAGS
12243 string
12244 @@ -648,6 +647,7 @@ config SCHED_OMIT_FRAME_POINTER
12245
12246 menuconfig HYPERVISOR_GUEST
12247 bool "Linux guest support"
12248 + depends on !GRKERNSEC_CONFIG_AUTO || GRKERNSEC_CONFIG_VIRT_GUEST || (GRKERNSEC_CONFIG_VIRT_HOST && GRKERNSEC_CONFIG_VIRT_XEN)
12249 ---help---
12250 Say Y here to enable options for running Linux under various hyper-
12251 visors. This option enables basic hypervisor detection and platform
12252 @@ -1039,6 +1039,7 @@ config VM86
12253
12254 config X86_16BIT
12255 bool "Enable support for 16-bit segments" if EXPERT
12256 + depends on !GRKERNSEC
12257 default y
12258 depends on MODIFY_LDT_SYSCALL
12259 ---help---
12260 @@ -1192,6 +1193,7 @@ choice
12261
12262 config NOHIGHMEM
12263 bool "off"
12264 + depends on !(PAX_PAGEEXEC && PAX_ENABLE_PAE)
12265 ---help---
12266 Linux can use up to 64 Gigabytes of physical memory on x86 systems.
12267 However, the address space of 32-bit x86 processors is only 4
12268 @@ -1228,6 +1230,7 @@ config NOHIGHMEM
12269
12270 config HIGHMEM4G
12271 bool "4GB"
12272 + depends on !(PAX_PAGEEXEC && PAX_ENABLE_PAE)
12273 ---help---
12274 Select this if you have a 32-bit processor and between 1 and 4
12275 gigabytes of physical RAM.
12276 @@ -1280,7 +1283,7 @@ config PAGE_OFFSET
12277 hex
12278 default 0xB0000000 if VMSPLIT_3G_OPT
12279 default 0x80000000 if VMSPLIT_2G
12280 - default 0x78000000 if VMSPLIT_2G_OPT
12281 + default 0x70000000 if VMSPLIT_2G_OPT
12282 default 0x40000000 if VMSPLIT_1G
12283 default 0xC0000000
12284 depends on X86_32
12285 @@ -1301,7 +1304,6 @@ config X86_PAE
12286
12287 config ARCH_PHYS_ADDR_T_64BIT
12288 def_bool y
12289 - depends on X86_64 || X86_PAE
12290
12291 config ARCH_DMA_ADDR_T_64BIT
12292 def_bool y
12293 @@ -1432,7 +1434,7 @@ config ARCH_PROC_KCORE_TEXT
12294
12295 config ILLEGAL_POINTER_VALUE
12296 hex
12297 - default 0 if X86_32
12298 + default 0xfffff000 if X86_32
12299 default 0xdead000000000000 if X86_64
12300
12301 source "mm/Kconfig"
12302 @@ -1741,6 +1743,7 @@ source kernel/Kconfig.hz
12303 config KEXEC
12304 bool "kexec system call"
12305 select KEXEC_CORE
12306 + depends on !GRKERNSEC_KMEM
12307 ---help---
12308 kexec is a system call that implements the ability to shutdown your
12309 current kernel, and to start another kernel. It is like a reboot
12310 @@ -1923,7 +1926,9 @@ config X86_NEED_RELOCS
12311
12312 config PHYSICAL_ALIGN
12313 hex "Alignment value to which kernel should be aligned"
12314 - default "0x200000"
12315 + default "0x1000000"
12316 + range 0x200000 0x1000000 if PAX_KERNEXEC && X86_PAE
12317 + range 0x400000 0x1000000 if PAX_KERNEXEC && !X86_PAE
12318 range 0x2000 0x1000000 if X86_32
12319 range 0x200000 0x1000000 if X86_64
12320 ---help---
12321 @@ -2006,6 +2011,7 @@ config COMPAT_VDSO
12322 def_bool n
12323 prompt "Disable the 32-bit vDSO (needed for glibc 2.3.3)"
12324 depends on X86_32 || IA32_EMULATION
12325 + depends on !PAX_PAGEEXEC && !PAX_SEGMEXEC && !PAX_KERNEXEC && !PAX_MEMORY_UDEREF
12326 ---help---
12327 Certain buggy versions of glibc will crash if they are
12328 presented with a 32-bit vDSO that is not mapped at the address
12329 @@ -2046,15 +2052,6 @@ choice
12330
12331 If unsure, select "Emulate".
12332
12333 - config LEGACY_VSYSCALL_NATIVE
12334 - bool "Native"
12335 - help
12336 - Actual executable code is located in the fixed vsyscall
12337 - address mapping, implementing time() efficiently. Since
12338 - this makes the mapping executable, it can be used during
12339 - security vulnerability exploitation (traditionally as
12340 - ROP gadgets). This configuration is not recommended.
12341 -
12342 config LEGACY_VSYSCALL_EMULATE
12343 bool "Emulate"
12344 help
12345 @@ -2135,6 +2132,22 @@ config MODIFY_LDT_SYSCALL
12346
12347 Saying 'N' here may make sense for embedded or server kernels.
12348
12349 +config DEFAULT_MODIFY_LDT_SYSCALL
12350 + bool "Allow userspace to modify the LDT by default"
12351 + default y
12352 +
12353 + ---help---
12354 + Modifying the LDT (Local Descriptor Table) may be needed to run a
12355 + 16-bit or segmented code such as Dosemu or Wine. This is done via
12356 + a system call which is not needed to run portable applications,
12357 + and which can sometimes be abused to exploit some weaknesses of
12358 + the architecture, opening new vulnerabilities.
12359 +
12360 + For this reason this option allows one to enable or disable the
12361 + feature at runtime. It is recommended to say 'N' here to leave
12362 + the system protected, and to enable it at runtime only if needed
12363 + by setting the sys.kernel.modify_ldt sysctl.
12364 +
12365 source "kernel/livepatch/Kconfig"
12366
12367 endmenu
12368 diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
12369 index 3ba5ff2..44bdacc 100644
12370 --- a/arch/x86/Kconfig.cpu
12371 +++ b/arch/x86/Kconfig.cpu
12372 @@ -329,7 +329,7 @@ config X86_PPRO_FENCE
12373
12374 config X86_F00F_BUG
12375 def_bool y
12376 - depends on M586MMX || M586TSC || M586 || M486
12377 + depends on (M586MMX || M586TSC || M586 || M486) && !PAX_KERNEXEC
12378
12379 config X86_INVD_BUG
12380 def_bool y
12381 @@ -337,7 +337,7 @@ config X86_INVD_BUG
12382
12383 config X86_ALIGNMENT_16
12384 def_bool y
12385 - depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODEGX1
12386 + depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || X86_ELAN || MK8 || MK7 || MK6 || MCORE2 || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODEGX1
12387
12388 config X86_INTEL_USERCOPY
12389 def_bool y
12390 @@ -379,7 +379,7 @@ config X86_CMPXCHG64
12391 # generates cmov.
12392 config X86_CMOV
12393 def_bool y
12394 - depends on (MK8 || MK7 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64 || MATOM || MGEODE_LX)
12395 + depends on (MK8 || MK7 || MCORE2 || MPSC || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64 || MATOM || MGEODE_LX)
12396
12397 config X86_MINIMUM_CPU_FAMILY
12398 int
12399 diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
12400 index 137dfa9..6efdd4e 100644
12401 --- a/arch/x86/Kconfig.debug
12402 +++ b/arch/x86/Kconfig.debug
12403 @@ -72,6 +72,7 @@ config X86_PTDUMP
12404 bool "Export kernel pagetable layout to userspace via debugfs"
12405 depends on DEBUG_KERNEL
12406 select DEBUG_FS
12407 + depends on !GRKERNSEC_KMEM
12408 select X86_PTDUMP_CORE
12409 ---help---
12410 Say Y here if you want to show the kernel pagetable layout in a
12411 @@ -94,7 +95,7 @@ config EFI_PGT_DUMP
12412 config DEBUG_RODATA
12413 bool "Write protect kernel read-only data structures"
12414 default y
12415 - depends on DEBUG_KERNEL
12416 + depends on DEBUG_KERNEL && BROKEN
12417 ---help---
12418 Mark the kernel read-only data as write-protected in the pagetables,
12419 in order to catch accidental (and incorrect) writes to such const
12420 @@ -140,7 +141,7 @@ config DEBUG_WX
12421
12422 config DEBUG_SET_MODULE_RONX
12423 bool "Set loadable kernel module data as NX and text as RO"
12424 - depends on MODULES
12425 + depends on MODULES && BROKEN
12426 ---help---
12427 This option helps catch unintended modifications to loadable
12428 kernel module's text and read-only data. It also prevents execution
12429 @@ -392,6 +393,7 @@ config X86_DEBUG_FPU
12430 config PUNIT_ATOM_DEBUG
12431 tristate "ATOM Punit debug driver"
12432 select DEBUG_FS
12433 + depends on !GRKERNSEC_KMEM
12434 select IOSF_MBI
12435 ---help---
12436 This is a debug driver, which gets the power states
12437 diff --git a/arch/x86/Makefile b/arch/x86/Makefile
12438 index 4086abc..52a0a9b 100644
12439 --- a/arch/x86/Makefile
12440 +++ b/arch/x86/Makefile
12441 @@ -75,9 +75,6 @@ ifeq ($(CONFIG_X86_32),y)
12442 # CPU-specific tuning. Anything which can be shared with UML should go here.
12443 include arch/x86/Makefile_32.cpu
12444 KBUILD_CFLAGS += $(cflags-y)
12445 -
12446 - # temporary until string.h is fixed
12447 - KBUILD_CFLAGS += -ffreestanding
12448 else
12449 BITS := 64
12450 UTS_MACHINE := x86_64
12451 @@ -126,6 +123,9 @@ else
12452 KBUILD_CFLAGS += $(call cc-option,-maccumulate-outgoing-args)
12453 endif
12454
12455 +# temporary until string.h is fixed
12456 +KBUILD_CFLAGS += -ffreestanding
12457 +
12458 # Make sure compiler does not have buggy stack-protector support.
12459 ifdef CONFIG_CC_STACKPROTECTOR
12460 cc_has_sp := $(srctree)/scripts/gcc-x86_$(BITS)-has-stack-protector.sh
12461 @@ -199,6 +199,7 @@ archheaders:
12462 $(Q)$(MAKE) $(build)=arch/x86/entry/syscalls all
12463
12464 archprepare:
12465 + $(if $(LDFLAGS_BUILD_ID),,$(error $(OLD_LD)))
12466 ifeq ($(CONFIG_KEXEC_FILE),y)
12467 $(Q)$(MAKE) $(build)=arch/x86/purgatory arch/x86/purgatory/kexec-purgatory.c
12468 endif
12469 @@ -284,3 +285,9 @@ define archhelp
12470 echo ' FDARGS="..." arguments for the booted kernel'
12471 echo ' FDINITRD=file initrd for the booted kernel'
12472 endef
12473 +
12474 +define OLD_LD
12475 +
12476 +*** ${VERSION}.${PATCHLEVEL} PaX kernels no longer build correctly with old versions of binutils.
12477 +*** Please upgrade your binutils to 2.18 or newer
12478 +endef
12479 diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile
12480 index 2ee62db..5f320a9 100644
12481 --- a/arch/x86/boot/Makefile
12482 +++ b/arch/x86/boot/Makefile
12483 @@ -58,6 +58,9 @@ clean-files += cpustr.h
12484 # ---------------------------------------------------------------------------
12485
12486 KBUILD_CFLAGS := $(USERINCLUDE) $(REALMODE_CFLAGS) -D_SETUP
12487 +ifdef CONSTIFY_PLUGIN
12488 +KBUILD_CFLAGS += -fplugin-arg-constify_plugin-no-constify
12489 +endif
12490 KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
12491 GCOV_PROFILE := n
12492
12493 diff --git a/arch/x86/boot/bitops.h b/arch/x86/boot/bitops.h
12494 index 878e4b9..20537ab 100644
12495 --- a/arch/x86/boot/bitops.h
12496 +++ b/arch/x86/boot/bitops.h
12497 @@ -26,7 +26,7 @@ static inline int variable_test_bit(int nr, const void *addr)
12498 u8 v;
12499 const u32 *p = (const u32 *)addr;
12500
12501 - asm("btl %2,%1; setc %0" : "=qm" (v) : "m" (*p), "Ir" (nr));
12502 + asm volatile("btl %2,%1; setc %0" : "=qm" (v) : "m" (*p), "Ir" (nr));
12503 return v;
12504 }
12505
12506 @@ -37,7 +37,7 @@ static inline int variable_test_bit(int nr, const void *addr)
12507
12508 static inline void set_bit(int nr, void *addr)
12509 {
12510 - asm("btsl %1,%0" : "+m" (*(u32 *)addr) : "Ir" (nr));
12511 + asm volatile("btsl %1,%0" : "+m" (*(u32 *)addr) : "Ir" (nr));
12512 }
12513
12514 #endif /* BOOT_BITOPS_H */
12515 diff --git a/arch/x86/boot/boot.h b/arch/x86/boot/boot.h
12516 index 9011a88..06aa820 100644
12517 --- a/arch/x86/boot/boot.h
12518 +++ b/arch/x86/boot/boot.h
12519 @@ -83,7 +83,7 @@ static inline void io_delay(void)
12520 static inline u16 ds(void)
12521 {
12522 u16 seg;
12523 - asm("movw %%ds,%0" : "=rm" (seg));
12524 + asm volatile("movw %%ds,%0" : "=rm" (seg));
12525 return seg;
12526 }
12527
12528 diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
12529 index 0a291cd..9686efc 100644
12530 --- a/arch/x86/boot/compressed/Makefile
12531 +++ b/arch/x86/boot/compressed/Makefile
12532 @@ -30,6 +30,9 @@ KBUILD_CFLAGS += $(cflags-y)
12533 KBUILD_CFLAGS += -mno-mmx -mno-sse
12534 KBUILD_CFLAGS += $(call cc-option,-ffreestanding)
12535 KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector)
12536 +ifdef CONSTIFY_PLUGIN
12537 +KBUILD_CFLAGS += -fplugin-arg-constify_plugin-no-constify
12538 +endif
12539
12540 KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
12541 GCOV_PROFILE := n
12542 diff --git a/arch/x86/boot/compressed/efi_stub_32.S b/arch/x86/boot/compressed/efi_stub_32.S
12543 index a53440e..c3dbf1e 100644
12544 --- a/arch/x86/boot/compressed/efi_stub_32.S
12545 +++ b/arch/x86/boot/compressed/efi_stub_32.S
12546 @@ -46,16 +46,13 @@ ENTRY(efi_call_phys)
12547 * parameter 2, ..., param n. To make things easy, we save the return
12548 * address of efi_call_phys in a global variable.
12549 */
12550 - popl %ecx
12551 - movl %ecx, saved_return_addr(%edx)
12552 - /* get the function pointer into ECX*/
12553 - popl %ecx
12554 - movl %ecx, efi_rt_function_ptr(%edx)
12555 + popl saved_return_addr(%edx)
12556 + popl efi_rt_function_ptr(%edx)
12557
12558 /*
12559 * 3. Call the physical function.
12560 */
12561 - call *%ecx
12562 + call *efi_rt_function_ptr(%edx)
12563
12564 /*
12565 * 4. Balance the stack. And because EAX contain the return value,
12566 @@ -67,15 +64,12 @@ ENTRY(efi_call_phys)
12567 1: popl %edx
12568 subl $1b, %edx
12569
12570 - movl efi_rt_function_ptr(%edx), %ecx
12571 - pushl %ecx
12572 + pushl efi_rt_function_ptr(%edx)
12573
12574 /*
12575 * 10. Push the saved return address onto the stack and return.
12576 */
12577 - movl saved_return_addr(%edx), %ecx
12578 - pushl %ecx
12579 - ret
12580 + jmpl *saved_return_addr(%edx)
12581 ENDPROC(efi_call_phys)
12582 .previous
12583
12584 diff --git a/arch/x86/boot/compressed/efi_thunk_64.S b/arch/x86/boot/compressed/efi_thunk_64.S
12585 index 630384a..278e788 100644
12586 --- a/arch/x86/boot/compressed/efi_thunk_64.S
12587 +++ b/arch/x86/boot/compressed/efi_thunk_64.S
12588 @@ -189,8 +189,8 @@ efi_gdt64:
12589 .long 0 /* Filled out by user */
12590 .word 0
12591 .quad 0x0000000000000000 /* NULL descriptor */
12592 - .quad 0x00af9a000000ffff /* __KERNEL_CS */
12593 - .quad 0x00cf92000000ffff /* __KERNEL_DS */
12594 + .quad 0x00af9b000000ffff /* __KERNEL_CS */
12595 + .quad 0x00cf93000000ffff /* __KERNEL_DS */
12596 .quad 0x0080890000000000 /* TS descriptor */
12597 .quad 0x0000000000000000 /* TS continued */
12598 efi_gdt64_end:
12599 diff --git a/arch/x86/boot/compressed/head_32.S b/arch/x86/boot/compressed/head_32.S
12600 index 8ef964d..fcfb8aa 100644
12601 --- a/arch/x86/boot/compressed/head_32.S
12602 +++ b/arch/x86/boot/compressed/head_32.S
12603 @@ -141,10 +141,10 @@ preferred_addr:
12604 addl %eax, %ebx
12605 notl %eax
12606 andl %eax, %ebx
12607 - cmpl $LOAD_PHYSICAL_ADDR, %ebx
12608 + cmpl $____LOAD_PHYSICAL_ADDR, %ebx
12609 jge 1f
12610 #endif
12611 - movl $LOAD_PHYSICAL_ADDR, %ebx
12612 + movl $____LOAD_PHYSICAL_ADDR, %ebx
12613 1:
12614
12615 /* Target address to relocate to for decompression */
12616 diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S
12617 index b0c0d16..3b44ff8 100644
12618 --- a/arch/x86/boot/compressed/head_64.S
12619 +++ b/arch/x86/boot/compressed/head_64.S
12620 @@ -95,10 +95,10 @@ ENTRY(startup_32)
12621 addl %eax, %ebx
12622 notl %eax
12623 andl %eax, %ebx
12624 - cmpl $LOAD_PHYSICAL_ADDR, %ebx
12625 + cmpl $____LOAD_PHYSICAL_ADDR, %ebx
12626 jge 1f
12627 #endif
12628 - movl $LOAD_PHYSICAL_ADDR, %ebx
12629 + movl $____LOAD_PHYSICAL_ADDR, %ebx
12630 1:
12631
12632 /* Target address to relocate to for decompression */
12633 @@ -323,10 +323,10 @@ preferred_addr:
12634 addq %rax, %rbp
12635 notq %rax
12636 andq %rax, %rbp
12637 - cmpq $LOAD_PHYSICAL_ADDR, %rbp
12638 + cmpq $____LOAD_PHYSICAL_ADDR, %rbp
12639 jge 1f
12640 #endif
12641 - movq $LOAD_PHYSICAL_ADDR, %rbp
12642 + movq $____LOAD_PHYSICAL_ADDR, %rbp
12643 1:
12644
12645 /* Target address to relocate to for decompression */
12646 @@ -435,8 +435,8 @@ gdt:
12647 .long gdt
12648 .word 0
12649 .quad 0x0000000000000000 /* NULL descriptor */
12650 - .quad 0x00af9a000000ffff /* __KERNEL_CS */
12651 - .quad 0x00cf92000000ffff /* __KERNEL_DS */
12652 + .quad 0x00af9b000000ffff /* __KERNEL_CS */
12653 + .quad 0x00cf93000000ffff /* __KERNEL_DS */
12654 .quad 0x0080890000000000 /* TS descriptor */
12655 .quad 0x0000000000000000 /* TS continued */
12656 gdt_end:
12657 diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c
12658 index 79dac17..1549446 100644
12659 --- a/arch/x86/boot/compressed/misc.c
12660 +++ b/arch/x86/boot/compressed/misc.c
12661 @@ -259,7 +259,7 @@ static void handle_relocations(void *output, unsigned long output_len)
12662 * Calculate the delta between where vmlinux was linked to load
12663 * and where it was actually loaded.
12664 */
12665 - delta = min_addr - LOAD_PHYSICAL_ADDR;
12666 + delta = min_addr - ____LOAD_PHYSICAL_ADDR;
12667 if (!delta) {
12668 debug_putstr("No relocation needed... ");
12669 return;
12670 @@ -341,7 +341,7 @@ static void parse_elf(void *output)
12671 Elf32_Ehdr ehdr;
12672 Elf32_Phdr *phdrs, *phdr;
12673 #endif
12674 - void *dest;
12675 + void *dest, *prev;
12676 int i;
12677
12678 memcpy(&ehdr, output, sizeof(ehdr));
12679 @@ -368,13 +368,16 @@ static void parse_elf(void *output)
12680 case PT_LOAD:
12681 #ifdef CONFIG_RELOCATABLE
12682 dest = output;
12683 - dest += (phdr->p_paddr - LOAD_PHYSICAL_ADDR);
12684 + dest += (phdr->p_paddr - ____LOAD_PHYSICAL_ADDR);
12685 #else
12686 dest = (void *)(phdr->p_paddr);
12687 #endif
12688 memcpy(dest,
12689 output + phdr->p_offset,
12690 phdr->p_filesz);
12691 + if (i)
12692 + memset(prev, 0xff, dest - prev);
12693 + prev = dest + phdr->p_filesz;
12694 break;
12695 default: /* Ignore other PT_* */ break;
12696 }
12697 @@ -443,7 +446,7 @@ asmlinkage __visible void *decompress_kernel(void *rmode, memptr heap,
12698 error("Destination address too large");
12699 #endif
12700 #ifndef CONFIG_RELOCATABLE
12701 - if ((unsigned long)output != LOAD_PHYSICAL_ADDR)
12702 + if ((unsigned long)output != ____LOAD_PHYSICAL_ADDR)
12703 error("Wrong destination address");
12704 #endif
12705
12706 diff --git a/arch/x86/boot/cpucheck.c b/arch/x86/boot/cpucheck.c
12707 index 1fd7d57..0f7d096 100644
12708 --- a/arch/x86/boot/cpucheck.c
12709 +++ b/arch/x86/boot/cpucheck.c
12710 @@ -125,9 +125,9 @@ int check_cpu(int *cpu_level_ptr, int *req_level_ptr, u32 **err_flags_ptr)
12711 u32 ecx = MSR_K7_HWCR;
12712 u32 eax, edx;
12713
12714 - asm("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
12715 + asm volatile("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
12716 eax &= ~(1 << 15);
12717 - asm("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
12718 + asm volatile("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
12719
12720 get_cpuflags(); /* Make sure it really did something */
12721 err = check_cpuflags();
12722 @@ -140,9 +140,9 @@ int check_cpu(int *cpu_level_ptr, int *req_level_ptr, u32 **err_flags_ptr)
12723 u32 ecx = MSR_VIA_FCR;
12724 u32 eax, edx;
12725
12726 - asm("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
12727 + asm volatile("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
12728 eax |= (1<<1)|(1<<7);
12729 - asm("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
12730 + asm volatile("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
12731
12732 set_bit(X86_FEATURE_CX8, cpu.flags);
12733 err = check_cpuflags();
12734 @@ -153,12 +153,12 @@ int check_cpu(int *cpu_level_ptr, int *req_level_ptr, u32 **err_flags_ptr)
12735 u32 eax, edx;
12736 u32 level = 1;
12737
12738 - asm("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
12739 - asm("wrmsr" : : "a" (~0), "d" (edx), "c" (ecx));
12740 - asm("cpuid"
12741 + asm volatile("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
12742 + asm volatile("wrmsr" : : "a" (~0), "d" (edx), "c" (ecx));
12743 + asm volatile("cpuid"
12744 : "+a" (level), "=d" (cpu.flags[0])
12745 : : "ecx", "ebx");
12746 - asm("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
12747 + asm volatile("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
12748
12749 err = check_cpuflags();
12750 } else if (err == 0x01 &&
12751 diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
12752 index 6236b9e..3099904 100644
12753 --- a/arch/x86/boot/header.S
12754 +++ b/arch/x86/boot/header.S
12755 @@ -438,10 +438,14 @@ setup_data: .quad 0 # 64-bit physical pointer to
12756 # single linked list of
12757 # struct setup_data
12758
12759 -pref_address: .quad LOAD_PHYSICAL_ADDR # preferred load addr
12760 +pref_address: .quad ____LOAD_PHYSICAL_ADDR # preferred load addr
12761
12762 #define ZO_INIT_SIZE (ZO__end - ZO_startup_32 + ZO_z_extract_offset)
12763 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
12764 +#define VO_INIT_SIZE (VO__end - VO__text - __PAGE_OFFSET - ____LOAD_PHYSICAL_ADDR)
12765 +#else
12766 #define VO_INIT_SIZE (VO__end - VO__text)
12767 +#endif
12768 #if ZO_INIT_SIZE > VO_INIT_SIZE
12769 #define INIT_SIZE ZO_INIT_SIZE
12770 #else
12771 diff --git a/arch/x86/boot/memory.c b/arch/x86/boot/memory.c
12772 index db75d07..8e6d0af 100644
12773 --- a/arch/x86/boot/memory.c
12774 +++ b/arch/x86/boot/memory.c
12775 @@ -19,7 +19,7 @@
12776
12777 static int detect_memory_e820(void)
12778 {
12779 - int count = 0;
12780 + unsigned int count = 0;
12781 struct biosregs ireg, oreg;
12782 struct e820entry *desc = boot_params.e820_map;
12783 static struct e820entry buf; /* static so it is zeroed */
12784 diff --git a/arch/x86/boot/video-vesa.c b/arch/x86/boot/video-vesa.c
12785 index ba3e100..6501b8f 100644
12786 --- a/arch/x86/boot/video-vesa.c
12787 +++ b/arch/x86/boot/video-vesa.c
12788 @@ -201,6 +201,7 @@ static void vesa_store_pm_info(void)
12789
12790 boot_params.screen_info.vesapm_seg = oreg.es;
12791 boot_params.screen_info.vesapm_off = oreg.di;
12792 + boot_params.screen_info.vesapm_size = oreg.cx;
12793 }
12794
12795 /*
12796 diff --git a/arch/x86/boot/video.c b/arch/x86/boot/video.c
12797 index 77780e3..86be0cb 100644
12798 --- a/arch/x86/boot/video.c
12799 +++ b/arch/x86/boot/video.c
12800 @@ -100,7 +100,7 @@ static void store_mode_params(void)
12801 static unsigned int get_entry(void)
12802 {
12803 char entry_buf[4];
12804 - int i, len = 0;
12805 + unsigned int i, len = 0;
12806 int key;
12807 unsigned int v;
12808
12809 diff --git a/arch/x86/crypto/aes-x86_64-asm_64.S b/arch/x86/crypto/aes-x86_64-asm_64.S
12810 index 9105655..41779c1 100644
12811 --- a/arch/x86/crypto/aes-x86_64-asm_64.S
12812 +++ b/arch/x86/crypto/aes-x86_64-asm_64.S
12813 @@ -8,6 +8,8 @@
12814 * including this sentence is retained in full.
12815 */
12816
12817 +#include <asm/alternative-asm.h>
12818 +
12819 .extern crypto_ft_tab
12820 .extern crypto_it_tab
12821 .extern crypto_fl_tab
12822 @@ -70,6 +72,8 @@
12823 je B192; \
12824 leaq 32(r9),r9;
12825
12826 +#define ret pax_force_retaddr; ret
12827 +
12828 #define epilogue(FUNC,r1,r2,r3,r4,r5,r6,r7,r8,r9) \
12829 movq r1,r2; \
12830 movq r3,r4; \
12831 diff --git a/arch/x86/crypto/aesni-intel_asm.S b/arch/x86/crypto/aesni-intel_asm.S
12832 index 6bd2c6c..368c93e 100644
12833 --- a/arch/x86/crypto/aesni-intel_asm.S
12834 +++ b/arch/x86/crypto/aesni-intel_asm.S
12835 @@ -31,6 +31,7 @@
12836
12837 #include <linux/linkage.h>
12838 #include <asm/inst.h>
12839 +#include <asm/alternative-asm.h>
12840
12841 /*
12842 * The following macros are used to move an (un)aligned 16 byte value to/from
12843 @@ -217,7 +218,7 @@ enc: .octa 0x2
12844 * num_initial_blocks = b mod 4
12845 * encrypt the initial num_initial_blocks blocks and apply ghash on
12846 * the ciphertext
12847 -* %r10, %r11, %r12, %rax, %xmm5, %xmm6, %xmm7, %xmm8, %xmm9 registers
12848 +* %r10, %r11, %r15, %rax, %xmm5, %xmm6, %xmm7, %xmm8, %xmm9 registers
12849 * are clobbered
12850 * arg1, %arg2, %arg3, %r14 are used as a pointer only, not modified
12851 */
12852 @@ -227,8 +228,8 @@ enc: .octa 0x2
12853 XMM2 XMM3 XMM4 XMMDst TMP6 TMP7 i i_seq operation
12854 MOVADQ SHUF_MASK(%rip), %xmm14
12855 mov arg7, %r10 # %r10 = AAD
12856 - mov arg8, %r12 # %r12 = aadLen
12857 - mov %r12, %r11
12858 + mov arg8, %r15 # %r15 = aadLen
12859 + mov %r15, %r11
12860 pxor %xmm\i, %xmm\i
12861
12862 _get_AAD_loop\num_initial_blocks\operation:
12863 @@ -237,17 +238,17 @@ _get_AAD_loop\num_initial_blocks\operation:
12864 psrldq $4, %xmm\i
12865 pxor \TMP1, %xmm\i
12866 add $4, %r10
12867 - sub $4, %r12
12868 + sub $4, %r15
12869 jne _get_AAD_loop\num_initial_blocks\operation
12870
12871 cmp $16, %r11
12872 je _get_AAD_loop2_done\num_initial_blocks\operation
12873
12874 - mov $16, %r12
12875 + mov $16, %r15
12876 _get_AAD_loop2\num_initial_blocks\operation:
12877 psrldq $4, %xmm\i
12878 - sub $4, %r12
12879 - cmp %r11, %r12
12880 + sub $4, %r15
12881 + cmp %r11, %r15
12882 jne _get_AAD_loop2\num_initial_blocks\operation
12883
12884 _get_AAD_loop2_done\num_initial_blocks\operation:
12885 @@ -442,7 +443,7 @@ _initial_blocks_done\num_initial_blocks\operation:
12886 * num_initial_blocks = b mod 4
12887 * encrypt the initial num_initial_blocks blocks and apply ghash on
12888 * the ciphertext
12889 -* %r10, %r11, %r12, %rax, %xmm5, %xmm6, %xmm7, %xmm8, %xmm9 registers
12890 +* %r10, %r11, %r15, %rax, %xmm5, %xmm6, %xmm7, %xmm8, %xmm9 registers
12891 * are clobbered
12892 * arg1, %arg2, %arg3, %r14 are used as a pointer only, not modified
12893 */
12894 @@ -452,8 +453,8 @@ _initial_blocks_done\num_initial_blocks\operation:
12895 XMM2 XMM3 XMM4 XMMDst TMP6 TMP7 i i_seq operation
12896 MOVADQ SHUF_MASK(%rip), %xmm14
12897 mov arg7, %r10 # %r10 = AAD
12898 - mov arg8, %r12 # %r12 = aadLen
12899 - mov %r12, %r11
12900 + mov arg8, %r15 # %r15 = aadLen
12901 + mov %r15, %r11
12902 pxor %xmm\i, %xmm\i
12903 _get_AAD_loop\num_initial_blocks\operation:
12904 movd (%r10), \TMP1
12905 @@ -461,15 +462,15 @@ _get_AAD_loop\num_initial_blocks\operation:
12906 psrldq $4, %xmm\i
12907 pxor \TMP1, %xmm\i
12908 add $4, %r10
12909 - sub $4, %r12
12910 + sub $4, %r15
12911 jne _get_AAD_loop\num_initial_blocks\operation
12912 cmp $16, %r11
12913 je _get_AAD_loop2_done\num_initial_blocks\operation
12914 - mov $16, %r12
12915 + mov $16, %r15
12916 _get_AAD_loop2\num_initial_blocks\operation:
12917 psrldq $4, %xmm\i
12918 - sub $4, %r12
12919 - cmp %r11, %r12
12920 + sub $4, %r15
12921 + cmp %r11, %r15
12922 jne _get_AAD_loop2\num_initial_blocks\operation
12923 _get_AAD_loop2_done\num_initial_blocks\operation:
12924 PSHUFB_XMM %xmm14, %xmm\i # byte-reflect the AAD data
12925 @@ -1280,7 +1281,7 @@ _esb_loop_\@:
12926 *
12927 *****************************************************************************/
12928 ENTRY(aesni_gcm_dec)
12929 - push %r12
12930 + push %r15
12931 push %r13
12932 push %r14
12933 mov %rsp, %r14
12934 @@ -1290,8 +1291,8 @@ ENTRY(aesni_gcm_dec)
12935 */
12936 sub $VARIABLE_OFFSET, %rsp
12937 and $~63, %rsp # align rsp to 64 bytes
12938 - mov %arg6, %r12
12939 - movdqu (%r12), %xmm13 # %xmm13 = HashKey
12940 + mov %arg6, %r15
12941 + movdqu (%r15), %xmm13 # %xmm13 = HashKey
12942 movdqa SHUF_MASK(%rip), %xmm2
12943 PSHUFB_XMM %xmm2, %xmm13
12944
12945 @@ -1319,10 +1320,10 @@ ENTRY(aesni_gcm_dec)
12946 movdqa %xmm13, HashKey(%rsp) # store HashKey<<1 (mod poly)
12947 mov %arg4, %r13 # save the number of bytes of plaintext/ciphertext
12948 and $-16, %r13 # %r13 = %r13 - (%r13 mod 16)
12949 - mov %r13, %r12
12950 - and $(3<<4), %r12
12951 + mov %r13, %r15
12952 + and $(3<<4), %r15
12953 jz _initial_num_blocks_is_0_decrypt
12954 - cmp $(2<<4), %r12
12955 + cmp $(2<<4), %r15
12956 jb _initial_num_blocks_is_1_decrypt
12957 je _initial_num_blocks_is_2_decrypt
12958 _initial_num_blocks_is_3_decrypt:
12959 @@ -1372,16 +1373,16 @@ _zero_cipher_left_decrypt:
12960 sub $16, %r11
12961 add %r13, %r11
12962 movdqu (%arg3,%r11,1), %xmm1 # receive the last <16 byte block
12963 - lea SHIFT_MASK+16(%rip), %r12
12964 - sub %r13, %r12
12965 + lea SHIFT_MASK+16(%rip), %r15
12966 + sub %r13, %r15
12967 # adjust the shuffle mask pointer to be able to shift 16-%r13 bytes
12968 # (%r13 is the number of bytes in plaintext mod 16)
12969 - movdqu (%r12), %xmm2 # get the appropriate shuffle mask
12970 + movdqu (%r15), %xmm2 # get the appropriate shuffle mask
12971 PSHUFB_XMM %xmm2, %xmm1 # right shift 16-%r13 butes
12972
12973 movdqa %xmm1, %xmm2
12974 pxor %xmm1, %xmm0 # Ciphertext XOR E(K, Yn)
12975 - movdqu ALL_F-SHIFT_MASK(%r12), %xmm1
12976 + movdqu ALL_F-SHIFT_MASK(%r15), %xmm1
12977 # get the appropriate mask to mask out top 16-%r13 bytes of %xmm0
12978 pand %xmm1, %xmm0 # mask out top 16-%r13 bytes of %xmm0
12979 pand %xmm1, %xmm2
12980 @@ -1410,9 +1411,9 @@ _less_than_8_bytes_left_decrypt:
12981 sub $1, %r13
12982 jne _less_than_8_bytes_left_decrypt
12983 _multiple_of_16_bytes_decrypt:
12984 - mov arg8, %r12 # %r13 = aadLen (number of bytes)
12985 - shl $3, %r12 # convert into number of bits
12986 - movd %r12d, %xmm15 # len(A) in %xmm15
12987 + mov arg8, %r15 # %r13 = aadLen (number of bytes)
12988 + shl $3, %r15 # convert into number of bits
12989 + movd %r15d, %xmm15 # len(A) in %xmm15
12990 shl $3, %arg4 # len(C) in bits (*128)
12991 MOVQ_R64_XMM %arg4, %xmm1
12992 pslldq $8, %xmm15 # %xmm15 = len(A)||0x0000000000000000
12993 @@ -1451,7 +1452,8 @@ _return_T_done_decrypt:
12994 mov %r14, %rsp
12995 pop %r14
12996 pop %r13
12997 - pop %r12
12998 + pop %r15
12999 + pax_force_retaddr
13000 ret
13001 ENDPROC(aesni_gcm_dec)
13002
13003 @@ -1540,7 +1542,7 @@ ENDPROC(aesni_gcm_dec)
13004 * poly = x^128 + x^127 + x^126 + x^121 + 1
13005 ***************************************************************************/
13006 ENTRY(aesni_gcm_enc)
13007 - push %r12
13008 + push %r15
13009 push %r13
13010 push %r14
13011 mov %rsp, %r14
13012 @@ -1550,8 +1552,8 @@ ENTRY(aesni_gcm_enc)
13013 #
13014 sub $VARIABLE_OFFSET, %rsp
13015 and $~63, %rsp
13016 - mov %arg6, %r12
13017 - movdqu (%r12), %xmm13
13018 + mov %arg6, %r15
13019 + movdqu (%r15), %xmm13
13020 movdqa SHUF_MASK(%rip), %xmm2
13021 PSHUFB_XMM %xmm2, %xmm13
13022
13023 @@ -1575,13 +1577,13 @@ ENTRY(aesni_gcm_enc)
13024 movdqa %xmm13, HashKey(%rsp)
13025 mov %arg4, %r13 # %xmm13 holds HashKey<<1 (mod poly)
13026 and $-16, %r13
13027 - mov %r13, %r12
13028 + mov %r13, %r15
13029
13030 # Encrypt first few blocks
13031
13032 - and $(3<<4), %r12
13033 + and $(3<<4), %r15
13034 jz _initial_num_blocks_is_0_encrypt
13035 - cmp $(2<<4), %r12
13036 + cmp $(2<<4), %r15
13037 jb _initial_num_blocks_is_1_encrypt
13038 je _initial_num_blocks_is_2_encrypt
13039 _initial_num_blocks_is_3_encrypt:
13040 @@ -1634,14 +1636,14 @@ _zero_cipher_left_encrypt:
13041 sub $16, %r11
13042 add %r13, %r11
13043 movdqu (%arg3,%r11,1), %xmm1 # receive the last <16 byte blocks
13044 - lea SHIFT_MASK+16(%rip), %r12
13045 - sub %r13, %r12
13046 + lea SHIFT_MASK+16(%rip), %r15
13047 + sub %r13, %r15
13048 # adjust the shuffle mask pointer to be able to shift 16-r13 bytes
13049 # (%r13 is the number of bytes in plaintext mod 16)
13050 - movdqu (%r12), %xmm2 # get the appropriate shuffle mask
13051 + movdqu (%r15), %xmm2 # get the appropriate shuffle mask
13052 PSHUFB_XMM %xmm2, %xmm1 # shift right 16-r13 byte
13053 pxor %xmm1, %xmm0 # Plaintext XOR Encrypt(K, Yn)
13054 - movdqu ALL_F-SHIFT_MASK(%r12), %xmm1
13055 + movdqu ALL_F-SHIFT_MASK(%r15), %xmm1
13056 # get the appropriate mask to mask out top 16-r13 bytes of xmm0
13057 pand %xmm1, %xmm0 # mask out top 16-r13 bytes of xmm0
13058 movdqa SHUF_MASK(%rip), %xmm10
13059 @@ -1674,9 +1676,9 @@ _less_than_8_bytes_left_encrypt:
13060 sub $1, %r13
13061 jne _less_than_8_bytes_left_encrypt
13062 _multiple_of_16_bytes_encrypt:
13063 - mov arg8, %r12 # %r12 = addLen (number of bytes)
13064 - shl $3, %r12
13065 - movd %r12d, %xmm15 # len(A) in %xmm15
13066 + mov arg8, %r15 # %r15 = addLen (number of bytes)
13067 + shl $3, %r15
13068 + movd %r15d, %xmm15 # len(A) in %xmm15
13069 shl $3, %arg4 # len(C) in bits (*128)
13070 MOVQ_R64_XMM %arg4, %xmm1
13071 pslldq $8, %xmm15 # %xmm15 = len(A)||0x0000000000000000
13072 @@ -1715,7 +1717,8 @@ _return_T_done_encrypt:
13073 mov %r14, %rsp
13074 pop %r14
13075 pop %r13
13076 - pop %r12
13077 + pop %r15
13078 + pax_force_retaddr
13079 ret
13080 ENDPROC(aesni_gcm_enc)
13081
13082 @@ -1733,6 +1736,7 @@ _key_expansion_256a:
13083 pxor %xmm1, %xmm0
13084 movaps %xmm0, (TKEYP)
13085 add $0x10, TKEYP
13086 + pax_force_retaddr
13087 ret
13088 ENDPROC(_key_expansion_128)
13089 ENDPROC(_key_expansion_256a)
13090 @@ -1759,6 +1763,7 @@ _key_expansion_192a:
13091 shufps $0b01001110, %xmm2, %xmm1
13092 movaps %xmm1, 0x10(TKEYP)
13093 add $0x20, TKEYP
13094 + pax_force_retaddr
13095 ret
13096 ENDPROC(_key_expansion_192a)
13097
13098 @@ -1779,6 +1784,7 @@ _key_expansion_192b:
13099
13100 movaps %xmm0, (TKEYP)
13101 add $0x10, TKEYP
13102 + pax_force_retaddr
13103 ret
13104 ENDPROC(_key_expansion_192b)
13105
13106 @@ -1792,6 +1798,7 @@ _key_expansion_256b:
13107 pxor %xmm1, %xmm2
13108 movaps %xmm2, (TKEYP)
13109 add $0x10, TKEYP
13110 + pax_force_retaddr
13111 ret
13112 ENDPROC(_key_expansion_256b)
13113
13114 @@ -1905,6 +1912,7 @@ ENTRY(aesni_set_key)
13115 #ifndef __x86_64__
13116 popl KEYP
13117 #endif
13118 + pax_force_retaddr
13119 ret
13120 ENDPROC(aesni_set_key)
13121
13122 @@ -1927,6 +1935,7 @@ ENTRY(aesni_enc)
13123 popl KLEN
13124 popl KEYP
13125 #endif
13126 + pax_force_retaddr
13127 ret
13128 ENDPROC(aesni_enc)
13129
13130 @@ -1985,6 +1994,7 @@ _aesni_enc1:
13131 AESENC KEY STATE
13132 movaps 0x70(TKEYP), KEY
13133 AESENCLAST KEY STATE
13134 + pax_force_retaddr
13135 ret
13136 ENDPROC(_aesni_enc1)
13137
13138 @@ -2094,6 +2104,7 @@ _aesni_enc4:
13139 AESENCLAST KEY STATE2
13140 AESENCLAST KEY STATE3
13141 AESENCLAST KEY STATE4
13142 + pax_force_retaddr
13143 ret
13144 ENDPROC(_aesni_enc4)
13145
13146 @@ -2117,6 +2128,7 @@ ENTRY(aesni_dec)
13147 popl KLEN
13148 popl KEYP
13149 #endif
13150 + pax_force_retaddr
13151 ret
13152 ENDPROC(aesni_dec)
13153
13154 @@ -2175,6 +2187,7 @@ _aesni_dec1:
13155 AESDEC KEY STATE
13156 movaps 0x70(TKEYP), KEY
13157 AESDECLAST KEY STATE
13158 + pax_force_retaddr
13159 ret
13160 ENDPROC(_aesni_dec1)
13161
13162 @@ -2284,6 +2297,7 @@ _aesni_dec4:
13163 AESDECLAST KEY STATE2
13164 AESDECLAST KEY STATE3
13165 AESDECLAST KEY STATE4
13166 + pax_force_retaddr
13167 ret
13168 ENDPROC(_aesni_dec4)
13169
13170 @@ -2342,6 +2356,7 @@ ENTRY(aesni_ecb_enc)
13171 popl KEYP
13172 popl LEN
13173 #endif
13174 + pax_force_retaddr
13175 ret
13176 ENDPROC(aesni_ecb_enc)
13177
13178 @@ -2401,6 +2416,7 @@ ENTRY(aesni_ecb_dec)
13179 popl KEYP
13180 popl LEN
13181 #endif
13182 + pax_force_retaddr
13183 ret
13184 ENDPROC(aesni_ecb_dec)
13185
13186 @@ -2443,6 +2459,7 @@ ENTRY(aesni_cbc_enc)
13187 popl LEN
13188 popl IVP
13189 #endif
13190 + pax_force_retaddr
13191 ret
13192 ENDPROC(aesni_cbc_enc)
13193
13194 @@ -2534,6 +2551,7 @@ ENTRY(aesni_cbc_dec)
13195 popl LEN
13196 popl IVP
13197 #endif
13198 + pax_force_retaddr
13199 ret
13200 ENDPROC(aesni_cbc_dec)
13201
13202 @@ -2561,6 +2579,7 @@ _aesni_inc_init:
13203 mov $1, TCTR_LOW
13204 MOVQ_R64_XMM TCTR_LOW INC
13205 MOVQ_R64_XMM CTR TCTR_LOW
13206 + pax_force_retaddr
13207 ret
13208 ENDPROC(_aesni_inc_init)
13209
13210 @@ -2590,6 +2609,7 @@ _aesni_inc:
13211 .Linc_low:
13212 movaps CTR, IV
13213 PSHUFB_XMM BSWAP_MASK IV
13214 + pax_force_retaddr
13215 ret
13216 ENDPROC(_aesni_inc)
13217
13218 @@ -2651,6 +2671,7 @@ ENTRY(aesni_ctr_enc)
13219 .Lctr_enc_ret:
13220 movups IV, (IVP)
13221 .Lctr_enc_just_ret:
13222 + pax_force_retaddr
13223 ret
13224 ENDPROC(aesni_ctr_enc)
13225
13226 @@ -2777,6 +2798,7 @@ ENTRY(aesni_xts_crypt8)
13227 pxor INC, STATE4
13228 movdqu STATE4, 0x70(OUTP)
13229
13230 + pax_force_retaddr
13231 ret
13232 ENDPROC(aesni_xts_crypt8)
13233
13234 diff --git a/arch/x86/crypto/blowfish-x86_64-asm_64.S b/arch/x86/crypto/blowfish-x86_64-asm_64.S
13235 index 246c670..466e2d6 100644
13236 --- a/arch/x86/crypto/blowfish-x86_64-asm_64.S
13237 +++ b/arch/x86/crypto/blowfish-x86_64-asm_64.S
13238 @@ -21,6 +21,7 @@
13239 */
13240
13241 #include <linux/linkage.h>
13242 +#include <asm/alternative-asm.h>
13243
13244 .file "blowfish-x86_64-asm.S"
13245 .text
13246 @@ -149,9 +150,11 @@ ENTRY(__blowfish_enc_blk)
13247 jnz .L__enc_xor;
13248
13249 write_block();
13250 + pax_force_retaddr
13251 ret;
13252 .L__enc_xor:
13253 xor_block();
13254 + pax_force_retaddr
13255 ret;
13256 ENDPROC(__blowfish_enc_blk)
13257
13258 @@ -183,6 +186,7 @@ ENTRY(blowfish_dec_blk)
13259
13260 movq %r11, %rbp;
13261
13262 + pax_force_retaddr
13263 ret;
13264 ENDPROC(blowfish_dec_blk)
13265
13266 @@ -334,6 +338,7 @@ ENTRY(__blowfish_enc_blk_4way)
13267
13268 popq %rbx;
13269 popq %rbp;
13270 + pax_force_retaddr
13271 ret;
13272
13273 .L__enc_xor4:
13274 @@ -341,6 +346,7 @@ ENTRY(__blowfish_enc_blk_4way)
13275
13276 popq %rbx;
13277 popq %rbp;
13278 + pax_force_retaddr
13279 ret;
13280 ENDPROC(__blowfish_enc_blk_4way)
13281
13282 @@ -375,5 +381,6 @@ ENTRY(blowfish_dec_blk_4way)
13283 popq %rbx;
13284 popq %rbp;
13285
13286 + pax_force_retaddr
13287 ret;
13288 ENDPROC(blowfish_dec_blk_4way)
13289 diff --git a/arch/x86/crypto/camellia-aesni-avx-asm_64.S b/arch/x86/crypto/camellia-aesni-avx-asm_64.S
13290 index ce71f92..1dce7ec 100644
13291 --- a/arch/x86/crypto/camellia-aesni-avx-asm_64.S
13292 +++ b/arch/x86/crypto/camellia-aesni-avx-asm_64.S
13293 @@ -16,6 +16,7 @@
13294 */
13295
13296 #include <linux/linkage.h>
13297 +#include <asm/alternative-asm.h>
13298
13299 #define CAMELLIA_TABLE_BYTE_LEN 272
13300
13301 @@ -191,6 +192,7 @@ roundsm16_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_cd:
13302 roundsm16(%xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7,
13303 %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, %xmm15,
13304 %rcx, (%r9));
13305 + pax_force_retaddr
13306 ret;
13307 ENDPROC(roundsm16_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_cd)
13308
13309 @@ -199,6 +201,7 @@ roundsm16_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_ab:
13310 roundsm16(%xmm4, %xmm5, %xmm6, %xmm7, %xmm0, %xmm1, %xmm2, %xmm3,
13311 %xmm12, %xmm13, %xmm14, %xmm15, %xmm8, %xmm9, %xmm10, %xmm11,
13312 %rax, (%r9));
13313 + pax_force_retaddr
13314 ret;
13315 ENDPROC(roundsm16_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_ab)
13316
13317 @@ -780,6 +783,7 @@ __camellia_enc_blk16:
13318 %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14,
13319 %xmm15, (key_table)(CTX, %r8, 8), (%rax), 1 * 16(%rax));
13320
13321 + pax_force_retaddr
13322 ret;
13323
13324 .align 8
13325 @@ -865,6 +869,7 @@ __camellia_dec_blk16:
13326 %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14,
13327 %xmm15, (key_table)(CTX), (%rax), 1 * 16(%rax));
13328
13329 + pax_force_retaddr
13330 ret;
13331
13332 .align 8
13333 @@ -904,6 +909,7 @@ ENTRY(camellia_ecb_enc_16way)
13334 %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
13335 %xmm8, %rsi);
13336
13337 + pax_force_retaddr
13338 ret;
13339 ENDPROC(camellia_ecb_enc_16way)
13340
13341 @@ -932,6 +938,7 @@ ENTRY(camellia_ecb_dec_16way)
13342 %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
13343 %xmm8, %rsi);
13344
13345 + pax_force_retaddr
13346 ret;
13347 ENDPROC(camellia_ecb_dec_16way)
13348
13349 @@ -981,6 +988,7 @@ ENTRY(camellia_cbc_dec_16way)
13350 %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
13351 %xmm8, %rsi);
13352
13353 + pax_force_retaddr
13354 ret;
13355 ENDPROC(camellia_cbc_dec_16way)
13356
13357 @@ -1092,6 +1100,7 @@ ENTRY(camellia_ctr_16way)
13358 %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
13359 %xmm8, %rsi);
13360
13361 + pax_force_retaddr
13362 ret;
13363 ENDPROC(camellia_ctr_16way)
13364
13365 @@ -1234,6 +1243,7 @@ camellia_xts_crypt_16way:
13366 %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
13367 %xmm8, %rsi);
13368
13369 + pax_force_retaddr
13370 ret;
13371 ENDPROC(camellia_xts_crypt_16way)
13372
13373 diff --git a/arch/x86/crypto/camellia-aesni-avx2-asm_64.S b/arch/x86/crypto/camellia-aesni-avx2-asm_64.S
13374 index 0e0b886..5a3123c 100644
13375 --- a/arch/x86/crypto/camellia-aesni-avx2-asm_64.S
13376 +++ b/arch/x86/crypto/camellia-aesni-avx2-asm_64.S
13377 @@ -11,6 +11,7 @@
13378 */
13379
13380 #include <linux/linkage.h>
13381 +#include <asm/alternative-asm.h>
13382
13383 #define CAMELLIA_TABLE_BYTE_LEN 272
13384
13385 @@ -230,6 +231,7 @@ roundsm32_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_cd:
13386 roundsm32(%ymm0, %ymm1, %ymm2, %ymm3, %ymm4, %ymm5, %ymm6, %ymm7,
13387 %ymm8, %ymm9, %ymm10, %ymm11, %ymm12, %ymm13, %ymm14, %ymm15,
13388 %rcx, (%r9));
13389 + pax_force_retaddr
13390 ret;
13391 ENDPROC(roundsm32_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_cd)
13392
13393 @@ -238,6 +240,7 @@ roundsm32_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_ab:
13394 roundsm32(%ymm4, %ymm5, %ymm6, %ymm7, %ymm0, %ymm1, %ymm2, %ymm3,
13395 %ymm12, %ymm13, %ymm14, %ymm15, %ymm8, %ymm9, %ymm10, %ymm11,
13396 %rax, (%r9));
13397 + pax_force_retaddr
13398 ret;
13399 ENDPROC(roundsm32_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_ab)
13400
13401 @@ -820,6 +823,7 @@ __camellia_enc_blk32:
13402 %ymm8, %ymm9, %ymm10, %ymm11, %ymm12, %ymm13, %ymm14,
13403 %ymm15, (key_table)(CTX, %r8, 8), (%rax), 1 * 32(%rax));
13404
13405 + pax_force_retaddr
13406 ret;
13407
13408 .align 8
13409 @@ -905,6 +909,7 @@ __camellia_dec_blk32:
13410 %ymm8, %ymm9, %ymm10, %ymm11, %ymm12, %ymm13, %ymm14,
13411 %ymm15, (key_table)(CTX), (%rax), 1 * 32(%rax));
13412
13413 + pax_force_retaddr
13414 ret;
13415
13416 .align 8
13417 @@ -948,6 +953,7 @@ ENTRY(camellia_ecb_enc_32way)
13418
13419 vzeroupper;
13420
13421 + pax_force_retaddr
13422 ret;
13423 ENDPROC(camellia_ecb_enc_32way)
13424
13425 @@ -980,6 +986,7 @@ ENTRY(camellia_ecb_dec_32way)
13426
13427 vzeroupper;
13428
13429 + pax_force_retaddr
13430 ret;
13431 ENDPROC(camellia_ecb_dec_32way)
13432
13433 @@ -1046,6 +1053,7 @@ ENTRY(camellia_cbc_dec_32way)
13434
13435 vzeroupper;
13436
13437 + pax_force_retaddr
13438 ret;
13439 ENDPROC(camellia_cbc_dec_32way)
13440
13441 @@ -1184,6 +1192,7 @@ ENTRY(camellia_ctr_32way)
13442
13443 vzeroupper;
13444
13445 + pax_force_retaddr
13446 ret;
13447 ENDPROC(camellia_ctr_32way)
13448
13449 @@ -1349,6 +1358,7 @@ camellia_xts_crypt_32way:
13450
13451 vzeroupper;
13452
13453 + pax_force_retaddr
13454 ret;
13455 ENDPROC(camellia_xts_crypt_32way)
13456
13457 diff --git a/arch/x86/crypto/camellia-x86_64-asm_64.S b/arch/x86/crypto/camellia-x86_64-asm_64.S
13458 index 310319c..db3d7b5 100644
13459 --- a/arch/x86/crypto/camellia-x86_64-asm_64.S
13460 +++ b/arch/x86/crypto/camellia-x86_64-asm_64.S
13461 @@ -21,6 +21,7 @@
13462 */
13463
13464 #include <linux/linkage.h>
13465 +#include <asm/alternative-asm.h>
13466
13467 .file "camellia-x86_64-asm_64.S"
13468 .text
13469 @@ -228,12 +229,14 @@ ENTRY(__camellia_enc_blk)
13470 enc_outunpack(mov, RT1);
13471
13472 movq RRBP, %rbp;
13473 + pax_force_retaddr
13474 ret;
13475
13476 .L__enc_xor:
13477 enc_outunpack(xor, RT1);
13478
13479 movq RRBP, %rbp;
13480 + pax_force_retaddr
13481 ret;
13482 ENDPROC(__camellia_enc_blk)
13483
13484 @@ -272,6 +275,7 @@ ENTRY(camellia_dec_blk)
13485 dec_outunpack();
13486
13487 movq RRBP, %rbp;
13488 + pax_force_retaddr
13489 ret;
13490 ENDPROC(camellia_dec_blk)
13491
13492 @@ -463,6 +467,7 @@ ENTRY(__camellia_enc_blk_2way)
13493
13494 movq RRBP, %rbp;
13495 popq %rbx;
13496 + pax_force_retaddr
13497 ret;
13498
13499 .L__enc2_xor:
13500 @@ -470,6 +475,7 @@ ENTRY(__camellia_enc_blk_2way)
13501
13502 movq RRBP, %rbp;
13503 popq %rbx;
13504 + pax_force_retaddr
13505 ret;
13506 ENDPROC(__camellia_enc_blk_2way)
13507
13508 @@ -510,5 +516,6 @@ ENTRY(camellia_dec_blk_2way)
13509
13510 movq RRBP, %rbp;
13511 movq RXOR, %rbx;
13512 + pax_force_retaddr
13513 ret;
13514 ENDPROC(camellia_dec_blk_2way)
13515 diff --git a/arch/x86/crypto/cast5-avx-x86_64-asm_64.S b/arch/x86/crypto/cast5-avx-x86_64-asm_64.S
13516 index c35fd5d..2d8c7db 100644
13517 --- a/arch/x86/crypto/cast5-avx-x86_64-asm_64.S
13518 +++ b/arch/x86/crypto/cast5-avx-x86_64-asm_64.S
13519 @@ -24,6 +24,7 @@
13520 */
13521
13522 #include <linux/linkage.h>
13523 +#include <asm/alternative-asm.h>
13524
13525 .file "cast5-avx-x86_64-asm_64.S"
13526
13527 @@ -281,6 +282,7 @@ __cast5_enc_blk16:
13528 outunpack_blocks(RR3, RL3, RTMP, RX, RKM);
13529 outunpack_blocks(RR4, RL4, RTMP, RX, RKM);
13530
13531 + pax_force_retaddr
13532 ret;
13533 ENDPROC(__cast5_enc_blk16)
13534
13535 @@ -352,6 +354,7 @@ __cast5_dec_blk16:
13536 outunpack_blocks(RR3, RL3, RTMP, RX, RKM);
13537 outunpack_blocks(RR4, RL4, RTMP, RX, RKM);
13538
13539 + pax_force_retaddr
13540 ret;
13541
13542 .L__skip_dec:
13543 @@ -388,6 +391,7 @@ ENTRY(cast5_ecb_enc_16way)
13544 vmovdqu RR4, (6*4*4)(%r11);
13545 vmovdqu RL4, (7*4*4)(%r11);
13546
13547 + pax_force_retaddr
13548 ret;
13549 ENDPROC(cast5_ecb_enc_16way)
13550
13551 @@ -420,6 +424,7 @@ ENTRY(cast5_ecb_dec_16way)
13552 vmovdqu RR4, (6*4*4)(%r11);
13553 vmovdqu RL4, (7*4*4)(%r11);
13554
13555 + pax_force_retaddr
13556 ret;
13557 ENDPROC(cast5_ecb_dec_16way)
13558
13559 @@ -430,10 +435,10 @@ ENTRY(cast5_cbc_dec_16way)
13560 * %rdx: src
13561 */
13562
13563 - pushq %r12;
13564 + pushq %r14;
13565
13566 movq %rsi, %r11;
13567 - movq %rdx, %r12;
13568 + movq %rdx, %r14;
13569
13570 vmovdqu (0*16)(%rdx), RL1;
13571 vmovdqu (1*16)(%rdx), RR1;
13572 @@ -447,16 +452,16 @@ ENTRY(cast5_cbc_dec_16way)
13573 call __cast5_dec_blk16;
13574
13575 /* xor with src */
13576 - vmovq (%r12), RX;
13577 + vmovq (%r14), RX;
13578 vpshufd $0x4f, RX, RX;
13579 vpxor RX, RR1, RR1;
13580 - vpxor 0*16+8(%r12), RL1, RL1;
13581 - vpxor 1*16+8(%r12), RR2, RR2;
13582 - vpxor 2*16+8(%r12), RL2, RL2;
13583 - vpxor 3*16+8(%r12), RR3, RR3;
13584 - vpxor 4*16+8(%r12), RL3, RL3;
13585 - vpxor 5*16+8(%r12), RR4, RR4;
13586 - vpxor 6*16+8(%r12), RL4, RL4;
13587 + vpxor 0*16+8(%r14), RL1, RL1;
13588 + vpxor 1*16+8(%r14), RR2, RR2;
13589 + vpxor 2*16+8(%r14), RL2, RL2;
13590 + vpxor 3*16+8(%r14), RR3, RR3;
13591 + vpxor 4*16+8(%r14), RL3, RL3;
13592 + vpxor 5*16+8(%r14), RR4, RR4;
13593 + vpxor 6*16+8(%r14), RL4, RL4;
13594
13595 vmovdqu RR1, (0*16)(%r11);
13596 vmovdqu RL1, (1*16)(%r11);
13597 @@ -467,8 +472,9 @@ ENTRY(cast5_cbc_dec_16way)
13598 vmovdqu RR4, (6*16)(%r11);
13599 vmovdqu RL4, (7*16)(%r11);
13600
13601 - popq %r12;
13602 + popq %r14;
13603
13604 + pax_force_retaddr
13605 ret;
13606 ENDPROC(cast5_cbc_dec_16way)
13607
13608 @@ -480,10 +486,10 @@ ENTRY(cast5_ctr_16way)
13609 * %rcx: iv (big endian, 64bit)
13610 */
13611
13612 - pushq %r12;
13613 + pushq %r14;
13614
13615 movq %rsi, %r11;
13616 - movq %rdx, %r12;
13617 + movq %rdx, %r14;
13618
13619 vpcmpeqd RTMP, RTMP, RTMP;
13620 vpsrldq $8, RTMP, RTMP; /* low: -1, high: 0 */
13621 @@ -523,14 +529,14 @@ ENTRY(cast5_ctr_16way)
13622 call __cast5_enc_blk16;
13623
13624 /* dst = src ^ iv */
13625 - vpxor (0*16)(%r12), RR1, RR1;
13626 - vpxor (1*16)(%r12), RL1, RL1;
13627 - vpxor (2*16)(%r12), RR2, RR2;
13628 - vpxor (3*16)(%r12), RL2, RL2;
13629 - vpxor (4*16)(%r12), RR3, RR3;
13630 - vpxor (5*16)(%r12), RL3, RL3;
13631 - vpxor (6*16)(%r12), RR4, RR4;
13632 - vpxor (7*16)(%r12), RL4, RL4;
13633 + vpxor (0*16)(%r14), RR1, RR1;
13634 + vpxor (1*16)(%r14), RL1, RL1;
13635 + vpxor (2*16)(%r14), RR2, RR2;
13636 + vpxor (3*16)(%r14), RL2, RL2;
13637 + vpxor (4*16)(%r14), RR3, RR3;
13638 + vpxor (5*16)(%r14), RL3, RL3;
13639 + vpxor (6*16)(%r14), RR4, RR4;
13640 + vpxor (7*16)(%r14), RL4, RL4;
13641 vmovdqu RR1, (0*16)(%r11);
13642 vmovdqu RL1, (1*16)(%r11);
13643 vmovdqu RR2, (2*16)(%r11);
13644 @@ -540,7 +546,8 @@ ENTRY(cast5_ctr_16way)
13645 vmovdqu RR4, (6*16)(%r11);
13646 vmovdqu RL4, (7*16)(%r11);
13647
13648 - popq %r12;
13649 + popq %r14;
13650
13651 + pax_force_retaddr
13652 ret;
13653 ENDPROC(cast5_ctr_16way)
13654 diff --git a/arch/x86/crypto/cast6-avx-x86_64-asm_64.S b/arch/x86/crypto/cast6-avx-x86_64-asm_64.S
13655 index e3531f8..e123f35 100644
13656 --- a/arch/x86/crypto/cast6-avx-x86_64-asm_64.S
13657 +++ b/arch/x86/crypto/cast6-avx-x86_64-asm_64.S
13658 @@ -24,6 +24,7 @@
13659 */
13660
13661 #include <linux/linkage.h>
13662 +#include <asm/alternative-asm.h>
13663 #include "glue_helper-asm-avx.S"
13664
13665 .file "cast6-avx-x86_64-asm_64.S"
13666 @@ -295,6 +296,7 @@ __cast6_enc_blk8:
13667 outunpack_blocks(RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM);
13668 outunpack_blocks(RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM);
13669
13670 + pax_force_retaddr
13671 ret;
13672 ENDPROC(__cast6_enc_blk8)
13673
13674 @@ -340,6 +342,7 @@ __cast6_dec_blk8:
13675 outunpack_blocks(RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM);
13676 outunpack_blocks(RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM);
13677
13678 + pax_force_retaddr
13679 ret;
13680 ENDPROC(__cast6_dec_blk8)
13681
13682 @@ -358,6 +361,7 @@ ENTRY(cast6_ecb_enc_8way)
13683
13684 store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
13685
13686 + pax_force_retaddr
13687 ret;
13688 ENDPROC(cast6_ecb_enc_8way)
13689
13690 @@ -376,6 +380,7 @@ ENTRY(cast6_ecb_dec_8way)
13691
13692 store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
13693
13694 + pax_force_retaddr
13695 ret;
13696 ENDPROC(cast6_ecb_dec_8way)
13697
13698 @@ -386,19 +391,20 @@ ENTRY(cast6_cbc_dec_8way)
13699 * %rdx: src
13700 */
13701
13702 - pushq %r12;
13703 + pushq %r14;
13704
13705 movq %rsi, %r11;
13706 - movq %rdx, %r12;
13707 + movq %rdx, %r14;
13708
13709 load_8way(%rdx, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
13710
13711 call __cast6_dec_blk8;
13712
13713 - store_cbc_8way(%r12, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
13714 + store_cbc_8way(%r14, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
13715
13716 - popq %r12;
13717 + popq %r14;
13718
13719 + pax_force_retaddr
13720 ret;
13721 ENDPROC(cast6_cbc_dec_8way)
13722
13723 @@ -410,20 +416,21 @@ ENTRY(cast6_ctr_8way)
13724 * %rcx: iv (little endian, 128bit)
13725 */
13726
13727 - pushq %r12;
13728 + pushq %r14;
13729
13730 movq %rsi, %r11;
13731 - movq %rdx, %r12;
13732 + movq %rdx, %r14;
13733
13734 load_ctr_8way(%rcx, .Lbswap128_mask, RA1, RB1, RC1, RD1, RA2, RB2, RC2,
13735 RD2, RX, RKR, RKM);
13736
13737 call __cast6_enc_blk8;
13738
13739 - store_ctr_8way(%r12, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
13740 + store_ctr_8way(%r14, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
13741
13742 - popq %r12;
13743 + popq %r14;
13744
13745 + pax_force_retaddr
13746 ret;
13747 ENDPROC(cast6_ctr_8way)
13748
13749 @@ -446,6 +453,7 @@ ENTRY(cast6_xts_enc_8way)
13750 /* dst <= regs xor IVs(in dst) */
13751 store_xts_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
13752
13753 + pax_force_retaddr
13754 ret;
13755 ENDPROC(cast6_xts_enc_8way)
13756
13757 @@ -468,5 +476,6 @@ ENTRY(cast6_xts_dec_8way)
13758 /* dst <= regs xor IVs(in dst) */
13759 store_xts_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
13760
13761 + pax_force_retaddr
13762 ret;
13763 ENDPROC(cast6_xts_dec_8way)
13764 diff --git a/arch/x86/crypto/crc32c-pcl-intel-asm_64.S b/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
13765 index 4fe27e0..2885e731 100644
13766 --- a/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
13767 +++ b/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
13768 @@ -45,6 +45,7 @@
13769
13770 #include <asm/inst.h>
13771 #include <linux/linkage.h>
13772 +#include <asm/alternative-asm.h>
13773
13774 ## ISCSI CRC 32 Implementation with crc32 and pclmulqdq Instruction
13775
13776 @@ -309,6 +310,7 @@ do_return:
13777 popq %rsi
13778 popq %rdi
13779 popq %rbx
13780 + pax_force_retaddr
13781 ret
13782
13783 ################################################################
13784 diff --git a/arch/x86/crypto/ghash-clmulni-intel_asm.S b/arch/x86/crypto/ghash-clmulni-intel_asm.S
13785 index 5d1e007..098cb4f 100644
13786 --- a/arch/x86/crypto/ghash-clmulni-intel_asm.S
13787 +++ b/arch/x86/crypto/ghash-clmulni-intel_asm.S
13788 @@ -18,6 +18,7 @@
13789
13790 #include <linux/linkage.h>
13791 #include <asm/inst.h>
13792 +#include <asm/alternative-asm.h>
13793
13794 .data
13795
13796 @@ -89,6 +90,7 @@ __clmul_gf128mul_ble:
13797 psrlq $1, T2
13798 pxor T2, T1
13799 pxor T1, DATA
13800 + pax_force_retaddr
13801 ret
13802 ENDPROC(__clmul_gf128mul_ble)
13803
13804 @@ -101,6 +103,7 @@ ENTRY(clmul_ghash_mul)
13805 call __clmul_gf128mul_ble
13806 PSHUFB_XMM BSWAP DATA
13807 movups DATA, (%rdi)
13808 + pax_force_retaddr
13809 ret
13810 ENDPROC(clmul_ghash_mul)
13811
13812 @@ -128,5 +131,6 @@ ENTRY(clmul_ghash_update)
13813 PSHUFB_XMM BSWAP DATA
13814 movups DATA, (%rdi)
13815 .Lupdate_just_ret:
13816 + pax_force_retaddr
13817 ret
13818 ENDPROC(clmul_ghash_update)
13819 diff --git a/arch/x86/crypto/salsa20-x86_64-asm_64.S b/arch/x86/crypto/salsa20-x86_64-asm_64.S
13820 index 9279e0b..c4b3d2c 100644
13821 --- a/arch/x86/crypto/salsa20-x86_64-asm_64.S
13822 +++ b/arch/x86/crypto/salsa20-x86_64-asm_64.S
13823 @@ -1,4 +1,5 @@
13824 #include <linux/linkage.h>
13825 +#include <asm/alternative-asm.h>
13826
13827 # enter salsa20_encrypt_bytes
13828 ENTRY(salsa20_encrypt_bytes)
13829 @@ -789,6 +790,7 @@ ENTRY(salsa20_encrypt_bytes)
13830 add %r11,%rsp
13831 mov %rdi,%rax
13832 mov %rsi,%rdx
13833 + pax_force_retaddr
13834 ret
13835 # bytesatleast65:
13836 ._bytesatleast65:
13837 @@ -889,6 +891,7 @@ ENTRY(salsa20_keysetup)
13838 add %r11,%rsp
13839 mov %rdi,%rax
13840 mov %rsi,%rdx
13841 + pax_force_retaddr
13842 ret
13843 ENDPROC(salsa20_keysetup)
13844
13845 @@ -914,5 +917,6 @@ ENTRY(salsa20_ivsetup)
13846 add %r11,%rsp
13847 mov %rdi,%rax
13848 mov %rsi,%rdx
13849 + pax_force_retaddr
13850 ret
13851 ENDPROC(salsa20_ivsetup)
13852 diff --git a/arch/x86/crypto/serpent-avx-x86_64-asm_64.S b/arch/x86/crypto/serpent-avx-x86_64-asm_64.S
13853 index 2f202f4..d9164d6 100644
13854 --- a/arch/x86/crypto/serpent-avx-x86_64-asm_64.S
13855 +++ b/arch/x86/crypto/serpent-avx-x86_64-asm_64.S
13856 @@ -24,6 +24,7 @@
13857 */
13858
13859 #include <linux/linkage.h>
13860 +#include <asm/alternative-asm.h>
13861 #include "glue_helper-asm-avx.S"
13862
13863 .file "serpent-avx-x86_64-asm_64.S"
13864 @@ -618,6 +619,7 @@ __serpent_enc_blk8_avx:
13865 write_blocks(RA1, RB1, RC1, RD1, RK0, RK1, RK2);
13866 write_blocks(RA2, RB2, RC2, RD2, RK0, RK1, RK2);
13867
13868 + pax_force_retaddr
13869 ret;
13870 ENDPROC(__serpent_enc_blk8_avx)
13871
13872 @@ -672,6 +674,7 @@ __serpent_dec_blk8_avx:
13873 write_blocks(RC1, RD1, RB1, RE1, RK0, RK1, RK2);
13874 write_blocks(RC2, RD2, RB2, RE2, RK0, RK1, RK2);
13875
13876 + pax_force_retaddr
13877 ret;
13878 ENDPROC(__serpent_dec_blk8_avx)
13879
13880 @@ -688,6 +691,7 @@ ENTRY(serpent_ecb_enc_8way_avx)
13881
13882 store_8way(%rsi, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
13883
13884 + pax_force_retaddr
13885 ret;
13886 ENDPROC(serpent_ecb_enc_8way_avx)
13887
13888 @@ -704,6 +708,7 @@ ENTRY(serpent_ecb_dec_8way_avx)
13889
13890 store_8way(%rsi, RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2);
13891
13892 + pax_force_retaddr
13893 ret;
13894 ENDPROC(serpent_ecb_dec_8way_avx)
13895
13896 @@ -720,6 +725,7 @@ ENTRY(serpent_cbc_dec_8way_avx)
13897
13898 store_cbc_8way(%rdx, %rsi, RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2);
13899
13900 + pax_force_retaddr
13901 ret;
13902 ENDPROC(serpent_cbc_dec_8way_avx)
13903
13904 @@ -738,6 +744,7 @@ ENTRY(serpent_ctr_8way_avx)
13905
13906 store_ctr_8way(%rdx, %rsi, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
13907
13908 + pax_force_retaddr
13909 ret;
13910 ENDPROC(serpent_ctr_8way_avx)
13911
13912 @@ -758,6 +765,7 @@ ENTRY(serpent_xts_enc_8way_avx)
13913 /* dst <= regs xor IVs(in dst) */
13914 store_xts_8way(%rsi, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
13915
13916 + pax_force_retaddr
13917 ret;
13918 ENDPROC(serpent_xts_enc_8way_avx)
13919
13920 @@ -778,5 +786,6 @@ ENTRY(serpent_xts_dec_8way_avx)
13921 /* dst <= regs xor IVs(in dst) */
13922 store_xts_8way(%rsi, RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2);
13923
13924 + pax_force_retaddr
13925 ret;
13926 ENDPROC(serpent_xts_dec_8way_avx)
13927 diff --git a/arch/x86/crypto/serpent-avx2-asm_64.S b/arch/x86/crypto/serpent-avx2-asm_64.S
13928 index b222085..abd483c 100644
13929 --- a/arch/x86/crypto/serpent-avx2-asm_64.S
13930 +++ b/arch/x86/crypto/serpent-avx2-asm_64.S
13931 @@ -15,6 +15,7 @@
13932 */
13933
13934 #include <linux/linkage.h>
13935 +#include <asm/alternative-asm.h>
13936 #include "glue_helper-asm-avx2.S"
13937
13938 .file "serpent-avx2-asm_64.S"
13939 @@ -610,6 +611,7 @@ __serpent_enc_blk16:
13940 write_blocks(RA1, RB1, RC1, RD1, RK0, RK1, RK2);
13941 write_blocks(RA2, RB2, RC2, RD2, RK0, RK1, RK2);
13942
13943 + pax_force_retaddr
13944 ret;
13945 ENDPROC(__serpent_enc_blk16)
13946
13947 @@ -664,6 +666,7 @@ __serpent_dec_blk16:
13948 write_blocks(RC1, RD1, RB1, RE1, RK0, RK1, RK2);
13949 write_blocks(RC2, RD2, RB2, RE2, RK0, RK1, RK2);
13950
13951 + pax_force_retaddr
13952 ret;
13953 ENDPROC(__serpent_dec_blk16)
13954
13955 @@ -684,6 +687,7 @@ ENTRY(serpent_ecb_enc_16way)
13956
13957 vzeroupper;
13958
13959 + pax_force_retaddr
13960 ret;
13961 ENDPROC(serpent_ecb_enc_16way)
13962
13963 @@ -704,6 +708,7 @@ ENTRY(serpent_ecb_dec_16way)
13964
13965 vzeroupper;
13966
13967 + pax_force_retaddr
13968 ret;
13969 ENDPROC(serpent_ecb_dec_16way)
13970
13971 @@ -725,6 +730,7 @@ ENTRY(serpent_cbc_dec_16way)
13972
13973 vzeroupper;
13974
13975 + pax_force_retaddr
13976 ret;
13977 ENDPROC(serpent_cbc_dec_16way)
13978
13979 @@ -748,6 +754,7 @@ ENTRY(serpent_ctr_16way)
13980
13981 vzeroupper;
13982
13983 + pax_force_retaddr
13984 ret;
13985 ENDPROC(serpent_ctr_16way)
13986
13987 @@ -772,6 +779,7 @@ ENTRY(serpent_xts_enc_16way)
13988
13989 vzeroupper;
13990
13991 + pax_force_retaddr
13992 ret;
13993 ENDPROC(serpent_xts_enc_16way)
13994
13995 @@ -796,5 +804,6 @@ ENTRY(serpent_xts_dec_16way)
13996
13997 vzeroupper;
13998
13999 + pax_force_retaddr
14000 ret;
14001 ENDPROC(serpent_xts_dec_16way)
14002 diff --git a/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S b/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S
14003 index acc066c..1559cc4 100644
14004 --- a/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S
14005 +++ b/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S
14006 @@ -25,6 +25,7 @@
14007 */
14008
14009 #include <linux/linkage.h>
14010 +#include <asm/alternative-asm.h>
14011
14012 .file "serpent-sse2-x86_64-asm_64.S"
14013 .text
14014 @@ -690,12 +691,14 @@ ENTRY(__serpent_enc_blk_8way)
14015 write_blocks(%rsi, RA1, RB1, RC1, RD1, RK0, RK1, RK2);
14016 write_blocks(%rax, RA2, RB2, RC2, RD2, RK0, RK1, RK2);
14017
14018 + pax_force_retaddr
14019 ret;
14020
14021 .L__enc_xor8:
14022 xor_blocks(%rsi, RA1, RB1, RC1, RD1, RK0, RK1, RK2);
14023 xor_blocks(%rax, RA2, RB2, RC2, RD2, RK0, RK1, RK2);
14024
14025 + pax_force_retaddr
14026 ret;
14027 ENDPROC(__serpent_enc_blk_8way)
14028
14029 @@ -750,5 +753,6 @@ ENTRY(serpent_dec_blk_8way)
14030 write_blocks(%rsi, RC1, RD1, RB1, RE1, RK0, RK1, RK2);
14031 write_blocks(%rax, RC2, RD2, RB2, RE2, RK0, RK1, RK2);
14032
14033 + pax_force_retaddr
14034 ret;
14035 ENDPROC(serpent_dec_blk_8way)
14036 diff --git a/arch/x86/crypto/sha1_ssse3_asm.S b/arch/x86/crypto/sha1_ssse3_asm.S
14037 index a410950..9dfe7ad 100644
14038 --- a/arch/x86/crypto/sha1_ssse3_asm.S
14039 +++ b/arch/x86/crypto/sha1_ssse3_asm.S
14040 @@ -29,6 +29,7 @@
14041 */
14042
14043 #include <linux/linkage.h>
14044 +#include <asm/alternative-asm.h>
14045
14046 #define CTX %rdi // arg1
14047 #define BUF %rsi // arg2
14048 @@ -75,9 +76,9 @@
14049
14050 push %rbx
14051 push %rbp
14052 - push %r12
14053 + push %r14
14054
14055 - mov %rsp, %r12
14056 + mov %rsp, %r14
14057 sub $64, %rsp # allocate workspace
14058 and $~15, %rsp # align stack
14059
14060 @@ -99,11 +100,12 @@
14061 xor %rax, %rax
14062 rep stosq
14063
14064 - mov %r12, %rsp # deallocate workspace
14065 + mov %r14, %rsp # deallocate workspace
14066
14067 - pop %r12
14068 + pop %r14
14069 pop %rbp
14070 pop %rbx
14071 + pax_force_retaddr
14072 ret
14073
14074 ENDPROC(\name)
14075 diff --git a/arch/x86/crypto/sha256-avx-asm.S b/arch/x86/crypto/sha256-avx-asm.S
14076 index 92b3b5d..0dc1dcb 100644
14077 --- a/arch/x86/crypto/sha256-avx-asm.S
14078 +++ b/arch/x86/crypto/sha256-avx-asm.S
14079 @@ -49,6 +49,7 @@
14080
14081 #ifdef CONFIG_AS_AVX
14082 #include <linux/linkage.h>
14083 +#include <asm/alternative-asm.h>
14084
14085 ## assume buffers not aligned
14086 #define VMOVDQ vmovdqu
14087 @@ -460,6 +461,7 @@ done_hash:
14088 popq %r13
14089 popq %rbp
14090 popq %rbx
14091 + pax_force_retaddr
14092 ret
14093 ENDPROC(sha256_transform_avx)
14094
14095 diff --git a/arch/x86/crypto/sha256-avx2-asm.S b/arch/x86/crypto/sha256-avx2-asm.S
14096 index 570ec5e..cf2b625 100644
14097 --- a/arch/x86/crypto/sha256-avx2-asm.S
14098 +++ b/arch/x86/crypto/sha256-avx2-asm.S
14099 @@ -50,6 +50,7 @@
14100
14101 #ifdef CONFIG_AS_AVX2
14102 #include <linux/linkage.h>
14103 +#include <asm/alternative-asm.h>
14104
14105 ## assume buffers not aligned
14106 #define VMOVDQ vmovdqu
14107 @@ -720,6 +721,7 @@ done_hash:
14108 popq %r12
14109 popq %rbp
14110 popq %rbx
14111 + pax_force_retaddr
14112 ret
14113 ENDPROC(sha256_transform_rorx)
14114
14115 diff --git a/arch/x86/crypto/sha256-ssse3-asm.S b/arch/x86/crypto/sha256-ssse3-asm.S
14116 index 2cedc44..5144899 100644
14117 --- a/arch/x86/crypto/sha256-ssse3-asm.S
14118 +++ b/arch/x86/crypto/sha256-ssse3-asm.S
14119 @@ -47,6 +47,7 @@
14120 ########################################################################
14121
14122 #include <linux/linkage.h>
14123 +#include <asm/alternative-asm.h>
14124
14125 ## assume buffers not aligned
14126 #define MOVDQ movdqu
14127 @@ -471,6 +472,7 @@ done_hash:
14128 popq %rbp
14129 popq %rbx
14130
14131 + pax_force_retaddr
14132 ret
14133 ENDPROC(sha256_transform_ssse3)
14134
14135 diff --git a/arch/x86/crypto/sha512-avx-asm.S b/arch/x86/crypto/sha512-avx-asm.S
14136 index 565274d..af6bc08 100644
14137 --- a/arch/x86/crypto/sha512-avx-asm.S
14138 +++ b/arch/x86/crypto/sha512-avx-asm.S
14139 @@ -49,6 +49,7 @@
14140
14141 #ifdef CONFIG_AS_AVX
14142 #include <linux/linkage.h>
14143 +#include <asm/alternative-asm.h>
14144
14145 .text
14146
14147 @@ -364,6 +365,7 @@ updateblock:
14148 mov frame_RSPSAVE(%rsp), %rsp
14149
14150 nowork:
14151 + pax_force_retaddr
14152 ret
14153 ENDPROC(sha512_transform_avx)
14154
14155 diff --git a/arch/x86/crypto/sha512-avx2-asm.S b/arch/x86/crypto/sha512-avx2-asm.S
14156 index 1f20b35..f25c8c1 100644
14157 --- a/arch/x86/crypto/sha512-avx2-asm.S
14158 +++ b/arch/x86/crypto/sha512-avx2-asm.S
14159 @@ -51,6 +51,7 @@
14160
14161 #ifdef CONFIG_AS_AVX2
14162 #include <linux/linkage.h>
14163 +#include <asm/alternative-asm.h>
14164
14165 .text
14166
14167 @@ -678,6 +679,7 @@ done_hash:
14168
14169 # Restore Stack Pointer
14170 mov frame_RSPSAVE(%rsp), %rsp
14171 + pax_force_retaddr
14172 ret
14173 ENDPROC(sha512_transform_rorx)
14174
14175 diff --git a/arch/x86/crypto/sha512-ssse3-asm.S b/arch/x86/crypto/sha512-ssse3-asm.S
14176 index e610e29..ffcb5ed 100644
14177 --- a/arch/x86/crypto/sha512-ssse3-asm.S
14178 +++ b/arch/x86/crypto/sha512-ssse3-asm.S
14179 @@ -48,6 +48,7 @@
14180 ########################################################################
14181
14182 #include <linux/linkage.h>
14183 +#include <asm/alternative-asm.h>
14184
14185 .text
14186
14187 @@ -363,6 +364,7 @@ updateblock:
14188 mov frame_RSPSAVE(%rsp), %rsp
14189
14190 nowork:
14191 + pax_force_retaddr
14192 ret
14193 ENDPROC(sha512_transform_ssse3)
14194
14195 diff --git a/arch/x86/crypto/twofish-avx-x86_64-asm_64.S b/arch/x86/crypto/twofish-avx-x86_64-asm_64.S
14196 index 0505813..b067311 100644
14197 --- a/arch/x86/crypto/twofish-avx-x86_64-asm_64.S
14198 +++ b/arch/x86/crypto/twofish-avx-x86_64-asm_64.S
14199 @@ -24,6 +24,7 @@
14200 */
14201
14202 #include <linux/linkage.h>
14203 +#include <asm/alternative-asm.h>
14204 #include "glue_helper-asm-avx.S"
14205
14206 .file "twofish-avx-x86_64-asm_64.S"
14207 @@ -284,6 +285,7 @@ __twofish_enc_blk8:
14208 outunpack_blocks(RC1, RD1, RA1, RB1, RK1, RX0, RY0, RK2);
14209 outunpack_blocks(RC2, RD2, RA2, RB2, RK1, RX0, RY0, RK2);
14210
14211 + pax_force_retaddr
14212 ret;
14213 ENDPROC(__twofish_enc_blk8)
14214
14215 @@ -324,6 +326,7 @@ __twofish_dec_blk8:
14216 outunpack_blocks(RA1, RB1, RC1, RD1, RK1, RX0, RY0, RK2);
14217 outunpack_blocks(RA2, RB2, RC2, RD2, RK1, RX0, RY0, RK2);
14218
14219 + pax_force_retaddr
14220 ret;
14221 ENDPROC(__twofish_dec_blk8)
14222
14223 @@ -342,6 +345,7 @@ ENTRY(twofish_ecb_enc_8way)
14224
14225 store_8way(%r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
14226
14227 + pax_force_retaddr
14228 ret;
14229 ENDPROC(twofish_ecb_enc_8way)
14230
14231 @@ -360,6 +364,7 @@ ENTRY(twofish_ecb_dec_8way)
14232
14233 store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14234
14235 + pax_force_retaddr
14236 ret;
14237 ENDPROC(twofish_ecb_dec_8way)
14238
14239 @@ -370,19 +375,20 @@ ENTRY(twofish_cbc_dec_8way)
14240 * %rdx: src
14241 */
14242
14243 - pushq %r12;
14244 + pushq %r14;
14245
14246 movq %rsi, %r11;
14247 - movq %rdx, %r12;
14248 + movq %rdx, %r14;
14249
14250 load_8way(%rdx, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
14251
14252 call __twofish_dec_blk8;
14253
14254 - store_cbc_8way(%r12, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14255 + store_cbc_8way(%r14, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14256
14257 - popq %r12;
14258 + popq %r14;
14259
14260 + pax_force_retaddr
14261 ret;
14262 ENDPROC(twofish_cbc_dec_8way)
14263
14264 @@ -394,20 +400,21 @@ ENTRY(twofish_ctr_8way)
14265 * %rcx: iv (little endian, 128bit)
14266 */
14267
14268 - pushq %r12;
14269 + pushq %r14;
14270
14271 movq %rsi, %r11;
14272 - movq %rdx, %r12;
14273 + movq %rdx, %r14;
14274
14275 load_ctr_8way(%rcx, .Lbswap128_mask, RA1, RB1, RC1, RD1, RA2, RB2, RC2,
14276 RD2, RX0, RX1, RY0);
14277
14278 call __twofish_enc_blk8;
14279
14280 - store_ctr_8way(%r12, %r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
14281 + store_ctr_8way(%r14, %r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
14282
14283 - popq %r12;
14284 + popq %r14;
14285
14286 + pax_force_retaddr
14287 ret;
14288 ENDPROC(twofish_ctr_8way)
14289
14290 @@ -430,6 +437,7 @@ ENTRY(twofish_xts_enc_8way)
14291 /* dst <= regs xor IVs(in dst) */
14292 store_xts_8way(%r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
14293
14294 + pax_force_retaddr
14295 ret;
14296 ENDPROC(twofish_xts_enc_8way)
14297
14298 @@ -452,5 +460,6 @@ ENTRY(twofish_xts_dec_8way)
14299 /* dst <= regs xor IVs(in dst) */
14300 store_xts_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14301
14302 + pax_force_retaddr
14303 ret;
14304 ENDPROC(twofish_xts_dec_8way)
14305 diff --git a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
14306 index 1c3b7ce..02f578d 100644
14307 --- a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
14308 +++ b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
14309 @@ -21,6 +21,7 @@
14310 */
14311
14312 #include <linux/linkage.h>
14313 +#include <asm/alternative-asm.h>
14314
14315 .file "twofish-x86_64-asm-3way.S"
14316 .text
14317 @@ -258,6 +259,7 @@ ENTRY(__twofish_enc_blk_3way)
14318 popq %r13;
14319 popq %r14;
14320 popq %r15;
14321 + pax_force_retaddr
14322 ret;
14323
14324 .L__enc_xor3:
14325 @@ -269,6 +271,7 @@ ENTRY(__twofish_enc_blk_3way)
14326 popq %r13;
14327 popq %r14;
14328 popq %r15;
14329 + pax_force_retaddr
14330 ret;
14331 ENDPROC(__twofish_enc_blk_3way)
14332
14333 @@ -308,5 +311,6 @@ ENTRY(twofish_dec_blk_3way)
14334 popq %r13;
14335 popq %r14;
14336 popq %r15;
14337 + pax_force_retaddr
14338 ret;
14339 ENDPROC(twofish_dec_blk_3way)
14340 diff --git a/arch/x86/crypto/twofish-x86_64-asm_64.S b/arch/x86/crypto/twofish-x86_64-asm_64.S
14341 index a350c99..c1bac24 100644
14342 --- a/arch/x86/crypto/twofish-x86_64-asm_64.S
14343 +++ b/arch/x86/crypto/twofish-x86_64-asm_64.S
14344 @@ -22,6 +22,7 @@
14345
14346 #include <linux/linkage.h>
14347 #include <asm/asm-offsets.h>
14348 +#include <asm/alternative-asm.h>
14349
14350 #define a_offset 0
14351 #define b_offset 4
14352 @@ -265,6 +266,7 @@ ENTRY(twofish_enc_blk)
14353
14354 popq R1
14355 movl $1,%eax
14356 + pax_force_retaddr
14357 ret
14358 ENDPROC(twofish_enc_blk)
14359
14360 @@ -317,5 +319,6 @@ ENTRY(twofish_dec_blk)
14361
14362 popq R1
14363 movl $1,%eax
14364 + pax_force_retaddr
14365 ret
14366 ENDPROC(twofish_dec_blk)
14367 diff --git a/arch/x86/entry/calling.h b/arch/x86/entry/calling.h
14368 index 3c71dd9..008b8db 100644
14369 --- a/arch/x86/entry/calling.h
14370 +++ b/arch/x86/entry/calling.h
14371 @@ -93,23 +93,26 @@ For 32-bit we have the following conventions - kernel is built with
14372 .endm
14373
14374 .macro SAVE_C_REGS_HELPER offset=0 rax=1 rcx=1 r8910=1 r11=1
14375 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
14376 + movq %r12, R12+\offset(%rsp)
14377 +#endif
14378 .if \r11
14379 - movq %r11, 6*8+\offset(%rsp)
14380 + movq %r11, R11+\offset(%rsp)
14381 .endif
14382 .if \r8910
14383 - movq %r10, 7*8+\offset(%rsp)
14384 - movq %r9, 8*8+\offset(%rsp)
14385 - movq %r8, 9*8+\offset(%rsp)
14386 + movq %r10, R10+\offset(%rsp)
14387 + movq %r9, R9+\offset(%rsp)
14388 + movq %r8, R8+\offset(%rsp)
14389 .endif
14390 .if \rax
14391 - movq %rax, 10*8+\offset(%rsp)
14392 + movq %rax, RAX+\offset(%rsp)
14393 .endif
14394 .if \rcx
14395 - movq %rcx, 11*8+\offset(%rsp)
14396 + movq %rcx, RCX+\offset(%rsp)
14397 .endif
14398 - movq %rdx, 12*8+\offset(%rsp)
14399 - movq %rsi, 13*8+\offset(%rsp)
14400 - movq %rdi, 14*8+\offset(%rsp)
14401 + movq %rdx, RDX+\offset(%rsp)
14402 + movq %rsi, RSI+\offset(%rsp)
14403 + movq %rdi, RDI+\offset(%rsp)
14404 .endm
14405 .macro SAVE_C_REGS offset=0
14406 SAVE_C_REGS_HELPER \offset, 1, 1, 1, 1
14407 @@ -128,67 +131,78 @@ For 32-bit we have the following conventions - kernel is built with
14408 .endm
14409
14410 .macro SAVE_EXTRA_REGS offset=0
14411 - movq %r15, 0*8+\offset(%rsp)
14412 - movq %r14, 1*8+\offset(%rsp)
14413 - movq %r13, 2*8+\offset(%rsp)
14414 - movq %r12, 3*8+\offset(%rsp)
14415 - movq %rbp, 4*8+\offset(%rsp)
14416 - movq %rbx, 5*8+\offset(%rsp)
14417 + movq %r15, R15+\offset(%rsp)
14418 + movq %r14, R14+\offset(%rsp)
14419 + movq %r13, R13+\offset(%rsp)
14420 +#ifndef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
14421 + movq %r12, R12+\offset(%rsp)
14422 +#endif
14423 + movq %rbp, RBP+\offset(%rsp)
14424 + movq %rbx, RBX+\offset(%rsp)
14425 .endm
14426
14427 .macro RESTORE_EXTRA_REGS offset=0
14428 - movq 0*8+\offset(%rsp), %r15
14429 - movq 1*8+\offset(%rsp), %r14
14430 - movq 2*8+\offset(%rsp), %r13
14431 - movq 3*8+\offset(%rsp), %r12
14432 - movq 4*8+\offset(%rsp), %rbp
14433 - movq 5*8+\offset(%rsp), %rbx
14434 + movq R15+\offset(%rsp), %r15
14435 + movq R14+\offset(%rsp), %r14
14436 + movq R13+\offset(%rsp), %r13
14437 +#ifndef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
14438 + movq R12+\offset(%rsp), %r12
14439 +#endif
14440 + movq RBP+\offset(%rsp), %rbp
14441 + movq RBX+\offset(%rsp), %rbx
14442 .endm
14443
14444 .macro ZERO_EXTRA_REGS
14445 xorl %r15d, %r15d
14446 xorl %r14d, %r14d
14447 xorl %r13d, %r13d
14448 +#ifndef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
14449 xorl %r12d, %r12d
14450 +#endif
14451 xorl %ebp, %ebp
14452 xorl %ebx, %ebx
14453 .endm
14454
14455 - .macro RESTORE_C_REGS_HELPER rstor_rax=1, rstor_rcx=1, rstor_r11=1, rstor_r8910=1, rstor_rdx=1
14456 + .macro RESTORE_C_REGS_HELPER rstor_rax=1, rstor_rcx=1, rstor_r11=1, rstor_r8910=1, rstor_rdx=1, rstor_r12=1
14457 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
14458 + .if \rstor_r12
14459 + movq R12(%rsp), %r12
14460 + .endif
14461 +#endif
14462 .if \rstor_r11
14463 - movq 6*8(%rsp), %r11
14464 + movq R11(%rsp), %r11
14465 .endif
14466 .if \rstor_r8910
14467 - movq 7*8(%rsp), %r10
14468 - movq 8*8(%rsp), %r9
14469 - movq 9*8(%rsp), %r8
14470 + movq R10(%rsp), %r10
14471 + movq R9(%rsp), %r9
14472 + movq R8(%rsp), %r8
14473 .endif
14474 .if \rstor_rax
14475 - movq 10*8(%rsp), %rax
14476 + movq RAX(%rsp), %rax
14477 .endif
14478 .if \rstor_rcx
14479 - movq 11*8(%rsp), %rcx
14480 + movq RCX(%rsp), %rcx
14481 .endif
14482 .if \rstor_rdx
14483 - movq 12*8(%rsp), %rdx
14484 + movq RDX(%rsp), %rdx
14485 .endif
14486 - movq 13*8(%rsp), %rsi
14487 - movq 14*8(%rsp), %rdi
14488 + movq RSI(%rsp), %rsi
14489 + movq RDI(%rsp), %rdi
14490 .endm
14491 .macro RESTORE_C_REGS
14492 - RESTORE_C_REGS_HELPER 1,1,1,1,1
14493 + RESTORE_C_REGS_HELPER 1,1,1,1,1,1
14494 .endm
14495 .macro RESTORE_C_REGS_EXCEPT_RAX
14496 - RESTORE_C_REGS_HELPER 0,1,1,1,1
14497 + RESTORE_C_REGS_HELPER 0,1,1,1,1,0
14498 .endm
14499 .macro RESTORE_C_REGS_EXCEPT_RCX
14500 - RESTORE_C_REGS_HELPER 1,0,1,1,1
14501 + RESTORE_C_REGS_HELPER 1,0,1,1,1,0
14502 .endm
14503 .macro RESTORE_C_REGS_EXCEPT_R11
14504 - RESTORE_C_REGS_HELPER 1,1,0,1,1
14505 + RESTORE_C_REGS_HELPER 1,1,0,1,1,1
14506 .endm
14507 .macro RESTORE_C_REGS_EXCEPT_RCX_R11
14508 - RESTORE_C_REGS_HELPER 1,0,0,1,1
14509 + RESTORE_C_REGS_HELPER 1,0,0,1,1,1
14510 .endm
14511
14512 .macro REMOVE_PT_GPREGS_FROM_STACK addskip=0
14513 diff --git a/arch/x86/entry/common.c b/arch/x86/entry/common.c
14514 index 0366374..61ed739 100644
14515 --- a/arch/x86/entry/common.c
14516 +++ b/arch/x86/entry/common.c
14517 @@ -32,9 +32,7 @@
14518
14519 static struct thread_info *pt_regs_to_thread_info(struct pt_regs *regs)
14520 {
14521 - unsigned long top_of_stack =
14522 - (unsigned long)(regs + 1) + TOP_OF_KERNEL_STACK_PADDING;
14523 - return (struct thread_info *)(top_of_stack - THREAD_SIZE);
14524 + return current_thread_info();
14525 }
14526
14527 #ifdef CONFIG_CONTEXT_TRACKING
14528 @@ -46,6 +44,12 @@ __visible void enter_from_user_mode(void)
14529 }
14530 #endif
14531
14532 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
14533 +asmlinkage void pax_erase_kstack(void);
14534 +#else
14535 +static void pax_erase_kstack(void) {}
14536 +#endif
14537 +
14538 static void do_audit_syscall_entry(struct pt_regs *regs, u32 arch)
14539 {
14540 #ifdef CONFIG_X86_64
14541 @@ -160,6 +164,10 @@ unsigned long syscall_trace_enter_phase1(struct pt_regs *regs, u32 arch)
14542 return 1; /* Something is enabled that we can't handle in phase 1 */
14543 }
14544
14545 +#ifdef CONFIG_GRKERNSEC_SETXID
14546 +extern void gr_delayed_cred_worker(void);
14547 +#endif
14548 +
14549 /* Returns the syscall nr to run (which should match regs->orig_ax). */
14550 long syscall_trace_enter_phase2(struct pt_regs *regs, u32 arch,
14551 unsigned long phase1_result)
14552 @@ -171,6 +179,11 @@ long syscall_trace_enter_phase2(struct pt_regs *regs, u32 arch,
14553 if (IS_ENABLED(CONFIG_DEBUG_ENTRY))
14554 BUG_ON(regs != task_pt_regs(current));
14555
14556 +#ifdef CONFIG_GRKERNSEC_SETXID
14557 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
14558 + gr_delayed_cred_worker();
14559 +#endif
14560 +
14561 /*
14562 * If we stepped into a sysenter/syscall insn, it trapped in
14563 * kernel mode; do_debug() cleared TF and set TIF_SINGLESTEP.
14564 @@ -207,15 +220,14 @@ long syscall_trace_enter_phase2(struct pt_regs *regs, u32 arch,
14565 return ret ?: regs->orig_ax;
14566 }
14567
14568 -long syscall_trace_enter(struct pt_regs *regs)
14569 +static long syscall_trace_enter(struct pt_regs *regs)
14570 {
14571 u32 arch = is_ia32_task() ? AUDIT_ARCH_I386 : AUDIT_ARCH_X86_64;
14572 unsigned long phase1_result = syscall_trace_enter_phase1(regs, arch);
14573
14574 - if (phase1_result == 0)
14575 - return regs->orig_ax;
14576 - else
14577 - return syscall_trace_enter_phase2(regs, arch, phase1_result);
14578 + phase1_result = phase1_result ? syscall_trace_enter_phase2(regs, arch, phase1_result) : regs->orig_ax;
14579 + pax_erase_kstack();
14580 + return phase1_result;
14581 }
14582
14583 #define EXIT_TO_USERMODE_LOOP_FLAGS \
14584 @@ -306,7 +318,7 @@ static void syscall_slow_exit_work(struct pt_regs *regs, u32 cached_flags)
14585 step = unlikely(
14586 (cached_flags & (_TIF_SINGLESTEP | _TIF_SYSCALL_EMU))
14587 == _TIF_SINGLESTEP);
14588 - if (step || cached_flags & _TIF_SYSCALL_TRACE)
14589 + if (step || (cached_flags & _TIF_SYSCALL_TRACE))
14590 tracehook_report_syscall_exit(regs, step);
14591 }
14592
14593 @@ -325,6 +337,11 @@ __visible inline void syscall_return_slowpath(struct pt_regs *regs)
14594 WARN(irqs_disabled(), "syscall %ld left IRQs disabled", regs->orig_ax))
14595 local_irq_enable();
14596
14597 +#ifdef CONFIG_GRKERNSEC_SETXID
14598 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
14599 + gr_delayed_cred_worker();
14600 +#endif
14601 +
14602 /*
14603 * First do one-time work. If these work items are enabled, we
14604 * want to run them exactly once per syscall exit with IRQs on.
14605 @@ -412,6 +429,7 @@ __visible long do_fast_syscall_32(struct pt_regs *regs)
14606
14607 unsigned long landing_pad = (unsigned long)current->mm->context.vdso +
14608 vdso_image_32.sym_int80_landing_pad;
14609 + u32 __user *saved_bp = (u32 __force_user *)(unsigned long)(u32)regs->sp;
14610
14611 /*
14612 * SYSENTER loses EIP, and even SYSCALL32 needs us to skip forward
14613 @@ -432,11 +450,9 @@ __visible long do_fast_syscall_32(struct pt_regs *regs)
14614 * Micro-optimization: the pointer we're following is explicitly
14615 * 32 bits, so it can't be out of range.
14616 */
14617 - __get_user(*(u32 *)&regs->bp,
14618 - (u32 __user __force *)(unsigned long)(u32)regs->sp)
14619 + __get_user_nocheck(*(u32 *)&regs->bp, saved_bp, sizeof(u32))
14620 #else
14621 - get_user(*(u32 *)&regs->bp,
14622 - (u32 __user __force *)(unsigned long)(u32)regs->sp)
14623 + get_user(regs->bp, saved_bp)
14624 #endif
14625 ) {
14626
14627 diff --git a/arch/x86/entry/entry_32.S b/arch/x86/entry/entry_32.S
14628 index f3b6d54..d41929e 100644
14629 --- a/arch/x86/entry/entry_32.S
14630 +++ b/arch/x86/entry/entry_32.S
14631 @@ -147,13 +147,157 @@
14632 movl \reg, PT_GS(%esp)
14633 .endm
14634 .macro SET_KERNEL_GS reg
14635 +
14636 +#ifdef CONFIG_CC_STACKPROTECTOR
14637 movl $(__KERNEL_STACK_CANARY), \reg
14638 +#elif defined(CONFIG_PAX_MEMORY_UDEREF)
14639 + movl $(__USER_DS), \reg
14640 +#else
14641 + xorl \reg, \reg
14642 +#endif
14643 +
14644 movl \reg, %gs
14645 .endm
14646
14647 #endif /* CONFIG_X86_32_LAZY_GS */
14648
14649 -.macro SAVE_ALL pt_regs_ax=%eax
14650 +.macro pax_enter_kernel
14651 +#ifdef CONFIG_PAX_KERNEXEC
14652 + call pax_enter_kernel
14653 +#endif
14654 +.endm
14655 +
14656 +.macro pax_exit_kernel
14657 +#ifdef CONFIG_PAX_KERNEXEC
14658 + call pax_exit_kernel
14659 +#endif
14660 +.endm
14661 +
14662 +#ifdef CONFIG_PAX_KERNEXEC
14663 +ENTRY(pax_enter_kernel)
14664 +#ifdef CONFIG_PARAVIRT
14665 + pushl %eax
14666 + pushl %ecx
14667 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_read_cr0)
14668 + mov %eax, %esi
14669 +#else
14670 + mov %cr0, %esi
14671 +#endif
14672 + bts $X86_CR0_WP_BIT, %esi
14673 + jnc 1f
14674 + mov %cs, %esi
14675 + cmp $__KERNEL_CS, %esi
14676 + jz 3f
14677 + ljmp $__KERNEL_CS, $3f
14678 +1: ljmp $__KERNEXEC_KERNEL_CS, $2f
14679 +2:
14680 +#ifdef CONFIG_PARAVIRT
14681 + mov %esi, %eax
14682 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_write_cr0)
14683 +#else
14684 + mov %esi, %cr0
14685 +#endif
14686 +3:
14687 +#ifdef CONFIG_PARAVIRT
14688 + popl %ecx
14689 + popl %eax
14690 +#endif
14691 + ret
14692 +ENDPROC(pax_enter_kernel)
14693 +
14694 +ENTRY(pax_exit_kernel)
14695 +#ifdef CONFIG_PARAVIRT
14696 + pushl %eax
14697 + pushl %ecx
14698 +#endif
14699 + mov %cs, %esi
14700 + cmp $__KERNEXEC_KERNEL_CS, %esi
14701 + jnz 2f
14702 +#ifdef CONFIG_PARAVIRT
14703 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_read_cr0);
14704 + mov %eax, %esi
14705 +#else
14706 + mov %cr0, %esi
14707 +#endif
14708 + btr $X86_CR0_WP_BIT, %esi
14709 + ljmp $__KERNEL_CS, $1f
14710 +1:
14711 +#ifdef CONFIG_PARAVIRT
14712 + mov %esi, %eax
14713 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_write_cr0);
14714 +#else
14715 + mov %esi, %cr0
14716 +#endif
14717 +2:
14718 +#ifdef CONFIG_PARAVIRT
14719 + popl %ecx
14720 + popl %eax
14721 +#endif
14722 + ret
14723 +ENDPROC(pax_exit_kernel)
14724 +#endif
14725 +
14726 + .macro pax_erase_kstack
14727 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
14728 + call pax_erase_kstack
14729 +#endif
14730 + .endm
14731 +
14732 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
14733 +/*
14734 + * ebp: thread_info
14735 + */
14736 +ENTRY(pax_erase_kstack)
14737 + pushl %edi
14738 + pushl %ecx
14739 + pushl %eax
14740 + pushl %ebp
14741 +
14742 + GET_THREAD_INFO(%ebp)
14743 + mov TI_lowest_stack(%ebp), %edi
14744 + mov $-0xBEEF, %eax
14745 + std
14746 +
14747 +1: mov %edi, %ecx
14748 + and $THREAD_SIZE_asm - 1, %ecx
14749 + shr $2, %ecx
14750 + repne scasl
14751 + jecxz 2f
14752 +
14753 + cmp $2*16, %ecx
14754 + jc 2f
14755 +
14756 + mov $2*16, %ecx
14757 + repe scasl
14758 + jecxz 2f
14759 + jne 1b
14760 +
14761 +2: cld
14762 + or $2*4, %edi
14763 + mov %esp, %ecx
14764 + sub %edi, %ecx
14765 +
14766 + cmp $THREAD_SIZE_asm, %ecx
14767 + jb 3f
14768 + ud2
14769 +3:
14770 +
14771 + shr $2, %ecx
14772 + rep stosl
14773 +
14774 + mov TI_task_thread_sp0(%ebp), %edi
14775 + sub $128, %edi
14776 + mov %edi, TI_lowest_stack(%ebp)
14777 +
14778 + popl %ebp
14779 + popl %eax
14780 + popl %ecx
14781 + popl %edi
14782 + ret
14783 +ENDPROC(pax_erase_kstack)
14784 +#endif
14785 +
14786 +.macro __SAVE_ALL pt_regs_ax, _DS
14787 cld
14788 PUSH_GS
14789 pushl %fs
14790 @@ -166,7 +310,7 @@
14791 pushl %edx
14792 pushl %ecx
14793 pushl %ebx
14794 - movl $(__USER_DS), %edx
14795 + movl $\_DS, %edx
14796 movl %edx, %ds
14797 movl %edx, %es
14798 movl $(__KERNEL_PERCPU), %edx
14799 @@ -174,6 +318,15 @@
14800 SET_KERNEL_GS %edx
14801 .endm
14802
14803 +.macro SAVE_ALL pt_regs_ax=%eax
14804 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
14805 + __SAVE_ALL \pt_regs_ax, __KERNEL_DS
14806 + pax_enter_kernel
14807 +#else
14808 + __SAVE_ALL \pt_regs_ax, __USER_DS
14809 +#endif
14810 +.endm
14811 +
14812 .macro RESTORE_INT_REGS
14813 popl %ebx
14814 popl %ecx
14815 @@ -216,7 +369,7 @@ ENTRY(ret_from_fork)
14816 movl %esp, %eax
14817 call syscall_return_slowpath
14818 jmp restore_all
14819 -END(ret_from_fork)
14820 +ENDPROC(ret_from_fork)
14821
14822 ENTRY(ret_from_kernel_thread)
14823 pushl %eax
14824 @@ -264,15 +417,23 @@ ret_from_intr:
14825 andl $SEGMENT_RPL_MASK, %eax
14826 #endif
14827 cmpl $USER_RPL, %eax
14828 +
14829 +#ifdef CONFIG_PAX_KERNEXEC
14830 + jae resume_userspace
14831 +
14832 + pax_exit_kernel
14833 + jmp resume_kernel
14834 +#else
14835 jb resume_kernel # not returning to v8086 or userspace
14836 +#endif
14837
14838 ENTRY(resume_userspace)
14839 DISABLE_INTERRUPTS(CLBR_ANY)
14840 TRACE_IRQS_OFF
14841 movl %esp, %eax
14842 call prepare_exit_to_usermode
14843 - jmp restore_all
14844 -END(ret_from_exception)
14845 + jmp .Lsyscall_32_done
14846 +ENDPROC(ret_from_exception)
14847
14848 #ifdef CONFIG_PREEMPT
14849 ENTRY(resume_kernel)
14850 @@ -284,7 +445,7 @@ need_resched:
14851 jz restore_all
14852 call preempt_schedule_irq
14853 jmp need_resched
14854 -END(resume_kernel)
14855 +ENDPROC(resume_kernel)
14856 #endif
14857
14858 # SYSENTER call handler stub
14859 @@ -300,6 +461,10 @@ sysenter_past_esp:
14860 pushl %eax /* pt_regs->orig_ax */
14861 SAVE_ALL pt_regs_ax=$-ENOSYS /* save rest */
14862
14863 +#ifdef CONFIG_PAX_RANDKSTACK
14864 + pax_erase_kstack
14865 +#endif
14866 +
14867 /*
14868 * User mode is traced as though IRQs are on, and SYSENTER
14869 * turned them off.
14870 @@ -312,11 +477,20 @@ sysenter_past_esp:
14871 ALTERNATIVE "testl %eax, %eax; jz .Lsyscall_32_done", \
14872 "jmp .Lsyscall_32_done", X86_FEATURE_XENPV
14873
14874 +#ifdef CONFIG_PAX_RANDKSTACK
14875 + movl %esp, %eax
14876 + call pax_randomize_kstack
14877 +#endif
14878 +
14879 + pax_erase_kstack
14880 +
14881 /* Opportunistic SYSEXIT */
14882 TRACE_IRQS_ON /* User mode traces as IRQs on. */
14883 movl PT_EIP(%esp), %edx /* pt_regs->ip */
14884 movl PT_OLDESP(%esp), %ecx /* pt_regs->sp */
14885 1: mov PT_FS(%esp), %fs
14886 +2: mov PT_DS(%esp), %ds
14887 +3: mov PT_ES(%esp), %es
14888 PTGS_TO_GS
14889 popl %ebx /* pt_regs->bx */
14890 addl $2*4, %esp /* skip pt_regs->cx and pt_regs->dx */
14891 @@ -332,10 +506,16 @@ sysenter_past_esp:
14892 ENABLE_INTERRUPTS_SYSEXIT
14893
14894 .pushsection .fixup, "ax"
14895 -2: movl $0, PT_FS(%esp)
14896 +4: movl $0, PT_FS(%esp)
14897 + jmp 1b
14898 +5: movl $0, PT_DS(%esp)
14899 + jmp 1b
14900 +6: movl $0, PT_ES(%esp)
14901 jmp 1b
14902 .popsection
14903 - _ASM_EXTABLE(1b, 2b)
14904 + _ASM_EXTABLE(1b, 4b)
14905 + _ASM_EXTABLE(2b, 5b)
14906 + _ASM_EXTABLE(3b, 6b)
14907 PTGS_TO_GS_EX
14908 ENDPROC(entry_SYSENTER_32)
14909
14910 @@ -345,6 +525,10 @@ ENTRY(entry_INT80_32)
14911 pushl %eax /* pt_regs->orig_ax */
14912 SAVE_ALL pt_regs_ax=$-ENOSYS /* save rest */
14913
14914 +#ifdef CONFIG_PAX_RANDKSTACK
14915 + pax_erase_kstack
14916 +#endif
14917 +
14918 /*
14919 * User mode is traced as though IRQs are on. Unlike the 64-bit
14920 * case, INT80 is a trap gate on 32-bit kernels, so interrupts
14921 @@ -355,6 +539,13 @@ ENTRY(entry_INT80_32)
14922 call do_syscall_32_irqs_on
14923 .Lsyscall_32_done:
14924
14925 +#ifdef CONFIG_PAX_RANDKSTACK
14926 + movl %esp, %eax
14927 + call pax_randomize_kstack
14928 +#endif
14929 +
14930 + pax_erase_kstack
14931 +
14932 restore_all:
14933 TRACE_IRQS_IRET
14934 restore_all_notrace:
14935 @@ -409,14 +600,34 @@ ldt_ss:
14936 * compensating for the offset by changing to the ESPFIX segment with
14937 * a base address that matches for the difference.
14938 */
14939 -#define GDT_ESPFIX_SS PER_CPU_VAR(gdt_page) + (GDT_ENTRY_ESPFIX_SS * 8)
14940 +#define GDT_ESPFIX_SS (GDT_ENTRY_ESPFIX_SS * 8)(%ebx)
14941 mov %esp, %edx /* load kernel esp */
14942 mov PT_OLDESP(%esp), %eax /* load userspace esp */
14943 mov %dx, %ax /* eax: new kernel esp */
14944 sub %eax, %edx /* offset (low word is 0) */
14945 +#ifdef CONFIG_SMP
14946 + movl PER_CPU_VAR(cpu_number), %ebx
14947 + shll $PAGE_SHIFT_asm, %ebx
14948 + addl $cpu_gdt_table, %ebx
14949 +#else
14950 + movl $cpu_gdt_table, %ebx
14951 +#endif
14952 shr $16, %edx
14953 - mov %dl, GDT_ESPFIX_SS + 4 /* bits 16..23 */
14954 - mov %dh, GDT_ESPFIX_SS + 7 /* bits 24..31 */
14955 +
14956 +#ifdef CONFIG_PAX_KERNEXEC
14957 + mov %cr0, %esi
14958 + btr $X86_CR0_WP_BIT, %esi
14959 + mov %esi, %cr0
14960 +#endif
14961 +
14962 + mov %dl, 4 + GDT_ESPFIX_SS /* bits 16..23 */
14963 + mov %dh, 7 + GDT_ESPFIX_SS /* bits 24..31 */
14964 +
14965 +#ifdef CONFIG_PAX_KERNEXEC
14966 + bts $X86_CR0_WP_BIT, %esi
14967 + mov %esi, %cr0
14968 +#endif
14969 +
14970 pushl $__ESPFIX_SS
14971 pushl %eax /* new kernel esp */
14972 /*
14973 @@ -440,8 +651,15 @@ ENDPROC(entry_INT80_32)
14974 */
14975 #ifdef CONFIG_X86_ESPFIX32
14976 /* fixup the stack */
14977 - mov GDT_ESPFIX_SS + 4, %al /* bits 16..23 */
14978 - mov GDT_ESPFIX_SS + 7, %ah /* bits 24..31 */
14979 +#ifdef CONFIG_SMP
14980 + movl PER_CPU_VAR(cpu_number), %ebx
14981 + shll $PAGE_SHIFT_asm, %ebx
14982 + addl $cpu_gdt_table, %ebx
14983 +#else
14984 + movl $cpu_gdt_table, %ebx
14985 +#endif
14986 + mov 4 + GDT_ESPFIX_SS, %al /* bits 16..23 */
14987 + mov 7 + GDT_ESPFIX_SS, %ah /* bits 24..31 */
14988 shl $16, %eax
14989 addl %esp, %eax /* the adjusted stack pointer */
14990 pushl $__KERNEL_DS
14991 @@ -477,7 +695,7 @@ ENTRY(irq_entries_start)
14992 jmp common_interrupt
14993 .align 8
14994 .endr
14995 -END(irq_entries_start)
14996 +ENDPROC(irq_entries_start)
14997
14998 /*
14999 * the CPU automatically disables interrupts when executing an IRQ vector,
15000 @@ -524,7 +742,7 @@ ENTRY(coprocessor_error)
15001 pushl $0
15002 pushl $do_coprocessor_error
15003 jmp error_code
15004 -END(coprocessor_error)
15005 +ENDPROC(coprocessor_error)
15006
15007 ENTRY(simd_coprocessor_error)
15008 ASM_CLAC
15009 @@ -538,25 +756,25 @@ ENTRY(simd_coprocessor_error)
15010 pushl $do_simd_coprocessor_error
15011 #endif
15012 jmp error_code
15013 -END(simd_coprocessor_error)
15014 +ENDPROC(simd_coprocessor_error)
15015
15016 ENTRY(device_not_available)
15017 ASM_CLAC
15018 pushl $-1 # mark this as an int
15019 pushl $do_device_not_available
15020 jmp error_code
15021 -END(device_not_available)
15022 +ENDPROC(device_not_available)
15023
15024 #ifdef CONFIG_PARAVIRT
15025 ENTRY(native_iret)
15026 iret
15027 _ASM_EXTABLE(native_iret, iret_exc)
15028 -END(native_iret)
15029 +ENDPROC(native_iret)
15030
15031 ENTRY(native_irq_enable_sysexit)
15032 sti
15033 sysexit
15034 -END(native_irq_enable_sysexit)
15035 +ENDPROC(native_irq_enable_sysexit)
15036 #endif
15037
15038 ENTRY(overflow)
15039 @@ -564,59 +782,59 @@ ENTRY(overflow)
15040 pushl $0
15041 pushl $do_overflow
15042 jmp error_code
15043 -END(overflow)
15044 +ENDPROC(overflow)
15045
15046 ENTRY(bounds)
15047 ASM_CLAC
15048 pushl $0
15049 pushl $do_bounds
15050 jmp error_code
15051 -END(bounds)
15052 +ENDPROC(bounds)
15053
15054 ENTRY(invalid_op)
15055 ASM_CLAC
15056 pushl $0
15057 pushl $do_invalid_op
15058 jmp error_code
15059 -END(invalid_op)
15060 +ENDPROC(invalid_op)
15061
15062 ENTRY(coprocessor_segment_overrun)
15063 ASM_CLAC
15064 pushl $0
15065 pushl $do_coprocessor_segment_overrun
15066 jmp error_code
15067 -END(coprocessor_segment_overrun)
15068 +ENDPROC(coprocessor_segment_overrun)
15069
15070 ENTRY(invalid_TSS)
15071 ASM_CLAC
15072 pushl $do_invalid_TSS
15073 jmp error_code
15074 -END(invalid_TSS)
15075 +ENDPROC(invalid_TSS)
15076
15077 ENTRY(segment_not_present)
15078 ASM_CLAC
15079 pushl $do_segment_not_present
15080 jmp error_code
15081 -END(segment_not_present)
15082 +ENDPROC(segment_not_present)
15083
15084 ENTRY(stack_segment)
15085 ASM_CLAC
15086 pushl $do_stack_segment
15087 jmp error_code
15088 -END(stack_segment)
15089 +ENDPROC(stack_segment)
15090
15091 ENTRY(alignment_check)
15092 ASM_CLAC
15093 pushl $do_alignment_check
15094 jmp error_code
15095 -END(alignment_check)
15096 +ENDPROC(alignment_check)
15097
15098 ENTRY(divide_error)
15099 ASM_CLAC
15100 pushl $0 # no error code
15101 pushl $do_divide_error
15102 jmp error_code
15103 -END(divide_error)
15104 +ENDPROC(divide_error)
15105
15106 #ifdef CONFIG_X86_MCE
15107 ENTRY(machine_check)
15108 @@ -624,7 +842,7 @@ ENTRY(machine_check)
15109 pushl $0
15110 pushl machine_check_vector
15111 jmp error_code
15112 -END(machine_check)
15113 +ENDPROC(machine_check)
15114 #endif
15115
15116 ENTRY(spurious_interrupt_bug)
15117 @@ -632,7 +850,7 @@ ENTRY(spurious_interrupt_bug)
15118 pushl $0
15119 pushl $do_spurious_interrupt_bug
15120 jmp error_code
15121 -END(spurious_interrupt_bug)
15122 +ENDPROC(spurious_interrupt_bug)
15123
15124 #ifdef CONFIG_XEN
15125 /*
15126 @@ -739,7 +957,7 @@ BUILD_INTERRUPT3(hyperv_callback_vector, HYPERVISOR_CALLBACK_VECTOR,
15127
15128 ENTRY(mcount)
15129 ret
15130 -END(mcount)
15131 +ENDPROC(mcount)
15132
15133 ENTRY(ftrace_caller)
15134 pushl %eax
15135 @@ -769,7 +987,7 @@ ftrace_graph_call:
15136 .globl ftrace_stub
15137 ftrace_stub:
15138 ret
15139 -END(ftrace_caller)
15140 +ENDPROC(ftrace_caller)
15141
15142 ENTRY(ftrace_regs_caller)
15143 pushf /* push flags before compare (in cs location) */
15144 @@ -867,7 +1085,7 @@ trace:
15145 popl %ecx
15146 popl %eax
15147 jmp ftrace_stub
15148 -END(mcount)
15149 +ENDPROC(mcount)
15150 #endif /* CONFIG_DYNAMIC_FTRACE */
15151 #endif /* CONFIG_FUNCTION_TRACER */
15152
15153 @@ -885,7 +1103,7 @@ ENTRY(ftrace_graph_caller)
15154 popl %ecx
15155 popl %eax
15156 ret
15157 -END(ftrace_graph_caller)
15158 +ENDPROC(ftrace_graph_caller)
15159
15160 .globl return_to_handler
15161 return_to_handler:
15162 @@ -904,7 +1122,7 @@ ENTRY(trace_page_fault)
15163 ASM_CLAC
15164 pushl $trace_do_page_fault
15165 jmp error_code
15166 -END(trace_page_fault)
15167 +ENDPROC(trace_page_fault)
15168 #endif
15169
15170 ENTRY(page_fault)
15171 @@ -933,14 +1151,17 @@ error_code:
15172 movl $-1, PT_ORIG_EAX(%esp) # no syscall to restart
15173 REG_TO_PTGS %ecx
15174 SET_KERNEL_GS %ecx
15175 - movl $(__USER_DS), %ecx
15176 + movl $(__KERNEL_DS), %ecx
15177 movl %ecx, %ds
15178 movl %ecx, %es
15179 +
15180 + pax_enter_kernel
15181 +
15182 TRACE_IRQS_OFF
15183 movl %esp, %eax # pt_regs pointer
15184 call *%edi
15185 jmp ret_from_exception
15186 -END(page_fault)
15187 +ENDPROC(page_fault)
15188
15189 /*
15190 * Debug traps and NMI can happen at the one SYSENTER instruction
15191 @@ -978,7 +1199,7 @@ debug_stack_correct:
15192 movl %esp, %eax # pt_regs pointer
15193 call do_debug
15194 jmp ret_from_exception
15195 -END(debug)
15196 +ENDPROC(debug)
15197
15198 /*
15199 * NMI is doubly nasty. It can happen _while_ we're handling
15200 @@ -1017,6 +1238,9 @@ nmi_stack_correct:
15201 xorl %edx, %edx # zero error code
15202 movl %esp, %eax # pt_regs pointer
15203 call do_nmi
15204 +
15205 + pax_exit_kernel
15206 +
15207 jmp restore_all_notrace
15208
15209 nmi_stack_fixup:
15210 @@ -1050,11 +1274,14 @@ nmi_espfix_stack:
15211 FIXUP_ESPFIX_STACK # %eax == %esp
15212 xorl %edx, %edx # zero error code
15213 call do_nmi
15214 +
15215 + pax_exit_kernel
15216 +
15217 RESTORE_REGS
15218 lss 12+4(%esp), %esp # back to espfix stack
15219 jmp irq_return
15220 #endif
15221 -END(nmi)
15222 +ENDPROC(nmi)
15223
15224 ENTRY(int3)
15225 ASM_CLAC
15226 @@ -1065,17 +1292,17 @@ ENTRY(int3)
15227 movl %esp, %eax # pt_regs pointer
15228 call do_int3
15229 jmp ret_from_exception
15230 -END(int3)
15231 +ENDPROC(int3)
15232
15233 ENTRY(general_protection)
15234 pushl $do_general_protection
15235 jmp error_code
15236 -END(general_protection)
15237 +ENDPROC(general_protection)
15238
15239 #ifdef CONFIG_KVM_GUEST
15240 ENTRY(async_page_fault)
15241 ASM_CLAC
15242 pushl $do_async_page_fault
15243 jmp error_code
15244 -END(async_page_fault)
15245 +ENDPROC(async_page_fault)
15246 #endif
15247 diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
15248 index a55697d..66473ae 100644
15249 --- a/arch/x86/entry/entry_64.S
15250 +++ b/arch/x86/entry/entry_64.S
15251 @@ -36,6 +36,8 @@
15252 #include <asm/smap.h>
15253 #include <asm/pgtable_types.h>
15254 #include <linux/err.h>
15255 +#include <asm/pgtable.h>
15256 +#include <asm/alternative-asm.h>
15257
15258 /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */
15259 #include <linux/elf-em.h>
15260 @@ -53,6 +55,402 @@ ENTRY(native_usergs_sysret64)
15261 ENDPROC(native_usergs_sysret64)
15262 #endif /* CONFIG_PARAVIRT */
15263
15264 + .macro ljmpq sel, off
15265 +#if defined(CONFIG_MPSC) || defined(CONFIG_MCORE2) || defined (CONFIG_MATOM)
15266 + .byte 0x48; ljmp *1234f(%rip)
15267 + .pushsection .rodata
15268 + .align 16
15269 + 1234: .quad \off; .word \sel
15270 + .popsection
15271 +#else
15272 + pushq $\sel
15273 + pushq $\off
15274 + lretq
15275 +#endif
15276 + .endm
15277 +
15278 + .macro pax_enter_kernel
15279 + pax_set_fptr_mask
15280 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
15281 + call pax_enter_kernel
15282 +#endif
15283 + .endm
15284 +
15285 + .macro pax_exit_kernel
15286 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
15287 + call pax_exit_kernel
15288 +#endif
15289 + .endm
15290 +
15291 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
15292 +ENTRY(pax_enter_kernel)
15293 + pushq %rdi
15294 +
15295 +#ifdef CONFIG_PARAVIRT
15296 + PV_SAVE_REGS(CLBR_RDI)
15297 +#endif
15298 +
15299 +#ifdef CONFIG_PAX_KERNEXEC
15300 + GET_CR0_INTO_RDI
15301 + bts $X86_CR0_WP_BIT,%rdi
15302 + jnc 3f
15303 + mov %cs,%edi
15304 + cmp $__KERNEL_CS,%edi
15305 + jnz 2f
15306 +1:
15307 +#endif
15308 +
15309 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15310 + ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
15311 + GET_CR3_INTO_RDI
15312 + cmp $0,%dil
15313 + jnz 112f
15314 + mov $__KERNEL_DS,%edi
15315 + mov %edi,%ss
15316 + jmp 111f
15317 +112: cmp $1,%dil
15318 + jz 113f
15319 + ud2
15320 +113: sub $4097,%rdi
15321 + bts $63,%rdi
15322 + SET_RDI_INTO_CR3
15323 + mov $__UDEREF_KERNEL_DS,%edi
15324 + mov %edi,%ss
15325 +111:
15326 +#endif
15327 +
15328 +#ifdef CONFIG_PARAVIRT
15329 + PV_RESTORE_REGS(CLBR_RDI)
15330 +#endif
15331 +
15332 + popq %rdi
15333 + pax_force_retaddr
15334 + retq
15335 +
15336 +#ifdef CONFIG_PAX_KERNEXEC
15337 +2: ljmpq __KERNEL_CS,1b
15338 +3: ljmpq __KERNEXEC_KERNEL_CS,4f
15339 +4: SET_RDI_INTO_CR0
15340 + jmp 1b
15341 +#endif
15342 +ENDPROC(pax_enter_kernel)
15343 +
15344 +ENTRY(pax_exit_kernel)
15345 + pushq %rdi
15346 +
15347 +#ifdef CONFIG_PARAVIRT
15348 + PV_SAVE_REGS(CLBR_RDI)
15349 +#endif
15350 +
15351 +#ifdef CONFIG_PAX_KERNEXEC
15352 + mov %cs,%rdi
15353 + cmp $__KERNEXEC_KERNEL_CS,%edi
15354 + jz 2f
15355 + GET_CR0_INTO_RDI
15356 + bts $X86_CR0_WP_BIT,%rdi
15357 + jnc 4f
15358 +1:
15359 +#endif
15360 +
15361 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15362 + ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
15363 + mov %ss,%edi
15364 + cmp $__UDEREF_KERNEL_DS,%edi
15365 + jnz 111f
15366 + GET_CR3_INTO_RDI
15367 + cmp $0,%dil
15368 + jz 112f
15369 + ud2
15370 +112: add $4097,%rdi
15371 + bts $63,%rdi
15372 + SET_RDI_INTO_CR3
15373 + mov $__KERNEL_DS,%edi
15374 + mov %edi,%ss
15375 +111:
15376 +#endif
15377 +
15378 +#ifdef CONFIG_PARAVIRT
15379 + PV_RESTORE_REGS(CLBR_RDI);
15380 +#endif
15381 +
15382 + popq %rdi
15383 + pax_force_retaddr
15384 + retq
15385 +
15386 +#ifdef CONFIG_PAX_KERNEXEC
15387 +2: GET_CR0_INTO_RDI
15388 + btr $X86_CR0_WP_BIT,%rdi
15389 + jnc 4f
15390 + ljmpq __KERNEL_CS,3f
15391 +3: SET_RDI_INTO_CR0
15392 + jmp 1b
15393 +4: ud2
15394 + jmp 4b
15395 +#endif
15396 +ENDPROC(pax_exit_kernel)
15397 +#endif
15398 +
15399 + .macro pax_enter_kernel_user
15400 + pax_set_fptr_mask
15401 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15402 + call pax_enter_kernel_user
15403 +#endif
15404 + .endm
15405 +
15406 + .macro pax_exit_kernel_user
15407 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15408 + call pax_exit_kernel_user
15409 +#endif
15410 +#ifdef CONFIG_PAX_RANDKSTACK
15411 + pushq %rax
15412 + pushq %r11
15413 + call pax_randomize_kstack
15414 + popq %r11
15415 + popq %rax
15416 +#endif
15417 + .endm
15418 +
15419 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15420 +ENTRY(pax_enter_kernel_user)
15421 + pushq %rdi
15422 + pushq %rbx
15423 +
15424 +#ifdef CONFIG_PARAVIRT
15425 + PV_SAVE_REGS(CLBR_RDI)
15426 +#endif
15427 +
15428 + ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
15429 + GET_CR3_INTO_RDI
15430 + cmp $1,%dil
15431 + jnz 4f
15432 + sub $4097,%rdi
15433 + bts $63,%rdi
15434 + SET_RDI_INTO_CR3
15435 + jmp 3f
15436 +111:
15437 +
15438 + GET_CR3_INTO_RDI
15439 + mov %rdi,%rbx
15440 + add $__START_KERNEL_map,%rbx
15441 + sub phys_base(%rip),%rbx
15442 +
15443 +#ifdef CONFIG_PARAVIRT
15444 + cmpl $0, pv_info+PARAVIRT_enabled
15445 + jz 1f
15446 + pushq %rdi
15447 + i = 0
15448 + .rept USER_PGD_PTRS
15449 + mov i*8(%rbx),%rsi
15450 + mov $0,%sil
15451 + lea i*8(%rbx),%rdi
15452 + call PARA_INDIRECT(pv_mmu_ops+PV_MMU_set_pgd_batched)
15453 + i = i + 1
15454 + .endr
15455 + popq %rdi
15456 + jmp 2f
15457 +1:
15458 +#endif
15459 +
15460 + i = 0
15461 + .rept USER_PGD_PTRS
15462 + movb $0,i*8(%rbx)
15463 + i = i + 1
15464 + .endr
15465 +
15466 +2: SET_RDI_INTO_CR3
15467 +
15468 +#ifdef CONFIG_PAX_KERNEXEC
15469 + GET_CR0_INTO_RDI
15470 + bts $X86_CR0_WP_BIT,%rdi
15471 + SET_RDI_INTO_CR0
15472 +#endif
15473 +
15474 +3:
15475 +
15476 +#ifdef CONFIG_PARAVIRT
15477 + PV_RESTORE_REGS(CLBR_RDI)
15478 +#endif
15479 +
15480 + popq %rbx
15481 + popq %rdi
15482 + pax_force_retaddr
15483 + retq
15484 +4: ud2
15485 +ENDPROC(pax_enter_kernel_user)
15486 +
15487 +ENTRY(pax_exit_kernel_user)
15488 + pushq %rdi
15489 + pushq %rbx
15490 +
15491 +#ifdef CONFIG_PARAVIRT
15492 + PV_SAVE_REGS(CLBR_RDI)
15493 +#endif
15494 +
15495 + GET_CR3_INTO_RDI
15496 + ALTERNATIVE "jmp 1f", "", X86_FEATURE_PCID
15497 + cmp $0,%dil
15498 + jnz 3f
15499 + add $4097,%rdi
15500 + bts $63,%rdi
15501 + SET_RDI_INTO_CR3
15502 + jmp 2f
15503 +1:
15504 +
15505 + mov %rdi,%rbx
15506 +
15507 +#ifdef CONFIG_PAX_KERNEXEC
15508 + GET_CR0_INTO_RDI
15509 + btr $X86_CR0_WP_BIT,%rdi
15510 + jnc 3f
15511 + SET_RDI_INTO_CR0
15512 +#endif
15513 +
15514 + add $__START_KERNEL_map,%rbx
15515 + sub phys_base(%rip),%rbx
15516 +
15517 +#ifdef CONFIG_PARAVIRT
15518 + cmpl $0, pv_info+PARAVIRT_enabled
15519 + jz 1f
15520 + i = 0
15521 + .rept USER_PGD_PTRS
15522 + mov i*8(%rbx),%rsi
15523 + mov $0x67,%sil
15524 + lea i*8(%rbx),%rdi
15525 + call PARA_INDIRECT(pv_mmu_ops+PV_MMU_set_pgd_batched)
15526 + i = i + 1
15527 + .endr
15528 + jmp 2f
15529 +1:
15530 +#endif
15531 +
15532 + i = 0
15533 + .rept USER_PGD_PTRS
15534 + movb $0x67,i*8(%rbx)
15535 + i = i + 1
15536 + .endr
15537 +2:
15538 +
15539 +#ifdef CONFIG_PARAVIRT
15540 + PV_RESTORE_REGS(CLBR_RDI)
15541 +#endif
15542 +
15543 + popq %rbx
15544 + popq %rdi
15545 + pax_force_retaddr
15546 + retq
15547 +3: ud2
15548 +ENDPROC(pax_exit_kernel_user)
15549 +#endif
15550 +
15551 + .macro pax_enter_kernel_nmi
15552 + pax_set_fptr_mask
15553 +
15554 +#ifdef CONFIG_PAX_KERNEXEC
15555 + GET_CR0_INTO_RDI
15556 + bts $X86_CR0_WP_BIT,%rdi
15557 + jc 110f
15558 + SET_RDI_INTO_CR0
15559 + or $2,%ebx
15560 +110:
15561 +#endif
15562 +
15563 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15564 + ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
15565 + GET_CR3_INTO_RDI
15566 + cmp $0,%dil
15567 + jz 111f
15568 + sub $4097,%rdi
15569 + or $4,%ebx
15570 + bts $63,%rdi
15571 + SET_RDI_INTO_CR3
15572 + mov $__UDEREF_KERNEL_DS,%edi
15573 + mov %edi,%ss
15574 +111:
15575 +#endif
15576 + .endm
15577 +
15578 + .macro pax_exit_kernel_nmi
15579 +#ifdef CONFIG_PAX_KERNEXEC
15580 + btr $1,%ebx
15581 + jnc 110f
15582 + GET_CR0_INTO_RDI
15583 + btr $X86_CR0_WP_BIT,%rdi
15584 + SET_RDI_INTO_CR0
15585 +110:
15586 +#endif
15587 +
15588 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15589 + ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
15590 + btr $2,%ebx
15591 + jnc 111f
15592 + GET_CR3_INTO_RDI
15593 + add $4097,%rdi
15594 + bts $63,%rdi
15595 + SET_RDI_INTO_CR3
15596 + mov $__KERNEL_DS,%edi
15597 + mov %edi,%ss
15598 +111:
15599 +#endif
15600 + .endm
15601 +
15602 + .macro pax_erase_kstack
15603 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
15604 + call pax_erase_kstack
15605 +#endif
15606 + .endm
15607 +
15608 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
15609 +ENTRY(pax_erase_kstack)
15610 + pushq %rdi
15611 + pushq %rcx
15612 + pushq %rax
15613 + pushq %r11
15614 +
15615 + GET_THREAD_INFO(%r11)
15616 + mov TI_lowest_stack(%r11), %rdi
15617 + mov $-0xBEEF, %rax
15618 + std
15619 +
15620 +1: mov %edi, %ecx
15621 + and $THREAD_SIZE_asm - 1, %ecx
15622 + shr $3, %ecx
15623 + repne scasq
15624 + jecxz 2f
15625 +
15626 + cmp $2*8, %ecx
15627 + jc 2f
15628 +
15629 + mov $2*8, %ecx
15630 + repe scasq
15631 + jecxz 2f
15632 + jne 1b
15633 +
15634 +2: cld
15635 + or $2*8, %rdi
15636 + mov %esp, %ecx
15637 + sub %edi, %ecx
15638 +
15639 + cmp $THREAD_SIZE_asm, %rcx
15640 + jb 3f
15641 + ud2
15642 +3:
15643 +
15644 + shr $3, %ecx
15645 + rep stosq
15646 +
15647 + mov TI_task_thread_sp0(%r11), %rdi
15648 + sub $256, %rdi
15649 + mov %rdi, TI_lowest_stack(%r11)
15650 +
15651 + popq %r11
15652 + popq %rax
15653 + popq %rcx
15654 + popq %rdi
15655 + pax_force_retaddr
15656 + ret
15657 +ENDPROC(pax_erase_kstack)
15658 +#endif
15659 +
15660 .macro TRACE_IRQS_IRETQ
15661 #ifdef CONFIG_TRACE_IRQFLAGS
15662 bt $9, EFLAGS(%rsp) /* interrupts off? */
15663 @@ -88,7 +486,7 @@ ENDPROC(native_usergs_sysret64)
15664 .endm
15665
15666 .macro TRACE_IRQS_IRETQ_DEBUG
15667 - bt $9, EFLAGS(%rsp) /* interrupts off? */
15668 + bt $X86_EFLAGS_IF_BIT, EFLAGS(%rsp) /* interrupts off? */
15669 jnc 1f
15670 TRACE_IRQS_ON_DEBUG
15671 1:
15672 @@ -148,14 +546,6 @@ GLOBAL(entry_SYSCALL_64_after_swapgs)
15673 /* Construct struct pt_regs on stack */
15674 pushq $__USER_DS /* pt_regs->ss */
15675 pushq PER_CPU_VAR(rsp_scratch) /* pt_regs->sp */
15676 - /*
15677 - * Re-enable interrupts.
15678 - * We use 'rsp_scratch' as a scratch space, hence irq-off block above
15679 - * must execute atomically in the face of possible interrupt-driven
15680 - * task preemption. We must enable interrupts only after we're done
15681 - * with using rsp_scratch:
15682 - */
15683 - ENABLE_INTERRUPTS(CLBR_NONE)
15684 pushq %r11 /* pt_regs->flags */
15685 pushq $__USER_CS /* pt_regs->cs */
15686 pushq %rcx /* pt_regs->ip */
15687 @@ -171,7 +561,27 @@ GLOBAL(entry_SYSCALL_64_after_swapgs)
15688 pushq %r11 /* pt_regs->r11 */
15689 sub $(6*8), %rsp /* pt_regs->bp, bx, r12-15 not saved */
15690
15691 - testl $_TIF_WORK_SYSCALL_ENTRY, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
15692 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
15693 + movq %r12, R12(%rsp)
15694 +#endif
15695 +
15696 + pax_enter_kernel_user
15697 +
15698 +#ifdef CONFIG_PAX_RANDKSTACK
15699 + pax_erase_kstack
15700 +#endif
15701 +
15702 + /*
15703 + * Re-enable interrupts.
15704 + * We use 'rsp_scratch' as a scratch space, hence irq-off block above
15705 + * must execute atomically in the face of possible interrupt-driven
15706 + * task preemption. We must enable interrupts only after we're done
15707 + * with using rsp_scratch:
15708 + */
15709 + ENABLE_INTERRUPTS(CLBR_NONE)
15710 +
15711 + GET_THREAD_INFO(%rcx)
15712 + testl $_TIF_WORK_SYSCALL_ENTRY, TI_flags(%rcx)
15713 jnz tracesys
15714 entry_SYSCALL_64_fastpath:
15715 #if __SYSCALL_MASK == ~0
15716 @@ -204,9 +614,13 @@ entry_SYSCALL_64_fastpath:
15717 * flags (TIF_NOTIFY_RESUME, TIF_USER_RETURN_NOTIFY, etc) set is
15718 * very bad.
15719 */
15720 - testl $_TIF_ALLWORK_MASK, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
15721 + GET_THREAD_INFO(%rcx)
15722 + testl $_TIF_ALLWORK_MASK, TI_flags(%rcx)
15723 jnz int_ret_from_sys_call_irqs_off /* Go to the slow path */
15724
15725 + pax_exit_kernel_user
15726 + pax_erase_kstack
15727 +
15728 RESTORE_C_REGS_EXCEPT_RCX_R11
15729 movq RIP(%rsp), %rcx
15730 movq EFLAGS(%rsp), %r11
15731 @@ -240,6 +654,9 @@ tracesys:
15732 call syscall_trace_enter_phase1
15733 test %rax, %rax
15734 jnz tracesys_phase2 /* if needed, run the slow path */
15735 +
15736 + pax_erase_kstack
15737 +
15738 RESTORE_C_REGS_EXCEPT_RAX /* else restore clobbered regs */
15739 movq ORIG_RAX(%rsp), %rax
15740 jmp entry_SYSCALL_64_fastpath /* and return to the fast path */
15741 @@ -251,6 +668,8 @@ tracesys_phase2:
15742 movq %rax, %rdx
15743 call syscall_trace_enter_phase2
15744
15745 + pax_erase_kstack
15746 +
15747 /*
15748 * Reload registers from stack in case ptrace changed them.
15749 * We don't reload %rax because syscall_trace_entry_phase2() returned
15750 @@ -279,6 +698,8 @@ GLOBAL(int_ret_from_sys_call)
15751 SAVE_EXTRA_REGS
15752 movq %rsp, %rdi
15753 call syscall_return_slowpath /* returns with IRQs disabled */
15754 + pax_exit_kernel_user
15755 + pax_erase_kstack
15756 RESTORE_EXTRA_REGS
15757 TRACE_IRQS_IRETQ /* we're about to change IF */
15758
15759 @@ -353,14 +774,14 @@ syscall_return_via_sysret:
15760 opportunistic_sysret_failed:
15761 SWAPGS
15762 jmp restore_c_regs_and_iret
15763 -END(entry_SYSCALL_64)
15764 +ENDPROC(entry_SYSCALL_64)
15765
15766
15767 .macro FORK_LIKE func
15768 ENTRY(stub_\func)
15769 SAVE_EXTRA_REGS 8
15770 jmp sys_\func
15771 -END(stub_\func)
15772 +ENDPROC(stub_\func)
15773 .endm
15774
15775 FORK_LIKE clone
15776 @@ -380,7 +801,7 @@ return_from_execve:
15777 ZERO_EXTRA_REGS
15778 movq %rax, RAX(%rsp)
15779 jmp int_ret_from_sys_call
15780 -END(stub_execve)
15781 +ENDPROC(stub_execve)
15782 /*
15783 * Remaining execve stubs are only 7 bytes long.
15784 * ENTRY() often aligns to 16 bytes, which in this case has no benefits.
15785 @@ -389,19 +810,19 @@ END(stub_execve)
15786 GLOBAL(stub_execveat)
15787 call sys_execveat
15788 jmp return_from_execve
15789 -END(stub_execveat)
15790 +ENDPROC(stub_execveat)
15791
15792 #if defined(CONFIG_X86_X32_ABI)
15793 .align 8
15794 GLOBAL(stub_x32_execve)
15795 call compat_sys_execve
15796 jmp return_from_execve
15797 -END(stub_x32_execve)
15798 +ENDPROC(stub_x32_execve)
15799 .align 8
15800 GLOBAL(stub_x32_execveat)
15801 call compat_sys_execveat
15802 jmp return_from_execve
15803 -END(stub_x32_execveat)
15804 +ENDPROC(stub_x32_execveat)
15805 #endif
15806
15807 /*
15808 @@ -423,14 +844,14 @@ return_from_stub:
15809 RESTORE_EXTRA_REGS
15810 movq %rax, RAX(%rsp)
15811 jmp int_ret_from_sys_call
15812 -END(stub_rt_sigreturn)
15813 +ENDPROC(stub_rt_sigreturn)
15814
15815 #ifdef CONFIG_X86_X32_ABI
15816 ENTRY(stub_x32_rt_sigreturn)
15817 SAVE_EXTRA_REGS 8
15818 call sys32_x32_rt_sigreturn
15819 jmp return_from_stub
15820 -END(stub_x32_rt_sigreturn)
15821 +ENDPROC(stub_x32_rt_sigreturn)
15822 #endif
15823
15824 /*
15825 @@ -469,7 +890,7 @@ ENTRY(ret_from_fork)
15826 movl $0, RAX(%rsp)
15827 RESTORE_EXTRA_REGS
15828 jmp int_ret_from_sys_call
15829 -END(ret_from_fork)
15830 +ENDPROC(ret_from_fork)
15831
15832 /*
15833 * Build the entry stubs with some assembler magic.
15834 @@ -484,7 +905,7 @@ ENTRY(irq_entries_start)
15835 jmp common_interrupt
15836 .align 8
15837 .endr
15838 -END(irq_entries_start)
15839 +ENDPROC(irq_entries_start)
15840
15841 /*
15842 * Interrupt entry/exit.
15843 @@ -510,6 +931,12 @@ END(irq_entries_start)
15844 */
15845 SWAPGS
15846
15847 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15848 + pax_enter_kernel_user
15849 +#else
15850 + pax_enter_kernel
15851 +#endif
15852 +
15853 /*
15854 * We need to tell lockdep that IRQs are off. We can't do this until
15855 * we fix gsbase, and we should do it before enter_from_user_mode
15856 @@ -524,7 +951,9 @@ END(irq_entries_start)
15857 call enter_from_user_mode
15858 #endif
15859
15860 -1:
15861 + jmp 2f
15862 +1: pax_enter_kernel
15863 +2:
15864 /*
15865 * Save previous stack pointer, optionally switch to interrupt stack.
15866 * irq_count is used to check if a CPU is already on an interrupt stack
15867 @@ -536,6 +965,7 @@ END(irq_entries_start)
15868 incl PER_CPU_VAR(irq_count)
15869 cmovzq PER_CPU_VAR(irq_stack_ptr), %rsp
15870 pushq %rdi
15871 +
15872 /* We entered an interrupt context - irqs are off: */
15873 TRACE_IRQS_OFF
15874
15875 @@ -567,6 +997,8 @@ ret_from_intr:
15876 GLOBAL(retint_user)
15877 mov %rsp,%rdi
15878 call prepare_exit_to_usermode
15879 + pax_exit_kernel_user
15880 +# pax_erase_kstack
15881 TRACE_IRQS_IRETQ
15882 SWAPGS
15883 jmp restore_regs_and_iret
15884 @@ -584,6 +1016,21 @@ retint_kernel:
15885 jmp 0b
15886 1:
15887 #endif
15888 +
15889 + pax_exit_kernel
15890 +
15891 +#if defined(CONFIG_EFI) && defined(CONFIG_PAX_KERNEXEC)
15892 + /* This is a quirk to allow IRQs/NMIs/MCEs during early EFI setup,
15893 + * namely calling EFI runtime services with a phys mapping. We're
15894 + * starting off with NOPs and patch in the real instrumentation
15895 + * (BTS/OR) before starting any userland process; even before starting
15896 + * up the APs.
15897 + */
15898 + ALTERNATIVE "", "pax_force_retaddr 16*8", X86_FEATURE_ALWAYS
15899 +#else
15900 + pax_force_retaddr RIP
15901 +#endif
15902 +
15903 /*
15904 * The iretq could re-enable interrupts:
15905 */
15906 @@ -627,15 +1074,15 @@ native_irq_return_ldt:
15907 SWAPGS
15908 movq PER_CPU_VAR(espfix_waddr), %rdi
15909 movq %rax, (0*8)(%rdi) /* RAX */
15910 - movq (2*8)(%rsp), %rax /* RIP */
15911 + movq (2*8 + RIP-RIP)(%rsp), %rax /* RIP */
15912 movq %rax, (1*8)(%rdi)
15913 - movq (3*8)(%rsp), %rax /* CS */
15914 + movq (2*8 + CS-RIP)(%rsp), %rax /* CS */
15915 movq %rax, (2*8)(%rdi)
15916 - movq (4*8)(%rsp), %rax /* RFLAGS */
15917 + movq (2*8 + EFLAGS-RIP)(%rsp), %rax /* RFLAGS */
15918 movq %rax, (3*8)(%rdi)
15919 - movq (6*8)(%rsp), %rax /* SS */
15920 + movq (2*8 + SS-RIP)(%rsp), %rax /* SS */
15921 movq %rax, (5*8)(%rdi)
15922 - movq (5*8)(%rsp), %rax /* RSP */
15923 + movq (2*8 + RSP-RIP)(%rsp), %rax /* RSP */
15924 movq %rax, (4*8)(%rdi)
15925 andl $0xffff0000, %eax
15926 popq %rdi
15927 @@ -645,7 +1092,7 @@ native_irq_return_ldt:
15928 popq %rax
15929 jmp native_irq_return_iret
15930 #endif
15931 -END(common_interrupt)
15932 +ENDPROC(common_interrupt)
15933
15934 /*
15935 * APIC interrupts.
15936 @@ -657,7 +1104,7 @@ ENTRY(\sym)
15937 .Lcommon_\sym:
15938 interrupt \do_sym
15939 jmp ret_from_intr
15940 -END(\sym)
15941 +ENDPROC(\sym)
15942 .endm
15943
15944 #ifdef CONFIG_TRACING
15945 @@ -722,7 +1169,7 @@ apicinterrupt IRQ_WORK_VECTOR irq_work_interrupt smp_irq_work_interrupt
15946 /*
15947 * Exception entry points.
15948 */
15949 -#define CPU_TSS_IST(x) PER_CPU_VAR(cpu_tss) + (TSS_ist + ((x) - 1) * 8)
15950 +#define CPU_TSS_IST(x) (TSS_ist + ((x) - 1) * 8)(%r13)
15951
15952 .macro idtentry sym do_sym has_error_code:req paranoid=0 shift_ist=-1
15953 ENTRY(\sym)
15954 @@ -769,6 +1216,12 @@ ENTRY(\sym)
15955 .endif
15956
15957 .if \shift_ist != -1
15958 +#ifdef CONFIG_SMP
15959 + imul $TSS_size, PER_CPU_VAR(cpu_number), %r13d
15960 + lea cpu_tss(%r13), %r13
15961 +#else
15962 + lea cpu_tss(%rip), %r13
15963 +#endif
15964 subq $EXCEPTION_STKSZ, CPU_TSS_IST(\shift_ist)
15965 .endif
15966
15967 @@ -812,7 +1265,7 @@ ENTRY(\sym)
15968
15969 jmp error_exit /* %ebx: no swapgs flag */
15970 .endif
15971 -END(\sym)
15972 +ENDPROC(\sym)
15973 .endm
15974
15975 #ifdef CONFIG_TRACING
15976 @@ -854,8 +1307,9 @@ gs_change:
15977 2: mfence /* workaround */
15978 SWAPGS
15979 popfq
15980 + pax_force_retaddr
15981 ret
15982 -END(native_load_gs_index)
15983 +ENDPROC(native_load_gs_index)
15984
15985 _ASM_EXTABLE(gs_change, bad_gs)
15986 .section .fixup, "ax"
15987 @@ -877,8 +1331,9 @@ ENTRY(do_softirq_own_stack)
15988 call __do_softirq
15989 leaveq
15990 decl PER_CPU_VAR(irq_count)
15991 + pax_force_retaddr
15992 ret
15993 -END(do_softirq_own_stack)
15994 +ENDPROC(do_softirq_own_stack)
15995
15996 #ifdef CONFIG_XEN
15997 idtentry xen_hypervisor_callback xen_do_hypervisor_callback has_error_code=0
15998 @@ -914,7 +1369,7 @@ ENTRY(xen_do_hypervisor_callback) /* do_hypervisor_callback(struct *pt_regs) */
15999 call xen_maybe_preempt_hcall
16000 #endif
16001 jmp error_exit
16002 -END(xen_do_hypervisor_callback)
16003 +ENDPROC(xen_do_hypervisor_callback)
16004
16005 /*
16006 * Hypervisor uses this for application faults while it executes.
16007 @@ -959,7 +1414,7 @@ ENTRY(xen_failsafe_callback)
16008 SAVE_C_REGS
16009 SAVE_EXTRA_REGS
16010 jmp error_exit
16011 -END(xen_failsafe_callback)
16012 +ENDPROC(xen_failsafe_callback)
16013
16014 apicinterrupt3 HYPERVISOR_CALLBACK_VECTOR \
16015 xen_hvm_callback_vector xen_evtchn_do_upcall
16016 @@ -1008,8 +1463,34 @@ ENTRY(paranoid_entry)
16017 js 1f /* negative -> in kernel */
16018 SWAPGS
16019 xorl %ebx, %ebx
16020 -1: ret
16021 -END(paranoid_entry)
16022 +1:
16023 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16024 + testb $3, CS+8(%rsp)
16025 + jz 1f
16026 + pax_enter_kernel_user
16027 + jmp 2f
16028 +#endif
16029 +1: pax_enter_kernel
16030 +2:
16031 + pax_force_retaddr
16032 + ret
16033 +ENDPROC(paranoid_entry)
16034 +
16035 +ENTRY(paranoid_entry_nmi)
16036 + cld
16037 + SAVE_C_REGS 8
16038 + SAVE_EXTRA_REGS 8
16039 + movl $1, %ebx
16040 + movl $MSR_GS_BASE, %ecx
16041 + rdmsr
16042 + testl %edx, %edx
16043 + js 1f /* negative -> in kernel */
16044 + SWAPGS
16045 + xorl %ebx, %ebx
16046 +1: pax_enter_kernel_nmi
16047 + pax_force_retaddr
16048 + ret
16049 +ENDPROC(paranoid_entry_nmi)
16050
16051 /*
16052 * "Paranoid" exit path from exception stack. This is invoked
16053 @@ -1026,19 +1507,26 @@ END(paranoid_entry)
16054 ENTRY(paranoid_exit)
16055 DISABLE_INTERRUPTS(CLBR_NONE)
16056 TRACE_IRQS_OFF_DEBUG
16057 - testl %ebx, %ebx /* swapgs needed? */
16058 + testl $1, %ebx /* swapgs needed? */
16059 jnz paranoid_exit_no_swapgs
16060 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16061 + pax_exit_kernel_user
16062 +#else
16063 + pax_exit_kernel
16064 +#endif
16065 TRACE_IRQS_IRETQ
16066 SWAPGS_UNSAFE_STACK
16067 jmp paranoid_exit_restore
16068 paranoid_exit_no_swapgs:
16069 + pax_exit_kernel
16070 TRACE_IRQS_IRETQ_DEBUG
16071 paranoid_exit_restore:
16072 RESTORE_EXTRA_REGS
16073 RESTORE_C_REGS
16074 REMOVE_PT_GPREGS_FROM_STACK 8
16075 + pax_force_retaddr_bts
16076 INTERRUPT_RETURN
16077 -END(paranoid_exit)
16078 +ENDPROC(paranoid_exit)
16079
16080 /*
16081 * Save all registers in pt_regs, and switch gs if needed.
16082 @@ -1052,13 +1540,18 @@ ENTRY(error_entry)
16083 testb $3, CS+8(%rsp)
16084 jz .Lerror_kernelspace
16085
16086 -.Lerror_entry_from_usermode_swapgs:
16087 /*
16088 * We entered from user mode or we're pretending to have entered
16089 * from user mode due to an IRET fault.
16090 */
16091 SWAPGS
16092
16093 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16094 + pax_enter_kernel_user
16095 +#else
16096 + pax_enter_kernel
16097 +#endif
16098 +
16099 .Lerror_entry_from_usermode_after_swapgs:
16100 /*
16101 * We need to tell lockdep that IRQs are off. We can't do this until
16102 @@ -1069,10 +1562,12 @@ ENTRY(error_entry)
16103 #ifdef CONFIG_CONTEXT_TRACKING
16104 call enter_from_user_mode
16105 #endif
16106 + pax_force_retaddr
16107 ret
16108
16109 .Lerror_entry_done:
16110 TRACE_IRQS_OFF
16111 + pax_force_retaddr
16112 ret
16113
16114 /*
16115 @@ -1090,14 +1585,16 @@ ENTRY(error_entry)
16116 cmpq %rax, RIP+8(%rsp)
16117 je .Lbstep_iret
16118 cmpq $gs_change, RIP+8(%rsp)
16119 - jne .Lerror_entry_done
16120 + jne 1f
16121
16122 /*
16123 * hack: gs_change can fail with user gsbase. If this happens, fix up
16124 * gsbase and proceed. We'll fix up the exception and land in
16125 * gs_change's error handler with kernel gsbase.
16126 */
16127 - jmp .Lerror_entry_from_usermode_swapgs
16128 + SWAPGS
16129 +1: pax_enter_kernel
16130 + jmp .Lerror_entry_done
16131
16132 .Lbstep_iret:
16133 /* Fix truncated RIP */
16134 @@ -1111,6 +1608,12 @@ ENTRY(error_entry)
16135 */
16136 SWAPGS
16137
16138 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16139 + pax_enter_kernel_user
16140 +#else
16141 + pax_enter_kernel
16142 +#endif
16143 +
16144 /*
16145 * Pretend that the exception came from user mode: set up pt_regs
16146 * as if we faulted immediately after IRET and clear EBX so that
16147 @@ -1121,11 +1624,11 @@ ENTRY(error_entry)
16148 mov %rax, %rsp
16149 decl %ebx
16150 jmp .Lerror_entry_from_usermode_after_swapgs
16151 -END(error_entry)
16152 +ENDPROC(error_entry)
16153
16154
16155 /*
16156 - * On entry, EBS is a "return to kernel mode" flag:
16157 + * On entry, EBX is a "return to kernel mode" flag:
16158 * 1: already in kernel mode, don't need SWAPGS
16159 * 0: user gsbase is loaded, we need SWAPGS and standard preparation for return to usermode
16160 */
16161 @@ -1133,10 +1636,10 @@ ENTRY(error_exit)
16162 movl %ebx, %eax
16163 DISABLE_INTERRUPTS(CLBR_NONE)
16164 TRACE_IRQS_OFF
16165 - testl %eax, %eax
16166 + testl $1, %eax
16167 jnz retint_kernel
16168 jmp retint_user
16169 -END(error_exit)
16170 +ENDPROC(error_exit)
16171
16172 /* Runs on exception stack */
16173 ENTRY(nmi)
16174 @@ -1190,6 +1693,8 @@ ENTRY(nmi)
16175 * other IST entries.
16176 */
16177
16178 + ASM_CLAC
16179 +
16180 /* Use %rdx as our temp variable throughout */
16181 pushq %rdx
16182
16183 @@ -1233,6 +1738,12 @@ ENTRY(nmi)
16184 pushq %r14 /* pt_regs->r14 */
16185 pushq %r15 /* pt_regs->r15 */
16186
16187 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
16188 + xorl %ebx, %ebx
16189 +#endif
16190 +
16191 + pax_enter_kernel_nmi
16192 +
16193 /*
16194 * At this point we no longer need to worry about stack damage
16195 * due to nesting -- we're on the normal thread stack and we're
16196 @@ -1243,12 +1754,19 @@ ENTRY(nmi)
16197 movq $-1, %rsi
16198 call do_nmi
16199
16200 + pax_exit_kernel_nmi
16201 +
16202 /*
16203 * Return back to user mode. We must *not* do the normal exit
16204 * work, because we don't want to enable interrupts. Fortunately,
16205 * do_nmi doesn't modify pt_regs.
16206 */
16207 SWAPGS
16208 +
16209 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
16210 + movq RBX(%rsp), %rbx
16211 +#endif
16212 +
16213 jmp restore_c_regs_and_iret
16214
16215 .Lnmi_from_kernel:
16216 @@ -1370,6 +1888,7 @@ nested_nmi_out:
16217 popq %rdx
16218
16219 /* We are returning to kernel mode, so this cannot result in a fault. */
16220 +# pax_force_retaddr_bts
16221 INTERRUPT_RETURN
16222
16223 first_nmi:
16224 @@ -1398,7 +1917,7 @@ first_nmi:
16225 pushq %rsp /* RSP (minus 8 because of the previous push) */
16226 addq $8, (%rsp) /* Fix up RSP */
16227 pushfq /* RFLAGS */
16228 - pushq $__KERNEL_CS /* CS */
16229 + pushq 4*8(%rsp) /* CS */
16230 pushq $1f /* RIP */
16231 INTERRUPT_RETURN /* continues at repeat_nmi below */
16232 1:
16233 @@ -1443,20 +1962,22 @@ end_repeat_nmi:
16234 ALLOC_PT_GPREGS_ON_STACK
16235
16236 /*
16237 - * Use paranoid_entry to handle SWAPGS, but no need to use paranoid_exit
16238 + * Use paranoid_entry_nmi to handle SWAPGS, but no need to use paranoid_exit
16239 * as we should not be calling schedule in NMI context.
16240 * Even with normal interrupts enabled. An NMI should not be
16241 * setting NEED_RESCHED or anything that normal interrupts and
16242 * exceptions might do.
16243 */
16244 - call paranoid_entry
16245 + call paranoid_entry_nmi
16246
16247 /* paranoidentry do_nmi, 0; without TRACE_IRQS_OFF */
16248 movq %rsp, %rdi
16249 movq $-1, %rsi
16250 call do_nmi
16251
16252 - testl %ebx, %ebx /* swapgs needed? */
16253 + pax_exit_kernel_nmi
16254 +
16255 + testl $1, %ebx /* swapgs needed? */
16256 jnz nmi_restore
16257 nmi_swapgs:
16258 SWAPGS_UNSAFE_STACK
16259 @@ -1467,6 +1988,8 @@ nmi_restore:
16260 /* Point RSP at the "iret" frame. */
16261 REMOVE_PT_GPREGS_FROM_STACK 6*8
16262
16263 + pax_force_retaddr_bts
16264 +
16265 /*
16266 * Clear "NMI executing". Set DF first so that we can easily
16267 * distinguish the remaining code between here and IRET from
16268 @@ -1484,9 +2007,9 @@ nmi_restore:
16269 * mode, so this cannot result in a fault.
16270 */
16271 INTERRUPT_RETURN
16272 -END(nmi)
16273 +ENDPROC(nmi)
16274
16275 ENTRY(ignore_sysret)
16276 mov $-ENOSYS, %eax
16277 sysret
16278 -END(ignore_sysret)
16279 +ENDPROC(ignore_sysret)
16280 diff --git a/arch/x86/entry/entry_64_compat.S b/arch/x86/entry/entry_64_compat.S
16281 index 15cfeba..da22a57 100644
16282 --- a/arch/x86/entry/entry_64_compat.S
16283 +++ b/arch/x86/entry/entry_64_compat.S
16284 @@ -13,8 +13,10 @@
16285 #include <asm/irqflags.h>
16286 #include <asm/asm.h>
16287 #include <asm/smap.h>
16288 +#include <asm/pgtable.h>
16289 #include <linux/linkage.h>
16290 #include <linux/err.h>
16291 +#include <asm/alternative-asm.h>
16292
16293 .section .entry.text, "ax"
16294
16295 @@ -25,6 +27,32 @@ ENTRY(native_usergs_sysret32)
16296 ENDPROC(native_usergs_sysret32)
16297 #endif
16298
16299 + .macro pax_enter_kernel_user
16300 + pax_set_fptr_mask
16301 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16302 + call pax_enter_kernel_user
16303 +#endif
16304 + .endm
16305 +
16306 + .macro pax_exit_kernel_user
16307 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16308 + call pax_exit_kernel_user
16309 +#endif
16310 +#ifdef CONFIG_PAX_RANDKSTACK
16311 + pushq %rax
16312 + pushq %r11
16313 + call pax_randomize_kstack
16314 + popq %r11
16315 + popq %rax
16316 +#endif
16317 + .endm
16318 +
16319 + .macro pax_erase_kstack
16320 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
16321 + call pax_erase_kstack
16322 +#endif
16323 + .endm
16324 +
16325 /*
16326 * 32-bit SYSENTER instruction entry.
16327 *
16328 @@ -76,26 +104,36 @@ ENTRY(entry_SYSENTER_compat)
16329 ASM_CLAC /* Clear AC after saving FLAGS */
16330
16331 pushq $__USER32_CS /* pt_regs->cs */
16332 - xorq %r8,%r8
16333 - pushq %r8 /* pt_regs->ip = 0 (placeholder) */
16334 + pushq $0 /* pt_regs->ip = 0 (placeholder) */
16335 pushq %rax /* pt_regs->orig_ax */
16336 + xorl %eax,%eax
16337 pushq %rdi /* pt_regs->di */
16338 pushq %rsi /* pt_regs->si */
16339 pushq %rdx /* pt_regs->dx */
16340 pushq %rcx /* pt_regs->cx */
16341 pushq $-ENOSYS /* pt_regs->ax */
16342 - pushq %r8 /* pt_regs->r8 = 0 */
16343 - pushq %r8 /* pt_regs->r9 = 0 */
16344 - pushq %r8 /* pt_regs->r10 = 0 */
16345 - pushq %r8 /* pt_regs->r11 = 0 */
16346 + pushq %rax /* pt_regs->r8 = 0 */
16347 + pushq %rax /* pt_regs->r9 = 0 */
16348 + pushq %rax /* pt_regs->r10 = 0 */
16349 + pushq %rax /* pt_regs->r11 = 0 */
16350 pushq %rbx /* pt_regs->rbx */
16351 pushq %rbp /* pt_regs->rbp (will be overwritten) */
16352 - pushq %r8 /* pt_regs->r12 = 0 */
16353 - pushq %r8 /* pt_regs->r13 = 0 */
16354 - pushq %r8 /* pt_regs->r14 = 0 */
16355 - pushq %r8 /* pt_regs->r15 = 0 */
16356 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
16357 + pushq %r12 /* pt_regs->r12 */
16358 +#else
16359 + pushq %rax /* pt_regs->r12 = 0 */
16360 +#endif
16361 + pushq %rax /* pt_regs->r13 = 0 */
16362 + pushq %rax /* pt_regs->r14 = 0 */
16363 + pushq %rax /* pt_regs->r15 = 0 */
16364 cld
16365
16366 + pax_enter_kernel_user
16367 +
16368 +#ifdef CONFIG_PAX_RANDKSTACK
16369 + pax_erase_kstack
16370 +#endif
16371 +
16372 /*
16373 * Sysenter doesn't filter flags, so we need to clear NT
16374 * ourselves. To save a few cycles, we can check whether
16375 @@ -181,17 +219,27 @@ ENTRY(entry_SYSCALL_compat)
16376 pushq %rdx /* pt_regs->dx */
16377 pushq %rbp /* pt_regs->cx (stashed in bp) */
16378 pushq $-ENOSYS /* pt_regs->ax */
16379 - xorq %r8,%r8
16380 - pushq %r8 /* pt_regs->r8 = 0 */
16381 - pushq %r8 /* pt_regs->r9 = 0 */
16382 - pushq %r8 /* pt_regs->r10 = 0 */
16383 - pushq %r8 /* pt_regs->r11 = 0 */
16384 + xorl %eax,%eax
16385 + pushq %rax /* pt_regs->r8 = 0 */
16386 + pushq %rax /* pt_regs->r9 = 0 */
16387 + pushq %rax /* pt_regs->r10 = 0 */
16388 + pushq %rax /* pt_regs->r11 = 0 */
16389 pushq %rbx /* pt_regs->rbx */
16390 pushq %rbp /* pt_regs->rbp (will be overwritten) */
16391 - pushq %r8 /* pt_regs->r12 = 0 */
16392 - pushq %r8 /* pt_regs->r13 = 0 */
16393 - pushq %r8 /* pt_regs->r14 = 0 */
16394 - pushq %r8 /* pt_regs->r15 = 0 */
16395 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
16396 + pushq %r12 /* pt_regs->r12 */
16397 +#else
16398 + pushq %rax /* pt_regs->r12 = 0 */
16399 +#endif
16400 + pushq %rax /* pt_regs->r13 = 0 */
16401 + pushq %rax /* pt_regs->r14 = 0 */
16402 + pushq %rax /* pt_regs->r15 = 0 */
16403 +
16404 + pax_enter_kernel_user
16405 +
16406 +#ifdef CONFIG_PAX_RANDKSTACK
16407 + pax_erase_kstack
16408 +#endif
16409
16410 /*
16411 * User mode is traced as though IRQs are on, and SYSENTER
16412 @@ -207,11 +255,18 @@ ENTRY(entry_SYSCALL_compat)
16413
16414 /* Opportunistic SYSRET */
16415 sysret32_from_system_call:
16416 + pax_exit_kernel_user
16417 + pax_erase_kstack
16418 TRACE_IRQS_ON /* User mode traces as IRQs on. */
16419 movq RBX(%rsp), %rbx /* pt_regs->rbx */
16420 movq RBP(%rsp), %rbp /* pt_regs->rbp */
16421 movq EFLAGS(%rsp), %r11 /* pt_regs->flags (in r11) */
16422 movq RIP(%rsp), %rcx /* pt_regs->ip (in rcx) */
16423 +
16424 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
16425 + movq R12(%rsp), %r12
16426 +#endif
16427 +
16428 addq $RAX, %rsp /* Skip r8-r15 */
16429 popq %rax /* pt_regs->rax */
16430 popq %rdx /* Skip pt_regs->cx */
16431 @@ -239,7 +294,7 @@ sysret32_from_system_call:
16432 xorq %r10, %r10
16433 movq RSP-ORIG_RAX(%rsp), %rsp
16434 USERGS_SYSRET32
16435 -END(entry_SYSCALL_compat)
16436 +ENDPROC(entry_SYSCALL_compat)
16437
16438 /*
16439 * Emulated IA32 system calls via int 0x80.
16440 @@ -286,11 +341,11 @@ ENTRY(entry_INT80_compat)
16441 pushq %rdx /* pt_regs->dx */
16442 pushq %rcx /* pt_regs->cx */
16443 pushq $-ENOSYS /* pt_regs->ax */
16444 - xorq %r8,%r8
16445 - pushq %r8 /* pt_regs->r8 = 0 */
16446 - pushq %r8 /* pt_regs->r9 = 0 */
16447 - pushq %r8 /* pt_regs->r10 = 0 */
16448 - pushq %r8 /* pt_regs->r11 = 0 */
16449 + xorl %eax,%eax
16450 + pushq %rax /* pt_regs->r8 = 0 */
16451 + pushq %rax /* pt_regs->r9 = 0 */
16452 + pushq %rax /* pt_regs->r10 = 0 */
16453 + pushq %rax /* pt_regs->r11 = 0 */
16454 pushq %rbx /* pt_regs->rbx */
16455 pushq %rbp /* pt_regs->rbp */
16456 pushq %r12 /* pt_regs->r12 */
16457 @@ -299,6 +354,12 @@ ENTRY(entry_INT80_compat)
16458 pushq %r15 /* pt_regs->r15 */
16459 cld
16460
16461 + pax_enter_kernel_user
16462 +
16463 +#ifdef CONFIG_PAX_RANDKSTACK
16464 + pax_erase_kstack
16465 +#endif
16466 +
16467 /*
16468 * User mode is traced as though IRQs are on, and the interrupt
16469 * gate turned them off.
16470 @@ -310,10 +371,12 @@ ENTRY(entry_INT80_compat)
16471 .Lsyscall_32_done:
16472
16473 /* Go back to user mode. */
16474 + pax_exit_kernel_user
16475 + pax_erase_kstack
16476 TRACE_IRQS_ON
16477 SWAPGS
16478 jmp restore_regs_and_iret
16479 -END(entry_INT80_compat)
16480 +ENDPROC(entry_INT80_compat)
16481
16482 ALIGN
16483 GLOBAL(stub32_clone)
16484 diff --git a/arch/x86/entry/thunk_64.S b/arch/x86/entry/thunk_64.S
16485 index efb2b93..8a9cb8e 100644
16486 --- a/arch/x86/entry/thunk_64.S
16487 +++ b/arch/x86/entry/thunk_64.S
16488 @@ -8,6 +8,7 @@
16489 #include <linux/linkage.h>
16490 #include "calling.h"
16491 #include <asm/asm.h>
16492 +#include <asm/alternative-asm.h>
16493
16494 /* rdi: arg1 ... normal C conventions. rax is saved/restored. */
16495 .macro THUNK name, func, put_ret_addr_in_rdi=0
16496 @@ -62,6 +63,7 @@ restore:
16497 popq %rdx
16498 popq %rsi
16499 popq %rdi
16500 + pax_force_retaddr
16501 ret
16502 _ASM_NOKPROBE(restore)
16503 #endif
16504 diff --git a/arch/x86/entry/vdso/Makefile b/arch/x86/entry/vdso/Makefile
16505 index 265c0ed..a9ca19a 100644
16506 --- a/arch/x86/entry/vdso/Makefile
16507 +++ b/arch/x86/entry/vdso/Makefile
16508 @@ -69,7 +69,7 @@ CFL := $(PROFILING) -mcmodel=small -fPIC -O2 -fasynchronous-unwind-tables -m64 \
16509 -fno-omit-frame-pointer -foptimize-sibling-calls \
16510 -DDISABLE_BRANCH_PROFILING -DBUILD_VDSO
16511
16512 -$(vobjs): KBUILD_CFLAGS += $(CFL)
16513 +$(vobjs): KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS)) $(CFL)
16514
16515 #
16516 # vDSO code runs in userspace and -pg doesn't help with profiling anyway.
16517 @@ -162,7 +162,7 @@ quiet_cmd_vdso = VDSO $@
16518 -Wl,-T,$(filter %.lds,$^) $(filter %.o,$^) && \
16519 sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@'
16520
16521 -VDSO_LDFLAGS = -fPIC -shared $(call cc-ldoption, -Wl$(comma)--hash-style=both) \
16522 +VDSO_LDFLAGS = -fPIC -shared -Wl,--no-undefined $(call cc-ldoption, -Wl$(comma)--hash-style=both) \
16523 $(call cc-ldoption, -Wl$(comma)--build-id) -Wl,-Bsymbolic $(LTO_CFLAGS)
16524 GCOV_PROFILE := n
16525
16526 diff --git a/arch/x86/entry/vdso/vdso2c.h b/arch/x86/entry/vdso/vdso2c.h
16527 index 0224987..0359810 100644
16528 --- a/arch/x86/entry/vdso/vdso2c.h
16529 +++ b/arch/x86/entry/vdso/vdso2c.h
16530 @@ -12,7 +12,7 @@ static void BITSFUNC(go)(void *raw_addr, size_t raw_len,
16531 unsigned long load_size = -1; /* Work around bogus warning */
16532 unsigned long mapping_size;
16533 ELF(Ehdr) *hdr = (ELF(Ehdr) *)raw_addr;
16534 - int i;
16535 + unsigned int i;
16536 unsigned long j;
16537 ELF(Shdr) *symtab_hdr = NULL, *strtab_hdr, *secstrings_hdr,
16538 *alt_sec = NULL;
16539 @@ -83,7 +83,7 @@ static void BITSFUNC(go)(void *raw_addr, size_t raw_len,
16540 for (i = 0;
16541 i < GET_LE(&symtab_hdr->sh_size) / GET_LE(&symtab_hdr->sh_entsize);
16542 i++) {
16543 - int k;
16544 + unsigned int k;
16545 ELF(Sym) *sym = raw_addr + GET_LE(&symtab_hdr->sh_offset) +
16546 GET_LE(&symtab_hdr->sh_entsize) * i;
16547 const char *name = raw_addr + GET_LE(&strtab_hdr->sh_offset) +
16548 @@ -140,7 +140,7 @@ static void BITSFUNC(go)(void *raw_addr, size_t raw_len,
16549 fprintf(outfile, "#include <asm/vdso.h>\n");
16550 fprintf(outfile, "\n");
16551 fprintf(outfile,
16552 - "static unsigned char raw_data[%lu] __page_aligned_data = {",
16553 + "static unsigned char raw_data[%lu] __page_aligned_rodata = {",
16554 mapping_size);
16555 for (j = 0; j < stripped_len; j++) {
16556 if (j % 10 == 0)
16557 @@ -150,7 +150,7 @@ static void BITSFUNC(go)(void *raw_addr, size_t raw_len,
16558 }
16559 fprintf(outfile, "\n};\n\n");
16560
16561 - fprintf(outfile, "static struct page *pages[%lu];\n\n",
16562 + fprintf(outfile, "static struct page *pages[%lu] __read_only;\n\n",
16563 mapping_size / 4096);
16564
16565 fprintf(outfile, "const struct vdso_image %s = {\n", name);
16566 diff --git a/arch/x86/entry/vdso/vma.c b/arch/x86/entry/vdso/vma.c
16567 index 64df471..8346804 100644
16568 --- a/arch/x86/entry/vdso/vma.c
16569 +++ b/arch/x86/entry/vdso/vma.c
16570 @@ -19,10 +19,7 @@
16571 #include <asm/page.h>
16572 #include <asm/hpet.h>
16573 #include <asm/desc.h>
16574 -
16575 -#if defined(CONFIG_X86_64)
16576 -unsigned int __read_mostly vdso64_enabled = 1;
16577 -#endif
16578 +#include <asm/mman.h>
16579
16580 void __init init_vdso_image(const struct vdso_image *image)
16581 {
16582 @@ -101,6 +98,11 @@ static int map_vdso(const struct vdso_image *image, bool calculate_addr)
16583 .pages = no_pages,
16584 };
16585
16586 +#ifdef CONFIG_PAX_RANDMMAP
16587 + if (mm->pax_flags & MF_PAX_RANDMMAP)
16588 + calculate_addr = false;
16589 +#endif
16590 +
16591 if (calculate_addr) {
16592 addr = vdso_addr(current->mm->start_stack,
16593 image->size - image->sym_vvar_start);
16594 @@ -111,14 +113,14 @@ static int map_vdso(const struct vdso_image *image, bool calculate_addr)
16595 down_write(&mm->mmap_sem);
16596
16597 addr = get_unmapped_area(NULL, addr,
16598 - image->size - image->sym_vvar_start, 0, 0);
16599 + image->size - image->sym_vvar_start, 0, MAP_EXECUTABLE);
16600 if (IS_ERR_VALUE(addr)) {
16601 ret = addr;
16602 goto up_fail;
16603 }
16604
16605 text_start = addr - image->sym_vvar_start;
16606 - current->mm->context.vdso = (void __user *)text_start;
16607 + mm->context.vdso = text_start;
16608
16609 /*
16610 * MAYWRITE to allow gdb to COW and set breakpoints
16611 @@ -163,15 +165,12 @@ static int map_vdso(const struct vdso_image *image, bool calculate_addr)
16612 hpet_address >> PAGE_SHIFT,
16613 PAGE_SIZE,
16614 pgprot_noncached(PAGE_READONLY));
16615 -
16616 - if (ret)
16617 - goto up_fail;
16618 }
16619 #endif
16620
16621 up_fail:
16622 if (ret)
16623 - current->mm->context.vdso = NULL;
16624 + current->mm->context.vdso = 0;
16625
16626 up_write(&mm->mmap_sem);
16627 return ret;
16628 @@ -190,9 +189,6 @@ static int load_vdso32(void)
16629 #ifdef CONFIG_X86_64
16630 int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
16631 {
16632 - if (!vdso64_enabled)
16633 - return 0;
16634 -
16635 return map_vdso(&vdso_image_64, true);
16636 }
16637
16638 @@ -201,12 +197,8 @@ int compat_arch_setup_additional_pages(struct linux_binprm *bprm,
16639 int uses_interp)
16640 {
16641 #ifdef CONFIG_X86_X32_ABI
16642 - if (test_thread_flag(TIF_X32)) {
16643 - if (!vdso64_enabled)
16644 - return 0;
16645 -
16646 + if (test_thread_flag(TIF_X32))
16647 return map_vdso(&vdso_image_x32, true);
16648 - }
16649 #endif
16650 #ifdef CONFIG_IA32_EMULATION
16651 return load_vdso32();
16652 @@ -223,15 +215,6 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
16653 #endif
16654
16655 #ifdef CONFIG_X86_64
16656 -static __init int vdso_setup(char *s)
16657 -{
16658 - vdso64_enabled = simple_strtoul(s, NULL, 0);
16659 - return 0;
16660 -}
16661 -__setup("vdso=", vdso_setup);
16662 -#endif
16663 -
16664 -#ifdef CONFIG_X86_64
16665 static void vgetcpu_cpu_init(void *arg)
16666 {
16667 int cpu = smp_processor_id();
16668 diff --git a/arch/x86/entry/vsyscall/vsyscall_64.c b/arch/x86/entry/vsyscall/vsyscall_64.c
16669 index 174c2549..489a8e7 100644
16670 --- a/arch/x86/entry/vsyscall/vsyscall_64.c
16671 +++ b/arch/x86/entry/vsyscall/vsyscall_64.c
16672 @@ -38,10 +38,8 @@
16673 #define CREATE_TRACE_POINTS
16674 #include "vsyscall_trace.h"
16675
16676 -static enum { EMULATE, NATIVE, NONE } vsyscall_mode =
16677 -#if defined(CONFIG_LEGACY_VSYSCALL_NATIVE)
16678 - NATIVE;
16679 -#elif defined(CONFIG_LEGACY_VSYSCALL_NONE)
16680 +static enum { EMULATE, NONE } vsyscall_mode =
16681 +#if defined(CONFIG_LEGACY_VSYSCALL_NONE)
16682 NONE;
16683 #else
16684 EMULATE;
16685 @@ -52,8 +50,6 @@ static int __init vsyscall_setup(char *str)
16686 if (str) {
16687 if (!strcmp("emulate", str))
16688 vsyscall_mode = EMULATE;
16689 - else if (!strcmp("native", str))
16690 - vsyscall_mode = NATIVE;
16691 else if (!strcmp("none", str))
16692 vsyscall_mode = NONE;
16693 else
16694 @@ -271,8 +267,7 @@ do_ret:
16695 return true;
16696
16697 sigsegv:
16698 - force_sig(SIGSEGV, current);
16699 - return true;
16700 + do_group_exit(SIGKILL);
16701 }
16702
16703 /*
16704 @@ -290,8 +285,8 @@ static const struct vm_operations_struct gate_vma_ops = {
16705 static struct vm_area_struct gate_vma = {
16706 .vm_start = VSYSCALL_ADDR,
16707 .vm_end = VSYSCALL_ADDR + PAGE_SIZE,
16708 - .vm_page_prot = PAGE_READONLY_EXEC,
16709 - .vm_flags = VM_READ | VM_EXEC,
16710 + .vm_page_prot = PAGE_READONLY,
16711 + .vm_flags = VM_READ,
16712 .vm_ops = &gate_vma_ops,
16713 };
16714
16715 @@ -332,10 +327,7 @@ void __init map_vsyscall(void)
16716 unsigned long physaddr_vsyscall = __pa_symbol(&__vsyscall_page);
16717
16718 if (vsyscall_mode != NONE)
16719 - __set_fixmap(VSYSCALL_PAGE, physaddr_vsyscall,
16720 - vsyscall_mode == NATIVE
16721 - ? PAGE_KERNEL_VSYSCALL
16722 - : PAGE_KERNEL_VVAR);
16723 + __set_fixmap(VSYSCALL_PAGE, physaddr_vsyscall, PAGE_KERNEL_VVAR);
16724
16725 BUILD_BUG_ON((unsigned long)__fix_to_virt(VSYSCALL_PAGE) !=
16726 (unsigned long)VSYSCALL_ADDR);
16727 diff --git a/arch/x86/entry/vsyscall/vsyscall_emu_64.S b/arch/x86/entry/vsyscall/vsyscall_emu_64.S
16728 index c9596a9..805b68d 100644
16729 --- a/arch/x86/entry/vsyscall/vsyscall_emu_64.S
16730 +++ b/arch/x86/entry/vsyscall/vsyscall_emu_64.S
16731 @@ -12,7 +12,7 @@
16732 #include <asm/page_types.h>
16733 #include <asm/unistd_64.h>
16734
16735 -__PAGE_ALIGNED_DATA
16736 +.section ".data..read_only", "a"
16737 .globl __vsyscall_page
16738 .balign PAGE_SIZE, 0xcc
16739 .type __vsyscall_page, @object
16740 diff --git a/arch/x86/ia32/ia32_aout.c b/arch/x86/ia32/ia32_aout.c
16741 index ae6aad1..719d6d9 100644
16742 --- a/arch/x86/ia32/ia32_aout.c
16743 +++ b/arch/x86/ia32/ia32_aout.c
16744 @@ -153,6 +153,8 @@ static int aout_core_dump(struct coredump_params *cprm)
16745 unsigned long dump_start, dump_size;
16746 struct user32 dump;
16747
16748 + memset(&dump, 0, sizeof(dump));
16749 +
16750 fs = get_fs();
16751 set_fs(KERNEL_DS);
16752 has_dumped = 1;
16753 diff --git a/arch/x86/ia32/ia32_signal.c b/arch/x86/ia32/ia32_signal.c
16754 index 0552884..4e736e4 100644
16755 --- a/arch/x86/ia32/ia32_signal.c
16756 +++ b/arch/x86/ia32/ia32_signal.c
16757 @@ -123,7 +123,7 @@ asmlinkage long sys32_sigreturn(void)
16758 if (__get_user(set.sig[0], &frame->sc.oldmask)
16759 || (_COMPAT_NSIG_WORDS > 1
16760 && __copy_from_user((((char *) &set.sig) + 4),
16761 - &frame->extramask,
16762 + frame->extramask,
16763 sizeof(frame->extramask))))
16764 goto badframe;
16765
16766 @@ -243,7 +243,7 @@ static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs,
16767 sp -= frame_size;
16768 /* Align the stack pointer according to the i386 ABI,
16769 * i.e. so that on function entry ((sp + 4) & 15) == 0. */
16770 - sp = ((sp + 4) & -16ul) - 4;
16771 + sp = ((sp - 12) & -16ul) - 4;
16772 return (void __user *) sp;
16773 }
16774
16775 @@ -288,10 +288,10 @@ int ia32_setup_frame(int sig, struct ksignal *ksig,
16776 } else {
16777 /* Return stub is in 32bit vsyscall page */
16778 if (current->mm->context.vdso)
16779 - restorer = current->mm->context.vdso +
16780 - vdso_image_32.sym___kernel_sigreturn;
16781 + restorer = (void __force_user *)(current->mm->context.vdso +
16782 + vdso_image_32.sym___kernel_sigreturn);
16783 else
16784 - restorer = &frame->retcode;
16785 + restorer = frame->retcode;
16786 }
16787
16788 put_user_try {
16789 @@ -301,7 +301,7 @@ int ia32_setup_frame(int sig, struct ksignal *ksig,
16790 * These are actually not used anymore, but left because some
16791 * gdb versions depend on them as a marker.
16792 */
16793 - put_user_ex(*((u64 *)&code), (u64 __user *)frame->retcode);
16794 + put_user_ex(*((const u64 *)&code), (u64 __user *)frame->retcode);
16795 } put_user_catch(err);
16796
16797 if (err)
16798 @@ -343,7 +343,7 @@ int ia32_setup_rt_frame(int sig, struct ksignal *ksig,
16799 0xb8,
16800 __NR_ia32_rt_sigreturn,
16801 0x80cd,
16802 - 0,
16803 + 0
16804 };
16805
16806 frame = get_sigframe(ksig, regs, sizeof(*frame), &fpstate);
16807 @@ -366,16 +366,19 @@ int ia32_setup_rt_frame(int sig, struct ksignal *ksig,
16808
16809 if (ksig->ka.sa.sa_flags & SA_RESTORER)
16810 restorer = ksig->ka.sa.sa_restorer;
16811 + else if (current->mm->context.vdso)
16812 + /* Return stub is in 32bit vsyscall page */
16813 + restorer = (void __force_user *)(current->mm->context.vdso +
16814 + vdso_image_32.sym___kernel_rt_sigreturn);
16815 else
16816 - restorer = current->mm->context.vdso +
16817 - vdso_image_32.sym___kernel_rt_sigreturn;
16818 + restorer = frame->retcode;
16819 put_user_ex(ptr_to_compat(restorer), &frame->pretcode);
16820
16821 /*
16822 * Not actually used anymore, but left because some gdb
16823 * versions need it.
16824 */
16825 - put_user_ex(*((u64 *)&code), (u64 __user *)frame->retcode);
16826 + put_user_ex(*((const u64 *)&code), (u64 __user *)frame->retcode);
16827 } put_user_catch(err);
16828
16829 err |= copy_siginfo_to_user32(&frame->info, &ksig->info);
16830 diff --git a/arch/x86/ia32/sys_ia32.c b/arch/x86/ia32/sys_ia32.c
16831 index 719cd70..72af944 100644
16832 --- a/arch/x86/ia32/sys_ia32.c
16833 +++ b/arch/x86/ia32/sys_ia32.c
16834 @@ -49,18 +49,26 @@
16835
16836 #define AA(__x) ((unsigned long)(__x))
16837
16838 +static inline loff_t compose_loff(unsigned int high, unsigned int low)
16839 +{
16840 + loff_t retval = low;
16841 +
16842 + BUILD_BUG_ON(sizeof retval != sizeof low + sizeof high);
16843 + __builtin_memcpy((unsigned char *)&retval + sizeof low, &high, sizeof high);
16844 + return retval;
16845 +}
16846
16847 asmlinkage long sys32_truncate64(const char __user *filename,
16848 - unsigned long offset_low,
16849 - unsigned long offset_high)
16850 + unsigned int offset_low,
16851 + unsigned int offset_high)
16852 {
16853 - return sys_truncate(filename, ((loff_t) offset_high << 32) | offset_low);
16854 + return sys_truncate(filename, compose_loff(offset_high, offset_low));
16855 }
16856
16857 -asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long offset_low,
16858 - unsigned long offset_high)
16859 +asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned int offset_low,
16860 + unsigned int offset_high)
16861 {
16862 - return sys_ftruncate(fd, ((loff_t) offset_high << 32) | offset_low);
16863 + return sys_ftruncate(fd, ((unsigned long) offset_high << 32) | offset_low);
16864 }
16865
16866 /*
16867 @@ -69,8 +77,8 @@ asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long offset_low,
16868 */
16869 static int cp_stat64(struct stat64 __user *ubuf, struct kstat *stat)
16870 {
16871 - typeof(ubuf->st_uid) uid = 0;
16872 - typeof(ubuf->st_gid) gid = 0;
16873 + typeof(((struct stat64 *)0)->st_uid) uid = 0;
16874 + typeof(((struct stat64 *)0)->st_gid) gid = 0;
16875 SET_UID(uid, from_kuid_munged(current_user_ns(), stat->uid));
16876 SET_GID(gid, from_kgid_munged(current_user_ns(), stat->gid));
16877 if (!access_ok(VERIFY_WRITE, ubuf, sizeof(struct stat64)) ||
16878 @@ -196,29 +204,29 @@ long sys32_fadvise64_64(int fd, __u32 offset_low, __u32 offset_high,
16879 __u32 len_low, __u32 len_high, int advice)
16880 {
16881 return sys_fadvise64_64(fd,
16882 - (((u64)offset_high)<<32) | offset_low,
16883 - (((u64)len_high)<<32) | len_low,
16884 + compose_loff(offset_high, offset_low),
16885 + compose_loff(len_high, len_low),
16886 advice);
16887 }
16888
16889 asmlinkage ssize_t sys32_readahead(int fd, unsigned off_lo, unsigned off_hi,
16890 size_t count)
16891 {
16892 - return sys_readahead(fd, ((u64)off_hi << 32) | off_lo, count);
16893 + return sys_readahead(fd, compose_loff(off_hi, off_lo), count);
16894 }
16895
16896 asmlinkage long sys32_sync_file_range(int fd, unsigned off_low, unsigned off_hi,
16897 unsigned n_low, unsigned n_hi, int flags)
16898 {
16899 return sys_sync_file_range(fd,
16900 - ((u64)off_hi << 32) | off_low,
16901 - ((u64)n_hi << 32) | n_low, flags);
16902 + compose_loff(off_hi, off_low),
16903 + compose_loff(n_hi, n_low), flags);
16904 }
16905
16906 asmlinkage long sys32_fadvise64(int fd, unsigned offset_lo, unsigned offset_hi,
16907 - size_t len, int advice)
16908 + int len, int advice)
16909 {
16910 - return sys_fadvise64_64(fd, ((u64)offset_hi << 32) | offset_lo,
16911 + return sys_fadvise64_64(fd, compose_loff(offset_hi, offset_lo),
16912 len, advice);
16913 }
16914
16915 @@ -226,6 +234,6 @@ asmlinkage long sys32_fallocate(int fd, int mode, unsigned offset_lo,
16916 unsigned offset_hi, unsigned len_lo,
16917 unsigned len_hi)
16918 {
16919 - return sys_fallocate(fd, mode, ((u64)offset_hi << 32) | offset_lo,
16920 - ((u64)len_hi << 32) | len_lo);
16921 + return sys_fallocate(fd, mode, compose_loff(offset_hi, offset_lo),
16922 + compose_loff(len_hi, len_lo));
16923 }
16924 diff --git a/arch/x86/include/asm/alternative-asm.h b/arch/x86/include/asm/alternative-asm.h
16925 index e7636ba..e1fb78a 100644
16926 --- a/arch/x86/include/asm/alternative-asm.h
16927 +++ b/arch/x86/include/asm/alternative-asm.h
16928 @@ -18,6 +18,45 @@
16929 .endm
16930 #endif
16931
16932 +#ifdef KERNEXEC_PLUGIN
16933 + .macro pax_force_retaddr_bts rip=0
16934 + btsq $63,\rip(%rsp)
16935 + .endm
16936 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_BTS
16937 + .macro pax_force_retaddr rip=0, reload=0
16938 + btsq $63,\rip(%rsp)
16939 + .endm
16940 + .macro pax_force_fptr ptr
16941 + btsq $63,\ptr
16942 + .endm
16943 + .macro pax_set_fptr_mask
16944 + .endm
16945 +#endif
16946 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
16947 + .macro pax_force_retaddr rip=0, reload=0
16948 + .if \reload
16949 + pax_set_fptr_mask
16950 + .endif
16951 + orq %r12,\rip(%rsp)
16952 + .endm
16953 + .macro pax_force_fptr ptr
16954 + orq %r12,\ptr
16955 + .endm
16956 + .macro pax_set_fptr_mask
16957 + movabs $0x8000000000000000,%r12
16958 + .endm
16959 +#endif
16960 +#else
16961 + .macro pax_force_retaddr rip=0, reload=0
16962 + .endm
16963 + .macro pax_force_fptr ptr
16964 + .endm
16965 + .macro pax_force_retaddr_bts rip=0
16966 + .endm
16967 + .macro pax_set_fptr_mask
16968 + .endm
16969 +#endif
16970 +
16971 /*
16972 * Issue one struct alt_instr descriptor entry (need to put it into
16973 * the section .altinstructions, see below). This entry contains
16974 @@ -50,7 +89,7 @@
16975 altinstruction_entry 140b,143f,\feature,142b-140b,144f-143f,142b-141b
16976 .popsection
16977
16978 - .pushsection .altinstr_replacement,"ax"
16979 + .pushsection .altinstr_replacement,"a"
16980 143:
16981 \newinstr
16982 144:
16983 @@ -86,7 +125,7 @@
16984 altinstruction_entry 140b,144f,\feature2,142b-140b,145f-144f,142b-141b
16985 .popsection
16986
16987 - .pushsection .altinstr_replacement,"ax"
16988 + .pushsection .altinstr_replacement,"a"
16989 143:
16990 \newinstr1
16991 144:
16992 diff --git a/arch/x86/include/asm/alternative.h b/arch/x86/include/asm/alternative.h
16993 index 7bfc85b..65d1ec4 100644
16994 --- a/arch/x86/include/asm/alternative.h
16995 +++ b/arch/x86/include/asm/alternative.h
16996 @@ -136,7 +136,7 @@ static inline int alternatives_text_reserved(void *start, void *end)
16997 ".pushsection .altinstructions,\"a\"\n" \
16998 ALTINSTR_ENTRY(feature, 1) \
16999 ".popsection\n" \
17000 - ".pushsection .altinstr_replacement, \"ax\"\n" \
17001 + ".pushsection .altinstr_replacement, \"a\"\n" \
17002 ALTINSTR_REPLACEMENT(newinstr, feature, 1) \
17003 ".popsection"
17004
17005 @@ -146,7 +146,7 @@ static inline int alternatives_text_reserved(void *start, void *end)
17006 ALTINSTR_ENTRY(feature1, 1) \
17007 ALTINSTR_ENTRY(feature2, 2) \
17008 ".popsection\n" \
17009 - ".pushsection .altinstr_replacement, \"ax\"\n" \
17010 + ".pushsection .altinstr_replacement, \"a\"\n" \
17011 ALTINSTR_REPLACEMENT(newinstr1, feature1, 1) \
17012 ALTINSTR_REPLACEMENT(newinstr2, feature2, 2) \
17013 ".popsection"
17014 diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
17015 index a30316b..db419a1 100644
17016 --- a/arch/x86/include/asm/apic.h
17017 +++ b/arch/x86/include/asm/apic.h
17018 @@ -45,7 +45,7 @@ static inline void generic_apic_probe(void)
17019
17020 #ifdef CONFIG_X86_LOCAL_APIC
17021
17022 -extern unsigned int apic_verbosity;
17023 +extern int apic_verbosity;
17024 extern int local_apic_timer_c2_ok;
17025
17026 extern int disable_apic;
17027 diff --git a/arch/x86/include/asm/apm.h b/arch/x86/include/asm/apm.h
17028 index 20370c6..a2eb9b0 100644
17029 --- a/arch/x86/include/asm/apm.h
17030 +++ b/arch/x86/include/asm/apm.h
17031 @@ -34,7 +34,7 @@ static inline void apm_bios_call_asm(u32 func, u32 ebx_in, u32 ecx_in,
17032 __asm__ __volatile__(APM_DO_ZERO_SEGS
17033 "pushl %%edi\n\t"
17034 "pushl %%ebp\n\t"
17035 - "lcall *%%cs:apm_bios_entry\n\t"
17036 + "lcall *%%ss:apm_bios_entry\n\t"
17037 "setc %%al\n\t"
17038 "popl %%ebp\n\t"
17039 "popl %%edi\n\t"
17040 @@ -58,7 +58,7 @@ static inline u8 apm_bios_call_simple_asm(u32 func, u32 ebx_in,
17041 __asm__ __volatile__(APM_DO_ZERO_SEGS
17042 "pushl %%edi\n\t"
17043 "pushl %%ebp\n\t"
17044 - "lcall *%%cs:apm_bios_entry\n\t"
17045 + "lcall *%%ss:apm_bios_entry\n\t"
17046 "setc %%bl\n\t"
17047 "popl %%ebp\n\t"
17048 "popl %%edi\n\t"
17049 diff --git a/arch/x86/include/asm/atomic.h b/arch/x86/include/asm/atomic.h
17050 index ae5fb83..f6a093d 100644
17051 --- a/arch/x86/include/asm/atomic.h
17052 +++ b/arch/x86/include/asm/atomic.h
17053 @@ -28,6 +28,17 @@ static __always_inline int atomic_read(const atomic_t *v)
17054 }
17055
17056 /**
17057 + * atomic_read_unchecked - read atomic variable
17058 + * @v: pointer of type atomic_unchecked_t
17059 + *
17060 + * Atomically reads the value of @v.
17061 + */
17062 +static __always_inline int __intentional_overflow(-1) atomic_read_unchecked(const atomic_unchecked_t *v)
17063 +{
17064 + return ACCESS_ONCE((v)->counter);
17065 +}
17066 +
17067 +/**
17068 * atomic_set - set atomic variable
17069 * @v: pointer of type atomic_t
17070 * @i: required value
17071 @@ -40,6 +51,18 @@ static __always_inline void atomic_set(atomic_t *v, int i)
17072 }
17073
17074 /**
17075 + * atomic_set_unchecked - set atomic variable
17076 + * @v: pointer of type atomic_unchecked_t
17077 + * @i: required value
17078 + *
17079 + * Atomically sets the value of @v to @i.
17080 + */
17081 +static __always_inline void atomic_set_unchecked(atomic_unchecked_t *v, int i)
17082 +{
17083 + v->counter = i;
17084 +}
17085 +
17086 +/**
17087 * atomic_add - add integer to atomic variable
17088 * @i: integer value to add
17089 * @v: pointer of type atomic_t
17090 @@ -48,7 +71,29 @@ static __always_inline void atomic_set(atomic_t *v, int i)
17091 */
17092 static __always_inline void atomic_add(int i, atomic_t *v)
17093 {
17094 - asm volatile(LOCK_PREFIX "addl %1,%0"
17095 + asm volatile(LOCK_PREFIX "addl %1,%0\n"
17096 +
17097 +#ifdef CONFIG_PAX_REFCOUNT
17098 + "jno 0f\n"
17099 + LOCK_PREFIX "subl %1,%0\n"
17100 + "int $4\n0:\n"
17101 + _ASM_EXTABLE(0b, 0b)
17102 +#endif
17103 +
17104 + : "+m" (v->counter)
17105 + : "ir" (i));
17106 +}
17107 +
17108 +/**
17109 + * atomic_add_unchecked - add integer to atomic variable
17110 + * @i: integer value to add
17111 + * @v: pointer of type atomic_unchecked_t
17112 + *
17113 + * Atomically adds @i to @v.
17114 + */
17115 +static __always_inline void atomic_add_unchecked(int i, atomic_unchecked_t *v)
17116 +{
17117 + asm volatile(LOCK_PREFIX "addl %1,%0\n"
17118 : "+m" (v->counter)
17119 : "ir" (i));
17120 }
17121 @@ -62,7 +107,29 @@ static __always_inline void atomic_add(int i, atomic_t *v)
17122 */
17123 static __always_inline void atomic_sub(int i, atomic_t *v)
17124 {
17125 - asm volatile(LOCK_PREFIX "subl %1,%0"
17126 + asm volatile(LOCK_PREFIX "subl %1,%0\n"
17127 +
17128 +#ifdef CONFIG_PAX_REFCOUNT
17129 + "jno 0f\n"
17130 + LOCK_PREFIX "addl %1,%0\n"
17131 + "int $4\n0:\n"
17132 + _ASM_EXTABLE(0b, 0b)
17133 +#endif
17134 +
17135 + : "+m" (v->counter)
17136 + : "ir" (i));
17137 +}
17138 +
17139 +/**
17140 + * atomic_sub_unchecked - subtract integer from atomic variable
17141 + * @i: integer value to subtract
17142 + * @v: pointer of type atomic_unchecked_t
17143 + *
17144 + * Atomically subtracts @i from @v.
17145 + */
17146 +static __always_inline void atomic_sub_unchecked(int i, atomic_unchecked_t *v)
17147 +{
17148 + asm volatile(LOCK_PREFIX "subl %1,%0\n"
17149 : "+m" (v->counter)
17150 : "ir" (i));
17151 }
17152 @@ -78,7 +145,7 @@ static __always_inline void atomic_sub(int i, atomic_t *v)
17153 */
17154 static __always_inline int atomic_sub_and_test(int i, atomic_t *v)
17155 {
17156 - GEN_BINARY_RMWcc(LOCK_PREFIX "subl", v->counter, "er", i, "%0", "e");
17157 + GEN_BINARY_RMWcc(LOCK_PREFIX "subl", LOCK_PREFIX "addl", v->counter, "er", i, "%0", "e");
17158 }
17159
17160 /**
17161 @@ -89,7 +156,27 @@ static __always_inline int atomic_sub_and_test(int i, atomic_t *v)
17162 */
17163 static __always_inline void atomic_inc(atomic_t *v)
17164 {
17165 - asm volatile(LOCK_PREFIX "incl %0"
17166 + asm volatile(LOCK_PREFIX "incl %0\n"
17167 +
17168 +#ifdef CONFIG_PAX_REFCOUNT
17169 + "jno 0f\n"
17170 + LOCK_PREFIX "decl %0\n"
17171 + "int $4\n0:\n"
17172 + _ASM_EXTABLE(0b, 0b)
17173 +#endif
17174 +
17175 + : "+m" (v->counter));
17176 +}
17177 +
17178 +/**
17179 + * atomic_inc_unchecked - increment atomic variable
17180 + * @v: pointer of type atomic_unchecked_t
17181 + *
17182 + * Atomically increments @v by 1.
17183 + */
17184 +static __always_inline void atomic_inc_unchecked(atomic_unchecked_t *v)
17185 +{
17186 + asm volatile(LOCK_PREFIX "incl %0\n"
17187 : "+m" (v->counter));
17188 }
17189
17190 @@ -101,7 +188,27 @@ static __always_inline void atomic_inc(atomic_t *v)
17191 */
17192 static __always_inline void atomic_dec(atomic_t *v)
17193 {
17194 - asm volatile(LOCK_PREFIX "decl %0"
17195 + asm volatile(LOCK_PREFIX "decl %0\n"
17196 +
17197 +#ifdef CONFIG_PAX_REFCOUNT
17198 + "jno 0f\n"
17199 + LOCK_PREFIX "incl %0\n"
17200 + "int $4\n0:\n"
17201 + _ASM_EXTABLE(0b, 0b)
17202 +#endif
17203 +
17204 + : "+m" (v->counter));
17205 +}
17206 +
17207 +/**
17208 + * atomic_dec_unchecked - decrement atomic variable
17209 + * @v: pointer of type atomic_unchecked_t
17210 + *
17211 + * Atomically decrements @v by 1.
17212 + */
17213 +static __always_inline void atomic_dec_unchecked(atomic_unchecked_t *v)
17214 +{
17215 + asm volatile(LOCK_PREFIX "decl %0\n"
17216 : "+m" (v->counter));
17217 }
17218
17219 @@ -115,7 +222,7 @@ static __always_inline void atomic_dec(atomic_t *v)
17220 */
17221 static __always_inline int atomic_dec_and_test(atomic_t *v)
17222 {
17223 - GEN_UNARY_RMWcc(LOCK_PREFIX "decl", v->counter, "%0", "e");
17224 + GEN_UNARY_RMWcc(LOCK_PREFIX "decl", LOCK_PREFIX "incl", v->counter, "%0", "e");
17225 }
17226
17227 /**
17228 @@ -128,7 +235,20 @@ static __always_inline int atomic_dec_and_test(atomic_t *v)
17229 */
17230 static __always_inline int atomic_inc_and_test(atomic_t *v)
17231 {
17232 - GEN_UNARY_RMWcc(LOCK_PREFIX "incl", v->counter, "%0", "e");
17233 + GEN_UNARY_RMWcc(LOCK_PREFIX "incl", LOCK_PREFIX "decl", v->counter, "%0", "e");
17234 +}
17235 +
17236 +/**
17237 + * atomic_inc_and_test_unchecked - increment and test
17238 + * @v: pointer of type atomic_unchecked_t
17239 + *
17240 + * Atomically increments @v by 1
17241 + * and returns true if the result is zero, or false for all
17242 + * other cases.
17243 + */
17244 +static __always_inline int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
17245 +{
17246 + GEN_UNARY_RMWcc_unchecked(LOCK_PREFIX "incl", v->counter, "%0", "e");
17247 }
17248
17249 /**
17250 @@ -142,7 +262,7 @@ static __always_inline int atomic_inc_and_test(atomic_t *v)
17251 */
17252 static __always_inline int atomic_add_negative(int i, atomic_t *v)
17253 {
17254 - GEN_BINARY_RMWcc(LOCK_PREFIX "addl", v->counter, "er", i, "%0", "s");
17255 + GEN_BINARY_RMWcc(LOCK_PREFIX "addl", LOCK_PREFIX "subl", v->counter, "er", i, "%0", "s");
17256 }
17257
17258 /**
17259 @@ -152,7 +272,19 @@ static __always_inline int atomic_add_negative(int i, atomic_t *v)
17260 *
17261 * Atomically adds @i to @v and returns @i + @v
17262 */
17263 -static __always_inline int atomic_add_return(int i, atomic_t *v)
17264 +static __always_inline int __intentional_overflow(-1) atomic_add_return(int i, atomic_t *v)
17265 +{
17266 + return i + xadd_check_overflow(&v->counter, i);
17267 +}
17268 +
17269 +/**
17270 + * atomic_add_return_unchecked - add integer and return
17271 + * @i: integer value to add
17272 + * @v: pointer of type atomi_uncheckedc_t
17273 + *
17274 + * Atomically adds @i to @v and returns @i + @v
17275 + */
17276 +static __always_inline int atomic_add_return_unchecked(int i, atomic_unchecked_t *v)
17277 {
17278 return i + xadd(&v->counter, i);
17279 }
17280 @@ -164,15 +296,24 @@ static __always_inline int atomic_add_return(int i, atomic_t *v)
17281 *
17282 * Atomically subtracts @i from @v and returns @v - @i
17283 */
17284 -static __always_inline int atomic_sub_return(int i, atomic_t *v)
17285 +static __always_inline int __intentional_overflow(-1) atomic_sub_return(int i, atomic_t *v)
17286 {
17287 return atomic_add_return(-i, v);
17288 }
17289
17290 #define atomic_inc_return(v) (atomic_add_return(1, v))
17291 +static __always_inline int atomic_inc_return_unchecked(atomic_unchecked_t *v)
17292 +{
17293 + return atomic_add_return_unchecked(1, v);
17294 +}
17295 #define atomic_dec_return(v) (atomic_sub_return(1, v))
17296
17297 -static __always_inline int atomic_cmpxchg(atomic_t *v, int old, int new)
17298 +static __always_inline int __intentional_overflow(-1) atomic_cmpxchg(atomic_t *v, int old, int new)
17299 +{
17300 + return cmpxchg(&v->counter, old, new);
17301 +}
17302 +
17303 +static __always_inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *v, int old, int new)
17304 {
17305 return cmpxchg(&v->counter, old, new);
17306 }
17307 @@ -182,6 +323,11 @@ static inline int atomic_xchg(atomic_t *v, int new)
17308 return xchg(&v->counter, new);
17309 }
17310
17311 +static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
17312 +{
17313 + return xchg(&v->counter, new);
17314 +}
17315 +
17316 #define ATOMIC_OP(op) \
17317 static inline void atomic_##op(int i, atomic_t *v) \
17318 { \
17319 @@ -208,12 +354,25 @@ ATOMIC_OP(xor)
17320 */
17321 static __always_inline int __atomic_add_unless(atomic_t *v, int a, int u)
17322 {
17323 - int c, old;
17324 + int c, old, new;
17325 c = atomic_read(v);
17326 for (;;) {
17327 - if (unlikely(c == (u)))
17328 + if (unlikely(c == u))
17329 break;
17330 - old = atomic_cmpxchg((v), c, c + (a));
17331 +
17332 + asm volatile("addl %2,%0\n"
17333 +
17334 +#ifdef CONFIG_PAX_REFCOUNT
17335 + "jno 0f\n"
17336 + "subl %2,%0\n"
17337 + "int $4\n0:\n"
17338 + _ASM_EXTABLE(0b, 0b)
17339 +#endif
17340 +
17341 + : "=r" (new)
17342 + : "0" (c), "ir" (a));
17343 +
17344 + old = atomic_cmpxchg(v, c, new);
17345 if (likely(old == c))
17346 break;
17347 c = old;
17348 @@ -222,6 +381,49 @@ static __always_inline int __atomic_add_unless(atomic_t *v, int a, int u)
17349 }
17350
17351 /**
17352 + * atomic_inc_not_zero_hint - increment if not null
17353 + * @v: pointer of type atomic_t
17354 + * @hint: probable value of the atomic before the increment
17355 + *
17356 + * This version of atomic_inc_not_zero() gives a hint of probable
17357 + * value of the atomic. This helps processor to not read the memory
17358 + * before doing the atomic read/modify/write cycle, lowering
17359 + * number of bus transactions on some arches.
17360 + *
17361 + * Returns: 0 if increment was not done, 1 otherwise.
17362 + */
17363 +#define atomic_inc_not_zero_hint atomic_inc_not_zero_hint
17364 +static inline int atomic_inc_not_zero_hint(atomic_t *v, int hint)
17365 +{
17366 + int val, c = hint, new;
17367 +
17368 + /* sanity test, should be removed by compiler if hint is a constant */
17369 + if (!hint)
17370 + return __atomic_add_unless(v, 1, 0);
17371 +
17372 + do {
17373 + asm volatile("incl %0\n"
17374 +
17375 +#ifdef CONFIG_PAX_REFCOUNT
17376 + "jno 0f\n"
17377 + "decl %0\n"
17378 + "int $4\n0:\n"
17379 + _ASM_EXTABLE(0b, 0b)
17380 +#endif
17381 +
17382 + : "=r" (new)
17383 + : "0" (c));
17384 +
17385 + val = atomic_cmpxchg(v, c, new);
17386 + if (val == c)
17387 + return 1;
17388 + c = val;
17389 + } while (c);
17390 +
17391 + return 0;
17392 +}
17393 +
17394 +/**
17395 * atomic_inc_short - increment of a short integer
17396 * @v: pointer to type int
17397 *
17398 diff --git a/arch/x86/include/asm/atomic64_32.h b/arch/x86/include/asm/atomic64_32.h
17399 index a11c30b..66fd8a0 100644
17400 --- a/arch/x86/include/asm/atomic64_32.h
17401 +++ b/arch/x86/include/asm/atomic64_32.h
17402 @@ -12,6 +12,14 @@ typedef struct {
17403 u64 __aligned(8) counter;
17404 } atomic64_t;
17405
17406 +#ifdef CONFIG_PAX_REFCOUNT
17407 +typedef struct {
17408 + u64 __aligned(8) counter;
17409 +} atomic64_unchecked_t;
17410 +#else
17411 +typedef atomic64_t atomic64_unchecked_t;
17412 +#endif
17413 +
17414 #define ATOMIC64_INIT(val) { (val) }
17415
17416 #define __ATOMIC64_DECL(sym) void atomic64_##sym(atomic64_t *, ...)
17417 @@ -37,21 +45,31 @@ typedef struct {
17418 ATOMIC64_DECL_ONE(sym##_386)
17419
17420 ATOMIC64_DECL_ONE(add_386);
17421 +ATOMIC64_DECL_ONE(add_unchecked_386);
17422 ATOMIC64_DECL_ONE(sub_386);
17423 +ATOMIC64_DECL_ONE(sub_unchecked_386);
17424 ATOMIC64_DECL_ONE(inc_386);
17425 +ATOMIC64_DECL_ONE(inc_unchecked_386);
17426 ATOMIC64_DECL_ONE(dec_386);
17427 +ATOMIC64_DECL_ONE(dec_unchecked_386);
17428 #endif
17429
17430 #define alternative_atomic64(f, out, in...) \
17431 __alternative_atomic64(f, f, ASM_OUTPUT2(out), ## in)
17432
17433 ATOMIC64_DECL(read);
17434 +ATOMIC64_DECL(read_unchecked);
17435 ATOMIC64_DECL(set);
17436 +ATOMIC64_DECL(set_unchecked);
17437 ATOMIC64_DECL(xchg);
17438 ATOMIC64_DECL(add_return);
17439 +ATOMIC64_DECL(add_return_unchecked);
17440 ATOMIC64_DECL(sub_return);
17441 +ATOMIC64_DECL(sub_return_unchecked);
17442 ATOMIC64_DECL(inc_return);
17443 +ATOMIC64_DECL(inc_return_unchecked);
17444 ATOMIC64_DECL(dec_return);
17445 +ATOMIC64_DECL(dec_return_unchecked);
17446 ATOMIC64_DECL(dec_if_positive);
17447 ATOMIC64_DECL(inc_not_zero);
17448 ATOMIC64_DECL(add_unless);
17449 @@ -77,6 +95,21 @@ static inline long long atomic64_cmpxchg(atomic64_t *v, long long o, long long n
17450 }
17451
17452 /**
17453 + * atomic64_cmpxchg_unchecked - cmpxchg atomic64 variable
17454 + * @p: pointer to type atomic64_unchecked_t
17455 + * @o: expected value
17456 + * @n: new value
17457 + *
17458 + * Atomically sets @v to @n if it was equal to @o and returns
17459 + * the old value.
17460 + */
17461 +
17462 +static inline long long atomic64_cmpxchg_unchecked(atomic64_unchecked_t *v, long long o, long long n)
17463 +{
17464 + return cmpxchg64(&v->counter, o, n);
17465 +}
17466 +
17467 +/**
17468 * atomic64_xchg - xchg atomic64 variable
17469 * @v: pointer to type atomic64_t
17470 * @n: value to assign
17471 @@ -112,6 +145,22 @@ static inline void atomic64_set(atomic64_t *v, long long i)
17472 }
17473
17474 /**
17475 + * atomic64_set_unchecked - set atomic64 variable
17476 + * @v: pointer to type atomic64_unchecked_t
17477 + * @n: value to assign
17478 + *
17479 + * Atomically sets the value of @v to @n.
17480 + */
17481 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long long i)
17482 +{
17483 + unsigned high = (unsigned)(i >> 32);
17484 + unsigned low = (unsigned)i;
17485 + alternative_atomic64(set, /* no output */,
17486 + "S" (v), "b" (low), "c" (high)
17487 + : "eax", "edx", "memory");
17488 +}
17489 +
17490 +/**
17491 * atomic64_read - read atomic64 variable
17492 * @v: pointer to type atomic64_t
17493 *
17494 @@ -125,6 +174,19 @@ static inline long long atomic64_read(const atomic64_t *v)
17495 }
17496
17497 /**
17498 + * atomic64_read_unchecked - read atomic64 variable
17499 + * @v: pointer to type atomic64_unchecked_t
17500 + *
17501 + * Atomically reads the value of @v and returns it.
17502 + */
17503 +static inline long long __intentional_overflow(-1) atomic64_read_unchecked(const atomic64_unchecked_t *v)
17504 +{
17505 + long long r;
17506 + alternative_atomic64(read, "=&A" (r), "c" (v) : "memory");
17507 + return r;
17508 + }
17509 +
17510 +/**
17511 * atomic64_add_return - add and return
17512 * @i: integer value to add
17513 * @v: pointer to type atomic64_t
17514 @@ -139,6 +201,21 @@ static inline long long atomic64_add_return(long long i, atomic64_t *v)
17515 return i;
17516 }
17517
17518 +/**
17519 + * atomic64_add_return_unchecked - add and return
17520 + * @i: integer value to add
17521 + * @v: pointer to type atomic64_unchecked_t
17522 + *
17523 + * Atomically adds @i to @v and returns @i + *@v
17524 + */
17525 +static inline long long atomic64_add_return_unchecked(long long i, atomic64_unchecked_t *v)
17526 +{
17527 + alternative_atomic64(add_return_unchecked,
17528 + ASM_OUTPUT2("+A" (i), "+c" (v)),
17529 + ASM_NO_INPUT_CLOBBER("memory"));
17530 + return i;
17531 +}
17532 +
17533 /*
17534 * Other variants with different arithmetic operators:
17535 */
17536 @@ -158,6 +235,14 @@ static inline long long atomic64_inc_return(atomic64_t *v)
17537 return a;
17538 }
17539
17540 +static inline long long atomic64_inc_return_unchecked(atomic64_unchecked_t *v)
17541 +{
17542 + long long a;
17543 + alternative_atomic64(inc_return_unchecked, "=&A" (a),
17544 + "S" (v) : "memory", "ecx");
17545 + return a;
17546 +}
17547 +
17548 static inline long long atomic64_dec_return(atomic64_t *v)
17549 {
17550 long long a;
17551 @@ -182,6 +267,21 @@ static inline long long atomic64_add(long long i, atomic64_t *v)
17552 }
17553
17554 /**
17555 + * atomic64_add_unchecked - add integer to atomic64 variable
17556 + * @i: integer value to add
17557 + * @v: pointer to type atomic64_unchecked_t
17558 + *
17559 + * Atomically adds @i to @v.
17560 + */
17561 +static inline long long atomic64_add_unchecked(long long i, atomic64_unchecked_t *v)
17562 +{
17563 + __alternative_atomic64(add_unchecked, add_return_unchecked,
17564 + ASM_OUTPUT2("+A" (i), "+c" (v)),
17565 + ASM_NO_INPUT_CLOBBER("memory"));
17566 + return i;
17567 +}
17568 +
17569 +/**
17570 * atomic64_sub - subtract the atomic64 variable
17571 * @i: integer value to subtract
17572 * @v: pointer to type atomic64_t
17573 diff --git a/arch/x86/include/asm/atomic64_64.h b/arch/x86/include/asm/atomic64_64.h
17574 index 0373510..e37ee10 100644
17575 --- a/arch/x86/include/asm/atomic64_64.h
17576 +++ b/arch/x86/include/asm/atomic64_64.h
17577 @@ -22,6 +22,18 @@ static inline long atomic64_read(const atomic64_t *v)
17578 }
17579
17580 /**
17581 + * atomic64_read_unchecked - read atomic64 variable
17582 + * @v: pointer of type atomic64_unchecked_t
17583 + *
17584 + * Atomically reads the value of @v.
17585 + * Doesn't imply a read memory barrier.
17586 + */
17587 +static inline long __intentional_overflow(-1) atomic64_read_unchecked(const atomic64_unchecked_t *v)
17588 +{
17589 + return ACCESS_ONCE((v)->counter);
17590 +}
17591 +
17592 +/**
17593 * atomic64_set - set atomic64 variable
17594 * @v: pointer to type atomic64_t
17595 * @i: required value
17596 @@ -34,6 +46,18 @@ static inline void atomic64_set(atomic64_t *v, long i)
17597 }
17598
17599 /**
17600 + * atomic64_set_unchecked - set atomic64 variable
17601 + * @v: pointer to type atomic64_unchecked_t
17602 + * @i: required value
17603 + *
17604 + * Atomically sets the value of @v to @i.
17605 + */
17606 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long i)
17607 +{
17608 + v->counter = i;
17609 +}
17610 +
17611 +/**
17612 * atomic64_add - add integer to atomic64 variable
17613 * @i: integer value to add
17614 * @v: pointer to type atomic64_t
17615 @@ -42,6 +66,28 @@ static inline void atomic64_set(atomic64_t *v, long i)
17616 */
17617 static __always_inline void atomic64_add(long i, atomic64_t *v)
17618 {
17619 + asm volatile(LOCK_PREFIX "addq %1,%0\n"
17620 +
17621 +#ifdef CONFIG_PAX_REFCOUNT
17622 + "jno 0f\n"
17623 + LOCK_PREFIX "subq %1,%0\n"
17624 + "int $4\n0:\n"
17625 + _ASM_EXTABLE(0b, 0b)
17626 +#endif
17627 +
17628 + : "=m" (v->counter)
17629 + : "er" (i), "m" (v->counter));
17630 +}
17631 +
17632 +/**
17633 + * atomic64_add_unchecked - add integer to atomic64 variable
17634 + * @i: integer value to add
17635 + * @v: pointer to type atomic64_unchecked_t
17636 + *
17637 + * Atomically adds @i to @v.
17638 + */
17639 +static __always_inline void atomic64_add_unchecked(long i, atomic64_unchecked_t *v)
17640 +{
17641 asm volatile(LOCK_PREFIX "addq %1,%0"
17642 : "=m" (v->counter)
17643 : "er" (i), "m" (v->counter));
17644 @@ -56,7 +102,29 @@ static __always_inline void atomic64_add(long i, atomic64_t *v)
17645 */
17646 static inline void atomic64_sub(long i, atomic64_t *v)
17647 {
17648 - asm volatile(LOCK_PREFIX "subq %1,%0"
17649 + asm volatile(LOCK_PREFIX "subq %1,%0\n"
17650 +
17651 +#ifdef CONFIG_PAX_REFCOUNT
17652 + "jno 0f\n"
17653 + LOCK_PREFIX "addq %1,%0\n"
17654 + "int $4\n0:\n"
17655 + _ASM_EXTABLE(0b, 0b)
17656 +#endif
17657 +
17658 + : "=m" (v->counter)
17659 + : "er" (i), "m" (v->counter));
17660 +}
17661 +
17662 +/**
17663 + * atomic64_sub_unchecked - subtract the atomic64 variable
17664 + * @i: integer value to subtract
17665 + * @v: pointer to type atomic64_unchecked_t
17666 + *
17667 + * Atomically subtracts @i from @v.
17668 + */
17669 +static inline void atomic64_sub_unchecked(long i, atomic64_unchecked_t *v)
17670 +{
17671 + asm volatile(LOCK_PREFIX "subq %1,%0\n"
17672 : "=m" (v->counter)
17673 : "er" (i), "m" (v->counter));
17674 }
17675 @@ -72,7 +140,7 @@ static inline void atomic64_sub(long i, atomic64_t *v)
17676 */
17677 static inline int atomic64_sub_and_test(long i, atomic64_t *v)
17678 {
17679 - GEN_BINARY_RMWcc(LOCK_PREFIX "subq", v->counter, "er", i, "%0", "e");
17680 + GEN_BINARY_RMWcc(LOCK_PREFIX "subq", LOCK_PREFIX "addq", v->counter, "er", i, "%0", "e");
17681 }
17682
17683 /**
17684 @@ -83,6 +151,27 @@ static inline int atomic64_sub_and_test(long i, atomic64_t *v)
17685 */
17686 static __always_inline void atomic64_inc(atomic64_t *v)
17687 {
17688 + asm volatile(LOCK_PREFIX "incq %0\n"
17689 +
17690 +#ifdef CONFIG_PAX_REFCOUNT
17691 + "jno 0f\n"
17692 + LOCK_PREFIX "decq %0\n"
17693 + "int $4\n0:\n"
17694 + _ASM_EXTABLE(0b, 0b)
17695 +#endif
17696 +
17697 + : "=m" (v->counter)
17698 + : "m" (v->counter));
17699 +}
17700 +
17701 +/**
17702 + * atomic64_inc_unchecked - increment atomic64 variable
17703 + * @v: pointer to type atomic64_unchecked_t
17704 + *
17705 + * Atomically increments @v by 1.
17706 + */
17707 +static __always_inline void atomic64_inc_unchecked(atomic64_unchecked_t *v)
17708 +{
17709 asm volatile(LOCK_PREFIX "incq %0"
17710 : "=m" (v->counter)
17711 : "m" (v->counter));
17712 @@ -96,7 +185,28 @@ static __always_inline void atomic64_inc(atomic64_t *v)
17713 */
17714 static __always_inline void atomic64_dec(atomic64_t *v)
17715 {
17716 - asm volatile(LOCK_PREFIX "decq %0"
17717 + asm volatile(LOCK_PREFIX "decq %0\n"
17718 +
17719 +#ifdef CONFIG_PAX_REFCOUNT
17720 + "jno 0f\n"
17721 + LOCK_PREFIX "incq %0\n"
17722 + "int $4\n0:\n"
17723 + _ASM_EXTABLE(0b, 0b)
17724 +#endif
17725 +
17726 + : "=m" (v->counter)
17727 + : "m" (v->counter));
17728 +}
17729 +
17730 +/**
17731 + * atomic64_dec_unchecked - decrement atomic64 variable
17732 + * @v: pointer to type atomic64_t
17733 + *
17734 + * Atomically decrements @v by 1.
17735 + */
17736 +static __always_inline void atomic64_dec_unchecked(atomic64_unchecked_t *v)
17737 +{
17738 + asm volatile(LOCK_PREFIX "decq %0\n"
17739 : "=m" (v->counter)
17740 : "m" (v->counter));
17741 }
17742 @@ -111,7 +221,7 @@ static __always_inline void atomic64_dec(atomic64_t *v)
17743 */
17744 static inline int atomic64_dec_and_test(atomic64_t *v)
17745 {
17746 - GEN_UNARY_RMWcc(LOCK_PREFIX "decq", v->counter, "%0", "e");
17747 + GEN_UNARY_RMWcc(LOCK_PREFIX "decq", LOCK_PREFIX "incq", v->counter, "%0", "e");
17748 }
17749
17750 /**
17751 @@ -124,7 +234,7 @@ static inline int atomic64_dec_and_test(atomic64_t *v)
17752 */
17753 static inline int atomic64_inc_and_test(atomic64_t *v)
17754 {
17755 - GEN_UNARY_RMWcc(LOCK_PREFIX "incq", v->counter, "%0", "e");
17756 + GEN_UNARY_RMWcc(LOCK_PREFIX "incq", LOCK_PREFIX "decq", v->counter, "%0", "e");
17757 }
17758
17759 /**
17760 @@ -138,7 +248,7 @@ static inline int atomic64_inc_and_test(atomic64_t *v)
17761 */
17762 static inline int atomic64_add_negative(long i, atomic64_t *v)
17763 {
17764 - GEN_BINARY_RMWcc(LOCK_PREFIX "addq", v->counter, "er", i, "%0", "s");
17765 + GEN_BINARY_RMWcc(LOCK_PREFIX "addq", LOCK_PREFIX "subq", v->counter, "er", i, "%0", "s");
17766 }
17767
17768 /**
17769 @@ -150,6 +260,18 @@ static inline int atomic64_add_negative(long i, atomic64_t *v)
17770 */
17771 static __always_inline long atomic64_add_return(long i, atomic64_t *v)
17772 {
17773 + return i + xadd_check_overflow(&v->counter, i);
17774 +}
17775 +
17776 +/**
17777 + * atomic64_add_return_unchecked - add and return
17778 + * @i: integer value to add
17779 + * @v: pointer to type atomic64_unchecked_t
17780 + *
17781 + * Atomically adds @i to @v and returns @i + @v
17782 + */
17783 +static __always_inline long atomic64_add_return_unchecked(long i, atomic64_unchecked_t *v)
17784 +{
17785 return i + xadd(&v->counter, i);
17786 }
17787
17788 @@ -159,6 +281,10 @@ static inline long atomic64_sub_return(long i, atomic64_t *v)
17789 }
17790
17791 #define atomic64_inc_return(v) (atomic64_add_return(1, (v)))
17792 +static inline long atomic64_inc_return_unchecked(atomic64_unchecked_t *v)
17793 +{
17794 + return atomic64_add_return_unchecked(1, v);
17795 +}
17796 #define atomic64_dec_return(v) (atomic64_sub_return(1, (v)))
17797
17798 static inline long atomic64_cmpxchg(atomic64_t *v, long old, long new)
17799 @@ -166,6 +292,11 @@ static inline long atomic64_cmpxchg(atomic64_t *v, long old, long new)
17800 return cmpxchg(&v->counter, old, new);
17801 }
17802
17803 +static inline long atomic64_cmpxchg_unchecked(atomic64_unchecked_t *v, long old, long new)
17804 +{
17805 + return cmpxchg(&v->counter, old, new);
17806 +}
17807 +
17808 static inline long atomic64_xchg(atomic64_t *v, long new)
17809 {
17810 return xchg(&v->counter, new);
17811 @@ -182,17 +313,30 @@ static inline long atomic64_xchg(atomic64_t *v, long new)
17812 */
17813 static inline int atomic64_add_unless(atomic64_t *v, long a, long u)
17814 {
17815 - long c, old;
17816 + long c, old, new;
17817 c = atomic64_read(v);
17818 for (;;) {
17819 - if (unlikely(c == (u)))
17820 + if (unlikely(c == u))
17821 break;
17822 - old = atomic64_cmpxchg((v), c, c + (a));
17823 +
17824 + asm volatile("add %2,%0\n"
17825 +
17826 +#ifdef CONFIG_PAX_REFCOUNT
17827 + "jno 0f\n"
17828 + "sub %2,%0\n"
17829 + "int $4\n0:\n"
17830 + _ASM_EXTABLE(0b, 0b)
17831 +#endif
17832 +
17833 + : "=r" (new)
17834 + : "0" (c), "ir" (a));
17835 +
17836 + old = atomic64_cmpxchg(v, c, new);
17837 if (likely(old == c))
17838 break;
17839 c = old;
17840 }
17841 - return c != (u);
17842 + return c != u;
17843 }
17844
17845 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
17846 diff --git a/arch/x86/include/asm/bitops.h b/arch/x86/include/asm/bitops.h
17847 index cfe3b95..d01b118 100644
17848 --- a/arch/x86/include/asm/bitops.h
17849 +++ b/arch/x86/include/asm/bitops.h
17850 @@ -50,7 +50,7 @@
17851 * a mask operation on a byte.
17852 */
17853 #define IS_IMMEDIATE(nr) (__builtin_constant_p(nr))
17854 -#define CONST_MASK_ADDR(nr, addr) BITOP_ADDR((void *)(addr) + ((nr)>>3))
17855 +#define CONST_MASK_ADDR(nr, addr) BITOP_ADDR((volatile void *)(addr) + ((nr)>>3))
17856 #define CONST_MASK(nr) (1 << ((nr) & 7))
17857
17858 /**
17859 @@ -203,7 +203,7 @@ static inline void change_bit(long nr, volatile unsigned long *addr)
17860 */
17861 static inline int test_and_set_bit(long nr, volatile unsigned long *addr)
17862 {
17863 - GEN_BINARY_RMWcc(LOCK_PREFIX "bts", *addr, "Ir", nr, "%0", "c");
17864 + GEN_BINARY_RMWcc_unchecked(LOCK_PREFIX "bts", *addr, "Ir", nr, "%0", "c");
17865 }
17866
17867 /**
17868 @@ -249,7 +249,7 @@ static inline int __test_and_set_bit(long nr, volatile unsigned long *addr)
17869 */
17870 static inline int test_and_clear_bit(long nr, volatile unsigned long *addr)
17871 {
17872 - GEN_BINARY_RMWcc(LOCK_PREFIX "btr", *addr, "Ir", nr, "%0", "c");
17873 + GEN_BINARY_RMWcc_unchecked(LOCK_PREFIX "btr", *addr, "Ir", nr, "%0", "c");
17874 }
17875
17876 /**
17877 @@ -302,7 +302,7 @@ static inline int __test_and_change_bit(long nr, volatile unsigned long *addr)
17878 */
17879 static inline int test_and_change_bit(long nr, volatile unsigned long *addr)
17880 {
17881 - GEN_BINARY_RMWcc(LOCK_PREFIX "btc", *addr, "Ir", nr, "%0", "c");
17882 + GEN_BINARY_RMWcc_unchecked(LOCK_PREFIX "btc", *addr, "Ir", nr, "%0", "c");
17883 }
17884
17885 static __always_inline int constant_test_bit(long nr, const volatile unsigned long *addr)
17886 @@ -343,7 +343,7 @@ static int test_bit(int nr, const volatile unsigned long *addr);
17887 *
17888 * Undefined if no bit exists, so code should check against 0 first.
17889 */
17890 -static inline unsigned long __ffs(unsigned long word)
17891 +static inline unsigned long __intentional_overflow(-1) __ffs(unsigned long word)
17892 {
17893 asm("rep; bsf %1,%0"
17894 : "=r" (word)
17895 @@ -357,7 +357,7 @@ static inline unsigned long __ffs(unsigned long word)
17896 *
17897 * Undefined if no zero exists, so code should check against ~0UL first.
17898 */
17899 -static inline unsigned long ffz(unsigned long word)
17900 +static inline unsigned long __intentional_overflow(-1) ffz(unsigned long word)
17901 {
17902 asm("rep; bsf %1,%0"
17903 : "=r" (word)
17904 @@ -371,7 +371,7 @@ static inline unsigned long ffz(unsigned long word)
17905 *
17906 * Undefined if no set bit exists, so code should check against 0 first.
17907 */
17908 -static inline unsigned long __fls(unsigned long word)
17909 +static inline unsigned long __intentional_overflow(-1) __fls(unsigned long word)
17910 {
17911 asm("bsr %1,%0"
17912 : "=r" (word)
17913 @@ -434,7 +434,7 @@ static inline int ffs(int x)
17914 * set bit if value is nonzero. The last (most significant) bit is
17915 * at position 32.
17916 */
17917 -static inline int fls(int x)
17918 +static inline int __intentional_overflow(-1) fls(int x)
17919 {
17920 int r;
17921
17922 @@ -476,7 +476,7 @@ static inline int fls(int x)
17923 * at position 64.
17924 */
17925 #ifdef CONFIG_X86_64
17926 -static __always_inline int fls64(__u64 x)
17927 +static __always_inline __intentional_overflow(-1) int fls64(__u64 x)
17928 {
17929 int bitpos = -1;
17930 /*
17931 diff --git a/arch/x86/include/asm/boot.h b/arch/x86/include/asm/boot.h
17932 index 6b8d6e8..3cbf4f8 100644
17933 --- a/arch/x86/include/asm/boot.h
17934 +++ b/arch/x86/include/asm/boot.h
17935 @@ -6,7 +6,7 @@
17936 #include <uapi/asm/boot.h>
17937
17938 /* Physical address where kernel should be loaded. */
17939 -#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
17940 +#define ____LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
17941 + (CONFIG_PHYSICAL_ALIGN - 1)) \
17942 & ~(CONFIG_PHYSICAL_ALIGN - 1))
17943
17944 diff --git a/arch/x86/include/asm/cache.h b/arch/x86/include/asm/cache.h
17945 index 48f99f1..d78ebf9 100644
17946 --- a/arch/x86/include/asm/cache.h
17947 +++ b/arch/x86/include/asm/cache.h
17948 @@ -5,12 +5,13 @@
17949
17950 /* L1 cache line size */
17951 #define L1_CACHE_SHIFT (CONFIG_X86_L1_CACHE_SHIFT)
17952 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
17953 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
17954
17955 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
17956 +#define __read_only __attribute__((__section__(".data..read_only")))
17957
17958 #define INTERNODE_CACHE_SHIFT CONFIG_X86_INTERNODE_CACHE_SHIFT
17959 -#define INTERNODE_CACHE_BYTES (1 << INTERNODE_CACHE_SHIFT)
17960 +#define INTERNODE_CACHE_BYTES (_AC(1,UL) << INTERNODE_CACHE_SHIFT)
17961
17962 #ifdef CONFIG_X86_VSMP
17963 #ifdef CONFIG_SMP
17964 diff --git a/arch/x86/include/asm/checksum_32.h b/arch/x86/include/asm/checksum_32.h
17965 index f50de69..2b0a458 100644
17966 --- a/arch/x86/include/asm/checksum_32.h
17967 +++ b/arch/x86/include/asm/checksum_32.h
17968 @@ -31,6 +31,14 @@ asmlinkage __wsum csum_partial_copy_generic(const void *src, void *dst,
17969 int len, __wsum sum,
17970 int *src_err_ptr, int *dst_err_ptr);
17971
17972 +asmlinkage __wsum csum_partial_copy_generic_to_user(const void *src, void *dst,
17973 + int len, __wsum sum,
17974 + int *src_err_ptr, int *dst_err_ptr);
17975 +
17976 +asmlinkage __wsum csum_partial_copy_generic_from_user(const void *src, void *dst,
17977 + int len, __wsum sum,
17978 + int *src_err_ptr, int *dst_err_ptr);
17979 +
17980 /*
17981 * Note: when you get a NULL pointer exception here this means someone
17982 * passed in an incorrect kernel address to one of these functions.
17983 @@ -53,7 +61,7 @@ static inline __wsum csum_partial_copy_from_user(const void __user *src,
17984
17985 might_sleep();
17986 stac();
17987 - ret = csum_partial_copy_generic((__force void *)src, dst,
17988 + ret = csum_partial_copy_generic_from_user((__force void *)src, dst,
17989 len, sum, err_ptr, NULL);
17990 clac();
17991
17992 @@ -187,7 +195,7 @@ static inline __wsum csum_and_copy_to_user(const void *src,
17993 might_sleep();
17994 if (access_ok(VERIFY_WRITE, dst, len)) {
17995 stac();
17996 - ret = csum_partial_copy_generic(src, (__force void *)dst,
17997 + ret = csum_partial_copy_generic_to_user(src, (__force void *)dst,
17998 len, sum, NULL, err_ptr);
17999 clac();
18000 return ret;
18001 diff --git a/arch/x86/include/asm/cmpxchg.h b/arch/x86/include/asm/cmpxchg.h
18002 index ad19841..0784041 100644
18003 --- a/arch/x86/include/asm/cmpxchg.h
18004 +++ b/arch/x86/include/asm/cmpxchg.h
18005 @@ -14,8 +14,12 @@ extern void __cmpxchg_wrong_size(void)
18006 __compiletime_error("Bad argument size for cmpxchg");
18007 extern void __xadd_wrong_size(void)
18008 __compiletime_error("Bad argument size for xadd");
18009 +extern void __xadd_check_overflow_wrong_size(void)
18010 + __compiletime_error("Bad argument size for xadd_check_overflow");
18011 extern void __add_wrong_size(void)
18012 __compiletime_error("Bad argument size for add");
18013 +extern void __add_check_overflow_wrong_size(void)
18014 + __compiletime_error("Bad argument size for add_check_overflow");
18015
18016 /*
18017 * Constants for operation sizes. On 32-bit, the 64-bit size it set to
18018 @@ -67,6 +71,38 @@ extern void __add_wrong_size(void)
18019 __ret; \
18020 })
18021
18022 +#ifdef CONFIG_PAX_REFCOUNT
18023 +#define __xchg_op_check_overflow(ptr, arg, op, lock) \
18024 + ({ \
18025 + __typeof__ (*(ptr)) __ret = (arg); \
18026 + switch (sizeof(*(ptr))) { \
18027 + case __X86_CASE_L: \
18028 + asm volatile (lock #op "l %0, %1\n" \
18029 + "jno 0f\n" \
18030 + "mov %0,%1\n" \
18031 + "int $4\n0:\n" \
18032 + _ASM_EXTABLE(0b, 0b) \
18033 + : "+r" (__ret), "+m" (*(ptr)) \
18034 + : : "memory", "cc"); \
18035 + break; \
18036 + case __X86_CASE_Q: \
18037 + asm volatile (lock #op "q %q0, %1\n" \
18038 + "jno 0f\n" \
18039 + "mov %0,%1\n" \
18040 + "int $4\n0:\n" \
18041 + _ASM_EXTABLE(0b, 0b) \
18042 + : "+r" (__ret), "+m" (*(ptr)) \
18043 + : : "memory", "cc"); \
18044 + break; \
18045 + default: \
18046 + __ ## op ## _check_overflow_wrong_size(); \
18047 + } \
18048 + __ret; \
18049 + })
18050 +#else
18051 +#define __xchg_op_check_overflow(ptr, arg, op, lock) __xchg_op(ptr, arg, op, lock)
18052 +#endif
18053 +
18054 /*
18055 * Note: no "lock" prefix even on SMP: xchg always implies lock anyway.
18056 * Since this is generally used to protect other memory information, we
18057 @@ -165,6 +201,9 @@ extern void __add_wrong_size(void)
18058 #define xadd_sync(ptr, inc) __xadd((ptr), (inc), "lock; ")
18059 #define xadd_local(ptr, inc) __xadd((ptr), (inc), "")
18060
18061 +#define __xadd_check_overflow(ptr, inc, lock) __xchg_op_check_overflow((ptr), (inc), xadd, lock)
18062 +#define xadd_check_overflow(ptr, inc) __xadd_check_overflow((ptr), (inc), LOCK_PREFIX)
18063 +
18064 #define __add(ptr, inc, lock) \
18065 ({ \
18066 __typeof__ (*(ptr)) __ret = (inc); \
18067 diff --git a/arch/x86/include/asm/compat.h b/arch/x86/include/asm/compat.h
18068 index acdee09..e5c31cd 100644
18069 --- a/arch/x86/include/asm/compat.h
18070 +++ b/arch/x86/include/asm/compat.h
18071 @@ -41,7 +41,11 @@ typedef s64 __attribute__((aligned(4))) compat_s64;
18072 typedef u32 compat_uint_t;
18073 typedef u32 compat_ulong_t;
18074 typedef u64 __attribute__((aligned(4))) compat_u64;
18075 +#ifdef CHECKER_PLUGIN_USER
18076 typedef u32 compat_uptr_t;
18077 +#else
18078 +typedef u32 __user compat_uptr_t;
18079 +#endif
18080
18081 struct compat_timespec {
18082 compat_time_t tv_sec;
18083 diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h
18084 index f7ba9fb..f658131 100644
18085 --- a/arch/x86/include/asm/cpufeature.h
18086 +++ b/arch/x86/include/asm/cpufeature.h
18087 @@ -217,7 +217,8 @@
18088 #define X86_FEATURE_PFTHRESHOLD ( 8*32+14) /* AMD pause filter threshold */
18089 #define X86_FEATURE_VMMCALL ( 8*32+15) /* Prefer vmmcall to vmcall */
18090 #define X86_FEATURE_XENPV ( 8*32+16) /* "" Xen paravirtual guest */
18091 -
18092 +#define X86_FEATURE_PCIDUDEREF ( 8*32+30) /* PaX PCID based UDEREF */
18093 +#define X86_FEATURE_STRONGUDEREF (8*32+31) /* PaX PCID based strong UDEREF */
18094
18095 /* Intel-defined CPU features, CPUID level 0x00000007:0 (ebx), word 9 */
18096 #define X86_FEATURE_FSGSBASE ( 9*32+ 0) /* {RD/WR}{FS/GS}BASE instructions*/
18097 @@ -225,7 +226,7 @@
18098 #define X86_FEATURE_BMI1 ( 9*32+ 3) /* 1st group bit manipulation extensions */
18099 #define X86_FEATURE_HLE ( 9*32+ 4) /* Hardware Lock Elision */
18100 #define X86_FEATURE_AVX2 ( 9*32+ 5) /* AVX2 instructions */
18101 -#define X86_FEATURE_SMEP ( 9*32+ 7) /* Supervisor Mode Execution Protection */
18102 +#define X86_FEATURE_SMEP ( 9*32+ 7) /* Supervisor Mode Execution Prevention */
18103 #define X86_FEATURE_BMI2 ( 9*32+ 8) /* 2nd group bit manipulation extensions */
18104 #define X86_FEATURE_ERMS ( 9*32+ 9) /* Enhanced REP MOVSB/STOSB */
18105 #define X86_FEATURE_INVPCID ( 9*32+10) /* Invalidate Processor Context ID */
18106 @@ -408,6 +409,7 @@ extern const char * const x86_bug_flags[NBUGINTS*32];
18107 #define cpu_has_eager_fpu boot_cpu_has(X86_FEATURE_EAGER_FPU)
18108 #define cpu_has_topoext boot_cpu_has(X86_FEATURE_TOPOEXT)
18109 #define cpu_has_bpext boot_cpu_has(X86_FEATURE_BPEXT)
18110 +#define cpu_has_pcid boot_cpu_has(X86_FEATURE_PCID)
18111
18112 #if __GNUC__ >= 4
18113 extern void warn_pre_alternatives(void);
18114 @@ -461,7 +463,8 @@ static __always_inline __pure bool __static_cpu_has(u16 bit)
18115
18116 #ifdef CONFIG_X86_DEBUG_STATIC_CPU_HAS
18117 t_warn:
18118 - warn_pre_alternatives();
18119 + if (bit != X86_FEATURE_PCID && bit != X86_FEATURE_INVPCID && bit != X86_FEATURE_PCIDUDEREF)
18120 + warn_pre_alternatives();
18121 return false;
18122 #endif
18123
18124 @@ -482,7 +485,7 @@ static __always_inline __pure bool __static_cpu_has(u16 bit)
18125 ".section .discard,\"aw\",@progbits\n"
18126 " .byte 0xff + (4f-3f) - (2b-1b)\n" /* size check */
18127 ".previous\n"
18128 - ".section .altinstr_replacement,\"ax\"\n"
18129 + ".section .altinstr_replacement,\"a\"\n"
18130 "3: movb $1,%0\n"
18131 "4:\n"
18132 ".previous\n"
18133 @@ -517,7 +520,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
18134 " .byte 5f - 4f\n" /* repl len */
18135 " .byte 3b - 2b\n" /* pad len */
18136 ".previous\n"
18137 - ".section .altinstr_replacement,\"ax\"\n"
18138 + ".section .altinstr_replacement,\"a\"\n"
18139 "4: jmp %l[t_no]\n"
18140 "5:\n"
18141 ".previous\n"
18142 @@ -552,7 +555,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
18143 ".section .discard,\"aw\",@progbits\n"
18144 " .byte 0xff + (4f-3f) - (2b-1b)\n" /* size check */
18145 ".previous\n"
18146 - ".section .altinstr_replacement,\"ax\"\n"
18147 + ".section .altinstr_replacement,\"a\"\n"
18148 "3: movb $0,%0\n"
18149 "4:\n"
18150 ".previous\n"
18151 @@ -567,7 +570,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
18152 ".section .discard,\"aw\",@progbits\n"
18153 " .byte 0xff + (6f-5f) - (4b-3b)\n" /* size check */
18154 ".previous\n"
18155 - ".section .altinstr_replacement,\"ax\"\n"
18156 + ".section .altinstr_replacement,\"a\"\n"
18157 "5: movb $1,%0\n"
18158 "6:\n"
18159 ".previous\n"
18160 diff --git a/arch/x86/include/asm/desc.h b/arch/x86/include/asm/desc.h
18161 index 4e10d73..7319a47 100644
18162 --- a/arch/x86/include/asm/desc.h
18163 +++ b/arch/x86/include/asm/desc.h
18164 @@ -4,6 +4,7 @@
18165 #include <asm/desc_defs.h>
18166 #include <asm/ldt.h>
18167 #include <asm/mmu.h>
18168 +#include <asm/pgtable.h>
18169
18170 #include <linux/smp.h>
18171 #include <linux/percpu.h>
18172 @@ -17,6 +18,7 @@ static inline void fill_ldt(struct desc_struct *desc, const struct user_desc *in
18173
18174 desc->type = (info->read_exec_only ^ 1) << 1;
18175 desc->type |= info->contents << 2;
18176 + desc->type |= info->seg_not_present ^ 1;
18177
18178 desc->s = 1;
18179 desc->dpl = 0x3;
18180 @@ -35,19 +37,14 @@ static inline void fill_ldt(struct desc_struct *desc, const struct user_desc *in
18181 }
18182
18183 extern struct desc_ptr idt_descr;
18184 -extern gate_desc idt_table[];
18185 -extern struct desc_ptr debug_idt_descr;
18186 -extern gate_desc debug_idt_table[];
18187 -
18188 -struct gdt_page {
18189 - struct desc_struct gdt[GDT_ENTRIES];
18190 -} __attribute__((aligned(PAGE_SIZE)));
18191 -
18192 -DECLARE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page);
18193 +extern gate_desc idt_table[IDT_ENTRIES];
18194 +extern const struct desc_ptr debug_idt_descr;
18195 +extern gate_desc debug_idt_table[IDT_ENTRIES];
18196
18197 +extern struct desc_struct cpu_gdt_table[NR_CPUS][PAGE_SIZE / sizeof(struct desc_struct)];
18198 static inline struct desc_struct *get_cpu_gdt_table(unsigned int cpu)
18199 {
18200 - return per_cpu(gdt_page, cpu).gdt;
18201 + return cpu_gdt_table[cpu];
18202 }
18203
18204 #ifdef CONFIG_X86_64
18205 @@ -72,8 +69,14 @@ static inline void pack_gate(gate_desc *gate, unsigned char type,
18206 unsigned long base, unsigned dpl, unsigned flags,
18207 unsigned short seg)
18208 {
18209 - gate->a = (seg << 16) | (base & 0xffff);
18210 - gate->b = (base & 0xffff0000) | (((0x80 | type | (dpl << 5)) & 0xff) << 8);
18211 + gate->gate.offset_low = base;
18212 + gate->gate.seg = seg;
18213 + gate->gate.reserved = 0;
18214 + gate->gate.type = type;
18215 + gate->gate.s = 0;
18216 + gate->gate.dpl = dpl;
18217 + gate->gate.p = 1;
18218 + gate->gate.offset_high = base >> 16;
18219 }
18220
18221 #endif
18222 @@ -118,12 +121,16 @@ static inline void paravirt_free_ldt(struct desc_struct *ldt, unsigned entries)
18223
18224 static inline void native_write_idt_entry(gate_desc *idt, int entry, const gate_desc *gate)
18225 {
18226 + pax_open_kernel();
18227 memcpy(&idt[entry], gate, sizeof(*gate));
18228 + pax_close_kernel();
18229 }
18230
18231 static inline void native_write_ldt_entry(struct desc_struct *ldt, int entry, const void *desc)
18232 {
18233 + pax_open_kernel();
18234 memcpy(&ldt[entry], desc, 8);
18235 + pax_close_kernel();
18236 }
18237
18238 static inline void
18239 @@ -137,7 +144,9 @@ native_write_gdt_entry(struct desc_struct *gdt, int entry, const void *desc, int
18240 default: size = sizeof(*gdt); break;
18241 }
18242
18243 + pax_open_kernel();
18244 memcpy(&gdt[entry], desc, size);
18245 + pax_close_kernel();
18246 }
18247
18248 static inline void pack_descriptor(struct desc_struct *desc, unsigned long base,
18249 @@ -210,7 +219,9 @@ static inline void native_set_ldt(const void *addr, unsigned int entries)
18250
18251 static inline void native_load_tr_desc(void)
18252 {
18253 + pax_open_kernel();
18254 asm volatile("ltr %w0"::"q" (GDT_ENTRY_TSS*8));
18255 + pax_close_kernel();
18256 }
18257
18258 static inline void native_load_gdt(const struct desc_ptr *dtr)
18259 @@ -247,8 +258,10 @@ static inline void native_load_tls(struct thread_struct *t, unsigned int cpu)
18260 struct desc_struct *gdt = get_cpu_gdt_table(cpu);
18261 unsigned int i;
18262
18263 + pax_open_kernel();
18264 for (i = 0; i < GDT_ENTRY_TLS_ENTRIES; i++)
18265 gdt[GDT_ENTRY_TLS_MIN + i] = t->tls_array[i];
18266 + pax_close_kernel();
18267 }
18268
18269 /* This intentionally ignores lm, since 32-bit apps don't have that field. */
18270 @@ -280,7 +293,7 @@ static inline void clear_LDT(void)
18271 set_ldt(NULL, 0);
18272 }
18273
18274 -static inline unsigned long get_desc_base(const struct desc_struct *desc)
18275 +static inline unsigned long __intentional_overflow(-1) get_desc_base(const struct desc_struct *desc)
18276 {
18277 return (unsigned)(desc->base0 | ((desc->base1) << 16) | ((desc->base2) << 24));
18278 }
18279 @@ -304,7 +317,7 @@ static inline void set_desc_limit(struct desc_struct *desc, unsigned long limit)
18280 }
18281
18282 #ifdef CONFIG_X86_64
18283 -static inline void set_nmi_gate(int gate, void *addr)
18284 +static inline void set_nmi_gate(int gate, const void *addr)
18285 {
18286 gate_desc s;
18287
18288 @@ -314,14 +327,14 @@ static inline void set_nmi_gate(int gate, void *addr)
18289 #endif
18290
18291 #ifdef CONFIG_TRACING
18292 -extern struct desc_ptr trace_idt_descr;
18293 -extern gate_desc trace_idt_table[];
18294 +extern const struct desc_ptr trace_idt_descr;
18295 +extern gate_desc trace_idt_table[IDT_ENTRIES];
18296 static inline void write_trace_idt_entry(int entry, const gate_desc *gate)
18297 {
18298 write_idt_entry(trace_idt_table, entry, gate);
18299 }
18300
18301 -static inline void _trace_set_gate(int gate, unsigned type, void *addr,
18302 +static inline void _trace_set_gate(int gate, unsigned type, const void *addr,
18303 unsigned dpl, unsigned ist, unsigned seg)
18304 {
18305 gate_desc s;
18306 @@ -341,7 +354,7 @@ static inline void write_trace_idt_entry(int entry, const gate_desc *gate)
18307 #define _trace_set_gate(gate, type, addr, dpl, ist, seg)
18308 #endif
18309
18310 -static inline void _set_gate(int gate, unsigned type, void *addr,
18311 +static inline void _set_gate(int gate, unsigned type, const void *addr,
18312 unsigned dpl, unsigned ist, unsigned seg)
18313 {
18314 gate_desc s;
18315 @@ -364,14 +377,14 @@ static inline void _set_gate(int gate, unsigned type, void *addr,
18316 #define set_intr_gate_notrace(n, addr) \
18317 do { \
18318 BUG_ON((unsigned)n > 0xFF); \
18319 - _set_gate(n, GATE_INTERRUPT, (void *)addr, 0, 0, \
18320 + _set_gate(n, GATE_INTERRUPT, (const void *)addr, 0, 0, \
18321 __KERNEL_CS); \
18322 } while (0)
18323
18324 #define set_intr_gate(n, addr) \
18325 do { \
18326 set_intr_gate_notrace(n, addr); \
18327 - _trace_set_gate(n, GATE_INTERRUPT, (void *)trace_##addr,\
18328 + _trace_set_gate(n, GATE_INTERRUPT, (const void *)trace_##addr,\
18329 0, 0, __KERNEL_CS); \
18330 } while (0)
18331
18332 @@ -399,19 +412,19 @@ static inline void alloc_system_vector(int vector)
18333 /*
18334 * This routine sets up an interrupt gate at directory privilege level 3.
18335 */
18336 -static inline void set_system_intr_gate(unsigned int n, void *addr)
18337 +static inline void set_system_intr_gate(unsigned int n, const void *addr)
18338 {
18339 BUG_ON((unsigned)n > 0xFF);
18340 _set_gate(n, GATE_INTERRUPT, addr, 0x3, 0, __KERNEL_CS);
18341 }
18342
18343 -static inline void set_system_trap_gate(unsigned int n, void *addr)
18344 +static inline void set_system_trap_gate(unsigned int n, const void *addr)
18345 {
18346 BUG_ON((unsigned)n > 0xFF);
18347 _set_gate(n, GATE_TRAP, addr, 0x3, 0, __KERNEL_CS);
18348 }
18349
18350 -static inline void set_trap_gate(unsigned int n, void *addr)
18351 +static inline void set_trap_gate(unsigned int n, const void *addr)
18352 {
18353 BUG_ON((unsigned)n > 0xFF);
18354 _set_gate(n, GATE_TRAP, addr, 0, 0, __KERNEL_CS);
18355 @@ -420,16 +433,16 @@ static inline void set_trap_gate(unsigned int n, void *addr)
18356 static inline void set_task_gate(unsigned int n, unsigned int gdt_entry)
18357 {
18358 BUG_ON((unsigned)n > 0xFF);
18359 - _set_gate(n, GATE_TASK, (void *)0, 0, 0, (gdt_entry<<3));
18360 + _set_gate(n, GATE_TASK, (const void *)0, 0, 0, (gdt_entry<<3));
18361 }
18362
18363 -static inline void set_intr_gate_ist(int n, void *addr, unsigned ist)
18364 +static inline void set_intr_gate_ist(int n, const void *addr, unsigned ist)
18365 {
18366 BUG_ON((unsigned)n > 0xFF);
18367 _set_gate(n, GATE_INTERRUPT, addr, 0, ist, __KERNEL_CS);
18368 }
18369
18370 -static inline void set_system_intr_gate_ist(int n, void *addr, unsigned ist)
18371 +static inline void set_system_intr_gate_ist(int n, const void *addr, unsigned ist)
18372 {
18373 BUG_ON((unsigned)n > 0xFF);
18374 _set_gate(n, GATE_INTERRUPT, addr, 0x3, ist, __KERNEL_CS);
18375 @@ -501,4 +514,17 @@ static inline void load_current_idt(void)
18376 else
18377 load_idt((const struct desc_ptr *)&idt_descr);
18378 }
18379 +
18380 +#ifdef CONFIG_X86_32
18381 +static inline void set_user_cs(unsigned long base, unsigned long limit, int cpu)
18382 +{
18383 + struct desc_struct d;
18384 +
18385 + if (likely(limit))
18386 + limit = (limit - 1UL) >> PAGE_SHIFT;
18387 + pack_descriptor(&d, base, limit, 0xFB, 0xC);
18388 + write_gdt_entry(get_cpu_gdt_table(cpu), GDT_ENTRY_DEFAULT_USER_CS, &d, DESCTYPE_S);
18389 +}
18390 +#endif
18391 +
18392 #endif /* _ASM_X86_DESC_H */
18393 diff --git a/arch/x86/include/asm/desc_defs.h b/arch/x86/include/asm/desc_defs.h
18394 index 278441f..b95a174 100644
18395 --- a/arch/x86/include/asm/desc_defs.h
18396 +++ b/arch/x86/include/asm/desc_defs.h
18397 @@ -31,6 +31,12 @@ struct desc_struct {
18398 unsigned base1: 8, type: 4, s: 1, dpl: 2, p: 1;
18399 unsigned limit: 4, avl: 1, l: 1, d: 1, g: 1, base2: 8;
18400 };
18401 + struct {
18402 + u16 offset_low;
18403 + u16 seg;
18404 + unsigned reserved: 8, type: 4, s: 1, dpl: 2, p: 1;
18405 + unsigned offset_high: 16;
18406 + } gate;
18407 };
18408 } __attribute__((packed));
18409
18410 diff --git a/arch/x86/include/asm/div64.h b/arch/x86/include/asm/div64.h
18411 index ced283a..ffe04cc 100644
18412 --- a/arch/x86/include/asm/div64.h
18413 +++ b/arch/x86/include/asm/div64.h
18414 @@ -39,7 +39,7 @@
18415 __mod; \
18416 })
18417
18418 -static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
18419 +static inline u64 __intentional_overflow(-1) div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
18420 {
18421 union {
18422 u64 v64;
18423 diff --git a/arch/x86/include/asm/dma.h b/arch/x86/include/asm/dma.h
18424 index fe884e1..46149ae 100644
18425 --- a/arch/x86/include/asm/dma.h
18426 +++ b/arch/x86/include/asm/dma.h
18427 @@ -149,6 +149,7 @@
18428 #ifdef CONFIG_ISA_DMA_API
18429 extern spinlock_t dma_spin_lock;
18430
18431 +static inline unsigned long claim_dma_lock(void) __acquires(&dma_spin_lock);
18432 static inline unsigned long claim_dma_lock(void)
18433 {
18434 unsigned long flags;
18435 @@ -156,6 +157,7 @@ static inline unsigned long claim_dma_lock(void)
18436 return flags;
18437 }
18438
18439 +static inline void release_dma_lock(unsigned long flags) __releases(&dma_spin_lock);
18440 static inline void release_dma_lock(unsigned long flags)
18441 {
18442 spin_unlock_irqrestore(&dma_spin_lock, flags);
18443 diff --git a/arch/x86/include/asm/elf.h b/arch/x86/include/asm/elf.h
18444 index 1514753..436825b 100644
18445 --- a/arch/x86/include/asm/elf.h
18446 +++ b/arch/x86/include/asm/elf.h
18447 @@ -75,9 +75,6 @@ typedef struct user_fxsr_struct elf_fpxregset_t;
18448
18449 #include <asm/vdso.h>
18450
18451 -#ifdef CONFIG_X86_64
18452 -extern unsigned int vdso64_enabled;
18453 -#endif
18454 #if defined(CONFIG_X86_32) || defined(CONFIG_IA32_EMULATION)
18455 extern unsigned int vdso32_enabled;
18456 #endif
18457 @@ -250,7 +247,25 @@ extern int force_personality32;
18458 the loader. We need to make sure that it is out of the way of the program
18459 that it will "exec", and that there is sufficient room for the brk. */
18460
18461 +#ifdef CONFIG_PAX_SEGMEXEC
18462 +#define ELF_ET_DYN_BASE ((current->mm->pax_flags & MF_PAX_SEGMEXEC) ? SEGMEXEC_TASK_SIZE/3*2 : TASK_SIZE/3*2)
18463 +#else
18464 #define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
18465 +#endif
18466 +
18467 +#ifdef CONFIG_PAX_ASLR
18468 +#ifdef CONFIG_X86_32
18469 +#define PAX_ELF_ET_DYN_BASE 0x10000000UL
18470 +
18471 +#define PAX_DELTA_MMAP_LEN (current->mm->pax_flags & MF_PAX_SEGMEXEC ? 15 : 16)
18472 +#define PAX_DELTA_STACK_LEN (current->mm->pax_flags & MF_PAX_SEGMEXEC ? 15 : 16)
18473 +#else
18474 +#define PAX_ELF_ET_DYN_BASE 0x400000UL
18475 +
18476 +#define PAX_DELTA_MMAP_LEN ((test_thread_flag(TIF_ADDR32)) ? 16 : TASK_SIZE_MAX_SHIFT - PAGE_SHIFT - 3)
18477 +#define PAX_DELTA_STACK_LEN ((test_thread_flag(TIF_ADDR32)) ? 16 : TASK_SIZE_MAX_SHIFT - PAGE_SHIFT - 3)
18478 +#endif
18479 +#endif
18480
18481 /* This yields a mask that user programs can use to figure out what
18482 instruction set this CPU supports. This could be done in user space,
18483 @@ -299,17 +314,13 @@ do { \
18484
18485 #define ARCH_DLINFO \
18486 do { \
18487 - if (vdso64_enabled) \
18488 - NEW_AUX_ENT(AT_SYSINFO_EHDR, \
18489 - (unsigned long __force)current->mm->context.vdso); \
18490 + NEW_AUX_ENT(AT_SYSINFO_EHDR, current->mm->context.vdso); \
18491 } while (0)
18492
18493 /* As a historical oddity, the x32 and x86_64 vDSOs are controlled together. */
18494 #define ARCH_DLINFO_X32 \
18495 do { \
18496 - if (vdso64_enabled) \
18497 - NEW_AUX_ENT(AT_SYSINFO_EHDR, \
18498 - (unsigned long __force)current->mm->context.vdso); \
18499 + NEW_AUX_ENT(AT_SYSINFO_EHDR, current->mm->context.vdso); \
18500 } while (0)
18501
18502 #define AT_SYSINFO 32
18503 @@ -324,10 +335,10 @@ else \
18504
18505 #endif /* !CONFIG_X86_32 */
18506
18507 -#define VDSO_CURRENT_BASE ((unsigned long)current->mm->context.vdso)
18508 +#define VDSO_CURRENT_BASE (current->mm->context.vdso)
18509
18510 #define VDSO_ENTRY \
18511 - ((unsigned long)current->mm->context.vdso + \
18512 + (current->mm->context.vdso + \
18513 vdso_image_32.sym___kernel_vsyscall)
18514
18515 struct linux_binprm;
18516 diff --git a/arch/x86/include/asm/emergency-restart.h b/arch/x86/include/asm/emergency-restart.h
18517 index 77a99ac..39ff7f5 100644
18518 --- a/arch/x86/include/asm/emergency-restart.h
18519 +++ b/arch/x86/include/asm/emergency-restart.h
18520 @@ -1,6 +1,6 @@
18521 #ifndef _ASM_X86_EMERGENCY_RESTART_H
18522 #define _ASM_X86_EMERGENCY_RESTART_H
18523
18524 -extern void machine_emergency_restart(void);
18525 +extern void machine_emergency_restart(void) __noreturn;
18526
18527 #endif /* _ASM_X86_EMERGENCY_RESTART_H */
18528 diff --git a/arch/x86/include/asm/floppy.h b/arch/x86/include/asm/floppy.h
18529 index 1c7eefe..d0e4702 100644
18530 --- a/arch/x86/include/asm/floppy.h
18531 +++ b/arch/x86/include/asm/floppy.h
18532 @@ -229,18 +229,18 @@ static struct fd_routine_l {
18533 int (*_dma_setup)(char *addr, unsigned long size, int mode, int io);
18534 } fd_routine[] = {
18535 {
18536 - request_dma,
18537 - free_dma,
18538 - get_dma_residue,
18539 - dma_mem_alloc,
18540 - hard_dma_setup
18541 + ._request_dma = request_dma,
18542 + ._free_dma = free_dma,
18543 + ._get_dma_residue = get_dma_residue,
18544 + ._dma_mem_alloc = dma_mem_alloc,
18545 + ._dma_setup = hard_dma_setup
18546 },
18547 {
18548 - vdma_request_dma,
18549 - vdma_nop,
18550 - vdma_get_dma_residue,
18551 - vdma_mem_alloc,
18552 - vdma_dma_setup
18553 + ._request_dma = vdma_request_dma,
18554 + ._free_dma = vdma_nop,
18555 + ._get_dma_residue = vdma_get_dma_residue,
18556 + ._dma_mem_alloc = vdma_mem_alloc,
18557 + ._dma_setup = vdma_dma_setup
18558 }
18559 };
18560
18561 diff --git a/arch/x86/include/asm/fpu/internal.h b/arch/x86/include/asm/fpu/internal.h
18562 index 3c3550c..ca9e4c3 100644
18563 --- a/arch/x86/include/asm/fpu/internal.h
18564 +++ b/arch/x86/include/asm/fpu/internal.h
18565 @@ -97,8 +97,11 @@ extern void fpstate_sanitize_xstate(struct fpu *fpu);
18566 #define user_insn(insn, output, input...) \
18567 ({ \
18568 int err; \
18569 + pax_open_userland(); \
18570 asm volatile(ASM_STAC "\n" \
18571 - "1:" #insn "\n\t" \
18572 + "1:" \
18573 + __copyuser_seg \
18574 + #insn "\n\t" \
18575 "2: " ASM_CLAC "\n" \
18576 ".section .fixup,\"ax\"\n" \
18577 "3: movl $-1,%[err]\n" \
18578 @@ -107,6 +110,7 @@ extern void fpstate_sanitize_xstate(struct fpu *fpu);
18579 _ASM_EXTABLE(1b, 3b) \
18580 : [err] "=r" (err), output \
18581 : "0"(0), input); \
18582 + pax_close_userland(); \
18583 err; \
18584 })
18585
18586 @@ -186,9 +190,9 @@ static inline int copy_user_to_fregs(struct fregs_state __user *fx)
18587 static inline void copy_fxregs_to_kernel(struct fpu *fpu)
18588 {
18589 if (config_enabled(CONFIG_X86_32))
18590 - asm volatile( "fxsave %[fx]" : [fx] "=m" (fpu->state.fxsave));
18591 + asm volatile( "fxsave %[fx]" : [fx] "=m" (fpu->state->fxsave));
18592 else if (config_enabled(CONFIG_AS_FXSAVEQ))
18593 - asm volatile("fxsaveq %[fx]" : [fx] "=m" (fpu->state.fxsave));
18594 + asm volatile("fxsaveq %[fx]" : [fx] "=m" (fpu->state->fxsave));
18595 else {
18596 /* Using "rex64; fxsave %0" is broken because, if the memory
18597 * operand uses any extended registers for addressing, a second
18598 @@ -205,15 +209,15 @@ static inline void copy_fxregs_to_kernel(struct fpu *fpu)
18599 * an extended register is needed for addressing (fix submitted
18600 * to mainline 2005-11-21).
18601 *
18602 - * asm volatile("rex64/fxsave %0" : "=m" (fpu->state.fxsave));
18603 + * asm volatile("rex64/fxsave %0" : "=m" (fpu->state->fxsave));
18604 *
18605 * This, however, we can work around by forcing the compiler to
18606 * select an addressing mode that doesn't require extended
18607 * registers.
18608 */
18609 asm volatile( "rex64/fxsave (%[fx])"
18610 - : "=m" (fpu->state.fxsave)
18611 - : [fx] "R" (&fpu->state.fxsave));
18612 + : "=m" (fpu->state->fxsave)
18613 + : [fx] "R" (&fpu->state->fxsave));
18614 }
18615 }
18616
18617 @@ -388,12 +392,16 @@ static inline int copy_xregs_to_user(struct xregs_state __user *buf)
18618 if (unlikely(err))
18619 return -EFAULT;
18620
18621 + pax_open_userland();
18622 __asm__ __volatile__(ASM_STAC "\n"
18623 - "1:"XSAVE"\n"
18624 + "1:"
18625 + __copyuser_seg
18626 + XSAVE"\n"
18627 "2: " ASM_CLAC "\n"
18628 xstate_fault(err)
18629 : "D" (buf), "a" (-1), "d" (-1), "0" (err)
18630 : "memory");
18631 + pax_close_userland();
18632 return err;
18633 }
18634
18635 @@ -402,17 +410,21 @@ static inline int copy_xregs_to_user(struct xregs_state __user *buf)
18636 */
18637 static inline int copy_user_to_xregs(struct xregs_state __user *buf, u64 mask)
18638 {
18639 - struct xregs_state *xstate = ((__force struct xregs_state *)buf);
18640 + struct xregs_state *xstate = ((__force_kernel struct xregs_state *)buf);
18641 u32 lmask = mask;
18642 u32 hmask = mask >> 32;
18643 int err = 0;
18644
18645 + pax_open_userland();
18646 __asm__ __volatile__(ASM_STAC "\n"
18647 - "1:"XRSTOR"\n"
18648 + "1:"
18649 + __copyuser_seg
18650 + XRSTOR"\n"
18651 "2: " ASM_CLAC "\n"
18652 xstate_fault(err)
18653 : "D" (xstate), "a" (lmask), "d" (hmask), "0" (err)
18654 : "memory"); /* memory required? */
18655 + pax_close_userland();
18656 return err;
18657 }
18658
18659 @@ -429,7 +441,7 @@ static inline int copy_user_to_xregs(struct xregs_state __user *buf, u64 mask)
18660 static inline int copy_fpregs_to_fpstate(struct fpu *fpu)
18661 {
18662 if (likely(use_xsave())) {
18663 - copy_xregs_to_kernel(&fpu->state.xsave);
18664 + copy_xregs_to_kernel(&fpu->state->xsave);
18665 return 1;
18666 }
18667
18668 @@ -442,7 +454,7 @@ static inline int copy_fpregs_to_fpstate(struct fpu *fpu)
18669 * Legacy FPU register saving, FNSAVE always clears FPU registers,
18670 * so we have to mark them inactive:
18671 */
18672 - asm volatile("fnsave %[fp]; fwait" : [fp] "=m" (fpu->state.fsave));
18673 + asm volatile("fnsave %[fp]; fwait" : [fp] "=m" (fpu->state->fsave));
18674
18675 return 0;
18676 }
18677 @@ -471,7 +483,7 @@ static inline void copy_kernel_to_fpregs(union fpregs_state *fpstate)
18678 "fnclex\n\t"
18679 "emms\n\t"
18680 "fildl %P[addr]" /* set F?P to defined value */
18681 - : : [addr] "m" (fpstate));
18682 + : : [addr] "m" (cpu_tss[raw_smp_processor_id()].x86_tss.sp0));
18683 }
18684
18685 __copy_kernel_to_fpregs(fpstate);
18686 @@ -611,7 +623,7 @@ switch_fpu_prepare(struct fpu *old_fpu, struct fpu *new_fpu, int cpu)
18687 if (fpu.preload) {
18688 new_fpu->counter++;
18689 __fpregs_activate(new_fpu);
18690 - prefetch(&new_fpu->state);
18691 + prefetch(new_fpu->state);
18692 } else {
18693 __fpregs_deactivate_hw();
18694 }
18695 @@ -623,7 +635,7 @@ switch_fpu_prepare(struct fpu *old_fpu, struct fpu *new_fpu, int cpu)
18696 if (fpu_want_lazy_restore(new_fpu, cpu))
18697 fpu.preload = 0;
18698 else
18699 - prefetch(&new_fpu->state);
18700 + prefetch(new_fpu->state);
18701 fpregs_activate(new_fpu);
18702 }
18703 }
18704 @@ -643,7 +655,7 @@ switch_fpu_prepare(struct fpu *old_fpu, struct fpu *new_fpu, int cpu)
18705 static inline void switch_fpu_finish(struct fpu *new_fpu, fpu_switch_t fpu_switch)
18706 {
18707 if (fpu_switch.preload)
18708 - copy_kernel_to_fpregs(&new_fpu->state);
18709 + copy_kernel_to_fpregs(new_fpu->state);
18710 }
18711
18712 /*
18713 diff --git a/arch/x86/include/asm/fpu/types.h b/arch/x86/include/asm/fpu/types.h
18714 index 1c6f6ac..2575de1 100644
18715 --- a/arch/x86/include/asm/fpu/types.h
18716 +++ b/arch/x86/include/asm/fpu/types.h
18717 @@ -257,6 +257,39 @@ union fpregs_state {
18718 */
18719 struct fpu {
18720 /*
18721 + * @state:
18722 + *
18723 + * In-memory copy of all FPU registers that we save/restore
18724 + * over context switches. If the task is using the FPU then
18725 + * the registers in the FPU are more recent than this state
18726 + * copy. If the task context-switches away then they get
18727 + * saved here and represent the FPU state.
18728 + *
18729 + * After context switches there may be a (short) time period
18730 + * during which the in-FPU hardware registers are unchanged
18731 + * and still perfectly match this state, if the tasks
18732 + * scheduled afterwards are not using the FPU.
18733 + *
18734 + * This is the 'lazy restore' window of optimization, which
18735 + * we track though 'fpu_fpregs_owner_ctx' and 'fpu->last_cpu'.
18736 + *
18737 + * We detect whether a subsequent task uses the FPU via setting
18738 + * CR0::TS to 1, which causes any FPU use to raise a #NM fault.
18739 + *
18740 + * During this window, if the task gets scheduled again, we
18741 + * might be able to skip having to do a restore from this
18742 + * memory buffer to the hardware registers - at the cost of
18743 + * incurring the overhead of #NM fault traps.
18744 + *
18745 + * Note that on modern CPUs that support the XSAVEOPT (or other
18746 + * optimized XSAVE instructions), we don't use #NM traps anymore,
18747 + * as the hardware can track whether FPU registers need saving
18748 + * or not. On such CPUs we activate the non-lazy ('eagerfpu')
18749 + * logic, which unconditionally saves/restores all FPU state
18750 + * across context switches. (if FPU state exists.)
18751 + */
18752 + union fpregs_state *state;
18753 + /*
18754 * @last_cpu:
18755 *
18756 * Records the last CPU on which this context was loaded into
18757 @@ -313,43 +346,6 @@ struct fpu {
18758 * deal with bursty apps that only use the FPU for a short time:
18759 */
18760 unsigned char counter;
18761 - /*
18762 - * @state:
18763 - *
18764 - * In-memory copy of all FPU registers that we save/restore
18765 - * over context switches. If the task is using the FPU then
18766 - * the registers in the FPU are more recent than this state
18767 - * copy. If the task context-switches away then they get
18768 - * saved here and represent the FPU state.
18769 - *
18770 - * After context switches there may be a (short) time period
18771 - * during which the in-FPU hardware registers are unchanged
18772 - * and still perfectly match this state, if the tasks
18773 - * scheduled afterwards are not using the FPU.
18774 - *
18775 - * This is the 'lazy restore' window of optimization, which
18776 - * we track though 'fpu_fpregs_owner_ctx' and 'fpu->last_cpu'.
18777 - *
18778 - * We detect whether a subsequent task uses the FPU via setting
18779 - * CR0::TS to 1, which causes any FPU use to raise a #NM fault.
18780 - *
18781 - * During this window, if the task gets scheduled again, we
18782 - * might be able to skip having to do a restore from this
18783 - * memory buffer to the hardware registers - at the cost of
18784 - * incurring the overhead of #NM fault traps.
18785 - *
18786 - * Note that on modern CPUs that support the XSAVEOPT (or other
18787 - * optimized XSAVE instructions), we don't use #NM traps anymore,
18788 - * as the hardware can track whether FPU registers need saving
18789 - * or not. On such CPUs we activate the non-lazy ('eagerfpu')
18790 - * logic, which unconditionally saves/restores all FPU state
18791 - * across context switches. (if FPU state exists.)
18792 - */
18793 - union fpregs_state state;
18794 - /*
18795 - * WARNING: 'state' is dynamically-sized. Do not put
18796 - * anything after it here.
18797 - */
18798 };
18799
18800 #endif /* _ASM_X86_FPU_H */
18801 diff --git a/arch/x86/include/asm/futex.h b/arch/x86/include/asm/futex.h
18802 index b4c1f54..e290c08 100644
18803 --- a/arch/x86/include/asm/futex.h
18804 +++ b/arch/x86/include/asm/futex.h
18805 @@ -12,6 +12,7 @@
18806 #include <asm/smap.h>
18807
18808 #define __futex_atomic_op1(insn, ret, oldval, uaddr, oparg) \
18809 + typecheck(u32 __user *, uaddr); \
18810 asm volatile("\t" ASM_STAC "\n" \
18811 "1:\t" insn "\n" \
18812 "2:\t" ASM_CLAC "\n" \
18813 @@ -20,15 +21,16 @@
18814 "\tjmp\t2b\n" \
18815 "\t.previous\n" \
18816 _ASM_EXTABLE(1b, 3b) \
18817 - : "=r" (oldval), "=r" (ret), "+m" (*uaddr) \
18818 + : "=r" (oldval), "=r" (ret), "+m" (*(u32 __user *)____m(uaddr)) \
18819 : "i" (-EFAULT), "0" (oparg), "1" (0))
18820
18821 #define __futex_atomic_op2(insn, ret, oldval, uaddr, oparg) \
18822 + typecheck(u32 __user *, uaddr); \
18823 asm volatile("\t" ASM_STAC "\n" \
18824 "1:\tmovl %2, %0\n" \
18825 "\tmovl\t%0, %3\n" \
18826 "\t" insn "\n" \
18827 - "2:\t" LOCK_PREFIX "cmpxchgl %3, %2\n" \
18828 + "2:\t" LOCK_PREFIX __copyuser_seg"cmpxchgl %3, %2\n" \
18829 "\tjnz\t1b\n" \
18830 "3:\t" ASM_CLAC "\n" \
18831 "\t.section .fixup,\"ax\"\n" \
18832 @@ -38,7 +40,7 @@
18833 _ASM_EXTABLE(1b, 4b) \
18834 _ASM_EXTABLE(2b, 4b) \
18835 : "=&a" (oldval), "=&r" (ret), \
18836 - "+m" (*uaddr), "=&r" (tem) \
18837 + "+m" (*(u32 __user *)____m(uaddr)), "=&r" (tem) \
18838 : "r" (oparg), "i" (-EFAULT), "1" (0))
18839
18840 static inline int futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
18841 @@ -57,12 +59,13 @@ static inline int futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
18842
18843 pagefault_disable();
18844
18845 + pax_open_userland();
18846 switch (op) {
18847 case FUTEX_OP_SET:
18848 - __futex_atomic_op1("xchgl %0, %2", ret, oldval, uaddr, oparg);
18849 + __futex_atomic_op1(__copyuser_seg"xchgl %0, %2", ret, oldval, uaddr, oparg);
18850 break;
18851 case FUTEX_OP_ADD:
18852 - __futex_atomic_op1(LOCK_PREFIX "xaddl %0, %2", ret, oldval,
18853 + __futex_atomic_op1(LOCK_PREFIX __copyuser_seg"xaddl %0, %2", ret, oldval,
18854 uaddr, oparg);
18855 break;
18856 case FUTEX_OP_OR:
18857 @@ -77,6 +80,7 @@ static inline int futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
18858 default:
18859 ret = -ENOSYS;
18860 }
18861 + pax_close_userland();
18862
18863 pagefault_enable();
18864
18865 diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h
18866 index 1e3408e..67c5ba1 100644
18867 --- a/arch/x86/include/asm/hw_irq.h
18868 +++ b/arch/x86/include/asm/hw_irq.h
18869 @@ -158,8 +158,8 @@ static inline void unlock_vector_lock(void) {}
18870 #endif /* CONFIG_X86_LOCAL_APIC */
18871
18872 /* Statistics */
18873 -extern atomic_t irq_err_count;
18874 -extern atomic_t irq_mis_count;
18875 +extern atomic_unchecked_t irq_err_count;
18876 +extern atomic_unchecked_t irq_mis_count;
18877
18878 extern void elcr_set_level_irq(unsigned int irq);
18879
18880 diff --git a/arch/x86/include/asm/hypervisor.h b/arch/x86/include/asm/hypervisor.h
18881 index 055ea99..7dabb68 100644
18882 --- a/arch/x86/include/asm/hypervisor.h
18883 +++ b/arch/x86/include/asm/hypervisor.h
18884 @@ -43,7 +43,7 @@ struct hypervisor_x86 {
18885
18886 /* X2APIC detection (run once per boot) */
18887 bool (*x2apic_available)(void);
18888 -};
18889 +} __do_const;
18890
18891 extern const struct hypervisor_x86 *x86_hyper;
18892
18893 diff --git a/arch/x86/include/asm/i8259.h b/arch/x86/include/asm/i8259.h
18894 index 39bcefc..272d904 100644
18895 --- a/arch/x86/include/asm/i8259.h
18896 +++ b/arch/x86/include/asm/i8259.h
18897 @@ -63,7 +63,7 @@ struct legacy_pic {
18898 int (*probe)(void);
18899 int (*irq_pending)(unsigned int irq);
18900 void (*make_irq)(unsigned int irq);
18901 -};
18902 +} __do_const;
18903
18904 extern struct legacy_pic *legacy_pic;
18905 extern struct legacy_pic null_legacy_pic;
18906 diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
18907 index de25aad..dc04476 100644
18908 --- a/arch/x86/include/asm/io.h
18909 +++ b/arch/x86/include/asm/io.h
18910 @@ -42,6 +42,7 @@
18911 #include <asm/page.h>
18912 #include <asm/early_ioremap.h>
18913 #include <asm/pgtable_types.h>
18914 +#include <asm/processor.h>
18915
18916 #define build_mmio_read(name, size, type, reg, barrier) \
18917 static inline type name(const volatile void __iomem *addr) \
18918 @@ -54,12 +55,12 @@ static inline void name(type val, volatile void __iomem *addr) \
18919 "m" (*(volatile type __force *)addr) barrier); }
18920
18921 build_mmio_read(readb, "b", unsigned char, "=q", :"memory")
18922 -build_mmio_read(readw, "w", unsigned short, "=r", :"memory")
18923 -build_mmio_read(readl, "l", unsigned int, "=r", :"memory")
18924 +build_mmio_read(__intentional_overflow(-1) readw, "w", unsigned short, "=r", :"memory")
18925 +build_mmio_read(__intentional_overflow(-1) readl, "l", unsigned int, "=r", :"memory")
18926
18927 build_mmio_read(__readb, "b", unsigned char, "=q", )
18928 -build_mmio_read(__readw, "w", unsigned short, "=r", )
18929 -build_mmio_read(__readl, "l", unsigned int, "=r", )
18930 +build_mmio_read(__intentional_overflow(-1) __readw, "w", unsigned short, "=r", )
18931 +build_mmio_read(__intentional_overflow(-1) __readl, "l", unsigned int, "=r", )
18932
18933 build_mmio_write(writeb, "b", unsigned char, "q", :"memory")
18934 build_mmio_write(writew, "w", unsigned short, "r", :"memory")
18935 @@ -115,7 +116,7 @@ build_mmio_write(writeq, "q", unsigned long, "r", :"memory")
18936 * this function
18937 */
18938
18939 -static inline phys_addr_t virt_to_phys(volatile void *address)
18940 +static inline phys_addr_t __intentional_overflow(-1) virt_to_phys(volatile void *address)
18941 {
18942 return __pa(address);
18943 }
18944 @@ -194,7 +195,7 @@ static inline void __iomem *ioremap(resource_size_t offset, unsigned long size)
18945 return ioremap_nocache(offset, size);
18946 }
18947
18948 -extern void iounmap(volatile void __iomem *addr);
18949 +extern void iounmap(const volatile void __iomem *addr);
18950
18951 extern void set_iounmap_nonlazy(void);
18952
18953 @@ -202,6 +203,17 @@ extern void set_iounmap_nonlazy(void);
18954
18955 #include <asm-generic/iomap.h>
18956
18957 +#define ARCH_HAS_VALID_PHYS_ADDR_RANGE
18958 +static inline int valid_phys_addr_range(unsigned long addr, size_t count)
18959 +{
18960 + return ((addr + count + PAGE_SIZE - 1) >> PAGE_SHIFT) < (1ULL << (boot_cpu_data.x86_phys_bits - PAGE_SHIFT)) ? 1 : 0;
18961 +}
18962 +
18963 +static inline int valid_mmap_phys_addr_range(unsigned long pfn, size_t count)
18964 +{
18965 + return (pfn + (count >> PAGE_SHIFT)) < (1ULL << (boot_cpu_data.x86_phys_bits - PAGE_SHIFT)) ? 1 : 0;
18966 +}
18967 +
18968 /*
18969 * Convert a virtual cached pointer to an uncached pointer
18970 */
18971 diff --git a/arch/x86/include/asm/irqflags.h b/arch/x86/include/asm/irqflags.h
18972 index b77f5ed..a2f791e 100644
18973 --- a/arch/x86/include/asm/irqflags.h
18974 +++ b/arch/x86/include/asm/irqflags.h
18975 @@ -137,6 +137,11 @@ static inline notrace unsigned long arch_local_irq_save(void)
18976 swapgs; \
18977 sysretl
18978
18979 +#define GET_CR0_INTO_RDI mov %cr0, %rdi
18980 +#define SET_RDI_INTO_CR0 mov %rdi, %cr0
18981 +#define GET_CR3_INTO_RDI mov %cr3, %rdi
18982 +#define SET_RDI_INTO_CR3 mov %rdi, %cr3
18983 +
18984 #else
18985 #define INTERRUPT_RETURN iret
18986 #define ENABLE_INTERRUPTS_SYSEXIT sti; sysexit
18987 diff --git a/arch/x86/include/asm/kprobes.h b/arch/x86/include/asm/kprobes.h
18988 index 4421b5d..8543006 100644
18989 --- a/arch/x86/include/asm/kprobes.h
18990 +++ b/arch/x86/include/asm/kprobes.h
18991 @@ -37,13 +37,8 @@ typedef u8 kprobe_opcode_t;
18992 #define RELATIVEJUMP_SIZE 5
18993 #define RELATIVECALL_OPCODE 0xe8
18994 #define RELATIVE_ADDR_SIZE 4
18995 -#define MAX_STACK_SIZE 64
18996 -#define MIN_STACK_SIZE(ADDR) \
18997 - (((MAX_STACK_SIZE) < (((unsigned long)current_thread_info()) + \
18998 - THREAD_SIZE - (unsigned long)(ADDR))) \
18999 - ? (MAX_STACK_SIZE) \
19000 - : (((unsigned long)current_thread_info()) + \
19001 - THREAD_SIZE - (unsigned long)(ADDR)))
19002 +#define MAX_STACK_SIZE 64UL
19003 +#define MIN_STACK_SIZE(ADDR) min(MAX_STACK_SIZE, current->thread.sp0 - (unsigned long)(ADDR))
19004
19005 #define flush_insn_slot(p) do { } while (0)
19006
19007 diff --git a/arch/x86/include/asm/local.h b/arch/x86/include/asm/local.h
19008 index 4ad6560..75c7bdd 100644
19009 --- a/arch/x86/include/asm/local.h
19010 +++ b/arch/x86/include/asm/local.h
19011 @@ -10,33 +10,97 @@ typedef struct {
19012 atomic_long_t a;
19013 } local_t;
19014
19015 +typedef struct {
19016 + atomic_long_unchecked_t a;
19017 +} local_unchecked_t;
19018 +
19019 #define LOCAL_INIT(i) { ATOMIC_LONG_INIT(i) }
19020
19021 #define local_read(l) atomic_long_read(&(l)->a)
19022 +#define local_read_unchecked(l) atomic_long_read_unchecked(&(l)->a)
19023 #define local_set(l, i) atomic_long_set(&(l)->a, (i))
19024 +#define local_set_unchecked(l, i) atomic_long_set_unchecked(&(l)->a, (i))
19025
19026 static inline void local_inc(local_t *l)
19027 {
19028 - asm volatile(_ASM_INC "%0"
19029 + asm volatile(_ASM_INC "%0\n"
19030 +
19031 +#ifdef CONFIG_PAX_REFCOUNT
19032 + "jno 0f\n"
19033 + _ASM_DEC "%0\n"
19034 + "int $4\n0:\n"
19035 + _ASM_EXTABLE(0b, 0b)
19036 +#endif
19037 +
19038 + : "+m" (l->a.counter));
19039 +}
19040 +
19041 +static inline void local_inc_unchecked(local_unchecked_t *l)
19042 +{
19043 + asm volatile(_ASM_INC "%0\n"
19044 : "+m" (l->a.counter));
19045 }
19046
19047 static inline void local_dec(local_t *l)
19048 {
19049 - asm volatile(_ASM_DEC "%0"
19050 + asm volatile(_ASM_DEC "%0\n"
19051 +
19052 +#ifdef CONFIG_PAX_REFCOUNT
19053 + "jno 0f\n"
19054 + _ASM_INC "%0\n"
19055 + "int $4\n0:\n"
19056 + _ASM_EXTABLE(0b, 0b)
19057 +#endif
19058 +
19059 + : "+m" (l->a.counter));
19060 +}
19061 +
19062 +static inline void local_dec_unchecked(local_unchecked_t *l)
19063 +{
19064 + asm volatile(_ASM_DEC "%0\n"
19065 : "+m" (l->a.counter));
19066 }
19067
19068 static inline void local_add(long i, local_t *l)
19069 {
19070 - asm volatile(_ASM_ADD "%1,%0"
19071 + asm volatile(_ASM_ADD "%1,%0\n"
19072 +
19073 +#ifdef CONFIG_PAX_REFCOUNT
19074 + "jno 0f\n"
19075 + _ASM_SUB "%1,%0\n"
19076 + "int $4\n0:\n"
19077 + _ASM_EXTABLE(0b, 0b)
19078 +#endif
19079 +
19080 + : "+m" (l->a.counter)
19081 + : "ir" (i));
19082 +}
19083 +
19084 +static inline void local_add_unchecked(long i, local_unchecked_t *l)
19085 +{
19086 + asm volatile(_ASM_ADD "%1,%0\n"
19087 : "+m" (l->a.counter)
19088 : "ir" (i));
19089 }
19090
19091 static inline void local_sub(long i, local_t *l)
19092 {
19093 - asm volatile(_ASM_SUB "%1,%0"
19094 + asm volatile(_ASM_SUB "%1,%0\n"
19095 +
19096 +#ifdef CONFIG_PAX_REFCOUNT
19097 + "jno 0f\n"
19098 + _ASM_ADD "%1,%0\n"
19099 + "int $4\n0:\n"
19100 + _ASM_EXTABLE(0b, 0b)
19101 +#endif
19102 +
19103 + : "+m" (l->a.counter)
19104 + : "ir" (i));
19105 +}
19106 +
19107 +static inline void local_sub_unchecked(long i, local_unchecked_t *l)
19108 +{
19109 + asm volatile(_ASM_SUB "%1,%0\n"
19110 : "+m" (l->a.counter)
19111 : "ir" (i));
19112 }
19113 @@ -52,7 +116,7 @@ static inline void local_sub(long i, local_t *l)
19114 */
19115 static inline int local_sub_and_test(long i, local_t *l)
19116 {
19117 - GEN_BINARY_RMWcc(_ASM_SUB, l->a.counter, "er", i, "%0", "e");
19118 + GEN_BINARY_RMWcc(_ASM_SUB, _ASM_ADD, l->a.counter, "er", i, "%0", "e");
19119 }
19120
19121 /**
19122 @@ -65,7 +129,7 @@ static inline int local_sub_and_test(long i, local_t *l)
19123 */
19124 static inline int local_dec_and_test(local_t *l)
19125 {
19126 - GEN_UNARY_RMWcc(_ASM_DEC, l->a.counter, "%0", "e");
19127 + GEN_UNARY_RMWcc(_ASM_DEC, _ASM_INC, l->a.counter, "%0", "e");
19128 }
19129
19130 /**
19131 @@ -78,7 +142,7 @@ static inline int local_dec_and_test(local_t *l)
19132 */
19133 static inline int local_inc_and_test(local_t *l)
19134 {
19135 - GEN_UNARY_RMWcc(_ASM_INC, l->a.counter, "%0", "e");
19136 + GEN_UNARY_RMWcc(_ASM_INC, _ASM_DEC, l->a.counter, "%0", "e");
19137 }
19138
19139 /**
19140 @@ -92,7 +156,7 @@ static inline int local_inc_and_test(local_t *l)
19141 */
19142 static inline int local_add_negative(long i, local_t *l)
19143 {
19144 - GEN_BINARY_RMWcc(_ASM_ADD, l->a.counter, "er", i, "%0", "s");
19145 + GEN_BINARY_RMWcc(_ASM_ADD, _ASM_SUB, l->a.counter, "er", i, "%0", "s");
19146 }
19147
19148 /**
19149 @@ -105,6 +169,30 @@ static inline int local_add_negative(long i, local_t *l)
19150 static inline long local_add_return(long i, local_t *l)
19151 {
19152 long __i = i;
19153 + asm volatile(_ASM_XADD "%0, %1\n"
19154 +
19155 +#ifdef CONFIG_PAX_REFCOUNT
19156 + "jno 0f\n"
19157 + _ASM_MOV "%0,%1\n"
19158 + "int $4\n0:\n"
19159 + _ASM_EXTABLE(0b, 0b)
19160 +#endif
19161 +
19162 + : "+r" (i), "+m" (l->a.counter)
19163 + : : "memory");
19164 + return i + __i;
19165 +}
19166 +
19167 +/**
19168 + * local_add_return_unchecked - add and return
19169 + * @i: integer value to add
19170 + * @l: pointer to type local_unchecked_t
19171 + *
19172 + * Atomically adds @i to @l and returns @i + @l
19173 + */
19174 +static inline long local_add_return_unchecked(long i, local_unchecked_t *l)
19175 +{
19176 + long __i = i;
19177 asm volatile(_ASM_XADD "%0, %1;"
19178 : "+r" (i), "+m" (l->a.counter)
19179 : : "memory");
19180 @@ -121,6 +209,8 @@ static inline long local_sub_return(long i, local_t *l)
19181
19182 #define local_cmpxchg(l, o, n) \
19183 (cmpxchg_local(&((l)->a.counter), (o), (n)))
19184 +#define local_cmpxchg_unchecked(l, o, n) \
19185 + (cmpxchg_local(&((l)->a.counter), (o), (n)))
19186 /* Always has a lock prefix */
19187 #define local_xchg(l, n) (xchg(&((l)->a.counter), (n)))
19188
19189 diff --git a/arch/x86/include/asm/mman.h b/arch/x86/include/asm/mman.h
19190 new file mode 100644
19191 index 0000000..2bfd3ba
19192 --- /dev/null
19193 +++ b/arch/x86/include/asm/mman.h
19194 @@ -0,0 +1,15 @@
19195 +#ifndef _X86_MMAN_H
19196 +#define _X86_MMAN_H
19197 +
19198 +#include <uapi/asm/mman.h>
19199 +
19200 +#ifdef __KERNEL__
19201 +#ifndef __ASSEMBLY__
19202 +#ifdef CONFIG_X86_32
19203 +#define arch_mmap_check i386_mmap_check
19204 +int i386_mmap_check(unsigned long addr, unsigned long len, unsigned long flags);
19205 +#endif
19206 +#endif
19207 +#endif
19208 +
19209 +#endif /* X86_MMAN_H */
19210 diff --git a/arch/x86/include/asm/mmu.h b/arch/x86/include/asm/mmu.h
19211 index 55234d5..7e3c4bf 100644
19212 --- a/arch/x86/include/asm/mmu.h
19213 +++ b/arch/x86/include/asm/mmu.h
19214 @@ -19,7 +19,19 @@ typedef struct {
19215 #endif
19216
19217 struct mutex lock;
19218 - void __user *vdso;
19219 + unsigned long vdso;
19220 +
19221 +#ifdef CONFIG_X86_32
19222 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
19223 + unsigned long user_cs_base;
19224 + unsigned long user_cs_limit;
19225 +
19226 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_SMP)
19227 + cpumask_t cpu_user_cs_mask;
19228 +#endif
19229 +
19230 +#endif
19231 +#endif
19232
19233 atomic_t perf_rdpmc_allowed; /* nonzero if rdpmc is allowed */
19234 } mm_context_t;
19235 diff --git a/arch/x86/include/asm/mmu_context.h b/arch/x86/include/asm/mmu_context.h
19236 index bfd9b2a..0d64fc2 100644
19237 --- a/arch/x86/include/asm/mmu_context.h
19238 +++ b/arch/x86/include/asm/mmu_context.h
19239 @@ -46,7 +46,7 @@ struct ldt_struct {
19240 * allocations, but it's not worth trying to optimize.
19241 */
19242 struct desc_struct *entries;
19243 - int size;
19244 + unsigned int size;
19245 };
19246
19247 /*
19248 @@ -58,6 +58,23 @@ void destroy_context(struct mm_struct *mm);
19249 static inline int init_new_context(struct task_struct *tsk,
19250 struct mm_struct *mm)
19251 {
19252 + if (tsk == current) {
19253 + mm->context.vdso = 0;
19254 +
19255 +#ifdef CONFIG_X86_32
19256 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
19257 + mm->context.user_cs_base = 0UL;
19258 + mm->context.user_cs_limit = ~0UL;
19259 +
19260 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_SMP)
19261 + cpumask_clear(&mm->context.cpu_user_cs_mask);
19262 +#endif
19263 +
19264 +#endif
19265 +#endif
19266 +
19267 + }
19268 +
19269 return 0;
19270 }
19271 static inline void destroy_context(struct mm_struct *mm) {}
19272 @@ -98,19 +115,84 @@ static inline void load_mm_ldt(struct mm_struct *mm)
19273
19274 static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
19275 {
19276 +
19277 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
19278 + if (!(static_cpu_has(X86_FEATURE_PCIDUDEREF))) {
19279 + unsigned int i;
19280 + pgd_t *pgd;
19281 +
19282 + pax_open_kernel();
19283 + pgd = get_cpu_pgd(smp_processor_id(), kernel);
19284 + for (i = USER_PGD_PTRS; i < 2 * USER_PGD_PTRS; ++i)
19285 + set_pgd_batched(pgd+i, native_make_pgd(0));
19286 + pax_close_kernel();
19287 + }
19288 +#endif
19289 +
19290 #ifdef CONFIG_SMP
19291 if (this_cpu_read(cpu_tlbstate.state) == TLBSTATE_OK)
19292 this_cpu_write(cpu_tlbstate.state, TLBSTATE_LAZY);
19293 #endif
19294 }
19295
19296 +static inline void pax_switch_mm(struct mm_struct *next, unsigned int cpu)
19297 +{
19298 +
19299 +#ifdef CONFIG_PAX_PER_CPU_PGD
19300 + pax_open_kernel();
19301 +
19302 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
19303 + if (static_cpu_has(X86_FEATURE_PCIDUDEREF))
19304 + __clone_user_pgds(get_cpu_pgd(cpu, user), next->pgd);
19305 + else
19306 +#endif
19307 +
19308 + __clone_user_pgds(get_cpu_pgd(cpu, kernel), next->pgd);
19309 +
19310 + __shadow_user_pgds(get_cpu_pgd(cpu, kernel) + USER_PGD_PTRS, next->pgd);
19311 +
19312 + pax_close_kernel();
19313 +
19314 + 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));
19315 +
19316 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
19317 + if (static_cpu_has(X86_FEATURE_PCIDUDEREF)) {
19318 + if (static_cpu_has(X86_FEATURE_INVPCID)) {
19319 + u64 descriptor[2];
19320 + descriptor[0] = PCID_USER;
19321 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_SINGLE_CONTEXT) : "memory");
19322 + if (!static_cpu_has(X86_FEATURE_STRONGUDEREF)) {
19323 + descriptor[0] = PCID_KERNEL;
19324 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_SINGLE_CONTEXT) : "memory");
19325 + }
19326 + } else {
19327 + write_cr3(__pa(get_cpu_pgd(cpu, user)) | PCID_USER);
19328 + if (static_cpu_has(X86_FEATURE_STRONGUDEREF))
19329 + write_cr3(__pa(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL | PCID_NOFLUSH);
19330 + else
19331 + write_cr3(__pa(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL);
19332 + }
19333 + } else
19334 +#endif
19335 +
19336 + load_cr3(get_cpu_pgd(cpu, kernel));
19337 +#endif
19338 +
19339 +}
19340 +
19341 static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
19342 struct task_struct *tsk)
19343 {
19344 unsigned cpu = smp_processor_id();
19345 +#if defined(CONFIG_X86_32) && defined(CONFIG_SMP) && (defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC))
19346 + int tlbstate = TLBSTATE_OK;
19347 +#endif
19348
19349 if (likely(prev != next)) {
19350 #ifdef CONFIG_SMP
19351 +#if defined(CONFIG_X86_32) && (defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC))
19352 + tlbstate = this_cpu_read(cpu_tlbstate.state);
19353 +#endif
19354 this_cpu_write(cpu_tlbstate.state, TLBSTATE_OK);
19355 this_cpu_write(cpu_tlbstate.active_mm, next);
19356 #endif
19357 @@ -129,7 +211,7 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
19358 * We need to prevent an outcome in which CPU 1 observes
19359 * the new PTE value and CPU 0 observes bit 1 clear in
19360 * mm_cpumask. (If that occurs, then the IPI will never
19361 - * be sent, and CPU 0's TLB will contain a stale entry.)
19362 + * be sent, and CPU 1's TLB will contain a stale entry.)
19363 *
19364 * The bad outcome can occur if either CPU's load is
19365 * reordered before that CPU's store, so both CPUs must
19366 @@ -144,7 +226,11 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
19367 * ordering guarantee we need.
19368 *
19369 */
19370 +#ifdef CONFIG_PAX_PER_CPU_PGD
19371 + pax_switch_mm(next, cpu);
19372 +#else
19373 load_cr3(next->pgd);
19374 +#endif
19375
19376 trace_tlb_flush(TLB_FLUSH_ON_TASK_SWITCH, TLB_FLUSH_ALL);
19377
19378 @@ -170,9 +256,31 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
19379 if (unlikely(prev->context.ldt != next->context.ldt))
19380 load_mm_ldt(next);
19381 #endif
19382 +
19383 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_SMP)
19384 + if (!(__supported_pte_mask & _PAGE_NX)) {
19385 + smp_mb__before_atomic();
19386 + cpumask_clear_cpu(cpu, &prev->context.cpu_user_cs_mask);
19387 + smp_mb__after_atomic();
19388 + cpumask_set_cpu(cpu, &next->context.cpu_user_cs_mask);
19389 + }
19390 +#endif
19391 +
19392 +#if defined(CONFIG_X86_32) && (defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC))
19393 + if (unlikely(prev->context.user_cs_base != next->context.user_cs_base ||
19394 + prev->context.user_cs_limit != next->context.user_cs_limit))
19395 + set_user_cs(next->context.user_cs_base, next->context.user_cs_limit, cpu);
19396 +#ifdef CONFIG_SMP
19397 + else if (unlikely(tlbstate != TLBSTATE_OK))
19398 + set_user_cs(next->context.user_cs_base, next->context.user_cs_limit, cpu);
19399 +#endif
19400 +#endif
19401 +
19402 }
19403 + else {
19404 + pax_switch_mm(next, cpu);
19405 +
19406 #ifdef CONFIG_SMP
19407 - else {
19408 this_cpu_write(cpu_tlbstate.state, TLBSTATE_OK);
19409 BUG_ON(this_cpu_read(cpu_tlbstate.active_mm) != next);
19410
19411 @@ -193,13 +301,30 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
19412 * As above, load_cr3() is serializing and orders TLB
19413 * fills with respect to the mm_cpumask write.
19414 */
19415 +
19416 +#ifndef CONFIG_PAX_PER_CPU_PGD
19417 load_cr3(next->pgd);
19418 trace_tlb_flush(TLB_FLUSH_ON_TASK_SWITCH, TLB_FLUSH_ALL);
19419 +#endif
19420 +
19421 load_mm_cr4(next);
19422 load_mm_ldt(next);
19423 +
19424 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC)
19425 + if (!(__supported_pte_mask & _PAGE_NX))
19426 + cpumask_set_cpu(cpu, &next->context.cpu_user_cs_mask);
19427 +#endif
19428 +
19429 +#if defined(CONFIG_X86_32) && (defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC))
19430 +#ifdef CONFIG_PAX_PAGEEXEC
19431 + if (!((next->pax_flags & MF_PAX_PAGEEXEC) && (__supported_pte_mask & _PAGE_NX)))
19432 +#endif
19433 + set_user_cs(next->context.user_cs_base, next->context.user_cs_limit, cpu);
19434 +#endif
19435 +
19436 }
19437 +#endif
19438 }
19439 -#endif
19440 }
19441
19442 #define activate_mm(prev, next) \
19443 diff --git a/arch/x86/include/asm/module.h b/arch/x86/include/asm/module.h
19444 index e3b7819..b257c64 100644
19445 --- a/arch/x86/include/asm/module.h
19446 +++ b/arch/x86/include/asm/module.h
19447 @@ -5,6 +5,7 @@
19448
19449 #ifdef CONFIG_X86_64
19450 /* X86_64 does not define MODULE_PROC_FAMILY */
19451 +#define MODULE_PROC_FAMILY ""
19452 #elif defined CONFIG_M486
19453 #define MODULE_PROC_FAMILY "486 "
19454 #elif defined CONFIG_M586
19455 @@ -57,8 +58,20 @@
19456 #error unknown processor family
19457 #endif
19458
19459 -#ifdef CONFIG_X86_32
19460 -# define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY
19461 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_BTS
19462 +#define MODULE_PAX_KERNEXEC "KERNEXEC_BTS "
19463 +#elif defined(CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR)
19464 +#define MODULE_PAX_KERNEXEC "KERNEXEC_OR "
19465 +#else
19466 +#define MODULE_PAX_KERNEXEC ""
19467 #endif
19468
19469 +#ifdef CONFIG_PAX_MEMORY_UDEREF
19470 +#define MODULE_PAX_UDEREF "UDEREF "
19471 +#else
19472 +#define MODULE_PAX_UDEREF ""
19473 +#endif
19474 +
19475 +#define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY MODULE_PAX_KERNEXEC MODULE_PAX_UDEREF
19476 +
19477 #endif /* _ASM_X86_MODULE_H */
19478 diff --git a/arch/x86/include/asm/nmi.h b/arch/x86/include/asm/nmi.h
19479 index 5f2fc44..106caa6 100644
19480 --- a/arch/x86/include/asm/nmi.h
19481 +++ b/arch/x86/include/asm/nmi.h
19482 @@ -36,26 +36,35 @@ enum {
19483
19484 typedef int (*nmi_handler_t)(unsigned int, struct pt_regs *);
19485
19486 +struct nmiaction;
19487 +
19488 +struct nmiwork {
19489 + const struct nmiaction *action;
19490 + u64 max_duration;
19491 + struct irq_work irq_work;
19492 +};
19493 +
19494 struct nmiaction {
19495 struct list_head list;
19496 nmi_handler_t handler;
19497 - u64 max_duration;
19498 - struct irq_work irq_work;
19499 unsigned long flags;
19500 const char *name;
19501 -};
19502 + struct nmiwork *work;
19503 +} __do_const;
19504
19505 #define register_nmi_handler(t, fn, fg, n, init...) \
19506 ({ \
19507 - static struct nmiaction init fn##_na = { \
19508 + static struct nmiwork fn##_nw; \
19509 + static const struct nmiaction init fn##_na = { \
19510 .handler = (fn), \
19511 .name = (n), \
19512 .flags = (fg), \
19513 + .work = &fn##_nw, \
19514 }; \
19515 __register_nmi_handler((t), &fn##_na); \
19516 })
19517
19518 -int __register_nmi_handler(unsigned int, struct nmiaction *);
19519 +int __register_nmi_handler(unsigned int, const struct nmiaction *);
19520
19521 void unregister_nmi_handler(unsigned int, const char *);
19522
19523 diff --git a/arch/x86/include/asm/page.h b/arch/x86/include/asm/page.h
19524 index 802dde3..9183e68 100644
19525 --- a/arch/x86/include/asm/page.h
19526 +++ b/arch/x86/include/asm/page.h
19527 @@ -52,6 +52,7 @@ static inline void copy_user_page(void *to, void *from, unsigned long vaddr,
19528 __phys_addr_symbol(__phys_reloc_hide((unsigned long)(x)))
19529
19530 #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))
19531 +#define __early_va(x) ((void *)((unsigned long)(x)+__START_KERNEL_map - phys_base))
19532
19533 #define __boot_va(x) __va(x)
19534 #define __boot_pa(x) __pa(x)
19535 @@ -60,11 +61,21 @@ static inline void copy_user_page(void *to, void *from, unsigned long vaddr,
19536 * virt_to_page(kaddr) returns a valid pointer if and only if
19537 * virt_addr_valid(kaddr) returns true.
19538 */
19539 -#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
19540 #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT)
19541 extern bool __virt_addr_valid(unsigned long kaddr);
19542 #define virt_addr_valid(kaddr) __virt_addr_valid((unsigned long) (kaddr))
19543
19544 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
19545 +#define virt_to_page(kaddr) \
19546 + ({ \
19547 + const void *__kaddr = (const void *)(kaddr); \
19548 + BUG_ON(!virt_addr_valid(__kaddr)); \
19549 + pfn_to_page(__pa(__kaddr) >> PAGE_SHIFT); \
19550 + })
19551 +#else
19552 +#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
19553 +#endif
19554 +
19555 #endif /* __ASSEMBLY__ */
19556
19557 #include <asm-generic/memory_model.h>
19558 diff --git a/arch/x86/include/asm/page_32.h b/arch/x86/include/asm/page_32.h
19559 index 904f528..b4d0d24 100644
19560 --- a/arch/x86/include/asm/page_32.h
19561 +++ b/arch/x86/include/asm/page_32.h
19562 @@ -7,11 +7,17 @@
19563
19564 #define __phys_addr_nodebug(x) ((x) - PAGE_OFFSET)
19565 #ifdef CONFIG_DEBUG_VIRTUAL
19566 -extern unsigned long __phys_addr(unsigned long);
19567 +extern unsigned long __intentional_overflow(-1) __phys_addr(unsigned long);
19568 #else
19569 -#define __phys_addr(x) __phys_addr_nodebug(x)
19570 +static inline unsigned long __intentional_overflow(-1) __phys_addr(unsigned long x)
19571 +{
19572 + return __phys_addr_nodebug(x);
19573 +}
19574 #endif
19575 -#define __phys_addr_symbol(x) __phys_addr(x)
19576 +static inline unsigned long __intentional_overflow(-1) __phys_addr_symbol(unsigned long x)
19577 +{
19578 + return __phys_addr(x);
19579 +}
19580 #define __phys_reloc_hide(x) RELOC_HIDE((x), 0)
19581
19582 #ifdef CONFIG_FLATMEM
19583 diff --git a/arch/x86/include/asm/page_64.h b/arch/x86/include/asm/page_64.h
19584 index b3bebf9..cb419e7 100644
19585 --- a/arch/x86/include/asm/page_64.h
19586 +++ b/arch/x86/include/asm/page_64.h
19587 @@ -7,9 +7,9 @@
19588
19589 /* duplicated to the one in bootmem.h */
19590 extern unsigned long max_pfn;
19591 -extern unsigned long phys_base;
19592 +extern const unsigned long phys_base;
19593
19594 -static inline unsigned long __phys_addr_nodebug(unsigned long x)
19595 +static inline unsigned long __intentional_overflow(-1) __phys_addr_nodebug(unsigned long x)
19596 {
19597 unsigned long y = x - __START_KERNEL_map;
19598
19599 @@ -20,12 +20,14 @@ static inline unsigned long __phys_addr_nodebug(unsigned long x)
19600 }
19601
19602 #ifdef CONFIG_DEBUG_VIRTUAL
19603 -extern unsigned long __phys_addr(unsigned long);
19604 -extern unsigned long __phys_addr_symbol(unsigned long);
19605 +extern unsigned long __intentional_overflow(-1) __phys_addr(unsigned long);
19606 +extern unsigned long __intentional_overflow(-1) __phys_addr_symbol(unsigned long);
19607 #else
19608 #define __phys_addr(x) __phys_addr_nodebug(x)
19609 -#define __phys_addr_symbol(x) \
19610 - ((unsigned long)(x) - __START_KERNEL_map + phys_base)
19611 +static inline unsigned long __intentional_overflow(-1) __phys_addr_symbol(unsigned long x)
19612 +{
19613 + return x - __START_KERNEL_map + phys_base;
19614 +}
19615 #endif
19616
19617 #define __phys_reloc_hide(x) (x)
19618 diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
19619 index c759b3c..043875b 100644
19620 --- a/arch/x86/include/asm/paravirt.h
19621 +++ b/arch/x86/include/asm/paravirt.h
19622 @@ -536,7 +536,7 @@ static inline pmd_t __pmd(pmdval_t val)
19623 return (pmd_t) { ret };
19624 }
19625
19626 -static inline pmdval_t pmd_val(pmd_t pmd)
19627 +static inline __intentional_overflow(-1) pmdval_t pmd_val(pmd_t pmd)
19628 {
19629 pmdval_t ret;
19630
19631 @@ -602,6 +602,18 @@ static inline void set_pgd(pgd_t *pgdp, pgd_t pgd)
19632 val);
19633 }
19634
19635 +static inline void set_pgd_batched(pgd_t *pgdp, pgd_t pgd)
19636 +{
19637 + pgdval_t val = native_pgd_val(pgd);
19638 +
19639 + if (sizeof(pgdval_t) > sizeof(long))
19640 + PVOP_VCALL3(pv_mmu_ops.set_pgd_batched, pgdp,
19641 + val, (u64)val >> 32);
19642 + else
19643 + PVOP_VCALL2(pv_mmu_ops.set_pgd_batched, pgdp,
19644 + val);
19645 +}
19646 +
19647 static inline void pgd_clear(pgd_t *pgdp)
19648 {
19649 set_pgd(pgdp, __pgd(0));
19650 @@ -686,6 +698,21 @@ static inline void __set_fixmap(unsigned /* enum fixed_addresses */ idx,
19651 pv_mmu_ops.set_fixmap(idx, phys, flags);
19652 }
19653
19654 +#ifdef CONFIG_PAX_KERNEXEC
19655 +static inline unsigned long pax_open_kernel(void)
19656 +{
19657 + return PVOP_CALL0(unsigned long, pv_mmu_ops.pax_open_kernel);
19658 +}
19659 +
19660 +static inline unsigned long pax_close_kernel(void)
19661 +{
19662 + return PVOP_CALL0(unsigned long, pv_mmu_ops.pax_close_kernel);
19663 +}
19664 +#else
19665 +static inline unsigned long pax_open_kernel(void) { return 0; }
19666 +static inline unsigned long pax_close_kernel(void) { return 0; }
19667 +#endif
19668 +
19669 #if defined(CONFIG_SMP) && defined(CONFIG_PARAVIRT_SPINLOCKS)
19670
19671 #ifdef CONFIG_QUEUED_SPINLOCKS
19672 @@ -909,7 +936,7 @@ extern void default_banner(void);
19673
19674 #define PARA_PATCH(struct, off) ((PARAVIRT_PATCH_##struct + (off)) / 4)
19675 #define PARA_SITE(ptype, clobbers, ops) _PVSITE(ptype, clobbers, ops, .long, 4)
19676 -#define PARA_INDIRECT(addr) *%cs:addr
19677 +#define PARA_INDIRECT(addr) *%ss:addr
19678 #endif
19679
19680 #define INTERRUPT_RETURN \
19681 @@ -979,6 +1006,21 @@ extern void default_banner(void);
19682 PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_usergs_sysret64), \
19683 CLBR_NONE, \
19684 jmp PARA_INDIRECT(pv_cpu_ops+PV_CPU_usergs_sysret64))
19685 +
19686 +#define GET_CR0_INTO_RDI \
19687 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_read_cr0); \
19688 + mov %rax,%rdi
19689 +
19690 +#define SET_RDI_INTO_CR0 \
19691 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_write_cr0)
19692 +
19693 +#define GET_CR3_INTO_RDI \
19694 + call PARA_INDIRECT(pv_mmu_ops+PV_MMU_read_cr3); \
19695 + mov %rax,%rdi
19696 +
19697 +#define SET_RDI_INTO_CR3 \
19698 + call PARA_INDIRECT(pv_mmu_ops+PV_MMU_write_cr3)
19699 +
19700 #endif /* CONFIG_X86_32 */
19701
19702 #endif /* __ASSEMBLY__ */
19703 diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
19704 index 3d44191..1992d40 100644
19705 --- a/arch/x86/include/asm/paravirt_types.h
19706 +++ b/arch/x86/include/asm/paravirt_types.h
19707 @@ -89,7 +89,7 @@ struct pv_init_ops {
19708 */
19709 unsigned (*patch)(u8 type, u16 clobber, void *insnbuf,
19710 unsigned long addr, unsigned len);
19711 -};
19712 +} __no_const __no_randomize_layout;
19713
19714
19715 struct pv_lazy_ops {
19716 @@ -97,12 +97,12 @@ struct pv_lazy_ops {
19717 void (*enter)(void);
19718 void (*leave)(void);
19719 void (*flush)(void);
19720 -};
19721 +} __no_randomize_layout;
19722
19723 struct pv_time_ops {
19724 unsigned long long (*sched_clock)(void);
19725 unsigned long long (*steal_clock)(int cpu);
19726 -};
19727 +} __no_const __no_randomize_layout;
19728
19729 struct pv_cpu_ops {
19730 /* hooks for various privileged instructions */
19731 @@ -195,7 +195,7 @@ struct pv_cpu_ops {
19732
19733 void (*start_context_switch)(struct task_struct *prev);
19734 void (*end_context_switch)(struct task_struct *next);
19735 -};
19736 +} __no_const __no_randomize_layout;
19737
19738 struct pv_irq_ops {
19739 /*
19740 @@ -218,7 +218,7 @@ struct pv_irq_ops {
19741 #ifdef CONFIG_X86_64
19742 void (*adjust_exception_frame)(void);
19743 #endif
19744 -};
19745 +} __no_randomize_layout;
19746
19747 struct pv_apic_ops {
19748 #ifdef CONFIG_X86_LOCAL_APIC
19749 @@ -226,7 +226,7 @@ struct pv_apic_ops {
19750 unsigned long start_eip,
19751 unsigned long start_esp);
19752 #endif
19753 -};
19754 +} __no_const __no_randomize_layout;
19755
19756 struct pv_mmu_ops {
19757 unsigned long (*read_cr2)(void);
19758 @@ -316,6 +316,7 @@ struct pv_mmu_ops {
19759 struct paravirt_callee_save make_pud;
19760
19761 void (*set_pgd)(pgd_t *pudp, pgd_t pgdval);
19762 + void (*set_pgd_batched)(pgd_t *pudp, pgd_t pgdval);
19763 #endif /* CONFIG_PGTABLE_LEVELS == 4 */
19764 #endif /* CONFIG_PGTABLE_LEVELS >= 3 */
19765
19766 @@ -327,7 +328,13 @@ struct pv_mmu_ops {
19767 an mfn. We can tell which is which from the index. */
19768 void (*set_fixmap)(unsigned /* enum fixed_addresses */ idx,
19769 phys_addr_t phys, pgprot_t flags);
19770 -};
19771 +
19772 +#ifdef CONFIG_PAX_KERNEXEC
19773 + unsigned long (*pax_open_kernel)(void);
19774 + unsigned long (*pax_close_kernel)(void);
19775 +#endif
19776 +
19777 +} __no_randomize_layout;
19778
19779 struct arch_spinlock;
19780 #ifdef CONFIG_SMP
19781 @@ -349,11 +356,14 @@ struct pv_lock_ops {
19782 struct paravirt_callee_save lock_spinning;
19783 void (*unlock_kick)(struct arch_spinlock *lock, __ticket_t ticket);
19784 #endif /* !CONFIG_QUEUED_SPINLOCKS */
19785 -};
19786 +} __no_randomize_layout;
19787
19788 /* This contains all the paravirt structures: we get a convenient
19789 * number for each function using the offset which we use to indicate
19790 - * what to patch. */
19791 + * what to patch.
19792 + * shouldn't be randomized due to the "NEAT TRICK" in paravirt.c
19793 + */
19794 +
19795 struct paravirt_patch_template {
19796 struct pv_init_ops pv_init_ops;
19797 struct pv_time_ops pv_time_ops;
19798 @@ -362,7 +372,7 @@ struct paravirt_patch_template {
19799 struct pv_apic_ops pv_apic_ops;
19800 struct pv_mmu_ops pv_mmu_ops;
19801 struct pv_lock_ops pv_lock_ops;
19802 -};
19803 +} __no_randomize_layout;
19804
19805 extern struct pv_info pv_info;
19806 extern struct pv_init_ops pv_init_ops;
19807 diff --git a/arch/x86/include/asm/pgalloc.h b/arch/x86/include/asm/pgalloc.h
19808 index bf7f8b5..ca5799d 100644
19809 --- a/arch/x86/include/asm/pgalloc.h
19810 +++ b/arch/x86/include/asm/pgalloc.h
19811 @@ -63,6 +63,13 @@ static inline void pmd_populate_kernel(struct mm_struct *mm,
19812 pmd_t *pmd, pte_t *pte)
19813 {
19814 paravirt_alloc_pte(mm, __pa(pte) >> PAGE_SHIFT);
19815 + set_pmd(pmd, __pmd(__pa(pte) | _KERNPG_TABLE));
19816 +}
19817 +
19818 +static inline void pmd_populate_user(struct mm_struct *mm,
19819 + pmd_t *pmd, pte_t *pte)
19820 +{
19821 + paravirt_alloc_pte(mm, __pa(pte) >> PAGE_SHIFT);
19822 set_pmd(pmd, __pmd(__pa(pte) | _PAGE_TABLE));
19823 }
19824
19825 @@ -108,12 +115,22 @@ static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd,
19826
19827 #ifdef CONFIG_X86_PAE
19828 extern void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd);
19829 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
19830 +{
19831 + pud_populate(mm, pudp, pmd);
19832 +}
19833 #else /* !CONFIG_X86_PAE */
19834 static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
19835 {
19836 paravirt_alloc_pmd(mm, __pa(pmd) >> PAGE_SHIFT);
19837 set_pud(pud, __pud(_PAGE_TABLE | __pa(pmd)));
19838 }
19839 +
19840 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
19841 +{
19842 + paravirt_alloc_pmd(mm, __pa(pmd) >> PAGE_SHIFT);
19843 + set_pud(pud, __pud(_KERNPG_TABLE | __pa(pmd)));
19844 +}
19845 #endif /* CONFIG_X86_PAE */
19846
19847 #if CONFIG_PGTABLE_LEVELS > 3
19848 @@ -123,6 +140,12 @@ static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pud_t *pud)
19849 set_pgd(pgd, __pgd(_PAGE_TABLE | __pa(pud)));
19850 }
19851
19852 +static inline void pgd_populate_kernel(struct mm_struct *mm, pgd_t *pgd, pud_t *pud)
19853 +{
19854 + paravirt_alloc_pud(mm, __pa(pud) >> PAGE_SHIFT);
19855 + set_pgd(pgd, __pgd(_KERNPG_TABLE | __pa(pud)));
19856 +}
19857 +
19858 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
19859 {
19860 return (pud_t *)get_zeroed_page(GFP_KERNEL|__GFP_REPEAT);
19861 diff --git a/arch/x86/include/asm/pgtable-2level.h b/arch/x86/include/asm/pgtable-2level.h
19862 index fd74a11..35fd5af 100644
19863 --- a/arch/x86/include/asm/pgtable-2level.h
19864 +++ b/arch/x86/include/asm/pgtable-2level.h
19865 @@ -18,7 +18,9 @@ static inline void native_set_pte(pte_t *ptep , pte_t pte)
19866
19867 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
19868 {
19869 + pax_open_kernel();
19870 *pmdp = pmd;
19871 + pax_close_kernel();
19872 }
19873
19874 static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
19875 diff --git a/arch/x86/include/asm/pgtable-3level.h b/arch/x86/include/asm/pgtable-3level.h
19876 index cdaa58c..ae30f0d 100644
19877 --- a/arch/x86/include/asm/pgtable-3level.h
19878 +++ b/arch/x86/include/asm/pgtable-3level.h
19879 @@ -92,12 +92,16 @@ static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
19880
19881 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
19882 {
19883 + pax_open_kernel();
19884 set_64bit((unsigned long long *)(pmdp), native_pmd_val(pmd));
19885 + pax_close_kernel();
19886 }
19887
19888 static inline void native_set_pud(pud_t *pudp, pud_t pud)
19889 {
19890 + pax_open_kernel();
19891 set_64bit((unsigned long long *)(pudp), native_pud_val(pud));
19892 + pax_close_kernel();
19893 }
19894
19895 /*
19896 @@ -116,9 +120,12 @@ static inline void native_pte_clear(struct mm_struct *mm, unsigned long addr,
19897 static inline void native_pmd_clear(pmd_t *pmd)
19898 {
19899 u32 *tmp = (u32 *)pmd;
19900 +
19901 + pax_open_kernel();
19902 *tmp = 0;
19903 smp_wmb();
19904 *(tmp + 1) = 0;
19905 + pax_close_kernel();
19906 }
19907
19908 static inline void pud_clear(pud_t *pudp)
19909 diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
19910 index 6ec0c8b..1e50b49 100644
19911 --- a/arch/x86/include/asm/pgtable.h
19912 +++ b/arch/x86/include/asm/pgtable.h
19913 @@ -54,6 +54,7 @@ extern struct mm_struct *pgd_page_get_mm(struct page *page);
19914
19915 #ifndef __PAGETABLE_PUD_FOLDED
19916 #define set_pgd(pgdp, pgd) native_set_pgd(pgdp, pgd)
19917 +#define set_pgd_batched(pgdp, pgd) native_set_pgd_batched(pgdp, pgd)
19918 #define pgd_clear(pgd) native_pgd_clear(pgd)
19919 #endif
19920
19921 @@ -91,12 +92,53 @@ extern struct mm_struct *pgd_page_get_mm(struct page *page);
19922
19923 #define arch_end_context_switch(prev) do {} while(0)
19924
19925 +#define pax_open_kernel() native_pax_open_kernel()
19926 +#define pax_close_kernel() native_pax_close_kernel()
19927 #endif /* CONFIG_PARAVIRT */
19928
19929 +#define __HAVE_ARCH_PAX_OPEN_KERNEL
19930 +#define __HAVE_ARCH_PAX_CLOSE_KERNEL
19931 +
19932 +#ifdef CONFIG_PAX_KERNEXEC
19933 +static inline unsigned long native_pax_open_kernel(void)
19934 +{
19935 + unsigned long cr0;
19936 +
19937 + preempt_disable();
19938 + barrier();
19939 + cr0 = read_cr0() ^ X86_CR0_WP;
19940 + BUG_ON(cr0 & X86_CR0_WP);
19941 + write_cr0(cr0);
19942 + barrier();
19943 + return cr0 ^ X86_CR0_WP;
19944 +}
19945 +
19946 +static inline unsigned long native_pax_close_kernel(void)
19947 +{
19948 + unsigned long cr0;
19949 +
19950 + barrier();
19951 + cr0 = read_cr0() ^ X86_CR0_WP;
19952 + BUG_ON(!(cr0 & X86_CR0_WP));
19953 + write_cr0(cr0);
19954 + barrier();
19955 + preempt_enable_no_resched();
19956 + return cr0 ^ X86_CR0_WP;
19957 +}
19958 +#else
19959 +static inline unsigned long native_pax_open_kernel(void) { return 0; }
19960 +static inline unsigned long native_pax_close_kernel(void) { return 0; }
19961 +#endif
19962 +
19963 /*
19964 * The following only work if pte_present() is true.
19965 * Undefined behaviour if not..
19966 */
19967 +static inline int pte_user(pte_t pte)
19968 +{
19969 + return pte_val(pte) & _PAGE_USER;
19970 +}
19971 +
19972 static inline int pte_dirty(pte_t pte)
19973 {
19974 return pte_flags(pte) & _PAGE_DIRTY;
19975 @@ -157,6 +199,11 @@ static inline unsigned long pud_pfn(pud_t pud)
19976 return (pud_val(pud) & pud_pfn_mask(pud)) >> PAGE_SHIFT;
19977 }
19978
19979 +static inline unsigned long pgd_pfn(pgd_t pgd)
19980 +{
19981 + return (pgd_val(pgd) & PTE_PFN_MASK) >> PAGE_SHIFT;
19982 +}
19983 +
19984 #define pte_page(pte) pfn_to_page(pte_pfn(pte))
19985
19986 static inline int pmd_large(pmd_t pte)
19987 @@ -210,9 +257,29 @@ static inline pte_t pte_wrprotect(pte_t pte)
19988 return pte_clear_flags(pte, _PAGE_RW);
19989 }
19990
19991 +static inline pte_t pte_mkread(pte_t pte)
19992 +{
19993 + return __pte(pte_val(pte) | _PAGE_USER);
19994 +}
19995 +
19996 static inline pte_t pte_mkexec(pte_t pte)
19997 {
19998 - return pte_clear_flags(pte, _PAGE_NX);
19999 +#ifdef CONFIG_X86_PAE
20000 + if (__supported_pte_mask & _PAGE_NX)
20001 + return pte_clear_flags(pte, _PAGE_NX);
20002 + else
20003 +#endif
20004 + return pte_set_flags(pte, _PAGE_USER);
20005 +}
20006 +
20007 +static inline pte_t pte_exprotect(pte_t pte)
20008 +{
20009 +#ifdef CONFIG_X86_PAE
20010 + if (__supported_pte_mask & _PAGE_NX)
20011 + return pte_set_flags(pte, _PAGE_NX);
20012 + else
20013 +#endif
20014 + return pte_clear_flags(pte, _PAGE_USER);
20015 }
20016
20017 static inline pte_t pte_mkdirty(pte_t pte)
20018 @@ -445,6 +512,16 @@ pte_t *populate_extra_pte(unsigned long vaddr);
20019 #endif
20020
20021 #ifndef __ASSEMBLY__
20022 +
20023 +#ifdef CONFIG_PAX_PER_CPU_PGD
20024 +extern pgd_t cpu_pgd[NR_CPUS][2][PTRS_PER_PGD];
20025 +enum cpu_pgd_type {kernel = 0, user = 1};
20026 +static inline pgd_t *get_cpu_pgd(unsigned int cpu, enum cpu_pgd_type type)
20027 +{
20028 + return cpu_pgd[cpu][type];
20029 +}
20030 +#endif
20031 +
20032 #include <linux/mm_types.h>
20033 #include <linux/mmdebug.h>
20034 #include <linux/log2.h>
20035 @@ -638,7 +715,7 @@ static inline unsigned long pgd_page_vaddr(pgd_t pgd)
20036 * Currently stuck as a macro due to indirect forward reference to
20037 * linux/mmzone.h's __section_mem_map_addr() definition:
20038 */
20039 -#define pgd_page(pgd) pfn_to_page(pgd_val(pgd) >> PAGE_SHIFT)
20040 +#define pgd_page(pgd) pfn_to_page((pgd_val(pgd) & PTE_PFN_MASK) >> PAGE_SHIFT)
20041
20042 /* to find an entry in a page-table-directory. */
20043 static inline unsigned long pud_index(unsigned long address)
20044 @@ -653,7 +730,7 @@ static inline pud_t *pud_offset(pgd_t *pgd, unsigned long address)
20045
20046 static inline int pgd_bad(pgd_t pgd)
20047 {
20048 - return (pgd_flags(pgd) & ~_PAGE_USER) != _KERNPG_TABLE;
20049 + return (pgd_flags(pgd) & ~(_PAGE_USER | _PAGE_NX)) != _KERNPG_TABLE;
20050 }
20051
20052 static inline int pgd_none(pgd_t pgd)
20053 @@ -676,7 +753,12 @@ static inline int pgd_none(pgd_t pgd)
20054 * pgd_offset() returns a (pgd_t *)
20055 * pgd_index() is used get the offset into the pgd page's array of pgd_t's;
20056 */
20057 -#define pgd_offset(mm, address) ((mm)->pgd + pgd_index((address)))
20058 +#define pgd_offset(mm, address) ((mm)->pgd + pgd_index(address))
20059 +
20060 +#ifdef CONFIG_PAX_PER_CPU_PGD
20061 +#define pgd_offset_cpu(cpu, type, address) (get_cpu_pgd(cpu, type) + pgd_index(address))
20062 +#endif
20063 +
20064 /*
20065 * a shortcut which implies the use of the kernel's pgd, instead
20066 * of a process's
20067 @@ -687,6 +769,25 @@ static inline int pgd_none(pgd_t pgd)
20068 #define KERNEL_PGD_BOUNDARY pgd_index(PAGE_OFFSET)
20069 #define KERNEL_PGD_PTRS (PTRS_PER_PGD - KERNEL_PGD_BOUNDARY)
20070
20071 +#ifdef CONFIG_X86_32
20072 +#define USER_PGD_PTRS KERNEL_PGD_BOUNDARY
20073 +#else
20074 +#define TASK_SIZE_MAX_SHIFT CONFIG_TASK_SIZE_MAX_SHIFT
20075 +#define USER_PGD_PTRS (_AC(1,UL) << (TASK_SIZE_MAX_SHIFT - PGDIR_SHIFT))
20076 +
20077 +#ifdef CONFIG_PAX_MEMORY_UDEREF
20078 +#ifdef __ASSEMBLY__
20079 +#define pax_user_shadow_base pax_user_shadow_base(%rip)
20080 +#else
20081 +extern unsigned long pax_user_shadow_base;
20082 +extern pgdval_t clone_pgd_mask;
20083 +#endif
20084 +#else
20085 +#define pax_user_shadow_base (0UL)
20086 +#endif
20087 +
20088 +#endif
20089 +
20090 #ifndef __ASSEMBLY__
20091
20092 extern int direct_gbpages;
20093 @@ -853,11 +954,24 @@ static inline void pmdp_set_wrprotect(struct mm_struct *mm,
20094 * dst and src can be on the same page, but the range must not overlap,
20095 * and must not cross a page boundary.
20096 */
20097 -static inline void clone_pgd_range(pgd_t *dst, pgd_t *src, int count)
20098 +static inline void clone_pgd_range(pgd_t *dst, const pgd_t *src, int count)
20099 {
20100 - memcpy(dst, src, count * sizeof(pgd_t));
20101 + pax_open_kernel();
20102 + while (count--)
20103 + *dst++ = *src++;
20104 + pax_close_kernel();
20105 }
20106
20107 +#ifdef CONFIG_PAX_PER_CPU_PGD
20108 +extern void __clone_user_pgds(pgd_t *dst, const pgd_t *src);
20109 +#endif
20110 +
20111 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
20112 +extern void __shadow_user_pgds(pgd_t *dst, const pgd_t *src);
20113 +#else
20114 +static inline void __shadow_user_pgds(pgd_t *dst, const pgd_t *src) {}
20115 +#endif
20116 +
20117 #define PTE_SHIFT ilog2(PTRS_PER_PTE)
20118 static inline int page_level_shift(enum pg_level level)
20119 {
20120 diff --git a/arch/x86/include/asm/pgtable_32.h b/arch/x86/include/asm/pgtable_32.h
20121 index b6c0b40..3535d47 100644
20122 --- a/arch/x86/include/asm/pgtable_32.h
20123 +++ b/arch/x86/include/asm/pgtable_32.h
20124 @@ -25,9 +25,6 @@
20125 struct mm_struct;
20126 struct vm_area_struct;
20127
20128 -extern pgd_t swapper_pg_dir[1024];
20129 -extern pgd_t initial_page_table[1024];
20130 -
20131 static inline void pgtable_cache_init(void) { }
20132 static inline void check_pgt_cache(void) { }
20133 void paging_init(void);
20134 @@ -45,6 +42,12 @@ void paging_init(void);
20135 # include <asm/pgtable-2level.h>
20136 #endif
20137
20138 +extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
20139 +extern pgd_t initial_page_table[PTRS_PER_PGD];
20140 +#ifdef CONFIG_X86_PAE
20141 +extern pmd_t swapper_pm_dir[PTRS_PER_PGD][PTRS_PER_PMD];
20142 +#endif
20143 +
20144 #if defined(CONFIG_HIGHPTE)
20145 #define pte_offset_map(dir, address) \
20146 ((pte_t *)kmap_atomic(pmd_page(*(dir))) + \
20147 @@ -59,12 +62,17 @@ void paging_init(void);
20148 /* Clear a kernel PTE and flush it from the TLB */
20149 #define kpte_clear_flush(ptep, vaddr) \
20150 do { \
20151 + pax_open_kernel(); \
20152 pte_clear(&init_mm, (vaddr), (ptep)); \
20153 + pax_close_kernel(); \
20154 __flush_tlb_one((vaddr)); \
20155 } while (0)
20156
20157 #endif /* !__ASSEMBLY__ */
20158
20159 +#define HAVE_ARCH_UNMAPPED_AREA
20160 +#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN
20161 +
20162 /*
20163 * kern_addr_valid() is (1) for FLATMEM and (0) for
20164 * SPARSEMEM and DISCONTIGMEM
20165 diff --git a/arch/x86/include/asm/pgtable_32_types.h b/arch/x86/include/asm/pgtable_32_types.h
20166 index 9fb2f2b..8e18c70 100644
20167 --- a/arch/x86/include/asm/pgtable_32_types.h
20168 +++ b/arch/x86/include/asm/pgtable_32_types.h
20169 @@ -8,7 +8,7 @@
20170 */
20171 #ifdef CONFIG_X86_PAE
20172 # include <asm/pgtable-3level_types.h>
20173 -# define PMD_SIZE (1UL << PMD_SHIFT)
20174 +# define PMD_SIZE (_AC(1, UL) << PMD_SHIFT)
20175 # define PMD_MASK (~(PMD_SIZE - 1))
20176 #else
20177 # include <asm/pgtable-2level_types.h>
20178 @@ -46,6 +46,28 @@ extern bool __vmalloc_start_set; /* set once high_memory is set */
20179 # define VMALLOC_END (FIXADDR_START - 2 * PAGE_SIZE)
20180 #endif
20181
20182 +#ifdef CONFIG_PAX_KERNEXEC
20183 +#ifndef __ASSEMBLY__
20184 +extern unsigned char MODULES_EXEC_VADDR[];
20185 +extern unsigned char MODULES_EXEC_END[];
20186 +
20187 +extern unsigned char __LOAD_PHYSICAL_ADDR[];
20188 +#define LOAD_PHYSICAL_ADDR ((unsigned long)__LOAD_PHYSICAL_ADDR)
20189 +static inline unsigned long __intentional_overflow(-1) ktla_ktva(unsigned long addr)
20190 +{
20191 + return addr + LOAD_PHYSICAL_ADDR + PAGE_OFFSET;
20192 +
20193 +}
20194 +static inline unsigned long __intentional_overflow(-1) ktva_ktla(unsigned long addr)
20195 +{
20196 + return addr - LOAD_PHYSICAL_ADDR - PAGE_OFFSET;
20197 +}
20198 +#endif
20199 +#else
20200 +#define ktla_ktva(addr) (addr)
20201 +#define ktva_ktla(addr) (addr)
20202 +#endif
20203 +
20204 #define MODULES_VADDR VMALLOC_START
20205 #define MODULES_END VMALLOC_END
20206 #define MODULES_LEN (MODULES_VADDR - MODULES_END)
20207 diff --git a/arch/x86/include/asm/pgtable_64.h b/arch/x86/include/asm/pgtable_64.h
20208 index 2ee7811..afd76c0 100644
20209 --- a/arch/x86/include/asm/pgtable_64.h
20210 +++ b/arch/x86/include/asm/pgtable_64.h
20211 @@ -16,11 +16,17 @@
20212
20213 extern pud_t level3_kernel_pgt[512];
20214 extern pud_t level3_ident_pgt[512];
20215 +extern pud_t level3_vmalloc_start_pgt[512];
20216 +extern pud_t level3_vmalloc_end_pgt[512];
20217 +extern pud_t level3_vmemmap_pgt[512];
20218 +extern pud_t level2_vmemmap_pgt[512];
20219 extern pmd_t level2_kernel_pgt[512];
20220 extern pmd_t level2_fixmap_pgt[512];
20221 -extern pmd_t level2_ident_pgt[512];
20222 -extern pte_t level1_fixmap_pgt[512];
20223 -extern pgd_t init_level4_pgt[];
20224 +extern pmd_t level2_ident_pgt[2][512];
20225 +extern pte_t level1_modules_pgt[4][512];
20226 +extern pte_t level1_fixmap_pgt[3][512];
20227 +extern pte_t level1_vsyscall_pgt[512];
20228 +extern pgd_t init_level4_pgt[512];
20229
20230 #define swapper_pg_dir init_level4_pgt
20231
20232 @@ -62,7 +68,9 @@ static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
20233
20234 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
20235 {
20236 + pax_open_kernel();
20237 *pmdp = pmd;
20238 + pax_close_kernel();
20239 }
20240
20241 static inline void native_pmd_clear(pmd_t *pmd)
20242 @@ -98,7 +106,9 @@ static inline pmd_t native_pmdp_get_and_clear(pmd_t *xp)
20243
20244 static inline void native_set_pud(pud_t *pudp, pud_t pud)
20245 {
20246 + pax_open_kernel();
20247 *pudp = pud;
20248 + pax_close_kernel();
20249 }
20250
20251 static inline void native_pud_clear(pud_t *pud)
20252 @@ -108,6 +118,13 @@ static inline void native_pud_clear(pud_t *pud)
20253
20254 static inline void native_set_pgd(pgd_t *pgdp, pgd_t pgd)
20255 {
20256 + pax_open_kernel();
20257 + *pgdp = pgd;
20258 + pax_close_kernel();
20259 +}
20260 +
20261 +static inline void native_set_pgd_batched(pgd_t *pgdp, pgd_t pgd)
20262 +{
20263 *pgdp = pgd;
20264 }
20265
20266 diff --git a/arch/x86/include/asm/pgtable_64_types.h b/arch/x86/include/asm/pgtable_64_types.h
20267 index e6844df..432b56e 100644
20268 --- a/arch/x86/include/asm/pgtable_64_types.h
20269 +++ b/arch/x86/include/asm/pgtable_64_types.h
20270 @@ -60,11 +60,16 @@ typedef struct { pteval_t pte; } pte_t;
20271 #define MODULES_VADDR (__START_KERNEL_map + KERNEL_IMAGE_SIZE)
20272 #define MODULES_END _AC(0xffffffffff000000, UL)
20273 #define MODULES_LEN (MODULES_END - MODULES_VADDR)
20274 +#define MODULES_EXEC_VADDR MODULES_VADDR
20275 +#define MODULES_EXEC_END MODULES_END
20276 #define ESPFIX_PGD_ENTRY _AC(-2, UL)
20277 #define ESPFIX_BASE_ADDR (ESPFIX_PGD_ENTRY << PGDIR_SHIFT)
20278 #define EFI_VA_START ( -4 * (_AC(1, UL) << 30))
20279 #define EFI_VA_END (-68 * (_AC(1, UL) << 30))
20280
20281 +#define ktla_ktva(addr) (addr)
20282 +#define ktva_ktla(addr) (addr)
20283 +
20284 #define EARLY_DYNAMIC_PAGE_TABLES 64
20285
20286 #endif /* _ASM_X86_PGTABLE_64_DEFS_H */
20287 diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h
20288 index 79c9185..d1e3128 100644
20289 --- a/arch/x86/include/asm/pgtable_types.h
20290 +++ b/arch/x86/include/asm/pgtable_types.h
20291 @@ -85,8 +85,10 @@
20292
20293 #if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
20294 #define _PAGE_NX (_AT(pteval_t, 1) << _PAGE_BIT_NX)
20295 -#else
20296 +#elif defined(CONFIG_KMEMCHECK) || defined(CONFIG_MEM_SOFT_DIRTY)
20297 #define _PAGE_NX (_AT(pteval_t, 0))
20298 +#else
20299 +#define _PAGE_NX (_AT(pteval_t, 1) << _PAGE_BIT_HIDDEN)
20300 #endif
20301
20302 #define _PAGE_PROTNONE (_AT(pteval_t, 1) << _PAGE_BIT_PROTNONE)
20303 @@ -141,6 +143,9 @@ enum page_cache_mode {
20304 #define PAGE_READONLY_EXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \
20305 _PAGE_ACCESSED)
20306
20307 +#define PAGE_READONLY_NOEXEC PAGE_READONLY
20308 +#define PAGE_SHARED_NOEXEC PAGE_SHARED
20309 +
20310 #define __PAGE_KERNEL_EXEC \
20311 (_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_GLOBAL)
20312 #define __PAGE_KERNEL (__PAGE_KERNEL_EXEC | _PAGE_NX)
20313 @@ -148,7 +153,7 @@ enum page_cache_mode {
20314 #define __PAGE_KERNEL_RO (__PAGE_KERNEL & ~_PAGE_RW)
20315 #define __PAGE_KERNEL_RX (__PAGE_KERNEL_EXEC & ~_PAGE_RW)
20316 #define __PAGE_KERNEL_NOCACHE (__PAGE_KERNEL | _PAGE_NOCACHE)
20317 -#define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RX | _PAGE_USER)
20318 +#define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RO | _PAGE_USER)
20319 #define __PAGE_KERNEL_VVAR (__PAGE_KERNEL_RO | _PAGE_USER)
20320 #define __PAGE_KERNEL_LARGE (__PAGE_KERNEL | _PAGE_PSE)
20321 #define __PAGE_KERNEL_LARGE_EXEC (__PAGE_KERNEL_EXEC | _PAGE_PSE)
20322 @@ -194,7 +199,7 @@ enum page_cache_mode {
20323 #ifdef CONFIG_X86_64
20324 #define __PAGE_KERNEL_IDENT_LARGE_EXEC __PAGE_KERNEL_LARGE_EXEC
20325 #else
20326 -#define PTE_IDENT_ATTR 0x003 /* PRESENT+RW */
20327 +#define PTE_IDENT_ATTR 0x063 /* PRESENT+RW+DIRTY+ACCESSED */
20328 #define PDE_IDENT_ATTR 0x063 /* PRESENT+RW+DIRTY+ACCESSED */
20329 #define PGD_IDENT_ATTR 0x001 /* PRESENT (no other attributes) */
20330 #endif
20331 @@ -233,7 +238,17 @@ static inline pgdval_t pgd_flags(pgd_t pgd)
20332 {
20333 return native_pgd_val(pgd) & PTE_FLAGS_MASK;
20334 }
20335 +#endif
20336
20337 +#if CONFIG_PGTABLE_LEVELS == 3
20338 +#include <asm-generic/pgtable-nopud.h>
20339 +#endif
20340 +
20341 +#if CONFIG_PGTABLE_LEVELS == 2
20342 +#include <asm-generic/pgtable-nopmd.h>
20343 +#endif
20344 +
20345 +#ifndef __ASSEMBLY__
20346 #if CONFIG_PGTABLE_LEVELS > 3
20347 typedef struct { pudval_t pud; } pud_t;
20348
20349 @@ -247,8 +262,6 @@ static inline pudval_t native_pud_val(pud_t pud)
20350 return pud.pud;
20351 }
20352 #else
20353 -#include <asm-generic/pgtable-nopud.h>
20354 -
20355 static inline pudval_t native_pud_val(pud_t pud)
20356 {
20357 return native_pgd_val(pud.pgd);
20358 @@ -268,8 +281,6 @@ static inline pmdval_t native_pmd_val(pmd_t pmd)
20359 return pmd.pmd;
20360 }
20361 #else
20362 -#include <asm-generic/pgtable-nopmd.h>
20363 -
20364 static inline pmdval_t native_pmd_val(pmd_t pmd)
20365 {
20366 return native_pgd_val(pmd.pud.pgd);
20367 @@ -386,7 +397,6 @@ typedef struct page *pgtable_t;
20368
20369 extern pteval_t __supported_pte_mask;
20370 extern void set_nx(void);
20371 -extern int nx_enabled;
20372
20373 #define pgprot_writecombine pgprot_writecombine
20374 extern pgprot_t pgprot_writecombine(pgprot_t prot);
20375 diff --git a/arch/x86/include/asm/pmem.h b/arch/x86/include/asm/pmem.h
20376 index d8ce3ec..96b12e2 100644
20377 --- a/arch/x86/include/asm/pmem.h
20378 +++ b/arch/x86/include/asm/pmem.h
20379 @@ -41,7 +41,7 @@ static inline void arch_memcpy_to_pmem(void __pmem *dst, const void *src,
20380 * before the WARN+BUG.
20381 */
20382 unwritten = __copy_from_user_inatomic_nocache((void __force *) dst,
20383 - (void __user *) src, n);
20384 + (void __force_user *) src, n);
20385 if (WARN(unwritten, "%s: fault copying %p <- %p unwritten: %d\n",
20386 __func__, dst, src, unwritten))
20387 BUG();
20388 diff --git a/arch/x86/include/asm/preempt.h b/arch/x86/include/asm/preempt.h
20389 index 01bcde8..a6f1377 100644
20390 --- a/arch/x86/include/asm/preempt.h
20391 +++ b/arch/x86/include/asm/preempt.h
20392 @@ -81,7 +81,7 @@ static __always_inline void __preempt_count_sub(int val)
20393 */
20394 static __always_inline bool __preempt_count_dec_and_test(void)
20395 {
20396 - GEN_UNARY_RMWcc("decl", __preempt_count, __percpu_arg(0), "e");
20397 + GEN_UNARY_RMWcc("decl", "incl", __preempt_count, __percpu_arg(0), "e");
20398 }
20399
20400 /*
20401 diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
20402 index 2d5a50c..9fc95aaf 100644
20403 --- a/arch/x86/include/asm/processor.h
20404 +++ b/arch/x86/include/asm/processor.h
20405 @@ -136,7 +136,7 @@ struct cpuinfo_x86 {
20406 /* Index into per_cpu list: */
20407 u16 cpu_index;
20408 u32 microcode;
20409 -};
20410 +} __randomize_layout;
20411
20412 #define X86_VENDOR_INTEL 0
20413 #define X86_VENDOR_CYRIX 1
20414 @@ -206,9 +206,21 @@ static inline void native_cpuid(unsigned int *eax, unsigned int *ebx,
20415 : "memory");
20416 }
20417
20418 +/* invpcid (%rdx),%rax */
20419 +#define __ASM_INVPCID ".byte 0x66,0x0f,0x38,0x82,0x02"
20420 +
20421 +#define INVPCID_SINGLE_ADDRESS 0UL
20422 +#define INVPCID_SINGLE_CONTEXT 1UL
20423 +#define INVPCID_ALL_GLOBAL 2UL
20424 +#define INVPCID_ALL_NONGLOBAL 3UL
20425 +
20426 +#define PCID_KERNEL 0UL
20427 +#define PCID_USER 1UL
20428 +#define PCID_NOFLUSH (1UL << 63)
20429 +
20430 static inline void load_cr3(pgd_t *pgdir)
20431 {
20432 - write_cr3(__pa(pgdir));
20433 + write_cr3(__pa(pgdir) | PCID_KERNEL);
20434 }
20435
20436 #ifdef CONFIG_X86_32
20437 @@ -305,11 +317,9 @@ struct tss_struct {
20438
20439 } ____cacheline_aligned;
20440
20441 -DECLARE_PER_CPU_SHARED_ALIGNED(struct tss_struct, cpu_tss);
20442 +extern struct tss_struct cpu_tss[NR_CPUS];
20443
20444 -#ifdef CONFIG_X86_32
20445 DECLARE_PER_CPU(unsigned long, cpu_current_top_of_stack);
20446 -#endif
20447
20448 /*
20449 * Save the original ist values for checking stack pointers during debugging
20450 @@ -381,6 +391,7 @@ struct thread_struct {
20451 unsigned short ds;
20452 unsigned short fsindex;
20453 unsigned short gsindex;
20454 + unsigned short ss;
20455 #endif
20456 #ifdef CONFIG_X86_32
20457 unsigned long ip;
20458 @@ -390,6 +401,9 @@ struct thread_struct {
20459 #endif
20460 unsigned long gs;
20461
20462 + /* Floating point and extended processor state */
20463 + struct fpu fpu;
20464 +
20465 /* Save middle states of ptrace breakpoints */
20466 struct perf_event *ptrace_bps[HBP_NUM];
20467 /* Debug status used for traps, single steps, etc... */
20468 @@ -409,13 +423,6 @@ struct thread_struct {
20469 unsigned long iopl;
20470 /* Max allowed port in the bitmap, in bytes: */
20471 unsigned io_bitmap_max;
20472 -
20473 - /* Floating point and extended processor state */
20474 - struct fpu fpu;
20475 - /*
20476 - * WARNING: 'fpu' is dynamically-sized. It *MUST* be at
20477 - * the end.
20478 - */
20479 };
20480
20481 /*
20482 @@ -457,10 +464,10 @@ static inline void native_swapgs(void)
20483 #endif
20484 }
20485
20486 -static inline unsigned long current_top_of_stack(void)
20487 +static inline unsigned long current_top_of_stack(unsigned int cpu)
20488 {
20489 #ifdef CONFIG_X86_64
20490 - return this_cpu_read_stable(cpu_tss.x86_tss.sp0);
20491 + return cpu_tss[cpu].x86_tss.sp0;
20492 #else
20493 /* sp0 on x86_32 is special in and around vm86 mode. */
20494 return this_cpu_read_stable(cpu_current_top_of_stack);
20495 @@ -696,19 +703,29 @@ static inline void spin_lock_prefetch(const void *x)
20496 #define TOP_OF_INIT_STACK ((unsigned long)&init_stack + sizeof(init_stack) - \
20497 TOP_OF_KERNEL_STACK_PADDING)
20498
20499 +extern union fpregs_state init_fpregs_state;
20500 +
20501 #ifdef CONFIG_X86_32
20502 /*
20503 * User space process size: 3GB (default).
20504 */
20505 #define TASK_SIZE PAGE_OFFSET
20506 #define TASK_SIZE_MAX TASK_SIZE
20507 +
20508 +#ifdef CONFIG_PAX_SEGMEXEC
20509 +#define SEGMEXEC_TASK_SIZE (TASK_SIZE / 2)
20510 +#define STACK_TOP ((current->mm->pax_flags & MF_PAX_SEGMEXEC)?SEGMEXEC_TASK_SIZE:TASK_SIZE)
20511 +#else
20512 #define STACK_TOP TASK_SIZE
20513 -#define STACK_TOP_MAX STACK_TOP
20514 +#endif
20515 +
20516 +#define STACK_TOP_MAX TASK_SIZE
20517
20518 #define INIT_THREAD { \
20519 .sp0 = TOP_OF_INIT_STACK, \
20520 .sysenter_cs = __KERNEL_CS, \
20521 .io_bitmap_ptr = NULL, \
20522 + .fpu.state = &init_fpregs_state, \
20523 }
20524
20525 extern unsigned long thread_saved_pc(struct task_struct *tsk);
20526 @@ -723,12 +740,7 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
20527 * "struct pt_regs" is possible, but they may contain the
20528 * completely wrong values.
20529 */
20530 -#define task_pt_regs(task) \
20531 -({ \
20532 - unsigned long __ptr = (unsigned long)task_stack_page(task); \
20533 - __ptr += THREAD_SIZE - TOP_OF_KERNEL_STACK_PADDING; \
20534 - ((struct pt_regs *)__ptr) - 1; \
20535 -})
20536 +#define task_pt_regs(tsk) ((struct pt_regs *)(tsk)->thread.sp0 - 1)
20537
20538 #define KSTK_ESP(task) (task_pt_regs(task)->sp)
20539
20540 @@ -742,13 +754,13 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
20541 * particular problem by preventing anything from being mapped
20542 * at the maximum canonical address.
20543 */
20544 -#define TASK_SIZE_MAX ((1UL << 47) - PAGE_SIZE)
20545 +#define TASK_SIZE_MAX ((1UL << TASK_SIZE_MAX_SHIFT) - PAGE_SIZE)
20546
20547 /* This decides where the kernel will search for a free chunk of vm
20548 * space during mmap's.
20549 */
20550 #define IA32_PAGE_OFFSET ((current->personality & ADDR_LIMIT_3GB) ? \
20551 - 0xc0000000 : 0xFFFFe000)
20552 + 0xc0000000 : 0xFFFFf000)
20553
20554 #define TASK_SIZE (test_thread_flag(TIF_ADDR32) ? \
20555 IA32_PAGE_OFFSET : TASK_SIZE_MAX)
20556 @@ -759,7 +771,8 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
20557 #define STACK_TOP_MAX TASK_SIZE_MAX
20558
20559 #define INIT_THREAD { \
20560 - .sp0 = TOP_OF_INIT_STACK \
20561 + .sp0 = TOP_OF_INIT_STACK, \
20562 + .fpu.state = &init_fpregs_state, \
20563 }
20564
20565 /*
20566 @@ -782,6 +795,10 @@ extern void start_thread(struct pt_regs *regs, unsigned long new_ip,
20567 */
20568 #define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3))
20569
20570 +#ifdef CONFIG_PAX_SEGMEXEC
20571 +#define SEGMEXEC_TASK_UNMAPPED_BASE (PAGE_ALIGN(SEGMEXEC_TASK_SIZE / 3))
20572 +#endif
20573 +
20574 #define KSTK_EIP(task) (task_pt_regs(task)->ip)
20575
20576 /* Get/set a process' ability to use the timestamp counter instruction */
20577 @@ -827,7 +844,7 @@ static inline uint32_t hypervisor_cpuid_base(const char *sig, uint32_t leaves)
20578 return 0;
20579 }
20580
20581 -extern unsigned long arch_align_stack(unsigned long sp);
20582 +#define arch_align_stack(x) ((x) & ~0xfUL)
20583 extern void free_init_pages(char *what, unsigned long begin, unsigned long end);
20584
20585 void default_idle(void);
20586 @@ -837,6 +854,6 @@ bool xen_set_default_idle(void);
20587 #define xen_set_default_idle 0
20588 #endif
20589
20590 -void stop_this_cpu(void *dummy);
20591 +void stop_this_cpu(void *dummy) __noreturn;
20592 void df_debug(struct pt_regs *regs, long error_code);
20593 #endif /* _ASM_X86_PROCESSOR_H */
20594 diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h
20595 index 6271281..eab16e0 100644
20596 --- a/arch/x86/include/asm/ptrace.h
20597 +++ b/arch/x86/include/asm/ptrace.h
20598 @@ -87,8 +87,6 @@ extern unsigned long syscall_trace_enter_phase1(struct pt_regs *, u32 arch);
20599 extern long syscall_trace_enter_phase2(struct pt_regs *, u32 arch,
20600 unsigned long phase1_result);
20601
20602 -extern long syscall_trace_enter(struct pt_regs *);
20603 -
20604 static inline unsigned long regs_return_value(struct pt_regs *regs)
20605 {
20606 return regs->ax;
20607 @@ -124,15 +122,16 @@ static inline int v8086_mode(struct pt_regs *regs)
20608 #ifdef CONFIG_X86_64
20609 static inline bool user_64bit_mode(struct pt_regs *regs)
20610 {
20611 + unsigned long cs = regs->cs & 0xffff;
20612 #ifndef CONFIG_PARAVIRT
20613 /*
20614 * On non-paravirt systems, this is the only long mode CPL 3
20615 * selector. We do not allow long mode selectors in the LDT.
20616 */
20617 - return regs->cs == __USER_CS;
20618 + return cs == __USER_CS;
20619 #else
20620 /* Headers are too twisted for this to go in paravirt.h. */
20621 - return regs->cs == __USER_CS || regs->cs == pv_info.extra_user_64bit_cs;
20622 + return cs == __USER_CS || cs == pv_info.extra_user_64bit_cs;
20623 #endif
20624 }
20625
20626 @@ -179,9 +178,11 @@ static inline unsigned long regs_get_register(struct pt_regs *regs,
20627 * Traps from the kernel do not save sp and ss.
20628 * Use the helper function to retrieve sp.
20629 */
20630 - if (offset == offsetof(struct pt_regs, sp) &&
20631 - regs->cs == __KERNEL_CS)
20632 - return kernel_stack_pointer(regs);
20633 + if (offset == offsetof(struct pt_regs, sp)) {
20634 + unsigned long cs = regs->cs & 0xffff;
20635 + if (cs == __KERNEL_CS || cs == __KERNEXEC_KERNEL_CS)
20636 + return kernel_stack_pointer(regs);
20637 + }
20638 #endif
20639 return *(unsigned long *)((unsigned long)regs + offset);
20640 }
20641 diff --git a/arch/x86/include/asm/realmode.h b/arch/x86/include/asm/realmode.h
20642 index 9c6b890..5305f53 100644
20643 --- a/arch/x86/include/asm/realmode.h
20644 +++ b/arch/x86/include/asm/realmode.h
20645 @@ -22,16 +22,14 @@ struct real_mode_header {
20646 #endif
20647 /* APM/BIOS reboot */
20648 u32 machine_real_restart_asm;
20649 -#ifdef CONFIG_X86_64
20650 u32 machine_real_restart_seg;
20651 -#endif
20652 };
20653
20654 /* This must match data at trampoline_32/64.S */
20655 struct trampoline_header {
20656 #ifdef CONFIG_X86_32
20657 u32 start;
20658 - u16 gdt_pad;
20659 + u16 boot_cs;
20660 u16 gdt_limit;
20661 u32 gdt_base;
20662 #else
20663 diff --git a/arch/x86/include/asm/reboot.h b/arch/x86/include/asm/reboot.h
20664 index a82c4f1..ac45053 100644
20665 --- a/arch/x86/include/asm/reboot.h
20666 +++ b/arch/x86/include/asm/reboot.h
20667 @@ -6,13 +6,13 @@
20668 struct pt_regs;
20669
20670 struct machine_ops {
20671 - void (*restart)(char *cmd);
20672 - void (*halt)(void);
20673 - void (*power_off)(void);
20674 + void (* __noreturn restart)(char *cmd);
20675 + void (* __noreturn halt)(void);
20676 + void (* __noreturn power_off)(void);
20677 void (*shutdown)(void);
20678 void (*crash_shutdown)(struct pt_regs *);
20679 - void (*emergency_restart)(void);
20680 -};
20681 + void (* __noreturn emergency_restart)(void);
20682 +} __no_const;
20683
20684 extern struct machine_ops machine_ops;
20685
20686 diff --git a/arch/x86/include/asm/rmwcc.h b/arch/x86/include/asm/rmwcc.h
20687 index 8f7866a..e442f20 100644
20688 --- a/arch/x86/include/asm/rmwcc.h
20689 +++ b/arch/x86/include/asm/rmwcc.h
20690 @@ -3,7 +3,34 @@
20691
20692 #ifdef CC_HAVE_ASM_GOTO
20693
20694 -#define __GEN_RMWcc(fullop, var, cc, ...) \
20695 +#ifdef CONFIG_PAX_REFCOUNT
20696 +#define __GEN_RMWcc(fullop, fullantiop, var, cc, ...) \
20697 +do { \
20698 + asm_volatile_goto (fullop \
20699 + ";jno 0f\n" \
20700 + fullantiop \
20701 + ";int $4\n0:\n" \
20702 + _ASM_EXTABLE(0b, 0b) \
20703 + ";j" cc " %l[cc_label]" \
20704 + : : "m" (var), ## __VA_ARGS__ \
20705 + : "memory" : cc_label); \
20706 + return 0; \
20707 +cc_label: \
20708 + return 1; \
20709 +} while (0)
20710 +#else
20711 +#define __GEN_RMWcc(fullop, fullantiop, var, cc, ...) \
20712 +do { \
20713 + asm_volatile_goto (fullop ";j" cc " %l[cc_label]" \
20714 + : : "m" (var), ## __VA_ARGS__ \
20715 + : "memory" : cc_label); \
20716 + return 0; \
20717 +cc_label: \
20718 + return 1; \
20719 +} while (0)
20720 +#endif
20721 +
20722 +#define __GEN_RMWcc_unchecked(fullop, var, cc, ...) \
20723 do { \
20724 asm_volatile_goto (fullop "; j" cc " %l[cc_label]" \
20725 : : "m" (var), ## __VA_ARGS__ \
20726 @@ -13,15 +40,46 @@ cc_label: \
20727 return 1; \
20728 } while (0)
20729
20730 -#define GEN_UNARY_RMWcc(op, var, arg0, cc) \
20731 - __GEN_RMWcc(op " " arg0, var, cc)
20732 +#define GEN_UNARY_RMWcc(op, antiop, var, arg0, cc) \
20733 + __GEN_RMWcc(op " " arg0, antiop " " arg0, var, cc)
20734
20735 -#define GEN_BINARY_RMWcc(op, var, vcon, val, arg0, cc) \
20736 - __GEN_RMWcc(op " %1, " arg0, var, cc, vcon (val))
20737 +#define GEN_UNARY_RMWcc_unchecked(op, var, arg0, cc) \
20738 + __GEN_RMWcc_unchecked(op " " arg0, var, cc)
20739 +
20740 +#define GEN_BINARY_RMWcc(op, antiop, var, vcon, val, arg0, cc) \
20741 + __GEN_RMWcc(op " %1, " arg0, antiop " %1, " arg0, var, cc, vcon (val))
20742 +
20743 +#define GEN_BINARY_RMWcc_unchecked(op, var, vcon, val, arg0, cc) \
20744 + __GEN_RMWcc_unchecked(op " %1, " arg0, var, cc, vcon (val))
20745
20746 #else /* !CC_HAVE_ASM_GOTO */
20747
20748 -#define __GEN_RMWcc(fullop, var, cc, ...) \
20749 +#ifdef CONFIG_PAX_REFCOUNT
20750 +#define __GEN_RMWcc(fullop, fullantiop, var, cc, ...) \
20751 +do { \
20752 + char c; \
20753 + asm volatile (fullop \
20754 + ";jno 0f\n" \
20755 + fullantiop \
20756 + ";int $4\n0:\n" \
20757 + _ASM_EXTABLE(0b, 0b) \
20758 + "; set" cc " %1" \
20759 + : "+m" (var), "=qm" (c) \
20760 + : __VA_ARGS__ : "memory"); \
20761 + return c != 0; \
20762 +} while (0)
20763 +#else
20764 +#define __GEN_RMWcc(fullop, fullantiop, var, cc, ...) \
20765 +do { \
20766 + char c; \
20767 + asm volatile (fullop "; set" cc " %1" \
20768 + : "+m" (var), "=qm" (c) \
20769 + : __VA_ARGS__ : "memory"); \
20770 + return c != 0; \
20771 +} while (0)
20772 +#endif
20773 +
20774 +#define __GEN_RMWcc_unchecked(fullop, var, cc, ...) \
20775 do { \
20776 char c; \
20777 asm volatile (fullop "; set" cc " %1" \
20778 @@ -30,11 +88,17 @@ do { \
20779 return c != 0; \
20780 } while (0)
20781
20782 -#define GEN_UNARY_RMWcc(op, var, arg0, cc) \
20783 - __GEN_RMWcc(op " " arg0, var, cc)
20784 +#define GEN_UNARY_RMWcc(op, antiop, var, arg0, cc) \
20785 + __GEN_RMWcc(op " " arg0, antiop " " arg0, var, cc)
20786 +
20787 +#define GEN_UNARY_RMWcc_unchecked(op, var, arg0, cc) \
20788 + __GEN_RMWcc_unchecked(op " " arg0, var, cc)
20789 +
20790 +#define GEN_BINARY_RMWcc(op, antiop, var, vcon, val, arg0, cc) \
20791 + __GEN_RMWcc(op " %2, " arg0, antiop " %2, " arg0, var, cc, vcon (val))
20792
20793 -#define GEN_BINARY_RMWcc(op, var, vcon, val, arg0, cc) \
20794 - __GEN_RMWcc(op " %2, " arg0, var, cc, vcon (val))
20795 +#define GEN_BINARY_RMWcc_unchecked(op, var, vcon, val, arg0, cc) \
20796 + __GEN_RMWcc_unchecked(op " %2, " arg0, var, cc, vcon (val))
20797
20798 #endif /* CC_HAVE_ASM_GOTO */
20799
20800 diff --git a/arch/x86/include/asm/rwsem.h b/arch/x86/include/asm/rwsem.h
20801 index cad82c9..2e5c5c1 100644
20802 --- a/arch/x86/include/asm/rwsem.h
20803 +++ b/arch/x86/include/asm/rwsem.h
20804 @@ -64,6 +64,14 @@ static inline void __down_read(struct rw_semaphore *sem)
20805 {
20806 asm volatile("# beginning down_read\n\t"
20807 LOCK_PREFIX _ASM_INC "(%1)\n\t"
20808 +
20809 +#ifdef CONFIG_PAX_REFCOUNT
20810 + "jno 0f\n"
20811 + LOCK_PREFIX _ASM_DEC "(%1)\n"
20812 + "int $4\n0:\n"
20813 + _ASM_EXTABLE(0b, 0b)
20814 +#endif
20815 +
20816 /* adds 0x00000001 */
20817 " jns 1f\n"
20818 " call call_rwsem_down_read_failed\n"
20819 @@ -85,6 +93,14 @@ static inline int __down_read_trylock(struct rw_semaphore *sem)
20820 "1:\n\t"
20821 " mov %1,%2\n\t"
20822 " add %3,%2\n\t"
20823 +
20824 +#ifdef CONFIG_PAX_REFCOUNT
20825 + "jno 0f\n"
20826 + "sub %3,%2\n"
20827 + "int $4\n0:\n"
20828 + _ASM_EXTABLE(0b, 0b)
20829 +#endif
20830 +
20831 " jle 2f\n\t"
20832 LOCK_PREFIX " cmpxchg %2,%0\n\t"
20833 " jnz 1b\n\t"
20834 @@ -104,6 +120,14 @@ static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
20835 long tmp;
20836 asm volatile("# beginning down_write\n\t"
20837 LOCK_PREFIX " xadd %1,(%2)\n\t"
20838 +
20839 +#ifdef CONFIG_PAX_REFCOUNT
20840 + "jno 0f\n"
20841 + "mov %1,(%2)\n"
20842 + "int $4\n0:\n"
20843 + _ASM_EXTABLE(0b, 0b)
20844 +#endif
20845 +
20846 /* adds 0xffff0001, returns the old value */
20847 " test " __ASM_SEL(%w1,%k1) "," __ASM_SEL(%w1,%k1) "\n\t"
20848 /* was the active mask 0 before? */
20849 @@ -155,6 +179,14 @@ static inline void __up_read(struct rw_semaphore *sem)
20850 long tmp;
20851 asm volatile("# beginning __up_read\n\t"
20852 LOCK_PREFIX " xadd %1,(%2)\n\t"
20853 +
20854 +#ifdef CONFIG_PAX_REFCOUNT
20855 + "jno 0f\n"
20856 + "mov %1,(%2)\n"
20857 + "int $4\n0:\n"
20858 + _ASM_EXTABLE(0b, 0b)
20859 +#endif
20860 +
20861 /* subtracts 1, returns the old value */
20862 " jns 1f\n\t"
20863 " call call_rwsem_wake\n" /* expects old value in %edx */
20864 @@ -173,6 +205,14 @@ static inline void __up_write(struct rw_semaphore *sem)
20865 long tmp;
20866 asm volatile("# beginning __up_write\n\t"
20867 LOCK_PREFIX " xadd %1,(%2)\n\t"
20868 +
20869 +#ifdef CONFIG_PAX_REFCOUNT
20870 + "jno 0f\n"
20871 + "mov %1,(%2)\n"
20872 + "int $4\n0:\n"
20873 + _ASM_EXTABLE(0b, 0b)
20874 +#endif
20875 +
20876 /* subtracts 0xffff0001, returns the old value */
20877 " jns 1f\n\t"
20878 " call call_rwsem_wake\n" /* expects old value in %edx */
20879 @@ -190,6 +230,14 @@ static inline void __downgrade_write(struct rw_semaphore *sem)
20880 {
20881 asm volatile("# beginning __downgrade_write\n\t"
20882 LOCK_PREFIX _ASM_ADD "%2,(%1)\n\t"
20883 +
20884 +#ifdef CONFIG_PAX_REFCOUNT
20885 + "jno 0f\n"
20886 + LOCK_PREFIX _ASM_SUB "%2,(%1)\n"
20887 + "int $4\n0:\n"
20888 + _ASM_EXTABLE(0b, 0b)
20889 +#endif
20890 +
20891 /*
20892 * transitions 0xZZZZ0001 -> 0xYYYY0001 (i386)
20893 * 0xZZZZZZZZ00000001 -> 0xYYYYYYYY00000001 (x86_64)
20894 @@ -208,7 +256,15 @@ static inline void __downgrade_write(struct rw_semaphore *sem)
20895 */
20896 static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
20897 {
20898 - asm volatile(LOCK_PREFIX _ASM_ADD "%1,%0"
20899 + asm volatile(LOCK_PREFIX _ASM_ADD "%1,%0\n"
20900 +
20901 +#ifdef CONFIG_PAX_REFCOUNT
20902 + "jno 0f\n"
20903 + LOCK_PREFIX _ASM_SUB "%1,%0\n"
20904 + "int $4\n0:\n"
20905 + _ASM_EXTABLE(0b, 0b)
20906 +#endif
20907 +
20908 : "+m" (sem->count)
20909 : "er" (delta));
20910 }
20911 @@ -218,7 +274,7 @@ static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
20912 */
20913 static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
20914 {
20915 - return delta + xadd(&sem->count, delta);
20916 + return delta + xadd_check_overflow(&sem->count, delta);
20917 }
20918
20919 #endif /* __KERNEL__ */
20920 diff --git a/arch/x86/include/asm/segment.h b/arch/x86/include/asm/segment.h
20921 index 7d5a192..23ef1aa 100644
20922 --- a/arch/x86/include/asm/segment.h
20923 +++ b/arch/x86/include/asm/segment.h
20924 @@ -82,14 +82,20 @@
20925 * 26 - ESPFIX small SS
20926 * 27 - per-cpu [ offset to per-cpu data area ]
20927 * 28 - stack_canary-20 [ for stack protector ] <=== cacheline #8
20928 - * 29 - unused
20929 - * 30 - unused
20930 + * 29 - PCI BIOS CS
20931 + * 30 - PCI BIOS DS
20932 * 31 - TSS for double fault handler
20933 */
20934 +#define GDT_ENTRY_KERNEXEC_EFI_CS (1)
20935 +#define GDT_ENTRY_KERNEXEC_EFI_DS (2)
20936 +#define __KERNEXEC_EFI_CS (GDT_ENTRY_KERNEXEC_EFI_CS*8)
20937 +#define __KERNEXEC_EFI_DS (GDT_ENTRY_KERNEXEC_EFI_DS*8)
20938 +
20939 #define GDT_ENTRY_TLS_MIN 6
20940 #define GDT_ENTRY_TLS_MAX (GDT_ENTRY_TLS_MIN + GDT_ENTRY_TLS_ENTRIES - 1)
20941
20942 #define GDT_ENTRY_KERNEL_CS 12
20943 +#define GDT_ENTRY_KERNEXEC_KERNEL_CS 4
20944 #define GDT_ENTRY_KERNEL_DS 13
20945 #define GDT_ENTRY_DEFAULT_USER_CS 14
20946 #define GDT_ENTRY_DEFAULT_USER_DS 15
20947 @@ -106,6 +112,12 @@
20948 #define GDT_ENTRY_PERCPU 27
20949 #define GDT_ENTRY_STACK_CANARY 28
20950
20951 +#define GDT_ENTRY_PCIBIOS_CS 29
20952 +#define __PCIBIOS_DS (GDT_ENTRY_PCIBIOS_DS * 8)
20953 +
20954 +#define GDT_ENTRY_PCIBIOS_DS 30
20955 +#define __PCIBIOS_CS (GDT_ENTRY_PCIBIOS_CS * 8)
20956 +
20957 #define GDT_ENTRY_DOUBLEFAULT_TSS 31
20958
20959 /*
20960 @@ -118,6 +130,7 @@
20961 */
20962
20963 #define __KERNEL_CS (GDT_ENTRY_KERNEL_CS*8)
20964 +#define __KERNEXEC_KERNEL_CS (GDT_ENTRY_KERNEXEC_KERNEL_CS*8)
20965 #define __KERNEL_DS (GDT_ENTRY_KERNEL_DS*8)
20966 #define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS*8 + 3)
20967 #define __USER_CS (GDT_ENTRY_DEFAULT_USER_CS*8 + 3)
20968 @@ -129,7 +142,7 @@
20969 #define PNP_CS16 (GDT_ENTRY_PNPBIOS_CS16*8)
20970
20971 /* "Is this PNP code selector (PNP_CS32 or PNP_CS16)?" */
20972 -#define SEGMENT_IS_PNP_CODE(x) (((x) & 0xf4) == PNP_CS32)
20973 +#define SEGMENT_IS_PNP_CODE(x) (((x) & 0xFFFCU) == PNP_CS32 || ((x) & 0xFFFCU) == PNP_CS16)
20974
20975 /* data segment for BIOS: */
20976 #define PNP_DS (GDT_ENTRY_PNPBIOS_DS*8)
20977 @@ -176,6 +189,8 @@
20978 #define GDT_ENTRY_DEFAULT_USER_DS 5
20979 #define GDT_ENTRY_DEFAULT_USER_CS 6
20980
20981 +#define GDT_ENTRY_KERNEXEC_KERNEL_CS 7
20982 +
20983 /* Needs two entries */
20984 #define GDT_ENTRY_TSS 8
20985 /* Needs two entries */
20986 @@ -187,10 +202,12 @@
20987 /* Abused to load per CPU data from limit */
20988 #define GDT_ENTRY_PER_CPU 15
20989
20990 +#define GDT_ENTRY_UDEREF_KERNEL_DS 16
20991 +
20992 /*
20993 * Number of entries in the GDT table:
20994 */
20995 -#define GDT_ENTRIES 16
20996 +#define GDT_ENTRIES 17
20997
20998 /*
20999 * Segment selector values corresponding to the above entries:
21000 @@ -200,7 +217,9 @@
21001 */
21002 #define __KERNEL32_CS (GDT_ENTRY_KERNEL32_CS*8)
21003 #define __KERNEL_CS (GDT_ENTRY_KERNEL_CS*8)
21004 +#define __KERNEXEC_KERNEL_CS (GDT_ENTRY_KERNEXEC_KERNEL_CS*8)
21005 #define __KERNEL_DS (GDT_ENTRY_KERNEL_DS*8)
21006 +#define __UDEREF_KERNEL_DS (GDT_ENTRY_UDEREF_KERNEL_DS*8)
21007 #define __USER32_CS (GDT_ENTRY_DEFAULT_USER32_CS*8 + 3)
21008 #define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS*8 + 3)
21009 #define __USER32_DS __USER_DS
21010 diff --git a/arch/x86/include/asm/smap.h b/arch/x86/include/asm/smap.h
21011 index ba665eb..0f72938 100644
21012 --- a/arch/x86/include/asm/smap.h
21013 +++ b/arch/x86/include/asm/smap.h
21014 @@ -25,6 +25,18 @@
21015
21016 #include <asm/alternative-asm.h>
21017
21018 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21019 +#define ASM_PAX_OPEN_USERLAND \
21020 + ALTERNATIVE "", "call __pax_open_userland", X86_FEATURE_STRONGUDEREF
21021 +
21022 +#define ASM_PAX_CLOSE_USERLAND \
21023 + ALTERNATIVE "", "call __pax_close_userland", X86_FEATURE_STRONGUDEREF
21024 +
21025 +#else
21026 +#define ASM_PAX_OPEN_USERLAND
21027 +#define ASM_PAX_CLOSE_USERLAND
21028 +#endif
21029 +
21030 #ifdef CONFIG_X86_SMAP
21031
21032 #define ASM_CLAC \
21033 @@ -44,6 +56,37 @@
21034
21035 #include <asm/alternative.h>
21036
21037 +#define __HAVE_ARCH_PAX_OPEN_USERLAND
21038 +#define __HAVE_ARCH_PAX_CLOSE_USERLAND
21039 +
21040 +extern void __pax_open_userland(void);
21041 +static __always_inline unsigned long pax_open_userland(void)
21042 +{
21043 +
21044 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21045 + asm volatile(ALTERNATIVE("", "call %P[open]", X86_FEATURE_STRONGUDEREF)
21046 + :
21047 + : [open] "i" (__pax_open_userland)
21048 + : "memory", "rax");
21049 +#endif
21050 +
21051 + return 0;
21052 +}
21053 +
21054 +extern void __pax_close_userland(void);
21055 +static __always_inline unsigned long pax_close_userland(void)
21056 +{
21057 +
21058 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21059 + asm volatile(ALTERNATIVE("", "call %P[close]", X86_FEATURE_STRONGUDEREF)
21060 + :
21061 + : [close] "i" (__pax_close_userland)
21062 + : "memory", "rax");
21063 +#endif
21064 +
21065 + return 0;
21066 +}
21067 +
21068 #ifdef CONFIG_X86_SMAP
21069
21070 static __always_inline void clac(void)
21071 diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
21072 index 222a6a3..839da8d 100644
21073 --- a/arch/x86/include/asm/smp.h
21074 +++ b/arch/x86/include/asm/smp.h
21075 @@ -35,7 +35,7 @@ DECLARE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_core_map);
21076 /* cpus sharing the last level cache: */
21077 DECLARE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_llc_shared_map);
21078 DECLARE_PER_CPU_READ_MOSTLY(u16, cpu_llc_id);
21079 -DECLARE_PER_CPU_READ_MOSTLY(int, cpu_number);
21080 +DECLARE_PER_CPU_READ_MOSTLY(unsigned int, cpu_number);
21081
21082 static inline struct cpumask *cpu_llc_shared_mask(int cpu)
21083 {
21084 @@ -68,7 +68,7 @@ struct smp_ops {
21085
21086 void (*send_call_func_ipi)(const struct cpumask *mask);
21087 void (*send_call_func_single_ipi)(int cpu);
21088 -};
21089 +} __no_const;
21090
21091 /* Globals due to paravirt */
21092 extern void set_cpu_sibling_map(int cpu);
21093 @@ -182,14 +182,8 @@ extern unsigned disabled_cpus;
21094 extern int safe_smp_processor_id(void);
21095
21096 #elif defined(CONFIG_X86_64_SMP)
21097 -#define raw_smp_processor_id() (this_cpu_read(cpu_number))
21098 -
21099 -#define stack_smp_processor_id() \
21100 -({ \
21101 - struct thread_info *ti; \
21102 - __asm__("andq %%rsp,%0; ":"=r" (ti) : "0" (CURRENT_MASK)); \
21103 - ti->cpu; \
21104 -})
21105 +#define raw_smp_processor_id() (this_cpu_read(cpu_number))
21106 +#define stack_smp_processor_id() raw_smp_processor_id()
21107 #define safe_smp_processor_id() smp_processor_id()
21108
21109 #endif
21110 diff --git a/arch/x86/include/asm/stackprotector.h b/arch/x86/include/asm/stackprotector.h
21111 index 58505f0..bff3b5b 100644
21112 --- a/arch/x86/include/asm/stackprotector.h
21113 +++ b/arch/x86/include/asm/stackprotector.h
21114 @@ -49,7 +49,7 @@
21115 * head_32 for boot CPU and setup_per_cpu_areas() for others.
21116 */
21117 #define GDT_STACK_CANARY_INIT \
21118 - [GDT_ENTRY_STACK_CANARY] = GDT_ENTRY_INIT(0x4090, 0, 0x18),
21119 + [GDT_ENTRY_STACK_CANARY] = GDT_ENTRY_INIT(0x4090, 0, 0x17),
21120
21121 /*
21122 * Initialize the stackprotector canary value.
21123 @@ -114,7 +114,7 @@ static inline void setup_stack_canary_segment(int cpu)
21124
21125 static inline void load_stack_canary_segment(void)
21126 {
21127 -#ifdef CONFIG_X86_32
21128 +#if defined(CONFIG_X86_32) && !defined(CONFIG_PAX_MEMORY_UDEREF)
21129 asm volatile ("mov %0, %%gs" : : "r" (0));
21130 #endif
21131 }
21132 diff --git a/arch/x86/include/asm/stacktrace.h b/arch/x86/include/asm/stacktrace.h
21133 index 70bbe39..4ae2bd4 100644
21134 --- a/arch/x86/include/asm/stacktrace.h
21135 +++ b/arch/x86/include/asm/stacktrace.h
21136 @@ -11,28 +11,20 @@
21137
21138 extern int kstack_depth_to_print;
21139
21140 -struct thread_info;
21141 +struct task_struct;
21142 struct stacktrace_ops;
21143
21144 -typedef unsigned long (*walk_stack_t)(struct thread_info *tinfo,
21145 - unsigned long *stack,
21146 - unsigned long bp,
21147 - const struct stacktrace_ops *ops,
21148 - void *data,
21149 - unsigned long *end,
21150 - int *graph);
21151 +typedef unsigned long walk_stack_t(struct task_struct *task,
21152 + void *stack_start,
21153 + unsigned long *stack,
21154 + unsigned long bp,
21155 + const struct stacktrace_ops *ops,
21156 + void *data,
21157 + unsigned long *end,
21158 + int *graph);
21159
21160 -extern unsigned long
21161 -print_context_stack(struct thread_info *tinfo,
21162 - unsigned long *stack, unsigned long bp,
21163 - const struct stacktrace_ops *ops, void *data,
21164 - unsigned long *end, int *graph);
21165 -
21166 -extern unsigned long
21167 -print_context_stack_bp(struct thread_info *tinfo,
21168 - unsigned long *stack, unsigned long bp,
21169 - const struct stacktrace_ops *ops, void *data,
21170 - unsigned long *end, int *graph);
21171 +extern walk_stack_t print_context_stack;
21172 +extern walk_stack_t print_context_stack_bp;
21173
21174 /* Generic stack tracer with callbacks */
21175
21176 @@ -40,7 +32,7 @@ struct stacktrace_ops {
21177 void (*address)(void *data, unsigned long address, int reliable);
21178 /* On negative return stop dumping */
21179 int (*stack)(void *data, char *name);
21180 - walk_stack_t walk_stack;
21181 + walk_stack_t *walk_stack;
21182 };
21183
21184 void dump_trace(struct task_struct *tsk, struct pt_regs *regs,
21185 diff --git a/arch/x86/include/asm/switch_to.h b/arch/x86/include/asm/switch_to.h
21186 index 751bf4b..a1278b5 100644
21187 --- a/arch/x86/include/asm/switch_to.h
21188 +++ b/arch/x86/include/asm/switch_to.h
21189 @@ -112,7 +112,7 @@ do { \
21190 "call __switch_to\n\t" \
21191 "movq "__percpu_arg([current_task])",%%rsi\n\t" \
21192 __switch_canary \
21193 - "movq %P[thread_info](%%rsi),%%r8\n\t" \
21194 + "movq "__percpu_arg([thread_info])",%%r8\n\t" \
21195 "movq %%rax,%%rdi\n\t" \
21196 "testl %[_tif_fork],%P[ti_flags](%%r8)\n\t" \
21197 "jnz ret_from_fork\n\t" \
21198 @@ -123,7 +123,7 @@ do { \
21199 [threadrsp] "i" (offsetof(struct task_struct, thread.sp)), \
21200 [ti_flags] "i" (offsetof(struct thread_info, flags)), \
21201 [_tif_fork] "i" (_TIF_FORK), \
21202 - [thread_info] "i" (offsetof(struct task_struct, stack)), \
21203 + [thread_info] "m" (current_tinfo), \
21204 [current_task] "m" (current_task) \
21205 __switch_canary_iparam \
21206 : "memory", "cc" __EXTRA_CLOBBER)
21207 diff --git a/arch/x86/include/asm/sys_ia32.h b/arch/x86/include/asm/sys_ia32.h
21208 index 82c34ee..940fa40 100644
21209 --- a/arch/x86/include/asm/sys_ia32.h
21210 +++ b/arch/x86/include/asm/sys_ia32.h
21211 @@ -20,8 +20,8 @@
21212 #include <asm/ia32.h>
21213
21214 /* ia32/sys_ia32.c */
21215 -asmlinkage long sys32_truncate64(const char __user *, unsigned long, unsigned long);
21216 -asmlinkage long sys32_ftruncate64(unsigned int, unsigned long, unsigned long);
21217 +asmlinkage long sys32_truncate64(const char __user *, unsigned int, unsigned int);
21218 +asmlinkage long sys32_ftruncate64(unsigned int, unsigned int, unsigned int);
21219
21220 asmlinkage long sys32_stat64(const char __user *, struct stat64 __user *);
21221 asmlinkage long sys32_lstat64(const char __user *, struct stat64 __user *);
21222 @@ -42,7 +42,7 @@ long sys32_vm86_warning(void);
21223 asmlinkage ssize_t sys32_readahead(int, unsigned, unsigned, size_t);
21224 asmlinkage long sys32_sync_file_range(int, unsigned, unsigned,
21225 unsigned, unsigned, int);
21226 -asmlinkage long sys32_fadvise64(int, unsigned, unsigned, size_t, int);
21227 +asmlinkage long sys32_fadvise64(int, unsigned, unsigned, int, int);
21228 asmlinkage long sys32_fallocate(int, int, unsigned,
21229 unsigned, unsigned, unsigned);
21230
21231 diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h
21232 index c7b5510..2ab8977 100644
21233 --- a/arch/x86/include/asm/thread_info.h
21234 +++ b/arch/x86/include/asm/thread_info.h
21235 @@ -39,7 +39,7 @@
21236 # define TOP_OF_KERNEL_STACK_PADDING 8
21237 # endif
21238 #else
21239 -# define TOP_OF_KERNEL_STACK_PADDING 0
21240 +# define TOP_OF_KERNEL_STACK_PADDING 16
21241 #endif
21242
21243 /*
21244 @@ -53,24 +53,23 @@ struct task_struct;
21245 #include <linux/atomic.h>
21246
21247 struct thread_info {
21248 - struct task_struct *task; /* main task structure */
21249 __u32 flags; /* low level flags */
21250 __u32 status; /* thread synchronous flags */
21251 __u32 cpu; /* current CPU */
21252 mm_segment_t addr_limit;
21253 + unsigned long lowest_stack;
21254 unsigned int sig_on_uaccess_error:1;
21255 unsigned int uaccess_err:1; /* uaccess failed */
21256 };
21257
21258 -#define INIT_THREAD_INFO(tsk) \
21259 +#define INIT_THREAD_INFO \
21260 { \
21261 - .task = &tsk, \
21262 .flags = 0, \
21263 .cpu = 0, \
21264 .addr_limit = KERNEL_DS, \
21265 }
21266
21267 -#define init_thread_info (init_thread_union.thread_info)
21268 +#define init_thread_info (init_thread_union.stack)
21269 #define init_stack (init_thread_union.stack)
21270
21271 #else /* !__ASSEMBLY__ */
21272 @@ -110,6 +109,7 @@ struct thread_info {
21273 #define TIF_SYSCALL_TRACEPOINT 28 /* syscall tracepoint instrumentation */
21274 #define TIF_ADDR32 29 /* 32-bit address space on 64 bits */
21275 #define TIF_X32 30 /* 32-bit native x86-64 binary */
21276 +#define TIF_GRSEC_SETXID 31 /* update credentials on syscall entry/exit */
21277
21278 #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
21279 #define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME)
21280 @@ -133,17 +133,18 @@ struct thread_info {
21281 #define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT)
21282 #define _TIF_ADDR32 (1 << TIF_ADDR32)
21283 #define _TIF_X32 (1 << TIF_X32)
21284 +#define _TIF_GRSEC_SETXID (1 << TIF_GRSEC_SETXID)
21285
21286 /* work to do in syscall_trace_enter() */
21287 #define _TIF_WORK_SYSCALL_ENTRY \
21288 (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_EMU | _TIF_SYSCALL_AUDIT | \
21289 _TIF_SECCOMP | _TIF_SINGLESTEP | _TIF_SYSCALL_TRACEPOINT | \
21290 - _TIF_NOHZ)
21291 + _TIF_NOHZ | _TIF_GRSEC_SETXID)
21292
21293 /* work to do on any return to user space */
21294 #define _TIF_ALLWORK_MASK \
21295 ((0x0000FFFF & ~_TIF_SECCOMP) | _TIF_SYSCALL_TRACEPOINT | \
21296 - _TIF_NOHZ)
21297 + _TIF_NOHZ | _TIF_GRSEC_SETXID)
21298
21299 /* flags to check in __switch_to() */
21300 #define _TIF_WORK_CTXSW \
21301 @@ -161,9 +162,11 @@ struct thread_info {
21302 */
21303 #ifndef __ASSEMBLY__
21304
21305 +DECLARE_PER_CPU(struct thread_info *, current_tinfo);
21306 +
21307 static inline struct thread_info *current_thread_info(void)
21308 {
21309 - return (struct thread_info *)(current_top_of_stack() - THREAD_SIZE);
21310 + return this_cpu_read_stable(current_tinfo);
21311 }
21312
21313 static inline unsigned long current_stack_pointer(void)
21314 @@ -179,14 +182,9 @@ static inline unsigned long current_stack_pointer(void)
21315
21316 #else /* !__ASSEMBLY__ */
21317
21318 -#ifdef CONFIG_X86_64
21319 -# define cpu_current_top_of_stack (cpu_tss + TSS_sp0)
21320 -#endif
21321 -
21322 /* Load thread_info address into "reg" */
21323 #define GET_THREAD_INFO(reg) \
21324 - _ASM_MOV PER_CPU_VAR(cpu_current_top_of_stack),reg ; \
21325 - _ASM_SUB $(THREAD_SIZE),reg ;
21326 + _ASM_MOV PER_CPU_VAR(current_tinfo),reg ;
21327
21328 /*
21329 * ASM operand which evaluates to a 'thread_info' address of
21330 @@ -279,5 +277,12 @@ static inline bool is_ia32_task(void)
21331 extern void arch_task_cache_init(void);
21332 extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src);
21333 extern void arch_release_task_struct(struct task_struct *tsk);
21334 +
21335 +#define __HAVE_THREAD_FUNCTIONS
21336 +#define task_thread_info(task) (&(task)->tinfo)
21337 +#define task_stack_page(task) ((task)->stack)
21338 +#define setup_thread_stack(p, org) do {} while (0)
21339 +#define end_of_stack(p) ((unsigned long *)task_stack_page(p) + 1)
21340 +
21341 #endif
21342 #endif /* _ASM_X86_THREAD_INFO_H */
21343 diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h
21344 index 6df2029..a359a58 100644
21345 --- a/arch/x86/include/asm/tlbflush.h
21346 +++ b/arch/x86/include/asm/tlbflush.h
21347 @@ -86,18 +86,44 @@ static inline void cr4_set_bits_and_update_boot(unsigned long mask)
21348
21349 static inline void __native_flush_tlb(void)
21350 {
21351 + if (static_cpu_has(X86_FEATURE_INVPCID)) {
21352 + u64 descriptor[2];
21353 +
21354 + descriptor[0] = PCID_KERNEL;
21355 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_ALL_NONGLOBAL) : "memory");
21356 + return;
21357 + }
21358 +
21359 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21360 + if (static_cpu_has(X86_FEATURE_PCIDUDEREF)) {
21361 + unsigned int cpu = raw_get_cpu();
21362 +
21363 + native_write_cr3(__pa(get_cpu_pgd(cpu, user)) | PCID_USER);
21364 + native_write_cr3(__pa(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL);
21365 + raw_put_cpu_no_resched();
21366 + return;
21367 + }
21368 +#endif
21369 +
21370 native_write_cr3(native_read_cr3());
21371 }
21372
21373 static inline void __native_flush_tlb_global_irq_disabled(void)
21374 {
21375 - unsigned long cr4;
21376 + if (static_cpu_has(X86_FEATURE_INVPCID)) {
21377 + u64 descriptor[2];
21378
21379 - cr4 = this_cpu_read(cpu_tlbstate.cr4);
21380 - /* clear PGE */
21381 - native_write_cr4(cr4 & ~X86_CR4_PGE);
21382 - /* write old PGE again and flush TLBs */
21383 - native_write_cr4(cr4);
21384 + descriptor[0] = PCID_KERNEL;
21385 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_ALL_GLOBAL) : "memory");
21386 + } else {
21387 + unsigned long cr4;
21388 +
21389 + cr4 = this_cpu_read(cpu_tlbstate.cr4);
21390 + /* clear PGE */
21391 + native_write_cr4(cr4 & ~X86_CR4_PGE);
21392 + /* write old PGE again and flush TLBs */
21393 + native_write_cr4(cr4);
21394 + }
21395 }
21396
21397 static inline void __native_flush_tlb_global(void)
21398 @@ -118,6 +144,43 @@ static inline void __native_flush_tlb_global(void)
21399
21400 static inline void __native_flush_tlb_single(unsigned long addr)
21401 {
21402 + if (static_cpu_has(X86_FEATURE_INVPCID)) {
21403 + u64 descriptor[2];
21404 +
21405 + descriptor[0] = PCID_KERNEL;
21406 + descriptor[1] = addr;
21407 +
21408 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21409 + if (static_cpu_has(X86_FEATURE_PCIDUDEREF)) {
21410 + if (!static_cpu_has(X86_FEATURE_STRONGUDEREF) || addr >= TASK_SIZE_MAX) {
21411 + if (addr < TASK_SIZE_MAX)
21412 + descriptor[1] += pax_user_shadow_base;
21413 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_SINGLE_ADDRESS) : "memory");
21414 + }
21415 +
21416 + descriptor[0] = PCID_USER;
21417 + descriptor[1] = addr;
21418 + }
21419 +#endif
21420 +
21421 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_SINGLE_ADDRESS) : "memory");
21422 + return;
21423 + }
21424 +
21425 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21426 + if (static_cpu_has(X86_FEATURE_PCIDUDEREF)) {
21427 + unsigned int cpu = raw_get_cpu();
21428 +
21429 + native_write_cr3(__pa(get_cpu_pgd(cpu, user)) | PCID_USER | PCID_NOFLUSH);
21430 + asm volatile("invlpg (%0)" ::"r" (addr) : "memory");
21431 + native_write_cr3(__pa(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL | PCID_NOFLUSH);
21432 + raw_put_cpu_no_resched();
21433 +
21434 + if (!static_cpu_has(X86_FEATURE_STRONGUDEREF) && addr < TASK_SIZE_MAX)
21435 + addr += pax_user_shadow_base;
21436 + }
21437 +#endif
21438 +
21439 asm volatile("invlpg (%0)" ::"r" (addr) : "memory");
21440 }
21441
21442 diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
21443 index 09b1b0a..8f56367 100644
21444 --- a/arch/x86/include/asm/uaccess.h
21445 +++ b/arch/x86/include/asm/uaccess.h
21446 @@ -7,6 +7,7 @@
21447 #include <linux/compiler.h>
21448 #include <linux/thread_info.h>
21449 #include <linux/string.h>
21450 +#include <linux/spinlock.h>
21451 #include <asm/asm.h>
21452 #include <asm/page.h>
21453 #include <asm/smap.h>
21454 @@ -29,7 +30,12 @@
21455
21456 #define get_ds() (KERNEL_DS)
21457 #define get_fs() (current_thread_info()->addr_limit)
21458 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
21459 +void __set_fs(mm_segment_t x);
21460 +void set_fs(mm_segment_t x);
21461 +#else
21462 #define set_fs(x) (current_thread_info()->addr_limit = (x))
21463 +#endif
21464
21465 #define segment_eq(a, b) ((a).seg == (b).seg)
21466
21467 @@ -86,8 +92,36 @@ static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, un
21468 * checks that the pointer is in the user space range - after calling
21469 * this function, memory access functions may still return -EFAULT.
21470 */
21471 -#define access_ok(type, addr, size) \
21472 - likely(!__range_not_ok(addr, size, user_addr_max()))
21473 +extern int _cond_resched(void);
21474 +#define access_ok_noprefault(type, addr, size) (likely(!__range_not_ok(addr, size, user_addr_max())))
21475 +#define access_ok(type, addr, size) \
21476 +({ \
21477 + unsigned long __size = size; \
21478 + unsigned long __addr = (unsigned long)addr; \
21479 + bool __ret_ao = __range_not_ok(__addr, __size, user_addr_max()) == 0;\
21480 + if (__ret_ao && __size) { \
21481 + unsigned long __addr_ao = __addr & PAGE_MASK; \
21482 + unsigned long __end_ao = __addr + __size - 1; \
21483 + if (unlikely((__end_ao ^ __addr_ao) & PAGE_MASK)) { \
21484 + while (__addr_ao <= __end_ao) { \
21485 + char __c_ao; \
21486 + __addr_ao += PAGE_SIZE; \
21487 + if (__size > PAGE_SIZE) \
21488 + _cond_resched(); \
21489 + if (__get_user(__c_ao, (char __user *)__addr)) \
21490 + break; \
21491 + if ((type) != VERIFY_WRITE) { \
21492 + __addr = __addr_ao; \
21493 + continue; \
21494 + } \
21495 + if (__put_user(__c_ao, (char __user *)__addr)) \
21496 + break; \
21497 + __addr = __addr_ao; \
21498 + } \
21499 + } \
21500 + } \
21501 + __ret_ao; \
21502 +})
21503
21504 /*
21505 * The exception table consists of pairs of addresses relative to the
21506 @@ -135,11 +169,13 @@ extern int __get_user_8(void);
21507 extern int __get_user_bad(void);
21508
21509 /*
21510 - * This is a type: either unsigned long, if the argument fits into
21511 - * that type, or otherwise unsigned long long.
21512 + * This is a type: either (un)signed int, if the argument fits into
21513 + * that type, or otherwise (un)signed long long.
21514 */
21515 #define __inttype(x) \
21516 -__typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
21517 +__typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0U), \
21518 + __builtin_choose_expr(__type_is_unsigned(__typeof__(x)), 0ULL, 0LL),\
21519 + __builtin_choose_expr(__type_is_unsigned(__typeof__(x)), 0U, 0)))
21520
21521 /**
21522 * get_user: - Get a simple variable from user space.
21523 @@ -178,10 +214,12 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
21524 register __inttype(*(ptr)) __val_gu asm("%"_ASM_DX); \
21525 __chk_user_ptr(ptr); \
21526 might_fault(); \
21527 + pax_open_userland(); \
21528 asm volatile("call __get_user_%P3" \
21529 : "=a" (__ret_gu), "=r" (__val_gu) \
21530 : "0" (ptr), "i" (sizeof(*(ptr)))); \
21531 (x) = (__force __typeof__(*(ptr))) __val_gu; \
21532 + pax_close_userland(); \
21533 __builtin_expect(__ret_gu, 0); \
21534 })
21535
21536 @@ -189,13 +227,21 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
21537 asm volatile("call __put_user_" #size : "=a" (__ret_pu) \
21538 : "0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")
21539
21540 -
21541 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
21542 +#define __copyuser_seg "gs;"
21543 +#define __COPYUSER_SET_ES "pushl %%gs; popl %%es\n"
21544 +#define __COPYUSER_RESTORE_ES "pushl %%ss; popl %%es\n"
21545 +#else
21546 +#define __copyuser_seg
21547 +#define __COPYUSER_SET_ES
21548 +#define __COPYUSER_RESTORE_ES
21549 +#endif
21550
21551 #ifdef CONFIG_X86_32
21552 #define __put_user_asm_u64(x, addr, err, errret) \
21553 asm volatile(ASM_STAC "\n" \
21554 - "1: movl %%eax,0(%2)\n" \
21555 - "2: movl %%edx,4(%2)\n" \
21556 + "1: "__copyuser_seg"movl %%eax,0(%2)\n" \
21557 + "2: "__copyuser_seg"movl %%edx,4(%2)\n" \
21558 "3: " ASM_CLAC "\n" \
21559 ".section .fixup,\"ax\"\n" \
21560 "4: movl %3,%0\n" \
21561 @@ -208,8 +254,8 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
21562
21563 #define __put_user_asm_ex_u64(x, addr) \
21564 asm volatile(ASM_STAC "\n" \
21565 - "1: movl %%eax,0(%1)\n" \
21566 - "2: movl %%edx,4(%1)\n" \
21567 + "1: "__copyuser_seg"movl %%eax,0(%1)\n" \
21568 + "2: "__copyuser_seg"movl %%edx,4(%1)\n" \
21569 "3: " ASM_CLAC "\n" \
21570 _ASM_EXTABLE_EX(1b, 2b) \
21571 _ASM_EXTABLE_EX(2b, 3b) \
21572 @@ -257,10 +303,11 @@ extern void __put_user_8(void);
21573 #define put_user(x, ptr) \
21574 ({ \
21575 int __ret_pu; \
21576 - __typeof__(*(ptr)) __pu_val; \
21577 + __inttype(*(ptr)) __pu_val; \
21578 __chk_user_ptr(ptr); \
21579 might_fault(); \
21580 - __pu_val = x; \
21581 + __pu_val = (__inttype(*(ptr)))(x); \
21582 + pax_open_userland(); \
21583 switch (sizeof(*(ptr))) { \
21584 case 1: \
21585 __put_user_x(1, __pu_val, ptr, __ret_pu); \
21586 @@ -278,6 +325,7 @@ extern void __put_user_8(void);
21587 __put_user_x(X, __pu_val, ptr, __ret_pu); \
21588 break; \
21589 } \
21590 + pax_close_userland(); \
21591 __builtin_expect(__ret_pu, 0); \
21592 })
21593
21594 @@ -341,10 +389,10 @@ do { \
21595 __chk_user_ptr(ptr); \
21596 switch (size) { \
21597 case 1: \
21598 - __get_user_asm(x, ptr, retval, "b", "b", "=q", errret); \
21599 + __get_user_asm(x, ptr, retval, "zbl", "k", "=r", errret);\
21600 break; \
21601 case 2: \
21602 - __get_user_asm(x, ptr, retval, "w", "w", "=r", errret); \
21603 + __get_user_asm(x, ptr, retval, "zwl", "k", "=r", errret);\
21604 break; \
21605 case 4: \
21606 __get_user_asm(x, ptr, retval, "l", "k", "=r", errret); \
21607 @@ -358,27 +406,31 @@ do { \
21608 } while (0)
21609
21610 #define __get_user_asm(x, addr, err, itype, rtype, ltype, errret) \
21611 +do { \
21612 + pax_open_userland(); \
21613 asm volatile(ASM_STAC "\n" \
21614 - "1: mov"itype" %2,%"rtype"1\n" \
21615 + "1: "__copyuser_seg"mov"itype" %2,%"rtype"1\n"\
21616 "2: " ASM_CLAC "\n" \
21617 ".section .fixup,\"ax\"\n" \
21618 "3: mov %3,%0\n" \
21619 - " xor"itype" %"rtype"1,%"rtype"1\n" \
21620 + " xorl %k1,%k1\n" \
21621 " jmp 2b\n" \
21622 ".previous\n" \
21623 _ASM_EXTABLE(1b, 3b) \
21624 - : "=r" (err), ltype(x) \
21625 - : "m" (__m(addr)), "i" (errret), "0" (err))
21626 + : "=r" (err), ltype (x) \
21627 + : "m" (__m(addr)), "i" (errret), "0" (err)); \
21628 + pax_close_userland(); \
21629 +} while (0)
21630
21631 #define __get_user_size_ex(x, ptr, size) \
21632 do { \
21633 __chk_user_ptr(ptr); \
21634 switch (size) { \
21635 case 1: \
21636 - __get_user_asm_ex(x, ptr, "b", "b", "=q"); \
21637 + __get_user_asm_ex(x, ptr, "zbl", "k", "=r"); \
21638 break; \
21639 case 2: \
21640 - __get_user_asm_ex(x, ptr, "w", "w", "=r"); \
21641 + __get_user_asm_ex(x, ptr, "zwl", "k", "=r"); \
21642 break; \
21643 case 4: \
21644 __get_user_asm_ex(x, ptr, "l", "k", "=r"); \
21645 @@ -392,7 +444,7 @@ do { \
21646 } while (0)
21647
21648 #define __get_user_asm_ex(x, addr, itype, rtype, ltype) \
21649 - asm volatile("1: mov"itype" %1,%"rtype"0\n" \
21650 + asm volatile("1: "__copyuser_seg"mov"itype" %1,%"rtype"0\n"\
21651 "2:\n" \
21652 _ASM_EXTABLE_EX(1b, 2b) \
21653 : ltype(x) : "m" (__m(addr)))
21654 @@ -407,15 +459,26 @@ do { \
21655 #define __get_user_nocheck(x, ptr, size) \
21656 ({ \
21657 int __gu_err; \
21658 - unsigned long __gu_val; \
21659 + __inttype(*(ptr)) __gu_val; \
21660 __get_user_size(__gu_val, (ptr), (size), __gu_err, -EFAULT); \
21661 - (x) = (__force __typeof__(*(ptr)))__gu_val; \
21662 + (x) = (__typeof__(*(ptr)))__gu_val; \
21663 __builtin_expect(__gu_err, 0); \
21664 })
21665
21666 /* FIXME: this hack is definitely wrong -AK */
21667 struct __large_struct { unsigned long buf[100]; };
21668 -#define __m(x) (*(struct __large_struct __user *)(x))
21669 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21670 +#define ____m(x) \
21671 +({ \
21672 + unsigned long ____x = (unsigned long)(x); \
21673 + if (____x < pax_user_shadow_base) \
21674 + ____x += pax_user_shadow_base; \
21675 + (typeof(x))____x; \
21676 +})
21677 +#else
21678 +#define ____m(x) (x)
21679 +#endif
21680 +#define __m(x) (*(struct __large_struct __user *)____m(x))
21681
21682 /*
21683 * Tell gcc we read from memory instead of writing: this is because
21684 @@ -423,8 +486,10 @@ struct __large_struct { unsigned long buf[100]; };
21685 * aliasing issues.
21686 */
21687 #define __put_user_asm(x, addr, err, itype, rtype, ltype, errret) \
21688 +do { \
21689 + pax_open_userland(); \
21690 asm volatile(ASM_STAC "\n" \
21691 - "1: mov"itype" %"rtype"1,%2\n" \
21692 + "1: "__copyuser_seg"mov"itype" %"rtype"1,%2\n"\
21693 "2: " ASM_CLAC "\n" \
21694 ".section .fixup,\"ax\"\n" \
21695 "3: mov %3,%0\n" \
21696 @@ -432,10 +497,12 @@ struct __large_struct { unsigned long buf[100]; };
21697 ".previous\n" \
21698 _ASM_EXTABLE(1b, 3b) \
21699 : "=r"(err) \
21700 - : ltype(x), "m" (__m(addr)), "i" (errret), "0" (err))
21701 + : ltype (x), "m" (__m(addr)), "i" (errret), "0" (err));\
21702 + pax_close_userland(); \
21703 +} while (0)
21704
21705 #define __put_user_asm_ex(x, addr, itype, rtype, ltype) \
21706 - asm volatile("1: mov"itype" %"rtype"0,%1\n" \
21707 + asm volatile("1: "__copyuser_seg"mov"itype" %"rtype"0,%1\n"\
21708 "2:\n" \
21709 _ASM_EXTABLE_EX(1b, 2b) \
21710 : : ltype(x), "m" (__m(addr)))
21711 @@ -445,11 +512,13 @@ struct __large_struct { unsigned long buf[100]; };
21712 */
21713 #define uaccess_try do { \
21714 current_thread_info()->uaccess_err = 0; \
21715 + pax_open_userland(); \
21716 stac(); \
21717 barrier();
21718
21719 #define uaccess_catch(err) \
21720 clac(); \
21721 + pax_close_userland(); \
21722 (err) |= (current_thread_info()->uaccess_err ? -EFAULT : 0); \
21723 } while (0)
21724
21725 @@ -475,8 +544,12 @@ struct __large_struct { unsigned long buf[100]; };
21726 * On error, the variable @x is set to zero.
21727 */
21728
21729 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21730 +#define __get_user(x, ptr) get_user((x), (ptr))
21731 +#else
21732 #define __get_user(x, ptr) \
21733 __get_user_nocheck((x), (ptr), sizeof(*(ptr)))
21734 +#endif
21735
21736 /**
21737 * __put_user: - Write a simple value into user space, with less checking.
21738 @@ -499,8 +572,12 @@ struct __large_struct { unsigned long buf[100]; };
21739 * Returns zero on success, or -EFAULT on error.
21740 */
21741
21742 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21743 +#define __put_user(x, ptr) put_user((x), (ptr))
21744 +#else
21745 #define __put_user(x, ptr) \
21746 __put_user_nocheck((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))
21747 +#endif
21748
21749 #define __get_user_unaligned __get_user
21750 #define __put_user_unaligned __put_user
21751 @@ -518,7 +595,7 @@ struct __large_struct { unsigned long buf[100]; };
21752 #define get_user_ex(x, ptr) do { \
21753 unsigned long __gue_val; \
21754 __get_user_size_ex((__gue_val), (ptr), (sizeof(*(ptr)))); \
21755 - (x) = (__force __typeof__(*(ptr)))__gue_val; \
21756 + (x) = (__typeof__(*(ptr)))__gue_val; \
21757 } while (0)
21758
21759 #define put_user_try uaccess_try
21760 @@ -536,7 +613,7 @@ extern __must_check long strlen_user(const char __user *str);
21761 extern __must_check long strnlen_user(const char __user *str, long n);
21762
21763 unsigned long __must_check clear_user(void __user *mem, unsigned long len);
21764 -unsigned long __must_check __clear_user(void __user *mem, unsigned long len);
21765 +unsigned long __must_check __clear_user(void __user *mem, unsigned long len) __size_overflow(2);
21766
21767 extern void __cmpxchg_wrong_size(void)
21768 __compiletime_error("Bad argument size for cmpxchg");
21769 @@ -544,21 +621,22 @@ extern void __cmpxchg_wrong_size(void)
21770 #define __user_atomic_cmpxchg_inatomic(uval, ptr, old, new, size) \
21771 ({ \
21772 int __ret = 0; \
21773 - __typeof__(ptr) __uval = (uval); \
21774 - __typeof__(*(ptr)) __old = (old); \
21775 - __typeof__(*(ptr)) __new = (new); \
21776 + __typeof__(uval) __uval = (uval); \
21777 + __typeof__(*(uval)) __old = (old); \
21778 + __typeof__(*(uval)) __new = (new); \
21779 + pax_open_userland(); \
21780 switch (size) { \
21781 case 1: \
21782 { \
21783 asm volatile("\t" ASM_STAC "\n" \
21784 - "1:\t" LOCK_PREFIX "cmpxchgb %4, %2\n" \
21785 + "1:\t" LOCK_PREFIX __copyuser_seg"cmpxchgb %4, %2\n"\
21786 "2:\t" ASM_CLAC "\n" \
21787 "\t.section .fixup, \"ax\"\n" \
21788 "3:\tmov %3, %0\n" \
21789 "\tjmp 2b\n" \
21790 "\t.previous\n" \
21791 _ASM_EXTABLE(1b, 3b) \
21792 - : "+r" (__ret), "=a" (__old), "+m" (*(ptr)) \
21793 + : "+r" (__ret), "=a" (__old), "+m" (*____m(ptr))\
21794 : "i" (-EFAULT), "q" (__new), "1" (__old) \
21795 : "memory" \
21796 ); \
21797 @@ -567,14 +645,14 @@ extern void __cmpxchg_wrong_size(void)
21798 case 2: \
21799 { \
21800 asm volatile("\t" ASM_STAC "\n" \
21801 - "1:\t" LOCK_PREFIX "cmpxchgw %4, %2\n" \
21802 + "1:\t" LOCK_PREFIX __copyuser_seg"cmpxchgw %4, %2\n"\
21803 "2:\t" ASM_CLAC "\n" \
21804 "\t.section .fixup, \"ax\"\n" \
21805 "3:\tmov %3, %0\n" \
21806 "\tjmp 2b\n" \
21807 "\t.previous\n" \
21808 _ASM_EXTABLE(1b, 3b) \
21809 - : "+r" (__ret), "=a" (__old), "+m" (*(ptr)) \
21810 + : "+r" (__ret), "=a" (__old), "+m" (*____m(ptr))\
21811 : "i" (-EFAULT), "r" (__new), "1" (__old) \
21812 : "memory" \
21813 ); \
21814 @@ -583,14 +661,14 @@ extern void __cmpxchg_wrong_size(void)
21815 case 4: \
21816 { \
21817 asm volatile("\t" ASM_STAC "\n" \
21818 - "1:\t" LOCK_PREFIX "cmpxchgl %4, %2\n" \
21819 + "1:\t" LOCK_PREFIX __copyuser_seg"cmpxchgl %4, %2\n"\
21820 "2:\t" ASM_CLAC "\n" \
21821 "\t.section .fixup, \"ax\"\n" \
21822 "3:\tmov %3, %0\n" \
21823 "\tjmp 2b\n" \
21824 "\t.previous\n" \
21825 _ASM_EXTABLE(1b, 3b) \
21826 - : "+r" (__ret), "=a" (__old), "+m" (*(ptr)) \
21827 + : "+r" (__ret), "=a" (__old), "+m" (*____m(ptr))\
21828 : "i" (-EFAULT), "r" (__new), "1" (__old) \
21829 : "memory" \
21830 ); \
21831 @@ -602,14 +680,14 @@ extern void __cmpxchg_wrong_size(void)
21832 __cmpxchg_wrong_size(); \
21833 \
21834 asm volatile("\t" ASM_STAC "\n" \
21835 - "1:\t" LOCK_PREFIX "cmpxchgq %4, %2\n" \
21836 + "1:\t" LOCK_PREFIX __copyuser_seg"cmpxchgq %4, %2\n"\
21837 "2:\t" ASM_CLAC "\n" \
21838 "\t.section .fixup, \"ax\"\n" \
21839 "3:\tmov %3, %0\n" \
21840 "\tjmp 2b\n" \
21841 "\t.previous\n" \
21842 _ASM_EXTABLE(1b, 3b) \
21843 - : "+r" (__ret), "=a" (__old), "+m" (*(ptr)) \
21844 + : "+r" (__ret), "=a" (__old), "+m" (*____m(ptr))\
21845 : "i" (-EFAULT), "r" (__new), "1" (__old) \
21846 : "memory" \
21847 ); \
21848 @@ -618,6 +696,7 @@ extern void __cmpxchg_wrong_size(void)
21849 default: \
21850 __cmpxchg_wrong_size(); \
21851 } \
21852 + pax_close_userland(); \
21853 *__uval = __old; \
21854 __ret; \
21855 })
21856 @@ -641,17 +720,6 @@ extern struct movsl_mask {
21857
21858 #define ARCH_HAS_NOCACHE_UACCESS 1
21859
21860 -#ifdef CONFIG_X86_32
21861 -# include <asm/uaccess_32.h>
21862 -#else
21863 -# include <asm/uaccess_64.h>
21864 -#endif
21865 -
21866 -unsigned long __must_check _copy_from_user(void *to, const void __user *from,
21867 - unsigned n);
21868 -unsigned long __must_check _copy_to_user(void __user *to, const void *from,
21869 - unsigned n);
21870 -
21871 #ifdef CONFIG_DEBUG_STRICT_USER_COPY_CHECKS
21872 # define copy_user_diag __compiletime_error
21873 #else
21874 @@ -661,7 +729,7 @@ unsigned long __must_check _copy_to_user(void __user *to, const void *from,
21875 extern void copy_user_diag("copy_from_user() buffer size is too small")
21876 copy_from_user_overflow(void);
21877 extern void copy_user_diag("copy_to_user() buffer size is too small")
21878 -copy_to_user_overflow(void) __asm__("copy_from_user_overflow");
21879 +copy_to_user_overflow(void);
21880
21881 #undef copy_user_diag
21882
21883 @@ -674,7 +742,7 @@ __copy_from_user_overflow(void) __asm__("copy_from_user_overflow");
21884
21885 extern void
21886 __compiletime_warning("copy_to_user() buffer size is not provably correct")
21887 -__copy_to_user_overflow(void) __asm__("copy_from_user_overflow");
21888 +__copy_to_user_overflow(void) __asm__("copy_to_user_overflow");
21889 #define __copy_to_user_overflow(size, count) __copy_to_user_overflow()
21890
21891 #else
21892 @@ -689,10 +757,16 @@ __copy_from_user_overflow(int size, unsigned long count)
21893
21894 #endif
21895
21896 +#ifdef CONFIG_X86_32
21897 +# include <asm/uaccess_32.h>
21898 +#else
21899 +# include <asm/uaccess_64.h>
21900 +#endif
21901 +
21902 static inline unsigned long __must_check
21903 copy_from_user(void *to, const void __user *from, unsigned long n)
21904 {
21905 - int sz = __compiletime_object_size(to);
21906 + size_t sz = __compiletime_object_size(to);
21907
21908 might_fault();
21909
21910 @@ -714,12 +788,15 @@ copy_from_user(void *to, const void __user *from, unsigned long n)
21911 * case, and do only runtime checking for non-constant sizes.
21912 */
21913
21914 - if (likely(sz < 0 || sz >= n))
21915 - n = _copy_from_user(to, from, n);
21916 - else if(__builtin_constant_p(n))
21917 - copy_from_user_overflow();
21918 - else
21919 - __copy_from_user_overflow(sz, n);
21920 + if (likely(sz != (size_t)-1 && sz < n)) {
21921 + if(__builtin_constant_p(n))
21922 + copy_from_user_overflow();
21923 + else
21924 + __copy_from_user_overflow(sz, n);
21925 + } else if (access_ok(VERIFY_READ, from, n))
21926 + n = __copy_from_user(to, from, n);
21927 + else if ((long)n > 0)
21928 + memset(to, 0, n);
21929
21930 return n;
21931 }
21932 @@ -727,17 +804,18 @@ copy_from_user(void *to, const void __user *from, unsigned long n)
21933 static inline unsigned long __must_check
21934 copy_to_user(void __user *to, const void *from, unsigned long n)
21935 {
21936 - int sz = __compiletime_object_size(from);
21937 + size_t sz = __compiletime_object_size(from);
21938
21939 might_fault();
21940
21941 /* See the comment in copy_from_user() above. */
21942 - if (likely(sz < 0 || sz >= n))
21943 - n = _copy_to_user(to, from, n);
21944 - else if(__builtin_constant_p(n))
21945 - copy_to_user_overflow();
21946 - else
21947 - __copy_to_user_overflow(sz, n);
21948 + if (likely(sz != (size_t)-1 && sz < n)) {
21949 + if(__builtin_constant_p(n))
21950 + copy_to_user_overflow();
21951 + else
21952 + __copy_to_user_overflow(sz, n);
21953 + } else if (access_ok(VERIFY_WRITE, to, n))
21954 + n = __copy_to_user(to, from, n);
21955
21956 return n;
21957 }
21958 diff --git a/arch/x86/include/asm/uaccess_32.h b/arch/x86/include/asm/uaccess_32.h
21959 index f5dcb52..da2c15b 100644
21960 --- a/arch/x86/include/asm/uaccess_32.h
21961 +++ b/arch/x86/include/asm/uaccess_32.h
21962 @@ -40,9 +40,14 @@ unsigned long __must_check __copy_from_user_ll_nocache_nozero
21963 * anything, so this is accurate.
21964 */
21965
21966 -static __always_inline unsigned long __must_check
21967 +static __always_inline __size_overflow(3) unsigned long __must_check
21968 __copy_to_user_inatomic(void __user *to, const void *from, unsigned long n)
21969 {
21970 + if ((long)n < 0)
21971 + return n;
21972 +
21973 + check_object_size(from, n, true);
21974 +
21975 if (__builtin_constant_p(n)) {
21976 unsigned long ret;
21977
21978 @@ -87,12 +92,16 @@ static __always_inline unsigned long __must_check
21979 __copy_to_user(void __user *to, const void *from, unsigned long n)
21980 {
21981 might_fault();
21982 +
21983 return __copy_to_user_inatomic(to, from, n);
21984 }
21985
21986 -static __always_inline unsigned long
21987 +static __always_inline __size_overflow(3) unsigned long
21988 __copy_from_user_inatomic(void *to, const void __user *from, unsigned long n)
21989 {
21990 + if ((long)n < 0)
21991 + return n;
21992 +
21993 /* Avoid zeroing the tail if the copy fails..
21994 * If 'n' is constant and 1, 2, or 4, we do still zero on a failure,
21995 * but as the zeroing behaviour is only significant when n is not
21996 @@ -143,6 +152,12 @@ static __always_inline unsigned long
21997 __copy_from_user(void *to, const void __user *from, unsigned long n)
21998 {
21999 might_fault();
22000 +
22001 + if ((long)n < 0)
22002 + return n;
22003 +
22004 + check_object_size(to, n, false);
22005 +
22006 if (__builtin_constant_p(n)) {
22007 unsigned long ret;
22008
22009 @@ -165,6 +180,10 @@ static __always_inline unsigned long __copy_from_user_nocache(void *to,
22010 const void __user *from, unsigned long n)
22011 {
22012 might_fault();
22013 +
22014 + if ((long)n < 0)
22015 + return n;
22016 +
22017 if (__builtin_constant_p(n)) {
22018 unsigned long ret;
22019
22020 @@ -187,7 +206,10 @@ static __always_inline unsigned long
22021 __copy_from_user_inatomic_nocache(void *to, const void __user *from,
22022 unsigned long n)
22023 {
22024 - return __copy_from_user_ll_nocache_nozero(to, from, n);
22025 + if ((long)n < 0)
22026 + return n;
22027 +
22028 + return __copy_from_user_ll_nocache_nozero(to, from, n);
22029 }
22030
22031 #endif /* _ASM_X86_UACCESS_32_H */
22032 diff --git a/arch/x86/include/asm/uaccess_64.h b/arch/x86/include/asm/uaccess_64.h
22033 index f2f9b39..2ae1bf8 100644
22034 --- a/arch/x86/include/asm/uaccess_64.h
22035 +++ b/arch/x86/include/asm/uaccess_64.h
22036 @@ -10,6 +10,9 @@
22037 #include <asm/alternative.h>
22038 #include <asm/cpufeature.h>
22039 #include <asm/page.h>
22040 +#include <asm/pgtable.h>
22041 +
22042 +#define set_fs(x) (current_thread_info()->addr_limit = (x))
22043
22044 /*
22045 * Copy To/From Userspace
22046 @@ -23,8 +26,8 @@ copy_user_generic_string(void *to, const void *from, unsigned len);
22047 __must_check unsigned long
22048 copy_user_generic_unrolled(void *to, const void *from, unsigned len);
22049
22050 -static __always_inline __must_check unsigned long
22051 -copy_user_generic(void *to, const void *from, unsigned len)
22052 +static __always_inline __must_check __size_overflow(3) unsigned long
22053 +copy_user_generic(void *to, const void *from, unsigned long len)
22054 {
22055 unsigned ret;
22056
22057 @@ -46,121 +49,170 @@ copy_user_generic(void *to, const void *from, unsigned len)
22058 }
22059
22060 __must_check unsigned long
22061 -copy_in_user(void __user *to, const void __user *from, unsigned len);
22062 +copy_in_user(void __user *to, const void __user *from, unsigned long len);
22063
22064 static __always_inline __must_check
22065 -int __copy_from_user_nocheck(void *dst, const void __user *src, unsigned size)
22066 +unsigned long __copy_from_user_nocheck(void *dst, const void __user *src, unsigned long size)
22067 {
22068 - int ret = 0;
22069 + size_t sz = __compiletime_object_size(dst);
22070 + unsigned ret = 0;
22071 +
22072 + if (size > INT_MAX)
22073 + return size;
22074 +
22075 + check_object_size(dst, size, false);
22076 +
22077 +#ifdef CONFIG_PAX_MEMORY_UDEREF
22078 + if (!access_ok_noprefault(VERIFY_READ, src, size))
22079 + return size;
22080 +#endif
22081 +
22082 + if (unlikely(sz != (size_t)-1 && sz < size)) {
22083 + if(__builtin_constant_p(size))
22084 + copy_from_user_overflow();
22085 + else
22086 + __copy_from_user_overflow(sz, size);
22087 + return size;
22088 + }
22089
22090 if (!__builtin_constant_p(size))
22091 - return copy_user_generic(dst, (__force void *)src, size);
22092 + return copy_user_generic(dst, (__force_kernel const void *)____m(src), size);
22093 switch (size) {
22094 - case 1:__get_user_asm(*(u8 *)dst, (u8 __user *)src,
22095 + case 1:__get_user_asm(*(u8 *)dst, (const u8 __user *)src,
22096 ret, "b", "b", "=q", 1);
22097 return ret;
22098 - case 2:__get_user_asm(*(u16 *)dst, (u16 __user *)src,
22099 + case 2:__get_user_asm(*(u16 *)dst, (const u16 __user *)src,
22100 ret, "w", "w", "=r", 2);
22101 return ret;
22102 - case 4:__get_user_asm(*(u32 *)dst, (u32 __user *)src,
22103 + case 4:__get_user_asm(*(u32 *)dst, (const u32 __user *)src,
22104 ret, "l", "k", "=r", 4);
22105 return ret;
22106 - case 8:__get_user_asm(*(u64 *)dst, (u64 __user *)src,
22107 + case 8:__get_user_asm(*(u64 *)dst, (const u64 __user *)src,
22108 ret, "q", "", "=r", 8);
22109 return ret;
22110 case 10:
22111 - __get_user_asm(*(u64 *)dst, (u64 __user *)src,
22112 + __get_user_asm(*(u64 *)dst, (const u64 __user *)src,
22113 ret, "q", "", "=r", 10);
22114 if (unlikely(ret))
22115 return ret;
22116 __get_user_asm(*(u16 *)(8 + (char *)dst),
22117 - (u16 __user *)(8 + (char __user *)src),
22118 + (const u16 __user *)(8 + (const char __user *)src),
22119 ret, "w", "w", "=r", 2);
22120 return ret;
22121 case 16:
22122 - __get_user_asm(*(u64 *)dst, (u64 __user *)src,
22123 + __get_user_asm(*(u64 *)dst, (const u64 __user *)src,
22124 ret, "q", "", "=r", 16);
22125 if (unlikely(ret))
22126 return ret;
22127 __get_user_asm(*(u64 *)(8 + (char *)dst),
22128 - (u64 __user *)(8 + (char __user *)src),
22129 + (const u64 __user *)(8 + (const char __user *)src),
22130 ret, "q", "", "=r", 8);
22131 return ret;
22132 default:
22133 - return copy_user_generic(dst, (__force void *)src, size);
22134 + return copy_user_generic(dst, (__force_kernel const void *)____m(src), size);
22135 }
22136 }
22137
22138 static __always_inline __must_check
22139 -int __copy_from_user(void *dst, const void __user *src, unsigned size)
22140 +unsigned long __copy_from_user(void *dst, const void __user *src, unsigned long size)
22141 {
22142 might_fault();
22143 return __copy_from_user_nocheck(dst, src, size);
22144 }
22145
22146 static __always_inline __must_check
22147 -int __copy_to_user_nocheck(void __user *dst, const void *src, unsigned size)
22148 +unsigned long __copy_to_user_nocheck(void __user *dst, const void *src, unsigned long size)
22149 {
22150 - int ret = 0;
22151 + size_t sz = __compiletime_object_size(src);
22152 + unsigned ret = 0;
22153 +
22154 + if (size > INT_MAX)
22155 + return size;
22156 +
22157 + check_object_size(src, size, true);
22158 +
22159 +#ifdef CONFIG_PAX_MEMORY_UDEREF
22160 + if (!access_ok_noprefault(VERIFY_WRITE, dst, size))
22161 + return size;
22162 +#endif
22163 +
22164 + if (unlikely(sz != (size_t)-1 && sz < size)) {
22165 + if(__builtin_constant_p(size))
22166 + copy_to_user_overflow();
22167 + else
22168 + __copy_to_user_overflow(sz, size);
22169 + return size;
22170 + }
22171
22172 if (!__builtin_constant_p(size))
22173 - return copy_user_generic((__force void *)dst, src, size);
22174 + return copy_user_generic((__force_kernel void *)____m(dst), src, size);
22175 switch (size) {
22176 - case 1:__put_user_asm(*(u8 *)src, (u8 __user *)dst,
22177 + case 1:__put_user_asm(*(const u8 *)src, (u8 __user *)dst,
22178 ret, "b", "b", "iq", 1);
22179 return ret;
22180 - case 2:__put_user_asm(*(u16 *)src, (u16 __user *)dst,
22181 + case 2:__put_user_asm(*(const u16 *)src, (u16 __user *)dst,
22182 ret, "w", "w", "ir", 2);
22183 return ret;
22184 - case 4:__put_user_asm(*(u32 *)src, (u32 __user *)dst,
22185 + case 4:__put_user_asm(*(const u32 *)src, (u32 __user *)dst,
22186 ret, "l", "k", "ir", 4);
22187 return ret;
22188 - case 8:__put_user_asm(*(u64 *)src, (u64 __user *)dst,
22189 + case 8:__put_user_asm(*(const u64 *)src, (u64 __user *)dst,
22190 ret, "q", "", "er", 8);
22191 return ret;
22192 case 10:
22193 - __put_user_asm(*(u64 *)src, (u64 __user *)dst,
22194 + __put_user_asm(*(const u64 *)src, (u64 __user *)dst,
22195 ret, "q", "", "er", 10);
22196 if (unlikely(ret))
22197 return ret;
22198 asm("":::"memory");
22199 - __put_user_asm(4[(u16 *)src], 4 + (u16 __user *)dst,
22200 + __put_user_asm(4[(const u16 *)src], 4 + (u16 __user *)dst,
22201 ret, "w", "w", "ir", 2);
22202 return ret;
22203 case 16:
22204 - __put_user_asm(*(u64 *)src, (u64 __user *)dst,
22205 + __put_user_asm(*(const u64 *)src, (u64 __user *)dst,
22206 ret, "q", "", "er", 16);
22207 if (unlikely(ret))
22208 return ret;
22209 asm("":::"memory");
22210 - __put_user_asm(1[(u64 *)src], 1 + (u64 __user *)dst,
22211 + __put_user_asm(1[(const u64 *)src], 1 + (u64 __user *)dst,
22212 ret, "q", "", "er", 8);
22213 return ret;
22214 default:
22215 - return copy_user_generic((__force void *)dst, src, size);
22216 + return copy_user_generic((__force_kernel void *)____m(dst), src, size);
22217 }
22218 }
22219
22220 static __always_inline __must_check
22221 -int __copy_to_user(void __user *dst, const void *src, unsigned size)
22222 +unsigned long __copy_to_user(void __user *dst, const void *src, unsigned long size)
22223 {
22224 might_fault();
22225 return __copy_to_user_nocheck(dst, src, size);
22226 }
22227
22228 static __always_inline __must_check
22229 -int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22230 +unsigned long __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22231 {
22232 - int ret = 0;
22233 + unsigned ret = 0;
22234
22235 might_fault();
22236 +
22237 + if (size > INT_MAX)
22238 + return size;
22239 +
22240 +#ifdef CONFIG_PAX_MEMORY_UDEREF
22241 + if (!access_ok_noprefault(VERIFY_READ, src, size))
22242 + return size;
22243 + if (!access_ok_noprefault(VERIFY_WRITE, dst, size))
22244 + return size;
22245 +#endif
22246 +
22247 if (!__builtin_constant_p(size))
22248 - return copy_user_generic((__force void *)dst,
22249 - (__force void *)src, size);
22250 + return copy_user_generic((__force_kernel void *)____m(dst),
22251 + (__force_kernel const void *)____m(src), size);
22252 switch (size) {
22253 case 1: {
22254 u8 tmp;
22255 - __get_user_asm(tmp, (u8 __user *)src,
22256 + __get_user_asm(tmp, (const u8 __user *)src,
22257 ret, "b", "b", "=q", 1);
22258 if (likely(!ret))
22259 __put_user_asm(tmp, (u8 __user *)dst,
22260 @@ -169,7 +221,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22261 }
22262 case 2: {
22263 u16 tmp;
22264 - __get_user_asm(tmp, (u16 __user *)src,
22265 + __get_user_asm(tmp, (const u16 __user *)src,
22266 ret, "w", "w", "=r", 2);
22267 if (likely(!ret))
22268 __put_user_asm(tmp, (u16 __user *)dst,
22269 @@ -179,7 +231,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22270
22271 case 4: {
22272 u32 tmp;
22273 - __get_user_asm(tmp, (u32 __user *)src,
22274 + __get_user_asm(tmp, (const u32 __user *)src,
22275 ret, "l", "k", "=r", 4);
22276 if (likely(!ret))
22277 __put_user_asm(tmp, (u32 __user *)dst,
22278 @@ -188,7 +240,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22279 }
22280 case 8: {
22281 u64 tmp;
22282 - __get_user_asm(tmp, (u64 __user *)src,
22283 + __get_user_asm(tmp, (const u64 __user *)src,
22284 ret, "q", "", "=r", 8);
22285 if (likely(!ret))
22286 __put_user_asm(tmp, (u64 __user *)dst,
22287 @@ -196,41 +248,58 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22288 return ret;
22289 }
22290 default:
22291 - return copy_user_generic((__force void *)dst,
22292 - (__force void *)src, size);
22293 + return copy_user_generic((__force_kernel void *)____m(dst),
22294 + (__force_kernel const void *)____m(src), size);
22295 }
22296 }
22297
22298 -static __must_check __always_inline int
22299 -__copy_from_user_inatomic(void *dst, const void __user *src, unsigned size)
22300 +static __must_check __always_inline unsigned long
22301 +__copy_from_user_inatomic(void *dst, const void __user *src, unsigned long size)
22302 {
22303 return __copy_from_user_nocheck(dst, src, size);
22304 }
22305
22306 -static __must_check __always_inline int
22307 -__copy_to_user_inatomic(void __user *dst, const void *src, unsigned size)
22308 +static __must_check __always_inline unsigned long
22309 +__copy_to_user_inatomic(void __user *dst, const void *src, unsigned long size)
22310 {
22311 return __copy_to_user_nocheck(dst, src, size);
22312 }
22313
22314 -extern long __copy_user_nocache(void *dst, const void __user *src,
22315 - unsigned size, int zerorest);
22316 +extern unsigned long __copy_user_nocache(void *dst, const void __user *src,
22317 + unsigned long size, int zerorest);
22318
22319 -static inline int
22320 -__copy_from_user_nocache(void *dst, const void __user *src, unsigned size)
22321 +static inline unsigned long
22322 +__copy_from_user_nocache(void *dst, const void __user *src, unsigned long size)
22323 {
22324 might_fault();
22325 +
22326 + if (size > INT_MAX)
22327 + return size;
22328 +
22329 +#ifdef CONFIG_PAX_MEMORY_UDEREF
22330 + if (!access_ok_noprefault(VERIFY_READ, src, size))
22331 + return size;
22332 +#endif
22333 +
22334 return __copy_user_nocache(dst, src, size, 1);
22335 }
22336
22337 -static inline int
22338 +static inline unsigned long
22339 __copy_from_user_inatomic_nocache(void *dst, const void __user *src,
22340 - unsigned size)
22341 + unsigned long size)
22342 {
22343 + if (size > INT_MAX)
22344 + return size;
22345 +
22346 +#ifdef CONFIG_PAX_MEMORY_UDEREF
22347 + if (!access_ok_noprefault(VERIFY_READ, src, size))
22348 + return size;
22349 +#endif
22350 +
22351 return __copy_user_nocache(dst, src, size, 0);
22352 }
22353
22354 unsigned long
22355 -copy_user_handle_tail(char *to, char *from, unsigned len);
22356 +copy_user_handle_tail(char __user *to, char __user *from, unsigned long len) __size_overflow(3);
22357
22358 #endif /* _ASM_X86_UACCESS_64_H */
22359 diff --git a/arch/x86/include/asm/word-at-a-time.h b/arch/x86/include/asm/word-at-a-time.h
22360 index 5b238981..77fdd78 100644
22361 --- a/arch/x86/include/asm/word-at-a-time.h
22362 +++ b/arch/x86/include/asm/word-at-a-time.h
22363 @@ -11,7 +11,7 @@
22364 * and shift, for example.
22365 */
22366 struct word_at_a_time {
22367 - const unsigned long one_bits, high_bits;
22368 + unsigned long one_bits, high_bits;
22369 };
22370
22371 #define WORD_AT_A_TIME_CONSTANTS { REPEAT_BYTE(0x01), REPEAT_BYTE(0x80) }
22372 diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
22373 index cd0fc0c..64e7559 100644
22374 --- a/arch/x86/include/asm/x86_init.h
22375 +++ b/arch/x86/include/asm/x86_init.h
22376 @@ -128,7 +128,7 @@ struct x86_init_ops {
22377 struct x86_init_timers timers;
22378 struct x86_init_iommu iommu;
22379 struct x86_init_pci pci;
22380 -};
22381 +} __no_const;
22382
22383 /**
22384 * struct x86_cpuinit_ops - platform specific cpu hotplug setups
22385 @@ -139,7 +139,7 @@ struct x86_cpuinit_ops {
22386 void (*setup_percpu_clockev)(void);
22387 void (*early_percpu_clock_init)(void);
22388 void (*fixup_cpu_id)(struct cpuinfo_x86 *c, int node);
22389 -};
22390 +} __no_const;
22391
22392 struct timespec;
22393
22394 @@ -167,7 +167,7 @@ struct x86_platform_ops {
22395 void (*save_sched_clock_state)(void);
22396 void (*restore_sched_clock_state)(void);
22397 void (*apic_post_init)(void);
22398 -};
22399 +} __no_const;
22400
22401 struct pci_dev;
22402
22403 @@ -176,12 +176,12 @@ struct x86_msi_ops {
22404 void (*teardown_msi_irq)(unsigned int irq);
22405 void (*teardown_msi_irqs)(struct pci_dev *dev);
22406 void (*restore_msi_irqs)(struct pci_dev *dev);
22407 -};
22408 +} __no_const;
22409
22410 struct x86_io_apic_ops {
22411 unsigned int (*read) (unsigned int apic, unsigned int reg);
22412 void (*disable)(void);
22413 -};
22414 +} __no_const;
22415
22416 extern struct x86_init_ops x86_init;
22417 extern struct x86_cpuinit_ops x86_cpuinit;
22418 diff --git a/arch/x86/include/asm/xen/page.h b/arch/x86/include/asm/xen/page.h
22419 index f5fb840..e45184e 100644
22420 --- a/arch/x86/include/asm/xen/page.h
22421 +++ b/arch/x86/include/asm/xen/page.h
22422 @@ -82,7 +82,7 @@ static inline int xen_safe_read_ulong(unsigned long *addr, unsigned long *val)
22423 * - get_phys_to_machine() is to be called by __pfn_to_mfn() only in special
22424 * cases needing an extended handling.
22425 */
22426 -static inline unsigned long __pfn_to_mfn(unsigned long pfn)
22427 +static inline unsigned long __intentional_overflow(-1) __pfn_to_mfn(unsigned long pfn)
22428 {
22429 unsigned long mfn;
22430
22431 diff --git a/arch/x86/include/uapi/asm/e820.h b/arch/x86/include/uapi/asm/e820.h
22432 index 9dafe59..0293c1d 100644
22433 --- a/arch/x86/include/uapi/asm/e820.h
22434 +++ b/arch/x86/include/uapi/asm/e820.h
22435 @@ -69,7 +69,7 @@ struct e820map {
22436 #define ISA_START_ADDRESS 0xa0000
22437 #define ISA_END_ADDRESS 0x100000
22438
22439 -#define BIOS_BEGIN 0x000a0000
22440 +#define BIOS_BEGIN 0x000c0000
22441 #define BIOS_END 0x00100000
22442
22443 #define BIOS_ROM_BASE 0xffe00000
22444 diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
22445 index b1b78ff..92eb188 100644
22446 --- a/arch/x86/kernel/Makefile
22447 +++ b/arch/x86/kernel/Makefile
22448 @@ -30,7 +30,7 @@ obj-$(CONFIG_MODIFY_LDT_SYSCALL) += ldt.o
22449 obj-y += setup.o x86_init.o i8259.o irqinit.o jump_label.o
22450 obj-$(CONFIG_IRQ_WORK) += irq_work.o
22451 obj-y += probe_roms.o
22452 -obj-$(CONFIG_X86_32) += i386_ksyms_32.o
22453 +obj-$(CONFIG_X86_32) += sys_i386_32.o i386_ksyms_32.o
22454 obj-$(CONFIG_X86_64) += sys_x86_64.o x8664_ksyms_64.o
22455 obj-$(CONFIG_X86_64) += mcount_64.o
22456 obj-$(CONFIG_X86_ESPFIX64) += espfix_64.o
22457 diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
22458 index e759076..441137a 100644
22459 --- a/arch/x86/kernel/acpi/boot.c
22460 +++ b/arch/x86/kernel/acpi/boot.c
22461 @@ -1341,7 +1341,7 @@ static void __init acpi_reduced_hw_init(void)
22462 * If your system is blacklisted here, but you find that acpi=force
22463 * works for you, please contact linux-acpi@vger.kernel.org
22464 */
22465 -static struct dmi_system_id __initdata acpi_dmi_table[] = {
22466 +static const struct dmi_system_id __initconst acpi_dmi_table[] = {
22467 /*
22468 * Boxes that need ACPI disabled
22469 */
22470 @@ -1416,7 +1416,7 @@ static struct dmi_system_id __initdata acpi_dmi_table[] = {
22471 };
22472
22473 /* second table for DMI checks that should run after early-quirks */
22474 -static struct dmi_system_id __initdata acpi_dmi_table_late[] = {
22475 +static const struct dmi_system_id __initconst acpi_dmi_table_late[] = {
22476 /*
22477 * HP laptops which use a DSDT reporting as HP/SB400/10000,
22478 * which includes some code which overrides all temperature
22479 diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c
22480 index adb3eaf..0eb666c 100644
22481 --- a/arch/x86/kernel/acpi/sleep.c
22482 +++ b/arch/x86/kernel/acpi/sleep.c
22483 @@ -100,8 +100,12 @@ int x86_acpi_suspend_lowlevel(void)
22484 #else /* CONFIG_64BIT */
22485 #ifdef CONFIG_SMP
22486 stack_start = (unsigned long)temp_stack + sizeof(temp_stack);
22487 +
22488 + pax_open_kernel();
22489 early_gdt_descr.address =
22490 (unsigned long)get_cpu_gdt_table(smp_processor_id());
22491 + pax_close_kernel();
22492 +
22493 initial_gs = per_cpu_offset(smp_processor_id());
22494 #endif
22495 initial_code = (unsigned long)wakeup_long64;
22496 diff --git a/arch/x86/kernel/acpi/wakeup_32.S b/arch/x86/kernel/acpi/wakeup_32.S
22497 index 0c26b1b..a766e85 100644
22498 --- a/arch/x86/kernel/acpi/wakeup_32.S
22499 +++ b/arch/x86/kernel/acpi/wakeup_32.S
22500 @@ -31,13 +31,11 @@ wakeup_pmode_return:
22501 # and restore the stack ... but you need gdt for this to work
22502 movl saved_context_esp, %esp
22503
22504 - movl %cs:saved_magic, %eax
22505 - cmpl $0x12345678, %eax
22506 + cmpl $0x12345678, saved_magic
22507 jne bogus_magic
22508
22509 # jump to place where we left off
22510 - movl saved_eip, %eax
22511 - jmp *%eax
22512 + jmp *(saved_eip)
22513
22514 bogus_magic:
22515 jmp bogus_magic
22516 diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
22517 index 25f9093..f630040 100644
22518 --- a/arch/x86/kernel/alternative.c
22519 +++ b/arch/x86/kernel/alternative.c
22520 @@ -20,6 +20,7 @@
22521 #include <asm/tlbflush.h>
22522 #include <asm/io.h>
22523 #include <asm/fixmap.h>
22524 +#include <asm/boot.h>
22525
22526 int __read_mostly alternatives_patched;
22527
22528 @@ -261,7 +262,9 @@ static void __init_or_module add_nops(void *insns, unsigned int len)
22529 unsigned int noplen = len;
22530 if (noplen > ASM_NOP_MAX)
22531 noplen = ASM_NOP_MAX;
22532 + pax_open_kernel();
22533 memcpy(insns, ideal_nops[noplen], noplen);
22534 + pax_close_kernel();
22535 insns += noplen;
22536 len -= noplen;
22537 }
22538 @@ -289,6 +292,13 @@ recompute_jump(struct alt_instr *a, u8 *orig_insn, u8 *repl_insn, u8 *insnbuf)
22539 if (a->replacementlen != 5)
22540 return;
22541
22542 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
22543 + if (orig_insn < (u8 *)_text || (u8 *)_einittext <= orig_insn)
22544 + orig_insn = (u8 *)ktva_ktla((unsigned long)orig_insn);
22545 + else
22546 + orig_insn -= ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
22547 +#endif
22548 +
22549 o_dspl = *(s32 *)(insnbuf + 1);
22550
22551 /* next_rip of the replacement JMP */
22552 @@ -364,6 +374,7 @@ void __init_or_module apply_alternatives(struct alt_instr *start,
22553 {
22554 struct alt_instr *a;
22555 u8 *instr, *replacement;
22556 + u8 *vinstr, *vreplacement;
22557 u8 insnbuf[MAX_PATCH_LEN];
22558
22559 DPRINTK("alt table %p -> %p", start, end);
22560 @@ -379,46 +390,71 @@ void __init_or_module apply_alternatives(struct alt_instr *start,
22561 for (a = start; a < end; a++) {
22562 int insnbuf_sz = 0;
22563
22564 - instr = (u8 *)&a->instr_offset + a->instr_offset;
22565 - replacement = (u8 *)&a->repl_offset + a->repl_offset;
22566 + vinstr = instr = (u8 *)&a->instr_offset + a->instr_offset;
22567 +
22568 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
22569 + if ((u8 *)_text - (____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR) <= instr &&
22570 + instr < (u8 *)_einittext - (____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR)) {
22571 + instr += ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
22572 + vinstr = (u8 *)ktla_ktva((unsigned long)instr);
22573 + } else if ((u8 *)_text <= instr && instr < (u8 *)_einittext) {
22574 + vinstr = (u8 *)ktla_ktva((unsigned long)instr);
22575 + } else {
22576 + instr = (u8 *)ktva_ktla((unsigned long)instr);
22577 + }
22578 +#endif
22579 +
22580 + vreplacement = replacement = (u8 *)&a->repl_offset + a->repl_offset;
22581 +
22582 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
22583 + if ((u8 *)_text - (____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR) <= replacement &&
22584 + replacement < (u8 *)_einittext - (____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR)) {
22585 + replacement += ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
22586 + vreplacement = (u8 *)ktla_ktva((unsigned long)replacement);
22587 + } else if ((u8 *)_text <= replacement && replacement < (u8 *)_einittext) {
22588 + vreplacement = (u8 *)ktla_ktva((unsigned long)replacement);
22589 + } else
22590 + replacement = (u8 *)ktva_ktla((unsigned long)replacement);
22591 +#endif
22592 +
22593 BUG_ON(a->instrlen > sizeof(insnbuf));
22594 BUG_ON(a->cpuid >= (NCAPINTS + NBUGINTS) * 32);
22595 if (!boot_cpu_has(a->cpuid)) {
22596 if (a->padlen > 1)
22597 - optimize_nops(a, instr);
22598 + optimize_nops(a, vinstr);
22599
22600 continue;
22601 }
22602
22603 - DPRINTK("feat: %d*32+%d, old: (%p, len: %d), repl: (%p, len: %d), pad: %d",
22604 + DPRINTK("feat: %d*32+%d, old: (%p/%p, len: %d), repl: (%p, len: %d), pad: %d",
22605 a->cpuid >> 5,
22606 a->cpuid & 0x1f,
22607 - instr, a->instrlen,
22608 - replacement, a->replacementlen, a->padlen);
22609 + instr, vinstr, a->instrlen,
22610 + vreplacement, a->replacementlen, a->padlen);
22611
22612 - DUMP_BYTES(instr, a->instrlen, "%p: old_insn: ", instr);
22613 - DUMP_BYTES(replacement, a->replacementlen, "%p: rpl_insn: ", replacement);
22614 + DUMP_BYTES(vinstr, a->instrlen, "%p: old_insn: ", vinstr);
22615 + DUMP_BYTES(vreplacement, a->replacementlen, "%p: rpl_insn: ", vreplacement);
22616
22617 - memcpy(insnbuf, replacement, a->replacementlen);
22618 + memcpy(insnbuf, vreplacement, a->replacementlen);
22619 insnbuf_sz = a->replacementlen;
22620
22621 /* 0xe8 is a relative jump; fix the offset. */
22622 if (*insnbuf == 0xe8 && a->replacementlen == 5) {
22623 - *(s32 *)(insnbuf + 1) += replacement - instr;
22624 + *(s32 *)(insnbuf + 1) += vreplacement - instr;
22625 DPRINTK("Fix CALL offset: 0x%x, CALL 0x%lx",
22626 *(s32 *)(insnbuf + 1),
22627 - (unsigned long)instr + *(s32 *)(insnbuf + 1) + 5);
22628 + (unsigned long)vinstr + *(s32 *)(insnbuf + 1) + 5);
22629 }
22630
22631 - if (a->replacementlen && is_jmp(replacement[0]))
22632 - recompute_jump(a, instr, replacement, insnbuf);
22633 + if (a->replacementlen && is_jmp(vreplacement[0]))
22634 + recompute_jump(a, instr, vreplacement, insnbuf);
22635
22636 if (a->instrlen > a->replacementlen) {
22637 add_nops(insnbuf + a->replacementlen,
22638 a->instrlen - a->replacementlen);
22639 insnbuf_sz += a->instrlen - a->replacementlen;
22640 }
22641 - DUMP_BYTES(insnbuf, insnbuf_sz, "%p: final_insn: ", instr);
22642 + DUMP_BYTES(insnbuf, insnbuf_sz, "%p: final_insn: ", vinstr);
22643
22644 text_poke_early(instr, insnbuf, insnbuf_sz);
22645 }
22646 @@ -434,10 +470,16 @@ static void alternatives_smp_lock(const s32 *start, const s32 *end,
22647 for (poff = start; poff < end; poff++) {
22648 u8 *ptr = (u8 *)poff + *poff;
22649
22650 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
22651 + ptr += ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
22652 + if (ptr < (u8 *)_text || (u8 *)_einittext <= ptr)
22653 + ptr -= ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
22654 +#endif
22655 +
22656 if (!*poff || ptr < text || ptr >= text_end)
22657 continue;
22658 /* turn DS segment override prefix into lock prefix */
22659 - if (*ptr == 0x3e)
22660 + if (*(u8 *)ktla_ktva((unsigned long)ptr) == 0x3e)
22661 text_poke(ptr, ((unsigned char []){0xf0}), 1);
22662 }
22663 mutex_unlock(&text_mutex);
22664 @@ -452,10 +494,16 @@ static void alternatives_smp_unlock(const s32 *start, const s32 *end,
22665 for (poff = start; poff < end; poff++) {
22666 u8 *ptr = (u8 *)poff + *poff;
22667
22668 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
22669 + ptr += ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
22670 + if (ptr < (u8 *)_text || (u8 *)_einittext <= ptr)
22671 + ptr -= ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
22672 +#endif
22673 +
22674 if (!*poff || ptr < text || ptr >= text_end)
22675 continue;
22676 /* turn lock prefix into DS segment override prefix */
22677 - if (*ptr == 0xf0)
22678 + if (*(u8 *)ktla_ktva((unsigned long)ptr) == 0xf0)
22679 text_poke(ptr, ((unsigned char []){0x3E}), 1);
22680 }
22681 mutex_unlock(&text_mutex);
22682 @@ -592,7 +640,7 @@ void __init_or_module apply_paravirt(struct paravirt_patch_site *start,
22683
22684 BUG_ON(p->len > MAX_PATCH_LEN);
22685 /* prep the buffer with the original instructions */
22686 - memcpy(insnbuf, p->instr, p->len);
22687 + memcpy(insnbuf, (const void *)ktla_ktva((unsigned long)p->instr), p->len);
22688 used = pv_init_ops.patch(p->instrtype, p->clobbers, insnbuf,
22689 (unsigned long)p->instr, p->len);
22690
22691 @@ -639,7 +687,7 @@ void __init alternative_instructions(void)
22692 if (!uniproc_patched || num_possible_cpus() == 1)
22693 free_init_pages("SMP alternatives",
22694 (unsigned long)__smp_locks,
22695 - (unsigned long)__smp_locks_end);
22696 + PAGE_ALIGN((unsigned long)__smp_locks_end));
22697 #endif
22698
22699 apply_paravirt(__parainstructions, __parainstructions_end);
22700 @@ -660,13 +708,17 @@ void __init alternative_instructions(void)
22701 * instructions. And on the local CPU you need to be protected again NMI or MCE
22702 * handlers seeing an inconsistent instruction while you patch.
22703 */
22704 -void *__init_or_module text_poke_early(void *addr, const void *opcode,
22705 +void *__kprobes text_poke_early(void *addr, const void *opcode,
22706 size_t len)
22707 {
22708 unsigned long flags;
22709 local_irq_save(flags);
22710 - memcpy(addr, opcode, len);
22711 +
22712 + pax_open_kernel();
22713 + memcpy((void *)ktla_ktva((unsigned long)addr), opcode, len);
22714 sync_core();
22715 + pax_close_kernel();
22716 +
22717 local_irq_restore(flags);
22718 /* Could also do a CLFLUSH here to speed up CPU recovery; but
22719 that causes hangs on some VIA CPUs. */
22720 @@ -688,36 +740,22 @@ void *__init_or_module text_poke_early(void *addr, const void *opcode,
22721 */
22722 void *text_poke(void *addr, const void *opcode, size_t len)
22723 {
22724 - unsigned long flags;
22725 - char *vaddr;
22726 + unsigned char *vaddr = (void *)ktla_ktva((unsigned long)addr);
22727 struct page *pages[2];
22728 - int i;
22729 + size_t i;
22730
22731 if (!core_kernel_text((unsigned long)addr)) {
22732 - pages[0] = vmalloc_to_page(addr);
22733 - pages[1] = vmalloc_to_page(addr + PAGE_SIZE);
22734 + pages[0] = vmalloc_to_page(vaddr);
22735 + pages[1] = vmalloc_to_page(vaddr + PAGE_SIZE);
22736 } else {
22737 - pages[0] = virt_to_page(addr);
22738 + pages[0] = virt_to_page(vaddr);
22739 WARN_ON(!PageReserved(pages[0]));
22740 - pages[1] = virt_to_page(addr + PAGE_SIZE);
22741 + pages[1] = virt_to_page(vaddr + PAGE_SIZE);
22742 }
22743 BUG_ON(!pages[0]);
22744 - local_irq_save(flags);
22745 - set_fixmap(FIX_TEXT_POKE0, page_to_phys(pages[0]));
22746 - if (pages[1])
22747 - set_fixmap(FIX_TEXT_POKE1, page_to_phys(pages[1]));
22748 - vaddr = (char *)fix_to_virt(FIX_TEXT_POKE0);
22749 - memcpy(&vaddr[(unsigned long)addr & ~PAGE_MASK], opcode, len);
22750 - clear_fixmap(FIX_TEXT_POKE0);
22751 - if (pages[1])
22752 - clear_fixmap(FIX_TEXT_POKE1);
22753 - local_flush_tlb();
22754 - sync_core();
22755 - /* Could also do a CLFLUSH here to speed up CPU recovery; but
22756 - that causes hangs on some VIA CPUs. */
22757 + text_poke_early(addr, opcode, len);
22758 for (i = 0; i < len; i++)
22759 - BUG_ON(((char *)addr)[i] != ((char *)opcode)[i]);
22760 - local_irq_restore(flags);
22761 + BUG_ON((vaddr)[i] != ((const unsigned char *)opcode)[i]);
22762 return addr;
22763 }
22764
22765 @@ -771,7 +809,7 @@ int poke_int3_handler(struct pt_regs *regs)
22766 */
22767 void *text_poke_bp(void *addr, const void *opcode, size_t len, void *handler)
22768 {
22769 - unsigned char int3 = 0xcc;
22770 + const unsigned char int3 = 0xcc;
22771
22772 bp_int3_handler = handler;
22773 bp_int3_addr = (u8 *)addr + sizeof(int3);
22774 diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
22775 index 2f69e3b..f301e5f 100644
22776 --- a/arch/x86/kernel/apic/apic.c
22777 +++ b/arch/x86/kernel/apic/apic.c
22778 @@ -171,7 +171,7 @@ int first_system_vector = FIRST_SYSTEM_VECTOR;
22779 /*
22780 * Debug level, exported for io_apic.c
22781 */
22782 -unsigned int apic_verbosity;
22783 +int apic_verbosity;
22784
22785 int pic_mode;
22786
22787 @@ -1868,7 +1868,7 @@ static void __smp_error_interrupt(struct pt_regs *regs)
22788 apic_write(APIC_ESR, 0);
22789 v = apic_read(APIC_ESR);
22790 ack_APIC_irq();
22791 - atomic_inc(&irq_err_count);
22792 + atomic_inc_unchecked(&irq_err_count);
22793
22794 apic_printk(APIC_DEBUG, KERN_DEBUG "APIC error on CPU%d: %02x",
22795 smp_processor_id(), v);
22796 diff --git a/arch/x86/kernel/apic/apic_flat_64.c b/arch/x86/kernel/apic/apic_flat_64.c
22797 index f92ab36..1884323 100644
22798 --- a/arch/x86/kernel/apic/apic_flat_64.c
22799 +++ b/arch/x86/kernel/apic/apic_flat_64.c
22800 @@ -25,7 +25,7 @@
22801 static struct apic apic_physflat;
22802 static struct apic apic_flat;
22803
22804 -struct apic __read_mostly *apic = &apic_flat;
22805 +struct apic *apic __read_only = &apic_flat;
22806 EXPORT_SYMBOL_GPL(apic);
22807
22808 static int flat_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
22809 @@ -154,7 +154,7 @@ static int flat_probe(void)
22810 return 1;
22811 }
22812
22813 -static struct apic apic_flat = {
22814 +static struct apic apic_flat __read_only = {
22815 .name = "flat",
22816 .probe = flat_probe,
22817 .acpi_madt_oem_check = flat_acpi_madt_oem_check,
22818 @@ -259,7 +259,7 @@ static int physflat_probe(void)
22819 return 0;
22820 }
22821
22822 -static struct apic apic_physflat = {
22823 +static struct apic apic_physflat __read_only = {
22824
22825 .name = "physical flat",
22826 .probe = physflat_probe,
22827 diff --git a/arch/x86/kernel/apic/apic_noop.c b/arch/x86/kernel/apic/apic_noop.c
22828 index 0d96749..ce6b722 100644
22829 --- a/arch/x86/kernel/apic/apic_noop.c
22830 +++ b/arch/x86/kernel/apic/apic_noop.c
22831 @@ -108,7 +108,7 @@ static void noop_apic_write(u32 reg, u32 v)
22832 WARN_ON_ONCE(cpu_has_apic && !disable_apic);
22833 }
22834
22835 -struct apic apic_noop = {
22836 +struct apic apic_noop __read_only = {
22837 .name = "noop",
22838 .probe = noop_probe,
22839 .acpi_madt_oem_check = NULL,
22840 diff --git a/arch/x86/kernel/apic/bigsmp_32.c b/arch/x86/kernel/apic/bigsmp_32.c
22841 index 971cf88..a8e01ae 100644
22842 --- a/arch/x86/kernel/apic/bigsmp_32.c
22843 +++ b/arch/x86/kernel/apic/bigsmp_32.c
22844 @@ -147,7 +147,7 @@ static int probe_bigsmp(void)
22845 return dmi_bigsmp;
22846 }
22847
22848 -static struct apic apic_bigsmp = {
22849 +static struct apic apic_bigsmp __read_only = {
22850
22851 .name = "bigsmp",
22852 .probe = probe_bigsmp,
22853 diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
22854 index fdb0fbf..1426add 100644
22855 --- a/arch/x86/kernel/apic/io_apic.c
22856 +++ b/arch/x86/kernel/apic/io_apic.c
22857 @@ -1682,7 +1682,7 @@ static unsigned int startup_ioapic_irq(struct irq_data *data)
22858 return was_pending;
22859 }
22860
22861 -atomic_t irq_mis_count;
22862 +atomic_unchecked_t irq_mis_count;
22863
22864 #ifdef CONFIG_GENERIC_PENDING_IRQ
22865 static bool io_apic_level_ack_pending(struct mp_chip_data *data)
22866 @@ -1821,7 +1821,7 @@ static void ioapic_ack_level(struct irq_data *irq_data)
22867 * at the cpu.
22868 */
22869 if (!(v & (1 << (i & 0x1f)))) {
22870 - atomic_inc(&irq_mis_count);
22871 + atomic_inc_unchecked(&irq_mis_count);
22872 eoi_ioapic_pin(cfg->vector, irq_data->chip_data);
22873 }
22874
22875 @@ -1867,7 +1867,7 @@ static int ioapic_set_affinity(struct irq_data *irq_data,
22876 return ret;
22877 }
22878
22879 -static struct irq_chip ioapic_chip __read_mostly = {
22880 +static struct irq_chip ioapic_chip = {
22881 .name = "IO-APIC",
22882 .irq_startup = startup_ioapic_irq,
22883 .irq_mask = mask_ioapic_irq,
22884 @@ -1936,7 +1936,7 @@ static void ack_lapic_irq(struct irq_data *data)
22885 ack_APIC_irq();
22886 }
22887
22888 -static struct irq_chip lapic_chip __read_mostly = {
22889 +static struct irq_chip lapic_chip = {
22890 .name = "local-APIC",
22891 .irq_mask = mask_lapic_irq,
22892 .irq_unmask = unmask_lapic_irq,
22893 diff --git a/arch/x86/kernel/apic/msi.c b/arch/x86/kernel/apic/msi.c
22894 index 5f1feb6..199d454 100644
22895 --- a/arch/x86/kernel/apic/msi.c
22896 +++ b/arch/x86/kernel/apic/msi.c
22897 @@ -267,7 +267,7 @@ static void hpet_msi_write_msg(struct irq_data *data, struct msi_msg *msg)
22898 hpet_msi_write(irq_data_get_irq_handler_data(data), msg);
22899 }
22900
22901 -static struct irq_chip hpet_msi_controller = {
22902 +static irq_chip_no_const hpet_msi_controller __read_only = {
22903 .name = "HPET-MSI",
22904 .irq_unmask = hpet_msi_unmask,
22905 .irq_mask = hpet_msi_mask,
22906 diff --git a/arch/x86/kernel/apic/probe_32.c b/arch/x86/kernel/apic/probe_32.c
22907 index 7694ae6..5abb08e 100644
22908 --- a/arch/x86/kernel/apic/probe_32.c
22909 +++ b/arch/x86/kernel/apic/probe_32.c
22910 @@ -72,7 +72,7 @@ static int probe_default(void)
22911 return 1;
22912 }
22913
22914 -static struct apic apic_default = {
22915 +static struct apic apic_default __read_only = {
22916
22917 .name = "default",
22918 .probe = probe_default,
22919 @@ -126,7 +126,7 @@ static struct apic apic_default = {
22920
22921 apic_driver(apic_default);
22922
22923 -struct apic *apic = &apic_default;
22924 +struct apic *apic __read_only = &apic_default;
22925 EXPORT_SYMBOL_GPL(apic);
22926
22927 static int cmdline_apic __initdata;
22928 diff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c
22929 index a35f6b5..cced8817 100644
22930 --- a/arch/x86/kernel/apic/vector.c
22931 +++ b/arch/x86/kernel/apic/vector.c
22932 @@ -36,6 +36,7 @@ static struct irq_chip lapic_controller;
22933 static struct apic_chip_data *legacy_irq_data[NR_IRQS_LEGACY];
22934 #endif
22935
22936 +void lock_vector_lock(void) __acquires(&vector_lock);
22937 void lock_vector_lock(void)
22938 {
22939 /* Used to the online set of cpus does not change
22940 @@ -44,6 +45,7 @@ void lock_vector_lock(void)
22941 raw_spin_lock(&vector_lock);
22942 }
22943
22944 +void unlock_vector_lock(void) __releases(&vector_lock);
22945 void unlock_vector_lock(void)
22946 {
22947 raw_spin_unlock(&vector_lock);
22948 diff --git a/arch/x86/kernel/apic/x2apic_cluster.c b/arch/x86/kernel/apic/x2apic_cluster.c
22949 index cc8311c..d72f027 100644
22950 --- a/arch/x86/kernel/apic/x2apic_cluster.c
22951 +++ b/arch/x86/kernel/apic/x2apic_cluster.c
22952 @@ -234,7 +234,7 @@ static void cluster_vector_allocation_domain(int cpu, struct cpumask *retmask,
22953 cpumask_and(retmask, mask, per_cpu(cpus_in_cluster, cpu));
22954 }
22955
22956 -static struct apic apic_x2apic_cluster = {
22957 +static struct apic apic_x2apic_cluster __read_only = {
22958
22959 .name = "cluster x2apic",
22960 .probe = x2apic_cluster_probe,
22961 diff --git a/arch/x86/kernel/apic/x2apic_phys.c b/arch/x86/kernel/apic/x2apic_phys.c
22962 index 662e915..e721634 100644
22963 --- a/arch/x86/kernel/apic/x2apic_phys.c
22964 +++ b/arch/x86/kernel/apic/x2apic_phys.c
22965 @@ -90,7 +90,7 @@ static int x2apic_phys_probe(void)
22966 return apic == &apic_x2apic_phys;
22967 }
22968
22969 -static struct apic apic_x2apic_phys = {
22970 +static struct apic apic_x2apic_phys __read_only = {
22971
22972 .name = "physical x2apic",
22973 .probe = x2apic_phys_probe,
22974 diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c
22975 index 4a13946..067ed8c 100644
22976 --- a/arch/x86/kernel/apic/x2apic_uv_x.c
22977 +++ b/arch/x86/kernel/apic/x2apic_uv_x.c
22978 @@ -374,7 +374,7 @@ static int uv_probe(void)
22979 return apic == &apic_x2apic_uv_x;
22980 }
22981
22982 -static struct apic __refdata apic_x2apic_uv_x = {
22983 +static struct apic apic_x2apic_uv_x __read_only = {
22984
22985 .name = "UV large system",
22986 .probe = uv_probe,
22987 diff --git a/arch/x86/kernel/apm_32.c b/arch/x86/kernel/apm_32.c
22988 index 052c9c3..bc22ccdba 100644
22989 --- a/arch/x86/kernel/apm_32.c
22990 +++ b/arch/x86/kernel/apm_32.c
22991 @@ -432,7 +432,7 @@ static DEFINE_MUTEX(apm_mutex);
22992 * This is for buggy BIOS's that refer to (real mode) segment 0x40
22993 * even though they are called in protected mode.
22994 */
22995 -static struct desc_struct bad_bios_desc = GDT_ENTRY_INIT(0x4092,
22996 +static const struct desc_struct bad_bios_desc = GDT_ENTRY_INIT(0x4093,
22997 (unsigned long)__va(0x400UL), PAGE_SIZE - 0x400 - 1);
22998
22999 static const char driver_version[] = "1.16ac"; /* no spaces */
23000 @@ -610,7 +610,10 @@ static long __apm_bios_call(void *_call)
23001 BUG_ON(cpu != 0);
23002 gdt = get_cpu_gdt_table(cpu);
23003 save_desc_40 = gdt[0x40 / 8];
23004 +
23005 + pax_open_kernel();
23006 gdt[0x40 / 8] = bad_bios_desc;
23007 + pax_close_kernel();
23008
23009 apm_irq_save(flags);
23010 APM_DO_SAVE_SEGS;
23011 @@ -619,7 +622,11 @@ static long __apm_bios_call(void *_call)
23012 &call->esi);
23013 APM_DO_RESTORE_SEGS;
23014 apm_irq_restore(flags);
23015 +
23016 + pax_open_kernel();
23017 gdt[0x40 / 8] = save_desc_40;
23018 + pax_close_kernel();
23019 +
23020 put_cpu();
23021
23022 return call->eax & 0xff;
23023 @@ -686,7 +693,10 @@ static long __apm_bios_call_simple(void *_call)
23024 BUG_ON(cpu != 0);
23025 gdt = get_cpu_gdt_table(cpu);
23026 save_desc_40 = gdt[0x40 / 8];
23027 +
23028 + pax_open_kernel();
23029 gdt[0x40 / 8] = bad_bios_desc;
23030 + pax_close_kernel();
23031
23032 apm_irq_save(flags);
23033 APM_DO_SAVE_SEGS;
23034 @@ -694,7 +704,11 @@ static long __apm_bios_call_simple(void *_call)
23035 &call->eax);
23036 APM_DO_RESTORE_SEGS;
23037 apm_irq_restore(flags);
23038 +
23039 + pax_open_kernel();
23040 gdt[0x40 / 8] = save_desc_40;
23041 + pax_close_kernel();
23042 +
23043 put_cpu();
23044 return error;
23045 }
23046 @@ -2039,7 +2053,7 @@ static int __init swab_apm_power_in_minutes(const struct dmi_system_id *d)
23047 return 0;
23048 }
23049
23050 -static struct dmi_system_id __initdata apm_dmi_table[] = {
23051 +static const struct dmi_system_id __initconst apm_dmi_table[] = {
23052 {
23053 print_if_true,
23054 KERN_WARNING "IBM T23 - BIOS 1.03b+ and controller firmware 1.02+ may be needed for Linux APM.",
23055 @@ -2349,12 +2363,15 @@ static int __init apm_init(void)
23056 * code to that CPU.
23057 */
23058 gdt = get_cpu_gdt_table(0);
23059 +
23060 + pax_open_kernel();
23061 set_desc_base(&gdt[APM_CS >> 3],
23062 (unsigned long)__va((unsigned long)apm_info.bios.cseg << 4));
23063 set_desc_base(&gdt[APM_CS_16 >> 3],
23064 (unsigned long)__va((unsigned long)apm_info.bios.cseg_16 << 4));
23065 set_desc_base(&gdt[APM_DS >> 3],
23066 (unsigned long)__va((unsigned long)apm_info.bios.dseg << 4));
23067 + pax_close_kernel();
23068
23069 proc_create("apm", 0, NULL, &apm_file_ops);
23070
23071 diff --git a/arch/x86/kernel/asm-offsets.c b/arch/x86/kernel/asm-offsets.c
23072 index 439df97..884bc37 100644
23073 --- a/arch/x86/kernel/asm-offsets.c
23074 +++ b/arch/x86/kernel/asm-offsets.c
23075 @@ -32,6 +32,8 @@ void common(void) {
23076 OFFSET(TI_flags, thread_info, flags);
23077 OFFSET(TI_status, thread_info, status);
23078 OFFSET(TI_addr_limit, thread_info, addr_limit);
23079 + OFFSET(TI_lowest_stack, thread_info, lowest_stack);
23080 + DEFINE(TI_task_thread_sp0, offsetof(struct task_struct, thread.sp0) - offsetof(struct task_struct, tinfo));
23081
23082 BLANK();
23083 OFFSET(crypto_tfm_ctx_offset, crypto_tfm, __crt_ctx);
23084 @@ -70,8 +72,26 @@ void common(void) {
23085 #endif
23086 OFFSET(PV_CPU_read_cr0, pv_cpu_ops, read_cr0);
23087 OFFSET(PV_MMU_read_cr2, pv_mmu_ops, read_cr2);
23088 +
23089 +#ifdef CONFIG_PAX_KERNEXEC
23090 + OFFSET(PV_CPU_write_cr0, pv_cpu_ops, write_cr0);
23091 #endif
23092
23093 +#ifdef CONFIG_PAX_MEMORY_UDEREF
23094 + OFFSET(PV_MMU_read_cr3, pv_mmu_ops, read_cr3);
23095 + OFFSET(PV_MMU_write_cr3, pv_mmu_ops, write_cr3);
23096 +#ifdef CONFIG_X86_64
23097 + OFFSET(PV_MMU_set_pgd_batched, pv_mmu_ops, set_pgd_batched);
23098 +#endif
23099 +#endif
23100 +
23101 +#endif
23102 +
23103 + BLANK();
23104 + DEFINE(PAGE_SIZE_asm, PAGE_SIZE);
23105 + DEFINE(PAGE_SHIFT_asm, PAGE_SHIFT);
23106 + DEFINE(THREAD_SIZE_asm, THREAD_SIZE);
23107 +
23108 #ifdef CONFIG_XEN
23109 BLANK();
23110 OFFSET(XEN_vcpu_info_mask, vcpu_info, evtchn_upcall_mask);
23111 diff --git a/arch/x86/kernel/asm-offsets_64.c b/arch/x86/kernel/asm-offsets_64.c
23112 index d8f42f9..a46f1fc 100644
23113 --- a/arch/x86/kernel/asm-offsets_64.c
23114 +++ b/arch/x86/kernel/asm-offsets_64.c
23115 @@ -59,6 +59,7 @@ int main(void)
23116 BLANK();
23117 #undef ENTRY
23118
23119 + DEFINE(TSS_size, sizeof(struct tss_struct));
23120 OFFSET(TSS_ist, tss_struct, x86_tss.ist);
23121 OFFSET(TSS_sp0, tss_struct, x86_tss.sp0);
23122 BLANK();
23123 diff --git a/arch/x86/kernel/cpu/Makefile b/arch/x86/kernel/cpu/Makefile
23124 index 5803130..c899b3d 100644
23125 --- a/arch/x86/kernel/cpu/Makefile
23126 +++ b/arch/x86/kernel/cpu/Makefile
23127 @@ -8,10 +8,6 @@ CFLAGS_REMOVE_common.o = -pg
23128 CFLAGS_REMOVE_perf_event.o = -pg
23129 endif
23130
23131 -# Make sure load_percpu_segment has no stackprotector
23132 -nostackp := $(call cc-option, -fno-stack-protector)
23133 -CFLAGS_common.o := $(nostackp)
23134 -
23135 obj-y := intel_cacheinfo.o scattered.o topology.o
23136 obj-y += common.o
23137 obj-y += rdrand.o
23138 diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
23139 index a8816b3..a9c0bf8 100644
23140 --- a/arch/x86/kernel/cpu/amd.c
23141 +++ b/arch/x86/kernel/cpu/amd.c
23142 @@ -767,7 +767,7 @@ static void init_amd(struct cpuinfo_x86 *c)
23143 static unsigned int amd_size_cache(struct cpuinfo_x86 *c, unsigned int size)
23144 {
23145 /* AMD errata T13 (order #21922) */
23146 - if ((c->x86 == 6)) {
23147 + if (c->x86 == 6) {
23148 /* Duron Rev A0 */
23149 if (c->x86_model == 3 && c->x86_mask == 0)
23150 size = 64;
23151 diff --git a/arch/x86/kernel/cpu/bugs_64.c b/arch/x86/kernel/cpu/bugs_64.c
23152 index 04f0fe5..3c0598c 100644
23153 --- a/arch/x86/kernel/cpu/bugs_64.c
23154 +++ b/arch/x86/kernel/cpu/bugs_64.c
23155 @@ -10,6 +10,7 @@
23156 #include <asm/processor.h>
23157 #include <asm/mtrr.h>
23158 #include <asm/cacheflush.h>
23159 +#include <asm/sections.h>
23160
23161 void __init check_bugs(void)
23162 {
23163 @@ -18,6 +19,7 @@ void __init check_bugs(void)
23164 printk(KERN_INFO "CPU: ");
23165 print_cpu_info(&boot_cpu_data);
23166 #endif
23167 + set_memory_nx((unsigned long)_sinitdata, (__START_KERNEL_map + KERNEL_IMAGE_SIZE - (unsigned long)_sinitdata) >> PAGE_SHIFT);
23168 alternative_instructions();
23169
23170 /*
23171 diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
23172 index c2b7522..a9a9453 100644
23173 --- a/arch/x86/kernel/cpu/common.c
23174 +++ b/arch/x86/kernel/cpu/common.c
23175 @@ -92,60 +92,6 @@ static const struct cpu_dev default_cpu = {
23176
23177 static const struct cpu_dev *this_cpu = &default_cpu;
23178
23179 -DEFINE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page) = { .gdt = {
23180 -#ifdef CONFIG_X86_64
23181 - /*
23182 - * We need valid kernel segments for data and code in long mode too
23183 - * IRET will check the segment types kkeil 2000/10/28
23184 - * Also sysret mandates a special GDT layout
23185 - *
23186 - * TLS descriptors are currently at a different place compared to i386.
23187 - * Hopefully nobody expects them at a fixed place (Wine?)
23188 - */
23189 - [GDT_ENTRY_KERNEL32_CS] = GDT_ENTRY_INIT(0xc09b, 0, 0xfffff),
23190 - [GDT_ENTRY_KERNEL_CS] = GDT_ENTRY_INIT(0xa09b, 0, 0xfffff),
23191 - [GDT_ENTRY_KERNEL_DS] = GDT_ENTRY_INIT(0xc093, 0, 0xfffff),
23192 - [GDT_ENTRY_DEFAULT_USER32_CS] = GDT_ENTRY_INIT(0xc0fb, 0, 0xfffff),
23193 - [GDT_ENTRY_DEFAULT_USER_DS] = GDT_ENTRY_INIT(0xc0f3, 0, 0xfffff),
23194 - [GDT_ENTRY_DEFAULT_USER_CS] = GDT_ENTRY_INIT(0xa0fb, 0, 0xfffff),
23195 -#else
23196 - [GDT_ENTRY_KERNEL_CS] = GDT_ENTRY_INIT(0xc09a, 0, 0xfffff),
23197 - [GDT_ENTRY_KERNEL_DS] = GDT_ENTRY_INIT(0xc092, 0, 0xfffff),
23198 - [GDT_ENTRY_DEFAULT_USER_CS] = GDT_ENTRY_INIT(0xc0fa, 0, 0xfffff),
23199 - [GDT_ENTRY_DEFAULT_USER_DS] = GDT_ENTRY_INIT(0xc0f2, 0, 0xfffff),
23200 - /*
23201 - * Segments used for calling PnP BIOS have byte granularity.
23202 - * They code segments and data segments have fixed 64k limits,
23203 - * the transfer segment sizes are set at run time.
23204 - */
23205 - /* 32-bit code */
23206 - [GDT_ENTRY_PNPBIOS_CS32] = GDT_ENTRY_INIT(0x409a, 0, 0xffff),
23207 - /* 16-bit code */
23208 - [GDT_ENTRY_PNPBIOS_CS16] = GDT_ENTRY_INIT(0x009a, 0, 0xffff),
23209 - /* 16-bit data */
23210 - [GDT_ENTRY_PNPBIOS_DS] = GDT_ENTRY_INIT(0x0092, 0, 0xffff),
23211 - /* 16-bit data */
23212 - [GDT_ENTRY_PNPBIOS_TS1] = GDT_ENTRY_INIT(0x0092, 0, 0),
23213 - /* 16-bit data */
23214 - [GDT_ENTRY_PNPBIOS_TS2] = GDT_ENTRY_INIT(0x0092, 0, 0),
23215 - /*
23216 - * The APM segments have byte granularity and their bases
23217 - * are set at run time. All have 64k limits.
23218 - */
23219 - /* 32-bit code */
23220 - [GDT_ENTRY_APMBIOS_BASE] = GDT_ENTRY_INIT(0x409a, 0, 0xffff),
23221 - /* 16-bit code */
23222 - [GDT_ENTRY_APMBIOS_BASE+1] = GDT_ENTRY_INIT(0x009a, 0, 0xffff),
23223 - /* data */
23224 - [GDT_ENTRY_APMBIOS_BASE+2] = GDT_ENTRY_INIT(0x4092, 0, 0xffff),
23225 -
23226 - [GDT_ENTRY_ESPFIX_SS] = GDT_ENTRY_INIT(0xc092, 0, 0xfffff),
23227 - [GDT_ENTRY_PERCPU] = GDT_ENTRY_INIT(0xc092, 0, 0xfffff),
23228 - GDT_STACK_CANARY_INIT
23229 -#endif
23230 -} };
23231 -EXPORT_PER_CPU_SYMBOL_GPL(gdt_page);
23232 -
23233 static int __init x86_mpx_setup(char *s)
23234 {
23235 /* require an exact match without trailing characters */
23236 @@ -287,6 +233,109 @@ static __always_inline void setup_smap(struct cpuinfo_x86 *c)
23237 }
23238 }
23239
23240 +#ifdef CONFIG_PAX_MEMORY_UDEREF
23241 +#ifdef CONFIG_X86_64
23242 +static bool uderef_enabled __read_only = true;
23243 +unsigned long pax_user_shadow_base __read_only;
23244 +EXPORT_SYMBOL(pax_user_shadow_base);
23245 +extern char pax_enter_kernel_user[];
23246 +extern char pax_exit_kernel_user[];
23247 +
23248 +static int __init setup_pax_weakuderef(char *str)
23249 +{
23250 + if (uderef_enabled)
23251 + pax_user_shadow_base = 1UL << TASK_SIZE_MAX_SHIFT;
23252 + return 1;
23253 +}
23254 +__setup("pax_weakuderef", setup_pax_weakuderef);
23255 +#endif
23256 +
23257 +static int __init setup_pax_nouderef(char *str)
23258 +{
23259 +#ifdef CONFIG_X86_32
23260 + unsigned int cpu;
23261 + struct desc_struct *gdt;
23262 +
23263 + for (cpu = 0; cpu < nr_cpu_ids; cpu++) {
23264 + gdt = get_cpu_gdt_table(cpu);
23265 + gdt[GDT_ENTRY_KERNEL_DS].type = 3;
23266 + gdt[GDT_ENTRY_KERNEL_DS].limit = 0xf;
23267 + gdt[GDT_ENTRY_DEFAULT_USER_CS].limit = 0xf;
23268 + gdt[GDT_ENTRY_DEFAULT_USER_DS].limit = 0xf;
23269 + }
23270 + loadsegment(ds, __KERNEL_DS);
23271 + loadsegment(es, __KERNEL_DS);
23272 + loadsegment(ss, __KERNEL_DS);
23273 +#else
23274 + memcpy(pax_enter_kernel_user, (unsigned char []){0xc3}, 1);
23275 + memcpy(pax_exit_kernel_user, (unsigned char []){0xc3}, 1);
23276 + clone_pgd_mask = ~(pgdval_t)0UL;
23277 + pax_user_shadow_base = 0UL;
23278 + setup_clear_cpu_cap(X86_FEATURE_PCIDUDEREF);
23279 + uderef_enabled = false;
23280 +#endif
23281 +
23282 + return 0;
23283 +}
23284 +early_param("pax_nouderef", setup_pax_nouderef);
23285 +#endif
23286 +
23287 +#ifdef CONFIG_X86_64
23288 +static __init int setup_disable_pcid(char *arg)
23289 +{
23290 + setup_clear_cpu_cap(X86_FEATURE_PCID);
23291 + setup_clear_cpu_cap(X86_FEATURE_INVPCID);
23292 +
23293 +#ifdef CONFIG_PAX_MEMORY_UDEREF
23294 + if (uderef_enabled)
23295 + pax_user_shadow_base = 1UL << TASK_SIZE_MAX_SHIFT;
23296 +#endif
23297 +
23298 + return 1;
23299 +}
23300 +__setup("nopcid", setup_disable_pcid);
23301 +
23302 +static void setup_pcid(struct cpuinfo_x86 *c)
23303 +{
23304 + if (cpu_has(c, X86_FEATURE_PCID)) {
23305 + printk("PAX: PCID detected\n");
23306 + cr4_set_bits(X86_CR4_PCIDE);
23307 + } else
23308 + clear_cpu_cap(c, X86_FEATURE_INVPCID);
23309 +
23310 + if (cpu_has(c, X86_FEATURE_INVPCID))
23311 + printk("PAX: INVPCID detected\n");
23312 +
23313 +#ifdef CONFIG_PAX_MEMORY_UDEREF
23314 + if (!uderef_enabled) {
23315 + printk("PAX: UDEREF disabled\n");
23316 + return;
23317 + }
23318 +
23319 + if (!cpu_has(c, X86_FEATURE_PCID)) {
23320 + pax_open_kernel();
23321 + pax_user_shadow_base = 1UL << TASK_SIZE_MAX_SHIFT;
23322 + pax_close_kernel();
23323 + printk("PAX: slow and weak UDEREF enabled\n");
23324 + return;
23325 + }
23326 +
23327 + set_cpu_cap(c, X86_FEATURE_PCIDUDEREF);
23328 +
23329 + pax_open_kernel();
23330 + clone_pgd_mask = ~(pgdval_t)0UL;
23331 + pax_close_kernel();
23332 + if (pax_user_shadow_base)
23333 + printk("PAX: weak UDEREF enabled\n");
23334 + else {
23335 + set_cpu_cap(c, X86_FEATURE_STRONGUDEREF);
23336 + printk("PAX: strong UDEREF enabled\n");
23337 + }
23338 +#endif
23339 +
23340 +}
23341 +#endif
23342 +
23343 /*
23344 * Some CPU features depend on higher CPUID levels, which may not always
23345 * be available due to CPUID level capping or broken virtualization
23346 @@ -387,7 +436,7 @@ void switch_to_new_gdt(int cpu)
23347 {
23348 struct desc_ptr gdt_descr;
23349
23350 - gdt_descr.address = (long)get_cpu_gdt_table(cpu);
23351 + gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu);
23352 gdt_descr.size = GDT_SIZE - 1;
23353 load_gdt(&gdt_descr);
23354 /* Reload the per-cpu base */
23355 @@ -919,6 +968,20 @@ static void identify_cpu(struct cpuinfo_x86 *c)
23356 setup_smep(c);
23357 setup_smap(c);
23358
23359 +#ifdef CONFIG_X86_32
23360 +#ifdef CONFIG_PAX_PAGEEXEC
23361 + if (!(__supported_pte_mask & _PAGE_NX))
23362 + clear_cpu_cap(c, X86_FEATURE_PSE);
23363 +#endif
23364 +#if defined(CONFIG_PAX_SEGMEXEC) || defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
23365 + clear_cpu_cap(c, X86_FEATURE_SEP);
23366 +#endif
23367 +#endif
23368 +
23369 +#ifdef CONFIG_X86_64
23370 + setup_pcid(c);
23371 +#endif
23372 +
23373 /*
23374 * The vendor-specific functions might have changed features.
23375 * Now we do "generic changes."
23376 @@ -993,7 +1056,7 @@ void enable_sep_cpu(void)
23377 int cpu;
23378
23379 cpu = get_cpu();
23380 - tss = &per_cpu(cpu_tss, cpu);
23381 + tss = cpu_tss + cpu;
23382
23383 if (!boot_cpu_has(X86_FEATURE_SEP))
23384 goto out;
23385 @@ -1139,10 +1202,12 @@ static __init int setup_disablecpuid(char *arg)
23386 }
23387 __setup("clearcpuid=", setup_disablecpuid);
23388
23389 +DEFINE_PER_CPU(struct thread_info *, current_tinfo) = &init_task.tinfo;
23390 +EXPORT_PER_CPU_SYMBOL(current_tinfo);
23391 +
23392 #ifdef CONFIG_X86_64
23393 -struct desc_ptr idt_descr = { NR_VECTORS * 16 - 1, (unsigned long) idt_table };
23394 -struct desc_ptr debug_idt_descr = { NR_VECTORS * 16 - 1,
23395 - (unsigned long) debug_idt_table };
23396 +struct desc_ptr idt_descr __read_only = { NR_VECTORS * 16 - 1, (unsigned long) idt_table };
23397 +const struct desc_ptr debug_idt_descr = { NR_VECTORS * 16 - 1, (unsigned long) debug_idt_table };
23398
23399 DEFINE_PER_CPU_FIRST(union irq_stack_union,
23400 irq_stack_union) __aligned(PAGE_SIZE) __visible;
23401 @@ -1254,21 +1319,21 @@ EXPORT_PER_CPU_SYMBOL(current_task);
23402 DEFINE_PER_CPU(int, __preempt_count) = INIT_PREEMPT_COUNT;
23403 EXPORT_PER_CPU_SYMBOL(__preempt_count);
23404
23405 +#ifdef CONFIG_CC_STACKPROTECTOR
23406 +DEFINE_PER_CPU_ALIGNED(struct stack_canary, stack_canary);
23407 +#endif
23408 +
23409 +#endif /* CONFIG_X86_64 */
23410 +
23411 /*
23412 * On x86_32, vm86 modifies tss.sp0, so sp0 isn't a reliable way to find
23413 * the top of the kernel stack. Use an extra percpu variable to track the
23414 * top of the kernel stack directly.
23415 */
23416 DEFINE_PER_CPU(unsigned long, cpu_current_top_of_stack) =
23417 - (unsigned long)&init_thread_union + THREAD_SIZE;
23418 + (unsigned long)&init_thread_union - 16 + THREAD_SIZE;
23419 EXPORT_PER_CPU_SYMBOL(cpu_current_top_of_stack);
23420
23421 -#ifdef CONFIG_CC_STACKPROTECTOR
23422 -DEFINE_PER_CPU_ALIGNED(struct stack_canary, stack_canary);
23423 -#endif
23424 -
23425 -#endif /* CONFIG_X86_64 */
23426 -
23427 /*
23428 * Clear all 6 debug registers:
23429 */
23430 @@ -1344,7 +1409,7 @@ void cpu_init(void)
23431 */
23432 load_ucode_ap();
23433
23434 - t = &per_cpu(cpu_tss, cpu);
23435 + t = cpu_tss + cpu;
23436 oist = &per_cpu(orig_ist, cpu);
23437
23438 #ifdef CONFIG_NUMA
23439 @@ -1376,7 +1441,6 @@ void cpu_init(void)
23440 wrmsrl(MSR_KERNEL_GS_BASE, 0);
23441 barrier();
23442
23443 - x86_configure_nx();
23444 x2apic_setup();
23445
23446 /*
23447 @@ -1428,7 +1492,7 @@ void cpu_init(void)
23448 {
23449 int cpu = smp_processor_id();
23450 struct task_struct *curr = current;
23451 - struct tss_struct *t = &per_cpu(cpu_tss, cpu);
23452 + struct tss_struct *t = cpu_tss + cpu;
23453 struct thread_struct *thread = &curr->thread;
23454
23455 wait_for_master_cpu(cpu);
23456 diff --git a/arch/x86/kernel/cpu/intel_cacheinfo.c b/arch/x86/kernel/cpu/intel_cacheinfo.c
23457 index e38d338..48498df 100644
23458 --- a/arch/x86/kernel/cpu/intel_cacheinfo.c
23459 +++ b/arch/x86/kernel/cpu/intel_cacheinfo.c
23460 @@ -519,25 +519,23 @@ cache_private_attrs_is_visible(struct kobject *kobj,
23461 return 0;
23462 }
23463
23464 +static struct attribute *amd_l3_attrs[4];
23465 +
23466 static struct attribute_group cache_private_group = {
23467 .is_visible = cache_private_attrs_is_visible,
23468 + .attrs = amd_l3_attrs,
23469 };
23470
23471 static void init_amd_l3_attrs(void)
23472 {
23473 int n = 1;
23474 - static struct attribute **amd_l3_attrs;
23475 -
23476 - if (amd_l3_attrs) /* already initialized */
23477 - return;
23478
23479 if (amd_nb_has_feature(AMD_NB_L3_INDEX_DISABLE))
23480 n += 2;
23481 if (amd_nb_has_feature(AMD_NB_L3_PARTITIONING))
23482 n += 1;
23483
23484 - amd_l3_attrs = kcalloc(n, sizeof(*amd_l3_attrs), GFP_KERNEL);
23485 - if (!amd_l3_attrs)
23486 + if (n > 1 && amd_l3_attrs[0]) /* already initialized */
23487 return;
23488
23489 n = 0;
23490 @@ -547,8 +545,6 @@ static void init_amd_l3_attrs(void)
23491 }
23492 if (amd_nb_has_feature(AMD_NB_L3_PARTITIONING))
23493 amd_l3_attrs[n++] = &dev_attr_subcaches.attr;
23494 -
23495 - cache_private_group.attrs = amd_l3_attrs;
23496 }
23497
23498 const struct attribute_group *
23499 @@ -559,7 +555,7 @@ cache_get_priv_group(struct cacheinfo *this_leaf)
23500 if (this_leaf->level < 3 || !nb)
23501 return NULL;
23502
23503 - if (nb && nb->l3_cache.indices)
23504 + if (nb->l3_cache.indices)
23505 init_amd_l3_attrs();
23506
23507 return &cache_private_group;
23508 diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
23509 index 7e8a736..c00fc59 100644
23510 --- a/arch/x86/kernel/cpu/mcheck/mce.c
23511 +++ b/arch/x86/kernel/cpu/mcheck/mce.c
23512 @@ -47,6 +47,7 @@
23513 #include <asm/tlbflush.h>
23514 #include <asm/mce.h>
23515 #include <asm/msr.h>
23516 +#include <asm/local.h>
23517
23518 #include "mce-internal.h"
23519
23520 @@ -212,8 +213,7 @@ static struct notifier_block mce_srao_nb;
23521 void mce_register_decode_chain(struct notifier_block *nb)
23522 {
23523 /* Ensure SRAO notifier has the highest priority in the decode chain. */
23524 - if (nb != &mce_srao_nb && nb->priority == INT_MAX)
23525 - nb->priority -= 1;
23526 + BUG_ON(nb != &mce_srao_nb && nb->priority == INT_MAX);
23527
23528 atomic_notifier_chain_register(&x86_mce_decoder_chain, nb);
23529 }
23530 @@ -237,7 +237,7 @@ static void print_mce(struct mce *m)
23531 !(m->mcgstatus & MCG_STATUS_EIPV) ? " !INEXACT!" : "",
23532 m->cs, m->ip);
23533
23534 - if (m->cs == __KERNEL_CS)
23535 + if (m->cs == __KERNEL_CS || m->cs == __KERNEXEC_KERNEL_CS)
23536 print_symbol("{%s}", m->ip);
23537 pr_cont("\n");
23538 }
23539 @@ -270,10 +270,10 @@ static void print_mce(struct mce *m)
23540
23541 #define PANIC_TIMEOUT 5 /* 5 seconds */
23542
23543 -static atomic_t mce_panicked;
23544 +static atomic_unchecked_t mce_panicked;
23545
23546 static int fake_panic;
23547 -static atomic_t mce_fake_panicked;
23548 +static atomic_unchecked_t mce_fake_panicked;
23549
23550 /* Panic in progress. Enable interrupts and wait for final IPI */
23551 static void wait_for_panic(void)
23552 @@ -297,7 +297,7 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
23553 /*
23554 * Make sure only one CPU runs in machine check panic
23555 */
23556 - if (atomic_inc_return(&mce_panicked) > 1)
23557 + if (atomic_inc_return_unchecked(&mce_panicked) > 1)
23558 wait_for_panic();
23559 barrier();
23560
23561 @@ -305,7 +305,7 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
23562 console_verbose();
23563 } else {
23564 /* Don't log too much for fake panic */
23565 - if (atomic_inc_return(&mce_fake_panicked) > 1)
23566 + if (atomic_inc_return_unchecked(&mce_fake_panicked) > 1)
23567 return;
23568 }
23569 /* First print corrected ones that are still unlogged */
23570 @@ -344,7 +344,7 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
23571 if (!fake_panic) {
23572 if (panic_timeout == 0)
23573 panic_timeout = mca_cfg.panic_timeout;
23574 - panic(msg);
23575 + panic("%s", msg);
23576 } else
23577 pr_emerg(HW_ERR "Fake kernel panic: %s\n", msg);
23578 }
23579 @@ -697,7 +697,7 @@ static int mce_timed_out(u64 *t, const char *msg)
23580 * might have been modified by someone else.
23581 */
23582 rmb();
23583 - if (atomic_read(&mce_panicked))
23584 + if (atomic_read_unchecked(&mce_panicked))
23585 wait_for_panic();
23586 if (!mca_cfg.monarch_timeout)
23587 goto out;
23588 @@ -1669,7 +1669,7 @@ static void unexpected_machine_check(struct pt_regs *regs, long error_code)
23589 }
23590
23591 /* Call the installed machine check handler for this CPU setup. */
23592 -void (*machine_check_vector)(struct pt_regs *, long error_code) =
23593 +void (*machine_check_vector)(struct pt_regs *, long error_code) __read_only =
23594 unexpected_machine_check;
23595
23596 /*
23597 @@ -1698,7 +1698,9 @@ void mcheck_cpu_init(struct cpuinfo_x86 *c)
23598 return;
23599 }
23600
23601 + pax_open_kernel();
23602 machine_check_vector = do_machine_check;
23603 + pax_close_kernel();
23604
23605 __mcheck_cpu_init_generic();
23606 __mcheck_cpu_init_vendor(c);
23607 @@ -1729,7 +1731,7 @@ void mcheck_cpu_clear(struct cpuinfo_x86 *c)
23608 */
23609
23610 static DEFINE_SPINLOCK(mce_chrdev_state_lock);
23611 -static int mce_chrdev_open_count; /* #times opened */
23612 +static local_t mce_chrdev_open_count; /* #times opened */
23613 static int mce_chrdev_open_exclu; /* already open exclusive? */
23614
23615 static int mce_chrdev_open(struct inode *inode, struct file *file)
23616 @@ -1737,7 +1739,7 @@ static int mce_chrdev_open(struct inode *inode, struct file *file)
23617 spin_lock(&mce_chrdev_state_lock);
23618
23619 if (mce_chrdev_open_exclu ||
23620 - (mce_chrdev_open_count && (file->f_flags & O_EXCL))) {
23621 + (local_read(&mce_chrdev_open_count) && (file->f_flags & O_EXCL))) {
23622 spin_unlock(&mce_chrdev_state_lock);
23623
23624 return -EBUSY;
23625 @@ -1745,7 +1747,7 @@ static int mce_chrdev_open(struct inode *inode, struct file *file)
23626
23627 if (file->f_flags & O_EXCL)
23628 mce_chrdev_open_exclu = 1;
23629 - mce_chrdev_open_count++;
23630 + local_inc(&mce_chrdev_open_count);
23631
23632 spin_unlock(&mce_chrdev_state_lock);
23633
23634 @@ -1756,7 +1758,7 @@ static int mce_chrdev_release(struct inode *inode, struct file *file)
23635 {
23636 spin_lock(&mce_chrdev_state_lock);
23637
23638 - mce_chrdev_open_count--;
23639 + local_dec(&mce_chrdev_open_count);
23640 mce_chrdev_open_exclu = 0;
23641
23642 spin_unlock(&mce_chrdev_state_lock);
23643 @@ -2446,7 +2448,7 @@ static __init void mce_init_banks(void)
23644
23645 for (i = 0; i < mca_cfg.banks; i++) {
23646 struct mce_bank *b = &mce_banks[i];
23647 - struct device_attribute *a = &b->attr;
23648 + device_attribute_no_const *a = &b->attr;
23649
23650 sysfs_attr_init(&a->attr);
23651 a->attr.name = b->attrname;
23652 @@ -2553,7 +2555,7 @@ struct dentry *mce_get_debugfs_dir(void)
23653 static void mce_reset(void)
23654 {
23655 cpu_missing = 0;
23656 - atomic_set(&mce_fake_panicked, 0);
23657 + atomic_set_unchecked(&mce_fake_panicked, 0);
23658 atomic_set(&mce_executing, 0);
23659 atomic_set(&mce_callin, 0);
23660 atomic_set(&global_nwo, 0);
23661 diff --git a/arch/x86/kernel/cpu/mcheck/p5.c b/arch/x86/kernel/cpu/mcheck/p5.c
23662 index 12402e1..9e0f230 100644
23663 --- a/arch/x86/kernel/cpu/mcheck/p5.c
23664 +++ b/arch/x86/kernel/cpu/mcheck/p5.c
23665 @@ -12,6 +12,7 @@
23666 #include <asm/tlbflush.h>
23667 #include <asm/mce.h>
23668 #include <asm/msr.h>
23669 +#include <asm/pgtable.h>
23670
23671 /* By default disabled */
23672 int mce_p5_enabled __read_mostly;
23673 @@ -54,7 +55,9 @@ void intel_p5_mcheck_init(struct cpuinfo_x86 *c)
23674 if (!cpu_has(c, X86_FEATURE_MCE))
23675 return;
23676
23677 + pax_open_kernel();
23678 machine_check_vector = pentium_machine_check;
23679 + pax_close_kernel();
23680 /* Make sure the vector pointer is visible before we enable MCEs: */
23681 wmb();
23682
23683 diff --git a/arch/x86/kernel/cpu/mcheck/winchip.c b/arch/x86/kernel/cpu/mcheck/winchip.c
23684 index 01dd870..6fd1c59 100644
23685 --- a/arch/x86/kernel/cpu/mcheck/winchip.c
23686 +++ b/arch/x86/kernel/cpu/mcheck/winchip.c
23687 @@ -11,6 +11,7 @@
23688 #include <asm/tlbflush.h>
23689 #include <asm/mce.h>
23690 #include <asm/msr.h>
23691 +#include <asm/pgtable.h>
23692
23693 /* Machine check handler for WinChip C6: */
23694 static void winchip_machine_check(struct pt_regs *regs, long error_code)
23695 @@ -28,7 +29,9 @@ void winchip_mcheck_init(struct cpuinfo_x86 *c)
23696 {
23697 u32 lo, hi;
23698
23699 + pax_open_kernel();
23700 machine_check_vector = winchip_machine_check;
23701 + pax_close_kernel();
23702 /* Make sure the vector pointer is visible before we enable MCEs: */
23703 wmb();
23704
23705 diff --git a/arch/x86/kernel/cpu/microcode/intel.c b/arch/x86/kernel/cpu/microcode/intel.c
23706 index ce47402..4a6bdf8 100644
23707 --- a/arch/x86/kernel/cpu/microcode/intel.c
23708 +++ b/arch/x86/kernel/cpu/microcode/intel.c
23709 @@ -1014,13 +1014,13 @@ static enum ucode_state request_microcode_fw(int cpu, struct device *device,
23710
23711 static int get_ucode_user(void *to, const void *from, size_t n)
23712 {
23713 - return copy_from_user(to, from, n);
23714 + return copy_from_user(to, (const void __force_user *)from, n);
23715 }
23716
23717 static enum ucode_state
23718 request_microcode_user(int cpu, const void __user *buf, size_t size)
23719 {
23720 - return generic_load_microcode(cpu, (void *)buf, size, &get_ucode_user);
23721 + return generic_load_microcode(cpu, (__force_kernel void *)buf, size, &get_ucode_user);
23722 }
23723
23724 static void microcode_fini_cpu(int cpu)
23725 diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
23726 index 20e242e..14b1629 100644
23727 --- a/arch/x86/kernel/cpu/mshyperv.c
23728 +++ b/arch/x86/kernel/cpu/mshyperv.c
23729 @@ -193,7 +193,7 @@ static void __init ms_hyperv_init_platform(void)
23730 mark_tsc_unstable("running on Hyper-V");
23731 }
23732
23733 -const __refconst struct hypervisor_x86 x86_hyper_ms_hyperv = {
23734 +const struct hypervisor_x86 x86_hyper_ms_hyperv = {
23735 .name = "Microsoft HyperV",
23736 .detect = ms_hyperv_platform,
23737 .init_platform = ms_hyperv_init_platform,
23738 diff --git a/arch/x86/kernel/cpu/mtrr/generic.c b/arch/x86/kernel/cpu/mtrr/generic.c
23739 index 3b533cf..b40d426 100644
23740 --- a/arch/x86/kernel/cpu/mtrr/generic.c
23741 +++ b/arch/x86/kernel/cpu/mtrr/generic.c
23742 @@ -723,7 +723,8 @@ static DEFINE_RAW_SPINLOCK(set_atomicity_lock);
23743 * The caller must ensure that local interrupts are disabled and
23744 * are reenabled after post_set() has been called.
23745 */
23746 -static void prepare_set(void) __acquires(set_atomicity_lock)
23747 +static void prepare_set(void) __acquires(&set_atomicity_lock);
23748 +static void prepare_set(void)
23749 {
23750 unsigned long cr0;
23751
23752 @@ -759,7 +760,8 @@ static void prepare_set(void) __acquires(set_atomicity_lock)
23753 wbinvd();
23754 }
23755
23756 -static void post_set(void) __releases(set_atomicity_lock)
23757 +static void post_set(void) __releases(&set_atomicity_lock);
23758 +static void post_set(void)
23759 {
23760 /* Flush TLBs (no need to flush caches - they are disabled) */
23761 count_vm_tlb_event(NR_TLB_LOCAL_FLUSH_ALL);
23762 diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c
23763 index f891b47..9dff300 100644
23764 --- a/arch/x86/kernel/cpu/mtrr/main.c
23765 +++ b/arch/x86/kernel/cpu/mtrr/main.c
23766 @@ -72,7 +72,7 @@ static DEFINE_MUTEX(mtrr_mutex);
23767 u64 size_or_mask, size_and_mask;
23768 static bool mtrr_aps_delayed_init;
23769
23770 -static const struct mtrr_ops *mtrr_ops[X86_VENDOR_NUM];
23771 +static const struct mtrr_ops *mtrr_ops[X86_VENDOR_NUM] __read_only;
23772
23773 const struct mtrr_ops *mtrr_if;
23774
23775 diff --git a/arch/x86/kernel/cpu/mtrr/mtrr.h b/arch/x86/kernel/cpu/mtrr/mtrr.h
23776 index 951884d..4796b75 100644
23777 --- a/arch/x86/kernel/cpu/mtrr/mtrr.h
23778 +++ b/arch/x86/kernel/cpu/mtrr/mtrr.h
23779 @@ -25,7 +25,7 @@ struct mtrr_ops {
23780 int (*validate_add_page)(unsigned long base, unsigned long size,
23781 unsigned int type);
23782 int (*have_wrcomb)(void);
23783 -};
23784 +} __do_const;
23785
23786 extern int generic_get_free_region(unsigned long base, unsigned long size,
23787 int replace_reg);
23788 diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c
23789 index 2bf79d7..c188219 100644
23790 --- a/arch/x86/kernel/cpu/perf_event.c
23791 +++ b/arch/x86/kernel/cpu/perf_event.c
23792 @@ -1518,7 +1518,7 @@ static void __init pmu_check_apic(void)
23793
23794 }
23795
23796 -static struct attribute_group x86_pmu_format_group = {
23797 +static attribute_group_no_const x86_pmu_format_group = {
23798 .name = "format",
23799 .attrs = NULL,
23800 };
23801 @@ -1617,7 +1617,7 @@ static struct attribute *events_attr[] = {
23802 NULL,
23803 };
23804
23805 -static struct attribute_group x86_pmu_events_group = {
23806 +static attribute_group_no_const x86_pmu_events_group = {
23807 .name = "events",
23808 .attrs = events_attr,
23809 };
23810 @@ -2203,7 +2203,7 @@ valid_user_frame(const void __user *fp, unsigned long size)
23811 static unsigned long get_segment_base(unsigned int segment)
23812 {
23813 struct desc_struct *desc;
23814 - int idx = segment >> 3;
23815 + unsigned int idx = segment >> 3;
23816
23817 if ((segment & SEGMENT_TI_MASK) == SEGMENT_LDT) {
23818 #ifdef CONFIG_MODIFY_LDT_SYSCALL
23819 @@ -2225,7 +2225,7 @@ static unsigned long get_segment_base(unsigned int segment)
23820 if (idx > GDT_ENTRIES)
23821 return 0;
23822
23823 - desc = raw_cpu_ptr(gdt_page.gdt) + idx;
23824 + desc = get_cpu_gdt_table(smp_processor_id()) + idx;
23825 }
23826
23827 return get_desc_base(desc);
23828 @@ -2315,7 +2315,7 @@ perf_callchain_user(struct perf_callchain_entry *entry, struct pt_regs *regs)
23829 break;
23830
23831 perf_callchain_store(entry, frame.return_address);
23832 - fp = frame.next_frame;
23833 + fp = (const void __force_user *)frame.next_frame;
23834 }
23835 }
23836
23837 diff --git a/arch/x86/kernel/cpu/perf_event.h b/arch/x86/kernel/cpu/perf_event.h
23838 index d0e35eb..5e98530 100644
23839 --- a/arch/x86/kernel/cpu/perf_event.h
23840 +++ b/arch/x86/kernel/cpu/perf_event.h
23841 @@ -791,7 +791,7 @@ static inline void set_linear_ip(struct pt_regs *regs, unsigned long ip)
23842 regs->cs = kernel_ip(ip) ? __KERNEL_CS : __USER_CS;
23843 if (regs->flags & X86_VM_MASK)
23844 regs->flags ^= (PERF_EFLAGS_VM | X86_VM_MASK);
23845 - regs->ip = ip;
23846 + regs->ip = kernel_ip(ip) ? ktva_ktla(ip) : ip;
23847 }
23848
23849 ssize_t x86_event_sysfs_show(char *page, u64 config, u64 event);
23850 diff --git a/arch/x86/kernel/cpu/perf_event_amd_iommu.c b/arch/x86/kernel/cpu/perf_event_amd_iommu.c
23851 index 97242a9..cf9c30e 100644
23852 --- a/arch/x86/kernel/cpu/perf_event_amd_iommu.c
23853 +++ b/arch/x86/kernel/cpu/perf_event_amd_iommu.c
23854 @@ -402,7 +402,7 @@ static void perf_iommu_del(struct perf_event *event, int flags)
23855 static __init int _init_events_attrs(struct perf_amd_iommu *perf_iommu)
23856 {
23857 struct attribute **attrs;
23858 - struct attribute_group *attr_group;
23859 + attribute_group_no_const *attr_group;
23860 int i = 0, j;
23861
23862 while (amd_iommu_v2_event_descs[i].attr.attr.name)
23863 diff --git a/arch/x86/kernel/cpu/perf_event_intel.c b/arch/x86/kernel/cpu/perf_event_intel.c
23864 index e2a4300..1df45be 100644
23865 --- a/arch/x86/kernel/cpu/perf_event_intel.c
23866 +++ b/arch/x86/kernel/cpu/perf_event_intel.c
23867 @@ -2119,6 +2119,8 @@ __intel_get_event_constraints(struct cpu_hw_events *cpuc, int idx,
23868 }
23869
23870 static void
23871 +intel_start_scheduling(struct cpu_hw_events *cpuc) __acquires(&cpuc->excl_cntrs->lock);
23872 +static void
23873 intel_start_scheduling(struct cpu_hw_events *cpuc)
23874 {
23875 struct intel_excl_cntrs *excl_cntrs = cpuc->excl_cntrs;
23876 @@ -2128,14 +2130,18 @@ intel_start_scheduling(struct cpu_hw_events *cpuc)
23877 /*
23878 * nothing needed if in group validation mode
23879 */
23880 - if (cpuc->is_fake || !is_ht_workaround_enabled())
23881 + if (cpuc->is_fake || !is_ht_workaround_enabled()) {
23882 + __acquire(&excl_cntrs->lock);
23883 return;
23884 + }
23885
23886 /*
23887 * no exclusion needed
23888 */
23889 - if (WARN_ON_ONCE(!excl_cntrs))
23890 + if (WARN_ON_ONCE(!excl_cntrs)) {
23891 + __acquire(&excl_cntrs->lock);
23892 return;
23893 + }
23894
23895 xl = &excl_cntrs->states[tid];
23896
23897 @@ -2175,6 +2181,8 @@ static void intel_commit_scheduling(struct cpu_hw_events *cpuc, int idx, int cnt
23898 }
23899
23900 static void
23901 +intel_stop_scheduling(struct cpu_hw_events *cpuc) __releases(&cpuc->excl_cntrs->lock);
23902 +static void
23903 intel_stop_scheduling(struct cpu_hw_events *cpuc)
23904 {
23905 struct intel_excl_cntrs *excl_cntrs = cpuc->excl_cntrs;
23906 @@ -2184,13 +2192,18 @@ intel_stop_scheduling(struct cpu_hw_events *cpuc)
23907 /*
23908 * nothing needed if in group validation mode
23909 */
23910 - if (cpuc->is_fake || !is_ht_workaround_enabled())
23911 + if (cpuc->is_fake || !is_ht_workaround_enabled()) {
23912 + __release(&excl_cntrs->lock);
23913 return;
23914 + }
23915 +
23916 /*
23917 * no exclusion needed
23918 */
23919 - if (WARN_ON_ONCE(!excl_cntrs))
23920 + if (WARN_ON_ONCE(!excl_cntrs)) {
23921 + __release(&excl_cntrs->lock);
23922 return;
23923 + }
23924
23925 xl = &excl_cntrs->states[tid];
23926
23927 @@ -2373,19 +2386,22 @@ static void intel_put_excl_constraints(struct cpu_hw_events *cpuc,
23928 * unused now.
23929 */
23930 if (hwc->idx >= 0) {
23931 + bool sched_started;
23932 +
23933 xl = &excl_cntrs->states[tid];
23934 + sched_started = xl->sched_started;
23935
23936 /*
23937 * put_constraint may be called from x86_schedule_events()
23938 * which already has the lock held so here make locking
23939 * conditional.
23940 */
23941 - if (!xl->sched_started)
23942 + if (!sched_started)
23943 raw_spin_lock(&excl_cntrs->lock);
23944
23945 xl->state[hwc->idx] = INTEL_EXCL_UNUSED;
23946
23947 - if (!xl->sched_started)
23948 + if (!sched_started)
23949 raw_spin_unlock(&excl_cntrs->lock);
23950 }
23951 }
23952 @@ -3258,10 +3274,10 @@ __init int intel_pmu_init(void)
23953 x86_pmu.num_counters_fixed = max((int)edx.split.num_counters_fixed, 3);
23954
23955 if (boot_cpu_has(X86_FEATURE_PDCM)) {
23956 - u64 capabilities;
23957 + u64 capabilities = x86_pmu.intel_cap.capabilities;
23958
23959 - rdmsrl(MSR_IA32_PERF_CAPABILITIES, capabilities);
23960 - x86_pmu.intel_cap.capabilities = capabilities;
23961 + if (rdmsrl_safe(MSR_IA32_PERF_CAPABILITIES, &x86_pmu.intel_cap.capabilities))
23962 + x86_pmu.intel_cap.capabilities = capabilities;
23963 }
23964
23965 intel_ds_init();
23966 diff --git a/arch/x86/kernel/cpu/perf_event_intel_bts.c b/arch/x86/kernel/cpu/perf_event_intel_bts.c
23967 index 2cad71d..5f1baf2 100644
23968 --- a/arch/x86/kernel/cpu/perf_event_intel_bts.c
23969 +++ b/arch/x86/kernel/cpu/perf_event_intel_bts.c
23970 @@ -250,7 +250,7 @@ static void bts_event_start(struct perf_event *event, int flags)
23971 __bts_event_start(event);
23972
23973 /* PMI handler: this counter is running and likely generating PMIs */
23974 - ACCESS_ONCE(bts->started) = 1;
23975 + ACCESS_ONCE_RW(bts->started) = 1;
23976 }
23977
23978 static void __bts_event_stop(struct perf_event *event)
23979 @@ -264,7 +264,7 @@ static void __bts_event_stop(struct perf_event *event)
23980 if (event->hw.state & PERF_HES_STOPPED)
23981 return;
23982
23983 - ACCESS_ONCE(event->hw.state) |= PERF_HES_STOPPED;
23984 + ACCESS_ONCE_RW(event->hw.state) |= PERF_HES_STOPPED;
23985 }
23986
23987 static void bts_event_stop(struct perf_event *event, int flags)
23988 @@ -272,7 +272,7 @@ static void bts_event_stop(struct perf_event *event, int flags)
23989 struct bts_ctx *bts = this_cpu_ptr(&bts_ctx);
23990
23991 /* PMI handler: don't restart this counter */
23992 - ACCESS_ONCE(bts->started) = 0;
23993 + ACCESS_ONCE_RW(bts->started) = 0;
23994
23995 __bts_event_stop(event);
23996
23997 diff --git a/arch/x86/kernel/cpu/perf_event_intel_cqm.c b/arch/x86/kernel/cpu/perf_event_intel_cqm.c
23998 index a316ca9..99344f4 100644
23999 --- a/arch/x86/kernel/cpu/perf_event_intel_cqm.c
24000 +++ b/arch/x86/kernel/cpu/perf_event_intel_cqm.c
24001 @@ -1364,7 +1364,9 @@ static int __init intel_cqm_init(void)
24002 goto out;
24003 }
24004
24005 - event_attr_intel_cqm_llc_scale.event_str = str;
24006 + pax_open_kernel();
24007 + *(const char **)&event_attr_intel_cqm_llc_scale.event_str = str;
24008 + pax_close_kernel();
24009
24010 ret = intel_cqm_setup_rmid_cache();
24011 if (ret)
24012 diff --git a/arch/x86/kernel/cpu/perf_event_intel_ds.c b/arch/x86/kernel/cpu/perf_event_intel_ds.c
24013 index 5db1c77..7acef35 100644
24014 --- a/arch/x86/kernel/cpu/perf_event_intel_ds.c
24015 +++ b/arch/x86/kernel/cpu/perf_event_intel_ds.c
24016 @@ -589,7 +589,7 @@ int intel_pmu_drain_bts_buffer(void)
24017
24018 static inline void intel_pmu_drain_pebs_buffer(void)
24019 {
24020 - struct pt_regs regs;
24021 + struct pt_regs regs = {};
24022
24023 x86_pmu.drain_pebs(&regs);
24024 }
24025 @@ -860,7 +860,7 @@ static int intel_pmu_pebs_fixup_ip(struct pt_regs *regs)
24026 struct cpu_hw_events *cpuc = this_cpu_ptr(&cpu_hw_events);
24027 unsigned long from = cpuc->lbr_entries[0].from;
24028 unsigned long old_to, to = cpuc->lbr_entries[0].to;
24029 - unsigned long ip = regs->ip;
24030 + unsigned long ip = ktva_ktla(regs->ip);
24031 int is_64bit = 0;
24032 void *kaddr;
24033 int size;
24034 @@ -912,6 +912,7 @@ static int intel_pmu_pebs_fixup_ip(struct pt_regs *regs)
24035 } else {
24036 kaddr = (void *)to;
24037 }
24038 + kaddr = (void *)ktva_ktla((unsigned long)kaddr);
24039
24040 do {
24041 struct insn insn;
24042 @@ -1060,7 +1061,7 @@ static void setup_pebs_sample_data(struct perf_event *event,
24043 }
24044
24045 if (event->attr.precise_ip > 1 && x86_pmu.intel_cap.pebs_format >= 2) {
24046 - regs->ip = pebs->real_ip;
24047 + set_linear_ip(regs, pebs->real_ip);
24048 regs->flags |= PERF_EFLAGS_EXACT;
24049 } else if (event->attr.precise_ip > 1 && intel_pmu_pebs_fixup_ip(regs))
24050 regs->flags |= PERF_EFLAGS_EXACT;
24051 diff --git a/arch/x86/kernel/cpu/perf_event_intel_lbr.c b/arch/x86/kernel/cpu/perf_event_intel_lbr.c
24052 index 659f01e..ef67d60 100644
24053 --- a/arch/x86/kernel/cpu/perf_event_intel_lbr.c
24054 +++ b/arch/x86/kernel/cpu/perf_event_intel_lbr.c
24055 @@ -686,7 +686,7 @@ static int branch_type(unsigned long from, unsigned long to, int abort)
24056 * Ensure we don't blindy read any address by validating it is
24057 * a known text address.
24058 */
24059 - if (kernel_text_address(from)) {
24060 + if (kernel_text_address(ktva_ktla(from))) {
24061 addr = (void *)from;
24062 /*
24063 * Assume we can get the maximum possible size
24064 @@ -708,7 +708,7 @@ static int branch_type(unsigned long from, unsigned long to, int abort)
24065 #ifdef CONFIG_X86_64
24066 is64 = kernel_ip((unsigned long)addr) || !test_thread_flag(TIF_IA32);
24067 #endif
24068 - insn_init(&insn, addr, bytes_read, is64);
24069 + insn_init(&insn, (void *)ktva_ktla((unsigned long)addr), bytes_read, is64);
24070 insn_get_opcode(&insn);
24071 if (!insn.opcode.got)
24072 return X86_BR_ABORT;
24073 diff --git a/arch/x86/kernel/cpu/perf_event_intel_pt.c b/arch/x86/kernel/cpu/perf_event_intel_pt.c
24074 index 868e119..be39b45 100644
24075 --- a/arch/x86/kernel/cpu/perf_event_intel_pt.c
24076 +++ b/arch/x86/kernel/cpu/perf_event_intel_pt.c
24077 @@ -132,14 +132,10 @@ static const struct attribute_group *pt_attr_groups[] = {
24078
24079 static int __init pt_pmu_hw_init(void)
24080 {
24081 - struct dev_ext_attribute *de_attrs;
24082 - struct attribute **attrs;
24083 - size_t size;
24084 - int ret;
24085 + static struct dev_ext_attribute de_attrs[ARRAY_SIZE(pt_caps)];
24086 + static struct attribute *attrs[ARRAY_SIZE(pt_caps)];
24087 long i;
24088
24089 - attrs = NULL;
24090 -
24091 for (i = 0; i < PT_CPUID_LEAVES; i++) {
24092 cpuid_count(20, i,
24093 &pt_pmu.caps[CR_EAX + i*PT_CPUID_REGS_NUM],
24094 @@ -148,39 +144,25 @@ static int __init pt_pmu_hw_init(void)
24095 &pt_pmu.caps[CR_EDX + i*PT_CPUID_REGS_NUM]);
24096 }
24097
24098 - ret = -ENOMEM;
24099 - size = sizeof(struct attribute *) * (ARRAY_SIZE(pt_caps)+1);
24100 - attrs = kzalloc(size, GFP_KERNEL);
24101 - if (!attrs)
24102 - goto fail;
24103 -
24104 - size = sizeof(struct dev_ext_attribute) * (ARRAY_SIZE(pt_caps)+1);
24105 - de_attrs = kzalloc(size, GFP_KERNEL);
24106 - if (!de_attrs)
24107 - goto fail;
24108 -
24109 + pax_open_kernel();
24110 for (i = 0; i < ARRAY_SIZE(pt_caps); i++) {
24111 - struct dev_ext_attribute *de_attr = de_attrs + i;
24112 + struct dev_ext_attribute *de_attr = &de_attrs[i];
24113
24114 - de_attr->attr.attr.name = pt_caps[i].name;
24115 + *(const char **)&de_attr->attr.attr.name = pt_caps[i].name;
24116
24117 sysfs_attr_init(&de_attr->attr.attr);
24118
24119 - de_attr->attr.attr.mode = S_IRUGO;
24120 - de_attr->attr.show = pt_cap_show;
24121 - de_attr->var = (void *)i;
24122 + *(umode_t *)&de_attr->attr.attr.mode = S_IRUGO;
24123 + *(void **)&de_attr->attr.show = pt_cap_show;
24124 + *(void **)&de_attr->var = (void *)i;
24125
24126 attrs[i] = &de_attr->attr.attr;
24127 }
24128
24129 - pt_cap_group.attrs = attrs;
24130 + *(struct attribute ***)&pt_cap_group.attrs = attrs;
24131 + pax_close_kernel();
24132
24133 return 0;
24134 -
24135 -fail:
24136 - kfree(attrs);
24137 -
24138 - return ret;
24139 }
24140
24141 #define RTIT_CTL_CYC_PSB (RTIT_CTL_CYCLEACC | \
24142 @@ -996,7 +978,7 @@ static void pt_event_start(struct perf_event *event, int mode)
24143 return;
24144 }
24145
24146 - ACCESS_ONCE(pt->handle_nmi) = 1;
24147 + ACCESS_ONCE_RW(pt->handle_nmi) = 1;
24148 event->hw.state = 0;
24149
24150 pt_config_buffer(buf->cur->table, buf->cur_idx,
24151 @@ -1012,7 +994,7 @@ static void pt_event_stop(struct perf_event *event, int mode)
24152 * Protect against the PMI racing with disabling wrmsr,
24153 * see comment in intel_pt_interrupt().
24154 */
24155 - ACCESS_ONCE(pt->handle_nmi) = 0;
24156 + ACCESS_ONCE_RW(pt->handle_nmi) = 0;
24157 pt_config_start(false);
24158
24159 if (event->hw.state == PERF_HES_STOPPED)
24160 diff --git a/arch/x86/kernel/cpu/perf_event_intel_rapl.c b/arch/x86/kernel/cpu/perf_event_intel_rapl.c
24161 index ed446bd..413b10e 100644
24162 --- a/arch/x86/kernel/cpu/perf_event_intel_rapl.c
24163 +++ b/arch/x86/kernel/cpu/perf_event_intel_rapl.c
24164 @@ -496,7 +496,7 @@ static struct attribute *rapl_events_knl_attr[] = {
24165 NULL,
24166 };
24167
24168 -static struct attribute_group rapl_pmu_events_group = {
24169 +static attribute_group_no_const rapl_pmu_events_group __read_only = {
24170 .name = "events",
24171 .attrs = NULL, /* patched at runtime */
24172 };
24173 diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.c b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
24174 index 61215a6..ceee0e5 100644
24175 --- a/arch/x86/kernel/cpu/perf_event_intel_uncore.c
24176 +++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
24177 @@ -785,7 +785,7 @@ static void __init uncore_types_exit(struct intel_uncore_type **types)
24178 static int __init uncore_type_init(struct intel_uncore_type *type)
24179 {
24180 struct intel_uncore_pmu *pmus;
24181 - struct attribute_group *attr_group;
24182 + attribute_group_no_const *attr_group;
24183 struct attribute **attrs;
24184 int i, j;
24185
24186 diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.h b/arch/x86/kernel/cpu/perf_event_intel_uncore.h
24187 index 2f0a4a9..8f4b802 100644
24188 --- a/arch/x86/kernel/cpu/perf_event_intel_uncore.h
24189 +++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.h
24190 @@ -115,7 +115,7 @@ struct intel_uncore_box {
24191 struct uncore_event_desc {
24192 struct kobj_attribute attr;
24193 const char *config;
24194 -};
24195 +} __do_const;
24196
24197 struct pci2phy_map {
24198 struct list_head list;
24199 diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c
24200 index 628a059..83bced6 100644
24201 --- a/arch/x86/kernel/cpu/vmware.c
24202 +++ b/arch/x86/kernel/cpu/vmware.c
24203 @@ -137,7 +137,7 @@ static bool __init vmware_legacy_x2apic_available(void)
24204 (eax & (1 << VMWARE_PORT_CMD_LEGACY_X2APIC)) != 0;
24205 }
24206
24207 -const __refconst struct hypervisor_x86 x86_hyper_vmware = {
24208 +const struct hypervisor_x86 x86_hyper_vmware = {
24209 .name = "VMware",
24210 .detect = vmware_platform,
24211 .set_cpu_features = vmware_set_cpu_features,
24212 diff --git a/arch/x86/kernel/crash_dump_64.c b/arch/x86/kernel/crash_dump_64.c
24213 index afa64ad..dce67dd 100644
24214 --- a/arch/x86/kernel/crash_dump_64.c
24215 +++ b/arch/x86/kernel/crash_dump_64.c
24216 @@ -36,7 +36,7 @@ ssize_t copy_oldmem_page(unsigned long pfn, char *buf,
24217 return -ENOMEM;
24218
24219 if (userbuf) {
24220 - if (copy_to_user(buf, vaddr + offset, csize)) {
24221 + if (copy_to_user((char __force_user *)buf, vaddr + offset, csize)) {
24222 iounmap(vaddr);
24223 return -EFAULT;
24224 }
24225 diff --git a/arch/x86/kernel/doublefault.c b/arch/x86/kernel/doublefault.c
24226 index f6dfd93..892ade4 100644
24227 --- a/arch/x86/kernel/doublefault.c
24228 +++ b/arch/x86/kernel/doublefault.c
24229 @@ -12,7 +12,7 @@
24230
24231 #define DOUBLEFAULT_STACKSIZE (1024)
24232 static unsigned long doublefault_stack[DOUBLEFAULT_STACKSIZE];
24233 -#define STACK_START (unsigned long)(doublefault_stack+DOUBLEFAULT_STACKSIZE)
24234 +#define STACK_START (unsigned long)(doublefault_stack+DOUBLEFAULT_STACKSIZE-2)
24235
24236 #define ptr_ok(x) ((x) > PAGE_OFFSET && (x) < PAGE_OFFSET + MAXMEM)
24237
24238 @@ -22,7 +22,7 @@ static void doublefault_fn(void)
24239 unsigned long gdt, tss;
24240
24241 native_store_gdt(&gdt_desc);
24242 - gdt = gdt_desc.address;
24243 + gdt = (unsigned long)gdt_desc.address;
24244
24245 printk(KERN_EMERG "PANIC: double fault, gdt at %08lx [%d bytes]\n", gdt, gdt_desc.size);
24246
24247 @@ -59,10 +59,10 @@ struct tss_struct doublefault_tss __cacheline_aligned = {
24248 /* 0x2 bit is always set */
24249 .flags = X86_EFLAGS_SF | 0x2,
24250 .sp = STACK_START,
24251 - .es = __USER_DS,
24252 + .es = __KERNEL_DS,
24253 .cs = __KERNEL_CS,
24254 .ss = __KERNEL_DS,
24255 - .ds = __USER_DS,
24256 + .ds = __KERNEL_DS,
24257 .fs = __KERNEL_PERCPU,
24258
24259 .__cr3 = __pa_nodebug(swapper_pg_dir),
24260 diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
24261 index 9c30acf..8cf2411 100644
24262 --- a/arch/x86/kernel/dumpstack.c
24263 +++ b/arch/x86/kernel/dumpstack.c
24264 @@ -2,6 +2,9 @@
24265 * Copyright (C) 1991, 1992 Linus Torvalds
24266 * Copyright (C) 2000, 2001, 2002 Andi Kleen, SuSE Labs
24267 */
24268 +#ifdef CONFIG_GRKERNSEC_HIDESYM
24269 +#define __INCLUDED_BY_HIDESYM 1
24270 +#endif
24271 #include <linux/kallsyms.h>
24272 #include <linux/kprobes.h>
24273 #include <linux/uaccess.h>
24274 @@ -35,23 +38,21 @@ static void printk_stack_address(unsigned long address, int reliable,
24275
24276 void printk_address(unsigned long address)
24277 {
24278 - pr_cont(" [<%p>] %pS\n", (void *)address, (void *)address);
24279 + pr_cont(" [<%p>] %pA\n", (void *)address, (void *)address);
24280 }
24281
24282 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
24283 static void
24284 print_ftrace_graph_addr(unsigned long addr, void *data,
24285 const struct stacktrace_ops *ops,
24286 - struct thread_info *tinfo, int *graph)
24287 + struct task_struct *task, int *graph)
24288 {
24289 - struct task_struct *task;
24290 unsigned long ret_addr;
24291 int index;
24292
24293 if (addr != (unsigned long)return_to_handler)
24294 return;
24295
24296 - task = tinfo->task;
24297 index = task->curr_ret_stack;
24298
24299 if (!task->ret_stack || index < *graph)
24300 @@ -68,7 +69,7 @@ print_ftrace_graph_addr(unsigned long addr, void *data,
24301 static inline void
24302 print_ftrace_graph_addr(unsigned long addr, void *data,
24303 const struct stacktrace_ops *ops,
24304 - struct thread_info *tinfo, int *graph)
24305 + struct task_struct *task, int *graph)
24306 { }
24307 #endif
24308
24309 @@ -79,10 +80,8 @@ print_ftrace_graph_addr(unsigned long addr, void *data,
24310 * severe exception (double fault, nmi, stack fault, debug, mce) hardware stack
24311 */
24312
24313 -static inline int valid_stack_ptr(struct thread_info *tinfo,
24314 - void *p, unsigned int size, void *end)
24315 +static inline int valid_stack_ptr(void *t, void *p, unsigned int size, void *end)
24316 {
24317 - void *t = tinfo;
24318 if (end) {
24319 if (p < end && p >= (end-THREAD_SIZE))
24320 return 1;
24321 @@ -93,14 +92,14 @@ static inline int valid_stack_ptr(struct thread_info *tinfo,
24322 }
24323
24324 unsigned long
24325 -print_context_stack(struct thread_info *tinfo,
24326 +print_context_stack(struct task_struct *task, void *stack_start,
24327 unsigned long *stack, unsigned long bp,
24328 const struct stacktrace_ops *ops, void *data,
24329 unsigned long *end, int *graph)
24330 {
24331 struct stack_frame *frame = (struct stack_frame *)bp;
24332
24333 - while (valid_stack_ptr(tinfo, stack, sizeof(*stack), end)) {
24334 + while (valid_stack_ptr(stack_start, stack, sizeof(*stack), end)) {
24335 unsigned long addr;
24336
24337 addr = *stack;
24338 @@ -112,7 +111,7 @@ print_context_stack(struct thread_info *tinfo,
24339 } else {
24340 ops->address(data, addr, 0);
24341 }
24342 - print_ftrace_graph_addr(addr, data, ops, tinfo, graph);
24343 + print_ftrace_graph_addr(addr, data, ops, task, graph);
24344 }
24345 stack++;
24346 }
24347 @@ -121,7 +120,7 @@ print_context_stack(struct thread_info *tinfo,
24348 EXPORT_SYMBOL_GPL(print_context_stack);
24349
24350 unsigned long
24351 -print_context_stack_bp(struct thread_info *tinfo,
24352 +print_context_stack_bp(struct task_struct *task, void *stack_start,
24353 unsigned long *stack, unsigned long bp,
24354 const struct stacktrace_ops *ops, void *data,
24355 unsigned long *end, int *graph)
24356 @@ -129,7 +128,7 @@ print_context_stack_bp(struct thread_info *tinfo,
24357 struct stack_frame *frame = (struct stack_frame *)bp;
24358 unsigned long *ret_addr = &frame->return_address;
24359
24360 - while (valid_stack_ptr(tinfo, ret_addr, sizeof(*ret_addr), end)) {
24361 + while (valid_stack_ptr(stack_start, ret_addr, sizeof(*ret_addr), end)) {
24362 unsigned long addr = *ret_addr;
24363
24364 if (!__kernel_text_address(addr))
24365 @@ -138,7 +137,7 @@ print_context_stack_bp(struct thread_info *tinfo,
24366 ops->address(data, addr, 1);
24367 frame = frame->next_frame;
24368 ret_addr = &frame->return_address;
24369 - print_ftrace_graph_addr(addr, data, ops, tinfo, graph);
24370 + print_ftrace_graph_addr(addr, data, ops, task, graph);
24371 }
24372
24373 return (unsigned long)frame;
24374 @@ -226,6 +225,8 @@ unsigned long oops_begin(void)
24375 EXPORT_SYMBOL_GPL(oops_begin);
24376 NOKPROBE_SYMBOL(oops_begin);
24377
24378 +extern void gr_handle_kernel_exploit(void);
24379 +
24380 void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
24381 {
24382 if (regs && kexec_should_crash(current))
24383 @@ -247,7 +248,10 @@ void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
24384 panic("Fatal exception in interrupt");
24385 if (panic_on_oops)
24386 panic("Fatal exception");
24387 - do_exit(signr);
24388 +
24389 + gr_handle_kernel_exploit();
24390 +
24391 + do_group_exit(signr);
24392 }
24393 NOKPROBE_SYMBOL(oops_end);
24394
24395 diff --git a/arch/x86/kernel/dumpstack_32.c b/arch/x86/kernel/dumpstack_32.c
24396 index 464ffd6..01f2cda 100644
24397 --- a/arch/x86/kernel/dumpstack_32.c
24398 +++ b/arch/x86/kernel/dumpstack_32.c
24399 @@ -61,15 +61,14 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24400 bp = stack_frame(task, regs);
24401
24402 for (;;) {
24403 - struct thread_info *context;
24404 + void *stack_start = (void *)((unsigned long)stack & ~(THREAD_SIZE-1));
24405 void *end_stack;
24406
24407 end_stack = is_hardirq_stack(stack, cpu);
24408 if (!end_stack)
24409 end_stack = is_softirq_stack(stack, cpu);
24410
24411 - context = task_thread_info(task);
24412 - bp = ops->walk_stack(context, stack, bp, ops, data,
24413 + bp = ops->walk_stack(task, stack_start, stack, bp, ops, data,
24414 end_stack, &graph);
24415
24416 /* Stop if not on irq stack */
24417 @@ -137,16 +136,17 @@ void show_regs(struct pt_regs *regs)
24418 unsigned int code_len = code_bytes;
24419 unsigned char c;
24420 u8 *ip;
24421 + unsigned long cs_base = get_desc_base(&get_cpu_gdt_table(0)[(0xffff & regs->cs) >> 3]);
24422
24423 pr_emerg("Stack:\n");
24424 show_stack_log_lvl(NULL, regs, &regs->sp, 0, KERN_EMERG);
24425
24426 pr_emerg("Code:");
24427
24428 - ip = (u8 *)regs->ip - code_prologue;
24429 + ip = (u8 *)regs->ip - code_prologue + cs_base;
24430 if (ip < (u8 *)PAGE_OFFSET || probe_kernel_address(ip, c)) {
24431 /* try starting at IP */
24432 - ip = (u8 *)regs->ip;
24433 + ip = (u8 *)regs->ip + cs_base;
24434 code_len = code_len - code_prologue + 1;
24435 }
24436 for (i = 0; i < code_len; i++, ip++) {
24437 @@ -155,7 +155,7 @@ void show_regs(struct pt_regs *regs)
24438 pr_cont(" Bad EIP value.");
24439 break;
24440 }
24441 - if (ip == (u8 *)regs->ip)
24442 + if (ip == (u8 *)regs->ip + cs_base)
24443 pr_cont(" <%02x>", c);
24444 else
24445 pr_cont(" %02x", c);
24446 @@ -168,6 +168,7 @@ int is_valid_bugaddr(unsigned long ip)
24447 {
24448 unsigned short ud2;
24449
24450 + ip = ktla_ktva(ip);
24451 if (ip < PAGE_OFFSET)
24452 return 0;
24453 if (probe_kernel_address((unsigned short *)ip, ud2))
24454 @@ -175,3 +176,15 @@ int is_valid_bugaddr(unsigned long ip)
24455
24456 return ud2 == 0x0b0f;
24457 }
24458 +
24459 +#if defined(CONFIG_PAX_MEMORY_STACKLEAK) || defined(CONFIG_PAX_USERCOPY)
24460 +void __used pax_check_alloca(unsigned long size)
24461 +{
24462 + unsigned long sp = (unsigned long)&sp, stack_left;
24463 +
24464 + /* all kernel stacks are of the same size */
24465 + stack_left = sp & (THREAD_SIZE - 1);
24466 + BUG_ON(stack_left < 256 || size >= stack_left - 256);
24467 +}
24468 +EXPORT_SYMBOL(pax_check_alloca);
24469 +#endif
24470 diff --git a/arch/x86/kernel/dumpstack_64.c b/arch/x86/kernel/dumpstack_64.c
24471 index 5f1c626..1cba97e 100644
24472 --- a/arch/x86/kernel/dumpstack_64.c
24473 +++ b/arch/x86/kernel/dumpstack_64.c
24474 @@ -153,12 +153,12 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24475 const struct stacktrace_ops *ops, void *data)
24476 {
24477 const unsigned cpu = get_cpu();
24478 - struct thread_info *tinfo;
24479 unsigned long *irq_stack = (unsigned long *)per_cpu(irq_stack_ptr, cpu);
24480 unsigned long dummy;
24481 unsigned used = 0;
24482 int graph = 0;
24483 int done = 0;
24484 + void *stack_start;
24485
24486 if (!task)
24487 task = current;
24488 @@ -179,7 +179,6 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24489 * current stack address. If the stacks consist of nested
24490 * exceptions
24491 */
24492 - tinfo = task_thread_info(task);
24493 while (!done) {
24494 unsigned long *stack_end;
24495 enum stack_type stype;
24496 @@ -202,7 +201,7 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24497 if (ops->stack(data, id) < 0)
24498 break;
24499
24500 - bp = ops->walk_stack(tinfo, stack, bp, ops,
24501 + bp = ops->walk_stack(task, stack_end - EXCEPTION_STKSZ, stack, bp, ops,
24502 data, stack_end, &graph);
24503 ops->stack(data, "<EOE>");
24504 /*
24505 @@ -210,6 +209,8 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24506 * second-to-last pointer (index -2 to end) in the
24507 * exception stack:
24508 */
24509 + if ((u16)stack_end[-1] != __KERNEL_DS)
24510 + goto out;
24511 stack = (unsigned long *) stack_end[-2];
24512 done = 0;
24513 break;
24514 @@ -218,7 +219,7 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24515
24516 if (ops->stack(data, "IRQ") < 0)
24517 break;
24518 - bp = ops->walk_stack(tinfo, stack, bp,
24519 + bp = ops->walk_stack(task, irq_stack, stack, bp,
24520 ops, data, stack_end, &graph);
24521 /*
24522 * We link to the next stack (which would be
24523 @@ -240,7 +241,9 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24524 /*
24525 * This handles the process stack:
24526 */
24527 - bp = ops->walk_stack(tinfo, stack, bp, ops, data, NULL, &graph);
24528 + stack_start = (void *)((unsigned long)stack & ~(THREAD_SIZE-1));
24529 + bp = ops->walk_stack(task, stack_start, stack, bp, ops, data, NULL, &graph);
24530 +out:
24531 put_cpu();
24532 }
24533 EXPORT_SYMBOL(dump_trace);
24534 @@ -347,8 +350,55 @@ int is_valid_bugaddr(unsigned long ip)
24535 {
24536 unsigned short ud2;
24537
24538 - if (__copy_from_user(&ud2, (const void __user *) ip, sizeof(ud2)))
24539 + if (probe_kernel_address((unsigned short *)ip, ud2))
24540 return 0;
24541
24542 return ud2 == 0x0b0f;
24543 }
24544 +
24545 +#if defined(CONFIG_PAX_MEMORY_STACKLEAK) || defined(CONFIG_PAX_USERCOPY)
24546 +void __used pax_check_alloca(unsigned long size)
24547 +{
24548 + unsigned long sp = (unsigned long)&sp, stack_start, stack_end;
24549 + unsigned cpu, used;
24550 + char *id;
24551 +
24552 + /* check the process stack first */
24553 + stack_start = (unsigned long)task_stack_page(current);
24554 + stack_end = stack_start + THREAD_SIZE;
24555 + if (likely(stack_start <= sp && sp < stack_end)) {
24556 + unsigned long stack_left = sp & (THREAD_SIZE - 1);
24557 + BUG_ON(stack_left < 256 || size >= stack_left - 256);
24558 + return;
24559 + }
24560 +
24561 + cpu = get_cpu();
24562 +
24563 + /* check the irq stacks */
24564 + stack_end = (unsigned long)per_cpu(irq_stack_ptr, cpu);
24565 + stack_start = stack_end - IRQ_STACK_SIZE;
24566 + if (stack_start <= sp && sp < stack_end) {
24567 + unsigned long stack_left = sp & (IRQ_STACK_SIZE - 1);
24568 + put_cpu();
24569 + BUG_ON(stack_left < 256 || size >= stack_left - 256);
24570 + return;
24571 + }
24572 +
24573 + /* check the exception stacks */
24574 + used = 0;
24575 + stack_end = (unsigned long)in_exception_stack(cpu, sp, &used, &id);
24576 + stack_start = stack_end - EXCEPTION_STKSZ;
24577 + if (stack_end && stack_start <= sp && sp < stack_end) {
24578 + unsigned long stack_left = sp & (EXCEPTION_STKSZ - 1);
24579 + put_cpu();
24580 + BUG_ON(stack_left < 256 || size >= stack_left - 256);
24581 + return;
24582 + }
24583 +
24584 + put_cpu();
24585 +
24586 + /* unknown stack */
24587 + BUG();
24588 +}
24589 +EXPORT_SYMBOL(pax_check_alloca);
24590 +#endif
24591 diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
24592 index 569c1e4..76d787d 100644
24593 --- a/arch/x86/kernel/e820.c
24594 +++ b/arch/x86/kernel/e820.c
24595 @@ -803,8 +803,8 @@ unsigned long __init e820_end_of_low_ram_pfn(void)
24596
24597 static void early_panic(char *msg)
24598 {
24599 - early_printk(msg);
24600 - panic(msg);
24601 + early_printk("%s", msg);
24602 + panic("%s", msg);
24603 }
24604
24605 static int userdef __initdata;
24606 diff --git a/arch/x86/kernel/early_printk.c b/arch/x86/kernel/early_printk.c
24607 index 21bf924..49a5fea3 100644
24608 --- a/arch/x86/kernel/early_printk.c
24609 +++ b/arch/x86/kernel/early_printk.c
24610 @@ -7,6 +7,7 @@
24611 #include <linux/pci_regs.h>
24612 #include <linux/pci_ids.h>
24613 #include <linux/errno.h>
24614 +#include <linux/sched.h>
24615 #include <asm/io.h>
24616 #include <asm/processor.h>
24617 #include <asm/fcntl.h>
24618 diff --git a/arch/x86/kernel/espfix_64.c b/arch/x86/kernel/espfix_64.c
24619 index 4d38416..ec7cc4e 100644
24620 --- a/arch/x86/kernel/espfix_64.c
24621 +++ b/arch/x86/kernel/espfix_64.c
24622 @@ -41,6 +41,7 @@
24623 #include <asm/pgalloc.h>
24624 #include <asm/setup.h>
24625 #include <asm/espfix.h>
24626 +#include <asm/bug.h>
24627
24628 /*
24629 * Note: we only need 6*8 = 48 bytes for the espfix stack, but round
24630 @@ -70,8 +71,10 @@ static DEFINE_MUTEX(espfix_init_mutex);
24631 #define ESPFIX_MAX_PAGES DIV_ROUND_UP(CONFIG_NR_CPUS, ESPFIX_STACKS_PER_PAGE)
24632 static void *espfix_pages[ESPFIX_MAX_PAGES];
24633
24634 -static __page_aligned_bss pud_t espfix_pud_page[PTRS_PER_PUD]
24635 - __aligned(PAGE_SIZE);
24636 +static __page_aligned_rodata pud_t espfix_pud_page[PTRS_PER_PUD];
24637 +static __page_aligned_rodata pmd_t espfix_pmd_page[PTRS_PER_PMD];
24638 +static __page_aligned_rodata pte_t espfix_pte_page[PTRS_PER_PTE];
24639 +static __page_aligned_rodata char espfix_stack_page[ESPFIX_MAX_PAGES][PAGE_SIZE];
24640
24641 static unsigned int page_random, slot_random;
24642
24643 @@ -122,10 +125,19 @@ static void init_espfix_random(void)
24644 void __init init_espfix_bsp(void)
24645 {
24646 pgd_t *pgd_p;
24647 + pud_t *pud_p;
24648 + unsigned long index = pgd_index(ESPFIX_BASE_ADDR);
24649
24650 /* Install the espfix pud into the kernel page directory */
24651 - pgd_p = &init_level4_pgt[pgd_index(ESPFIX_BASE_ADDR)];
24652 - pgd_populate(&init_mm, pgd_p, (pud_t *)espfix_pud_page);
24653 + pgd_p = &init_level4_pgt[index];
24654 + pud_p = espfix_pud_page;
24655 + paravirt_alloc_pud(&init_mm, __pa(pud_p) >> PAGE_SHIFT);
24656 + set_pgd(pgd_p, __pgd(PGTABLE_PROT | __pa(pud_p)));
24657 +
24658 +#ifdef CONFIG_PAX_PER_CPU_PGD
24659 + clone_pgd_range(get_cpu_pgd(0, kernel) + index, swapper_pg_dir + index, 1);
24660 + clone_pgd_range(get_cpu_pgd(0, user) + index, swapper_pg_dir + index, 1);
24661 +#endif
24662
24663 /* Randomize the locations */
24664 init_espfix_random();
24665 @@ -170,35 +182,39 @@ void init_espfix_ap(int cpu)
24666 pud_p = &espfix_pud_page[pud_index(addr)];
24667 pud = *pud_p;
24668 if (!pud_present(pud)) {
24669 - struct page *page = alloc_pages_node(node, PGALLOC_GFP, 0);
24670 -
24671 - pmd_p = (pmd_t *)page_address(page);
24672 + if (cpu)
24673 + pmd_p = page_address(alloc_pages_node(node, PGALLOC_GFP, 0));
24674 + else
24675 + pmd_p = espfix_pmd_page;
24676 pud = __pud(__pa(pmd_p) | (PGTABLE_PROT & ptemask));
24677 paravirt_alloc_pmd(&init_mm, __pa(pmd_p) >> PAGE_SHIFT);
24678 for (n = 0; n < ESPFIX_PUD_CLONES; n++)
24679 set_pud(&pud_p[n], pud);
24680 - }
24681 + } else
24682 + BUG_ON(!cpu);
24683
24684 pmd_p = pmd_offset(&pud, addr);
24685 pmd = *pmd_p;
24686 if (!pmd_present(pmd)) {
24687 - struct page *page = alloc_pages_node(node, PGALLOC_GFP, 0);
24688 -
24689 - pte_p = (pte_t *)page_address(page);
24690 + if (cpu)
24691 + pte_p = page_address(alloc_pages_node(node, PGALLOC_GFP, 0));
24692 + else
24693 + pte_p = espfix_pte_page;
24694 pmd = __pmd(__pa(pte_p) | (PGTABLE_PROT & ptemask));
24695 paravirt_alloc_pte(&init_mm, __pa(pte_p) >> PAGE_SHIFT);
24696 for (n = 0; n < ESPFIX_PMD_CLONES; n++)
24697 set_pmd(&pmd_p[n], pmd);
24698 - }
24699 + } else
24700 + BUG_ON(!cpu);
24701
24702 pte_p = pte_offset_kernel(&pmd, addr);
24703 - stack_page = page_address(alloc_pages_node(node, GFP_KERNEL, 0));
24704 + stack_page = espfix_stack_page[page];
24705 pte = __pte(__pa(stack_page) | (__PAGE_KERNEL_RO & ptemask));
24706 for (n = 0; n < ESPFIX_PTE_CLONES; n++)
24707 set_pte(&pte_p[n*PTE_STRIDE], pte);
24708
24709 /* Job is done for this CPU and any CPU which shares this page */
24710 - ACCESS_ONCE(espfix_pages[page]) = stack_page;
24711 + ACCESS_ONCE_RW(espfix_pages[page]) = stack_page;
24712
24713 unlock_done:
24714 mutex_unlock(&espfix_init_mutex);
24715 diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c
24716 index d25097c..e2df353 100644
24717 --- a/arch/x86/kernel/fpu/core.c
24718 +++ b/arch/x86/kernel/fpu/core.c
24719 @@ -127,7 +127,7 @@ void __kernel_fpu_end(void)
24720 struct fpu *fpu = &current->thread.fpu;
24721
24722 if (fpu->fpregs_active)
24723 - copy_kernel_to_fpregs(&fpu->state);
24724 + copy_kernel_to_fpregs(fpu->state);
24725 else
24726 __fpregs_deactivate_hw();
24727
24728 @@ -238,7 +238,7 @@ static void fpu_copy(struct fpu *dst_fpu, struct fpu *src_fpu)
24729 * leak into the child task:
24730 */
24731 if (use_eager_fpu())
24732 - memset(&dst_fpu->state.xsave, 0, xstate_size);
24733 + memset(&dst_fpu->state->xsave, 0, xstate_size);
24734
24735 /*
24736 * Save current FPU registers directly into the child
24737 @@ -258,7 +258,7 @@ static void fpu_copy(struct fpu *dst_fpu, struct fpu *src_fpu)
24738 */
24739 preempt_disable();
24740 if (!copy_fpregs_to_fpstate(dst_fpu)) {
24741 - memcpy(&src_fpu->state, &dst_fpu->state, xstate_size);
24742 + memcpy(src_fpu->state, dst_fpu->state, xstate_size);
24743 fpregs_deactivate(src_fpu);
24744 }
24745 preempt_enable();
24746 @@ -285,7 +285,7 @@ void fpu__activate_curr(struct fpu *fpu)
24747 WARN_ON_FPU(fpu != &current->thread.fpu);
24748
24749 if (!fpu->fpstate_active) {
24750 - fpstate_init(&fpu->state);
24751 + fpstate_init(fpu->state);
24752
24753 /* Safe to do for the current task: */
24754 fpu->fpstate_active = 1;
24755 @@ -311,7 +311,7 @@ void fpu__activate_fpstate_read(struct fpu *fpu)
24756 fpu__save(fpu);
24757 } else {
24758 if (!fpu->fpstate_active) {
24759 - fpstate_init(&fpu->state);
24760 + fpstate_init(fpu->state);
24761
24762 /* Safe to do for current and for stopped child tasks: */
24763 fpu->fpstate_active = 1;
24764 @@ -344,7 +344,7 @@ void fpu__activate_fpstate_write(struct fpu *fpu)
24765 /* Invalidate any lazy state: */
24766 fpu->last_cpu = -1;
24767 } else {
24768 - fpstate_init(&fpu->state);
24769 + fpstate_init(fpu->state);
24770
24771 /* Safe to do for stopped child tasks: */
24772 fpu->fpstate_active = 1;
24773 @@ -368,7 +368,7 @@ void fpu__restore(struct fpu *fpu)
24774 /* Avoid __kernel_fpu_begin() right after fpregs_activate() */
24775 kernel_fpu_disable();
24776 fpregs_activate(fpu);
24777 - copy_kernel_to_fpregs(&fpu->state);
24778 + copy_kernel_to_fpregs(fpu->state);
24779 fpu->counter++;
24780 kernel_fpu_enable();
24781 }
24782 @@ -442,25 +442,25 @@ void fpu__clear(struct fpu *fpu)
24783 static inline unsigned short get_fpu_cwd(struct fpu *fpu)
24784 {
24785 if (cpu_has_fxsr) {
24786 - return fpu->state.fxsave.cwd;
24787 + return fpu->state->fxsave.cwd;
24788 } else {
24789 - return (unsigned short)fpu->state.fsave.cwd;
24790 + return (unsigned short)fpu->state->fsave.cwd;
24791 }
24792 }
24793
24794 static inline unsigned short get_fpu_swd(struct fpu *fpu)
24795 {
24796 if (cpu_has_fxsr) {
24797 - return fpu->state.fxsave.swd;
24798 + return fpu->state->fxsave.swd;
24799 } else {
24800 - return (unsigned short)fpu->state.fsave.swd;
24801 + return (unsigned short)fpu->state->fsave.swd;
24802 }
24803 }
24804
24805 static inline unsigned short get_fpu_mxcsr(struct fpu *fpu)
24806 {
24807 if (cpu_has_xmm) {
24808 - return fpu->state.fxsave.mxcsr;
24809 + return fpu->state->fxsave.mxcsr;
24810 } else {
24811 return MXCSR_DEFAULT;
24812 }
24813 diff --git a/arch/x86/kernel/fpu/init.c b/arch/x86/kernel/fpu/init.c
24814 index be39b5f..b76c3b1 100644
24815 --- a/arch/x86/kernel/fpu/init.c
24816 +++ b/arch/x86/kernel/fpu/init.c
24817 @@ -42,7 +42,7 @@ static void fpu__init_cpu_generic(void)
24818 /* Flush out any pending x87 state: */
24819 #ifdef CONFIG_MATH_EMULATION
24820 if (!cpu_has_fpu)
24821 - fpstate_init_soft(&current->thread.fpu.state.soft);
24822 + fpstate_init_soft(&current->thread.fpu.state->soft);
24823 else
24824 #endif
24825 asm volatile ("fninit");
24826 @@ -143,42 +143,7 @@ static void __init fpu__init_system_generic(void)
24827 unsigned int xstate_size;
24828 EXPORT_SYMBOL_GPL(xstate_size);
24829
24830 -/* Enforce that 'MEMBER' is the last field of 'TYPE': */
24831 -#define CHECK_MEMBER_AT_END_OF(TYPE, MEMBER) \
24832 - BUILD_BUG_ON(sizeof(TYPE) != offsetofend(TYPE, MEMBER))
24833 -
24834 -/*
24835 - * We append the 'struct fpu' to the task_struct:
24836 - */
24837 -static void __init fpu__init_task_struct_size(void)
24838 -{
24839 - int task_size = sizeof(struct task_struct);
24840 -
24841 - /*
24842 - * Subtract off the static size of the register state.
24843 - * It potentially has a bunch of padding.
24844 - */
24845 - task_size -= sizeof(((struct task_struct *)0)->thread.fpu.state);
24846 -
24847 - /*
24848 - * Add back the dynamically-calculated register state
24849 - * size.
24850 - */
24851 - task_size += xstate_size;
24852 -
24853 - /*
24854 - * We dynamically size 'struct fpu', so we require that
24855 - * it be at the end of 'thread_struct' and that
24856 - * 'thread_struct' be at the end of 'task_struct'. If
24857 - * you hit a compile error here, check the structure to
24858 - * see if something got added to the end.
24859 - */
24860 - CHECK_MEMBER_AT_END_OF(struct fpu, state);
24861 - CHECK_MEMBER_AT_END_OF(struct thread_struct, fpu);
24862 - CHECK_MEMBER_AT_END_OF(struct task_struct, thread);
24863 -
24864 - arch_task_struct_size = task_size;
24865 -}
24866 +union fpregs_state init_fpregs_state;
24867
24868 /*
24869 * Set up the xstate_size based on the legacy FPU context size.
24870 @@ -331,7 +296,6 @@ void __init fpu__init_system(struct cpuinfo_x86 *c)
24871 fpu__init_system_generic();
24872 fpu__init_system_xstate_size_legacy();
24873 fpu__init_system_xstate();
24874 - fpu__init_task_struct_size();
24875
24876 fpu__init_system_ctx_switch();
24877 }
24878 diff --git a/arch/x86/kernel/fpu/regset.c b/arch/x86/kernel/fpu/regset.c
24879 index 0bc3490..5cfa5c0 100644
24880 --- a/arch/x86/kernel/fpu/regset.c
24881 +++ b/arch/x86/kernel/fpu/regset.c
24882 @@ -37,7 +37,7 @@ int xfpregs_get(struct task_struct *target, const struct user_regset *regset,
24883 fpstate_sanitize_xstate(fpu);
24884
24885 return user_regset_copyout(&pos, &count, &kbuf, &ubuf,
24886 - &fpu->state.fxsave, 0, -1);
24887 + &fpu->state->fxsave, 0, -1);
24888 }
24889
24890 int xfpregs_set(struct task_struct *target, const struct user_regset *regset,
24891 @@ -54,19 +54,19 @@ int xfpregs_set(struct task_struct *target, const struct user_regset *regset,
24892 fpstate_sanitize_xstate(fpu);
24893
24894 ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
24895 - &fpu->state.fxsave, 0, -1);
24896 + &fpu->state->fxsave, 0, -1);
24897
24898 /*
24899 * mxcsr reserved bits must be masked to zero for security reasons.
24900 */
24901 - fpu->state.fxsave.mxcsr &= mxcsr_feature_mask;
24902 + fpu->state->fxsave.mxcsr &= mxcsr_feature_mask;
24903
24904 /*
24905 * update the header bits in the xsave header, indicating the
24906 * presence of FP and SSE state.
24907 */
24908 if (cpu_has_xsave)
24909 - fpu->state.xsave.header.xfeatures |= XFEATURE_MASK_FPSSE;
24910 + fpu->state->xsave.header.xfeatures |= XFEATURE_MASK_FPSSE;
24911
24912 return ret;
24913 }
24914 @@ -84,7 +84,7 @@ int xstateregs_get(struct task_struct *target, const struct user_regset *regset,
24915
24916 fpu__activate_fpstate_read(fpu);
24917
24918 - xsave = &fpu->state.xsave;
24919 + xsave = &fpu->state->xsave;
24920
24921 /*
24922 * Copy the 48bytes defined by the software first into the xstate
24923 @@ -113,7 +113,7 @@ int xstateregs_set(struct task_struct *target, const struct user_regset *regset,
24924
24925 fpu__activate_fpstate_write(fpu);
24926
24927 - xsave = &fpu->state.xsave;
24928 + xsave = &fpu->state->xsave;
24929
24930 ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, xsave, 0, -1);
24931 /*
24932 @@ -204,7 +204,7 @@ static inline u32 twd_fxsr_to_i387(struct fxregs_state *fxsave)
24933 void
24934 convert_from_fxsr(struct user_i387_ia32_struct *env, struct task_struct *tsk)
24935 {
24936 - struct fxregs_state *fxsave = &tsk->thread.fpu.state.fxsave;
24937 + struct fxregs_state *fxsave = &tsk->thread.fpu.state->fxsave;
24938 struct _fpreg *to = (struct _fpreg *) &env->st_space[0];
24939 struct _fpxreg *from = (struct _fpxreg *) &fxsave->st_space[0];
24940 int i;
24941 @@ -242,7 +242,7 @@ void convert_to_fxsr(struct task_struct *tsk,
24942 const struct user_i387_ia32_struct *env)
24943
24944 {
24945 - struct fxregs_state *fxsave = &tsk->thread.fpu.state.fxsave;
24946 + struct fxregs_state *fxsave = &tsk->thread.fpu.state->fxsave;
24947 struct _fpreg *from = (struct _fpreg *) &env->st_space[0];
24948 struct _fpxreg *to = (struct _fpxreg *) &fxsave->st_space[0];
24949 int i;
24950 @@ -280,7 +280,7 @@ int fpregs_get(struct task_struct *target, const struct user_regset *regset,
24951
24952 if (!cpu_has_fxsr)
24953 return user_regset_copyout(&pos, &count, &kbuf, &ubuf,
24954 - &fpu->state.fsave, 0,
24955 + &fpu->state->fsave, 0,
24956 -1);
24957
24958 fpstate_sanitize_xstate(fpu);
24959 @@ -311,7 +311,7 @@ int fpregs_set(struct task_struct *target, const struct user_regset *regset,
24960
24961 if (!cpu_has_fxsr)
24962 return user_regset_copyin(&pos, &count, &kbuf, &ubuf,
24963 - &fpu->state.fsave, 0,
24964 + &fpu->state->fsave, 0,
24965 -1);
24966
24967 if (pos > 0 || count < sizeof(env))
24968 @@ -326,7 +326,7 @@ int fpregs_set(struct task_struct *target, const struct user_regset *regset,
24969 * presence of FP.
24970 */
24971 if (cpu_has_xsave)
24972 - fpu->state.xsave.header.xfeatures |= XFEATURE_MASK_FP;
24973 + fpu->state->xsave.header.xfeatures |= XFEATURE_MASK_FP;
24974 return ret;
24975 }
24976
24977 diff --git a/arch/x86/kernel/fpu/signal.c b/arch/x86/kernel/fpu/signal.c
24978 index 31c6a60..523f27e 100644
24979 --- a/arch/x86/kernel/fpu/signal.c
24980 +++ b/arch/x86/kernel/fpu/signal.c
24981 @@ -54,7 +54,7 @@ static inline int check_for_xstate(struct fxregs_state __user *buf,
24982 static inline int save_fsave_header(struct task_struct *tsk, void __user *buf)
24983 {
24984 if (use_fxsr()) {
24985 - struct xregs_state *xsave = &tsk->thread.fpu.state.xsave;
24986 + struct xregs_state *xsave = &tsk->thread.fpu.state->xsave;
24987 struct user_i387_ia32_struct env;
24988 struct _fpstate_32 __user *fp = buf;
24989
24990 @@ -83,18 +83,18 @@ static inline int save_xstate_epilog(void __user *buf, int ia32_frame)
24991
24992 /* Setup the bytes not touched by the [f]xsave and reserved for SW. */
24993 sw_bytes = ia32_frame ? &fx_sw_reserved_ia32 : &fx_sw_reserved;
24994 - err = __copy_to_user(&x->i387.sw_reserved, sw_bytes, sizeof(*sw_bytes));
24995 + err = __copy_to_user(x->i387.sw_reserved, sw_bytes, sizeof(*sw_bytes));
24996
24997 if (!use_xsave())
24998 return err;
24999
25000 - err |= __put_user(FP_XSTATE_MAGIC2, (__u32 *)(buf + xstate_size));
25001 + err |= __put_user(FP_XSTATE_MAGIC2, (__u32 __user *)(buf + xstate_size));
25002
25003 /*
25004 * Read the xfeatures which we copied (directly from the cpu or
25005 * from the state in task struct) to the user buffers.
25006 */
25007 - err |= __get_user(xfeatures, (__u32 *)&x->header.xfeatures);
25008 + err |= __get_user(xfeatures, (__u32 __user *)&x->header.xfeatures);
25009
25010 /*
25011 * For legacy compatible, we always set FP/SSE bits in the bit
25012 @@ -109,7 +109,7 @@ static inline int save_xstate_epilog(void __user *buf, int ia32_frame)
25013 */
25014 xfeatures |= XFEATURE_MASK_FPSSE;
25015
25016 - err |= __put_user(xfeatures, (__u32 *)&x->header.xfeatures);
25017 + err |= __put_user(xfeatures, (__u32 __user *)&x->header.xfeatures);
25018
25019 return err;
25020 }
25021 @@ -118,6 +118,7 @@ static inline int copy_fpregs_to_sigframe(struct xregs_state __user *buf)
25022 {
25023 int err;
25024
25025 + buf = (struct xregs_state __user *)____m(buf);
25026 if (use_xsave())
25027 err = copy_xregs_to_user(buf);
25028 else if (use_fxsr())
25029 @@ -152,7 +153,7 @@ static inline int copy_fpregs_to_sigframe(struct xregs_state __user *buf)
25030 */
25031 int copy_fpstate_to_sigframe(void __user *buf, void __user *buf_fx, int size)
25032 {
25033 - struct xregs_state *xsave = &current->thread.fpu.state.xsave;
25034 + struct xregs_state *xsave = &current->thread.fpu.state->xsave;
25035 struct task_struct *tsk = current;
25036 int ia32_fxstate = (buf != buf_fx);
25037
25038 @@ -195,7 +196,7 @@ sanitize_restored_xstate(struct task_struct *tsk,
25039 struct user_i387_ia32_struct *ia32_env,
25040 u64 xfeatures, int fx_only)
25041 {
25042 - struct xregs_state *xsave = &tsk->thread.fpu.state.xsave;
25043 + struct xregs_state *xsave = &tsk->thread.fpu.state->xsave;
25044 struct xstate_header *header = &xsave->header;
25045
25046 if (use_xsave()) {
25047 @@ -228,6 +229,7 @@ sanitize_restored_xstate(struct task_struct *tsk,
25048 */
25049 static inline int copy_user_to_fpregs_zeroing(void __user *buf, u64 xbv, int fx_only)
25050 {
25051 + buf = (void __user *)____m(buf);
25052 if (use_xsave()) {
25053 if ((unsigned long)buf % 64 || fx_only) {
25054 u64 init_bv = xfeatures_mask & ~XFEATURE_MASK_FPSSE;
25055 @@ -308,9 +310,9 @@ static int __fpu__restore_sig(void __user *buf, void __user *buf_fx, int size)
25056 */
25057 fpu__drop(fpu);
25058
25059 - if (__copy_from_user(&fpu->state.xsave, buf_fx, state_size) ||
25060 + if (__copy_from_user(&fpu->state->xsave, buf_fx, state_size) ||
25061 __copy_from_user(&env, buf, sizeof(env))) {
25062 - fpstate_init(&fpu->state);
25063 + fpstate_init(fpu->state);
25064 err = -1;
25065 } else {
25066 sanitize_restored_xstate(tsk, &env, xfeatures, fx_only);
25067 diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c
25068 index 70fc312..30dfd14 100644
25069 --- a/arch/x86/kernel/fpu/xstate.c
25070 +++ b/arch/x86/kernel/fpu/xstate.c
25071 @@ -109,14 +109,14 @@ EXPORT_SYMBOL_GPL(cpu_has_xfeatures);
25072 */
25073 void fpstate_sanitize_xstate(struct fpu *fpu)
25074 {
25075 - struct fxregs_state *fx = &fpu->state.fxsave;
25076 + struct fxregs_state *fx = &fpu->state->fxsave;
25077 int feature_bit;
25078 u64 xfeatures;
25079
25080 if (!use_xsaveopt())
25081 return;
25082
25083 - xfeatures = fpu->state.xsave.header.xfeatures;
25084 + xfeatures = fpu->state->xsave.header.xfeatures;
25085
25086 /*
25087 * None of the feature bits are in init state. So nothing else
25088 @@ -748,5 +748,5 @@ const void *get_xsave_field_ptr(int xsave_state)
25089 */
25090 fpu__save(fpu);
25091
25092 - return get_xsave_addr(&fpu->state.xsave, xsave_state);
25093 + return get_xsave_addr(&fpu->state->xsave, xsave_state);
25094 }
25095 diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c
25096 index 311bcf3..83b8e85 100644
25097 --- a/arch/x86/kernel/ftrace.c
25098 +++ b/arch/x86/kernel/ftrace.c
25099 @@ -89,7 +89,7 @@ static unsigned long text_ip_addr(unsigned long ip)
25100 * kernel identity mapping to modify code.
25101 */
25102 if (within(ip, (unsigned long)_text, (unsigned long)_etext))
25103 - ip = (unsigned long)__va(__pa_symbol(ip));
25104 + ip = (unsigned long)__va(__pa_symbol(ktla_ktva(ip)));
25105
25106 return ip;
25107 }
25108 @@ -105,6 +105,8 @@ ftrace_modify_code_direct(unsigned long ip, unsigned const char *old_code,
25109 {
25110 unsigned char replaced[MCOUNT_INSN_SIZE];
25111
25112 + ip = ktla_ktva(ip);
25113 +
25114 /*
25115 * Note: Due to modules and __init, code can
25116 * disappear and change, we need to protect against faulting
25117 @@ -230,7 +232,7 @@ static int update_ftrace_func(unsigned long ip, void *new)
25118 unsigned char old[MCOUNT_INSN_SIZE];
25119 int ret;
25120
25121 - memcpy(old, (void *)ip, MCOUNT_INSN_SIZE);
25122 + memcpy(old, (void *)ktla_ktva(ip), MCOUNT_INSN_SIZE);
25123
25124 ftrace_update_func = ip;
25125 /* Make sure the breakpoints see the ftrace_update_func update */
25126 @@ -311,7 +313,7 @@ static int add_break(unsigned long ip, const char *old)
25127 unsigned char replaced[MCOUNT_INSN_SIZE];
25128 unsigned char brk = BREAKPOINT_INSTRUCTION;
25129
25130 - if (probe_kernel_read(replaced, (void *)ip, MCOUNT_INSN_SIZE))
25131 + if (probe_kernel_read(replaced, (void *)ktla_ktva(ip), MCOUNT_INSN_SIZE))
25132 return -EFAULT;
25133
25134 /* Make sure it is what we expect it to be */
25135 @@ -674,11 +676,11 @@ static unsigned char *ftrace_jmp_replace(unsigned long ip, unsigned long addr)
25136 /* Module allocation simplifies allocating memory for code */
25137 static inline void *alloc_tramp(unsigned long size)
25138 {
25139 - return module_alloc(size);
25140 + return module_alloc_exec(size);
25141 }
25142 static inline void tramp_free(void *tramp)
25143 {
25144 - module_memfree(tramp);
25145 + module_memfree_exec(tramp);
25146 }
25147 #else
25148 /* Trampolines can only be created if modules are supported */
25149 @@ -757,7 +759,9 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size)
25150 *tramp_size = size + MCOUNT_INSN_SIZE + sizeof(void *);
25151
25152 /* Copy ftrace_caller onto the trampoline memory */
25153 + pax_open_kernel();
25154 ret = probe_kernel_read(trampoline, (void *)start_offset, size);
25155 + pax_close_kernel();
25156 if (WARN_ON(ret < 0)) {
25157 tramp_free(trampoline);
25158 return 0;
25159 @@ -767,6 +771,7 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size)
25160
25161 /* The trampoline ends with a jmp to ftrace_return */
25162 jmp = ftrace_jmp_replace(ip, (unsigned long)ftrace_return);
25163 + pax_open_kernel();
25164 memcpy(trampoline + size, jmp, MCOUNT_INSN_SIZE);
25165
25166 /*
25167 @@ -779,6 +784,7 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size)
25168
25169 ptr = (unsigned long *)(trampoline + size + MCOUNT_INSN_SIZE);
25170 *ptr = (unsigned long)ops;
25171 + pax_close_kernel();
25172
25173 op_offset -= start_offset;
25174 memcpy(&op_ptr, trampoline + op_offset, OP_REF_SIZE);
25175 @@ -796,7 +802,9 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size)
25176 op_ptr.offset = offset;
25177
25178 /* put in the new offset to the ftrace_ops */
25179 + pax_open_kernel();
25180 memcpy(trampoline + op_offset, &op_ptr, OP_REF_SIZE);
25181 + pax_close_kernel();
25182
25183 /* ALLOC_TRAMP flags lets us know we created it */
25184 ops->flags |= FTRACE_OPS_FL_ALLOC_TRAMP;
25185 diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
25186 index f129a9a..af8f6da 100644
25187 --- a/arch/x86/kernel/head64.c
25188 +++ b/arch/x86/kernel/head64.c
25189 @@ -68,12 +68,12 @@ again:
25190 pgd = *pgd_p;
25191
25192 /*
25193 - * The use of __START_KERNEL_map rather than __PAGE_OFFSET here is
25194 - * critical -- __PAGE_OFFSET would point us back into the dynamic
25195 + * The use of __early_va rather than __va here is critical:
25196 + * __va would point us back into the dynamic
25197 * range and we might end up looping forever...
25198 */
25199 if (pgd)
25200 - pud_p = (pudval_t *)((pgd & PTE_PFN_MASK) + __START_KERNEL_map - phys_base);
25201 + pud_p = (pudval_t *)(__early_va(pgd & PTE_PFN_MASK));
25202 else {
25203 if (next_early_pgt >= EARLY_DYNAMIC_PAGE_TABLES) {
25204 reset_early_page_tables();
25205 @@ -83,13 +83,13 @@ again:
25206 pud_p = (pudval_t *)early_dynamic_pgts[next_early_pgt++];
25207 for (i = 0; i < PTRS_PER_PUD; i++)
25208 pud_p[i] = 0;
25209 - *pgd_p = (pgdval_t)pud_p - __START_KERNEL_map + phys_base + _KERNPG_TABLE;
25210 + *pgd_p = (pgdval_t)__pa(pud_p) + _KERNPG_TABLE;
25211 }
25212 pud_p += pud_index(address);
25213 pud = *pud_p;
25214
25215 if (pud)
25216 - pmd_p = (pmdval_t *)((pud & PTE_PFN_MASK) + __START_KERNEL_map - phys_base);
25217 + pmd_p = (pmdval_t *)(__early_va(pud & PTE_PFN_MASK));
25218 else {
25219 if (next_early_pgt >= EARLY_DYNAMIC_PAGE_TABLES) {
25220 reset_early_page_tables();
25221 @@ -99,7 +99,7 @@ again:
25222 pmd_p = (pmdval_t *)early_dynamic_pgts[next_early_pgt++];
25223 for (i = 0; i < PTRS_PER_PMD; i++)
25224 pmd_p[i] = 0;
25225 - *pud_p = (pudval_t)pmd_p - __START_KERNEL_map + phys_base + _KERNPG_TABLE;
25226 + *pud_p = (pudval_t)__pa(pmd_p) + _KERNPG_TABLE;
25227 }
25228 pmd = (physaddr & PMD_MASK) + early_pmd_flags;
25229 pmd_p[pmd_index(address)] = pmd;
25230 @@ -163,8 +163,6 @@ asmlinkage __visible void __init x86_64_start_kernel(char * real_mode_data)
25231
25232 clear_bss();
25233
25234 - clear_page(init_level4_pgt);
25235 -
25236 kasan_early_init();
25237
25238 for (i = 0; i < NUM_EXCEPTION_VECTORS; i++)
25239 diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
25240 index 6bc9ae2..d184220 100644
25241 --- a/arch/x86/kernel/head_32.S
25242 +++ b/arch/x86/kernel/head_32.S
25243 @@ -27,6 +27,12 @@
25244 /* Physical address */
25245 #define pa(X) ((X) - __PAGE_OFFSET)
25246
25247 +#ifdef CONFIG_PAX_KERNEXEC
25248 +#define ta(X) (X)
25249 +#else
25250 +#define ta(X) ((X) - __PAGE_OFFSET)
25251 +#endif
25252 +
25253 /*
25254 * References to members of the new_cpu_data structure.
25255 */
25256 @@ -56,11 +62,7 @@
25257 * and small than max_low_pfn, otherwise will waste some page table entries
25258 */
25259
25260 -#if PTRS_PER_PMD > 1
25261 -#define PAGE_TABLE_SIZE(pages) (((pages) / PTRS_PER_PMD) + PTRS_PER_PGD)
25262 -#else
25263 -#define PAGE_TABLE_SIZE(pages) ((pages) / PTRS_PER_PGD)
25264 -#endif
25265 +#define PAGE_TABLE_SIZE(pages) ((pages) / PTRS_PER_PTE)
25266
25267 /*
25268 * Number of possible pages in the lowmem region.
25269 @@ -86,6 +88,12 @@ INIT_MAP_SIZE = PAGE_TABLE_SIZE(KERNEL_PAGES) * PAGE_SIZE
25270 RESERVE_BRK(pagetables, INIT_MAP_SIZE)
25271
25272 /*
25273 + * Real beginning of normal "text" segment
25274 + */
25275 +ENTRY(stext)
25276 +ENTRY(_stext)
25277 +
25278 +/*
25279 * 32-bit kernel entrypoint; only used by the boot CPU. On entry,
25280 * %esi points to the real-mode code as a 32-bit pointer.
25281 * CS and DS must be 4 GB flat segments, but we don't depend on
25282 @@ -93,6 +101,13 @@ RESERVE_BRK(pagetables, INIT_MAP_SIZE)
25283 * can.
25284 */
25285 __HEAD
25286 +
25287 +#ifdef CONFIG_PAX_KERNEXEC
25288 + jmp startup_32
25289 +/* PaX: fill first page in .text with int3 to catch NULL derefs in kernel mode */
25290 +.fill PAGE_SIZE-5,1,0xcc
25291 +#endif
25292 +
25293 ENTRY(startup_32)
25294 movl pa(stack_start),%ecx
25295
25296 @@ -114,6 +129,66 @@ ENTRY(startup_32)
25297 2:
25298 leal -__PAGE_OFFSET(%ecx),%esp
25299
25300 +#ifdef CONFIG_SMP
25301 + movl $pa(cpu_gdt_table),%edi
25302 + movl $__per_cpu_load,%eax
25303 + movw %ax,GDT_ENTRY_PERCPU * 8 + 2(%edi)
25304 + rorl $16,%eax
25305 + movb %al,GDT_ENTRY_PERCPU * 8 + 4(%edi)
25306 + movb %ah,GDT_ENTRY_PERCPU * 8 + 7(%edi)
25307 + movl $__per_cpu_end - 1,%eax
25308 + subl $__per_cpu_start,%eax
25309 + cmpl $0x100000,%eax
25310 + jb 1f
25311 + shrl $PAGE_SHIFT,%eax
25312 + orb $0x80,GDT_ENTRY_PERCPU * 8 + 6(%edi)
25313 +1:
25314 + movw %ax,GDT_ENTRY_PERCPU * 8 + 0(%edi)
25315 + shrl $16,%eax
25316 + orb %al,GDT_ENTRY_PERCPU * 8 + 6(%edi)
25317 +#endif
25318 +
25319 +#ifdef CONFIG_PAX_MEMORY_UDEREF
25320 + movl $NR_CPUS,%ecx
25321 + movl $pa(cpu_gdt_table),%edi
25322 +1:
25323 + movl $((((__PAGE_OFFSET-1) & 0xf0000000) >> 12) | 0x00c09700),GDT_ENTRY_KERNEL_DS * 8 + 4(%edi)
25324 + movl $((((__PAGE_OFFSET-1) & 0xf0000000) >> 12) | 0x00c0fb00),GDT_ENTRY_DEFAULT_USER_CS * 8 + 4(%edi)
25325 + movl $((((__PAGE_OFFSET-1) & 0xf0000000) >> 12) | 0x00c0f300),GDT_ENTRY_DEFAULT_USER_DS * 8 + 4(%edi)
25326 + addl $PAGE_SIZE_asm,%edi
25327 + loop 1b
25328 +#endif
25329 +
25330 +#ifdef CONFIG_PAX_KERNEXEC
25331 + movl $pa(boot_gdt),%edi
25332 + movl $__LOAD_PHYSICAL_ADDR,%eax
25333 + movw %ax,GDT_ENTRY_BOOT_CS * 8 + 2(%edi)
25334 + rorl $16,%eax
25335 + movb %al,GDT_ENTRY_BOOT_CS * 8 + 4(%edi)
25336 + movb %ah,GDT_ENTRY_BOOT_CS * 8 + 7(%edi)
25337 + rorl $16,%eax
25338 +
25339 + ljmp $(__BOOT_CS),$1f
25340 +1:
25341 +
25342 + movl $NR_CPUS,%ecx
25343 + movl $pa(cpu_gdt_table),%edi
25344 + addl $__PAGE_OFFSET,%eax
25345 +1:
25346 + movb $0xc0,GDT_ENTRY_KERNEL_CS * 8 + 6(%edi)
25347 + movb $0xc0,GDT_ENTRY_KERNEXEC_KERNEL_CS * 8 + 6(%edi)
25348 + movw %ax,GDT_ENTRY_KERNEL_CS * 8 + 2(%edi)
25349 + movw %ax,GDT_ENTRY_KERNEXEC_KERNEL_CS * 8 + 2(%edi)
25350 + rorl $16,%eax
25351 + movb %al,GDT_ENTRY_KERNEL_CS * 8 + 4(%edi)
25352 + movb %al,GDT_ENTRY_KERNEXEC_KERNEL_CS * 8 + 4(%edi)
25353 + movb %ah,GDT_ENTRY_KERNEL_CS * 8 + 7(%edi)
25354 + movb %ah,GDT_ENTRY_KERNEXEC_KERNEL_CS * 8 + 7(%edi)
25355 + rorl $16,%eax
25356 + addl $PAGE_SIZE_asm,%edi
25357 + loop 1b
25358 +#endif
25359 +
25360 /*
25361 * Clear BSS first so that there are no surprises...
25362 */
25363 @@ -209,8 +284,11 @@ ENTRY(startup_32)
25364 movl %eax, pa(max_pfn_mapped)
25365
25366 /* Do early initialization of the fixmap area */
25367 - movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR,%eax
25368 - movl %eax,pa(initial_pg_pmd+0x1000*KPMDS-8)
25369 +#ifdef CONFIG_COMPAT_VDSO
25370 + movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR+_PAGE_USER,pa(initial_pg_pmd+0x1000*KPMDS-8)
25371 +#else
25372 + movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR,pa(initial_pg_pmd+0x1000*KPMDS-8)
25373 +#endif
25374 #else /* Not PAE */
25375
25376 page_pde_offset = (__PAGE_OFFSET >> 20);
25377 @@ -240,8 +318,11 @@ page_pde_offset = (__PAGE_OFFSET >> 20);
25378 movl %eax, pa(max_pfn_mapped)
25379
25380 /* Do early initialization of the fixmap area */
25381 - movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR,%eax
25382 - movl %eax,pa(initial_page_table+0xffc)
25383 +#ifdef CONFIG_COMPAT_VDSO
25384 + movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR+_PAGE_USER,pa(initial_page_table+0xffc)
25385 +#else
25386 + movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR,pa(initial_page_table+0xffc)
25387 +#endif
25388 #endif
25389
25390 #ifdef CONFIG_PARAVIRT
25391 @@ -255,9 +336,7 @@ page_pde_offset = (__PAGE_OFFSET >> 20);
25392 cmpl $num_subarch_entries, %eax
25393 jae bad_subarch
25394
25395 - movl pa(subarch_entries)(,%eax,4), %eax
25396 - subl $__PAGE_OFFSET, %eax
25397 - jmp *%eax
25398 + jmp *pa(subarch_entries)(,%eax,4)
25399
25400 bad_subarch:
25401 WEAK(lguest_entry)
25402 @@ -269,10 +348,10 @@ WEAK(xen_entry)
25403 __INITDATA
25404
25405 subarch_entries:
25406 - .long default_entry /* normal x86/PC */
25407 - .long lguest_entry /* lguest hypervisor */
25408 - .long xen_entry /* Xen hypervisor */
25409 - .long default_entry /* Moorestown MID */
25410 + .long ta(default_entry) /* normal x86/PC */
25411 + .long ta(lguest_entry) /* lguest hypervisor */
25412 + .long ta(xen_entry) /* Xen hypervisor */
25413 + .long ta(default_entry) /* Moorestown MID */
25414 num_subarch_entries = (. - subarch_entries) / 4
25415 .previous
25416 #else
25417 @@ -361,6 +440,7 @@ default_entry:
25418 movl pa(mmu_cr4_features),%eax
25419 movl %eax,%cr4
25420
25421 +#ifdef CONFIG_X86_PAE
25422 testb $X86_CR4_PAE, %al # check if PAE is enabled
25423 jz enable_paging
25424
25425 @@ -389,6 +469,9 @@ default_entry:
25426 /* Make changes effective */
25427 wrmsr
25428
25429 + btsl $_PAGE_BIT_NX-32,pa(__supported_pte_mask+4)
25430 +#endif
25431 +
25432 enable_paging:
25433
25434 /*
25435 @@ -456,14 +539,20 @@ is486:
25436 1: movl $(__KERNEL_DS),%eax # reload all the segment registers
25437 movl %eax,%ss # after changing gdt.
25438
25439 - movl $(__USER_DS),%eax # DS/ES contains default USER segment
25440 +# movl $(__KERNEL_DS),%eax # DS/ES contains default KERNEL segment
25441 movl %eax,%ds
25442 movl %eax,%es
25443
25444 movl $(__KERNEL_PERCPU), %eax
25445 movl %eax,%fs # set this cpu's percpu
25446
25447 +#ifdef CONFIG_CC_STACKPROTECTOR
25448 movl $(__KERNEL_STACK_CANARY),%eax
25449 +#elif defined(CONFIG_PAX_MEMORY_UDEREF)
25450 + movl $(__USER_DS),%eax
25451 +#else
25452 + xorl %eax,%eax
25453 +#endif
25454 movl %eax,%gs
25455
25456 xorl %eax,%eax # Clear LDT
25457 @@ -520,8 +609,11 @@ setup_once:
25458 * relocation. Manually set base address in stack canary
25459 * segment descriptor.
25460 */
25461 - movl $gdt_page,%eax
25462 + movl $cpu_gdt_table,%eax
25463 movl $stack_canary,%ecx
25464 +#ifdef CONFIG_SMP
25465 + addl $__per_cpu_load,%ecx
25466 +#endif
25467 movw %cx, 8 * GDT_ENTRY_STACK_CANARY + 2(%eax)
25468 shrl $16, %ecx
25469 movb %cl, 8 * GDT_ENTRY_STACK_CANARY + 4(%eax)
25470 @@ -558,7 +650,7 @@ early_idt_handler_common:
25471 cmpl $2,(%esp) # X86_TRAP_NMI
25472 je .Lis_nmi # Ignore NMI
25473
25474 - cmpl $2,%ss:early_recursion_flag
25475 + cmpl $1,%ss:early_recursion_flag
25476 je hlt_loop
25477 incl %ss:early_recursion_flag
25478
25479 @@ -596,8 +688,8 @@ early_idt_handler_common:
25480 pushl (20+6*4)(%esp) /* trapno */
25481 pushl $fault_msg
25482 call printk
25483 -#endif
25484 call dump_stack
25485 +#endif
25486 hlt_loop:
25487 hlt
25488 jmp hlt_loop
25489 @@ -617,8 +709,11 @@ ENDPROC(early_idt_handler_common)
25490 /* This is the default interrupt "handler" :-) */
25491 ALIGN
25492 ignore_int:
25493 - cld
25494 #ifdef CONFIG_PRINTK
25495 + cmpl $2,%ss:early_recursion_flag
25496 + je hlt_loop
25497 + incl %ss:early_recursion_flag
25498 + cld
25499 pushl %eax
25500 pushl %ecx
25501 pushl %edx
25502 @@ -627,9 +722,6 @@ ignore_int:
25503 movl $(__KERNEL_DS),%eax
25504 movl %eax,%ds
25505 movl %eax,%es
25506 - cmpl $2,early_recursion_flag
25507 - je hlt_loop
25508 - incl early_recursion_flag
25509 pushl 16(%esp)
25510 pushl 24(%esp)
25511 pushl 32(%esp)
25512 @@ -663,29 +755,34 @@ ENTRY(setup_once_ref)
25513 /*
25514 * BSS section
25515 */
25516 -__PAGE_ALIGNED_BSS
25517 - .align PAGE_SIZE
25518 #ifdef CONFIG_X86_PAE
25519 +.section .initial_pg_pmd,"a",@progbits
25520 initial_pg_pmd:
25521 .fill 1024*KPMDS,4,0
25522 #else
25523 +.section .initial_page_table,"a",@progbits
25524 ENTRY(initial_page_table)
25525 .fill 1024,4,0
25526 #endif
25527 +.section .initial_pg_fixmap,"a",@progbits
25528 initial_pg_fixmap:
25529 .fill 1024,4,0
25530 +.section .empty_zero_page,"a",@progbits
25531 ENTRY(empty_zero_page)
25532 .fill 4096,1,0
25533 +.section .swapper_pg_dir,"a",@progbits
25534 ENTRY(swapper_pg_dir)
25535 +#ifdef CONFIG_X86_PAE
25536 + .fill 4,8,0
25537 +#else
25538 .fill 1024,4,0
25539 +#endif
25540
25541 /*
25542 * This starts the data section.
25543 */
25544 #ifdef CONFIG_X86_PAE
25545 -__PAGE_ALIGNED_DATA
25546 - /* Page-aligned for the benefit of paravirt? */
25547 - .align PAGE_SIZE
25548 +.section .initial_page_table,"a",@progbits
25549 ENTRY(initial_page_table)
25550 .long pa(initial_pg_pmd+PGD_IDENT_ATTR),0 /* low identity map */
25551 # if KPMDS == 3
25552 @@ -704,12 +801,20 @@ ENTRY(initial_page_table)
25553 # error "Kernel PMDs should be 1, 2 or 3"
25554 # endif
25555 .align PAGE_SIZE /* needs to be page-sized too */
25556 +
25557 +#ifdef CONFIG_PAX_PER_CPU_PGD
25558 +ENTRY(cpu_pgd)
25559 + .rept 2*NR_CPUS
25560 + .fill 4,8,0
25561 + .endr
25562 +#endif
25563 +
25564 #endif
25565
25566 .data
25567 .balign 4
25568 ENTRY(stack_start)
25569 - .long init_thread_union+THREAD_SIZE
25570 + .long init_thread_union+THREAD_SIZE-8
25571
25572 __INITRODATA
25573 int_msg:
25574 @@ -737,7 +842,7 @@ fault_msg:
25575 * segment size, and 32-bit linear address value:
25576 */
25577
25578 - .data
25579 +.section .rodata,"a",@progbits
25580 .globl boot_gdt_descr
25581 .globl idt_descr
25582
25583 @@ -746,7 +851,7 @@ fault_msg:
25584 .word 0 # 32 bit align gdt_desc.address
25585 boot_gdt_descr:
25586 .word __BOOT_DS+7
25587 - .long boot_gdt - __PAGE_OFFSET
25588 + .long pa(boot_gdt)
25589
25590 .word 0 # 32-bit align idt_desc.address
25591 idt_descr:
25592 @@ -757,7 +862,7 @@ idt_descr:
25593 .word 0 # 32 bit align gdt_desc.address
25594 ENTRY(early_gdt_descr)
25595 .word GDT_ENTRIES*8-1
25596 - .long gdt_page /* Overwritten for secondary CPUs */
25597 + .long cpu_gdt_table /* Overwritten for secondary CPUs */
25598
25599 /*
25600 * The boot_gdt must mirror the equivalent in setup.S and is
25601 @@ -766,5 +871,65 @@ ENTRY(early_gdt_descr)
25602 .align L1_CACHE_BYTES
25603 ENTRY(boot_gdt)
25604 .fill GDT_ENTRY_BOOT_CS,8,0
25605 - .quad 0x00cf9a000000ffff /* kernel 4GB code at 0x00000000 */
25606 - .quad 0x00cf92000000ffff /* kernel 4GB data at 0x00000000 */
25607 + .quad 0x00cf9b000000ffff /* kernel 4GB code at 0x00000000 */
25608 + .quad 0x00cf93000000ffff /* kernel 4GB data at 0x00000000 */
25609 +
25610 + .align PAGE_SIZE_asm
25611 +ENTRY(cpu_gdt_table)
25612 + .rept NR_CPUS
25613 + .quad 0x0000000000000000 /* NULL descriptor */
25614 + .quad 0x0000000000000000 /* 0x0b reserved */
25615 + .quad 0x0000000000000000 /* 0x13 reserved */
25616 + .quad 0x0000000000000000 /* 0x1b reserved */
25617 +
25618 +#ifdef CONFIG_PAX_KERNEXEC
25619 + .quad 0x00cf9b000000ffff /* 0x20 alternate kernel 4GB code at 0x00000000 */
25620 +#else
25621 + .quad 0x0000000000000000 /* 0x20 unused */
25622 +#endif
25623 +
25624 + .quad 0x0000000000000000 /* 0x28 unused */
25625 + .quad 0x0000000000000000 /* 0x33 TLS entry 1 */
25626 + .quad 0x0000000000000000 /* 0x3b TLS entry 2 */
25627 + .quad 0x0000000000000000 /* 0x43 TLS entry 3 */
25628 + .quad 0x0000000000000000 /* 0x4b reserved */
25629 + .quad 0x0000000000000000 /* 0x53 reserved */
25630 + .quad 0x0000000000000000 /* 0x5b reserved */
25631 +
25632 + .quad 0x00cf9b000000ffff /* 0x60 kernel 4GB code at 0x00000000 */
25633 + .quad 0x00cf93000000ffff /* 0x68 kernel 4GB data at 0x00000000 */
25634 + .quad 0x00cffb000000ffff /* 0x73 user 4GB code at 0x00000000 */
25635 + .quad 0x00cff3000000ffff /* 0x7b user 4GB data at 0x00000000 */
25636 +
25637 + .quad 0x0000000000000000 /* 0x80 TSS descriptor */
25638 + .quad 0x0000000000000000 /* 0x88 LDT descriptor */
25639 +
25640 + /*
25641 + * Segments used for calling PnP BIOS have byte granularity.
25642 + * The code segments and data segments have fixed 64k limits,
25643 + * the transfer segment sizes are set at run time.
25644 + */
25645 + .quad 0x00409b000000ffff /* 0x90 32-bit code */
25646 + .quad 0x00009b000000ffff /* 0x98 16-bit code */
25647 + .quad 0x000093000000ffff /* 0xa0 16-bit data */
25648 + .quad 0x0000930000000000 /* 0xa8 16-bit data */
25649 + .quad 0x0000930000000000 /* 0xb0 16-bit data */
25650 +
25651 + /*
25652 + * The APM segments have byte granularity and their bases
25653 + * are set at run time. All have 64k limits.
25654 + */
25655 + .quad 0x00409b000000ffff /* 0xb8 APM CS code */
25656 + .quad 0x00009b000000ffff /* 0xc0 APM CS 16 code (16 bit) */
25657 + .quad 0x004093000000ffff /* 0xc8 APM DS data */
25658 +
25659 + .quad 0x00c093000000ffff /* 0xd0 - ESPFIX SS */
25660 + .quad 0x0040930000000000 /* 0xd8 - PERCPU */
25661 + .quad 0x0040910000000017 /* 0xe0 - STACK_CANARY */
25662 + .quad 0x0000000000000000 /* 0xe8 - PCIBIOS_CS */
25663 + .quad 0x0000000000000000 /* 0xf0 - PCIBIOS_DS */
25664 + .quad 0x0000000000000000 /* 0xf8 - GDT entry 31: double-fault TSS */
25665 +
25666 + /* Be sure this is zeroed to avoid false validations in Xen */
25667 + .fill PAGE_SIZE_asm - GDT_SIZE,1,0
25668 + .endr
25669 diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
25670 index ffdc0e8..f429d4f 100644
25671 --- a/arch/x86/kernel/head_64.S
25672 +++ b/arch/x86/kernel/head_64.S
25673 @@ -20,6 +20,8 @@
25674 #include <asm/processor-flags.h>
25675 #include <asm/percpu.h>
25676 #include <asm/nops.h>
25677 +#include <asm/cpufeature.h>
25678 +#include <asm/alternative-asm.h>
25679
25680 #ifdef CONFIG_PARAVIRT
25681 #include <asm/asm-offsets.h>
25682 @@ -41,6 +43,12 @@ L4_PAGE_OFFSET = pgd_index(__PAGE_OFFSET)
25683 L3_PAGE_OFFSET = pud_index(__PAGE_OFFSET)
25684 L4_START_KERNEL = pgd_index(__START_KERNEL_map)
25685 L3_START_KERNEL = pud_index(__START_KERNEL_map)
25686 +L4_VMALLOC_START = pgd_index(VMALLOC_START)
25687 +L3_VMALLOC_START = pud_index(VMALLOC_START)
25688 +L4_VMALLOC_END = pgd_index(VMALLOC_END)
25689 +L3_VMALLOC_END = pud_index(VMALLOC_END)
25690 +L4_VMEMMAP_START = pgd_index(VMEMMAP_START)
25691 +L3_VMEMMAP_START = pud_index(VMEMMAP_START)
25692
25693 .text
25694 __HEAD
25695 @@ -92,11 +100,33 @@ startup_64:
25696 * Fixup the physical addresses in the page table
25697 */
25698 addq %rbp, early_level4_pgt + (L4_START_KERNEL*8)(%rip)
25699 + addq %rbp, init_level4_pgt + (L4_PAGE_OFFSET*8)(%rip)
25700 + addq %rbp, init_level4_pgt + (L4_VMALLOC_START*8)(%rip)
25701 + addq %rbp, init_level4_pgt + (L4_VMALLOC_END*8)(%rip)
25702 + addq %rbp, init_level4_pgt + (L4_VMEMMAP_START*8)(%rip)
25703 + addq %rbp, init_level4_pgt + (L4_START_KERNEL*8)(%rip)
25704
25705 - addq %rbp, level3_kernel_pgt + (510*8)(%rip)
25706 - addq %rbp, level3_kernel_pgt + (511*8)(%rip)
25707 + addq %rbp, level3_ident_pgt + (0*8)(%rip)
25708 +#ifndef CONFIG_XEN
25709 + addq %rbp, level3_ident_pgt + (1*8)(%rip)
25710 +#endif
25711
25712 + addq %rbp, level3_vmemmap_pgt + (L3_VMEMMAP_START*8)(%rip)
25713 +
25714 + addq %rbp, level3_kernel_pgt + (L3_START_KERNEL*8)(%rip)
25715 + addq %rbp, level3_kernel_pgt + ((L3_START_KERNEL+1)*8)(%rip)
25716 +
25717 + addq %rbp, level2_ident_pgt + (0*8)(%rip)
25718 +
25719 + addq %rbp, level2_fixmap_pgt + (0*8)(%rip)
25720 + addq %rbp, level2_fixmap_pgt + (1*8)(%rip)
25721 + addq %rbp, level2_fixmap_pgt + (2*8)(%rip)
25722 + addq %rbp, level2_fixmap_pgt + (3*8)(%rip)
25723 +
25724 + addq %rbp, level2_fixmap_pgt + (504*8)(%rip)
25725 + addq %rbp, level2_fixmap_pgt + (505*8)(%rip)
25726 addq %rbp, level2_fixmap_pgt + (506*8)(%rip)
25727 + addq %rbp, level2_fixmap_pgt + (507*8)(%rip)
25728
25729 /*
25730 * Set up the identity mapping for the switchover. These
25731 @@ -180,11 +210,12 @@ ENTRY(secondary_startup_64)
25732 /* Sanitize CPU configuration */
25733 call verify_cpu
25734
25735 + orq $-1, %rbp
25736 movq $(init_level4_pgt - __START_KERNEL_map), %rax
25737 1:
25738
25739 - /* Enable PAE mode and PGE */
25740 - movl $(X86_CR4_PAE | X86_CR4_PGE), %ecx
25741 + /* Enable PAE mode and PSE/PGE */
25742 + movl $(X86_CR4_PSE | X86_CR4_PAE | X86_CR4_PGE), %ecx
25743 movq %rcx, %cr4
25744
25745 /* Setup early boot stage 4 level pagetables. */
25746 @@ -205,10 +236,21 @@ ENTRY(secondary_startup_64)
25747 movl $MSR_EFER, %ecx
25748 rdmsr
25749 btsl $_EFER_SCE, %eax /* Enable System Call */
25750 - btl $20,%edi /* No Execute supported? */
25751 + btl $(X86_FEATURE_NX & 31),%edi /* No Execute supported? */
25752 jnc 1f
25753 btsl $_EFER_NX, %eax
25754 + cmpq $-1, %rbp
25755 + je 1f
25756 btsq $_PAGE_BIT_NX,early_pmd_flags(%rip)
25757 + btsq $_PAGE_BIT_NX, init_level4_pgt + 8*L4_PAGE_OFFSET(%rip)
25758 + btsq $_PAGE_BIT_NX, init_level4_pgt + 8*L4_VMALLOC_START(%rip)
25759 + btsq $_PAGE_BIT_NX, init_level4_pgt + 8*L4_VMALLOC_END(%rip)
25760 + btsq $_PAGE_BIT_NX, init_level4_pgt + 8*L4_VMEMMAP_START(%rip)
25761 + btsq $_PAGE_BIT_NX, level2_fixmap_pgt + 8*504(%rip)
25762 + btsq $_PAGE_BIT_NX, level2_fixmap_pgt + 8*505(%rip)
25763 + btsq $_PAGE_BIT_NX, level2_fixmap_pgt + 8*506(%rip)
25764 + btsq $_PAGE_BIT_NX, level2_fixmap_pgt + 8*507(%rip)
25765 + btsq $_PAGE_BIT_NX, __supported_pte_mask(%rip)
25766 1: wrmsr /* Make changes effective */
25767
25768 /* Setup cr0 */
25769 @@ -288,6 +330,7 @@ ENTRY(secondary_startup_64)
25770 * REX.W + FF /5 JMP m16:64 Jump far, absolute indirect,
25771 * address given in m16:64.
25772 */
25773 + pax_set_fptr_mask
25774 movq initial_code(%rip),%rax
25775 pushq $0 # fake return address to stop unwinder
25776 pushq $__KERNEL_CS # set correct cs
25777 @@ -321,7 +364,7 @@ ENDPROC(start_cpu0)
25778 .quad INIT_PER_CPU_VAR(irq_stack_union)
25779
25780 GLOBAL(stack_start)
25781 - .quad init_thread_union+THREAD_SIZE-8
25782 + .quad init_thread_union+THREAD_SIZE-16
25783 .word 0
25784 __FINITDATA
25785
25786 @@ -401,7 +444,7 @@ early_idt_handler_common:
25787 call dump_stack
25788 #ifdef CONFIG_KALLSYMS
25789 leaq early_idt_ripmsg(%rip),%rdi
25790 - movq 40(%rsp),%rsi # %rip again
25791 + movq 88(%rsp),%rsi # %rip again
25792 call __print_symbol
25793 #endif
25794 #endif /* EARLY_PRINTK */
25795 @@ -430,6 +473,7 @@ ENDPROC(early_idt_handler_common)
25796 early_recursion_flag:
25797 .long 0
25798
25799 + .section .rodata,"a",@progbits
25800 #ifdef CONFIG_EARLY_PRINTK
25801 early_idt_msg:
25802 .asciz "PANIC: early exception %02lx rip %lx:%lx error %lx cr2 %lx\n"
25803 @@ -452,40 +496,67 @@ GLOBAL(name)
25804 __INITDATA
25805 NEXT_PAGE(early_level4_pgt)
25806 .fill 511,8,0
25807 - .quad level3_kernel_pgt - __START_KERNEL_map + _PAGE_TABLE
25808 + .quad level3_kernel_pgt - __START_KERNEL_map + _KERNPG_TABLE
25809
25810 NEXT_PAGE(early_dynamic_pgts)
25811 .fill 512*EARLY_DYNAMIC_PAGE_TABLES,8,0
25812
25813 - .data
25814 + .section .rodata,"a",@progbits
25815
25816 -#ifndef CONFIG_XEN
25817 NEXT_PAGE(init_level4_pgt)
25818 - .fill 512,8,0
25819 -#else
25820 -NEXT_PAGE(init_level4_pgt)
25821 - .quad level3_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE
25822 .org init_level4_pgt + L4_PAGE_OFFSET*8, 0
25823 .quad level3_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE
25824 + .org init_level4_pgt + L4_VMALLOC_START*8, 0
25825 + .quad level3_vmalloc_start_pgt - __START_KERNEL_map + _KERNPG_TABLE
25826 + .org init_level4_pgt + L4_VMALLOC_END*8, 0
25827 + .quad level3_vmalloc_end_pgt - __START_KERNEL_map + _KERNPG_TABLE
25828 + .org init_level4_pgt + L4_VMEMMAP_START*8, 0
25829 + .quad level3_vmemmap_pgt - __START_KERNEL_map + _KERNPG_TABLE
25830 .org init_level4_pgt + L4_START_KERNEL*8, 0
25831 /* (2^48-(2*1024*1024*1024))/(2^39) = 511 */
25832 - .quad level3_kernel_pgt - __START_KERNEL_map + _PAGE_TABLE
25833 + .quad level3_kernel_pgt - __START_KERNEL_map + _KERNPG_TABLE
25834 +
25835 +#ifdef CONFIG_PAX_PER_CPU_PGD
25836 +NEXT_PAGE(cpu_pgd)
25837 + .rept 2*NR_CPUS
25838 + .fill 512,8,0
25839 + .endr
25840 +#endif
25841
25842 NEXT_PAGE(level3_ident_pgt)
25843 .quad level2_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE
25844 +#ifdef CONFIG_XEN
25845 .fill 511, 8, 0
25846 +#else
25847 + .quad level2_ident_pgt + PAGE_SIZE - __START_KERNEL_map + _KERNPG_TABLE
25848 + .fill 510,8,0
25849 +#endif
25850 +
25851 +NEXT_PAGE(level3_vmalloc_start_pgt)
25852 + .fill 512,8,0
25853 +
25854 +NEXT_PAGE(level3_vmalloc_end_pgt)
25855 + .fill 512,8,0
25856 +
25857 +NEXT_PAGE(level3_vmemmap_pgt)
25858 + .fill L3_VMEMMAP_START,8,0
25859 + .quad level2_vmemmap_pgt - __START_KERNEL_map + _KERNPG_TABLE
25860 +
25861 NEXT_PAGE(level2_ident_pgt)
25862 - /* Since I easily can, map the first 1G.
25863 + .quad level1_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE
25864 + /* Since I easily can, map the first 2G.
25865 * Don't set NX because code runs from these pages.
25866 */
25867 - PMDS(0, __PAGE_KERNEL_IDENT_LARGE_EXEC, PTRS_PER_PMD)
25868 -#endif
25869 + PMDS(PMD_SIZE, __PAGE_KERNEL_IDENT_LARGE_EXEC, 2*PTRS_PER_PMD - 1)
25870
25871 NEXT_PAGE(level3_kernel_pgt)
25872 .fill L3_START_KERNEL,8,0
25873 /* (2^48-(2*1024*1024*1024)-((2^39)*511))/(2^30) = 510 */
25874 .quad level2_kernel_pgt - __START_KERNEL_map + _KERNPG_TABLE
25875 - .quad level2_fixmap_pgt - __START_KERNEL_map + _PAGE_TABLE
25876 + .quad level2_fixmap_pgt - __START_KERNEL_map + _KERNPG_TABLE
25877 +
25878 +NEXT_PAGE(level2_vmemmap_pgt)
25879 + .fill 512,8,0
25880
25881 NEXT_PAGE(level2_kernel_pgt)
25882 /*
25883 @@ -502,31 +573,79 @@ NEXT_PAGE(level2_kernel_pgt)
25884 KERNEL_IMAGE_SIZE/PMD_SIZE)
25885
25886 NEXT_PAGE(level2_fixmap_pgt)
25887 - .fill 506,8,0
25888 - .quad level1_fixmap_pgt - __START_KERNEL_map + _PAGE_TABLE
25889 - /* 8MB reserved for vsyscalls + a 2MB hole = 4 + 1 entries */
25890 - .fill 5,8,0
25891 + .quad level1_modules_pgt - __START_KERNEL_map + 0 * PAGE_SIZE + _KERNPG_TABLE
25892 + .quad level1_modules_pgt - __START_KERNEL_map + 1 * PAGE_SIZE + _KERNPG_TABLE
25893 + .quad level1_modules_pgt - __START_KERNEL_map + 2 * PAGE_SIZE + _KERNPG_TABLE
25894 + .quad level1_modules_pgt - __START_KERNEL_map + 3 * PAGE_SIZE + _KERNPG_TABLE
25895 + .fill 500,8,0
25896 + .quad level1_fixmap_pgt - __START_KERNEL_map + 0 * PAGE_SIZE + _KERNPG_TABLE
25897 + .quad level1_fixmap_pgt - __START_KERNEL_map + 1 * PAGE_SIZE + _KERNPG_TABLE
25898 + .quad level1_fixmap_pgt - __START_KERNEL_map + 2 * PAGE_SIZE + _KERNPG_TABLE
25899 + .quad level1_vsyscall_pgt - __START_KERNEL_map + _KERNPG_TABLE
25900 + /* 6MB reserved for vsyscalls + a 2MB hole = 3 + 1 entries */
25901 + .fill 4,8,0
25902 +
25903 +NEXT_PAGE(level1_ident_pgt)
25904 + .fill 512,8,0
25905 +
25906 +NEXT_PAGE(level1_modules_pgt)
25907 + .fill 4*512,8,0
25908
25909 NEXT_PAGE(level1_fixmap_pgt)
25910 + .fill 3*512,8,0
25911 +
25912 +NEXT_PAGE(level1_vsyscall_pgt)
25913 .fill 512,8,0
25914
25915 #undef PMDS
25916
25917 - .data
25918 + .align PAGE_SIZE
25919 +ENTRY(cpu_gdt_table)
25920 + .rept NR_CPUS
25921 + .quad 0x0000000000000000 /* NULL descriptor */
25922 + .quad 0x00cf9b000000ffff /* __KERNEL32_CS */
25923 + .quad 0x00af9b000000ffff /* __KERNEL_CS */
25924 + .quad 0x00cf93000000ffff /* __KERNEL_DS */
25925 + .quad 0x00cffb000000ffff /* __USER32_CS */
25926 + .quad 0x00cff3000000ffff /* __USER_DS, __USER32_DS */
25927 + .quad 0x00affb000000ffff /* __USER_CS */
25928 +
25929 +#ifdef CONFIG_PAX_KERNEXEC
25930 + .quad 0x00af9b000000ffff /* __KERNEXEC_KERNEL_CS */
25931 +#else
25932 + .quad 0x0 /* unused */
25933 +#endif
25934 +
25935 + .quad 0,0 /* TSS */
25936 + .quad 0,0 /* LDT */
25937 + .quad 0,0,0 /* three TLS descriptors */
25938 + .quad 0x0000f40000000000 /* node/CPU stored in limit */
25939 + /* asm/segment.h:GDT_ENTRIES must match this */
25940 +
25941 +#ifdef CONFIG_PAX_MEMORY_UDEREF
25942 + .quad 0x00cf93000000ffff /* __UDEREF_KERNEL_DS */
25943 +#else
25944 + .quad 0x0 /* unused */
25945 +#endif
25946 +
25947 + /* zero the remaining page */
25948 + .fill PAGE_SIZE / 8 - GDT_ENTRIES,8,0
25949 + .endr
25950 +
25951 .align 16
25952 .globl early_gdt_descr
25953 early_gdt_descr:
25954 .word GDT_ENTRIES*8-1
25955 early_gdt_descr_base:
25956 - .quad INIT_PER_CPU_VAR(gdt_page)
25957 + .quad cpu_gdt_table
25958
25959 ENTRY(phys_base)
25960 /* This must match the first entry in level2_kernel_pgt */
25961 .quad 0x0000000000000000
25962
25963 #include "../../x86/xen/xen-head.S"
25964 -
25965 - __PAGE_ALIGNED_BSS
25966 +
25967 + .section .rodata,"a",@progbits
25968 NEXT_PAGE(empty_zero_page)
25969 .skip PAGE_SIZE
25970
25971 diff --git a/arch/x86/kernel/i386_ksyms_32.c b/arch/x86/kernel/i386_ksyms_32.c
25972 index 64341aa..b1e6632 100644
25973 --- a/arch/x86/kernel/i386_ksyms_32.c
25974 +++ b/arch/x86/kernel/i386_ksyms_32.c
25975 @@ -20,8 +20,12 @@ extern void cmpxchg8b_emu(void);
25976 EXPORT_SYMBOL(cmpxchg8b_emu);
25977 #endif
25978
25979 +EXPORT_SYMBOL_GPL(cpu_gdt_table);
25980 +
25981 /* Networking helper routines. */
25982 EXPORT_SYMBOL(csum_partial_copy_generic);
25983 +EXPORT_SYMBOL(csum_partial_copy_generic_to_user);
25984 +EXPORT_SYMBOL(csum_partial_copy_generic_from_user);
25985
25986 EXPORT_SYMBOL(__get_user_1);
25987 EXPORT_SYMBOL(__get_user_2);
25988 @@ -42,3 +46,11 @@ EXPORT_SYMBOL(empty_zero_page);
25989 EXPORT_SYMBOL(___preempt_schedule);
25990 EXPORT_SYMBOL(___preempt_schedule_notrace);
25991 #endif
25992 +
25993 +#ifdef CONFIG_PAX_KERNEXEC
25994 +EXPORT_SYMBOL(__LOAD_PHYSICAL_ADDR);
25995 +#endif
25996 +
25997 +#ifdef CONFIG_PAX_PER_CPU_PGD
25998 +EXPORT_SYMBOL(cpu_pgd);
25999 +#endif
26000 diff --git a/arch/x86/kernel/i8259.c b/arch/x86/kernel/i8259.c
26001 index be22f5a..c5d0e1f 100644
26002 --- a/arch/x86/kernel/i8259.c
26003 +++ b/arch/x86/kernel/i8259.c
26004 @@ -110,7 +110,7 @@ static int i8259A_irq_pending(unsigned int irq)
26005 static void make_8259A_irq(unsigned int irq)
26006 {
26007 disable_irq_nosync(irq);
26008 - io_apic_irqs &= ~(1<<irq);
26009 + io_apic_irqs &= ~(1UL<<irq);
26010 irq_set_chip_and_handler(irq, &i8259A_chip, handle_level_irq);
26011 enable_irq(irq);
26012 }
26013 @@ -208,7 +208,7 @@ spurious_8259A_irq:
26014 "spurious 8259A interrupt: IRQ%d.\n", irq);
26015 spurious_irq_mask |= irqmask;
26016 }
26017 - atomic_inc(&irq_err_count);
26018 + atomic_inc_unchecked(&irq_err_count);
26019 /*
26020 * Theoretically we do not have to handle this IRQ,
26021 * but in Linux this does not cause problems and is
26022 @@ -356,14 +356,16 @@ static void init_8259A(int auto_eoi)
26023 /* (slave's support for AEOI in flat mode is to be investigated) */
26024 outb_pic(SLAVE_ICW4_DEFAULT, PIC_SLAVE_IMR);
26025
26026 + pax_open_kernel();
26027 if (auto_eoi)
26028 /*
26029 * In AEOI mode we just have to mask the interrupt
26030 * when acking.
26031 */
26032 - i8259A_chip.irq_mask_ack = disable_8259A_irq;
26033 + *(void **)&i8259A_chip.irq_mask_ack = disable_8259A_irq;
26034 else
26035 - i8259A_chip.irq_mask_ack = mask_and_ack_8259A;
26036 + *(void **)&i8259A_chip.irq_mask_ack = mask_and_ack_8259A;
26037 + pax_close_kernel();
26038
26039 udelay(100); /* wait for 8259A to initialize */
26040
26041 diff --git a/arch/x86/kernel/io_delay.c b/arch/x86/kernel/io_delay.c
26042 index a979b5b..1d6db75 100644
26043 --- a/arch/x86/kernel/io_delay.c
26044 +++ b/arch/x86/kernel/io_delay.c
26045 @@ -58,7 +58,7 @@ static int __init dmi_io_delay_0xed_port(const struct dmi_system_id *id)
26046 * Quirk table for systems that misbehave (lock up, etc.) if port
26047 * 0x80 is used:
26048 */
26049 -static struct dmi_system_id __initdata io_delay_0xed_port_dmi_table[] = {
26050 +static const struct dmi_system_id __initconst io_delay_0xed_port_dmi_table[] = {
26051 {
26052 .callback = dmi_io_delay_0xed_port,
26053 .ident = "Compaq Presario V6000",
26054 diff --git a/arch/x86/kernel/ioport.c b/arch/x86/kernel/ioport.c
26055 index 37dae79..620dd84 100644
26056 --- a/arch/x86/kernel/ioport.c
26057 +++ b/arch/x86/kernel/ioport.c
26058 @@ -6,6 +6,7 @@
26059 #include <linux/sched.h>
26060 #include <linux/kernel.h>
26061 #include <linux/capability.h>
26062 +#include <linux/security.h>
26063 #include <linux/errno.h>
26064 #include <linux/types.h>
26065 #include <linux/ioport.h>
26066 @@ -30,6 +31,12 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on)
26067 return -EINVAL;
26068 if (turn_on && !capable(CAP_SYS_RAWIO))
26069 return -EPERM;
26070 +#ifdef CONFIG_GRKERNSEC_IO
26071 + if (turn_on && grsec_disable_privio) {
26072 + gr_handle_ioperm();
26073 + return -ENODEV;
26074 + }
26075 +#endif
26076
26077 /*
26078 * If it's the first ioperm() call in this thread's lifetime, set the
26079 @@ -54,7 +61,7 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on)
26080 * because the ->io_bitmap_max value must match the bitmap
26081 * contents:
26082 */
26083 - tss = &per_cpu(cpu_tss, get_cpu());
26084 + tss = cpu_tss + get_cpu();
26085
26086 if (turn_on)
26087 bitmap_clear(t->io_bitmap_ptr, from, num);
26088 @@ -105,6 +112,12 @@ SYSCALL_DEFINE1(iopl, unsigned int, level)
26089 if (level > old) {
26090 if (!capable(CAP_SYS_RAWIO))
26091 return -EPERM;
26092 +#ifdef CONFIG_GRKERNSEC_IO
26093 + if (grsec_disable_privio) {
26094 + gr_handle_iopl();
26095 + return -ENODEV;
26096 + }
26097 +#endif
26098 }
26099 regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) | (level << 12);
26100 t->iopl = level << 12;
26101 diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c
26102 index 61521dc..5ce5a37 100644
26103 --- a/arch/x86/kernel/irq.c
26104 +++ b/arch/x86/kernel/irq.c
26105 @@ -28,7 +28,7 @@ EXPORT_PER_CPU_SYMBOL(irq_stat);
26106 DEFINE_PER_CPU(struct pt_regs *, irq_regs);
26107 EXPORT_PER_CPU_SYMBOL(irq_regs);
26108
26109 -atomic_t irq_err_count;
26110 +atomic_unchecked_t irq_err_count;
26111
26112 /* Function pointer for generic interrupt vector handling */
26113 void (*x86_platform_ipi_callback)(void) = NULL;
26114 @@ -147,9 +147,9 @@ int arch_show_interrupts(struct seq_file *p, int prec)
26115 seq_puts(p, " Hypervisor callback interrupts\n");
26116 }
26117 #endif
26118 - seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read(&irq_err_count));
26119 + seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read_unchecked(&irq_err_count));
26120 #if defined(CONFIG_X86_IO_APIC)
26121 - seq_printf(p, "%*s: %10u\n", prec, "MIS", atomic_read(&irq_mis_count));
26122 + seq_printf(p, "%*s: %10u\n", prec, "MIS", atomic_read_unchecked(&irq_mis_count));
26123 #endif
26124 #ifdef CONFIG_HAVE_KVM
26125 seq_printf(p, "%*s: ", prec, "PIN");
26126 @@ -201,7 +201,7 @@ u64 arch_irq_stat_cpu(unsigned int cpu)
26127
26128 u64 arch_irq_stat(void)
26129 {
26130 - u64 sum = atomic_read(&irq_err_count);
26131 + u64 sum = atomic_read_unchecked(&irq_err_count);
26132 return sum;
26133 }
26134
26135 diff --git a/arch/x86/kernel/irq_32.c b/arch/x86/kernel/irq_32.c
26136 index 38da8f2..5653e36 100644
26137 --- a/arch/x86/kernel/irq_32.c
26138 +++ b/arch/x86/kernel/irq_32.c
26139 @@ -23,6 +23,8 @@
26140
26141 #ifdef CONFIG_DEBUG_STACKOVERFLOW
26142
26143 +extern void gr_handle_kernel_exploit(void);
26144 +
26145 int sysctl_panic_on_stackoverflow __read_mostly;
26146
26147 /* Debugging check for stack overflow: is there less than 1KB free? */
26148 @@ -33,13 +35,14 @@ static int check_stack_overflow(void)
26149 __asm__ __volatile__("andl %%esp,%0" :
26150 "=r" (sp) : "0" (THREAD_SIZE - 1));
26151
26152 - return sp < (sizeof(struct thread_info) + STACK_WARN);
26153 + return sp < STACK_WARN;
26154 }
26155
26156 static void print_stack_overflow(void)
26157 {
26158 printk(KERN_WARNING "low stack detected by irq handler\n");
26159 dump_stack();
26160 + gr_handle_kernel_exploit();
26161 if (sysctl_panic_on_stackoverflow)
26162 panic("low stack detected by irq handler - check messages\n");
26163 }
26164 @@ -70,10 +73,9 @@ static inline void *current_stack(void)
26165
26166 static inline int execute_on_irq_stack(int overflow, struct irq_desc *desc)
26167 {
26168 - struct irq_stack *curstk, *irqstk;
26169 + struct irq_stack *irqstk;
26170 u32 *isp, *prev_esp, arg1;
26171
26172 - curstk = (struct irq_stack *) current_stack();
26173 irqstk = __this_cpu_read(hardirq_stack);
26174
26175 /*
26176 @@ -82,15 +84,19 @@ static inline int execute_on_irq_stack(int overflow, struct irq_desc *desc)
26177 * handler) we can't do that and just have to keep using the
26178 * current stack (which is the irq stack already after all)
26179 */
26180 - if (unlikely(curstk == irqstk))
26181 + if (unlikely((void *)current_stack_pointer - (void *)irqstk < THREAD_SIZE))
26182 return 0;
26183
26184 - isp = (u32 *) ((char *)irqstk + sizeof(*irqstk));
26185 + isp = (u32 *) ((char *)irqstk + sizeof(*irqstk) - 8);
26186
26187 /* Save the next esp at the bottom of the stack */
26188 prev_esp = (u32 *)irqstk;
26189 *prev_esp = current_stack_pointer();
26190
26191 +#ifdef CONFIG_PAX_MEMORY_UDEREF
26192 + __set_fs(MAKE_MM_SEG(0));
26193 +#endif
26194 +
26195 if (unlikely(overflow))
26196 call_on_stack(print_stack_overflow, isp);
26197
26198 @@ -101,6 +107,11 @@ static inline int execute_on_irq_stack(int overflow, struct irq_desc *desc)
26199 : "0" (desc), "1" (isp),
26200 "D" (desc->handle_irq)
26201 : "memory", "cc", "ecx");
26202 +
26203 +#ifdef CONFIG_PAX_MEMORY_UDEREF
26204 + __set_fs(current_thread_info()->addr_limit);
26205 +#endif
26206 +
26207 return 1;
26208 }
26209
26210 @@ -109,32 +120,18 @@ static inline int execute_on_irq_stack(int overflow, struct irq_desc *desc)
26211 */
26212 void irq_ctx_init(int cpu)
26213 {
26214 - struct irq_stack *irqstk;
26215 -
26216 if (per_cpu(hardirq_stack, cpu))
26217 return;
26218
26219 - irqstk = page_address(alloc_pages_node(cpu_to_node(cpu),
26220 - THREADINFO_GFP,
26221 - THREAD_SIZE_ORDER));
26222 - per_cpu(hardirq_stack, cpu) = irqstk;
26223 -
26224 - irqstk = page_address(alloc_pages_node(cpu_to_node(cpu),
26225 - THREADINFO_GFP,
26226 - THREAD_SIZE_ORDER));
26227 - per_cpu(softirq_stack, cpu) = irqstk;
26228 -
26229 - printk(KERN_DEBUG "CPU %u irqstacks, hard=%p soft=%p\n",
26230 - cpu, per_cpu(hardirq_stack, cpu), per_cpu(softirq_stack, cpu));
26231 + per_cpu(hardirq_stack, cpu) = page_address(alloc_pages_node(cpu_to_node(cpu), THREADINFO_GFP, THREAD_SIZE_ORDER));
26232 + per_cpu(softirq_stack, cpu) = page_address(alloc_pages_node(cpu_to_node(cpu), THREADINFO_GFP, THREAD_SIZE_ORDER));
26233 }
26234
26235 void do_softirq_own_stack(void)
26236 {
26237 - struct thread_info *curstk;
26238 struct irq_stack *irqstk;
26239 u32 *isp, *prev_esp;
26240
26241 - curstk = current_stack();
26242 irqstk = __this_cpu_read(softirq_stack);
26243
26244 /* build the stack frame on the softirq stack */
26245 @@ -144,7 +141,16 @@ void do_softirq_own_stack(void)
26246 prev_esp = (u32 *)irqstk;
26247 *prev_esp = current_stack_pointer();
26248
26249 +#ifdef CONFIG_PAX_MEMORY_UDEREF
26250 + __set_fs(MAKE_MM_SEG(0));
26251 +#endif
26252 +
26253 call_on_stack(__do_softirq, isp);
26254 +
26255 +#ifdef CONFIG_PAX_MEMORY_UDEREF
26256 + __set_fs(current_thread_info()->addr_limit);
26257 +#endif
26258 +
26259 }
26260
26261 bool handle_irq(struct irq_desc *desc, struct pt_regs *regs)
26262 diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c
26263 index 206d0b9..ecb677c 100644
26264 --- a/arch/x86/kernel/irq_64.c
26265 +++ b/arch/x86/kernel/irq_64.c
26266 @@ -20,6 +20,8 @@
26267 #include <asm/idle.h>
26268 #include <asm/apic.h>
26269
26270 +extern void gr_handle_kernel_exploit(void);
26271 +
26272 int sysctl_panic_on_stackoverflow;
26273
26274 /*
26275 @@ -63,6 +65,8 @@ static inline void stack_overflow_check(struct pt_regs *regs)
26276 irq_stack_top, irq_stack_bottom,
26277 estack_top, estack_bottom);
26278
26279 + gr_handle_kernel_exploit();
26280 +
26281 if (sysctl_panic_on_stackoverflow)
26282 panic("low stack detected by irq handler - check messages\n");
26283 #endif
26284 diff --git a/arch/x86/kernel/jump_label.c b/arch/x86/kernel/jump_label.c
26285 index e565e0e..fdfeb45 100644
26286 --- a/arch/x86/kernel/jump_label.c
26287 +++ b/arch/x86/kernel/jump_label.c
26288 @@ -31,6 +31,8 @@ static void bug_at(unsigned char *ip, int line)
26289 * Something went wrong. Crash the box, as something could be
26290 * corrupting the kernel.
26291 */
26292 + ip = (unsigned char *)ktla_ktva((unsigned long)ip);
26293 + pr_warning("Unexpected op at %pS [%p] %s:%d\n", ip, ip, __FILE__, line);
26294 pr_warning("Unexpected op at %pS [%p] (%02x %02x %02x %02x %02x) %s:%d\n",
26295 ip, ip, ip[0], ip[1], ip[2], ip[3], ip[4], __FILE__, line);
26296 BUG();
26297 @@ -51,7 +53,7 @@ static void __jump_label_transform(struct jump_entry *entry,
26298 * Jump label is enabled for the first time.
26299 * So we expect a default_nop...
26300 */
26301 - if (unlikely(memcmp((void *)entry->code, default_nop, 5)
26302 + if (unlikely(memcmp((void *)ktla_ktva(entry->code), default_nop, 5)
26303 != 0))
26304 bug_at((void *)entry->code, __LINE__);
26305 } else {
26306 @@ -59,7 +61,7 @@ static void __jump_label_transform(struct jump_entry *entry,
26307 * ...otherwise expect an ideal_nop. Otherwise
26308 * something went horribly wrong.
26309 */
26310 - if (unlikely(memcmp((void *)entry->code, ideal_nop, 5)
26311 + if (unlikely(memcmp((void *)ktla_ktva(entry->code), ideal_nop, 5)
26312 != 0))
26313 bug_at((void *)entry->code, __LINE__);
26314 }
26315 @@ -75,13 +77,13 @@ static void __jump_label_transform(struct jump_entry *entry,
26316 * are converting the default nop to the ideal nop.
26317 */
26318 if (init) {
26319 - if (unlikely(memcmp((void *)entry->code, default_nop, 5) != 0))
26320 + if (unlikely(memcmp((void *)ktla_ktva(entry->code), default_nop, 5) != 0))
26321 bug_at((void *)entry->code, __LINE__);
26322 } else {
26323 code.jump = 0xe9;
26324 code.offset = entry->target -
26325 (entry->code + JUMP_LABEL_NOP_SIZE);
26326 - if (unlikely(memcmp((void *)entry->code, &code, 5) != 0))
26327 + if (unlikely(memcmp((void *)ktla_ktva(entry->code), &code, 5) != 0))
26328 bug_at((void *)entry->code, __LINE__);
26329 }
26330 memcpy(&code, ideal_nops[NOP_ATOMIC5], JUMP_LABEL_NOP_SIZE);
26331 diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c
26332 index 44256a6..61d5bfe 100644
26333 --- a/arch/x86/kernel/kgdb.c
26334 +++ b/arch/x86/kernel/kgdb.c
26335 @@ -228,7 +228,10 @@ static void kgdb_correct_hw_break(void)
26336 bp->attr.bp_addr = breakinfo[breakno].addr;
26337 bp->attr.bp_len = breakinfo[breakno].len;
26338 bp->attr.bp_type = breakinfo[breakno].type;
26339 - info->address = breakinfo[breakno].addr;
26340 + if (breakinfo[breakno].type == X86_BREAKPOINT_EXECUTE)
26341 + info->address = ktla_ktva(breakinfo[breakno].addr);
26342 + else
26343 + info->address = breakinfo[breakno].addr;
26344 info->len = breakinfo[breakno].len;
26345 info->type = breakinfo[breakno].type;
26346 val = arch_install_hw_breakpoint(bp);
26347 @@ -475,12 +478,12 @@ int kgdb_arch_handle_exception(int e_vector, int signo, int err_code,
26348 case 'k':
26349 /* clear the trace bit */
26350 linux_regs->flags &= ~X86_EFLAGS_TF;
26351 - atomic_set(&kgdb_cpu_doing_single_step, -1);
26352 + atomic_set_unchecked(&kgdb_cpu_doing_single_step, -1);
26353
26354 /* set the trace bit if we're stepping */
26355 if (remcomInBuffer[0] == 's') {
26356 linux_regs->flags |= X86_EFLAGS_TF;
26357 - atomic_set(&kgdb_cpu_doing_single_step,
26358 + atomic_set_unchecked(&kgdb_cpu_doing_single_step,
26359 raw_smp_processor_id());
26360 }
26361
26362 @@ -550,7 +553,7 @@ static int __kgdb_notify(struct die_args *args, unsigned long cmd)
26363
26364 switch (cmd) {
26365 case DIE_DEBUG:
26366 - if (atomic_read(&kgdb_cpu_doing_single_step) != -1) {
26367 + if (atomic_read_unchecked(&kgdb_cpu_doing_single_step) != -1) {
26368 if (user_mode(regs))
26369 return single_step_cont(regs, args);
26370 break;
26371 @@ -755,11 +758,11 @@ int kgdb_arch_set_breakpoint(struct kgdb_bkpt *bpt)
26372 #endif /* CONFIG_DEBUG_RODATA */
26373
26374 bpt->type = BP_BREAKPOINT;
26375 - err = probe_kernel_read(bpt->saved_instr, (char *)bpt->bpt_addr,
26376 + err = probe_kernel_read(bpt->saved_instr, (const void *)ktla_ktva(bpt->bpt_addr),
26377 BREAK_INSTR_SIZE);
26378 if (err)
26379 return err;
26380 - err = probe_kernel_write((char *)bpt->bpt_addr,
26381 + err = probe_kernel_write((void *)ktla_ktva(bpt->bpt_addr),
26382 arch_kgdb_ops.gdb_bpt_instr, BREAK_INSTR_SIZE);
26383 #ifdef CONFIG_DEBUG_RODATA
26384 if (!err)
26385 @@ -772,7 +775,7 @@ int kgdb_arch_set_breakpoint(struct kgdb_bkpt *bpt)
26386 return -EBUSY;
26387 text_poke((void *)bpt->bpt_addr, arch_kgdb_ops.gdb_bpt_instr,
26388 BREAK_INSTR_SIZE);
26389 - err = probe_kernel_read(opc, (char *)bpt->bpt_addr, BREAK_INSTR_SIZE);
26390 + err = probe_kernel_read(opc, ktla_ktva((char *)bpt->bpt_addr), BREAK_INSTR_SIZE);
26391 if (err)
26392 return err;
26393 if (memcmp(opc, arch_kgdb_ops.gdb_bpt_instr, BREAK_INSTR_SIZE))
26394 @@ -797,13 +800,13 @@ int kgdb_arch_remove_breakpoint(struct kgdb_bkpt *bpt)
26395 if (mutex_is_locked(&text_mutex))
26396 goto knl_write;
26397 text_poke((void *)bpt->bpt_addr, bpt->saved_instr, BREAK_INSTR_SIZE);
26398 - err = probe_kernel_read(opc, (char *)bpt->bpt_addr, BREAK_INSTR_SIZE);
26399 + err = probe_kernel_read(opc, ktla_ktva((char *)bpt->bpt_addr), BREAK_INSTR_SIZE);
26400 if (err || memcmp(opc, bpt->saved_instr, BREAK_INSTR_SIZE))
26401 goto knl_write;
26402 return err;
26403 knl_write:
26404 #endif /* CONFIG_DEBUG_RODATA */
26405 - return probe_kernel_write((char *)bpt->bpt_addr,
26406 + return probe_kernel_write((void *)ktla_ktva(bpt->bpt_addr),
26407 (char *)bpt->saved_instr, BREAK_INSTR_SIZE);
26408 }
26409
26410 diff --git a/arch/x86/kernel/kprobes/core.c b/arch/x86/kernel/kprobes/core.c
26411 index 1deffe6..3be342a 100644
26412 --- a/arch/x86/kernel/kprobes/core.c
26413 +++ b/arch/x86/kernel/kprobes/core.c
26414 @@ -120,9 +120,12 @@ __synthesize_relative_insn(void *from, void *to, u8 op)
26415 s32 raddr;
26416 } __packed *insn;
26417
26418 - insn = (struct __arch_relative_insn *)from;
26419 + insn = (struct __arch_relative_insn *)ktla_ktva((unsigned long)from);
26420 +
26421 + pax_open_kernel();
26422 insn->raddr = (s32)((long)(to) - ((long)(from) + 5));
26423 insn->op = op;
26424 + pax_close_kernel();
26425 }
26426
26427 /* Insert a jump instruction at address 'from', which jumps to address 'to'.*/
26428 @@ -168,7 +171,7 @@ int can_boost(kprobe_opcode_t *opcodes)
26429 kprobe_opcode_t opcode;
26430 kprobe_opcode_t *orig_opcodes = opcodes;
26431
26432 - if (search_exception_tables((unsigned long)opcodes))
26433 + if (search_exception_tables(ktva_ktla((unsigned long)opcodes)))
26434 return 0; /* Page fault may occur on this address. */
26435
26436 retry:
26437 @@ -260,12 +263,12 @@ __recover_probed_insn(kprobe_opcode_t *buf, unsigned long addr)
26438 * Fortunately, we know that the original code is the ideal 5-byte
26439 * long NOP.
26440 */
26441 - memcpy(buf, (void *)addr, MAX_INSN_SIZE * sizeof(kprobe_opcode_t));
26442 + memcpy(buf, (void *)ktla_ktva(addr), MAX_INSN_SIZE * sizeof(kprobe_opcode_t));
26443 if (faddr)
26444 memcpy(buf, ideal_nops[NOP_ATOMIC5], 5);
26445 else
26446 buf[0] = kp->opcode;
26447 - return (unsigned long)buf;
26448 + return ktva_ktla((unsigned long)buf);
26449 }
26450
26451 /*
26452 @@ -367,7 +370,9 @@ int __copy_instruction(u8 *dest, u8 *src)
26453 /* Another subsystem puts a breakpoint, failed to recover */
26454 if (insn.opcode.bytes[0] == BREAKPOINT_INSTRUCTION)
26455 return 0;
26456 + pax_open_kernel();
26457 memcpy(dest, insn.kaddr, length);
26458 + pax_close_kernel();
26459
26460 #ifdef CONFIG_X86_64
26461 if (insn_rip_relative(&insn)) {
26462 @@ -394,7 +399,9 @@ int __copy_instruction(u8 *dest, u8 *src)
26463 return 0;
26464 }
26465 disp = (u8 *) dest + insn_offset_displacement(&insn);
26466 + pax_open_kernel();
26467 *(s32 *) disp = (s32) newdisp;
26468 + pax_close_kernel();
26469 }
26470 #endif
26471 return length;
26472 @@ -536,7 +543,7 @@ static void setup_singlestep(struct kprobe *p, struct pt_regs *regs,
26473 * nor set current_kprobe, because it doesn't use single
26474 * stepping.
26475 */
26476 - regs->ip = (unsigned long)p->ainsn.insn;
26477 + regs->ip = ktva_ktla((unsigned long)p->ainsn.insn);
26478 preempt_enable_no_resched();
26479 return;
26480 }
26481 @@ -553,9 +560,9 @@ static void setup_singlestep(struct kprobe *p, struct pt_regs *regs,
26482 regs->flags &= ~X86_EFLAGS_IF;
26483 /* single step inline if the instruction is an int3 */
26484 if (p->opcode == BREAKPOINT_INSTRUCTION)
26485 - regs->ip = (unsigned long)p->addr;
26486 + regs->ip = ktla_ktva((unsigned long)p->addr);
26487 else
26488 - regs->ip = (unsigned long)p->ainsn.insn;
26489 + regs->ip = ktva_ktla((unsigned long)p->ainsn.insn);
26490 }
26491 NOKPROBE_SYMBOL(setup_singlestep);
26492
26493 @@ -640,7 +647,7 @@ int kprobe_int3_handler(struct pt_regs *regs)
26494 setup_singlestep(p, regs, kcb, 0);
26495 return 1;
26496 }
26497 - } else if (*addr != BREAKPOINT_INSTRUCTION) {
26498 + } else if (*(kprobe_opcode_t *)ktla_ktva((unsigned long)addr) != BREAKPOINT_INSTRUCTION) {
26499 /*
26500 * The breakpoint instruction was removed right
26501 * after we hit it. Another cpu has removed
26502 @@ -687,6 +694,9 @@ static void __used kretprobe_trampoline_holder(void)
26503 " movq %rax, 152(%rsp)\n"
26504 RESTORE_REGS_STRING
26505 " popfq\n"
26506 +#ifdef KERNEXEC_PLUGIN
26507 + " btsq $63,(%rsp)\n"
26508 +#endif
26509 #else
26510 " pushf\n"
26511 SAVE_REGS_STRING
26512 @@ -827,7 +837,7 @@ static void resume_execution(struct kprobe *p, struct pt_regs *regs,
26513 struct kprobe_ctlblk *kcb)
26514 {
26515 unsigned long *tos = stack_addr(regs);
26516 - unsigned long copy_ip = (unsigned long)p->ainsn.insn;
26517 + unsigned long copy_ip = ktva_ktla((unsigned long)p->ainsn.insn);
26518 unsigned long orig_ip = (unsigned long)p->addr;
26519 kprobe_opcode_t *insn = p->ainsn.insn;
26520
26521 diff --git a/arch/x86/kernel/kprobes/opt.c b/arch/x86/kernel/kprobes/opt.c
26522 index 7b3b9d1..e2478b91 100644
26523 --- a/arch/x86/kernel/kprobes/opt.c
26524 +++ b/arch/x86/kernel/kprobes/opt.c
26525 @@ -79,6 +79,7 @@ found:
26526 /* Insert a move instruction which sets a pointer to eax/rdi (1st arg). */
26527 static void synthesize_set_arg1(kprobe_opcode_t *addr, unsigned long val)
26528 {
26529 + pax_open_kernel();
26530 #ifdef CONFIG_X86_64
26531 *addr++ = 0x48;
26532 *addr++ = 0xbf;
26533 @@ -86,6 +87,7 @@ static void synthesize_set_arg1(kprobe_opcode_t *addr, unsigned long val)
26534 *addr++ = 0xb8;
26535 #endif
26536 *(unsigned long *)addr = val;
26537 + pax_close_kernel();
26538 }
26539
26540 asm (
26541 @@ -342,7 +344,7 @@ int arch_prepare_optimized_kprobe(struct optimized_kprobe *op,
26542 * Verify if the address gap is in 2GB range, because this uses
26543 * a relative jump.
26544 */
26545 - rel = (long)op->optinsn.insn - (long)op->kp.addr + RELATIVEJUMP_SIZE;
26546 + rel = (long)op->optinsn.insn - ktla_ktva((long)op->kp.addr) + RELATIVEJUMP_SIZE;
26547 if (abs(rel) > 0x7fffffff) {
26548 __arch_remove_optimized_kprobe(op, 0);
26549 return -ERANGE;
26550 @@ -359,16 +361,18 @@ int arch_prepare_optimized_kprobe(struct optimized_kprobe *op,
26551 op->optinsn.size = ret;
26552
26553 /* Copy arch-dep-instance from template */
26554 - memcpy(buf, &optprobe_template_entry, TMPL_END_IDX);
26555 + pax_open_kernel();
26556 + memcpy(buf, ktla_ktva(&optprobe_template_entry), TMPL_END_IDX);
26557 + pax_close_kernel();
26558
26559 /* Set probe information */
26560 synthesize_set_arg1(buf + TMPL_MOVE_IDX, (unsigned long)op);
26561
26562 /* Set probe function call */
26563 - synthesize_relcall(buf + TMPL_CALL_IDX, optimized_callback);
26564 + synthesize_relcall(ktva_ktla(buf) + TMPL_CALL_IDX, optimized_callback);
26565
26566 /* Set returning jmp instruction at the tail of out-of-line buffer */
26567 - synthesize_reljump(buf + TMPL_END_IDX + op->optinsn.size,
26568 + synthesize_reljump(ktva_ktla(buf) + TMPL_END_IDX + op->optinsn.size,
26569 (u8 *)op->kp.addr + op->optinsn.size);
26570
26571 flush_icache_range((unsigned long) buf,
26572 @@ -393,7 +397,7 @@ void arch_optimize_kprobes(struct list_head *oplist)
26573 WARN_ON(kprobe_disabled(&op->kp));
26574
26575 /* Backup instructions which will be replaced by jump address */
26576 - memcpy(op->optinsn.copied_insn, op->kp.addr + INT3_SIZE,
26577 + memcpy(op->optinsn.copied_insn, ktla_ktva(op->kp.addr) + INT3_SIZE,
26578 RELATIVE_ADDR_SIZE);
26579
26580 insn_buf[0] = RELATIVEJUMP_OPCODE;
26581 @@ -441,7 +445,7 @@ int setup_detour_execution(struct kprobe *p, struct pt_regs *regs, int reenter)
26582 /* This kprobe is really able to run optimized path. */
26583 op = container_of(p, struct optimized_kprobe, kp);
26584 /* Detour through copied instructions */
26585 - regs->ip = (unsigned long)op->optinsn.insn + TMPL_END_IDX;
26586 + regs->ip = ktva_ktla((unsigned long)op->optinsn.insn) + TMPL_END_IDX;
26587 if (!reenter)
26588 reset_current_kprobe();
26589 preempt_enable_no_resched();
26590 diff --git a/arch/x86/kernel/ksysfs.c b/arch/x86/kernel/ksysfs.c
26591 index c2bedae..25e7ab60 100644
26592 --- a/arch/x86/kernel/ksysfs.c
26593 +++ b/arch/x86/kernel/ksysfs.c
26594 @@ -184,7 +184,7 @@ out:
26595
26596 static struct kobj_attribute type_attr = __ATTR_RO(type);
26597
26598 -static struct bin_attribute data_attr = {
26599 +static bin_attribute_no_const data_attr __read_only = {
26600 .attr = {
26601 .name = "data",
26602 .mode = S_IRUGO,
26603 diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
26604 index 47190bd..0165c4d 100644
26605 --- a/arch/x86/kernel/kvm.c
26606 +++ b/arch/x86/kernel/kvm.c
26607 @@ -553,7 +553,7 @@ static uint32_t __init kvm_detect(void)
26608 return kvm_cpuid_base();
26609 }
26610
26611 -const struct hypervisor_x86 x86_hyper_kvm __refconst = {
26612 +const struct hypervisor_x86 x86_hyper_kvm = {
26613 .name = "KVM",
26614 .detect = kvm_detect,
26615 .x2apic_available = kvm_para_available,
26616 diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
26617 index 2bd81e3..2d5e042 100644
26618 --- a/arch/x86/kernel/kvmclock.c
26619 +++ b/arch/x86/kernel/kvmclock.c
26620 @@ -29,7 +29,7 @@
26621 #include <asm/x86_init.h>
26622 #include <asm/reboot.h>
26623
26624 -static int kvmclock = 1;
26625 +static int kvmclock __read_only = 1;
26626 static int msr_kvm_system_time = MSR_KVM_SYSTEM_TIME;
26627 static int msr_kvm_wall_clock = MSR_KVM_WALL_CLOCK;
26628 static cycle_t kvm_sched_clock_offset;
26629 @@ -42,7 +42,7 @@ static int parse_no_kvmclock(char *arg)
26630 early_param("no-kvmclock", parse_no_kvmclock);
26631
26632 /* The hypervisor will put information about time periodically here */
26633 -static struct pvclock_vsyscall_time_info *hv_clock;
26634 +static struct pvclock_vsyscall_time_info hv_clock[NR_CPUS] __page_aligned_bss;
26635 static struct pvclock_wall_clock wall_clock;
26636
26637 /*
26638 @@ -156,7 +156,7 @@ bool kvm_check_and_clear_guest_paused(void)
26639 struct pvclock_vcpu_time_info *src;
26640 int cpu = smp_processor_id();
26641
26642 - if (!hv_clock)
26643 + if (!kvmclock)
26644 return ret;
26645
26646 src = &hv_clock[cpu].pvti;
26647 @@ -183,7 +183,7 @@ int kvm_register_clock(char *txt)
26648 int low, high, ret;
26649 struct pvclock_vcpu_time_info *src;
26650
26651 - if (!hv_clock)
26652 + if (!kvmclock)
26653 return 0;
26654
26655 src = &hv_clock[cpu].pvti;
26656 @@ -243,7 +243,6 @@ static void kvm_shutdown(void)
26657 void __init kvmclock_init(void)
26658 {
26659 struct pvclock_vcpu_time_info *vcpu_time;
26660 - unsigned long mem;
26661 int size, cpu;
26662 u8 flags;
26663
26664 @@ -261,15 +260,8 @@ void __init kvmclock_init(void)
26665 printk(KERN_INFO "kvm-clock: Using msrs %x and %x",
26666 msr_kvm_system_time, msr_kvm_wall_clock);
26667
26668 - mem = memblock_alloc(size, PAGE_SIZE);
26669 - if (!mem)
26670 - return;
26671 - hv_clock = __va(mem);
26672 - memset(hv_clock, 0, size);
26673 -
26674 if (kvm_register_clock("primary cpu clock")) {
26675 - hv_clock = NULL;
26676 - memblock_free(mem, size);
26677 + kvmclock = 0;
26678 return;
26679 }
26680
26681 @@ -310,7 +302,7 @@ int __init kvm_setup_vsyscall_timeinfo(void)
26682 struct pvclock_vcpu_time_info *vcpu_time;
26683 unsigned int size;
26684
26685 - if (!hv_clock)
26686 + if (!kvmclock)
26687 return 0;
26688
26689 size = PAGE_ALIGN(sizeof(struct pvclock_vsyscall_time_info)*NR_CPUS);
26690 diff --git a/arch/x86/kernel/ldt.c b/arch/x86/kernel/ldt.c
26691 index 6acc9dd..f72931d 100644
26692 --- a/arch/x86/kernel/ldt.c
26693 +++ b/arch/x86/kernel/ldt.c
26694 @@ -11,6 +11,7 @@
26695 #include <linux/sched.h>
26696 #include <linux/string.h>
26697 #include <linux/mm.h>
26698 +#include <linux/ratelimit.h>
26699 #include <linux/smp.h>
26700 #include <linux/slab.h>
26701 #include <linux/vmalloc.h>
26702 @@ -21,6 +22,14 @@
26703 #include <asm/mmu_context.h>
26704 #include <asm/syscalls.h>
26705
26706 +#ifdef CONFIG_GRKERNSEC
26707 +int sysctl_modify_ldt __read_only = 0;
26708 +#elif defined(CONFIG_DEFAULT_MODIFY_LDT_SYSCALL)
26709 +int sysctl_modify_ldt __read_only = 1;
26710 +#else
26711 +int sysctl_modify_ldt __read_only = 0;
26712 +#endif
26713 +
26714 /* context.lock is held for us, so we don't need any locking. */
26715 static void flush_ldt(void *current_mm)
26716 {
26717 @@ -109,6 +118,23 @@ int init_new_context(struct task_struct *tsk, struct mm_struct *mm)
26718 struct mm_struct *old_mm;
26719 int retval = 0;
26720
26721 + if (tsk == current) {
26722 + mm->context.vdso = 0;
26723 +
26724 +#ifdef CONFIG_X86_32
26725 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
26726 + mm->context.user_cs_base = 0UL;
26727 + mm->context.user_cs_limit = ~0UL;
26728 +
26729 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_SMP)
26730 + cpumask_clear(&mm->context.cpu_user_cs_mask);
26731 +#endif
26732 +
26733 +#endif
26734 +#endif
26735 +
26736 + }
26737 +
26738 mutex_init(&mm->context.lock);
26739 old_mm = current->mm;
26740 if (!old_mm) {
26741 @@ -235,6 +261,14 @@ static int write_ldt(void __user *ptr, unsigned long bytecount, int oldmode)
26742 /* The user wants to clear the entry. */
26743 memset(&ldt, 0, sizeof(ldt));
26744 } else {
26745 +
26746 +#ifdef CONFIG_PAX_SEGMEXEC
26747 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && (ldt_info.contents & MODIFY_LDT_CONTENTS_CODE)) {
26748 + error = -EINVAL;
26749 + goto out;
26750 + }
26751 +#endif
26752 +
26753 if (!IS_ENABLED(CONFIG_X86_16BIT) && !ldt_info.seg_32bit) {
26754 error = -EINVAL;
26755 goto out;
26756 @@ -276,6 +310,15 @@ asmlinkage int sys_modify_ldt(int func, void __user *ptr,
26757 {
26758 int ret = -ENOSYS;
26759
26760 + if (!sysctl_modify_ldt) {
26761 + printk_ratelimited(KERN_INFO
26762 + "Denied a call to modify_ldt() from %s[%d] (uid: %d)."
26763 + " Adjust sysctl if this was not an exploit attempt.\n",
26764 + current->comm, task_pid_nr(current),
26765 + from_kuid_munged(current_user_ns(), current_uid()));
26766 + return ret;
26767 + }
26768 +
26769 switch (func) {
26770 case 0:
26771 ret = read_ldt(ptr, bytecount);
26772 diff --git a/arch/x86/kernel/livepatch.c b/arch/x86/kernel/livepatch.c
26773 index d1d35cc..d5b1193 100644
26774 --- a/arch/x86/kernel/livepatch.c
26775 +++ b/arch/x86/kernel/livepatch.c
26776 @@ -41,8 +41,10 @@ int klp_write_module_reloc(struct module *mod, unsigned long type,
26777 int ret, numpages, size = 4;
26778 bool readonly;
26779 unsigned long val;
26780 - unsigned long core = (unsigned long)mod->module_core;
26781 - unsigned long core_size = mod->core_size;
26782 + unsigned long core_rx = (unsigned long)mod->module_core_rx;
26783 + unsigned long core_rw = (unsigned long)mod->module_core_rw;
26784 + unsigned long core_size_rx = mod->core_size_rx;
26785 + unsigned long core_size_rw = mod->core_size_rw;
26786
26787 switch (type) {
26788 case R_X86_64_NONE:
26789 @@ -65,14 +67,15 @@ int klp_write_module_reloc(struct module *mod, unsigned long type,
26790 return -EINVAL;
26791 }
26792
26793 - if (loc < core || loc >= core + core_size)
26794 + if ((loc < core_rx || loc >= core_rx + core_size_rx) &&
26795 + (loc < core_rw || loc >= core_rw + core_size_rw))
26796 /* loc does not point to any symbol inside the module */
26797 return -EINVAL;
26798
26799 readonly = false;
26800
26801 #ifdef CONFIG_DEBUG_SET_MODULE_RONX
26802 - if (loc < core + mod->core_ro_size)
26803 + if (loc < core_rx + core_size_rx)
26804 readonly = true;
26805 #endif
26806
26807 diff --git a/arch/x86/kernel/machine_kexec_32.c b/arch/x86/kernel/machine_kexec_32.c
26808 index 469b23d..5449cfe 100644
26809 --- a/arch/x86/kernel/machine_kexec_32.c
26810 +++ b/arch/x86/kernel/machine_kexec_32.c
26811 @@ -26,7 +26,7 @@
26812 #include <asm/cacheflush.h>
26813 #include <asm/debugreg.h>
26814
26815 -static void set_idt(void *newidt, __u16 limit)
26816 +static void set_idt(struct desc_struct *newidt, __u16 limit)
26817 {
26818 struct desc_ptr curidt;
26819
26820 @@ -38,7 +38,7 @@ static void set_idt(void *newidt, __u16 limit)
26821 }
26822
26823
26824 -static void set_gdt(void *newgdt, __u16 limit)
26825 +static void set_gdt(struct desc_struct *newgdt, __u16 limit)
26826 {
26827 struct desc_ptr curgdt;
26828
26829 @@ -216,7 +216,7 @@ void machine_kexec(struct kimage *image)
26830 }
26831
26832 control_page = page_address(image->control_code_page);
26833 - memcpy(control_page, relocate_kernel, KEXEC_CONTROL_CODE_MAX_SIZE);
26834 + memcpy(control_page, (void *)ktla_ktva((unsigned long)relocate_kernel), KEXEC_CONTROL_CODE_MAX_SIZE);
26835
26836 relocate_kernel_ptr = control_page;
26837 page_list[PA_CONTROL_PAGE] = __pa(control_page);
26838 diff --git a/arch/x86/kernel/mcount_64.S b/arch/x86/kernel/mcount_64.S
26839 index 87e1762..994fdb6 100644
26840 --- a/arch/x86/kernel/mcount_64.S
26841 +++ b/arch/x86/kernel/mcount_64.S
26842 @@ -7,7 +7,7 @@
26843 #include <linux/linkage.h>
26844 #include <asm/ptrace.h>
26845 #include <asm/ftrace.h>
26846 -
26847 +#include <asm/alternative-asm.h>
26848
26849 .code64
26850 .section .entry.text, "ax"
26851 @@ -148,8 +148,9 @@
26852 #ifdef CONFIG_DYNAMIC_FTRACE
26853
26854 ENTRY(function_hook)
26855 + pax_force_retaddr
26856 retq
26857 -END(function_hook)
26858 +ENDPROC(function_hook)
26859
26860 ENTRY(ftrace_caller)
26861 /* save_mcount_regs fills in first two parameters */
26862 @@ -181,8 +182,9 @@ GLOBAL(ftrace_graph_call)
26863 #endif
26864
26865 GLOBAL(ftrace_stub)
26866 + pax_force_retaddr
26867 retq
26868 -END(ftrace_caller)
26869 +ENDPROC(ftrace_caller)
26870
26871 ENTRY(ftrace_regs_caller)
26872 /* Save the current flags before any operations that can change them */
26873 @@ -253,7 +255,7 @@ GLOBAL(ftrace_regs_caller_end)
26874
26875 jmp ftrace_return
26876
26877 -END(ftrace_regs_caller)
26878 +ENDPROC(ftrace_regs_caller)
26879
26880
26881 #else /* ! CONFIG_DYNAMIC_FTRACE */
26882 @@ -272,6 +274,7 @@ fgraph_trace:
26883 #endif
26884
26885 GLOBAL(ftrace_stub)
26886 + pax_force_retaddr
26887 retq
26888
26889 trace:
26890 @@ -284,12 +287,13 @@ trace:
26891 * ip and parent ip are used and the list function is called when
26892 * function tracing is enabled.
26893 */
26894 + pax_force_fptr ftrace_trace_function
26895 call *ftrace_trace_function
26896
26897 restore_mcount_regs
26898
26899 jmp fgraph_trace
26900 -END(function_hook)
26901 +ENDPROC(function_hook)
26902 #endif /* CONFIG_DYNAMIC_FTRACE */
26903 #endif /* CONFIG_FUNCTION_TRACER */
26904
26905 @@ -311,8 +315,9 @@ ENTRY(ftrace_graph_caller)
26906
26907 restore_mcount_regs
26908
26909 + pax_force_retaddr
26910 retq
26911 -END(ftrace_graph_caller)
26912 +ENDPROC(ftrace_graph_caller)
26913
26914 GLOBAL(return_to_handler)
26915 subq $24, %rsp
26916 @@ -328,5 +333,7 @@ GLOBAL(return_to_handler)
26917 movq 8(%rsp), %rdx
26918 movq (%rsp), %rax
26919 addq $24, %rsp
26920 + pax_force_fptr %rdi
26921 jmp *%rdi
26922 +ENDPROC(return_to_handler)
26923 #endif
26924 diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c
26925 index 005c03e..7000fe4 100644
26926 --- a/arch/x86/kernel/module.c
26927 +++ b/arch/x86/kernel/module.c
26928 @@ -75,17 +75,17 @@ static unsigned long int get_module_load_offset(void)
26929 }
26930 #endif
26931
26932 -void *module_alloc(unsigned long size)
26933 +static inline void *__module_alloc(unsigned long size, pgprot_t prot)
26934 {
26935 void *p;
26936
26937 - if (PAGE_ALIGN(size) > MODULES_LEN)
26938 + if (!size || PAGE_ALIGN(size) > MODULES_LEN)
26939 return NULL;
26940
26941 p = __vmalloc_node_range(size, MODULE_ALIGN,
26942 MODULES_VADDR + get_module_load_offset(),
26943 - MODULES_END, GFP_KERNEL | __GFP_HIGHMEM,
26944 - PAGE_KERNEL_EXEC, 0, NUMA_NO_NODE,
26945 + MODULES_END, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO,
26946 + prot, 0, NUMA_NO_NODE,
26947 __builtin_return_address(0));
26948 if (p && (kasan_module_alloc(p, size) < 0)) {
26949 vfree(p);
26950 @@ -95,6 +95,51 @@ void *module_alloc(unsigned long size)
26951 return p;
26952 }
26953
26954 +void *module_alloc(unsigned long size)
26955 +{
26956 +
26957 +#ifdef CONFIG_PAX_KERNEXEC
26958 + return __module_alloc(size, PAGE_KERNEL);
26959 +#else
26960 + return __module_alloc(size, PAGE_KERNEL_EXEC);
26961 +#endif
26962 +
26963 +}
26964 +
26965 +#ifdef CONFIG_PAX_KERNEXEC
26966 +#ifdef CONFIG_X86_32
26967 +void *module_alloc_exec(unsigned long size)
26968 +{
26969 + struct vm_struct *area;
26970 +
26971 + if (size == 0)
26972 + return NULL;
26973 +
26974 + area = __get_vm_area(size, VM_ALLOC, (unsigned long)&MODULES_EXEC_VADDR, (unsigned long)&MODULES_EXEC_END);
26975 +return area ? area->addr : NULL;
26976 +}
26977 +EXPORT_SYMBOL(module_alloc_exec);
26978 +
26979 +void module_memfree_exec(void *module_region)
26980 +{
26981 + vunmap(module_region);
26982 +}
26983 +EXPORT_SYMBOL(module_memfree_exec);
26984 +#else
26985 +void module_memfree_exec(void *module_region)
26986 +{
26987 + module_memfree(module_region);
26988 +}
26989 +EXPORT_SYMBOL(module_memfree_exec);
26990 +
26991 +void *module_alloc_exec(unsigned long size)
26992 +{
26993 + return __module_alloc(size, PAGE_KERNEL_RX);
26994 +}
26995 +EXPORT_SYMBOL(module_alloc_exec);
26996 +#endif
26997 +#endif
26998 +
26999 #ifdef CONFIG_X86_32
27000 int apply_relocate(Elf32_Shdr *sechdrs,
27001 const char *strtab,
27002 @@ -105,14 +150,16 @@ int apply_relocate(Elf32_Shdr *sechdrs,
27003 unsigned int i;
27004 Elf32_Rel *rel = (void *)sechdrs[relsec].sh_addr;
27005 Elf32_Sym *sym;
27006 - uint32_t *location;
27007 + uint32_t *plocation, location;
27008
27009 DEBUGP("Applying relocate section %u to %u\n",
27010 relsec, sechdrs[relsec].sh_info);
27011 for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rel); i++) {
27012 /* This is where to make the change */
27013 - location = (void *)sechdrs[sechdrs[relsec].sh_info].sh_addr
27014 - + rel[i].r_offset;
27015 + plocation = (void *)sechdrs[sechdrs[relsec].sh_info].sh_addr + rel[i].r_offset;
27016 + location = (uint32_t)plocation;
27017 + if (sechdrs[sechdrs[relsec].sh_info].sh_flags & SHF_EXECINSTR)
27018 + plocation = (uint32_t *)ktla_ktva((unsigned long)plocation);
27019 /* This is the symbol it is referring to. Note that all
27020 undefined symbols have been resolved. */
27021 sym = (Elf32_Sym *)sechdrs[symindex].sh_addr
27022 @@ -121,11 +168,15 @@ int apply_relocate(Elf32_Shdr *sechdrs,
27023 switch (ELF32_R_TYPE(rel[i].r_info)) {
27024 case R_386_32:
27025 /* We add the value into the location given */
27026 - *location += sym->st_value;
27027 + pax_open_kernel();
27028 + *plocation += sym->st_value;
27029 + pax_close_kernel();
27030 break;
27031 case R_386_PC32:
27032 /* Add the value, subtract its position */
27033 - *location += sym->st_value - (uint32_t)location;
27034 + pax_open_kernel();
27035 + *plocation += sym->st_value - location;
27036 + pax_close_kernel();
27037 break;
27038 default:
27039 pr_err("%s: Unknown relocation: %u\n",
27040 @@ -170,21 +221,30 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
27041 case R_X86_64_NONE:
27042 break;
27043 case R_X86_64_64:
27044 + pax_open_kernel();
27045 *(u64 *)loc = val;
27046 + pax_close_kernel();
27047 break;
27048 case R_X86_64_32:
27049 + pax_open_kernel();
27050 *(u32 *)loc = val;
27051 + pax_close_kernel();
27052 if (val != *(u32 *)loc)
27053 goto overflow;
27054 break;
27055 case R_X86_64_32S:
27056 + pax_open_kernel();
27057 *(s32 *)loc = val;
27058 + pax_close_kernel();
27059 if ((s64)val != *(s32 *)loc)
27060 goto overflow;
27061 break;
27062 case R_X86_64_PC32:
27063 val -= (u64)loc;
27064 + pax_open_kernel();
27065 *(u32 *)loc = val;
27066 + pax_close_kernel();
27067 +
27068 #if 0
27069 if ((s64)val != *(s32 *)loc)
27070 goto overflow;
27071 diff --git a/arch/x86/kernel/msr.c b/arch/x86/kernel/msr.c
27072 index 113e707..0a690e1 100644
27073 --- a/arch/x86/kernel/msr.c
27074 +++ b/arch/x86/kernel/msr.c
27075 @@ -39,6 +39,7 @@
27076 #include <linux/notifier.h>
27077 #include <linux/uaccess.h>
27078 #include <linux/gfp.h>
27079 +#include <linux/grsecurity.h>
27080
27081 #include <asm/processor.h>
27082 #include <asm/msr.h>
27083 @@ -105,6 +106,11 @@ static ssize_t msr_write(struct file *file, const char __user *buf,
27084 int err = 0;
27085 ssize_t bytes = 0;
27086
27087 +#ifdef CONFIG_GRKERNSEC_KMEM
27088 + gr_handle_msr_write();
27089 + return -EPERM;
27090 +#endif
27091 +
27092 if (count % 8)
27093 return -EINVAL; /* Invalid chunk size */
27094
27095 @@ -152,6 +158,10 @@ static long msr_ioctl(struct file *file, unsigned int ioc, unsigned long arg)
27096 err = -EBADF;
27097 break;
27098 }
27099 +#ifdef CONFIG_GRKERNSEC_KMEM
27100 + gr_handle_msr_write();
27101 + return -EPERM;
27102 +#endif
27103 if (copy_from_user(&regs, uregs, sizeof regs)) {
27104 err = -EFAULT;
27105 break;
27106 @@ -235,7 +245,7 @@ static int msr_class_cpu_callback(struct notifier_block *nfb,
27107 return notifier_from_errno(err);
27108 }
27109
27110 -static struct notifier_block __refdata msr_class_cpu_notifier = {
27111 +static struct notifier_block msr_class_cpu_notifier = {
27112 .notifier_call = msr_class_cpu_callback,
27113 };
27114
27115 diff --git a/arch/x86/kernel/nmi.c b/arch/x86/kernel/nmi.c
27116 index 697f90d..8b1c639 100644
27117 --- a/arch/x86/kernel/nmi.c
27118 +++ b/arch/x86/kernel/nmi.c
27119 @@ -98,16 +98,16 @@ fs_initcall(nmi_warning_debugfs);
27120
27121 static void nmi_max_handler(struct irq_work *w)
27122 {
27123 - struct nmiaction *a = container_of(w, struct nmiaction, irq_work);
27124 + struct nmiwork *n = container_of(w, struct nmiwork, irq_work);
27125 int remainder_ns, decimal_msecs;
27126 - u64 whole_msecs = ACCESS_ONCE(a->max_duration);
27127 + u64 whole_msecs = ACCESS_ONCE(n->max_duration);
27128
27129 remainder_ns = do_div(whole_msecs, (1000 * 1000));
27130 decimal_msecs = remainder_ns / 1000;
27131
27132 printk_ratelimited(KERN_INFO
27133 "INFO: NMI handler (%ps) took too long to run: %lld.%03d msecs\n",
27134 - a->handler, whole_msecs, decimal_msecs);
27135 + n->action->handler, whole_msecs, decimal_msecs);
27136 }
27137
27138 static int nmi_handle(unsigned int type, struct pt_regs *regs)
27139 @@ -134,11 +134,11 @@ static int nmi_handle(unsigned int type, struct pt_regs *regs)
27140 delta = sched_clock() - delta;
27141 trace_nmi_handler(a->handler, (int)delta, thishandled);
27142
27143 - if (delta < nmi_longest_ns || delta < a->max_duration)
27144 + if (delta < nmi_longest_ns || delta < a->work->max_duration)
27145 continue;
27146
27147 - a->max_duration = delta;
27148 - irq_work_queue(&a->irq_work);
27149 + a->work->max_duration = delta;
27150 + irq_work_queue(&a->work->irq_work);
27151 }
27152
27153 rcu_read_unlock();
27154 @@ -148,7 +148,7 @@ static int nmi_handle(unsigned int type, struct pt_regs *regs)
27155 }
27156 NOKPROBE_SYMBOL(nmi_handle);
27157
27158 -int __register_nmi_handler(unsigned int type, struct nmiaction *action)
27159 +int __register_nmi_handler(unsigned int type, const struct nmiaction *action)
27160 {
27161 struct nmi_desc *desc = nmi_to_desc(type);
27162 unsigned long flags;
27163 @@ -156,7 +156,8 @@ int __register_nmi_handler(unsigned int type, struct nmiaction *action)
27164 if (!action->handler)
27165 return -EINVAL;
27166
27167 - init_irq_work(&action->irq_work, nmi_max_handler);
27168 + action->work->action = action;
27169 + init_irq_work(&action->work->irq_work, nmi_max_handler);
27170
27171 spin_lock_irqsave(&desc->lock, flags);
27172
27173 @@ -174,9 +175,9 @@ int __register_nmi_handler(unsigned int type, struct nmiaction *action)
27174 * event confuses some handlers (kdump uses this flag)
27175 */
27176 if (action->flags & NMI_FLAG_FIRST)
27177 - list_add_rcu(&action->list, &desc->head);
27178 + pax_list_add_rcu((struct list_head *)&action->list, &desc->head);
27179 else
27180 - list_add_tail_rcu(&action->list, &desc->head);
27181 + pax_list_add_tail_rcu((struct list_head *)&action->list, &desc->head);
27182
27183 spin_unlock_irqrestore(&desc->lock, flags);
27184 return 0;
27185 @@ -199,7 +200,7 @@ void unregister_nmi_handler(unsigned int type, const char *name)
27186 if (!strcmp(n->name, name)) {
27187 WARN(in_nmi(),
27188 "Trying to free NMI (%s) from NMI context!\n", n->name);
27189 - list_del_rcu(&n->list);
27190 + pax_list_del_rcu((struct list_head *)&n->list);
27191 break;
27192 }
27193 }
27194 @@ -481,6 +482,17 @@ static DEFINE_PER_CPU(int, update_debug_stack);
27195 dotraplinkage notrace void
27196 do_nmi(struct pt_regs *regs, long error_code)
27197 {
27198 +
27199 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
27200 + if (!user_mode(regs)) {
27201 + unsigned long cs = regs->cs & 0xFFFF;
27202 + unsigned long ip = ktva_ktla(regs->ip);
27203 +
27204 + if ((cs == __KERNEL_CS || cs == __KERNEXEC_KERNEL_CS) && ip <= (unsigned long)_etext)
27205 + regs->ip = ip;
27206 + }
27207 +#endif
27208 +
27209 if (this_cpu_read(nmi_state) != NMI_NOT_RUNNING) {
27210 this_cpu_write(nmi_state, NMI_LATCHED);
27211 return;
27212 diff --git a/arch/x86/kernel/nmi_selftest.c b/arch/x86/kernel/nmi_selftest.c
27213 index 6d9582e..f746287 100644
27214 --- a/arch/x86/kernel/nmi_selftest.c
27215 +++ b/arch/x86/kernel/nmi_selftest.c
27216 @@ -43,7 +43,7 @@ static void __init init_nmi_testsuite(void)
27217 {
27218 /* trap all the unknown NMIs we may generate */
27219 register_nmi_handler(NMI_UNKNOWN, nmi_unk_cb, 0, "nmi_selftest_unk",
27220 - __initdata);
27221 + __initconst);
27222 }
27223
27224 static void __init cleanup_nmi_testsuite(void)
27225 @@ -66,7 +66,7 @@ static void __init test_nmi_ipi(struct cpumask *mask)
27226 unsigned long timeout;
27227
27228 if (register_nmi_handler(NMI_LOCAL, test_nmi_ipi_callback,
27229 - NMI_FLAG_FIRST, "nmi_selftest", __initdata)) {
27230 + NMI_FLAG_FIRST, "nmi_selftest", __initconst)) {
27231 nmi_fail = FAILURE;
27232 return;
27233 }
27234 diff --git a/arch/x86/kernel/paravirt-spinlocks.c b/arch/x86/kernel/paravirt-spinlocks.c
27235 index 33ee3e0..da3519a 100644
27236 --- a/arch/x86/kernel/paravirt-spinlocks.c
27237 +++ b/arch/x86/kernel/paravirt-spinlocks.c
27238 @@ -23,7 +23,7 @@ bool pv_is_native_spin_unlock(void)
27239 }
27240 #endif
27241
27242 -struct pv_lock_ops pv_lock_ops = {
27243 +struct pv_lock_ops pv_lock_ops __read_only = {
27244 #ifdef CONFIG_SMP
27245 #ifdef CONFIG_QUEUED_SPINLOCKS
27246 .queued_spin_lock_slowpath = native_queued_spin_lock_slowpath,
27247 diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
27248 index c2130ae..d52ca15 100644
27249 --- a/arch/x86/kernel/paravirt.c
27250 +++ b/arch/x86/kernel/paravirt.c
27251 @@ -64,6 +64,9 @@ u64 _paravirt_ident_64(u64 x)
27252 {
27253 return x;
27254 }
27255 +#if defined(CONFIG_X86_32) && defined(CONFIG_X86_PAE)
27256 +PV_CALLEE_SAVE_REGS_THUNK(_paravirt_ident_64);
27257 +#endif
27258
27259 void __init default_banner(void)
27260 {
27261 @@ -150,16 +153,20 @@ unsigned paravirt_patch_default(u8 type, u16 clobbers, void *insnbuf,
27262
27263 if (opfunc == NULL)
27264 /* If there's no function, patch it with a ud2a (BUG) */
27265 - ret = paravirt_patch_insns(insnbuf, len, ud2a, ud2a+sizeof(ud2a));
27266 - else if (opfunc == _paravirt_nop)
27267 + ret = paravirt_patch_insns(insnbuf, len, (const char *)ktva_ktla((unsigned long)ud2a), ud2a+sizeof(ud2a));
27268 + else if (opfunc == (void *)_paravirt_nop)
27269 /* If the operation is a nop, then nop the callsite */
27270 ret = paravirt_patch_nop();
27271
27272 /* identity functions just return their single argument */
27273 - else if (opfunc == _paravirt_ident_32)
27274 + else if (opfunc == (void *)_paravirt_ident_32)
27275 ret = paravirt_patch_ident_32(insnbuf, len);
27276 - else if (opfunc == _paravirt_ident_64)
27277 + else if (opfunc == (void *)_paravirt_ident_64)
27278 ret = paravirt_patch_ident_64(insnbuf, len);
27279 +#if defined(CONFIG_X86_32) && defined(CONFIG_X86_PAE)
27280 + else if (opfunc == (void *)__raw_callee_save__paravirt_ident_64)
27281 + ret = paravirt_patch_ident_64(insnbuf, len);
27282 +#endif
27283
27284 else if (type == PARAVIRT_PATCH(pv_cpu_ops.iret) ||
27285 #ifdef CONFIG_X86_32
27286 @@ -186,7 +193,7 @@ unsigned paravirt_patch_insns(void *insnbuf, unsigned len,
27287 if (insn_len > len || start == NULL)
27288 insn_len = len;
27289 else
27290 - memcpy(insnbuf, start, insn_len);
27291 + memcpy(insnbuf, (const char *)ktla_ktva((unsigned long)start), insn_len);
27292
27293 return insn_len;
27294 }
27295 @@ -310,7 +317,7 @@ enum paravirt_lazy_mode paravirt_get_lazy_mode(void)
27296 return this_cpu_read(paravirt_lazy_mode);
27297 }
27298
27299 -struct pv_info pv_info = {
27300 +struct pv_info pv_info __read_only = {
27301 .name = "bare hardware",
27302 .paravirt_enabled = 0,
27303 .kernel_rpl = 0,
27304 @@ -321,16 +328,16 @@ struct pv_info pv_info = {
27305 #endif
27306 };
27307
27308 -struct pv_init_ops pv_init_ops = {
27309 +struct pv_init_ops pv_init_ops __read_only = {
27310 .patch = native_patch,
27311 };
27312
27313 -struct pv_time_ops pv_time_ops = {
27314 +struct pv_time_ops pv_time_ops __read_only = {
27315 .sched_clock = native_sched_clock,
27316 .steal_clock = native_steal_clock,
27317 };
27318
27319 -__visible struct pv_irq_ops pv_irq_ops = {
27320 +__visible struct pv_irq_ops pv_irq_ops __read_only = {
27321 .save_fl = __PV_IS_CALLEE_SAVE(native_save_fl),
27322 .restore_fl = __PV_IS_CALLEE_SAVE(native_restore_fl),
27323 .irq_disable = __PV_IS_CALLEE_SAVE(native_irq_disable),
27324 @@ -342,7 +349,7 @@ __visible struct pv_irq_ops pv_irq_ops = {
27325 #endif
27326 };
27327
27328 -__visible struct pv_cpu_ops pv_cpu_ops = {
27329 +__visible struct pv_cpu_ops pv_cpu_ops __read_only = {
27330 .cpuid = native_cpuid,
27331 .get_debugreg = native_get_debugreg,
27332 .set_debugreg = native_set_debugreg,
27333 @@ -403,21 +410,26 @@ NOKPROBE_SYMBOL(native_get_debugreg);
27334 NOKPROBE_SYMBOL(native_set_debugreg);
27335 NOKPROBE_SYMBOL(native_load_idt);
27336
27337 -struct pv_apic_ops pv_apic_ops = {
27338 +struct pv_apic_ops pv_apic_ops __read_only= {
27339 #ifdef CONFIG_X86_LOCAL_APIC
27340 .startup_ipi_hook = paravirt_nop,
27341 #endif
27342 };
27343
27344 -#if defined(CONFIG_X86_32) && !defined(CONFIG_X86_PAE)
27345 +#ifdef CONFIG_X86_32
27346 +#ifdef CONFIG_X86_PAE
27347 +/* 64-bit pagetable entries */
27348 +#define PTE_IDENT PV_CALLEE_SAVE(_paravirt_ident_64)
27349 +#else
27350 /* 32-bit pagetable entries */
27351 #define PTE_IDENT __PV_IS_CALLEE_SAVE(_paravirt_ident_32)
27352 +#endif
27353 #else
27354 /* 64-bit pagetable entries */
27355 #define PTE_IDENT __PV_IS_CALLEE_SAVE(_paravirt_ident_64)
27356 #endif
27357
27358 -struct pv_mmu_ops pv_mmu_ops = {
27359 +struct pv_mmu_ops pv_mmu_ops __read_only = {
27360
27361 .read_cr2 = native_read_cr2,
27362 .write_cr2 = native_write_cr2,
27363 @@ -467,6 +479,7 @@ struct pv_mmu_ops pv_mmu_ops = {
27364 .make_pud = PTE_IDENT,
27365
27366 .set_pgd = native_set_pgd,
27367 + .set_pgd_batched = native_set_pgd_batched,
27368 #endif
27369 #endif /* CONFIG_PGTABLE_LEVELS >= 3 */
27370
27371 @@ -487,6 +500,12 @@ struct pv_mmu_ops pv_mmu_ops = {
27372 },
27373
27374 .set_fixmap = native_set_fixmap,
27375 +
27376 +#ifdef CONFIG_PAX_KERNEXEC
27377 + .pax_open_kernel = native_pax_open_kernel,
27378 + .pax_close_kernel = native_pax_close_kernel,
27379 +#endif
27380 +
27381 };
27382
27383 EXPORT_SYMBOL_GPL(pv_time_ops);
27384 diff --git a/arch/x86/kernel/paravirt_patch_64.c b/arch/x86/kernel/paravirt_patch_64.c
27385 index 8aa0558..465512e 100644
27386 --- a/arch/x86/kernel/paravirt_patch_64.c
27387 +++ b/arch/x86/kernel/paravirt_patch_64.c
27388 @@ -9,7 +9,11 @@ DEF_NATIVE(pv_irq_ops, save_fl, "pushfq; popq %rax");
27389 DEF_NATIVE(pv_mmu_ops, read_cr2, "movq %cr2, %rax");
27390 DEF_NATIVE(pv_mmu_ops, read_cr3, "movq %cr3, %rax");
27391 DEF_NATIVE(pv_mmu_ops, write_cr3, "movq %rdi, %cr3");
27392 +
27393 +#ifndef CONFIG_PAX_MEMORY_UDEREF
27394 DEF_NATIVE(pv_mmu_ops, flush_tlb_single, "invlpg (%rdi)");
27395 +#endif
27396 +
27397 DEF_NATIVE(pv_cpu_ops, clts, "clts");
27398 DEF_NATIVE(pv_cpu_ops, wbinvd, "wbinvd");
27399
27400 @@ -62,7 +66,11 @@ unsigned native_patch(u8 type, u16 clobbers, void *ibuf,
27401 PATCH_SITE(pv_mmu_ops, read_cr3);
27402 PATCH_SITE(pv_mmu_ops, write_cr3);
27403 PATCH_SITE(pv_cpu_ops, clts);
27404 +
27405 +#ifndef CONFIG_PAX_MEMORY_UDEREF
27406 PATCH_SITE(pv_mmu_ops, flush_tlb_single);
27407 +#endif
27408 +
27409 PATCH_SITE(pv_cpu_ops, wbinvd);
27410 #if defined(CONFIG_PARAVIRT_SPINLOCKS) && defined(CONFIG_QUEUED_SPINLOCKS)
27411 case PARAVIRT_PATCH(pv_lock_ops.queued_spin_unlock):
27412 diff --git a/arch/x86/kernel/pci-calgary_64.c b/arch/x86/kernel/pci-calgary_64.c
27413 index 0497f71..7186c0d 100644
27414 --- a/arch/x86/kernel/pci-calgary_64.c
27415 +++ b/arch/x86/kernel/pci-calgary_64.c
27416 @@ -1347,7 +1347,7 @@ static void __init get_tce_space_from_tar(void)
27417 tce_space = be64_to_cpu(readq(target));
27418 tce_space = tce_space & TAR_SW_BITS;
27419
27420 - tce_space = tce_space & (~specified_table_size);
27421 + tce_space = tce_space & (~(unsigned long)specified_table_size);
27422 info->tce_space = (u64 *)__va(tce_space);
27423 }
27424 }
27425 diff --git a/arch/x86/kernel/pci-iommu_table.c b/arch/x86/kernel/pci-iommu_table.c
27426 index 35ccf75..7a15747 100644
27427 --- a/arch/x86/kernel/pci-iommu_table.c
27428 +++ b/arch/x86/kernel/pci-iommu_table.c
27429 @@ -2,7 +2,7 @@
27430 #include <asm/iommu_table.h>
27431 #include <linux/string.h>
27432 #include <linux/kallsyms.h>
27433 -
27434 +#include <linux/sched.h>
27435
27436 #define DEBUG 1
27437
27438 diff --git a/arch/x86/kernel/pci-swiotlb.c b/arch/x86/kernel/pci-swiotlb.c
27439 index adf0392..88a7576 100644
27440 --- a/arch/x86/kernel/pci-swiotlb.c
27441 +++ b/arch/x86/kernel/pci-swiotlb.c
27442 @@ -40,7 +40,7 @@ void x86_swiotlb_free_coherent(struct device *dev, size_t size,
27443 struct dma_attrs *attrs)
27444 {
27445 if (is_swiotlb_buffer(dma_to_phys(dev, dma_addr)))
27446 - swiotlb_free_coherent(dev, size, vaddr, dma_addr);
27447 + swiotlb_free_coherent(dev, size, vaddr, dma_addr, attrs);
27448 else
27449 dma_generic_free_coherent(dev, size, vaddr, dma_addr, attrs);
27450 }
27451 diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
27452 index 9f7c21c..854f412 100644
27453 --- a/arch/x86/kernel/process.c
27454 +++ b/arch/x86/kernel/process.c
27455 @@ -15,6 +15,7 @@
27456 #include <linux/dmi.h>
27457 #include <linux/utsname.h>
27458 #include <linux/stackprotector.h>
27459 +#include <linux/kthread.h>
27460 #include <linux/tick.h>
27461 #include <linux/cpuidle.h>
27462 #include <trace/events/power.h>
27463 @@ -39,7 +40,8 @@
27464 * section. Since TSS's are completely CPU-local, we want them
27465 * on exact cacheline boundaries, to eliminate cacheline ping-pong.
27466 */
27467 -__visible DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, cpu_tss) = {
27468 +struct tss_struct cpu_tss[NR_CPUS] __visible ____cacheline_internodealigned_in_smp = {
27469 + [0 ... NR_CPUS-1] = {
27470 .x86_tss = {
27471 .sp0 = TOP_OF_INIT_STACK,
27472 #ifdef CONFIG_X86_32
27473 @@ -57,6 +59,7 @@ __visible DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, cpu_tss) = {
27474 */
27475 .io_bitmap = { [0 ... IO_BITMAP_LONGS] = ~0 },
27476 #endif
27477 +}
27478 };
27479 EXPORT_PER_CPU_SYMBOL(cpu_tss);
27480
27481 @@ -77,13 +80,26 @@ void idle_notifier_unregister(struct notifier_block *n)
27482 EXPORT_SYMBOL_GPL(idle_notifier_unregister);
27483 #endif
27484
27485 +struct kmem_cache *fpregs_state_cachep;
27486 +EXPORT_SYMBOL(fpregs_state_cachep);
27487 +
27488 +void __init arch_task_cache_init(void)
27489 +{
27490 + /* create a slab on which task_structs can be allocated */
27491 + fpregs_state_cachep =
27492 + kmem_cache_create("fpregs_state", xstate_size,
27493 + ARCH_MIN_TASKALIGN, SLAB_PANIC | SLAB_NOTRACK | SLAB_USERCOPY, NULL);
27494 +}
27495 +
27496 /*
27497 * this gets called so that we can store lazy state into memory and copy the
27498 * current task into the new thread.
27499 */
27500 int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src)
27501 {
27502 - memcpy(dst, src, arch_task_struct_size);
27503 + *dst = *src;
27504 + dst->thread.fpu.state = kmem_cache_alloc_node(fpregs_state_cachep, GFP_KERNEL, tsk_fork_get_node(src));
27505 + memcpy(dst->thread.fpu.state, src->thread.fpu.state, xstate_size);
27506 #ifdef CONFIG_VM86
27507 dst->thread.vm86 = NULL;
27508 #endif
27509 @@ -91,6 +107,12 @@ int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src)
27510 return fpu__copy(&dst->thread.fpu, &src->thread.fpu);
27511 }
27512
27513 +void arch_release_task_struct(struct task_struct *tsk)
27514 +{
27515 + kmem_cache_free(fpregs_state_cachep, tsk->thread.fpu.state);
27516 + tsk->thread.fpu.state = NULL;
27517 +}
27518 +
27519 /*
27520 * Free current thread data structures etc..
27521 */
27522 @@ -102,7 +124,7 @@ void exit_thread(void)
27523 struct fpu *fpu = &t->fpu;
27524
27525 if (bp) {
27526 - struct tss_struct *tss = &per_cpu(cpu_tss, get_cpu());
27527 + struct tss_struct *tss = cpu_tss + get_cpu();
27528
27529 t->io_bitmap_ptr = NULL;
27530 clear_thread_flag(TIF_IO_BITMAP);
27531 @@ -124,6 +146,9 @@ void flush_thread(void)
27532 {
27533 struct task_struct *tsk = current;
27534
27535 +#if defined(CONFIG_X86_32) && !defined(CONFIG_CC_STACKPROTECTOR) && !defined(CONFIG_PAX_MEMORY_UDEREF)
27536 + loadsegment(gs, 0);
27537 +#endif
27538 flush_ptrace_hw_breakpoint(tsk);
27539 memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array));
27540
27541 @@ -265,7 +290,7 @@ static void __exit_idle(void)
27542 void exit_idle(void)
27543 {
27544 /* idle loop has pid 0 */
27545 - if (current->pid)
27546 + if (task_pid_nr(current))
27547 return;
27548 __exit_idle();
27549 }
27550 @@ -318,7 +343,7 @@ bool xen_set_default_idle(void)
27551 return ret;
27552 }
27553 #endif
27554 -void stop_this_cpu(void *dummy)
27555 +__noreturn void stop_this_cpu(void *dummy)
27556 {
27557 local_irq_disable();
27558 /*
27559 @@ -496,13 +521,6 @@ static int __init idle_setup(char *str)
27560 }
27561 early_param("idle", idle_setup);
27562
27563 -unsigned long arch_align_stack(unsigned long sp)
27564 -{
27565 - if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
27566 - sp -= get_random_int() % 8192;
27567 - return sp & ~0xf;
27568 -}
27569 -
27570 unsigned long arch_randomize_brk(struct mm_struct *mm)
27571 {
27572 unsigned long range_end = mm->brk + 0x02000000;
27573 @@ -534,9 +552,7 @@ unsigned long get_wchan(struct task_struct *p)
27574 * PADDING
27575 * ----------- top = topmax - TOP_OF_KERNEL_STACK_PADDING
27576 * stack
27577 - * ----------- bottom = start + sizeof(thread_info)
27578 - * thread_info
27579 - * ----------- start
27580 + * ----------- bottom = start
27581 *
27582 * The tasks stack pointer points at the location where the
27583 * framepointer is stored. The data on the stack is:
27584 @@ -547,7 +563,7 @@ unsigned long get_wchan(struct task_struct *p)
27585 */
27586 top = start + THREAD_SIZE - TOP_OF_KERNEL_STACK_PADDING;
27587 top -= 2 * sizeof(unsigned long);
27588 - bottom = start + sizeof(struct thread_info);
27589 + bottom = start;
27590
27591 sp = READ_ONCE(p->thread.sp);
27592 if (sp < bottom || sp > top)
27593 @@ -564,3 +580,35 @@ unsigned long get_wchan(struct task_struct *p)
27594 } while (count++ < 16 && p->state != TASK_RUNNING);
27595 return 0;
27596 }
27597 +
27598 +#ifdef CONFIG_PAX_RANDKSTACK
27599 +void pax_randomize_kstack(struct pt_regs *regs)
27600 +{
27601 + struct thread_struct *thread = &current->thread;
27602 + unsigned long time;
27603 +
27604 + if (!randomize_va_space)
27605 + return;
27606 +
27607 + if (v8086_mode(regs))
27608 + return;
27609 +
27610 + time = rdtsc();
27611 +
27612 + /* P4 seems to return a 0 LSB, ignore it */
27613 +#ifdef CONFIG_MPENTIUM4
27614 + time &= 0x3EUL;
27615 + time <<= 2;
27616 +#elif defined(CONFIG_X86_64)
27617 + time &= 0xFUL;
27618 + time <<= 4;
27619 +#else
27620 + time &= 0x1FUL;
27621 + time <<= 3;
27622 +#endif
27623 +
27624 + thread->sp0 ^= time;
27625 + load_sp0(cpu_tss + smp_processor_id(), thread);
27626 + this_cpu_write(cpu_current_top_of_stack, thread->sp0);
27627 +}
27628 +#endif
27629 diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
27630 index 9f95091..6885108 100644
27631 --- a/arch/x86/kernel/process_32.c
27632 +++ b/arch/x86/kernel/process_32.c
27633 @@ -64,6 +64,7 @@ asmlinkage void ret_from_kernel_thread(void) __asm__("ret_from_kernel_thread");
27634 unsigned long thread_saved_pc(struct task_struct *tsk)
27635 {
27636 return ((unsigned long *)tsk->thread.sp)[3];
27637 +//XXX return tsk->thread.eip;
27638 }
27639
27640 void __show_regs(struct pt_regs *regs, int all)
27641 @@ -76,16 +77,15 @@ void __show_regs(struct pt_regs *regs, int all)
27642 if (user_mode(regs)) {
27643 sp = regs->sp;
27644 ss = regs->ss & 0xffff;
27645 - gs = get_user_gs(regs);
27646 } else {
27647 sp = kernel_stack_pointer(regs);
27648 savesegment(ss, ss);
27649 - savesegment(gs, gs);
27650 }
27651 + gs = get_user_gs(regs);
27652
27653 printk(KERN_DEFAULT "EIP: %04x:[<%08lx>] EFLAGS: %08lx CPU: %d\n",
27654 (u16)regs->cs, regs->ip, regs->flags,
27655 - smp_processor_id());
27656 + raw_smp_processor_id());
27657 print_symbol("EIP is at %s\n", regs->ip);
27658
27659 printk(KERN_DEFAULT "EAX: %08lx EBX: %08lx ECX: %08lx EDX: %08lx\n",
27660 @@ -132,21 +132,22 @@ void release_thread(struct task_struct *dead_task)
27661 int copy_thread_tls(unsigned long clone_flags, unsigned long sp,
27662 unsigned long arg, struct task_struct *p, unsigned long tls)
27663 {
27664 - struct pt_regs *childregs = task_pt_regs(p);
27665 + struct pt_regs *childregs = task_stack_page(p) + THREAD_SIZE - sizeof(struct pt_regs) - 8;
27666 struct task_struct *tsk;
27667 int err;
27668
27669 p->thread.sp = (unsigned long) childregs;
27670 p->thread.sp0 = (unsigned long) (childregs+1);
27671 + p->tinfo.lowest_stack = (unsigned long)task_stack_page(p) + 2 * sizeof(unsigned long);
27672 memset(p->thread.ptrace_bps, 0, sizeof(p->thread.ptrace_bps));
27673
27674 if (unlikely(p->flags & PF_KTHREAD)) {
27675 /* kernel thread */
27676 memset(childregs, 0, sizeof(struct pt_regs));
27677 p->thread.ip = (unsigned long) ret_from_kernel_thread;
27678 - task_user_gs(p) = __KERNEL_STACK_CANARY;
27679 - childregs->ds = __USER_DS;
27680 - childregs->es = __USER_DS;
27681 + savesegment(gs, childregs->gs);
27682 + childregs->ds = __KERNEL_DS;
27683 + childregs->es = __KERNEL_DS;
27684 childregs->fs = __KERNEL_PERCPU;
27685 childregs->bx = sp; /* function */
27686 childregs->bp = arg;
27687 @@ -246,7 +247,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
27688 struct fpu *prev_fpu = &prev->fpu;
27689 struct fpu *next_fpu = &next->fpu;
27690 int cpu = smp_processor_id();
27691 - struct tss_struct *tss = &per_cpu(cpu_tss, cpu);
27692 + struct tss_struct *tss = cpu_tss + cpu;
27693 fpu_switch_t fpu_switch;
27694
27695 /* never put a printk in __switch_to... printk() calls wake_up*() indirectly */
27696 @@ -265,6 +266,10 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
27697 */
27698 lazy_save_gs(prev->gs);
27699
27700 +#ifdef CONFIG_PAX_MEMORY_UDEREF
27701 + __set_fs(task_thread_info(next_p)->addr_limit);
27702 +#endif
27703 +
27704 /*
27705 * Load the per-thread Thread-Local Storage descriptor.
27706 */
27707 @@ -300,9 +305,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
27708 * current_thread_info().
27709 */
27710 load_sp0(tss, next);
27711 - this_cpu_write(cpu_current_top_of_stack,
27712 - (unsigned long)task_stack_page(next_p) +
27713 - THREAD_SIZE);
27714 + this_cpu_write(current_task, next_p);
27715 + this_cpu_write(current_tinfo, &next_p->tinfo);
27716 + this_cpu_write(cpu_current_top_of_stack, next->sp0);
27717
27718 /*
27719 * Restore %gs if needed (which is common)
27720 @@ -312,7 +317,5 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
27721
27722 switch_fpu_finish(next_fpu, fpu_switch);
27723
27724 - this_cpu_write(current_task, next_p);
27725 -
27726 return prev_p;
27727 }
27728 diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
27729 index e835d26..65762c9 100644
27730 --- a/arch/x86/kernel/process_64.c
27731 +++ b/arch/x86/kernel/process_64.c
27732 @@ -159,9 +159,10 @@ int copy_thread_tls(unsigned long clone_flags, unsigned long sp,
27733 struct pt_regs *childregs;
27734 struct task_struct *me = current;
27735
27736 - p->thread.sp0 = (unsigned long)task_stack_page(p) + THREAD_SIZE;
27737 + p->thread.sp0 = (unsigned long)task_stack_page(p) + THREAD_SIZE - 16;
27738 childregs = task_pt_regs(p);
27739 p->thread.sp = (unsigned long) childregs;
27740 + p->tinfo.lowest_stack = (unsigned long)task_stack_page(p) + 2 * sizeof(unsigned long);
27741 set_tsk_thread_flag(p, TIF_FORK);
27742 p->thread.io_bitmap_ptr = NULL;
27743
27744 @@ -171,6 +172,8 @@ int copy_thread_tls(unsigned long clone_flags, unsigned long sp,
27745 p->thread.fs = p->thread.fsindex ? 0 : me->thread.fs;
27746 savesegment(es, p->thread.es);
27747 savesegment(ds, p->thread.ds);
27748 + savesegment(ss, p->thread.ss);
27749 + BUG_ON(p->thread.ss == __UDEREF_KERNEL_DS);
27750 memset(p->thread.ptrace_bps, 0, sizeof(p->thread.ptrace_bps));
27751
27752 if (unlikely(p->flags & PF_KTHREAD)) {
27753 @@ -278,7 +281,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
27754 struct fpu *prev_fpu = &prev->fpu;
27755 struct fpu *next_fpu = &next->fpu;
27756 int cpu = smp_processor_id();
27757 - struct tss_struct *tss = &per_cpu(cpu_tss, cpu);
27758 + struct tss_struct *tss = cpu_tss + cpu;
27759 unsigned fsindex, gsindex;
27760 fpu_switch_t fpu_switch;
27761
27762 @@ -329,6 +332,10 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
27763 if (unlikely(next->ds | prev->ds))
27764 loadsegment(ds, next->ds);
27765
27766 + savesegment(ss, prev->ss);
27767 + if (unlikely(next->ss != prev->ss))
27768 + loadsegment(ss, next->ss);
27769 +
27770 /*
27771 * Switch FS and GS.
27772 *
27773 @@ -400,10 +407,13 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
27774 * Switch the PDA and FPU contexts.
27775 */
27776 this_cpu_write(current_task, next_p);
27777 + this_cpu_write(current_tinfo, &next_p->tinfo);
27778
27779 /* Reload esp0 and ss1. This changes current_thread_info(). */
27780 load_sp0(tss, next);
27781
27782 + this_cpu_write(cpu_current_top_of_stack, next->sp0);
27783 +
27784 /*
27785 * Now maybe reload the debug registers and handle I/O bitmaps
27786 */
27787 diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c
27788 index 558f50e..2312c52 100644
27789 --- a/arch/x86/kernel/ptrace.c
27790 +++ b/arch/x86/kernel/ptrace.c
27791 @@ -184,10 +184,10 @@ unsigned long kernel_stack_pointer(struct pt_regs *regs)
27792 unsigned long sp = (unsigned long)&regs->sp;
27793 u32 *prev_esp;
27794
27795 - if (context == (sp & ~(THREAD_SIZE - 1)))
27796 + if (context == ((sp + 8) & ~(THREAD_SIZE - 1)))
27797 return sp;
27798
27799 - prev_esp = (u32 *)(context);
27800 + prev_esp = *(u32 **)(context);
27801 if (prev_esp)
27802 return (unsigned long)prev_esp;
27803
27804 @@ -444,6 +444,20 @@ static int putreg(struct task_struct *child,
27805 if (child->thread.gs != value)
27806 return do_arch_prctl(child, ARCH_SET_GS, value);
27807 return 0;
27808 +
27809 + case offsetof(struct user_regs_struct,ip):
27810 + /*
27811 + * Protect against any attempt to set ip to an
27812 + * impossible address. There are dragons lurking if the
27813 + * address is noncanonical. (This explicitly allows
27814 + * setting ip to TASK_SIZE_MAX, because user code can do
27815 + * that all by itself by running off the end of its
27816 + * address space.
27817 + */
27818 + if (value > TASK_SIZE_MAX)
27819 + return -EIO;
27820 + break;
27821 +
27822 #endif
27823 }
27824
27825 @@ -580,7 +594,7 @@ static void ptrace_triggered(struct perf_event *bp,
27826 static unsigned long ptrace_get_dr7(struct perf_event *bp[])
27827 {
27828 int i;
27829 - int dr7 = 0;
27830 + unsigned long dr7 = 0;
27831 struct arch_hw_breakpoint *info;
27832
27833 for (i = 0; i < HBP_NUM; i++) {
27834 @@ -814,7 +828,7 @@ long arch_ptrace(struct task_struct *child, long request,
27835 unsigned long addr, unsigned long data)
27836 {
27837 int ret;
27838 - unsigned long __user *datap = (unsigned long __user *)data;
27839 + unsigned long __user *datap = (__force unsigned long __user *)data;
27840
27841 switch (request) {
27842 /* read the word at location addr in the USER area. */
27843 @@ -899,14 +913,14 @@ long arch_ptrace(struct task_struct *child, long request,
27844 if ((int) addr < 0)
27845 return -EIO;
27846 ret = do_get_thread_area(child, addr,
27847 - (struct user_desc __user *)data);
27848 + (__force struct user_desc __user *) data);
27849 break;
27850
27851 case PTRACE_SET_THREAD_AREA:
27852 if ((int) addr < 0)
27853 return -EIO;
27854 ret = do_set_thread_area(child, addr,
27855 - (struct user_desc __user *)data, 0);
27856 + (__force struct user_desc __user *) data, 0);
27857 break;
27858 #endif
27859
27860 @@ -1294,7 +1308,7 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
27861
27862 #ifdef CONFIG_X86_64
27863
27864 -static struct user_regset x86_64_regsets[] __read_mostly = {
27865 +static user_regset_no_const x86_64_regsets[] __read_only = {
27866 [REGSET_GENERAL] = {
27867 .core_note_type = NT_PRSTATUS,
27868 .n = sizeof(struct user_regs_struct) / sizeof(long),
27869 @@ -1335,7 +1349,7 @@ static const struct user_regset_view user_x86_64_view = {
27870 #endif /* CONFIG_X86_64 */
27871
27872 #if defined CONFIG_X86_32 || defined CONFIG_IA32_EMULATION
27873 -static struct user_regset x86_32_regsets[] __read_mostly = {
27874 +static user_regset_no_const x86_32_regsets[] __read_only = {
27875 [REGSET_GENERAL] = {
27876 .core_note_type = NT_PRSTATUS,
27877 .n = sizeof(struct user_regs_struct32) / sizeof(u32),
27878 @@ -1388,7 +1402,7 @@ static const struct user_regset_view user_x86_32_view = {
27879 */
27880 u64 xstate_fx_sw_bytes[USER_XSTATE_FX_SW_WORDS];
27881
27882 -void update_regset_xstate_info(unsigned int size, u64 xstate_mask)
27883 +void __init update_regset_xstate_info(unsigned int size, u64 xstate_mask)
27884 {
27885 #ifdef CONFIG_X86_64
27886 x86_64_regsets[REGSET_XSTATE].n = size / sizeof(u64);
27887 @@ -1423,7 +1437,7 @@ static void fill_sigtrap_info(struct task_struct *tsk,
27888 memset(info, 0, sizeof(*info));
27889 info->si_signo = SIGTRAP;
27890 info->si_code = si_code;
27891 - info->si_addr = user_mode(regs) ? (void __user *)regs->ip : NULL;
27892 + info->si_addr = user_mode(regs) ? (__force void __user *)regs->ip : NULL;
27893 }
27894
27895 void user_single_step_siginfo(struct task_struct *tsk,
27896 diff --git a/arch/x86/kernel/pvclock.c b/arch/x86/kernel/pvclock.c
27897 index 2f355d2..e75ed0a 100644
27898 --- a/arch/x86/kernel/pvclock.c
27899 +++ b/arch/x86/kernel/pvclock.c
27900 @@ -51,11 +51,11 @@ void pvclock_touch_watchdogs(void)
27901 reset_hung_task_detector();
27902 }
27903
27904 -static atomic64_t last_value = ATOMIC64_INIT(0);
27905 +static atomic64_unchecked_t last_value = ATOMIC64_INIT(0);
27906
27907 void pvclock_resume(void)
27908 {
27909 - atomic64_set(&last_value, 0);
27910 + atomic64_set_unchecked(&last_value, 0);
27911 }
27912
27913 u8 pvclock_read_flags(struct pvclock_vcpu_time_info *src)
27914 @@ -105,11 +105,11 @@ cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src)
27915 * updating at the same time, and one of them could be slightly behind,
27916 * making the assumption that last_value always go forward fail to hold.
27917 */
27918 - last = atomic64_read(&last_value);
27919 + last = atomic64_read_unchecked(&last_value);
27920 do {
27921 if (ret < last)
27922 return last;
27923 - last = atomic64_cmpxchg(&last_value, last, ret);
27924 + last = atomic64_cmpxchg_unchecked(&last_value, last, ret);
27925 } while (unlikely(last != ret));
27926
27927 return ret;
27928 diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
27929 index f660d63..564a120 100644
27930 --- a/arch/x86/kernel/reboot.c
27931 +++ b/arch/x86/kernel/reboot.c
27932 @@ -70,6 +70,11 @@ static int __init set_bios_reboot(const struct dmi_system_id *d)
27933
27934 void __noreturn machine_real_restart(unsigned int type)
27935 {
27936 +
27937 +#if defined(CONFIG_X86_32) && (defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF))
27938 + struct desc_struct *gdt;
27939 +#endif
27940 +
27941 local_irq_disable();
27942
27943 /*
27944 @@ -97,7 +102,29 @@ void __noreturn machine_real_restart(unsigned int type)
27945
27946 /* Jump to the identity-mapped low memory code */
27947 #ifdef CONFIG_X86_32
27948 - asm volatile("jmpl *%0" : :
27949 +
27950 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
27951 + gdt = get_cpu_gdt_table(smp_processor_id());
27952 + pax_open_kernel();
27953 +#ifdef CONFIG_PAX_MEMORY_UDEREF
27954 + gdt[GDT_ENTRY_KERNEL_DS].type = 3;
27955 + gdt[GDT_ENTRY_KERNEL_DS].limit = 0xf;
27956 + loadsegment(ds, __KERNEL_DS);
27957 + loadsegment(es, __KERNEL_DS);
27958 + loadsegment(ss, __KERNEL_DS);
27959 +#endif
27960 +#ifdef CONFIG_PAX_KERNEXEC
27961 + gdt[GDT_ENTRY_KERNEL_CS].base0 = 0;
27962 + gdt[GDT_ENTRY_KERNEL_CS].base1 = 0;
27963 + gdt[GDT_ENTRY_KERNEL_CS].base2 = 0;
27964 + gdt[GDT_ENTRY_KERNEL_CS].limit0 = 0xffff;
27965 + gdt[GDT_ENTRY_KERNEL_CS].limit = 0xf;
27966 + gdt[GDT_ENTRY_KERNEL_CS].g = 1;
27967 +#endif
27968 + pax_close_kernel();
27969 +#endif
27970 +
27971 + asm volatile("ljmpl *%0" : :
27972 "rm" (real_mode_header->machine_real_restart_asm),
27973 "a" (type));
27974 #else
27975 @@ -137,7 +164,7 @@ static int __init set_kbd_reboot(const struct dmi_system_id *d)
27976 /*
27977 * This is a single dmi_table handling all reboot quirks.
27978 */
27979 -static struct dmi_system_id __initdata reboot_dmi_table[] = {
27980 +static const struct dmi_system_id __initconst reboot_dmi_table[] = {
27981
27982 /* Acer */
27983 { /* Handle reboot issue on Acer Aspire one */
27984 @@ -519,7 +546,7 @@ void __attribute__((weak)) mach_reboot_fixups(void)
27985 * This means that this function can never return, it can misbehave
27986 * by not rebooting properly and hanging.
27987 */
27988 -static void native_machine_emergency_restart(void)
27989 +static void __noreturn native_machine_emergency_restart(void)
27990 {
27991 int i;
27992 int attempt = 0;
27993 @@ -639,13 +666,13 @@ void native_machine_shutdown(void)
27994 #endif
27995 }
27996
27997 -static void __machine_emergency_restart(int emergency)
27998 +static void __noreturn __machine_emergency_restart(int emergency)
27999 {
28000 reboot_emergency = emergency;
28001 machine_ops.emergency_restart();
28002 }
28003
28004 -static void native_machine_restart(char *__unused)
28005 +static void __noreturn native_machine_restart(char *__unused)
28006 {
28007 pr_notice("machine restart\n");
28008
28009 @@ -654,7 +681,7 @@ static void native_machine_restart(char *__unused)
28010 __machine_emergency_restart(0);
28011 }
28012
28013 -static void native_machine_halt(void)
28014 +static void __noreturn native_machine_halt(void)
28015 {
28016 /* Stop other cpus and apics */
28017 machine_shutdown();
28018 @@ -664,7 +691,7 @@ static void native_machine_halt(void)
28019 stop_this_cpu(NULL);
28020 }
28021
28022 -static void native_machine_power_off(void)
28023 +static void __noreturn native_machine_power_off(void)
28024 {
28025 if (pm_power_off) {
28026 if (!reboot_force)
28027 @@ -673,9 +700,10 @@ static void native_machine_power_off(void)
28028 }
28029 /* A fallback in case there is no PM info available */
28030 tboot_shutdown(TB_SHUTDOWN_HALT);
28031 + unreachable();
28032 }
28033
28034 -struct machine_ops machine_ops = {
28035 +struct machine_ops machine_ops __read_only = {
28036 .power_off = native_machine_power_off,
28037 .shutdown = native_machine_shutdown,
28038 .emergency_restart = native_machine_emergency_restart,
28039 diff --git a/arch/x86/kernel/reboot_fixups_32.c b/arch/x86/kernel/reboot_fixups_32.c
28040 index c8e41e9..64049ef 100644
28041 --- a/arch/x86/kernel/reboot_fixups_32.c
28042 +++ b/arch/x86/kernel/reboot_fixups_32.c
28043 @@ -57,7 +57,7 @@ struct device_fixup {
28044 unsigned int vendor;
28045 unsigned int device;
28046 void (*reboot_fixup)(struct pci_dev *);
28047 -};
28048 +} __do_const;
28049
28050 /*
28051 * PCI ids solely used for fixups_table go here
28052 diff --git a/arch/x86/kernel/relocate_kernel_64.S b/arch/x86/kernel/relocate_kernel_64.S
28053 index 98111b3..73ca125 100644
28054 --- a/arch/x86/kernel/relocate_kernel_64.S
28055 +++ b/arch/x86/kernel/relocate_kernel_64.S
28056 @@ -96,8 +96,7 @@ relocate_kernel:
28057
28058 /* jump to identity mapped page */
28059 addq $(identity_mapped - relocate_kernel), %r8
28060 - pushq %r8
28061 - ret
28062 + jmp *%r8
28063
28064 identity_mapped:
28065 /* set return address to 0 if not preserving context */
28066 diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
28067 index d2bbe34..9d8fdaa 100644
28068 --- a/arch/x86/kernel/setup.c
28069 +++ b/arch/x86/kernel/setup.c
28070 @@ -112,6 +112,7 @@
28071 #include <asm/alternative.h>
28072 #include <asm/prom.h>
28073 #include <asm/microcode.h>
28074 +#include <asm/boot.h>
28075
28076 /*
28077 * max_low_pfn_mapped: highest direct mapped pfn under 4GB
28078 @@ -207,10 +208,12 @@ EXPORT_SYMBOL(boot_cpu_data);
28079 #endif
28080
28081
28082 -#if !defined(CONFIG_X86_PAE) || defined(CONFIG_X86_64)
28083 -__visible unsigned long mmu_cr4_features;
28084 +#ifdef CONFIG_X86_64
28085 +__visible unsigned long mmu_cr4_features __read_only = X86_CR4_PSE | X86_CR4_PAE | X86_CR4_PGE;
28086 +#elif defined(CONFIG_X86_PAE)
28087 +__visible unsigned long mmu_cr4_features __read_only = X86_CR4_PAE;
28088 #else
28089 -__visible unsigned long mmu_cr4_features = X86_CR4_PAE;
28090 +__visible unsigned long mmu_cr4_features __read_only;
28091 #endif
28092
28093 /* Boot loader ID and version as integers, for the benefit of proc_dointvec */
28094 @@ -758,7 +761,7 @@ static void __init trim_bios_range(void)
28095 * area (640->1Mb) as ram even though it is not.
28096 * take them out.
28097 */
28098 - e820_remove_range(BIOS_BEGIN, BIOS_END - BIOS_BEGIN, E820_RAM, 1);
28099 + e820_remove_range(ISA_START_ADDRESS, ISA_END_ADDRESS - ISA_START_ADDRESS, E820_RAM, 1);
28100
28101 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
28102 }
28103 @@ -766,7 +769,7 @@ static void __init trim_bios_range(void)
28104 /* called before trim_bios_range() to spare extra sanitize */
28105 static void __init e820_add_kernel_range(void)
28106 {
28107 - u64 start = __pa_symbol(_text);
28108 + u64 start = __pa_symbol(ktla_ktva((unsigned long)_text));
28109 u64 size = __pa_symbol(_end) - start;
28110
28111 /*
28112 @@ -847,8 +850,8 @@ dump_kernel_offset(struct notifier_block *self, unsigned long v, void *p)
28113
28114 void __init setup_arch(char **cmdline_p)
28115 {
28116 - memblock_reserve(__pa_symbol(_text),
28117 - (unsigned long)__bss_stop - (unsigned long)_text);
28118 + memblock_reserve(__pa_symbol(ktla_ktva((unsigned long)_text)),
28119 + (unsigned long)__bss_stop - ktla_ktva((unsigned long)_text));
28120
28121 early_reserve_initrd();
28122
28123 @@ -941,16 +944,16 @@ void __init setup_arch(char **cmdline_p)
28124
28125 if (!boot_params.hdr.root_flags)
28126 root_mountflags &= ~MS_RDONLY;
28127 - init_mm.start_code = (unsigned long) _text;
28128 - init_mm.end_code = (unsigned long) _etext;
28129 - init_mm.end_data = (unsigned long) _edata;
28130 + init_mm.start_code = ktla_ktva((unsigned long)_text);
28131 + init_mm.end_code = ktla_ktva((unsigned long)_etext);
28132 + init_mm.end_data = (unsigned long)_edata;
28133 init_mm.brk = _brk_end;
28134
28135 mpx_mm_init(&init_mm);
28136
28137 - code_resource.start = __pa_symbol(_text);
28138 - code_resource.end = __pa_symbol(_etext)-1;
28139 - data_resource.start = __pa_symbol(_etext);
28140 + code_resource.start = __pa_symbol(ktla_ktva((unsigned long)_text));
28141 + code_resource.end = __pa_symbol(ktla_ktva((unsigned long)_etext))-1;
28142 + data_resource.start = __pa_symbol(_sdata);
28143 data_resource.end = __pa_symbol(_edata)-1;
28144 bss_resource.start = __pa_symbol(__bss_start);
28145 bss_resource.end = __pa_symbol(__bss_stop)-1;
28146 diff --git a/arch/x86/kernel/setup_percpu.c b/arch/x86/kernel/setup_percpu.c
28147 index e4fcb87..9c06c55 100644
28148 --- a/arch/x86/kernel/setup_percpu.c
28149 +++ b/arch/x86/kernel/setup_percpu.c
28150 @@ -21,19 +21,17 @@
28151 #include <asm/cpu.h>
28152 #include <asm/stackprotector.h>
28153
28154 -DEFINE_PER_CPU_READ_MOSTLY(int, cpu_number);
28155 +#ifdef CONFIG_SMP
28156 +DEFINE_PER_CPU_READ_MOSTLY(unsigned int, cpu_number);
28157 EXPORT_PER_CPU_SYMBOL(cpu_number);
28158 +#endif
28159
28160 -#ifdef CONFIG_X86_64
28161 #define BOOT_PERCPU_OFFSET ((unsigned long)__per_cpu_load)
28162 -#else
28163 -#define BOOT_PERCPU_OFFSET 0
28164 -#endif
28165
28166 DEFINE_PER_CPU_READ_MOSTLY(unsigned long, this_cpu_off) = BOOT_PERCPU_OFFSET;
28167 EXPORT_PER_CPU_SYMBOL(this_cpu_off);
28168
28169 -unsigned long __per_cpu_offset[NR_CPUS] __read_mostly = {
28170 +unsigned long __per_cpu_offset[NR_CPUS] __read_only = {
28171 [0 ... NR_CPUS-1] = BOOT_PERCPU_OFFSET,
28172 };
28173 EXPORT_SYMBOL(__per_cpu_offset);
28174 @@ -66,7 +64,7 @@ static bool __init pcpu_need_numa(void)
28175 {
28176 #ifdef CONFIG_NEED_MULTIPLE_NODES
28177 pg_data_t *last = NULL;
28178 - unsigned int cpu;
28179 + int cpu;
28180
28181 for_each_possible_cpu(cpu) {
28182 int node = early_cpu_to_node(cpu);
28183 @@ -155,10 +153,10 @@ static inline void setup_percpu_segment(int cpu)
28184 {
28185 #ifdef CONFIG_X86_32
28186 struct desc_struct gdt;
28187 + unsigned long base = per_cpu_offset(cpu);
28188
28189 - pack_descriptor(&gdt, per_cpu_offset(cpu), 0xFFFFF,
28190 - 0x2 | DESCTYPE_S, 0x8);
28191 - gdt.s = 1;
28192 + pack_descriptor(&gdt, base, (VMALLOC_END - base - 1) >> PAGE_SHIFT,
28193 + 0x83 | DESCTYPE_S, 0xC);
28194 write_gdt_entry(get_cpu_gdt_table(cpu),
28195 GDT_ENTRY_PERCPU, &gdt, DESCTYPE_S);
28196 #endif
28197 @@ -219,6 +217,11 @@ void __init setup_per_cpu_areas(void)
28198 /* alrighty, percpu areas up and running */
28199 delta = (unsigned long)pcpu_base_addr - (unsigned long)__per_cpu_start;
28200 for_each_possible_cpu(cpu) {
28201 +#ifdef CONFIG_CC_STACKPROTECTOR
28202 +#ifdef CONFIG_X86_32
28203 + unsigned long canary = per_cpu(stack_canary.canary, cpu);
28204 +#endif
28205 +#endif
28206 per_cpu_offset(cpu) = delta + pcpu_unit_offsets[cpu];
28207 per_cpu(this_cpu_off, cpu) = per_cpu_offset(cpu);
28208 per_cpu(cpu_number, cpu) = cpu;
28209 @@ -259,6 +262,12 @@ void __init setup_per_cpu_areas(void)
28210 */
28211 set_cpu_numa_node(cpu, early_cpu_to_node(cpu));
28212 #endif
28213 +#ifdef CONFIG_CC_STACKPROTECTOR
28214 +#ifdef CONFIG_X86_32
28215 + if (!cpu)
28216 + per_cpu(stack_canary.canary, cpu) = canary;
28217 +#endif
28218 +#endif
28219 /*
28220 * Up to this point, the boot CPU has been using .init.data
28221 * area. Reload any changed state for the boot CPU.
28222 diff --git a/arch/x86/kernel/signal.c b/arch/x86/kernel/signal.c
28223 index cb6282c..7cda5d0 100644
28224 --- a/arch/x86/kernel/signal.c
28225 +++ b/arch/x86/kernel/signal.c
28226 @@ -191,7 +191,7 @@ static unsigned long align_sigframe(unsigned long sp)
28227 * Align the stack pointer according to the i386 ABI,
28228 * i.e. so that on function entry ((sp + 4) & 15) == 0.
28229 */
28230 - sp = ((sp + 4) & -16ul) - 4;
28231 + sp = ((sp - 12) & -16ul) - 4;
28232 #else /* !CONFIG_X86_32 */
28233 sp = round_down(sp, 16) - 8;
28234 #endif
28235 @@ -300,10 +300,9 @@ __setup_frame(int sig, struct ksignal *ksig, sigset_t *set,
28236 }
28237
28238 if (current->mm->context.vdso)
28239 - restorer = current->mm->context.vdso +
28240 - vdso_image_32.sym___kernel_sigreturn;
28241 + restorer = (void __force_user *)(current->mm->context.vdso + vdso_image_32.sym___kernel_sigreturn);
28242 else
28243 - restorer = &frame->retcode;
28244 + restorer = frame->retcode;
28245 if (ksig->ka.sa.sa_flags & SA_RESTORER)
28246 restorer = ksig->ka.sa.sa_restorer;
28247
28248 @@ -317,7 +316,7 @@ __setup_frame(int sig, struct ksignal *ksig, sigset_t *set,
28249 * reasons and because gdb uses it as a signature to notice
28250 * signal handler stack frames.
28251 */
28252 - err |= __put_user(*((u64 *)&retcode), (u64 *)frame->retcode);
28253 + err |= __put_user(*((u64 *)&retcode), (u64 __user *)frame->retcode);
28254
28255 if (err)
28256 return -EFAULT;
28257 @@ -364,8 +363,10 @@ static int __setup_rt_frame(int sig, struct ksignal *ksig,
28258 save_altstack_ex(&frame->uc.uc_stack, regs->sp);
28259
28260 /* Set up to return from userspace. */
28261 - restorer = current->mm->context.vdso +
28262 - vdso_image_32.sym___kernel_rt_sigreturn;
28263 + if (current->mm->context.vdso)
28264 + restorer = (void __force_user *)(current->mm->context.vdso + vdso_image_32.sym___kernel_rt_sigreturn);
28265 + else
28266 + restorer = (void __user *)&frame->retcode;
28267 if (ksig->ka.sa.sa_flags & SA_RESTORER)
28268 restorer = ksig->ka.sa.sa_restorer;
28269 put_user_ex(restorer, &frame->pretcode);
28270 @@ -377,7 +378,7 @@ static int __setup_rt_frame(int sig, struct ksignal *ksig,
28271 * reasons and because gdb uses it as a signature to notice
28272 * signal handler stack frames.
28273 */
28274 - put_user_ex(*((u64 *)&rt_retcode), (u64 *)frame->retcode);
28275 + put_user_ex(*((u64 *)&rt_retcode), (u64 __user *)frame->retcode);
28276 } put_user_catch(err);
28277
28278 err |= copy_siginfo_to_user(&frame->info, &ksig->info);
28279 @@ -613,7 +614,12 @@ setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
28280 {
28281 int usig = ksig->sig;
28282 sigset_t *set = sigmask_to_save();
28283 - compat_sigset_t *cset = (compat_sigset_t *) set;
28284 + sigset_t sigcopy;
28285 + compat_sigset_t *cset;
28286 +
28287 + sigcopy = *set;
28288 +
28289 + cset = (compat_sigset_t *) &sigcopy;
28290
28291 /* Set up the stack frame */
28292 if (is_ia32_frame()) {
28293 @@ -624,7 +630,7 @@ setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
28294 } else if (is_x32_frame()) {
28295 return x32_setup_rt_frame(ksig, cset, regs);
28296 } else {
28297 - return __setup_rt_frame(ksig->sig, ksig, set, regs);
28298 + return __setup_rt_frame(ksig->sig, ksig, &sigcopy, regs);
28299 }
28300 }
28301
28302 diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c
28303 index 12c8286..aa65d13 100644
28304 --- a/arch/x86/kernel/smp.c
28305 +++ b/arch/x86/kernel/smp.c
28306 @@ -336,7 +336,7 @@ static int __init nonmi_ipi_setup(char *str)
28307
28308 __setup("nonmi_ipi", nonmi_ipi_setup);
28309
28310 -struct smp_ops smp_ops = {
28311 +struct smp_ops smp_ops __read_only = {
28312 .smp_prepare_boot_cpu = native_smp_prepare_boot_cpu,
28313 .smp_prepare_cpus = native_smp_prepare_cpus,
28314 .smp_cpus_done = native_smp_cpus_done,
28315 diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
28316 index fbabe4f..c686333 100644
28317 --- a/arch/x86/kernel/smpboot.c
28318 +++ b/arch/x86/kernel/smpboot.c
28319 @@ -213,14 +213,17 @@ static void notrace start_secondary(void *unused)
28320
28321 enable_start_cpu0 = 0;
28322
28323 -#ifdef CONFIG_X86_32
28324 + /* otherwise gcc will move up smp_processor_id before the cpu_init */
28325 + barrier();
28326 +
28327 /* switch away from the initial page table */
28328 +#ifdef CONFIG_PAX_PER_CPU_PGD
28329 + load_cr3(get_cpu_pgd(smp_processor_id(), kernel));
28330 +#else
28331 load_cr3(swapper_pg_dir);
28332 +#endif
28333 __flush_tlb_all();
28334 -#endif
28335
28336 - /* otherwise gcc will move up smp_processor_id before the cpu_init */
28337 - barrier();
28338 /*
28339 * Check TSC synchronization with the BP:
28340 */
28341 @@ -810,16 +813,15 @@ void common_cpu_up(unsigned int cpu, struct task_struct *idle)
28342 alternatives_enable_smp();
28343
28344 per_cpu(current_task, cpu) = idle;
28345 + per_cpu(current_tinfo, cpu) = &idle->tinfo;
28346
28347 #ifdef CONFIG_X86_32
28348 - /* Stack for startup_32 can be just as for start_secondary onwards */
28349 irq_ctx_init(cpu);
28350 - per_cpu(cpu_current_top_of_stack, cpu) =
28351 - (unsigned long)task_stack_page(idle) + THREAD_SIZE;
28352 #else
28353 clear_tsk_thread_flag(idle, TIF_FORK);
28354 initial_gs = per_cpu_offset(cpu);
28355 #endif
28356 + per_cpu(cpu_current_top_of_stack, cpu) = (unsigned long)task_stack_page(idle) - 16 + THREAD_SIZE;
28357 }
28358
28359 /*
28360 @@ -840,9 +842,11 @@ static int do_boot_cpu(int apicid, int cpu, struct task_struct *idle)
28361 unsigned long timeout;
28362
28363 idle->thread.sp = (unsigned long) (((struct pt_regs *)
28364 - (THREAD_SIZE + task_stack_page(idle))) - 1);
28365 + (THREAD_SIZE - 16 + task_stack_page(idle))) - 1);
28366
28367 + pax_open_kernel();
28368 early_gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu);
28369 + pax_close_kernel();
28370 initial_code = (unsigned long)start_secondary;
28371 stack_start = idle->thread.sp;
28372
28373 @@ -990,6 +994,15 @@ int native_cpu_up(unsigned int cpu, struct task_struct *tidle)
28374
28375 common_cpu_up(cpu, tidle);
28376
28377 +#ifdef CONFIG_PAX_PER_CPU_PGD
28378 + clone_pgd_range(get_cpu_pgd(cpu, kernel) + KERNEL_PGD_BOUNDARY,
28379 + swapper_pg_dir + KERNEL_PGD_BOUNDARY,
28380 + KERNEL_PGD_PTRS);
28381 + clone_pgd_range(get_cpu_pgd(cpu, user) + KERNEL_PGD_BOUNDARY,
28382 + swapper_pg_dir + KERNEL_PGD_BOUNDARY,
28383 + KERNEL_PGD_PTRS);
28384 +#endif
28385 +
28386 /*
28387 * We have to walk the irq descriptors to setup the vector
28388 * space for the cpu which comes online. Prevent irq
28389 diff --git a/arch/x86/kernel/step.c b/arch/x86/kernel/step.c
28390 index c9a0738..f0ab628 100644
28391 --- a/arch/x86/kernel/step.c
28392 +++ b/arch/x86/kernel/step.c
28393 @@ -45,7 +45,8 @@ unsigned long convert_ip_to_linear(struct task_struct *child, struct pt_regs *re
28394 addr += base;
28395 }
28396 mutex_unlock(&child->mm->context.lock);
28397 - }
28398 + } else if (seg == __KERNEL_CS || seg == __KERNEXEC_KERNEL_CS)
28399 + addr = ktla_ktva(addr);
28400 #endif
28401
28402 return addr;
28403 @@ -57,6 +58,9 @@ static int is_setting_trap_flag(struct task_struct *child, struct pt_regs *regs)
28404 unsigned char opcode[15];
28405 unsigned long addr = convert_ip_to_linear(child, regs);
28406
28407 + if (addr == -EINVAL)
28408 + return 0;
28409 +
28410 copied = access_process_vm(child, addr, opcode, sizeof(opcode), 0);
28411 for (i = 0; i < copied; i++) {
28412 switch (opcode[i]) {
28413 diff --git a/arch/x86/kernel/sys_i386_32.c b/arch/x86/kernel/sys_i386_32.c
28414 new file mode 100644
28415 index 0000000..5877189
28416 --- /dev/null
28417 +++ b/arch/x86/kernel/sys_i386_32.c
28418 @@ -0,0 +1,189 @@
28419 +/*
28420 + * This file contains various random system calls that
28421 + * have a non-standard calling sequence on the Linux/i386
28422 + * platform.
28423 + */
28424 +
28425 +#include <linux/errno.h>
28426 +#include <linux/sched.h>
28427 +#include <linux/mm.h>
28428 +#include <linux/fs.h>
28429 +#include <linux/smp.h>
28430 +#include <linux/sem.h>
28431 +#include <linux/msg.h>
28432 +#include <linux/shm.h>
28433 +#include <linux/stat.h>
28434 +#include <linux/syscalls.h>
28435 +#include <linux/mman.h>
28436 +#include <linux/file.h>
28437 +#include <linux/utsname.h>
28438 +#include <linux/ipc.h>
28439 +#include <linux/elf.h>
28440 +
28441 +#include <linux/uaccess.h>
28442 +#include <linux/unistd.h>
28443 +
28444 +#include <asm/syscalls.h>
28445 +
28446 +int i386_mmap_check(unsigned long addr, unsigned long len, unsigned long flags)
28447 +{
28448 + unsigned long pax_task_size = TASK_SIZE;
28449 +
28450 +#ifdef CONFIG_PAX_SEGMEXEC
28451 + if (current->mm->pax_flags & MF_PAX_SEGMEXEC)
28452 + pax_task_size = SEGMEXEC_TASK_SIZE;
28453 +#endif
28454 +
28455 + if (flags & MAP_FIXED)
28456 + if (len > pax_task_size || addr > pax_task_size - len)
28457 + return -EINVAL;
28458 +
28459 + return 0;
28460 +}
28461 +
28462 +/*
28463 + * Align a virtual address to avoid aliasing in the I$ on AMD F15h.
28464 + */
28465 +static unsigned long get_align_mask(void)
28466 +{
28467 + if (va_align.flags < 0 || !(va_align.flags & ALIGN_VA_32))
28468 + return 0;
28469 +
28470 + if (!(current->flags & PF_RANDOMIZE))
28471 + return 0;
28472 +
28473 + return va_align.mask;
28474 +}
28475 +
28476 +unsigned long
28477 +arch_get_unmapped_area(struct file *filp, unsigned long addr,
28478 + unsigned long len, unsigned long pgoff, unsigned long flags)
28479 +{
28480 + struct mm_struct *mm = current->mm;
28481 + struct vm_area_struct *vma;
28482 + unsigned long pax_task_size = TASK_SIZE;
28483 + struct vm_unmapped_area_info info;
28484 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
28485 +
28486 +#ifdef CONFIG_PAX_SEGMEXEC
28487 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
28488 + pax_task_size = SEGMEXEC_TASK_SIZE;
28489 +#endif
28490 +
28491 + pax_task_size -= PAGE_SIZE;
28492 +
28493 + if (len > pax_task_size)
28494 + return -ENOMEM;
28495 +
28496 + if (flags & MAP_FIXED)
28497 + return addr;
28498 +
28499 +#ifdef CONFIG_PAX_RANDMMAP
28500 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
28501 +#endif
28502 +
28503 + if (addr) {
28504 + addr = PAGE_ALIGN(addr);
28505 + if (pax_task_size - len >= addr) {
28506 + vma = find_vma(mm, addr);
28507 + if (check_heap_stack_gap(vma, addr, len, offset))
28508 + return addr;
28509 + }
28510 + }
28511 +
28512 + info.flags = 0;
28513 + info.length = len;
28514 + info.align_mask = filp ? get_align_mask() : 0;
28515 + info.align_offset = pgoff << PAGE_SHIFT;
28516 + info.threadstack_offset = offset;
28517 +
28518 +#ifdef CONFIG_PAX_PAGEEXEC
28519 + if (!(__supported_pte_mask & _PAGE_NX) && (mm->pax_flags & MF_PAX_PAGEEXEC) && (flags & MAP_EXECUTABLE)) {
28520 + info.low_limit = 0x00110000UL;
28521 + info.high_limit = mm->start_code;
28522 +
28523 +#ifdef CONFIG_PAX_RANDMMAP
28524 + if (mm->pax_flags & MF_PAX_RANDMMAP)
28525 + info.low_limit += mm->delta_mmap & 0x03FFF000UL;
28526 +#endif
28527 +
28528 + if (info.low_limit < info.high_limit) {
28529 + addr = vm_unmapped_area(&info);
28530 + if (!IS_ERR_VALUE(addr))
28531 + return addr;
28532 + }
28533 + } else
28534 +#endif
28535 +
28536 + info.low_limit = mm->mmap_base;
28537 + info.high_limit = pax_task_size;
28538 +
28539 + return vm_unmapped_area(&info);
28540 +}
28541 +
28542 +unsigned long
28543 +arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
28544 + const unsigned long len, const unsigned long pgoff,
28545 + const unsigned long flags)
28546 +{
28547 + struct vm_area_struct *vma;
28548 + struct mm_struct *mm = current->mm;
28549 + unsigned long addr = addr0, pax_task_size = TASK_SIZE;
28550 + struct vm_unmapped_area_info info;
28551 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
28552 +
28553 +#ifdef CONFIG_PAX_SEGMEXEC
28554 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
28555 + pax_task_size = SEGMEXEC_TASK_SIZE;
28556 +#endif
28557 +
28558 + pax_task_size -= PAGE_SIZE;
28559 +
28560 + /* requested length too big for entire address space */
28561 + if (len > pax_task_size)
28562 + return -ENOMEM;
28563 +
28564 + if (flags & MAP_FIXED)
28565 + return addr;
28566 +
28567 +#ifdef CONFIG_PAX_PAGEEXEC
28568 + if (!(__supported_pte_mask & _PAGE_NX) && (mm->pax_flags & MF_PAX_PAGEEXEC) && (flags & MAP_EXECUTABLE))
28569 + goto bottomup;
28570 +#endif
28571 +
28572 +#ifdef CONFIG_PAX_RANDMMAP
28573 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
28574 +#endif
28575 +
28576 + /* requesting a specific address */
28577 + if (addr) {
28578 + addr = PAGE_ALIGN(addr);
28579 + if (pax_task_size - len >= addr) {
28580 + vma = find_vma(mm, addr);
28581 + if (check_heap_stack_gap(vma, addr, len, offset))
28582 + return addr;
28583 + }
28584 + }
28585 +
28586 + info.flags = VM_UNMAPPED_AREA_TOPDOWN;
28587 + info.length = len;
28588 + info.low_limit = PAGE_SIZE;
28589 + info.high_limit = mm->mmap_base;
28590 + info.align_mask = filp ? get_align_mask() : 0;
28591 + info.align_offset = pgoff << PAGE_SHIFT;
28592 + info.threadstack_offset = offset;
28593 +
28594 + addr = vm_unmapped_area(&info);
28595 + if (!(addr & ~PAGE_MASK))
28596 + return addr;
28597 + VM_BUG_ON(addr != -ENOMEM);
28598 +
28599 +bottomup:
28600 + /*
28601 + * A failed mmap() very likely causes application failure,
28602 + * so fall back to the bottom-up function here. This scenario
28603 + * can happen with large stack limits and large mmap()
28604 + * allocations.
28605 + */
28606 + return arch_get_unmapped_area(filp, addr0, len, pgoff, flags);
28607 +}
28608 diff --git a/arch/x86/kernel/sys_x86_64.c b/arch/x86/kernel/sys_x86_64.c
28609 index 10e0272..b4bb9a7 100644
28610 --- a/arch/x86/kernel/sys_x86_64.c
28611 +++ b/arch/x86/kernel/sys_x86_64.c
28612 @@ -97,8 +97,8 @@ out:
28613 return error;
28614 }
28615
28616 -static void find_start_end(unsigned long flags, unsigned long *begin,
28617 - unsigned long *end)
28618 +static void find_start_end(struct mm_struct *mm, unsigned long flags,
28619 + unsigned long *begin, unsigned long *end)
28620 {
28621 if (!test_thread_flag(TIF_ADDR32) && (flags & MAP_32BIT)) {
28622 unsigned long new_begin;
28623 @@ -117,7 +117,7 @@ static void find_start_end(unsigned long flags, unsigned long *begin,
28624 *begin = new_begin;
28625 }
28626 } else {
28627 - *begin = current->mm->mmap_legacy_base;
28628 + *begin = mm->mmap_legacy_base;
28629 *end = TASK_SIZE;
28630 }
28631 }
28632 @@ -130,20 +130,24 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
28633 struct vm_area_struct *vma;
28634 struct vm_unmapped_area_info info;
28635 unsigned long begin, end;
28636 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
28637
28638 if (flags & MAP_FIXED)
28639 return addr;
28640
28641 - find_start_end(flags, &begin, &end);
28642 + find_start_end(mm, flags, &begin, &end);
28643
28644 if (len > end)
28645 return -ENOMEM;
28646
28647 +#ifdef CONFIG_PAX_RANDMMAP
28648 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
28649 +#endif
28650 +
28651 if (addr) {
28652 addr = PAGE_ALIGN(addr);
28653 vma = find_vma(mm, addr);
28654 - if (end - len >= addr &&
28655 - (!vma || addr + len <= vma->vm_start))
28656 + if (end - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
28657 return addr;
28658 }
28659
28660 @@ -157,6 +161,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
28661 info.align_mask = get_align_mask();
28662 info.align_offset += get_align_bits();
28663 }
28664 + info.threadstack_offset = offset;
28665 return vm_unmapped_area(&info);
28666 }
28667
28668 @@ -169,6 +174,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
28669 struct mm_struct *mm = current->mm;
28670 unsigned long addr = addr0;
28671 struct vm_unmapped_area_info info;
28672 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
28673
28674 /* requested length too big for entire address space */
28675 if (len > TASK_SIZE)
28676 @@ -181,12 +187,15 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
28677 if (!test_thread_flag(TIF_ADDR32) && (flags & MAP_32BIT))
28678 goto bottomup;
28679
28680 +#ifdef CONFIG_PAX_RANDMMAP
28681 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
28682 +#endif
28683 +
28684 /* requesting a specific address */
28685 if (addr) {
28686 addr = PAGE_ALIGN(addr);
28687 vma = find_vma(mm, addr);
28688 - if (TASK_SIZE - len >= addr &&
28689 - (!vma || addr + len <= vma->vm_start))
28690 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
28691 return addr;
28692 }
28693
28694 @@ -200,6 +209,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
28695 info.align_mask = get_align_mask();
28696 info.align_offset += get_align_bits();
28697 }
28698 + info.threadstack_offset = offset;
28699 addr = vm_unmapped_area(&info);
28700 if (!(addr & ~PAGE_MASK))
28701 return addr;
28702 diff --git a/arch/x86/kernel/tboot.c b/arch/x86/kernel/tboot.c
28703 index 91a4496..6414b5c 100644
28704 --- a/arch/x86/kernel/tboot.c
28705 +++ b/arch/x86/kernel/tboot.c
28706 @@ -44,6 +44,7 @@
28707 #include <asm/setup.h>
28708 #include <asm/e820.h>
28709 #include <asm/io.h>
28710 +#include <asm/tlbflush.h>
28711
28712 #include "../realmode/rm/wakeup.h"
28713
28714 @@ -151,6 +152,10 @@ static int map_tboot_pages(unsigned long vaddr, unsigned long start_pfn,
28715 if (!tboot_pg_dir)
28716 return -1;
28717
28718 + clone_pgd_range(tboot_pg_dir + KERNEL_PGD_BOUNDARY,
28719 + swapper_pg_dir + KERNEL_PGD_BOUNDARY,
28720 + KERNEL_PGD_PTRS);
28721 +
28722 for (; nr > 0; nr--, vaddr += PAGE_SIZE, start_pfn++) {
28723 if (map_tboot_page(vaddr, start_pfn, PAGE_KERNEL_EXEC))
28724 return -1;
28725 @@ -221,8 +226,6 @@ static int tboot_setup_sleep(void)
28726
28727 void tboot_shutdown(u32 shutdown_type)
28728 {
28729 - void (*shutdown)(void);
28730 -
28731 if (!tboot_enabled())
28732 return;
28733
28734 @@ -242,9 +245,12 @@ void tboot_shutdown(u32 shutdown_type)
28735 tboot->shutdown_type = shutdown_type;
28736
28737 switch_to_tboot_pt();
28738 + __write_cr4(__read_cr4() & ~X86_CR4_PCIDE);
28739
28740 - shutdown = (void(*)(void))(unsigned long)tboot->shutdown_entry;
28741 - shutdown();
28742 + /*
28743 + * PaX: can't be a C indirect function call due to KERNEXEC
28744 + */
28745 + asm volatile("jmp *%0" : : "r"((unsigned long)tboot->shutdown_entry));
28746
28747 /* should not reach here */
28748 while (1)
28749 @@ -310,7 +316,7 @@ static int tboot_extended_sleep(u8 sleep_state, u32 val_a, u32 val_b)
28750 return -ENODEV;
28751 }
28752
28753 -static atomic_t ap_wfs_count;
28754 +static atomic_unchecked_t ap_wfs_count;
28755
28756 static int tboot_wait_for_aps(int num_aps)
28757 {
28758 @@ -334,9 +340,9 @@ static int tboot_cpu_callback(struct notifier_block *nfb, unsigned long action,
28759 {
28760 switch (action) {
28761 case CPU_DYING:
28762 - atomic_inc(&ap_wfs_count);
28763 + atomic_inc_unchecked(&ap_wfs_count);
28764 if (num_online_cpus() == 1)
28765 - if (tboot_wait_for_aps(atomic_read(&ap_wfs_count)))
28766 + if (tboot_wait_for_aps(atomic_read_unchecked(&ap_wfs_count)))
28767 return NOTIFY_BAD;
28768 break;
28769 }
28770 @@ -422,7 +428,7 @@ static __init int tboot_late_init(void)
28771
28772 tboot_create_trampoline();
28773
28774 - atomic_set(&ap_wfs_count, 0);
28775 + atomic_set_unchecked(&ap_wfs_count, 0);
28776 register_hotcpu_notifier(&tboot_cpu_notifier);
28777
28778 #ifdef CONFIG_DEBUG_FS
28779 diff --git a/arch/x86/kernel/time.c b/arch/x86/kernel/time.c
28780 index d39c091..1df4349 100644
28781 --- a/arch/x86/kernel/time.c
28782 +++ b/arch/x86/kernel/time.c
28783 @@ -32,7 +32,7 @@ unsigned long profile_pc(struct pt_regs *regs)
28784
28785 if (!user_mode(regs) && in_lock_functions(pc)) {
28786 #ifdef CONFIG_FRAME_POINTER
28787 - return *(unsigned long *)(regs->bp + sizeof(long));
28788 + return ktla_ktva(*(unsigned long *)(regs->bp + sizeof(long)));
28789 #else
28790 unsigned long *sp =
28791 (unsigned long *)kernel_stack_pointer(regs);
28792 @@ -41,11 +41,17 @@ unsigned long profile_pc(struct pt_regs *regs)
28793 * or above a saved flags. Eflags has bits 22-31 zero,
28794 * kernel addresses don't.
28795 */
28796 +
28797 +#ifdef CONFIG_PAX_KERNEXEC
28798 + return ktla_ktva(sp[0]);
28799 +#else
28800 if (sp[0] >> 22)
28801 return sp[0];
28802 if (sp[1] >> 22)
28803 return sp[1];
28804 #endif
28805 +
28806 +#endif
28807 }
28808 return pc;
28809 }
28810 diff --git a/arch/x86/kernel/tls.c b/arch/x86/kernel/tls.c
28811 index 7fc5e84..c6e445a 100644
28812 --- a/arch/x86/kernel/tls.c
28813 +++ b/arch/x86/kernel/tls.c
28814 @@ -139,6 +139,11 @@ int do_set_thread_area(struct task_struct *p, int idx,
28815 if (idx < GDT_ENTRY_TLS_MIN || idx > GDT_ENTRY_TLS_MAX)
28816 return -EINVAL;
28817
28818 +#ifdef CONFIG_PAX_SEGMEXEC
28819 + if ((p->mm->pax_flags & MF_PAX_SEGMEXEC) && (info.contents & MODIFY_LDT_CONTENTS_CODE))
28820 + return -EINVAL;
28821 +#endif
28822 +
28823 set_tls_desc(p, idx, &info, 1);
28824
28825 return 0;
28826 @@ -256,7 +261,7 @@ int regset_tls_set(struct task_struct *target, const struct user_regset *regset,
28827
28828 if (kbuf)
28829 info = kbuf;
28830 - else if (__copy_from_user(infobuf, ubuf, count))
28831 + else if (count > sizeof infobuf || __copy_from_user(infobuf, ubuf, count))
28832 return -EFAULT;
28833 else
28834 info = infobuf;
28835 diff --git a/arch/x86/kernel/tracepoint.c b/arch/x86/kernel/tracepoint.c
28836 index 1c113db..287b42e 100644
28837 --- a/arch/x86/kernel/tracepoint.c
28838 +++ b/arch/x86/kernel/tracepoint.c
28839 @@ -9,11 +9,11 @@
28840 #include <linux/atomic.h>
28841
28842 atomic_t trace_idt_ctr = ATOMIC_INIT(0);
28843 -struct desc_ptr trace_idt_descr = { NR_VECTORS * 16 - 1,
28844 +const struct desc_ptr trace_idt_descr = { NR_VECTORS * 16 - 1,
28845 (unsigned long) trace_idt_table };
28846
28847 /* No need to be aligned, but done to keep all IDTs defined the same way. */
28848 -gate_desc trace_idt_table[NR_VECTORS] __page_aligned_bss;
28849 +gate_desc trace_idt_table[NR_VECTORS] __page_aligned_rodata;
28850
28851 static int trace_irq_vector_refcount;
28852 static DEFINE_MUTEX(irq_vector_mutex);
28853 diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
28854 index ade185a..2452e8b 100644
28855 --- a/arch/x86/kernel/traps.c
28856 +++ b/arch/x86/kernel/traps.c
28857 @@ -70,7 +70,7 @@
28858 #include <asm/proto.h>
28859
28860 /* No need to be aligned, but done to keep all IDTs defined the same way. */
28861 -gate_desc debug_idt_table[NR_VECTORS] __page_aligned_bss;
28862 +gate_desc debug_idt_table[NR_VECTORS] __page_aligned_rodata;
28863 #else
28864 #include <asm/processor-flags.h>
28865 #include <asm/setup.h>
28866 @@ -78,7 +78,7 @@ gate_desc debug_idt_table[NR_VECTORS] __page_aligned_bss;
28867 #endif
28868
28869 /* Must be page-aligned because the real IDT is used in a fixmap. */
28870 -gate_desc idt_table[NR_VECTORS] __page_aligned_bss;
28871 +gate_desc idt_table[NR_VECTORS] __page_aligned_rodata;
28872
28873 DECLARE_BITMAP(used_vectors, NR_VECTORS);
28874 EXPORT_SYMBOL_GPL(used_vectors);
28875 @@ -165,7 +165,7 @@ void ist_begin_non_atomic(struct pt_regs *regs)
28876 * will catch asm bugs and any attempt to use ist_preempt_enable
28877 * from double_fault.
28878 */
28879 - BUG_ON((unsigned long)(current_top_of_stack() -
28880 + BUG_ON((unsigned long)(current_top_of_stack(smp_processor_id()) -
28881 current_stack_pointer()) >= THREAD_SIZE);
28882
28883 preempt_count_sub(HARDIRQ_OFFSET);
28884 @@ -182,7 +182,7 @@ void ist_end_non_atomic(void)
28885 }
28886
28887 static nokprobe_inline int
28888 -do_trap_no_signal(struct task_struct *tsk, int trapnr, char *str,
28889 +do_trap_no_signal(struct task_struct *tsk, int trapnr, const char *str,
28890 struct pt_regs *regs, long error_code)
28891 {
28892 if (v8086_mode(regs)) {
28893 @@ -202,8 +202,20 @@ do_trap_no_signal(struct task_struct *tsk, int trapnr, char *str,
28894 if (!fixup_exception(regs)) {
28895 tsk->thread.error_code = error_code;
28896 tsk->thread.trap_nr = trapnr;
28897 +
28898 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
28899 + if (trapnr == X86_TRAP_SS && ((regs->cs & 0xFFFF) == __KERNEL_CS || (regs->cs & 0xFFFF) == __KERNEXEC_KERNEL_CS))
28900 + str = "PAX: suspicious stack segment fault";
28901 +#endif
28902 +
28903 die(str, regs, error_code);
28904 }
28905 +
28906 +#ifdef CONFIG_PAX_REFCOUNT
28907 + if (trapnr == X86_TRAP_OF)
28908 + pax_report_refcount_overflow(regs);
28909 +#endif
28910 +
28911 return 0;
28912 }
28913
28914 @@ -242,7 +254,7 @@ static siginfo_t *fill_trap_info(struct pt_regs *regs, int signr, int trapnr,
28915 }
28916
28917 static void
28918 -do_trap(int trapnr, int signr, char *str, struct pt_regs *regs,
28919 +do_trap(int trapnr, int signr, const char *str, struct pt_regs *regs,
28920 long error_code, siginfo_t *info)
28921 {
28922 struct task_struct *tsk = current;
28923 @@ -266,7 +278,7 @@ do_trap(int trapnr, int signr, char *str, struct pt_regs *regs,
28924 if (show_unhandled_signals && unhandled_signal(tsk, signr) &&
28925 printk_ratelimit()) {
28926 pr_info("%s[%d] trap %s ip:%lx sp:%lx error:%lx",
28927 - tsk->comm, tsk->pid, str,
28928 + tsk->comm, task_pid_nr(tsk), str,
28929 regs->ip, regs->sp, error_code);
28930 print_vma_addr(" in ", regs->ip);
28931 pr_cont("\n");
28932 @@ -347,6 +359,11 @@ dotraplinkage void do_double_fault(struct pt_regs *regs, long error_code)
28933 tsk->thread.error_code = error_code;
28934 tsk->thread.trap_nr = X86_TRAP_DF;
28935
28936 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
28937 + if ((unsigned long)tsk->stack - regs->sp <= PAGE_SIZE)
28938 + die("grsec: kernel stack overflow detected", regs, error_code);
28939 +#endif
28940 +
28941 #ifdef CONFIG_DOUBLEFAULT
28942 df_debug(regs, error_code);
28943 #endif
28944 @@ -459,11 +476,35 @@ do_general_protection(struct pt_regs *regs, long error_code)
28945 tsk->thread.error_code = error_code;
28946 tsk->thread.trap_nr = X86_TRAP_GP;
28947 if (notify_die(DIE_GPF, "general protection fault", regs, error_code,
28948 - X86_TRAP_GP, SIGSEGV) != NOTIFY_STOP)
28949 + X86_TRAP_GP, SIGSEGV) != NOTIFY_STOP) {
28950 +
28951 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
28952 + if ((regs->cs & 0xFFFF) == __KERNEL_CS || (regs->cs & 0xFFFF) == __KERNEXEC_KERNEL_CS)
28953 + die("PAX: suspicious general protection fault", regs, error_code);
28954 + else
28955 +#endif
28956 +
28957 die("general protection fault", regs, error_code);
28958 + }
28959 return;
28960 }
28961
28962 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC)
28963 + if (!(__supported_pte_mask & _PAGE_NX) && tsk->mm && (tsk->mm->pax_flags & MF_PAX_PAGEEXEC)) {
28964 + struct mm_struct *mm = tsk->mm;
28965 + unsigned long limit;
28966 +
28967 + down_write(&mm->mmap_sem);
28968 + limit = mm->context.user_cs_limit;
28969 + if (limit < TASK_SIZE) {
28970 + track_exec_limit(mm, limit, TASK_SIZE, VM_EXEC);
28971 + up_write(&mm->mmap_sem);
28972 + return;
28973 + }
28974 + up_write(&mm->mmap_sem);
28975 + }
28976 +#endif
28977 +
28978 tsk->thread.error_code = error_code;
28979 tsk->thread.trap_nr = X86_TRAP_GP;
28980
28981 @@ -559,6 +600,9 @@ struct bad_iret_stack *fixup_bad_iret(struct bad_iret_stack *s)
28982 container_of(task_pt_regs(current),
28983 struct bad_iret_stack, regs);
28984
28985 + if ((current->thread.sp0 ^ (unsigned long)s) < THREAD_SIZE)
28986 + new_stack = s;
28987 +
28988 /* Copy the IRET target to the new stack. */
28989 memmove(&new_stack->regs.ip, (void *)s->regs.sp, 5*8);
28990
28991 diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
28992 index c7c4d9c..ddd1454 100644
28993 --- a/arch/x86/kernel/tsc.c
28994 +++ b/arch/x86/kernel/tsc.c
28995 @@ -151,7 +151,7 @@ static void cyc2ns_write_end(int cpu, struct cyc2ns_data *data)
28996 */
28997 smp_wmb();
28998
28999 - ACCESS_ONCE(c2n->head) = data;
29000 + ACCESS_ONCE_RW(c2n->head) = data;
29001 }
29002
29003 /*
29004 diff --git a/arch/x86/kernel/uprobes.c b/arch/x86/kernel/uprobes.c
29005 index bf4db6e..624137c 100644
29006 --- a/arch/x86/kernel/uprobes.c
29007 +++ b/arch/x86/kernel/uprobes.c
29008 @@ -287,7 +287,7 @@ static int uprobe_init_insn(struct arch_uprobe *auprobe, struct insn *insn, bool
29009 {
29010 u32 volatile *good_insns;
29011
29012 - insn_init(insn, auprobe->insn, sizeof(auprobe->insn), x86_64);
29013 + insn_init(insn, (void *)ktva_ktla((unsigned long)auprobe->insn), sizeof(auprobe->insn), x86_64);
29014 /* has the side-effect of processing the entire instruction */
29015 insn_get_length(insn);
29016 if (WARN_ON_ONCE(!insn_complete(insn)))
29017 @@ -978,7 +978,7 @@ arch_uretprobe_hijack_return_addr(unsigned long trampoline_vaddr, struct pt_regs
29018
29019 if (nleft != rasize) {
29020 pr_err("uprobe: return address clobbered: pid=%d, %%sp=%#lx, "
29021 - "%%ip=%#lx\n", current->pid, regs->sp, regs->ip);
29022 + "%%ip=%#lx\n", task_pid_nr(current), regs->sp, regs->ip);
29023
29024 force_sig_info(SIGSEGV, SEND_SIG_FORCED, current);
29025 }
29026 diff --git a/arch/x86/kernel/verify_cpu.S b/arch/x86/kernel/verify_cpu.S
29027 index 4cf401f..ae8c9cf 100644
29028 --- a/arch/x86/kernel/verify_cpu.S
29029 +++ b/arch/x86/kernel/verify_cpu.S
29030 @@ -20,6 +20,7 @@
29031 * arch/x86/boot/compressed/head_64.S: Boot cpu verification
29032 * arch/x86/kernel/trampoline_64.S: secondary processor verification
29033 * arch/x86/kernel/head_32.S: processor startup
29034 + * arch/x86/kernel/acpi/realmode/wakeup.S: 32bit processor resume
29035 *
29036 * verify_cpu, returns the status of longmode and SSE in register %eax.
29037 * 0: Success 1: Failure
29038 diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c
29039 index 5246193..c6bed42 100644
29040 --- a/arch/x86/kernel/vm86_32.c
29041 +++ b/arch/x86/kernel/vm86_32.c
29042 @@ -144,7 +144,7 @@ void save_v86_state(struct kernel_vm86_regs *regs, int retval)
29043 do_exit(SIGSEGV);
29044 }
29045
29046 - tss = &per_cpu(cpu_tss, get_cpu());
29047 + tss = cpu_tss + get_cpu();
29048 tsk->thread.sp0 = vm86->saved_sp0;
29049 tsk->thread.sysenter_cs = __KERNEL_CS;
29050 load_sp0(tss, &tsk->thread);
29051 @@ -259,6 +259,13 @@ static long do_sys_vm86(struct vm86plus_struct __user *user_vm86, bool plus)
29052 return -EPERM;
29053 }
29054
29055 +#ifdef CONFIG_GRKERNSEC_VM86
29056 + if (!capable(CAP_SYS_RAWIO)) {
29057 + gr_handle_vm86();
29058 + return -EPERM;
29059 + }
29060 +#endif
29061 +
29062 if (!vm86) {
29063 if (!(vm86 = kzalloc(sizeof(*vm86), GFP_KERNEL)))
29064 return -ENOMEM;
29065 @@ -354,7 +361,7 @@ static long do_sys_vm86(struct vm86plus_struct __user *user_vm86, bool plus)
29066 vm86->saved_sp0 = tsk->thread.sp0;
29067 lazy_save_gs(vm86->regs32.gs);
29068
29069 - tss = &per_cpu(cpu_tss, get_cpu());
29070 + tss = cpu_tss + get_cpu();
29071 /* make room for real-mode segments */
29072 tsk->thread.sp0 += 16;
29073 if (cpu_has_sep)
29074 @@ -535,7 +542,7 @@ static void do_int(struct kernel_vm86_regs *regs, int i,
29075 goto cannot_handle;
29076 if (i == 0x21 && is_revectored(AH(regs), &vm86->int21_revectored))
29077 goto cannot_handle;
29078 - intr_ptr = (unsigned long __user *) (i << 2);
29079 + intr_ptr = (unsigned long __force_user *) (i << 2);
29080 if (get_user(segoffs, intr_ptr))
29081 goto cannot_handle;
29082 if ((segoffs >> 16) == BIOSSEG)
29083 @@ -828,6 +835,14 @@ static inline int get_and_reset_irq(int irqnumber)
29084 static int do_vm86_irq_handling(int subfunction, int irqnumber)
29085 {
29086 int ret;
29087 +
29088 +#ifdef CONFIG_GRKERNSEC_VM86
29089 + if (!capable(CAP_SYS_RAWIO)) {
29090 + gr_handle_vm86();
29091 + return -EPERM;
29092 + }
29093 +#endif
29094 +
29095 switch (subfunction) {
29096 case VM86_GET_AND_RESET_IRQ: {
29097 return get_and_reset_irq(irqnumber);
29098 diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
29099 index 74e4bf1..a9a6168 100644
29100 --- a/arch/x86/kernel/vmlinux.lds.S
29101 +++ b/arch/x86/kernel/vmlinux.lds.S
29102 @@ -26,6 +26,13 @@
29103 #include <asm/page_types.h>
29104 #include <asm/cache.h>
29105 #include <asm/boot.h>
29106 +#include <asm/segment.h>
29107 +
29108 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
29109 +#define __KERNEL_TEXT_OFFSET (LOAD_OFFSET + ____LOAD_PHYSICAL_ADDR)
29110 +#else
29111 +#define __KERNEL_TEXT_OFFSET 0
29112 +#endif
29113
29114 #undef i386 /* in case the preprocessor is a 32bit one */
29115
29116 @@ -69,30 +76,43 @@ jiffies_64 = jiffies;
29117
29118 PHDRS {
29119 text PT_LOAD FLAGS(5); /* R_E */
29120 +#ifdef CONFIG_X86_32
29121 + module PT_LOAD FLAGS(5); /* R_E */
29122 +#endif
29123 +#ifdef CONFIG_XEN
29124 + rodata PT_LOAD FLAGS(5); /* R_E */
29125 +#else
29126 + rodata PT_LOAD FLAGS(4); /* R__ */
29127 +#endif
29128 data PT_LOAD FLAGS(6); /* RW_ */
29129 -#ifdef CONFIG_X86_64
29130 + init.begin PT_LOAD FLAGS(6); /* RW_ */
29131 #ifdef CONFIG_SMP
29132 percpu PT_LOAD FLAGS(6); /* RW_ */
29133 #endif
29134 - init PT_LOAD FLAGS(7); /* RWE */
29135 -#endif
29136 + text.init PT_LOAD FLAGS(5); /* R_E */
29137 + text.exit PT_LOAD FLAGS(5); /* R_E */
29138 + init PT_LOAD FLAGS(6); /* RW_ */
29139 note PT_NOTE FLAGS(0); /* ___ */
29140 }
29141
29142 SECTIONS
29143 {
29144 #ifdef CONFIG_X86_32
29145 - . = LOAD_OFFSET + LOAD_PHYSICAL_ADDR;
29146 - phys_startup_32 = startup_32 - LOAD_OFFSET;
29147 + . = LOAD_OFFSET + ____LOAD_PHYSICAL_ADDR;
29148 #else
29149 - . = __START_KERNEL;
29150 - phys_startup_64 = startup_64 - LOAD_OFFSET;
29151 + . = __START_KERNEL;
29152 #endif
29153
29154 /* Text and read-only data */
29155 - .text : AT(ADDR(.text) - LOAD_OFFSET) {
29156 - _text = .;
29157 + .text (. - __KERNEL_TEXT_OFFSET): AT(ADDR(.text) - LOAD_OFFSET + __KERNEL_TEXT_OFFSET) {
29158 /* bootstrapping code */
29159 +#ifdef CONFIG_X86_32
29160 + phys_startup_32 = startup_32 - LOAD_OFFSET + __KERNEL_TEXT_OFFSET;
29161 +#else
29162 + phys_startup_64 = startup_64 - LOAD_OFFSET + __KERNEL_TEXT_OFFSET;
29163 +#endif
29164 + __LOAD_PHYSICAL_ADDR = . - LOAD_OFFSET + __KERNEL_TEXT_OFFSET;
29165 + _text = .;
29166 HEAD_TEXT
29167 . = ALIGN(8);
29168 _stext = .;
29169 @@ -104,13 +124,47 @@ SECTIONS
29170 IRQENTRY_TEXT
29171 *(.fixup)
29172 *(.gnu.warning)
29173 - /* End of text section */
29174 - _etext = .;
29175 } :text = 0x9090
29176
29177 - NOTES :text :note
29178 + . += __KERNEL_TEXT_OFFSET;
29179
29180 - EXCEPTION_TABLE(16) :text = 0x9090
29181 +#ifdef CONFIG_X86_32
29182 + . = ALIGN(PAGE_SIZE);
29183 + .module.text : AT(ADDR(.module.text) - LOAD_OFFSET) {
29184 +
29185 +#ifdef CONFIG_PAX_KERNEXEC
29186 + MODULES_EXEC_VADDR = .;
29187 + BYTE(0)
29188 + . += (CONFIG_PAX_KERNEXEC_MODULE_TEXT * 1024 * 1024);
29189 + . = ALIGN(HPAGE_SIZE) - 1;
29190 + MODULES_EXEC_END = .;
29191 +#endif
29192 +
29193 + } :module
29194 +#endif
29195 +
29196 + .text.end : AT(ADDR(.text.end) - LOAD_OFFSET) {
29197 + /* End of text section */
29198 + BYTE(0)
29199 + _etext = . - __KERNEL_TEXT_OFFSET;
29200 + }
29201 +
29202 +#ifdef CONFIG_X86_32
29203 + . = ALIGN(PAGE_SIZE);
29204 + .rodata.page_aligned : AT(ADDR(.rodata.page_aligned) - LOAD_OFFSET) {
29205 + . = ALIGN(PAGE_SIZE);
29206 + *(.empty_zero_page)
29207 + *(.initial_pg_fixmap)
29208 + *(.initial_pg_pmd)
29209 + *(.initial_page_table)
29210 + *(.swapper_pg_dir)
29211 + } :rodata
29212 +#endif
29213 +
29214 + . = ALIGN(PAGE_SIZE);
29215 + NOTES :rodata :note
29216 +
29217 + EXCEPTION_TABLE(16) :rodata
29218
29219 #if defined(CONFIG_DEBUG_RODATA)
29220 /* .text should occupy whole number of pages */
29221 @@ -122,16 +176,20 @@ SECTIONS
29222
29223 /* Data */
29224 .data : AT(ADDR(.data) - LOAD_OFFSET) {
29225 +
29226 +#ifdef CONFIG_PAX_KERNEXEC
29227 + . = ALIGN(HPAGE_SIZE);
29228 +#else
29229 + . = ALIGN(PAGE_SIZE);
29230 +#endif
29231 +
29232 /* Start of data section */
29233 _sdata = .;
29234
29235 /* init_task */
29236 INIT_TASK_DATA(THREAD_SIZE)
29237
29238 -#ifdef CONFIG_X86_32
29239 - /* 32 bit has nosave before _edata */
29240 NOSAVE_DATA
29241 -#endif
29242
29243 PAGE_ALIGNED_DATA(PAGE_SIZE)
29244
29245 @@ -174,12 +232,19 @@ SECTIONS
29246 . = ALIGN(__vvar_page + PAGE_SIZE, PAGE_SIZE);
29247
29248 /* Init code and data - will be freed after init */
29249 - . = ALIGN(PAGE_SIZE);
29250 .init.begin : AT(ADDR(.init.begin) - LOAD_OFFSET) {
29251 + BYTE(0)
29252 +
29253 +#ifdef CONFIG_PAX_KERNEXEC
29254 + . = ALIGN(HPAGE_SIZE);
29255 +#else
29256 + . = ALIGN(PAGE_SIZE);
29257 +#endif
29258 +
29259 __init_begin = .; /* paired with __init_end */
29260 - }
29261 + } :init.begin
29262
29263 -#if defined(CONFIG_X86_64) && defined(CONFIG_SMP)
29264 +#ifdef CONFIG_SMP
29265 /*
29266 * percpu offsets are zero-based on SMP. PERCPU_VADDR() changes the
29267 * output PHDR, so the next output section - .init.text - should
29268 @@ -190,12 +255,33 @@ SECTIONS
29269 "per-CPU data too large - increase CONFIG_PHYSICAL_START")
29270 #endif
29271
29272 - INIT_TEXT_SECTION(PAGE_SIZE)
29273 -#ifdef CONFIG_X86_64
29274 - :init
29275 + . = ALIGN(PAGE_SIZE);
29276 + init_begin = .;
29277 + .init.text (. - __KERNEL_TEXT_OFFSET): AT(init_begin - LOAD_OFFSET) {
29278 + VMLINUX_SYMBOL(_sinittext) = .;
29279 + INIT_TEXT
29280 + . = ALIGN(PAGE_SIZE);
29281 + } :text.init
29282 +
29283 + /*
29284 + * .exit.text is discard at runtime, not link time, to deal with
29285 + * references from .altinstructions and .eh_frame
29286 + */
29287 + .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET + __KERNEL_TEXT_OFFSET) {
29288 + EXIT_TEXT
29289 + VMLINUX_SYMBOL(_einittext) = .;
29290 +
29291 +#ifdef CONFIG_PAX_KERNEXEC
29292 + . = ALIGN(HPAGE_SIZE);
29293 +#else
29294 + . = ALIGN(16);
29295 #endif
29296
29297 - INIT_DATA_SECTION(16)
29298 + } :text.exit
29299 + . = init_begin + SIZEOF(.init.text) + SIZEOF(.exit.text);
29300 +
29301 + . = ALIGN(PAGE_SIZE);
29302 + INIT_DATA_SECTION(16) :init
29303
29304 .x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) {
29305 __x86_cpu_dev_start = .;
29306 @@ -266,19 +352,12 @@ SECTIONS
29307 }
29308
29309 . = ALIGN(8);
29310 - /*
29311 - * .exit.text is discard at runtime, not link time, to deal with
29312 - * references from .altinstructions and .eh_frame
29313 - */
29314 - .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) {
29315 - EXIT_TEXT
29316 - }
29317
29318 .exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) {
29319 EXIT_DATA
29320 }
29321
29322 -#if !defined(CONFIG_X86_64) || !defined(CONFIG_SMP)
29323 +#ifndef CONFIG_SMP
29324 PERCPU_SECTION(INTERNODE_CACHE_BYTES)
29325 #endif
29326
29327 @@ -297,16 +376,10 @@ SECTIONS
29328 .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) {
29329 __smp_locks = .;
29330 *(.smp_locks)
29331 - . = ALIGN(PAGE_SIZE);
29332 __smp_locks_end = .;
29333 + . = ALIGN(PAGE_SIZE);
29334 }
29335
29336 -#ifdef CONFIG_X86_64
29337 - .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) {
29338 - NOSAVE_DATA
29339 - }
29340 -#endif
29341 -
29342 /* BSS */
29343 . = ALIGN(PAGE_SIZE);
29344 .bss : AT(ADDR(.bss) - LOAD_OFFSET) {
29345 @@ -322,6 +395,7 @@ SECTIONS
29346 __brk_base = .;
29347 . += 64 * 1024; /* 64k alignment slop space */
29348 *(.brk_reservation) /* areas brk users have reserved */
29349 + . = ALIGN(HPAGE_SIZE);
29350 __brk_limit = .;
29351 }
29352
29353 @@ -348,13 +422,12 @@ SECTIONS
29354 * for the boot processor.
29355 */
29356 #define INIT_PER_CPU(x) init_per_cpu__##x = x + __per_cpu_load
29357 -INIT_PER_CPU(gdt_page);
29358 INIT_PER_CPU(irq_stack_union);
29359
29360 /*
29361 * Build-time check on the image size:
29362 */
29363 -. = ASSERT((_end - _text <= KERNEL_IMAGE_SIZE),
29364 +. = ASSERT((_end - _text - __KERNEL_TEXT_OFFSET <= KERNEL_IMAGE_SIZE),
29365 "kernel image bigger than KERNEL_IMAGE_SIZE");
29366
29367 #ifdef CONFIG_SMP
29368 diff --git a/arch/x86/kernel/x8664_ksyms_64.c b/arch/x86/kernel/x8664_ksyms_64.c
29369 index a0695be..33e180c 100644
29370 --- a/arch/x86/kernel/x8664_ksyms_64.c
29371 +++ b/arch/x86/kernel/x8664_ksyms_64.c
29372 @@ -34,8 +34,6 @@ EXPORT_SYMBOL(copy_user_generic_string);
29373 EXPORT_SYMBOL(copy_user_generic_unrolled);
29374 EXPORT_SYMBOL(copy_user_enhanced_fast_string);
29375 EXPORT_SYMBOL(__copy_user_nocache);
29376 -EXPORT_SYMBOL(_copy_from_user);
29377 -EXPORT_SYMBOL(_copy_to_user);
29378
29379 EXPORT_SYMBOL(copy_page);
29380 EXPORT_SYMBOL(clear_page);
29381 @@ -77,3 +75,7 @@ EXPORT_SYMBOL(native_load_gs_index);
29382 EXPORT_SYMBOL(___preempt_schedule);
29383 EXPORT_SYMBOL(___preempt_schedule_notrace);
29384 #endif
29385 +
29386 +#ifdef CONFIG_PAX_PER_CPU_PGD
29387 +EXPORT_SYMBOL(cpu_pgd);
29388 +#endif
29389 diff --git a/arch/x86/kernel/x86_init.c b/arch/x86/kernel/x86_init.c
29390 index 3839628..2e5b5b35 100644
29391 --- a/arch/x86/kernel/x86_init.c
29392 +++ b/arch/x86/kernel/x86_init.c
29393 @@ -92,7 +92,7 @@ struct x86_cpuinit_ops x86_cpuinit = {
29394 static void default_nmi_init(void) { };
29395 static int default_i8042_detect(void) { return 1; };
29396
29397 -struct x86_platform_ops x86_platform = {
29398 +struct x86_platform_ops x86_platform __read_only = {
29399 .calibrate_tsc = native_calibrate_tsc,
29400 .get_wallclock = mach_get_cmos_time,
29401 .set_wallclock = mach_set_rtc_mmss,
29402 @@ -108,7 +108,7 @@ struct x86_platform_ops x86_platform = {
29403 EXPORT_SYMBOL_GPL(x86_platform);
29404
29405 #if defined(CONFIG_PCI_MSI)
29406 -struct x86_msi_ops x86_msi = {
29407 +struct x86_msi_ops x86_msi __read_only = {
29408 .setup_msi_irqs = native_setup_msi_irqs,
29409 .teardown_msi_irq = native_teardown_msi_irq,
29410 .teardown_msi_irqs = default_teardown_msi_irqs,
29411 @@ -137,7 +137,7 @@ void arch_restore_msi_irqs(struct pci_dev *dev)
29412 }
29413 #endif
29414
29415 -struct x86_io_apic_ops x86_io_apic_ops = {
29416 +struct x86_io_apic_ops x86_io_apic_ops __read_only = {
29417 .read = native_io_apic_read,
29418 .disable = native_disable_io_apic,
29419 };
29420 diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
29421 index 6525e92..28559d2 100644
29422 --- a/arch/x86/kvm/cpuid.c
29423 +++ b/arch/x86/kvm/cpuid.c
29424 @@ -206,15 +206,20 @@ int kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu,
29425 struct kvm_cpuid2 *cpuid,
29426 struct kvm_cpuid_entry2 __user *entries)
29427 {
29428 - int r;
29429 + int r, i;
29430
29431 r = -E2BIG;
29432 if (cpuid->nent > KVM_MAX_CPUID_ENTRIES)
29433 goto out;
29434 r = -EFAULT;
29435 - if (copy_from_user(&vcpu->arch.cpuid_entries, entries,
29436 - cpuid->nent * sizeof(struct kvm_cpuid_entry2)))
29437 + if (!access_ok(VERIFY_READ, entries, cpuid->nent * sizeof(struct kvm_cpuid_entry2)))
29438 goto out;
29439 + for (i = 0; i < cpuid->nent; ++i) {
29440 + struct kvm_cpuid_entry2 cpuid_entry;
29441 + if (__copy_from_user(&cpuid_entry, entries + i, sizeof(cpuid_entry)))
29442 + goto out;
29443 + vcpu->arch.cpuid_entries[i] = cpuid_entry;
29444 + }
29445 vcpu->arch.cpuid_nent = cpuid->nent;
29446 kvm_apic_set_version(vcpu);
29447 kvm_x86_ops->cpuid_update(vcpu);
29448 @@ -227,15 +232,19 @@ int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu,
29449 struct kvm_cpuid2 *cpuid,
29450 struct kvm_cpuid_entry2 __user *entries)
29451 {
29452 - int r;
29453 + int r, i;
29454
29455 r = -E2BIG;
29456 if (cpuid->nent < vcpu->arch.cpuid_nent)
29457 goto out;
29458 r = -EFAULT;
29459 - if (copy_to_user(entries, &vcpu->arch.cpuid_entries,
29460 - vcpu->arch.cpuid_nent * sizeof(struct kvm_cpuid_entry2)))
29461 + if (!access_ok(VERIFY_WRITE, entries, vcpu->arch.cpuid_nent * sizeof(struct kvm_cpuid_entry2)))
29462 goto out;
29463 + for (i = 0; i < vcpu->arch.cpuid_nent; ++i) {
29464 + struct kvm_cpuid_entry2 cpuid_entry = vcpu->arch.cpuid_entries[i];
29465 + if (__copy_to_user(entries + i, &cpuid_entry, sizeof(cpuid_entry)))
29466 + goto out;
29467 + }
29468 return 0;
29469
29470 out:
29471 diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
29472 index b9b09fe..138addd 100644
29473 --- a/arch/x86/kvm/emulate.c
29474 +++ b/arch/x86/kvm/emulate.c
29475 @@ -1881,7 +1881,7 @@ static int em_push_sreg(struct x86_emulate_ctxt *ctxt)
29476 static int em_pop_sreg(struct x86_emulate_ctxt *ctxt)
29477 {
29478 int seg = ctxt->src2.val;
29479 - unsigned long selector;
29480 + u16 selector;
29481 int rc;
29482
29483 rc = emulate_pop(ctxt, &selector, 2);
29484 @@ -1893,7 +1893,7 @@ static int em_pop_sreg(struct x86_emulate_ctxt *ctxt)
29485 if (ctxt->op_bytes > 2)
29486 rsp_increment(ctxt, ctxt->op_bytes - 2);
29487
29488 - rc = load_segment_descriptor(ctxt, (u16)selector, seg);
29489 + rc = load_segment_descriptor(ctxt, selector, seg);
29490 return rc;
29491 }
29492
29493 @@ -3870,7 +3870,7 @@ static int check_cr_write(struct x86_emulate_ctxt *ctxt)
29494 int cr = ctxt->modrm_reg;
29495 u64 efer = 0;
29496
29497 - static u64 cr_reserved_bits[] = {
29498 + static const u64 cr_reserved_bits[] = {
29499 0xffffffff00000000ULL,
29500 0, 0, 0, /* CR3 checked later */
29501 CR4_RESERVED_BITS,
29502 diff --git a/arch/x86/kvm/i8259.c b/arch/x86/kvm/i8259.c
29503 index 7cc2360..6ae1236 100644
29504 --- a/arch/x86/kvm/i8259.c
29505 +++ b/arch/x86/kvm/i8259.c
29506 @@ -39,14 +39,14 @@
29507
29508 static void pic_irq_request(struct kvm *kvm, int level);
29509
29510 +static void pic_lock(struct kvm_pic *s) __acquires(&s->lock);
29511 static void pic_lock(struct kvm_pic *s)
29512 - __acquires(&s->lock)
29513 {
29514 spin_lock(&s->lock);
29515 }
29516
29517 +static void pic_unlock(struct kvm_pic *s) __releases(&s->lock);
29518 static void pic_unlock(struct kvm_pic *s)
29519 - __releases(&s->lock)
29520 {
29521 bool wakeup = s->wakeup_needed;
29522 struct kvm_vcpu *vcpu, *found = NULL;
29523 @@ -72,6 +72,7 @@ static void pic_unlock(struct kvm_pic *s)
29524 }
29525 }
29526
29527 +static void pic_clear_isr(struct kvm_kpic_state *s, int irq) __must_hold(s->pics_state);
29528 static void pic_clear_isr(struct kvm_kpic_state *s, int irq)
29529 {
29530 s->isr &= ~(1 << irq);
29531 @@ -219,6 +220,7 @@ void kvm_pic_clear_all(struct kvm_pic *s, int irq_source_id)
29532 /*
29533 * acknowledge interrupt 'irq'
29534 */
29535 +static inline void pic_intack(struct kvm_kpic_state *s, int irq) __must_hold(s);
29536 static inline void pic_intack(struct kvm_kpic_state *s, int irq)
29537 {
29538 s->isr |= 1 << irq;
29539 @@ -273,6 +275,7 @@ int kvm_pic_read_irq(struct kvm *kvm)
29540 return intno;
29541 }
29542
29543 +void kvm_pic_reset(struct kvm_kpic_state *s) __must_hold(s);
29544 void kvm_pic_reset(struct kvm_kpic_state *s)
29545 {
29546 int irq, i;
29547 @@ -307,6 +310,7 @@ void kvm_pic_reset(struct kvm_kpic_state *s)
29548 pic_clear_isr(s, irq);
29549 }
29550
29551 +static void pic_ioport_write(void *opaque, u32 addr, u32 val) __must_hold(opaque);
29552 static void pic_ioport_write(void *opaque, u32 addr, u32 val)
29553 {
29554 struct kvm_kpic_state *s = opaque;
29555 @@ -400,6 +404,7 @@ static void pic_ioport_write(void *opaque, u32 addr, u32 val)
29556 }
29557 }
29558
29559 +static u32 pic_poll_read(struct kvm_kpic_state *s, u32 addr1) __must_hold(s);
29560 static u32 pic_poll_read(struct kvm_kpic_state *s, u32 addr1)
29561 {
29562 int ret;
29563 @@ -422,6 +427,7 @@ static u32 pic_poll_read(struct kvm_kpic_state *s, u32 addr1)
29564 return ret;
29565 }
29566
29567 +static u32 pic_ioport_read(void *opaque, u32 addr1) __must_hold(opaque);
29568 static u32 pic_ioport_read(void *opaque, u32 addr1)
29569 {
29570 struct kvm_kpic_state *s = opaque;
29571 diff --git a/arch/x86/kvm/ioapic.c b/arch/x86/kvm/ioapic.c
29572 index 88d0a92..fa8b52a 100644
29573 --- a/arch/x86/kvm/ioapic.c
29574 +++ b/arch/x86/kvm/ioapic.c
29575 @@ -405,6 +405,8 @@ static void kvm_ioapic_eoi_inject_work(struct work_struct *work)
29576 #define IOAPIC_SUCCESSIVE_IRQ_MAX_COUNT 10000
29577
29578 static void __kvm_ioapic_update_eoi(struct kvm_vcpu *vcpu,
29579 + struct kvm_ioapic *ioapic, int vector, int trigger_mode) __must_hold(&ioapic->lock);
29580 +static void __kvm_ioapic_update_eoi(struct kvm_vcpu *vcpu,
29581 struct kvm_ioapic *ioapic, int vector, int trigger_mode)
29582 {
29583 int i;
29584 diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
29585 index 4d30b86..94115f0 100644
29586 --- a/arch/x86/kvm/lapic.c
29587 +++ b/arch/x86/kvm/lapic.c
29588 @@ -56,7 +56,7 @@
29589 #define APIC_BUS_CYCLE_NS 1
29590
29591 /* #define apic_debug(fmt,arg...) printk(KERN_WARNING fmt,##arg) */
29592 -#define apic_debug(fmt, arg...)
29593 +#define apic_debug(fmt, arg...) do {} while (0)
29594
29595 #define APIC_LVT_NUM 6
29596 /* 14 is the version for Xeon and Pentium 8.4.8*/
29597 diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h
29598 index 7be8a25..7d71250 100644
29599 --- a/arch/x86/kvm/paging_tmpl.h
29600 +++ b/arch/x86/kvm/paging_tmpl.h
29601 @@ -335,7 +335,7 @@ retry_walk:
29602 if (unlikely(kvm_is_error_hva(host_addr)))
29603 goto error;
29604
29605 - ptep_user = (pt_element_t __user *)((void *)host_addr + offset);
29606 + ptep_user = (pt_element_t __force_user *)((void *)host_addr + offset);
29607 if (unlikely(__copy_from_user(&pte, ptep_user, sizeof(pte))))
29608 goto error;
29609 walker->ptep_user[walker->level - 1] = ptep_user;
29610 diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
29611 index 899c40f..a114588 100644
29612 --- a/arch/x86/kvm/svm.c
29613 +++ b/arch/x86/kvm/svm.c
29614 @@ -3490,7 +3490,11 @@ static void reload_tss(struct kvm_vcpu *vcpu)
29615 int cpu = raw_smp_processor_id();
29616
29617 struct svm_cpu_data *sd = per_cpu(svm_data, cpu);
29618 +
29619 + pax_open_kernel();
29620 sd->tss_desc->type = 9; /* available 32/64-bit TSS */
29621 + pax_close_kernel();
29622 +
29623 load_TR_desc();
29624 }
29625
29626 @@ -3885,6 +3889,10 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
29627 #endif
29628 #endif
29629
29630 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
29631 + __set_fs(current_thread_info()->addr_limit);
29632 +#endif
29633 +
29634 reload_tss(vcpu);
29635
29636 local_irq_disable();
29637 @@ -4260,7 +4268,7 @@ static void svm_sched_in(struct kvm_vcpu *vcpu, int cpu)
29638 {
29639 }
29640
29641 -static struct kvm_x86_ops svm_x86_ops = {
29642 +static struct kvm_x86_ops svm_x86_ops __read_only = {
29643 .cpu_has_kvm_support = has_svm,
29644 .disabled_by_bios = is_disabled,
29645 .hardware_setup = svm_hardware_setup,
29646 diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
29647 index 5fd846c..cdf2fca 100644
29648 --- a/arch/x86/kvm/vmx.c
29649 +++ b/arch/x86/kvm/vmx.c
29650 @@ -1514,12 +1514,12 @@ static void vmcs_write64(unsigned long field, u64 value)
29651 #endif
29652 }
29653
29654 -static void vmcs_clear_bits(unsigned long field, u32 mask)
29655 +static void vmcs_clear_bits(unsigned long field, unsigned long mask)
29656 {
29657 vmcs_writel(field, vmcs_readl(field) & ~mask);
29658 }
29659
29660 -static void vmcs_set_bits(unsigned long field, u32 mask)
29661 +static void vmcs_set_bits(unsigned long field, unsigned long mask)
29662 {
29663 vmcs_writel(field, vmcs_readl(field) | mask);
29664 }
29665 @@ -1779,7 +1779,11 @@ static void reload_tss(void)
29666 struct desc_struct *descs;
29667
29668 descs = (void *)gdt->address;
29669 +
29670 + pax_open_kernel();
29671 descs[GDT_ENTRY_TSS].type = 9; /* available TSS */
29672 + pax_close_kernel();
29673 +
29674 load_TR_desc();
29675 }
29676
29677 @@ -2061,6 +2065,10 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
29678 vmcs_writel(HOST_TR_BASE, kvm_read_tr_base()); /* 22.2.4 */
29679 vmcs_writel(HOST_GDTR_BASE, gdt->address); /* 22.2.4 */
29680
29681 +#ifdef CONFIG_PAX_PER_CPU_PGD
29682 + vmcs_writel(HOST_CR3, read_cr3()); /* 22.2.3 FIXME: shadow tables */
29683 +#endif
29684 +
29685 rdmsrl(MSR_IA32_SYSENTER_ESP, sysenter_esp);
29686 vmcs_writel(HOST_IA32_SYSENTER_ESP, sysenter_esp); /* 22.2.3 */
29687
29688 @@ -2378,7 +2386,7 @@ static void setup_msrs(struct vcpu_vmx *vmx)
29689 * guest_tsc = (host_tsc * tsc multiplier) >> 48 + tsc_offset
29690 * -- Intel TSC Scaling for Virtualization White Paper, sec 1.3
29691 */
29692 -static u64 guest_read_tsc(struct kvm_vcpu *vcpu)
29693 +static u64 __intentional_overflow(-1) guest_read_tsc(struct kvm_vcpu *vcpu)
29694 {
29695 u64 host_tsc, tsc_offset;
29696
29697 @@ -4609,7 +4617,10 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
29698 unsigned long cr4;
29699
29700 vmcs_writel(HOST_CR0, read_cr0() & ~X86_CR0_TS); /* 22.2.3 */
29701 +
29702 +#ifndef CONFIG_PAX_PER_CPU_PGD
29703 vmcs_writel(HOST_CR3, read_cr3()); /* 22.2.3 FIXME: shadow tables */
29704 +#endif
29705
29706 /* Save the most likely value for this task's CR4 in the VMCS. */
29707 cr4 = cr4_read_shadow();
29708 @@ -4636,7 +4647,7 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
29709 vmcs_writel(HOST_IDTR_BASE, dt.address); /* 22.2.4 */
29710 vmx->host_idt_base = dt.address;
29711
29712 - vmcs_writel(HOST_RIP, vmx_return); /* 22.2.5 */
29713 + vmcs_writel(HOST_RIP, ktla_ktva(vmx_return)); /* 22.2.5 */
29714
29715 rdmsr(MSR_IA32_SYSENTER_CS, low32, high32);
29716 vmcs_write32(HOST_IA32_SYSENTER_CS, low32);
29717 @@ -6186,11 +6197,17 @@ static __init int hardware_setup(void)
29718 * page upon invalidation. No need to do anything if not
29719 * using the APIC_ACCESS_ADDR VMCS field.
29720 */
29721 - if (!flexpriority_enabled)
29722 + if (!flexpriority_enabled) {
29723 + pax_open_kernel();
29724 kvm_x86_ops->set_apic_access_page_addr = NULL;
29725 + pax_close_kernel();
29726 + }
29727
29728 - if (!cpu_has_vmx_tpr_shadow())
29729 + if (!cpu_has_vmx_tpr_shadow()) {
29730 + pax_open_kernel();
29731 kvm_x86_ops->update_cr8_intercept = NULL;
29732 + pax_close_kernel();
29733 + }
29734
29735 if (enable_ept && !cpu_has_vmx_ept_2m_page())
29736 kvm_disable_largepages();
29737 @@ -6207,6 +6224,7 @@ static __init int hardware_setup(void)
29738 kvm_tsc_scaling_ratio_frac_bits = 48;
29739 }
29740
29741 + pax_open_kernel();
29742 if (enable_apicv)
29743 kvm_x86_ops->update_cr8_intercept = NULL;
29744 else {
29745 @@ -6215,6 +6233,7 @@ static __init int hardware_setup(void)
29746 kvm_x86_ops->deliver_posted_interrupt = NULL;
29747 kvm_x86_ops->sync_pir_to_irr = vmx_sync_pir_to_irr_dummy;
29748 }
29749 + pax_close_kernel();
29750
29751 vmx_disable_intercept_for_msr(MSR_FS_BASE, false);
29752 vmx_disable_intercept_for_msr(MSR_GS_BASE, false);
29753 @@ -6269,10 +6288,12 @@ static __init int hardware_setup(void)
29754 enable_pml = 0;
29755
29756 if (!enable_pml) {
29757 + pax_open_kernel();
29758 kvm_x86_ops->slot_enable_log_dirty = NULL;
29759 kvm_x86_ops->slot_disable_log_dirty = NULL;
29760 kvm_x86_ops->flush_log_dirty = NULL;
29761 kvm_x86_ops->enable_log_dirty_pt_masked = NULL;
29762 + pax_close_kernel();
29763 }
29764
29765 kvm_set_posted_intr_wakeup_handler(wakeup_handler);
29766 @@ -8584,6 +8605,12 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
29767 "jmp 2f \n\t"
29768 "1: " __ex(ASM_VMX_VMRESUME) "\n\t"
29769 "2: "
29770 +
29771 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
29772 + "ljmp %[cs],$3f\n\t"
29773 + "3: "
29774 +#endif
29775 +
29776 /* Save guest registers, load host registers, keep flags */
29777 "mov %0, %c[wordsize](%%" _ASM_SP ") \n\t"
29778 "pop %0 \n\t"
29779 @@ -8636,6 +8663,11 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
29780 #endif
29781 [cr2]"i"(offsetof(struct vcpu_vmx, vcpu.arch.cr2)),
29782 [wordsize]"i"(sizeof(ulong))
29783 +
29784 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
29785 + ,[cs]"i"(__KERNEL_CS)
29786 +#endif
29787 +
29788 : "cc", "memory"
29789 #ifdef CONFIG_X86_64
29790 , "rax", "rbx", "rdi", "rsi"
29791 @@ -8649,7 +8681,7 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
29792 if (debugctlmsr)
29793 update_debugctlmsr(debugctlmsr);
29794
29795 -#ifndef CONFIG_X86_64
29796 +#ifdef CONFIG_X86_32
29797 /*
29798 * The sysexit path does not restore ds/es, so we must set them to
29799 * a reasonable value ourselves.
29800 @@ -8658,8 +8690,18 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
29801 * may be executed in interrupt context, which saves and restore segments
29802 * around it, nullifying its effect.
29803 */
29804 - loadsegment(ds, __USER_DS);
29805 - loadsegment(es, __USER_DS);
29806 + loadsegment(ds, __KERNEL_DS);
29807 + loadsegment(es, __KERNEL_DS);
29808 + loadsegment(ss, __KERNEL_DS);
29809 +
29810 +#ifdef CONFIG_PAX_KERNEXEC
29811 + loadsegment(fs, __KERNEL_PERCPU);
29812 +#endif
29813 +
29814 +#ifdef CONFIG_PAX_MEMORY_UDEREF
29815 + __set_fs(current_thread_info()->addr_limit);
29816 +#endif
29817 +
29818 #endif
29819
29820 vcpu->arch.regs_avail = ~((1 << VCPU_REGS_RIP) | (1 << VCPU_REGS_RSP)
29821 @@ -10741,7 +10783,7 @@ out:
29822 return ret;
29823 }
29824
29825 -static struct kvm_x86_ops vmx_x86_ops = {
29826 +static struct kvm_x86_ops vmx_x86_ops __read_only = {
29827 .cpu_has_kvm_support = cpu_has_kvm_support,
29828 .disabled_by_bios = vmx_disabled_by_bios,
29829 .hardware_setup = hardware_setup,
29830 diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
29831 index d294502..af80bcb 100644
29832 --- a/arch/x86/kvm/x86.c
29833 +++ b/arch/x86/kvm/x86.c
29834 @@ -1937,8 +1937,8 @@ static int xen_hvm_config(struct kvm_vcpu *vcpu, u64 data)
29835 {
29836 struct kvm *kvm = vcpu->kvm;
29837 int lm = is_long_mode(vcpu);
29838 - u8 *blob_addr = lm ? (u8 *)(long)kvm->arch.xen_hvm_config.blob_addr_64
29839 - : (u8 *)(long)kvm->arch.xen_hvm_config.blob_addr_32;
29840 + u8 __user *blob_addr = lm ? (u8 __user *)(long)kvm->arch.xen_hvm_config.blob_addr_64
29841 + : (u8 __user *)(long)kvm->arch.xen_hvm_config.blob_addr_32;
29842 u8 blob_size = lm ? kvm->arch.xen_hvm_config.blob_size_64
29843 : kvm->arch.xen_hvm_config.blob_size_32;
29844 u32 page_num = data & ~PAGE_MASK;
29845 @@ -2636,6 +2636,8 @@ long kvm_arch_dev_ioctl(struct file *filp,
29846 if (n < msr_list.nmsrs)
29847 goto out;
29848 r = -EFAULT;
29849 + if (num_msrs_to_save > ARRAY_SIZE(msrs_to_save))
29850 + goto out;
29851 if (copy_to_user(user_msr_list->indices, &msrs_to_save,
29852 num_msrs_to_save * sizeof(u32)))
29853 goto out;
29854 @@ -3028,7 +3030,7 @@ static int kvm_vcpu_ioctl_x86_set_debugregs(struct kvm_vcpu *vcpu,
29855
29856 static void fill_xsave(u8 *dest, struct kvm_vcpu *vcpu)
29857 {
29858 - struct xregs_state *xsave = &vcpu->arch.guest_fpu.state.xsave;
29859 + struct xregs_state *xsave = &vcpu->arch.guest_fpu.state->xsave;
29860 u64 xstate_bv = xsave->header.xfeatures;
29861 u64 valid;
29862
29863 @@ -3064,7 +3066,7 @@ static void fill_xsave(u8 *dest, struct kvm_vcpu *vcpu)
29864
29865 static void load_xsave(struct kvm_vcpu *vcpu, u8 *src)
29866 {
29867 - struct xregs_state *xsave = &vcpu->arch.guest_fpu.state.xsave;
29868 + struct xregs_state *xsave = &vcpu->arch.guest_fpu.state->xsave;
29869 u64 xstate_bv = *(u64 *)(src + XSAVE_HDR_OFFSET);
29870 u64 valid;
29871
29872 @@ -3108,7 +3110,7 @@ static void kvm_vcpu_ioctl_x86_get_xsave(struct kvm_vcpu *vcpu,
29873 fill_xsave((u8 *) guest_xsave->region, vcpu);
29874 } else {
29875 memcpy(guest_xsave->region,
29876 - &vcpu->arch.guest_fpu.state.fxsave,
29877 + &vcpu->arch.guest_fpu.state->fxsave,
29878 sizeof(struct fxregs_state));
29879 *(u64 *)&guest_xsave->region[XSAVE_HDR_OFFSET / sizeof(u32)] =
29880 XFEATURE_MASK_FPSSE;
29881 @@ -3133,7 +3135,7 @@ static int kvm_vcpu_ioctl_x86_set_xsave(struct kvm_vcpu *vcpu,
29882 } else {
29883 if (xstate_bv & ~XFEATURE_MASK_FPSSE)
29884 return -EINVAL;
29885 - memcpy(&vcpu->arch.guest_fpu.state.fxsave,
29886 + memcpy(&vcpu->arch.guest_fpu.state->fxsave,
29887 guest_xsave->region, sizeof(struct fxregs_state));
29888 }
29889 return 0;
29890 @@ -6363,6 +6365,7 @@ void kvm_arch_mmu_notifier_invalidate_page(struct kvm *kvm,
29891 * exiting to the userspace. Otherwise, the value will be returned to the
29892 * userspace.
29893 */
29894 +static int vcpu_enter_guest(struct kvm_vcpu *vcpu) __must_hold(&vcpu->kvm->srcu);
29895 static int vcpu_enter_guest(struct kvm_vcpu *vcpu)
29896 {
29897 int r;
29898 @@ -6611,6 +6614,7 @@ out:
29899 return r;
29900 }
29901
29902 +static inline int vcpu_block(struct kvm *kvm, struct kvm_vcpu *vcpu) __must_hold(&kvm->srcu);
29903 static inline int vcpu_block(struct kvm *kvm, struct kvm_vcpu *vcpu)
29904 {
29905 if (!kvm_arch_vcpu_runnable(vcpu) &&
29906 @@ -7158,7 +7162,7 @@ int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu,
29907 int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
29908 {
29909 struct fxregs_state *fxsave =
29910 - &vcpu->arch.guest_fpu.state.fxsave;
29911 + &vcpu->arch.guest_fpu.state->fxsave;
29912
29913 memcpy(fpu->fpr, fxsave->st_space, 128);
29914 fpu->fcw = fxsave->cwd;
29915 @@ -7175,7 +7179,7 @@ int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
29916 int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
29917 {
29918 struct fxregs_state *fxsave =
29919 - &vcpu->arch.guest_fpu.state.fxsave;
29920 + &vcpu->arch.guest_fpu.state->fxsave;
29921
29922 memcpy(fxsave->st_space, fpu->fpr, 128);
29923 fxsave->cwd = fpu->fcw;
29924 @@ -7191,9 +7195,9 @@ int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
29925
29926 static void fx_init(struct kvm_vcpu *vcpu)
29927 {
29928 - fpstate_init(&vcpu->arch.guest_fpu.state);
29929 + fpstate_init(vcpu->arch.guest_fpu.state);
29930 if (cpu_has_xsaves)
29931 - vcpu->arch.guest_fpu.state.xsave.header.xcomp_bv =
29932 + vcpu->arch.guest_fpu.state->xsave.header.xcomp_bv =
29933 host_xcr0 | XSTATE_COMPACTION_ENABLED;
29934
29935 /*
29936 @@ -7217,7 +7221,7 @@ void kvm_load_guest_fpu(struct kvm_vcpu *vcpu)
29937 kvm_put_guest_xcr0(vcpu);
29938 vcpu->guest_fpu_loaded = 1;
29939 __kernel_fpu_begin();
29940 - __copy_kernel_to_fpregs(&vcpu->arch.guest_fpu.state);
29941 + __copy_kernel_to_fpregs(vcpu->arch.guest_fpu.state);
29942 trace_kvm_fpu(1);
29943 }
29944
29945 @@ -7520,6 +7524,8 @@ bool kvm_vcpu_compatible(struct kvm_vcpu *vcpu)
29946
29947 struct static_key kvm_no_apic_vcpu __read_mostly;
29948
29949 +extern struct kmem_cache *fpregs_state_cachep;
29950 +
29951 int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
29952 {
29953 struct page *page;
29954 @@ -7536,11 +7542,14 @@ int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
29955 else
29956 vcpu->arch.mp_state = KVM_MP_STATE_UNINITIALIZED;
29957
29958 - page = alloc_page(GFP_KERNEL | __GFP_ZERO);
29959 - if (!page) {
29960 - r = -ENOMEM;
29961 + r = -ENOMEM;
29962 + vcpu->arch.guest_fpu.state = kmem_cache_alloc(fpregs_state_cachep, GFP_KERNEL);
29963 + if (!vcpu->arch.guest_fpu.state)
29964 goto fail;
29965 - }
29966 +
29967 + page = alloc_page(GFP_KERNEL | __GFP_ZERO);
29968 + if (!page)
29969 + goto fail_free_fpregs;
29970 vcpu->arch.pio_data = page_address(page);
29971
29972 kvm_set_tsc_khz(vcpu, max_tsc_khz);
29973 @@ -7596,6 +7605,9 @@ fail_mmu_destroy:
29974 kvm_mmu_destroy(vcpu);
29975 fail_free_pio_data:
29976 free_page((unsigned long)vcpu->arch.pio_data);
29977 +fail_free_fpregs:
29978 + kmem_cache_free(fpregs_state_cachep, vcpu->arch.guest_fpu.state);
29979 + vcpu->arch.guest_fpu.state = NULL;
29980 fail:
29981 return r;
29982 }
29983 @@ -7613,6 +7625,8 @@ void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu)
29984 free_page((unsigned long)vcpu->arch.pio_data);
29985 if (!lapic_in_kernel(vcpu))
29986 static_key_slow_dec(&kvm_no_apic_vcpu);
29987 + kmem_cache_free(fpregs_state_cachep, vcpu->arch.guest_fpu.state);
29988 + vcpu->arch.guest_fpu.state = NULL;
29989 }
29990
29991 void kvm_arch_sched_in(struct kvm_vcpu *vcpu, int cpu)
29992 diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
29993 index a43b2ea..e64e453 100644
29994 --- a/arch/x86/lguest/boot.c
29995 +++ b/arch/x86/lguest/boot.c
29996 @@ -1336,9 +1336,10 @@ static __init int early_put_chars(u32 vtermno, const char *buf, int count)
29997 * Rebooting also tells the Host we're finished, but the RESTART flag tells the
29998 * Launcher to reboot us.
29999 */
30000 -static void lguest_restart(char *reason)
30001 +static __noreturn void lguest_restart(char *reason)
30002 {
30003 hcall(LHCALL_SHUTDOWN, __pa(reason), LGUEST_SHUTDOWN_RESTART, 0, 0);
30004 + BUG();
30005 }
30006
30007 /*G:050
30008 diff --git a/arch/x86/lib/atomic64_386_32.S b/arch/x86/lib/atomic64_386_32.S
30009 index 9b0ca8f..bb4af41 100644
30010 --- a/arch/x86/lib/atomic64_386_32.S
30011 +++ b/arch/x86/lib/atomic64_386_32.S
30012 @@ -45,6 +45,10 @@ BEGIN(read)
30013 movl (v), %eax
30014 movl 4(v), %edx
30015 RET_ENDP
30016 +BEGIN(read_unchecked)
30017 + movl (v), %eax
30018 + movl 4(v), %edx
30019 +RET_ENDP
30020 #undef v
30021
30022 #define v %esi
30023 @@ -52,6 +56,10 @@ BEGIN(set)
30024 movl %ebx, (v)
30025 movl %ecx, 4(v)
30026 RET_ENDP
30027 +BEGIN(set_unchecked)
30028 + movl %ebx, (v)
30029 + movl %ecx, 4(v)
30030 +RET_ENDP
30031 #undef v
30032
30033 #define v %esi
30034 @@ -67,6 +75,20 @@ RET_ENDP
30035 BEGIN(add)
30036 addl %eax, (v)
30037 adcl %edx, 4(v)
30038 +
30039 +#ifdef CONFIG_PAX_REFCOUNT
30040 + jno 0f
30041 + subl %eax, (v)
30042 + sbbl %edx, 4(v)
30043 + int $4
30044 +0:
30045 + _ASM_EXTABLE(0b, 0b)
30046 +#endif
30047 +
30048 +RET_ENDP
30049 +BEGIN(add_unchecked)
30050 + addl %eax, (v)
30051 + adcl %edx, 4(v)
30052 RET_ENDP
30053 #undef v
30054
30055 @@ -74,6 +96,24 @@ RET_ENDP
30056 BEGIN(add_return)
30057 addl (v), %eax
30058 adcl 4(v), %edx
30059 +
30060 +#ifdef CONFIG_PAX_REFCOUNT
30061 + into
30062 +1234:
30063 + _ASM_EXTABLE(1234b, 2f)
30064 +#endif
30065 +
30066 + movl %eax, (v)
30067 + movl %edx, 4(v)
30068 +
30069 +#ifdef CONFIG_PAX_REFCOUNT
30070 +2:
30071 +#endif
30072 +
30073 +RET_ENDP
30074 +BEGIN(add_return_unchecked)
30075 + addl (v), %eax
30076 + adcl 4(v), %edx
30077 movl %eax, (v)
30078 movl %edx, 4(v)
30079 RET_ENDP
30080 @@ -83,6 +123,20 @@ RET_ENDP
30081 BEGIN(sub)
30082 subl %eax, (v)
30083 sbbl %edx, 4(v)
30084 +
30085 +#ifdef CONFIG_PAX_REFCOUNT
30086 + jno 0f
30087 + addl %eax, (v)
30088 + adcl %edx, 4(v)
30089 + int $4
30090 +0:
30091 + _ASM_EXTABLE(0b, 0b)
30092 +#endif
30093 +
30094 +RET_ENDP
30095 +BEGIN(sub_unchecked)
30096 + subl %eax, (v)
30097 + sbbl %edx, 4(v)
30098 RET_ENDP
30099 #undef v
30100
30101 @@ -93,6 +147,27 @@ BEGIN(sub_return)
30102 sbbl $0, %edx
30103 addl (v), %eax
30104 adcl 4(v), %edx
30105 +
30106 +#ifdef CONFIG_PAX_REFCOUNT
30107 + into
30108 +1234:
30109 + _ASM_EXTABLE(1234b, 2f)
30110 +#endif
30111 +
30112 + movl %eax, (v)
30113 + movl %edx, 4(v)
30114 +
30115 +#ifdef CONFIG_PAX_REFCOUNT
30116 +2:
30117 +#endif
30118 +
30119 +RET_ENDP
30120 +BEGIN(sub_return_unchecked)
30121 + negl %edx
30122 + negl %eax
30123 + sbbl $0, %edx
30124 + addl (v), %eax
30125 + adcl 4(v), %edx
30126 movl %eax, (v)
30127 movl %edx, 4(v)
30128 RET_ENDP
30129 @@ -102,6 +177,20 @@ RET_ENDP
30130 BEGIN(inc)
30131 addl $1, (v)
30132 adcl $0, 4(v)
30133 +
30134 +#ifdef CONFIG_PAX_REFCOUNT
30135 + jno 0f
30136 + subl $1, (v)
30137 + sbbl $0, 4(v)
30138 + int $4
30139 +0:
30140 + _ASM_EXTABLE(0b, 0b)
30141 +#endif
30142 +
30143 +RET_ENDP
30144 +BEGIN(inc_unchecked)
30145 + addl $1, (v)
30146 + adcl $0, 4(v)
30147 RET_ENDP
30148 #undef v
30149
30150 @@ -111,6 +200,26 @@ BEGIN(inc_return)
30151 movl 4(v), %edx
30152 addl $1, %eax
30153 adcl $0, %edx
30154 +
30155 +#ifdef CONFIG_PAX_REFCOUNT
30156 + into
30157 +1234:
30158 + _ASM_EXTABLE(1234b, 2f)
30159 +#endif
30160 +
30161 + movl %eax, (v)
30162 + movl %edx, 4(v)
30163 +
30164 +#ifdef CONFIG_PAX_REFCOUNT
30165 +2:
30166 +#endif
30167 +
30168 +RET_ENDP
30169 +BEGIN(inc_return_unchecked)
30170 + movl (v), %eax
30171 + movl 4(v), %edx
30172 + addl $1, %eax
30173 + adcl $0, %edx
30174 movl %eax, (v)
30175 movl %edx, 4(v)
30176 RET_ENDP
30177 @@ -120,6 +229,20 @@ RET_ENDP
30178 BEGIN(dec)
30179 subl $1, (v)
30180 sbbl $0, 4(v)
30181 +
30182 +#ifdef CONFIG_PAX_REFCOUNT
30183 + jno 0f
30184 + addl $1, (v)
30185 + adcl $0, 4(v)
30186 + int $4
30187 +0:
30188 + _ASM_EXTABLE(0b, 0b)
30189 +#endif
30190 +
30191 +RET_ENDP
30192 +BEGIN(dec_unchecked)
30193 + subl $1, (v)
30194 + sbbl $0, 4(v)
30195 RET_ENDP
30196 #undef v
30197
30198 @@ -129,6 +252,26 @@ BEGIN(dec_return)
30199 movl 4(v), %edx
30200 subl $1, %eax
30201 sbbl $0, %edx
30202 +
30203 +#ifdef CONFIG_PAX_REFCOUNT
30204 + into
30205 +1234:
30206 + _ASM_EXTABLE(1234b, 2f)
30207 +#endif
30208 +
30209 + movl %eax, (v)
30210 + movl %edx, 4(v)
30211 +
30212 +#ifdef CONFIG_PAX_REFCOUNT
30213 +2:
30214 +#endif
30215 +
30216 +RET_ENDP
30217 +BEGIN(dec_return_unchecked)
30218 + movl (v), %eax
30219 + movl 4(v), %edx
30220 + subl $1, %eax
30221 + sbbl $0, %edx
30222 movl %eax, (v)
30223 movl %edx, 4(v)
30224 RET_ENDP
30225 @@ -140,6 +283,13 @@ BEGIN(add_unless)
30226 adcl %edx, %edi
30227 addl (v), %eax
30228 adcl 4(v), %edx
30229 +
30230 +#ifdef CONFIG_PAX_REFCOUNT
30231 + into
30232 +1234:
30233 + _ASM_EXTABLE(1234b, 2f)
30234 +#endif
30235 +
30236 cmpl %eax, %ecx
30237 je 3f
30238 1:
30239 @@ -165,6 +315,13 @@ BEGIN(inc_not_zero)
30240 1:
30241 addl $1, %eax
30242 adcl $0, %edx
30243 +
30244 +#ifdef CONFIG_PAX_REFCOUNT
30245 + into
30246 +1234:
30247 + _ASM_EXTABLE(1234b, 2f)
30248 +#endif
30249 +
30250 movl %eax, (v)
30251 movl %edx, 4(v)
30252 movl $1, %eax
30253 @@ -183,6 +340,13 @@ BEGIN(dec_if_positive)
30254 movl 4(v), %edx
30255 subl $1, %eax
30256 sbbl $0, %edx
30257 +
30258 +#ifdef CONFIG_PAX_REFCOUNT
30259 + into
30260 +1234:
30261 + _ASM_EXTABLE(1234b, 1f)
30262 +#endif
30263 +
30264 js 1f
30265 movl %eax, (v)
30266 movl %edx, 4(v)
30267 diff --git a/arch/x86/lib/atomic64_cx8_32.S b/arch/x86/lib/atomic64_cx8_32.S
30268 index db3ae854..b8ad0de 100644
30269 --- a/arch/x86/lib/atomic64_cx8_32.S
30270 +++ b/arch/x86/lib/atomic64_cx8_32.S
30271 @@ -22,9 +22,16 @@
30272
30273 ENTRY(atomic64_read_cx8)
30274 read64 %ecx
30275 + pax_force_retaddr
30276 ret
30277 ENDPROC(atomic64_read_cx8)
30278
30279 +ENTRY(atomic64_read_unchecked_cx8)
30280 + read64 %ecx
30281 + pax_force_retaddr
30282 + ret
30283 +ENDPROC(atomic64_read_unchecked_cx8)
30284 +
30285 ENTRY(atomic64_set_cx8)
30286 1:
30287 /* we don't need LOCK_PREFIX since aligned 64-bit writes
30288 @@ -32,20 +39,33 @@ ENTRY(atomic64_set_cx8)
30289 cmpxchg8b (%esi)
30290 jne 1b
30291
30292 + pax_force_retaddr
30293 ret
30294 ENDPROC(atomic64_set_cx8)
30295
30296 +ENTRY(atomic64_set_unchecked_cx8)
30297 +1:
30298 +/* we don't need LOCK_PREFIX since aligned 64-bit writes
30299 + * are atomic on 586 and newer */
30300 + cmpxchg8b (%esi)
30301 + jne 1b
30302 +
30303 + pax_force_retaddr
30304 + ret
30305 +ENDPROC(atomic64_set_unchecked_cx8)
30306 +
30307 ENTRY(atomic64_xchg_cx8)
30308 1:
30309 LOCK_PREFIX
30310 cmpxchg8b (%esi)
30311 jne 1b
30312
30313 + pax_force_retaddr
30314 ret
30315 ENDPROC(atomic64_xchg_cx8)
30316
30317 -.macro addsub_return func ins insc
30318 -ENTRY(atomic64_\func\()_return_cx8)
30319 +.macro addsub_return func ins insc unchecked=""
30320 +ENTRY(atomic64_\func\()_return\unchecked\()_cx8)
30321 pushl %ebp
30322 pushl %ebx
30323 pushl %esi
30324 @@ -61,26 +81,43 @@ ENTRY(atomic64_\func\()_return_cx8)
30325 movl %edx, %ecx
30326 \ins\()l %esi, %ebx
30327 \insc\()l %edi, %ecx
30328 +
30329 +.ifb \unchecked
30330 +#ifdef CONFIG_PAX_REFCOUNT
30331 + into
30332 +2:
30333 + _ASM_EXTABLE(2b, 3f)
30334 +#endif
30335 +.endif
30336 +
30337 LOCK_PREFIX
30338 cmpxchg8b (%ebp)
30339 jne 1b
30340 -
30341 -10:
30342 movl %ebx, %eax
30343 movl %ecx, %edx
30344 +
30345 +.ifb \unchecked
30346 +#ifdef CONFIG_PAX_REFCOUNT
30347 +3:
30348 +#endif
30349 +.endif
30350 +
30351 popl %edi
30352 popl %esi
30353 popl %ebx
30354 popl %ebp
30355 + pax_force_retaddr
30356 ret
30357 -ENDPROC(atomic64_\func\()_return_cx8)
30358 +ENDPROC(atomic64_\func\()_return\unchecked\()_cx8)
30359 .endm
30360
30361 addsub_return add add adc
30362 addsub_return sub sub sbb
30363 +addsub_return add add adc _unchecked
30364 +addsub_return sub sub sbb _unchecked
30365
30366 -.macro incdec_return func ins insc
30367 -ENTRY(atomic64_\func\()_return_cx8)
30368 +.macro incdec_return func ins insc unchecked=""
30369 +ENTRY(atomic64_\func\()_return\unchecked\()_cx8)
30370 pushl %ebx
30371
30372 read64 %esi
30373 @@ -89,20 +126,37 @@ ENTRY(atomic64_\func\()_return_cx8)
30374 movl %edx, %ecx
30375 \ins\()l $1, %ebx
30376 \insc\()l $0, %ecx
30377 +
30378 +.ifb \unchecked
30379 +#ifdef CONFIG_PAX_REFCOUNT
30380 + into
30381 +2:
30382 + _ASM_EXTABLE(2b, 3f)
30383 +#endif
30384 +.endif
30385 +
30386 LOCK_PREFIX
30387 cmpxchg8b (%esi)
30388 jne 1b
30389 -
30390 -10:
30391 movl %ebx, %eax
30392 movl %ecx, %edx
30393 +
30394 +.ifb \unchecked
30395 +#ifdef CONFIG_PAX_REFCOUNT
30396 +3:
30397 +#endif
30398 +.endif
30399 +
30400 popl %ebx
30401 + pax_force_retaddr
30402 ret
30403 -ENDPROC(atomic64_\func\()_return_cx8)
30404 +ENDPROC(atomic64_\func\()_return\unchecked\()_cx8)
30405 .endm
30406
30407 incdec_return inc add adc
30408 incdec_return dec sub sbb
30409 +incdec_return inc add adc _unchecked
30410 +incdec_return dec sub sbb _unchecked
30411
30412 ENTRY(atomic64_dec_if_positive_cx8)
30413 pushl %ebx
30414 @@ -113,6 +167,13 @@ ENTRY(atomic64_dec_if_positive_cx8)
30415 movl %edx, %ecx
30416 subl $1, %ebx
30417 sbb $0, %ecx
30418 +
30419 +#ifdef CONFIG_PAX_REFCOUNT
30420 + into
30421 +1234:
30422 + _ASM_EXTABLE(1234b, 2f)
30423 +#endif
30424 +
30425 js 2f
30426 LOCK_PREFIX
30427 cmpxchg8b (%esi)
30428 @@ -122,6 +183,7 @@ ENTRY(atomic64_dec_if_positive_cx8)
30429 movl %ebx, %eax
30430 movl %ecx, %edx
30431 popl %ebx
30432 + pax_force_retaddr
30433 ret
30434 ENDPROC(atomic64_dec_if_positive_cx8)
30435
30436 @@ -144,6 +206,13 @@ ENTRY(atomic64_add_unless_cx8)
30437 movl %edx, %ecx
30438 addl %ebp, %ebx
30439 adcl %edi, %ecx
30440 +
30441 +#ifdef CONFIG_PAX_REFCOUNT
30442 + into
30443 +1234:
30444 + _ASM_EXTABLE(1234b, 3f)
30445 +#endif
30446 +
30447 LOCK_PREFIX
30448 cmpxchg8b (%esi)
30449 jne 1b
30450 @@ -153,6 +222,7 @@ ENTRY(atomic64_add_unless_cx8)
30451 addl $8, %esp
30452 popl %ebx
30453 popl %ebp
30454 + pax_force_retaddr
30455 ret
30456 4:
30457 cmpl %edx, 4(%esp)
30458 @@ -173,6 +243,13 @@ ENTRY(atomic64_inc_not_zero_cx8)
30459 xorl %ecx, %ecx
30460 addl $1, %ebx
30461 adcl %edx, %ecx
30462 +
30463 +#ifdef CONFIG_PAX_REFCOUNT
30464 + into
30465 +1234:
30466 + _ASM_EXTABLE(1234b, 3f)
30467 +#endif
30468 +
30469 LOCK_PREFIX
30470 cmpxchg8b (%esi)
30471 jne 1b
30472 @@ -180,5 +257,6 @@ ENTRY(atomic64_inc_not_zero_cx8)
30473 movl $1, %eax
30474 3:
30475 popl %ebx
30476 + pax_force_retaddr
30477 ret
30478 ENDPROC(atomic64_inc_not_zero_cx8)
30479 diff --git a/arch/x86/lib/checksum_32.S b/arch/x86/lib/checksum_32.S
30480 index c1e6232..ebbeba7 100644
30481 --- a/arch/x86/lib/checksum_32.S
30482 +++ b/arch/x86/lib/checksum_32.S
30483 @@ -28,7 +28,8 @@
30484 #include <linux/linkage.h>
30485 #include <asm/errno.h>
30486 #include <asm/asm.h>
30487 -
30488 +#include <asm/segment.h>
30489 +
30490 /*
30491 * computes a partial checksum, e.g. for TCP/UDP fragments
30492 */
30493 @@ -280,7 +281,22 @@ unsigned int csum_partial_copy_generic (const char *src, char *dst,
30494
30495 #define ARGBASE 16
30496 #define FP 12
30497 -
30498 +
30499 +ENTRY(csum_partial_copy_generic_to_user)
30500 +
30501 +#ifdef CONFIG_PAX_MEMORY_UDEREF
30502 + pushl %gs
30503 + popl %es
30504 + jmp csum_partial_copy_generic
30505 +#endif
30506 +
30507 +ENTRY(csum_partial_copy_generic_from_user)
30508 +
30509 +#ifdef CONFIG_PAX_MEMORY_UDEREF
30510 + pushl %gs
30511 + popl %ds
30512 +#endif
30513 +
30514 ENTRY(csum_partial_copy_generic)
30515 subl $4,%esp
30516 pushl %edi
30517 @@ -299,7 +315,7 @@ ENTRY(csum_partial_copy_generic)
30518 jmp 4f
30519 SRC(1: movw (%esi), %bx )
30520 addl $2, %esi
30521 -DST( movw %bx, (%edi) )
30522 +DST( movw %bx, %es:(%edi) )
30523 addl $2, %edi
30524 addw %bx, %ax
30525 adcl $0, %eax
30526 @@ -311,30 +327,30 @@ DST( movw %bx, (%edi) )
30527 SRC(1: movl (%esi), %ebx )
30528 SRC( movl 4(%esi), %edx )
30529 adcl %ebx, %eax
30530 -DST( movl %ebx, (%edi) )
30531 +DST( movl %ebx, %es:(%edi) )
30532 adcl %edx, %eax
30533 -DST( movl %edx, 4(%edi) )
30534 +DST( movl %edx, %es:4(%edi) )
30535
30536 SRC( movl 8(%esi), %ebx )
30537 SRC( movl 12(%esi), %edx )
30538 adcl %ebx, %eax
30539 -DST( movl %ebx, 8(%edi) )
30540 +DST( movl %ebx, %es:8(%edi) )
30541 adcl %edx, %eax
30542 -DST( movl %edx, 12(%edi) )
30543 +DST( movl %edx, %es:12(%edi) )
30544
30545 SRC( movl 16(%esi), %ebx )
30546 SRC( movl 20(%esi), %edx )
30547 adcl %ebx, %eax
30548 -DST( movl %ebx, 16(%edi) )
30549 +DST( movl %ebx, %es:16(%edi) )
30550 adcl %edx, %eax
30551 -DST( movl %edx, 20(%edi) )
30552 +DST( movl %edx, %es:20(%edi) )
30553
30554 SRC( movl 24(%esi), %ebx )
30555 SRC( movl 28(%esi), %edx )
30556 adcl %ebx, %eax
30557 -DST( movl %ebx, 24(%edi) )
30558 +DST( movl %ebx, %es:24(%edi) )
30559 adcl %edx, %eax
30560 -DST( movl %edx, 28(%edi) )
30561 +DST( movl %edx, %es:28(%edi) )
30562
30563 lea 32(%esi), %esi
30564 lea 32(%edi), %edi
30565 @@ -348,7 +364,7 @@ DST( movl %edx, 28(%edi) )
30566 shrl $2, %edx # This clears CF
30567 SRC(3: movl (%esi), %ebx )
30568 adcl %ebx, %eax
30569 -DST( movl %ebx, (%edi) )
30570 +DST( movl %ebx, %es:(%edi) )
30571 lea 4(%esi), %esi
30572 lea 4(%edi), %edi
30573 dec %edx
30574 @@ -360,12 +376,12 @@ DST( movl %ebx, (%edi) )
30575 jb 5f
30576 SRC( movw (%esi), %cx )
30577 leal 2(%esi), %esi
30578 -DST( movw %cx, (%edi) )
30579 +DST( movw %cx, %es:(%edi) )
30580 leal 2(%edi), %edi
30581 je 6f
30582 shll $16,%ecx
30583 SRC(5: movb (%esi), %cl )
30584 -DST( movb %cl, (%edi) )
30585 +DST( movb %cl, %es:(%edi) )
30586 6: addl %ecx, %eax
30587 adcl $0, %eax
30588 7:
30589 @@ -376,7 +392,7 @@ DST( movb %cl, (%edi) )
30590
30591 6001:
30592 movl ARGBASE+20(%esp), %ebx # src_err_ptr
30593 - movl $-EFAULT, (%ebx)
30594 + movl $-EFAULT, %ss:(%ebx)
30595
30596 # zero the complete destination - computing the rest
30597 # is too much work
30598 @@ -389,34 +405,58 @@ DST( movb %cl, (%edi) )
30599
30600 6002:
30601 movl ARGBASE+24(%esp), %ebx # dst_err_ptr
30602 - movl $-EFAULT,(%ebx)
30603 + movl $-EFAULT,%ss:(%ebx)
30604 jmp 5000b
30605
30606 .previous
30607
30608 +#ifdef CONFIG_PAX_MEMORY_UDEREF
30609 + pushl %ss
30610 + popl %ds
30611 + pushl %ss
30612 + popl %es
30613 +#endif
30614 +
30615 popl %ebx
30616 popl %esi
30617 popl %edi
30618 popl %ecx # equivalent to addl $4,%esp
30619 ret
30620 -ENDPROC(csum_partial_copy_generic)
30621 +ENDPROC(csum_partial_copy_generic_to_user)
30622
30623 #else
30624
30625 /* Version for PentiumII/PPro */
30626
30627 #define ROUND1(x) \
30628 + nop; nop; nop; \
30629 SRC(movl x(%esi), %ebx ) ; \
30630 addl %ebx, %eax ; \
30631 - DST(movl %ebx, x(%edi) ) ;
30632 + DST(movl %ebx, %es:x(%edi)) ;
30633
30634 #define ROUND(x) \
30635 + nop; nop; nop; \
30636 SRC(movl x(%esi), %ebx ) ; \
30637 adcl %ebx, %eax ; \
30638 - DST(movl %ebx, x(%edi) ) ;
30639 + DST(movl %ebx, %es:x(%edi)) ;
30640
30641 #define ARGBASE 12
30642 -
30643 +
30644 +ENTRY(csum_partial_copy_generic_to_user)
30645 +
30646 +#ifdef CONFIG_PAX_MEMORY_UDEREF
30647 + pushl %gs
30648 + popl %es
30649 + jmp csum_partial_copy_generic
30650 +#endif
30651 +
30652 +ENTRY(csum_partial_copy_generic_from_user)
30653 +
30654 +#ifdef CONFIG_PAX_MEMORY_UDEREF
30655 + pushl %gs
30656 + popl %ds
30657 +#endif
30658 +
30659 ENTRY(csum_partial_copy_generic)
30660 pushl %ebx
30661 pushl %edi
30662 @@ -435,7 +475,7 @@ ENTRY(csum_partial_copy_generic)
30663 subl %ebx, %edi
30664 lea -1(%esi),%edx
30665 andl $-32,%edx
30666 - lea 3f(%ebx,%ebx), %ebx
30667 + lea 3f(%ebx,%ebx,2), %ebx
30668 testl %esi, %esi
30669 jmp *%ebx
30670 1: addl $64,%esi
30671 @@ -456,19 +496,19 @@ ENTRY(csum_partial_copy_generic)
30672 jb 5f
30673 SRC( movw (%esi), %dx )
30674 leal 2(%esi), %esi
30675 -DST( movw %dx, (%edi) )
30676 +DST( movw %dx, %es:(%edi) )
30677 leal 2(%edi), %edi
30678 je 6f
30679 shll $16,%edx
30680 5:
30681 SRC( movb (%esi), %dl )
30682 -DST( movb %dl, (%edi) )
30683 +DST( movb %dl, %es:(%edi) )
30684 6: addl %edx, %eax
30685 adcl $0, %eax
30686 7:
30687 .section .fixup, "ax"
30688 6001: movl ARGBASE+20(%esp), %ebx # src_err_ptr
30689 - movl $-EFAULT, (%ebx)
30690 + movl $-EFAULT, %ss:(%ebx)
30691 # zero the complete destination (computing the rest is too much work)
30692 movl ARGBASE+8(%esp),%edi # dst
30693 movl ARGBASE+12(%esp),%ecx # len
30694 @@ -476,15 +516,22 @@ DST( movb %dl, (%edi) )
30695 rep; stosb
30696 jmp 7b
30697 6002: movl ARGBASE+24(%esp), %ebx # dst_err_ptr
30698 - movl $-EFAULT, (%ebx)
30699 + movl $-EFAULT, %ss:(%ebx)
30700 jmp 7b
30701 .previous
30702
30703 +#ifdef CONFIG_PAX_MEMORY_UDEREF
30704 + pushl %ss
30705 + popl %ds
30706 + pushl %ss
30707 + popl %es
30708 +#endif
30709 +
30710 popl %esi
30711 popl %edi
30712 popl %ebx
30713 ret
30714 -ENDPROC(csum_partial_copy_generic)
30715 +ENDPROC(csum_partial_copy_generic_to_user)
30716
30717 #undef ROUND
30718 #undef ROUND1
30719 diff --git a/arch/x86/lib/clear_page_64.S b/arch/x86/lib/clear_page_64.S
30720 index a2fe51b..507dab0 100644
30721 --- a/arch/x86/lib/clear_page_64.S
30722 +++ b/arch/x86/lib/clear_page_64.S
30723 @@ -21,6 +21,7 @@ ENTRY(clear_page)
30724 movl $4096/8,%ecx
30725 xorl %eax,%eax
30726 rep stosq
30727 + pax_force_retaddr
30728 ret
30729 ENDPROC(clear_page)
30730
30731 @@ -43,6 +44,7 @@ ENTRY(clear_page_orig)
30732 leaq 64(%rdi),%rdi
30733 jnz .Lloop
30734 nop
30735 + pax_force_retaddr
30736 ret
30737 ENDPROC(clear_page_orig)
30738
30739 @@ -50,5 +52,6 @@ ENTRY(clear_page_c_e)
30740 movl $4096,%ecx
30741 xorl %eax,%eax
30742 rep stosb
30743 + pax_force_retaddr
30744 ret
30745 ENDPROC(clear_page_c_e)
30746 diff --git a/arch/x86/lib/cmpxchg16b_emu.S b/arch/x86/lib/cmpxchg16b_emu.S
30747 index 9b33024..e52ee44 100644
30748 --- a/arch/x86/lib/cmpxchg16b_emu.S
30749 +++ b/arch/x86/lib/cmpxchg16b_emu.S
30750 @@ -7,6 +7,7 @@
30751 */
30752 #include <linux/linkage.h>
30753 #include <asm/percpu.h>
30754 +#include <asm/alternative-asm.h>
30755
30756 .text
30757
30758 @@ -43,11 +44,13 @@ ENTRY(this_cpu_cmpxchg16b_emu)
30759
30760 popfq
30761 mov $1, %al
30762 + pax_force_retaddr
30763 ret
30764
30765 .Lnot_same:
30766 popfq
30767 xor %al,%al
30768 + pax_force_retaddr
30769 ret
30770
30771 ENDPROC(this_cpu_cmpxchg16b_emu)
30772 diff --git a/arch/x86/lib/copy_page_64.S b/arch/x86/lib/copy_page_64.S
30773 index 009f982..9b3db5e 100644
30774 --- a/arch/x86/lib/copy_page_64.S
30775 +++ b/arch/x86/lib/copy_page_64.S
30776 @@ -15,13 +15,14 @@ ENTRY(copy_page)
30777 ALTERNATIVE "jmp copy_page_regs", "", X86_FEATURE_REP_GOOD
30778 movl $4096/8, %ecx
30779 rep movsq
30780 + pax_force_retaddr
30781 ret
30782 ENDPROC(copy_page)
30783
30784 ENTRY(copy_page_regs)
30785 subq $2*8, %rsp
30786 movq %rbx, (%rsp)
30787 - movq %r12, 1*8(%rsp)
30788 + movq %r13, 1*8(%rsp)
30789
30790 movl $(4096/64)-5, %ecx
30791 .p2align 4
30792 @@ -34,7 +35,7 @@ ENTRY(copy_page_regs)
30793 movq 0x8*4(%rsi), %r9
30794 movq 0x8*5(%rsi), %r10
30795 movq 0x8*6(%rsi), %r11
30796 - movq 0x8*7(%rsi), %r12
30797 + movq 0x8*7(%rsi), %r13
30798
30799 prefetcht0 5*64(%rsi)
30800
30801 @@ -45,7 +46,7 @@ ENTRY(copy_page_regs)
30802 movq %r9, 0x8*4(%rdi)
30803 movq %r10, 0x8*5(%rdi)
30804 movq %r11, 0x8*6(%rdi)
30805 - movq %r12, 0x8*7(%rdi)
30806 + movq %r13, 0x8*7(%rdi)
30807
30808 leaq 64 (%rsi), %rsi
30809 leaq 64 (%rdi), %rdi
30810 @@ -64,7 +65,7 @@ ENTRY(copy_page_regs)
30811 movq 0x8*4(%rsi), %r9
30812 movq 0x8*5(%rsi), %r10
30813 movq 0x8*6(%rsi), %r11
30814 - movq 0x8*7(%rsi), %r12
30815 + movq 0x8*7(%rsi), %r13
30816
30817 movq %rax, 0x8*0(%rdi)
30818 movq %rbx, 0x8*1(%rdi)
30819 @@ -73,14 +74,15 @@ ENTRY(copy_page_regs)
30820 movq %r9, 0x8*4(%rdi)
30821 movq %r10, 0x8*5(%rdi)
30822 movq %r11, 0x8*6(%rdi)
30823 - movq %r12, 0x8*7(%rdi)
30824 + movq %r13, 0x8*7(%rdi)
30825
30826 leaq 64(%rdi), %rdi
30827 leaq 64(%rsi), %rsi
30828 jnz .Loop2
30829
30830 movq (%rsp), %rbx
30831 - movq 1*8(%rsp), %r12
30832 + movq 1*8(%rsp), %r13
30833 addq $2*8, %rsp
30834 + pax_force_retaddr
30835 ret
30836 ENDPROC(copy_page_regs)
30837 diff --git a/arch/x86/lib/copy_user_64.S b/arch/x86/lib/copy_user_64.S
30838 index 27f89c7..7ae1e8e 100644
30839 --- a/arch/x86/lib/copy_user_64.S
30840 +++ b/arch/x86/lib/copy_user_64.S
30841 @@ -14,50 +14,7 @@
30842 #include <asm/alternative-asm.h>
30843 #include <asm/asm.h>
30844 #include <asm/smap.h>
30845 -
30846 -/* Standard copy_to_user with segment limit checking */
30847 -ENTRY(_copy_to_user)
30848 - GET_THREAD_INFO(%rax)
30849 - movq %rdi,%rcx
30850 - addq %rdx,%rcx
30851 - jc bad_to_user
30852 - cmpq TI_addr_limit(%rax),%rcx
30853 - ja bad_to_user
30854 - ALTERNATIVE_2 "jmp copy_user_generic_unrolled", \
30855 - "jmp copy_user_generic_string", \
30856 - X86_FEATURE_REP_GOOD, \
30857 - "jmp copy_user_enhanced_fast_string", \
30858 - X86_FEATURE_ERMS
30859 -ENDPROC(_copy_to_user)
30860 -
30861 -/* Standard copy_from_user with segment limit checking */
30862 -ENTRY(_copy_from_user)
30863 - GET_THREAD_INFO(%rax)
30864 - movq %rsi,%rcx
30865 - addq %rdx,%rcx
30866 - jc bad_from_user
30867 - cmpq TI_addr_limit(%rax),%rcx
30868 - ja bad_from_user
30869 - ALTERNATIVE_2 "jmp copy_user_generic_unrolled", \
30870 - "jmp copy_user_generic_string", \
30871 - X86_FEATURE_REP_GOOD, \
30872 - "jmp copy_user_enhanced_fast_string", \
30873 - X86_FEATURE_ERMS
30874 -ENDPROC(_copy_from_user)
30875 -
30876 - .section .fixup,"ax"
30877 - /* must zero dest */
30878 -ENTRY(bad_from_user)
30879 -bad_from_user:
30880 - movl %edx,%ecx
30881 - xorl %eax,%eax
30882 - rep
30883 - stosb
30884 -bad_to_user:
30885 - movl %edx,%eax
30886 - ret
30887 -ENDPROC(bad_from_user)
30888 - .previous
30889 +#include <asm/pgtable.h>
30890
30891 /*
30892 * copy_user_generic_unrolled - memory copy with exception handling.
30893 @@ -73,6 +30,7 @@ ENDPROC(bad_from_user)
30894 * eax uncopied bytes or 0 if successful.
30895 */
30896 ENTRY(copy_user_generic_unrolled)
30897 + ASM_PAX_OPEN_USERLAND
30898 ASM_STAC
30899 cmpl $8,%edx
30900 jb 20f /* less then 8 bytes, go to byte copy loop */
30901 @@ -122,6 +80,8 @@ ENTRY(copy_user_generic_unrolled)
30902 jnz 21b
30903 23: xor %eax,%eax
30904 ASM_CLAC
30905 + ASM_PAX_CLOSE_USERLAND
30906 + pax_force_retaddr
30907 ret
30908
30909 .section .fixup,"ax"
30910 @@ -175,6 +135,7 @@ ENDPROC(copy_user_generic_unrolled)
30911 * eax uncopied bytes or 0 if successful.
30912 */
30913 ENTRY(copy_user_generic_string)
30914 + ASM_PAX_OPEN_USERLAND
30915 ASM_STAC
30916 cmpl $8,%edx
30917 jb 2f /* less than 8 bytes, go to byte copy loop */
30918 @@ -189,6 +150,8 @@ ENTRY(copy_user_generic_string)
30919 movsb
30920 xorl %eax,%eax
30921 ASM_CLAC
30922 + ASM_PAX_CLOSE_USERLAND
30923 + pax_force_retaddr
30924 ret
30925
30926 .section .fixup,"ax"
30927 @@ -214,12 +177,15 @@ ENDPROC(copy_user_generic_string)
30928 * eax uncopied bytes or 0 if successful.
30929 */
30930 ENTRY(copy_user_enhanced_fast_string)
30931 + ASM_PAX_OPEN_USERLAND
30932 ASM_STAC
30933 movl %edx,%ecx
30934 1: rep
30935 movsb
30936 xorl %eax,%eax
30937 ASM_CLAC
30938 + ASM_PAX_CLOSE_USERLAND
30939 + pax_force_retaddr
30940 ret
30941
30942 .section .fixup,"ax"
30943 @@ -240,6 +206,16 @@ ENDPROC(copy_user_enhanced_fast_string)
30944 * - Require 4-byte alignment when size is 4 bytes.
30945 */
30946 ENTRY(__copy_user_nocache)
30947 +
30948 +#ifdef CONFIG_PAX_MEMORY_UDEREF
30949 + mov pax_user_shadow_base,%rcx
30950 + cmp %rcx,%rsi
30951 + jae 1f
30952 + add %rcx,%rsi
30953 +1:
30954 +#endif
30955 +
30956 + ASM_PAX_OPEN_USERLAND
30957 ASM_STAC
30958
30959 /* If size is less than 8 bytes, go to 4-byte copy */
30960 @@ -335,7 +311,9 @@ ENTRY(__copy_user_nocache)
30961 .L_finish_copy:
30962 xorl %eax,%eax
30963 ASM_CLAC
30964 + ASM_PAX_CLOSE_USERLAND
30965 sfence
30966 + pax_force_retaddr
30967 ret
30968
30969 .section .fixup,"ax"
30970 diff --git a/arch/x86/lib/csum-copy_64.S b/arch/x86/lib/csum-copy_64.S
30971 index 7e48807..cc966ff 100644
30972 --- a/arch/x86/lib/csum-copy_64.S
30973 +++ b/arch/x86/lib/csum-copy_64.S
30974 @@ -8,6 +8,7 @@
30975 #include <linux/linkage.h>
30976 #include <asm/errno.h>
30977 #include <asm/asm.h>
30978 +#include <asm/alternative-asm.h>
30979
30980 /*
30981 * Checksum copy with exception handling.
30982 @@ -52,7 +53,7 @@ ENTRY(csum_partial_copy_generic)
30983 .Lignore:
30984 subq $7*8, %rsp
30985 movq %rbx, 2*8(%rsp)
30986 - movq %r12, 3*8(%rsp)
30987 + movq %r15, 3*8(%rsp)
30988 movq %r14, 4*8(%rsp)
30989 movq %r13, 5*8(%rsp)
30990 movq %rbp, 6*8(%rsp)
30991 @@ -64,16 +65,16 @@ ENTRY(csum_partial_copy_generic)
30992 movl %edx, %ecx
30993
30994 xorl %r9d, %r9d
30995 - movq %rcx, %r12
30996 + movq %rcx, %r15
30997
30998 - shrq $6, %r12
30999 + shrq $6, %r15
31000 jz .Lhandle_tail /* < 64 */
31001
31002 clc
31003
31004 /* main loop. clear in 64 byte blocks */
31005 /* r9: zero, r8: temp2, rbx: temp1, rax: sum, rcx: saved length */
31006 - /* r11: temp3, rdx: temp4, r12 loopcnt */
31007 + /* r11: temp3, rdx: temp4, r15 loopcnt */
31008 /* r10: temp5, rbp: temp6, r14 temp7, r13 temp8 */
31009 .p2align 4
31010 .Lloop:
31011 @@ -107,7 +108,7 @@ ENTRY(csum_partial_copy_generic)
31012 adcq %r14, %rax
31013 adcq %r13, %rax
31014
31015 - decl %r12d
31016 + decl %r15d
31017
31018 dest
31019 movq %rbx, (%rsi)
31020 @@ -200,11 +201,12 @@ ENTRY(csum_partial_copy_generic)
31021
31022 .Lende:
31023 movq 2*8(%rsp), %rbx
31024 - movq 3*8(%rsp), %r12
31025 + movq 3*8(%rsp), %r15
31026 movq 4*8(%rsp), %r14
31027 movq 5*8(%rsp), %r13
31028 movq 6*8(%rsp), %rbp
31029 addq $7*8, %rsp
31030 + pax_force_retaddr
31031 ret
31032
31033 /* Exception handlers. Very simple, zeroing is done in the wrappers */
31034 diff --git a/arch/x86/lib/csum-wrappers_64.c b/arch/x86/lib/csum-wrappers_64.c
31035 index 1318f75..44c30fd 100644
31036 --- a/arch/x86/lib/csum-wrappers_64.c
31037 +++ b/arch/x86/lib/csum-wrappers_64.c
31038 @@ -52,10 +52,12 @@ csum_partial_copy_from_user(const void __user *src, void *dst,
31039 len -= 2;
31040 }
31041 }
31042 + pax_open_userland();
31043 stac();
31044 - isum = csum_partial_copy_generic((__force const void *)src,
31045 + isum = csum_partial_copy_generic((const void __force_kernel *)____m(src),
31046 dst, len, isum, errp, NULL);
31047 clac();
31048 + pax_close_userland();
31049 if (unlikely(*errp))
31050 goto out_err;
31051
31052 @@ -109,10 +111,12 @@ csum_partial_copy_to_user(const void *src, void __user *dst,
31053 }
31054
31055 *errp = 0;
31056 + pax_open_userland();
31057 stac();
31058 - ret = csum_partial_copy_generic(src, (void __force *)dst,
31059 + ret = csum_partial_copy_generic(src, (void __force_kernel *)____m(dst),
31060 len, isum, NULL, errp);
31061 clac();
31062 + pax_close_userland();
31063 return ret;
31064 }
31065 EXPORT_SYMBOL(csum_partial_copy_to_user);
31066 diff --git a/arch/x86/lib/getuser.S b/arch/x86/lib/getuser.S
31067 index 46668cd..a3bdfb9 100644
31068 --- a/arch/x86/lib/getuser.S
31069 +++ b/arch/x86/lib/getuser.S
31070 @@ -32,42 +32,93 @@
31071 #include <asm/thread_info.h>
31072 #include <asm/asm.h>
31073 #include <asm/smap.h>
31074 +#include <asm/segment.h>
31075 +#include <asm/pgtable.h>
31076 +#include <asm/alternative-asm.h>
31077 +
31078 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
31079 +#define __copyuser_seg gs;
31080 +#else
31081 +#define __copyuser_seg
31082 +#endif
31083
31084 .text
31085 ENTRY(__get_user_1)
31086 +
31087 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
31088 GET_THREAD_INFO(%_ASM_DX)
31089 cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
31090 jae bad_get_user
31091 +
31092 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
31093 + mov pax_user_shadow_base,%_ASM_DX
31094 + cmp %_ASM_DX,%_ASM_AX
31095 + jae 1234f
31096 + add %_ASM_DX,%_ASM_AX
31097 +1234:
31098 +#endif
31099 +
31100 +#endif
31101 +
31102 ASM_STAC
31103 -1: movzbl (%_ASM_AX),%edx
31104 +1: __copyuser_seg movzbl (%_ASM_AX),%edx
31105 xor %eax,%eax
31106 ASM_CLAC
31107 + pax_force_retaddr
31108 ret
31109 ENDPROC(__get_user_1)
31110
31111 ENTRY(__get_user_2)
31112 add $1,%_ASM_AX
31113 +
31114 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
31115 jc bad_get_user
31116 GET_THREAD_INFO(%_ASM_DX)
31117 cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
31118 jae bad_get_user
31119 +
31120 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
31121 + mov pax_user_shadow_base,%_ASM_DX
31122 + cmp %_ASM_DX,%_ASM_AX
31123 + jae 1234f
31124 + add %_ASM_DX,%_ASM_AX
31125 +1234:
31126 +#endif
31127 +
31128 +#endif
31129 +
31130 ASM_STAC
31131 -2: movzwl -1(%_ASM_AX),%edx
31132 +2: __copyuser_seg movzwl -1(%_ASM_AX),%edx
31133 xor %eax,%eax
31134 ASM_CLAC
31135 + pax_force_retaddr
31136 ret
31137 ENDPROC(__get_user_2)
31138
31139 ENTRY(__get_user_4)
31140 add $3,%_ASM_AX
31141 +
31142 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
31143 jc bad_get_user
31144 GET_THREAD_INFO(%_ASM_DX)
31145 cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
31146 jae bad_get_user
31147 +
31148 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
31149 + mov pax_user_shadow_base,%_ASM_DX
31150 + cmp %_ASM_DX,%_ASM_AX
31151 + jae 1234f
31152 + add %_ASM_DX,%_ASM_AX
31153 +1234:
31154 +#endif
31155 +
31156 +#endif
31157 +
31158 ASM_STAC
31159 -3: movl -3(%_ASM_AX),%edx
31160 +3: __copyuser_seg movl -3(%_ASM_AX),%edx
31161 xor %eax,%eax
31162 ASM_CLAC
31163 + pax_force_retaddr
31164 ret
31165 ENDPROC(__get_user_4)
31166
31167 @@ -78,10 +129,20 @@ ENTRY(__get_user_8)
31168 GET_THREAD_INFO(%_ASM_DX)
31169 cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
31170 jae bad_get_user
31171 +
31172 +#ifdef CONFIG_PAX_MEMORY_UDEREF
31173 + mov pax_user_shadow_base,%_ASM_DX
31174 + cmp %_ASM_DX,%_ASM_AX
31175 + jae 1234f
31176 + add %_ASM_DX,%_ASM_AX
31177 +1234:
31178 +#endif
31179 +
31180 ASM_STAC
31181 4: movq -7(%_ASM_AX),%rdx
31182 xor %eax,%eax
31183 ASM_CLAC
31184 + pax_force_retaddr
31185 ret
31186 #else
31187 add $7,%_ASM_AX
31188 @@ -90,10 +151,11 @@ ENTRY(__get_user_8)
31189 cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
31190 jae bad_get_user_8
31191 ASM_STAC
31192 -4: movl -7(%_ASM_AX),%edx
31193 -5: movl -3(%_ASM_AX),%ecx
31194 +4: __copyuser_seg movl -7(%_ASM_AX),%edx
31195 +5: __copyuser_seg movl -3(%_ASM_AX),%ecx
31196 xor %eax,%eax
31197 ASM_CLAC
31198 + pax_force_retaddr
31199 ret
31200 #endif
31201 ENDPROC(__get_user_8)
31202 @@ -103,6 +165,7 @@ bad_get_user:
31203 xor %edx,%edx
31204 mov $(-EFAULT),%_ASM_AX
31205 ASM_CLAC
31206 + pax_force_retaddr
31207 ret
31208 END(bad_get_user)
31209
31210 @@ -112,6 +175,7 @@ bad_get_user_8:
31211 xor %ecx,%ecx
31212 mov $(-EFAULT),%_ASM_AX
31213 ASM_CLAC
31214 + pax_force_retaddr
31215 ret
31216 END(bad_get_user_8)
31217 #endif
31218 diff --git a/arch/x86/lib/insn.c b/arch/x86/lib/insn.c
31219 index 8f72b33..4667a46 100644
31220 --- a/arch/x86/lib/insn.c
31221 +++ b/arch/x86/lib/insn.c
31222 @@ -20,8 +20,10 @@
31223
31224 #ifdef __KERNEL__
31225 #include <linux/string.h>
31226 +#include <asm/pgtable_types.h>
31227 #else
31228 #include <string.h>
31229 +#define ktla_ktva(addr) addr
31230 #endif
31231 #include <asm/inat.h>
31232 #include <asm/insn.h>
31233 @@ -60,9 +62,9 @@ void insn_init(struct insn *insn, const void *kaddr, int buf_len, int x86_64)
31234 buf_len = MAX_INSN_SIZE;
31235
31236 memset(insn, 0, sizeof(*insn));
31237 - insn->kaddr = kaddr;
31238 - insn->end_kaddr = kaddr + buf_len;
31239 - insn->next_byte = kaddr;
31240 + insn->kaddr = (void *)ktla_ktva((unsigned long)kaddr);
31241 + insn->end_kaddr = insn->kaddr + buf_len;
31242 + insn->next_byte = insn->kaddr;
31243 insn->x86_64 = x86_64 ? 1 : 0;
31244 insn->opnd_bytes = 4;
31245 if (x86_64)
31246 diff --git a/arch/x86/lib/iomap_copy_64.S b/arch/x86/lib/iomap_copy_64.S
31247 index 33147fe..12a8815 100644
31248 --- a/arch/x86/lib/iomap_copy_64.S
31249 +++ b/arch/x86/lib/iomap_copy_64.S
31250 @@ -16,6 +16,7 @@
31251 */
31252
31253 #include <linux/linkage.h>
31254 +#include <asm/alternative-asm.h>
31255
31256 /*
31257 * override generic version in lib/iomap_copy.c
31258 @@ -23,5 +24,6 @@
31259 ENTRY(__iowrite32_copy)
31260 movl %edx,%ecx
31261 rep movsd
31262 + pax_force_retaddr
31263 ret
31264 ENDPROC(__iowrite32_copy)
31265 diff --git a/arch/x86/lib/memcpy_64.S b/arch/x86/lib/memcpy_64.S
31266 index 16698bb..971d300 100644
31267 --- a/arch/x86/lib/memcpy_64.S
31268 +++ b/arch/x86/lib/memcpy_64.S
31269 @@ -36,6 +36,7 @@ ENTRY(memcpy)
31270 rep movsq
31271 movl %edx, %ecx
31272 rep movsb
31273 + pax_force_retaddr
31274 ret
31275 ENDPROC(memcpy)
31276 ENDPROC(__memcpy)
31277 @@ -48,6 +49,7 @@ ENTRY(memcpy_erms)
31278 movq %rdi, %rax
31279 movq %rdx, %rcx
31280 rep movsb
31281 + pax_force_retaddr
31282 ret
31283 ENDPROC(memcpy_erms)
31284
31285 @@ -132,6 +134,7 @@ ENTRY(memcpy_orig)
31286 movq %r9, 1*8(%rdi)
31287 movq %r10, -2*8(%rdi, %rdx)
31288 movq %r11, -1*8(%rdi, %rdx)
31289 + pax_force_retaddr
31290 retq
31291 .p2align 4
31292 .Lless_16bytes:
31293 @@ -144,6 +147,7 @@ ENTRY(memcpy_orig)
31294 movq -1*8(%rsi, %rdx), %r9
31295 movq %r8, 0*8(%rdi)
31296 movq %r9, -1*8(%rdi, %rdx)
31297 + pax_force_retaddr
31298 retq
31299 .p2align 4
31300 .Lless_8bytes:
31301 @@ -157,6 +161,7 @@ ENTRY(memcpy_orig)
31302 movl -4(%rsi, %rdx), %r8d
31303 movl %ecx, (%rdi)
31304 movl %r8d, -4(%rdi, %rdx)
31305 + pax_force_retaddr
31306 retq
31307 .p2align 4
31308 .Lless_3bytes:
31309 @@ -175,5 +180,6 @@ ENTRY(memcpy_orig)
31310 movb %cl, (%rdi)
31311
31312 .Lend:
31313 + pax_force_retaddr
31314 retq
31315 ENDPROC(memcpy_orig)
31316 diff --git a/arch/x86/lib/memmove_64.S b/arch/x86/lib/memmove_64.S
31317 index ca2afdd..2e474fa 100644
31318 --- a/arch/x86/lib/memmove_64.S
31319 +++ b/arch/x86/lib/memmove_64.S
31320 @@ -41,7 +41,7 @@ ENTRY(__memmove)
31321 jg 2f
31322
31323 .Lmemmove_begin_forward:
31324 - ALTERNATIVE "", "movq %rdx, %rcx; rep movsb; retq", X86_FEATURE_ERMS
31325 + ALTERNATIVE "", "movq %rdx, %rcx; rep movsb; pax_force_retaddr; retq", X86_FEATURE_ERMS
31326
31327 /*
31328 * movsq instruction have many startup latency
31329 @@ -204,6 +204,7 @@ ENTRY(__memmove)
31330 movb (%rsi), %r11b
31331 movb %r11b, (%rdi)
31332 13:
31333 + pax_force_retaddr
31334 retq
31335 ENDPROC(__memmove)
31336 ENDPROC(memmove)
31337 diff --git a/arch/x86/lib/memset_64.S b/arch/x86/lib/memset_64.S
31338 index 2661fad..b584d5c 100644
31339 --- a/arch/x86/lib/memset_64.S
31340 +++ b/arch/x86/lib/memset_64.S
31341 @@ -40,6 +40,7 @@ ENTRY(__memset)
31342 movl %edx,%ecx
31343 rep stosb
31344 movq %r9,%rax
31345 + pax_force_retaddr
31346 ret
31347 ENDPROC(memset)
31348 ENDPROC(__memset)
31349 @@ -61,6 +62,7 @@ ENTRY(memset_erms)
31350 movq %rdx,%rcx
31351 rep stosb
31352 movq %r9,%rax
31353 + pax_force_retaddr
31354 ret
31355 ENDPROC(memset_erms)
31356
31357 @@ -123,6 +125,7 @@ ENTRY(memset_orig)
31358
31359 .Lende:
31360 movq %r10,%rax
31361 + pax_force_retaddr
31362 ret
31363
31364 .Lbad_alignment:
31365 diff --git a/arch/x86/lib/mmx_32.c b/arch/x86/lib/mmx_32.c
31366 index e5e3ed8..d7c08c2 100644
31367 --- a/arch/x86/lib/mmx_32.c
31368 +++ b/arch/x86/lib/mmx_32.c
31369 @@ -29,6 +29,7 @@ void *_mmx_memcpy(void *to, const void *from, size_t len)
31370 {
31371 void *p;
31372 int i;
31373 + unsigned long cr0;
31374
31375 if (unlikely(in_interrupt()))
31376 return __memcpy(to, from, len);
31377 @@ -39,44 +40,72 @@ void *_mmx_memcpy(void *to, const void *from, size_t len)
31378 kernel_fpu_begin();
31379
31380 __asm__ __volatile__ (
31381 - "1: prefetch (%0)\n" /* This set is 28 bytes */
31382 - " prefetch 64(%0)\n"
31383 - " prefetch 128(%0)\n"
31384 - " prefetch 192(%0)\n"
31385 - " prefetch 256(%0)\n"
31386 + "1: prefetch (%1)\n" /* This set is 28 bytes */
31387 + " prefetch 64(%1)\n"
31388 + " prefetch 128(%1)\n"
31389 + " prefetch 192(%1)\n"
31390 + " prefetch 256(%1)\n"
31391 "2: \n"
31392 ".section .fixup, \"ax\"\n"
31393 - "3: movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
31394 + "3: \n"
31395 +
31396 +#ifdef CONFIG_PAX_KERNEXEC
31397 + " movl %%cr0, %0\n"
31398 + " movl %0, %%eax\n"
31399 + " andl $0xFFFEFFFF, %%eax\n"
31400 + " movl %%eax, %%cr0\n"
31401 +#endif
31402 +
31403 + " movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
31404 +
31405 +#ifdef CONFIG_PAX_KERNEXEC
31406 + " movl %0, %%cr0\n"
31407 +#endif
31408 +
31409 " jmp 2b\n"
31410 ".previous\n"
31411 _ASM_EXTABLE(1b, 3b)
31412 - : : "r" (from));
31413 + : "=&r" (cr0) : "r" (from) : "ax");
31414
31415 for ( ; i > 5; i--) {
31416 __asm__ __volatile__ (
31417 - "1: prefetch 320(%0)\n"
31418 - "2: movq (%0), %%mm0\n"
31419 - " movq 8(%0), %%mm1\n"
31420 - " movq 16(%0), %%mm2\n"
31421 - " movq 24(%0), %%mm3\n"
31422 - " movq %%mm0, (%1)\n"
31423 - " movq %%mm1, 8(%1)\n"
31424 - " movq %%mm2, 16(%1)\n"
31425 - " movq %%mm3, 24(%1)\n"
31426 - " movq 32(%0), %%mm0\n"
31427 - " movq 40(%0), %%mm1\n"
31428 - " movq 48(%0), %%mm2\n"
31429 - " movq 56(%0), %%mm3\n"
31430 - " movq %%mm0, 32(%1)\n"
31431 - " movq %%mm1, 40(%1)\n"
31432 - " movq %%mm2, 48(%1)\n"
31433 - " movq %%mm3, 56(%1)\n"
31434 + "1: prefetch 320(%1)\n"
31435 + "2: movq (%1), %%mm0\n"
31436 + " movq 8(%1), %%mm1\n"
31437 + " movq 16(%1), %%mm2\n"
31438 + " movq 24(%1), %%mm3\n"
31439 + " movq %%mm0, (%2)\n"
31440 + " movq %%mm1, 8(%2)\n"
31441 + " movq %%mm2, 16(%2)\n"
31442 + " movq %%mm3, 24(%2)\n"
31443 + " movq 32(%1), %%mm0\n"
31444 + " movq 40(%1), %%mm1\n"
31445 + " movq 48(%1), %%mm2\n"
31446 + " movq 56(%1), %%mm3\n"
31447 + " movq %%mm0, 32(%2)\n"
31448 + " movq %%mm1, 40(%2)\n"
31449 + " movq %%mm2, 48(%2)\n"
31450 + " movq %%mm3, 56(%2)\n"
31451 ".section .fixup, \"ax\"\n"
31452 - "3: movw $0x05EB, 1b\n" /* jmp on 5 bytes */
31453 + "3:\n"
31454 +
31455 +#ifdef CONFIG_PAX_KERNEXEC
31456 + " movl %%cr0, %0\n"
31457 + " movl %0, %%eax\n"
31458 + " andl $0xFFFEFFFF, %%eax\n"
31459 + " movl %%eax, %%cr0\n"
31460 +#endif
31461 +
31462 + " movw $0x05EB, 1b\n" /* jmp on 5 bytes */
31463 +
31464 +#ifdef CONFIG_PAX_KERNEXEC
31465 + " movl %0, %%cr0\n"
31466 +#endif
31467 +
31468 " jmp 2b\n"
31469 ".previous\n"
31470 _ASM_EXTABLE(1b, 3b)
31471 - : : "r" (from), "r" (to) : "memory");
31472 + : "=&r" (cr0) : "r" (from), "r" (to) : "memory", "ax");
31473
31474 from += 64;
31475 to += 64;
31476 @@ -158,6 +187,7 @@ static void fast_clear_page(void *page)
31477 static void fast_copy_page(void *to, void *from)
31478 {
31479 int i;
31480 + unsigned long cr0;
31481
31482 kernel_fpu_begin();
31483
31484 @@ -166,42 +196,70 @@ static void fast_copy_page(void *to, void *from)
31485 * but that is for later. -AV
31486 */
31487 __asm__ __volatile__(
31488 - "1: prefetch (%0)\n"
31489 - " prefetch 64(%0)\n"
31490 - " prefetch 128(%0)\n"
31491 - " prefetch 192(%0)\n"
31492 - " prefetch 256(%0)\n"
31493 + "1: prefetch (%1)\n"
31494 + " prefetch 64(%1)\n"
31495 + " prefetch 128(%1)\n"
31496 + " prefetch 192(%1)\n"
31497 + " prefetch 256(%1)\n"
31498 "2: \n"
31499 ".section .fixup, \"ax\"\n"
31500 - "3: movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
31501 + "3: \n"
31502 +
31503 +#ifdef CONFIG_PAX_KERNEXEC
31504 + " movl %%cr0, %0\n"
31505 + " movl %0, %%eax\n"
31506 + " andl $0xFFFEFFFF, %%eax\n"
31507 + " movl %%eax, %%cr0\n"
31508 +#endif
31509 +
31510 + " movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
31511 +
31512 +#ifdef CONFIG_PAX_KERNEXEC
31513 + " movl %0, %%cr0\n"
31514 +#endif
31515 +
31516 " jmp 2b\n"
31517 ".previous\n"
31518 - _ASM_EXTABLE(1b, 3b) : : "r" (from));
31519 + _ASM_EXTABLE(1b, 3b) : "=&r" (cr0) : "r" (from) : "ax");
31520
31521 for (i = 0; i < (4096-320)/64; i++) {
31522 __asm__ __volatile__ (
31523 - "1: prefetch 320(%0)\n"
31524 - "2: movq (%0), %%mm0\n"
31525 - " movntq %%mm0, (%1)\n"
31526 - " movq 8(%0), %%mm1\n"
31527 - " movntq %%mm1, 8(%1)\n"
31528 - " movq 16(%0), %%mm2\n"
31529 - " movntq %%mm2, 16(%1)\n"
31530 - " movq 24(%0), %%mm3\n"
31531 - " movntq %%mm3, 24(%1)\n"
31532 - " movq 32(%0), %%mm4\n"
31533 - " movntq %%mm4, 32(%1)\n"
31534 - " movq 40(%0), %%mm5\n"
31535 - " movntq %%mm5, 40(%1)\n"
31536 - " movq 48(%0), %%mm6\n"
31537 - " movntq %%mm6, 48(%1)\n"
31538 - " movq 56(%0), %%mm7\n"
31539 - " movntq %%mm7, 56(%1)\n"
31540 + "1: prefetch 320(%1)\n"
31541 + "2: movq (%1), %%mm0\n"
31542 + " movntq %%mm0, (%2)\n"
31543 + " movq 8(%1), %%mm1\n"
31544 + " movntq %%mm1, 8(%2)\n"
31545 + " movq 16(%1), %%mm2\n"
31546 + " movntq %%mm2, 16(%2)\n"
31547 + " movq 24(%1), %%mm3\n"
31548 + " movntq %%mm3, 24(%2)\n"
31549 + " movq 32(%1), %%mm4\n"
31550 + " movntq %%mm4, 32(%2)\n"
31551 + " movq 40(%1), %%mm5\n"
31552 + " movntq %%mm5, 40(%2)\n"
31553 + " movq 48(%1), %%mm6\n"
31554 + " movntq %%mm6, 48(%2)\n"
31555 + " movq 56(%1), %%mm7\n"
31556 + " movntq %%mm7, 56(%2)\n"
31557 ".section .fixup, \"ax\"\n"
31558 - "3: movw $0x05EB, 1b\n" /* jmp on 5 bytes */
31559 + "3:\n"
31560 +
31561 +#ifdef CONFIG_PAX_KERNEXEC
31562 + " movl %%cr0, %0\n"
31563 + " movl %0, %%eax\n"
31564 + " andl $0xFFFEFFFF, %%eax\n"
31565 + " movl %%eax, %%cr0\n"
31566 +#endif
31567 +
31568 + " movw $0x05EB, 1b\n" /* jmp on 5 bytes */
31569 +
31570 +#ifdef CONFIG_PAX_KERNEXEC
31571 + " movl %0, %%cr0\n"
31572 +#endif
31573 +
31574 " jmp 2b\n"
31575 ".previous\n"
31576 - _ASM_EXTABLE(1b, 3b) : : "r" (from), "r" (to) : "memory");
31577 + _ASM_EXTABLE(1b, 3b) : "=&r" (cr0) : "r" (from), "r" (to) : "memory", "ax");
31578
31579 from += 64;
31580 to += 64;
31581 @@ -280,47 +338,76 @@ static void fast_clear_page(void *page)
31582 static void fast_copy_page(void *to, void *from)
31583 {
31584 int i;
31585 + unsigned long cr0;
31586
31587 kernel_fpu_begin();
31588
31589 __asm__ __volatile__ (
31590 - "1: prefetch (%0)\n"
31591 - " prefetch 64(%0)\n"
31592 - " prefetch 128(%0)\n"
31593 - " prefetch 192(%0)\n"
31594 - " prefetch 256(%0)\n"
31595 + "1: prefetch (%1)\n"
31596 + " prefetch 64(%1)\n"
31597 + " prefetch 128(%1)\n"
31598 + " prefetch 192(%1)\n"
31599 + " prefetch 256(%1)\n"
31600 "2: \n"
31601 ".section .fixup, \"ax\"\n"
31602 - "3: movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
31603 + "3: \n"
31604 +
31605 +#ifdef CONFIG_PAX_KERNEXEC
31606 + " movl %%cr0, %0\n"
31607 + " movl %0, %%eax\n"
31608 + " andl $0xFFFEFFFF, %%eax\n"
31609 + " movl %%eax, %%cr0\n"
31610 +#endif
31611 +
31612 + " movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
31613 +
31614 +#ifdef CONFIG_PAX_KERNEXEC
31615 + " movl %0, %%cr0\n"
31616 +#endif
31617 +
31618 " jmp 2b\n"
31619 ".previous\n"
31620 - _ASM_EXTABLE(1b, 3b) : : "r" (from));
31621 + _ASM_EXTABLE(1b, 3b) : "=&r" (cr0) : "r" (from) : "ax");
31622
31623 for (i = 0; i < 4096/64; i++) {
31624 __asm__ __volatile__ (
31625 - "1: prefetch 320(%0)\n"
31626 - "2: movq (%0), %%mm0\n"
31627 - " movq 8(%0), %%mm1\n"
31628 - " movq 16(%0), %%mm2\n"
31629 - " movq 24(%0), %%mm3\n"
31630 - " movq %%mm0, (%1)\n"
31631 - " movq %%mm1, 8(%1)\n"
31632 - " movq %%mm2, 16(%1)\n"
31633 - " movq %%mm3, 24(%1)\n"
31634 - " movq 32(%0), %%mm0\n"
31635 - " movq 40(%0), %%mm1\n"
31636 - " movq 48(%0), %%mm2\n"
31637 - " movq 56(%0), %%mm3\n"
31638 - " movq %%mm0, 32(%1)\n"
31639 - " movq %%mm1, 40(%1)\n"
31640 - " movq %%mm2, 48(%1)\n"
31641 - " movq %%mm3, 56(%1)\n"
31642 + "1: prefetch 320(%1)\n"
31643 + "2: movq (%1), %%mm0\n"
31644 + " movq 8(%1), %%mm1\n"
31645 + " movq 16(%1), %%mm2\n"
31646 + " movq 24(%1), %%mm3\n"
31647 + " movq %%mm0, (%2)\n"
31648 + " movq %%mm1, 8(%2)\n"
31649 + " movq %%mm2, 16(%2)\n"
31650 + " movq %%mm3, 24(%2)\n"
31651 + " movq 32(%1), %%mm0\n"
31652 + " movq 40(%1), %%mm1\n"
31653 + " movq 48(%1), %%mm2\n"
31654 + " movq 56(%1), %%mm3\n"
31655 + " movq %%mm0, 32(%2)\n"
31656 + " movq %%mm1, 40(%2)\n"
31657 + " movq %%mm2, 48(%2)\n"
31658 + " movq %%mm3, 56(%2)\n"
31659 ".section .fixup, \"ax\"\n"
31660 - "3: movw $0x05EB, 1b\n" /* jmp on 5 bytes */
31661 + "3:\n"
31662 +
31663 +#ifdef CONFIG_PAX_KERNEXEC
31664 + " movl %%cr0, %0\n"
31665 + " movl %0, %%eax\n"
31666 + " andl $0xFFFEFFFF, %%eax\n"
31667 + " movl %%eax, %%cr0\n"
31668 +#endif
31669 +
31670 + " movw $0x05EB, 1b\n" /* jmp on 5 bytes */
31671 +
31672 +#ifdef CONFIG_PAX_KERNEXEC
31673 + " movl %0, %%cr0\n"
31674 +#endif
31675 +
31676 " jmp 2b\n"
31677 ".previous\n"
31678 _ASM_EXTABLE(1b, 3b)
31679 - : : "r" (from), "r" (to) : "memory");
31680 + : "=&r" (cr0) : "r" (from), "r" (to) : "memory", "ax");
31681
31682 from += 64;
31683 to += 64;
31684 diff --git a/arch/x86/lib/msr-reg.S b/arch/x86/lib/msr-reg.S
31685 index c815564..303dcfa 100644
31686 --- a/arch/x86/lib/msr-reg.S
31687 +++ b/arch/x86/lib/msr-reg.S
31688 @@ -2,6 +2,7 @@
31689 #include <linux/errno.h>
31690 #include <asm/asm.h>
31691 #include <asm/msr.h>
31692 +#include <asm/alternative-asm.h>
31693
31694 #ifdef CONFIG_X86_64
31695 /*
31696 @@ -34,6 +35,7 @@ ENTRY(\op\()_safe_regs)
31697 movl %edi, 28(%r10)
31698 popq %rbp
31699 popq %rbx
31700 + pax_force_retaddr
31701 ret
31702 3:
31703 movl $-EIO, %r11d
31704 diff --git a/arch/x86/lib/putuser.S b/arch/x86/lib/putuser.S
31705 index e0817a1..bc9cf66 100644
31706 --- a/arch/x86/lib/putuser.S
31707 +++ b/arch/x86/lib/putuser.S
31708 @@ -15,7 +15,9 @@
31709 #include <asm/errno.h>
31710 #include <asm/asm.h>
31711 #include <asm/smap.h>
31712 -
31713 +#include <asm/segment.h>
31714 +#include <asm/pgtable.h>
31715 +#include <asm/alternative-asm.h>
31716
31717 /*
31718 * __put_user_X
31719 @@ -29,55 +31,124 @@
31720 * as they get called from within inline assembly.
31721 */
31722
31723 -#define ENTER GET_THREAD_INFO(%_ASM_BX)
31724 -#define EXIT ASM_CLAC ; \
31725 +#define ENTER
31726 +#define EXIT ASM_CLAC ; \
31727 + pax_force_retaddr ; \
31728 ret
31729
31730 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
31731 +#define _DEST %_ASM_CX,%_ASM_BX
31732 +#else
31733 +#define _DEST %_ASM_CX
31734 +#endif
31735 +
31736 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
31737 +#define __copyuser_seg gs;
31738 +#else
31739 +#define __copyuser_seg
31740 +#endif
31741 +
31742 .text
31743 ENTRY(__put_user_1)
31744 ENTER
31745 +
31746 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
31747 + GET_THREAD_INFO(%_ASM_BX)
31748 cmp TI_addr_limit(%_ASM_BX),%_ASM_CX
31749 jae bad_put_user
31750 +
31751 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
31752 + mov pax_user_shadow_base,%_ASM_BX
31753 + cmp %_ASM_BX,%_ASM_CX
31754 + jb 1234f
31755 + xor %ebx,%ebx
31756 +1234:
31757 +#endif
31758 +
31759 +#endif
31760 +
31761 ASM_STAC
31762 -1: movb %al,(%_ASM_CX)
31763 +1: __copyuser_seg movb %al,(_DEST)
31764 xor %eax,%eax
31765 EXIT
31766 ENDPROC(__put_user_1)
31767
31768 ENTRY(__put_user_2)
31769 ENTER
31770 +
31771 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
31772 + GET_THREAD_INFO(%_ASM_BX)
31773 mov TI_addr_limit(%_ASM_BX),%_ASM_BX
31774 sub $1,%_ASM_BX
31775 cmp %_ASM_BX,%_ASM_CX
31776 jae bad_put_user
31777 +
31778 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
31779 + mov pax_user_shadow_base,%_ASM_BX
31780 + cmp %_ASM_BX,%_ASM_CX
31781 + jb 1234f
31782 + xor %ebx,%ebx
31783 +1234:
31784 +#endif
31785 +
31786 +#endif
31787 +
31788 ASM_STAC
31789 -2: movw %ax,(%_ASM_CX)
31790 +2: __copyuser_seg movw %ax,(_DEST)
31791 xor %eax,%eax
31792 EXIT
31793 ENDPROC(__put_user_2)
31794
31795 ENTRY(__put_user_4)
31796 ENTER
31797 +
31798 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
31799 + GET_THREAD_INFO(%_ASM_BX)
31800 mov TI_addr_limit(%_ASM_BX),%_ASM_BX
31801 sub $3,%_ASM_BX
31802 cmp %_ASM_BX,%_ASM_CX
31803 jae bad_put_user
31804 +
31805 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
31806 + mov pax_user_shadow_base,%_ASM_BX
31807 + cmp %_ASM_BX,%_ASM_CX
31808 + jb 1234f
31809 + xor %ebx,%ebx
31810 +1234:
31811 +#endif
31812 +
31813 +#endif
31814 +
31815 ASM_STAC
31816 -3: movl %eax,(%_ASM_CX)
31817 +3: __copyuser_seg movl %eax,(_DEST)
31818 xor %eax,%eax
31819 EXIT
31820 ENDPROC(__put_user_4)
31821
31822 ENTRY(__put_user_8)
31823 ENTER
31824 +
31825 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
31826 + GET_THREAD_INFO(%_ASM_BX)
31827 mov TI_addr_limit(%_ASM_BX),%_ASM_BX
31828 sub $7,%_ASM_BX
31829 cmp %_ASM_BX,%_ASM_CX
31830 jae bad_put_user
31831 +
31832 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
31833 + mov pax_user_shadow_base,%_ASM_BX
31834 + cmp %_ASM_BX,%_ASM_CX
31835 + jb 1234f
31836 + xor %ebx,%ebx
31837 +1234:
31838 +#endif
31839 +
31840 +#endif
31841 +
31842 ASM_STAC
31843 -4: mov %_ASM_AX,(%_ASM_CX)
31844 +4: __copyuser_seg mov %_ASM_AX,(_DEST)
31845 #ifdef CONFIG_X86_32
31846 -5: movl %edx,4(%_ASM_CX)
31847 +5: __copyuser_seg movl %edx,4(_DEST)
31848 #endif
31849 xor %eax,%eax
31850 EXIT
31851 diff --git a/arch/x86/lib/rwsem.S b/arch/x86/lib/rwsem.S
31852 index 40027db..37bb69d 100644
31853 --- a/arch/x86/lib/rwsem.S
31854 +++ b/arch/x86/lib/rwsem.S
31855 @@ -90,6 +90,7 @@ ENTRY(call_rwsem_down_read_failed)
31856 call rwsem_down_read_failed
31857 __ASM_SIZE(pop,) %__ASM_REG(dx)
31858 restore_common_regs
31859 + pax_force_retaddr
31860 ret
31861 ENDPROC(call_rwsem_down_read_failed)
31862
31863 @@ -98,6 +99,7 @@ ENTRY(call_rwsem_down_write_failed)
31864 movq %rax,%rdi
31865 call rwsem_down_write_failed
31866 restore_common_regs
31867 + pax_force_retaddr
31868 ret
31869 ENDPROC(call_rwsem_down_write_failed)
31870
31871 @@ -109,7 +111,8 @@ ENTRY(call_rwsem_wake)
31872 movq %rax,%rdi
31873 call rwsem_wake
31874 restore_common_regs
31875 -1: ret
31876 +1: pax_force_retaddr
31877 + ret
31878 ENDPROC(call_rwsem_wake)
31879
31880 ENTRY(call_rwsem_downgrade_wake)
31881 @@ -119,5 +122,6 @@ ENTRY(call_rwsem_downgrade_wake)
31882 call rwsem_downgrade_wake
31883 __ASM_SIZE(pop,) %__ASM_REG(dx)
31884 restore_common_regs
31885 + pax_force_retaddr
31886 ret
31887 ENDPROC(call_rwsem_downgrade_wake)
31888 diff --git a/arch/x86/lib/usercopy_32.c b/arch/x86/lib/usercopy_32.c
31889 index 91d93b9..4b22130 100644
31890 --- a/arch/x86/lib/usercopy_32.c
31891 +++ b/arch/x86/lib/usercopy_32.c
31892 @@ -42,11 +42,13 @@ do { \
31893 int __d0; \
31894 might_fault(); \
31895 __asm__ __volatile__( \
31896 + __COPYUSER_SET_ES \
31897 ASM_STAC "\n" \
31898 "0: rep; stosl\n" \
31899 " movl %2,%0\n" \
31900 "1: rep; stosb\n" \
31901 "2: " ASM_CLAC "\n" \
31902 + __COPYUSER_RESTORE_ES \
31903 ".section .fixup,\"ax\"\n" \
31904 "3: lea 0(%2,%0,4),%0\n" \
31905 " jmp 2b\n" \
31906 @@ -98,7 +100,7 @@ EXPORT_SYMBOL(__clear_user);
31907
31908 #ifdef CONFIG_X86_INTEL_USERCOPY
31909 static unsigned long
31910 -__copy_user_intel(void __user *to, const void *from, unsigned long size)
31911 +__generic_copy_to_user_intel(void __user *to, const void *from, unsigned long size)
31912 {
31913 int d0, d1;
31914 __asm__ __volatile__(
31915 @@ -110,36 +112,36 @@ __copy_user_intel(void __user *to, const void *from, unsigned long size)
31916 " .align 2,0x90\n"
31917 "3: movl 0(%4), %%eax\n"
31918 "4: movl 4(%4), %%edx\n"
31919 - "5: movl %%eax, 0(%3)\n"
31920 - "6: movl %%edx, 4(%3)\n"
31921 + "5: "__copyuser_seg" movl %%eax, 0(%3)\n"
31922 + "6: "__copyuser_seg" movl %%edx, 4(%3)\n"
31923 "7: movl 8(%4), %%eax\n"
31924 "8: movl 12(%4),%%edx\n"
31925 - "9: movl %%eax, 8(%3)\n"
31926 - "10: movl %%edx, 12(%3)\n"
31927 + "9: "__copyuser_seg" movl %%eax, 8(%3)\n"
31928 + "10: "__copyuser_seg" movl %%edx, 12(%3)\n"
31929 "11: movl 16(%4), %%eax\n"
31930 "12: movl 20(%4), %%edx\n"
31931 - "13: movl %%eax, 16(%3)\n"
31932 - "14: movl %%edx, 20(%3)\n"
31933 + "13: "__copyuser_seg" movl %%eax, 16(%3)\n"
31934 + "14: "__copyuser_seg" movl %%edx, 20(%3)\n"
31935 "15: movl 24(%4), %%eax\n"
31936 "16: movl 28(%4), %%edx\n"
31937 - "17: movl %%eax, 24(%3)\n"
31938 - "18: movl %%edx, 28(%3)\n"
31939 + "17: "__copyuser_seg" movl %%eax, 24(%3)\n"
31940 + "18: "__copyuser_seg" movl %%edx, 28(%3)\n"
31941 "19: movl 32(%4), %%eax\n"
31942 "20: movl 36(%4), %%edx\n"
31943 - "21: movl %%eax, 32(%3)\n"
31944 - "22: movl %%edx, 36(%3)\n"
31945 + "21: "__copyuser_seg" movl %%eax, 32(%3)\n"
31946 + "22: "__copyuser_seg" movl %%edx, 36(%3)\n"
31947 "23: movl 40(%4), %%eax\n"
31948 "24: movl 44(%4), %%edx\n"
31949 - "25: movl %%eax, 40(%3)\n"
31950 - "26: movl %%edx, 44(%3)\n"
31951 + "25: "__copyuser_seg" movl %%eax, 40(%3)\n"
31952 + "26: "__copyuser_seg" movl %%edx, 44(%3)\n"
31953 "27: movl 48(%4), %%eax\n"
31954 "28: movl 52(%4), %%edx\n"
31955 - "29: movl %%eax, 48(%3)\n"
31956 - "30: movl %%edx, 52(%3)\n"
31957 + "29: "__copyuser_seg" movl %%eax, 48(%3)\n"
31958 + "30: "__copyuser_seg" movl %%edx, 52(%3)\n"
31959 "31: movl 56(%4), %%eax\n"
31960 "32: movl 60(%4), %%edx\n"
31961 - "33: movl %%eax, 56(%3)\n"
31962 - "34: movl %%edx, 60(%3)\n"
31963 + "33: "__copyuser_seg" movl %%eax, 56(%3)\n"
31964 + "34: "__copyuser_seg" movl %%edx, 60(%3)\n"
31965 " addl $-64, %0\n"
31966 " addl $64, %4\n"
31967 " addl $64, %3\n"
31968 @@ -149,10 +151,116 @@ __copy_user_intel(void __user *to, const void *from, unsigned long size)
31969 " shrl $2, %0\n"
31970 " andl $3, %%eax\n"
31971 " cld\n"
31972 + __COPYUSER_SET_ES
31973 "99: rep; movsl\n"
31974 "36: movl %%eax, %0\n"
31975 "37: rep; movsb\n"
31976 "100:\n"
31977 + __COPYUSER_RESTORE_ES
31978 + ".section .fixup,\"ax\"\n"
31979 + "101: lea 0(%%eax,%0,4),%0\n"
31980 + " jmp 100b\n"
31981 + ".previous\n"
31982 + _ASM_EXTABLE(1b,100b)
31983 + _ASM_EXTABLE(2b,100b)
31984 + _ASM_EXTABLE(3b,100b)
31985 + _ASM_EXTABLE(4b,100b)
31986 + _ASM_EXTABLE(5b,100b)
31987 + _ASM_EXTABLE(6b,100b)
31988 + _ASM_EXTABLE(7b,100b)
31989 + _ASM_EXTABLE(8b,100b)
31990 + _ASM_EXTABLE(9b,100b)
31991 + _ASM_EXTABLE(10b,100b)
31992 + _ASM_EXTABLE(11b,100b)
31993 + _ASM_EXTABLE(12b,100b)
31994 + _ASM_EXTABLE(13b,100b)
31995 + _ASM_EXTABLE(14b,100b)
31996 + _ASM_EXTABLE(15b,100b)
31997 + _ASM_EXTABLE(16b,100b)
31998 + _ASM_EXTABLE(17b,100b)
31999 + _ASM_EXTABLE(18b,100b)
32000 + _ASM_EXTABLE(19b,100b)
32001 + _ASM_EXTABLE(20b,100b)
32002 + _ASM_EXTABLE(21b,100b)
32003 + _ASM_EXTABLE(22b,100b)
32004 + _ASM_EXTABLE(23b,100b)
32005 + _ASM_EXTABLE(24b,100b)
32006 + _ASM_EXTABLE(25b,100b)
32007 + _ASM_EXTABLE(26b,100b)
32008 + _ASM_EXTABLE(27b,100b)
32009 + _ASM_EXTABLE(28b,100b)
32010 + _ASM_EXTABLE(29b,100b)
32011 + _ASM_EXTABLE(30b,100b)
32012 + _ASM_EXTABLE(31b,100b)
32013 + _ASM_EXTABLE(32b,100b)
32014 + _ASM_EXTABLE(33b,100b)
32015 + _ASM_EXTABLE(34b,100b)
32016 + _ASM_EXTABLE(35b,100b)
32017 + _ASM_EXTABLE(36b,100b)
32018 + _ASM_EXTABLE(37b,100b)
32019 + _ASM_EXTABLE(99b,101b)
32020 + : "=&c"(size), "=&D" (d0), "=&S" (d1)
32021 + : "1"(to), "2"(from), "0"(size)
32022 + : "eax", "edx", "memory");
32023 + return size;
32024 +}
32025 +
32026 +static unsigned long
32027 +__generic_copy_from_user_intel(void *to, const void __user *from, unsigned long size)
32028 +{
32029 + int d0, d1;
32030 + __asm__ __volatile__(
32031 + " .align 2,0x90\n"
32032 + "1: "__copyuser_seg" movl 32(%4), %%eax\n"
32033 + " cmpl $67, %0\n"
32034 + " jbe 3f\n"
32035 + "2: "__copyuser_seg" movl 64(%4), %%eax\n"
32036 + " .align 2,0x90\n"
32037 + "3: "__copyuser_seg" movl 0(%4), %%eax\n"
32038 + "4: "__copyuser_seg" movl 4(%4), %%edx\n"
32039 + "5: movl %%eax, 0(%3)\n"
32040 + "6: movl %%edx, 4(%3)\n"
32041 + "7: "__copyuser_seg" movl 8(%4), %%eax\n"
32042 + "8: "__copyuser_seg" movl 12(%4),%%edx\n"
32043 + "9: movl %%eax, 8(%3)\n"
32044 + "10: movl %%edx, 12(%3)\n"
32045 + "11: "__copyuser_seg" movl 16(%4), %%eax\n"
32046 + "12: "__copyuser_seg" movl 20(%4), %%edx\n"
32047 + "13: movl %%eax, 16(%3)\n"
32048 + "14: movl %%edx, 20(%3)\n"
32049 + "15: "__copyuser_seg" movl 24(%4), %%eax\n"
32050 + "16: "__copyuser_seg" movl 28(%4), %%edx\n"
32051 + "17: movl %%eax, 24(%3)\n"
32052 + "18: movl %%edx, 28(%3)\n"
32053 + "19: "__copyuser_seg" movl 32(%4), %%eax\n"
32054 + "20: "__copyuser_seg" movl 36(%4), %%edx\n"
32055 + "21: movl %%eax, 32(%3)\n"
32056 + "22: movl %%edx, 36(%3)\n"
32057 + "23: "__copyuser_seg" movl 40(%4), %%eax\n"
32058 + "24: "__copyuser_seg" movl 44(%4), %%edx\n"
32059 + "25: movl %%eax, 40(%3)\n"
32060 + "26: movl %%edx, 44(%3)\n"
32061 + "27: "__copyuser_seg" movl 48(%4), %%eax\n"
32062 + "28: "__copyuser_seg" movl 52(%4), %%edx\n"
32063 + "29: movl %%eax, 48(%3)\n"
32064 + "30: movl %%edx, 52(%3)\n"
32065 + "31: "__copyuser_seg" movl 56(%4), %%eax\n"
32066 + "32: "__copyuser_seg" movl 60(%4), %%edx\n"
32067 + "33: movl %%eax, 56(%3)\n"
32068 + "34: movl %%edx, 60(%3)\n"
32069 + " addl $-64, %0\n"
32070 + " addl $64, %4\n"
32071 + " addl $64, %3\n"
32072 + " cmpl $63, %0\n"
32073 + " ja 1b\n"
32074 + "35: movl %0, %%eax\n"
32075 + " shrl $2, %0\n"
32076 + " andl $3, %%eax\n"
32077 + " cld\n"
32078 + "99: rep; "__copyuser_seg" movsl\n"
32079 + "36: movl %%eax, %0\n"
32080 + "37: rep; "__copyuser_seg" movsb\n"
32081 + "100:\n"
32082 ".section .fixup,\"ax\"\n"
32083 "101: lea 0(%%eax,%0,4),%0\n"
32084 " jmp 100b\n"
32085 @@ -207,41 +315,41 @@ __copy_user_zeroing_intel(void *to, const void __user *from, unsigned long size)
32086 int d0, d1;
32087 __asm__ __volatile__(
32088 " .align 2,0x90\n"
32089 - "0: movl 32(%4), %%eax\n"
32090 + "0: "__copyuser_seg" movl 32(%4), %%eax\n"
32091 " cmpl $67, %0\n"
32092 " jbe 2f\n"
32093 - "1: movl 64(%4), %%eax\n"
32094 + "1: "__copyuser_seg" movl 64(%4), %%eax\n"
32095 " .align 2,0x90\n"
32096 - "2: movl 0(%4), %%eax\n"
32097 - "21: movl 4(%4), %%edx\n"
32098 + "2: "__copyuser_seg" movl 0(%4), %%eax\n"
32099 + "21: "__copyuser_seg" movl 4(%4), %%edx\n"
32100 " movl %%eax, 0(%3)\n"
32101 " movl %%edx, 4(%3)\n"
32102 - "3: movl 8(%4), %%eax\n"
32103 - "31: movl 12(%4),%%edx\n"
32104 + "3: "__copyuser_seg" movl 8(%4), %%eax\n"
32105 + "31: "__copyuser_seg" movl 12(%4),%%edx\n"
32106 " movl %%eax, 8(%3)\n"
32107 " movl %%edx, 12(%3)\n"
32108 - "4: movl 16(%4), %%eax\n"
32109 - "41: movl 20(%4), %%edx\n"
32110 + "4: "__copyuser_seg" movl 16(%4), %%eax\n"
32111 + "41: "__copyuser_seg" movl 20(%4), %%edx\n"
32112 " movl %%eax, 16(%3)\n"
32113 " movl %%edx, 20(%3)\n"
32114 - "10: movl 24(%4), %%eax\n"
32115 - "51: movl 28(%4), %%edx\n"
32116 + "10: "__copyuser_seg" movl 24(%4), %%eax\n"
32117 + "51: "__copyuser_seg" movl 28(%4), %%edx\n"
32118 " movl %%eax, 24(%3)\n"
32119 " movl %%edx, 28(%3)\n"
32120 - "11: movl 32(%4), %%eax\n"
32121 - "61: movl 36(%4), %%edx\n"
32122 + "11: "__copyuser_seg" movl 32(%4), %%eax\n"
32123 + "61: "__copyuser_seg" movl 36(%4), %%edx\n"
32124 " movl %%eax, 32(%3)\n"
32125 " movl %%edx, 36(%3)\n"
32126 - "12: movl 40(%4), %%eax\n"
32127 - "71: movl 44(%4), %%edx\n"
32128 + "12: "__copyuser_seg" movl 40(%4), %%eax\n"
32129 + "71: "__copyuser_seg" movl 44(%4), %%edx\n"
32130 " movl %%eax, 40(%3)\n"
32131 " movl %%edx, 44(%3)\n"
32132 - "13: movl 48(%4), %%eax\n"
32133 - "81: movl 52(%4), %%edx\n"
32134 + "13: "__copyuser_seg" movl 48(%4), %%eax\n"
32135 + "81: "__copyuser_seg" movl 52(%4), %%edx\n"
32136 " movl %%eax, 48(%3)\n"
32137 " movl %%edx, 52(%3)\n"
32138 - "14: movl 56(%4), %%eax\n"
32139 - "91: movl 60(%4), %%edx\n"
32140 + "14: "__copyuser_seg" movl 56(%4), %%eax\n"
32141 + "91: "__copyuser_seg" movl 60(%4), %%edx\n"
32142 " movl %%eax, 56(%3)\n"
32143 " movl %%edx, 60(%3)\n"
32144 " addl $-64, %0\n"
32145 @@ -253,9 +361,9 @@ __copy_user_zeroing_intel(void *to, const void __user *from, unsigned long size)
32146 " shrl $2, %0\n"
32147 " andl $3, %%eax\n"
32148 " cld\n"
32149 - "6: rep; movsl\n"
32150 + "6: rep; "__copyuser_seg" movsl\n"
32151 " movl %%eax,%0\n"
32152 - "7: rep; movsb\n"
32153 + "7: rep; "__copyuser_seg" movsb\n"
32154 "8:\n"
32155 ".section .fixup,\"ax\"\n"
32156 "9: lea 0(%%eax,%0,4),%0\n"
32157 @@ -305,41 +413,41 @@ static unsigned long __copy_user_zeroing_intel_nocache(void *to,
32158
32159 __asm__ __volatile__(
32160 " .align 2,0x90\n"
32161 - "0: movl 32(%4), %%eax\n"
32162 + "0: "__copyuser_seg" movl 32(%4), %%eax\n"
32163 " cmpl $67, %0\n"
32164 " jbe 2f\n"
32165 - "1: movl 64(%4), %%eax\n"
32166 + "1: "__copyuser_seg" movl 64(%4), %%eax\n"
32167 " .align 2,0x90\n"
32168 - "2: movl 0(%4), %%eax\n"
32169 - "21: movl 4(%4), %%edx\n"
32170 + "2: "__copyuser_seg" movl 0(%4), %%eax\n"
32171 + "21: "__copyuser_seg" movl 4(%4), %%edx\n"
32172 " movnti %%eax, 0(%3)\n"
32173 " movnti %%edx, 4(%3)\n"
32174 - "3: movl 8(%4), %%eax\n"
32175 - "31: movl 12(%4),%%edx\n"
32176 + "3: "__copyuser_seg" movl 8(%4), %%eax\n"
32177 + "31: "__copyuser_seg" movl 12(%4),%%edx\n"
32178 " movnti %%eax, 8(%3)\n"
32179 " movnti %%edx, 12(%3)\n"
32180 - "4: movl 16(%4), %%eax\n"
32181 - "41: movl 20(%4), %%edx\n"
32182 + "4: "__copyuser_seg" movl 16(%4), %%eax\n"
32183 + "41: "__copyuser_seg" movl 20(%4), %%edx\n"
32184 " movnti %%eax, 16(%3)\n"
32185 " movnti %%edx, 20(%3)\n"
32186 - "10: movl 24(%4), %%eax\n"
32187 - "51: movl 28(%4), %%edx\n"
32188 + "10: "__copyuser_seg" movl 24(%4), %%eax\n"
32189 + "51: "__copyuser_seg" movl 28(%4), %%edx\n"
32190 " movnti %%eax, 24(%3)\n"
32191 " movnti %%edx, 28(%3)\n"
32192 - "11: movl 32(%4), %%eax\n"
32193 - "61: movl 36(%4), %%edx\n"
32194 + "11: "__copyuser_seg" movl 32(%4), %%eax\n"
32195 + "61: "__copyuser_seg" movl 36(%4), %%edx\n"
32196 " movnti %%eax, 32(%3)\n"
32197 " movnti %%edx, 36(%3)\n"
32198 - "12: movl 40(%4), %%eax\n"
32199 - "71: movl 44(%4), %%edx\n"
32200 + "12: "__copyuser_seg" movl 40(%4), %%eax\n"
32201 + "71: "__copyuser_seg" movl 44(%4), %%edx\n"
32202 " movnti %%eax, 40(%3)\n"
32203 " movnti %%edx, 44(%3)\n"
32204 - "13: movl 48(%4), %%eax\n"
32205 - "81: movl 52(%4), %%edx\n"
32206 + "13: "__copyuser_seg" movl 48(%4), %%eax\n"
32207 + "81: "__copyuser_seg" movl 52(%4), %%edx\n"
32208 " movnti %%eax, 48(%3)\n"
32209 " movnti %%edx, 52(%3)\n"
32210 - "14: movl 56(%4), %%eax\n"
32211 - "91: movl 60(%4), %%edx\n"
32212 + "14: "__copyuser_seg" movl 56(%4), %%eax\n"
32213 + "91: "__copyuser_seg" movl 60(%4), %%edx\n"
32214 " movnti %%eax, 56(%3)\n"
32215 " movnti %%edx, 60(%3)\n"
32216 " addl $-64, %0\n"
32217 @@ -352,9 +460,9 @@ static unsigned long __copy_user_zeroing_intel_nocache(void *to,
32218 " shrl $2, %0\n"
32219 " andl $3, %%eax\n"
32220 " cld\n"
32221 - "6: rep; movsl\n"
32222 + "6: rep; "__copyuser_seg" movsl\n"
32223 " movl %%eax,%0\n"
32224 - "7: rep; movsb\n"
32225 + "7: rep; "__copyuser_seg" movsb\n"
32226 "8:\n"
32227 ".section .fixup,\"ax\"\n"
32228 "9: lea 0(%%eax,%0,4),%0\n"
32229 @@ -399,41 +507,41 @@ static unsigned long __copy_user_intel_nocache(void *to,
32230
32231 __asm__ __volatile__(
32232 " .align 2,0x90\n"
32233 - "0: movl 32(%4), %%eax\n"
32234 + "0: "__copyuser_seg" movl 32(%4), %%eax\n"
32235 " cmpl $67, %0\n"
32236 " jbe 2f\n"
32237 - "1: movl 64(%4), %%eax\n"
32238 + "1: "__copyuser_seg" movl 64(%4), %%eax\n"
32239 " .align 2,0x90\n"
32240 - "2: movl 0(%4), %%eax\n"
32241 - "21: movl 4(%4), %%edx\n"
32242 + "2: "__copyuser_seg" movl 0(%4), %%eax\n"
32243 + "21: "__copyuser_seg" movl 4(%4), %%edx\n"
32244 " movnti %%eax, 0(%3)\n"
32245 " movnti %%edx, 4(%3)\n"
32246 - "3: movl 8(%4), %%eax\n"
32247 - "31: movl 12(%4),%%edx\n"
32248 + "3: "__copyuser_seg" movl 8(%4), %%eax\n"
32249 + "31: "__copyuser_seg" movl 12(%4),%%edx\n"
32250 " movnti %%eax, 8(%3)\n"
32251 " movnti %%edx, 12(%3)\n"
32252 - "4: movl 16(%4), %%eax\n"
32253 - "41: movl 20(%4), %%edx\n"
32254 + "4: "__copyuser_seg" movl 16(%4), %%eax\n"
32255 + "41: "__copyuser_seg" movl 20(%4), %%edx\n"
32256 " movnti %%eax, 16(%3)\n"
32257 " movnti %%edx, 20(%3)\n"
32258 - "10: movl 24(%4), %%eax\n"
32259 - "51: movl 28(%4), %%edx\n"
32260 + "10: "__copyuser_seg" movl 24(%4), %%eax\n"
32261 + "51: "__copyuser_seg" movl 28(%4), %%edx\n"
32262 " movnti %%eax, 24(%3)\n"
32263 " movnti %%edx, 28(%3)\n"
32264 - "11: movl 32(%4), %%eax\n"
32265 - "61: movl 36(%4), %%edx\n"
32266 + "11: "__copyuser_seg" movl 32(%4), %%eax\n"
32267 + "61: "__copyuser_seg" movl 36(%4), %%edx\n"
32268 " movnti %%eax, 32(%3)\n"
32269 " movnti %%edx, 36(%3)\n"
32270 - "12: movl 40(%4), %%eax\n"
32271 - "71: movl 44(%4), %%edx\n"
32272 + "12: "__copyuser_seg" movl 40(%4), %%eax\n"
32273 + "71: "__copyuser_seg" movl 44(%4), %%edx\n"
32274 " movnti %%eax, 40(%3)\n"
32275 " movnti %%edx, 44(%3)\n"
32276 - "13: movl 48(%4), %%eax\n"
32277 - "81: movl 52(%4), %%edx\n"
32278 + "13: "__copyuser_seg" movl 48(%4), %%eax\n"
32279 + "81: "__copyuser_seg" movl 52(%4), %%edx\n"
32280 " movnti %%eax, 48(%3)\n"
32281 " movnti %%edx, 52(%3)\n"
32282 - "14: movl 56(%4), %%eax\n"
32283 - "91: movl 60(%4), %%edx\n"
32284 + "14: "__copyuser_seg" movl 56(%4), %%eax\n"
32285 + "91: "__copyuser_seg" movl 60(%4), %%edx\n"
32286 " movnti %%eax, 56(%3)\n"
32287 " movnti %%edx, 60(%3)\n"
32288 " addl $-64, %0\n"
32289 @@ -446,9 +554,9 @@ static unsigned long __copy_user_intel_nocache(void *to,
32290 " shrl $2, %0\n"
32291 " andl $3, %%eax\n"
32292 " cld\n"
32293 - "6: rep; movsl\n"
32294 + "6: rep; "__copyuser_seg" movsl\n"
32295 " movl %%eax,%0\n"
32296 - "7: rep; movsb\n"
32297 + "7: rep; "__copyuser_seg" movsb\n"
32298 "8:\n"
32299 ".section .fixup,\"ax\"\n"
32300 "9: lea 0(%%eax,%0,4),%0\n"
32301 @@ -488,32 +596,36 @@ static unsigned long __copy_user_intel_nocache(void *to,
32302 */
32303 unsigned long __copy_user_zeroing_intel(void *to, const void __user *from,
32304 unsigned long size);
32305 -unsigned long __copy_user_intel(void __user *to, const void *from,
32306 +unsigned long __generic_copy_to_user_intel(void __user *to, const void *from,
32307 + unsigned long size);
32308 +unsigned long __generic_copy_from_user_intel(void *to, const void __user *from,
32309 unsigned long size);
32310 unsigned long __copy_user_zeroing_intel_nocache(void *to,
32311 const void __user *from, unsigned long size);
32312 #endif /* CONFIG_X86_INTEL_USERCOPY */
32313
32314 /* Generic arbitrary sized copy. */
32315 -#define __copy_user(to, from, size) \
32316 +#define __copy_user(to, from, size, prefix, set, restore) \
32317 do { \
32318 int __d0, __d1, __d2; \
32319 __asm__ __volatile__( \
32320 + set \
32321 " cmp $7,%0\n" \
32322 " jbe 1f\n" \
32323 " movl %1,%0\n" \
32324 " negl %0\n" \
32325 " andl $7,%0\n" \
32326 " subl %0,%3\n" \
32327 - "4: rep; movsb\n" \
32328 + "4: rep; "prefix"movsb\n" \
32329 " movl %3,%0\n" \
32330 " shrl $2,%0\n" \
32331 " andl $3,%3\n" \
32332 " .align 2,0x90\n" \
32333 - "0: rep; movsl\n" \
32334 + "0: rep; "prefix"movsl\n" \
32335 " movl %3,%0\n" \
32336 - "1: rep; movsb\n" \
32337 + "1: rep; "prefix"movsb\n" \
32338 "2:\n" \
32339 + restore \
32340 ".section .fixup,\"ax\"\n" \
32341 "5: addl %3,%0\n" \
32342 " jmp 2b\n" \
32343 @@ -538,14 +650,14 @@ do { \
32344 " negl %0\n" \
32345 " andl $7,%0\n" \
32346 " subl %0,%3\n" \
32347 - "4: rep; movsb\n" \
32348 + "4: rep; "__copyuser_seg"movsb\n" \
32349 " movl %3,%0\n" \
32350 " shrl $2,%0\n" \
32351 " andl $3,%3\n" \
32352 " .align 2,0x90\n" \
32353 - "0: rep; movsl\n" \
32354 + "0: rep; "__copyuser_seg"movsl\n" \
32355 " movl %3,%0\n" \
32356 - "1: rep; movsb\n" \
32357 + "1: rep; "__copyuser_seg"movsb\n" \
32358 "2:\n" \
32359 ".section .fixup,\"ax\"\n" \
32360 "5: addl %3,%0\n" \
32361 @@ -572,9 +684,9 @@ unsigned long __copy_to_user_ll(void __user *to, const void *from,
32362 {
32363 stac();
32364 if (movsl_is_ok(to, from, n))
32365 - __copy_user(to, from, n);
32366 + __copy_user(to, from, n, "", __COPYUSER_SET_ES, __COPYUSER_RESTORE_ES);
32367 else
32368 - n = __copy_user_intel(to, from, n);
32369 + n = __generic_copy_to_user_intel(to, from, n);
32370 clac();
32371 return n;
32372 }
32373 @@ -598,10 +710,9 @@ unsigned long __copy_from_user_ll_nozero(void *to, const void __user *from,
32374 {
32375 stac();
32376 if (movsl_is_ok(to, from, n))
32377 - __copy_user(to, from, n);
32378 + __copy_user(to, from, n, __copyuser_seg, "", "");
32379 else
32380 - n = __copy_user_intel((void __user *)to,
32381 - (const void *)from, n);
32382 + n = __generic_copy_from_user_intel(to, from, n);
32383 clac();
32384 return n;
32385 }
32386 @@ -632,60 +743,38 @@ unsigned long __copy_from_user_ll_nocache_nozero(void *to, const void __user *fr
32387 if (n > 64 && cpu_has_xmm2)
32388 n = __copy_user_intel_nocache(to, from, n);
32389 else
32390 - __copy_user(to, from, n);
32391 + __copy_user(to, from, n, __copyuser_seg, "", "");
32392 #else
32393 - __copy_user(to, from, n);
32394 + __copy_user(to, from, n, __copyuser_seg, "", "");
32395 #endif
32396 clac();
32397 return n;
32398 }
32399 EXPORT_SYMBOL(__copy_from_user_ll_nocache_nozero);
32400
32401 -/**
32402 - * copy_to_user: - Copy a block of data into user space.
32403 - * @to: Destination address, in user space.
32404 - * @from: Source address, in kernel space.
32405 - * @n: Number of bytes to copy.
32406 - *
32407 - * Context: User context only. This function may sleep if pagefaults are
32408 - * enabled.
32409 - *
32410 - * Copy data from kernel space to user space.
32411 - *
32412 - * Returns number of bytes that could not be copied.
32413 - * On success, this will be zero.
32414 - */
32415 -unsigned long _copy_to_user(void __user *to, const void *from, unsigned n)
32416 +#ifdef CONFIG_PAX_MEMORY_UDEREF
32417 +void __set_fs(mm_segment_t x)
32418 {
32419 - if (access_ok(VERIFY_WRITE, to, n))
32420 - n = __copy_to_user(to, from, n);
32421 - return n;
32422 + switch (x.seg) {
32423 + case 0:
32424 + loadsegment(gs, 0);
32425 + break;
32426 + case TASK_SIZE_MAX:
32427 + loadsegment(gs, __USER_DS);
32428 + break;
32429 + case -1UL:
32430 + loadsegment(gs, __KERNEL_DS);
32431 + break;
32432 + default:
32433 + BUG();
32434 + }
32435 }
32436 -EXPORT_SYMBOL(_copy_to_user);
32437 +EXPORT_SYMBOL(__set_fs);
32438
32439 -/**
32440 - * copy_from_user: - Copy a block of data from user space.
32441 - * @to: Destination address, in kernel space.
32442 - * @from: Source address, in user space.
32443 - * @n: Number of bytes to copy.
32444 - *
32445 - * Context: User context only. This function may sleep if pagefaults are
32446 - * enabled.
32447 - *
32448 - * Copy data from user space to kernel space.
32449 - *
32450 - * Returns number of bytes that could not be copied.
32451 - * On success, this will be zero.
32452 - *
32453 - * If some data could not be copied, this function will pad the copied
32454 - * data to the requested size using zero bytes.
32455 - */
32456 -unsigned long _copy_from_user(void *to, const void __user *from, unsigned n)
32457 +void set_fs(mm_segment_t x)
32458 {
32459 - if (access_ok(VERIFY_READ, from, n))
32460 - n = __copy_from_user(to, from, n);
32461 - else
32462 - memset(to, 0, n);
32463 - return n;
32464 + current_thread_info()->addr_limit = x;
32465 + __set_fs(x);
32466 }
32467 -EXPORT_SYMBOL(_copy_from_user);
32468 +EXPORT_SYMBOL(set_fs);
32469 +#endif
32470 diff --git a/arch/x86/lib/usercopy_64.c b/arch/x86/lib/usercopy_64.c
32471 index 0a42327..45c0063 100644
32472 --- a/arch/x86/lib/usercopy_64.c
32473 +++ b/arch/x86/lib/usercopy_64.c
32474 @@ -18,6 +18,7 @@ unsigned long __clear_user(void __user *addr, unsigned long size)
32475 might_fault();
32476 /* no memory constraint because it doesn't change any memory gcc knows
32477 about */
32478 + pax_open_userland();
32479 stac();
32480 asm volatile(
32481 " testq %[size8],%[size8]\n"
32482 @@ -39,9 +40,10 @@ unsigned long __clear_user(void __user *addr, unsigned long size)
32483 _ASM_EXTABLE(0b,3b)
32484 _ASM_EXTABLE(1b,2b)
32485 : [size8] "=&c"(size), [dst] "=&D" (__d0)
32486 - : [size1] "r"(size & 7), "[size8]" (size / 8), "[dst]"(addr),
32487 + : [size1] "r"(size & 7), "[size8]" (size / 8), "[dst]"(____m(addr)),
32488 [zero] "r" (0UL), [eight] "r" (8UL));
32489 clac();
32490 + pax_close_userland();
32491 return size;
32492 }
32493 EXPORT_SYMBOL(__clear_user);
32494 @@ -54,12 +56,11 @@ unsigned long clear_user(void __user *to, unsigned long n)
32495 }
32496 EXPORT_SYMBOL(clear_user);
32497
32498 -unsigned long copy_in_user(void __user *to, const void __user *from, unsigned len)
32499 +unsigned long copy_in_user(void __user *to, const void __user *from, unsigned long len)
32500 {
32501 - if (access_ok(VERIFY_WRITE, to, len) && access_ok(VERIFY_READ, from, len)) {
32502 - return copy_user_generic((__force void *)to, (__force void *)from, len);
32503 - }
32504 - return len;
32505 + if (access_ok(VERIFY_WRITE, to, len) && access_ok(VERIFY_READ, from, len))
32506 + return copy_user_generic((void __force_kernel *)____m(to), (void __force_kernel *)____m(from), len);
32507 + return len;
32508 }
32509 EXPORT_SYMBOL(copy_in_user);
32510
32511 @@ -69,8 +70,10 @@ EXPORT_SYMBOL(copy_in_user);
32512 * it is not necessary to optimize tail handling.
32513 */
32514 __visible unsigned long
32515 -copy_user_handle_tail(char *to, char *from, unsigned len)
32516 +copy_user_handle_tail(char __user *to, char __user *from, unsigned long len)
32517 {
32518 + clac();
32519 + pax_close_userland();
32520 for (; len; --len, to++) {
32521 char c;
32522
32523 @@ -79,10 +82,9 @@ copy_user_handle_tail(char *to, char *from, unsigned len)
32524 if (__put_user_nocheck(c, to, sizeof(char)))
32525 break;
32526 }
32527 - clac();
32528
32529 /* If the destination is a kernel buffer, we always clear the end */
32530 - if (!__addr_ok(to))
32531 - memset(to, 0, len);
32532 + if (!__addr_ok(to) && (unsigned long)to >= TASK_SIZE_MAX + pax_user_shadow_base)
32533 + memset((void __force_kernel *)to, 0, len);
32534 return len;
32535 }
32536 diff --git a/arch/x86/math-emu/fpu_aux.c b/arch/x86/math-emu/fpu_aux.c
32537 index 024f6e9..308f1b0 100644
32538 --- a/arch/x86/math-emu/fpu_aux.c
32539 +++ b/arch/x86/math-emu/fpu_aux.c
32540 @@ -52,7 +52,7 @@ void fpstate_init_soft(struct swregs_state *soft)
32541
32542 void finit(void)
32543 {
32544 - fpstate_init_soft(&current->thread.fpu.state.soft);
32545 + fpstate_init_soft(&current->thread.fpu.state->soft);
32546 }
32547
32548 /*
32549 diff --git a/arch/x86/math-emu/fpu_entry.c b/arch/x86/math-emu/fpu_entry.c
32550 index e945fed..bffe686 100644
32551 --- a/arch/x86/math-emu/fpu_entry.c
32552 +++ b/arch/x86/math-emu/fpu_entry.c
32553 @@ -643,7 +643,7 @@ int fpregs_soft_set(struct task_struct *target,
32554 unsigned int pos, unsigned int count,
32555 const void *kbuf, const void __user *ubuf)
32556 {
32557 - struct swregs_state *s387 = &target->thread.fpu.state.soft;
32558 + struct swregs_state *s387 = &target->thread.fpu.state->soft;
32559 void *space = s387->st_space;
32560 int ret;
32561 int offset, other, i, tags, regnr, tag, newtop;
32562 @@ -695,7 +695,7 @@ int fpregs_soft_get(struct task_struct *target,
32563 unsigned int pos, unsigned int count,
32564 void *kbuf, void __user *ubuf)
32565 {
32566 - struct swregs_state *s387 = &target->thread.fpu.state.soft;
32567 + struct swregs_state *s387 = &target->thread.fpu.state->soft;
32568 const void *space = s387->st_space;
32569 int ret;
32570 int offset = (S387->ftop & 7) * 10, other = 80 - offset;
32571 diff --git a/arch/x86/math-emu/fpu_system.h b/arch/x86/math-emu/fpu_system.h
32572 index 5e044d5..d342fce 100644
32573 --- a/arch/x86/math-emu/fpu_system.h
32574 +++ b/arch/x86/math-emu/fpu_system.h
32575 @@ -46,7 +46,7 @@ static inline struct desc_struct FPU_get_ldt_descriptor(unsigned seg)
32576 #define SEG_EXPAND_DOWN(s) (((s).b & ((1 << 11) | (1 << 10))) \
32577 == (1 << 10))
32578
32579 -#define I387 (&current->thread.fpu.state)
32580 +#define I387 (current->thread.fpu.state)
32581 #define FPU_info (I387->soft.info)
32582
32583 #define FPU_CS (*(unsigned short *) &(FPU_info->regs->cs))
32584 diff --git a/arch/x86/mm/Makefile b/arch/x86/mm/Makefile
32585 index 65c47fd..3e0fd98 100644
32586 --- a/arch/x86/mm/Makefile
32587 +++ b/arch/x86/mm/Makefile
32588 @@ -33,3 +33,7 @@ obj-$(CONFIG_ACPI_NUMA) += srat.o
32589 obj-$(CONFIG_NUMA_EMU) += numa_emulation.o
32590
32591 obj-$(CONFIG_X86_INTEL_MPX) += mpx.o
32592 +
32593 +quote:="
32594 +obj-$(CONFIG_X86_64) += uderef_64.o
32595 +CFLAGS_uderef_64.o := $(subst $(quote),,$(CONFIG_ARCH_HWEIGHT_CFLAGS)) -fcall-saved-rax
32596 diff --git a/arch/x86/mm/extable.c b/arch/x86/mm/extable.c
32597 index 903ec1e..41b4708 100644
32598 --- a/arch/x86/mm/extable.c
32599 +++ b/arch/x86/mm/extable.c
32600 @@ -2,16 +2,29 @@
32601 #include <linux/spinlock.h>
32602 #include <linux/sort.h>
32603 #include <asm/uaccess.h>
32604 +#include <asm/boot.h>
32605
32606 static inline unsigned long
32607 ex_insn_addr(const struct exception_table_entry *x)
32608 {
32609 - return (unsigned long)&x->insn + x->insn;
32610 + unsigned long reloc = 0;
32611 +
32612 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
32613 + reloc = ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
32614 +#endif
32615 +
32616 + return (unsigned long)&x->insn + x->insn + reloc;
32617 }
32618 static inline unsigned long
32619 ex_fixup_addr(const struct exception_table_entry *x)
32620 {
32621 - return (unsigned long)&x->fixup + x->fixup;
32622 + unsigned long reloc = 0;
32623 +
32624 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
32625 + reloc = ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
32626 +#endif
32627 +
32628 + return (unsigned long)&x->fixup + x->fixup + reloc;
32629 }
32630
32631 int fixup_exception(struct pt_regs *regs)
32632 @@ -20,7 +33,7 @@ int fixup_exception(struct pt_regs *regs)
32633 unsigned long new_ip;
32634
32635 #ifdef CONFIG_PNPBIOS
32636 - if (unlikely(SEGMENT_IS_PNP_CODE(regs->cs))) {
32637 + if (unlikely(!v8086_mode(regs) && SEGMENT_IS_PNP_CODE(regs->cs))) {
32638 extern u32 pnp_bios_fault_eip, pnp_bios_fault_esp;
32639 extern u32 pnp_bios_is_utter_crap;
32640 pnp_bios_is_utter_crap = 1;
32641 @@ -145,6 +158,13 @@ void sort_extable(struct exception_table_entry *start,
32642 i += 4;
32643 p->fixup -= i;
32644 i += 4;
32645 +
32646 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
32647 + BUILD_BUG_ON(!IS_ENABLED(CONFIG_BUILDTIME_EXTABLE_SORT));
32648 + p->insn -= ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
32649 + p->fixup -= ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
32650 +#endif
32651 +
32652 }
32653 }
32654
32655 diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
32656 index e830c71..96cfc3d 100644
32657 --- a/arch/x86/mm/fault.c
32658 +++ b/arch/x86/mm/fault.c
32659 @@ -14,6 +14,8 @@
32660 #include <linux/prefetch.h> /* prefetchw */
32661 #include <linux/context_tracking.h> /* exception_enter(), ... */
32662 #include <linux/uaccess.h> /* faulthandler_disabled() */
32663 +#include <linux/unistd.h>
32664 +#include <linux/compiler.h>
32665
32666 #include <asm/traps.h> /* dotraplinkage, ... */
32667 #include <asm/pgalloc.h> /* pgd_*(), ... */
32668 @@ -21,6 +23,11 @@
32669 #include <asm/fixmap.h> /* VSYSCALL_ADDR */
32670 #include <asm/vsyscall.h> /* emulate_vsyscall */
32671 #include <asm/vm86.h> /* struct vm86 */
32672 +#include <asm/tlbflush.h>
32673 +
32674 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
32675 +#include <asm/stacktrace.h>
32676 +#endif
32677
32678 #define CREATE_TRACE_POINTS
32679 #include <asm/trace/exceptions.h>
32680 @@ -122,7 +129,10 @@ check_prefetch_opcode(struct pt_regs *regs, unsigned char *instr,
32681 return !instr_lo || (instr_lo>>1) == 1;
32682 case 0x00:
32683 /* Prefetch instruction is 0x0F0D or 0x0F18 */
32684 - if (probe_kernel_address(instr, opcode))
32685 + if (user_mode(regs)) {
32686 + if (__copy_from_user_inatomic(&opcode, (unsigned char __force_user *)(instr), 1))
32687 + return 0;
32688 + } else if (probe_kernel_address(instr, opcode))
32689 return 0;
32690
32691 *prefetch = (instr_lo == 0xF) &&
32692 @@ -156,7 +166,10 @@ is_prefetch(struct pt_regs *regs, unsigned long error_code, unsigned long addr)
32693 while (instr < max_instr) {
32694 unsigned char opcode;
32695
32696 - if (probe_kernel_address(instr, opcode))
32697 + if (user_mode(regs)) {
32698 + if (__copy_from_user_inatomic(&opcode, (unsigned char __force_user *)(instr), 1))
32699 + break;
32700 + } else if (probe_kernel_address(instr, opcode))
32701 break;
32702
32703 instr++;
32704 @@ -187,6 +200,34 @@ force_sig_info_fault(int si_signo, int si_code, unsigned long address,
32705 force_sig_info(si_signo, &info, tsk);
32706 }
32707
32708 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
32709 +static bool pax_is_fetch_fault(struct pt_regs *regs, unsigned long error_code, unsigned long address);
32710 +#endif
32711 +
32712 +#ifdef CONFIG_PAX_EMUTRAMP
32713 +static int pax_handle_fetch_fault(struct pt_regs *regs);
32714 +#endif
32715 +
32716 +#ifdef CONFIG_PAX_PAGEEXEC
32717 +static inline pmd_t * pax_get_pmd(struct mm_struct *mm, unsigned long address)
32718 +{
32719 + pgd_t *pgd;
32720 + pud_t *pud;
32721 + pmd_t *pmd;
32722 +
32723 + pgd = pgd_offset(mm, address);
32724 + if (!pgd_present(*pgd))
32725 + return NULL;
32726 + pud = pud_offset(pgd, address);
32727 + if (!pud_present(*pud))
32728 + return NULL;
32729 + pmd = pmd_offset(pud, address);
32730 + if (!pmd_present(*pmd))
32731 + return NULL;
32732 + return pmd;
32733 +}
32734 +#endif
32735 +
32736 DEFINE_SPINLOCK(pgd_lock);
32737 LIST_HEAD(pgd_list);
32738
32739 @@ -237,10 +278,27 @@ void vmalloc_sync_all(void)
32740 for (address = VMALLOC_START & PMD_MASK;
32741 address >= TASK_SIZE && address < FIXADDR_TOP;
32742 address += PMD_SIZE) {
32743 +
32744 +#ifdef CONFIG_PAX_PER_CPU_PGD
32745 + unsigned long cpu;
32746 +#else
32747 struct page *page;
32748 +#endif
32749
32750 spin_lock(&pgd_lock);
32751 +
32752 +#ifdef CONFIG_PAX_PER_CPU_PGD
32753 + for (cpu = 0; cpu < nr_cpu_ids; ++cpu) {
32754 + pgd_t *pgd = get_cpu_pgd(cpu, user);
32755 + pmd_t *ret;
32756 +
32757 + ret = vmalloc_sync_one(pgd, address);
32758 + if (!ret)
32759 + break;
32760 + pgd = get_cpu_pgd(cpu, kernel);
32761 +#else
32762 list_for_each_entry(page, &pgd_list, lru) {
32763 + pgd_t *pgd;
32764 spinlock_t *pgt_lock;
32765 pmd_t *ret;
32766
32767 @@ -248,8 +306,14 @@ void vmalloc_sync_all(void)
32768 pgt_lock = &pgd_page_get_mm(page)->page_table_lock;
32769
32770 spin_lock(pgt_lock);
32771 - ret = vmalloc_sync_one(page_address(page), address);
32772 + pgd = page_address(page);
32773 +#endif
32774 +
32775 + ret = vmalloc_sync_one(pgd, address);
32776 +
32777 +#ifndef CONFIG_PAX_PER_CPU_PGD
32778 spin_unlock(pgt_lock);
32779 +#endif
32780
32781 if (!ret)
32782 break;
32783 @@ -283,6 +347,12 @@ static noinline int vmalloc_fault(unsigned long address)
32784 * an interrupt in the middle of a task switch..
32785 */
32786 pgd_paddr = read_cr3();
32787 +
32788 +#ifdef CONFIG_PAX_PER_CPU_PGD
32789 + BUG_ON(__pa(get_cpu_pgd(smp_processor_id(), kernel)) != (pgd_paddr & __PHYSICAL_MASK));
32790 + vmalloc_sync_one(__va(pgd_paddr + PAGE_SIZE), address);
32791 +#endif
32792 +
32793 pmd_k = vmalloc_sync_one(__va(pgd_paddr), address);
32794 if (!pmd_k)
32795 return -1;
32796 @@ -382,11 +452,25 @@ static noinline int vmalloc_fault(unsigned long address)
32797 * happen within a race in page table update. In the later
32798 * case just flush:
32799 */
32800 - pgd = pgd_offset(current->active_mm, address);
32801 +
32802 pgd_ref = pgd_offset_k(address);
32803 if (pgd_none(*pgd_ref))
32804 return -1;
32805
32806 +#ifdef CONFIG_PAX_PER_CPU_PGD
32807 + BUG_ON(__pa(get_cpu_pgd(smp_processor_id(), kernel)) != (read_cr3() & __PHYSICAL_MASK));
32808 + pgd = pgd_offset_cpu(smp_processor_id(), user, address);
32809 + if (pgd_none(*pgd)) {
32810 + set_pgd(pgd, *pgd_ref);
32811 + arch_flush_lazy_mmu_mode();
32812 + } else {
32813 + BUG_ON(pgd_page_vaddr(*pgd) != pgd_page_vaddr(*pgd_ref));
32814 + }
32815 + pgd = pgd_offset_cpu(smp_processor_id(), kernel, address);
32816 +#else
32817 + pgd = pgd_offset(current->active_mm, address);
32818 +#endif
32819 +
32820 if (pgd_none(*pgd)) {
32821 set_pgd(pgd, *pgd_ref);
32822 arch_flush_lazy_mmu_mode();
32823 @@ -559,7 +643,7 @@ static int is_errata93(struct pt_regs *regs, unsigned long address)
32824 static int is_errata100(struct pt_regs *regs, unsigned long address)
32825 {
32826 #ifdef CONFIG_X86_64
32827 - if ((regs->cs == __USER32_CS || (regs->cs & (1<<2))) && (address >> 32))
32828 + if ((regs->cs == __USER32_CS || (regs->cs & SEGMENT_LDT)) && (address >> 32))
32829 return 1;
32830 #endif
32831 return 0;
32832 @@ -586,9 +670,9 @@ static int is_f00f_bug(struct pt_regs *regs, unsigned long address)
32833 }
32834
32835 static const char nx_warning[] = KERN_CRIT
32836 -"kernel tried to execute NX-protected page - exploit attempt? (uid: %d)\n";
32837 +"kernel tried to execute NX-protected page - exploit attempt? (uid: %d, task: %s, pid: %d)\n";
32838 static const char smep_warning[] = KERN_CRIT
32839 -"unable to execute userspace code (SMEP?) (uid: %d)\n";
32840 +"unable to execute userspace code (SMEP?) (uid: %d, task: %s, pid: %d)\n";
32841
32842 static void
32843 show_fault_oops(struct pt_regs *regs, unsigned long error_code,
32844 @@ -597,7 +681,7 @@ show_fault_oops(struct pt_regs *regs, unsigned long error_code,
32845 if (!oops_may_print())
32846 return;
32847
32848 - if (error_code & PF_INSTR) {
32849 + if ((__supported_pte_mask & _PAGE_NX) && (error_code & PF_INSTR)) {
32850 unsigned int level;
32851 pgd_t *pgd;
32852 pte_t *pte;
32853 @@ -608,13 +692,25 @@ show_fault_oops(struct pt_regs *regs, unsigned long error_code,
32854 pte = lookup_address_in_pgd(pgd, address, &level);
32855
32856 if (pte && pte_present(*pte) && !pte_exec(*pte))
32857 - printk(nx_warning, from_kuid(&init_user_ns, current_uid()));
32858 + printk(nx_warning, from_kuid_munged(&init_user_ns, current_uid()), current->comm, task_pid_nr(current));
32859 if (pte && pte_present(*pte) && pte_exec(*pte) &&
32860 (pgd_flags(*pgd) & _PAGE_USER) &&
32861 (__read_cr4() & X86_CR4_SMEP))
32862 - printk(smep_warning, from_kuid(&init_user_ns, current_uid()));
32863 + printk(smep_warning, from_kuid(&init_user_ns, current_uid()), current->comm, task_pid_nr(current));
32864 }
32865
32866 +#ifdef CONFIG_PAX_KERNEXEC
32867 + if (init_mm.start_code <= address && address < init_mm.end_code) {
32868 + if (current->signal->curr_ip)
32869 + printk(KERN_EMERG "PAX: From %pI4: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n",
32870 + &current->signal->curr_ip, current->comm, task_pid_nr(current),
32871 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
32872 + else
32873 + printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n", current->comm, task_pid_nr(current),
32874 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
32875 + }
32876 +#endif
32877 +
32878 printk(KERN_ALERT "BUG: unable to handle kernel ");
32879 if (address < PAGE_SIZE)
32880 printk(KERN_CONT "NULL pointer dereference");
32881 @@ -793,6 +889,22 @@ __bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code,
32882 return;
32883 }
32884 #endif
32885 +
32886 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
32887 + if (pax_is_fetch_fault(regs, error_code, address)) {
32888 +
32889 +#ifdef CONFIG_PAX_EMUTRAMP
32890 + switch (pax_handle_fetch_fault(regs)) {
32891 + case 2:
32892 + return;
32893 + }
32894 +#endif
32895 +
32896 + pax_report_fault(regs, (void *)regs->ip, (void *)regs->sp);
32897 + do_group_exit(SIGKILL);
32898 + }
32899 +#endif
32900 +
32901 /* Kernel addresses are always protection faults: */
32902 if (address >= TASK_SIZE)
32903 error_code |= PF_PROT;
32904 @@ -875,7 +987,7 @@ do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address,
32905 if (fault & (VM_FAULT_HWPOISON|VM_FAULT_HWPOISON_LARGE)) {
32906 printk(KERN_ERR
32907 "MCE: Killing %s:%d due to hardware memory corruption fault at %lx\n",
32908 - tsk->comm, tsk->pid, address);
32909 + tsk->comm, task_pid_nr(tsk), address);
32910 code = BUS_MCEERR_AR;
32911 }
32912 #endif
32913 @@ -927,6 +1039,107 @@ static int spurious_fault_check(unsigned long error_code, pte_t *pte)
32914 return 1;
32915 }
32916
32917 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC)
32918 +static inline unsigned long get_limit(unsigned long segment)
32919 +{
32920 + unsigned long __limit;
32921 +
32922 + asm("lsll %1,%0" : "=r" (__limit) : "r" (segment));
32923 + return __limit + 1;
32924 +}
32925 +
32926 +static int pax_handle_pageexec_fault(struct pt_regs *regs, struct mm_struct *mm, unsigned long address, unsigned long error_code)
32927 +{
32928 + pte_t *pte;
32929 + pmd_t *pmd;
32930 + spinlock_t *ptl;
32931 + unsigned char pte_mask;
32932 +
32933 + if ((__supported_pte_mask & _PAGE_NX) || (error_code & (PF_PROT|PF_USER)) != (PF_PROT|PF_USER) || v8086_mode(regs) ||
32934 + !(mm->pax_flags & MF_PAX_PAGEEXEC))
32935 + return 0;
32936 +
32937 + /* PaX: it's our fault, let's handle it if we can */
32938 +
32939 + /* PaX: take a look at read faults before acquiring any locks */
32940 + if (unlikely(!(error_code & PF_WRITE) && (regs->ip == address))) {
32941 + /* instruction fetch attempt from a protected page in user mode */
32942 + up_read(&mm->mmap_sem);
32943 +
32944 +#ifdef CONFIG_PAX_EMUTRAMP
32945 + switch (pax_handle_fetch_fault(regs)) {
32946 + case 2:
32947 + return 1;
32948 + }
32949 +#endif
32950 +
32951 + pax_report_fault(regs, (void *)regs->ip, (void *)regs->sp);
32952 + do_group_exit(SIGKILL);
32953 + }
32954 +
32955 + pmd = pax_get_pmd(mm, address);
32956 + if (unlikely(!pmd))
32957 + return 0;
32958 +
32959 + pte = pte_offset_map_lock(mm, pmd, address, &ptl);
32960 + if (unlikely(!(pte_val(*pte) & _PAGE_PRESENT) || pte_user(*pte))) {
32961 + pte_unmap_unlock(pte, ptl);
32962 + return 0;
32963 + }
32964 +
32965 + if (unlikely((error_code & PF_WRITE) && !pte_write(*pte))) {
32966 + /* write attempt to a protected page in user mode */
32967 + pte_unmap_unlock(pte, ptl);
32968 + return 0;
32969 + }
32970 +
32971 +#ifdef CONFIG_SMP
32972 + if (likely(address > get_limit(regs->cs) && cpumask_test_cpu(smp_processor_id(), &mm->context.cpu_user_cs_mask)))
32973 +#else
32974 + if (likely(address > get_limit(regs->cs)))
32975 +#endif
32976 + {
32977 + set_pte(pte, pte_mkread(*pte));
32978 + __flush_tlb_one(address);
32979 + pte_unmap_unlock(pte, ptl);
32980 + up_read(&mm->mmap_sem);
32981 + return 1;
32982 + }
32983 +
32984 + pte_mask = _PAGE_ACCESSED | _PAGE_USER | ((error_code & PF_WRITE) << (_PAGE_BIT_DIRTY-1));
32985 +
32986 + /*
32987 + * PaX: fill DTLB with user rights and retry
32988 + */
32989 + __asm__ __volatile__ (
32990 + "orb %2,(%1)\n"
32991 +#if defined(CONFIG_M586) || defined(CONFIG_M586TSC)
32992 +/*
32993 + * PaX: let this uncommented 'invlpg' remind us on the behaviour of Intel's
32994 + * (and AMD's) TLBs. namely, they do not cache PTEs that would raise *any*
32995 + * page fault when examined during a TLB load attempt. this is true not only
32996 + * for PTEs holding a non-present entry but also present entries that will
32997 + * raise a page fault (such as those set up by PaX, or the copy-on-write
32998 + * mechanism). in effect it means that we do *not* need to flush the TLBs
32999 + * for our target pages since their PTEs are simply not in the TLBs at all.
33000 +
33001 + * the best thing in omitting it is that we gain around 15-20% speed in the
33002 + * fast path of the page fault handler and can get rid of tracing since we
33003 + * can no longer flush unintended entries.
33004 + */
33005 + "invlpg (%0)\n"
33006 +#endif
33007 + __copyuser_seg"testb $0,(%0)\n"
33008 + "xorb %3,(%1)\n"
33009 + :
33010 + : "r" (address), "r" (pte), "q" (pte_mask), "i" (_PAGE_USER)
33011 + : "memory", "cc");
33012 + pte_unmap_unlock(pte, ptl);
33013 + up_read(&mm->mmap_sem);
33014 + return 1;
33015 +}
33016 +#endif
33017 +
33018 /*
33019 * Handle a spurious fault caused by a stale TLB entry.
33020 *
33021 @@ -1012,6 +1225,9 @@ int show_unhandled_signals = 1;
33022 static inline int
33023 access_error(unsigned long error_code, struct vm_area_struct *vma)
33024 {
33025 + if ((__supported_pte_mask & _PAGE_NX) && (error_code & PF_INSTR) && !(vma->vm_flags & VM_EXEC))
33026 + return 1;
33027 +
33028 if (error_code & PF_WRITE) {
33029 /* write, present and write, not present: */
33030 if (unlikely(!(vma->vm_flags & VM_WRITE)))
33031 @@ -1074,6 +1290,22 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code,
33032 tsk = current;
33033 mm = tsk->mm;
33034
33035 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
33036 + if (!user_mode(regs) && address < 2 * pax_user_shadow_base) {
33037 + if (!search_exception_tables(regs->ip)) {
33038 + printk(KERN_EMERG "PAX: please report this to pageexec@freemail.hu\n");
33039 + bad_area_nosemaphore(regs, error_code, address);
33040 + return;
33041 + }
33042 + if (address < pax_user_shadow_base) {
33043 + printk(KERN_EMERG "PAX: please report this to pageexec@freemail.hu\n");
33044 + printk(KERN_EMERG "PAX: faulting IP: %pS\n", (void *)regs->ip);
33045 + show_trace_log_lvl(NULL, NULL, (void *)regs->sp, regs->bp, KERN_EMERG);
33046 + } else
33047 + address -= pax_user_shadow_base;
33048 + }
33049 +#endif
33050 +
33051 /*
33052 * Detect and handle instructions that would cause a page fault for
33053 * both a tracked kernel page and a userspace page.
33054 @@ -1198,6 +1430,11 @@ retry:
33055 might_sleep();
33056 }
33057
33058 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC)
33059 + if (pax_handle_pageexec_fault(regs, mm, address, error_code))
33060 + return;
33061 +#endif
33062 +
33063 vma = find_vma(mm, address);
33064 if (unlikely(!vma)) {
33065 bad_area(regs, error_code, address);
33066 @@ -1209,18 +1446,24 @@ retry:
33067 bad_area(regs, error_code, address);
33068 return;
33069 }
33070 - if (error_code & PF_USER) {
33071 - /*
33072 - * Accessing the stack below %sp is always a bug.
33073 - * The large cushion allows instructions like enter
33074 - * and pusha to work. ("enter $65535, $31" pushes
33075 - * 32 pointers and then decrements %sp by 65535.)
33076 - */
33077 - if (unlikely(address + 65536 + 32 * sizeof(unsigned long) < regs->sp)) {
33078 - bad_area(regs, error_code, address);
33079 - return;
33080 - }
33081 + /*
33082 + * Accessing the stack below %sp is always a bug.
33083 + * The large cushion allows instructions like enter
33084 + * and pusha to work. ("enter $65535, $31" pushes
33085 + * 32 pointers and then decrements %sp by 65535.)
33086 + */
33087 + if (unlikely(address + 65536 + 32 * sizeof(unsigned long) < task_pt_regs(tsk)->sp)) {
33088 + bad_area(regs, error_code, address);
33089 + return;
33090 }
33091 +
33092 +#ifdef CONFIG_PAX_SEGMEXEC
33093 + if (unlikely((mm->pax_flags & MF_PAX_SEGMEXEC) && vma->vm_end - SEGMEXEC_TASK_SIZE - 1 < address - SEGMEXEC_TASK_SIZE - 1)) {
33094 + bad_area(regs, error_code, address);
33095 + return;
33096 + }
33097 +#endif
33098 +
33099 if (unlikely(expand_stack(vma, address))) {
33100 bad_area(regs, error_code, address);
33101 return;
33102 @@ -1340,3 +1583,292 @@ trace_do_page_fault(struct pt_regs *regs, unsigned long error_code)
33103 }
33104 NOKPROBE_SYMBOL(trace_do_page_fault);
33105 #endif /* CONFIG_TRACING */
33106 +
33107 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
33108 +static bool pax_is_fetch_fault(struct pt_regs *regs, unsigned long error_code, unsigned long address)
33109 +{
33110 + struct mm_struct *mm = current->mm;
33111 + unsigned long ip = regs->ip;
33112 +
33113 + if (v8086_mode(regs))
33114 + ip = ((regs->cs & 0xffff) << 4) + (ip & 0xffff);
33115 +
33116 +#ifdef CONFIG_PAX_PAGEEXEC
33117 + if (mm->pax_flags & MF_PAX_PAGEEXEC) {
33118 + if ((__supported_pte_mask & _PAGE_NX) && (error_code & PF_INSTR))
33119 + return true;
33120 + if (!(error_code & (PF_PROT | PF_WRITE)) && ip == address)
33121 + return true;
33122 + return false;
33123 + }
33124 +#endif
33125 +
33126 +#ifdef CONFIG_PAX_SEGMEXEC
33127 + if (mm->pax_flags & MF_PAX_SEGMEXEC) {
33128 + if (!(error_code & (PF_PROT | PF_WRITE)) && (ip + SEGMEXEC_TASK_SIZE == address))
33129 + return true;
33130 + return false;
33131 + }
33132 +#endif
33133 +
33134 + return false;
33135 +}
33136 +#endif
33137 +
33138 +#ifdef CONFIG_PAX_EMUTRAMP
33139 +static int pax_handle_fetch_fault_32(struct pt_regs *regs)
33140 +{
33141 + int err;
33142 +
33143 + do { /* PaX: libffi trampoline emulation */
33144 + unsigned char mov, jmp;
33145 + unsigned int addr1, addr2;
33146 +
33147 +#ifdef CONFIG_X86_64
33148 + if ((regs->ip + 9) >> 32)
33149 + break;
33150 +#endif
33151 +
33152 + err = get_user(mov, (unsigned char __user *)regs->ip);
33153 + err |= get_user(addr1, (unsigned int __user *)(regs->ip + 1));
33154 + err |= get_user(jmp, (unsigned char __user *)(regs->ip + 5));
33155 + err |= get_user(addr2, (unsigned int __user *)(regs->ip + 6));
33156 +
33157 + if (err)
33158 + break;
33159 +
33160 + if (mov == 0xB8 && jmp == 0xE9) {
33161 + regs->ax = addr1;
33162 + regs->ip = (unsigned int)(regs->ip + addr2 + 10);
33163 + return 2;
33164 + }
33165 + } while (0);
33166 +
33167 + do { /* PaX: gcc trampoline emulation #1 */
33168 + unsigned char mov1, mov2;
33169 + unsigned short jmp;
33170 + unsigned int addr1, addr2;
33171 +
33172 +#ifdef CONFIG_X86_64
33173 + if ((regs->ip + 11) >> 32)
33174 + break;
33175 +#endif
33176 +
33177 + err = get_user(mov1, (unsigned char __user *)regs->ip);
33178 + err |= get_user(addr1, (unsigned int __user *)(regs->ip + 1));
33179 + err |= get_user(mov2, (unsigned char __user *)(regs->ip + 5));
33180 + err |= get_user(addr2, (unsigned int __user *)(regs->ip + 6));
33181 + err |= get_user(jmp, (unsigned short __user *)(regs->ip + 10));
33182 +
33183 + if (err)
33184 + break;
33185 +
33186 + if (mov1 == 0xB9 && mov2 == 0xB8 && jmp == 0xE0FF) {
33187 + regs->cx = addr1;
33188 + regs->ax = addr2;
33189 + regs->ip = addr2;
33190 + return 2;
33191 + }
33192 + } while (0);
33193 +
33194 + do { /* PaX: gcc trampoline emulation #2 */
33195 + unsigned char mov, jmp;
33196 + unsigned int addr1, addr2;
33197 +
33198 +#ifdef CONFIG_X86_64
33199 + if ((regs->ip + 9) >> 32)
33200 + break;
33201 +#endif
33202 +
33203 + err = get_user(mov, (unsigned char __user *)regs->ip);
33204 + err |= get_user(addr1, (unsigned int __user *)(regs->ip + 1));
33205 + err |= get_user(jmp, (unsigned char __user *)(regs->ip + 5));
33206 + err |= get_user(addr2, (unsigned int __user *)(regs->ip + 6));
33207 +
33208 + if (err)
33209 + break;
33210 +
33211 + if (mov == 0xB9 && jmp == 0xE9) {
33212 + regs->cx = addr1;
33213 + regs->ip = (unsigned int)(regs->ip + addr2 + 10);
33214 + return 2;
33215 + }
33216 + } while (0);
33217 +
33218 + return 1; /* PaX in action */
33219 +}
33220 +
33221 +#ifdef CONFIG_X86_64
33222 +static int pax_handle_fetch_fault_64(struct pt_regs *regs)
33223 +{
33224 + int err;
33225 +
33226 + do { /* PaX: libffi trampoline emulation */
33227 + unsigned short mov1, mov2, jmp1;
33228 + unsigned char stcclc, jmp2;
33229 + unsigned long addr1, addr2;
33230 +
33231 + err = get_user(mov1, (unsigned short __user *)regs->ip);
33232 + err |= get_user(addr1, (unsigned long __user *)(regs->ip + 2));
33233 + err |= get_user(mov2, (unsigned short __user *)(regs->ip + 10));
33234 + err |= get_user(addr2, (unsigned long __user *)(regs->ip + 12));
33235 + err |= get_user(stcclc, (unsigned char __user *)(regs->ip + 20));
33236 + err |= get_user(jmp1, (unsigned short __user *)(regs->ip + 21));
33237 + err |= get_user(jmp2, (unsigned char __user *)(regs->ip + 23));
33238 +
33239 + if (err)
33240 + break;
33241 +
33242 + if (mov1 == 0xBB49 && mov2 == 0xBA49 && (stcclc == 0xF8 || stcclc == 0xF9) && jmp1 == 0xFF49 && jmp2 == 0xE3) {
33243 + regs->r11 = addr1;
33244 + regs->r10 = addr2;
33245 + if (stcclc == 0xF8)
33246 + regs->flags &= ~X86_EFLAGS_CF;
33247 + else
33248 + regs->flags |= X86_EFLAGS_CF;
33249 + regs->ip = addr1;
33250 + return 2;
33251 + }
33252 + } while (0);
33253 +
33254 + do { /* PaX: gcc trampoline emulation #1 */
33255 + unsigned short mov1, mov2, jmp1;
33256 + unsigned char jmp2;
33257 + unsigned int addr1;
33258 + unsigned long addr2;
33259 +
33260 + err = get_user(mov1, (unsigned short __user *)regs->ip);
33261 + err |= get_user(addr1, (unsigned int __user *)(regs->ip + 2));
33262 + err |= get_user(mov2, (unsigned short __user *)(regs->ip + 6));
33263 + err |= get_user(addr2, (unsigned long __user *)(regs->ip + 8));
33264 + err |= get_user(jmp1, (unsigned short __user *)(regs->ip + 16));
33265 + err |= get_user(jmp2, (unsigned char __user *)(regs->ip + 18));
33266 +
33267 + if (err)
33268 + break;
33269 +
33270 + if (mov1 == 0xBB41 && mov2 == 0xBA49 && jmp1 == 0xFF49 && jmp2 == 0xE3) {
33271 + regs->r11 = addr1;
33272 + regs->r10 = addr2;
33273 + regs->ip = addr1;
33274 + return 2;
33275 + }
33276 + } while (0);
33277 +
33278 + do { /* PaX: gcc trampoline emulation #2 */
33279 + unsigned short mov1, mov2, jmp1;
33280 + unsigned char jmp2;
33281 + unsigned long addr1, addr2;
33282 +
33283 + err = get_user(mov1, (unsigned short __user *)regs->ip);
33284 + err |= get_user(addr1, (unsigned long __user *)(regs->ip + 2));
33285 + err |= get_user(mov2, (unsigned short __user *)(regs->ip + 10));
33286 + err |= get_user(addr2, (unsigned long __user *)(regs->ip + 12));
33287 + err |= get_user(jmp1, (unsigned short __user *)(regs->ip + 20));
33288 + err |= get_user(jmp2, (unsigned char __user *)(regs->ip + 22));
33289 +
33290 + if (err)
33291 + break;
33292 +
33293 + if (mov1 == 0xBB49 && mov2 == 0xBA49 && jmp1 == 0xFF49 && jmp2 == 0xE3) {
33294 + regs->r11 = addr1;
33295 + regs->r10 = addr2;
33296 + regs->ip = addr1;
33297 + return 2;
33298 + }
33299 + } while (0);
33300 +
33301 + return 1; /* PaX in action */
33302 +}
33303 +#endif
33304 +
33305 +/*
33306 + * PaX: decide what to do with offenders (regs->ip = fault address)
33307 + *
33308 + * returns 1 when task should be killed
33309 + * 2 when gcc trampoline was detected
33310 + */
33311 +static int pax_handle_fetch_fault(struct pt_regs *regs)
33312 +{
33313 + if (v8086_mode(regs))
33314 + return 1;
33315 +
33316 + if (!(current->mm->pax_flags & MF_PAX_EMUTRAMP))
33317 + return 1;
33318 +
33319 +#ifdef CONFIG_X86_32
33320 + return pax_handle_fetch_fault_32(regs);
33321 +#else
33322 + if (regs->cs == __USER32_CS || (regs->cs & SEGMENT_LDT))
33323 + return pax_handle_fetch_fault_32(regs);
33324 + else
33325 + return pax_handle_fetch_fault_64(regs);
33326 +#endif
33327 +}
33328 +#endif
33329 +
33330 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
33331 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
33332 +{
33333 + long i;
33334 +
33335 + printk(KERN_ERR "PAX: bytes at PC: ");
33336 + for (i = 0; i < 20; i++) {
33337 + unsigned char c;
33338 + if (get_user(c, (unsigned char __force_user *)pc+i))
33339 + printk(KERN_CONT "?? ");
33340 + else
33341 + printk(KERN_CONT "%02x ", c);
33342 + }
33343 + printk("\n");
33344 +
33345 + printk(KERN_ERR "PAX: bytes at SP-%lu: ", (unsigned long)sizeof(long));
33346 + for (i = -1; i < 80 / (long)sizeof(long); i++) {
33347 + unsigned long c;
33348 + if (get_user(c, (unsigned long __force_user *)sp+i)) {
33349 +#ifdef CONFIG_X86_32
33350 + printk(KERN_CONT "???????? ");
33351 +#else
33352 + if ((regs->cs == __USER32_CS || (regs->cs & SEGMENT_LDT)))
33353 + printk(KERN_CONT "???????? ???????? ");
33354 + else
33355 + printk(KERN_CONT "???????????????? ");
33356 +#endif
33357 + } else {
33358 +#ifdef CONFIG_X86_64
33359 + if ((regs->cs == __USER32_CS || (regs->cs & SEGMENT_LDT))) {
33360 + printk(KERN_CONT "%08x ", (unsigned int)c);
33361 + printk(KERN_CONT "%08x ", (unsigned int)(c >> 32));
33362 + } else
33363 +#endif
33364 + printk(KERN_CONT "%0*lx ", 2 * (int)sizeof(long), c);
33365 + }
33366 + }
33367 + printk("\n");
33368 +}
33369 +#endif
33370 +
33371 +/**
33372 + * probe_kernel_write(): safely attempt to write to a location
33373 + * @dst: address to write to
33374 + * @src: pointer to the data that shall be written
33375 + * @size: size of the data chunk
33376 + *
33377 + * Safely write to address @dst from the buffer at @src. If a kernel fault
33378 + * happens, handle that and return -EFAULT.
33379 + */
33380 +long notrace probe_kernel_write(void *dst, const void *src, size_t size)
33381 +{
33382 + long ret;
33383 + mm_segment_t old_fs = get_fs();
33384 +
33385 + set_fs(KERNEL_DS);
33386 + pagefault_disable();
33387 + pax_open_kernel();
33388 + ret = __copy_to_user_inatomic((void __force_user *)dst, src, size);
33389 + pax_close_kernel();
33390 + pagefault_enable();
33391 + set_fs(old_fs);
33392 +
33393 + return ret ? -EFAULT : 0;
33394 +}
33395 diff --git a/arch/x86/mm/gup.c b/arch/x86/mm/gup.c
33396 index ae9a37b..c5f8310 100644
33397 --- a/arch/x86/mm/gup.c
33398 +++ b/arch/x86/mm/gup.c
33399 @@ -266,7 +266,7 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
33400 addr = start;
33401 len = (unsigned long) nr_pages << PAGE_SHIFT;
33402 end = start + len;
33403 - if (unlikely(!access_ok(write ? VERIFY_WRITE : VERIFY_READ,
33404 + if (unlikely(!access_ok_noprefault(write ? VERIFY_WRITE : VERIFY_READ,
33405 (void __user *)start, len)))
33406 return 0;
33407
33408 @@ -342,6 +342,10 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write,
33409 goto slow_irqon;
33410 #endif
33411
33412 + if (unlikely(!access_ok_noprefault(write ? VERIFY_WRITE : VERIFY_READ,
33413 + (void __user *)start, len)))
33414 + return 0;
33415 +
33416 /*
33417 * XXX: batch / limit 'nr', to avoid large irq off latency
33418 * needs some instrumenting to determine the common sizes used by
33419 diff --git a/arch/x86/mm/highmem_32.c b/arch/x86/mm/highmem_32.c
33420 index a6d7392..3b105a8 100644
33421 --- a/arch/x86/mm/highmem_32.c
33422 +++ b/arch/x86/mm/highmem_32.c
33423 @@ -35,6 +35,8 @@ void *kmap_atomic_prot(struct page *page, pgprot_t prot)
33424 unsigned long vaddr;
33425 int idx, type;
33426
33427 + BUG_ON(pgprot_val(prot) & _PAGE_USER);
33428 +
33429 preempt_disable();
33430 pagefault_disable();
33431
33432 @@ -45,7 +47,11 @@ void *kmap_atomic_prot(struct page *page, pgprot_t prot)
33433 idx = type + KM_TYPE_NR*smp_processor_id();
33434 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
33435 BUG_ON(!pte_none(*(kmap_pte-idx)));
33436 +
33437 + pax_open_kernel();
33438 set_pte(kmap_pte-idx, mk_pte(page, prot));
33439 + pax_close_kernel();
33440 +
33441 arch_flush_lazy_mmu_mode();
33442
33443 return (void *)vaddr;
33444 diff --git a/arch/x86/mm/hugetlbpage.c b/arch/x86/mm/hugetlbpage.c
33445 index 42982b2..7168fc3 100644
33446 --- a/arch/x86/mm/hugetlbpage.c
33447 +++ b/arch/x86/mm/hugetlbpage.c
33448 @@ -74,23 +74,24 @@ int pud_huge(pud_t pud)
33449 #ifdef CONFIG_HUGETLB_PAGE
33450 static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *file,
33451 unsigned long addr, unsigned long len,
33452 - unsigned long pgoff, unsigned long flags)
33453 + unsigned long pgoff, unsigned long flags, unsigned long offset)
33454 {
33455 struct hstate *h = hstate_file(file);
33456 struct vm_unmapped_area_info info;
33457 -
33458 +
33459 info.flags = 0;
33460 info.length = len;
33461 info.low_limit = current->mm->mmap_legacy_base;
33462 info.high_limit = TASK_SIZE;
33463 info.align_mask = PAGE_MASK & ~huge_page_mask(h);
33464 info.align_offset = 0;
33465 + info.threadstack_offset = offset;
33466 return vm_unmapped_area(&info);
33467 }
33468
33469 static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
33470 unsigned long addr0, unsigned long len,
33471 - unsigned long pgoff, unsigned long flags)
33472 + unsigned long pgoff, unsigned long flags, unsigned long offset)
33473 {
33474 struct hstate *h = hstate_file(file);
33475 struct vm_unmapped_area_info info;
33476 @@ -102,6 +103,7 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
33477 info.high_limit = current->mm->mmap_base;
33478 info.align_mask = PAGE_MASK & ~huge_page_mask(h);
33479 info.align_offset = 0;
33480 + info.threadstack_offset = offset;
33481 addr = vm_unmapped_area(&info);
33482
33483 /*
33484 @@ -114,6 +116,12 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
33485 VM_BUG_ON(addr != -ENOMEM);
33486 info.flags = 0;
33487 info.low_limit = TASK_UNMAPPED_BASE;
33488 +
33489 +#ifdef CONFIG_PAX_RANDMMAP
33490 + if (current->mm->pax_flags & MF_PAX_RANDMMAP)
33491 + info.low_limit += current->mm->delta_mmap;
33492 +#endif
33493 +
33494 info.high_limit = TASK_SIZE;
33495 addr = vm_unmapped_area(&info);
33496 }
33497 @@ -128,10 +136,20 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
33498 struct hstate *h = hstate_file(file);
33499 struct mm_struct *mm = current->mm;
33500 struct vm_area_struct *vma;
33501 + unsigned long pax_task_size = TASK_SIZE;
33502 + unsigned long offset = gr_rand_threadstack_offset(mm, file, flags);
33503
33504 if (len & ~huge_page_mask(h))
33505 return -EINVAL;
33506 - if (len > TASK_SIZE)
33507 +
33508 +#ifdef CONFIG_PAX_SEGMEXEC
33509 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
33510 + pax_task_size = SEGMEXEC_TASK_SIZE;
33511 +#endif
33512 +
33513 + pax_task_size -= PAGE_SIZE;
33514 +
33515 + if (len > pax_task_size)
33516 return -ENOMEM;
33517
33518 if (flags & MAP_FIXED) {
33519 @@ -140,19 +158,22 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
33520 return addr;
33521 }
33522
33523 +#ifdef CONFIG_PAX_RANDMMAP
33524 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
33525 +#endif
33526 +
33527 if (addr) {
33528 addr = ALIGN(addr, huge_page_size(h));
33529 vma = find_vma(mm, addr);
33530 - if (TASK_SIZE - len >= addr &&
33531 - (!vma || addr + len <= vma->vm_start))
33532 + if (pax_task_size - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
33533 return addr;
33534 }
33535 if (mm->get_unmapped_area == arch_get_unmapped_area)
33536 return hugetlb_get_unmapped_area_bottomup(file, addr, len,
33537 - pgoff, flags);
33538 + pgoff, flags, offset);
33539 else
33540 return hugetlb_get_unmapped_area_topdown(file, addr, len,
33541 - pgoff, flags);
33542 + pgoff, flags, offset);
33543 }
33544 #endif /* CONFIG_HUGETLB_PAGE */
33545
33546 diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
33547 index 493f541..eeba8bb 100644
33548 --- a/arch/x86/mm/init.c
33549 +++ b/arch/x86/mm/init.c
33550 @@ -4,6 +4,7 @@
33551 #include <linux/swap.h>
33552 #include <linux/memblock.h>
33553 #include <linux/bootmem.h> /* for max_low_pfn */
33554 +#include <linux/tboot.h>
33555
33556 #include <asm/cacheflush.h>
33557 #include <asm/e820.h>
33558 @@ -17,6 +18,8 @@
33559 #include <asm/proto.h>
33560 #include <asm/dma.h> /* for MAX_DMA_PFN */
33561 #include <asm/microcode.h>
33562 +#include <asm/desc.h>
33563 +#include <asm/bios_ebda.h>
33564
33565 /*
33566 * We need to define the tracepoints somewhere, and tlb.c
33567 @@ -618,7 +621,18 @@ void __init init_mem_mapping(void)
33568 early_ioremap_page_table_range_init();
33569 #endif
33570
33571 +#ifdef CONFIG_PAX_PER_CPU_PGD
33572 + clone_pgd_range(get_cpu_pgd(0, kernel) + KERNEL_PGD_BOUNDARY,
33573 + swapper_pg_dir + KERNEL_PGD_BOUNDARY,
33574 + KERNEL_PGD_PTRS);
33575 + clone_pgd_range(get_cpu_pgd(0, user) + KERNEL_PGD_BOUNDARY,
33576 + swapper_pg_dir + KERNEL_PGD_BOUNDARY,
33577 + KERNEL_PGD_PTRS);
33578 + load_cr3(get_cpu_pgd(0, kernel));
33579 +#else
33580 load_cr3(swapper_pg_dir);
33581 +#endif
33582 +
33583 __flush_tlb_all();
33584
33585 early_memtest(0, max_pfn_mapped << PAGE_SHIFT);
33586 @@ -634,10 +648,40 @@ void __init init_mem_mapping(void)
33587 * Access has to be given to non-kernel-ram areas as well, these contain the PCI
33588 * mmio resources as well as potential bios/acpi data regions.
33589 */
33590 +
33591 +#ifdef CONFIG_GRKERNSEC_KMEM
33592 +static unsigned int ebda_start __read_only;
33593 +static unsigned int ebda_end __read_only;
33594 +#endif
33595 +
33596 int devmem_is_allowed(unsigned long pagenr)
33597 {
33598 - if (pagenr < 256)
33599 +#ifdef CONFIG_GRKERNSEC_KMEM
33600 + /* allow BDA */
33601 + if (!pagenr)
33602 return 1;
33603 + /* allow EBDA */
33604 + if (pagenr >= ebda_start && pagenr < ebda_end)
33605 + return 1;
33606 + /* if tboot is in use, allow access to its hardcoded serial log range */
33607 + if (tboot_enabled() && ((0x60000 >> PAGE_SHIFT) <= pagenr) && (pagenr < (0x68000 >> PAGE_SHIFT)))
33608 + return 1;
33609 +#else
33610 + if (!pagenr)
33611 + return 1;
33612 +#ifdef CONFIG_VM86
33613 + if (pagenr < (ISA_START_ADDRESS >> PAGE_SHIFT))
33614 + return 1;
33615 +#endif
33616 +#endif
33617 +
33618 + if ((ISA_START_ADDRESS >> PAGE_SHIFT) <= pagenr && pagenr < (ISA_END_ADDRESS >> PAGE_SHIFT))
33619 + return 1;
33620 +#ifdef CONFIG_GRKERNSEC_KMEM
33621 + /* throw out everything else below 1MB */
33622 + if (pagenr <= 256)
33623 + return 0;
33624 +#endif
33625 if (iomem_is_exclusive(pagenr << PAGE_SHIFT))
33626 return 0;
33627 if (!page_is_ram(pagenr))
33628 @@ -683,8 +727,127 @@ void free_init_pages(char *what, unsigned long begin, unsigned long end)
33629 #endif
33630 }
33631
33632 +#ifdef CONFIG_GRKERNSEC_KMEM
33633 +static inline void gr_init_ebda(void)
33634 +{
33635 + unsigned int ebda_addr;
33636 + unsigned int ebda_size = 0;
33637 +
33638 + ebda_addr = get_bios_ebda();
33639 + if (ebda_addr) {
33640 + ebda_size = *(unsigned char *)phys_to_virt(ebda_addr);
33641 + ebda_size <<= 10;
33642 + }
33643 + if (ebda_addr && ebda_size) {
33644 + ebda_start = ebda_addr >> PAGE_SHIFT;
33645 + ebda_end = min((unsigned int)PAGE_ALIGN(ebda_addr + ebda_size), (unsigned int)0xa0000) >> PAGE_SHIFT;
33646 + } else {
33647 + ebda_start = 0x9f000 >> PAGE_SHIFT;
33648 + ebda_end = 0xa0000 >> PAGE_SHIFT;
33649 + }
33650 +}
33651 +#else
33652 +static inline void gr_init_ebda(void) { }
33653 +#endif
33654 +
33655 void free_initmem(void)
33656 {
33657 +#ifdef CONFIG_PAX_KERNEXEC
33658 +#ifdef CONFIG_X86_32
33659 + /* PaX: limit KERNEL_CS to actual size */
33660 + unsigned long addr, limit;
33661 + struct desc_struct d;
33662 + int cpu;
33663 +#else
33664 + pgd_t *pgd;
33665 + pud_t *pud;
33666 + pmd_t *pmd;
33667 + unsigned long addr, end;
33668 +#endif
33669 +#endif
33670 +
33671 + gr_init_ebda();
33672 +
33673 +#ifdef CONFIG_PAX_KERNEXEC
33674 +#ifdef CONFIG_X86_32
33675 + limit = paravirt_enabled() ? ktva_ktla(0xffffffff) : (unsigned long)&_etext;
33676 + limit = (limit - 1UL) >> PAGE_SHIFT;
33677 +
33678 + memset(__LOAD_PHYSICAL_ADDR + PAGE_OFFSET, POISON_FREE_INITMEM, PAGE_SIZE);
33679 + for (cpu = 0; cpu < nr_cpu_ids; cpu++) {
33680 + pack_descriptor(&d, get_desc_base(&get_cpu_gdt_table(cpu)[GDT_ENTRY_KERNEL_CS]), limit, 0x9B, 0xC);
33681 + write_gdt_entry(get_cpu_gdt_table(cpu), GDT_ENTRY_KERNEL_CS, &d, DESCTYPE_S);
33682 + write_gdt_entry(get_cpu_gdt_table(cpu), GDT_ENTRY_KERNEXEC_KERNEL_CS, &d, DESCTYPE_S);
33683 + }
33684 +
33685 + /* PaX: make KERNEL_CS read-only */
33686 + addr = PFN_ALIGN(ktla_ktva((unsigned long)&_text));
33687 + if (!paravirt_enabled())
33688 + set_memory_ro(addr, (PFN_ALIGN(_sdata) - addr) >> PAGE_SHIFT);
33689 +/*
33690 + for (addr = ktla_ktva((unsigned long)&_text); addr < (unsigned long)&_sdata; addr += PMD_SIZE) {
33691 + pgd = pgd_offset_k(addr);
33692 + pud = pud_offset(pgd, addr);
33693 + pmd = pmd_offset(pud, addr);
33694 + set_pmd(pmd, __pmd(pmd_val(*pmd) & ~_PAGE_RW));
33695 + }
33696 +*/
33697 +#ifdef CONFIG_X86_PAE
33698 + set_memory_nx(PFN_ALIGN(__init_begin), (PFN_ALIGN(__init_end) - PFN_ALIGN(__init_begin)) >> PAGE_SHIFT);
33699 +/*
33700 + for (addr = (unsigned long)&__init_begin; addr < (unsigned long)&__init_end; addr += PMD_SIZE) {
33701 + pgd = pgd_offset_k(addr);
33702 + pud = pud_offset(pgd, addr);
33703 + pmd = pmd_offset(pud, addr);
33704 + set_pmd(pmd, __pmd(pmd_val(*pmd) | (_PAGE_NX & __supported_pte_mask)));
33705 + }
33706 +*/
33707 +#endif
33708 +
33709 +#ifdef CONFIG_MODULES
33710 + set_memory_4k((unsigned long)MODULES_EXEC_VADDR, (MODULES_EXEC_END - MODULES_EXEC_VADDR) >> PAGE_SHIFT);
33711 +#endif
33712 +
33713 +#else
33714 + /* PaX: make kernel code/rodata read-only, rest non-executable */
33715 + set_memory_ro((unsigned long)_text, ((unsigned long)(_sdata - _text) >> PAGE_SHIFT));
33716 + set_memory_nx((unsigned long)_sdata, (__START_KERNEL_map + KERNEL_IMAGE_SIZE - (unsigned long)_sdata) >> PAGE_SHIFT);
33717 +
33718 + for (addr = __START_KERNEL_map; addr < __START_KERNEL_map + KERNEL_IMAGE_SIZE; addr += PMD_SIZE) {
33719 + pgd = pgd_offset_k(addr);
33720 + pud = pud_offset(pgd, addr);
33721 + pmd = pmd_offset(pud, addr);
33722 + if (!pmd_present(*pmd))
33723 + continue;
33724 + if (addr >= (unsigned long)_text)
33725 + BUG_ON(!pmd_large(*pmd));
33726 + if ((unsigned long)_text <= addr && addr < (unsigned long)_sdata)
33727 + BUG_ON(pmd_write(*pmd));
33728 +// set_pmd(pmd, __pmd(pmd_val(*pmd) & ~_PAGE_RW));
33729 + else
33730 + BUG_ON(!(pmd_flags(*pmd) & _PAGE_NX));
33731 +// set_pmd(pmd, __pmd(pmd_val(*pmd) | (_PAGE_NX & __supported_pte_mask)));
33732 + }
33733 +
33734 + addr = (unsigned long)__va(__pa(__START_KERNEL_map));
33735 + end = addr + KERNEL_IMAGE_SIZE;
33736 + for (; addr < end; addr += PMD_SIZE) {
33737 + pgd = pgd_offset_k(addr);
33738 + pud = pud_offset(pgd, addr);
33739 + pmd = pmd_offset(pud, addr);
33740 + if (!pmd_present(*pmd))
33741 + continue;
33742 + if (addr >= (unsigned long)_text)
33743 + BUG_ON(!pmd_large(*pmd));
33744 + if ((unsigned long)__va(__pa(_text)) <= addr && addr < (unsigned long)__va(__pa(_sdata)))
33745 + BUG_ON(pmd_write(*pmd));
33746 +// set_pmd(pmd, __pmd(pmd_val(*pmd) & ~_PAGE_RW));
33747 + }
33748 +#endif
33749 +
33750 + flush_tlb_all();
33751 +#endif
33752 +
33753 free_init_pages("unused kernel",
33754 (unsigned long)(&__init_begin),
33755 (unsigned long)(&__init_end));
33756 diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
33757 index cb4ef3d..377ec5a 100644
33758 --- a/arch/x86/mm/init_32.c
33759 +++ b/arch/x86/mm/init_32.c
33760 @@ -62,33 +62,6 @@ static noinline int do_test_wp_bit(void);
33761 bool __read_mostly __vmalloc_start_set = false;
33762
33763 /*
33764 - * Creates a middle page table and puts a pointer to it in the
33765 - * given global directory entry. This only returns the gd entry
33766 - * in non-PAE compilation mode, since the middle layer is folded.
33767 - */
33768 -static pmd_t * __init one_md_table_init(pgd_t *pgd)
33769 -{
33770 - pud_t *pud;
33771 - pmd_t *pmd_table;
33772 -
33773 -#ifdef CONFIG_X86_PAE
33774 - if (!(pgd_val(*pgd) & _PAGE_PRESENT)) {
33775 - pmd_table = (pmd_t *)alloc_low_page();
33776 - paravirt_alloc_pmd(&init_mm, __pa(pmd_table) >> PAGE_SHIFT);
33777 - set_pgd(pgd, __pgd(__pa(pmd_table) | _PAGE_PRESENT));
33778 - pud = pud_offset(pgd, 0);
33779 - BUG_ON(pmd_table != pmd_offset(pud, 0));
33780 -
33781 - return pmd_table;
33782 - }
33783 -#endif
33784 - pud = pud_offset(pgd, 0);
33785 - pmd_table = pmd_offset(pud, 0);
33786 -
33787 - return pmd_table;
33788 -}
33789 -
33790 -/*
33791 * Create a page table and place a pointer to it in a middle page
33792 * directory entry:
33793 */
33794 @@ -98,13 +71,28 @@ static pte_t * __init one_page_table_init(pmd_t *pmd)
33795 pte_t *page_table = (pte_t *)alloc_low_page();
33796
33797 paravirt_alloc_pte(&init_mm, __pa(page_table) >> PAGE_SHIFT);
33798 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
33799 + set_pmd(pmd, __pmd(__pa(page_table) | _KERNPG_TABLE));
33800 +#else
33801 set_pmd(pmd, __pmd(__pa(page_table) | _PAGE_TABLE));
33802 +#endif
33803 BUG_ON(page_table != pte_offset_kernel(pmd, 0));
33804 }
33805
33806 return pte_offset_kernel(pmd, 0);
33807 }
33808
33809 +static pmd_t * __init one_md_table_init(pgd_t *pgd)
33810 +{
33811 + pud_t *pud;
33812 + pmd_t *pmd_table;
33813 +
33814 + pud = pud_offset(pgd, 0);
33815 + pmd_table = pmd_offset(pud, 0);
33816 +
33817 + return pmd_table;
33818 +}
33819 +
33820 pmd_t * __init populate_extra_pmd(unsigned long vaddr)
33821 {
33822 int pgd_idx = pgd_index(vaddr);
33823 @@ -209,6 +197,7 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
33824 int pgd_idx, pmd_idx;
33825 unsigned long vaddr;
33826 pgd_t *pgd;
33827 + pud_t *pud;
33828 pmd_t *pmd;
33829 pte_t *pte = NULL;
33830 unsigned long count = page_table_range_init_count(start, end);
33831 @@ -223,8 +212,13 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
33832 pgd = pgd_base + pgd_idx;
33833
33834 for ( ; (pgd_idx < PTRS_PER_PGD) && (vaddr != end); pgd++, pgd_idx++) {
33835 - pmd = one_md_table_init(pgd);
33836 - pmd = pmd + pmd_index(vaddr);
33837 + pud = pud_offset(pgd, vaddr);
33838 + pmd = pmd_offset(pud, vaddr);
33839 +
33840 +#ifdef CONFIG_X86_PAE
33841 + paravirt_alloc_pmd(&init_mm, __pa(pmd) >> PAGE_SHIFT);
33842 +#endif
33843 +
33844 for (; (pmd_idx < PTRS_PER_PMD) && (vaddr != end);
33845 pmd++, pmd_idx++) {
33846 pte = page_table_kmap_check(one_page_table_init(pmd),
33847 @@ -236,11 +230,20 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
33848 }
33849 }
33850
33851 -static inline int is_kernel_text(unsigned long addr)
33852 +static inline int is_kernel_text(unsigned long start, unsigned long end)
33853 {
33854 - if (addr >= (unsigned long)_text && addr <= (unsigned long)__init_end)
33855 - return 1;
33856 - return 0;
33857 + if ((start >= ktla_ktva((unsigned long)_etext) ||
33858 + end <= ktla_ktva((unsigned long)_stext)) &&
33859 + (start >= ktla_ktva((unsigned long)_einittext) ||
33860 + end <= ktla_ktva((unsigned long)_sinittext)) &&
33861 +
33862 +#ifdef CONFIG_ACPI_SLEEP
33863 + (start >= (unsigned long)__va(acpi_wakeup_address) + 0x4000 || end <= (unsigned long)__va(acpi_wakeup_address)) &&
33864 +#endif
33865 +
33866 + (start > (unsigned long)__va(0xfffff) || end <= (unsigned long)__va(0xc0000)))
33867 + return 0;
33868 + return 1;
33869 }
33870
33871 /*
33872 @@ -257,9 +260,10 @@ kernel_physical_mapping_init(unsigned long start,
33873 unsigned long last_map_addr = end;
33874 unsigned long start_pfn, end_pfn;
33875 pgd_t *pgd_base = swapper_pg_dir;
33876 - int pgd_idx, pmd_idx, pte_ofs;
33877 + unsigned int pgd_idx, pmd_idx, pte_ofs;
33878 unsigned long pfn;
33879 pgd_t *pgd;
33880 + pud_t *pud;
33881 pmd_t *pmd;
33882 pte_t *pte;
33883 unsigned pages_2m, pages_4k;
33884 @@ -292,8 +296,13 @@ repeat:
33885 pfn = start_pfn;
33886 pgd_idx = pgd_index((pfn<<PAGE_SHIFT) + PAGE_OFFSET);
33887 pgd = pgd_base + pgd_idx;
33888 - for (; pgd_idx < PTRS_PER_PGD; pgd++, pgd_idx++) {
33889 - pmd = one_md_table_init(pgd);
33890 + for (; pgd_idx < PTRS_PER_PGD && pfn < max_low_pfn; pgd++, pgd_idx++) {
33891 + pud = pud_offset(pgd, 0);
33892 + pmd = pmd_offset(pud, 0);
33893 +
33894 +#ifdef CONFIG_X86_PAE
33895 + paravirt_alloc_pmd(&init_mm, __pa(pmd) >> PAGE_SHIFT);
33896 +#endif
33897
33898 if (pfn >= end_pfn)
33899 continue;
33900 @@ -305,14 +314,13 @@ repeat:
33901 #endif
33902 for (; pmd_idx < PTRS_PER_PMD && pfn < end_pfn;
33903 pmd++, pmd_idx++) {
33904 - unsigned int addr = pfn * PAGE_SIZE + PAGE_OFFSET;
33905 + unsigned long address = pfn * PAGE_SIZE + PAGE_OFFSET;
33906
33907 /*
33908 * Map with big pages if possible, otherwise
33909 * create normal page tables:
33910 */
33911 if (use_pse) {
33912 - unsigned int addr2;
33913 pgprot_t prot = PAGE_KERNEL_LARGE;
33914 /*
33915 * first pass will use the same initial
33916 @@ -323,11 +331,7 @@ repeat:
33917 _PAGE_PSE);
33918
33919 pfn &= PMD_MASK >> PAGE_SHIFT;
33920 - addr2 = (pfn + PTRS_PER_PTE-1) * PAGE_SIZE +
33921 - PAGE_OFFSET + PAGE_SIZE-1;
33922 -
33923 - if (is_kernel_text(addr) ||
33924 - is_kernel_text(addr2))
33925 + if (is_kernel_text(address, address + PMD_SIZE))
33926 prot = PAGE_KERNEL_LARGE_EXEC;
33927
33928 pages_2m++;
33929 @@ -344,7 +348,7 @@ repeat:
33930 pte_ofs = pte_index((pfn<<PAGE_SHIFT) + PAGE_OFFSET);
33931 pte += pte_ofs;
33932 for (; pte_ofs < PTRS_PER_PTE && pfn < end_pfn;
33933 - pte++, pfn++, pte_ofs++, addr += PAGE_SIZE) {
33934 + pte++, pfn++, pte_ofs++, address += PAGE_SIZE) {
33935 pgprot_t prot = PAGE_KERNEL;
33936 /*
33937 * first pass will use the same initial
33938 @@ -352,7 +356,7 @@ repeat:
33939 */
33940 pgprot_t init_prot = __pgprot(PTE_IDENT_ATTR);
33941
33942 - if (is_kernel_text(addr))
33943 + if (is_kernel_text(address, address + PAGE_SIZE))
33944 prot = PAGE_KERNEL_EXEC;
33945
33946 pages_4k++;
33947 @@ -475,7 +479,7 @@ void __init native_pagetable_init(void)
33948
33949 pud = pud_offset(pgd, va);
33950 pmd = pmd_offset(pud, va);
33951 - if (!pmd_present(*pmd))
33952 + if (!pmd_present(*pmd)) // PAX TODO || pmd_large(*pmd))
33953 break;
33954
33955 /* should not be large page here */
33956 @@ -533,12 +537,10 @@ void __init early_ioremap_page_table_range_init(void)
33957
33958 static void __init pagetable_init(void)
33959 {
33960 - pgd_t *pgd_base = swapper_pg_dir;
33961 -
33962 - permanent_kmaps_init(pgd_base);
33963 + permanent_kmaps_init(swapper_pg_dir);
33964 }
33965
33966 -pteval_t __supported_pte_mask __read_mostly = ~(_PAGE_NX | _PAGE_GLOBAL);
33967 +pteval_t __supported_pte_mask __read_only = ~(_PAGE_NX | _PAGE_GLOBAL);
33968 EXPORT_SYMBOL_GPL(__supported_pte_mask);
33969
33970 /* user-defined highmem size */
33971 @@ -788,10 +790,10 @@ void __init mem_init(void)
33972 ((unsigned long)&__init_end -
33973 (unsigned long)&__init_begin) >> 10,
33974
33975 - (unsigned long)&_etext, (unsigned long)&_edata,
33976 - ((unsigned long)&_edata - (unsigned long)&_etext) >> 10,
33977 + (unsigned long)&_sdata, (unsigned long)&_edata,
33978 + ((unsigned long)&_edata - (unsigned long)&_sdata) >> 10,
33979
33980 - (unsigned long)&_text, (unsigned long)&_etext,
33981 + ktla_ktva((unsigned long)&_text), ktla_ktva((unsigned long)&_etext),
33982 ((unsigned long)&_etext - (unsigned long)&_text) >> 10);
33983
33984 /*
33985 @@ -885,6 +887,7 @@ void set_kernel_text_rw(void)
33986 if (!kernel_set_to_readonly)
33987 return;
33988
33989 + start = ktla_ktva(start);
33990 pr_debug("Set kernel text: %lx - %lx for read write\n",
33991 start, start+size);
33992
33993 @@ -899,6 +902,7 @@ void set_kernel_text_ro(void)
33994 if (!kernel_set_to_readonly)
33995 return;
33996
33997 + start = ktla_ktva(start);
33998 pr_debug("Set kernel text: %lx - %lx for read only\n",
33999 start, start+size);
34000
34001 @@ -927,6 +931,7 @@ void mark_rodata_ro(void)
34002 unsigned long start = PFN_ALIGN(_text);
34003 unsigned long size = PFN_ALIGN(_etext) - start;
34004
34005 + start = ktla_ktva(start);
34006 set_pages_ro(virt_to_page(start), size >> PAGE_SHIFT);
34007 printk(KERN_INFO "Write protecting the kernel text: %luk\n",
34008 size >> 10);
34009 diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
34010 index ec081fe..14e8743 100644
34011 --- a/arch/x86/mm/init_64.c
34012 +++ b/arch/x86/mm/init_64.c
34013 @@ -136,7 +136,7 @@ int kernel_ident_mapping_init(struct x86_mapping_info *info, pgd_t *pgd_page,
34014 * around without checking the pgd every time.
34015 */
34016
34017 -pteval_t __supported_pte_mask __read_mostly = ~0;
34018 +pteval_t __supported_pte_mask __read_only = ~_PAGE_NX;
34019 EXPORT_SYMBOL_GPL(__supported_pte_mask);
34020
34021 int force_personality32;
34022 @@ -169,7 +169,12 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
34023
34024 for (address = start; address <= end; address += PGDIR_SIZE) {
34025 const pgd_t *pgd_ref = pgd_offset_k(address);
34026 +
34027 +#ifdef CONFIG_PAX_PER_CPU_PGD
34028 + unsigned long cpu;
34029 +#else
34030 struct page *page;
34031 +#endif
34032
34033 /*
34034 * When it is called after memory hot remove, pgd_none()
34035 @@ -180,6 +185,25 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
34036 continue;
34037
34038 spin_lock(&pgd_lock);
34039 +
34040 +#ifdef CONFIG_PAX_PER_CPU_PGD
34041 + for (cpu = 0; cpu < nr_cpu_ids; ++cpu) {
34042 + pgd_t *pgd = pgd_offset_cpu(cpu, user, address);
34043 +
34044 + if (!pgd_none(*pgd_ref) && !pgd_none(*pgd))
34045 + BUG_ON(pgd_page_vaddr(*pgd)
34046 + != pgd_page_vaddr(*pgd_ref));
34047 +
34048 + if (removed) {
34049 + if (pgd_none(*pgd_ref) && !pgd_none(*pgd))
34050 + pgd_clear(pgd);
34051 + } else {
34052 + if (pgd_none(*pgd))
34053 + set_pgd(pgd, *pgd_ref);
34054 + }
34055 +
34056 + pgd = pgd_offset_cpu(cpu, kernel, address);
34057 +#else
34058 list_for_each_entry(page, &pgd_list, lru) {
34059 pgd_t *pgd;
34060 spinlock_t *pgt_lock;
34061 @@ -188,6 +212,7 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
34062 /* the pgt_lock only for Xen */
34063 pgt_lock = &pgd_page_get_mm(page)->page_table_lock;
34064 spin_lock(pgt_lock);
34065 +#endif
34066
34067 if (!pgd_none(*pgd_ref) && !pgd_none(*pgd))
34068 BUG_ON(pgd_page_vaddr(*pgd)
34069 @@ -201,7 +226,10 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
34070 set_pgd(pgd, *pgd_ref);
34071 }
34072
34073 +#ifndef CONFIG_PAX_PER_CPU_PGD
34074 spin_unlock(pgt_lock);
34075 +#endif
34076 +
34077 }
34078 spin_unlock(&pgd_lock);
34079 }
34080 @@ -234,7 +262,7 @@ static pud_t *fill_pud(pgd_t *pgd, unsigned long vaddr)
34081 {
34082 if (pgd_none(*pgd)) {
34083 pud_t *pud = (pud_t *)spp_getpage();
34084 - pgd_populate(&init_mm, pgd, pud);
34085 + pgd_populate_kernel(&init_mm, pgd, pud);
34086 if (pud != pud_offset(pgd, 0))
34087 printk(KERN_ERR "PAGETABLE BUG #00! %p <-> %p\n",
34088 pud, pud_offset(pgd, 0));
34089 @@ -246,7 +274,7 @@ static pmd_t *fill_pmd(pud_t *pud, unsigned long vaddr)
34090 {
34091 if (pud_none(*pud)) {
34092 pmd_t *pmd = (pmd_t *) spp_getpage();
34093 - pud_populate(&init_mm, pud, pmd);
34094 + pud_populate_kernel(&init_mm, pud, pmd);
34095 if (pmd != pmd_offset(pud, 0))
34096 printk(KERN_ERR "PAGETABLE BUG #01! %p <-> %p\n",
34097 pmd, pmd_offset(pud, 0));
34098 @@ -275,7 +303,9 @@ void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte)
34099 pmd = fill_pmd(pud, vaddr);
34100 pte = fill_pte(pmd, vaddr);
34101
34102 + pax_open_kernel();
34103 set_pte(pte, new_pte);
34104 + pax_close_kernel();
34105
34106 /*
34107 * It's enough to flush this one mapping.
34108 @@ -337,14 +367,12 @@ static void __init __init_extra_mapping(unsigned long phys, unsigned long size,
34109 pgd = pgd_offset_k((unsigned long)__va(phys));
34110 if (pgd_none(*pgd)) {
34111 pud = (pud_t *) spp_getpage();
34112 - set_pgd(pgd, __pgd(__pa(pud) | _KERNPG_TABLE |
34113 - _PAGE_USER));
34114 + set_pgd(pgd, __pgd(__pa(pud) | _PAGE_TABLE));
34115 }
34116 pud = pud_offset(pgd, (unsigned long)__va(phys));
34117 if (pud_none(*pud)) {
34118 pmd = (pmd_t *) spp_getpage();
34119 - set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE |
34120 - _PAGE_USER));
34121 + set_pud(pud, __pud(__pa(pmd) | _PAGE_TABLE));
34122 }
34123 pmd = pmd_offset(pud, phys);
34124 BUG_ON(!pmd_none(*pmd));
34125 @@ -585,7 +613,7 @@ phys_pud_init(pud_t *pud_page, unsigned long addr, unsigned long end,
34126 prot);
34127
34128 spin_lock(&init_mm.page_table_lock);
34129 - pud_populate(&init_mm, pud, pmd);
34130 + pud_populate_kernel(&init_mm, pud, pmd);
34131 spin_unlock(&init_mm.page_table_lock);
34132 }
34133 __flush_tlb_all();
34134 @@ -626,7 +654,7 @@ kernel_physical_mapping_init(unsigned long start,
34135 page_size_mask);
34136
34137 spin_lock(&init_mm.page_table_lock);
34138 - pgd_populate(&init_mm, pgd, pud);
34139 + pgd_populate_kernel(&init_mm, pgd, pud);
34140 spin_unlock(&init_mm.page_table_lock);
34141 pgd_changed = true;
34142 }
34143 diff --git a/arch/x86/mm/iomap_32.c b/arch/x86/mm/iomap_32.c
34144 index 9c0ff04..9020d5f 100644
34145 --- a/arch/x86/mm/iomap_32.c
34146 +++ b/arch/x86/mm/iomap_32.c
34147 @@ -65,7 +65,11 @@ void *kmap_atomic_prot_pfn(unsigned long pfn, pgprot_t prot)
34148 type = kmap_atomic_idx_push();
34149 idx = type + KM_TYPE_NR * smp_processor_id();
34150 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
34151 +
34152 + pax_open_kernel();
34153 set_pte(kmap_pte - idx, pfn_pte(pfn, prot));
34154 + pax_close_kernel();
34155 +
34156 arch_flush_lazy_mmu_mode();
34157
34158 return (void *)vaddr;
34159 diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
34160 index b9c78f3..c757af4 100644
34161 --- a/arch/x86/mm/ioremap.c
34162 +++ b/arch/x86/mm/ioremap.c
34163 @@ -59,8 +59,8 @@ static int __ioremap_check_ram(unsigned long start_pfn, unsigned long nr_pages,
34164 unsigned long i;
34165
34166 for (i = 0; i < nr_pages; ++i)
34167 - if (pfn_valid(start_pfn + i) &&
34168 - !PageReserved(pfn_to_page(start_pfn + i)))
34169 + if (pfn_valid(start_pfn + i) && (start_pfn + i >= 0x100 ||
34170 + !PageReserved(pfn_to_page(start_pfn + i))))
34171 return 1;
34172
34173 return 0;
34174 @@ -332,7 +332,7 @@ EXPORT_SYMBOL(ioremap_prot);
34175 *
34176 * Caller must ensure there is only one unmapping for the same pointer.
34177 */
34178 -void iounmap(volatile void __iomem *addr)
34179 +void iounmap(const volatile void __iomem *addr)
34180 {
34181 struct vm_struct *p, *o;
34182
34183 @@ -395,31 +395,37 @@ int __init arch_ioremap_pmd_supported(void)
34184 */
34185 void *xlate_dev_mem_ptr(phys_addr_t phys)
34186 {
34187 - unsigned long start = phys & PAGE_MASK;
34188 - unsigned long offset = phys & ~PAGE_MASK;
34189 - void *vaddr;
34190 + phys_addr_t pfn = phys >> PAGE_SHIFT;
34191
34192 - /* If page is RAM, we can use __va. Otherwise ioremap and unmap. */
34193 - if (page_is_ram(start >> PAGE_SHIFT))
34194 - return __va(phys);
34195 + if (page_is_ram(pfn)) {
34196 +#ifdef CONFIG_HIGHMEM
34197 + if (pfn >= max_low_pfn)
34198 + return kmap_high(pfn_to_page(pfn));
34199 + else
34200 +#endif
34201 + return __va(phys);
34202 + }
34203
34204 - vaddr = ioremap_cache(start, PAGE_SIZE);
34205 - /* Only add the offset on success and return NULL if the ioremap() failed: */
34206 - if (vaddr)
34207 - vaddr += offset;
34208 -
34209 - return vaddr;
34210 + return (void __force *)ioremap_cache(phys, 1);
34211 }
34212
34213 void unxlate_dev_mem_ptr(phys_addr_t phys, void *addr)
34214 {
34215 - if (page_is_ram(phys >> PAGE_SHIFT))
34216 + phys_addr_t pfn = phys >> PAGE_SHIFT;
34217 +
34218 + if (page_is_ram(pfn)) {
34219 +#ifdef CONFIG_HIGHMEM
34220 + if (pfn >= max_low_pfn)
34221 + kunmap_high(pfn_to_page(pfn));
34222 +#endif
34223 return;
34224 + }
34225
34226 - iounmap((void __iomem *)((unsigned long)addr & PAGE_MASK));
34227 + iounmap((void __iomem __force *)addr);
34228 }
34229
34230 -static pte_t bm_pte[PAGE_SIZE/sizeof(pte_t)] __page_aligned_bss;
34231 +static pte_t __bm_pte[PAGE_SIZE/sizeof(pte_t)] __page_aligned_rodata;
34232 +static pte_t *bm_pte __read_only = __bm_pte;
34233
34234 static inline pmd_t * __init early_ioremap_pmd(unsigned long addr)
34235 {
34236 @@ -455,8 +461,14 @@ void __init early_ioremap_init(void)
34237 early_ioremap_setup();
34238
34239 pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN));
34240 - memset(bm_pte, 0, sizeof(bm_pte));
34241 - pmd_populate_kernel(&init_mm, pmd, bm_pte);
34242 + if (pmd_none(*pmd))
34243 +#ifdef CONFIG_COMPAT_VDSO
34244 + pmd_populate_user(&init_mm, pmd, __bm_pte);
34245 +#else
34246 + pmd_populate_kernel(&init_mm, pmd, __bm_pte);
34247 +#endif
34248 + else
34249 + bm_pte = (pte_t *)pmd_page_vaddr(*pmd);
34250
34251 /*
34252 * The boot-ioremap range spans multiple pmds, for which
34253 diff --git a/arch/x86/mm/kmemcheck/kmemcheck.c b/arch/x86/mm/kmemcheck/kmemcheck.c
34254 index b4f2e7e..96c9c3e 100644
34255 --- a/arch/x86/mm/kmemcheck/kmemcheck.c
34256 +++ b/arch/x86/mm/kmemcheck/kmemcheck.c
34257 @@ -628,9 +628,9 @@ bool kmemcheck_fault(struct pt_regs *regs, unsigned long address,
34258 * memory (e.g. tracked pages)? For now, we need this to avoid
34259 * invoking kmemcheck for PnP BIOS calls.
34260 */
34261 - if (regs->flags & X86_VM_MASK)
34262 + if (v8086_mode(regs))
34263 return false;
34264 - if (regs->cs != __KERNEL_CS)
34265 + if (regs->cs != __KERNEL_CS && regs->cs != __KERNEXEC_KERNEL_CS)
34266 return false;
34267
34268 pte = kmemcheck_pte_lookup(address);
34269 diff --git a/arch/x86/mm/mmap.c b/arch/x86/mm/mmap.c
34270 index 844b06d..f363c86 100644
34271 --- a/arch/x86/mm/mmap.c
34272 +++ b/arch/x86/mm/mmap.c
34273 @@ -52,7 +52,7 @@ static unsigned long stack_maxrandom_size(void)
34274 * Leave an at least ~128 MB hole with possible stack randomization.
34275 */
34276 #define MIN_GAP (128*1024*1024UL + stack_maxrandom_size())
34277 -#define MAX_GAP (TASK_SIZE/6*5)
34278 +#define MAX_GAP (pax_task_size/6*5)
34279
34280 static int mmap_is_legacy(void)
34281 {
34282 @@ -81,27 +81,40 @@ unsigned long arch_mmap_rnd(void)
34283 return rnd << PAGE_SHIFT;
34284 }
34285
34286 -static unsigned long mmap_base(unsigned long rnd)
34287 +static unsigned long mmap_base(struct mm_struct *mm, unsigned long rnd)
34288 {
34289 unsigned long gap = rlimit(RLIMIT_STACK);
34290 + unsigned long pax_task_size = TASK_SIZE;
34291 +
34292 +#ifdef CONFIG_PAX_SEGMEXEC
34293 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
34294 + pax_task_size = SEGMEXEC_TASK_SIZE;
34295 +#endif
34296
34297 if (gap < MIN_GAP)
34298 gap = MIN_GAP;
34299 else if (gap > MAX_GAP)
34300 gap = MAX_GAP;
34301
34302 - return PAGE_ALIGN(TASK_SIZE - gap - rnd);
34303 + return PAGE_ALIGN(pax_task_size - gap - rnd);
34304 }
34305
34306 /*
34307 * Bottom-up (legacy) layout on X86_32 did not support randomization, X86_64
34308 * does, but not when emulating X86_32
34309 */
34310 -static unsigned long mmap_legacy_base(unsigned long rnd)
34311 +static unsigned long mmap_legacy_base(struct mm_struct *mm, unsigned long rnd)
34312 {
34313 - if (mmap_is_ia32())
34314 + if (mmap_is_ia32()) {
34315 +
34316 +#ifdef CONFIG_PAX_SEGMEXEC
34317 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
34318 + return SEGMEXEC_TASK_UNMAPPED_BASE;
34319 + else
34320 +#endif
34321 +
34322 return TASK_UNMAPPED_BASE;
34323 - else
34324 + } else
34325 return TASK_UNMAPPED_BASE + rnd;
34326 }
34327
34328 @@ -113,18 +126,29 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
34329 {
34330 unsigned long random_factor = 0UL;
34331
34332 +#ifdef CONFIG_PAX_RANDMMAP
34333 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
34334 +#endif
34335 if (current->flags & PF_RANDOMIZE)
34336 random_factor = arch_mmap_rnd();
34337
34338 - mm->mmap_legacy_base = mmap_legacy_base(random_factor);
34339 + mm->mmap_legacy_base = mmap_legacy_base(mm, random_factor);
34340
34341 if (mmap_is_legacy()) {
34342 mm->mmap_base = mm->mmap_legacy_base;
34343 mm->get_unmapped_area = arch_get_unmapped_area;
34344 } else {
34345 - mm->mmap_base = mmap_base(random_factor);
34346 + mm->mmap_base = mmap_base(mm, random_factor);
34347 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
34348 }
34349 +
34350 +#ifdef CONFIG_PAX_RANDMMAP
34351 + if (mm->pax_flags & MF_PAX_RANDMMAP) {
34352 + mm->mmap_legacy_base += mm->delta_mmap;
34353 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
34354 + }
34355 +#endif
34356 +
34357 }
34358
34359 const char *arch_vma_name(struct vm_area_struct *vma)
34360 diff --git a/arch/x86/mm/mmio-mod.c b/arch/x86/mm/mmio-mod.c
34361 index 0057a7acc..95c7edd 100644
34362 --- a/arch/x86/mm/mmio-mod.c
34363 +++ b/arch/x86/mm/mmio-mod.c
34364 @@ -194,7 +194,7 @@ static void pre(struct kmmio_probe *p, struct pt_regs *regs,
34365 break;
34366 default:
34367 {
34368 - unsigned char *ip = (unsigned char *)instptr;
34369 + unsigned char *ip = (unsigned char *)ktla_ktva(instptr);
34370 my_trace->opcode = MMIO_UNKNOWN_OP;
34371 my_trace->width = 0;
34372 my_trace->value = (*ip) << 16 | *(ip + 1) << 8 |
34373 @@ -234,7 +234,7 @@ static void post(struct kmmio_probe *p, unsigned long condition,
34374 static void ioremap_trace_core(resource_size_t offset, unsigned long size,
34375 void __iomem *addr)
34376 {
34377 - static atomic_t next_id;
34378 + static atomic_unchecked_t next_id;
34379 struct remap_trace *trace = kmalloc(sizeof(*trace), GFP_KERNEL);
34380 /* These are page-unaligned. */
34381 struct mmiotrace_map map = {
34382 @@ -258,7 +258,7 @@ static void ioremap_trace_core(resource_size_t offset, unsigned long size,
34383 .private = trace
34384 },
34385 .phys = offset,
34386 - .id = atomic_inc_return(&next_id)
34387 + .id = atomic_inc_return_unchecked(&next_id)
34388 };
34389 map.map_id = trace->id;
34390
34391 @@ -290,7 +290,7 @@ void mmiotrace_ioremap(resource_size_t offset, unsigned long size,
34392 ioremap_trace_core(offset, size, addr);
34393 }
34394
34395 -static void iounmap_trace_core(volatile void __iomem *addr)
34396 +static void iounmap_trace_core(const volatile void __iomem *addr)
34397 {
34398 struct mmiotrace_map map = {
34399 .phys = 0,
34400 @@ -328,7 +328,7 @@ not_enabled:
34401 }
34402 }
34403
34404 -void mmiotrace_iounmap(volatile void __iomem *addr)
34405 +void mmiotrace_iounmap(const volatile void __iomem *addr)
34406 {
34407 might_sleep();
34408 if (is_enabled()) /* recheck and proper locking in *_core() */
34409 diff --git a/arch/x86/mm/mpx.c b/arch/x86/mm/mpx.c
34410 index ef05755..7125725 100644
34411 --- a/arch/x86/mm/mpx.c
34412 +++ b/arch/x86/mm/mpx.c
34413 @@ -193,7 +193,7 @@ static int mpx_insn_decode(struct insn *insn,
34414 */
34415 if (!nr_copied)
34416 return -EFAULT;
34417 - insn_init(insn, buf, nr_copied, x86_64);
34418 + insn_init(insn, (void *)ktva_ktla((unsigned long)buf), nr_copied, x86_64);
34419 insn_get_length(insn);
34420 /*
34421 * copy_from_user() tries to get as many bytes as we could see in
34422 @@ -293,11 +293,11 @@ siginfo_t *mpx_generate_siginfo(struct pt_regs *regs)
34423 * We were not able to extract an address from the instruction,
34424 * probably because there was something invalid in it.
34425 */
34426 - if (info->si_addr == (void *)-1) {
34427 + if (info->si_addr == (void __user *)-1) {
34428 err = -EINVAL;
34429 goto err_out;
34430 }
34431 - trace_mpx_bounds_register_exception(info->si_addr, bndreg);
34432 + trace_mpx_bounds_register_exception((void __force_kernel *)info->si_addr, bndreg);
34433 return info;
34434 err_out:
34435 /* info might be NULL, but kfree() handles that */
34436 diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c
34437 index c3b3f65..5bfe5dc 100644
34438 --- a/arch/x86/mm/numa.c
34439 +++ b/arch/x86/mm/numa.c
34440 @@ -469,7 +469,7 @@ static void __init numa_clear_kernel_node_hotplug(void)
34441 {
34442 int i, nid;
34443 nodemask_t numa_kernel_nodes = NODE_MASK_NONE;
34444 - unsigned long start, end;
34445 + u64 start, end;
34446 struct memblock_region *r;
34447
34448 /*
34449 @@ -508,7 +508,7 @@ static void __init numa_clear_kernel_node_hotplug(void)
34450 }
34451 }
34452
34453 -static int __init numa_register_memblks(struct numa_meminfo *mi)
34454 +static int __init __intentional_overflow(-1) numa_register_memblks(struct numa_meminfo *mi)
34455 {
34456 unsigned long uninitialized_var(pfn_align);
34457 int i, nid;
34458 diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
34459 index db20ee9..a2bb098 100644
34460 --- a/arch/x86/mm/pageattr.c
34461 +++ b/arch/x86/mm/pageattr.c
34462 @@ -259,7 +259,7 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
34463 */
34464 #ifdef CONFIG_PCI_BIOS
34465 if (pcibios_enabled && within(pfn, BIOS_BEGIN >> PAGE_SHIFT, BIOS_END >> PAGE_SHIFT))
34466 - pgprot_val(forbidden) |= _PAGE_NX;
34467 + pgprot_val(forbidden) |= _PAGE_NX & __supported_pte_mask;
34468 #endif
34469
34470 /*
34471 @@ -267,9 +267,10 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
34472 * Does not cover __inittext since that is gone later on. On
34473 * 64bit we do not enforce !NX on the low mapping
34474 */
34475 - if (within(address, (unsigned long)_text, (unsigned long)_etext))
34476 - pgprot_val(forbidden) |= _PAGE_NX;
34477 + if (within(address, ktla_ktva((unsigned long)_text), ktla_ktva((unsigned long)_etext)))
34478 + pgprot_val(forbidden) |= _PAGE_NX & __supported_pte_mask;
34479
34480 +#ifdef CONFIG_DEBUG_RODATA
34481 /*
34482 * The .rodata section needs to be read-only. Using the pfn
34483 * catches all aliases.
34484 @@ -277,6 +278,7 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
34485 if (within(pfn, __pa_symbol(__start_rodata) >> PAGE_SHIFT,
34486 __pa_symbol(__end_rodata) >> PAGE_SHIFT))
34487 pgprot_val(forbidden) |= _PAGE_RW;
34488 +#endif
34489
34490 #if defined(CONFIG_X86_64) && defined(CONFIG_DEBUG_RODATA)
34491 /*
34492 @@ -315,6 +317,13 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
34493 }
34494 #endif
34495
34496 +#ifdef CONFIG_PAX_KERNEXEC
34497 + if (within(pfn, __pa(ktla_ktva((unsigned long)&_text)), __pa((unsigned long)&_sdata))) {
34498 + pgprot_val(forbidden) |= _PAGE_RW;
34499 + pgprot_val(forbidden) |= _PAGE_NX & __supported_pte_mask;
34500 + }
34501 +#endif
34502 +
34503 prot = __pgprot(pgprot_val(prot) & ~pgprot_val(forbidden));
34504
34505 return prot;
34506 @@ -445,23 +454,37 @@ EXPORT_SYMBOL_GPL(slow_virt_to_phys);
34507 static void __set_pmd_pte(pte_t *kpte, unsigned long address, pte_t pte)
34508 {
34509 /* change init_mm */
34510 + pax_open_kernel();
34511 set_pte_atomic(kpte, pte);
34512 +
34513 #ifdef CONFIG_X86_32
34514 if (!SHARED_KERNEL_PMD) {
34515 +
34516 +#ifdef CONFIG_PAX_PER_CPU_PGD
34517 + unsigned long cpu;
34518 +#else
34519 struct page *page;
34520 +#endif
34521
34522 +#ifdef CONFIG_PAX_PER_CPU_PGD
34523 + for (cpu = 0; cpu < nr_cpu_ids; ++cpu) {
34524 + pgd_t *pgd = get_cpu_pgd(cpu, kernel);
34525 +#else
34526 list_for_each_entry(page, &pgd_list, lru) {
34527 - pgd_t *pgd;
34528 + pgd_t *pgd = (pgd_t *)page_address(page);
34529 +#endif
34530 +
34531 pud_t *pud;
34532 pmd_t *pmd;
34533
34534 - pgd = (pgd_t *)page_address(page) + pgd_index(address);
34535 + pgd += pgd_index(address);
34536 pud = pud_offset(pgd, address);
34537 pmd = pmd_offset(pud, address);
34538 set_pte_atomic((pte_t *)pmd, pte);
34539 }
34540 }
34541 #endif
34542 + pax_close_kernel();
34543 }
34544
34545 static int
34546 @@ -698,6 +721,10 @@ __split_large_page(struct cpa_data *cpa, pte_t *kpte, unsigned long address,
34547 return 0;
34548 }
34549
34550 +#if debug_pagealloc == 0
34551 +static int split_large_page(struct cpa_data *cpa, pte_t *kpte,
34552 + unsigned long address) __must_hold(&cpa_lock);
34553 +#endif
34554 static int split_large_page(struct cpa_data *cpa, pte_t *kpte,
34555 unsigned long address)
34556 {
34557 @@ -1141,6 +1168,9 @@ static int __cpa_process_fault(struct cpa_data *cpa, unsigned long vaddr,
34558 }
34559 }
34560
34561 +#if debug_pagealloc == 0
34562 +static int __change_page_attr(struct cpa_data *cpa, int primary) __must_hold(&cpa_lock);
34563 +#endif
34564 static int __change_page_attr(struct cpa_data *cpa, int primary)
34565 {
34566 unsigned long address;
34567 @@ -1199,7 +1229,9 @@ repeat:
34568 * Do we really change anything ?
34569 */
34570 if (pte_val(old_pte) != pte_val(new_pte)) {
34571 + pax_open_kernel();
34572 set_pte_atomic(kpte, new_pte);
34573 + pax_close_kernel();
34574 cpa->flags |= CPA_FLUSHTLB;
34575 }
34576 cpa->numpages = 1;
34577 diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
34578 index 188e3e0..5c75446 100644
34579 --- a/arch/x86/mm/pat.c
34580 +++ b/arch/x86/mm/pat.c
34581 @@ -588,7 +588,7 @@ int free_memtype(u64 start, u64 end)
34582
34583 if (!entry) {
34584 pr_info("x86/PAT: %s:%d freeing invalid memtype [mem %#010Lx-%#010Lx]\n",
34585 - current->comm, current->pid, start, end - 1);
34586 + current->comm, task_pid_nr(current), start, end - 1);
34587 return -EINVAL;
34588 }
34589
34590 @@ -711,8 +711,8 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size)
34591
34592 while (cursor < to) {
34593 if (!devmem_is_allowed(pfn)) {
34594 - pr_info("x86/PAT: Program %s tried to access /dev/mem between [mem %#010Lx-%#010Lx], PAT prevents it\n",
34595 - current->comm, from, to - 1);
34596 + pr_info("x86/PAT: Program %s tried to access /dev/mem between [mem %#010Lx-%#010Lx] (%#010Lx), PAT prevents it\n",
34597 + current->comm, from, to - 1, cursor);
34598 return 0;
34599 }
34600 cursor += PAGE_SIZE;
34601 @@ -782,7 +782,7 @@ int kernel_map_sync_memtype(u64 base, unsigned long size,
34602
34603 if (ioremap_change_attr((unsigned long)__va(base), id_sz, pcm) < 0) {
34604 pr_info("x86/PAT: %s:%d ioremap_change_attr failed %s for [mem %#010Lx-%#010Lx]\n",
34605 - current->comm, current->pid,
34606 + current->comm, task_pid_nr(current),
34607 cattr_name(pcm),
34608 base, (unsigned long long)(base + size-1));
34609 return -EINVAL;
34610 @@ -817,7 +817,7 @@ static int reserve_pfn_range(u64 paddr, unsigned long size, pgprot_t *vma_prot,
34611 pcm = lookup_memtype(paddr);
34612 if (want_pcm != pcm) {
34613 pr_warn("x86/PAT: %s:%d map pfn RAM range req %s for [mem %#010Lx-%#010Lx], got %s\n",
34614 - current->comm, current->pid,
34615 + current->comm, task_pid_nr(current),
34616 cattr_name(want_pcm),
34617 (unsigned long long)paddr,
34618 (unsigned long long)(paddr + size - 1),
34619 @@ -838,7 +838,7 @@ static int reserve_pfn_range(u64 paddr, unsigned long size, pgprot_t *vma_prot,
34620 !is_new_memtype_allowed(paddr, size, want_pcm, pcm)) {
34621 free_memtype(paddr, paddr + size);
34622 pr_err("x86/PAT: %s:%d map pfn expected mapping type %s for [mem %#010Lx-%#010Lx], got %s\n",
34623 - current->comm, current->pid,
34624 + current->comm, task_pid_nr(current),
34625 cattr_name(want_pcm),
34626 (unsigned long long)paddr,
34627 (unsigned long long)(paddr + size - 1),
34628 diff --git a/arch/x86/mm/pat_rbtree.c b/arch/x86/mm/pat_rbtree.c
34629 index 6393108..890adda 100644
34630 --- a/arch/x86/mm/pat_rbtree.c
34631 +++ b/arch/x86/mm/pat_rbtree.c
34632 @@ -161,7 +161,7 @@ success:
34633
34634 failure:
34635 pr_info("x86/PAT: %s:%d conflicting memory types %Lx-%Lx %s<->%s\n",
34636 - current->comm, current->pid, start, end,
34637 + current->comm, task_pid_nr(current), start, end,
34638 cattr_name(found_type), cattr_name(match->type));
34639 return -EBUSY;
34640 }
34641 diff --git a/arch/x86/mm/pf_in.c b/arch/x86/mm/pf_in.c
34642 index 9f0614d..92ae64a 100644
34643 --- a/arch/x86/mm/pf_in.c
34644 +++ b/arch/x86/mm/pf_in.c
34645 @@ -148,7 +148,7 @@ enum reason_type get_ins_type(unsigned long ins_addr)
34646 int i;
34647 enum reason_type rv = OTHERS;
34648
34649 - p = (unsigned char *)ins_addr;
34650 + p = (unsigned char *)ktla_ktva(ins_addr);
34651 p += skip_prefix(p, &prf);
34652 p += get_opcode(p, &opcode);
34653
34654 @@ -168,7 +168,7 @@ static unsigned int get_ins_reg_width(unsigned long ins_addr)
34655 struct prefix_bits prf;
34656 int i;
34657
34658 - p = (unsigned char *)ins_addr;
34659 + p = (unsigned char *)ktla_ktva(ins_addr);
34660 p += skip_prefix(p, &prf);
34661 p += get_opcode(p, &opcode);
34662
34663 @@ -191,7 +191,7 @@ unsigned int get_ins_mem_width(unsigned long ins_addr)
34664 struct prefix_bits prf;
34665 int i;
34666
34667 - p = (unsigned char *)ins_addr;
34668 + p = (unsigned char *)ktla_ktva(ins_addr);
34669 p += skip_prefix(p, &prf);
34670 p += get_opcode(p, &opcode);
34671
34672 @@ -415,7 +415,7 @@ unsigned long get_ins_reg_val(unsigned long ins_addr, struct pt_regs *regs)
34673 struct prefix_bits prf;
34674 int i;
34675
34676 - p = (unsigned char *)ins_addr;
34677 + p = (unsigned char *)ktla_ktva(ins_addr);
34678 p += skip_prefix(p, &prf);
34679 p += get_opcode(p, &opcode);
34680 for (i = 0; i < ARRAY_SIZE(reg_rop); i++)
34681 @@ -470,7 +470,7 @@ unsigned long get_ins_imm_val(unsigned long ins_addr)
34682 struct prefix_bits prf;
34683 int i;
34684
34685 - p = (unsigned char *)ins_addr;
34686 + p = (unsigned char *)ktla_ktva(ins_addr);
34687 p += skip_prefix(p, &prf);
34688 p += get_opcode(p, &opcode);
34689 for (i = 0; i < ARRAY_SIZE(imm_wop); i++)
34690 diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
34691 index fb0a9dd..5ab49c4 100644
34692 --- a/arch/x86/mm/pgtable.c
34693 +++ b/arch/x86/mm/pgtable.c
34694 @@ -98,10 +98,75 @@ static inline void pgd_list_del(pgd_t *pgd)
34695 list_del(&page->lru);
34696 }
34697
34698 -#define UNSHARED_PTRS_PER_PGD \
34699 - (SHARED_KERNEL_PMD ? KERNEL_PGD_BOUNDARY : PTRS_PER_PGD)
34700 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
34701 +pgdval_t clone_pgd_mask __read_only = ~_PAGE_PRESENT;
34702
34703 +void __shadow_user_pgds(pgd_t *dst, const pgd_t *src)
34704 +{
34705 + unsigned int count = USER_PGD_PTRS;
34706
34707 + if (!pax_user_shadow_base)
34708 + return;
34709 +
34710 + while (count--)
34711 + *dst++ = __pgd((pgd_val(*src++) | (_PAGE_NX & __supported_pte_mask)) & ~_PAGE_USER);
34712 +}
34713 +#endif
34714 +
34715 +#ifdef CONFIG_PAX_PER_CPU_PGD
34716 +void __clone_user_pgds(pgd_t *dst, const pgd_t *src)
34717 +{
34718 + unsigned int count = USER_PGD_PTRS;
34719 +
34720 + while (count--) {
34721 + pgd_t pgd;
34722 +
34723 +#ifdef CONFIG_X86_64
34724 + pgd = __pgd(pgd_val(*src++) | _PAGE_USER);
34725 +#else
34726 + pgd = *src++;
34727 +#endif
34728 +
34729 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
34730 + pgd = __pgd(pgd_val(pgd) & clone_pgd_mask);
34731 +#endif
34732 +
34733 + *dst++ = pgd;
34734 + }
34735 +
34736 +}
34737 +#endif
34738 +
34739 +#ifdef CONFIG_X86_64
34740 +#define pxd_t pud_t
34741 +#define pyd_t pgd_t
34742 +#define paravirt_release_pxd(pfn) paravirt_release_pud(pfn)
34743 +#define pgtable_pxd_page_ctor(page) true
34744 +#define pgtable_pxd_page_dtor(page) do {} while (0)
34745 +#define pxd_free(mm, pud) pud_free((mm), (pud))
34746 +#define pyd_populate(mm, pgd, pud) pgd_populate((mm), (pgd), (pud))
34747 +#define pyd_offset(mm, address) pgd_offset((mm), (address))
34748 +#define PYD_SIZE PGDIR_SIZE
34749 +#define mm_inc_nr_pxds(mm) do {} while (0)
34750 +#define mm_dec_nr_pxds(mm) do {} while (0)
34751 +#else
34752 +#define pxd_t pmd_t
34753 +#define pyd_t pud_t
34754 +#define paravirt_release_pxd(pfn) paravirt_release_pmd(pfn)
34755 +#define pgtable_pxd_page_ctor(page) pgtable_pmd_page_ctor(page)
34756 +#define pgtable_pxd_page_dtor(page) pgtable_pmd_page_dtor(page)
34757 +#define pxd_free(mm, pud) pmd_free((mm), (pud))
34758 +#define pyd_populate(mm, pgd, pud) pud_populate((mm), (pgd), (pud))
34759 +#define pyd_offset(mm, address) pud_offset((mm), (address))
34760 +#define PYD_SIZE PUD_SIZE
34761 +#define mm_inc_nr_pxds(mm) mm_inc_nr_pmds(mm)
34762 +#define mm_dec_nr_pxds(mm) mm_dec_nr_pmds(mm)
34763 +#endif
34764 +
34765 +#ifdef CONFIG_PAX_PER_CPU_PGD
34766 +static inline void pgd_ctor(struct mm_struct *mm, pgd_t *pgd) {}
34767 +static inline void pgd_dtor(pgd_t *pgd) {}
34768 +#else
34769 static void pgd_set_mm(pgd_t *pgd, struct mm_struct *mm)
34770 {
34771 BUILD_BUG_ON(sizeof(virt_to_page(pgd)->index) < sizeof(mm));
34772 @@ -142,6 +207,7 @@ static void pgd_dtor(pgd_t *pgd)
34773 pgd_list_del(pgd);
34774 spin_unlock(&pgd_lock);
34775 }
34776 +#endif
34777
34778 /*
34779 * List of all pgd's needed for non-PAE so it can invalidate entries
34780 @@ -154,7 +220,7 @@ static void pgd_dtor(pgd_t *pgd)
34781 * -- nyc
34782 */
34783
34784 -#ifdef CONFIG_X86_PAE
34785 +#if defined(CONFIG_X86_32) && defined(CONFIG_X86_PAE)
34786 /*
34787 * In PAE mode, we need to do a cr3 reload (=tlb flush) when
34788 * updating the top-level pagetable entries to guarantee the
34789 @@ -166,7 +232,7 @@ static void pgd_dtor(pgd_t *pgd)
34790 * not shared between pagetables (!SHARED_KERNEL_PMDS), we allocate
34791 * and initialize the kernel pmds here.
34792 */
34793 -#define PREALLOCATED_PMDS UNSHARED_PTRS_PER_PGD
34794 +#define PREALLOCATED_PXDS (SHARED_KERNEL_PMD ? KERNEL_PGD_BOUNDARY : PTRS_PER_PGD)
34795
34796 void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
34797 {
34798 @@ -184,46 +250,48 @@ void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
34799 */
34800 flush_tlb_mm(mm);
34801 }
34802 +#elif defined(CONFIG_X86_64) && defined(CONFIG_PAX_PER_CPU_PGD)
34803 +#define PREALLOCATED_PXDS USER_PGD_PTRS
34804 #else /* !CONFIG_X86_PAE */
34805
34806 /* No need to prepopulate any pagetable entries in non-PAE modes. */
34807 -#define PREALLOCATED_PMDS 0
34808 +#define PREALLOCATED_PXDS 0
34809
34810 #endif /* CONFIG_X86_PAE */
34811
34812 -static void free_pmds(struct mm_struct *mm, pmd_t *pmds[])
34813 +static void free_pxds(struct mm_struct *mm, pxd_t *pxds[])
34814 {
34815 int i;
34816
34817 - for(i = 0; i < PREALLOCATED_PMDS; i++)
34818 - if (pmds[i]) {
34819 - pgtable_pmd_page_dtor(virt_to_page(pmds[i]));
34820 - free_page((unsigned long)pmds[i]);
34821 - mm_dec_nr_pmds(mm);
34822 + for(i = 0; i < PREALLOCATED_PXDS; i++)
34823 + if (pxds[i]) {
34824 + pgtable_pxd_page_dtor(virt_to_page(pxds[i]));
34825 + free_page((unsigned long)pxds[i]);
34826 + mm_dec_nr_pxds(mm);
34827 }
34828 }
34829
34830 -static int preallocate_pmds(struct mm_struct *mm, pmd_t *pmds[])
34831 +static int preallocate_pxds(struct mm_struct *mm, pxd_t *pxds[])
34832 {
34833 int i;
34834 bool failed = false;
34835
34836 - for(i = 0; i < PREALLOCATED_PMDS; i++) {
34837 - pmd_t *pmd = (pmd_t *)__get_free_page(PGALLOC_GFP);
34838 - if (!pmd)
34839 + for(i = 0; i < PREALLOCATED_PXDS; i++) {
34840 + pxd_t *pxd = (pxd_t *)__get_free_page(PGALLOC_GFP);
34841 + if (!pxd)
34842 failed = true;
34843 - if (pmd && !pgtable_pmd_page_ctor(virt_to_page(pmd))) {
34844 - free_page((unsigned long)pmd);
34845 - pmd = NULL;
34846 + if (pxd && !pgtable_pxd_page_ctor(virt_to_page(pxd))) {
34847 + free_page((unsigned long)pxd);
34848 + pxd = NULL;
34849 failed = true;
34850 }
34851 - if (pmd)
34852 - mm_inc_nr_pmds(mm);
34853 - pmds[i] = pmd;
34854 + if (pxd)
34855 + mm_inc_nr_pxds(mm);
34856 + pxds[i] = pxd;
34857 }
34858
34859 if (failed) {
34860 - free_pmds(mm, pmds);
34861 + free_pxds(mm, pxds);
34862 return -ENOMEM;
34863 }
34864
34865 @@ -236,43 +304,47 @@ static int preallocate_pmds(struct mm_struct *mm, pmd_t *pmds[])
34866 * preallocate which never got a corresponding vma will need to be
34867 * freed manually.
34868 */
34869 -static void pgd_mop_up_pmds(struct mm_struct *mm, pgd_t *pgdp)
34870 +static void pgd_mop_up_pxds(struct mm_struct *mm, pgd_t *pgdp)
34871 {
34872 int i;
34873
34874 - for(i = 0; i < PREALLOCATED_PMDS; i++) {
34875 + for(i = 0; i < PREALLOCATED_PXDS; i++) {
34876 pgd_t pgd = pgdp[i];
34877
34878 if (pgd_val(pgd) != 0) {
34879 - pmd_t *pmd = (pmd_t *)pgd_page_vaddr(pgd);
34880 + pxd_t *pxd = (pxd_t *)pgd_page_vaddr(pgd);
34881
34882 - pgdp[i] = native_make_pgd(0);
34883 + set_pgd(pgdp + i, native_make_pgd(0));
34884
34885 - paravirt_release_pmd(pgd_val(pgd) >> PAGE_SHIFT);
34886 - pmd_free(mm, pmd);
34887 - mm_dec_nr_pmds(mm);
34888 + paravirt_release_pxd(pgd_val(pgd) >> PAGE_SHIFT);
34889 + pxd_free(mm, pxd);
34890 + mm_dec_nr_pxds(mm);
34891 }
34892 }
34893 }
34894
34895 -static void pgd_prepopulate_pmd(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmds[])
34896 +static void pgd_prepopulate_pxd(struct mm_struct *mm, pgd_t *pgd, pxd_t *pxds[])
34897 {
34898 - pud_t *pud;
34899 + pyd_t *pyd;
34900 int i;
34901
34902 - if (PREALLOCATED_PMDS == 0) /* Work around gcc-3.4.x bug */
34903 + if (PREALLOCATED_PXDS == 0) /* Work around gcc-3.4.x bug */
34904 return;
34905
34906 - pud = pud_offset(pgd, 0);
34907 +#ifdef CONFIG_X86_64
34908 + pyd = pyd_offset(mm, 0L);
34909 +#else
34910 + pyd = pyd_offset(pgd, 0L);
34911 +#endif
34912
34913 - for (i = 0; i < PREALLOCATED_PMDS; i++, pud++) {
34914 - pmd_t *pmd = pmds[i];
34915 + for (i = 0; i < PREALLOCATED_PXDS; i++, pyd++) {
34916 + pxd_t *pxd = pxds[i];
34917
34918 if (i >= KERNEL_PGD_BOUNDARY)
34919 - memcpy(pmd, (pmd_t *)pgd_page_vaddr(swapper_pg_dir[i]),
34920 - sizeof(pmd_t) * PTRS_PER_PMD);
34921 + memcpy(pxd, (pxd_t *)pgd_page_vaddr(swapper_pg_dir[i]),
34922 + sizeof(pxd_t) * PTRS_PER_PMD);
34923
34924 - pud_populate(mm, pud, pmd);
34925 + pyd_populate(mm, pyd, pxd);
34926 }
34927 }
34928
34929 @@ -354,7 +426,7 @@ static inline void _pgd_free(pgd_t *pgd)
34930 pgd_t *pgd_alloc(struct mm_struct *mm)
34931 {
34932 pgd_t *pgd;
34933 - pmd_t *pmds[PREALLOCATED_PMDS];
34934 + pxd_t *pxds[PREALLOCATED_PXDS];
34935
34936 pgd = _pgd_alloc();
34937
34938 @@ -363,11 +435,11 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
34939
34940 mm->pgd = pgd;
34941
34942 - if (preallocate_pmds(mm, pmds) != 0)
34943 + if (preallocate_pxds(mm, pxds) != 0)
34944 goto out_free_pgd;
34945
34946 if (paravirt_pgd_alloc(mm) != 0)
34947 - goto out_free_pmds;
34948 + goto out_free_pxds;
34949
34950 /*
34951 * Make sure that pre-populating the pmds is atomic with
34952 @@ -377,14 +449,14 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
34953 spin_lock(&pgd_lock);
34954
34955 pgd_ctor(mm, pgd);
34956 - pgd_prepopulate_pmd(mm, pgd, pmds);
34957 + pgd_prepopulate_pxd(mm, pgd, pxds);
34958
34959 spin_unlock(&pgd_lock);
34960
34961 return pgd;
34962
34963 -out_free_pmds:
34964 - free_pmds(mm, pmds);
34965 +out_free_pxds:
34966 + free_pxds(mm, pxds);
34967 out_free_pgd:
34968 _pgd_free(pgd);
34969 out:
34970 @@ -393,7 +465,7 @@ out:
34971
34972 void pgd_free(struct mm_struct *mm, pgd_t *pgd)
34973 {
34974 - pgd_mop_up_pmds(mm, pgd);
34975 + pgd_mop_up_pxds(mm, pgd);
34976 pgd_dtor(pgd);
34977 paravirt_pgd_free(mm, pgd);
34978 _pgd_free(pgd);
34979 @@ -544,6 +616,55 @@ void __init reserve_top_address(unsigned long reserve)
34980
34981 int fixmaps_set;
34982
34983 +static void fix_user_fixmap(enum fixed_addresses idx, unsigned long address)
34984 +{
34985 +#ifdef CONFIG_X86_64
34986 + pgd_t *pgd;
34987 + pud_t *pud;
34988 + pmd_t *pmd;
34989 +
34990 + switch (idx) {
34991 + default:
34992 + return;
34993 +
34994 +#ifdef CONFIG_X86_VSYSCALL_EMULATION
34995 + case VSYSCALL_PAGE:
34996 + break;
34997 +#endif
34998 +
34999 +#ifdef CONFIG_PARAVIRT_CLOCK
35000 + case PVCLOCK_FIXMAP_BEGIN ... PVCLOCK_FIXMAP_END:
35001 + break;
35002 +#endif
35003 + }
35004 +
35005 + pgd = pgd_offset_k(address);
35006 + if (!(pgd_val(*pgd) & _PAGE_USER)) {
35007 +#ifdef CONFIG_PAX_PER_CPU_PGD
35008 + unsigned int cpu;
35009 + pgd_t *pgd_cpu;
35010 +
35011 + for_each_possible_cpu(cpu) {
35012 + pgd_cpu = pgd_offset_cpu(cpu, kernel, address);
35013 + set_pgd(pgd_cpu, __pgd(pgd_val(*pgd_cpu) | _PAGE_USER));
35014 +
35015 + pgd_cpu = pgd_offset_cpu(cpu, user, address);
35016 + set_pgd(pgd_cpu, __pgd(pgd_val(*pgd_cpu) | _PAGE_USER));
35017 + }
35018 +#endif
35019 + set_pgd(pgd, __pgd(pgd_val(*pgd) | _PAGE_USER));
35020 + }
35021 +
35022 + pud = pud_offset(pgd, address);
35023 + if (!(pud_val(*pud) & _PAGE_USER))
35024 + set_pud(pud, __pud(pud_val(*pud) | _PAGE_USER));
35025 +
35026 + pmd = pmd_offset(pud, address);
35027 + if (!(pmd_val(*pmd) & _PAGE_USER))
35028 + set_pmd(pmd, __pmd(pmd_val(*pmd) | _PAGE_USER));
35029 +#endif
35030 +}
35031 +
35032 void __native_set_fixmap(enum fixed_addresses idx, pte_t pte)
35033 {
35034 unsigned long address = __fix_to_virt(idx);
35035 @@ -554,6 +675,7 @@ void __native_set_fixmap(enum fixed_addresses idx, pte_t pte)
35036 }
35037 set_pte_vaddr(address, pte);
35038 fixmaps_set++;
35039 + fix_user_fixmap(idx, address);
35040 }
35041
35042 void native_set_fixmap(enum fixed_addresses idx, phys_addr_t phys,
35043 @@ -620,9 +742,11 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
35044
35045 prot = pgprot_4k_2_large(prot);
35046
35047 + pax_open_kernel();
35048 set_pte((pte_t *)pmd, pfn_pte(
35049 (u64)addr >> PAGE_SHIFT,
35050 __pgprot(pgprot_val(prot) | _PAGE_PSE)));
35051 + pax_close_kernel();
35052
35053 return 1;
35054 }
35055 diff --git a/arch/x86/mm/pgtable_32.c b/arch/x86/mm/pgtable_32.c
35056 index 75cc097..79a097f 100644
35057 --- a/arch/x86/mm/pgtable_32.c
35058 +++ b/arch/x86/mm/pgtable_32.c
35059 @@ -47,10 +47,13 @@ void set_pte_vaddr(unsigned long vaddr, pte_t pteval)
35060 return;
35061 }
35062 pte = pte_offset_kernel(pmd, vaddr);
35063 +
35064 + pax_open_kernel();
35065 if (pte_val(pteval))
35066 set_pte_at(&init_mm, vaddr, pte, pteval);
35067 else
35068 pte_clear(&init_mm, vaddr, pte);
35069 + pax_close_kernel();
35070
35071 /*
35072 * It's enough to flush this one mapping.
35073 diff --git a/arch/x86/mm/setup_nx.c b/arch/x86/mm/setup_nx.c
35074 index 90555bf..f5f1828 100644
35075 --- a/arch/x86/mm/setup_nx.c
35076 +++ b/arch/x86/mm/setup_nx.c
35077 @@ -5,8 +5,10 @@
35078 #include <asm/pgtable.h>
35079 #include <asm/proto.h>
35080
35081 +#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
35082 static int disable_nx;
35083
35084 +#ifndef CONFIG_PAX_PAGEEXEC
35085 /*
35086 * noexec = on|off
35087 *
35088 @@ -28,12 +30,17 @@ static int __init noexec_setup(char *str)
35089 return 0;
35090 }
35091 early_param("noexec", noexec_setup);
35092 +#endif
35093 +
35094 +#endif
35095
35096 void x86_configure_nx(void)
35097 {
35098 +#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
35099 if (cpu_has_nx && !disable_nx)
35100 __supported_pte_mask |= _PAGE_NX;
35101 else
35102 +#endif
35103 __supported_pte_mask &= ~_PAGE_NX;
35104 }
35105
35106 diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c
35107 index 8f4cc3d..7143a15 100644
35108 --- a/arch/x86/mm/tlb.c
35109 +++ b/arch/x86/mm/tlb.c
35110 @@ -45,7 +45,11 @@ void leave_mm(int cpu)
35111 BUG();
35112 if (cpumask_test_cpu(cpu, mm_cpumask(active_mm))) {
35113 cpumask_clear_cpu(cpu, mm_cpumask(active_mm));
35114 +
35115 +#ifndef CONFIG_PAX_PER_CPU_PGD
35116 load_cr3(swapper_pg_dir);
35117 +#endif
35118 +
35119 /*
35120 * This gets called in the idle path where RCU
35121 * functions differently. Tracing normally
35122 diff --git a/arch/x86/mm/uderef_64.c b/arch/x86/mm/uderef_64.c
35123 new file mode 100644
35124 index 0000000..3fda3f3
35125 --- /dev/null
35126 +++ b/arch/x86/mm/uderef_64.c
35127 @@ -0,0 +1,37 @@
35128 +#include <linux/mm.h>
35129 +#include <asm/pgtable.h>
35130 +#include <asm/uaccess.h>
35131 +
35132 +#ifdef CONFIG_PAX_MEMORY_UDEREF
35133 +/* PaX: due to the special call convention these functions must
35134 + * - remain leaf functions under all configurations,
35135 + * - never be called directly, only dereferenced from the wrappers.
35136 + */
35137 +void __used __pax_open_userland(void)
35138 +{
35139 + unsigned int cpu;
35140 +
35141 + if (unlikely(!segment_eq(get_fs(), USER_DS)))
35142 + return;
35143 +
35144 + cpu = raw_get_cpu();
35145 + BUG_ON((read_cr3() & ~PAGE_MASK) != PCID_KERNEL);
35146 + write_cr3(__pa_nodebug(get_cpu_pgd(cpu, user)) | PCID_USER | PCID_NOFLUSH);
35147 + raw_put_cpu_no_resched();
35148 +}
35149 +EXPORT_SYMBOL(__pax_open_userland);
35150 +
35151 +void __used __pax_close_userland(void)
35152 +{
35153 + unsigned int cpu;
35154 +
35155 + if (unlikely(!segment_eq(get_fs(), USER_DS)))
35156 + return;
35157 +
35158 + cpu = raw_get_cpu();
35159 + BUG_ON((read_cr3() & ~PAGE_MASK) != PCID_USER);
35160 + write_cr3(__pa_nodebug(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL | PCID_NOFLUSH);
35161 + raw_put_cpu_no_resched();
35162 +}
35163 +EXPORT_SYMBOL(__pax_close_userland);
35164 +#endif
35165 diff --git a/arch/x86/net/bpf_jit.S b/arch/x86/net/bpf_jit.S
35166 index 4093216..44b6b83 100644
35167 --- a/arch/x86/net/bpf_jit.S
35168 +++ b/arch/x86/net/bpf_jit.S
35169 @@ -8,6 +8,7 @@
35170 * of the License.
35171 */
35172 #include <linux/linkage.h>
35173 +#include <asm/alternative-asm.h>
35174
35175 /*
35176 * Calling convention :
35177 @@ -37,6 +38,7 @@ sk_load_word_positive_offset:
35178 jle bpf_slow_path_word
35179 mov (SKBDATA,%rsi),%eax
35180 bswap %eax /* ntohl() */
35181 + pax_force_retaddr
35182 ret
35183
35184 sk_load_half:
35185 @@ -54,6 +56,7 @@ sk_load_half_positive_offset:
35186 jle bpf_slow_path_half
35187 movzwl (SKBDATA,%rsi),%eax
35188 rol $8,%ax # ntohs()
35189 + pax_force_retaddr
35190 ret
35191
35192 sk_load_byte:
35193 @@ -68,6 +71,7 @@ sk_load_byte_positive_offset:
35194 cmp %esi,%r9d /* if (offset >= hlen) goto bpf_slow_path_byte */
35195 jle bpf_slow_path_byte
35196 movzbl (SKBDATA,%rsi),%eax
35197 + pax_force_retaddr
35198 ret
35199
35200 /* rsi contains offset and can be scratched */
35201 @@ -89,6 +93,7 @@ bpf_slow_path_word:
35202 js bpf_error
35203 mov - MAX_BPF_STACK + 32(%rbp),%eax
35204 bswap %eax
35205 + pax_force_retaddr
35206 ret
35207
35208 bpf_slow_path_half:
35209 @@ -97,12 +102,14 @@ bpf_slow_path_half:
35210 mov - MAX_BPF_STACK + 32(%rbp),%ax
35211 rol $8,%ax
35212 movzwl %ax,%eax
35213 + pax_force_retaddr
35214 ret
35215
35216 bpf_slow_path_byte:
35217 bpf_slow_path_common(1)
35218 js bpf_error
35219 movzbl - MAX_BPF_STACK + 32(%rbp),%eax
35220 + pax_force_retaddr
35221 ret
35222
35223 #define sk_negative_common(SIZE) \
35224 @@ -125,6 +132,7 @@ sk_load_word_negative_offset:
35225 sk_negative_common(4)
35226 mov (%rax), %eax
35227 bswap %eax
35228 + pax_force_retaddr
35229 ret
35230
35231 bpf_slow_path_half_neg:
35232 @@ -136,6 +144,7 @@ sk_load_half_negative_offset:
35233 mov (%rax),%ax
35234 rol $8,%ax
35235 movzwl %ax,%eax
35236 + pax_force_retaddr
35237 ret
35238
35239 bpf_slow_path_byte_neg:
35240 @@ -145,6 +154,7 @@ sk_load_byte_negative_offset:
35241 .globl sk_load_byte_negative_offset
35242 sk_negative_common(1)
35243 movzbl (%rax), %eax
35244 + pax_force_retaddr
35245 ret
35246
35247 bpf_error:
35248 @@ -155,4 +165,5 @@ bpf_error:
35249 mov - MAX_BPF_STACK + 16(%rbp),%r14
35250 mov - MAX_BPF_STACK + 24(%rbp),%r15
35251 leaveq
35252 + pax_force_retaddr
35253 ret
35254 diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
35255 index 7599197..8e986f3 100644
35256 --- a/arch/x86/net/bpf_jit_comp.c
35257 +++ b/arch/x86/net/bpf_jit_comp.c
35258 @@ -14,7 +14,11 @@
35259 #include <asm/cacheflush.h>
35260 #include <linux/bpf.h>
35261
35262 +#ifdef CONFIG_GRKERNSEC_BPF_HARDEN
35263 +int bpf_jit_enable __read_only;
35264 +#else
35265 int bpf_jit_enable __read_mostly;
35266 +#endif
35267
35268 /*
35269 * assembly code in arch/x86/net/bpf_jit.S
35270 @@ -176,7 +180,9 @@ static u8 add_2reg(u8 byte, u32 dst_reg, u32 src_reg)
35271 static void jit_fill_hole(void *area, unsigned int size)
35272 {
35273 /* fill whole space with int3 instructions */
35274 + pax_open_kernel();
35275 memset(area, 0xcc, size);
35276 + pax_close_kernel();
35277 }
35278
35279 struct jit_context {
35280 @@ -1030,7 +1036,9 @@ common_load:
35281 pr_err("bpf_jit_compile fatal error\n");
35282 return -EFAULT;
35283 }
35284 + pax_open_kernel();
35285 memcpy(image + proglen, temp, ilen);
35286 + pax_close_kernel();
35287 }
35288 proglen += ilen;
35289 addrs[i] = proglen;
35290 @@ -1107,7 +1115,6 @@ void bpf_int_jit_compile(struct bpf_prog *prog)
35291
35292 if (image) {
35293 bpf_flush_icache(header, image + proglen);
35294 - set_memory_ro((unsigned long)header, header->pages);
35295 prog->bpf_func = (void *)image;
35296 prog->jited = 1;
35297 }
35298 @@ -1120,12 +1127,8 @@ void bpf_jit_free(struct bpf_prog *fp)
35299 unsigned long addr = (unsigned long)fp->bpf_func & PAGE_MASK;
35300 struct bpf_binary_header *header = (void *)addr;
35301
35302 - if (!fp->jited)
35303 - goto free_filter;
35304 + if (fp->jited)
35305 + bpf_jit_binary_free(header);
35306
35307 - set_memory_rw(addr, header->pages);
35308 - bpf_jit_binary_free(header);
35309 -
35310 -free_filter:
35311 bpf_prog_unlock_free(fp);
35312 }
35313 diff --git a/arch/x86/oprofile/backtrace.c b/arch/x86/oprofile/backtrace.c
35314 index 4e664bd..2beeaa2 100644
35315 --- a/arch/x86/oprofile/backtrace.c
35316 +++ b/arch/x86/oprofile/backtrace.c
35317 @@ -46,11 +46,11 @@ dump_user_backtrace_32(struct stack_frame_ia32 *head)
35318 struct stack_frame_ia32 *fp;
35319 unsigned long bytes;
35320
35321 - bytes = copy_from_user_nmi(bufhead, head, sizeof(bufhead));
35322 + bytes = copy_from_user_nmi(bufhead, (const char __force_user *)head, sizeof(bufhead));
35323 if (bytes != 0)
35324 return NULL;
35325
35326 - fp = (struct stack_frame_ia32 *) compat_ptr(bufhead[0].next_frame);
35327 + fp = (struct stack_frame_ia32 __force_kernel *) compat_ptr(bufhead[0].next_frame);
35328
35329 oprofile_add_trace(bufhead[0].return_address);
35330
35331 @@ -92,7 +92,7 @@ static struct stack_frame *dump_user_backtrace(struct stack_frame *head)
35332 struct stack_frame bufhead[2];
35333 unsigned long bytes;
35334
35335 - bytes = copy_from_user_nmi(bufhead, head, sizeof(bufhead));
35336 + bytes = copy_from_user_nmi(bufhead, (const char __force_user *)head, sizeof(bufhead));
35337 if (bytes != 0)
35338 return NULL;
35339
35340 diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c
35341 index 1d2e639..f6ef82a 100644
35342 --- a/arch/x86/oprofile/nmi_int.c
35343 +++ b/arch/x86/oprofile/nmi_int.c
35344 @@ -23,6 +23,7 @@
35345 #include <asm/nmi.h>
35346 #include <asm/msr.h>
35347 #include <asm/apic.h>
35348 +#include <asm/pgtable.h>
35349
35350 #include "op_counter.h"
35351 #include "op_x86_model.h"
35352 @@ -785,8 +786,11 @@ int __init op_nmi_init(struct oprofile_operations *ops)
35353 if (ret)
35354 return ret;
35355
35356 - if (!model->num_virt_counters)
35357 - model->num_virt_counters = model->num_counters;
35358 + if (!model->num_virt_counters) {
35359 + pax_open_kernel();
35360 + *(unsigned int *)&model->num_virt_counters = model->num_counters;
35361 + pax_close_kernel();
35362 + }
35363
35364 mux_init(ops);
35365
35366 diff --git a/arch/x86/oprofile/op_model_amd.c b/arch/x86/oprofile/op_model_amd.c
35367 index 50d86c0..7985318 100644
35368 --- a/arch/x86/oprofile/op_model_amd.c
35369 +++ b/arch/x86/oprofile/op_model_amd.c
35370 @@ -519,9 +519,11 @@ static int op_amd_init(struct oprofile_operations *ops)
35371 num_counters = AMD64_NUM_COUNTERS;
35372 }
35373
35374 - op_amd_spec.num_counters = num_counters;
35375 - op_amd_spec.num_controls = num_counters;
35376 - op_amd_spec.num_virt_counters = max(num_counters, NUM_VIRT_COUNTERS);
35377 + pax_open_kernel();
35378 + *(unsigned int *)&op_amd_spec.num_counters = num_counters;
35379 + *(unsigned int *)&op_amd_spec.num_controls = num_counters;
35380 + *(unsigned int *)&op_amd_spec.num_virt_counters = max(num_counters, NUM_VIRT_COUNTERS);
35381 + pax_close_kernel();
35382
35383 return 0;
35384 }
35385 diff --git a/arch/x86/oprofile/op_model_ppro.c b/arch/x86/oprofile/op_model_ppro.c
35386 index d90528e..0127e2b 100644
35387 --- a/arch/x86/oprofile/op_model_ppro.c
35388 +++ b/arch/x86/oprofile/op_model_ppro.c
35389 @@ -19,6 +19,7 @@
35390 #include <asm/msr.h>
35391 #include <asm/apic.h>
35392 #include <asm/nmi.h>
35393 +#include <asm/pgtable.h>
35394
35395 #include "op_x86_model.h"
35396 #include "op_counter.h"
35397 @@ -221,8 +222,10 @@ static void arch_perfmon_setup_counters(void)
35398
35399 num_counters = min((int)eax.split.num_counters, OP_MAX_COUNTER);
35400
35401 - op_arch_perfmon_spec.num_counters = num_counters;
35402 - op_arch_perfmon_spec.num_controls = num_counters;
35403 + pax_open_kernel();
35404 + *(unsigned int *)&op_arch_perfmon_spec.num_counters = num_counters;
35405 + *(unsigned int *)&op_arch_perfmon_spec.num_controls = num_counters;
35406 + pax_close_kernel();
35407 }
35408
35409 static int arch_perfmon_init(struct oprofile_operations *ignore)
35410 diff --git a/arch/x86/oprofile/op_x86_model.h b/arch/x86/oprofile/op_x86_model.h
35411 index 71e8a67..6a313bb 100644
35412 --- a/arch/x86/oprofile/op_x86_model.h
35413 +++ b/arch/x86/oprofile/op_x86_model.h
35414 @@ -52,7 +52,7 @@ struct op_x86_model_spec {
35415 void (*switch_ctrl)(struct op_x86_model_spec const *model,
35416 struct op_msrs const * const msrs);
35417 #endif
35418 -};
35419 +} __do_const;
35420
35421 struct op_counter_config;
35422
35423 diff --git a/arch/x86/pci/intel_mid_pci.c b/arch/x86/pci/intel_mid_pci.c
35424 index 0d24e7c..d937be3 100644
35425 --- a/arch/x86/pci/intel_mid_pci.c
35426 +++ b/arch/x86/pci/intel_mid_pci.c
35427 @@ -283,7 +283,7 @@ int __init intel_mid_pci_init(void)
35428 pci_mmcfg_late_init();
35429 pcibios_enable_irq = intel_mid_pci_irq_enable;
35430 pcibios_disable_irq = intel_mid_pci_irq_disable;
35431 - pci_root_ops = intel_mid_pci_ops;
35432 + memcpy((void *)&pci_root_ops, &intel_mid_pci_ops, sizeof pci_root_ops);
35433 pci_soc_mode = 1;
35434 /* Continue with standard init */
35435 return 1;
35436 diff --git a/arch/x86/pci/irq.c b/arch/x86/pci/irq.c
35437 index 32e7034..bf2dd06 100644
35438 --- a/arch/x86/pci/irq.c
35439 +++ b/arch/x86/pci/irq.c
35440 @@ -51,7 +51,7 @@ struct irq_router {
35441 struct irq_router_handler {
35442 u16 vendor;
35443 int (*probe)(struct irq_router *r, struct pci_dev *router, u16 device);
35444 -};
35445 +} __do_const;
35446
35447 int (*pcibios_enable_irq)(struct pci_dev *dev) = pirq_enable_irq;
35448 void (*pcibios_disable_irq)(struct pci_dev *dev) = pirq_disable_irq;
35449 @@ -792,7 +792,7 @@ static __init int pico_router_probe(struct irq_router *r, struct pci_dev *router
35450 return 0;
35451 }
35452
35453 -static __initdata struct irq_router_handler pirq_routers[] = {
35454 +static __initconst const struct irq_router_handler pirq_routers[] = {
35455 { PCI_VENDOR_ID_INTEL, intel_router_probe },
35456 { PCI_VENDOR_ID_AL, ali_router_probe },
35457 { PCI_VENDOR_ID_ITE, ite_router_probe },
35458 @@ -819,7 +819,7 @@ static struct pci_dev *pirq_router_dev;
35459 static void __init pirq_find_router(struct irq_router *r)
35460 {
35461 struct irq_routing_table *rt = pirq_table;
35462 - struct irq_router_handler *h;
35463 + const struct irq_router_handler *h;
35464
35465 #ifdef CONFIG_PCI_BIOS
35466 if (!rt->signature) {
35467 @@ -1092,7 +1092,7 @@ static int __init fix_acer_tm360_irqrouting(const struct dmi_system_id *d)
35468 return 0;
35469 }
35470
35471 -static struct dmi_system_id __initdata pciirq_dmi_table[] = {
35472 +static const struct dmi_system_id __initconst pciirq_dmi_table[] = {
35473 {
35474 .callback = fix_broken_hp_bios_irq9,
35475 .ident = "HP Pavilion N5400 Series Laptop",
35476 diff --git a/arch/x86/pci/pcbios.c b/arch/x86/pci/pcbios.c
35477 index 9b83b90..2c256c5 100644
35478 --- a/arch/x86/pci/pcbios.c
35479 +++ b/arch/x86/pci/pcbios.c
35480 @@ -79,7 +79,7 @@ union bios32 {
35481 static struct {
35482 unsigned long address;
35483 unsigned short segment;
35484 -} bios32_indirect __initdata = { 0, __KERNEL_CS };
35485 +} bios32_indirect __initdata = { 0, __PCIBIOS_CS };
35486
35487 /*
35488 * Returns the entry point for the given service, NULL on error
35489 @@ -92,37 +92,80 @@ static unsigned long __init bios32_service(unsigned long service)
35490 unsigned long length; /* %ecx */
35491 unsigned long entry; /* %edx */
35492 unsigned long flags;
35493 + struct desc_struct d, *gdt;
35494
35495 local_irq_save(flags);
35496 - __asm__("lcall *(%%edi); cld"
35497 +
35498 + gdt = get_cpu_gdt_table(smp_processor_id());
35499 +
35500 + pack_descriptor(&d, 0UL, 0xFFFFFUL, 0x9B, 0xC);
35501 + write_gdt_entry(gdt, GDT_ENTRY_PCIBIOS_CS, &d, DESCTYPE_S);
35502 + pack_descriptor(&d, 0UL, 0xFFFFFUL, 0x93, 0xC);
35503 + write_gdt_entry(gdt, GDT_ENTRY_PCIBIOS_DS, &d, DESCTYPE_S);
35504 +
35505 + __asm__("movw %w7, %%ds; lcall *(%%edi); push %%ss; pop %%ds; cld"
35506 : "=a" (return_code),
35507 "=b" (address),
35508 "=c" (length),
35509 "=d" (entry)
35510 : "0" (service),
35511 "1" (0),
35512 - "D" (&bios32_indirect));
35513 + "D" (&bios32_indirect),
35514 + "r"(__PCIBIOS_DS)
35515 + : "memory");
35516 +
35517 + pax_open_kernel();
35518 + gdt[GDT_ENTRY_PCIBIOS_CS].a = 0;
35519 + gdt[GDT_ENTRY_PCIBIOS_CS].b = 0;
35520 + gdt[GDT_ENTRY_PCIBIOS_DS].a = 0;
35521 + gdt[GDT_ENTRY_PCIBIOS_DS].b = 0;
35522 + pax_close_kernel();
35523 +
35524 local_irq_restore(flags);
35525
35526 switch (return_code) {
35527 - case 0:
35528 - return address + entry;
35529 - case 0x80: /* Not present */
35530 - printk(KERN_WARNING "bios32_service(0x%lx): not present\n", service);
35531 - return 0;
35532 - default: /* Shouldn't happen */
35533 - printk(KERN_WARNING "bios32_service(0x%lx): returned 0x%x -- BIOS bug!\n",
35534 - service, return_code);
35535 + case 0: {
35536 + int cpu;
35537 + unsigned char flags;
35538 +
35539 + printk(KERN_INFO "bios32_service: base:%08lx length:%08lx entry:%08lx\n", address, length, entry);
35540 + if (address >= 0xFFFF0 || length > 0x100000 - address || length <= entry) {
35541 + printk(KERN_WARNING "bios32_service: not valid\n");
35542 return 0;
35543 + }
35544 + address = address + PAGE_OFFSET;
35545 + length += 16UL; /* some BIOSs underreport this... */
35546 + flags = 4;
35547 + if (length >= 64*1024*1024) {
35548 + length >>= PAGE_SHIFT;
35549 + flags |= 8;
35550 + }
35551 +
35552 + for (cpu = 0; cpu < nr_cpu_ids; cpu++) {
35553 + gdt = get_cpu_gdt_table(cpu);
35554 + pack_descriptor(&d, address, length, 0x9b, flags);
35555 + write_gdt_entry(gdt, GDT_ENTRY_PCIBIOS_CS, &d, DESCTYPE_S);
35556 + pack_descriptor(&d, address, length, 0x93, flags);
35557 + write_gdt_entry(gdt, GDT_ENTRY_PCIBIOS_DS, &d, DESCTYPE_S);
35558 + }
35559 + return entry;
35560 + }
35561 + case 0x80: /* Not present */
35562 + printk(KERN_WARNING "bios32_service(0x%lx): not present\n", service);
35563 + return 0;
35564 + default: /* Shouldn't happen */
35565 + printk(KERN_WARNING "bios32_service(0x%lx): returned 0x%x -- BIOS bug!\n",
35566 + service, return_code);
35567 + return 0;
35568 }
35569 }
35570
35571 static struct {
35572 unsigned long address;
35573 unsigned short segment;
35574 -} pci_indirect = { 0, __KERNEL_CS };
35575 +} pci_indirect __read_only = { 0, __PCIBIOS_CS };
35576
35577 -static int pci_bios_present;
35578 +static int pci_bios_present __read_only;
35579
35580 static int __init check_pcibios(void)
35581 {
35582 @@ -131,11 +174,13 @@ static int __init check_pcibios(void)
35583 unsigned long flags, pcibios_entry;
35584
35585 if ((pcibios_entry = bios32_service(PCI_SERVICE))) {
35586 - pci_indirect.address = pcibios_entry + PAGE_OFFSET;
35587 + pci_indirect.address = pcibios_entry;
35588
35589 local_irq_save(flags);
35590 - __asm__(
35591 - "lcall *(%%edi); cld\n\t"
35592 + __asm__("movw %w6, %%ds\n\t"
35593 + "lcall *%%ss:(%%edi); cld\n\t"
35594 + "push %%ss\n\t"
35595 + "pop %%ds\n\t"
35596 "jc 1f\n\t"
35597 "xor %%ah, %%ah\n"
35598 "1:"
35599 @@ -144,7 +189,8 @@ static int __init check_pcibios(void)
35600 "=b" (ebx),
35601 "=c" (ecx)
35602 : "1" (PCIBIOS_PCI_BIOS_PRESENT),
35603 - "D" (&pci_indirect)
35604 + "D" (&pci_indirect),
35605 + "r" (__PCIBIOS_DS)
35606 : "memory");
35607 local_irq_restore(flags);
35608
35609 @@ -189,7 +235,10 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
35610
35611 switch (len) {
35612 case 1:
35613 - __asm__("lcall *(%%esi); cld\n\t"
35614 + __asm__("movw %w6, %%ds\n\t"
35615 + "lcall *%%ss:(%%esi); cld\n\t"
35616 + "push %%ss\n\t"
35617 + "pop %%ds\n\t"
35618 "jc 1f\n\t"
35619 "xor %%ah, %%ah\n"
35620 "1:"
35621 @@ -198,7 +247,8 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
35622 : "1" (PCIBIOS_READ_CONFIG_BYTE),
35623 "b" (bx),
35624 "D" ((long)reg),
35625 - "S" (&pci_indirect));
35626 + "S" (&pci_indirect),
35627 + "r" (__PCIBIOS_DS));
35628 /*
35629 * Zero-extend the result beyond 8 bits, do not trust the
35630 * BIOS having done it:
35631 @@ -206,7 +256,10 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
35632 *value &= 0xff;
35633 break;
35634 case 2:
35635 - __asm__("lcall *(%%esi); cld\n\t"
35636 + __asm__("movw %w6, %%ds\n\t"
35637 + "lcall *%%ss:(%%esi); cld\n\t"
35638 + "push %%ss\n\t"
35639 + "pop %%ds\n\t"
35640 "jc 1f\n\t"
35641 "xor %%ah, %%ah\n"
35642 "1:"
35643 @@ -215,7 +268,8 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
35644 : "1" (PCIBIOS_READ_CONFIG_WORD),
35645 "b" (bx),
35646 "D" ((long)reg),
35647 - "S" (&pci_indirect));
35648 + "S" (&pci_indirect),
35649 + "r" (__PCIBIOS_DS));
35650 /*
35651 * Zero-extend the result beyond 16 bits, do not trust the
35652 * BIOS having done it:
35653 @@ -223,7 +277,10 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
35654 *value &= 0xffff;
35655 break;
35656 case 4:
35657 - __asm__("lcall *(%%esi); cld\n\t"
35658 + __asm__("movw %w6, %%ds\n\t"
35659 + "lcall *%%ss:(%%esi); cld\n\t"
35660 + "push %%ss\n\t"
35661 + "pop %%ds\n\t"
35662 "jc 1f\n\t"
35663 "xor %%ah, %%ah\n"
35664 "1:"
35665 @@ -232,7 +289,8 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
35666 : "1" (PCIBIOS_READ_CONFIG_DWORD),
35667 "b" (bx),
35668 "D" ((long)reg),
35669 - "S" (&pci_indirect));
35670 + "S" (&pci_indirect),
35671 + "r" (__PCIBIOS_DS));
35672 break;
35673 }
35674
35675 @@ -256,7 +314,10 @@ static int pci_bios_write(unsigned int seg, unsigned int bus,
35676
35677 switch (len) {
35678 case 1:
35679 - __asm__("lcall *(%%esi); cld\n\t"
35680 + __asm__("movw %w6, %%ds\n\t"
35681 + "lcall *%%ss:(%%esi); cld\n\t"
35682 + "push %%ss\n\t"
35683 + "pop %%ds\n\t"
35684 "jc 1f\n\t"
35685 "xor %%ah, %%ah\n"
35686 "1:"
35687 @@ -265,10 +326,14 @@ static int pci_bios_write(unsigned int seg, unsigned int bus,
35688 "c" (value),
35689 "b" (bx),
35690 "D" ((long)reg),
35691 - "S" (&pci_indirect));
35692 + "S" (&pci_indirect),
35693 + "r" (__PCIBIOS_DS));
35694 break;
35695 case 2:
35696 - __asm__("lcall *(%%esi); cld\n\t"
35697 + __asm__("movw %w6, %%ds\n\t"
35698 + "lcall *%%ss:(%%esi); cld\n\t"
35699 + "push %%ss\n\t"
35700 + "pop %%ds\n\t"
35701 "jc 1f\n\t"
35702 "xor %%ah, %%ah\n"
35703 "1:"
35704 @@ -277,10 +342,14 @@ static int pci_bios_write(unsigned int seg, unsigned int bus,
35705 "c" (value),
35706 "b" (bx),
35707 "D" ((long)reg),
35708 - "S" (&pci_indirect));
35709 + "S" (&pci_indirect),
35710 + "r" (__PCIBIOS_DS));
35711 break;
35712 case 4:
35713 - __asm__("lcall *(%%esi); cld\n\t"
35714 + __asm__("movw %w6, %%ds\n\t"
35715 + "lcall *%%ss:(%%esi); cld\n\t"
35716 + "push %%ss\n\t"
35717 + "pop %%ds\n\t"
35718 "jc 1f\n\t"
35719 "xor %%ah, %%ah\n"
35720 "1:"
35721 @@ -289,7 +358,8 @@ static int pci_bios_write(unsigned int seg, unsigned int bus,
35722 "c" (value),
35723 "b" (bx),
35724 "D" ((long)reg),
35725 - "S" (&pci_indirect));
35726 + "S" (&pci_indirect),
35727 + "r" (__PCIBIOS_DS));
35728 break;
35729 }
35730
35731 @@ -394,10 +464,13 @@ struct irq_routing_table * pcibios_get_irq_routing_table(void)
35732
35733 DBG("PCI: Fetching IRQ routing table... ");
35734 __asm__("push %%es\n\t"
35735 + "movw %w8, %%ds\n\t"
35736 "push %%ds\n\t"
35737 "pop %%es\n\t"
35738 - "lcall *(%%esi); cld\n\t"
35739 + "lcall *%%ss:(%%esi); cld\n\t"
35740 "pop %%es\n\t"
35741 + "push %%ss\n\t"
35742 + "pop %%ds\n"
35743 "jc 1f\n\t"
35744 "xor %%ah, %%ah\n"
35745 "1:"
35746 @@ -408,7 +481,8 @@ struct irq_routing_table * pcibios_get_irq_routing_table(void)
35747 "1" (0),
35748 "D" ((long) &opt),
35749 "S" (&pci_indirect),
35750 - "m" (opt)
35751 + "m" (opt),
35752 + "r" (__PCIBIOS_DS)
35753 : "memory");
35754 DBG("OK ret=%d, size=%d, map=%x\n", ret, opt.size, map);
35755 if (ret & 0xff00)
35756 @@ -432,7 +506,10 @@ int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq)
35757 {
35758 int ret;
35759
35760 - __asm__("lcall *(%%esi); cld\n\t"
35761 + __asm__("movw %w5, %%ds\n\t"
35762 + "lcall *%%ss:(%%esi); cld\n\t"
35763 + "push %%ss\n\t"
35764 + "pop %%ds\n"
35765 "jc 1f\n\t"
35766 "xor %%ah, %%ah\n"
35767 "1:"
35768 @@ -440,7 +517,8 @@ int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq)
35769 : "0" (PCIBIOS_SET_PCI_HW_INT),
35770 "b" ((dev->bus->number << 8) | dev->devfn),
35771 "c" ((irq << 8) | (pin + 10)),
35772 - "S" (&pci_indirect));
35773 + "S" (&pci_indirect),
35774 + "r" (__PCIBIOS_DS));
35775 return !(ret & 0xff00);
35776 }
35777 EXPORT_SYMBOL(pcibios_set_irq_routing);
35778 diff --git a/arch/x86/platform/efi/efi_32.c b/arch/x86/platform/efi/efi_32.c
35779 index ed5b673..24d2d53 100644
35780 --- a/arch/x86/platform/efi/efi_32.c
35781 +++ b/arch/x86/platform/efi/efi_32.c
35782 @@ -61,11 +61,27 @@ pgd_t * __init efi_call_phys_prolog(void)
35783 struct desc_ptr gdt_descr;
35784 pgd_t *save_pgd;
35785
35786 +#ifdef CONFIG_PAX_KERNEXEC
35787 + struct desc_struct d;
35788 +#endif
35789 +
35790 /* Current pgd is swapper_pg_dir, we'll restore it later: */
35791 +#ifdef CONFIG_PAX_PER_CPU_PGD
35792 + save_pgd = get_cpu_pgd(smp_processor_id(), kernel);
35793 +#else
35794 save_pgd = swapper_pg_dir;
35795 +#endif
35796 +
35797 load_cr3(initial_page_table);
35798 __flush_tlb_all();
35799
35800 +#ifdef CONFIG_PAX_KERNEXEC
35801 + pack_descriptor(&d, 0, 0xFFFFF, 0x9B, 0xC);
35802 + write_gdt_entry(get_cpu_gdt_table(0), GDT_ENTRY_KERNEXEC_EFI_CS, &d, DESCTYPE_S);
35803 + pack_descriptor(&d, 0, 0xFFFFF, 0x93, 0xC);
35804 + write_gdt_entry(get_cpu_gdt_table(0), GDT_ENTRY_KERNEXEC_EFI_DS, &d, DESCTYPE_S);
35805 +#endif
35806 +
35807 gdt_descr.address = __pa(get_cpu_gdt_table(0));
35808 gdt_descr.size = GDT_SIZE - 1;
35809 load_gdt(&gdt_descr);
35810 @@ -77,6 +93,14 @@ void __init efi_call_phys_epilog(pgd_t *save_pgd)
35811 {
35812 struct desc_ptr gdt_descr;
35813
35814 +#ifdef CONFIG_PAX_KERNEXEC
35815 + struct desc_struct d;
35816 +
35817 + memset(&d, 0, sizeof d);
35818 + write_gdt_entry(get_cpu_gdt_table(0), GDT_ENTRY_KERNEXEC_EFI_CS, &d, DESCTYPE_S);
35819 + write_gdt_entry(get_cpu_gdt_table(0), GDT_ENTRY_KERNEXEC_EFI_DS, &d, DESCTYPE_S);
35820 +#endif
35821 +
35822 gdt_descr.address = (unsigned long)get_cpu_gdt_table(0);
35823 gdt_descr.size = GDT_SIZE - 1;
35824 load_gdt(&gdt_descr);
35825 diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c
35826 index a0ac0f9..f41d324 100644
35827 --- a/arch/x86/platform/efi/efi_64.c
35828 +++ b/arch/x86/platform/efi/efi_64.c
35829 @@ -96,6 +96,11 @@ pgd_t * __init efi_call_phys_prolog(void)
35830 vaddress = (unsigned long)__va(pgd * PGDIR_SIZE);
35831 set_pgd(pgd_offset_k(pgd * PGDIR_SIZE), *pgd_offset_k(vaddress));
35832 }
35833 +
35834 +#ifdef CONFIG_PAX_PER_CPU_PGD
35835 + load_cr3(swapper_pg_dir);
35836 +#endif
35837 +
35838 __flush_tlb_all();
35839
35840 return save_pgd;
35841 @@ -119,6 +124,10 @@ void __init efi_call_phys_epilog(pgd_t *save_pgd)
35842
35843 kfree(save_pgd);
35844
35845 +#ifdef CONFIG_PAX_PER_CPU_PGD
35846 + load_cr3(get_cpu_pgd(smp_processor_id(), kernel));
35847 +#endif
35848 +
35849 __flush_tlb_all();
35850 early_code_mapping_set_exec(0);
35851 }
35852 @@ -148,8 +157,23 @@ int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages)
35853 unsigned npages;
35854 pgd_t *pgd;
35855
35856 - if (efi_enabled(EFI_OLD_MEMMAP))
35857 + if (efi_enabled(EFI_OLD_MEMMAP)) {
35858 + /* PaX: We need to disable the NX bit in the PGD, otherwise we won't be
35859 + * able to execute the EFI services.
35860 + */
35861 + if (__supported_pte_mask & _PAGE_NX) {
35862 + unsigned long addr = (unsigned long) __va(0);
35863 + pgd_t pe = __pgd(pgd_val(*pgd_offset_k(addr)) & ~_PAGE_NX);
35864 +
35865 + pr_alert("PAX: Disabling NX protection for low memory map. Try booting without \"efi=old_map\"\n");
35866 +#ifdef CONFIG_PAX_PER_CPU_PGD
35867 + set_pgd(pgd_offset_cpu(0, kernel, addr), pe);
35868 +#endif
35869 + set_pgd(pgd_offset_k(addr), pe);
35870 + }
35871 +
35872 return 0;
35873 + }
35874
35875 efi_scratch.efi_pgt = (pgd_t *)(unsigned long)real_mode_header->trampoline_pgd;
35876 pgd = __va(efi_scratch.efi_pgt);
35877 diff --git a/arch/x86/platform/efi/efi_stub_32.S b/arch/x86/platform/efi/efi_stub_32.S
35878 index 040192b..7d3300f 100644
35879 --- a/arch/x86/platform/efi/efi_stub_32.S
35880 +++ b/arch/x86/platform/efi/efi_stub_32.S
35881 @@ -6,7 +6,9 @@
35882 */
35883
35884 #include <linux/linkage.h>
35885 +#include <linux/init.h>
35886 #include <asm/page_types.h>
35887 +#include <asm/segment.h>
35888
35889 /*
35890 * efi_call_phys(void *, ...) is a function with variable parameters.
35891 @@ -20,7 +22,7 @@
35892 * service functions will comply with gcc calling convention, too.
35893 */
35894
35895 -.text
35896 +__INIT
35897 ENTRY(efi_call_phys)
35898 /*
35899 * 0. The function can only be called in Linux kernel. So CS has been
35900 @@ -36,10 +38,24 @@ ENTRY(efi_call_phys)
35901 * The mapping of lower virtual memory has been created in prolog and
35902 * epilog.
35903 */
35904 - movl $1f, %edx
35905 - subl $__PAGE_OFFSET, %edx
35906 - jmp *%edx
35907 +#ifdef CONFIG_PAX_KERNEXEC
35908 + movl $(__KERNEXEC_EFI_DS), %edx
35909 + mov %edx, %ds
35910 + mov %edx, %es
35911 + mov %edx, %ss
35912 + addl $2f,(1f)
35913 + ljmp *(1f)
35914 +
35915 +__INITDATA
35916 +1: .long __LOAD_PHYSICAL_ADDR, __KERNEXEC_EFI_CS
35917 +.previous
35918 +
35919 +2:
35920 + subl $2b,(1b)
35921 +#else
35922 + jmp 1f-__PAGE_OFFSET
35923 1:
35924 +#endif
35925
35926 /*
35927 * 2. Now on the top of stack is the return
35928 @@ -47,14 +63,8 @@ ENTRY(efi_call_phys)
35929 * parameter 2, ..., param n. To make things easy, we save the return
35930 * address of efi_call_phys in a global variable.
35931 */
35932 - popl %edx
35933 - movl %edx, saved_return_addr
35934 - /* get the function pointer into ECX*/
35935 - popl %ecx
35936 - movl %ecx, efi_rt_function_ptr
35937 - movl $2f, %edx
35938 - subl $__PAGE_OFFSET, %edx
35939 - pushl %edx
35940 + popl (saved_return_addr)
35941 + popl (efi_rt_function_ptr)
35942
35943 /*
35944 * 3. Clear PG bit in %CR0.
35945 @@ -73,9 +83,8 @@ ENTRY(efi_call_phys)
35946 /*
35947 * 5. Call the physical function.
35948 */
35949 - jmp *%ecx
35950 + call *(efi_rt_function_ptr-__PAGE_OFFSET)
35951
35952 -2:
35953 /*
35954 * 6. After EFI runtime service returns, control will return to
35955 * following instruction. We'd better readjust stack pointer first.
35956 @@ -88,35 +97,36 @@ ENTRY(efi_call_phys)
35957 movl %cr0, %edx
35958 orl $0x80000000, %edx
35959 movl %edx, %cr0
35960 - jmp 1f
35961 -1:
35962 +
35963 /*
35964 * 8. Now restore the virtual mode from flat mode by
35965 * adding EIP with PAGE_OFFSET.
35966 */
35967 - movl $1f, %edx
35968 - jmp *%edx
35969 +#ifdef CONFIG_PAX_KERNEXEC
35970 + movl $(__KERNEL_DS), %edx
35971 + mov %edx, %ds
35972 + mov %edx, %es
35973 + mov %edx, %ss
35974 + ljmp $(__KERNEL_CS),$1f
35975 +#else
35976 + jmp 1f+__PAGE_OFFSET
35977 +#endif
35978 1:
35979
35980 /*
35981 * 9. Balance the stack. And because EAX contain the return value,
35982 * we'd better not clobber it.
35983 */
35984 - leal efi_rt_function_ptr, %edx
35985 - movl (%edx), %ecx
35986 - pushl %ecx
35987 + pushl (efi_rt_function_ptr)
35988
35989 /*
35990 - * 10. Push the saved return address onto the stack and return.
35991 + * 10. Return to the saved return address.
35992 */
35993 - leal saved_return_addr, %edx
35994 - movl (%edx), %ecx
35995 - pushl %ecx
35996 - ret
35997 + jmpl *(saved_return_addr)
35998 ENDPROC(efi_call_phys)
35999 .previous
36000
36001 -.data
36002 +__INITDATA
36003 saved_return_addr:
36004 .long 0
36005 efi_rt_function_ptr:
36006 diff --git a/arch/x86/platform/efi/efi_stub_64.S b/arch/x86/platform/efi/efi_stub_64.S
36007 index 86d0f9e..6d499f4 100644
36008 --- a/arch/x86/platform/efi/efi_stub_64.S
36009 +++ b/arch/x86/platform/efi/efi_stub_64.S
36010 @@ -11,6 +11,7 @@
36011 #include <asm/msr.h>
36012 #include <asm/processor-flags.h>
36013 #include <asm/page_types.h>
36014 +#include <asm/alternative-asm.h>
36015
36016 #define SAVE_XMM \
36017 mov %rsp, %rax; \
36018 @@ -88,6 +89,7 @@ ENTRY(efi_call)
36019 RESTORE_PGT
36020 addq $48, %rsp
36021 RESTORE_XMM
36022 + pax_force_retaddr 0, 1
36023 ret
36024 ENDPROC(efi_call)
36025
36026 diff --git a/arch/x86/platform/intel-mid/intel-mid.c b/arch/x86/platform/intel-mid/intel-mid.c
36027 index 1bbc21e..8a50853 100644
36028 --- a/arch/x86/platform/intel-mid/intel-mid.c
36029 +++ b/arch/x86/platform/intel-mid/intel-mid.c
36030 @@ -63,7 +63,7 @@ enum intel_mid_timer_options intel_mid_timer_options;
36031 /* intel_mid_ops to store sub arch ops */
36032 static struct intel_mid_ops *intel_mid_ops;
36033 /* getter function for sub arch ops*/
36034 -static void *(*get_intel_mid_ops[])(void) = INTEL_MID_OPS_INIT;
36035 +static const void *(*get_intel_mid_ops[])(void) = INTEL_MID_OPS_INIT;
36036 enum intel_mid_cpu_type __intel_mid_cpu_chip;
36037 EXPORT_SYMBOL_GPL(__intel_mid_cpu_chip);
36038
36039 @@ -71,9 +71,10 @@ static void intel_mid_power_off(void)
36040 {
36041 };
36042
36043 -static void intel_mid_reboot(void)
36044 +static void __noreturn intel_mid_reboot(void)
36045 {
36046 intel_scu_ipc_simple_command(IPCMSG_COLD_BOOT, 0);
36047 + BUG();
36048 }
36049
36050 static unsigned long __init intel_mid_calibrate_tsc(void)
36051 diff --git a/arch/x86/platform/intel-mid/intel_mid_weak_decls.h b/arch/x86/platform/intel-mid/intel_mid_weak_decls.h
36052 index 3c1c386..59a68ed 100644
36053 --- a/arch/x86/platform/intel-mid/intel_mid_weak_decls.h
36054 +++ b/arch/x86/platform/intel-mid/intel_mid_weak_decls.h
36055 @@ -13,6 +13,6 @@
36056 /* For every CPU addition a new get_<cpuname>_ops interface needs
36057 * to be added.
36058 */
36059 -extern void *get_penwell_ops(void);
36060 -extern void *get_cloverview_ops(void);
36061 -extern void *get_tangier_ops(void);
36062 +extern const void *get_penwell_ops(void);
36063 +extern const void *get_cloverview_ops(void);
36064 +extern const void *get_tangier_ops(void);
36065 diff --git a/arch/x86/platform/intel-mid/mfld.c b/arch/x86/platform/intel-mid/mfld.c
36066 index 23381d2..8ddc10e 100644
36067 --- a/arch/x86/platform/intel-mid/mfld.c
36068 +++ b/arch/x86/platform/intel-mid/mfld.c
36069 @@ -64,12 +64,12 @@ static void __init penwell_arch_setup(void)
36070 pm_power_off = mfld_power_off;
36071 }
36072
36073 -void *get_penwell_ops(void)
36074 +const void *get_penwell_ops(void)
36075 {
36076 return &penwell_ops;
36077 }
36078
36079 -void *get_cloverview_ops(void)
36080 +const void *get_cloverview_ops(void)
36081 {
36082 return &penwell_ops;
36083 }
36084 diff --git a/arch/x86/platform/intel-mid/mrfl.c b/arch/x86/platform/intel-mid/mrfl.c
36085 index aaca917..66eadbc 100644
36086 --- a/arch/x86/platform/intel-mid/mrfl.c
36087 +++ b/arch/x86/platform/intel-mid/mrfl.c
36088 @@ -97,7 +97,7 @@ static struct intel_mid_ops tangier_ops = {
36089 .arch_setup = tangier_arch_setup,
36090 };
36091
36092 -void *get_tangier_ops(void)
36093 +const void *get_tangier_ops(void)
36094 {
36095 return &tangier_ops;
36096 }
36097 diff --git a/arch/x86/platform/intel-quark/imr_selftest.c b/arch/x86/platform/intel-quark/imr_selftest.c
36098 index 278e4da..35db1a9 100644
36099 --- a/arch/x86/platform/intel-quark/imr_selftest.c
36100 +++ b/arch/x86/platform/intel-quark/imr_selftest.c
36101 @@ -55,7 +55,7 @@ static void __init imr_self_test_result(int res, const char *fmt, ...)
36102 */
36103 static void __init imr_self_test(void)
36104 {
36105 - phys_addr_t base = virt_to_phys(&_text);
36106 + phys_addr_t base = virt_to_phys((void *)ktla_ktva((unsigned long)_text));
36107 size_t size = virt_to_phys(&__end_rodata) - base;
36108 const char *fmt_over = "overlapped IMR @ (0x%08lx - 0x%08lx)\n";
36109 int ret;
36110 diff --git a/arch/x86/platform/olpc/olpc_dt.c b/arch/x86/platform/olpc/olpc_dt.c
36111 index d6ee929..3637cb5 100644
36112 --- a/arch/x86/platform/olpc/olpc_dt.c
36113 +++ b/arch/x86/platform/olpc/olpc_dt.c
36114 @@ -156,7 +156,7 @@ void * __init prom_early_alloc(unsigned long size)
36115 return res;
36116 }
36117
36118 -static struct of_pdt_ops prom_olpc_ops __initdata = {
36119 +static struct of_pdt_ops prom_olpc_ops __initconst = {
36120 .nextprop = olpc_dt_nextprop,
36121 .getproplen = olpc_dt_getproplen,
36122 .getproperty = olpc_dt_getproperty,
36123 diff --git a/arch/x86/power/cpu.c b/arch/x86/power/cpu.c
36124 index 9ab5279..8ba4611 100644
36125 --- a/arch/x86/power/cpu.c
36126 +++ b/arch/x86/power/cpu.c
36127 @@ -134,11 +134,8 @@ static void do_fpu_end(void)
36128 static void fix_processor_context(void)
36129 {
36130 int cpu = smp_processor_id();
36131 - struct tss_struct *t = &per_cpu(cpu_tss, cpu);
36132 -#ifdef CONFIG_X86_64
36133 - struct desc_struct *desc = get_cpu_gdt_table(cpu);
36134 - tss_desc tss;
36135 -#endif
36136 + struct tss_struct *t = cpu_tss + cpu;
36137 +
36138 set_tss_desc(cpu, t); /*
36139 * This just modifies memory; should not be
36140 * necessary. But... This is necessary, because
36141 @@ -147,10 +144,6 @@ static void fix_processor_context(void)
36142 */
36143
36144 #ifdef CONFIG_X86_64
36145 - memcpy(&tss, &desc[GDT_ENTRY_TSS], sizeof(tss_desc));
36146 - tss.type = 0x9; /* The available 64-bit TSS (see AMD vol 2, pg 91 */
36147 - write_gdt_entry(desc, GDT_ENTRY_TSS, &tss, DESC_TSS);
36148 -
36149 syscall_init(); /* This sets MSR_*STAR and related */
36150 #endif
36151 load_TR_desc(); /* This does ltr */
36152 diff --git a/arch/x86/realmode/init.c b/arch/x86/realmode/init.c
36153 index 0b7a63d..dff2199 100644
36154 --- a/arch/x86/realmode/init.c
36155 +++ b/arch/x86/realmode/init.c
36156 @@ -68,7 +68,13 @@ void __init setup_real_mode(void)
36157 __va(real_mode_header->trampoline_header);
36158
36159 #ifdef CONFIG_X86_32
36160 - trampoline_header->start = __pa_symbol(startup_32_smp);
36161 + trampoline_header->start = __pa_symbol(ktla_ktva((unsigned long)startup_32_smp));
36162 +
36163 +#ifdef CONFIG_PAX_KERNEXEC
36164 + trampoline_header->start -= LOAD_PHYSICAL_ADDR;
36165 +#endif
36166 +
36167 + trampoline_header->boot_cs = __BOOT_CS;
36168 trampoline_header->gdt_limit = __BOOT_DS + 7;
36169 trampoline_header->gdt_base = __pa_symbol(boot_gdt);
36170 #else
36171 @@ -84,7 +90,7 @@ void __init setup_real_mode(void)
36172 *trampoline_cr4_features = __read_cr4();
36173
36174 trampoline_pgd = (u64 *) __va(real_mode_header->trampoline_pgd);
36175 - trampoline_pgd[0] = init_level4_pgt[pgd_index(__PAGE_OFFSET)].pgd;
36176 + trampoline_pgd[0] = init_level4_pgt[pgd_index(__PAGE_OFFSET)].pgd & ~_PAGE_NX;
36177 trampoline_pgd[511] = init_level4_pgt[511].pgd;
36178 #endif
36179 }
36180 diff --git a/arch/x86/realmode/rm/Makefile b/arch/x86/realmode/rm/Makefile
36181 index 2730d77..2e4cd19 100644
36182 --- a/arch/x86/realmode/rm/Makefile
36183 +++ b/arch/x86/realmode/rm/Makefile
36184 @@ -68,5 +68,8 @@ $(obj)/realmode.relocs: $(obj)/realmode.elf FORCE
36185
36186 KBUILD_CFLAGS := $(LINUXINCLUDE) $(REALMODE_CFLAGS) -D_SETUP -D_WAKEUP \
36187 -I$(srctree)/arch/x86/boot
36188 +ifdef CONSTIFY_PLUGIN
36189 +KBUILD_CFLAGS += -fplugin-arg-constify_plugin-no-constify
36190 +endif
36191 KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
36192 GCOV_PROFILE := n
36193 diff --git a/arch/x86/realmode/rm/header.S b/arch/x86/realmode/rm/header.S
36194 index a28221d..93c40f1 100644
36195 --- a/arch/x86/realmode/rm/header.S
36196 +++ b/arch/x86/realmode/rm/header.S
36197 @@ -30,7 +30,9 @@ GLOBAL(real_mode_header)
36198 #endif
36199 /* APM/BIOS reboot */
36200 .long pa_machine_real_restart_asm
36201 -#ifdef CONFIG_X86_64
36202 +#ifdef CONFIG_X86_32
36203 + .long __KERNEL_CS
36204 +#else
36205 .long __KERNEL32_CS
36206 #endif
36207 END(real_mode_header)
36208 diff --git a/arch/x86/realmode/rm/reboot.S b/arch/x86/realmode/rm/reboot.S
36209 index d66c607..3def845 100644
36210 --- a/arch/x86/realmode/rm/reboot.S
36211 +++ b/arch/x86/realmode/rm/reboot.S
36212 @@ -27,6 +27,10 @@ ENTRY(machine_real_restart_asm)
36213 lgdtl pa_tr_gdt
36214
36215 /* Disable paging to drop us out of long mode */
36216 + movl %cr4, %eax
36217 + andl $~X86_CR4_PCIDE, %eax
36218 + movl %eax, %cr4
36219 +
36220 movl %cr0, %eax
36221 andl $~X86_CR0_PG, %eax
36222 movl %eax, %cr0
36223 diff --git a/arch/x86/realmode/rm/trampoline_32.S b/arch/x86/realmode/rm/trampoline_32.S
36224 index 48ddd76..c26749f 100644
36225 --- a/arch/x86/realmode/rm/trampoline_32.S
36226 +++ b/arch/x86/realmode/rm/trampoline_32.S
36227 @@ -24,6 +24,12 @@
36228 #include <asm/page_types.h>
36229 #include "realmode.h"
36230
36231 +#ifdef CONFIG_PAX_KERNEXEC
36232 +#define ta(X) (X)
36233 +#else
36234 +#define ta(X) (pa_ ## X)
36235 +#endif
36236 +
36237 .text
36238 .code16
36239
36240 @@ -38,8 +44,6 @@ ENTRY(trampoline_start)
36241
36242 cli # We should be safe anyway
36243
36244 - movl tr_start, %eax # where we need to go
36245 -
36246 movl $0xA5A5A5A5, trampoline_status
36247 # write marker for master knows we're running
36248
36249 @@ -55,7 +59,7 @@ ENTRY(trampoline_start)
36250 movw $1, %dx # protected mode (PE) bit
36251 lmsw %dx # into protected mode
36252
36253 - ljmpl $__BOOT_CS, $pa_startup_32
36254 + ljmpl *(trampoline_header)
36255
36256 .section ".text32","ax"
36257 .code32
36258 @@ -66,7 +70,7 @@ ENTRY(startup_32) # note: also used from wakeup_asm.S
36259 .balign 8
36260 GLOBAL(trampoline_header)
36261 tr_start: .space 4
36262 - tr_gdt_pad: .space 2
36263 + tr_boot_cs: .space 2
36264 tr_gdt: .space 6
36265 END(trampoline_header)
36266
36267 diff --git a/arch/x86/realmode/rm/trampoline_64.S b/arch/x86/realmode/rm/trampoline_64.S
36268 index dac7b20..72dbaca 100644
36269 --- a/arch/x86/realmode/rm/trampoline_64.S
36270 +++ b/arch/x86/realmode/rm/trampoline_64.S
36271 @@ -93,6 +93,7 @@ ENTRY(startup_32)
36272 movl %edx, %gs
36273
36274 movl pa_tr_cr4, %eax
36275 + andl $~X86_CR4_PCIDE, %eax
36276 movl %eax, %cr4 # Enable PAE mode
36277
36278 # Setup trampoline 4 level pagetables
36279 @@ -106,7 +107,7 @@ ENTRY(startup_32)
36280 wrmsr
36281
36282 # Enable paging and in turn activate Long Mode
36283 - movl $(X86_CR0_PG | X86_CR0_WP | X86_CR0_PE), %eax
36284 + movl $(X86_CR0_PG | X86_CR0_PE), %eax
36285 movl %eax, %cr0
36286
36287 /*
36288 diff --git a/arch/x86/realmode/rm/wakeup_asm.S b/arch/x86/realmode/rm/wakeup_asm.S
36289 index 9e7e147..25a4158 100644
36290 --- a/arch/x86/realmode/rm/wakeup_asm.S
36291 +++ b/arch/x86/realmode/rm/wakeup_asm.S
36292 @@ -126,11 +126,10 @@ ENTRY(wakeup_start)
36293 lgdtl pmode_gdt
36294
36295 /* This really couldn't... */
36296 - movl pmode_entry, %eax
36297 movl pmode_cr0, %ecx
36298 movl %ecx, %cr0
36299 - ljmpl $__KERNEL_CS, $pa_startup_32
36300 - /* -> jmp *%eax in trampoline_32.S */
36301 +
36302 + ljmpl *pmode_entry
36303 #else
36304 jmp trampoline_start
36305 #endif
36306 diff --git a/arch/x86/tools/Makefile b/arch/x86/tools/Makefile
36307 index 604a37e..e49702a 100644
36308 --- a/arch/x86/tools/Makefile
36309 +++ b/arch/x86/tools/Makefile
36310 @@ -37,7 +37,7 @@ $(obj)/test_get_len.o: $(srctree)/arch/x86/lib/insn.c $(srctree)/arch/x86/lib/in
36311
36312 $(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
36313
36314 -HOST_EXTRACFLAGS += -I$(srctree)/tools/include
36315 +HOST_EXTRACFLAGS += -I$(srctree)/tools/include -ggdb
36316 hostprogs-y += relocs
36317 relocs-objs := relocs_32.o relocs_64.o relocs_common.o
36318 PHONY += relocs
36319 diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c
36320 index 0c2fae8..88d7719 100644
36321 --- a/arch/x86/tools/relocs.c
36322 +++ b/arch/x86/tools/relocs.c
36323 @@ -1,5 +1,7 @@
36324 /* This is included from relocs_32/64.c */
36325
36326 +#include "../../../include/generated/autoconf.h"
36327 +
36328 #define ElfW(type) _ElfW(ELF_BITS, type)
36329 #define _ElfW(bits, type) __ElfW(bits, type)
36330 #define __ElfW(bits, type) Elf##bits##_##type
36331 @@ -11,6 +13,7 @@
36332 #define Elf_Sym ElfW(Sym)
36333
36334 static Elf_Ehdr ehdr;
36335 +static Elf_Phdr *phdr;
36336
36337 struct relocs {
36338 uint32_t *offset;
36339 @@ -386,9 +389,39 @@ static void read_ehdr(FILE *fp)
36340 }
36341 }
36342
36343 +static void read_phdrs(FILE *fp)
36344 +{
36345 + unsigned int i;
36346 +
36347 + phdr = calloc(ehdr.e_phnum, sizeof(Elf_Phdr));
36348 + if (!phdr) {
36349 + die("Unable to allocate %d program headers\n",
36350 + ehdr.e_phnum);
36351 + }
36352 + if (fseek(fp, ehdr.e_phoff, SEEK_SET) < 0) {
36353 + die("Seek to %d failed: %s\n",
36354 + ehdr.e_phoff, strerror(errno));
36355 + }
36356 + if (fread(phdr, sizeof(*phdr), ehdr.e_phnum, fp) != ehdr.e_phnum) {
36357 + die("Cannot read ELF program headers: %s\n",
36358 + strerror(errno));
36359 + }
36360 + for(i = 0; i < ehdr.e_phnum; i++) {
36361 + phdr[i].p_type = elf_word_to_cpu(phdr[i].p_type);
36362 + phdr[i].p_offset = elf_off_to_cpu(phdr[i].p_offset);
36363 + phdr[i].p_vaddr = elf_addr_to_cpu(phdr[i].p_vaddr);
36364 + phdr[i].p_paddr = elf_addr_to_cpu(phdr[i].p_paddr);
36365 + phdr[i].p_filesz = elf_word_to_cpu(phdr[i].p_filesz);
36366 + phdr[i].p_memsz = elf_word_to_cpu(phdr[i].p_memsz);
36367 + phdr[i].p_flags = elf_word_to_cpu(phdr[i].p_flags);
36368 + phdr[i].p_align = elf_word_to_cpu(phdr[i].p_align);
36369 + }
36370 +
36371 +}
36372 +
36373 static void read_shdrs(FILE *fp)
36374 {
36375 - int i;
36376 + unsigned int i;
36377 Elf_Shdr shdr;
36378
36379 secs = calloc(ehdr.e_shnum, sizeof(struct section));
36380 @@ -423,7 +456,7 @@ static void read_shdrs(FILE *fp)
36381
36382 static void read_strtabs(FILE *fp)
36383 {
36384 - int i;
36385 + unsigned int i;
36386 for (i = 0; i < ehdr.e_shnum; i++) {
36387 struct section *sec = &secs[i];
36388 if (sec->shdr.sh_type != SHT_STRTAB) {
36389 @@ -448,7 +481,7 @@ static void read_strtabs(FILE *fp)
36390
36391 static void read_symtabs(FILE *fp)
36392 {
36393 - int i,j;
36394 + unsigned int i,j;
36395 for (i = 0; i < ehdr.e_shnum; i++) {
36396 struct section *sec = &secs[i];
36397 if (sec->shdr.sh_type != SHT_SYMTAB) {
36398 @@ -479,9 +512,11 @@ static void read_symtabs(FILE *fp)
36399 }
36400
36401
36402 -static void read_relocs(FILE *fp)
36403 +static void read_relocs(FILE *fp, int use_real_mode)
36404 {
36405 - int i,j;
36406 + unsigned int i,j;
36407 + uint32_t base;
36408 +
36409 for (i = 0; i < ehdr.e_shnum; i++) {
36410 struct section *sec = &secs[i];
36411 if (sec->shdr.sh_type != SHT_REL_TYPE) {
36412 @@ -501,9 +536,22 @@ static void read_relocs(FILE *fp)
36413 die("Cannot read symbol table: %s\n",
36414 strerror(errno));
36415 }
36416 + base = 0;
36417 +
36418 +#ifdef CONFIG_X86_32
36419 + for (j = 0; !use_real_mode && j < ehdr.e_phnum; j++) {
36420 + if (phdr[j].p_type != PT_LOAD )
36421 + continue;
36422 + 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)
36423 + continue;
36424 + base = CONFIG_PAGE_OFFSET + phdr[j].p_paddr - phdr[j].p_vaddr;
36425 + break;
36426 + }
36427 +#endif
36428 +
36429 for (j = 0; j < sec->shdr.sh_size/sizeof(Elf_Rel); j++) {
36430 Elf_Rel *rel = &sec->reltab[j];
36431 - rel->r_offset = elf_addr_to_cpu(rel->r_offset);
36432 + rel->r_offset = elf_addr_to_cpu(rel->r_offset) + base;
36433 rel->r_info = elf_xword_to_cpu(rel->r_info);
36434 #if (SHT_REL_TYPE == SHT_RELA)
36435 rel->r_addend = elf_xword_to_cpu(rel->r_addend);
36436 @@ -515,7 +563,7 @@ static void read_relocs(FILE *fp)
36437
36438 static void print_absolute_symbols(void)
36439 {
36440 - int i;
36441 + unsigned int i;
36442 const char *format;
36443
36444 if (ELF_BITS == 64)
36445 @@ -528,7 +576,7 @@ static void print_absolute_symbols(void)
36446 for (i = 0; i < ehdr.e_shnum; i++) {
36447 struct section *sec = &secs[i];
36448 char *sym_strtab;
36449 - int j;
36450 + unsigned int j;
36451
36452 if (sec->shdr.sh_type != SHT_SYMTAB) {
36453 continue;
36454 @@ -555,7 +603,7 @@ static void print_absolute_symbols(void)
36455
36456 static void print_absolute_relocs(void)
36457 {
36458 - int i, printed = 0;
36459 + unsigned int i, printed = 0;
36460 const char *format;
36461
36462 if (ELF_BITS == 64)
36463 @@ -568,7 +616,7 @@ static void print_absolute_relocs(void)
36464 struct section *sec_applies, *sec_symtab;
36465 char *sym_strtab;
36466 Elf_Sym *sh_symtab;
36467 - int j;
36468 + unsigned int j;
36469 if (sec->shdr.sh_type != SHT_REL_TYPE) {
36470 continue;
36471 }
36472 @@ -645,13 +693,13 @@ static void add_reloc(struct relocs *r, uint32_t offset)
36473 static void walk_relocs(int (*process)(struct section *sec, Elf_Rel *rel,
36474 Elf_Sym *sym, const char *symname))
36475 {
36476 - int i;
36477 + unsigned int i;
36478 /* Walk through the relocations */
36479 for (i = 0; i < ehdr.e_shnum; i++) {
36480 char *sym_strtab;
36481 Elf_Sym *sh_symtab;
36482 struct section *sec_applies, *sec_symtab;
36483 - int j;
36484 + unsigned int j;
36485 struct section *sec = &secs[i];
36486
36487 if (sec->shdr.sh_type != SHT_REL_TYPE) {
36488 @@ -697,7 +745,7 @@ static void walk_relocs(int (*process)(struct section *sec, Elf_Rel *rel,
36489 * kernel data and does not require special treatment.
36490 *
36491 */
36492 -static int per_cpu_shndx = -1;
36493 +static unsigned int per_cpu_shndx = ~0;
36494 static Elf_Addr per_cpu_load_addr;
36495
36496 static void percpu_init(void)
36497 @@ -830,6 +878,23 @@ static int do_reloc32(struct section *sec, Elf_Rel *rel, Elf_Sym *sym,
36498 {
36499 unsigned r_type = ELF32_R_TYPE(rel->r_info);
36500 int shn_abs = (sym->st_shndx == SHN_ABS) && !is_reloc(S_REL, symname);
36501 + char *sym_strtab = sec->link->link->strtab;
36502 +
36503 + /* Don't relocate actual per-cpu variables, they are absolute indices, not addresses */
36504 + if (!strcmp(sec_name(sym->st_shndx), ".data..percpu") && strcmp(sym_name(sym_strtab, sym), "__per_cpu_load"))
36505 + return 0;
36506 +
36507 +#ifdef CONFIG_PAX_KERNEXEC
36508 + /* Don't relocate actual code, they are relocated implicitly by the base address of KERNEL_CS */
36509 + if (!strcmp(sec_name(sym->st_shndx), ".text.end") && !strcmp(sym_name(sym_strtab, sym), "_etext"))
36510 + return 0;
36511 + if (!strcmp(sec_name(sym->st_shndx), ".init.text"))
36512 + return 0;
36513 + if (!strcmp(sec_name(sym->st_shndx), ".exit.text"))
36514 + return 0;
36515 + if (!strcmp(sec_name(sym->st_shndx), ".text") && strcmp(sym_name(sym_strtab, sym), "__LOAD_PHYSICAL_ADDR"))
36516 + return 0;
36517 +#endif
36518
36519 switch (r_type) {
36520 case R_386_NONE:
36521 @@ -968,7 +1033,7 @@ static int write32_as_text(uint32_t v, FILE *f)
36522
36523 static void emit_relocs(int as_text, int use_real_mode)
36524 {
36525 - int i;
36526 + unsigned int i;
36527 int (*write_reloc)(uint32_t, FILE *) = write32;
36528 int (*do_reloc)(struct section *sec, Elf_Rel *rel, Elf_Sym *sym,
36529 const char *symname);
36530 @@ -1078,10 +1143,11 @@ void process(FILE *fp, int use_real_mode, int as_text,
36531 {
36532 regex_init(use_real_mode);
36533 read_ehdr(fp);
36534 + read_phdrs(fp);
36535 read_shdrs(fp);
36536 read_strtabs(fp);
36537 read_symtabs(fp);
36538 - read_relocs(fp);
36539 + read_relocs(fp, use_real_mode);
36540 if (ELF_BITS == 64)
36541 percpu_init();
36542 if (show_absolute_syms) {
36543 diff --git a/arch/x86/um/mem_32.c b/arch/x86/um/mem_32.c
36544 index 744afdc..a0b8a0d 100644
36545 --- a/arch/x86/um/mem_32.c
36546 +++ b/arch/x86/um/mem_32.c
36547 @@ -20,7 +20,7 @@ static int __init gate_vma_init(void)
36548 gate_vma.vm_start = FIXADDR_USER_START;
36549 gate_vma.vm_end = FIXADDR_USER_END;
36550 gate_vma.vm_flags = VM_READ | VM_MAYREAD | VM_EXEC | VM_MAYEXEC;
36551 - gate_vma.vm_page_prot = __P101;
36552 + gate_vma.vm_page_prot = vm_get_page_prot(gate_vma.vm_flags);
36553
36554 return 0;
36555 }
36556 diff --git a/arch/x86/um/tls_32.c b/arch/x86/um/tls_32.c
36557 index 48e3858..ab4458c 100644
36558 --- a/arch/x86/um/tls_32.c
36559 +++ b/arch/x86/um/tls_32.c
36560 @@ -261,7 +261,7 @@ out:
36561 if (unlikely(task == current &&
36562 !t->arch.tls_array[idx - GDT_ENTRY_TLS_MIN].flushed)) {
36563 printk(KERN_ERR "get_tls_entry: task with pid %d got here "
36564 - "without flushed TLS.", current->pid);
36565 + "without flushed TLS.", task_pid_nr(current));
36566 }
36567
36568 return 0;
36569 diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig
36570 index c7b15f3..cc09a65 100644
36571 --- a/arch/x86/xen/Kconfig
36572 +++ b/arch/x86/xen/Kconfig
36573 @@ -10,6 +10,7 @@ config XEN
36574 select XEN_HAVE_VPMU
36575 depends on X86_64 || (X86_32 && X86_PAE)
36576 depends on X86_LOCAL_APIC && X86_TSC
36577 + depends on !GRKERNSEC_CONFIG_AUTO || GRKERNSEC_CONFIG_VIRT_XEN
36578 help
36579 This is the Linux Xen port. Enabling this will allow the
36580 kernel to boot in a paravirtualized environment under the
36581 diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
36582 index b7de78b..81f54af 100644
36583 --- a/arch/x86/xen/enlighten.c
36584 +++ b/arch/x86/xen/enlighten.c
36585 @@ -131,8 +131,6 @@ EXPORT_SYMBOL_GPL(xen_start_info);
36586
36587 struct shared_info xen_dummy_shared_info;
36588
36589 -void *xen_initial_gdt;
36590 -
36591 RESERVE_BRK(shared_info_page_brk, PAGE_SIZE);
36592 __read_mostly int xen_have_vector_callback;
36593 EXPORT_SYMBOL_GPL(xen_have_vector_callback);
36594 @@ -590,8 +588,7 @@ static void xen_load_gdt(const struct desc_ptr *dtr)
36595 {
36596 unsigned long va = dtr->address;
36597 unsigned int size = dtr->size + 1;
36598 - unsigned pages = (size + PAGE_SIZE - 1) / PAGE_SIZE;
36599 - unsigned long frames[pages];
36600 + unsigned long frames[65536 / PAGE_SIZE];
36601 int f;
36602
36603 /*
36604 @@ -639,8 +636,7 @@ static void __init xen_load_gdt_boot(const struct desc_ptr *dtr)
36605 {
36606 unsigned long va = dtr->address;
36607 unsigned int size = dtr->size + 1;
36608 - unsigned pages = (size + PAGE_SIZE - 1) / PAGE_SIZE;
36609 - unsigned long frames[pages];
36610 + unsigned long frames[(GDT_SIZE + PAGE_SIZE - 1) / PAGE_SIZE];
36611 int f;
36612
36613 /*
36614 @@ -648,7 +644,7 @@ static void __init xen_load_gdt_boot(const struct desc_ptr *dtr)
36615 * 8-byte entries, or 16 4k pages..
36616 */
36617
36618 - BUG_ON(size > 65536);
36619 + BUG_ON(size > GDT_SIZE);
36620 BUG_ON(va & ~PAGE_MASK);
36621
36622 for (f = 0; va < dtr->address + size; va += PAGE_SIZE, f++) {
36623 @@ -1271,7 +1267,7 @@ static const struct pv_apic_ops xen_apic_ops __initconst = {
36624 #endif
36625 };
36626
36627 -static void xen_reboot(int reason)
36628 +static __noreturn void xen_reboot(int reason)
36629 {
36630 struct sched_shutdown r = { .reason = reason };
36631 int cpu;
36632 @@ -1279,26 +1275,26 @@ static void xen_reboot(int reason)
36633 for_each_online_cpu(cpu)
36634 xen_pmu_finish(cpu);
36635
36636 - if (HYPERVISOR_sched_op(SCHEDOP_shutdown, &r))
36637 - BUG();
36638 + HYPERVISOR_sched_op(SCHEDOP_shutdown, &r);
36639 + BUG();
36640 }
36641
36642 -static void xen_restart(char *msg)
36643 +static __noreturn void xen_restart(char *msg)
36644 {
36645 xen_reboot(SHUTDOWN_reboot);
36646 }
36647
36648 -static void xen_emergency_restart(void)
36649 +static __noreturn void xen_emergency_restart(void)
36650 {
36651 xen_reboot(SHUTDOWN_reboot);
36652 }
36653
36654 -static void xen_machine_halt(void)
36655 +static __noreturn void xen_machine_halt(void)
36656 {
36657 xen_reboot(SHUTDOWN_poweroff);
36658 }
36659
36660 -static void xen_machine_power_off(void)
36661 +static __noreturn void xen_machine_power_off(void)
36662 {
36663 if (pm_power_off)
36664 pm_power_off();
36665 @@ -1451,8 +1447,11 @@ static void __ref xen_setup_gdt(int cpu)
36666 pv_cpu_ops.write_gdt_entry = xen_write_gdt_entry_boot;
36667 pv_cpu_ops.load_gdt = xen_load_gdt_boot;
36668
36669 - setup_stack_canary_segment(0);
36670 - switch_to_new_gdt(0);
36671 + setup_stack_canary_segment(cpu);
36672 +#ifdef CONFIG_X86_64
36673 + load_percpu_segment(cpu);
36674 +#endif
36675 + switch_to_new_gdt(cpu);
36676
36677 pv_cpu_ops.write_gdt_entry = xen_write_gdt_entry;
36678 pv_cpu_ops.load_gdt = xen_load_gdt;
36679 @@ -1570,7 +1569,17 @@ asmlinkage __visible void __init xen_start_kernel(void)
36680 __userpte_alloc_gfp &= ~__GFP_HIGHMEM;
36681
36682 /* Work out if we support NX */
36683 - x86_configure_nx();
36684 +#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
36685 + if ((cpuid_eax(0x80000000) & 0xffff0000) == 0x80000000 &&
36686 + (cpuid_edx(0x80000001) & (1U << (X86_FEATURE_NX & 31)))) {
36687 + unsigned l, h;
36688 +
36689 + __supported_pte_mask |= _PAGE_NX;
36690 + rdmsr(MSR_EFER, l, h);
36691 + l |= EFER_NX;
36692 + wrmsr(MSR_EFER, l, h);
36693 + }
36694 +#endif
36695
36696 /* Get mfn list */
36697 xen_build_dynamic_phys_to_machine();
36698 @@ -1598,13 +1607,6 @@ asmlinkage __visible void __init xen_start_kernel(void)
36699
36700 machine_ops = xen_machine_ops;
36701
36702 - /*
36703 - * The only reliable way to retain the initial address of the
36704 - * percpu gdt_page is to remember it here, so we can go and
36705 - * mark it RW later, when the initial percpu area is freed.
36706 - */
36707 - xen_initial_gdt = &per_cpu(gdt_page, 0);
36708 -
36709 xen_smp_init();
36710
36711 #ifdef CONFIG_ACPI_NUMA
36712 diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
36713 index cb5e266..cd5bcab 100644
36714 --- a/arch/x86/xen/mmu.c
36715 +++ b/arch/x86/xen/mmu.c
36716 @@ -1950,7 +1950,11 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
36717 * L3_k[511] -> level2_fixmap_pgt */
36718 convert_pfn_mfn(level3_kernel_pgt);
36719
36720 + convert_pfn_mfn(level3_vmalloc_start_pgt);
36721 + convert_pfn_mfn(level3_vmalloc_end_pgt);
36722 + convert_pfn_mfn(level3_vmemmap_pgt);
36723 /* L3_k[511][506] -> level1_fixmap_pgt */
36724 + /* L3_k[511][507] -> level1_vsyscall_pgt */
36725 convert_pfn_mfn(level2_fixmap_pgt);
36726 }
36727 /* We get [511][511] and have Xen's version of level2_kernel_pgt */
36728 @@ -1980,11 +1984,22 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
36729 set_page_prot(init_level4_pgt, PAGE_KERNEL_RO);
36730 set_page_prot(level3_ident_pgt, PAGE_KERNEL_RO);
36731 set_page_prot(level3_kernel_pgt, PAGE_KERNEL_RO);
36732 + set_page_prot(level3_vmalloc_start_pgt, PAGE_KERNEL_RO);
36733 + set_page_prot(level3_vmalloc_end_pgt, PAGE_KERNEL_RO);
36734 + set_page_prot(level3_vmemmap_pgt, PAGE_KERNEL_RO);
36735 set_page_prot(level3_user_vsyscall, PAGE_KERNEL_RO);
36736 set_page_prot(level2_ident_pgt, PAGE_KERNEL_RO);
36737 + set_page_prot(level2_vmemmap_pgt, PAGE_KERNEL_RO);
36738 set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
36739 set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
36740 - set_page_prot(level1_fixmap_pgt, PAGE_KERNEL_RO);
36741 + set_page_prot(level1_modules_pgt[0], PAGE_KERNEL_RO);
36742 + set_page_prot(level1_modules_pgt[1], PAGE_KERNEL_RO);
36743 + set_page_prot(level1_modules_pgt[2], PAGE_KERNEL_RO);
36744 + set_page_prot(level1_modules_pgt[3], PAGE_KERNEL_RO);
36745 + set_page_prot(level1_fixmap_pgt[0], PAGE_KERNEL_RO);
36746 + set_page_prot(level1_fixmap_pgt[1], PAGE_KERNEL_RO);
36747 + set_page_prot(level1_fixmap_pgt[2], PAGE_KERNEL_RO);
36748 + set_page_prot(level1_vsyscall_pgt, PAGE_KERNEL_RO);
36749
36750 /* Pin down new L4 */
36751 pin_pagetable_pfn(MMUEXT_PIN_L4_TABLE,
36752 @@ -2395,6 +2410,7 @@ static void __init xen_post_allocator_init(void)
36753 pv_mmu_ops.set_pud = xen_set_pud;
36754 #if CONFIG_PGTABLE_LEVELS == 4
36755 pv_mmu_ops.set_pgd = xen_set_pgd;
36756 + pv_mmu_ops.set_pgd_batched = xen_set_pgd;
36757 #endif
36758
36759 /* This will work as long as patching hasn't happened yet
36760 @@ -2473,6 +2489,7 @@ static const struct pv_mmu_ops xen_mmu_ops __initconst = {
36761 .pud_val = PV_CALLEE_SAVE(xen_pud_val),
36762 .make_pud = PV_CALLEE_SAVE(xen_make_pud),
36763 .set_pgd = xen_set_pgd_hyper,
36764 + .set_pgd_batched = xen_set_pgd_hyper,
36765
36766 .alloc_pud = xen_alloc_pmd_init,
36767 .release_pud = xen_release_pmd_init,
36768 diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
36769 index 3f4ebf0..f074dc1 100644
36770 --- a/arch/x86/xen/smp.c
36771 +++ b/arch/x86/xen/smp.c
36772 @@ -306,17 +306,13 @@ static void __init xen_smp_prepare_boot_cpu(void)
36773
36774 if (xen_pv_domain()) {
36775 if (!xen_feature(XENFEAT_writable_page_tables))
36776 - /* We've switched to the "real" per-cpu gdt, so make
36777 - * sure the old memory can be recycled. */
36778 - make_lowmem_page_readwrite(xen_initial_gdt);
36779 -
36780 #ifdef CONFIG_X86_32
36781 /*
36782 * Xen starts us with XEN_FLAT_RING1_DS, but linux code
36783 * expects __USER_DS
36784 */
36785 - loadsegment(ds, __USER_DS);
36786 - loadsegment(es, __USER_DS);
36787 + loadsegment(ds, __KERNEL_DS);
36788 + loadsegment(es, __KERNEL_DS);
36789 #endif
36790
36791 xen_filter_cpu_maps();
36792 @@ -399,7 +395,7 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
36793 #ifdef CONFIG_X86_32
36794 /* Note: PVH is not yet supported on x86_32. */
36795 ctxt->user_regs.fs = __KERNEL_PERCPU;
36796 - ctxt->user_regs.gs = __KERNEL_STACK_CANARY;
36797 + savesegment(gs, ctxt->user_regs.gs);
36798 #endif
36799 memset(&ctxt->fpu_ctxt, 0, sizeof(ctxt->fpu_ctxt));
36800
36801 @@ -407,8 +403,8 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
36802 ctxt->user_regs.eip = (unsigned long)cpu_bringup_and_idle;
36803 ctxt->flags = VGCF_IN_KERNEL;
36804 ctxt->user_regs.eflags = 0x1000; /* IOPL_RING1 */
36805 - ctxt->user_regs.ds = __USER_DS;
36806 - ctxt->user_regs.es = __USER_DS;
36807 + ctxt->user_regs.ds = __KERNEL_DS;
36808 + ctxt->user_regs.es = __KERNEL_DS;
36809 ctxt->user_regs.ss = __KERNEL_DS;
36810
36811 xen_copy_trap_info(ctxt->trap_ctxt);
36812 @@ -747,7 +743,7 @@ static const struct smp_ops xen_smp_ops __initconst = {
36813
36814 void __init xen_smp_init(void)
36815 {
36816 - smp_ops = xen_smp_ops;
36817 + memcpy((void *)&smp_ops, &xen_smp_ops, sizeof smp_ops);
36818 xen_fill_possible_map();
36819 }
36820
36821 diff --git a/arch/x86/xen/xen-asm_32.S b/arch/x86/xen/xen-asm_32.S
36822 index fd92a64..1f72641 100644
36823 --- a/arch/x86/xen/xen-asm_32.S
36824 +++ b/arch/x86/xen/xen-asm_32.S
36825 @@ -99,7 +99,7 @@ ENTRY(xen_iret)
36826 pushw %fs
36827 movl $(__KERNEL_PERCPU), %eax
36828 movl %eax, %fs
36829 - movl %fs:xen_vcpu, %eax
36830 + mov PER_CPU_VAR(xen_vcpu), %eax
36831 POP_FS
36832 #else
36833 movl %ss:xen_vcpu, %eax
36834 diff --git a/arch/x86/xen/xen-head.S b/arch/x86/xen/xen-head.S
36835 index b65f59a..c43f9c6 100644
36836 --- a/arch/x86/xen/xen-head.S
36837 +++ b/arch/x86/xen/xen-head.S
36838 @@ -41,6 +41,17 @@ ENTRY(startup_xen)
36839 #ifdef CONFIG_X86_32
36840 mov %esi,xen_start_info
36841 mov $init_thread_union+THREAD_SIZE,%esp
36842 +#ifdef CONFIG_SMP
36843 + movl $cpu_gdt_table,%edi
36844 + movl $__per_cpu_load,%eax
36845 + movw %ax,__KERNEL_PERCPU + 2(%edi)
36846 + rorl $16,%eax
36847 + movb %al,__KERNEL_PERCPU + 4(%edi)
36848 + movb %ah,__KERNEL_PERCPU + 7(%edi)
36849 + movl $__per_cpu_end - 1,%eax
36850 + subl $__per_cpu_start,%eax
36851 + movw %ax,__KERNEL_PERCPU + 0(%edi)
36852 +#endif
36853 #else
36854 mov %rsi,xen_start_info
36855 mov $init_thread_union+THREAD_SIZE,%rsp
36856 diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
36857 index 1399423..b1ae0fa 100644
36858 --- a/arch/x86/xen/xen-ops.h
36859 +++ b/arch/x86/xen/xen-ops.h
36860 @@ -16,8 +16,6 @@ void xen_syscall_target(void);
36861 void xen_syscall32_target(void);
36862 #endif
36863
36864 -extern void *xen_initial_gdt;
36865 -
36866 struct trap_info;
36867 void xen_copy_trap_info(struct trap_info *traps);
36868
36869 diff --git a/arch/xtensa/variants/dc232b/include/variant/core.h b/arch/xtensa/variants/dc232b/include/variant/core.h
36870 index 525bd3d..ef888b1 100644
36871 --- a/arch/xtensa/variants/dc232b/include/variant/core.h
36872 +++ b/arch/xtensa/variants/dc232b/include/variant/core.h
36873 @@ -119,9 +119,9 @@
36874 ----------------------------------------------------------------------*/
36875
36876 #define XCHAL_ICACHE_LINESIZE 32 /* I-cache line size in bytes */
36877 -#define XCHAL_DCACHE_LINESIZE 32 /* D-cache line size in bytes */
36878 #define XCHAL_ICACHE_LINEWIDTH 5 /* log2(I line size in bytes) */
36879 #define XCHAL_DCACHE_LINEWIDTH 5 /* log2(D line size in bytes) */
36880 +#define XCHAL_DCACHE_LINESIZE (_AC(1,UL) << XCHAL_DCACHE_LINEWIDTH) /* D-cache line size in bytes */
36881
36882 #define XCHAL_ICACHE_SIZE 16384 /* I-cache size in bytes or 0 */
36883 #define XCHAL_DCACHE_SIZE 16384 /* D-cache size in bytes or 0 */
36884 diff --git a/arch/xtensa/variants/fsf/include/variant/core.h b/arch/xtensa/variants/fsf/include/variant/core.h
36885 index 2f33760..835e50a 100644
36886 --- a/arch/xtensa/variants/fsf/include/variant/core.h
36887 +++ b/arch/xtensa/variants/fsf/include/variant/core.h
36888 @@ -11,6 +11,7 @@
36889 #ifndef _XTENSA_CORE_H
36890 #define _XTENSA_CORE_H
36891
36892 +#include <linux/const.h>
36893
36894 /****************************************************************************
36895 Parameters Useful for Any Code, USER or PRIVILEGED
36896 @@ -112,9 +113,9 @@
36897 ----------------------------------------------------------------------*/
36898
36899 #define XCHAL_ICACHE_LINESIZE 16 /* I-cache line size in bytes */
36900 -#define XCHAL_DCACHE_LINESIZE 16 /* D-cache line size in bytes */
36901 #define XCHAL_ICACHE_LINEWIDTH 4 /* log2(I line size in bytes) */
36902 #define XCHAL_DCACHE_LINEWIDTH 4 /* log2(D line size in bytes) */
36903 +#define XCHAL_DCACHE_LINESIZE (_AC(1,UL) << XCHAL_DCACHE_LINEWIDTH) /* D-cache line size in bytes */
36904
36905 #define XCHAL_ICACHE_SIZE 8192 /* I-cache size in bytes or 0 */
36906 #define XCHAL_DCACHE_SIZE 8192 /* D-cache size in bytes or 0 */
36907 diff --git a/block/bio.c b/block/bio.c
36908 index d4d1443..bb167da 100644
36909 --- a/block/bio.c
36910 +++ b/block/bio.c
36911 @@ -1143,7 +1143,7 @@ struct bio *bio_copy_user_iov(struct request_queue *q,
36912 /*
36913 * Overflow, abort
36914 */
36915 - if (end < start)
36916 + if (end < start || end - start > INT_MAX - nr_pages)
36917 return ERR_PTR(-EINVAL);
36918
36919 nr_pages += end - start;
36920 @@ -1268,7 +1268,7 @@ struct bio *bio_map_user_iov(struct request_queue *q,
36921 /*
36922 * Overflow, abort
36923 */
36924 - if (end < start)
36925 + if (end < start || end - start > INT_MAX - nr_pages)
36926 return ERR_PTR(-EINVAL);
36927
36928 nr_pages += end - start;
36929 diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
36930 index 5a37188..0361054 100644
36931 --- a/block/blk-cgroup.c
36932 +++ b/block/blk-cgroup.c
36933 @@ -561,10 +561,10 @@ u64 __blkg_prfill_rwstat(struct seq_file *sf, struct blkg_policy_data *pd,
36934
36935 for (i = 0; i < BLKG_RWSTAT_NR; i++)
36936 seq_printf(sf, "%s %s %llu\n", dname, rwstr[i],
36937 - (unsigned long long)atomic64_read(&rwstat->aux_cnt[i]));
36938 + (unsigned long long)atomic64_read_unchecked(&rwstat->aux_cnt[i]));
36939
36940 - v = atomic64_read(&rwstat->aux_cnt[BLKG_RWSTAT_READ]) +
36941 - atomic64_read(&rwstat->aux_cnt[BLKG_RWSTAT_WRITE]);
36942 + v = atomic64_read_unchecked(&rwstat->aux_cnt[BLKG_RWSTAT_READ]) +
36943 + atomic64_read_unchecked(&rwstat->aux_cnt[BLKG_RWSTAT_WRITE]);
36944 seq_printf(sf, "%s Total %llu\n", dname, (unsigned long long)v);
36945 return v;
36946 }
36947 @@ -716,7 +716,7 @@ u64 blkg_stat_recursive_sum(struct blkcg_gq *blkg,
36948 else
36949 stat = (void *)blkg + off;
36950
36951 - sum += blkg_stat_read(stat) + atomic64_read(&stat->aux_cnt);
36952 + sum += blkg_stat_read(stat) + atomic64_read_unchecked(&stat->aux_cnt);
36953 }
36954 rcu_read_unlock();
36955
36956 @@ -760,7 +760,7 @@ struct blkg_rwstat blkg_rwstat_recursive_sum(struct blkcg_gq *blkg,
36957 rwstat = (void *)pos_blkg + off;
36958
36959 for (i = 0; i < BLKG_RWSTAT_NR; i++)
36960 - atomic64_add(atomic64_read(&rwstat->aux_cnt[i]) +
36961 + atomic64_add_unchecked(atomic64_read_unchecked(&rwstat->aux_cnt[i]) +
36962 percpu_counter_sum_positive(&rwstat->cpu_cnt[i]),
36963 &sum.aux_cnt[i]);
36964 }
36965 @@ -877,13 +877,13 @@ static int blkcg_print_stat(struct seq_file *sf, void *v)
36966
36967 rwstat = blkg_rwstat_recursive_sum(blkg, NULL,
36968 offsetof(struct blkcg_gq, stat_bytes));
36969 - rbytes = atomic64_read(&rwstat.aux_cnt[BLKG_RWSTAT_READ]);
36970 - wbytes = atomic64_read(&rwstat.aux_cnt[BLKG_RWSTAT_WRITE]);
36971 + rbytes = atomic64_read_unchecked(&rwstat.aux_cnt[BLKG_RWSTAT_READ]);
36972 + wbytes = atomic64_read_unchecked(&rwstat.aux_cnt[BLKG_RWSTAT_WRITE]);
36973
36974 rwstat = blkg_rwstat_recursive_sum(blkg, NULL,
36975 offsetof(struct blkcg_gq, stat_ios));
36976 - rios = atomic64_read(&rwstat.aux_cnt[BLKG_RWSTAT_READ]);
36977 - wios = atomic64_read(&rwstat.aux_cnt[BLKG_RWSTAT_WRITE]);
36978 + rios = atomic64_read_unchecked(&rwstat.aux_cnt[BLKG_RWSTAT_READ]);
36979 + wios = atomic64_read_unchecked(&rwstat.aux_cnt[BLKG_RWSTAT_WRITE]);
36980
36981 spin_unlock_irq(blkg->q->queue_lock);
36982
36983 diff --git a/block/blk-iopoll.c b/block/blk-iopoll.c
36984 index 0736729..2ec3b48 100644
36985 --- a/block/blk-iopoll.c
36986 +++ b/block/blk-iopoll.c
36987 @@ -74,7 +74,7 @@ void blk_iopoll_complete(struct blk_iopoll *iop)
36988 }
36989 EXPORT_SYMBOL(blk_iopoll_complete);
36990
36991 -static void blk_iopoll_softirq(struct softirq_action *h)
36992 +static __latent_entropy void blk_iopoll_softirq(void)
36993 {
36994 struct list_head *list = this_cpu_ptr(&blk_cpu_iopoll);
36995 int rearm = 0, budget = blk_iopoll_budget;
36996 diff --git a/block/blk-map.c b/block/blk-map.c
36997 index f565e11..f05b424 100644
36998 --- a/block/blk-map.c
36999 +++ b/block/blk-map.c
37000 @@ -214,7 +214,7 @@ int blk_rq_map_kern(struct request_queue *q, struct request *rq, void *kbuf,
37001 if (!len || !kbuf)
37002 return -EINVAL;
37003
37004 - do_copy = !blk_rq_aligned(q, addr, len) || object_is_on_stack(kbuf);
37005 + do_copy = !blk_rq_aligned(q, addr, len) || object_starts_on_stack(kbuf);
37006 if (do_copy)
37007 bio = bio_copy_kern(q, kbuf, len, gfp_mask, reading);
37008 else
37009 diff --git a/block/blk-softirq.c b/block/blk-softirq.c
37010 index 53b1737..08177d2e 100644
37011 --- a/block/blk-softirq.c
37012 +++ b/block/blk-softirq.c
37013 @@ -18,7 +18,7 @@ static DEFINE_PER_CPU(struct list_head, blk_cpu_done);
37014 * Softirq action handler - move entries to local list and loop over them
37015 * while passing them to the queue registered handler.
37016 */
37017 -static void blk_done_softirq(struct softirq_action *h)
37018 +static __latent_entropy void blk_done_softirq(void)
37019 {
37020 struct list_head *cpu_list, local_list;
37021
37022 diff --git a/block/bsg.c b/block/bsg.c
37023 index d214e92..9649863 100644
37024 --- a/block/bsg.c
37025 +++ b/block/bsg.c
37026 @@ -140,16 +140,24 @@ static int blk_fill_sgv4_hdr_rq(struct request_queue *q, struct request *rq,
37027 struct sg_io_v4 *hdr, struct bsg_device *bd,
37028 fmode_t has_write_perm)
37029 {
37030 + unsigned char tmpcmd[sizeof(rq->__cmd)];
37031 + unsigned char *cmdptr;
37032 +
37033 if (hdr->request_len > BLK_MAX_CDB) {
37034 rq->cmd = kzalloc(hdr->request_len, GFP_KERNEL);
37035 if (!rq->cmd)
37036 return -ENOMEM;
37037 - }
37038 + cmdptr = rq->cmd;
37039 + } else
37040 + cmdptr = tmpcmd;
37041
37042 - if (copy_from_user(rq->cmd, (void __user *)(unsigned long)hdr->request,
37043 + if (copy_from_user(cmdptr, (void __user *)(unsigned long)hdr->request,
37044 hdr->request_len))
37045 return -EFAULT;
37046
37047 + if (cmdptr != rq->cmd)
37048 + memcpy(rq->cmd, cmdptr, hdr->request_len);
37049 +
37050 if (hdr->subprotocol == BSG_SUB_PROTOCOL_SCSI_CMD) {
37051 if (blk_verify_command(rq->cmd, has_write_perm))
37052 return -EPERM;
37053 diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
37054 index 1f9093e..96b3e56 100644
37055 --- a/block/cfq-iosched.c
37056 +++ b/block/cfq-iosched.c
37057 @@ -1941,8 +1941,8 @@ static u64 cfqg_prfill_sectors_recursive(struct seq_file *sf,
37058 {
37059 struct blkg_rwstat tmp = blkg_rwstat_recursive_sum(pd->blkg, NULL,
37060 offsetof(struct blkcg_gq, stat_bytes));
37061 - u64 sum = atomic64_read(&tmp.aux_cnt[BLKG_RWSTAT_READ]) +
37062 - atomic64_read(&tmp.aux_cnt[BLKG_RWSTAT_WRITE]);
37063 + u64 sum = atomic64_read_unchecked(&tmp.aux_cnt[BLKG_RWSTAT_READ]) +
37064 + atomic64_read_unchecked(&tmp.aux_cnt[BLKG_RWSTAT_WRITE]);
37065
37066 return __blkg_prfill_u64(sf, pd, sum >> 9);
37067 }
37068 diff --git a/block/compat_ioctl.c b/block/compat_ioctl.c
37069 index f678c73..f35aa18 100644
37070 --- a/block/compat_ioctl.c
37071 +++ b/block/compat_ioctl.c
37072 @@ -156,7 +156,7 @@ static int compat_cdrom_generic_command(struct block_device *bdev, fmode_t mode,
37073 cgc = compat_alloc_user_space(sizeof(*cgc));
37074 cgc32 = compat_ptr(arg);
37075
37076 - if (copy_in_user(&cgc->cmd, &cgc32->cmd, sizeof(cgc->cmd)) ||
37077 + if (copy_in_user(cgc->cmd, cgc32->cmd, sizeof(cgc->cmd)) ||
37078 get_user(data, &cgc32->buffer) ||
37079 put_user(compat_ptr(data), &cgc->buffer) ||
37080 copy_in_user(&cgc->buflen, &cgc32->buflen,
37081 @@ -341,7 +341,7 @@ static int compat_fd_ioctl(struct block_device *bdev, fmode_t mode,
37082 err |= __get_user(f->spec1, &uf->spec1);
37083 err |= __get_user(f->fmt_gap, &uf->fmt_gap);
37084 err |= __get_user(name, &uf->name);
37085 - f->name = compat_ptr(name);
37086 + f->name = (void __force_kernel *)compat_ptr(name);
37087 if (err) {
37088 err = -EFAULT;
37089 goto out;
37090 diff --git a/block/genhd.c b/block/genhd.c
37091 index e5cafa51..65e4557 100644
37092 --- a/block/genhd.c
37093 +++ b/block/genhd.c
37094 @@ -470,21 +470,24 @@ static char *bdevt_str(dev_t devt, char *buf)
37095
37096 /*
37097 * Register device numbers dev..(dev+range-1)
37098 - * range must be nonzero
37099 + * Noop if @range is zero.
37100 * The hash chain is sorted on range, so that subranges can override.
37101 */
37102 void blk_register_region(dev_t devt, unsigned long range, struct module *module,
37103 struct kobject *(*probe)(dev_t, int *, void *),
37104 int (*lock)(dev_t, void *), void *data)
37105 {
37106 - kobj_map(bdev_map, devt, range, module, probe, lock, data);
37107 + if (range)
37108 + kobj_map(bdev_map, devt, range, module, probe, lock, data);
37109 }
37110
37111 EXPORT_SYMBOL(blk_register_region);
37112
37113 +/* undo blk_register_region(), noop if @range is zero */
37114 void blk_unregister_region(dev_t devt, unsigned long range)
37115 {
37116 - kobj_unmap(bdev_map, devt, range);
37117 + if (range)
37118 + kobj_unmap(bdev_map, devt, range);
37119 }
37120
37121 EXPORT_SYMBOL(blk_unregister_region);
37122 diff --git a/block/partitions/efi.c b/block/partitions/efi.c
37123 index 26cb624..a49c3a5 100644
37124 --- a/block/partitions/efi.c
37125 +++ b/block/partitions/efi.c
37126 @@ -293,14 +293,14 @@ static gpt_entry *alloc_read_gpt_entries(struct parsed_partitions *state,
37127 if (!gpt)
37128 return NULL;
37129
37130 + if (!le32_to_cpu(gpt->num_partition_entries))
37131 + return NULL;
37132 + pte = kcalloc(le32_to_cpu(gpt->num_partition_entries), le32_to_cpu(gpt->sizeof_partition_entry), GFP_KERNEL);
37133 + if (!pte)
37134 + return NULL;
37135 +
37136 count = le32_to_cpu(gpt->num_partition_entries) *
37137 le32_to_cpu(gpt->sizeof_partition_entry);
37138 - if (!count)
37139 - return NULL;
37140 - pte = kmalloc(count, GFP_KERNEL);
37141 - if (!pte)
37142 - return NULL;
37143 -
37144 if (read_lba(state, le64_to_cpu(gpt->partition_entry_lba),
37145 (u8 *) pte, count) < count) {
37146 kfree(pte);
37147 diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c
37148 index 0774799..7afc734 100644
37149 --- a/block/scsi_ioctl.c
37150 +++ b/block/scsi_ioctl.c
37151 @@ -67,7 +67,7 @@ static int scsi_get_bus(struct request_queue *q, int __user *p)
37152 return put_user(0, p);
37153 }
37154
37155 -static int sg_get_timeout(struct request_queue *q)
37156 +static int __intentional_overflow(-1) sg_get_timeout(struct request_queue *q)
37157 {
37158 return jiffies_to_clock_t(q->sg_timeout);
37159 }
37160 @@ -227,8 +227,20 @@ EXPORT_SYMBOL(blk_verify_command);
37161 static int blk_fill_sghdr_rq(struct request_queue *q, struct request *rq,
37162 struct sg_io_hdr *hdr, fmode_t mode)
37163 {
37164 - if (copy_from_user(rq->cmd, hdr->cmdp, hdr->cmd_len))
37165 + unsigned char tmpcmd[sizeof(rq->__cmd)];
37166 + unsigned char *cmdptr;
37167 +
37168 + if (rq->cmd != rq->__cmd)
37169 + cmdptr = rq->cmd;
37170 + else
37171 + cmdptr = tmpcmd;
37172 +
37173 + if (copy_from_user(cmdptr, hdr->cmdp, hdr->cmd_len))
37174 return -EFAULT;
37175 +
37176 + if (cmdptr != rq->cmd)
37177 + memcpy(rq->cmd, cmdptr, hdr->cmd_len);
37178 +
37179 if (blk_verify_command(rq->cmd, mode & FMODE_WRITE))
37180 return -EPERM;
37181
37182 @@ -420,6 +432,8 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
37183 int err;
37184 unsigned int in_len, out_len, bytes, opcode, cmdlen;
37185 char *buffer = NULL, sense[SCSI_SENSE_BUFFERSIZE];
37186 + unsigned char tmpcmd[sizeof(rq->__cmd)];
37187 + unsigned char *cmdptr;
37188
37189 if (!sic)
37190 return -EINVAL;
37191 @@ -458,9 +472,18 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
37192 */
37193 err = -EFAULT;
37194 rq->cmd_len = cmdlen;
37195 - if (copy_from_user(rq->cmd, sic->data, cmdlen))
37196 +
37197 + if (rq->cmd != rq->__cmd)
37198 + cmdptr = rq->cmd;
37199 + else
37200 + cmdptr = tmpcmd;
37201 +
37202 + if (copy_from_user(cmdptr, sic->data, cmdlen))
37203 goto error;
37204
37205 + if (rq->cmd != cmdptr)
37206 + memcpy(rq->cmd, cmdptr, cmdlen);
37207 +
37208 if (in_len && copy_from_user(buffer, sic->data + cmdlen, in_len))
37209 goto error;
37210
37211 diff --git a/crypto/cryptd.c b/crypto/cryptd.c
37212 index c81861b..dbf894f 100644
37213 --- a/crypto/cryptd.c
37214 +++ b/crypto/cryptd.c
37215 @@ -63,7 +63,7 @@ struct cryptd_blkcipher_ctx {
37216
37217 struct cryptd_blkcipher_request_ctx {
37218 crypto_completion_t complete;
37219 -};
37220 +} __no_const;
37221
37222 struct cryptd_hash_ctx {
37223 struct crypto_shash *child;
37224 @@ -80,7 +80,7 @@ struct cryptd_aead_ctx {
37225
37226 struct cryptd_aead_request_ctx {
37227 crypto_completion_t complete;
37228 -};
37229 +} __no_const;
37230
37231 static void cryptd_queue_worker(struct work_struct *work);
37232
37233 diff --git a/crypto/crypto_user.c b/crypto/crypto_user.c
37234 index 43fe85f..215a174 100644
37235 --- a/crypto/crypto_user.c
37236 +++ b/crypto/crypto_user.c
37237 @@ -504,7 +504,7 @@ static int crypto_user_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
37238 dump_alloc += CRYPTO_REPORT_MAXSIZE;
37239
37240 {
37241 - struct netlink_dump_control c = {
37242 + netlink_dump_control_no_const c = {
37243 .dump = link->dump,
37244 .done = link->done,
37245 .min_dump_alloc = dump_alloc,
37246 diff --git a/crypto/pcrypt.c b/crypto/pcrypt.c
37247 index ee9cfb9..30b36ed 100644
37248 --- a/crypto/pcrypt.c
37249 +++ b/crypto/pcrypt.c
37250 @@ -392,7 +392,7 @@ static int pcrypt_sysfs_add(struct padata_instance *pinst, const char *name)
37251 int ret;
37252
37253 pinst->kobj.kset = pcrypt_kset;
37254 - ret = kobject_add(&pinst->kobj, NULL, name);
37255 + ret = kobject_add(&pinst->kobj, NULL, "%s", name);
37256 if (!ret)
37257 kobject_uevent(&pinst->kobj, KOBJ_ADD);
37258
37259 diff --git a/crypto/scatterwalk.c b/crypto/scatterwalk.c
37260 index ea5815c..5880da6 100644
37261 --- a/crypto/scatterwalk.c
37262 +++ b/crypto/scatterwalk.c
37263 @@ -109,14 +109,20 @@ void scatterwalk_map_and_copy(void *buf, struct scatterlist *sg,
37264 {
37265 struct scatter_walk walk;
37266 struct scatterlist tmp[2];
37267 + void *realbuf = buf;
37268
37269 if (!nbytes)
37270 return;
37271
37272 sg = scatterwalk_ffwd(tmp, sg, start);
37273
37274 - if (sg_page(sg) == virt_to_page(buf) &&
37275 - sg->offset == offset_in_page(buf))
37276 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
37277 + if (object_starts_on_stack(buf))
37278 + realbuf = buf - current->stack + current->lowmem_stack;
37279 +#endif
37280 +
37281 + if (sg_page(sg) == virt_to_page(realbuf) &&
37282 + sg->offset == offset_in_page(realbuf))
37283 return;
37284
37285 scatterwalk_start(&walk, sg);
37286 diff --git a/crypto/zlib.c b/crypto/zlib.c
37287 index d51a30a..b6891a3 100644
37288 --- a/crypto/zlib.c
37289 +++ b/crypto/zlib.c
37290 @@ -95,10 +95,10 @@ static int zlib_compress_setup(struct crypto_pcomp *tfm, const void *params,
37291 zlib_comp_exit(ctx);
37292
37293 window_bits = tb[ZLIB_COMP_WINDOWBITS]
37294 - ? nla_get_u32(tb[ZLIB_COMP_WINDOWBITS])
37295 + ? nla_get_s32(tb[ZLIB_COMP_WINDOWBITS])
37296 : MAX_WBITS;
37297 mem_level = tb[ZLIB_COMP_MEMLEVEL]
37298 - ? nla_get_u32(tb[ZLIB_COMP_MEMLEVEL])
37299 + ? nla_get_s32(tb[ZLIB_COMP_MEMLEVEL])
37300 : DEF_MEM_LEVEL;
37301
37302 workspacesize = zlib_deflate_workspacesize(window_bits, mem_level);
37303 @@ -108,15 +108,15 @@ static int zlib_compress_setup(struct crypto_pcomp *tfm, const void *params,
37304
37305 ret = zlib_deflateInit2(stream,
37306 tb[ZLIB_COMP_LEVEL]
37307 - ? nla_get_u32(tb[ZLIB_COMP_LEVEL])
37308 + ? nla_get_s32(tb[ZLIB_COMP_LEVEL])
37309 : Z_DEFAULT_COMPRESSION,
37310 tb[ZLIB_COMP_METHOD]
37311 - ? nla_get_u32(tb[ZLIB_COMP_METHOD])
37312 + ? nla_get_s32(tb[ZLIB_COMP_METHOD])
37313 : Z_DEFLATED,
37314 window_bits,
37315 mem_level,
37316 tb[ZLIB_COMP_STRATEGY]
37317 - ? nla_get_u32(tb[ZLIB_COMP_STRATEGY])
37318 + ? nla_get_s32(tb[ZLIB_COMP_STRATEGY])
37319 : Z_DEFAULT_STRATEGY);
37320 if (ret != Z_OK) {
37321 vfree(stream->workspace);
37322 @@ -224,7 +224,7 @@ static int zlib_decompress_setup(struct crypto_pcomp *tfm, const void *params,
37323 zlib_decomp_exit(ctx);
37324
37325 ctx->decomp_windowBits = tb[ZLIB_DECOMP_WINDOWBITS]
37326 - ? nla_get_u32(tb[ZLIB_DECOMP_WINDOWBITS])
37327 + ? nla_get_s32(tb[ZLIB_DECOMP_WINDOWBITS])
37328 : DEF_WBITS;
37329
37330 stream->workspace = vzalloc(zlib_inflate_workspacesize());
37331 diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
37332 index 5fdac39..ce3c90e 100644
37333 --- a/drivers/acpi/acpi_video.c
37334 +++ b/drivers/acpi/acpi_video.c
37335 @@ -412,7 +412,7 @@ static int video_enable_only_lcd(const struct dmi_system_id *d)
37336 return 0;
37337 }
37338
37339 -static struct dmi_system_id video_dmi_table[] = {
37340 +static const struct dmi_system_id video_dmi_table[] = {
37341 /*
37342 * Broken _BQC workaround http://bugzilla.kernel.org/show_bug.cgi?id=13121
37343 */
37344 diff --git a/drivers/acpi/acpica/hwxfsleep.c b/drivers/acpi/acpica/hwxfsleep.c
37345 index d62a616..387dbd0 100644
37346 --- a/drivers/acpi/acpica/hwxfsleep.c
37347 +++ b/drivers/acpi/acpica/hwxfsleep.c
37348 @@ -70,11 +70,12 @@ static acpi_status acpi_hw_sleep_dispatch(u8 sleep_state, u32 function_id);
37349 /* Legacy functions are optional, based upon ACPI_REDUCED_HARDWARE */
37350
37351 static struct acpi_sleep_functions acpi_sleep_dispatch[] = {
37352 - {ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_sleep),
37353 - acpi_hw_extended_sleep},
37354 - {ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake_prep),
37355 - acpi_hw_extended_wake_prep},
37356 - {ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake), acpi_hw_extended_wake}
37357 + {.legacy_function = ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_sleep),
37358 + .extended_function = acpi_hw_extended_sleep},
37359 + {.legacy_function = ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake_prep),
37360 + .extended_function = acpi_hw_extended_wake_prep},
37361 + {.legacy_function = ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake),
37362 + .extended_function = acpi_hw_extended_wake}
37363 };
37364
37365 /*
37366 diff --git a/drivers/acpi/apei/apei-internal.h b/drivers/acpi/apei/apei-internal.h
37367 index 16129c7..8b675cd 100644
37368 --- a/drivers/acpi/apei/apei-internal.h
37369 +++ b/drivers/acpi/apei/apei-internal.h
37370 @@ -19,7 +19,7 @@ typedef int (*apei_exec_ins_func_t)(struct apei_exec_context *ctx,
37371 struct apei_exec_ins_type {
37372 u32 flags;
37373 apei_exec_ins_func_t run;
37374 -};
37375 +} __do_const;
37376
37377 struct apei_exec_context {
37378 u32 ip;
37379 diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
37380 index 3dd9c46..cf0678f 100644
37381 --- a/drivers/acpi/apei/ghes.c
37382 +++ b/drivers/acpi/apei/ghes.c
37383 @@ -478,7 +478,7 @@ static void __ghes_print_estatus(const char *pfx,
37384 const struct acpi_hest_generic *generic,
37385 const struct acpi_hest_generic_status *estatus)
37386 {
37387 - static atomic_t seqno;
37388 + static atomic_unchecked_t seqno;
37389 unsigned int curr_seqno;
37390 char pfx_seq[64];
37391
37392 @@ -489,7 +489,7 @@ static void __ghes_print_estatus(const char *pfx,
37393 else
37394 pfx = KERN_ERR;
37395 }
37396 - curr_seqno = atomic_inc_return(&seqno);
37397 + curr_seqno = atomic_inc_return_unchecked(&seqno);
37398 snprintf(pfx_seq, sizeof(pfx_seq), "%s{%u}" HW_ERR, pfx, curr_seqno);
37399 printk("%s""Hardware error from APEI Generic Hardware Error Source: %d\n",
37400 pfx_seq, generic->header.source_id);
37401 @@ -539,7 +539,7 @@ static int ghes_estatus_cached(struct acpi_hest_generic_status *estatus)
37402 cache_estatus = GHES_ESTATUS_FROM_CACHE(cache);
37403 if (memcmp(estatus, cache_estatus, len))
37404 continue;
37405 - atomic_inc(&cache->count);
37406 + atomic_inc_unchecked(&cache->count);
37407 now = sched_clock();
37408 if (now - cache->time_in < GHES_ESTATUS_IN_CACHE_MAX_NSEC)
37409 cached = 1;
37410 @@ -573,7 +573,7 @@ static struct ghes_estatus_cache *ghes_estatus_cache_alloc(
37411 cache_estatus = GHES_ESTATUS_FROM_CACHE(cache);
37412 memcpy(cache_estatus, estatus, len);
37413 cache->estatus_len = len;
37414 - atomic_set(&cache->count, 0);
37415 + atomic_set_unchecked(&cache->count, 0);
37416 cache->generic = generic;
37417 cache->time_in = sched_clock();
37418 return cache;
37419 @@ -623,7 +623,7 @@ static void ghes_estatus_cache_add(
37420 slot_cache = cache;
37421 break;
37422 }
37423 - count = atomic_read(&cache->count);
37424 + count = atomic_read_unchecked(&cache->count);
37425 period = duration;
37426 do_div(period, (count + 1));
37427 if (period > max_period) {
37428 diff --git a/drivers/acpi/bgrt.c b/drivers/acpi/bgrt.c
37429 index a83e3c6..c3d617f 100644
37430 --- a/drivers/acpi/bgrt.c
37431 +++ b/drivers/acpi/bgrt.c
37432 @@ -86,8 +86,10 @@ static int __init bgrt_init(void)
37433 if (!bgrt_image)
37434 return -ENODEV;
37435
37436 - bin_attr_image.private = bgrt_image;
37437 - bin_attr_image.size = bgrt_image_size;
37438 + pax_open_kernel();
37439 + *(void **)&bin_attr_image.private = bgrt_image;
37440 + *(size_t *)&bin_attr_image.size = bgrt_image_size;
37441 + pax_close_kernel();
37442
37443 bgrt_kobj = kobject_create_and_add("bgrt", acpi_kobj);
37444 if (!bgrt_kobj)
37445 diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
37446 index 96809cd..6a49f97 100644
37447 --- a/drivers/acpi/blacklist.c
37448 +++ b/drivers/acpi/blacklist.c
37449 @@ -47,7 +47,7 @@ struct acpi_blacklist_item {
37450 u32 is_critical_error;
37451 };
37452
37453 -static struct dmi_system_id acpi_osi_dmi_table[] __initdata;
37454 +static const struct dmi_system_id acpi_osi_dmi_table[] __initconst;
37455
37456 /*
37457 * POLICY: If *anything* doesn't work, put it on the blacklist.
37458 @@ -168,7 +168,7 @@ static int __init dmi_enable_rev_override(const struct dmi_system_id *d)
37459 }
37460 #endif
37461
37462 -static struct dmi_system_id acpi_osi_dmi_table[] __initdata = {
37463 +static const struct dmi_system_id acpi_osi_dmi_table[] __initconst = {
37464 {
37465 .callback = dmi_disable_osi_vista,
37466 .ident = "Fujitsu Siemens",
37467 diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
37468 index a212cef..443c9c4 100644
37469 --- a/drivers/acpi/bus.c
37470 +++ b/drivers/acpi/bus.c
37471 @@ -63,7 +63,7 @@ static int set_copy_dsdt(const struct dmi_system_id *id)
37472 }
37473 #endif
37474
37475 -static struct dmi_system_id dsdt_dmi_table[] __initdata = {
37476 +static const struct dmi_system_id dsdt_dmi_table[] __initconst = {
37477 /*
37478 * Invoke DSDT corruption work-around on all Toshiba Satellite.
37479 * https://bugzilla.kernel.org/show_bug.cgi?id=14679
37480 @@ -79,7 +79,7 @@ static struct dmi_system_id dsdt_dmi_table[] __initdata = {
37481 {}
37482 };
37483 #else
37484 -static struct dmi_system_id dsdt_dmi_table[] __initdata = {
37485 +static const struct dmi_system_id dsdt_dmi_table[] __initconst = {
37486 {}
37487 };
37488 #endif
37489 diff --git a/drivers/acpi/custom_method.c b/drivers/acpi/custom_method.c
37490 index c68e724..e863008 100644
37491 --- a/drivers/acpi/custom_method.c
37492 +++ b/drivers/acpi/custom_method.c
37493 @@ -29,6 +29,10 @@ static ssize_t cm_write(struct file *file, const char __user * user_buf,
37494 struct acpi_table_header table;
37495 acpi_status status;
37496
37497 +#ifdef CONFIG_GRKERNSEC_KMEM
37498 + return -EPERM;
37499 +#endif
37500 +
37501 if (!(*ppos)) {
37502 /* parse the table header to get the table length */
37503 if (count <= sizeof(struct acpi_table_header))
37504 diff --git a/drivers/acpi/device_pm.c b/drivers/acpi/device_pm.c
37505 index 08a02cd..1fa9787 100644
37506 --- a/drivers/acpi/device_pm.c
37507 +++ b/drivers/acpi/device_pm.c
37508 @@ -1024,6 +1024,8 @@ EXPORT_SYMBOL_GPL(acpi_subsys_freeze);
37509
37510 #endif /* CONFIG_PM_SLEEP */
37511
37512 +static void acpi_dev_pm_detach(struct device *dev, bool power_off);
37513 +
37514 static struct dev_pm_domain acpi_general_pm_domain = {
37515 .ops = {
37516 .runtime_suspend = acpi_subsys_runtime_suspend,
37517 @@ -1040,6 +1042,7 @@ static struct dev_pm_domain acpi_general_pm_domain = {
37518 .restore_early = acpi_subsys_resume_early,
37519 #endif
37520 },
37521 + .detach = acpi_dev_pm_detach
37522 };
37523
37524 /**
37525 @@ -1117,7 +1120,6 @@ int acpi_dev_pm_attach(struct device *dev, bool power_on)
37526 acpi_device_wakeup(adev, ACPI_STATE_S0, false);
37527 }
37528
37529 - dev->pm_domain->detach = acpi_dev_pm_detach;
37530 return 0;
37531 }
37532 EXPORT_SYMBOL_GPL(acpi_dev_pm_attach);
37533 diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
37534 index b420fb4..e8d7e29 100644
37535 --- a/drivers/acpi/ec.c
37536 +++ b/drivers/acpi/ec.c
37537 @@ -1503,7 +1503,7 @@ static int ec_clear_on_resume(const struct dmi_system_id *id)
37538 return 0;
37539 }
37540
37541 -static struct dmi_system_id ec_dmi_table[] __initdata = {
37542 +static const struct dmi_system_id ec_dmi_table[] __initconst = {
37543 {
37544 ec_skip_dsdt_scan, "Compal JFL92", {
37545 DMI_MATCH(DMI_BIOS_VENDOR, "COMPAL"),
37546 diff --git a/drivers/acpi/pci_slot.c b/drivers/acpi/pci_slot.c
37547 index 7188e53..6012bc4 100644
37548 --- a/drivers/acpi/pci_slot.c
37549 +++ b/drivers/acpi/pci_slot.c
37550 @@ -191,7 +191,7 @@ static int do_sta_before_sun(const struct dmi_system_id *d)
37551 return 0;
37552 }
37553
37554 -static struct dmi_system_id acpi_pci_slot_dmi_table[] __initdata = {
37555 +static const struct dmi_system_id acpi_pci_slot_dmi_table[] __initconst = {
37556 /*
37557 * Fujitsu Primequest machines will return 1023 to indicate an
37558 * error if the _SUN method is evaluated on SxFy objects that
37559 diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
37560 index 175c86b..f8226f0 100644
37561 --- a/drivers/acpi/processor_idle.c
37562 +++ b/drivers/acpi/processor_idle.c
37563 @@ -906,7 +906,7 @@ static int acpi_processor_setup_cpuidle_states(struct acpi_processor *pr)
37564 {
37565 int i, count = CPUIDLE_DRIVER_STATE_START;
37566 struct acpi_processor_cx *cx;
37567 - struct cpuidle_state *state;
37568 + cpuidle_state_no_const *state;
37569 struct cpuidle_driver *drv = &acpi_idle_driver;
37570
37571 if (!pr->flags.power_setup_done)
37572 diff --git a/drivers/acpi/processor_pdc.c b/drivers/acpi/processor_pdc.c
37573 index 7cfbda4..74f738c 100644
37574 --- a/drivers/acpi/processor_pdc.c
37575 +++ b/drivers/acpi/processor_pdc.c
37576 @@ -173,7 +173,7 @@ static int __init set_no_mwait(const struct dmi_system_id *id)
37577 return 0;
37578 }
37579
37580 -static struct dmi_system_id processor_idle_dmi_table[] __initdata = {
37581 +static const struct dmi_system_id processor_idle_dmi_table[] __initconst = {
37582 {
37583 set_no_mwait, "Extensa 5220", {
37584 DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"),
37585 diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
37586 index 0d94621..21686cc 100644
37587 --- a/drivers/acpi/sleep.c
37588 +++ b/drivers/acpi/sleep.c
37589 @@ -148,7 +148,7 @@ static int __init init_nvs_nosave(const struct dmi_system_id *d)
37590 return 0;
37591 }
37592
37593 -static struct dmi_system_id acpisleep_dmi_table[] __initdata = {
37594 +static const struct dmi_system_id acpisleep_dmi_table[] __initconst = {
37595 {
37596 .callback = init_old_suspend_ordering,
37597 .ident = "Abit KN9 (nForce4 variant)",
37598 diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c
37599 index 0243d37..774aa56 100644
37600 --- a/drivers/acpi/sysfs.c
37601 +++ b/drivers/acpi/sysfs.c
37602 @@ -486,11 +486,11 @@ static u32 num_counters;
37603 static struct attribute **all_attrs;
37604 static u32 acpi_gpe_count;
37605
37606 -static struct attribute_group interrupt_stats_attr_group = {
37607 +static attribute_group_no_const interrupt_stats_attr_group = {
37608 .name = "interrupts",
37609 };
37610
37611 -static struct kobj_attribute *counter_attrs;
37612 +static kobj_attribute_no_const *counter_attrs;
37613
37614 static void delete_gpe_attr_array(void)
37615 {
37616 diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
37617 index 82707f9..a6b19f5 100644
37618 --- a/drivers/acpi/thermal.c
37619 +++ b/drivers/acpi/thermal.c
37620 @@ -1208,7 +1208,7 @@ static int thermal_psv(const struct dmi_system_id *d) {
37621 return 0;
37622 }
37623
37624 -static struct dmi_system_id thermal_dmi_table[] __initdata = {
37625 +static const struct dmi_system_id thermal_dmi_table[] __initconst = {
37626 /*
37627 * Award BIOS on this AOpen makes thermal control almost worthless.
37628 * http://bugzilla.kernel.org/show_bug.cgi?id=8842
37629 diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
37630 index 80e55cb..f660caf 100644
37631 --- a/drivers/acpi/video_detect.c
37632 +++ b/drivers/acpi/video_detect.c
37633 @@ -41,7 +41,6 @@ ACPI_MODULE_NAME("video");
37634 void acpi_video_unregister_backlight(void);
37635
37636 static bool backlight_notifier_registered;
37637 -static struct notifier_block backlight_nb;
37638 static struct work_struct backlight_notify_work;
37639
37640 static enum acpi_backlight_type acpi_backlight_cmdline = acpi_backlight_undef;
37641 @@ -294,6 +293,10 @@ static int acpi_video_backlight_notify(struct notifier_block *nb,
37642 return NOTIFY_OK;
37643 }
37644
37645 +static struct notifier_block backlight_nb = {
37646 + .notifier_call = acpi_video_backlight_notify,
37647 +};
37648 +
37649 /*
37650 * Determine which type of backlight interface to use on this system,
37651 * First check cmdline, then dmi quirks, then do autodetect.
37652 @@ -324,8 +327,6 @@ enum acpi_backlight_type acpi_video_get_backlight_type(void)
37653 &video_caps, NULL);
37654 INIT_WORK(&backlight_notify_work,
37655 acpi_video_backlight_notify_work);
37656 - backlight_nb.notifier_call = acpi_video_backlight_notify;
37657 - backlight_nb.priority = 0;
37658 if (backlight_register_notifier(&backlight_nb) == 0)
37659 backlight_notifier_registered = true;
37660 init_done = true;
37661 diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
37662 index b79cb10..7daa9f7 100644
37663 --- a/drivers/ata/libata-core.c
37664 +++ b/drivers/ata/libata-core.c
37665 @@ -102,7 +102,7 @@ static unsigned int ata_dev_set_xfermode(struct ata_device *dev);
37666 static void ata_dev_xfermask(struct ata_device *dev);
37667 static unsigned long ata_dev_blacklisted(const struct ata_device *dev);
37668
37669 -atomic_t ata_print_id = ATOMIC_INIT(0);
37670 +atomic_unchecked_t ata_print_id = ATOMIC_INIT(0);
37671
37672 struct ata_force_param {
37673 const char *name;
37674 @@ -4801,7 +4801,7 @@ void ata_qc_free(struct ata_queued_cmd *qc)
37675 struct ata_port *ap;
37676 unsigned int tag;
37677
37678 - WARN_ON_ONCE(qc == NULL); /* ata_qc_from_tag _might_ return NULL */
37679 + BUG_ON(qc == NULL); /* ata_qc_from_tag _might_ return NULL */
37680 ap = qc->ap;
37681
37682 qc->flags = 0;
37683 @@ -4818,7 +4818,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc)
37684 struct ata_port *ap;
37685 struct ata_link *link;
37686
37687 - WARN_ON_ONCE(qc == NULL); /* ata_qc_from_tag _might_ return NULL */
37688 + BUG_ON(qc == NULL); /* ata_qc_from_tag _might_ return NULL */
37689 WARN_ON_ONCE(!(qc->flags & ATA_QCFLAG_ACTIVE));
37690 ap = qc->ap;
37691 link = qc->dev->link;
37692 @@ -5925,6 +5925,7 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
37693 return;
37694
37695 spin_lock(&lock);
37696 + pax_open_kernel();
37697
37698 for (cur = ops->inherits; cur; cur = cur->inherits) {
37699 void **inherit = (void **)cur;
37700 @@ -5938,8 +5939,9 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
37701 if (IS_ERR(*pp))
37702 *pp = NULL;
37703
37704 - ops->inherits = NULL;
37705 + *(struct ata_port_operations **)&ops->inherits = NULL;
37706
37707 + pax_close_kernel();
37708 spin_unlock(&lock);
37709 }
37710
37711 @@ -6135,7 +6137,7 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht)
37712
37713 /* give ports names and add SCSI hosts */
37714 for (i = 0; i < host->n_ports; i++) {
37715 - host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
37716 + host->ports[i]->print_id = atomic_inc_return_unchecked(&ata_print_id);
37717 host->ports[i]->local_port_no = i + 1;
37718 }
37719
37720 diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
37721 index e417e1a..baf752f 100644
37722 --- a/drivers/ata/libata-scsi.c
37723 +++ b/drivers/ata/libata-scsi.c
37724 @@ -4196,7 +4196,7 @@ int ata_sas_port_init(struct ata_port *ap)
37725
37726 if (rc)
37727 return rc;
37728 - ap->print_id = atomic_inc_return(&ata_print_id);
37729 + ap->print_id = atomic_inc_return_unchecked(&ata_print_id);
37730 return 0;
37731 }
37732 EXPORT_SYMBOL_GPL(ata_sas_port_init);
37733 diff --git a/drivers/ata/libata.h b/drivers/ata/libata.h
37734 index f840ca1..edd6ef3 100644
37735 --- a/drivers/ata/libata.h
37736 +++ b/drivers/ata/libata.h
37737 @@ -53,7 +53,7 @@ enum {
37738 ATA_DNXFER_QUIET = (1 << 31),
37739 };
37740
37741 -extern atomic_t ata_print_id;
37742 +extern atomic_unchecked_t ata_print_id;
37743 extern int atapi_passthru16;
37744 extern int libata_fua;
37745 extern int libata_noacpi;
37746 diff --git a/drivers/ata/pata_arasan_cf.c b/drivers/ata/pata_arasan_cf.c
37747 index 80fe0f6..8c0fa3f 100644
37748 --- a/drivers/ata/pata_arasan_cf.c
37749 +++ b/drivers/ata/pata_arasan_cf.c
37750 @@ -864,7 +864,9 @@ static int arasan_cf_probe(struct platform_device *pdev)
37751 /* Handle platform specific quirks */
37752 if (quirk) {
37753 if (quirk & CF_BROKEN_PIO) {
37754 - ap->ops->set_piomode = NULL;
37755 + pax_open_kernel();
37756 + *(void **)&ap->ops->set_piomode = NULL;
37757 + pax_close_kernel();
37758 ap->pio_mask = 0;
37759 }
37760 if (quirk & CF_BROKEN_MWDMA)
37761 diff --git a/drivers/atm/adummy.c b/drivers/atm/adummy.c
37762 index f9b983a..887b9d8 100644
37763 --- a/drivers/atm/adummy.c
37764 +++ b/drivers/atm/adummy.c
37765 @@ -114,7 +114,7 @@ adummy_send(struct atm_vcc *vcc, struct sk_buff *skb)
37766 vcc->pop(vcc, skb);
37767 else
37768 dev_kfree_skb_any(skb);
37769 - atomic_inc(&vcc->stats->tx);
37770 + atomic_inc_unchecked(&vcc->stats->tx);
37771
37772 return 0;
37773 }
37774 diff --git a/drivers/atm/ambassador.c b/drivers/atm/ambassador.c
37775 index f1a9198..f466a4a 100644
37776 --- a/drivers/atm/ambassador.c
37777 +++ b/drivers/atm/ambassador.c
37778 @@ -454,7 +454,7 @@ static void tx_complete (amb_dev * dev, tx_out * tx) {
37779 PRINTD (DBG_FLOW|DBG_TX, "tx_complete %p %p", dev, tx);
37780
37781 // VC layer stats
37782 - atomic_inc(&ATM_SKB(skb)->vcc->stats->tx);
37783 + atomic_inc_unchecked(&ATM_SKB(skb)->vcc->stats->tx);
37784
37785 // free the descriptor
37786 kfree (tx_descr);
37787 @@ -495,7 +495,7 @@ static void rx_complete (amb_dev * dev, rx_out * rx) {
37788 dump_skb ("<<<", vc, skb);
37789
37790 // VC layer stats
37791 - atomic_inc(&atm_vcc->stats->rx);
37792 + atomic_inc_unchecked(&atm_vcc->stats->rx);
37793 __net_timestamp(skb);
37794 // end of our responsibility
37795 atm_vcc->push (atm_vcc, skb);
37796 @@ -510,7 +510,7 @@ static void rx_complete (amb_dev * dev, rx_out * rx) {
37797 } else {
37798 PRINTK (KERN_INFO, "dropped over-size frame");
37799 // should we count this?
37800 - atomic_inc(&atm_vcc->stats->rx_drop);
37801 + atomic_inc_unchecked(&atm_vcc->stats->rx_drop);
37802 }
37803
37804 } else {
37805 @@ -1338,7 +1338,7 @@ static int amb_send (struct atm_vcc * atm_vcc, struct sk_buff * skb) {
37806 }
37807
37808 if (check_area (skb->data, skb->len)) {
37809 - atomic_inc(&atm_vcc->stats->tx_err);
37810 + atomic_inc_unchecked(&atm_vcc->stats->tx_err);
37811 return -ENOMEM; // ?
37812 }
37813
37814 diff --git a/drivers/atm/atmtcp.c b/drivers/atm/atmtcp.c
37815 index 480fa6f..947067c 100644
37816 --- a/drivers/atm/atmtcp.c
37817 +++ b/drivers/atm/atmtcp.c
37818 @@ -206,7 +206,7 @@ static int atmtcp_v_send(struct atm_vcc *vcc,struct sk_buff *skb)
37819 if (vcc->pop) vcc->pop(vcc,skb);
37820 else dev_kfree_skb(skb);
37821 if (dev_data) return 0;
37822 - atomic_inc(&vcc->stats->tx_err);
37823 + atomic_inc_unchecked(&vcc->stats->tx_err);
37824 return -ENOLINK;
37825 }
37826 size = skb->len+sizeof(struct atmtcp_hdr);
37827 @@ -214,7 +214,7 @@ static int atmtcp_v_send(struct atm_vcc *vcc,struct sk_buff *skb)
37828 if (!new_skb) {
37829 if (vcc->pop) vcc->pop(vcc,skb);
37830 else dev_kfree_skb(skb);
37831 - atomic_inc(&vcc->stats->tx_err);
37832 + atomic_inc_unchecked(&vcc->stats->tx_err);
37833 return -ENOBUFS;
37834 }
37835 hdr = (void *) skb_put(new_skb,sizeof(struct atmtcp_hdr));
37836 @@ -225,8 +225,8 @@ static int atmtcp_v_send(struct atm_vcc *vcc,struct sk_buff *skb)
37837 if (vcc->pop) vcc->pop(vcc,skb);
37838 else dev_kfree_skb(skb);
37839 out_vcc->push(out_vcc,new_skb);
37840 - atomic_inc(&vcc->stats->tx);
37841 - atomic_inc(&out_vcc->stats->rx);
37842 + atomic_inc_unchecked(&vcc->stats->tx);
37843 + atomic_inc_unchecked(&out_vcc->stats->rx);
37844 return 0;
37845 }
37846
37847 @@ -300,7 +300,7 @@ static int atmtcp_c_send(struct atm_vcc *vcc,struct sk_buff *skb)
37848 read_unlock(&vcc_sklist_lock);
37849 if (!out_vcc) {
37850 result = -EUNATCH;
37851 - atomic_inc(&vcc->stats->tx_err);
37852 + atomic_inc_unchecked(&vcc->stats->tx_err);
37853 goto done;
37854 }
37855 skb_pull(skb,sizeof(struct atmtcp_hdr));
37856 @@ -312,8 +312,8 @@ static int atmtcp_c_send(struct atm_vcc *vcc,struct sk_buff *skb)
37857 __net_timestamp(new_skb);
37858 skb_copy_from_linear_data(skb, skb_put(new_skb, skb->len), skb->len);
37859 out_vcc->push(out_vcc,new_skb);
37860 - atomic_inc(&vcc->stats->tx);
37861 - atomic_inc(&out_vcc->stats->rx);
37862 + atomic_inc_unchecked(&vcc->stats->tx);
37863 + atomic_inc_unchecked(&out_vcc->stats->rx);
37864 done:
37865 if (vcc->pop) vcc->pop(vcc,skb);
37866 else dev_kfree_skb(skb);
37867 diff --git a/drivers/atm/eni.c b/drivers/atm/eni.c
37868 index 6339efd..2b441d5 100644
37869 --- a/drivers/atm/eni.c
37870 +++ b/drivers/atm/eni.c
37871 @@ -525,7 +525,7 @@ static int rx_aal0(struct atm_vcc *vcc)
37872 DPRINTK(DEV_LABEL "(itf %d): trashing empty cell\n",
37873 vcc->dev->number);
37874 length = 0;
37875 - atomic_inc(&vcc->stats->rx_err);
37876 + atomic_inc_unchecked(&vcc->stats->rx_err);
37877 }
37878 else {
37879 length = ATM_CELL_SIZE-1; /* no HEC */
37880 @@ -580,7 +580,7 @@ static int rx_aal5(struct atm_vcc *vcc)
37881 size);
37882 }
37883 eff = length = 0;
37884 - atomic_inc(&vcc->stats->rx_err);
37885 + atomic_inc_unchecked(&vcc->stats->rx_err);
37886 }
37887 else {
37888 size = (descr & MID_RED_COUNT)*(ATM_CELL_PAYLOAD >> 2);
37889 @@ -597,7 +597,7 @@ static int rx_aal5(struct atm_vcc *vcc)
37890 "(VCI=%d,length=%ld,size=%ld (descr 0x%lx))\n",
37891 vcc->dev->number,vcc->vci,length,size << 2,descr);
37892 length = eff = 0;
37893 - atomic_inc(&vcc->stats->rx_err);
37894 + atomic_inc_unchecked(&vcc->stats->rx_err);
37895 }
37896 }
37897 skb = eff ? atm_alloc_charge(vcc,eff << 2,GFP_ATOMIC) : NULL;
37898 @@ -770,7 +770,7 @@ rx_dequeued++;
37899 vcc->push(vcc,skb);
37900 pushed++;
37901 }
37902 - atomic_inc(&vcc->stats->rx);
37903 + atomic_inc_unchecked(&vcc->stats->rx);
37904 }
37905 wake_up(&eni_dev->rx_wait);
37906 }
37907 @@ -1230,7 +1230,7 @@ static void dequeue_tx(struct atm_dev *dev)
37908 DMA_TO_DEVICE);
37909 if (vcc->pop) vcc->pop(vcc,skb);
37910 else dev_kfree_skb_irq(skb);
37911 - atomic_inc(&vcc->stats->tx);
37912 + atomic_inc_unchecked(&vcc->stats->tx);
37913 wake_up(&eni_dev->tx_wait);
37914 dma_complete++;
37915 }
37916 diff --git a/drivers/atm/firestream.c b/drivers/atm/firestream.c
37917 index 82f2ae0..f205c02 100644
37918 --- a/drivers/atm/firestream.c
37919 +++ b/drivers/atm/firestream.c
37920 @@ -749,7 +749,7 @@ static void process_txdone_queue (struct fs_dev *dev, struct queue *q)
37921 }
37922 }
37923
37924 - atomic_inc(&ATM_SKB(skb)->vcc->stats->tx);
37925 + atomic_inc_unchecked(&ATM_SKB(skb)->vcc->stats->tx);
37926
37927 fs_dprintk (FS_DEBUG_TXMEM, "i");
37928 fs_dprintk (FS_DEBUG_ALLOC, "Free t-skb: %p\n", skb);
37929 @@ -816,7 +816,7 @@ static void process_incoming (struct fs_dev *dev, struct queue *q)
37930 #endif
37931 skb_put (skb, qe->p1 & 0xffff);
37932 ATM_SKB(skb)->vcc = atm_vcc;
37933 - atomic_inc(&atm_vcc->stats->rx);
37934 + atomic_inc_unchecked(&atm_vcc->stats->rx);
37935 __net_timestamp(skb);
37936 fs_dprintk (FS_DEBUG_ALLOC, "Free rec-skb: %p (pushed)\n", skb);
37937 atm_vcc->push (atm_vcc, skb);
37938 @@ -837,12 +837,12 @@ static void process_incoming (struct fs_dev *dev, struct queue *q)
37939 kfree (pe);
37940 }
37941 if (atm_vcc)
37942 - atomic_inc(&atm_vcc->stats->rx_drop);
37943 + atomic_inc_unchecked(&atm_vcc->stats->rx_drop);
37944 break;
37945 case 0x1f: /* Reassembly abort: no buffers. */
37946 /* Silently increment error counter. */
37947 if (atm_vcc)
37948 - atomic_inc(&atm_vcc->stats->rx_drop);
37949 + atomic_inc_unchecked(&atm_vcc->stats->rx_drop);
37950 break;
37951 default: /* Hmm. Haven't written the code to handle the others yet... -- REW */
37952 printk (KERN_WARNING "Don't know what to do with RX status %x: %s.\n",
37953 diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.c
37954 index 75dde90..4309ead 100644
37955 --- a/drivers/atm/fore200e.c
37956 +++ b/drivers/atm/fore200e.c
37957 @@ -932,9 +932,9 @@ fore200e_tx_irq(struct fore200e* fore200e)
37958 #endif
37959 /* check error condition */
37960 if (*entry->status & STATUS_ERROR)
37961 - atomic_inc(&vcc->stats->tx_err);
37962 + atomic_inc_unchecked(&vcc->stats->tx_err);
37963 else
37964 - atomic_inc(&vcc->stats->tx);
37965 + atomic_inc_unchecked(&vcc->stats->tx);
37966 }
37967 }
37968
37969 @@ -1083,7 +1083,7 @@ fore200e_push_rpd(struct fore200e* fore200e, struct atm_vcc* vcc, struct rpd* rp
37970 if (skb == NULL) {
37971 DPRINTK(2, "unable to alloc new skb, rx PDU length = %d\n", pdu_len);
37972
37973 - atomic_inc(&vcc->stats->rx_drop);
37974 + atomic_inc_unchecked(&vcc->stats->rx_drop);
37975 return -ENOMEM;
37976 }
37977
37978 @@ -1126,14 +1126,14 @@ fore200e_push_rpd(struct fore200e* fore200e, struct atm_vcc* vcc, struct rpd* rp
37979
37980 dev_kfree_skb_any(skb);
37981
37982 - atomic_inc(&vcc->stats->rx_drop);
37983 + atomic_inc_unchecked(&vcc->stats->rx_drop);
37984 return -ENOMEM;
37985 }
37986
37987 ASSERT(atomic_read(&sk_atm(vcc)->sk_wmem_alloc) >= 0);
37988
37989 vcc->push(vcc, skb);
37990 - atomic_inc(&vcc->stats->rx);
37991 + atomic_inc_unchecked(&vcc->stats->rx);
37992
37993 ASSERT(atomic_read(&sk_atm(vcc)->sk_wmem_alloc) >= 0);
37994
37995 @@ -1211,7 +1211,7 @@ fore200e_rx_irq(struct fore200e* fore200e)
37996 DPRINTK(2, "damaged PDU on %d.%d.%d\n",
37997 fore200e->atm_dev->number,
37998 entry->rpd->atm_header.vpi, entry->rpd->atm_header.vci);
37999 - atomic_inc(&vcc->stats->rx_err);
38000 + atomic_inc_unchecked(&vcc->stats->rx_err);
38001 }
38002 }
38003
38004 @@ -1656,7 +1656,7 @@ fore200e_send(struct atm_vcc *vcc, struct sk_buff *skb)
38005 goto retry_here;
38006 }
38007
38008 - atomic_inc(&vcc->stats->tx_err);
38009 + atomic_inc_unchecked(&vcc->stats->tx_err);
38010
38011 fore200e->tx_sat++;
38012 DPRINTK(2, "tx queue of device %s is saturated, PDU dropped - heartbeat is %08x\n",
38013 diff --git a/drivers/atm/he.c b/drivers/atm/he.c
38014 index 0f5cb37..c8bcdef 100644
38015 --- a/drivers/atm/he.c
38016 +++ b/drivers/atm/he.c
38017 @@ -1689,7 +1689,7 @@ he_service_rbrq(struct he_dev *he_dev, int group)
38018
38019 if (RBRQ_HBUF_ERR(he_dev->rbrq_head)) {
38020 hprintk("HBUF_ERR! (cid 0x%x)\n", cid);
38021 - atomic_inc(&vcc->stats->rx_drop);
38022 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38023 goto return_host_buffers;
38024 }
38025
38026 @@ -1716,7 +1716,7 @@ he_service_rbrq(struct he_dev *he_dev, int group)
38027 RBRQ_LEN_ERR(he_dev->rbrq_head)
38028 ? "LEN_ERR" : "",
38029 vcc->vpi, vcc->vci);
38030 - atomic_inc(&vcc->stats->rx_err);
38031 + atomic_inc_unchecked(&vcc->stats->rx_err);
38032 goto return_host_buffers;
38033 }
38034
38035 @@ -1768,7 +1768,7 @@ he_service_rbrq(struct he_dev *he_dev, int group)
38036 vcc->push(vcc, skb);
38037 spin_lock(&he_dev->global_lock);
38038
38039 - atomic_inc(&vcc->stats->rx);
38040 + atomic_inc_unchecked(&vcc->stats->rx);
38041
38042 return_host_buffers:
38043 ++pdus_assembled;
38044 @@ -2094,7 +2094,7 @@ __enqueue_tpd(struct he_dev *he_dev, struct he_tpd *tpd, unsigned cid)
38045 tpd->vcc->pop(tpd->vcc, tpd->skb);
38046 else
38047 dev_kfree_skb_any(tpd->skb);
38048 - atomic_inc(&tpd->vcc->stats->tx_err);
38049 + atomic_inc_unchecked(&tpd->vcc->stats->tx_err);
38050 }
38051 dma_pool_free(he_dev->tpd_pool, tpd, TPD_ADDR(tpd->status));
38052 return;
38053 @@ -2506,7 +2506,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
38054 vcc->pop(vcc, skb);
38055 else
38056 dev_kfree_skb_any(skb);
38057 - atomic_inc(&vcc->stats->tx_err);
38058 + atomic_inc_unchecked(&vcc->stats->tx_err);
38059 return -EINVAL;
38060 }
38061
38062 @@ -2517,7 +2517,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
38063 vcc->pop(vcc, skb);
38064 else
38065 dev_kfree_skb_any(skb);
38066 - atomic_inc(&vcc->stats->tx_err);
38067 + atomic_inc_unchecked(&vcc->stats->tx_err);
38068 return -EINVAL;
38069 }
38070 #endif
38071 @@ -2529,7 +2529,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
38072 vcc->pop(vcc, skb);
38073 else
38074 dev_kfree_skb_any(skb);
38075 - atomic_inc(&vcc->stats->tx_err);
38076 + atomic_inc_unchecked(&vcc->stats->tx_err);
38077 spin_unlock_irqrestore(&he_dev->global_lock, flags);
38078 return -ENOMEM;
38079 }
38080 @@ -2571,7 +2571,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
38081 vcc->pop(vcc, skb);
38082 else
38083 dev_kfree_skb_any(skb);
38084 - atomic_inc(&vcc->stats->tx_err);
38085 + atomic_inc_unchecked(&vcc->stats->tx_err);
38086 spin_unlock_irqrestore(&he_dev->global_lock, flags);
38087 return -ENOMEM;
38088 }
38089 @@ -2602,7 +2602,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
38090 __enqueue_tpd(he_dev, tpd, cid);
38091 spin_unlock_irqrestore(&he_dev->global_lock, flags);
38092
38093 - atomic_inc(&vcc->stats->tx);
38094 + atomic_inc_unchecked(&vcc->stats->tx);
38095
38096 return 0;
38097 }
38098 diff --git a/drivers/atm/horizon.c b/drivers/atm/horizon.c
38099 index 527bbd5..96570c8 100644
38100 --- a/drivers/atm/horizon.c
38101 +++ b/drivers/atm/horizon.c
38102 @@ -1018,7 +1018,7 @@ static void rx_schedule (hrz_dev * dev, int irq) {
38103 {
38104 struct atm_vcc * vcc = ATM_SKB(skb)->vcc;
38105 // VC layer stats
38106 - atomic_inc(&vcc->stats->rx);
38107 + atomic_inc_unchecked(&vcc->stats->rx);
38108 __net_timestamp(skb);
38109 // end of our responsibility
38110 vcc->push (vcc, skb);
38111 @@ -1170,7 +1170,7 @@ static void tx_schedule (hrz_dev * const dev, int irq) {
38112 dev->tx_iovec = NULL;
38113
38114 // VC layer stats
38115 - atomic_inc(&ATM_SKB(skb)->vcc->stats->tx);
38116 + atomic_inc_unchecked(&ATM_SKB(skb)->vcc->stats->tx);
38117
38118 // free the skb
38119 hrz_kfree_skb (skb);
38120 diff --git a/drivers/atm/idt77252.c b/drivers/atm/idt77252.c
38121 index 074616b..d6b3d5f 100644
38122 --- a/drivers/atm/idt77252.c
38123 +++ b/drivers/atm/idt77252.c
38124 @@ -811,7 +811,7 @@ drain_scq(struct idt77252_dev *card, struct vc_map *vc)
38125 else
38126 dev_kfree_skb(skb);
38127
38128 - atomic_inc(&vcc->stats->tx);
38129 + atomic_inc_unchecked(&vcc->stats->tx);
38130 }
38131
38132 atomic_dec(&scq->used);
38133 @@ -1073,13 +1073,13 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38134 if ((sb = dev_alloc_skb(64)) == NULL) {
38135 printk("%s: Can't allocate buffers for aal0.\n",
38136 card->name);
38137 - atomic_add(i, &vcc->stats->rx_drop);
38138 + atomic_add_unchecked(i, &vcc->stats->rx_drop);
38139 break;
38140 }
38141 if (!atm_charge(vcc, sb->truesize)) {
38142 RXPRINTK("%s: atm_charge() dropped aal0 packets.\n",
38143 card->name);
38144 - atomic_add(i - 1, &vcc->stats->rx_drop);
38145 + atomic_add_unchecked(i - 1, &vcc->stats->rx_drop);
38146 dev_kfree_skb(sb);
38147 break;
38148 }
38149 @@ -1096,7 +1096,7 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38150 ATM_SKB(sb)->vcc = vcc;
38151 __net_timestamp(sb);
38152 vcc->push(vcc, sb);
38153 - atomic_inc(&vcc->stats->rx);
38154 + atomic_inc_unchecked(&vcc->stats->rx);
38155
38156 cell += ATM_CELL_PAYLOAD;
38157 }
38158 @@ -1133,13 +1133,13 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38159 "(CDC: %08x)\n",
38160 card->name, len, rpp->len, readl(SAR_REG_CDC));
38161 recycle_rx_pool_skb(card, rpp);
38162 - atomic_inc(&vcc->stats->rx_err);
38163 + atomic_inc_unchecked(&vcc->stats->rx_err);
38164 return;
38165 }
38166 if (stat & SAR_RSQE_CRC) {
38167 RXPRINTK("%s: AAL5 CRC error.\n", card->name);
38168 recycle_rx_pool_skb(card, rpp);
38169 - atomic_inc(&vcc->stats->rx_err);
38170 + atomic_inc_unchecked(&vcc->stats->rx_err);
38171 return;
38172 }
38173 if (skb_queue_len(&rpp->queue) > 1) {
38174 @@ -1150,7 +1150,7 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38175 RXPRINTK("%s: Can't alloc RX skb.\n",
38176 card->name);
38177 recycle_rx_pool_skb(card, rpp);
38178 - atomic_inc(&vcc->stats->rx_err);
38179 + atomic_inc_unchecked(&vcc->stats->rx_err);
38180 return;
38181 }
38182 if (!atm_charge(vcc, skb->truesize)) {
38183 @@ -1169,7 +1169,7 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38184 __net_timestamp(skb);
38185
38186 vcc->push(vcc, skb);
38187 - atomic_inc(&vcc->stats->rx);
38188 + atomic_inc_unchecked(&vcc->stats->rx);
38189
38190 return;
38191 }
38192 @@ -1191,7 +1191,7 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38193 __net_timestamp(skb);
38194
38195 vcc->push(vcc, skb);
38196 - atomic_inc(&vcc->stats->rx);
38197 + atomic_inc_unchecked(&vcc->stats->rx);
38198
38199 if (skb->truesize > SAR_FB_SIZE_3)
38200 add_rx_skb(card, 3, SAR_FB_SIZE_3, 1);
38201 @@ -1302,14 +1302,14 @@ idt77252_rx_raw(struct idt77252_dev *card)
38202 if (vcc->qos.aal != ATM_AAL0) {
38203 RPRINTK("%s: raw cell for non AAL0 vc %u.%u\n",
38204 card->name, vpi, vci);
38205 - atomic_inc(&vcc->stats->rx_drop);
38206 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38207 goto drop;
38208 }
38209
38210 if ((sb = dev_alloc_skb(64)) == NULL) {
38211 printk("%s: Can't allocate buffers for AAL0.\n",
38212 card->name);
38213 - atomic_inc(&vcc->stats->rx_err);
38214 + atomic_inc_unchecked(&vcc->stats->rx_err);
38215 goto drop;
38216 }
38217
38218 @@ -1328,7 +1328,7 @@ idt77252_rx_raw(struct idt77252_dev *card)
38219 ATM_SKB(sb)->vcc = vcc;
38220 __net_timestamp(sb);
38221 vcc->push(vcc, sb);
38222 - atomic_inc(&vcc->stats->rx);
38223 + atomic_inc_unchecked(&vcc->stats->rx);
38224
38225 drop:
38226 skb_pull(queue, 64);
38227 @@ -1953,13 +1953,13 @@ idt77252_send_skb(struct atm_vcc *vcc, struct sk_buff *skb, int oam)
38228
38229 if (vc == NULL) {
38230 printk("%s: NULL connection in send().\n", card->name);
38231 - atomic_inc(&vcc->stats->tx_err);
38232 + atomic_inc_unchecked(&vcc->stats->tx_err);
38233 dev_kfree_skb(skb);
38234 return -EINVAL;
38235 }
38236 if (!test_bit(VCF_TX, &vc->flags)) {
38237 printk("%s: Trying to transmit on a non-tx VC.\n", card->name);
38238 - atomic_inc(&vcc->stats->tx_err);
38239 + atomic_inc_unchecked(&vcc->stats->tx_err);
38240 dev_kfree_skb(skb);
38241 return -EINVAL;
38242 }
38243 @@ -1971,14 +1971,14 @@ idt77252_send_skb(struct atm_vcc *vcc, struct sk_buff *skb, int oam)
38244 break;
38245 default:
38246 printk("%s: Unsupported AAL: %d\n", card->name, vcc->qos.aal);
38247 - atomic_inc(&vcc->stats->tx_err);
38248 + atomic_inc_unchecked(&vcc->stats->tx_err);
38249 dev_kfree_skb(skb);
38250 return -EINVAL;
38251 }
38252
38253 if (skb_shinfo(skb)->nr_frags != 0) {
38254 printk("%s: No scatter-gather yet.\n", card->name);
38255 - atomic_inc(&vcc->stats->tx_err);
38256 + atomic_inc_unchecked(&vcc->stats->tx_err);
38257 dev_kfree_skb(skb);
38258 return -EINVAL;
38259 }
38260 @@ -1986,7 +1986,7 @@ idt77252_send_skb(struct atm_vcc *vcc, struct sk_buff *skb, int oam)
38261
38262 err = queue_skb(card, vc, skb, oam);
38263 if (err) {
38264 - atomic_inc(&vcc->stats->tx_err);
38265 + atomic_inc_unchecked(&vcc->stats->tx_err);
38266 dev_kfree_skb(skb);
38267 return err;
38268 }
38269 @@ -2009,7 +2009,7 @@ idt77252_send_oam(struct atm_vcc *vcc, void *cell, int flags)
38270 skb = dev_alloc_skb(64);
38271 if (!skb) {
38272 printk("%s: Out of memory in send_oam().\n", card->name);
38273 - atomic_inc(&vcc->stats->tx_err);
38274 + atomic_inc_unchecked(&vcc->stats->tx_err);
38275 return -ENOMEM;
38276 }
38277 atomic_add(skb->truesize, &sk_atm(vcc)->sk_wmem_alloc);
38278 diff --git a/drivers/atm/iphase.c b/drivers/atm/iphase.c
38279 index 7d00f29..a9a6c74 100644
38280 --- a/drivers/atm/iphase.c
38281 +++ b/drivers/atm/iphase.c
38282 @@ -1146,7 +1146,7 @@ static int rx_pkt(struct atm_dev *dev)
38283 status = (u_short) (buf_desc_ptr->desc_mode);
38284 if (status & (RX_CER | RX_PTE | RX_OFL))
38285 {
38286 - atomic_inc(&vcc->stats->rx_err);
38287 + atomic_inc_unchecked(&vcc->stats->rx_err);
38288 IF_ERR(printk("IA: bad packet, dropping it");)
38289 if (status & RX_CER) {
38290 IF_ERR(printk(" cause: packet CRC error\n");)
38291 @@ -1169,7 +1169,7 @@ static int rx_pkt(struct atm_dev *dev)
38292 len = dma_addr - buf_addr;
38293 if (len > iadev->rx_buf_sz) {
38294 printk("Over %d bytes sdu received, dropped!!!\n", iadev->rx_buf_sz);
38295 - atomic_inc(&vcc->stats->rx_err);
38296 + atomic_inc_unchecked(&vcc->stats->rx_err);
38297 goto out_free_desc;
38298 }
38299
38300 @@ -1319,7 +1319,7 @@ static void rx_dle_intr(struct atm_dev *dev)
38301 ia_vcc = INPH_IA_VCC(vcc);
38302 if (ia_vcc == NULL)
38303 {
38304 - atomic_inc(&vcc->stats->rx_err);
38305 + atomic_inc_unchecked(&vcc->stats->rx_err);
38306 atm_return(vcc, skb->truesize);
38307 dev_kfree_skb_any(skb);
38308 goto INCR_DLE;
38309 @@ -1331,7 +1331,7 @@ static void rx_dle_intr(struct atm_dev *dev)
38310 if ((length > iadev->rx_buf_sz) || (length >
38311 (skb->len - sizeof(struct cpcs_trailer))))
38312 {
38313 - atomic_inc(&vcc->stats->rx_err);
38314 + atomic_inc_unchecked(&vcc->stats->rx_err);
38315 IF_ERR(printk("rx_dle_intr: Bad AAL5 trailer %d (skb len %d)",
38316 length, skb->len);)
38317 atm_return(vcc, skb->truesize);
38318 @@ -1347,7 +1347,7 @@ static void rx_dle_intr(struct atm_dev *dev)
38319
38320 IF_RX(printk("rx_dle_intr: skb push");)
38321 vcc->push(vcc,skb);
38322 - atomic_inc(&vcc->stats->rx);
38323 + atomic_inc_unchecked(&vcc->stats->rx);
38324 iadev->rx_pkt_cnt++;
38325 }
38326 INCR_DLE:
38327 @@ -2829,15 +2829,15 @@ static int ia_ioctl(struct atm_dev *dev, unsigned int cmd, void __user *arg)
38328 {
38329 struct k_sonet_stats *stats;
38330 stats = &PRIV(_ia_dev[board])->sonet_stats;
38331 - printk("section_bip: %d\n", atomic_read(&stats->section_bip));
38332 - printk("line_bip : %d\n", atomic_read(&stats->line_bip));
38333 - printk("path_bip : %d\n", atomic_read(&stats->path_bip));
38334 - printk("line_febe : %d\n", atomic_read(&stats->line_febe));
38335 - printk("path_febe : %d\n", atomic_read(&stats->path_febe));
38336 - printk("corr_hcs : %d\n", atomic_read(&stats->corr_hcs));
38337 - printk("uncorr_hcs : %d\n", atomic_read(&stats->uncorr_hcs));
38338 - printk("tx_cells : %d\n", atomic_read(&stats->tx_cells));
38339 - printk("rx_cells : %d\n", atomic_read(&stats->rx_cells));
38340 + printk("section_bip: %d\n", atomic_read_unchecked(&stats->section_bip));
38341 + printk("line_bip : %d\n", atomic_read_unchecked(&stats->line_bip));
38342 + printk("path_bip : %d\n", atomic_read_unchecked(&stats->path_bip));
38343 + printk("line_febe : %d\n", atomic_read_unchecked(&stats->line_febe));
38344 + printk("path_febe : %d\n", atomic_read_unchecked(&stats->path_febe));
38345 + printk("corr_hcs : %d\n", atomic_read_unchecked(&stats->corr_hcs));
38346 + printk("uncorr_hcs : %d\n", atomic_read_unchecked(&stats->uncorr_hcs));
38347 + printk("tx_cells : %d\n", atomic_read_unchecked(&stats->tx_cells));
38348 + printk("rx_cells : %d\n", atomic_read_unchecked(&stats->rx_cells));
38349 }
38350 ia_cmds.status = 0;
38351 break;
38352 @@ -2942,7 +2942,7 @@ static int ia_pkt_tx (struct atm_vcc *vcc, struct sk_buff *skb) {
38353 if ((desc == 0) || (desc > iadev->num_tx_desc))
38354 {
38355 IF_ERR(printk(DEV_LABEL "invalid desc for send: %d\n", desc);)
38356 - atomic_inc(&vcc->stats->tx);
38357 + atomic_inc_unchecked(&vcc->stats->tx);
38358 if (vcc->pop)
38359 vcc->pop(vcc, skb);
38360 else
38361 @@ -3047,14 +3047,14 @@ static int ia_pkt_tx (struct atm_vcc *vcc, struct sk_buff *skb) {
38362 ATM_DESC(skb) = vcc->vci;
38363 skb_queue_tail(&iadev->tx_dma_q, skb);
38364
38365 - atomic_inc(&vcc->stats->tx);
38366 + atomic_inc_unchecked(&vcc->stats->tx);
38367 iadev->tx_pkt_cnt++;
38368 /* Increment transaction counter */
38369 writel(2, iadev->dma+IPHASE5575_TX_COUNTER);
38370
38371 #if 0
38372 /* add flow control logic */
38373 - if (atomic_read(&vcc->stats->tx) % 20 == 0) {
38374 + if (atomic_read_unchecked(&vcc->stats->tx) % 20 == 0) {
38375 if (iavcc->vc_desc_cnt > 10) {
38376 vcc->tx_quota = vcc->tx_quota * 3 / 4;
38377 printk("Tx1: vcc->tx_quota = %d \n", (u32)vcc->tx_quota );
38378 diff --git a/drivers/atm/lanai.c b/drivers/atm/lanai.c
38379 index ce43ae3..969de38 100644
38380 --- a/drivers/atm/lanai.c
38381 +++ b/drivers/atm/lanai.c
38382 @@ -1295,7 +1295,7 @@ static void lanai_send_one_aal5(struct lanai_dev *lanai,
38383 vcc_tx_add_aal5_trailer(lvcc, skb->len, 0, 0);
38384 lanai_endtx(lanai, lvcc);
38385 lanai_free_skb(lvcc->tx.atmvcc, skb);
38386 - atomic_inc(&lvcc->tx.atmvcc->stats->tx);
38387 + atomic_inc_unchecked(&lvcc->tx.atmvcc->stats->tx);
38388 }
38389
38390 /* Try to fill the buffer - don't call unless there is backlog */
38391 @@ -1418,7 +1418,7 @@ static void vcc_rx_aal5(struct lanai_vcc *lvcc, int endptr)
38392 ATM_SKB(skb)->vcc = lvcc->rx.atmvcc;
38393 __net_timestamp(skb);
38394 lvcc->rx.atmvcc->push(lvcc->rx.atmvcc, skb);
38395 - atomic_inc(&lvcc->rx.atmvcc->stats->rx);
38396 + atomic_inc_unchecked(&lvcc->rx.atmvcc->stats->rx);
38397 out:
38398 lvcc->rx.buf.ptr = end;
38399 cardvcc_write(lvcc, endptr, vcc_rxreadptr);
38400 @@ -1659,7 +1659,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
38401 DPRINTK("(itf %d) got RX service entry 0x%X for non-AAL5 "
38402 "vcc %d\n", lanai->number, (unsigned int) s, vci);
38403 lanai->stats.service_rxnotaal5++;
38404 - atomic_inc(&lvcc->rx.atmvcc->stats->rx_err);
38405 + atomic_inc_unchecked(&lvcc->rx.atmvcc->stats->rx_err);
38406 return 0;
38407 }
38408 if (likely(!(s & (SERVICE_TRASH | SERVICE_STREAM | SERVICE_CRCERR)))) {
38409 @@ -1671,7 +1671,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
38410 int bytes;
38411 read_unlock(&vcc_sklist_lock);
38412 DPRINTK("got trashed rx pdu on vci %d\n", vci);
38413 - atomic_inc(&lvcc->rx.atmvcc->stats->rx_err);
38414 + atomic_inc_unchecked(&lvcc->rx.atmvcc->stats->rx_err);
38415 lvcc->stats.x.aal5.service_trash++;
38416 bytes = (SERVICE_GET_END(s) * 16) -
38417 (((unsigned long) lvcc->rx.buf.ptr) -
38418 @@ -1683,7 +1683,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
38419 }
38420 if (s & SERVICE_STREAM) {
38421 read_unlock(&vcc_sklist_lock);
38422 - atomic_inc(&lvcc->rx.atmvcc->stats->rx_err);
38423 + atomic_inc_unchecked(&lvcc->rx.atmvcc->stats->rx_err);
38424 lvcc->stats.x.aal5.service_stream++;
38425 printk(KERN_ERR DEV_LABEL "(itf %d): Got AAL5 stream "
38426 "PDU on VCI %d!\n", lanai->number, vci);
38427 @@ -1691,7 +1691,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
38428 return 0;
38429 }
38430 DPRINTK("got rx crc error on vci %d\n", vci);
38431 - atomic_inc(&lvcc->rx.atmvcc->stats->rx_err);
38432 + atomic_inc_unchecked(&lvcc->rx.atmvcc->stats->rx_err);
38433 lvcc->stats.x.aal5.service_rxcrc++;
38434 lvcc->rx.buf.ptr = &lvcc->rx.buf.start[SERVICE_GET_END(s) * 4];
38435 cardvcc_write(lvcc, SERVICE_GET_END(s), vcc_rxreadptr);
38436 diff --git a/drivers/atm/nicstar.c b/drivers/atm/nicstar.c
38437 index ddc4ceb..36e29aa 100644
38438 --- a/drivers/atm/nicstar.c
38439 +++ b/drivers/atm/nicstar.c
38440 @@ -1632,7 +1632,7 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
38441 if ((vc = (vc_map *) vcc->dev_data) == NULL) {
38442 printk("nicstar%d: vcc->dev_data == NULL on ns_send().\n",
38443 card->index);
38444 - atomic_inc(&vcc->stats->tx_err);
38445 + atomic_inc_unchecked(&vcc->stats->tx_err);
38446 dev_kfree_skb_any(skb);
38447 return -EINVAL;
38448 }
38449 @@ -1640,7 +1640,7 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
38450 if (!vc->tx) {
38451 printk("nicstar%d: Trying to transmit on a non-tx VC.\n",
38452 card->index);
38453 - atomic_inc(&vcc->stats->tx_err);
38454 + atomic_inc_unchecked(&vcc->stats->tx_err);
38455 dev_kfree_skb_any(skb);
38456 return -EINVAL;
38457 }
38458 @@ -1648,14 +1648,14 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
38459 if (vcc->qos.aal != ATM_AAL5 && vcc->qos.aal != ATM_AAL0) {
38460 printk("nicstar%d: Only AAL0 and AAL5 are supported.\n",
38461 card->index);
38462 - atomic_inc(&vcc->stats->tx_err);
38463 + atomic_inc_unchecked(&vcc->stats->tx_err);
38464 dev_kfree_skb_any(skb);
38465 return -EINVAL;
38466 }
38467
38468 if (skb_shinfo(skb)->nr_frags != 0) {
38469 printk("nicstar%d: No scatter-gather yet.\n", card->index);
38470 - atomic_inc(&vcc->stats->tx_err);
38471 + atomic_inc_unchecked(&vcc->stats->tx_err);
38472 dev_kfree_skb_any(skb);
38473 return -EINVAL;
38474 }
38475 @@ -1703,11 +1703,11 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
38476 }
38477
38478 if (push_scqe(card, vc, scq, &scqe, skb) != 0) {
38479 - atomic_inc(&vcc->stats->tx_err);
38480 + atomic_inc_unchecked(&vcc->stats->tx_err);
38481 dev_kfree_skb_any(skb);
38482 return -EIO;
38483 }
38484 - atomic_inc(&vcc->stats->tx);
38485 + atomic_inc_unchecked(&vcc->stats->tx);
38486
38487 return 0;
38488 }
38489 @@ -2024,14 +2024,14 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38490 printk
38491 ("nicstar%d: Can't allocate buffers for aal0.\n",
38492 card->index);
38493 - atomic_add(i, &vcc->stats->rx_drop);
38494 + atomic_add_unchecked(i, &vcc->stats->rx_drop);
38495 break;
38496 }
38497 if (!atm_charge(vcc, sb->truesize)) {
38498 RXPRINTK
38499 ("nicstar%d: atm_charge() dropped aal0 packets.\n",
38500 card->index);
38501 - atomic_add(i - 1, &vcc->stats->rx_drop); /* already increased by 1 */
38502 + atomic_add_unchecked(i - 1, &vcc->stats->rx_drop); /* already increased by 1 */
38503 dev_kfree_skb_any(sb);
38504 break;
38505 }
38506 @@ -2046,7 +2046,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38507 ATM_SKB(sb)->vcc = vcc;
38508 __net_timestamp(sb);
38509 vcc->push(vcc, sb);
38510 - atomic_inc(&vcc->stats->rx);
38511 + atomic_inc_unchecked(&vcc->stats->rx);
38512 cell += ATM_CELL_PAYLOAD;
38513 }
38514
38515 @@ -2063,7 +2063,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38516 if (iovb == NULL) {
38517 printk("nicstar%d: Out of iovec buffers.\n",
38518 card->index);
38519 - atomic_inc(&vcc->stats->rx_drop);
38520 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38521 recycle_rx_buf(card, skb);
38522 return;
38523 }
38524 @@ -2087,7 +2087,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38525 small or large buffer itself. */
38526 } else if (NS_PRV_IOVCNT(iovb) >= NS_MAX_IOVECS) {
38527 printk("nicstar%d: received too big AAL5 SDU.\n", card->index);
38528 - atomic_inc(&vcc->stats->rx_err);
38529 + atomic_inc_unchecked(&vcc->stats->rx_err);
38530 recycle_iovec_rx_bufs(card, (struct iovec *)iovb->data,
38531 NS_MAX_IOVECS);
38532 NS_PRV_IOVCNT(iovb) = 0;
38533 @@ -2107,7 +2107,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38534 ("nicstar%d: Expected a small buffer, and this is not one.\n",
38535 card->index);
38536 which_list(card, skb);
38537 - atomic_inc(&vcc->stats->rx_err);
38538 + atomic_inc_unchecked(&vcc->stats->rx_err);
38539 recycle_rx_buf(card, skb);
38540 vc->rx_iov = NULL;
38541 recycle_iov_buf(card, iovb);
38542 @@ -2120,7 +2120,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38543 ("nicstar%d: Expected a large buffer, and this is not one.\n",
38544 card->index);
38545 which_list(card, skb);
38546 - atomic_inc(&vcc->stats->rx_err);
38547 + atomic_inc_unchecked(&vcc->stats->rx_err);
38548 recycle_iovec_rx_bufs(card, (struct iovec *)iovb->data,
38549 NS_PRV_IOVCNT(iovb));
38550 vc->rx_iov = NULL;
38551 @@ -2143,7 +2143,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38552 printk(" - PDU size mismatch.\n");
38553 else
38554 printk(".\n");
38555 - atomic_inc(&vcc->stats->rx_err);
38556 + atomic_inc_unchecked(&vcc->stats->rx_err);
38557 recycle_iovec_rx_bufs(card, (struct iovec *)iovb->data,
38558 NS_PRV_IOVCNT(iovb));
38559 vc->rx_iov = NULL;
38560 @@ -2157,14 +2157,14 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38561 /* skb points to a small buffer */
38562 if (!atm_charge(vcc, skb->truesize)) {
38563 push_rxbufs(card, skb);
38564 - atomic_inc(&vcc->stats->rx_drop);
38565 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38566 } else {
38567 skb_put(skb, len);
38568 dequeue_sm_buf(card, skb);
38569 ATM_SKB(skb)->vcc = vcc;
38570 __net_timestamp(skb);
38571 vcc->push(vcc, skb);
38572 - atomic_inc(&vcc->stats->rx);
38573 + atomic_inc_unchecked(&vcc->stats->rx);
38574 }
38575 } else if (NS_PRV_IOVCNT(iovb) == 2) { /* One small plus one large buffer */
38576 struct sk_buff *sb;
38577 @@ -2175,14 +2175,14 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38578 if (len <= NS_SMBUFSIZE) {
38579 if (!atm_charge(vcc, sb->truesize)) {
38580 push_rxbufs(card, sb);
38581 - atomic_inc(&vcc->stats->rx_drop);
38582 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38583 } else {
38584 skb_put(sb, len);
38585 dequeue_sm_buf(card, sb);
38586 ATM_SKB(sb)->vcc = vcc;
38587 __net_timestamp(sb);
38588 vcc->push(vcc, sb);
38589 - atomic_inc(&vcc->stats->rx);
38590 + atomic_inc_unchecked(&vcc->stats->rx);
38591 }
38592
38593 push_rxbufs(card, skb);
38594 @@ -2191,7 +2191,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38595
38596 if (!atm_charge(vcc, skb->truesize)) {
38597 push_rxbufs(card, skb);
38598 - atomic_inc(&vcc->stats->rx_drop);
38599 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38600 } else {
38601 dequeue_lg_buf(card, skb);
38602 skb_push(skb, NS_SMBUFSIZE);
38603 @@ -2201,7 +2201,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38604 ATM_SKB(skb)->vcc = vcc;
38605 __net_timestamp(skb);
38606 vcc->push(vcc, skb);
38607 - atomic_inc(&vcc->stats->rx);
38608 + atomic_inc_unchecked(&vcc->stats->rx);
38609 }
38610
38611 push_rxbufs(card, sb);
38612 @@ -2222,7 +2222,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38613 printk
38614 ("nicstar%d: Out of huge buffers.\n",
38615 card->index);
38616 - atomic_inc(&vcc->stats->rx_drop);
38617 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38618 recycle_iovec_rx_bufs(card,
38619 (struct iovec *)
38620 iovb->data,
38621 @@ -2273,7 +2273,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38622 card->hbpool.count++;
38623 } else
38624 dev_kfree_skb_any(hb);
38625 - atomic_inc(&vcc->stats->rx_drop);
38626 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38627 } else {
38628 /* Copy the small buffer to the huge buffer */
38629 sb = (struct sk_buff *)iov->iov_base;
38630 @@ -2307,7 +2307,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38631 ATM_SKB(hb)->vcc = vcc;
38632 __net_timestamp(hb);
38633 vcc->push(vcc, hb);
38634 - atomic_inc(&vcc->stats->rx);
38635 + atomic_inc_unchecked(&vcc->stats->rx);
38636 }
38637 }
38638
38639 diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c
38640 index 3d7fb65..0f26393 100644
38641 --- a/drivers/atm/solos-pci.c
38642 +++ b/drivers/atm/solos-pci.c
38643 @@ -843,7 +843,7 @@ static void solos_bh(unsigned long card_arg)
38644 }
38645 atm_charge(vcc, skb->truesize);
38646 vcc->push(vcc, skb);
38647 - atomic_inc(&vcc->stats->rx);
38648 + atomic_inc_unchecked(&vcc->stats->rx);
38649 break;
38650
38651 case PKT_STATUS:
38652 @@ -1124,7 +1124,7 @@ static uint32_t fpga_tx(struct solos_card *card)
38653 vcc = SKB_CB(oldskb)->vcc;
38654
38655 if (vcc) {
38656 - atomic_inc(&vcc->stats->tx);
38657 + atomic_inc_unchecked(&vcc->stats->tx);
38658 solos_pop(vcc, oldskb);
38659 } else {
38660 dev_kfree_skb_irq(oldskb);
38661 diff --git a/drivers/atm/suni.c b/drivers/atm/suni.c
38662 index 0215934..ce9f5b1 100644
38663 --- a/drivers/atm/suni.c
38664 +++ b/drivers/atm/suni.c
38665 @@ -49,8 +49,8 @@ static DEFINE_SPINLOCK(sunis_lock);
38666
38667
38668 #define ADD_LIMITED(s,v) \
38669 - atomic_add((v),&stats->s); \
38670 - if (atomic_read(&stats->s) < 0) atomic_set(&stats->s,INT_MAX);
38671 + atomic_add_unchecked((v),&stats->s); \
38672 + if (atomic_read_unchecked(&stats->s) < 0) atomic_set_unchecked(&stats->s,INT_MAX);
38673
38674
38675 static void suni_hz(unsigned long from_timer)
38676 diff --git a/drivers/atm/uPD98402.c b/drivers/atm/uPD98402.c
38677 index 5120a96..e2572bd 100644
38678 --- a/drivers/atm/uPD98402.c
38679 +++ b/drivers/atm/uPD98402.c
38680 @@ -42,7 +42,7 @@ static int fetch_stats(struct atm_dev *dev,struct sonet_stats __user *arg,int ze
38681 struct sonet_stats tmp;
38682 int error = 0;
38683
38684 - atomic_add(GET(HECCT),&PRIV(dev)->sonet_stats.uncorr_hcs);
38685 + atomic_add_unchecked(GET(HECCT),&PRIV(dev)->sonet_stats.uncorr_hcs);
38686 sonet_copy_stats(&PRIV(dev)->sonet_stats,&tmp);
38687 if (arg) error = copy_to_user(arg,&tmp,sizeof(tmp));
38688 if (zero && !error) {
38689 @@ -161,9 +161,9 @@ static int uPD98402_ioctl(struct atm_dev *dev,unsigned int cmd,void __user *arg)
38690
38691
38692 #define ADD_LIMITED(s,v) \
38693 - { atomic_add(GET(v),&PRIV(dev)->sonet_stats.s); \
38694 - if (atomic_read(&PRIV(dev)->sonet_stats.s) < 0) \
38695 - atomic_set(&PRIV(dev)->sonet_stats.s,INT_MAX); }
38696 + { atomic_add_unchecked(GET(v),&PRIV(dev)->sonet_stats.s); \
38697 + if (atomic_read_unchecked(&PRIV(dev)->sonet_stats.s) < 0) \
38698 + atomic_set_unchecked(&PRIV(dev)->sonet_stats.s,INT_MAX); }
38699
38700
38701 static void stat_event(struct atm_dev *dev)
38702 @@ -194,7 +194,7 @@ static void uPD98402_int(struct atm_dev *dev)
38703 if (reason & uPD98402_INT_PFM) stat_event(dev);
38704 if (reason & uPD98402_INT_PCO) {
38705 (void) GET(PCOCR); /* clear interrupt cause */
38706 - atomic_add(GET(HECCT),
38707 + atomic_add_unchecked(GET(HECCT),
38708 &PRIV(dev)->sonet_stats.uncorr_hcs);
38709 }
38710 if ((reason & uPD98402_INT_RFO) &&
38711 @@ -222,9 +222,9 @@ static int uPD98402_start(struct atm_dev *dev)
38712 PUT(~(uPD98402_INT_PFM | uPD98402_INT_ALM | uPD98402_INT_RFO |
38713 uPD98402_INT_LOS),PIMR); /* enable them */
38714 (void) fetch_stats(dev,NULL,1); /* clear kernel counters */
38715 - atomic_set(&PRIV(dev)->sonet_stats.corr_hcs,-1);
38716 - atomic_set(&PRIV(dev)->sonet_stats.tx_cells,-1);
38717 - atomic_set(&PRIV(dev)->sonet_stats.rx_cells,-1);
38718 + atomic_set_unchecked(&PRIV(dev)->sonet_stats.corr_hcs,-1);
38719 + atomic_set_unchecked(&PRIV(dev)->sonet_stats.tx_cells,-1);
38720 + atomic_set_unchecked(&PRIV(dev)->sonet_stats.rx_cells,-1);
38721 return 0;
38722 }
38723
38724 diff --git a/drivers/atm/zatm.c b/drivers/atm/zatm.c
38725 index cecfb94..87009ec 100644
38726 --- a/drivers/atm/zatm.c
38727 +++ b/drivers/atm/zatm.c
38728 @@ -459,7 +459,7 @@ printk("dummy: 0x%08lx, 0x%08lx\n",dummy[0],dummy[1]);
38729 }
38730 if (!size) {
38731 dev_kfree_skb_irq(skb);
38732 - if (vcc) atomic_inc(&vcc->stats->rx_err);
38733 + if (vcc) atomic_inc_unchecked(&vcc->stats->rx_err);
38734 continue;
38735 }
38736 if (!atm_charge(vcc,skb->truesize)) {
38737 @@ -469,7 +469,7 @@ printk("dummy: 0x%08lx, 0x%08lx\n",dummy[0],dummy[1]);
38738 skb->len = size;
38739 ATM_SKB(skb)->vcc = vcc;
38740 vcc->push(vcc,skb);
38741 - atomic_inc(&vcc->stats->rx);
38742 + atomic_inc_unchecked(&vcc->stats->rx);
38743 }
38744 zout(pos & 0xffff,MTA(mbx));
38745 #if 0 /* probably a stupid idea */
38746 @@ -733,7 +733,7 @@ if (*ZATM_PRV_DSC(skb) != (uPD98401_TXPD_V | uPD98401_TXPD_DP |
38747 skb_queue_head(&zatm_vcc->backlog,skb);
38748 break;
38749 }
38750 - atomic_inc(&vcc->stats->tx);
38751 + atomic_inc_unchecked(&vcc->stats->tx);
38752 wake_up(&zatm_vcc->tx_wait);
38753 }
38754
38755 diff --git a/drivers/base/bus.c b/drivers/base/bus.c
38756 index 5005924..9fc06c4 100644
38757 --- a/drivers/base/bus.c
38758 +++ b/drivers/base/bus.c
38759 @@ -1141,7 +1141,7 @@ int subsys_interface_register(struct subsys_interface *sif)
38760 return -EINVAL;
38761
38762 mutex_lock(&subsys->p->mutex);
38763 - list_add_tail(&sif->node, &subsys->p->interfaces);
38764 + pax_list_add_tail((struct list_head *)&sif->node, &subsys->p->interfaces);
38765 if (sif->add_dev) {
38766 subsys_dev_iter_init(&iter, subsys, NULL, NULL);
38767 while ((dev = subsys_dev_iter_next(&iter)))
38768 @@ -1166,7 +1166,7 @@ void subsys_interface_unregister(struct subsys_interface *sif)
38769 subsys = sif->subsys;
38770
38771 mutex_lock(&subsys->p->mutex);
38772 - list_del_init(&sif->node);
38773 + pax_list_del_init((struct list_head *)&sif->node);
38774 if (sif->remove_dev) {
38775 subsys_dev_iter_init(&iter, subsys, NULL, NULL);
38776 while ((dev = subsys_dev_iter_next(&iter)))
38777 diff --git a/drivers/base/devres.c b/drivers/base/devres.c
38778 index 8fc654f..36e28e9 100644
38779 --- a/drivers/base/devres.c
38780 +++ b/drivers/base/devres.c
38781 @@ -476,7 +476,9 @@ static int remove_nodes(struct device *dev,
38782
38783 static int release_nodes(struct device *dev, struct list_head *first,
38784 struct list_head *end, unsigned long flags)
38785 - __releases(&dev->devres_lock)
38786 + __releases(&dev->devres_lock);
38787 +static int release_nodes(struct device *dev, struct list_head *first,
38788 + struct list_head *end, unsigned long flags)
38789 {
38790 LIST_HEAD(todo);
38791 int cnt;
38792 diff --git a/drivers/base/devtmpfs.c b/drivers/base/devtmpfs.c
38793 index 68f0314..ca2a609 100644
38794 --- a/drivers/base/devtmpfs.c
38795 +++ b/drivers/base/devtmpfs.c
38796 @@ -354,7 +354,7 @@ int devtmpfs_mount(const char *mntdir)
38797 if (!thread)
38798 return 0;
38799
38800 - err = sys_mount("devtmpfs", (char *)mntdir, "devtmpfs", MS_SILENT, NULL);
38801 + err = sys_mount((char __force_user *)"devtmpfs", (char __force_user *)mntdir, (char __force_user *)"devtmpfs", MS_SILENT, NULL);
38802 if (err)
38803 printk(KERN_INFO "devtmpfs: error mounting %i\n", err);
38804 else
38805 @@ -380,11 +380,11 @@ static int devtmpfsd(void *p)
38806 *err = sys_unshare(CLONE_NEWNS);
38807 if (*err)
38808 goto out;
38809 - *err = sys_mount("devtmpfs", "/", "devtmpfs", MS_SILENT, options);
38810 + *err = sys_mount((char __force_user *)"devtmpfs", (char __force_user *)"/", (char __force_user *)"devtmpfs", MS_SILENT, (char __force_user *)options);
38811 if (*err)
38812 goto out;
38813 - sys_chdir("/.."); /* will traverse into overmounted root */
38814 - sys_chroot(".");
38815 + sys_chdir((char __force_user *)"/.."); /* will traverse into overmounted root */
38816 + sys_chroot((char __force_user *)".");
38817 complete(&setup_done);
38818 while (1) {
38819 spin_lock(&req_lock);
38820 diff --git a/drivers/base/node.c b/drivers/base/node.c
38821 index 560751b..3a4847a 100644
38822 --- a/drivers/base/node.c
38823 +++ b/drivers/base/node.c
38824 @@ -627,7 +627,7 @@ static ssize_t print_nodes_state(enum node_states state, char *buf)
38825 struct node_attr {
38826 struct device_attribute attr;
38827 enum node_states state;
38828 -};
38829 +} __do_const;
38830
38831 static ssize_t show_node_state(struct device *dev,
38832 struct device_attribute *attr, char *buf)
38833 diff --git a/drivers/base/platform-msi.c b/drivers/base/platform-msi.c
38834 index 5df4575..986184b 100644
38835 --- a/drivers/base/platform-msi.c
38836 +++ b/drivers/base/platform-msi.c
38837 @@ -24,6 +24,8 @@
38838 #include <linux/msi.h>
38839 #include <linux/slab.h>
38840
38841 +#include <asm/pgtable.h>
38842 +
38843 #define DEV_ID_SHIFT 24
38844
38845 /*
38846 @@ -77,10 +79,12 @@ static void platform_msi_update_dom_ops(struct msi_domain_info *info)
38847
38848 BUG_ON(!ops);
38849
38850 + pax_open_kernel();
38851 if (ops->msi_init == NULL)
38852 - ops->msi_init = platform_msi_init;
38853 + *(void **)&ops->msi_init = platform_msi_init;
38854 if (ops->set_desc == NULL)
38855 - ops->set_desc = platform_msi_set_desc;
38856 + *(void **)&ops->set_desc = platform_msi_set_desc;
38857 + pax_close_kernel();
38858 }
38859
38860 static void platform_msi_write_msg(struct irq_data *data, struct msi_msg *msg)
38861 @@ -98,16 +102,18 @@ static void platform_msi_update_chip_ops(struct msi_domain_info *info)
38862 struct irq_chip *chip = info->chip;
38863
38864 BUG_ON(!chip);
38865 + pax_open_kernel();
38866 if (!chip->irq_mask)
38867 - chip->irq_mask = irq_chip_mask_parent;
38868 + *(void **)&chip->irq_mask = irq_chip_mask_parent;
38869 if (!chip->irq_unmask)
38870 - chip->irq_unmask = irq_chip_unmask_parent;
38871 + *(void **)&chip->irq_unmask = irq_chip_unmask_parent;
38872 if (!chip->irq_eoi)
38873 - chip->irq_eoi = irq_chip_eoi_parent;
38874 + *(void **)&chip->irq_eoi = irq_chip_eoi_parent;
38875 if (!chip->irq_set_affinity)
38876 - chip->irq_set_affinity = msi_domain_set_affinity;
38877 + *(void **)&chip->irq_set_affinity = msi_domain_set_affinity;
38878 if (!chip->irq_write_msi_msg)
38879 - chip->irq_write_msi_msg = platform_msi_write_msg;
38880 + *(void **)&chip->irq_write_msi_msg = platform_msi_write_msg;
38881 + pax_close_kernel();
38882 }
38883
38884 static void platform_msi_free_descs(struct device *dev)
38885 diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
38886 index 65f50ec..acab2a1 100644
38887 --- a/drivers/base/power/domain.c
38888 +++ b/drivers/base/power/domain.c
38889 @@ -1810,8 +1810,11 @@ int genpd_dev_pm_attach(struct device *dev)
38890 goto out;
38891 }
38892
38893 - dev->pm_domain->detach = genpd_dev_pm_detach;
38894 - dev->pm_domain->sync = genpd_dev_pm_sync;
38895 + pax_open_kernel();
38896 + *(void **)&dev->pm_domain->detach = genpd_dev_pm_detach;
38897 + *(void **)&dev->pm_domain->sync = genpd_dev_pm_sync;
38898 + pax_close_kernel();
38899 +
38900 ret = genpd_poweron(pd);
38901
38902 out:
38903 diff --git a/drivers/base/power/runtime.c b/drivers/base/power/runtime.c
38904 index e1a10a0..a6bc363 100644
38905 --- a/drivers/base/power/runtime.c
38906 +++ b/drivers/base/power/runtime.c
38907 @@ -263,8 +263,8 @@ static int rpm_check_suspend_allowed(struct device *dev)
38908 * @cb: Runtime PM callback to run.
38909 * @dev: Device to run the callback for.
38910 */
38911 +static int __rpm_callback(int (*cb)(struct device *), struct device *dev) __must_hold(&dev->power.lock);
38912 static int __rpm_callback(int (*cb)(struct device *), struct device *dev)
38913 - __releases(&dev->power.lock) __acquires(&dev->power.lock)
38914 {
38915 int retval;
38916
38917 @@ -412,8 +412,8 @@ static int rpm_callback(int (*cb)(struct device *), struct device *dev)
38918 *
38919 * This function must be called under dev->power.lock with interrupts disabled.
38920 */
38921 +static int rpm_suspend(struct device *dev, int rpmflags) __must_hold(&dev->power.lock);
38922 static int rpm_suspend(struct device *dev, int rpmflags)
38923 - __releases(&dev->power.lock) __acquires(&dev->power.lock)
38924 {
38925 int (*callback)(struct device *);
38926 struct device *parent = NULL;
38927 @@ -594,8 +594,8 @@ static int rpm_suspend(struct device *dev, int rpmflags)
38928 *
38929 * This function must be called under dev->power.lock with interrupts disabled.
38930 */
38931 +static int rpm_resume(struct device *dev, int rpmflags) __must_hold(&dev->power.lock);
38932 static int rpm_resume(struct device *dev, int rpmflags)
38933 - __releases(&dev->power.lock) __acquires(&dev->power.lock)
38934 {
38935 int (*callback)(struct device *);
38936 struct device *parent = NULL;
38937 diff --git a/drivers/base/power/sysfs.c b/drivers/base/power/sysfs.c
38938 index a7b4679..d302490 100644
38939 --- a/drivers/base/power/sysfs.c
38940 +++ b/drivers/base/power/sysfs.c
38941 @@ -181,7 +181,7 @@ static ssize_t rtpm_status_show(struct device *dev,
38942 return -EIO;
38943 }
38944 }
38945 - return sprintf(buf, p);
38946 + return sprintf(buf, "%s", p);
38947 }
38948
38949 static DEVICE_ATTR(runtime_status, 0444, rtpm_status_show, NULL);
38950 diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c
38951 index a1e0b9a..81fc106 100644
38952 --- a/drivers/base/power/wakeup.c
38953 +++ b/drivers/base/power/wakeup.c
38954 @@ -36,14 +36,14 @@ static bool pm_abort_suspend __read_mostly;
38955 * They need to be modified together atomically, so it's better to use one
38956 * atomic variable to hold them both.
38957 */
38958 -static atomic_t combined_event_count = ATOMIC_INIT(0);
38959 +static atomic_unchecked_t combined_event_count = ATOMIC_INIT(0);
38960
38961 #define IN_PROGRESS_BITS (sizeof(int) * 4)
38962 #define MAX_IN_PROGRESS ((1 << IN_PROGRESS_BITS) - 1)
38963
38964 static void split_counters(unsigned int *cnt, unsigned int *inpr)
38965 {
38966 - unsigned int comb = atomic_read(&combined_event_count);
38967 + unsigned int comb = atomic_read_unchecked(&combined_event_count);
38968
38969 *cnt = (comb >> IN_PROGRESS_BITS);
38970 *inpr = comb & MAX_IN_PROGRESS;
38971 @@ -540,7 +540,7 @@ static void wakeup_source_activate(struct wakeup_source *ws)
38972 ws->start_prevent_time = ws->last_time;
38973
38974 /* Increment the counter of events in progress. */
38975 - cec = atomic_inc_return(&combined_event_count);
38976 + cec = atomic_inc_return_unchecked(&combined_event_count);
38977
38978 trace_wakeup_source_activate(ws->name, cec);
38979 }
38980 @@ -666,7 +666,7 @@ static void wakeup_source_deactivate(struct wakeup_source *ws)
38981 * Increment the counter of registered wakeup events and decrement the
38982 * couter of wakeup events in progress simultaneously.
38983 */
38984 - cec = atomic_add_return(MAX_IN_PROGRESS, &combined_event_count);
38985 + cec = atomic_add_return_unchecked(MAX_IN_PROGRESS, &combined_event_count);
38986 trace_wakeup_source_deactivate(ws->name, cec);
38987
38988 split_counters(&cnt, &inpr);
38989 diff --git a/drivers/base/regmap/regmap-debugfs.c b/drivers/base/regmap/regmap-debugfs.c
38990 index 3f0a7e2..8195e50 100644
38991 --- a/drivers/base/regmap/regmap-debugfs.c
38992 +++ b/drivers/base/regmap/regmap-debugfs.c
38993 @@ -401,7 +401,7 @@ static ssize_t regmap_access_read_file(struct file *file,
38994 char __user *user_buf, size_t count,
38995 loff_t *ppos)
38996 {
38997 - int reg_len, tot_len;
38998 + size_t reg_len, tot_len;
38999 size_t buf_pos = 0;
39000 loff_t p = 0;
39001 ssize_t ret;
39002 @@ -434,7 +434,7 @@ static ssize_t regmap_access_read_file(struct file *file,
39003 /* Format the register */
39004 snprintf(buf + buf_pos, count - buf_pos,
39005 "%.*x: %c %c %c %c\n",
39006 - reg_len, i,
39007 + (int)reg_len, i,
39008 regmap_readable(map, i) ? 'y' : 'n',
39009 regmap_writeable(map, i) ? 'y' : 'n',
39010 regmap_volatile(map, i) ? 'y' : 'n',
39011 diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c
39012 index 4ac63c0..9007855 100644
39013 --- a/drivers/base/regmap/regmap.c
39014 +++ b/drivers/base/regmap/regmap.c
39015 @@ -344,8 +344,8 @@ static void regmap_unlock_mutex(void *__map)
39016 mutex_unlock(&map->mutex);
39017 }
39018
39019 +static void regmap_lock_spinlock(void *__map) __acquires(&map->spinlock);
39020 static void regmap_lock_spinlock(void *__map)
39021 -__acquires(&map->spinlock)
39022 {
39023 struct regmap *map = __map;
39024 unsigned long flags;
39025 @@ -354,8 +354,8 @@ __acquires(&map->spinlock)
39026 map->spinlock_flags = flags;
39027 }
39028
39029 +static void regmap_unlock_spinlock(void *__map) __releases(&map->spinlock);
39030 static void regmap_unlock_spinlock(void *__map)
39031 -__releases(&map->spinlock)
39032 {
39033 struct regmap *map = __map;
39034 spin_unlock_irqrestore(&map->spinlock, map->spinlock_flags);
39035 diff --git a/drivers/base/syscore.c b/drivers/base/syscore.c
39036 index 8d98a32..61d3165 100644
39037 --- a/drivers/base/syscore.c
39038 +++ b/drivers/base/syscore.c
39039 @@ -22,7 +22,7 @@ static DEFINE_MUTEX(syscore_ops_lock);
39040 void register_syscore_ops(struct syscore_ops *ops)
39041 {
39042 mutex_lock(&syscore_ops_lock);
39043 - list_add_tail(&ops->node, &syscore_ops_list);
39044 + pax_list_add_tail((struct list_head *)&ops->node, &syscore_ops_list);
39045 mutex_unlock(&syscore_ops_lock);
39046 }
39047 EXPORT_SYMBOL_GPL(register_syscore_ops);
39048 @@ -34,7 +34,7 @@ EXPORT_SYMBOL_GPL(register_syscore_ops);
39049 void unregister_syscore_ops(struct syscore_ops *ops)
39050 {
39051 mutex_lock(&syscore_ops_lock);
39052 - list_del(&ops->node);
39053 + pax_list_del((struct list_head *)&ops->node);
39054 mutex_unlock(&syscore_ops_lock);
39055 }
39056 EXPORT_SYMBOL_GPL(unregister_syscore_ops);
39057 diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
39058 index 0422c47..b222c7a 100644
39059 --- a/drivers/block/cciss.c
39060 +++ b/drivers/block/cciss.c
39061 @@ -3024,7 +3024,7 @@ static void start_io(ctlr_info_t *h)
39062 while (!list_empty(&h->reqQ)) {
39063 c = list_entry(h->reqQ.next, CommandList_struct, list);
39064 /* can't do anything if fifo is full */
39065 - if ((h->access.fifo_full(h))) {
39066 + if ((h->access->fifo_full(h))) {
39067 dev_warn(&h->pdev->dev, "fifo full\n");
39068 break;
39069 }
39070 @@ -3034,7 +3034,7 @@ static void start_io(ctlr_info_t *h)
39071 h->Qdepth--;
39072
39073 /* Tell the controller execute command */
39074 - h->access.submit_command(h, c);
39075 + h->access->submit_command(h, c);
39076
39077 /* Put job onto the completed Q */
39078 addQ(&h->cmpQ, c);
39079 @@ -3460,17 +3460,17 @@ startio:
39080
39081 static inline unsigned long get_next_completion(ctlr_info_t *h)
39082 {
39083 - return h->access.command_completed(h);
39084 + return h->access->command_completed(h);
39085 }
39086
39087 static inline int interrupt_pending(ctlr_info_t *h)
39088 {
39089 - return h->access.intr_pending(h);
39090 + return h->access->intr_pending(h);
39091 }
39092
39093 static inline long interrupt_not_for_us(ctlr_info_t *h)
39094 {
39095 - return ((h->access.intr_pending(h) == 0) ||
39096 + return ((h->access->intr_pending(h) == 0) ||
39097 (h->interrupts_enabled == 0));
39098 }
39099
39100 @@ -3503,7 +3503,7 @@ static inline u32 next_command(ctlr_info_t *h)
39101 u32 a;
39102
39103 if (unlikely(!(h->transMethod & CFGTBL_Trans_Performant)))
39104 - return h->access.command_completed(h);
39105 + return h->access->command_completed(h);
39106
39107 if ((*(h->reply_pool_head) & 1) == (h->reply_pool_wraparound)) {
39108 a = *(h->reply_pool_head); /* Next cmd in ring buffer */
39109 @@ -4060,7 +4060,7 @@ static void cciss_put_controller_into_performant_mode(ctlr_info_t *h)
39110 trans_support & CFGTBL_Trans_use_short_tags);
39111
39112 /* Change the access methods to the performant access methods */
39113 - h->access = SA5_performant_access;
39114 + h->access = &SA5_performant_access;
39115 h->transMethod = CFGTBL_Trans_Performant;
39116
39117 return;
39118 @@ -4334,7 +4334,7 @@ static int cciss_pci_init(ctlr_info_t *h)
39119 if (prod_index < 0)
39120 return -ENODEV;
39121 h->product_name = products[prod_index].product_name;
39122 - h->access = *(products[prod_index].access);
39123 + h->access = products[prod_index].access;
39124
39125 if (cciss_board_disabled(h)) {
39126 dev_warn(&h->pdev->dev, "controller appears to be disabled\n");
39127 @@ -5065,7 +5065,7 @@ reinit_after_soft_reset:
39128 }
39129
39130 /* make sure the board interrupts are off */
39131 - h->access.set_intr_mask(h, CCISS_INTR_OFF);
39132 + h->access->set_intr_mask(h, CCISS_INTR_OFF);
39133 rc = cciss_request_irq(h, do_cciss_msix_intr, do_cciss_intx);
39134 if (rc)
39135 goto clean2;
39136 @@ -5115,7 +5115,7 @@ reinit_after_soft_reset:
39137 * fake ones to scoop up any residual completions.
39138 */
39139 spin_lock_irqsave(&h->lock, flags);
39140 - h->access.set_intr_mask(h, CCISS_INTR_OFF);
39141 + h->access->set_intr_mask(h, CCISS_INTR_OFF);
39142 spin_unlock_irqrestore(&h->lock, flags);
39143 free_irq(h->intr[h->intr_mode], h);
39144 rc = cciss_request_irq(h, cciss_msix_discard_completions,
39145 @@ -5135,9 +5135,9 @@ reinit_after_soft_reset:
39146 dev_info(&h->pdev->dev, "Board READY.\n");
39147 dev_info(&h->pdev->dev,
39148 "Waiting for stale completions to drain.\n");
39149 - h->access.set_intr_mask(h, CCISS_INTR_ON);
39150 + h->access->set_intr_mask(h, CCISS_INTR_ON);
39151 msleep(10000);
39152 - h->access.set_intr_mask(h, CCISS_INTR_OFF);
39153 + h->access->set_intr_mask(h, CCISS_INTR_OFF);
39154
39155 rc = controller_reset_failed(h->cfgtable);
39156 if (rc)
39157 @@ -5160,7 +5160,7 @@ reinit_after_soft_reset:
39158 cciss_scsi_setup(h);
39159
39160 /* Turn the interrupts on so we can service requests */
39161 - h->access.set_intr_mask(h, CCISS_INTR_ON);
39162 + h->access->set_intr_mask(h, CCISS_INTR_ON);
39163
39164 /* Get the firmware version */
39165 inq_buff = kzalloc(sizeof(InquiryData_struct), GFP_KERNEL);
39166 @@ -5232,7 +5232,7 @@ static void cciss_shutdown(struct pci_dev *pdev)
39167 kfree(flush_buf);
39168 if (return_code != IO_OK)
39169 dev_warn(&h->pdev->dev, "Error flushing cache\n");
39170 - h->access.set_intr_mask(h, CCISS_INTR_OFF);
39171 + h->access->set_intr_mask(h, CCISS_INTR_OFF);
39172 free_irq(h->intr[h->intr_mode], h);
39173 }
39174
39175 diff --git a/drivers/block/cciss.h b/drivers/block/cciss.h
39176 index 7fda30e..2f27946 100644
39177 --- a/drivers/block/cciss.h
39178 +++ b/drivers/block/cciss.h
39179 @@ -101,7 +101,7 @@ struct ctlr_info
39180 /* information about each logical volume */
39181 drive_info_struct *drv[CISS_MAX_LUN];
39182
39183 - struct access_method access;
39184 + struct access_method *access;
39185
39186 /* queue and queue Info */
39187 struct list_head reqQ;
39188 @@ -402,27 +402,27 @@ static bool SA5_performant_intr_pending(ctlr_info_t *h)
39189 }
39190
39191 static struct access_method SA5_access = {
39192 - SA5_submit_command,
39193 - SA5_intr_mask,
39194 - SA5_fifo_full,
39195 - SA5_intr_pending,
39196 - SA5_completed,
39197 + .submit_command = SA5_submit_command,
39198 + .set_intr_mask = SA5_intr_mask,
39199 + .fifo_full = SA5_fifo_full,
39200 + .intr_pending = SA5_intr_pending,
39201 + .command_completed = SA5_completed,
39202 };
39203
39204 static struct access_method SA5B_access = {
39205 - SA5_submit_command,
39206 - SA5B_intr_mask,
39207 - SA5_fifo_full,
39208 - SA5B_intr_pending,
39209 - SA5_completed,
39210 + .submit_command = SA5_submit_command,
39211 + .set_intr_mask = SA5B_intr_mask,
39212 + .fifo_full = SA5_fifo_full,
39213 + .intr_pending = SA5B_intr_pending,
39214 + .command_completed = SA5_completed,
39215 };
39216
39217 static struct access_method SA5_performant_access = {
39218 - SA5_submit_command,
39219 - SA5_performant_intr_mask,
39220 - SA5_fifo_full,
39221 - SA5_performant_intr_pending,
39222 - SA5_performant_completed,
39223 + .submit_command = SA5_submit_command,
39224 + .set_intr_mask = SA5_performant_intr_mask,
39225 + .fifo_full = SA5_fifo_full,
39226 + .intr_pending = SA5_performant_intr_pending,
39227 + .command_completed = SA5_performant_completed,
39228 };
39229
39230 struct board_type {
39231 diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c
39232 index f749df9..5f8b9c4 100644
39233 --- a/drivers/block/cpqarray.c
39234 +++ b/drivers/block/cpqarray.c
39235 @@ -404,7 +404,7 @@ static int cpqarray_register_ctlr(int i, struct pci_dev *pdev)
39236 if (register_blkdev(COMPAQ_SMART2_MAJOR+i, hba[i]->devname)) {
39237 goto Enomem4;
39238 }
39239 - hba[i]->access.set_intr_mask(hba[i], 0);
39240 + hba[i]->access->set_intr_mask(hba[i], 0);
39241 if (request_irq(hba[i]->intr, do_ida_intr, IRQF_SHARED,
39242 hba[i]->devname, hba[i]))
39243 {
39244 @@ -459,7 +459,7 @@ static int cpqarray_register_ctlr(int i, struct pci_dev *pdev)
39245 add_timer(&hba[i]->timer);
39246
39247 /* Enable IRQ now that spinlock and rate limit timer are set up */
39248 - hba[i]->access.set_intr_mask(hba[i], FIFO_NOT_EMPTY);
39249 + hba[i]->access->set_intr_mask(hba[i], FIFO_NOT_EMPTY);
39250
39251 for(j=0; j<NWD; j++) {
39252 struct gendisk *disk = ida_gendisk[i][j];
39253 @@ -694,7 +694,7 @@ DBGINFO(
39254 for(i=0; i<NR_PRODUCTS; i++) {
39255 if (board_id == products[i].board_id) {
39256 c->product_name = products[i].product_name;
39257 - c->access = *(products[i].access);
39258 + c->access = products[i].access;
39259 break;
39260 }
39261 }
39262 @@ -792,7 +792,7 @@ static int cpqarray_eisa_detect(void)
39263 hba[ctlr]->intr = intr;
39264 sprintf(hba[ctlr]->devname, "ida%d", nr_ctlr);
39265 hba[ctlr]->product_name = products[j].product_name;
39266 - hba[ctlr]->access = *(products[j].access);
39267 + hba[ctlr]->access = products[j].access;
39268 hba[ctlr]->ctlr = ctlr;
39269 hba[ctlr]->board_id = board_id;
39270 hba[ctlr]->pci_dev = NULL; /* not PCI */
39271 @@ -978,7 +978,7 @@ static void start_io(ctlr_info_t *h)
39272
39273 while((c = h->reqQ) != NULL) {
39274 /* Can't do anything if we're busy */
39275 - if (h->access.fifo_full(h) == 0)
39276 + if (h->access->fifo_full(h) == 0)
39277 return;
39278
39279 /* Get the first entry from the request Q */
39280 @@ -986,7 +986,7 @@ static void start_io(ctlr_info_t *h)
39281 h->Qdepth--;
39282
39283 /* Tell the controller to do our bidding */
39284 - h->access.submit_command(h, c);
39285 + h->access->submit_command(h, c);
39286
39287 /* Get onto the completion Q */
39288 addQ(&h->cmpQ, c);
39289 @@ -1048,7 +1048,7 @@ static irqreturn_t do_ida_intr(int irq, void *dev_id)
39290 unsigned long flags;
39291 __u32 a,a1;
39292
39293 - istat = h->access.intr_pending(h);
39294 + istat = h->access->intr_pending(h);
39295 /* Is this interrupt for us? */
39296 if (istat == 0)
39297 return IRQ_NONE;
39298 @@ -1059,7 +1059,7 @@ static irqreturn_t do_ida_intr(int irq, void *dev_id)
39299 */
39300 spin_lock_irqsave(IDA_LOCK(h->ctlr), flags);
39301 if (istat & FIFO_NOT_EMPTY) {
39302 - while((a = h->access.command_completed(h))) {
39303 + while((a = h->access->command_completed(h))) {
39304 a1 = a; a &= ~3;
39305 if ((c = h->cmpQ) == NULL)
39306 {
39307 @@ -1448,11 +1448,11 @@ static int sendcmd(
39308 /*
39309 * Disable interrupt
39310 */
39311 - info_p->access.set_intr_mask(info_p, 0);
39312 + info_p->access->set_intr_mask(info_p, 0);
39313 /* Make sure there is room in the command FIFO */
39314 /* Actually it should be completely empty at this time. */
39315 for (i = 200000; i > 0; i--) {
39316 - temp = info_p->access.fifo_full(info_p);
39317 + temp = info_p->access->fifo_full(info_p);
39318 if (temp != 0) {
39319 break;
39320 }
39321 @@ -1465,7 +1465,7 @@ DBG(
39322 /*
39323 * Send the cmd
39324 */
39325 - info_p->access.submit_command(info_p, c);
39326 + info_p->access->submit_command(info_p, c);
39327 complete = pollcomplete(ctlr);
39328
39329 pci_unmap_single(info_p->pci_dev, (dma_addr_t) c->req.sg[0].addr,
39330 @@ -1548,9 +1548,9 @@ static int revalidate_allvol(ctlr_info_t *host)
39331 * we check the new geometry. Then turn interrupts back on when
39332 * we're done.
39333 */
39334 - host->access.set_intr_mask(host, 0);
39335 + host->access->set_intr_mask(host, 0);
39336 getgeometry(ctlr);
39337 - host->access.set_intr_mask(host, FIFO_NOT_EMPTY);
39338 + host->access->set_intr_mask(host, FIFO_NOT_EMPTY);
39339
39340 for(i=0; i<NWD; i++) {
39341 struct gendisk *disk = ida_gendisk[ctlr][i];
39342 @@ -1590,7 +1590,7 @@ static int pollcomplete(int ctlr)
39343 /* Wait (up to 2 seconds) for a command to complete */
39344
39345 for (i = 200000; i > 0; i--) {
39346 - done = hba[ctlr]->access.command_completed(hba[ctlr]);
39347 + done = hba[ctlr]->access->command_completed(hba[ctlr]);
39348 if (done == 0) {
39349 udelay(10); /* a short fixed delay */
39350 } else
39351 diff --git a/drivers/block/cpqarray.h b/drivers/block/cpqarray.h
39352 index be73e9d..7fbf140 100644
39353 --- a/drivers/block/cpqarray.h
39354 +++ b/drivers/block/cpqarray.h
39355 @@ -99,7 +99,7 @@ struct ctlr_info {
39356 drv_info_t drv[NWD];
39357 struct proc_dir_entry *proc;
39358
39359 - struct access_method access;
39360 + struct access_method *access;
39361
39362 cmdlist_t *reqQ;
39363 cmdlist_t *cmpQ;
39364 diff --git a/drivers/block/drbd/drbd_bitmap.c b/drivers/block/drbd/drbd_bitmap.c
39365 index 9462d27..4b9f997 100644
39366 --- a/drivers/block/drbd/drbd_bitmap.c
39367 +++ b/drivers/block/drbd/drbd_bitmap.c
39368 @@ -1027,7 +1027,7 @@ static void bm_page_io_async(struct drbd_bm_aio_ctx *ctx, int page_nr) __must_ho
39369 submit_bio(rw, bio);
39370 /* this should not count as user activity and cause the
39371 * resync to throttle -- see drbd_rs_should_slow_down(). */
39372 - atomic_add(len >> 9, &device->rs_sect_ev);
39373 + atomic_add_unchecked(len >> 9, &device->rs_sect_ev);
39374 }
39375 }
39376
39377 diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h
39378 index e66d453..edaae71 100644
39379 --- a/drivers/block/drbd/drbd_int.h
39380 +++ b/drivers/block/drbd/drbd_int.h
39381 @@ -386,7 +386,7 @@ struct drbd_epoch {
39382 struct drbd_connection *connection;
39383 struct list_head list;
39384 unsigned int barrier_nr;
39385 - atomic_t epoch_size; /* increased on every request added. */
39386 + atomic_unchecked_t epoch_size; /* increased on every request added. */
39387 atomic_t active; /* increased on every req. added, and dec on every finished. */
39388 unsigned long flags;
39389 };
39390 @@ -947,7 +947,7 @@ struct drbd_device {
39391 unsigned int al_tr_number;
39392 int al_tr_cycle;
39393 wait_queue_head_t seq_wait;
39394 - atomic_t packet_seq;
39395 + atomic_unchecked_t packet_seq;
39396 unsigned int peer_seq;
39397 spinlock_t peer_seq_lock;
39398 unsigned long comm_bm_set; /* communicated number of set bits. */
39399 @@ -956,8 +956,8 @@ struct drbd_device {
39400 struct mutex own_state_mutex;
39401 struct mutex *state_mutex; /* either own_state_mutex or first_peer_device(device)->connection->cstate_mutex */
39402 char congestion_reason; /* Why we where congested... */
39403 - atomic_t rs_sect_in; /* for incoming resync data rate, SyncTarget */
39404 - atomic_t rs_sect_ev; /* for submitted resync data rate, both */
39405 + atomic_unchecked_t rs_sect_in; /* for incoming resync data rate, SyncTarget */
39406 + atomic_unchecked_t rs_sect_ev; /* for submitted resync data rate, both */
39407 int rs_last_sect_ev; /* counter to compare with */
39408 int rs_last_events; /* counter of read or write "events" (unit sectors)
39409 * on the lower level device when we last looked. */
39410 diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
39411 index 74d97f4..bb5a486 100644
39412 --- a/drivers/block/drbd/drbd_main.c
39413 +++ b/drivers/block/drbd/drbd_main.c
39414 @@ -1328,7 +1328,7 @@ static int _drbd_send_ack(struct drbd_peer_device *peer_device, enum drbd_packet
39415 p->sector = sector;
39416 p->block_id = block_id;
39417 p->blksize = blksize;
39418 - p->seq_num = cpu_to_be32(atomic_inc_return(&peer_device->device->packet_seq));
39419 + p->seq_num = cpu_to_be32(atomic_inc_return_unchecked(&peer_device->device->packet_seq));
39420 return drbd_send_command(peer_device, sock, cmd, sizeof(*p), NULL, 0);
39421 }
39422
39423 @@ -1634,7 +1634,7 @@ int drbd_send_dblock(struct drbd_peer_device *peer_device, struct drbd_request *
39424 return -EIO;
39425 p->sector = cpu_to_be64(req->i.sector);
39426 p->block_id = (unsigned long)req;
39427 - p->seq_num = cpu_to_be32(atomic_inc_return(&device->packet_seq));
39428 + p->seq_num = cpu_to_be32(atomic_inc_return_unchecked(&device->packet_seq));
39429 dp_flags = bio_flags_to_wire(peer_device->connection, req->master_bio->bi_rw);
39430 if (device->state.conn >= C_SYNC_SOURCE &&
39431 device->state.conn <= C_PAUSED_SYNC_T)
39432 @@ -1915,8 +1915,8 @@ void drbd_init_set_defaults(struct drbd_device *device)
39433 atomic_set(&device->unacked_cnt, 0);
39434 atomic_set(&device->local_cnt, 0);
39435 atomic_set(&device->pp_in_use_by_net, 0);
39436 - atomic_set(&device->rs_sect_in, 0);
39437 - atomic_set(&device->rs_sect_ev, 0);
39438 + atomic_set_unchecked(&device->rs_sect_in, 0);
39439 + atomic_set_unchecked(&device->rs_sect_ev, 0);
39440 atomic_set(&device->ap_in_flight, 0);
39441 atomic_set(&device->md_io.in_use, 0);
39442
39443 @@ -2683,8 +2683,8 @@ void drbd_destroy_connection(struct kref *kref)
39444 struct drbd_connection *connection = container_of(kref, struct drbd_connection, kref);
39445 struct drbd_resource *resource = connection->resource;
39446
39447 - if (atomic_read(&connection->current_epoch->epoch_size) != 0)
39448 - drbd_err(connection, "epoch_size:%d\n", atomic_read(&connection->current_epoch->epoch_size));
39449 + if (atomic_read_unchecked(&connection->current_epoch->epoch_size) != 0)
39450 + drbd_err(connection, "epoch_size:%d\n", atomic_read_unchecked(&connection->current_epoch->epoch_size));
39451 kfree(connection->current_epoch);
39452
39453 idr_destroy(&connection->peer_devices);
39454 diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
39455 index e80cbef..42533f1 100644
39456 --- a/drivers/block/drbd/drbd_nl.c
39457 +++ b/drivers/block/drbd/drbd_nl.c
39458 @@ -3637,13 +3637,13 @@ finish:
39459
39460 void drbd_bcast_event(struct drbd_device *device, const struct sib_info *sib)
39461 {
39462 - static atomic_t drbd_genl_seq = ATOMIC_INIT(2); /* two. */
39463 + static atomic_unchecked_t drbd_genl_seq = ATOMIC_INIT(2); /* two. */
39464 struct sk_buff *msg;
39465 struct drbd_genlmsghdr *d_out;
39466 unsigned seq;
39467 int err = -ENOMEM;
39468
39469 - seq = atomic_inc_return(&drbd_genl_seq);
39470 + seq = atomic_inc_return_unchecked(&drbd_genl_seq);
39471 msg = genlmsg_new(NLMSG_GOODSIZE, GFP_NOIO);
39472 if (!msg)
39473 goto failed;
39474 diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c
39475 index b4b5680..4ae7b27 100644
39476 --- a/drivers/block/drbd/drbd_receiver.c
39477 +++ b/drivers/block/drbd/drbd_receiver.c
39478 @@ -871,7 +871,7 @@ int drbd_connected(struct drbd_peer_device *peer_device)
39479 struct drbd_device *device = peer_device->device;
39480 int err;
39481
39482 - atomic_set(&device->packet_seq, 0);
39483 + atomic_set_unchecked(&device->packet_seq, 0);
39484 device->peer_seq = 0;
39485
39486 device->state_mutex = peer_device->connection->agreed_pro_version < 100 ?
39487 @@ -1234,7 +1234,7 @@ static enum finish_epoch drbd_may_finish_epoch(struct drbd_connection *connectio
39488 do {
39489 next_epoch = NULL;
39490
39491 - epoch_size = atomic_read(&epoch->epoch_size);
39492 + epoch_size = atomic_read_unchecked(&epoch->epoch_size);
39493
39494 switch (ev & ~EV_CLEANUP) {
39495 case EV_PUT:
39496 @@ -1274,7 +1274,7 @@ static enum finish_epoch drbd_may_finish_epoch(struct drbd_connection *connectio
39497 rv = FE_DESTROYED;
39498 } else {
39499 epoch->flags = 0;
39500 - atomic_set(&epoch->epoch_size, 0);
39501 + atomic_set_unchecked(&epoch->epoch_size, 0);
39502 /* atomic_set(&epoch->active, 0); is already zero */
39503 if (rv == FE_STILL_LIVE)
39504 rv = FE_RECYCLED;
39505 @@ -1551,7 +1551,7 @@ static int receive_Barrier(struct drbd_connection *connection, struct packet_inf
39506 conn_wait_active_ee_empty(connection);
39507 drbd_flush(connection);
39508
39509 - if (atomic_read(&connection->current_epoch->epoch_size)) {
39510 + if (atomic_read_unchecked(&connection->current_epoch->epoch_size)) {
39511 epoch = kmalloc(sizeof(struct drbd_epoch), GFP_NOIO);
39512 if (epoch)
39513 break;
39514 @@ -1565,11 +1565,11 @@ static int receive_Barrier(struct drbd_connection *connection, struct packet_inf
39515 }
39516
39517 epoch->flags = 0;
39518 - atomic_set(&epoch->epoch_size, 0);
39519 + atomic_set_unchecked(&epoch->epoch_size, 0);
39520 atomic_set(&epoch->active, 0);
39521
39522 spin_lock(&connection->epoch_lock);
39523 - if (atomic_read(&connection->current_epoch->epoch_size)) {
39524 + if (atomic_read_unchecked(&connection->current_epoch->epoch_size)) {
39525 list_add(&epoch->list, &connection->current_epoch->list);
39526 connection->current_epoch = epoch;
39527 connection->epochs++;
39528 @@ -1781,7 +1781,9 @@ static int e_end_resync_block(struct drbd_work *w, int unused)
39529 }
39530
39531 static int recv_resync_read(struct drbd_peer_device *peer_device, sector_t sector,
39532 - struct packet_info *pi) __releases(local)
39533 + struct packet_info *pi) __releases(local);
39534 +static int recv_resync_read(struct drbd_peer_device *peer_device, sector_t sector,
39535 + struct packet_info *pi)
39536 {
39537 struct drbd_device *device = peer_device->device;
39538 struct drbd_peer_request *peer_req;
39539 @@ -1803,7 +1805,7 @@ static int recv_resync_read(struct drbd_peer_device *peer_device, sector_t secto
39540 list_add_tail(&peer_req->w.list, &device->sync_ee);
39541 spin_unlock_irq(&device->resource->req_lock);
39542
39543 - atomic_add(pi->size >> 9, &device->rs_sect_ev);
39544 + atomic_add_unchecked(pi->size >> 9, &device->rs_sect_ev);
39545 if (drbd_submit_peer_request(device, peer_req, WRITE, DRBD_FAULT_RS_WR) == 0)
39546 return 0;
39547
39548 @@ -1901,7 +1903,7 @@ static int receive_RSDataReply(struct drbd_connection *connection, struct packet
39549 drbd_send_ack_dp(peer_device, P_NEG_ACK, p, pi->size);
39550 }
39551
39552 - atomic_add(pi->size >> 9, &device->rs_sect_in);
39553 + atomic_add_unchecked(pi->size >> 9, &device->rs_sect_in);
39554
39555 return err;
39556 }
39557 @@ -2291,7 +2293,7 @@ static int receive_Data(struct drbd_connection *connection, struct packet_info *
39558
39559 err = wait_for_and_update_peer_seq(peer_device, peer_seq);
39560 drbd_send_ack_dp(peer_device, P_NEG_ACK, p, pi->size);
39561 - atomic_inc(&connection->current_epoch->epoch_size);
39562 + atomic_inc_unchecked(&connection->current_epoch->epoch_size);
39563 err2 = drbd_drain_block(peer_device, pi->size);
39564 if (!err)
39565 err = err2;
39566 @@ -2335,7 +2337,7 @@ static int receive_Data(struct drbd_connection *connection, struct packet_info *
39567
39568 spin_lock(&connection->epoch_lock);
39569 peer_req->epoch = connection->current_epoch;
39570 - atomic_inc(&peer_req->epoch->epoch_size);
39571 + atomic_inc_unchecked(&peer_req->epoch->epoch_size);
39572 atomic_inc(&peer_req->epoch->active);
39573 spin_unlock(&connection->epoch_lock);
39574
39575 @@ -2480,7 +2482,7 @@ bool drbd_rs_c_min_rate_throttle(struct drbd_device *device)
39576
39577 curr_events = (int)part_stat_read(&disk->part0, sectors[0]) +
39578 (int)part_stat_read(&disk->part0, sectors[1]) -
39579 - atomic_read(&device->rs_sect_ev);
39580 + atomic_read_unchecked(&device->rs_sect_ev);
39581
39582 if (atomic_read(&device->ap_actlog_cnt)
39583 || curr_events - device->rs_last_events > 64) {
39584 @@ -2619,7 +2621,7 @@ static int receive_DataRequest(struct drbd_connection *connection, struct packet
39585 device->use_csums = true;
39586 } else if (pi->cmd == P_OV_REPLY) {
39587 /* track progress, we may need to throttle */
39588 - atomic_add(size >> 9, &device->rs_sect_in);
39589 + atomic_add_unchecked(size >> 9, &device->rs_sect_in);
39590 peer_req->w.cb = w_e_end_ov_reply;
39591 dec_rs_pending(device);
39592 /* drbd_rs_begin_io done when we sent this request,
39593 @@ -2692,7 +2694,7 @@ static int receive_DataRequest(struct drbd_connection *connection, struct packet
39594 goto out_free_e;
39595
39596 submit_for_resync:
39597 - atomic_add(size >> 9, &device->rs_sect_ev);
39598 + atomic_add_unchecked(size >> 9, &device->rs_sect_ev);
39599
39600 submit:
39601 update_receiver_timing_details(connection, drbd_submit_peer_request);
39602 @@ -4565,7 +4567,7 @@ struct data_cmd {
39603 int expect_payload;
39604 size_t pkt_size;
39605 int (*fn)(struct drbd_connection *, struct packet_info *);
39606 -};
39607 +} __do_const;
39608
39609 static struct data_cmd drbd_cmd_handler[] = {
39610 [P_DATA] = { 1, sizeof(struct p_data), receive_Data },
39611 @@ -4679,7 +4681,7 @@ static void conn_disconnect(struct drbd_connection *connection)
39612 if (!list_empty(&connection->current_epoch->list))
39613 drbd_err(connection, "ASSERTION FAILED: connection->current_epoch->list not empty\n");
39614 /* ok, no more ee's on the fly, it is safe to reset the epoch_size */
39615 - atomic_set(&connection->current_epoch->epoch_size, 0);
39616 + atomic_set_unchecked(&connection->current_epoch->epoch_size, 0);
39617 connection->send.seen_any_write_yet = false;
39618
39619 drbd_info(connection, "Connection closed\n");
39620 @@ -5183,7 +5185,7 @@ static int got_IsInSync(struct drbd_connection *connection, struct packet_info *
39621 put_ldev(device);
39622 }
39623 dec_rs_pending(device);
39624 - atomic_add(blksize >> 9, &device->rs_sect_in);
39625 + atomic_add_unchecked(blksize >> 9, &device->rs_sect_in);
39626
39627 return 0;
39628 }
39629 @@ -5471,7 +5473,7 @@ static int connection_finish_peer_reqs(struct drbd_connection *connection)
39630 struct asender_cmd {
39631 size_t pkt_size;
39632 int (*fn)(struct drbd_connection *connection, struct packet_info *);
39633 -};
39634 +} __do_const;
39635
39636 static struct asender_cmd asender_tbl[] = {
39637 [P_PING] = { 0, got_Ping },
39638 diff --git a/drivers/block/drbd/drbd_worker.c b/drivers/block/drbd/drbd_worker.c
39639 index 5578c14..a05f791 100644
39640 --- a/drivers/block/drbd/drbd_worker.c
39641 +++ b/drivers/block/drbd/drbd_worker.c
39642 @@ -94,7 +94,8 @@ void drbd_md_endio(struct bio *bio)
39643 /* reads on behalf of the partner,
39644 * "submitted" by the receiver
39645 */
39646 -static void drbd_endio_read_sec_final(struct drbd_peer_request *peer_req) __releases(local)
39647 +static void drbd_endio_read_sec_final(struct drbd_peer_request *peer_req) __releases(local);
39648 +static void drbd_endio_read_sec_final(struct drbd_peer_request *peer_req)
39649 {
39650 unsigned long flags = 0;
39651 struct drbd_peer_device *peer_device = peer_req->peer_device;
39652 @@ -115,7 +116,8 @@ static void drbd_endio_read_sec_final(struct drbd_peer_request *peer_req) __rele
39653
39654 /* writes on behalf of the partner, or resync writes,
39655 * "submitted" by the receiver, final stage. */
39656 -void drbd_endio_write_sec_final(struct drbd_peer_request *peer_req) __releases(local)
39657 +void drbd_endio_write_sec_final(struct drbd_peer_request *peer_req) __releases(local);
39658 +void drbd_endio_write_sec_final(struct drbd_peer_request *peer_req)
39659 {
39660 unsigned long flags = 0;
39661 struct drbd_peer_device *peer_device = peer_req->peer_device;
39662 @@ -386,7 +388,7 @@ static int read_for_csum(struct drbd_peer_device *peer_device, sector_t sector,
39663 list_add_tail(&peer_req->w.list, &device->read_ee);
39664 spin_unlock_irq(&device->resource->req_lock);
39665
39666 - atomic_add(size >> 9, &device->rs_sect_ev);
39667 + atomic_add_unchecked(size >> 9, &device->rs_sect_ev);
39668 if (drbd_submit_peer_request(device, peer_req, READ, DRBD_FAULT_RS_RD) == 0)
39669 return 0;
39670
39671 @@ -531,7 +533,7 @@ static int drbd_rs_number_requests(struct drbd_device *device)
39672 unsigned int sect_in; /* Number of sectors that came in since the last turn */
39673 int number, mxb;
39674
39675 - sect_in = atomic_xchg(&device->rs_sect_in, 0);
39676 + sect_in = atomic_xchg_unchecked(&device->rs_sect_in, 0);
39677 device->rs_in_flight -= sect_in;
39678
39679 rcu_read_lock();
39680 @@ -1573,8 +1575,8 @@ void drbd_rs_controller_reset(struct drbd_device *device)
39681 struct gendisk *disk = device->ldev->backing_bdev->bd_contains->bd_disk;
39682 struct fifo_buffer *plan;
39683
39684 - atomic_set(&device->rs_sect_in, 0);
39685 - atomic_set(&device->rs_sect_ev, 0);
39686 + atomic_set_unchecked(&device->rs_sect_in, 0);
39687 + atomic_set_unchecked(&device->rs_sect_ev, 0);
39688 device->rs_in_flight = 0;
39689 device->rs_last_events =
39690 (int)part_stat_read(&disk->part0, sectors[0]) +
39691 diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
39692 index d06c62e..cd04d96 100644
39693 --- a/drivers/block/pktcdvd.c
39694 +++ b/drivers/block/pktcdvd.c
39695 @@ -109,7 +109,7 @@ static int pkt_seq_show(struct seq_file *m, void *p);
39696
39697 static sector_t get_zone(sector_t sector, struct pktcdvd_device *pd)
39698 {
39699 - return (sector + pd->offset) & ~(sector_t)(pd->settings.size - 1);
39700 + return (sector + pd->offset) & ~(sector_t)(pd->settings.size - 1UL);
39701 }
39702
39703 /*
39704 @@ -1890,7 +1890,7 @@ static noinline_for_stack int pkt_probe_settings(struct pktcdvd_device *pd)
39705 return -EROFS;
39706 }
39707 pd->settings.fp = ti.fp;
39708 - pd->offset = (be32_to_cpu(ti.track_start) << 2) & (pd->settings.size - 1);
39709 + pd->offset = (be32_to_cpu(ti.track_start) << 2) & (pd->settings.size - 1UL);
39710
39711 if (ti.nwa_v) {
39712 pd->nwa = be32_to_cpu(ti.next_writable);
39713 diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
39714 index 81ea69f..55a949d 100644
39715 --- a/drivers/block/rbd.c
39716 +++ b/drivers/block/rbd.c
39717 @@ -64,7 +64,7 @@
39718 * If the counter is already at its maximum value returns
39719 * -EINVAL without updating it.
39720 */
39721 -static int atomic_inc_return_safe(atomic_t *v)
39722 +static int __intentional_overflow(-1) atomic_inc_return_safe(atomic_t *v)
39723 {
39724 unsigned int counter;
39725
39726 diff --git a/drivers/block/smart1,2.h b/drivers/block/smart1,2.h
39727 index e5565fb..71be10b4 100644
39728 --- a/drivers/block/smart1,2.h
39729 +++ b/drivers/block/smart1,2.h
39730 @@ -108,11 +108,11 @@ static unsigned long smart4_intr_pending(ctlr_info_t *h)
39731 }
39732
39733 static struct access_method smart4_access = {
39734 - smart4_submit_command,
39735 - smart4_intr_mask,
39736 - smart4_fifo_full,
39737 - smart4_intr_pending,
39738 - smart4_completed,
39739 + .submit_command = smart4_submit_command,
39740 + .set_intr_mask = smart4_intr_mask,
39741 + .fifo_full = smart4_fifo_full,
39742 + .intr_pending = smart4_intr_pending,
39743 + .command_completed = smart4_completed,
39744 };
39745
39746 /*
39747 @@ -144,11 +144,11 @@ static unsigned long smart2_intr_pending(ctlr_info_t *h)
39748 }
39749
39750 static struct access_method smart2_access = {
39751 - smart2_submit_command,
39752 - smart2_intr_mask,
39753 - smart2_fifo_full,
39754 - smart2_intr_pending,
39755 - smart2_completed,
39756 + .submit_command = smart2_submit_command,
39757 + .set_intr_mask = smart2_intr_mask,
39758 + .fifo_full = smart2_fifo_full,
39759 + .intr_pending = smart2_intr_pending,
39760 + .command_completed = smart2_completed,
39761 };
39762
39763 /*
39764 @@ -180,11 +180,11 @@ static unsigned long smart2e_intr_pending(ctlr_info_t *h)
39765 }
39766
39767 static struct access_method smart2e_access = {
39768 - smart2e_submit_command,
39769 - smart2e_intr_mask,
39770 - smart2e_fifo_full,
39771 - smart2e_intr_pending,
39772 - smart2e_completed,
39773 + .submit_command = smart2e_submit_command,
39774 + .set_intr_mask = smart2e_intr_mask,
39775 + .fifo_full = smart2e_fifo_full,
39776 + .intr_pending = smart2e_intr_pending,
39777 + .command_completed = smart2e_completed,
39778 };
39779
39780 /*
39781 @@ -270,9 +270,9 @@ static unsigned long smart1_intr_pending(ctlr_info_t *h)
39782 }
39783
39784 static struct access_method smart1_access = {
39785 - smart1_submit_command,
39786 - smart1_intr_mask,
39787 - smart1_fifo_full,
39788 - smart1_intr_pending,
39789 - smart1_completed,
39790 + .submit_command = smart1_submit_command,
39791 + .set_intr_mask = smart1_intr_mask,
39792 + .fifo_full = smart1_fifo_full,
39793 + .intr_pending = smart1_intr_pending,
39794 + .command_completed = smart1_completed,
39795 };
39796 diff --git a/drivers/bluetooth/btwilink.c b/drivers/bluetooth/btwilink.c
39797 index 57eb935..eafd6b8 100644
39798 --- a/drivers/bluetooth/btwilink.c
39799 +++ b/drivers/bluetooth/btwilink.c
39800 @@ -275,7 +275,7 @@ static int ti_st_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
39801
39802 static int bt_ti_probe(struct platform_device *pdev)
39803 {
39804 - static struct ti_st *hst;
39805 + struct ti_st *hst;
39806 struct hci_dev *hdev;
39807 int err;
39808
39809 diff --git a/drivers/bus/arm-cci.c b/drivers/bus/arm-cci.c
39810 index 577cc4b..bfe0c2d 100644
39811 --- a/drivers/bus/arm-cci.c
39812 +++ b/drivers/bus/arm-cci.c
39813 @@ -1249,16 +1249,22 @@ static int cci_pmu_init_attrs(struct cci_pmu *cci_pmu, struct platform_device *p
39814 model->event_attrs);
39815 if (!attrs)
39816 return -ENOMEM;
39817 - pmu_event_attr_group.attrs = attrs;
39818 + pax_open_kernel();
39819 + *(struct attribute ***)&pmu_event_attr_group.attrs = attrs;
39820 + pax_close_kernel();
39821 }
39822 if (model->nformat_attrs) {
39823 attrs = alloc_attrs(pdev, model->nformat_attrs,
39824 model->format_attrs);
39825 if (!attrs)
39826 return -ENOMEM;
39827 - pmu_format_attr_group.attrs = attrs;
39828 + pax_open_kernel();
39829 + *(struct attribute ***)&pmu_format_attr_group.attrs = attrs;
39830 + pax_close_kernel();
39831 }
39832 - pmu_cpumask_attr.var = cci_pmu;
39833 + pax_open_kernel();
39834 + *(void **)&pmu_cpumask_attr.var = cci_pmu;
39835 + pax_close_kernel();
39836
39837 return 0;
39838 }
39839 diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
39840 index c206ccd..375691c 100644
39841 --- a/drivers/cdrom/cdrom.c
39842 +++ b/drivers/cdrom/cdrom.c
39843 @@ -610,7 +610,6 @@ int register_cdrom(struct cdrom_device_info *cdi)
39844 ENSURE(reset, CDC_RESET);
39845 ENSURE(generic_packet, CDC_GENERIC_PACKET);
39846 cdi->mc_flags = 0;
39847 - cdo->n_minors = 0;
39848 cdi->options = CDO_USE_FFLAGS;
39849
39850 if (autoclose == 1 && CDROM_CAN(CDC_CLOSE_TRAY))
39851 @@ -630,8 +629,11 @@ int register_cdrom(struct cdrom_device_info *cdi)
39852 else
39853 cdi->cdda_method = CDDA_OLD;
39854
39855 - if (!cdo->generic_packet)
39856 - cdo->generic_packet = cdrom_dummy_generic_packet;
39857 + if (!cdo->generic_packet) {
39858 + pax_open_kernel();
39859 + *(void **)&cdo->generic_packet = cdrom_dummy_generic_packet;
39860 + pax_close_kernel();
39861 + }
39862
39863 cd_dbg(CD_REG_UNREG, "drive \"/dev/%s\" registered\n", cdi->name);
39864 mutex_lock(&cdrom_mutex);
39865 @@ -652,7 +654,6 @@ void unregister_cdrom(struct cdrom_device_info *cdi)
39866 if (cdi->exit)
39867 cdi->exit(cdi);
39868
39869 - cdi->ops->n_minors--;
39870 cd_dbg(CD_REG_UNREG, "drive \"/dev/%s\" unregistered\n", cdi->name);
39871 }
39872
39873 @@ -2127,7 +2128,7 @@ static int cdrom_read_cdda_old(struct cdrom_device_info *cdi, __u8 __user *ubuf,
39874 */
39875 nr = nframes;
39876 do {
39877 - cgc.buffer = kmalloc(CD_FRAMESIZE_RAW * nr, GFP_KERNEL);
39878 + cgc.buffer = kzalloc(CD_FRAMESIZE_RAW * nr, GFP_KERNEL);
39879 if (cgc.buffer)
39880 break;
39881
39882 @@ -3435,7 +3436,7 @@ static int cdrom_print_info(const char *header, int val, char *info,
39883 struct cdrom_device_info *cdi;
39884 int ret;
39885
39886 - ret = scnprintf(info + *pos, max_size - *pos, header);
39887 + ret = scnprintf(info + *pos, max_size - *pos, "%s", header);
39888 if (!ret)
39889 return 1;
39890
39891 diff --git a/drivers/cdrom/gdrom.c b/drivers/cdrom/gdrom.c
39892 index 584bc31..e64a12c 100644
39893 --- a/drivers/cdrom/gdrom.c
39894 +++ b/drivers/cdrom/gdrom.c
39895 @@ -491,7 +491,6 @@ static struct cdrom_device_ops gdrom_ops = {
39896 .audio_ioctl = gdrom_audio_ioctl,
39897 .capability = CDC_MULTI_SESSION | CDC_MEDIA_CHANGED |
39898 CDC_RESET | CDC_DRIVE_STATUS | CDC_CD_R,
39899 - .n_minors = 1,
39900 };
39901
39902 static int gdrom_bdops_open(struct block_device *bdev, fmode_t mode)
39903 diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
39904 index a043107..1263e4a 100644
39905 --- a/drivers/char/Kconfig
39906 +++ b/drivers/char/Kconfig
39907 @@ -17,7 +17,8 @@ config DEVMEM
39908
39909 config DEVKMEM
39910 bool "/dev/kmem virtual device support"
39911 - default y
39912 + default n
39913 + depends on !GRKERNSEC_KMEM
39914 help
39915 Say Y here if you want to support the /dev/kmem device. The
39916 /dev/kmem device is rarely used, but can be used for certain
39917 @@ -586,6 +587,7 @@ config DEVPORT
39918 bool
39919 depends on !M68K
39920 depends on ISA || PCI
39921 + depends on !GRKERNSEC_KMEM
39922 default y
39923
39924 source "drivers/s390/char/Kconfig"
39925 diff --git a/drivers/char/agp/compat_ioctl.c b/drivers/char/agp/compat_ioctl.c
39926 index a48e05b..6bac831 100644
39927 --- a/drivers/char/agp/compat_ioctl.c
39928 +++ b/drivers/char/agp/compat_ioctl.c
39929 @@ -108,7 +108,7 @@ static int compat_agpioc_reserve_wrap(struct agp_file_private *priv, void __user
39930 return -ENOMEM;
39931 }
39932
39933 - if (copy_from_user(usegment, (void __user *) ureserve.seg_list,
39934 + if (copy_from_user(usegment, (void __force_user *) ureserve.seg_list,
39935 sizeof(*usegment) * ureserve.seg_count)) {
39936 kfree(usegment);
39937 kfree(ksegment);
39938 diff --git a/drivers/char/agp/frontend.c b/drivers/char/agp/frontend.c
39939 index 09f17eb..8531d2f 100644
39940 --- a/drivers/char/agp/frontend.c
39941 +++ b/drivers/char/agp/frontend.c
39942 @@ -806,7 +806,7 @@ static int agpioc_reserve_wrap(struct agp_file_private *priv, void __user *arg)
39943 if (copy_from_user(&reserve, arg, sizeof(struct agp_region)))
39944 return -EFAULT;
39945
39946 - if ((unsigned) reserve.seg_count >= ~0U/sizeof(struct agp_segment))
39947 + if ((unsigned) reserve.seg_count >= ~0U/sizeof(struct agp_segment_priv))
39948 return -EFAULT;
39949
39950 client = agp_find_client_by_pid(reserve.pid);
39951 @@ -836,7 +836,7 @@ static int agpioc_reserve_wrap(struct agp_file_private *priv, void __user *arg)
39952 if (segment == NULL)
39953 return -ENOMEM;
39954
39955 - if (copy_from_user(segment, (void __user *) reserve.seg_list,
39956 + if (copy_from_user(segment, (void __force_user *) reserve.seg_list,
39957 sizeof(struct agp_segment) * reserve.seg_count)) {
39958 kfree(segment);
39959 return -EFAULT;
39960 diff --git a/drivers/char/agp/intel-gtt.c b/drivers/char/agp/intel-gtt.c
39961 index 1341a94..8a45bc2 100644
39962 --- a/drivers/char/agp/intel-gtt.c
39963 +++ b/drivers/char/agp/intel-gtt.c
39964 @@ -1408,8 +1408,8 @@ int intel_gmch_probe(struct pci_dev *bridge_pdev, struct pci_dev *gpu_pdev,
39965 }
39966 EXPORT_SYMBOL(intel_gmch_probe);
39967
39968 -void intel_gtt_get(u64 *gtt_total, size_t *stolen_size,
39969 - phys_addr_t *mappable_base, u64 *mappable_end)
39970 +void intel_gtt_get(u64 *gtt_total, u64 *stolen_size,
39971 + u64 *mappable_base, u64 *mappable_end)
39972 {
39973 *gtt_total = intel_private.gtt_total_entries << PAGE_SHIFT;
39974 *stolen_size = intel_private.stolen_size;
39975 diff --git a/drivers/char/genrtc.c b/drivers/char/genrtc.c
39976 index 4f94375..413694e 100644
39977 --- a/drivers/char/genrtc.c
39978 +++ b/drivers/char/genrtc.c
39979 @@ -273,6 +273,7 @@ static int gen_rtc_ioctl(struct file *file,
39980 switch (cmd) {
39981
39982 case RTC_PLL_GET:
39983 + memset(&pll, 0, sizeof(pll));
39984 if (get_rtc_pll(&pll))
39985 return -EINVAL;
39986 else
39987 diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
39988 index 240b6cf..e0ba20c 100644
39989 --- a/drivers/char/hpet.c
39990 +++ b/drivers/char/hpet.c
39991 @@ -574,7 +574,7 @@ static inline unsigned long hpet_time_div(struct hpets *hpets,
39992 }
39993
39994 static int
39995 -hpet_ioctl_common(struct hpet_dev *devp, int cmd, unsigned long arg,
39996 +hpet_ioctl_common(struct hpet_dev *devp, unsigned int cmd, unsigned long arg,
39997 struct hpet_info *info)
39998 {
39999 struct hpet_timer __iomem *timer;
40000 diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c
40001 index e3536da..b1617f0 100644
40002 --- a/drivers/char/ipmi/ipmi_msghandler.c
40003 +++ b/drivers/char/ipmi/ipmi_msghandler.c
40004 @@ -436,7 +436,7 @@ struct ipmi_smi {
40005 struct proc_dir_entry *proc_dir;
40006 char proc_dir_name[10];
40007
40008 - atomic_t stats[IPMI_NUM_STATS];
40009 + atomic_unchecked_t stats[IPMI_NUM_STATS];
40010
40011 /*
40012 * run_to_completion duplicate of smb_info, smi_info
40013 @@ -468,9 +468,9 @@ static LIST_HEAD(smi_watchers);
40014 static DEFINE_MUTEX(smi_watchers_mutex);
40015
40016 #define ipmi_inc_stat(intf, stat) \
40017 - atomic_inc(&(intf)->stats[IPMI_STAT_ ## stat])
40018 + atomic_inc_unchecked(&(intf)->stats[IPMI_STAT_ ## stat])
40019 #define ipmi_get_stat(intf, stat) \
40020 - ((unsigned int) atomic_read(&(intf)->stats[IPMI_STAT_ ## stat]))
40021 + ((unsigned int) atomic_read_unchecked(&(intf)->stats[IPMI_STAT_ ## stat]))
40022
40023 static char *addr_src_to_str[] = { "invalid", "hotmod", "hardcoded", "SPMI",
40024 "ACPI", "SMBIOS", "PCI",
40025 @@ -2834,7 +2834,7 @@ int ipmi_register_smi(const struct ipmi_smi_handlers *handlers,
40026 INIT_LIST_HEAD(&intf->cmd_rcvrs);
40027 init_waitqueue_head(&intf->waitq);
40028 for (i = 0; i < IPMI_NUM_STATS; i++)
40029 - atomic_set(&intf->stats[i], 0);
40030 + atomic_set_unchecked(&intf->stats[i], 0);
40031
40032 intf->proc_dir = NULL;
40033
40034 diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
40035 index 4cc72fa..4c6f80d 100644
40036 --- a/drivers/char/ipmi/ipmi_si_intf.c
40037 +++ b/drivers/char/ipmi/ipmi_si_intf.c
40038 @@ -300,7 +300,7 @@ struct smi_info {
40039 unsigned char slave_addr;
40040
40041 /* Counters and things for the proc filesystem. */
40042 - atomic_t stats[SI_NUM_STATS];
40043 + atomic_unchecked_t stats[SI_NUM_STATS];
40044
40045 struct task_struct *thread;
40046
40047 @@ -309,9 +309,9 @@ struct smi_info {
40048 };
40049
40050 #define smi_inc_stat(smi, stat) \
40051 - atomic_inc(&(smi)->stats[SI_STAT_ ## stat])
40052 + atomic_inc_unchecked(&(smi)->stats[SI_STAT_ ## stat])
40053 #define smi_get_stat(smi, stat) \
40054 - ((unsigned int) atomic_read(&(smi)->stats[SI_STAT_ ## stat]))
40055 + ((unsigned int) atomic_read_unchecked(&(smi)->stats[SI_STAT_ ## stat]))
40056
40057 #define SI_MAX_PARMS 4
40058
40059 @@ -3620,7 +3620,7 @@ static int try_smi_init(struct smi_info *new_smi)
40060 atomic_set(&new_smi->req_events, 0);
40061 new_smi->run_to_completion = false;
40062 for (i = 0; i < SI_NUM_STATS; i++)
40063 - atomic_set(&new_smi->stats[i], 0);
40064 + atomic_set_unchecked(&new_smi->stats[i], 0);
40065
40066 new_smi->interrupt_disabled = true;
40067 atomic_set(&new_smi->need_watch, 0);
40068 diff --git a/drivers/char/ipmi/ipmi_ssif.c b/drivers/char/ipmi/ipmi_ssif.c
40069 index 90e6246..58acb77 100644
40070 --- a/drivers/char/ipmi/ipmi_ssif.c
40071 +++ b/drivers/char/ipmi/ipmi_ssif.c
40072 @@ -284,17 +284,17 @@ struct ssif_info {
40073 unsigned int multi_len;
40074 unsigned int multi_pos;
40075
40076 - atomic_t stats[SSIF_NUM_STATS];
40077 + atomic_unchecked_t stats[SSIF_NUM_STATS];
40078 };
40079
40080 #define ssif_inc_stat(ssif, stat) \
40081 - atomic_inc(&(ssif)->stats[SSIF_STAT_ ## stat])
40082 + atomic_inc_unchecked(&(ssif)->stats[SSIF_STAT_ ## stat])
40083 #define ssif_get_stat(ssif, stat) \
40084 - ((unsigned int) atomic_read(&(ssif)->stats[SSIF_STAT_ ## stat]))
40085 + ((unsigned int) atomic_read_unchecked(&(ssif)->stats[SSIF_STAT_ ## stat]))
40086
40087 static bool initialized;
40088
40089 -static atomic_t next_intf = ATOMIC_INIT(0);
40090 +static atomic_unchecked_t next_intf = ATOMIC_INIT(0);
40091
40092 static void return_hosed_msg(struct ssif_info *ssif_info,
40093 struct ipmi_smi_msg *msg);
40094 @@ -1609,7 +1609,7 @@ static int ssif_probe(struct i2c_client *client, const struct i2c_device_id *id)
40095 }
40096
40097 found:
40098 - ssif_info->intf_num = atomic_inc_return(&next_intf);
40099 + ssif_info->intf_num = atomic_inc_return_unchecked(&next_intf);
40100
40101 if (ssif_dbg_probe) {
40102 pr_info("ssif_probe: i2c_probe found device at i2c address %x\n",
40103 @@ -1623,7 +1623,7 @@ static int ssif_probe(struct i2c_client *client, const struct i2c_device_id *id)
40104 ssif_info->retry_timer.function = retry_timeout;
40105
40106 for (i = 0; i < SSIF_NUM_STATS; i++)
40107 - atomic_set(&ssif_info->stats[i], 0);
40108 + atomic_set_unchecked(&ssif_info->stats[i], 0);
40109
40110 if (ssif_info->supports_pec)
40111 ssif_info->client->flags |= I2C_CLIENT_PEC;
40112 diff --git a/drivers/char/mem.c b/drivers/char/mem.c
40113 index 6b1721f..fda9398 100644
40114 --- a/drivers/char/mem.c
40115 +++ b/drivers/char/mem.c
40116 @@ -18,6 +18,7 @@
40117 #include <linux/raw.h>
40118 #include <linux/tty.h>
40119 #include <linux/capability.h>
40120 +#include <linux/security.h>
40121 #include <linux/ptrace.h>
40122 #include <linux/device.h>
40123 #include <linux/highmem.h>
40124 @@ -36,6 +37,10 @@
40125
40126 #define DEVPORT_MINOR 4
40127
40128 +#if defined(CONFIG_GRKERNSEC) && !defined(CONFIG_GRKERNSEC_NO_RBAC)
40129 +extern const struct file_operations grsec_fops;
40130 +#endif
40131 +
40132 static inline unsigned long size_inside_page(unsigned long start,
40133 unsigned long size)
40134 {
40135 @@ -67,9 +72,13 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size)
40136
40137 while (cursor < to) {
40138 if (!devmem_is_allowed(pfn)) {
40139 +#ifdef CONFIG_GRKERNSEC_KMEM
40140 + gr_handle_mem_readwrite(from, to);
40141 +#else
40142 printk(KERN_INFO
40143 "Program %s tried to access /dev/mem between %Lx->%Lx.\n",
40144 current->comm, from, to);
40145 +#endif
40146 return 0;
40147 }
40148 cursor += PAGE_SIZE;
40149 @@ -77,6 +86,11 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size)
40150 }
40151 return 1;
40152 }
40153 +#elif defined(CONFIG_GRKERNSEC_KMEM)
40154 +static inline int range_is_allowed(unsigned long pfn, unsigned long size)
40155 +{
40156 + return 0;
40157 +}
40158 #else
40159 static inline int range_is_allowed(unsigned long pfn, unsigned long size)
40160 {
40161 @@ -124,7 +138,8 @@ static ssize_t read_mem(struct file *file, char __user *buf,
40162 #endif
40163
40164 while (count > 0) {
40165 - unsigned long remaining;
40166 + unsigned long remaining = 0;
40167 + char *temp;
40168
40169 sz = size_inside_page(p, count);
40170
40171 @@ -140,7 +155,24 @@ static ssize_t read_mem(struct file *file, char __user *buf,
40172 if (!ptr)
40173 return -EFAULT;
40174
40175 - remaining = copy_to_user(buf, ptr, sz);
40176 +#ifdef CONFIG_PAX_USERCOPY
40177 + temp = kmalloc(sz, GFP_KERNEL|GFP_USERCOPY);
40178 + if (!temp) {
40179 + unxlate_dev_mem_ptr(p, ptr);
40180 + return -ENOMEM;
40181 + }
40182 + remaining = probe_kernel_read(temp, ptr, sz);
40183 +#else
40184 + temp = ptr;
40185 +#endif
40186 +
40187 + if (!remaining)
40188 + remaining = copy_to_user(buf, temp, sz);
40189 +
40190 +#ifdef CONFIG_PAX_USERCOPY
40191 + kfree(temp);
40192 +#endif
40193 +
40194 unxlate_dev_mem_ptr(p, ptr);
40195 if (remaining)
40196 return -EFAULT;
40197 @@ -380,9 +412,8 @@ static ssize_t read_kmem(struct file *file, char __user *buf,
40198 size_t count, loff_t *ppos)
40199 {
40200 unsigned long p = *ppos;
40201 - ssize_t low_count, read, sz;
40202 + ssize_t low_count, read, sz, err = 0;
40203 char *kbuf; /* k-addr because vread() takes vmlist_lock rwlock */
40204 - int err = 0;
40205
40206 read = 0;
40207 if (p < (unsigned long) high_memory) {
40208 @@ -404,6 +435,8 @@ static ssize_t read_kmem(struct file *file, char __user *buf,
40209 }
40210 #endif
40211 while (low_count > 0) {
40212 + char *temp;
40213 +
40214 sz = size_inside_page(p, low_count);
40215
40216 /*
40217 @@ -413,7 +446,23 @@ static ssize_t read_kmem(struct file *file, char __user *buf,
40218 */
40219 kbuf = xlate_dev_kmem_ptr((void *)p);
40220
40221 - if (copy_to_user(buf, kbuf, sz))
40222 +#ifdef CONFIG_PAX_USERCOPY
40223 + temp = kmalloc(sz, GFP_KERNEL|GFP_USERCOPY);
40224 + if (!temp)
40225 + return -ENOMEM;
40226 + err = probe_kernel_read(temp, kbuf, sz);
40227 +#else
40228 + temp = kbuf;
40229 +#endif
40230 +
40231 + if (!err)
40232 + err = copy_to_user(buf, temp, sz);
40233 +
40234 +#ifdef CONFIG_PAX_USERCOPY
40235 + kfree(temp);
40236 +#endif
40237 +
40238 + if (err)
40239 return -EFAULT;
40240 buf += sz;
40241 p += sz;
40242 @@ -802,6 +851,9 @@ static const struct memdev {
40243 #ifdef CONFIG_PRINTK
40244 [11] = { "kmsg", 0644, &kmsg_fops, 0 },
40245 #endif
40246 +#if defined(CONFIG_GRKERNSEC) && !defined(CONFIG_GRKERNSEC_NO_RBAC)
40247 + [13] = { "grsec",S_IRUSR | S_IWUGO, &grsec_fops, 0 },
40248 +#endif
40249 };
40250
40251 static int memory_open(struct inode *inode, struct file *filp)
40252 @@ -863,7 +915,7 @@ static int __init chr_dev_init(void)
40253 continue;
40254
40255 device_create(mem_class, NULL, MKDEV(MEM_MAJOR, minor),
40256 - NULL, devlist[minor].name);
40257 + NULL, "%s", devlist[minor].name);
40258 }
40259
40260 return tty_init();
40261 diff --git a/drivers/char/nvram.c b/drivers/char/nvram.c
40262 index 97c2d8d..aa03a89 100644
40263 --- a/drivers/char/nvram.c
40264 +++ b/drivers/char/nvram.c
40265 @@ -247,7 +247,7 @@ static ssize_t nvram_read(struct file *file, char __user *buf,
40266
40267 spin_unlock_irq(&rtc_lock);
40268
40269 - if (copy_to_user(buf, contents, tmp - contents))
40270 + if (tmp - contents > sizeof(contents) || copy_to_user(buf, contents, tmp - contents))
40271 return -EFAULT;
40272
40273 *ppos = i;
40274 diff --git a/drivers/char/pcmcia/synclink_cs.c b/drivers/char/pcmcia/synclink_cs.c
40275 index 45df4bf..22d88d4 100644
40276 --- a/drivers/char/pcmcia/synclink_cs.c
40277 +++ b/drivers/char/pcmcia/synclink_cs.c
40278 @@ -2345,7 +2345,7 @@ static void mgslpc_close(struct tty_struct *tty, struct file * filp)
40279
40280 if (debug_level >= DEBUG_LEVEL_INFO)
40281 printk("%s(%d):mgslpc_close(%s) entry, count=%d\n",
40282 - __FILE__, __LINE__, info->device_name, port->count);
40283 + __FILE__, __LINE__, info->device_name, atomic_read(&port->count));
40284
40285 if (tty_port_close_start(port, tty, filp) == 0)
40286 goto cleanup;
40287 @@ -2363,7 +2363,7 @@ static void mgslpc_close(struct tty_struct *tty, struct file * filp)
40288 cleanup:
40289 if (debug_level >= DEBUG_LEVEL_INFO)
40290 printk("%s(%d):mgslpc_close(%s) exit, count=%d\n", __FILE__, __LINE__,
40291 - tty->driver->name, port->count);
40292 + tty->driver->name, atomic_read(&port->count));
40293 }
40294
40295 /* Wait until the transmitter is empty.
40296 @@ -2505,7 +2505,7 @@ static int mgslpc_open(struct tty_struct *tty, struct file * filp)
40297
40298 if (debug_level >= DEBUG_LEVEL_INFO)
40299 printk("%s(%d):mgslpc_open(%s), old ref count = %d\n",
40300 - __FILE__, __LINE__, tty->driver->name, port->count);
40301 + __FILE__, __LINE__, tty->driver->name, atomic_read(&port->count));
40302
40303 port->low_latency = (port->flags & ASYNC_LOW_LATENCY) ? 1 : 0;
40304
40305 @@ -2516,11 +2516,11 @@ static int mgslpc_open(struct tty_struct *tty, struct file * filp)
40306 goto cleanup;
40307 }
40308 spin_lock(&port->lock);
40309 - port->count++;
40310 + atomic_inc(&port->count);
40311 spin_unlock(&port->lock);
40312 spin_unlock_irqrestore(&info->netlock, flags);
40313
40314 - if (port->count == 1) {
40315 + if (atomic_read(&port->count) == 1) {
40316 /* 1st open on this device, init hardware */
40317 retval = startup(info, tty);
40318 if (retval < 0)
40319 @@ -3909,7 +3909,7 @@ static int hdlcdev_attach(struct net_device *dev, unsigned short encoding,
40320 unsigned short new_crctype;
40321
40322 /* return error if TTY interface open */
40323 - if (info->port.count)
40324 + if (atomic_read(&info->port.count))
40325 return -EBUSY;
40326
40327 switch (encoding)
40328 @@ -4013,7 +4013,7 @@ static int hdlcdev_open(struct net_device *dev)
40329
40330 /* arbitrate between network and tty opens */
40331 spin_lock_irqsave(&info->netlock, flags);
40332 - if (info->port.count != 0 || info->netcount != 0) {
40333 + if (atomic_read(&info->port.count) != 0 || info->netcount != 0) {
40334 printk(KERN_WARNING "%s: hdlc_open returning busy\n", dev->name);
40335 spin_unlock_irqrestore(&info->netlock, flags);
40336 return -EBUSY;
40337 @@ -4103,7 +4103,7 @@ static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
40338 printk("%s:hdlcdev_ioctl(%s)\n", __FILE__, dev->name);
40339
40340 /* return error if TTY interface open */
40341 - if (info->port.count)
40342 + if (atomic_read(&info->port.count))
40343 return -EBUSY;
40344
40345 if (cmd != SIOCWANDEV)
40346 diff --git a/drivers/char/random.c b/drivers/char/random.c
40347 index d0da5d8..739fd3a 100644
40348 --- a/drivers/char/random.c
40349 +++ b/drivers/char/random.c
40350 @@ -289,9 +289,6 @@
40351 /*
40352 * To allow fractional bits to be tracked, the entropy_count field is
40353 * denominated in units of 1/8th bits.
40354 - *
40355 - * 2*(ENTROPY_SHIFT + log2(poolbits)) must <= 31, or the multiply in
40356 - * credit_entropy_bits() needs to be 64 bits wide.
40357 */
40358 #define ENTROPY_SHIFT 3
40359 #define ENTROPY_BITS(r) ((r)->entropy_count >> ENTROPY_SHIFT)
40360 @@ -442,9 +439,9 @@ struct entropy_store {
40361 };
40362
40363 static void push_to_pool(struct work_struct *work);
40364 -static __u32 input_pool_data[INPUT_POOL_WORDS];
40365 -static __u32 blocking_pool_data[OUTPUT_POOL_WORDS];
40366 -static __u32 nonblocking_pool_data[OUTPUT_POOL_WORDS];
40367 +static __u32 input_pool_data[INPUT_POOL_WORDS] __latent_entropy;
40368 +static __u32 blocking_pool_data[OUTPUT_POOL_WORDS] __latent_entropy;
40369 +static __u32 nonblocking_pool_data[OUTPUT_POOL_WORDS] __latent_entropy;
40370
40371 static struct entropy_store input_pool = {
40372 .poolinfo = &poolinfo_table[0],
40373 @@ -654,7 +651,7 @@ retry:
40374 /* The +2 corresponds to the /4 in the denominator */
40375
40376 do {
40377 - unsigned int anfrac = min(pnfrac, pool_size/2);
40378 + u64 anfrac = min(pnfrac, pool_size/2);
40379 unsigned int add =
40380 ((pool_size - entropy_count)*anfrac*3) >> s;
40381
40382 @@ -1227,7 +1224,7 @@ static ssize_t extract_entropy_user(struct entropy_store *r, void __user *buf,
40383
40384 extract_buf(r, tmp);
40385 i = min_t(int, nbytes, EXTRACT_SIZE);
40386 - if (copy_to_user(buf, tmp, i)) {
40387 + if (i > sizeof(tmp) || copy_to_user(buf, tmp, i)) {
40388 ret = -EFAULT;
40389 break;
40390 }
40391 @@ -1668,7 +1665,7 @@ static char sysctl_bootid[16];
40392 static int proc_do_uuid(struct ctl_table *table, int write,
40393 void __user *buffer, size_t *lenp, loff_t *ppos)
40394 {
40395 - struct ctl_table fake_table;
40396 + ctl_table_no_const fake_table;
40397 unsigned char buf[64], tmp_uuid[16], *uuid;
40398
40399 uuid = table->data;
40400 @@ -1698,7 +1695,7 @@ static int proc_do_uuid(struct ctl_table *table, int write,
40401 static int proc_do_entropy(struct ctl_table *table, int write,
40402 void __user *buffer, size_t *lenp, loff_t *ppos)
40403 {
40404 - struct ctl_table fake_table;
40405 + ctl_table_no_const fake_table;
40406 int entropy_count;
40407
40408 entropy_count = *(int *)table->data >> ENTROPY_SHIFT;
40409 diff --git a/drivers/char/sonypi.c b/drivers/char/sonypi.c
40410 index e496dae..3db53b6 100644
40411 --- a/drivers/char/sonypi.c
40412 +++ b/drivers/char/sonypi.c
40413 @@ -54,6 +54,7 @@
40414
40415 #include <asm/uaccess.h>
40416 #include <asm/io.h>
40417 +#include <asm/local.h>
40418
40419 #include <linux/sonypi.h>
40420
40421 @@ -490,7 +491,7 @@ static struct sonypi_device {
40422 spinlock_t fifo_lock;
40423 wait_queue_head_t fifo_proc_list;
40424 struct fasync_struct *fifo_async;
40425 - int open_count;
40426 + local_t open_count;
40427 int model;
40428 struct input_dev *input_jog_dev;
40429 struct input_dev *input_key_dev;
40430 @@ -892,7 +893,7 @@ static int sonypi_misc_fasync(int fd, struct file *filp, int on)
40431 static int sonypi_misc_release(struct inode *inode, struct file *file)
40432 {
40433 mutex_lock(&sonypi_device.lock);
40434 - sonypi_device.open_count--;
40435 + local_dec(&sonypi_device.open_count);
40436 mutex_unlock(&sonypi_device.lock);
40437 return 0;
40438 }
40439 @@ -901,9 +902,9 @@ static int sonypi_misc_open(struct inode *inode, struct file *file)
40440 {
40441 mutex_lock(&sonypi_device.lock);
40442 /* Flush input queue on first open */
40443 - if (!sonypi_device.open_count)
40444 + if (!local_read(&sonypi_device.open_count))
40445 kfifo_reset(&sonypi_device.fifo);
40446 - sonypi_device.open_count++;
40447 + local_inc(&sonypi_device.open_count);
40448 mutex_unlock(&sonypi_device.lock);
40449
40450 return 0;
40451 @@ -1491,7 +1492,7 @@ static struct platform_driver sonypi_driver = {
40452
40453 static struct platform_device *sonypi_platform_device;
40454
40455 -static struct dmi_system_id __initdata sonypi_dmi_table[] = {
40456 +static const struct dmi_system_id __initconst sonypi_dmi_table[] = {
40457 {
40458 .ident = "Sony Vaio",
40459 .matches = {
40460 diff --git a/drivers/char/tpm/tpm_acpi.c b/drivers/char/tpm/tpm_acpi.c
40461 index 565a947..dcdc06e 100644
40462 --- a/drivers/char/tpm/tpm_acpi.c
40463 +++ b/drivers/char/tpm/tpm_acpi.c
40464 @@ -98,11 +98,12 @@ int read_log(struct tpm_bios_log *log)
40465 virt = acpi_os_map_iomem(start, len);
40466 if (!virt) {
40467 kfree(log->bios_event_log);
40468 + log->bios_event_log = NULL;
40469 printk("%s: ERROR - Unable to map memory\n", __func__);
40470 return -EIO;
40471 }
40472
40473 - memcpy_fromio(log->bios_event_log, virt, len);
40474 + memcpy_fromio(log->bios_event_log, (const char __force_kernel *)virt, len);
40475
40476 acpi_os_unmap_iomem(virt, len);
40477 return 0;
40478 diff --git a/drivers/char/tpm/tpm_eventlog.c b/drivers/char/tpm/tpm_eventlog.c
40479 index bd72fb0..0212a62 100644
40480 --- a/drivers/char/tpm/tpm_eventlog.c
40481 +++ b/drivers/char/tpm/tpm_eventlog.c
40482 @@ -108,8 +108,7 @@ static void *tpm_bios_measurements_start(struct seq_file *m, loff_t *pos)
40483 converted_event_type = do_endian_conversion(event->event_type);
40484
40485 if (((converted_event_type == 0) && (converted_event_size == 0))
40486 - || ((addr + sizeof(struct tcpa_event) + converted_event_size)
40487 - >= limit))
40488 + || (converted_event_size >= limit - addr - sizeof(struct tcpa_event)))
40489 return NULL;
40490
40491 return addr;
40492 @@ -138,7 +137,7 @@ static void *tpm_bios_measurements_next(struct seq_file *m, void *v,
40493 converted_event_type = do_endian_conversion(event->event_type);
40494
40495 if (((converted_event_type == 0) && (converted_event_size == 0)) ||
40496 - ((v + sizeof(struct tcpa_event) + converted_event_size) >= limit))
40497 + (converted_event_size >= limit - v - sizeof(struct tcpa_event)))
40498 return NULL;
40499
40500 (*pos)++;
40501 diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
40502 index d2406fe..473a5c0 100644
40503 --- a/drivers/char/virtio_console.c
40504 +++ b/drivers/char/virtio_console.c
40505 @@ -685,11 +685,11 @@ static ssize_t fill_readbuf(struct port *port, char __user *out_buf,
40506 if (to_user) {
40507 ssize_t ret;
40508
40509 - ret = copy_to_user(out_buf, buf->buf + buf->offset, out_count);
40510 + ret = copy_to_user((char __force_user *)out_buf, buf->buf + buf->offset, out_count);
40511 if (ret)
40512 return -EFAULT;
40513 } else {
40514 - memcpy((__force char *)out_buf, buf->buf + buf->offset,
40515 + memcpy((__force_kernel char *)out_buf, buf->buf + buf->offset,
40516 out_count);
40517 }
40518
40519 @@ -1164,7 +1164,7 @@ static int get_chars(u32 vtermno, char *buf, int count)
40520 /* If we don't have an input queue yet, we can't get input. */
40521 BUG_ON(!port->in_vq);
40522
40523 - return fill_readbuf(port, (__force char __user *)buf, count, false);
40524 + return fill_readbuf(port, (char __force_user *)buf, count, false);
40525 }
40526
40527 static void resize_console(struct port *port)
40528 diff --git a/drivers/clk/clk-composite.c b/drivers/clk/clk-composite.c
40529 index 4735de0..de4ffc9 100644
40530 --- a/drivers/clk/clk-composite.c
40531 +++ b/drivers/clk/clk-composite.c
40532 @@ -196,7 +196,7 @@ struct clk *clk_register_composite(struct device *dev, const char *name,
40533 struct clk *clk;
40534 struct clk_init_data init;
40535 struct clk_composite *composite;
40536 - struct clk_ops *clk_composite_ops;
40537 + clk_ops_no_const *clk_composite_ops;
40538
40539 composite = kzalloc(sizeof(*composite), GFP_KERNEL);
40540 if (!composite)
40541 diff --git a/drivers/clk/samsung/clk.h b/drivers/clk/samsung/clk.h
40542 index aa872d2..afeae37 100644
40543 --- a/drivers/clk/samsung/clk.h
40544 +++ b/drivers/clk/samsung/clk.h
40545 @@ -261,7 +261,7 @@ struct samsung_gate_clock {
40546 #define GATE_DA(_id, dname, cname, pname, o, b, f, gf, a) \
40547 __GATE(_id, dname, cname, pname, o, b, f, gf, a)
40548
40549 -#define PNAME(x) static const char *x[] __initdata
40550 +#define PNAME(x) static const char * const x[] __initconst
40551
40552 /**
40553 * struct samsung_clk_reg_dump: register dump of clock controller registers.
40554 diff --git a/drivers/clk/socfpga/clk-gate.c b/drivers/clk/socfpga/clk-gate.c
40555 index aa7a6e6..e67210d 100644
40556 --- a/drivers/clk/socfpga/clk-gate.c
40557 +++ b/drivers/clk/socfpga/clk-gate.c
40558 @@ -21,6 +21,7 @@
40559 #include <linux/mfd/syscon.h>
40560 #include <linux/of.h>
40561 #include <linux/regmap.h>
40562 +#include <asm/pgtable.h>
40563
40564 #include "clk.h"
40565
40566 @@ -169,7 +170,7 @@ static int socfpga_clk_prepare(struct clk_hw *hwclk)
40567 return 0;
40568 }
40569
40570 -static struct clk_ops gateclk_ops = {
40571 +static clk_ops_no_const gateclk_ops __read_only = {
40572 .prepare = socfpga_clk_prepare,
40573 .recalc_rate = socfpga_clk_recalc_rate,
40574 .get_parent = socfpga_clk_get_parent,
40575 @@ -202,8 +203,10 @@ static void __init __socfpga_gate_init(struct device_node *node,
40576 socfpga_clk->hw.reg = clk_mgr_base_addr + clk_gate[0];
40577 socfpga_clk->hw.bit_idx = clk_gate[1];
40578
40579 - gateclk_ops.enable = clk_gate_ops.enable;
40580 - gateclk_ops.disable = clk_gate_ops.disable;
40581 + pax_open_kernel();
40582 + *(void **)&gateclk_ops.enable = clk_gate_ops.enable;
40583 + *(void **)&gateclk_ops.disable = clk_gate_ops.disable;
40584 + pax_close_kernel();
40585 }
40586
40587 rc = of_property_read_u32(node, "fixed-divider", &fixed_div);
40588 diff --git a/drivers/clk/socfpga/clk-pll.c b/drivers/clk/socfpga/clk-pll.c
40589 index c7f4631..463813a 100644
40590 --- a/drivers/clk/socfpga/clk-pll.c
40591 +++ b/drivers/clk/socfpga/clk-pll.c
40592 @@ -20,6 +20,7 @@
40593 #include <linux/io.h>
40594 #include <linux/of.h>
40595 #include <linux/of_address.h>
40596 +#include <asm/pgtable.h>
40597
40598 #include "clk.h"
40599
40600 @@ -75,7 +76,7 @@ static u8 clk_pll_get_parent(struct clk_hw *hwclk)
40601 CLK_MGR_PLL_CLK_SRC_MASK;
40602 }
40603
40604 -static struct clk_ops clk_pll_ops = {
40605 +static clk_ops_no_const clk_pll_ops __read_only = {
40606 .recalc_rate = clk_pll_recalc_rate,
40607 .get_parent = clk_pll_get_parent,
40608 };
40609 @@ -114,8 +115,10 @@ static __init struct clk *__socfpga_pll_init(struct device_node *node,
40610 pll_clk->hw.hw.init = &init;
40611
40612 pll_clk->hw.bit_idx = SOCFPGA_PLL_EXT_ENA;
40613 - clk_pll_ops.enable = clk_gate_ops.enable;
40614 - clk_pll_ops.disable = clk_gate_ops.disable;
40615 + pax_open_kernel();
40616 + *(void **)&clk_pll_ops.enable = clk_gate_ops.enable;
40617 + *(void **)&clk_pll_ops.disable = clk_gate_ops.disable;
40618 + pax_close_kernel();
40619
40620 clk = clk_register(NULL, &pll_clk->hw.hw);
40621 if (WARN_ON(IS_ERR(clk))) {
40622 diff --git a/drivers/clk/ti/clk.c b/drivers/clk/ti/clk.c
40623 index b5bcd77..0f7bd99 100644
40624 --- a/drivers/clk/ti/clk.c
40625 +++ b/drivers/clk/ti/clk.c
40626 @@ -25,6 +25,8 @@
40627 #include <linux/regmap.h>
40628 #include <linux/bootmem.h>
40629
40630 +#include <asm/pgtable.h>
40631 +
40632 #include "clock.h"
40633
40634 #undef pr_fmt
40635 @@ -84,8 +86,10 @@ int ti_clk_setup_ll_ops(struct ti_clk_ll_ops *ops)
40636 }
40637
40638 ti_clk_ll_ops = ops;
40639 - ops->clk_readl = clk_memmap_readl;
40640 - ops->clk_writel = clk_memmap_writel;
40641 + pax_open_kernel();
40642 + *(void **)&ops->clk_readl = clk_memmap_readl;
40643 + *(void **)&ops->clk_writel = clk_memmap_writel;
40644 + pax_close_kernel();
40645
40646 return 0;
40647 }
40648 diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c
40649 index cec1ee2..d8e33a0 100644
40650 --- a/drivers/cpufreq/acpi-cpufreq.c
40651 +++ b/drivers/cpufreq/acpi-cpufreq.c
40652 @@ -687,8 +687,11 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
40653 data->acpi_perf_cpu = cpu;
40654 policy->driver_data = data;
40655
40656 - if (cpu_has(c, X86_FEATURE_CONSTANT_TSC))
40657 - acpi_cpufreq_driver.flags |= CPUFREQ_CONST_LOOPS;
40658 + if (cpu_has(c, X86_FEATURE_CONSTANT_TSC)) {
40659 + pax_open_kernel();
40660 + *(u8 *)&acpi_cpufreq_driver.flags |= CPUFREQ_CONST_LOOPS;
40661 + pax_close_kernel();
40662 + }
40663
40664 result = acpi_processor_register_performance(perf, cpu);
40665 if (result)
40666 @@ -821,7 +824,9 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
40667 policy->cur = acpi_cpufreq_guess_freq(data, policy->cpu);
40668 break;
40669 case ACPI_ADR_SPACE_FIXED_HARDWARE:
40670 - acpi_cpufreq_driver.get = get_cur_freq_on_cpu;
40671 + pax_open_kernel();
40672 + *(void **)&acpi_cpufreq_driver.get = get_cur_freq_on_cpu;
40673 + pax_close_kernel();
40674 break;
40675 default:
40676 break;
40677 @@ -916,8 +921,10 @@ static void __init acpi_cpufreq_boost_init(void)
40678 if (!msrs)
40679 return;
40680
40681 - acpi_cpufreq_driver.boost_supported = true;
40682 - acpi_cpufreq_driver.boost_enabled = boost_state(0);
40683 + pax_open_kernel();
40684 + *(bool *)&acpi_cpufreq_driver.boost_supported = true;
40685 + *(bool *)&acpi_cpufreq_driver.boost_enabled = boost_state(0);
40686 + pax_close_kernel();
40687
40688 cpu_notifier_register_begin();
40689
40690 diff --git a/drivers/cpufreq/cpufreq-dt.c b/drivers/cpufreq/cpufreq-dt.c
40691 index 90d6408..0df4580 100644
40692 --- a/drivers/cpufreq/cpufreq-dt.c
40693 +++ b/drivers/cpufreq/cpufreq-dt.c
40694 @@ -456,7 +456,9 @@ static int dt_cpufreq_probe(struct platform_device *pdev)
40695 if (!IS_ERR(cpu_reg))
40696 regulator_put(cpu_reg);
40697
40698 - dt_cpufreq_driver.driver_data = dev_get_platdata(&pdev->dev);
40699 + pax_open_kernel();
40700 + *(void **)&dt_cpufreq_driver.driver_data = dev_get_platdata(&pdev->dev);
40701 + pax_close_kernel();
40702
40703 ret = cpufreq_register_driver(&dt_cpufreq_driver);
40704 if (ret)
40705 diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
40706 index 8412ce5..3a40e15 100644
40707 --- a/drivers/cpufreq/cpufreq.c
40708 +++ b/drivers/cpufreq/cpufreq.c
40709 @@ -2048,7 +2048,7 @@ void cpufreq_unregister_governor(struct cpufreq_governor *governor)
40710 read_unlock_irqrestore(&cpufreq_driver_lock, flags);
40711
40712 mutex_lock(&cpufreq_governor_mutex);
40713 - list_del(&governor->governor_list);
40714 + pax_list_del(&governor->governor_list);
40715 mutex_unlock(&cpufreq_governor_mutex);
40716 return;
40717 }
40718 @@ -2274,7 +2274,7 @@ static int cpufreq_cpu_callback(struct notifier_block *nfb,
40719 return NOTIFY_OK;
40720 }
40721
40722 -static struct notifier_block __refdata cpufreq_cpu_notifier = {
40723 +static struct notifier_block cpufreq_cpu_notifier = {
40724 .notifier_call = cpufreq_cpu_callback,
40725 };
40726
40727 @@ -2314,13 +2314,17 @@ int cpufreq_boost_trigger_state(int state)
40728 return 0;
40729
40730 write_lock_irqsave(&cpufreq_driver_lock, flags);
40731 - cpufreq_driver->boost_enabled = state;
40732 + pax_open_kernel();
40733 + *(bool *)&cpufreq_driver->boost_enabled = state;
40734 + pax_close_kernel();
40735 write_unlock_irqrestore(&cpufreq_driver_lock, flags);
40736
40737 ret = cpufreq_driver->set_boost(state);
40738 if (ret) {
40739 write_lock_irqsave(&cpufreq_driver_lock, flags);
40740 - cpufreq_driver->boost_enabled = !state;
40741 + pax_open_kernel();
40742 + *(bool *)&cpufreq_driver->boost_enabled = !state;
40743 + pax_close_kernel();
40744 write_unlock_irqrestore(&cpufreq_driver_lock, flags);
40745
40746 pr_err("%s: Cannot %s BOOST\n",
40747 @@ -2350,8 +2354,11 @@ static int create_boost_sysfs_file(void)
40748 * Check if driver provides function to enable boost -
40749 * if not, use cpufreq_boost_set_sw as default
40750 */
40751 - if (!cpufreq_driver->set_boost)
40752 - cpufreq_driver->set_boost = cpufreq_boost_set_sw;
40753 + if (!cpufreq_driver->set_boost) {
40754 + pax_open_kernel();
40755 + *(void **)&cpufreq_driver->set_boost = cpufreq_boost_set_sw;
40756 + pax_close_kernel();
40757 + }
40758
40759 ret = sysfs_create_file(cpufreq_global_kobject, &boost.attr);
40760 if (ret)
40761 @@ -2375,7 +2382,9 @@ int cpufreq_enable_boost_support(void)
40762 if (cpufreq_boost_supported())
40763 return 0;
40764
40765 - cpufreq_driver->boost_supported = true;
40766 + pax_open_kernel();
40767 + *(bool *)&cpufreq_driver->boost_supported = true;
40768 + pax_close_kernel();
40769
40770 /* This will get removed on driver unregister */
40771 return create_boost_sysfs_file();
40772 @@ -2432,8 +2441,11 @@ int cpufreq_register_driver(struct cpufreq_driver *driver_data)
40773 cpufreq_driver = driver_data;
40774 write_unlock_irqrestore(&cpufreq_driver_lock, flags);
40775
40776 - if (driver_data->setpolicy)
40777 - driver_data->flags |= CPUFREQ_CONST_LOOPS;
40778 + if (driver_data->setpolicy) {
40779 + pax_open_kernel();
40780 + *(u8 *)&driver_data->flags |= CPUFREQ_CONST_LOOPS;
40781 + pax_close_kernel();
40782 + }
40783
40784 ret = create_boost_sysfs_file();
40785 if (ret)
40786 diff --git a/drivers/cpufreq/cpufreq_governor.c b/drivers/cpufreq/cpufreq_governor.c
40787 index d994b0f..b0b9d15 100644
40788 --- a/drivers/cpufreq/cpufreq_governor.c
40789 +++ b/drivers/cpufreq/cpufreq_governor.c
40790 @@ -465,7 +465,7 @@ static int cpufreq_governor_start(struct cpufreq_policy *policy,
40791 cs_dbs_info->down_skip = 0;
40792 cs_dbs_info->requested_freq = policy->cur;
40793 } else {
40794 - struct od_ops *od_ops = cdata->gov_ops;
40795 + const struct od_ops *od_ops = cdata->gov_ops;
40796 struct od_cpu_dbs_info_s *od_dbs_info = cdata->get_cpu_dbs_info_s(cpu);
40797
40798 od_dbs_info->rate_mult = 1;
40799 diff --git a/drivers/cpufreq/cpufreq_governor.h b/drivers/cpufreq/cpufreq_governor.h
40800 index 5621bb0..a854d3c 100644
40801 --- a/drivers/cpufreq/cpufreq_governor.h
40802 +++ b/drivers/cpufreq/cpufreq_governor.h
40803 @@ -217,7 +217,7 @@ struct common_dbs_data {
40804 void (*exit)(struct dbs_data *dbs_data, bool notify);
40805
40806 /* Governor specific ops, see below */
40807 - void *gov_ops;
40808 + const void *gov_ops;
40809
40810 /*
40811 * Protects governor's data (struct dbs_data and struct common_dbs_data)
40812 @@ -239,7 +239,7 @@ struct od_ops {
40813 unsigned int (*powersave_bias_target)(struct cpufreq_policy *policy,
40814 unsigned int freq_next, unsigned int relation);
40815 void (*freq_increase)(struct cpufreq_policy *policy, unsigned int freq);
40816 -};
40817 +} __no_const;
40818
40819 static inline int delay_for_sampling_rate(unsigned int sampling_rate)
40820 {
40821 diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c
40822 index 03ac6ce..2d7a94b 100644
40823 --- a/drivers/cpufreq/cpufreq_ondemand.c
40824 +++ b/drivers/cpufreq/cpufreq_ondemand.c
40825 @@ -509,7 +509,7 @@ static void od_exit(struct dbs_data *dbs_data, bool notify)
40826
40827 define_get_cpu_dbs_routines(od_cpu_dbs_info);
40828
40829 -static struct od_ops od_ops = {
40830 +static struct od_ops od_ops __read_only = {
40831 .powersave_bias_init_cpu = ondemand_powersave_bias_init_cpu,
40832 .powersave_bias_target = generic_powersave_bias_target,
40833 .freq_increase = dbs_freq_increase,
40834 @@ -568,14 +568,18 @@ void od_register_powersave_bias_handler(unsigned int (*f)
40835 (struct cpufreq_policy *, unsigned int, unsigned int),
40836 unsigned int powersave_bias)
40837 {
40838 - od_ops.powersave_bias_target = f;
40839 + pax_open_kernel();
40840 + *(void **)&od_ops.powersave_bias_target = f;
40841 + pax_close_kernel();
40842 od_set_powersave_bias(powersave_bias);
40843 }
40844 EXPORT_SYMBOL_GPL(od_register_powersave_bias_handler);
40845
40846 void od_unregister_powersave_bias_handler(void)
40847 {
40848 - od_ops.powersave_bias_target = generic_powersave_bias_target;
40849 + pax_open_kernel();
40850 + *(void **)&od_ops.powersave_bias_target = generic_powersave_bias_target;
40851 + pax_close_kernel();
40852 od_set_powersave_bias(0);
40853 }
40854 EXPORT_SYMBOL_GPL(od_unregister_powersave_bias_handler);
40855 diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
40856 index 98fb882..9f1d2a4 100644
40857 --- a/drivers/cpufreq/intel_pstate.c
40858 +++ b/drivers/cpufreq/intel_pstate.c
40859 @@ -138,10 +138,10 @@ struct pstate_funcs {
40860 struct cpu_defaults {
40861 struct pstate_adjust_policy pid_policy;
40862 struct pstate_funcs funcs;
40863 -};
40864 +} __do_const;
40865
40866 static struct pstate_adjust_policy pid_params;
40867 -static struct pstate_funcs pstate_funcs;
40868 +static struct pstate_funcs *pstate_funcs;
40869 static int hwp_active;
40870
40871 struct perf_limits {
40872 @@ -840,19 +840,19 @@ static void intel_pstate_set_pstate(struct cpudata *cpu, int pstate, bool force)
40873
40874 cpu->pstate.current_pstate = pstate;
40875
40876 - pstate_funcs.set(cpu, pstate);
40877 + pstate_funcs->set(cpu, pstate);
40878 }
40879
40880 static void intel_pstate_get_cpu_pstates(struct cpudata *cpu)
40881 {
40882 - cpu->pstate.min_pstate = pstate_funcs.get_min();
40883 - cpu->pstate.max_pstate = pstate_funcs.get_max();
40884 - cpu->pstate.max_pstate_physical = pstate_funcs.get_max_physical();
40885 - cpu->pstate.turbo_pstate = pstate_funcs.get_turbo();
40886 - cpu->pstate.scaling = pstate_funcs.get_scaling();
40887 + cpu->pstate.min_pstate = pstate_funcs->get_min();
40888 + cpu->pstate.max_pstate = pstate_funcs->get_max();
40889 + cpu->pstate.max_pstate_physical = pstate_funcs->get_max_physical();
40890 + cpu->pstate.turbo_pstate = pstate_funcs->get_turbo();
40891 + cpu->pstate.scaling = pstate_funcs->get_scaling();
40892
40893 - if (pstate_funcs.get_vid)
40894 - pstate_funcs.get_vid(cpu);
40895 + if (pstate_funcs->get_vid)
40896 + pstate_funcs->get_vid(cpu);
40897 intel_pstate_set_pstate(cpu, cpu->pstate.min_pstate, false);
40898 }
40899
40900 @@ -1210,15 +1210,15 @@ static unsigned int force_load;
40901
40902 static int intel_pstate_msrs_not_valid(void)
40903 {
40904 - if (!pstate_funcs.get_max() ||
40905 - !pstate_funcs.get_min() ||
40906 - !pstate_funcs.get_turbo())
40907 + if (!pstate_funcs->get_max() ||
40908 + !pstate_funcs->get_min() ||
40909 + !pstate_funcs->get_turbo())
40910 return -ENODEV;
40911
40912 return 0;
40913 }
40914
40915 -static void copy_pid_params(struct pstate_adjust_policy *policy)
40916 +static void copy_pid_params(const struct pstate_adjust_policy *policy)
40917 {
40918 pid_params.sample_rate_ms = policy->sample_rate_ms;
40919 pid_params.p_gain_pct = policy->p_gain_pct;
40920 @@ -1230,13 +1230,7 @@ static void copy_pid_params(struct pstate_adjust_policy *policy)
40921
40922 static void copy_cpu_funcs(struct pstate_funcs *funcs)
40923 {
40924 - pstate_funcs.get_max = funcs->get_max;
40925 - pstate_funcs.get_max_physical = funcs->get_max_physical;
40926 - pstate_funcs.get_min = funcs->get_min;
40927 - pstate_funcs.get_turbo = funcs->get_turbo;
40928 - pstate_funcs.get_scaling = funcs->get_scaling;
40929 - pstate_funcs.set = funcs->set;
40930 - pstate_funcs.get_vid = funcs->get_vid;
40931 + pstate_funcs = funcs;
40932 }
40933
40934 #if IS_ENABLED(CONFIG_ACPI)
40935 diff --git a/drivers/cpufreq/p4-clockmod.c b/drivers/cpufreq/p4-clockmod.c
40936 index 5dd95da..abc3837 100644
40937 --- a/drivers/cpufreq/p4-clockmod.c
40938 +++ b/drivers/cpufreq/p4-clockmod.c
40939 @@ -134,10 +134,14 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c)
40940 case 0x0F: /* Core Duo */
40941 case 0x16: /* Celeron Core */
40942 case 0x1C: /* Atom */
40943 - p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
40944 + pax_open_kernel();
40945 + *(u8 *)&p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
40946 + pax_close_kernel();
40947 return speedstep_get_frequency(SPEEDSTEP_CPU_PCORE);
40948 case 0x0D: /* Pentium M (Dothan) */
40949 - p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
40950 + pax_open_kernel();
40951 + *(u8 *)&p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
40952 + pax_close_kernel();
40953 /* fall through */
40954 case 0x09: /* Pentium M (Banias) */
40955 return speedstep_get_frequency(SPEEDSTEP_CPU_PM);
40956 @@ -149,7 +153,9 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c)
40957
40958 /* on P-4s, the TSC runs with constant frequency independent whether
40959 * throttling is active or not. */
40960 - p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
40961 + pax_open_kernel();
40962 + *(u8 *)&p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
40963 + pax_close_kernel();
40964
40965 if (speedstep_detect_processor() == SPEEDSTEP_CPU_P4M) {
40966 printk(KERN_WARNING PFX "Warning: Pentium 4-M detected. "
40967 diff --git a/drivers/cpufreq/sparc-us3-cpufreq.c b/drivers/cpufreq/sparc-us3-cpufreq.c
40968 index 9bb42ba..b01b4a2 100644
40969 --- a/drivers/cpufreq/sparc-us3-cpufreq.c
40970 +++ b/drivers/cpufreq/sparc-us3-cpufreq.c
40971 @@ -18,14 +18,12 @@
40972 #include <asm/head.h>
40973 #include <asm/timer.h>
40974
40975 -static struct cpufreq_driver *cpufreq_us3_driver;
40976 -
40977 struct us3_freq_percpu_info {
40978 struct cpufreq_frequency_table table[4];
40979 };
40980
40981 /* Indexed by cpu number. */
40982 -static struct us3_freq_percpu_info *us3_freq_table;
40983 +static struct us3_freq_percpu_info us3_freq_table[NR_CPUS];
40984
40985 /* UltraSPARC-III has three dividers: 1, 2, and 32. These are controlled
40986 * in the Safari config register.
40987 @@ -156,16 +154,27 @@ static int __init us3_freq_cpu_init(struct cpufreq_policy *policy)
40988
40989 static int us3_freq_cpu_exit(struct cpufreq_policy *policy)
40990 {
40991 - if (cpufreq_us3_driver)
40992 - us3_freq_target(policy, 0);
40993 + us3_freq_target(policy, 0);
40994
40995 return 0;
40996 }
40997
40998 +static int __init us3_freq_init(void);
40999 +static void __exit us3_freq_exit(void);
41000 +
41001 +static struct cpufreq_driver cpufreq_us3_driver = {
41002 + .init = us3_freq_cpu_init,
41003 + .verify = cpufreq_generic_frequency_table_verify,
41004 + .target_index = us3_freq_target,
41005 + .get = us3_freq_get,
41006 + .exit = us3_freq_cpu_exit,
41007 + .name = "UltraSPARC-III",
41008 +
41009 +};
41010 +
41011 static int __init us3_freq_init(void)
41012 {
41013 unsigned long manuf, impl, ver;
41014 - int ret;
41015
41016 if (tlb_type != cheetah && tlb_type != cheetah_plus)
41017 return -ENODEV;
41018 @@ -178,55 +187,15 @@ static int __init us3_freq_init(void)
41019 (impl == CHEETAH_IMPL ||
41020 impl == CHEETAH_PLUS_IMPL ||
41021 impl == JAGUAR_IMPL ||
41022 - impl == PANTHER_IMPL)) {
41023 - struct cpufreq_driver *driver;
41024 -
41025 - ret = -ENOMEM;
41026 - driver = kzalloc(sizeof(*driver), GFP_KERNEL);
41027 - if (!driver)
41028 - goto err_out;
41029 -
41030 - us3_freq_table = kzalloc((NR_CPUS * sizeof(*us3_freq_table)),
41031 - GFP_KERNEL);
41032 - if (!us3_freq_table)
41033 - goto err_out;
41034 -
41035 - driver->init = us3_freq_cpu_init;
41036 - driver->verify = cpufreq_generic_frequency_table_verify;
41037 - driver->target_index = us3_freq_target;
41038 - driver->get = us3_freq_get;
41039 - driver->exit = us3_freq_cpu_exit;
41040 - strcpy(driver->name, "UltraSPARC-III");
41041 -
41042 - cpufreq_us3_driver = driver;
41043 - ret = cpufreq_register_driver(driver);
41044 - if (ret)
41045 - goto err_out;
41046 -
41047 - return 0;
41048 -
41049 -err_out:
41050 - if (driver) {
41051 - kfree(driver);
41052 - cpufreq_us3_driver = NULL;
41053 - }
41054 - kfree(us3_freq_table);
41055 - us3_freq_table = NULL;
41056 - return ret;
41057 - }
41058 + impl == PANTHER_IMPL))
41059 + return cpufreq_register_driver(&cpufreq_us3_driver);
41060
41061 return -ENODEV;
41062 }
41063
41064 static void __exit us3_freq_exit(void)
41065 {
41066 - if (cpufreq_us3_driver) {
41067 - cpufreq_unregister_driver(cpufreq_us3_driver);
41068 - kfree(cpufreq_us3_driver);
41069 - cpufreq_us3_driver = NULL;
41070 - kfree(us3_freq_table);
41071 - us3_freq_table = NULL;
41072 - }
41073 + cpufreq_unregister_driver(&cpufreq_us3_driver);
41074 }
41075
41076 MODULE_AUTHOR("David S. Miller <davem@redhat.com>");
41077 diff --git a/drivers/cpufreq/speedstep-centrino.c b/drivers/cpufreq/speedstep-centrino.c
41078 index 7d4a315..21bb886 100644
41079 --- a/drivers/cpufreq/speedstep-centrino.c
41080 +++ b/drivers/cpufreq/speedstep-centrino.c
41081 @@ -351,8 +351,11 @@ static int centrino_cpu_init(struct cpufreq_policy *policy)
41082 !cpu_has(cpu, X86_FEATURE_EST))
41083 return -ENODEV;
41084
41085 - if (cpu_has(cpu, X86_FEATURE_CONSTANT_TSC))
41086 - centrino_driver.flags |= CPUFREQ_CONST_LOOPS;
41087 + if (cpu_has(cpu, X86_FEATURE_CONSTANT_TSC)) {
41088 + pax_open_kernel();
41089 + *(u8 *)&centrino_driver.flags |= CPUFREQ_CONST_LOOPS;
41090 + pax_close_kernel();
41091 + }
41092
41093 if (policy->cpu != 0)
41094 return -ENODEV;
41095 diff --git a/drivers/cpuidle/driver.c b/drivers/cpuidle/driver.c
41096 index 389ade4..e328b5ce 100644
41097 --- a/drivers/cpuidle/driver.c
41098 +++ b/drivers/cpuidle/driver.c
41099 @@ -193,7 +193,7 @@ static int poll_idle(struct cpuidle_device *dev,
41100
41101 static void poll_idle_init(struct cpuidle_driver *drv)
41102 {
41103 - struct cpuidle_state *state = &drv->states[0];
41104 + cpuidle_state_no_const *state = &drv->states[0];
41105
41106 snprintf(state->name, CPUIDLE_NAME_LEN, "POLL");
41107 snprintf(state->desc, CPUIDLE_DESC_LEN, "CPUIDLE CORE POLL IDLE");
41108 diff --git a/drivers/cpuidle/dt_idle_states.c b/drivers/cpuidle/dt_idle_states.c
41109 index a5c111b..1113002 100644
41110 --- a/drivers/cpuidle/dt_idle_states.c
41111 +++ b/drivers/cpuidle/dt_idle_states.c
41112 @@ -21,7 +21,7 @@
41113
41114 #include "dt_idle_states.h"
41115
41116 -static int init_state_node(struct cpuidle_state *idle_state,
41117 +static int init_state_node(cpuidle_state_no_const *idle_state,
41118 const struct of_device_id *matches,
41119 struct device_node *state_node)
41120 {
41121 diff --git a/drivers/cpuidle/governor.c b/drivers/cpuidle/governor.c
41122 index fb9f511..213e6cc 100644
41123 --- a/drivers/cpuidle/governor.c
41124 +++ b/drivers/cpuidle/governor.c
41125 @@ -87,7 +87,7 @@ int cpuidle_register_governor(struct cpuidle_governor *gov)
41126 mutex_lock(&cpuidle_lock);
41127 if (__cpuidle_find_governor(gov->name) == NULL) {
41128 ret = 0;
41129 - list_add_tail(&gov->governor_list, &cpuidle_governors);
41130 + pax_list_add_tail((struct list_head *)&gov->governor_list, &cpuidle_governors);
41131 if (!cpuidle_curr_governor ||
41132 cpuidle_curr_governor->rating < gov->rating)
41133 cpuidle_switch_governor(gov);
41134 diff --git a/drivers/cpuidle/sysfs.c b/drivers/cpuidle/sysfs.c
41135 index 832a2c3..1794080 100644
41136 --- a/drivers/cpuidle/sysfs.c
41137 +++ b/drivers/cpuidle/sysfs.c
41138 @@ -135,7 +135,7 @@ static struct attribute *cpuidle_switch_attrs[] = {
41139 NULL
41140 };
41141
41142 -static struct attribute_group cpuidle_attr_group = {
41143 +static attribute_group_no_const cpuidle_attr_group = {
41144 .attrs = cpuidle_default_attrs,
41145 .name = "cpuidle",
41146 };
41147 diff --git a/drivers/crypto/hifn_795x.c b/drivers/crypto/hifn_795x.c
41148 index ca5c71a..df88d0c 100644
41149 --- a/drivers/crypto/hifn_795x.c
41150 +++ b/drivers/crypto/hifn_795x.c
41151 @@ -49,7 +49,7 @@ module_param_string(hifn_pll_ref, hifn_pll_ref, sizeof(hifn_pll_ref), 0444);
41152 MODULE_PARM_DESC(hifn_pll_ref,
41153 "PLL reference clock (pci[freq] or ext[freq], default ext)");
41154
41155 -static atomic_t hifn_dev_number;
41156 +static atomic_unchecked_t hifn_dev_number;
41157
41158 #define ACRYPTO_OP_DECRYPT 0
41159 #define ACRYPTO_OP_ENCRYPT 1
41160 @@ -2575,7 +2575,7 @@ static int hifn_probe(struct pci_dev *pdev, const struct pci_device_id *id)
41161 goto err_out_disable_pci_device;
41162
41163 snprintf(name, sizeof(name), "hifn%d",
41164 - atomic_inc_return(&hifn_dev_number)-1);
41165 + atomic_inc_return_unchecked(&hifn_dev_number)-1);
41166
41167 err = pci_request_regions(pdev, name);
41168 if (err)
41169 diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
41170 index ca848cc..9049c89 100644
41171 --- a/drivers/devfreq/devfreq.c
41172 +++ b/drivers/devfreq/devfreq.c
41173 @@ -671,7 +671,7 @@ int devfreq_add_governor(struct devfreq_governor *governor)
41174 goto err_out;
41175 }
41176
41177 - list_add(&governor->node, &devfreq_governor_list);
41178 + pax_list_add((struct list_head *)&governor->node, &devfreq_governor_list);
41179
41180 list_for_each_entry(devfreq, &devfreq_list, node) {
41181 int ret = 0;
41182 @@ -759,7 +759,7 @@ int devfreq_remove_governor(struct devfreq_governor *governor)
41183 }
41184 }
41185
41186 - list_del(&governor->node);
41187 + pax_list_del((struct list_head *)&governor->node);
41188 err_out:
41189 mutex_unlock(&devfreq_list_lock);
41190
41191 diff --git a/drivers/dma/sh/shdma-base.c b/drivers/dma/sh/shdma-base.c
41192 index 10fcaba..326f709 100644
41193 --- a/drivers/dma/sh/shdma-base.c
41194 +++ b/drivers/dma/sh/shdma-base.c
41195 @@ -227,8 +227,8 @@ static int shdma_alloc_chan_resources(struct dma_chan *chan)
41196 schan->slave_id = -EINVAL;
41197 }
41198
41199 - schan->desc = kcalloc(NR_DESCS_PER_CHANNEL,
41200 - sdev->desc_size, GFP_KERNEL);
41201 + schan->desc = kcalloc(sdev->desc_size,
41202 + NR_DESCS_PER_CHANNEL, GFP_KERNEL);
41203 if (!schan->desc) {
41204 ret = -ENOMEM;
41205 goto edescalloc;
41206 diff --git a/drivers/dma/sh/shdmac.c b/drivers/dma/sh/shdmac.c
41207 index 11707df..2ea96f7 100644
41208 --- a/drivers/dma/sh/shdmac.c
41209 +++ b/drivers/dma/sh/shdmac.c
41210 @@ -513,7 +513,7 @@ static int sh_dmae_nmi_handler(struct notifier_block *self,
41211 return ret;
41212 }
41213
41214 -static struct notifier_block sh_dmae_nmi_notifier __read_mostly = {
41215 +static struct notifier_block sh_dmae_nmi_notifier = {
41216 .notifier_call = sh_dmae_nmi_handler,
41217
41218 /* Run before NMI debug handler and KGDB */
41219 diff --git a/drivers/edac/edac_device.c b/drivers/edac/edac_device.c
41220 index 5358737..2064670 100644
41221 --- a/drivers/edac/edac_device.c
41222 +++ b/drivers/edac/edac_device.c
41223 @@ -474,9 +474,9 @@ void edac_device_reset_delay_period(struct edac_device_ctl_info *edac_dev,
41224 */
41225 int edac_device_alloc_index(void)
41226 {
41227 - static atomic_t device_indexes = ATOMIC_INIT(0);
41228 + static atomic_unchecked_t device_indexes = ATOMIC_INIT(0);
41229
41230 - return atomic_inc_return(&device_indexes) - 1;
41231 + return atomic_inc_return_unchecked(&device_indexes) - 1;
41232 }
41233 EXPORT_SYMBOL_GPL(edac_device_alloc_index);
41234
41235 diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c
41236 index 58aed67..e6817a1 100644
41237 --- a/drivers/edac/edac_mc_sysfs.c
41238 +++ b/drivers/edac/edac_mc_sysfs.c
41239 @@ -154,7 +154,7 @@ static const char * const edac_caps[] = {
41240 struct dev_ch_attribute {
41241 struct device_attribute attr;
41242 int channel;
41243 -};
41244 +} __do_const;
41245
41246 #define DEVICE_CHANNEL(_name, _mode, _show, _store, _var) \
41247 static struct dev_ch_attribute dev_attr_legacy_##_name = \
41248 diff --git a/drivers/edac/edac_pci.c b/drivers/edac/edac_pci.c
41249 index b4b3860..08d7faa 100644
41250 --- a/drivers/edac/edac_pci.c
41251 +++ b/drivers/edac/edac_pci.c
41252 @@ -29,7 +29,7 @@
41253
41254 static DEFINE_MUTEX(edac_pci_ctls_mutex);
41255 static LIST_HEAD(edac_pci_list);
41256 -static atomic_t pci_indexes = ATOMIC_INIT(0);
41257 +static atomic_unchecked_t pci_indexes = ATOMIC_INIT(0);
41258
41259 /*
41260 * edac_pci_alloc_ctl_info
41261 @@ -314,7 +314,7 @@ EXPORT_SYMBOL_GPL(edac_pci_reset_delay_period);
41262 */
41263 int edac_pci_alloc_index(void)
41264 {
41265 - return atomic_inc_return(&pci_indexes) - 1;
41266 + return atomic_inc_return_unchecked(&pci_indexes) - 1;
41267 }
41268 EXPORT_SYMBOL_GPL(edac_pci_alloc_index);
41269
41270 diff --git a/drivers/edac/edac_pci_sysfs.c b/drivers/edac/edac_pci_sysfs.c
41271 index 24d877f..4e30133 100644
41272 --- a/drivers/edac/edac_pci_sysfs.c
41273 +++ b/drivers/edac/edac_pci_sysfs.c
41274 @@ -23,8 +23,8 @@ static int edac_pci_log_pe = 1; /* log PCI parity errors */
41275 static int edac_pci_log_npe = 1; /* log PCI non-parity error errors */
41276 static int edac_pci_poll_msec = 1000; /* one second workq period */
41277
41278 -static atomic_t pci_parity_count = ATOMIC_INIT(0);
41279 -static atomic_t pci_nonparity_count = ATOMIC_INIT(0);
41280 +static atomic_unchecked_t pci_parity_count = ATOMIC_INIT(0);
41281 +static atomic_unchecked_t pci_nonparity_count = ATOMIC_INIT(0);
41282
41283 static struct kobject *edac_pci_top_main_kobj;
41284 static atomic_t edac_pci_sysfs_refcount = ATOMIC_INIT(0);
41285 @@ -232,7 +232,7 @@ struct edac_pci_dev_attribute {
41286 void *value;
41287 ssize_t(*show) (void *, char *);
41288 ssize_t(*store) (void *, const char *, size_t);
41289 -};
41290 +} __do_const;
41291
41292 /* Set of show/store abstract level functions for PCI Parity object */
41293 static ssize_t edac_pci_dev_show(struct kobject *kobj, struct attribute *attr,
41294 @@ -576,7 +576,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41295 edac_printk(KERN_CRIT, EDAC_PCI,
41296 "Signaled System Error on %s\n",
41297 pci_name(dev));
41298 - atomic_inc(&pci_nonparity_count);
41299 + atomic_inc_unchecked(&pci_nonparity_count);
41300 }
41301
41302 if (status & (PCI_STATUS_PARITY)) {
41303 @@ -584,7 +584,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41304 "Master Data Parity Error on %s\n",
41305 pci_name(dev));
41306
41307 - atomic_inc(&pci_parity_count);
41308 + atomic_inc_unchecked(&pci_parity_count);
41309 }
41310
41311 if (status & (PCI_STATUS_DETECTED_PARITY)) {
41312 @@ -592,7 +592,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41313 "Detected Parity Error on %s\n",
41314 pci_name(dev));
41315
41316 - atomic_inc(&pci_parity_count);
41317 + atomic_inc_unchecked(&pci_parity_count);
41318 }
41319 }
41320
41321 @@ -615,7 +615,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41322 edac_printk(KERN_CRIT, EDAC_PCI, "Bridge "
41323 "Signaled System Error on %s\n",
41324 pci_name(dev));
41325 - atomic_inc(&pci_nonparity_count);
41326 + atomic_inc_unchecked(&pci_nonparity_count);
41327 }
41328
41329 if (status & (PCI_STATUS_PARITY)) {
41330 @@ -623,7 +623,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41331 "Master Data Parity Error on "
41332 "%s\n", pci_name(dev));
41333
41334 - atomic_inc(&pci_parity_count);
41335 + atomic_inc_unchecked(&pci_parity_count);
41336 }
41337
41338 if (status & (PCI_STATUS_DETECTED_PARITY)) {
41339 @@ -631,7 +631,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41340 "Detected Parity Error on %s\n",
41341 pci_name(dev));
41342
41343 - atomic_inc(&pci_parity_count);
41344 + atomic_inc_unchecked(&pci_parity_count);
41345 }
41346 }
41347 }
41348 @@ -669,7 +669,7 @@ void edac_pci_do_parity_check(void)
41349 if (!check_pci_errors)
41350 return;
41351
41352 - before_count = atomic_read(&pci_parity_count);
41353 + before_count = atomic_read_unchecked(&pci_parity_count);
41354
41355 /* scan all PCI devices looking for a Parity Error on devices and
41356 * bridges.
41357 @@ -681,7 +681,7 @@ void edac_pci_do_parity_check(void)
41358 /* Only if operator has selected panic on PCI Error */
41359 if (edac_pci_get_panic_on_pe()) {
41360 /* If the count is different 'after' from 'before' */
41361 - if (before_count != atomic_read(&pci_parity_count))
41362 + if (before_count != atomic_read_unchecked(&pci_parity_count))
41363 panic("EDAC: PCI Parity Error");
41364 }
41365 }
41366 diff --git a/drivers/edac/mce_amd.h b/drivers/edac/mce_amd.h
41367 index c2359a1..8bd119d 100644
41368 --- a/drivers/edac/mce_amd.h
41369 +++ b/drivers/edac/mce_amd.h
41370 @@ -74,7 +74,7 @@ struct amd_decoder_ops {
41371 bool (*mc0_mce)(u16, u8);
41372 bool (*mc1_mce)(u16, u8);
41373 bool (*mc2_mce)(u16, u8);
41374 -};
41375 +} __no_const;
41376
41377 void amd_report_gart_errors(bool);
41378 void amd_register_ecc_decoder(void (*f)(int, struct mce *));
41379 diff --git a/drivers/firewire/core-card.c b/drivers/firewire/core-card.c
41380 index 57ea7f4..af06b76 100644
41381 --- a/drivers/firewire/core-card.c
41382 +++ b/drivers/firewire/core-card.c
41383 @@ -528,9 +528,9 @@ void fw_card_initialize(struct fw_card *card,
41384 const struct fw_card_driver *driver,
41385 struct device *device)
41386 {
41387 - static atomic_t index = ATOMIC_INIT(-1);
41388 + static atomic_unchecked_t index = ATOMIC_INIT(-1);
41389
41390 - card->index = atomic_inc_return(&index);
41391 + card->index = atomic_inc_return_unchecked(&index);
41392 card->driver = driver;
41393 card->device = device;
41394 card->current_tlabel = 0;
41395 @@ -680,7 +680,7 @@ EXPORT_SYMBOL_GPL(fw_card_release);
41396
41397 void fw_core_remove_card(struct fw_card *card)
41398 {
41399 - struct fw_card_driver dummy_driver = dummy_driver_template;
41400 + fw_card_driver_no_const dummy_driver = dummy_driver_template;
41401
41402 card->driver->update_phy_reg(card, 4,
41403 PHY_LINK_ACTIVE | PHY_CONTENDER, 0);
41404 diff --git a/drivers/firewire/core-device.c b/drivers/firewire/core-device.c
41405 index f9e3aee..269dbdb 100644
41406 --- a/drivers/firewire/core-device.c
41407 +++ b/drivers/firewire/core-device.c
41408 @@ -256,7 +256,7 @@ EXPORT_SYMBOL(fw_device_enable_phys_dma);
41409 struct config_rom_attribute {
41410 struct device_attribute attr;
41411 u32 key;
41412 -};
41413 +} __do_const;
41414
41415 static ssize_t show_immediate(struct device *dev,
41416 struct device_attribute *dattr, char *buf)
41417 diff --git a/drivers/firewire/core-transaction.c b/drivers/firewire/core-transaction.c
41418 index d6a09b9..18e90dd 100644
41419 --- a/drivers/firewire/core-transaction.c
41420 +++ b/drivers/firewire/core-transaction.c
41421 @@ -38,6 +38,7 @@
41422 #include <linux/timer.h>
41423 #include <linux/types.h>
41424 #include <linux/workqueue.h>
41425 +#include <linux/sched.h>
41426
41427 #include <asm/byteorder.h>
41428
41429 diff --git a/drivers/firewire/core.h b/drivers/firewire/core.h
41430 index e1480ff6..1a429bd 100644
41431 --- a/drivers/firewire/core.h
41432 +++ b/drivers/firewire/core.h
41433 @@ -111,6 +111,7 @@ struct fw_card_driver {
41434
41435 int (*stop_iso)(struct fw_iso_context *ctx);
41436 };
41437 +typedef struct fw_card_driver __no_const fw_card_driver_no_const;
41438
41439 void fw_card_initialize(struct fw_card *card,
41440 const struct fw_card_driver *driver, struct device *device);
41441 diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c
41442 index c2f5117..e36414d 100644
41443 --- a/drivers/firewire/ohci.c
41444 +++ b/drivers/firewire/ohci.c
41445 @@ -2049,10 +2049,12 @@ static void bus_reset_work(struct work_struct *work)
41446 be32_to_cpu(ohci->next_header));
41447 }
41448
41449 +#ifndef CONFIG_GRKERNSEC
41450 if (param_remote_dma) {
41451 reg_write(ohci, OHCI1394_PhyReqFilterHiSet, ~0);
41452 reg_write(ohci, OHCI1394_PhyReqFilterLoSet, ~0);
41453 }
41454 +#endif
41455
41456 spin_unlock_irq(&ohci->lock);
41457
41458 @@ -2584,8 +2586,10 @@ static int ohci_enable_phys_dma(struct fw_card *card,
41459 unsigned long flags;
41460 int n, ret = 0;
41461
41462 +#ifndef CONFIG_GRKERNSEC
41463 if (param_remote_dma)
41464 return 0;
41465 +#endif
41466
41467 /*
41468 * FIXME: Make sure this bitmask is cleared when we clear the busReset
41469 diff --git a/drivers/firmware/dmi-id.c b/drivers/firmware/dmi-id.c
41470 index 94a58a0..f5eba42 100644
41471 --- a/drivers/firmware/dmi-id.c
41472 +++ b/drivers/firmware/dmi-id.c
41473 @@ -16,7 +16,7 @@
41474 struct dmi_device_attribute{
41475 struct device_attribute dev_attr;
41476 int field;
41477 -};
41478 +} __do_const;
41479 #define to_dmi_dev_attr(_dev_attr) \
41480 container_of(_dev_attr, struct dmi_device_attribute, dev_attr)
41481
41482 diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
41483 index 0e08e66..7824b4a 100644
41484 --- a/drivers/firmware/dmi_scan.c
41485 +++ b/drivers/firmware/dmi_scan.c
41486 @@ -690,14 +690,18 @@ static int __init dmi_init(void)
41487 if (!dmi_table)
41488 goto err_tables;
41489
41490 - bin_attr_smbios_entry_point.size = smbios_entry_point_size;
41491 - bin_attr_smbios_entry_point.private = smbios_entry_point;
41492 + pax_open_kernel();
41493 + *(size_t *)&bin_attr_smbios_entry_point.size = smbios_entry_point_size;
41494 + *(void **)&bin_attr_smbios_entry_point.private = smbios_entry_point;
41495 + pax_close_kernel();
41496 ret = sysfs_create_bin_file(tables_kobj, &bin_attr_smbios_entry_point);
41497 if (ret)
41498 goto err_unmap;
41499
41500 - bin_attr_DMI.size = dmi_len;
41501 - bin_attr_DMI.private = dmi_table;
41502 + pax_open_kernel();
41503 + *(size_t *)&bin_attr_DMI.size = dmi_len;
41504 + *(void **)&bin_attr_DMI.private = dmi_table;
41505 + pax_close_kernel();
41506 ret = sysfs_create_bin_file(tables_kobj, &bin_attr_DMI);
41507 if (!ret)
41508 return 0;
41509 diff --git a/drivers/firmware/efi/cper.c b/drivers/firmware/efi/cper.c
41510 index d425374..1da1716 100644
41511 --- a/drivers/firmware/efi/cper.c
41512 +++ b/drivers/firmware/efi/cper.c
41513 @@ -44,12 +44,12 @@ static char rcd_decode_str[CPER_REC_LEN];
41514 */
41515 u64 cper_next_record_id(void)
41516 {
41517 - static atomic64_t seq;
41518 + static atomic64_unchecked_t seq;
41519
41520 - if (!atomic64_read(&seq))
41521 - atomic64_set(&seq, ((u64)get_seconds()) << 32);
41522 + if (!atomic64_read_unchecked(&seq))
41523 + atomic64_set_unchecked(&seq, ((u64)get_seconds()) << 32);
41524
41525 - return atomic64_inc_return(&seq);
41526 + return atomic64_inc_return_unchecked(&seq);
41527 }
41528 EXPORT_SYMBOL_GPL(cper_next_record_id);
41529
41530 diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
41531 index 027ca212..65689be 100644
41532 --- a/drivers/firmware/efi/efi.c
41533 +++ b/drivers/firmware/efi/efi.c
41534 @@ -174,14 +174,16 @@ static struct attribute_group efi_subsys_attr_group = {
41535 };
41536
41537 static struct efivars generic_efivars;
41538 -static struct efivar_operations generic_ops;
41539 +static efivar_operations_no_const generic_ops __read_only;
41540
41541 static int generic_ops_register(void)
41542 {
41543 - generic_ops.get_variable = efi.get_variable;
41544 - generic_ops.set_variable = efi.set_variable;
41545 - generic_ops.get_next_variable = efi.get_next_variable;
41546 - generic_ops.query_variable_store = efi_query_variable_store;
41547 + pax_open_kernel();
41548 + *(void **)&generic_ops.get_variable = efi.get_variable;
41549 + *(void **)&generic_ops.set_variable = efi.set_variable;
41550 + *(void **)&generic_ops.get_next_variable = efi.get_next_variable;
41551 + *(void **)&generic_ops.query_variable_store = efi_query_variable_store;
41552 + pax_close_kernel();
41553
41554 return efivars_register(&generic_efivars, &generic_ops, efi_kobj);
41555 }
41556 diff --git a/drivers/firmware/efi/efivars.c b/drivers/firmware/efi/efivars.c
41557 index 10e6774..c2d96de 100644
41558 --- a/drivers/firmware/efi/efivars.c
41559 +++ b/drivers/firmware/efi/efivars.c
41560 @@ -583,7 +583,7 @@ efivar_create_sysfs_entry(struct efivar_entry *new_var)
41561 static int
41562 create_efivars_bin_attributes(void)
41563 {
41564 - struct bin_attribute *attr;
41565 + bin_attribute_no_const *attr;
41566 int error;
41567
41568 /* new_var */
41569 diff --git a/drivers/firmware/efi/runtime-map.c b/drivers/firmware/efi/runtime-map.c
41570 index 5c55227..97f4978 100644
41571 --- a/drivers/firmware/efi/runtime-map.c
41572 +++ b/drivers/firmware/efi/runtime-map.c
41573 @@ -97,7 +97,7 @@ static void map_release(struct kobject *kobj)
41574 kfree(entry);
41575 }
41576
41577 -static struct kobj_type __refdata map_ktype = {
41578 +static const struct kobj_type __refconst map_ktype = {
41579 .sysfs_ops = &map_attr_ops,
41580 .default_attrs = def_attrs,
41581 .release = map_release,
41582 diff --git a/drivers/firmware/google/gsmi.c b/drivers/firmware/google/gsmi.c
41583 index f1ab05e..ab51228 100644
41584 --- a/drivers/firmware/google/gsmi.c
41585 +++ b/drivers/firmware/google/gsmi.c
41586 @@ -709,7 +709,7 @@ static u32 __init hash_oem_table_id(char s[8])
41587 return local_hash_64(input, 32);
41588 }
41589
41590 -static struct dmi_system_id gsmi_dmi_table[] __initdata = {
41591 +static const struct dmi_system_id gsmi_dmi_table[] __initconst = {
41592 {
41593 .ident = "Google Board",
41594 .matches = {
41595 diff --git a/drivers/firmware/google/memconsole.c b/drivers/firmware/google/memconsole.c
41596 index 2f569aa..26e4f39 100644
41597 --- a/drivers/firmware/google/memconsole.c
41598 +++ b/drivers/firmware/google/memconsole.c
41599 @@ -136,7 +136,7 @@ static bool __init found_memconsole(void)
41600 return false;
41601 }
41602
41603 -static struct dmi_system_id memconsole_dmi_table[] __initdata = {
41604 +static const struct dmi_system_id memconsole_dmi_table[] __initconst = {
41605 {
41606 .ident = "Google Board",
41607 .matches = {
41608 @@ -155,7 +155,10 @@ static int __init memconsole_init(void)
41609 if (!found_memconsole())
41610 return -ENODEV;
41611
41612 - memconsole_bin_attr.size = memconsole_length;
41613 + pax_open_kernel();
41614 + *(size_t *)&memconsole_bin_attr.size = memconsole_length;
41615 + pax_close_kernel();
41616 +
41617 return sysfs_create_bin_file(firmware_kobj, &memconsole_bin_attr);
41618 }
41619
41620 diff --git a/drivers/firmware/memmap.c b/drivers/firmware/memmap.c
41621 index 5de3ed2..d839c56 100644
41622 --- a/drivers/firmware/memmap.c
41623 +++ b/drivers/firmware/memmap.c
41624 @@ -124,7 +124,7 @@ static void __meminit release_firmware_map_entry(struct kobject *kobj)
41625 kfree(entry);
41626 }
41627
41628 -static struct kobj_type __refdata memmap_ktype = {
41629 +static const struct kobj_type __refconst memmap_ktype = {
41630 .release = release_firmware_map_entry,
41631 .sysfs_ops = &memmap_attr_ops,
41632 .default_attrs = def_attrs,
41633 diff --git a/drivers/firmware/psci.c b/drivers/firmware/psci.c
41634 index d24f35d..5875c5d 100644
41635 --- a/drivers/firmware/psci.c
41636 +++ b/drivers/firmware/psci.c
41637 @@ -54,7 +54,7 @@ bool psci_tos_resident_on(int cpu)
41638 return cpu == resident_cpu;
41639 }
41640
41641 -struct psci_operations psci_ops;
41642 +struct psci_operations psci_ops __read_only;
41643
41644 typedef unsigned long (psci_fn)(unsigned long, unsigned long,
41645 unsigned long, unsigned long);
41646 diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c
41647 index 5e71538..00b7406 100644
41648 --- a/drivers/gpio/gpio-davinci.c
41649 +++ b/drivers/gpio/gpio-davinci.c
41650 @@ -441,9 +441,9 @@ static struct irq_chip *davinci_gpio_get_irq_chip(unsigned int irq)
41651 return &gpio_unbanked.chip;
41652 };
41653
41654 -static struct irq_chip *keystone_gpio_get_irq_chip(unsigned int irq)
41655 +static irq_chip_no_const *keystone_gpio_get_irq_chip(unsigned int irq)
41656 {
41657 - static struct irq_chip gpio_unbanked;
41658 + static irq_chip_no_const gpio_unbanked;
41659
41660 gpio_unbanked = *irq_get_chip(irq);
41661 return &gpio_unbanked;
41662 @@ -473,7 +473,7 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev)
41663 struct davinci_gpio_regs __iomem *g;
41664 struct irq_domain *irq_domain = NULL;
41665 const struct of_device_id *match;
41666 - struct irq_chip *irq_chip;
41667 + irq_chip_no_const *irq_chip;
41668 gpio_get_irq_chip_cb_t gpio_get_irq_chip;
41669
41670 /*
41671 diff --git a/drivers/gpio/gpio-em.c b/drivers/gpio/gpio-em.c
41672 index 6bca1e1..ed8b22e 100644
41673 --- a/drivers/gpio/gpio-em.c
41674 +++ b/drivers/gpio/gpio-em.c
41675 @@ -274,7 +274,7 @@ static int em_gio_probe(struct platform_device *pdev)
41676 struct em_gio_priv *p;
41677 struct resource *io[2], *irq[2];
41678 struct gpio_chip *gpio_chip;
41679 - struct irq_chip *irq_chip;
41680 + irq_chip_no_const *irq_chip;
41681 const char *name = dev_name(&pdev->dev);
41682 unsigned int ngpios;
41683 int ret;
41684 diff --git a/drivers/gpio/gpio-ich.c b/drivers/gpio/gpio-ich.c
41685 index 4ba7ed5..1536b5d 100644
41686 --- a/drivers/gpio/gpio-ich.c
41687 +++ b/drivers/gpio/gpio-ich.c
41688 @@ -94,7 +94,7 @@ struct ichx_desc {
41689 * this option allows driver caching written output values
41690 */
41691 bool use_outlvl_cache;
41692 -};
41693 +} __do_const;
41694
41695 static struct {
41696 spinlock_t lock;
41697 diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
41698 index f7fbb46..cee8e40 100644
41699 --- a/drivers/gpio/gpio-omap.c
41700 +++ b/drivers/gpio/gpio-omap.c
41701 @@ -1069,7 +1069,7 @@ static void omap_gpio_mod_init(struct gpio_bank *bank)
41702 writel_relaxed(0, base + bank->regs->ctrl);
41703 }
41704
41705 -static int omap_gpio_chip_init(struct gpio_bank *bank, struct irq_chip *irqc)
41706 +static int omap_gpio_chip_init(struct gpio_bank *bank, irq_chip_no_const *irqc)
41707 {
41708 static int gpio;
41709 int irq_base = 0;
41710 @@ -1156,7 +1156,7 @@ static int omap_gpio_probe(struct platform_device *pdev)
41711 const struct omap_gpio_platform_data *pdata;
41712 struct resource *res;
41713 struct gpio_bank *bank;
41714 - struct irq_chip *irqc;
41715 + irq_chip_no_const *irqc;
41716 int ret;
41717
41718 match = of_match_device(of_match_ptr(omap_gpio_match), dev);
41719 diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c
41720 index 2a81224..ec01fb3 100644
41721 --- a/drivers/gpio/gpio-rcar.c
41722 +++ b/drivers/gpio/gpio-rcar.c
41723 @@ -398,7 +398,7 @@ static int gpio_rcar_probe(struct platform_device *pdev)
41724 struct gpio_rcar_priv *p;
41725 struct resource *io, *irq;
41726 struct gpio_chip *gpio_chip;
41727 - struct irq_chip *irq_chip;
41728 + irq_chip_no_const *irq_chip;
41729 struct device *dev = &pdev->dev;
41730 const char *name = dev_name(dev);
41731 int ret;
41732 diff --git a/drivers/gpio/gpio-vr41xx.c b/drivers/gpio/gpio-vr41xx.c
41733 index c1caa45..f0f97d2 100644
41734 --- a/drivers/gpio/gpio-vr41xx.c
41735 +++ b/drivers/gpio/gpio-vr41xx.c
41736 @@ -224,7 +224,7 @@ static int giu_get_irq(unsigned int irq)
41737 printk(KERN_ERR "spurious GIU interrupt: %04x(%04x),%04x(%04x)\n",
41738 maskl, pendl, maskh, pendh);
41739
41740 - atomic_inc(&irq_err_count);
41741 + atomic_inc_unchecked(&irq_err_count);
41742
41743 return -EINVAL;
41744 }
41745 diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
41746 index 4e4c308..d041d75 100644
41747 --- a/drivers/gpio/gpiolib.c
41748 +++ b/drivers/gpio/gpiolib.c
41749 @@ -638,8 +638,10 @@ static void gpiochip_irqchip_remove(struct gpio_chip *gpiochip)
41750 }
41751
41752 if (gpiochip->irqchip) {
41753 - gpiochip->irqchip->irq_request_resources = NULL;
41754 - gpiochip->irqchip->irq_release_resources = NULL;
41755 + pax_open_kernel();
41756 + *(void **)&gpiochip->irqchip->irq_request_resources = NULL;
41757 + *(void **)&gpiochip->irqchip->irq_release_resources = NULL;
41758 + pax_close_kernel();
41759 gpiochip->irqchip = NULL;
41760 }
41761 }
41762 @@ -715,8 +717,10 @@ int _gpiochip_irqchip_add(struct gpio_chip *gpiochip,
41763 */
41764 if (!irqchip->irq_request_resources &&
41765 !irqchip->irq_release_resources) {
41766 - irqchip->irq_request_resources = gpiochip_irq_reqres;
41767 - irqchip->irq_release_resources = gpiochip_irq_relres;
41768 + pax_open_kernel();
41769 + *(void **)&irqchip->irq_request_resources = gpiochip_irq_reqres;
41770 + *(void **)&irqchip->irq_release_resources = gpiochip_irq_relres;
41771 + pax_close_kernel();
41772 }
41773
41774 /*
41775 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
41776 index bb1099c..8eff7b2 100644
41777 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
41778 +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
41779 @@ -2338,7 +2338,7 @@ static inline void amdgpu_unregister_atpx_handler(void) {}
41780 * KMS
41781 */
41782 extern const struct drm_ioctl_desc amdgpu_ioctls_kms[];
41783 -extern int amdgpu_max_kms_ioctl;
41784 +extern const int amdgpu_max_kms_ioctl;
41785
41786 int amdgpu_driver_load_kms(struct drm_device *dev, unsigned long flags);
41787 int amdgpu_driver_unload_kms(struct drm_device *dev);
41788 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
41789 index 8e99514..3d68786 100644
41790 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
41791 +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
41792 @@ -737,44 +737,44 @@ static int amdgpu_cgs_get_firmware_info(void *cgs_device,
41793 }
41794
41795 static const struct cgs_ops amdgpu_cgs_ops = {
41796 - amdgpu_cgs_gpu_mem_info,
41797 - amdgpu_cgs_gmap_kmem,
41798 - amdgpu_cgs_gunmap_kmem,
41799 - amdgpu_cgs_alloc_gpu_mem,
41800 - amdgpu_cgs_free_gpu_mem,
41801 - amdgpu_cgs_gmap_gpu_mem,
41802 - amdgpu_cgs_gunmap_gpu_mem,
41803 - amdgpu_cgs_kmap_gpu_mem,
41804 - amdgpu_cgs_kunmap_gpu_mem,
41805 - amdgpu_cgs_read_register,
41806 - amdgpu_cgs_write_register,
41807 - amdgpu_cgs_read_ind_register,
41808 - amdgpu_cgs_write_ind_register,
41809 - amdgpu_cgs_read_pci_config_byte,
41810 - amdgpu_cgs_read_pci_config_word,
41811 - amdgpu_cgs_read_pci_config_dword,
41812 - amdgpu_cgs_write_pci_config_byte,
41813 - amdgpu_cgs_write_pci_config_word,
41814 - amdgpu_cgs_write_pci_config_dword,
41815 - amdgpu_cgs_atom_get_data_table,
41816 - amdgpu_cgs_atom_get_cmd_table_revs,
41817 - amdgpu_cgs_atom_exec_cmd_table,
41818 - amdgpu_cgs_create_pm_request,
41819 - amdgpu_cgs_destroy_pm_request,
41820 - amdgpu_cgs_set_pm_request,
41821 - amdgpu_cgs_pm_request_clock,
41822 - amdgpu_cgs_pm_request_engine,
41823 - amdgpu_cgs_pm_query_clock_limits,
41824 - amdgpu_cgs_set_camera_voltages,
41825 - amdgpu_cgs_get_firmware_info,
41826 - amdgpu_cgs_set_powergating_state,
41827 - amdgpu_cgs_set_clockgating_state
41828 + .gpu_mem_info = amdgpu_cgs_gpu_mem_info,
41829 + .gmap_kmem = amdgpu_cgs_gmap_kmem,
41830 + .gunmap_kmem = amdgpu_cgs_gunmap_kmem,
41831 + .alloc_gpu_mem = amdgpu_cgs_alloc_gpu_mem,
41832 + .free_gpu_mem = amdgpu_cgs_free_gpu_mem,
41833 + .gmap_gpu_mem = amdgpu_cgs_gmap_gpu_mem,
41834 + .gunmap_gpu_mem = amdgpu_cgs_gunmap_gpu_mem,
41835 + .kmap_gpu_mem = amdgpu_cgs_kmap_gpu_mem,
41836 + .kunmap_gpu_mem = amdgpu_cgs_kunmap_gpu_mem,
41837 + .read_register = amdgpu_cgs_read_register,
41838 + .write_register = amdgpu_cgs_write_register,
41839 + .read_ind_register = amdgpu_cgs_read_ind_register,
41840 + .write_ind_register = amdgpu_cgs_write_ind_register,
41841 + .read_pci_config_byte = amdgpu_cgs_read_pci_config_byte,
41842 + .read_pci_config_word = amdgpu_cgs_read_pci_config_word,
41843 + .read_pci_config_dword = amdgpu_cgs_read_pci_config_dword,
41844 + .write_pci_config_byte = amdgpu_cgs_write_pci_config_byte,
41845 + .write_pci_config_word = amdgpu_cgs_write_pci_config_word,
41846 + .write_pci_config_dword = amdgpu_cgs_write_pci_config_dword,
41847 + .atom_get_data_table = amdgpu_cgs_atom_get_data_table,
41848 + .atom_get_cmd_table_revs = amdgpu_cgs_atom_get_cmd_table_revs,
41849 + .atom_exec_cmd_table = amdgpu_cgs_atom_exec_cmd_table,
41850 + .create_pm_request = amdgpu_cgs_create_pm_request,
41851 + .destroy_pm_request = amdgpu_cgs_destroy_pm_request,
41852 + .set_pm_request = amdgpu_cgs_set_pm_request,
41853 + .pm_request_clock = amdgpu_cgs_pm_request_clock,
41854 + .pm_request_engine = amdgpu_cgs_pm_request_engine,
41855 + .pm_query_clock_limits = amdgpu_cgs_pm_query_clock_limits,
41856 + .set_camera_voltages = amdgpu_cgs_set_camera_voltages,
41857 + .get_firmware_info = amdgpu_cgs_get_firmware_info,
41858 + .set_powergating_state = amdgpu_cgs_set_powergating_state,
41859 + .set_clockgating_state = amdgpu_cgs_set_clockgating_state
41860 };
41861
41862 static const struct cgs_os_ops amdgpu_cgs_os_ops = {
41863 - amdgpu_cgs_add_irq_source,
41864 - amdgpu_cgs_irq_get,
41865 - amdgpu_cgs_irq_put
41866 + .add_irq_source = amdgpu_cgs_add_irq_source,
41867 + .irq_get = amdgpu_cgs_irq_get,
41868 + .irq_put = amdgpu_cgs_irq_put
41869 };
41870
41871 void *amdgpu_cgs_create_device(struct amdgpu_device *adev)
41872 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
41873 index c961fe0..acde4f5 100644
41874 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
41875 +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
41876 @@ -1075,7 +1075,7 @@ static bool amdgpu_switcheroo_can_switch(struct pci_dev *pdev)
41877 * locking inversion with the driver load path. And the access here is
41878 * completely racy anyway. So don't bother with locking for now.
41879 */
41880 - return dev->open_count == 0;
41881 + return local_read(&dev->open_count) == 0;
41882 }
41883
41884 static const struct vga_switcheroo_client_ops amdgpu_switcheroo_ops = {
41885 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
41886 index 8d6668c..ea61792 100644
41887 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
41888 +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
41889 @@ -481,7 +481,7 @@ static struct drm_driver kms_driver = {
41890 .driver_features =
41891 DRIVER_USE_AGP |
41892 DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM |
41893 - DRIVER_PRIME | DRIVER_RENDER,
41894 + DRIVER_PRIME | DRIVER_RENDER | DRIVER_MODESET,
41895 .dev_priv_size = 0,
41896 .load = amdgpu_driver_load_kms,
41897 .open = amdgpu_driver_open_kms,
41898 @@ -532,9 +532,6 @@ static struct drm_driver kms_driver = {
41899 .patchlevel = KMS_DRIVER_PATCHLEVEL,
41900 };
41901
41902 -static struct drm_driver *driver;
41903 -static struct pci_driver *pdriver;
41904 -
41905 static struct pci_driver amdgpu_kms_pci_driver = {
41906 .name = DRIVER_NAME,
41907 .id_table = pciidlist,
41908 @@ -552,22 +549,23 @@ static int __init amdgpu_init(void)
41909 }
41910 #endif
41911 DRM_INFO("amdgpu kernel modesetting enabled.\n");
41912 - driver = &kms_driver;
41913 - pdriver = &amdgpu_kms_pci_driver;
41914 - driver->driver_features |= DRIVER_MODESET;
41915 - driver->num_ioctls = amdgpu_max_kms_ioctl;
41916 +
41917 + pax_open_kernel();
41918 + *(int *)&kms_driver.num_ioctls = amdgpu_max_kms_ioctl;
41919 + pax_close_kernel();
41920 +
41921 amdgpu_register_atpx_handler();
41922
41923 amdgpu_amdkfd_init();
41924
41925 /* let modprobe override vga console setting */
41926 - return drm_pci_init(driver, pdriver);
41927 + return drm_pci_init(&kms_driver, &amdgpu_kms_pci_driver);
41928 }
41929
41930 static void __exit amdgpu_exit(void)
41931 {
41932 amdgpu_amdkfd_fini();
41933 - drm_pci_exit(driver, pdriver);
41934 + drm_pci_exit(&kms_driver, &amdgpu_kms_pci_driver);
41935 amdgpu_unregister_atpx_handler();
41936 }
41937
41938 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
41939 index e23843f..9ecc6f3 100644
41940 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
41941 +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
41942 @@ -749,4 +749,4 @@ const struct drm_ioctl_desc amdgpu_ioctls_kms[] = {
41943 DRM_IOCTL_DEF_DRV(AMDGPU_GEM_OP, amdgpu_gem_op_ioctl, DRM_AUTH|DRM_RENDER_ALLOW),
41944 DRM_IOCTL_DEF_DRV(AMDGPU_GEM_USERPTR, amdgpu_gem_userptr_ioctl, DRM_AUTH|DRM_RENDER_ALLOW),
41945 };
41946 -int amdgpu_max_kms_ioctl = ARRAY_SIZE(amdgpu_ioctls_kms);
41947 +const int amdgpu_max_kms_ioctl = ARRAY_SIZE(amdgpu_ioctls_kms);
41948 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
41949 index c6a1b4c..32873f8 100644
41950 --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
41951 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
41952 @@ -419,7 +419,7 @@ static int kfd_ioctl_set_memory_policy(struct file *filep,
41953 (args->alternate_policy == KFD_IOC_CACHE_POLICY_COHERENT)
41954 ? cache_policy_coherent : cache_policy_noncoherent;
41955
41956 - if (!dev->dqm->ops.set_cache_memory_policy(dev->dqm,
41957 + if (!dev->dqm->ops->set_cache_memory_policy(dev->dqm,
41958 &pdd->qpd,
41959 default_policy,
41960 alternate_policy,
41961 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
41962 index 3f95f7c..0a62dad 100644
41963 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c
41964 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
41965 @@ -298,7 +298,7 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd,
41966 goto device_queue_manager_error;
41967 }
41968
41969 - if (kfd->dqm->ops.start(kfd->dqm) != 0) {
41970 + if (kfd->dqm->ops->start(kfd->dqm) != 0) {
41971 dev_err(kfd_device,
41972 "Error starting queuen manager for device (%x:%x)\n",
41973 kfd->pdev->vendor, kfd->pdev->device);
41974 @@ -354,7 +354,7 @@ void kgd2kfd_suspend(struct kfd_dev *kfd)
41975 BUG_ON(kfd == NULL);
41976
41977 if (kfd->init_complete) {
41978 - kfd->dqm->ops.stop(kfd->dqm);
41979 + kfd->dqm->ops->stop(kfd->dqm);
41980 amd_iommu_set_invalidate_ctx_cb(kfd->pdev, NULL);
41981 amd_iommu_set_invalid_ppr_cb(kfd->pdev, NULL);
41982 amd_iommu_free_device(kfd->pdev);
41983 @@ -377,7 +377,7 @@ int kgd2kfd_resume(struct kfd_dev *kfd)
41984 amd_iommu_set_invalidate_ctx_cb(kfd->pdev,
41985 iommu_pasid_shutdown_callback);
41986 amd_iommu_set_invalid_ppr_cb(kfd->pdev, iommu_invalid_ppr_cb);
41987 - kfd->dqm->ops.start(kfd->dqm);
41988 + kfd->dqm->ops->start(kfd->dqm);
41989 }
41990
41991 return 0;
41992 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
41993 index 4bb7f42..320fcac 100644
41994 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
41995 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
41996 @@ -242,7 +242,7 @@ static int create_compute_queue_nocpsch(struct device_queue_manager *dqm,
41997
41998 BUG_ON(!dqm || !q || !qpd);
41999
42000 - mqd = dqm->ops.get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
42001 + mqd = dqm->ops->get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
42002 if (mqd == NULL)
42003 return -ENOMEM;
42004
42005 @@ -288,14 +288,14 @@ static int destroy_queue_nocpsch(struct device_queue_manager *dqm,
42006 mutex_lock(&dqm->lock);
42007
42008 if (q->properties.type == KFD_QUEUE_TYPE_COMPUTE) {
42009 - mqd = dqm->ops.get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
42010 + mqd = dqm->ops->get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
42011 if (mqd == NULL) {
42012 retval = -ENOMEM;
42013 goto out;
42014 }
42015 deallocate_hqd(dqm, q);
42016 } else if (q->properties.type == KFD_QUEUE_TYPE_SDMA) {
42017 - mqd = dqm->ops.get_mqd_manager(dqm, KFD_MQD_TYPE_SDMA);
42018 + mqd = dqm->ops->get_mqd_manager(dqm, KFD_MQD_TYPE_SDMA);
42019 if (mqd == NULL) {
42020 retval = -ENOMEM;
42021 goto out;
42022 @@ -347,7 +347,7 @@ static int update_queue(struct device_queue_manager *dqm, struct queue *q)
42023 BUG_ON(!dqm || !q || !q->mqd);
42024
42025 mutex_lock(&dqm->lock);
42026 - mqd = dqm->ops.get_mqd_manager(dqm,
42027 + mqd = dqm->ops->get_mqd_manager(dqm,
42028 get_mqd_type_from_queue_type(q->properties.type));
42029 if (mqd == NULL) {
42030 mutex_unlock(&dqm->lock);
42031 @@ -414,7 +414,7 @@ static int register_process_nocpsch(struct device_queue_manager *dqm,
42032 mutex_lock(&dqm->lock);
42033 list_add(&n->list, &dqm->queues);
42034
42035 - retval = dqm->ops_asic_specific.register_process(dqm, qpd);
42036 + retval = dqm->ops_asic_specific->register_process(dqm, qpd);
42037
42038 dqm->processes_count++;
42039
42040 @@ -502,7 +502,7 @@ int init_pipelines(struct device_queue_manager *dqm,
42041
42042 memset(hpdptr, 0, CIK_HPD_EOP_BYTES * pipes_num);
42043
42044 - mqd = dqm->ops.get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
42045 + mqd = dqm->ops->get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
42046 if (mqd == NULL) {
42047 kfd_gtt_sa_free(dqm->dev, dqm->pipeline_mem);
42048 return -ENOMEM;
42049 @@ -635,7 +635,7 @@ static int create_sdma_queue_nocpsch(struct device_queue_manager *dqm,
42050 struct mqd_manager *mqd;
42051 int retval;
42052
42053 - mqd = dqm->ops.get_mqd_manager(dqm, KFD_MQD_TYPE_SDMA);
42054 + mqd = dqm->ops->get_mqd_manager(dqm, KFD_MQD_TYPE_SDMA);
42055 if (!mqd)
42056 return -ENOMEM;
42057
42058 @@ -650,7 +650,7 @@ static int create_sdma_queue_nocpsch(struct device_queue_manager *dqm,
42059 pr_debug(" sdma queue id: %d\n", q->properties.sdma_queue_id);
42060 pr_debug(" sdma engine id: %d\n", q->properties.sdma_engine_id);
42061
42062 - dqm->ops_asic_specific.init_sdma_vm(dqm, q, qpd);
42063 + dqm->ops_asic_specific->init_sdma_vm(dqm, q, qpd);
42064 retval = mqd->init_mqd(mqd, &q->mqd, &q->mqd_mem_obj,
42065 &q->gart_mqd_addr, &q->properties);
42066 if (retval != 0) {
42067 @@ -712,7 +712,7 @@ static int initialize_cpsch(struct device_queue_manager *dqm)
42068 dqm->queue_count = dqm->processes_count = 0;
42069 dqm->sdma_queue_count = 0;
42070 dqm->active_runlist = false;
42071 - retval = dqm->ops_asic_specific.initialize(dqm);
42072 + retval = dqm->ops_asic_specific->initialize(dqm);
42073 if (retval != 0)
42074 goto fail_init_pipelines;
42075
42076 @@ -879,7 +879,7 @@ static int create_queue_cpsch(struct device_queue_manager *dqm, struct queue *q,
42077 if (q->properties.type == KFD_QUEUE_TYPE_SDMA)
42078 select_sdma_engine_id(q);
42079
42080 - mqd = dqm->ops.get_mqd_manager(dqm,
42081 + mqd = dqm->ops->get_mqd_manager(dqm,
42082 get_mqd_type_from_queue_type(q->properties.type));
42083
42084 if (mqd == NULL) {
42085 @@ -887,7 +887,7 @@ static int create_queue_cpsch(struct device_queue_manager *dqm, struct queue *q,
42086 return -ENOMEM;
42087 }
42088
42089 - dqm->ops_asic_specific.init_sdma_vm(dqm, q, qpd);
42090 + dqm->ops_asic_specific->init_sdma_vm(dqm, q, qpd);
42091 retval = mqd->init_mqd(mqd, &q->mqd, &q->mqd_mem_obj,
42092 &q->gart_mqd_addr, &q->properties);
42093 if (retval != 0)
42094 @@ -1060,7 +1060,7 @@ static int destroy_queue_cpsch(struct device_queue_manager *dqm,
42095
42096 }
42097
42098 - mqd = dqm->ops.get_mqd_manager(dqm,
42099 + mqd = dqm->ops->get_mqd_manager(dqm,
42100 get_mqd_type_from_queue_type(q->properties.type));
42101 if (!mqd) {
42102 retval = -ENOMEM;
42103 @@ -1149,7 +1149,7 @@ static bool set_cache_memory_policy(struct device_queue_manager *dqm,
42104 qpd->sh_mem_ape1_limit = limit >> 16;
42105 }
42106
42107 - retval = dqm->ops_asic_specific.set_cache_memory_policy(
42108 + retval = dqm->ops_asic_specific->set_cache_memory_policy(
42109 dqm,
42110 qpd,
42111 default_policy,
42112 @@ -1172,6 +1172,36 @@ out:
42113 return false;
42114 }
42115
42116 +static const struct device_queue_manager_ops cp_dqm_ops = {
42117 + .create_queue = create_queue_cpsch,
42118 + .initialize = initialize_cpsch,
42119 + .start = start_cpsch,
42120 + .stop = stop_cpsch,
42121 + .destroy_queue = destroy_queue_cpsch,
42122 + .update_queue = update_queue,
42123 + .get_mqd_manager = get_mqd_manager_nocpsch,
42124 + .register_process = register_process_nocpsch,
42125 + .unregister_process = unregister_process_nocpsch,
42126 + .uninitialize = uninitialize_nocpsch,
42127 + .create_kernel_queue = create_kernel_queue_cpsch,
42128 + .destroy_kernel_queue = destroy_kernel_queue_cpsch,
42129 + .set_cache_memory_policy = set_cache_memory_policy,
42130 +};
42131 +
42132 +static const struct device_queue_manager_ops no_cp_dqm_ops = {
42133 + .start = start_nocpsch,
42134 + .stop = stop_nocpsch,
42135 + .create_queue = create_queue_nocpsch,
42136 + .destroy_queue = destroy_queue_nocpsch,
42137 + .update_queue = update_queue,
42138 + .get_mqd_manager = get_mqd_manager_nocpsch,
42139 + .register_process = register_process_nocpsch,
42140 + .unregister_process = unregister_process_nocpsch,
42141 + .initialize = initialize_nocpsch,
42142 + .uninitialize = uninitialize_nocpsch,
42143 + .set_cache_memory_policy = set_cache_memory_policy,
42144 +};
42145 +
42146 struct device_queue_manager *device_queue_manager_init(struct kfd_dev *dev)
42147 {
42148 struct device_queue_manager *dqm;
42149 @@ -1189,33 +1219,11 @@ struct device_queue_manager *device_queue_manager_init(struct kfd_dev *dev)
42150 case KFD_SCHED_POLICY_HWS:
42151 case KFD_SCHED_POLICY_HWS_NO_OVERSUBSCRIPTION:
42152 /* initialize dqm for cp scheduling */
42153 - dqm->ops.create_queue = create_queue_cpsch;
42154 - dqm->ops.initialize = initialize_cpsch;
42155 - dqm->ops.start = start_cpsch;
42156 - dqm->ops.stop = stop_cpsch;
42157 - dqm->ops.destroy_queue = destroy_queue_cpsch;
42158 - dqm->ops.update_queue = update_queue;
42159 - dqm->ops.get_mqd_manager = get_mqd_manager_nocpsch;
42160 - dqm->ops.register_process = register_process_nocpsch;
42161 - dqm->ops.unregister_process = unregister_process_nocpsch;
42162 - dqm->ops.uninitialize = uninitialize_nocpsch;
42163 - dqm->ops.create_kernel_queue = create_kernel_queue_cpsch;
42164 - dqm->ops.destroy_kernel_queue = destroy_kernel_queue_cpsch;
42165 - dqm->ops.set_cache_memory_policy = set_cache_memory_policy;
42166 + dqm->ops = &cp_dqm_ops;
42167 break;
42168 case KFD_SCHED_POLICY_NO_HWS:
42169 /* initialize dqm for no cp scheduling */
42170 - dqm->ops.start = start_nocpsch;
42171 - dqm->ops.stop = stop_nocpsch;
42172 - dqm->ops.create_queue = create_queue_nocpsch;
42173 - dqm->ops.destroy_queue = destroy_queue_nocpsch;
42174 - dqm->ops.update_queue = update_queue;
42175 - dqm->ops.get_mqd_manager = get_mqd_manager_nocpsch;
42176 - dqm->ops.register_process = register_process_nocpsch;
42177 - dqm->ops.unregister_process = unregister_process_nocpsch;
42178 - dqm->ops.initialize = initialize_nocpsch;
42179 - dqm->ops.uninitialize = uninitialize_nocpsch;
42180 - dqm->ops.set_cache_memory_policy = set_cache_memory_policy;
42181 + dqm->ops = &no_cp_dqm_ops;
42182 break;
42183 default:
42184 BUG();
42185 @@ -1224,15 +1232,15 @@ struct device_queue_manager *device_queue_manager_init(struct kfd_dev *dev)
42186
42187 switch (dev->device_info->asic_family) {
42188 case CHIP_CARRIZO:
42189 - device_queue_manager_init_vi(&dqm->ops_asic_specific);
42190 + device_queue_manager_init_vi(dqm);
42191 break;
42192
42193 case CHIP_KAVERI:
42194 - device_queue_manager_init_cik(&dqm->ops_asic_specific);
42195 + device_queue_manager_init_cik(dqm);
42196 break;
42197 }
42198
42199 - if (dqm->ops.initialize(dqm) != 0) {
42200 + if (dqm->ops->initialize(dqm) != 0) {
42201 kfree(dqm);
42202 return NULL;
42203 }
42204 @@ -1244,6 +1252,6 @@ void device_queue_manager_uninit(struct device_queue_manager *dqm)
42205 {
42206 BUG_ON(!dqm);
42207
42208 - dqm->ops.uninitialize(dqm);
42209 + dqm->ops->uninitialize(dqm);
42210 kfree(dqm);
42211 }
42212 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h
42213 index ec4036a..a7800c0 100644
42214 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h
42215 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h
42216 @@ -154,8 +154,8 @@ struct device_queue_manager_asic_ops {
42217 */
42218
42219 struct device_queue_manager {
42220 - struct device_queue_manager_ops ops;
42221 - struct device_queue_manager_asic_ops ops_asic_specific;
42222 + const struct device_queue_manager_ops *ops;
42223 + const struct device_queue_manager_asic_ops *ops_asic_specific;
42224
42225 struct mqd_manager *mqds[KFD_MQD_TYPE_MAX];
42226 struct packet_manager packets;
42227 @@ -178,8 +178,8 @@ struct device_queue_manager {
42228 bool active_runlist;
42229 };
42230
42231 -void device_queue_manager_init_cik(struct device_queue_manager_asic_ops *ops);
42232 -void device_queue_manager_init_vi(struct device_queue_manager_asic_ops *ops);
42233 +void device_queue_manager_init_cik(struct device_queue_manager *dqm);
42234 +void device_queue_manager_init_vi(struct device_queue_manager *dqm);
42235 void program_sh_mem_settings(struct device_queue_manager *dqm,
42236 struct qcm_process_device *qpd);
42237 int init_pipelines(struct device_queue_manager *dqm,
42238 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
42239 index c6f435a..34fb247 100644
42240 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_cik.c
42241 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_cik.c
42242 @@ -37,12 +37,16 @@ static int initialize_cpsch_cik(struct device_queue_manager *dqm);
42243 static void init_sdma_vm(struct device_queue_manager *dqm, struct queue *q,
42244 struct qcm_process_device *qpd);
42245
42246 -void device_queue_manager_init_cik(struct device_queue_manager_asic_ops *ops)
42247 +static const struct device_queue_manager_asic_ops cik_dqm_asic_ops = {
42248 + .set_cache_memory_policy = set_cache_memory_policy_cik,
42249 + .register_process = register_process_cik,
42250 + .initialize = initialize_cpsch_cik,
42251 + .init_sdma_vm = init_sdma_vm,
42252 +};
42253 +
42254 +void device_queue_manager_init_cik(struct device_queue_manager *dqm)
42255 {
42256 - ops->set_cache_memory_policy = set_cache_memory_policy_cik;
42257 - ops->register_process = register_process_cik;
42258 - ops->initialize = initialize_cpsch_cik;
42259 - ops->init_sdma_vm = init_sdma_vm;
42260 + dqm->ops_asic_specific = &cik_dqm_asic_ops;
42261 }
42262
42263 static uint32_t compute_sh_mem_bases_64bit(unsigned int top_address_nybble)
42264 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
42265 index 7e9cae9..fbe7ba5 100644
42266 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_vi.c
42267 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_vi.c
42268 @@ -39,12 +39,16 @@ static int initialize_cpsch_vi(struct device_queue_manager *dqm);
42269 static void init_sdma_vm(struct device_queue_manager *dqm, struct queue *q,
42270 struct qcm_process_device *qpd);
42271
42272 -void device_queue_manager_init_vi(struct device_queue_manager_asic_ops *ops)
42273 +static const struct device_queue_manager_asic_ops vi_dqm_asic_ops = {
42274 + .set_cache_memory_policy = set_cache_memory_policy_vi,
42275 + .register_process = register_process_vi,
42276 + .initialize = initialize_cpsch_vi,
42277 + .init_sdma_vm = init_sdma_vm,
42278 +};
42279 +
42280 +void device_queue_manager_init_vi(struct device_queue_manager *dqm)
42281 {
42282 - ops->set_cache_memory_policy = set_cache_memory_policy_vi;
42283 - ops->register_process = register_process_vi;
42284 - ops->initialize = initialize_cpsch_vi;
42285 - ops->init_sdma_vm = init_sdma_vm;
42286 + dqm->ops_asic_specific = &vi_dqm_asic_ops;
42287 }
42288
42289 static uint32_t compute_sh_mem_bases_64bit(unsigned int top_address_nybble)
42290 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c b/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c
42291 index 7f134aa..cd34d4a 100644
42292 --- a/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c
42293 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c
42294 @@ -50,8 +50,8 @@ static void interrupt_wq(struct work_struct *);
42295
42296 int kfd_interrupt_init(struct kfd_dev *kfd)
42297 {
42298 - void *interrupt_ring = kmalloc_array(KFD_INTERRUPT_RING_SIZE,
42299 - kfd->device_info->ih_ring_entry_size,
42300 + void *interrupt_ring = kmalloc_array(kfd->device_info->ih_ring_entry_size,
42301 + KFD_INTERRUPT_RING_SIZE,
42302 GFP_KERNEL);
42303 if (!interrupt_ring)
42304 return -ENOMEM;
42305 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c
42306 index 8fa8941..5ae07df 100644
42307 --- a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c
42308 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c
42309 @@ -56,7 +56,7 @@ static bool initialize(struct kernel_queue *kq, struct kfd_dev *dev,
42310 switch (type) {
42311 case KFD_QUEUE_TYPE_DIQ:
42312 case KFD_QUEUE_TYPE_HIQ:
42313 - kq->mqd = dev->dqm->ops.get_mqd_manager(dev->dqm,
42314 + kq->mqd = dev->dqm->ops->get_mqd_manager(dev->dqm,
42315 KFD_MQD_TYPE_HIQ);
42316 break;
42317 default:
42318 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.h b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.h
42319 index 5940531..a75b0e5 100644
42320 --- a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.h
42321 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.h
42322 @@ -62,7 +62,7 @@ struct kernel_queue_ops {
42323
42324 void (*submit_packet)(struct kernel_queue *kq);
42325 void (*rollback_packet)(struct kernel_queue *kq);
42326 -};
42327 +} __no_const;
42328
42329 struct kernel_queue {
42330 struct kernel_queue_ops ops;
42331 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
42332 index 7b69070..d7bd78b 100644
42333 --- a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
42334 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
42335 @@ -194,7 +194,7 @@ int pqm_create_queue(struct process_queue_manager *pqm,
42336
42337 if (list_empty(&pqm->queues)) {
42338 pdd->qpd.pqm = pqm;
42339 - dev->dqm->ops.register_process(dev->dqm, &pdd->qpd);
42340 + dev->dqm->ops->register_process(dev->dqm, &pdd->qpd);
42341 }
42342
42343 pqn = kzalloc(sizeof(struct process_queue_node), GFP_KERNEL);
42344 @@ -220,7 +220,7 @@ int pqm_create_queue(struct process_queue_manager *pqm,
42345 goto err_create_queue;
42346 pqn->q = q;
42347 pqn->kq = NULL;
42348 - retval = dev->dqm->ops.create_queue(dev->dqm, q, &pdd->qpd,
42349 + retval = dev->dqm->ops->create_queue(dev->dqm, q, &pdd->qpd,
42350 &q->properties.vmid);
42351 pr_debug("DQM returned %d for create_queue\n", retval);
42352 print_queue(q);
42353 @@ -234,7 +234,7 @@ int pqm_create_queue(struct process_queue_manager *pqm,
42354 kq->queue->properties.queue_id = *qid;
42355 pqn->kq = kq;
42356 pqn->q = NULL;
42357 - retval = dev->dqm->ops.create_kernel_queue(dev->dqm,
42358 + retval = dev->dqm->ops->create_kernel_queue(dev->dqm,
42359 kq, &pdd->qpd);
42360 break;
42361 default:
42362 @@ -265,7 +265,7 @@ err_allocate_pqn:
42363 /* check if queues list is empty unregister process from device */
42364 clear_bit(*qid, pqm->queue_slot_bitmap);
42365 if (list_empty(&pqm->queues))
42366 - dev->dqm->ops.unregister_process(dev->dqm, &pdd->qpd);
42367 + dev->dqm->ops->unregister_process(dev->dqm, &pdd->qpd);
42368 return retval;
42369 }
42370
42371 @@ -306,13 +306,13 @@ int pqm_destroy_queue(struct process_queue_manager *pqm, unsigned int qid)
42372 if (pqn->kq) {
42373 /* destroy kernel queue (DIQ) */
42374 dqm = pqn->kq->dev->dqm;
42375 - dqm->ops.destroy_kernel_queue(dqm, pqn->kq, &pdd->qpd);
42376 + dqm->ops->destroy_kernel_queue(dqm, pqn->kq, &pdd->qpd);
42377 kernel_queue_uninit(pqn->kq);
42378 }
42379
42380 if (pqn->q) {
42381 dqm = pqn->q->device->dqm;
42382 - retval = dqm->ops.destroy_queue(dqm, &pdd->qpd, pqn->q);
42383 + retval = dqm->ops->destroy_queue(dqm, &pdd->qpd, pqn->q);
42384 if (retval != 0)
42385 return retval;
42386
42387 @@ -324,7 +324,7 @@ int pqm_destroy_queue(struct process_queue_manager *pqm, unsigned int qid)
42388 clear_bit(qid, pqm->queue_slot_bitmap);
42389
42390 if (list_empty(&pqm->queues))
42391 - dqm->ops.unregister_process(dqm, &pdd->qpd);
42392 + dqm->ops->unregister_process(dqm, &pdd->qpd);
42393
42394 return retval;
42395 }
42396 @@ -349,7 +349,7 @@ int pqm_update_queue(struct process_queue_manager *pqm, unsigned int qid,
42397 pqn->q->properties.queue_percent = p->queue_percent;
42398 pqn->q->properties.priority = p->priority;
42399
42400 - retval = pqn->q->device->dqm->ops.update_queue(pqn->q->device->dqm,
42401 + retval = pqn->q->device->dqm->ops->update_queue(pqn->q->device->dqm,
42402 pqn->q);
42403 if (retval != 0)
42404 return retval;
42405 diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
42406 index 3a4820e..ece12c8 100644
42407 --- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
42408 +++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
42409 @@ -135,7 +135,7 @@ int amd_sched_entity_init(struct amd_gpu_scheduler *sched,
42410 if (r)
42411 return r;
42412
42413 - atomic_set(&entity->fence_seq, 0);
42414 + atomic_set_unchecked(&entity->fence_seq, 0);
42415 entity->fence_context = fence_context_alloc(1);
42416
42417 /* Add the entity to the run queue */
42418 diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
42419 index a0f0ae5..1771582 100644
42420 --- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
42421 +++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
42422 @@ -49,7 +49,7 @@ struct amd_sched_entity {
42423 spinlock_t queue_lock;
42424 struct kfifo job_queue;
42425
42426 - atomic_t fence_seq;
42427 + atomic_unchecked_t fence_seq;
42428 uint64_t fence_context;
42429
42430 struct fence *dependency;
42431 diff --git a/drivers/gpu/drm/amd/scheduler/sched_fence.c b/drivers/gpu/drm/amd/scheduler/sched_fence.c
42432 index 87c78ee..59dc36e 100644
42433 --- a/drivers/gpu/drm/amd/scheduler/sched_fence.c
42434 +++ b/drivers/gpu/drm/amd/scheduler/sched_fence.c
42435 @@ -41,7 +41,7 @@ struct amd_sched_fence *amd_sched_fence_create(struct amd_sched_entity *s_entity
42436 fence->sched = s_entity->sched;
42437 spin_lock_init(&fence->lock);
42438
42439 - seq = atomic_inc_return(&s_entity->fence_seq);
42440 + seq = atomic_inc_return_unchecked(&s_entity->fence_seq);
42441 fence_init(&fence->base, &amd_sched_fence_ops, &fence->lock,
42442 s_entity->fence_context, seq);
42443
42444 diff --git a/drivers/gpu/drm/armada/armada_drv.c b/drivers/gpu/drm/armada/armada_drv.c
42445 index 77ab93d..ae69bac 100644
42446 --- a/drivers/gpu/drm/armada/armada_drv.c
42447 +++ b/drivers/gpu/drm/armada/armada_drv.c
42448 @@ -217,6 +217,7 @@ static struct drm_driver armada_drm_driver = {
42449 .driver_features = DRIVER_GEM | DRIVER_MODESET |
42450 DRIVER_HAVE_IRQ | DRIVER_PRIME,
42451 .ioctls = armada_ioctls,
42452 + .num_ioctls = ARRAY_SIZE(armada_ioctls),
42453 .fops = &armada_drm_fops,
42454 };
42455
42456 @@ -337,8 +338,6 @@ static int __init armada_drm_init(void)
42457 {
42458 int ret;
42459
42460 - armada_drm_driver.num_ioctls = ARRAY_SIZE(armada_ioctls);
42461 -
42462 ret = platform_driver_register(&armada_lcd_platform_driver);
42463 if (ret)
42464 return ret;
42465 diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
42466 index 24c5434..d4671de 100644
42467 --- a/drivers/gpu/drm/drm_crtc.c
42468 +++ b/drivers/gpu/drm/drm_crtc.c
42469 @@ -4090,7 +4090,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
42470 goto done;
42471 }
42472
42473 - if (copy_to_user(&enum_ptr[copied].name,
42474 + if (copy_to_user(enum_ptr[copied].name,
42475 &prop_enum->name, DRM_PROP_NAME_LEN)) {
42476 ret = -EFAULT;
42477 goto done;
42478 diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
42479 index 7dd6728..6271b191 100644
42480 --- a/drivers/gpu/drm/drm_drv.c
42481 +++ b/drivers/gpu/drm/drm_drv.c
42482 @@ -471,7 +471,7 @@ void drm_unplug_dev(struct drm_device *dev)
42483
42484 drm_device_set_unplugged(dev);
42485
42486 - if (dev->open_count == 0) {
42487 + if (local_read(&dev->open_count) == 0) {
42488 drm_put_dev(dev);
42489 }
42490 mutex_unlock(&drm_global_mutex);
42491 diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c
42492 index 6b5625e..d49b9fb 100644
42493 --- a/drivers/gpu/drm/drm_fops.c
42494 +++ b/drivers/gpu/drm/drm_fops.c
42495 @@ -89,7 +89,7 @@ int drm_open(struct inode *inode, struct file *filp)
42496 return PTR_ERR(minor);
42497
42498 dev = minor->dev;
42499 - if (!dev->open_count++)
42500 + if (local_inc_return(&dev->open_count) == 1)
42501 need_setup = 1;
42502
42503 /* share address_space across all char-devs of a single device */
42504 @@ -106,7 +106,7 @@ int drm_open(struct inode *inode, struct file *filp)
42505 return 0;
42506
42507 err_undo:
42508 - dev->open_count--;
42509 + local_dec(&dev->open_count);
42510 drm_minor_release(minor);
42511 return retcode;
42512 }
42513 @@ -405,7 +405,7 @@ int drm_release(struct inode *inode, struct file *filp)
42514
42515 mutex_lock(&drm_global_mutex);
42516
42517 - DRM_DEBUG("open_count = %d\n", dev->open_count);
42518 + DRM_DEBUG("open_count = %ld\n", local_read(&dev->open_count));
42519
42520 mutex_lock(&dev->struct_mutex);
42521 list_del(&file_priv->lhead);
42522 @@ -420,10 +420,10 @@ int drm_release(struct inode *inode, struct file *filp)
42523 * Begin inline drm_release
42524 */
42525
42526 - DRM_DEBUG("pid = %d, device = 0x%lx, open_count = %d\n",
42527 + DRM_DEBUG("pid = %d, device = 0x%lx, open_count = %ld\n",
42528 task_pid_nr(current),
42529 (long)old_encode_dev(file_priv->minor->kdev->devt),
42530 - dev->open_count);
42531 + local_read(&dev->open_count));
42532
42533 /* if the master has gone away we can't do anything with the lock */
42534 if (file_priv->minor->master)
42535 @@ -493,7 +493,7 @@ int drm_release(struct inode *inode, struct file *filp)
42536 * End inline drm_release
42537 */
42538
42539 - if (!--dev->open_count) {
42540 + if (local_dec_and_test(&dev->open_count)) {
42541 retcode = drm_lastclose(dev);
42542 if (drm_device_is_unplugged(dev))
42543 drm_put_dev(dev);
42544 diff --git a/drivers/gpu/drm/drm_global.c b/drivers/gpu/drm/drm_global.c
42545 index 3d2e91c..d31c4c9 100644
42546 --- a/drivers/gpu/drm/drm_global.c
42547 +++ b/drivers/gpu/drm/drm_global.c
42548 @@ -36,7 +36,7 @@
42549 struct drm_global_item {
42550 struct mutex mutex;
42551 void *object;
42552 - int refcount;
42553 + atomic_t refcount;
42554 };
42555
42556 static struct drm_global_item glob[DRM_GLOBAL_NUM];
42557 @@ -49,7 +49,7 @@ void drm_global_init(void)
42558 struct drm_global_item *item = &glob[i];
42559 mutex_init(&item->mutex);
42560 item->object = NULL;
42561 - item->refcount = 0;
42562 + atomic_set(&item->refcount, 0);
42563 }
42564 }
42565
42566 @@ -59,7 +59,7 @@ void drm_global_release(void)
42567 for (i = 0; i < DRM_GLOBAL_NUM; ++i) {
42568 struct drm_global_item *item = &glob[i];
42569 BUG_ON(item->object != NULL);
42570 - BUG_ON(item->refcount != 0);
42571 + BUG_ON(atomic_read(&item->refcount) != 0);
42572 }
42573 }
42574
42575 @@ -69,7 +69,7 @@ int drm_global_item_ref(struct drm_global_reference *ref)
42576 struct drm_global_item *item = &glob[ref->global_type];
42577
42578 mutex_lock(&item->mutex);
42579 - if (item->refcount == 0) {
42580 + if (atomic_read(&item->refcount) == 0) {
42581 item->object = kzalloc(ref->size, GFP_KERNEL);
42582 if (unlikely(item->object == NULL)) {
42583 ret = -ENOMEM;
42584 @@ -82,7 +82,7 @@ int drm_global_item_ref(struct drm_global_reference *ref)
42585 goto out_err;
42586
42587 }
42588 - ++item->refcount;
42589 + atomic_inc(&item->refcount);
42590 ref->object = item->object;
42591 mutex_unlock(&item->mutex);
42592 return 0;
42593 @@ -98,9 +98,9 @@ void drm_global_item_unref(struct drm_global_reference *ref)
42594 struct drm_global_item *item = &glob[ref->global_type];
42595
42596 mutex_lock(&item->mutex);
42597 - BUG_ON(item->refcount == 0);
42598 + BUG_ON(atomic_read(&item->refcount) == 0);
42599 BUG_ON(ref->object != item->object);
42600 - if (--item->refcount == 0) {
42601 + if (atomic_dec_and_test(&item->refcount)) {
42602 ref->release(ref);
42603 item->object = NULL;
42604 }
42605 diff --git a/drivers/gpu/drm/drm_info.c b/drivers/gpu/drm/drm_info.c
42606 index cbb4fc0..5c756cb9 100644
42607 --- a/drivers/gpu/drm/drm_info.c
42608 +++ b/drivers/gpu/drm/drm_info.c
42609 @@ -77,10 +77,13 @@ int drm_vm_info(struct seq_file *m, void *data)
42610 struct drm_local_map *map;
42611 struct drm_map_list *r_list;
42612
42613 - /* Hardcoded from _DRM_FRAME_BUFFER,
42614 - _DRM_REGISTERS, _DRM_SHM, _DRM_AGP, and
42615 - _DRM_SCATTER_GATHER and _DRM_CONSISTENT */
42616 - const char *types[] = { "FB", "REG", "SHM", "AGP", "SG", "PCI" };
42617 + static const char * const types[] = {
42618 + [_DRM_FRAME_BUFFER] = "FB",
42619 + [_DRM_REGISTERS] = "REG",
42620 + [_DRM_SHM] = "SHM",
42621 + [_DRM_AGP] = "AGP",
42622 + [_DRM_SCATTER_GATHER] = "SG",
42623 + [_DRM_CONSISTENT] = "PCI"};
42624 const char *type;
42625 int i;
42626
42627 @@ -91,7 +94,7 @@ int drm_vm_info(struct seq_file *m, void *data)
42628 map = r_list->map;
42629 if (!map)
42630 continue;
42631 - if (map->type < 0 || map->type > 5)
42632 + if (map->type >= ARRAY_SIZE(types))
42633 type = "??";
42634 else
42635 type = types[map->type];
42636 diff --git a/drivers/gpu/drm/drm_ioc32.c b/drivers/gpu/drm/drm_ioc32.c
42637 index 57676f8..020e7ca 100644
42638 --- a/drivers/gpu/drm/drm_ioc32.c
42639 +++ b/drivers/gpu/drm/drm_ioc32.c
42640 @@ -458,7 +458,7 @@ static int compat_drm_infobufs(struct file *file, unsigned int cmd,
42641 request = compat_alloc_user_space(nbytes);
42642 if (!request)
42643 return -EFAULT;
42644 - list = (struct drm_buf_desc *) (request + 1);
42645 + list = (struct drm_buf_desc __user *) (request + 1);
42646
42647 if (__put_user(count, &request->count)
42648 || __put_user(list, &request->list))
42649 @@ -519,7 +519,7 @@ static int compat_drm_mapbufs(struct file *file, unsigned int cmd,
42650 request = compat_alloc_user_space(nbytes);
42651 if (!request)
42652 return -EFAULT;
42653 - list = (struct drm_buf_pub *) (request + 1);
42654 + list = (struct drm_buf_pub __user *) (request + 1);
42655
42656 if (__put_user(count, &request->count)
42657 || __put_user(list, &request->list))
42658 @@ -1072,7 +1072,7 @@ static int compat_drm_mode_addfb2(struct file *file, unsigned int cmd,
42659 return 0;
42660 }
42661
42662 -static drm_ioctl_compat_t *drm_compat_ioctls[] = {
42663 +static drm_ioctl_compat_t drm_compat_ioctls[] = {
42664 [DRM_IOCTL_NR(DRM_IOCTL_VERSION32)] = compat_drm_version,
42665 [DRM_IOCTL_NR(DRM_IOCTL_GET_UNIQUE32)] = compat_drm_getunique,
42666 [DRM_IOCTL_NR(DRM_IOCTL_GET_MAP32)] = compat_drm_getmap,
42667 @@ -1119,7 +1119,6 @@ static drm_ioctl_compat_t *drm_compat_ioctls[] = {
42668 long drm_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
42669 {
42670 unsigned int nr = DRM_IOCTL_NR(cmd);
42671 - drm_ioctl_compat_t *fn;
42672 int ret;
42673
42674 /* Assume that ioctls without an explicit compat routine will just
42675 @@ -1129,10 +1128,8 @@ long drm_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
42676 if (nr >= ARRAY_SIZE(drm_compat_ioctls))
42677 return drm_ioctl(filp, cmd, arg);
42678
42679 - fn = drm_compat_ioctls[nr];
42680 -
42681 - if (fn != NULL)
42682 - ret = (*fn) (filp, cmd, arg);
42683 + if (drm_compat_ioctls[nr] != NULL)
42684 + ret = (*drm_compat_ioctls[nr]) (filp, cmd, arg);
42685 else
42686 ret = drm_ioctl(filp, cmd, arg);
42687
42688 diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
42689 index 8ce2a0c..d09a8f6 100644
42690 --- a/drivers/gpu/drm/drm_ioctl.c
42691 +++ b/drivers/gpu/drm/drm_ioctl.c
42692 @@ -685,7 +685,7 @@ long drm_ioctl(struct file *filp,
42693 struct drm_file *file_priv = filp->private_data;
42694 struct drm_device *dev;
42695 const struct drm_ioctl_desc *ioctl = NULL;
42696 - drm_ioctl_t *func;
42697 + drm_ioctl_no_const_t func;
42698 unsigned int nr = DRM_IOCTL_NR(cmd);
42699 int retcode = -EINVAL;
42700 char stack_kdata[128];
42701 diff --git a/drivers/gpu/drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c
42702 index fcd2a86..f50489e 100644
42703 --- a/drivers/gpu/drm/drm_pci.c
42704 +++ b/drivers/gpu/drm/drm_pci.c
42705 @@ -308,7 +308,7 @@ int drm_get_pci_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
42706 /* No locking needed since shadow-attach is single-threaded since it may
42707 * only be called from the per-driver module init hook. */
42708 if (!drm_core_check_feature(dev, DRIVER_MODESET))
42709 - list_add_tail(&dev->legacy_dev_list, &driver->legacy_dev_list);
42710 + pax_list_add_tail(&dev->legacy_dev_list, (struct list_head *)&driver->legacy_dev_list);
42711
42712 return 0;
42713
42714 @@ -347,7 +347,10 @@ int drm_pci_init(struct drm_driver *driver, struct pci_driver *pdriver)
42715 return pci_register_driver(pdriver);
42716
42717 /* If not using KMS, fall back to stealth mode manual scanning. */
42718 - INIT_LIST_HEAD(&driver->legacy_dev_list);
42719 + pax_open_kernel();
42720 + INIT_LIST_HEAD((struct list_head *)&driver->legacy_dev_list);
42721 + pax_close_kernel();
42722 +
42723 for (i = 0; pdriver->id_table[i].vendor != 0; i++) {
42724 pid = &pdriver->id_table[i];
42725
42726 @@ -457,7 +460,7 @@ void drm_pci_exit(struct drm_driver *driver, struct pci_driver *pdriver)
42727 } else {
42728 list_for_each_entry_safe(dev, tmp, &driver->legacy_dev_list,
42729 legacy_dev_list) {
42730 - list_del(&dev->legacy_dev_list);
42731 + pax_list_del(&dev->legacy_dev_list);
42732 drm_put_dev(dev);
42733 }
42734 }
42735 diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
42736 index 2c6019d..6508989 100644
42737 --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
42738 +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
42739 @@ -616,7 +616,6 @@ static int exynos_drm_platform_probe(struct platform_device *pdev)
42740 struct component_match *match;
42741
42742 pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32);
42743 - exynos_drm_driver.num_ioctls = ARRAY_SIZE(exynos_ioctls);
42744
42745 match = exynos_drm_match_add(&pdev->dev);
42746 if (IS_ERR(match))
42747 diff --git a/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c b/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c
42748 index d4813e0..6c1ab4d 100644
42749 --- a/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c
42750 +++ b/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c
42751 @@ -825,10 +825,16 @@ void mdfld_dsi_dpi_mode_set(struct drm_encoder *encoder,
42752 u32 pipeconf_reg = PIPEACONF;
42753 u32 dspcntr_reg = DSPACNTR;
42754
42755 - u32 pipeconf = dev_priv->pipeconf[pipe];
42756 - u32 dspcntr = dev_priv->dspcntr[pipe];
42757 + u32 pipeconf;
42758 + u32 dspcntr;
42759 u32 mipi = MIPI_PORT_EN | PASS_FROM_SPHY_TO_AFE | SEL_FLOPPED_HSTX;
42760
42761 + if (pipe == -1)
42762 + return;
42763 +
42764 + pipeconf = dev_priv->pipeconf[pipe];
42765 + dspcntr = dev_priv->dspcntr[pipe];
42766 +
42767 if (pipe) {
42768 pipeconf_reg = PIPECCONF;
42769 dspcntr_reg = DSPCCNTR;
42770 diff --git a/drivers/gpu/drm/gma500/psb_drv.c b/drivers/gpu/drm/gma500/psb_drv.c
42771 index 92e7e57..5d74ff5 100644
42772 --- a/drivers/gpu/drm/gma500/psb_drv.c
42773 +++ b/drivers/gpu/drm/gma500/psb_drv.c
42774 @@ -376,7 +376,6 @@ static int psb_driver_load(struct drm_device *dev, unsigned long flags)
42775
42776 dev->vblank_disable_allowed = true;
42777 dev->max_vblank_count = 0xffffff; /* only 24 bits of frame count */
42778 - dev->driver->get_vblank_counter = psb_get_vblank_counter;
42779
42780 psb_modeset_init(dev);
42781 psb_fbdev_init(dev);
42782 diff --git a/drivers/gpu/drm/i810/i810_dma.c b/drivers/gpu/drm/i810/i810_dma.c
42783 index d918567..6cfd904 100644
42784 --- a/drivers/gpu/drm/i810/i810_dma.c
42785 +++ b/drivers/gpu/drm/i810/i810_dma.c
42786 @@ -1250,7 +1250,7 @@ const struct drm_ioctl_desc i810_ioctls[] = {
42787 DRM_IOCTL_DEF_DRV(I810_FLIP, i810_flip_bufs, DRM_AUTH|DRM_UNLOCKED),
42788 };
42789
42790 -int i810_max_ioctl = ARRAY_SIZE(i810_ioctls);
42791 +const int i810_max_ioctl = ARRAY_SIZE(i810_ioctls);
42792
42793 /**
42794 * Determine if the device really is AGP or not.
42795 diff --git a/drivers/gpu/drm/i810/i810_drv.c b/drivers/gpu/drm/i810/i810_drv.c
42796 index 44f4a13..0063c1b 100644
42797 --- a/drivers/gpu/drm/i810/i810_drv.c
42798 +++ b/drivers/gpu/drm/i810/i810_drv.c
42799 @@ -87,7 +87,11 @@ static int __init i810_init(void)
42800 pr_err("drm/i810 does not support SMP\n");
42801 return -EINVAL;
42802 }
42803 - driver.num_ioctls = i810_max_ioctl;
42804 +
42805 + pax_open_kernel();
42806 + *(int *)&driver.num_ioctls = i810_max_ioctl;
42807 + pax_close_kernel();
42808 +
42809 return drm_pci_init(&driver, &i810_pci_driver);
42810 }
42811
42812 diff --git a/drivers/gpu/drm/i810/i810_drv.h b/drivers/gpu/drm/i810/i810_drv.h
42813 index 93ec5dc..204ec92 100644
42814 --- a/drivers/gpu/drm/i810/i810_drv.h
42815 +++ b/drivers/gpu/drm/i810/i810_drv.h
42816 @@ -110,8 +110,8 @@ typedef struct drm_i810_private {
42817 int page_flipping;
42818
42819 wait_queue_head_t irq_queue;
42820 - atomic_t irq_received;
42821 - atomic_t irq_emitted;
42822 + atomic_unchecked_t irq_received;
42823 + atomic_unchecked_t irq_emitted;
42824
42825 int front_offset;
42826 } drm_i810_private_t;
42827 @@ -128,7 +128,7 @@ extern int i810_driver_device_is_agp(struct drm_device *dev);
42828
42829 extern long i810_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
42830 extern const struct drm_ioctl_desc i810_ioctls[];
42831 -extern int i810_max_ioctl;
42832 +extern const int i810_max_ioctl;
42833
42834 #define I810_BASE(reg) ((unsigned long) \
42835 dev_priv->mmio_map->handle)
42836 diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
42837 index 61fcb3b..bad2d5f 100644
42838 --- a/drivers/gpu/drm/i915/i915_dma.c
42839 +++ b/drivers/gpu/drm/i915/i915_dma.c
42840 @@ -354,7 +354,7 @@ static bool i915_switcheroo_can_switch(struct pci_dev *pdev)
42841 * locking inversion with the driver load path. And the access here is
42842 * completely racy anyway. So don't bother with locking for now.
42843 */
42844 - return dev->open_count == 0;
42845 + return local_read(&dev->open_count) == 0;
42846 }
42847
42848 static const struct vga_switcheroo_client_ops i915_switcheroo_ops = {
42849 @@ -1331,4 +1331,4 @@ const struct drm_ioctl_desc i915_ioctls[] = {
42850 DRM_IOCTL_DEF_DRV(I915_GEM_CONTEXT_SETPARAM, i915_gem_context_setparam_ioctl, DRM_RENDER_ALLOW),
42851 };
42852
42853 -int i915_max_ioctl = ARRAY_SIZE(i915_ioctls);
42854 +const int i915_max_ioctl = ARRAY_SIZE(i915_ioctls);
42855 diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
42856 index a6ad938..ad4ff46 100644
42857 --- a/drivers/gpu/drm/i915/i915_drv.c
42858 +++ b/drivers/gpu/drm/i915/i915_drv.c
42859 @@ -40,7 +40,7 @@
42860 #include <linux/pm_runtime.h>
42861 #include <drm/drm_crtc_helper.h>
42862
42863 -static struct drm_driver driver;
42864 +static drm_driver_no_const driver;
42865
42866 #define GEN_DEFAULT_PIPEOFFSETS \
42867 .pipe_offsets = { PIPE_A_OFFSET, PIPE_B_OFFSET, \
42868 @@ -1690,7 +1690,7 @@ static const struct file_operations i915_driver_fops = {
42869 .llseek = noop_llseek,
42870 };
42871
42872 -static struct drm_driver driver = {
42873 +static drm_driver_no_const driver __read_only = {
42874 /* Don't use MTRRs here; the Xserver or userspace app should
42875 * deal with them for Intel hardware.
42876 */
42877 @@ -1740,6 +1740,7 @@ static struct pci_driver i915_pci_driver = {
42878
42879 static int __init i915_init(void)
42880 {
42881 + pax_open_kernel();
42882 driver.num_ioctls = i915_max_ioctl;
42883
42884 /*
42885 @@ -1757,6 +1758,7 @@ static int __init i915_init(void)
42886 #endif
42887
42888 if (!(driver.driver_features & DRIVER_MODESET)) {
42889 + pax_close_kernel();
42890 /* Silently fail loading to not upset userspace. */
42891 DRM_DEBUG_DRIVER("KMS and UMS disabled.\n");
42892 return 0;
42893 @@ -1764,6 +1766,7 @@ static int __init i915_init(void)
42894
42895 if (i915.nuclear_pageflip)
42896 driver.driver_features |= DRIVER_ATOMIC;
42897 + pax_close_kernel();
42898
42899 return drm_pci_init(&driver, &i915_pci_driver);
42900 }
42901 diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
42902 index d3ce4da..73a3dda 100644
42903 --- a/drivers/gpu/drm/i915/i915_drv.h
42904 +++ b/drivers/gpu/drm/i915/i915_drv.h
42905 @@ -2637,7 +2637,7 @@ struct drm_i915_cmd_table {
42906 #include "i915_trace.h"
42907
42908 extern const struct drm_ioctl_desc i915_ioctls[];
42909 -extern int i915_max_ioctl;
42910 +extern const int i915_max_ioctl;
42911
42912 extern int i915_suspend_switcheroo(struct drm_device *dev, pm_message_t state);
42913 extern int i915_resume_switcheroo(struct drm_device *dev);
42914 diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
42915 index 6ed7d63a..1863cfa 100644
42916 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
42917 +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
42918 @@ -965,12 +965,12 @@ i915_gem_check_execbuffer(struct drm_i915_gem_execbuffer2 *exec)
42919 static int
42920 validate_exec_list(struct drm_device *dev,
42921 struct drm_i915_gem_exec_object2 *exec,
42922 - int count)
42923 + unsigned int count)
42924 {
42925 unsigned relocs_total = 0;
42926 unsigned relocs_max = UINT_MAX / sizeof(struct drm_i915_gem_relocation_entry);
42927 unsigned invalid_flags;
42928 - int i;
42929 + unsigned int i;
42930
42931 invalid_flags = __EXEC_OBJECT_UNKNOWN_FLAGS;
42932 if (USES_FULL_PPGTT(dev))
42933 diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
42934 index 86c7500..f4d2025 100644
42935 --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
42936 +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
42937 @@ -2953,8 +2953,8 @@ static void chv_setup_private_ppat(struct drm_i915_private *dev_priv)
42938
42939 static int gen8_gmch_probe(struct drm_device *dev,
42940 u64 *gtt_total,
42941 - size_t *stolen,
42942 - phys_addr_t *mappable_base,
42943 + u64 *stolen,
42944 + u64 *mappable_base,
42945 u64 *mappable_end)
42946 {
42947 struct drm_i915_private *dev_priv = dev->dev_private;
42948 @@ -3001,8 +3001,8 @@ static int gen8_gmch_probe(struct drm_device *dev,
42949
42950 static int gen6_gmch_probe(struct drm_device *dev,
42951 u64 *gtt_total,
42952 - size_t *stolen,
42953 - phys_addr_t *mappable_base,
42954 + u64 *stolen,
42955 + u64 *mappable_base,
42956 u64 *mappable_end)
42957 {
42958 struct drm_i915_private *dev_priv = dev->dev_private;
42959 @@ -3052,8 +3052,8 @@ static void gen6_gmch_remove(struct i915_address_space *vm)
42960
42961 static int i915_gmch_probe(struct drm_device *dev,
42962 u64 *gtt_total,
42963 - size_t *stolen,
42964 - phys_addr_t *mappable_base,
42965 + u64 *stolen,
42966 + u64 *mappable_base,
42967 u64 *mappable_end)
42968 {
42969 struct drm_i915_private *dev_priv = dev->dev_private;
42970 @@ -3121,8 +3121,8 @@ int i915_gem_gtt_init(struct drm_device *dev)
42971 /* GMADR is the PCI mmio aperture into the global GTT. */
42972 DRM_INFO("Memory usable by graphics device = %lluM\n",
42973 gtt->base.total >> 20);
42974 - DRM_DEBUG_DRIVER("GMADR size = %lldM\n", gtt->mappable_end >> 20);
42975 - DRM_DEBUG_DRIVER("GTT stolen size = %zdM\n", gtt->stolen_size >> 20);
42976 + DRM_DEBUG_DRIVER("GMADR size = %lluM\n", gtt->mappable_end >> 20);
42977 + DRM_DEBUG_DRIVER("GTT stolen size = %lluM\n", gtt->stolen_size >> 20);
42978 #ifdef CONFIG_INTEL_IOMMU
42979 if (intel_iommu_gfx_mapped)
42980 DRM_INFO("VT-d active for gfx access\n");
42981 diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.h b/drivers/gpu/drm/i915/i915_gem_gtt.h
42982 index a216397..2906614 100644
42983 --- a/drivers/gpu/drm/i915/i915_gem_gtt.h
42984 +++ b/drivers/gpu/drm/i915/i915_gem_gtt.h
42985 @@ -344,11 +344,11 @@ struct i915_address_space {
42986 struct i915_gtt {
42987 struct i915_address_space base;
42988
42989 - size_t stolen_size; /* Total size of stolen memory */
42990 + u64 stolen_size; /* Total size of stolen memory */
42991 size_t stolen_usable_size; /* Total size minus BIOS reserved */
42992 u64 mappable_end; /* End offset that we can CPU map */
42993 struct io_mapping *mappable; /* Mapping to our CPU mappable region */
42994 - phys_addr_t mappable_base; /* PA of our GMADR */
42995 + u64 mappable_base; /* PA of our GMADR */
42996
42997 /** "Graphics Stolen Memory" holds the global PTEs */
42998 void __iomem *gsm;
42999 @@ -359,7 +359,7 @@ struct i915_gtt {
43000
43001 /* global gtt ops */
43002 int (*gtt_probe)(struct drm_device *dev, u64 *gtt_total,
43003 - size_t *stolen, phys_addr_t *mappable_base,
43004 + u64 *stolen, u64 *mappable_base,
43005 u64 *mappable_end);
43006 };
43007
43008 diff --git a/drivers/gpu/drm/i915/i915_ioc32.c b/drivers/gpu/drm/i915/i915_ioc32.c
43009 index 97f3a56..32c712e 100644
43010 --- a/drivers/gpu/drm/i915/i915_ioc32.c
43011 +++ b/drivers/gpu/drm/i915/i915_ioc32.c
43012 @@ -65,7 +65,7 @@ static int compat_i915_getparam(struct file *file, unsigned int cmd,
43013 (unsigned long)request);
43014 }
43015
43016 -static drm_ioctl_compat_t *i915_compat_ioctls[] = {
43017 +static drm_ioctl_compat_t i915_compat_ioctls[] = {
43018 [DRM_I915_GETPARAM] = compat_i915_getparam,
43019 };
43020
43021 @@ -81,17 +81,13 @@ static drm_ioctl_compat_t *i915_compat_ioctls[] = {
43022 long i915_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
43023 {
43024 unsigned int nr = DRM_IOCTL_NR(cmd);
43025 - drm_ioctl_compat_t *fn = NULL;
43026 int ret;
43027
43028 if (nr < DRM_COMMAND_BASE || nr >= DRM_COMMAND_END)
43029 return drm_compat_ioctl(filp, cmd, arg);
43030
43031 - if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(i915_compat_ioctls))
43032 - fn = i915_compat_ioctls[nr - DRM_COMMAND_BASE];
43033 -
43034 - if (fn != NULL)
43035 - ret = (*fn) (filp, cmd, arg);
43036 + if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(i915_compat_ioctls) && i915_compat_ioctls[nr - DRM_COMMAND_BASE])
43037 + ret = (*i915_compat_ioctls[nr - DRM_COMMAND_BASE])(filp, cmd, arg);
43038 else
43039 ret = drm_ioctl(filp, cmd, arg);
43040
43041 diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
43042 index 0f42a27..8d376ee 100644
43043 --- a/drivers/gpu/drm/i915/i915_irq.c
43044 +++ b/drivers/gpu/drm/i915/i915_irq.c
43045 @@ -4399,14 +4399,15 @@ void intel_irq_init(struct drm_i915_private *dev_priv)
43046
43047 pm_qos_add_request(&dev_priv->pm_qos, PM_QOS_CPU_DMA_LATENCY, PM_QOS_DEFAULT_VALUE);
43048
43049 + pax_open_kernel();
43050 if (IS_GEN2(dev_priv)) {
43051 dev->max_vblank_count = 0;
43052 - dev->driver->get_vblank_counter = i8xx_get_vblank_counter;
43053 + *(void **)&dev->driver->get_vblank_counter = i8xx_get_vblank_counter;
43054 } else if (IS_G4X(dev_priv) || INTEL_INFO(dev_priv)->gen >= 5) {
43055 dev->max_vblank_count = 0xffffffff; /* full 32 bit counter */
43056 - dev->driver->get_vblank_counter = g4x_get_vblank_counter;
43057 + *(void **)&dev->driver->get_vblank_counter = g4x_get_vblank_counter;
43058 } else {
43059 - dev->driver->get_vblank_counter = i915_get_vblank_counter;
43060 + *(void **)&dev->driver->get_vblank_counter = i915_get_vblank_counter;
43061 dev->max_vblank_count = 0xffffff; /* only 24 bits of frame count */
43062 }
43063
43064 @@ -4418,32 +4419,32 @@ void intel_irq_init(struct drm_i915_private *dev_priv)
43065 if (!IS_GEN2(dev_priv))
43066 dev->vblank_disable_immediate = true;
43067
43068 - dev->driver->get_vblank_timestamp = i915_get_vblank_timestamp;
43069 - dev->driver->get_scanout_position = i915_get_crtc_scanoutpos;
43070 + *(void **)&dev->driver->get_vblank_timestamp = i915_get_vblank_timestamp;
43071 + *(void **)&dev->driver->get_scanout_position = i915_get_crtc_scanoutpos;
43072
43073 if (IS_CHERRYVIEW(dev_priv)) {
43074 - dev->driver->irq_handler = cherryview_irq_handler;
43075 - dev->driver->irq_preinstall = cherryview_irq_preinstall;
43076 - dev->driver->irq_postinstall = cherryview_irq_postinstall;
43077 - dev->driver->irq_uninstall = cherryview_irq_uninstall;
43078 - dev->driver->enable_vblank = valleyview_enable_vblank;
43079 - dev->driver->disable_vblank = valleyview_disable_vblank;
43080 + *(void **)&dev->driver->irq_handler = cherryview_irq_handler;
43081 + *(void **)&dev->driver->irq_preinstall = cherryview_irq_preinstall;
43082 + *(void **)&dev->driver->irq_postinstall = cherryview_irq_postinstall;
43083 + *(void **)&dev->driver->irq_uninstall = cherryview_irq_uninstall;
43084 + *(void **)&dev->driver->enable_vblank = valleyview_enable_vblank;
43085 + *(void **)&dev->driver->disable_vblank = valleyview_disable_vblank;
43086 dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup;
43087 } else if (IS_VALLEYVIEW(dev_priv)) {
43088 - dev->driver->irq_handler = valleyview_irq_handler;
43089 - dev->driver->irq_preinstall = valleyview_irq_preinstall;
43090 - dev->driver->irq_postinstall = valleyview_irq_postinstall;
43091 - dev->driver->irq_uninstall = valleyview_irq_uninstall;
43092 - dev->driver->enable_vblank = valleyview_enable_vblank;
43093 - dev->driver->disable_vblank = valleyview_disable_vblank;
43094 + *(void **)&dev->driver->irq_handler = valleyview_irq_handler;
43095 + *(void **)&dev->driver->irq_preinstall = valleyview_irq_preinstall;
43096 + *(void **)&dev->driver->irq_postinstall = valleyview_irq_postinstall;
43097 + *(void **)&dev->driver->irq_uninstall = valleyview_irq_uninstall;
43098 + *(void **)&dev->driver->enable_vblank = valleyview_enable_vblank;
43099 + *(void **)&dev->driver->disable_vblank = valleyview_disable_vblank;
43100 dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup;
43101 } else if (INTEL_INFO(dev_priv)->gen >= 8) {
43102 - dev->driver->irq_handler = gen8_irq_handler;
43103 - dev->driver->irq_preinstall = gen8_irq_reset;
43104 - dev->driver->irq_postinstall = gen8_irq_postinstall;
43105 - dev->driver->irq_uninstall = gen8_irq_uninstall;
43106 - dev->driver->enable_vblank = gen8_enable_vblank;
43107 - dev->driver->disable_vblank = gen8_disable_vblank;
43108 + *(void **)&dev->driver->irq_handler = gen8_irq_handler;
43109 + *(void **)&dev->driver->irq_preinstall = gen8_irq_reset;
43110 + *(void **)&dev->driver->irq_postinstall = gen8_irq_postinstall;
43111 + *(void **)&dev->driver->irq_uninstall = gen8_irq_uninstall;
43112 + *(void **)&dev->driver->enable_vblank = gen8_enable_vblank;
43113 + *(void **)&dev->driver->disable_vblank = gen8_disable_vblank;
43114 if (IS_BROXTON(dev))
43115 dev_priv->display.hpd_irq_setup = bxt_hpd_irq_setup;
43116 else if (HAS_PCH_SPT(dev))
43117 @@ -4451,35 +4452,36 @@ void intel_irq_init(struct drm_i915_private *dev_priv)
43118 else
43119 dev_priv->display.hpd_irq_setup = ilk_hpd_irq_setup;
43120 } else if (HAS_PCH_SPLIT(dev)) {
43121 - dev->driver->irq_handler = ironlake_irq_handler;
43122 - dev->driver->irq_preinstall = ironlake_irq_reset;
43123 - dev->driver->irq_postinstall = ironlake_irq_postinstall;
43124 - dev->driver->irq_uninstall = ironlake_irq_uninstall;
43125 - dev->driver->enable_vblank = ironlake_enable_vblank;
43126 - dev->driver->disable_vblank = ironlake_disable_vblank;
43127 + *(void **)&dev->driver->irq_handler = ironlake_irq_handler;
43128 + *(void **)&dev->driver->irq_preinstall = ironlake_irq_reset;
43129 + *(void **)&dev->driver->irq_postinstall = ironlake_irq_postinstall;
43130 + *(void **)&dev->driver->irq_uninstall = ironlake_irq_uninstall;
43131 + *(void **)&dev->driver->enable_vblank = ironlake_enable_vblank;
43132 + *(void **)&dev->driver->disable_vblank = ironlake_disable_vblank;
43133 dev_priv->display.hpd_irq_setup = ilk_hpd_irq_setup;
43134 } else {
43135 if (INTEL_INFO(dev_priv)->gen == 2) {
43136 - dev->driver->irq_preinstall = i8xx_irq_preinstall;
43137 - dev->driver->irq_postinstall = i8xx_irq_postinstall;
43138 - dev->driver->irq_handler = i8xx_irq_handler;
43139 - dev->driver->irq_uninstall = i8xx_irq_uninstall;
43140 + *(void **)&dev->driver->irq_preinstall = i8xx_irq_preinstall;
43141 + *(void **)&dev->driver->irq_postinstall = i8xx_irq_postinstall;
43142 + *(void **)&dev->driver->irq_handler = i8xx_irq_handler;
43143 + *(void **)&dev->driver->irq_uninstall = i8xx_irq_uninstall;
43144 } else if (INTEL_INFO(dev_priv)->gen == 3) {
43145 - dev->driver->irq_preinstall = i915_irq_preinstall;
43146 - dev->driver->irq_postinstall = i915_irq_postinstall;
43147 - dev->driver->irq_uninstall = i915_irq_uninstall;
43148 - dev->driver->irq_handler = i915_irq_handler;
43149 + *(void **)&dev->driver->irq_preinstall = i915_irq_preinstall;
43150 + *(void **)&dev->driver->irq_postinstall = i915_irq_postinstall;
43151 + *(void **)&dev->driver->irq_uninstall = i915_irq_uninstall;
43152 + *(void **)&dev->driver->irq_handler = i915_irq_handler;
43153 } else {
43154 - dev->driver->irq_preinstall = i965_irq_preinstall;
43155 - dev->driver->irq_postinstall = i965_irq_postinstall;
43156 - dev->driver->irq_uninstall = i965_irq_uninstall;
43157 - dev->driver->irq_handler = i965_irq_handler;
43158 + *(void **)&dev->driver->irq_preinstall = i965_irq_preinstall;
43159 + *(void **)&dev->driver->irq_postinstall = i965_irq_postinstall;
43160 + *(void **)&dev->driver->irq_uninstall = i965_irq_uninstall;
43161 + *(void **)&dev->driver->irq_handler = i965_irq_handler;
43162 }
43163 if (I915_HAS_HOTPLUG(dev_priv))
43164 dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup;
43165 - dev->driver->enable_vblank = i915_enable_vblank;
43166 - dev->driver->disable_vblank = i915_disable_vblank;
43167 + *(void **)&dev->driver->enable_vblank = i915_enable_vblank;
43168 + *(void **)&dev->driver->disable_vblank = i915_disable_vblank;
43169 }
43170 + pax_close_kernel();
43171 }
43172
43173 /**
43174 diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
43175 index f859a5b..c6ef76b 100644
43176 --- a/drivers/gpu/drm/i915/intel_display.c
43177 +++ b/drivers/gpu/drm/i915/intel_display.c
43178 @@ -14731,13 +14731,13 @@ struct intel_quirk {
43179 int subsystem_vendor;
43180 int subsystem_device;
43181 void (*hook)(struct drm_device *dev);
43182 -};
43183 +} __do_const;
43184
43185 /* For systems that don't have a meaningful PCI subdevice/subvendor ID */
43186 struct intel_dmi_quirk {
43187 void (*hook)(struct drm_device *dev);
43188 const struct dmi_system_id (*dmi_id_list)[];
43189 -};
43190 +} __do_const;
43191
43192 static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
43193 {
43194 @@ -14745,18 +14745,20 @@ static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
43195 return 1;
43196 }
43197
43198 -static const struct intel_dmi_quirk intel_dmi_quirks[] = {
43199 +static const struct dmi_system_id intel_dmi_quirks_table[] = {
43200 {
43201 - .dmi_id_list = &(const struct dmi_system_id[]) {
43202 - {
43203 - .callback = intel_dmi_reverse_brightness,
43204 - .ident = "NCR Corporation",
43205 - .matches = {DMI_MATCH(DMI_SYS_VENDOR, "NCR Corporation"),
43206 - DMI_MATCH(DMI_PRODUCT_NAME, ""),
43207 - },
43208 - },
43209 - { } /* terminating entry */
43210 + .callback = intel_dmi_reverse_brightness,
43211 + .ident = "NCR Corporation",
43212 + .matches = {DMI_MATCH(DMI_SYS_VENDOR, "NCR Corporation"),
43213 + DMI_MATCH(DMI_PRODUCT_NAME, ""),
43214 },
43215 + },
43216 + { } /* terminating entry */
43217 +};
43218 +
43219 +static const struct intel_dmi_quirk intel_dmi_quirks[] = {
43220 + {
43221 + .dmi_id_list = &intel_dmi_quirks_table,
43222 .hook = quirk_invert_brightness,
43223 },
43224 };
43225 diff --git a/drivers/gpu/drm/imx/imx-drm-core.c b/drivers/gpu/drm/imx/imx-drm-core.c
43226 index 7b990b4..452d7e4 100644
43227 --- a/drivers/gpu/drm/imx/imx-drm-core.c
43228 +++ b/drivers/gpu/drm/imx/imx-drm-core.c
43229 @@ -354,7 +354,7 @@ int imx_drm_add_crtc(struct drm_device *drm, struct drm_crtc *crtc,
43230 if (imxdrm->pipes >= MAX_CRTC)
43231 return -EINVAL;
43232
43233 - if (imxdrm->drm->open_count)
43234 + if (local_read(&imxdrm->drm->open_count))
43235 return -EBUSY;
43236
43237 imx_drm_crtc = kzalloc(sizeof(*imx_drm_crtc), GFP_KERNEL);
43238 diff --git a/drivers/gpu/drm/mga/mga_drv.c b/drivers/gpu/drm/mga/mga_drv.c
43239 index 5e2f131..d227dbc 100644
43240 --- a/drivers/gpu/drm/mga/mga_drv.c
43241 +++ b/drivers/gpu/drm/mga/mga_drv.c
43242 @@ -92,7 +92,10 @@ static struct pci_driver mga_pci_driver = {
43243
43244 static int __init mga_init(void)
43245 {
43246 - driver.num_ioctls = mga_max_ioctl;
43247 + pax_open_kernel();
43248 + *(int *)&driver.num_ioctls = mga_max_ioctl;
43249 + pax_close_kernel();
43250 +
43251 return drm_pci_init(&driver, &mga_pci_driver);
43252 }
43253
43254 diff --git a/drivers/gpu/drm/mga/mga_drv.h b/drivers/gpu/drm/mga/mga_drv.h
43255 index bb31233..75b39f0 100644
43256 --- a/drivers/gpu/drm/mga/mga_drv.h
43257 +++ b/drivers/gpu/drm/mga/mga_drv.h
43258 @@ -122,9 +122,9 @@ typedef struct drm_mga_private {
43259 u32 clear_cmd;
43260 u32 maccess;
43261
43262 - atomic_t vbl_received; /**< Number of vblanks received. */
43263 + atomic_unchecked_t vbl_received; /**< Number of vblanks received. */
43264 wait_queue_head_t fence_queue;
43265 - atomic_t last_fence_retired;
43266 + atomic_unchecked_t last_fence_retired;
43267 u32 next_fence_to_post;
43268
43269 unsigned int fb_cpp;
43270 @@ -152,7 +152,7 @@ typedef struct drm_mga_private {
43271 } drm_mga_private_t;
43272
43273 extern const struct drm_ioctl_desc mga_ioctls[];
43274 -extern int mga_max_ioctl;
43275 +extern const int mga_max_ioctl;
43276
43277 /* mga_dma.c */
43278 extern int mga_dma_bootstrap(struct drm_device *dev, void *data,
43279 diff --git a/drivers/gpu/drm/mga/mga_ioc32.c b/drivers/gpu/drm/mga/mga_ioc32.c
43280 index 729bfd5..14bae78 100644
43281 --- a/drivers/gpu/drm/mga/mga_ioc32.c
43282 +++ b/drivers/gpu/drm/mga/mga_ioc32.c
43283 @@ -190,7 +190,7 @@ static int compat_mga_dma_bootstrap(struct file *file, unsigned int cmd,
43284 return 0;
43285 }
43286
43287 -drm_ioctl_compat_t *mga_compat_ioctls[] = {
43288 +drm_ioctl_compat_t mga_compat_ioctls[] = {
43289 [DRM_MGA_INIT] = compat_mga_init,
43290 [DRM_MGA_GETPARAM] = compat_mga_getparam,
43291 [DRM_MGA_DMA_BOOTSTRAP] = compat_mga_dma_bootstrap,
43292 @@ -208,17 +208,13 @@ drm_ioctl_compat_t *mga_compat_ioctls[] = {
43293 long mga_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
43294 {
43295 unsigned int nr = DRM_IOCTL_NR(cmd);
43296 - drm_ioctl_compat_t *fn = NULL;
43297 int ret;
43298
43299 if (nr < DRM_COMMAND_BASE)
43300 return drm_compat_ioctl(filp, cmd, arg);
43301
43302 - if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(mga_compat_ioctls))
43303 - fn = mga_compat_ioctls[nr - DRM_COMMAND_BASE];
43304 -
43305 - if (fn != NULL)
43306 - ret = (*fn) (filp, cmd, arg);
43307 + if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(mga_compat_ioctls) && mga_compat_ioctls[nr - DRM_COMMAND_BASE])
43308 + ret = (*mga_compat_ioctls[nr - DRM_COMMAND_BASE]) (filp, cmd, arg);
43309 else
43310 ret = drm_ioctl(filp, cmd, arg);
43311
43312 diff --git a/drivers/gpu/drm/mga/mga_irq.c b/drivers/gpu/drm/mga/mga_irq.c
43313 index 693ba70..465bcfc 100644
43314 --- a/drivers/gpu/drm/mga/mga_irq.c
43315 +++ b/drivers/gpu/drm/mga/mga_irq.c
43316 @@ -43,7 +43,7 @@ u32 mga_get_vblank_counter(struct drm_device *dev, unsigned int pipe)
43317 if (pipe != 0)
43318 return 0;
43319
43320 - return atomic_read(&dev_priv->vbl_received);
43321 + return atomic_read_unchecked(&dev_priv->vbl_received);
43322 }
43323
43324
43325 @@ -59,7 +59,7 @@ irqreturn_t mga_driver_irq_handler(int irq, void *arg)
43326 /* VBLANK interrupt */
43327 if (status & MGA_VLINEPEN) {
43328 MGA_WRITE(MGA_ICLEAR, MGA_VLINEICLR);
43329 - atomic_inc(&dev_priv->vbl_received);
43330 + atomic_inc_unchecked(&dev_priv->vbl_received);
43331 drm_handle_vblank(dev, 0);
43332 handled = 1;
43333 }
43334 @@ -78,7 +78,7 @@ irqreturn_t mga_driver_irq_handler(int irq, void *arg)
43335 if ((prim_start & ~0x03) != (prim_end & ~0x03))
43336 MGA_WRITE(MGA_PRIMEND, prim_end);
43337
43338 - atomic_inc(&dev_priv->last_fence_retired);
43339 + atomic_inc_unchecked(&dev_priv->last_fence_retired);
43340 wake_up(&dev_priv->fence_queue);
43341 handled = 1;
43342 }
43343 @@ -129,7 +129,7 @@ int mga_driver_fence_wait(struct drm_device *dev, unsigned int *sequence)
43344 * using fences.
43345 */
43346 DRM_WAIT_ON(ret, dev_priv->fence_queue, 3 * HZ,
43347 - (((cur_fence = atomic_read(&dev_priv->last_fence_retired))
43348 + (((cur_fence = atomic_read_unchecked(&dev_priv->last_fence_retired))
43349 - *sequence) <= (1 << 23)));
43350
43351 *sequence = cur_fence;
43352 diff --git a/drivers/gpu/drm/mga/mga_state.c b/drivers/gpu/drm/mga/mga_state.c
43353 index 792f924..aeb1334 100644
43354 --- a/drivers/gpu/drm/mga/mga_state.c
43355 +++ b/drivers/gpu/drm/mga/mga_state.c
43356 @@ -1099,4 +1099,4 @@ const struct drm_ioctl_desc mga_ioctls[] = {
43357 DRM_IOCTL_DEF_DRV(MGA_DMA_BOOTSTRAP, mga_dma_bootstrap, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY),
43358 };
43359
43360 -int mga_max_ioctl = ARRAY_SIZE(mga_ioctls);
43361 +const int mga_max_ioctl = ARRAY_SIZE(mga_ioctls);
43362 diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c
43363 index 4dca65a..3486961 100644
43364 --- a/drivers/gpu/drm/nouveau/nouveau_bios.c
43365 +++ b/drivers/gpu/drm/nouveau/nouveau_bios.c
43366 @@ -964,7 +964,7 @@ static int parse_bit_tmds_tbl_entry(struct drm_device *dev, struct nvbios *bios,
43367 struct bit_table {
43368 const char id;
43369 int (* const parse_fn)(struct drm_device *, struct nvbios *, struct bit_entry *);
43370 -};
43371 +} __no_const;
43372
43373 #define BIT_TABLE(id, funcid) ((struct bit_table){ id, parse_bit_##funcid##_tbl_entry })
43374
43375 diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
43376 index 1d3ee51..5fb4449 100644
43377 --- a/drivers/gpu/drm/nouveau/nouveau_drm.c
43378 +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
43379 @@ -76,9 +76,8 @@ MODULE_PARM_DESC(runpm, "disable (0), force enable (1), optimus only default (-1
43380 int nouveau_runtime_pm = -1;
43381 module_param_named(runpm, nouveau_runtime_pm, int, 0400);
43382
43383 -static struct drm_driver driver_stub;
43384 static struct drm_driver driver_pci;
43385 -static struct drm_driver driver_platform;
43386 +static drm_driver_no_const driver_platform __read_only;
43387
43388 static u64
43389 nouveau_pci_name(struct pci_dev *pdev)
43390 @@ -915,7 +914,7 @@ nouveau_driver_fops = {
43391 };
43392
43393 static struct drm_driver
43394 -driver_stub = {
43395 +driver_pci = {
43396 .driver_features =
43397 DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME | DRIVER_RENDER |
43398 DRIVER_KMS_LEGACY_CONTEXT,
43399 @@ -927,6 +926,8 @@ driver_stub = {
43400 .postclose = nouveau_drm_postclose,
43401 .lastclose = nouveau_vga_lastclose,
43402
43403 + .set_busid = drm_pci_set_busid,
43404 +
43405 #if defined(CONFIG_DEBUG_FS)
43406 .debugfs_init = nouveau_debugfs_init,
43407 .debugfs_cleanup = nouveau_debugfs_takedown,
43408 @@ -1064,10 +1065,10 @@ err_free:
43409 static int __init
43410 nouveau_drm_init(void)
43411 {
43412 - driver_pci = driver_stub;
43413 - driver_pci.set_busid = drm_pci_set_busid;
43414 - driver_platform = driver_stub;
43415 + pax_open_kernel();
43416 + driver_platform = driver_pci;
43417 driver_platform.set_busid = drm_platform_set_busid;
43418 + pax_close_kernel();
43419
43420 nouveau_display_options();
43421
43422 diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.h b/drivers/gpu/drm/nouveau/nouveau_drm.h
43423 index a02813e..c30a6b0 100644
43424 --- a/drivers/gpu/drm/nouveau/nouveau_drm.h
43425 +++ b/drivers/gpu/drm/nouveau/nouveau_drm.h
43426 @@ -124,7 +124,6 @@ struct nouveau_drm {
43427 struct drm_global_reference mem_global_ref;
43428 struct ttm_bo_global_ref bo_global_ref;
43429 struct ttm_bo_device bdev;
43430 - atomic_t validate_sequence;
43431 int (*move)(struct nouveau_channel *,
43432 struct ttm_buffer_object *,
43433 struct ttm_mem_reg *, struct ttm_mem_reg *);
43434 diff --git a/drivers/gpu/drm/nouveau/nouveau_ioc32.c b/drivers/gpu/drm/nouveau/nouveau_ioc32.c
43435 index 462679a..88e32a7 100644
43436 --- a/drivers/gpu/drm/nouveau/nouveau_ioc32.c
43437 +++ b/drivers/gpu/drm/nouveau/nouveau_ioc32.c
43438 @@ -50,7 +50,7 @@ long nouveau_compat_ioctl(struct file *filp, unsigned int cmd,
43439 unsigned long arg)
43440 {
43441 unsigned int nr = DRM_IOCTL_NR(cmd);
43442 - drm_ioctl_compat_t *fn = NULL;
43443 + drm_ioctl_compat_t fn = NULL;
43444 int ret;
43445
43446 if (nr < DRM_COMMAND_BASE)
43447 diff --git a/drivers/gpu/drm/nouveau/nouveau_ttm.c b/drivers/gpu/drm/nouveau/nouveau_ttm.c
43448 index d2e7d20..7bbe51f 100644
43449 --- a/drivers/gpu/drm/nouveau/nouveau_ttm.c
43450 +++ b/drivers/gpu/drm/nouveau/nouveau_ttm.c
43451 @@ -107,10 +107,10 @@ nouveau_vram_manager_new(struct ttm_mem_type_manager *man,
43452 }
43453
43454 const struct ttm_mem_type_manager_func nouveau_vram_manager = {
43455 - nouveau_vram_manager_init,
43456 - nouveau_vram_manager_fini,
43457 - nouveau_vram_manager_new,
43458 - nouveau_vram_manager_del,
43459 + .init = nouveau_vram_manager_init,
43460 + .takedown = nouveau_vram_manager_fini,
43461 + .get_node = nouveau_vram_manager_new,
43462 + .put_node = nouveau_vram_manager_del,
43463 };
43464
43465 static int
43466 @@ -183,11 +183,11 @@ nouveau_gart_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
43467 }
43468
43469 const struct ttm_mem_type_manager_func nouveau_gart_manager = {
43470 - nouveau_gart_manager_init,
43471 - nouveau_gart_manager_fini,
43472 - nouveau_gart_manager_new,
43473 - nouveau_gart_manager_del,
43474 - nouveau_gart_manager_debug
43475 + .init = nouveau_gart_manager_init,
43476 + .takedown = nouveau_gart_manager_fini,
43477 + .get_node = nouveau_gart_manager_new,
43478 + .put_node = nouveau_gart_manager_del,
43479 + .debug = nouveau_gart_manager_debug
43480 };
43481
43482 /*XXX*/
43483 @@ -256,11 +256,11 @@ nv04_gart_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
43484 }
43485
43486 const struct ttm_mem_type_manager_func nv04_gart_manager = {
43487 - nv04_gart_manager_init,
43488 - nv04_gart_manager_fini,
43489 - nv04_gart_manager_new,
43490 - nv04_gart_manager_del,
43491 - nv04_gart_manager_debug
43492 + .init = nv04_gart_manager_init,
43493 + .takedown = nv04_gart_manager_fini,
43494 + .get_node = nv04_gart_manager_new,
43495 + .put_node = nv04_gart_manager_del,
43496 + .debug = nv04_gart_manager_debug
43497 };
43498
43499 int
43500 diff --git a/drivers/gpu/drm/nouveau/nouveau_vga.c b/drivers/gpu/drm/nouveau/nouveau_vga.c
43501 index af89c36..83ef136 100644
43502 --- a/drivers/gpu/drm/nouveau/nouveau_vga.c
43503 +++ b/drivers/gpu/drm/nouveau/nouveau_vga.c
43504 @@ -73,7 +73,7 @@ nouveau_switcheroo_can_switch(struct pci_dev *pdev)
43505 * locking inversion with the driver load path. And the access here is
43506 * completely racy anyway. So don't bother with locking for now.
43507 */
43508 - return dev->open_count == 0;
43509 + return local_read(&dev->open_count) == 0;
43510 }
43511
43512 static const struct vga_switcheroo_client_ops
43513 diff --git a/drivers/gpu/drm/omapdrm/Makefile b/drivers/gpu/drm/omapdrm/Makefile
43514 index 778372b..4b81cb4 100644
43515 --- a/drivers/gpu/drm/omapdrm/Makefile
43516 +++ b/drivers/gpu/drm/omapdrm/Makefile
43517 @@ -3,7 +3,7 @@
43518 # Direct Rendering Infrastructure (DRI)
43519 #
43520
43521 -ccflags-y := -Iinclude/drm -Werror
43522 +ccflags-y := -Iinclude/drm
43523 omapdrm-y := omap_drv.o \
43524 omap_irq.o \
43525 omap_debugfs.o \
43526 diff --git a/drivers/gpu/drm/qxl/qxl_cmd.c b/drivers/gpu/drm/qxl/qxl_cmd.c
43527 index fdc1833..f307630 100644
43528 --- a/drivers/gpu/drm/qxl/qxl_cmd.c
43529 +++ b/drivers/gpu/drm/qxl/qxl_cmd.c
43530 @@ -285,27 +285,27 @@ static int wait_for_io_cmd_user(struct qxl_device *qdev, uint8_t val, long port,
43531 int ret;
43532
43533 mutex_lock(&qdev->async_io_mutex);
43534 - irq_num = atomic_read(&qdev->irq_received_io_cmd);
43535 + irq_num = atomic_read_unchecked(&qdev->irq_received_io_cmd);
43536 if (qdev->last_sent_io_cmd > irq_num) {
43537 if (intr)
43538 ret = wait_event_interruptible_timeout(qdev->io_cmd_event,
43539 - atomic_read(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43540 + atomic_read_unchecked(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43541 else
43542 ret = wait_event_timeout(qdev->io_cmd_event,
43543 - atomic_read(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43544 + atomic_read_unchecked(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43545 /* 0 is timeout, just bail the "hw" has gone away */
43546 if (ret <= 0)
43547 goto out;
43548 - irq_num = atomic_read(&qdev->irq_received_io_cmd);
43549 + irq_num = atomic_read_unchecked(&qdev->irq_received_io_cmd);
43550 }
43551 outb(val, addr);
43552 qdev->last_sent_io_cmd = irq_num + 1;
43553 if (intr)
43554 ret = wait_event_interruptible_timeout(qdev->io_cmd_event,
43555 - atomic_read(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43556 + atomic_read_unchecked(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43557 else
43558 ret = wait_event_timeout(qdev->io_cmd_event,
43559 - atomic_read(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43560 + atomic_read_unchecked(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43561 out:
43562 if (ret > 0)
43563 ret = 0;
43564 diff --git a/drivers/gpu/drm/qxl/qxl_debugfs.c b/drivers/gpu/drm/qxl/qxl_debugfs.c
43565 index 6911b8c..89d6867 100644
43566 --- a/drivers/gpu/drm/qxl/qxl_debugfs.c
43567 +++ b/drivers/gpu/drm/qxl/qxl_debugfs.c
43568 @@ -42,10 +42,10 @@ qxl_debugfs_irq_received(struct seq_file *m, void *data)
43569 struct drm_info_node *node = (struct drm_info_node *) m->private;
43570 struct qxl_device *qdev = node->minor->dev->dev_private;
43571
43572 - seq_printf(m, "%d\n", atomic_read(&qdev->irq_received));
43573 - seq_printf(m, "%d\n", atomic_read(&qdev->irq_received_display));
43574 - seq_printf(m, "%d\n", atomic_read(&qdev->irq_received_cursor));
43575 - seq_printf(m, "%d\n", atomic_read(&qdev->irq_received_io_cmd));
43576 + seq_printf(m, "%d\n", atomic_read_unchecked(&qdev->irq_received));
43577 + seq_printf(m, "%d\n", atomic_read_unchecked(&qdev->irq_received_display));
43578 + seq_printf(m, "%d\n", atomic_read_unchecked(&qdev->irq_received_cursor));
43579 + seq_printf(m, "%d\n", atomic_read_unchecked(&qdev->irq_received_io_cmd));
43580 seq_printf(m, "%d\n", qdev->irq_received_error);
43581 return 0;
43582 }
43583 diff --git a/drivers/gpu/drm/qxl/qxl_drv.c b/drivers/gpu/drm/qxl/qxl_drv.c
43584 index 7307b07..8eecdd0 100644
43585 --- a/drivers/gpu/drm/qxl/qxl_drv.c
43586 +++ b/drivers/gpu/drm/qxl/qxl_drv.c
43587 @@ -37,7 +37,7 @@
43588 #include "qxl_drv.h"
43589 #include "qxl_object.h"
43590
43591 -extern int qxl_max_ioctls;
43592 +extern const int qxl_max_ioctls;
43593 static const struct pci_device_id pciidlist[] = {
43594 { 0x1b36, 0x100, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8,
43595 0xffff00, 0 },
43596 @@ -279,7 +279,11 @@ static int __init qxl_init(void)
43597
43598 if (qxl_modeset == 0)
43599 return -EINVAL;
43600 - qxl_driver.num_ioctls = qxl_max_ioctls;
43601 +
43602 + pax_open_kernel();
43603 + *(int *)&qxl_driver.num_ioctls = qxl_max_ioctls;
43604 + pax_close_kernel();
43605 +
43606 return drm_pci_init(&qxl_driver, &qxl_pci_driver);
43607 }
43608
43609 diff --git a/drivers/gpu/drm/qxl/qxl_drv.h b/drivers/gpu/drm/qxl/qxl_drv.h
43610 index 01a8694..584fb48 100644
43611 --- a/drivers/gpu/drm/qxl/qxl_drv.h
43612 +++ b/drivers/gpu/drm/qxl/qxl_drv.h
43613 @@ -290,10 +290,10 @@ struct qxl_device {
43614 unsigned int last_sent_io_cmd;
43615
43616 /* interrupt handling */
43617 - atomic_t irq_received;
43618 - atomic_t irq_received_display;
43619 - atomic_t irq_received_cursor;
43620 - atomic_t irq_received_io_cmd;
43621 + atomic_unchecked_t irq_received;
43622 + atomic_unchecked_t irq_received_display;
43623 + atomic_unchecked_t irq_received_cursor;
43624 + atomic_unchecked_t irq_received_io_cmd;
43625 unsigned irq_received_error;
43626 wait_queue_head_t display_event;
43627 wait_queue_head_t cursor_event;
43628 diff --git a/drivers/gpu/drm/qxl/qxl_ioctl.c b/drivers/gpu/drm/qxl/qxl_ioctl.c
43629 index 7c2e782..d3ca7da 100644
43630 --- a/drivers/gpu/drm/qxl/qxl_ioctl.c
43631 +++ b/drivers/gpu/drm/qxl/qxl_ioctl.c
43632 @@ -184,7 +184,7 @@ static int qxl_process_single_command(struct qxl_device *qdev,
43633
43634 /* TODO copy slow path code from i915 */
43635 fb_cmd = qxl_bo_kmap_atomic_page(qdev, cmd_bo, (release->release_offset & PAGE_SIZE));
43636 - 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);
43637 + 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);
43638
43639 {
43640 struct qxl_drawable *draw = fb_cmd;
43641 @@ -204,7 +204,7 @@ static int qxl_process_single_command(struct qxl_device *qdev,
43642 struct drm_qxl_reloc reloc;
43643
43644 if (copy_from_user(&reloc,
43645 - &((struct drm_qxl_reloc *)(uintptr_t)cmd->relocs)[i],
43646 + &((struct drm_qxl_reloc __force_user *)(uintptr_t)cmd->relocs)[i],
43647 sizeof(reloc))) {
43648 ret = -EFAULT;
43649 goto out_free_bos;
43650 @@ -283,10 +283,10 @@ static int qxl_execbuffer_ioctl(struct drm_device *dev, void *data,
43651
43652 for (cmd_num = 0; cmd_num < execbuffer->commands_num; ++cmd_num) {
43653
43654 - struct drm_qxl_command *commands =
43655 - (struct drm_qxl_command *)(uintptr_t)execbuffer->commands;
43656 + struct drm_qxl_command __user *commands =
43657 + (struct drm_qxl_command __user *)(uintptr_t)execbuffer->commands;
43658
43659 - if (copy_from_user(&user_cmd, &commands[cmd_num],
43660 + if (copy_from_user(&user_cmd, (struct drm_qxl_command __force_user *)&commands[cmd_num],
43661 sizeof(user_cmd)))
43662 return -EFAULT;
43663
43664 @@ -440,4 +440,4 @@ const struct drm_ioctl_desc qxl_ioctls[] = {
43665 DRM_AUTH),
43666 };
43667
43668 -int qxl_max_ioctls = ARRAY_SIZE(qxl_ioctls);
43669 +const int qxl_max_ioctls = ARRAY_SIZE(qxl_ioctls);
43670 diff --git a/drivers/gpu/drm/qxl/qxl_irq.c b/drivers/gpu/drm/qxl/qxl_irq.c
43671 index 0bf1e20..42a7310 100644
43672 --- a/drivers/gpu/drm/qxl/qxl_irq.c
43673 +++ b/drivers/gpu/drm/qxl/qxl_irq.c
43674 @@ -36,19 +36,19 @@ irqreturn_t qxl_irq_handler(int irq, void *arg)
43675 if (!pending)
43676 return IRQ_NONE;
43677
43678 - atomic_inc(&qdev->irq_received);
43679 + atomic_inc_unchecked(&qdev->irq_received);
43680
43681 if (pending & QXL_INTERRUPT_DISPLAY) {
43682 - atomic_inc(&qdev->irq_received_display);
43683 + atomic_inc_unchecked(&qdev->irq_received_display);
43684 wake_up_all(&qdev->display_event);
43685 qxl_queue_garbage_collect(qdev, false);
43686 }
43687 if (pending & QXL_INTERRUPT_CURSOR) {
43688 - atomic_inc(&qdev->irq_received_cursor);
43689 + atomic_inc_unchecked(&qdev->irq_received_cursor);
43690 wake_up_all(&qdev->cursor_event);
43691 }
43692 if (pending & QXL_INTERRUPT_IO_CMD) {
43693 - atomic_inc(&qdev->irq_received_io_cmd);
43694 + atomic_inc_unchecked(&qdev->irq_received_io_cmd);
43695 wake_up_all(&qdev->io_cmd_event);
43696 }
43697 if (pending & QXL_INTERRUPT_ERROR) {
43698 @@ -85,10 +85,10 @@ int qxl_irq_init(struct qxl_device *qdev)
43699 init_waitqueue_head(&qdev->io_cmd_event);
43700 INIT_WORK(&qdev->client_monitors_config_work,
43701 qxl_client_monitors_config_work_func);
43702 - atomic_set(&qdev->irq_received, 0);
43703 - atomic_set(&qdev->irq_received_display, 0);
43704 - atomic_set(&qdev->irq_received_cursor, 0);
43705 - atomic_set(&qdev->irq_received_io_cmd, 0);
43706 + atomic_set_unchecked(&qdev->irq_received, 0);
43707 + atomic_set_unchecked(&qdev->irq_received_display, 0);
43708 + atomic_set_unchecked(&qdev->irq_received_cursor, 0);
43709 + atomic_set_unchecked(&qdev->irq_received_io_cmd, 0);
43710 qdev->irq_received_error = 0;
43711 ret = drm_irq_install(qdev->ddev, qdev->ddev->pdev->irq);
43712 qdev->ram_header->int_mask = QXL_INTERRUPT_MASK;
43713 diff --git a/drivers/gpu/drm/qxl/qxl_ttm.c b/drivers/gpu/drm/qxl/qxl_ttm.c
43714 index 0cbc4c9..0e46686 100644
43715 --- a/drivers/gpu/drm/qxl/qxl_ttm.c
43716 +++ b/drivers/gpu/drm/qxl/qxl_ttm.c
43717 @@ -103,7 +103,7 @@ static void qxl_ttm_global_fini(struct qxl_device *qdev)
43718 }
43719 }
43720
43721 -static struct vm_operations_struct qxl_ttm_vm_ops;
43722 +static vm_operations_struct_no_const qxl_ttm_vm_ops __read_only;
43723 static const struct vm_operations_struct *ttm_vm_ops;
43724
43725 static int qxl_ttm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
43726 @@ -145,8 +145,10 @@ int qxl_mmap(struct file *filp, struct vm_area_struct *vma)
43727 return r;
43728 if (unlikely(ttm_vm_ops == NULL)) {
43729 ttm_vm_ops = vma->vm_ops;
43730 + pax_open_kernel();
43731 qxl_ttm_vm_ops = *ttm_vm_ops;
43732 qxl_ttm_vm_ops.fault = &qxl_ttm_fault;
43733 + pax_close_kernel();
43734 }
43735 vma->vm_ops = &qxl_ttm_vm_ops;
43736 return 0;
43737 @@ -464,25 +466,23 @@ static int qxl_mm_dump_table(struct seq_file *m, void *data)
43738 static int qxl_ttm_debugfs_init(struct qxl_device *qdev)
43739 {
43740 #if defined(CONFIG_DEBUG_FS)
43741 - static struct drm_info_list qxl_mem_types_list[QXL_DEBUGFS_MEM_TYPES];
43742 - static char qxl_mem_types_names[QXL_DEBUGFS_MEM_TYPES][32];
43743 - unsigned i;
43744 + static struct drm_info_list qxl_mem_types_list[QXL_DEBUGFS_MEM_TYPES] = {
43745 + {
43746 + .name = "qxl_mem_mm",
43747 + .show = &qxl_mm_dump_table,
43748 + },
43749 + {
43750 + .name = "qxl_surf_mm",
43751 + .show = &qxl_mm_dump_table,
43752 + }
43753 + };
43754
43755 - for (i = 0; i < QXL_DEBUGFS_MEM_TYPES; i++) {
43756 - if (i == 0)
43757 - sprintf(qxl_mem_types_names[i], "qxl_mem_mm");
43758 - else
43759 - sprintf(qxl_mem_types_names[i], "qxl_surf_mm");
43760 - qxl_mem_types_list[i].name = qxl_mem_types_names[i];
43761 - qxl_mem_types_list[i].show = &qxl_mm_dump_table;
43762 - qxl_mem_types_list[i].driver_features = 0;
43763 - if (i == 0)
43764 - qxl_mem_types_list[i].data = qdev->mman.bdev.man[TTM_PL_VRAM].priv;
43765 - else
43766 - qxl_mem_types_list[i].data = qdev->mman.bdev.man[TTM_PL_PRIV0].priv;
43767 + pax_open_kernel();
43768 + *(void **)&qxl_mem_types_list[0].data = qdev->mman.bdev.man[TTM_PL_VRAM].priv;
43769 + *(void **)&qxl_mem_types_list[1].data = qdev->mman.bdev.man[TTM_PL_PRIV0].priv;
43770 + pax_close_kernel();
43771
43772 - }
43773 - return qxl_debugfs_add_files(qdev, qxl_mem_types_list, i);
43774 + return qxl_debugfs_add_files(qdev, qxl_mem_types_list, QXL_DEBUGFS_MEM_TYPES);
43775 #else
43776 return 0;
43777 #endif
43778 diff --git a/drivers/gpu/drm/r128/r128_cce.c b/drivers/gpu/drm/r128/r128_cce.c
43779 index 14fd83b5f..b2acbd19 100644
43780 --- a/drivers/gpu/drm/r128/r128_cce.c
43781 +++ b/drivers/gpu/drm/r128/r128_cce.c
43782 @@ -377,7 +377,7 @@ static int r128_do_init_cce(struct drm_device *dev, drm_r128_init_t *init)
43783
43784 /* GH: Simple idle check.
43785 */
43786 - atomic_set(&dev_priv->idle_count, 0);
43787 + atomic_set_unchecked(&dev_priv->idle_count, 0);
43788
43789 /* We don't support anything other than bus-mastering ring mode,
43790 * but the ring can be in either AGP or PCI space for the ring
43791 diff --git a/drivers/gpu/drm/r128/r128_drv.c b/drivers/gpu/drm/r128/r128_drv.c
43792 index c57b4de..2614d79 100644
43793 --- a/drivers/gpu/drm/r128/r128_drv.c
43794 +++ b/drivers/gpu/drm/r128/r128_drv.c
43795 @@ -94,7 +94,9 @@ static struct pci_driver r128_pci_driver = {
43796
43797 static int __init r128_init(void)
43798 {
43799 - driver.num_ioctls = r128_max_ioctl;
43800 + pax_open_kernel();
43801 + *(int *)&driver.num_ioctls = r128_max_ioctl;
43802 + pax_close_kernel();
43803
43804 return drm_pci_init(&driver, &r128_pci_driver);
43805 }
43806 diff --git a/drivers/gpu/drm/r128/r128_drv.h b/drivers/gpu/drm/r128/r128_drv.h
43807 index 09143b8..86c8394 100644
43808 --- a/drivers/gpu/drm/r128/r128_drv.h
43809 +++ b/drivers/gpu/drm/r128/r128_drv.h
43810 @@ -93,14 +93,14 @@ typedef struct drm_r128_private {
43811 int is_pci;
43812 unsigned long cce_buffers_offset;
43813
43814 - atomic_t idle_count;
43815 + atomic_unchecked_t idle_count;
43816
43817 int page_flipping;
43818 int current_page;
43819 u32 crtc_offset;
43820 u32 crtc_offset_cntl;
43821
43822 - atomic_t vbl_received;
43823 + atomic_unchecked_t vbl_received;
43824
43825 u32 color_fmt;
43826 unsigned int front_offset;
43827 @@ -135,7 +135,7 @@ typedef struct drm_r128_buf_priv {
43828 } drm_r128_buf_priv_t;
43829
43830 extern const struct drm_ioctl_desc r128_ioctls[];
43831 -extern int r128_max_ioctl;
43832 +extern const int r128_max_ioctl;
43833
43834 /* r128_cce.c */
43835 extern int r128_cce_init(struct drm_device *dev, void *data, struct drm_file *file_priv);
43836 diff --git a/drivers/gpu/drm/r128/r128_ioc32.c b/drivers/gpu/drm/r128/r128_ioc32.c
43837 index 663f38c..ec159a1 100644
43838 --- a/drivers/gpu/drm/r128/r128_ioc32.c
43839 +++ b/drivers/gpu/drm/r128/r128_ioc32.c
43840 @@ -178,7 +178,7 @@ static int compat_r128_getparam(struct file *file, unsigned int cmd,
43841 return drm_ioctl(file, DRM_IOCTL_R128_GETPARAM, (unsigned long)getparam);
43842 }
43843
43844 -drm_ioctl_compat_t *r128_compat_ioctls[] = {
43845 +drm_ioctl_compat_t r128_compat_ioctls[] = {
43846 [DRM_R128_INIT] = compat_r128_init,
43847 [DRM_R128_DEPTH] = compat_r128_depth,
43848 [DRM_R128_STIPPLE] = compat_r128_stipple,
43849 @@ -197,17 +197,13 @@ drm_ioctl_compat_t *r128_compat_ioctls[] = {
43850 long r128_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
43851 {
43852 unsigned int nr = DRM_IOCTL_NR(cmd);
43853 - drm_ioctl_compat_t *fn = NULL;
43854 int ret;
43855
43856 if (nr < DRM_COMMAND_BASE)
43857 return drm_compat_ioctl(filp, cmd, arg);
43858
43859 - if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(r128_compat_ioctls))
43860 - fn = r128_compat_ioctls[nr - DRM_COMMAND_BASE];
43861 -
43862 - if (fn != NULL)
43863 - ret = (*fn) (filp, cmd, arg);
43864 + if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(r128_compat_ioctls) && r128_compat_ioctls[nr - DRM_COMMAND_BASE])
43865 + ret = (*r128_compat_ioctls[nr - DRM_COMMAND_BASE]) (filp, cmd, arg);
43866 else
43867 ret = drm_ioctl(filp, cmd, arg);
43868
43869 diff --git a/drivers/gpu/drm/r128/r128_irq.c b/drivers/gpu/drm/r128/r128_irq.c
43870 index 9730f49..920e9bf 100644
43871 --- a/drivers/gpu/drm/r128/r128_irq.c
43872 +++ b/drivers/gpu/drm/r128/r128_irq.c
43873 @@ -41,7 +41,7 @@ u32 r128_get_vblank_counter(struct drm_device *dev, unsigned int pipe)
43874 if (pipe != 0)
43875 return 0;
43876
43877 - return atomic_read(&dev_priv->vbl_received);
43878 + return atomic_read_unchecked(&dev_priv->vbl_received);
43879 }
43880
43881 irqreturn_t r128_driver_irq_handler(int irq, void *arg)
43882 @@ -55,7 +55,7 @@ irqreturn_t r128_driver_irq_handler(int irq, void *arg)
43883 /* VBLANK interrupt */
43884 if (status & R128_CRTC_VBLANK_INT) {
43885 R128_WRITE(R128_GEN_INT_STATUS, R128_CRTC_VBLANK_INT_AK);
43886 - atomic_inc(&dev_priv->vbl_received);
43887 + atomic_inc_unchecked(&dev_priv->vbl_received);
43888 drm_handle_vblank(dev, 0);
43889 return IRQ_HANDLED;
43890 }
43891 diff --git a/drivers/gpu/drm/r128/r128_state.c b/drivers/gpu/drm/r128/r128_state.c
43892 index 8fd2d9f..4e99166 100644
43893 --- a/drivers/gpu/drm/r128/r128_state.c
43894 +++ b/drivers/gpu/drm/r128/r128_state.c
43895 @@ -320,10 +320,10 @@ static void r128_clear_box(drm_r128_private_t *dev_priv,
43896
43897 static void r128_cce_performance_boxes(drm_r128_private_t *dev_priv)
43898 {
43899 - if (atomic_read(&dev_priv->idle_count) == 0)
43900 + if (atomic_read_unchecked(&dev_priv->idle_count) == 0)
43901 r128_clear_box(dev_priv, 64, 4, 8, 8, 0, 255, 0);
43902 else
43903 - atomic_set(&dev_priv->idle_count, 0);
43904 + atomic_set_unchecked(&dev_priv->idle_count, 0);
43905 }
43906
43907 #endif
43908 @@ -1641,4 +1641,4 @@ const struct drm_ioctl_desc r128_ioctls[] = {
43909 DRM_IOCTL_DEF_DRV(R128_GETPARAM, r128_getparam, DRM_AUTH),
43910 };
43911
43912 -int r128_max_ioctl = ARRAY_SIZE(r128_ioctls);
43913 +const int r128_max_ioctl = ARRAY_SIZE(r128_ioctls);
43914 diff --git a/drivers/gpu/drm/radeon/mkregtable.c b/drivers/gpu/drm/radeon/mkregtable.c
43915 index b928c17..e5d9400 100644
43916 --- a/drivers/gpu/drm/radeon/mkregtable.c
43917 +++ b/drivers/gpu/drm/radeon/mkregtable.c
43918 @@ -624,14 +624,14 @@ static int parser_auth(struct table *t, const char *filename)
43919 regex_t mask_rex;
43920 regmatch_t match[4];
43921 char buf[1024];
43922 - size_t end;
43923 + long end;
43924 int len;
43925 int done = 0;
43926 int r;
43927 unsigned o;
43928 struct offset *offset;
43929 char last_reg_s[10];
43930 - int last_reg;
43931 + unsigned long last_reg;
43932
43933 if (regcomp
43934 (&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) {
43935 diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
43936 index d690df5..4aaaead 100644
43937 --- a/drivers/gpu/drm/radeon/radeon_device.c
43938 +++ b/drivers/gpu/drm/radeon/radeon_device.c
43939 @@ -1253,7 +1253,7 @@ static bool radeon_switcheroo_can_switch(struct pci_dev *pdev)
43940 * locking inversion with the driver load path. And the access here is
43941 * completely racy anyway. So don't bother with locking for now.
43942 */
43943 - return dev->open_count == 0;
43944 + return local_read(&dev->open_count) == 0;
43945 }
43946
43947 static const struct vga_switcheroo_client_ops radeon_switcheroo_ops = {
43948 diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
43949 index 5b6a6f5..7f4e55a 100644
43950 --- a/drivers/gpu/drm/radeon/radeon_drv.c
43951 +++ b/drivers/gpu/drm/radeon/radeon_drv.c
43952 @@ -130,7 +130,7 @@ extern int radeon_get_crtc_scanoutpos(struct drm_device *dev, unsigned int crtc,
43953 const struct drm_display_mode *mode);
43954 extern bool radeon_is_px(struct drm_device *dev);
43955 extern const struct drm_ioctl_desc radeon_ioctls_kms[];
43956 -extern int radeon_max_kms_ioctl;
43957 +extern const int radeon_max_kms_ioctl;
43958 int radeon_mmap(struct file *filp, struct vm_area_struct *vma);
43959 int radeon_mode_dumb_mmap(struct drm_file *filp,
43960 struct drm_device *dev,
43961 @@ -566,7 +566,7 @@ static struct drm_driver kms_driver = {
43962 .driver_features =
43963 DRIVER_USE_AGP |
43964 DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM |
43965 - DRIVER_PRIME | DRIVER_RENDER,
43966 + DRIVER_PRIME | DRIVER_RENDER | DRIVER_MODESET,
43967 .load = radeon_driver_load_kms,
43968 .open = radeon_driver_open_kms,
43969 .preclose = radeon_driver_preclose_kms,
43970 @@ -650,8 +650,11 @@ static int __init radeon_init(void)
43971 DRM_INFO("radeon kernel modesetting enabled.\n");
43972 driver = &kms_driver;
43973 pdriver = &radeon_kms_pci_driver;
43974 - driver->driver_features |= DRIVER_MODESET;
43975 - driver->num_ioctls = radeon_max_kms_ioctl;
43976 +
43977 + pax_open_kernel();
43978 + *(int *)&driver->num_ioctls = radeon_max_kms_ioctl;
43979 + pax_close_kernel();
43980 +
43981 radeon_register_atpx_handler();
43982
43983 } else {
43984 @@ -659,8 +662,10 @@ static int __init radeon_init(void)
43985 DRM_INFO("radeon userspace modesetting enabled.\n");
43986 driver = &driver_old;
43987 pdriver = &radeon_pci_driver;
43988 - driver->driver_features &= ~DRIVER_MODESET;
43989 - driver->num_ioctls = radeon_max_ioctl;
43990 +
43991 + pax_open_kernel();
43992 + *(int *)&driver->num_ioctls = radeon_max_ioctl;
43993 + pax_close_kernel();
43994 #else
43995 DRM_ERROR("No UMS support in radeon module!\n");
43996 return -EINVAL;
43997 diff --git a/drivers/gpu/drm/radeon/radeon_drv.h b/drivers/gpu/drm/radeon/radeon_drv.h
43998 index 0caafc7..32afc20 100644
43999 --- a/drivers/gpu/drm/radeon/radeon_drv.h
44000 +++ b/drivers/gpu/drm/radeon/radeon_drv.h
44001 @@ -264,7 +264,7 @@ typedef struct drm_radeon_private {
44002
44003 /* SW interrupt */
44004 wait_queue_head_t swi_queue;
44005 - atomic_t swi_emitted;
44006 + atomic_unchecked_t swi_emitted;
44007 int vblank_crtc;
44008 uint32_t irq_enable_reg;
44009 uint32_t r500_disp_irq_reg;
44010 @@ -336,7 +336,7 @@ typedef struct drm_radeon_kcmd_buffer {
44011
44012 extern int radeon_no_wb;
44013 extern struct drm_ioctl_desc radeon_ioctls[];
44014 -extern int radeon_max_ioctl;
44015 +extern const int radeon_max_ioctl;
44016
44017 extern u32 radeon_get_ring_head(drm_radeon_private_t *dev_priv);
44018 extern void radeon_set_ring_head(drm_radeon_private_t *dev_priv, u32 val);
44019 diff --git a/drivers/gpu/drm/radeon/radeon_ioc32.c b/drivers/gpu/drm/radeon/radeon_ioc32.c
44020 index 0b98ea1..a3c770f 100644
44021 --- a/drivers/gpu/drm/radeon/radeon_ioc32.c
44022 +++ b/drivers/gpu/drm/radeon/radeon_ioc32.c
44023 @@ -358,7 +358,7 @@ static int compat_radeon_cp_setparam(struct file *file, unsigned int cmd,
44024 request = compat_alloc_user_space(sizeof(*request));
44025 if (!access_ok(VERIFY_WRITE, request, sizeof(*request))
44026 || __put_user(req32.param, &request->param)
44027 - || __put_user((void __user *)(unsigned long)req32.value,
44028 + || __put_user((unsigned long)req32.value,
44029 &request->value))
44030 return -EFAULT;
44031
44032 @@ -368,7 +368,7 @@ static int compat_radeon_cp_setparam(struct file *file, unsigned int cmd,
44033 #define compat_radeon_cp_setparam NULL
44034 #endif /* X86_64 || IA64 */
44035
44036 -static drm_ioctl_compat_t *radeon_compat_ioctls[] = {
44037 +static drm_ioctl_compat_t radeon_compat_ioctls[] = {
44038 [DRM_RADEON_CP_INIT] = compat_radeon_cp_init,
44039 [DRM_RADEON_CLEAR] = compat_radeon_cp_clear,
44040 [DRM_RADEON_STIPPLE] = compat_radeon_cp_stipple,
44041 @@ -393,17 +393,13 @@ static drm_ioctl_compat_t *radeon_compat_ioctls[] = {
44042 long radeon_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
44043 {
44044 unsigned int nr = DRM_IOCTL_NR(cmd);
44045 - drm_ioctl_compat_t *fn = NULL;
44046 int ret;
44047
44048 if (nr < DRM_COMMAND_BASE)
44049 return drm_compat_ioctl(filp, cmd, arg);
44050
44051 - if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(radeon_compat_ioctls))
44052 - fn = radeon_compat_ioctls[nr - DRM_COMMAND_BASE];
44053 -
44054 - if (fn != NULL)
44055 - ret = (*fn) (filp, cmd, arg);
44056 + if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(radeon_compat_ioctls) && radeon_compat_ioctls[nr - DRM_COMMAND_BASE])
44057 + ret = (*radeon_compat_ioctls[nr - DRM_COMMAND_BASE]) (filp, cmd, arg);
44058 else
44059 ret = drm_ioctl(filp, cmd, arg);
44060
44061 diff --git a/drivers/gpu/drm/radeon/radeon_irq.c b/drivers/gpu/drm/radeon/radeon_irq.c
44062 index 688afb6..4b95df6 100644
44063 --- a/drivers/gpu/drm/radeon/radeon_irq.c
44064 +++ b/drivers/gpu/drm/radeon/radeon_irq.c
44065 @@ -226,8 +226,8 @@ static int radeon_emit_irq(struct drm_device * dev)
44066 unsigned int ret;
44067 RING_LOCALS;
44068
44069 - atomic_inc(&dev_priv->swi_emitted);
44070 - ret = atomic_read(&dev_priv->swi_emitted);
44071 + atomic_inc_unchecked(&dev_priv->swi_emitted);
44072 + ret = atomic_read_unchecked(&dev_priv->swi_emitted);
44073
44074 BEGIN_RING(4);
44075 OUT_RING_REG(RADEON_LAST_SWI_REG, ret);
44076 @@ -353,7 +353,7 @@ int radeon_driver_irq_postinstall(struct drm_device *dev)
44077 drm_radeon_private_t *dev_priv =
44078 (drm_radeon_private_t *) dev->dev_private;
44079
44080 - atomic_set(&dev_priv->swi_emitted, 0);
44081 + atomic_set_unchecked(&dev_priv->swi_emitted, 0);
44082 init_waitqueue_head(&dev_priv->swi_queue);
44083
44084 dev->max_vblank_count = 0x001fffff;
44085 diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
44086 index d290a8a..e165ba9 100644
44087 --- a/drivers/gpu/drm/radeon/radeon_kms.c
44088 +++ b/drivers/gpu/drm/radeon/radeon_kms.c
44089 @@ -946,4 +946,4 @@ const struct drm_ioctl_desc radeon_ioctls_kms[] = {
44090 DRM_IOCTL_DEF_DRV(RADEON_GEM_OP, radeon_gem_op_ioctl, DRM_AUTH|DRM_RENDER_ALLOW),
44091 DRM_IOCTL_DEF_DRV(RADEON_GEM_USERPTR, radeon_gem_userptr_ioctl, DRM_AUTH|DRM_RENDER_ALLOW),
44092 };
44093 -int radeon_max_kms_ioctl = ARRAY_SIZE(radeon_ioctls_kms);
44094 +const int radeon_max_kms_ioctl = ARRAY_SIZE(radeon_ioctls_kms);
44095 diff --git a/drivers/gpu/drm/radeon/radeon_state.c b/drivers/gpu/drm/radeon/radeon_state.c
44096 index 15aee72..c6df119 100644
44097 --- a/drivers/gpu/drm/radeon/radeon_state.c
44098 +++ b/drivers/gpu/drm/radeon/radeon_state.c
44099 @@ -2168,7 +2168,7 @@ static int radeon_cp_clear(struct drm_device *dev, void *data, struct drm_file *
44100 if (sarea_priv->nbox > RADEON_NR_SAREA_CLIPRECTS)
44101 sarea_priv->nbox = RADEON_NR_SAREA_CLIPRECTS;
44102
44103 - if (copy_from_user(&depth_boxes, clear->depth_boxes,
44104 + if (sarea_priv->nbox > RADEON_NR_SAREA_CLIPRECTS || copy_from_user(&depth_boxes, clear->depth_boxes,
44105 sarea_priv->nbox * sizeof(depth_boxes[0])))
44106 return -EFAULT;
44107
44108 @@ -3031,7 +3031,7 @@ static int radeon_cp_getparam(struct drm_device *dev, void *data, struct drm_fil
44109 {
44110 drm_radeon_private_t *dev_priv = dev->dev_private;
44111 drm_radeon_getparam_t *param = data;
44112 - int value;
44113 + int value = 0;
44114
44115 DRM_DEBUG("pid=%d\n", DRM_CURRENTPID);
44116
44117 @@ -3258,4 +3258,4 @@ struct drm_ioctl_desc radeon_ioctls[] = {
44118 DRM_IOCTL_DEF_DRV(RADEON_CS, r600_cs_legacy_ioctl, DRM_AUTH)
44119 };
44120
44121 -int radeon_max_ioctl = ARRAY_SIZE(radeon_ioctls);
44122 +const int radeon_max_ioctl = ARRAY_SIZE(radeon_ioctls);
44123 diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
44124 index e06ac54..46eabfd 100644
44125 --- a/drivers/gpu/drm/radeon/radeon_ttm.c
44126 +++ b/drivers/gpu/drm/radeon/radeon_ttm.c
44127 @@ -961,7 +961,7 @@ void radeon_ttm_set_active_vram_size(struct radeon_device *rdev, u64 size)
44128 man->size = size >> PAGE_SHIFT;
44129 }
44130
44131 -static struct vm_operations_struct radeon_ttm_vm_ops;
44132 +static vm_operations_struct_no_const radeon_ttm_vm_ops __read_only;
44133 static const struct vm_operations_struct *ttm_vm_ops = NULL;
44134
44135 static int radeon_ttm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
44136 @@ -1002,8 +1002,10 @@ int radeon_mmap(struct file *filp, struct vm_area_struct *vma)
44137 }
44138 if (unlikely(ttm_vm_ops == NULL)) {
44139 ttm_vm_ops = vma->vm_ops;
44140 + pax_open_kernel();
44141 radeon_ttm_vm_ops = *ttm_vm_ops;
44142 radeon_ttm_vm_ops.fault = &radeon_ttm_fault;
44143 + pax_close_kernel();
44144 }
44145 vma->vm_ops = &radeon_ttm_vm_ops;
44146 return 0;
44147 diff --git a/drivers/gpu/drm/savage/savage_bci.c b/drivers/gpu/drm/savage/savage_bci.c
44148 index d47dff9..0752202 100644
44149 --- a/drivers/gpu/drm/savage/savage_bci.c
44150 +++ b/drivers/gpu/drm/savage/savage_bci.c
44151 @@ -1080,4 +1080,4 @@ const struct drm_ioctl_desc savage_ioctls[] = {
44152 DRM_IOCTL_DEF_DRV(SAVAGE_BCI_EVENT_WAIT, savage_bci_event_wait, DRM_AUTH),
44153 };
44154
44155 -int savage_max_ioctl = ARRAY_SIZE(savage_ioctls);
44156 +const int savage_max_ioctl = ARRAY_SIZE(savage_ioctls);
44157 diff --git a/drivers/gpu/drm/savage/savage_drv.c b/drivers/gpu/drm/savage/savage_drv.c
44158 index 21aed1f..5db7419 100644
44159 --- a/drivers/gpu/drm/savage/savage_drv.c
44160 +++ b/drivers/gpu/drm/savage/savage_drv.c
44161 @@ -76,7 +76,10 @@ static struct pci_driver savage_pci_driver = {
44162
44163 static int __init savage_init(void)
44164 {
44165 - driver.num_ioctls = savage_max_ioctl;
44166 + pax_open_kernel();
44167 + *(int *)&driver.num_ioctls = savage_max_ioctl;
44168 + pax_close_kernel();
44169 +
44170 return drm_pci_init(&driver, &savage_pci_driver);
44171 }
44172
44173 diff --git a/drivers/gpu/drm/savage/savage_drv.h b/drivers/gpu/drm/savage/savage_drv.h
44174 index 37b6995..9b31aaf 100644
44175 --- a/drivers/gpu/drm/savage/savage_drv.h
44176 +++ b/drivers/gpu/drm/savage/savage_drv.h
44177 @@ -107,7 +107,7 @@ enum savage_family {
44178 };
44179
44180 extern const struct drm_ioctl_desc savage_ioctls[];
44181 -extern int savage_max_ioctl;
44182 +extern const int savage_max_ioctl;
44183
44184 #define S3_SAVAGE3D_SERIES(chip) ((chip>=S3_SAVAGE3D) && (chip<=S3_SAVAGE_MX))
44185
44186 diff --git a/drivers/gpu/drm/sis/sis_drv.c b/drivers/gpu/drm/sis/sis_drv.c
44187 index 79bce76..4fd9a20 100644
44188 --- a/drivers/gpu/drm/sis/sis_drv.c
44189 +++ b/drivers/gpu/drm/sis/sis_drv.c
44190 @@ -128,7 +128,10 @@ static struct pci_driver sis_pci_driver = {
44191
44192 static int __init sis_init(void)
44193 {
44194 - driver.num_ioctls = sis_max_ioctl;
44195 + pax_open_kernel();
44196 + *(int *)&driver.num_ioctls = sis_max_ioctl;
44197 + pax_close_kernel();
44198 +
44199 return drm_pci_init(&driver, &sis_pci_driver);
44200 }
44201
44202 diff --git a/drivers/gpu/drm/sis/sis_drv.h b/drivers/gpu/drm/sis/sis_drv.h
44203 index 328f8a7..0cfcf55 100644
44204 --- a/drivers/gpu/drm/sis/sis_drv.h
44205 +++ b/drivers/gpu/drm/sis/sis_drv.h
44206 @@ -77,6 +77,6 @@ extern void sis_reclaim_buffers_locked(struct drm_device *dev,
44207 extern void sis_lastclose(struct drm_device *dev);
44208
44209 extern const struct drm_ioctl_desc sis_ioctls[];
44210 -extern int sis_max_ioctl;
44211 +extern const int sis_max_ioctl;
44212
44213 #endif
44214 diff --git a/drivers/gpu/drm/sis/sis_mm.c b/drivers/gpu/drm/sis/sis_mm.c
44215 index 93ad8a5..48f0a57 100644
44216 --- a/drivers/gpu/drm/sis/sis_mm.c
44217 +++ b/drivers/gpu/drm/sis/sis_mm.c
44218 @@ -359,4 +359,4 @@ const struct drm_ioctl_desc sis_ioctls[] = {
44219 DRM_IOCTL_DEF_DRV(SIS_FB_INIT, sis_fb_init, DRM_AUTH | DRM_MASTER | DRM_ROOT_ONLY),
44220 };
44221
44222 -int sis_max_ioctl = ARRAY_SIZE(sis_ioctls);
44223 +const int sis_max_ioctl = ARRAY_SIZE(sis_ioctls);
44224 diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c
44225 index e9f24a8..d790ccc 100644
44226 --- a/drivers/gpu/drm/tegra/dc.c
44227 +++ b/drivers/gpu/drm/tegra/dc.c
44228 @@ -1654,7 +1654,7 @@ static int tegra_dc_debugfs_init(struct tegra_dc *dc, struct drm_minor *minor)
44229 }
44230
44231 for (i = 0; i < ARRAY_SIZE(debugfs_files); i++)
44232 - dc->debugfs_files[i].data = dc;
44233 + *(void **)&dc->debugfs_files[i].data = dc;
44234
44235 err = drm_debugfs_create_files(dc->debugfs_files,
44236 ARRAY_SIZE(debugfs_files),
44237 diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
44238 index f0a138e..a390c07 100644
44239 --- a/drivers/gpu/drm/tegra/dsi.c
44240 +++ b/drivers/gpu/drm/tegra/dsi.c
44241 @@ -62,7 +62,7 @@ struct tegra_dsi {
44242 struct clk *clk_lp;
44243 struct clk *clk;
44244
44245 - struct drm_info_list *debugfs_files;
44246 + drm_info_list_no_const *debugfs_files;
44247 struct drm_minor *minor;
44248 struct dentry *debugfs;
44249
44250 diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c
44251 index 52b32cb..a8b2d5b 100644
44252 --- a/drivers/gpu/drm/tegra/hdmi.c
44253 +++ b/drivers/gpu/drm/tegra/hdmi.c
44254 @@ -64,7 +64,7 @@ struct tegra_hdmi {
44255 bool stereo;
44256 bool dvi;
44257
44258 - struct drm_info_list *debugfs_files;
44259 + drm_info_list_no_const *debugfs_files;
44260 struct drm_minor *minor;
44261 struct dentry *debugfs;
44262 };
44263 diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
44264 index 3eff7cf..06e8322 100644
44265 --- a/drivers/gpu/drm/tegra/sor.c
44266 +++ b/drivers/gpu/drm/tegra/sor.c
44267 @@ -1003,8 +1003,11 @@ static int tegra_sor_debugfs_init(struct tegra_sor *sor,
44268 goto remove;
44269 }
44270
44271 - for (i = 0; i < ARRAY_SIZE(debugfs_files); i++)
44272 - sor->debugfs_files[i].data = sor;
44273 + for (i = 0; i < ARRAY_SIZE(debugfs_files); i++) {
44274 + pax_open_kernel();
44275 + *(void **)&sor->debugfs_files[i].data = sor;
44276 + pax_close_kernel();
44277 + }
44278
44279 err = drm_debugfs_create_files(sor->debugfs_files,
44280 ARRAY_SIZE(debugfs_files),
44281 diff --git a/drivers/gpu/drm/tilcdc/Makefile b/drivers/gpu/drm/tilcdc/Makefile
44282 index deeca48..54e1b6c 100644
44283 --- a/drivers/gpu/drm/tilcdc/Makefile
44284 +++ b/drivers/gpu/drm/tilcdc/Makefile
44285 @@ -1,7 +1,7 @@
44286 ccflags-y := -Iinclude/drm
44287 -ifeq (, $(findstring -W,$(EXTRA_CFLAGS)))
44288 - ccflags-y += -Werror
44289 -endif
44290 +#ifeq (, $(findstring -W,$(EXTRA_CFLAGS)))
44291 +# ccflags-y += -Werror
44292 +#endif
44293
44294 obj-$(CONFIG_DRM_TILCDC_SLAVE_COMPAT) += tilcdc_slave_compat.o \
44295 tilcdc_slave_compat.dtb.o
44296 diff --git a/drivers/gpu/drm/ttm/ttm_bo_manager.c b/drivers/gpu/drm/ttm/ttm_bo_manager.c
44297 index aa0bd054..aea6a01 100644
44298 --- a/drivers/gpu/drm/ttm/ttm_bo_manager.c
44299 +++ b/drivers/gpu/drm/ttm/ttm_bo_manager.c
44300 @@ -148,10 +148,10 @@ static void ttm_bo_man_debug(struct ttm_mem_type_manager *man,
44301 }
44302
44303 const struct ttm_mem_type_manager_func ttm_bo_manager_func = {
44304 - ttm_bo_man_init,
44305 - ttm_bo_man_takedown,
44306 - ttm_bo_man_get_node,
44307 - ttm_bo_man_put_node,
44308 - ttm_bo_man_debug
44309 + .init = ttm_bo_man_init,
44310 + .takedown = ttm_bo_man_takedown,
44311 + .get_node = ttm_bo_man_get_node,
44312 + .put_node = ttm_bo_man_put_node,
44313 + .debug = ttm_bo_man_debug
44314 };
44315 EXPORT_SYMBOL(ttm_bo_manager_func);
44316 diff --git a/drivers/gpu/drm/ttm/ttm_memory.c b/drivers/gpu/drm/ttm/ttm_memory.c
44317 index a1803fb..c53f6b0 100644
44318 --- a/drivers/gpu/drm/ttm/ttm_memory.c
44319 +++ b/drivers/gpu/drm/ttm/ttm_memory.c
44320 @@ -264,7 +264,7 @@ static int ttm_mem_init_kernel_zone(struct ttm_mem_global *glob,
44321 zone->glob = glob;
44322 glob->zone_kernel = zone;
44323 ret = kobject_init_and_add(
44324 - &zone->kobj, &ttm_mem_zone_kobj_type, &glob->kobj, zone->name);
44325 + &zone->kobj, &ttm_mem_zone_kobj_type, &glob->kobj, "%s", zone->name);
44326 if (unlikely(ret != 0)) {
44327 kobject_put(&zone->kobj);
44328 return ret;
44329 @@ -348,7 +348,7 @@ static int ttm_mem_init_dma32_zone(struct ttm_mem_global *glob,
44330 zone->glob = glob;
44331 glob->zone_dma32 = zone;
44332 ret = kobject_init_and_add(
44333 - &zone->kobj, &ttm_mem_zone_kobj_type, &glob->kobj, zone->name);
44334 + &zone->kobj, &ttm_mem_zone_kobj_type, &glob->kobj, "%s", zone->name);
44335 if (unlikely(ret != 0)) {
44336 kobject_put(&zone->kobj);
44337 return ret;
44338 diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc.c b/drivers/gpu/drm/ttm/ttm_page_alloc.c
44339 index 025c429..314062f 100644
44340 --- a/drivers/gpu/drm/ttm/ttm_page_alloc.c
44341 +++ b/drivers/gpu/drm/ttm/ttm_page_alloc.c
44342 @@ -54,7 +54,7 @@
44343
44344 #define NUM_PAGES_TO_ALLOC (PAGE_SIZE/sizeof(struct page *))
44345 #define SMALL_ALLOCATION 16
44346 -#define FREE_ALL_PAGES (~0U)
44347 +#define FREE_ALL_PAGES (~0UL)
44348 /* times are in msecs */
44349 #define PAGE_FREE_INTERVAL 1000
44350
44351 @@ -299,15 +299,14 @@ static void ttm_pool_update_free_locked(struct ttm_page_pool *pool,
44352 * @free_all: If set to true will free all pages in pool
44353 * @use_static: Safe to use static buffer
44354 **/
44355 -static int ttm_page_pool_free(struct ttm_page_pool *pool, unsigned nr_free,
44356 +static unsigned long ttm_page_pool_free(struct ttm_page_pool *pool, unsigned long nr_free,
44357 bool use_static)
44358 {
44359 static struct page *static_buf[NUM_PAGES_TO_ALLOC];
44360 unsigned long irq_flags;
44361 struct page *p;
44362 struct page **pages_to_free;
44363 - unsigned freed_pages = 0,
44364 - npages_to_free = nr_free;
44365 + unsigned long freed_pages = 0, npages_to_free = nr_free;
44366
44367 if (NUM_PAGES_TO_ALLOC < nr_free)
44368 npages_to_free = NUM_PAGES_TO_ALLOC;
44369 @@ -371,7 +370,8 @@ restart:
44370 __list_del(&p->lru, &pool->list);
44371
44372 ttm_pool_update_free_locked(pool, freed_pages);
44373 - nr_free -= freed_pages;
44374 + if (likely(nr_free != FREE_ALL_PAGES))
44375 + nr_free -= freed_pages;
44376 }
44377
44378 spin_unlock_irqrestore(&pool->lock, irq_flags);
44379 @@ -399,7 +399,7 @@ ttm_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
44380 unsigned i;
44381 unsigned pool_offset;
44382 struct ttm_page_pool *pool;
44383 - int shrink_pages = sc->nr_to_scan;
44384 + unsigned long shrink_pages = sc->nr_to_scan;
44385 unsigned long freed = 0;
44386
44387 if (!mutex_trylock(&lock))
44388 @@ -407,7 +407,7 @@ ttm_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
44389 pool_offset = ++start_pool % NUM_POOLS;
44390 /* select start pool in round robin fashion */
44391 for (i = 0; i < NUM_POOLS; ++i) {
44392 - unsigned nr_free = shrink_pages;
44393 + unsigned long nr_free = shrink_pages;
44394 if (shrink_pages == 0)
44395 break;
44396 pool = &_manager->pools[(i + pool_offset)%NUM_POOLS];
44397 @@ -673,7 +673,7 @@ out:
44398 }
44399
44400 /* Put all pages in pages list to correct pool to wait for reuse */
44401 -static void ttm_put_pages(struct page **pages, unsigned npages, int flags,
44402 +static void ttm_put_pages(struct page **pages, unsigned long npages, int flags,
44403 enum ttm_caching_state cstate)
44404 {
44405 unsigned long irq_flags;
44406 @@ -728,7 +728,7 @@ static int ttm_get_pages(struct page **pages, unsigned npages, int flags,
44407 struct list_head plist;
44408 struct page *p = NULL;
44409 gfp_t gfp_flags = GFP_USER;
44410 - unsigned count;
44411 + unsigned long count;
44412 int r;
44413
44414 /* set zero flag for page allocation if required */
44415 diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c b/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
44416 index 624d941..106fa1f 100644
44417 --- a/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
44418 +++ b/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
44419 @@ -56,7 +56,7 @@
44420
44421 #define NUM_PAGES_TO_ALLOC (PAGE_SIZE/sizeof(struct page *))
44422 #define SMALL_ALLOCATION 4
44423 -#define FREE_ALL_PAGES (~0U)
44424 +#define FREE_ALL_PAGES (~0UL)
44425 /* times are in msecs */
44426 #define IS_UNDEFINED (0)
44427 #define IS_WC (1<<1)
44428 @@ -416,7 +416,7 @@ static void ttm_dma_page_put(struct dma_pool *pool, struct dma_page *d_page)
44429 * @nr_free: If set to true will free all pages in pool
44430 * @use_static: Safe to use static buffer
44431 **/
44432 -static unsigned ttm_dma_page_pool_free(struct dma_pool *pool, unsigned nr_free,
44433 +static unsigned long ttm_dma_page_pool_free(struct dma_pool *pool, unsigned long nr_free,
44434 bool use_static)
44435 {
44436 static struct page *static_buf[NUM_PAGES_TO_ALLOC];
44437 @@ -424,8 +424,7 @@ static unsigned ttm_dma_page_pool_free(struct dma_pool *pool, unsigned nr_free,
44438 struct dma_page *dma_p, *tmp;
44439 struct page **pages_to_free;
44440 struct list_head d_pages;
44441 - unsigned freed_pages = 0,
44442 - npages_to_free = nr_free;
44443 + unsigned long freed_pages = 0, npages_to_free = nr_free;
44444
44445 if (NUM_PAGES_TO_ALLOC < nr_free)
44446 npages_to_free = NUM_PAGES_TO_ALLOC;
44447 @@ -502,7 +501,8 @@ restart:
44448 /* remove range of pages from the pool */
44449 if (freed_pages) {
44450 ttm_pool_update_free_locked(pool, freed_pages);
44451 - nr_free -= freed_pages;
44452 + if (likely(nr_free != FREE_ALL_PAGES))
44453 + nr_free -= freed_pages;
44454 }
44455
44456 spin_unlock_irqrestore(&pool->lock, irq_flags);
44457 @@ -939,7 +939,7 @@ void ttm_dma_unpopulate(struct ttm_dma_tt *ttm_dma, struct device *dev)
44458 struct dma_page *d_page, *next;
44459 enum pool_type type;
44460 bool is_cached = false;
44461 - unsigned count = 0, i, npages = 0;
44462 + unsigned long count = 0, i, npages = 0;
44463 unsigned long irq_flags;
44464
44465 type = ttm_to_type(ttm->page_flags, ttm->caching_state);
44466 @@ -1014,7 +1014,7 @@ ttm_dma_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
44467 static unsigned start_pool;
44468 unsigned idx = 0;
44469 unsigned pool_offset;
44470 - unsigned shrink_pages = sc->nr_to_scan;
44471 + unsigned long shrink_pages = sc->nr_to_scan;
44472 struct device_pools *p;
44473 unsigned long freed = 0;
44474
44475 @@ -1027,7 +1027,7 @@ ttm_dma_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
44476 goto out;
44477 pool_offset = ++start_pool % _manager->npools;
44478 list_for_each_entry(p, &_manager->pools, pools) {
44479 - unsigned nr_free;
44480 + unsigned long nr_free;
44481
44482 if (!p->dev)
44483 continue;
44484 @@ -1041,7 +1041,7 @@ ttm_dma_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
44485 shrink_pages = ttm_dma_page_pool_free(p->pool, nr_free, true);
44486 freed += nr_free - shrink_pages;
44487
44488 - pr_debug("%s: (%s:%d) Asked to shrink %d, have %d more to go\n",
44489 + pr_debug("%s: (%s:%d) Asked to shrink %lu, have %lu more to go\n",
44490 p->pool->dev_name, p->pool->name, current->pid,
44491 nr_free, shrink_pages);
44492 }
44493 diff --git a/drivers/gpu/drm/udl/udl_fb.c b/drivers/gpu/drm/udl/udl_fb.c
44494 index 62c7b1d..2018818 100644
44495 --- a/drivers/gpu/drm/udl/udl_fb.c
44496 +++ b/drivers/gpu/drm/udl/udl_fb.c
44497 @@ -367,7 +367,6 @@ static int udl_fb_release(struct fb_info *info, int user)
44498 fb_deferred_io_cleanup(info);
44499 kfree(info->fbdefio);
44500 info->fbdefio = NULL;
44501 - info->fbops->fb_mmap = udl_fb_mmap;
44502 }
44503
44504 pr_warn("released /dev/fb%d user=%d count=%d\n",
44505 diff --git a/drivers/gpu/drm/via/via_dma.c b/drivers/gpu/drm/via/via_dma.c
44506 index d17d8f2..67e8e48b 100644
44507 --- a/drivers/gpu/drm/via/via_dma.c
44508 +++ b/drivers/gpu/drm/via/via_dma.c
44509 @@ -737,4 +737,4 @@ const struct drm_ioctl_desc via_ioctls[] = {
44510 DRM_IOCTL_DEF_DRV(VIA_BLIT_SYNC, via_dma_blit_sync, DRM_AUTH)
44511 };
44512
44513 -int via_max_ioctl = ARRAY_SIZE(via_ioctls);
44514 +const int via_max_ioctl = ARRAY_SIZE(via_ioctls);
44515 diff --git a/drivers/gpu/drm/via/via_drv.c b/drivers/gpu/drm/via/via_drv.c
44516 index ed8aa8f..16c84fc 100644
44517 --- a/drivers/gpu/drm/via/via_drv.c
44518 +++ b/drivers/gpu/drm/via/via_drv.c
44519 @@ -107,7 +107,10 @@ static struct pci_driver via_pci_driver = {
44520
44521 static int __init via_init(void)
44522 {
44523 - driver.num_ioctls = via_max_ioctl;
44524 + pax_open_kernel();
44525 + *(int *)&driver.num_ioctls = via_max_ioctl;
44526 + pax_close_kernel();
44527 +
44528 via_init_command_verifier();
44529 return drm_pci_init(&driver, &via_pci_driver);
44530 }
44531 diff --git a/drivers/gpu/drm/via/via_drv.h b/drivers/gpu/drm/via/via_drv.h
44532 index 286a785..c0182616 100644
44533 --- a/drivers/gpu/drm/via/via_drv.h
44534 +++ b/drivers/gpu/drm/via/via_drv.h
44535 @@ -53,7 +53,7 @@ typedef struct drm_via_ring_buffer {
44536 typedef uint32_t maskarray_t[5];
44537
44538 typedef struct drm_via_irq {
44539 - atomic_t irq_received;
44540 + atomic_unchecked_t irq_received;
44541 uint32_t pending_mask;
44542 uint32_t enable_mask;
44543 wait_queue_head_t irq_queue;
44544 @@ -77,7 +77,7 @@ typedef struct drm_via_private {
44545 struct timeval last_vblank;
44546 int last_vblank_valid;
44547 unsigned usec_per_vblank;
44548 - atomic_t vbl_received;
44549 + atomic_unchecked_t vbl_received;
44550 drm_via_state_t hc_state;
44551 char pci_buf[VIA_PCI_BUF_SIZE];
44552 const uint32_t *fire_offsets[VIA_FIRE_BUF_SIZE];
44553 @@ -121,7 +121,7 @@ enum via_family {
44554 #define VIA_WRITE8(reg, val) DRM_WRITE8(VIA_BASE, reg, val)
44555
44556 extern const struct drm_ioctl_desc via_ioctls[];
44557 -extern int via_max_ioctl;
44558 +extern const int via_max_ioctl;
44559
44560 extern int via_fb_init(struct drm_device *dev, void *data, struct drm_file *file_priv);
44561 extern int via_mem_alloc(struct drm_device *dev, void *data, struct drm_file *file_priv);
44562 diff --git a/drivers/gpu/drm/via/via_irq.c b/drivers/gpu/drm/via/via_irq.c
44563 index ea8172c..6ceff63 100644
44564 --- a/drivers/gpu/drm/via/via_irq.c
44565 +++ b/drivers/gpu/drm/via/via_irq.c
44566 @@ -102,7 +102,7 @@ u32 via_get_vblank_counter(struct drm_device *dev, unsigned int pipe)
44567 if (pipe != 0)
44568 return 0;
44569
44570 - return atomic_read(&dev_priv->vbl_received);
44571 + return atomic_read_unchecked(&dev_priv->vbl_received);
44572 }
44573
44574 irqreturn_t via_driver_irq_handler(int irq, void *arg)
44575 @@ -117,8 +117,8 @@ irqreturn_t via_driver_irq_handler(int irq, void *arg)
44576
44577 status = VIA_READ(VIA_REG_INTERRUPT);
44578 if (status & VIA_IRQ_VBLANK_PENDING) {
44579 - atomic_inc(&dev_priv->vbl_received);
44580 - if (!(atomic_read(&dev_priv->vbl_received) & 0x0F)) {
44581 + atomic_inc_unchecked(&dev_priv->vbl_received);
44582 + if (!(atomic_read_unchecked(&dev_priv->vbl_received) & 0x0F)) {
44583 do_gettimeofday(&cur_vblank);
44584 if (dev_priv->last_vblank_valid) {
44585 dev_priv->usec_per_vblank =
44586 @@ -128,7 +128,7 @@ irqreturn_t via_driver_irq_handler(int irq, void *arg)
44587 dev_priv->last_vblank = cur_vblank;
44588 dev_priv->last_vblank_valid = 1;
44589 }
44590 - if (!(atomic_read(&dev_priv->vbl_received) & 0xFF)) {
44591 + if (!(atomic_read_unchecked(&dev_priv->vbl_received) & 0xFF)) {
44592 DRM_DEBUG("US per vblank is: %u\n",
44593 dev_priv->usec_per_vblank);
44594 }
44595 @@ -138,7 +138,7 @@ irqreturn_t via_driver_irq_handler(int irq, void *arg)
44596
44597 for (i = 0; i < dev_priv->num_irqs; ++i) {
44598 if (status & cur_irq->pending_mask) {
44599 - atomic_inc(&cur_irq->irq_received);
44600 + atomic_inc_unchecked(&cur_irq->irq_received);
44601 wake_up(&cur_irq->irq_queue);
44602 handled = 1;
44603 if (dev_priv->irq_map[drm_via_irq_dma0_td] == i)
44604 @@ -243,11 +243,11 @@ via_driver_irq_wait(struct drm_device *dev, unsigned int irq, int force_sequence
44605 DRM_WAIT_ON(ret, cur_irq->irq_queue, 3 * HZ,
44606 ((VIA_READ(masks[irq][2]) & masks[irq][3]) ==
44607 masks[irq][4]));
44608 - cur_irq_sequence = atomic_read(&cur_irq->irq_received);
44609 + cur_irq_sequence = atomic_read_unchecked(&cur_irq->irq_received);
44610 } else {
44611 DRM_WAIT_ON(ret, cur_irq->irq_queue, 3 * HZ,
44612 (((cur_irq_sequence =
44613 - atomic_read(&cur_irq->irq_received)) -
44614 + atomic_read_unchecked(&cur_irq->irq_received)) -
44615 *sequence) <= (1 << 23)));
44616 }
44617 *sequence = cur_irq_sequence;
44618 @@ -285,7 +285,7 @@ void via_driver_irq_preinstall(struct drm_device *dev)
44619 }
44620
44621 for (i = 0; i < dev_priv->num_irqs; ++i) {
44622 - atomic_set(&cur_irq->irq_received, 0);
44623 + atomic_set_unchecked(&cur_irq->irq_received, 0);
44624 cur_irq->enable_mask = dev_priv->irq_masks[i][0];
44625 cur_irq->pending_mask = dev_priv->irq_masks[i][1];
44626 init_waitqueue_head(&cur_irq->irq_queue);
44627 @@ -367,7 +367,7 @@ int via_wait_irq(struct drm_device *dev, void *data, struct drm_file *file_priv)
44628 switch (irqwait->request.type & ~VIA_IRQ_FLAGS_MASK) {
44629 case VIA_IRQ_RELATIVE:
44630 irqwait->request.sequence +=
44631 - atomic_read(&cur_irq->irq_received);
44632 + atomic_read_unchecked(&cur_irq->irq_received);
44633 irqwait->request.type &= ~_DRM_VBLANK_RELATIVE;
44634 case VIA_IRQ_ABSOLUTE:
44635 break;
44636 diff --git a/drivers/gpu/drm/virtio/virtgpu_ttm.c b/drivers/gpu/drm/virtio/virtgpu_ttm.c
44637 index 9fd924c..c64b065 100644
44638 --- a/drivers/gpu/drm/virtio/virtgpu_ttm.c
44639 +++ b/drivers/gpu/drm/virtio/virtgpu_ttm.c
44640 @@ -198,11 +198,11 @@ static void ttm_bo_man_debug(struct ttm_mem_type_manager *man,
44641 }
44642
44643 static const struct ttm_mem_type_manager_func virtio_gpu_bo_manager_func = {
44644 - ttm_bo_man_init,
44645 - ttm_bo_man_takedown,
44646 - ttm_bo_man_get_node,
44647 - ttm_bo_man_put_node,
44648 - ttm_bo_man_debug
44649 + .init = &ttm_bo_man_init,
44650 + .takedown = &ttm_bo_man_takedown,
44651 + .get_node = &ttm_bo_man_get_node,
44652 + .put_node = &ttm_bo_man_put_node,
44653 + .debug = &ttm_bo_man_debug
44654 };
44655
44656 static int virtio_gpu_init_mem_type(struct ttm_bo_device *bdev, uint32_t type,
44657 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
44658 index 469cdd5..958866a 100644
44659 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
44660 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
44661 @@ -434,7 +434,7 @@ struct vmw_private {
44662 * Fencing and IRQs.
44663 */
44664
44665 - atomic_t marker_seq;
44666 + atomic_unchecked_t marker_seq;
44667 wait_queue_head_t fence_queue;
44668 wait_queue_head_t fifo_queue;
44669 spinlock_t waiter_lock;
44670 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c b/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
44671 index b6a0806..9fb5479 100644
44672 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
44673 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
44674 @@ -156,7 +156,7 @@ int vmw_fifo_init(struct vmw_private *dev_priv, struct vmw_fifo_state *fifo)
44675 (unsigned int) min,
44676 (unsigned int) fifo->capabilities);
44677
44678 - atomic_set(&dev_priv->marker_seq, dev_priv->last_read_seqno);
44679 + atomic_set_unchecked(&dev_priv->marker_seq, dev_priv->last_read_seqno);
44680 vmw_mmio_write(dev_priv->last_read_seqno, fifo_mem + SVGA_FIFO_FENCE);
44681 vmw_marker_queue_init(&fifo->marker_queue);
44682
44683 @@ -355,7 +355,7 @@ static void *vmw_local_fifo_reserve(struct vmw_private *dev_priv,
44684 if (reserveable)
44685 vmw_mmio_write(bytes, fifo_mem +
44686 SVGA_FIFO_RESERVED);
44687 - return (void __force *) (fifo_mem +
44688 + return (void __force_kernel *) (fifo_mem +
44689 (next_cmd >> 2));
44690 } else {
44691 need_bounce = true;
44692 @@ -544,7 +544,7 @@ int vmw_fifo_send_fence(struct vmw_private *dev_priv, uint32_t *seqno)
44693
44694 fm = vmw_fifo_reserve(dev_priv, bytes);
44695 if (unlikely(fm == NULL)) {
44696 - *seqno = atomic_read(&dev_priv->marker_seq);
44697 + *seqno = atomic_read_unchecked(&dev_priv->marker_seq);
44698 ret = -ENOMEM;
44699 (void)vmw_fallback_wait(dev_priv, false, true, *seqno,
44700 false, 3*HZ);
44701 @@ -552,7 +552,7 @@ int vmw_fifo_send_fence(struct vmw_private *dev_priv, uint32_t *seqno)
44702 }
44703
44704 do {
44705 - *seqno = atomic_add_return(1, &dev_priv->marker_seq);
44706 + *seqno = atomic_add_return_unchecked(1, &dev_priv->marker_seq);
44707 } while (*seqno == 0);
44708
44709 if (!(fifo_state->capabilities & SVGA_FIFO_CAP_FENCE)) {
44710 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c b/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
44711 index 170b61b..fec7348 100644
44712 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
44713 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
44714 @@ -164,9 +164,9 @@ static void vmw_gmrid_man_debug(struct ttm_mem_type_manager *man,
44715 }
44716
44717 const struct ttm_mem_type_manager_func vmw_gmrid_manager_func = {
44718 - vmw_gmrid_man_init,
44719 - vmw_gmrid_man_takedown,
44720 - vmw_gmrid_man_get_node,
44721 - vmw_gmrid_man_put_node,
44722 - vmw_gmrid_man_debug
44723 + .init = vmw_gmrid_man_init,
44724 + .takedown = vmw_gmrid_man_takedown,
44725 + .get_node = vmw_gmrid_man_get_node,
44726 + .put_node = vmw_gmrid_man_put_node,
44727 + .debug = vmw_gmrid_man_debug
44728 };
44729 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c b/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
44730 index 0c7e172..ead94fc 100644
44731 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
44732 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
44733 @@ -103,7 +103,7 @@ bool vmw_seqno_passed(struct vmw_private *dev_priv,
44734 * emitted. Then the fence is stale and signaled.
44735 */
44736
44737 - ret = ((atomic_read(&dev_priv->marker_seq) - seqno)
44738 + ret = ((atomic_read_unchecked(&dev_priv->marker_seq) - seqno)
44739 > VMW_FENCE_WRAP);
44740
44741 return ret;
44742 @@ -142,7 +142,7 @@ int vmw_fallback_wait(struct vmw_private *dev_priv,
44743 }
44744 }
44745
44746 - signal_seq = atomic_read(&dev_priv->marker_seq);
44747 + signal_seq = atomic_read_unchecked(&dev_priv->marker_seq);
44748 ret = 0;
44749
44750 for (;;) {
44751 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_marker.c b/drivers/gpu/drm/vmwgfx/vmwgfx_marker.c
44752 index efd1ffd..0ae13ca 100644
44753 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_marker.c
44754 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_marker.c
44755 @@ -135,7 +135,7 @@ int vmw_wait_lag(struct vmw_private *dev_priv,
44756 while (!vmw_lag_lt(queue, us)) {
44757 spin_lock(&queue->lock);
44758 if (list_empty(&queue->head))
44759 - seqno = atomic_read(&dev_priv->marker_seq);
44760 + seqno = atomic_read_unchecked(&dev_priv->marker_seq);
44761 else {
44762 marker = list_first_entry(&queue->head,
44763 struct vmw_marker, head);
44764 diff --git a/drivers/gpu/vga/vga_switcheroo.c b/drivers/gpu/vga/vga_switcheroo.c
44765 index 41edd5a..cb008f0 100644
44766 --- a/drivers/gpu/vga/vga_switcheroo.c
44767 +++ b/drivers/gpu/vga/vga_switcheroo.c
44768 @@ -910,7 +910,7 @@ static int vga_switcheroo_runtime_resume(struct device *dev)
44769 * where the power switch is separate to the device being powered down.
44770 */
44771 int vga_switcheroo_init_domain_pm_ops(struct device *dev,
44772 - struct dev_pm_domain *domain)
44773 + dev_pm_domain_no_const *domain)
44774 {
44775 /* copy over all the bus versions */
44776 if (dev->bus && dev->bus->pm) {
44777 @@ -981,7 +981,7 @@ static int vga_switcheroo_runtime_resume_hdmi_audio(struct device *dev)
44778 */
44779 int
44780 vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev,
44781 - struct dev_pm_domain *domain)
44782 + dev_pm_domain_no_const *domain)
44783 {
44784 /* copy over all the bus versions */
44785 if (dev->bus && dev->bus->pm) {
44786 diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
44787 index c6f7a69..cf26aed 100644
44788 --- a/drivers/hid/hid-core.c
44789 +++ b/drivers/hid/hid-core.c
44790 @@ -2583,7 +2583,7 @@ EXPORT_SYMBOL_GPL(hid_ignore);
44791
44792 int hid_add_device(struct hid_device *hdev)
44793 {
44794 - static atomic_t id = ATOMIC_INIT(0);
44795 + static atomic_unchecked_t id = ATOMIC_INIT(0);
44796 int ret;
44797
44798 if (WARN_ON(hdev->status & HID_STAT_ADDED))
44799 @@ -2626,7 +2626,7 @@ int hid_add_device(struct hid_device *hdev)
44800 /* XXX hack, any other cleaner solution after the driver core
44801 * is converted to allow more than 20 bytes as the device name? */
44802 dev_set_name(&hdev->dev, "%04X:%04X:%04X.%04X", hdev->bus,
44803 - hdev->vendor, hdev->product, atomic_inc_return(&id));
44804 + hdev->vendor, hdev->product, atomic_inc_return_unchecked(&id));
44805
44806 hid_debug_register(hdev, dev_name(&hdev->dev));
44807 ret = device_add(&hdev->dev);
44808 diff --git a/drivers/hid/hid-sensor-custom.c b/drivers/hid/hid-sensor-custom.c
44809 index 5614fee..8a6f5f6 100644
44810 --- a/drivers/hid/hid-sensor-custom.c
44811 +++ b/drivers/hid/hid-sensor-custom.c
44812 @@ -590,7 +590,7 @@ static int hid_sensor_custom_add_attributes(struct hid_sensor_custom
44813 j = 0;
44814 while (j < HID_CUSTOM_TOTAL_ATTRS &&
44815 hid_custom_attrs[j].name) {
44816 - struct device_attribute *device_attr;
44817 + device_attribute_no_const *device_attr;
44818
44819 device_attr = &sensor_inst->fields[i].sd_attrs[j];
44820
44821 diff --git a/drivers/hid/hid-wiimote-debug.c b/drivers/hid/hid-wiimote-debug.c
44822 index c13fb5b..55a3802 100644
44823 --- a/drivers/hid/hid-wiimote-debug.c
44824 +++ b/drivers/hid/hid-wiimote-debug.c
44825 @@ -66,7 +66,7 @@ static ssize_t wiidebug_eeprom_read(struct file *f, char __user *u, size_t s,
44826 else if (size == 0)
44827 return -EIO;
44828
44829 - if (copy_to_user(u, buf, size))
44830 + if (size > sizeof(buf) || copy_to_user(u, buf, size))
44831 return -EFAULT;
44832
44833 *off += size;
44834 diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
44835 index 9098f13..19a4855 100644
44836 --- a/drivers/hv/channel.c
44837 +++ b/drivers/hv/channel.c
44838 @@ -382,7 +382,7 @@ int vmbus_establish_gpadl(struct vmbus_channel *channel, void *kbuffer,
44839 int ret = 0;
44840
44841 next_gpadl_handle =
44842 - (atomic_inc_return(&vmbus_connection.next_gpadl_handle) - 1);
44843 + (atomic_inc_return_unchecked(&vmbus_connection.next_gpadl_handle) - 1);
44844
44845 ret = create_gpadl_header(kbuffer, size, &msginfo, &msgcount);
44846 if (ret)
44847 @@ -705,9 +705,7 @@ int vmbus_sendpacket_pagebuffer_ctl(struct vmbus_channel *channel,
44848 * Adjust the size down since vmbus_channel_packet_page_buffer is the
44849 * largest size we support
44850 */
44851 - descsize = sizeof(struct vmbus_channel_packet_page_buffer) -
44852 - ((MAX_PAGE_BUFFER_COUNT - pagecount) *
44853 - sizeof(struct hv_page_buffer));
44854 + descsize = offsetof(struct vmbus_channel_packet_page_buffer, range[pagecount]);
44855 packetlen = descsize + bufferlen;
44856 packetlen_aligned = ALIGN(packetlen, sizeof(u64));
44857
44858 diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c
44859 index 6341be8..1a2fc8d 100644
44860 --- a/drivers/hv/hv.c
44861 +++ b/drivers/hv/hv.c
44862 @@ -95,7 +95,7 @@ static u64 do_hypercall(u64 control, void *input, void *output)
44863 {
44864 u64 input_address = (input) ? virt_to_phys(input) : 0;
44865 u64 output_address = (output) ? virt_to_phys(output) : 0;
44866 - void *hypercall_page = hv_context.hypercall_page;
44867 + void *hypercall_page = (void *)ktva_ktla((unsigned long)hv_context.hypercall_page);
44868 #ifdef CONFIG_X86_64
44869 u64 hv_status = 0;
44870
44871 @@ -219,7 +219,7 @@ int hv_init(void)
44872 /* See if the hypercall page is already set */
44873 rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
44874
44875 - virtaddr = __vmalloc(PAGE_SIZE, GFP_KERNEL, PAGE_KERNEL_EXEC);
44876 + virtaddr = __vmalloc(PAGE_SIZE, GFP_KERNEL, PAGE_KERNEL_RX);
44877
44878 if (!virtaddr)
44879 goto cleanup;
44880 diff --git a/drivers/hv/hv_balloon.c b/drivers/hv/hv_balloon.c
44881 index b853b4b..3647b37 100644
44882 --- a/drivers/hv/hv_balloon.c
44883 +++ b/drivers/hv/hv_balloon.c
44884 @@ -471,7 +471,7 @@ MODULE_PARM_DESC(hot_add, "If set attempt memory hot_add");
44885
44886 module_param(pressure_report_delay, uint, (S_IRUGO | S_IWUSR));
44887 MODULE_PARM_DESC(pressure_report_delay, "Delay in secs in reporting pressure");
44888 -static atomic_t trans_id = ATOMIC_INIT(0);
44889 +static atomic_unchecked_t trans_id = ATOMIC_INIT(0);
44890
44891 static int dm_ring_size = (5 * PAGE_SIZE);
44892
44893 @@ -945,7 +945,7 @@ static void hot_add_req(struct work_struct *dummy)
44894 pr_info("Memory hot add failed\n");
44895
44896 dm->state = DM_INITIALIZED;
44897 - resp.hdr.trans_id = atomic_inc_return(&trans_id);
44898 + resp.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44899 vmbus_sendpacket(dm->dev->channel, &resp,
44900 sizeof(struct dm_hot_add_response),
44901 (unsigned long)NULL,
44902 @@ -1026,7 +1026,7 @@ static void post_status(struct hv_dynmem_device *dm)
44903 memset(&status, 0, sizeof(struct dm_status));
44904 status.hdr.type = DM_STATUS_REPORT;
44905 status.hdr.size = sizeof(struct dm_status);
44906 - status.hdr.trans_id = atomic_inc_return(&trans_id);
44907 + status.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44908
44909 /*
44910 * The host expects the guest to report free and committed memory.
44911 @@ -1050,7 +1050,7 @@ static void post_status(struct hv_dynmem_device *dm)
44912 * send the status. This can happen if we were interrupted
44913 * after we picked our transaction ID.
44914 */
44915 - if (status.hdr.trans_id != atomic_read(&trans_id))
44916 + if (status.hdr.trans_id != atomic_read_unchecked(&trans_id))
44917 return;
44918
44919 /*
44920 @@ -1195,7 +1195,7 @@ static void balloon_up(struct work_struct *dummy)
44921 */
44922
44923 do {
44924 - bl_resp->hdr.trans_id = atomic_inc_return(&trans_id);
44925 + bl_resp->hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44926 ret = vmbus_sendpacket(dm_device.dev->channel,
44927 bl_resp,
44928 bl_resp->hdr.size,
44929 @@ -1241,7 +1241,7 @@ static void balloon_down(struct hv_dynmem_device *dm,
44930
44931 memset(&resp, 0, sizeof(struct dm_unballoon_response));
44932 resp.hdr.type = DM_UNBALLOON_RESPONSE;
44933 - resp.hdr.trans_id = atomic_inc_return(&trans_id);
44934 + resp.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44935 resp.hdr.size = sizeof(struct dm_unballoon_response);
44936
44937 vmbus_sendpacket(dm_device.dev->channel, &resp,
44938 @@ -1301,7 +1301,7 @@ static void version_resp(struct hv_dynmem_device *dm,
44939 memset(&version_req, 0, sizeof(struct dm_version_request));
44940 version_req.hdr.type = DM_VERSION_REQUEST;
44941 version_req.hdr.size = sizeof(struct dm_version_request);
44942 - version_req.hdr.trans_id = atomic_inc_return(&trans_id);
44943 + version_req.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44944 version_req.version.version = dm->next_version;
44945
44946 /*
44947 @@ -1487,7 +1487,7 @@ static int balloon_probe(struct hv_device *dev,
44948 memset(&version_req, 0, sizeof(struct dm_version_request));
44949 version_req.hdr.type = DM_VERSION_REQUEST;
44950 version_req.hdr.size = sizeof(struct dm_version_request);
44951 - version_req.hdr.trans_id = atomic_inc_return(&trans_id);
44952 + version_req.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44953 version_req.version.version = DYNMEM_PROTOCOL_VERSION_WIN10;
44954 version_req.is_last_attempt = 0;
44955
44956 @@ -1518,7 +1518,7 @@ static int balloon_probe(struct hv_device *dev,
44957 memset(&cap_msg, 0, sizeof(struct dm_capabilities));
44958 cap_msg.hdr.type = DM_CAPABILITIES_REPORT;
44959 cap_msg.hdr.size = sizeof(struct dm_capabilities);
44960 - cap_msg.hdr.trans_id = atomic_inc_return(&trans_id);
44961 + cap_msg.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44962
44963 cap_msg.caps.cap_bits.balloon = 1;
44964 cap_msg.caps.cap_bits.hot_add = 1;
44965 diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h
44966 index 3782636..7dc4e6c 100644
44967 --- a/drivers/hv/hyperv_vmbus.h
44968 +++ b/drivers/hv/hyperv_vmbus.h
44969 @@ -654,7 +654,7 @@ enum vmbus_connect_state {
44970 struct vmbus_connection {
44971 enum vmbus_connect_state conn_state;
44972
44973 - atomic_t next_gpadl_handle;
44974 + atomic_unchecked_t next_gpadl_handle;
44975
44976 struct completion unload_event;
44977 /*
44978 diff --git a/drivers/hwmon/acpi_power_meter.c b/drivers/hwmon/acpi_power_meter.c
44979 index 579bdf9..0dac21d5 100644
44980 --- a/drivers/hwmon/acpi_power_meter.c
44981 +++ b/drivers/hwmon/acpi_power_meter.c
44982 @@ -116,7 +116,7 @@ struct sensor_template {
44983 struct device_attribute *devattr,
44984 const char *buf, size_t count);
44985 int index;
44986 -};
44987 +} __do_const;
44988
44989 /* Averaging interval */
44990 static int update_avg_interval(struct acpi_power_meter_resource *resource)
44991 @@ -631,7 +631,7 @@ static int register_attrs(struct acpi_power_meter_resource *resource,
44992 struct sensor_template *attrs)
44993 {
44994 struct device *dev = &resource->acpi_dev->dev;
44995 - struct sensor_device_attribute *sensors =
44996 + sensor_device_attribute_no_const *sensors =
44997 &resource->sensors[resource->num_sensors];
44998 int res = 0;
44999
45000 @@ -973,7 +973,7 @@ static int __init enable_cap_knobs(const struct dmi_system_id *d)
45001 return 0;
45002 }
45003
45004 -static struct dmi_system_id __initdata pm_dmi_table[] = {
45005 +static const struct dmi_system_id __initconst pm_dmi_table[] = {
45006 {
45007 enable_cap_knobs, "IBM Active Energy Manager",
45008 {
45009 diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c
45010 index 0af7fd3..2701c0a 100644
45011 --- a/drivers/hwmon/applesmc.c
45012 +++ b/drivers/hwmon/applesmc.c
45013 @@ -1105,7 +1105,7 @@ static int applesmc_create_nodes(struct applesmc_node_group *groups, int num)
45014 {
45015 struct applesmc_node_group *grp;
45016 struct applesmc_dev_attr *node;
45017 - struct attribute *attr;
45018 + attribute_no_const *attr;
45019 int ret, i;
45020
45021 for (grp = groups; grp->format; grp++) {
45022 diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c
45023 index cccef87..06ce8ec 100644
45024 --- a/drivers/hwmon/asus_atk0110.c
45025 +++ b/drivers/hwmon/asus_atk0110.c
45026 @@ -147,10 +147,10 @@ MODULE_DEVICE_TABLE(acpi, atk_ids);
45027 struct atk_sensor_data {
45028 struct list_head list;
45029 struct atk_data *data;
45030 - struct device_attribute label_attr;
45031 - struct device_attribute input_attr;
45032 - struct device_attribute limit1_attr;
45033 - struct device_attribute limit2_attr;
45034 + device_attribute_no_const label_attr;
45035 + device_attribute_no_const input_attr;
45036 + device_attribute_no_const limit1_attr;
45037 + device_attribute_no_const limit2_attr;
45038 char label_attr_name[ATTR_NAME_SIZE];
45039 char input_attr_name[ATTR_NAME_SIZE];
45040 char limit1_attr_name[ATTR_NAME_SIZE];
45041 @@ -270,7 +270,7 @@ static ssize_t atk_name_show(struct device *dev,
45042 static struct device_attribute atk_name_attr =
45043 __ATTR(name, 0444, atk_name_show, NULL);
45044
45045 -static void atk_init_attribute(struct device_attribute *attr, char *name,
45046 +static void atk_init_attribute(device_attribute_no_const *attr, char *name,
45047 sysfs_show_func show)
45048 {
45049 sysfs_attr_init(&attr->attr);
45050 diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
45051 index 6a27eb2..349ed23 100644
45052 --- a/drivers/hwmon/coretemp.c
45053 +++ b/drivers/hwmon/coretemp.c
45054 @@ -783,7 +783,7 @@ static int coretemp_cpu_callback(struct notifier_block *nfb,
45055 return NOTIFY_OK;
45056 }
45057
45058 -static struct notifier_block coretemp_cpu_notifier __refdata = {
45059 +static struct notifier_block coretemp_cpu_notifier = {
45060 .notifier_call = coretemp_cpu_callback,
45061 };
45062
45063 diff --git a/drivers/hwmon/dell-smm-hwmon.c b/drivers/hwmon/dell-smm-hwmon.c
45064 index c43318d..72f7656 100644
45065 --- a/drivers/hwmon/dell-smm-hwmon.c
45066 +++ b/drivers/hwmon/dell-smm-hwmon.c
45067 @@ -819,7 +819,7 @@ static const struct i8k_config_data i8k_config_data[] = {
45068 },
45069 };
45070
45071 -static struct dmi_system_id i8k_dmi_table[] __initdata = {
45072 +static const struct dmi_system_id i8k_dmi_table[] __initconst = {
45073 {
45074 .ident = "Dell Inspiron",
45075 .matches = {
45076 diff --git a/drivers/hwmon/ibmaem.c b/drivers/hwmon/ibmaem.c
45077 index 7a8a6fb..015c1fd 100644
45078 --- a/drivers/hwmon/ibmaem.c
45079 +++ b/drivers/hwmon/ibmaem.c
45080 @@ -924,7 +924,7 @@ static int aem_register_sensors(struct aem_data *data,
45081 struct aem_rw_sensor_template *rw)
45082 {
45083 struct device *dev = &data->pdev->dev;
45084 - struct sensor_device_attribute *sensors = data->sensors;
45085 + sensor_device_attribute_no_const *sensors = data->sensors;
45086 int err;
45087
45088 /* Set up read-only sensors */
45089 diff --git a/drivers/hwmon/iio_hwmon.c b/drivers/hwmon/iio_hwmon.c
45090 index 17ae2eb..21b71dd 100644
45091 --- a/drivers/hwmon/iio_hwmon.c
45092 +++ b/drivers/hwmon/iio_hwmon.c
45093 @@ -61,7 +61,7 @@ static int iio_hwmon_probe(struct platform_device *pdev)
45094 {
45095 struct device *dev = &pdev->dev;
45096 struct iio_hwmon_state *st;
45097 - struct sensor_device_attribute *a;
45098 + sensor_device_attribute_no_const *a;
45099 int ret, i;
45100 int in_i = 1, temp_i = 1, curr_i = 1, humidity_i = 1;
45101 enum iio_chan_type type;
45102 diff --git a/drivers/hwmon/nct6683.c b/drivers/hwmon/nct6683.c
45103 index 37f0170..414ec2c 100644
45104 --- a/drivers/hwmon/nct6683.c
45105 +++ b/drivers/hwmon/nct6683.c
45106 @@ -397,11 +397,11 @@ static struct attribute_group *
45107 nct6683_create_attr_group(struct device *dev, struct sensor_template_group *tg,
45108 int repeat)
45109 {
45110 - struct sensor_device_attribute_2 *a2;
45111 - struct sensor_device_attribute *a;
45112 + sensor_device_attribute_2_no_const *a2;
45113 + sensor_device_attribute_no_const *a;
45114 struct sensor_device_template **t;
45115 struct sensor_device_attr_u *su;
45116 - struct attribute_group *group;
45117 + attribute_group_no_const *group;
45118 struct attribute **attrs;
45119 int i, j, count;
45120
45121 diff --git a/drivers/hwmon/nct6775.c b/drivers/hwmon/nct6775.c
45122 index d7ebdf8..5d0cfb2 100644
45123 --- a/drivers/hwmon/nct6775.c
45124 +++ b/drivers/hwmon/nct6775.c
45125 @@ -1048,10 +1048,10 @@ static struct attribute_group *
45126 nct6775_create_attr_group(struct device *dev, struct sensor_template_group *tg,
45127 int repeat)
45128 {
45129 - struct attribute_group *group;
45130 + attribute_group_no_const *group;
45131 struct sensor_device_attr_u *su;
45132 - struct sensor_device_attribute *a;
45133 - struct sensor_device_attribute_2 *a2;
45134 + sensor_device_attribute_no_const *a;
45135 + sensor_device_attribute_2_no_const *a2;
45136 struct attribute **attrs;
45137 struct sensor_device_template **t;
45138 int i, count;
45139 diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c
45140 index ba59eae..dbf694c 100644
45141 --- a/drivers/hwmon/pmbus/pmbus_core.c
45142 +++ b/drivers/hwmon/pmbus/pmbus_core.c
45143 @@ -824,7 +824,7 @@ static int pmbus_add_attribute(struct pmbus_data *data, struct attribute *attr)
45144 return 0;
45145 }
45146
45147 -static void pmbus_dev_attr_init(struct device_attribute *dev_attr,
45148 +static void pmbus_dev_attr_init(device_attribute_no_const *dev_attr,
45149 const char *name,
45150 umode_t mode,
45151 ssize_t (*show)(struct device *dev,
45152 @@ -841,7 +841,7 @@ static void pmbus_dev_attr_init(struct device_attribute *dev_attr,
45153 dev_attr->store = store;
45154 }
45155
45156 -static void pmbus_attr_init(struct sensor_device_attribute *a,
45157 +static void pmbus_attr_init(sensor_device_attribute_no_const *a,
45158 const char *name,
45159 umode_t mode,
45160 ssize_t (*show)(struct device *dev,
45161 @@ -863,7 +863,7 @@ static int pmbus_add_boolean(struct pmbus_data *data,
45162 u16 reg, u8 mask)
45163 {
45164 struct pmbus_boolean *boolean;
45165 - struct sensor_device_attribute *a;
45166 + sensor_device_attribute_no_const *a;
45167
45168 boolean = devm_kzalloc(data->dev, sizeof(*boolean), GFP_KERNEL);
45169 if (!boolean)
45170 @@ -888,7 +888,7 @@ static struct pmbus_sensor *pmbus_add_sensor(struct pmbus_data *data,
45171 bool update, bool readonly)
45172 {
45173 struct pmbus_sensor *sensor;
45174 - struct device_attribute *a;
45175 + device_attribute_no_const *a;
45176
45177 sensor = devm_kzalloc(data->dev, sizeof(*sensor), GFP_KERNEL);
45178 if (!sensor)
45179 @@ -919,7 +919,7 @@ static int pmbus_add_label(struct pmbus_data *data,
45180 const char *lstring, int index)
45181 {
45182 struct pmbus_label *label;
45183 - struct device_attribute *a;
45184 + device_attribute_no_const *a;
45185
45186 label = devm_kzalloc(data->dev, sizeof(*label), GFP_KERNEL);
45187 if (!label)
45188 diff --git a/drivers/hwmon/sht15.c b/drivers/hwmon/sht15.c
45189 index a2fdbb7..e749a3c 100644
45190 --- a/drivers/hwmon/sht15.c
45191 +++ b/drivers/hwmon/sht15.c
45192 @@ -170,7 +170,7 @@ struct sht15_data {
45193 int supply_uv;
45194 bool supply_uv_valid;
45195 struct work_struct update_supply_work;
45196 - atomic_t interrupt_handled;
45197 + atomic_unchecked_t interrupt_handled;
45198 };
45199
45200 /**
45201 @@ -530,13 +530,13 @@ static int sht15_measurement(struct sht15_data *data,
45202 ret = gpio_direction_input(data->pdata->gpio_data);
45203 if (ret)
45204 return ret;
45205 - atomic_set(&data->interrupt_handled, 0);
45206 + atomic_set_unchecked(&data->interrupt_handled, 0);
45207
45208 enable_irq(gpio_to_irq(data->pdata->gpio_data));
45209 if (gpio_get_value(data->pdata->gpio_data) == 0) {
45210 disable_irq_nosync(gpio_to_irq(data->pdata->gpio_data));
45211 /* Only relevant if the interrupt hasn't occurred. */
45212 - if (!atomic_read(&data->interrupt_handled))
45213 + if (!atomic_read_unchecked(&data->interrupt_handled))
45214 schedule_work(&data->read_work);
45215 }
45216 ret = wait_event_timeout(data->wait_queue,
45217 @@ -808,7 +808,7 @@ static irqreturn_t sht15_interrupt_fired(int irq, void *d)
45218
45219 /* First disable the interrupt */
45220 disable_irq_nosync(irq);
45221 - atomic_inc(&data->interrupt_handled);
45222 + atomic_inc_unchecked(&data->interrupt_handled);
45223 /* Then schedule a reading work struct */
45224 if (data->state != SHT15_READING_NOTHING)
45225 schedule_work(&data->read_work);
45226 @@ -830,11 +830,11 @@ static void sht15_bh_read_data(struct work_struct *work_s)
45227 * If not, then start the interrupt again - care here as could
45228 * have gone low in meantime so verify it hasn't!
45229 */
45230 - atomic_set(&data->interrupt_handled, 0);
45231 + atomic_set_unchecked(&data->interrupt_handled, 0);
45232 enable_irq(gpio_to_irq(data->pdata->gpio_data));
45233 /* If still not occurred or another handler was scheduled */
45234 if (gpio_get_value(data->pdata->gpio_data)
45235 - || atomic_read(&data->interrupt_handled))
45236 + || atomic_read_unchecked(&data->interrupt_handled))
45237 return;
45238 }
45239
45240 diff --git a/drivers/hwmon/via-cputemp.c b/drivers/hwmon/via-cputemp.c
45241 index ac91c07..8e69663 100644
45242 --- a/drivers/hwmon/via-cputemp.c
45243 +++ b/drivers/hwmon/via-cputemp.c
45244 @@ -295,7 +295,7 @@ static int via_cputemp_cpu_callback(struct notifier_block *nfb,
45245 return NOTIFY_OK;
45246 }
45247
45248 -static struct notifier_block via_cputemp_cpu_notifier __refdata = {
45249 +static struct notifier_block via_cputemp_cpu_notifier = {
45250 .notifier_call = via_cputemp_cpu_callback,
45251 };
45252
45253 diff --git a/drivers/i2c/busses/i2c-amd756-s4882.c b/drivers/i2c/busses/i2c-amd756-s4882.c
45254 index 65e3240..e6c511d 100644
45255 --- a/drivers/i2c/busses/i2c-amd756-s4882.c
45256 +++ b/drivers/i2c/busses/i2c-amd756-s4882.c
45257 @@ -39,7 +39,7 @@
45258 extern struct i2c_adapter amd756_smbus;
45259
45260 static struct i2c_adapter *s4882_adapter;
45261 -static struct i2c_algorithm *s4882_algo;
45262 +static i2c_algorithm_no_const *s4882_algo;
45263
45264 /* Wrapper access functions for multiplexed SMBus */
45265 static DEFINE_MUTEX(amd756_lock);
45266 diff --git a/drivers/i2c/busses/i2c-designware-pcidrv.c b/drivers/i2c/busses/i2c-designware-pcidrv.c
45267 index 1543d35d..6515f503 100644
45268 --- a/drivers/i2c/busses/i2c-designware-pcidrv.c
45269 +++ b/drivers/i2c/busses/i2c-designware-pcidrv.c
45270 @@ -61,7 +61,7 @@ struct dw_scl_sda_cfg {
45271 };
45272
45273 struct dw_pci_controller {
45274 - u32 bus_num;
45275 + int bus_num;
45276 u32 bus_cfg;
45277 u32 tx_fifo_depth;
45278 u32 rx_fifo_depth;
45279 diff --git a/drivers/i2c/busses/i2c-nforce2-s4985.c b/drivers/i2c/busses/i2c-nforce2-s4985.c
45280 index 88eda09..cf40434 100644
45281 --- a/drivers/i2c/busses/i2c-nforce2-s4985.c
45282 +++ b/drivers/i2c/busses/i2c-nforce2-s4985.c
45283 @@ -37,7 +37,7 @@
45284 extern struct i2c_adapter *nforce2_smbus;
45285
45286 static struct i2c_adapter *s4985_adapter;
45287 -static struct i2c_algorithm *s4985_algo;
45288 +static i2c_algorithm_no_const *s4985_algo;
45289
45290 /* Wrapper access functions for multiplexed SMBus */
45291 static DEFINE_MUTEX(nforce2_lock);
45292 diff --git a/drivers/i2c/i2c-dev.c b/drivers/i2c/i2c-dev.c
45293 index 2413ec9..9cb2203 100644
45294 --- a/drivers/i2c/i2c-dev.c
45295 +++ b/drivers/i2c/i2c-dev.c
45296 @@ -272,7 +272,7 @@ static noinline int i2cdev_ioctl_rdwr(struct i2c_client *client,
45297 break;
45298 }
45299
45300 - data_ptrs[i] = (u8 __user *)rdwr_pa[i].buf;
45301 + data_ptrs[i] = (u8 __force_user *)rdwr_pa[i].buf;
45302 rdwr_pa[i].buf = memdup_user(data_ptrs[i], rdwr_pa[i].len);
45303 if (IS_ERR(rdwr_pa[i].buf)) {
45304 res = PTR_ERR(rdwr_pa[i].buf);
45305 diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
45306 index ef907fd..1b61cf2 100644
45307 --- a/drivers/ide/ide-cd.c
45308 +++ b/drivers/ide/ide-cd.c
45309 @@ -768,7 +768,7 @@ static void cdrom_do_block_pc(ide_drive_t *drive, struct request *rq)
45310 alignment = queue_dma_alignment(q) | q->dma_pad_mask;
45311 if ((unsigned long)buf & alignment
45312 || blk_rq_bytes(rq) & q->dma_pad_mask
45313 - || object_is_on_stack(buf))
45314 + || object_starts_on_stack(buf))
45315 drive->dma = 0;
45316 }
45317 }
45318 diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
45319 index 37a8a90..4724cbd 100644
45320 --- a/drivers/ide/ide-disk.c
45321 +++ b/drivers/ide/ide-disk.c
45322 @@ -178,7 +178,7 @@ static ide_startstop_t __ide_do_rw_disk(ide_drive_t *drive, struct request *rq,
45323 * 1073741822 == 549756 MB or 48bit addressing fake drive
45324 */
45325
45326 -static ide_startstop_t ide_do_rw_disk(ide_drive_t *drive, struct request *rq,
45327 +static ide_startstop_t __intentional_overflow(-1) ide_do_rw_disk(ide_drive_t *drive, struct request *rq,
45328 sector_t block)
45329 {
45330 ide_hwif_t *hwif = drive->hwif;
45331 diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
45332 index 159ede6..856c0d5 100644
45333 --- a/drivers/iio/industrialio-core.c
45334 +++ b/drivers/iio/industrialio-core.c
45335 @@ -594,7 +594,7 @@ static ssize_t iio_write_channel_info(struct device *dev,
45336 }
45337
45338 static
45339 -int __iio_device_attr_init(struct device_attribute *dev_attr,
45340 +int __iio_device_attr_init(device_attribute_no_const *dev_attr,
45341 const char *postfix,
45342 struct iio_chan_spec const *chan,
45343 ssize_t (*readfunc)(struct device *dev,
45344 diff --git a/drivers/iio/magnetometer/ak8975.c b/drivers/iio/magnetometer/ak8975.c
45345 index b13936d..65322b2 100644
45346 --- a/drivers/iio/magnetometer/ak8975.c
45347 +++ b/drivers/iio/magnetometer/ak8975.c
45348 @@ -776,7 +776,7 @@ static int ak8975_probe(struct i2c_client *client,
45349 name = id->name;
45350 } else if (ACPI_HANDLE(&client->dev))
45351 name = ak8975_match_acpi_device(&client->dev, &chipset);
45352 - else
45353 + if (!name)
45354 return -ENOSYS;
45355
45356 if (chipset >= AK_MAX_TYPE) {
45357 diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
45358 index d6d2b35..a97866a 100644
45359 --- a/drivers/infiniband/core/cm.c
45360 +++ b/drivers/infiniband/core/cm.c
45361 @@ -115,7 +115,7 @@ static char const counter_group_names[CM_COUNTER_GROUPS]
45362
45363 struct cm_counter_group {
45364 struct kobject obj;
45365 - atomic_long_t counter[CM_ATTR_COUNT];
45366 + atomic_long_unchecked_t counter[CM_ATTR_COUNT];
45367 };
45368
45369 struct cm_counter_attribute {
45370 @@ -1476,7 +1476,7 @@ static void cm_dup_req_handler(struct cm_work *work,
45371 struct ib_mad_send_buf *msg = NULL;
45372 int ret;
45373
45374 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
45375 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
45376 counter[CM_REQ_COUNTER]);
45377
45378 /* Quick state check to discard duplicate REQs. */
45379 @@ -1862,7 +1862,7 @@ static void cm_dup_rep_handler(struct cm_work *work)
45380 if (!cm_id_priv)
45381 return;
45382
45383 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
45384 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
45385 counter[CM_REP_COUNTER]);
45386 ret = cm_alloc_response_msg(work->port, work->mad_recv_wc, &msg);
45387 if (ret)
45388 @@ -2029,7 +2029,7 @@ static int cm_rtu_handler(struct cm_work *work)
45389 if (cm_id_priv->id.state != IB_CM_REP_SENT &&
45390 cm_id_priv->id.state != IB_CM_MRA_REP_RCVD) {
45391 spin_unlock_irq(&cm_id_priv->lock);
45392 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
45393 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
45394 counter[CM_RTU_COUNTER]);
45395 goto out;
45396 }
45397 @@ -2212,7 +2212,7 @@ static int cm_dreq_handler(struct cm_work *work)
45398 cm_id_priv = cm_acquire_id(dreq_msg->remote_comm_id,
45399 dreq_msg->local_comm_id);
45400 if (!cm_id_priv) {
45401 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
45402 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
45403 counter[CM_DREQ_COUNTER]);
45404 cm_issue_drep(work->port, work->mad_recv_wc);
45405 return -EINVAL;
45406 @@ -2237,7 +2237,7 @@ static int cm_dreq_handler(struct cm_work *work)
45407 case IB_CM_MRA_REP_RCVD:
45408 break;
45409 case IB_CM_TIMEWAIT:
45410 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
45411 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
45412 counter[CM_DREQ_COUNTER]);
45413 if (cm_alloc_response_msg(work->port, work->mad_recv_wc, &msg))
45414 goto unlock;
45415 @@ -2251,7 +2251,7 @@ static int cm_dreq_handler(struct cm_work *work)
45416 cm_free_msg(msg);
45417 goto deref;
45418 case IB_CM_DREQ_RCVD:
45419 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
45420 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
45421 counter[CM_DREQ_COUNTER]);
45422 goto unlock;
45423 default:
45424 @@ -2618,7 +2618,7 @@ static int cm_mra_handler(struct cm_work *work)
45425 ib_modify_mad(cm_id_priv->av.port->mad_agent,
45426 cm_id_priv->msg, timeout)) {
45427 if (cm_id_priv->id.lap_state == IB_CM_MRA_LAP_RCVD)
45428 - atomic_long_inc(&work->port->
45429 + atomic_long_inc_unchecked(&work->port->
45430 counter_group[CM_RECV_DUPLICATES].
45431 counter[CM_MRA_COUNTER]);
45432 goto out;
45433 @@ -2627,7 +2627,7 @@ static int cm_mra_handler(struct cm_work *work)
45434 break;
45435 case IB_CM_MRA_REQ_RCVD:
45436 case IB_CM_MRA_REP_RCVD:
45437 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
45438 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
45439 counter[CM_MRA_COUNTER]);
45440 /* fall through */
45441 default:
45442 @@ -2789,7 +2789,7 @@ static int cm_lap_handler(struct cm_work *work)
45443 case IB_CM_LAP_IDLE:
45444 break;
45445 case IB_CM_MRA_LAP_SENT:
45446 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
45447 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
45448 counter[CM_LAP_COUNTER]);
45449 if (cm_alloc_response_msg(work->port, work->mad_recv_wc, &msg))
45450 goto unlock;
45451 @@ -2805,7 +2805,7 @@ static int cm_lap_handler(struct cm_work *work)
45452 cm_free_msg(msg);
45453 goto deref;
45454 case IB_CM_LAP_RCVD:
45455 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
45456 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
45457 counter[CM_LAP_COUNTER]);
45458 goto unlock;
45459 default:
45460 @@ -3091,7 +3091,7 @@ static int cm_sidr_req_handler(struct cm_work *work)
45461 cur_cm_id_priv = cm_insert_remote_sidr(cm_id_priv);
45462 if (cur_cm_id_priv) {
45463 spin_unlock_irq(&cm.lock);
45464 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
45465 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
45466 counter[CM_SIDR_REQ_COUNTER]);
45467 goto out; /* Duplicate message. */
45468 }
45469 @@ -3305,10 +3305,10 @@ static void cm_send_handler(struct ib_mad_agent *mad_agent,
45470 if (!msg->context[0] && (attr_index != CM_REJ_COUNTER))
45471 msg->retries = 1;
45472
45473 - atomic_long_add(1 + msg->retries,
45474 + atomic_long_add_unchecked(1 + msg->retries,
45475 &port->counter_group[CM_XMIT].counter[attr_index]);
45476 if (msg->retries)
45477 - atomic_long_add(msg->retries,
45478 + atomic_long_add_unchecked(msg->retries,
45479 &port->counter_group[CM_XMIT_RETRIES].
45480 counter[attr_index]);
45481
45482 @@ -3534,7 +3534,7 @@ static void cm_recv_handler(struct ib_mad_agent *mad_agent,
45483 }
45484
45485 attr_id = be16_to_cpu(mad_recv_wc->recv_buf.mad->mad_hdr.attr_id);
45486 - atomic_long_inc(&port->counter_group[CM_RECV].
45487 + atomic_long_inc_unchecked(&port->counter_group[CM_RECV].
45488 counter[attr_id - CM_ATTR_ID_OFFSET]);
45489
45490 work = kmalloc(sizeof *work + sizeof(struct ib_sa_path_rec) * paths,
45491 @@ -3751,7 +3751,7 @@ static ssize_t cm_show_counter(struct kobject *obj, struct attribute *attr,
45492 cm_attr = container_of(attr, struct cm_counter_attribute, attr);
45493
45494 return sprintf(buf, "%ld\n",
45495 - atomic_long_read(&group->counter[cm_attr->index]));
45496 + atomic_long_read_unchecked(&group->counter[cm_attr->index]));
45497 }
45498
45499 static const struct sysfs_ops cm_counter_ops = {
45500 diff --git a/drivers/infiniband/core/fmr_pool.c b/drivers/infiniband/core/fmr_pool.c
45501 index 9f5ad7c..588cd84 100644
45502 --- a/drivers/infiniband/core/fmr_pool.c
45503 +++ b/drivers/infiniband/core/fmr_pool.c
45504 @@ -98,8 +98,8 @@ struct ib_fmr_pool {
45505
45506 struct task_struct *thread;
45507
45508 - atomic_t req_ser;
45509 - atomic_t flush_ser;
45510 + atomic_unchecked_t req_ser;
45511 + atomic_unchecked_t flush_ser;
45512
45513 wait_queue_head_t force_wait;
45514 };
45515 @@ -179,10 +179,10 @@ static int ib_fmr_cleanup_thread(void *pool_ptr)
45516 struct ib_fmr_pool *pool = pool_ptr;
45517
45518 do {
45519 - if (atomic_read(&pool->flush_ser) - atomic_read(&pool->req_ser) < 0) {
45520 + if (atomic_read_unchecked(&pool->flush_ser) - atomic_read_unchecked(&pool->req_ser) < 0) {
45521 ib_fmr_batch_release(pool);
45522
45523 - atomic_inc(&pool->flush_ser);
45524 + atomic_inc_unchecked(&pool->flush_ser);
45525 wake_up_interruptible(&pool->force_wait);
45526
45527 if (pool->flush_function)
45528 @@ -190,7 +190,7 @@ static int ib_fmr_cleanup_thread(void *pool_ptr)
45529 }
45530
45531 set_current_state(TASK_INTERRUPTIBLE);
45532 - if (atomic_read(&pool->flush_ser) - atomic_read(&pool->req_ser) >= 0 &&
45533 + if (atomic_read_unchecked(&pool->flush_ser) - atomic_read_unchecked(&pool->req_ser) >= 0 &&
45534 !kthread_should_stop())
45535 schedule();
45536 __set_current_state(TASK_RUNNING);
45537 @@ -282,8 +282,8 @@ struct ib_fmr_pool *ib_create_fmr_pool(struct ib_pd *pd,
45538 pool->dirty_watermark = params->dirty_watermark;
45539 pool->dirty_len = 0;
45540 spin_lock_init(&pool->pool_lock);
45541 - atomic_set(&pool->req_ser, 0);
45542 - atomic_set(&pool->flush_ser, 0);
45543 + atomic_set_unchecked(&pool->req_ser, 0);
45544 + atomic_set_unchecked(&pool->flush_ser, 0);
45545 init_waitqueue_head(&pool->force_wait);
45546
45547 pool->thread = kthread_run(ib_fmr_cleanup_thread,
45548 @@ -411,11 +411,11 @@ int ib_flush_fmr_pool(struct ib_fmr_pool *pool)
45549 }
45550 spin_unlock_irq(&pool->pool_lock);
45551
45552 - serial = atomic_inc_return(&pool->req_ser);
45553 + serial = atomic_inc_return_unchecked(&pool->req_ser);
45554 wake_up_process(pool->thread);
45555
45556 if (wait_event_interruptible(pool->force_wait,
45557 - atomic_read(&pool->flush_ser) - serial >= 0))
45558 + atomic_read_unchecked(&pool->flush_ser) - serial >= 0))
45559 return -EINTR;
45560
45561 return 0;
45562 @@ -525,7 +525,7 @@ int ib_fmr_pool_unmap(struct ib_pool_fmr *fmr)
45563 } else {
45564 list_add_tail(&fmr->list, &pool->dirty_list);
45565 if (++pool->dirty_len >= pool->dirty_watermark) {
45566 - atomic_inc(&pool->req_ser);
45567 + atomic_inc_unchecked(&pool->req_ser);
45568 wake_up_process(pool->thread);
45569 }
45570 }
45571 diff --git a/drivers/infiniband/core/netlink.c b/drivers/infiniband/core/netlink.c
45572 index d47df93..93e4cfd 100644
45573 --- a/drivers/infiniband/core/netlink.c
45574 +++ b/drivers/infiniband/core/netlink.c
45575 @@ -177,11 +177,10 @@ static int ibnl_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
45576 }
45577
45578 {
45579 - struct netlink_dump_control c = {
45580 + netlink_dump_control_no_const c = {
45581 .dump = client->cb_table[op].dump,
45582 - .module = client->cb_table[op].module,
45583 };
45584 - return netlink_dump_start(nls, skb, nlh, &c);
45585 + return __netlink_dump_start(nls, skb, nlh, &c, NULL, client->cb_table[op].module);
45586 }
45587 }
45588 }
45589 diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
45590 index 1c02dea..5f1efa6 100644
45591 --- a/drivers/infiniband/core/uverbs_cmd.c
45592 +++ b/drivers/infiniband/core/uverbs_cmd.c
45593 @@ -961,6 +961,9 @@ ssize_t ib_uverbs_reg_mr(struct ib_uverbs_file *file,
45594 if (copy_from_user(&cmd, buf, sizeof cmd))
45595 return -EFAULT;
45596
45597 + if (!access_ok_noprefault(VERIFY_READ, cmd.start, cmd.length))
45598 + return -EFAULT;
45599 +
45600 INIT_UDATA(&udata, buf + sizeof cmd,
45601 (unsigned long) cmd.response + sizeof resp,
45602 in_len - sizeof cmd, out_len - sizeof resp);
45603 diff --git a/drivers/infiniband/hw/cxgb4/device.c b/drivers/infiniband/hw/cxgb4/device.c
45604 index 58fce174..f6de2c2 100644
45605 --- a/drivers/infiniband/hw/cxgb4/device.c
45606 +++ b/drivers/infiniband/hw/cxgb4/device.c
45607 @@ -122,7 +122,7 @@ void c4iw_log_wr_stats(struct t4_wq *wq, struct t4_cqe *cqe)
45608 if (!wq->rdev->wr_log)
45609 return;
45610
45611 - idx = (atomic_inc_return(&wq->rdev->wr_log_idx) - 1) &
45612 + idx = (atomic_inc_return_unchecked(&wq->rdev->wr_log_idx) - 1) &
45613 (wq->rdev->wr_log_size - 1);
45614 le.poll_sge_ts = cxgb4_read_sge_timestamp(wq->rdev->lldi.ports[0]);
45615 getnstimeofday(&le.poll_host_ts);
45616 @@ -154,7 +154,7 @@ static int wr_log_show(struct seq_file *seq, void *v)
45617
45618 #define ts2ns(ts) div64_u64((ts) * dev->rdev.lldi.cclk_ps, 1000)
45619
45620 - idx = atomic_read(&dev->rdev.wr_log_idx) &
45621 + idx = atomic_read_unchecked(&dev->rdev.wr_log_idx) &
45622 (dev->rdev.wr_log_size - 1);
45623 end = idx - 1;
45624 if (end < 0)
45625 @@ -860,7 +860,7 @@ static int c4iw_rdev_open(struct c4iw_rdev *rdev)
45626 sizeof(*rdev->wr_log), GFP_KERNEL);
45627 if (rdev->wr_log) {
45628 rdev->wr_log_size = 1 << c4iw_wr_log_size_order;
45629 - atomic_set(&rdev->wr_log_idx, 0);
45630 + atomic_set_unchecked(&rdev->wr_log_idx, 0);
45631 } else {
45632 pr_err(MOD "error allocating wr_log. Logging disabled\n");
45633 }
45634 diff --git a/drivers/infiniband/hw/cxgb4/iw_cxgb4.h b/drivers/infiniband/hw/cxgb4/iw_cxgb4.h
45635 index 00e55fa..44a2635 100644
45636 --- a/drivers/infiniband/hw/cxgb4/iw_cxgb4.h
45637 +++ b/drivers/infiniband/hw/cxgb4/iw_cxgb4.h
45638 @@ -180,7 +180,7 @@ struct c4iw_rdev {
45639 struct c4iw_stats stats;
45640 struct c4iw_hw_queue hw_queue;
45641 struct t4_dev_status_page *status_page;
45642 - atomic_t wr_log_idx;
45643 + atomic_unchecked_t wr_log_idx;
45644 struct wr_log_entry *wr_log;
45645 int wr_log_size;
45646 };
45647 diff --git a/drivers/infiniband/hw/cxgb4/mem.c b/drivers/infiniband/hw/cxgb4/mem.c
45648 index e1629ab..22d07b9 100644
45649 --- a/drivers/infiniband/hw/cxgb4/mem.c
45650 +++ b/drivers/infiniband/hw/cxgb4/mem.c
45651 @@ -256,7 +256,7 @@ static int write_tpt_entry(struct c4iw_rdev *rdev, u32 reset_tpt_entry,
45652 int err;
45653 struct fw_ri_tpte tpt;
45654 u32 stag_idx;
45655 - static atomic_t key;
45656 + static atomic_unchecked_t key;
45657
45658 if (c4iw_fatal_error(rdev))
45659 return -EIO;
45660 @@ -277,7 +277,7 @@ static int write_tpt_entry(struct c4iw_rdev *rdev, u32 reset_tpt_entry,
45661 if (rdev->stats.stag.cur > rdev->stats.stag.max)
45662 rdev->stats.stag.max = rdev->stats.stag.cur;
45663 mutex_unlock(&rdev->stats.lock);
45664 - *stag = (stag_idx << 8) | (atomic_inc_return(&key) & 0xff);
45665 + *stag = (stag_idx << 8) | (atomic_inc_return_unchecked(&key) & 0xff);
45666 }
45667 PDBG("%s stag_state 0x%0x type 0x%0x pdid 0x%0x, stag_idx 0x%x\n",
45668 __func__, stag_state, type, pdid, stag_idx);
45669 diff --git a/drivers/infiniband/hw/mlx4/mad.c b/drivers/infiniband/hw/mlx4/mad.c
45670 index 870e56b..c1985ce 100644
45671 --- a/drivers/infiniband/hw/mlx4/mad.c
45672 +++ b/drivers/infiniband/hw/mlx4/mad.c
45673 @@ -98,7 +98,7 @@ __be64 mlx4_ib_gen_node_guid(void)
45674
45675 __be64 mlx4_ib_get_new_demux_tid(struct mlx4_ib_demux_ctx *ctx)
45676 {
45677 - return cpu_to_be64(atomic_inc_return(&ctx->tid)) |
45678 + return cpu_to_be64(atomic_inc_return_unchecked(&ctx->tid)) |
45679 cpu_to_be64(0xff00000000000000LL);
45680 }
45681
45682 diff --git a/drivers/infiniband/hw/mlx4/mcg.c b/drivers/infiniband/hw/mlx4/mcg.c
45683 index 99451d8..a9f0747 100644
45684 --- a/drivers/infiniband/hw/mlx4/mcg.c
45685 +++ b/drivers/infiniband/hw/mlx4/mcg.c
45686 @@ -1046,7 +1046,7 @@ int mlx4_ib_mcg_port_init(struct mlx4_ib_demux_ctx *ctx)
45687 {
45688 char name[20];
45689
45690 - atomic_set(&ctx->tid, 0);
45691 + atomic_set_unchecked(&ctx->tid, 0);
45692 sprintf(name, "mlx4_ib_mcg%d", ctx->port);
45693 ctx->mcg_wq = create_singlethread_workqueue(name);
45694 if (!ctx->mcg_wq)
45695 diff --git a/drivers/infiniband/hw/mlx4/mlx4_ib.h b/drivers/infiniband/hw/mlx4/mlx4_ib.h
45696 index 1caa11e..2ebefd7 100644
45697 --- a/drivers/infiniband/hw/mlx4/mlx4_ib.h
45698 +++ b/drivers/infiniband/hw/mlx4/mlx4_ib.h
45699 @@ -450,7 +450,7 @@ struct mlx4_ib_demux_ctx {
45700 struct list_head mcg_mgid0_list;
45701 struct workqueue_struct *mcg_wq;
45702 struct mlx4_ib_demux_pv_ctx **tun;
45703 - atomic_t tid;
45704 + atomic_unchecked_t tid;
45705 int flushing; /* flushing the work queue */
45706 };
45707
45708 diff --git a/drivers/infiniband/hw/mthca/mthca_cmd.c b/drivers/infiniband/hw/mthca/mthca_cmd.c
45709 index c7f49bb..6a021bb 100644
45710 --- a/drivers/infiniband/hw/mthca/mthca_cmd.c
45711 +++ b/drivers/infiniband/hw/mthca/mthca_cmd.c
45712 @@ -772,7 +772,7 @@ static void mthca_setup_cmd_doorbells(struct mthca_dev *dev, u64 base)
45713 mthca_dbg(dev, "Mapped doorbell page for posting FW commands\n");
45714 }
45715
45716 -int mthca_QUERY_FW(struct mthca_dev *dev)
45717 +int __intentional_overflow(-1) mthca_QUERY_FW(struct mthca_dev *dev)
45718 {
45719 struct mthca_mailbox *mailbox;
45720 u32 *outbox;
45721 @@ -1612,7 +1612,7 @@ int mthca_HW2SW_MPT(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
45722 CMD_TIME_CLASS_B);
45723 }
45724
45725 -int mthca_WRITE_MTT(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
45726 +int __intentional_overflow(-1) mthca_WRITE_MTT(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
45727 int num_mtt)
45728 {
45729 return mthca_cmd(dev, mailbox->dma, num_mtt, 0, CMD_WRITE_MTT,
45730 @@ -1634,7 +1634,7 @@ int mthca_MAP_EQ(struct mthca_dev *dev, u64 event_mask, int unmap,
45731 0, CMD_MAP_EQ, CMD_TIME_CLASS_B);
45732 }
45733
45734 -int mthca_SW2HW_EQ(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
45735 +int __intentional_overflow(-1) mthca_SW2HW_EQ(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
45736 int eq_num)
45737 {
45738 return mthca_cmd(dev, mailbox->dma, eq_num, 0, CMD_SW2HW_EQ,
45739 @@ -1857,7 +1857,7 @@ int mthca_CONF_SPECIAL_QP(struct mthca_dev *dev, int type, u32 qpn)
45740 CMD_TIME_CLASS_B);
45741 }
45742
45743 -int mthca_MAD_IFC(struct mthca_dev *dev, int ignore_mkey, int ignore_bkey,
45744 +int __intentional_overflow(-1) mthca_MAD_IFC(struct mthca_dev *dev, int ignore_mkey, int ignore_bkey,
45745 int port, const struct ib_wc *in_wc, const struct ib_grh *in_grh,
45746 const void *in_mad, void *response_mad)
45747 {
45748 diff --git a/drivers/infiniband/hw/mthca/mthca_main.c b/drivers/infiniband/hw/mthca/mthca_main.c
45749 index ded76c1..0cf0a08 100644
45750 --- a/drivers/infiniband/hw/mthca/mthca_main.c
45751 +++ b/drivers/infiniband/hw/mthca/mthca_main.c
45752 @@ -692,7 +692,7 @@ err_close:
45753 return err;
45754 }
45755
45756 -static int mthca_setup_hca(struct mthca_dev *dev)
45757 +static int __intentional_overflow(-1) mthca_setup_hca(struct mthca_dev *dev)
45758 {
45759 int err;
45760
45761 diff --git a/drivers/infiniband/hw/mthca/mthca_mr.c b/drivers/infiniband/hw/mthca/mthca_mr.c
45762 index ed9a989..6aa5dc2 100644
45763 --- a/drivers/infiniband/hw/mthca/mthca_mr.c
45764 +++ b/drivers/infiniband/hw/mthca/mthca_mr.c
45765 @@ -81,7 +81,7 @@ struct mthca_mpt_entry {
45766 * through the bitmaps)
45767 */
45768
45769 -static u32 mthca_buddy_alloc(struct mthca_buddy *buddy, int order)
45770 +static u32 __intentional_overflow(-1) mthca_buddy_alloc(struct mthca_buddy *buddy, int order)
45771 {
45772 int o;
45773 int m;
45774 @@ -426,7 +426,7 @@ static inline u32 adjust_key(struct mthca_dev *dev, u32 key)
45775 return key;
45776 }
45777
45778 -int mthca_mr_alloc(struct mthca_dev *dev, u32 pd, int buffer_size_shift,
45779 +int __intentional_overflow(-1) mthca_mr_alloc(struct mthca_dev *dev, u32 pd, int buffer_size_shift,
45780 u64 iova, u64 total_size, u32 access, struct mthca_mr *mr)
45781 {
45782 struct mthca_mailbox *mailbox;
45783 @@ -516,7 +516,7 @@ int mthca_mr_alloc_notrans(struct mthca_dev *dev, u32 pd,
45784 return mthca_mr_alloc(dev, pd, 12, 0, ~0ULL, access, mr);
45785 }
45786
45787 -int mthca_mr_alloc_phys(struct mthca_dev *dev, u32 pd,
45788 +int __intentional_overflow(-1) mthca_mr_alloc_phys(struct mthca_dev *dev, u32 pd,
45789 u64 *buffer_list, int buffer_size_shift,
45790 int list_len, u64 iova, u64 total_size,
45791 u32 access, struct mthca_mr *mr)
45792 diff --git a/drivers/infiniband/hw/mthca/mthca_provider.c b/drivers/infiniband/hw/mthca/mthca_provider.c
45793 index dc2d48c..c1deb7b 100644
45794 --- a/drivers/infiniband/hw/mthca/mthca_provider.c
45795 +++ b/drivers/infiniband/hw/mthca/mthca_provider.c
45796 @@ -772,7 +772,7 @@ unlock:
45797 return 0;
45798 }
45799
45800 -static int mthca_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
45801 +static int __intentional_overflow(-1) mthca_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
45802 {
45803 struct mthca_dev *dev = to_mdev(ibcq->device);
45804 struct mthca_cq *cq = to_mcq(ibcq);
45805 diff --git a/drivers/infiniband/hw/nes/nes.c b/drivers/infiniband/hw/nes/nes.c
45806 index 9f9d5c5..3c19aac 100644
45807 --- a/drivers/infiniband/hw/nes/nes.c
45808 +++ b/drivers/infiniband/hw/nes/nes.c
45809 @@ -97,7 +97,7 @@ MODULE_PARM_DESC(limit_maxrdreqsz, "Limit max read request size to 256 Bytes");
45810 LIST_HEAD(nes_adapter_list);
45811 static LIST_HEAD(nes_dev_list);
45812
45813 -atomic_t qps_destroyed;
45814 +atomic_unchecked_t qps_destroyed;
45815
45816 static unsigned int ee_flsh_adapter;
45817 static unsigned int sysfs_nonidx_addr;
45818 @@ -279,7 +279,7 @@ static void nes_cqp_rem_ref_callback(struct nes_device *nesdev, struct nes_cqp_r
45819 struct nes_qp *nesqp = cqp_request->cqp_callback_pointer;
45820 struct nes_adapter *nesadapter = nesdev->nesadapter;
45821
45822 - atomic_inc(&qps_destroyed);
45823 + atomic_inc_unchecked(&qps_destroyed);
45824
45825 /* Free the control structures */
45826
45827 diff --git a/drivers/infiniband/hw/nes/nes.h b/drivers/infiniband/hw/nes/nes.h
45828 index bd9d132..70d84f4 100644
45829 --- a/drivers/infiniband/hw/nes/nes.h
45830 +++ b/drivers/infiniband/hw/nes/nes.h
45831 @@ -180,17 +180,17 @@ extern unsigned int nes_debug_level;
45832 extern unsigned int wqm_quanta;
45833 extern struct list_head nes_adapter_list;
45834
45835 -extern atomic_t cm_connects;
45836 -extern atomic_t cm_accepts;
45837 -extern atomic_t cm_disconnects;
45838 -extern atomic_t cm_closes;
45839 -extern atomic_t cm_connecteds;
45840 -extern atomic_t cm_connect_reqs;
45841 -extern atomic_t cm_rejects;
45842 -extern atomic_t mod_qp_timouts;
45843 -extern atomic_t qps_created;
45844 -extern atomic_t qps_destroyed;
45845 -extern atomic_t sw_qps_destroyed;
45846 +extern atomic_unchecked_t cm_connects;
45847 +extern atomic_unchecked_t cm_accepts;
45848 +extern atomic_unchecked_t cm_disconnects;
45849 +extern atomic_unchecked_t cm_closes;
45850 +extern atomic_unchecked_t cm_connecteds;
45851 +extern atomic_unchecked_t cm_connect_reqs;
45852 +extern atomic_unchecked_t cm_rejects;
45853 +extern atomic_unchecked_t mod_qp_timouts;
45854 +extern atomic_unchecked_t qps_created;
45855 +extern atomic_unchecked_t qps_destroyed;
45856 +extern atomic_unchecked_t sw_qps_destroyed;
45857 extern u32 mh_detected;
45858 extern u32 mh_pauses_sent;
45859 extern u32 cm_packets_sent;
45860 @@ -199,16 +199,16 @@ extern u32 cm_packets_created;
45861 extern u32 cm_packets_received;
45862 extern u32 cm_packets_dropped;
45863 extern u32 cm_packets_retrans;
45864 -extern atomic_t cm_listens_created;
45865 -extern atomic_t cm_listens_destroyed;
45866 +extern atomic_unchecked_t cm_listens_created;
45867 +extern atomic_unchecked_t cm_listens_destroyed;
45868 extern u32 cm_backlog_drops;
45869 -extern atomic_t cm_loopbacks;
45870 -extern atomic_t cm_nodes_created;
45871 -extern atomic_t cm_nodes_destroyed;
45872 -extern atomic_t cm_accel_dropped_pkts;
45873 -extern atomic_t cm_resets_recvd;
45874 -extern atomic_t pau_qps_created;
45875 -extern atomic_t pau_qps_destroyed;
45876 +extern atomic_unchecked_t cm_loopbacks;
45877 +extern atomic_unchecked_t cm_nodes_created;
45878 +extern atomic_unchecked_t cm_nodes_destroyed;
45879 +extern atomic_unchecked_t cm_accel_dropped_pkts;
45880 +extern atomic_unchecked_t cm_resets_recvd;
45881 +extern atomic_unchecked_t pau_qps_created;
45882 +extern atomic_unchecked_t pau_qps_destroyed;
45883
45884 extern u32 int_mod_timer_init;
45885 extern u32 int_mod_cq_depth_256;
45886 diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
45887 index 8a3ad17..e1ed4bc 100644
45888 --- a/drivers/infiniband/hw/nes/nes_cm.c
45889 +++ b/drivers/infiniband/hw/nes/nes_cm.c
45890 @@ -69,14 +69,14 @@ u32 cm_packets_dropped;
45891 u32 cm_packets_retrans;
45892 u32 cm_packets_created;
45893 u32 cm_packets_received;
45894 -atomic_t cm_listens_created;
45895 -atomic_t cm_listens_destroyed;
45896 +atomic_unchecked_t cm_listens_created;
45897 +atomic_unchecked_t cm_listens_destroyed;
45898 u32 cm_backlog_drops;
45899 -atomic_t cm_loopbacks;
45900 -atomic_t cm_nodes_created;
45901 -atomic_t cm_nodes_destroyed;
45902 -atomic_t cm_accel_dropped_pkts;
45903 -atomic_t cm_resets_recvd;
45904 +atomic_unchecked_t cm_loopbacks;
45905 +atomic_unchecked_t cm_nodes_created;
45906 +atomic_unchecked_t cm_nodes_destroyed;
45907 +atomic_unchecked_t cm_accel_dropped_pkts;
45908 +atomic_unchecked_t cm_resets_recvd;
45909
45910 static inline int mini_cm_accelerated(struct nes_cm_core *, struct nes_cm_node *);
45911 static struct nes_cm_listener *mini_cm_listen(struct nes_cm_core *, struct nes_vnic *, struct nes_cm_info *);
45912 @@ -135,28 +135,28 @@ static void record_ird_ord(struct nes_cm_node *, u16, u16);
45913 /* instance of function pointers for client API */
45914 /* set address of this instance to cm_core->cm_ops at cm_core alloc */
45915 static struct nes_cm_ops nes_cm_api = {
45916 - mini_cm_accelerated,
45917 - mini_cm_listen,
45918 - mini_cm_del_listen,
45919 - mini_cm_connect,
45920 - mini_cm_close,
45921 - mini_cm_accept,
45922 - mini_cm_reject,
45923 - mini_cm_recv_pkt,
45924 - mini_cm_dealloc_core,
45925 - mini_cm_get,
45926 - mini_cm_set
45927 + .accelerated = mini_cm_accelerated,
45928 + .listen = mini_cm_listen,
45929 + .stop_listener = mini_cm_del_listen,
45930 + .connect = mini_cm_connect,
45931 + .close = mini_cm_close,
45932 + .accept = mini_cm_accept,
45933 + .reject = mini_cm_reject,
45934 + .recv_pkt = mini_cm_recv_pkt,
45935 + .destroy_cm_core = mini_cm_dealloc_core,
45936 + .get = mini_cm_get,
45937 + .set = mini_cm_set
45938 };
45939
45940 static struct nes_cm_core *g_cm_core;
45941
45942 -atomic_t cm_connects;
45943 -atomic_t cm_accepts;
45944 -atomic_t cm_disconnects;
45945 -atomic_t cm_closes;
45946 -atomic_t cm_connecteds;
45947 -atomic_t cm_connect_reqs;
45948 -atomic_t cm_rejects;
45949 +atomic_unchecked_t cm_connects;
45950 +atomic_unchecked_t cm_accepts;
45951 +atomic_unchecked_t cm_disconnects;
45952 +atomic_unchecked_t cm_closes;
45953 +atomic_unchecked_t cm_connecteds;
45954 +atomic_unchecked_t cm_connect_reqs;
45955 +atomic_unchecked_t cm_rejects;
45956
45957 int nes_add_ref_cm_node(struct nes_cm_node *cm_node)
45958 {
45959 @@ -1461,7 +1461,7 @@ static int mini_cm_dec_refcnt_listen(struct nes_cm_core *cm_core,
45960 kfree(listener);
45961 listener = NULL;
45962 ret = 0;
45963 - atomic_inc(&cm_listens_destroyed);
45964 + atomic_inc_unchecked(&cm_listens_destroyed);
45965 } else {
45966 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags);
45967 }
45968 @@ -1670,7 +1670,7 @@ static struct nes_cm_node *make_cm_node(struct nes_cm_core *cm_core,
45969 cm_node->rem_mac);
45970
45971 add_hte_node(cm_core, cm_node);
45972 - atomic_inc(&cm_nodes_created);
45973 + atomic_inc_unchecked(&cm_nodes_created);
45974
45975 return cm_node;
45976 }
45977 @@ -1731,7 +1731,7 @@ static int rem_ref_cm_node(struct nes_cm_core *cm_core,
45978 }
45979
45980 atomic_dec(&cm_core->node_cnt);
45981 - atomic_inc(&cm_nodes_destroyed);
45982 + atomic_inc_unchecked(&cm_nodes_destroyed);
45983 nesqp = cm_node->nesqp;
45984 if (nesqp) {
45985 nesqp->cm_node = NULL;
45986 @@ -1795,7 +1795,7 @@ static int process_options(struct nes_cm_node *cm_node, u8 *optionsloc,
45987
45988 static void drop_packet(struct sk_buff *skb)
45989 {
45990 - atomic_inc(&cm_accel_dropped_pkts);
45991 + atomic_inc_unchecked(&cm_accel_dropped_pkts);
45992 dev_kfree_skb_any(skb);
45993 }
45994
45995 @@ -1858,7 +1858,7 @@ static void handle_rst_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
45996 {
45997
45998 int reset = 0; /* whether to send reset in case of err.. */
45999 - atomic_inc(&cm_resets_recvd);
46000 + atomic_inc_unchecked(&cm_resets_recvd);
46001 nes_debug(NES_DBG_CM, "Received Reset, cm_node = %p, state = %u."
46002 " refcnt=%d\n", cm_node, cm_node->state,
46003 atomic_read(&cm_node->ref_count));
46004 @@ -2526,7 +2526,7 @@ static struct nes_cm_node *mini_cm_connect(struct nes_cm_core *cm_core,
46005 rem_ref_cm_node(cm_node->cm_core, cm_node);
46006 return NULL;
46007 }
46008 - atomic_inc(&cm_loopbacks);
46009 + atomic_inc_unchecked(&cm_loopbacks);
46010 loopbackremotenode->loopbackpartner = cm_node;
46011 loopbackremotenode->tcp_cntxt.rcv_wscale =
46012 NES_CM_DEFAULT_RCV_WND_SCALE;
46013 @@ -2807,7 +2807,7 @@ static int mini_cm_recv_pkt(struct nes_cm_core *cm_core,
46014 nes_queue_mgt_skbs(skb, nesvnic, cm_node->nesqp);
46015 else {
46016 rem_ref_cm_node(cm_core, cm_node);
46017 - atomic_inc(&cm_accel_dropped_pkts);
46018 + atomic_inc_unchecked(&cm_accel_dropped_pkts);
46019 dev_kfree_skb_any(skb);
46020 }
46021 break;
46022 @@ -3118,7 +3118,7 @@ static int nes_cm_disconn_true(struct nes_qp *nesqp)
46023
46024 if ((cm_id) && (cm_id->event_handler)) {
46025 if (issue_disconn) {
46026 - atomic_inc(&cm_disconnects);
46027 + atomic_inc_unchecked(&cm_disconnects);
46028 cm_event.event = IW_CM_EVENT_DISCONNECT;
46029 cm_event.status = disconn_status;
46030 cm_event.local_addr = cm_id->local_addr;
46031 @@ -3140,7 +3140,7 @@ static int nes_cm_disconn_true(struct nes_qp *nesqp)
46032 }
46033
46034 if (issue_close) {
46035 - atomic_inc(&cm_closes);
46036 + atomic_inc_unchecked(&cm_closes);
46037 nes_disconnect(nesqp, 1);
46038
46039 cm_id->provider_data = nesqp;
46040 @@ -3278,7 +3278,7 @@ int nes_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
46041
46042 nes_debug(NES_DBG_CM, "QP%u, cm_node=%p, jiffies = %lu listener = %p\n",
46043 nesqp->hwqp.qp_id, cm_node, jiffies, cm_node->listener);
46044 - atomic_inc(&cm_accepts);
46045 + atomic_inc_unchecked(&cm_accepts);
46046
46047 nes_debug(NES_DBG_CM, "netdev refcnt = %u.\n",
46048 netdev_refcnt_read(nesvnic->netdev));
46049 @@ -3476,7 +3476,7 @@ int nes_reject(struct iw_cm_id *cm_id, const void *pdata, u8 pdata_len)
46050 struct nes_cm_core *cm_core;
46051 u8 *start_buff;
46052
46053 - atomic_inc(&cm_rejects);
46054 + atomic_inc_unchecked(&cm_rejects);
46055 cm_node = (struct nes_cm_node *)cm_id->provider_data;
46056 loopback = cm_node->loopbackpartner;
46057 cm_core = cm_node->cm_core;
46058 @@ -3541,7 +3541,7 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
46059 ntohs(raddr->sin_port), ntohl(laddr->sin_addr.s_addr),
46060 ntohs(laddr->sin_port));
46061
46062 - atomic_inc(&cm_connects);
46063 + atomic_inc_unchecked(&cm_connects);
46064 nesqp->active_conn = 1;
46065
46066 /* cache the cm_id in the qp */
46067 @@ -3688,7 +3688,7 @@ int nes_create_listen(struct iw_cm_id *cm_id, int backlog)
46068 g_cm_core->api->stop_listener(g_cm_core, (void *)cm_node);
46069 return err;
46070 }
46071 - atomic_inc(&cm_listens_created);
46072 + atomic_inc_unchecked(&cm_listens_created);
46073 }
46074
46075 cm_id->add_ref(cm_id);
46076 @@ -3795,7 +3795,7 @@ static void cm_event_connected(struct nes_cm_event *event)
46077
46078 if (nesqp->destroyed)
46079 return;
46080 - atomic_inc(&cm_connecteds);
46081 + atomic_inc_unchecked(&cm_connecteds);
46082 nes_debug(NES_DBG_CM, "QP%u attempting to connect to 0x%08X:0x%04X on"
46083 " local port 0x%04X. jiffies = %lu.\n",
46084 nesqp->hwqp.qp_id, ntohl(raddr->sin_addr.s_addr),
46085 @@ -3980,7 +3980,7 @@ static void cm_event_reset(struct nes_cm_event *event)
46086
46087 cm_id->add_ref(cm_id);
46088 ret = cm_id->event_handler(cm_id, &cm_event);
46089 - atomic_inc(&cm_closes);
46090 + atomic_inc_unchecked(&cm_closes);
46091 cm_event.event = IW_CM_EVENT_CLOSE;
46092 cm_event.status = 0;
46093 cm_event.provider_data = cm_id->provider_data;
46094 @@ -4020,7 +4020,7 @@ static void cm_event_mpa_req(struct nes_cm_event *event)
46095 return;
46096 cm_id = cm_node->cm_id;
46097
46098 - atomic_inc(&cm_connect_reqs);
46099 + atomic_inc_unchecked(&cm_connect_reqs);
46100 nes_debug(NES_DBG_CM, "cm_node = %p - cm_id = %p, jiffies = %lu\n",
46101 cm_node, cm_id, jiffies);
46102
46103 @@ -4069,7 +4069,7 @@ static void cm_event_mpa_reject(struct nes_cm_event *event)
46104 return;
46105 cm_id = cm_node->cm_id;
46106
46107 - atomic_inc(&cm_connect_reqs);
46108 + atomic_inc_unchecked(&cm_connect_reqs);
46109 nes_debug(NES_DBG_CM, "cm_node = %p - cm_id = %p, jiffies = %lu\n",
46110 cm_node, cm_id, jiffies);
46111
46112 diff --git a/drivers/infiniband/hw/nes/nes_mgt.c b/drivers/infiniband/hw/nes/nes_mgt.c
46113 index 4166452..fc952c3 100644
46114 --- a/drivers/infiniband/hw/nes/nes_mgt.c
46115 +++ b/drivers/infiniband/hw/nes/nes_mgt.c
46116 @@ -40,8 +40,8 @@
46117 #include "nes.h"
46118 #include "nes_mgt.h"
46119
46120 -atomic_t pau_qps_created;
46121 -atomic_t pau_qps_destroyed;
46122 +atomic_unchecked_t pau_qps_created;
46123 +atomic_unchecked_t pau_qps_destroyed;
46124
46125 static void nes_replenish_mgt_rq(struct nes_vnic_mgt *mgtvnic)
46126 {
46127 @@ -621,7 +621,7 @@ void nes_destroy_pau_qp(struct nes_device *nesdev, struct nes_qp *nesqp)
46128 {
46129 struct sk_buff *skb;
46130 unsigned long flags;
46131 - atomic_inc(&pau_qps_destroyed);
46132 + atomic_inc_unchecked(&pau_qps_destroyed);
46133
46134 /* Free packets that have not yet been forwarded */
46135 /* Lock is acquired by skb_dequeue when removing the skb */
46136 @@ -810,7 +810,7 @@ static void nes_mgt_ce_handler(struct nes_device *nesdev, struct nes_hw_nic_cq *
46137 cq->cq_vbase[head].cqe_words[NES_NIC_CQE_HASH_RCVNXT]);
46138 skb_queue_head_init(&nesqp->pau_list);
46139 spin_lock_init(&nesqp->pau_lock);
46140 - atomic_inc(&pau_qps_created);
46141 + atomic_inc_unchecked(&pau_qps_created);
46142 nes_change_quad_hash(nesdev, mgtvnic->nesvnic, nesqp);
46143 }
46144
46145 diff --git a/drivers/infiniband/hw/nes/nes_nic.c b/drivers/infiniband/hw/nes/nes_nic.c
46146 index 6a0bdfa..f587041 100644
46147 --- a/drivers/infiniband/hw/nes/nes_nic.c
46148 +++ b/drivers/infiniband/hw/nes/nes_nic.c
46149 @@ -1274,39 +1274,39 @@ static void nes_netdev_get_ethtool_stats(struct net_device *netdev,
46150 target_stat_values[++index] = mh_detected;
46151 target_stat_values[++index] = mh_pauses_sent;
46152 target_stat_values[++index] = nesvnic->endnode_ipv4_tcp_retransmits;
46153 - target_stat_values[++index] = atomic_read(&cm_connects);
46154 - target_stat_values[++index] = atomic_read(&cm_accepts);
46155 - target_stat_values[++index] = atomic_read(&cm_disconnects);
46156 - target_stat_values[++index] = atomic_read(&cm_connecteds);
46157 - target_stat_values[++index] = atomic_read(&cm_connect_reqs);
46158 - target_stat_values[++index] = atomic_read(&cm_rejects);
46159 - target_stat_values[++index] = atomic_read(&mod_qp_timouts);
46160 - target_stat_values[++index] = atomic_read(&qps_created);
46161 - target_stat_values[++index] = atomic_read(&sw_qps_destroyed);
46162 - target_stat_values[++index] = atomic_read(&qps_destroyed);
46163 - target_stat_values[++index] = atomic_read(&cm_closes);
46164 + target_stat_values[++index] = atomic_read_unchecked(&cm_connects);
46165 + target_stat_values[++index] = atomic_read_unchecked(&cm_accepts);
46166 + target_stat_values[++index] = atomic_read_unchecked(&cm_disconnects);
46167 + target_stat_values[++index] = atomic_read_unchecked(&cm_connecteds);
46168 + target_stat_values[++index] = atomic_read_unchecked(&cm_connect_reqs);
46169 + target_stat_values[++index] = atomic_read_unchecked(&cm_rejects);
46170 + target_stat_values[++index] = atomic_read_unchecked(&mod_qp_timouts);
46171 + target_stat_values[++index] = atomic_read_unchecked(&qps_created);
46172 + target_stat_values[++index] = atomic_read_unchecked(&sw_qps_destroyed);
46173 + target_stat_values[++index] = atomic_read_unchecked(&qps_destroyed);
46174 + target_stat_values[++index] = atomic_read_unchecked(&cm_closes);
46175 target_stat_values[++index] = cm_packets_sent;
46176 target_stat_values[++index] = cm_packets_bounced;
46177 target_stat_values[++index] = cm_packets_created;
46178 target_stat_values[++index] = cm_packets_received;
46179 target_stat_values[++index] = cm_packets_dropped;
46180 target_stat_values[++index] = cm_packets_retrans;
46181 - target_stat_values[++index] = atomic_read(&cm_listens_created);
46182 - target_stat_values[++index] = atomic_read(&cm_listens_destroyed);
46183 + target_stat_values[++index] = atomic_read_unchecked(&cm_listens_created);
46184 + target_stat_values[++index] = atomic_read_unchecked(&cm_listens_destroyed);
46185 target_stat_values[++index] = cm_backlog_drops;
46186 - target_stat_values[++index] = atomic_read(&cm_loopbacks);
46187 - target_stat_values[++index] = atomic_read(&cm_nodes_created);
46188 - target_stat_values[++index] = atomic_read(&cm_nodes_destroyed);
46189 - target_stat_values[++index] = atomic_read(&cm_accel_dropped_pkts);
46190 - target_stat_values[++index] = atomic_read(&cm_resets_recvd);
46191 + target_stat_values[++index] = atomic_read_unchecked(&cm_loopbacks);
46192 + target_stat_values[++index] = atomic_read_unchecked(&cm_nodes_created);
46193 + target_stat_values[++index] = atomic_read_unchecked(&cm_nodes_destroyed);
46194 + target_stat_values[++index] = atomic_read_unchecked(&cm_accel_dropped_pkts);
46195 + target_stat_values[++index] = atomic_read_unchecked(&cm_resets_recvd);
46196 target_stat_values[++index] = nesadapter->free_4kpbl;
46197 target_stat_values[++index] = nesadapter->free_256pbl;
46198 target_stat_values[++index] = int_mod_timer_init;
46199 target_stat_values[++index] = nesvnic->lro_mgr.stats.aggregated;
46200 target_stat_values[++index] = nesvnic->lro_mgr.stats.flushed;
46201 target_stat_values[++index] = nesvnic->lro_mgr.stats.no_desc;
46202 - target_stat_values[++index] = atomic_read(&pau_qps_created);
46203 - target_stat_values[++index] = atomic_read(&pau_qps_destroyed);
46204 + target_stat_values[++index] = atomic_read_unchecked(&pau_qps_created);
46205 + target_stat_values[++index] = atomic_read_unchecked(&pau_qps_destroyed);
46206 }
46207
46208 /**
46209 diff --git a/drivers/infiniband/hw/nes/nes_verbs.c b/drivers/infiniband/hw/nes/nes_verbs.c
46210 index 137880a..f3248f4 100644
46211 --- a/drivers/infiniband/hw/nes/nes_verbs.c
46212 +++ b/drivers/infiniband/hw/nes/nes_verbs.c
46213 @@ -46,9 +46,9 @@
46214
46215 #include <rdma/ib_umem.h>
46216
46217 -atomic_t mod_qp_timouts;
46218 -atomic_t qps_created;
46219 -atomic_t sw_qps_destroyed;
46220 +atomic_unchecked_t mod_qp_timouts;
46221 +atomic_unchecked_t qps_created;
46222 +atomic_unchecked_t sw_qps_destroyed;
46223
46224 static void nes_unregister_ofa_device(struct nes_ib_device *nesibdev);
46225 static int nes_dereg_mr(struct ib_mr *ib_mr);
46226 @@ -1114,7 +1114,7 @@ static struct ib_qp *nes_create_qp(struct ib_pd *ibpd,
46227 if (init_attr->create_flags)
46228 return ERR_PTR(-EINVAL);
46229
46230 - atomic_inc(&qps_created);
46231 + atomic_inc_unchecked(&qps_created);
46232 switch (init_attr->qp_type) {
46233 case IB_QPT_RC:
46234 if (nes_drv_opt & NES_DRV_OPT_NO_INLINE_DATA) {
46235 @@ -1448,7 +1448,7 @@ static int nes_destroy_qp(struct ib_qp *ibqp)
46236 struct iw_cm_event cm_event;
46237 int ret = 0;
46238
46239 - atomic_inc(&sw_qps_destroyed);
46240 + atomic_inc_unchecked(&sw_qps_destroyed);
46241 nesqp->destroyed = 1;
46242
46243 /* Blow away the connection if it exists. */
46244 diff --git a/drivers/infiniband/hw/qib/qib.h b/drivers/infiniband/hw/qib/qib.h
46245 index 7df16f7..7e1b21e 100644
46246 --- a/drivers/infiniband/hw/qib/qib.h
46247 +++ b/drivers/infiniband/hw/qib/qib.h
46248 @@ -52,6 +52,7 @@
46249 #include <linux/kref.h>
46250 #include <linux/sched.h>
46251 #include <linux/kthread.h>
46252 +#include <linux/slab.h>
46253
46254 #include "qib_common.h"
46255 #include "qib_verbs.h"
46256 diff --git a/drivers/infiniband/ulp/ipoib/ipoib_netlink.c b/drivers/infiniband/ulp/ipoib/ipoib_netlink.c
46257 index cdc7df4..a2fdfdb 100644
46258 --- a/drivers/infiniband/ulp/ipoib/ipoib_netlink.c
46259 +++ b/drivers/infiniband/ulp/ipoib/ipoib_netlink.c
46260 @@ -156,7 +156,7 @@ static size_t ipoib_get_size(const struct net_device *dev)
46261 nla_total_size(2); /* IFLA_IPOIB_UMCAST */
46262 }
46263
46264 -static struct rtnl_link_ops ipoib_link_ops __read_mostly = {
46265 +static struct rtnl_link_ops ipoib_link_ops = {
46266 .kind = "ipoib",
46267 .maxtype = IFLA_IPOIB_MAX,
46268 .policy = ipoib_policy,
46269 diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c
46270 index e9ae3d5..96e4940 100644
46271 --- a/drivers/input/evdev.c
46272 +++ b/drivers/input/evdev.c
46273 @@ -997,7 +997,7 @@ static int evdev_set_mask(struct evdev_client *client,
46274 if (!cnt)
46275 return 0;
46276
46277 - mask = kcalloc(sizeof(unsigned long), BITS_TO_LONGS(cnt), GFP_KERNEL);
46278 + mask = kcalloc(BITS_TO_LONGS(cnt), sizeof(unsigned long), GFP_KERNEL);
46279 if (!mask)
46280 return -ENOMEM;
46281
46282 diff --git a/drivers/input/gameport/gameport.c b/drivers/input/gameport/gameport.c
46283 index 4a2a9e3..b9261a7 100644
46284 --- a/drivers/input/gameport/gameport.c
46285 +++ b/drivers/input/gameport/gameport.c
46286 @@ -527,14 +527,14 @@ EXPORT_SYMBOL(gameport_set_phys);
46287 */
46288 static void gameport_init_port(struct gameport *gameport)
46289 {
46290 - static atomic_t gameport_no = ATOMIC_INIT(-1);
46291 + static atomic_unchecked_t gameport_no = ATOMIC_INIT(-1);
46292
46293 __module_get(THIS_MODULE);
46294
46295 mutex_init(&gameport->drv_mutex);
46296 device_initialize(&gameport->dev);
46297 dev_set_name(&gameport->dev, "gameport%lu",
46298 - (unsigned long)atomic_inc_return(&gameport_no));
46299 + (unsigned long)atomic_inc_return_unchecked(&gameport_no));
46300 gameport->dev.bus = &gameport_bus;
46301 gameport->dev.release = gameport_release_port;
46302 if (gameport->parent)
46303 diff --git a/drivers/input/input.c b/drivers/input/input.c
46304 index 8806059..fddeb99 100644
46305 --- a/drivers/input/input.c
46306 +++ b/drivers/input/input.c
46307 @@ -1781,7 +1781,7 @@ EXPORT_SYMBOL_GPL(input_class);
46308 */
46309 struct input_dev *input_allocate_device(void)
46310 {
46311 - static atomic_t input_no = ATOMIC_INIT(-1);
46312 + static atomic_unchecked_t input_no = ATOMIC_INIT(-1);
46313 struct input_dev *dev;
46314
46315 dev = kzalloc(sizeof(struct input_dev), GFP_KERNEL);
46316 @@ -1796,7 +1796,7 @@ struct input_dev *input_allocate_device(void)
46317 INIT_LIST_HEAD(&dev->node);
46318
46319 dev_set_name(&dev->dev, "input%lu",
46320 - (unsigned long)atomic_inc_return(&input_no));
46321 + (unsigned long)atomic_inc_return_unchecked(&input_no));
46322
46323 __module_get(THIS_MODULE);
46324 }
46325 diff --git a/drivers/input/joystick/sidewinder.c b/drivers/input/joystick/sidewinder.c
46326 index 4a95b22..874c182 100644
46327 --- a/drivers/input/joystick/sidewinder.c
46328 +++ b/drivers/input/joystick/sidewinder.c
46329 @@ -30,6 +30,7 @@
46330 #include <linux/kernel.h>
46331 #include <linux/module.h>
46332 #include <linux/slab.h>
46333 +#include <linux/sched.h>
46334 #include <linux/input.h>
46335 #include <linux/gameport.h>
46336 #include <linux/jiffies.h>
46337 diff --git a/drivers/input/misc/ims-pcu.c b/drivers/input/misc/ims-pcu.c
46338 index ac1fa5f..5f7502c 100644
46339 --- a/drivers/input/misc/ims-pcu.c
46340 +++ b/drivers/input/misc/ims-pcu.c
46341 @@ -1851,7 +1851,7 @@ static int ims_pcu_identify_type(struct ims_pcu *pcu, u8 *device_id)
46342
46343 static int ims_pcu_init_application_mode(struct ims_pcu *pcu)
46344 {
46345 - static atomic_t device_no = ATOMIC_INIT(-1);
46346 + static atomic_unchecked_t device_no = ATOMIC_INIT(-1);
46347
46348 const struct ims_pcu_device_info *info;
46349 int error;
46350 @@ -1882,7 +1882,7 @@ static int ims_pcu_init_application_mode(struct ims_pcu *pcu)
46351 }
46352
46353 /* Device appears to be operable, complete initialization */
46354 - pcu->device_no = atomic_inc_return(&device_no);
46355 + pcu->device_no = atomic_inc_return_unchecked(&device_no);
46356
46357 /*
46358 * PCU-B devices, both GEN_1 and GEN_2 do not have OFN sensor
46359 diff --git a/drivers/input/mouse/psmouse.h b/drivers/input/mouse/psmouse.h
46360 index ad5a5a1..5eac214 100644
46361 --- a/drivers/input/mouse/psmouse.h
46362 +++ b/drivers/input/mouse/psmouse.h
46363 @@ -125,7 +125,7 @@ struct psmouse_attribute {
46364 ssize_t (*set)(struct psmouse *psmouse, void *data,
46365 const char *buf, size_t count);
46366 bool protect;
46367 -};
46368 +} __do_const;
46369 #define to_psmouse_attr(a) container_of((a), struct psmouse_attribute, dattr)
46370
46371 ssize_t psmouse_attr_show_helper(struct device *dev, struct device_attribute *attr,
46372 diff --git a/drivers/input/mousedev.c b/drivers/input/mousedev.c
46373 index b604564..3f14ae4 100644
46374 --- a/drivers/input/mousedev.c
46375 +++ b/drivers/input/mousedev.c
46376 @@ -744,7 +744,7 @@ static ssize_t mousedev_read(struct file *file, char __user *buffer,
46377
46378 spin_unlock_irq(&client->packet_lock);
46379
46380 - if (copy_to_user(buffer, data, count))
46381 + if (count > sizeof(data) || copy_to_user(buffer, data, count))
46382 return -EFAULT;
46383
46384 return count;
46385 diff --git a/drivers/input/serio/serio.c b/drivers/input/serio/serio.c
46386 index 8f82897..f5efcd9 100644
46387 --- a/drivers/input/serio/serio.c
46388 +++ b/drivers/input/serio/serio.c
46389 @@ -512,7 +512,7 @@ static void serio_release_port(struct device *dev)
46390 */
46391 static void serio_init_port(struct serio *serio)
46392 {
46393 - static atomic_t serio_no = ATOMIC_INIT(-1);
46394 + static atomic_unchecked_t serio_no = ATOMIC_INIT(-1);
46395
46396 __module_get(THIS_MODULE);
46397
46398 @@ -523,7 +523,7 @@ static void serio_init_port(struct serio *serio)
46399 mutex_init(&serio->drv_mutex);
46400 device_initialize(&serio->dev);
46401 dev_set_name(&serio->dev, "serio%lu",
46402 - (unsigned long)atomic_inc_return(&serio_no));
46403 + (unsigned long)atomic_inc_return_unchecked(&serio_no));
46404 serio->dev.bus = &serio_bus;
46405 serio->dev.release = serio_release_port;
46406 serio->dev.groups = serio_device_attr_groups;
46407 diff --git a/drivers/input/serio/serio_raw.c b/drivers/input/serio/serio_raw.c
46408 index 71ef5d6..93380a9 100644
46409 --- a/drivers/input/serio/serio_raw.c
46410 +++ b/drivers/input/serio/serio_raw.c
46411 @@ -292,7 +292,7 @@ static irqreturn_t serio_raw_interrupt(struct serio *serio, unsigned char data,
46412
46413 static int serio_raw_connect(struct serio *serio, struct serio_driver *drv)
46414 {
46415 - static atomic_t serio_raw_no = ATOMIC_INIT(-1);
46416 + static atomic_unchecked_t serio_raw_no = ATOMIC_INIT(-1);
46417 struct serio_raw *serio_raw;
46418 int err;
46419
46420 @@ -303,7 +303,7 @@ static int serio_raw_connect(struct serio *serio, struct serio_driver *drv)
46421 }
46422
46423 snprintf(serio_raw->name, sizeof(serio_raw->name),
46424 - "serio_raw%ld", (long)atomic_inc_return(&serio_raw_no));
46425 + "serio_raw%ld", (long)atomic_inc_return_unchecked(&serio_raw_no));
46426 kref_init(&serio_raw->kref);
46427 INIT_LIST_HEAD(&serio_raw->client_list);
46428 init_waitqueue_head(&serio_raw->wait);
46429 diff --git a/drivers/input/touchscreen/htcpen.c b/drivers/input/touchscreen/htcpen.c
46430 index 92e2243..8fd9092 100644
46431 --- a/drivers/input/touchscreen/htcpen.c
46432 +++ b/drivers/input/touchscreen/htcpen.c
46433 @@ -219,7 +219,7 @@ static struct isa_driver htcpen_isa_driver = {
46434 }
46435 };
46436
46437 -static struct dmi_system_id htcshift_dmi_table[] __initdata = {
46438 +static const struct dmi_system_id htcshift_dmi_table[] __initconst = {
46439 {
46440 .ident = "Shift",
46441 .matches = {
46442 diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
46443 index b9094e9..a4885c6 100644
46444 --- a/drivers/iommu/Kconfig
46445 +++ b/drivers/iommu/Kconfig
46446 @@ -109,6 +109,7 @@ config AMD_IOMMU_STATS
46447 bool "Export AMD IOMMU statistics to debugfs"
46448 depends on AMD_IOMMU
46449 select DEBUG_FS
46450 + depends on !GRKERNSEC_KMEM
46451 ---help---
46452 This option enables code in the AMD IOMMU driver to collect various
46453 statistics about whats happening in the driver and exports that
46454 diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
46455 index fc836f5..9802f00 100644
46456 --- a/drivers/iommu/amd_iommu.c
46457 +++ b/drivers/iommu/amd_iommu.c
46458 @@ -695,11 +695,21 @@ static void copy_cmd_to_buffer(struct amd_iommu *iommu,
46459
46460 static void build_completion_wait(struct iommu_cmd *cmd, u64 address)
46461 {
46462 + phys_addr_t physaddr;
46463 WARN_ON(address & 0x7ULL);
46464
46465 memset(cmd, 0, sizeof(*cmd));
46466 - cmd->data[0] = lower_32_bits(__pa(address)) | CMD_COMPL_WAIT_STORE_MASK;
46467 - cmd->data[1] = upper_32_bits(__pa(address));
46468 +
46469 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
46470 + if (object_starts_on_stack((void *)address)) {
46471 + void *adjbuf = (void *)address - current->stack + current->lowmem_stack;
46472 + physaddr = __pa((u64)adjbuf);
46473 + } else
46474 +#endif
46475 + physaddr = __pa(address);
46476 +
46477 + cmd->data[0] = lower_32_bits(physaddr) | CMD_COMPL_WAIT_STORE_MASK;
46478 + cmd->data[1] = upper_32_bits(physaddr);
46479 cmd->data[2] = 1;
46480 CMD_SET_TYPE(cmd, CMD_COMPL_WAIT);
46481 }
46482 diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c
46483 index 4e5118a..6b1675e 100644
46484 --- a/drivers/iommu/arm-smmu-v3.c
46485 +++ b/drivers/iommu/arm-smmu-v3.c
46486 @@ -1539,7 +1539,7 @@ static int arm_smmu_domain_finalise(struct iommu_domain *domain)
46487 .iommu_dev = smmu->dev,
46488 };
46489
46490 - pgtbl_ops = alloc_io_pgtable_ops(fmt, &pgtbl_cfg, smmu_domain);
46491 + pgtbl_ops = alloc_io_pgtable(fmt, &pgtbl_cfg, smmu_domain);
46492 if (!pgtbl_ops)
46493 return -ENOMEM;
46494
46495 diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
46496 index 47dc7a7..2bfe405 100644
46497 --- a/drivers/iommu/arm-smmu.c
46498 +++ b/drivers/iommu/arm-smmu.c
46499 @@ -341,7 +341,7 @@ enum arm_smmu_domain_stage {
46500
46501 struct arm_smmu_domain {
46502 struct arm_smmu_device *smmu;
46503 - struct io_pgtable_ops *pgtbl_ops;
46504 + struct io_pgtable *pgtbl;
46505 spinlock_t pgtbl_lock;
46506 struct arm_smmu_cfg cfg;
46507 enum arm_smmu_domain_stage stage;
46508 @@ -798,7 +798,7 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
46509 {
46510 int irq, start, ret = 0;
46511 unsigned long ias, oas;
46512 - struct io_pgtable_ops *pgtbl_ops;
46513 + struct io_pgtable *pgtbl;
46514 struct io_pgtable_cfg pgtbl_cfg;
46515 enum io_pgtable_fmt fmt;
46516 struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
46517 @@ -884,14 +884,16 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
46518 };
46519
46520 smmu_domain->smmu = smmu;
46521 - pgtbl_ops = alloc_io_pgtable_ops(fmt, &pgtbl_cfg, smmu_domain);
46522 - if (!pgtbl_ops) {
46523 + pgtbl = alloc_io_pgtable(fmt, &pgtbl_cfg, smmu_domain);
46524 + if (!pgtbl) {
46525 ret = -ENOMEM;
46526 goto out_clear_smmu;
46527 }
46528
46529 /* Update our support page sizes to reflect the page table format */
46530 - arm_smmu_ops.pgsize_bitmap = pgtbl_cfg.pgsize_bitmap;
46531 + pax_open_kernel();
46532 + *(unsigned long *)&arm_smmu_ops.pgsize_bitmap = pgtbl_cfg.pgsize_bitmap;
46533 + pax_close_kernel();
46534
46535 /* Initialise the context bank with our page table cfg */
46536 arm_smmu_init_context_bank(smmu_domain, &pgtbl_cfg);
46537 @@ -912,7 +914,7 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
46538 mutex_unlock(&smmu_domain->init_mutex);
46539
46540 /* Publish page table ops for map/unmap */
46541 - smmu_domain->pgtbl_ops = pgtbl_ops;
46542 + smmu_domain->pgtbl = pgtbl;
46543 return 0;
46544
46545 out_clear_smmu:
46546 @@ -945,8 +947,7 @@ static void arm_smmu_destroy_domain_context(struct iommu_domain *domain)
46547 free_irq(irq, domain);
46548 }
46549
46550 - if (smmu_domain->pgtbl_ops)
46551 - free_io_pgtable_ops(smmu_domain->pgtbl_ops);
46552 + free_io_pgtable(smmu_domain->pgtbl);
46553
46554 __arm_smmu_free_bitmap(smmu->context_map, cfg->cbndx);
46555 }
46556 @@ -1172,13 +1173,13 @@ static int arm_smmu_map(struct iommu_domain *domain, unsigned long iova,
46557 int ret;
46558 unsigned long flags;
46559 struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
46560 - struct io_pgtable_ops *ops= smmu_domain->pgtbl_ops;
46561 + struct io_pgtable *iop = smmu_domain->pgtbl;
46562
46563 - if (!ops)
46564 + if (!iop)
46565 return -ENODEV;
46566
46567 spin_lock_irqsave(&smmu_domain->pgtbl_lock, flags);
46568 - ret = ops->map(ops, iova, paddr, size, prot);
46569 + ret = iop->ops->map(iop, iova, paddr, size, prot);
46570 spin_unlock_irqrestore(&smmu_domain->pgtbl_lock, flags);
46571 return ret;
46572 }
46573 @@ -1189,13 +1190,13 @@ static size_t arm_smmu_unmap(struct iommu_domain *domain, unsigned long iova,
46574 size_t ret;
46575 unsigned long flags;
46576 struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
46577 - struct io_pgtable_ops *ops= smmu_domain->pgtbl_ops;
46578 + struct io_pgtable *iop = smmu_domain->pgtbl;
46579
46580 - if (!ops)
46581 + if (!iop)
46582 return 0;
46583
46584 spin_lock_irqsave(&smmu_domain->pgtbl_lock, flags);
46585 - ret = ops->unmap(ops, iova, size);
46586 + ret = iop->ops->unmap(iop, iova, size);
46587 spin_unlock_irqrestore(&smmu_domain->pgtbl_lock, flags);
46588 return ret;
46589 }
46590 @@ -1206,7 +1207,7 @@ static phys_addr_t arm_smmu_iova_to_phys_hard(struct iommu_domain *domain,
46591 struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
46592 struct arm_smmu_device *smmu = smmu_domain->smmu;
46593 struct arm_smmu_cfg *cfg = &smmu_domain->cfg;
46594 - struct io_pgtable_ops *ops= smmu_domain->pgtbl_ops;
46595 + struct io_pgtable *iop = smmu_domain->pgtbl;
46596 struct device *dev = smmu->dev;
46597 void __iomem *cb_base;
46598 u32 tmp;
46599 @@ -1227,7 +1228,7 @@ static phys_addr_t arm_smmu_iova_to_phys_hard(struct iommu_domain *domain,
46600 dev_err(dev,
46601 "iova to phys timed out on %pad. Falling back to software table walk.\n",
46602 &iova);
46603 - return ops->iova_to_phys(ops, iova);
46604 + return iop->ops->iova_to_phys(ops, iova);
46605 }
46606
46607 phys = readl_relaxed(cb_base + ARM_SMMU_CB_PAR_LO);
46608 @@ -1248,9 +1249,9 @@ static phys_addr_t arm_smmu_iova_to_phys(struct iommu_domain *domain,
46609 phys_addr_t ret;
46610 unsigned long flags;
46611 struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
46612 - struct io_pgtable_ops *ops= smmu_domain->pgtbl_ops;
46613 + struct io_pgtable *iop = smmu_domain->pgtbl;
46614
46615 - if (!ops)
46616 + if (!iop)
46617 return 0;
46618
46619 spin_lock_irqsave(&smmu_domain->pgtbl_lock, flags);
46620 @@ -1258,7 +1259,7 @@ static phys_addr_t arm_smmu_iova_to_phys(struct iommu_domain *domain,
46621 smmu_domain->stage == ARM_SMMU_DOMAIN_S1) {
46622 ret = arm_smmu_iova_to_phys_hard(domain, iova);
46623 } else {
46624 - ret = ops->iova_to_phys(ops, iova);
46625 + ret = iop->ops->iova_to_phys(iop, iova);
46626 }
46627
46628 spin_unlock_irqrestore(&smmu_domain->pgtbl_lock, flags);
46629 @@ -1676,7 +1677,9 @@ static int arm_smmu_device_cfg_probe(struct arm_smmu_device *smmu)
46630 size |= SZ_64K | SZ_512M;
46631 }
46632
46633 - arm_smmu_ops.pgsize_bitmap &= size;
46634 + pax_open_kernel();
46635 + *(unsigned long *)&arm_smmu_ops.pgsize_bitmap &= size;
46636 + pax_close_kernel();
46637 dev_notice(smmu->dev, "\tSupported page sizes: 0x%08lx\n", size);
46638
46639 if (smmu->features & ARM_SMMU_FEAT_TRANS_S1)
46640 diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c
46641 index dad768c..6783134 100644
46642 --- a/drivers/iommu/io-pgtable-arm.c
46643 +++ b/drivers/iommu/io-pgtable-arm.c
46644 @@ -38,12 +38,6 @@
46645 #define io_pgtable_to_data(x) \
46646 container_of((x), struct arm_lpae_io_pgtable, iop)
46647
46648 -#define io_pgtable_ops_to_pgtable(x) \
46649 - container_of((x), struct io_pgtable, ops)
46650 -
46651 -#define io_pgtable_ops_to_data(x) \
46652 - io_pgtable_to_data(io_pgtable_ops_to_pgtable(x))
46653 -
46654 /*
46655 * For consistency with the architecture, we always consider
46656 * ARM_LPAE_MAX_LEVELS levels, with the walk starting at level n >=0
46657 @@ -376,10 +370,10 @@ static arm_lpae_iopte arm_lpae_prot_to_pte(struct arm_lpae_io_pgtable *data,
46658 return pte;
46659 }
46660
46661 -static int arm_lpae_map(struct io_pgtable_ops *ops, unsigned long iova,
46662 +static int arm_lpae_map(struct io_pgtable *iop, unsigned long iova,
46663 phys_addr_t paddr, size_t size, int iommu_prot)
46664 {
46665 - struct arm_lpae_io_pgtable *data = io_pgtable_ops_to_data(ops);
46666 + struct arm_lpae_io_pgtable *data = io_pgtable_to_data(iop);
46667 arm_lpae_iopte *ptep = data->pgd;
46668 int ret, lvl = ARM_LPAE_START_LVL(data);
46669 arm_lpae_iopte prot;
46670 @@ -524,12 +518,11 @@ static int __arm_lpae_unmap(struct arm_lpae_io_pgtable *data,
46671 return __arm_lpae_unmap(data, iova, size, lvl + 1, ptep);
46672 }
46673
46674 -static int arm_lpae_unmap(struct io_pgtable_ops *ops, unsigned long iova,
46675 +static int arm_lpae_unmap(struct io_pgtable *iop, unsigned long iova,
46676 size_t size)
46677 {
46678 size_t unmapped;
46679 - struct arm_lpae_io_pgtable *data = io_pgtable_ops_to_data(ops);
46680 - struct io_pgtable *iop = &data->iop;
46681 + struct arm_lpae_io_pgtable *data = io_pgtable_to_data(iop);
46682 arm_lpae_iopte *ptep = data->pgd;
46683 int lvl = ARM_LPAE_START_LVL(data);
46684
46685 @@ -540,10 +533,10 @@ static int arm_lpae_unmap(struct io_pgtable_ops *ops, unsigned long iova,
46686 return unmapped;
46687 }
46688
46689 -static phys_addr_t arm_lpae_iova_to_phys(struct io_pgtable_ops *ops,
46690 +static phys_addr_t arm_lpae_iova_to_phys(struct io_pgtable *iop,
46691 unsigned long iova)
46692 {
46693 - struct arm_lpae_io_pgtable *data = io_pgtable_ops_to_data(ops);
46694 + struct arm_lpae_io_pgtable *data = io_pgtable_to_data(iop);
46695 arm_lpae_iopte pte, *ptep = data->pgd;
46696 int lvl = ARM_LPAE_START_LVL(data);
46697
46698 @@ -610,6 +603,12 @@ static void arm_lpae_restrict_pgsizes(struct io_pgtable_cfg *cfg)
46699 }
46700 }
46701
46702 +static struct io_pgtable_ops arm_lpae_io_pgtable_ops = {
46703 + .map = arm_lpae_map,
46704 + .unmap = arm_lpae_unmap,
46705 + .iova_to_phys = arm_lpae_iova_to_phys,
46706 +};
46707 +
46708 static struct arm_lpae_io_pgtable *
46709 arm_lpae_alloc_pgtable(struct io_pgtable_cfg *cfg)
46710 {
46711 @@ -646,11 +645,7 @@ arm_lpae_alloc_pgtable(struct io_pgtable_cfg *cfg)
46712 pgd_bits = va_bits - (data->bits_per_level * (data->levels - 1));
46713 data->pgd_size = 1UL << (pgd_bits + ilog2(sizeof(arm_lpae_iopte)));
46714
46715 - data->iop.ops = (struct io_pgtable_ops) {
46716 - .map = arm_lpae_map,
46717 - .unmap = arm_lpae_unmap,
46718 - .iova_to_phys = arm_lpae_iova_to_phys,
46719 - };
46720 + data->iop.ops = &arm_lpae_io_pgtable_ops;
46721
46722 return data;
46723 }
46724 @@ -908,9 +903,9 @@ static struct iommu_gather_ops dummy_tlb_ops __initdata = {
46725 .tlb_sync = dummy_tlb_sync,
46726 };
46727
46728 -static void __init arm_lpae_dump_ops(struct io_pgtable_ops *ops)
46729 +static void __init arm_lpae_dump_ops(struct io_pgtable *iop)
46730 {
46731 - struct arm_lpae_io_pgtable *data = io_pgtable_ops_to_data(ops);
46732 + struct arm_lpae_io_pgtable *data = io_pgtable_to_data(iop);
46733 struct io_pgtable_cfg *cfg = &data->iop.cfg;
46734
46735 pr_err("cfg: pgsize_bitmap 0x%lx, ias %u-bit\n",
46736 @@ -920,9 +915,9 @@ static void __init arm_lpae_dump_ops(struct io_pgtable_ops *ops)
46737 data->bits_per_level, data->pgd);
46738 }
46739
46740 -#define __FAIL(ops, i) ({ \
46741 +#define __FAIL(iop, i) ({ \
46742 WARN(1, "selftest: test failed for fmt idx %d\n", (i)); \
46743 - arm_lpae_dump_ops(ops); \
46744 + arm_lpae_dump_ops(iop); \
46745 selftest_running = false; \
46746 -EFAULT; \
46747 })
46748 @@ -937,30 +932,32 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
46749 int i, j;
46750 unsigned long iova;
46751 size_t size;
46752 - struct io_pgtable_ops *ops;
46753 + struct io_pgtable *iop;
46754 + const struct io_pgtable_ops *ops;
46755
46756 selftest_running = true;
46757
46758 for (i = 0; i < ARRAY_SIZE(fmts); ++i) {
46759 cfg_cookie = cfg;
46760 - ops = alloc_io_pgtable_ops(fmts[i], cfg, cfg);
46761 - if (!ops) {
46762 + iop = alloc_io_pgtable(fmts[i], cfg, cfg);
46763 + if (!iop) {
46764 pr_err("selftest: failed to allocate io pgtable ops\n");
46765 return -ENOMEM;
46766 }
46767 + ops = iop->ops;
46768
46769 /*
46770 * Initial sanity checks.
46771 * Empty page tables shouldn't provide any translations.
46772 */
46773 - if (ops->iova_to_phys(ops, 42))
46774 - return __FAIL(ops, i);
46775 + if (ops->iova_to_phys(iop, 42))
46776 + return __FAIL(iop, i);
46777
46778 - if (ops->iova_to_phys(ops, SZ_1G + 42))
46779 - return __FAIL(ops, i);
46780 + if (ops->iova_to_phys(iop, SZ_1G + 42))
46781 + return __FAIL(iop, i);
46782
46783 - if (ops->iova_to_phys(ops, SZ_2G + 42))
46784 - return __FAIL(ops, i);
46785 + if (ops->iova_to_phys(iop, SZ_2G + 42))
46786 + return __FAIL(iop, i);
46787
46788 /*
46789 * Distinct mappings of different granule sizes.
46790 @@ -970,19 +967,19 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
46791 while (j != BITS_PER_LONG) {
46792 size = 1UL << j;
46793
46794 - if (ops->map(ops, iova, iova, size, IOMMU_READ |
46795 + if (ops->map(iop, iova, iova, size, IOMMU_READ |
46796 IOMMU_WRITE |
46797 IOMMU_NOEXEC |
46798 IOMMU_CACHE))
46799 - return __FAIL(ops, i);
46800 + return __FAIL(iop, i);
46801
46802 /* Overlapping mappings */
46803 - if (!ops->map(ops, iova, iova + size, size,
46804 + if (!ops->map(iop, iova, iova + size, size,
46805 IOMMU_READ | IOMMU_NOEXEC))
46806 - return __FAIL(ops, i);
46807 + return __FAIL(iop, i);
46808
46809 - if (ops->iova_to_phys(ops, iova + 42) != (iova + 42))
46810 - return __FAIL(ops, i);
46811 + if (ops->iova_to_phys(iop, iova + 42) != (iova + 42))
46812 + return __FAIL(iop, i);
46813
46814 iova += SZ_1G;
46815 j++;
46816 @@ -991,15 +988,15 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
46817
46818 /* Partial unmap */
46819 size = 1UL << __ffs(cfg->pgsize_bitmap);
46820 - if (ops->unmap(ops, SZ_1G + size, size) != size)
46821 - return __FAIL(ops, i);
46822 + if (ops->unmap(iop, SZ_1G + size, size) != size)
46823 + return __FAIL(iop, i);
46824
46825 /* Remap of partial unmap */
46826 - if (ops->map(ops, SZ_1G + size, size, size, IOMMU_READ))
46827 - return __FAIL(ops, i);
46828 + if (ops->map(iop, SZ_1G + size, size, size, IOMMU_READ))
46829 + return __FAIL(iop, i);
46830
46831 - if (ops->iova_to_phys(ops, SZ_1G + size + 42) != (size + 42))
46832 - return __FAIL(ops, i);
46833 + if (ops->iova_to_phys(iop, SZ_1G + size + 42) != (size + 42))
46834 + return __FAIL(iop, i);
46835
46836 /* Full unmap */
46837 iova = 0;
46838 @@ -1007,25 +1004,25 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
46839 while (j != BITS_PER_LONG) {
46840 size = 1UL << j;
46841
46842 - if (ops->unmap(ops, iova, size) != size)
46843 - return __FAIL(ops, i);
46844 + if (ops->unmap(iop, iova, size) != size)
46845 + return __FAIL(iop, i);
46846
46847 - if (ops->iova_to_phys(ops, iova + 42))
46848 - return __FAIL(ops, i);
46849 + if (ops->iova_to_phys(iop, iova + 42))
46850 + return __FAIL(iop, i);
46851
46852 /* Remap full block */
46853 - if (ops->map(ops, iova, iova, size, IOMMU_WRITE))
46854 - return __FAIL(ops, i);
46855 + if (ops->map(iop, iova, iova, size, IOMMU_WRITE))
46856 + return __FAIL(iop, i);
46857
46858 - if (ops->iova_to_phys(ops, iova + 42) != (iova + 42))
46859 - return __FAIL(ops, i);
46860 + if (ops->iova_to_phys(iop, iova + 42) != (iova + 42))
46861 + return __FAIL(iop, i);
46862
46863 iova += SZ_1G;
46864 j++;
46865 j = find_next_bit(&cfg->pgsize_bitmap, BITS_PER_LONG, j);
46866 }
46867
46868 - free_io_pgtable_ops(ops);
46869 + free_io_pgtable(iop);
46870 }
46871
46872 selftest_running = false;
46873 diff --git a/drivers/iommu/io-pgtable.c b/drivers/iommu/io-pgtable.c
46874 index 6f2e319..c24d09a 100644
46875 --- a/drivers/iommu/io-pgtable.c
46876 +++ b/drivers/iommu/io-pgtable.c
46877 @@ -35,7 +35,7 @@ io_pgtable_init_table[IO_PGTABLE_NUM_FMTS] =
46878 #endif
46879 };
46880
46881 -struct io_pgtable_ops *alloc_io_pgtable_ops(enum io_pgtable_fmt fmt,
46882 +struct io_pgtable *alloc_io_pgtable(enum io_pgtable_fmt fmt,
46883 struct io_pgtable_cfg *cfg,
46884 void *cookie)
46885 {
46886 @@ -57,21 +57,18 @@ struct io_pgtable_ops *alloc_io_pgtable_ops(enum io_pgtable_fmt fmt,
46887 iop->cookie = cookie;
46888 iop->cfg = *cfg;
46889
46890 - return &iop->ops;
46891 + return iop;
46892 }
46893
46894 /*
46895 * It is the IOMMU driver's responsibility to ensure that the page table
46896 * is no longer accessible to the walker by this point.
46897 */
46898 -void free_io_pgtable_ops(struct io_pgtable_ops *ops)
46899 +void free_io_pgtable(struct io_pgtable *iop)
46900 {
46901 - struct io_pgtable *iop;
46902 -
46903 - if (!ops)
46904 + if (!iop)
46905 return;
46906
46907 - iop = container_of(ops, struct io_pgtable, ops);
46908 iop->cfg.tlb->tlb_flush_all(iop->cookie);
46909 io_pgtable_init_table[iop->fmt]->free(iop);
46910 }
46911 diff --git a/drivers/iommu/io-pgtable.h b/drivers/iommu/io-pgtable.h
46912 index ac9e234..a2f206e 100644
46913 --- a/drivers/iommu/io-pgtable.h
46914 +++ b/drivers/iommu/io-pgtable.h
46915 @@ -78,17 +78,18 @@ struct io_pgtable_cfg {
46916 * These functions map directly onto the iommu_ops member functions with
46917 * the same names.
46918 */
46919 +struct io_pgtable;
46920 struct io_pgtable_ops {
46921 - int (*map)(struct io_pgtable_ops *ops, unsigned long iova,
46922 + int (*map)(struct io_pgtable *iop, unsigned long iova,
46923 phys_addr_t paddr, size_t size, int prot);
46924 - int (*unmap)(struct io_pgtable_ops *ops, unsigned long iova,
46925 + int (*unmap)(struct io_pgtable *iop, unsigned long iova,
46926 size_t size);
46927 - phys_addr_t (*iova_to_phys)(struct io_pgtable_ops *ops,
46928 + phys_addr_t (*iova_to_phys)(struct io_pgtable *iop,
46929 unsigned long iova);
46930 };
46931
46932 /**
46933 - * alloc_io_pgtable_ops() - Allocate a page table allocator for use by an IOMMU.
46934 + * alloc_io_pgtable() - Allocate a page table allocator for use by an IOMMU.
46935 *
46936 * @fmt: The page table format.
46937 * @cfg: The page table configuration. This will be modified to represent
46938 @@ -97,9 +98,9 @@ struct io_pgtable_ops {
46939 * @cookie: An opaque token provided by the IOMMU driver and passed back to
46940 * the callback routines in cfg->tlb.
46941 */
46942 -struct io_pgtable_ops *alloc_io_pgtable_ops(enum io_pgtable_fmt fmt,
46943 - struct io_pgtable_cfg *cfg,
46944 - void *cookie);
46945 +struct io_pgtable *alloc_io_pgtable(enum io_pgtable_fmt fmt,
46946 + struct io_pgtable_cfg *cfg,
46947 + void *cookie);
46948
46949 /**
46950 * free_io_pgtable_ops() - Free an io_pgtable_ops structure. The caller
46951 @@ -108,7 +109,7 @@ struct io_pgtable_ops *alloc_io_pgtable_ops(enum io_pgtable_fmt fmt,
46952 *
46953 * @ops: The ops returned from alloc_io_pgtable_ops.
46954 */
46955 -void free_io_pgtable_ops(struct io_pgtable_ops *ops);
46956 +void free_io_pgtable(struct io_pgtable *iop);
46957
46958
46959 /*
46960 @@ -128,7 +129,7 @@ struct io_pgtable {
46961 enum io_pgtable_fmt fmt;
46962 void *cookie;
46963 struct io_pgtable_cfg cfg;
46964 - struct io_pgtable_ops ops;
46965 + const struct io_pgtable_ops *ops;
46966 };
46967
46968 /**
46969 diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
46970 index 0e3b009..5b97b84 100644
46971 --- a/drivers/iommu/iommu.c
46972 +++ b/drivers/iommu/iommu.c
46973 @@ -956,7 +956,7 @@ static int iommu_bus_notifier(struct notifier_block *nb,
46974 static int iommu_bus_init(struct bus_type *bus, const struct iommu_ops *ops)
46975 {
46976 int err;
46977 - struct notifier_block *nb;
46978 + notifier_block_no_const *nb;
46979 struct iommu_callback_data cb = {
46980 .ops = ops,
46981 };
46982 diff --git a/drivers/iommu/ipmmu-vmsa.c b/drivers/iommu/ipmmu-vmsa.c
46983 index dfb868e..7447315a 100644
46984 --- a/drivers/iommu/ipmmu-vmsa.c
46985 +++ b/drivers/iommu/ipmmu-vmsa.c
46986 @@ -41,7 +41,7 @@ struct ipmmu_vmsa_domain {
46987 struct iommu_domain io_domain;
46988
46989 struct io_pgtable_cfg cfg;
46990 - struct io_pgtable_ops *iop;
46991 + struct io_pgtable *iop;
46992
46993 unsigned int context_id;
46994 spinlock_t lock; /* Protects mappings */
46995 @@ -319,8 +319,7 @@ static int ipmmu_domain_init_context(struct ipmmu_vmsa_domain *domain)
46996 */
46997 domain->cfg.iommu_dev = domain->mmu->dev;
46998
46999 - domain->iop = alloc_io_pgtable_ops(ARM_32_LPAE_S1, &domain->cfg,
47000 - domain);
47001 + domain->iop = alloc_io_pgtable(ARM_32_LPAE_S1, &domain->cfg, domain);
47002 if (!domain->iop)
47003 return -EINVAL;
47004
47005 @@ -478,7 +477,7 @@ static void ipmmu_domain_free(struct iommu_domain *io_domain)
47006 * been detached.
47007 */
47008 ipmmu_domain_destroy_context(domain);
47009 - free_io_pgtable_ops(domain->iop);
47010 + free_io_pgtable(domain->iop);
47011 kfree(domain);
47012 }
47013
47014 @@ -547,7 +546,7 @@ static int ipmmu_map(struct iommu_domain *io_domain, unsigned long iova,
47015 if (!domain)
47016 return -ENODEV;
47017
47018 - return domain->iop->map(domain->iop, iova, paddr, size, prot);
47019 + return domain->iop->ops->map(domain->iop, iova, paddr, size, prot);
47020 }
47021
47022 static size_t ipmmu_unmap(struct iommu_domain *io_domain, unsigned long iova,
47023 @@ -555,7 +554,7 @@ static size_t ipmmu_unmap(struct iommu_domain *io_domain, unsigned long iova,
47024 {
47025 struct ipmmu_vmsa_domain *domain = to_vmsa_domain(io_domain);
47026
47027 - return domain->iop->unmap(domain->iop, iova, size);
47028 + return domain->iop->ops->unmap(domain->iop, iova, size);
47029 }
47030
47031 static phys_addr_t ipmmu_iova_to_phys(struct iommu_domain *io_domain,
47032 @@ -565,7 +564,7 @@ static phys_addr_t ipmmu_iova_to_phys(struct iommu_domain *io_domain,
47033
47034 /* TODO: Is locking needed ? */
47035
47036 - return domain->iop->iova_to_phys(domain->iop, iova);
47037 + return domain->iop->ops->iova_to_phys(domain->iop, iova);
47038 }
47039
47040 static int ipmmu_find_utlbs(struct ipmmu_vmsa_device *mmu, struct device *dev,
47041 diff --git a/drivers/iommu/irq_remapping.c b/drivers/iommu/irq_remapping.c
47042 index 8adaaea..99dab8e 100644
47043 --- a/drivers/iommu/irq_remapping.c
47044 +++ b/drivers/iommu/irq_remapping.c
47045 @@ -153,7 +153,7 @@ int __init irq_remap_enable_fault_handling(void)
47046 void panic_if_irq_remap(const char *msg)
47047 {
47048 if (irq_remapping_enabled)
47049 - panic(msg);
47050 + panic("%s", msg);
47051 }
47052
47053 void ir_ack_apic_edge(struct irq_data *data)
47054 diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
47055 index abf2ffa..29cac65 100644
47056 --- a/drivers/irqchip/irq-gic.c
47057 +++ b/drivers/irqchip/irq-gic.c
47058 @@ -382,7 +382,7 @@ static void gic_handle_cascade_irq(struct irq_desc *desc)
47059 chained_irq_exit(chip, desc);
47060 }
47061
47062 -static struct irq_chip gic_chip = {
47063 +static irq_chip_no_const gic_chip __read_only = {
47064 .name = "GIC",
47065 .irq_mask = gic_mask_irq,
47066 .irq_unmask = gic_unmask_irq,
47067 diff --git a/drivers/irqchip/irq-i8259.c b/drivers/irqchip/irq-i8259.c
47068 index 6b304eb..6e3a1413 100644
47069 --- a/drivers/irqchip/irq-i8259.c
47070 +++ b/drivers/irqchip/irq-i8259.c
47071 @@ -204,7 +204,7 @@ spurious_8259A_irq:
47072 printk(KERN_DEBUG "spurious 8259A interrupt: IRQ%d.\n", irq);
47073 spurious_irq_mask |= irqmask;
47074 }
47075 - atomic_inc(&irq_err_count);
47076 + atomic_inc_unchecked(&irq_err_count);
47077 /*
47078 * Theoretically we do not have to handle this IRQ,
47079 * but in Linux this does not cause problems and is
47080 diff --git a/drivers/irqchip/irq-renesas-intc-irqpin.c b/drivers/irqchip/irq-renesas-intc-irqpin.c
47081 index c325806..b18ef0f 100644
47082 --- a/drivers/irqchip/irq-renesas-intc-irqpin.c
47083 +++ b/drivers/irqchip/irq-renesas-intc-irqpin.c
47084 @@ -384,7 +384,7 @@ static int intc_irqpin_probe(struct platform_device *pdev)
47085 struct intc_irqpin_iomem *i;
47086 struct resource *io[INTC_IRQPIN_REG_NR];
47087 struct resource *irq;
47088 - struct irq_chip *irq_chip;
47089 + irq_chip_no_const *irq_chip;
47090 void (*enable_fn)(struct irq_data *d);
47091 void (*disable_fn)(struct irq_data *d);
47092 const char *name = dev_name(dev);
47093 diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c
47094 index 6a2df32..dc962f1 100644
47095 --- a/drivers/isdn/capi/capi.c
47096 +++ b/drivers/isdn/capi/capi.c
47097 @@ -81,8 +81,8 @@ struct capiminor {
47098
47099 struct capi20_appl *ap;
47100 u32 ncci;
47101 - atomic_t datahandle;
47102 - atomic_t msgid;
47103 + atomic_unchecked_t datahandle;
47104 + atomic_unchecked_t msgid;
47105
47106 struct tty_port port;
47107 int ttyinstop;
47108 @@ -391,7 +391,7 @@ gen_data_b3_resp_for(struct capiminor *mp, struct sk_buff *skb)
47109 capimsg_setu16(s, 2, mp->ap->applid);
47110 capimsg_setu8 (s, 4, CAPI_DATA_B3);
47111 capimsg_setu8 (s, 5, CAPI_RESP);
47112 - capimsg_setu16(s, 6, atomic_inc_return(&mp->msgid));
47113 + capimsg_setu16(s, 6, atomic_inc_return_unchecked(&mp->msgid));
47114 capimsg_setu32(s, 8, mp->ncci);
47115 capimsg_setu16(s, 12, datahandle);
47116 }
47117 @@ -512,14 +512,14 @@ static void handle_minor_send(struct capiminor *mp)
47118 mp->outbytes -= len;
47119 spin_unlock_bh(&mp->outlock);
47120
47121 - datahandle = atomic_inc_return(&mp->datahandle);
47122 + datahandle = atomic_inc_return_unchecked(&mp->datahandle);
47123 skb_push(skb, CAPI_DATA_B3_REQ_LEN);
47124 memset(skb->data, 0, CAPI_DATA_B3_REQ_LEN);
47125 capimsg_setu16(skb->data, 0, CAPI_DATA_B3_REQ_LEN);
47126 capimsg_setu16(skb->data, 2, mp->ap->applid);
47127 capimsg_setu8 (skb->data, 4, CAPI_DATA_B3);
47128 capimsg_setu8 (skb->data, 5, CAPI_REQ);
47129 - capimsg_setu16(skb->data, 6, atomic_inc_return(&mp->msgid));
47130 + capimsg_setu16(skb->data, 6, atomic_inc_return_unchecked(&mp->msgid));
47131 capimsg_setu32(skb->data, 8, mp->ncci); /* NCCI */
47132 capimsg_setu32(skb->data, 12, (u32)(long)skb->data);/* Data32 */
47133 capimsg_setu16(skb->data, 16, len); /* Data length */
47134 diff --git a/drivers/isdn/gigaset/bas-gigaset.c b/drivers/isdn/gigaset/bas-gigaset.c
47135 index aecec6d..11e13c5 100644
47136 --- a/drivers/isdn/gigaset/bas-gigaset.c
47137 +++ b/drivers/isdn/gigaset/bas-gigaset.c
47138 @@ -2565,22 +2565,22 @@ static int gigaset_post_reset(struct usb_interface *intf)
47139
47140
47141 static const struct gigaset_ops gigops = {
47142 - gigaset_write_cmd,
47143 - gigaset_write_room,
47144 - gigaset_chars_in_buffer,
47145 - gigaset_brkchars,
47146 - gigaset_init_bchannel,
47147 - gigaset_close_bchannel,
47148 - gigaset_initbcshw,
47149 - gigaset_freebcshw,
47150 - gigaset_reinitbcshw,
47151 - gigaset_initcshw,
47152 - gigaset_freecshw,
47153 - gigaset_set_modem_ctrl,
47154 - gigaset_baud_rate,
47155 - gigaset_set_line_ctrl,
47156 - gigaset_isoc_send_skb,
47157 - gigaset_isoc_input,
47158 + .write_cmd = gigaset_write_cmd,
47159 + .write_room = gigaset_write_room,
47160 + .chars_in_buffer = gigaset_chars_in_buffer,
47161 + .brkchars = gigaset_brkchars,
47162 + .init_bchannel = gigaset_init_bchannel,
47163 + .close_bchannel = gigaset_close_bchannel,
47164 + .initbcshw = gigaset_initbcshw,
47165 + .freebcshw = gigaset_freebcshw,
47166 + .reinitbcshw = gigaset_reinitbcshw,
47167 + .initcshw = gigaset_initcshw,
47168 + .freecshw = gigaset_freecshw,
47169 + .set_modem_ctrl = gigaset_set_modem_ctrl,
47170 + .baud_rate = gigaset_baud_rate,
47171 + .set_line_ctrl = gigaset_set_line_ctrl,
47172 + .send_skb = gigaset_isoc_send_skb,
47173 + .handle_input = gigaset_isoc_input,
47174 };
47175
47176 /* bas_gigaset_init
47177 diff --git a/drivers/isdn/gigaset/interface.c b/drivers/isdn/gigaset/interface.c
47178 index 600c79b..3752bab 100644
47179 --- a/drivers/isdn/gigaset/interface.c
47180 +++ b/drivers/isdn/gigaset/interface.c
47181 @@ -130,9 +130,9 @@ static int if_open(struct tty_struct *tty, struct file *filp)
47182 }
47183 tty->driver_data = cs;
47184
47185 - ++cs->port.count;
47186 + atomic_inc(&cs->port.count);
47187
47188 - if (cs->port.count == 1) {
47189 + if (atomic_read(&cs->port.count) == 1) {
47190 tty_port_tty_set(&cs->port, tty);
47191 cs->port.low_latency = 1;
47192 }
47193 @@ -156,9 +156,9 @@ static void if_close(struct tty_struct *tty, struct file *filp)
47194
47195 if (!cs->connected)
47196 gig_dbg(DEBUG_IF, "not connected"); /* nothing to do */
47197 - else if (!cs->port.count)
47198 + else if (!atomic_read(&cs->port.count))
47199 dev_warn(cs->dev, "%s: device not opened\n", __func__);
47200 - else if (!--cs->port.count)
47201 + else if (!atomic_dec_return(&cs->port.count))
47202 tty_port_tty_set(&cs->port, NULL);
47203
47204 mutex_unlock(&cs->mutex);
47205 diff --git a/drivers/isdn/gigaset/ser-gigaset.c b/drivers/isdn/gigaset/ser-gigaset.c
47206 index 2a506fe..fdbe969 100644
47207 --- a/drivers/isdn/gigaset/ser-gigaset.c
47208 +++ b/drivers/isdn/gigaset/ser-gigaset.c
47209 @@ -452,22 +452,22 @@ static int gigaset_set_line_ctrl(struct cardstate *cs, unsigned cflag)
47210 }
47211
47212 static const struct gigaset_ops ops = {
47213 - gigaset_write_cmd,
47214 - gigaset_write_room,
47215 - gigaset_chars_in_buffer,
47216 - gigaset_brkchars,
47217 - gigaset_init_bchannel,
47218 - gigaset_close_bchannel,
47219 - gigaset_initbcshw,
47220 - gigaset_freebcshw,
47221 - gigaset_reinitbcshw,
47222 - gigaset_initcshw,
47223 - gigaset_freecshw,
47224 - gigaset_set_modem_ctrl,
47225 - gigaset_baud_rate,
47226 - gigaset_set_line_ctrl,
47227 - gigaset_m10x_send_skb, /* asyncdata.c */
47228 - gigaset_m10x_input, /* asyncdata.c */
47229 + .write_cmd = gigaset_write_cmd,
47230 + .write_room = gigaset_write_room,
47231 + .chars_in_buffer = gigaset_chars_in_buffer,
47232 + .brkchars = gigaset_brkchars,
47233 + .init_bchannel = gigaset_init_bchannel,
47234 + .close_bchannel = gigaset_close_bchannel,
47235 + .initbcshw = gigaset_initbcshw,
47236 + .freebcshw = gigaset_freebcshw,
47237 + .reinitbcshw = gigaset_reinitbcshw,
47238 + .initcshw = gigaset_initcshw,
47239 + .freecshw = gigaset_freecshw,
47240 + .set_modem_ctrl = gigaset_set_modem_ctrl,
47241 + .baud_rate = gigaset_baud_rate,
47242 + .set_line_ctrl = gigaset_set_line_ctrl,
47243 + .send_skb = gigaset_m10x_send_skb, /* asyncdata.c */
47244 + .handle_input = gigaset_m10x_input, /* asyncdata.c */
47245 };
47246
47247
47248 diff --git a/drivers/isdn/gigaset/usb-gigaset.c b/drivers/isdn/gigaset/usb-gigaset.c
47249 index 5f306e2..5342f88 100644
47250 --- a/drivers/isdn/gigaset/usb-gigaset.c
47251 +++ b/drivers/isdn/gigaset/usb-gigaset.c
47252 @@ -543,7 +543,7 @@ static int gigaset_brkchars(struct cardstate *cs, const unsigned char buf[6])
47253 gigaset_dbg_buffer(DEBUG_USBREQ, "brkchars", 6, buf);
47254 memcpy(cs->hw.usb->bchars, buf, 6);
47255 return usb_control_msg(udev, usb_sndctrlpipe(udev, 0), 0x19, 0x41,
47256 - 0, 0, &buf, 6, 2000);
47257 + 0, 0, buf, 6, 2000);
47258 }
47259
47260 static void gigaset_freebcshw(struct bc_state *bcs)
47261 @@ -862,22 +862,22 @@ static int gigaset_pre_reset(struct usb_interface *intf)
47262 }
47263
47264 static const struct gigaset_ops ops = {
47265 - gigaset_write_cmd,
47266 - gigaset_write_room,
47267 - gigaset_chars_in_buffer,
47268 - gigaset_brkchars,
47269 - gigaset_init_bchannel,
47270 - gigaset_close_bchannel,
47271 - gigaset_initbcshw,
47272 - gigaset_freebcshw,
47273 - gigaset_reinitbcshw,
47274 - gigaset_initcshw,
47275 - gigaset_freecshw,
47276 - gigaset_set_modem_ctrl,
47277 - gigaset_baud_rate,
47278 - gigaset_set_line_ctrl,
47279 - gigaset_m10x_send_skb,
47280 - gigaset_m10x_input,
47281 + .write_cmd = gigaset_write_cmd,
47282 + .write_room = gigaset_write_room,
47283 + .chars_in_buffer = gigaset_chars_in_buffer,
47284 + .brkchars = gigaset_brkchars,
47285 + .init_bchannel = gigaset_init_bchannel,
47286 + .close_bchannel = gigaset_close_bchannel,
47287 + .initbcshw = gigaset_initbcshw,
47288 + .freebcshw = gigaset_freebcshw,
47289 + .reinitbcshw = gigaset_reinitbcshw,
47290 + .initcshw = gigaset_initcshw,
47291 + .freecshw = gigaset_freecshw,
47292 + .set_modem_ctrl = gigaset_set_modem_ctrl,
47293 + .baud_rate = gigaset_baud_rate,
47294 + .set_line_ctrl = gigaset_set_line_ctrl,
47295 + .send_skb = gigaset_m10x_send_skb,
47296 + .handle_input = gigaset_m10x_input,
47297 };
47298
47299 /*
47300 diff --git a/drivers/isdn/hardware/avm/b1.c b/drivers/isdn/hardware/avm/b1.c
47301 index 4d9b195..455075c 100644
47302 --- a/drivers/isdn/hardware/avm/b1.c
47303 +++ b/drivers/isdn/hardware/avm/b1.c
47304 @@ -176,7 +176,7 @@ int b1_load_t4file(avmcard *card, capiloaddatapart *t4file)
47305 }
47306 if (left) {
47307 if (t4file->user) {
47308 - if (copy_from_user(buf, dp, left))
47309 + if (left > sizeof buf || copy_from_user(buf, dp, left))
47310 return -EFAULT;
47311 } else {
47312 memcpy(buf, dp, left);
47313 @@ -224,7 +224,7 @@ int b1_load_config(avmcard *card, capiloaddatapart *config)
47314 }
47315 if (left) {
47316 if (config->user) {
47317 - if (copy_from_user(buf, dp, left))
47318 + if (left > sizeof buf || copy_from_user(buf, dp, left))
47319 return -EFAULT;
47320 } else {
47321 memcpy(buf, dp, left);
47322 diff --git a/drivers/isdn/i4l/isdn_common.c b/drivers/isdn/i4l/isdn_common.c
47323 index 9b856e1..fa03c92 100644
47324 --- a/drivers/isdn/i4l/isdn_common.c
47325 +++ b/drivers/isdn/i4l/isdn_common.c
47326 @@ -1654,6 +1654,8 @@ isdn_ioctl(struct file *file, uint cmd, ulong arg)
47327 } else
47328 return -EINVAL;
47329 case IIOCDBGVAR:
47330 + if (!capable(CAP_SYS_RAWIO))
47331 + return -EPERM;
47332 if (arg) {
47333 if (copy_to_user(argp, &dev, sizeof(ulong)))
47334 return -EFAULT;
47335 diff --git a/drivers/isdn/i4l/isdn_concap.c b/drivers/isdn/i4l/isdn_concap.c
47336 index 91d5730..336523e 100644
47337 --- a/drivers/isdn/i4l/isdn_concap.c
47338 +++ b/drivers/isdn/i4l/isdn_concap.c
47339 @@ -80,9 +80,9 @@ static int isdn_concap_dl_disconn_req(struct concap_proto *concap)
47340 }
47341
47342 struct concap_device_ops isdn_concap_reliable_dl_dops = {
47343 - &isdn_concap_dl_data_req,
47344 - &isdn_concap_dl_connect_req,
47345 - &isdn_concap_dl_disconn_req
47346 + .data_req = &isdn_concap_dl_data_req,
47347 + .connect_req = &isdn_concap_dl_connect_req,
47348 + .disconn_req = &isdn_concap_dl_disconn_req
47349 };
47350
47351 /* The following should better go into a dedicated source file such that
47352 diff --git a/drivers/isdn/i4l/isdn_tty.c b/drivers/isdn/i4l/isdn_tty.c
47353 index 2175225..b875cac 100644
47354 --- a/drivers/isdn/i4l/isdn_tty.c
47355 +++ b/drivers/isdn/i4l/isdn_tty.c
47356 @@ -1503,9 +1503,9 @@ isdn_tty_open(struct tty_struct *tty, struct file *filp)
47357
47358 #ifdef ISDN_DEBUG_MODEM_OPEN
47359 printk(KERN_DEBUG "isdn_tty_open %s, count = %d\n", tty->name,
47360 - port->count);
47361 + atomic_read(&port->count));
47362 #endif
47363 - port->count++;
47364 + atomic_inc(&port->count);
47365 port->tty = tty;
47366 /*
47367 * Start up serial port
47368 @@ -1549,7 +1549,7 @@ isdn_tty_close(struct tty_struct *tty, struct file *filp)
47369 #endif
47370 return;
47371 }
47372 - if ((tty->count == 1) && (port->count != 1)) {
47373 + if ((tty->count == 1) && (atomic_read(&port->count) != 1)) {
47374 /*
47375 * Uh, oh. tty->count is 1, which means that the tty
47376 * structure will be freed. Info->count should always
47377 @@ -1558,15 +1558,15 @@ isdn_tty_close(struct tty_struct *tty, struct file *filp)
47378 * serial port won't be shutdown.
47379 */
47380 printk(KERN_ERR "isdn_tty_close: bad port count; tty->count is 1, "
47381 - "info->count is %d\n", port->count);
47382 - port->count = 1;
47383 + "info->count is %d\n", atomic_read(&port->count));
47384 + atomic_set(&port->count, 1);
47385 }
47386 - if (--port->count < 0) {
47387 + if (atomic_dec_return(&port->count) < 0) {
47388 printk(KERN_ERR "isdn_tty_close: bad port count for ttyi%d: %d\n",
47389 - info->line, port->count);
47390 - port->count = 0;
47391 + info->line, atomic_read(&port->count));
47392 + atomic_set(&port->count, 0);
47393 }
47394 - if (port->count) {
47395 + if (atomic_read(&port->count)) {
47396 #ifdef ISDN_DEBUG_MODEM_OPEN
47397 printk(KERN_DEBUG "isdn_tty_close after info->count != 0\n");
47398 #endif
47399 @@ -1620,7 +1620,7 @@ isdn_tty_hangup(struct tty_struct *tty)
47400 if (isdn_tty_paranoia_check(info, tty->name, "isdn_tty_hangup"))
47401 return;
47402 isdn_tty_shutdown(info);
47403 - port->count = 0;
47404 + atomic_set(&port->count, 0);
47405 port->flags &= ~ASYNC_NORMAL_ACTIVE;
47406 port->tty = NULL;
47407 wake_up_interruptible(&port->open_wait);
47408 @@ -1965,7 +1965,7 @@ isdn_tty_find_icall(int di, int ch, setup_parm *setup)
47409 for (i = 0; i < ISDN_MAX_CHANNELS; i++) {
47410 modem_info *info = &dev->mdm.info[i];
47411
47412 - if (info->port.count == 0)
47413 + if (atomic_read(&info->port.count) == 0)
47414 continue;
47415 if ((info->emu.mdmreg[REG_SI1] & si2bit[si1]) && /* SI1 is matching */
47416 (info->emu.mdmreg[REG_SI2] == si2)) { /* SI2 is matching */
47417 diff --git a/drivers/isdn/i4l/isdn_x25iface.c b/drivers/isdn/i4l/isdn_x25iface.c
47418 index e2d4e58..40cd045 100644
47419 --- a/drivers/isdn/i4l/isdn_x25iface.c
47420 +++ b/drivers/isdn/i4l/isdn_x25iface.c
47421 @@ -53,14 +53,14 @@ static int isdn_x25iface_disconn_ind(struct concap_proto *);
47422
47423
47424 static struct concap_proto_ops ix25_pops = {
47425 - &isdn_x25iface_proto_new,
47426 - &isdn_x25iface_proto_del,
47427 - &isdn_x25iface_proto_restart,
47428 - &isdn_x25iface_proto_close,
47429 - &isdn_x25iface_xmit,
47430 - &isdn_x25iface_receive,
47431 - &isdn_x25iface_connect_ind,
47432 - &isdn_x25iface_disconn_ind
47433 + .proto_new = &isdn_x25iface_proto_new,
47434 + .proto_del = &isdn_x25iface_proto_del,
47435 + .restart = &isdn_x25iface_proto_restart,
47436 + .close = &isdn_x25iface_proto_close,
47437 + .encap_and_xmit = &isdn_x25iface_xmit,
47438 + .data_ind = &isdn_x25iface_receive,
47439 + .connect_ind = &isdn_x25iface_connect_ind,
47440 + .disconn_ind = &isdn_x25iface_disconn_ind
47441 };
47442
47443 /* error message helper function */
47444 diff --git a/drivers/isdn/icn/icn.c b/drivers/isdn/icn/icn.c
47445 index 358a574..b4987ea 100644
47446 --- a/drivers/isdn/icn/icn.c
47447 +++ b/drivers/isdn/icn/icn.c
47448 @@ -1045,7 +1045,7 @@ icn_writecmd(const u_char *buf, int len, int user, icn_card *card)
47449 if (count > len)
47450 count = len;
47451 if (user) {
47452 - if (copy_from_user(msg, buf, count))
47453 + if (count > sizeof msg || copy_from_user(msg, buf, count))
47454 return -EFAULT;
47455 } else
47456 memcpy(msg, buf, count);
47457 diff --git a/drivers/isdn/mISDN/dsp_cmx.c b/drivers/isdn/mISDN/dsp_cmx.c
47458 index 8e3aa00..65200ac 100644
47459 --- a/drivers/isdn/mISDN/dsp_cmx.c
47460 +++ b/drivers/isdn/mISDN/dsp_cmx.c
47461 @@ -1625,7 +1625,7 @@ unsigned long dsp_spl_jiffies; /* calculate the next time to fire */
47462 static u16 dsp_count; /* last sample count */
47463 static int dsp_count_valid; /* if we have last sample count */
47464
47465 -void
47466 +void __intentional_overflow(-1)
47467 dsp_cmx_send(void *arg)
47468 {
47469 struct dsp_conf *conf;
47470 diff --git a/drivers/lguest/core.c b/drivers/lguest/core.c
47471 index 312ffd3..d060510 100644
47472 --- a/drivers/lguest/core.c
47473 +++ b/drivers/lguest/core.c
47474 @@ -96,9 +96,17 @@ static __init int map_switcher(void)
47475 * The end address needs +1 because __get_vm_area allocates an
47476 * extra guard page, so we need space for that.
47477 */
47478 +
47479 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
47480 + switcher_vma = __get_vm_area(TOTAL_SWITCHER_PAGES * PAGE_SIZE,
47481 + VM_ALLOC | VM_KERNEXEC, switcher_addr, switcher_addr
47482 + + (TOTAL_SWITCHER_PAGES+1) * PAGE_SIZE);
47483 +#else
47484 switcher_vma = __get_vm_area(TOTAL_SWITCHER_PAGES * PAGE_SIZE,
47485 VM_ALLOC, switcher_addr, switcher_addr
47486 + (TOTAL_SWITCHER_PAGES+1) * PAGE_SIZE);
47487 +#endif
47488 +
47489 if (!switcher_vma) {
47490 err = -ENOMEM;
47491 printk("lguest: could not map switcher pages high\n");
47492 @@ -121,7 +129,7 @@ static __init int map_switcher(void)
47493 * Now the Switcher is mapped at the right address, we can't fail!
47494 * Copy in the compiled-in Switcher code (from x86/switcher_32.S).
47495 */
47496 - memcpy(switcher_vma->addr, start_switcher_text,
47497 + memcpy(switcher_vma->addr, (void *)ktla_ktva((unsigned long)start_switcher_text),
47498 end_switcher_text - start_switcher_text);
47499
47500 printk(KERN_INFO "lguest: mapped switcher at %p\n",
47501 diff --git a/drivers/lguest/page_tables.c b/drivers/lguest/page_tables.c
47502 index e3abebc9..6a35328 100644
47503 --- a/drivers/lguest/page_tables.c
47504 +++ b/drivers/lguest/page_tables.c
47505 @@ -585,7 +585,7 @@ void pin_page(struct lg_cpu *cpu, unsigned long vaddr)
47506 /*:*/
47507
47508 #ifdef CONFIG_X86_PAE
47509 -static void release_pmd(pmd_t *spmd)
47510 +static void __intentional_overflow(-1) release_pmd(pmd_t *spmd)
47511 {
47512 /* If the entry's not present, there's nothing to release. */
47513 if (pmd_flags(*spmd) & _PAGE_PRESENT) {
47514 diff --git a/drivers/lguest/x86/core.c b/drivers/lguest/x86/core.c
47515 index 6a4cd77..c9e2d9f 100644
47516 --- a/drivers/lguest/x86/core.c
47517 +++ b/drivers/lguest/x86/core.c
47518 @@ -60,7 +60,7 @@ static struct {
47519 /* Offset from where switcher.S was compiled to where we've copied it */
47520 static unsigned long switcher_offset(void)
47521 {
47522 - return switcher_addr - (unsigned long)start_switcher_text;
47523 + return switcher_addr - ktla_ktva((unsigned long)start_switcher_text);
47524 }
47525
47526 /* This cpu's struct lguest_pages (after the Switcher text page) */
47527 @@ -100,7 +100,13 @@ static void copy_in_guest_info(struct lg_cpu *cpu, struct lguest_pages *pages)
47528 * These copies are pretty cheap, so we do them unconditionally: */
47529 /* Save the current Host top-level page directory.
47530 */
47531 +
47532 +#ifdef CONFIG_PAX_PER_CPU_PGD
47533 + pages->state.host_cr3 = read_cr3();
47534 +#else
47535 pages->state.host_cr3 = __pa(current->mm->pgd);
47536 +#endif
47537 +
47538 /*
47539 * Set up the Guest's page tables to see this CPU's pages (and no
47540 * other CPU's pages).
47541 @@ -494,7 +500,7 @@ void __init lguest_arch_host_init(void)
47542 * compiled-in switcher code and the high-mapped copy we just made.
47543 */
47544 for (i = 0; i < IDT_ENTRIES; i++)
47545 - default_idt_entries[i] += switcher_offset();
47546 + default_idt_entries[i] = ktla_ktva(default_idt_entries[i]) + switcher_offset();
47547
47548 /*
47549 * Set up the Switcher's per-cpu areas.
47550 @@ -577,7 +583,7 @@ void __init lguest_arch_host_init(void)
47551 * it will be undisturbed when we switch. To change %cs and jump we
47552 * need this structure to feed to Intel's "lcall" instruction.
47553 */
47554 - lguest_entry.offset = (long)switch_to_guest + switcher_offset();
47555 + lguest_entry.offset = ktla_ktva((unsigned long)switch_to_guest) + switcher_offset();
47556 lguest_entry.segment = LGUEST_CS;
47557
47558 /*
47559 diff --git a/drivers/lguest/x86/switcher_32.S b/drivers/lguest/x86/switcher_32.S
47560 index 40634b0..4f5855e 100644
47561 --- a/drivers/lguest/x86/switcher_32.S
47562 +++ b/drivers/lguest/x86/switcher_32.S
47563 @@ -87,6 +87,7 @@
47564 #include <asm/page.h>
47565 #include <asm/segment.h>
47566 #include <asm/lguest.h>
47567 +#include <asm/processor-flags.h>
47568
47569 // We mark the start of the code to copy
47570 // It's placed in .text tho it's never run here
47571 @@ -149,6 +150,13 @@ ENTRY(switch_to_guest)
47572 // Changes type when we load it: damn Intel!
47573 // For after we switch over our page tables
47574 // That entry will be read-only: we'd crash.
47575 +
47576 +#ifdef CONFIG_PAX_KERNEXEC
47577 + mov %cr0, %edx
47578 + xor $X86_CR0_WP, %edx
47579 + mov %edx, %cr0
47580 +#endif
47581 +
47582 movl $(GDT_ENTRY_TSS*8), %edx
47583 ltr %dx
47584
47585 @@ -157,9 +165,15 @@ ENTRY(switch_to_guest)
47586 // Let's clear it again for our return.
47587 // The GDT descriptor of the Host
47588 // Points to the table after two "size" bytes
47589 - movl (LGUEST_PAGES_host_gdt_desc+2)(%eax), %edx
47590 + movl (LGUEST_PAGES_host_gdt_desc+2)(%eax), %eax
47591 // Clear "used" from type field (byte 5, bit 2)
47592 - andb $0xFD, (GDT_ENTRY_TSS*8 + 5)(%edx)
47593 + andb $0xFD, (GDT_ENTRY_TSS*8 + 5)(%eax)
47594 +
47595 +#ifdef CONFIG_PAX_KERNEXEC
47596 + mov %cr0, %eax
47597 + xor $X86_CR0_WP, %eax
47598 + mov %eax, %cr0
47599 +#endif
47600
47601 // Once our page table's switched, the Guest is live!
47602 // The Host fades as we run this final step.
47603 @@ -295,13 +309,12 @@ deliver_to_host:
47604 // I consulted gcc, and it gave
47605 // These instructions, which I gladly credit:
47606 leal (%edx,%ebx,8), %eax
47607 - movzwl (%eax),%edx
47608 - movl 4(%eax), %eax
47609 - xorw %ax, %ax
47610 - orl %eax, %edx
47611 + movl 4(%eax), %edx
47612 + movw (%eax), %dx
47613 // Now the address of the handler's in %edx
47614 // We call it now: its "iret" drops us home.
47615 - jmp *%edx
47616 + ljmp $__KERNEL_CS, $1f
47617 +1: jmp *%edx
47618
47619 // Every interrupt can come to us here
47620 // But we must truly tell each apart.
47621 diff --git a/drivers/lightnvm/rrpc.c b/drivers/lightnvm/rrpc.c
47622 index 134e4fa..243bffe 100644
47623 --- a/drivers/lightnvm/rrpc.c
47624 +++ b/drivers/lightnvm/rrpc.c
47625 @@ -218,7 +218,7 @@ static void rrpc_put_blks(struct rrpc *rrpc)
47626
47627 static struct rrpc_lun *get_next_lun(struct rrpc *rrpc)
47628 {
47629 - int next = atomic_inc_return(&rrpc->next_lun);
47630 + int next = atomic_inc_return_unchecked(&rrpc->next_lun);
47631
47632 return &rrpc->luns[next % rrpc->nr_luns];
47633 }
47634 @@ -1286,7 +1286,7 @@ static void *rrpc_init(struct nvm_dev *dev, struct gendisk *tdisk,
47635 rrpc->nr_luns = lun_end - lun_begin + 1;
47636
47637 /* simple round-robin strategy */
47638 - atomic_set(&rrpc->next_lun, -1);
47639 + atomic_set_unchecked(&rrpc->next_lun, -1);
47640
47641 ret = rrpc_luns_init(rrpc, lun_begin, lun_end);
47642 if (ret) {
47643 diff --git a/drivers/lightnvm/rrpc.h b/drivers/lightnvm/rrpc.h
47644 index a9696a0..75d0008 100644
47645 --- a/drivers/lightnvm/rrpc.h
47646 +++ b/drivers/lightnvm/rrpc.h
47647 @@ -99,7 +99,7 @@ struct rrpc {
47648 /* Write strategy variables. Move these into each for structure for each
47649 * strategy
47650 */
47651 - atomic_t next_lun; /* Whenever a page is written, this is updated
47652 + atomic_unchecked_t next_lun; /* Whenever a page is written, this is updated
47653 * to point to the next write lun
47654 */
47655
47656 diff --git a/drivers/md/bcache/Kconfig b/drivers/md/bcache/Kconfig
47657 index 4d20088..de60cb2 100644
47658 --- a/drivers/md/bcache/Kconfig
47659 +++ b/drivers/md/bcache/Kconfig
47660 @@ -20,6 +20,7 @@ config BCACHE_CLOSURES_DEBUG
47661 bool "Debug closures"
47662 depends on BCACHE
47663 select DEBUG_FS
47664 + depends on !GRKERNSEC_KMEM
47665 ---help---
47666 Keeps all active closures in a linked list and provides a debugfs
47667 interface to list them, which makes it possible to see asynchronous
47668 diff --git a/drivers/md/bcache/alloc.c b/drivers/md/bcache/alloc.c
47669 index 8eeab72..292b65d 100644
47670 --- a/drivers/md/bcache/alloc.c
47671 +++ b/drivers/md/bcache/alloc.c
47672 @@ -633,7 +633,7 @@ bool bch_alloc_sectors(struct cache_set *c, struct bkey *k, unsigned sectors,
47673 for (i = 0; i < KEY_PTRS(&b->key); i++) {
47674 SET_PTR_OFFSET(&b->key, i, PTR_OFFSET(&b->key, i) + sectors);
47675
47676 - atomic_long_add(sectors,
47677 + atomic_long_add_unchecked(sectors,
47678 &PTR_CACHE(c, &b->key, i)->sectors_written);
47679 }
47680
47681 diff --git a/drivers/md/bcache/bcache.h b/drivers/md/bcache/bcache.h
47682 index 6b420a5..d5acb8f 100644
47683 --- a/drivers/md/bcache/bcache.h
47684 +++ b/drivers/md/bcache/bcache.h
47685 @@ -433,12 +433,12 @@ struct cache {
47686
47687 /* The rest of this all shows up in sysfs */
47688 #define IO_ERROR_SHIFT 20
47689 - atomic_t io_errors;
47690 - atomic_t io_count;
47691 + atomic_unchecked_t io_errors;
47692 + atomic_unchecked_t io_count;
47693
47694 - atomic_long_t meta_sectors_written;
47695 - atomic_long_t btree_sectors_written;
47696 - atomic_long_t sectors_written;
47697 + atomic_long_unchecked_t meta_sectors_written;
47698 + atomic_long_unchecked_t btree_sectors_written;
47699 + atomic_long_unchecked_t sectors_written;
47700 };
47701
47702 struct gc_stat {
47703 diff --git a/drivers/md/bcache/btree.c b/drivers/md/bcache/btree.c
47704 index 22b9e34..ac456ec 100644
47705 --- a/drivers/md/bcache/btree.c
47706 +++ b/drivers/md/bcache/btree.c
47707 @@ -468,7 +468,7 @@ void __bch_btree_node_write(struct btree *b, struct closure *parent)
47708
47709 do_btree_node_write(b);
47710
47711 - atomic_long_add(set_blocks(i, block_bytes(b->c)) * b->c->sb.block_size,
47712 + atomic_long_add_unchecked(set_blocks(i, block_bytes(b->c)) * b->c->sb.block_size,
47713 &PTR_CACHE(b->c, &b->key, 0)->btree_sectors_written);
47714
47715 b->written += set_blocks(i, block_bytes(b->c));
47716 diff --git a/drivers/md/bcache/closure.h b/drivers/md/bcache/closure.h
47717 index 782cc2c..4fdd593 100644
47718 --- a/drivers/md/bcache/closure.h
47719 +++ b/drivers/md/bcache/closure.h
47720 @@ -238,7 +238,7 @@ static inline void closure_set_stopped(struct closure *cl)
47721 static inline void set_closure_fn(struct closure *cl, closure_fn *fn,
47722 struct workqueue_struct *wq)
47723 {
47724 - BUG_ON(object_is_on_stack(cl));
47725 + BUG_ON(object_starts_on_stack(cl));
47726 closure_set_ip(cl);
47727 cl->fn = fn;
47728 cl->wq = wq;
47729 diff --git a/drivers/md/bcache/io.c b/drivers/md/bcache/io.c
47730 index 86a0bb8..0832b32 100644
47731 --- a/drivers/md/bcache/io.c
47732 +++ b/drivers/md/bcache/io.c
47733 @@ -61,7 +61,7 @@ void bch_count_io_errors(struct cache *ca, int error, const char *m)
47734 */
47735
47736 if (ca->set->error_decay) {
47737 - unsigned count = atomic_inc_return(&ca->io_count);
47738 + unsigned count = atomic_inc_return_unchecked(&ca->io_count);
47739
47740 while (count > ca->set->error_decay) {
47741 unsigned errors;
47742 @@ -73,16 +73,16 @@ void bch_count_io_errors(struct cache *ca, int error, const char *m)
47743 * succesfully do so, we rescale the errors once:
47744 */
47745
47746 - count = atomic_cmpxchg(&ca->io_count, old, new);
47747 + count = atomic_cmpxchg_unchecked(&ca->io_count, old, new);
47748
47749 if (count == old) {
47750 count = new;
47751
47752 - errors = atomic_read(&ca->io_errors);
47753 + errors = atomic_read_unchecked(&ca->io_errors);
47754 do {
47755 old = errors;
47756 new = ((uint64_t) errors * 127) / 128;
47757 - errors = atomic_cmpxchg(&ca->io_errors,
47758 + errors = atomic_cmpxchg_unchecked(&ca->io_errors,
47759 old, new);
47760 } while (old != errors);
47761 }
47762 @@ -91,7 +91,7 @@ void bch_count_io_errors(struct cache *ca, int error, const char *m)
47763
47764 if (error) {
47765 char buf[BDEVNAME_SIZE];
47766 - unsigned errors = atomic_add_return(1 << IO_ERROR_SHIFT,
47767 + unsigned errors = atomic_add_return_unchecked(1 << IO_ERROR_SHIFT,
47768 &ca->io_errors);
47769 errors >>= IO_ERROR_SHIFT;
47770
47771 diff --git a/drivers/md/bcache/journal.c b/drivers/md/bcache/journal.c
47772 index 29eba72..348efc9 100644
47773 --- a/drivers/md/bcache/journal.c
47774 +++ b/drivers/md/bcache/journal.c
47775 @@ -621,7 +621,7 @@ static void journal_write_unlocked(struct closure *cl)
47776 ca = PTR_CACHE(c, k, i);
47777 bio = &ca->journal.bio;
47778
47779 - atomic_long_add(sectors, &ca->meta_sectors_written);
47780 + atomic_long_add_unchecked(sectors, &ca->meta_sectors_written);
47781
47782 bio_reset(bio);
47783 bio->bi_iter.bi_sector = PTR_OFFSET(k, i);
47784 diff --git a/drivers/md/bcache/stats.c b/drivers/md/bcache/stats.c
47785 index 0ca072c..5e6e5c3 100644
47786 --- a/drivers/md/bcache/stats.c
47787 +++ b/drivers/md/bcache/stats.c
47788 @@ -120,7 +120,7 @@ void bch_cache_accounting_destroy(struct cache_accounting *acc)
47789 kobject_put(&acc->hour.kobj);
47790 kobject_put(&acc->day.kobj);
47791
47792 - atomic_set(&acc->closing, 1);
47793 + atomic_set_unchecked(&acc->closing, 1);
47794 if (del_timer_sync(&acc->timer))
47795 closure_return(&acc->cl);
47796 }
47797 @@ -151,7 +151,7 @@ static void scale_accounting(unsigned long data)
47798 struct cache_accounting *acc = (struct cache_accounting *) data;
47799
47800 #define move_stat(name) do { \
47801 - unsigned t = atomic_xchg(&acc->collector.name, 0); \
47802 + unsigned t = atomic_xchg_unchecked(&acc->collector.name, 0); \
47803 t <<= 16; \
47804 acc->five_minute.name += t; \
47805 acc->hour.name += t; \
47806 @@ -174,7 +174,7 @@ static void scale_accounting(unsigned long data)
47807
47808 acc->timer.expires += accounting_delay;
47809
47810 - if (!atomic_read(&acc->closing))
47811 + if (!atomic_read_unchecked(&acc->closing))
47812 add_timer(&acc->timer);
47813 else
47814 closure_return(&acc->cl);
47815 @@ -185,14 +185,14 @@ static void mark_cache_stats(struct cache_stat_collector *stats,
47816 {
47817 if (!bypass)
47818 if (hit)
47819 - atomic_inc(&stats->cache_hits);
47820 + atomic_inc_unchecked(&stats->cache_hits);
47821 else
47822 - atomic_inc(&stats->cache_misses);
47823 + atomic_inc_unchecked(&stats->cache_misses);
47824 else
47825 if (hit)
47826 - atomic_inc(&stats->cache_bypass_hits);
47827 + atomic_inc_unchecked(&stats->cache_bypass_hits);
47828 else
47829 - atomic_inc(&stats->cache_bypass_misses);
47830 + atomic_inc_unchecked(&stats->cache_bypass_misses);
47831 }
47832
47833 void bch_mark_cache_accounting(struct cache_set *c, struct bcache_device *d,
47834 @@ -206,22 +206,22 @@ void bch_mark_cache_accounting(struct cache_set *c, struct bcache_device *d,
47835 void bch_mark_cache_readahead(struct cache_set *c, struct bcache_device *d)
47836 {
47837 struct cached_dev *dc = container_of(d, struct cached_dev, disk);
47838 - atomic_inc(&dc->accounting.collector.cache_readaheads);
47839 - atomic_inc(&c->accounting.collector.cache_readaheads);
47840 + atomic_inc_unchecked(&dc->accounting.collector.cache_readaheads);
47841 + atomic_inc_unchecked(&c->accounting.collector.cache_readaheads);
47842 }
47843
47844 void bch_mark_cache_miss_collision(struct cache_set *c, struct bcache_device *d)
47845 {
47846 struct cached_dev *dc = container_of(d, struct cached_dev, disk);
47847 - atomic_inc(&dc->accounting.collector.cache_miss_collisions);
47848 - atomic_inc(&c->accounting.collector.cache_miss_collisions);
47849 + atomic_inc_unchecked(&dc->accounting.collector.cache_miss_collisions);
47850 + atomic_inc_unchecked(&c->accounting.collector.cache_miss_collisions);
47851 }
47852
47853 void bch_mark_sectors_bypassed(struct cache_set *c, struct cached_dev *dc,
47854 int sectors)
47855 {
47856 - atomic_add(sectors, &dc->accounting.collector.sectors_bypassed);
47857 - atomic_add(sectors, &c->accounting.collector.sectors_bypassed);
47858 + atomic_add_unchecked(sectors, &dc->accounting.collector.sectors_bypassed);
47859 + atomic_add_unchecked(sectors, &c->accounting.collector.sectors_bypassed);
47860 }
47861
47862 void bch_cache_accounting_init(struct cache_accounting *acc,
47863 diff --git a/drivers/md/bcache/stats.h b/drivers/md/bcache/stats.h
47864 index adbff14..018c2d2 100644
47865 --- a/drivers/md/bcache/stats.h
47866 +++ b/drivers/md/bcache/stats.h
47867 @@ -2,13 +2,13 @@
47868 #define _BCACHE_STATS_H_
47869
47870 struct cache_stat_collector {
47871 - atomic_t cache_hits;
47872 - atomic_t cache_misses;
47873 - atomic_t cache_bypass_hits;
47874 - atomic_t cache_bypass_misses;
47875 - atomic_t cache_readaheads;
47876 - atomic_t cache_miss_collisions;
47877 - atomic_t sectors_bypassed;
47878 + atomic_unchecked_t cache_hits;
47879 + atomic_unchecked_t cache_misses;
47880 + atomic_unchecked_t cache_bypass_hits;
47881 + atomic_unchecked_t cache_bypass_misses;
47882 + atomic_unchecked_t cache_readaheads;
47883 + atomic_unchecked_t cache_miss_collisions;
47884 + atomic_unchecked_t sectors_bypassed;
47885 };
47886
47887 struct cache_stats {
47888 @@ -28,7 +28,7 @@ struct cache_stats {
47889 struct cache_accounting {
47890 struct closure cl;
47891 struct timer_list timer;
47892 - atomic_t closing;
47893 + atomic_unchecked_t closing;
47894
47895 struct cache_stat_collector collector;
47896
47897 diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
47898 index 8d0ead9..2b81525 100644
47899 --- a/drivers/md/bcache/super.c
47900 +++ b/drivers/md/bcache/super.c
47901 @@ -530,7 +530,7 @@ void bch_prio_write(struct cache *ca)
47902
47903 ca->disk_buckets->seq++;
47904
47905 - atomic_long_add(ca->sb.bucket_size * prio_buckets(ca),
47906 + atomic_long_add_unchecked(ca->sb.bucket_size * prio_buckets(ca),
47907 &ca->meta_sectors_written);
47908
47909 //pr_debug("free %zu, free_inc %zu, unused %zu", fifo_used(&ca->free),
47910 diff --git a/drivers/md/bcache/sysfs.c b/drivers/md/bcache/sysfs.c
47911 index b3ff57d..b2e30fb 100644
47912 --- a/drivers/md/bcache/sysfs.c
47913 +++ b/drivers/md/bcache/sysfs.c
47914 @@ -739,15 +739,15 @@ SHOW(__bch_cache)
47915 sysfs_hprint(block_size, block_bytes(ca));
47916 sysfs_print(nbuckets, ca->sb.nbuckets);
47917 sysfs_print(discard, ca->discard);
47918 - sysfs_hprint(written, atomic_long_read(&ca->sectors_written) << 9);
47919 + sysfs_hprint(written, atomic_long_read_unchecked(&ca->sectors_written) << 9);
47920 sysfs_hprint(btree_written,
47921 - atomic_long_read(&ca->btree_sectors_written) << 9);
47922 + atomic_long_read_unchecked(&ca->btree_sectors_written) << 9);
47923 sysfs_hprint(metadata_written,
47924 - (atomic_long_read(&ca->meta_sectors_written) +
47925 - atomic_long_read(&ca->btree_sectors_written)) << 9);
47926 + (atomic_long_read_unchecked(&ca->meta_sectors_written) +
47927 + atomic_long_read_unchecked(&ca->btree_sectors_written)) << 9);
47928
47929 sysfs_print(io_errors,
47930 - atomic_read(&ca->io_errors) >> IO_ERROR_SHIFT);
47931 + atomic_read_unchecked(&ca->io_errors) >> IO_ERROR_SHIFT);
47932
47933 if (attr == &sysfs_cache_replacement_policy)
47934 return bch_snprint_string_list(buf, PAGE_SIZE,
47935 @@ -870,11 +870,11 @@ STORE(__bch_cache)
47936 }
47937
47938 if (attr == &sysfs_clear_stats) {
47939 - atomic_long_set(&ca->sectors_written, 0);
47940 - atomic_long_set(&ca->btree_sectors_written, 0);
47941 - atomic_long_set(&ca->meta_sectors_written, 0);
47942 - atomic_set(&ca->io_count, 0);
47943 - atomic_set(&ca->io_errors, 0);
47944 + atomic_long_set_unchecked(&ca->sectors_written, 0);
47945 + atomic_long_set_unchecked(&ca->btree_sectors_written, 0);
47946 + atomic_long_set_unchecked(&ca->meta_sectors_written, 0);
47947 + atomic_set_unchecked(&ca->io_count, 0);
47948 + atomic_set_unchecked(&ca->io_errors, 0);
47949 }
47950
47951 return size;
47952 diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
47953 index 4f22e91..5b13fde 100644
47954 --- a/drivers/md/bitmap.c
47955 +++ b/drivers/md/bitmap.c
47956 @@ -1931,7 +1931,7 @@ void bitmap_status(struct seq_file *seq, struct bitmap *bitmap)
47957 chunk_kb ? "KB" : "B");
47958 if (bitmap->storage.file) {
47959 seq_printf(seq, ", file: ");
47960 - seq_file_path(seq, bitmap->storage.file, " \t\n");
47961 + seq_file_path(seq, bitmap->storage.file, " \t\n\\");
47962 }
47963
47964 seq_printf(seq, "\n");
47965 diff --git a/drivers/md/dm-cache-target.c b/drivers/md/dm-cache-target.c
47966 index 2fd4c82..199bd5d 100644
47967 --- a/drivers/md/dm-cache-target.c
47968 +++ b/drivers/md/dm-cache-target.c
47969 @@ -185,16 +185,16 @@ struct cache_features {
47970 };
47971
47972 struct cache_stats {
47973 - atomic_t read_hit;
47974 - atomic_t read_miss;
47975 - atomic_t write_hit;
47976 - atomic_t write_miss;
47977 - atomic_t demotion;
47978 - atomic_t promotion;
47979 - atomic_t copies_avoided;
47980 - atomic_t cache_cell_clash;
47981 - atomic_t commit_count;
47982 - atomic_t discard_count;
47983 + atomic_unchecked_t read_hit;
47984 + atomic_unchecked_t read_miss;
47985 + atomic_unchecked_t write_hit;
47986 + atomic_unchecked_t write_miss;
47987 + atomic_unchecked_t demotion;
47988 + atomic_unchecked_t promotion;
47989 + atomic_unchecked_t copies_avoided;
47990 + atomic_unchecked_t cache_cell_clash;
47991 + atomic_unchecked_t commit_count;
47992 + atomic_unchecked_t discard_count;
47993 };
47994
47995 /*
47996 @@ -273,8 +273,8 @@ struct cache {
47997 atomic_t nr_io_migrations;
47998
47999 wait_queue_head_t quiescing_wait;
48000 - atomic_t quiescing;
48001 - atomic_t quiescing_ack;
48002 + atomic_unchecked_t quiescing;
48003 + atomic_unchecked_t quiescing_ack;
48004
48005 /*
48006 * cache_size entries, dirty if set
48007 @@ -640,7 +640,7 @@ static void set_discard(struct cache *cache, dm_dblock_t b)
48008 unsigned long flags;
48009
48010 BUG_ON(from_dblock(b) >= from_dblock(cache->discard_nr_blocks));
48011 - atomic_inc(&cache->stats.discard_count);
48012 + atomic_inc_unchecked(&cache->stats.discard_count);
48013
48014 spin_lock_irqsave(&cache->lock, flags);
48015 set_bit(from_dblock(b), cache->discard_bitset);
48016 @@ -688,10 +688,10 @@ static void load_stats(struct cache *cache)
48017 struct dm_cache_statistics stats;
48018
48019 dm_cache_metadata_get_stats(cache->cmd, &stats);
48020 - atomic_set(&cache->stats.read_hit, stats.read_hits);
48021 - atomic_set(&cache->stats.read_miss, stats.read_misses);
48022 - atomic_set(&cache->stats.write_hit, stats.write_hits);
48023 - atomic_set(&cache->stats.write_miss, stats.write_misses);
48024 + atomic_set_unchecked(&cache->stats.read_hit, stats.read_hits);
48025 + atomic_set_unchecked(&cache->stats.read_miss, stats.read_misses);
48026 + atomic_set_unchecked(&cache->stats.write_hit, stats.write_hits);
48027 + atomic_set_unchecked(&cache->stats.write_miss, stats.write_misses);
48028 }
48029
48030 static void save_stats(struct cache *cache)
48031 @@ -701,10 +701,10 @@ static void save_stats(struct cache *cache)
48032 if (get_cache_mode(cache) >= CM_READ_ONLY)
48033 return;
48034
48035 - stats.read_hits = atomic_read(&cache->stats.read_hit);
48036 - stats.read_misses = atomic_read(&cache->stats.read_miss);
48037 - stats.write_hits = atomic_read(&cache->stats.write_hit);
48038 - stats.write_misses = atomic_read(&cache->stats.write_miss);
48039 + stats.read_hits = atomic_read_unchecked(&cache->stats.read_hit);
48040 + stats.read_misses = atomic_read_unchecked(&cache->stats.read_miss);
48041 + stats.write_hits = atomic_read_unchecked(&cache->stats.write_hit);
48042 + stats.write_misses = atomic_read_unchecked(&cache->stats.write_miss);
48043
48044 dm_cache_metadata_set_stats(cache->cmd, &stats);
48045 }
48046 @@ -1322,7 +1322,7 @@ static bool bio_writes_complete_block(struct cache *cache, struct bio *bio)
48047
48048 static void avoid_copy(struct dm_cache_migration *mg)
48049 {
48050 - atomic_inc(&mg->cache->stats.copies_avoided);
48051 + atomic_inc_unchecked(&mg->cache->stats.copies_avoided);
48052 migration_success_pre_commit(mg);
48053 }
48054
48055 @@ -1649,13 +1649,13 @@ static bool spare_migration_bandwidth(struct cache *cache)
48056
48057 static void inc_hit_counter(struct cache *cache, struct bio *bio)
48058 {
48059 - atomic_inc(bio_data_dir(bio) == READ ?
48060 + atomic_inc_unchecked(bio_data_dir(bio) == READ ?
48061 &cache->stats.read_hit : &cache->stats.write_hit);
48062 }
48063
48064 static void inc_miss_counter(struct cache *cache, struct bio *bio)
48065 {
48066 - atomic_inc(bio_data_dir(bio) == READ ?
48067 + atomic_inc_unchecked(bio_data_dir(bio) == READ ?
48068 &cache->stats.read_miss : &cache->stats.write_miss);
48069 }
48070
48071 @@ -1828,7 +1828,7 @@ static void process_cell(struct cache *cache, struct prealloc *structs,
48072 */
48073
48074 if (bio_data_dir(bio) == WRITE) {
48075 - atomic_inc(&cache->stats.demotion);
48076 + atomic_inc_unchecked(&cache->stats.demotion);
48077 invalidate(cache, structs, block, lookup_result.cblock, new_ocell);
48078 release_cell = false;
48079
48080 @@ -1861,14 +1861,14 @@ static void process_cell(struct cache *cache, struct prealloc *structs,
48081 break;
48082
48083 case POLICY_NEW:
48084 - atomic_inc(&cache->stats.promotion);
48085 + atomic_inc_unchecked(&cache->stats.promotion);
48086 promote(cache, structs, block, lookup_result.cblock, new_ocell);
48087 release_cell = false;
48088 break;
48089
48090 case POLICY_REPLACE:
48091 - atomic_inc(&cache->stats.demotion);
48092 - atomic_inc(&cache->stats.promotion);
48093 + atomic_inc_unchecked(&cache->stats.demotion);
48094 + atomic_inc_unchecked(&cache->stats.promotion);
48095 demote_then_promote(cache, structs, lookup_result.old_oblock,
48096 block, lookup_result.cblock,
48097 ool.cell, new_ocell);
48098 @@ -1922,7 +1922,7 @@ static int commit(struct cache *cache, bool clean_shutdown)
48099 if (get_cache_mode(cache) >= CM_READ_ONLY)
48100 return -EINVAL;
48101
48102 - atomic_inc(&cache->stats.commit_count);
48103 + atomic_inc_unchecked(&cache->stats.commit_count);
48104 r = dm_cache_commit(cache->cmd, clean_shutdown);
48105 if (r)
48106 metadata_operation_failed(cache, "dm_cache_commit", r);
48107 @@ -2153,32 +2153,32 @@ static void process_invalidation_requests(struct cache *cache)
48108 *--------------------------------------------------------------*/
48109 static bool is_quiescing(struct cache *cache)
48110 {
48111 - return atomic_read(&cache->quiescing);
48112 + return atomic_read_unchecked(&cache->quiescing);
48113 }
48114
48115 static void ack_quiescing(struct cache *cache)
48116 {
48117 if (is_quiescing(cache)) {
48118 - atomic_inc(&cache->quiescing_ack);
48119 + atomic_inc_unchecked(&cache->quiescing_ack);
48120 wake_up(&cache->quiescing_wait);
48121 }
48122 }
48123
48124 static void wait_for_quiescing_ack(struct cache *cache)
48125 {
48126 - wait_event(cache->quiescing_wait, atomic_read(&cache->quiescing_ack));
48127 + wait_event(cache->quiescing_wait, atomic_read_unchecked(&cache->quiescing_ack));
48128 }
48129
48130 static void start_quiescing(struct cache *cache)
48131 {
48132 - atomic_inc(&cache->quiescing);
48133 + atomic_inc_unchecked(&cache->quiescing);
48134 wait_for_quiescing_ack(cache);
48135 }
48136
48137 static void stop_quiescing(struct cache *cache)
48138 {
48139 - atomic_set(&cache->quiescing, 0);
48140 - atomic_set(&cache->quiescing_ack, 0);
48141 + atomic_set_unchecked(&cache->quiescing, 0);
48142 + atomic_set_unchecked(&cache->quiescing_ack, 0);
48143 }
48144
48145 static void wait_for_migrations(struct cache *cache)
48146 @@ -2865,8 +2865,8 @@ static int cache_create(struct cache_args *ca, struct cache **result)
48147 init_waitqueue_head(&cache->migration_wait);
48148
48149 init_waitqueue_head(&cache->quiescing_wait);
48150 - atomic_set(&cache->quiescing, 0);
48151 - atomic_set(&cache->quiescing_ack, 0);
48152 + atomic_set_unchecked(&cache->quiescing, 0);
48153 + atomic_set_unchecked(&cache->quiescing_ack, 0);
48154
48155 r = -ENOMEM;
48156 atomic_set(&cache->nr_dirty, 0);
48157 @@ -2933,12 +2933,12 @@ static int cache_create(struct cache_args *ca, struct cache **result)
48158
48159 load_stats(cache);
48160
48161 - atomic_set(&cache->stats.demotion, 0);
48162 - atomic_set(&cache->stats.promotion, 0);
48163 - atomic_set(&cache->stats.copies_avoided, 0);
48164 - atomic_set(&cache->stats.cache_cell_clash, 0);
48165 - atomic_set(&cache->stats.commit_count, 0);
48166 - atomic_set(&cache->stats.discard_count, 0);
48167 + atomic_set_unchecked(&cache->stats.demotion, 0);
48168 + atomic_set_unchecked(&cache->stats.promotion, 0);
48169 + atomic_set_unchecked(&cache->stats.copies_avoided, 0);
48170 + atomic_set_unchecked(&cache->stats.cache_cell_clash, 0);
48171 + atomic_set_unchecked(&cache->stats.commit_count, 0);
48172 + atomic_set_unchecked(&cache->stats.discard_count, 0);
48173
48174 spin_lock_init(&cache->invalidation_lock);
48175 INIT_LIST_HEAD(&cache->invalidation_requests);
48176 @@ -3548,12 +3548,12 @@ static void cache_status(struct dm_target *ti, status_type_t type,
48177 cache->sectors_per_block,
48178 (unsigned long long) from_cblock(residency),
48179 (unsigned long long) from_cblock(cache->cache_size),
48180 - (unsigned) atomic_read(&cache->stats.read_hit),
48181 - (unsigned) atomic_read(&cache->stats.read_miss),
48182 - (unsigned) atomic_read(&cache->stats.write_hit),
48183 - (unsigned) atomic_read(&cache->stats.write_miss),
48184 - (unsigned) atomic_read(&cache->stats.demotion),
48185 - (unsigned) atomic_read(&cache->stats.promotion),
48186 + (unsigned) atomic_read_unchecked(&cache->stats.read_hit),
48187 + (unsigned) atomic_read_unchecked(&cache->stats.read_miss),
48188 + (unsigned) atomic_read_unchecked(&cache->stats.write_hit),
48189 + (unsigned) atomic_read_unchecked(&cache->stats.write_miss),
48190 + (unsigned) atomic_read_unchecked(&cache->stats.demotion),
48191 + (unsigned) atomic_read_unchecked(&cache->stats.promotion),
48192 (unsigned long) atomic_read(&cache->nr_dirty));
48193
48194 if (writethrough_mode(&cache->features))
48195 diff --git a/drivers/md/dm-ioctl.c b/drivers/md/dm-ioctl.c
48196 index 80a4395..a5a8981 100644
48197 --- a/drivers/md/dm-ioctl.c
48198 +++ b/drivers/md/dm-ioctl.c
48199 @@ -1773,7 +1773,7 @@ static int validate_params(uint cmd, struct dm_ioctl *param)
48200 cmd == DM_LIST_VERSIONS_CMD)
48201 return 0;
48202
48203 - if ((cmd == DM_DEV_CREATE_CMD)) {
48204 + if (cmd == DM_DEV_CREATE_CMD) {
48205 if (!*param->name) {
48206 DMWARN("name not supplied when creating device");
48207 return -EINVAL;
48208 diff --git a/drivers/md/dm-raid.c b/drivers/md/dm-raid.c
48209 index a090121..9f14702 100644
48210 --- a/drivers/md/dm-raid.c
48211 +++ b/drivers/md/dm-raid.c
48212 @@ -1452,7 +1452,7 @@ static void raid_status(struct dm_target *ti, status_type_t type,
48213 DMEMIT(" %llu",
48214 (strcmp(rs->md.last_sync_action, "check")) ? 0 :
48215 (unsigned long long)
48216 - atomic64_read(&rs->md.resync_mismatches));
48217 + atomic64_read_unchecked(&rs->md.resync_mismatches));
48218 break;
48219 case STATUSTYPE_TABLE:
48220 /* The string you would use to construct this array */
48221 diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c
48222 index f2a363a..9f4763b 100644
48223 --- a/drivers/md/dm-raid1.c
48224 +++ b/drivers/md/dm-raid1.c
48225 @@ -42,7 +42,7 @@ enum dm_raid1_error {
48226
48227 struct mirror {
48228 struct mirror_set *ms;
48229 - atomic_t error_count;
48230 + atomic_unchecked_t error_count;
48231 unsigned long error_type;
48232 struct dm_dev *dev;
48233 sector_t offset;
48234 @@ -188,7 +188,7 @@ static struct mirror *get_valid_mirror(struct mirror_set *ms)
48235 struct mirror *m;
48236
48237 for (m = ms->mirror; m < ms->mirror + ms->nr_mirrors; m++)
48238 - if (!atomic_read(&m->error_count))
48239 + if (!atomic_read_unchecked(&m->error_count))
48240 return m;
48241
48242 return NULL;
48243 @@ -220,7 +220,7 @@ static void fail_mirror(struct mirror *m, enum dm_raid1_error error_type)
48244 * simple way to tell if a device has encountered
48245 * errors.
48246 */
48247 - atomic_inc(&m->error_count);
48248 + atomic_inc_unchecked(&m->error_count);
48249
48250 if (test_and_set_bit(error_type, &m->error_type))
48251 return;
48252 @@ -378,7 +378,7 @@ static void reset_ms_flags(struct mirror_set *ms)
48253
48254 ms->leg_failure = 0;
48255 for (m = 0; m < ms->nr_mirrors; m++) {
48256 - atomic_set(&(ms->mirror[m].error_count), 0);
48257 + atomic_set_unchecked(&(ms->mirror[m].error_count), 0);
48258 ms->mirror[m].error_type = 0;
48259 }
48260 }
48261 @@ -423,7 +423,7 @@ static struct mirror *choose_mirror(struct mirror_set *ms, sector_t sector)
48262 struct mirror *m = get_default_mirror(ms);
48263
48264 do {
48265 - if (likely(!atomic_read(&m->error_count)))
48266 + if (likely(!atomic_read_unchecked(&m->error_count)))
48267 return m;
48268
48269 if (m-- == ms->mirror)
48270 @@ -437,7 +437,7 @@ static int default_ok(struct mirror *m)
48271 {
48272 struct mirror *default_mirror = get_default_mirror(m->ms);
48273
48274 - return !atomic_read(&default_mirror->error_count);
48275 + return !atomic_read_unchecked(&default_mirror->error_count);
48276 }
48277
48278 static int mirror_available(struct mirror_set *ms, struct bio *bio)
48279 @@ -576,7 +576,7 @@ static void do_reads(struct mirror_set *ms, struct bio_list *reads)
48280 */
48281 if (likely(region_in_sync(ms, region, 1)))
48282 m = choose_mirror(ms, bio->bi_iter.bi_sector);
48283 - else if (m && atomic_read(&m->error_count))
48284 + else if (m && atomic_read_unchecked(&m->error_count))
48285 m = NULL;
48286
48287 if (likely(m))
48288 @@ -960,7 +960,7 @@ static int get_mirror(struct mirror_set *ms, struct dm_target *ti,
48289 }
48290
48291 ms->mirror[mirror].ms = ms;
48292 - atomic_set(&(ms->mirror[mirror].error_count), 0);
48293 + atomic_set_unchecked(&(ms->mirror[mirror].error_count), 0);
48294 ms->mirror[mirror].error_type = 0;
48295 ms->mirror[mirror].offset = offset;
48296
48297 @@ -1384,7 +1384,7 @@ static void mirror_resume(struct dm_target *ti)
48298 */
48299 static char device_status_char(struct mirror *m)
48300 {
48301 - if (!atomic_read(&(m->error_count)))
48302 + if (!atomic_read_unchecked(&(m->error_count)))
48303 return 'A';
48304
48305 return (test_bit(DM_RAID1_FLUSH_ERROR, &(m->error_type))) ? 'F' :
48306 diff --git a/drivers/md/dm-stats.c b/drivers/md/dm-stats.c
48307 index 8289804..12db118 100644
48308 --- a/drivers/md/dm-stats.c
48309 +++ b/drivers/md/dm-stats.c
48310 @@ -435,7 +435,7 @@ do_sync_free:
48311 synchronize_rcu_expedited();
48312 dm_stat_free(&s->rcu_head);
48313 } else {
48314 - ACCESS_ONCE(dm_stat_need_rcu_barrier) = 1;
48315 + ACCESS_ONCE_RW(dm_stat_need_rcu_barrier) = 1;
48316 call_rcu(&s->rcu_head, dm_stat_free);
48317 }
48318 return 0;
48319 @@ -648,8 +648,8 @@ void dm_stats_account_io(struct dm_stats *stats, unsigned long bi_rw,
48320 ((bi_rw & (REQ_WRITE | REQ_DISCARD)) ==
48321 (ACCESS_ONCE(last->last_rw) & (REQ_WRITE | REQ_DISCARD)))
48322 ));
48323 - ACCESS_ONCE(last->last_sector) = end_sector;
48324 - ACCESS_ONCE(last->last_rw) = bi_rw;
48325 + ACCESS_ONCE_RW(last->last_sector) = end_sector;
48326 + ACCESS_ONCE_RW(last->last_rw) = bi_rw;
48327 }
48328
48329 rcu_read_lock();
48330 diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c
48331 index 797ddb9..9595c24 100644
48332 --- a/drivers/md/dm-stripe.c
48333 +++ b/drivers/md/dm-stripe.c
48334 @@ -21,7 +21,7 @@ struct stripe {
48335 struct dm_dev *dev;
48336 sector_t physical_start;
48337
48338 - atomic_t error_count;
48339 + atomic_unchecked_t error_count;
48340 };
48341
48342 struct stripe_c {
48343 @@ -190,7 +190,7 @@ static int stripe_ctr(struct dm_target *ti, unsigned int argc, char **argv)
48344 kfree(sc);
48345 return r;
48346 }
48347 - atomic_set(&(sc->stripe[i].error_count), 0);
48348 + atomic_set_unchecked(&(sc->stripe[i].error_count), 0);
48349 }
48350
48351 ti->private = sc;
48352 @@ -334,7 +334,7 @@ static void stripe_status(struct dm_target *ti, status_type_t type,
48353 DMEMIT("%d ", sc->stripes);
48354 for (i = 0; i < sc->stripes; i++) {
48355 DMEMIT("%s ", sc->stripe[i].dev->name);
48356 - buffer[i] = atomic_read(&(sc->stripe[i].error_count)) ?
48357 + buffer[i] = atomic_read_unchecked(&(sc->stripe[i].error_count)) ?
48358 'D' : 'A';
48359 }
48360 buffer[i] = '\0';
48361 @@ -379,8 +379,8 @@ static int stripe_end_io(struct dm_target *ti, struct bio *bio, int error)
48362 */
48363 for (i = 0; i < sc->stripes; i++)
48364 if (!strcmp(sc->stripe[i].dev->name, major_minor)) {
48365 - atomic_inc(&(sc->stripe[i].error_count));
48366 - if (atomic_read(&(sc->stripe[i].error_count)) <
48367 + atomic_inc_unchecked(&(sc->stripe[i].error_count));
48368 + if (atomic_read_unchecked(&(sc->stripe[i].error_count)) <
48369 DM_IO_ERROR_THRESHOLD)
48370 schedule_work(&sc->trigger_event);
48371 }
48372 diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
48373 index 061152a..b033201 100644
48374 --- a/drivers/md/dm-table.c
48375 +++ b/drivers/md/dm-table.c
48376 @@ -305,7 +305,7 @@ static int device_area_is_invalid(struct dm_target *ti, struct dm_dev *dev,
48377 if (!dev_size)
48378 return 0;
48379
48380 - if ((start >= dev_size) || (start + len > dev_size)) {
48381 + if ((start >= dev_size) || (len > dev_size - start)) {
48382 DMWARN("%s: %s too small for target: "
48383 "start=%llu, len=%llu, dev_size=%llu",
48384 dm_device_name(ti->table->md), bdevname(bdev, b),
48385 diff --git a/drivers/md/dm-thin-metadata.c b/drivers/md/dm-thin-metadata.c
48386 index c219a05..15a27ca 100644
48387 --- a/drivers/md/dm-thin-metadata.c
48388 +++ b/drivers/md/dm-thin-metadata.c
48389 @@ -405,7 +405,7 @@ static void __setup_btree_details(struct dm_pool_metadata *pmd)
48390 {
48391 pmd->info.tm = pmd->tm;
48392 pmd->info.levels = 2;
48393 - pmd->info.value_type.context = pmd->data_sm;
48394 + pmd->info.value_type.context = (dm_space_map_no_const *)pmd->data_sm;
48395 pmd->info.value_type.size = sizeof(__le64);
48396 pmd->info.value_type.inc = data_block_inc;
48397 pmd->info.value_type.dec = data_block_dec;
48398 @@ -424,7 +424,7 @@ static void __setup_btree_details(struct dm_pool_metadata *pmd)
48399
48400 pmd->bl_info.tm = pmd->tm;
48401 pmd->bl_info.levels = 1;
48402 - pmd->bl_info.value_type.context = pmd->data_sm;
48403 + pmd->bl_info.value_type.context = (dm_space_map_no_const *)pmd->data_sm;
48404 pmd->bl_info.value_type.size = sizeof(__le64);
48405 pmd->bl_info.value_type.inc = data_block_inc;
48406 pmd->bl_info.value_type.dec = data_block_dec;
48407 diff --git a/drivers/md/dm.c b/drivers/md/dm.c
48408 index dd83492..d111dcf 100644
48409 --- a/drivers/md/dm.c
48410 +++ b/drivers/md/dm.c
48411 @@ -194,9 +194,9 @@ struct mapped_device {
48412 /*
48413 * Event handling.
48414 */
48415 - atomic_t event_nr;
48416 + atomic_unchecked_t event_nr;
48417 wait_queue_head_t eventq;
48418 - atomic_t uevent_seq;
48419 + atomic_unchecked_t uevent_seq;
48420 struct list_head uevent_list;
48421 spinlock_t uevent_lock; /* Protect access to uevent_list */
48422
48423 @@ -735,14 +735,16 @@ static void queue_io(struct mapped_device *md, struct bio *bio)
48424 * function to access the md->map field, and make sure they call
48425 * dm_put_live_table() when finished.
48426 */
48427 -struct dm_table *dm_get_live_table(struct mapped_device *md, int *srcu_idx) __acquires(md->io_barrier)
48428 +struct dm_table *dm_get_live_table(struct mapped_device *md, int *srcu_idx) __acquires(&md->io_barrier);
48429 +struct dm_table *dm_get_live_table(struct mapped_device *md, int *srcu_idx)
48430 {
48431 *srcu_idx = srcu_read_lock(&md->io_barrier);
48432
48433 return srcu_dereference(md->map, &md->io_barrier);
48434 }
48435
48436 -void dm_put_live_table(struct mapped_device *md, int srcu_idx) __releases(md->io_barrier)
48437 +void dm_put_live_table(struct mapped_device *md, int srcu_idx) __releases(&md->io_barrier);
48438 +void dm_put_live_table(struct mapped_device *md, int srcu_idx)
48439 {
48440 srcu_read_unlock(&md->io_barrier, srcu_idx);
48441 }
48442 @@ -757,13 +759,15 @@ void dm_sync_table(struct mapped_device *md)
48443 * A fast alternative to dm_get_live_table/dm_put_live_table.
48444 * The caller must not block between these two functions.
48445 */
48446 -static struct dm_table *dm_get_live_table_fast(struct mapped_device *md) __acquires(RCU)
48447 +static struct dm_table *dm_get_live_table_fast(struct mapped_device *md) __acquires(RCU);
48448 +static struct dm_table *dm_get_live_table_fast(struct mapped_device *md)
48449 {
48450 rcu_read_lock();
48451 return rcu_dereference(md->map);
48452 }
48453
48454 -static void dm_put_live_table_fast(struct mapped_device *md) __releases(RCU)
48455 +static void dm_put_live_table_fast(struct mapped_device *md) __releases(RCU);
48456 +static void dm_put_live_table_fast(struct mapped_device *md)
48457 {
48458 rcu_read_unlock();
48459 }
48460 @@ -2317,8 +2321,8 @@ static struct mapped_device *alloc_dev(int minor)
48461 spin_lock_init(&md->deferred_lock);
48462 atomic_set(&md->holders, 1);
48463 atomic_set(&md->open_count, 0);
48464 - atomic_set(&md->event_nr, 0);
48465 - atomic_set(&md->uevent_seq, 0);
48466 + atomic_set_unchecked(&md->event_nr, 0);
48467 + atomic_set_unchecked(&md->uevent_seq, 0);
48468 INIT_LIST_HEAD(&md->uevent_list);
48469 INIT_LIST_HEAD(&md->table_devices);
48470 spin_lock_init(&md->uevent_lock);
48471 @@ -2459,7 +2463,7 @@ static void event_callback(void *context)
48472
48473 dm_send_uevents(&uevents, &disk_to_dev(md->disk)->kobj);
48474
48475 - atomic_inc(&md->event_nr);
48476 + atomic_inc_unchecked(&md->event_nr);
48477 wake_up(&md->eventq);
48478 }
48479
48480 @@ -3402,18 +3406,18 @@ int dm_kobject_uevent(struct mapped_device *md, enum kobject_action action,
48481
48482 uint32_t dm_next_uevent_seq(struct mapped_device *md)
48483 {
48484 - return atomic_add_return(1, &md->uevent_seq);
48485 + return atomic_add_return_unchecked(1, &md->uevent_seq);
48486 }
48487
48488 uint32_t dm_get_event_nr(struct mapped_device *md)
48489 {
48490 - return atomic_read(&md->event_nr);
48491 + return atomic_read_unchecked(&md->event_nr);
48492 }
48493
48494 int dm_wait_event(struct mapped_device *md, int event_nr)
48495 {
48496 return wait_event_interruptible(md->eventq,
48497 - (event_nr != atomic_read(&md->event_nr)));
48498 + (event_nr != atomic_read_unchecked(&md->event_nr)));
48499 }
48500
48501 void dm_uevent_add(struct mapped_device *md, struct list_head *elist)
48502 diff --git a/drivers/md/md.c b/drivers/md/md.c
48503 index b1e1f6b..8fe237a 100644
48504 --- a/drivers/md/md.c
48505 +++ b/drivers/md/md.c
48506 @@ -197,10 +197,10 @@ EXPORT_SYMBOL_GPL(bio_clone_mddev);
48507 * start build, activate spare
48508 */
48509 static DECLARE_WAIT_QUEUE_HEAD(md_event_waiters);
48510 -static atomic_t md_event_count;
48511 +static atomic_unchecked_t md_event_count;
48512 void md_new_event(struct mddev *mddev)
48513 {
48514 - atomic_inc(&md_event_count);
48515 + atomic_inc_unchecked(&md_event_count);
48516 wake_up(&md_event_waiters);
48517 }
48518 EXPORT_SYMBOL_GPL(md_new_event);
48519 @@ -210,7 +210,7 @@ EXPORT_SYMBOL_GPL(md_new_event);
48520 */
48521 static void md_new_event_inintr(struct mddev *mddev)
48522 {
48523 - atomic_inc(&md_event_count);
48524 + atomic_inc_unchecked(&md_event_count);
48525 wake_up(&md_event_waiters);
48526 }
48527
48528 @@ -1434,7 +1434,7 @@ static int super_1_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor_
48529 if ((le32_to_cpu(sb->feature_map) & MD_FEATURE_RESHAPE_ACTIVE) &&
48530 (le32_to_cpu(sb->feature_map) & MD_FEATURE_NEW_OFFSET))
48531 rdev->new_data_offset += (s32)le32_to_cpu(sb->new_offset);
48532 - atomic_set(&rdev->corrected_errors, le32_to_cpu(sb->cnt_corrected_read));
48533 + atomic_set_unchecked(&rdev->corrected_errors, le32_to_cpu(sb->cnt_corrected_read));
48534
48535 rdev->sb_size = le32_to_cpu(sb->max_dev) * 2 + 256;
48536 bmask = queue_logical_block_size(rdev->bdev->bd_disk->queue)-1;
48537 @@ -1703,7 +1703,7 @@ static void super_1_sync(struct mddev *mddev, struct md_rdev *rdev)
48538 else
48539 sb->resync_offset = cpu_to_le64(0);
48540
48541 - sb->cnt_corrected_read = cpu_to_le32(atomic_read(&rdev->corrected_errors));
48542 + sb->cnt_corrected_read = cpu_to_le32(atomic_read_unchecked(&rdev->corrected_errors));
48543
48544 sb->raid_disks = cpu_to_le32(mddev->raid_disks);
48545 sb->size = cpu_to_le64(mddev->dev_sectors);
48546 @@ -2711,7 +2711,7 @@ __ATTR_PREALLOC(state, S_IRUGO|S_IWUSR, state_show, state_store);
48547 static ssize_t
48548 errors_show(struct md_rdev *rdev, char *page)
48549 {
48550 - return sprintf(page, "%d\n", atomic_read(&rdev->corrected_errors));
48551 + return sprintf(page, "%d\n", atomic_read_unchecked(&rdev->corrected_errors));
48552 }
48553
48554 static ssize_t
48555 @@ -2723,7 +2723,7 @@ errors_store(struct md_rdev *rdev, const char *buf, size_t len)
48556 rv = kstrtouint(buf, 10, &n);
48557 if (rv < 0)
48558 return rv;
48559 - atomic_set(&rdev->corrected_errors, n);
48560 + atomic_set_unchecked(&rdev->corrected_errors, n);
48561 return len;
48562 }
48563 static struct rdev_sysfs_entry rdev_errors =
48564 @@ -3167,8 +3167,8 @@ int md_rdev_init(struct md_rdev *rdev)
48565 rdev->sb_loaded = 0;
48566 rdev->bb_page = NULL;
48567 atomic_set(&rdev->nr_pending, 0);
48568 - atomic_set(&rdev->read_errors, 0);
48569 - atomic_set(&rdev->corrected_errors, 0);
48570 + atomic_set_unchecked(&rdev->read_errors, 0);
48571 + atomic_set_unchecked(&rdev->corrected_errors, 0);
48572
48573 INIT_LIST_HEAD(&rdev->same_set);
48574 init_waitqueue_head(&rdev->blocked_wait);
48575 @@ -4392,7 +4392,7 @@ mismatch_cnt_show(struct mddev *mddev, char *page)
48576 {
48577 return sprintf(page, "%llu\n",
48578 (unsigned long long)
48579 - atomic64_read(&mddev->resync_mismatches));
48580 + atomic64_read_unchecked(&mddev->resync_mismatches));
48581 }
48582
48583 static struct md_sysfs_entry md_mismatches = __ATTR_RO(mismatch_cnt);
48584 @@ -5431,7 +5431,7 @@ static void md_clean(struct mddev *mddev)
48585 mddev->new_layout = 0;
48586 mddev->new_chunk_sectors = 0;
48587 mddev->curr_resync = 0;
48588 - atomic64_set(&mddev->resync_mismatches, 0);
48589 + atomic64_set_unchecked(&mddev->resync_mismatches, 0);
48590 mddev->suspend_lo = mddev->suspend_hi = 0;
48591 mddev->sync_speed_min = mddev->sync_speed_max = 0;
48592 mddev->recovery = 0;
48593 @@ -5847,9 +5847,10 @@ static int get_array_info(struct mddev *mddev, void __user *arg)
48594 info.patch_version = MD_PATCHLEVEL_VERSION;
48595 info.ctime = mddev->ctime;
48596 info.level = mddev->level;
48597 - info.size = mddev->dev_sectors / 2;
48598 - if (info.size != mddev->dev_sectors / 2) /* overflow */
48599 + if (2 * (sector_t)INT_MAX < mddev->dev_sectors) /* overflow */
48600 info.size = -1;
48601 + else
48602 + info.size = mddev->dev_sectors / 2;
48603 info.nr_disks = nr;
48604 info.raid_disks = mddev->raid_disks;
48605 info.md_minor = mddev->md_minor;
48606 @@ -7391,7 +7392,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
48607
48608 spin_unlock(&pers_lock);
48609 seq_printf(seq, "\n");
48610 - seq->poll_event = atomic_read(&md_event_count);
48611 + seq->poll_event = atomic_read_unchecked(&md_event_count);
48612 return 0;
48613 }
48614 if (v == (void*)2) {
48615 @@ -7491,7 +7492,7 @@ static int md_seq_open(struct inode *inode, struct file *file)
48616 return error;
48617
48618 seq = file->private_data;
48619 - seq->poll_event = atomic_read(&md_event_count);
48620 + seq->poll_event = atomic_read_unchecked(&md_event_count);
48621 return error;
48622 }
48623
48624 @@ -7508,7 +7509,7 @@ static unsigned int mdstat_poll(struct file *filp, poll_table *wait)
48625 /* always allow read */
48626 mask = POLLIN | POLLRDNORM;
48627
48628 - if (seq->poll_event != atomic_read(&md_event_count))
48629 + if (seq->poll_event != atomic_read_unchecked(&md_event_count))
48630 mask |= POLLERR | POLLPRI;
48631 return mask;
48632 }
48633 @@ -7608,7 +7609,7 @@ static int is_mddev_idle(struct mddev *mddev, int init)
48634 struct gendisk *disk = rdev->bdev->bd_contains->bd_disk;
48635 curr_events = (int)part_stat_read(&disk->part0, sectors[0]) +
48636 (int)part_stat_read(&disk->part0, sectors[1]) -
48637 - atomic_read(&disk->sync_io);
48638 + atomic_read_unchecked(&disk->sync_io);
48639 /* sync IO will cause sync_io to increase before the disk_stats
48640 * as sync_io is counted when a request starts, and
48641 * disk_stats is counted when it completes.
48642 @@ -7859,7 +7860,7 @@ void md_do_sync(struct md_thread *thread)
48643 * which defaults to physical size, but can be virtual size
48644 */
48645 max_sectors = mddev->resync_max_sectors;
48646 - atomic64_set(&mddev->resync_mismatches, 0);
48647 + atomic64_set_unchecked(&mddev->resync_mismatches, 0);
48648 /* we don't use the checkpoint if there's a bitmap */
48649 if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery))
48650 j = mddev->resync_min;
48651 diff --git a/drivers/md/md.h b/drivers/md/md.h
48652 index dfa57b4..7af9cda 100644
48653 --- a/drivers/md/md.h
48654 +++ b/drivers/md/md.h
48655 @@ -102,13 +102,13 @@ struct md_rdev {
48656 * only maintained for arrays that
48657 * support hot removal
48658 */
48659 - atomic_t read_errors; /* number of consecutive read errors that
48660 + atomic_unchecked_t read_errors; /* number of consecutive read errors that
48661 * we have tried to ignore.
48662 */
48663 struct timespec last_read_error; /* monotonic time since our
48664 * last read error
48665 */
48666 - atomic_t corrected_errors; /* number of corrected read errors,
48667 + atomic_unchecked_t corrected_errors; /* number of corrected read errors,
48668 * for reporting to userspace and storing
48669 * in superblock.
48670 */
48671 @@ -314,7 +314,7 @@ struct mddev {
48672
48673 sector_t resync_max_sectors; /* may be set by personality */
48674
48675 - atomic64_t resync_mismatches; /* count of sectors where
48676 + atomic64_unchecked_t resync_mismatches; /* count of sectors where
48677 * parity/replica mismatch found
48678 */
48679
48680 @@ -492,7 +492,7 @@ extern void mddev_unlock(struct mddev *mddev);
48681
48682 static inline void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors)
48683 {
48684 - atomic_add(nr_sectors, &bdev->bd_contains->bd_disk->sync_io);
48685 + atomic_add_unchecked(nr_sectors, &bdev->bd_contains->bd_disk->sync_io);
48686 }
48687
48688 struct md_personality
48689 diff --git a/drivers/md/persistent-data/dm-space-map-metadata.c b/drivers/md/persistent-data/dm-space-map-metadata.c
48690 index 7e44005..20e035a 100644
48691 --- a/drivers/md/persistent-data/dm-space-map-metadata.c
48692 +++ b/drivers/md/persistent-data/dm-space-map-metadata.c
48693 @@ -700,7 +700,7 @@ static int sm_metadata_extend(struct dm_space_map *sm, dm_block_t extra_blocks)
48694 * Flick into a mode where all blocks get allocated in the new area.
48695 */
48696 smm->begin = old_len;
48697 - memcpy(sm, &bootstrap_ops, sizeof(*sm));
48698 + memcpy((void *)sm, &bootstrap_ops, sizeof(*sm));
48699
48700 /*
48701 * Extend.
48702 @@ -738,7 +738,7 @@ out:
48703 /*
48704 * Switch back to normal behaviour.
48705 */
48706 - memcpy(sm, &ops, sizeof(*sm));
48707 + memcpy((void *)sm, &ops, sizeof(*sm));
48708 return r;
48709 }
48710
48711 diff --git a/drivers/md/persistent-data/dm-space-map.h b/drivers/md/persistent-data/dm-space-map.h
48712 index 3e6d115..ffecdeb 100644
48713 --- a/drivers/md/persistent-data/dm-space-map.h
48714 +++ b/drivers/md/persistent-data/dm-space-map.h
48715 @@ -71,6 +71,7 @@ struct dm_space_map {
48716 dm_sm_threshold_fn fn,
48717 void *context);
48718 };
48719 +typedef struct dm_space_map __no_const dm_space_map_no_const;
48720
48721 /*----------------------------------------------------------------*/
48722
48723 diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
48724 index c4b9134..6602200 100644
48725 --- a/drivers/md/raid1.c
48726 +++ b/drivers/md/raid1.c
48727 @@ -1063,7 +1063,7 @@ static void make_request(struct mddev *mddev, struct bio * bio)
48728 struct blk_plug_cb *cb;
48729 struct raid1_plug_cb *plug = NULL;
48730 int first_clone;
48731 - int sectors_handled;
48732 + sector_t sectors_handled;
48733 int max_sectors;
48734 sector_t start_next_window;
48735
48736 @@ -1897,7 +1897,7 @@ static int fix_sync_read_error(struct r1bio *r1_bio)
48737 if (r1_sync_page_io(rdev, sect, s,
48738 bio->bi_io_vec[idx].bv_page,
48739 READ) != 0)
48740 - atomic_add(s, &rdev->corrected_errors);
48741 + atomic_add_unchecked(s, &rdev->corrected_errors);
48742 }
48743 sectors -= s;
48744 sect += s;
48745 @@ -1988,7 +1988,7 @@ static void process_checks(struct r1bio *r1_bio)
48746 } else
48747 j = 0;
48748 if (j >= 0)
48749 - atomic64_add(r1_bio->sectors, &mddev->resync_mismatches);
48750 + atomic64_add_unchecked(r1_bio->sectors, &mddev->resync_mismatches);
48751 if (j < 0 || (test_bit(MD_RECOVERY_CHECK, &mddev->recovery)
48752 && !error)) {
48753 /* No need to write to this device. */
48754 @@ -2129,7 +2129,7 @@ static void fix_read_error(struct r1conf *conf, int read_disk,
48755 !test_bit(Faulty, &rdev->flags)) {
48756 if (r1_sync_page_io(rdev, sect, s,
48757 conf->tmppage, READ)) {
48758 - atomic_add(s, &rdev->corrected_errors);
48759 + atomic_add_unchecked(s, &rdev->corrected_errors);
48760 printk(KERN_INFO
48761 "md/raid1:%s: read error corrected "
48762 "(%d sectors at %llu on %s)\n",
48763 diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
48764 index ce959b4..3dff1bc 100644
48765 --- a/drivers/md/raid10.c
48766 +++ b/drivers/md/raid10.c
48767 @@ -1068,7 +1068,7 @@ static void __make_request(struct mddev *mddev, struct bio *bio)
48768 struct md_rdev *blocked_rdev;
48769 struct blk_plug_cb *cb;
48770 struct raid10_plug_cb *plug = NULL;
48771 - int sectors_handled;
48772 + sector_t sectors_handled;
48773 int max_sectors;
48774 int sectors;
48775
48776 @@ -1829,7 +1829,7 @@ static void end_sync_read(struct bio *bio)
48777 /* The write handler will notice the lack of
48778 * R10BIO_Uptodate and record any errors etc
48779 */
48780 - atomic_add(r10_bio->sectors,
48781 + atomic_add_unchecked(r10_bio->sectors,
48782 &conf->mirrors[d].rdev->corrected_errors);
48783
48784 /* for reconstruct, we always reschedule after a read.
48785 @@ -1978,7 +1978,7 @@ static void sync_request_write(struct mddev *mddev, struct r10bio *r10_bio)
48786 }
48787 if (j == vcnt)
48788 continue;
48789 - atomic64_add(r10_bio->sectors, &mddev->resync_mismatches);
48790 + atomic64_add_unchecked(r10_bio->sectors, &mddev->resync_mismatches);
48791 if (test_bit(MD_RECOVERY_CHECK, &mddev->recovery))
48792 /* Don't fix anything. */
48793 continue;
48794 @@ -2177,7 +2177,7 @@ static void check_decay_read_errors(struct mddev *mddev, struct md_rdev *rdev)
48795 {
48796 struct timespec cur_time_mon;
48797 unsigned long hours_since_last;
48798 - unsigned int read_errors = atomic_read(&rdev->read_errors);
48799 + unsigned int read_errors = atomic_read_unchecked(&rdev->read_errors);
48800
48801 ktime_get_ts(&cur_time_mon);
48802
48803 @@ -2199,9 +2199,9 @@ static void check_decay_read_errors(struct mddev *mddev, struct md_rdev *rdev)
48804 * overflowing the shift of read_errors by hours_since_last.
48805 */
48806 if (hours_since_last >= 8 * sizeof(read_errors))
48807 - atomic_set(&rdev->read_errors, 0);
48808 + atomic_set_unchecked(&rdev->read_errors, 0);
48809 else
48810 - atomic_set(&rdev->read_errors, read_errors >> hours_since_last);
48811 + atomic_set_unchecked(&rdev->read_errors, read_errors >> hours_since_last);
48812 }
48813
48814 static int r10_sync_page_io(struct md_rdev *rdev, sector_t sector,
48815 @@ -2255,8 +2255,8 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
48816 return;
48817
48818 check_decay_read_errors(mddev, rdev);
48819 - atomic_inc(&rdev->read_errors);
48820 - if (atomic_read(&rdev->read_errors) > max_read_errors) {
48821 + atomic_inc_unchecked(&rdev->read_errors);
48822 + if (atomic_read_unchecked(&rdev->read_errors) > max_read_errors) {
48823 char b[BDEVNAME_SIZE];
48824 bdevname(rdev->bdev, b);
48825
48826 @@ -2264,7 +2264,7 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
48827 "md/raid10:%s: %s: Raid device exceeded "
48828 "read_error threshold [cur %d:max %d]\n",
48829 mdname(mddev), b,
48830 - atomic_read(&rdev->read_errors), max_read_errors);
48831 + atomic_read_unchecked(&rdev->read_errors), max_read_errors);
48832 printk(KERN_NOTICE
48833 "md/raid10:%s: %s: Failing raid device\n",
48834 mdname(mddev), b);
48835 @@ -2417,7 +2417,7 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
48836 sect +
48837 choose_data_offset(r10_bio, rdev)),
48838 bdevname(rdev->bdev, b));
48839 - atomic_add(s, &rdev->corrected_errors);
48840 + atomic_add_unchecked(s, &rdev->corrected_errors);
48841 }
48842
48843 rdev_dec_pending(rdev, mddev);
48844 diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
48845 index 704ef7f..8799ca3 100644
48846 --- a/drivers/md/raid5.c
48847 +++ b/drivers/md/raid5.c
48848 @@ -1121,23 +1121,23 @@ async_copy_data(int frombio, struct bio *bio, struct page **page,
48849 struct bio_vec bvl;
48850 struct bvec_iter iter;
48851 struct page *bio_page;
48852 - int page_offset;
48853 + s64 page_offset;
48854 struct async_submit_ctl submit;
48855 enum async_tx_flags flags = 0;
48856
48857 if (bio->bi_iter.bi_sector >= sector)
48858 - page_offset = (signed)(bio->bi_iter.bi_sector - sector) * 512;
48859 + page_offset = (s64)(bio->bi_iter.bi_sector - sector) * 512;
48860 else
48861 - page_offset = (signed)(sector - bio->bi_iter.bi_sector) * -512;
48862 + page_offset = (s64)(sector - bio->bi_iter.bi_sector) * -512;
48863
48864 if (frombio)
48865 flags |= ASYNC_TX_FENCE;
48866 init_async_submit(&submit, flags, tx, NULL, NULL, NULL);
48867
48868 bio_for_each_segment(bvl, bio, iter) {
48869 - int len = bvl.bv_len;
48870 - int clen;
48871 - int b_offset = 0;
48872 + s64 len = bvl.bv_len;
48873 + s64 clen;
48874 + s64 b_offset = 0;
48875
48876 if (page_offset < 0) {
48877 b_offset = -page_offset;
48878 @@ -2028,6 +2028,10 @@ static int grow_one_stripe(struct r5conf *conf, gfp_t gfp)
48879 return 1;
48880 }
48881
48882 +#ifdef CONFIG_GRKERNSEC_HIDESYM
48883 +static atomic_unchecked_t raid5_cache_id = ATOMIC_INIT(0);
48884 +#endif
48885 +
48886 static int grow_stripes(struct r5conf *conf, int num)
48887 {
48888 struct kmem_cache *sc;
48889 @@ -2038,7 +2042,11 @@ static int grow_stripes(struct r5conf *conf, int num)
48890 "raid%d-%s", conf->level, mdname(conf->mddev));
48891 else
48892 sprintf(conf->cache_name[0],
48893 +#ifdef CONFIG_GRKERNSEC_HIDESYM
48894 + "raid%d-%08lx", conf->level, atomic_inc_return_unchecked(&raid5_cache_id));
48895 +#else
48896 "raid%d-%p", conf->level, conf->mddev);
48897 +#endif
48898 sprintf(conf->cache_name[1], "%s-alt", conf->cache_name[0]);
48899
48900 conf->active_name = 0;
48901 @@ -2329,21 +2337,21 @@ static void raid5_end_read_request(struct bio * bi)
48902 mdname(conf->mddev), STRIPE_SECTORS,
48903 (unsigned long long)s,
48904 bdevname(rdev->bdev, b));
48905 - atomic_add(STRIPE_SECTORS, &rdev->corrected_errors);
48906 + atomic_add_unchecked(STRIPE_SECTORS, &rdev->corrected_errors);
48907 clear_bit(R5_ReadError, &sh->dev[i].flags);
48908 clear_bit(R5_ReWrite, &sh->dev[i].flags);
48909 } else if (test_bit(R5_ReadNoMerge, &sh->dev[i].flags))
48910 clear_bit(R5_ReadNoMerge, &sh->dev[i].flags);
48911
48912 - if (atomic_read(&rdev->read_errors))
48913 - atomic_set(&rdev->read_errors, 0);
48914 + if (atomic_read_unchecked(&rdev->read_errors))
48915 + atomic_set_unchecked(&rdev->read_errors, 0);
48916 } else {
48917 const char *bdn = bdevname(rdev->bdev, b);
48918 int retry = 0;
48919 int set_bad = 0;
48920
48921 clear_bit(R5_UPTODATE, &sh->dev[i].flags);
48922 - atomic_inc(&rdev->read_errors);
48923 + atomic_inc_unchecked(&rdev->read_errors);
48924 if (test_bit(R5_ReadRepl, &sh->dev[i].flags))
48925 printk_ratelimited(
48926 KERN_WARNING
48927 @@ -2371,7 +2379,7 @@ static void raid5_end_read_request(struct bio * bi)
48928 mdname(conf->mddev),
48929 (unsigned long long)s,
48930 bdn);
48931 - } else if (atomic_read(&rdev->read_errors)
48932 + } else if (atomic_read_unchecked(&rdev->read_errors)
48933 > conf->max_nr_stripes)
48934 printk(KERN_WARNING
48935 "md/raid:%s: Too many read errors, failing device %s.\n",
48936 @@ -3743,7 +3751,7 @@ static void handle_parity_checks5(struct r5conf *conf, struct stripe_head *sh,
48937 */
48938 set_bit(STRIPE_INSYNC, &sh->state);
48939 else {
48940 - atomic64_add(STRIPE_SECTORS, &conf->mddev->resync_mismatches);
48941 + atomic64_add_unchecked(STRIPE_SECTORS, &conf->mddev->resync_mismatches);
48942 if (test_bit(MD_RECOVERY_CHECK, &conf->mddev->recovery))
48943 /* don't try to repair!! */
48944 set_bit(STRIPE_INSYNC, &sh->state);
48945 @@ -3895,7 +3903,7 @@ static void handle_parity_checks6(struct r5conf *conf, struct stripe_head *sh,
48946 */
48947 }
48948 } else {
48949 - atomic64_add(STRIPE_SECTORS, &conf->mddev->resync_mismatches);
48950 + atomic64_add_unchecked(STRIPE_SECTORS, &conf->mddev->resync_mismatches);
48951 if (test_bit(MD_RECOVERY_CHECK, &conf->mddev->recovery))
48952 /* don't try to repair!! */
48953 set_bit(STRIPE_INSYNC, &sh->state);
48954 diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/dvbdev.c
48955 index 13bb57f..0ca21b2 100644
48956 --- a/drivers/media/dvb-core/dvbdev.c
48957 +++ b/drivers/media/dvb-core/dvbdev.c
48958 @@ -272,7 +272,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
48959 const struct dvb_device *template, void *priv, int type)
48960 {
48961 struct dvb_device *dvbdev;
48962 - struct file_operations *dvbdevfops;
48963 + file_operations_no_const *dvbdevfops;
48964 struct device *clsdev;
48965 int minor;
48966 int id;
48967 diff --git a/drivers/media/dvb-frontends/af9033.h b/drivers/media/dvb-frontends/af9033.h
48968 index 6ad22b6..6e90e2a 100644
48969 --- a/drivers/media/dvb-frontends/af9033.h
48970 +++ b/drivers/media/dvb-frontends/af9033.h
48971 @@ -96,6 +96,6 @@ struct af9033_ops {
48972 int (*pid_filter_ctrl)(struct dvb_frontend *fe, int onoff);
48973 int (*pid_filter)(struct dvb_frontend *fe, int index, u16 pid,
48974 int onoff);
48975 -};
48976 +} __no_const;
48977
48978 #endif /* AF9033_H */
48979 diff --git a/drivers/media/dvb-frontends/dib3000.h b/drivers/media/dvb-frontends/dib3000.h
48980 index 6ae9899..07d8543 100644
48981 --- a/drivers/media/dvb-frontends/dib3000.h
48982 +++ b/drivers/media/dvb-frontends/dib3000.h
48983 @@ -39,7 +39,7 @@ struct dib_fe_xfer_ops
48984 int (*fifo_ctrl)(struct dvb_frontend *fe, int onoff);
48985 int (*pid_ctrl)(struct dvb_frontend *fe, int index, int pid, int onoff);
48986 int (*tuner_pass_ctrl)(struct dvb_frontend *fe, int onoff, u8 pll_ctrl);
48987 -};
48988 +} __no_const;
48989
48990 #if IS_REACHABLE(CONFIG_DVB_DIB3000MB)
48991 extern struct dvb_frontend* dib3000mb_attach(const struct dib3000_config* config,
48992 diff --git a/drivers/media/dvb-frontends/dib7000p.h b/drivers/media/dvb-frontends/dib7000p.h
48993 index baa2789..c8de7fe 100644
48994 --- a/drivers/media/dvb-frontends/dib7000p.h
48995 +++ b/drivers/media/dvb-frontends/dib7000p.h
48996 @@ -64,7 +64,7 @@ struct dib7000p_ops {
48997 int (*get_adc_power)(struct dvb_frontend *fe);
48998 int (*slave_reset)(struct dvb_frontend *fe);
48999 struct dvb_frontend *(*init)(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib7000p_config *cfg);
49000 -};
49001 +} __no_const;
49002
49003 #if IS_REACHABLE(CONFIG_DVB_DIB7000P)
49004 void *dib7000p_attach(struct dib7000p_ops *ops);
49005 diff --git a/drivers/media/dvb-frontends/dib8000.h b/drivers/media/dvb-frontends/dib8000.h
49006 index 2b8b4b1..8cef451 100644
49007 --- a/drivers/media/dvb-frontends/dib8000.h
49008 +++ b/drivers/media/dvb-frontends/dib8000.h
49009 @@ -61,7 +61,7 @@ struct dib8000_ops {
49010 int (*pid_filter_ctrl)(struct dvb_frontend *fe, u8 onoff);
49011 int (*pid_filter)(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff);
49012 struct dvb_frontend *(*init)(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib8000_config *cfg);
49013 -};
49014 +} __no_const;
49015
49016 #if IS_REACHABLE(CONFIG_DVB_DIB8000)
49017 void *dib8000_attach(struct dib8000_ops *ops);
49018 diff --git a/drivers/media/pci/cx88/cx88-video.c b/drivers/media/pci/cx88/cx88-video.c
49019 index aef9acf..722ff02 100644
49020 --- a/drivers/media/pci/cx88/cx88-video.c
49021 +++ b/drivers/media/pci/cx88/cx88-video.c
49022 @@ -50,9 +50,9 @@ MODULE_VERSION(CX88_VERSION);
49023
49024 /* ------------------------------------------------------------------ */
49025
49026 -static unsigned int video_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
49027 -static unsigned int vbi_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
49028 -static unsigned int radio_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
49029 +static int video_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
49030 +static int vbi_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
49031 +static int radio_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
49032
49033 module_param_array(video_nr, int, NULL, 0444);
49034 module_param_array(vbi_nr, int, NULL, 0444);
49035 diff --git a/drivers/media/pci/ivtv/ivtv-driver.c b/drivers/media/pci/ivtv/ivtv-driver.c
49036 index c2e60b4..5eeccc0 100644
49037 --- a/drivers/media/pci/ivtv/ivtv-driver.c
49038 +++ b/drivers/media/pci/ivtv/ivtv-driver.c
49039 @@ -83,7 +83,7 @@ static struct pci_device_id ivtv_pci_tbl[] = {
49040 MODULE_DEVICE_TABLE(pci,ivtv_pci_tbl);
49041
49042 /* ivtv instance counter */
49043 -static atomic_t ivtv_instance = ATOMIC_INIT(0);
49044 +static atomic_unchecked_t ivtv_instance = ATOMIC_INIT(0);
49045
49046 /* Parameter declarations */
49047 static int cardtype[IVTV_MAX_CARDS];
49048 diff --git a/drivers/media/pci/solo6x10/solo6x10-core.c b/drivers/media/pci/solo6x10/solo6x10-core.c
49049 index f50d072..0214f25 100644
49050 --- a/drivers/media/pci/solo6x10/solo6x10-core.c
49051 +++ b/drivers/media/pci/solo6x10/solo6x10-core.c
49052 @@ -411,7 +411,7 @@ static void solo_device_release(struct device *dev)
49053
49054 static int solo_sysfs_init(struct solo_dev *solo_dev)
49055 {
49056 - struct bin_attribute *sdram_attr = &solo_dev->sdram_attr;
49057 + bin_attribute_no_const *sdram_attr = &solo_dev->sdram_attr;
49058 struct device *dev = &solo_dev->dev;
49059 const char *driver;
49060 int i;
49061 diff --git a/drivers/media/pci/solo6x10/solo6x10-g723.c b/drivers/media/pci/solo6x10/solo6x10-g723.c
49062 index 4a37a1c..7e82dfd 100644
49063 --- a/drivers/media/pci/solo6x10/solo6x10-g723.c
49064 +++ b/drivers/media/pci/solo6x10/solo6x10-g723.c
49065 @@ -350,7 +350,7 @@ static int solo_snd_pcm_init(struct solo_dev *solo_dev)
49066
49067 int solo_g723_init(struct solo_dev *solo_dev)
49068 {
49069 - static struct snd_device_ops ops = { NULL };
49070 + static struct snd_device_ops ops = { };
49071 struct snd_card *card;
49072 struct snd_kcontrol_new kctl;
49073 char name[32];
49074 diff --git a/drivers/media/pci/solo6x10/solo6x10-p2m.c b/drivers/media/pci/solo6x10/solo6x10-p2m.c
49075 index 8c84846..27b4f83 100644
49076 --- a/drivers/media/pci/solo6x10/solo6x10-p2m.c
49077 +++ b/drivers/media/pci/solo6x10/solo6x10-p2m.c
49078 @@ -73,7 +73,7 @@ int solo_p2m_dma_desc(struct solo_dev *solo_dev,
49079
49080 /* Get next ID. According to Softlogic, 6110 has problems on !=0 P2M */
49081 if (solo_dev->type != SOLO_DEV_6110 && multi_p2m) {
49082 - p2m_id = atomic_inc_return(&solo_dev->p2m_count) % SOLO_NR_P2M;
49083 + p2m_id = atomic_inc_return_unchecked(&solo_dev->p2m_count) % SOLO_NR_P2M;
49084 if (p2m_id < 0)
49085 p2m_id = -p2m_id;
49086 }
49087 diff --git a/drivers/media/pci/solo6x10/solo6x10.h b/drivers/media/pci/solo6x10/solo6x10.h
49088 index 4ab6586..e1c352e 100644
49089 --- a/drivers/media/pci/solo6x10/solo6x10.h
49090 +++ b/drivers/media/pci/solo6x10/solo6x10.h
49091 @@ -217,7 +217,7 @@ struct solo_dev {
49092
49093 /* P2M DMA Engine */
49094 struct solo_p2m_dev p2m_dev[SOLO_NR_P2M];
49095 - atomic_t p2m_count;
49096 + atomic_unchecked_t p2m_count;
49097 int p2m_jiffies;
49098 unsigned int p2m_timeouts;
49099
49100 diff --git a/drivers/media/pci/tw68/tw68-core.c b/drivers/media/pci/tw68/tw68-core.c
49101 index 4e77618..e6f33c8 100644
49102 --- a/drivers/media/pci/tw68/tw68-core.c
49103 +++ b/drivers/media/pci/tw68/tw68-core.c
49104 @@ -61,7 +61,7 @@ static unsigned int card[] = {[0 ... (TW68_MAXBOARDS - 1)] = UNSET };
49105 module_param_array(card, int, NULL, 0444);
49106 MODULE_PARM_DESC(card, "card type");
49107
49108 -static atomic_t tw68_instance = ATOMIC_INIT(0);
49109 +static atomic_unchecked_t tw68_instance = ATOMIC_INIT(0);
49110
49111 /* ------------------------------------------------------------------ */
49112
49113 diff --git a/drivers/media/pci/zoran/zoran.h b/drivers/media/pci/zoran/zoran.h
49114 index 4e7db89..bd7ef95 100644
49115 --- a/drivers/media/pci/zoran/zoran.h
49116 +++ b/drivers/media/pci/zoran/zoran.h
49117 @@ -178,7 +178,6 @@ struct zoran_fh;
49118
49119 struct zoran_mapping {
49120 struct zoran_fh *fh;
49121 - atomic_t count;
49122 };
49123
49124 struct zoran_buffer {
49125 diff --git a/drivers/media/pci/zoran/zoran_driver.c b/drivers/media/pci/zoran/zoran_driver.c
49126 index 80caa70..d076ecf 100644
49127 --- a/drivers/media/pci/zoran/zoran_driver.c
49128 +++ b/drivers/media/pci/zoran/zoran_driver.c
49129 @@ -2607,8 +2607,6 @@ zoran_poll (struct file *file,
49130 static void
49131 zoran_vm_open (struct vm_area_struct *vma)
49132 {
49133 - struct zoran_mapping *map = vma->vm_private_data;
49134 - atomic_inc(&map->count);
49135 }
49136
49137 static void
49138 @@ -2736,7 +2734,6 @@ zoran_mmap (struct file *file,
49139 return res;
49140 }
49141 map->fh = fh;
49142 - atomic_set(&map->count, 1);
49143
49144 vma->vm_ops = &zoran_vm_ops;
49145 vma->vm_flags |= VM_DONTEXPAND;
49146 diff --git a/drivers/media/platform/omap/omap_vout.c b/drivers/media/platform/omap/omap_vout.c
49147 index 70c28d1..ff21b13 100644
49148 --- a/drivers/media/platform/omap/omap_vout.c
49149 +++ b/drivers/media/platform/omap/omap_vout.c
49150 @@ -63,7 +63,6 @@ enum omap_vout_channels {
49151 OMAP_VIDEO2,
49152 };
49153
49154 -static struct videobuf_queue_ops video_vbq_ops;
49155 /* Variables configurable through module params*/
49156 static u32 video1_numbuffers = 3;
49157 static u32 video2_numbuffers = 3;
49158 @@ -1001,6 +1000,12 @@ static int omap_vout_open(struct file *file)
49159 {
49160 struct videobuf_queue *q;
49161 struct omap_vout_device *vout = NULL;
49162 + static struct videobuf_queue_ops video_vbq_ops = {
49163 + .buf_setup = omap_vout_buffer_setup,
49164 + .buf_prepare = omap_vout_buffer_prepare,
49165 + .buf_release = omap_vout_buffer_release,
49166 + .buf_queue = omap_vout_buffer_queue,
49167 + };
49168
49169 vout = video_drvdata(file);
49170 v4l2_dbg(1, debug, &vout->vid_dev->v4l2_dev, "Entering %s\n", __func__);
49171 @@ -1018,10 +1023,6 @@ static int omap_vout_open(struct file *file)
49172 vout->type = V4L2_BUF_TYPE_VIDEO_OUTPUT;
49173
49174 q = &vout->vbq;
49175 - video_vbq_ops.buf_setup = omap_vout_buffer_setup;
49176 - video_vbq_ops.buf_prepare = omap_vout_buffer_prepare;
49177 - video_vbq_ops.buf_release = omap_vout_buffer_release;
49178 - video_vbq_ops.buf_queue = omap_vout_buffer_queue;
49179 spin_lock_init(&vout->vbq_lock);
49180
49181 videobuf_queue_dma_contig_init(q, &video_vbq_ops, q->dev,
49182 diff --git a/drivers/media/platform/s5p-tv/mixer.h b/drivers/media/platform/s5p-tv/mixer.h
49183 index 42cd270..b8ebb97 100644
49184 --- a/drivers/media/platform/s5p-tv/mixer.h
49185 +++ b/drivers/media/platform/s5p-tv/mixer.h
49186 @@ -156,7 +156,7 @@ struct mxr_layer {
49187 /** layer index (unique identifier) */
49188 int idx;
49189 /** callbacks for layer methods */
49190 - struct mxr_layer_ops ops;
49191 + struct mxr_layer_ops *ops;
49192 /** format array */
49193 const struct mxr_format **fmt_array;
49194 /** size of format array */
49195 diff --git a/drivers/media/platform/s5p-tv/mixer_grp_layer.c b/drivers/media/platform/s5p-tv/mixer_grp_layer.c
49196 index db3163b2..d7a6b4d 100644
49197 --- a/drivers/media/platform/s5p-tv/mixer_grp_layer.c
49198 +++ b/drivers/media/platform/s5p-tv/mixer_grp_layer.c
49199 @@ -235,7 +235,7 @@ struct mxr_layer *mxr_graph_layer_create(struct mxr_device *mdev, int idx)
49200 {
49201 struct mxr_layer *layer;
49202 int ret;
49203 - struct mxr_layer_ops ops = {
49204 + static struct mxr_layer_ops ops = {
49205 .release = mxr_graph_layer_release,
49206 .buffer_set = mxr_graph_buffer_set,
49207 .stream_set = mxr_graph_stream_set,
49208 diff --git a/drivers/media/platform/s5p-tv/mixer_reg.c b/drivers/media/platform/s5p-tv/mixer_reg.c
49209 index a0ec14a..225f4ac 100644
49210 --- a/drivers/media/platform/s5p-tv/mixer_reg.c
49211 +++ b/drivers/media/platform/s5p-tv/mixer_reg.c
49212 @@ -276,7 +276,7 @@ static void mxr_irq_layer_handle(struct mxr_layer *layer)
49213 layer->update_buf = next;
49214 }
49215
49216 - layer->ops.buffer_set(layer, layer->update_buf);
49217 + layer->ops->buffer_set(layer, layer->update_buf);
49218
49219 if (done && done != layer->shadow_buf)
49220 vb2_buffer_done(&done->vb.vb2_buf, VB2_BUF_STATE_DONE);
49221 diff --git a/drivers/media/platform/s5p-tv/mixer_video.c b/drivers/media/platform/s5p-tv/mixer_video.c
49222 index dc1c679..30aae739b 100644
49223 --- a/drivers/media/platform/s5p-tv/mixer_video.c
49224 +++ b/drivers/media/platform/s5p-tv/mixer_video.c
49225 @@ -210,7 +210,7 @@ static void mxr_layer_default_geo(struct mxr_layer *layer)
49226 layer->geo.src.height = layer->geo.src.full_height;
49227
49228 mxr_geometry_dump(mdev, &layer->geo);
49229 - layer->ops.fix_geometry(layer, MXR_GEOMETRY_SINK, 0);
49230 + layer->ops->fix_geometry(layer, MXR_GEOMETRY_SINK, 0);
49231 mxr_geometry_dump(mdev, &layer->geo);
49232 }
49233
49234 @@ -228,7 +228,7 @@ static void mxr_layer_update_output(struct mxr_layer *layer)
49235 layer->geo.dst.full_width = mbus_fmt.width;
49236 layer->geo.dst.full_height = mbus_fmt.height;
49237 layer->geo.dst.field = mbus_fmt.field;
49238 - layer->ops.fix_geometry(layer, MXR_GEOMETRY_SINK, 0);
49239 + layer->ops->fix_geometry(layer, MXR_GEOMETRY_SINK, 0);
49240
49241 mxr_geometry_dump(mdev, &layer->geo);
49242 }
49243 @@ -334,7 +334,7 @@ static int mxr_s_fmt(struct file *file, void *priv,
49244 /* set source size to highest accepted value */
49245 geo->src.full_width = max(geo->dst.full_width, pix->width);
49246 geo->src.full_height = max(geo->dst.full_height, pix->height);
49247 - layer->ops.fix_geometry(layer, MXR_GEOMETRY_SOURCE, 0);
49248 + layer->ops->fix_geometry(layer, MXR_GEOMETRY_SOURCE, 0);
49249 mxr_geometry_dump(mdev, &layer->geo);
49250 /* set cropping to total visible screen */
49251 geo->src.width = pix->width;
49252 @@ -342,12 +342,12 @@ static int mxr_s_fmt(struct file *file, void *priv,
49253 geo->src.x_offset = 0;
49254 geo->src.y_offset = 0;
49255 /* assure consistency of geometry */
49256 - layer->ops.fix_geometry(layer, MXR_GEOMETRY_CROP, MXR_NO_OFFSET);
49257 + layer->ops->fix_geometry(layer, MXR_GEOMETRY_CROP, MXR_NO_OFFSET);
49258 mxr_geometry_dump(mdev, &layer->geo);
49259 /* set full size to lowest possible value */
49260 geo->src.full_width = 0;
49261 geo->src.full_height = 0;
49262 - layer->ops.fix_geometry(layer, MXR_GEOMETRY_SOURCE, 0);
49263 + layer->ops->fix_geometry(layer, MXR_GEOMETRY_SOURCE, 0);
49264 mxr_geometry_dump(mdev, &layer->geo);
49265
49266 /* returning results */
49267 @@ -474,7 +474,7 @@ static int mxr_s_selection(struct file *file, void *fh,
49268 target->width = s->r.width;
49269 target->height = s->r.height;
49270
49271 - layer->ops.fix_geometry(layer, stage, s->flags);
49272 + layer->ops->fix_geometry(layer, stage, s->flags);
49273
49274 /* retrieve update selection rectangle */
49275 res.left = target->x_offset;
49276 @@ -939,13 +939,13 @@ static int start_streaming(struct vb2_queue *vq, unsigned int count)
49277 mxr_output_get(mdev);
49278
49279 mxr_layer_update_output(layer);
49280 - layer->ops.format_set(layer);
49281 + layer->ops->format_set(layer);
49282 /* enabling layer in hardware */
49283 spin_lock_irqsave(&layer->enq_slock, flags);
49284 layer->state = MXR_LAYER_STREAMING;
49285 spin_unlock_irqrestore(&layer->enq_slock, flags);
49286
49287 - layer->ops.stream_set(layer, MXR_ENABLE);
49288 + layer->ops->stream_set(layer, MXR_ENABLE);
49289 mxr_streamer_get(mdev);
49290
49291 return 0;
49292 @@ -1017,7 +1017,7 @@ static void stop_streaming(struct vb2_queue *vq)
49293 spin_unlock_irqrestore(&layer->enq_slock, flags);
49294
49295 /* disabling layer in hardware */
49296 - layer->ops.stream_set(layer, MXR_DISABLE);
49297 + layer->ops->stream_set(layer, MXR_DISABLE);
49298 /* remove one streamer */
49299 mxr_streamer_put(mdev);
49300 /* allow changes in output configuration */
49301 @@ -1055,8 +1055,8 @@ void mxr_base_layer_unregister(struct mxr_layer *layer)
49302
49303 void mxr_layer_release(struct mxr_layer *layer)
49304 {
49305 - if (layer->ops.release)
49306 - layer->ops.release(layer);
49307 + if (layer->ops->release)
49308 + layer->ops->release(layer);
49309 }
49310
49311 void mxr_base_layer_release(struct mxr_layer *layer)
49312 @@ -1082,7 +1082,7 @@ struct mxr_layer *mxr_base_layer_create(struct mxr_device *mdev,
49313
49314 layer->mdev = mdev;
49315 layer->idx = idx;
49316 - layer->ops = *ops;
49317 + layer->ops = ops;
49318
49319 spin_lock_init(&layer->enq_slock);
49320 INIT_LIST_HEAD(&layer->enq_list);
49321 diff --git a/drivers/media/platform/s5p-tv/mixer_vp_layer.c b/drivers/media/platform/s5p-tv/mixer_vp_layer.c
49322 index dd002a4..7fafd8a 100644
49323 --- a/drivers/media/platform/s5p-tv/mixer_vp_layer.c
49324 +++ b/drivers/media/platform/s5p-tv/mixer_vp_layer.c
49325 @@ -207,7 +207,7 @@ struct mxr_layer *mxr_vp_layer_create(struct mxr_device *mdev, int idx)
49326 {
49327 struct mxr_layer *layer;
49328 int ret;
49329 - struct mxr_layer_ops ops = {
49330 + static struct mxr_layer_ops ops = {
49331 .release = mxr_vp_layer_release,
49332 .buffer_set = mxr_vp_buffer_set,
49333 .stream_set = mxr_vp_stream_set,
49334 diff --git a/drivers/media/platform/sti/c8sectpfe/Kconfig b/drivers/media/platform/sti/c8sectpfe/Kconfig
49335 index 7420a50..e6f31a0 100644
49336 --- a/drivers/media/platform/sti/c8sectpfe/Kconfig
49337 +++ b/drivers/media/platform/sti/c8sectpfe/Kconfig
49338 @@ -4,6 +4,7 @@ config DVB_C8SECTPFE
49339 depends on ARCH_STI || ARCH_MULTIPLATFORM || COMPILE_TEST
49340 select FW_LOADER
49341 select DEBUG_FS
49342 + depends on !GRKERNSEC_KMEM
49343 select DVB_LNBP21 if MEDIA_SUBDRV_AUTOSELECT
49344 select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT
49345 select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT
49346 diff --git a/drivers/media/radio/radio-cadet.c b/drivers/media/radio/radio-cadet.c
49347 index 82affae..42833ec 100644
49348 --- a/drivers/media/radio/radio-cadet.c
49349 +++ b/drivers/media/radio/radio-cadet.c
49350 @@ -333,6 +333,8 @@ static ssize_t cadet_read(struct file *file, char __user *data, size_t count, lo
49351 unsigned char readbuf[RDS_BUFFER];
49352 int i = 0;
49353
49354 + if (count > RDS_BUFFER)
49355 + return -EFAULT;
49356 mutex_lock(&dev->lock);
49357 if (dev->rdsstat == 0)
49358 cadet_start_rds(dev);
49359 @@ -349,8 +351,9 @@ static ssize_t cadet_read(struct file *file, char __user *data, size_t count, lo
49360 readbuf[i++] = dev->rdsbuf[dev->rdsout++];
49361 mutex_unlock(&dev->lock);
49362
49363 - if (i && copy_to_user(data, readbuf, i))
49364 - return -EFAULT;
49365 + if (i > sizeof(readbuf) || (i && copy_to_user(data, readbuf, i)))
49366 + i = -EFAULT;
49367 +
49368 return i;
49369 }
49370
49371 diff --git a/drivers/media/radio/radio-maxiradio.c b/drivers/media/radio/radio-maxiradio.c
49372 index 5236035..c622c74 100644
49373 --- a/drivers/media/radio/radio-maxiradio.c
49374 +++ b/drivers/media/radio/radio-maxiradio.c
49375 @@ -61,7 +61,7 @@ MODULE_PARM_DESC(radio_nr, "Radio device number");
49376 /* TEA5757 pin mappings */
49377 static const int clk = 1, data = 2, wren = 4, mo_st = 8, power = 16;
49378
49379 -static atomic_t maxiradio_instance = ATOMIC_INIT(0);
49380 +static atomic_unchecked_t maxiradio_instance = ATOMIC_INIT(0);
49381
49382 #define PCI_VENDOR_ID_GUILLEMOT 0x5046
49383 #define PCI_DEVICE_ID_GUILLEMOT_MAXIRADIO 0x1001
49384 diff --git a/drivers/media/radio/radio-shark.c b/drivers/media/radio/radio-shark.c
49385 index 050b3bb..79f62b9 100644
49386 --- a/drivers/media/radio/radio-shark.c
49387 +++ b/drivers/media/radio/radio-shark.c
49388 @@ -79,7 +79,7 @@ struct shark_device {
49389 u32 last_val;
49390 };
49391
49392 -static atomic_t shark_instance = ATOMIC_INIT(0);
49393 +static atomic_unchecked_t shark_instance = ATOMIC_INIT(0);
49394
49395 static void shark_write_val(struct snd_tea575x *tea, u32 val)
49396 {
49397 diff --git a/drivers/media/radio/radio-shark2.c b/drivers/media/radio/radio-shark2.c
49398 index 8654e0d..0608a64 100644
49399 --- a/drivers/media/radio/radio-shark2.c
49400 +++ b/drivers/media/radio/radio-shark2.c
49401 @@ -74,7 +74,7 @@ struct shark_device {
49402 u8 *transfer_buffer;
49403 };
49404
49405 -static atomic_t shark_instance = ATOMIC_INIT(0);
49406 +static atomic_unchecked_t shark_instance = ATOMIC_INIT(0);
49407
49408 static int shark_write_reg(struct radio_tea5777 *tea, u64 reg)
49409 {
49410 diff --git a/drivers/media/radio/radio-si476x.c b/drivers/media/radio/radio-si476x.c
49411 index 9cbb8cd..2bf2ff3 100644
49412 --- a/drivers/media/radio/radio-si476x.c
49413 +++ b/drivers/media/radio/radio-si476x.c
49414 @@ -1445,7 +1445,7 @@ static int si476x_radio_probe(struct platform_device *pdev)
49415 struct si476x_radio *radio;
49416 struct v4l2_ctrl *ctrl;
49417
49418 - static atomic_t instance = ATOMIC_INIT(0);
49419 + static atomic_unchecked_t instance = ATOMIC_INIT(0);
49420
49421 radio = devm_kzalloc(&pdev->dev, sizeof(*radio), GFP_KERNEL);
49422 if (!radio)
49423 diff --git a/drivers/media/radio/wl128x/fmdrv_common.c b/drivers/media/radio/wl128x/fmdrv_common.c
49424 index ebc73b0..ca6babf 100644
49425 --- a/drivers/media/radio/wl128x/fmdrv_common.c
49426 +++ b/drivers/media/radio/wl128x/fmdrv_common.c
49427 @@ -71,7 +71,7 @@ module_param(default_rds_buf, uint, 0444);
49428 MODULE_PARM_DESC(rds_buf, "RDS buffer entries");
49429
49430 /* Radio Nr */
49431 -static u32 radio_nr = -1;
49432 +static int radio_nr = -1;
49433 module_param(radio_nr, int, 0444);
49434 MODULE_PARM_DESC(radio_nr, "Radio Nr");
49435
49436 diff --git a/drivers/media/usb/dvb-usb/cinergyT2-core.c b/drivers/media/usb/dvb-usb/cinergyT2-core.c
49437 index 9fd1527..8927230 100644
49438 --- a/drivers/media/usb/dvb-usb/cinergyT2-core.c
49439 +++ b/drivers/media/usb/dvb-usb/cinergyT2-core.c
49440 @@ -50,29 +50,73 @@ static struct dvb_usb_device_properties cinergyt2_properties;
49441
49442 static int cinergyt2_streaming_ctrl(struct dvb_usb_adapter *adap, int enable)
49443 {
49444 - char buf[] = { CINERGYT2_EP1_CONTROL_STREAM_TRANSFER, enable ? 1 : 0 };
49445 - char result[64];
49446 - return dvb_usb_generic_rw(adap->dev, buf, sizeof(buf), result,
49447 - sizeof(result), 0);
49448 + char *buf;
49449 + char *result;
49450 + int retval;
49451 +
49452 + buf = kmalloc(2, GFP_KERNEL);
49453 + if (buf == NULL)
49454 + return -ENOMEM;
49455 + result = kmalloc(64, GFP_KERNEL);
49456 + if (result == NULL) {
49457 + kfree(buf);
49458 + return -ENOMEM;
49459 + }
49460 +
49461 + buf[0] = CINERGYT2_EP1_CONTROL_STREAM_TRANSFER;
49462 + buf[1] = enable ? 1 : 0;
49463 +
49464 + retval = dvb_usb_generic_rw(adap->dev, buf, 2, result, 64, 0);
49465 +
49466 + kfree(buf);
49467 + kfree(result);
49468 + return retval;
49469 }
49470
49471 static int cinergyt2_power_ctrl(struct dvb_usb_device *d, int enable)
49472 {
49473 - char buf[] = { CINERGYT2_EP1_SLEEP_MODE, enable ? 0 : 1 };
49474 - char state[3];
49475 - return dvb_usb_generic_rw(d, buf, sizeof(buf), state, sizeof(state), 0);
49476 + char *buf;
49477 + char *state;
49478 + int retval;
49479 +
49480 + buf = kmalloc(2, GFP_KERNEL);
49481 + if (buf == NULL)
49482 + return -ENOMEM;
49483 + state = kmalloc(3, GFP_KERNEL);
49484 + if (state == NULL) {
49485 + kfree(buf);
49486 + return -ENOMEM;
49487 + }
49488 +
49489 + buf[0] = CINERGYT2_EP1_SLEEP_MODE;
49490 + buf[1] = enable ? 1 : 0;
49491 +
49492 + retval = dvb_usb_generic_rw(d, buf, 2, state, 3, 0);
49493 +
49494 + kfree(buf);
49495 + kfree(state);
49496 + return retval;
49497 }
49498
49499 static int cinergyt2_frontend_attach(struct dvb_usb_adapter *adap)
49500 {
49501 - char query[] = { CINERGYT2_EP1_GET_FIRMWARE_VERSION };
49502 - char state[3];
49503 + char *query;
49504 + char *state;
49505 int ret;
49506 + query = kmalloc(1, GFP_KERNEL);
49507 + if (query == NULL)
49508 + return -ENOMEM;
49509 + state = kmalloc(3, GFP_KERNEL);
49510 + if (state == NULL) {
49511 + kfree(query);
49512 + return -ENOMEM;
49513 + }
49514 +
49515 + query[0] = CINERGYT2_EP1_GET_FIRMWARE_VERSION;
49516
49517 adap->fe_adap[0].fe = cinergyt2_fe_attach(adap->dev);
49518
49519 - ret = dvb_usb_generic_rw(adap->dev, query, sizeof(query), state,
49520 - sizeof(state), 0);
49521 + ret = dvb_usb_generic_rw(adap->dev, query, 1, state, 3, 0);
49522 if (ret < 0) {
49523 deb_rc("cinergyt2_power_ctrl() Failed to retrieve sleep "
49524 "state info\n");
49525 @@ -80,7 +124,8 @@ static int cinergyt2_frontend_attach(struct dvb_usb_adapter *adap)
49526
49527 /* Copy this pointer as we are gonna need it in the release phase */
49528 cinergyt2_usb_device = adap->dev;
49529 -
49530 + kfree(query);
49531 + kfree(state);
49532 return 0;
49533 }
49534
49535 @@ -141,12 +186,23 @@ static int repeatable_keys[] = {
49536 static int cinergyt2_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
49537 {
49538 struct cinergyt2_state *st = d->priv;
49539 - u8 key[5] = {0, 0, 0, 0, 0}, cmd = CINERGYT2_EP1_GET_RC_EVENTS;
49540 + u8 *key, *cmd;
49541 int i;
49542
49543 + cmd = kmalloc(1, GFP_KERNEL);
49544 + if (cmd == NULL)
49545 + return -EINVAL;
49546 + key = kzalloc(5, GFP_KERNEL);
49547 + if (key == NULL) {
49548 + kfree(cmd);
49549 + return -EINVAL;
49550 + }
49551 +
49552 + cmd[0] = CINERGYT2_EP1_GET_RC_EVENTS;
49553 +
49554 *state = REMOTE_NO_KEY_PRESSED;
49555
49556 - dvb_usb_generic_rw(d, &cmd, 1, key, sizeof(key), 0);
49557 + dvb_usb_generic_rw(d, cmd, 1, key, 5, 0);
49558 if (key[4] == 0xff) {
49559 /* key repeat */
49560 st->rc_counter++;
49561 @@ -157,12 +213,12 @@ static int cinergyt2_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
49562 *event = d->last_event;
49563 deb_rc("repeat key, event %x\n",
49564 *event);
49565 - return 0;
49566 + goto out;
49567 }
49568 }
49569 deb_rc("repeated key (non repeatable)\n");
49570 }
49571 - return 0;
49572 + goto out;
49573 }
49574
49575 /* hack to pass checksum on the custom field */
49576 @@ -174,6 +230,9 @@ static int cinergyt2_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
49577
49578 deb_rc("key: %*ph\n", 5, key);
49579 }
49580 +out:
49581 + kfree(cmd);
49582 + kfree(key);
49583 return 0;
49584 }
49585
49586 diff --git a/drivers/media/usb/dvb-usb/cinergyT2-fe.c b/drivers/media/usb/dvb-usb/cinergyT2-fe.c
49587 index b3ec743..9c0e418 100644
49588 --- a/drivers/media/usb/dvb-usb/cinergyT2-fe.c
49589 +++ b/drivers/media/usb/dvb-usb/cinergyT2-fe.c
49590 @@ -145,103 +145,176 @@ static int cinergyt2_fe_read_status(struct dvb_frontend *fe,
49591 enum fe_status *status)
49592 {
49593 struct cinergyt2_fe_state *state = fe->demodulator_priv;
49594 - struct dvbt_get_status_msg result;
49595 - u8 cmd[] = { CINERGYT2_EP1_GET_TUNER_STATUS };
49596 + struct dvbt_get_status_msg *result;
49597 + u8 *cmd;
49598 int ret;
49599
49600 - ret = dvb_usb_generic_rw(state->d, cmd, sizeof(cmd), (u8 *)&result,
49601 - sizeof(result), 0);
49602 + cmd = kmalloc(1, GFP_KERNEL);
49603 + if (cmd == NULL)
49604 + return -ENOMEM;
49605 + result = kmalloc(sizeof(*result), GFP_KERNEL);
49606 + if (result == NULL) {
49607 + kfree(cmd);
49608 + return -ENOMEM;
49609 + }
49610 +
49611 + cmd[0] = CINERGYT2_EP1_GET_TUNER_STATUS;
49612 +
49613 + ret = dvb_usb_generic_rw(state->d, cmd, 1, (u8 *)result,
49614 + sizeof(*result), 0);
49615 if (ret < 0)
49616 - return ret;
49617 + goto out;
49618
49619 *status = 0;
49620
49621 - if (0xffff - le16_to_cpu(result.gain) > 30)
49622 + if (0xffff - le16_to_cpu(result->gain) > 30)
49623 *status |= FE_HAS_SIGNAL;
49624 - if (result.lock_bits & (1 << 6))
49625 + if (result->lock_bits & (1 << 6))
49626 *status |= FE_HAS_LOCK;
49627 - if (result.lock_bits & (1 << 5))
49628 + if (result->lock_bits & (1 << 5))
49629 *status |= FE_HAS_SYNC;
49630 - if (result.lock_bits & (1 << 4))
49631 + if (result->lock_bits & (1 << 4))
49632 *status |= FE_HAS_CARRIER;
49633 - if (result.lock_bits & (1 << 1))
49634 + if (result->lock_bits & (1 << 1))
49635 *status |= FE_HAS_VITERBI;
49636
49637 if ((*status & (FE_HAS_CARRIER | FE_HAS_VITERBI | FE_HAS_SYNC)) !=
49638 (FE_HAS_CARRIER | FE_HAS_VITERBI | FE_HAS_SYNC))
49639 *status &= ~FE_HAS_LOCK;
49640
49641 - return 0;
49642 +out:
49643 + kfree(cmd);
49644 + kfree(result);
49645 + return ret;
49646 }
49647
49648 static int cinergyt2_fe_read_ber(struct dvb_frontend *fe, u32 *ber)
49649 {
49650 struct cinergyt2_fe_state *state = fe->demodulator_priv;
49651 - struct dvbt_get_status_msg status;
49652 - char cmd[] = { CINERGYT2_EP1_GET_TUNER_STATUS };
49653 + struct dvbt_get_status_msg *status;
49654 + char *cmd;
49655 int ret;
49656
49657 - ret = dvb_usb_generic_rw(state->d, cmd, sizeof(cmd), (char *)&status,
49658 - sizeof(status), 0);
49659 + cmd = kmalloc(1, GFP_KERNEL);
49660 + if (cmd == NULL)
49661 + return -ENOMEM;
49662 + status = kmalloc(sizeof(*status), GFP_KERNEL);
49663 + if (status == NULL) {
49664 + kfree(cmd);
49665 + return -ENOMEM;
49666 + }
49667 +
49668 + cmd[0] = CINERGYT2_EP1_GET_TUNER_STATUS;
49669 +
49670 + ret = dvb_usb_generic_rw(state->d, cmd, 1, (char *)status,
49671 + sizeof(*status), 0);
49672 if (ret < 0)
49673 - return ret;
49674 + goto out;
49675
49676 - *ber = le32_to_cpu(status.viterbi_error_rate);
49677 + *ber = le32_to_cpu(status->viterbi_error_rate);
49678 +out:
49679 + kfree(cmd);
49680 + kfree(status);
49681 return 0;
49682 }
49683
49684 static int cinergyt2_fe_read_unc_blocks(struct dvb_frontend *fe, u32 *unc)
49685 {
49686 struct cinergyt2_fe_state *state = fe->demodulator_priv;
49687 - struct dvbt_get_status_msg status;
49688 - u8 cmd[] = { CINERGYT2_EP1_GET_TUNER_STATUS };
49689 + struct dvbt_get_status_msg *status;
49690 + u8 *cmd;
49691 int ret;
49692
49693 - ret = dvb_usb_generic_rw(state->d, cmd, sizeof(cmd), (u8 *)&status,
49694 - sizeof(status), 0);
49695 + cmd = kmalloc(1, GFP_KERNEL);
49696 + if (cmd == NULL)
49697 + return -ENOMEM;
49698 + status = kmalloc(sizeof(*status), GFP_KERNEL);
49699 + if (status == NULL) {
49700 + kfree(cmd);
49701 + return -ENOMEM;
49702 + }
49703 +
49704 + cmd[0] = CINERGYT2_EP1_GET_TUNER_STATUS;
49705 +
49706 + ret = dvb_usb_generic_rw(state->d, cmd, 1, (u8 *)status,
49707 + sizeof(*status), 0);
49708 if (ret < 0) {
49709 err("cinergyt2_fe_read_unc_blocks() Failed! (Error=%d)\n",
49710 ret);
49711 - return ret;
49712 + goto out;
49713 }
49714 - *unc = le32_to_cpu(status.uncorrected_block_count);
49715 - return 0;
49716 + *unc = le32_to_cpu(status->uncorrected_block_count);
49717 +
49718 +out:
49719 + kfree(cmd);
49720 + kfree(status);
49721 + return ret;
49722 }
49723
49724 static int cinergyt2_fe_read_signal_strength(struct dvb_frontend *fe,
49725 u16 *strength)
49726 {
49727 struct cinergyt2_fe_state *state = fe->demodulator_priv;
49728 - struct dvbt_get_status_msg status;
49729 - char cmd[] = { CINERGYT2_EP1_GET_TUNER_STATUS };
49730 + struct dvbt_get_status_msg *status;
49731 + char *cmd;
49732 int ret;
49733
49734 - ret = dvb_usb_generic_rw(state->d, cmd, sizeof(cmd), (char *)&status,
49735 - sizeof(status), 0);
49736 + cmd = kmalloc(1, GFP_KERNEL);
49737 + if (cmd == NULL)
49738 + return -ENOMEM;
49739 + status = kmalloc(sizeof(*status), GFP_KERNEL);
49740 + if (status == NULL) {
49741 + kfree(cmd);
49742 + return -ENOMEM;
49743 + }
49744 +
49745 + cmd[0] = CINERGYT2_EP1_GET_TUNER_STATUS;
49746 +
49747 + ret = dvb_usb_generic_rw(state->d, cmd, 1, (char *)status,
49748 + sizeof(*status), 0);
49749 if (ret < 0) {
49750 err("cinergyt2_fe_read_signal_strength() Failed!"
49751 " (Error=%d)\n", ret);
49752 - return ret;
49753 + goto out;
49754 }
49755 - *strength = (0xffff - le16_to_cpu(status.gain));
49756 + *strength = (0xffff - le16_to_cpu(status->gain));
49757 +
49758 +out:
49759 + kfree(cmd);
49760 + kfree(status);
49761 return 0;
49762 }
49763
49764 static int cinergyt2_fe_read_snr(struct dvb_frontend *fe, u16 *snr)
49765 {
49766 struct cinergyt2_fe_state *state = fe->demodulator_priv;
49767 - struct dvbt_get_status_msg status;
49768 - char cmd[] = { CINERGYT2_EP1_GET_TUNER_STATUS };
49769 + struct dvbt_get_status_msg *status;
49770 + char *cmd;
49771 int ret;
49772
49773 - ret = dvb_usb_generic_rw(state->d, cmd, sizeof(cmd), (char *)&status,
49774 - sizeof(status), 0);
49775 + cmd = kmalloc(1, GFP_KERNEL);
49776 + if (cmd == NULL)
49777 + return -ENOMEM;
49778 + status = kmalloc(sizeof(*status), GFP_KERNEL);
49779 + if (status == NULL) {
49780 + kfree(cmd);
49781 + return -ENOMEM;
49782 + }
49783 +
49784 + cmd[0] = CINERGYT2_EP1_GET_TUNER_STATUS;
49785 +
49786 + ret = dvb_usb_generic_rw(state->d, cmd, 1, (char *)status,
49787 + sizeof(*status), 0);
49788 if (ret < 0) {
49789 err("cinergyt2_fe_read_snr() Failed! (Error=%d)\n", ret);
49790 - return ret;
49791 + goto out;
49792 }
49793 - *snr = (status.snr << 8) | status.snr;
49794 - return 0;
49795 + *snr = (status->snr << 8) | status->snr;
49796 +
49797 +out:
49798 + kfree(cmd);
49799 + kfree(status);
49800 + return ret;
49801 }
49802
49803 static int cinergyt2_fe_init(struct dvb_frontend *fe)
49804 @@ -266,35 +339,46 @@ static int cinergyt2_fe_set_frontend(struct dvb_frontend *fe)
49805 {
49806 struct dtv_frontend_properties *fep = &fe->dtv_property_cache;
49807 struct cinergyt2_fe_state *state = fe->demodulator_priv;
49808 - struct dvbt_set_parameters_msg param;
49809 - char result[2];
49810 + struct dvbt_set_parameters_msg *param;
49811 + char *result;
49812 int err;
49813
49814 - param.cmd = CINERGYT2_EP1_SET_TUNER_PARAMETERS;
49815 - param.tps = cpu_to_le16(compute_tps(fep));
49816 - param.freq = cpu_to_le32(fep->frequency / 1000);
49817 - param.flags = 0;
49818 + result = kmalloc(2, GFP_KERNEL);
49819 + if (result == NULL)
49820 + return -ENOMEM;
49821 + param = kmalloc(sizeof(*param), GFP_KERNEL);
49822 + if (param == NULL) {
49823 + kfree(result);
49824 + return -ENOMEM;
49825 + }
49826 +
49827 + param->cmd = CINERGYT2_EP1_SET_TUNER_PARAMETERS;
49828 + param->tps = cpu_to_le16(compute_tps(fep));
49829 + param->freq = cpu_to_le32(fep->frequency / 1000);
49830 + param->flags = 0;
49831
49832 switch (fep->bandwidth_hz) {
49833 default:
49834 case 8000000:
49835 - param.bandwidth = 8;
49836 + param->bandwidth = 8;
49837 break;
49838 case 7000000:
49839 - param.bandwidth = 7;
49840 + param->bandwidth = 7;
49841 break;
49842 case 6000000:
49843 - param.bandwidth = 6;
49844 + param->bandwidth = 6;
49845 break;
49846 }
49847
49848 err = dvb_usb_generic_rw(state->d,
49849 - (char *)&param, sizeof(param),
49850 - result, sizeof(result), 0);
49851 + (char *)param, sizeof(*param),
49852 + result, 2, 0);
49853 if (err < 0)
49854 err("cinergyt2_fe_set_frontend() Failed! err=%d\n", err);
49855
49856 - return (err < 0) ? err : 0;
49857 + kfree(result);
49858 + kfree(param);
49859 + return err;
49860 }
49861
49862 static void cinergyt2_fe_release(struct dvb_frontend *fe)
49863 diff --git a/drivers/media/usb/dvb-usb/dvb-usb-firmware.c b/drivers/media/usb/dvb-usb/dvb-usb-firmware.c
49864 index 733a7ff..f8b52e3 100644
49865 --- a/drivers/media/usb/dvb-usb/dvb-usb-firmware.c
49866 +++ b/drivers/media/usb/dvb-usb/dvb-usb-firmware.c
49867 @@ -35,42 +35,57 @@ static int usb_cypress_writemem(struct usb_device *udev,u16 addr,u8 *data, u8 le
49868
49869 int usb_cypress_load_firmware(struct usb_device *udev, const struct firmware *fw, int type)
49870 {
49871 - struct hexline hx;
49872 - u8 reset;
49873 + struct hexline *hx;
49874 + u8 *reset;
49875 int ret,pos=0;
49876
49877 + reset = kmalloc(1, GFP_KERNEL);
49878 + if (reset == NULL)
49879 + return -ENOMEM;
49880 +
49881 + hx = kmalloc(sizeof(struct hexline), GFP_KERNEL);
49882 + if (hx == NULL) {
49883 + kfree(reset);
49884 + return -ENOMEM;
49885 + }
49886 +
49887 /* stop the CPU */
49888 - reset = 1;
49889 - if ((ret = usb_cypress_writemem(udev,cypress[type].cpu_cs_register,&reset,1)) != 1)
49890 + reset[0] = 1;
49891 + if ((ret = usb_cypress_writemem(udev,cypress[type].cpu_cs_register,reset,1)) != 1)
49892 err("could not stop the USB controller CPU.");
49893
49894 - while ((ret = dvb_usb_get_hexline(fw,&hx,&pos)) > 0) {
49895 - deb_fw("writing to address 0x%04x (buffer: 0x%02x %02x)\n",hx.addr,hx.len,hx.chk);
49896 - ret = usb_cypress_writemem(udev,hx.addr,hx.data,hx.len);
49897 + while ((ret = dvb_usb_get_hexline(fw,hx,&pos)) > 0) {
49898 + deb_fw("writing to address 0x%04x (buffer: 0x%02x %02x)\n",hx->addr,hx->len,hx->chk);
49899 + ret = usb_cypress_writemem(udev,hx->addr,hx->data,hx->len);
49900
49901 - if (ret != hx.len) {
49902 + if (ret != hx->len) {
49903 err("error while transferring firmware "
49904 "(transferred size: %d, block size: %d)",
49905 - ret,hx.len);
49906 + ret,hx->len);
49907 ret = -EINVAL;
49908 break;
49909 }
49910 }
49911 if (ret < 0) {
49912 err("firmware download failed at %d with %d",pos,ret);
49913 + kfree(reset);
49914 + kfree(hx);
49915 return ret;
49916 }
49917
49918 if (ret == 0) {
49919 /* restart the CPU */
49920 - reset = 0;
49921 - if (ret || usb_cypress_writemem(udev,cypress[type].cpu_cs_register,&reset,1) != 1) {
49922 + reset[0] = 0;
49923 + if (ret || usb_cypress_writemem(udev,cypress[type].cpu_cs_register,reset,1) != 1) {
49924 err("could not restart the USB controller CPU.");
49925 ret = -EINVAL;
49926 }
49927 } else
49928 ret = -EIO;
49929
49930 + kfree(reset);
49931 + kfree(hx);
49932 +
49933 return ret;
49934 }
49935 EXPORT_SYMBOL(usb_cypress_load_firmware);
49936 diff --git a/drivers/media/usb/dvb-usb/technisat-usb2.c b/drivers/media/usb/dvb-usb/technisat-usb2.c
49937 index 6c3c477..6c435a4 100644
49938 --- a/drivers/media/usb/dvb-usb/technisat-usb2.c
49939 +++ b/drivers/media/usb/dvb-usb/technisat-usb2.c
49940 @@ -87,8 +87,11 @@ struct technisat_usb2_state {
49941 static int technisat_usb2_i2c_access(struct usb_device *udev,
49942 u8 device_addr, u8 *tx, u8 txlen, u8 *rx, u8 rxlen)
49943 {
49944 - u8 b[64];
49945 - int ret, actual_length;
49946 + u8 *b = kmalloc(64, GFP_KERNEL);
49947 + int ret, actual_length, error = 0;
49948 +
49949 + if (b == NULL)
49950 + return -ENOMEM;
49951
49952 deb_i2c("i2c-access: %02x, tx: ", device_addr);
49953 debug_dump(tx, txlen, deb_i2c);
49954 @@ -121,7 +124,8 @@ static int technisat_usb2_i2c_access(struct usb_device *udev,
49955
49956 if (ret < 0) {
49957 err("i2c-error: out failed %02x = %d", device_addr, ret);
49958 - return -ENODEV;
49959 + error = -ENODEV;
49960 + goto out;
49961 }
49962
49963 ret = usb_bulk_msg(udev,
49964 @@ -129,7 +133,8 @@ static int technisat_usb2_i2c_access(struct usb_device *udev,
49965 b, 64, &actual_length, 1000);
49966 if (ret < 0) {
49967 err("i2c-error: in failed %02x = %d", device_addr, ret);
49968 - return -ENODEV;
49969 + error = -ENODEV;
49970 + goto out;
49971 }
49972
49973 if (b[0] != I2C_STATUS_OK) {
49974 @@ -137,8 +142,10 @@ static int technisat_usb2_i2c_access(struct usb_device *udev,
49975 /* handle tuner-i2c-nak */
49976 if (!(b[0] == I2C_STATUS_NAK &&
49977 device_addr == 0x60
49978 - /* && device_is_technisat_usb2 */))
49979 - return -ENODEV;
49980 + /* && device_is_technisat_usb2 */)) {
49981 + error = -ENODEV;
49982 + goto out;
49983 + }
49984 }
49985
49986 deb_i2c("status: %d, ", b[0]);
49987 @@ -152,7 +159,9 @@ static int technisat_usb2_i2c_access(struct usb_device *udev,
49988
49989 deb_i2c("\n");
49990
49991 - return 0;
49992 +out:
49993 + kfree(b);
49994 + return error;
49995 }
49996
49997 static int technisat_usb2_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msg,
49998 @@ -224,14 +233,16 @@ static int technisat_usb2_set_led(struct dvb_usb_device *d, int red, enum techni
49999 {
50000 int ret;
50001
50002 - u8 led[8] = {
50003 - red ? SET_RED_LED_VENDOR_REQUEST : SET_GREEN_LED_VENDOR_REQUEST,
50004 - 0
50005 - };
50006 + u8 *led = kzalloc(8, GFP_KERNEL);
50007 +
50008 + if (led == NULL)
50009 + return -ENOMEM;
50010
50011 if (disable_led_control && state != TECH_LED_OFF)
50012 return 0;
50013
50014 + led[0] = red ? SET_RED_LED_VENDOR_REQUEST : SET_GREEN_LED_VENDOR_REQUEST;
50015 +
50016 switch (state) {
50017 case TECH_LED_ON:
50018 led[1] = 0x82;
50019 @@ -263,16 +274,22 @@ static int technisat_usb2_set_led(struct dvb_usb_device *d, int red, enum techni
50020 red ? SET_RED_LED_VENDOR_REQUEST : SET_GREEN_LED_VENDOR_REQUEST,
50021 USB_TYPE_VENDOR | USB_DIR_OUT,
50022 0, 0,
50023 - led, sizeof(led), 500);
50024 + led, 8, 500);
50025
50026 mutex_unlock(&d->i2c_mutex);
50027 +
50028 + kfree(led);
50029 +
50030 return ret;
50031 }
50032
50033 static int technisat_usb2_set_led_timer(struct dvb_usb_device *d, u8 red, u8 green)
50034 {
50035 int ret;
50036 - u8 b = 0;
50037 + u8 *b = kzalloc(1, GFP_KERNEL);
50038 +
50039 + if (b == NULL)
50040 + return -ENOMEM;
50041
50042 if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
50043 return -EAGAIN;
50044 @@ -281,10 +298,12 @@ static int technisat_usb2_set_led_timer(struct dvb_usb_device *d, u8 red, u8 gre
50045 SET_LED_TIMER_DIVIDER_VENDOR_REQUEST,
50046 USB_TYPE_VENDOR | USB_DIR_OUT,
50047 (red << 8) | green, 0,
50048 - &b, 1, 500);
50049 + b, 1, 500);
50050
50051 mutex_unlock(&d->i2c_mutex);
50052
50053 + kfree(b);
50054 +
50055 return ret;
50056 }
50057
50058 @@ -328,7 +347,7 @@ static int technisat_usb2_identify_state(struct usb_device *udev,
50059 struct dvb_usb_device_description **desc, int *cold)
50060 {
50061 int ret;
50062 - u8 version[3];
50063 + u8 *version = kmalloc(3, GFP_KERNEL);
50064
50065 /* first select the interface */
50066 if (usb_set_interface(udev, 0, 1) != 0)
50067 @@ -338,11 +357,14 @@ static int technisat_usb2_identify_state(struct usb_device *udev,
50068
50069 *cold = 0; /* by default do not download a firmware - just in case something is wrong */
50070
50071 + if (version == NULL)
50072 + return 0;
50073 +
50074 ret = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0),
50075 GET_VERSION_INFO_VENDOR_REQUEST,
50076 USB_TYPE_VENDOR | USB_DIR_IN,
50077 0, 0,
50078 - version, sizeof(version), 500);
50079 + version, 3, 500);
50080
50081 if (ret < 0)
50082 *cold = 1;
50083 @@ -351,6 +373,8 @@ static int technisat_usb2_identify_state(struct usb_device *udev,
50084 *cold = 0;
50085 }
50086
50087 + kfree(version);
50088 +
50089 return 0;
50090 }
50091
50092 @@ -594,10 +618,15 @@ static int technisat_usb2_frontend_attach(struct dvb_usb_adapter *a)
50093
50094 static int technisat_usb2_get_ir(struct dvb_usb_device *d)
50095 {
50096 - u8 buf[62], *b;
50097 + u8 *buf, *b;
50098 int ret;
50099 struct ir_raw_event ev;
50100
50101 + buf = kmalloc(62, GFP_KERNEL);
50102 +
50103 + if (buf == NULL)
50104 + return -ENOMEM;
50105 +
50106 buf[0] = GET_IR_DATA_VENDOR_REQUEST;
50107 buf[1] = 0x08;
50108 buf[2] = 0x8f;
50109 @@ -620,16 +649,20 @@ static int technisat_usb2_get_ir(struct dvb_usb_device *d)
50110 GET_IR_DATA_VENDOR_REQUEST,
50111 USB_TYPE_VENDOR | USB_DIR_IN,
50112 0x8080, 0,
50113 - buf, sizeof(buf), 500);
50114 + buf, 62, 500);
50115
50116 unlock:
50117 mutex_unlock(&d->i2c_mutex);
50118
50119 - if (ret < 0)
50120 + if (ret < 0) {
50121 + kfree(buf);
50122 return ret;
50123 + }
50124
50125 - if (ret == 1)
50126 + if (ret == 1) {
50127 + kfree(buf);
50128 return 0; /* no key pressed */
50129 + }
50130
50131 /* decoding */
50132 b = buf+1;
50133 @@ -656,6 +689,8 @@ unlock:
50134
50135 ir_raw_event_handle(d->rc_dev);
50136
50137 + kfree(buf);
50138 +
50139 return 1;
50140 }
50141
50142 diff --git a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
50143 index 327e83a..b0963b7 100644
50144 --- a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
50145 +++ b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
50146 @@ -450,7 +450,7 @@ static int get_v4l2_buffer32(struct v4l2_buffer *kp, struct v4l2_buffer32 __user
50147 * by passing a very big num_planes value */
50148 uplane = compat_alloc_user_space(num_planes *
50149 sizeof(struct v4l2_plane));
50150 - kp->m.planes = (__force struct v4l2_plane *)uplane;
50151 + kp->m.planes = (__force_kernel struct v4l2_plane *)uplane;
50152
50153 while (--num_planes >= 0) {
50154 ret = get_v4l2_plane32(uplane, uplane32, kp->memory);
50155 @@ -521,7 +521,7 @@ static int put_v4l2_buffer32(struct v4l2_buffer *kp, struct v4l2_buffer32 __user
50156 if (num_planes == 0)
50157 return 0;
50158
50159 - uplane = (__force struct v4l2_plane __user *)kp->m.planes;
50160 + uplane = (struct v4l2_plane __force_user *)kp->m.planes;
50161 if (get_user(p, &up->m.planes))
50162 return -EFAULT;
50163 uplane32 = compat_ptr(p);
50164 @@ -585,7 +585,7 @@ static int get_v4l2_framebuffer32(struct v4l2_framebuffer *kp, struct v4l2_frame
50165 get_user(kp->flags, &up->flags) ||
50166 copy_from_user(&kp->fmt, &up->fmt, sizeof(up->fmt)))
50167 return -EFAULT;
50168 - kp->base = (__force void *)compat_ptr(tmp);
50169 + kp->base = (__force_kernel void *)compat_ptr(tmp);
50170 return 0;
50171 }
50172
50173 @@ -691,7 +691,7 @@ static int get_v4l2_ext_controls32(struct v4l2_ext_controls *kp, struct v4l2_ext
50174 n * sizeof(struct v4l2_ext_control32)))
50175 return -EFAULT;
50176 kcontrols = compat_alloc_user_space(n * sizeof(struct v4l2_ext_control));
50177 - kp->controls = (__force struct v4l2_ext_control *)kcontrols;
50178 + kp->controls = (__force_kernel struct v4l2_ext_control *)kcontrols;
50179 while (--n >= 0) {
50180 u32 id;
50181
50182 @@ -718,7 +718,7 @@ static int put_v4l2_ext_controls32(struct v4l2_ext_controls *kp, struct v4l2_ext
50183 {
50184 struct v4l2_ext_control32 __user *ucontrols;
50185 struct v4l2_ext_control __user *kcontrols =
50186 - (__force struct v4l2_ext_control __user *)kp->controls;
50187 + (struct v4l2_ext_control __force_user *)kp->controls;
50188 int n = kp->count;
50189 compat_caddr_t p;
50190
50191 @@ -803,7 +803,7 @@ static int get_v4l2_edid32(struct v4l2_edid *kp, struct v4l2_edid32 __user *up)
50192 get_user(tmp, &up->edid) ||
50193 copy_from_user(kp->reserved, up->reserved, sizeof(kp->reserved)))
50194 return -EFAULT;
50195 - kp->edid = (__force u8 *)compat_ptr(tmp);
50196 + kp->edid = (__force_kernel u8 *)compat_ptr(tmp);
50197 return 0;
50198 }
50199
50200 diff --git a/drivers/media/v4l2-core/v4l2-device.c b/drivers/media/v4l2-core/v4l2-device.c
50201 index 5b0a30b..1974b38 100644
50202 --- a/drivers/media/v4l2-core/v4l2-device.c
50203 +++ b/drivers/media/v4l2-core/v4l2-device.c
50204 @@ -74,9 +74,9 @@ int v4l2_device_put(struct v4l2_device *v4l2_dev)
50205 EXPORT_SYMBOL_GPL(v4l2_device_put);
50206
50207 int v4l2_device_set_name(struct v4l2_device *v4l2_dev, const char *basename,
50208 - atomic_t *instance)
50209 + atomic_unchecked_t *instance)
50210 {
50211 - int num = atomic_inc_return(instance) - 1;
50212 + int num = atomic_inc_return_unchecked(instance) - 1;
50213 int len = strlen(basename);
50214
50215 if (basename[len - 1] >= '0' && basename[len - 1] <= '9')
50216 diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
50217 index 7486af2..a1f2e87 100644
50218 --- a/drivers/media/v4l2-core/v4l2-ioctl.c
50219 +++ b/drivers/media/v4l2-core/v4l2-ioctl.c
50220 @@ -2382,7 +2382,8 @@ struct v4l2_ioctl_info {
50221 struct file *file, void *fh, void *p);
50222 } u;
50223 void (*debug)(const void *arg, bool write_only);
50224 -};
50225 +} __do_const;
50226 +typedef struct v4l2_ioctl_info __no_const v4l2_ioctl_info_no_const;
50227
50228 /* This control needs a priority check */
50229 #define INFO_FL_PRIO (1 << 0)
50230 @@ -2566,7 +2567,7 @@ static long __video_do_ioctl(struct file *file,
50231 struct video_device *vfd = video_devdata(file);
50232 const struct v4l2_ioctl_ops *ops = vfd->ioctl_ops;
50233 bool write_only = false;
50234 - struct v4l2_ioctl_info default_info;
50235 + v4l2_ioctl_info_no_const default_info;
50236 const struct v4l2_ioctl_info *info;
50237 void *fh = file->private_data;
50238 struct v4l2_fh *vfh = NULL;
50239 @@ -2657,7 +2658,7 @@ static int check_array_args(unsigned int cmd, void *parg, size_t *array_size,
50240 ret = -EINVAL;
50241 break;
50242 }
50243 - *user_ptr = (void __user *)buf->m.planes;
50244 + *user_ptr = (void __force_user *)buf->m.planes;
50245 *kernel_ptr = (void **)&buf->m.planes;
50246 *array_size = sizeof(struct v4l2_plane) * buf->length;
50247 ret = 1;
50248 @@ -2674,7 +2675,7 @@ static int check_array_args(unsigned int cmd, void *parg, size_t *array_size,
50249 ret = -EINVAL;
50250 break;
50251 }
50252 - *user_ptr = (void __user *)edid->edid;
50253 + *user_ptr = (void __force_user *)edid->edid;
50254 *kernel_ptr = (void **)&edid->edid;
50255 *array_size = edid->blocks * 128;
50256 ret = 1;
50257 @@ -2692,7 +2693,7 @@ static int check_array_args(unsigned int cmd, void *parg, size_t *array_size,
50258 ret = -EINVAL;
50259 break;
50260 }
50261 - *user_ptr = (void __user *)ctrls->controls;
50262 + *user_ptr = (void __force_user *)ctrls->controls;
50263 *kernel_ptr = (void **)&ctrls->controls;
50264 *array_size = sizeof(struct v4l2_ext_control)
50265 * ctrls->count;
50266 @@ -2793,7 +2794,7 @@ video_usercopy(struct file *file, unsigned int cmd, unsigned long arg,
50267 }
50268
50269 if (has_array_args) {
50270 - *kernel_ptr = (void __force *)user_ptr;
50271 + *kernel_ptr = (void __force_kernel *)user_ptr;
50272 if (copy_to_user(user_ptr, mbuf, array_size))
50273 err = -EFAULT;
50274 goto out_array_args;
50275 diff --git a/drivers/memory/omap-gpmc.c b/drivers/memory/omap-gpmc.c
50276 index 6515dfc..3d39b80 100644
50277 --- a/drivers/memory/omap-gpmc.c
50278 +++ b/drivers/memory/omap-gpmc.c
50279 @@ -232,7 +232,6 @@ struct omap3_gpmc_regs {
50280 };
50281
50282 static struct gpmc_client_irq gpmc_client_irq[GPMC_NR_IRQ];
50283 -static struct irq_chip gpmc_irq_chip;
50284 static int gpmc_irq_start;
50285
50286 static struct resource gpmc_mem_root;
50287 @@ -1145,6 +1144,17 @@ static void gpmc_irq_noop(struct irq_data *data) { }
50288
50289 static unsigned int gpmc_irq_noop_ret(struct irq_data *data) { return 0; }
50290
50291 +static struct irq_chip gpmc_irq_chip = {
50292 + .name = "gpmc",
50293 + .irq_startup = gpmc_irq_noop_ret,
50294 + .irq_enable = gpmc_irq_enable,
50295 + .irq_disable = gpmc_irq_disable,
50296 + .irq_shutdown = gpmc_irq_noop,
50297 + .irq_ack = gpmc_irq_noop,
50298 + .irq_mask = gpmc_irq_noop,
50299 + .irq_unmask = gpmc_irq_noop,
50300 +};
50301 +
50302 static int gpmc_setup_irq(void)
50303 {
50304 int i;
50305 @@ -1159,15 +1169,6 @@ static int gpmc_setup_irq(void)
50306 return gpmc_irq_start;
50307 }
50308
50309 - gpmc_irq_chip.name = "gpmc";
50310 - gpmc_irq_chip.irq_startup = gpmc_irq_noop_ret;
50311 - gpmc_irq_chip.irq_enable = gpmc_irq_enable;
50312 - gpmc_irq_chip.irq_disable = gpmc_irq_disable;
50313 - gpmc_irq_chip.irq_shutdown = gpmc_irq_noop;
50314 - gpmc_irq_chip.irq_ack = gpmc_irq_noop;
50315 - gpmc_irq_chip.irq_mask = gpmc_irq_noop;
50316 - gpmc_irq_chip.irq_unmask = gpmc_irq_noop;
50317 -
50318 gpmc_client_irq[0].bitmask = GPMC_IRQ_FIFOEVENTENABLE;
50319 gpmc_client_irq[1].bitmask = GPMC_IRQ_COUNT_EVENT;
50320
50321 diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
50322 index 5dcc031..e08ecd2 100644
50323 --- a/drivers/message/fusion/mptbase.c
50324 +++ b/drivers/message/fusion/mptbase.c
50325 @@ -6722,8 +6722,13 @@ static int mpt_iocinfo_proc_show(struct seq_file *m, void *v)
50326 seq_printf(m, " MaxChainDepth = 0x%02x frames\n", ioc->facts.MaxChainDepth);
50327 seq_printf(m, " MinBlockSize = 0x%02x bytes\n", 4*ioc->facts.BlockSize);
50328
50329 +#ifdef CONFIG_GRKERNSEC_HIDESYM
50330 + seq_printf(m, " RequestFrames @ 0x%p (Dma @ 0x%p)\n", NULL, NULL);
50331 +#else
50332 seq_printf(m, " RequestFrames @ 0x%p (Dma @ 0x%p)\n",
50333 (void *)ioc->req_frames, (void *)(ulong)ioc->req_frames_dma);
50334 +#endif
50335 +
50336 /*
50337 * Rounding UP to nearest 4-kB boundary here...
50338 */
50339 @@ -6736,7 +6741,11 @@ static int mpt_iocinfo_proc_show(struct seq_file *m, void *v)
50340 ioc->facts.GlobalCredits);
50341
50342 seq_printf(m, " Frames @ 0x%p (Dma @ 0x%p)\n",
50343 +#ifdef CONFIG_GRKERNSEC_HIDESYM
50344 + NULL, NULL);
50345 +#else
50346 (void *)ioc->alloc, (void *)(ulong)ioc->alloc_dma);
50347 +#endif
50348 sz = (ioc->reply_sz * ioc->reply_depth) + 128;
50349 seq_printf(m, " {CurRepSz=%d} x {CurRepDepth=%d} = %d bytes ^= 0x%x\n",
50350 ioc->reply_sz, ioc->reply_depth, ioc->reply_sz*ioc->reply_depth, sz);
50351 diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
50352 index 7ebccfa..a0cd0e6 100644
50353 --- a/drivers/message/fusion/mptsas.c
50354 +++ b/drivers/message/fusion/mptsas.c
50355 @@ -446,6 +446,23 @@ mptsas_is_end_device(struct mptsas_devinfo * attached)
50356 return 0;
50357 }
50358
50359 +static inline void
50360 +mptsas_set_rphy(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info, struct sas_rphy *rphy)
50361 +{
50362 + if (phy_info->port_details) {
50363 + phy_info->port_details->rphy = rphy;
50364 + dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "sas_rphy_add: rphy=%p\n",
50365 + ioc->name, rphy));
50366 + }
50367 +
50368 + if (rphy) {
50369 + dsaswideprintk(ioc, dev_printk(KERN_DEBUG,
50370 + &rphy->dev, MYIOC_s_FMT "add:", ioc->name));
50371 + dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "rphy=%p release=%p\n",
50372 + ioc->name, rphy, rphy->dev.release));
50373 + }
50374 +}
50375 +
50376 /* no mutex */
50377 static void
50378 mptsas_port_delete(MPT_ADAPTER *ioc, struct mptsas_portinfo_details * port_details)
50379 @@ -484,23 +501,6 @@ mptsas_get_rphy(struct mptsas_phyinfo *phy_info)
50380 return NULL;
50381 }
50382
50383 -static inline void
50384 -mptsas_set_rphy(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info, struct sas_rphy *rphy)
50385 -{
50386 - if (phy_info->port_details) {
50387 - phy_info->port_details->rphy = rphy;
50388 - dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "sas_rphy_add: rphy=%p\n",
50389 - ioc->name, rphy));
50390 - }
50391 -
50392 - if (rphy) {
50393 - dsaswideprintk(ioc, dev_printk(KERN_DEBUG,
50394 - &rphy->dev, MYIOC_s_FMT "add:", ioc->name));
50395 - dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "rphy=%p release=%p\n",
50396 - ioc->name, rphy, rphy->dev.release));
50397 - }
50398 -}
50399 -
50400 static inline struct sas_port *
50401 mptsas_get_port(struct mptsas_phyinfo *phy_info)
50402 {
50403 diff --git a/drivers/mfd/ab8500-debugfs.c b/drivers/mfd/ab8500-debugfs.c
50404 index 0236cd7..53b10d7 100644
50405 --- a/drivers/mfd/ab8500-debugfs.c
50406 +++ b/drivers/mfd/ab8500-debugfs.c
50407 @@ -100,7 +100,7 @@ static int irq_last;
50408 static u32 *irq_count;
50409 static int num_irqs;
50410
50411 -static struct device_attribute **dev_attr;
50412 +static device_attribute_no_const **dev_attr;
50413 static char **event_name;
50414
50415 static u8 avg_sample = SAMPLE_16;
50416 diff --git a/drivers/mfd/kempld-core.c b/drivers/mfd/kempld-core.c
50417 index 05b9245..9f05055 100644
50418 --- a/drivers/mfd/kempld-core.c
50419 +++ b/drivers/mfd/kempld-core.c
50420 @@ -494,7 +494,7 @@ static struct platform_driver kempld_driver = {
50421 .remove = kempld_remove,
50422 };
50423
50424 -static struct dmi_system_id kempld_dmi_table[] __initdata = {
50425 +static const struct dmi_system_id kempld_dmi_table[] __initconst = {
50426 {
50427 .ident = "BBL6",
50428 .matches = {
50429 diff --git a/drivers/mfd/max8925-i2c.c b/drivers/mfd/max8925-i2c.c
50430 index b0fe810..eee08c4 100644
50431 --- a/drivers/mfd/max8925-i2c.c
50432 +++ b/drivers/mfd/max8925-i2c.c
50433 @@ -152,7 +152,7 @@ static int max8925_probe(struct i2c_client *client,
50434 const struct i2c_device_id *id)
50435 {
50436 struct max8925_platform_data *pdata = dev_get_platdata(&client->dev);
50437 - static struct max8925_chip *chip;
50438 + struct max8925_chip *chip;
50439 struct device_node *node = client->dev.of_node;
50440
50441 if (node && !pdata) {
50442 diff --git a/drivers/mfd/tps65910.c b/drivers/mfd/tps65910.c
50443 index f7ab115..16b2087 100644
50444 --- a/drivers/mfd/tps65910.c
50445 +++ b/drivers/mfd/tps65910.c
50446 @@ -230,7 +230,7 @@ static int tps65910_irq_init(struct tps65910 *tps65910, int irq,
50447 struct tps65910_platform_data *pdata)
50448 {
50449 int ret = 0;
50450 - static struct regmap_irq_chip *tps6591x_irqs_chip;
50451 + struct regmap_irq_chip *tps6591x_irqs_chip;
50452
50453 if (!irq) {
50454 dev_warn(tps65910->dev, "No interrupt support, no core IRQ\n");
50455 diff --git a/drivers/mfd/twl4030-irq.c b/drivers/mfd/twl4030-irq.c
50456 index 40e51b0..b986312 100644
50457 --- a/drivers/mfd/twl4030-irq.c
50458 +++ b/drivers/mfd/twl4030-irq.c
50459 @@ -34,6 +34,7 @@
50460 #include <linux/of.h>
50461 #include <linux/irqdomain.h>
50462 #include <linux/i2c/twl.h>
50463 +#include <asm/pgtable.h>
50464
50465 #include "twl-core.h"
50466
50467 @@ -720,10 +721,12 @@ int twl4030_init_irq(struct device *dev, int irq_num)
50468 * Install an irq handler for each of the SIH modules;
50469 * clone dummy irq_chip since PIH can't *do* anything
50470 */
50471 - twl4030_irq_chip = dummy_irq_chip;
50472 - twl4030_irq_chip.name = "twl4030";
50473 + pax_open_kernel();
50474 + memcpy((void *)&twl4030_irq_chip, &dummy_irq_chip, sizeof twl4030_irq_chip);
50475 + *(const char **)&twl4030_irq_chip.name = "twl4030";
50476
50477 - twl4030_sih_irq_chip.irq_ack = dummy_irq_chip.irq_ack;
50478 + *(void **)&twl4030_sih_irq_chip.irq_ack = dummy_irq_chip.irq_ack;
50479 + pax_close_kernel();
50480
50481 for (i = irq_base; i < irq_end; i++) {
50482 irq_set_chip_and_handler(i, &twl4030_irq_chip,
50483 diff --git a/drivers/misc/c2port/core.c b/drivers/misc/c2port/core.c
50484 index cc8645b..7cc15e4 100644
50485 --- a/drivers/misc/c2port/core.c
50486 +++ b/drivers/misc/c2port/core.c
50487 @@ -922,7 +922,9 @@ struct c2port_device *c2port_device_register(char *name,
50488 goto error_idr_alloc;
50489 c2dev->id = ret;
50490
50491 - bin_attr_flash_data.size = ops->blocks_num * ops->block_size;
50492 + pax_open_kernel();
50493 + *(size_t *)&bin_attr_flash_data.size = ops->blocks_num * ops->block_size;
50494 + pax_close_kernel();
50495
50496 c2dev->dev = device_create(c2port_class, NULL, 0, c2dev,
50497 "c2port%d", c2dev->id);
50498 diff --git a/drivers/misc/kgdbts.c b/drivers/misc/kgdbts.c
50499 index 99635dd..5098638 100644
50500 --- a/drivers/misc/kgdbts.c
50501 +++ b/drivers/misc/kgdbts.c
50502 @@ -834,7 +834,7 @@ static void run_plant_and_detach_test(int is_early)
50503 char before[BREAK_INSTR_SIZE];
50504 char after[BREAK_INSTR_SIZE];
50505
50506 - probe_kernel_read(before, (char *)kgdbts_break_test,
50507 + probe_kernel_read(before, (void *)ktla_ktva((unsigned long)kgdbts_break_test),
50508 BREAK_INSTR_SIZE);
50509 init_simple_test();
50510 ts.tst = plant_and_detach_test;
50511 @@ -842,7 +842,7 @@ static void run_plant_and_detach_test(int is_early)
50512 /* Activate test with initial breakpoint */
50513 if (!is_early)
50514 kgdb_breakpoint();
50515 - probe_kernel_read(after, (char *)kgdbts_break_test,
50516 + probe_kernel_read(after, (void *)ktla_ktva((unsigned long)kgdbts_break_test),
50517 BREAK_INSTR_SIZE);
50518 if (memcmp(before, after, BREAK_INSTR_SIZE)) {
50519 printk(KERN_CRIT "kgdbts: ERROR kgdb corrupted memory\n");
50520 diff --git a/drivers/misc/lis3lv02d/lis3lv02d.c b/drivers/misc/lis3lv02d/lis3lv02d.c
50521 index fb8705f..dc2f679 100644
50522 --- a/drivers/misc/lis3lv02d/lis3lv02d.c
50523 +++ b/drivers/misc/lis3lv02d/lis3lv02d.c
50524 @@ -497,7 +497,7 @@ static irqreturn_t lis302dl_interrupt(int irq, void *data)
50525 * the lid is closed. This leads to interrupts as soon as a little move
50526 * is done.
50527 */
50528 - atomic_inc(&lis3->count);
50529 + atomic_inc_unchecked(&lis3->count);
50530
50531 wake_up_interruptible(&lis3->misc_wait);
50532 kill_fasync(&lis3->async_queue, SIGIO, POLL_IN);
50533 @@ -583,7 +583,7 @@ static int lis3lv02d_misc_open(struct inode *inode, struct file *file)
50534 if (lis3->pm_dev)
50535 pm_runtime_get_sync(lis3->pm_dev);
50536
50537 - atomic_set(&lis3->count, 0);
50538 + atomic_set_unchecked(&lis3->count, 0);
50539 return 0;
50540 }
50541
50542 @@ -615,7 +615,7 @@ static ssize_t lis3lv02d_misc_read(struct file *file, char __user *buf,
50543 add_wait_queue(&lis3->misc_wait, &wait);
50544 while (true) {
50545 set_current_state(TASK_INTERRUPTIBLE);
50546 - data = atomic_xchg(&lis3->count, 0);
50547 + data = atomic_xchg_unchecked(&lis3->count, 0);
50548 if (data)
50549 break;
50550
50551 @@ -656,7 +656,7 @@ static unsigned int lis3lv02d_misc_poll(struct file *file, poll_table *wait)
50552 struct lis3lv02d, miscdev);
50553
50554 poll_wait(file, &lis3->misc_wait, wait);
50555 - if (atomic_read(&lis3->count))
50556 + if (atomic_read_unchecked(&lis3->count))
50557 return POLLIN | POLLRDNORM;
50558 return 0;
50559 }
50560 diff --git a/drivers/misc/lis3lv02d/lis3lv02d.h b/drivers/misc/lis3lv02d/lis3lv02d.h
50561 index c439c82..1f20f57 100644
50562 --- a/drivers/misc/lis3lv02d/lis3lv02d.h
50563 +++ b/drivers/misc/lis3lv02d/lis3lv02d.h
50564 @@ -297,7 +297,7 @@ struct lis3lv02d {
50565 struct input_polled_dev *idev; /* input device */
50566 struct platform_device *pdev; /* platform device */
50567 struct regulator_bulk_data regulators[2];
50568 - atomic_t count; /* interrupt count after last read */
50569 + atomic_unchecked_t count; /* interrupt count after last read */
50570 union axis_conversion ac; /* hw -> logical axis */
50571 int mapped_btns[3];
50572
50573 diff --git a/drivers/misc/mic/scif/scif_api.c b/drivers/misc/mic/scif/scif_api.c
50574 index ddc9e4b..7b9c669 100644
50575 --- a/drivers/misc/mic/scif/scif_api.c
50576 +++ b/drivers/misc/mic/scif/scif_api.c
50577 @@ -1486,10 +1486,12 @@ int scif_client_register(struct scif_client *client)
50578 {
50579 struct subsys_interface *si = &client->si;
50580
50581 - si->name = client->name;
50582 - si->subsys = &scif_peer_bus;
50583 - si->add_dev = scif_add_client_dev;
50584 - si->remove_dev = scif_remove_client_dev;
50585 + pax_open_kernel();
50586 + *(const char **)&si->name = client->name;
50587 + *(struct bus_type **)&si->subsys = &scif_peer_bus;
50588 + *(void **)&si->add_dev = scif_add_client_dev;
50589 + *(void **)&si->remove_dev = scif_remove_client_dev;
50590 + pax_close_kernel();
50591
50592 return subsys_interface_register(&client->si);
50593 }
50594 diff --git a/drivers/misc/mic/scif/scif_rb.c b/drivers/misc/mic/scif/scif_rb.c
50595 index 637cc46..4fb1267 100644
50596 --- a/drivers/misc/mic/scif/scif_rb.c
50597 +++ b/drivers/misc/mic/scif/scif_rb.c
50598 @@ -138,7 +138,7 @@ void scif_rb_commit(struct scif_rb *rb)
50599 * the read barrier in scif_rb_count(..)
50600 */
50601 wmb();
50602 - ACCESS_ONCE(*rb->write_ptr) = rb->current_write_offset;
50603 + ACCESS_ONCE_RW(*rb->write_ptr) = rb->current_write_offset;
50604 #ifdef CONFIG_INTEL_MIC_CARD
50605 /*
50606 * X100 Si bug: For the case where a Core is performing an EXT_WR
50607 @@ -147,7 +147,7 @@ void scif_rb_commit(struct scif_rb *rb)
50608 * This way, if ordering is violated for the Interrupt Message, it will
50609 * fall just behind the first Posted associated with the first EXT_WR.
50610 */
50611 - ACCESS_ONCE(*rb->write_ptr) = rb->current_write_offset;
50612 + ACCESS_ONCE_RW(*rb->write_ptr) = rb->current_write_offset;
50613 #endif
50614 }
50615
50616 @@ -210,7 +210,7 @@ void scif_rb_update_read_ptr(struct scif_rb *rb)
50617 * scif_rb_space(..)
50618 */
50619 mb();
50620 - ACCESS_ONCE(*rb->read_ptr) = new_offset;
50621 + ACCESS_ONCE_RW(*rb->read_ptr) = new_offset;
50622 #ifdef CONFIG_INTEL_MIC_CARD
50623 /*
50624 * X100 Si Bug: For the case where a Core is performing an EXT_WR
50625 @@ -219,7 +219,7 @@ void scif_rb_update_read_ptr(struct scif_rb *rb)
50626 * This way, if ordering is violated for the Interrupt Message, it will
50627 * fall just behind the first Posted associated with the first EXT_WR.
50628 */
50629 - ACCESS_ONCE(*rb->read_ptr) = new_offset;
50630 + ACCESS_ONCE_RW(*rb->read_ptr) = new_offset;
50631 #endif
50632 }
50633
50634 diff --git a/drivers/misc/sgi-gru/gruhandles.c b/drivers/misc/sgi-gru/gruhandles.c
50635 index 1ee8e82..785f528 100644
50636 --- a/drivers/misc/sgi-gru/gruhandles.c
50637 +++ b/drivers/misc/sgi-gru/gruhandles.c
50638 @@ -44,8 +44,8 @@ static void update_mcs_stats(enum mcs_op op, unsigned long clks)
50639 unsigned long nsec;
50640
50641 nsec = CLKS2NSEC(clks);
50642 - atomic_long_inc(&mcs_op_statistics[op].count);
50643 - atomic_long_add(nsec, &mcs_op_statistics[op].total);
50644 + atomic_long_inc_unchecked(&mcs_op_statistics[op].count);
50645 + atomic_long_add_unchecked(nsec, &mcs_op_statistics[op].total);
50646 if (mcs_op_statistics[op].max < nsec)
50647 mcs_op_statistics[op].max = nsec;
50648 }
50649 diff --git a/drivers/misc/sgi-gru/gruprocfs.c b/drivers/misc/sgi-gru/gruprocfs.c
50650 index 4f76359..cdfcb2e 100644
50651 --- a/drivers/misc/sgi-gru/gruprocfs.c
50652 +++ b/drivers/misc/sgi-gru/gruprocfs.c
50653 @@ -32,9 +32,9 @@
50654
50655 #define printstat(s, f) printstat_val(s, &gru_stats.f, #f)
50656
50657 -static void printstat_val(struct seq_file *s, atomic_long_t *v, char *id)
50658 +static void printstat_val(struct seq_file *s, atomic_long_unchecked_t *v, char *id)
50659 {
50660 - unsigned long val = atomic_long_read(v);
50661 + unsigned long val = atomic_long_read_unchecked(v);
50662
50663 seq_printf(s, "%16lu %s\n", val, id);
50664 }
50665 @@ -134,8 +134,8 @@ static int mcs_statistics_show(struct seq_file *s, void *p)
50666
50667 seq_printf(s, "%-20s%12s%12s%12s\n", "#id", "count", "aver-clks", "max-clks");
50668 for (op = 0; op < mcsop_last; op++) {
50669 - count = atomic_long_read(&mcs_op_statistics[op].count);
50670 - total = atomic_long_read(&mcs_op_statistics[op].total);
50671 + count = atomic_long_read_unchecked(&mcs_op_statistics[op].count);
50672 + total = atomic_long_read_unchecked(&mcs_op_statistics[op].total);
50673 max = mcs_op_statistics[op].max;
50674 seq_printf(s, "%-20s%12ld%12ld%12ld\n", id[op], count,
50675 count ? total / count : 0, max);
50676 diff --git a/drivers/misc/sgi-gru/grutables.h b/drivers/misc/sgi-gru/grutables.h
50677 index 5c3ce24..4915ccb 100644
50678 --- a/drivers/misc/sgi-gru/grutables.h
50679 +++ b/drivers/misc/sgi-gru/grutables.h
50680 @@ -167,82 +167,82 @@ extern unsigned int gru_max_gids;
50681 * GRU statistics.
50682 */
50683 struct gru_stats_s {
50684 - atomic_long_t vdata_alloc;
50685 - atomic_long_t vdata_free;
50686 - atomic_long_t gts_alloc;
50687 - atomic_long_t gts_free;
50688 - atomic_long_t gms_alloc;
50689 - atomic_long_t gms_free;
50690 - atomic_long_t gts_double_allocate;
50691 - atomic_long_t assign_context;
50692 - atomic_long_t assign_context_failed;
50693 - atomic_long_t free_context;
50694 - atomic_long_t load_user_context;
50695 - atomic_long_t load_kernel_context;
50696 - atomic_long_t lock_kernel_context;
50697 - atomic_long_t unlock_kernel_context;
50698 - atomic_long_t steal_user_context;
50699 - atomic_long_t steal_kernel_context;
50700 - atomic_long_t steal_context_failed;
50701 - atomic_long_t nopfn;
50702 - atomic_long_t asid_new;
50703 - atomic_long_t asid_next;
50704 - atomic_long_t asid_wrap;
50705 - atomic_long_t asid_reuse;
50706 - atomic_long_t intr;
50707 - atomic_long_t intr_cbr;
50708 - atomic_long_t intr_tfh;
50709 - atomic_long_t intr_spurious;
50710 - atomic_long_t intr_mm_lock_failed;
50711 - atomic_long_t call_os;
50712 - atomic_long_t call_os_wait_queue;
50713 - atomic_long_t user_flush_tlb;
50714 - atomic_long_t user_unload_context;
50715 - atomic_long_t user_exception;
50716 - atomic_long_t set_context_option;
50717 - atomic_long_t check_context_retarget_intr;
50718 - atomic_long_t check_context_unload;
50719 - atomic_long_t tlb_dropin;
50720 - atomic_long_t tlb_preload_page;
50721 - atomic_long_t tlb_dropin_fail_no_asid;
50722 - atomic_long_t tlb_dropin_fail_upm;
50723 - atomic_long_t tlb_dropin_fail_invalid;
50724 - atomic_long_t tlb_dropin_fail_range_active;
50725 - atomic_long_t tlb_dropin_fail_idle;
50726 - atomic_long_t tlb_dropin_fail_fmm;
50727 - atomic_long_t tlb_dropin_fail_no_exception;
50728 - atomic_long_t tfh_stale_on_fault;
50729 - atomic_long_t mmu_invalidate_range;
50730 - atomic_long_t mmu_invalidate_page;
50731 - atomic_long_t flush_tlb;
50732 - atomic_long_t flush_tlb_gru;
50733 - atomic_long_t flush_tlb_gru_tgh;
50734 - atomic_long_t flush_tlb_gru_zero_asid;
50735 + atomic_long_unchecked_t vdata_alloc;
50736 + atomic_long_unchecked_t vdata_free;
50737 + atomic_long_unchecked_t gts_alloc;
50738 + atomic_long_unchecked_t gts_free;
50739 + atomic_long_unchecked_t gms_alloc;
50740 + atomic_long_unchecked_t gms_free;
50741 + atomic_long_unchecked_t gts_double_allocate;
50742 + atomic_long_unchecked_t assign_context;
50743 + atomic_long_unchecked_t assign_context_failed;
50744 + atomic_long_unchecked_t free_context;
50745 + atomic_long_unchecked_t load_user_context;
50746 + atomic_long_unchecked_t load_kernel_context;
50747 + atomic_long_unchecked_t lock_kernel_context;
50748 + atomic_long_unchecked_t unlock_kernel_context;
50749 + atomic_long_unchecked_t steal_user_context;
50750 + atomic_long_unchecked_t steal_kernel_context;
50751 + atomic_long_unchecked_t steal_context_failed;
50752 + atomic_long_unchecked_t nopfn;
50753 + atomic_long_unchecked_t asid_new;
50754 + atomic_long_unchecked_t asid_next;
50755 + atomic_long_unchecked_t asid_wrap;
50756 + atomic_long_unchecked_t asid_reuse;
50757 + atomic_long_unchecked_t intr;
50758 + atomic_long_unchecked_t intr_cbr;
50759 + atomic_long_unchecked_t intr_tfh;
50760 + atomic_long_unchecked_t intr_spurious;
50761 + atomic_long_unchecked_t intr_mm_lock_failed;
50762 + atomic_long_unchecked_t call_os;
50763 + atomic_long_unchecked_t call_os_wait_queue;
50764 + atomic_long_unchecked_t user_flush_tlb;
50765 + atomic_long_unchecked_t user_unload_context;
50766 + atomic_long_unchecked_t user_exception;
50767 + atomic_long_unchecked_t set_context_option;
50768 + atomic_long_unchecked_t check_context_retarget_intr;
50769 + atomic_long_unchecked_t check_context_unload;
50770 + atomic_long_unchecked_t tlb_dropin;
50771 + atomic_long_unchecked_t tlb_preload_page;
50772 + atomic_long_unchecked_t tlb_dropin_fail_no_asid;
50773 + atomic_long_unchecked_t tlb_dropin_fail_upm;
50774 + atomic_long_unchecked_t tlb_dropin_fail_invalid;
50775 + atomic_long_unchecked_t tlb_dropin_fail_range_active;
50776 + atomic_long_unchecked_t tlb_dropin_fail_idle;
50777 + atomic_long_unchecked_t tlb_dropin_fail_fmm;
50778 + atomic_long_unchecked_t tlb_dropin_fail_no_exception;
50779 + atomic_long_unchecked_t tfh_stale_on_fault;
50780 + atomic_long_unchecked_t mmu_invalidate_range;
50781 + atomic_long_unchecked_t mmu_invalidate_page;
50782 + atomic_long_unchecked_t flush_tlb;
50783 + atomic_long_unchecked_t flush_tlb_gru;
50784 + atomic_long_unchecked_t flush_tlb_gru_tgh;
50785 + atomic_long_unchecked_t flush_tlb_gru_zero_asid;
50786
50787 - atomic_long_t copy_gpa;
50788 - atomic_long_t read_gpa;
50789 + atomic_long_unchecked_t copy_gpa;
50790 + atomic_long_unchecked_t read_gpa;
50791
50792 - atomic_long_t mesq_receive;
50793 - atomic_long_t mesq_receive_none;
50794 - atomic_long_t mesq_send;
50795 - atomic_long_t mesq_send_failed;
50796 - atomic_long_t mesq_noop;
50797 - atomic_long_t mesq_send_unexpected_error;
50798 - atomic_long_t mesq_send_lb_overflow;
50799 - atomic_long_t mesq_send_qlimit_reached;
50800 - atomic_long_t mesq_send_amo_nacked;
50801 - atomic_long_t mesq_send_put_nacked;
50802 - atomic_long_t mesq_page_overflow;
50803 - atomic_long_t mesq_qf_locked;
50804 - atomic_long_t mesq_qf_noop_not_full;
50805 - atomic_long_t mesq_qf_switch_head_failed;
50806 - atomic_long_t mesq_qf_unexpected_error;
50807 - atomic_long_t mesq_noop_unexpected_error;
50808 - atomic_long_t mesq_noop_lb_overflow;
50809 - atomic_long_t mesq_noop_qlimit_reached;
50810 - atomic_long_t mesq_noop_amo_nacked;
50811 - atomic_long_t mesq_noop_put_nacked;
50812 - atomic_long_t mesq_noop_page_overflow;
50813 + atomic_long_unchecked_t mesq_receive;
50814 + atomic_long_unchecked_t mesq_receive_none;
50815 + atomic_long_unchecked_t mesq_send;
50816 + atomic_long_unchecked_t mesq_send_failed;
50817 + atomic_long_unchecked_t mesq_noop;
50818 + atomic_long_unchecked_t mesq_send_unexpected_error;
50819 + atomic_long_unchecked_t mesq_send_lb_overflow;
50820 + atomic_long_unchecked_t mesq_send_qlimit_reached;
50821 + atomic_long_unchecked_t mesq_send_amo_nacked;
50822 + atomic_long_unchecked_t mesq_send_put_nacked;
50823 + atomic_long_unchecked_t mesq_page_overflow;
50824 + atomic_long_unchecked_t mesq_qf_locked;
50825 + atomic_long_unchecked_t mesq_qf_noop_not_full;
50826 + atomic_long_unchecked_t mesq_qf_switch_head_failed;
50827 + atomic_long_unchecked_t mesq_qf_unexpected_error;
50828 + atomic_long_unchecked_t mesq_noop_unexpected_error;
50829 + atomic_long_unchecked_t mesq_noop_lb_overflow;
50830 + atomic_long_unchecked_t mesq_noop_qlimit_reached;
50831 + atomic_long_unchecked_t mesq_noop_amo_nacked;
50832 + atomic_long_unchecked_t mesq_noop_put_nacked;
50833 + atomic_long_unchecked_t mesq_noop_page_overflow;
50834
50835 };
50836
50837 @@ -251,8 +251,8 @@ enum mcs_op {cchop_allocate, cchop_start, cchop_interrupt, cchop_interrupt_sync,
50838 tghop_invalidate, mcsop_last};
50839
50840 struct mcs_op_statistic {
50841 - atomic_long_t count;
50842 - atomic_long_t total;
50843 + atomic_long_unchecked_t count;
50844 + atomic_long_unchecked_t total;
50845 unsigned long max;
50846 };
50847
50848 @@ -275,7 +275,7 @@ extern struct mcs_op_statistic mcs_op_statistics[mcsop_last];
50849
50850 #define STAT(id) do { \
50851 if (gru_options & OPT_STATS) \
50852 - atomic_long_inc(&gru_stats.id); \
50853 + atomic_long_inc_unchecked(&gru_stats.id); \
50854 } while (0)
50855
50856 #ifdef CONFIG_SGI_GRU_DEBUG
50857 diff --git a/drivers/misc/sgi-xp/xp.h b/drivers/misc/sgi-xp/xp.h
50858 index c862cd4..0d176fe 100644
50859 --- a/drivers/misc/sgi-xp/xp.h
50860 +++ b/drivers/misc/sgi-xp/xp.h
50861 @@ -288,7 +288,7 @@ struct xpc_interface {
50862 xpc_notify_func, void *);
50863 void (*received) (short, int, void *);
50864 enum xp_retval (*partid_to_nasids) (short, void *);
50865 -};
50866 +} __no_const;
50867
50868 extern struct xpc_interface xpc_interface;
50869
50870 diff --git a/drivers/misc/sgi-xp/xp_main.c b/drivers/misc/sgi-xp/xp_main.c
50871 index 01be66d..e3a0c7e 100644
50872 --- a/drivers/misc/sgi-xp/xp_main.c
50873 +++ b/drivers/misc/sgi-xp/xp_main.c
50874 @@ -78,13 +78,13 @@ xpc_notloaded(void)
50875 }
50876
50877 struct xpc_interface xpc_interface = {
50878 - (void (*)(int))xpc_notloaded,
50879 - (void (*)(int))xpc_notloaded,
50880 - (enum xp_retval(*)(short, int, u32, void *, u16))xpc_notloaded,
50881 - (enum xp_retval(*)(short, int, u32, void *, u16, xpc_notify_func,
50882 + .connect = (void (*)(int))xpc_notloaded,
50883 + .disconnect = (void (*)(int))xpc_notloaded,
50884 + .send = (enum xp_retval(*)(short, int, u32, void *, u16))xpc_notloaded,
50885 + .send_notify = (enum xp_retval(*)(short, int, u32, void *, u16, xpc_notify_func,
50886 void *))xpc_notloaded,
50887 - (void (*)(short, int, void *))xpc_notloaded,
50888 - (enum xp_retval(*)(short, void *))xpc_notloaded
50889 + .received = (void (*)(short, int, void *))xpc_notloaded,
50890 + .partid_to_nasids = (enum xp_retval(*)(short, void *))xpc_notloaded
50891 };
50892 EXPORT_SYMBOL_GPL(xpc_interface);
50893
50894 diff --git a/drivers/misc/sgi-xp/xpc.h b/drivers/misc/sgi-xp/xpc.h
50895 index b94d5f7..7f494c5 100644
50896 --- a/drivers/misc/sgi-xp/xpc.h
50897 +++ b/drivers/misc/sgi-xp/xpc.h
50898 @@ -835,6 +835,7 @@ struct xpc_arch_operations {
50899 void (*received_payload) (struct xpc_channel *, void *);
50900 void (*notify_senders_of_disconnect) (struct xpc_channel *);
50901 };
50902 +typedef struct xpc_arch_operations __no_const xpc_arch_operations_no_const;
50903
50904 /* struct xpc_partition act_state values (for XPC HB) */
50905
50906 @@ -876,7 +877,7 @@ extern struct xpc_registration xpc_registrations[];
50907 /* found in xpc_main.c */
50908 extern struct device *xpc_part;
50909 extern struct device *xpc_chan;
50910 -extern struct xpc_arch_operations xpc_arch_ops;
50911 +extern xpc_arch_operations_no_const xpc_arch_ops;
50912 extern int xpc_disengage_timelimit;
50913 extern int xpc_disengage_timedout;
50914 extern int xpc_activate_IRQ_rcvd;
50915 diff --git a/drivers/misc/sgi-xp/xpc_main.c b/drivers/misc/sgi-xp/xpc_main.c
50916 index 7f32712..8539ab2 100644
50917 --- a/drivers/misc/sgi-xp/xpc_main.c
50918 +++ b/drivers/misc/sgi-xp/xpc_main.c
50919 @@ -166,7 +166,7 @@ static struct notifier_block xpc_die_notifier = {
50920 .notifier_call = xpc_system_die,
50921 };
50922
50923 -struct xpc_arch_operations xpc_arch_ops;
50924 +xpc_arch_operations_no_const xpc_arch_ops;
50925
50926 /*
50927 * Timer function to enforce the timelimit on the partition disengage.
50928 diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h
50929 index f695b58..7b7d017 100644
50930 --- a/drivers/mmc/host/dw_mmc.h
50931 +++ b/drivers/mmc/host/dw_mmc.h
50932 @@ -295,5 +295,5 @@ struct dw_mci_drv_data {
50933 struct mmc_ios *ios);
50934 int (*switch_voltage)(struct mmc_host *mmc,
50935 struct mmc_ios *ios);
50936 -};
50937 +} __do_const;
50938 #endif /* _DW_MMC_H_ */
50939 diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
50940 index acece32..a872279 100644
50941 --- a/drivers/mmc/host/mmci.c
50942 +++ b/drivers/mmc/host/mmci.c
50943 @@ -1633,7 +1633,9 @@ static int mmci_probe(struct amba_device *dev,
50944 mmc->caps |= MMC_CAP_CMD23;
50945
50946 if (variant->busy_detect) {
50947 - mmci_ops.card_busy = mmci_card_busy;
50948 + pax_open_kernel();
50949 + *(void **)&mmci_ops.card_busy = mmci_card_busy;
50950 + pax_close_kernel();
50951 mmci_write_datactrlreg(host, MCI_ST_DPSM_BUSYMODE);
50952 mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY;
50953 mmc->max_busy_timeout = 0;
50954 diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
50955 index 7fb0753..ad156f0 100644
50956 --- a/drivers/mmc/host/omap_hsmmc.c
50957 +++ b/drivers/mmc/host/omap_hsmmc.c
50958 @@ -2088,7 +2088,9 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
50959
50960 if (host->pdata->controller_flags & OMAP_HSMMC_BROKEN_MULTIBLOCK_READ) {
50961 dev_info(&pdev->dev, "multiblock reads disabled due to 35xx erratum 2.1.1.128; MMC read performance may suffer\n");
50962 - omap_hsmmc_ops.multi_io_quirk = omap_hsmmc_multi_io_quirk;
50963 + pax_open_kernel();
50964 + *(void **)&omap_hsmmc_ops.multi_io_quirk = omap_hsmmc_multi_io_quirk;
50965 + pax_close_kernel();
50966 }
50967
50968 device_init_wakeup(&pdev->dev, true);
50969 diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
50970 index 1f1582f..b396c3a 100644
50971 --- a/drivers/mmc/host/sdhci-esdhc-imx.c
50972 +++ b/drivers/mmc/host/sdhci-esdhc-imx.c
50973 @@ -1191,9 +1191,12 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
50974 host->ioaddr + 0x6c);
50975 }
50976
50977 - if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING)
50978 - sdhci_esdhc_ops.platform_execute_tuning =
50979 + if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) {
50980 + pax_open_kernel();
50981 + *(void **)&sdhci_esdhc_ops.platform_execute_tuning =
50982 esdhc_executing_tuning;
50983 + pax_close_kernel();
50984 + }
50985
50986 if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING)
50987 writel(readl(host->ioaddr + ESDHC_TUNING_CTRL) |
50988 diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
50989 index 70c724b..308aafc 100644
50990 --- a/drivers/mmc/host/sdhci-s3c.c
50991 +++ b/drivers/mmc/host/sdhci-s3c.c
50992 @@ -598,9 +598,11 @@ static int sdhci_s3c_probe(struct platform_device *pdev)
50993 * we can use overriding functions instead of default.
50994 */
50995 if (sc->no_divider) {
50996 - sdhci_s3c_ops.set_clock = sdhci_cmu_set_clock;
50997 - sdhci_s3c_ops.get_min_clock = sdhci_cmu_get_min_clock;
50998 - sdhci_s3c_ops.get_max_clock = sdhci_cmu_get_max_clock;
50999 + pax_open_kernel();
51000 + *(void **)&sdhci_s3c_ops.set_clock = sdhci_cmu_set_clock;
51001 + *(void **)&sdhci_s3c_ops.get_min_clock = sdhci_cmu_get_min_clock;
51002 + *(void **)&sdhci_s3c_ops.get_max_clock = sdhci_cmu_get_max_clock;
51003 + pax_close_kernel();
51004 }
51005
51006 /* It supports additional host capabilities if needed */
51007 diff --git a/drivers/mtd/chips/cfi_cmdset_0020.c b/drivers/mtd/chips/cfi_cmdset_0020.c
51008 index 9a1a6ff..b8f1a57 100644
51009 --- a/drivers/mtd/chips/cfi_cmdset_0020.c
51010 +++ b/drivers/mtd/chips/cfi_cmdset_0020.c
51011 @@ -666,7 +666,7 @@ cfi_staa_writev(struct mtd_info *mtd, const struct kvec *vecs,
51012 size_t totlen = 0, thislen;
51013 int ret = 0;
51014 size_t buflen = 0;
51015 - static char *buffer;
51016 + char *buffer;
51017
51018 if (!ECCBUF_SIZE) {
51019 /* We should fall back to a general writev implementation.
51020 diff --git a/drivers/mtd/nand/denali.c b/drivers/mtd/nand/denali.c
51021 index 67eb2be..d1e2bf5 100644
51022 --- a/drivers/mtd/nand/denali.c
51023 +++ b/drivers/mtd/nand/denali.c
51024 @@ -24,6 +24,7 @@
51025 #include <linux/slab.h>
51026 #include <linux/mtd/mtd.h>
51027 #include <linux/module.h>
51028 +#include <linux/slab.h>
51029
51030 #include "denali.h"
51031
51032 diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
51033 index 2064ada..7c62920 100644
51034 --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
51035 +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
51036 @@ -386,7 +386,7 @@ void prepare_data_dma(struct gpmi_nand_data *this, enum dma_data_direction dr)
51037
51038 /* first try to map the upper buffer directly */
51039 if (virt_addr_valid(this->upper_buf) &&
51040 - !object_is_on_stack(this->upper_buf)) {
51041 + !object_starts_on_stack(this->upper_buf)) {
51042 sg_init_one(sgl, this->upper_buf, this->upper_len);
51043 ret = dma_map_sg(this->dev, sgl, 1, dr);
51044 if (ret == 0)
51045 diff --git a/drivers/mtd/nftlmount.c b/drivers/mtd/nftlmount.c
51046 index a5dfbfb..8042ab4 100644
51047 --- a/drivers/mtd/nftlmount.c
51048 +++ b/drivers/mtd/nftlmount.c
51049 @@ -24,6 +24,7 @@
51050 #include <asm/errno.h>
51051 #include <linux/delay.h>
51052 #include <linux/slab.h>
51053 +#include <linux/sched.h>
51054 #include <linux/mtd/mtd.h>
51055 #include <linux/mtd/nand.h>
51056 #include <linux/mtd/nftl.h>
51057 diff --git a/drivers/mtd/sm_ftl.c b/drivers/mtd/sm_ftl.c
51058 index c23184a..4115c41 100644
51059 --- a/drivers/mtd/sm_ftl.c
51060 +++ b/drivers/mtd/sm_ftl.c
51061 @@ -56,7 +56,7 @@ static ssize_t sm_attr_show(struct device *dev, struct device_attribute *attr,
51062 #define SM_CIS_VENDOR_OFFSET 0x59
51063 static struct attribute_group *sm_create_sysfs_attributes(struct sm_ftl *ftl)
51064 {
51065 - struct attribute_group *attr_group;
51066 + attribute_group_no_const *attr_group;
51067 struct attribute **attributes;
51068 struct sm_sysfs_attribute *vendor_attribute;
51069 char *vendor;
51070 diff --git a/drivers/net/bonding/bond_netlink.c b/drivers/net/bonding/bond_netlink.c
51071 index db760e8..d53ca99 100644
51072 --- a/drivers/net/bonding/bond_netlink.c
51073 +++ b/drivers/net/bonding/bond_netlink.c
51074 @@ -662,7 +662,7 @@ nla_put_failure:
51075 return -EMSGSIZE;
51076 }
51077
51078 -struct rtnl_link_ops bond_link_ops __read_mostly = {
51079 +struct rtnl_link_ops bond_link_ops = {
51080 .kind = "bond",
51081 .priv_size = sizeof(struct bonding),
51082 .setup = bond_setup,
51083 diff --git a/drivers/net/caif/caif_hsi.c b/drivers/net/caif/caif_hsi.c
51084 index 615c65d..c6c0439 100644
51085 --- a/drivers/net/caif/caif_hsi.c
51086 +++ b/drivers/net/caif/caif_hsi.c
51087 @@ -1444,7 +1444,7 @@ err:
51088 return -ENODEV;
51089 }
51090
51091 -static struct rtnl_link_ops caif_hsi_link_ops __read_mostly = {
51092 +static struct rtnl_link_ops caif_hsi_link_ops = {
51093 .kind = "cfhsi",
51094 .priv_size = sizeof(struct cfhsi),
51095 .setup = cfhsi_setup,
51096 diff --git a/drivers/net/can/Kconfig b/drivers/net/can/Kconfig
51097 index 6d04183..d69aee9 100644
51098 --- a/drivers/net/can/Kconfig
51099 +++ b/drivers/net/can/Kconfig
51100 @@ -98,7 +98,7 @@ config CAN_JANZ_ICAN3
51101
51102 config CAN_FLEXCAN
51103 tristate "Support for Freescale FLEXCAN based chips"
51104 - depends on ARM || PPC
51105 + depends on (ARM && CPU_LITTLE_ENDIAN) || PPC
51106 ---help---
51107 Say Y here if you want to support for Freescale FlexCAN.
51108
51109 diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c
51110 index 141c2a4..ca734ed 100644
51111 --- a/drivers/net/can/dev.c
51112 +++ b/drivers/net/can/dev.c
51113 @@ -961,7 +961,7 @@ static int can_newlink(struct net *src_net, struct net_device *dev,
51114 return -EOPNOTSUPP;
51115 }
51116
51117 -static struct rtnl_link_ops can_link_ops __read_mostly = {
51118 +static struct rtnl_link_ops can_link_ops = {
51119 .kind = "can",
51120 .maxtype = IFLA_CAN_MAX,
51121 .policy = can_policy,
51122 diff --git a/drivers/net/can/led.c b/drivers/net/can/led.c
51123 index c1b6676..50a8a51 100644
51124 --- a/drivers/net/can/led.c
51125 +++ b/drivers/net/can/led.c
51126 @@ -128,7 +128,7 @@ static int can_led_notifier(struct notifier_block *nb, unsigned long msg,
51127 }
51128
51129 /* notifier block for netdevice event */
51130 -static struct notifier_block can_netdev_notifier __read_mostly = {
51131 +static struct notifier_block can_netdev_notifier = {
51132 .notifier_call = can_led_notifier,
51133 };
51134
51135 diff --git a/drivers/net/can/vcan.c b/drivers/net/can/vcan.c
51136 index 674f367..ec3a31f 100644
51137 --- a/drivers/net/can/vcan.c
51138 +++ b/drivers/net/can/vcan.c
51139 @@ -163,7 +163,7 @@ static void vcan_setup(struct net_device *dev)
51140 dev->destructor = free_netdev;
51141 }
51142
51143 -static struct rtnl_link_ops vcan_link_ops __read_mostly = {
51144 +static struct rtnl_link_ops vcan_link_ops = {
51145 .kind = "vcan",
51146 .setup = vcan_setup,
51147 };
51148 diff --git a/drivers/net/dummy.c b/drivers/net/dummy.c
51149 index 69fc840..77a32fc 100644
51150 --- a/drivers/net/dummy.c
51151 +++ b/drivers/net/dummy.c
51152 @@ -167,7 +167,7 @@ static int dummy_validate(struct nlattr *tb[], struct nlattr *data[])
51153 return 0;
51154 }
51155
51156 -static struct rtnl_link_ops dummy_link_ops __read_mostly = {
51157 +static struct rtnl_link_ops dummy_link_ops = {
51158 .kind = DRV_NAME,
51159 .setup = dummy_setup,
51160 .validate = dummy_validate,
51161 diff --git a/drivers/net/ethernet/8390/ax88796.c b/drivers/net/ethernet/8390/ax88796.c
51162 index 0443654..4f0aa18 100644
51163 --- a/drivers/net/ethernet/8390/ax88796.c
51164 +++ b/drivers/net/ethernet/8390/ax88796.c
51165 @@ -889,9 +889,11 @@ static int ax_probe(struct platform_device *pdev)
51166 if (ax->plat->reg_offsets)
51167 ei_local->reg_offset = ax->plat->reg_offsets;
51168 else {
51169 + resource_size_t _mem_size = mem_size;
51170 + do_div(_mem_size, 0x18);
51171 ei_local->reg_offset = ax->reg_offsets;
51172 for (ret = 0; ret < 0x18; ret++)
51173 - ax->reg_offsets[ret] = (mem_size / 0x18) * ret;
51174 + ax->reg_offsets[ret] = _mem_size * ret;
51175 }
51176
51177 if (!request_mem_region(mem->start, mem_size, pdev->name)) {
51178 diff --git a/drivers/net/ethernet/altera/altera_tse_main.c b/drivers/net/ethernet/altera/altera_tse_main.c
51179 index fe64482..9a24726 100644
51180 --- a/drivers/net/ethernet/altera/altera_tse_main.c
51181 +++ b/drivers/net/ethernet/altera/altera_tse_main.c
51182 @@ -1255,7 +1255,7 @@ static int tse_shutdown(struct net_device *dev)
51183 return 0;
51184 }
51185
51186 -static struct net_device_ops altera_tse_netdev_ops = {
51187 +static net_device_ops_no_const altera_tse_netdev_ops __read_only = {
51188 .ndo_open = tse_open,
51189 .ndo_stop = tse_shutdown,
51190 .ndo_start_xmit = tse_start_xmit,
51191 @@ -1492,11 +1492,13 @@ static int altera_tse_probe(struct platform_device *pdev)
51192 ndev->netdev_ops = &altera_tse_netdev_ops;
51193 altera_tse_set_ethtool_ops(ndev);
51194
51195 + pax_open_kernel();
51196 altera_tse_netdev_ops.ndo_set_rx_mode = tse_set_rx_mode;
51197
51198 if (priv->hash_filter)
51199 altera_tse_netdev_ops.ndo_set_rx_mode =
51200 tse_set_rx_mode_hashfilter;
51201 + pax_close_kernel();
51202
51203 /* Scatter/gather IO is not supported,
51204 * so it is turned off
51205 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-common.h b/drivers/net/ethernet/amd/xgbe/xgbe-common.h
51206 index b6fa891..31ef157 100644
51207 --- a/drivers/net/ethernet/amd/xgbe/xgbe-common.h
51208 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-common.h
51209 @@ -1279,14 +1279,14 @@ do { \
51210 * operations, everything works on mask values.
51211 */
51212 #define XMDIO_READ(_pdata, _mmd, _reg) \
51213 - ((_pdata)->hw_if.read_mmd_regs((_pdata), 0, \
51214 + ((_pdata)->hw_if->read_mmd_regs((_pdata), 0, \
51215 MII_ADDR_C45 | (_mmd << 16) | ((_reg) & 0xffff)))
51216
51217 #define XMDIO_READ_BITS(_pdata, _mmd, _reg, _mask) \
51218 (XMDIO_READ((_pdata), _mmd, _reg) & _mask)
51219
51220 #define XMDIO_WRITE(_pdata, _mmd, _reg, _val) \
51221 - ((_pdata)->hw_if.write_mmd_regs((_pdata), 0, \
51222 + ((_pdata)->hw_if->write_mmd_regs((_pdata), 0, \
51223 MII_ADDR_C45 | (_mmd << 16) | ((_reg) & 0xffff), (_val)))
51224
51225 #define XMDIO_WRITE_BITS(_pdata, _mmd, _reg, _mask, _val) \
51226 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-dcb.c b/drivers/net/ethernet/amd/xgbe/xgbe-dcb.c
51227 index a6b9899..2e5e972 100644
51228 --- a/drivers/net/ethernet/amd/xgbe/xgbe-dcb.c
51229 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-dcb.c
51230 @@ -190,7 +190,7 @@ static int xgbe_dcb_ieee_setets(struct net_device *netdev,
51231
51232 memcpy(pdata->ets, ets, sizeof(*pdata->ets));
51233
51234 - pdata->hw_if.config_dcb_tc(pdata);
51235 + pdata->hw_if->config_dcb_tc(pdata);
51236
51237 return 0;
51238 }
51239 @@ -230,7 +230,7 @@ static int xgbe_dcb_ieee_setpfc(struct net_device *netdev,
51240
51241 memcpy(pdata->pfc, pfc, sizeof(*pdata->pfc));
51242
51243 - pdata->hw_if.config_dcb_pfc(pdata);
51244 + pdata->hw_if->config_dcb_pfc(pdata);
51245
51246 return 0;
51247 }
51248 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-desc.c b/drivers/net/ethernet/amd/xgbe/xgbe-desc.c
51249 index b3bc87f..5bdfdd3 100644
51250 --- a/drivers/net/ethernet/amd/xgbe/xgbe-desc.c
51251 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-desc.c
51252 @@ -353,7 +353,7 @@ static int xgbe_map_rx_buffer(struct xgbe_prv_data *pdata,
51253
51254 static void xgbe_wrapper_tx_descriptor_init(struct xgbe_prv_data *pdata)
51255 {
51256 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51257 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51258 struct xgbe_channel *channel;
51259 struct xgbe_ring *ring;
51260 struct xgbe_ring_data *rdata;
51261 @@ -394,7 +394,7 @@ static void xgbe_wrapper_tx_descriptor_init(struct xgbe_prv_data *pdata)
51262
51263 static void xgbe_wrapper_rx_descriptor_init(struct xgbe_prv_data *pdata)
51264 {
51265 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51266 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51267 struct xgbe_channel *channel;
51268 struct xgbe_ring *ring;
51269 struct xgbe_ring_desc *rdesc;
51270 @@ -628,17 +628,12 @@ err_out:
51271 return 0;
51272 }
51273
51274 -void xgbe_init_function_ptrs_desc(struct xgbe_desc_if *desc_if)
51275 -{
51276 - DBGPR("-->xgbe_init_function_ptrs_desc\n");
51277 -
51278 - desc_if->alloc_ring_resources = xgbe_alloc_ring_resources;
51279 - desc_if->free_ring_resources = xgbe_free_ring_resources;
51280 - desc_if->map_tx_skb = xgbe_map_tx_skb;
51281 - desc_if->map_rx_buffer = xgbe_map_rx_buffer;
51282 - desc_if->unmap_rdata = xgbe_unmap_rdata;
51283 - desc_if->wrapper_tx_desc_init = xgbe_wrapper_tx_descriptor_init;
51284 - desc_if->wrapper_rx_desc_init = xgbe_wrapper_rx_descriptor_init;
51285 -
51286 - DBGPR("<--xgbe_init_function_ptrs_desc\n");
51287 -}
51288 +const struct xgbe_desc_if default_xgbe_desc_if = {
51289 + .alloc_ring_resources = xgbe_alloc_ring_resources,
51290 + .free_ring_resources = xgbe_free_ring_resources,
51291 + .map_tx_skb = xgbe_map_tx_skb,
51292 + .map_rx_buffer = xgbe_map_rx_buffer,
51293 + .unmap_rdata = xgbe_unmap_rdata,
51294 + .wrapper_tx_desc_init = xgbe_wrapper_tx_descriptor_init,
51295 + .wrapper_rx_desc_init = xgbe_wrapper_rx_descriptor_init,
51296 +};
51297 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c
51298 index f6a7161..aa98a8b 100644
51299 --- a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c
51300 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c
51301 @@ -2723,7 +2723,7 @@ static void xgbe_powerdown_rx(struct xgbe_prv_data *pdata)
51302
51303 static int xgbe_init(struct xgbe_prv_data *pdata)
51304 {
51305 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
51306 + struct xgbe_desc_if *desc_if = pdata->desc_if;
51307 int ret;
51308
51309 DBGPR("-->xgbe_init\n");
51310 @@ -2789,106 +2789,101 @@ static int xgbe_init(struct xgbe_prv_data *pdata)
51311 return 0;
51312 }
51313
51314 -void xgbe_init_function_ptrs_dev(struct xgbe_hw_if *hw_if)
51315 -{
51316 - DBGPR("-->xgbe_init_function_ptrs\n");
51317 -
51318 - hw_if->tx_complete = xgbe_tx_complete;
51319 -
51320 - hw_if->set_mac_address = xgbe_set_mac_address;
51321 - hw_if->config_rx_mode = xgbe_config_rx_mode;
51322 -
51323 - hw_if->enable_rx_csum = xgbe_enable_rx_csum;
51324 - hw_if->disable_rx_csum = xgbe_disable_rx_csum;
51325 -
51326 - hw_if->enable_rx_vlan_stripping = xgbe_enable_rx_vlan_stripping;
51327 - hw_if->disable_rx_vlan_stripping = xgbe_disable_rx_vlan_stripping;
51328 - hw_if->enable_rx_vlan_filtering = xgbe_enable_rx_vlan_filtering;
51329 - hw_if->disable_rx_vlan_filtering = xgbe_disable_rx_vlan_filtering;
51330 - hw_if->update_vlan_hash_table = xgbe_update_vlan_hash_table;
51331 -
51332 - hw_if->read_mmd_regs = xgbe_read_mmd_regs;
51333 - hw_if->write_mmd_regs = xgbe_write_mmd_regs;
51334 -
51335 - hw_if->set_gmii_speed = xgbe_set_gmii_speed;
51336 - hw_if->set_gmii_2500_speed = xgbe_set_gmii_2500_speed;
51337 - hw_if->set_xgmii_speed = xgbe_set_xgmii_speed;
51338 -
51339 - hw_if->enable_tx = xgbe_enable_tx;
51340 - hw_if->disable_tx = xgbe_disable_tx;
51341 - hw_if->enable_rx = xgbe_enable_rx;
51342 - hw_if->disable_rx = xgbe_disable_rx;
51343 -
51344 - hw_if->powerup_tx = xgbe_powerup_tx;
51345 - hw_if->powerdown_tx = xgbe_powerdown_tx;
51346 - hw_if->powerup_rx = xgbe_powerup_rx;
51347 - hw_if->powerdown_rx = xgbe_powerdown_rx;
51348 -
51349 - hw_if->dev_xmit = xgbe_dev_xmit;
51350 - hw_if->dev_read = xgbe_dev_read;
51351 - hw_if->enable_int = xgbe_enable_int;
51352 - hw_if->disable_int = xgbe_disable_int;
51353 - hw_if->init = xgbe_init;
51354 - hw_if->exit = xgbe_exit;
51355 +const struct xgbe_hw_if default_xgbe_hw_if = {
51356 + .tx_complete = xgbe_tx_complete,
51357 +
51358 + .set_mac_address = xgbe_set_mac_address,
51359 + .config_rx_mode = xgbe_config_rx_mode,
51360 +
51361 + .enable_rx_csum = xgbe_enable_rx_csum,
51362 + .disable_rx_csum = xgbe_disable_rx_csum,
51363 +
51364 + .enable_rx_vlan_stripping = xgbe_enable_rx_vlan_stripping,
51365 + .disable_rx_vlan_stripping = xgbe_disable_rx_vlan_stripping,
51366 + .enable_rx_vlan_filtering = xgbe_enable_rx_vlan_filtering,
51367 + .disable_rx_vlan_filtering = xgbe_disable_rx_vlan_filtering,
51368 + .update_vlan_hash_table = xgbe_update_vlan_hash_table,
51369 +
51370 + .read_mmd_regs = xgbe_read_mmd_regs,
51371 + .write_mmd_regs = xgbe_write_mmd_regs,
51372 +
51373 + .set_gmii_speed = xgbe_set_gmii_speed,
51374 + .set_gmii_2500_speed = xgbe_set_gmii_2500_speed,
51375 + .set_xgmii_speed = xgbe_set_xgmii_speed,
51376 +
51377 + .enable_tx = xgbe_enable_tx,
51378 + .disable_tx = xgbe_disable_tx,
51379 + .enable_rx = xgbe_enable_rx,
51380 + .disable_rx = xgbe_disable_rx,
51381 +
51382 + .powerup_tx = xgbe_powerup_tx,
51383 + .powerdown_tx = xgbe_powerdown_tx,
51384 + .powerup_rx = xgbe_powerup_rx,
51385 + .powerdown_rx = xgbe_powerdown_rx,
51386 +
51387 + .dev_xmit = xgbe_dev_xmit,
51388 + .dev_read = xgbe_dev_read,
51389 + .enable_int = xgbe_enable_int,
51390 + .disable_int = xgbe_disable_int,
51391 + .init = xgbe_init,
51392 + .exit = xgbe_exit,
51393
51394 /* Descriptor related Sequences have to be initialized here */
51395 - hw_if->tx_desc_init = xgbe_tx_desc_init;
51396 - hw_if->rx_desc_init = xgbe_rx_desc_init;
51397 - hw_if->tx_desc_reset = xgbe_tx_desc_reset;
51398 - hw_if->rx_desc_reset = xgbe_rx_desc_reset;
51399 - hw_if->is_last_desc = xgbe_is_last_desc;
51400 - hw_if->is_context_desc = xgbe_is_context_desc;
51401 - hw_if->tx_start_xmit = xgbe_tx_start_xmit;
51402 + .tx_desc_init = xgbe_tx_desc_init,
51403 + .rx_desc_init = xgbe_rx_desc_init,
51404 + .tx_desc_reset = xgbe_tx_desc_reset,
51405 + .rx_desc_reset = xgbe_rx_desc_reset,
51406 + .is_last_desc = xgbe_is_last_desc,
51407 + .is_context_desc = xgbe_is_context_desc,
51408 + .tx_start_xmit = xgbe_tx_start_xmit,
51409
51410 /* For FLOW ctrl */
51411 - hw_if->config_tx_flow_control = xgbe_config_tx_flow_control;
51412 - hw_if->config_rx_flow_control = xgbe_config_rx_flow_control;
51413 + .config_tx_flow_control = xgbe_config_tx_flow_control,
51414 + .config_rx_flow_control = xgbe_config_rx_flow_control,
51415
51416 /* For RX coalescing */
51417 - hw_if->config_rx_coalesce = xgbe_config_rx_coalesce;
51418 - hw_if->config_tx_coalesce = xgbe_config_tx_coalesce;
51419 - hw_if->usec_to_riwt = xgbe_usec_to_riwt;
51420 - hw_if->riwt_to_usec = xgbe_riwt_to_usec;
51421 + .config_rx_coalesce = xgbe_config_rx_coalesce,
51422 + .config_tx_coalesce = xgbe_config_tx_coalesce,
51423 + .usec_to_riwt = xgbe_usec_to_riwt,
51424 + .riwt_to_usec = xgbe_riwt_to_usec,
51425
51426 /* For RX and TX threshold config */
51427 - hw_if->config_rx_threshold = xgbe_config_rx_threshold;
51428 - hw_if->config_tx_threshold = xgbe_config_tx_threshold;
51429 + .config_rx_threshold = xgbe_config_rx_threshold,
51430 + .config_tx_threshold = xgbe_config_tx_threshold,
51431
51432 /* For RX and TX Store and Forward Mode config */
51433 - hw_if->config_rsf_mode = xgbe_config_rsf_mode;
51434 - hw_if->config_tsf_mode = xgbe_config_tsf_mode;
51435 + .config_rsf_mode = xgbe_config_rsf_mode,
51436 + .config_tsf_mode = xgbe_config_tsf_mode,
51437
51438 /* For TX DMA Operating on Second Frame config */
51439 - hw_if->config_osp_mode = xgbe_config_osp_mode;
51440 + .config_osp_mode = xgbe_config_osp_mode,
51441
51442 /* For RX and TX PBL config */
51443 - hw_if->config_rx_pbl_val = xgbe_config_rx_pbl_val;
51444 - hw_if->get_rx_pbl_val = xgbe_get_rx_pbl_val;
51445 - hw_if->config_tx_pbl_val = xgbe_config_tx_pbl_val;
51446 - hw_if->get_tx_pbl_val = xgbe_get_tx_pbl_val;
51447 - hw_if->config_pblx8 = xgbe_config_pblx8;
51448 + .config_rx_pbl_val = xgbe_config_rx_pbl_val,
51449 + .get_rx_pbl_val = xgbe_get_rx_pbl_val,
51450 + .config_tx_pbl_val = xgbe_config_tx_pbl_val,
51451 + .get_tx_pbl_val = xgbe_get_tx_pbl_val,
51452 + .config_pblx8 = xgbe_config_pblx8,
51453
51454 /* For MMC statistics support */
51455 - hw_if->tx_mmc_int = xgbe_tx_mmc_int;
51456 - hw_if->rx_mmc_int = xgbe_rx_mmc_int;
51457 - hw_if->read_mmc_stats = xgbe_read_mmc_stats;
51458 + .tx_mmc_int = xgbe_tx_mmc_int,
51459 + .rx_mmc_int = xgbe_rx_mmc_int,
51460 + .read_mmc_stats = xgbe_read_mmc_stats,
51461
51462 /* For PTP config */
51463 - hw_if->config_tstamp = xgbe_config_tstamp;
51464 - hw_if->update_tstamp_addend = xgbe_update_tstamp_addend;
51465 - hw_if->set_tstamp_time = xgbe_set_tstamp_time;
51466 - hw_if->get_tstamp_time = xgbe_get_tstamp_time;
51467 - hw_if->get_tx_tstamp = xgbe_get_tx_tstamp;
51468 + .config_tstamp = xgbe_config_tstamp,
51469 + .update_tstamp_addend = xgbe_update_tstamp_addend,
51470 + .set_tstamp_time = xgbe_set_tstamp_time,
51471 + .get_tstamp_time = xgbe_get_tstamp_time,
51472 + .get_tx_tstamp = xgbe_get_tx_tstamp,
51473
51474 /* For Data Center Bridging config */
51475 - hw_if->config_dcb_tc = xgbe_config_dcb_tc;
51476 - hw_if->config_dcb_pfc = xgbe_config_dcb_pfc;
51477 + .config_dcb_tc = xgbe_config_dcb_tc,
51478 + .config_dcb_pfc = xgbe_config_dcb_pfc,
51479
51480 /* For Receive Side Scaling */
51481 - hw_if->enable_rss = xgbe_enable_rss;
51482 - hw_if->disable_rss = xgbe_disable_rss;
51483 - hw_if->set_rss_hash_key = xgbe_set_rss_hash_key;
51484 - hw_if->set_rss_lookup_table = xgbe_set_rss_lookup_table;
51485 -
51486 - DBGPR("<--xgbe_init_function_ptrs\n");
51487 -}
51488 + .enable_rss = xgbe_enable_rss,
51489 + .disable_rss = xgbe_disable_rss,
51490 + .set_rss_hash_key = xgbe_set_rss_hash_key,
51491 + .set_rss_lookup_table = xgbe_set_rss_lookup_table,
51492 +};
51493 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
51494 index 53ce122..de7d19d 100644
51495 --- a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
51496 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
51497 @@ -245,7 +245,7 @@ static int xgbe_maybe_stop_tx_queue(struct xgbe_channel *channel,
51498 * support, tell it now
51499 */
51500 if (ring->tx.xmit_more)
51501 - pdata->hw_if.tx_start_xmit(channel, ring);
51502 + pdata->hw_if->tx_start_xmit(channel, ring);
51503
51504 return NETDEV_TX_BUSY;
51505 }
51506 @@ -273,7 +273,7 @@ static int xgbe_calc_rx_buf_size(struct net_device *netdev, unsigned int mtu)
51507
51508 static void xgbe_enable_rx_tx_ints(struct xgbe_prv_data *pdata)
51509 {
51510 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51511 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51512 struct xgbe_channel *channel;
51513 enum xgbe_int int_id;
51514 unsigned int i;
51515 @@ -295,7 +295,7 @@ static void xgbe_enable_rx_tx_ints(struct xgbe_prv_data *pdata)
51516
51517 static void xgbe_disable_rx_tx_ints(struct xgbe_prv_data *pdata)
51518 {
51519 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51520 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51521 struct xgbe_channel *channel;
51522 enum xgbe_int int_id;
51523 unsigned int i;
51524 @@ -318,7 +318,7 @@ static void xgbe_disable_rx_tx_ints(struct xgbe_prv_data *pdata)
51525 static irqreturn_t xgbe_isr(int irq, void *data)
51526 {
51527 struct xgbe_prv_data *pdata = data;
51528 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51529 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51530 struct xgbe_channel *channel;
51531 unsigned int dma_isr, dma_ch_isr;
51532 unsigned int mac_isr, mac_tssr;
51533 @@ -447,7 +447,7 @@ static void xgbe_service(struct work_struct *work)
51534 struct xgbe_prv_data,
51535 service_work);
51536
51537 - pdata->phy_if.phy_status(pdata);
51538 + pdata->phy_if->phy_status(pdata);
51539 }
51540
51541 static void xgbe_service_timer(unsigned long data)
51542 @@ -706,7 +706,7 @@ static void xgbe_free_irqs(struct xgbe_prv_data *pdata)
51543
51544 void xgbe_init_tx_coalesce(struct xgbe_prv_data *pdata)
51545 {
51546 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51547 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51548
51549 DBGPR("-->xgbe_init_tx_coalesce\n");
51550
51551 @@ -720,7 +720,7 @@ void xgbe_init_tx_coalesce(struct xgbe_prv_data *pdata)
51552
51553 void xgbe_init_rx_coalesce(struct xgbe_prv_data *pdata)
51554 {
51555 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51556 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51557
51558 DBGPR("-->xgbe_init_rx_coalesce\n");
51559
51560 @@ -735,7 +735,7 @@ void xgbe_init_rx_coalesce(struct xgbe_prv_data *pdata)
51561
51562 static void xgbe_free_tx_data(struct xgbe_prv_data *pdata)
51563 {
51564 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
51565 + struct xgbe_desc_if *desc_if = pdata->desc_if;
51566 struct xgbe_channel *channel;
51567 struct xgbe_ring *ring;
51568 struct xgbe_ring_data *rdata;
51569 @@ -760,7 +760,7 @@ static void xgbe_free_tx_data(struct xgbe_prv_data *pdata)
51570
51571 static void xgbe_free_rx_data(struct xgbe_prv_data *pdata)
51572 {
51573 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
51574 + struct xgbe_desc_if *desc_if = pdata->desc_if;
51575 struct xgbe_channel *channel;
51576 struct xgbe_ring *ring;
51577 struct xgbe_ring_data *rdata;
51578 @@ -788,13 +788,13 @@ static int xgbe_phy_init(struct xgbe_prv_data *pdata)
51579 pdata->phy_link = -1;
51580 pdata->phy_speed = SPEED_UNKNOWN;
51581
51582 - return pdata->phy_if.phy_reset(pdata);
51583 + return pdata->phy_if->phy_reset(pdata);
51584 }
51585
51586 int xgbe_powerdown(struct net_device *netdev, unsigned int caller)
51587 {
51588 struct xgbe_prv_data *pdata = netdev_priv(netdev);
51589 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51590 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51591 unsigned long flags;
51592
51593 DBGPR("-->xgbe_powerdown\n");
51594 @@ -833,7 +833,7 @@ int xgbe_powerdown(struct net_device *netdev, unsigned int caller)
51595 int xgbe_powerup(struct net_device *netdev, unsigned int caller)
51596 {
51597 struct xgbe_prv_data *pdata = netdev_priv(netdev);
51598 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51599 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51600 unsigned long flags;
51601
51602 DBGPR("-->xgbe_powerup\n");
51603 @@ -870,8 +870,8 @@ int xgbe_powerup(struct net_device *netdev, unsigned int caller)
51604
51605 static int xgbe_start(struct xgbe_prv_data *pdata)
51606 {
51607 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51608 - struct xgbe_phy_if *phy_if = &pdata->phy_if;
51609 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51610 + struct xgbe_phy_if *phy_if = pdata->phy_if;
51611 struct net_device *netdev = pdata->netdev;
51612 int ret;
51613
51614 @@ -914,8 +914,8 @@ err_phy:
51615
51616 static void xgbe_stop(struct xgbe_prv_data *pdata)
51617 {
51618 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51619 - struct xgbe_phy_if *phy_if = &pdata->phy_if;
51620 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51621 + struct xgbe_phy_if *phy_if = pdata->phy_if;
51622 struct xgbe_channel *channel;
51623 struct net_device *netdev = pdata->netdev;
51624 struct netdev_queue *txq;
51625 @@ -1143,7 +1143,7 @@ static int xgbe_set_hwtstamp_settings(struct xgbe_prv_data *pdata,
51626 return -ERANGE;
51627 }
51628
51629 - pdata->hw_if.config_tstamp(pdata, mac_tscr);
51630 + pdata->hw_if->config_tstamp(pdata, mac_tscr);
51631
51632 memcpy(&pdata->tstamp_config, &config, sizeof(config));
51633
51634 @@ -1292,7 +1292,7 @@ static void xgbe_packet_info(struct xgbe_prv_data *pdata,
51635 static int xgbe_open(struct net_device *netdev)
51636 {
51637 struct xgbe_prv_data *pdata = netdev_priv(netdev);
51638 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
51639 + struct xgbe_desc_if *desc_if = pdata->desc_if;
51640 int ret;
51641
51642 DBGPR("-->xgbe_open\n");
51643 @@ -1364,7 +1364,7 @@ err_sysclk:
51644 static int xgbe_close(struct net_device *netdev)
51645 {
51646 struct xgbe_prv_data *pdata = netdev_priv(netdev);
51647 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
51648 + struct xgbe_desc_if *desc_if = pdata->desc_if;
51649
51650 DBGPR("-->xgbe_close\n");
51651
51652 @@ -1391,8 +1391,8 @@ static int xgbe_close(struct net_device *netdev)
51653 static int xgbe_xmit(struct sk_buff *skb, struct net_device *netdev)
51654 {
51655 struct xgbe_prv_data *pdata = netdev_priv(netdev);
51656 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51657 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
51658 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51659 + struct xgbe_desc_if *desc_if = pdata->desc_if;
51660 struct xgbe_channel *channel;
51661 struct xgbe_ring *ring;
51662 struct xgbe_packet_data *packet;
51663 @@ -1461,7 +1461,7 @@ tx_netdev_return:
51664 static void xgbe_set_rx_mode(struct net_device *netdev)
51665 {
51666 struct xgbe_prv_data *pdata = netdev_priv(netdev);
51667 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51668 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51669
51670 DBGPR("-->xgbe_set_rx_mode\n");
51671
51672 @@ -1473,7 +1473,7 @@ static void xgbe_set_rx_mode(struct net_device *netdev)
51673 static int xgbe_set_mac_address(struct net_device *netdev, void *addr)
51674 {
51675 struct xgbe_prv_data *pdata = netdev_priv(netdev);
51676 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51677 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51678 struct sockaddr *saddr = addr;
51679
51680 DBGPR("-->xgbe_set_mac_address\n");
51681 @@ -1548,7 +1548,7 @@ static struct rtnl_link_stats64 *xgbe_get_stats64(struct net_device *netdev,
51682
51683 DBGPR("-->%s\n", __func__);
51684
51685 - pdata->hw_if.read_mmc_stats(pdata);
51686 + pdata->hw_if->read_mmc_stats(pdata);
51687
51688 s->rx_packets = pstats->rxframecount_gb;
51689 s->rx_bytes = pstats->rxoctetcount_gb;
51690 @@ -1575,7 +1575,7 @@ static int xgbe_vlan_rx_add_vid(struct net_device *netdev, __be16 proto,
51691 u16 vid)
51692 {
51693 struct xgbe_prv_data *pdata = netdev_priv(netdev);
51694 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51695 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51696
51697 DBGPR("-->%s\n", __func__);
51698
51699 @@ -1591,7 +1591,7 @@ static int xgbe_vlan_rx_kill_vid(struct net_device *netdev, __be16 proto,
51700 u16 vid)
51701 {
51702 struct xgbe_prv_data *pdata = netdev_priv(netdev);
51703 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51704 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51705
51706 DBGPR("-->%s\n", __func__);
51707
51708 @@ -1658,7 +1658,7 @@ static int xgbe_set_features(struct net_device *netdev,
51709 netdev_features_t features)
51710 {
51711 struct xgbe_prv_data *pdata = netdev_priv(netdev);
51712 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51713 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51714 netdev_features_t rxhash, rxcsum, rxvlan, rxvlan_filter;
51715 int ret = 0;
51716
51717 @@ -1724,8 +1724,8 @@ struct net_device_ops *xgbe_get_netdev_ops(void)
51718 static void xgbe_rx_refresh(struct xgbe_channel *channel)
51719 {
51720 struct xgbe_prv_data *pdata = channel->pdata;
51721 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51722 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
51723 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51724 + struct xgbe_desc_if *desc_if = pdata->desc_if;
51725 struct xgbe_ring *ring = channel->rx_ring;
51726 struct xgbe_ring_data *rdata;
51727
51728 @@ -1802,8 +1802,8 @@ static struct sk_buff *xgbe_create_skb(struct xgbe_prv_data *pdata,
51729 static int xgbe_tx_poll(struct xgbe_channel *channel)
51730 {
51731 struct xgbe_prv_data *pdata = channel->pdata;
51732 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51733 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
51734 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51735 + struct xgbe_desc_if *desc_if = pdata->desc_if;
51736 struct xgbe_ring *ring = channel->tx_ring;
51737 struct xgbe_ring_data *rdata;
51738 struct xgbe_ring_desc *rdesc;
51739 @@ -1873,7 +1873,7 @@ static int xgbe_tx_poll(struct xgbe_channel *channel)
51740 static int xgbe_rx_poll(struct xgbe_channel *channel, int budget)
51741 {
51742 struct xgbe_prv_data *pdata = channel->pdata;
51743 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51744 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51745 struct xgbe_ring *ring = channel->rx_ring;
51746 struct xgbe_ring_data *rdata;
51747 struct xgbe_packet_data *packet;
51748 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c b/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
51749 index 6040293..66ba674 100644
51750 --- a/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
51751 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
51752 @@ -206,7 +206,7 @@ static void xgbe_get_ethtool_stats(struct net_device *netdev,
51753 u8 *stat;
51754 int i;
51755
51756 - pdata->hw_if.read_mmc_stats(pdata);
51757 + pdata->hw_if->read_mmc_stats(pdata);
51758 for (i = 0; i < XGBE_STATS_COUNT; i++) {
51759 stat = (u8 *)pdata + xgbe_gstring_stats[i].stat_offset;
51760 *data++ = *(u64 *)stat;
51761 @@ -267,7 +267,7 @@ static int xgbe_set_pauseparam(struct net_device *netdev,
51762 pdata->phy.advertising ^= ADVERTISED_Asym_Pause;
51763
51764 if (netif_running(netdev))
51765 - ret = pdata->phy_if.phy_config_aneg(pdata);
51766 + ret = pdata->phy_if->phy_config_aneg(pdata);
51767
51768 return ret;
51769 }
51770 @@ -356,7 +356,7 @@ static int xgbe_set_settings(struct net_device *netdev,
51771 pdata->phy.advertising &= ~ADVERTISED_Autoneg;
51772
51773 if (netif_running(netdev))
51774 - ret = pdata->phy_if.phy_config_aneg(pdata);
51775 + ret = pdata->phy_if->phy_config_aneg(pdata);
51776
51777 return ret;
51778 }
51779 @@ -410,7 +410,7 @@ static int xgbe_set_coalesce(struct net_device *netdev,
51780 struct ethtool_coalesce *ec)
51781 {
51782 struct xgbe_prv_data *pdata = netdev_priv(netdev);
51783 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51784 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51785 unsigned int rx_frames, rx_riwt, rx_usecs;
51786 unsigned int tx_frames;
51787
51788 @@ -533,7 +533,7 @@ static int xgbe_set_rxfh(struct net_device *netdev, const u32 *indir,
51789 const u8 *key, const u8 hfunc)
51790 {
51791 struct xgbe_prv_data *pdata = netdev_priv(netdev);
51792 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
51793 + struct xgbe_hw_if *hw_if = pdata->hw_if;
51794 unsigned int ret;
51795
51796 if (hfunc != ETH_RSS_HASH_NO_CHANGE && hfunc != ETH_RSS_HASH_TOP) {
51797 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-main.c b/drivers/net/ethernet/amd/xgbe/xgbe-main.c
51798 index 618d952..bd80ebd 100644
51799 --- a/drivers/net/ethernet/amd/xgbe/xgbe-main.c
51800 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-main.c
51801 @@ -202,13 +202,6 @@ static void xgbe_default_config(struct xgbe_prv_data *pdata)
51802 DBGPR("<--xgbe_default_config\n");
51803 }
51804
51805 -static void xgbe_init_all_fptrs(struct xgbe_prv_data *pdata)
51806 -{
51807 - xgbe_init_function_ptrs_dev(&pdata->hw_if);
51808 - xgbe_init_function_ptrs_phy(&pdata->phy_if);
51809 - xgbe_init_function_ptrs_desc(&pdata->desc_if);
51810 -}
51811 -
51812 #ifdef CONFIG_ACPI
51813 static int xgbe_acpi_support(struct xgbe_prv_data *pdata)
51814 {
51815 @@ -647,10 +640,12 @@ static int xgbe_probe(struct platform_device *pdev)
51816 memcpy(netdev->dev_addr, pdata->mac_addr, netdev->addr_len);
51817
51818 /* Set all the function pointers */
51819 - xgbe_init_all_fptrs(pdata);
51820 + pdata->hw_if = &default_xgbe_hw_if;
51821 + pdata->phy_if = &default_xgbe_phy_if;
51822 + pdata->desc_if = &default_xgbe_desc_if;
51823
51824 /* Issue software reset to device */
51825 - pdata->hw_if.exit(pdata);
51826 + pdata->hw_if->exit(pdata);
51827
51828 /* Populate the hardware features */
51829 xgbe_get_all_hw_features(pdata);
51830 @@ -704,7 +699,7 @@ static int xgbe_probe(struct platform_device *pdev)
51831 XGMAC_SET_BITS(pdata->rss_options, MAC_RSSCR, UDP4TE, 1);
51832
51833 /* Call MDIO/PHY initialization routine */
51834 - pdata->phy_if.phy_init(pdata);
51835 + pdata->phy_if->phy_init(pdata);
51836
51837 /* Set device operations */
51838 netdev->netdev_ops = xgbe_get_netdev_ops();
51839 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c b/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
51840 index 4460580..00b80d7 100644
51841 --- a/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
51842 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
51843 @@ -202,7 +202,7 @@ static void xgbe_xgmii_mode(struct xgbe_prv_data *pdata)
51844 xgbe_an_enable_kr_training(pdata);
51845
51846 /* Set MAC to 10G speed */
51847 - pdata->hw_if.set_xgmii_speed(pdata);
51848 + pdata->hw_if->set_xgmii_speed(pdata);
51849
51850 /* Set PCS to KR/10G speed */
51851 reg = XMDIO_READ(pdata, MDIO_MMD_PCS, MDIO_CTRL2);
51852 @@ -250,7 +250,7 @@ static void xgbe_gmii_2500_mode(struct xgbe_prv_data *pdata)
51853 xgbe_an_disable_kr_training(pdata);
51854
51855 /* Set MAC to 2.5G speed */
51856 - pdata->hw_if.set_gmii_2500_speed(pdata);
51857 + pdata->hw_if->set_gmii_2500_speed(pdata);
51858
51859 /* Set PCS to KX/1G speed */
51860 reg = XMDIO_READ(pdata, MDIO_MMD_PCS, MDIO_CTRL2);
51861 @@ -298,7 +298,7 @@ static void xgbe_gmii_mode(struct xgbe_prv_data *pdata)
51862 xgbe_an_disable_kr_training(pdata);
51863
51864 /* Set MAC to 1G speed */
51865 - pdata->hw_if.set_gmii_speed(pdata);
51866 + pdata->hw_if->set_gmii_speed(pdata);
51867
51868 /* Set PCS to KX/1G speed */
51869 reg = XMDIO_READ(pdata, MDIO_MMD_PCS, MDIO_CTRL2);
51870 @@ -872,13 +872,13 @@ static void xgbe_phy_adjust_link(struct xgbe_prv_data *pdata)
51871
51872 if (pdata->tx_pause != pdata->phy.tx_pause) {
51873 new_state = 1;
51874 - pdata->hw_if.config_tx_flow_control(pdata);
51875 + pdata->hw_if->config_tx_flow_control(pdata);
51876 pdata->tx_pause = pdata->phy.tx_pause;
51877 }
51878
51879 if (pdata->rx_pause != pdata->phy.rx_pause) {
51880 new_state = 1;
51881 - pdata->hw_if.config_rx_flow_control(pdata);
51882 + pdata->hw_if->config_rx_flow_control(pdata);
51883 pdata->rx_pause = pdata->phy.rx_pause;
51884 }
51885
51886 @@ -1343,14 +1343,13 @@ static void xgbe_phy_init(struct xgbe_prv_data *pdata)
51887 xgbe_dump_phy_registers(pdata);
51888 }
51889
51890 -void xgbe_init_function_ptrs_phy(struct xgbe_phy_if *phy_if)
51891 -{
51892 - phy_if->phy_init = xgbe_phy_init;
51893 +const struct xgbe_phy_if default_xgbe_phy_if = {
51894 + .phy_init = xgbe_phy_init,
51895
51896 - phy_if->phy_reset = xgbe_phy_reset;
51897 - phy_if->phy_start = xgbe_phy_start;
51898 - phy_if->phy_stop = xgbe_phy_stop;
51899 + .phy_reset = xgbe_phy_reset,
51900 + .phy_start = xgbe_phy_start,
51901 + .phy_stop = xgbe_phy_stop,
51902
51903 - phy_if->phy_status = xgbe_phy_status;
51904 - phy_if->phy_config_aneg = xgbe_phy_config_aneg;
51905 -}
51906 + .phy_status = xgbe_phy_status,
51907 + .phy_config_aneg = xgbe_phy_config_aneg,
51908 +};
51909 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-ptp.c b/drivers/net/ethernet/amd/xgbe/xgbe-ptp.c
51910 index b03e4f5..78e4cc4 100644
51911 --- a/drivers/net/ethernet/amd/xgbe/xgbe-ptp.c
51912 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-ptp.c
51913 @@ -129,7 +129,7 @@ static cycle_t xgbe_cc_read(const struct cyclecounter *cc)
51914 tstamp_cc);
51915 u64 nsec;
51916
51917 - nsec = pdata->hw_if.get_tstamp_time(pdata);
51918 + nsec = pdata->hw_if->get_tstamp_time(pdata);
51919
51920 return nsec;
51921 }
51922 @@ -158,7 +158,7 @@ static int xgbe_adjfreq(struct ptp_clock_info *info, s32 delta)
51923
51924 spin_lock_irqsave(&pdata->tstamp_lock, flags);
51925
51926 - pdata->hw_if.update_tstamp_addend(pdata, addend);
51927 + pdata->hw_if->update_tstamp_addend(pdata, addend);
51928
51929 spin_unlock_irqrestore(&pdata->tstamp_lock, flags);
51930
51931 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe.h b/drivers/net/ethernet/amd/xgbe/xgbe.h
51932 index e234b99..4f0e2a1 100644
51933 --- a/drivers/net/ethernet/amd/xgbe/xgbe.h
51934 +++ b/drivers/net/ethernet/amd/xgbe/xgbe.h
51935 @@ -785,9 +785,9 @@ struct xgbe_prv_data {
51936 int dev_irq;
51937 unsigned int per_channel_irq;
51938
51939 - struct xgbe_hw_if hw_if;
51940 - struct xgbe_phy_if phy_if;
51941 - struct xgbe_desc_if desc_if;
51942 + struct xgbe_hw_if *hw_if;
51943 + struct xgbe_phy_if *phy_if;
51944 + struct xgbe_desc_if *desc_if;
51945
51946 /* AXI DMA settings */
51947 unsigned int coherent;
51948 @@ -948,6 +948,10 @@ struct xgbe_prv_data {
51949 #endif
51950 };
51951
51952 +extern const struct xgbe_hw_if default_xgbe_hw_if;
51953 +extern const struct xgbe_phy_if default_xgbe_phy_if;
51954 +extern const struct xgbe_desc_if default_xgbe_desc_if;
51955 +
51956 /* Function prototypes*/
51957
51958 void xgbe_init_function_ptrs_dev(struct xgbe_hw_if *);
51959 diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
51960 index b7d32e8..ea5b559 100644
51961 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
51962 +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
51963 @@ -1122,7 +1122,7 @@ static inline u8 bnx2x_get_path_func_num(struct bnx2x *bp)
51964 static inline void bnx2x_init_bp_objs(struct bnx2x *bp)
51965 {
51966 /* RX_MODE controlling object */
51967 - bnx2x_init_rx_mode_obj(bp, &bp->rx_mode_obj);
51968 + bnx2x_init_rx_mode_obj(bp);
51969
51970 /* multicast configuration controlling object */
51971 bnx2x_init_mcast_obj(bp, &bp->mcast_obj, bp->fp->cl_id, bp->fp->cid,
51972 diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
51973 index ff702a7..cb3ae16 100644
51974 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
51975 +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
51976 @@ -2576,15 +2576,14 @@ int bnx2x_config_rx_mode(struct bnx2x *bp,
51977 return rc;
51978 }
51979
51980 -void bnx2x_init_rx_mode_obj(struct bnx2x *bp,
51981 - struct bnx2x_rx_mode_obj *o)
51982 +void bnx2x_init_rx_mode_obj(struct bnx2x *bp)
51983 {
51984 if (CHIP_IS_E1x(bp)) {
51985 - o->wait_comp = bnx2x_empty_rx_mode_wait;
51986 - o->config_rx_mode = bnx2x_set_rx_mode_e1x;
51987 + bp->rx_mode_obj.wait_comp = bnx2x_empty_rx_mode_wait;
51988 + bp->rx_mode_obj.config_rx_mode = bnx2x_set_rx_mode_e1x;
51989 } else {
51990 - o->wait_comp = bnx2x_wait_rx_mode_comp_e2;
51991 - o->config_rx_mode = bnx2x_set_rx_mode_e2;
51992 + bp->rx_mode_obj.wait_comp = bnx2x_wait_rx_mode_comp_e2;
51993 + bp->rx_mode_obj.config_rx_mode = bnx2x_set_rx_mode_e2;
51994 }
51995 }
51996
51997 diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
51998 index 4048fc5..333809f 100644
51999 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
52000 +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
52001 @@ -1436,8 +1436,7 @@ int bnx2x_vlan_mac_move(struct bnx2x *bp,
52002
52003 /********************* RX MODE ****************/
52004
52005 -void bnx2x_init_rx_mode_obj(struct bnx2x *bp,
52006 - struct bnx2x_rx_mode_obj *o);
52007 +void bnx2x_init_rx_mode_obj(struct bnx2x *bp);
52008
52009 /**
52010 * bnx2x_config_rx_mode - Send and RX_MODE ramrod according to the provided parameters.
52011 diff --git a/drivers/net/ethernet/broadcom/tg3.h b/drivers/net/ethernet/broadcom/tg3.h
52012 index 31c9f82..e65e986 100644
52013 --- a/drivers/net/ethernet/broadcom/tg3.h
52014 +++ b/drivers/net/ethernet/broadcom/tg3.h
52015 @@ -150,6 +150,7 @@
52016 #define CHIPREV_ID_5750_A0 0x4000
52017 #define CHIPREV_ID_5750_A1 0x4001
52018 #define CHIPREV_ID_5750_A3 0x4003
52019 +#define CHIPREV_ID_5750_C1 0x4201
52020 #define CHIPREV_ID_5750_C2 0x4202
52021 #define CHIPREV_ID_5752_A0_HW 0x5000
52022 #define CHIPREV_ID_5752_A0 0x6000
52023 diff --git a/drivers/net/ethernet/brocade/bna/bna_enet.c b/drivers/net/ethernet/brocade/bna/bna_enet.c
52024 index 4e5c387..bba8173 100644
52025 --- a/drivers/net/ethernet/brocade/bna/bna_enet.c
52026 +++ b/drivers/net/ethernet/brocade/bna/bna_enet.c
52027 @@ -1676,10 +1676,10 @@ bna_cb_ioceth_reset(void *arg)
52028 }
52029
52030 static struct bfa_ioc_cbfn bna_ioceth_cbfn = {
52031 - bna_cb_ioceth_enable,
52032 - bna_cb_ioceth_disable,
52033 - bna_cb_ioceth_hbfail,
52034 - bna_cb_ioceth_reset
52035 + .enable_cbfn = bna_cb_ioceth_enable,
52036 + .disable_cbfn = bna_cb_ioceth_disable,
52037 + .hbfail_cbfn = bna_cb_ioceth_hbfail,
52038 + .reset_cbfn = bna_cb_ioceth_reset
52039 };
52040
52041 static void bna_attr_init(struct bna_ioceth *ioceth)
52042 diff --git a/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c b/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
52043 index 245c063..74ed9c9 100644
52044 --- a/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
52045 +++ b/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
52046 @@ -264,9 +264,9 @@ static void octnet_mdio_resp_callback(struct octeon_device *oct,
52047 if (status) {
52048 dev_err(&oct->pci_dev->dev, "MIDO instruction failed. Status: %llx\n",
52049 CVM_CAST64(status));
52050 - ACCESS_ONCE(mdio_cmd_ctx->cond) = -1;
52051 + ACCESS_ONCE_RW(mdio_cmd_ctx->cond) = -1;
52052 } else {
52053 - ACCESS_ONCE(mdio_cmd_ctx->cond) = 1;
52054 + ACCESS_ONCE_RW(mdio_cmd_ctx->cond) = 1;
52055 }
52056 wake_up_interruptible(&mdio_cmd_ctx->wc);
52057 }
52058 @@ -297,7 +297,7 @@ octnet_mdio45_access(struct lio *lio, int op, int loc, int *value)
52059 mdio_cmd_rsp = (struct oct_mdio_cmd_resp *)sc->virtrptr;
52060 mdio_cmd = (struct oct_mdio_cmd *)sc->virtdptr;
52061
52062 - ACCESS_ONCE(mdio_cmd_ctx->cond) = 0;
52063 + ACCESS_ONCE_RW(mdio_cmd_ctx->cond) = 0;
52064 mdio_cmd_ctx->octeon_id = lio_get_device_id(oct_dev);
52065 mdio_cmd->op = op;
52066 mdio_cmd->mdio_addr = loc;
52067 diff --git a/drivers/net/ethernet/cavium/liquidio/lio_main.c b/drivers/net/ethernet/cavium/liquidio/lio_main.c
52068 index b895044..f8ed0c3 100644
52069 --- a/drivers/net/ethernet/cavium/liquidio/lio_main.c
52070 +++ b/drivers/net/ethernet/cavium/liquidio/lio_main.c
52071 @@ -1726,7 +1726,7 @@ static void if_cfg_callback(struct octeon_device *oct,
52072 if (resp->status)
52073 dev_err(&oct->pci_dev->dev, "nic if cfg instruction failed. Status: %llx\n",
52074 CVM_CAST64(resp->status));
52075 - ACCESS_ONCE(ctx->cond) = 1;
52076 + ACCESS_ONCE_RW(ctx->cond) = 1;
52077
52078 /* This barrier is required to be sure that the response has been
52079 * written fully before waking up the handler
52080 @@ -3176,7 +3176,7 @@ static int setup_nic_devices(struct octeon_device *octeon_dev)
52081 dev_dbg(&octeon_dev->pci_dev->dev,
52082 "requesting config for interface %d, iqs %d, oqs %d\n",
52083 i, num_iqueues, num_oqueues);
52084 - ACCESS_ONCE(ctx->cond) = 0;
52085 + ACCESS_ONCE_RW(ctx->cond) = 0;
52086 ctx->octeon_id = lio_get_device_id(octeon_dev);
52087 init_waitqueue_head(&ctx->wc);
52088
52089 @@ -3239,8 +3239,11 @@ static int setup_nic_devices(struct octeon_device *octeon_dev)
52090 props = &octeon_dev->props[i];
52091 props->netdev = netdev;
52092
52093 - if (num_iqueues > 1)
52094 - lionetdevops.ndo_select_queue = select_q;
52095 + if (num_iqueues > 1) {
52096 + pax_open_kernel();
52097 + *(void **)&lionetdevops.ndo_select_queue = select_q;
52098 + pax_close_kernel();
52099 + }
52100
52101 /* Associate the routines that will handle different
52102 * netdev tasks.
52103 diff --git a/drivers/net/ethernet/chelsio/cxgb3/l2t.h b/drivers/net/ethernet/chelsio/cxgb3/l2t.h
52104 index 8cffcdf..aadf043 100644
52105 --- a/drivers/net/ethernet/chelsio/cxgb3/l2t.h
52106 +++ b/drivers/net/ethernet/chelsio/cxgb3/l2t.h
52107 @@ -87,7 +87,7 @@ typedef void (*arp_failure_handler_func)(struct t3cdev * dev,
52108 */
52109 struct l2t_skb_cb {
52110 arp_failure_handler_func arp_failure_handler;
52111 -};
52112 +} __no_const;
52113
52114 #define L2T_SKB_CB(skb) ((struct l2t_skb_cb *)(skb)->cb)
52115
52116 diff --git a/drivers/net/ethernet/dec/tulip/de4x5.c b/drivers/net/ethernet/dec/tulip/de4x5.c
52117 index 8966f31..e15a101 100644
52118 --- a/drivers/net/ethernet/dec/tulip/de4x5.c
52119 +++ b/drivers/net/ethernet/dec/tulip/de4x5.c
52120 @@ -5373,7 +5373,7 @@ de4x5_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
52121 for (i=0; i<ETH_ALEN; i++) {
52122 tmp.addr[i] = dev->dev_addr[i];
52123 }
52124 - if (copy_to_user(ioc->data, tmp.addr, ioc->len)) return -EFAULT;
52125 + if (ioc->len > sizeof tmp.addr || copy_to_user(ioc->data, tmp.addr, ioc->len)) return -EFAULT;
52126 break;
52127
52128 case DE4X5_SET_HWADDR: /* Set the hardware address */
52129 @@ -5413,7 +5413,7 @@ de4x5_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
52130 spin_lock_irqsave(&lp->lock, flags);
52131 memcpy(&statbuf, &lp->pktStats, ioc->len);
52132 spin_unlock_irqrestore(&lp->lock, flags);
52133 - if (copy_to_user(ioc->data, &statbuf, ioc->len))
52134 + if (ioc->len > sizeof statbuf || copy_to_user(ioc->data, &statbuf, ioc->len))
52135 return -EFAULT;
52136 break;
52137 }
52138 diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
52139 index 8a1d9ff..5cc81dd 100644
52140 --- a/drivers/net/ethernet/emulex/benet/be_main.c
52141 +++ b/drivers/net/ethernet/emulex/benet/be_main.c
52142 @@ -551,7 +551,7 @@ static void accumulate_16bit_val(u32 *acc, u16 val)
52143
52144 if (wrapped)
52145 newacc += 65536;
52146 - ACCESS_ONCE(*acc) = newacc;
52147 + ACCESS_ONCE_RW(*acc) = newacc;
52148 }
52149
52150 static void populate_erx_stats(struct be_adapter *adapter,
52151 diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c
52152 index 6d0c5d5..55be363 100644
52153 --- a/drivers/net/ethernet/faraday/ftgmac100.c
52154 +++ b/drivers/net/ethernet/faraday/ftgmac100.c
52155 @@ -30,6 +30,8 @@
52156 #include <linux/netdevice.h>
52157 #include <linux/phy.h>
52158 #include <linux/platform_device.h>
52159 +#include <linux/interrupt.h>
52160 +#include <linux/irqreturn.h>
52161 #include <net/ip.h>
52162
52163 #include "ftgmac100.h"
52164 diff --git a/drivers/net/ethernet/faraday/ftmac100.c b/drivers/net/ethernet/faraday/ftmac100.c
52165 index dce5f7b..2433466 100644
52166 --- a/drivers/net/ethernet/faraday/ftmac100.c
52167 +++ b/drivers/net/ethernet/faraday/ftmac100.c
52168 @@ -31,6 +31,8 @@
52169 #include <linux/module.h>
52170 #include <linux/netdevice.h>
52171 #include <linux/platform_device.h>
52172 +#include <linux/interrupt.h>
52173 +#include <linux/irqreturn.h>
52174
52175 #include "ftmac100.h"
52176
52177 diff --git a/drivers/net/ethernet/intel/i40e/i40e_ptp.c b/drivers/net/ethernet/intel/i40e/i40e_ptp.c
52178 index 565ca7c..dcdf764 100644
52179 --- a/drivers/net/ethernet/intel/i40e/i40e_ptp.c
52180 +++ b/drivers/net/ethernet/intel/i40e/i40e_ptp.c
52181 @@ -418,7 +418,7 @@ void i40e_ptp_set_increment(struct i40e_pf *pf)
52182 wr32(hw, I40E_PRTTSYN_INC_H, incval >> 32);
52183
52184 /* Update the base adjustement value. */
52185 - ACCESS_ONCE(pf->ptp_base_adj) = incval;
52186 + ACCESS_ONCE_RW(pf->ptp_base_adj) = incval;
52187 smp_mb(); /* Force the above update. */
52188 }
52189
52190 diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
52191 index e5ba040..d47531c 100644
52192 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
52193 +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
52194 @@ -782,7 +782,7 @@ void ixgbe_ptp_start_cyclecounter(struct ixgbe_adapter *adapter)
52195 }
52196
52197 /* update the base incval used to calculate frequency adjustment */
52198 - ACCESS_ONCE(adapter->base_incval) = incval;
52199 + ACCESS_ONCE_RW(adapter->base_incval) = incval;
52200 smp_mb();
52201
52202 /* need lock to prevent incorrect read while modifying cyclecounter */
52203 diff --git a/drivers/net/ethernet/mellanox/mlx4/en_tx.c b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
52204 index 4421bf54..c07afb0 100644
52205 --- a/drivers/net/ethernet/mellanox/mlx4/en_tx.c
52206 +++ b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
52207 @@ -475,8 +475,8 @@ static bool mlx4_en_process_tx_cq(struct net_device *dev,
52208 wmb();
52209
52210 /* we want to dirty this cache line once */
52211 - ACCESS_ONCE(ring->last_nr_txbb) = last_nr_txbb;
52212 - ACCESS_ONCE(ring->cons) = ring_cons + txbbs_skipped;
52213 + ACCESS_ONCE_RW(ring->last_nr_txbb) = last_nr_txbb;
52214 + ACCESS_ONCE_RW(ring->cons) = ring_cons + txbbs_skipped;
52215
52216 netdev_tx_completed_queue(ring->tx_queue, packets, bytes);
52217
52218 diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
52219 index 1203d89..7895359 100644
52220 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
52221 +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
52222 @@ -2033,8 +2033,11 @@ static void mlx5e_build_netdev(struct net_device *netdev)
52223
52224 SET_NETDEV_DEV(netdev, &mdev->pdev->dev);
52225
52226 - if (priv->params.num_tc > 1)
52227 - mlx5e_netdev_ops.ndo_select_queue = mlx5e_select_queue;
52228 + if (priv->params.num_tc > 1) {
52229 + pax_open_kernel();
52230 + *(void **)&mlx5e_netdev_ops.ndo_select_queue = mlx5e_select_queue;
52231 + pax_close_kernel();
52232 + }
52233
52234 netdev->netdev_ops = &mlx5e_netdev_ops;
52235 netdev->watchdog_timeo = 15 * HZ;
52236 diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
52237 index 3be4a23..e89602b 100644
52238 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
52239 +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
52240 @@ -1915,7 +1915,7 @@ static int mlxsw_sp_netdevice_event(struct notifier_block *unused,
52241 return NOTIFY_DONE;
52242 }
52243
52244 -static struct notifier_block mlxsw_sp_netdevice_nb __read_mostly = {
52245 +static struct notifier_block mlxsw_sp_netdevice_nb = {
52246 .notifier_call = mlxsw_sp_netdevice_event,
52247 };
52248
52249 diff --git a/drivers/net/ethernet/neterion/vxge/vxge-config.c b/drivers/net/ethernet/neterion/vxge/vxge-config.c
52250 index 6223930..975033d 100644
52251 --- a/drivers/net/ethernet/neterion/vxge/vxge-config.c
52252 +++ b/drivers/net/ethernet/neterion/vxge/vxge-config.c
52253 @@ -3457,7 +3457,10 @@ __vxge_hw_fifo_create(struct __vxge_hw_vpath_handle *vp,
52254 struct __vxge_hw_fifo *fifo;
52255 struct vxge_hw_fifo_config *config;
52256 u32 txdl_size, txdl_per_memblock;
52257 - struct vxge_hw_mempool_cbs fifo_mp_callback;
52258 + static struct vxge_hw_mempool_cbs fifo_mp_callback = {
52259 + .item_func_alloc = __vxge_hw_fifo_mempool_item_alloc,
52260 + };
52261 +
52262 struct __vxge_hw_virtualpath *vpath;
52263
52264 if ((vp == NULL) || (attr == NULL)) {
52265 @@ -3540,8 +3543,6 @@ __vxge_hw_fifo_create(struct __vxge_hw_vpath_handle *vp,
52266 goto exit;
52267 }
52268
52269 - fifo_mp_callback.item_func_alloc = __vxge_hw_fifo_mempool_item_alloc;
52270 -
52271 fifo->mempool =
52272 __vxge_hw_mempool_create(vpath->hldev,
52273 fifo->config->memblock_size,
52274 diff --git a/drivers/net/ethernet/nvidia/forcedeth.c b/drivers/net/ethernet/nvidia/forcedeth.c
52275 index 75e88f4..1db3bf6 100644
52276 --- a/drivers/net/ethernet/nvidia/forcedeth.c
52277 +++ b/drivers/net/ethernet/nvidia/forcedeth.c
52278 @@ -357,8 +357,8 @@ struct ring_desc {
52279 };
52280
52281 struct ring_desc_ex {
52282 - __le32 bufhigh;
52283 - __le32 buflow;
52284 + __le32 bufhigh __intentional_overflow(0);
52285 + __le32 buflow __intentional_overflow(0);
52286 __le32 txvlan;
52287 __le32 flaglen;
52288 };
52289 diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
52290 index bf89216..4044d8c 100644
52291 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
52292 +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
52293 @@ -2324,7 +2324,9 @@ int qlcnic_83xx_configure_opmode(struct qlcnic_adapter *adapter)
52294 max_tx_rings = QLCNIC_MAX_VNIC_TX_RINGS;
52295 } else if (ret == QLC_83XX_DEFAULT_OPMODE) {
52296 ahw->nic_mode = QLCNIC_DEFAULT_MODE;
52297 - adapter->nic_ops->init_driver = qlcnic_83xx_init_default_driver;
52298 + pax_open_kernel();
52299 + *(void **)&adapter->nic_ops->init_driver = qlcnic_83xx_init_default_driver;
52300 + pax_close_kernel();
52301 ahw->idc.state_entry = qlcnic_83xx_idc_ready_state_entry;
52302 max_sds_rings = QLCNIC_MAX_SDS_RINGS;
52303 max_tx_rings = QLCNIC_MAX_TX_RINGS;
52304 diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c
52305 index 3490675..0b9e15a 100644
52306 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c
52307 +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c
52308 @@ -207,17 +207,23 @@ int qlcnic_83xx_config_vnic_opmode(struct qlcnic_adapter *adapter)
52309 case QLCNIC_NON_PRIV_FUNC:
52310 ahw->op_mode = QLCNIC_NON_PRIV_FUNC;
52311 ahw->idc.state_entry = qlcnic_83xx_idc_ready_state_entry;
52312 - nic_ops->init_driver = qlcnic_83xx_init_non_privileged_vnic;
52313 + pax_open_kernel();
52314 + *(void **)&nic_ops->init_driver = qlcnic_83xx_init_non_privileged_vnic;
52315 + pax_close_kernel();
52316 break;
52317 case QLCNIC_PRIV_FUNC:
52318 ahw->op_mode = QLCNIC_PRIV_FUNC;
52319 ahw->idc.state_entry = qlcnic_83xx_idc_vnic_pf_entry;
52320 - nic_ops->init_driver = qlcnic_83xx_init_privileged_vnic;
52321 + pax_open_kernel();
52322 + *(void **)&nic_ops->init_driver = qlcnic_83xx_init_privileged_vnic;
52323 + pax_close_kernel();
52324 break;
52325 case QLCNIC_MGMT_FUNC:
52326 ahw->op_mode = QLCNIC_MGMT_FUNC;
52327 ahw->idc.state_entry = qlcnic_83xx_idc_ready_state_entry;
52328 - nic_ops->init_driver = qlcnic_83xx_init_mgmt_vnic;
52329 + pax_open_kernel();
52330 + *(void **)&nic_ops->init_driver = qlcnic_83xx_init_mgmt_vnic;
52331 + pax_close_kernel();
52332 break;
52333 default:
52334 dev_err(&adapter->pdev->dev, "Invalid Virtual NIC opmode\n");
52335 diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
52336 index cda9e60..4019992 100644
52337 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
52338 +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
52339 @@ -1285,7 +1285,7 @@ flash_temp:
52340 int qlcnic_dump_fw(struct qlcnic_adapter *adapter)
52341 {
52342 struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump;
52343 - static const struct qlcnic_dump_operations *fw_dump_ops;
52344 + const struct qlcnic_dump_operations *fw_dump_ops;
52345 struct qlcnic_83xx_dump_template_hdr *hdr_83xx;
52346 u32 entry_offset, dump, no_entries, buf_offset = 0;
52347 int i, k, ops_cnt, ops_index, dump_size = 0;
52348 diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
52349 index 79ef799..59bbd1f 100644
52350 --- a/drivers/net/ethernet/realtek/r8169.c
52351 +++ b/drivers/net/ethernet/realtek/r8169.c
52352 @@ -798,22 +798,22 @@ struct rtl8169_private {
52353 struct mdio_ops {
52354 void (*write)(struct rtl8169_private *, int, int);
52355 int (*read)(struct rtl8169_private *, int);
52356 - } mdio_ops;
52357 + } __no_const mdio_ops;
52358
52359 struct pll_power_ops {
52360 void (*down)(struct rtl8169_private *);
52361 void (*up)(struct rtl8169_private *);
52362 - } pll_power_ops;
52363 + } __no_const pll_power_ops;
52364
52365 struct jumbo_ops {
52366 void (*enable)(struct rtl8169_private *);
52367 void (*disable)(struct rtl8169_private *);
52368 - } jumbo_ops;
52369 + } __no_const jumbo_ops;
52370
52371 struct csi_ops {
52372 void (*write)(struct rtl8169_private *, int, int);
52373 u32 (*read)(struct rtl8169_private *, int);
52374 - } csi_ops;
52375 + } __no_const csi_ops;
52376
52377 int (*set_speed)(struct net_device *, u8 aneg, u16 sp, u8 dpx, u32 adv);
52378 int (*get_settings)(struct net_device *, struct ethtool_cmd *);
52379 diff --git a/drivers/net/ethernet/rocker/rocker.c b/drivers/net/ethernet/rocker/rocker.c
52380 index 52ec3d6..ed19f16 100644
52381 --- a/drivers/net/ethernet/rocker/rocker.c
52382 +++ b/drivers/net/ethernet/rocker/rocker.c
52383 @@ -5410,7 +5410,7 @@ out:
52384 return NOTIFY_DONE;
52385 }
52386
52387 -static struct notifier_block rocker_netdevice_nb __read_mostly = {
52388 +static struct notifier_block rocker_netdevice_nb = {
52389 .notifier_call = rocker_netdevice_event,
52390 };
52391
52392 @@ -5453,7 +5453,7 @@ static int rocker_netevent_event(struct notifier_block *unused,
52393 return NOTIFY_DONE;
52394 }
52395
52396 -static struct notifier_block rocker_netevent_nb __read_mostly = {
52397 +static struct notifier_block rocker_netevent_nb = {
52398 .notifier_call = rocker_netevent_event,
52399 };
52400
52401 diff --git a/drivers/net/ethernet/sfc/ptp.c b/drivers/net/ethernet/sfc/ptp.c
52402 index c771e0a..bbb368d 100644
52403 --- a/drivers/net/ethernet/sfc/ptp.c
52404 +++ b/drivers/net/ethernet/sfc/ptp.c
52405 @@ -832,7 +832,7 @@ static int efx_ptp_synchronize(struct efx_nic *efx, unsigned int num_readings)
52406 ptp->start.dma_addr);
52407
52408 /* Clear flag that signals MC ready */
52409 - ACCESS_ONCE(*start) = 0;
52410 + ACCESS_ONCE_RW(*start) = 0;
52411 rc = efx_mcdi_rpc_start(efx, MC_CMD_PTP, synch_buf,
52412 MC_CMD_PTP_IN_SYNCHRONIZE_LEN);
52413 EFX_BUG_ON_PARANOID(rc);
52414 diff --git a/drivers/net/ethernet/sfc/selftest.c b/drivers/net/ethernet/sfc/selftest.c
52415 index 9d78830..74fc649 100644
52416 --- a/drivers/net/ethernet/sfc/selftest.c
52417 +++ b/drivers/net/ethernet/sfc/selftest.c
52418 @@ -82,8 +82,8 @@ struct efx_loopback_state {
52419 int packet_count;
52420 struct sk_buff **skbs;
52421 bool offload_csum;
52422 - atomic_t rx_good;
52423 - atomic_t rx_bad;
52424 + atomic_unchecked_t rx_good;
52425 + atomic_unchecked_t rx_bad;
52426 struct efx_loopback_payload payload;
52427 };
52428
52429 @@ -349,12 +349,12 @@ void efx_loopback_rx_packet(struct efx_nic *efx,
52430 netif_vdbg(efx, drv, efx->net_dev,
52431 "got loopback RX in %s loopback test\n", LOOPBACK_MODE(efx));
52432
52433 - atomic_inc(&state->rx_good);
52434 + atomic_inc_unchecked(&state->rx_good);
52435 return;
52436
52437 err:
52438 #ifdef DEBUG
52439 - if (atomic_read(&state->rx_bad) == 0) {
52440 + if (atomic_read_unchecked(&state->rx_bad) == 0) {
52441 netif_err(efx, drv, efx->net_dev, "received packet:\n");
52442 print_hex_dump(KERN_ERR, "", DUMP_PREFIX_OFFSET, 0x10, 1,
52443 buf_ptr, pkt_len, 0);
52444 @@ -363,7 +363,7 @@ void efx_loopback_rx_packet(struct efx_nic *efx,
52445 &state->payload, sizeof(state->payload), 0);
52446 }
52447 #endif
52448 - atomic_inc(&state->rx_bad);
52449 + atomic_inc_unchecked(&state->rx_bad);
52450 }
52451
52452 /* Initialise an efx_selftest_state for a new iteration */
52453 @@ -397,8 +397,8 @@ static void efx_iterate_state(struct efx_nic *efx)
52454 memcpy(&payload->msg, payload_msg, sizeof(payload_msg));
52455
52456 /* Fill out remaining state members */
52457 - atomic_set(&state->rx_good, 0);
52458 - atomic_set(&state->rx_bad, 0);
52459 + atomic_set_unchecked(&state->rx_good, 0);
52460 + atomic_set_unchecked(&state->rx_bad, 0);
52461 smp_wmb();
52462 }
52463
52464 @@ -456,7 +456,7 @@ static int efx_poll_loopback(struct efx_nic *efx)
52465 {
52466 struct efx_loopback_state *state = efx->loopback_selftest;
52467
52468 - return atomic_read(&state->rx_good) == state->packet_count;
52469 + return atomic_read_unchecked(&state->rx_good) == state->packet_count;
52470 }
52471
52472 static int efx_end_loopback(struct efx_tx_queue *tx_queue,
52473 @@ -482,8 +482,8 @@ static int efx_end_loopback(struct efx_tx_queue *tx_queue,
52474 netif_tx_unlock_bh(efx->net_dev);
52475
52476 /* Check TX completion and received packet counts */
52477 - rx_good = atomic_read(&state->rx_good);
52478 - rx_bad = atomic_read(&state->rx_bad);
52479 + rx_good = atomic_read_unchecked(&state->rx_good);
52480 + rx_bad = atomic_read_unchecked(&state->rx_bad);
52481 if (tx_done != state->packet_count) {
52482 /* Don't free the skbs; they will be picked up on TX
52483 * overflow or channel teardown.
52484 diff --git a/drivers/net/ethernet/stmicro/stmmac/mmc_core.c b/drivers/net/ethernet/stmicro/stmmac/mmc_core.c
52485 index 3f20bb1..59add41 100644
52486 --- a/drivers/net/ethernet/stmicro/stmmac/mmc_core.c
52487 +++ b/drivers/net/ethernet/stmicro/stmmac/mmc_core.c
52488 @@ -140,8 +140,8 @@ void dwmac_mmc_ctrl(void __iomem *ioaddr, unsigned int mode)
52489
52490 writel(value, ioaddr + MMC_CNTRL);
52491
52492 - pr_debug("stmmac: MMC ctrl register (offset 0x%x): 0x%08x\n",
52493 - MMC_CNTRL, value);
52494 +// pr_debug("stmmac: MMC ctrl register (offset 0x%x): 0x%08x\n",
52495 +// MMC_CNTRL, value);
52496 }
52497
52498 /* To mask all all interrupts.*/
52499 diff --git a/drivers/net/ethernet/via/via-rhine.c b/drivers/net/ethernet/via/via-rhine.c
52500 index 2b7550c..f75bc6c 100644
52501 --- a/drivers/net/ethernet/via/via-rhine.c
52502 +++ b/drivers/net/ethernet/via/via-rhine.c
52503 @@ -2600,7 +2600,7 @@ static struct platform_driver rhine_driver_platform = {
52504 }
52505 };
52506
52507 -static struct dmi_system_id rhine_dmi_table[] __initdata = {
52508 +static const struct dmi_system_id rhine_dmi_table[] __initconst = {
52509 {
52510 .ident = "EPIA-M",
52511 .matches = {
52512 diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c
52513 index 58efdec..4184f70 100644
52514 --- a/drivers/net/geneve.c
52515 +++ b/drivers/net/geneve.c
52516 @@ -1321,7 +1321,7 @@ nla_put_failure:
52517 return -EMSGSIZE;
52518 }
52519
52520 -static struct rtnl_link_ops geneve_link_ops __read_mostly = {
52521 +static struct rtnl_link_ops geneve_link_ops = {
52522 .kind = "geneve",
52523 .maxtype = IFLA_GENEVE_MAX,
52524 .policy = geneve_policy,
52525 diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h
52526 index 5fa98f5..322f0f8 100644
52527 --- a/drivers/net/hyperv/hyperv_net.h
52528 +++ b/drivers/net/hyperv/hyperv_net.h
52529 @@ -178,7 +178,7 @@ struct rndis_device {
52530 enum rndis_device_state state;
52531 bool link_state;
52532 bool link_change;
52533 - atomic_t new_req_id;
52534 + atomic_unchecked_t new_req_id;
52535
52536 spinlock_t request_lock;
52537 struct list_head req_list;
52538 diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis_filter.c
52539 index 5931a79..134ce31 100644
52540 --- a/drivers/net/hyperv/rndis_filter.c
52541 +++ b/drivers/net/hyperv/rndis_filter.c
52542 @@ -101,7 +101,7 @@ static struct rndis_request *get_rndis_request(struct rndis_device *dev,
52543 * template
52544 */
52545 set = &rndis_msg->msg.set_req;
52546 - set->req_id = atomic_inc_return(&dev->new_req_id);
52547 + set->req_id = atomic_inc_return_unchecked(&dev->new_req_id);
52548
52549 /* Add to the request list */
52550 spin_lock_irqsave(&dev->request_lock, flags);
52551 @@ -924,7 +924,7 @@ static void rndis_filter_halt_device(struct rndis_device *dev)
52552
52553 /* Setup the rndis set */
52554 halt = &request->request_msg.msg.halt_req;
52555 - halt->req_id = atomic_inc_return(&dev->new_req_id);
52556 + halt->req_id = atomic_inc_return_unchecked(&dev->new_req_id);
52557
52558 /* Ignore return since this msg is optional. */
52559 rndis_filter_send_request(dev, request);
52560 @@ -1138,8 +1138,7 @@ int rndis_filter_device_add(struct hv_device *dev,
52561 if (net_device->num_chn == 1)
52562 goto out;
52563
52564 - net_device->sub_cb_buf = vzalloc((net_device->num_chn - 1) *
52565 - NETVSC_PACKET_SIZE);
52566 + net_device->sub_cb_buf = vzalloc(net_device->num_sc_offered * NETVSC_PACKET_SIZE);
52567 if (!net_device->sub_cb_buf) {
52568 net_device->num_chn = 1;
52569 dev_info(&dev->device, "No memory for subchannels.\n");
52570 diff --git a/drivers/net/ifb.c b/drivers/net/ifb.c
52571 index cc56fac..c15b884 100644
52572 --- a/drivers/net/ifb.c
52573 +++ b/drivers/net/ifb.c
52574 @@ -287,7 +287,7 @@ static int ifb_validate(struct nlattr *tb[], struct nlattr *data[])
52575 return 0;
52576 }
52577
52578 -static struct rtnl_link_ops ifb_link_ops __read_mostly = {
52579 +static struct rtnl_link_ops ifb_link_ops = {
52580 .kind = "ifb",
52581 .priv_size = sizeof(struct ifb_dev_private),
52582 .setup = ifb_setup,
52583 diff --git a/drivers/net/ipvlan/ipvlan_core.c b/drivers/net/ipvlan/ipvlan_core.c
52584 index 8c48bb2..0a03401 100644
52585 --- a/drivers/net/ipvlan/ipvlan_core.c
52586 +++ b/drivers/net/ipvlan/ipvlan_core.c
52587 @@ -470,7 +470,7 @@ static void ipvlan_multicast_enqueue(struct ipvl_port *port,
52588 schedule_work(&port->wq);
52589 } else {
52590 spin_unlock(&port->backlog.lock);
52591 - atomic_long_inc(&skb->dev->rx_dropped);
52592 + atomic_long_inc_unchecked(&skb->dev->rx_dropped);
52593 kfree_skb(skb);
52594 }
52595 }
52596 diff --git a/drivers/net/ipvlan/ipvlan_main.c b/drivers/net/ipvlan/ipvlan_main.c
52597 index a9268db..19d067f 100644
52598 --- a/drivers/net/ipvlan/ipvlan_main.c
52599 +++ b/drivers/net/ipvlan/ipvlan_main.c
52600 @@ -751,15 +751,15 @@ static int ipvlan_addr4_event(struct notifier_block *unused,
52601 return NOTIFY_OK;
52602 }
52603
52604 -static struct notifier_block ipvlan_addr4_notifier_block __read_mostly = {
52605 +static struct notifier_block ipvlan_addr4_notifier_block = {
52606 .notifier_call = ipvlan_addr4_event,
52607 };
52608
52609 -static struct notifier_block ipvlan_notifier_block __read_mostly = {
52610 +static struct notifier_block ipvlan_notifier_block = {
52611 .notifier_call = ipvlan_device_event,
52612 };
52613
52614 -static struct notifier_block ipvlan_addr6_notifier_block __read_mostly = {
52615 +static struct notifier_block ipvlan_addr6_notifier_block = {
52616 .notifier_call = ipvlan_addr6_event,
52617 };
52618
52619 diff --git a/drivers/net/irda/vlsi_ir.c b/drivers/net/irda/vlsi_ir.c
52620 index a0849f4..147a4a6 100644
52621 --- a/drivers/net/irda/vlsi_ir.c
52622 +++ b/drivers/net/irda/vlsi_ir.c
52623 @@ -142,7 +142,7 @@ static void vlsi_ring_debug(struct vlsi_ring *r)
52624 printk(KERN_DEBUG "%s - ring %p / size %u / mask 0x%04x / len %u / dir %d / hw %p\n",
52625 __func__, r, r->size, r->mask, r->len, r->dir, r->rd[0].hw);
52626 printk(KERN_DEBUG "%s - head = %d / tail = %d\n", __func__,
52627 - atomic_read(&r->head) & r->mask, atomic_read(&r->tail) & r->mask);
52628 + atomic_read_unchecked(&r->head) & r->mask, atomic_read_unchecked(&r->tail) & r->mask);
52629 for (i = 0; i < r->size; i++) {
52630 rd = &r->rd[i];
52631 printk(KERN_DEBUG "%s - ring descr %u: ", __func__, i);
52632 @@ -301,8 +301,8 @@ static void vlsi_proc_ring(struct seq_file *seq, struct vlsi_ring *r)
52633
52634 seq_printf(seq, "size %u / mask 0x%04x / len %u / dir %d / hw %p\n",
52635 r->size, r->mask, r->len, r->dir, r->rd[0].hw);
52636 - h = atomic_read(&r->head) & r->mask;
52637 - t = atomic_read(&r->tail) & r->mask;
52638 + h = atomic_read_unchecked(&r->head) & r->mask;
52639 + t = atomic_read_unchecked(&r->tail) & r->mask;
52640 seq_printf(seq, "head = %d / tail = %d ", h, t);
52641 if (h == t)
52642 seq_printf(seq, "(empty)\n");
52643 @@ -410,8 +410,8 @@ static struct vlsi_ring *vlsi_alloc_ring(struct pci_dev *pdev, struct ring_descr
52644 r->rd = (struct ring_descr *)(r+1);
52645 r->mask = size - 1;
52646 r->size = size;
52647 - atomic_set(&r->head, 0);
52648 - atomic_set(&r->tail, 0);
52649 + atomic_set_unchecked(&r->head, 0);
52650 + atomic_set_unchecked(&r->tail, 0);
52651
52652 for (i = 0; i < size; i++) {
52653 rd = r->rd + i;
52654 @@ -1268,10 +1268,10 @@ static int vlsi_init_chip(struct pci_dev *pdev)
52655 iobase+VLSI_PIO_RINGSIZE);
52656
52657 ptr = inw(iobase+VLSI_PIO_RINGPTR);
52658 - atomic_set(&idev->rx_ring->head, RINGPTR_GET_RX(ptr));
52659 - atomic_set(&idev->rx_ring->tail, RINGPTR_GET_RX(ptr));
52660 - atomic_set(&idev->tx_ring->head, RINGPTR_GET_TX(ptr));
52661 - atomic_set(&idev->tx_ring->tail, RINGPTR_GET_TX(ptr));
52662 + atomic_set_unchecked(&idev->rx_ring->head, RINGPTR_GET_RX(ptr));
52663 + atomic_set_unchecked(&idev->rx_ring->tail, RINGPTR_GET_RX(ptr));
52664 + atomic_set_unchecked(&idev->tx_ring->head, RINGPTR_GET_TX(ptr));
52665 + atomic_set_unchecked(&idev->tx_ring->tail, RINGPTR_GET_TX(ptr));
52666
52667 vlsi_set_baud(idev, iobase); /* idev->new_baud used as provided by caller */
52668
52669 diff --git a/drivers/net/irda/vlsi_ir.h b/drivers/net/irda/vlsi_ir.h
52670 index f9db2ce..6cd460c 100644
52671 --- a/drivers/net/irda/vlsi_ir.h
52672 +++ b/drivers/net/irda/vlsi_ir.h
52673 @@ -671,7 +671,7 @@ struct vlsi_ring {
52674 unsigned len;
52675 unsigned size;
52676 unsigned mask;
52677 - atomic_t head, tail;
52678 + atomic_unchecked_t head, tail;
52679 struct ring_descr *rd;
52680 };
52681
52682 @@ -681,13 +681,13 @@ static inline struct ring_descr *ring_last(struct vlsi_ring *r)
52683 {
52684 int t;
52685
52686 - t = atomic_read(&r->tail) & r->mask;
52687 - return (((t+1) & r->mask) == (atomic_read(&r->head) & r->mask)) ? NULL : &r->rd[t];
52688 + t = atomic_read_unchecked(&r->tail) & r->mask;
52689 + return (((t+1) & r->mask) == (atomic_read_unchecked(&r->head) & r->mask)) ? NULL : &r->rd[t];
52690 }
52691
52692 static inline struct ring_descr *ring_put(struct vlsi_ring *r)
52693 {
52694 - atomic_inc(&r->tail);
52695 + atomic_inc_unchecked(&r->tail);
52696 return ring_last(r);
52697 }
52698
52699 @@ -695,13 +695,13 @@ static inline struct ring_descr *ring_first(struct vlsi_ring *r)
52700 {
52701 int h;
52702
52703 - h = atomic_read(&r->head) & r->mask;
52704 - return (h == (atomic_read(&r->tail) & r->mask)) ? NULL : &r->rd[h];
52705 + h = atomic_read_unchecked(&r->head) & r->mask;
52706 + return (h == (atomic_read_unchecked(&r->tail) & r->mask)) ? NULL : &r->rd[h];
52707 }
52708
52709 static inline struct ring_descr *ring_get(struct vlsi_ring *r)
52710 {
52711 - atomic_inc(&r->head);
52712 + atomic_inc_unchecked(&r->head);
52713 return ring_first(r);
52714 }
52715
52716 diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
52717 index 06c8bfe..a081f70 100644
52718 --- a/drivers/net/macvlan.c
52719 +++ b/drivers/net/macvlan.c
52720 @@ -335,7 +335,7 @@ static void macvlan_broadcast_enqueue(struct macvlan_port *port,
52721 free_nskb:
52722 kfree_skb(nskb);
52723 err:
52724 - atomic_long_inc(&skb->dev->rx_dropped);
52725 + atomic_long_inc_unchecked(&skb->dev->rx_dropped);
52726 }
52727
52728 static void macvlan_flush_sources(struct macvlan_port *port,
52729 @@ -1483,13 +1483,15 @@ static const struct nla_policy macvlan_policy[IFLA_MACVLAN_MAX + 1] = {
52730 int macvlan_link_register(struct rtnl_link_ops *ops)
52731 {
52732 /* common fields */
52733 - ops->priv_size = sizeof(struct macvlan_dev);
52734 - ops->validate = macvlan_validate;
52735 - ops->maxtype = IFLA_MACVLAN_MAX;
52736 - ops->policy = macvlan_policy;
52737 - ops->changelink = macvlan_changelink;
52738 - ops->get_size = macvlan_get_size;
52739 - ops->fill_info = macvlan_fill_info;
52740 + pax_open_kernel();
52741 + *(size_t *)&ops->priv_size = sizeof(struct macvlan_dev);
52742 + *(void **)&ops->validate = macvlan_validate;
52743 + *(int *)&ops->maxtype = IFLA_MACVLAN_MAX;
52744 + *(const void **)&ops->policy = macvlan_policy;
52745 + *(void **)&ops->changelink = macvlan_changelink;
52746 + *(void **)&ops->get_size = macvlan_get_size;
52747 + *(void **)&ops->fill_info = macvlan_fill_info;
52748 + pax_close_kernel();
52749
52750 return rtnl_link_register(ops);
52751 };
52752 @@ -1575,7 +1577,7 @@ static int macvlan_device_event(struct notifier_block *unused,
52753 return NOTIFY_DONE;
52754 }
52755
52756 -static struct notifier_block macvlan_notifier_block __read_mostly = {
52757 +static struct notifier_block macvlan_notifier_block = {
52758 .notifier_call = macvlan_device_event,
52759 };
52760
52761 diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
52762 index 0fc5219..cfe16bb 100644
52763 --- a/drivers/net/macvtap.c
52764 +++ b/drivers/net/macvtap.c
52765 @@ -485,7 +485,7 @@ static void macvtap_setup(struct net_device *dev)
52766 dev->tx_queue_len = TUN_READQ_SIZE;
52767 }
52768
52769 -static struct rtnl_link_ops macvtap_link_ops __read_mostly = {
52770 +static struct rtnl_link_ops macvtap_link_ops = {
52771 .kind = "macvtap",
52772 .setup = macvtap_setup,
52773 .newlink = macvtap_newlink,
52774 @@ -1091,7 +1091,7 @@ static long macvtap_ioctl(struct file *file, unsigned int cmd,
52775
52776 ret = 0;
52777 u = q->flags;
52778 - if (copy_to_user(&ifr->ifr_name, vlan->dev->name, IFNAMSIZ) ||
52779 + if (copy_to_user(ifr->ifr_name, vlan->dev->name, IFNAMSIZ) ||
52780 put_user(u, &ifr->ifr_flags))
52781 ret = -EFAULT;
52782 macvtap_put_vlan(vlan);
52783 @@ -1174,8 +1174,8 @@ static long macvtap_ioctl(struct file *file, unsigned int cmd,
52784 }
52785 ret = 0;
52786 u = vlan->dev->type;
52787 - if (copy_to_user(&ifr->ifr_name, vlan->dev->name, IFNAMSIZ) ||
52788 - copy_to_user(&ifr->ifr_hwaddr.sa_data, vlan->dev->dev_addr, ETH_ALEN) ||
52789 + if (copy_to_user(ifr->ifr_name, vlan->dev->name, IFNAMSIZ) ||
52790 + copy_to_user(ifr->ifr_hwaddr.sa_data, vlan->dev->dev_addr, ETH_ALEN) ||
52791 put_user(u, &ifr->ifr_hwaddr.sa_family))
52792 ret = -EFAULT;
52793 macvtap_put_vlan(vlan);
52794 @@ -1309,7 +1309,7 @@ static int macvtap_device_event(struct notifier_block *unused,
52795 return NOTIFY_DONE;
52796 }
52797
52798 -static struct notifier_block macvtap_notifier_block __read_mostly = {
52799 +static struct notifier_block macvtap_notifier_block = {
52800 .notifier_call = macvtap_device_event,
52801 };
52802
52803 diff --git a/drivers/net/nlmon.c b/drivers/net/nlmon.c
52804 index 7b7c70e..a92dc83 100644
52805 --- a/drivers/net/nlmon.c
52806 +++ b/drivers/net/nlmon.c
52807 @@ -154,7 +154,7 @@ static int nlmon_validate(struct nlattr *tb[], struct nlattr *data[])
52808 return 0;
52809 }
52810
52811 -static struct rtnl_link_ops nlmon_link_ops __read_mostly = {
52812 +static struct rtnl_link_ops nlmon_link_ops = {
52813 .kind = "nlmon",
52814 .priv_size = sizeof(struct nlmon),
52815 .setup = nlmon_setup,
52816 diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
52817 index 0bfbaba..c81a3588 100644
52818 --- a/drivers/net/phy/phy_device.c
52819 +++ b/drivers/net/phy/phy_device.c
52820 @@ -249,7 +249,7 @@ static int get_phy_c45_devs_in_pkg(struct mii_bus *bus, int addr, int dev_addr,
52821 * zero on success.
52822 *
52823 */
52824 -static int get_phy_c45_ids(struct mii_bus *bus, int addr, u32 *phy_id,
52825 +static int get_phy_c45_ids(struct mii_bus *bus, int addr, int *phy_id,
52826 struct phy_c45_device_ids *c45_ids) {
52827 int phy_reg;
52828 int i, reg_addr;
52829 @@ -320,7 +320,7 @@ static int get_phy_c45_ids(struct mii_bus *bus, int addr, u32 *phy_id,
52830 * its return value is in turn returned.
52831 *
52832 */
52833 -static int get_phy_id(struct mii_bus *bus, int addr, u32 *phy_id,
52834 +static int get_phy_id(struct mii_bus *bus, int addr, int *phy_id,
52835 bool is_c45, struct phy_c45_device_ids *c45_ids)
52836 {
52837 int phy_reg;
52838 @@ -358,7 +358,7 @@ static int get_phy_id(struct mii_bus *bus, int addr, u32 *phy_id,
52839 struct phy_device *get_phy_device(struct mii_bus *bus, int addr, bool is_c45)
52840 {
52841 struct phy_c45_device_ids c45_ids = {0};
52842 - u32 phy_id = 0;
52843 + int phy_id = 0;
52844 int r;
52845
52846 r = get_phy_id(bus, addr, &phy_id, is_c45, &c45_ids);
52847 diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c
52848 index 9a863c6..8e2d8c9 100644
52849 --- a/drivers/net/ppp/ppp_generic.c
52850 +++ b/drivers/net/ppp/ppp_generic.c
52851 @@ -1045,7 +1045,6 @@ ppp_net_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
52852 void __user *addr = (void __user *) ifr->ifr_ifru.ifru_data;
52853 struct ppp_stats stats;
52854 struct ppp_comp_stats cstats;
52855 - char *vers;
52856
52857 switch (cmd) {
52858 case SIOCGPPPSTATS:
52859 @@ -1067,8 +1066,7 @@ ppp_net_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
52860 break;
52861
52862 case SIOCGPPPVER:
52863 - vers = PPP_VERSION;
52864 - if (copy_to_user(addr, vers, strlen(vers) + 1))
52865 + if (copy_to_user(addr, PPP_VERSION, sizeof(PPP_VERSION)))
52866 break;
52867 err = 0;
52868 break;
52869 diff --git a/drivers/net/slip/slhc.c b/drivers/net/slip/slhc.c
52870 index 27ed252..80cffde 100644
52871 --- a/drivers/net/slip/slhc.c
52872 +++ b/drivers/net/slip/slhc.c
52873 @@ -491,7 +491,7 @@ slhc_uncompress(struct slcompress *comp, unsigned char *icp, int isize)
52874 register struct tcphdr *thp;
52875 register struct iphdr *ip;
52876 register struct cstate *cs;
52877 - int len, hdrlen;
52878 + long len, hdrlen;
52879 unsigned char *cp = icp;
52880
52881 /* We've got a compressed packet; read the change byte */
52882 diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
52883 index 59fefca..b1422b1 100644
52884 --- a/drivers/net/team/team.c
52885 +++ b/drivers/net/team/team.c
52886 @@ -2107,7 +2107,7 @@ static unsigned int team_get_num_rx_queues(void)
52887 return TEAM_DEFAULT_NUM_RX_QUEUES;
52888 }
52889
52890 -static struct rtnl_link_ops team_link_ops __read_mostly = {
52891 +static struct rtnl_link_ops team_link_ops = {
52892 .kind = DRV_NAME,
52893 .priv_size = sizeof(struct team),
52894 .setup = team_setup,
52895 @@ -2897,7 +2897,7 @@ static int team_device_event(struct notifier_block *unused,
52896 return NOTIFY_DONE;
52897 }
52898
52899 -static struct notifier_block team_notifier_block __read_mostly = {
52900 +static struct notifier_block team_notifier_block = {
52901 .notifier_call = team_device_event,
52902 };
52903
52904 diff --git a/drivers/net/tun.c b/drivers/net/tun.c
52905 index f0db770..f237a01 100644
52906 --- a/drivers/net/tun.c
52907 +++ b/drivers/net/tun.c
52908 @@ -1473,7 +1473,7 @@ static int tun_validate(struct nlattr *tb[], struct nlattr *data[])
52909 return -EINVAL;
52910 }
52911
52912 -static struct rtnl_link_ops tun_link_ops __read_mostly = {
52913 +static struct rtnl_link_ops tun_link_ops = {
52914 .kind = DRV_NAME,
52915 .priv_size = sizeof(struct tun_struct),
52916 .setup = tun_setup,
52917 @@ -1872,7 +1872,7 @@ unlock:
52918 }
52919
52920 static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
52921 - unsigned long arg, int ifreq_len)
52922 + unsigned long arg, size_t ifreq_len)
52923 {
52924 struct tun_file *tfile = file->private_data;
52925 struct tun_struct *tun;
52926 @@ -1886,6 +1886,9 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
52927 int le;
52928 int ret;
52929
52930 + if (ifreq_len > sizeof ifr)
52931 + return -EFAULT;
52932 +
52933 if (cmd == TUNSETIFF || cmd == TUNSETQUEUE || _IOC_TYPE(cmd) == 0x89) {
52934 if (copy_from_user(&ifr, argp, ifreq_len))
52935 return -EFAULT;
52936 diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
52937 index 111d907..1ee643e 100644
52938 --- a/drivers/net/usb/hso.c
52939 +++ b/drivers/net/usb/hso.c
52940 @@ -70,7 +70,7 @@
52941 #include <asm/byteorder.h>
52942 #include <linux/serial_core.h>
52943 #include <linux/serial.h>
52944 -
52945 +#include <asm/local.h>
52946
52947 #define MOD_AUTHOR "Option Wireless"
52948 #define MOD_DESCRIPTION "USB High Speed Option driver"
52949 @@ -1183,7 +1183,7 @@ static void put_rxbuf_data_and_resubmit_ctrl_urb(struct hso_serial *serial)
52950 struct urb *urb;
52951
52952 urb = serial->rx_urb[0];
52953 - if (serial->port.count > 0) {
52954 + if (atomic_read(&serial->port.count) > 0) {
52955 count = put_rxbuf_data(urb, serial);
52956 if (count == -1)
52957 return;
52958 @@ -1221,7 +1221,7 @@ static void hso_std_serial_read_bulk_callback(struct urb *urb)
52959 DUMP1(urb->transfer_buffer, urb->actual_length);
52960
52961 /* Anyone listening? */
52962 - if (serial->port.count == 0)
52963 + if (atomic_read(&serial->port.count) == 0)
52964 return;
52965
52966 if (serial->parent->port_spec & HSO_INFO_CRC_BUG)
52967 @@ -1282,8 +1282,7 @@ static int hso_serial_open(struct tty_struct *tty, struct file *filp)
52968 tty_port_tty_set(&serial->port, tty);
52969
52970 /* check for port already opened, if not set the termios */
52971 - serial->port.count++;
52972 - if (serial->port.count == 1) {
52973 + if (atomic_inc_return(&serial->port.count) == 1) {
52974 serial->rx_state = RX_IDLE;
52975 /* Force default termio settings */
52976 _hso_serial_set_termios(tty, NULL);
52977 @@ -1293,7 +1292,7 @@ static int hso_serial_open(struct tty_struct *tty, struct file *filp)
52978 result = hso_start_serial_device(serial->parent, GFP_KERNEL);
52979 if (result) {
52980 hso_stop_serial_device(serial->parent);
52981 - serial->port.count--;
52982 + atomic_dec(&serial->port.count);
52983 } else {
52984 kref_get(&serial->parent->ref);
52985 }
52986 @@ -1331,10 +1330,10 @@ static void hso_serial_close(struct tty_struct *tty, struct file *filp)
52987
52988 /* reset the rts and dtr */
52989 /* do the actual close */
52990 - serial->port.count--;
52991 + atomic_dec(&serial->port.count);
52992
52993 - if (serial->port.count <= 0) {
52994 - serial->port.count = 0;
52995 + if (atomic_read(&serial->port.count) <= 0) {
52996 + atomic_set(&serial->port.count, 0);
52997 tty_port_tty_set(&serial->port, NULL);
52998 if (!usb_gone)
52999 hso_stop_serial_device(serial->parent);
53000 @@ -1417,7 +1416,7 @@ static void hso_serial_set_termios(struct tty_struct *tty, struct ktermios *old)
53001
53002 /* the actual setup */
53003 spin_lock_irqsave(&serial->serial_lock, flags);
53004 - if (serial->port.count)
53005 + if (atomic_read(&serial->port.count))
53006 _hso_serial_set_termios(tty, old);
53007 else
53008 tty->termios = *old;
53009 @@ -1891,7 +1890,7 @@ static void intr_callback(struct urb *urb)
53010 D1("Pending read interrupt on port %d\n", i);
53011 spin_lock(&serial->serial_lock);
53012 if (serial->rx_state == RX_IDLE &&
53013 - serial->port.count > 0) {
53014 + atomic_read(&serial->port.count) > 0) {
53015 /* Setup and send a ctrl req read on
53016 * port i */
53017 if (!serial->rx_urb_filled[0]) {
53018 @@ -3058,7 +3057,7 @@ static int hso_resume(struct usb_interface *iface)
53019 /* Start all serial ports */
53020 for (i = 0; i < HSO_SERIAL_TTY_MINORS; i++) {
53021 if (serial_table[i] && (serial_table[i]->interface == iface)) {
53022 - if (dev2ser(serial_table[i])->port.count) {
53023 + if (atomic_read(&dev2ser(serial_table[i])->port.count)) {
53024 result =
53025 hso_start_serial_device(serial_table[i], GFP_NOIO);
53026 hso_kick_transmit(dev2ser(serial_table[i]));
53027 diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
53028 index 2fb637a..1e442a2 100644
53029 --- a/drivers/net/usb/r8152.c
53030 +++ b/drivers/net/usb/r8152.c
53031 @@ -615,7 +615,7 @@ struct r8152 {
53032 int (*eee_get)(struct r8152 *, struct ethtool_eee *);
53033 int (*eee_set)(struct r8152 *, struct ethtool_eee *);
53034 bool (*in_nway)(struct r8152 *);
53035 - } rtl_ops;
53036 + } __no_const rtl_ops;
53037
53038 int intr_interval;
53039 u32 saved_wolopts;
53040 diff --git a/drivers/net/usb/sierra_net.c b/drivers/net/usb/sierra_net.c
53041 index a2515887..6d13233 100644
53042 --- a/drivers/net/usb/sierra_net.c
53043 +++ b/drivers/net/usb/sierra_net.c
53044 @@ -51,7 +51,7 @@ static const char driver_name[] = "sierra_net";
53045 /* atomic counter partially included in MAC address to make sure 2 devices
53046 * do not end up with the same MAC - concept breaks in case of > 255 ifaces
53047 */
53048 -static atomic_t iface_counter = ATOMIC_INIT(0);
53049 +static atomic_unchecked_t iface_counter = ATOMIC_INIT(0);
53050
53051 /*
53052 * SYNC Timer Delay definition used to set the expiry time
53053 @@ -697,7 +697,7 @@ static int sierra_net_bind(struct usbnet *dev, struct usb_interface *intf)
53054 dev->net->netdev_ops = &sierra_net_device_ops;
53055
53056 /* change MAC addr to include, ifacenum, and to be unique */
53057 - dev->net->dev_addr[ETH_ALEN-2] = atomic_inc_return(&iface_counter);
53058 + dev->net->dev_addr[ETH_ALEN-2] = atomic_inc_return_unchecked(&iface_counter);
53059 dev->net->dev_addr[ETH_ALEN-1] = ifacenum;
53060
53061 /* we will have to manufacture ethernet headers, prepare template */
53062 diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
53063 index f94ab78..675a3a4 100644
53064 --- a/drivers/net/virtio_net.c
53065 +++ b/drivers/net/virtio_net.c
53066 @@ -48,7 +48,7 @@ module_param(gso, bool, 0444);
53067 DECLARE_EWMA(pkt_len, 1, 64)
53068
53069 /* Minimum alignment for mergeable packet buffers. */
53070 -#define MERGEABLE_BUFFER_ALIGN max(L1_CACHE_BYTES, 256)
53071 +#define MERGEABLE_BUFFER_ALIGN max(L1_CACHE_BYTES, 256UL)
53072
53073 #define VIRTNET_DRIVER_VERSION "1.0.0"
53074
53075 diff --git a/drivers/net/vrf.c b/drivers/net/vrf.c
53076 index 0a242b2..eaf24af 100644
53077 --- a/drivers/net/vrf.c
53078 +++ b/drivers/net/vrf.c
53079 @@ -939,7 +939,7 @@ static const struct nla_policy vrf_nl_policy[IFLA_VRF_MAX + 1] = {
53080 [IFLA_VRF_TABLE] = { .type = NLA_U32 },
53081 };
53082
53083 -static struct rtnl_link_ops vrf_link_ops __read_mostly = {
53084 +static struct rtnl_link_ops vrf_link_ops = {
53085 .kind = DRV_NAME,
53086 .priv_size = sizeof(struct net_vrf),
53087
53088 @@ -973,7 +973,7 @@ out:
53089 return NOTIFY_DONE;
53090 }
53091
53092 -static struct notifier_block vrf_notifier_block __read_mostly = {
53093 +static struct notifier_block vrf_notifier_block = {
53094 .notifier_call = vrf_device_event,
53095 };
53096
53097 diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
53098 index e0fcda4..b548741 100644
53099 --- a/drivers/net/vxlan.c
53100 +++ b/drivers/net/vxlan.c
53101 @@ -3144,7 +3144,7 @@ static struct net *vxlan_get_link_net(const struct net_device *dev)
53102 return vxlan->net;
53103 }
53104
53105 -static struct rtnl_link_ops vxlan_link_ops __read_mostly = {
53106 +static struct rtnl_link_ops vxlan_link_ops = {
53107 .kind = "vxlan",
53108 .maxtype = IFLA_VXLAN_MAX,
53109 .policy = vxlan_policy,
53110 @@ -3192,7 +3192,7 @@ static int vxlan_lowerdev_event(struct notifier_block *unused,
53111 return NOTIFY_DONE;
53112 }
53113
53114 -static struct notifier_block vxlan_notifier_block __read_mostly = {
53115 +static struct notifier_block vxlan_notifier_block = {
53116 .notifier_call = vxlan_lowerdev_event,
53117 };
53118
53119 diff --git a/drivers/net/wan/dscc4.c b/drivers/net/wan/dscc4.c
53120 index 7a72407..6292259 100644
53121 --- a/drivers/net/wan/dscc4.c
53122 +++ b/drivers/net/wan/dscc4.c
53123 @@ -1626,7 +1626,7 @@ try:
53124 if (state & Xpr) {
53125 void __iomem *scc_addr;
53126 unsigned long ring;
53127 - int i;
53128 + unsigned int i;
53129
53130 /*
53131 * - the busy condition happens (sometimes);
53132 diff --git a/drivers/net/wan/lmc/lmc_media.c b/drivers/net/wan/lmc/lmc_media.c
53133 index 5920c99..ff2e4a5 100644
53134 --- a/drivers/net/wan/lmc/lmc_media.c
53135 +++ b/drivers/net/wan/lmc/lmc_media.c
53136 @@ -95,62 +95,63 @@ static inline void write_av9110_bit (lmc_softc_t *, int);
53137 static void write_av9110(lmc_softc_t *, u32, u32, u32, u32, u32);
53138
53139 lmc_media_t lmc_ds3_media = {
53140 - lmc_ds3_init, /* special media init stuff */
53141 - lmc_ds3_default, /* reset to default state */
53142 - lmc_ds3_set_status, /* reset status to state provided */
53143 - lmc_dummy_set_1, /* set clock source */
53144 - lmc_dummy_set2_1, /* set line speed */
53145 - lmc_ds3_set_100ft, /* set cable length */
53146 - lmc_ds3_set_scram, /* set scrambler */
53147 - lmc_ds3_get_link_status, /* get link status */
53148 - lmc_dummy_set_1, /* set link status */
53149 - lmc_ds3_set_crc_length, /* set CRC length */
53150 - lmc_dummy_set_1, /* set T1 or E1 circuit type */
53151 - lmc_ds3_watchdog
53152 + .init = lmc_ds3_init, /* special media init stuff */
53153 + .defaults = lmc_ds3_default, /* reset to default state */
53154 + .set_status = lmc_ds3_set_status, /* reset status to state provided */
53155 + .set_clock_source = lmc_dummy_set_1, /* set clock source */
53156 + .set_speed = lmc_dummy_set2_1, /* set line speed */
53157 + .set_cable_length = lmc_ds3_set_100ft, /* set cable length */
53158 + .set_scrambler = lmc_ds3_set_scram, /* set scrambler */
53159 + .get_link_status = lmc_ds3_get_link_status, /* get link status */
53160 + .set_link_status = lmc_dummy_set_1, /* set link status */
53161 + .set_crc_length = lmc_ds3_set_crc_length, /* set CRC length */
53162 + .set_circuit_type = lmc_dummy_set_1, /* set T1 or E1 circuit type */
53163 + .watchdog = lmc_ds3_watchdog
53164 };
53165
53166 lmc_media_t lmc_hssi_media = {
53167 - lmc_hssi_init, /* special media init stuff */
53168 - lmc_hssi_default, /* reset to default state */
53169 - lmc_hssi_set_status, /* reset status to state provided */
53170 - lmc_hssi_set_clock, /* set clock source */
53171 - lmc_dummy_set2_1, /* set line speed */
53172 - lmc_dummy_set_1, /* set cable length */
53173 - lmc_dummy_set_1, /* set scrambler */
53174 - lmc_hssi_get_link_status, /* get link status */
53175 - lmc_hssi_set_link_status, /* set link status */
53176 - lmc_hssi_set_crc_length, /* set CRC length */
53177 - lmc_dummy_set_1, /* set T1 or E1 circuit type */
53178 - lmc_hssi_watchdog
53179 + .init = lmc_hssi_init, /* special media init stuff */
53180 + .defaults = lmc_hssi_default, /* reset to default state */
53181 + .set_status = lmc_hssi_set_status, /* reset status to state provided */
53182 + .set_clock_source = lmc_hssi_set_clock, /* set clock source */
53183 + .set_speed = lmc_dummy_set2_1, /* set line speed */
53184 + .set_cable_length = lmc_dummy_set_1, /* set cable length */
53185 + .set_scrambler = lmc_dummy_set_1, /* set scrambler */
53186 + .get_link_status = lmc_hssi_get_link_status, /* get link status */
53187 + .set_link_status = lmc_hssi_set_link_status, /* set link status */
53188 + .set_crc_length = lmc_hssi_set_crc_length, /* set CRC length */
53189 + .set_circuit_type = lmc_dummy_set_1, /* set T1 or E1 circuit type */
53190 + .watchdog = lmc_hssi_watchdog
53191 };
53192
53193 -lmc_media_t lmc_ssi_media = { lmc_ssi_init, /* special media init stuff */
53194 - lmc_ssi_default, /* reset to default state */
53195 - lmc_ssi_set_status, /* reset status to state provided */
53196 - lmc_ssi_set_clock, /* set clock source */
53197 - lmc_ssi_set_speed, /* set line speed */
53198 - lmc_dummy_set_1, /* set cable length */
53199 - lmc_dummy_set_1, /* set scrambler */
53200 - lmc_ssi_get_link_status, /* get link status */
53201 - lmc_ssi_set_link_status, /* set link status */
53202 - lmc_ssi_set_crc_length, /* set CRC length */
53203 - lmc_dummy_set_1, /* set T1 or E1 circuit type */
53204 - lmc_ssi_watchdog
53205 +lmc_media_t lmc_ssi_media = {
53206 + .init = lmc_ssi_init, /* special media init stuff */
53207 + .defaults = lmc_ssi_default, /* reset to default state */
53208 + .set_status = lmc_ssi_set_status, /* reset status to state provided */
53209 + .set_clock_source = lmc_ssi_set_clock, /* set clock source */
53210 + .set_speed = lmc_ssi_set_speed, /* set line speed */
53211 + .set_cable_length = lmc_dummy_set_1, /* set cable length */
53212 + .set_scrambler = lmc_dummy_set_1, /* set scrambler */
53213 + .get_link_status = lmc_ssi_get_link_status, /* get link status */
53214 + .set_link_status = lmc_ssi_set_link_status, /* set link status */
53215 + .set_crc_length = lmc_ssi_set_crc_length, /* set CRC length */
53216 + .set_circuit_type = lmc_dummy_set_1, /* set T1 or E1 circuit type */
53217 + .watchdog = lmc_ssi_watchdog
53218 };
53219
53220 lmc_media_t lmc_t1_media = {
53221 - lmc_t1_init, /* special media init stuff */
53222 - lmc_t1_default, /* reset to default state */
53223 - lmc_t1_set_status, /* reset status to state provided */
53224 - lmc_t1_set_clock, /* set clock source */
53225 - lmc_dummy_set2_1, /* set line speed */
53226 - lmc_dummy_set_1, /* set cable length */
53227 - lmc_dummy_set_1, /* set scrambler */
53228 - lmc_t1_get_link_status, /* get link status */
53229 - lmc_dummy_set_1, /* set link status */
53230 - lmc_t1_set_crc_length, /* set CRC length */
53231 - lmc_t1_set_circuit_type, /* set T1 or E1 circuit type */
53232 - lmc_t1_watchdog
53233 + .init = lmc_t1_init, /* special media init stuff */
53234 + .defaults = lmc_t1_default, /* reset to default state */
53235 + .set_status = lmc_t1_set_status, /* reset status to state provided */
53236 + .set_clock_source = lmc_t1_set_clock, /* set clock source */
53237 + .set_speed = lmc_dummy_set2_1, /* set line speed */
53238 + .set_cable_length = lmc_dummy_set_1, /* set cable length */
53239 + .set_scrambler = lmc_dummy_set_1, /* set scrambler */
53240 + .get_link_status = lmc_t1_get_link_status, /* get link status */
53241 + .set_link_status = lmc_dummy_set_1, /* set link status */
53242 + .set_crc_length = lmc_t1_set_crc_length, /* set CRC length */
53243 + .set_circuit_type = lmc_t1_set_circuit_type, /* set T1 or E1 circuit type */
53244 + .watchdog = lmc_t1_watchdog
53245 };
53246
53247 static void
53248 diff --git a/drivers/net/wan/z85230.c b/drivers/net/wan/z85230.c
53249 index 2f0bd69..e46ed7b 100644
53250 --- a/drivers/net/wan/z85230.c
53251 +++ b/drivers/net/wan/z85230.c
53252 @@ -485,9 +485,9 @@ static void z8530_status(struct z8530_channel *chan)
53253
53254 struct z8530_irqhandler z8530_sync =
53255 {
53256 - z8530_rx,
53257 - z8530_tx,
53258 - z8530_status
53259 + .rx = z8530_rx,
53260 + .tx = z8530_tx,
53261 + .status = z8530_status
53262 };
53263
53264 EXPORT_SYMBOL(z8530_sync);
53265 @@ -605,15 +605,15 @@ static void z8530_dma_status(struct z8530_channel *chan)
53266 }
53267
53268 static struct z8530_irqhandler z8530_dma_sync = {
53269 - z8530_dma_rx,
53270 - z8530_dma_tx,
53271 - z8530_dma_status
53272 + .rx = z8530_dma_rx,
53273 + .tx = z8530_dma_tx,
53274 + .status = z8530_dma_status
53275 };
53276
53277 static struct z8530_irqhandler z8530_txdma_sync = {
53278 - z8530_rx,
53279 - z8530_dma_tx,
53280 - z8530_dma_status
53281 + .rx = z8530_rx,
53282 + .tx = z8530_dma_tx,
53283 + .status = z8530_dma_status
53284 };
53285
53286 /**
53287 @@ -680,9 +680,9 @@ static void z8530_status_clear(struct z8530_channel *chan)
53288
53289 struct z8530_irqhandler z8530_nop=
53290 {
53291 - z8530_rx_clear,
53292 - z8530_tx_clear,
53293 - z8530_status_clear
53294 + .rx = z8530_rx_clear,
53295 + .tx = z8530_tx_clear,
53296 + .status = z8530_status_clear
53297 };
53298
53299
53300 diff --git a/drivers/net/wimax/i2400m/rx.c b/drivers/net/wimax/i2400m/rx.c
53301 index 0b60295..b8bfa5b 100644
53302 --- a/drivers/net/wimax/i2400m/rx.c
53303 +++ b/drivers/net/wimax/i2400m/rx.c
53304 @@ -1359,7 +1359,7 @@ int i2400m_rx_setup(struct i2400m *i2400m)
53305 if (i2400m->rx_roq == NULL)
53306 goto error_roq_alloc;
53307
53308 - rd = kcalloc(I2400M_RO_CIN + 1, sizeof(*i2400m->rx_roq[0].log),
53309 + rd = kcalloc(sizeof(*i2400m->rx_roq[0].log), I2400M_RO_CIN + 1,
53310 GFP_KERNEL);
53311 if (rd == NULL) {
53312 result = -ENOMEM;
53313 diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
53314 index 17c40f0..9646fee 100644
53315 --- a/drivers/net/wireless/airo.c
53316 +++ b/drivers/net/wireless/airo.c
53317 @@ -7857,7 +7857,7 @@ static int writerids(struct net_device *dev, aironet_ioctl *comp) {
53318 struct airo_info *ai = dev->ml_priv;
53319 int ridcode;
53320 int enabled;
53321 - static int (* writer)(struct airo_info *, u16 rid, const void *, int, int);
53322 + int (* writer)(struct airo_info *, u16 rid, const void *, int, int);
53323 unsigned char *iobuf;
53324
53325 /* Only super-user can write RIDs */
53326 diff --git a/drivers/net/wireless/at76c50x-usb.c b/drivers/net/wireless/at76c50x-usb.c
53327 index dab2513..4c4b65d 100644
53328 --- a/drivers/net/wireless/at76c50x-usb.c
53329 +++ b/drivers/net/wireless/at76c50x-usb.c
53330 @@ -353,7 +353,7 @@ static int at76_dfu_get_state(struct usb_device *udev, u8 *state)
53331 }
53332
53333 /* Convert timeout from the DFU status to jiffies */
53334 -static inline unsigned long at76_get_timeout(struct dfu_status *s)
53335 +static inline unsigned long __intentional_overflow(-1) at76_get_timeout(struct dfu_status *s)
53336 {
53337 return msecs_to_jiffies((s->poll_timeout[2] << 16)
53338 | (s->poll_timeout[1] << 8)
53339 diff --git a/drivers/net/wireless/ath/ath10k/ce.c b/drivers/net/wireless/ath/ath10k/ce.c
53340 index edf3629..9f20ef9 100644
53341 --- a/drivers/net/wireless/ath/ath10k/ce.c
53342 +++ b/drivers/net/wireless/ath/ath10k/ce.c
53343 @@ -878,12 +878,12 @@ static int ath10k_ce_init_dest_ring(struct ath10k *ar,
53344 return 0;
53345 }
53346
53347 -static struct ath10k_ce_ring *
53348 +static struct ath10k_ce_ring * __intentional_overflow(-1)
53349 ath10k_ce_alloc_src_ring(struct ath10k *ar, unsigned int ce_id,
53350 const struct ce_attr *attr)
53351 {
53352 struct ath10k_ce_ring *src_ring;
53353 - u32 nentries = attr->src_nentries;
53354 + unsigned long nentries = attr->src_nentries;
53355 dma_addr_t base_addr;
53356
53357 nentries = roundup_pow_of_two(nentries);
53358 @@ -929,7 +929,7 @@ ath10k_ce_alloc_dest_ring(struct ath10k *ar, unsigned int ce_id,
53359 const struct ce_attr *attr)
53360 {
53361 struct ath10k_ce_ring *dest_ring;
53362 - u32 nentries;
53363 + unsigned long nentries;
53364 dma_addr_t base_addr;
53365
53366 nentries = roundup_pow_of_two(attr->dest_nentries);
53367 diff --git a/drivers/net/wireless/ath/ath10k/htc.h b/drivers/net/wireless/ath/ath10k/htc.h
53368 index e70aa38..2fcc407 100644
53369 --- a/drivers/net/wireless/ath/ath10k/htc.h
53370 +++ b/drivers/net/wireless/ath/ath10k/htc.h
53371 @@ -270,13 +270,13 @@ enum ath10k_htc_ep_id {
53372
53373 struct ath10k_htc_ops {
53374 void (*target_send_suspend_complete)(struct ath10k *ar);
53375 -};
53376 +} __no_const;
53377
53378 struct ath10k_htc_ep_ops {
53379 void (*ep_tx_complete)(struct ath10k *, struct sk_buff *);
53380 void (*ep_rx_complete)(struct ath10k *, struct sk_buff *);
53381 void (*ep_tx_credits)(struct ath10k *);
53382 -};
53383 +} __no_const;
53384
53385 /* service connection information */
53386 struct ath10k_htc_svc_conn_req {
53387 diff --git a/drivers/net/wireless/ath/ath9k/Kconfig b/drivers/net/wireless/ath/ath9k/Kconfig
53388 index fee0cad..a7a3b63 100644
53389 --- a/drivers/net/wireless/ath/ath9k/Kconfig
53390 +++ b/drivers/net/wireless/ath/ath9k/Kconfig
53391 @@ -3,7 +3,6 @@ config ATH9K_HW
53392 config ATH9K_COMMON
53393 tristate
53394 select ATH_COMMON
53395 - select DEBUG_FS
53396 select RELAY
53397 config ATH9K_DFS_DEBUGFS
53398 def_bool y
53399 diff --git a/drivers/net/wireless/ath/ath9k/ar9002_mac.c b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
53400 index f816909..e56cd8b 100644
53401 --- a/drivers/net/wireless/ath/ath9k/ar9002_mac.c
53402 +++ b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
53403 @@ -220,8 +220,8 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
53404 ads->ds_txstatus6 = ads->ds_txstatus7 = 0;
53405 ads->ds_txstatus8 = ads->ds_txstatus9 = 0;
53406
53407 - ACCESS_ONCE(ads->ds_link) = i->link;
53408 - ACCESS_ONCE(ads->ds_data) = i->buf_addr[0];
53409 + ACCESS_ONCE_RW(ads->ds_link) = i->link;
53410 + ACCESS_ONCE_RW(ads->ds_data) = i->buf_addr[0];
53411
53412 ctl1 = i->buf_len[0] | (i->is_last ? 0 : AR_TxMore);
53413 ctl6 = SM(i->keytype, AR_EncrType);
53414 @@ -235,26 +235,26 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
53415
53416 if ((i->is_first || i->is_last) &&
53417 i->aggr != AGGR_BUF_MIDDLE && i->aggr != AGGR_BUF_LAST) {
53418 - ACCESS_ONCE(ads->ds_ctl2) = set11nTries(i->rates, 0)
53419 + ACCESS_ONCE_RW(ads->ds_ctl2) = set11nTries(i->rates, 0)
53420 | set11nTries(i->rates, 1)
53421 | set11nTries(i->rates, 2)
53422 | set11nTries(i->rates, 3)
53423 | (i->dur_update ? AR_DurUpdateEna : 0)
53424 | SM(0, AR_BurstDur);
53425
53426 - ACCESS_ONCE(ads->ds_ctl3) = set11nRate(i->rates, 0)
53427 + ACCESS_ONCE_RW(ads->ds_ctl3) = set11nRate(i->rates, 0)
53428 | set11nRate(i->rates, 1)
53429 | set11nRate(i->rates, 2)
53430 | set11nRate(i->rates, 3);
53431 } else {
53432 - ACCESS_ONCE(ads->ds_ctl2) = 0;
53433 - ACCESS_ONCE(ads->ds_ctl3) = 0;
53434 + ACCESS_ONCE_RW(ads->ds_ctl2) = 0;
53435 + ACCESS_ONCE_RW(ads->ds_ctl3) = 0;
53436 }
53437
53438 if (!i->is_first) {
53439 - ACCESS_ONCE(ads->ds_ctl0) = 0;
53440 - ACCESS_ONCE(ads->ds_ctl1) = ctl1;
53441 - ACCESS_ONCE(ads->ds_ctl6) = ctl6;
53442 + ACCESS_ONCE_RW(ads->ds_ctl0) = 0;
53443 + ACCESS_ONCE_RW(ads->ds_ctl1) = ctl1;
53444 + ACCESS_ONCE_RW(ads->ds_ctl6) = ctl6;
53445 return;
53446 }
53447
53448 @@ -279,7 +279,7 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
53449 break;
53450 }
53451
53452 - ACCESS_ONCE(ads->ds_ctl0) = (i->pkt_len & AR_FrameLen)
53453 + ACCESS_ONCE_RW(ads->ds_ctl0) = (i->pkt_len & AR_FrameLen)
53454 | (i->flags & ATH9K_TXDESC_VMF ? AR_VirtMoreFrag : 0)
53455 | SM(i->txpower[0], AR_XmitPower0)
53456 | (i->flags & ATH9K_TXDESC_VEOL ? AR_VEOL : 0)
53457 @@ -289,27 +289,27 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
53458 | (i->flags & ATH9K_TXDESC_RTSENA ? AR_RTSEnable :
53459 (i->flags & ATH9K_TXDESC_CTSENA ? AR_CTSEnable : 0));
53460
53461 - ACCESS_ONCE(ads->ds_ctl1) = ctl1;
53462 - ACCESS_ONCE(ads->ds_ctl6) = ctl6;
53463 + ACCESS_ONCE_RW(ads->ds_ctl1) = ctl1;
53464 + ACCESS_ONCE_RW(ads->ds_ctl6) = ctl6;
53465
53466 if (i->aggr == AGGR_BUF_MIDDLE || i->aggr == AGGR_BUF_LAST)
53467 return;
53468
53469 - ACCESS_ONCE(ads->ds_ctl4) = set11nPktDurRTSCTS(i->rates, 0)
53470 + ACCESS_ONCE_RW(ads->ds_ctl4) = set11nPktDurRTSCTS(i->rates, 0)
53471 | set11nPktDurRTSCTS(i->rates, 1);
53472
53473 - ACCESS_ONCE(ads->ds_ctl5) = set11nPktDurRTSCTS(i->rates, 2)
53474 + ACCESS_ONCE_RW(ads->ds_ctl5) = set11nPktDurRTSCTS(i->rates, 2)
53475 | set11nPktDurRTSCTS(i->rates, 3);
53476
53477 - ACCESS_ONCE(ads->ds_ctl7) = set11nRateFlags(i->rates, 0)
53478 + ACCESS_ONCE_RW(ads->ds_ctl7) = set11nRateFlags(i->rates, 0)
53479 | set11nRateFlags(i->rates, 1)
53480 | set11nRateFlags(i->rates, 2)
53481 | set11nRateFlags(i->rates, 3)
53482 | SM(i->rtscts_rate, AR_RTSCTSRate);
53483
53484 - ACCESS_ONCE(ads->ds_ctl9) = SM(i->txpower[1], AR_XmitPower1);
53485 - ACCESS_ONCE(ads->ds_ctl10) = SM(i->txpower[2], AR_XmitPower2);
53486 - ACCESS_ONCE(ads->ds_ctl11) = SM(i->txpower[3], AR_XmitPower3);
53487 + ACCESS_ONCE_RW(ads->ds_ctl9) = SM(i->txpower[1], AR_XmitPower1);
53488 + ACCESS_ONCE_RW(ads->ds_ctl10) = SM(i->txpower[2], AR_XmitPower2);
53489 + ACCESS_ONCE_RW(ads->ds_ctl11) = SM(i->txpower[3], AR_XmitPower3);
53490 }
53491
53492 static int ar9002_hw_proc_txdesc(struct ath_hw *ah, void *ds,
53493 diff --git a/drivers/net/wireless/ath/ath9k/ar9003_mac.c b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
53494 index da84b70..83e4978 100644
53495 --- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c
53496 +++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
53497 @@ -39,47 +39,47 @@ ar9003_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
53498 (i->qcu << AR_TxQcuNum_S) | desc_len;
53499
53500 checksum += val;
53501 - ACCESS_ONCE(ads->info) = val;
53502 + ACCESS_ONCE_RW(ads->info) = val;
53503
53504 checksum += i->link;
53505 - ACCESS_ONCE(ads->link) = i->link;
53506 + ACCESS_ONCE_RW(ads->link) = i->link;
53507
53508 checksum += i->buf_addr[0];
53509 - ACCESS_ONCE(ads->data0) = i->buf_addr[0];
53510 + ACCESS_ONCE_RW(ads->data0) = i->buf_addr[0];
53511 checksum += i->buf_addr[1];
53512 - ACCESS_ONCE(ads->data1) = i->buf_addr[1];
53513 + ACCESS_ONCE_RW(ads->data1) = i->buf_addr[1];
53514 checksum += i->buf_addr[2];
53515 - ACCESS_ONCE(ads->data2) = i->buf_addr[2];
53516 + ACCESS_ONCE_RW(ads->data2) = i->buf_addr[2];
53517 checksum += i->buf_addr[3];
53518 - ACCESS_ONCE(ads->data3) = i->buf_addr[3];
53519 + ACCESS_ONCE_RW(ads->data3) = i->buf_addr[3];
53520
53521 checksum += (val = (i->buf_len[0] << AR_BufLen_S) & AR_BufLen);
53522 - ACCESS_ONCE(ads->ctl3) = val;
53523 + ACCESS_ONCE_RW(ads->ctl3) = val;
53524 checksum += (val = (i->buf_len[1] << AR_BufLen_S) & AR_BufLen);
53525 - ACCESS_ONCE(ads->ctl5) = val;
53526 + ACCESS_ONCE_RW(ads->ctl5) = val;
53527 checksum += (val = (i->buf_len[2] << AR_BufLen_S) & AR_BufLen);
53528 - ACCESS_ONCE(ads->ctl7) = val;
53529 + ACCESS_ONCE_RW(ads->ctl7) = val;
53530 checksum += (val = (i->buf_len[3] << AR_BufLen_S) & AR_BufLen);
53531 - ACCESS_ONCE(ads->ctl9) = val;
53532 + ACCESS_ONCE_RW(ads->ctl9) = val;
53533
53534 checksum = (u16) (((checksum & 0xffff) + (checksum >> 16)) & 0xffff);
53535 - ACCESS_ONCE(ads->ctl10) = checksum;
53536 + ACCESS_ONCE_RW(ads->ctl10) = checksum;
53537
53538 if (i->is_first || i->is_last) {
53539 - ACCESS_ONCE(ads->ctl13) = set11nTries(i->rates, 0)
53540 + ACCESS_ONCE_RW(ads->ctl13) = set11nTries(i->rates, 0)
53541 | set11nTries(i->rates, 1)
53542 | set11nTries(i->rates, 2)
53543 | set11nTries(i->rates, 3)
53544 | (i->dur_update ? AR_DurUpdateEna : 0)
53545 | SM(0, AR_BurstDur);
53546
53547 - ACCESS_ONCE(ads->ctl14) = set11nRate(i->rates, 0)
53548 + ACCESS_ONCE_RW(ads->ctl14) = set11nRate(i->rates, 0)
53549 | set11nRate(i->rates, 1)
53550 | set11nRate(i->rates, 2)
53551 | set11nRate(i->rates, 3);
53552 } else {
53553 - ACCESS_ONCE(ads->ctl13) = 0;
53554 - ACCESS_ONCE(ads->ctl14) = 0;
53555 + ACCESS_ONCE_RW(ads->ctl13) = 0;
53556 + ACCESS_ONCE_RW(ads->ctl14) = 0;
53557 }
53558
53559 ads->ctl20 = 0;
53560 @@ -89,17 +89,17 @@ ar9003_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
53561
53562 ctl17 = SM(i->keytype, AR_EncrType);
53563 if (!i->is_first) {
53564 - ACCESS_ONCE(ads->ctl11) = 0;
53565 - ACCESS_ONCE(ads->ctl12) = i->is_last ? 0 : AR_TxMore;
53566 - ACCESS_ONCE(ads->ctl15) = 0;
53567 - ACCESS_ONCE(ads->ctl16) = 0;
53568 - ACCESS_ONCE(ads->ctl17) = ctl17;
53569 - ACCESS_ONCE(ads->ctl18) = 0;
53570 - ACCESS_ONCE(ads->ctl19) = 0;
53571 + ACCESS_ONCE_RW(ads->ctl11) = 0;
53572 + ACCESS_ONCE_RW(ads->ctl12) = i->is_last ? 0 : AR_TxMore;
53573 + ACCESS_ONCE_RW(ads->ctl15) = 0;
53574 + ACCESS_ONCE_RW(ads->ctl16) = 0;
53575 + ACCESS_ONCE_RW(ads->ctl17) = ctl17;
53576 + ACCESS_ONCE_RW(ads->ctl18) = 0;
53577 + ACCESS_ONCE_RW(ads->ctl19) = 0;
53578 return;
53579 }
53580
53581 - ACCESS_ONCE(ads->ctl11) = (i->pkt_len & AR_FrameLen)
53582 + ACCESS_ONCE_RW(ads->ctl11) = (i->pkt_len & AR_FrameLen)
53583 | (i->flags & ATH9K_TXDESC_VMF ? AR_VirtMoreFrag : 0)
53584 | SM(i->txpower[0], AR_XmitPower0)
53585 | (i->flags & ATH9K_TXDESC_VEOL ? AR_VEOL : 0)
53586 @@ -135,26 +135,26 @@ ar9003_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
53587 val = (i->flags & ATH9K_TXDESC_PAPRD) >> ATH9K_TXDESC_PAPRD_S;
53588 ctl12 |= SM(val, AR_PAPRDChainMask);
53589
53590 - ACCESS_ONCE(ads->ctl12) = ctl12;
53591 - ACCESS_ONCE(ads->ctl17) = ctl17;
53592 + ACCESS_ONCE_RW(ads->ctl12) = ctl12;
53593 + ACCESS_ONCE_RW(ads->ctl17) = ctl17;
53594
53595 - ACCESS_ONCE(ads->ctl15) = set11nPktDurRTSCTS(i->rates, 0)
53596 + ACCESS_ONCE_RW(ads->ctl15) = set11nPktDurRTSCTS(i->rates, 0)
53597 | set11nPktDurRTSCTS(i->rates, 1);
53598
53599 - ACCESS_ONCE(ads->ctl16) = set11nPktDurRTSCTS(i->rates, 2)
53600 + ACCESS_ONCE_RW(ads->ctl16) = set11nPktDurRTSCTS(i->rates, 2)
53601 | set11nPktDurRTSCTS(i->rates, 3);
53602
53603 - ACCESS_ONCE(ads->ctl18) = set11nRateFlags(i->rates, 0)
53604 + ACCESS_ONCE_RW(ads->ctl18) = set11nRateFlags(i->rates, 0)
53605 | set11nRateFlags(i->rates, 1)
53606 | set11nRateFlags(i->rates, 2)
53607 | set11nRateFlags(i->rates, 3)
53608 | SM(i->rtscts_rate, AR_RTSCTSRate);
53609
53610 - ACCESS_ONCE(ads->ctl19) = AR_Not_Sounding;
53611 + ACCESS_ONCE_RW(ads->ctl19) = AR_Not_Sounding;
53612
53613 - ACCESS_ONCE(ads->ctl20) = SM(i->txpower[1], AR_XmitPower1);
53614 - ACCESS_ONCE(ads->ctl21) = SM(i->txpower[2], AR_XmitPower2);
53615 - ACCESS_ONCE(ads->ctl22) = SM(i->txpower[3], AR_XmitPower3);
53616 + ACCESS_ONCE_RW(ads->ctl20) = SM(i->txpower[1], AR_XmitPower1);
53617 + ACCESS_ONCE_RW(ads->ctl21) = SM(i->txpower[2], AR_XmitPower2);
53618 + ACCESS_ONCE_RW(ads->ctl22) = SM(i->txpower[3], AR_XmitPower3);
53619 }
53620
53621 static u16 ar9003_calc_ptr_chksum(struct ar9003_txc *ads)
53622 diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
53623 index 831a544..d846785 100644
53624 --- a/drivers/net/wireless/ath/ath9k/hw.h
53625 +++ b/drivers/net/wireless/ath/ath9k/hw.h
53626 @@ -671,7 +671,7 @@ struct ath_hw_private_ops {
53627 #ifdef CONFIG_ATH9K_BTCOEX_SUPPORT
53628 bool (*is_aic_enabled)(struct ath_hw *ah);
53629 #endif /* CONFIG_ATH9K_BTCOEX_SUPPORT */
53630 -};
53631 +} __no_const;
53632
53633 /**
53634 * struct ath_spec_scan - parameters for Atheros spectral scan
53635 @@ -747,7 +747,7 @@ struct ath_hw_ops {
53636 #ifdef CONFIG_ATH9K_BTCOEX_SUPPORT
53637 void (*set_bt_ant_diversity)(struct ath_hw *hw, bool enable);
53638 #endif
53639 -};
53640 +} __no_const;
53641
53642 struct ath_nf_limits {
53643 s16 max;
53644 diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
53645 index d184e68..1ba76e5 100644
53646 --- a/drivers/net/wireless/ath/ath9k/main.c
53647 +++ b/drivers/net/wireless/ath/ath9k/main.c
53648 @@ -2585,16 +2585,18 @@ void ath9k_fill_chanctx_ops(void)
53649 if (!ath9k_is_chanctx_enabled())
53650 return;
53651
53652 - ath9k_ops.hw_scan = ath9k_hw_scan;
53653 - ath9k_ops.cancel_hw_scan = ath9k_cancel_hw_scan;
53654 - ath9k_ops.remain_on_channel = ath9k_remain_on_channel;
53655 - ath9k_ops.cancel_remain_on_channel = ath9k_cancel_remain_on_channel;
53656 - ath9k_ops.add_chanctx = ath9k_add_chanctx;
53657 - ath9k_ops.remove_chanctx = ath9k_remove_chanctx;
53658 - ath9k_ops.change_chanctx = ath9k_change_chanctx;
53659 - ath9k_ops.assign_vif_chanctx = ath9k_assign_vif_chanctx;
53660 - ath9k_ops.unassign_vif_chanctx = ath9k_unassign_vif_chanctx;
53661 - ath9k_ops.mgd_prepare_tx = ath9k_mgd_prepare_tx;
53662 + pax_open_kernel();
53663 + *(void **)&ath9k_ops.hw_scan = ath9k_hw_scan;
53664 + *(void **)&ath9k_ops.cancel_hw_scan = ath9k_cancel_hw_scan;
53665 + *(void **)&ath9k_ops.remain_on_channel = ath9k_remain_on_channel;
53666 + *(void **)&ath9k_ops.cancel_remain_on_channel = ath9k_cancel_remain_on_channel;
53667 + *(void **)&ath9k_ops.add_chanctx = ath9k_add_chanctx;
53668 + *(void **)&ath9k_ops.remove_chanctx = ath9k_remove_chanctx;
53669 + *(void **)&ath9k_ops.change_chanctx = ath9k_change_chanctx;
53670 + *(void **)&ath9k_ops.assign_vif_chanctx = ath9k_assign_vif_chanctx;
53671 + *(void **)&ath9k_ops.unassign_vif_chanctx = ath9k_unassign_vif_chanctx;
53672 + *(void **)&ath9k_ops.mgd_prepare_tx = ath9k_mgd_prepare_tx;
53673 + pax_close_kernel();
53674 }
53675
53676 #endif
53677 diff --git a/drivers/net/wireless/ath/carl9170/carl9170.h b/drivers/net/wireless/ath/carl9170/carl9170.h
53678 index 237d0cd..6c094fd 100644
53679 --- a/drivers/net/wireless/ath/carl9170/carl9170.h
53680 +++ b/drivers/net/wireless/ath/carl9170/carl9170.h
53681 @@ -297,7 +297,7 @@ struct ar9170 {
53682 unsigned long max_queue_stop_timeout[__AR9170_NUM_TXQ];
53683 bool needs_full_reset;
53684 bool force_usb_reset;
53685 - atomic_t pending_restarts;
53686 + atomic_unchecked_t pending_restarts;
53687
53688 /* interface mode settings */
53689 struct list_head vif_list;
53690 @@ -400,7 +400,7 @@ struct ar9170 {
53691 struct carl9170_sta_tid __rcu *tx_ampdu_iter;
53692 struct list_head tx_ampdu_list;
53693 atomic_t tx_ampdu_upload;
53694 - atomic_t tx_ampdu_scheduler;
53695 + atomic_unchecked_t tx_ampdu_scheduler;
53696 atomic_t tx_total_pending;
53697 atomic_t tx_total_queued;
53698 unsigned int tx_ampdu_list_len;
53699 @@ -412,7 +412,7 @@ struct ar9170 {
53700 spinlock_t mem_lock;
53701 unsigned long *mem_bitmap;
53702 atomic_t mem_free_blocks;
53703 - atomic_t mem_allocs;
53704 + atomic_unchecked_t mem_allocs;
53705
53706 /* rxstream mpdu merge */
53707 struct ar9170_rx_head rx_plcp;
53708 diff --git a/drivers/net/wireless/ath/carl9170/debug.c b/drivers/net/wireless/ath/carl9170/debug.c
53709 index 6808db4..3a5df05 100644
53710 --- a/drivers/net/wireless/ath/carl9170/debug.c
53711 +++ b/drivers/net/wireless/ath/carl9170/debug.c
53712 @@ -221,7 +221,7 @@ static char *carl9170_debugfs_mem_usage_read(struct ar9170 *ar, char *buf,
53713
53714 ADD(buf, *len, bufsize, "cookies: used:%3d / total:%3d, allocs:%d\n",
53715 bitmap_weight(ar->mem_bitmap, ar->fw.mem_blocks),
53716 - ar->fw.mem_blocks, atomic_read(&ar->mem_allocs));
53717 + ar->fw.mem_blocks, atomic_read_unchecked(&ar->mem_allocs));
53718
53719 ADD(buf, *len, bufsize, "memory: free:%3d (%3d KiB) / total:%3d KiB)\n",
53720 atomic_read(&ar->mem_free_blocks),
53721 @@ -672,7 +672,7 @@ static char *carl9170_debugfs_bug_read(struct ar9170 *ar, char *buf,
53722 ADD(buf, *ret, bufsize, "reported firmware BUGs:%d\n",
53723 ar->fw.bug_counter);
53724 ADD(buf, *ret, bufsize, "pending restart requests:%d\n",
53725 - atomic_read(&ar->pending_restarts));
53726 + atomic_read_unchecked(&ar->pending_restarts));
53727 return buf;
53728 }
53729 __DEBUGFS_DECLARE_RW_FILE(bug, 400, CARL9170_STOPPED);
53730 @@ -779,7 +779,7 @@ DEBUGFS_READONLY_FILE(usb_rx_pool_urbs, 20, "%d",
53731 DEBUGFS_READONLY_FILE(tx_total_queued, 20, "%d",
53732 atomic_read(&ar->tx_total_queued));
53733 DEBUGFS_READONLY_FILE(tx_ampdu_scheduler, 20, "%d",
53734 - atomic_read(&ar->tx_ampdu_scheduler));
53735 + atomic_read_unchecked(&ar->tx_ampdu_scheduler));
53736
53737 DEBUGFS_READONLY_FILE(tx_total_pending, 20, "%d",
53738 atomic_read(&ar->tx_total_pending));
53739 diff --git a/drivers/net/wireless/ath/carl9170/main.c b/drivers/net/wireless/ath/carl9170/main.c
53740 index 19d3d64..80799ca 100644
53741 --- a/drivers/net/wireless/ath/carl9170/main.c
53742 +++ b/drivers/net/wireless/ath/carl9170/main.c
53743 @@ -320,7 +320,7 @@ static void carl9170_zap_queues(struct ar9170 *ar)
53744 rcu_read_unlock();
53745
53746 atomic_set(&ar->tx_ampdu_upload, 0);
53747 - atomic_set(&ar->tx_ampdu_scheduler, 0);
53748 + atomic_set_unchecked(&ar->tx_ampdu_scheduler, 0);
53749 atomic_set(&ar->tx_total_pending, 0);
53750 atomic_set(&ar->tx_total_queued, 0);
53751 atomic_set(&ar->mem_free_blocks, ar->fw.mem_blocks);
53752 @@ -370,7 +370,7 @@ static int carl9170_op_start(struct ieee80211_hw *hw)
53753 ar->max_queue_stop_timeout[i] = 0;
53754 }
53755
53756 - atomic_set(&ar->mem_allocs, 0);
53757 + atomic_set_unchecked(&ar->mem_allocs, 0);
53758
53759 err = carl9170_usb_open(ar);
53760 if (err)
53761 @@ -490,7 +490,7 @@ static void carl9170_restart_work(struct work_struct *work)
53762
53763 if (!err && !ar->force_usb_reset) {
53764 ar->restart_counter++;
53765 - atomic_set(&ar->pending_restarts, 0);
53766 + atomic_set_unchecked(&ar->pending_restarts, 0);
53767
53768 ieee80211_restart_hw(ar->hw);
53769 } else {
53770 @@ -513,7 +513,7 @@ void carl9170_restart(struct ar9170 *ar, const enum carl9170_restart_reasons r)
53771 * By ignoring these *surplus* reset events, the device won't be
53772 * killed again, right after it has recovered.
53773 */
53774 - if (atomic_inc_return(&ar->pending_restarts) > 1) {
53775 + if (atomic_inc_return_unchecked(&ar->pending_restarts) > 1) {
53776 dev_dbg(&ar->udev->dev, "ignoring restart (%d)\n", r);
53777 return;
53778 }
53779 @@ -1818,7 +1818,7 @@ void *carl9170_alloc(size_t priv_size)
53780 spin_lock_init(&ar->tx_ampdu_list_lock);
53781 spin_lock_init(&ar->mem_lock);
53782 spin_lock_init(&ar->state_lock);
53783 - atomic_set(&ar->pending_restarts, 0);
53784 + atomic_set_unchecked(&ar->pending_restarts, 0);
53785 ar->vifs = 0;
53786 for (i = 0; i < ar->hw->queues; i++) {
53787 skb_queue_head_init(&ar->tx_status[i]);
53788 diff --git a/drivers/net/wireless/ath/carl9170/tx.c b/drivers/net/wireless/ath/carl9170/tx.c
53789 index ae86a600..28696b2 100644
53790 --- a/drivers/net/wireless/ath/carl9170/tx.c
53791 +++ b/drivers/net/wireless/ath/carl9170/tx.c
53792 @@ -193,7 +193,7 @@ static int carl9170_alloc_dev_space(struct ar9170 *ar, struct sk_buff *skb)
53793 unsigned int chunks;
53794 int cookie = -1;
53795
53796 - atomic_inc(&ar->mem_allocs);
53797 + atomic_inc_unchecked(&ar->mem_allocs);
53798
53799 chunks = DIV_ROUND_UP(skb->len, ar->fw.mem_block_size);
53800 if (unlikely(atomic_sub_return(chunks, &ar->mem_free_blocks) < 0)) {
53801 @@ -1130,7 +1130,7 @@ static void carl9170_tx_ampdu(struct ar9170 *ar)
53802 unsigned int i = 0, done_ampdus = 0;
53803 u16 seq, queue, tmpssn;
53804
53805 - atomic_inc(&ar->tx_ampdu_scheduler);
53806 + atomic_inc_unchecked(&ar->tx_ampdu_scheduler);
53807 ar->tx_ampdu_schedule = false;
53808
53809 if (atomic_read(&ar->tx_ampdu_upload))
53810 diff --git a/drivers/net/wireless/ath/wil6210/wil_platform.h b/drivers/net/wireless/ath/wil6210/wil_platform.h
53811 index d7fa19b..6d84263 100644
53812 --- a/drivers/net/wireless/ath/wil6210/wil_platform.h
53813 +++ b/drivers/net/wireless/ath/wil6210/wil_platform.h
53814 @@ -27,7 +27,7 @@ struct wil_platform_ops {
53815 int (*suspend)(void *handle);
53816 int (*resume)(void *handle);
53817 void (*uninit)(void *handle);
53818 -};
53819 +} __no_const;
53820
53821 void *wil_platform_init(struct device *dev, struct wil_platform_ops *ops);
53822
53823 diff --git a/drivers/net/wireless/b43/phy_lp.c b/drivers/net/wireless/b43/phy_lp.c
53824 index 058a9f2..d5cb1ba 100644
53825 --- a/drivers/net/wireless/b43/phy_lp.c
53826 +++ b/drivers/net/wireless/b43/phy_lp.c
53827 @@ -2502,7 +2502,7 @@ static int lpphy_b2063_tune(struct b43_wldev *dev,
53828 {
53829 struct ssb_bus *bus = dev->dev->sdev->bus;
53830
53831 - static const struct b206x_channel *chandata = NULL;
53832 + const struct b206x_channel *chandata = NULL;
53833 u32 crystal_freq = bus->chipco.pmu.crystalfreq * 1000;
53834 u32 freqref, vco_freq, val1, val2, val3, timeout, timeoutref, count;
53835 u16 old_comm15, scale;
53836 diff --git a/drivers/net/wireless/iwlegacy/3945-mac.c b/drivers/net/wireless/iwlegacy/3945-mac.c
53837 index af1b3e6..d5d82713 100644
53838 --- a/drivers/net/wireless/iwlegacy/3945-mac.c
53839 +++ b/drivers/net/wireless/iwlegacy/3945-mac.c
53840 @@ -3633,7 +3633,9 @@ il3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
53841 */
53842 if (il3945_mod_params.disable_hw_scan) {
53843 D_INFO("Disabling hw_scan\n");
53844 - il3945_mac_ops.hw_scan = NULL;
53845 + pax_open_kernel();
53846 + *(void **)&il3945_mac_ops.hw_scan = NULL;
53847 + pax_close_kernel();
53848 }
53849
53850 D_INFO("*** LOAD DRIVER ***\n");
53851 diff --git a/drivers/net/wireless/iwlwifi/dvm/debugfs.c b/drivers/net/wireless/iwlwifi/dvm/debugfs.c
53852 index b15e44f..8658af2 100644
53853 --- a/drivers/net/wireless/iwlwifi/dvm/debugfs.c
53854 +++ b/drivers/net/wireless/iwlwifi/dvm/debugfs.c
53855 @@ -188,7 +188,7 @@ static ssize_t iwl_dbgfs_sram_write(struct file *file,
53856 {
53857 struct iwl_priv *priv = file->private_data;
53858 char buf[64];
53859 - int buf_size;
53860 + size_t buf_size;
53861 u32 offset, len;
53862
53863 memset(buf, 0, sizeof(buf));
53864 @@ -454,7 +454,7 @@ static ssize_t iwl_dbgfs_rx_handlers_write(struct file *file,
53865 struct iwl_priv *priv = file->private_data;
53866
53867 char buf[8];
53868 - int buf_size;
53869 + size_t buf_size;
53870 u32 reset_flag;
53871
53872 memset(buf, 0, sizeof(buf));
53873 @@ -535,7 +535,7 @@ static ssize_t iwl_dbgfs_disable_ht40_write(struct file *file,
53874 {
53875 struct iwl_priv *priv = file->private_data;
53876 char buf[8];
53877 - int buf_size;
53878 + size_t buf_size;
53879 int ht40;
53880
53881 memset(buf, 0, sizeof(buf));
53882 @@ -587,7 +587,7 @@ static ssize_t iwl_dbgfs_sleep_level_override_write(struct file *file,
53883 {
53884 struct iwl_priv *priv = file->private_data;
53885 char buf[8];
53886 - int buf_size;
53887 + size_t buf_size;
53888 int value;
53889
53890 memset(buf, 0, sizeof(buf));
53891 @@ -679,10 +679,10 @@ DEBUGFS_READ_FILE_OPS(temperature);
53892 DEBUGFS_READ_WRITE_FILE_OPS(sleep_level_override);
53893 DEBUGFS_READ_FILE_OPS(current_sleep_command);
53894
53895 -static const char *fmt_value = " %-30s %10u\n";
53896 -static const char *fmt_hex = " %-30s 0x%02X\n";
53897 -static const char *fmt_table = " %-30s %10u %10u %10u %10u\n";
53898 -static const char *fmt_header =
53899 +static const char fmt_value[] = " %-30s %10u\n";
53900 +static const char fmt_hex[] = " %-30s 0x%02X\n";
53901 +static const char fmt_table[] = " %-30s %10u %10u %10u %10u\n";
53902 +static const char fmt_header[] =
53903 "%-32s current cumulative delta max\n";
53904
53905 static int iwl_statistics_flag(struct iwl_priv *priv, char *buf, int bufsz)
53906 @@ -1852,7 +1852,7 @@ static ssize_t iwl_dbgfs_clear_ucode_statistics_write(struct file *file,
53907 {
53908 struct iwl_priv *priv = file->private_data;
53909 char buf[8];
53910 - int buf_size;
53911 + size_t buf_size;
53912 int clear;
53913
53914 memset(buf, 0, sizeof(buf));
53915 @@ -1897,7 +1897,7 @@ static ssize_t iwl_dbgfs_ucode_tracing_write(struct file *file,
53916 {
53917 struct iwl_priv *priv = file->private_data;
53918 char buf[8];
53919 - int buf_size;
53920 + size_t buf_size;
53921 int trace;
53922
53923 memset(buf, 0, sizeof(buf));
53924 @@ -1968,7 +1968,7 @@ static ssize_t iwl_dbgfs_missed_beacon_write(struct file *file,
53925 {
53926 struct iwl_priv *priv = file->private_data;
53927 char buf[8];
53928 - int buf_size;
53929 + size_t buf_size;
53930 int missed;
53931
53932 memset(buf, 0, sizeof(buf));
53933 @@ -2009,7 +2009,7 @@ static ssize_t iwl_dbgfs_plcp_delta_write(struct file *file,
53934
53935 struct iwl_priv *priv = file->private_data;
53936 char buf[8];
53937 - int buf_size;
53938 + size_t buf_size;
53939 int plcp;
53940
53941 memset(buf, 0, sizeof(buf));
53942 @@ -2069,7 +2069,7 @@ static ssize_t iwl_dbgfs_txfifo_flush_write(struct file *file,
53943
53944 struct iwl_priv *priv = file->private_data;
53945 char buf[8];
53946 - int buf_size;
53947 + size_t buf_size;
53948 int flush;
53949
53950 memset(buf, 0, sizeof(buf));
53951 @@ -2159,7 +2159,7 @@ static ssize_t iwl_dbgfs_protection_mode_write(struct file *file,
53952
53953 struct iwl_priv *priv = file->private_data;
53954 char buf[8];
53955 - int buf_size;
53956 + size_t buf_size;
53957 int rts;
53958
53959 if (!priv->cfg->ht_params)
53960 @@ -2200,7 +2200,7 @@ static ssize_t iwl_dbgfs_echo_test_write(struct file *file,
53961 {
53962 struct iwl_priv *priv = file->private_data;
53963 char buf[8];
53964 - int buf_size;
53965 + size_t buf_size;
53966
53967 memset(buf, 0, sizeof(buf));
53968 buf_size = min(count, sizeof(buf) - 1);
53969 @@ -2234,7 +2234,7 @@ static ssize_t iwl_dbgfs_log_event_write(struct file *file,
53970 struct iwl_priv *priv = file->private_data;
53971 u32 event_log_flag;
53972 char buf[8];
53973 - int buf_size;
53974 + size_t buf_size;
53975
53976 /* check that the interface is up */
53977 if (!iwl_is_ready(priv))
53978 @@ -2288,7 +2288,7 @@ static ssize_t iwl_dbgfs_calib_disabled_write(struct file *file,
53979 struct iwl_priv *priv = file->private_data;
53980 char buf[8];
53981 u32 calib_disabled;
53982 - int buf_size;
53983 + size_t buf_size;
53984
53985 memset(buf, 0, sizeof(buf));
53986 buf_size = min(count, sizeof(buf) - 1);
53987 diff --git a/drivers/net/wireless/iwlwifi/mvm/d3.c b/drivers/net/wireless/iwlwifi/mvm/d3.c
53988 index 29ae58e..305baa0 100644
53989 --- a/drivers/net/wireless/iwlwifi/mvm/d3.c
53990 +++ b/drivers/net/wireless/iwlwifi/mvm/d3.c
53991 @@ -279,7 +279,7 @@ static void iwl_mvm_wowlan_program_keys(struct ieee80211_hw *hw,
53992 aes_sc = data->rsc_tsc->all_tsc_rsc.aes.unicast_rsc;
53993 aes_tx_sc = &data->rsc_tsc->all_tsc_rsc.aes.tsc;
53994
53995 - pn64 = atomic64_read(&key->tx_pn);
53996 + pn64 = atomic64_read_unchecked(&key->tx_pn);
53997 aes_tx_sc->pn = cpu_to_le64(pn64);
53998 } else {
53999 aes_sc = data->rsc_tsc->all_tsc_rsc.aes.multicast_rsc;
54000 @@ -1448,7 +1448,7 @@ static void iwl_mvm_d3_update_gtks(struct ieee80211_hw *hw,
54001 switch (key->cipher) {
54002 case WLAN_CIPHER_SUITE_CCMP:
54003 iwl_mvm_set_aes_rx_seq(sc->aes.unicast_rsc, key);
54004 - atomic64_set(&key->tx_pn, le64_to_cpu(sc->aes.tsc.pn));
54005 + atomic64_set_unchecked(&key->tx_pn, le64_to_cpu(sc->aes.tsc.pn));
54006 break;
54007 case WLAN_CIPHER_SUITE_TKIP:
54008 iwl_mvm_tkip_sc_to_seq(&sc->tkip.tsc, &seq);
54009 diff --git a/drivers/net/wireless/iwlwifi/mvm/tx.c b/drivers/net/wireless/iwlwifi/mvm/tx.c
54010 index c652a66..1f75da8 100644
54011 --- a/drivers/net/wireless/iwlwifi/mvm/tx.c
54012 +++ b/drivers/net/wireless/iwlwifi/mvm/tx.c
54013 @@ -284,7 +284,7 @@ static void iwl_mvm_set_tx_cmd_crypto(struct iwl_mvm *mvm,
54014 case WLAN_CIPHER_SUITE_CCMP:
54015 case WLAN_CIPHER_SUITE_CCMP_256:
54016 iwl_mvm_set_tx_cmd_ccmp(info, tx_cmd);
54017 - pn = atomic64_inc_return(&keyconf->tx_pn);
54018 + pn = atomic64_inc_return_unchecked(&keyconf->tx_pn);
54019 crypto_hdr[0] = pn;
54020 crypto_hdr[2] = 0;
54021 crypto_hdr[3] = 0x20 | (keyconf->keyidx << 6);
54022 diff --git a/drivers/net/wireless/iwlwifi/pcie/trans.c b/drivers/net/wireless/iwlwifi/pcie/trans.c
54023 index 8c72047..e54deaa 100644
54024 --- a/drivers/net/wireless/iwlwifi/pcie/trans.c
54025 +++ b/drivers/net/wireless/iwlwifi/pcie/trans.c
54026 @@ -2058,7 +2058,7 @@ static ssize_t iwl_dbgfs_interrupt_write(struct file *file,
54027 struct isr_statistics *isr_stats = &trans_pcie->isr_stats;
54028
54029 char buf[8];
54030 - int buf_size;
54031 + size_t buf_size;
54032 u32 reset_flag;
54033
54034 memset(buf, 0, sizeof(buf));
54035 @@ -2079,7 +2079,7 @@ static ssize_t iwl_dbgfs_csr_write(struct file *file,
54036 {
54037 struct iwl_trans *trans = file->private_data;
54038 char buf[8];
54039 - int buf_size;
54040 + size_t buf_size;
54041 int csr;
54042
54043 memset(buf, 0, sizeof(buf));
54044 diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
54045 index c00a7daaa..4f9ed30 100644
54046 --- a/drivers/net/wireless/mac80211_hwsim.c
54047 +++ b/drivers/net/wireless/mac80211_hwsim.c
54048 @@ -3150,20 +3150,20 @@ static int __init init_mac80211_hwsim(void)
54049 if (channels < 1)
54050 return -EINVAL;
54051
54052 - mac80211_hwsim_mchan_ops = mac80211_hwsim_ops;
54053 - mac80211_hwsim_mchan_ops.hw_scan = mac80211_hwsim_hw_scan;
54054 - mac80211_hwsim_mchan_ops.cancel_hw_scan = mac80211_hwsim_cancel_hw_scan;
54055 - mac80211_hwsim_mchan_ops.sw_scan_start = NULL;
54056 - mac80211_hwsim_mchan_ops.sw_scan_complete = NULL;
54057 - mac80211_hwsim_mchan_ops.remain_on_channel = mac80211_hwsim_roc;
54058 - mac80211_hwsim_mchan_ops.cancel_remain_on_channel = mac80211_hwsim_croc;
54059 - mac80211_hwsim_mchan_ops.add_chanctx = mac80211_hwsim_add_chanctx;
54060 - mac80211_hwsim_mchan_ops.remove_chanctx = mac80211_hwsim_remove_chanctx;
54061 - mac80211_hwsim_mchan_ops.change_chanctx = mac80211_hwsim_change_chanctx;
54062 - mac80211_hwsim_mchan_ops.assign_vif_chanctx =
54063 - mac80211_hwsim_assign_vif_chanctx;
54064 - mac80211_hwsim_mchan_ops.unassign_vif_chanctx =
54065 - mac80211_hwsim_unassign_vif_chanctx;
54066 + pax_open_kernel();
54067 + memcpy((void *)&mac80211_hwsim_mchan_ops, &mac80211_hwsim_ops, sizeof mac80211_hwsim_mchan_ops);
54068 + *(void **)&mac80211_hwsim_mchan_ops.hw_scan = mac80211_hwsim_hw_scan;
54069 + *(void **)&mac80211_hwsim_mchan_ops.cancel_hw_scan = mac80211_hwsim_cancel_hw_scan;
54070 + *(void **)&mac80211_hwsim_mchan_ops.sw_scan_start = NULL;
54071 + *(void **)&mac80211_hwsim_mchan_ops.sw_scan_complete = NULL;
54072 + *(void **)&mac80211_hwsim_mchan_ops.remain_on_channel = mac80211_hwsim_roc;
54073 + *(void **)&mac80211_hwsim_mchan_ops.cancel_remain_on_channel = mac80211_hwsim_croc;
54074 + *(void **)&mac80211_hwsim_mchan_ops.add_chanctx = mac80211_hwsim_add_chanctx;
54075 + *(void **)&mac80211_hwsim_mchan_ops.remove_chanctx = mac80211_hwsim_remove_chanctx;
54076 + *(void **)&mac80211_hwsim_mchan_ops.change_chanctx = mac80211_hwsim_change_chanctx;
54077 + *(void **)&mac80211_hwsim_mchan_ops.assign_vif_chanctx = mac80211_hwsim_assign_vif_chanctx;
54078 + *(void **)&mac80211_hwsim_mchan_ops.unassign_vif_chanctx = mac80211_hwsim_unassign_vif_chanctx;
54079 + pax_close_kernel();
54080
54081 spin_lock_init(&hwsim_radio_lock);
54082 INIT_LIST_HEAD(&hwsim_radios);
54083 diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
54084 index 3282ddb..26aabb5 100644
54085 --- a/drivers/net/wireless/rt2x00/rt2x00.h
54086 +++ b/drivers/net/wireless/rt2x00/rt2x00.h
54087 @@ -377,7 +377,7 @@ struct rt2x00_intf {
54088 * for hardware which doesn't support hardware
54089 * sequence counting.
54090 */
54091 - atomic_t seqno;
54092 + atomic_unchecked_t seqno;
54093 };
54094
54095 static inline struct rt2x00_intf* vif_to_intf(struct ieee80211_vif *vif)
54096 diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
54097 index 68b620b..92ecd9e 100644
54098 --- a/drivers/net/wireless/rt2x00/rt2x00queue.c
54099 +++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
54100 @@ -224,9 +224,9 @@ static void rt2x00queue_create_tx_descriptor_seq(struct rt2x00_dev *rt2x00dev,
54101 * sequence counter given by mac80211.
54102 */
54103 if (test_bit(ENTRY_TXD_FIRST_FRAGMENT, &txdesc->flags))
54104 - seqno = atomic_add_return(0x10, &intf->seqno);
54105 + seqno = atomic_add_return_unchecked(0x10, &intf->seqno);
54106 else
54107 - seqno = atomic_read(&intf->seqno);
54108 + seqno = atomic_read_unchecked(&intf->seqno);
54109
54110 hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG);
54111 hdr->seq_ctrl |= cpu_to_le16(seqno);
54112 diff --git a/drivers/net/wireless/ti/wl1251/sdio.c b/drivers/net/wireless/ti/wl1251/sdio.c
54113 index b661f896..ddf7d2b 100644
54114 --- a/drivers/net/wireless/ti/wl1251/sdio.c
54115 +++ b/drivers/net/wireless/ti/wl1251/sdio.c
54116 @@ -282,13 +282,17 @@ static int wl1251_sdio_probe(struct sdio_func *func,
54117
54118 irq_set_irq_type(wl->irq, IRQ_TYPE_EDGE_RISING);
54119
54120 - wl1251_sdio_ops.enable_irq = wl1251_enable_line_irq;
54121 - wl1251_sdio_ops.disable_irq = wl1251_disable_line_irq;
54122 + pax_open_kernel();
54123 + *(void **)&wl1251_sdio_ops.enable_irq = wl1251_enable_line_irq;
54124 + *(void **)&wl1251_sdio_ops.disable_irq = wl1251_disable_line_irq;
54125 + pax_close_kernel();
54126
54127 wl1251_info("using dedicated interrupt line");
54128 } else {
54129 - wl1251_sdio_ops.enable_irq = wl1251_sdio_enable_irq;
54130 - wl1251_sdio_ops.disable_irq = wl1251_sdio_disable_irq;
54131 + pax_open_kernel();
54132 + *(void **)&wl1251_sdio_ops.enable_irq = wl1251_sdio_enable_irq;
54133 + *(void **)&wl1251_sdio_ops.disable_irq = wl1251_sdio_disable_irq;
54134 + pax_close_kernel();
54135
54136 wl1251_info("using SDIO interrupt");
54137 }
54138 diff --git a/drivers/net/wireless/ti/wl12xx/main.c b/drivers/net/wireless/ti/wl12xx/main.c
54139 index af0fe2e..d04986b 100644
54140 --- a/drivers/net/wireless/ti/wl12xx/main.c
54141 +++ b/drivers/net/wireless/ti/wl12xx/main.c
54142 @@ -655,7 +655,9 @@ static int wl12xx_identify_chip(struct wl1271 *wl)
54143 sizeof(wl->conf.mem));
54144
54145 /* read data preparation is only needed by wl127x */
54146 - wl->ops->prepare_read = wl127x_prepare_read;
54147 + pax_open_kernel();
54148 + *(void **)&wl->ops->prepare_read = wl127x_prepare_read;
54149 + pax_close_kernel();
54150
54151 wlcore_set_min_fw_ver(wl, WL127X_CHIP_VER,
54152 WL127X_IFTYPE_SR_VER, WL127X_MAJOR_SR_VER,
54153 @@ -680,7 +682,9 @@ static int wl12xx_identify_chip(struct wl1271 *wl)
54154 sizeof(wl->conf.mem));
54155
54156 /* read data preparation is only needed by wl127x */
54157 - wl->ops->prepare_read = wl127x_prepare_read;
54158 + pax_open_kernel();
54159 + *(void **)&wl->ops->prepare_read = wl127x_prepare_read;
54160 + pax_close_kernel();
54161
54162 wlcore_set_min_fw_ver(wl, WL127X_CHIP_VER,
54163 WL127X_IFTYPE_SR_VER, WL127X_MAJOR_SR_VER,
54164 diff --git a/drivers/net/wireless/ti/wl18xx/main.c b/drivers/net/wireless/ti/wl18xx/main.c
54165 index 50cce42..f40cfd3 100644
54166 --- a/drivers/net/wireless/ti/wl18xx/main.c
54167 +++ b/drivers/net/wireless/ti/wl18xx/main.c
54168 @@ -2005,8 +2005,10 @@ static int wl18xx_setup(struct wl1271 *wl)
54169 }
54170
54171 if (!checksum_param) {
54172 - wl18xx_ops.set_rx_csum = NULL;
54173 - wl18xx_ops.init_vif = NULL;
54174 + pax_open_kernel();
54175 + *(void **)&wl18xx_ops.set_rx_csum = NULL;
54176 + *(void **)&wl18xx_ops.init_vif = NULL;
54177 + pax_close_kernel();
54178 }
54179
54180 /* Enable 11a Band only if we have 5G antennas */
54181 diff --git a/drivers/net/wireless/zd1211rw/zd_usb.c b/drivers/net/wireless/zd1211rw/zd_usb.c
54182 index a912dc0..a8225ba 100644
54183 --- a/drivers/net/wireless/zd1211rw/zd_usb.c
54184 +++ b/drivers/net/wireless/zd1211rw/zd_usb.c
54185 @@ -385,7 +385,7 @@ static inline void handle_regs_int(struct urb *urb)
54186 {
54187 struct zd_usb *usb = urb->context;
54188 struct zd_usb_interrupt *intr = &usb->intr;
54189 - int len;
54190 + unsigned int len;
54191 u16 int_num;
54192
54193 ZD_ASSERT(in_interrupt());
54194 diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
54195 index 655f79d..509e3cd 100644
54196 --- a/drivers/of/fdt.c
54197 +++ b/drivers/of/fdt.c
54198 @@ -1170,7 +1170,9 @@ static int __init of_fdt_raw_init(void)
54199 pr_warn("fdt: not creating '/sys/firmware/fdt': CRC check failed\n");
54200 return 0;
54201 }
54202 - of_fdt_raw_attr.size = fdt_totalsize(initial_boot_params);
54203 + pax_open_kernel();
54204 + *(size_t *)&of_fdt_raw_attr.size = fdt_totalsize(initial_boot_params);
54205 + pax_close_kernel();
54206 return sysfs_create_bin_file(firmware_kobj, &of_fdt_raw_attr);
54207 }
54208 late_initcall(of_fdt_raw_init);
54209 diff --git a/drivers/oprofile/buffer_sync.c b/drivers/oprofile/buffer_sync.c
54210 index 82f7000..d6d0447 100644
54211 --- a/drivers/oprofile/buffer_sync.c
54212 +++ b/drivers/oprofile/buffer_sync.c
54213 @@ -345,7 +345,7 @@ static void add_data(struct op_entry *entry, struct mm_struct *mm)
54214 if (cookie == NO_COOKIE)
54215 offset = pc;
54216 if (cookie == INVALID_COOKIE) {
54217 - atomic_inc(&oprofile_stats.sample_lost_no_mapping);
54218 + atomic_inc_unchecked(&oprofile_stats.sample_lost_no_mapping);
54219 offset = pc;
54220 }
54221 if (cookie != last_cookie) {
54222 @@ -389,14 +389,14 @@ add_sample(struct mm_struct *mm, struct op_sample *s, int in_kernel)
54223 /* add userspace sample */
54224
54225 if (!mm) {
54226 - atomic_inc(&oprofile_stats.sample_lost_no_mm);
54227 + atomic_inc_unchecked(&oprofile_stats.sample_lost_no_mm);
54228 return 0;
54229 }
54230
54231 cookie = lookup_dcookie(mm, s->eip, &offset);
54232
54233 if (cookie == INVALID_COOKIE) {
54234 - atomic_inc(&oprofile_stats.sample_lost_no_mapping);
54235 + atomic_inc_unchecked(&oprofile_stats.sample_lost_no_mapping);
54236 return 0;
54237 }
54238
54239 @@ -554,7 +554,7 @@ void sync_buffer(int cpu)
54240 /* ignore backtraces if failed to add a sample */
54241 if (state == sb_bt_start) {
54242 state = sb_bt_ignore;
54243 - atomic_inc(&oprofile_stats.bt_lost_no_mapping);
54244 + atomic_inc_unchecked(&oprofile_stats.bt_lost_no_mapping);
54245 }
54246 }
54247 release_mm(mm);
54248 diff --git a/drivers/oprofile/event_buffer.c b/drivers/oprofile/event_buffer.c
54249 index c0cc4e7..44d4e54 100644
54250 --- a/drivers/oprofile/event_buffer.c
54251 +++ b/drivers/oprofile/event_buffer.c
54252 @@ -53,7 +53,7 @@ void add_event_entry(unsigned long value)
54253 }
54254
54255 if (buffer_pos == buffer_size) {
54256 - atomic_inc(&oprofile_stats.event_lost_overflow);
54257 + atomic_inc_unchecked(&oprofile_stats.event_lost_overflow);
54258 return;
54259 }
54260
54261 diff --git a/drivers/oprofile/oprof.c b/drivers/oprofile/oprof.c
54262 index ed2c3ec..deda85a 100644
54263 --- a/drivers/oprofile/oprof.c
54264 +++ b/drivers/oprofile/oprof.c
54265 @@ -110,7 +110,7 @@ static void switch_worker(struct work_struct *work)
54266 if (oprofile_ops.switch_events())
54267 return;
54268
54269 - atomic_inc(&oprofile_stats.multiplex_counter);
54270 + atomic_inc_unchecked(&oprofile_stats.multiplex_counter);
54271 start_switch_worker();
54272 }
54273
54274 diff --git a/drivers/oprofile/oprofile_stats.c b/drivers/oprofile/oprofile_stats.c
54275 index 59659ce..6c860a0 100644
54276 --- a/drivers/oprofile/oprofile_stats.c
54277 +++ b/drivers/oprofile/oprofile_stats.c
54278 @@ -30,11 +30,11 @@ void oprofile_reset_stats(void)
54279 cpu_buf->sample_invalid_eip = 0;
54280 }
54281
54282 - atomic_set(&oprofile_stats.sample_lost_no_mm, 0);
54283 - atomic_set(&oprofile_stats.sample_lost_no_mapping, 0);
54284 - atomic_set(&oprofile_stats.event_lost_overflow, 0);
54285 - atomic_set(&oprofile_stats.bt_lost_no_mapping, 0);
54286 - atomic_set(&oprofile_stats.multiplex_counter, 0);
54287 + atomic_set_unchecked(&oprofile_stats.sample_lost_no_mm, 0);
54288 + atomic_set_unchecked(&oprofile_stats.sample_lost_no_mapping, 0);
54289 + atomic_set_unchecked(&oprofile_stats.event_lost_overflow, 0);
54290 + atomic_set_unchecked(&oprofile_stats.bt_lost_no_mapping, 0);
54291 + atomic_set_unchecked(&oprofile_stats.multiplex_counter, 0);
54292 }
54293
54294
54295 diff --git a/drivers/oprofile/oprofile_stats.h b/drivers/oprofile/oprofile_stats.h
54296 index 1fc622b..8c48fc3 100644
54297 --- a/drivers/oprofile/oprofile_stats.h
54298 +++ b/drivers/oprofile/oprofile_stats.h
54299 @@ -13,11 +13,11 @@
54300 #include <linux/atomic.h>
54301
54302 struct oprofile_stat_struct {
54303 - atomic_t sample_lost_no_mm;
54304 - atomic_t sample_lost_no_mapping;
54305 - atomic_t bt_lost_no_mapping;
54306 - atomic_t event_lost_overflow;
54307 - atomic_t multiplex_counter;
54308 + atomic_unchecked_t sample_lost_no_mm;
54309 + atomic_unchecked_t sample_lost_no_mapping;
54310 + atomic_unchecked_t bt_lost_no_mapping;
54311 + atomic_unchecked_t event_lost_overflow;
54312 + atomic_unchecked_t multiplex_counter;
54313 };
54314
54315 extern struct oprofile_stat_struct oprofile_stats;
54316 diff --git a/drivers/oprofile/oprofilefs.c b/drivers/oprofile/oprofilefs.c
54317 index dd92c5e..dfc04b5 100644
54318 --- a/drivers/oprofile/oprofilefs.c
54319 +++ b/drivers/oprofile/oprofilefs.c
54320 @@ -176,8 +176,8 @@ int oprofilefs_create_ro_ulong(struct dentry *root,
54321
54322 static ssize_t atomic_read_file(struct file *file, char __user *buf, size_t count, loff_t *offset)
54323 {
54324 - atomic_t *val = file->private_data;
54325 - return oprofilefs_ulong_to_user(atomic_read(val), buf, count, offset);
54326 + atomic_unchecked_t *val = file->private_data;
54327 + return oprofilefs_ulong_to_user(atomic_read_unchecked(val), buf, count, offset);
54328 }
54329
54330
54331 @@ -189,7 +189,7 @@ static const struct file_operations atomic_ro_fops = {
54332
54333
54334 int oprofilefs_create_ro_atomic(struct dentry *root,
54335 - char const *name, atomic_t *val)
54336 + char const *name, atomic_unchecked_t *val)
54337 {
54338 return __oprofilefs_create_file(root, name,
54339 &atomic_ro_fops, 0444, val);
54340 diff --git a/drivers/oprofile/timer_int.c b/drivers/oprofile/timer_int.c
54341 index bdef916..88c7dee 100644
54342 --- a/drivers/oprofile/timer_int.c
54343 +++ b/drivers/oprofile/timer_int.c
54344 @@ -93,7 +93,7 @@ static int oprofile_cpu_notify(struct notifier_block *self,
54345 return NOTIFY_OK;
54346 }
54347
54348 -static struct notifier_block __refdata oprofile_cpu_notifier = {
54349 +static struct notifier_block oprofile_cpu_notifier = {
54350 .notifier_call = oprofile_cpu_notify,
54351 };
54352
54353 diff --git a/drivers/parport/procfs.c b/drivers/parport/procfs.c
54354 index c776333..aa6b325 100644
54355 --- a/drivers/parport/procfs.c
54356 +++ b/drivers/parport/procfs.c
54357 @@ -65,7 +65,7 @@ static int do_active_device(struct ctl_table *table, int write,
54358
54359 *ppos += len;
54360
54361 - return copy_to_user(result, buffer, len) ? -EFAULT : 0;
54362 + return (len > sizeof buffer || copy_to_user(result, buffer, len)) ? -EFAULT : 0;
54363 }
54364
54365 #ifdef CONFIG_PARPORT_1284
54366 @@ -107,7 +107,7 @@ static int do_autoprobe(struct ctl_table *table, int write,
54367
54368 *ppos += len;
54369
54370 - return copy_to_user (result, buffer, len) ? -EFAULT : 0;
54371 + return (len > sizeof buffer || copy_to_user (result, buffer, len)) ? -EFAULT : 0;
54372 }
54373 #endif /* IEEE1284.3 support. */
54374
54375 diff --git a/drivers/pci/host/pci-host-generic.c b/drivers/pci/host/pci-host-generic.c
54376 index 5434c90..c7f4ead 100644
54377 --- a/drivers/pci/host/pci-host-generic.c
54378 +++ b/drivers/pci/host/pci-host-generic.c
54379 @@ -28,7 +28,7 @@
54380 struct gen_pci_cfg_bus_ops {
54381 u32 bus_shift;
54382 struct pci_ops ops;
54383 -};
54384 +} __do_const;
54385
54386 struct gen_pci_cfg_windows {
54387 struct resource res;
54388 diff --git a/drivers/pci/hotplug/acpiphp_ibm.c b/drivers/pci/hotplug/acpiphp_ibm.c
54389 index 6ca2399..68d866b 100644
54390 --- a/drivers/pci/hotplug/acpiphp_ibm.c
54391 +++ b/drivers/pci/hotplug/acpiphp_ibm.c
54392 @@ -452,7 +452,9 @@ static int __init ibm_acpiphp_init(void)
54393 goto init_cleanup;
54394 }
54395
54396 - ibm_apci_table_attr.size = ibm_get_table_from_acpi(NULL);
54397 + pax_open_kernel();
54398 + *(size_t *)&ibm_apci_table_attr.size = ibm_get_table_from_acpi(NULL);
54399 + pax_close_kernel();
54400 retval = sysfs_create_bin_file(sysdir, &ibm_apci_table_attr);
54401
54402 return retval;
54403 diff --git a/drivers/pci/hotplug/cpcihp_generic.c b/drivers/pci/hotplug/cpcihp_generic.c
54404 index 66b7bbe..26bee78 100644
54405 --- a/drivers/pci/hotplug/cpcihp_generic.c
54406 +++ b/drivers/pci/hotplug/cpcihp_generic.c
54407 @@ -73,7 +73,6 @@ static u16 port;
54408 static unsigned int enum_bit;
54409 static u8 enum_mask;
54410
54411 -static struct cpci_hp_controller_ops generic_hpc_ops;
54412 static struct cpci_hp_controller generic_hpc;
54413
54414 static int __init validate_parameters(void)
54415 @@ -139,6 +138,10 @@ static int query_enum(void)
54416 return ((value & enum_mask) == enum_mask);
54417 }
54418
54419 +static struct cpci_hp_controller_ops generic_hpc_ops = {
54420 + .query_enum = query_enum,
54421 +};
54422 +
54423 static int __init cpcihp_generic_init(void)
54424 {
54425 int status;
54426 @@ -165,7 +168,6 @@ static int __init cpcihp_generic_init(void)
54427 pci_dev_put(dev);
54428
54429 memset(&generic_hpc, 0, sizeof (struct cpci_hp_controller));
54430 - generic_hpc_ops.query_enum = query_enum;
54431 generic_hpc.ops = &generic_hpc_ops;
54432
54433 status = cpci_hp_register_controller(&generic_hpc);
54434 diff --git a/drivers/pci/hotplug/cpcihp_zt5550.c b/drivers/pci/hotplug/cpcihp_zt5550.c
54435 index 7ecf34e..effed62 100644
54436 --- a/drivers/pci/hotplug/cpcihp_zt5550.c
54437 +++ b/drivers/pci/hotplug/cpcihp_zt5550.c
54438 @@ -59,7 +59,6 @@
54439 /* local variables */
54440 static bool debug;
54441 static bool poll;
54442 -static struct cpci_hp_controller_ops zt5550_hpc_ops;
54443 static struct cpci_hp_controller zt5550_hpc;
54444
54445 /* Primary cPCI bus bridge device */
54446 @@ -204,6 +203,10 @@ static int zt5550_hc_disable_irq(void)
54447 return 0;
54448 }
54449
54450 +static struct cpci_hp_controller_ops zt5550_hpc_ops = {
54451 + .query_enum = zt5550_hc_query_enum,
54452 +};
54453 +
54454 static int zt5550_hc_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
54455 {
54456 int status;
54457 @@ -215,16 +218,17 @@ static int zt5550_hc_init_one (struct pci_dev *pdev, const struct pci_device_id
54458 dbg("returned from zt5550_hc_config");
54459
54460 memset(&zt5550_hpc, 0, sizeof (struct cpci_hp_controller));
54461 - zt5550_hpc_ops.query_enum = zt5550_hc_query_enum;
54462 zt5550_hpc.ops = &zt5550_hpc_ops;
54463 if (!poll) {
54464 zt5550_hpc.irq = hc_dev->irq;
54465 zt5550_hpc.irq_flags = IRQF_SHARED;
54466 zt5550_hpc.dev_id = hc_dev;
54467
54468 - zt5550_hpc_ops.enable_irq = zt5550_hc_enable_irq;
54469 - zt5550_hpc_ops.disable_irq = zt5550_hc_disable_irq;
54470 - zt5550_hpc_ops.check_irq = zt5550_hc_check_irq;
54471 + pax_open_kernel();
54472 + *(void **)&zt5550_hpc_ops.enable_irq = zt5550_hc_enable_irq;
54473 + *(void **)&zt5550_hpc_ops.disable_irq = zt5550_hc_disable_irq;
54474 + *(void **)&zt5550_hpc_ops.check_irq = zt5550_hc_check_irq;
54475 + pax_open_kernel();
54476 } else {
54477 info("using ENUM# polling mode");
54478 }
54479 diff --git a/drivers/pci/hotplug/cpqphp_nvram.c b/drivers/pci/hotplug/cpqphp_nvram.c
54480 index 1e08ff8c..3cd145f 100644
54481 --- a/drivers/pci/hotplug/cpqphp_nvram.c
54482 +++ b/drivers/pci/hotplug/cpqphp_nvram.c
54483 @@ -425,8 +425,10 @@ static u32 store_HRT (void __iomem *rom_start)
54484
54485 void compaq_nvram_init (void __iomem *rom_start)
54486 {
54487 +#ifndef CONFIG_PAX_KERNEXEC
54488 if (rom_start)
54489 compaq_int15_entry_point = (rom_start + ROM_INT15_PHY_ADDR - ROM_PHY_ADDR);
54490 +#endif
54491
54492 dbg("int15 entry = %p\n", compaq_int15_entry_point);
54493
54494 diff --git a/drivers/pci/hotplug/pci_hotplug_core.c b/drivers/pci/hotplug/pci_hotplug_core.c
54495 index d1fab97..71d04bf 100644
54496 --- a/drivers/pci/hotplug/pci_hotplug_core.c
54497 +++ b/drivers/pci/hotplug/pci_hotplug_core.c
54498 @@ -436,8 +436,10 @@ int __pci_hp_register(struct hotplug_slot *slot, struct pci_bus *bus,
54499 return -EINVAL;
54500 }
54501
54502 - slot->ops->owner = owner;
54503 - slot->ops->mod_name = mod_name;
54504 + pax_open_kernel();
54505 + *(struct module **)&slot->ops->owner = owner;
54506 + *(const char **)&slot->ops->mod_name = mod_name;
54507 + pax_close_kernel();
54508
54509 mutex_lock(&pci_hp_mutex);
54510 /*
54511 diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c
54512 index 612b21a..9494a5e 100644
54513 --- a/drivers/pci/hotplug/pciehp_core.c
54514 +++ b/drivers/pci/hotplug/pciehp_core.c
54515 @@ -87,7 +87,7 @@ static int init_slot(struct controller *ctrl)
54516 struct slot *slot = ctrl->slot;
54517 struct hotplug_slot *hotplug = NULL;
54518 struct hotplug_slot_info *info = NULL;
54519 - struct hotplug_slot_ops *ops = NULL;
54520 + hotplug_slot_ops_no_const *ops = NULL;
54521 char name[SLOT_NAME_SIZE];
54522 int retval = -ENOMEM;
54523
54524 diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
54525 index 7eaa4c8..b858f21 100644
54526 --- a/drivers/pci/msi.c
54527 +++ b/drivers/pci/msi.c
54528 @@ -472,8 +472,8 @@ static int populate_msi_sysfs(struct pci_dev *pdev)
54529 {
54530 struct attribute **msi_attrs;
54531 struct attribute *msi_attr;
54532 - struct device_attribute *msi_dev_attr;
54533 - struct attribute_group *msi_irq_group;
54534 + device_attribute_no_const *msi_dev_attr;
54535 + attribute_group_no_const *msi_irq_group;
54536 const struct attribute_group **msi_irq_groups;
54537 struct msi_desc *entry;
54538 int ret = -ENOMEM;
54539 @@ -535,7 +535,7 @@ error_attrs:
54540 count = 0;
54541 msi_attr = msi_attrs[count];
54542 while (msi_attr) {
54543 - msi_dev_attr = container_of(msi_attr, struct device_attribute, attr);
54544 + msi_dev_attr = container_of(msi_attr, device_attribute_no_const, attr);
54545 kfree(msi_attr->name);
54546 kfree(msi_dev_attr);
54547 ++count;
54548 @@ -1234,12 +1234,14 @@ static void pci_msi_domain_update_dom_ops(struct msi_domain_info *info)
54549 if (ops == NULL) {
54550 info->ops = &pci_msi_domain_ops_default;
54551 } else {
54552 + pax_open_kernel();
54553 if (ops->set_desc == NULL)
54554 - ops->set_desc = pci_msi_domain_set_desc;
54555 + *(void **)&ops->set_desc = pci_msi_domain_set_desc;
54556 if (ops->msi_check == NULL)
54557 - ops->msi_check = pci_msi_domain_check_cap;
54558 + *(void **)&ops->msi_check = pci_msi_domain_check_cap;
54559 if (ops->handle_error == NULL)
54560 - ops->handle_error = pci_msi_domain_handle_error;
54561 + *(void **)&ops->handle_error = pci_msi_domain_handle_error;
54562 + pax_close_kernel();
54563 }
54564 }
54565
54566 @@ -1248,12 +1250,14 @@ static void pci_msi_domain_update_chip_ops(struct msi_domain_info *info)
54567 struct irq_chip *chip = info->chip;
54568
54569 BUG_ON(!chip);
54570 + pax_open_kernel();
54571 if (!chip->irq_write_msi_msg)
54572 - chip->irq_write_msi_msg = pci_msi_domain_write_msg;
54573 + *(void **)&chip->irq_write_msi_msg = pci_msi_domain_write_msg;
54574 if (!chip->irq_mask)
54575 - chip->irq_mask = pci_msi_mask_irq;
54576 + *(void **)&chip->irq_mask = pci_msi_mask_irq;
54577 if (!chip->irq_unmask)
54578 - chip->irq_unmask = pci_msi_unmask_irq;
54579 + *(void **)&chip->irq_unmask = pci_msi_unmask_irq;
54580 + pax_close_kernel();
54581 }
54582
54583 /**
54584 diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
54585 index eead54c..a611b6c 100644
54586 --- a/drivers/pci/pci-sysfs.c
54587 +++ b/drivers/pci/pci-sysfs.c
54588 @@ -1143,7 +1143,7 @@ static int pci_create_attr(struct pci_dev *pdev, int num, int write_combine)
54589 {
54590 /* allocate attribute structure, piggyback attribute name */
54591 int name_len = write_combine ? 13 : 10;
54592 - struct bin_attribute *res_attr;
54593 + bin_attribute_no_const *res_attr;
54594 int retval;
54595
54596 res_attr = kzalloc(sizeof(*res_attr) + name_len, GFP_ATOMIC);
54597 @@ -1320,7 +1320,7 @@ static struct device_attribute reset_attr = __ATTR(reset, 0200, NULL, reset_stor
54598 static int pci_create_capabilities_sysfs(struct pci_dev *dev)
54599 {
54600 int retval;
54601 - struct bin_attribute *attr;
54602 + bin_attribute_no_const *attr;
54603
54604 /* If the device has VPD, try to expose it in sysfs. */
54605 if (dev->vpd) {
54606 @@ -1367,7 +1367,7 @@ int __must_check pci_create_sysfs_dev_files(struct pci_dev *pdev)
54607 {
54608 int retval;
54609 int rom_size = 0;
54610 - struct bin_attribute *attr;
54611 + bin_attribute_no_const *attr;
54612
54613 if (!sysfs_initialized)
54614 return -EACCES;
54615 diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
54616 index d390fc1..d410fda 100644
54617 --- a/drivers/pci/pci.h
54618 +++ b/drivers/pci/pci.h
54619 @@ -103,7 +103,7 @@ struct pci_vpd_ops {
54620 struct pci_vpd {
54621 unsigned int len;
54622 const struct pci_vpd_ops *ops;
54623 - struct bin_attribute *attr; /* descriptor for sysfs VPD entry */
54624 + bin_attribute_no_const *attr; /* descriptor for sysfs VPD entry */
54625 };
54626
54627 int pci_vpd_pci22_init(struct pci_dev *dev);
54628 diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
54629 index 317e355..21f7b91 100644
54630 --- a/drivers/pci/pcie/aspm.c
54631 +++ b/drivers/pci/pcie/aspm.c
54632 @@ -27,9 +27,9 @@
54633 #define MODULE_PARAM_PREFIX "pcie_aspm."
54634
54635 /* Note: those are not register definitions */
54636 -#define ASPM_STATE_L0S_UP (1) /* Upstream direction L0s state */
54637 -#define ASPM_STATE_L0S_DW (2) /* Downstream direction L0s state */
54638 -#define ASPM_STATE_L1 (4) /* L1 state */
54639 +#define ASPM_STATE_L0S_UP (1U) /* Upstream direction L0s state */
54640 +#define ASPM_STATE_L0S_DW (2U) /* Downstream direction L0s state */
54641 +#define ASPM_STATE_L1 (4U) /* L1 state */
54642 #define ASPM_STATE_L0S (ASPM_STATE_L0S_UP | ASPM_STATE_L0S_DW)
54643 #define ASPM_STATE_ALL (ASPM_STATE_L0S | ASPM_STATE_L1)
54644
54645 diff --git a/drivers/pci/pcie/portdrv_pci.c b/drivers/pci/pcie/portdrv_pci.c
54646 index be35da2..ec16cdb 100644
54647 --- a/drivers/pci/pcie/portdrv_pci.c
54648 +++ b/drivers/pci/pcie/portdrv_pci.c
54649 @@ -324,7 +324,7 @@ static int __init dmi_pcie_pme_disable_msi(const struct dmi_system_id *d)
54650 return 0;
54651 }
54652
54653 -static struct dmi_system_id __initdata pcie_portdrv_dmi_table[] = {
54654 +static const struct dmi_system_id __initconst pcie_portdrv_dmi_table[] = {
54655 /*
54656 * Boxes that should not use MSI for PCIe PME signaling.
54657 */
54658 diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
54659 index edb1984..dda9a083 100644
54660 --- a/drivers/pci/probe.c
54661 +++ b/drivers/pci/probe.c
54662 @@ -179,7 +179,7 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
54663 u16 orig_cmd;
54664 struct pci_bus_region region, inverted_region;
54665
54666 - mask = type ? PCI_ROM_ADDRESS_MASK : ~0;
54667 + mask = type ? (u32)PCI_ROM_ADDRESS_MASK : ~0;
54668
54669 /* No printks while decoding is disabled! */
54670 if (!dev->mmio_always_on) {
54671 diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c
54672 index 3f155e7..0f4b1f0 100644
54673 --- a/drivers/pci/proc.c
54674 +++ b/drivers/pci/proc.c
54675 @@ -434,7 +434,16 @@ static const struct file_operations proc_bus_pci_dev_operations = {
54676 static int __init pci_proc_init(void)
54677 {
54678 struct pci_dev *dev = NULL;
54679 +
54680 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
54681 +#ifdef CONFIG_GRKERNSEC_PROC_USER
54682 + proc_bus_pci_dir = proc_mkdir_mode("bus/pci", S_IRUSR | S_IXUSR, NULL);
54683 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
54684 + proc_bus_pci_dir = proc_mkdir_mode("bus/pci", S_IRUSR | S_IXUSR | S_IRGRP | S_IXGRP, NULL);
54685 +#endif
54686 +#else
54687 proc_bus_pci_dir = proc_mkdir("bus/pci", NULL);
54688 +#endif
54689 proc_create("devices", 0, proc_bus_pci_dir,
54690 &proc_bus_pci_dev_operations);
54691 proc_initialized = 1;
54692 diff --git a/drivers/pinctrl/nomadik/pinctrl-nomadik.c b/drivers/pinctrl/nomadik/pinctrl-nomadik.c
54693 index eebfae0..f4713a8 100644
54694 --- a/drivers/pinctrl/nomadik/pinctrl-nomadik.c
54695 +++ b/drivers/pinctrl/nomadik/pinctrl-nomadik.c
54696 @@ -1212,7 +1212,7 @@ static int nmk_gpio_probe(struct platform_device *dev)
54697 struct device_node *np = dev->dev.of_node;
54698 struct nmk_gpio_chip *nmk_chip;
54699 struct gpio_chip *chip;
54700 - struct irq_chip *irqchip;
54701 + irq_chip_no_const *irqchip;
54702 int latent_irq;
54703 bool supports_sleepmode;
54704 int irq;
54705 diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
54706 index 0d2fc0c..6f9ff62 100644
54707 --- a/drivers/pinctrl/pinctrl-at91.c
54708 +++ b/drivers/pinctrl/pinctrl-at91.c
54709 @@ -24,6 +24,7 @@
54710 #include <linux/pinctrl/pinmux.h>
54711 /* Since we request GPIOs from ourself */
54712 #include <linux/pinctrl/consumer.h>
54713 +#include <asm/pgtable.h>
54714
54715 #include "pinctrl-at91.h"
54716 #include "core.h"
54717 @@ -1613,7 +1614,9 @@ static int at91_gpio_of_irq_setup(struct platform_device *pdev,
54718 at91_gpio->pioc_hwirq = irqd_to_hwirq(d);
54719
54720 /* Setup proper .irq_set_type function */
54721 - gpio_irqchip.irq_set_type = at91_gpio->ops->irq_type;
54722 + pax_open_kernel();
54723 + *(void **)&gpio_irqchip.irq_set_type = at91_gpio->ops->irq_type;
54724 + pax_close_kernel();
54725
54726 /* Disable irqs of this PIO controller */
54727 writel_relaxed(~0, at91_gpio->regbase + PIO_IDR);
54728 diff --git a/drivers/platform/chrome/chromeos_pstore.c b/drivers/platform/chrome/chromeos_pstore.c
54729 index 3474920..acc9581 100644
54730 --- a/drivers/platform/chrome/chromeos_pstore.c
54731 +++ b/drivers/platform/chrome/chromeos_pstore.c
54732 @@ -13,7 +13,7 @@
54733 #include <linux/platform_device.h>
54734 #include <linux/pstore_ram.h>
54735
54736 -static struct dmi_system_id chromeos_pstore_dmi_table[] __initdata = {
54737 +static const struct dmi_system_id chromeos_pstore_dmi_table[] __initconst = {
54738 {
54739 /*
54740 * Today all Chromebooks/boxes ship with Google_* as version and
54741 diff --git a/drivers/platform/x86/alienware-wmi.c b/drivers/platform/x86/alienware-wmi.c
54742 index 1e1e594..8fe59c5 100644
54743 --- a/drivers/platform/x86/alienware-wmi.c
54744 +++ b/drivers/platform/x86/alienware-wmi.c
54745 @@ -150,7 +150,7 @@ struct wmax_led_args {
54746 } __packed;
54747
54748 static struct platform_device *platform_device;
54749 -static struct device_attribute *zone_dev_attrs;
54750 +static device_attribute_no_const *zone_dev_attrs;
54751 static struct attribute **zone_attrs;
54752 static struct platform_zone *zone_data;
54753
54754 @@ -160,7 +160,7 @@ static struct platform_driver platform_driver = {
54755 }
54756 };
54757
54758 -static struct attribute_group zone_attribute_group = {
54759 +static attribute_group_no_const zone_attribute_group = {
54760 .name = "rgb_zones",
54761 };
54762
54763 diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
54764 index f96f7b8..2d17b99 100644
54765 --- a/drivers/platform/x86/asus-wmi.c
54766 +++ b/drivers/platform/x86/asus-wmi.c
54767 @@ -1870,6 +1870,10 @@ static int show_dsts(struct seq_file *m, void *data)
54768 int err;
54769 u32 retval = -1;
54770
54771 +#ifdef CONFIG_GRKERNSEC_KMEM
54772 + return -EPERM;
54773 +#endif
54774 +
54775 err = asus_wmi_get_devstate(asus, asus->debug.dev_id, &retval);
54776
54777 if (err < 0)
54778 @@ -1886,6 +1890,10 @@ static int show_devs(struct seq_file *m, void *data)
54779 int err;
54780 u32 retval = -1;
54781
54782 +#ifdef CONFIG_GRKERNSEC_KMEM
54783 + return -EPERM;
54784 +#endif
54785 +
54786 err = asus_wmi_set_devstate(asus->debug.dev_id, asus->debug.ctrl_param,
54787 &retval);
54788
54789 @@ -1910,6 +1918,10 @@ static int show_call(struct seq_file *m, void *data)
54790 union acpi_object *obj;
54791 acpi_status status;
54792
54793 +#ifdef CONFIG_GRKERNSEC_KMEM
54794 + return -EPERM;
54795 +#endif
54796 +
54797 status = wmi_evaluate_method(ASUS_WMI_MGMT_GUID,
54798 1, asus->debug.method_id,
54799 &input, &output);
54800 diff --git a/drivers/platform/x86/compal-laptop.c b/drivers/platform/x86/compal-laptop.c
54801 index e1c2b6d..8f25439 100644
54802 --- a/drivers/platform/x86/compal-laptop.c
54803 +++ b/drivers/platform/x86/compal-laptop.c
54804 @@ -805,7 +805,7 @@ static int dmi_check_cb_extra(const struct dmi_system_id *id)
54805 return 1;
54806 }
54807
54808 -static struct dmi_system_id __initdata compal_dmi_table[] = {
54809 +static const struct dmi_system_id __initconst compal_dmi_table[] = {
54810 {
54811 .ident = "FL90/IFL90",
54812 .matches = {
54813 diff --git a/drivers/platform/x86/hdaps.c b/drivers/platform/x86/hdaps.c
54814 index 458e6c9..089aee7 100644
54815 --- a/drivers/platform/x86/hdaps.c
54816 +++ b/drivers/platform/x86/hdaps.c
54817 @@ -514,7 +514,7 @@ static int __init hdaps_dmi_match_invert(const struct dmi_system_id *id)
54818 "ThinkPad T42p", so the order of the entries matters.
54819 If your ThinkPad is not recognized, please update to latest
54820 BIOS. This is especially the case for some R52 ThinkPads. */
54821 -static struct dmi_system_id __initdata hdaps_whitelist[] = {
54822 +static const struct dmi_system_id __initconst hdaps_whitelist[] = {
54823 HDAPS_DMI_MATCH_INVERT("IBM", "ThinkPad R50p", HDAPS_BOTH_AXES),
54824 HDAPS_DMI_MATCH_NORMAL("IBM", "ThinkPad R50"),
54825 HDAPS_DMI_MATCH_NORMAL("IBM", "ThinkPad R51"),
54826 diff --git a/drivers/platform/x86/ibm_rtl.c b/drivers/platform/x86/ibm_rtl.c
54827 index c62e5e1..854b418 100644
54828 --- a/drivers/platform/x86/ibm_rtl.c
54829 +++ b/drivers/platform/x86/ibm_rtl.c
54830 @@ -227,7 +227,7 @@ static void rtl_teardown_sysfs(void) {
54831 }
54832
54833
54834 -static struct dmi_system_id __initdata ibm_rtl_dmi_table[] = {
54835 +static const struct dmi_system_id __initconst ibm_rtl_dmi_table[] = {
54836 { \
54837 .matches = { \
54838 DMI_MATCH(DMI_SYS_VENDOR, "IBM"), \
54839 diff --git a/drivers/platform/x86/intel_oaktrail.c b/drivers/platform/x86/intel_oaktrail.c
54840 index 6aa33c4..cfb5425 100644
54841 --- a/drivers/platform/x86/intel_oaktrail.c
54842 +++ b/drivers/platform/x86/intel_oaktrail.c
54843 @@ -299,7 +299,7 @@ static int dmi_check_cb(const struct dmi_system_id *id)
54844 return 0;
54845 }
54846
54847 -static struct dmi_system_id __initdata oaktrail_dmi_table[] = {
54848 +static const struct dmi_system_id __initconst oaktrail_dmi_table[] = {
54849 {
54850 .ident = "OakTrail platform",
54851 .matches = {
54852 diff --git a/drivers/platform/x86/msi-laptop.c b/drivers/platform/x86/msi-laptop.c
54853 index 4231770..10a6caf 100644
54854 --- a/drivers/platform/x86/msi-laptop.c
54855 +++ b/drivers/platform/x86/msi-laptop.c
54856 @@ -605,7 +605,7 @@ static int dmi_check_cb(const struct dmi_system_id *dmi)
54857 return 1;
54858 }
54859
54860 -static struct dmi_system_id __initdata msi_dmi_table[] = {
54861 +static const struct dmi_system_id __initconst msi_dmi_table[] = {
54862 {
54863 .ident = "MSI S270",
54864 .matches = {
54865 @@ -1000,12 +1000,14 @@ static int __init load_scm_model_init(struct platform_device *sdev)
54866
54867 if (!quirks->ec_read_only) {
54868 /* allow userland write sysfs file */
54869 - dev_attr_bluetooth.store = store_bluetooth;
54870 - dev_attr_wlan.store = store_wlan;
54871 - dev_attr_threeg.store = store_threeg;
54872 - dev_attr_bluetooth.attr.mode |= S_IWUSR;
54873 - dev_attr_wlan.attr.mode |= S_IWUSR;
54874 - dev_attr_threeg.attr.mode |= S_IWUSR;
54875 + pax_open_kernel();
54876 + *(void **)&dev_attr_bluetooth.store = store_bluetooth;
54877 + *(void **)&dev_attr_wlan.store = store_wlan;
54878 + *(void **)&dev_attr_threeg.store = store_threeg;
54879 + *(umode_t *)&dev_attr_bluetooth.attr.mode |= S_IWUSR;
54880 + *(umode_t *)&dev_attr_wlan.attr.mode |= S_IWUSR;
54881 + *(umode_t *)&dev_attr_threeg.attr.mode |= S_IWUSR;
54882 + pax_close_kernel();
54883 }
54884
54885 /* disable hardware control by fn key */
54886 diff --git a/drivers/platform/x86/msi-wmi.c b/drivers/platform/x86/msi-wmi.c
54887 index 978e6d6..1f0b37d 100644
54888 --- a/drivers/platform/x86/msi-wmi.c
54889 +++ b/drivers/platform/x86/msi-wmi.c
54890 @@ -184,7 +184,7 @@ static const struct backlight_ops msi_backlight_ops = {
54891 static void msi_wmi_notify(u32 value, void *context)
54892 {
54893 struct acpi_buffer response = { ACPI_ALLOCATE_BUFFER, NULL };
54894 - static struct key_entry *key;
54895 + struct key_entry *key;
54896 union acpi_object *obj;
54897 acpi_status status;
54898
54899 diff --git a/drivers/platform/x86/samsung-laptop.c b/drivers/platform/x86/samsung-laptop.c
54900 index 8c146e2..356c62e 100644
54901 --- a/drivers/platform/x86/samsung-laptop.c
54902 +++ b/drivers/platform/x86/samsung-laptop.c
54903 @@ -1567,7 +1567,7 @@ static int __init samsung_dmi_matched(const struct dmi_system_id *d)
54904 return 0;
54905 }
54906
54907 -static struct dmi_system_id __initdata samsung_dmi_table[] = {
54908 +static const struct dmi_system_id __initconst samsung_dmi_table[] = {
54909 {
54910 .matches = {
54911 DMI_MATCH(DMI_SYS_VENDOR,
54912 diff --git a/drivers/platform/x86/samsung-q10.c b/drivers/platform/x86/samsung-q10.c
54913 index e6aac72..e11ff24 100644
54914 --- a/drivers/platform/x86/samsung-q10.c
54915 +++ b/drivers/platform/x86/samsung-q10.c
54916 @@ -95,7 +95,7 @@ static int __init dmi_check_callback(const struct dmi_system_id *id)
54917 return 1;
54918 }
54919
54920 -static struct dmi_system_id __initdata samsungq10_dmi_table[] = {
54921 +static const struct dmi_system_id __initconst samsungq10_dmi_table[] = {
54922 {
54923 .ident = "Samsung Q10",
54924 .matches = {
54925 diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
54926 index f73c295..711e2f4 100644
54927 --- a/drivers/platform/x86/sony-laptop.c
54928 +++ b/drivers/platform/x86/sony-laptop.c
54929 @@ -2528,7 +2528,7 @@ static void sony_nc_gfx_switch_cleanup(struct platform_device *pd)
54930 }
54931
54932 /* High speed charging function */
54933 -static struct device_attribute *hsc_handle;
54934 +static device_attribute_no_const *hsc_handle;
54935
54936 static ssize_t sony_nc_highspeed_charging_store(struct device *dev,
54937 struct device_attribute *attr,
54938 @@ -2602,7 +2602,7 @@ static void sony_nc_highspeed_charging_cleanup(struct platform_device *pd)
54939 }
54940
54941 /* low battery function */
54942 -static struct device_attribute *lowbatt_handle;
54943 +static device_attribute_no_const *lowbatt_handle;
54944
54945 static ssize_t sony_nc_lowbatt_store(struct device *dev,
54946 struct device_attribute *attr,
54947 @@ -2668,7 +2668,7 @@ static void sony_nc_lowbatt_cleanup(struct platform_device *pd)
54948 }
54949
54950 /* fan speed function */
54951 -static struct device_attribute *fan_handle, *hsf_handle;
54952 +static device_attribute_no_const *fan_handle, *hsf_handle;
54953
54954 static ssize_t sony_nc_hsfan_store(struct device *dev,
54955 struct device_attribute *attr,
54956 @@ -2775,7 +2775,7 @@ static void sony_nc_fanspeed_cleanup(struct platform_device *pd)
54957 }
54958
54959 /* USB charge function */
54960 -static struct device_attribute *uc_handle;
54961 +static device_attribute_no_const *uc_handle;
54962
54963 static ssize_t sony_nc_usb_charge_store(struct device *dev,
54964 struct device_attribute *attr,
54965 @@ -2849,7 +2849,7 @@ static void sony_nc_usb_charge_cleanup(struct platform_device *pd)
54966 }
54967
54968 /* Panel ID function */
54969 -static struct device_attribute *panel_handle;
54970 +static device_attribute_no_const *panel_handle;
54971
54972 static ssize_t sony_nc_panelid_show(struct device *dev,
54973 struct device_attribute *attr, char *buffer)
54974 @@ -2896,7 +2896,7 @@ static void sony_nc_panelid_cleanup(struct platform_device *pd)
54975 }
54976
54977 /* smart connect function */
54978 -static struct device_attribute *sc_handle;
54979 +static device_attribute_no_const *sc_handle;
54980
54981 static ssize_t sony_nc_smart_conn_store(struct device *dev,
54982 struct device_attribute *attr,
54983 @@ -4852,7 +4852,7 @@ static struct acpi_driver sony_pic_driver = {
54984 .drv.pm = &sony_pic_pm,
54985 };
54986
54987 -static struct dmi_system_id __initdata sonypi_dmi_table[] = {
54988 +static const struct dmi_system_id __initconst sonypi_dmi_table[] = {
54989 {
54990 .ident = "Sony Vaio",
54991 .matches = {
54992 diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
54993 index 0bed473..c867ae2 100644
54994 --- a/drivers/platform/x86/thinkpad_acpi.c
54995 +++ b/drivers/platform/x86/thinkpad_acpi.c
54996 @@ -2460,10 +2460,10 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
54997 && !tp_features.bright_unkfw)
54998 TPACPI_MAY_SEND_KEY(TP_ACPI_HOTKEYSCAN_FNHOME);
54999 }
55000 +}
55001
55002 #undef TPACPI_COMPARE_KEY
55003 #undef TPACPI_MAY_SEND_KEY
55004 -}
55005
55006 /*
55007 * Polling driver
55008 diff --git a/drivers/pnp/pnpbios/bioscalls.c b/drivers/pnp/pnpbios/bioscalls.c
55009 index 438d4c7..ca8a2fb 100644
55010 --- a/drivers/pnp/pnpbios/bioscalls.c
55011 +++ b/drivers/pnp/pnpbios/bioscalls.c
55012 @@ -59,7 +59,7 @@ do { \
55013 set_desc_limit(&gdt[(selname) >> 3], (size) - 1); \
55014 } while(0)
55015
55016 -static struct desc_struct bad_bios_desc = GDT_ENTRY_INIT(0x4092,
55017 +static const struct desc_struct bad_bios_desc = GDT_ENTRY_INIT(0x4093,
55018 (unsigned long)__va(0x400UL), PAGE_SIZE - 0x400 - 1);
55019
55020 /*
55021 @@ -96,7 +96,10 @@ static inline u16 call_pnp_bios(u16 func, u16 arg1, u16 arg2, u16 arg3,
55022
55023 cpu = get_cpu();
55024 save_desc_40 = get_cpu_gdt_table(cpu)[0x40 / 8];
55025 +
55026 + pax_open_kernel();
55027 get_cpu_gdt_table(cpu)[0x40 / 8] = bad_bios_desc;
55028 + pax_close_kernel();
55029
55030 /* On some boxes IRQ's during PnP BIOS calls are deadly. */
55031 spin_lock_irqsave(&pnp_bios_lock, flags);
55032 @@ -134,7 +137,10 @@ static inline u16 call_pnp_bios(u16 func, u16 arg1, u16 arg2, u16 arg3,
55033 :"memory");
55034 spin_unlock_irqrestore(&pnp_bios_lock, flags);
55035
55036 + pax_open_kernel();
55037 get_cpu_gdt_table(cpu)[0x40 / 8] = save_desc_40;
55038 + pax_close_kernel();
55039 +
55040 put_cpu();
55041
55042 /* If we get here and this is set then the PnP BIOS faulted on us. */
55043 @@ -468,7 +474,7 @@ int pnp_bios_read_escd(char *data, u32 nvram_base)
55044 return status;
55045 }
55046
55047 -void pnpbios_calls_init(union pnp_bios_install_struct *header)
55048 +void __init pnpbios_calls_init(union pnp_bios_install_struct *header)
55049 {
55050 int i;
55051
55052 @@ -476,6 +482,8 @@ void pnpbios_calls_init(union pnp_bios_install_struct *header)
55053 pnp_bios_callpoint.offset = header->fields.pm16offset;
55054 pnp_bios_callpoint.segment = PNP_CS16;
55055
55056 + pax_open_kernel();
55057 +
55058 for_each_possible_cpu(i) {
55059 struct desc_struct *gdt = get_cpu_gdt_table(i);
55060 if (!gdt)
55061 @@ -487,4 +495,6 @@ void pnpbios_calls_init(union pnp_bios_install_struct *header)
55062 set_desc_base(&gdt[GDT_ENTRY_PNPBIOS_DS],
55063 (unsigned long)__va(header->fields.pm16dseg));
55064 }
55065 +
55066 + pax_close_kernel();
55067 }
55068 diff --git a/drivers/pnp/pnpbios/core.c b/drivers/pnp/pnpbios/core.c
55069 index facd43b..b291260 100644
55070 --- a/drivers/pnp/pnpbios/core.c
55071 +++ b/drivers/pnp/pnpbios/core.c
55072 @@ -494,7 +494,7 @@ static int __init exploding_pnp_bios(const struct dmi_system_id *d)
55073 return 0;
55074 }
55075
55076 -static struct dmi_system_id pnpbios_dmi_table[] __initdata = {
55077 +static const struct dmi_system_id pnpbios_dmi_table[] __initconst = {
55078 { /* PnPBIOS GPF on boot */
55079 .callback = exploding_pnp_bios,
55080 .ident = "Higraded P14H",
55081 diff --git a/drivers/power/pda_power.c b/drivers/power/pda_power.c
55082 index dfe1ee8..67e820c 100644
55083 --- a/drivers/power/pda_power.c
55084 +++ b/drivers/power/pda_power.c
55085 @@ -38,7 +38,11 @@ static struct power_supply *pda_psy_ac, *pda_psy_usb;
55086
55087 #if IS_ENABLED(CONFIG_USB_PHY)
55088 static struct usb_phy *transceiver;
55089 -static struct notifier_block otg_nb;
55090 +static int otg_handle_notification(struct notifier_block *nb,
55091 + unsigned long event, void *unused);
55092 +static struct notifier_block otg_nb = {
55093 + .notifier_call = otg_handle_notification
55094 +};
55095 #endif
55096
55097 static struct regulator *ac_draw;
55098 @@ -373,7 +377,6 @@ static int pda_power_probe(struct platform_device *pdev)
55099
55100 #if IS_ENABLED(CONFIG_USB_PHY)
55101 if (!IS_ERR_OR_NULL(transceiver) && pdata->use_otg_notifier) {
55102 - otg_nb.notifier_call = otg_handle_notification;
55103 ret = usb_register_notifier(transceiver, &otg_nb);
55104 if (ret) {
55105 dev_err(dev, "failure to register otg notifier\n");
55106 diff --git a/drivers/power/power_supply.h b/drivers/power/power_supply.h
55107 index cc439fd..8fa30df 100644
55108 --- a/drivers/power/power_supply.h
55109 +++ b/drivers/power/power_supply.h
55110 @@ -16,12 +16,12 @@ struct power_supply;
55111
55112 #ifdef CONFIG_SYSFS
55113
55114 -extern void power_supply_init_attrs(struct device_type *dev_type);
55115 +extern void power_supply_init_attrs(void);
55116 extern int power_supply_uevent(struct device *dev, struct kobj_uevent_env *env);
55117
55118 #else
55119
55120 -static inline void power_supply_init_attrs(struct device_type *dev_type) {}
55121 +static inline void power_supply_init_attrs(void) {}
55122 #define power_supply_uevent NULL
55123
55124 #endif /* CONFIG_SYSFS */
55125 diff --git a/drivers/power/power_supply_core.c b/drivers/power/power_supply_core.c
55126 index 456987c..45396a3 100644
55127 --- a/drivers/power/power_supply_core.c
55128 +++ b/drivers/power/power_supply_core.c
55129 @@ -28,7 +28,10 @@ EXPORT_SYMBOL_GPL(power_supply_class);
55130 ATOMIC_NOTIFIER_HEAD(power_supply_notifier);
55131 EXPORT_SYMBOL_GPL(power_supply_notifier);
55132
55133 -static struct device_type power_supply_dev_type;
55134 +extern const struct attribute_group *power_supply_attr_groups[];
55135 +static struct device_type power_supply_dev_type = {
55136 + .groups = power_supply_attr_groups,
55137 +};
55138
55139 #define POWER_SUPPLY_DEFERRED_REGISTER_TIME msecs_to_jiffies(10)
55140
55141 @@ -960,7 +963,7 @@ static int __init power_supply_class_init(void)
55142 return PTR_ERR(power_supply_class);
55143
55144 power_supply_class->dev_uevent = power_supply_uevent;
55145 - power_supply_init_attrs(&power_supply_dev_type);
55146 + power_supply_init_attrs();
55147
55148 return 0;
55149 }
55150 diff --git a/drivers/power/power_supply_sysfs.c b/drivers/power/power_supply_sysfs.c
55151 index ed2d7fd..266b28f 100644
55152 --- a/drivers/power/power_supply_sysfs.c
55153 +++ b/drivers/power/power_supply_sysfs.c
55154 @@ -238,17 +238,15 @@ static struct attribute_group power_supply_attr_group = {
55155 .is_visible = power_supply_attr_is_visible,
55156 };
55157
55158 -static const struct attribute_group *power_supply_attr_groups[] = {
55159 +const struct attribute_group *power_supply_attr_groups[] = {
55160 &power_supply_attr_group,
55161 NULL,
55162 };
55163
55164 -void power_supply_init_attrs(struct device_type *dev_type)
55165 +void power_supply_init_attrs(void)
55166 {
55167 int i;
55168
55169 - dev_type->groups = power_supply_attr_groups;
55170 -
55171 for (i = 0; i < ARRAY_SIZE(power_supply_attrs); i++)
55172 __power_supply_attrs[i] = &power_supply_attrs[i].attr;
55173 }
55174 diff --git a/drivers/power/reset/at91-reset.c b/drivers/power/reset/at91-reset.c
55175 index 3f6b5dd..02c9986 100644
55176 --- a/drivers/power/reset/at91-reset.c
55177 +++ b/drivers/power/reset/at91-reset.c
55178 @@ -17,6 +17,7 @@
55179 #include <linux/of_address.h>
55180 #include <linux/platform_device.h>
55181 #include <linux/reboot.h>
55182 +#include <asm/pgtable.h>
55183
55184 #include <soc/at91/at91sam9_ddrsdr.h>
55185 #include <soc/at91/at91sam9_sdramc.h>
55186 @@ -205,7 +206,9 @@ static int __init at91_reset_probe(struct platform_device *pdev)
55187 }
55188
55189 match = of_match_node(at91_reset_of_match, pdev->dev.of_node);
55190 - at91_restart_nb.notifier_call = match->data;
55191 + pax_open_kernel();
55192 + *(void **)&at91_restart_nb.notifier_call = match->data;
55193 + pax_close_kernel();
55194
55195 sclk = devm_clk_get(&pdev->dev, NULL);
55196 if (IS_ERR(sclk))
55197 diff --git a/drivers/powercap/powercap_sys.c b/drivers/powercap/powercap_sys.c
55198 index 84419af..268ede8 100644
55199 --- a/drivers/powercap/powercap_sys.c
55200 +++ b/drivers/powercap/powercap_sys.c
55201 @@ -154,8 +154,77 @@ struct powercap_constraint_attr {
55202 struct device_attribute name_attr;
55203 };
55204
55205 +static ssize_t show_constraint_name(struct device *dev,
55206 + struct device_attribute *dev_attr,
55207 + char *buf);
55208 +
55209 static struct powercap_constraint_attr
55210 - constraint_attrs[MAX_CONSTRAINTS_PER_ZONE];
55211 + constraint_attrs[MAX_CONSTRAINTS_PER_ZONE] = {
55212 + [0 ... MAX_CONSTRAINTS_PER_ZONE - 1] = {
55213 + .power_limit_attr = {
55214 + .attr = {
55215 + .name = NULL,
55216 + .mode = S_IWUSR | S_IRUGO
55217 + },
55218 + .show = show_constraint_power_limit_uw,
55219 + .store = store_constraint_power_limit_uw
55220 + },
55221 +
55222 + .time_window_attr = {
55223 + .attr = {
55224 + .name = NULL,
55225 + .mode = S_IWUSR | S_IRUGO
55226 + },
55227 + .show = show_constraint_time_window_us,
55228 + .store = store_constraint_time_window_us
55229 + },
55230 +
55231 + .max_power_attr = {
55232 + .attr = {
55233 + .name = NULL,
55234 + .mode = S_IRUGO
55235 + },
55236 + .show = show_constraint_max_power_uw,
55237 + .store = NULL
55238 + },
55239 +
55240 + .min_power_attr = {
55241 + .attr = {
55242 + .name = NULL,
55243 + .mode = S_IRUGO
55244 + },
55245 + .show = show_constraint_min_power_uw,
55246 + .store = NULL
55247 + },
55248 +
55249 + .max_time_window_attr = {
55250 + .attr = {
55251 + .name = NULL,
55252 + .mode = S_IRUGO
55253 + },
55254 + .show = show_constraint_max_time_window_us,
55255 + .store = NULL
55256 + },
55257 +
55258 + .min_time_window_attr = {
55259 + .attr = {
55260 + .name = NULL,
55261 + .mode = S_IRUGO
55262 + },
55263 + .show = show_constraint_min_time_window_us,
55264 + .store = NULL
55265 + },
55266 +
55267 + .name_attr = {
55268 + .attr = {
55269 + .name = NULL,
55270 + .mode = S_IRUGO
55271 + },
55272 + .show = show_constraint_name,
55273 + .store = NULL
55274 + }
55275 + }
55276 +};
55277
55278 /* A list of powercap control_types */
55279 static LIST_HEAD(powercap_cntrl_list);
55280 @@ -193,23 +262,16 @@ static ssize_t show_constraint_name(struct device *dev,
55281 }
55282
55283 static int create_constraint_attribute(int id, const char *name,
55284 - int mode,
55285 - struct device_attribute *dev_attr,
55286 - ssize_t (*show)(struct device *,
55287 - struct device_attribute *, char *),
55288 - ssize_t (*store)(struct device *,
55289 - struct device_attribute *,
55290 - const char *, size_t)
55291 - )
55292 + struct device_attribute *dev_attr)
55293 {
55294 + name = kasprintf(GFP_KERNEL, "constraint_%d_%s", id, name);
55295
55296 - dev_attr->attr.name = kasprintf(GFP_KERNEL, "constraint_%d_%s",
55297 - id, name);
55298 - if (!dev_attr->attr.name)
55299 + if (!name)
55300 return -ENOMEM;
55301 - dev_attr->attr.mode = mode;
55302 - dev_attr->show = show;
55303 - dev_attr->store = store;
55304 +
55305 + pax_open_kernel();
55306 + *(const char **)&dev_attr->attr.name = name;
55307 + pax_close_kernel();
55308
55309 return 0;
55310 }
55311 @@ -236,49 +298,31 @@ static int seed_constraint_attributes(void)
55312
55313 for (i = 0; i < MAX_CONSTRAINTS_PER_ZONE; ++i) {
55314 ret = create_constraint_attribute(i, "power_limit_uw",
55315 - S_IWUSR | S_IRUGO,
55316 - &constraint_attrs[i].power_limit_attr,
55317 - show_constraint_power_limit_uw,
55318 - store_constraint_power_limit_uw);
55319 + &constraint_attrs[i].power_limit_attr);
55320 if (ret)
55321 goto err_alloc;
55322 ret = create_constraint_attribute(i, "time_window_us",
55323 - S_IWUSR | S_IRUGO,
55324 - &constraint_attrs[i].time_window_attr,
55325 - show_constraint_time_window_us,
55326 - store_constraint_time_window_us);
55327 + &constraint_attrs[i].time_window_attr);
55328 if (ret)
55329 goto err_alloc;
55330 - ret = create_constraint_attribute(i, "name", S_IRUGO,
55331 - &constraint_attrs[i].name_attr,
55332 - show_constraint_name,
55333 - NULL);
55334 + ret = create_constraint_attribute(i, "name",
55335 + &constraint_attrs[i].name_attr);
55336 if (ret)
55337 goto err_alloc;
55338 - ret = create_constraint_attribute(i, "max_power_uw", S_IRUGO,
55339 - &constraint_attrs[i].max_power_attr,
55340 - show_constraint_max_power_uw,
55341 - NULL);
55342 + ret = create_constraint_attribute(i, "max_power_uw",
55343 + &constraint_attrs[i].max_power_attr);
55344 if (ret)
55345 goto err_alloc;
55346 - ret = create_constraint_attribute(i, "min_power_uw", S_IRUGO,
55347 - &constraint_attrs[i].min_power_attr,
55348 - show_constraint_min_power_uw,
55349 - NULL);
55350 + ret = create_constraint_attribute(i, "min_power_uw",
55351 + &constraint_attrs[i].min_power_attr);
55352 if (ret)
55353 goto err_alloc;
55354 ret = create_constraint_attribute(i, "max_time_window_us",
55355 - S_IRUGO,
55356 - &constraint_attrs[i].max_time_window_attr,
55357 - show_constraint_max_time_window_us,
55358 - NULL);
55359 + &constraint_attrs[i].max_time_window_attr);
55360 if (ret)
55361 goto err_alloc;
55362 ret = create_constraint_attribute(i, "min_time_window_us",
55363 - S_IRUGO,
55364 - &constraint_attrs[i].min_time_window_attr,
55365 - show_constraint_min_time_window_us,
55366 - NULL);
55367 + &constraint_attrs[i].min_time_window_attr);
55368 if (ret)
55369 goto err_alloc;
55370
55371 @@ -378,10 +422,12 @@ static void create_power_zone_common_attributes(
55372 power_zone->zone_dev_attrs[count++] =
55373 &dev_attr_max_energy_range_uj.attr;
55374 if (power_zone->ops->get_energy_uj) {
55375 + pax_open_kernel();
55376 if (power_zone->ops->reset_energy_uj)
55377 - dev_attr_energy_uj.attr.mode = S_IWUSR | S_IRUGO;
55378 + *(umode_t *)&dev_attr_energy_uj.attr.mode = S_IWUSR | S_IRUGO;
55379 else
55380 - dev_attr_energy_uj.attr.mode = S_IRUGO;
55381 + *(umode_t *)&dev_attr_energy_uj.attr.mode = S_IRUGO;
55382 + pax_close_kernel();
55383 power_zone->zone_dev_attrs[count++] =
55384 &dev_attr_energy_uj.attr;
55385 }
55386 diff --git a/drivers/ptp/ptp_private.h b/drivers/ptp/ptp_private.h
55387 index 9c5d414..c7900ce 100644
55388 --- a/drivers/ptp/ptp_private.h
55389 +++ b/drivers/ptp/ptp_private.h
55390 @@ -51,7 +51,7 @@ struct ptp_clock {
55391 struct mutex pincfg_mux; /* protect concurrent info->pin_config access */
55392 wait_queue_head_t tsev_wq;
55393 int defunct; /* tells readers to go away when clock is being removed */
55394 - struct device_attribute *pin_dev_attr;
55395 + device_attribute_no_const *pin_dev_attr;
55396 struct attribute **pin_attr;
55397 struct attribute_group pin_attr_group;
55398 };
55399 diff --git a/drivers/ptp/ptp_sysfs.c b/drivers/ptp/ptp_sysfs.c
55400 index 302e626..12579af 100644
55401 --- a/drivers/ptp/ptp_sysfs.c
55402 +++ b/drivers/ptp/ptp_sysfs.c
55403 @@ -280,7 +280,7 @@ static int ptp_populate_pins(struct ptp_clock *ptp)
55404 goto no_pin_attr;
55405
55406 for (i = 0; i < n_pins; i++) {
55407 - struct device_attribute *da = &ptp->pin_dev_attr[i];
55408 + device_attribute_no_const *da = &ptp->pin_dev_attr[i];
55409 sysfs_attr_init(&da->attr);
55410 da->attr.name = info->pin_config[i].name;
55411 da->attr.mode = 0644;
55412 diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
55413 index 73b7683..8ccd43b 100644
55414 --- a/drivers/regulator/core.c
55415 +++ b/drivers/regulator/core.c
55416 @@ -3842,7 +3842,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
55417 const struct regulation_constraints *constraints = NULL;
55418 const struct regulator_init_data *init_data;
55419 struct regulator_config *config = NULL;
55420 - static atomic_t regulator_no = ATOMIC_INIT(-1);
55421 + static atomic_unchecked_t regulator_no = ATOMIC_INIT(-1);
55422 struct regulator_dev *rdev;
55423 struct device *dev;
55424 int ret, i;
55425 @@ -3925,7 +3925,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
55426 rdev->dev.class = &regulator_class;
55427 rdev->dev.parent = dev;
55428 dev_set_name(&rdev->dev, "regulator.%lu",
55429 - (unsigned long) atomic_inc_return(&regulator_no));
55430 + (unsigned long) atomic_inc_return_unchecked(&regulator_no));
55431 ret = device_register(&rdev->dev);
55432 if (ret != 0) {
55433 put_device(&rdev->dev);
55434 diff --git a/drivers/regulator/max8660.c b/drivers/regulator/max8660.c
55435 index b87f62d..345b9a1 100644
55436 --- a/drivers/regulator/max8660.c
55437 +++ b/drivers/regulator/max8660.c
55438 @@ -423,8 +423,10 @@ static int max8660_probe(struct i2c_client *client,
55439 max8660->shadow_regs[MAX8660_OVER1] = 5;
55440 } else {
55441 /* Otherwise devices can be toggled via software */
55442 - max8660_dcdc_ops.enable = max8660_dcdc_enable;
55443 - max8660_dcdc_ops.disable = max8660_dcdc_disable;
55444 + pax_open_kernel();
55445 + *(void **)&max8660_dcdc_ops.enable = max8660_dcdc_enable;
55446 + *(void **)&max8660_dcdc_ops.disable = max8660_dcdc_disable;
55447 + pax_close_kernel();
55448 }
55449
55450 /*
55451 diff --git a/drivers/regulator/max8973-regulator.c b/drivers/regulator/max8973-regulator.c
55452 index 5b75b7c..142c226 100644
55453 --- a/drivers/regulator/max8973-regulator.c
55454 +++ b/drivers/regulator/max8973-regulator.c
55455 @@ -658,9 +658,11 @@ static int max8973_probe(struct i2c_client *client,
55456 if (!pdata->enable_ext_control) {
55457 max->desc.enable_reg = MAX8973_VOUT;
55458 max->desc.enable_mask = MAX8973_VOUT_ENABLE;
55459 - max->ops.enable = regulator_enable_regmap;
55460 - max->ops.disable = regulator_disable_regmap;
55461 - max->ops.is_enabled = regulator_is_enabled_regmap;
55462 + pax_open_kernel();
55463 + *(void **)&max->ops.enable = regulator_enable_regmap;
55464 + *(void **)&max->ops.disable = regulator_disable_regmap;
55465 + *(void **)&max->ops.is_enabled = regulator_is_enabled_regmap;
55466 + pax_close_kernel();
55467 break;
55468 }
55469
55470 @@ -688,9 +690,11 @@ static int max8973_probe(struct i2c_client *client,
55471
55472 max->desc.enable_reg = MAX8973_VOUT;
55473 max->desc.enable_mask = MAX8973_VOUT_ENABLE;
55474 - max->ops.enable = regulator_enable_regmap;
55475 - max->ops.disable = regulator_disable_regmap;
55476 - max->ops.is_enabled = regulator_is_enabled_regmap;
55477 + pax_open_kernel();
55478 + *(void **)&max->ops.enable = regulator_enable_regmap;
55479 + *(void **)&max->ops.disable = regulator_disable_regmap;
55480 + *(void **)&max->ops.is_enabled = regulator_is_enabled_regmap;
55481 + pax_close_kernel();
55482 max->ops.set_current_limit = max8973_set_current_limit;
55483 max->ops.get_current_limit = max8973_get_current_limit;
55484 break;
55485 diff --git a/drivers/regulator/mc13892-regulator.c b/drivers/regulator/mc13892-regulator.c
55486 index 0d17c92..a29f627 100644
55487 --- a/drivers/regulator/mc13892-regulator.c
55488 +++ b/drivers/regulator/mc13892-regulator.c
55489 @@ -584,10 +584,12 @@ static int mc13892_regulator_probe(struct platform_device *pdev)
55490 mc13xxx_unlock(mc13892);
55491
55492 /* update mc13892_vcam ops */
55493 - memcpy(&mc13892_vcam_ops, mc13892_regulators[MC13892_VCAM].desc.ops,
55494 + pax_open_kernel();
55495 + memcpy((void *)&mc13892_vcam_ops, mc13892_regulators[MC13892_VCAM].desc.ops,
55496 sizeof(struct regulator_ops));
55497 - mc13892_vcam_ops.set_mode = mc13892_vcam_set_mode,
55498 - mc13892_vcam_ops.get_mode = mc13892_vcam_get_mode,
55499 + *(void **)&mc13892_vcam_ops.set_mode = mc13892_vcam_set_mode,
55500 + *(void **)&mc13892_vcam_ops.get_mode = mc13892_vcam_get_mode,
55501 + pax_close_kernel();
55502 mc13892_regulators[MC13892_VCAM].desc.ops = &mc13892_vcam_ops;
55503
55504 mc13xxx_data = mc13xxx_parse_regulators_dt(pdev, mc13892_regulators,
55505 diff --git a/drivers/rtc/rtc-armada38x.c b/drivers/rtc/rtc-armada38x.c
55506 index 9a3f2a6..604f463 100644
55507 --- a/drivers/rtc/rtc-armada38x.c
55508 +++ b/drivers/rtc/rtc-armada38x.c
55509 @@ -18,6 +18,7 @@
55510 #include <linux/of.h>
55511 #include <linux/platform_device.h>
55512 #include <linux/rtc.h>
55513 +#include <asm/pgtable.h>
55514
55515 #define RTC_STATUS 0x0
55516 #define RTC_STATUS_ALARM1 BIT(0)
55517 @@ -246,8 +247,10 @@ static __init int armada38x_rtc_probe(struct platform_device *pdev)
55518 * If there is no interrupt available then we can't
55519 * use the alarm
55520 */
55521 - armada38x_rtc_ops.set_alarm = NULL;
55522 - armada38x_rtc_ops.alarm_irq_enable = NULL;
55523 + pax_open_kernel();
55524 + *(void **)&armada38x_rtc_ops.set_alarm = NULL;
55525 + *(void **)&armada38x_rtc_ops.alarm_irq_enable = NULL;
55526 + pax_close_kernel();
55527 }
55528 platform_set_drvdata(pdev, rtc);
55529 if (rtc->irq != -1)
55530 diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
55531 index 8f7034b..2ddd4b3 100644
55532 --- a/drivers/rtc/rtc-cmos.c
55533 +++ b/drivers/rtc/rtc-cmos.c
55534 @@ -735,7 +735,9 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq)
55535 hpet_rtc_timer_init();
55536
55537 /* export at least the first block of NVRAM */
55538 - nvram.size = address_space - NVRAM_OFFSET;
55539 + pax_open_kernel();
55540 + *(size_t *)&nvram.size = address_space - NVRAM_OFFSET;
55541 + pax_close_kernel();
55542 retval = sysfs_create_bin_file(&dev->kobj, &nvram);
55543 if (retval < 0) {
55544 dev_dbg(dev, "can't create nvram file? %d\n", retval);
55545 diff --git a/drivers/rtc/rtc-dev.c b/drivers/rtc/rtc-dev.c
55546 index a6d9434..dc26b71 100644
55547 --- a/drivers/rtc/rtc-dev.c
55548 +++ b/drivers/rtc/rtc-dev.c
55549 @@ -16,6 +16,7 @@
55550 #include <linux/module.h>
55551 #include <linux/rtc.h>
55552 #include <linux/sched.h>
55553 +#include <linux/grsecurity.h>
55554 #include "rtc-core.h"
55555
55556 static dev_t rtc_devt;
55557 @@ -347,6 +348,8 @@ static long rtc_dev_ioctl(struct file *file,
55558 if (copy_from_user(&tm, uarg, sizeof(tm)))
55559 return -EFAULT;
55560
55561 + gr_log_timechange();
55562 +
55563 return rtc_set_time(rtc, &tm);
55564
55565 case RTC_PIE_ON:
55566 diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c
55567 index aa705bb..629dbb4 100644
55568 --- a/drivers/rtc/rtc-ds1307.c
55569 +++ b/drivers/rtc/rtc-ds1307.c
55570 @@ -107,7 +107,7 @@ struct ds1307 {
55571 u8 offset; /* register's offset */
55572 u8 regs[11];
55573 u16 nvram_offset;
55574 - struct bin_attribute *nvram;
55575 + bin_attribute_no_const *nvram;
55576 enum ds_type type;
55577 unsigned long flags;
55578 #define HAS_NVRAM 0 /* bit 0 == sysfs file active */
55579 diff --git a/drivers/rtc/rtc-m48t59.c b/drivers/rtc/rtc-m48t59.c
55580 index d99a705..f8ebd79 100644
55581 --- a/drivers/rtc/rtc-m48t59.c
55582 +++ b/drivers/rtc/rtc-m48t59.c
55583 @@ -485,7 +485,9 @@ static int m48t59_rtc_probe(struct platform_device *pdev)
55584 if (IS_ERR(m48t59->rtc))
55585 return PTR_ERR(m48t59->rtc);
55586
55587 - m48t59_nvram_attr.size = pdata->offset;
55588 + pax_open_kernel();
55589 + *(size_t *)&m48t59_nvram_attr.size = pdata->offset;
55590 + pax_close_kernel();
55591
55592 ret = sysfs_create_bin_file(&pdev->dev.kobj, &m48t59_nvram_attr);
55593 if (ret)
55594 diff --git a/drivers/rtc/rtc-rv8803.c b/drivers/rtc/rtc-rv8803.c
55595 index e7329e2..6160c59 100644
55596 --- a/drivers/rtc/rtc-rv8803.c
55597 +++ b/drivers/rtc/rtc-rv8803.c
55598 @@ -423,6 +423,15 @@ static struct rtc_class_ops rv8803_rtc_ops = {
55599 .ioctl = rv8803_ioctl,
55600 };
55601
55602 +static struct rtc_class_ops rv8803_rtc_alarm_ops = {
55603 + .read_time = rv8803_get_time,
55604 + .set_time = rv8803_set_time,
55605 + .ioctl = rv8803_ioctl,
55606 + .read_alarm = rv8803_get_alarm,
55607 + .set_alarm = rv8803_set_alarm,
55608 + .alarm_irq_enable = rv8803_alarm_irq_enable,
55609 +};
55610 +
55611 static int rv8803_probe(struct i2c_client *client,
55612 const struct i2c_device_id *id)
55613 {
55614 @@ -465,15 +474,11 @@ static int rv8803_probe(struct i2c_client *client,
55615 if (err) {
55616 dev_warn(&client->dev, "unable to request IRQ, alarms disabled\n");
55617 client->irq = 0;
55618 - } else {
55619 - rv8803_rtc_ops.read_alarm = rv8803_get_alarm;
55620 - rv8803_rtc_ops.set_alarm = rv8803_set_alarm;
55621 - rv8803_rtc_ops.alarm_irq_enable = rv8803_alarm_irq_enable;
55622 }
55623 }
55624
55625 rv8803->rtc = devm_rtc_device_register(&client->dev, client->name,
55626 - &rv8803_rtc_ops, THIS_MODULE);
55627 + client->irq > 0 ? &rv8803_rtc_alarm_ops : &rv8803_rtc_ops, THIS_MODULE);
55628 if (IS_ERR(rv8803->rtc)) {
55629 dev_err(&client->dev, "unable to register the class device\n");
55630 return PTR_ERR(rv8803->rtc);
55631 diff --git a/drivers/rtc/rtc-test.c b/drivers/rtc/rtc-test.c
55632 index 3a2da4c..e88493c 100644
55633 --- a/drivers/rtc/rtc-test.c
55634 +++ b/drivers/rtc/rtc-test.c
55635 @@ -112,8 +112,10 @@ static int test_probe(struct platform_device *plat_dev)
55636 struct rtc_device *rtc;
55637
55638 if (test_mmss64) {
55639 - test_rtc_ops.set_mmss64 = test_rtc_set_mmss64;
55640 - test_rtc_ops.set_mmss = NULL;
55641 + pax_open_kernel();
55642 + *(void **)&test_rtc_ops.set_mmss64 = test_rtc_set_mmss64;
55643 + *(void **)&test_rtc_ops.set_mmss = NULL;
55644 + pax_close_kernel();
55645 }
55646
55647 rtc = devm_rtc_device_register(&plat_dev->dev, "test",
55648 diff --git a/drivers/scsi/bfa/bfa_fcpim.h b/drivers/scsi/bfa/bfa_fcpim.h
55649 index e693af6..2e525b6 100644
55650 --- a/drivers/scsi/bfa/bfa_fcpim.h
55651 +++ b/drivers/scsi/bfa/bfa_fcpim.h
55652 @@ -36,7 +36,7 @@ struct bfa_iotag_s {
55653
55654 struct bfa_itn_s {
55655 bfa_isr_func_t isr;
55656 -};
55657 +} __no_const;
55658
55659 void bfa_itn_create(struct bfa_s *bfa, struct bfa_rport_s *rport,
55660 void (*isr)(struct bfa_s *bfa, struct bfi_msg_s *m));
55661 diff --git a/drivers/scsi/bfa/bfa_fcs.c b/drivers/scsi/bfa/bfa_fcs.c
55662 index 0f19455..ef7adb5 100644
55663 --- a/drivers/scsi/bfa/bfa_fcs.c
55664 +++ b/drivers/scsi/bfa/bfa_fcs.c
55665 @@ -38,10 +38,21 @@ struct bfa_fcs_mod_s {
55666 #define BFA_FCS_MODULE(_mod) { _mod ## _modinit, _mod ## _modexit }
55667
55668 static struct bfa_fcs_mod_s fcs_modules[] = {
55669 - { bfa_fcs_port_attach, NULL, NULL },
55670 - { bfa_fcs_uf_attach, NULL, NULL },
55671 - { bfa_fcs_fabric_attach, bfa_fcs_fabric_modinit,
55672 - bfa_fcs_fabric_modexit },
55673 + {
55674 + .attach = bfa_fcs_port_attach,
55675 + .modinit = NULL,
55676 + .modexit = NULL
55677 + },
55678 + {
55679 + .attach = bfa_fcs_uf_attach,
55680 + .modinit = NULL,
55681 + .modexit = NULL
55682 + },
55683 + {
55684 + .attach = bfa_fcs_fabric_attach,
55685 + .modinit = bfa_fcs_fabric_modinit,
55686 + .modexit = bfa_fcs_fabric_modexit
55687 + },
55688 };
55689
55690 /*
55691 diff --git a/drivers/scsi/bfa/bfa_fcs_lport.c b/drivers/scsi/bfa/bfa_fcs_lport.c
55692 index ff75ef8..2dfe00a 100644
55693 --- a/drivers/scsi/bfa/bfa_fcs_lport.c
55694 +++ b/drivers/scsi/bfa/bfa_fcs_lport.c
55695 @@ -89,15 +89,26 @@ static struct {
55696 void (*offline) (struct bfa_fcs_lport_s *port);
55697 } __port_action[] = {
55698 {
55699 - bfa_fcs_lport_unknown_init, bfa_fcs_lport_unknown_online,
55700 - bfa_fcs_lport_unknown_offline}, {
55701 - bfa_fcs_lport_fab_init, bfa_fcs_lport_fab_online,
55702 - bfa_fcs_lport_fab_offline}, {
55703 - bfa_fcs_lport_n2n_init, bfa_fcs_lport_n2n_online,
55704 - bfa_fcs_lport_n2n_offline}, {
55705 - bfa_fcs_lport_loop_init, bfa_fcs_lport_loop_online,
55706 - bfa_fcs_lport_loop_offline},
55707 - };
55708 + .init = bfa_fcs_lport_unknown_init,
55709 + .online = bfa_fcs_lport_unknown_online,
55710 + .offline = bfa_fcs_lport_unknown_offline
55711 + },
55712 + {
55713 + .init = bfa_fcs_lport_fab_init,
55714 + .online = bfa_fcs_lport_fab_online,
55715 + .offline = bfa_fcs_lport_fab_offline
55716 + },
55717 + {
55718 + .init = bfa_fcs_lport_n2n_init,
55719 + .online = bfa_fcs_lport_n2n_online,
55720 + .offline = bfa_fcs_lport_n2n_offline
55721 + },
55722 + {
55723 + .init = bfa_fcs_lport_loop_init,
55724 + .online = bfa_fcs_lport_loop_online,
55725 + .offline = bfa_fcs_lport_loop_offline
55726 + },
55727 +};
55728
55729 /*
55730 * fcs_port_sm FCS logical port state machine
55731 diff --git a/drivers/scsi/bfa/bfa_ioc.h b/drivers/scsi/bfa/bfa_ioc.h
55732 index a38aafa0..fe8f03b 100644
55733 --- a/drivers/scsi/bfa/bfa_ioc.h
55734 +++ b/drivers/scsi/bfa/bfa_ioc.h
55735 @@ -258,7 +258,7 @@ struct bfa_ioc_cbfn_s {
55736 bfa_ioc_disable_cbfn_t disable_cbfn;
55737 bfa_ioc_hbfail_cbfn_t hbfail_cbfn;
55738 bfa_ioc_reset_cbfn_t reset_cbfn;
55739 -};
55740 +} __no_const;
55741
55742 /*
55743 * IOC event notification mechanism.
55744 @@ -352,7 +352,7 @@ struct bfa_ioc_hwif_s {
55745 void (*ioc_set_alt_fwstate) (struct bfa_ioc_s *ioc,
55746 enum bfi_ioc_state fwstate);
55747 enum bfi_ioc_state (*ioc_get_alt_fwstate) (struct bfa_ioc_s *ioc);
55748 -};
55749 +} __no_const;
55750
55751 /*
55752 * Queue element to wait for room in request queue. FIFO order is
55753 diff --git a/drivers/scsi/bfa/bfa_modules.h b/drivers/scsi/bfa/bfa_modules.h
55754 index a14c784..6de6790 100644
55755 --- a/drivers/scsi/bfa/bfa_modules.h
55756 +++ b/drivers/scsi/bfa/bfa_modules.h
55757 @@ -78,12 +78,12 @@ enum {
55758 \
55759 extern struct bfa_module_s hal_mod_ ## __mod; \
55760 struct bfa_module_s hal_mod_ ## __mod = { \
55761 - bfa_ ## __mod ## _meminfo, \
55762 - bfa_ ## __mod ## _attach, \
55763 - bfa_ ## __mod ## _detach, \
55764 - bfa_ ## __mod ## _start, \
55765 - bfa_ ## __mod ## _stop, \
55766 - bfa_ ## __mod ## _iocdisable, \
55767 + .meminfo = bfa_ ## __mod ## _meminfo, \
55768 + .attach = bfa_ ## __mod ## _attach, \
55769 + .detach = bfa_ ## __mod ## _detach, \
55770 + .start = bfa_ ## __mod ## _start, \
55771 + .stop = bfa_ ## __mod ## _stop, \
55772 + .iocdisable = bfa_ ## __mod ## _iocdisable, \
55773 }
55774
55775 #define BFA_CACHELINE_SZ (256)
55776 diff --git a/drivers/scsi/fcoe/fcoe_sysfs.c b/drivers/scsi/fcoe/fcoe_sysfs.c
55777 index 045c4e1..13de803 100644
55778 --- a/drivers/scsi/fcoe/fcoe_sysfs.c
55779 +++ b/drivers/scsi/fcoe/fcoe_sysfs.c
55780 @@ -33,8 +33,8 @@
55781 */
55782 #include "libfcoe.h"
55783
55784 -static atomic_t ctlr_num;
55785 -static atomic_t fcf_num;
55786 +static atomic_unchecked_t ctlr_num;
55787 +static atomic_unchecked_t fcf_num;
55788
55789 /*
55790 * fcoe_fcf_dev_loss_tmo: the default number of seconds that fcoe sysfs
55791 @@ -685,7 +685,7 @@ struct fcoe_ctlr_device *fcoe_ctlr_device_add(struct device *parent,
55792 if (!ctlr)
55793 goto out;
55794
55795 - ctlr->id = atomic_inc_return(&ctlr_num) - 1;
55796 + ctlr->id = atomic_inc_return_unchecked(&ctlr_num) - 1;
55797 ctlr->f = f;
55798 ctlr->mode = FIP_CONN_TYPE_FABRIC;
55799 INIT_LIST_HEAD(&ctlr->fcfs);
55800 @@ -902,7 +902,7 @@ struct fcoe_fcf_device *fcoe_fcf_device_add(struct fcoe_ctlr_device *ctlr,
55801 fcf->dev.parent = &ctlr->dev;
55802 fcf->dev.bus = &fcoe_bus_type;
55803 fcf->dev.type = &fcoe_fcf_device_type;
55804 - fcf->id = atomic_inc_return(&fcf_num) - 1;
55805 + fcf->id = atomic_inc_return_unchecked(&fcf_num) - 1;
55806 fcf->state = FCOE_FCF_STATE_UNKNOWN;
55807
55808 fcf->dev_loss_tmo = ctlr->fcf_dev_loss_tmo;
55809 @@ -938,8 +938,8 @@ int __init fcoe_sysfs_setup(void)
55810 {
55811 int error;
55812
55813 - atomic_set(&ctlr_num, 0);
55814 - atomic_set(&fcf_num, 0);
55815 + atomic_set_unchecked(&ctlr_num, 0);
55816 + atomic_set_unchecked(&fcf_num, 0);
55817
55818 error = bus_register(&fcoe_bus_type);
55819 if (error)
55820 diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
55821 index 82ac1cd..aeee84c 100644
55822 --- a/drivers/scsi/hosts.c
55823 +++ b/drivers/scsi/hosts.c
55824 @@ -42,7 +42,7 @@
55825 #include "scsi_logging.h"
55826
55827
55828 -static atomic_t scsi_host_next_hn = ATOMIC_INIT(0); /* host_no for next new host */
55829 +static atomic_unchecked_t scsi_host_next_hn = ATOMIC_INIT(0); /* host_no for next new host */
55830
55831
55832 static void scsi_host_cls_release(struct device *dev)
55833 @@ -410,7 +410,7 @@ struct Scsi_Host *scsi_host_alloc(struct scsi_host_template *sht, int privsize)
55834 * subtract one because we increment first then return, but we need to
55835 * know what the next host number was before increment
55836 */
55837 - shost->host_no = atomic_inc_return(&scsi_host_next_hn) - 1;
55838 + shost->host_no = atomic_inc_return_unchecked(&scsi_host_next_hn) - 1;
55839 shost->dma_channel = 0xff;
55840
55841 /* These three are default values which can be overridden */
55842 diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
55843 index a386036..03dff12 100644
55844 --- a/drivers/scsi/hpsa.c
55845 +++ b/drivers/scsi/hpsa.c
55846 @@ -916,10 +916,10 @@ static inline u32 next_command(struct ctlr_info *h, u8 q)
55847 struct reply_queue_buffer *rq = &h->reply_queue[q];
55848
55849 if (h->transMethod & CFGTBL_Trans_io_accel1)
55850 - return h->access.command_completed(h, q);
55851 + return h->access->command_completed(h, q);
55852
55853 if (unlikely(!(h->transMethod & CFGTBL_Trans_Performant)))
55854 - return h->access.command_completed(h, q);
55855 + return h->access->command_completed(h, q);
55856
55857 if ((rq->head[rq->current_entry] & 1) == rq->wraparound) {
55858 a = rq->head[rq->current_entry];
55859 @@ -1101,7 +1101,7 @@ static void __enqueue_cmd_and_start_io(struct ctlr_info *h,
55860 break;
55861 default:
55862 set_performant_mode(h, c, reply_queue);
55863 - h->access.submit_command(h, c);
55864 + h->access->submit_command(h, c);
55865 }
55866 }
55867
55868 @@ -6746,17 +6746,17 @@ static void __iomem *remap_pci_mem(ulong base, ulong size)
55869
55870 static inline unsigned long get_next_completion(struct ctlr_info *h, u8 q)
55871 {
55872 - return h->access.command_completed(h, q);
55873 + return h->access->command_completed(h, q);
55874 }
55875
55876 static inline bool interrupt_pending(struct ctlr_info *h)
55877 {
55878 - return h->access.intr_pending(h);
55879 + return h->access->intr_pending(h);
55880 }
55881
55882 static inline long interrupt_not_for_us(struct ctlr_info *h)
55883 {
55884 - return (h->access.intr_pending(h) == 0) ||
55885 + return (h->access->intr_pending(h) == 0) ||
55886 (h->interrupts_enabled == 0);
55887 }
55888
55889 @@ -7684,7 +7684,7 @@ static int hpsa_pci_init(struct ctlr_info *h)
55890 if (prod_index < 0)
55891 return prod_index;
55892 h->product_name = products[prod_index].product_name;
55893 - h->access = *(products[prod_index].access);
55894 + h->access = products[prod_index].access;
55895
55896 h->needs_abort_tags_swizzled =
55897 ctlr_needs_abort_tags_swizzled(h->board_id);
55898 @@ -8083,7 +8083,7 @@ static void controller_lockup_detected(struct ctlr_info *h)
55899 unsigned long flags;
55900 u32 lockup_detected;
55901
55902 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
55903 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
55904 spin_lock_irqsave(&h->lock, flags);
55905 lockup_detected = readl(h->vaddr + SA5_SCRATCHPAD_OFFSET);
55906 if (!lockup_detected) {
55907 @@ -8419,7 +8419,7 @@ reinit_after_soft_reset:
55908 }
55909
55910 /* make sure the board interrupts are off */
55911 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
55912 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
55913
55914 rc = hpsa_request_irqs(h, do_hpsa_intr_msi, do_hpsa_intr_intx);
55915 if (rc)
55916 @@ -8477,7 +8477,7 @@ reinit_after_soft_reset:
55917 * fake ones to scoop up any residual completions.
55918 */
55919 spin_lock_irqsave(&h->lock, flags);
55920 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
55921 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
55922 spin_unlock_irqrestore(&h->lock, flags);
55923 hpsa_free_irqs(h);
55924 rc = hpsa_request_irqs(h, hpsa_msix_discard_completions,
55925 @@ -8507,9 +8507,9 @@ reinit_after_soft_reset:
55926 dev_info(&h->pdev->dev, "Board READY.\n");
55927 dev_info(&h->pdev->dev,
55928 "Waiting for stale completions to drain.\n");
55929 - h->access.set_intr_mask(h, HPSA_INTR_ON);
55930 + h->access->set_intr_mask(h, HPSA_INTR_ON);
55931 msleep(10000);
55932 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
55933 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
55934
55935 rc = controller_reset_failed(h->cfgtable);
55936 if (rc)
55937 @@ -8536,7 +8536,7 @@ reinit_after_soft_reset:
55938
55939
55940 /* Turn the interrupts on so we can service requests */
55941 - h->access.set_intr_mask(h, HPSA_INTR_ON);
55942 + h->access->set_intr_mask(h, HPSA_INTR_ON);
55943
55944 hpsa_hba_inquiry(h);
55945
55946 @@ -8557,7 +8557,7 @@ reinit_after_soft_reset:
55947
55948 clean7: /* perf, sg, cmd, irq, shost, pci, lu, aer/h */
55949 hpsa_free_performant_mode(h);
55950 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
55951 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
55952 clean6: /* sg, cmd, irq, pci, lockup, wq/aer/h */
55953 hpsa_free_sg_chain_blocks(h);
55954 clean5: /* cmd, irq, shost, pci, lu, aer/h */
55955 @@ -8692,7 +8692,7 @@ static void hpsa_shutdown(struct pci_dev *pdev)
55956 * To write all data in the battery backed cache to disks
55957 */
55958 hpsa_flush_cache(h);
55959 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
55960 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
55961 hpsa_free_irqs(h); /* init_one 4 */
55962 hpsa_disable_interrupt_mode(h); /* pci_init 2 */
55963 }
55964 @@ -8834,7 +8834,7 @@ static int hpsa_enter_performant_mode(struct ctlr_info *h, u32 trans_support)
55965 CFGTBL_Trans_enable_directed_msix |
55966 (trans_support & (CFGTBL_Trans_io_accel1 |
55967 CFGTBL_Trans_io_accel2));
55968 - struct access_method access = SA5_performant_access;
55969 + struct access_method *access = &SA5_performant_access;
55970
55971 /* This is a bit complicated. There are 8 registers on
55972 * the controller which we write to to tell it 8 different
55973 @@ -8876,7 +8876,7 @@ static int hpsa_enter_performant_mode(struct ctlr_info *h, u32 trans_support)
55974 * perform the superfluous readl() after each command submission.
55975 */
55976 if (trans_support & (CFGTBL_Trans_io_accel1 | CFGTBL_Trans_io_accel2))
55977 - access = SA5_performant_access_no_read;
55978 + access = &SA5_performant_access_no_read;
55979
55980 /* Controller spec: zero out this buffer. */
55981 for (i = 0; i < h->nreply_queues; i++)
55982 @@ -8906,12 +8906,12 @@ static int hpsa_enter_performant_mode(struct ctlr_info *h, u32 trans_support)
55983 * enable outbound interrupt coalescing in accelerator mode;
55984 */
55985 if (trans_support & CFGTBL_Trans_io_accel1) {
55986 - access = SA5_ioaccel_mode1_access;
55987 + access = &SA5_ioaccel_mode1_access;
55988 writel(10, &h->cfgtable->HostWrite.CoalIntDelay);
55989 writel(4, &h->cfgtable->HostWrite.CoalIntCount);
55990 } else {
55991 if (trans_support & CFGTBL_Trans_io_accel2) {
55992 - access = SA5_ioaccel_mode2_access;
55993 + access = &SA5_ioaccel_mode2_access;
55994 writel(10, &h->cfgtable->HostWrite.CoalIntDelay);
55995 writel(4, &h->cfgtable->HostWrite.CoalIntCount);
55996 }
55997 diff --git a/drivers/scsi/hpsa.h b/drivers/scsi/hpsa.h
55998 index ae5beda..59e7332 100644
55999 --- a/drivers/scsi/hpsa.h
56000 +++ b/drivers/scsi/hpsa.h
56001 @@ -177,7 +177,7 @@ struct ctlr_info {
56002 unsigned int msix_vector;
56003 unsigned int msi_vector;
56004 int intr_mode; /* either PERF_MODE_INT or SIMPLE_MODE_INT */
56005 - struct access_method access;
56006 + struct access_method *access;
56007
56008 /* queue and queue Info */
56009 unsigned int Qdepth;
56010 @@ -577,38 +577,38 @@ static unsigned long SA5_ioaccel_mode1_completed(struct ctlr_info *h, u8 q)
56011 }
56012
56013 static struct access_method SA5_access = {
56014 - SA5_submit_command,
56015 - SA5_intr_mask,
56016 - SA5_intr_pending,
56017 - SA5_completed,
56018 + .submit_command = SA5_submit_command,
56019 + .set_intr_mask = SA5_intr_mask,
56020 + .intr_pending = SA5_intr_pending,
56021 + .command_completed = SA5_completed,
56022 };
56023
56024 static struct access_method SA5_ioaccel_mode1_access = {
56025 - SA5_submit_command,
56026 - SA5_performant_intr_mask,
56027 - SA5_ioaccel_mode1_intr_pending,
56028 - SA5_ioaccel_mode1_completed,
56029 + .submit_command = SA5_submit_command,
56030 + .set_intr_mask = SA5_performant_intr_mask,
56031 + .intr_pending = SA5_ioaccel_mode1_intr_pending,
56032 + .command_completed = SA5_ioaccel_mode1_completed,
56033 };
56034
56035 static struct access_method SA5_ioaccel_mode2_access = {
56036 - SA5_submit_command_ioaccel2,
56037 - SA5_performant_intr_mask,
56038 - SA5_performant_intr_pending,
56039 - SA5_performant_completed,
56040 + .submit_command = SA5_submit_command_ioaccel2,
56041 + .set_intr_mask = SA5_performant_intr_mask,
56042 + .intr_pending = SA5_performant_intr_pending,
56043 + .command_completed = SA5_performant_completed,
56044 };
56045
56046 static struct access_method SA5_performant_access = {
56047 - SA5_submit_command,
56048 - SA5_performant_intr_mask,
56049 - SA5_performant_intr_pending,
56050 - SA5_performant_completed,
56051 + .submit_command = SA5_submit_command,
56052 + .set_intr_mask = SA5_performant_intr_mask,
56053 + .intr_pending = SA5_performant_intr_pending,
56054 + .command_completed = SA5_performant_completed,
56055 };
56056
56057 static struct access_method SA5_performant_access_no_read = {
56058 - SA5_submit_command_no_read,
56059 - SA5_performant_intr_mask,
56060 - SA5_performant_intr_pending,
56061 - SA5_performant_completed,
56062 + .submit_command = SA5_submit_command_no_read,
56063 + .set_intr_mask = SA5_performant_intr_mask,
56064 + .intr_pending = SA5_performant_intr_pending,
56065 + .command_completed = SA5_performant_completed,
56066 };
56067
56068 struct board_type {
56069 diff --git a/drivers/scsi/hptiop.c b/drivers/scsi/hptiop.c
56070 index a83f705..b40c5e6 100644
56071 --- a/drivers/scsi/hptiop.c
56072 +++ b/drivers/scsi/hptiop.c
56073 @@ -1082,7 +1082,6 @@ static const char *hptiop_info(struct Scsi_Host *host)
56074 static int hptiop_reset_hba(struct hptiop_hba *hba)
56075 {
56076 if (atomic_xchg(&hba->resetting, 1) == 0) {
56077 - atomic_inc(&hba->reset_count);
56078 hba->ops->post_msg(hba, IOPMU_INBOUND_MSG0_RESET);
56079 }
56080
56081 @@ -1340,7 +1339,6 @@ static int hptiop_probe(struct pci_dev *pcidev, const struct pci_device_id *id)
56082 hba->iopintf_v2 = 0;
56083
56084 atomic_set(&hba->resetting, 0);
56085 - atomic_set(&hba->reset_count, 0);
56086
56087 init_waitqueue_head(&hba->reset_wq);
56088 init_waitqueue_head(&hba->ioctl_wq);
56089 diff --git a/drivers/scsi/hptiop.h b/drivers/scsi/hptiop.h
56090 index 4d1c511..d5744cb 100644
56091 --- a/drivers/scsi/hptiop.h
56092 +++ b/drivers/scsi/hptiop.h
56093 @@ -330,7 +330,6 @@ struct hptiop_hba {
56094 void *dma_coherent[HPTIOP_MAX_REQUESTS];
56095 dma_addr_t dma_coherent_handle[HPTIOP_MAX_REQUESTS];
56096
56097 - atomic_t reset_count;
56098 atomic_t resetting;
56099
56100 wait_queue_head_t reset_wq;
56101 diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
56102 index 536cd5a..86dbbf2 100644
56103 --- a/drivers/scsi/ipr.c
56104 +++ b/drivers/scsi/ipr.c
56105 @@ -1057,7 +1057,7 @@ static int ipr_get_hrrq_index(struct ipr_ioa_cfg *ioa_cfg)
56106 if (ioa_cfg->hrrq_num == 1)
56107 hrrq = 0;
56108 else {
56109 - hrrq = atomic_add_return(1, &ioa_cfg->hrrq_index);
56110 + hrrq = atomic_add_return_unchecked(1, &ioa_cfg->hrrq_index);
56111 hrrq = (hrrq % (ioa_cfg->hrrq_num - 1)) + 1;
56112 }
56113 return hrrq;
56114 @@ -8103,9 +8103,9 @@ static void ipr_init_ioa_mem(struct ipr_ioa_cfg *ioa_cfg)
56115
56116 ioa_cfg->identify_hrrq_index = 0;
56117 if (ioa_cfg->hrrq_num == 1)
56118 - atomic_set(&ioa_cfg->hrrq_index, 0);
56119 + atomic_set_unchecked(&ioa_cfg->hrrq_index, 0);
56120 else
56121 - atomic_set(&ioa_cfg->hrrq_index, 1);
56122 + atomic_set_unchecked(&ioa_cfg->hrrq_index, 1);
56123
56124 /* Zero out config table */
56125 memset(ioa_cfg->u.cfg_table, 0, ioa_cfg->cfg_table_size);
56126 diff --git a/drivers/scsi/ipr.h b/drivers/scsi/ipr.h
56127 index a34c7a5..797901a 100644
56128 --- a/drivers/scsi/ipr.h
56129 +++ b/drivers/scsi/ipr.h
56130 @@ -1535,7 +1535,7 @@ struct ipr_ioa_cfg {
56131
56132 struct ipr_hrr_queue hrrq[IPR_MAX_HRRQ_NUM];
56133 u32 hrrq_num;
56134 - atomic_t hrrq_index;
56135 + atomic_unchecked_t hrrq_index;
56136 u16 identify_hrrq_index;
56137
56138 struct ipr_bus_attributes bus_attr[IPR_MAX_NUM_BUSES];
56139 diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c
56140 index 30f9ef0..a1e29ac 100644
56141 --- a/drivers/scsi/libfc/fc_exch.c
56142 +++ b/drivers/scsi/libfc/fc_exch.c
56143 @@ -101,12 +101,12 @@ struct fc_exch_mgr {
56144 u16 pool_max_index;
56145
56146 struct {
56147 - atomic_t no_free_exch;
56148 - atomic_t no_free_exch_xid;
56149 - atomic_t xid_not_found;
56150 - atomic_t xid_busy;
56151 - atomic_t seq_not_found;
56152 - atomic_t non_bls_resp;
56153 + atomic_unchecked_t no_free_exch;
56154 + atomic_unchecked_t no_free_exch_xid;
56155 + atomic_unchecked_t xid_not_found;
56156 + atomic_unchecked_t xid_busy;
56157 + atomic_unchecked_t seq_not_found;
56158 + atomic_unchecked_t non_bls_resp;
56159 } stats;
56160 };
56161
56162 @@ -809,7 +809,7 @@ static struct fc_exch *fc_exch_em_alloc(struct fc_lport *lport,
56163 /* allocate memory for exchange */
56164 ep = mempool_alloc(mp->ep_pool, GFP_ATOMIC);
56165 if (!ep) {
56166 - atomic_inc(&mp->stats.no_free_exch);
56167 + atomic_inc_unchecked(&mp->stats.no_free_exch);
56168 goto out;
56169 }
56170 memset(ep, 0, sizeof(*ep));
56171 @@ -872,7 +872,7 @@ out:
56172 return ep;
56173 err:
56174 spin_unlock_bh(&pool->lock);
56175 - atomic_inc(&mp->stats.no_free_exch_xid);
56176 + atomic_inc_unchecked(&mp->stats.no_free_exch_xid);
56177 mempool_free(ep, mp->ep_pool);
56178 return NULL;
56179 }
56180 @@ -1021,7 +1021,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
56181 xid = ntohs(fh->fh_ox_id); /* we originated exch */
56182 ep = fc_exch_find(mp, xid);
56183 if (!ep) {
56184 - atomic_inc(&mp->stats.xid_not_found);
56185 + atomic_inc_unchecked(&mp->stats.xid_not_found);
56186 reject = FC_RJT_OX_ID;
56187 goto out;
56188 }
56189 @@ -1051,7 +1051,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
56190 ep = fc_exch_find(mp, xid);
56191 if ((f_ctl & FC_FC_FIRST_SEQ) && fc_sof_is_init(fr_sof(fp))) {
56192 if (ep) {
56193 - atomic_inc(&mp->stats.xid_busy);
56194 + atomic_inc_unchecked(&mp->stats.xid_busy);
56195 reject = FC_RJT_RX_ID;
56196 goto rel;
56197 }
56198 @@ -1062,7 +1062,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
56199 }
56200 xid = ep->xid; /* get our XID */
56201 } else if (!ep) {
56202 - atomic_inc(&mp->stats.xid_not_found);
56203 + atomic_inc_unchecked(&mp->stats.xid_not_found);
56204 reject = FC_RJT_RX_ID; /* XID not found */
56205 goto out;
56206 }
56207 @@ -1080,7 +1080,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
56208 } else {
56209 sp = &ep->seq;
56210 if (sp->id != fh->fh_seq_id) {
56211 - atomic_inc(&mp->stats.seq_not_found);
56212 + atomic_inc_unchecked(&mp->stats.seq_not_found);
56213 if (f_ctl & FC_FC_END_SEQ) {
56214 /*
56215 * Update sequence_id based on incoming last
56216 @@ -1531,22 +1531,22 @@ static void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
56217
56218 ep = fc_exch_find(mp, ntohs(fh->fh_ox_id));
56219 if (!ep) {
56220 - atomic_inc(&mp->stats.xid_not_found);
56221 + atomic_inc_unchecked(&mp->stats.xid_not_found);
56222 goto out;
56223 }
56224 if (ep->esb_stat & ESB_ST_COMPLETE) {
56225 - atomic_inc(&mp->stats.xid_not_found);
56226 + atomic_inc_unchecked(&mp->stats.xid_not_found);
56227 goto rel;
56228 }
56229 if (ep->rxid == FC_XID_UNKNOWN)
56230 ep->rxid = ntohs(fh->fh_rx_id);
56231 if (ep->sid != 0 && ep->sid != ntoh24(fh->fh_d_id)) {
56232 - atomic_inc(&mp->stats.xid_not_found);
56233 + atomic_inc_unchecked(&mp->stats.xid_not_found);
56234 goto rel;
56235 }
56236 if (ep->did != ntoh24(fh->fh_s_id) &&
56237 ep->did != FC_FID_FLOGI) {
56238 - atomic_inc(&mp->stats.xid_not_found);
56239 + atomic_inc_unchecked(&mp->stats.xid_not_found);
56240 goto rel;
56241 }
56242 sof = fr_sof(fp);
56243 @@ -1555,7 +1555,7 @@ static void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
56244 sp->ssb_stat |= SSB_ST_RESP;
56245 sp->id = fh->fh_seq_id;
56246 } else if (sp->id != fh->fh_seq_id) {
56247 - atomic_inc(&mp->stats.seq_not_found);
56248 + atomic_inc_unchecked(&mp->stats.seq_not_found);
56249 goto rel;
56250 }
56251
56252 @@ -1618,9 +1618,9 @@ static void fc_exch_recv_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
56253 sp = fc_seq_lookup_orig(mp, fp); /* doesn't hold sequence */
56254
56255 if (!sp)
56256 - atomic_inc(&mp->stats.xid_not_found);
56257 + atomic_inc_unchecked(&mp->stats.xid_not_found);
56258 else
56259 - atomic_inc(&mp->stats.non_bls_resp);
56260 + atomic_inc_unchecked(&mp->stats.non_bls_resp);
56261
56262 fc_frame_free(fp);
56263 }
56264 @@ -2261,13 +2261,13 @@ void fc_exch_update_stats(struct fc_lport *lport)
56265
56266 list_for_each_entry(ema, &lport->ema_list, ema_list) {
56267 mp = ema->mp;
56268 - st->fc_no_free_exch += atomic_read(&mp->stats.no_free_exch);
56269 + st->fc_no_free_exch += atomic_read_unchecked(&mp->stats.no_free_exch);
56270 st->fc_no_free_exch_xid +=
56271 - atomic_read(&mp->stats.no_free_exch_xid);
56272 - st->fc_xid_not_found += atomic_read(&mp->stats.xid_not_found);
56273 - st->fc_xid_busy += atomic_read(&mp->stats.xid_busy);
56274 - st->fc_seq_not_found += atomic_read(&mp->stats.seq_not_found);
56275 - st->fc_non_bls_resp += atomic_read(&mp->stats.non_bls_resp);
56276 + atomic_read_unchecked(&mp->stats.no_free_exch_xid);
56277 + st->fc_xid_not_found += atomic_read_unchecked(&mp->stats.xid_not_found);
56278 + st->fc_xid_busy += atomic_read_unchecked(&mp->stats.xid_busy);
56279 + st->fc_seq_not_found += atomic_read_unchecked(&mp->stats.seq_not_found);
56280 + st->fc_non_bls_resp += atomic_read_unchecked(&mp->stats.non_bls_resp);
56281 }
56282 }
56283 EXPORT_SYMBOL(fc_exch_update_stats);
56284 diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
56285 index 9c706d8..d3e3ed2 100644
56286 --- a/drivers/scsi/libsas/sas_ata.c
56287 +++ b/drivers/scsi/libsas/sas_ata.c
56288 @@ -535,7 +535,7 @@ static struct ata_port_operations sas_sata_ops = {
56289 .postreset = ata_std_postreset,
56290 .error_handler = ata_std_error_handler,
56291 .post_internal_cmd = sas_ata_post_internal,
56292 - .qc_defer = ata_std_qc_defer,
56293 + .qc_defer = ata_std_qc_defer,
56294 .qc_prep = ata_noop_qc_prep,
56295 .qc_issue = sas_ata_qc_issue,
56296 .qc_fill_rtf = sas_ata_qc_fill_rtf,
56297 diff --git a/drivers/scsi/lpfc/lpfc.h b/drivers/scsi/lpfc/lpfc.h
56298 index ceee9a3..59939c5 100644
56299 --- a/drivers/scsi/lpfc/lpfc.h
56300 +++ b/drivers/scsi/lpfc/lpfc.h
56301 @@ -435,7 +435,7 @@ struct lpfc_vport {
56302 struct dentry *debug_nodelist;
56303 struct dentry *vport_debugfs_root;
56304 struct lpfc_debugfs_trc *disc_trc;
56305 - atomic_t disc_trc_cnt;
56306 + atomic_unchecked_t disc_trc_cnt;
56307 #endif
56308 uint8_t stat_data_enabled;
56309 uint8_t stat_data_blocked;
56310 @@ -887,8 +887,8 @@ struct lpfc_hba {
56311 struct timer_list fabric_block_timer;
56312 unsigned long bit_flags;
56313 #define FABRIC_COMANDS_BLOCKED 0
56314 - atomic_t num_rsrc_err;
56315 - atomic_t num_cmd_success;
56316 + atomic_unchecked_t num_rsrc_err;
56317 + atomic_unchecked_t num_cmd_success;
56318 unsigned long last_rsrc_error_time;
56319 unsigned long last_ramp_down_time;
56320 #ifdef CONFIG_SCSI_LPFC_DEBUG_FS
56321 @@ -923,7 +923,7 @@ struct lpfc_hba {
56322
56323 struct dentry *debug_slow_ring_trc;
56324 struct lpfc_debugfs_trc *slow_ring_trc;
56325 - atomic_t slow_ring_trc_cnt;
56326 + atomic_unchecked_t slow_ring_trc_cnt;
56327 /* iDiag debugfs sub-directory */
56328 struct dentry *idiag_root;
56329 struct dentry *idiag_pci_cfg;
56330 diff --git a/drivers/scsi/lpfc/lpfc_debugfs.c b/drivers/scsi/lpfc/lpfc_debugfs.c
56331 index 25aa9b9..d700a65 100644
56332 --- a/drivers/scsi/lpfc/lpfc_debugfs.c
56333 +++ b/drivers/scsi/lpfc/lpfc_debugfs.c
56334 @@ -106,7 +106,7 @@ MODULE_PARM_DESC(lpfc_debugfs_mask_disc_trc,
56335
56336 #include <linux/debugfs.h>
56337
56338 -static atomic_t lpfc_debugfs_seq_trc_cnt = ATOMIC_INIT(0);
56339 +static atomic_unchecked_t lpfc_debugfs_seq_trc_cnt = ATOMIC_INIT(0);
56340 static unsigned long lpfc_debugfs_start_time = 0L;
56341
56342 /* iDiag */
56343 @@ -147,7 +147,7 @@ lpfc_debugfs_disc_trc_data(struct lpfc_vport *vport, char *buf, int size)
56344 lpfc_debugfs_enable = 0;
56345
56346 len = 0;
56347 - index = (atomic_read(&vport->disc_trc_cnt) + 1) &
56348 + index = (atomic_read_unchecked(&vport->disc_trc_cnt) + 1) &
56349 (lpfc_debugfs_max_disc_trc - 1);
56350 for (i = index; i < lpfc_debugfs_max_disc_trc; i++) {
56351 dtp = vport->disc_trc + i;
56352 @@ -213,7 +213,7 @@ lpfc_debugfs_slow_ring_trc_data(struct lpfc_hba *phba, char *buf, int size)
56353 lpfc_debugfs_enable = 0;
56354
56355 len = 0;
56356 - index = (atomic_read(&phba->slow_ring_trc_cnt) + 1) &
56357 + index = (atomic_read_unchecked(&phba->slow_ring_trc_cnt) + 1) &
56358 (lpfc_debugfs_max_slow_ring_trc - 1);
56359 for (i = index; i < lpfc_debugfs_max_slow_ring_trc; i++) {
56360 dtp = phba->slow_ring_trc + i;
56361 @@ -646,14 +646,14 @@ lpfc_debugfs_disc_trc(struct lpfc_vport *vport, int mask, char *fmt,
56362 !vport || !vport->disc_trc)
56363 return;
56364
56365 - index = atomic_inc_return(&vport->disc_trc_cnt) &
56366 + index = atomic_inc_return_unchecked(&vport->disc_trc_cnt) &
56367 (lpfc_debugfs_max_disc_trc - 1);
56368 dtp = vport->disc_trc + index;
56369 dtp->fmt = fmt;
56370 dtp->data1 = data1;
56371 dtp->data2 = data2;
56372 dtp->data3 = data3;
56373 - dtp->seq_cnt = atomic_inc_return(&lpfc_debugfs_seq_trc_cnt);
56374 + dtp->seq_cnt = atomic_inc_return_unchecked(&lpfc_debugfs_seq_trc_cnt);
56375 dtp->jif = jiffies;
56376 #endif
56377 return;
56378 @@ -684,14 +684,14 @@ lpfc_debugfs_slow_ring_trc(struct lpfc_hba *phba, char *fmt,
56379 !phba || !phba->slow_ring_trc)
56380 return;
56381
56382 - index = atomic_inc_return(&phba->slow_ring_trc_cnt) &
56383 + index = atomic_inc_return_unchecked(&phba->slow_ring_trc_cnt) &
56384 (lpfc_debugfs_max_slow_ring_trc - 1);
56385 dtp = phba->slow_ring_trc + index;
56386 dtp->fmt = fmt;
56387 dtp->data1 = data1;
56388 dtp->data2 = data2;
56389 dtp->data3 = data3;
56390 - dtp->seq_cnt = atomic_inc_return(&lpfc_debugfs_seq_trc_cnt);
56391 + dtp->seq_cnt = atomic_inc_return_unchecked(&lpfc_debugfs_seq_trc_cnt);
56392 dtp->jif = jiffies;
56393 #endif
56394 return;
56395 @@ -4268,7 +4268,7 @@ lpfc_debugfs_initialize(struct lpfc_vport *vport)
56396 "slow_ring buffer\n");
56397 goto debug_failed;
56398 }
56399 - atomic_set(&phba->slow_ring_trc_cnt, 0);
56400 + atomic_set_unchecked(&phba->slow_ring_trc_cnt, 0);
56401 memset(phba->slow_ring_trc, 0,
56402 (sizeof(struct lpfc_debugfs_trc) *
56403 lpfc_debugfs_max_slow_ring_trc));
56404 @@ -4314,7 +4314,7 @@ lpfc_debugfs_initialize(struct lpfc_vport *vport)
56405 "buffer\n");
56406 goto debug_failed;
56407 }
56408 - atomic_set(&vport->disc_trc_cnt, 0);
56409 + atomic_set_unchecked(&vport->disc_trc_cnt, 0);
56410
56411 snprintf(name, sizeof(name), "discovery_trace");
56412 vport->debug_disc_trc =
56413 diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
56414 index db9446c..627edd4 100644
56415 --- a/drivers/scsi/lpfc/lpfc_init.c
56416 +++ b/drivers/scsi/lpfc/lpfc_init.c
56417 @@ -11425,8 +11425,10 @@ lpfc_init(void)
56418 "misc_register returned with status %d", error);
56419
56420 if (lpfc_enable_npiv) {
56421 - lpfc_transport_functions.vport_create = lpfc_vport_create;
56422 - lpfc_transport_functions.vport_delete = lpfc_vport_delete;
56423 + pax_open_kernel();
56424 + *(void **)&lpfc_transport_functions.vport_create = lpfc_vport_create;
56425 + *(void **)&lpfc_transport_functions.vport_delete = lpfc_vport_delete;
56426 + pax_close_kernel();
56427 }
56428 lpfc_transport_template =
56429 fc_attach_transport(&lpfc_transport_functions);
56430 diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
56431 index 4679ed4..4ddcfea 100644
56432 --- a/drivers/scsi/lpfc/lpfc_scsi.c
56433 +++ b/drivers/scsi/lpfc/lpfc_scsi.c
56434 @@ -261,7 +261,7 @@ lpfc_rampdown_queue_depth(struct lpfc_hba *phba)
56435 unsigned long expires;
56436
56437 spin_lock_irqsave(&phba->hbalock, flags);
56438 - atomic_inc(&phba->num_rsrc_err);
56439 + atomic_inc_unchecked(&phba->num_rsrc_err);
56440 phba->last_rsrc_error_time = jiffies;
56441
56442 expires = phba->last_ramp_down_time + QUEUE_RAMP_DOWN_INTERVAL;
56443 @@ -303,8 +303,8 @@ lpfc_ramp_down_queue_handler(struct lpfc_hba *phba)
56444 unsigned long num_rsrc_err, num_cmd_success;
56445 int i;
56446
56447 - num_rsrc_err = atomic_read(&phba->num_rsrc_err);
56448 - num_cmd_success = atomic_read(&phba->num_cmd_success);
56449 + num_rsrc_err = atomic_read_unchecked(&phba->num_rsrc_err);
56450 + num_cmd_success = atomic_read_unchecked(&phba->num_cmd_success);
56451
56452 /*
56453 * The error and success command counters are global per
56454 @@ -331,8 +331,8 @@ lpfc_ramp_down_queue_handler(struct lpfc_hba *phba)
56455 }
56456 }
56457 lpfc_destroy_vport_work_array(phba, vports);
56458 - atomic_set(&phba->num_rsrc_err, 0);
56459 - atomic_set(&phba->num_cmd_success, 0);
56460 + atomic_set_unchecked(&phba->num_rsrc_err, 0);
56461 + atomic_set_unchecked(&phba->num_cmd_success, 0);
56462 }
56463
56464 /**
56465 diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h
56466 index c0f7c8c..2903f29 100644
56467 --- a/drivers/scsi/megaraid/megaraid_sas.h
56468 +++ b/drivers/scsi/megaraid/megaraid_sas.h
56469 @@ -1742,7 +1742,7 @@ struct megasas_instance {
56470 s8 init_id;
56471
56472 u16 max_num_sge;
56473 - u16 max_fw_cmds;
56474 + u16 max_fw_cmds __intentional_overflow(-1);
56475 u16 max_mfi_cmds;
56476 u16 max_scsi_cmds;
56477 u32 max_sectors_per_req;
56478 diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c
56479 index b2a88200..f469ddd 100644
56480 --- a/drivers/scsi/pmcraid.c
56481 +++ b/drivers/scsi/pmcraid.c
56482 @@ -201,8 +201,8 @@ static int pmcraid_slave_alloc(struct scsi_device *scsi_dev)
56483 res->scsi_dev = scsi_dev;
56484 scsi_dev->hostdata = res;
56485 res->change_detected = 0;
56486 - atomic_set(&res->read_failures, 0);
56487 - atomic_set(&res->write_failures, 0);
56488 + atomic_set_unchecked(&res->read_failures, 0);
56489 + atomic_set_unchecked(&res->write_failures, 0);
56490 rc = 0;
56491 }
56492 spin_unlock_irqrestore(&pinstance->resource_lock, lock_flags);
56493 @@ -2641,9 +2641,9 @@ static int pmcraid_error_handler(struct pmcraid_cmd *cmd)
56494
56495 /* If this was a SCSI read/write command keep count of errors */
56496 if (SCSI_CMD_TYPE(scsi_cmd->cmnd[0]) == SCSI_READ_CMD)
56497 - atomic_inc(&res->read_failures);
56498 + atomic_inc_unchecked(&res->read_failures);
56499 else if (SCSI_CMD_TYPE(scsi_cmd->cmnd[0]) == SCSI_WRITE_CMD)
56500 - atomic_inc(&res->write_failures);
56501 + atomic_inc_unchecked(&res->write_failures);
56502
56503 if (!RES_IS_GSCSI(res->cfg_entry) &&
56504 masked_ioasc != PMCRAID_IOASC_HW_DEVICE_BUS_STATUS_ERROR) {
56505 @@ -3469,7 +3469,7 @@ static int pmcraid_queuecommand_lck(
56506 * block of scsi_cmd which is re-used (e.g. cancel/abort), which uses
56507 * hrrq_id assigned here in queuecommand
56508 */
56509 - ioarcb->hrrq_id = atomic_add_return(1, &(pinstance->last_message_id)) %
56510 + ioarcb->hrrq_id = atomic_add_return_unchecked(1, &(pinstance->last_message_id)) %
56511 pinstance->num_hrrq;
56512 cmd->cmd_done = pmcraid_io_done;
56513
56514 @@ -3783,7 +3783,7 @@ static long pmcraid_ioctl_passthrough(
56515 * block of scsi_cmd which is re-used (e.g. cancel/abort), which uses
56516 * hrrq_id assigned here in queuecommand
56517 */
56518 - ioarcb->hrrq_id = atomic_add_return(1, &(pinstance->last_message_id)) %
56519 + ioarcb->hrrq_id = atomic_add_return_unchecked(1, &(pinstance->last_message_id)) %
56520 pinstance->num_hrrq;
56521
56522 if (request_size) {
56523 @@ -4420,7 +4420,7 @@ static void pmcraid_worker_function(struct work_struct *workp)
56524
56525 pinstance = container_of(workp, struct pmcraid_instance, worker_q);
56526 /* add resources only after host is added into system */
56527 - if (!atomic_read(&pinstance->expose_resources))
56528 + if (!atomic_read_unchecked(&pinstance->expose_resources))
56529 return;
56530
56531 fw_version = be16_to_cpu(pinstance->inq_data->fw_version);
56532 @@ -5237,8 +5237,8 @@ static int pmcraid_init_instance(struct pci_dev *pdev, struct Scsi_Host *host,
56533 init_waitqueue_head(&pinstance->reset_wait_q);
56534
56535 atomic_set(&pinstance->outstanding_cmds, 0);
56536 - atomic_set(&pinstance->last_message_id, 0);
56537 - atomic_set(&pinstance->expose_resources, 0);
56538 + atomic_set_unchecked(&pinstance->last_message_id, 0);
56539 + atomic_set_unchecked(&pinstance->expose_resources, 0);
56540
56541 INIT_LIST_HEAD(&pinstance->free_res_q);
56542 INIT_LIST_HEAD(&pinstance->used_res_q);
56543 @@ -5949,7 +5949,7 @@ static int pmcraid_probe(struct pci_dev *pdev,
56544 /* Schedule worker thread to handle CCN and take care of adding and
56545 * removing devices to OS
56546 */
56547 - atomic_set(&pinstance->expose_resources, 1);
56548 + atomic_set_unchecked(&pinstance->expose_resources, 1);
56549 schedule_work(&pinstance->worker_q);
56550 return rc;
56551
56552 diff --git a/drivers/scsi/pmcraid.h b/drivers/scsi/pmcraid.h
56553 index e1d150f..6c6df44 100644
56554 --- a/drivers/scsi/pmcraid.h
56555 +++ b/drivers/scsi/pmcraid.h
56556 @@ -748,7 +748,7 @@ struct pmcraid_instance {
56557 struct pmcraid_isr_param hrrq_vector[PMCRAID_NUM_MSIX_VECTORS];
56558
56559 /* Message id as filled in last fired IOARCB, used to identify HRRQ */
56560 - atomic_t last_message_id;
56561 + atomic_unchecked_t last_message_id;
56562
56563 /* configuration table */
56564 struct pmcraid_config_table *cfg_table;
56565 @@ -777,7 +777,7 @@ struct pmcraid_instance {
56566 atomic_t outstanding_cmds;
56567
56568 /* should add/delete resources to mid-layer now ?*/
56569 - atomic_t expose_resources;
56570 + atomic_unchecked_t expose_resources;
56571
56572
56573
56574 @@ -813,8 +813,8 @@ struct pmcraid_resource_entry {
56575 struct pmcraid_config_table_entry_ext cfg_entry_ext;
56576 };
56577 struct scsi_device *scsi_dev; /* Link scsi_device structure */
56578 - atomic_t read_failures; /* count of failed READ commands */
56579 - atomic_t write_failures; /* count of failed WRITE commands */
56580 + atomic_unchecked_t read_failures; /* count of failed READ commands */
56581 + atomic_unchecked_t write_failures; /* count of failed WRITE commands */
56582
56583 /* To indicate add/delete/modify during CCN */
56584 u8 change_detected;
56585 diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c
56586 index 6b942d9..cd44452 100644
56587 --- a/drivers/scsi/qla2xxx/qla_attr.c
56588 +++ b/drivers/scsi/qla2xxx/qla_attr.c
56589 @@ -2206,7 +2206,7 @@ qla24xx_vport_disable(struct fc_vport *fc_vport, bool disable)
56590 return 0;
56591 }
56592
56593 -struct fc_function_template qla2xxx_transport_functions = {
56594 +fc_function_template_no_const qla2xxx_transport_functions = {
56595
56596 .show_host_node_name = 1,
56597 .show_host_port_name = 1,
56598 @@ -2254,7 +2254,7 @@ struct fc_function_template qla2xxx_transport_functions = {
56599 .bsg_timeout = qla24xx_bsg_timeout,
56600 };
56601
56602 -struct fc_function_template qla2xxx_transport_vport_functions = {
56603 +fc_function_template_no_const qla2xxx_transport_vport_functions = {
56604
56605 .show_host_node_name = 1,
56606 .show_host_port_name = 1,
56607 diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
56608 index 7686bfe..4710893 100644
56609 --- a/drivers/scsi/qla2xxx/qla_gbl.h
56610 +++ b/drivers/scsi/qla2xxx/qla_gbl.h
56611 @@ -571,8 +571,8 @@ extern void qla2x00_get_sym_node_name(scsi_qla_host_t *, uint8_t *, size_t);
56612 struct device_attribute;
56613 extern struct device_attribute *qla2x00_host_attrs[];
56614 struct fc_function_template;
56615 -extern struct fc_function_template qla2xxx_transport_functions;
56616 -extern struct fc_function_template qla2xxx_transport_vport_functions;
56617 +extern fc_function_template_no_const qla2xxx_transport_functions;
56618 +extern fc_function_template_no_const qla2xxx_transport_vport_functions;
56619 extern void qla2x00_alloc_sysfs_attr(scsi_qla_host_t *);
56620 extern void qla2x00_free_sysfs_attr(scsi_qla_host_t *, bool);
56621 extern void qla2x00_init_host_attr(scsi_qla_host_t *);
56622 diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
56623 index fc6674d..8f3aa03 100644
56624 --- a/drivers/scsi/qla2xxx/qla_os.c
56625 +++ b/drivers/scsi/qla2xxx/qla_os.c
56626 @@ -1429,8 +1429,10 @@ qla2x00_config_dma_addressing(struct qla_hw_data *ha)
56627 !pci_set_consistent_dma_mask(ha->pdev, DMA_BIT_MASK(64))) {
56628 /* Ok, a 64bit DMA mask is applicable. */
56629 ha->flags.enable_64bit_addressing = 1;
56630 - ha->isp_ops->calc_req_entries = qla2x00_calc_iocbs_64;
56631 - ha->isp_ops->build_iocbs = qla2x00_build_scsi_iocbs_64;
56632 + pax_open_kernel();
56633 + *(void **)&ha->isp_ops->calc_req_entries = qla2x00_calc_iocbs_64;
56634 + *(void **)&ha->isp_ops->build_iocbs = qla2x00_build_scsi_iocbs_64;
56635 + pax_close_kernel();
56636 return;
56637 }
56638 }
56639 diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c
56640 index 75514a1..8526741 100644
56641 --- a/drivers/scsi/qla2xxx/qla_target.c
56642 +++ b/drivers/scsi/qla2xxx/qla_target.c
56643 @@ -506,7 +506,7 @@ static int qlt_reset(struct scsi_qla_host *vha, void *iocb, int mcmd)
56644 loop_id = le16_to_cpu(n->u.isp24.nport_handle);
56645 if (loop_id == 0xFFFF) {
56646 /* Global event */
56647 - atomic_inc(&vha->vha_tgt.qla_tgt->tgt_global_resets_count);
56648 + atomic_inc_unchecked(&vha->vha_tgt.qla_tgt->tgt_global_resets_count);
56649 qlt_clear_tgt_db(vha->vha_tgt.qla_tgt);
56650 #if 0 /* FIXME: do we need to choose a session here? */
56651 if (!list_empty(&ha->tgt.qla_tgt->sess_list)) {
56652 @@ -5536,7 +5536,7 @@ static struct qla_tgt_sess *qlt_make_local_sess(struct scsi_qla_host *vha,
56653
56654 retry:
56655 global_resets =
56656 - atomic_read(&vha->vha_tgt.qla_tgt->tgt_global_resets_count);
56657 + atomic_read_unchecked(&vha->vha_tgt.qla_tgt->tgt_global_resets_count);
56658
56659 rc = qla24xx_get_loop_id(vha, s_id, &loop_id);
56660 if (rc != 0) {
56661 @@ -5563,12 +5563,12 @@ retry:
56662 return NULL;
56663
56664 if (global_resets !=
56665 - atomic_read(&vha->vha_tgt.qla_tgt->tgt_global_resets_count)) {
56666 + atomic_read_unchecked(&vha->vha_tgt.qla_tgt->tgt_global_resets_count)) {
56667 ql_dbg(ql_dbg_tgt_mgt, vha, 0xf043,
56668 "qla_target(%d): global reset during session discovery "
56669 "(counter was %d, new %d), retrying", vha->vp_idx,
56670 global_resets,
56671 - atomic_read(&vha->vha_tgt.
56672 + atomic_read_unchecked(&vha->vha_tgt.
56673 qla_tgt->tgt_global_resets_count));
56674 goto retry;
56675 }
56676 @@ -5784,7 +5784,7 @@ int qlt_add_target(struct qla_hw_data *ha, struct scsi_qla_host *base_vha)
56677 INIT_LIST_HEAD(&tgt->srr_ctio_list);
56678 INIT_LIST_HEAD(&tgt->srr_imm_list);
56679 INIT_WORK(&tgt->srr_work, qlt_handle_srr_work);
56680 - atomic_set(&tgt->tgt_global_resets_count, 0);
56681 + atomic_set_unchecked(&tgt->tgt_global_resets_count, 0);
56682
56683 base_vha->vha_tgt.qla_tgt = tgt;
56684
56685 diff --git a/drivers/scsi/qla2xxx/qla_target.h b/drivers/scsi/qla2xxx/qla_target.h
56686 index bca584a..9cb3ed9 100644
56687 --- a/drivers/scsi/qla2xxx/qla_target.h
56688 +++ b/drivers/scsi/qla2xxx/qla_target.h
56689 @@ -876,7 +876,7 @@ struct qla_tgt {
56690 struct list_head srr_imm_list;
56691 struct work_struct srr_work;
56692
56693 - atomic_t tgt_global_resets_count;
56694 + atomic_unchecked_t tgt_global_resets_count;
56695
56696 struct list_head tgt_list_entry;
56697 };
56698 diff --git a/drivers/scsi/qla4xxx/ql4_def.h b/drivers/scsi/qla4xxx/ql4_def.h
56699 index a7cfc27..151f483 100644
56700 --- a/drivers/scsi/qla4xxx/ql4_def.h
56701 +++ b/drivers/scsi/qla4xxx/ql4_def.h
56702 @@ -306,7 +306,7 @@ struct ddb_entry {
56703 * (4000 only) */
56704 atomic_t relogin_timer; /* Max Time to wait for
56705 * relogin to complete */
56706 - atomic_t relogin_retry_count; /* Num of times relogin has been
56707 + atomic_unchecked_t relogin_retry_count; /* Num of times relogin has been
56708 * retried */
56709 uint32_t default_time2wait; /* Default Min time between
56710 * relogins (+aens) */
56711 diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
56712 index 01c3610..3e92008 100644
56713 --- a/drivers/scsi/qla4xxx/ql4_os.c
56714 +++ b/drivers/scsi/qla4xxx/ql4_os.c
56715 @@ -4490,12 +4490,12 @@ static void qla4xxx_check_relogin_flash_ddb(struct iscsi_cls_session *cls_sess)
56716 */
56717 if (!iscsi_is_session_online(cls_sess)) {
56718 /* Reset retry relogin timer */
56719 - atomic_inc(&ddb_entry->relogin_retry_count);
56720 + atomic_inc_unchecked(&ddb_entry->relogin_retry_count);
56721 DEBUG2(ql4_printk(KERN_INFO, ha,
56722 "%s: index[%d] relogin timed out-retrying"
56723 " relogin (%d), retry (%d)\n", __func__,
56724 ddb_entry->fw_ddb_index,
56725 - atomic_read(&ddb_entry->relogin_retry_count),
56726 + atomic_read_unchecked(&ddb_entry->relogin_retry_count),
56727 ddb_entry->default_time2wait + 4));
56728 set_bit(DPC_RELOGIN_DEVICE, &ha->dpc_flags);
56729 atomic_set(&ddb_entry->retry_relogin_timer,
56730 @@ -6603,7 +6603,7 @@ static void qla4xxx_setup_flash_ddb_entry(struct scsi_qla_host *ha,
56731
56732 atomic_set(&ddb_entry->retry_relogin_timer, INVALID_ENTRY);
56733 atomic_set(&ddb_entry->relogin_timer, 0);
56734 - atomic_set(&ddb_entry->relogin_retry_count, 0);
56735 + atomic_set_unchecked(&ddb_entry->relogin_retry_count, 0);
56736 def_timeout = le16_to_cpu(ddb_entry->fw_ddb_entry.def_timeout);
56737 ddb_entry->default_relogin_timeout =
56738 (def_timeout > LOGIN_TOV) && (def_timeout < LOGIN_TOV * 10) ?
56739 diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
56740 index d07fb65..4a162c0 100644
56741 --- a/drivers/scsi/scsi.c
56742 +++ b/drivers/scsi/scsi.c
56743 @@ -591,7 +591,7 @@ void scsi_finish_command(struct scsi_cmnd *cmd)
56744
56745 good_bytes = scsi_bufflen(cmd);
56746 if (cmd->request->cmd_type != REQ_TYPE_BLOCK_PC) {
56747 - int old_good_bytes = good_bytes;
56748 + unsigned int old_good_bytes = good_bytes;
56749 drv = scsi_cmd_to_driver(cmd);
56750 if (drv->done)
56751 good_bytes = drv->done(cmd);
56752 diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
56753 index dd8ad2a..5c5a30c 100644
56754 --- a/drivers/scsi/scsi_lib.c
56755 +++ b/drivers/scsi/scsi_lib.c
56756 @@ -1597,7 +1597,7 @@ static void scsi_kill_request(struct request *req, struct request_queue *q)
56757 shost = sdev->host;
56758 scsi_init_cmd_errh(cmd);
56759 cmd->result = DID_NO_CONNECT << 16;
56760 - atomic_inc(&cmd->device->iorequest_cnt);
56761 + atomic_inc_unchecked(&cmd->device->iorequest_cnt);
56762
56763 /*
56764 * SCSI request completion path will do scsi_device_unbusy(),
56765 @@ -1620,9 +1620,9 @@ static void scsi_softirq_done(struct request *rq)
56766
56767 INIT_LIST_HEAD(&cmd->eh_entry);
56768
56769 - atomic_inc(&cmd->device->iodone_cnt);
56770 + atomic_inc_unchecked(&cmd->device->iodone_cnt);
56771 if (cmd->result)
56772 - atomic_inc(&cmd->device->ioerr_cnt);
56773 + atomic_inc_unchecked(&cmd->device->ioerr_cnt);
56774
56775 disposition = scsi_decide_disposition(cmd);
56776 if (disposition != SUCCESS &&
56777 @@ -1663,7 +1663,7 @@ static int scsi_dispatch_cmd(struct scsi_cmnd *cmd)
56778 struct Scsi_Host *host = cmd->device->host;
56779 int rtn = 0;
56780
56781 - atomic_inc(&cmd->device->iorequest_cnt);
56782 + atomic_inc_unchecked(&cmd->device->iorequest_cnt);
56783
56784 /* check if the device is still usable */
56785 if (unlikely(cmd->device->sdev_state == SDEV_DEL)) {
56786 diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
56787 index c8115b4..c31cd19 100644
56788 --- a/drivers/scsi/scsi_sysfs.c
56789 +++ b/drivers/scsi/scsi_sysfs.c
56790 @@ -813,7 +813,7 @@ show_iostat_##field(struct device *dev, struct device_attribute *attr, \
56791 char *buf) \
56792 { \
56793 struct scsi_device *sdev = to_scsi_device(dev); \
56794 - unsigned long long count = atomic_read(&sdev->field); \
56795 + unsigned long long count = atomic_read_unchecked(&sdev->field); \
56796 return snprintf(buf, 20, "0x%llx\n", count); \
56797 } \
56798 static DEVICE_ATTR(field, S_IRUGO, show_iostat_##field, NULL)
56799 diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c
56800 index 24eaaf6..de30ec9 100644
56801 --- a/drivers/scsi/scsi_transport_fc.c
56802 +++ b/drivers/scsi/scsi_transport_fc.c
56803 @@ -502,7 +502,7 @@ static DECLARE_TRANSPORT_CLASS(fc_vport_class,
56804 * Netlink Infrastructure
56805 */
56806
56807 -static atomic_t fc_event_seq;
56808 +static atomic_unchecked_t fc_event_seq;
56809
56810 /**
56811 * fc_get_event_number - Obtain the next sequential FC event number
56812 @@ -515,7 +515,7 @@ static atomic_t fc_event_seq;
56813 u32
56814 fc_get_event_number(void)
56815 {
56816 - return atomic_add_return(1, &fc_event_seq);
56817 + return atomic_add_return_unchecked(1, &fc_event_seq);
56818 }
56819 EXPORT_SYMBOL(fc_get_event_number);
56820
56821 @@ -659,7 +659,7 @@ static __init int fc_transport_init(void)
56822 {
56823 int error;
56824
56825 - atomic_set(&fc_event_seq, 0);
56826 + atomic_set_unchecked(&fc_event_seq, 0);
56827
56828 error = transport_class_register(&fc_host_class);
56829 if (error)
56830 @@ -849,7 +849,7 @@ static int fc_str_to_dev_loss(const char *buf, unsigned long *val)
56831 char *cp;
56832
56833 *val = simple_strtoul(buf, &cp, 0);
56834 - if ((*cp && (*cp != '\n')) || (*val < 0))
56835 + if (*cp && (*cp != '\n'))
56836 return -EINVAL;
56837 /*
56838 * Check for overflow; dev_loss_tmo is u32
56839 diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c
56840 index e4b3d8f..3ab4dad 100644
56841 --- a/drivers/scsi/scsi_transport_iscsi.c
56842 +++ b/drivers/scsi/scsi_transport_iscsi.c
56843 @@ -79,7 +79,7 @@ struct iscsi_internal {
56844 struct transport_container session_cont;
56845 };
56846
56847 -static atomic_t iscsi_session_nr; /* sysfs session id for next new session */
56848 +static atomic_unchecked_t iscsi_session_nr; /* sysfs session id for next new session */
56849 static struct workqueue_struct *iscsi_eh_timer_workq;
56850
56851 static DEFINE_IDA(iscsi_sess_ida);
56852 @@ -2074,7 +2074,7 @@ int iscsi_add_session(struct iscsi_cls_session *session, unsigned int target_id)
56853 int err;
56854
56855 ihost = shost->shost_data;
56856 - session->sid = atomic_add_return(1, &iscsi_session_nr);
56857 + session->sid = atomic_add_return_unchecked(1, &iscsi_session_nr);
56858
56859 if (target_id == ISCSI_MAX_TARGET) {
56860 id = ida_simple_get(&iscsi_sess_ida, 0, 0, GFP_KERNEL);
56861 @@ -4522,7 +4522,7 @@ static __init int iscsi_transport_init(void)
56862 printk(KERN_INFO "Loading iSCSI transport class v%s.\n",
56863 ISCSI_TRANSPORT_VERSION);
56864
56865 - atomic_set(&iscsi_session_nr, 0);
56866 + atomic_set_unchecked(&iscsi_session_nr, 0);
56867
56868 err = class_register(&iscsi_transport_class);
56869 if (err)
56870 diff --git a/drivers/scsi/scsi_transport_srp.c b/drivers/scsi/scsi_transport_srp.c
56871 index e3cd3ec..00560ec 100644
56872 --- a/drivers/scsi/scsi_transport_srp.c
56873 +++ b/drivers/scsi/scsi_transport_srp.c
56874 @@ -35,7 +35,7 @@
56875 #include "scsi_priv.h"
56876
56877 struct srp_host_attrs {
56878 - atomic_t next_port_id;
56879 + atomic_unchecked_t next_port_id;
56880 };
56881 #define to_srp_host_attrs(host) ((struct srp_host_attrs *)(host)->shost_data)
56882
56883 @@ -105,7 +105,7 @@ static int srp_host_setup(struct transport_container *tc, struct device *dev,
56884 struct Scsi_Host *shost = dev_to_shost(dev);
56885 struct srp_host_attrs *srp_host = to_srp_host_attrs(shost);
56886
56887 - atomic_set(&srp_host->next_port_id, 0);
56888 + atomic_set_unchecked(&srp_host->next_port_id, 0);
56889 return 0;
56890 }
56891
56892 @@ -752,7 +752,7 @@ struct srp_rport *srp_rport_add(struct Scsi_Host *shost,
56893 rport_fast_io_fail_timedout);
56894 INIT_DELAYED_WORK(&rport->dev_loss_work, rport_dev_loss_timedout);
56895
56896 - id = atomic_inc_return(&to_srp_host_attrs(shost)->next_port_id);
56897 + id = atomic_inc_return_unchecked(&to_srp_host_attrs(shost)->next_port_id);
56898 dev_set_name(&rport->dev, "port-%d:%d", shost->host_no, id);
56899
56900 transport_setup_device(&rport->dev);
56901 diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
56902 index bb669d3..2074023 100644
56903 --- a/drivers/scsi/sd.c
56904 +++ b/drivers/scsi/sd.c
56905 @@ -112,7 +112,7 @@ static int sd_resume(struct device *);
56906 static void sd_rescan(struct device *);
56907 static int sd_init_command(struct scsi_cmnd *SCpnt);
56908 static void sd_uninit_command(struct scsi_cmnd *SCpnt);
56909 -static int sd_done(struct scsi_cmnd *);
56910 +static unsigned int sd_done(struct scsi_cmnd *);
56911 static int sd_eh_action(struct scsi_cmnd *, int);
56912 static void sd_read_capacity(struct scsi_disk *sdkp, unsigned char *buffer);
56913 static void scsi_disk_release(struct device *cdev);
56914 @@ -1756,7 +1756,7 @@ static unsigned int sd_completed_bytes(struct scsi_cmnd *scmd)
56915 *
56916 * Note: potentially run from within an ISR. Must not block.
56917 **/
56918 -static int sd_done(struct scsi_cmnd *SCpnt)
56919 +static unsigned int sd_done(struct scsi_cmnd *SCpnt)
56920 {
56921 int result = SCpnt->result;
56922 unsigned int good_bytes = result ? 0 : scsi_bufflen(SCpnt);
56923 @@ -3100,7 +3100,7 @@ static int sd_probe(struct device *dev)
56924 sdkp->disk = gd;
56925 sdkp->index = index;
56926 atomic_set(&sdkp->openers, 0);
56927 - atomic_set(&sdkp->device->ioerr_cnt, 0);
56928 + atomic_set_unchecked(&sdkp->device->ioerr_cnt, 0);
56929
56930 if (!sdp->request_queue->rq_timeout) {
56931 if (sdp->type != TYPE_MOD)
56932 diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
56933 index 5e82067..8f7c2cc 100644
56934 --- a/drivers/scsi/sg.c
56935 +++ b/drivers/scsi/sg.c
56936 @@ -1089,7 +1089,7 @@ sg_ioctl(struct file *filp, unsigned int cmd_in, unsigned long arg)
56937 sdp->disk->disk_name,
56938 MKDEV(SCSI_GENERIC_MAJOR, sdp->index),
56939 NULL,
56940 - (char *)arg);
56941 + (char __user *)arg);
56942 case BLKTRACESTART:
56943 return blk_trace_startstop(sdp->device->request_queue, 1);
56944 case BLKTRACESTOP:
56945 diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c
56946 index 64c8674..0c13069 100644
56947 --- a/drivers/scsi/sr.c
56948 +++ b/drivers/scsi/sr.c
56949 @@ -80,7 +80,7 @@ static DEFINE_MUTEX(sr_mutex);
56950 static int sr_probe(struct device *);
56951 static int sr_remove(struct device *);
56952 static int sr_init_command(struct scsi_cmnd *SCpnt);
56953 -static int sr_done(struct scsi_cmnd *);
56954 +static unsigned int sr_done(struct scsi_cmnd *);
56955 static int sr_runtime_suspend(struct device *dev);
56956
56957 static struct dev_pm_ops sr_pm_ops = {
56958 @@ -315,13 +315,13 @@ do_tur:
56959 * It will be notified on the end of a SCSI read / write, and will take one
56960 * of several actions based on success or failure.
56961 */
56962 -static int sr_done(struct scsi_cmnd *SCpnt)
56963 +static unsigned int sr_done(struct scsi_cmnd *SCpnt)
56964 {
56965 int result = SCpnt->result;
56966 - int this_count = scsi_bufflen(SCpnt);
56967 - int good_bytes = (result == 0 ? this_count : 0);
56968 - int block_sectors = 0;
56969 - long error_sector;
56970 + unsigned int this_count = scsi_bufflen(SCpnt);
56971 + unsigned int good_bytes = (result == 0 ? this_count : 0);
56972 + unsigned int block_sectors = 0;
56973 + sector_t error_sector;
56974 struct scsi_cd *cd = scsi_cd(SCpnt->request->rq_disk);
56975
56976 #ifdef DEBUG
56977 @@ -354,9 +354,12 @@ static int sr_done(struct scsi_cmnd *SCpnt)
56978 if (cd->device->sector_size == 2048)
56979 error_sector <<= 2;
56980 error_sector &= ~(block_sectors - 1);
56981 - good_bytes = (error_sector -
56982 - blk_rq_pos(SCpnt->request)) << 9;
56983 - if (good_bytes < 0 || good_bytes >= this_count)
56984 + if (error_sector >= blk_rq_pos(SCpnt->request)) {
56985 + good_bytes = (error_sector -
56986 + blk_rq_pos(SCpnt->request)) << 9;
56987 + if (good_bytes >= this_count)
56988 + good_bytes = 0;
56989 + } else
56990 good_bytes = 0;
56991 /*
56992 * The SCSI specification allows for the value
56993 diff --git a/drivers/soc/tegra/fuse/fuse-tegra.c b/drivers/soc/tegra/fuse/fuse-tegra.c
56994 index de2c1bf..60b8563 100644
56995 --- a/drivers/soc/tegra/fuse/fuse-tegra.c
56996 +++ b/drivers/soc/tegra/fuse/fuse-tegra.c
56997 @@ -72,7 +72,7 @@ static ssize_t fuse_read(struct file *fd, struct kobject *kobj,
56998 return i;
56999 }
57000
57001 -static struct bin_attribute fuse_bin_attr = {
57002 +static bin_attribute_no_const fuse_bin_attr = {
57003 .attr = { .name = "fuse", .mode = S_IRUGO, },
57004 .read = fuse_read,
57005 };
57006 diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
57007 index dee1cb8..3626295 100644
57008 --- a/drivers/spi/spi.c
57009 +++ b/drivers/spi/spi.c
57010 @@ -2506,7 +2506,7 @@ int spi_bus_unlock(struct spi_master *master)
57011 EXPORT_SYMBOL_GPL(spi_bus_unlock);
57012
57013 /* portable code must never pass more than 32 bytes */
57014 -#define SPI_BUFSIZ max(32, SMP_CACHE_BYTES)
57015 +#define SPI_BUFSIZ max(32UL, SMP_CACHE_BYTES)
57016
57017 static u8 *buf;
57018
57019 diff --git a/drivers/staging/android/timed_output.c b/drivers/staging/android/timed_output.c
57020 index aff9cdb..a2f1a81 100644
57021 --- a/drivers/staging/android/timed_output.c
57022 +++ b/drivers/staging/android/timed_output.c
57023 @@ -26,7 +26,7 @@
57024 #include "timed_output.h"
57025
57026 static struct class *timed_output_class;
57027 -static atomic_t device_count;
57028 +static atomic_unchecked_t device_count;
57029
57030 static ssize_t enable_show(struct device *dev, struct device_attribute *attr,
57031 char *buf)
57032 @@ -66,7 +66,7 @@ static int create_timed_output_class(void)
57033 timed_output_class = class_create(THIS_MODULE, "timed_output");
57034 if (IS_ERR(timed_output_class))
57035 return PTR_ERR(timed_output_class);
57036 - atomic_set(&device_count, 0);
57037 + atomic_set_unchecked(&device_count, 0);
57038 timed_output_class->dev_groups = timed_output_groups;
57039 }
57040
57041 @@ -84,7 +84,7 @@ int timed_output_dev_register(struct timed_output_dev *tdev)
57042 if (ret < 0)
57043 return ret;
57044
57045 - tdev->index = atomic_inc_return(&device_count);
57046 + tdev->index = atomic_inc_return_unchecked(&device_count);
57047 tdev->dev = device_create(timed_output_class, NULL,
57048 MKDEV(0, tdev->index), NULL, "%s", tdev->name);
57049 if (IS_ERR(tdev->dev))
57050 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c
57051 index 7b4af51..63d4c51 100644
57052 --- a/drivers/staging/comedi/comedi_fops.c
57053 +++ b/drivers/staging/comedi/comedi_fops.c
57054 @@ -311,8 +311,8 @@ static void comedi_file_reset(struct file *file)
57055 }
57056 cfp->last_attached = dev->attached;
57057 cfp->last_detach_count = dev->detach_count;
57058 - ACCESS_ONCE(cfp->read_subdev) = read_s;
57059 - ACCESS_ONCE(cfp->write_subdev) = write_s;
57060 + ACCESS_ONCE_RW(cfp->read_subdev) = read_s;
57061 + ACCESS_ONCE_RW(cfp->write_subdev) = write_s;
57062 }
57063
57064 static void comedi_file_check(struct file *file)
57065 @@ -1985,7 +1985,7 @@ static int do_setrsubd_ioctl(struct comedi_device *dev, unsigned long arg,
57066 !(s_old->async->cmd.flags & CMDF_WRITE))
57067 return -EBUSY;
57068
57069 - ACCESS_ONCE(cfp->read_subdev) = s_new;
57070 + ACCESS_ONCE_RW(cfp->read_subdev) = s_new;
57071 return 0;
57072 }
57073
57074 @@ -2027,7 +2027,7 @@ static int do_setwsubd_ioctl(struct comedi_device *dev, unsigned long arg,
57075 (s_old->async->cmd.flags & CMDF_WRITE))
57076 return -EBUSY;
57077
57078 - ACCESS_ONCE(cfp->write_subdev) = s_new;
57079 + ACCESS_ONCE_RW(cfp->write_subdev) = s_new;
57080 return 0;
57081 }
57082
57083 diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c
57084 index b1e4516..2ad1652 100644
57085 --- a/drivers/staging/fbtft/fbtft-core.c
57086 +++ b/drivers/staging/fbtft/fbtft-core.c
57087 @@ -651,7 +651,7 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
57088 {
57089 struct fb_info *info;
57090 struct fbtft_par *par;
57091 - struct fb_ops *fbops = NULL;
57092 + fb_ops_no_const *fbops = NULL;
57093 struct fb_deferred_io *fbdefio = NULL;
57094 u8 *vmem = NULL;
57095 void *txbuf = NULL;
57096 diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h
57097 index 3ccdec9..fcd4277 100644
57098 --- a/drivers/staging/fbtft/fbtft.h
57099 +++ b/drivers/staging/fbtft/fbtft.h
57100 @@ -101,7 +101,7 @@ struct fbtft_ops {
57101
57102 int (*set_var)(struct fbtft_par *par);
57103 int (*set_gamma)(struct fbtft_par *par, unsigned long *curves);
57104 -};
57105 +} __no_const;
57106
57107 /**
57108 * struct fbtft_display - Describes the display properties
57109 diff --git a/drivers/staging/gdm724x/gdm_tty.c b/drivers/staging/gdm724x/gdm_tty.c
57110 index e2c0f22..72fe9cc 100644
57111 --- a/drivers/staging/gdm724x/gdm_tty.c
57112 +++ b/drivers/staging/gdm724x/gdm_tty.c
57113 @@ -44,7 +44,7 @@
57114 #define gdm_tty_send_control(n, r, v, d, l) (\
57115 n->tty_dev->send_control(n->tty_dev->priv_dev, r, v, d, l))
57116
57117 -#define GDM_TTY_READY(gdm) (gdm && gdm->tty_dev && gdm->port.count)
57118 +#define GDM_TTY_READY(gdm) (gdm && gdm->tty_dev && atomic_read(&gdm->port.count))
57119
57120 static struct tty_driver *gdm_driver[TTY_MAX_COUNT];
57121 static struct gdm *gdm_table[TTY_MAX_COUNT][GDM_TTY_MINOR];
57122 diff --git a/drivers/staging/iio/accel/lis3l02dq_ring.c b/drivers/staging/iio/accel/lis3l02dq_ring.c
57123 index 50c162e..b5d8b7e 100644
57124 --- a/drivers/staging/iio/accel/lis3l02dq_ring.c
57125 +++ b/drivers/staging/iio/accel/lis3l02dq_ring.c
57126 @@ -118,7 +118,7 @@ static int lis3l02dq_get_buffer_element(struct iio_dev *indio_dev,
57127 int scan_count = bitmap_weight(indio_dev->active_scan_mask,
57128 indio_dev->masklength);
57129
57130 - rx_array = kcalloc(4, scan_count, GFP_KERNEL);
57131 + rx_array = kcalloc(scan_count, 4, GFP_KERNEL);
57132 if (!rx_array)
57133 return -ENOMEM;
57134 ret = lis3l02dq_read_all(indio_dev, rx_array);
57135 diff --git a/drivers/staging/iio/adc/ad7280a.c b/drivers/staging/iio/adc/ad7280a.c
57136 index 35acb1a..055b04d 100644
57137 --- a/drivers/staging/iio/adc/ad7280a.c
57138 +++ b/drivers/staging/iio/adc/ad7280a.c
57139 @@ -547,8 +547,8 @@ static int ad7280_attr_init(struct ad7280_state *st)
57140 {
57141 int dev, ch, cnt;
57142
57143 - st->iio_attr = kcalloc(2, sizeof(*st->iio_attr) *
57144 - (st->slave_num + 1) * AD7280A_CELLS_PER_DEV,
57145 + st->iio_attr = kcalloc(sizeof(*st->iio_attr) *
57146 + (st->slave_num + 1) * AD7280A_CELLS_PER_DEV, 2,
57147 GFP_KERNEL);
57148 if (!st->iio_attr)
57149 return -ENOMEM;
57150 diff --git a/drivers/staging/lustre/lnet/selftest/brw_test.c b/drivers/staging/lustre/lnet/selftest/brw_test.c
57151 index 0605c65..d722199 100644
57152 --- a/drivers/staging/lustre/lnet/selftest/brw_test.c
57153 +++ b/drivers/staging/lustre/lnet/selftest/brw_test.c
57154 @@ -487,13 +487,11 @@ brw_server_handle(struct srpc_server_rpc *rpc)
57155 return 0;
57156 }
57157
57158 -sfw_test_client_ops_t brw_test_client;
57159 -void brw_init_test_client(void)
57160 -{
57161 - brw_test_client.tso_init = brw_client_init;
57162 - brw_test_client.tso_fini = brw_client_fini;
57163 - brw_test_client.tso_prep_rpc = brw_client_prep_rpc;
57164 - brw_test_client.tso_done_rpc = brw_client_done_rpc;
57165 +sfw_test_client_ops_t brw_test_client = {
57166 + .tso_init = brw_client_init,
57167 + .tso_fini = brw_client_fini,
57168 + .tso_prep_rpc = brw_client_prep_rpc,
57169 + .tso_done_rpc = brw_client_done_rpc,
57170 };
57171
57172 srpc_service_t brw_test_service;
57173 diff --git a/drivers/staging/lustre/lnet/selftest/framework.c b/drivers/staging/lustre/lnet/selftest/framework.c
57174 index f18e500..77fef26 100644
57175 --- a/drivers/staging/lustre/lnet/selftest/framework.c
57176 +++ b/drivers/staging/lustre/lnet/selftest/framework.c
57177 @@ -1624,12 +1624,10 @@ static srpc_service_t sfw_services[] = {
57178
57179 extern sfw_test_client_ops_t ping_test_client;
57180 extern srpc_service_t ping_test_service;
57181 -extern void ping_init_test_client(void);
57182 extern void ping_init_test_service(void);
57183
57184 extern sfw_test_client_ops_t brw_test_client;
57185 extern srpc_service_t brw_test_service;
57186 -extern void brw_init_test_client(void);
57187 extern void brw_init_test_service(void);
57188
57189 int
57190 @@ -1669,12 +1667,10 @@ sfw_startup(void)
57191 INIT_LIST_HEAD(&sfw_data.fw_zombie_rpcs);
57192 INIT_LIST_HEAD(&sfw_data.fw_zombie_sessions);
57193
57194 - brw_init_test_client();
57195 brw_init_test_service();
57196 rc = sfw_register_test(&brw_test_service, &brw_test_client);
57197 LASSERT(rc == 0);
57198
57199 - ping_init_test_client();
57200 ping_init_test_service();
57201 rc = sfw_register_test(&ping_test_service, &ping_test_client);
57202 LASSERT(rc == 0);
57203 diff --git a/drivers/staging/lustre/lnet/selftest/ping_test.c b/drivers/staging/lustre/lnet/selftest/ping_test.c
57204 index d426536..92f0086 100644
57205 --- a/drivers/staging/lustre/lnet/selftest/ping_test.c
57206 +++ b/drivers/staging/lustre/lnet/selftest/ping_test.c
57207 @@ -211,14 +211,12 @@ ping_server_handle(struct srpc_server_rpc *rpc)
57208 return 0;
57209 }
57210
57211 -sfw_test_client_ops_t ping_test_client;
57212 -void ping_init_test_client(void)
57213 -{
57214 - ping_test_client.tso_init = ping_client_init;
57215 - ping_test_client.tso_fini = ping_client_fini;
57216 - ping_test_client.tso_prep_rpc = ping_client_prep_rpc;
57217 - ping_test_client.tso_done_rpc = ping_client_done_rpc;
57218 -}
57219 +sfw_test_client_ops_t ping_test_client = {
57220 + .tso_init = ping_client_init,
57221 + .tso_fini = ping_client_fini,
57222 + .tso_prep_rpc = ping_client_prep_rpc,
57223 + .tso_done_rpc = ping_client_done_rpc,
57224 +};
57225
57226 srpc_service_t ping_test_service;
57227 void ping_init_test_service(void)
57228 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h
57229 index 0e75a15..7290f30 100644
57230 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h
57231 +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h
57232 @@ -1061,7 +1061,7 @@ struct ldlm_callback_suite {
57233 ldlm_completion_callback lcs_completion;
57234 ldlm_blocking_callback lcs_blocking;
57235 ldlm_glimpse_callback lcs_glimpse;
57236 -};
57237 +} __no_const;
57238
57239 /* ldlm_lockd.c */
57240 int ldlm_get_ref(void);
57241 diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h
57242 index 5e93afc..4fd41bf 100644
57243 --- a/drivers/staging/lustre/lustre/include/obd.h
57244 +++ b/drivers/staging/lustre/lustre/include/obd.h
57245 @@ -1213,7 +1213,7 @@ struct md_ops {
57246 * lprocfs_alloc_md_stats() in obdclass/lprocfs_status.c. Also, add a
57247 * wrapper function in include/linux/obd_class.h.
57248 */
57249 -};
57250 +} __no_const;
57251
57252 struct lsm_operations {
57253 void (*lsm_free)(struct lov_stripe_md *);
57254 diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c
57255 index 4310154..605d035 100644
57256 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c
57257 +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c
57258 @@ -147,7 +147,7 @@ static int ldlm_process_flock_lock(struct ldlm_lock *req, __u64 *flags,
57259 int added = (mode == LCK_NL);
57260 int overlaps = 0;
57261 int splitted = 0;
57262 - const struct ldlm_callback_suite null_cbs = { NULL };
57263 + const struct ldlm_callback_suite null_cbs = { };
57264
57265 CDEBUG(D_DLMTRACE,
57266 "flags %#llx owner %llu pid %u mode %u start %llu end %llu\n",
57267 diff --git a/drivers/staging/lustre/lustre/libcfs/module.c b/drivers/staging/lustre/lustre/libcfs/module.c
57268 index e7c2b26..29a29f1 100644
57269 --- a/drivers/staging/lustre/lustre/libcfs/module.c
57270 +++ b/drivers/staging/lustre/lustre/libcfs/module.c
57271 @@ -322,11 +322,11 @@ out:
57272 }
57273
57274 struct cfs_psdev_ops libcfs_psdev_ops = {
57275 - libcfs_psdev_open,
57276 - libcfs_psdev_release,
57277 - NULL,
57278 - NULL,
57279 - libcfs_ioctl
57280 + .p_open = libcfs_psdev_open,
57281 + .p_close = libcfs_psdev_release,
57282 + .p_read = NULL,
57283 + .p_write = NULL,
57284 + .p_ioctl = libcfs_ioctl
57285 };
57286
57287 static int proc_call_handler(void *data, int write, loff_t *ppos,
57288 diff --git a/drivers/staging/octeon/ethernet-rx.c b/drivers/staging/octeon/ethernet-rx.c
57289 index 6aed3cf..3cdcb89 100644
57290 --- a/drivers/staging/octeon/ethernet-rx.c
57291 +++ b/drivers/staging/octeon/ethernet-rx.c
57292 @@ -365,15 +365,15 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget)
57293 /* Increment RX stats for virtual ports */
57294 if (port >= CVMX_PIP_NUM_INPUT_PORTS) {
57295 #ifdef CONFIG_64BIT
57296 - atomic64_add(1,
57297 - (atomic64_t *)&priv->stats.rx_packets);
57298 - atomic64_add(skb->len,
57299 - (atomic64_t *)&priv->stats.rx_bytes);
57300 + atomic64_add_unchecked(1,
57301 + (atomic64_unchecked_t *)&priv->stats.rx_packets);
57302 + atomic64_add_unchecked(skb->len,
57303 + (atomic64_unchecked_t *)&priv->stats.rx_bytes);
57304 #else
57305 - atomic_add(1,
57306 - (atomic_t *)&priv->stats.rx_packets);
57307 - atomic_add(skb->len,
57308 - (atomic_t *)&priv->stats.rx_bytes);
57309 + atomic_add_unchecked(1,
57310 + (atomic_unchecked_t *)&priv->stats.rx_packets);
57311 + atomic_add_unchecked(skb->len,
57312 + (atomic_unchecked_t *)&priv->stats.rx_bytes);
57313 #endif
57314 }
57315 netif_receive_skb(skb);
57316 @@ -384,10 +384,10 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget)
57317 dev->name);
57318 */
57319 #ifdef CONFIG_64BIT
57320 - atomic64_add(1,
57321 + atomic64_add_unchecked(1,
57322 (atomic64_t *)&priv->stats.rx_dropped);
57323 #else
57324 - atomic_add(1,
57325 + atomic_add_unchecked(1,
57326 (atomic_t *)&priv->stats.rx_dropped);
57327 #endif
57328 dev_kfree_skb_irq(skb);
57329 diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c
57330 index f69fb5c..be5da97 100644
57331 --- a/drivers/staging/octeon/ethernet.c
57332 +++ b/drivers/staging/octeon/ethernet.c
57333 @@ -232,11 +232,11 @@ static struct net_device_stats *cvm_oct_common_get_stats(struct net_device *dev)
57334 * since the RX tasklet also increments it.
57335 */
57336 #ifdef CONFIG_64BIT
57337 - atomic64_add(rx_status.dropped_packets,
57338 - (atomic64_t *)&priv->stats.rx_dropped);
57339 + atomic64_add_unchecked(rx_status.dropped_packets,
57340 + (atomic64_unchecked_t *)&priv->stats.rx_dropped);
57341 #else
57342 - atomic_add(rx_status.dropped_packets,
57343 - (atomic_t *)&priv->stats.rx_dropped);
57344 + atomic_add_unchecked(rx_status.dropped_packets,
57345 + (atomic_unchecked_t *)&priv->stats.rx_dropped);
57346 #endif
57347 }
57348
57349 diff --git a/drivers/staging/rdma/ipath/ipath_rc.c b/drivers/staging/rdma/ipath/ipath_rc.c
57350 index d4aa535..022fa57 100644
57351 --- a/drivers/staging/rdma/ipath/ipath_rc.c
57352 +++ b/drivers/staging/rdma/ipath/ipath_rc.c
57353 @@ -1868,7 +1868,7 @@ void ipath_rc_rcv(struct ipath_ibdev *dev, struct ipath_ib_header *hdr,
57354 struct ib_atomic_eth *ateth;
57355 struct ipath_ack_entry *e;
57356 u64 vaddr;
57357 - atomic64_t *maddr;
57358 + atomic64_unchecked_t *maddr;
57359 u64 sdata;
57360 u32 rkey;
57361 u8 next;
57362 @@ -1903,11 +1903,11 @@ void ipath_rc_rcv(struct ipath_ibdev *dev, struct ipath_ib_header *hdr,
57363 IB_ACCESS_REMOTE_ATOMIC)))
57364 goto nack_acc_unlck;
57365 /* Perform atomic OP and save result. */
57366 - maddr = (atomic64_t *) qp->r_sge.sge.vaddr;
57367 + maddr = (atomic64_unchecked_t *) qp->r_sge.sge.vaddr;
57368 sdata = be64_to_cpu(ateth->swap_data);
57369 e = &qp->s_ack_queue[qp->r_head_ack_queue];
57370 e->atomic_data = (opcode == OP(FETCH_ADD)) ?
57371 - (u64) atomic64_add_return(sdata, maddr) - sdata :
57372 + (u64) atomic64_add_return_unchecked(sdata, maddr) - sdata :
57373 (u64) cmpxchg((u64 *) qp->r_sge.sge.vaddr,
57374 be64_to_cpu(ateth->compare_data),
57375 sdata);
57376 diff --git a/drivers/staging/rdma/ipath/ipath_ruc.c b/drivers/staging/rdma/ipath/ipath_ruc.c
57377 index e541a01..a41777d 100644
57378 --- a/drivers/staging/rdma/ipath/ipath_ruc.c
57379 +++ b/drivers/staging/rdma/ipath/ipath_ruc.c
57380 @@ -265,7 +265,7 @@ static void ipath_ruc_loopback(struct ipath_qp *sqp)
57381 unsigned long flags;
57382 struct ib_wc wc;
57383 u64 sdata;
57384 - atomic64_t *maddr;
57385 + atomic64_unchecked_t *maddr;
57386 enum ib_wc_status send_status;
57387
57388 /*
57389 @@ -381,11 +381,11 @@ again:
57390 IB_ACCESS_REMOTE_ATOMIC)))
57391 goto acc_err;
57392 /* Perform atomic OP and save result. */
57393 - maddr = (atomic64_t *) qp->r_sge.sge.vaddr;
57394 + maddr = (atomic64_unchecked_t *) qp->r_sge.sge.vaddr;
57395 sdata = wqe->atomic_wr.compare_add;
57396 *(u64 *) sqp->s_sge.sge.vaddr =
57397 (wqe->wr.opcode == IB_WR_ATOMIC_FETCH_AND_ADD) ?
57398 - (u64) atomic64_add_return(sdata, maddr) - sdata :
57399 + (u64) atomic64_add_return_unchecked(sdata, maddr) - sdata :
57400 (u64) cmpxchg((u64 *) qp->r_sge.sge.vaddr,
57401 sdata, wqe->atomic_wr.swap);
57402 goto send_comp;
57403 diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
57404 index d900546..266edcf 100644
57405 --- a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
57406 +++ b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
57407 @@ -3983,7 +3983,7 @@ static void init_mlme_ext_priv_value(struct adapter *padapter)
57408 _12M_RATE_, _24M_RATE_, 0xff,
57409 };
57410
57411 - atomic_set(&pmlmeext->event_seq, 0);
57412 + atomic_set_unchecked(&pmlmeext->event_seq, 0);
57413 pmlmeext->mgnt_seq = 0;/* reset to zero when disconnect at client mode */
57414
57415 pmlmeext->cur_channel = padapter->registrypriv.channel;
57416 @@ -4310,7 +4310,7 @@ void report_survey_event(struct adapter *padapter,
57417 pc2h_evt_hdr = (struct C2HEvent_Header *)(pevtcmd);
57418 pc2h_evt_hdr->len = sizeof(struct survey_event);
57419 pc2h_evt_hdr->ID = GEN_EVT_CODE(_Survey);
57420 - pc2h_evt_hdr->seq = atomic_inc_return(&pmlmeext->event_seq);
57421 + pc2h_evt_hdr->seq = atomic_inc_return_unchecked(&pmlmeext->event_seq);
57422
57423 psurvey_evt = (struct survey_event *)(pevtcmd + sizeof(struct C2HEvent_Header));
57424
57425 @@ -4362,7 +4362,7 @@ void report_surveydone_event(struct adapter *padapter)
57426 pc2h_evt_hdr = (struct C2HEvent_Header *)(pevtcmd);
57427 pc2h_evt_hdr->len = sizeof(struct surveydone_event);
57428 pc2h_evt_hdr->ID = GEN_EVT_CODE(_SurveyDone);
57429 - pc2h_evt_hdr->seq = atomic_inc_return(&pmlmeext->event_seq);
57430 + pc2h_evt_hdr->seq = atomic_inc_return_unchecked(&pmlmeext->event_seq);
57431
57432 psurveydone_evt = (struct surveydone_event *)(pevtcmd + sizeof(struct C2HEvent_Header));
57433 psurveydone_evt->bss_cnt = pmlmeext->sitesurvey_res.bss_cnt;
57434 @@ -4408,7 +4408,7 @@ void report_join_res(struct adapter *padapter, int res)
57435 pc2h_evt_hdr = (struct C2HEvent_Header *)(pevtcmd);
57436 pc2h_evt_hdr->len = sizeof(struct joinbss_event);
57437 pc2h_evt_hdr->ID = GEN_EVT_CODE(_JoinBss);
57438 - pc2h_evt_hdr->seq = atomic_inc_return(&pmlmeext->event_seq);
57439 + pc2h_evt_hdr->seq = atomic_inc_return_unchecked(&pmlmeext->event_seq);
57440
57441 pjoinbss_evt = (struct joinbss_event *)(pevtcmd + sizeof(struct C2HEvent_Header));
57442 memcpy((unsigned char *)(&(pjoinbss_evt->network.network)), &(pmlmeinfo->network), sizeof(struct wlan_bssid_ex));
57443 @@ -4461,7 +4461,7 @@ void report_del_sta_event(struct adapter *padapter, unsigned char *MacAddr, unsi
57444 pc2h_evt_hdr = (struct C2HEvent_Header *)(pevtcmd);
57445 pc2h_evt_hdr->len = sizeof(struct stadel_event);
57446 pc2h_evt_hdr->ID = GEN_EVT_CODE(_DelSTA);
57447 - pc2h_evt_hdr->seq = atomic_inc_return(&pmlmeext->event_seq);
57448 + pc2h_evt_hdr->seq = atomic_inc_return_unchecked(&pmlmeext->event_seq);
57449
57450 pdel_sta_evt = (struct stadel_event *)(pevtcmd + sizeof(struct C2HEvent_Header));
57451 memcpy((unsigned char *)(&(pdel_sta_evt->macaddr)), MacAddr, ETH_ALEN);
57452 @@ -4516,7 +4516,7 @@ void report_add_sta_event(struct adapter *padapter, unsigned char *MacAddr, int
57453 pc2h_evt_hdr = (struct C2HEvent_Header *)(pevtcmd);
57454 pc2h_evt_hdr->len = sizeof(struct stassoc_event);
57455 pc2h_evt_hdr->ID = GEN_EVT_CODE(_AddSTA);
57456 - pc2h_evt_hdr->seq = atomic_inc_return(&pmlmeext->event_seq);
57457 + pc2h_evt_hdr->seq = atomic_inc_return_unchecked(&pmlmeext->event_seq);
57458
57459 padd_sta_evt = (struct stassoc_event *)(pevtcmd + sizeof(struct C2HEvent_Header));
57460 memcpy((unsigned char *)(&(padd_sta_evt->macaddr)), MacAddr, ETH_ALEN);
57461 diff --git a/drivers/staging/rtl8188eu/include/hal_intf.h b/drivers/staging/rtl8188eu/include/hal_intf.h
57462 index 1b1c102..375e471 100644
57463 --- a/drivers/staging/rtl8188eu/include/hal_intf.h
57464 +++ b/drivers/staging/rtl8188eu/include/hal_intf.h
57465 @@ -217,7 +217,7 @@ struct hal_ops {
57466
57467 void (*hal_notch_filter)(struct adapter *adapter, bool enable);
57468 void (*hal_reset_security_engine)(struct adapter *adapter);
57469 -};
57470 +} __no_const;
57471
57472 enum rt_eeprom_type {
57473 EEPROM_93C46,
57474 diff --git a/drivers/staging/rtl8188eu/include/rtw_mlme_ext.h b/drivers/staging/rtl8188eu/include/rtw_mlme_ext.h
57475 index 9093a5f..5863f9b 100644
57476 --- a/drivers/staging/rtl8188eu/include/rtw_mlme_ext.h
57477 +++ b/drivers/staging/rtl8188eu/include/rtw_mlme_ext.h
57478 @@ -409,7 +409,7 @@ struct p2p_oper_class_map {
57479 struct mlme_ext_priv {
57480 struct adapter *padapter;
57481 u8 mlmeext_init;
57482 - atomic_t event_seq;
57483 + atomic_unchecked_t event_seq;
57484 u16 mgnt_seq;
57485
57486 unsigned char cur_channel;
57487 diff --git a/drivers/staging/rtl8712/rtl871x_io.h b/drivers/staging/rtl8712/rtl871x_io.h
57488 index 26dd24c..2eb37c9 100644
57489 --- a/drivers/staging/rtl8712/rtl871x_io.h
57490 +++ b/drivers/staging/rtl8712/rtl871x_io.h
57491 @@ -108,7 +108,7 @@ struct _io_ops {
57492 u8 *pmem);
57493 u32 (*_write_port)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt,
57494 u8 *pmem);
57495 -};
57496 +} __no_const;
57497
57498 struct io_req {
57499 struct list_head list;
57500 diff --git a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
57501 index d28f29a..e3d2f19 100644
57502 --- a/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
57503 +++ b/drivers/staging/rtl8723au/core/rtw_mlme_ext.c
57504 @@ -368,7 +368,7 @@ static void init_mlme_ext_priv23a_value(struct rtw_adapter *padapter)
57505 _1M_RATE_, _2M_RATE_, _5M_RATE_, _11M_RATE_, _6M_RATE_,
57506 _12M_RATE_, _24M_RATE_, 0xff,};
57507
57508 - atomic_set(&pmlmeext->event_seq, 0);
57509 + atomic_set_unchecked(&pmlmeext->event_seq, 0);
57510 /* reset to zero when disconnect at client mode */
57511 pmlmeext->mgnt_seq = 0;
57512
57513 @@ -4743,7 +4743,7 @@ void report_survey_event23a(struct rtw_adapter *padapter,
57514 pc2h_evt_hdr = (struct C2HEvent_Header *)(pevtcmd);
57515 pc2h_evt_hdr->len = sizeof(struct survey_event);
57516 pc2h_evt_hdr->ID = GEN_EVT_CODE(_Survey);
57517 - pc2h_evt_hdr->seq = atomic_inc_return(&pmlmeext->event_seq);
57518 + pc2h_evt_hdr->seq = atomic_inc_return_unchecked(&pmlmeext->event_seq);
57519
57520 psurvey_evt = (struct survey_event*)(pevtcmd + sizeof(struct C2HEvent_Header));
57521
57522 @@ -4794,7 +4794,7 @@ void report_surveydone_event23a(struct rtw_adapter *padapter)
57523 pc2h_evt_hdr = (struct C2HEvent_Header *)(pevtcmd);
57524 pc2h_evt_hdr->len = sizeof(struct surveydone_event);
57525 pc2h_evt_hdr->ID = GEN_EVT_CODE(_SurveyDone);
57526 - pc2h_evt_hdr->seq = atomic_inc_return(&pmlmeext->event_seq);
57527 + pc2h_evt_hdr->seq = atomic_inc_return_unchecked(&pmlmeext->event_seq);
57528
57529 psurveydone_evt = (struct surveydone_event*)(pevtcmd + sizeof(struct C2HEvent_Header));
57530 psurveydone_evt->bss_cnt = pmlmeext->sitesurvey_res.bss_cnt;
57531 @@ -4838,7 +4838,7 @@ void report_join_res23a(struct rtw_adapter *padapter, int res)
57532 pc2h_evt_hdr = (struct C2HEvent_Header *)(pevtcmd);
57533 pc2h_evt_hdr->len = sizeof(struct joinbss_event);
57534 pc2h_evt_hdr->ID = GEN_EVT_CODE(_JoinBss);
57535 - pc2h_evt_hdr->seq = atomic_inc_return(&pmlmeext->event_seq);
57536 + pc2h_evt_hdr->seq = atomic_inc_return_unchecked(&pmlmeext->event_seq);
57537
57538 pjoinbss_evt = (struct joinbss_event*)(pevtcmd + sizeof(struct C2HEvent_Header));
57539 memcpy((unsigned char *)&pjoinbss_evt->network.network,
57540 @@ -4888,7 +4888,7 @@ void report_del_sta_event23a(struct rtw_adapter *padapter,
57541 pc2h_evt_hdr = (struct C2HEvent_Header *)(pevtcmd);
57542 pc2h_evt_hdr->len = sizeof(struct stadel_event);
57543 pc2h_evt_hdr->ID = GEN_EVT_CODE(_DelSTA);
57544 - pc2h_evt_hdr->seq = atomic_inc_return(&pmlmeext->event_seq);
57545 + pc2h_evt_hdr->seq = atomic_inc_return_unchecked(&pmlmeext->event_seq);
57546
57547 pdel_sta_evt = (struct stadel_event*)(pevtcmd + sizeof(struct C2HEvent_Header));
57548 ether_addr_copy((unsigned char *)&pdel_sta_evt->macaddr, MacAddr);
57549 @@ -4942,7 +4942,7 @@ void report_add_sta_event23a(struct rtw_adapter *padapter,
57550 pc2h_evt_hdr = (struct C2HEvent_Header *)(pevtcmd);
57551 pc2h_evt_hdr->len = sizeof(struct stassoc_event);
57552 pc2h_evt_hdr->ID = GEN_EVT_CODE(_AddSTA);
57553 - pc2h_evt_hdr->seq = atomic_inc_return(&pmlmeext->event_seq);
57554 + pc2h_evt_hdr->seq = atomic_inc_return_unchecked(&pmlmeext->event_seq);
57555
57556 padd_sta_evt = (struct stassoc_event*)(pevtcmd + sizeof(struct C2HEvent_Header));
57557 ether_addr_copy((unsigned char *)&padd_sta_evt->macaddr, MacAddr);
57558 diff --git a/drivers/staging/rtl8723au/include/drv_types.h b/drivers/staging/rtl8723au/include/drv_types.h
57559 index e83463a..84230f3 100644
57560 --- a/drivers/staging/rtl8723au/include/drv_types.h
57561 +++ b/drivers/staging/rtl8723au/include/drv_types.h
57562 @@ -185,7 +185,7 @@ struct dvobj_priv {
57563
57564 struct usb_interface *pusbintf;
57565 struct usb_device *pusbdev;
57566 - atomic_t continual_urb_error;
57567 + atomic_unchecked_t continual_urb_error;
57568
57569 /*-------- below is for PCIE INTERFACE --------*/
57570
57571 diff --git a/drivers/staging/rtl8723au/include/rtw_mlme_ext.h b/drivers/staging/rtl8723au/include/rtw_mlme_ext.h
57572 index ea2a6c9..91d10ea 100644
57573 --- a/drivers/staging/rtl8723au/include/rtw_mlme_ext.h
57574 +++ b/drivers/staging/rtl8723au/include/rtw_mlme_ext.h
57575 @@ -406,7 +406,7 @@ struct p2p_oper_class_map {
57576 struct mlme_ext_priv {
57577 struct rtw_adapter *padapter;
57578 u8 mlmeext_init;
57579 - atomic_t event_seq;
57580 + atomic_unchecked_t event_seq;
57581 u16 mgnt_seq;
57582
57583 /* struct fw_priv fwpriv; */
57584 diff --git a/drivers/staging/rtl8723au/include/usb_ops.h b/drivers/staging/rtl8723au/include/usb_ops.h
57585 index ff11e13..69680d1 100644
57586 --- a/drivers/staging/rtl8723au/include/usb_ops.h
57587 +++ b/drivers/staging/rtl8723au/include/usb_ops.h
57588 @@ -48,7 +48,7 @@ static inline int rtw_inc_and_chk_continual_urb_error(struct dvobj_priv *dvobj)
57589 int ret = false;
57590 int value;
57591
57592 - value = atomic_inc_return(&dvobj->continual_urb_error);
57593 + value = atomic_inc_return_unchecked(&dvobj->continual_urb_error);
57594 if (value > MAX_CONTINUAL_URB_ERR) {
57595 DBG_8723A("[dvobj:%p][ERROR] continual_urb_error:%d > %d\n",
57596 dvobj, value, MAX_CONTINUAL_URB_ERR);
57597 @@ -60,7 +60,7 @@ static inline int rtw_inc_and_chk_continual_urb_error(struct dvobj_priv *dvobj)
57598 /* Set the continual_urb_error of this @param dvobjprive to 0 */
57599 static inline void rtw_reset_continual_urb_error(struct dvobj_priv *dvobj)
57600 {
57601 - atomic_set(&dvobj->continual_urb_error, 0);
57602 + atomic_set_unchecked(&dvobj->continual_urb_error, 0);
57603 }
57604
57605 bool rtl8723au_chip_configure(struct rtw_adapter *padapter);
57606 diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c
57607 index 860e1c2..609ee2a 100644
57608 --- a/drivers/staging/sm750fb/sm750.c
57609 +++ b/drivers/staging/sm750fb/sm750.c
57610 @@ -722,6 +722,7 @@ static struct fb_ops lynxfb_ops = {
57611 .fb_set_par = lynxfb_ops_set_par,
57612 .fb_setcolreg = lynxfb_ops_setcolreg,
57613 .fb_blank = lynxfb_ops_blank,
57614 + .fb_pan_display = lynxfb_ops_pan_display,
57615 .fb_fillrect = cfb_fillrect,
57616 .fb_imageblit = cfb_imageblit,
57617 .fb_copyarea = cfb_copyarea,
57618 @@ -767,7 +768,6 @@ static int lynxfb_set_fbinfo(struct fb_info *info, int index)
57619 par->index = index;
57620 output->channel = &crtc->channel;
57621 sm750fb_set_drv(par);
57622 - lynxfb_ops.fb_pan_display = lynxfb_ops_pan_display;
57623
57624 /*
57625 * set current cursor variable and proc pointer,
57626 @@ -784,16 +784,20 @@ static int lynxfb_set_fbinfo(struct fb_info *info, int index)
57627
57628 memset_io(crtc->cursor.vstart, 0, crtc->cursor.size);
57629 if (!g_hwcursor) {
57630 - lynxfb_ops.fb_cursor = NULL;
57631 + pax_open_kernel();
57632 + *(void **)&lynxfb_ops.fb_cursor = NULL;
57633 + pax_close_kernel();
57634 hw_cursor_disable(&crtc->cursor);
57635 }
57636
57637 /* set info->fbops, must be set before fb_find_mode */
57638 if (!sm750_dev->accel_off) {
57639 /* use 2d acceleration */
57640 - lynxfb_ops.fb_fillrect = lynxfb_ops_fillrect;
57641 - lynxfb_ops.fb_copyarea = lynxfb_ops_copyarea;
57642 - lynxfb_ops.fb_imageblit = lynxfb_ops_imageblit;
57643 + pax_open_kernel();
57644 + *(void **)&lynxfb_ops.fb_fillrect = lynxfb_ops_fillrect;
57645 + *(void **)&lynxfb_ops.fb_copyarea = lynxfb_ops_copyarea;
57646 + *(void **)&lynxfb_ops.fb_imageblit = lynxfb_ops_imageblit;
57647 + pax_close_kernel();
57648 }
57649 info->fbops = &lynxfb_ops;
57650
57651 diff --git a/drivers/staging/unisys/visorbus/visorbus_private.h b/drivers/staging/unisys/visorbus/visorbus_private.h
57652 index 39edd20..d860d0c 100644
57653 --- a/drivers/staging/unisys/visorbus/visorbus_private.h
57654 +++ b/drivers/staging/unisys/visorbus/visorbus_private.h
57655 @@ -34,7 +34,7 @@ struct visorchipset_busdev_notifiers {
57656 void (*device_destroy)(struct visor_device *bus_info);
57657 void (*device_pause)(struct visor_device *bus_info);
57658 void (*device_resume)(struct visor_device *bus_info);
57659 -};
57660 +} __no_const;
57661
57662 /* These functions live inside visorchipset, and will be called to indicate
57663 * responses to specific events (by code outside of visorchipset).
57664 @@ -49,7 +49,7 @@ struct visorchipset_busdev_responders {
57665 void (*device_destroy)(struct visor_device *p, int response);
57666 void (*device_pause)(struct visor_device *p, int response);
57667 void (*device_resume)(struct visor_device *p, int response);
57668 -};
57669 +} __no_const;
57670
57671 /** Register functions (in the bus driver) to get called by visorchipset
57672 * whenever a bus or device appears for which this guest is to be the
57673 diff --git a/drivers/staging/wilc1000/host_interface.h b/drivers/staging/wilc1000/host_interface.h
57674 index b854db5..4c721d5 100644
57675 --- a/drivers/staging/wilc1000/host_interface.h
57676 +++ b/drivers/staging/wilc1000/host_interface.h
57677 @@ -10,6 +10,7 @@
57678 #ifndef HOST_INT_H
57679 #define HOST_INT_H
57680
57681 +#include <linux/netdevice.h>
57682 #include "coreconfigurator.h"
57683
57684 #define IP_ALEN 4
57685 diff --git a/drivers/staging/wilc1000/wilc_sdio.c b/drivers/staging/wilc1000/wilc_sdio.c
57686 index 300c571..a39d663 100644
57687 --- a/drivers/staging/wilc1000/wilc_sdio.c
57688 +++ b/drivers/staging/wilc1000/wilc_sdio.c
57689 @@ -993,22 +993,22 @@ static int sdio_sync_ext(int nint /* how mant interrupts to enable. */)
57690 ********************************************/
57691
57692 wilc_hif_func_t hif_sdio = {
57693 - sdio_init,
57694 - sdio_deinit,
57695 - sdio_read_reg,
57696 - sdio_write_reg,
57697 - sdio_read,
57698 - sdio_write,
57699 - sdio_sync,
57700 - sdio_clear_int,
57701 - sdio_read_int,
57702 - sdio_clear_int_ext,
57703 - sdio_read_size,
57704 - sdio_write,
57705 - sdio_read,
57706 - sdio_sync_ext,
57707 + .hif_init = sdio_init,
57708 + .hif_deinit = sdio_deinit,
57709 + .hif_read_reg = sdio_read_reg,
57710 + .hif_write_reg = sdio_write_reg,
57711 + .hif_block_rx = sdio_read,
57712 + .hif_block_tx = sdio_write,
57713 + .hif_sync = sdio_sync,
57714 + .hif_clear_int = sdio_clear_int,
57715 + .hif_read_int = sdio_read_int,
57716 + .hif_clear_int_ext = sdio_clear_int_ext,
57717 + .hif_read_size = sdio_read_size,
57718 + .hif_block_tx_ext = sdio_write,
57719 + .hif_block_rx_ext = sdio_read,
57720 + .hif_sync_ext = sdio_sync_ext,
57721
57722 - sdio_set_max_speed,
57723 - sdio_set_default_speed,
57724 + .hif_set_max_bus_speed = sdio_set_max_speed,
57725 + .hif_set_default_bus_speed = sdio_set_default_speed,
57726 };
57727
57728 diff --git a/drivers/staging/wilc1000/wilc_spi.c b/drivers/staging/wilc1000/wilc_spi.c
57729 index 599508b..fc69923 100644
57730 --- a/drivers/staging/wilc1000/wilc_spi.c
57731 +++ b/drivers/staging/wilc1000/wilc_spi.c
57732 @@ -1257,20 +1257,20 @@ static int spi_sync_ext(int nint /* how mant interrupts to enable. */)
57733 *
57734 ********************************************/
57735 wilc_hif_func_t hif_spi = {
57736 - spi_init,
57737 - spi_deinit,
57738 - spi_read_reg,
57739 - spi_write_reg,
57740 - spi_read,
57741 - spi_write,
57742 - spi_sync,
57743 - spi_clear_int,
57744 - spi_read_int,
57745 - spi_clear_int_ext,
57746 - spi_read_size,
57747 - spi_write,
57748 - spi_read,
57749 - spi_sync_ext,
57750 - spi_max_bus_speed,
57751 - spi_default_bus_speed,
57752 + .hif_init = spi_init,
57753 + .hif_deinit = spi_deinit,
57754 + .hif_read_reg = spi_read_reg,
57755 + .hif_write_reg = spi_write_reg,
57756 + .hif_block_rx = spi_read,
57757 + .hif_block_tx = spi_write,
57758 + .hif_sync = spi_sync,
57759 + .hif_clear_int = spi_clear_int,
57760 + .hif_read_int = spi_read_int,
57761 + .hif_clear_int_ext = spi_clear_int_ext,
57762 + .hif_read_size = spi_read_size,
57763 + .hif_block_tx_ext = spi_write,
57764 + .hif_block_rx_ext = spi_read,
57765 + .hif_sync_ext = spi_sync_ext,
57766 + .hif_set_max_bus_speed = spi_max_bus_speed,
57767 + .hif_set_default_bus_speed = spi_default_bus_speed,
57768 };
57769 diff --git a/drivers/staging/wilc1000/wilc_wlan.h b/drivers/staging/wilc1000/wilc_wlan.h
57770 index 57e1d51..b922b75 100644
57771 --- a/drivers/staging/wilc1000/wilc_wlan.h
57772 +++ b/drivers/staging/wilc1000/wilc_wlan.h
57773 @@ -1,7 +1,7 @@
57774 #ifndef WILC_WLAN_H
57775 #define WILC_WLAN_H
57776
57777 -
57778 +#include <linux/netdevice.h>
57779
57780 #define ISWILC1000(id) (((id & 0xfffff000) == 0x100000) ? 1 : 0)
57781
57782 diff --git a/drivers/target/sbp/sbp_target.c b/drivers/target/sbp/sbp_target.c
57783 index 35f7d31..a9928a7 100644
57784 --- a/drivers/target/sbp/sbp_target.c
57785 +++ b/drivers/target/sbp/sbp_target.c
57786 @@ -58,7 +58,7 @@ static const u32 sbp_unit_directory_template[] = {
57787
57788 #define SESSION_MAINTENANCE_INTERVAL HZ
57789
57790 -static atomic_t login_id = ATOMIC_INIT(0);
57791 +static atomic_unchecked_t login_id = ATOMIC_INIT(0);
57792
57793 static void session_maintenance_work(struct work_struct *);
57794 static int sbp_run_transaction(struct fw_card *, int, int, int, int,
57795 @@ -439,7 +439,7 @@ static void sbp_management_request_login(
57796 login->login_lun = unpacked_lun;
57797 login->status_fifo_addr = sbp2_pointer_to_addr(&req->orb.status_fifo);
57798 login->exclusive = LOGIN_ORB_EXCLUSIVE(be32_to_cpu(req->orb.misc));
57799 - login->login_id = atomic_inc_return(&login_id);
57800 + login->login_id = atomic_inc_return_unchecked(&login_id);
57801
57802 login->tgt_agt = sbp_target_agent_register(login);
57803 if (IS_ERR(login->tgt_agt)) {
57804 diff --git a/drivers/thermal/cpu_cooling.c b/drivers/thermal/cpu_cooling.c
57805 index 6ceac4f..b2ed52c 100644
57806 --- a/drivers/thermal/cpu_cooling.c
57807 +++ b/drivers/thermal/cpu_cooling.c
57808 @@ -838,10 +838,11 @@ __cpufreq_cooling_register(struct device_node *np,
57809 cpumask_copy(&cpufreq_dev->allowed_cpus, clip_cpus);
57810
57811 if (capacitance) {
57812 - cpufreq_cooling_ops.get_requested_power =
57813 - cpufreq_get_requested_power;
57814 - cpufreq_cooling_ops.state2power = cpufreq_state2power;
57815 - cpufreq_cooling_ops.power2state = cpufreq_power2state;
57816 + pax_open_kernel();
57817 + *(void **)&cpufreq_cooling_ops.get_requested_power = cpufreq_get_requested_power;
57818 + *(void **)&cpufreq_cooling_ops.state2power = cpufreq_state2power;
57819 + *(void **)&cpufreq_cooling_ops.power2state = cpufreq_power2state;
57820 + pax_close_kernel();
57821 cpufreq_dev->plat_get_static_power = plat_static_func;
57822
57823 ret = build_dyn_power_table(cpufreq_dev, capacitance);
57824 diff --git a/drivers/thermal/devfreq_cooling.c b/drivers/thermal/devfreq_cooling.c
57825 index 01f0015..aa56551 100644
57826 --- a/drivers/thermal/devfreq_cooling.c
57827 +++ b/drivers/thermal/devfreq_cooling.c
57828 @@ -363,6 +363,15 @@ static struct thermal_cooling_device_ops devfreq_cooling_ops = {
57829 .set_cur_state = devfreq_cooling_set_cur_state,
57830 };
57831
57832 +static struct thermal_cooling_device_ops devfreq_cooling_power_ops = {
57833 + .get_max_state = devfreq_cooling_get_max_state,
57834 + .get_cur_state = devfreq_cooling_get_cur_state,
57835 + .set_cur_state = devfreq_cooling_set_cur_state,
57836 + .get_requested_power = devfreq_cooling_get_requested_power,
57837 + .state2power = devfreq_cooling_state2power,
57838 + .power2state = devfreq_cooling_power2state,
57839 +};
57840 +
57841 /**
57842 * devfreq_cooling_gen_tables() - Generate power and freq tables.
57843 * @dfc: Pointer to devfreq cooling device.
57844 @@ -482,15 +491,9 @@ of_devfreq_cooling_register_power(struct device_node *np, struct devfreq *df,
57845
57846 dfc->devfreq = df;
57847
57848 - if (dfc_power) {
57849 + if (dfc_power)
57850 dfc->power_ops = dfc_power;
57851
57852 - devfreq_cooling_ops.get_requested_power =
57853 - devfreq_cooling_get_requested_power;
57854 - devfreq_cooling_ops.state2power = devfreq_cooling_state2power;
57855 - devfreq_cooling_ops.power2state = devfreq_cooling_power2state;
57856 - }
57857 -
57858 err = devfreq_cooling_gen_tables(dfc);
57859 if (err)
57860 goto free_dfc;
57861 @@ -502,7 +505,7 @@ of_devfreq_cooling_register_power(struct device_node *np, struct devfreq *df,
57862 snprintf(dev_name, sizeof(dev_name), "thermal-devfreq-%d", dfc->id);
57863
57864 cdev = thermal_of_cooling_device_register(np, dev_name, dfc,
57865 - &devfreq_cooling_ops);
57866 + dfc_power ? &devfreq_cooling_power_ops : &devfreq_cooling_ops);
57867 if (IS_ERR(cdev)) {
57868 err = PTR_ERR(cdev);
57869 dev_err(df->dev.parent,
57870 diff --git a/drivers/thermal/int340x_thermal/int3400_thermal.c b/drivers/thermal/int340x_thermal/int3400_thermal.c
57871 index 5836e55..740ab89 100644
57872 --- a/drivers/thermal/int340x_thermal/int3400_thermal.c
57873 +++ b/drivers/thermal/int340x_thermal/int3400_thermal.c
57874 @@ -272,8 +272,10 @@ static int int3400_thermal_probe(struct platform_device *pdev)
57875 platform_set_drvdata(pdev, priv);
57876
57877 if (priv->uuid_bitmap & 1 << INT3400_THERMAL_PASSIVE_1) {
57878 - int3400_thermal_ops.get_mode = int3400_thermal_get_mode;
57879 - int3400_thermal_ops.set_mode = int3400_thermal_set_mode;
57880 + pax_open_kernel();
57881 + *(void **)&int3400_thermal_ops.get_mode = int3400_thermal_get_mode;
57882 + *(void **)&int3400_thermal_ops.set_mode = int3400_thermal_set_mode;
57883 + pax_close_kernel();
57884 }
57885 priv->thermal = thermal_zone_device_register("INT3400 Thermal", 0, 0,
57886 priv, &int3400_thermal_ops,
57887 diff --git a/drivers/thermal/of-thermal.c b/drivers/thermal/of-thermal.c
57888 index be4eedc..96aaf2f 100644
57889 --- a/drivers/thermal/of-thermal.c
57890 +++ b/drivers/thermal/of-thermal.c
57891 @@ -31,6 +31,7 @@
57892 #include <linux/export.h>
57893 #include <linux/string.h>
57894 #include <linux/thermal.h>
57895 +#include <linux/mm.h>
57896
57897 #include "thermal_core.h"
57898
57899 @@ -417,9 +418,11 @@ thermal_zone_of_add_sensor(struct device_node *zone,
57900 tz->ops = ops;
57901 tz->sensor_data = data;
57902
57903 - tzd->ops->get_temp = of_thermal_get_temp;
57904 - tzd->ops->get_trend = of_thermal_get_trend;
57905 - tzd->ops->set_emul_temp = of_thermal_set_emul_temp;
57906 + pax_open_kernel();
57907 + *(void **)&tzd->ops->get_temp = of_thermal_get_temp;
57908 + *(void **)&tzd->ops->get_trend = of_thermal_get_trend;
57909 + *(void **)&tzd->ops->set_emul_temp = of_thermal_set_emul_temp;
57910 + pax_close_kernel();
57911 mutex_unlock(&tzd->lock);
57912
57913 return tzd;
57914 @@ -549,9 +552,11 @@ void thermal_zone_of_sensor_unregister(struct device *dev,
57915 return;
57916
57917 mutex_lock(&tzd->lock);
57918 - tzd->ops->get_temp = NULL;
57919 - tzd->ops->get_trend = NULL;
57920 - tzd->ops->set_emul_temp = NULL;
57921 + pax_open_kernel();
57922 + *(void **)&tzd->ops->get_temp = NULL;
57923 + *(void **)&tzd->ops->get_trend = NULL;
57924 + *(void **)&tzd->ops->set_emul_temp = NULL;
57925 + pax_close_kernel();
57926
57927 tz->ops = NULL;
57928 tz->sensor_data = NULL;
57929 diff --git a/drivers/thermal/x86_pkg_temp_thermal.c b/drivers/thermal/x86_pkg_temp_thermal.c
57930 index 7fc919f..5521ec1 100644
57931 --- a/drivers/thermal/x86_pkg_temp_thermal.c
57932 +++ b/drivers/thermal/x86_pkg_temp_thermal.c
57933 @@ -567,7 +567,7 @@ static int pkg_temp_thermal_cpu_callback(struct notifier_block *nfb,
57934 return NOTIFY_OK;
57935 }
57936
57937 -static struct notifier_block pkg_temp_thermal_notifier __refdata = {
57938 +static struct notifier_block pkg_temp_thermal_notifier = {
57939 .notifier_call = pkg_temp_thermal_cpu_callback,
57940 };
57941
57942 diff --git a/drivers/tty/cyclades.c b/drivers/tty/cyclades.c
57943 index d4a1331..dc8fe71 100644
57944 --- a/drivers/tty/cyclades.c
57945 +++ b/drivers/tty/cyclades.c
57946 @@ -1570,10 +1570,10 @@ static int cy_open(struct tty_struct *tty, struct file *filp)
57947 printk(KERN_DEBUG "cyc:cy_open ttyC%d, count = %d\n", info->line,
57948 info->port.count);
57949 #endif
57950 - info->port.count++;
57951 + atomic_inc(&info->port.count);
57952 #ifdef CY_DEBUG_COUNT
57953 printk(KERN_DEBUG "cyc:cy_open (%d): incrementing count to %d\n",
57954 - current->pid, info->port.count);
57955 + current->pid, atomic_read(&info->port.count));
57956 #endif
57957
57958 /*
57959 @@ -3961,7 +3961,7 @@ static int cyclades_proc_show(struct seq_file *m, void *v)
57960 for (j = 0; j < cy_card[i].nports; j++) {
57961 info = &cy_card[i].ports[j];
57962
57963 - if (info->port.count) {
57964 + if (atomic_read(&info->port.count)) {
57965 /* XXX is the ldisc num worth this? */
57966 struct tty_struct *tty;
57967 struct tty_ldisc *ld;
57968 diff --git a/drivers/tty/hvc/hvc_console.c b/drivers/tty/hvc/hvc_console.c
57969 index e46d628..d826fa1 100644
57970 --- a/drivers/tty/hvc/hvc_console.c
57971 +++ b/drivers/tty/hvc/hvc_console.c
57972 @@ -343,7 +343,7 @@ static int hvc_open(struct tty_struct *tty, struct file * filp)
57973
57974 spin_lock_irqsave(&hp->port.lock, flags);
57975 /* Check and then increment for fast path open. */
57976 - if (hp->port.count++ > 0) {
57977 + if (atomic_inc_return(&hp->port.count) > 1) {
57978 spin_unlock_irqrestore(&hp->port.lock, flags);
57979 hvc_kick();
57980 return 0;
57981 @@ -398,7 +398,7 @@ static void hvc_close(struct tty_struct *tty, struct file * filp)
57982
57983 spin_lock_irqsave(&hp->port.lock, flags);
57984
57985 - if (--hp->port.count == 0) {
57986 + if (atomic_dec_return(&hp->port.count) == 0) {
57987 spin_unlock_irqrestore(&hp->port.lock, flags);
57988 /* We are done with the tty pointer now. */
57989 tty_port_tty_set(&hp->port, NULL);
57990 @@ -420,9 +420,9 @@ static void hvc_close(struct tty_struct *tty, struct file * filp)
57991 */
57992 tty_wait_until_sent(tty, HVC_CLOSE_WAIT);
57993 } else {
57994 - if (hp->port.count < 0)
57995 + if (atomic_read(&hp->port.count) < 0)
57996 printk(KERN_ERR "hvc_close %X: oops, count is %d\n",
57997 - hp->vtermno, hp->port.count);
57998 + hp->vtermno, atomic_read(&hp->port.count));
57999 spin_unlock_irqrestore(&hp->port.lock, flags);
58000 }
58001 }
58002 @@ -452,12 +452,12 @@ static void hvc_hangup(struct tty_struct *tty)
58003 * open->hangup case this can be called after the final close so prevent
58004 * that from happening for now.
58005 */
58006 - if (hp->port.count <= 0) {
58007 + if (atomic_read(&hp->port.count) <= 0) {
58008 spin_unlock_irqrestore(&hp->port.lock, flags);
58009 return;
58010 }
58011
58012 - hp->port.count = 0;
58013 + atomic_set(&hp->port.count, 0);
58014 spin_unlock_irqrestore(&hp->port.lock, flags);
58015 tty_port_tty_set(&hp->port, NULL);
58016
58017 @@ -505,7 +505,7 @@ static int hvc_write(struct tty_struct *tty, const unsigned char *buf, int count
58018 return -EPIPE;
58019
58020 /* FIXME what's this (unprotected) check for? */
58021 - if (hp->port.count <= 0)
58022 + if (atomic_read(&hp->port.count) <= 0)
58023 return -EIO;
58024
58025 spin_lock_irqsave(&hp->lock, flags);
58026 diff --git a/drivers/tty/hvc/hvcs.c b/drivers/tty/hvc/hvcs.c
58027 index 5997b17..6851dbc 100644
58028 --- a/drivers/tty/hvc/hvcs.c
58029 +++ b/drivers/tty/hvc/hvcs.c
58030 @@ -83,6 +83,7 @@
58031 #include <asm/hvcserver.h>
58032 #include <asm/uaccess.h>
58033 #include <asm/vio.h>
58034 +#include <asm/local.h>
58035
58036 /*
58037 * 1.3.0 -> 1.3.1 In hvcs_open memset(..,0x00,..) instead of memset(..,0x3F,00).
58038 @@ -416,7 +417,7 @@ static ssize_t hvcs_vterm_state_store(struct device *dev, struct device_attribut
58039
58040 spin_lock_irqsave(&hvcsd->lock, flags);
58041
58042 - if (hvcsd->port.count > 0) {
58043 + if (atomic_read(&hvcsd->port.count) > 0) {
58044 spin_unlock_irqrestore(&hvcsd->lock, flags);
58045 printk(KERN_INFO "HVCS: vterm state unchanged. "
58046 "The hvcs device node is still in use.\n");
58047 @@ -1127,7 +1128,7 @@ static int hvcs_install(struct tty_driver *driver, struct tty_struct *tty)
58048 }
58049 }
58050
58051 - hvcsd->port.count = 0;
58052 + atomic_set(&hvcsd->port.count, 0);
58053 hvcsd->port.tty = tty;
58054 tty->driver_data = hvcsd;
58055
58056 @@ -1180,7 +1181,7 @@ static int hvcs_open(struct tty_struct *tty, struct file *filp)
58057 unsigned long flags;
58058
58059 spin_lock_irqsave(&hvcsd->lock, flags);
58060 - hvcsd->port.count++;
58061 + atomic_inc(&hvcsd->port.count);
58062 hvcsd->todo_mask |= HVCS_SCHED_READ;
58063 spin_unlock_irqrestore(&hvcsd->lock, flags);
58064
58065 @@ -1216,7 +1217,7 @@ static void hvcs_close(struct tty_struct *tty, struct file *filp)
58066 hvcsd = tty->driver_data;
58067
58068 spin_lock_irqsave(&hvcsd->lock, flags);
58069 - if (--hvcsd->port.count == 0) {
58070 + if (atomic_dec_and_test(&hvcsd->port.count)) {
58071
58072 vio_disable_interrupts(hvcsd->vdev);
58073
58074 @@ -1241,10 +1242,10 @@ static void hvcs_close(struct tty_struct *tty, struct file *filp)
58075
58076 free_irq(irq, hvcsd);
58077 return;
58078 - } else if (hvcsd->port.count < 0) {
58079 + } else if (atomic_read(&hvcsd->port.count) < 0) {
58080 printk(KERN_ERR "HVCS: vty-server@%X open_count: %d"
58081 " is missmanaged.\n",
58082 - hvcsd->vdev->unit_address, hvcsd->port.count);
58083 + hvcsd->vdev->unit_address, atomic_read(&hvcsd->port.count));
58084 }
58085
58086 spin_unlock_irqrestore(&hvcsd->lock, flags);
58087 @@ -1266,7 +1267,7 @@ static void hvcs_hangup(struct tty_struct * tty)
58088
58089 spin_lock_irqsave(&hvcsd->lock, flags);
58090 /* Preserve this so that we know how many kref refs to put */
58091 - temp_open_count = hvcsd->port.count;
58092 + temp_open_count = atomic_read(&hvcsd->port.count);
58093
58094 /*
58095 * Don't kref put inside the spinlock because the destruction
58096 @@ -1281,7 +1282,7 @@ static void hvcs_hangup(struct tty_struct * tty)
58097 tty->driver_data = NULL;
58098 hvcsd->port.tty = NULL;
58099
58100 - hvcsd->port.count = 0;
58101 + atomic_set(&hvcsd->port.count, 0);
58102
58103 /* This will drop any buffered data on the floor which is OK in a hangup
58104 * scenario. */
58105 @@ -1352,7 +1353,7 @@ static int hvcs_write(struct tty_struct *tty,
58106 * the middle of a write operation? This is a crummy place to do this
58107 * but we want to keep it all in the spinlock.
58108 */
58109 - if (hvcsd->port.count <= 0) {
58110 + if (atomic_read(&hvcsd->port.count) <= 0) {
58111 spin_unlock_irqrestore(&hvcsd->lock, flags);
58112 return -ENODEV;
58113 }
58114 @@ -1426,7 +1427,7 @@ static int hvcs_write_room(struct tty_struct *tty)
58115 {
58116 struct hvcs_struct *hvcsd = tty->driver_data;
58117
58118 - if (!hvcsd || hvcsd->port.count <= 0)
58119 + if (!hvcsd || atomic_read(&hvcsd->port.count) <= 0)
58120 return 0;
58121
58122 return HVCS_BUFF_LEN - hvcsd->chars_in_buffer;
58123 diff --git a/drivers/tty/hvc/hvsi.c b/drivers/tty/hvc/hvsi.c
58124 index a75146f..a52c717 100644
58125 --- a/drivers/tty/hvc/hvsi.c
58126 +++ b/drivers/tty/hvc/hvsi.c
58127 @@ -85,7 +85,7 @@ struct hvsi_struct {
58128 int n_outbuf;
58129 uint32_t vtermno;
58130 uint32_t virq;
58131 - atomic_t seqno; /* HVSI packet sequence number */
58132 + atomic_unchecked_t seqno; /* HVSI packet sequence number */
58133 uint16_t mctrl;
58134 uint8_t state; /* HVSI protocol state */
58135 uint8_t flags;
58136 @@ -297,7 +297,7 @@ static int hvsi_version_respond(struct hvsi_struct *hp, uint16_t query_seqno)
58137
58138 packet.hdr.type = VS_QUERY_RESPONSE_PACKET_HEADER;
58139 packet.hdr.len = sizeof(struct hvsi_query_response);
58140 - packet.hdr.seqno = cpu_to_be16(atomic_inc_return(&hp->seqno));
58141 + packet.hdr.seqno = cpu_to_be16(atomic_inc_return_unchecked(&hp->seqno));
58142 packet.verb = cpu_to_be16(VSV_SEND_VERSION_NUMBER);
58143 packet.u.version = HVSI_VERSION;
58144 packet.query_seqno = cpu_to_be16(query_seqno+1);
58145 @@ -557,7 +557,7 @@ static int hvsi_query(struct hvsi_struct *hp, uint16_t verb)
58146
58147 packet.hdr.type = VS_QUERY_PACKET_HEADER;
58148 packet.hdr.len = sizeof(struct hvsi_query);
58149 - packet.hdr.seqno = cpu_to_be16(atomic_inc_return(&hp->seqno));
58150 + packet.hdr.seqno = cpu_to_be16(atomic_inc_return_unchecked(&hp->seqno));
58151 packet.verb = cpu_to_be16(verb);
58152
58153 pr_debug("%s: sending %i bytes\n", __func__, packet.hdr.len);
58154 @@ -599,7 +599,7 @@ static int hvsi_set_mctrl(struct hvsi_struct *hp, uint16_t mctrl)
58155 int wrote;
58156
58157 packet.hdr.type = VS_CONTROL_PACKET_HEADER;
58158 - packet.hdr.seqno = cpu_to_be16(atomic_inc_return(&hp->seqno));
58159 + packet.hdr.seqno = cpu_to_be16(atomic_inc_return_unchecked(&hp->seqno));
58160 packet.hdr.len = sizeof(struct hvsi_control);
58161 packet.verb = cpu_to_be16(VSV_SET_MODEM_CTL);
58162 packet.mask = cpu_to_be32(HVSI_TSDTR);
58163 @@ -682,7 +682,7 @@ static int hvsi_put_chars(struct hvsi_struct *hp, const char *buf, int count)
58164 BUG_ON(count > HVSI_MAX_OUTGOING_DATA);
58165
58166 packet.hdr.type = VS_DATA_PACKET_HEADER;
58167 - packet.hdr.seqno = cpu_to_be16(atomic_inc_return(&hp->seqno));
58168 + packet.hdr.seqno = cpu_to_be16(atomic_inc_return_unchecked(&hp->seqno));
58169 packet.hdr.len = count + sizeof(struct hvsi_header);
58170 memcpy(&packet.data, buf, count);
58171
58172 @@ -699,7 +699,7 @@ static void hvsi_close_protocol(struct hvsi_struct *hp)
58173 struct hvsi_control packet __ALIGNED__;
58174
58175 packet.hdr.type = VS_CONTROL_PACKET_HEADER;
58176 - packet.hdr.seqno = cpu_to_be16(atomic_inc_return(&hp->seqno));
58177 + packet.hdr.seqno = cpu_to_be16(atomic_inc_return_unchecked(&hp->seqno));
58178 packet.hdr.len = 6;
58179 packet.verb = cpu_to_be16(VSV_CLOSE_PROTOCOL);
58180
58181 @@ -727,7 +727,7 @@ static int hvsi_open(struct tty_struct *tty, struct file *filp)
58182
58183 tty_port_tty_set(&hp->port, tty);
58184 spin_lock_irqsave(&hp->lock, flags);
58185 - hp->port.count++;
58186 + atomic_inc(&hp->port.count);
58187 atomic_set(&hp->seqno, 0);
58188 h_vio_signal(hp->vtermno, VIO_IRQ_ENABLE);
58189 spin_unlock_irqrestore(&hp->lock, flags);
58190 @@ -784,7 +784,7 @@ static void hvsi_close(struct tty_struct *tty, struct file *filp)
58191
58192 spin_lock_irqsave(&hp->lock, flags);
58193
58194 - if (--hp->port.count == 0) {
58195 + if (atomic_dec_return(&hp->port.count) == 0) {
58196 tty_port_tty_set(&hp->port, NULL);
58197 hp->inbuf_end = hp->inbuf; /* discard remaining partial packets */
58198
58199 @@ -817,9 +817,9 @@ static void hvsi_close(struct tty_struct *tty, struct file *filp)
58200
58201 spin_lock_irqsave(&hp->lock, flags);
58202 }
58203 - } else if (hp->port.count < 0)
58204 + } else if (atomic_read(&hp->port.count) < 0)
58205 printk(KERN_ERR "hvsi_close %lu: oops, count is %d\n",
58206 - hp - hvsi_ports, hp->port.count);
58207 + hp - hvsi_ports, atomic_read(&hp->port.count));
58208
58209 spin_unlock_irqrestore(&hp->lock, flags);
58210 }
58211 @@ -834,7 +834,7 @@ static void hvsi_hangup(struct tty_struct *tty)
58212 tty_port_tty_set(&hp->port, NULL);
58213
58214 spin_lock_irqsave(&hp->lock, flags);
58215 - hp->port.count = 0;
58216 + atomic_set(&hp->port.count, 0);
58217 hp->n_outbuf = 0;
58218 spin_unlock_irqrestore(&hp->lock, flags);
58219 }
58220 diff --git a/drivers/tty/hvc/hvsi_lib.c b/drivers/tty/hvc/hvsi_lib.c
58221 index a270f04..7c77b5d 100644
58222 --- a/drivers/tty/hvc/hvsi_lib.c
58223 +++ b/drivers/tty/hvc/hvsi_lib.c
58224 @@ -8,7 +8,7 @@
58225
58226 static int hvsi_send_packet(struct hvsi_priv *pv, struct hvsi_header *packet)
58227 {
58228 - packet->seqno = cpu_to_be16(atomic_inc_return(&pv->seqno));
58229 + packet->seqno = cpu_to_be16(atomic_inc_return_unchecked(&pv->seqno));
58230
58231 /* Assumes that always succeeds, works in practice */
58232 return pv->put_chars(pv->termno, (char *)packet, packet->len);
58233 @@ -20,7 +20,7 @@ static void hvsi_start_handshake(struct hvsi_priv *pv)
58234
58235 /* Reset state */
58236 pv->established = 0;
58237 - atomic_set(&pv->seqno, 0);
58238 + atomic_set_unchecked(&pv->seqno, 0);
58239
58240 pr_devel("HVSI@%x: Handshaking started\n", pv->termno);
58241
58242 diff --git a/drivers/tty/ipwireless/tty.c b/drivers/tty/ipwireless/tty.c
58243 index 345cebb..d5a1e9e 100644
58244 --- a/drivers/tty/ipwireless/tty.c
58245 +++ b/drivers/tty/ipwireless/tty.c
58246 @@ -28,6 +28,7 @@
58247 #include <linux/tty_driver.h>
58248 #include <linux/tty_flip.h>
58249 #include <linux/uaccess.h>
58250 +#include <asm/local.h>
58251
58252 #include "tty.h"
58253 #include "network.h"
58254 @@ -93,10 +94,10 @@ static int ipw_open(struct tty_struct *linux_tty, struct file *filp)
58255 return -ENODEV;
58256
58257 mutex_lock(&tty->ipw_tty_mutex);
58258 - if (tty->port.count == 0)
58259 + if (atomic_read(&tty->port.count) == 0)
58260 tty->tx_bytes_queued = 0;
58261
58262 - tty->port.count++;
58263 + atomic_inc(&tty->port.count);
58264
58265 tty->port.tty = linux_tty;
58266 linux_tty->driver_data = tty;
58267 @@ -112,9 +113,7 @@ static int ipw_open(struct tty_struct *linux_tty, struct file *filp)
58268
58269 static void do_ipw_close(struct ipw_tty *tty)
58270 {
58271 - tty->port.count--;
58272 -
58273 - if (tty->port.count == 0) {
58274 + if (atomic_dec_return(&tty->port.count) == 0) {
58275 struct tty_struct *linux_tty = tty->port.tty;
58276
58277 if (linux_tty != NULL) {
58278 @@ -135,7 +134,7 @@ static void ipw_hangup(struct tty_struct *linux_tty)
58279 return;
58280
58281 mutex_lock(&tty->ipw_tty_mutex);
58282 - if (tty->port.count == 0) {
58283 + if (atomic_read(&tty->port.count) == 0) {
58284 mutex_unlock(&tty->ipw_tty_mutex);
58285 return;
58286 }
58287 @@ -158,7 +157,7 @@ void ipwireless_tty_received(struct ipw_tty *tty, unsigned char *data,
58288
58289 mutex_lock(&tty->ipw_tty_mutex);
58290
58291 - if (!tty->port.count) {
58292 + if (!atomic_read(&tty->port.count)) {
58293 mutex_unlock(&tty->ipw_tty_mutex);
58294 return;
58295 }
58296 @@ -197,7 +196,7 @@ static int ipw_write(struct tty_struct *linux_tty,
58297 return -ENODEV;
58298
58299 mutex_lock(&tty->ipw_tty_mutex);
58300 - if (!tty->port.count) {
58301 + if (!atomic_read(&tty->port.count)) {
58302 mutex_unlock(&tty->ipw_tty_mutex);
58303 return -EINVAL;
58304 }
58305 @@ -237,7 +236,7 @@ static int ipw_write_room(struct tty_struct *linux_tty)
58306 if (!tty)
58307 return -ENODEV;
58308
58309 - if (!tty->port.count)
58310 + if (!atomic_read(&tty->port.count))
58311 return -EINVAL;
58312
58313 room = IPWIRELESS_TX_QUEUE_SIZE - tty->tx_bytes_queued;
58314 @@ -279,7 +278,7 @@ static int ipw_chars_in_buffer(struct tty_struct *linux_tty)
58315 if (!tty)
58316 return 0;
58317
58318 - if (!tty->port.count)
58319 + if (!atomic_read(&tty->port.count))
58320 return 0;
58321
58322 return tty->tx_bytes_queued;
58323 @@ -360,7 +359,7 @@ static int ipw_tiocmget(struct tty_struct *linux_tty)
58324 if (!tty)
58325 return -ENODEV;
58326
58327 - if (!tty->port.count)
58328 + if (!atomic_read(&tty->port.count))
58329 return -EINVAL;
58330
58331 return get_control_lines(tty);
58332 @@ -376,7 +375,7 @@ ipw_tiocmset(struct tty_struct *linux_tty,
58333 if (!tty)
58334 return -ENODEV;
58335
58336 - if (!tty->port.count)
58337 + if (!atomic_read(&tty->port.count))
58338 return -EINVAL;
58339
58340 return set_control_lines(tty, set, clear);
58341 @@ -390,7 +389,7 @@ static int ipw_ioctl(struct tty_struct *linux_tty,
58342 if (!tty)
58343 return -ENODEV;
58344
58345 - if (!tty->port.count)
58346 + if (!atomic_read(&tty->port.count))
58347 return -EINVAL;
58348
58349 /* FIXME: Exactly how is the tty object locked here .. */
58350 @@ -546,7 +545,7 @@ void ipwireless_tty_free(struct ipw_tty *tty)
58351 * are gone */
58352 mutex_lock(&ttyj->ipw_tty_mutex);
58353 }
58354 - while (ttyj->port.count)
58355 + while (atomic_read(&ttyj->port.count))
58356 do_ipw_close(ttyj);
58357 ipwireless_disassociate_network_ttys(network,
58358 ttyj->channel_idx);
58359 diff --git a/drivers/tty/moxa.c b/drivers/tty/moxa.c
58360 index 14c54e0..1efd4f2 100644
58361 --- a/drivers/tty/moxa.c
58362 +++ b/drivers/tty/moxa.c
58363 @@ -1189,7 +1189,7 @@ static int moxa_open(struct tty_struct *tty, struct file *filp)
58364 }
58365
58366 ch = &brd->ports[port % MAX_PORTS_PER_BOARD];
58367 - ch->port.count++;
58368 + atomic_inc(&ch->port.count);
58369 tty->driver_data = ch;
58370 tty_port_tty_set(&ch->port, tty);
58371 mutex_lock(&ch->port.mutex);
58372 diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
58373 index c3fe026..9cfe421 100644
58374 --- a/drivers/tty/n_gsm.c
58375 +++ b/drivers/tty/n_gsm.c
58376 @@ -1644,7 +1644,7 @@ static struct gsm_dlci *gsm_dlci_alloc(struct gsm_mux *gsm, int addr)
58377 spin_lock_init(&dlci->lock);
58378 mutex_init(&dlci->mutex);
58379 dlci->fifo = &dlci->_fifo;
58380 - if (kfifo_alloc(&dlci->_fifo, 4096, GFP_KERNEL) < 0) {
58381 + if (kfifo_alloc(&dlci->_fifo, 4096, GFP_KERNEL)) {
58382 kfree(dlci);
58383 return NULL;
58384 }
58385 @@ -2957,7 +2957,7 @@ static int gsmtty_open(struct tty_struct *tty, struct file *filp)
58386 struct gsm_dlci *dlci = tty->driver_data;
58387 struct tty_port *port = &dlci->port;
58388
58389 - port->count++;
58390 + atomic_inc(&port->count);
58391 tty_port_tty_set(port, tty);
58392
58393 dlci->modem_rx = 0;
58394 diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c
58395 index cf000b3..63baffa 100644
58396 --- a/drivers/tty/n_tty.c
58397 +++ b/drivers/tty/n_tty.c
58398 @@ -1507,7 +1507,7 @@ n_tty_receive_char_lnext(struct tty_struct *tty, unsigned char c, char flag)
58399
58400 static void
58401 n_tty_receive_buf_real_raw(struct tty_struct *tty, const unsigned char *cp,
58402 - char *fp, int count)
58403 + char *fp, size_t count)
58404 {
58405 struct n_tty_data *ldata = tty->disc_data;
58406 size_t n, head;
58407 @@ -1527,7 +1527,7 @@ n_tty_receive_buf_real_raw(struct tty_struct *tty, const unsigned char *cp,
58408
58409 static void
58410 n_tty_receive_buf_raw(struct tty_struct *tty, const unsigned char *cp,
58411 - char *fp, int count)
58412 + char *fp, size_t count)
58413 {
58414 struct n_tty_data *ldata = tty->disc_data;
58415 char flag = TTY_NORMAL;
58416 @@ -1544,7 +1544,7 @@ n_tty_receive_buf_raw(struct tty_struct *tty, const unsigned char *cp,
58417
58418 static void
58419 n_tty_receive_buf_closing(struct tty_struct *tty, const unsigned char *cp,
58420 - char *fp, int count)
58421 + char *fp, size_t count)
58422 {
58423 char flag = TTY_NORMAL;
58424
58425 @@ -1560,7 +1560,7 @@ n_tty_receive_buf_closing(struct tty_struct *tty, const unsigned char *cp,
58426
58427 static void
58428 n_tty_receive_buf_standard(struct tty_struct *tty, const unsigned char *cp,
58429 - char *fp, int count)
58430 + char *fp, size_t count)
58431 {
58432 struct n_tty_data *ldata = tty->disc_data;
58433 char flag = TTY_NORMAL;
58434 @@ -1594,7 +1594,7 @@ n_tty_receive_buf_standard(struct tty_struct *tty, const unsigned char *cp,
58435
58436 static void
58437 n_tty_receive_buf_fast(struct tty_struct *tty, const unsigned char *cp,
58438 - char *fp, int count)
58439 + char *fp, size_t count)
58440 {
58441 struct n_tty_data *ldata = tty->disc_data;
58442 char flag = TTY_NORMAL;
58443 @@ -1619,7 +1619,7 @@ n_tty_receive_buf_fast(struct tty_struct *tty, const unsigned char *cp,
58444 }
58445
58446 static void __receive_buf(struct tty_struct *tty, const unsigned char *cp,
58447 - char *fp, int count)
58448 + char *fp, size_t count)
58449 {
58450 struct n_tty_data *ldata = tty->disc_data;
58451 bool preops = I_ISTRIP(tty) || (I_IUCLC(tty) && L_IEXTEN(tty));
58452 @@ -1697,10 +1697,10 @@ static void __receive_buf(struct tty_struct *tty, const unsigned char *cp,
58453 */
58454 static int
58455 n_tty_receive_buf_common(struct tty_struct *tty, const unsigned char *cp,
58456 - char *fp, int count, int flow)
58457 + char *fp, size_t count, int flow)
58458 {
58459 struct n_tty_data *ldata = tty->disc_data;
58460 - int room, n, rcvd = 0, overflow;
58461 + size_t room, n, rcvd = 0, overflow;
58462
58463 down_read(&tty->termios_rwsem);
58464
58465 @@ -2550,6 +2550,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ops *ops)
58466 {
58467 *ops = tty_ldisc_N_TTY;
58468 ops->owner = NULL;
58469 - ops->refcount = ops->flags = 0;
58470 + atomic_set(&ops->refcount, 0);
58471 + ops->flags = 0;
58472 }
58473 EXPORT_SYMBOL_GPL(n_tty_inherit_ops);
58474 diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c
58475 index 78e9836..021d40e 100644
58476 --- a/drivers/tty/pty.c
58477 +++ b/drivers/tty/pty.c
58478 @@ -879,8 +879,10 @@ static void __init unix98_pty_init(void)
58479 panic("Couldn't register Unix98 pts driver");
58480
58481 /* Now create the /dev/ptmx special device */
58482 + pax_open_kernel();
58483 tty_default_fops(&ptmx_fops);
58484 - ptmx_fops.open = ptmx_open;
58485 + *(void **)&ptmx_fops.open = ptmx_open;
58486 + pax_close_kernel();
58487
58488 cdev_init(&ptmx_cdev, &ptmx_fops);
58489 if (cdev_add(&ptmx_cdev, MKDEV(TTYAUX_MAJOR, 2), 1) ||
58490 diff --git a/drivers/tty/rocket.c b/drivers/tty/rocket.c
58491 index 802eac7..f5dcf07 100644
58492 --- a/drivers/tty/rocket.c
58493 +++ b/drivers/tty/rocket.c
58494 @@ -906,7 +906,7 @@ static int rp_open(struct tty_struct *tty, struct file *filp)
58495 tty->driver_data = info;
58496 tty_port_tty_set(port, tty);
58497
58498 - if (port->count++ == 0) {
58499 + if (atomic_inc_return(&port->count) == 1) {
58500 atomic_inc(&rp_num_ports_open);
58501
58502 #ifdef ROCKET_DEBUG_OPEN
58503 @@ -915,7 +915,7 @@ static int rp_open(struct tty_struct *tty, struct file *filp)
58504 #endif
58505 }
58506 #ifdef ROCKET_DEBUG_OPEN
58507 - printk(KERN_INFO "rp_open ttyR%d, count=%d\n", info->line, info->port.count);
58508 + printk(KERN_INFO "rp_open ttyR%d, count=%d\n", info->line, atomic-read(&info->port.count));
58509 #endif
58510
58511 /*
58512 @@ -1502,7 +1502,7 @@ static void rp_hangup(struct tty_struct *tty)
58513 #endif
58514 rp_flush_buffer(tty);
58515 spin_lock_irqsave(&info->port.lock, flags);
58516 - if (info->port.count)
58517 + if (atomic_read(&info->port.count))
58518 atomic_dec(&rp_num_ports_open);
58519 clear_bit((info->aiop * 8) + info->chan, (void *) &xmit_flags[info->board]);
58520 spin_unlock_irqrestore(&info->port.lock, flags);
58521 diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/8250_core.c
58522 index 3912646..9a324e9 100644
58523 --- a/drivers/tty/serial/8250/8250_core.c
58524 +++ b/drivers/tty/serial/8250/8250_core.c
58525 @@ -488,9 +488,9 @@ static void univ8250_release_port(struct uart_port *port)
58526
58527 static void univ8250_rsa_support(struct uart_ops *ops)
58528 {
58529 - ops->config_port = univ8250_config_port;
58530 - ops->request_port = univ8250_request_port;
58531 - ops->release_port = univ8250_release_port;
58532 + *(void **)&ops->config_port = univ8250_config_port;
58533 + *(void **)&ops->request_port = univ8250_request_port;
58534 + *(void **)&ops->release_port = univ8250_release_port;
58535 }
58536
58537 #else
58538 @@ -533,8 +533,10 @@ static void __init serial8250_isa_init_ports(void)
58539 }
58540
58541 /* chain base port ops to support Remote Supervisor Adapter */
58542 - univ8250_port_ops = *base_ops;
58543 + pax_open_kernel();
58544 + memcpy((void *)&univ8250_port_ops, base_ops, sizeof univ8250_port_ops);
58545 univ8250_rsa_support(&univ8250_port_ops);
58546 + pax_close_kernel();
58547
58548 if (share_irqs)
58549 irqflag = IRQF_SHARED;
58550 diff --git a/drivers/tty/serial/ifx6x60.c b/drivers/tty/serial/ifx6x60.c
58551 index 88246f7..9036604 100644
58552 --- a/drivers/tty/serial/ifx6x60.c
58553 +++ b/drivers/tty/serial/ifx6x60.c
58554 @@ -649,7 +649,7 @@ static void ifx_spi_complete(void *ctx)
58555 struct ifx_spi_device *ifx_dev = ctx;
58556 int length;
58557 int actual_length;
58558 - unsigned char more;
58559 + unsigned char more = 0;
58560 unsigned char cts;
58561 int local_write_pending = 0;
58562 int queue_length;
58563 diff --git a/drivers/tty/serial/ioc4_serial.c b/drivers/tty/serial/ioc4_serial.c
58564 index e5c42fe..f091b02 100644
58565 --- a/drivers/tty/serial/ioc4_serial.c
58566 +++ b/drivers/tty/serial/ioc4_serial.c
58567 @@ -437,7 +437,7 @@ struct ioc4_soft {
58568 } is_intr_info[MAX_IOC4_INTR_ENTS];
58569
58570 /* Number of entries active in the above array */
58571 - atomic_t is_num_intrs;
58572 + atomic_unchecked_t is_num_intrs;
58573 } is_intr_type[IOC4_NUM_INTR_TYPES];
58574
58575 /* is_ir_lock must be held while
58576 @@ -974,7 +974,7 @@ intr_connect(struct ioc4_soft *soft, int type,
58577 BUG_ON(!((type == IOC4_SIO_INTR_TYPE)
58578 || (type == IOC4_OTHER_INTR_TYPE)));
58579
58580 - i = atomic_inc_return(&soft-> is_intr_type[type].is_num_intrs) - 1;
58581 + i = atomic_inc_return_unchecked(&soft-> is_intr_type[type].is_num_intrs) - 1;
58582 BUG_ON(!(i < MAX_IOC4_INTR_ENTS || (printk("i %d\n", i), 0)));
58583
58584 /* Save off the lower level interrupt handler */
58585 @@ -1001,7 +1001,7 @@ static irqreturn_t ioc4_intr(int irq, void *arg)
58586
58587 soft = arg;
58588 for (intr_type = 0; intr_type < IOC4_NUM_INTR_TYPES; intr_type++) {
58589 - num_intrs = (int)atomic_read(
58590 + num_intrs = (int)atomic_read_unchecked(
58591 &soft->is_intr_type[intr_type].is_num_intrs);
58592
58593 this_mir = this_ir = pending_intrs(soft, intr_type);
58594 diff --git a/drivers/tty/serial/kgdb_nmi.c b/drivers/tty/serial/kgdb_nmi.c
58595 index 117df15..2f7dfcf 100644
58596 --- a/drivers/tty/serial/kgdb_nmi.c
58597 +++ b/drivers/tty/serial/kgdb_nmi.c
58598 @@ -53,7 +53,9 @@ static int kgdb_nmi_console_setup(struct console *co, char *options)
58599 * I/O utilities that messages sent to the console will automatically
58600 * be displayed on the dbg_io.
58601 */
58602 - dbg_io_ops->is_console = true;
58603 + pax_open_kernel();
58604 + *(int *)&dbg_io_ops->is_console = true;
58605 + pax_close_kernel();
58606
58607 return 0;
58608 }
58609 diff --git a/drivers/tty/serial/kgdboc.c b/drivers/tty/serial/kgdboc.c
58610 index a260cde..6b2b5ce 100644
58611 --- a/drivers/tty/serial/kgdboc.c
58612 +++ b/drivers/tty/serial/kgdboc.c
58613 @@ -24,8 +24,9 @@
58614 #define MAX_CONFIG_LEN 40
58615
58616 static struct kgdb_io kgdboc_io_ops;
58617 +static struct kgdb_io kgdboc_io_ops_console;
58618
58619 -/* -1 = init not run yet, 0 = unconfigured, 1 = configured. */
58620 +/* -1 = init not run yet, 0 = unconfigured, 1/2 = configured. */
58621 static int configured = -1;
58622
58623 static char config[MAX_CONFIG_LEN];
58624 @@ -151,6 +152,8 @@ static void cleanup_kgdboc(void)
58625 kgdboc_unregister_kbd();
58626 if (configured == 1)
58627 kgdb_unregister_io_module(&kgdboc_io_ops);
58628 + else if (configured == 2)
58629 + kgdb_unregister_io_module(&kgdboc_io_ops_console);
58630 }
58631
58632 static int configure_kgdboc(void)
58633 @@ -160,13 +163,13 @@ static int configure_kgdboc(void)
58634 int err;
58635 char *cptr = config;
58636 struct console *cons;
58637 + int is_console = 0;
58638
58639 err = kgdboc_option_setup(config);
58640 if (err || !strlen(config) || isspace(config[0]))
58641 goto noconfig;
58642
58643 err = -ENODEV;
58644 - kgdboc_io_ops.is_console = 0;
58645 kgdb_tty_driver = NULL;
58646
58647 kgdboc_use_kms = 0;
58648 @@ -187,7 +190,7 @@ static int configure_kgdboc(void)
58649 int idx;
58650 if (cons->device && cons->device(cons, &idx) == p &&
58651 idx == tty_line) {
58652 - kgdboc_io_ops.is_console = 1;
58653 + is_console = 1;
58654 break;
58655 }
58656 cons = cons->next;
58657 @@ -197,7 +200,13 @@ static int configure_kgdboc(void)
58658 kgdb_tty_line = tty_line;
58659
58660 do_register:
58661 - err = kgdb_register_io_module(&kgdboc_io_ops);
58662 + if (is_console) {
58663 + err = kgdb_register_io_module(&kgdboc_io_ops_console);
58664 + configured = 2;
58665 + } else {
58666 + err = kgdb_register_io_module(&kgdboc_io_ops);
58667 + configured = 1;
58668 + }
58669 if (err)
58670 goto noconfig;
58671
58672 @@ -205,8 +214,6 @@ do_register:
58673 if (err)
58674 goto nmi_con_failed;
58675
58676 - configured = 1;
58677 -
58678 return 0;
58679
58680 nmi_con_failed:
58681 @@ -223,7 +230,7 @@ noconfig:
58682 static int __init init_kgdboc(void)
58683 {
58684 /* Already configured? */
58685 - if (configured == 1)
58686 + if (configured >= 1)
58687 return 0;
58688
58689 return configure_kgdboc();
58690 @@ -272,7 +279,7 @@ static int param_set_kgdboc_var(const char *kmessage, struct kernel_param *kp)
58691 if (config[len - 1] == '\n')
58692 config[len - 1] = '\0';
58693
58694 - if (configured == 1)
58695 + if (configured >= 1)
58696 cleanup_kgdboc();
58697
58698 /* Go and configure with the new params. */
58699 @@ -312,6 +319,15 @@ static struct kgdb_io kgdboc_io_ops = {
58700 .post_exception = kgdboc_post_exp_handler,
58701 };
58702
58703 +static struct kgdb_io kgdboc_io_ops_console = {
58704 + .name = "kgdboc",
58705 + .read_char = kgdboc_get_char,
58706 + .write_char = kgdboc_put_char,
58707 + .pre_exception = kgdboc_pre_exp_handler,
58708 + .post_exception = kgdboc_post_exp_handler,
58709 + .is_console = 1
58710 +};
58711 +
58712 #ifdef CONFIG_KGDB_SERIAL_CONSOLE
58713 /* This is only available if kgdboc is a built in for early debugging */
58714 static int __init kgdboc_early_init(char *opt)
58715 diff --git a/drivers/tty/serial/msm_serial.c b/drivers/tty/serial/msm_serial.c
58716 index dcde955..920693f 100644
58717 --- a/drivers/tty/serial/msm_serial.c
58718 +++ b/drivers/tty/serial/msm_serial.c
58719 @@ -1530,7 +1530,7 @@ static struct uart_driver msm_uart_driver = {
58720 .cons = MSM_CONSOLE,
58721 };
58722
58723 -static atomic_t msm_uart_next_id = ATOMIC_INIT(0);
58724 +static atomic_unchecked_t msm_uart_next_id = ATOMIC_INIT(0);
58725
58726 static const struct of_device_id msm_uartdm_table[] = {
58727 { .compatible = "qcom,msm-uartdm-v1.1", .data = (void *)UARTDM_1P1 },
58728 @@ -1554,7 +1554,7 @@ static int msm_serial_probe(struct platform_device *pdev)
58729 line = pdev->id;
58730
58731 if (line < 0)
58732 - line = atomic_inc_return(&msm_uart_next_id) - 1;
58733 + line = atomic_inc_return_unchecked(&msm_uart_next_id) - 1;
58734
58735 if (unlikely(line < 0 || line >= UART_NR))
58736 return -ENXIO;
58737 diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c
58738 index d72cd73..aac0435 100644
58739 --- a/drivers/tty/serial/samsung.c
58740 +++ b/drivers/tty/serial/samsung.c
58741 @@ -970,11 +970,16 @@ static void s3c24xx_serial_shutdown(struct uart_port *port)
58742 ourport->tx_in_progress = 0;
58743 }
58744
58745 +static int s3c64xx_serial_startup(struct uart_port *port);
58746 static int s3c24xx_serial_startup(struct uart_port *port)
58747 {
58748 struct s3c24xx_uart_port *ourport = to_ourport(port);
58749 int ret;
58750
58751 + /* Startup sequence is different for s3c64xx and higher SoC's */
58752 + if (s3c24xx_serial_has_interrupt_mask(port))
58753 + return s3c64xx_serial_startup(port);
58754 +
58755 dbg("s3c24xx_serial_startup: port=%p (%08llx,%p)\n",
58756 port, (unsigned long long)port->mapbase, port->membase);
58757
58758 @@ -1681,10 +1686,6 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
58759 /* setup info for port */
58760 port->dev = &platdev->dev;
58761
58762 - /* Startup sequence is different for s3c64xx and higher SoC's */
58763 - if (s3c24xx_serial_has_interrupt_mask(port))
58764 - s3c24xx_serial_ops.startup = s3c64xx_serial_startup;
58765 -
58766 port->uartclk = 1;
58767
58768 if (cfg->uart_flags & UPF_CONS_FLOW) {
58769 diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
58770 index def5199..34857ea 100644
58771 --- a/drivers/tty/serial/serial_core.c
58772 +++ b/drivers/tty/serial/serial_core.c
58773 @@ -1384,7 +1384,7 @@ static void uart_close(struct tty_struct *tty, struct file *filp)
58774 state = drv->state + tty->index;
58775 port = &state->port;
58776 spin_lock_irq(&port->lock);
58777 - --port->count;
58778 + atomic_dec(&port->count);
58779 spin_unlock_irq(&port->lock);
58780 return;
58781 }
58782 @@ -1394,7 +1394,7 @@ static void uart_close(struct tty_struct *tty, struct file *filp)
58783
58784 pr_debug("uart_close(%d) called\n", uport ? uport->line : -1);
58785
58786 - if (!port->count || tty_port_close_start(port, tty, filp) == 0)
58787 + if (!atomic_read(&port->count) || tty_port_close_start(port, tty, filp) == 0)
58788 return;
58789
58790 /*
58791 @@ -1517,7 +1517,7 @@ static void uart_hangup(struct tty_struct *tty)
58792 uart_flush_buffer(tty);
58793 uart_shutdown(tty, state);
58794 spin_lock_irqsave(&port->lock, flags);
58795 - port->count = 0;
58796 + atomic_set(&port->count, 0);
58797 clear_bit(ASYNCB_NORMAL_ACTIVE, &port->flags);
58798 spin_unlock_irqrestore(&port->lock, flags);
58799 tty_port_tty_set(port, NULL);
58800 @@ -1599,7 +1599,7 @@ static int uart_open(struct tty_struct *tty, struct file *filp)
58801 pr_debug("uart_open(%d) called\n", line);
58802
58803 spin_lock_irq(&port->lock);
58804 - ++port->count;
58805 + atomic_inc(&port->count);
58806 spin_unlock_irq(&port->lock);
58807
58808 /*
58809 diff --git a/drivers/tty/serial/uartlite.c b/drivers/tty/serial/uartlite.c
58810 index b1c6bd3..5f038e2 100644
58811 --- a/drivers/tty/serial/uartlite.c
58812 +++ b/drivers/tty/serial/uartlite.c
58813 @@ -341,13 +341,13 @@ static int ulite_request_port(struct uart_port *port)
58814 return -EBUSY;
58815 }
58816
58817 - port->private_data = &uartlite_be;
58818 + port->private_data = (void *)&uartlite_be;
58819 ret = uart_in32(ULITE_CONTROL, port);
58820 uart_out32(ULITE_CONTROL_RST_TX, ULITE_CONTROL, port);
58821 ret = uart_in32(ULITE_STATUS, port);
58822 /* Endianess detection */
58823 if ((ret & ULITE_STATUS_TXEMPTY) != ULITE_STATUS_TXEMPTY)
58824 - port->private_data = &uartlite_le;
58825 + port->private_data = (void *)&uartlite_le;
58826
58827 return 0;
58828 }
58829 diff --git a/drivers/tty/synclink.c b/drivers/tty/synclink.c
58830 index 6188059..24bff50 100644
58831 --- a/drivers/tty/synclink.c
58832 +++ b/drivers/tty/synclink.c
58833 @@ -3090,7 +3090,7 @@ static void mgsl_close(struct tty_struct *tty, struct file * filp)
58834
58835 if (debug_level >= DEBUG_LEVEL_INFO)
58836 printk("%s(%d):mgsl_close(%s) entry, count=%d\n",
58837 - __FILE__,__LINE__, info->device_name, info->port.count);
58838 + __FILE__,__LINE__, info->device_name, atomic_read(&info->port.count));
58839
58840 if (tty_port_close_start(&info->port, tty, filp) == 0)
58841 goto cleanup;
58842 @@ -3108,7 +3108,7 @@ static void mgsl_close(struct tty_struct *tty, struct file * filp)
58843 cleanup:
58844 if (debug_level >= DEBUG_LEVEL_INFO)
58845 printk("%s(%d):mgsl_close(%s) exit, count=%d\n", __FILE__,__LINE__,
58846 - tty->driver->name, info->port.count);
58847 + tty->driver->name, atomic_read(&info->port.count));
58848
58849 } /* end of mgsl_close() */
58850
58851 @@ -3207,8 +3207,8 @@ static void mgsl_hangup(struct tty_struct *tty)
58852
58853 mgsl_flush_buffer(tty);
58854 shutdown(info);
58855 -
58856 - info->port.count = 0;
58857 +
58858 + atomic_set(&info->port.count, 0);
58859 info->port.flags &= ~ASYNC_NORMAL_ACTIVE;
58860 info->port.tty = NULL;
58861
58862 @@ -3296,10 +3296,10 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp,
58863
58864 if (debug_level >= DEBUG_LEVEL_INFO)
58865 printk("%s(%d):block_til_ready before block on %s count=%d\n",
58866 - __FILE__,__LINE__, tty->driver->name, port->count );
58867 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
58868
58869 spin_lock_irqsave(&info->irq_spinlock, flags);
58870 - port->count--;
58871 + atomic_dec(&port->count);
58872 spin_unlock_irqrestore(&info->irq_spinlock, flags);
58873 port->blocked_open++;
58874
58875 @@ -3326,7 +3326,7 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp,
58876
58877 if (debug_level >= DEBUG_LEVEL_INFO)
58878 printk("%s(%d):block_til_ready blocking on %s count=%d\n",
58879 - __FILE__,__LINE__, tty->driver->name, port->count );
58880 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
58881
58882 tty_unlock(tty);
58883 schedule();
58884 @@ -3338,12 +3338,12 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp,
58885
58886 /* FIXME: Racy on hangup during close wait */
58887 if (!tty_hung_up_p(filp))
58888 - port->count++;
58889 + atomic_inc(&port->count);
58890 port->blocked_open--;
58891
58892 if (debug_level >= DEBUG_LEVEL_INFO)
58893 printk("%s(%d):block_til_ready after blocking on %s count=%d\n",
58894 - __FILE__,__LINE__, tty->driver->name, port->count );
58895 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
58896
58897 if (!retval)
58898 port->flags |= ASYNC_NORMAL_ACTIVE;
58899 @@ -3395,7 +3395,7 @@ static int mgsl_open(struct tty_struct *tty, struct file * filp)
58900
58901 if (debug_level >= DEBUG_LEVEL_INFO)
58902 printk("%s(%d):mgsl_open(%s), old ref count = %d\n",
58903 - __FILE__,__LINE__,tty->driver->name, info->port.count);
58904 + __FILE__,__LINE__,tty->driver->name, atomic_read(&info->port.count));
58905
58906 info->port.low_latency = (info->port.flags & ASYNC_LOW_LATENCY) ? 1 : 0;
58907
58908 @@ -3405,10 +3405,10 @@ static int mgsl_open(struct tty_struct *tty, struct file * filp)
58909 spin_unlock_irqrestore(&info->netlock, flags);
58910 goto cleanup;
58911 }
58912 - info->port.count++;
58913 + atomic_inc(&info->port.count);
58914 spin_unlock_irqrestore(&info->netlock, flags);
58915
58916 - if (info->port.count == 1) {
58917 + if (atomic_read(&info->port.count) == 1) {
58918 /* 1st open on this device, init hardware */
58919 retval = startup(info);
58920 if (retval < 0)
58921 @@ -3432,8 +3432,8 @@ cleanup:
58922 if (retval) {
58923 if (tty->count == 1)
58924 info->port.tty = NULL; /* tty layer will release tty struct */
58925 - if(info->port.count)
58926 - info->port.count--;
58927 + if (atomic_read(&info->port.count))
58928 + atomic_dec(&info->port.count);
58929 }
58930
58931 return retval;
58932 @@ -7652,7 +7652,7 @@ static int hdlcdev_attach(struct net_device *dev, unsigned short encoding,
58933 unsigned short new_crctype;
58934
58935 /* return error if TTY interface open */
58936 - if (info->port.count)
58937 + if (atomic_read(&info->port.count))
58938 return -EBUSY;
58939
58940 switch (encoding)
58941 @@ -7748,7 +7748,7 @@ static int hdlcdev_open(struct net_device *dev)
58942
58943 /* arbitrate between network and tty opens */
58944 spin_lock_irqsave(&info->netlock, flags);
58945 - if (info->port.count != 0 || info->netcount != 0) {
58946 + if (atomic_read(&info->port.count) != 0 || info->netcount != 0) {
58947 printk(KERN_WARNING "%s: hdlc_open returning busy\n", dev->name);
58948 spin_unlock_irqrestore(&info->netlock, flags);
58949 return -EBUSY;
58950 @@ -7834,7 +7834,7 @@ static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
58951 printk("%s:hdlcdev_ioctl(%s)\n",__FILE__,dev->name);
58952
58953 /* return error if TTY interface open */
58954 - if (info->port.count)
58955 + if (atomic_read(&info->port.count))
58956 return -EBUSY;
58957
58958 if (cmd != SIOCWANDEV)
58959 diff --git a/drivers/tty/synclink_gt.c b/drivers/tty/synclink_gt.c
58960 index 6fc39fb..bb25ac4 100644
58961 --- a/drivers/tty/synclink_gt.c
58962 +++ b/drivers/tty/synclink_gt.c
58963 @@ -670,7 +670,7 @@ static int open(struct tty_struct *tty, struct file *filp)
58964 tty->driver_data = info;
58965 info->port.tty = tty;
58966
58967 - DBGINFO(("%s open, old ref count = %d\n", info->device_name, info->port.count));
58968 + DBGINFO(("%s open, old ref count = %d\n", info->device_name, atomic_read(&info->port.count)));
58969
58970 mutex_lock(&info->port.mutex);
58971 info->port.low_latency = (info->port.flags & ASYNC_LOW_LATENCY) ? 1 : 0;
58972 @@ -682,10 +682,10 @@ static int open(struct tty_struct *tty, struct file *filp)
58973 mutex_unlock(&info->port.mutex);
58974 goto cleanup;
58975 }
58976 - info->port.count++;
58977 + atomic_inc(&info->port.count);
58978 spin_unlock_irqrestore(&info->netlock, flags);
58979
58980 - if (info->port.count == 1) {
58981 + if (atomic_read(&info->port.count) == 1) {
58982 /* 1st open on this device, init hardware */
58983 retval = startup(info);
58984 if (retval < 0) {
58985 @@ -706,8 +706,8 @@ cleanup:
58986 if (retval) {
58987 if (tty->count == 1)
58988 info->port.tty = NULL; /* tty layer will release tty struct */
58989 - if(info->port.count)
58990 - info->port.count--;
58991 + if(atomic_read(&info->port.count))
58992 + atomic_dec(&info->port.count);
58993 }
58994
58995 DBGINFO(("%s open rc=%d\n", info->device_name, retval));
58996 @@ -720,7 +720,7 @@ static void close(struct tty_struct *tty, struct file *filp)
58997
58998 if (sanity_check(info, tty->name, "close"))
58999 return;
59000 - DBGINFO(("%s close entry, count=%d\n", info->device_name, info->port.count));
59001 + DBGINFO(("%s close entry, count=%d\n", info->device_name, atomic_read(&info->port.count)));
59002
59003 if (tty_port_close_start(&info->port, tty, filp) == 0)
59004 goto cleanup;
59005 @@ -737,7 +737,7 @@ static void close(struct tty_struct *tty, struct file *filp)
59006 tty_port_close_end(&info->port, tty);
59007 info->port.tty = NULL;
59008 cleanup:
59009 - DBGINFO(("%s close exit, count=%d\n", tty->driver->name, info->port.count));
59010 + DBGINFO(("%s close exit, count=%d\n", tty->driver->name, atomic_read(&info->port.count)));
59011 }
59012
59013 static void hangup(struct tty_struct *tty)
59014 @@ -755,7 +755,7 @@ static void hangup(struct tty_struct *tty)
59015 shutdown(info);
59016
59017 spin_lock_irqsave(&info->port.lock, flags);
59018 - info->port.count = 0;
59019 + atomic_set(&info->port.count, 0);
59020 info->port.flags &= ~ASYNC_NORMAL_ACTIVE;
59021 info->port.tty = NULL;
59022 spin_unlock_irqrestore(&info->port.lock, flags);
59023 @@ -1440,7 +1440,7 @@ static int hdlcdev_attach(struct net_device *dev, unsigned short encoding,
59024 unsigned short new_crctype;
59025
59026 /* return error if TTY interface open */
59027 - if (info->port.count)
59028 + if (atomic_read(&info->port.count))
59029 return -EBUSY;
59030
59031 DBGINFO(("%s hdlcdev_attach\n", info->device_name));
59032 @@ -1536,7 +1536,7 @@ static int hdlcdev_open(struct net_device *dev)
59033
59034 /* arbitrate between network and tty opens */
59035 spin_lock_irqsave(&info->netlock, flags);
59036 - if (info->port.count != 0 || info->netcount != 0) {
59037 + if (atomic_read(&info->port.count) != 0 || info->netcount != 0) {
59038 DBGINFO(("%s hdlc_open busy\n", dev->name));
59039 spin_unlock_irqrestore(&info->netlock, flags);
59040 return -EBUSY;
59041 @@ -1621,7 +1621,7 @@ static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
59042 DBGINFO(("%s hdlcdev_ioctl\n", dev->name));
59043
59044 /* return error if TTY interface open */
59045 - if (info->port.count)
59046 + if (atomic_read(&info->port.count))
59047 return -EBUSY;
59048
59049 if (cmd != SIOCWANDEV)
59050 @@ -2408,7 +2408,7 @@ static irqreturn_t slgt_interrupt(int dummy, void *dev_id)
59051 if (port == NULL)
59052 continue;
59053 spin_lock(&port->lock);
59054 - if ((port->port.count || port->netcount) &&
59055 + if ((atomic_read(&port->port.count) || port->netcount) &&
59056 port->pending_bh && !port->bh_running &&
59057 !port->bh_requested) {
59058 DBGISR(("%s bh queued\n", port->device_name));
59059 @@ -3294,7 +3294,7 @@ static int block_til_ready(struct tty_struct *tty, struct file *filp,
59060 add_wait_queue(&port->open_wait, &wait);
59061
59062 spin_lock_irqsave(&info->lock, flags);
59063 - port->count--;
59064 + atomic_dec(&port->count);
59065 spin_unlock_irqrestore(&info->lock, flags);
59066 port->blocked_open++;
59067
59068 @@ -3329,7 +3329,7 @@ static int block_til_ready(struct tty_struct *tty, struct file *filp,
59069 remove_wait_queue(&port->open_wait, &wait);
59070
59071 if (!tty_hung_up_p(filp))
59072 - port->count++;
59073 + atomic_inc(&port->count);
59074 port->blocked_open--;
59075
59076 if (!retval)
59077 diff --git a/drivers/tty/synclinkmp.c b/drivers/tty/synclinkmp.c
59078 index fb00a06..bb80abd 100644
59079 --- a/drivers/tty/synclinkmp.c
59080 +++ b/drivers/tty/synclinkmp.c
59081 @@ -750,7 +750,7 @@ static int open(struct tty_struct *tty, struct file *filp)
59082
59083 if (debug_level >= DEBUG_LEVEL_INFO)
59084 printk("%s(%d):%s open(), old ref count = %d\n",
59085 - __FILE__,__LINE__,tty->driver->name, info->port.count);
59086 + __FILE__,__LINE__,tty->driver->name, atomic_read(&info->port.count));
59087
59088 info->port.low_latency = (info->port.flags & ASYNC_LOW_LATENCY) ? 1 : 0;
59089
59090 @@ -760,10 +760,10 @@ static int open(struct tty_struct *tty, struct file *filp)
59091 spin_unlock_irqrestore(&info->netlock, flags);
59092 goto cleanup;
59093 }
59094 - info->port.count++;
59095 + atomic_inc(&info->port.count);
59096 spin_unlock_irqrestore(&info->netlock, flags);
59097
59098 - if (info->port.count == 1) {
59099 + if (atomic_read(&info->port.count) == 1) {
59100 /* 1st open on this device, init hardware */
59101 retval = startup(info);
59102 if (retval < 0)
59103 @@ -787,8 +787,8 @@ cleanup:
59104 if (retval) {
59105 if (tty->count == 1)
59106 info->port.tty = NULL; /* tty layer will release tty struct */
59107 - if(info->port.count)
59108 - info->port.count--;
59109 + if(atomic_read(&info->port.count))
59110 + atomic_dec(&info->port.count);
59111 }
59112
59113 return retval;
59114 @@ -806,7 +806,7 @@ static void close(struct tty_struct *tty, struct file *filp)
59115
59116 if (debug_level >= DEBUG_LEVEL_INFO)
59117 printk("%s(%d):%s close() entry, count=%d\n",
59118 - __FILE__,__LINE__, info->device_name, info->port.count);
59119 + __FILE__,__LINE__, info->device_name, atomic_read(&info->port.count));
59120
59121 if (tty_port_close_start(&info->port, tty, filp) == 0)
59122 goto cleanup;
59123 @@ -825,7 +825,7 @@ static void close(struct tty_struct *tty, struct file *filp)
59124 cleanup:
59125 if (debug_level >= DEBUG_LEVEL_INFO)
59126 printk("%s(%d):%s close() exit, count=%d\n", __FILE__,__LINE__,
59127 - tty->driver->name, info->port.count);
59128 + tty->driver->name, atomic_read(&info->port.count));
59129 }
59130
59131 /* Called by tty_hangup() when a hangup is signaled.
59132 @@ -848,7 +848,7 @@ static void hangup(struct tty_struct *tty)
59133 shutdown(info);
59134
59135 spin_lock_irqsave(&info->port.lock, flags);
59136 - info->port.count = 0;
59137 + atomic_set(&info->port.count, 0);
59138 info->port.flags &= ~ASYNC_NORMAL_ACTIVE;
59139 info->port.tty = NULL;
59140 spin_unlock_irqrestore(&info->port.lock, flags);
59141 @@ -1556,7 +1556,7 @@ static int hdlcdev_attach(struct net_device *dev, unsigned short encoding,
59142 unsigned short new_crctype;
59143
59144 /* return error if TTY interface open */
59145 - if (info->port.count)
59146 + if (atomic_read(&info->port.count))
59147 return -EBUSY;
59148
59149 switch (encoding)
59150 @@ -1652,7 +1652,7 @@ static int hdlcdev_open(struct net_device *dev)
59151
59152 /* arbitrate between network and tty opens */
59153 spin_lock_irqsave(&info->netlock, flags);
59154 - if (info->port.count != 0 || info->netcount != 0) {
59155 + if (atomic_read(&info->port.count) != 0 || info->netcount != 0) {
59156 printk(KERN_WARNING "%s: hdlc_open returning busy\n", dev->name);
59157 spin_unlock_irqrestore(&info->netlock, flags);
59158 return -EBUSY;
59159 @@ -1738,7 +1738,7 @@ static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
59160 printk("%s:hdlcdev_ioctl(%s)\n",__FILE__,dev->name);
59161
59162 /* return error if TTY interface open */
59163 - if (info->port.count)
59164 + if (atomic_read(&info->port.count))
59165 return -EBUSY;
59166
59167 if (cmd != SIOCWANDEV)
59168 @@ -2615,7 +2615,7 @@ static irqreturn_t synclinkmp_interrupt(int dummy, void *dev_id)
59169 * do not request bottom half processing if the
59170 * device is not open in a normal mode.
59171 */
59172 - if ( port && (port->port.count || port->netcount) &&
59173 + if ( port && (atomic_read(&port->port.count) || port->netcount) &&
59174 port->pending_bh && !port->bh_running &&
59175 !port->bh_requested ) {
59176 if ( debug_level >= DEBUG_LEVEL_ISR )
59177 @@ -3312,10 +3312,10 @@ static int block_til_ready(struct tty_struct *tty, struct file *filp,
59178
59179 if (debug_level >= DEBUG_LEVEL_INFO)
59180 printk("%s(%d):%s block_til_ready() before block, count=%d\n",
59181 - __FILE__,__LINE__, tty->driver->name, port->count );
59182 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
59183
59184 spin_lock_irqsave(&info->lock, flags);
59185 - port->count--;
59186 + atomic_dec(&port->count);
59187 spin_unlock_irqrestore(&info->lock, flags);
59188 port->blocked_open++;
59189
59190 @@ -3342,7 +3342,7 @@ static int block_til_ready(struct tty_struct *tty, struct file *filp,
59191
59192 if (debug_level >= DEBUG_LEVEL_INFO)
59193 printk("%s(%d):%s block_til_ready() count=%d\n",
59194 - __FILE__,__LINE__, tty->driver->name, port->count );
59195 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
59196
59197 tty_unlock(tty);
59198 schedule();
59199 @@ -3352,12 +3352,12 @@ static int block_til_ready(struct tty_struct *tty, struct file *filp,
59200 set_current_state(TASK_RUNNING);
59201 remove_wait_queue(&port->open_wait, &wait);
59202 if (!tty_hung_up_p(filp))
59203 - port->count++;
59204 + atomic_inc(&port->count);
59205 port->blocked_open--;
59206
59207 if (debug_level >= DEBUG_LEVEL_INFO)
59208 printk("%s(%d):%s block_til_ready() after, count=%d\n",
59209 - __FILE__,__LINE__, tty->driver->name, port->count );
59210 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
59211
59212 if (!retval)
59213 port->flags |= ASYNC_NORMAL_ACTIVE;
59214 diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
59215 index 5381a72..ad8c38f 100644
59216 --- a/drivers/tty/sysrq.c
59217 +++ b/drivers/tty/sysrq.c
59218 @@ -1083,7 +1083,7 @@ EXPORT_SYMBOL(unregister_sysrq_key);
59219 static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf,
59220 size_t count, loff_t *ppos)
59221 {
59222 - if (count) {
59223 + if (count && capable(CAP_SYS_ADMIN)) {
59224 char c;
59225
59226 if (get_user(c, buf))
59227 diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
59228 index 7cef543..d58dc7d 100644
59229 --- a/drivers/tty/tty_io.c
59230 +++ b/drivers/tty/tty_io.c
59231 @@ -105,6 +105,8 @@
59232 #include <linux/kmod.h>
59233 #include <linux/nsproxy.h>
59234
59235 +#include <linux/grsecurity.h>
59236 +
59237 #undef TTY_DEBUG_HANGUP
59238 #ifdef TTY_DEBUG_HANGUP
59239 # define tty_debug_hangup(tty, f, args...) tty_debug(tty, f, ##args)
59240 @@ -2281,6 +2283,8 @@ static int tiocsti(struct tty_struct *tty, char __user *p)
59241 char ch, mbz = 0;
59242 struct tty_ldisc *ld;
59243
59244 + if (gr_handle_tiocsti(tty))
59245 + return -EPERM;
59246 if ((current->signal->tty != tty) && !capable(CAP_SYS_ADMIN))
59247 return -EPERM;
59248 if (get_user(ch, p))
59249 @@ -3564,7 +3568,7 @@ EXPORT_SYMBOL(tty_devnum);
59250
59251 void tty_default_fops(struct file_operations *fops)
59252 {
59253 - *fops = tty_fops;
59254 + memcpy((void *)fops, &tty_fops, sizeof(tty_fops));
59255 }
59256
59257 /*
59258 diff --git a/drivers/tty/tty_ldisc.c b/drivers/tty/tty_ldisc.c
59259 index 629e3c8..ff89802 100644
59260 --- a/drivers/tty/tty_ldisc.c
59261 +++ b/drivers/tty/tty_ldisc.c
59262 @@ -68,7 +68,7 @@ int tty_register_ldisc(int disc, struct tty_ldisc_ops *new_ldisc)
59263 raw_spin_lock_irqsave(&tty_ldiscs_lock, flags);
59264 tty_ldiscs[disc] = new_ldisc;
59265 new_ldisc->num = disc;
59266 - new_ldisc->refcount = 0;
59267 + atomic_set(&new_ldisc->refcount, 0);
59268 raw_spin_unlock_irqrestore(&tty_ldiscs_lock, flags);
59269
59270 return ret;
59271 @@ -96,7 +96,7 @@ int tty_unregister_ldisc(int disc)
59272 return -EINVAL;
59273
59274 raw_spin_lock_irqsave(&tty_ldiscs_lock, flags);
59275 - if (tty_ldiscs[disc]->refcount)
59276 + if (atomic_read(&tty_ldiscs[disc]->refcount))
59277 ret = -EBUSY;
59278 else
59279 tty_ldiscs[disc] = NULL;
59280 @@ -117,7 +117,7 @@ static struct tty_ldisc_ops *get_ldops(int disc)
59281 if (ldops) {
59282 ret = ERR_PTR(-EAGAIN);
59283 if (try_module_get(ldops->owner)) {
59284 - ldops->refcount++;
59285 + atomic_inc(&ldops->refcount);
59286 ret = ldops;
59287 }
59288 }
59289 @@ -130,7 +130,7 @@ static void put_ldops(struct tty_ldisc_ops *ldops)
59290 unsigned long flags;
59291
59292 raw_spin_lock_irqsave(&tty_ldiscs_lock, flags);
59293 - ldops->refcount--;
59294 + atomic_dec(&ldops->refcount);
59295 module_put(ldops->owner);
59296 raw_spin_unlock_irqrestore(&tty_ldiscs_lock, flags);
59297 }
59298 diff --git a/drivers/tty/tty_port.c b/drivers/tty/tty_port.c
59299 index 482f33f..a90921e 100644
59300 --- a/drivers/tty/tty_port.c
59301 +++ b/drivers/tty/tty_port.c
59302 @@ -235,7 +235,7 @@ void tty_port_hangup(struct tty_port *port)
59303 unsigned long flags;
59304
59305 spin_lock_irqsave(&port->lock, flags);
59306 - port->count = 0;
59307 + atomic_set(&port->count, 0);
59308 port->flags &= ~ASYNC_NORMAL_ACTIVE;
59309 tty = port->tty;
59310 if (tty)
59311 @@ -387,7 +387,7 @@ int tty_port_block_til_ready(struct tty_port *port,
59312
59313 /* The port lock protects the port counts */
59314 spin_lock_irqsave(&port->lock, flags);
59315 - port->count--;
59316 + atomic_dec(&port->count);
59317 port->blocked_open++;
59318 spin_unlock_irqrestore(&port->lock, flags);
59319
59320 @@ -428,7 +428,7 @@ int tty_port_block_til_ready(struct tty_port *port,
59321 we must not mess that up further */
59322 spin_lock_irqsave(&port->lock, flags);
59323 if (!tty_hung_up_p(filp))
59324 - port->count++;
59325 + atomic_inc(&port->count);
59326 port->blocked_open--;
59327 if (retval == 0)
59328 port->flags |= ASYNC_NORMAL_ACTIVE;
59329 @@ -461,19 +461,19 @@ int tty_port_close_start(struct tty_port *port,
59330 return 0;
59331
59332 spin_lock_irqsave(&port->lock, flags);
59333 - if (tty->count == 1 && port->count != 1) {
59334 + if (tty->count == 1 && atomic_read(&port->count) != 1) {
59335 printk(KERN_WARNING
59336 "tty_port_close_start: tty->count = 1 port count = %d.\n",
59337 - port->count);
59338 - port->count = 1;
59339 + atomic_read(&port->count));
59340 + atomic_set(&port->count, 1);
59341 }
59342 - if (--port->count < 0) {
59343 + if (atomic_dec_return(&port->count) < 0) {
59344 printk(KERN_WARNING "tty_port_close_start: count = %d\n",
59345 - port->count);
59346 - port->count = 0;
59347 + atomic_read(&port->count));
59348 + atomic_set(&port->count, 0);
59349 }
59350
59351 - if (port->count) {
59352 + if (atomic_read(&port->count)) {
59353 spin_unlock_irqrestore(&port->lock, flags);
59354 return 0;
59355 }
59356 @@ -570,7 +570,7 @@ int tty_port_open(struct tty_port *port, struct tty_struct *tty,
59357 struct file *filp)
59358 {
59359 spin_lock_irq(&port->lock);
59360 - ++port->count;
59361 + atomic_inc(&port->count);
59362 spin_unlock_irq(&port->lock);
59363 tty_port_tty_set(port, tty);
59364
59365 diff --git a/drivers/tty/vt/keyboard.c b/drivers/tty/vt/keyboard.c
59366 index 6f0336f..5818bc1 100644
59367 --- a/drivers/tty/vt/keyboard.c
59368 +++ b/drivers/tty/vt/keyboard.c
59369 @@ -642,6 +642,16 @@ static void k_spec(struct vc_data *vc, unsigned char value, char up_flag)
59370 kbd->kbdmode == VC_OFF) &&
59371 value != KVAL(K_SAK))
59372 return; /* SAK is allowed even in raw mode */
59373 +
59374 +#if defined(CONFIG_GRKERNSEC_PROC) || defined(CONFIG_GRKERNSEC_PROC_MEMMAP)
59375 + {
59376 + void *func = fn_handler[value];
59377 + if (func == fn_show_state || func == fn_show_ptregs ||
59378 + func == fn_show_mem)
59379 + return;
59380 + }
59381 +#endif
59382 +
59383 fn_handler[value](vc);
59384 }
59385
59386 @@ -1880,9 +1890,6 @@ int vt_do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm,
59387 if (copy_from_user(&tmp, user_kbe, sizeof(struct kbentry)))
59388 return -EFAULT;
59389
59390 - if (!capable(CAP_SYS_TTY_CONFIG))
59391 - perm = 0;
59392 -
59393 switch (cmd) {
59394 case KDGKBENT:
59395 /* Ensure another thread doesn't free it under us */
59396 @@ -1897,6 +1904,9 @@ int vt_do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm,
59397 spin_unlock_irqrestore(&kbd_event_lock, flags);
59398 return put_user(val, &user_kbe->kb_value);
59399 case KDSKBENT:
59400 + if (!capable(CAP_SYS_TTY_CONFIG))
59401 + perm = 0;
59402 +
59403 if (!perm)
59404 return -EPERM;
59405 if (!i && v == K_NOSUCHMAP) {
59406 @@ -1987,9 +1997,6 @@ int vt_do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm)
59407 int i, j, k;
59408 int ret;
59409
59410 - if (!capable(CAP_SYS_TTY_CONFIG))
59411 - perm = 0;
59412 -
59413 kbs = kmalloc(sizeof(*kbs), GFP_KERNEL);
59414 if (!kbs) {
59415 ret = -ENOMEM;
59416 @@ -2023,6 +2030,9 @@ int vt_do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm)
59417 kfree(kbs);
59418 return ((p && *p) ? -EOVERFLOW : 0);
59419 case KDSKBSENT:
59420 + if (!capable(CAP_SYS_TTY_CONFIG))
59421 + perm = 0;
59422 +
59423 if (!perm) {
59424 ret = -EPERM;
59425 goto reterr;
59426 diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c
59427 index bcc1fc0..0d989a9 100644
59428 --- a/drivers/uio/uio.c
59429 +++ b/drivers/uio/uio.c
59430 @@ -25,6 +25,7 @@
59431 #include <linux/kobject.h>
59432 #include <linux/cdev.h>
59433 #include <linux/uio_driver.h>
59434 +#include <asm/local.h>
59435
59436 #define UIO_MAX_DEVICES (1U << MINORBITS)
59437
59438 @@ -231,7 +232,7 @@ static ssize_t event_show(struct device *dev,
59439 struct device_attribute *attr, char *buf)
59440 {
59441 struct uio_device *idev = dev_get_drvdata(dev);
59442 - return sprintf(buf, "%u\n", (unsigned int)atomic_read(&idev->event));
59443 + return sprintf(buf, "%u\n", (unsigned int)atomic_read_unchecked(&idev->event));
59444 }
59445 static DEVICE_ATTR_RO(event);
59446
59447 @@ -393,7 +394,7 @@ void uio_event_notify(struct uio_info *info)
59448 {
59449 struct uio_device *idev = info->uio_dev;
59450
59451 - atomic_inc(&idev->event);
59452 + atomic_inc_unchecked(&idev->event);
59453 wake_up_interruptible(&idev->wait);
59454 kill_fasync(&idev->async_queue, SIGIO, POLL_IN);
59455 }
59456 @@ -446,7 +447,7 @@ static int uio_open(struct inode *inode, struct file *filep)
59457 }
59458
59459 listener->dev = idev;
59460 - listener->event_count = atomic_read(&idev->event);
59461 + listener->event_count = atomic_read_unchecked(&idev->event);
59462 filep->private_data = listener;
59463
59464 if (idev->info->open) {
59465 @@ -497,7 +498,7 @@ static unsigned int uio_poll(struct file *filep, poll_table *wait)
59466 return -EIO;
59467
59468 poll_wait(filep, &idev->wait, wait);
59469 - if (listener->event_count != atomic_read(&idev->event))
59470 + if (listener->event_count != atomic_read_unchecked(&idev->event))
59471 return POLLIN | POLLRDNORM;
59472 return 0;
59473 }
59474 @@ -522,7 +523,7 @@ static ssize_t uio_read(struct file *filep, char __user *buf,
59475 do {
59476 set_current_state(TASK_INTERRUPTIBLE);
59477
59478 - event_count = atomic_read(&idev->event);
59479 + event_count = atomic_read_unchecked(&idev->event);
59480 if (event_count != listener->event_count) {
59481 __set_current_state(TASK_RUNNING);
59482 if (copy_to_user(buf, &event_count, count))
59483 @@ -580,9 +581,13 @@ static ssize_t uio_write(struct file *filep, const char __user *buf,
59484 static int uio_find_mem_index(struct vm_area_struct *vma)
59485 {
59486 struct uio_device *idev = vma->vm_private_data;
59487 + unsigned long size;
59488
59489 if (vma->vm_pgoff < MAX_UIO_MAPS) {
59490 - if (idev->info->mem[vma->vm_pgoff].size == 0)
59491 + size = idev->info->mem[vma->vm_pgoff].size;
59492 + if (size == 0)
59493 + return -1;
59494 + if (vma->vm_end - vma->vm_start > size)
59495 return -1;
59496 return (int)vma->vm_pgoff;
59497 }
59498 @@ -814,7 +819,7 @@ int __uio_register_device(struct module *owner,
59499 idev->owner = owner;
59500 idev->info = info;
59501 init_waitqueue_head(&idev->wait);
59502 - atomic_set(&idev->event, 0);
59503 + atomic_set_unchecked(&idev->event, 0);
59504
59505 ret = uio_get_minor(idev);
59506 if (ret)
59507 diff --git a/drivers/usb/atm/cxacru.c b/drivers/usb/atm/cxacru.c
59508 index 1173f9c..6ded1e9 100644
59509 --- a/drivers/usb/atm/cxacru.c
59510 +++ b/drivers/usb/atm/cxacru.c
59511 @@ -474,7 +474,7 @@ static ssize_t cxacru_sysfs_store_adsl_config(struct device *dev,
59512 ret = sscanf(buf + pos, "%x=%x%n", &index, &value, &tmp);
59513 if (ret < 2)
59514 return -EINVAL;
59515 - if (index < 0 || index > 0x7f)
59516 + if (index > 0x7f)
59517 return -EINVAL;
59518 pos += tmp;
59519
59520 diff --git a/drivers/usb/atm/usbatm.c b/drivers/usb/atm/usbatm.c
59521 index db322d9..f0f4bc1 100644
59522 --- a/drivers/usb/atm/usbatm.c
59523 +++ b/drivers/usb/atm/usbatm.c
59524 @@ -331,7 +331,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
59525 if (printk_ratelimit())
59526 atm_warn(instance, "%s: OAM not supported (vpi %d, vci %d)!\n",
59527 __func__, vpi, vci);
59528 - atomic_inc(&vcc->stats->rx_err);
59529 + atomic_inc_unchecked(&vcc->stats->rx_err);
59530 return;
59531 }
59532
59533 @@ -358,7 +358,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
59534 if (length > ATM_MAX_AAL5_PDU) {
59535 atm_rldbg(instance, "%s: bogus length %u (vcc: 0x%p)!\n",
59536 __func__, length, vcc);
59537 - atomic_inc(&vcc->stats->rx_err);
59538 + atomic_inc_unchecked(&vcc->stats->rx_err);
59539 goto out;
59540 }
59541
59542 @@ -367,14 +367,14 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
59543 if (sarb->len < pdu_length) {
59544 atm_rldbg(instance, "%s: bogus pdu_length %u (sarb->len: %u, vcc: 0x%p)!\n",
59545 __func__, pdu_length, sarb->len, vcc);
59546 - atomic_inc(&vcc->stats->rx_err);
59547 + atomic_inc_unchecked(&vcc->stats->rx_err);
59548 goto out;
59549 }
59550
59551 if (crc32_be(~0, skb_tail_pointer(sarb) - pdu_length, pdu_length) != 0xc704dd7b) {
59552 atm_rldbg(instance, "%s: packet failed crc check (vcc: 0x%p)!\n",
59553 __func__, vcc);
59554 - atomic_inc(&vcc->stats->rx_err);
59555 + atomic_inc_unchecked(&vcc->stats->rx_err);
59556 goto out;
59557 }
59558
59559 @@ -387,7 +387,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
59560 if (printk_ratelimit())
59561 atm_err(instance, "%s: no memory for skb (length: %u)!\n",
59562 __func__, length);
59563 - atomic_inc(&vcc->stats->rx_drop);
59564 + atomic_inc_unchecked(&vcc->stats->rx_drop);
59565 goto out;
59566 }
59567
59568 @@ -415,7 +415,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
59569
59570 vcc->push(vcc, skb);
59571
59572 - atomic_inc(&vcc->stats->rx);
59573 + atomic_inc_unchecked(&vcc->stats->rx);
59574 out:
59575 skb_trim(sarb, 0);
59576 }
59577 @@ -613,7 +613,7 @@ static void usbatm_tx_process(unsigned long data)
59578 struct atm_vcc *vcc = UDSL_SKB(skb)->atm.vcc;
59579
59580 usbatm_pop(vcc, skb);
59581 - atomic_inc(&vcc->stats->tx);
59582 + atomic_inc_unchecked(&vcc->stats->tx);
59583
59584 skb = skb_dequeue(&instance->sndqueue);
59585 }
59586 @@ -757,11 +757,11 @@ static int usbatm_atm_proc_read(struct atm_dev *atm_dev, loff_t *pos, char *page
59587 if (!left--)
59588 return sprintf(page,
59589 "AAL5: tx %d ( %d err ), rx %d ( %d err, %d drop )\n",
59590 - atomic_read(&atm_dev->stats.aal5.tx),
59591 - atomic_read(&atm_dev->stats.aal5.tx_err),
59592 - atomic_read(&atm_dev->stats.aal5.rx),
59593 - atomic_read(&atm_dev->stats.aal5.rx_err),
59594 - atomic_read(&atm_dev->stats.aal5.rx_drop));
59595 + atomic_read_unchecked(&atm_dev->stats.aal5.tx),
59596 + atomic_read_unchecked(&atm_dev->stats.aal5.tx_err),
59597 + atomic_read_unchecked(&atm_dev->stats.aal5.rx),
59598 + atomic_read_unchecked(&atm_dev->stats.aal5.rx_err),
59599 + atomic_read_unchecked(&atm_dev->stats.aal5.rx_drop));
59600
59601 if (!left--) {
59602 if (instance->disconnected)
59603 diff --git a/drivers/usb/class/cdc-acm.h b/drivers/usb/class/cdc-acm.h
59604 index ccfaba9..523f476 100644
59605 --- a/drivers/usb/class/cdc-acm.h
59606 +++ b/drivers/usb/class/cdc-acm.h
59607 @@ -95,7 +95,7 @@ struct acm {
59608 struct urb *read_urbs[ACM_NR];
59609 struct acm_rb read_buffers[ACM_NR];
59610 int rx_buflimit;
59611 - int rx_endpoint;
59612 + unsigned int rx_endpoint;
59613 spinlock_t read_lock;
59614 int write_used; /* number of non-empty write buffers */
59615 int transmitting;
59616 diff --git a/drivers/usb/core/devices.c b/drivers/usb/core/devices.c
59617 index 2a3bbdf..91d72cf 100644
59618 --- a/drivers/usb/core/devices.c
59619 +++ b/drivers/usb/core/devices.c
59620 @@ -126,7 +126,7 @@ static const char format_endpt[] =
59621 * time it gets called.
59622 */
59623 static struct device_connect_event {
59624 - atomic_t count;
59625 + atomic_unchecked_t count;
59626 wait_queue_head_t wait;
59627 } device_event = {
59628 .count = ATOMIC_INIT(1),
59629 @@ -164,7 +164,7 @@ static const struct class_info clas_info[] = {
59630
59631 void usbfs_conn_disc_event(void)
59632 {
59633 - atomic_add(2, &device_event.count);
59634 + atomic_add_unchecked(2, &device_event.count);
59635 wake_up(&device_event.wait);
59636 }
59637
59638 @@ -652,7 +652,7 @@ static unsigned int usb_device_poll(struct file *file,
59639
59640 poll_wait(file, &device_event.wait, wait);
59641
59642 - event_count = atomic_read(&device_event.count);
59643 + event_count = atomic_read_unchecked(&device_event.count);
59644 if (file->f_version != event_count) {
59645 file->f_version = event_count;
59646 return POLLIN | POLLRDNORM;
59647 diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
59648 index 38ae877c..9bf9e7d 100644
59649 --- a/drivers/usb/core/devio.c
59650 +++ b/drivers/usb/core/devio.c
59651 @@ -187,7 +187,7 @@ static ssize_t usbdev_read(struct file *file, char __user *buf, size_t nbytes,
59652 struct usb_dev_state *ps = file->private_data;
59653 struct usb_device *dev = ps->dev;
59654 ssize_t ret = 0;
59655 - unsigned len;
59656 + size_t len;
59657 loff_t pos;
59658 int i;
59659
59660 @@ -229,22 +229,22 @@ static ssize_t usbdev_read(struct file *file, char __user *buf, size_t nbytes,
59661 for (i = 0; nbytes && i < dev->descriptor.bNumConfigurations; i++) {
59662 struct usb_config_descriptor *config =
59663 (struct usb_config_descriptor *)dev->rawdescriptors[i];
59664 - unsigned int length = le16_to_cpu(config->wTotalLength);
59665 + size_t length = le16_to_cpu(config->wTotalLength);
59666
59667 if (*ppos < pos + length) {
59668
59669 /* The descriptor may claim to be longer than it
59670 * really is. Here is the actual allocated length. */
59671 - unsigned alloclen =
59672 + size_t alloclen =
59673 le16_to_cpu(dev->config[i].desc.wTotalLength);
59674
59675 - len = length - (*ppos - pos);
59676 + len = length + pos - *ppos;
59677 if (len > nbytes)
59678 len = nbytes;
59679
59680 /* Simply don't write (skip over) unallocated parts */
59681 if (alloclen > (*ppos - pos)) {
59682 - alloclen -= (*ppos - pos);
59683 + alloclen = alloclen + pos - *ppos;
59684 if (copy_to_user(buf,
59685 dev->rawdescriptors[i] + (*ppos - pos),
59686 min(len, alloclen))) {
59687 @@ -1502,7 +1502,7 @@ static int proc_do_submiturb(struct usb_dev_state *ps, struct usbdevfs_urb *uurb
59688 }
59689 }
59690 as->urb->dev = ps->dev;
59691 - as->urb->pipe = (uurb->type << 30) |
59692 + as->urb->pipe = ((unsigned int)uurb->type << 30) |
59693 __create_pipe(ps->dev, uurb->endpoint & 0xf) |
59694 (uurb->endpoint & USB_DIR_IN);
59695
59696 diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
59697 index 1c102d6..d15688e 100644
59698 --- a/drivers/usb/core/hcd.c
59699 +++ b/drivers/usb/core/hcd.c
59700 @@ -1605,7 +1605,7 @@ int usb_hcd_submit_urb (struct urb *urb, gfp_t mem_flags)
59701 */
59702 usb_get_urb(urb);
59703 atomic_inc(&urb->use_count);
59704 - atomic_inc(&urb->dev->urbnum);
59705 + atomic_inc_unchecked(&urb->dev->urbnum);
59706 usbmon_urb_submit(&hcd->self, urb);
59707
59708 /* NOTE requirements on root-hub callers (usbfs and the hub
59709 @@ -1632,7 +1632,7 @@ int usb_hcd_submit_urb (struct urb *urb, gfp_t mem_flags)
59710 urb->hcpriv = NULL;
59711 INIT_LIST_HEAD(&urb->urb_list);
59712 atomic_dec(&urb->use_count);
59713 - atomic_dec(&urb->dev->urbnum);
59714 + atomic_dec_unchecked(&urb->dev->urbnum);
59715 if (atomic_read(&urb->reject))
59716 wake_up(&usb_kill_urb_queue);
59717 usb_put_urb(urb);
59718 diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
59719 index 1560f3f..ba76922 100644
59720 --- a/drivers/usb/core/hub.c
59721 +++ b/drivers/usb/core/hub.c
59722 @@ -26,6 +26,7 @@
59723 #include <linux/mutex.h>
59724 #include <linux/random.h>
59725 #include <linux/pm_qos.h>
59726 +#include <linux/grsecurity.h>
59727
59728 #include <asm/uaccess.h>
59729 #include <asm/byteorder.h>
59730 @@ -4711,6 +4712,10 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
59731 goto done;
59732 return;
59733 }
59734 +
59735 + if (gr_handle_new_usb())
59736 + goto done;
59737 +
59738 if (hub_is_superspeed(hub->hdev))
59739 unit_load = 150;
59740 else
59741 diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c
59742 index 65b6e6b..c0afa90 100644
59743 --- a/drivers/usb/core/sysfs.c
59744 +++ b/drivers/usb/core/sysfs.c
59745 @@ -244,7 +244,7 @@ static ssize_t urbnum_show(struct device *dev, struct device_attribute *attr,
59746 struct usb_device *udev;
59747
59748 udev = to_usb_device(dev);
59749 - return sprintf(buf, "%d\n", atomic_read(&udev->urbnum));
59750 + return sprintf(buf, "%d\n", atomic_read_unchecked(&udev->urbnum));
59751 }
59752 static DEVICE_ATTR_RO(urbnum);
59753
59754 diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
59755 index f8bbd0b..85b2e6a 100644
59756 --- a/drivers/usb/core/usb.c
59757 +++ b/drivers/usb/core/usb.c
59758 @@ -447,7 +447,7 @@ struct usb_device *usb_alloc_dev(struct usb_device *parent,
59759 set_dev_node(&dev->dev, dev_to_node(bus->controller));
59760 dev->state = USB_STATE_ATTACHED;
59761 dev->lpm_disable_count = 1;
59762 - atomic_set(&dev->urbnum, 0);
59763 + atomic_set_unchecked(&dev->urbnum, 0);
59764
59765 INIT_LIST_HEAD(&dev->ep0.urb_list);
59766 dev->ep0.desc.bLength = USB_DT_ENDPOINT_SIZE;
59767 diff --git a/drivers/usb/early/ehci-dbgp.c b/drivers/usb/early/ehci-dbgp.c
59768 index 8cfc319..4868255 100644
59769 --- a/drivers/usb/early/ehci-dbgp.c
59770 +++ b/drivers/usb/early/ehci-dbgp.c
59771 @@ -98,7 +98,8 @@ static inline u32 dbgp_len_update(u32 x, u32 len)
59772
59773 #ifdef CONFIG_KGDB
59774 static struct kgdb_io kgdbdbgp_io_ops;
59775 -#define dbgp_kgdb_mode (dbg_io_ops == &kgdbdbgp_io_ops)
59776 +static struct kgdb_io kgdbdbgp_io_ops_console;
59777 +#define dbgp_kgdb_mode (dbg_io_ops == &kgdbdbgp_io_ops || dbg_io_ops == &kgdbdbgp_io_ops_console)
59778 #else
59779 #define dbgp_kgdb_mode (0)
59780 #endif
59781 @@ -1043,6 +1044,13 @@ static struct kgdb_io kgdbdbgp_io_ops = {
59782 .write_char = kgdbdbgp_write_char,
59783 };
59784
59785 +static struct kgdb_io kgdbdbgp_io_ops_console = {
59786 + .name = "kgdbdbgp",
59787 + .read_char = kgdbdbgp_read_char,
59788 + .write_char = kgdbdbgp_write_char,
59789 + .is_console = 1
59790 +};
59791 +
59792 static int kgdbdbgp_wait_time;
59793
59794 static int __init kgdbdbgp_parse_config(char *str)
59795 @@ -1058,8 +1066,10 @@ static int __init kgdbdbgp_parse_config(char *str)
59796 ptr++;
59797 kgdbdbgp_wait_time = simple_strtoul(ptr, &ptr, 10);
59798 }
59799 - kgdb_register_io_module(&kgdbdbgp_io_ops);
59800 - kgdbdbgp_io_ops.is_console = early_dbgp_console.index != -1;
59801 + if (early_dbgp_console.index != -1)
59802 + kgdb_register_io_module(&kgdbdbgp_io_ops_console);
59803 + else
59804 + kgdb_register_io_module(&kgdbdbgp_io_ops);
59805
59806 return 0;
59807 }
59808 diff --git a/drivers/usb/gadget/function/f_uac1.c b/drivers/usb/gadget/function/f_uac1.c
59809 index 6a2346b..22dd790 100644
59810 --- a/drivers/usb/gadget/function/f_uac1.c
59811 +++ b/drivers/usb/gadget/function/f_uac1.c
59812 @@ -14,6 +14,7 @@
59813 #include <linux/module.h>
59814 #include <linux/device.h>
59815 #include <linux/atomic.h>
59816 +#include <linux/module.h>
59817
59818 #include "u_uac1.h"
59819
59820 diff --git a/drivers/usb/gadget/function/u_serial.c b/drivers/usb/gadget/function/u_serial.c
59821 index f7771d8..5942693 100644
59822 --- a/drivers/usb/gadget/function/u_serial.c
59823 +++ b/drivers/usb/gadget/function/u_serial.c
59824 @@ -733,9 +733,9 @@ static int gs_open(struct tty_struct *tty, struct file *file)
59825 spin_lock_irq(&port->port_lock);
59826
59827 /* already open? Great. */
59828 - if (port->port.count) {
59829 + if (atomic_read(&port->port.count)) {
59830 status = 0;
59831 - port->port.count++;
59832 + atomic_inc(&port->port.count);
59833
59834 /* currently opening/closing? wait ... */
59835 } else if (port->openclose) {
59836 @@ -794,7 +794,7 @@ static int gs_open(struct tty_struct *tty, struct file *file)
59837 tty->driver_data = port;
59838 port->port.tty = tty;
59839
59840 - port->port.count = 1;
59841 + atomic_set(&port->port.count, 1);
59842 port->openclose = false;
59843
59844 /* if connected, start the I/O stream */
59845 @@ -836,11 +836,11 @@ static void gs_close(struct tty_struct *tty, struct file *file)
59846
59847 spin_lock_irq(&port->port_lock);
59848
59849 - if (port->port.count != 1) {
59850 - if (port->port.count == 0)
59851 + if (atomic_read(&port->port.count) != 1) {
59852 + if (atomic_read(&port->port.count) == 0)
59853 WARN_ON(1);
59854 else
59855 - --port->port.count;
59856 + atomic_dec(&port->port.count);
59857 goto exit;
59858 }
59859
59860 @@ -850,7 +850,7 @@ static void gs_close(struct tty_struct *tty, struct file *file)
59861 * and sleep if necessary
59862 */
59863 port->openclose = true;
59864 - port->port.count = 0;
59865 + atomic_set(&port->port.count, 0);
59866
59867 gser = port->port_usb;
59868 if (gser && gser->disconnect)
59869 @@ -1066,7 +1066,7 @@ static int gs_closed(struct gs_port *port)
59870 int cond;
59871
59872 spin_lock_irq(&port->port_lock);
59873 - cond = (port->port.count == 0) && !port->openclose;
59874 + cond = (atomic_read(&port->port.count) == 0) && !port->openclose;
59875 spin_unlock_irq(&port->port_lock);
59876 return cond;
59877 }
59878 @@ -1209,7 +1209,7 @@ int gserial_connect(struct gserial *gser, u8 port_num)
59879 /* if it's already open, start I/O ... and notify the serial
59880 * protocol about open/close status (connect/disconnect).
59881 */
59882 - if (port->port.count) {
59883 + if (atomic_read(&port->port.count)) {
59884 pr_debug("gserial_connect: start ttyGS%d\n", port->port_num);
59885 gs_start_io(port);
59886 if (gser->connect)
59887 @@ -1255,7 +1255,7 @@ void gserial_disconnect(struct gserial *gser)
59888
59889 port->port_usb = NULL;
59890 gser->ioport = NULL;
59891 - if (port->port.count > 0 || port->openclose) {
59892 + if (atomic_read(&port->port.count) > 0 || port->openclose) {
59893 wake_up_interruptible(&port->drain_wait);
59894 if (port->port.tty)
59895 tty_hangup(port->port.tty);
59896 @@ -1268,7 +1268,7 @@ void gserial_disconnect(struct gserial *gser)
59897
59898 /* finally, free any unused/unusable I/O buffers */
59899 spin_lock_irqsave(&port->port_lock, flags);
59900 - if (port->port.count == 0 && !port->openclose)
59901 + if (atomic_read(&port->port.count) == 0 && !port->openclose)
59902 gs_buf_free(&port->port_write_buf);
59903 gs_free_requests(gser->out, &port->read_pool, NULL);
59904 gs_free_requests(gser->out, &port->read_queue, NULL);
59905 diff --git a/drivers/usb/gadget/function/u_uac1.c b/drivers/usb/gadget/function/u_uac1.c
59906 index c78c841..48fd281 100644
59907 --- a/drivers/usb/gadget/function/u_uac1.c
59908 +++ b/drivers/usb/gadget/function/u_uac1.c
59909 @@ -17,6 +17,7 @@
59910 #include <linux/ctype.h>
59911 #include <linux/random.h>
59912 #include <linux/syscalls.h>
59913 +#include <linux/module.h>
59914
59915 #include "u_uac1.h"
59916
59917 diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c
59918 index dde4445..f51cd5a 100644
59919 --- a/drivers/usb/gadget/udc/dummy_hcd.c
59920 +++ b/drivers/usb/gadget/udc/dummy_hcd.c
59921 @@ -2463,7 +2463,7 @@ static int dummy_setup(struct usb_hcd *hcd)
59922 struct dummy *dum;
59923
59924 dum = *((void **)dev_get_platdata(hcd->self.controller));
59925 - hcd->self.sg_tablesize = ~0;
59926 + hcd->self.sg_tablesize = SG_ALL;
59927 if (usb_hcd_is_primary_hcd(hcd)) {
59928 dum->hs_hcd = hcd_to_dummy_hcd(hcd);
59929 dum->hs_hcd->dum = dum;
59930 diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
59931 index 48c92bf..3f30f77 100644
59932 --- a/drivers/usb/host/ehci-hcd.c
59933 +++ b/drivers/usb/host/ehci-hcd.c
59934 @@ -564,7 +564,7 @@ static int ehci_init(struct usb_hcd *hcd)
59935
59936 /* Accept arbitrarily long scatter-gather lists */
59937 if (!(hcd->driver->flags & HCD_LOCAL_MEM))
59938 - hcd->self.sg_tablesize = ~0;
59939 + hcd->self.sg_tablesize = SG_ALL;
59940 return 0;
59941 }
59942
59943 diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c
59944 index 086a711..1caf013 100644
59945 --- a/drivers/usb/host/ehci-hub.c
59946 +++ b/drivers/usb/host/ehci-hub.c
59947 @@ -773,7 +773,7 @@ static struct urb *request_single_step_set_feature_urb(
59948 urb->transfer_flags = URB_DIR_IN;
59949 usb_get_urb(urb);
59950 atomic_inc(&urb->use_count);
59951 - atomic_inc(&urb->dev->urbnum);
59952 + atomic_inc_unchecked(&urb->dev->urbnum);
59953 urb->setup_dma = dma_map_single(
59954 hcd->self.controller,
59955 urb->setup_packet,
59956 @@ -840,7 +840,7 @@ static int ehset_single_step_set_feature(struct usb_hcd *hcd, int port)
59957 urb->status = -EINPROGRESS;
59958 usb_get_urb(urb);
59959 atomic_inc(&urb->use_count);
59960 - atomic_inc(&urb->dev->urbnum);
59961 + atomic_inc_unchecked(&urb->dev->urbnum);
59962 retval = submit_single_step_set_feature(hcd, urb, 0);
59963 if (!retval && !wait_for_completion_timeout(&done,
59964 msecs_to_jiffies(2000))) {
59965 diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c
59966 index 54f5332..8b8335c 100644
59967 --- a/drivers/usb/host/ehci-q.c
59968 +++ b/drivers/usb/host/ehci-q.c
59969 @@ -44,9 +44,9 @@
59970
59971 static int
59972 qtd_fill(struct ehci_hcd *ehci, struct ehci_qtd *qtd, dma_addr_t buf,
59973 - size_t len, int token, int maxpacket)
59974 + size_t len, u32 token, int maxpacket)
59975 {
59976 - int i, count;
59977 + u32 i, count;
59978 u64 addr = buf;
59979
59980 /* one buffer entry per 4K ... first might be short or unaligned */
59981 diff --git a/drivers/usb/host/fotg210-hcd.c b/drivers/usb/host/fotg210-hcd.c
59982 index 2341af4..ca7e7ac 100644
59983 --- a/drivers/usb/host/fotg210-hcd.c
59984 +++ b/drivers/usb/host/fotg210-hcd.c
59985 @@ -5036,7 +5036,7 @@ static int hcd_fotg210_init(struct usb_hcd *hcd)
59986
59987 /* Accept arbitrarily long scatter-gather lists */
59988 if (!(hcd->driver->flags & HCD_LOCAL_MEM))
59989 - hcd->self.sg_tablesize = ~0;
59990 + hcd->self.sg_tablesize = SG_ALL;
59991 return 0;
59992 }
59993
59994 diff --git a/drivers/usb/host/hwa-hc.c b/drivers/usb/host/hwa-hc.c
59995 index 1db0626..2e9f5ea 100644
59996 --- a/drivers/usb/host/hwa-hc.c
59997 +++ b/drivers/usb/host/hwa-hc.c
59998 @@ -337,7 +337,10 @@ static int __hwahc_op_bwa_set(struct wusbhc *wusbhc, s8 stream_index,
59999 struct hwahc *hwahc = container_of(wusbhc, struct hwahc, wusbhc);
60000 struct wahc *wa = &hwahc->wa;
60001 struct device *dev = &wa->usb_iface->dev;
60002 - u8 mas_le[UWB_NUM_MAS/8];
60003 + u8 *mas_le = kmalloc(UWB_NUM_MAS/8, GFP_KERNEL);
60004 +
60005 + if (mas_le == NULL)
60006 + return -ENOMEM;
60007
60008 /* Set the stream index */
60009 result = usb_control_msg(wa->usb_dev, usb_sndctrlpipe(wa->usb_dev, 0),
60010 @@ -356,10 +359,12 @@ static int __hwahc_op_bwa_set(struct wusbhc *wusbhc, s8 stream_index,
60011 WUSB_REQ_SET_WUSB_MAS,
60012 USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE,
60013 0, wa->usb_iface->cur_altsetting->desc.bInterfaceNumber,
60014 - mas_le, 32, USB_CTRL_SET_TIMEOUT);
60015 + mas_le, UWB_NUM_MAS/8, USB_CTRL_SET_TIMEOUT);
60016 if (result < 0)
60017 dev_err(dev, "Cannot set WUSB MAS allocation: %d\n", result);
60018 out:
60019 + kfree(mas_le);
60020 +
60021 return result;
60022 }
60023
60024 @@ -812,7 +817,7 @@ static int hwahc_probe(struct usb_interface *usb_iface,
60025 goto error_alloc;
60026 }
60027 usb_hcd->wireless = 1;
60028 - usb_hcd->self.sg_tablesize = ~0;
60029 + usb_hcd->self.sg_tablesize = SG_ALL;
60030 wusbhc = usb_hcd_to_wusbhc(usb_hcd);
60031 hwahc = container_of(wusbhc, struct hwahc, wusbhc);
60032 hwahc_init(hwahc);
60033 diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
60034 index 760cb57..fc7f8ad 100644
60035 --- a/drivers/usb/host/ohci-hcd.c
60036 +++ b/drivers/usb/host/ohci-hcd.c
60037 @@ -444,7 +444,7 @@ static int ohci_init (struct ohci_hcd *ohci)
60038 struct usb_hcd *hcd = ohci_to_hcd(ohci);
60039
60040 /* Accept arbitrarily long scatter-gather lists */
60041 - hcd->self.sg_tablesize = ~0;
60042 + hcd->self.sg_tablesize = SG_ALL;
60043
60044 if (distrust_firmware)
60045 ohci->flags |= OHCI_QUIRK_HUB_POWER;
60046 diff --git a/drivers/usb/host/r8a66597.h b/drivers/usb/host/r8a66597.h
60047 index 672cea3..31a730db 100644
60048 --- a/drivers/usb/host/r8a66597.h
60049 +++ b/drivers/usb/host/r8a66597.h
60050 @@ -125,7 +125,7 @@ struct r8a66597 {
60051 unsigned short interval_map;
60052 unsigned char pipe_cnt[R8A66597_MAX_NUM_PIPE];
60053 unsigned char dma_map;
60054 - unsigned int max_root_hub;
60055 + unsigned char max_root_hub;
60056
60057 struct list_head child_device;
60058 unsigned long child_connect_map[4];
60059 diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c
60060 index a7de8e8..e1ef134 100644
60061 --- a/drivers/usb/host/uhci-hcd.c
60062 +++ b/drivers/usb/host/uhci-hcd.c
60063 @@ -570,7 +570,7 @@ static int uhci_start(struct usb_hcd *hcd)
60064 hcd->uses_new_polling = 1;
60065 /* Accept arbitrarily long scatter-gather lists */
60066 if (!(hcd->driver->flags & HCD_LOCAL_MEM))
60067 - hcd->self.sg_tablesize = ~0;
60068 + hcd->self.sg_tablesize = SG_ALL;
60069
60070 spin_lock_init(&uhci->lock);
60071 setup_timer(&uhci->fsbr_timer, uhci_fsbr_timeout,
60072 diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
60073 index c2d6520..04853a9 100644
60074 --- a/drivers/usb/host/xhci-pci.c
60075 +++ b/drivers/usb/host/xhci-pci.c
60076 @@ -32,7 +32,7 @@
60077 #define SSIC_PORT_CFG2 0x880c
60078 #define SSIC_PORT_CFG2_OFFSET 0x30
60079 #define PROG_DONE (1 << 30)
60080 -#define SSIC_PORT_UNUSED (1 << 31)
60081 +#define SSIC_PORT_UNUSED (1U << 31)
60082
60083 /* Device for a quirk */
60084 #define PCI_VENDOR_ID_FRESCO_LOGIC 0x1b73
60085 diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
60086 index 776d59c..ae87b88 100644
60087 --- a/drivers/usb/host/xhci.c
60088 +++ b/drivers/usb/host/xhci.c
60089 @@ -4853,7 +4853,7 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
60090 int retval;
60091
60092 /* Accept arbitrarily long scatter-gather lists */
60093 - hcd->self.sg_tablesize = ~0;
60094 + hcd->self.sg_tablesize = SG_ALL;
60095
60096 /* support to build packet from discontinuous buffers */
60097 hcd->self.no_sg_constraint = 1;
60098 diff --git a/drivers/usb/misc/appledisplay.c b/drivers/usb/misc/appledisplay.c
60099 index a0a3827..d7ec10b 100644
60100 --- a/drivers/usb/misc/appledisplay.c
60101 +++ b/drivers/usb/misc/appledisplay.c
60102 @@ -84,7 +84,7 @@ struct appledisplay {
60103 struct mutex sysfslock; /* concurrent read and write */
60104 };
60105
60106 -static atomic_t count_displays = ATOMIC_INIT(0);
60107 +static atomic_unchecked_t count_displays = ATOMIC_INIT(0);
60108 static struct workqueue_struct *wq;
60109
60110 static void appledisplay_complete(struct urb *urb)
60111 @@ -288,7 +288,7 @@ static int appledisplay_probe(struct usb_interface *iface,
60112
60113 /* Register backlight device */
60114 snprintf(bl_name, sizeof(bl_name), "appledisplay%d",
60115 - atomic_inc_return(&count_displays) - 1);
60116 + atomic_inc_return_unchecked(&count_displays) - 1);
60117 memset(&props, 0, sizeof(struct backlight_properties));
60118 props.type = BACKLIGHT_RAW;
60119 props.max_brightness = 0xff;
60120 diff --git a/drivers/usb/serial/console.c b/drivers/usb/serial/console.c
60121 index 3806e70..55c508b 100644
60122 --- a/drivers/usb/serial/console.c
60123 +++ b/drivers/usb/serial/console.c
60124 @@ -126,7 +126,7 @@ static int usb_console_setup(struct console *co, char *options)
60125
60126 info->port = port;
60127
60128 - ++port->port.count;
60129 + atomic_inc(&port->port.count);
60130 if (!test_bit(ASYNCB_INITIALIZED, &port->port.flags)) {
60131 if (serial->type->set_termios) {
60132 /*
60133 @@ -175,7 +175,7 @@ static int usb_console_setup(struct console *co, char *options)
60134 }
60135 /* Now that any required fake tty operations are completed restore
60136 * the tty port count */
60137 - --port->port.count;
60138 + atomic_dec(&port->port.count);
60139 /* The console is special in terms of closing the device so
60140 * indicate this port is now acting as a system console. */
60141 port->port.console = 1;
60142 @@ -188,7 +188,7 @@ static int usb_console_setup(struct console *co, char *options)
60143 put_tty:
60144 tty_kref_put(tty);
60145 reset_open_count:
60146 - port->port.count = 0;
60147 + atomic_set(&port->port.count, 0);
60148 usb_autopm_put_interface(serial->interface);
60149 error_get_interface:
60150 usb_serial_put(serial);
60151 @@ -199,7 +199,7 @@ static int usb_console_setup(struct console *co, char *options)
60152 static void usb_console_write(struct console *co,
60153 const char *buf, unsigned count)
60154 {
60155 - static struct usbcons_info *info = &usbcons_info;
60156 + struct usbcons_info *info = &usbcons_info;
60157 struct usb_serial_port *port = info->port;
60158 struct usb_serial *serial;
60159 int retval = -ENODEV;
60160 diff --git a/drivers/usb/storage/transport.c b/drivers/usb/storage/transport.c
60161 index 5e67f63..2ef08d6 100644
60162 --- a/drivers/usb/storage/transport.c
60163 +++ b/drivers/usb/storage/transport.c
60164 @@ -689,7 +689,7 @@ void usb_stor_invoke_transport(struct scsi_cmnd *srb, struct us_data *us)
60165 if (need_auto_sense) {
60166 int temp_result;
60167 struct scsi_eh_save ses;
60168 - int sense_size = US_SENSE_SIZE;
60169 + unsigned int sense_size = US_SENSE_SIZE;
60170 struct scsi_sense_hdr sshdr;
60171 const u8 *scdd;
60172 u8 fm_ili;
60173 diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
60174 index 43576ed..583589d 100644
60175 --- a/drivers/usb/storage/usb.c
60176 +++ b/drivers/usb/storage/usb.c
60177 @@ -912,7 +912,7 @@ static void usb_stor_scan_dwork(struct work_struct *work)
60178 clear_bit(US_FLIDX_SCAN_PENDING, &us->dflags);
60179 }
60180
60181 -static unsigned int usb_stor_sg_tablesize(struct usb_interface *intf)
60182 +static unsigned short usb_stor_sg_tablesize(struct usb_interface *intf)
60183 {
60184 struct usb_device *usb_dev = interface_to_usbdev(intf);
60185
60186 diff --git a/drivers/usb/storage/usb.h b/drivers/usb/storage/usb.h
60187 index da0ad32..50b5bbe 100644
60188 --- a/drivers/usb/storage/usb.h
60189 +++ b/drivers/usb/storage/usb.h
60190 @@ -63,7 +63,7 @@ struct us_unusual_dev {
60191 __u8 useProtocol;
60192 __u8 useTransport;
60193 int (*initFunction)(struct us_data *);
60194 -};
60195 +} __do_const;
60196
60197
60198 /* Dynamic bitflag definitions (us->dflags): used in set_bit() etc. */
60199 diff --git a/drivers/usb/usbip/vhci.h b/drivers/usb/usbip/vhci.h
60200 index a863a98..d272795 100644
60201 --- a/drivers/usb/usbip/vhci.h
60202 +++ b/drivers/usb/usbip/vhci.h
60203 @@ -83,7 +83,7 @@ struct vhci_hcd {
60204 unsigned resuming:1;
60205 unsigned long re_timeout;
60206
60207 - atomic_t seqnum;
60208 + atomic_unchecked_t seqnum;
60209
60210 /*
60211 * NOTE:
60212 diff --git a/drivers/usb/usbip/vhci_hcd.c b/drivers/usb/usbip/vhci_hcd.c
60213 index 7fbe19d..ac512fd 100644
60214 --- a/drivers/usb/usbip/vhci_hcd.c
60215 +++ b/drivers/usb/usbip/vhci_hcd.c
60216 @@ -440,7 +440,7 @@ static void vhci_tx_urb(struct urb *urb)
60217
60218 spin_lock(&vdev->priv_lock);
60219
60220 - priv->seqnum = atomic_inc_return(&the_controller->seqnum);
60221 + priv->seqnum = atomic_inc_return_unchecked(&the_controller->seqnum);
60222 if (priv->seqnum == 0xffff)
60223 dev_info(&urb->dev->dev, "seqnum max\n");
60224
60225 @@ -687,7 +687,7 @@ static int vhci_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status)
60226 return -ENOMEM;
60227 }
60228
60229 - unlink->seqnum = atomic_inc_return(&the_controller->seqnum);
60230 + unlink->seqnum = atomic_inc_return_unchecked(&the_controller->seqnum);
60231 if (unlink->seqnum == 0xffff)
60232 pr_info("seqnum max\n");
60233
60234 @@ -891,7 +891,7 @@ static int vhci_start(struct usb_hcd *hcd)
60235 vdev->rhport = rhport;
60236 }
60237
60238 - atomic_set(&vhci->seqnum, 0);
60239 + atomic_set_unchecked(&vhci->seqnum, 0);
60240 spin_lock_init(&vhci->lock);
60241
60242 hcd->power_budget = 0; /* no limit */
60243 diff --git a/drivers/usb/usbip/vhci_rx.c b/drivers/usb/usbip/vhci_rx.c
60244 index 00e4a54..d676f85 100644
60245 --- a/drivers/usb/usbip/vhci_rx.c
60246 +++ b/drivers/usb/usbip/vhci_rx.c
60247 @@ -80,7 +80,7 @@ static void vhci_recv_ret_submit(struct vhci_device *vdev,
60248 if (!urb) {
60249 pr_err("cannot find a urb of seqnum %u\n", pdu->base.seqnum);
60250 pr_info("max seqnum %d\n",
60251 - atomic_read(&the_controller->seqnum));
60252 + atomic_read_unchecked(&the_controller->seqnum));
60253 usbip_event_add(ud, VDEV_EVENT_ERROR_TCP);
60254 return;
60255 }
60256 diff --git a/drivers/usb/usbip/vhci_sysfs.c b/drivers/usb/usbip/vhci_sysfs.c
60257 index 211f43f..6c22ae1 100644
60258 --- a/drivers/usb/usbip/vhci_sysfs.c
60259 +++ b/drivers/usb/usbip/vhci_sysfs.c
60260 @@ -59,7 +59,7 @@ static ssize_t status_show(struct device *dev, struct device_attribute *attr,
60261 if (vdev->ud.status == VDEV_ST_USED) {
60262 out += sprintf(out, "%03u %08x ",
60263 vdev->speed, vdev->devid);
60264 - out += sprintf(out, "%16p ", vdev->ud.tcp_socket);
60265 + out += sprintf(out, "%16pK ", vdev->ud.tcp_socket);
60266 out += sprintf(out, "%s", dev_name(&vdev->udev->dev));
60267
60268 } else {
60269 diff --git a/drivers/usb/wusbcore/wa-hc.h b/drivers/usb/wusbcore/wa-hc.h
60270 index edc7267..9f65ce2 100644
60271 --- a/drivers/usb/wusbcore/wa-hc.h
60272 +++ b/drivers/usb/wusbcore/wa-hc.h
60273 @@ -240,7 +240,7 @@ struct wahc {
60274 spinlock_t xfer_list_lock;
60275 struct work_struct xfer_enqueue_work;
60276 struct work_struct xfer_error_work;
60277 - atomic_t xfer_id_count;
60278 + atomic_unchecked_t xfer_id_count;
60279
60280 kernel_ulong_t quirks;
60281 };
60282 @@ -305,7 +305,7 @@ static inline void wa_init(struct wahc *wa)
60283 INIT_WORK(&wa->xfer_enqueue_work, wa_urb_enqueue_run);
60284 INIT_WORK(&wa->xfer_error_work, wa_process_errored_transfers_run);
60285 wa->dto_in_use = 0;
60286 - atomic_set(&wa->xfer_id_count, 1);
60287 + atomic_set_unchecked(&wa->xfer_id_count, 1);
60288 /* init the buf in URBs */
60289 for (index = 0; index < WA_MAX_BUF_IN_URBS; ++index)
60290 usb_init_urb(&(wa->buf_in_urbs[index]));
60291 diff --git a/drivers/usb/wusbcore/wa-xfer.c b/drivers/usb/wusbcore/wa-xfer.c
60292 index 69af4fd..da390d7 100644
60293 --- a/drivers/usb/wusbcore/wa-xfer.c
60294 +++ b/drivers/usb/wusbcore/wa-xfer.c
60295 @@ -314,7 +314,7 @@ static void wa_xfer_completion(struct wa_xfer *xfer)
60296 */
60297 static void wa_xfer_id_init(struct wa_xfer *xfer)
60298 {
60299 - xfer->id = atomic_add_return(1, &xfer->wa->xfer_id_count);
60300 + xfer->id = atomic_add_return_unchecked(1, &xfer->wa->xfer_id_count);
60301 }
60302
60303 /* Return the xfer's ID. */
60304 diff --git a/drivers/vhost/vringh.c b/drivers/vhost/vringh.c
60305 index 3bb02c6..a01ff38 100644
60306 --- a/drivers/vhost/vringh.c
60307 +++ b/drivers/vhost/vringh.c
60308 @@ -551,7 +551,7 @@ static inline void __vringh_notify_disable(struct vringh *vrh,
60309 static inline int getu16_user(const struct vringh *vrh, u16 *val, const __virtio16 *p)
60310 {
60311 __virtio16 v = 0;
60312 - int rc = get_user(v, (__force __virtio16 __user *)p);
60313 + int rc = get_user(v, (__force_user __virtio16 *)p);
60314 *val = vringh16_to_cpu(vrh, v);
60315 return rc;
60316 }
60317 @@ -559,12 +559,12 @@ static inline int getu16_user(const struct vringh *vrh, u16 *val, const __virtio
60318 static inline int putu16_user(const struct vringh *vrh, __virtio16 *p, u16 val)
60319 {
60320 __virtio16 v = cpu_to_vringh16(vrh, val);
60321 - return put_user(v, (__force __virtio16 __user *)p);
60322 + return put_user(v, (__force_user __virtio16 *)p);
60323 }
60324
60325 static inline int copydesc_user(void *dst, const void *src, size_t len)
60326 {
60327 - return copy_from_user(dst, (__force void __user *)src, len) ?
60328 + return copy_from_user(dst, (void __force_user *)src, len) ?
60329 -EFAULT : 0;
60330 }
60331
60332 @@ -572,19 +572,19 @@ static inline int putused_user(struct vring_used_elem *dst,
60333 const struct vring_used_elem *src,
60334 unsigned int num)
60335 {
60336 - return copy_to_user((__force void __user *)dst, src,
60337 + return copy_to_user((void __force_user *)dst, src,
60338 sizeof(*dst) * num) ? -EFAULT : 0;
60339 }
60340
60341 static inline int xfer_from_user(void *src, void *dst, size_t len)
60342 {
60343 - return copy_from_user(dst, (__force void __user *)src, len) ?
60344 + return copy_from_user(dst, (void __force_user *)src, len) ?
60345 -EFAULT : 0;
60346 }
60347
60348 static inline int xfer_to_user(void *dst, void *src, size_t len)
60349 {
60350 - return copy_to_user((__force void __user *)dst, src, len) ?
60351 + return copy_to_user((void __force_user *)dst, src, len) ?
60352 -EFAULT : 0;
60353 }
60354
60355 @@ -621,9 +621,9 @@ int vringh_init_user(struct vringh *vrh, u64 features,
60356 vrh->last_used_idx = 0;
60357 vrh->vring.num = num;
60358 /* vring expects kernel addresses, but only used via accessors. */
60359 - vrh->vring.desc = (__force struct vring_desc *)desc;
60360 - vrh->vring.avail = (__force struct vring_avail *)avail;
60361 - vrh->vring.used = (__force struct vring_used *)used;
60362 + vrh->vring.desc = (__force_kernel struct vring_desc *)desc;
60363 + vrh->vring.avail = (__force_kernel struct vring_avail *)avail;
60364 + vrh->vring.used = (__force_kernel struct vring_used *)used;
60365 return 0;
60366 }
60367 EXPORT_SYMBOL(vringh_init_user);
60368 @@ -826,7 +826,7 @@ static inline int getu16_kern(const struct vringh *vrh,
60369
60370 static inline int putu16_kern(const struct vringh *vrh, __virtio16 *p, u16 val)
60371 {
60372 - ACCESS_ONCE(*p) = cpu_to_vringh16(vrh, val);
60373 + ACCESS_ONCE_RW(*p) = cpu_to_vringh16(vrh, val);
60374 return 0;
60375 }
60376
60377 diff --git a/drivers/video/backlight/kb3886_bl.c b/drivers/video/backlight/kb3886_bl.c
60378 index 84a110a..96312c3 100644
60379 --- a/drivers/video/backlight/kb3886_bl.c
60380 +++ b/drivers/video/backlight/kb3886_bl.c
60381 @@ -78,7 +78,7 @@ static struct kb3886bl_machinfo *bl_machinfo;
60382 static unsigned long kb3886bl_flags;
60383 #define KB3886BL_SUSPENDED 0x01
60384
60385 -static struct dmi_system_id kb3886bl_device_table[] __initdata = {
60386 +static const struct dmi_system_id kb3886bl_device_table[] __initconst = {
60387 {
60388 .ident = "Sahara Touch-iT",
60389 .matches = {
60390 diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
60391 index 6e92917..2f3dbad 100644
60392 --- a/drivers/video/console/fbcon.c
60393 +++ b/drivers/video/console/fbcon.c
60394 @@ -106,7 +106,7 @@ static int fbcon_softback_size = 32768;
60395 static unsigned long softback_buf, softback_curr;
60396 static unsigned long softback_in;
60397 static unsigned long softback_top, softback_end;
60398 -static int softback_lines;
60399 +static long softback_lines;
60400 /* console mappings */
60401 static int first_fb_vc;
60402 static int last_fb_vc = MAX_NR_CONSOLES - 1;
60403 diff --git a/drivers/video/fbdev/arcfb.c b/drivers/video/fbdev/arcfb.c
60404 index 1b0b233..6f34c2c 100644
60405 --- a/drivers/video/fbdev/arcfb.c
60406 +++ b/drivers/video/fbdev/arcfb.c
60407 @@ -458,7 +458,7 @@ static ssize_t arcfb_write(struct fb_info *info, const char __user *buf,
60408 return -ENOSPC;
60409
60410 err = 0;
60411 - if ((count + p) > fbmemlength) {
60412 + if (count > (fbmemlength - p)) {
60413 count = fbmemlength - p;
60414 err = -ENOSPC;
60415 }
60416 diff --git a/drivers/video/fbdev/aty/aty128fb.c b/drivers/video/fbdev/aty/aty128fb.c
60417 index c42ce2f..4c8bc59 100644
60418 --- a/drivers/video/fbdev/aty/aty128fb.c
60419 +++ b/drivers/video/fbdev/aty/aty128fb.c
60420 @@ -145,7 +145,7 @@ enum {
60421 };
60422
60423 /* Must match above enum */
60424 -static char * const r128_family[] = {
60425 +static const char * const r128_family[] = {
60426 "AGP",
60427 "PCI",
60428 "PRO AGP",
60429 diff --git a/drivers/video/fbdev/aty/atyfb_base.c b/drivers/video/fbdev/aty/atyfb_base.c
60430 index f34ed47f..026367f 100644
60431 --- a/drivers/video/fbdev/aty/atyfb_base.c
60432 +++ b/drivers/video/fbdev/aty/atyfb_base.c
60433 @@ -1335,10 +1335,14 @@ static int atyfb_set_par(struct fb_info *info)
60434 par->accel_flags = var->accel_flags; /* hack */
60435
60436 if (var->accel_flags) {
60437 - info->fbops->fb_sync = atyfb_sync;
60438 + pax_open_kernel();
60439 + *(void **)&info->fbops->fb_sync = atyfb_sync;
60440 + pax_close_kernel();
60441 info->flags &= ~FBINFO_HWACCEL_DISABLED;
60442 } else {
60443 - info->fbops->fb_sync = NULL;
60444 + pax_open_kernel();
60445 + *(void **)&info->fbops->fb_sync = NULL;
60446 + pax_close_kernel();
60447 info->flags |= FBINFO_HWACCEL_DISABLED;
60448 }
60449
60450 diff --git a/drivers/video/fbdev/aty/mach64_cursor.c b/drivers/video/fbdev/aty/mach64_cursor.c
60451 index 2fa0317..4983f2a 100644
60452 --- a/drivers/video/fbdev/aty/mach64_cursor.c
60453 +++ b/drivers/video/fbdev/aty/mach64_cursor.c
60454 @@ -8,6 +8,7 @@
60455 #include "../core/fb_draw.h"
60456
60457 #include <asm/io.h>
60458 +#include <asm/pgtable.h>
60459
60460 #ifdef __sparc__
60461 #include <asm/fbio.h>
60462 @@ -218,7 +219,9 @@ int aty_init_cursor(struct fb_info *info)
60463 info->sprite.buf_align = 16; /* and 64 lines tall. */
60464 info->sprite.flags = FB_PIXMAP_IO;
60465
60466 - info->fbops->fb_cursor = atyfb_cursor;
60467 + pax_open_kernel();
60468 + *(void **)&info->fbops->fb_cursor = atyfb_cursor;
60469 + pax_close_kernel();
60470
60471 return 0;
60472 }
60473 diff --git a/drivers/video/fbdev/core/fb_defio.c b/drivers/video/fbdev/core/fb_defio.c
60474 index 3fc63c2..eec5e49 100644
60475 --- a/drivers/video/fbdev/core/fb_defio.c
60476 +++ b/drivers/video/fbdev/core/fb_defio.c
60477 @@ -207,7 +207,9 @@ void fb_deferred_io_init(struct fb_info *info)
60478
60479 BUG_ON(!fbdefio);
60480 mutex_init(&fbdefio->lock);
60481 - info->fbops->fb_mmap = fb_deferred_io_mmap;
60482 + pax_open_kernel();
60483 + *(void **)&info->fbops->fb_mmap = fb_deferred_io_mmap;
60484 + pax_close_kernel();
60485 INIT_DELAYED_WORK(&info->deferred_work, fb_deferred_io_work);
60486 INIT_LIST_HEAD(&fbdefio->pagelist);
60487 if (fbdefio->delay == 0) /* set a default of 1 s */
60488 @@ -238,7 +240,7 @@ void fb_deferred_io_cleanup(struct fb_info *info)
60489 page->mapping = NULL;
60490 }
60491
60492 - info->fbops->fb_mmap = NULL;
60493 + *(void **)&info->fbops->fb_mmap = NULL;
60494 mutex_destroy(&fbdefio->lock);
60495 }
60496 EXPORT_SYMBOL_GPL(fb_deferred_io_cleanup);
60497 diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c
60498 index 0705d88..0e17c07 100644
60499 --- a/drivers/video/fbdev/core/fbmem.c
60500 +++ b/drivers/video/fbdev/core/fbmem.c
60501 @@ -1301,7 +1301,7 @@ static int do_fscreeninfo_to_user(struct fb_fix_screeninfo *fix,
60502 __u32 data;
60503 int err;
60504
60505 - err = copy_to_user(&fix32->id, &fix->id, sizeof(fix32->id));
60506 + err = copy_to_user(fix32->id, &fix->id, sizeof(fix32->id));
60507
60508 data = (__u32) (unsigned long) fix->smem_start;
60509 err |= put_user(data, &fix32->smem_start);
60510 @@ -1435,10 +1435,7 @@ fb_mmap(struct file *file, struct vm_area_struct * vma)
60511 return vm_iomap_memory(vma, start, len);
60512 }
60513
60514 -static int
60515 -fb_open(struct inode *inode, struct file *file)
60516 -__acquires(&info->lock)
60517 -__releases(&info->lock)
60518 +static int fb_open(struct inode *inode, struct file *file)
60519 {
60520 int fbidx = iminor(inode);
60521 struct fb_info *info;
60522 @@ -1476,10 +1473,7 @@ out:
60523 return res;
60524 }
60525
60526 -static int
60527 -fb_release(struct inode *inode, struct file *file)
60528 -__acquires(&info->lock)
60529 -__releases(&info->lock)
60530 +static int fb_release(struct inode *inode, struct file *file)
60531 {
60532 struct fb_info * const info = file->private_data;
60533
60534 diff --git a/drivers/video/fbdev/hyperv_fb.c b/drivers/video/fbdev/hyperv_fb.c
60535 index e2451bd..ab7ccd1 100644
60536 --- a/drivers/video/fbdev/hyperv_fb.c
60537 +++ b/drivers/video/fbdev/hyperv_fb.c
60538 @@ -240,7 +240,7 @@ static uint screen_fb_size;
60539 static inline int synthvid_send(struct hv_device *hdev,
60540 struct synthvid_msg *msg)
60541 {
60542 - static atomic64_t request_id = ATOMIC64_INIT(0);
60543 + static atomic64_unchecked_t request_id = ATOMIC64_INIT(0);
60544 int ret;
60545
60546 msg->pipe_hdr.type = PIPE_MSG_DATA;
60547 @@ -248,7 +248,7 @@ static inline int synthvid_send(struct hv_device *hdev,
60548
60549 ret = vmbus_sendpacket(hdev->channel, msg,
60550 msg->vid_hdr.size + sizeof(struct pipe_msg_hdr),
60551 - atomic64_inc_return(&request_id),
60552 + atomic64_inc_return_unchecked(&request_id),
60553 VM_PKT_DATA_INBAND, 0);
60554
60555 if (ret)
60556 diff --git a/drivers/video/fbdev/i810/i810_accel.c b/drivers/video/fbdev/i810/i810_accel.c
60557 index 7672d2e..b56437f 100644
60558 --- a/drivers/video/fbdev/i810/i810_accel.c
60559 +++ b/drivers/video/fbdev/i810/i810_accel.c
60560 @@ -73,6 +73,7 @@ static inline int wait_for_space(struct fb_info *info, u32 space)
60561 }
60562 }
60563 printk("ringbuffer lockup!!!\n");
60564 + printk("head:%u tail:%u iring.size:%u space:%u\n", head, tail, par->iring.size, space);
60565 i810_report_error(mmio);
60566 par->dev_flags |= LOCKUP;
60567 info->pixmap.scan_align = 1;
60568 diff --git a/drivers/video/fbdev/matrox/matroxfb_DAC1064.c b/drivers/video/fbdev/matrox/matroxfb_DAC1064.c
60569 index a01147f..5d896f8 100644
60570 --- a/drivers/video/fbdev/matrox/matroxfb_DAC1064.c
60571 +++ b/drivers/video/fbdev/matrox/matroxfb_DAC1064.c
60572 @@ -1088,14 +1088,20 @@ static void MGAG100_restore(struct matrox_fb_info *minfo)
60573
60574 #ifdef CONFIG_FB_MATROX_MYSTIQUE
60575 struct matrox_switch matrox_mystique = {
60576 - MGA1064_preinit, MGA1064_reset, MGA1064_init, MGA1064_restore,
60577 + .preinit = MGA1064_preinit,
60578 + .reset = MGA1064_reset,
60579 + .init = MGA1064_init,
60580 + .restore = MGA1064_restore,
60581 };
60582 EXPORT_SYMBOL(matrox_mystique);
60583 #endif
60584
60585 #ifdef CONFIG_FB_MATROX_G
60586 struct matrox_switch matrox_G100 = {
60587 - MGAG100_preinit, MGAG100_reset, MGAG100_init, MGAG100_restore,
60588 + .preinit = MGAG100_preinit,
60589 + .reset = MGAG100_reset,
60590 + .init = MGAG100_init,
60591 + .restore = MGAG100_restore,
60592 };
60593 EXPORT_SYMBOL(matrox_G100);
60594 #endif
60595 diff --git a/drivers/video/fbdev/matrox/matroxfb_Ti3026.c b/drivers/video/fbdev/matrox/matroxfb_Ti3026.c
60596 index 195ad7c..09743fc 100644
60597 --- a/drivers/video/fbdev/matrox/matroxfb_Ti3026.c
60598 +++ b/drivers/video/fbdev/matrox/matroxfb_Ti3026.c
60599 @@ -738,7 +738,10 @@ static int Ti3026_preinit(struct matrox_fb_info *minfo)
60600 }
60601
60602 struct matrox_switch matrox_millennium = {
60603 - Ti3026_preinit, Ti3026_reset, Ti3026_init, Ti3026_restore
60604 + .preinit = Ti3026_preinit,
60605 + .reset = Ti3026_reset,
60606 + .init = Ti3026_init,
60607 + .restore = Ti3026_restore
60608 };
60609 EXPORT_SYMBOL(matrox_millennium);
60610 #endif
60611 diff --git a/drivers/video/fbdev/matrox/matroxfb_base.c b/drivers/video/fbdev/matrox/matroxfb_base.c
60612 index 11eb094..622ee31 100644
60613 --- a/drivers/video/fbdev/matrox/matroxfb_base.c
60614 +++ b/drivers/video/fbdev/matrox/matroxfb_base.c
60615 @@ -2176,7 +2176,7 @@ static struct pci_driver matroxfb_driver = {
60616 #define RS1056x480 14 /* 132 x 60 text */
60617 #define RSNoxNo 15
60618 /* 10-FF */
60619 -static struct { int xres, yres, left, right, upper, lower, hslen, vslen, vfreq; } timmings[] __initdata = {
60620 +static struct { unsigned int xres, yres, left, right, upper, lower, hslen, vslen, vfreq; } timmings[] __initdata = {
60621 { 640, 400, 48, 16, 39, 8, 96, 2, 70 },
60622 { 640, 480, 48, 16, 33, 10, 96, 2, 60 },
60623 { 800, 600, 144, 24, 28, 8, 112, 6, 60 },
60624 diff --git a/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c b/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
60625 index fe92eed..106e085 100644
60626 --- a/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
60627 +++ b/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
60628 @@ -312,14 +312,18 @@ void mb862xxfb_init_accel(struct fb_info *info, int xres)
60629 struct mb862xxfb_par *par = info->par;
60630
60631 if (info->var.bits_per_pixel == 32) {
60632 - info->fbops->fb_fillrect = cfb_fillrect;
60633 - info->fbops->fb_copyarea = cfb_copyarea;
60634 - info->fbops->fb_imageblit = cfb_imageblit;
60635 + pax_open_kernel();
60636 + *(void **)&info->fbops->fb_fillrect = cfb_fillrect;
60637 + *(void **)&info->fbops->fb_copyarea = cfb_copyarea;
60638 + *(void **)&info->fbops->fb_imageblit = cfb_imageblit;
60639 + pax_close_kernel();
60640 } else {
60641 outreg(disp, GC_L0EM, 3);
60642 - info->fbops->fb_fillrect = mb86290fb_fillrect;
60643 - info->fbops->fb_copyarea = mb86290fb_copyarea;
60644 - info->fbops->fb_imageblit = mb86290fb_imageblit;
60645 + pax_open_kernel();
60646 + *(void **)&info->fbops->fb_fillrect = mb86290fb_fillrect;
60647 + *(void **)&info->fbops->fb_copyarea = mb86290fb_copyarea;
60648 + *(void **)&info->fbops->fb_imageblit = mb86290fb_imageblit;
60649 + pax_close_kernel();
60650 }
60651 outreg(draw, GDC_REG_DRAW_BASE, 0);
60652 outreg(draw, GDC_REG_MODE_MISC, 0x8000);
60653 diff --git a/drivers/video/fbdev/nvidia/nvidia.c b/drivers/video/fbdev/nvidia/nvidia.c
60654 index ce7dab7..a87baf8 100644
60655 --- a/drivers/video/fbdev/nvidia/nvidia.c
60656 +++ b/drivers/video/fbdev/nvidia/nvidia.c
60657 @@ -660,19 +660,23 @@ static int nvidiafb_set_par(struct fb_info *info)
60658 info->fix.line_length = (info->var.xres_virtual *
60659 info->var.bits_per_pixel) >> 3;
60660 if (info->var.accel_flags) {
60661 - info->fbops->fb_imageblit = nvidiafb_imageblit;
60662 - info->fbops->fb_fillrect = nvidiafb_fillrect;
60663 - info->fbops->fb_copyarea = nvidiafb_copyarea;
60664 - info->fbops->fb_sync = nvidiafb_sync;
60665 + pax_open_kernel();
60666 + *(void **)&info->fbops->fb_imageblit = nvidiafb_imageblit;
60667 + *(void **)&info->fbops->fb_fillrect = nvidiafb_fillrect;
60668 + *(void **)&info->fbops->fb_copyarea = nvidiafb_copyarea;
60669 + *(void **)&info->fbops->fb_sync = nvidiafb_sync;
60670 + pax_close_kernel();
60671 info->pixmap.scan_align = 4;
60672 info->flags &= ~FBINFO_HWACCEL_DISABLED;
60673 info->flags |= FBINFO_READS_FAST;
60674 NVResetGraphics(info);
60675 } else {
60676 - info->fbops->fb_imageblit = cfb_imageblit;
60677 - info->fbops->fb_fillrect = cfb_fillrect;
60678 - info->fbops->fb_copyarea = cfb_copyarea;
60679 - info->fbops->fb_sync = NULL;
60680 + pax_open_kernel();
60681 + *(void **)&info->fbops->fb_imageblit = cfb_imageblit;
60682 + *(void **)&info->fbops->fb_fillrect = cfb_fillrect;
60683 + *(void **)&info->fbops->fb_copyarea = cfb_copyarea;
60684 + *(void **)&info->fbops->fb_sync = NULL;
60685 + pax_close_kernel();
60686 info->pixmap.scan_align = 1;
60687 info->flags |= FBINFO_HWACCEL_DISABLED;
60688 info->flags &= ~FBINFO_READS_FAST;
60689 @@ -1164,8 +1168,11 @@ static int nvidia_set_fbinfo(struct fb_info *info)
60690 info->pixmap.size = 8 * 1024;
60691 info->pixmap.flags = FB_PIXMAP_SYSTEM;
60692
60693 - if (!hwcur)
60694 - info->fbops->fb_cursor = NULL;
60695 + if (!hwcur) {
60696 + pax_open_kernel();
60697 + *(void **)&info->fbops->fb_cursor = NULL;
60698 + pax_close_kernel();
60699 + }
60700
60701 info->var.accel_flags = (!noaccel);
60702
60703 diff --git a/drivers/video/fbdev/omap2/dss/display.c b/drivers/video/fbdev/omap2/dss/display.c
60704 index ef5b902..47cf7f5 100644
60705 --- a/drivers/video/fbdev/omap2/dss/display.c
60706 +++ b/drivers/video/fbdev/omap2/dss/display.c
60707 @@ -161,12 +161,14 @@ int omapdss_register_display(struct omap_dss_device *dssdev)
60708 if (dssdev->name == NULL)
60709 dssdev->name = dssdev->alias;
60710
60711 + pax_open_kernel();
60712 if (drv && drv->get_resolution == NULL)
60713 - drv->get_resolution = omapdss_default_get_resolution;
60714 + *(void **)&drv->get_resolution = omapdss_default_get_resolution;
60715 if (drv && drv->get_recommended_bpp == NULL)
60716 - drv->get_recommended_bpp = omapdss_default_get_recommended_bpp;
60717 + *(void **)&drv->get_recommended_bpp = omapdss_default_get_recommended_bpp;
60718 if (drv && drv->get_timings == NULL)
60719 - drv->get_timings = omapdss_default_get_timings;
60720 + *(void **)&drv->get_timings = omapdss_default_get_timings;
60721 + pax_close_kernel();
60722
60723 mutex_lock(&panel_list_mutex);
60724 list_add_tail(&dssdev->panel_list, &panel_list);
60725 diff --git a/drivers/video/fbdev/s1d13xxxfb.c b/drivers/video/fbdev/s1d13xxxfb.c
60726 index 96aa46d..c67c213 100644
60727 --- a/drivers/video/fbdev/s1d13xxxfb.c
60728 +++ b/drivers/video/fbdev/s1d13xxxfb.c
60729 @@ -880,8 +880,10 @@ static int s1d13xxxfb_probe(struct platform_device *pdev)
60730
60731 switch(prod_id) {
60732 case S1D13506_PROD_ID: /* activate acceleration */
60733 - s1d13xxxfb_fbops.fb_fillrect = s1d13xxxfb_bitblt_solidfill;
60734 - s1d13xxxfb_fbops.fb_copyarea = s1d13xxxfb_bitblt_copyarea;
60735 + pax_open_kernel();
60736 + *(void **)&s1d13xxxfb_fbops.fb_fillrect = s1d13xxxfb_bitblt_solidfill;
60737 + *(void **)&s1d13xxxfb_fbops.fb_copyarea = s1d13xxxfb_bitblt_copyarea;
60738 + pax_close_kernel();
60739 info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN |
60740 FBINFO_HWACCEL_FILLRECT | FBINFO_HWACCEL_COPYAREA;
60741 break;
60742 diff --git a/drivers/video/fbdev/sh_mobile_lcdcfb.c b/drivers/video/fbdev/sh_mobile_lcdcfb.c
60743 index 82c0a8c..42499a1 100644
60744 --- a/drivers/video/fbdev/sh_mobile_lcdcfb.c
60745 +++ b/drivers/video/fbdev/sh_mobile_lcdcfb.c
60746 @@ -439,9 +439,9 @@ static unsigned long lcdc_sys_read_data(void *handle)
60747 }
60748
60749 static struct sh_mobile_lcdc_sys_bus_ops sh_mobile_lcdc_sys_bus_ops = {
60750 - lcdc_sys_write_index,
60751 - lcdc_sys_write_data,
60752 - lcdc_sys_read_data,
60753 + .write_index = lcdc_sys_write_index,
60754 + .write_data = lcdc_sys_write_data,
60755 + .read_data = lcdc_sys_read_data,
60756 };
60757
60758 static int sh_mobile_lcdc_sginit(struct fb_info *info,
60759 diff --git a/drivers/video/fbdev/smscufx.c b/drivers/video/fbdev/smscufx.c
60760 index 9279e5f..d5f5276 100644
60761 --- a/drivers/video/fbdev/smscufx.c
60762 +++ b/drivers/video/fbdev/smscufx.c
60763 @@ -1174,7 +1174,9 @@ static int ufx_ops_release(struct fb_info *info, int user)
60764 fb_deferred_io_cleanup(info);
60765 kfree(info->fbdefio);
60766 info->fbdefio = NULL;
60767 - info->fbops->fb_mmap = ufx_ops_mmap;
60768 + pax_open_kernel();
60769 + *(void **)&info->fbops->fb_mmap = ufx_ops_mmap;
60770 + pax_close_kernel();
60771 }
60772
60773 pr_debug("released /dev/fb%d user=%d count=%d",
60774 diff --git a/drivers/video/fbdev/udlfb.c b/drivers/video/fbdev/udlfb.c
60775 index e9c2f7b..8df1264 100644
60776 --- a/drivers/video/fbdev/udlfb.c
60777 +++ b/drivers/video/fbdev/udlfb.c
60778 @@ -623,11 +623,11 @@ static int dlfb_handle_damage(struct dlfb_data *dev, int x, int y,
60779 dlfb_urb_completion(urb);
60780
60781 error:
60782 - atomic_add(bytes_sent, &dev->bytes_sent);
60783 - atomic_add(bytes_identical, &dev->bytes_identical);
60784 - atomic_add(width*height*2, &dev->bytes_rendered);
60785 + atomic_add_unchecked(bytes_sent, &dev->bytes_sent);
60786 + atomic_add_unchecked(bytes_identical, &dev->bytes_identical);
60787 + atomic_add_unchecked(width*height*2, &dev->bytes_rendered);
60788 end_cycles = get_cycles();
60789 - atomic_add(((unsigned int) ((end_cycles - start_cycles)
60790 + atomic_add_unchecked(((unsigned int) ((end_cycles - start_cycles)
60791 >> 10)), /* Kcycles */
60792 &dev->cpu_kcycles_used);
60793
60794 @@ -748,11 +748,11 @@ static void dlfb_dpy_deferred_io(struct fb_info *info,
60795 dlfb_urb_completion(urb);
60796
60797 error:
60798 - atomic_add(bytes_sent, &dev->bytes_sent);
60799 - atomic_add(bytes_identical, &dev->bytes_identical);
60800 - atomic_add(bytes_rendered, &dev->bytes_rendered);
60801 + atomic_add_unchecked(bytes_sent, &dev->bytes_sent);
60802 + atomic_add_unchecked(bytes_identical, &dev->bytes_identical);
60803 + atomic_add_unchecked(bytes_rendered, &dev->bytes_rendered);
60804 end_cycles = get_cycles();
60805 - atomic_add(((unsigned int) ((end_cycles - start_cycles)
60806 + atomic_add_unchecked(((unsigned int) ((end_cycles - start_cycles)
60807 >> 10)), /* Kcycles */
60808 &dev->cpu_kcycles_used);
60809 }
60810 @@ -991,7 +991,9 @@ static int dlfb_ops_release(struct fb_info *info, int user)
60811 fb_deferred_io_cleanup(info);
60812 kfree(info->fbdefio);
60813 info->fbdefio = NULL;
60814 - info->fbops->fb_mmap = dlfb_ops_mmap;
60815 + pax_open_kernel();
60816 + *(void **)&info->fbops->fb_mmap = dlfb_ops_mmap;
60817 + pax_close_kernel();
60818 }
60819
60820 pr_warn("released /dev/fb%d user=%d count=%d\n",
60821 @@ -1373,7 +1375,7 @@ static ssize_t metrics_bytes_rendered_show(struct device *fbdev,
60822 struct fb_info *fb_info = dev_get_drvdata(fbdev);
60823 struct dlfb_data *dev = fb_info->par;
60824 return snprintf(buf, PAGE_SIZE, "%u\n",
60825 - atomic_read(&dev->bytes_rendered));
60826 + atomic_read_unchecked(&dev->bytes_rendered));
60827 }
60828
60829 static ssize_t metrics_bytes_identical_show(struct device *fbdev,
60830 @@ -1381,7 +1383,7 @@ static ssize_t metrics_bytes_identical_show(struct device *fbdev,
60831 struct fb_info *fb_info = dev_get_drvdata(fbdev);
60832 struct dlfb_data *dev = fb_info->par;
60833 return snprintf(buf, PAGE_SIZE, "%u\n",
60834 - atomic_read(&dev->bytes_identical));
60835 + atomic_read_unchecked(&dev->bytes_identical));
60836 }
60837
60838 static ssize_t metrics_bytes_sent_show(struct device *fbdev,
60839 @@ -1389,7 +1391,7 @@ static ssize_t metrics_bytes_sent_show(struct device *fbdev,
60840 struct fb_info *fb_info = dev_get_drvdata(fbdev);
60841 struct dlfb_data *dev = fb_info->par;
60842 return snprintf(buf, PAGE_SIZE, "%u\n",
60843 - atomic_read(&dev->bytes_sent));
60844 + atomic_read_unchecked(&dev->bytes_sent));
60845 }
60846
60847 static ssize_t metrics_cpu_kcycles_used_show(struct device *fbdev,
60848 @@ -1397,7 +1399,7 @@ static ssize_t metrics_cpu_kcycles_used_show(struct device *fbdev,
60849 struct fb_info *fb_info = dev_get_drvdata(fbdev);
60850 struct dlfb_data *dev = fb_info->par;
60851 return snprintf(buf, PAGE_SIZE, "%u\n",
60852 - atomic_read(&dev->cpu_kcycles_used));
60853 + atomic_read_unchecked(&dev->cpu_kcycles_used));
60854 }
60855
60856 static ssize_t edid_show(
60857 @@ -1457,10 +1459,10 @@ static ssize_t metrics_reset_store(struct device *fbdev,
60858 struct fb_info *fb_info = dev_get_drvdata(fbdev);
60859 struct dlfb_data *dev = fb_info->par;
60860
60861 - atomic_set(&dev->bytes_rendered, 0);
60862 - atomic_set(&dev->bytes_identical, 0);
60863 - atomic_set(&dev->bytes_sent, 0);
60864 - atomic_set(&dev->cpu_kcycles_used, 0);
60865 + atomic_set_unchecked(&dev->bytes_rendered, 0);
60866 + atomic_set_unchecked(&dev->bytes_identical, 0);
60867 + atomic_set_unchecked(&dev->bytes_sent, 0);
60868 + atomic_set_unchecked(&dev->cpu_kcycles_used, 0);
60869
60870 return count;
60871 }
60872 diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c
60873 index 178ae93..624b2eb 100644
60874 --- a/drivers/video/fbdev/uvesafb.c
60875 +++ b/drivers/video/fbdev/uvesafb.c
60876 @@ -19,6 +19,7 @@
60877 #include <linux/io.h>
60878 #include <linux/mutex.h>
60879 #include <linux/slab.h>
60880 +#include <linux/moduleloader.h>
60881 #include <video/edid.h>
60882 #include <video/uvesafb.h>
60883 #ifdef CONFIG_X86
60884 @@ -565,10 +566,32 @@ static int uvesafb_vbe_getpmi(struct uvesafb_ktask *task,
60885 if ((task->t.regs.eax & 0xffff) != 0x4f || task->t.regs.es < 0xc000) {
60886 par->pmi_setpal = par->ypan = 0;
60887 } else {
60888 +
60889 +#ifdef CONFIG_PAX_KERNEXEC
60890 +#ifdef CONFIG_MODULES
60891 + par->pmi_code = module_alloc_exec((u16)task->t.regs.ecx);
60892 +#endif
60893 + if (!par->pmi_code) {
60894 + par->pmi_setpal = par->ypan = 0;
60895 + return 0;
60896 + }
60897 +#endif
60898 +
60899 par->pmi_base = (u16 *)phys_to_virt(((u32)task->t.regs.es << 4)
60900 + task->t.regs.edi);
60901 +
60902 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
60903 + pax_open_kernel();
60904 + memcpy(par->pmi_code, par->pmi_base, (u16)task->t.regs.ecx);
60905 + pax_close_kernel();
60906 +
60907 + par->pmi_start = (void *)ktva_ktla((unsigned long)(par->pmi_code + par->pmi_base[1]));
60908 + par->pmi_pal = (void *)ktva_ktla((unsigned long)(par->pmi_code + par->pmi_base[2]));
60909 +#else
60910 par->pmi_start = (u8 *)par->pmi_base + par->pmi_base[1];
60911 par->pmi_pal = (u8 *)par->pmi_base + par->pmi_base[2];
60912 +#endif
60913 +
60914 printk(KERN_INFO "uvesafb: protected mode interface info at "
60915 "%04x:%04x\n",
60916 (u16)task->t.regs.es, (u16)task->t.regs.edi);
60917 @@ -813,13 +836,14 @@ static int uvesafb_vbe_init(struct fb_info *info)
60918 par->ypan = ypan;
60919
60920 if (par->pmi_setpal || par->ypan) {
60921 +#if !defined(CONFIG_MODULES) || !defined(CONFIG_PAX_KERNEXEC)
60922 if (__supported_pte_mask & _PAGE_NX) {
60923 par->pmi_setpal = par->ypan = 0;
60924 printk(KERN_WARNING "uvesafb: NX protection is active, "
60925 "better not use the PMI.\n");
60926 - } else {
60927 + } else
60928 +#endif
60929 uvesafb_vbe_getpmi(task, par);
60930 - }
60931 }
60932 #else
60933 /* The protected mode interface is not available on non-x86. */
60934 @@ -1452,8 +1476,11 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
60935 info->fix.ywrapstep = (par->ypan > 1) ? 1 : 0;
60936
60937 /* Disable blanking if the user requested so. */
60938 - if (!blank)
60939 - info->fbops->fb_blank = NULL;
60940 + if (!blank) {
60941 + pax_open_kernel();
60942 + *(void **)&info->fbops->fb_blank = NULL;
60943 + pax_close_kernel();
60944 + }
60945
60946 /*
60947 * Find out how much IO memory is required for the mode with
60948 @@ -1524,8 +1551,11 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
60949 info->flags = FBINFO_FLAG_DEFAULT |
60950 (par->ypan ? FBINFO_HWACCEL_YPAN : 0);
60951
60952 - if (!par->ypan)
60953 - info->fbops->fb_pan_display = NULL;
60954 + if (!par->ypan) {
60955 + pax_open_kernel();
60956 + *(void **)&info->fbops->fb_pan_display = NULL;
60957 + pax_close_kernel();
60958 + }
60959 }
60960
60961 static void uvesafb_init_mtrr(struct fb_info *info)
60962 @@ -1786,6 +1816,11 @@ out_mode:
60963 out:
60964 kfree(par->vbe_modes);
60965
60966 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
60967 + if (par->pmi_code)
60968 + module_memfree_exec(par->pmi_code);
60969 +#endif
60970 +
60971 framebuffer_release(info);
60972 return err;
60973 }
60974 @@ -1810,6 +1845,11 @@ static int uvesafb_remove(struct platform_device *dev)
60975 kfree(par->vbe_state_orig);
60976 kfree(par->vbe_state_saved);
60977
60978 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
60979 + if (par->pmi_code)
60980 + module_memfree_exec(par->pmi_code);
60981 +#endif
60982 +
60983 framebuffer_release(info);
60984 }
60985 return 0;
60986 diff --git a/drivers/video/fbdev/vesafb.c b/drivers/video/fbdev/vesafb.c
60987 index 528fe91..6fd29fe 100644
60988 --- a/drivers/video/fbdev/vesafb.c
60989 +++ b/drivers/video/fbdev/vesafb.c
60990 @@ -9,6 +9,7 @@
60991 */
60992
60993 #include <linux/module.h>
60994 +#include <linux/moduleloader.h>
60995 #include <linux/kernel.h>
60996 #include <linux/errno.h>
60997 #include <linux/string.h>
60998 @@ -56,8 +57,8 @@ static int vram_remap; /* Set amount of memory to be used */
60999 static int vram_total; /* Set total amount of memory */
61000 static int pmi_setpal __read_mostly = 1; /* pmi for palette changes ??? */
61001 static int ypan __read_mostly; /* 0..nothing, 1..ypan, 2..ywrap */
61002 -static void (*pmi_start)(void) __read_mostly;
61003 -static void (*pmi_pal) (void) __read_mostly;
61004 +static void (*pmi_start)(void) __read_only;
61005 +static void (*pmi_pal) (void) __read_only;
61006 static int depth __read_mostly;
61007 static int vga_compat __read_mostly;
61008 /* --------------------------------------------------------------------- */
61009 @@ -241,6 +242,7 @@ static int vesafb_probe(struct platform_device *dev)
61010 unsigned int size_remap;
61011 unsigned int size_total;
61012 char *option = NULL;
61013 + void *pmi_code = NULL;
61014
61015 /* ignore error return of fb_get_options */
61016 fb_get_options("vesafb", &option);
61017 @@ -287,10 +289,6 @@ static int vesafb_probe(struct platform_device *dev)
61018 size_remap = size_total;
61019 vesafb_fix.smem_len = size_remap;
61020
61021 -#ifndef __i386__
61022 - screen_info.vesapm_seg = 0;
61023 -#endif
61024 -
61025 if (!request_mem_region(vesafb_fix.smem_start, size_total, "vesafb")) {
61026 printk(KERN_WARNING
61027 "vesafb: cannot reserve video memory at 0x%lx\n",
61028 @@ -320,9 +318,21 @@ static int vesafb_probe(struct platform_device *dev)
61029 printk(KERN_INFO "vesafb: mode is %dx%dx%d, linelength=%d, pages=%d\n",
61030 vesafb_defined.xres, vesafb_defined.yres, vesafb_defined.bits_per_pixel, vesafb_fix.line_length, screen_info.pages);
61031
61032 +#ifdef __i386__
61033 +
61034 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
61035 + pmi_code = module_alloc_exec(screen_info.vesapm_size);
61036 + if (!pmi_code)
61037 +#elif !defined(CONFIG_PAX_KERNEXEC)
61038 + if (0)
61039 +#endif
61040 +
61041 +#endif
61042 + screen_info.vesapm_seg = 0;
61043 +
61044 if (screen_info.vesapm_seg) {
61045 - printk(KERN_INFO "vesafb: protected mode interface info at %04x:%04x\n",
61046 - screen_info.vesapm_seg,screen_info.vesapm_off);
61047 + printk(KERN_INFO "vesafb: protected mode interface info at %04x:%04x %04x bytes\n",
61048 + screen_info.vesapm_seg,screen_info.vesapm_off,screen_info.vesapm_size);
61049 }
61050
61051 if (screen_info.vesapm_seg < 0xc000)
61052 @@ -330,9 +340,25 @@ static int vesafb_probe(struct platform_device *dev)
61053
61054 if (ypan || pmi_setpal) {
61055 unsigned short *pmi_base;
61056 +
61057 pmi_base = (unsigned short*)phys_to_virt(((unsigned long)screen_info.vesapm_seg << 4) + screen_info.vesapm_off);
61058 - pmi_start = (void*)((char*)pmi_base + pmi_base[1]);
61059 - pmi_pal = (void*)((char*)pmi_base + pmi_base[2]);
61060 +
61061 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
61062 + pax_open_kernel();
61063 + memcpy(pmi_code, pmi_base, screen_info.vesapm_size);
61064 +#else
61065 + pmi_code = pmi_base;
61066 +#endif
61067 +
61068 + pmi_start = (void*)((char*)pmi_code + pmi_base[1]);
61069 + pmi_pal = (void*)((char*)pmi_code + pmi_base[2]);
61070 +
61071 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
61072 + pmi_start = (void *)ktva_ktla((unsigned long)pmi_start);
61073 + pmi_pal = (void *)ktva_ktla((unsigned long)pmi_pal);
61074 + pax_close_kernel();
61075 +#endif
61076 +
61077 printk(KERN_INFO "vesafb: pmi: set display start = %p, set palette = %p\n",pmi_start,pmi_pal);
61078 if (pmi_base[3]) {
61079 printk(KERN_INFO "vesafb: pmi: ports = ");
61080 @@ -452,8 +478,11 @@ static int vesafb_probe(struct platform_device *dev)
61081 info->flags = FBINFO_FLAG_DEFAULT | FBINFO_MISC_FIRMWARE |
61082 (ypan ? FBINFO_HWACCEL_YPAN : 0);
61083
61084 - if (!ypan)
61085 - info->fbops->fb_pan_display = NULL;
61086 + if (!ypan) {
61087 + pax_open_kernel();
61088 + *(void **)&info->fbops->fb_pan_display = NULL;
61089 + pax_close_kernel();
61090 + }
61091
61092 if (fb_alloc_cmap(&info->cmap, 256, 0) < 0) {
61093 err = -ENOMEM;
61094 @@ -467,6 +496,11 @@ static int vesafb_probe(struct platform_device *dev)
61095 fb_info(info, "%s frame buffer device\n", info->fix.id);
61096 return 0;
61097 err:
61098 +
61099 +#if defined(__i386__) && defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
61100 + module_memfree_exec(pmi_code);
61101 +#endif
61102 +
61103 arch_phys_wc_del(par->wc_cookie);
61104 if (info->screen_base)
61105 iounmap(info->screen_base);
61106 diff --git a/drivers/video/fbdev/via/via_clock.h b/drivers/video/fbdev/via/via_clock.h
61107 index 88714ae..16c2e11 100644
61108 --- a/drivers/video/fbdev/via/via_clock.h
61109 +++ b/drivers/video/fbdev/via/via_clock.h
61110 @@ -56,7 +56,7 @@ struct via_clock {
61111
61112 void (*set_engine_pll_state)(u8 state);
61113 void (*set_engine_pll)(struct via_pll_config config);
61114 -};
61115 +} __no_const;
61116
61117
61118 static inline u32 get_pll_internal_frequency(u32 ref_freq,
61119 diff --git a/drivers/video/logo/logo_linux_clut224.ppm b/drivers/video/logo/logo_linux_clut224.ppm
61120 index 3c14e43..2630570 100644
61121 --- a/drivers/video/logo/logo_linux_clut224.ppm
61122 +++ b/drivers/video/logo/logo_linux_clut224.ppm
61123 @@ -2,1603 +2,1123 @@ P3
61124 # Standard 224-color Linux logo
61125 80 80
61126 255
61127 - 0 0 0 0 0 0 0 0 0 0 0 0
61128 - 0 0 0 0 0 0 0 0 0 0 0 0
61129 - 0 0 0 0 0 0 0 0 0 0 0 0
61130 - 0 0 0 0 0 0 0 0 0 0 0 0
61131 - 0 0 0 0 0 0 0 0 0 0 0 0
61132 - 0 0 0 0 0 0 0 0 0 0 0 0
61133 - 0 0 0 0 0 0 0 0 0 0 0 0
61134 - 0 0 0 0 0 0 0 0 0 0 0 0
61135 - 0 0 0 0 0 0 0 0 0 0 0 0
61136 - 6 6 6 6 6 6 10 10 10 10 10 10
61137 - 10 10 10 6 6 6 6 6 6 6 6 6
61138 - 0 0 0 0 0 0 0 0 0 0 0 0
61139 - 0 0 0 0 0 0 0 0 0 0 0 0
61140 - 0 0 0 0 0 0 0 0 0 0 0 0
61141 - 0 0 0 0 0 0 0 0 0 0 0 0
61142 - 0 0 0 0 0 0 0 0 0 0 0 0
61143 - 0 0 0 0 0 0 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 0 0 0 0 0 0
61147 - 0 0 0 0 0 0 0 0 0 0 0 0
61148 - 0 0 0 0 0 0 0 0 0 0 0 0
61149 - 0 0 0 0 0 0 0 0 0 0 0 0
61150 - 0 0 0 0 0 0 0 0 0 0 0 0
61151 - 0 0 0 0 0 0 0 0 0 0 0 0
61152 - 0 0 0 0 0 0 0 0 0 0 0 0
61153 - 0 0 0 0 0 0 0 0 0 0 0 0
61154 - 0 0 0 0 0 0 0 0 0 0 0 0
61155 - 0 0 0 6 6 6 10 10 10 14 14 14
61156 - 22 22 22 26 26 26 30 30 30 34 34 34
61157 - 30 30 30 30 30 30 26 26 26 18 18 18
61158 - 14 14 14 10 10 10 6 6 6 0 0 0
61159 - 0 0 0 0 0 0 0 0 0 0 0 0
61160 - 0 0 0 0 0 0 0 0 0 0 0 0
61161 - 0 0 0 0 0 0 0 0 0 0 0 0
61162 - 0 0 0 0 0 0 0 0 0 0 0 0
61163 - 0 0 0 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 0 0 0 0 0 0
61167 - 0 0 0 0 0 0 0 0 0 0 0 0
61168 - 0 0 0 0 0 1 0 0 1 0 0 0
61169 - 0 0 0 0 0 0 0 0 0 0 0 0
61170 - 0 0 0 0 0 0 0 0 0 0 0 0
61171 - 0 0 0 0 0 0 0 0 0 0 0 0
61172 - 0 0 0 0 0 0 0 0 0 0 0 0
61173 - 0 0 0 0 0 0 0 0 0 0 0 0
61174 - 0 0 0 0 0 0 0 0 0 0 0 0
61175 - 6 6 6 14 14 14 26 26 26 42 42 42
61176 - 54 54 54 66 66 66 78 78 78 78 78 78
61177 - 78 78 78 74 74 74 66 66 66 54 54 54
61178 - 42 42 42 26 26 26 18 18 18 10 10 10
61179 - 6 6 6 0 0 0 0 0 0 0 0 0
61180 - 0 0 0 0 0 0 0 0 0 0 0 0
61181 - 0 0 0 0 0 0 0 0 0 0 0 0
61182 - 0 0 0 0 0 0 0 0 0 0 0 0
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 0 0 0
61187 - 0 0 0 0 0 0 0 0 0 0 0 0
61188 - 0 0 1 0 0 0 0 0 0 0 0 0
61189 - 0 0 0 0 0 0 0 0 0 0 0 0
61190 - 0 0 0 0 0 0 0 0 0 0 0 0
61191 - 0 0 0 0 0 0 0 0 0 0 0 0
61192 - 0 0 0 0 0 0 0 0 0 0 0 0
61193 - 0 0 0 0 0 0 0 0 0 0 0 0
61194 - 0 0 0 0 0 0 0 0 0 10 10 10
61195 - 22 22 22 42 42 42 66 66 66 86 86 86
61196 - 66 66 66 38 38 38 38 38 38 22 22 22
61197 - 26 26 26 34 34 34 54 54 54 66 66 66
61198 - 86 86 86 70 70 70 46 46 46 26 26 26
61199 - 14 14 14 6 6 6 0 0 0 0 0 0
61200 - 0 0 0 0 0 0 0 0 0 0 0 0
61201 - 0 0 0 0 0 0 0 0 0 0 0 0
61202 - 0 0 0 0 0 0 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 0 0 0
61207 - 0 0 0 0 0 0 0 0 0 0 0 0
61208 - 0 0 1 0 0 1 0 0 1 0 0 0
61209 - 0 0 0 0 0 0 0 0 0 0 0 0
61210 - 0 0 0 0 0 0 0 0 0 0 0 0
61211 - 0 0 0 0 0 0 0 0 0 0 0 0
61212 - 0 0 0 0 0 0 0 0 0 0 0 0
61213 - 0 0 0 0 0 0 0 0 0 0 0 0
61214 - 0 0 0 0 0 0 10 10 10 26 26 26
61215 - 50 50 50 82 82 82 58 58 58 6 6 6
61216 - 2 2 6 2 2 6 2 2 6 2 2 6
61217 - 2 2 6 2 2 6 2 2 6 2 2 6
61218 - 6 6 6 54 54 54 86 86 86 66 66 66
61219 - 38 38 38 18 18 18 6 6 6 0 0 0
61220 - 0 0 0 0 0 0 0 0 0 0 0 0
61221 - 0 0 0 0 0 0 0 0 0 0 0 0
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 - 0 0 0 0 0 0 0 0 0 0 0 0
61228 - 0 0 0 0 0 0 0 0 0 0 0 0
61229 - 0 0 0 0 0 0 0 0 0 0 0 0
61230 - 0 0 0 0 0 0 0 0 0 0 0 0
61231 - 0 0 0 0 0 0 0 0 0 0 0 0
61232 - 0 0 0 0 0 0 0 0 0 0 0 0
61233 - 0 0 0 0 0 0 0 0 0 0 0 0
61234 - 0 0 0 6 6 6 22 22 22 50 50 50
61235 - 78 78 78 34 34 34 2 2 6 2 2 6
61236 - 2 2 6 2 2 6 2 2 6 2 2 6
61237 - 2 2 6 2 2 6 2 2 6 2 2 6
61238 - 2 2 6 2 2 6 6 6 6 70 70 70
61239 - 78 78 78 46 46 46 22 22 22 6 6 6
61240 - 0 0 0 0 0 0 0 0 0 0 0 0
61241 - 0 0 0 0 0 0 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 0 0 0 0 0 0
61248 - 0 0 1 0 0 1 0 0 1 0 0 0
61249 - 0 0 0 0 0 0 0 0 0 0 0 0
61250 - 0 0 0 0 0 0 0 0 0 0 0 0
61251 - 0 0 0 0 0 0 0 0 0 0 0 0
61252 - 0 0 0 0 0 0 0 0 0 0 0 0
61253 - 0 0 0 0 0 0 0 0 0 0 0 0
61254 - 6 6 6 18 18 18 42 42 42 82 82 82
61255 - 26 26 26 2 2 6 2 2 6 2 2 6
61256 - 2 2 6 2 2 6 2 2 6 2 2 6
61257 - 2 2 6 2 2 6 2 2 6 14 14 14
61258 - 46 46 46 34 34 34 6 6 6 2 2 6
61259 - 42 42 42 78 78 78 42 42 42 18 18 18
61260 - 6 6 6 0 0 0 0 0 0 0 0 0
61261 - 0 0 0 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 1 0 0 0 0 0 1 0 0 0
61269 - 0 0 0 0 0 0 0 0 0 0 0 0
61270 - 0 0 0 0 0 0 0 0 0 0 0 0
61271 - 0 0 0 0 0 0 0 0 0 0 0 0
61272 - 0 0 0 0 0 0 0 0 0 0 0 0
61273 - 0 0 0 0 0 0 0 0 0 0 0 0
61274 - 10 10 10 30 30 30 66 66 66 58 58 58
61275 - 2 2 6 2 2 6 2 2 6 2 2 6
61276 - 2 2 6 2 2 6 2 2 6 2 2 6
61277 - 2 2 6 2 2 6 2 2 6 26 26 26
61278 - 86 86 86 101 101 101 46 46 46 10 10 10
61279 - 2 2 6 58 58 58 70 70 70 34 34 34
61280 - 10 10 10 0 0 0 0 0 0 0 0 0
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 1 0 0 1 0 0 1 0 0 0
61289 - 0 0 0 0 0 0 0 0 0 0 0 0
61290 - 0 0 0 0 0 0 0 0 0 0 0 0
61291 - 0 0 0 0 0 0 0 0 0 0 0 0
61292 - 0 0 0 0 0 0 0 0 0 0 0 0
61293 - 0 0 0 0 0 0 0 0 0 0 0 0
61294 - 14 14 14 42 42 42 86 86 86 10 10 10
61295 - 2 2 6 2 2 6 2 2 6 2 2 6
61296 - 2 2 6 2 2 6 2 2 6 2 2 6
61297 - 2 2 6 2 2 6 2 2 6 30 30 30
61298 - 94 94 94 94 94 94 58 58 58 26 26 26
61299 - 2 2 6 6 6 6 78 78 78 54 54 54
61300 - 22 22 22 6 6 6 0 0 0 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 - 0 0 0 0 0 0 0 0 0 0 0 0
61311 - 0 0 0 0 0 0 0 0 0 0 0 0
61312 - 0 0 0 0 0 0 0 0 0 0 0 0
61313 - 0 0 0 0 0 0 0 0 0 6 6 6
61314 - 22 22 22 62 62 62 62 62 62 2 2 6
61315 - 2 2 6 2 2 6 2 2 6 2 2 6
61316 - 2 2 6 2 2 6 2 2 6 2 2 6
61317 - 2 2 6 2 2 6 2 2 6 26 26 26
61318 - 54 54 54 38 38 38 18 18 18 10 10 10
61319 - 2 2 6 2 2 6 34 34 34 82 82 82
61320 - 38 38 38 14 14 14 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 1 0 0 1 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 0 0 0
61331 - 0 0 0 0 0 0 0 0 0 0 0 0
61332 - 0 0 0 0 0 0 0 0 0 0 0 0
61333 - 0 0 0 0 0 0 0 0 0 6 6 6
61334 - 30 30 30 78 78 78 30 30 30 2 2 6
61335 - 2 2 6 2 2 6 2 2 6 2 2 6
61336 - 2 2 6 2 2 6 2 2 6 2 2 6
61337 - 2 2 6 2 2 6 2 2 6 10 10 10
61338 - 10 10 10 2 2 6 2 2 6 2 2 6
61339 - 2 2 6 2 2 6 2 2 6 78 78 78
61340 - 50 50 50 18 18 18 6 6 6 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 - 0 0 0 0 0 0 0 0 0 0 0 0
61346 - 0 0 0 0 0 0 0 0 0 0 0 0
61347 - 0 0 0 0 0 0 0 0 0 0 0 0
61348 - 0 0 1 0 0 0 0 0 0 0 0 0
61349 - 0 0 0 0 0 0 0 0 0 0 0 0
61350 - 0 0 0 0 0 0 0 0 0 0 0 0
61351 - 0 0 0 0 0 0 0 0 0 0 0 0
61352 - 0 0 0 0 0 0 0 0 0 0 0 0
61353 - 0 0 0 0 0 0 0 0 0 10 10 10
61354 - 38 38 38 86 86 86 14 14 14 2 2 6
61355 - 2 2 6 2 2 6 2 2 6 2 2 6
61356 - 2 2 6 2 2 6 2 2 6 2 2 6
61357 - 2 2 6 2 2 6 2 2 6 2 2 6
61358 - 2 2 6 2 2 6 2 2 6 2 2 6
61359 - 2 2 6 2 2 6 2 2 6 54 54 54
61360 - 66 66 66 26 26 26 6 6 6 0 0 0
61361 - 0 0 0 0 0 0 0 0 0 0 0 0
61362 - 0 0 0 0 0 0 0 0 0 0 0 0
61363 - 0 0 0 0 0 0 0 0 0 0 0 0
61364 - 0 0 0 0 0 0 0 0 0 0 0 0
61365 - 0 0 0 0 0 0 0 0 0 0 0 0
61366 - 0 0 0 0 0 0 0 0 0 0 0 0
61367 - 0 0 0 0 0 0 0 0 0 0 0 0
61368 - 0 0 0 0 0 1 0 0 1 0 0 0
61369 - 0 0 0 0 0 0 0 0 0 0 0 0
61370 - 0 0 0 0 0 0 0 0 0 0 0 0
61371 - 0 0 0 0 0 0 0 0 0 0 0 0
61372 - 0 0 0 0 0 0 0 0 0 0 0 0
61373 - 0 0 0 0 0 0 0 0 0 14 14 14
61374 - 42 42 42 82 82 82 2 2 6 2 2 6
61375 - 2 2 6 6 6 6 10 10 10 2 2 6
61376 - 2 2 6 2 2 6 2 2 6 2 2 6
61377 - 2 2 6 2 2 6 2 2 6 6 6 6
61378 - 14 14 14 10 10 10 2 2 6 2 2 6
61379 - 2 2 6 2 2 6 2 2 6 18 18 18
61380 - 82 82 82 34 34 34 10 10 10 0 0 0
61381 - 0 0 0 0 0 0 0 0 0 0 0 0
61382 - 0 0 0 0 0 0 0 0 0 0 0 0
61383 - 0 0 0 0 0 0 0 0 0 0 0 0
61384 - 0 0 0 0 0 0 0 0 0 0 0 0
61385 - 0 0 0 0 0 0 0 0 0 0 0 0
61386 - 0 0 0 0 0 0 0 0 0 0 0 0
61387 - 0 0 0 0 0 0 0 0 0 0 0 0
61388 - 0 0 1 0 0 0 0 0 0 0 0 0
61389 - 0 0 0 0 0 0 0 0 0 0 0 0
61390 - 0 0 0 0 0 0 0 0 0 0 0 0
61391 - 0 0 0 0 0 0 0 0 0 0 0 0
61392 - 0 0 0 0 0 0 0 0 0 0 0 0
61393 - 0 0 0 0 0 0 0 0 0 14 14 14
61394 - 46 46 46 86 86 86 2 2 6 2 2 6
61395 - 6 6 6 6 6 6 22 22 22 34 34 34
61396 - 6 6 6 2 2 6 2 2 6 2 2 6
61397 - 2 2 6 2 2 6 18 18 18 34 34 34
61398 - 10 10 10 50 50 50 22 22 22 2 2 6
61399 - 2 2 6 2 2 6 2 2 6 10 10 10
61400 - 86 86 86 42 42 42 14 14 14 0 0 0
61401 - 0 0 0 0 0 0 0 0 0 0 0 0
61402 - 0 0 0 0 0 0 0 0 0 0 0 0
61403 - 0 0 0 0 0 0 0 0 0 0 0 0
61404 - 0 0 0 0 0 0 0 0 0 0 0 0
61405 - 0 0 0 0 0 0 0 0 0 0 0 0
61406 - 0 0 0 0 0 0 0 0 0 0 0 0
61407 - 0 0 0 0 0 0 0 0 0 0 0 0
61408 - 0 0 1 0 0 1 0 0 1 0 0 0
61409 - 0 0 0 0 0 0 0 0 0 0 0 0
61410 - 0 0 0 0 0 0 0 0 0 0 0 0
61411 - 0 0 0 0 0 0 0 0 0 0 0 0
61412 - 0 0 0 0 0 0 0 0 0 0 0 0
61413 - 0 0 0 0 0 0 0 0 0 14 14 14
61414 - 46 46 46 86 86 86 2 2 6 2 2 6
61415 - 38 38 38 116 116 116 94 94 94 22 22 22
61416 - 22 22 22 2 2 6 2 2 6 2 2 6
61417 - 14 14 14 86 86 86 138 138 138 162 162 162
61418 -154 154 154 38 38 38 26 26 26 6 6 6
61419 - 2 2 6 2 2 6 2 2 6 2 2 6
61420 - 86 86 86 46 46 46 14 14 14 0 0 0
61421 - 0 0 0 0 0 0 0 0 0 0 0 0
61422 - 0 0 0 0 0 0 0 0 0 0 0 0
61423 - 0 0 0 0 0 0 0 0 0 0 0 0
61424 - 0 0 0 0 0 0 0 0 0 0 0 0
61425 - 0 0 0 0 0 0 0 0 0 0 0 0
61426 - 0 0 0 0 0 0 0 0 0 0 0 0
61427 - 0 0 0 0 0 0 0 0 0 0 0 0
61428 - 0 0 0 0 0 0 0 0 0 0 0 0
61429 - 0 0 0 0 0 0 0 0 0 0 0 0
61430 - 0 0 0 0 0 0 0 0 0 0 0 0
61431 - 0 0 0 0 0 0 0 0 0 0 0 0
61432 - 0 0 0 0 0 0 0 0 0 0 0 0
61433 - 0 0 0 0 0 0 0 0 0 14 14 14
61434 - 46 46 46 86 86 86 2 2 6 14 14 14
61435 -134 134 134 198 198 198 195 195 195 116 116 116
61436 - 10 10 10 2 2 6 2 2 6 6 6 6
61437 -101 98 89 187 187 187 210 210 210 218 218 218
61438 -214 214 214 134 134 134 14 14 14 6 6 6
61439 - 2 2 6 2 2 6 2 2 6 2 2 6
61440 - 86 86 86 50 50 50 18 18 18 6 6 6
61441 - 0 0 0 0 0 0 0 0 0 0 0 0
61442 - 0 0 0 0 0 0 0 0 0 0 0 0
61443 - 0 0 0 0 0 0 0 0 0 0 0 0
61444 - 0 0 0 0 0 0 0 0 0 0 0 0
61445 - 0 0 0 0 0 0 0 0 0 0 0 0
61446 - 0 0 0 0 0 0 0 0 0 0 0 0
61447 - 0 0 0 0 0 0 0 0 1 0 0 0
61448 - 0 0 1 0 0 1 0 0 1 0 0 0
61449 - 0 0 0 0 0 0 0 0 0 0 0 0
61450 - 0 0 0 0 0 0 0 0 0 0 0 0
61451 - 0 0 0 0 0 0 0 0 0 0 0 0
61452 - 0 0 0 0 0 0 0 0 0 0 0 0
61453 - 0 0 0 0 0 0 0 0 0 14 14 14
61454 - 46 46 46 86 86 86 2 2 6 54 54 54
61455 -218 218 218 195 195 195 226 226 226 246 246 246
61456 - 58 58 58 2 2 6 2 2 6 30 30 30
61457 -210 210 210 253 253 253 174 174 174 123 123 123
61458 -221 221 221 234 234 234 74 74 74 2 2 6
61459 - 2 2 6 2 2 6 2 2 6 2 2 6
61460 - 70 70 70 58 58 58 22 22 22 6 6 6
61461 - 0 0 0 0 0 0 0 0 0 0 0 0
61462 - 0 0 0 0 0 0 0 0 0 0 0 0
61463 - 0 0 0 0 0 0 0 0 0 0 0 0
61464 - 0 0 0 0 0 0 0 0 0 0 0 0
61465 - 0 0 0 0 0 0 0 0 0 0 0 0
61466 - 0 0 0 0 0 0 0 0 0 0 0 0
61467 - 0 0 0 0 0 0 0 0 0 0 0 0
61468 - 0 0 0 0 0 0 0 0 0 0 0 0
61469 - 0 0 0 0 0 0 0 0 0 0 0 0
61470 - 0 0 0 0 0 0 0 0 0 0 0 0
61471 - 0 0 0 0 0 0 0 0 0 0 0 0
61472 - 0 0 0 0 0 0 0 0 0 0 0 0
61473 - 0 0 0 0 0 0 0 0 0 14 14 14
61474 - 46 46 46 82 82 82 2 2 6 106 106 106
61475 -170 170 170 26 26 26 86 86 86 226 226 226
61476 -123 123 123 10 10 10 14 14 14 46 46 46
61477 -231 231 231 190 190 190 6 6 6 70 70 70
61478 - 90 90 90 238 238 238 158 158 158 2 2 6
61479 - 2 2 6 2 2 6 2 2 6 2 2 6
61480 - 70 70 70 58 58 58 22 22 22 6 6 6
61481 - 0 0 0 0 0 0 0 0 0 0 0 0
61482 - 0 0 0 0 0 0 0 0 0 0 0 0
61483 - 0 0 0 0 0 0 0 0 0 0 0 0
61484 - 0 0 0 0 0 0 0 0 0 0 0 0
61485 - 0 0 0 0 0 0 0 0 0 0 0 0
61486 - 0 0 0 0 0 0 0 0 0 0 0 0
61487 - 0 0 0 0 0 0 0 0 1 0 0 0
61488 - 0 0 1 0 0 1 0 0 1 0 0 0
61489 - 0 0 0 0 0 0 0 0 0 0 0 0
61490 - 0 0 0 0 0 0 0 0 0 0 0 0
61491 - 0 0 0 0 0 0 0 0 0 0 0 0
61492 - 0 0 0 0 0 0 0 0 0 0 0 0
61493 - 0 0 0 0 0 0 0 0 0 14 14 14
61494 - 42 42 42 86 86 86 6 6 6 116 116 116
61495 -106 106 106 6 6 6 70 70 70 149 149 149
61496 -128 128 128 18 18 18 38 38 38 54 54 54
61497 -221 221 221 106 106 106 2 2 6 14 14 14
61498 - 46 46 46 190 190 190 198 198 198 2 2 6
61499 - 2 2 6 2 2 6 2 2 6 2 2 6
61500 - 74 74 74 62 62 62 22 22 22 6 6 6
61501 - 0 0 0 0 0 0 0 0 0 0 0 0
61502 - 0 0 0 0 0 0 0 0 0 0 0 0
61503 - 0 0 0 0 0 0 0 0 0 0 0 0
61504 - 0 0 0 0 0 0 0 0 0 0 0 0
61505 - 0 0 0 0 0 0 0 0 0 0 0 0
61506 - 0 0 0 0 0 0 0 0 0 0 0 0
61507 - 0 0 0 0 0 0 0 0 1 0 0 0
61508 - 0 0 1 0 0 0 0 0 1 0 0 0
61509 - 0 0 0 0 0 0 0 0 0 0 0 0
61510 - 0 0 0 0 0 0 0 0 0 0 0 0
61511 - 0 0 0 0 0 0 0 0 0 0 0 0
61512 - 0 0 0 0 0 0 0 0 0 0 0 0
61513 - 0 0 0 0 0 0 0 0 0 14 14 14
61514 - 42 42 42 94 94 94 14 14 14 101 101 101
61515 -128 128 128 2 2 6 18 18 18 116 116 116
61516 -118 98 46 121 92 8 121 92 8 98 78 10
61517 -162 162 162 106 106 106 2 2 6 2 2 6
61518 - 2 2 6 195 195 195 195 195 195 6 6 6
61519 - 2 2 6 2 2 6 2 2 6 2 2 6
61520 - 74 74 74 62 62 62 22 22 22 6 6 6
61521 - 0 0 0 0 0 0 0 0 0 0 0 0
61522 - 0 0 0 0 0 0 0 0 0 0 0 0
61523 - 0 0 0 0 0 0 0 0 0 0 0 0
61524 - 0 0 0 0 0 0 0 0 0 0 0 0
61525 - 0 0 0 0 0 0 0 0 0 0 0 0
61526 - 0 0 0 0 0 0 0 0 0 0 0 0
61527 - 0 0 0 0 0 0 0 0 1 0 0 1
61528 - 0 0 1 0 0 0 0 0 1 0 0 0
61529 - 0 0 0 0 0 0 0 0 0 0 0 0
61530 - 0 0 0 0 0 0 0 0 0 0 0 0
61531 - 0 0 0 0 0 0 0 0 0 0 0 0
61532 - 0 0 0 0 0 0 0 0 0 0 0 0
61533 - 0 0 0 0 0 0 0 0 0 10 10 10
61534 - 38 38 38 90 90 90 14 14 14 58 58 58
61535 -210 210 210 26 26 26 54 38 6 154 114 10
61536 -226 170 11 236 186 11 225 175 15 184 144 12
61537 -215 174 15 175 146 61 37 26 9 2 2 6
61538 - 70 70 70 246 246 246 138 138 138 2 2 6
61539 - 2 2 6 2 2 6 2 2 6 2 2 6
61540 - 70 70 70 66 66 66 26 26 26 6 6 6
61541 - 0 0 0 0 0 0 0 0 0 0 0 0
61542 - 0 0 0 0 0 0 0 0 0 0 0 0
61543 - 0 0 0 0 0 0 0 0 0 0 0 0
61544 - 0 0 0 0 0 0 0 0 0 0 0 0
61545 - 0 0 0 0 0 0 0 0 0 0 0 0
61546 - 0 0 0 0 0 0 0 0 0 0 0 0
61547 - 0 0 0 0 0 0 0 0 0 0 0 0
61548 - 0 0 0 0 0 0 0 0 0 0 0 0
61549 - 0 0 0 0 0 0 0 0 0 0 0 0
61550 - 0 0 0 0 0 0 0 0 0 0 0 0
61551 - 0 0 0 0 0 0 0 0 0 0 0 0
61552 - 0 0 0 0 0 0 0 0 0 0 0 0
61553 - 0 0 0 0 0 0 0 0 0 10 10 10
61554 - 38 38 38 86 86 86 14 14 14 10 10 10
61555 -195 195 195 188 164 115 192 133 9 225 175 15
61556 -239 182 13 234 190 10 232 195 16 232 200 30
61557 -245 207 45 241 208 19 232 195 16 184 144 12
61558 -218 194 134 211 206 186 42 42 42 2 2 6
61559 - 2 2 6 2 2 6 2 2 6 2 2 6
61560 - 50 50 50 74 74 74 30 30 30 6 6 6
61561 - 0 0 0 0 0 0 0 0 0 0 0 0
61562 - 0 0 0 0 0 0 0 0 0 0 0 0
61563 - 0 0 0 0 0 0 0 0 0 0 0 0
61564 - 0 0 0 0 0 0 0 0 0 0 0 0
61565 - 0 0 0 0 0 0 0 0 0 0 0 0
61566 - 0 0 0 0 0 0 0 0 0 0 0 0
61567 - 0 0 0 0 0 0 0 0 0 0 0 0
61568 - 0 0 0 0 0 0 0 0 0 0 0 0
61569 - 0 0 0 0 0 0 0 0 0 0 0 0
61570 - 0 0 0 0 0 0 0 0 0 0 0 0
61571 - 0 0 0 0 0 0 0 0 0 0 0 0
61572 - 0 0 0 0 0 0 0 0 0 0 0 0
61573 - 0 0 0 0 0 0 0 0 0 10 10 10
61574 - 34 34 34 86 86 86 14 14 14 2 2 6
61575 -121 87 25 192 133 9 219 162 10 239 182 13
61576 -236 186 11 232 195 16 241 208 19 244 214 54
61577 -246 218 60 246 218 38 246 215 20 241 208 19
61578 -241 208 19 226 184 13 121 87 25 2 2 6
61579 - 2 2 6 2 2 6 2 2 6 2 2 6
61580 - 50 50 50 82 82 82 34 34 34 10 10 10
61581 - 0 0 0 0 0 0 0 0 0 0 0 0
61582 - 0 0 0 0 0 0 0 0 0 0 0 0
61583 - 0 0 0 0 0 0 0 0 0 0 0 0
61584 - 0 0 0 0 0 0 0 0 0 0 0 0
61585 - 0 0 0 0 0 0 0 0 0 0 0 0
61586 - 0 0 0 0 0 0 0 0 0 0 0 0
61587 - 0 0 0 0 0 0 0 0 0 0 0 0
61588 - 0 0 0 0 0 0 0 0 0 0 0 0
61589 - 0 0 0 0 0 0 0 0 0 0 0 0
61590 - 0 0 0 0 0 0 0 0 0 0 0 0
61591 - 0 0 0 0 0 0 0 0 0 0 0 0
61592 - 0 0 0 0 0 0 0 0 0 0 0 0
61593 - 0 0 0 0 0 0 0 0 0 10 10 10
61594 - 34 34 34 82 82 82 30 30 30 61 42 6
61595 -180 123 7 206 145 10 230 174 11 239 182 13
61596 -234 190 10 238 202 15 241 208 19 246 218 74
61597 -246 218 38 246 215 20 246 215 20 246 215 20
61598 -226 184 13 215 174 15 184 144 12 6 6 6
61599 - 2 2 6 2 2 6 2 2 6 2 2 6
61600 - 26 26 26 94 94 94 42 42 42 14 14 14
61601 - 0 0 0 0 0 0 0 0 0 0 0 0
61602 - 0 0 0 0 0 0 0 0 0 0 0 0
61603 - 0 0 0 0 0 0 0 0 0 0 0 0
61604 - 0 0 0 0 0 0 0 0 0 0 0 0
61605 - 0 0 0 0 0 0 0 0 0 0 0 0
61606 - 0 0 0 0 0 0 0 0 0 0 0 0
61607 - 0 0 0 0 0 0 0 0 0 0 0 0
61608 - 0 0 0 0 0 0 0 0 0 0 0 0
61609 - 0 0 0 0 0 0 0 0 0 0 0 0
61610 - 0 0 0 0 0 0 0 0 0 0 0 0
61611 - 0 0 0 0 0 0 0 0 0 0 0 0
61612 - 0 0 0 0 0 0 0 0 0 0 0 0
61613 - 0 0 0 0 0 0 0 0 0 10 10 10
61614 - 30 30 30 78 78 78 50 50 50 104 69 6
61615 -192 133 9 216 158 10 236 178 12 236 186 11
61616 -232 195 16 241 208 19 244 214 54 245 215 43
61617 -246 215 20 246 215 20 241 208 19 198 155 10
61618 -200 144 11 216 158 10 156 118 10 2 2 6
61619 - 2 2 6 2 2 6 2 2 6 2 2 6
61620 - 6 6 6 90 90 90 54 54 54 18 18 18
61621 - 6 6 6 0 0 0 0 0 0 0 0 0
61622 - 0 0 0 0 0 0 0 0 0 0 0 0
61623 - 0 0 0 0 0 0 0 0 0 0 0 0
61624 - 0 0 0 0 0 0 0 0 0 0 0 0
61625 - 0 0 0 0 0 0 0 0 0 0 0 0
61626 - 0 0 0 0 0 0 0 0 0 0 0 0
61627 - 0 0 0 0 0 0 0 0 0 0 0 0
61628 - 0 0 0 0 0 0 0 0 0 0 0 0
61629 - 0 0 0 0 0 0 0 0 0 0 0 0
61630 - 0 0 0 0 0 0 0 0 0 0 0 0
61631 - 0 0 0 0 0 0 0 0 0 0 0 0
61632 - 0 0 0 0 0 0 0 0 0 0 0 0
61633 - 0 0 0 0 0 0 0 0 0 10 10 10
61634 - 30 30 30 78 78 78 46 46 46 22 22 22
61635 -137 92 6 210 162 10 239 182 13 238 190 10
61636 -238 202 15 241 208 19 246 215 20 246 215 20
61637 -241 208 19 203 166 17 185 133 11 210 150 10
61638 -216 158 10 210 150 10 102 78 10 2 2 6
61639 - 6 6 6 54 54 54 14 14 14 2 2 6
61640 - 2 2 6 62 62 62 74 74 74 30 30 30
61641 - 10 10 10 0 0 0 0 0 0 0 0 0
61642 - 0 0 0 0 0 0 0 0 0 0 0 0
61643 - 0 0 0 0 0 0 0 0 0 0 0 0
61644 - 0 0 0 0 0 0 0 0 0 0 0 0
61645 - 0 0 0 0 0 0 0 0 0 0 0 0
61646 - 0 0 0 0 0 0 0 0 0 0 0 0
61647 - 0 0 0 0 0 0 0 0 0 0 0 0
61648 - 0 0 0 0 0 0 0 0 0 0 0 0
61649 - 0 0 0 0 0 0 0 0 0 0 0 0
61650 - 0 0 0 0 0 0 0 0 0 0 0 0
61651 - 0 0 0 0 0 0 0 0 0 0 0 0
61652 - 0 0 0 0 0 0 0 0 0 0 0 0
61653 - 0 0 0 0 0 0 0 0 0 10 10 10
61654 - 34 34 34 78 78 78 50 50 50 6 6 6
61655 - 94 70 30 139 102 15 190 146 13 226 184 13
61656 -232 200 30 232 195 16 215 174 15 190 146 13
61657 -168 122 10 192 133 9 210 150 10 213 154 11
61658 -202 150 34 182 157 106 101 98 89 2 2 6
61659 - 2 2 6 78 78 78 116 116 116 58 58 58
61660 - 2 2 6 22 22 22 90 90 90 46 46 46
61661 - 18 18 18 6 6 6 0 0 0 0 0 0
61662 - 0 0 0 0 0 0 0 0 0 0 0 0
61663 - 0 0 0 0 0 0 0 0 0 0 0 0
61664 - 0 0 0 0 0 0 0 0 0 0 0 0
61665 - 0 0 0 0 0 0 0 0 0 0 0 0
61666 - 0 0 0 0 0 0 0 0 0 0 0 0
61667 - 0 0 0 0 0 0 0 0 0 0 0 0
61668 - 0 0 0 0 0 0 0 0 0 0 0 0
61669 - 0 0 0 0 0 0 0 0 0 0 0 0
61670 - 0 0 0 0 0 0 0 0 0 0 0 0
61671 - 0 0 0 0 0 0 0 0 0 0 0 0
61672 - 0 0 0 0 0 0 0 0 0 0 0 0
61673 - 0 0 0 0 0 0 0 0 0 10 10 10
61674 - 38 38 38 86 86 86 50 50 50 6 6 6
61675 -128 128 128 174 154 114 156 107 11 168 122 10
61676 -198 155 10 184 144 12 197 138 11 200 144 11
61677 -206 145 10 206 145 10 197 138 11 188 164 115
61678 -195 195 195 198 198 198 174 174 174 14 14 14
61679 - 2 2 6 22 22 22 116 116 116 116 116 116
61680 - 22 22 22 2 2 6 74 74 74 70 70 70
61681 - 30 30 30 10 10 10 0 0 0 0 0 0
61682 - 0 0 0 0 0 0 0 0 0 0 0 0
61683 - 0 0 0 0 0 0 0 0 0 0 0 0
61684 - 0 0 0 0 0 0 0 0 0 0 0 0
61685 - 0 0 0 0 0 0 0 0 0 0 0 0
61686 - 0 0 0 0 0 0 0 0 0 0 0 0
61687 - 0 0 0 0 0 0 0 0 0 0 0 0
61688 - 0 0 0 0 0 0 0 0 0 0 0 0
61689 - 0 0 0 0 0 0 0 0 0 0 0 0
61690 - 0 0 0 0 0 0 0 0 0 0 0 0
61691 - 0 0 0 0 0 0 0 0 0 0 0 0
61692 - 0 0 0 0 0 0 0 0 0 0 0 0
61693 - 0 0 0 0 0 0 6 6 6 18 18 18
61694 - 50 50 50 101 101 101 26 26 26 10 10 10
61695 -138 138 138 190 190 190 174 154 114 156 107 11
61696 -197 138 11 200 144 11 197 138 11 192 133 9
61697 -180 123 7 190 142 34 190 178 144 187 187 187
61698 -202 202 202 221 221 221 214 214 214 66 66 66
61699 - 2 2 6 2 2 6 50 50 50 62 62 62
61700 - 6 6 6 2 2 6 10 10 10 90 90 90
61701 - 50 50 50 18 18 18 6 6 6 0 0 0
61702 - 0 0 0 0 0 0 0 0 0 0 0 0
61703 - 0 0 0 0 0 0 0 0 0 0 0 0
61704 - 0 0 0 0 0 0 0 0 0 0 0 0
61705 - 0 0 0 0 0 0 0 0 0 0 0 0
61706 - 0 0 0 0 0 0 0 0 0 0 0 0
61707 - 0 0 0 0 0 0 0 0 0 0 0 0
61708 - 0 0 0 0 0 0 0 0 0 0 0 0
61709 - 0 0 0 0 0 0 0 0 0 0 0 0
61710 - 0 0 0 0 0 0 0 0 0 0 0 0
61711 - 0 0 0 0 0 0 0 0 0 0 0 0
61712 - 0 0 0 0 0 0 0 0 0 0 0 0
61713 - 0 0 0 0 0 0 10 10 10 34 34 34
61714 - 74 74 74 74 74 74 2 2 6 6 6 6
61715 -144 144 144 198 198 198 190 190 190 178 166 146
61716 -154 121 60 156 107 11 156 107 11 168 124 44
61717 -174 154 114 187 187 187 190 190 190 210 210 210
61718 -246 246 246 253 253 253 253 253 253 182 182 182
61719 - 6 6 6 2 2 6 2 2 6 2 2 6
61720 - 2 2 6 2 2 6 2 2 6 62 62 62
61721 - 74 74 74 34 34 34 14 14 14 0 0 0
61722 - 0 0 0 0 0 0 0 0 0 0 0 0
61723 - 0 0 0 0 0 0 0 0 0 0 0 0
61724 - 0 0 0 0 0 0 0 0 0 0 0 0
61725 - 0 0 0 0 0 0 0 0 0 0 0 0
61726 - 0 0 0 0 0 0 0 0 0 0 0 0
61727 - 0 0 0 0 0 0 0 0 0 0 0 0
61728 - 0 0 0 0 0 0 0 0 0 0 0 0
61729 - 0 0 0 0 0 0 0 0 0 0 0 0
61730 - 0 0 0 0 0 0 0 0 0 0 0 0
61731 - 0 0 0 0 0 0 0 0 0 0 0 0
61732 - 0 0 0 0 0 0 0 0 0 0 0 0
61733 - 0 0 0 10 10 10 22 22 22 54 54 54
61734 - 94 94 94 18 18 18 2 2 6 46 46 46
61735 -234 234 234 221 221 221 190 190 190 190 190 190
61736 -190 190 190 187 187 187 187 187 187 190 190 190
61737 -190 190 190 195 195 195 214 214 214 242 242 242
61738 -253 253 253 253 253 253 253 253 253 253 253 253
61739 - 82 82 82 2 2 6 2 2 6 2 2 6
61740 - 2 2 6 2 2 6 2 2 6 14 14 14
61741 - 86 86 86 54 54 54 22 22 22 6 6 6
61742 - 0 0 0 0 0 0 0 0 0 0 0 0
61743 - 0 0 0 0 0 0 0 0 0 0 0 0
61744 - 0 0 0 0 0 0 0 0 0 0 0 0
61745 - 0 0 0 0 0 0 0 0 0 0 0 0
61746 - 0 0 0 0 0 0 0 0 0 0 0 0
61747 - 0 0 0 0 0 0 0 0 0 0 0 0
61748 - 0 0 0 0 0 0 0 0 0 0 0 0
61749 - 0 0 0 0 0 0 0 0 0 0 0 0
61750 - 0 0 0 0 0 0 0 0 0 0 0 0
61751 - 0 0 0 0 0 0 0 0 0 0 0 0
61752 - 0 0 0 0 0 0 0 0 0 0 0 0
61753 - 6 6 6 18 18 18 46 46 46 90 90 90
61754 - 46 46 46 18 18 18 6 6 6 182 182 182
61755 -253 253 253 246 246 246 206 206 206 190 190 190
61756 -190 190 190 190 190 190 190 190 190 190 190 190
61757 -206 206 206 231 231 231 250 250 250 253 253 253
61758 -253 253 253 253 253 253 253 253 253 253 253 253
61759 -202 202 202 14 14 14 2 2 6 2 2 6
61760 - 2 2 6 2 2 6 2 2 6 2 2 6
61761 - 42 42 42 86 86 86 42 42 42 18 18 18
61762 - 6 6 6 0 0 0 0 0 0 0 0 0
61763 - 0 0 0 0 0 0 0 0 0 0 0 0
61764 - 0 0 0 0 0 0 0 0 0 0 0 0
61765 - 0 0 0 0 0 0 0 0 0 0 0 0
61766 - 0 0 0 0 0 0 0 0 0 0 0 0
61767 - 0 0 0 0 0 0 0 0 0 0 0 0
61768 - 0 0 0 0 0 0 0 0 0 0 0 0
61769 - 0 0 0 0 0 0 0 0 0 0 0 0
61770 - 0 0 0 0 0 0 0 0 0 0 0 0
61771 - 0 0 0 0 0 0 0 0 0 0 0 0
61772 - 0 0 0 0 0 0 0 0 0 6 6 6
61773 - 14 14 14 38 38 38 74 74 74 66 66 66
61774 - 2 2 6 6 6 6 90 90 90 250 250 250
61775 -253 253 253 253 253 253 238 238 238 198 198 198
61776 -190 190 190 190 190 190 195 195 195 221 221 221
61777 -246 246 246 253 253 253 253 253 253 253 253 253
61778 -253 253 253 253 253 253 253 253 253 253 253 253
61779 -253 253 253 82 82 82 2 2 6 2 2 6
61780 - 2 2 6 2 2 6 2 2 6 2 2 6
61781 - 2 2 6 78 78 78 70 70 70 34 34 34
61782 - 14 14 14 6 6 6 0 0 0 0 0 0
61783 - 0 0 0 0 0 0 0 0 0 0 0 0
61784 - 0 0 0 0 0 0 0 0 0 0 0 0
61785 - 0 0 0 0 0 0 0 0 0 0 0 0
61786 - 0 0 0 0 0 0 0 0 0 0 0 0
61787 - 0 0 0 0 0 0 0 0 0 0 0 0
61788 - 0 0 0 0 0 0 0 0 0 0 0 0
61789 - 0 0 0 0 0 0 0 0 0 0 0 0
61790 - 0 0 0 0 0 0 0 0 0 0 0 0
61791 - 0 0 0 0 0 0 0 0 0 0 0 0
61792 - 0 0 0 0 0 0 0 0 0 14 14 14
61793 - 34 34 34 66 66 66 78 78 78 6 6 6
61794 - 2 2 6 18 18 18 218 218 218 253 253 253
61795 -253 253 253 253 253 253 253 253 253 246 246 246
61796 -226 226 226 231 231 231 246 246 246 253 253 253
61797 -253 253 253 253 253 253 253 253 253 253 253 253
61798 -253 253 253 253 253 253 253 253 253 253 253 253
61799 -253 253 253 178 178 178 2 2 6 2 2 6
61800 - 2 2 6 2 2 6 2 2 6 2 2 6
61801 - 2 2 6 18 18 18 90 90 90 62 62 62
61802 - 30 30 30 10 10 10 0 0 0 0 0 0
61803 - 0 0 0 0 0 0 0 0 0 0 0 0
61804 - 0 0 0 0 0 0 0 0 0 0 0 0
61805 - 0 0 0 0 0 0 0 0 0 0 0 0
61806 - 0 0 0 0 0 0 0 0 0 0 0 0
61807 - 0 0 0 0 0 0 0 0 0 0 0 0
61808 - 0 0 0 0 0 0 0 0 0 0 0 0
61809 - 0 0 0 0 0 0 0 0 0 0 0 0
61810 - 0 0 0 0 0 0 0 0 0 0 0 0
61811 - 0 0 0 0 0 0 0 0 0 0 0 0
61812 - 0 0 0 0 0 0 10 10 10 26 26 26
61813 - 58 58 58 90 90 90 18 18 18 2 2 6
61814 - 2 2 6 110 110 110 253 253 253 253 253 253
61815 -253 253 253 253 253 253 253 253 253 253 253 253
61816 -250 250 250 253 253 253 253 253 253 253 253 253
61817 -253 253 253 253 253 253 253 253 253 253 253 253
61818 -253 253 253 253 253 253 253 253 253 253 253 253
61819 -253 253 253 231 231 231 18 18 18 2 2 6
61820 - 2 2 6 2 2 6 2 2 6 2 2 6
61821 - 2 2 6 2 2 6 18 18 18 94 94 94
61822 - 54 54 54 26 26 26 10 10 10 0 0 0
61823 - 0 0 0 0 0 0 0 0 0 0 0 0
61824 - 0 0 0 0 0 0 0 0 0 0 0 0
61825 - 0 0 0 0 0 0 0 0 0 0 0 0
61826 - 0 0 0 0 0 0 0 0 0 0 0 0
61827 - 0 0 0 0 0 0 0 0 0 0 0 0
61828 - 0 0 0 0 0 0 0 0 0 0 0 0
61829 - 0 0 0 0 0 0 0 0 0 0 0 0
61830 - 0 0 0 0 0 0 0 0 0 0 0 0
61831 - 0 0 0 0 0 0 0 0 0 0 0 0
61832 - 0 0 0 6 6 6 22 22 22 50 50 50
61833 - 90 90 90 26 26 26 2 2 6 2 2 6
61834 - 14 14 14 195 195 195 250 250 250 253 253 253
61835 -253 253 253 253 253 253 253 253 253 253 253 253
61836 -253 253 253 253 253 253 253 253 253 253 253 253
61837 -253 253 253 253 253 253 253 253 253 253 253 253
61838 -253 253 253 253 253 253 253 253 253 253 253 253
61839 -250 250 250 242 242 242 54 54 54 2 2 6
61840 - 2 2 6 2 2 6 2 2 6 2 2 6
61841 - 2 2 6 2 2 6 2 2 6 38 38 38
61842 - 86 86 86 50 50 50 22 22 22 6 6 6
61843 - 0 0 0 0 0 0 0 0 0 0 0 0
61844 - 0 0 0 0 0 0 0 0 0 0 0 0
61845 - 0 0 0 0 0 0 0 0 0 0 0 0
61846 - 0 0 0 0 0 0 0 0 0 0 0 0
61847 - 0 0 0 0 0 0 0 0 0 0 0 0
61848 - 0 0 0 0 0 0 0 0 0 0 0 0
61849 - 0 0 0 0 0 0 0 0 0 0 0 0
61850 - 0 0 0 0 0 0 0 0 0 0 0 0
61851 - 0 0 0 0 0 0 0 0 0 0 0 0
61852 - 6 6 6 14 14 14 38 38 38 82 82 82
61853 - 34 34 34 2 2 6 2 2 6 2 2 6
61854 - 42 42 42 195 195 195 246 246 246 253 253 253
61855 -253 253 253 253 253 253 253 253 253 250 250 250
61856 -242 242 242 242 242 242 250 250 250 253 253 253
61857 -253 253 253 253 253 253 253 253 253 253 253 253
61858 -253 253 253 250 250 250 246 246 246 238 238 238
61859 -226 226 226 231 231 231 101 101 101 6 6 6
61860 - 2 2 6 2 2 6 2 2 6 2 2 6
61861 - 2 2 6 2 2 6 2 2 6 2 2 6
61862 - 38 38 38 82 82 82 42 42 42 14 14 14
61863 - 6 6 6 0 0 0 0 0 0 0 0 0
61864 - 0 0 0 0 0 0 0 0 0 0 0 0
61865 - 0 0 0 0 0 0 0 0 0 0 0 0
61866 - 0 0 0 0 0 0 0 0 0 0 0 0
61867 - 0 0 0 0 0 0 0 0 0 0 0 0
61868 - 0 0 0 0 0 0 0 0 0 0 0 0
61869 - 0 0 0 0 0 0 0 0 0 0 0 0
61870 - 0 0 0 0 0 0 0 0 0 0 0 0
61871 - 0 0 0 0 0 0 0 0 0 0 0 0
61872 - 10 10 10 26 26 26 62 62 62 66 66 66
61873 - 2 2 6 2 2 6 2 2 6 6 6 6
61874 - 70 70 70 170 170 170 206 206 206 234 234 234
61875 -246 246 246 250 250 250 250 250 250 238 238 238
61876 -226 226 226 231 231 231 238 238 238 250 250 250
61877 -250 250 250 250 250 250 246 246 246 231 231 231
61878 -214 214 214 206 206 206 202 202 202 202 202 202
61879 -198 198 198 202 202 202 182 182 182 18 18 18
61880 - 2 2 6 2 2 6 2 2 6 2 2 6
61881 - 2 2 6 2 2 6 2 2 6 2 2 6
61882 - 2 2 6 62 62 62 66 66 66 30 30 30
61883 - 10 10 10 0 0 0 0 0 0 0 0 0
61884 - 0 0 0 0 0 0 0 0 0 0 0 0
61885 - 0 0 0 0 0 0 0 0 0 0 0 0
61886 - 0 0 0 0 0 0 0 0 0 0 0 0
61887 - 0 0 0 0 0 0 0 0 0 0 0 0
61888 - 0 0 0 0 0 0 0 0 0 0 0 0
61889 - 0 0 0 0 0 0 0 0 0 0 0 0
61890 - 0 0 0 0 0 0 0 0 0 0 0 0
61891 - 0 0 0 0 0 0 0 0 0 0 0 0
61892 - 14 14 14 42 42 42 82 82 82 18 18 18
61893 - 2 2 6 2 2 6 2 2 6 10 10 10
61894 - 94 94 94 182 182 182 218 218 218 242 242 242
61895 -250 250 250 253 253 253 253 253 253 250 250 250
61896 -234 234 234 253 253 253 253 253 253 253 253 253
61897 -253 253 253 253 253 253 253 253 253 246 246 246
61898 -238 238 238 226 226 226 210 210 210 202 202 202
61899 -195 195 195 195 195 195 210 210 210 158 158 158
61900 - 6 6 6 14 14 14 50 50 50 14 14 14
61901 - 2 2 6 2 2 6 2 2 6 2 2 6
61902 - 2 2 6 6 6 6 86 86 86 46 46 46
61903 - 18 18 18 6 6 6 0 0 0 0 0 0
61904 - 0 0 0 0 0 0 0 0 0 0 0 0
61905 - 0 0 0 0 0 0 0 0 0 0 0 0
61906 - 0 0 0 0 0 0 0 0 0 0 0 0
61907 - 0 0 0 0 0 0 0 0 0 0 0 0
61908 - 0 0 0 0 0 0 0 0 0 0 0 0
61909 - 0 0 0 0 0 0 0 0 0 0 0 0
61910 - 0 0 0 0 0 0 0 0 0 0 0 0
61911 - 0 0 0 0 0 0 0 0 0 6 6 6
61912 - 22 22 22 54 54 54 70 70 70 2 2 6
61913 - 2 2 6 10 10 10 2 2 6 22 22 22
61914 -166 166 166 231 231 231 250 250 250 253 253 253
61915 -253 253 253 253 253 253 253 253 253 250 250 250
61916 -242 242 242 253 253 253 253 253 253 253 253 253
61917 -253 253 253 253 253 253 253 253 253 253 253 253
61918 -253 253 253 253 253 253 253 253 253 246 246 246
61919 -231 231 231 206 206 206 198 198 198 226 226 226
61920 - 94 94 94 2 2 6 6 6 6 38 38 38
61921 - 30 30 30 2 2 6 2 2 6 2 2 6
61922 - 2 2 6 2 2 6 62 62 62 66 66 66
61923 - 26 26 26 10 10 10 0 0 0 0 0 0
61924 - 0 0 0 0 0 0 0 0 0 0 0 0
61925 - 0 0 0 0 0 0 0 0 0 0 0 0
61926 - 0 0 0 0 0 0 0 0 0 0 0 0
61927 - 0 0 0 0 0 0 0 0 0 0 0 0
61928 - 0 0 0 0 0 0 0 0 0 0 0 0
61929 - 0 0 0 0 0 0 0 0 0 0 0 0
61930 - 0 0 0 0 0 0 0 0 0 0 0 0
61931 - 0 0 0 0 0 0 0 0 0 10 10 10
61932 - 30 30 30 74 74 74 50 50 50 2 2 6
61933 - 26 26 26 26 26 26 2 2 6 106 106 106
61934 -238 238 238 253 253 253 253 253 253 253 253 253
61935 -253 253 253 253 253 253 253 253 253 253 253 253
61936 -253 253 253 253 253 253 253 253 253 253 253 253
61937 -253 253 253 253 253 253 253 253 253 253 253 253
61938 -253 253 253 253 253 253 253 253 253 253 253 253
61939 -253 253 253 246 246 246 218 218 218 202 202 202
61940 -210 210 210 14 14 14 2 2 6 2 2 6
61941 - 30 30 30 22 22 22 2 2 6 2 2 6
61942 - 2 2 6 2 2 6 18 18 18 86 86 86
61943 - 42 42 42 14 14 14 0 0 0 0 0 0
61944 - 0 0 0 0 0 0 0 0 0 0 0 0
61945 - 0 0 0 0 0 0 0 0 0 0 0 0
61946 - 0 0 0 0 0 0 0 0 0 0 0 0
61947 - 0 0 0 0 0 0 0 0 0 0 0 0
61948 - 0 0 0 0 0 0 0 0 0 0 0 0
61949 - 0 0 0 0 0 0 0 0 0 0 0 0
61950 - 0 0 0 0 0 0 0 0 0 0 0 0
61951 - 0 0 0 0 0 0 0 0 0 14 14 14
61952 - 42 42 42 90 90 90 22 22 22 2 2 6
61953 - 42 42 42 2 2 6 18 18 18 218 218 218
61954 -253 253 253 253 253 253 253 253 253 253 253 253
61955 -253 253 253 253 253 253 253 253 253 253 253 253
61956 -253 253 253 253 253 253 253 253 253 253 253 253
61957 -253 253 253 253 253 253 253 253 253 253 253 253
61958 -253 253 253 253 253 253 253 253 253 253 253 253
61959 -253 253 253 253 253 253 250 250 250 221 221 221
61960 -218 218 218 101 101 101 2 2 6 14 14 14
61961 - 18 18 18 38 38 38 10 10 10 2 2 6
61962 - 2 2 6 2 2 6 2 2 6 78 78 78
61963 - 58 58 58 22 22 22 6 6 6 0 0 0
61964 - 0 0 0 0 0 0 0 0 0 0 0 0
61965 - 0 0 0 0 0 0 0 0 0 0 0 0
61966 - 0 0 0 0 0 0 0 0 0 0 0 0
61967 - 0 0 0 0 0 0 0 0 0 0 0 0
61968 - 0 0 0 0 0 0 0 0 0 0 0 0
61969 - 0 0 0 0 0 0 0 0 0 0 0 0
61970 - 0 0 0 0 0 0 0 0 0 0 0 0
61971 - 0 0 0 0 0 0 6 6 6 18 18 18
61972 - 54 54 54 82 82 82 2 2 6 26 26 26
61973 - 22 22 22 2 2 6 123 123 123 253 253 253
61974 -253 253 253 253 253 253 253 253 253 253 253 253
61975 -253 253 253 253 253 253 253 253 253 253 253 253
61976 -253 253 253 253 253 253 253 253 253 253 253 253
61977 -253 253 253 253 253 253 253 253 253 253 253 253
61978 -253 253 253 253 253 253 253 253 253 253 253 253
61979 -253 253 253 253 253 253 253 253 253 250 250 250
61980 -238 238 238 198 198 198 6 6 6 38 38 38
61981 - 58 58 58 26 26 26 38 38 38 2 2 6
61982 - 2 2 6 2 2 6 2 2 6 46 46 46
61983 - 78 78 78 30 30 30 10 10 10 0 0 0
61984 - 0 0 0 0 0 0 0 0 0 0 0 0
61985 - 0 0 0 0 0 0 0 0 0 0 0 0
61986 - 0 0 0 0 0 0 0 0 0 0 0 0
61987 - 0 0 0 0 0 0 0 0 0 0 0 0
61988 - 0 0 0 0 0 0 0 0 0 0 0 0
61989 - 0 0 0 0 0 0 0 0 0 0 0 0
61990 - 0 0 0 0 0 0 0 0 0 0 0 0
61991 - 0 0 0 0 0 0 10 10 10 30 30 30
61992 - 74 74 74 58 58 58 2 2 6 42 42 42
61993 - 2 2 6 22 22 22 231 231 231 253 253 253
61994 -253 253 253 253 253 253 253 253 253 253 253 253
61995 -253 253 253 253 253 253 253 253 253 250 250 250
61996 -253 253 253 253 253 253 253 253 253 253 253 253
61997 -253 253 253 253 253 253 253 253 253 253 253 253
61998 -253 253 253 253 253 253 253 253 253 253 253 253
61999 -253 253 253 253 253 253 253 253 253 253 253 253
62000 -253 253 253 246 246 246 46 46 46 38 38 38
62001 - 42 42 42 14 14 14 38 38 38 14 14 14
62002 - 2 2 6 2 2 6 2 2 6 6 6 6
62003 - 86 86 86 46 46 46 14 14 14 0 0 0
62004 - 0 0 0 0 0 0 0 0 0 0 0 0
62005 - 0 0 0 0 0 0 0 0 0 0 0 0
62006 - 0 0 0 0 0 0 0 0 0 0 0 0
62007 - 0 0 0 0 0 0 0 0 0 0 0 0
62008 - 0 0 0 0 0 0 0 0 0 0 0 0
62009 - 0 0 0 0 0 0 0 0 0 0 0 0
62010 - 0 0 0 0 0 0 0 0 0 0 0 0
62011 - 0 0 0 6 6 6 14 14 14 42 42 42
62012 - 90 90 90 18 18 18 18 18 18 26 26 26
62013 - 2 2 6 116 116 116 253 253 253 253 253 253
62014 -253 253 253 253 253 253 253 253 253 253 253 253
62015 -253 253 253 253 253 253 250 250 250 238 238 238
62016 -253 253 253 253 253 253 253 253 253 253 253 253
62017 -253 253 253 253 253 253 253 253 253 253 253 253
62018 -253 253 253 253 253 253 253 253 253 253 253 253
62019 -253 253 253 253 253 253 253 253 253 253 253 253
62020 -253 253 253 253 253 253 94 94 94 6 6 6
62021 - 2 2 6 2 2 6 10 10 10 34 34 34
62022 - 2 2 6 2 2 6 2 2 6 2 2 6
62023 - 74 74 74 58 58 58 22 22 22 6 6 6
62024 - 0 0 0 0 0 0 0 0 0 0 0 0
62025 - 0 0 0 0 0 0 0 0 0 0 0 0
62026 - 0 0 0 0 0 0 0 0 0 0 0 0
62027 - 0 0 0 0 0 0 0 0 0 0 0 0
62028 - 0 0 0 0 0 0 0 0 0 0 0 0
62029 - 0 0 0 0 0 0 0 0 0 0 0 0
62030 - 0 0 0 0 0 0 0 0 0 0 0 0
62031 - 0 0 0 10 10 10 26 26 26 66 66 66
62032 - 82 82 82 2 2 6 38 38 38 6 6 6
62033 - 14 14 14 210 210 210 253 253 253 253 253 253
62034 -253 253 253 253 253 253 253 253 253 253 253 253
62035 -253 253 253 253 253 253 246 246 246 242 242 242
62036 -253 253 253 253 253 253 253 253 253 253 253 253
62037 -253 253 253 253 253 253 253 253 253 253 253 253
62038 -253 253 253 253 253 253 253 253 253 253 253 253
62039 -253 253 253 253 253 253 253 253 253 253 253 253
62040 -253 253 253 253 253 253 144 144 144 2 2 6
62041 - 2 2 6 2 2 6 2 2 6 46 46 46
62042 - 2 2 6 2 2 6 2 2 6 2 2 6
62043 - 42 42 42 74 74 74 30 30 30 10 10 10
62044 - 0 0 0 0 0 0 0 0 0 0 0 0
62045 - 0 0 0 0 0 0 0 0 0 0 0 0
62046 - 0 0 0 0 0 0 0 0 0 0 0 0
62047 - 0 0 0 0 0 0 0 0 0 0 0 0
62048 - 0 0 0 0 0 0 0 0 0 0 0 0
62049 - 0 0 0 0 0 0 0 0 0 0 0 0
62050 - 0 0 0 0 0 0 0 0 0 0 0 0
62051 - 6 6 6 14 14 14 42 42 42 90 90 90
62052 - 26 26 26 6 6 6 42 42 42 2 2 6
62053 - 74 74 74 250 250 250 253 253 253 253 253 253
62054 -253 253 253 253 253 253 253 253 253 253 253 253
62055 -253 253 253 253 253 253 242 242 242 242 242 242
62056 -253 253 253 253 253 253 253 253 253 253 253 253
62057 -253 253 253 253 253 253 253 253 253 253 253 253
62058 -253 253 253 253 253 253 253 253 253 253 253 253
62059 -253 253 253 253 253 253 253 253 253 253 253 253
62060 -253 253 253 253 253 253 182 182 182 2 2 6
62061 - 2 2 6 2 2 6 2 2 6 46 46 46
62062 - 2 2 6 2 2 6 2 2 6 2 2 6
62063 - 10 10 10 86 86 86 38 38 38 10 10 10
62064 - 0 0 0 0 0 0 0 0 0 0 0 0
62065 - 0 0 0 0 0 0 0 0 0 0 0 0
62066 - 0 0 0 0 0 0 0 0 0 0 0 0
62067 - 0 0 0 0 0 0 0 0 0 0 0 0
62068 - 0 0 0 0 0 0 0 0 0 0 0 0
62069 - 0 0 0 0 0 0 0 0 0 0 0 0
62070 - 0 0 0 0 0 0 0 0 0 0 0 0
62071 - 10 10 10 26 26 26 66 66 66 82 82 82
62072 - 2 2 6 22 22 22 18 18 18 2 2 6
62073 -149 149 149 253 253 253 253 253 253 253 253 253
62074 -253 253 253 253 253 253 253 253 253 253 253 253
62075 -253 253 253 253 253 253 234 234 234 242 242 242
62076 -253 253 253 253 253 253 253 253 253 253 253 253
62077 -253 253 253 253 253 253 253 253 253 253 253 253
62078 -253 253 253 253 253 253 253 253 253 253 253 253
62079 -253 253 253 253 253 253 253 253 253 253 253 253
62080 -253 253 253 253 253 253 206 206 206 2 2 6
62081 - 2 2 6 2 2 6 2 2 6 38 38 38
62082 - 2 2 6 2 2 6 2 2 6 2 2 6
62083 - 6 6 6 86 86 86 46 46 46 14 14 14
62084 - 0 0 0 0 0 0 0 0 0 0 0 0
62085 - 0 0 0 0 0 0 0 0 0 0 0 0
62086 - 0 0 0 0 0 0 0 0 0 0 0 0
62087 - 0 0 0 0 0 0 0 0 0 0 0 0
62088 - 0 0 0 0 0 0 0 0 0 0 0 0
62089 - 0 0 0 0 0 0 0 0 0 0 0 0
62090 - 0 0 0 0 0 0 0 0 0 6 6 6
62091 - 18 18 18 46 46 46 86 86 86 18 18 18
62092 - 2 2 6 34 34 34 10 10 10 6 6 6
62093 -210 210 210 253 253 253 253 253 253 253 253 253
62094 -253 253 253 253 253 253 253 253 253 253 253 253
62095 -253 253 253 253 253 253 234 234 234 242 242 242
62096 -253 253 253 253 253 253 253 253 253 253 253 253
62097 -253 253 253 253 253 253 253 253 253 253 253 253
62098 -253 253 253 253 253 253 253 253 253 253 253 253
62099 -253 253 253 253 253 253 253 253 253 253 253 253
62100 -253 253 253 253 253 253 221 221 221 6 6 6
62101 - 2 2 6 2 2 6 6 6 6 30 30 30
62102 - 2 2 6 2 2 6 2 2 6 2 2 6
62103 - 2 2 6 82 82 82 54 54 54 18 18 18
62104 - 6 6 6 0 0 0 0 0 0 0 0 0
62105 - 0 0 0 0 0 0 0 0 0 0 0 0
62106 - 0 0 0 0 0 0 0 0 0 0 0 0
62107 - 0 0 0 0 0 0 0 0 0 0 0 0
62108 - 0 0 0 0 0 0 0 0 0 0 0 0
62109 - 0 0 0 0 0 0 0 0 0 0 0 0
62110 - 0 0 0 0 0 0 0 0 0 10 10 10
62111 - 26 26 26 66 66 66 62 62 62 2 2 6
62112 - 2 2 6 38 38 38 10 10 10 26 26 26
62113 -238 238 238 253 253 253 253 253 253 253 253 253
62114 -253 253 253 253 253 253 253 253 253 253 253 253
62115 -253 253 253 253 253 253 231 231 231 238 238 238
62116 -253 253 253 253 253 253 253 253 253 253 253 253
62117 -253 253 253 253 253 253 253 253 253 253 253 253
62118 -253 253 253 253 253 253 253 253 253 253 253 253
62119 -253 253 253 253 253 253 253 253 253 253 253 253
62120 -253 253 253 253 253 253 231 231 231 6 6 6
62121 - 2 2 6 2 2 6 10 10 10 30 30 30
62122 - 2 2 6 2 2 6 2 2 6 2 2 6
62123 - 2 2 6 66 66 66 58 58 58 22 22 22
62124 - 6 6 6 0 0 0 0 0 0 0 0 0
62125 - 0 0 0 0 0 0 0 0 0 0 0 0
62126 - 0 0 0 0 0 0 0 0 0 0 0 0
62127 - 0 0 0 0 0 0 0 0 0 0 0 0
62128 - 0 0 0 0 0 0 0 0 0 0 0 0
62129 - 0 0 0 0 0 0 0 0 0 0 0 0
62130 - 0 0 0 0 0 0 0 0 0 10 10 10
62131 - 38 38 38 78 78 78 6 6 6 2 2 6
62132 - 2 2 6 46 46 46 14 14 14 42 42 42
62133 -246 246 246 253 253 253 253 253 253 253 253 253
62134 -253 253 253 253 253 253 253 253 253 253 253 253
62135 -253 253 253 253 253 253 231 231 231 242 242 242
62136 -253 253 253 253 253 253 253 253 253 253 253 253
62137 -253 253 253 253 253 253 253 253 253 253 253 253
62138 -253 253 253 253 253 253 253 253 253 253 253 253
62139 -253 253 253 253 253 253 253 253 253 253 253 253
62140 -253 253 253 253 253 253 234 234 234 10 10 10
62141 - 2 2 6 2 2 6 22 22 22 14 14 14
62142 - 2 2 6 2 2 6 2 2 6 2 2 6
62143 - 2 2 6 66 66 66 62 62 62 22 22 22
62144 - 6 6 6 0 0 0 0 0 0 0 0 0
62145 - 0 0 0 0 0 0 0 0 0 0 0 0
62146 - 0 0 0 0 0 0 0 0 0 0 0 0
62147 - 0 0 0 0 0 0 0 0 0 0 0 0
62148 - 0 0 0 0 0 0 0 0 0 0 0 0
62149 - 0 0 0 0 0 0 0 0 0 0 0 0
62150 - 0 0 0 0 0 0 6 6 6 18 18 18
62151 - 50 50 50 74 74 74 2 2 6 2 2 6
62152 - 14 14 14 70 70 70 34 34 34 62 62 62
62153 -250 250 250 253 253 253 253 253 253 253 253 253
62154 -253 253 253 253 253 253 253 253 253 253 253 253
62155 -253 253 253 253 253 253 231 231 231 246 246 246
62156 -253 253 253 253 253 253 253 253 253 253 253 253
62157 -253 253 253 253 253 253 253 253 253 253 253 253
62158 -253 253 253 253 253 253 253 253 253 253 253 253
62159 -253 253 253 253 253 253 253 253 253 253 253 253
62160 -253 253 253 253 253 253 234 234 234 14 14 14
62161 - 2 2 6 2 2 6 30 30 30 2 2 6
62162 - 2 2 6 2 2 6 2 2 6 2 2 6
62163 - 2 2 6 66 66 66 62 62 62 22 22 22
62164 - 6 6 6 0 0 0 0 0 0 0 0 0
62165 - 0 0 0 0 0 0 0 0 0 0 0 0
62166 - 0 0 0 0 0 0 0 0 0 0 0 0
62167 - 0 0 0 0 0 0 0 0 0 0 0 0
62168 - 0 0 0 0 0 0 0 0 0 0 0 0
62169 - 0 0 0 0 0 0 0 0 0 0 0 0
62170 - 0 0 0 0 0 0 6 6 6 18 18 18
62171 - 54 54 54 62 62 62 2 2 6 2 2 6
62172 - 2 2 6 30 30 30 46 46 46 70 70 70
62173 -250 250 250 253 253 253 253 253 253 253 253 253
62174 -253 253 253 253 253 253 253 253 253 253 253 253
62175 -253 253 253 253 253 253 231 231 231 246 246 246
62176 -253 253 253 253 253 253 253 253 253 253 253 253
62177 -253 253 253 253 253 253 253 253 253 253 253 253
62178 -253 253 253 253 253 253 253 253 253 253 253 253
62179 -253 253 253 253 253 253 253 253 253 253 253 253
62180 -253 253 253 253 253 253 226 226 226 10 10 10
62181 - 2 2 6 6 6 6 30 30 30 2 2 6
62182 - 2 2 6 2 2 6 2 2 6 2 2 6
62183 - 2 2 6 66 66 66 58 58 58 22 22 22
62184 - 6 6 6 0 0 0 0 0 0 0 0 0
62185 - 0 0 0 0 0 0 0 0 0 0 0 0
62186 - 0 0 0 0 0 0 0 0 0 0 0 0
62187 - 0 0 0 0 0 0 0 0 0 0 0 0
62188 - 0 0 0 0 0 0 0 0 0 0 0 0
62189 - 0 0 0 0 0 0 0 0 0 0 0 0
62190 - 0 0 0 0 0 0 6 6 6 22 22 22
62191 - 58 58 58 62 62 62 2 2 6 2 2 6
62192 - 2 2 6 2 2 6 30 30 30 78 78 78
62193 -250 250 250 253 253 253 253 253 253 253 253 253
62194 -253 253 253 253 253 253 253 253 253 253 253 253
62195 -253 253 253 253 253 253 231 231 231 246 246 246
62196 -253 253 253 253 253 253 253 253 253 253 253 253
62197 -253 253 253 253 253 253 253 253 253 253 253 253
62198 -253 253 253 253 253 253 253 253 253 253 253 253
62199 -253 253 253 253 253 253 253 253 253 253 253 253
62200 -253 253 253 253 253 253 206 206 206 2 2 6
62201 - 22 22 22 34 34 34 18 14 6 22 22 22
62202 - 26 26 26 18 18 18 6 6 6 2 2 6
62203 - 2 2 6 82 82 82 54 54 54 18 18 18
62204 - 6 6 6 0 0 0 0 0 0 0 0 0
62205 - 0 0 0 0 0 0 0 0 0 0 0 0
62206 - 0 0 0 0 0 0 0 0 0 0 0 0
62207 - 0 0 0 0 0 0 0 0 0 0 0 0
62208 - 0 0 0 0 0 0 0 0 0 0 0 0
62209 - 0 0 0 0 0 0 0 0 0 0 0 0
62210 - 0 0 0 0 0 0 6 6 6 26 26 26
62211 - 62 62 62 106 106 106 74 54 14 185 133 11
62212 -210 162 10 121 92 8 6 6 6 62 62 62
62213 -238 238 238 253 253 253 253 253 253 253 253 253
62214 -253 253 253 253 253 253 253 253 253 253 253 253
62215 -253 253 253 253 253 253 231 231 231 246 246 246
62216 -253 253 253 253 253 253 253 253 253 253 253 253
62217 -253 253 253 253 253 253 253 253 253 253 253 253
62218 -253 253 253 253 253 253 253 253 253 253 253 253
62219 -253 253 253 253 253 253 253 253 253 253 253 253
62220 -253 253 253 253 253 253 158 158 158 18 18 18
62221 - 14 14 14 2 2 6 2 2 6 2 2 6
62222 - 6 6 6 18 18 18 66 66 66 38 38 38
62223 - 6 6 6 94 94 94 50 50 50 18 18 18
62224 - 6 6 6 0 0 0 0 0 0 0 0 0
62225 - 0 0 0 0 0 0 0 0 0 0 0 0
62226 - 0 0 0 0 0 0 0 0 0 0 0 0
62227 - 0 0 0 0 0 0 0 0 0 0 0 0
62228 - 0 0 0 0 0 0 0 0 0 0 0 0
62229 - 0 0 0 0 0 0 0 0 0 6 6 6
62230 - 10 10 10 10 10 10 18 18 18 38 38 38
62231 - 78 78 78 142 134 106 216 158 10 242 186 14
62232 -246 190 14 246 190 14 156 118 10 10 10 10
62233 - 90 90 90 238 238 238 253 253 253 253 253 253
62234 -253 253 253 253 253 253 253 253 253 253 253 253
62235 -253 253 253 253 253 253 231 231 231 250 250 250
62236 -253 253 253 253 253 253 253 253 253 253 253 253
62237 -253 253 253 253 253 253 253 253 253 253 253 253
62238 -253 253 253 253 253 253 253 253 253 253 253 253
62239 -253 253 253 253 253 253 253 253 253 246 230 190
62240 -238 204 91 238 204 91 181 142 44 37 26 9
62241 - 2 2 6 2 2 6 2 2 6 2 2 6
62242 - 2 2 6 2 2 6 38 38 38 46 46 46
62243 - 26 26 26 106 106 106 54 54 54 18 18 18
62244 - 6 6 6 0 0 0 0 0 0 0 0 0
62245 - 0 0 0 0 0 0 0 0 0 0 0 0
62246 - 0 0 0 0 0 0 0 0 0 0 0 0
62247 - 0 0 0 0 0 0 0 0 0 0 0 0
62248 - 0 0 0 0 0 0 0 0 0 0 0 0
62249 - 0 0 0 6 6 6 14 14 14 22 22 22
62250 - 30 30 30 38 38 38 50 50 50 70 70 70
62251 -106 106 106 190 142 34 226 170 11 242 186 14
62252 -246 190 14 246 190 14 246 190 14 154 114 10
62253 - 6 6 6 74 74 74 226 226 226 253 253 253
62254 -253 253 253 253 253 253 253 253 253 253 253 253
62255 -253 253 253 253 253 253 231 231 231 250 250 250
62256 -253 253 253 253 253 253 253 253 253 253 253 253
62257 -253 253 253 253 253 253 253 253 253 253 253 253
62258 -253 253 253 253 253 253 253 253 253 253 253 253
62259 -253 253 253 253 253 253 253 253 253 228 184 62
62260 -241 196 14 241 208 19 232 195 16 38 30 10
62261 - 2 2 6 2 2 6 2 2 6 2 2 6
62262 - 2 2 6 6 6 6 30 30 30 26 26 26
62263 -203 166 17 154 142 90 66 66 66 26 26 26
62264 - 6 6 6 0 0 0 0 0 0 0 0 0
62265 - 0 0 0 0 0 0 0 0 0 0 0 0
62266 - 0 0 0 0 0 0 0 0 0 0 0 0
62267 - 0 0 0 0 0 0 0 0 0 0 0 0
62268 - 0 0 0 0 0 0 0 0 0 0 0 0
62269 - 6 6 6 18 18 18 38 38 38 58 58 58
62270 - 78 78 78 86 86 86 101 101 101 123 123 123
62271 -175 146 61 210 150 10 234 174 13 246 186 14
62272 -246 190 14 246 190 14 246 190 14 238 190 10
62273 -102 78 10 2 2 6 46 46 46 198 198 198
62274 -253 253 253 253 253 253 253 253 253 253 253 253
62275 -253 253 253 253 253 253 234 234 234 242 242 242
62276 -253 253 253 253 253 253 253 253 253 253 253 253
62277 -253 253 253 253 253 253 253 253 253 253 253 253
62278 -253 253 253 253 253 253 253 253 253 253 253 253
62279 -253 253 253 253 253 253 253 253 253 224 178 62
62280 -242 186 14 241 196 14 210 166 10 22 18 6
62281 - 2 2 6 2 2 6 2 2 6 2 2 6
62282 - 2 2 6 2 2 6 6 6 6 121 92 8
62283 -238 202 15 232 195 16 82 82 82 34 34 34
62284 - 10 10 10 0 0 0 0 0 0 0 0 0
62285 - 0 0 0 0 0 0 0 0 0 0 0 0
62286 - 0 0 0 0 0 0 0 0 0 0 0 0
62287 - 0 0 0 0 0 0 0 0 0 0 0 0
62288 - 0 0 0 0 0 0 0 0 0 0 0 0
62289 - 14 14 14 38 38 38 70 70 70 154 122 46
62290 -190 142 34 200 144 11 197 138 11 197 138 11
62291 -213 154 11 226 170 11 242 186 14 246 190 14
62292 -246 190 14 246 190 14 246 190 14 246 190 14
62293 -225 175 15 46 32 6 2 2 6 22 22 22
62294 -158 158 158 250 250 250 253 253 253 253 253 253
62295 -253 253 253 253 253 253 253 253 253 253 253 253
62296 -253 253 253 253 253 253 253 253 253 253 253 253
62297 -253 253 253 253 253 253 253 253 253 253 253 253
62298 -253 253 253 253 253 253 253 253 253 253 253 253
62299 -253 253 253 250 250 250 242 242 242 224 178 62
62300 -239 182 13 236 186 11 213 154 11 46 32 6
62301 - 2 2 6 2 2 6 2 2 6 2 2 6
62302 - 2 2 6 2 2 6 61 42 6 225 175 15
62303 -238 190 10 236 186 11 112 100 78 42 42 42
62304 - 14 14 14 0 0 0 0 0 0 0 0 0
62305 - 0 0 0 0 0 0 0 0 0 0 0 0
62306 - 0 0 0 0 0 0 0 0 0 0 0 0
62307 - 0 0 0 0 0 0 0 0 0 0 0 0
62308 - 0 0 0 0 0 0 0 0 0 6 6 6
62309 - 22 22 22 54 54 54 154 122 46 213 154 11
62310 -226 170 11 230 174 11 226 170 11 226 170 11
62311 -236 178 12 242 186 14 246 190 14 246 190 14
62312 -246 190 14 246 190 14 246 190 14 246 190 14
62313 -241 196 14 184 144 12 10 10 10 2 2 6
62314 - 6 6 6 116 116 116 242 242 242 253 253 253
62315 -253 253 253 253 253 253 253 253 253 253 253 253
62316 -253 253 253 253 253 253 253 253 253 253 253 253
62317 -253 253 253 253 253 253 253 253 253 253 253 253
62318 -253 253 253 253 253 253 253 253 253 253 253 253
62319 -253 253 253 231 231 231 198 198 198 214 170 54
62320 -236 178 12 236 178 12 210 150 10 137 92 6
62321 - 18 14 6 2 2 6 2 2 6 2 2 6
62322 - 6 6 6 70 47 6 200 144 11 236 178 12
62323 -239 182 13 239 182 13 124 112 88 58 58 58
62324 - 22 22 22 6 6 6 0 0 0 0 0 0
62325 - 0 0 0 0 0 0 0 0 0 0 0 0
62326 - 0 0 0 0 0 0 0 0 0 0 0 0
62327 - 0 0 0 0 0 0 0 0 0 0 0 0
62328 - 0 0 0 0 0 0 0 0 0 10 10 10
62329 - 30 30 30 70 70 70 180 133 36 226 170 11
62330 -239 182 13 242 186 14 242 186 14 246 186 14
62331 -246 190 14 246 190 14 246 190 14 246 190 14
62332 -246 190 14 246 190 14 246 190 14 246 190 14
62333 -246 190 14 232 195 16 98 70 6 2 2 6
62334 - 2 2 6 2 2 6 66 66 66 221 221 221
62335 -253 253 253 253 253 253 253 253 253 253 253 253
62336 -253 253 253 253 253 253 253 253 253 253 253 253
62337 -253 253 253 253 253 253 253 253 253 253 253 253
62338 -253 253 253 253 253 253 253 253 253 253 253 253
62339 -253 253 253 206 206 206 198 198 198 214 166 58
62340 -230 174 11 230 174 11 216 158 10 192 133 9
62341 -163 110 8 116 81 8 102 78 10 116 81 8
62342 -167 114 7 197 138 11 226 170 11 239 182 13
62343 -242 186 14 242 186 14 162 146 94 78 78 78
62344 - 34 34 34 14 14 14 6 6 6 0 0 0
62345 - 0 0 0 0 0 0 0 0 0 0 0 0
62346 - 0 0 0 0 0 0 0 0 0 0 0 0
62347 - 0 0 0 0 0 0 0 0 0 0 0 0
62348 - 0 0 0 0 0 0 0 0 0 6 6 6
62349 - 30 30 30 78 78 78 190 142 34 226 170 11
62350 -239 182 13 246 190 14 246 190 14 246 190 14
62351 -246 190 14 246 190 14 246 190 14 246 190 14
62352 -246 190 14 246 190 14 246 190 14 246 190 14
62353 -246 190 14 241 196 14 203 166 17 22 18 6
62354 - 2 2 6 2 2 6 2 2 6 38 38 38
62355 -218 218 218 253 253 253 253 253 253 253 253 253
62356 -253 253 253 253 253 253 253 253 253 253 253 253
62357 -253 253 253 253 253 253 253 253 253 253 253 253
62358 -253 253 253 253 253 253 253 253 253 253 253 253
62359 -250 250 250 206 206 206 198 198 198 202 162 69
62360 -226 170 11 236 178 12 224 166 10 210 150 10
62361 -200 144 11 197 138 11 192 133 9 197 138 11
62362 -210 150 10 226 170 11 242 186 14 246 190 14
62363 -246 190 14 246 186 14 225 175 15 124 112 88
62364 - 62 62 62 30 30 30 14 14 14 6 6 6
62365 - 0 0 0 0 0 0 0 0 0 0 0 0
62366 - 0 0 0 0 0 0 0 0 0 0 0 0
62367 - 0 0 0 0 0 0 0 0 0 0 0 0
62368 - 0 0 0 0 0 0 0 0 0 10 10 10
62369 - 30 30 30 78 78 78 174 135 50 224 166 10
62370 -239 182 13 246 190 14 246 190 14 246 190 14
62371 -246 190 14 246 190 14 246 190 14 246 190 14
62372 -246 190 14 246 190 14 246 190 14 246 190 14
62373 -246 190 14 246 190 14 241 196 14 139 102 15
62374 - 2 2 6 2 2 6 2 2 6 2 2 6
62375 - 78 78 78 250 250 250 253 253 253 253 253 253
62376 -253 253 253 253 253 253 253 253 253 253 253 253
62377 -253 253 253 253 253 253 253 253 253 253 253 253
62378 -253 253 253 253 253 253 253 253 253 253 253 253
62379 -250 250 250 214 214 214 198 198 198 190 150 46
62380 -219 162 10 236 178 12 234 174 13 224 166 10
62381 -216 158 10 213 154 11 213 154 11 216 158 10
62382 -226 170 11 239 182 13 246 190 14 246 190 14
62383 -246 190 14 246 190 14 242 186 14 206 162 42
62384 -101 101 101 58 58 58 30 30 30 14 14 14
62385 - 6 6 6 0 0 0 0 0 0 0 0 0
62386 - 0 0 0 0 0 0 0 0 0 0 0 0
62387 - 0 0 0 0 0 0 0 0 0 0 0 0
62388 - 0 0 0 0 0 0 0 0 0 10 10 10
62389 - 30 30 30 74 74 74 174 135 50 216 158 10
62390 -236 178 12 246 190 14 246 190 14 246 190 14
62391 -246 190 14 246 190 14 246 190 14 246 190 14
62392 -246 190 14 246 190 14 246 190 14 246 190 14
62393 -246 190 14 246 190 14 241 196 14 226 184 13
62394 - 61 42 6 2 2 6 2 2 6 2 2 6
62395 - 22 22 22 238 238 238 253 253 253 253 253 253
62396 -253 253 253 253 253 253 253 253 253 253 253 253
62397 -253 253 253 253 253 253 253 253 253 253 253 253
62398 -253 253 253 253 253 253 253 253 253 253 253 253
62399 -253 253 253 226 226 226 187 187 187 180 133 36
62400 -216 158 10 236 178 12 239 182 13 236 178 12
62401 -230 174 11 226 170 11 226 170 11 230 174 11
62402 -236 178 12 242 186 14 246 190 14 246 190 14
62403 -246 190 14 246 190 14 246 186 14 239 182 13
62404 -206 162 42 106 106 106 66 66 66 34 34 34
62405 - 14 14 14 6 6 6 0 0 0 0 0 0
62406 - 0 0 0 0 0 0 0 0 0 0 0 0
62407 - 0 0 0 0 0 0 0 0 0 0 0 0
62408 - 0 0 0 0 0 0 0 0 0 6 6 6
62409 - 26 26 26 70 70 70 163 133 67 213 154 11
62410 -236 178 12 246 190 14 246 190 14 246 190 14
62411 -246 190 14 246 190 14 246 190 14 246 190 14
62412 -246 190 14 246 190 14 246 190 14 246 190 14
62413 -246 190 14 246 190 14 246 190 14 241 196 14
62414 -190 146 13 18 14 6 2 2 6 2 2 6
62415 - 46 46 46 246 246 246 253 253 253 253 253 253
62416 -253 253 253 253 253 253 253 253 253 253 253 253
62417 -253 253 253 253 253 253 253 253 253 253 253 253
62418 -253 253 253 253 253 253 253 253 253 253 253 253
62419 -253 253 253 221 221 221 86 86 86 156 107 11
62420 -216 158 10 236 178 12 242 186 14 246 186 14
62421 -242 186 14 239 182 13 239 182 13 242 186 14
62422 -242 186 14 246 186 14 246 190 14 246 190 14
62423 -246 190 14 246 190 14 246 190 14 246 190 14
62424 -242 186 14 225 175 15 142 122 72 66 66 66
62425 - 30 30 30 10 10 10 0 0 0 0 0 0
62426 - 0 0 0 0 0 0 0 0 0 0 0 0
62427 - 0 0 0 0 0 0 0 0 0 0 0 0
62428 - 0 0 0 0 0 0 0 0 0 6 6 6
62429 - 26 26 26 70 70 70 163 133 67 210 150 10
62430 -236 178 12 246 190 14 246 190 14 246 190 14
62431 -246 190 14 246 190 14 246 190 14 246 190 14
62432 -246 190 14 246 190 14 246 190 14 246 190 14
62433 -246 190 14 246 190 14 246 190 14 246 190 14
62434 -232 195 16 121 92 8 34 34 34 106 106 106
62435 -221 221 221 253 253 253 253 253 253 253 253 253
62436 -253 253 253 253 253 253 253 253 253 253 253 253
62437 -253 253 253 253 253 253 253 253 253 253 253 253
62438 -253 253 253 253 253 253 253 253 253 253 253 253
62439 -242 242 242 82 82 82 18 14 6 163 110 8
62440 -216 158 10 236 178 12 242 186 14 246 190 14
62441 -246 190 14 246 190 14 246 190 14 246 190 14
62442 -246 190 14 246 190 14 246 190 14 246 190 14
62443 -246 190 14 246 190 14 246 190 14 246 190 14
62444 -246 190 14 246 190 14 242 186 14 163 133 67
62445 - 46 46 46 18 18 18 6 6 6 0 0 0
62446 - 0 0 0 0 0 0 0 0 0 0 0 0
62447 - 0 0 0 0 0 0 0 0 0 0 0 0
62448 - 0 0 0 0 0 0 0 0 0 10 10 10
62449 - 30 30 30 78 78 78 163 133 67 210 150 10
62450 -236 178 12 246 186 14 246 190 14 246 190 14
62451 -246 190 14 246 190 14 246 190 14 246 190 14
62452 -246 190 14 246 190 14 246 190 14 246 190 14
62453 -246 190 14 246 190 14 246 190 14 246 190 14
62454 -241 196 14 215 174 15 190 178 144 253 253 253
62455 -253 253 253 253 253 253 253 253 253 253 253 253
62456 -253 253 253 253 253 253 253 253 253 253 253 253
62457 -253 253 253 253 253 253 253 253 253 253 253 253
62458 -253 253 253 253 253 253 253 253 253 218 218 218
62459 - 58 58 58 2 2 6 22 18 6 167 114 7
62460 -216 158 10 236 178 12 246 186 14 246 190 14
62461 -246 190 14 246 190 14 246 190 14 246 190 14
62462 -246 190 14 246 190 14 246 190 14 246 190 14
62463 -246 190 14 246 190 14 246 190 14 246 190 14
62464 -246 190 14 246 186 14 242 186 14 190 150 46
62465 - 54 54 54 22 22 22 6 6 6 0 0 0
62466 - 0 0 0 0 0 0 0 0 0 0 0 0
62467 - 0 0 0 0 0 0 0 0 0 0 0 0
62468 - 0 0 0 0 0 0 0 0 0 14 14 14
62469 - 38 38 38 86 86 86 180 133 36 213 154 11
62470 -236 178 12 246 186 14 246 190 14 246 190 14
62471 -246 190 14 246 190 14 246 190 14 246 190 14
62472 -246 190 14 246 190 14 246 190 14 246 190 14
62473 -246 190 14 246 190 14 246 190 14 246 190 14
62474 -246 190 14 232 195 16 190 146 13 214 214 214
62475 -253 253 253 253 253 253 253 253 253 253 253 253
62476 -253 253 253 253 253 253 253 253 253 253 253 253
62477 -253 253 253 253 253 253 253 253 253 253 253 253
62478 -253 253 253 250 250 250 170 170 170 26 26 26
62479 - 2 2 6 2 2 6 37 26 9 163 110 8
62480 -219 162 10 239 182 13 246 186 14 246 190 14
62481 -246 190 14 246 190 14 246 190 14 246 190 14
62482 -246 190 14 246 190 14 246 190 14 246 190 14
62483 -246 190 14 246 190 14 246 190 14 246 190 14
62484 -246 186 14 236 178 12 224 166 10 142 122 72
62485 - 46 46 46 18 18 18 6 6 6 0 0 0
62486 - 0 0 0 0 0 0 0 0 0 0 0 0
62487 - 0 0 0 0 0 0 0 0 0 0 0 0
62488 - 0 0 0 0 0 0 6 6 6 18 18 18
62489 - 50 50 50 109 106 95 192 133 9 224 166 10
62490 -242 186 14 246 190 14 246 190 14 246 190 14
62491 -246 190 14 246 190 14 246 190 14 246 190 14
62492 -246 190 14 246 190 14 246 190 14 246 190 14
62493 -246 190 14 246 190 14 246 190 14 246 190 14
62494 -242 186 14 226 184 13 210 162 10 142 110 46
62495 -226 226 226 253 253 253 253 253 253 253 253 253
62496 -253 253 253 253 253 253 253 253 253 253 253 253
62497 -253 253 253 253 253 253 253 253 253 253 253 253
62498 -198 198 198 66 66 66 2 2 6 2 2 6
62499 - 2 2 6 2 2 6 50 34 6 156 107 11
62500 -219 162 10 239 182 13 246 186 14 246 190 14
62501 -246 190 14 246 190 14 246 190 14 246 190 14
62502 -246 190 14 246 190 14 246 190 14 246 190 14
62503 -246 190 14 246 190 14 246 190 14 242 186 14
62504 -234 174 13 213 154 11 154 122 46 66 66 66
62505 - 30 30 30 10 10 10 0 0 0 0 0 0
62506 - 0 0 0 0 0 0 0 0 0 0 0 0
62507 - 0 0 0 0 0 0 0 0 0 0 0 0
62508 - 0 0 0 0 0 0 6 6 6 22 22 22
62509 - 58 58 58 154 121 60 206 145 10 234 174 13
62510 -242 186 14 246 186 14 246 190 14 246 190 14
62511 -246 190 14 246 190 14 246 190 14 246 190 14
62512 -246 190 14 246 190 14 246 190 14 246 190 14
62513 -246 190 14 246 190 14 246 190 14 246 190 14
62514 -246 186 14 236 178 12 210 162 10 163 110 8
62515 - 61 42 6 138 138 138 218 218 218 250 250 250
62516 -253 253 253 253 253 253 253 253 253 250 250 250
62517 -242 242 242 210 210 210 144 144 144 66 66 66
62518 - 6 6 6 2 2 6 2 2 6 2 2 6
62519 - 2 2 6 2 2 6 61 42 6 163 110 8
62520 -216 158 10 236 178 12 246 190 14 246 190 14
62521 -246 190 14 246 190 14 246 190 14 246 190 14
62522 -246 190 14 246 190 14 246 190 14 246 190 14
62523 -246 190 14 239 182 13 230 174 11 216 158 10
62524 -190 142 34 124 112 88 70 70 70 38 38 38
62525 - 18 18 18 6 6 6 0 0 0 0 0 0
62526 - 0 0 0 0 0 0 0 0 0 0 0 0
62527 - 0 0 0 0 0 0 0 0 0 0 0 0
62528 - 0 0 0 0 0 0 6 6 6 22 22 22
62529 - 62 62 62 168 124 44 206 145 10 224 166 10
62530 -236 178 12 239 182 13 242 186 14 242 186 14
62531 -246 186 14 246 190 14 246 190 14 246 190 14
62532 -246 190 14 246 190 14 246 190 14 246 190 14
62533 -246 190 14 246 190 14 246 190 14 246 190 14
62534 -246 190 14 236 178 12 216 158 10 175 118 6
62535 - 80 54 7 2 2 6 6 6 6 30 30 30
62536 - 54 54 54 62 62 62 50 50 50 38 38 38
62537 - 14 14 14 2 2 6 2 2 6 2 2 6
62538 - 2 2 6 2 2 6 2 2 6 2 2 6
62539 - 2 2 6 6 6 6 80 54 7 167 114 7
62540 -213 154 11 236 178 12 246 190 14 246 190 14
62541 -246 190 14 246 190 14 246 190 14 246 190 14
62542 -246 190 14 242 186 14 239 182 13 239 182 13
62543 -230 174 11 210 150 10 174 135 50 124 112 88
62544 - 82 82 82 54 54 54 34 34 34 18 18 18
62545 - 6 6 6 0 0 0 0 0 0 0 0 0
62546 - 0 0 0 0 0 0 0 0 0 0 0 0
62547 - 0 0 0 0 0 0 0 0 0 0 0 0
62548 - 0 0 0 0 0 0 6 6 6 18 18 18
62549 - 50 50 50 158 118 36 192 133 9 200 144 11
62550 -216 158 10 219 162 10 224 166 10 226 170 11
62551 -230 174 11 236 178 12 239 182 13 239 182 13
62552 -242 186 14 246 186 14 246 190 14 246 190 14
62553 -246 190 14 246 190 14 246 190 14 246 190 14
62554 -246 186 14 230 174 11 210 150 10 163 110 8
62555 -104 69 6 10 10 10 2 2 6 2 2 6
62556 - 2 2 6 2 2 6 2 2 6 2 2 6
62557 - 2 2 6 2 2 6 2 2 6 2 2 6
62558 - 2 2 6 2 2 6 2 2 6 2 2 6
62559 - 2 2 6 6 6 6 91 60 6 167 114 7
62560 -206 145 10 230 174 11 242 186 14 246 190 14
62561 -246 190 14 246 190 14 246 186 14 242 186 14
62562 -239 182 13 230 174 11 224 166 10 213 154 11
62563 -180 133 36 124 112 88 86 86 86 58 58 58
62564 - 38 38 38 22 22 22 10 10 10 6 6 6
62565 - 0 0 0 0 0 0 0 0 0 0 0 0
62566 - 0 0 0 0 0 0 0 0 0 0 0 0
62567 - 0 0 0 0 0 0 0 0 0 0 0 0
62568 - 0 0 0 0 0 0 0 0 0 14 14 14
62569 - 34 34 34 70 70 70 138 110 50 158 118 36
62570 -167 114 7 180 123 7 192 133 9 197 138 11
62571 -200 144 11 206 145 10 213 154 11 219 162 10
62572 -224 166 10 230 174 11 239 182 13 242 186 14
62573 -246 186 14 246 186 14 246 186 14 246 186 14
62574 -239 182 13 216 158 10 185 133 11 152 99 6
62575 -104 69 6 18 14 6 2 2 6 2 2 6
62576 - 2 2 6 2 2 6 2 2 6 2 2 6
62577 - 2 2 6 2 2 6 2 2 6 2 2 6
62578 - 2 2 6 2 2 6 2 2 6 2 2 6
62579 - 2 2 6 6 6 6 80 54 7 152 99 6
62580 -192 133 9 219 162 10 236 178 12 239 182 13
62581 -246 186 14 242 186 14 239 182 13 236 178 12
62582 -224 166 10 206 145 10 192 133 9 154 121 60
62583 - 94 94 94 62 62 62 42 42 42 22 22 22
62584 - 14 14 14 6 6 6 0 0 0 0 0 0
62585 - 0 0 0 0 0 0 0 0 0 0 0 0
62586 - 0 0 0 0 0 0 0 0 0 0 0 0
62587 - 0 0 0 0 0 0 0 0 0 0 0 0
62588 - 0 0 0 0 0 0 0 0 0 6 6 6
62589 - 18 18 18 34 34 34 58 58 58 78 78 78
62590 -101 98 89 124 112 88 142 110 46 156 107 11
62591 -163 110 8 167 114 7 175 118 6 180 123 7
62592 -185 133 11 197 138 11 210 150 10 219 162 10
62593 -226 170 11 236 178 12 236 178 12 234 174 13
62594 -219 162 10 197 138 11 163 110 8 130 83 6
62595 - 91 60 6 10 10 10 2 2 6 2 2 6
62596 - 18 18 18 38 38 38 38 38 38 38 38 38
62597 - 38 38 38 38 38 38 38 38 38 38 38 38
62598 - 38 38 38 38 38 38 26 26 26 2 2 6
62599 - 2 2 6 6 6 6 70 47 6 137 92 6
62600 -175 118 6 200 144 11 219 162 10 230 174 11
62601 -234 174 13 230 174 11 219 162 10 210 150 10
62602 -192 133 9 163 110 8 124 112 88 82 82 82
62603 - 50 50 50 30 30 30 14 14 14 6 6 6
62604 - 0 0 0 0 0 0 0 0 0 0 0 0
62605 - 0 0 0 0 0 0 0 0 0 0 0 0
62606 - 0 0 0 0 0 0 0 0 0 0 0 0
62607 - 0 0 0 0 0 0 0 0 0 0 0 0
62608 - 0 0 0 0 0 0 0 0 0 0 0 0
62609 - 6 6 6 14 14 14 22 22 22 34 34 34
62610 - 42 42 42 58 58 58 74 74 74 86 86 86
62611 -101 98 89 122 102 70 130 98 46 121 87 25
62612 -137 92 6 152 99 6 163 110 8 180 123 7
62613 -185 133 11 197 138 11 206 145 10 200 144 11
62614 -180 123 7 156 107 11 130 83 6 104 69 6
62615 - 50 34 6 54 54 54 110 110 110 101 98 89
62616 - 86 86 86 82 82 82 78 78 78 78 78 78
62617 - 78 78 78 78 78 78 78 78 78 78 78 78
62618 - 78 78 78 82 82 82 86 86 86 94 94 94
62619 -106 106 106 101 101 101 86 66 34 124 80 6
62620 -156 107 11 180 123 7 192 133 9 200 144 11
62621 -206 145 10 200 144 11 192 133 9 175 118 6
62622 -139 102 15 109 106 95 70 70 70 42 42 42
62623 - 22 22 22 10 10 10 0 0 0 0 0 0
62624 - 0 0 0 0 0 0 0 0 0 0 0 0
62625 - 0 0 0 0 0 0 0 0 0 0 0 0
62626 - 0 0 0 0 0 0 0 0 0 0 0 0
62627 - 0 0 0 0 0 0 0 0 0 0 0 0
62628 - 0 0 0 0 0 0 0 0 0 0 0 0
62629 - 0 0 0 0 0 0 6 6 6 10 10 10
62630 - 14 14 14 22 22 22 30 30 30 38 38 38
62631 - 50 50 50 62 62 62 74 74 74 90 90 90
62632 -101 98 89 112 100 78 121 87 25 124 80 6
62633 -137 92 6 152 99 6 152 99 6 152 99 6
62634 -138 86 6 124 80 6 98 70 6 86 66 30
62635 -101 98 89 82 82 82 58 58 58 46 46 46
62636 - 38 38 38 34 34 34 34 34 34 34 34 34
62637 - 34 34 34 34 34 34 34 34 34 34 34 34
62638 - 34 34 34 34 34 34 38 38 38 42 42 42
62639 - 54 54 54 82 82 82 94 86 76 91 60 6
62640 -134 86 6 156 107 11 167 114 7 175 118 6
62641 -175 118 6 167 114 7 152 99 6 121 87 25
62642 -101 98 89 62 62 62 34 34 34 18 18 18
62643 - 6 6 6 0 0 0 0 0 0 0 0 0
62644 - 0 0 0 0 0 0 0 0 0 0 0 0
62645 - 0 0 0 0 0 0 0 0 0 0 0 0
62646 - 0 0 0 0 0 0 0 0 0 0 0 0
62647 - 0 0 0 0 0 0 0 0 0 0 0 0
62648 - 0 0 0 0 0 0 0 0 0 0 0 0
62649 - 0 0 0 0 0 0 0 0 0 0 0 0
62650 - 0 0 0 6 6 6 6 6 6 10 10 10
62651 - 18 18 18 22 22 22 30 30 30 42 42 42
62652 - 50 50 50 66 66 66 86 86 86 101 98 89
62653 -106 86 58 98 70 6 104 69 6 104 69 6
62654 -104 69 6 91 60 6 82 62 34 90 90 90
62655 - 62 62 62 38 38 38 22 22 22 14 14 14
62656 - 10 10 10 10 10 10 10 10 10 10 10 10
62657 - 10 10 10 10 10 10 6 6 6 10 10 10
62658 - 10 10 10 10 10 10 10 10 10 14 14 14
62659 - 22 22 22 42 42 42 70 70 70 89 81 66
62660 - 80 54 7 104 69 6 124 80 6 137 92 6
62661 -134 86 6 116 81 8 100 82 52 86 86 86
62662 - 58 58 58 30 30 30 14 14 14 6 6 6
62663 - 0 0 0 0 0 0 0 0 0 0 0 0
62664 - 0 0 0 0 0 0 0 0 0 0 0 0
62665 - 0 0 0 0 0 0 0 0 0 0 0 0
62666 - 0 0 0 0 0 0 0 0 0 0 0 0
62667 - 0 0 0 0 0 0 0 0 0 0 0 0
62668 - 0 0 0 0 0 0 0 0 0 0 0 0
62669 - 0 0 0 0 0 0 0 0 0 0 0 0
62670 - 0 0 0 0 0 0 0 0 0 0 0 0
62671 - 0 0 0 6 6 6 10 10 10 14 14 14
62672 - 18 18 18 26 26 26 38 38 38 54 54 54
62673 - 70 70 70 86 86 86 94 86 76 89 81 66
62674 - 89 81 66 86 86 86 74 74 74 50 50 50
62675 - 30 30 30 14 14 14 6 6 6 0 0 0
62676 - 0 0 0 0 0 0 0 0 0 0 0 0
62677 - 0 0 0 0 0 0 0 0 0 0 0 0
62678 - 0 0 0 0 0 0 0 0 0 0 0 0
62679 - 6 6 6 18 18 18 34 34 34 58 58 58
62680 - 82 82 82 89 81 66 89 81 66 89 81 66
62681 - 94 86 66 94 86 76 74 74 74 50 50 50
62682 - 26 26 26 14 14 14 6 6 6 0 0 0
62683 - 0 0 0 0 0 0 0 0 0 0 0 0
62684 - 0 0 0 0 0 0 0 0 0 0 0 0
62685 - 0 0 0 0 0 0 0 0 0 0 0 0
62686 - 0 0 0 0 0 0 0 0 0 0 0 0
62687 - 0 0 0 0 0 0 0 0 0 0 0 0
62688 - 0 0 0 0 0 0 0 0 0 0 0 0
62689 - 0 0 0 0 0 0 0 0 0 0 0 0
62690 - 0 0 0 0 0 0 0 0 0 0 0 0
62691 - 0 0 0 0 0 0 0 0 0 0 0 0
62692 - 6 6 6 6 6 6 14 14 14 18 18 18
62693 - 30 30 30 38 38 38 46 46 46 54 54 54
62694 - 50 50 50 42 42 42 30 30 30 18 18 18
62695 - 10 10 10 0 0 0 0 0 0 0 0 0
62696 - 0 0 0 0 0 0 0 0 0 0 0 0
62697 - 0 0 0 0 0 0 0 0 0 0 0 0
62698 - 0 0 0 0 0 0 0 0 0 0 0 0
62699 - 0 0 0 6 6 6 14 14 14 26 26 26
62700 - 38 38 38 50 50 50 58 58 58 58 58 58
62701 - 54 54 54 42 42 42 30 30 30 18 18 18
62702 - 10 10 10 0 0 0 0 0 0 0 0 0
62703 - 0 0 0 0 0 0 0 0 0 0 0 0
62704 - 0 0 0 0 0 0 0 0 0 0 0 0
62705 - 0 0 0 0 0 0 0 0 0 0 0 0
62706 - 0 0 0 0 0 0 0 0 0 0 0 0
62707 - 0 0 0 0 0 0 0 0 0 0 0 0
62708 - 0 0 0 0 0 0 0 0 0 0 0 0
62709 - 0 0 0 0 0 0 0 0 0 0 0 0
62710 - 0 0 0 0 0 0 0 0 0 0 0 0
62711 - 0 0 0 0 0 0 0 0 0 0 0 0
62712 - 0 0 0 0 0 0 0 0 0 6 6 6
62713 - 6 6 6 10 10 10 14 14 14 18 18 18
62714 - 18 18 18 14 14 14 10 10 10 6 6 6
62715 - 0 0 0 0 0 0 0 0 0 0 0 0
62716 - 0 0 0 0 0 0 0 0 0 0 0 0
62717 - 0 0 0 0 0 0 0 0 0 0 0 0
62718 - 0 0 0 0 0 0 0 0 0 0 0 0
62719 - 0 0 0 0 0 0 0 0 0 6 6 6
62720 - 14 14 14 18 18 18 22 22 22 22 22 22
62721 - 18 18 18 14 14 14 10 10 10 6 6 6
62722 - 0 0 0 0 0 0 0 0 0 0 0 0
62723 - 0 0 0 0 0 0 0 0 0 0 0 0
62724 - 0 0 0 0 0 0 0 0 0 0 0 0
62725 - 0 0 0 0 0 0 0 0 0 0 0 0
62726 - 0 0 0 0 0 0 0 0 0 0 0 0
62727 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62728 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62729 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62730 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62731 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62732 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62733 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62734 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62735 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62736 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62737 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62738 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62739 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62740 +4 4 4 4 4 4
62741 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62742 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62743 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62744 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62745 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62746 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62747 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62748 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62749 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62750 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62751 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62752 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62753 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62754 +4 4 4 4 4 4
62755 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62756 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62757 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62758 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62759 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62760 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62761 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62762 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62763 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62764 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62765 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62766 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62767 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62768 +4 4 4 4 4 4
62769 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62770 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62771 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62772 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62773 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62774 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62775 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62776 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62777 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62778 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62779 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62780 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62781 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62782 +4 4 4 4 4 4
62783 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62784 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62785 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62786 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62787 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62788 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62789 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62790 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62791 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62792 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62793 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62794 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62795 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62796 +4 4 4 4 4 4
62797 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62798 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62799 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62800 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62801 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62802 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62803 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62804 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62805 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62806 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62807 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62808 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62809 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62810 +4 4 4 4 4 4
62811 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62812 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62813 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62814 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62815 +4 4 4 4 4 4 4 4 4 3 3 3 0 0 0 0 0 0
62816 +0 0 0 0 0 0 0 0 0 0 0 0 3 3 3 4 4 4
62817 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62818 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62819 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62820 +4 4 4 4 4 4 4 4 4 4 4 4 1 1 1 0 0 0
62821 +0 0 0 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4
62822 +4 4 4 4 4 4 4 4 4 2 1 0 2 1 0 3 2 2
62823 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62824 +4 4 4 4 4 4
62825 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62826 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62827 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62828 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62829 +4 4 4 4 4 4 2 2 2 0 0 0 3 4 3 26 28 28
62830 +37 38 37 37 38 37 14 17 19 2 2 2 0 0 0 2 2 2
62831 +5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62832 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62833 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62834 +4 4 4 4 4 4 3 3 3 0 0 0 1 1 1 6 6 6
62835 +2 2 2 0 0 0 3 3 3 4 4 4 4 4 4 4 4 4
62836 +4 4 5 3 3 3 1 0 0 0 0 0 1 0 0 0 0 0
62837 +1 1 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62838 +4 4 4 4 4 4
62839 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62840 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62841 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62842 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62843 +2 2 2 0 0 0 0 0 0 14 17 19 60 74 84 137 136 137
62844 +153 152 153 137 136 137 125 124 125 60 73 81 6 6 6 3 1 0
62845 +0 0 0 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4
62846 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62847 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62848 +4 4 4 4 4 4 0 0 0 4 4 4 41 54 63 125 124 125
62849 +60 73 81 6 6 6 4 0 0 3 3 3 4 4 4 4 4 4
62850 +4 4 4 0 0 0 6 9 11 41 54 63 41 65 82 22 30 35
62851 +2 2 2 2 1 0 4 4 4 4 4 4 4 4 4 4 4 4
62852 +4 4 4 4 4 4
62853 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62854 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62855 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62856 +4 4 4 4 4 4 5 5 5 5 5 5 2 2 2 0 0 0
62857 +4 0 0 6 6 6 41 54 63 137 136 137 174 174 174 167 166 167
62858 +165 164 165 165 164 165 163 162 163 163 162 163 125 124 125 41 54 63
62859 +1 1 1 0 0 0 0 0 0 3 3 3 5 5 5 4 4 4
62860 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62861 +4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5
62862 +3 3 3 2 0 0 4 0 0 60 73 81 156 155 156 167 166 167
62863 +163 162 163 85 115 134 5 7 8 0 0 0 4 4 4 5 5 5
62864 +0 0 0 2 5 5 55 98 126 90 154 193 90 154 193 72 125 159
62865 +37 51 59 2 0 0 1 1 1 4 5 5 4 4 4 4 4 4
62866 +4 4 4 4 4 4
62867 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62868 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62869 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62870 +4 4 4 5 5 5 4 4 4 1 1 1 0 0 0 3 3 3
62871 +37 38 37 125 124 125 163 162 163 174 174 174 158 157 158 158 157 158
62872 +156 155 156 156 155 156 158 157 158 165 164 165 174 174 174 166 165 166
62873 +125 124 125 16 19 21 1 0 0 0 0 0 0 0 0 4 4 4
62874 +5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
62875 +4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 1 1 1
62876 +0 0 0 0 0 0 37 38 37 153 152 153 174 174 174 158 157 158
62877 +174 174 174 163 162 163 37 38 37 4 3 3 4 0 0 1 1 1
62878 +0 0 0 22 40 52 101 161 196 101 161 196 90 154 193 101 161 196
62879 +64 123 161 14 17 19 0 0 0 4 4 4 4 4 4 4 4 4
62880 +4 4 4 4 4 4
62881 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62882 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62883 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
62884 +5 5 5 2 2 2 0 0 0 4 0 0 24 26 27 85 115 134
62885 +156 155 156 174 174 174 167 166 167 156 155 156 154 153 154 157 156 157
62886 +156 155 156 156 155 156 155 154 155 153 152 153 158 157 158 167 166 167
62887 +174 174 174 156 155 156 60 74 84 16 19 21 0 0 0 0 0 0
62888 +1 1 1 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4
62889 +4 4 4 5 5 5 6 6 6 3 3 3 0 0 0 4 0 0
62890 +13 16 17 60 73 81 137 136 137 165 164 165 156 155 156 153 152 153
62891 +174 174 174 177 184 187 60 73 81 3 1 0 0 0 0 1 1 2
62892 +22 30 35 64 123 161 136 185 209 90 154 193 90 154 193 90 154 193
62893 +90 154 193 21 29 34 0 0 0 3 2 2 4 4 5 4 4 4
62894 +4 4 4 4 4 4
62895 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62896 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62897 +4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 3 3 3
62898 +0 0 0 0 0 0 10 13 16 60 74 84 157 156 157 174 174 174
62899 +174 174 174 158 157 158 153 152 153 154 153 154 156 155 156 155 154 155
62900 +156 155 156 155 154 155 154 153 154 157 156 157 154 153 154 153 152 153
62901 +163 162 163 174 174 174 177 184 187 137 136 137 60 73 81 13 16 17
62902 +4 0 0 0 0 0 3 3 3 5 5 5 4 4 4 4 4 4
62903 +5 5 5 4 4 4 1 1 1 0 0 0 3 3 3 41 54 63
62904 +131 129 131 174 174 174 174 174 174 174 174 174 167 166 167 174 174 174
62905 +190 197 201 137 136 137 24 26 27 4 0 0 16 21 25 50 82 103
62906 +90 154 193 136 185 209 90 154 193 101 161 196 101 161 196 101 161 196
62907 +31 91 132 3 6 7 0 0 0 4 4 4 4 4 4 4 4 4
62908 +4 4 4 4 4 4
62909 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62910 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62911 +4 4 4 4 4 4 4 4 4 2 2 2 0 0 0 4 0 0
62912 +4 0 0 43 57 68 137 136 137 177 184 187 174 174 174 163 162 163
62913 +155 154 155 155 154 155 156 155 156 155 154 155 158 157 158 165 164 165
62914 +167 166 167 166 165 166 163 162 163 157 156 157 155 154 155 155 154 155
62915 +153 152 153 156 155 156 167 166 167 174 174 174 174 174 174 131 129 131
62916 +41 54 63 5 5 5 0 0 0 0 0 0 3 3 3 4 4 4
62917 +1 1 1 0 0 0 1 0 0 26 28 28 125 124 125 174 174 174
62918 +177 184 187 174 174 174 174 174 174 156 155 156 131 129 131 137 136 137
62919 +125 124 125 24 26 27 4 0 0 41 65 82 90 154 193 136 185 209
62920 +136 185 209 101 161 196 53 118 160 37 112 160 90 154 193 34 86 122
62921 +7 12 15 0 0 0 4 4 4 4 4 4 4 4 4 4 4 4
62922 +4 4 4 4 4 4
62923 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62924 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62925 +4 4 4 3 3 3 0 0 0 0 0 0 5 5 5 37 38 37
62926 +125 124 125 167 166 167 174 174 174 167 166 167 158 157 158 155 154 155
62927 +156 155 156 156 155 156 156 155 156 163 162 163 167 166 167 155 154 155
62928 +137 136 137 153 152 153 156 155 156 165 164 165 163 162 163 156 155 156
62929 +156 155 156 156 155 156 155 154 155 158 157 158 166 165 166 174 174 174
62930 +167 166 167 125 124 125 37 38 37 1 0 0 0 0 0 0 0 0
62931 +0 0 0 24 26 27 60 74 84 158 157 158 174 174 174 174 174 174
62932 +166 165 166 158 157 158 125 124 125 41 54 63 13 16 17 6 6 6
62933 +6 6 6 37 38 37 80 127 157 136 185 209 101 161 196 101 161 196
62934 +90 154 193 28 67 93 6 10 14 13 20 25 13 20 25 6 10 14
62935 +1 1 2 4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
62936 +4 4 4 4 4 4
62937 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62938 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62939 +1 1 1 1 0 0 4 3 3 37 38 37 60 74 84 153 152 153
62940 +167 166 167 167 166 167 158 157 158 154 153 154 155 154 155 156 155 156
62941 +157 156 157 158 157 158 167 166 167 167 166 167 131 129 131 43 57 68
62942 +26 28 28 37 38 37 60 73 81 131 129 131 165 164 165 166 165 166
62943 +158 157 158 155 154 155 156 155 156 156 155 156 156 155 156 158 157 158
62944 +165 164 165 174 174 174 163 162 163 60 74 84 16 19 21 13 16 17
62945 +60 73 81 131 129 131 174 174 174 174 174 174 167 166 167 165 164 165
62946 +137 136 137 60 73 81 24 26 27 4 0 0 4 0 0 16 19 21
62947 +52 104 138 101 161 196 136 185 209 136 185 209 90 154 193 27 99 146
62948 +13 20 25 4 5 7 2 5 5 4 5 7 1 1 2 0 0 0
62949 +4 4 4 4 4 4 3 3 3 2 2 2 2 2 2 4 4 4
62950 +4 4 4 4 4 4
62951 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62952 +4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 0 0 0
62953 +0 0 0 13 16 17 60 73 81 137 136 137 174 174 174 166 165 166
62954 +158 157 158 156 155 156 157 156 157 156 155 156 155 154 155 158 157 158
62955 +167 166 167 174 174 174 153 152 153 60 73 81 16 19 21 4 0 0
62956 +4 0 0 4 0 0 6 6 6 26 28 28 60 74 84 158 157 158
62957 +174 174 174 166 165 166 157 156 157 155 154 155 156 155 156 156 155 156
62958 +155 154 155 158 157 158 167 166 167 167 166 167 131 129 131 125 124 125
62959 +137 136 137 167 166 167 167 166 167 174 174 174 158 157 158 125 124 125
62960 +16 19 21 4 0 0 4 0 0 10 13 16 49 76 92 107 159 188
62961 +136 185 209 136 185 209 90 154 193 26 108 161 22 40 52 6 10 14
62962 +2 3 3 1 1 2 1 1 2 4 4 5 4 4 5 4 4 5
62963 +4 4 5 2 2 1 0 0 0 0 0 0 0 0 0 2 2 2
62964 +4 4 4 4 4 4
62965 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
62966 +4 4 4 5 5 5 3 3 3 0 0 0 1 0 0 4 0 0
62967 +37 51 59 131 129 131 167 166 167 167 166 167 163 162 163 157 156 157
62968 +157 156 157 155 154 155 153 152 153 157 156 157 167 166 167 174 174 174
62969 +153 152 153 125 124 125 37 38 37 4 0 0 4 0 0 4 0 0
62970 +4 3 3 4 3 3 4 0 0 6 6 6 4 0 0 37 38 37
62971 +125 124 125 174 174 174 174 174 174 165 164 165 156 155 156 154 153 154
62972 +156 155 156 156 155 156 155 154 155 163 162 163 158 157 158 163 162 163
62973 +174 174 174 174 174 174 174 174 174 125 124 125 37 38 37 0 0 0
62974 +4 0 0 6 9 11 41 54 63 90 154 193 136 185 209 146 190 211
62975 +136 185 209 37 112 160 22 40 52 6 10 14 3 6 7 1 1 2
62976 +1 1 2 3 3 3 1 1 2 3 3 3 4 4 4 4 4 4
62977 +2 2 2 2 0 0 16 19 21 37 38 37 24 26 27 0 0 0
62978 +0 0 0 4 4 4
62979 +4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5
62980 +4 4 4 0 0 0 0 0 0 0 0 0 26 28 28 120 125 127
62981 +158 157 158 174 174 174 165 164 165 157 156 157 155 154 155 156 155 156
62982 +153 152 153 153 152 153 167 166 167 174 174 174 174 174 174 125 124 125
62983 +37 38 37 4 0 0 0 0 0 4 0 0 4 3 3 4 4 4
62984 +4 4 4 4 4 4 5 5 5 4 0 0 4 0 0 4 0 0
62985 +4 3 3 43 57 68 137 136 137 174 174 174 174 174 174 165 164 165
62986 +154 153 154 153 152 153 153 152 153 153 152 153 163 162 163 174 174 174
62987 +174 174 174 153 152 153 60 73 81 6 6 6 4 0 0 4 3 3
62988 +32 43 50 80 127 157 136 185 209 146 190 211 146 190 211 90 154 193
62989 +28 67 93 28 67 93 40 71 93 3 6 7 1 1 2 2 5 5
62990 +50 82 103 79 117 143 26 37 45 0 0 0 3 3 3 1 1 1
62991 +0 0 0 41 54 63 137 136 137 174 174 174 153 152 153 60 73 81
62992 +2 0 0 0 0 0
62993 +4 4 4 4 4 4 4 4 4 4 4 4 6 6 6 2 2 2
62994 +0 0 0 2 0 0 24 26 27 60 74 84 153 152 153 174 174 174
62995 +174 174 174 157 156 157 154 153 154 156 155 156 154 153 154 153 152 153
62996 +165 164 165 174 174 174 177 184 187 137 136 137 43 57 68 6 6 6
62997 +4 0 0 2 0 0 3 3 3 5 5 5 5 5 5 4 4 4
62998 +4 4 4 4 4 4 4 4 4 5 5 5 6 6 6 4 3 3
62999 +4 0 0 4 0 0 24 26 27 60 73 81 153 152 153 174 174 174
63000 +174 174 174 158 157 158 158 157 158 174 174 174 174 174 174 158 157 158
63001 +60 74 84 24 26 27 4 0 0 4 0 0 17 23 27 59 113 148
63002 +136 185 209 191 222 234 146 190 211 136 185 209 31 91 132 7 11 13
63003 +22 40 52 101 161 196 90 154 193 6 9 11 3 4 4 43 95 132
63004 +136 185 209 172 205 220 55 98 126 0 0 0 0 0 0 2 0 0
63005 +26 28 28 153 152 153 177 184 187 167 166 167 177 184 187 165 164 165
63006 +37 38 37 0 0 0
63007 +4 4 4 4 4 4 5 5 5 5 5 5 1 1 1 0 0 0
63008 +13 16 17 60 73 81 137 136 137 174 174 174 174 174 174 165 164 165
63009 +153 152 153 153 152 153 155 154 155 154 153 154 158 157 158 174 174 174
63010 +177 184 187 163 162 163 60 73 81 16 19 21 4 0 0 4 0 0
63011 +4 3 3 4 4 4 5 5 5 5 5 5 4 4 4 5 5 5
63012 +5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 5 5 5
63013 +6 6 6 4 0 0 4 0 0 4 0 0 24 26 27 60 74 84
63014 +166 165 166 174 174 174 177 184 187 165 164 165 125 124 125 24 26 27
63015 +4 0 0 4 0 0 5 5 5 50 82 103 136 185 209 172 205 220
63016 +146 190 211 136 185 209 26 108 161 22 40 52 7 12 15 44 81 103
63017 +71 116 144 28 67 93 37 51 59 41 65 82 100 139 164 101 161 196
63018 +90 154 193 90 154 193 28 67 93 0 0 0 0 0 0 26 28 28
63019 +125 124 125 167 166 167 163 162 163 153 152 153 163 162 163 174 174 174
63020 +85 115 134 4 0 0
63021 +4 4 4 5 5 5 4 4 4 1 0 0 4 0 0 34 47 55
63022 +125 124 125 174 174 174 174 174 174 167 166 167 157 156 157 153 152 153
63023 +155 154 155 155 154 155 158 157 158 166 165 166 167 166 167 154 153 154
63024 +125 124 125 26 28 28 4 0 0 4 0 0 4 0 0 5 5 5
63025 +5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 1 1 1
63026 +0 0 0 0 0 0 1 1 1 4 4 4 4 4 4 4 4 4
63027 +5 5 5 5 5 5 4 3 3 4 0 0 4 0 0 6 6 6
63028 +37 38 37 131 129 131 137 136 137 37 38 37 0 0 0 4 0 0
63029 +4 5 5 43 61 72 90 154 193 172 205 220 146 190 211 136 185 209
63030 +90 154 193 28 67 93 13 20 25 43 61 72 71 116 144 44 81 103
63031 +2 5 5 7 11 13 59 113 148 101 161 196 90 154 193 28 67 93
63032 +13 20 25 6 10 14 0 0 0 13 16 17 60 73 81 137 136 137
63033 +166 165 166 158 157 158 156 155 156 154 153 154 167 166 167 174 174 174
63034 +60 73 81 4 0 0
63035 +4 4 4 4 4 4 0 0 0 3 3 3 60 74 84 174 174 174
63036 +174 174 174 167 166 167 163 162 163 155 154 155 157 156 157 155 154 155
63037 +156 155 156 163 162 163 167 166 167 158 157 158 125 124 125 37 38 37
63038 +4 3 3 4 0 0 4 0 0 6 6 6 6 6 6 5 5 5
63039 +4 4 4 4 4 4 4 4 4 1 1 1 0 0 0 2 3 3
63040 +10 13 16 7 11 13 1 0 0 0 0 0 2 2 1 4 4 4
63041 +4 4 4 4 4 4 4 4 4 5 5 5 4 3 3 4 0 0
63042 +4 0 0 7 11 13 13 16 17 4 0 0 3 3 3 34 47 55
63043 +80 127 157 146 190 211 172 205 220 136 185 209 136 185 209 136 185 209
63044 +28 67 93 22 40 52 55 98 126 55 98 126 21 29 34 7 11 13
63045 +50 82 103 101 161 196 101 161 196 35 83 115 13 20 25 2 2 1
63046 +1 1 2 1 1 2 37 51 59 131 129 131 174 174 174 174 174 174
63047 +167 166 167 163 162 163 163 162 163 167 166 167 174 174 174 125 124 125
63048 +16 19 21 4 0 0
63049 +4 4 4 4 0 0 4 0 0 60 74 84 174 174 174 174 174 174
63050 +158 157 158 155 154 155 155 154 155 156 155 156 155 154 155 158 157 158
63051 +167 166 167 165 164 165 131 129 131 60 73 81 13 16 17 4 0 0
63052 +4 0 0 4 3 3 6 6 6 4 3 3 5 5 5 4 4 4
63053 +4 4 4 3 2 2 0 0 0 0 0 0 7 11 13 45 69 86
63054 +80 127 157 71 116 144 43 61 72 7 11 13 0 0 0 1 1 1
63055 +4 3 3 4 4 4 4 4 4 4 4 4 6 6 6 5 5 5
63056 +3 2 2 4 0 0 1 0 0 21 29 34 59 113 148 136 185 209
63057 +146 190 211 136 185 209 136 185 209 136 185 209 136 185 209 136 185 209
63058 +68 124 159 44 81 103 22 40 52 13 16 17 43 61 72 90 154 193
63059 +136 185 209 59 113 148 21 29 34 3 4 3 1 1 1 0 0 0
63060 +24 26 27 125 124 125 163 162 163 174 174 174 166 165 166 165 164 165
63061 +163 162 163 125 124 125 125 124 125 125 124 125 125 124 125 26 28 28
63062 +4 0 0 4 3 3
63063 +3 3 3 0 0 0 24 26 27 153 152 153 177 184 187 158 157 158
63064 +156 155 156 156 155 156 155 154 155 155 154 155 165 164 165 174 174 174
63065 +155 154 155 60 74 84 26 28 28 4 0 0 4 0 0 3 1 0
63066 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3
63067 +2 0 0 0 0 0 0 0 0 32 43 50 72 125 159 101 161 196
63068 +136 185 209 101 161 196 101 161 196 79 117 143 32 43 50 0 0 0
63069 +0 0 0 2 2 2 4 4 4 4 4 4 3 3 3 1 0 0
63070 +0 0 0 4 5 5 49 76 92 101 161 196 146 190 211 146 190 211
63071 +136 185 209 136 185 209 136 185 209 136 185 209 136 185 209 90 154 193
63072 +28 67 93 13 16 17 37 51 59 80 127 157 136 185 209 90 154 193
63073 +22 40 52 6 9 11 3 4 3 2 2 1 16 19 21 60 73 81
63074 +137 136 137 163 162 163 158 157 158 166 165 166 167 166 167 153 152 153
63075 +60 74 84 37 38 37 6 6 6 13 16 17 4 0 0 1 0 0
63076 +3 2 2 4 4 4
63077 +3 2 2 4 0 0 37 38 37 137 136 137 167 166 167 158 157 158
63078 +157 156 157 154 153 154 157 156 157 167 166 167 174 174 174 125 124 125
63079 +37 38 37 4 0 0 4 0 0 4 0 0 4 3 3 4 4 4
63080 +4 4 4 4 4 4 5 5 5 5 5 5 1 1 1 0 0 0
63081 +0 0 0 16 21 25 55 98 126 90 154 193 136 185 209 101 161 196
63082 +101 161 196 101 161 196 136 185 209 136 185 209 101 161 196 55 98 126
63083 +14 17 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
63084 +22 40 52 90 154 193 146 190 211 146 190 211 136 185 209 136 185 209
63085 +136 185 209 136 185 209 136 185 209 101 161 196 35 83 115 7 11 13
63086 +17 23 27 59 113 148 136 185 209 101 161 196 34 86 122 7 12 15
63087 +2 5 5 3 4 3 6 6 6 60 73 81 131 129 131 163 162 163
63088 +166 165 166 174 174 174 174 174 174 163 162 163 125 124 125 41 54 63
63089 +13 16 17 4 0 0 4 0 0 4 0 0 1 0 0 2 2 2
63090 +4 4 4 4 4 4
63091 +1 1 1 2 1 0 43 57 68 137 136 137 153 152 153 153 152 153
63092 +163 162 163 156 155 156 165 164 165 167 166 167 60 74 84 6 6 6
63093 +4 0 0 4 0 0 5 5 5 4 4 4 4 4 4 4 4 4
63094 +4 5 5 6 6 6 4 3 3 0 0 0 0 0 0 11 15 18
63095 +40 71 93 100 139 164 101 161 196 101 161 196 101 161 196 101 161 196
63096 +101 161 196 101 161 196 101 161 196 101 161 196 136 185 209 136 185 209
63097 +101 161 196 45 69 86 6 6 6 0 0 0 17 23 27 55 98 126
63098 +136 185 209 146 190 211 136 185 209 136 185 209 136 185 209 136 185 209
63099 +136 185 209 136 185 209 90 154 193 22 40 52 7 11 13 50 82 103
63100 +136 185 209 136 185 209 53 118 160 22 40 52 7 11 13 2 5 5
63101 +3 4 3 37 38 37 125 124 125 157 156 157 166 165 166 167 166 167
63102 +174 174 174 174 174 174 137 136 137 60 73 81 4 0 0 4 0 0
63103 +4 0 0 4 0 0 5 5 5 3 3 3 3 3 3 4 4 4
63104 +4 4 4 4 4 4
63105 +4 0 0 4 0 0 41 54 63 137 136 137 125 124 125 131 129 131
63106 +155 154 155 167 166 167 174 174 174 60 74 84 6 6 6 4 0 0
63107 +4 3 3 6 6 6 4 4 4 4 4 4 4 4 4 5 5 5
63108 +4 4 4 1 1 1 0 0 0 3 6 7 41 65 82 72 125 159
63109 +101 161 196 101 161 196 101 161 196 90 154 193 90 154 193 101 161 196
63110 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 136 185 209
63111 +136 185 209 136 185 209 80 127 157 55 98 126 101 161 196 146 190 211
63112 +136 185 209 136 185 209 136 185 209 101 161 196 136 185 209 101 161 196
63113 +136 185 209 101 161 196 35 83 115 22 30 35 101 161 196 172 205 220
63114 +90 154 193 28 67 93 7 11 13 2 5 5 3 4 3 13 16 17
63115 +85 115 134 167 166 167 174 174 174 174 174 174 174 174 174 174 174 174
63116 +167 166 167 60 74 84 13 16 17 4 0 0 4 0 0 4 3 3
63117 +6 6 6 5 5 5 4 4 4 5 5 5 4 4 4 5 5 5
63118 +5 5 5 5 5 5
63119 +1 1 1 4 0 0 41 54 63 137 136 137 137 136 137 125 124 125
63120 +131 129 131 167 166 167 157 156 157 37 38 37 6 6 6 4 0 0
63121 +6 6 6 5 5 5 4 4 4 4 4 4 4 5 5 2 2 1
63122 +0 0 0 0 0 0 26 37 45 58 111 146 101 161 196 101 161 196
63123 +101 161 196 90 154 193 90 154 193 90 154 193 101 161 196 101 161 196
63124 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
63125 +101 161 196 136 185 209 136 185 209 136 185 209 146 190 211 136 185 209
63126 +136 185 209 101 161 196 136 185 209 136 185 209 101 161 196 136 185 209
63127 +101 161 196 136 185 209 136 185 209 136 185 209 136 185 209 16 89 141
63128 +7 11 13 2 5 5 2 5 5 13 16 17 60 73 81 154 154 154
63129 +174 174 174 174 174 174 174 174 174 174 174 174 163 162 163 125 124 125
63130 +24 26 27 4 0 0 4 0 0 4 0 0 5 5 5 5 5 5
63131 +4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5
63132 +5 5 5 4 4 4
63133 +4 0 0 6 6 6 37 38 37 137 136 137 137 136 137 131 129 131
63134 +131 129 131 153 152 153 131 129 131 26 28 28 4 0 0 4 3 3
63135 +6 6 6 4 4 4 4 4 4 4 4 4 0 0 0 0 0 0
63136 +13 20 25 51 88 114 90 154 193 101 161 196 101 161 196 90 154 193
63137 +90 154 193 90 154 193 90 154 193 90 154 193 90 154 193 101 161 196
63138 +101 161 196 101 161 196 101 161 196 101 161 196 136 185 209 101 161 196
63139 +101 161 196 136 185 209 101 161 196 136 185 209 136 185 209 101 161 196
63140 +136 185 209 101 161 196 136 185 209 101 161 196 101 161 196 101 161 196
63141 +136 185 209 136 185 209 136 185 209 37 112 160 21 29 34 5 7 8
63142 +2 5 5 13 16 17 43 57 68 131 129 131 174 174 174 174 174 174
63143 +174 174 174 167 166 167 157 156 157 125 124 125 37 38 37 4 0 0
63144 +4 0 0 4 0 0 5 5 5 5 5 5 4 4 4 4 4 4
63145 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63146 +4 4 4 4 4 4
63147 +1 1 1 4 0 0 41 54 63 153 152 153 137 136 137 137 136 137
63148 +137 136 137 153 152 153 125 124 125 24 26 27 4 0 0 3 2 2
63149 +4 4 4 4 4 4 4 3 3 4 0 0 3 6 7 43 61 72
63150 +64 123 161 101 161 196 90 154 193 90 154 193 90 154 193 90 154 193
63151 +90 154 193 90 154 193 90 154 193 90 154 193 101 161 196 90 154 193
63152 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
63153 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
63154 +136 185 209 101 161 196 101 161 196 136 185 209 136 185 209 101 161 196
63155 +101 161 196 90 154 193 28 67 93 13 16 17 7 11 13 3 6 7
63156 +37 51 59 125 124 125 163 162 163 174 174 174 167 166 167 166 165 166
63157 +167 166 167 131 129 131 60 73 81 4 0 0 4 0 0 4 0 0
63158 +3 3 3 5 5 5 6 6 6 4 4 4 4 4 4 4 4 4
63159 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63160 +4 4 4 4 4 4
63161 +4 0 0 4 0 0 41 54 63 137 136 137 153 152 153 137 136 137
63162 +153 152 153 157 156 157 125 124 125 24 26 27 0 0 0 2 2 2
63163 +4 4 4 4 4 4 2 0 0 0 0 0 28 67 93 90 154 193
63164 +90 154 193 90 154 193 90 154 193 90 154 193 64 123 161 90 154 193
63165 +90 154 193 90 154 193 90 154 193 90 154 193 90 154 193 101 161 196
63166 +90 154 193 101 161 196 101 161 196 101 161 196 90 154 193 136 185 209
63167 +101 161 196 101 161 196 136 185 209 101 161 196 136 185 209 101 161 196
63168 +101 161 196 101 161 196 136 185 209 101 161 196 101 161 196 90 154 193
63169 +35 83 115 13 16 17 3 6 7 2 5 5 13 16 17 60 74 84
63170 +154 154 154 166 165 166 165 164 165 158 157 158 163 162 163 157 156 157
63171 +60 74 84 13 16 17 4 0 0 4 0 0 3 2 2 4 4 4
63172 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63173 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63174 +4 4 4 4 4 4
63175 +1 1 1 4 0 0 41 54 63 157 156 157 155 154 155 137 136 137
63176 +153 152 153 158 157 158 137 136 137 26 28 28 2 0 0 2 2 2
63177 +4 4 4 4 4 4 1 0 0 6 10 14 34 86 122 90 154 193
63178 +64 123 161 90 154 193 64 123 161 90 154 193 90 154 193 90 154 193
63179 +64 123 161 90 154 193 90 154 193 90 154 193 90 154 193 90 154 193
63180 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
63181 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
63182 +136 185 209 101 161 196 136 185 209 90 154 193 26 108 161 22 40 52
63183 +13 16 17 5 7 8 2 5 5 2 5 5 37 38 37 165 164 165
63184 +174 174 174 163 162 163 154 154 154 165 164 165 167 166 167 60 73 81
63185 +6 6 6 4 0 0 4 0 0 4 4 4 4 4 4 4 4 4
63186 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63187 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63188 +4 4 4 4 4 4
63189 +4 0 0 6 6 6 41 54 63 156 155 156 158 157 158 153 152 153
63190 +156 155 156 165 164 165 137 136 137 26 28 28 0 0 0 2 2 2
63191 +4 4 5 4 4 4 2 0 0 7 12 15 31 96 139 64 123 161
63192 +90 154 193 64 123 161 90 154 193 90 154 193 64 123 161 90 154 193
63193 +90 154 193 90 154 193 90 154 193 90 154 193 90 154 193 90 154 193
63194 +90 154 193 90 154 193 90 154 193 101 161 196 101 161 196 101 161 196
63195 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 136 185 209
63196 +101 161 196 136 185 209 26 108 161 22 40 52 7 11 13 5 7 8
63197 +2 5 5 2 5 5 2 5 5 2 2 1 37 38 37 158 157 158
63198 +174 174 174 154 154 154 156 155 156 167 166 167 165 164 165 37 38 37
63199 +4 0 0 4 3 3 5 5 5 4 4 4 4 4 4 4 4 4
63200 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63201 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63202 +4 4 4 4 4 4
63203 +3 1 0 4 0 0 60 73 81 157 156 157 163 162 163 153 152 153
63204 +158 157 158 167 166 167 137 136 137 26 28 28 2 0 0 2 2 2
63205 +4 5 5 4 4 4 4 0 0 7 12 15 24 86 132 26 108 161
63206 +37 112 160 64 123 161 90 154 193 64 123 161 90 154 193 90 154 193
63207 +90 154 193 90 154 193 90 154 193 90 154 193 90 154 193 90 154 193
63208 +90 154 193 101 161 196 90 154 193 101 161 196 101 161 196 101 161 196
63209 +101 161 196 101 161 196 101 161 196 136 185 209 101 161 196 136 185 209
63210 +90 154 193 35 83 115 13 16 17 13 16 17 7 11 13 3 6 7
63211 +5 7 8 6 6 6 3 4 3 2 2 1 30 32 34 154 154 154
63212 +167 166 167 154 154 154 154 154 154 174 174 174 165 164 165 37 38 37
63213 +6 6 6 4 0 0 6 6 6 4 4 4 4 4 4 4 4 4
63214 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63215 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63216 +4 4 4 4 4 4
63217 +4 0 0 4 0 0 41 54 63 163 162 163 166 165 166 154 154 154
63218 +163 162 163 174 174 174 137 136 137 26 28 28 0 0 0 2 2 2
63219 +4 5 5 4 4 5 1 1 2 6 10 14 28 67 93 18 97 151
63220 +18 97 151 18 97 151 26 108 161 37 112 160 37 112 160 90 154 193
63221 +64 123 161 90 154 193 90 154 193 90 154 193 90 154 193 101 161 196
63222 +90 154 193 101 161 196 101 161 196 90 154 193 101 161 196 101 161 196
63223 +101 161 196 101 161 196 101 161 196 136 185 209 90 154 193 16 89 141
63224 +13 20 25 7 11 13 5 7 8 5 7 8 2 5 5 4 5 5
63225 +3 4 3 4 5 5 3 4 3 0 0 0 37 38 37 158 157 158
63226 +174 174 174 158 157 158 158 157 158 167 166 167 174 174 174 41 54 63
63227 +4 0 0 3 2 2 5 5 5 4 4 4 4 4 4 4 4 4
63228 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63229 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63230 +4 4 4 4 4 4
63231 +1 1 1 4 0 0 60 73 81 165 164 165 174 174 174 158 157 158
63232 +167 166 167 174 174 174 153 152 153 26 28 28 2 0 0 2 2 2
63233 +4 5 5 4 4 4 4 0 0 7 12 15 10 87 144 10 87 144
63234 +18 97 151 18 97 151 18 97 151 26 108 161 26 108 161 26 108 161
63235 +26 108 161 37 112 160 53 118 160 90 154 193 90 154 193 90 154 193
63236 +90 154 193 90 154 193 101 161 196 101 161 196 101 161 196 101 161 196
63237 +101 161 196 136 185 209 90 154 193 26 108 161 22 40 52 13 16 17
63238 +7 11 13 3 6 7 5 7 8 5 7 8 2 5 5 4 5 5
63239 +4 5 5 6 6 6 3 4 3 0 0 0 30 32 34 158 157 158
63240 +174 174 174 156 155 156 155 154 155 165 164 165 154 153 154 37 38 37
63241 +4 0 0 4 3 3 5 5 5 4 4 4 4 4 4 4 4 4
63242 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63243 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63244 +4 4 4 4 4 4
63245 +4 0 0 4 0 0 60 73 81 167 166 167 174 174 174 163 162 163
63246 +174 174 174 174 174 174 153 152 153 26 28 28 0 0 0 3 3 3
63247 +5 5 5 4 4 4 1 1 2 7 12 15 28 67 93 18 97 151
63248 +18 97 151 18 97 151 18 97 151 18 97 151 18 97 151 26 108 161
63249 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
63250 +90 154 193 26 108 161 90 154 193 90 154 193 90 154 193 101 161 196
63251 +101 161 196 26 108 161 22 40 52 13 16 17 7 11 13 2 5 5
63252 +2 5 5 6 6 6 2 5 5 4 5 5 4 5 5 4 5 5
63253 +3 4 3 5 5 5 3 4 3 2 0 0 30 32 34 137 136 137
63254 +153 152 153 137 136 137 131 129 131 137 136 137 131 129 131 37 38 37
63255 +4 0 0 4 3 3 5 5 5 4 4 4 4 4 4 4 4 4
63256 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63257 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63258 +4 4 4 4 4 4
63259 +1 1 1 4 0 0 60 73 81 167 166 167 174 174 174 166 165 166
63260 +174 174 174 177 184 187 153 152 153 30 32 34 1 0 0 3 3 3
63261 +5 5 5 4 3 3 4 0 0 7 12 15 10 87 144 10 87 144
63262 +18 97 151 18 97 151 18 97 151 26 108 161 26 108 161 26 108 161
63263 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
63264 +26 108 161 26 108 161 26 108 161 90 154 193 90 154 193 26 108 161
63265 +35 83 115 13 16 17 7 11 13 5 7 8 3 6 7 5 7 8
63266 +2 5 5 6 6 6 4 5 5 4 5 5 3 4 3 4 5 5
63267 +3 4 3 6 6 6 3 4 3 0 0 0 26 28 28 125 124 125
63268 +131 129 131 125 124 125 125 124 125 131 129 131 131 129 131 37 38 37
63269 +4 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
63270 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63271 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63272 +4 4 4 4 4 4
63273 +3 1 0 4 0 0 60 73 81 174 174 174 177 184 187 167 166 167
63274 +174 174 174 177 184 187 153 152 153 30 32 34 0 0 0 3 3 3
63275 +5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 18 97 151
63276 +18 97 151 18 97 151 18 97 151 18 97 151 18 97 151 26 108 161
63277 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
63278 +26 108 161 90 154 193 26 108 161 26 108 161 24 86 132 13 20 25
63279 +7 11 13 13 20 25 22 40 52 5 7 8 3 4 3 3 4 3
63280 +4 5 5 3 4 3 4 5 5 3 4 3 4 5 5 3 4 3
63281 +4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 125 124 125
63282 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
63283 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
63284 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63285 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63286 +4 4 4 4 4 4
63287 +1 1 1 4 0 0 60 73 81 174 174 174 177 184 187 174 174 174
63288 +174 174 174 190 197 201 157 156 157 30 32 34 1 0 0 3 3 3
63289 +5 5 5 4 3 3 4 0 0 7 12 15 10 87 144 10 87 144
63290 +18 97 151 19 95 150 19 95 150 18 97 151 18 97 151 26 108 161
63291 +18 97 151 26 108 161 26 108 161 26 108 161 26 108 161 90 154 193
63292 +26 108 161 26 108 161 26 108 161 22 40 52 2 5 5 3 4 3
63293 +28 67 93 37 112 160 34 86 122 2 5 5 3 4 3 3 4 3
63294 +3 4 3 3 4 3 3 4 3 2 2 1 3 4 3 4 4 4
63295 +4 5 5 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
63296 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
63297 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
63298 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63299 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63300 +4 4 4 4 4 4
63301 +4 0 0 4 0 0 60 73 81 174 174 174 177 184 187 174 174 174
63302 +174 174 174 190 197 201 158 157 158 30 32 34 0 0 0 2 2 2
63303 +5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 18 97 151
63304 +10 87 144 19 95 150 19 95 150 18 97 151 18 97 151 18 97 151
63305 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
63306 +18 97 151 22 40 52 2 5 5 2 2 1 22 40 52 26 108 161
63307 +90 154 193 37 112 160 22 40 52 3 4 3 13 20 25 22 30 35
63308 +3 6 7 1 1 1 2 2 2 6 9 11 5 5 5 4 3 3
63309 +4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 131 129 131
63310 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
63311 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
63312 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63313 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63314 +4 4 4 4 4 4
63315 +1 1 1 4 0 0 60 73 81 177 184 187 193 200 203 174 174 174
63316 +177 184 187 193 200 203 163 162 163 30 32 34 4 0 0 2 2 2
63317 +5 5 5 4 3 3 4 0 0 6 10 14 24 86 132 10 87 144
63318 +10 87 144 10 87 144 19 95 150 19 95 150 19 95 150 18 97 151
63319 +26 108 161 26 108 161 26 108 161 90 154 193 26 108 161 28 67 93
63320 +6 10 14 2 5 5 13 20 25 24 86 132 37 112 160 90 154 193
63321 +10 87 144 7 12 15 2 5 5 28 67 93 37 112 160 28 67 93
63322 +2 2 1 7 12 15 35 83 115 28 67 93 3 6 7 1 0 0
63323 +4 4 4 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
63324 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
63325 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
63326 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63327 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63328 +4 4 4 4 4 4
63329 +4 0 0 4 0 0 60 73 81 174 174 174 190 197 201 174 174 174
63330 +177 184 187 193 200 203 163 162 163 30 32 34 0 0 0 2 2 2
63331 +5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 10 87 144
63332 +10 87 144 16 89 141 19 95 150 10 87 144 26 108 161 26 108 161
63333 +26 108 161 26 108 161 26 108 161 28 67 93 6 10 14 1 1 2
63334 +7 12 15 28 67 93 26 108 161 16 89 141 24 86 132 21 29 34
63335 +3 4 3 21 29 34 37 112 160 37 112 160 27 99 146 21 29 34
63336 +21 29 34 26 108 161 90 154 193 35 83 115 1 1 2 2 0 0
63337 +4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 125 124 125
63338 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
63339 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
63340 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63341 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63342 +4 4 4 4 4 4
63343 +3 1 0 4 0 0 60 73 81 193 200 203 193 200 203 174 174 174
63344 +190 197 201 193 200 203 165 164 165 37 38 37 4 0 0 2 2 2
63345 +5 5 5 4 3 3 4 0 0 6 10 14 24 86 132 10 87 144
63346 +10 87 144 10 87 144 16 89 141 18 97 151 18 97 151 10 87 144
63347 +24 86 132 24 86 132 13 20 25 4 5 7 4 5 7 22 40 52
63348 +18 97 151 37 112 160 26 108 161 7 12 15 1 1 1 0 0 0
63349 +28 67 93 37 112 160 26 108 161 28 67 93 22 40 52 28 67 93
63350 +26 108 161 90 154 193 26 108 161 10 87 144 0 0 0 2 0 0
63351 +4 4 4 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
63352 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
63353 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
63354 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63355 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63356 +4 4 4 4 4 4
63357 +4 0 0 6 6 6 60 73 81 174 174 174 193 200 203 174 174 174
63358 +190 197 201 193 200 203 165 164 165 30 32 34 0 0 0 2 2 2
63359 +5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 10 87 144
63360 +10 87 144 10 87 144 10 87 144 18 97 151 28 67 93 6 10 14
63361 +0 0 0 1 1 2 4 5 7 13 20 25 16 89 141 26 108 161
63362 +26 108 161 26 108 161 24 86 132 6 9 11 2 3 3 22 40 52
63363 +37 112 160 16 89 141 22 40 52 28 67 93 26 108 161 26 108 161
63364 +90 154 193 26 108 161 26 108 161 28 67 93 1 1 1 4 0 0
63365 +4 4 4 5 5 5 3 3 3 4 0 0 26 28 28 124 126 130
63366 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
63367 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
63368 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63369 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63370 +4 4 4 4 4 4
63371 +4 0 0 4 0 0 60 73 81 193 200 203 193 200 203 174 174 174
63372 +193 200 203 193 200 203 167 166 167 37 38 37 4 0 0 2 2 2
63373 +5 5 5 4 4 4 4 0 0 6 10 14 28 67 93 10 87 144
63374 +10 87 144 10 87 144 18 97 151 10 87 144 13 20 25 4 5 7
63375 +1 1 2 1 1 1 22 40 52 26 108 161 26 108 161 26 108 161
63376 +26 108 161 26 108 161 26 108 161 24 86 132 22 40 52 22 40 52
63377 +22 40 52 22 40 52 10 87 144 26 108 161 26 108 161 26 108 161
63378 +26 108 161 26 108 161 90 154 193 10 87 144 0 0 0 4 0 0
63379 +4 4 4 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
63380 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
63381 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
63382 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63383 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63384 +4 4 4 4 4 4
63385 +4 0 0 6 6 6 60 73 81 174 174 174 220 221 221 174 174 174
63386 +190 197 201 205 212 215 167 166 167 30 32 34 0 0 0 2 2 2
63387 +5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 10 87 144
63388 +10 87 144 10 87 144 10 87 144 10 87 144 22 40 52 1 1 2
63389 +2 0 0 1 1 2 24 86 132 26 108 161 26 108 161 26 108 161
63390 +26 108 161 19 95 150 16 89 141 10 87 144 22 40 52 22 40 52
63391 +10 87 144 26 108 161 37 112 160 26 108 161 26 108 161 26 108 161
63392 +26 108 161 26 108 161 26 108 161 28 67 93 2 0 0 3 1 0
63393 +4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 131 129 131
63394 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
63395 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
63396 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63397 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63398 +4 4 4 4 4 4
63399 +4 0 0 4 0 0 60 73 81 220 221 221 190 197 201 174 174 174
63400 +193 200 203 193 200 203 174 174 174 37 38 37 4 0 0 2 2 2
63401 +5 5 5 4 4 4 3 2 2 1 1 2 13 20 25 10 87 144
63402 +10 87 144 10 87 144 10 87 144 10 87 144 10 87 144 13 20 25
63403 +13 20 25 22 40 52 10 87 144 18 97 151 18 97 151 26 108 161
63404 +10 87 144 13 20 25 6 10 14 21 29 34 24 86 132 18 97 151
63405 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
63406 +26 108 161 90 154 193 18 97 151 13 20 25 0 0 0 4 3 3
63407 +4 4 4 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
63408 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
63409 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
63410 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63411 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63412 +4 4 4 4 4 4
63413 +4 0 0 6 6 6 60 73 81 174 174 174 220 221 221 174 174 174
63414 +190 197 201 220 221 221 167 166 167 30 32 34 1 0 0 2 2 2
63415 +5 5 5 4 4 4 4 4 5 2 5 5 4 5 7 13 20 25
63416 +28 67 93 10 87 144 10 87 144 10 87 144 10 87 144 10 87 144
63417 +10 87 144 10 87 144 18 97 151 10 87 144 18 97 151 18 97 151
63418 +28 67 93 2 3 3 0 0 0 28 67 93 26 108 161 26 108 161
63419 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
63420 +26 108 161 10 87 144 13 20 25 1 1 2 3 2 2 4 4 4
63421 +4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 131 129 131
63422 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
63423 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
63424 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63425 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63426 +4 4 4 4 4 4
63427 +4 0 0 4 0 0 60 73 81 220 221 221 190 197 201 174 174 174
63428 +193 200 203 193 200 203 174 174 174 26 28 28 4 0 0 4 3 3
63429 +5 5 5 4 4 4 4 4 4 4 4 5 1 1 2 2 5 5
63430 +4 5 7 22 40 52 10 87 144 10 87 144 18 97 151 10 87 144
63431 +10 87 144 10 87 144 10 87 144 10 87 144 10 87 144 18 97 151
63432 +10 87 144 28 67 93 22 40 52 10 87 144 26 108 161 18 97 151
63433 +18 97 151 18 97 151 26 108 161 26 108 161 26 108 161 26 108 161
63434 +22 40 52 1 1 2 0 0 0 2 3 3 4 4 4 4 4 4
63435 +4 4 4 5 5 5 4 4 4 0 0 0 26 28 28 131 129 131
63436 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
63437 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
63438 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63439 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63440 +4 4 4 4 4 4
63441 +4 0 0 6 6 6 60 73 81 174 174 174 220 221 221 174 174 174
63442 +190 197 201 220 221 221 190 197 201 41 54 63 4 0 0 2 2 2
63443 +6 6 6 4 4 4 4 4 4 4 4 5 4 4 5 3 3 3
63444 +1 1 2 1 1 2 6 10 14 22 40 52 10 87 144 18 97 151
63445 +18 97 151 10 87 144 10 87 144 10 87 144 18 97 151 10 87 144
63446 +10 87 144 18 97 151 26 108 161 18 97 151 18 97 151 10 87 144
63447 +26 108 161 26 108 161 26 108 161 10 87 144 28 67 93 6 10 14
63448 +1 1 2 1 1 2 4 3 3 4 4 5 4 4 4 4 4 4
63449 +5 5 5 5 5 5 1 1 1 4 0 0 37 51 59 137 136 137
63450 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
63451 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
63452 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63453 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63454 +4 4 4 4 4 4
63455 +4 0 0 4 0 0 60 73 81 220 221 221 193 200 203 174 174 174
63456 +193 200 203 193 200 203 220 221 221 137 136 137 13 16 17 4 0 0
63457 +2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5
63458 +4 4 5 4 3 3 1 1 2 4 5 7 13 20 25 28 67 93
63459 +10 87 144 10 87 144 10 87 144 10 87 144 10 87 144 10 87 144
63460 +10 87 144 18 97 151 18 97 151 10 87 144 18 97 151 26 108 161
63461 +26 108 161 18 97 151 28 67 93 6 10 14 0 0 0 0 0 0
63462 +2 3 3 4 5 5 4 4 5 4 4 4 4 4 4 5 5 5
63463 +3 3 3 1 1 1 0 0 0 16 19 21 125 124 125 137 136 137
63464 +131 129 131 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
63465 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
63466 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63467 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63468 +4 4 4 4 4 4
63469 +4 0 0 6 6 6 60 73 81 174 174 174 220 221 221 174 174 174
63470 +193 200 203 190 197 201 220 221 221 220 221 221 153 152 153 30 32 34
63471 +0 0 0 0 0 0 2 2 2 4 4 4 4 4 4 4 4 4
63472 +4 4 4 4 5 5 4 5 7 1 1 2 1 1 2 4 5 7
63473 +13 20 25 28 67 93 10 87 144 18 97 151 10 87 144 10 87 144
63474 +10 87 144 10 87 144 10 87 144 18 97 151 26 108 161 18 97 151
63475 +28 67 93 7 12 15 0 0 0 0 0 0 2 2 1 4 4 4
63476 +4 5 5 4 5 5 4 4 4 4 4 4 3 3 3 0 0 0
63477 +0 0 0 0 0 0 37 38 37 125 124 125 158 157 158 131 129 131
63478 +125 124 125 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
63479 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
63480 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63481 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63482 +4 4 4 4 4 4
63483 +4 3 3 4 0 0 41 54 63 193 200 203 220 221 221 174 174 174
63484 +193 200 203 193 200 203 193 200 203 220 221 221 244 246 246 193 200 203
63485 +120 125 127 5 5 5 1 0 0 0 0 0 1 1 1 4 4 4
63486 +4 4 4 4 4 4 4 5 5 4 5 5 4 4 5 1 1 2
63487 +4 5 7 4 5 7 22 40 52 10 87 144 10 87 144 10 87 144
63488 +10 87 144 10 87 144 18 97 151 10 87 144 10 87 144 13 20 25
63489 +4 5 7 2 3 3 1 1 2 4 4 4 4 5 5 4 4 4
63490 +4 4 4 4 4 4 4 4 4 1 1 1 0 0 0 1 1 2
63491 +24 26 27 60 74 84 153 152 153 163 162 163 137 136 137 125 124 125
63492 +125 124 125 125 124 125 125 124 125 137 136 137 125 124 125 26 28 28
63493 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
63494 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63495 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63496 +4 4 4 4 4 4
63497 +4 0 0 6 6 6 26 28 28 156 155 156 220 221 221 220 221 221
63498 +174 174 174 193 200 203 193 200 203 193 200 203 205 212 215 220 221 221
63499 +220 221 221 167 166 167 60 73 81 7 11 13 0 0 0 0 0 0
63500 +3 3 3 4 4 4 4 4 4 4 4 4 4 4 5 4 4 5
63501 +4 4 5 1 1 2 1 1 2 4 5 7 22 40 52 10 87 144
63502 +10 87 144 10 87 144 10 87 144 22 40 52 4 5 7 1 1 2
63503 +1 1 2 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4
63504 +5 5 5 2 2 2 0 0 0 4 0 0 16 19 21 60 73 81
63505 +137 136 137 167 166 167 158 157 158 137 136 137 131 129 131 131 129 131
63506 +125 124 125 125 124 125 131 129 131 155 154 155 60 74 84 5 7 8
63507 +0 0 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63508 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63509 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63510 +4 4 4 4 4 4
63511 +5 5 5 4 0 0 4 0 0 60 73 81 193 200 203 220 221 221
63512 +193 200 203 193 200 203 193 200 203 193 200 203 205 212 215 220 221 221
63513 +220 221 221 220 221 221 220 221 221 137 136 137 43 57 68 6 6 6
63514 +4 0 0 1 1 1 4 4 4 4 4 4 4 4 4 4 4 4
63515 +4 4 5 4 4 5 3 2 2 1 1 2 2 5 5 13 20 25
63516 +22 40 52 22 40 52 13 20 25 2 3 3 1 1 2 3 3 3
63517 +4 5 7 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63518 +1 1 1 0 0 0 2 3 3 41 54 63 131 129 131 166 165 166
63519 +166 165 166 155 154 155 153 152 153 137 136 137 137 136 137 125 124 125
63520 +125 124 125 137 136 137 137 136 137 125 124 125 37 38 37 4 3 3
63521 +4 3 3 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
63522 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63523 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63524 +4 4 4 4 4 4
63525 +4 3 3 6 6 6 6 6 6 13 16 17 60 73 81 167 166 167
63526 +220 221 221 220 221 221 220 221 221 193 200 203 193 200 203 193 200 203
63527 +205 212 215 220 221 221 220 221 221 244 246 246 205 212 215 125 124 125
63528 +24 26 27 0 0 0 0 0 0 2 2 2 5 5 5 5 5 5
63529 +4 4 4 4 4 4 4 4 4 4 4 5 1 1 2 4 5 7
63530 +4 5 7 4 5 7 1 1 2 3 2 2 4 4 5 4 4 4
63531 +4 4 4 4 4 4 5 5 5 4 4 4 0 0 0 0 0 0
63532 +2 0 0 26 28 28 125 124 125 174 174 174 174 174 174 166 165 166
63533 +156 155 156 153 152 153 137 136 137 137 136 137 131 129 131 137 136 137
63534 +137 136 137 137 136 137 60 74 84 30 32 34 4 0 0 4 0 0
63535 +5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63536 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63537 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63538 +4 4 4 4 4 4
63539 +5 5 5 6 6 6 4 0 0 4 0 0 6 6 6 26 28 28
63540 +125 124 125 174 174 174 220 221 221 220 221 221 220 221 221 193 200 203
63541 +205 212 215 220 221 221 205 212 215 220 221 221 220 221 221 244 246 246
63542 +193 200 203 60 74 84 13 16 17 4 0 0 0 0 0 3 3 3
63543 +5 5 5 5 5 5 4 4 4 4 4 4 4 4 5 3 3 3
63544 +1 1 2 3 3 3 4 4 5 4 4 5 4 4 4 4 4 4
63545 +5 5 5 5 5 5 2 2 2 0 0 0 0 0 0 13 16 17
63546 +60 74 84 174 174 174 193 200 203 174 174 174 167 166 167 163 162 163
63547 +153 152 153 153 152 153 137 136 137 137 136 137 153 152 153 137 136 137
63548 +125 124 125 41 54 63 24 26 27 4 0 0 4 0 0 5 5 5
63549 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63550 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63551 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63552 +4 4 4 4 4 4
63553 +4 3 3 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
63554 +6 6 6 37 38 37 131 129 131 220 221 221 220 221 221 220 221 221
63555 +193 200 203 193 200 203 220 221 221 205 212 215 220 221 221 244 246 246
63556 +244 246 246 244 246 246 174 174 174 41 54 63 0 0 0 0 0 0
63557 +0 0 0 4 4 4 5 5 5 5 5 5 4 4 4 4 4 5
63558 +4 4 5 4 4 5 4 4 4 4 4 4 6 6 6 6 6 6
63559 +3 3 3 0 0 0 2 0 0 13 16 17 60 73 81 156 155 156
63560 +220 221 221 193 200 203 174 174 174 165 164 165 163 162 163 154 153 154
63561 +153 152 153 153 152 153 158 157 158 163 162 163 137 136 137 60 73 81
63562 +13 16 17 4 0 0 4 0 0 4 3 3 4 4 4 4 4 4
63563 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63564 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63565 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63566 +4 4 4 4 4 4
63567 +5 5 5 4 3 3 4 3 3 6 6 6 6 6 6 6 6 6
63568 +6 6 6 6 6 6 6 6 6 37 38 37 167 166 167 244 246 246
63569 +244 246 246 220 221 221 205 212 215 205 212 215 220 221 221 193 200 203
63570 +220 221 221 244 246 246 244 246 246 244 246 246 137 136 137 37 38 37
63571 +3 2 2 0 0 0 1 1 1 5 5 5 5 5 5 4 4 4
63572 +4 4 4 4 4 4 4 4 4 5 5 5 4 4 4 1 1 1
63573 +0 0 0 5 5 5 43 57 68 153 152 153 193 200 203 220 221 221
63574 +177 184 187 174 174 174 167 166 167 166 165 166 158 157 158 157 156 157
63575 +158 157 158 166 165 166 156 155 156 85 115 134 13 16 17 4 0 0
63576 +4 0 0 4 0 0 5 5 5 5 5 5 4 4 4 4 4 4
63577 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63578 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63579 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63580 +4 4 4 4 4 4
63581 +5 5 5 4 3 3 6 6 6 6 6 6 4 0 0 6 6 6
63582 +6 6 6 6 6 6 6 6 6 6 6 6 13 16 17 60 73 81
63583 +177 184 187 220 221 221 220 221 221 220 221 221 205 212 215 220 221 221
63584 +220 221 221 205 212 215 220 221 221 244 246 246 244 246 246 205 212 215
63585 +125 124 125 30 32 34 0 0 0 0 0 0 2 2 2 5 5 5
63586 +4 4 4 4 4 4 4 4 4 1 1 1 0 0 0 1 0 0
63587 +37 38 37 131 129 131 205 212 215 220 221 221 193 200 203 174 174 174
63588 +174 174 174 174 174 174 167 166 167 165 164 165 166 165 166 167 166 167
63589 +158 157 158 125 124 125 37 38 37 4 0 0 4 0 0 4 0 0
63590 +4 3 3 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
63591 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63592 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63593 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63594 +4 4 4 4 4 4
63595 +4 4 4 5 5 5 4 3 3 4 3 3 6 6 6 6 6 6
63596 +4 0 0 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
63597 +26 28 28 125 124 125 205 212 215 220 221 221 220 221 221 220 221 221
63598 +205 212 215 220 221 221 205 212 215 220 221 221 220 221 221 244 246 246
63599 +244 246 246 190 197 201 60 74 84 16 19 21 4 0 0 0 0 0
63600 +0 0 0 0 0 0 0 0 0 0 0 0 16 19 21 120 125 127
63601 +177 184 187 220 221 221 205 212 215 177 184 187 174 174 174 177 184 187
63602 +174 174 174 174 174 174 167 166 167 174 174 174 166 165 166 137 136 137
63603 +60 73 81 13 16 17 4 0 0 4 0 0 4 3 3 6 6 6
63604 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63605 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63606 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63607 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63608 +4 4 4 4 4 4
63609 +5 5 5 4 3 3 5 5 5 4 3 3 6 6 6 4 0 0
63610 +6 6 6 6 6 6 4 0 0 6 6 6 4 0 0 6 6 6
63611 +6 6 6 6 6 6 37 38 37 137 136 137 193 200 203 220 221 221
63612 +220 221 221 205 212 215 220 221 221 205 212 215 205 212 215 220 221 221
63613 +220 221 221 220 221 221 244 246 246 166 165 166 43 57 68 2 2 2
63614 +0 0 0 4 0 0 16 19 21 60 73 81 157 156 157 202 210 214
63615 +220 221 221 193 200 203 177 184 187 177 184 187 177 184 187 174 174 174
63616 +174 174 174 174 174 174 174 174 174 157 156 157 60 74 84 24 26 27
63617 +4 0 0 4 0 0 4 0 0 6 6 6 4 4 4 4 4 4
63618 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63619 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63620 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63621 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63622 +4 4 4 4 4 4
63623 +4 4 4 4 4 4 5 5 5 4 3 3 5 5 5 6 6 6
63624 +6 6 6 4 0 0 6 6 6 6 6 6 6 6 6 4 0 0
63625 +4 0 0 4 0 0 6 6 6 24 26 27 60 73 81 167 166 167
63626 +220 221 221 220 221 221 220 221 221 205 212 215 205 212 215 205 212 215
63627 +205 212 215 220 221 221 220 221 221 220 221 221 205 212 215 137 136 137
63628 +60 74 84 125 124 125 137 136 137 190 197 201 220 221 221 193 200 203
63629 +177 184 187 177 184 187 177 184 187 174 174 174 174 174 174 177 184 187
63630 +190 197 201 174 174 174 125 124 125 37 38 37 6 6 6 4 0 0
63631 +4 0 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63632 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63633 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63634 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63635 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63636 +4 4 4 4 4 4
63637 +4 4 4 4 4 4 5 5 5 5 5 5 4 3 3 6 6 6
63638 +4 0 0 6 6 6 6 6 6 6 6 6 4 0 0 6 6 6
63639 +6 6 6 6 6 6 4 0 0 4 0 0 6 6 6 6 6 6
63640 +125 124 125 193 200 203 244 246 246 220 221 221 205 212 215 205 212 215
63641 +205 212 215 193 200 203 205 212 215 205 212 215 220 221 221 220 221 221
63642 +193 200 203 193 200 203 205 212 215 193 200 203 193 200 203 177 184 187
63643 +190 197 201 190 197 201 174 174 174 190 197 201 193 200 203 190 197 201
63644 +153 152 153 60 73 81 4 0 0 4 0 0 4 0 0 3 2 2
63645 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63646 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63647 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63648 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63649 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63650 +4 4 4 4 4 4
63651 +4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 4 3 3
63652 +6 6 6 4 3 3 4 3 3 4 3 3 6 6 6 6 6 6
63653 +4 0 0 6 6 6 6 6 6 6 6 6 4 0 0 4 0 0
63654 +4 0 0 26 28 28 131 129 131 220 221 221 244 246 246 220 221 221
63655 +205 212 215 193 200 203 205 212 215 193 200 203 193 200 203 205 212 215
63656 +220 221 221 193 200 203 193 200 203 193 200 203 190 197 201 174 174 174
63657 +174 174 174 190 197 201 193 200 203 193 200 203 167 166 167 125 124 125
63658 +6 6 6 4 0 0 4 0 0 4 3 3 4 4 4 4 4 4
63659 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63660 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63661 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63662 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63663 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63664 +4 4 4 4 4 4
63665 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
63666 +5 5 5 4 3 3 5 5 5 6 6 6 4 3 3 5 5 5
63667 +6 6 6 6 6 6 4 0 0 6 6 6 6 6 6 6 6 6
63668 +4 0 0 4 0 0 6 6 6 41 54 63 158 157 158 220 221 221
63669 +220 221 221 220 221 221 193 200 203 193 200 203 193 200 203 190 197 201
63670 +190 197 201 190 197 201 190 197 201 190 197 201 174 174 174 193 200 203
63671 +193 200 203 220 221 221 174 174 174 125 124 125 37 38 37 4 0 0
63672 +4 0 0 4 3 3 6 6 6 4 4 4 4 4 4 4 4 4
63673 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63674 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63675 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63676 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63677 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63678 +4 4 4 4 4 4
63679 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63680 +4 4 4 5 5 5 4 3 3 4 3 3 4 3 3 5 5 5
63681 +4 3 3 6 6 6 5 5 5 4 3 3 6 6 6 6 6 6
63682 +6 6 6 6 6 6 4 0 0 4 0 0 13 16 17 60 73 81
63683 +174 174 174 220 221 221 220 221 221 205 212 215 190 197 201 174 174 174
63684 +193 200 203 174 174 174 190 197 201 174 174 174 193 200 203 220 221 221
63685 +193 200 203 131 129 131 37 38 37 6 6 6 4 0 0 4 0 0
63686 +6 6 6 6 6 6 4 3 3 5 5 5 4 4 4 4 4 4
63687 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63688 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63689 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63690 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63691 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63692 +4 4 4 4 4 4
63693 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63694 +4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5
63695 +5 5 5 4 3 3 4 3 3 5 5 5 4 3 3 4 3 3
63696 +5 5 5 6 6 6 6 6 6 4 0 0 6 6 6 6 6 6
63697 +6 6 6 125 124 125 174 174 174 220 221 221 220 221 221 193 200 203
63698 +193 200 203 193 200 203 193 200 203 193 200 203 220 221 221 158 157 158
63699 +60 73 81 6 6 6 4 0 0 4 0 0 5 5 5 6 6 6
63700 +5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
63701 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63702 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63703 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63704 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63705 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63706 +4 4 4 4 4 4
63707 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63708 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63709 +4 4 4 5 5 5 5 5 5 4 3 3 5 5 5 4 3 3
63710 +5 5 5 5 5 5 6 6 6 6 6 6 4 0 0 4 0 0
63711 +4 0 0 4 0 0 26 28 28 125 124 125 174 174 174 193 200 203
63712 +193 200 203 174 174 174 193 200 203 167 166 167 125 124 125 6 6 6
63713 +6 6 6 6 6 6 4 0 0 6 6 6 6 6 6 5 5 5
63714 +4 3 3 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
63715 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63716 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63717 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63718 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63719 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63720 +4 4 4 4 4 4
63721 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63722 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63723 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
63724 +4 3 3 6 6 6 4 0 0 6 6 6 6 6 6 6 6 6
63725 +6 6 6 4 0 0 4 0 0 6 6 6 37 38 37 125 124 125
63726 +153 152 153 131 129 131 125 124 125 37 38 37 6 6 6 6 6 6
63727 +6 6 6 4 0 0 6 6 6 6 6 6 4 3 3 5 5 5
63728 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63729 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63730 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63731 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63732 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63733 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63734 +4 4 4 4 4 4
63735 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63736 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63737 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63738 +4 4 4 5 5 5 5 5 5 4 3 3 5 5 5 4 3 3
63739 +6 6 6 6 6 6 4 0 0 4 0 0 6 6 6 6 6 6
63740 +24 26 27 24 26 27 6 6 6 6 6 6 6 6 6 4 0 0
63741 +6 6 6 6 6 6 4 0 0 6 6 6 5 5 5 4 3 3
63742 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63743 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63744 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63745 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63746 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63747 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63748 +4 4 4 4 4 4
63749 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63750 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63751 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63752 +4 4 4 4 4 4 5 5 5 4 3 3 5 5 5 6 6 6
63753 +4 0 0 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
63754 +6 6 6 6 6 6 6 6 6 4 0 0 6 6 6 6 6 6
63755 +4 0 0 6 6 6 6 6 6 4 3 3 5 5 5 4 4 4
63756 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63757 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63758 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63759 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63760 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63761 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63762 +4 4 4 4 4 4
63763 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63764 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63765 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63766 +4 4 4 4 4 4 4 4 4 5 5 5 4 3 3 5 5 5
63767 +5 5 5 5 5 5 4 0 0 6 6 6 4 0 0 6 6 6
63768 +6 6 6 6 6 6 6 6 6 4 0 0 6 6 6 4 0 0
63769 +6 6 6 4 3 3 5 5 5 4 3 3 5 5 5 4 4 4
63770 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63771 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63772 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63773 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63774 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63775 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63776 +4 4 4 4 4 4
63777 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63778 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63779 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63780 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
63781 +4 3 3 6 6 6 4 3 3 6 6 6 6 6 6 6 6 6
63782 +4 0 0 6 6 6 4 0 0 6 6 6 6 6 6 6 6 6
63783 +6 6 6 4 3 3 5 5 5 4 4 4 4 4 4 4 4 4
63784 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63785 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63786 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63787 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63788 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63789 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63790 +4 4 4 4 4 4
63791 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63792 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63793 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63794 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63795 +4 4 4 5 5 5 4 3 3 5 5 5 4 0 0 6 6 6
63796 +6 6 6 4 0 0 6 6 6 6 6 6 4 0 0 6 6 6
63797 +4 3 3 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4
63798 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63799 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63800 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63801 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63802 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63803 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63804 +4 4 4 4 4 4
63805 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63806 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63807 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63808 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63809 +4 4 4 5 5 5 4 3 3 5 5 5 6 6 6 4 3 3
63810 +4 3 3 6 6 6 6 6 6 4 3 3 6 6 6 4 3 3
63811 +5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63812 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63813 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63814 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63815 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63816 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63817 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63818 +4 4 4 4 4 4
63819 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63820 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63821 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63822 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63823 +4 4 4 4 4 4 4 4 4 5 5 5 4 3 3 6 6 6
63824 +5 5 5 4 3 3 4 3 3 4 3 3 5 5 5 5 5 5
63825 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63826 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63827 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63828 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63829 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63830 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63831 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63832 +4 4 4 4 4 4
63833 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63834 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63835 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63836 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63837 +4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 4 3 3
63838 +5 5 5 4 3 3 5 5 5 5 5 5 4 4 4 4 4 4
63839 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63840 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63841 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63842 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63843 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63844 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63845 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
63846 +4 4 4 4 4 4
63847 diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
63848 index 524c221..004dace 100644
63849 --- a/drivers/xen/events/events_base.c
63850 +++ b/drivers/xen/events/events_base.c
63851 @@ -1565,7 +1565,7 @@ void xen_irq_resume(void)
63852 restore_pirqs();
63853 }
63854
63855 -static struct irq_chip xen_dynamic_chip __read_mostly = {
63856 +static struct irq_chip xen_dynamic_chip = {
63857 .name = "xen-dyn",
63858
63859 .irq_disable = disable_dynirq,
63860 @@ -1579,7 +1579,7 @@ static struct irq_chip xen_dynamic_chip __read_mostly = {
63861 .irq_retrigger = retrigger_dynirq,
63862 };
63863
63864 -static struct irq_chip xen_pirq_chip __read_mostly = {
63865 +static struct irq_chip xen_pirq_chip = {
63866 .name = "xen-pirq",
63867
63868 .irq_startup = startup_pirq,
63869 @@ -1599,7 +1599,7 @@ static struct irq_chip xen_pirq_chip __read_mostly = {
63870 .irq_retrigger = retrigger_dynirq,
63871 };
63872
63873 -static struct irq_chip xen_percpu_chip __read_mostly = {
63874 +static struct irq_chip xen_percpu_chip = {
63875 .name = "xen-percpu",
63876
63877 .irq_disable = disable_dynirq,
63878 diff --git a/drivers/xen/xenfs/xenstored.c b/drivers/xen/xenfs/xenstored.c
63879 index fef20db..d28b1ab 100644
63880 --- a/drivers/xen/xenfs/xenstored.c
63881 +++ b/drivers/xen/xenfs/xenstored.c
63882 @@ -24,7 +24,12 @@ static int xsd_release(struct inode *inode, struct file *file)
63883 static int xsd_kva_open(struct inode *inode, struct file *file)
63884 {
63885 file->private_data = (void *)kasprintf(GFP_KERNEL, "0x%p",
63886 +#ifdef CONFIG_GRKERNSEC_HIDESYM
63887 + NULL);
63888 +#else
63889 xen_store_interface);
63890 +#endif
63891 +
63892 if (!file->private_data)
63893 return -ENOMEM;
63894 return 0;
63895 diff --git a/firmware/Makefile b/firmware/Makefile
63896 index e297e1b..aeb0982 100644
63897 --- a/firmware/Makefile
63898 +++ b/firmware/Makefile
63899 @@ -35,9 +35,11 @@ fw-shipped-$(CONFIG_BNX2X) += bnx2x/bnx2x-e1-6.2.9.0.fw \
63900 bnx2x/bnx2x-e1h-6.2.9.0.fw \
63901 bnx2x/bnx2x-e2-6.2.9.0.fw
63902 fw-shipped-$(CONFIG_BNX2) += bnx2/bnx2-mips-09-6.2.1a.fw \
63903 + bnx2/bnx2-mips-09-6.2.1b.fw \
63904 bnx2/bnx2-rv2p-09-6.0.17.fw \
63905 bnx2/bnx2-rv2p-09ax-6.0.17.fw \
63906 bnx2/bnx2-mips-06-6.2.1.fw \
63907 + bnx2/bnx2-mips-06-6.2.3.fw \
63908 bnx2/bnx2-rv2p-06-6.0.15.fw
63909 fw-shipped-$(CONFIG_CASSINI) += sun/cassini.bin
63910 fw-shipped-$(CONFIG_CHELSIO_T3) += cxgb3/t3b_psram-1.1.0.bin \
63911 diff --git a/firmware/WHENCE b/firmware/WHENCE
63912 index 0c4d96d..b17700f 100644
63913 --- a/firmware/WHENCE
63914 +++ b/firmware/WHENCE
63915 @@ -653,21 +653,23 @@ Found in hex form in kernel source.
63916 Driver: BNX2 - Broadcom NetXtremeII
63917
63918 File: bnx2/bnx2-mips-06-6.2.1.fw
63919 +File: bnx2/bnx2-mips-06-6.2.3.fw
63920 File: bnx2/bnx2-rv2p-06-6.0.15.fw
63921 File: bnx2/bnx2-mips-09-6.2.1a.fw
63922 +File: bnx2/bnx2-mips-09-6.2.1b.fw
63923 File: bnx2/bnx2-rv2p-09-6.0.17.fw
63924 File: bnx2/bnx2-rv2p-09ax-6.0.17.fw
63925
63926 Licence:
63927 -
63928 - This file contains firmware data derived from proprietary unpublished
63929 - source code, Copyright (c) 2004 - 2010 Broadcom Corporation.
63930 -
63931 - Permission is hereby granted for the distribution of this firmware data
63932 - in hexadecimal or equivalent format, provided this copyright notice is
63933 - accompanying it.
63934 -
63935 -Found in hex form in kernel source.
63936 +
63937 + This file contains firmware data derived from proprietary unpublished
63938 + source code, Copyright (c) 2004 - 2010 Broadcom Corporation.
63939 +
63940 + Permission is hereby granted for the distribution of this firmware data
63941 + in hexadecimal or equivalent format, provided this copyright notice is
63942 + accompanying it.
63943 +
63944 +Found in hex form in kernel source.
63945
63946 --------------------------------------------------------------------------
63947
63948 diff --git a/firmware/bnx2/bnx2-mips-06-6.2.3.fw.ihex b/firmware/bnx2/bnx2-mips-06-6.2.3.fw.ihex
63949 new file mode 100644
63950 index 0000000..da72bf1
63951 --- /dev/null
63952 +++ b/firmware/bnx2/bnx2-mips-06-6.2.3.fw.ihex
63953 @@ -0,0 +1,5804 @@
63954 +:10000000080001180800000000004A68000000C84D
63955 +:1000100000000000000000000000000008004A6826
63956 +:100020000000001400004B30080000A00800000091
63957 +:100030000000569400004B44080058200000008443
63958 +:100040000000A1D808005694000001580000A25CEE
63959 +:100050000800321008000000000072F00000A3B495
63960 +:10006000000000000000000000000000080072F026
63961 +:1000700000000024000116A40800049008000400F9
63962 +:10008000000017D4000116C80000000000000000A6
63963 +:100090000000000000000000000000000000000060
63964 +:1000A000080000A80800000000003BFC00012E9C96
63965 +:1000B0000000000000000000000000000000000040
63966 +:1000C00000000000000000000A00004600000000E0
63967 +:1000D000000000000000000D636F6D362E322E33DD
63968 +:1000E0000000000006020302000000000000000300
63969 +:1000F000000000C800000032000000030000000003
63970 +:1001000000000000000000000000000000000000EF
63971 +:1001100000000010000001360000EA600000000549
63972 +:1001200000000000000000000000000000000008C7
63973 +:1001300000000000000000000000000000000000BF
63974 +:1001400000000000000000000000000000000000AF
63975 +:10015000000000000000000000000000000000009F
63976 +:10016000000000020000000000000000000000008D
63977 +:10017000000000000000000000000000000000007F
63978 +:10018000000000000000000000000010000000005F
63979 +:10019000000000000000000000000000000000005F
63980 +:1001A000000000000000000000000000000000004F
63981 +:1001B000000000000000000000000000000000003F
63982 +:1001C000000000000000000000000000000000002F
63983 +:1001D000000000000000000000000000000000001F
63984 +:1001E0000000000010000003000000000000000DEF
63985 +:1001F0000000000D3C02080024424AA03C03080015
63986 +:1002000024634B9CAC4000000043202B1480FFFD76
63987 +:10021000244200043C1D080037BD7FFC03A0F021F0
63988 +:100220003C100800261001183C1C0800279C4AA01E
63989 +:100230000E000168000000000000000D27470100CB
63990 +:1002400090E3000B2402001A94E5000814620028D1
63991 +:10025000000020218CE200003C0308008C63004475
63992 +:1002600094E60014000211C20002104030A4000203
63993 +:10027000005A10212463000130A50004A446008028
63994 +:100280003C010800AC23004410A000190004202BFE
63995 +:100290008F4202B804410008240400013C02080017
63996 +:1002A0008C420060244200013C010800AC22006046
63997 +:1002B00003E00008008010218CE2002094E3001687
63998 +:1002C00000002021AF4202808CE20004A743028498
63999 +:1002D000AF4202883C021000AF4202B83C02080064
64000 +:1002E0008C42005C244200013C010800AC22005C0E
64001 +:1002F00003E00008008010212747010090E3000B75
64002 +:100300002402000394E50008146200280000202164
64003 +:100310008CE200003C0308008C63004494E6001467
64004 +:10032000000211C20002104030A40002005A102145
64005 +:100330002463000130A50004A44600803C010800AD
64006 +:10034000AC23004410A000190004202B8F4202B8F7
64007 +:1003500004410008240400013C0208008C420060B3
64008 +:10036000244200013C010800AC22006003E00008C8
64009 +:10037000008010218CE2002094E300160000202170
64010 +:10038000AF4202808CE20004A7430284AF4202889D
64011 +:100390003C021000AF4202B83C0208008C42005CF4
64012 +:1003A000244200013C010800AC22005C03E000088C
64013 +:1003B000008010218F4301002402010050620003DD
64014 +:1003C000000311C20000000D000311C20002104022
64015 +:1003D000005A1021A440008003E000080000102112
64016 +:1003E0009362000003E00008AF80000003E0000813
64017 +:1003F0000000102103E00008000010212402010089
64018 +:1004000014820008000000003C0208008C4200FC3E
64019 +:10041000244200013C010800AC2200FC0A0000DD7F
64020 +:1004200030A200203C0208008C42008424420001DB
64021 +:100430003C010800AC22008430A2002010400008DB
64022 +:1004400030A300103C0208008C4201082442000145
64023 +:100450003C010800AC22010803E000080000000095
64024 +:1004600010600008000000003C0208008C420104FB
64025 +:10047000244200013C010800AC22010403E0000812
64026 +:10048000000000003C0208008C42010024420001F0
64027 +:100490003C010800AC22010003E00008000000005D
64028 +:1004A00027BDFFE8AFBF0010274401009483000878
64029 +:1004B000306200041040001B306600028F4202B818
64030 +:1004C00004410008240500013C0208008C42006041
64031 +:1004D000244200013C010800AC2200600A0001290E
64032 +:1004E0008FBF00108C82002094830016000028210A
64033 +:1004F000AF4202808C820004A7430284AF4202888C
64034 +:100500003C021000AF4202B83C0208008C42005C82
64035 +:10051000244200013C010800AC22005C0A000129D1
64036 +:100520008FBF001010C00006006028218F4401001A
64037 +:100530000E0000CD000000000A0001282405000183
64038 +:100540008F8200088F4301045043000700002821D8
64039 +:100550008F4401000E0000CD000000008F42010416
64040 +:10056000AF820008000028218FBF001000A01021DA
64041 +:1005700003E0000827BD001827BDFFE8AFBF001447
64042 +:10058000AFB00010974201083043700024022000F1
64043 +:100590001062000B286220011440002F000010217F
64044 +:1005A00024024000106200250000000024026000C8
64045 +:1005B00010620026000010210A0001658FBF0014A0
64046 +:1005C00027500100920200091040001A2403000184
64047 +:1005D0003C0208008C420020104000160000182148
64048 +:1005E0000E00049300000000960300083C0608007B
64049 +:1005F00094C64B5E8E0400188F8200209605000C76
64050 +:1006000000031C0000661825AC440000AC45000443
64051 +:1006100024040001AC400008AC40000CAC400010C9
64052 +:10062000AC400014AC4000180E0004B8AC43001CF1
64053 +:10063000000018210A000164006010210E0003254B
64054 +:10064000000000000A000164000010210E000EE905
64055 +:1006500000000000000010218FBF00148FB00010B8
64056 +:1006600003E0000827BD001827BDFFE0AFB2001867
64057 +:100670003C036010AFBF001CAFB10014AFB000105E
64058 +:100680008C6450002402FF7F3C1A800000822024EA
64059 +:100690003484380C24020037AC6450003C1208004B
64060 +:1006A00026524AD8AF42000824020C80AF420024F0
64061 +:1006B0003C1B80083C06080024C60324024010218D
64062 +:1006C0002404001D2484FFFFAC4600000481FFFDCC
64063 +:1006D000244200043C020800244204B03C0108000B
64064 +:1006E000AC224AE03C020800244202303C010800EF
64065 +:1006F000AC224AE43C020800244201743C03080096
64066 +:100700002463032C3C040800248403D83C0508001F
64067 +:1007100024A538F03C010800AC224B403C02080004
64068 +:10072000244202EC3C010800AC264B243C010800AA
64069 +:10073000AC254B343C010800AC234B3C3C01080089
64070 +:10074000AC244B443C010800AC224B483C0108005F
64071 +:10075000AC234ADC3C010800AC204AE83C0108001C
64072 +:10076000AC204AEC3C010800AC204AF03C010800F7
64073 +:10077000AC204AF43C010800AC204AF83C010800D7
64074 +:10078000AC204AFC3C010800AC204B003C010800B6
64075 +:10079000AC244B043C010800AC204B083C01080091
64076 +:1007A000AC204B0C3C010800AC204B103C01080075
64077 +:1007B000AC204B143C010800AC204B183C01080055
64078 +:1007C000AC264B1C3C010800AC264B203C01080029
64079 +:1007D000AC254B303C010800AC234B380E000623FF
64080 +:1007E000000000003C028000344200708C42000097
64081 +:1007F000AF8200143C0308008C6300208F82000449
64082 +:10080000104300043C0280000E00045BAF83000430
64083 +:100810003C028000344600703C0308008C6300A05A
64084 +:100820003C0208008C4200A4104300048F84001492
64085 +:100830003C010800AC2300A4A743009E8CCA000022
64086 +:100840003C0308008C6300BC3C0208008C4200B8EA
64087 +:100850000144202300641821000040210064202B63
64088 +:1008600000481021004410213C010800AC2300BCCA
64089 +:100870003C010800AC2200B88F5100003222000772
64090 +:100880001040FFDCAF8A00148CC600003C05080055
64091 +:100890008CA500BC3C0408008C8400B800CA30233E
64092 +:1008A00000A628210000102100A6302B0082202164
64093 +:1008B00000862021322700013C010800AC2500BC45
64094 +:1008C0003C010800AC2400B810E0001F32220002F6
64095 +:1008D0008F420100AF4200208F420104AF4200A8C6
64096 +:1008E0009342010B0E0000C6305000FF2E02001E86
64097 +:1008F00054400004001010800E0000C90A000213CA
64098 +:1009000000000000005210218C4200000040F80955
64099 +:1009100000000000104000053C0240008F4301042D
64100 +:100920003C026020AC4300143C024000AF4201385E
64101 +:100930003C0208008C420034244200013C010800C3
64102 +:10094000AC220034322200021040000E3222000499
64103 +:100950008F4201400E0000C6AF4200200E000295FB
64104 +:10096000000000003C024000AF4201783C02080059
64105 +:100970008C420038244200013C010800AC220038BF
64106 +:10098000322200041040FF983C0280008F42018018
64107 +:100990000E0000C6AF4200208F43018024020F00EA
64108 +:1009A00014620005000000008F420188A742009CED
64109 +:1009B0000A0002483C0240009362000024030050F9
64110 +:1009C000304200FF144300083C0240000E00027B4E
64111 +:1009D00000000000544000043C0240000E000D7571
64112 +:1009E000000000003C024000AF4201B83C02080099
64113 +:1009F0008C42003C244200013C010800AC22003C37
64114 +:100A00000A0001C83C0280003C0290003442000110
64115 +:100A100000822025AF4400208F4200200440FFFECA
64116 +:100A20000000000003E00008000000003C0280001D
64117 +:100A3000344200010082202503E00008AF4400207A
64118 +:100A400027BDFFE0AFB10014AFB0001000808821D7
64119 +:100A5000AFBF00180E00025030B000FF9362007D5F
64120 +:100A60000220202102028025A370007D8F70007477
64121 +:100A70003C0280000E000259020280241600000988
64122 +:100A80008FBF00188F4201F80440FFFE24020002CD
64123 +:100A9000AF5101C0A34201C43C021000AF4201F8B3
64124 +:100AA0008FBF00188FB100148FB0001003E0000852
64125 +:100AB00027BD002027BDFFE8AFBF0010974201848B
64126 +:100AC0008F440188304202001040000500002821B8
64127 +:100AD0000E000FAA000000000A00028D240500018C
64128 +:100AE0003C02FF0004800005008218243C02040040
64129 +:100AF000506200019362003E240500018FBF001088
64130 +:100B000000A0102103E0000827BD0018A360002208
64131 +:100B10008F4401400A00025E2405000127BDFFE862
64132 +:100B2000AFBF0014AFB0001093620000304400FF6C
64133 +:100B300038830020388200300003182B0002102B6D
64134 +:100B40000062182410600003240200501482008008
64135 +:100B50008FBF001493620005304200011040007CFA
64136 +:100B60008FBF0014934201482443FFFF2C6200050D
64137 +:100B7000104000788FB00010000310803C03080084
64138 +:100B800024634A68004310218C42000000400008A2
64139 +:100B9000000000000E0002508F4401408F70000CD6
64140 +:100BA0008F4201441602000224020001AF62000CD1
64141 +:100BB0000E0002598F4401408F420144145000043A
64142 +:100BC0008FBF00148FB000100A000F2027BD00183F
64143 +:100BD0008F62000C0A0003040000000097620010FE
64144 +:100BE0008F4301443042FFFF1462001A00000000EE
64145 +:100BF00024020001A76200108F4202380443001053
64146 +:100C00008F4201403C02003F3446F0003C0560004A
64147 +:100C10003C04FFC08CA22BBC0044182400461024C6
64148 +:100C20000002130200031D82106200390000000060
64149 +:100C30008F4202380440FFF7000000008F4201405D
64150 +:100C4000AF4202003C021000AF4202380A00032209
64151 +:100C50008FBF0014976200100A0003040000000018
64152 +:100C60000E0002508F440140976200128F430144EE
64153 +:100C70003050FFFF1603000224020001A762001299
64154 +:100C80000E0002598F4401408F42014416020004B5
64155 +:100C90008FBF00148FB000100A00029127BD00180A
64156 +:100CA000976200120A00030400000000976200141B
64157 +:100CB0008F4301443042FFFF14620006240200010A
64158 +:100CC0008FBF00148FB00010A76200140A00124AF0
64159 +:100CD00027BD0018976200141440001D8FBF001438
64160 +:100CE0000A00031C00000000976200168F430144B5
64161 +:100CF0003042FFFF1462000B240200018FBF00147A
64162 +:100D00008FB00010A76200160A000B1227BD001852
64163 +:100D10009742007824420004A76200100A000322D0
64164 +:100D20008FBF001497620016240300013042FFFFBA
64165 +:100D3000144300078FBF00143C0208008C4200706F
64166 +:100D4000244200013C010800AC2200708FBF001457
64167 +:100D50008FB0001003E0000827BD001827BDFFE892
64168 +:100D6000AFBF0014AFB000108F50010093620000BD
64169 +:100D700093430109304400FF2402001F106200A5C4
64170 +:100D80002862002010400018240200382862000A5F
64171 +:100D90001040000C2402000B286200081040002CB8
64172 +:100DA00000000000046000E52862000214400028F2
64173 +:100DB00024020006106200268FBF00140A00041FE0
64174 +:100DC0008FB000101062005E2862000B144000DC3F
64175 +:100DD0008FBF00142402000E106200738FB0001049
64176 +:100DE0000A00041F00000000106200C028620039E1
64177 +:100DF0001040000A2402008024020036106200CA5B
64178 +:100E000028620037104000B424020035106200C18F
64179 +:100E10008FBF00140A00041F8FB000101062002B57
64180 +:100E20002862008110400006240200C82402003914
64181 +:100E3000106200B48FBF00140A00041F8FB00010AE
64182 +:100E4000106200998FBF00140A00041F8FB00010B9
64183 +:100E50003C0208008C420020104000B98FBF0014F3
64184 +:100E60000E000493000000008F4201008F830020D9
64185 +:100E70009745010C97460108AC6200008F420104BF
64186 +:100E80003C04080094844B5E00052C00AC62000416
64187 +:100E90008F4201180006340000C43025AC620008FF
64188 +:100EA0008F42011C24040001AC62000C9342010A31
64189 +:100EB00000A22825AC650010AC600014AC600018DE
64190 +:100EC000AC66001C0A0003F58FBF00143C0208004A
64191 +:100ED0008C4200201040009A8FBF00140E00049333
64192 +:100EE00000000000974401083C03080094634B5E37
64193 +:100EF0009745010C000422029746010E8F820020C4
64194 +:100F0000000426000083202500052C003C030080FF
64195 +:100F100000A6282500832025AC400000AC4000043A
64196 +:100F2000AC400008AC40000CAC450010AC400014D4
64197 +:100F3000AC400018AC44001C0A0003F42404000177
64198 +:100F40009742010C14400015000000009362000558
64199 +:100F50003042001014400011000000000E0002504A
64200 +:100F6000020020219362000502002021344200107B
64201 +:100F70000E000259A36200059362000024030020C2
64202 +:100F8000304200FF1043006D020020218FBF00148B
64203 +:100F90008FB000100A000FC027BD00180000000D20
64204 +:100FA0000A00041E8FBF00143C0208008C4200207F
64205 +:100FB000104000638FBF00140E0004930000000077
64206 +:100FC0008F4201048F8300209744010C3C050800E8
64207 +:100FD00094A54B5EAC6200009762002C00042400D4
64208 +:100FE0003042FFFF008220253C02400E00A228254F
64209 +:100FF000AC640004AC600008AC60000CAC60001095
64210 +:10100000AC600014AC600018AC65001C0A0003F46E
64211 +:10101000240400010E00025002002021A7600008F5
64212 +:101020000E00025902002021020020210E00025E63
64213 +:10103000240500013C0208008C42002010400040C2
64214 +:101040008FBF00140E000493000000009742010CB3
64215 +:101050008F8300203C05080094A54B5E000214001D
64216 +:10106000AC700000AC620004AC6000088F64004CFF
64217 +:101070003C02401F00A22825AC64000C8F62005087
64218 +:1010800024040001AC6200108F620054AC620014B2
64219 +:10109000AC600018AC65001C8FBF00148FB000104E
64220 +:1010A0000A0004B827BD0018240200205082002541
64221 +:1010B0008FB000100E000F0A020020211040002007
64222 +:1010C0008FBF0014020020218FB0001000002821E3
64223 +:1010D0000A00025E27BD0018020020218FBF001405
64224 +:1010E0008FB000100A00058027BD00189745010C3D
64225 +:1010F000020020218FBF00148FB000100A0005A04D
64226 +:1011000027BD0018020020218FB000100A0005C57D
64227 +:1011100027BD00189345010D020020218FB000105B
64228 +:101120000A00060F27BD0018020020218FBF0014FF
64229 +:101130008FB000100A0005EB27BD00188FBF001408
64230 +:101140008FB0001003E0000827BD00188F4202781E
64231 +:101150000440FFFE2402000234840080AF440240B9
64232 +:10116000A34202443C02100003E00008AF420278B0
64233 +:101170003C04080094844B6A3C0208008C424B7487
64234 +:101180003083FFFF000318C000431021AF42003C32
64235 +:101190003C0208008C424B70AF4200383C020050C9
64236 +:1011A00034420008AF4200300000000000000000A0
64237 +:1011B000000000008F420000304200201040FFFD80
64238 +:1011C000000000008F4204003C010800AC224B608C
64239 +:1011D0008F4204043C010800AC224B643C02002016
64240 +:1011E000AF420030000000003C02080094424B680F
64241 +:1011F0003C03080094634B6C3C05080094A54B6EBF
64242 +:1012000024840001004310213083FFFF3C010800CB
64243 +:10121000A4224B683C010800A4244B6A1465000317
64244 +:10122000000000003C010800A4204B6A03E0000815
64245 +:10123000000000003C05000A27BDFFE80345282107
64246 +:101240003C04080024844B50AFBF00100E00051D65
64247 +:101250002406000A3C02080094424B523C0308005A
64248 +:1012600094634B6E3042000F244200030043180485
64249 +:1012700024027FFF0043102B10400002AF83001CAC
64250 +:101280000000000D0E00042A000000003C020800CF
64251 +:1012900094424B5A8FBF001027BD001803E000088E
64252 +:1012A000A74200A23C02000A034210219443000618
64253 +:1012B0003C02080094424B5A3C010800A4234B56C0
64254 +:1012C000004310238F83001C00021400000214034B
64255 +:1012D0000043102B03E000083842000127BDFFE85F
64256 +:1012E000AFBF00103C02000A0342102194420006E6
64257 +:1012F0003C010800A4224B560E00047700000000B9
64258 +:101300005440FFF93C02000A8FBF001003E00008C0
64259 +:1013100027BD001827BDFFE8AFBF00100E000477FF
64260 +:101320000000000010400003000000000E000485D3
64261 +:10133000000000003C0208008C424B608FBF001090
64262 +:1013400027430400AF4200383C0208008C424B6443
64263 +:1013500027BD0018AF830020AF42003C3C020005CF
64264 +:10136000AF42003003E00008AF8000188F82001801
64265 +:101370003C0300060002114000431025AF4200303C
64266 +:101380000000000000000000000000008F4200008C
64267 +:10139000304200101040FFFD27420400AF820020C1
64268 +:1013A00003E00008AF8000183C0608008CC64B64C0
64269 +:1013B0008F8500188F8300203C02080094424B5A0E
64270 +:1013C00027BDFFE024A50001246300202442000182
64271 +:1013D00024C70020AFB10014AFB00010AFBF001899
64272 +:1013E000AF850018AF8300203C010800A4224B5AAF
64273 +:1013F000309000FF3C010800AC274B6404C100089A
64274 +:101400000000882104E00006000000003C02080003
64275 +:101410008C424B60244200013C010800AC224B602E
64276 +:101420003C02080094424B5A3C03080094634B680A
64277 +:101430000010202B004310262C42000100441025F0
64278 +:10144000144000048F830018240200101462000F5F
64279 +:10145000000000000E0004A9241100013C03080054
64280 +:1014600094634B5A3C02080094424B681462000398
64281 +:10147000000000000E00042A000000001600000317
64282 +:10148000000000000E000493000000003C03080070
64283 +:1014900094634B5E3C02080094424B5C2463000161
64284 +:1014A0003064FFFF3C010800A4234B5E148200035C
64285 +:1014B000000000003C010800A4204B5E1200000662
64286 +:1014C000000000003C02080094424B5AA74200A2D0
64287 +:1014D0000A00050B022010210E0004770000000016
64288 +:1014E00010400004022010210E00048500000000BE
64289 +:1014F000022010218FBF00188FB100148FB0001090
64290 +:1015000003E0000827BD00203084FFFF30A5FFFF67
64291 +:101510000000182110800007000000003082000148
64292 +:101520001040000200042042006518210A00051343
64293 +:101530000005284003E000080060102110C00006EC
64294 +:1015400024C6FFFF8CA2000024A50004AC8200008A
64295 +:101550000A00051D2484000403E0000800000000C8
64296 +:1015600010A0000824A3FFFFAC86000000000000CC
64297 +:10157000000000002402FFFF2463FFFF1462FFFA53
64298 +:101580002484000403E0000800000000240200019D
64299 +:10159000AF62000CA7620010A7620012A7620014DD
64300 +:1015A00003E00008A76200163082007F034210218A
64301 +:1015B0003C08000E004818213C0208008C42002024
64302 +:1015C00027BDFFD82407FF80AFB3001CAFB20018BF
64303 +:1015D000AFB10014AFB00010AFBF00200080802179
64304 +:1015E00030B100FF0087202430D200FF1040002FD0
64305 +:1015F00000009821AF44002C9062000024030050AA
64306 +:10160000304200FF1443000E000000003C020800BE
64307 +:101610008C4200E00202102100471024AF42002C4F
64308 +:101620003C0208008C4200E0020210213042007FA0
64309 +:101630000342102100481021944200D43053FFFF90
64310 +:101640000E000493000000003C02080094424B5E30
64311 +:101650008F8300200011340000C2302500122C00BE
64312 +:101660003C02400000C2302534A50001AC700000EF
64313 +:101670008FBF0020AC6000048FB20018AC7300086C
64314 +:101680008FB10014AC60000C8FB3001CAC6500106F
64315 +:101690008FB00010AC60001424040001AC6000188E
64316 +:1016A00027BD00280A0004B8AC66001C8FBF0020CC
64317 +:1016B0008FB3001C8FB200188FB100148FB00010D0
64318 +:1016C00003E0000827BD00289343010F2402001007
64319 +:1016D0001062000E2865001110A0000724020012FD
64320 +:1016E000240200082405003A1062000600003021A0
64321 +:1016F00003E0000800000000240500351462FFFC30
64322 +:10170000000030210A000538000000008F420074FC
64323 +:1017100024420FA003E00008AF62000C27BDFFE8E1
64324 +:10172000AFBF00100E00025E240500018FBF001045
64325 +:1017300024020001A762001227BD00182402000144
64326 +:1017400003E00008A360002227BDFFE0AFB1001452
64327 +:10175000AFB00010AFBF001830B1FFFF0E00025055
64328 +:10176000008080219362003F24030004304200FF88
64329 +:101770001443000C02002021122000082402000A59
64330 +:101780000E00053100000000936200052403FFFEF7
64331 +:1017900000431024A362000524020012A362003F4C
64332 +:1017A000020020210E000259A360008116200003D0
64333 +:1017B000020020210E0005950000000002002021FB
64334 +:1017C000322600FF8FBF00188FB100148FB00010B9
64335 +:1017D000240500380A00053827BD002027BDFFE09A
64336 +:1017E000AFBF001CAFB20018AFB10014AFB0001013
64337 +:1017F0000E000250008080210E0005310000000024
64338 +:101800009362003F24120018305100FF123200038F
64339 +:101810000200202124020012A362003F936200050F
64340 +:101820002403FFFE004310240E000259A3620005AA
64341 +:10183000020020212405002016320007000030217C
64342 +:101840008FBF001C8FB200188FB100148FB0001032
64343 +:101850000A00025E27BD00208FBF001C8FB2001857
64344 +:101860008FB100148FB00010240500390A0005382C
64345 +:1018700027BD002027BDFFE8AFB00010AFBF0014A8
64346 +:101880009742010C2405003600808021144000108E
64347 +:10189000304600FF0E00025000000000240200123B
64348 +:1018A000A362003F93620005344200100E00053130
64349 +:1018B000A36200050E00025902002021020020212F
64350 +:1018C0000E00025E240500200A000604000000004D
64351 +:1018D0000E000538000000000E000250020020211A
64352 +:1018E000936200232403FF9F020020210043102461
64353 +:1018F0008FBF00148FB00010A36200230A000259AA
64354 +:1019000027BD001827BDFFE0AFBF0018AFB100141E
64355 +:10191000AFB0001030B100FF0E00025000808021F7
64356 +:10192000240200120E000531A362003F0E0002598E
64357 +:101930000200202102002021022030218FBF001848
64358 +:101940008FB100148FB00010240500350A0005384F
64359 +:1019500027BD0020A380002C03E00008A380002DF9
64360 +:101960008F4202780440FFFE8F820034AF42024073
64361 +:1019700024020002A34202443C02100003E00008DB
64362 +:10198000AF4202783C0360008C6254003042000891
64363 +:101990001440FFFD000000008C625408AF82000C70
64364 +:1019A00024020052AC605408AC645430AC6254342D
64365 +:1019B0002402000803E00008AC6254003C0260000E
64366 +:1019C0008C42540030420008104000053C03600087
64367 +:1019D0008C625400304200081440FFFD00000000FB
64368 +:1019E0008F83000C3C02600003E00008AC43540805
64369 +:1019F00090A3000024020005008040213063003FD6
64370 +:101A000000004821146200050000502190A2001C33
64371 +:101A100094A3001E304900FF306AFFFFAD00000CA8
64372 +:101A2000AD000010AD000024950200148D05001CCF
64373 +:101A30008D0400183042FFFF0049102300021100FE
64374 +:101A4000000237C3004038210086202300A2102B5B
64375 +:101A50000082202300A72823AD05001CAD04001838
64376 +:101A6000A5090014A5090020A50A001603E0000836
64377 +:101A7000A50A00228F4201F80440FFFE2402000262
64378 +:101A8000AF4401C0A34201C43C02100003E00008BF
64379 +:101A9000AF4201F83C0208008C4200B427BDFFE8C9
64380 +:101AA000AFBF001424420001AFB000103C01080099
64381 +:101AB000AC2200B48F4300243C02001F30AA00FF78
64382 +:101AC0003442FF8030D800FF006280240080F8217B
64383 +:101AD00030EF00FF1158003B01405821240CFF80DB
64384 +:101AE0003C19000A3163007F000310C00003194055
64385 +:101AF000006218213C0208008C4200DC25680001CD
64386 +:101B0000310D007F03E21021004310213043007F9C
64387 +:101B100003431821004C102400794821AF420024CF
64388 +:101B20008D220024016C1824006C7026AD22000C5C
64389 +:101B30008D220024310800FFAD22001095220014F0
64390 +:101B4000952300208D27001C3042FFFF3063FFFFEC
64391 +:101B50008D2600180043102300021100000227C345
64392 +:101B60000040282100C4302300E2102B00C23023A3
64393 +:101B700000E53823AD27001CAD2600189522002073
64394 +:101B8000A522001495220022154B000AA52200165A
64395 +:101B90008D2300248D220008254600013145008058
64396 +:101BA0001462000430C4007F108F000238AA008045
64397 +:101BB00000C0502151AF000131C800FF1518FFC906
64398 +:101BC000010058218F8400343082007F03421821A5
64399 +:101BD0003C02000A006218212402FF8000822024B7
64400 +:101BE000AF440024A06A0079A06A00838C62005090
64401 +:101BF0008F840034AC6200708C6500743C027FFFFF
64402 +:101C00003442FFFF00A228240E00066BAC6500746E
64403 +:101C1000AF5000248FBF00148FB0001003E0000805
64404 +:101C200027BD001827BDFFC0AFBE0038AFB70034D6
64405 +:101C3000AFB5002CAFB20020AFB1001CAFB00018A0
64406 +:101C4000AFBF003CAFB60030AFB40028AFB3002444
64407 +:101C50008F4500248F4600288F43002C3C02001F34
64408 +:101C60003442FF800062182400C230240080A82182
64409 +:101C7000AFA3001400A2F0240E00062FAFA60010A0
64410 +:101C80003C0208008C4200E02410FF8003608821A1
64411 +:101C900002A2102100501024AF4200243C02080090
64412 +:101CA0008C4200E002A210213042007F0342182142
64413 +:101CB0003C02000A00629021924200D293630084A9
64414 +:101CC000305700FF306300FF24020001106200342F
64415 +:101CD000036020212402000214620036000000008C
64416 +:101CE0000E001216024028219223008392220083C4
64417 +:101CF0003063007F3042007F000210C000031940B3
64418 +:101D0000006218213C0208008C4200DC02A2102173
64419 +:101D10000043382100F01024AF42002892250078BB
64420 +:101D20009224008330E2007F034218213C02000C21
64421 +:101D300014850007006280212402FFFFA24200F107
64422 +:101D40002402FFFFA64200F20A0007272402FFFF39
64423 +:101D500096020020A24200F196020022A64200F262
64424 +:101D60008E020024AE4200F492220083A24200F0D0
64425 +:101D70008E4200C8AE4200FC8E4200C4AE4200F863
64426 +:101D80008E220050AE4201008E4200CCAE420104D1
64427 +:101D9000922200853042003F0A0007823442004010
64428 +:101DA0000E00123902402821922200850A00078283
64429 +:101DB0003042003F936200852403FFDF3042003F42
64430 +:101DC000A36200859362008500431024A36200850E
64431 +:101DD0009363008393620078307400FF304200FF09
64432 +:101DE00010540036240AFF803C0C000C3283007F24
64433 +:101DF000000310C000031940006218213C020800D3
64434 +:101E00008C4200DC268800013109007F02A21021EB
64435 +:101E10000043382130E2007F0342182100EA1024F9
64436 +:101E2000AF420028006C80218E020024028A182410
64437 +:101E3000006A5826AE02000C8E020024310800FF12
64438 +:101E4000AE02001096020014960300208E07001CBC
64439 +:101E50003042FFFF3063FFFF8E060018004310235F
64440 +:101E600000021100000227C30040282100C43023D3
64441 +:101E700000E2102B00C2302300E53823AE07001C1F
64442 +:101E8000AE06001896020020A60200149602002258
64443 +:101E9000A602001692220079304200FF105400077B
64444 +:101EA0000000000051370001316800FF92220078E5
64445 +:101EB000304200FF1448FFCD0100A0219222008390
64446 +:101EC000A22200798E2200500A0007E2AE220070A2
64447 +:101ED000A22200858E22004C2405FF80AE42010C18
64448 +:101EE0009222008534420020A2220085924200D135
64449 +:101EF0003C0308008C6300DC305400FF3C02080007
64450 +:101F00008C4200E400143140001420C002A31821C8
64451 +:101F100000C4202102A210210064382100461021B3
64452 +:101F20000045182400E52824AF450028AF43002CC5
64453 +:101F30003042007F924400D030E3007F03422821EA
64454 +:101F4000034318213C02000C006280213C02000E79
64455 +:101F5000309600FF00A298211296002A000000008F
64456 +:101F60008E02000C02002021026028211040002572
64457 +:101F7000261000280E00064A000000009262000DA4
64458 +:101F800026830001307400FF3042007FA262000D02
64459 +:101F90002404FF801697FFF0267300203C020800FF
64460 +:101FA0008C4200DC0000A02102A210210044102479
64461 +:101FB000AF4200283C0208008C4200E43C030800C9
64462 +:101FC0008C6300DC02A2102100441024AF42002CDC
64463 +:101FD0003C0208008C4200E402A318213063007F19
64464 +:101FE00002A210213042007F034220210343182126
64465 +:101FF0003C02000C006280213C02000E0A0007A493
64466 +:10200000008298218E4200D8AE2200508E4200D825
64467 +:10201000AE22007092250083924600D19223008365
64468 +:10202000924400D12402FF8000A228243063007F64
64469 +:10203000308400FF00A628250064182A10600002E2
64470 +:1020400030A500FF38A50080A2250083A2250079D5
64471 +:102050000E00063D000000009222007E02A020211A
64472 +:10206000A222007A8E2300743C027FFF3442FFFFDD
64473 +:10207000006218240E00066BAE2300748FA20010BD
64474 +:10208000AF5E00248FBF003CAF4200288FBE0038F7
64475 +:102090008FA200148FB700348FB600308FB5002C9C
64476 +:1020A0008FB400288FB300248FB200208FB1001CA2
64477 +:1020B0008FB0001827BD004003E00008AF42002C9D
64478 +:1020C00090A2000024420001A0A200003C030800EE
64479 +:1020D0008C6300F4304200FF1443000F0080302175
64480 +:1020E000A0A000003C0208008C4200E48F84003471
64481 +:1020F000008220213082007F034218213C02000C24
64482 +:10210000006218212402FF8000822024ACC300005A
64483 +:1021100003E00008AF4400288C8200002442002025
64484 +:1021200003E00008AC82000094C200003C080800F4
64485 +:10213000950800CA30E7FFFF008048210102102106
64486 +:10214000A4C2000094C200003042FFFF00E2102B46
64487 +:1021500054400001A4C7000094A200003C03080002
64488 +:102160008C6300CC24420001A4A2000094A20000D1
64489 +:102170003042FFFF544300078F8600280107102BD1
64490 +:10218000A4A000005440000101003821A4C70000B1
64491 +:102190008F8600288CC4001CAF44003C94A2000031
64492 +:1021A0008F43003C3042FFFF000210C00062182144
64493 +:1021B000AF43003C8F42003C008220231880000483
64494 +:1021C000000000008CC200180A00084324420001ED
64495 +:1021D0008CC20018AF4200383C020050344200105C
64496 +:1021E000AF420030000000000000000000000000CE
64497 +:1021F0008F420000304200201040FFFD0000000030
64498 +:102200008F420404AD2200048F420400AD2200007E
64499 +:102210003C020020AF42003003E000080000000054
64500 +:1022200027BDFFE0AFB20018AFB10014AFB000108F
64501 +:10223000AFBF001C94C2000000C080213C12080007
64502 +:10224000965200C624420001A60200009603000038
64503 +:1022500094E2000000E03021144300058FB100300B
64504 +:102260000E000818024038210A000875000000001E
64505 +:102270008C8300048C820004244200400461000727
64506 +:10228000AC8200048C8200040440000400000000C2
64507 +:102290008C82000024420001AC8200009602000003
64508 +:1022A0003042FFFF50520001A600000096220000BD
64509 +:1022B00024420001A62200008F82002896230000FD
64510 +:1022C00094420016144300048FBF001C2402000136
64511 +:1022D000A62200008FBF001C8FB200188FB100141F
64512 +:1022E0008FB0001003E0000827BD00208F89002870
64513 +:1022F00027BDFFE0AFBF00188D220028274804004B
64514 +:1023000030E700FFAF4200388D22002CAF8800304C
64515 +:10231000AF42003C3C020005AF420030000000002C
64516 +:1023200000000000000000000000000000000000AD
64517 +:10233000000000008C82000C8C82000CAD020000BA
64518 +:102340008C820010AD0200048C820018AD020008DF
64519 +:102350008C82001CAD02000C8CA20014AD02001097
64520 +:102360008C820020AD02001490820005304200FFF4
64521 +:1023700000021200AD0200188CA20018AD02001C71
64522 +:102380008CA2000CAD0200208CA20010AD02002433
64523 +:102390008CA2001CAD0200288CA20020AD02002CF3
64524 +:1023A000AD060030AD000034978300263402FFFFF5
64525 +:1023B00014620002006020213404FFFF10E00011CD
64526 +:1023C000AD04003895230036952400362402000120
64527 +:1023D0003063FFFF000318C20069182190650040B8
64528 +:1023E000308400070082100400451025A0620040E0
64529 +:1023F0008F820028944200563042FFFF0A0008DC1A
64530 +:10240000AD02003C952300369524003624020001DD
64531 +:102410003063FFFF000318C2006918219065004077
64532 +:1024200030840007008210040002102700451024A9
64533 +:10243000A0620040AD00003C000000000000000071
64534 +:10244000000000003C02000634420040AF42003071
64535 +:102450000000000000000000000000008F420000AB
64536 +:10246000304200101040FFFD8F860028AF880030FA
64537 +:1024700024C2005624C7003C24C4002824C50032CE
64538 +:1024800024C600360E000856AFA200108FBF0018F9
64539 +:1024900003E0000827BD00208F8300243C060800CD
64540 +:1024A0008CC600E88F82003430633FFF0003198040
64541 +:1024B00000461021004310212403FF803046007F96
64542 +:1024C00000431024AF420028034618213C02000CB0
64543 +:1024D0000062302190C2000D30A500FF00003821BD
64544 +:1024E00034420010A0C2000D8F8900288F8A00247A
64545 +:1024F00095230036000A13823048000324020001AD
64546 +:10250000A4C3000E1102000B2902000210400005B6
64547 +:10251000240200021100000C240300010A0009201B
64548 +:102520000000182111020006000000000A00092026
64549 +:10253000000018218CC2002C0A000920244300014D
64550 +:102540008CC20014244300018CC200180043102BDD
64551 +:1025500050400009240700012402002714A20003B0
64552 +:10256000000000000A00092C240700019522003E0B
64553 +:1025700024420001A522003E000A138230430003DA
64554 +:102580002C62000210400009008028211460000421
64555 +:102590000000000094C200360A00093C3046FFFFEC
64556 +:1025A0008CC600380A00093C008028210000302138
64557 +:1025B0003C04080024844B780A00088900000000CD
64558 +:1025C000274901008D22000C9523000601202021BF
64559 +:1025D000000216023046003F3063FFFF240200274E
64560 +:1025E00000C0282128C7002810C2000EAF83002495
64561 +:1025F00010E00008240200312402002110C200096A
64562 +:102600002402002510C200079382002D0A00095BF6
64563 +:102610000000000010C200059382002D0A00095B33
64564 +:10262000000000000A0008F4000000000A0006266E
64565 +:102630000000000095230006912400058D25000C64
64566 +:102640008D2600108D2700188D28001C8D29002054
64567 +:10265000244200013C010800A4234B7E3C010800F9
64568 +:10266000A0244B7D3C010800AC254B843C010800B4
64569 +:10267000AC264B883C010800AC274B903C0108007D
64570 +:10268000AC284B943C010800AC294B9803E00008AF
64571 +:10269000A382002D8F87002827BDFFC0AFB3003471
64572 +:1026A000AFB20030AFB1002CAFB00028AFBF0038E0
64573 +:1026B0003C0208008C4200D094E3003030B0FFFFB1
64574 +:1026C000005010073045FFFF3063FFFF00C0982126
64575 +:1026D000A7A200103C110800963100C614A3000602
64576 +:1026E0003092FFFF8CE2002424420030AF42003CD5
64577 +:1026F0000A0009948CE2002094E200323042FFFF8D
64578 +:1027000054A2000827A400188CE2002C24420030B8
64579 +:10271000AF42003C8CE20028AF4200380A0009A218
64580 +:102720008F84002827A5001027A60020022038212A
64581 +:102730000E000818A7A000208FA200182442003025
64582 +:10274000AF4200388FA2001CAF42003C8F840028AB
64583 +:102750003C020005AF42003094820034274304005D
64584 +:102760003042FFFF0202102B14400007AF830030FD
64585 +:1027700094820054948300340202102100431023F9
64586 +:102780000A0009B63043FFFF94830054948200345A
64587 +:102790000223182100501023006218233063FFFF2A
64588 +:1027A000948200163042FFFF144300030000000033
64589 +:1027B0000A0009C424030001948200163042FFFF7E
64590 +:1027C0000043102B104000058F82003094820016C9
64591 +:1027D000006210233043FFFF8F820030AC530000B3
64592 +:1027E000AC400004AC520008AC43000C3C020006B4
64593 +:1027F00034420010AF420030000000000000000032
64594 +:10280000000000008F420000304200101040FFFD29
64595 +:10281000001018C2006418219065004032040007BF
64596 +:10282000240200018FBF00388FB300348FB2003014
64597 +:102830008FB1002C8FB000280082100400451025B5
64598 +:1028400027BD004003E00008A062004027BDFFA8AC
64599 +:10285000AFB60050AFB5004CAFB40048AFB30044C2
64600 +:10286000AFB1003CAFBF0054AFB20040AFB00038D2
64601 +:102870008C9000003C0208008C4200E88F860034F7
64602 +:10288000960300022413FF8000C2302130633FFF13
64603 +:102890000003198000C3382100F3102490B2000017
64604 +:1028A000AF42002C9203000230E2007F034230214D
64605 +:1028B0003C02000E00C28821306300C024020040A8
64606 +:1028C0000080A82100A0B021146200260000A021F1
64607 +:1028D0008E3400388E2200181440000224020001B9
64608 +:1028E000AE2200189202000D304200201440001564
64609 +:1028F0008F8200343C0308008C6300DC001238C077
64610 +:10290000001231400043102100C730210046382119
64611 +:1029100030E300073C02008030E6007800C230253A
64612 +:102920000343182100F31024AF4208002463090078
64613 +:10293000AF4608108E2200188C6300080043102157
64614 +:10294000AE2200188E22002C8E2300182442000193
64615 +:102950000062182B1060003D000000000A000A7899
64616 +:1029600000000000920300022402FFC00043102474
64617 +:10297000304200FF1440000524020001AE2200187E
64618 +:10298000962200360A000A613054FFFF8E2200149E
64619 +:1029900024420001AE22001892020000000216003C
64620 +:1029A0000002160304410029000000009602000204
64621 +:1029B00027A4001000802821A7A20016960200027A
64622 +:1029C00024070001000030213042FFFFAF820024C5
64623 +:1029D0000E000889AFA0001C960300023C0408000A
64624 +:1029E0008C8400E88F82003430633FFF000319803D
64625 +:1029F00000441021004310213043007F3C05000CAF
64626 +:102A00000053102403431821AF4200280065182109
64627 +:102A10009062000D001221403042007FA062000D44
64628 +:102A20003C0308008C6300E48F82003400431021D3
64629 +:102A30000044382130E2007F03421021004510217C
64630 +:102A400000F31824AF430028AEA200009222000D2C
64631 +:102A5000304200101040001302A020218F83002874
64632 +:102A60008EA40000028030219462003E2442FFFFC9
64633 +:102A7000A462003E948400029625000E3084FFFF7D
64634 +:102A80000E00097330A5FFFF8F82002894430034A5
64635 +:102A90009622000E1443000302A02021240200010C
64636 +:102AA000A382002C02C028210E0007FE00000000B7
64637 +:102AB0008FBF00548FB600508FB5004C8FB40048C4
64638 +:102AC0008FB300448FB200408FB1003C8FB000380C
64639 +:102AD00003E0000827BD00588F82002827BDFFD0E3
64640 +:102AE000AFB40028AFB20020AFBF002CAFB30024BA
64641 +:102AF000AFB1001CAFB00018904400D0904300D19B
64642 +:102B00000000A021309200FFA3A30010306300FF5B
64643 +:102B10008C5100D88C5300DC1072002B2402000171
64644 +:102B20003C0308008C6300E493A400108F820034FF
64645 +:102B30002406FF800004214000431021004410219E
64646 +:102B40003043007F00461024AF4200280343182181
64647 +:102B50003C02000C006218218C62000427A40014BF
64648 +:102B600027A50010022280210270102304400015C6
64649 +:102B7000AFA300149062000D00C21024304200FF89
64650 +:102B800014400007020088219062000D344200408A
64651 +:102B90000E0007FEA062000D0A000ABD93A20010FD
64652 +:102BA0000E0009E1241400018F830028AC7000D8C6
64653 +:102BB00093A20010A06200D193A200101452FFD87B
64654 +:102BC0000000000024020001168200048FBF002CC8
64655 +:102BD0000E000626000000008FBF002C8FB40028D6
64656 +:102BE0008FB300248FB200208FB1001C8FB000186B
64657 +:102BF00003E0000827BD003027BDFFD8AFB3001C9D
64658 +:102C0000AFB20018AFB10014AFB00010AFBF0020DA
64659 +:102C10000080982100E0802130B1FFFF0E00049376
64660 +:102C200030D200FF000000000000000000000000A3
64661 +:102C30008F820020AC510000AC520004AC5300085D
64662 +:102C4000AC40000CAC400010AC400014AC4000188C
64663 +:102C50003C03080094634B5E02038025AC50001CCB
64664 +:102C6000000000000000000000000000240400013B
64665 +:102C70008FBF00208FB3001C8FB200188FB10014DB
64666 +:102C80008FB000100A0004B827BD002827BDFFE858
64667 +:102C9000AFB00010AFBF001430A5FFFF30C600FF7B
64668 +:102CA0000080802124020C80AF420024000000003C
64669 +:102CB0000000000000000000000000000000000014
64670 +:102CC0000E000ACC000000003C040800248400E050
64671 +:102CD0008C8200002403FF808FBF001402021021A9
64672 +:102CE00000431024AF4200248C8200003C03000A01
64673 +:102CF000020280213210007F035010218FB000109B
64674 +:102D00000043102127BD001803E00008AF8200280F
64675 +:102D100027BDFFE8AFBF00108F4401403C0308000F
64676 +:102D20008C6300E02402FF80AF840034008318210C
64677 +:102D300000621024AF4200243C02000803424021FC
64678 +:102D4000950500023063007F3C02000A034318210E
64679 +:102D50000062182130A5FFFF3402FFFF0000302180
64680 +:102D60003C07602010A20006AF8300282402FFFF6A
64681 +:102D7000A5020002946500D40E000AF130A5FFFF01
64682 +:102D80008FBF001024020C8027BD001803E000084C
64683 +:102D9000AF4200243C020008034240219502000299
64684 +:102DA0003C0A0800954A00C63046FFFF14C00007E1
64685 +:102DB0003402FFFF8F8200288F8400343C0760209C
64686 +:102DC000944500D40A000B5A30A5FFFF10C200241E
64687 +:102DD0008F87002894E2005494E400163045FFFFEA
64688 +:102DE00000A6102300A6182B3089FFFF10600004F6
64689 +:102DF0003044FFFF00C51023012210233044FFFFA1
64690 +:102E0000008A102B1040000C012A1023240200011C
64691 +:102E1000A50200162402FFFFA502000294E500D4DB
64692 +:102E20008F8400340000302130A5FFFF3C07602074
64693 +:102E30000A000AF1000000000044102A10400008B7
64694 +:102E4000000000009502001630420001104000040E
64695 +:102E5000000000009742007E24420014A5020016E4
64696 +:102E600003E00008000000008F84002827BDFFE079
64697 +:102E7000AFBF0018948200349483003E1060001AA3
64698 +:102E80003048FFFF9383002C2402000114620027C6
64699 +:102E90008FBF00188F820028000818C23108000771
64700 +:102EA000006218212447003A244900542444002099
64701 +:102EB000244500302446003490620040304200FF38
64702 +:102EC0000102100730420001104000168FBF0018A9
64703 +:102ED0000E000856AFA900108F82002894420034DB
64704 +:102EE0000A000B733048FFFF94830036948200344D
64705 +:102EF0001043000E8FBF001894820036A482003465
64706 +:102F000094820056A48200548C82002CAC8200244F
64707 +:102F100094820032A48200309482003CA482003A61
64708 +:102F20008FBF00180A000B3327BD002003E0000804
64709 +:102F300027BD002027BDFFE8AFBF00108F4A01006A
64710 +:102F40003C0508008CA500E03C02080090424B8440
64711 +:102F50003C0C0800958C4B7E01452821304B003FEE
64712 +:102F600030A2007F03424021396900323C02000A4E
64713 +:102F70003963003F2C630001010240212D2900012B
64714 +:102F80002402FF8000A2282401234825AF8A0034B0
64715 +:102F900000801821AF450024000030210080282146
64716 +:102FA00024070001AF8800283C04080024844B78E3
64717 +:102FB000AF8C002415200007A380002D24020020E0
64718 +:102FC0005562000F006020213402FFFF5582000C83
64719 +:102FD000006020212402002015620005000000008E
64720 +:102FE0008C6300142402FFFF106200070000000041
64721 +:102FF0000E000889000000000A000BD0000000004D
64722 +:103000000E0008F4016028210E000B68000000008B
64723 +:103010008FBF001024020C8027BD001803E00008B9
64724 +:10302000AF4200243C0208008C4200E027BDFFA014
64725 +:10303000AFB1003C008210212411FF80AFBE0058C8
64726 +:10304000AFB70054AFB20040AFB00038AFBF005CC4
64727 +:10305000AFB60050AFB5004CAFB40048AFB30044BA
64728 +:10306000005110248F4800248F4900288F470028E2
64729 +:10307000AF4200243C0208008C4200E00080902116
64730 +:1030800024060006008210213042007F03421821EE
64731 +:103090003C02000A006280213C02001F3442FF8093
64732 +:1030A00000E2382427A40010260500F00122F024B5
64733 +:1030B0000102B8240E00051DAFA700308FA2001832
64734 +:1030C000AE0200C48FA2001CAE0200C88FA2002472
64735 +:1030D000AE0200CC93A40010920300D12402FF8022
64736 +:1030E0000082102400431025304900FF3083007F08
64737 +:1030F0003122007F0062102A10400004000310C03B
64738 +:1031000001311026304900FF000310C000031940B0
64739 +:10311000006218213C0208008C4200DC920400D2BC
64740 +:10312000024210210043102100511024AF42002818
64741 +:1031300093A300103063007F000310C00003194008
64742 +:10314000006218213C0208008C4200DC024210217F
64743 +:10315000004310213042007F034218213C02000C42
64744 +:10316000006240218FA300142402FFFF1062003090
64745 +:10317000309500FF93A2001195030014304400FF26
64746 +:103180003063FFFF0064182B1060000D000000008A
64747 +:10319000950400148D07001C8D0600183084FFFF75
64748 +:1031A00000442023000421000000102100E4382105
64749 +:1031B00000E4202B00C230210A000C4A00C4302158
64750 +:1031C000950400148D07001C8D0600183084FFFF45
64751 +:1031D000008220230004210000001021008018211B
64752 +:1031E00000C2302300E4202B00C4302300E3382346
64753 +:1031F000AD07001CAD06001893A20011A502001433
64754 +:1032000097A20012A50200168FA20014AD020010B2
64755 +:103210008FA20014AD02000C93A20011A5020020A1
64756 +:1032200097A20012A50200228FA20014AD02002472
64757 +:103230002406FF80024610243256007FAF4200244D
64758 +:10324000035618213C02000A006280218E02004CC5
64759 +:103250008FA200203124007F000428C0AE0200505D
64760 +:103260008FA200200004214000852821AE020070BA
64761 +:1032700093A2001001208821A202008393A20010D3
64762 +:10328000A2020079920200853042003FA20200852E
64763 +:103290003C0208008C4200DC024210210045102153
64764 +:1032A00000461024AF42002C3C0208008C4200E48F
64765 +:1032B0003C0308008C6300DC024210210044102112
64766 +:1032C00000461024AF4200283C0208008C4200E473
64767 +:1032D00002431821006518210242102100441021E8
64768 +:1032E0003042007F3063007F93A50010034220210D
64769 +:1032F000034318213C02000E006240213C02000CF6
64770 +:1033000010B1008C008248213233007F1660001912
64771 +:103310002404FF803C0208008C4200DC02421021A1
64772 +:1033200000441024AF42002C3C0208008C4200E410
64773 +:103330003C0308008C6300DC02421021004410248E
64774 +:10334000AF4200283C0208008C4200E402431821EE
64775 +:103350003063007F024210213042007F034220216F
64776 +:10336000034318213C02000E006240213C02000C85
64777 +:10337000008248219124000D2414FF8000001021B8
64778 +:1033800000942025A124000D950400029505001449
64779 +:103390008D07001C3084FFFF30A5FFFF8D0600184D
64780 +:1033A000008520230004210000E4382100C23021E0
64781 +:1033B00000E4202B00C43021AD07001CAD0600182E
64782 +:1033C00095020002A5020014A50000168D02000857
64783 +:1033D000AD0200108D020008AD02000C9502000243
64784 +:1033E000A5020020A50000228D020008AD020024E5
64785 +:1033F0009122000D30420040104000422622000180
64786 +:103400003C0208008C4200E0A3B300283C10000AF4
64787 +:103410000242102100541024AF4200243C02080054
64788 +:103420008C4200E0A380002C27A4002C0242102133
64789 +:103430003042007F03421821007018218C6200D8AE
64790 +:103440008D26000427A50028AFA9002C00461021D6
64791 +:10345000AC6200D80E0009E1AF83002893A30028D6
64792 +:103460008F8200280E000626A04300D10E000B68B4
64793 +:103470000000000002541024AF4200243C02080067
64794 +:103480008C4200DC00132940001320C000A420213E
64795 +:10349000024210210044102100541024AF42002C9D
64796 +:1034A0003C0208008C4200E43C0308008C6300DC12
64797 +:1034B00003563021024210210045102100541024EF
64798 +:1034C000AF4200283C0208008C4200E4024318216D
64799 +:1034D0000064182102421021004510213042007F73
64800 +:1034E0003063007F03422021034318213C02000E79
64801 +:1034F000006240213C02000C00D080210082482163
64802 +:10350000262200013043007F14750005304400FF7F
64803 +:103510002403FF800223102400431026304400FFC0
64804 +:1035200093A2001000808821250800281444FF760B
64805 +:103530002529002093A400108FA300142402FFFF6C
64806 +:103540001062000A308900FF2482000124830001F8
64807 +:103550003042007F14550005306900FF2403FF80CE
64808 +:103560000083102400431026304900FF92020078A7
64809 +:10357000305300FF11330032012088213C02080043
64810 +:103580008C4200DC3225007F000520C00005294068
64811 +:1035900000A42021024210212406FF8000441021B3
64812 +:1035A00000461024AF42002C3C0308008C6300DC72
64813 +:1035B0003C0208008C4200E4024318210242102120
64814 +:1035C0000045102100641821004610243063007F5C
64815 +:1035D000AF420028034318213C02000E0062402144
64816 +:1035E0003C0208008C4200E48D06000C0100202102
64817 +:1035F00002421021004510213042007F0342182171
64818 +:103600003C02000C0062482110C0000D012028215E
64819 +:103610000E00064A000000002402FF800222182447
64820 +:1036200026240001006228263082007F1455000203
64821 +:10363000308300FF30A300FF1473FFD000608821A7
64822 +:103640008E0300743C027FFF3442FFFF00621824A7
64823 +:10365000AE0300740E00066B02402021AF57002419
64824 +:103660008FA20030AF5E00288FBF005C8FBE005875
64825 +:103670008FB700548FB600508FB5004C8FB4004800
64826 +:103680008FB300448FB200408FB1003C8FB0003840
64827 +:1036900027BD006003E00008AF42002C27BDFFD823
64828 +:1036A000AFB1001CAFBF0020AFB000182751018898
64829 +:1036B000922200032408FF803C03000A3047007F69
64830 +:1036C000A3A700108F4601803C0208008C4200E056
64831 +:1036D000AF86003400C2282100A81024AF42002485
64832 +:1036E0009224000030A2007F0342102100431021E9
64833 +:1036F000AF8200283084007F24020002148200255B
64834 +:10370000000719403C0208008C4200E400C210216E
64835 +:103710000043282130A2007F0342182100A8102472
64836 +:10372000AF4200283C02000C006218219062000D9C
64837 +:10373000AFA3001400481025A062000D8FA3001451
64838 +:103740009062000D304200405040006A8FBF002060
64839 +:103750008F860028A380002C27A400148CC200D8D8
64840 +:103760008C63000427A50010004310210E0009E11E
64841 +:10377000ACC200D893A300108F8200280E0006264A
64842 +:10378000A04300D10E000B68000000000A000E0BE1
64843 +:103790008FBF00200E00062F00C020210E00063D26
64844 +:1037A000000000003C020008034280219223000137
64845 +:1037B0009202007B1443004F8FBF00209222000032
64846 +:1037C0003044007F24020004108200172882000584
64847 +:1037D00010400006240200052402000310820007A6
64848 +:1037E0008FB1001C0A000E0C0000000010820012B5
64849 +:1037F0008FBF00200A000E0C8FB1001C92050083C1
64850 +:10380000920600788E0700748F84003430A500FF84
64851 +:1038100000073E0230C600FF0E00067330E7007F4F
64852 +:103820000A000E0B8FBF00200E000BD78F840034D0
64853 +:103830000A000E0B8FBF002024020C80AF42002430
64854 +:103840009202003E30420040104000200000000084
64855 +:103850009202003E00021600000216030441000618
64856 +:10386000000000008F8400340E0005A024050093A2
64857 +:103870000A000E0B8FBF00209202003F24030018A5
64858 +:10388000304200FF1443000C8F84003424050039BB
64859 +:103890000E000538000030210E0002508F840034E5
64860 +:1038A00024020012A202003F0E0002598F8400344D
64861 +:1038B0000A000E0B8FBF0020240500360E000538CD
64862 +:1038C000000030210A000E0B8FBF00200E000250B6
64863 +:1038D0008F8400349202000534420020A2020005C9
64864 +:1038E0000E0002598F8400340E000FC08F84003404
64865 +:1038F0008FBF00208FB1001C8FB0001824020C80F5
64866 +:1039000027BD002803E00008AF42002427BDFFE8E0
64867 +:10391000AFB00010AFBF001427430100946200084D
64868 +:103920000002140000021403044100020000802180
64869 +:103930002410000194620008304200801040001AF8
64870 +:10394000020010219462000830422000104000164E
64871 +:10395000020010218C6300183C021C2D344219ED2A
64872 +:10396000240600061062000F3C0760213C0208009C
64873 +:103970008C4200D4104000078F8200288F830028DB
64874 +:10398000906200623042000F34420040A062006248
64875 +:103990008F8200288F840034944500D40E000AF1F1
64876 +:1039A00030A5FFFF020010218FBF00148FB0001060
64877 +:1039B00003E0000827BD001827BDFFE0AFB10014E9
64878 +:1039C000AFB00010A380002CAFBF00188F450100DE
64879 +:1039D0003C0308008C6300E02402FF80AF850034C4
64880 +:1039E00000A318213064007F0344202100621824C2
64881 +:1039F0003C02000A00822021AF430024275001002E
64882 +:103A00008E0200148C8300DCAF8400280043102356
64883 +:103A100018400004000088218E0200140E000A8461
64884 +:103A2000AC8200DC9202000B24030002304200FF53
64885 +:103A30001443002F0000000096020008304300FFEE
64886 +:103A40002402008214620005240200840E00093E54
64887 +:103A5000000000000A000E97000000001462000938
64888 +:103A6000240200818F8200288F8400343C0760216B
64889 +:103A7000944500D49206000530A5FFFF0A000E868B
64890 +:103A800030C600FF14620027000000009202000A06
64891 +:103A9000304300FF306200201040000430620040DC
64892 +:103AA0008F8400340A000E82240600401040000477
64893 +:103AB000000316008F8400340A000E8224060041A1
64894 +:103AC00000021603044100178F84003424060042CC
64895 +:103AD0008F8200283C076019944500D430A5FFFF71
64896 +:103AE0000E000AF1000000000A000E97000000001E
64897 +:103AF0009202000B24030016304200FF1043000620
64898 +:103B0000000000009202000B24030017304200FF67
64899 +:103B100014430004000000000E000E11000000001D
64900 +:103B2000004088210E000B68000000009202000A8D
64901 +:103B3000304200081040000624020C808F850028C7
64902 +:103B40003C0400080E0011EE0344202124020C80E6
64903 +:103B5000AF4200248FBF0018022010218FB0001048
64904 +:103B60008FB1001403E0000827BD002027BDFFE847
64905 +:103B7000AFBF0014AFB000108F5000243C0308000A
64906 +:103B80008C6300E08F4501002402FF8000A3182110
64907 +:103B90003064007F03442021006218243C02000AA4
64908 +:103BA00000822021AF850034AF4300249082006260
64909 +:103BB000AF8400283042000F34420050A0820062DF
64910 +:103BC0003C02001F3442FF800E00062602028024C1
64911 +:103BD000AF5000248FBF00148FB0001003E0000826
64912 +:103BE00027BD00183C0208008C4200201040001D38
64913 +:103BF0002745010090A300093C0200080342202150
64914 +:103C000024020018546200033C0200080A000ED887
64915 +:103C10002402000803422021240200161462000539
64916 +:103C20002402001724020012A082003F0A000EE2C4
64917 +:103C300094A700085462000694A700089362000548
64918 +:103C40002403FFFE00431024A362000594A700088C
64919 +:103C500090A6001B8CA4000094A500060A000ACCC4
64920 +:103C600000073C0003E000080000000027440100BA
64921 +:103C700094820008304500FF38A3008238A20084F7
64922 +:103C80002C6300012C420001006218251060000620
64923 +:103C9000240200839382002D1040000D00000000DC
64924 +:103CA0000A000B9B0000000014A2000524A2FF8064
64925 +:103CB0008F4301043C02602003E00008AC43001481
64926 +:103CC000304200FF2C420002104000032402002278
64927 +:103CD0000A000E3C0000000014A2000300000000D7
64928 +:103CE0000A000EA9000000000A000EC70000000034
64929 +:103CF0009363007E9362007A144300090000202140
64930 +:103D00009362000024030050304200FF144300047B
64931 +:103D1000240400019362007E24420001A362007E1D
64932 +:103D200003E00008008010218F4201F80440FFFEEC
64933 +:103D300024020002AF4401C0A34201C43C021000AF
64934 +:103D400003E00008AF4201F827BDFFE8AFBF001055
64935 +:103D50009362003F2403000A304200FF14430046F0
64936 +:103D6000000000008F6300548F62004C1062007DE1
64937 +:103D7000036030219362000024030050304200FFB2
64938 +:103D80001443002F000000008F4401403C02080053
64939 +:103D90008C4200E02403FF800082102100431024A5
64940 +:103DA000AF4200243C0208008C4200E08F650054C2
64941 +:103DB0003C03000A008220213084007F034410214C
64942 +:103DC00000431021AC4501089762003C8F63004C12
64943 +:103DD0003042FFFF0002104000621821AF63005C18
64944 +:103DE0008F6300548F64004C9762003C006418237A
64945 +:103DF0003042FFFF00031843000210400043102A26
64946 +:103E000010400006000000008F6200548F63004CD9
64947 +:103E1000004310230A000F58000210439762003C31
64948 +:103E20003042FFFF00021040ACC2006424020001D7
64949 +:103E3000A0C0007CA0C2008424020C80AF420024F9
64950 +:103E40000E000F0A8F440140104000478FBF001042
64951 +:103E50008F4301408F4201F80440FFFE240200021C
64952 +:103E6000AF4301C0A34201C43C021000AF4201F8BD
64953 +:103E70000A000FA88FBF00109362003F24030010B8
64954 +:103E8000304200FF14430004000000008F44014052
64955 +:103E90000A000F94000028219362003F24030016BB
64956 +:103EA000304200FF1443000424020014A362003FC8
64957 +:103EB0000A000FA2000000008F62004C8F630050C8
64958 +:103EC00000431023044100288FBF0010936200813B
64959 +:103ED00024420001A3620081936200812C4200040D
64960 +:103EE00014400010000000009362003F240300040F
64961 +:103EF000304200FF14430006000000008F440140E0
64962 +:103F00008FBF0010240500930A0005A027BD0018EC
64963 +:103F10008F440140240500938FBF00100A00060F54
64964 +:103F200027BD00188F4401400E0002500000000021
64965 +:103F30008F6200542442FFFFAF6200548F62005032
64966 +:103F40002442FFFFAF6200500E0002598F4401402F
64967 +:103F50008F4401408FBF0010240500040A00025E58
64968 +:103F600027BD00188FBF001003E0000827BD001810
64969 +:103F70008F4201889363007E00021402304400FFE8
64970 +:103F8000306300FF1464000D0000000093620080A5
64971 +:103F9000304200FF1044000900000000A3640080CC
64972 +:103FA0009362000024030050304200FF14430004D9
64973 +:103FB000000000000A0006D78F440180A36400803F
64974 +:103FC00003E000080000000027BDFFE8AFB00010CC
64975 +:103FD000AFBF00149362000524030030304200306C
64976 +:103FE00014430089008080213C0208008C4200209C
64977 +:103FF00010400080020020210E0004930000000009
64978 +:104000008F850020ACB000009362003E9363003FB8
64979 +:10401000304200FF00021200306300FF0043102511
64980 +:10402000ACA2000493620082000216000002160394
64981 +:1040300004410005000000003C0308008C630048B8
64982 +:104040000A000FE6000000009362003E304200408C
64983 +:10405000144000030000182193620081304300FFE8
64984 +:104060009362008200031E00304200FF0002140031
64985 +:1040700000621825ACA300088F620040ACA2000CBF
64986 +:104080008F620048ACA200108F62004CACA20014FA
64987 +:104090008F6200508F63004C0043102304410003E3
64988 +:1040A000000000000A000FFA8F62004C8F6200507F
64989 +:1040B000ACA200183C02080094424B5E3C03C00BCB
64990 +:1040C00000002021004310250E0004B8ACA2001C03
64991 +:1040D0008F6200548F840020AC8200008F620058F1
64992 +:1040E000AC8200048F62005CAC8200088F620060CA
64993 +:1040F0008F43007400431021AC82000C8F62006477
64994 +:10410000AC820010976300689762006A00031C008D
64995 +:104110003042FFFF00621825AC83001493620082D6
64996 +:1041200024030080304200FF14430003000000001D
64997 +:104130000A00102EAC8000188F63000C24020001CE
64998 +:104140001062000E2402FFFF9362003E30420040E6
64999 +:104150001440000A2402FFFF8F63000C8F4200749A
65000 +:10416000006218233C020800006210241440000280
65001 +:10417000000028210060282100051043AC820018AF
65002 +:104180003C02080094424B5E3C03C00C000020211E
65003 +:10419000004310258F8300200E0004B8AC62001C81
65004 +:1041A0008F6200188F8300203C05080094A54B5EA9
65005 +:1041B00024040001AC620000AC6000048F66006C57
65006 +:1041C0003C02400D00A22825AC6600088F6200DC8E
65007 +:1041D000AC62000CAC600010936200050002160097
65008 +:1041E000AC620014AC6000180E0004B8AC65001C92
65009 +:1041F000020020218FBF00148FB00010A3600005C3
65010 +:104200000A00042127BD00188FBF00148FB00010D2
65011 +:1042100003E0000827BD00189742007C30C600FF6D
65012 +:10422000A08600843047FFFF2402000514C2000B63
65013 +:1042300024E3465090A201122C42000710400007D0
65014 +:1042400024E30A0090A30112240200140062100467
65015 +:1042500000E210210A0010663047FFFF3067FFFFC1
65016 +:1042600003E00008A4870014AC87004C8CA201086E
65017 +:104270000080402100A0482100E2102330C600FF4A
65018 +:104280001840000393AA001324E2FFFCACA201082B
65019 +:1042900030C2000110400008000000008D020050F4
65020 +:1042A00000E2102304410013240600058D0200548F
65021 +:1042B00010E20010000000008D02005414E2001A09
65022 +:1042C000000000003C0208008C4200D83042002070
65023 +:1042D0001040000A2402000191030078910200833B
65024 +:1042E000144300062402000101002021012028219E
65025 +:1042F000240600040A00105400000000A1000084FD
65026 +:1043000011400009A50200148F4301008F4201F8FB
65027 +:104310000440FFFE24020002AF4301C0A34201C4D7
65028 +:104320003C021000AF4201F803E00008000000006A
65029 +:1043300027BDFFE88FA90028AFBF001000804021F3
65030 +:1043400000E918231860007330C600FFA080007CCD
65031 +:10435000A08000818CA2010800E210230440004DDF
65032 +:10436000000000008C8200509483003C8C84006428
65033 +:10437000004748233063FFFF012318210083202BCF
65034 +:1043800010800004000000008D0200640A0010B7D5
65035 +:1043900000E210219502003C3042FFFF0122102173
65036 +:1043A00000E21021AD02005C9502003C8D03005C30
65037 +:1043B0003042FFFF0002104000E210210043102BAA
65038 +:1043C00010400003000000000A0010C68D02005CCF
65039 +:1043D0009502003C3042FFFF0002104000E2102135
65040 +:1043E000AD02005CA1000084AD07004C8CA2010866
65041 +:1043F00000E210231840000224E2FFFCACA20108F6
65042 +:1044000030C200011040000A000000008D02005080
65043 +:1044100000E2102304410004010020218D02005419
65044 +:1044200014E20003000000000A0010E82406000562
65045 +:104430008D02005414E200478FBF00103C020800B8
65046 +:104440008C4200D8304200201040000A24020001B3
65047 +:1044500091030078910200831443000624020001B6
65048 +:1044600001002021240600048FBF00100A00105410
65049 +:1044700027BD0018A1000084A50200148F4301008D
65050 +:104480008F4201F80440FFFE240200020A00110DD1
65051 +:10449000000000008C82005C004910230043102BB8
65052 +:1044A00054400001AC87005C9502003C3042FFFFA5
65053 +:1044B0000062102B14400007240200029502003C09
65054 +:1044C0008D03005C3042FFFF00621821AD03005CE9
65055 +:1044D00024020002AD07004CA10200840E000F0A66
65056 +:1044E0008F4401001040001B8FBF00108F4301005C
65057 +:1044F0008F4201F80440FFFE24020002AF4301C0D6
65058 +:10450000A34201C43C021000AF4201F80A0011238B
65059 +:104510008FBF001030C200101040000E8FBF00107F
65060 +:104520008C83005C9482003C006918233042FFFFBA
65061 +:10453000006218213C023FFF3444FFFF0083102B30
65062 +:10454000544000010080182101231021AD02005CBD
65063 +:104550008FBF001003E0000827BD001827BDFFE84B
65064 +:104560008FAA0028AFBF00100080402100EA482336
65065 +:104570001920002130C600FF8C83005C8C8200640F
65066 +:10458000006A18230043102B5040001000691821C6
65067 +:1045900094A2011001221021A4A2011094A20110E2
65068 +:1045A0003042FFFF0043102B1440000A3C023FFF43
65069 +:1045B00094A2011000431023A4A201109482003C95
65070 +:1045C0003042FFFF0A00114200621821A4A001102E
65071 +:1045D0003C023FFF3444FFFF0083102B5440000196
65072 +:1045E0000080182100671021AD02005CA100007C52
65073 +:1045F0000A00118AA100008130C200101040003C66
65074 +:10460000000000008C820050004A1023184000383F
65075 +:10461000000000009082007C24420001A082007C07
65076 +:104620009082007C3C0308008C630024304200FF31
65077 +:104630000043102B1440005C8FBF00108CA20108B7
65078 +:1046400000E2102318400058000000008C83005442
65079 +:104650009482003C006A18233042FFFF0003184395
65080 +:10466000000210400043102A104000050000000026
65081 +:104670008C820054004A10230A001171000210437A
65082 +:104680009482003C3042FFFF00021040AD02006403
65083 +:104690009502003C8D0400649503003C3042FFFF0E
65084 +:1046A00000021040008220213063FFFF00831821A8
65085 +:1046B00001431021AD02005C8D020054ACA2010840
65086 +:1046C00024020002A10200840E000F0A8F440100A0
65087 +:1046D000104000358FBF00108F4301008F4201F85A
65088 +:1046E0000440FFFE240200020A0011B30000000093
65089 +:1046F000AD07004C8CA2010800E210231840000214
65090 +:1047000024E2FFFCACA2010830C200011040000A04
65091 +:10471000000000008D02005000E21023044100045C
65092 +:10472000010020218D02005414E20003000000006B
65093 +:104730000A0011AA240600058D02005414E2001A92
65094 +:104740008FBF00103C0208008C4200D8304200208D
65095 +:104750001040000A240200019103007891020083B6
65096 +:104760001443000624020001010020212406000455
65097 +:104770008FBF00100A00105427BD0018A10000844C
65098 +:10478000A50200148F4301008F4201F80440FFFE90
65099 +:1047900024020002AF4301C0A34201C43C02100046
65100 +:1047A000AF4201F88FBF001003E0000827BD0018DA
65101 +:1047B0008FAA00108C8200500080402130C600FF7C
65102 +:1047C000004A102300A048211840000700E01821EB
65103 +:1047D00024020001A0800084A0A00112A482001481
65104 +:1047E0000A001125AFAA0010A0800081AD07004C7F
65105 +:1047F0008CA2010800E210231840000224E2FFFC12
65106 +:10480000ACA2010830C20001104000080000000006
65107 +:104810008D0200500062102304410013240600059D
65108 +:104820008D02005410620010000000008D02005440
65109 +:1048300014620011000000003C0208008C4200D805
65110 +:10484000304200201040000A240200019103007849
65111 +:10485000910200831443000624020001010020217C
65112 +:1048600001202821240600040A0010540000000042
65113 +:10487000A1000084A502001403E00008000000006D
65114 +:1048800027BDFFE0AFBF0018274201009046000A95
65115 +:104890008C4800148C8B004C9082008430C900FF3F
65116 +:1048A00001681823304A00FF1C60001A2D460006DC
65117 +:1048B000240200010142100410C00016304300031E
65118 +:1048C000012030210100382114600007304C000C19
65119 +:1048D00015800009304200301440000B8FBF0018D3
65120 +:1048E0000A001214000000000E001125AFAB0010EA
65121 +:1048F0000A0012148FBF00180E00109AAFAB001000
65122 +:104900000A0012148FBF0018AFAB00100E0011BACE
65123 +:10491000AFAA00148FBF001803E0000827BD0020D5
65124 +:1049200024020003A08200848C82005403E000086B
65125 +:10493000ACA201083C0200080342182190620081E9
65126 +:10494000240600433C07601924420001A062008154
65127 +:10495000906300813C0208008C4200C0306300FF7D
65128 +:10496000146200102403FF803C0208008C4200E027
65129 +:104970000082102100431024AF4200243C020800B2
65130 +:104980008C4200E03C03000A008210213042007F8C
65131 +:104990000342102100431021944500D40A000AF17B
65132 +:1049A00030A5FFFF03E000080000000027BDFFE086
65133 +:1049B000AFBF0018AFB10014AFB000108F4201803C
65134 +:1049C0000080802100A088210E00121B00402021C1
65135 +:1049D000A20000848E0200548FBF00188FB0001018
65136 +:1049E000AE2201088FB1001403E0000827BD0020AB
65137 +:1049F00027BDFFE03C020008AFB00010AFBF0018B9
65138 +:104A0000AFB10014034280218F5101409203008412
65139 +:104A10008E0400508E02004C14820040306600FF6D
65140 +:104A20003C0208008C4200E02403FF800222102197
65141 +:104A300000431024AF4200243C0208008C4200E0F6
65142 +:104A40009744007C92050081022210213042007FB1
65143 +:104A5000034218213C02000A0062182114A0000B36
65144 +:104A60003084FFFF2402000554C20014248205DCB8
65145 +:104A70009062011224420001A062011224020C8003
65146 +:104A8000AF4200240A00127324020005A060011244
65147 +:104A90002402000514C20009248205DC9202008170
65148 +:104AA0002C4200075040000524820A009203008136
65149 +:104AB0002402001400621004008210213044FFFF21
65150 +:104AC000A60400140E00121B022020219602003CB6
65151 +:104AD0008E03004C022020213042FFFF00021040D4
65152 +:104AE000006218210E000250AE03005C9202007DAD
65153 +:104AF00002202021344200400E000259A202007D13
65154 +:104B00008F4201F80440FFFE24020002AF5101C0B1
65155 +:104B1000A34201C43C021000AF4201F88FBF00184D
65156 +:104B20008FB100148FB0001003E0000827BD0020F3
65157 +:104B300008000ACC08000B1408000B9808000BE4CE
65158 +:104B400008000C200A0000280000000000000000FF
65159 +:104B50000000000D6370362E322E3300000000007E
65160 +:104B60000602030400000000000000000000000036
65161 +:104B70000000000000000000000000000000000035
65162 +:104B80000000000000000000000000000000002005
65163 +:104B90000000000000000000000000000000000015
65164 +:104BA0000000000000000000000000000000000005
65165 +:104BB00000000000000000000000000000000001F4
65166 +:104BC0000000002B000000000000000400030D4066
65167 +:104BD00000000000000000000000000000000000D5
65168 +:104BE00000000000000000001000000300000000B2
65169 +:104BF0000000000D0000000D3C020800244258A4F3
65170 +:104C00003C03080024635F70AC4000000043202B8D
65171 +:104C10001480FFFD244200043C1D080037BD7FFCCA
65172 +:104C200003A0F0213C100800261000A03C1C080046
65173 +:104C3000279C58A40E0001AC000000000000000DED
65174 +:104C400027BDFFE83C096018AFBF00108D2C500055
65175 +:104C5000240DFF7F24080031018D5824356A380C5B
65176 +:104C600024070C003C1A8000AD2A50003C04800A46
65177 +:104C7000AF4800083C1B8008AF4700240E00091510
65178 +:104C8000AF8400100E0008D8000000000E000825B8
65179 +:104C9000000000000E001252000000003C046016EC
65180 +:104CA0008C8500003C06FFFF3C02535300A61824ED
65181 +:104CB0001062004734867C0094C201F2A780002C69
65182 +:104CC00010400003A78000CC38581E1EA798002C67
65183 +:104CD00094C201F810400004978300CC38591E1E7E
65184 +:104CE000A79900CC978300CC2C7F006753E000018C
65185 +:104CF000240300669784002C2C82040114400002D7
65186 +:104D000000602821240404003C0760008CE904387A
65187 +:104D10002403103C3128FFFF1103001F30B9FFFFAF
65188 +:104D200057200010A38000CE24020050A38200CEA2
65189 +:104D3000939F00CE53E0000FA78500CCA78000CC46
65190 +:104D4000978500CC8FBF0010A780002CA78000346F
65191 +:104D5000A78000E63C010800AC25008003E00008C5
65192 +:104D600027BD0018939F00CE57E0FFF5A78000CC29
65193 +:104D7000A78500CC978500CC8FBF0010A784002C9E
65194 +:104D8000A7800034A78000E63C010800AC25008025
65195 +:104D900003E0000827BD0018A38000CE8CCB003CA8
65196 +:104DA000316A00011140000E0000000030A7FFFF33
65197 +:104DB00010E0FFDE240200508CCC00C831860001D8
65198 +:104DC00014C0FFDC939F00CE0A00007A2402005139
65199 +:104DD0008C8F00043C0E60000A00005D01EE302163
65200 +:104DE0008CEF0808240D5708000F740211CD000441
65201 +:104DF00030B8FFFF240500660A00007B240404008D
65202 +:104E00001700FFCC939F00CE0A00007A24020050C6
65203 +:104E10008F8600103089FFFF000939408CC30010D5
65204 +:104E20003C08005000E82025AF4300388CC5001432
65205 +:104E300027420400AF82001CAF45003CAF44003065
65206 +:104E40000000000000000000000000000000000062
65207 +:104E50000000000000000000000000000000000052
65208 +:104E60008F4B0000316A00201140FFFD0000000060
65209 +:104E700003E00008000000008F840010948A001AEC
65210 +:104E80008C8700243149FFFF000940C000E8302131
65211 +:104E9000AF46003C8C8500248F43003C00A31023C8
65212 +:104EA00018400029000000008C8B002025620001C2
65213 +:104EB0003C0D005035AC0008AF420038AF4C00301C
65214 +:104EC00000000000000000000000000000000000E2
65215 +:104ED00000000000000000000000000000000000D2
65216 +:104EE0008F4F000031EE002011C0FFFD00000000D8
65217 +:104EF0008F4A04003C080020AC8A00108F4904044B
65218 +:104F0000AC890014AF4800300000000094860018FF
65219 +:104F10009487001C00C71821A48300189485001AE8
65220 +:104F200024A20001A482001A9498001A9499001EE9
65221 +:104F3000133800030000000003E000080000000038
65222 +:104F400003E00008A480001A8C8200200A0000DC24
65223 +:104F50003C0D00500A0000CD000000003C0308009A
65224 +:104F60008C6300208F82001827BDFFE810620008C4
65225 +:104F7000AFBF00100E000104AF8300183C0308000F
65226 +:104F80008C63002024040001106400048F89001049
65227 +:104F90008FBF001003E0000827BD00188FBF00106E
65228 +:104FA0003C076012A520000A9528000A34E500108D
65229 +:104FB00027BD00183106FFFF03E00008ACA60090F3
65230 +:104FC0003C0208008C42002027BDFFC8AFBF003460
65231 +:104FD000AFBE0030AFB7002CAFB60028AFB500248D
65232 +:104FE000AFB40020AFB3001CAFB20018AFB10014D3
65233 +:104FF00010400050AFB000108F840010948600065F
65234 +:105000009483000A00C3282330B6FFFF12C0004A71
65235 +:105010008FBF003494890018948A000A012A402323
65236 +:105020003102FFFF02C2382B14E0000202C020212F
65237 +:10503000004020212C8C0005158000020080A0215A
65238 +:10504000241400040E0000B3028020218F8700107A
65239 +:1050500002809821AF80001494ED000A028088211C
65240 +:105060001280004E31B2FFFF3C1770003C1540002B
65241 +:105070003C1E60008F8F001C8DEE000001D71824AD
65242 +:10508000507500500220202102A3802B160000350D
65243 +:105090003C182000507800470220202124100001F5
65244 +:1050A0008F83001414600039029158230230F823D2
65245 +:1050B0000250C82133F1FFFF1620FFEE3332FFFF0D
65246 +:1050C0008F8700103C110020AF510030000000001D
65247 +:1050D00094E6000A3C1E601237D5001002662821B3
65248 +:1050E000A4E5000A94E2000A94F2000A94F400187D
65249 +:1050F0003057FFFF1292003BAEB700908CED0014CA
65250 +:105100008CE400100013714001AE4021000E5FC31B
65251 +:10511000010E502B008B4821012A1821ACE8001405
65252 +:10512000ACE3001002D3382330F6FFFF16C0FFB9FE
65253 +:105130008F8400108FBF00348FBE00308FB7002CDB
65254 +:105140008FB600288FB500248FB400208FB3001CC9
65255 +:105150008FB200188FB100148FB0001003E0000868
65256 +:1051600027BD0038107E001B000000001477FFCC24
65257 +:10517000241000010E00159B000000008F83001416
65258 +:105180001060FFCB0230F823029158238F87001064
65259 +:10519000017020210A0001973093FFFF8F830014D4
65260 +:1051A0001460FFCB3C110020AF5100300A000163B6
65261 +:1051B000000000000E00077D024028210A00015770
65262 +:1051C000004080210E00033A024028210A000157C6
65263 +:1051D000004080210E001463022020210A000157A4
65264 +:1051E000004080210E0000CD000000000A0001797F
65265 +:1051F00002D3382327BDFFE8AFB00010AFBF0014C3
65266 +:105200000E00003F000000003C028000345000709F
65267 +:105210000A0001BA8E0600008F4F000039EE00012F
65268 +:1052200031C20001104000248F8600A88E070000C4
65269 +:105230003C0C08008D8C003C3C0908008D2900388E
65270 +:1052400000E66823018D28210000502100AD302B9D
65271 +:10525000012A4021010620213C010800AC25003C28
65272 +:10526000AF8700A83C010800AC2400380E000106FE
65273 +:10527000000000003C0308008C6300701060FFE633
65274 +:10528000006020213C0508008CA500683C06080051
65275 +:105290008CC6006C0E00152A000000003C010800BE
65276 +:1052A000AC2000708F4F000039EE000131C20001C8
65277 +:1052B0001440FFDE8F8600A88E0A00008F8B00A8A6
65278 +:1052C0003C0508008CA5003C3C0408008C84003898
65279 +:1052D000014B482300A938210082182100E9402B06
65280 +:1052E000006810213C010800AC27003C3C0108008C
65281 +:1052F000AC2200388F5F01002419FF0024180C0035
65282 +:1053000003F9202410980012AF840000AF4400205D
65283 +:10531000936D0000240C002031A600FF10CC001279
65284 +:10532000240E005010CE00043C194000AF59013843
65285 +:105330000A0001B3000000000E0011C800000000C8
65286 +:105340003C194000AF5901380A0001B300000000C9
65287 +:105350000E00011F000000003C194000AF59013849
65288 +:105360000A0001B3000000008F58010000802821CE
65289 +:10537000330F00FF01E020210E0002F1AF8F000487
65290 +:105380003C194000AF5901380A0001B30000000089
65291 +:1053900000A4102B2403000110400009000030215C
65292 +:1053A0000005284000A4102B04A0000300031840AF
65293 +:1053B0005440FFFC000528405060000A0004182BF0
65294 +:1053C0000085382B54E000040003184200C3302548
65295 +:1053D00000852023000318421460FFF900052842CD
65296 +:1053E0000004182B03E0000800C310218F4201B80D
65297 +:1053F0000440FFFE00000000AF4401803C031000A9
65298 +:1054000024040040AF450184A3440188A3460189D8
65299 +:10541000A747018A03E00008AF4301B83084FFFFCB
65300 +:105420000080382130A5FFFF000020210A00022A59
65301 +:10543000240600803087FFFF8CA40000240600387B
65302 +:105440000A00022A000028218F8300388F8600304E
65303 +:105450001066000B008040213C07080024E75A1822
65304 +:10546000000328C000A710218C4400002463000121
65305 +:10547000108800053063000F5466FFFA000328C04F
65306 +:1054800003E00008000010213C07080024E75A1C34
65307 +:1054900000A7302103E000088CC200003C0390000C
65308 +:1054A0003462000100822025AF4400208F45002097
65309 +:1054B00004A0FFFE0000000003E000080000000060
65310 +:1054C0003C038000346200010082202503E00008D4
65311 +:1054D000AF44002027BDFFE0AFB100143091FFFFC3
65312 +:1054E000AFB00010AFBF00181220001300A0802141
65313 +:1054F0008CA2000024040002240601401040000F8A
65314 +:10550000004028210E000C5C00000000000010216B
65315 +:10551000AE000000022038218FBF00188FB10014A8
65316 +:105520008FB0001000402021000028210000302111
65317 +:105530000A00022A27BD00208CA200000220382188
65318 +:105540008FBF00188FB100148FB0001000402021D1
65319 +:1055500000002821000030210A00022A27BD002077
65320 +:1055600000A010213087FFFF8CA500048C440000B0
65321 +:105570000A00022A2406000627BDFFE0AFB0001093
65322 +:10558000AFBF0018AFB100149363003E00808021CC
65323 +:105590000080282130620040000020211040000FD0
65324 +:1055A0008E1100000E000851022020219367000098
65325 +:1055B0002404005030E500FF50A400128E0F0000BC
65326 +:1055C000022020218FBF00188FB100148FB000106F
65327 +:1055D000A762013C0A00091127BD00200E000287C6
65328 +:1055E000000000000E0008510220202193670000F7
65329 +:1055F0002404005030E500FF14A4FFF20220202113
65330 +:105600008E0F00003C1008008E1000503C0D000C66
65331 +:10561000240BFF8001F05021314E007F01DA602120
65332 +:10562000018D4021014B4824AF4900280220202150
65333 +:105630008FBF00188FB100148FB00010A50200D6E4
65334 +:1056400027BD00200A000911AF8800D027BDFFE068
65335 +:10565000AFBF0018AFB10014AFB0001093660001E7
65336 +:10566000008080210E00025630D1000493640005B2
65337 +:10567000001029C2A765000034830040A363000521
65338 +:105680000E00025F020020210E00091302002021FB
65339 +:1056900024020001AF62000C02002821A762001062
65340 +:1056A00024040002A762001224060140A76200142D
65341 +:1056B0000E000C5CA76200161620000F8FBF0018AA
65342 +:1056C000978C00343C0B08008D6B00782588FFFF19
65343 +:1056D0003109FFFF256A0001012A382B10E000067E
65344 +:1056E000A78800343C0F6006240E001635ED00102C
65345 +:1056F000ADAE00508FBF00188FB100148FB00010F6
65346 +:1057000003E0000827BD002027BDFFE0AFB1001473
65347 +:10571000AFBF0018AFB0001000A088211080000AB1
65348 +:105720003C03600024020080108200120000000090
65349 +:105730000000000D8FBF00188FB100148FB0001053
65350 +:1057400003E0000827BD00208C682BF80500FFFE51
65351 +:1057500000000000AC712BC08FBF00188FB1001487
65352 +:105760008FB000103C09100027BD002003E00008A6
65353 +:10577000AC692BF80E00025600A0202193650005AD
65354 +:10578000022020210E00025F30B000FF2403003E03
65355 +:105790001603FFE7000000008F4401780480FFFE3D
65356 +:1057A000240700073C061000AF51014002202021D1
65357 +:1057B000A34701448FBF00188FB100148FB00010B1
65358 +:1057C000AF4601780A0002C227BD002027BDFFE8CE
65359 +:1057D000AFBF0014AFB000108F50002000000000D9
65360 +:1057E0000E000913AF440020AF5000208FBF0014FB
65361 +:1057F0008FB0001003E0000827BD00183084FFFFC1
65362 +:10580000008038212406003500A020210A00022A49
65363 +:10581000000028213084FFFF008038212406003654
65364 +:1058200000A020210A00022A0000282127BDFFD065
65365 +:10583000AFB3001C3093FFFFAFB50024AFB2001828
65366 +:10584000AFBF0028AFB40020AFB10014AFB000105C
65367 +:1058500030B5FFFF12600027000090218F90001CE0
65368 +:105860008E0300003C0680002402004000033E023C
65369 +:1058700000032C0230E4007F006688241482001D9F
65370 +:1058800030A500FF8F8300282C68000A510000100B
65371 +:105890008F910014000358803C0C0800258C56940E
65372 +:1058A000016C50218D49000001200008000000001B
65373 +:1058B00002B210213045FFFF0E000236240400849E
65374 +:1058C000162000028F90001CAF8000288F910014DA
65375 +:1058D000260C002026430001018080213072FFFF4A
65376 +:1058E00016200004AF8C001C0253502B1540FFDC27
65377 +:1058F00000000000024010218FBF00288FB5002457
65378 +:105900008FB400208FB3001C8FB200188FB1001429
65379 +:105910008FB0001003E0000827BD0030240E0034D3
65380 +:1059200014AE00F9000000009203000E241F168040
65381 +:105930003C07000CA36300219202000D0347C8211D
65382 +:105940003C066000A3620020961100123C0A7FFF13
65383 +:10595000354CFFFFA771003C960B00102403000597
65384 +:105960003168FFFFAF6800848E05001CAF5F002820
65385 +:105970008F3800008CC4444803057826008F3021FE
65386 +:10598000AF66004C8F69004C24CE00013C057F00BF
65387 +:10599000AF6900508F740050AF740054AF66007050
65388 +:1059A000AF6E00588F6D005824140050AF6D005C2E
65389 +:1059B000A3600023AF6C0064A36300378E02001461
65390 +:1059C000AF6200488F710048AF7100248E0B001841
65391 +:1059D000AF6B006C9208000CA3680036937F003E0A
65392 +:1059E00037F90020A379003E8F78007403058024E6
65393 +:1059F000360F4000AF6F007493640000308900FFE1
65394 +:105A0000513402452404FF803C04080024845A9841
65395 +:105A10000E00028D000000003C1008008E105A9805
65396 +:105A20000E00025602002021240600042407000173
65397 +:105A3000A366007D020020210E00025FA36700051F
65398 +:105A40008F5F017807E0FFFE240B0002AF5001409A
65399 +:105A5000A34B01448F90001C3C081000AF48017814
65400 +:105A60000A000362AF8000282CAD003751A0FF98D8
65401 +:105A70008F9100140005A0803C180800271856BC20
65402 +:105A8000029878218DEE000001C00008000000009F
65403 +:105A90002418000614B80011000000003C0808009B
65404 +:105AA0008D085A9824040005AF4800208E1F001866
65405 +:105AB000AF7F00188F79004CAF79001C8F650050C4
65406 +:105AC000122000C0AF6500700A000362AF84002896
65407 +:105AD0002406000710A60083240300063C050800E6
65408 +:105AE00024A55A980E000264240400818F90001CA3
65409 +:105AF0000011102B0A000362AF8200282407000463
65410 +:105B000014A7FFF6240500503C1808008F185A9877
65411 +:105B1000AF5800208E0F0008AF6F00408E090008BC
65412 +:105B2000AF6900448E14000CAF7400488E0E001054
65413 +:105B3000AF6E004C8E0D0010AF6D00848E0A001405
65414 +:105B4000AF6A00508E0C0018AF6C00548E04001C1D
65415 +:105B5000AF64005893630000306B00FF116501D8FB
65416 +:105B6000000000008F7400488F6900400289702394
65417 +:105B700005C000042404008C1620FFDE240200036C
65418 +:105B8000240400823C05080024A55A980E000287D0
65419 +:105B9000000000008F90001C000010210A0003622A
65420 +:105BA000AF820028240F000514AFFFCC240520008D
65421 +:105BB0003C0708008CE75A98AF4700208E06000487
65422 +:105BC000AF66005C9208000824100008A36800215A
65423 +:105BD0008F9F001C93F90009A37900208F86001C79
65424 +:105BE00090D8000A330400FF10900011000000005C
65425 +:105BF0002885000914A0006924020002240A00205C
65426 +:105C0000108A000B34058000288D002115A00008A3
65427 +:105C100024054000240E0040108E00053C050001C4
65428 +:105C200024140080109400023C050002240540006A
65429 +:105C30008F7800743C19FF00031980240205782531
65430 +:105C4000AF6F007490C4000BA36400818F84001CAC
65431 +:105C50009489000C11200192000000009490000C27
65432 +:105C60002406FFBF24050004A770003C908F000E9F
65433 +:105C7000A36F003E8F84001C9089000FA369003F32
65434 +:105C80008F8B001C8D6E00108F54007401D468231C
65435 +:105C9000AF6D00608D6A0014AF6A0064956C0018E7
65436 +:105CA000A76C00689563001AA763006A8D62001CE8
65437 +:105CB000AF62006C9167000EA367003E9368003EE0
65438 +:105CC0000106F8241220014BA37F003E8F90001C98
65439 +:105CD0000A000362AF8500282407002214A7FF7F73
65440 +:105CE000240300073C0B08008D6B5A981220000C0F
65441 +:105CF000AF4B00200A000362AF830028240C00335E
65442 +:105D000010AC0014240A00283C05080024A55A9869
65443 +:105D10000E00023C240400810A0003EB8F90001C5B
65444 +:105D20003C04080024845A980E00028D00000000F4
65445 +:105D30009363000024110050306200FF10510135C0
65446 +:105D4000000000008F90001C000018210A00036270
65447 +:105D5000AF8300283C0D08008DAD5A9824040081C3
65448 +:105D6000AF4D00203C05080024A55A980E00023CC7
65449 +:105D7000A36A00348F90001C240200090A00036209
65450 +:105D8000AF82002802B288213225FFFF0E000236C2
65451 +:105D9000240400840A0003628F90001C1082FFA478
65452 +:105DA00024050400288B000311600170240C0004FA
65453 +:105DB000240300015483FF9E240540000A00043B95
65454 +:105DC000240501003C04080024845A988F62004C8A
65455 +:105DD0000E00028D8F6300508F90001C0000202168
65456 +:105DE0000A000362AF8400288E1000042404008A95
65457 +:105DF000AF50002093790005333800021700015F8F
65458 +:105E0000020028219368002302002821311F00206E
65459 +:105E100017E0015A2404008D9367003F2406001206
65460 +:105E200030E200FF10460155240400810E000256A6
65461 +:105E30000200202193630023240500040200202196
65462 +:105E4000346B0042A36B00230E00025FA365007D4C
65463 +:105E50008F4401780480FFFE240A0002AF50014005
65464 +:105E6000A34A01448F90001C3C0C1000AF4C0178F9
65465 +:105E70000A0003EC0011102B8E1000042404008A89
65466 +:105E8000AF500020936E000531CD000215A0001622
65467 +:105E900002002821936F003F2414000402002821EF
65468 +:105EA00031E900FF11340010240400810E00025675
65469 +:105EB000020020219362002324080012241FFFFE09
65470 +:105EC00034460020A3660023A368003F93790005B1
65471 +:105ED00002002021033FC0240E00025FA3780005CA
65472 +:105EE00002002821000020210E00033400000000E1
65473 +:105EF0000A0003EB8F90001C8E1000043C03000886
65474 +:105F00000343A021AF500020928B000024050050D5
65475 +:105F1000316400FF10850161240700880200202100
65476 +:105F2000000028210E00022A2406000E928D000097
65477 +:105F3000240EFF800200282101AE8025A2900000DF
65478 +:105F4000240400040E000C5C240600300A0003EB5D
65479 +:105F50008F90001C8E0800043C14080026945A9868
65480 +:105F60003C010800AC285A98AF480020921F00035B
65481 +:105F700033F9000413200002240200122402000658
65482 +:105F8000A362003F920B001B2404FFC03165003F59
65483 +:105F900000A43825A367003E9206000330C200012A
65484 +:105FA00014400132000000008E020008AE8200089A
65485 +:105FB0003C0208008C425AA010400131000249C244
65486 +:105FC000A76900088E14000C240C0001240300149F
65487 +:105FD000AF74002C8E0E0010AF6E0030960D0016C0
65488 +:105FE000A76D0038960A0014A76A003AAF6C000C3F
65489 +:105FF000A76C0010A76C0012A76C0014A76C001609
65490 +:1060000012200136A3630034920F000331F0000226
65491 +:106010002E1100018F90001C262200080A00036246
65492 +:10602000AF8200288E0400043C0E0008034E30218D
65493 +:10603000AF4400208E05000890CD0000240C0050D5
65494 +:1060400031AA00FF114C00862407008824060009AD
65495 +:106050000E00022A000000000A0003EB8F90001CD3
65496 +:106060008E04001C0E00024100000000104000F4ED
65497 +:10607000004050218F89001C240700890140202105
65498 +:106080008D25001C240600010E00022A00000000DD
65499 +:106090000A0003EB8F90001C960D00023C140800D0
65500 +:1060A00026945A9831AA0004514000B83C10600070
65501 +:1060B0008E0E001C3C010800AC2E5A98AF4E0020FA
65502 +:1060C000920700102408001430E200FF144800D6A4
65503 +:1060D00000000000960B00023163000114600165AE
65504 +:1060E000000000008E020004AE8200083C1408008C
65505 +:1060F0008E945AA01280015B000000008F7400741F
65506 +:106100003C0380002404000102835825AF6B007417
65507 +:10611000A3600005AF64000C3C0708008CE75AA0A0
65508 +:106120008F86001CA7640010000711C2A76400122C
65509 +:10613000A7640014A7640016A76200088CC80008B2
65510 +:1061400024040002AF68002C8CC5000CAF65003041
65511 +:1061500090DF0010A37F00348F99001C9330001152
65512 +:10616000A37000358F98001C930F0012A36F0036A8
65513 +:106170008F89001C912E0013A36E00378F90001C96
65514 +:10618000960D0014A76D0038960A0016A76A003A0B
65515 +:106190008E0C0018AF6C00245620FDCCAF84002874
65516 +:1061A0003C05080024A55A980E0002640000202136
65517 +:1061B0008F90001C0A0004A7000020218E1000040C
65518 +:1061C00024070081AF500020936900233134001070
65519 +:1061D000128000170000000002002021000028218A
65520 +:1061E0002406001F0E00022A000000000A0003EB34
65521 +:1061F0008F90001C3C05080024A55A980E000287C9
65522 +:10620000240400828F90001C000028210A000362F1
65523 +:10621000AF8500283C0408008C845A980E0014E8CE
65524 +:10622000000000008F90001C0A000482000018216A
65525 +:106230000E00025602002021937800230200202144
65526 +:10624000370F00100E00025FA36F002300003821FB
65527 +:1062500002002021000028210A0005A82406001FB2
65528 +:10626000920F000C31E90001112000030000000032
65529 +:106270009618000EA4D8002C921F000C33F90002CF
65530 +:1062800013200005000038218E0200149608001229
65531 +:10629000ACC2001CA4C8001A0A0005432406000969
65532 +:1062A0003C05080024A55A980E0002872404008BA0
65533 +:1062B0008F90001C0011282B0A000362AF85002874
65534 +:1062C000AF6000843C0A08008D4A5A983C0D0800D3
65535 +:1062D0008DAD0050240CFF803C02000C014D1821B4
65536 +:1062E000006C2024AF4400288E070014306B007F20
65537 +:1062F000017A282100A2C821AF2700D88E060014F9
65538 +:10630000AF9900D0AF2600DC8E080010251FFFFEDD
65539 +:106310000A000408AF3F01083C0508008CA55A9804
65540 +:106320003C1908008F39005024CCFFFE00B9C02171
65541 +:1063300003047824AF4F00283C1408008E945A9828
65542 +:106340003C0908008D2900500289702131CD007F61
65543 +:1063500001BA502101478021AE0600D8AF9000D08D
65544 +:10636000AE0000DC0A0003B1AE0C0108548CFE3014
65545 +:10637000240540000A00043B240510000E00032EF3
65546 +:10638000000000000A0003EB8F90001C8E0F442CCD
65547 +:106390003C186C62370979703C010800AC205A98AF
65548 +:1063A00015E9000824050140979F00349786002CCA
65549 +:1063B0000280282103E6C82B132000112404009238
65550 +:1063C000240501400E000C7A240400023C01080060
65551 +:1063D000AC225A98AF4200203C0508008CA55A9880
65552 +:1063E00010A00005240400830E00084500000000F2
65553 +:1063F00010400009240400833C05080024A55A9895
65554 +:106400000E000264000000008F90001C0011202B81
65555 +:106410000A000362AF8400280E0008490000000053
65556 +:106420000A00055F8F90001C0E00084D0000000060
65557 +:106430003C05080024A55A980A00062F2404008B66
65558 +:10644000240400040E000C7A240500301440002AB5
65559 +:10645000004050218F89001C240700830140202127
65560 +:106460008D25001C0A000551240600018E04000839
65561 +:106470000E000241000000000A00051BAE82000869
65562 +:106480003C05080024A55A980E00023C240400870D
65563 +:106490008F90001C0A0005360011102B8F830038E6
65564 +:1064A0008F8600301066FE9D000038213C070800F2
65565 +:1064B00024E75A1C000320C0008728218CAC000070
65566 +:1064C00011900061246A00013143000F5466FFFA05
65567 +:1064D000000320C00A0004F6000038213C05080033
65568 +:1064E00024A55A980E000287240400828F90001C75
65569 +:1064F0000A000536000010213C0B0008034B202148
65570 +:106500002403005024070001AF420020A0830000B4
65571 +:10651000A08700018F82001C90480004A08800180A
65572 +:106520008F85001C90A60005A08600198F9F001C77
65573 +:1065300093F90006A099001A8F90001C921800078A
65574 +:10654000A098001B8F94001C928F0008A08F001C45
65575 +:106550008F89001C912E0009A08E001D8F8D001CBC
65576 +:1065600091AC000AA08C001E8F8B001C3C0C080014
65577 +:10657000258C5A1C9163000B3C0B0800256B5A18A4
65578 +:10658000A083001F8F87001C90E8000CA0880020CB
65579 +:106590008F82001C9045000D24024646A0850021F4
65580 +:1065A0008F86001C90DF000EA09F00228F99001C98
65581 +:1065B0009330000FA09000238F98001C93140010BC
65582 +:1065C000A09400248F8F001C91E90011A089002560
65583 +:1065D0008F89001C8F8E00308F900038952D00140D
65584 +:1065E000000E18C025C80001A48D002895270016AC
65585 +:1065F000006C3021006BC821A487002A9525001863
65586 +:106600003108000FA485002CA482002E8D3F001CB1
65587 +:10661000ACCA0000AF88003011100006AF3F000088
65588 +:10662000000038218D25001C014020210A00055161
65589 +:1066300024060001250C00013184000F00003821E0
65590 +:106640000A0006B8AF8400383C07080024E75A184F
65591 +:106650000087302100003821ACA000000A0004F6B9
65592 +:10666000ACC000003C05080024A55A980A00062F7B
65593 +:10667000240400878E0400040E0002410000000084
65594 +:106680000A00056AAE8200083084FFFF30C600FFB2
65595 +:106690008F4201B80440FFFE00064400010430258B
65596 +:1066A0003C07200000C720253C031000AF400180BC
65597 +:1066B000AF450184AF44018803E00008AF4301B84F
65598 +:1066C00027BDFFE8AFB00010AFBF00143C0760006B
65599 +:1066D000240600021080000600A080210010102B6C
65600 +:1066E0008FBF00148FB0001003E0000827BD001812
65601 +:1066F0003C09600EAD2000348CE5201C8F82001C0C
65602 +:106700002408FFFC00A81824ACE3201C0E0006D1CE
65603 +:106710008C45000C0010102B8FBF00148FB00010A0
65604 +:1067200003E0000827BD00183C02600E344701005A
65605 +:1067300024090018274A040000000000000000009F
65606 +:10674000000000003C06005034C30200AF44003893
65607 +:10675000AF45003CAF430030014018218F4B000093
65608 +:10676000316800201100FFFD2406007F2408FFFF90
65609 +:106770008C6C000024C6FFFF24630004ACEC000016
65610 +:1067800014C8FFFB24E70004000000000000000024
65611 +:10679000000000003C0F0020AF4F00300000000060
65612 +:1067A00024AD020001A5702B2529FFFF008E2021BA
65613 +:1067B0001520FFE101A0282103E0000800000000EF
65614 +:1067C00027BDFFE0AFB10014AFBF0018AFB000109D
65615 +:1067D0003C05600E8CA20034008088211440000625
65616 +:1067E0003C0460008C87201C2408FFFC00E8302457
65617 +:1067F00034C30001AC83201C8F8B001C24090001D2
65618 +:10680000ACA90034956900028D6500148D70000CF0
65619 +:106810002D2400818D6700048D660008108000071C
65620 +:106820008D6A00102D2C00041580000E30CE00075C
65621 +:10683000312D000311A0000B000000002404008B88
65622 +:10684000020028210E0006D1240600030011102B9F
65623 +:106850008FBF00188FB100148FB0001003E0000844
65624 +:1068600027BD002015C0FFF62404008B3C03002048
65625 +:10687000AF4300300000000024020001AF8200148A
65626 +:106880000000000000000000000000003C1F01505C
65627 +:10689000013FC825253800033C0F600EAF47003884
65628 +:1068A00000181882AF46003C35E8003CAF59003074
65629 +:1068B000274704008F4400003086002010C0FFFDF1
65630 +:1068C00000000000106000082466FFFF2403FFFFA3
65631 +:1068D0008CEB000024C6FFFF24E70004AD0B000092
65632 +:1068E00014C3FFFB250800043C08600EAD09003806
65633 +:1068F0000000000000000000000000003C07002035
65634 +:10690000AF470030000000000E0006F901402021D2
65635 +:1069100002002821000020210E0006D124060003D9
65636 +:106920000011102B8FBF00188FB100148FB0001012
65637 +:1069300003E0000827BD002027BDFFE0AFB200182C
65638 +:106940003092FFFFAFB10014AFBF001CAFB000101A
65639 +:106950001640000D000088210A0007AA022010211D
65640 +:1069600024050001508500278CE5000C0000000D77
65641 +:10697000262300013071FFFF24E200200232382B71
65642 +:1069800010E00019AF82001C8F8200141440001622
65643 +:106990008F87001C3C0670003C0320008CE5000043
65644 +:1069A00000A62024148300108F84003C00054402BC
65645 +:1069B0003C09800000A980241480FFE9310600FF13
65646 +:1069C0002CCA00095140FFEB262300010006688015
65647 +:1069D0003C0E080025CE579801AE60218D8B00003B
65648 +:1069E0000160000800000000022010218FBF001C81
65649 +:1069F0008FB200188FB100148FB0001003E00008B0
65650 +:106A000027BD00200E0006D1240400841600FFD804
65651 +:106A10008F87001C0A00078BAF80003C90EF0002BC
65652 +:106A200000002021240600090E0006D1000F2E00D0
65653 +:106A30008F87001C0010102B0A00078BAF82003CD0
65654 +:106A4000020028210E0006DF240400018F87001CAD
65655 +:106A50000A00078BAF82003C020028210E0006DFEF
65656 +:106A6000000020210A0007C38F87001C0E00071FAB
65657 +:106A7000020020210A0007C38F87001C30B0FFFFEF
65658 +:106A8000001019C08F5801B80700FFFE3C1F2004FA
65659 +:106A90003C191000AF430180AF400184AF5F018813
65660 +:106AA000AF5901B80A00078C262300013082FFFF8E
65661 +:106AB00014400003000018210004240224030010E5
65662 +:106AC000308500FF14A000053087000F2466000801
65663 +:106AD0000004220230C300FF3087000F14E00005DD
65664 +:106AE000308900032468000400042102310300FF00
65665 +:106AF0003089000315200005388B0001246A00024C
65666 +:106B000000042082314300FF388B00013164000112
65667 +:106B100010800002246C0001318300FF03E00008B4
65668 +:106B200000601021308BFFFF000B394230E600FF80
65669 +:106B30003C09080025295998000640800109602178
65670 +:106B40008D8700003164001F240A0001008A1804A8
65671 +:106B500030A500FF00E3202514A000020003102749
65672 +:106B600000E22024240F000100CF700401096821F5
65673 +:106B7000000E282714800005ADA400008F86000CAD
65674 +:106B800000A6102403E00008AF82000C8F88000CE0
65675 +:106B900001C8102503E00008AF82000C3C06001F6E
65676 +:106BA0003C0360003084FFFF34C5FF8024020020D6
65677 +:106BB000AC602008AC60200CAC602010AC652014E8
65678 +:106BC000AC642018AC62200000000000000000004F
65679 +:106BD00003E000080000000027BDFFE82402FFFFDB
65680 +:106BE000AFBF0010AF82000C000020213C0608005F
65681 +:106BF00024C659982405FFFF248900010004408021
65682 +:106C00003124FFFF010618212C87002014E0FFFA31
65683 +:106C1000AC6500000E0008160000202124020001CF
65684 +:106C20003C04600024050020AC822018AC852000C4
65685 +:106C3000000000000000000000000000244A0001E5
65686 +:106C40003142FFFF2C46040014C0FFF78FBF001035
65687 +:106C500003E0000827BD00188F8300082C620400A1
65688 +:106C600003E00008384200018F830008246200011D
65689 +:106C700003E00008AF8200088F8300082462FFFF52
65690 +:106C800003E00008AF82000827BDFFE0AFB10014A9
65691 +:106C9000AFBF0018AFB000108F6B00303C06600033
65692 +:106CA00000808821ACCB20088F6A002C3C02800039
65693 +:106CB00024030008ACCA200C9769003A9768003892
65694 +:106CC00000092C003107FFFF00A72025ACC42010CD
65695 +:106CD000ACC22014ACC32000000000000000000083
65696 +:106CE000000000003C0360008C6D200031AC000807
65697 +:106CF0001580FFF9000000008C6E201405C00020F4
65698 +:106D0000000000000E0007DA8F84000C00024080B3
65699 +:106D10003C09080025295998010938218CE4000014
65700 +:106D20000E0007DA00028140020220213090FFFFAE
65701 +:106D3000020020210E0007F8000028213C0C8000F2
65702 +:106D4000022C58253210FFFF3C116000240A00205D
65703 +:106D5000AE2B2014AE302018AE2A20000000000018
65704 +:106D60000000000000000000020010218FBF00188A
65705 +:106D70008FB100148FB0001003E0000827BD002081
65706 +:106D80008C6620143C02001F3443FF803C1FFFE848
65707 +:106D900000C3C02437F9080003198021001079C20C
65708 +:106DA0003C0C8000022C582531F0FFFF3C116000A4
65709 +:106DB000240A0020AE2B2014AE302018AE2A20006A
65710 +:106DC0000000000000000000000000000200102190
65711 +:106DD0008FBF00188FB100148FB0001003E00008BF
65712 +:106DE00027BD002027BDFFE8AFB000103402FFFF31
65713 +:106DF0003090FFFFAFBF00141202000602002021F6
65714 +:106E00000E00081600000000020020210E0007F806
65715 +:106E1000240500018F8400088FBF00148FB000107C
65716 +:106E20002483FFFF27BD001803E00008AF8300089C
65717 +:106E3000000439C230E6003F00043B42000718401E
65718 +:106E4000240210002CC4002024C8FFE0AF42002C14
65719 +:106E5000246300011480000330A900FF00071840DC
65720 +:106E6000310600FF0003608024080001019A5821C8
65721 +:106E70003C0A000E00C82804016A382111200005D0
65722 +:106E8000000530278CE900000125302503E00008CB
65723 +:106E9000ACE600008CEE000001C6682403E00008A8
65724 +:106EA000ACED000027BDFFE8AFBF0014AFB000108D
65725 +:106EB0003C0460008C8508083403F00030A2F00028
65726 +:106EC00050430006240200018C8708083404E000C7
65727 +:106ED00030E6F00010C4001E24020002AF82004021
65728 +:106EE0003C1060003C0A0200AE0A0814240910009D
65729 +:106EF0003C08000E8E03440003482021AF49002CBB
65730 +:106F0000240501200E000CC0000030218F830040BA
65731 +:106F1000106000043C021691240B0001106B000E5F
65732 +:106F20003C023D2C344F0090AE0F44088FBF00143C
65733 +:106F30008FB000103C0C6000240E10003C0D0200CD
65734 +:106F400027BD0018AD8E442003E00008AD8D081069
65735 +:106F50000A0008E7AF8000403C0218DA344F009086
65736 +:106F6000AE0F44088FBF00148FB000103C0C6000BF
65737 +:106F7000240E10003C0D020027BD0018AD8E4420E9
65738 +:106F800003E00008AD8D08100A0008BB24050001CD
65739 +:106F90000A0008BB000028213C08080025085DA461
65740 +:106FA0002404FFFF010018212402001E2442FFFFD9
65741 +:106FB000AC6400000441FFFD246300043C070800AA
65742 +:106FC00024E75E208CE5FFFC2404001C240600015D
65743 +:106FD000308A001F0146480424840001000910275C
65744 +:106FE0002C8300201460FFFA00A22824ACE5FFFCEB
65745 +:106FF0003C05666634A4616E3C06080024C65EE06B
65746 +:10700000AF840058AF88009C2404FFFF00C0182103
65747 +:107010002402001F2442FFFFAC6400000441FFFD76
65748 +:10702000246300043C0766663C05080024A55EA0B6
65749 +:10703000AF86004834E6616EAF8600982404FFFFF7
65750 +:1070400000A018212402000F2442FFFFAC640000BE
65751 +:107050000441FFFD246300043C0B66663C06080007
65752 +:1070600024C65E203568616EAF8500A4AF880070CD
65753 +:107070002404FFFF00C018212402001F2442FFFF48
65754 +:10708000AC6400000441FFFD246300043C0D66660F
65755 +:107090003C0A0800254A5F6035AC616EAF860090FF
65756 +:1070A000AF8C005C2404FFFF014018212402000380
65757 +:1070B0002442FFFFAC6400000441FFFD2463000490
65758 +:1070C0003C09080025295F708D27FFFC2404000679
65759 +:1070D000240500013099001F0325C0042484000109
65760 +:1070E000001878272C8E002015C0FFFA00EF3824F6
65761 +:1070F000AD27FFFC3C09666624030400240403DC7E
65762 +:1071000024050200240600663522616E3C08080052
65763 +:1071100025085AA4AF820074AF830044AF83006C8B
65764 +:10712000AF830050AF830084AF8A008CAF840064CB
65765 +:10713000AF85004CAF860054AF840078AF85006007
65766 +:10714000AF86008001001821240200022442FFFFC4
65767 +:10715000AC6000000441FFFD24630004240400032C
65768 +:107160002403000C3C0A0800254A5AB0AF8A006884
65769 +:107170000A00098E2405FFFF000418802484000102
65770 +:10718000006858212C8700C014E0FFFBAD650000AB
65771 +:107190003C0E666635CD616E240C17A024081800DD
65772 +:1071A000AF8D0088AF8C009403E00008AF88007CAE
65773 +:1071B0002484007F000421C200004021000030210F
65774 +:1071C00000003821000028210A0009A5AF8400A092
65775 +:1071D0001060000624E7000100C4302124A500014E
65776 +:1071E0002CC20BF51440FFFA2CA300663C090800E2
65777 +:1071F00025295F6001201821240200032442FFFF9B
65778 +:10720000AC6000000441FFFD2463000410E0001A9C
65779 +:1072100024E3FFFF0003294210A0000A0000202100
65780 +:107220002406FFFF3C03080024635F602484000100
65781 +:107230000085502BAC660000250800011540FFFBBF
65782 +:107240002463000430E2001F10400008000868803A
65783 +:10725000240C0001004C38040008588001692821E2
65784 +:1072600024E6FFFF03E00008ACA6000001A94021CE
65785 +:107270002409FFFFAD09000003E000080000000042
65786 +:10728000AF4400283C04000C034420210005288260
65787 +:107290000A000CC000003021000421803C03600083
65788 +:1072A000AC6410080000000000052980AC65100CDB
65789 +:1072B0000000000003E000088C62100C27BDFFE80E
65790 +:1072C0000080282124040038AFBF00140E0009D527
65791 +:1072D000AFB0001024040E00AF4400283C10000C96
65792 +:1072E00003502021240500100E000CC000003021A6
65793 +:1072F00003501021AC400000AC40000424040038CE
65794 +:107300008FBF00148FB0001024053FFF27BD001869
65795 +:107310000A0009D58C430000000421803C03600072
65796 +:10732000AC641008000000008C62100C03E0000840
65797 +:107330000002118227BDFFC8AFB400208F940068FF
65798 +:10734000AFBE0030AFB7002CAFB600280000B821A8
65799 +:107350000080B021241E00C0AFBF0034AFB50024B0
65800 +:10736000AFB3001CAFB20018AFB10014AFB0001043
65801 +:107370000A000A12AFA5003C504000018F9400683B
65802 +:1073800027DEFFFF13C00028269400048E92000021
65803 +:107390003C03080024635DA01240FFF70283102B1A
65804 +:1073A0003C04080024845AA4028410230002A8C0CC
65805 +:1073B000000098210A000A212411000100118840D0
65806 +:1073C000122000260000000002B380210251282470
65807 +:1073D0000200202110A0FFF9267300010E0009DE33
65808 +:1073E000000000000016684032EC000101AC2021D2
65809 +:1073F0000E0009D5020028218F89009426F700018C
65810 +:107400008FA6003C3AEB0001316A00012528FFFFFE
65811 +:107410000011382702CAB021AF88009416E6FFE7B2
65812 +:1074200002479024AE92000002E010218FBF00348A
65813 +:107430008FBE00308FB7002C8FB600288FB5002488
65814 +:107440008FB400208FB3001C8FB200188FB10014CE
65815 +:107450008FB0001003E0000827BD00383C0E080084
65816 +:1074600025CE5DA0028E102B0A000A0DAE92000000
65817 +:1074700027BDFFD8AFB10014AFB00010AFBF0020E0
65818 +:10748000AFB3001CAFB2001800A0882110A0001FED
65819 +:10749000000480403C13080026735AA40A000A5ACC
65820 +:1074A0002412000112200019261000010E0009F517
65821 +:1074B00002002021000231422444FFA0000618806F
65822 +:1074C0003045001F2C8217A1007318212631FFFFC1
65823 +:1074D0001040FFF400B230048C690000020020214B
65824 +:1074E00024053FFF012640241500FFEE0126382524
65825 +:1074F0000E0009D5AC6700008F8A009426100001A9
65826 +:10750000254700011620FFE9AF8700948FBF0020B8
65827 +:107510008FB3001C8FB200188FB100148FB0001011
65828 +:1075200003E0000827BD00288F85009C00805821BB
65829 +:107530000000402100004821240A001F3C0C0800E4
65830 +:10754000258C5E1C3C0D080025AD5DA48CA60000BA
65831 +:1075500050C000140000402100AD1023000238C0CC
65832 +:10756000240300010A000A930000202115000003F3
65833 +:1075700000E410212448202400004821252900018E
65834 +:10758000512B00132506DFDC106000062484000167
65835 +:1075900000C3702415C0FFF5000318400A000A91CB
65836 +:1075A0000000402110AC002624A300040060282124
65837 +:1075B000254AFFFF1540FFE5AF85009C512B0004D5
65838 +:1075C0002506DFDC0000402103E000080100102157
65839 +:1075D0000006614230C5001F000C50803C070800C7
65840 +:1075E00024E75DA424040001014730211120000F8D
65841 +:1075F00000A420043C05080024A55E20148000059A
65842 +:107600002529FFFF24C6000410C50011000000005A
65843 +:10761000240400018CCF00000004C0270004204097
65844 +:1076200001F868241520FFF5ACCD00008F99007893
65845 +:1076300001001021032B482303E00008AF890078E4
65846 +:107640003C05080024A55DA40A000A9B0000402117
65847 +:107650003C06080024C65DA40A000AB42404000104
65848 +:10766000308800FF240200021102000A24030003F4
65849 +:107670001103005C8F8900A4240400041104005F3E
65850 +:1076800024050005110500670000182103E000082B
65851 +:10769000006010218F8900483C0C0800258C5EE0BA
65852 +:1076A0003C04080024845F60240300201060000F65
65853 +:1076B00000005821240D0002240E00033C0F080096
65854 +:1076C00025EF5EE08D27000014E0000B30F9FFFF8E
65855 +:1076D000252900040124C02B53000001018048210A
65856 +:1076E0002463FFFF5460FFF88D270000016018211C
65857 +:1076F00003E0000800601021132000323C0500FF69
65858 +:1077000030E200FF004030211040004200005021D4
65859 +:1077100024050001000020210005C84000A6C02467
65860 +:1077200017000003332500FF14A0FFFB2484000191
65861 +:10773000012CC023001828C000AA6021008C502111
65862 +:107740003144001F240C0001008C18040003102792
65863 +:1077500000E23024110D0041AD260000110E004C56
65864 +:10776000000A1840110D00368F87006C510E00562C
65865 +:107770008F8C0060240D0004110D005A8F8E008440
65866 +:10778000240E0005150EFFDA01601821240B1430B9
65867 +:1077900011400006000018218F8400A0246300011E
65868 +:1077A000006A402B1500FFFD016458218F8A00807C
65869 +:1077B000AF89008C016018212549FFFF0A000AEB00
65870 +:1077C000AF89008000E52024000736021080FFD03A
65871 +:1077D000240A001800075402314600FF0A000AF389
65872 +:1077E000240A00103C0C0800258C5EA03C04080014
65873 +:1077F00024845EE00A000ADA240300103C0C08002E
65874 +:10780000258C5E203C04080024845EA00A000AD96E
65875 +:107810008F89009000071A02306600FF0A000AF301
65876 +:10782000240A00088F89008C3C0C0800258C5F60BE
65877 +:107830003C04080024845F700A000ADA2403000470
65878 +:10784000000A4080250B003024E6FFFF016018216C
65879 +:10785000AF8900480A000AEBAF86006C000AC982B3
65880 +:10786000001978803C07080024E75EA001E720218A
65881 +:10787000000A18428C8F00003079001F032C380456
65882 +:107880000007C02701F860240A000B08AC8C000038
65883 +:10789000000331420006288000AF28213062001F1B
65884 +:1078A0008CB8000024630001004CC804000321428E
65885 +:1078B000001938270004108003073024004F2021CE
65886 +:1078C0000A000B4CACA60000000A68C025AB0032D1
65887 +:1078D000258AFFFF01601821AF8900A40A000AEB86
65888 +:1078E000AF8A0060254B1030AF89009001601821ED
65889 +:1078F00025C9FFFF0A000AEBAF8900843086000724
65890 +:107900002CC2000610400014000000000006408059
65891 +:107910003C030800246357BC010338218CE40000B9
65892 +:1079200000800008000000002409000310A9000ED8
65893 +:1079300000000000240A000510AA000B000000004F
65894 +:10794000240B000110AB0008000000008F8C00A089
65895 +:1079500010AC00050000000003E00008000010214A
65896 +:107960000A000A7900A020210A000AC700C02021CD
65897 +:1079700027BDFFE8308400FF240300021083000BC2
65898 +:10798000AFBF0010240600031086003A240800044C
65899 +:1079900010880068240E0005108E007F2CAF143074
65900 +:1079A0008FBF001003E0000827BD00182CA2003094
65901 +:1079B0001440FFFC8FBF001024A5FFD0000531C28A
65902 +:1079C000000668803C07080024E75EE001A730213C
65903 +:1079D0008CC900000005288230AC001F240B000178
65904 +:1079E000018B50048F840048012A4025ACC8000058
65905 +:1079F0008C83000050600001AF8600488F98006CB7
65906 +:107A000030AE000124A6FFFF270F000115C00002C1
65907 +:107A1000AF8F006C24A600010006414200082080C0
65908 +:107A2000008718218C79000030C2001F2406000155
65909 +:107A30000046F804033F382410E0FFDA8FBF00103F
65910 +:107A40000005C182001870803C0F080025EF5EA081
65911 +:107A500001CF48218D2B00000005684231A5001F91
65912 +:107A600000A66004016C502527BD001803E0000843
65913 +:107A7000AD2A00002CA7003014E0FFCA8FBF001011
65914 +:107A800030B900071723FFC724A8FFCE00086A02F9
65915 +:107A9000000D60803C0B0800256B5EA0018B30213F
65916 +:107AA0008CC40000000828C230AA001F240800016E
65917 +:107AB000014848048F8200A400891825ACC3000047
65918 +:107AC0008C5F000053E00001AF8600A40005704009
65919 +:107AD000000E7942000F28803C04080024845EE0F8
65920 +:107AE00000A418218C6B000025DF000131CD001FA0
65921 +:107AF000001F514201A86004016C4825000A108053
65922 +:107B0000AC690000004428218CA600008F9800601A
65923 +:107B100033F9001F8FBF00100328380400C77825F1
65924 +:107B2000270E000127BD0018ACAF000003E00008DD
65925 +:107B3000AF8E006024A5EFD02CB804001300FF998D
65926 +:107B40008FBF001000053142000658803C0A080033
65927 +:107B5000254A5E20016A30218CC4000030A3001F3A
65928 +:107B600024090001006910048F9900900082F82513
65929 +:107B7000ACDF00008F27000050E00001AF860090CE
65930 +:107B80008F8D00848FBF001027BD001825AC000129
65931 +:107B900003E00008AF8C008415E0FF828FBF001067
65932 +:107BA0008F8600A0000610400046F821001F21002B
65933 +:107BB00003E4C8210019384024F8143000B8402BE1
65934 +:107BC0001100FF788FBF001024A4EBD00E00021329
65935 +:107BD00000C0282100027942000F70803C0D08008F
65936 +:107BE00025AD5F6001CD20218C8B0000304C001F43
65937 +:107BF00024060001018618048F89008C016350253A
65938 +:107C0000AC8A00008D25000050A00001AF84008CDC
65939 +:107C10008F9800808FBF001027BD00182708000133
65940 +:107C200003E00008AF88008030A5000724030003AC
65941 +:107C300010A3001028A2000414400008240700022A
65942 +:107C40002403000410A300152408000510A8000F49
65943 +:107C50008F8500A003E000080000000014A7FFFDCE
65944 +:107C60000080282114C3FFFB240400020A000B8BB0
65945 +:107C700000000000240900050080282110C9FFFB36
65946 +:107C80002404000303E000080000000014C5FFF115
65947 +:107C9000008028210A000B8B24040005240A00011F
65948 +:107CA0000080282110CAFFF12404000403E000082A
65949 +:107CB0000000000027BDFFE0AFB00010000581C24A
65950 +:107CC0002603FFD024C5003F2C6223D024C6007FAA
65951 +:107CD000AFB20018AFB10014AFBF001C309100FF6D
65952 +:107CE000000691C2000529820200202110400008F0
65953 +:107CF0002403FFFF0E000A4B0000000002002021B9
65954 +:107D0000022028210E000C390240302100001821E9
65955 +:107D10008FBF001C8FB200188FB100148FB00010FD
65956 +:107D20000060102103E0000827BD002027BDFFD818
65957 +:107D300024A2007FAFB3001CAFB20018000299C2AA
65958 +:107D4000309200FF24A3003F02402021026028213E
65959 +:107D5000AFB10014AFB00010AFBF00200E000B6E2B
65960 +:107D60000003898200408021004020210220282138
65961 +:107D700014400009000018218FBF00208FB3001CA1
65962 +:107D80008FB200188FB100148FB000100060102166
65963 +:107D900003E0000827BD00280E0009FC00000000D9
65964 +:107DA00000402821020020211051FFF3001019C0CB
65965 +:107DB0000E000A4B00000000020020210240282192
65966 +:107DC0000E000C39026030218FBF00208FB3001CE1
65967 +:107DD0008FB200188FB100148FB00010000018216E
65968 +:107DE0000060102103E0000827BD00283084FFFF59
65969 +:107DF00030A5FFFF1080000700001821308200012D
65970 +:107E00001040000200042042006518211480FFFB8E
65971 +:107E10000005284003E000080060102110C00007A2
65972 +:107E2000000000008CA2000024C6FFFF24A500046F
65973 +:107E3000AC82000014C0FFFB2484000403E00008AF
65974 +:107E40000000000010A0000824A3FFFFAC86000083
65975 +:107E500000000000000000002402FFFF2463FFFF79
65976 +:107E60001462FFFA2484000403E00008000000000C
65977 +:107E700030A5FFFF8F4201B80440FFFE3C076015AC
65978 +:107E800000A730253C031000AF440180AF400184BF
65979 +:107E9000AF46018803E00008AF4301B88F8500D0EA
65980 +:107EA0002C864000008018218CA700840087102BAE
65981 +:107EB00014400010000000008CA800842D06400033
65982 +:107EC00050C0000F240340008CAA0084008A482B75
65983 +:107ED000512000018CA3008400035A42000B208033
65984 +:107EE0003C05080024A558200085182103E000085F
65985 +:107EF0008C62000014C0FFF4000000002403400066
65986 +:107F000000035A42000B20803C05080024A558209D
65987 +:107F10000085182103E000088C6200008F8300D0E8
65988 +:107F2000906600D024C50001A06500D08F8500D0E8
65989 +:107F3000906400D090A200D210440017000000000E
65990 +:107F4000936C00788F8B00BC318A00FFA16A000C13
65991 +:107F500025490001938700C4312200FF3048007F8B
65992 +:107F60001107000B00026827A36200788F4E01788A
65993 +:107F700005C0FFFE8F9900B0241800023C0F1000CE
65994 +:107F8000AF590140A358014403E00008AF4F017806
65995 +:107F90000A000D0931A20080A0A000D00A000CFF49
65996 +:107FA000000000008F8700D027BDFFC8AFBF0030A2
65997 +:107FB000AFB7002CAFB60028AFB50024AFB4002097
65998 +:107FC000AFB3001CAFB20018AFB10014AFB00010D7
65999 +:107FD00094E300E094E200E2104300D72405FFFFA1
66000 +:107FE0003C047FFF3497FFFF2415FF800A000DF04B
66001 +:107FF0003C16000E108A00D18FBF00308F9100B068
66002 +:108000003C1808008F18005C001230C0001291402C
66003 +:108010000311702101D57824AF4F002C94EC00E2BD
66004 +:1080200031CD007F01BA5821318A7FFF0176482186
66005 +:10803000000A804002091021945300003C08080007
66006 +:108040008D0800580246C02132733FFF001319808B
66007 +:10805000010320210224282130BF007F03FAC82118
66008 +:1080600000B5A024AF54002C0336A0218E87001049
66009 +:108070008E8F003003785821256D008800EF702323
66010 +:10808000240C0002AE8E0010AF8D00ACA16C0088F5
66011 +:10809000976A003C8E8400308F9100AC0E000CD6A5
66012 +:1080A0003150FFFF00024B80020940253C02420094
66013 +:1080B00001022025AE2400048E8300048F8D00ACC5
66014 +:1080C0008E860000240E0008ADA3001CADA600188B
66015 +:1080D000ADA0000CADA00010929F000A33F900FF84
66016 +:1080E000A5B90014968500083C1F000CA5A5001634
66017 +:1080F0009298000A331100FFA5B100209690000865
66018 +:1081000024180005A5B00022ADA00024928F000B1A
66019 +:108110002410C00031E700FFA5A70002A1AE0001B6
66020 +:108120008E8C00308F8B00AC8F8400B0AD6C00085B
66021 +:108130003C0A08008D4A005401444821013540247E
66022 +:10814000AF4800283C0208008C4200540044302113
66023 +:1081500030C3007F007AC821033F282102458821CF
66024 +:10816000AF9100BCAF8500C0A23800008F8A00BC70
66025 +:108170002403FFBF2418FFDF954F000201F03824CD
66026 +:1081800000F37025A54E0002914D000231AC003F76
66027 +:10819000358B0040A14B00028F8600BC8F8900D038
66028 +:1081A000ACC000048D28007C3C098000ACC80008ED
66029 +:1081B00090C4000D3082007FA0C2000D8F8500BCEE
66030 +:1081C00090BF000D03E3C824A0B9000D8F9100BC3F
66031 +:1081D0009233000D02789024A232000D8E9000346C
66032 +:1081E0008F8B00BCAD7000108E87002C8E8F0030FE
66033 +:1081F00000EF7023AD6E0014916D001831AC007F5C
66034 +:10820000A16C00188F9F00BC8E8A00308FE8001888
66035 +:10821000015720240109302400C41025AFE20018C2
66036 +:108220009283000AA3E3001C969900088F8500BC86
66037 +:108230008F9800D0A4B9001E8E9000308E8400303C
66038 +:108240000E0002138F0500848F8500D0000291403C
66039 +:108250000002990090AF00BC0253882100403021F9
66040 +:1082600031E7000210E0000302118021000290803B
66041 +:108270000212802190B900BC3327000410E00002F4
66042 +:108280000006F880021F80218E9800308F8B00BC82
66043 +:1082900024068000330F0003000F702331CD00034C
66044 +:1082A000020D6021AD6C000494A400E294AA00E2E7
66045 +:1082B00094B000E231497FFF2522000130537FFF57
66046 +:1082C0000206182400734025A4A800E294A400E24A
66047 +:1082D0003C1408008E94006030917FFF123400221D
66048 +:1082E000000000000E000CF6000000008F8700D098
66049 +:1082F0000000282194F300E094F000E21213000F34
66050 +:108300008FBF003090E900D090E800D1313200FFFB
66051 +:10831000310400FF0244302B14C0FF36264A00010E
66052 +:1083200090EE00D2264B000131CD00FF008D602180
66053 +:10833000158BFF338F9100B08FBF00308FB7002CAB
66054 +:108340008FB600288FB500248FB400208FB3001C97
66055 +:108350008FB200188FB100148FB0001000A0102150
66056 +:1083600003E0000827BD003894A300E20066402423
66057 +:10837000A4A800E290A400E290B900E2309100FFCE
66058 +:108380000011A1C20014F827001F39C03332007F4A
66059 +:10839000024730250A000DE8A0A600E23084FFFF66
66060 +:1083A00030A5FFFFAF440018AF45001C03E00008F4
66061 +:1083B0008F42001427BDFFB8AFB000208F9000D0CF
66062 +:1083C0003084FFFFAFA40010AFBF0044AFBE004039
66063 +:1083D000AFB7003CAFB60038AFB50034AFB4003033
66064 +:1083E000AFB3002CAFB20028AFB10024A7A0001893
66065 +:1083F000920600D1920500D030C400FF30A300FFE8
66066 +:108400000064102B10400122AFA00014920900D08C
66067 +:108410008FB50010312800FF0088382324F4FFFFB7
66068 +:108420000014882B0015982B02339024524001260B
66069 +:108430008FB40014961E0012961F00108FB7001004
66070 +:1084400003DFC823001714000019C400000224032E
66071 +:108450000018140302E2B02A52C00001004020219B
66072 +:108460000284282B10A0000200801821028018210D
66073 +:1084700000033C0000071C033064FFFF2C8600094A
66074 +:1084800014C000020060B821241700088E0A0008FA
66075 +:10849000001769808E09000C31ABFFFF3C0C001007
66076 +:1084A000016C402527520400AF4A0038AF9200B853
66077 +:1084B000AF49003CAF480030000000000000000061
66078 +:1084C00000000000000000000000000000000000AC
66079 +:1084D00000000000000000008F4F000031EE00207F
66080 +:1084E00011C0FFFD0017982A027110240A000E83A4
66081 +:1084F0000000B02155E001019258000131130080C5
66082 +:10850000126001CF012020219655001232A5FFFFF5
66083 +:108510000E000CCBA7B500188F9000D00291A023BD
66084 +:1085200026CD00018F9100B8000DB4000016B403F1
66085 +:108530002638004002D7582A0014882B2405000151
66086 +:108540000300902101711024AF9800B8AFA500146A
66087 +:10855000104001BC8F8900B03C0C08008D8C005489
66088 +:10856000240BFF80921E00D001895021014B28244A
66089 +:10857000921900D0AF4500288E4700103C08080033
66090 +:108580008D0800583C1808008F18005430E33FFF56
66091 +:108590000003218001043021012658212402FF809C
66092 +:1085A0000162F824920C00D0AF5F002C92480000CA
66093 +:1085B00033D100FF333500FF0309982100117140CA
66094 +:1085C000001578C0326D007F01CF382101BA282113
66095 +:1085D000318300FF3164007F3C0A000C00AA88212F
66096 +:1085E0000367F02100033140009A10213108003F59
66097 +:1085F0003C1F000E00D1C021005F982127D90088C0
66098 +:108600002D150008AF9100C0AF9900ACAF9800BC29
66099 +:10861000AF9300B412A0018A00008821240E00014B
66100 +:10862000010E4004310D005D11A0FFB2310F0002B8
66101 +:108630008E4A00283C0300803C04FFEFAE6A000035
66102 +:108640008E450024A260000A3488FFFFAE65000456
66103 +:108650009247002C3C1FFF9F37FEFFFFA267000CD4
66104 +:108660008E62000C3C180040A267000B00433025CE
66105 +:1086700000C8C824033E88240238A825AE75000C23
66106 +:108680008E490004AE6000183C0F00FFAE69001474
66107 +:108690008E4D002C35EEFFFF8F8B00B001AE6024B5
66108 +:1086A000AE6C00108E470008A660000896450012C8
66109 +:1086B000AE6700208E42000C30B03FFF00105180AA
66110 +:1086C000AE6200248E5E0014014B182130A400011C
66111 +:1086D000AE7E00288E590018000331C2000443808A
66112 +:1086E000AE79002C8E51001C00C8F821A67F001C1A
66113 +:1086F000AE710030965800028E550020A678001EFC
66114 +:10870000AE75003492490033313000045600000544
66115 +:10871000925000008F8C00D08D8B007CAE6B0030AF
66116 +:10872000925000008F8F00BCA1F00000924E0033E9
66117 +:1087300031CD000251A00007925E00018F8900BC7C
66118 +:108740002418FF80913100000311A825A1350000F5
66119 +:10875000925E00018F9900BC2409FFBF240BFFDF4C
66120 +:10876000A33E00018F9500BC92B8000D3311007F2D
66121 +:10877000A2B1000D8F8E00BC91D0000D02097824AB
66122 +:10878000A1CF000D8F8800BC8E6D0014910A000DE2
66123 +:108790002DAC0001000C2940014B382400E51825C0
66124 +:1087A000A103000D964200128F8800BC8F8700D075
66125 +:1087B000A50200028E45000490FF00BC30A4000317
66126 +:1087C0000004302330DE000300BE102133F9000224
66127 +:1087D00017200002244400342444003090E200BCFE
66128 +:1087E00000A2302430DF000417E0000224830004DC
66129 +:1087F000008018218F8F00AC24090002AD03000413
66130 +:10880000A1E90000924E003F8F8D00ACA1AE0001A7
66131 +:108810008F9500AC924C003F8E440004A6AC000241
66132 +:10882000976B003C0E000CD63170FFFF00025380A6
66133 +:10883000020A38253C05420000E51825AEA30004D5
66134 +:108840008F8600AC8E480038ACC800188E440034C7
66135 +:10885000ACC4001CACC0000CACC00010A4C0001420
66136 +:10886000A4C00016A4C00020A4C00022ACC00024F4
66137 +:108870008E6400145080000124040001ACC4000880
66138 +:108880000E000CF6241100010A000E768F9000D025
66139 +:10889000920F00D2920E00D08FB5001031EB00FF86
66140 +:1088A00031CD00FF008D6023016C50212554FFFF66
66141 +:1088B0000014882B0015982B023390241640FEDDFF
66142 +:1088C000000000008FB400148FBF00448FBE004032
66143 +:1088D0003A8200018FB7003C8FB600388FB5003464
66144 +:1088E0008FB400308FB3002C8FB200288FB10024DA
66145 +:1088F0008FB0002003E0000827BD0048331100209E
66146 +:10890000122000EF24150001921E00BC241F00015C
66147 +:108910000000A82133D900011320000DAFBF001CB7
66148 +:108920008E4400148E0800840088102B144000022E
66149 +:10893000008030218E0600848E03006400C3A82BC3
66150 +:1089400016A0000200C020218E0400640080A8212F
66151 +:108950008E4700148E05006400E5302B14C0000221
66152 +:1089600000E020218E0400640095F02313C0000471
66153 +:108970008FAC001C240A0002AFAA001C8FAC001CA4
66154 +:10898000028C582B156000A8000018218E4F00386B
66155 +:108990008E6D000C3C0E0080AE6F00008E4A0034DD
66156 +:1089A0003C10FF9F01AE5825AE6A00049246003F7E
66157 +:1089B000360CFFFF016C38243C0500203C03FFEF20
66158 +:1089C000A266000B00E510253468FFFF8F8700B812
66159 +:1089D0000048F8243C04000803E4C825AE79000CE4
66160 +:1089E0008CF80014AE60001802BE7821AE78001436
66161 +:1089F0008CF10018AE71001C8CE90008AE690024EF
66162 +:108A00008CEE000CAE6F002CAE600028AE6E002025
66163 +:108A1000A6600038A660003A8CED001401B58023F2
66164 +:108A2000021E902312400011AE72001090EA003D29
66165 +:108A30008E6500048E640000000A310000A6C82183
66166 +:108A4000000010210326402B0082F82103E8C021FA
66167 +:108A5000AE790004AE78000090F1003DA271000AEA
66168 +:108A60008F8900B895320006A67200088F9800AC76
66169 +:108A70002419000202A02021A31900009769003CDC
66170 +:108A80008F9200AC0E000CD63131FFFF00027B80CC
66171 +:108A90008F8500B8022F68253C0E420001AE80256C
66172 +:108AA000AE5000048F8400AC8CAC0038AC8C001845
66173 +:108AB0008CAB0034AC8B001CAC80000CAC80001084
66174 +:108AC000A4800014A4800016A4800020A4800022AA
66175 +:108AD000AC80002490A7003FA487000212A00135BB
66176 +:108AE0002403000153C0000290A2003D90A2003E6A
66177 +:108AF00024480001A08800018F9F00ACAFF500085A
66178 +:108B00008F8300D024070034906600BC30C500027B
66179 +:108B100050A00001240700308F9200B88F8A00BC5B
66180 +:108B2000906D00BC924B00002412C00032A50003DF
66181 +:108B3000A14B00008F8600B88F8800BC240200047F
66182 +:108B400090C400010045182330790003A1040001FE
66183 +:108B50008F8A00BC8F9F00B800F53821955800021D
66184 +:108B600097E9001200F9382103128824312F3FFFC2
66185 +:108B7000022F7025A54E00029150000231A800047A
66186 +:108B8000320C003F358B0040A14B000212A00002C6
66187 +:108B90008F8500BC00E838218F8E00D0ACA7000480
66188 +:108BA000240BFFBF8DCD007C2EA400012403FFDF2A
66189 +:108BB000ACAD000890B0000D00044140320C007FC5
66190 +:108BC000A0AC000D8F8600BC90CA000D014B102494
66191 +:108BD000A0C2000D8F8700BC90E5000D00A3F82413
66192 +:108BE00003E8C825A0F9000D8F9100B88F8D00BC57
66193 +:108BF0008E380020ADB800108E290024ADA90014D5
66194 +:108C00008E2F0028ADAF00188E2E002C0E000CF613
66195 +:108C1000ADAE001C8FB0001C240C0002120C00EE44
66196 +:108C20008F9000D08FA3001C006088211460000288
66197 +:108C30000060A8210000A02156A0FE390291A023C7
66198 +:108C40000014882B8FA90010960700103C1E0020EE
66199 +:108C50000136402302C750213112FFFFA60A00103F
66200 +:108C6000AFB20010AF5E0030000000009617001099
66201 +:108C7000961300121277008F000000008E05000C82
66202 +:108C80008E0B00080016698000AD7021000DC7C36F
66203 +:108C900001CDA82B0178782101F56021AE0E000CE2
66204 +:108CA000AE0C00088FB300100013B82B02378024DD
66205 +:108CB0001200FF048F9000D00A000E3C000000005C
66206 +:108CC0008E4D0038A6600008240B0003AE6D000036
66207 +:108CD0008E500034A260000A8F9800B8AE70000475
66208 +:108CE0003C0500809311003FA26B000C8E6F000CBE
66209 +:108CF0003C0EFF9FA271000B01E5102535CCFFFF54
66210 +:108D00003C03FFEF8F9200B8004C30243464FFFF27
66211 +:108D100000C4F824AE7F000C8E590014964800124F
66212 +:108D20008F8A00B0AE7900108E490014AE60001832
66213 +:108D3000AE600020AE690014AE6000248E470018BB
66214 +:108D400031093FFF0009F180AE6700288E4D000811
66215 +:108D500003CA802131180001AE6D00308E4F000C27
66216 +:108D60008F8C00AC001089C200185B80022B282178
66217 +:108D7000240E0002A665001CA6600036AE6F002C13
66218 +:108D8000A18E00009763003C8F8A00AC3C04420037
66219 +:108D90003062FFFF00443025AD4600048F9F00B8CD
66220 +:108DA000240700012411C0008FF30038240600348A
66221 +:108DB000AD5300188FF90034AD59001CAD40000CC4
66222 +:108DC000AD400010A5400014A5400016A5400020AD
66223 +:108DD000A5400022AD400024A5550002A147000196
66224 +:108DE0008F9E00AC8F8800B88F9200BCAFD5000872
66225 +:108DF000910D0000A24D00008F9000B88F8B00BC39
66226 +:108E000092180001A17800018F8400BC94850002B3
66227 +:108E100000B1782401E97025A48E0002908C000234
66228 +:108E20003183003FA08300028F8300D08F8400BC79
66229 +:108E3000906200BC305300025260000124060030F2
66230 +:108E4000AC8600048C6F007C2403FFBF02A0882145
66231 +:108E5000AC8F0008908E000D31CC007FA08C000DEF
66232 +:108E60008F8600BC90C2000D00432024A0C4000DDA
66233 +:108E70008F8900BC913F000D37F90020A139000D0A
66234 +:108E80008F8800B88F9300BC8D070020AE6700105C
66235 +:108E90008D0A0024AE6A00148D1E0028AE7E0018D4
66236 +:108EA0008D12002C0E000CF6AE72001C0A00103D54
66237 +:108EB0008F9000D0960E00148E03000431CCFFFF7B
66238 +:108EC000000C10C000622021AF44003C8E1F000443
66239 +:108ED0008F46003C03E6C8231B20003C0000000036
66240 +:108EE0008E0F000025E200013C05001034B500089B
66241 +:108EF000AF420038AF550030000000000000000015
66242 +:108F00000000000000000000000000000000000061
66243 +:108F100000000000000000008F580000330B00200C
66244 +:108F20001160FFFD000000008F5304003C0D002085
66245 +:108F3000AE1300088F570404AE17000CAF4D00307D
66246 +:108F4000000000003C0608008CC600442416000106
66247 +:108F500010D600BD00000000961F00123C0508005E
66248 +:108F60008CA5004000BFC821A61900129609001464
66249 +:108F700025270001A6070014960A00143144FFFFBC
66250 +:108F80005486FF498FB30010A60000140E000E1681
66251 +:108F900030A5FFFF3C0408008C84002496030012D7
66252 +:108FA0000044102300623023A60600120A00105964
66253 +:108FB0008FB30010A08300018F8200AC2404000155
66254 +:108FC000AC4400080A000FF08F8300D08E0200002E
66255 +:108FD0000A0010EA3C0500108F8200C08FA7001C19
66256 +:108FE000921800D0920B00D0920E00D0331100FFE7
66257 +:108FF000316900FF00117940000928C001E56021B6
66258 +:1090000031C300FF036C50210003314000C2C8216E
66259 +:10901000255F0088AF9F00ACAF9900BCA1470088D6
66260 +:109020009768003C03C020218F9100AC0E000CD645
66261 +:109030003110FFFF00026B80020DC0253C0442008E
66262 +:109040008F8D00B803045825AE2B00048DA900387D
66263 +:109050008F8B00AC0000882100118100AD690018E1
66264 +:109060008DAF00343C087FFF3504FFFFAD6F001C5F
66265 +:1090700091AC003E8D65001C8D660018000C190037
66266 +:10908000000C770200A33821020E102500E3F82B14
66267 +:1090900000C2C821033F5021AD67001CAD6A001813
66268 +:1090A000AD60000CAD60001091B8003E24050005D5
66269 +:1090B00003C45024A578001495A9000403C02021FE
66270 +:1090C000A569001691AF003EA56F002095B1000480
66271 +:1090D000A5710022AD60002491AE003FA56E000294
66272 +:1090E00091B0003E91AC003D01901023244300015B
66273 +:1090F000A16300018F8600AC8F9F00BCACDE00082E
66274 +:10910000A3E500008F9000BC8F9900B82405FFBF35
66275 +:1091100096070002973800120247782433093FFF70
66276 +:1091200001E98825A6110002921200022418FFDF2F
66277 +:10913000324E003F35CD0040A20D00028F8600BCAC
66278 +:109140008F8C00D02412FFFFACC000048D8B007CFC
66279 +:109150003C0C8000ACCB000890C2000D3043007F77
66280 +:10916000A0C3000D8F8700BC90FF000D03E5C8244D
66281 +:10917000A0F9000D8F9100BC9229000D01387824D0
66282 +:10918000A22F000D8F9000BCAE120010AE1500147F
66283 +:10919000920E00182415FF8002AE6825A20D00185B
66284 +:1091A0008F8500BC8F8300B88CAB0018016C102435
66285 +:1091B000004A3025ACA600189068003EA0A8001C0C
66286 +:1091C0008F9F00B88F8700BC8F9800D097F900045C
66287 +:1091D000A4F9001E0E0002138F0500848F8600D0B4
66288 +:1091E000000279400002490090D200BC01E98821C8
66289 +:1091F000004028213255000212A0000303D1202193
66290 +:109200000002A8800095202190CD00BC31B200045E
66291 +:109210001240000333DF0003000540800088202156
66292 +:10922000240600048F9E00BC00DFC8233327000300
66293 +:1092300000875021AFCA00040E000CF6A665003866
66294 +:109240000A0010388F9000D0961E00123C080800CB
66295 +:109250008D080024011E9021A61200120A00105948
66296 +:109260008FB3001027BDFFE03C1808008F18005096
66297 +:10927000AFB00010AFBF0018AFB10014AF8400B0A2
66298 +:1092800093710074030478212410FF8031EE007F75
66299 +:109290003225007F01F0582401DA68213C0C000AD5
66300 +:1092A000A38500C401AC2821AF4B002494A9001071
66301 +:1092B0009768000690A600620080382124020030E2
66302 +:1092C0000109202330C300F0AF8500D010620019DF
66303 +:1092D0003090FFFF90AE0062240DFFF0240A005092
66304 +:1092E00001AE6024318B00FF116A002F00000000E6
66305 +:1092F00016000007241F0C00AF5F00248FB100147C
66306 +:109300008FBF00188FB0001003E0000827BD0020B9
66307 +:109310000E000E1C02002021241F0C00AF5F002451
66308 +:109320008FB100148FBF00188FB0001003E0000849
66309 +:1093300027BD002094A200E094A400E290BF011396
66310 +:10934000008218263079FFFF33E700C014E00009DF
66311 +:109350002F31000116000038000000005620FFE603
66312 +:10936000241F0C000E000D18000000000A0011ED73
66313 +:10937000241F0C001620FFDE000000000E000D1858
66314 +:10938000000000001440FFDC241F0C001600002227
66315 +:109390008F8300D0906901133122003FA062011336
66316 +:1093A0000A0011ED241F0C0094AF00D48F8600D466
66317 +:1093B00000E02821240400050E000C5C31F0FFFFC2
66318 +:1093C0001440000524030003979100E600001821D3
66319 +:1093D0002625FFFFA78500E68F5801B80700FFFE8E
66320 +:1093E0003C196013AF400180241F0C00AF50018472
66321 +:1093F000007938253C101000AF4701888FB1001468
66322 +:10940000AF5001B8AF5F00248FB000108FBF0018BD
66323 +:1094100003E0000827BD00200E000E1C02002021E2
66324 +:109420005040FFB5241F0C008F8300D090690113BA
66325 +:109430000A0012163122003F0E000E1C02002021ED
66326 +:109440001440FFAD241F0C00122000078F8300D0B2
66327 +:10945000906801133106003F34C20040A06201133E
66328 +:109460000A0011ED241F0C000E000D180000000072
66329 +:109470005040FFA1241F0C008F8300D0906801137F
66330 +:109480003106003F0A00124634C20040AF9B00C8BC
66331 +:1094900003E00008AF8000EC3089FFFF0009404284
66332 +:1094A0002D020041000921801440000200095040B3
66333 +:1094B00024080040000830C0000811400046582130
66334 +:1094C000256701A800E2C821272F007F2418FF800C
66335 +:1094D00001F818240064302100CA702125CC00FF57
66336 +:1094E000240DFF00018D202425650088240A0088B2
66337 +:1094F0003C010800AC2A004C3C010800AC2500509F
66338 +:10950000AF8400D43C010800AC2900603C01080095
66339 +:10951000AC2800643C010800AC2700543C01080062
66340 +:10952000AC2300583C010800AC26005C03E00008B6
66341 +:1095300000000000308300FF30C6FFFF30E400FF72
66342 +:109540008F4201B80440FFFE00034C00012438257F
66343 +:109550003C08600000E820253C031000AF45018076
66344 +:10956000AF460184AF44018803E00008AF4301B86F
66345 +:109570008F86001C3C096012352700108CCB00043C
66346 +:109580003C0C600E35850010316A00062D48000144
66347 +:10959000ACE800C48CC40004ACA431808CC20008C8
66348 +:1095A00094C30002ACA2318403E00008A78300E466
66349 +:1095B0003C0308008C6300508F8400E88F86001CF9
66350 +:1095C0002402FF800064C0210302C824AF59002890
66351 +:1095D0008CCD00043305007F00BA78213C0E000CCE
66352 +:1095E00001EE2821ACAD00588CC80008AF8500D032
66353 +:1095F0003C076012ACA8005C8CCC001034E8001072
66354 +:10960000ACAC000C8CCB000CACAB000894AA0014E2
66355 +:109610003C0208008C42004425490001A4A9001422
66356 +:1096200094A400143083FFFF106200178F8400D0D1
66357 +:109630003C0A08008D4A0040A4AA00128CCE0018F3
66358 +:10964000AC8E00248CCD0014AC8D00208CC700188B
66359 +:10965000AC87002C8CCC001424060001AC8C0028B4
66360 +:109660008D0B00BC5166001A8D0200B48D0200B84B
66361 +:10967000A482003A948F003AA48F003C948800D4CE
66362 +:1096800003E000083102FFFF3C0908008D29002497
66363 +:10969000A4A000148F8400D0A4A900128CCE0018BE
66364 +:1096A000AC8E00248CCD0014AC8D00208CC700182B
66365 +:1096B000AC87002C8CCC001424060001AC8C002854
66366 +:1096C0008D0B00BC5566FFEA8D0200B88D0200B418
66367 +:1096D000A482003A948F003AA48F003C948800D46E
66368 +:1096E00003E000083102FFFF8F86001C3C0C0800DD
66369 +:1096F0008D8C0050240BFF808CCD00083C03000CA7
66370 +:10970000000D51C0018A4021010B4824AF8A00E8B6
66371 +:10971000AF49002890C700073105007F00BA10212B
66372 +:109720000043282130E4000410800039AF8500D0C8
66373 +:1097300090CF000731EE000811C000380000000093
66374 +:109740008CD9000C8CC400140324C02B13000030EF
66375 +:10975000000000008CC2000CACA200648CCD00188C
66376 +:109760002402FFF8ACAD00688CCC0010ACAC0080DB
66377 +:109770008CCB000CACAB00848CCA001CACAA007C67
66378 +:1097800090A900BC01224024A0A800BC90C30007FF
66379 +:109790003067000810E000048F8500D090AF00BC57
66380 +:1097A00035EE0001A0AE00BC90D9000733380001AF
66381 +:1097B000130000088F8300D08F8700D0240400346A
66382 +:1097C00090E800BC35030002A0E300BC8F8300D00A
66383 +:1097D000AC6400C090C900073126000210C000052B
66384 +:1097E00000000000906A00BC35420004A06200BC8A
66385 +:1097F0008F8300D09065011330AD003FA06D011341
66386 +:109800008F8C00D0958B00D403E000083162FFFFFD
66387 +:109810008CC200140A001305000000000A001306A1
66388 +:10982000ACA0006427BDFFD8AFB000108F90001C23
66389 +:10983000AFBF0024AFB40020AFB20018AFB1001426
66390 +:10984000AFB3001C9613000E3C07600A3C14600680
66391 +:109850003264FFFF369300100E00125534F40410EA
66392 +:109860008F8400D43C11600E0E00099B363100102D
66393 +:10987000920E00153C0708008CE700603C12601255
66394 +:1098800031CD000FA38D00F08E0E00048E0D000868
66395 +:1098900096080012961F00109619001A9618001EBE
66396 +:1098A000960F001C310CFFFF33EBFFFF332AFFFF45
66397 +:1098B0003309FFFF31E6FFFF3C010800AC2B0040FD
66398 +:1098C0003C010800AC2C00243C010800AC2A0044F8
66399 +:1098D000AE293178AE26317C92020015960300162F
66400 +:1098E00036520010304400FF3065FFFF3C06080090
66401 +:1098F0008CC60064AE243188AE4500B492080014D2
66402 +:1099000096190018241F0001011FC004332FFFFF08
66403 +:109910003C0508008CA50058AE5800B8AE4F00BCFE
66404 +:10992000920C0014AF8E00D8AF8D00DC318B00FF9D
66405 +:10993000AE4B00C0920A0015AE670048AE66004C00
66406 +:10994000314900FFAE4900C8AE65007C3C03080009
66407 +:109950008C6300503C0408008C84004C3C080800D8
66408 +:109960008D0800543C0208008C42005C8FBF00242C
66409 +:10997000AE6300808FB00010AE8300748FB3001C04
66410 +:10998000AE22319CAE4200DCAE2731A0AE2631A41F
66411 +:10999000AE24318CAE233190AE283194AE2531986F
66412 +:1099A000AE870050AE860054AE8500708FB10014B3
66413 +:1099B000AE4700E0AE4600E4AE4400CCAE4300D07B
66414 +:1099C000AE4800D4AE4500D88FB400208FB2001846
66415 +:1099D00003E0000827BD002827BDFFE0AFB1001459
66416 +:1099E000AFBF0018241100010E000845AFB00010F1
66417 +:1099F00010510005978400E6978300CC0083102B5C
66418 +:109A0000144000088F8500D4240700028FBF00187F
66419 +:109A10008FB100148FB0001000E0102103E00008A7
66420 +:109A200027BD00200E000C7A24040005AF8200E858
66421 +:109A30001040FFF6240700020E0008498F90001C1A
66422 +:109A4000979F00E68F9900E88F8D00C827EF0001EF
66423 +:109A5000240E0050AF590020A78F00E6A1AE0000F1
66424 +:109A60003C0C08008D8C00648F8600C8240A80009E
66425 +:109A7000000C5E00ACCB0074A4C0000694C9000AC0
66426 +:109A8000241FFF803C0D000C012AC024A4D8000A2A
66427 +:109A900090C8000A24182000011F1825A0C3000A3E
66428 +:109AA0008F8700C8A0E000788F8500C800003821AB
66429 +:109AB000A0A000833C0208008C4200508F8400E884
66430 +:109AC0000044782101FFC824AF590028960B0002FA
66431 +:109AD00031EE007F01DA6021018D3021A4CB00D46A
66432 +:109AE000960A0002AF8600D03C0E000425492401EE
66433 +:109AF000A4C900E68E080004ACC800048E03000868
66434 +:109B0000ACC30000A4C00010A4C00014A0C000D0CA
66435 +:109B10008F8500D02403FFBFA0A000D13C04080023
66436 +:109B20008C8400648F8200D0A04400D28E1F000C71
66437 +:109B30008F8A00D0978F00E4AD5F001C8E19001053
66438 +:109B400024100030AD590018A5400030A551005434
66439 +:109B5000A5510056A54F0016AD4E0068AD580080C7
66440 +:109B6000AD580084914D006231AC000F358B001070
66441 +:109B7000A14B00628F8600D090C900633128007F1E
66442 +:109B8000A0C800638F8400D02406FFFF9085006387
66443 +:109B900000A31024A08200638F9100D000E0102168
66444 +:109BA000923F00BC37F90001A23900BC8F8A00D077
66445 +:109BB000938F00F0AD580064AD5000C0914E00D3BB
66446 +:109BC000000F690031CC000F018D5825A14B00D347
66447 +:109BD0008F8500D08F8900DCACA900E88F8800D881
66448 +:109BE0008FBF00188FB100148FB0001027BD002068
66449 +:109BF000ACA800ECA4A600D6A4A000E0A4A000E2BB
66450 +:109C000003E000080000000027BDFFE0AFB0001037
66451 +:109C10008F90001CAFB10014AFBF00188E19000464
66452 +:109C20003C1808008F180050240FFF80001989C0CD
66453 +:109C30000238702131CD007F01CF602401BA50215C
66454 +:109C40003C0B000CAF4C0028014B4021950900D47F
66455 +:109C5000950400D68E0700043131FFFFAF8800D095
66456 +:109C60000E000913000721C08E0600048F8300C870
66457 +:109C7000000629C0AF4500209064003E30820040BD
66458 +:109C8000144000068F8400D0341FFFFF948300D659
66459 +:109C90003062FFFF145F000400000000948400D6CF
66460 +:109CA0000E0008A83084FFFF8E050004022030213A
66461 +:109CB0008FBF00188FB100148FB000102404002251
66462 +:109CC00000003821000529C00A00127C27BD0020B1
66463 +:109CD00027BDFFE0AFB100143091FFFFAFB000101F
66464 +:109CE000AFBF00181220001D000080218F86001CCD
66465 +:109CF0008CC500002403000600053F020005140285
66466 +:109D000030E4000714830015304500FF2CA800063E
66467 +:109D10001100004D000558803C0C0800258C57D4DC
66468 +:109D2000016C50218D490000012000080000000056
66469 +:109D30008F8E00EC240D000111CD005900000000B1
66470 +:109D4000260B00013170FFFF24CA00200211202BD6
66471 +:109D5000014030211480FFE6AF8A001C0200102170
66472 +:109D60008FBF00188FB100148FB0001003E00008FF
66473 +:109D700027BD0020938700CE14E00038240400148F
66474 +:109D80000E001338000000008F86001C2402000122
66475 +:109D90000A00147FAF8200EC8F8900EC24080002D7
66476 +:109DA0001128003B2404001300002821000030216A
66477 +:109DB000240700010E00127C000000000A00147F3E
66478 +:109DC0008F86001C8F8700EC2405000214E5FFF647
66479 +:109DD000240400120E0012E9000000008F8500E844
66480 +:109DE00000403021240400120E00127C00003821B3
66481 +:109DF0000A00147F8F86001C8F8300EC241F000351
66482 +:109E0000147FFFD0260B00010E00129B0000000003
66483 +:109E10008F8500E800403021240200022404001055
66484 +:109E200000003821AF8200EC0E00127C0000000020
66485 +:109E30000A00147F8F86001C8F8F00EC240600021E
66486 +:109E400011E6000B0000000024040010000028218F
66487 +:109E5000000030210A00149C240700010000282182
66488 +:109E60000E00127C000030210A00147F8F86001C37
66489 +:109E70000E0013A500000000144000128F99001C72
66490 +:109E80008F86001C240200030A00147FAF8200ECBE
66491 +:109E90000E001431000000000A00147F8F86001CA1
66492 +:109EA0000E00128B000000002402000224040014A3
66493 +:109EB0000000282100003021000038210A0014B9D8
66494 +:109EC000AF8200EC004038212404001097380002D3
66495 +:109ED000000028210E00127C3306FFFF0A00147FC9
66496 +:109EE0008F86001C8F8400C83C077FFF34E6FFFF8D
66497 +:109EF0008C8500742402000100A61824AC83007431
66498 +:109F000003E00008A082000510A000362CA200800B
66499 +:109F1000274A04003C0B000524090080104000077C
66500 +:109F20002408008030A6000F00C540212D030081C9
66501 +:109F30001460000200A0482124080080AF4B0030CC
66502 +:109F400000000000000000000000000011000009F7
66503 +:109F500000003821014030218C8D000024E70004EE
66504 +:109F600000E8602BACCD0000248400041580FFFACB
66505 +:109F700024C60004000000000000000000000000F3
66506 +:109F80003C0E0006010E3825AF47003000000000EF
66507 +:109F900000000000000000008F4F000031E80010BA
66508 +:109FA0001100FFFD000000008F42003C8F43003C89
66509 +:109FB0000049C8210323C02B130000040000000047
66510 +:109FC0008F4C003825860001AF4600388F47003C93
66511 +:109FD00000A9282300E96821AF4D003C14A0FFCE62
66512 +:109FE0002CA2008003E000080000000027BDFFD085
66513 +:109FF0003C020002AFB100143C11000CAF45003828
66514 +:10A00000AFB3001CAF46003C00809821AF42003047
66515 +:10A0100024050088AF44002803512021AFBF002849
66516 +:10A02000AFB50024AFB40020AFB200180E0014F199
66517 +:10A03000AFB000103C1F08008FFF004C3C18080018
66518 +:10A040008F1800642410FF8003F3A82132B9007F29
66519 +:10A0500002B078240018A0C0033A70210018914083
66520 +:10A0600001D12021AF4F00280E0014F10254282105
66521 +:10A070003C0D08008DAD00502405012001B358218E
66522 +:10A08000316C007F01705024019A48210131202158
66523 +:10A090000E0014F1AF4A00283C0808008D08005457
66524 +:10A0A0003C0508008CA500640113382130E6007FD0
66525 +:10A0B00000F0182400DA202100912021AF4300286D
66526 +:10A0C0000E0014F1000529403C0208008C420058A3
66527 +:10A0D0003C1008008E1000601200001C0053882104
66528 +:10A0E0002415FF800A0015743C14000C3226007FF2
66529 +:10A0F0000235182400DA202102402821AF4300282D
66530 +:10A10000009420210E0014F12610FFC01200000F51
66531 +:10A11000023288212E05004110A0FFF42412100005
66532 +:10A120003226007F001091800235182400DA2021A9
66533 +:10A1300002402821AF430028009420210E0014F192
66534 +:10A14000000080211600FFF3023288213C0B08003A
66535 +:10A150008D6B005C240AFF802405000201734021FE
66536 +:10A16000010A4824AF4900283C0408009484006296
66537 +:10A170003110007F021A88213C07000C0E000CAA47
66538 +:10A180000227982100402821026020218FBF00284B
66539 +:10A190008FB500248FB400208FB3001C8FB200183D
66540 +:10A1A0008FB100148FB000100A0014F127BD0030E9
66541 +:10A1B0008F83001C8C62000410400003000000002C
66542 +:10A1C00003E00008000000008C6400108C650008AB
66543 +:10A1D0000A00152A8C66000C000000000000001B1D
66544 +:10A1E0000000000F0000000A000000080000000648
66545 +:10A1F000000000050000000500000004000000044D
66546 +:10A200000000000300000003000000030000000342
66547 +:10A210000000000300000002000000020000000235
66548 +:10A220000000000200000002000000020000000226
66549 +:10A230000000000200000002000000020000000216
66550 +:10A240000000000200000002000000020000000206
66551 +:10A2500000000001000000010000000108000F24C0
66552 +:10A2600008000D6C08000FB80800106008000F4CC3
66553 +:10A2700008000F8C0800119408000D88080011B820
66554 +:10A2800008000DD8080015540800151C08000D889A
66555 +:10A2900008000D8808000D880800124008001240D0
66556 +:10A2A00008000D8808000D88080014E008000D88DB
66557 +:10A2B00008000D8808000D8808000D88080013B4F8
66558 +:10A2C00008000D8808000D8808000D8808000D881A
66559 +:10A2D00008000D8808000D8808000D8808000D880A
66560 +:10A2E00008000D8808000D8808000D8808000D88FA
66561 +:10A2F00008000D8808000D8808000FAC08000D88C4
66562 +:10A3000008000D880800167808000D8808000D88E0
66563 +:10A3100008000D8808000D8808000D8808000D88C9
66564 +:10A3200008000D8808000D8808000D8808000D88B9
66565 +:10A3300008000D8808000D8808000D8808000D88A9
66566 +:10A3400008000D8808000D8808000D88080014100A
66567 +:10A3500008000D8808000D8808001334080012A4B6
66568 +:10A3600008001E2C08001EFC08001F1408001F28EF
66569 +:10A3700008001F3808001E2C08001E2C08001E2C88
66570 +:10A3800008001ED808002E1408002E1C08002DE41A
66571 +:10A3900008002DF008002DFC08002E08080052F4DB
66572 +:10A3A000080052B40800528008005254080052308D
66573 +:10A3B000080051EC0A000C840000000000000000BE
66574 +:10A3C0000000000D727870362E322E33000000002F
66575 +:10A3D000060203030000000000000001000000006E
66576 +:10A3E000000000000000000000000000000000006D
66577 +:10A3F000000000000000000000000000000000005D
66578 +:10A40000000000000000000000000000000000004C
66579 +:10A41000000000000000000000000000000000003C
66580 +:10A42000000000000000000000000000000000002C
66581 +:10A43000000000000000000000000000000000001C
66582 +:10A44000000000000000000000000000000000000C
66583 +:10A4500000000000000000000000000000000000FC
66584 +:10A4600000000000000000000000000000000000EC
66585 +:10A4700000000000000000000000000000000000DC
66586 +:10A4800000000000000000000000000000000000CC
66587 +:10A4900000000000000000000000000000000000BC
66588 +:10A4A00000000000000000000000000000000000AC
66589 +:10A4B000000000000000000000000000000000009C
66590 +:10A4C000000000000000000000000000000000008C
66591 +:10A4D000000000000000000000000000000000007C
66592 +:10A4E000000000000000000000000000000000006C
66593 +:10A4F000000000000000000000000000000000005C
66594 +:10A50000000000000000000000000000000000004B
66595 +:10A51000000000000000000000000000000000003B
66596 +:10A52000000000000000000000000000000000002B
66597 +:10A53000000000000000000000000000000000001B
66598 +:10A54000000000000000000000000000000000000B
66599 +:10A5500000000000000000000000000000000000FB
66600 +:10A5600000000000000000000000000000000000EB
66601 +:10A5700000000000000000000000000000000000DB
66602 +:10A5800000000000000000000000000000000000CB
66603 +:10A5900000000000000000000000000000000000BB
66604 +:10A5A00000000000000000000000000000000000AB
66605 +:10A5B000000000000000000000000000000000009B
66606 +:10A5C000000000000000000000000000000000008B
66607 +:10A5D000000000000000000000000000000000007B
66608 +:10A5E000000000000000000000000000000000006B
66609 +:10A5F000000000000000000000000000000000005B
66610 +:10A60000000000000000000000000000000000004A
66611 +:10A61000000000000000000000000000000000003A
66612 +:10A62000000000000000000000000000000000002A
66613 +:10A63000000000000000000000000000000000001A
66614 +:10A64000000000000000000000000000000000000A
66615 +:10A6500000000000000000000000000000000000FA
66616 +:10A6600000000000000000000000000000000000EA
66617 +:10A6700000000000000000000000000000000000DA
66618 +:10A6800000000000000000000000000000000000CA
66619 +:10A6900000000000000000000000000000000000BA
66620 +:10A6A00000000000000000000000000000000000AA
66621 +:10A6B000000000000000000000000000000000009A
66622 +:10A6C000000000000000000000000000000000008A
66623 +:10A6D000000000000000000000000000000000007A
66624 +:10A6E000000000000000000000000000000000006A
66625 +:10A6F000000000000000000000000000000000005A
66626 +:10A700000000000000000000000000000000000049
66627 +:10A710000000000000000000000000000000000039
66628 +:10A720000000000000000000000000000000000029
66629 +:10A730000000000000000000000000000000000019
66630 +:10A740000000000000000000000000000000000009
66631 +:10A7500000000000000000000000000000000000F9
66632 +:10A7600000000000000000000000000000000000E9
66633 +:10A7700000000000000000000000000000000000D9
66634 +:10A7800000000000000000000000000000000000C9
66635 +:10A7900000000000000000000000000000000000B9
66636 +:10A7A00000000000000000000000000000000000A9
66637 +:10A7B0000000000000000000000000000000000099
66638 +:10A7C0000000000000000000000000000000000089
66639 +:10A7D0000000000000000000000000000000000079
66640 +:10A7E0000000000000000000000000000000000069
66641 +:10A7F0000000000000000000000000000000000059
66642 +:10A800000000000000000000000000000000000048
66643 +:10A810000000000000000000000000000000000038
66644 +:10A820000000000000000000000000000000000028
66645 +:10A830000000000000000000000000000000000018
66646 +:10A840000000000000000000000000000000000008
66647 +:10A8500000000000000000000000000000000000F8
66648 +:10A8600000000000000000000000000000000000E8
66649 +:10A8700000000000000000000000000000000000D8
66650 +:10A8800000000000000000000000000000000000C8
66651 +:10A8900000000000000000000000000000000000B8
66652 +:10A8A00000000000000000000000000000000000A8
66653 +:10A8B0000000000000000000000000000000000098
66654 +:10A8C0000000000000000000000000000000000088
66655 +:10A8D0000000000000000000000000000000000078
66656 +:10A8E0000000000000000000000000000000000068
66657 +:10A8F0000000000000000000000000000000000058
66658 +:10A900000000000000000000000000000000000047
66659 +:10A910000000000000000000000000000000000037
66660 +:10A920000000000000000000000000000000000027
66661 +:10A930000000000000000000000000000000000017
66662 +:10A940000000000000000000000000000000000007
66663 +:10A9500000000000000000000000000000000000F7
66664 +:10A9600000000000000000000000000000000000E7
66665 +:10A9700000000000000000000000000000000000D7
66666 +:10A9800000000000000000000000000000000000C7
66667 +:10A9900000000000000000000000000000000000B7
66668 +:10A9A00000000000000000000000000000000000A7
66669 +:10A9B0000000000000000000000000000000000097
66670 +:10A9C0000000000000000000000000000000000087
66671 +:10A9D0000000000000000000000000000000000077
66672 +:10A9E0000000000000000000000000000000000067
66673 +:10A9F0000000000000000000000000000000000057
66674 +:10AA00000000000000000000000000000000000046
66675 +:10AA10000000000000000000000000000000000036
66676 +:10AA20000000000000000000000000000000000026
66677 +:10AA30000000000000000000000000000000000016
66678 +:10AA40000000000000000000000000000000000006
66679 +:10AA500000000000000000000000000000000000F6
66680 +:10AA600000000000000000000000000000000000E6
66681 +:10AA700000000000000000000000000000000000D6
66682 +:10AA800000000000000000000000000000000000C6
66683 +:10AA900000000000000000000000000000000000B6
66684 +:10AAA00000000000000000000000000000000000A6
66685 +:10AAB0000000000000000000000000000000000096
66686 +:10AAC0000000000000000000000000000000000086
66687 +:10AAD0000000000000000000000000000000000076
66688 +:10AAE0000000000000000000000000000000000066
66689 +:10AAF0000000000000000000000000000000000056
66690 +:10AB00000000000000000000000000000000000045
66691 +:10AB10000000000000000000000000000000000035
66692 +:10AB20000000000000000000000000000000000025
66693 +:10AB30000000000000000000000000000000000015
66694 +:10AB40000000000000000000000000000000000005
66695 +:10AB500000000000000000000000000000000000F5
66696 +:10AB600000000000000000000000000000000000E5
66697 +:10AB700000000000000000000000000000000000D5
66698 +:10AB800000000000000000000000000000000000C5
66699 +:10AB900000000000000000000000000000000000B5
66700 +:10ABA00000000000000000000000000000000000A5
66701 +:10ABB0000000000000000000000000000000000095
66702 +:10ABC0000000000000000000000000000000000085
66703 +:10ABD0000000000000000000000000000000000075
66704 +:10ABE0000000000000000000000000000000000065
66705 +:10ABF0000000000000000000000000000000000055
66706 +:10AC00000000000000000000000000000000000044
66707 +:10AC10000000000000000000000000000000000034
66708 +:10AC20000000000000000000000000000000000024
66709 +:10AC30000000000000000000000000000000000014
66710 +:10AC40000000000000000000000000000000000004
66711 +:10AC500000000000000000000000000000000000F4
66712 +:10AC600000000000000000000000000000000000E4
66713 +:10AC700000000000000000000000000000000000D4
66714 +:10AC800000000000000000000000000000000000C4
66715 +:10AC900000000000000000000000000000000000B4
66716 +:10ACA00000000000000000000000000000000000A4
66717 +:10ACB0000000000000000000000000000000000094
66718 +:10ACC0000000000000000000000000000000000084
66719 +:10ACD0000000000000000000000000000000000074
66720 +:10ACE0000000000000000000000000000000000064
66721 +:10ACF0000000000000000000000000000000000054
66722 +:10AD00000000000000000000000000000000000043
66723 +:10AD10000000000000000000000000000000000033
66724 +:10AD20000000000000000000000000000000000023
66725 +:10AD30000000000000000000000000000000000013
66726 +:10AD40000000000000000000000000000000000003
66727 +:10AD500000000000000000000000000000000000F3
66728 +:10AD600000000000000000000000000000000000E3
66729 +:10AD700000000000000000000000000000000000D3
66730 +:10AD800000000000000000000000000000000000C3
66731 +:10AD900000000000000000000000000000000000B3
66732 +:10ADA00000000000000000000000000000000000A3
66733 +:10ADB0000000000000000000000000000000000093
66734 +:10ADC0000000000000000000000000000000000083
66735 +:10ADD0000000000000000000000000000000000073
66736 +:10ADE0000000000000000000000000000000000063
66737 +:10ADF0000000000000000000000000000000000053
66738 +:10AE00000000000000000000000000000000000042
66739 +:10AE10000000000000000000000000000000000032
66740 +:10AE20000000000000000000000000000000000022
66741 +:10AE30000000000000000000000000000000000012
66742 +:10AE40000000000000000000000000000000000002
66743 +:10AE500000000000000000000000000000000000F2
66744 +:10AE600000000000000000000000000000000000E2
66745 +:10AE700000000000000000000000000000000000D2
66746 +:10AE800000000000000000000000000000000000C2
66747 +:10AE900000000000000000000000000000000000B2
66748 +:10AEA00000000000000000000000000000000000A2
66749 +:10AEB0000000000000000000000000000000000092
66750 +:10AEC0000000000000000000000000000000000082
66751 +:10AED0000000000000000000000000000000000072
66752 +:10AEE0000000000000000000000000000000000062
66753 +:10AEF0000000000000000000000000000000000052
66754 +:10AF00000000000000000000000000000000000041
66755 +:10AF10000000000000000000000000000000000031
66756 +:10AF20000000000000000000000000000000000021
66757 +:10AF30000000000000000000000000000000000011
66758 +:10AF40000000000000000000000000000000000001
66759 +:10AF500000000000000000000000000000000000F1
66760 +:10AF600000000000000000000000000000000000E1
66761 +:10AF700000000000000000000000000000000000D1
66762 +:10AF800000000000000000000000000000000000C1
66763 +:10AF900000000000000000000000000000000000B1
66764 +:10AFA00000000000000000000000000000000000A1
66765 +:10AFB0000000000000000000000000000000000091
66766 +:10AFC0000000000000000000000000000000000081
66767 +:10AFD0000000000000000000000000000000000071
66768 +:10AFE0000000000000000000000000000000000061
66769 +:10AFF0000000000000000000000000000000000051
66770 +:10B000000000000000000000000000000000000040
66771 +:10B010000000000000000000000000000000000030
66772 +:10B020000000000000000000000000000000000020
66773 +:10B030000000000000000000000000000000000010
66774 +:10B040000000000000000000000000000000000000
66775 +:10B0500000000000000000000000000000000000F0
66776 +:10B0600000000000000000000000000000000000E0
66777 +:10B0700000000000000000000000000000000000D0
66778 +:10B0800000000000000000000000000000000000C0
66779 +:10B0900000000000000000000000000000000000B0
66780 +:10B0A00000000000000000000000000000000000A0
66781 +:10B0B0000000000000000000000000000000000090
66782 +:10B0C0000000000000000000000000000000000080
66783 +:10B0D0000000000000000000000000000000000070
66784 +:10B0E0000000000000000000000000000000000060
66785 +:10B0F0000000000000000000000000000000000050
66786 +:10B10000000000000000000000000000000000003F
66787 +:10B11000000000000000000000000000000000002F
66788 +:10B12000000000000000000000000000000000001F
66789 +:10B13000000000000000000000000000000000000F
66790 +:10B1400000000000000000000000000000000000FF
66791 +:10B1500000000000000000000000000000000000EF
66792 +:10B1600000000000000000000000000000000000DF
66793 +:10B1700000000000000000000000000000000000CF
66794 +:10B1800000000000000000000000000000000000BF
66795 +:10B1900000000000000000000000000000000000AF
66796 +:10B1A000000000000000000000000000000000009F
66797 +:10B1B000000000000000000000000000000000008F
66798 +:10B1C000000000000000000000000000000000007F
66799 +:10B1D000000000000000000000000000000000006F
66800 +:10B1E000000000000000000000000000000000005F
66801 +:10B1F000000000000000000000000000000000004F
66802 +:10B20000000000000000000000000000000000003E
66803 +:10B21000000000000000000000000000000000002E
66804 +:10B22000000000000000000000000000000000001E
66805 +:10B23000000000000000000000000000000000000E
66806 +:10B2400000000000000000000000000000000000FE
66807 +:10B2500000000000000000000000000000000000EE
66808 +:10B2600000000000000000000000000000000000DE
66809 +:10B2700000000000000000000000000000000000CE
66810 +:10B2800000000000000000000000000000000000BE
66811 +:10B2900000000000000000000000000000000000AE
66812 +:10B2A000000000000000000000000000000000009E
66813 +:10B2B000000000000000000000000000000000008E
66814 +:10B2C000000000000000000000000000000000007E
66815 +:10B2D000000000000000000000000000000000006E
66816 +:10B2E000000000000000000000000000000000005E
66817 +:10B2F000000000000000000000000000000000004E
66818 +:10B30000000000000000000000000000000000003D
66819 +:10B31000000000000000000000000000000000002D
66820 +:10B32000000000000000000000000000000000001D
66821 +:10B33000000000000000000000000000000000000D
66822 +:10B3400000000000000000000000000000000000FD
66823 +:10B3500000000000000000000000000000000000ED
66824 +:10B3600000000000000000000000000000000000DD
66825 +:10B3700000000000000000000000000000000000CD
66826 +:10B3800000000000000000000000000000000000BD
66827 +:10B3900000000000000000000000000000000000AD
66828 +:10B3A000000000000000000000000000000000009D
66829 +:10B3B000000000000000000000000000000000008D
66830 +:10B3C000000000000000000000000000000000007D
66831 +:10B3D000000000000000000000000000000000006D
66832 +:10B3E000000000000000000000000000000000005D
66833 +:10B3F000000000000000000000000000000000004D
66834 +:10B40000000000000000000000000000000000003C
66835 +:10B41000000000000000000000000000000000002C
66836 +:10B42000000000000000000000000000000000001C
66837 +:10B43000000000000000000000000000000000000C
66838 +:10B4400000000000000000000000000000000000FC
66839 +:10B4500000000000000000000000000000000000EC
66840 +:10B4600000000000000000000000000000000000DC
66841 +:10B4700000000000000000000000000000000000CC
66842 +:10B4800000000000000000000000000000000000BC
66843 +:10B4900000000000000000000000000000000000AC
66844 +:10B4A000000000000000000000000000000000009C
66845 +:10B4B000000000000000000000000000000000008C
66846 +:10B4C000000000000000000000000000000000007C
66847 +:10B4D000000000000000000000000000000000006C
66848 +:10B4E000000000000000000000000000000000005C
66849 +:10B4F000000000000000000000000000000000004C
66850 +:10B50000000000000000000000000000000000003B
66851 +:10B51000000000000000000000000000000000002B
66852 +:10B52000000000000000000000000000000000001B
66853 +:10B53000000000000000000000000000000000000B
66854 +:10B5400000000000000000000000000000000000FB
66855 +:10B5500000000000000000000000000000000000EB
66856 +:10B5600000000000000000000000000000000000DB
66857 +:10B5700000000000000000000000000000000000CB
66858 +:10B5800000000000000000000000000000000000BB
66859 +:10B5900000000000000000000000000000000000AB
66860 +:10B5A000000000000000000000000000000000009B
66861 +:10B5B000000000000000000000000000000000008B
66862 +:10B5C000000000000000000000000000000000007B
66863 +:10B5D000000000000000000000000000000000006B
66864 +:10B5E000000000000000000000000000000000005B
66865 +:10B5F000000000000000000000000000000000004B
66866 +:10B60000000000000000000000000000000000003A
66867 +:10B61000000000000000000000000000000000002A
66868 +:10B62000000000000000000000000000000000001A
66869 +:10B63000000000000000000000000000000000000A
66870 +:10B6400000000000000000000000000000000000FA
66871 +:10B6500000000000000000000000000000000000EA
66872 +:10B6600000000000000000000000000000000000DA
66873 +:10B6700000000000000000000000000000000000CA
66874 +:10B6800000000000000000000000000000000000BA
66875 +:10B6900000000000000000000000000000000000AA
66876 +:10B6A000000000000000000000000000000000009A
66877 +:10B6B000000000000000000000000000000000008A
66878 +:10B6C000000000000000000000000000000000007A
66879 +:10B6D000000000000000000000000000000000006A
66880 +:10B6E000000000000000000000000000000000005A
66881 +:10B6F000000000000000000000000000000000004A
66882 +:10B700000000000000000000000000000000000039
66883 +:10B710000000000000000000000000000000000029
66884 +:10B720000000000000000000000000000000000019
66885 +:10B730000000000000000000000000000000000009
66886 +:10B7400000000000000000000000000000000000F9
66887 +:10B7500000000000000000000000000000000000E9
66888 +:10B7600000000000000000000000000000000000D9
66889 +:10B7700000000000000000000000000000000000C9
66890 +:10B7800000000000000000000000000000000000B9
66891 +:10B7900000000000000000000000000000000000A9
66892 +:10B7A0000000000000000000000000000000000099
66893 +:10B7B0000000000000000000000000000000000089
66894 +:10B7C0000000000000000000000000000000000079
66895 +:10B7D0000000000000000000000000000000000069
66896 +:10B7E0000000000000000000000000000000000059
66897 +:10B7F0000000000000000000000000000000000049
66898 +:10B800000000000000000000000000000000000038
66899 +:10B810000000000000000000000000000000000028
66900 +:10B820000000000000000000000000000000000018
66901 +:10B830000000000000000000000000000000000008
66902 +:10B8400000000000000000000000000000000000F8
66903 +:10B8500000000000000000000000000000000000E8
66904 +:10B8600000000000000000000000000000000000D8
66905 +:10B8700000000000000000000000000000000000C8
66906 +:10B8800000000000000000000000000000000000B8
66907 +:10B8900000000000000000000000000000000000A8
66908 +:10B8A0000000000000000000000000000000000098
66909 +:10B8B0000000000000000000000000000000000088
66910 +:10B8C0000000000000000000000000000000000078
66911 +:10B8D0000000000000000000000000000000000068
66912 +:10B8E0000000000000000000000000000000000058
66913 +:10B8F0000000000000000000000000000000000048
66914 +:10B900000000000000000000000000000000000037
66915 +:10B910000000000000000000000000000000000027
66916 +:10B920000000000000000000000000000000000017
66917 +:10B930000000000000000000000000000000000007
66918 +:10B9400000000000000000000000000000000000F7
66919 +:10B9500000000000000000000000000000000000E7
66920 +:10B9600000000000000000000000000000000000D7
66921 +:10B9700000000000000000000000000000000000C7
66922 +:10B9800000000000000000000000000000000000B7
66923 +:10B9900000000000000000000000000000000000A7
66924 +:10B9A0000000000000000000000000000000000097
66925 +:10B9B0000000000000000000000000000000000087
66926 +:10B9C0000000000000000000000000000000000077
66927 +:10B9D0000000000000000000000000000000000067
66928 +:10B9E0000000000000000000000000000000000057
66929 +:10B9F0000000000000000000000000000000000047
66930 +:10BA00000000000000000000000000000000000036
66931 +:10BA10000000000000000000000000000000000026
66932 +:10BA20000000000000000000000000000000000016
66933 +:10BA30000000000000000000000000000000000006
66934 +:10BA400000000000000000000000000000000000F6
66935 +:10BA500000000000000000000000000000000000E6
66936 +:10BA600000000000000000000000000000000000D6
66937 +:10BA700000000000000000000000000000000000C6
66938 +:10BA800000000000000000000000000000000000B6
66939 +:10BA900000000000000000000000000000000000A6
66940 +:10BAA0000000000000000000000000000000000096
66941 +:10BAB0000000000000000000000000000000000086
66942 +:10BAC0000000000000000000000000000000000076
66943 +:10BAD0000000000000000000000000000000000066
66944 +:10BAE0000000000000000000000000000000000056
66945 +:10BAF0000000000000000000000000000000000046
66946 +:10BB00000000000000000000000000000000000035
66947 +:10BB10000000000000000000000000000000000025
66948 +:10BB20000000000000000000000000000000000015
66949 +:10BB30000000000000000000000000000000000005
66950 +:10BB400000000000000000000000000000000000F5
66951 +:10BB500000000000000000000000000000000000E5
66952 +:10BB600000000000000000000000000000000000D5
66953 +:10BB700000000000000000000000000000000000C5
66954 +:10BB800000000000000000000000000000000000B5
66955 +:10BB900000000000000000000000000000000000A5
66956 +:10BBA0000000000000000000000000000000000095
66957 +:10BBB0000000000000000000000000000000000085
66958 +:10BBC0000000000000000000000000000000000075
66959 +:10BBD0000000000000000000000000000000000065
66960 +:10BBE0000000000000000000000000000000000055
66961 +:10BBF0000000000000000000000000000000000045
66962 +:10BC00000000000000000000000000000000000034
66963 +:10BC10000000000000000000000000000000000024
66964 +:10BC20000000000000000000000000000000000014
66965 +:10BC30000000000000000000000000000000000004
66966 +:10BC400000000000000000000000000000000000F4
66967 +:10BC500000000000000000000000000000000000E4
66968 +:10BC600000000000000000000000000000000000D4
66969 +:10BC700000000000000000000000000000000000C4
66970 +:10BC800000000000000000000000000000000000B4
66971 +:10BC900000000000000000000000000000000000A4
66972 +:10BCA0000000000000000000000000000000000094
66973 +:10BCB0000000000000000000000000000000000084
66974 +:10BCC0000000000000000000000000000000000074
66975 +:10BCD0000000000000000000000000000000000064
66976 +:10BCE0000000000000000000000000000000000054
66977 +:10BCF0000000000000000000000000000000000044
66978 +:10BD00000000000000000000000000000000000033
66979 +:10BD10000000000000000000000000000000000023
66980 +:10BD20000000000000000000000000000000000013
66981 +:10BD30000000000000000000000000000000000003
66982 +:10BD400000000000000000000000000000000000F3
66983 +:10BD500000000000000000000000000000000000E3
66984 +:10BD600000000000000000000000000000000000D3
66985 +:10BD700000000000000000000000000000000000C3
66986 +:10BD800000000000000000000000000000000000B3
66987 +:10BD900000000000000000000000000000000000A3
66988 +:10BDA0000000000000000000000000000000000093
66989 +:10BDB0000000000000000000000000000000000083
66990 +:10BDC0000000000000000000000000000000000073
66991 +:10BDD0000000000000000000000000000000000063
66992 +:10BDE0000000000000000000000000000000000053
66993 +:10BDF0000000000000000000000000000000000043
66994 +:10BE00000000000000000000000000000000000032
66995 +:10BE10000000000000000000000000000000000022
66996 +:10BE20000000000000000000000000000000000012
66997 +:10BE30000000000000000000000000000000000002
66998 +:10BE400000000000000000000000000000000000F2
66999 +:10BE500000000000000000000000000000000000E2
67000 +:10BE600000000000000000000000000000000000D2
67001 +:10BE700000000000000000000000000000000000C2
67002 +:10BE800000000000000000000000000000000000B2
67003 +:10BE900000000000000000000000000000000000A2
67004 +:10BEA0000000000000000000000000000000000092
67005 +:10BEB0000000000000000000000000000000000082
67006 +:10BEC0000000000000000000000000000000000072
67007 +:10BED0000000000000000000000000000000000062
67008 +:10BEE0000000000000000000000000000000000052
67009 +:10BEF0000000000000000000000000000000000042
67010 +:10BF00000000000000000000000000000000000031
67011 +:10BF10000000000000000000000000000000000021
67012 +:10BF20000000000000000000000000000000000011
67013 +:10BF30000000000000000000000000000000000001
67014 +:10BF400000000000000000000000000000000000F1
67015 +:10BF500000000000000000000000000000000000E1
67016 +:10BF600000000000000000000000000000000000D1
67017 +:10BF700000000000000000000000000000000000C1
67018 +:10BF800000000000000000000000000000000000B1
67019 +:10BF900000000000000000000000000000000000A1
67020 +:10BFA0000000000000000000000000000000000091
67021 +:10BFB0000000000000000000000000000000000081
67022 +:10BFC0000000000000000000000000000000000071
67023 +:10BFD0000000000000000000000000000000000061
67024 +:10BFE0000000000000000000000000000000000051
67025 +:10BFF0000000000000000000000000000000000041
67026 +:10C000000000000000000000000000000000000030
67027 +:10C010000000000000000000000000000000000020
67028 +:10C020000000000000000000000000000000000010
67029 +:10C030000000000000000000000000000000000000
67030 +:10C0400000000000000000000000000000000000F0
67031 +:10C0500000000000000000000000000000000000E0
67032 +:10C0600000000000000000000000000000000000D0
67033 +:10C0700000000000000000000000000000000000C0
67034 +:10C0800000000000000000000000000000000000B0
67035 +:10C0900000000000000000000000000000000000A0
67036 +:10C0A0000000000000000000000000000000000090
67037 +:10C0B0000000000000000000000000000000000080
67038 +:10C0C0000000000000000000000000000000000070
67039 +:10C0D0000000000000000000000000000000000060
67040 +:10C0E0000000000000000000000000000000000050
67041 +:10C0F0000000000000000000000000000000000040
67042 +:10C10000000000000000000000000000000000002F
67043 +:10C11000000000000000000000000000000000001F
67044 +:10C12000000000000000000000000000000000000F
67045 +:10C1300000000000000000000000000000000000FF
67046 +:10C1400000000000000000000000000000000000EF
67047 +:10C1500000000000000000000000000000000000DF
67048 +:10C1600000000000000000000000000000000000CF
67049 +:10C1700000000000000000000000000000000000BF
67050 +:10C1800000000000000000000000000000000000AF
67051 +:10C19000000000000000000000000000000000009F
67052 +:10C1A000000000000000000000000000000000008F
67053 +:10C1B000000000000000000000000000000000007F
67054 +:10C1C000000000000000000000000000000000006F
67055 +:10C1D000000000000000000000000000000000005F
67056 +:10C1E000000000000000000000000000000000004F
67057 +:10C1F000000000000000000000000000000000003F
67058 +:10C20000000000000000000000000000000000002E
67059 +:10C21000000000000000000000000000000000001E
67060 +:10C22000000000000000000000000000000000000E
67061 +:10C2300000000000000000000000000000000000FE
67062 +:10C2400000000000000000000000000000000000EE
67063 +:10C2500000000000000000000000000000000000DE
67064 +:10C2600000000000000000000000000000000000CE
67065 +:10C2700000000000000000000000000000000000BE
67066 +:10C2800000000000000000000000000000000000AE
67067 +:10C29000000000000000000000000000000000009E
67068 +:10C2A000000000000000000000000000000000008E
67069 +:10C2B000000000000000000000000000000000007E
67070 +:10C2C000000000000000000000000000000000006E
67071 +:10C2D000000000000000000000000000000000005E
67072 +:10C2E000000000000000000000000000000000004E
67073 +:10C2F000000000000000000000000000000000003E
67074 +:10C30000000000000000000000000000000000002D
67075 +:10C31000000000000000000000000000000000001D
67076 +:10C32000000000000000000000000000000000000D
67077 +:10C3300000000000000000000000000000000000FD
67078 +:10C3400000000000000000000000000000000000ED
67079 +:10C3500000000000000000000000000000000000DD
67080 +:10C3600000000000000000000000000000000000CD
67081 +:10C3700000000000000000000000000000000000BD
67082 +:10C3800000000000000000000000000000000000AD
67083 +:10C39000000000000000000000000000000000009D
67084 +:10C3A000000000000000000000000000000000008D
67085 +:10C3B000000000000000000000000000000000007D
67086 +:10C3C000000000000000000000000000000000006D
67087 +:10C3D000000000000000000000000000000000005D
67088 +:10C3E000000000000000000000000000000000004D
67089 +:10C3F000000000000000000000000000000000003D
67090 +:10C40000000000000000000000000000000000002C
67091 +:10C41000000000000000000000000000000000001C
67092 +:10C42000000000000000000000000000000000000C
67093 +:10C4300000000000000000000000000000000000FC
67094 +:10C4400000000000000000000000000000000000EC
67095 +:10C4500000000000000000000000000000000000DC
67096 +:10C4600000000000000000000000000000000000CC
67097 +:10C4700000000000000000000000000000000000BC
67098 +:10C4800000000000000000000000000000000000AC
67099 +:10C49000000000000000000000000000000000009C
67100 +:10C4A000000000000000000000000000000000008C
67101 +:10C4B000000000000000000000000000000000007C
67102 +:10C4C000000000000000000000000000000000006C
67103 +:10C4D000000000000000000000000000000000005C
67104 +:10C4E000000000000000000000000000000000004C
67105 +:10C4F000000000000000000000000000000000003C
67106 +:10C50000000000000000000000000000000000002B
67107 +:10C51000000000000000000000000000000000001B
67108 +:10C52000000000000000000000000000000000000B
67109 +:10C5300000000000000000000000000000000000FB
67110 +:10C5400000000000000000000000000000000000EB
67111 +:10C5500000000000000000000000000000000000DB
67112 +:10C5600000000000000000000000000000000000CB
67113 +:10C5700000000000000000000000000000000000BB
67114 +:10C5800000000000000000000000000000000000AB
67115 +:10C59000000000000000000000000000000000009B
67116 +:10C5A000000000000000000000000000000000008B
67117 +:10C5B000000000000000000000000000000000007B
67118 +:10C5C000000000000000000000000000000000006B
67119 +:10C5D000000000000000000000000000000000005B
67120 +:10C5E000000000000000000000000000000000004B
67121 +:10C5F000000000000000000000000000000000003B
67122 +:10C60000000000000000000000000000000000002A
67123 +:10C61000000000000000000000000000000000001A
67124 +:10C62000000000000000000000000000000000000A
67125 +:10C6300000000000000000000000000000000000FA
67126 +:10C6400000000000000000000000000000000000EA
67127 +:10C6500000000000000000000000000000000000DA
67128 +:10C6600000000000000000000000000000000000CA
67129 +:10C6700000000000000000000000000000000000BA
67130 +:10C6800000000000000000000000000000000000AA
67131 +:10C69000000000000000000000000000000000009A
67132 +:10C6A000000000000000000000000000000000008A
67133 +:10C6B000000000000000000000000000000000007A
67134 +:10C6C000000000000000000000000000000000006A
67135 +:10C6D000000000000000000000000000000000005A
67136 +:10C6E000000000000000000000000000000000004A
67137 +:10C6F000000000000000000000000000000000003A
67138 +:10C700000000000000000000000000000000000029
67139 +:10C710000000000000000000000000000000000019
67140 +:10C720000000000000000000000000000000000009
67141 +:10C7300000000000000000000000000000000000F9
67142 +:10C7400000000000000000000000000000000000E9
67143 +:10C7500000000000000000000000000000000000D9
67144 +:10C7600000000000000000000000000000000000C9
67145 +:10C7700000000000000000000000000000000000B9
67146 +:10C7800000000000000000000000000000000000A9
67147 +:10C790000000000000000000000000000000000099
67148 +:10C7A0000000000000000000000000000000000089
67149 +:10C7B0000000000000000000000000000000000079
67150 +:10C7C0000000000000000000000000000000000069
67151 +:10C7D0000000000000000000000000000000000059
67152 +:10C7E0000000000000000000000000000000000049
67153 +:10C7F0000000000000000000000000000000000039
67154 +:10C800000000000000000000000000000000000028
67155 +:10C810000000000000000000000000000000000018
67156 +:10C820000000000000000000000000000000000008
67157 +:10C8300000000000000000000000000000000000F8
67158 +:10C8400000000000000000000000000000000000E8
67159 +:10C8500000000000000000000000000000000000D8
67160 +:10C8600000000000000000000000000000000000C8
67161 +:10C8700000000000000000000000000000000000B8
67162 +:10C8800000000000000000000000000000000000A8
67163 +:10C890000000000000000000000000000000000098
67164 +:10C8A0000000000000000000000000000000000088
67165 +:10C8B0000000000000000000000000000000000078
67166 +:10C8C0000000000000000000000000000000000068
67167 +:10C8D0000000000000000000000000000000000058
67168 +:10C8E0000000000000000000000000000000000048
67169 +:10C8F0000000000000000000000000000000000038
67170 +:10C900000000000000000000000000000000000027
67171 +:10C910000000000000000000000000000000000017
67172 +:10C920000000000000000000000000000000000007
67173 +:10C9300000000000000000000000000000000000F7
67174 +:10C9400000000000000000000000000000000000E7
67175 +:10C9500000000000000000000000000000000000D7
67176 +:10C9600000000000000000000000000000000000C7
67177 +:10C9700000000000000000000000000000000000B7
67178 +:10C9800000000000000000000000000000000000A7
67179 +:10C990000000000000000000000000000000000097
67180 +:10C9A0000000000000000000000000000000000087
67181 +:10C9B0000000000000000000000000000000000077
67182 +:10C9C0000000000000000000000000000000000067
67183 +:10C9D0000000000000000000000000000000000057
67184 +:10C9E0000000000000000000000000000000000047
67185 +:10C9F0000000000000000000000000000000000037
67186 +:10CA00000000000000000000000000000000000026
67187 +:10CA10000000000000000000000000000000000016
67188 +:10CA20000000000000000000000000000000000006
67189 +:10CA300000000000000000000000000000000000F6
67190 +:10CA400000000000000000000000000000000000E6
67191 +:10CA500000000000000000000000000000000000D6
67192 +:10CA600000000000000000000000000000000000C6
67193 +:10CA700000000000000000000000000000000000B6
67194 +:10CA800000000000000000000000000000000000A6
67195 +:10CA90000000000000000000000000000000000096
67196 +:10CAA0000000000000000000000000000000000086
67197 +:10CAB0000000000000000000000000000000000076
67198 +:10CAC0000000000000000000000000000000000066
67199 +:10CAD0000000000000000000000000000000000056
67200 +:10CAE0000000000000000000000000000000000046
67201 +:10CAF0000000000000000000000000000000000036
67202 +:10CB00000000000000000000000000000000000025
67203 +:10CB10000000000000000000000000000000000015
67204 +:10CB20000000000000000000000000000000000005
67205 +:10CB300000000000000000000000000000000000F5
67206 +:10CB400000000000000000000000000000000000E5
67207 +:10CB500000000000000000000000000000000000D5
67208 +:10CB600000000000000000000000000000000000C5
67209 +:10CB700000000000000000000000000000000000B5
67210 +:10CB800000000000000000000000000000000000A5
67211 +:10CB90000000000000000000000000000000000095
67212 +:10CBA0000000000000000000000000000000000085
67213 +:10CBB0000000000000000000000000000000000075
67214 +:10CBC0000000000000000000000000000000000065
67215 +:10CBD0000000000000000000000000000000000055
67216 +:10CBE0000000000000000000000000000000000045
67217 +:10CBF0000000000000000000000000000000000035
67218 +:10CC00000000000000000000000000000000000024
67219 +:10CC10000000000000000000000000000000000014
67220 +:10CC20000000000000000000000000000000000004
67221 +:10CC300000000000000000000000000000000000F4
67222 +:10CC400000000000000000000000000000000000E4
67223 +:10CC500000000000000000000000000000000000D4
67224 +:10CC600000000000000000000000000000000000C4
67225 +:10CC700000000000000000000000000000000000B4
67226 +:10CC800000000000000000000000000000000000A4
67227 +:10CC90000000000000000000000000000000000094
67228 +:10CCA0000000000000000000000000000000000084
67229 +:10CCB0000000000000000000000000000000000074
67230 +:10CCC0000000000000000000000000000000000064
67231 +:10CCD0000000000000000000000000000000000054
67232 +:10CCE0000000000000000000000000000000000044
67233 +:10CCF0000000000000000000000000000000000034
67234 +:10CD00000000000000000000000000000000000023
67235 +:10CD10000000000000000000000000000000000013
67236 +:10CD20000000000000000000000000000000000003
67237 +:10CD300000000000000000000000000000000000F3
67238 +:10CD400000000000000000000000000000000000E3
67239 +:10CD500000000000000000000000000000000000D3
67240 +:10CD600000000000000000000000000000000000C3
67241 +:10CD700000000000000000000000000000000000B3
67242 +:10CD800000000000000000000000000000000000A3
67243 +:10CD90000000000000000000000000000000000093
67244 +:10CDA0000000000000000000000000000000000083
67245 +:10CDB0000000000000000000000000000000000073
67246 +:10CDC0000000000000000000000000000000000063
67247 +:10CDD0000000000000000000000000000000000053
67248 +:10CDE0000000000000000000000000000000000043
67249 +:10CDF0000000000000000000000000000000000033
67250 +:10CE00000000000000000000000000000000000022
67251 +:10CE10000000000000000000000000000000000012
67252 +:10CE20000000000000000000000000000000000002
67253 +:10CE300000000000000000000000000000000000F2
67254 +:10CE400000000000000000000000000000000000E2
67255 +:10CE500000000000000000000000000000000000D2
67256 +:10CE600000000000000000000000000000000000C2
67257 +:10CE700000000000000000000000000000000000B2
67258 +:10CE800000000000000000000000000000000000A2
67259 +:10CE90000000000000000000000000000000000092
67260 +:10CEA0000000000000000000000000000000000082
67261 +:10CEB0000000000000000000000000000000000072
67262 +:10CEC0000000000000000000000000000000000062
67263 +:10CED0000000000000000000000000000000000052
67264 +:10CEE0000000000000000000000000000000000042
67265 +:10CEF0000000000000000000000000000000000032
67266 +:10CF00000000000000000000000000000000000021
67267 +:10CF10000000000000000000000000000000000011
67268 +:10CF20000000000000000000000000000000000001
67269 +:10CF300000000000000000000000000000000000F1
67270 +:10CF400000000000000000000000000000000000E1
67271 +:10CF500000000000000000000000000000000000D1
67272 +:10CF600000000000000000000000000000000000C1
67273 +:10CF700000000000000000000000000000000000B1
67274 +:10CF800000000000000000000000000000000000A1
67275 +:10CF90000000000000000000000000000000000091
67276 +:10CFA0000000000000000000000000000000000081
67277 +:10CFB0000000000000000000000000000000000071
67278 +:10CFC0000000000000000000000000000000000061
67279 +:10CFD0000000000000000000000000000000000051
67280 +:10CFE0000000000000000000000000000000000041
67281 +:10CFF0000000000000000000000000000000000031
67282 +:10D000000000000000000000000000000000000020
67283 +:10D010000000000000000000000000000000000010
67284 +:10D020000000000000000000000000000000000000
67285 +:10D0300000000000000000000000000000000000F0
67286 +:10D0400000000000000000000000000000000000E0
67287 +:10D0500000000000000000000000000000000000D0
67288 +:10D0600000000000000000000000000000000000C0
67289 +:10D0700000000000000000000000000000000000B0
67290 +:10D0800000000000000000000000000000000000A0
67291 +:10D090000000000000000000000000000000000090
67292 +:10D0A0000000000000000000000000000000000080
67293 +:10D0B0000000000000000000000000000000000070
67294 +:10D0C0000000000000000000000000000000000060
67295 +:10D0D0000000000000000000000000000000000050
67296 +:10D0E0000000000000000000000000000000000040
67297 +:10D0F0000000000000000000000000000000000030
67298 +:10D10000000000000000000000000000000000001F
67299 +:10D11000000000000000000000000000000000000F
67300 +:10D1200000000000000000000000000000000000FF
67301 +:10D1300000000000000000000000000000000000EF
67302 +:10D1400000000000000000000000000000000000DF
67303 +:10D1500000000000000000000000000000000000CF
67304 +:10D1600000000000000000000000000000000000BF
67305 +:10D1700000000000000000000000000000000000AF
67306 +:10D18000000000000000000000000000000000009F
67307 +:10D19000000000000000000000000000000000008F
67308 +:10D1A000000000000000000000000000000000007F
67309 +:10D1B000000000000000000000000000000000006F
67310 +:10D1C000000000000000000000000000000000005F
67311 +:10D1D000000000000000000000000000000000004F
67312 +:10D1E000000000000000000000000000000000003F
67313 +:10D1F000000000000000000000000000000000002F
67314 +:10D20000000000000000000000000000000000001E
67315 +:10D21000000000000000000000000000000000000E
67316 +:10D2200000000000000000000000000000000000FE
67317 +:10D2300000000000000000000000000000000000EE
67318 +:10D2400000000000000000000000000000000000DE
67319 +:10D2500000000000000000000000000000000000CE
67320 +:10D2600000000000000000000000000000000000BE
67321 +:10D2700000000000000000000000000000000000AE
67322 +:10D28000000000000000000000000000000000009E
67323 +:10D29000000000000000000000000000000000008E
67324 +:10D2A000000000000000000000000000000000007E
67325 +:10D2B000000000000000000000000000000000006E
67326 +:10D2C000000000000000000000000000000000005E
67327 +:10D2D000000000000000000000000000000000004E
67328 +:10D2E000000000000000000000000000000000003E
67329 +:10D2F000000000000000000000000000000000002E
67330 +:10D30000000000000000000000000000000000001D
67331 +:10D31000000000000000000000000000000000000D
67332 +:10D3200000000000000000000000000000000000FD
67333 +:10D3300000000000000000000000000000000000ED
67334 +:10D3400000000000000000000000000000000000DD
67335 +:10D3500000000000000000000000000000000000CD
67336 +:10D3600000000000000000000000000000000000BD
67337 +:10D3700000000000000000000000000000000000AD
67338 +:10D38000000000000000000000000000000000009D
67339 +:10D39000000000000000000000000000000000008D
67340 +:10D3A000000000000000000000000000000000007D
67341 +:10D3B000000000000000000000000000000000006D
67342 +:10D3C000000000000000000000000000000000005D
67343 +:10D3D000000000000000000000000000000000004D
67344 +:10D3E000000000000000000000000000000000003D
67345 +:10D3F000000000000000000000000000000000002D
67346 +:10D40000000000000000000000000000000000001C
67347 +:10D41000000000000000000000000000000000000C
67348 +:10D4200000000000000000000000000000000000FC
67349 +:10D4300000000000000000000000000000000000EC
67350 +:10D4400000000000000000000000000000000000DC
67351 +:10D4500000000000000000000000000000000000CC
67352 +:10D4600000000000000000000000000000000000BC
67353 +:10D4700000000000000000000000000000000000AC
67354 +:10D48000000000000000000000000000000000009C
67355 +:10D49000000000000000000000000000000000008C
67356 +:10D4A000000000000000000000000000000000007C
67357 +:10D4B000000000000000000000000000000000006C
67358 +:10D4C000000000000000000000000000000000005C
67359 +:10D4D000000000000000000000000000000000004C
67360 +:10D4E000000000000000000000000000000000003C
67361 +:10D4F000000000000000000000000000000000002C
67362 +:10D50000000000000000000000000000000000001B
67363 +:10D51000000000000000000000000000000000000B
67364 +:10D5200000000000000000000000000000000000FB
67365 +:10D5300000000000000000000000000000000000EB
67366 +:10D5400000000000000000000000000000000000DB
67367 +:10D5500000000000000000000000000000000000CB
67368 +:10D5600000000000000000000000000000000000BB
67369 +:10D5700000000000000000000000000000000000AB
67370 +:10D58000000000000000000000000000000000009B
67371 +:10D59000000000000000008000000000000000000B
67372 +:10D5A000000000000000000000000000000000007B
67373 +:10D5B00000000000000000000000000A0000000061
67374 +:10D5C0000000000000000000100000030000000048
67375 +:10D5D0000000000D0000000D3C02080024427340D2
67376 +:10D5E0003C030800246377CCAC4000000043202BB0
67377 +:10D5F0001480FFFD244200043C1D080037BD7FFC61
67378 +:10D6000003A0F0213C100800261032103C1C08003A
67379 +:10D61000279C73400E0010FE000000000000000D6B
67380 +:10D6200030A5FFFF30C600FF274301808F4201B8BD
67381 +:10D630000440FFFE24020002AC640000A465000860
67382 +:10D64000A066000AA062000B3C021000AC67001844
67383 +:10D6500003E00008AF4201B83C0360008C624FF861
67384 +:10D660000440FFFE3C020200AC644FC0AC624FC4F9
67385 +:10D670003C02100003E00008AC624FF89482000CFA
67386 +:10D680002486001400A0382100021302000210803A
67387 +:10D690000082402100C8102B1040005700000000FD
67388 +:10D6A00090C300002C6200095040005190C200015C
67389 +:10D6B000000310803C030800246372F00043102133
67390 +:10D6C0008C420000004000080000000090C30001F0
67391 +:10D6D0002402000A1462003A000000000106102330
67392 +:10D6E0002C42000A1440003624C600028CE20000DE
67393 +:10D6F00034420100ACE2000090C2000090C300017F
67394 +:10D7000090C4000290C5000300031C000002160034
67395 +:10D710000043102500042200004410250045102578
67396 +:10D7200024C60004ACE2000490C2000090C30001D3
67397 +:10D7300090C4000290C500030002160000031C0004
67398 +:10D740000043102500042200004410250045102548
67399 +:10D7500024C600040A000CB8ACE2000890C3000123
67400 +:10D76000240200041462001624C6000290C20000C5
67401 +:10D7700090C400018CE30000000212000044102558
67402 +:10D780003463000424C60002ACE2000C0A000CB8AA
67403 +:10D79000ACE3000090C300012402000314620008FF
67404 +:10D7A00024C600028CE2000090C3000024C60001E1
67405 +:10D7B00034420008A0E300100A000CB8ACE20000FC
67406 +:10D7C00003E000082402000190C3000124020002CB
67407 +:10D7D0001062000224C40002010020210A000CB8DB
67408 +:10D7E000008030210A000CB824C6000190C200015C
67409 +:10D7F0000A000CB800C2302103E00008000010212C
67410 +:10D8000027BDFFE8AFBF0014AFB000100E00130239
67411 +:10D8100000808021936200052403FFFE0200202186
67412 +:10D82000004310248FBF00148FB00010A3620005C6
67413 +:10D830000A00130B27BD001827BDFFE8AFB000108A
67414 +:10D84000AFBF00140E000F3C0080802193620000E7
67415 +:10D8500024030050304200FF14430004240201005E
67416 +:10D86000AF4201800A000D3002002021AF4001804C
67417 +:10D87000020020218FBF00148FB000100A000FE7B4
67418 +:10D8800027BD001827BDFF80AFBE0078AFB700747A
67419 +:10D89000AFB20060AFBF007CAFB60070AFB5006C38
67420 +:10D8A000AFB40068AFB30064AFB1005CAFB0005874
67421 +:10D8B0008F5001283C0208008C4231A02403FF80D5
67422 +:10D8C0009365003F0202102100431024AF42002460
67423 +:10D8D0003C0208008C4231A09364000530B200FF86
67424 +:10D8E000020210213042007F034218210004202749
67425 +:10D8F0003C02000A0062182130840001AF8300144A
67426 +:10D900000000F0210000B82114800053AFA00050A7
67427 +:10D9100093430116934401128F450104306300FFC5
67428 +:10D920003C020001308400FF00A2282403431021A0
67429 +:10D9300003441821245640002467400014A001CD60
67430 +:10D940002402000193620000304300FF2402002003
67431 +:10D950001062000524020050106200060000000062
67432 +:10D960000A000D74000000000000000D0A000D7D8B
67433 +:10D97000AFA000303C1E080027DE738C0A000D7D2E
67434 +:10D98000AFA000303C0208008C4200DC24420001C1
67435 +:10D990003C010800AC2200DC0E00139F00000000D8
67436 +:10D9A0000A000F318FBF007C8F4201043C0300202E
67437 +:10D9B00092D3000D004310240002202B00042140CC
67438 +:10D9C000AFA400308F4301043C02004000621824E1
67439 +:10D9D000146000023485004000802821326200205B
67440 +:10D9E000AFA500301440000234A6008000A0302112
67441 +:10D9F00010C0000BAFA6003093C500088F67004C25
67442 +:10DA00000200202100052B0034A5008130A5F08103
67443 +:10DA10000E000C9B30C600FF0A000F2E0000000015
67444 +:10DA20009362003E304200401040000F2402000488
67445 +:10DA300056420007240200120200202100E02821A3
67446 +:10DA40000E0013F702C030210A000F318FBF007C97
67447 +:10DA500016420005000000000E000D2100002021EC
67448 +:10DA60000A000F318FBF007C9743011A96C4000E45
67449 +:10DA700093620035326500043075FFFF00442004D6
67450 +:10DA8000AFA400548ED1000410A000158ED400085D
67451 +:10DA90009362003E3042004010400007000000004A
67452 +:10DAA0000E0013E0022020211040000D00000000B5
67453 +:10DAB0000A000F2E000000008F6200440222102393
67454 +:10DAC0000440016A000000008F6200480222102317
67455 +:10DAD00004410166240400160A000E218FC20004CE
67456 +:10DAE0008F6200480222102304400008000000005A
67457 +:10DAF0003C0208008C423100244200013C01080035
67458 +:10DB0000AC2231000A000F23000000008F620040A9
67459 +:10DB100002221023184000128F8400143C020800D7
67460 +:10DB20008C423100327300FC0000A8212442000125
67461 +:10DB30003C010800AC2231008F6300409482011C3C
67462 +:10DB4000022318233042FFFF0043102A50400010E8
67463 +:10DB50002402000C8F6200400A000DF20222102302
67464 +:10DB60009483011C9762003C0043102B1040000678
67465 +:10DB7000000000009482011C00551023A482011CA7
67466 +:10DB80000A000DF72402000CA480011C2402000CE2
67467 +:10DB9000AFA200308F620040005120231880000D9A
67468 +:10DBA00002A4102A1440012600000000149500066B
67469 +:10DBB00002A410233A620001304200011440012007
67470 +:10DBC0000000000002A41023022488210A000E098C
67471 +:10DBD0003055FFFF00002021326200021040001A81
67472 +:10DBE000326200109362003E30420040504000110B
67473 +:10DBF0008FC200040E00130202002021240200182C
67474 +:10DC0000A362003F936200052403FFFE020020216F
67475 +:10DC1000004310240E00130BA362000524040039F6
67476 +:10DC2000000028210E0013C9240600180A000F3036
67477 +:10DC300024020001240400170040F809000000003D
67478 +:10DC40000A000F302402000110400108000000000B
67479 +:10DC50008F63004C8F620054028210231C4001032A
67480 +:10DC600002831023044200010060A021AFA4001829
67481 +:10DC7000AFB10010AFB50014934201208F65004092
67482 +:10DC80009763003C304200FF034210210044102102
67483 +:10DC90008FA400543063FFFF244240000083182B00
67484 +:10DCA0008FA40030AFA20020AFA50028008320255C
67485 +:10DCB000AFA40030AFA50024AFA0002CAFB4003457
67486 +:10DCC0009362003E30420008504000118FC20000B5
67487 +:10DCD00002C0202127A500380E000CB2AFA00038EA
67488 +:10DCE0005440000B8FC200008FA200383042010068
67489 +:10DCF000504000078FC200008FA3003C8F6200607D
67490 +:10DD00000062102304430001AF6300608FC2000073
67491 +:10DD10000040F80927A400108FA200303042000212
67492 +:10DD200054400001327300FE9362003E30420040D6
67493 +:10DD3000104000378FA200248F6200541682001A10
67494 +:10DD40003262000124020014124200102A4200151F
67495 +:10DD500010400006240200162402000C12420007A4
67496 +:10DD6000326200010A000E7D000000001242000530
67497 +:10DD7000326200010A000E7D000000000A000E78E9
67498 +:10DD80002417000E0A000E78241700100A000E7CDB
67499 +:10DD900024170012936200232403FFBD00431024C4
67500 +:10DDA000A362002332620001104000198FA20024F8
67501 +:10DDB0002402000C1242000E2A42000D1040000600
67502 +:10DDC0002402000E2402000A124200078FA200243F
67503 +:10DDD0000A000E9524420001124200088FA200247E
67504 +:10DDE0000A000E95244200010A000E932417000831
67505 +:10DDF0002402000E16E20002241700162417001059
67506 +:10DE00008FA2002424420001AFA200248FA200248C
67507 +:10DE10008FA300148F76004000431021AF620040B2
67508 +:10DE20008F8200149442011C104000090000000081
67509 +:10DE30008F6200488F6400409763003C00441023C9
67510 +:10DE40003063FFFF0043102A104000088FA20054E7
67511 +:10DE5000936400368F6300403402FFFC008210049C
67512 +:10DE600000621821AF6300488FA200548FA60030D3
67513 +:10DE70000282902130C200081040000E0000000015
67514 +:10DE80008F6200581642000430C600FF9742011A04
67515 +:10DE90005040000134C6001093C500088FA700341D
67516 +:10DEA0000200202100052B0034A500800E000C9BF1
67517 +:10DEB00030A5F0808F620040005610231840001BF0
67518 +:10DEC0008FA200183C0208008C42319830420010AA
67519 +:10DED0001040000D24020001976200681440000AFF
67520 +:10DEE000240200018F8200149442011C1440000699
67521 +:10DEF00024020001A76200689742007A244200646D
67522 +:10DF00000A000EE9A7620012A76200120E001302B7
67523 +:10DF1000020020219362007D2403000102002021E1
67524 +:10DF2000344200010A000EE7AFA300501840000A77
67525 +:10DF3000000000000E001302020020219362007D09
67526 +:10DF40002403000102002021AFA30050344200044A
67527 +:10DF50000E00130BA362007D9362003E304200402E
67528 +:10DF60001440000C326200011040000A0000000062
67529 +:10DF70008F6300408FC20004240400182463000152
67530 +:10DF80000040F809AF6300408FA200300A000F3054
67531 +:10DF9000304200048F620058105200100000000050
67532 +:10DFA0008F620018022210231C4000082404000184
67533 +:10DFB0008F62001816220009000000008F62001C0A
67534 +:10DFC000028210230440000500000000AF720058D8
67535 +:10DFD000AFA40050AF710018AF74001C12E0000B2A
67536 +:10DFE0008FA200500E00130202002021A377003FF1
67537 +:10DFF0000E00130B0200202102E030212404003720
67538 +:10E000000E0013C9000028218FA200501040000309
67539 +:10E01000000000000E000CA90200202112A0000543
67540 +:10E02000000018218FA2003030420004504000113F
67541 +:10E0300000601021240300010A000F30006010214D
67542 +:10E040000E001302020020219362007D02002021B5
67543 +:10E05000344200040E00130BA362007D0E000CA9D5
67544 +:10E06000020020210A000F3024020001AF400044CA
67545 +:10E07000240200018FBF007C8FBE00788FB7007430
67546 +:10E080008FB600708FB5006C8FB400688FB30064DA
67547 +:10E090008FB200608FB1005C8FB0005803E00008C1
67548 +:10E0A00027BD00808F4201B80440FFFE2402080013
67549 +:10E0B000AF4201B803E00008000000003C02000885
67550 +:10E0C00003421021944200483084FFFF2484001250
67551 +:10E0D0003045FFFF10A0001700A4102B10400016C1
67552 +:10E0E00024020003934201202403001AA343018B5E
67553 +:10E0F000304200FF2446FFFE8F82000000A6182B4E
67554 +:10E100003863000100021382004310241040000510
67555 +:10E110008F84000434820001A746019403E00008C4
67556 +:10E12000AF8200042402FFFE0082102403E00008F6
67557 +:10E13000AF8200042402000303E00008A342018B25
67558 +:10E1400027BDFFE0AFB10014AFB00010AFBF0018A3
67559 +:10E1500030B0FFFF30D1FFFF8F4201B80440FFFE17
67560 +:10E1600000000000AF440180AF4400200E000F42C9
67561 +:10E17000020020218F8300008F840004A750019AA1
67562 +:10E18000A750018EA74301908F8300083082800042
67563 +:10E19000AF4301A8A75101881040000E8F820004F0
67564 +:10E1A00093420116304200FC24420004005A102120
67565 +:10E1B0008C4240003042FFFF144000068F82000472
67566 +:10E1C0003C02FFFF34427FFF00821024AF82000434
67567 +:10E1D0008F8200042403BFFF00431024A74201A63E
67568 +:10E1E0009743010C8F42010400031C003042FFFFE3
67569 +:10E1F00000621825AF4301AC3C021000AF4201B8E9
67570 +:10E200008FBF00188FB100148FB0001003E000081A
67571 +:10E2100027BD00208F470070934201128F830000BA
67572 +:10E2200027BDFFF0304200FF00022882306201006B
67573 +:10E23000000030211040004324A40003306240005D
67574 +:10E24000104000103062200000041080005A10219D
67575 +:10E250008C43400024A4000400041080AFA30000FD
67576 +:10E26000005A10218C424000AFA2000493420116D4
67577 +:10E27000304200FC005A10218C4240000A000FC0BE
67578 +:10E28000AFA200081040002F0000302100041080D1
67579 +:10E29000005A10218C43400024A400040004108084
67580 +:10E2A000AFA30000005A10218C424000AFA000082C
67581 +:10E2B000AFA200048FA80008000030210000202138
67582 +:10E2C000240A00083C0908002529010003A41021A4
67583 +:10E2D000148A000300042A001100000A0000000054
67584 +:10E2E00090420000248400012C83000C00A2102125
67585 +:10E2F00000021080004910218C4200001460FFF3DE
67586 +:10E3000000C230263C0408008C8431048F42007027
67587 +:10E310002C83002010600009004738233C030800CC
67588 +:10E32000246331080004108000431021248300017D
67589 +:10E33000AC4700003C010800AC233104AF86000864
67590 +:10E340002406000100C0102103E0000827BD0010D2
67591 +:10E350003C0208008C42003827BDFFD0AFB5002436
67592 +:10E36000AFB40020AFB10014AFBF0028AFB3001CA2
67593 +:10E37000AFB20018AFB00010000088213C150800B3
67594 +:10E3800026B50038144000022454FFFF0000A021ED
67595 +:10E390009742010E8F8400003042FFFF308340001F
67596 +:10E3A0001060000A245200043C0200200082102465
67597 +:10E3B00050400007308280008F8200042403BFFF9A
67598 +:10E3C000008318240A0010103442100030828000AC
67599 +:10E3D0001040000A3C020020008210241040000778
67600 +:10E3E0008F8200043C03FFFF34637FFF0083182407
67601 +:10E3F00034428000AF820004AF8300000E000F980B
67602 +:10E400000000000014400007000000009743011EB8
67603 +:10E410009742011C3063FFFF0002140000621825C0
67604 +:10E42000AF8300089742010C8F4340003045FFFF47
67605 +:10E430003402FFFF14620003000000000A001028ED
67606 +:10E44000241100208F42400030420100544000015E
67607 +:10E45000241100108F8400003082100050400014FE
67608 +:10E4600036310001308200201440000B3C021000C5
67609 +:10E47000008210245040000E363100013C030E0093
67610 +:10E480003C020DFF008318243442FFFF0043102B91
67611 +:10E4900050400007363100013C0208008C42002C3D
67612 +:10E4A000244200013C010800AC22002C363100055A
67613 +:10E4B0003C0608008CC6003454C000238F85000041
67614 +:10E4C0008F820004304240005440001F8F850000BE
67615 +:10E4D0003C021F01008210243C0310005443001A28
67616 +:10E4E0008F85000030A20200144000178F850000C5
67617 +:10E4F0003250FFFF363100028F4201B80440FFFE68
67618 +:10E5000000000000AF400180020020210E000F42F9
67619 +:10E51000AF4000208F8300042402BFFFA750019A60
67620 +:10E52000006218248F820000A750018EA751018835
67621 +:10E53000A74301A6A74201903C021000AF4201B8D8
67622 +:10E540000A0010F5000010213C02100000A2102467
67623 +:10E550001040003A0000000010C0000F0000000052
67624 +:10E5600030A201001040000C3C0302003C020F00EE
67625 +:10E5700000A2102410430008000000008F82000851
67626 +:10E58000005410240055102190420004244200043D
67627 +:10E590000A00109F000221C00000000000051602C2
67628 +:10E5A0003050000F3A0300022E4203EF38420001C0
67629 +:10E5B0002C6300010062182414600073240200011F
67630 +:10E5C0003C0308008C6300D02E06000C386200016A
67631 +:10E5D0002C4200010046102414400015001021C0F8
67632 +:10E5E0002602FFFC2C4200045440001100002021B0
67633 +:10E5F000386200022C420001004610241040000343
67634 +:10E60000000512420A00109F000020210010182B64
67635 +:10E610000043102450400006001021C000002021BB
67636 +:10E620003245FFFF0E000F633226FFFB001021C0B2
67637 +:10E630003245FFFF0A0010F2362600028F424000EA
67638 +:10E640003C0308008C630024304201001040004667
67639 +:10E6500030620001322200043070000D14400002CC
67640 +:10E660002413000424130002000512C238420001E2
67641 +:10E670002E4303EF304200013863000100431025B0
67642 +:10E68000104000033231FFFB2402FFFB0202802412
67643 +:10E6900010C000183202000130A201001040001525
67644 +:10E6A000320200013C020F0000A210243C030200D1
67645 +:10E6B0001043000F8F8200082403FFFE0203802412
67646 +:10E6C00000541024005510219042000402333025DC
67647 +:10E6D0002442000412000002000221C03226FFFF83
67648 +:10E6E0000E000F633245FFFF1200002700001021CB
67649 +:10E6F000320200011040000D320200042402000129
67650 +:10E7000012020002023330253226FFFF00002021D2
67651 +:10E710000E000F633245FFFF2402FFFE0202802439
67652 +:10E7200012000019000010213202000410400016EF
67653 +:10E7300024020001240200041202000202333025E8
67654 +:10E740003226FFFF3245FFFF0E000F632404010055
67655 +:10E750002402FFFB020280241200000B00001021A3
67656 +:10E760000A0010F5240200011040000700001021EB
67657 +:10E770003245FFFF36260002000020210E000F6305
67658 +:10E7800000000000000010218FBF00288FB500247A
67659 +:10E790008FB400208FB3001C8FB200188FB100140B
67660 +:10E7A0008FB0001003E0000827BD003027BDFFD068
67661 +:10E7B000AFB000103C04600CAFBF002CAFB6002817
67662 +:10E7C000AFB50024AFB40020AFB3001CAFB2001847
67663 +:10E7D000AFB100148C8250002403FF7F3C1A8000EC
67664 +:10E7E000004310243442380CAC8250002402000351
67665 +:10E7F0003C106000AF4200088E0208083C1B8008F5
67666 +:10E800003C010800AC2000203042FFF038420010EC
67667 +:10E810002C4200010E001B8DAF8200183C04FFFF4C
67668 +:10E820003C020400348308063442000CAE0219484E
67669 +:10E83000AE03194C3C0560168E0219808CA30000B3
67670 +:10E840003442020000641824AE0219803C02535383
67671 +:10E850001462000334A47C008CA200040050202128
67672 +:10E860008C82007C8C830078AF820010AF83000C18
67673 +:10E870008F55000032A200031040FFFD32A20001BC
67674 +:10E880001040013D32A200028F420128AF42002019
67675 +:10E890008F4201048F430100AF8200000E000F3C45
67676 +:10E8A000AF8300043C0208008C4200C01040000806
67677 +:10E8B0008F8400003C0208008C4200C42442000106
67678 +:10E8C0003C010800AC2200C40A00126900000000EC
67679 +:10E8D0003C020010008210241440010C8F830004BD
67680 +:10E8E0003C0208008C4200203C0308008C63003886
67681 +:10E8F00000008821244200013C010800AC220020D5
67682 +:10E900003C16080026D60038146000022474FFFF6D
67683 +:10E910000000A0219742010E308340003042FFFFEB
67684 +:10E920001060000A245200043C02002000821024DF
67685 +:10E9300050400007308280008F8200042403BFFF14
67686 +:10E94000008318240A0011703442100030828000C5
67687 +:10E950001040000A3C0200200082102410400007F2
67688 +:10E960008F8200043C03FFFF34637FFF0083182481
67689 +:10E9700034428000AF820004AF8300000E000F9885
67690 +:10E980000000000014400007000000009743011E33
67691 +:10E990009742011C3063FFFF00021400006218253B
67692 +:10E9A000AF8300089742010C8F4340003045FFFFC2
67693 +:10E9B0003402FFFF14620003000000000A00118807
67694 +:10E9C000241100208F4240003042010054400001D9
67695 +:10E9D000241100108F840000308210005040001479
67696 +:10E9E00036310001308200201440000B3C02100040
67697 +:10E9F000008210245040000E363100013C030E000E
67698 +:10EA00003C020DFF008318243442FFFF0043102B0B
67699 +:10EA100050400007363100013C0208008C42002CB7
67700 +:10EA2000244200013C010800AC22002C36310005D4
67701 +:10EA30003C0608008CC6003454C000238F850000BB
67702 +:10EA40008F820004304240005440001F8F85000038
67703 +:10EA50003C021F01008210243C0310005443001AA2
67704 +:10EA60008F85000030A20200144000178F8500003F
67705 +:10EA70003250FFFF363100028F4201B80440FFFEE2
67706 +:10EA800000000000AF400180020020210E000F4274
67707 +:10EA9000AF4000208F8300042402BFFFA750019ADB
67708 +:10EAA000006218248F820000A750018EA7510188B0
67709 +:10EAB000A74301A6A74201903C021000AF4201B853
67710 +:10EAC0000A001267000010213C02100000A210246E
67711 +:10EAD0001040003A0000000010C0000F00000000CD
67712 +:10EAE00030A201001040000C3C0302003C020F0069
67713 +:10EAF00000A2102410430008000000008F820008CC
67714 +:10EB000000541024005610219042000424420004B6
67715 +:10EB10000A0011FF000221C00000000000051602DB
67716 +:10EB20003050000F3A0300022E4203EF384200013A
67717 +:10EB30002C63000100621824146000852402000187
67718 +:10EB40003C0308008C6300D02E06000C38620001E4
67719 +:10EB50002C4200010046102414400015001021C072
67720 +:10EB60002602FFFC2C42000454400011000020212A
67721 +:10EB7000386200022C42000100461024504000037D
67722 +:10EB8000000512420A0011FF000020210010182B7E
67723 +:10EB90000043102450400006001021C00000202136
67724 +:10EBA0003245FFFF0E000F633226FFFB001021C02D
67725 +:10EBB0003245FFFF0A001252362600028F42400003
67726 +:10EBC0003C0308008C6300243042010010400046E2
67727 +:10EBD00030620001322200043070000D1440000247
67728 +:10EBE0002413000424130002000512C2384200015D
67729 +:10EBF0002E4303EF3042000138630001004310252B
67730 +:10EC0000104000033231FFFB2402FFFB020280248C
67731 +:10EC100010C000183202000130A20100104000159F
67732 +:10EC2000320200013C020F0000A210243C0302004B
67733 +:10EC30001043000F8F8200082403FFFE020380248C
67734 +:10EC40000054102400561021904200040233302555
67735 +:10EC50002442000412000002000221C03226FFFFFD
67736 +:10EC60000E000F633245FFFF120000390000102133
67737 +:10EC7000320200011040000D3202000424020001A3
67738 +:10EC800012020002023330253226FFFF000020214D
67739 +:10EC90000E000F633245FFFF2402FFFE02028024B4
67740 +:10ECA0001200002B00001021320200041040002846
67741 +:10ECB0002402000124020004120200020233302563
67742 +:10ECC0003226FFFF3245FFFF0E000F6324040100D0
67743 +:10ECD0002402FFFB020280241200001D000010210C
67744 +:10ECE0000A001267240200015040001900001021A0
67745 +:10ECF0003245FFFF36260002000020210E000F6380
67746 +:10ED0000000000000A001267000010212402BFFF6B
67747 +:10ED1000006210241040000800000000240287FF59
67748 +:10ED200000621024144000083C020060008210249D
67749 +:10ED300010400005000000000E000D34000000002F
67750 +:10ED40000A001267000000000E0012C70000000059
67751 +:10ED5000104000063C0240008F4301243C0260202A
67752 +:10ED6000AC430014000000003C024000AF420138F8
67753 +:10ED70000000000032A200021040FEBD00000000B2
67754 +:10ED80008F4201403C044000AF4200208F430148C5
67755 +:10ED90003C02700000621824106400420000000071
67756 +:10EDA0000083102B144000063C0260003C0220004F
67757 +:10EDB000106200073C0240000A0012C3000000007D
67758 +:10EDC0001062003C3C0240000A0012C30000000038
67759 +:10EDD0008F4501408F4601448F42014800021402D2
67760 +:10EDE000304300FF240200041462000A274401801B
67761 +:10EDF0008F4201B80440FFFE2402001CAC850000D5
67762 +:10EE0000A082000B3C021000AF4201B80A0012C3FE
67763 +:10EE10003C0240002402000914620012000616029F
67764 +:10EE2000000229C0AF4500208F4201B80440FFFE18
67765 +:10EE30002402000124030003AF450180A343018B9A
67766 +:10EE4000A740018EA740019AA7400190AF4001A8BA
67767 +:10EE5000A7420188A74201A6AF4001AC3C021000C6
67768 +:10EE6000AF4201B88F4201B80440FFFE000000002D
67769 +:10EE7000AC8500008F42014800021402A482000801
67770 +:10EE800024020002A082000B8F420148A4820010DD
67771 +:10EE90003C021000AC860024AF4201B80A0012C345
67772 +:10EEA0003C0240000E001310000000000A0012C3D4
67773 +:10EEB0003C0240000E001BC2000000003C0240006B
67774 +:10EEC000AF420178000000000A00112F000000008E
67775 +:10EED0008F4201003042003E144000112402000124
67776 +:10EEE000AF4000488F420100304207C0104000058B
67777 +:10EEF00000000000AF40004CAF40005003E00008AD
67778 +:10EF000024020001AF400054AF4000408F42010096
67779 +:10EF10003042380054400001AF4000442402000158
67780 +:10EF200003E00008000000008F4201B80440FFFE2B
67781 +:10EF300024020001AF440180AF400184A74501884D
67782 +:10EF4000A342018A24020002A342018B9742014A94
67783 +:10EF500014C00004A7420190AF4001A40A0012EFC0
67784 +:10EF60003C0210008F420144AF4201A43C02100059
67785 +:10EF7000AF4001A803E00008AF4201B88F4201B8DA
67786 +:10EF80000440FFFE24020002AF440180AF4401842C
67787 +:10EF9000A7450188A342018AA342018B9742014AF7
67788 +:10EFA000A7420190AF4001A48F420144AF4201A8A3
67789 +:10EFB0003C02100003E00008AF4201B83C029000A0
67790 +:10EFC0003442000100822025AF4400208F420020FF
67791 +:10EFD0000440FFFE0000000003E000080000000005
67792 +:10EFE0003C028000344200010082202503E000083A
67793 +:10EFF000AF44002027BDFFE8AFBF0014AFB0001042
67794 +:10F000008F50014093430149934201489344014882
67795 +:10F01000306300FF304200FF00021200006228252A
67796 +:10F020002402001910620076308400802862001AE1
67797 +:10F030001040001C24020020240200081062007707
67798 +:10F04000286200091040000E2402000B2402000177
67799 +:10F0500010620034286200025040000524020006BD
67800 +:10F0600050600034020020210A00139A00000000C2
67801 +:10F0700010620030020020210A00139A00000000F4
67802 +:10F080001062003B2862000C504000022402000E77
67803 +:10F090002402000910620056020020210A00139A7F
67804 +:10F0A0000000000010620056286200211040000F8E
67805 +:10F0B000240200382402001C106200582862001D3F
67806 +:10F0C000104000062402001F2402001B1062004CA6
67807 +:10F0D000000000000A00139A000000001062004ABD
67808 +:10F0E000020020210A00139A00000000106200456F
67809 +:10F0F0002862003910400007240200802462FFCB00
67810 +:10F100002C42000210400045020020210A00139604
67811 +:10F110000000302110620009000000000A00139A6C
67812 +:10F12000000000001480003D020020210A0013901E
67813 +:10F130008FBF00140A001396240600018F4201B805
67814 +:10F140000440FFFE24020002A342018BA745018870
67815 +:10F150009742014AA74201908F420144A74201927F
67816 +:10F160003C021000AF4201B80A00139C8FBF00148C
67817 +:10F170009742014A144000290000000093620005F4
67818 +:10F180003042000414400025000000000E0013026D
67819 +:10F190000200202193620005020020213442000475
67820 +:10F1A0000E00130BA36200059362000530420004B9
67821 +:10F1B00014400002000000000000000D93620000F7
67822 +:10F1C00024030020304200FF14430014000000001C
67823 +:10F1D0008F4201B80440FFFE24020005AF500180B9
67824 +:10F1E000A342018B3C0210000A00139AAF4201B8FF
67825 +:10F1F0008FBF00148FB000100A0012F227BD001854
67826 +:10F200000000000D02002021000030218FBF0014FB
67827 +:10F210008FB000100A0012DD27BD00180000000D9D
67828 +:10F220008FBF00148FB0001003E0000827BD001846
67829 +:10F2300027BDFFE8AFBF00100E000F3C000000002C
67830 +:10F24000AF4001808FBF0010000020210A000FE7AF
67831 +:10F2500027BD00183084FFFF30A5FFFF00001821F4
67832 +:10F260001080000700000000308200011040000202
67833 +:10F2700000042042006518210A0013AB0005284055
67834 +:10F2800003E000080060102110C0000624C6FFFF44
67835 +:10F290008CA2000024A50004AC8200000A0013B573
67836 +:10F2A0002484000403E000080000000010A000080F
67837 +:10F2B00024A3FFFFAC860000000000000000000057
67838 +:10F2C0002402FFFF2463FFFF1462FFFA248400047A
67839 +:10F2D00003E0000800000000308300FF30A500FFBD
67840 +:10F2E00030C600FF274701808F4201B80440FFFE6F
67841 +:10F2F000000000008F42012834634000ACE20000AF
67842 +:10F3000024020001ACE00004A4E30008A0E2000A2B
67843 +:10F3100024020002A0E2000B3C021000A4E5001051
67844 +:10F32000ACE00024ACE00028A4E6001203E00008F2
67845 +:10F33000AF4201B827BDFFE8AFBF00109362003FA6
67846 +:10F3400024030012304200FF1043000D00803021E2
67847 +:10F350008F620044008210230440000A8FBF001017
67848 +:10F360008F620048240400390000282100C21023C5
67849 +:10F3700004410004240600120E0013C9000000001E
67850 +:10F380008FBF00102402000103E0000827BD001811
67851 +:10F3900027BDFFC8AFB20030AFB1002CAFBF003403
67852 +:10F3A000AFB0002890C5000D0080902130A400105F
67853 +:10F3B0001080000B00C088218CC300088F620054AD
67854 +:10F3C0001062000730A20005144000B524040001BB
67855 +:10F3D0000E000D21000020210A0014BB0040202156
67856 +:10F3E00030A200051040000930A30012108000ACCC
67857 +:10F3F000240400018E2300088F620054146200A9C7
67858 +:10F400008FBF00340A00142C240400382402001298
67859 +:10F41000146200A3240400010220202127A500106B
67860 +:10F420000E000CB2AFA000101040001102402021CD
67861 +:10F430008E220008AF620084AF6000400E0013020D
67862 +:10F44000000000009362007D024020213442002031
67863 +:10F450000E00130BA362007D0E000CA902402021B8
67864 +:10F46000240400382405008D0A0014B82406001274
67865 +:10F470009362003E304200081040000F8FA200103F
67866 +:10F4800030420100104000078FA300148F6200601B
67867 +:10F490000062102304430008AF6300600A001441B7
67868 +:10F4A00000000000AF6000609362003E2403FFF79D
67869 +:10F4B00000431024A362003E9362003E30420008E5
67870 +:10F4C000144000022406000300003021936200343F
67871 +:10F4D000936300378F640084304200FF306300FF85
67872 +:10F4E00000661821000318800043282100A4202B67
67873 +:10F4F0001080000B000000009763003C8F620084C6
67874 +:10F500003063FFFF004510230062182B14600004D5
67875 +:10F51000000000008F6200840A00145D0045802313
67876 +:10F520009762003C3050FFFF8FA300103062000450
67877 +:10F5300010400004000628808FA2001C0A001465F9
67878 +:10F540000202102B2E02021850400003240202185F
67879 +:10F550000A00146E020510233063000410600003DB
67880 +:10F56000004510238FA2001C00451023004080217D
67881 +:10F570002C42008054400001241000800E00130231
67882 +:10F580000240202124020001AF62000C9362003E81
67883 +:10F59000001020403042007FA362003E8E22000413
67884 +:10F5A00024420001AF620040A770003C8F6200500F
67885 +:10F5B0009623000E00431021AF6200588F62005066
67886 +:10F5C00000441021AF62005C8E220004AF6200187C
67887 +:10F5D0008E220008AF62001C8FA20010304200088B
67888 +:10F5E0005440000A93A20020A360003693620036C4
67889 +:10F5F0002403FFDFA36200359362003E0043102422
67890 +:10F60000A362003E0A0014988E220008A36200350F
67891 +:10F610008E220008AF62004C8F6200248F6300408E
67892 +:10F6200000431021AF6200489362000024030050A1
67893 +:10F63000304200FF144300122403FF803C02080004
67894 +:10F640008C4231A00242102100431024AF42002816
67895 +:10F650003C0208008C4231A08E2400083C03000CC0
67896 +:10F66000024210213042007F03421021004310214A
67897 +:10F67000AC4400D88E230008AF820014AC4300DCF9
67898 +:10F680000E00130B02402021240400380000282122
67899 +:10F690002406000A0E0013C9000000002404000123
67900 +:10F6A0008FBF00348FB200308FB1002C8FB0002894
67901 +:10F6B0000080102103E0000827BD003827BDFFF8B7
67902 +:10F6C00027420180AFA20000308A00FF8F4201B8BC
67903 +:10F6D0000440FFFE000000008F4601283C020800A5
67904 +:10F6E0008C4231A02403FF80AF86004800C2102165
67905 +:10F6F00000431024AF4200243C0208008C4231A099
67906 +:10F700008FA900008FA8000000C210213042007FA6
67907 +:10F71000034218213C02000A00621821946400D4BC
67908 +:10F720008FA700008FA5000024020002AF83001401
67909 +:10F73000A0A2000B8FA30000354260003084FFFFC1
67910 +:10F74000A4E200083C021000AD260000AD04000455
67911 +:10F75000AC60002427BD0008AF4201B803E00008F8
67912 +:10F76000240200018F88003C938200288F830014BC
67913 +:10F770003C07080024E7779800481023304200FF38
67914 +:10F78000304900FC246500888F860040304A000321
67915 +:10F790001120000900002021248200048CA3000015
67916 +:10F7A000304400FF0089102AACE3000024A50004C7
67917 +:10F7B0001440FFF924E70004114000090000202153
67918 +:10F7C0002482000190A30000304400FF008A102B27
67919 +:10F7D000A0E3000024A500011440FFF924E7000184
67920 +:10F7E00030C20003144000048F85003C3102000346
67921 +:10F7F0001040000D0000000010A0000900002021B2
67922 +:10F800002482000190C30000304400FF0085102BCB
67923 +:10F81000A0E3000024C600011440FFF924E7000122
67924 +:10F8200003E00008000000001100FFFD000020219F
67925 +:10F83000248200048CC30000304400FF0088102B99
67926 +:10F84000ACE3000024C600041440FFF924E70004E0
67927 +:10F8500003E00008000000008F83003C9382002832
67928 +:10F8600030C600FF30A500FF00431023304300FFE7
67929 +:10F870008F820014008038210043102114C0000240
67930 +:10F88000244800880083382130E20003144000053A
67931 +:10F8900030A2000314400003306200031040000D4A
67932 +:10F8A0000000000010A000090000202124820001B7
67933 +:10F8B00090E30000304400FF0085102BA1030000FE
67934 +:10F8C00024E700011440FFF92508000103E00008C7
67935 +:10F8D0000000000010A0FFFD000020212482000491
67936 +:10F8E0008CE30000304400FF0085102BAD030000C6
67937 +:10F8F00024E700041440FFF92508000403E0000891
67938 +:10F90000000000000080482130AAFFFF30C600FF41
67939 +:10F9100030E7FFFF274801808F4201B80440FFFE17
67940 +:10F920008F820048AD0200008F420124AD02000426
67941 +:10F930008D220020A5070008A102000A240200165B
67942 +:10F94000A102000B934301208D2200088D240004A6
67943 +:10F95000306300FF004310219783003A00441021D8
67944 +:10F960008D250024004310233C0308008C6331A044
67945 +:10F970008F840014A502000C246300E82402FFFF1A
67946 +:10F98000A50A000EA5030010A5060012AD0500187B
67947 +:10F99000AD020024948201142403FFF73042FFFFDC
67948 +:10F9A000AD0200288C820118AD02002C3C02100030
67949 +:10F9B000AD000030AF4201B88D220020004310247A
67950 +:10F9C00003E00008AD2200208F82001430E7FFFF23
67951 +:10F9D00000804821904200D330A5FFFF30C600FFD1
67952 +:10F9E0000002110030420F0000E238252748018054
67953 +:10F9F0008F4201B80440FFFE8F820048AD02000034
67954 +:10FA00008F420124AD0200048D220020A5070008CA
67955 +:10FA1000A102000A24020017A102000B9343012057
67956 +:10FA20008D2200088D240004306300FF0043102164
67957 +:10FA30009783003A004410218F8400140043102360
67958 +:10FA40003C0308008C6331A0A502000CA505000E44
67959 +:10FA5000246300E8A5030010A5060012AD00001401
67960 +:10FA60008D220024AD0200188C82005CAD02001CC7
67961 +:10FA70008C820058AD0200202402FFFFAD0200245A
67962 +:10FA8000948200E63042FFFFAD02002894820060BD
67963 +:10FA9000948300BE30427FFF3063FFFF00021200FC
67964 +:10FAA00000431021AD02002C3C021000AD000030DC
67965 +:10FAB000AF4201B8948200BE2403FFF700A21021D8
67966 +:10FAC000A48200BE8D2200200043102403E0000821
67967 +:10FAD000AD220020274301808F4201B80440FFFE81
67968 +:10FAE0008F8200249442001C3042FFFF000211C0AC
67969 +:10FAF000AC62000024020019A062000B3C0210005E
67970 +:10FB0000AC60003003E00008AF4201B88F87002CE2
67971 +:10FB100030C300FF8F4201B80440FFFE8F820048CF
67972 +:10FB200034636000ACA2000093820044A0A20005F0
67973 +:10FB30008CE20010A4A20006A4A300088C8200207E
67974 +:10FB40002403FFF7A0A2000A24020002A0A2000BD7
67975 +:10FB50008CE20000ACA200108CE20004ACA2001405
67976 +:10FB60008CE2001CACA200248CE20020ACA2002895
67977 +:10FB70008CE2002CACA2002C8C820024ACA20018D9
67978 +:10FB80003C021000AF4201B88C82002000431024D8
67979 +:10FB900003E00008AC8200208F86001427BDFFE838
67980 +:10FBA000AFBF0014AFB0001090C20063304200201D
67981 +:10FBB0001040000830A500FF8CC2007C2403FFDF4A
67982 +:10FBC00024420001ACC2007C90C2006300431024B8
67983 +:10FBD000A0C2006310A000238F830014275001806F
67984 +:10FBE000020028210E0015D6240600828F82001400
67985 +:10FBF000904200633042004050400019A38000440E
67986 +:10FC00008F83002C8F4201B80440FFFE8F82004892
67987 +:10FC1000AE02000024026082A60200082402000254
67988 +:10FC2000A202000B8C620008AE0200108C62000C75
67989 +:10FC3000AE0200148C620014AE0200188C62001830
67990 +:10FC4000AE0200248C620024AE0200288C620028E0
67991 +:10FC5000AE02002C3C021000AF4201B8A380004469
67992 +:10FC60008F8300148FBF00148FB000109062006368
67993 +:10FC700027BD00183042007FA06200639782003ADF
67994 +:10FC80008F86003C8F850014938300280046102344
67995 +:10FC9000A782003AA4A000E490A400638F820040F1
67996 +:10FCA000AF83003C2403FFBF0046102100832024C3
67997 +:10FCB000AF820040A0A400638F820014A04000BD6A
67998 +:10FCC0008F82001403E00008A44000BE8F8A001455
67999 +:10FCD00027BDFFE0AFB10014AFB000108F88003C2B
68000 +:10FCE000AFBF00189389001C954200E430D100FF9B
68001 +:10FCF0000109182B0080802130AC00FF3047FFFF46
68002 +:10FD00000000582114600003310600FF012030215B
68003 +:10FD1000010958239783003A0068102B1440003CD7
68004 +:10FD20000000000014680007240200018E02002079
68005 +:10FD30002403FFFB34E7800000431024AE020020C0
68006 +:10FD40002402000134E70880158200053165FFFFB9
68007 +:10FD50000E001554020020210A00169102002021F5
68008 +:10FD60000E001585020020218F8400482743018062
68009 +:10FD70008F4201B80440FFFE24020018AC6400006A
68010 +:10FD8000A062000B8F840014948200E6A46200102D
68011 +:10FD90003C021000AC600030AF4201B894820060B9
68012 +:10FDA00024420001A4820060948200603C030800A9
68013 +:10FDB0008C63318830427FFF5443000F02002021C2
68014 +:10FDC000948200602403800000431024A482006019
68015 +:10FDD0009082006090830060304200FF000211C2F8
68016 +:10FDE00000021027000211C03063007F0062182556
68017 +:10FDF000A083006002002021022028218FBF00186C
68018 +:10FE00008FB100148FB000100A0015F927BD002033
68019 +:10FE1000914200632403FF8000431025A142006348
68020 +:10FE20009782003A3048FFFF110000209383001CA6
68021 +:10FE30008F840014004B1023304600FF948300E4AD
68022 +:10FE40002402EFFF0168282B00621824A48300E439
68023 +:10FE500014A000038E020020010058210000302170
68024 +:10FE60002403FFFB34E7800000431024AE0200208F
68025 +:10FE700024020001158200053165FFFF0E001554B4
68026 +:10FE8000020020210A0016B99783003A0E0015855A
68027 +:10FE9000020020219783003A8F82003CA780003A1D
68028 +:10FEA00000431023AF82003C9383001C8F82001418
68029 +:10FEB0008FBF00188FB100148FB0001027BD002035
68030 +:10FEC00003E00008A04300BD938200442403000126
68031 +:10FED00027BDFFE8004330042C420020AFB00010E3
68032 +:10FEE000AFBF00142410FFFE10400005274501801D
68033 +:10FEF0003C0208008C4231900A0016D600461024BD
68034 +:10FF00003C0208008C423194004610241440000743
68035 +:10FF1000240600848F8300142410FFFF9062006287
68036 +:10FF20003042000F34420040A06200620E0015D63D
68037 +:10FF300000000000020010218FBF00148FB00010DD
68038 +:10FF400003E0000827BD00188F83002427BDFFE0D1
68039 +:10FF5000AFB20018AFB10014AFB00010AFBF001CBB
68040 +:10FF60009062000D00A0902130D100FF3042007F50
68041 +:10FF7000A062000D8F8500148E4300180080802140
68042 +:10FF80008CA2007C146200052402000E90A2006383
68043 +:10FF9000344200200A0016FFA0A200630E0016C51E
68044 +:10FFA000A38200442403FFFF104300472404FFFF03
68045 +:10FFB00052200045000020218E4300003C0200102A
68046 +:10FFC00000621024504000043C020008020020217E
68047 +:10FFD0000A00170E24020015006210245040000988
68048 +:10FFE0008E45000002002021240200140E0016C5D8
68049 +:10FFF000A38200442403FFFF104300332404FFFFC7
68050 +:020000021000EC
68051 +:100000008E4500003C02000200A2102410400016A1
68052 +:100010003C0200048F8600248CC200148CC30010A4
68053 +:100020008CC40014004310230044102B50400005E2
68054 +:10003000020020218E43002C8CC2001010620003AD
68055 +:10004000020020210A00173F240200123C02000493
68056 +:1000500000A210245040001C00002021020020219A
68057 +:100060000A00173F2402001300A2102410400006CB
68058 +:100070008F8300248C620010504000130000202168
68059 +:100080000A001739020020218C6200105040000441
68060 +:100090008E42002C020020210A00173F240200118A
68061 +:1000A00050400009000020210200202124020017F6
68062 +:1000B0000E0016C5A38200442403FFFF1043000274
68063 +:1000C0002404FFFF000020218FBF001C8FB2001806
68064 +:1000D0008FB100148FB000100080102103E00008E1
68065 +:1000E00027BD00208F83001427BDFFD8AFB40020A8
68066 +:1000F000AFB3001CAFB20018AFB10014AFB0001026
68067 +:10010000AFBF0024906200638F91002C2412FFFF88
68068 +:100110003442004092250000A06200638E2200104D
68069 +:100120000080982130B0003F105200060360A021EB
68070 +:100130002402000D0E0016C5A38200441052005484
68071 +:100140002404FFFF8F8300148E2200188C63007C30
68072 +:1001500010430007026020212402000E0E0016C585
68073 +:10016000A38200442403FFFF104300492404FFFF3F
68074 +:1001700024040020120400048F83001490620063A2
68075 +:1001800034420020A06200638F85003410A000205C
68076 +:1001900000000000560400048F8200140260202139
68077 +:1001A0000A0017902402000A9683000A9442006015
68078 +:1001B0003042FFFF144300048F8200202404FFFD1F
68079 +:1001C0000A0017B7AF82003C3C0208008C42318C19
68080 +:1001D0000045102B14400006026020210000282159
68081 +:1001E0000E001646240600010A0017B70000202161
68082 +:1001F0002402002D0E0016C5A38200442403FFFF35
68083 +:10020000104300232404FFFF0A0017B70000202139
68084 +:10021000160400058F8400148E2300142402FFFFAF
68085 +:100220005062001802602021948200602442000184
68086 +:10023000A4820060948200603C0308008C633188D3
68087 +:1002400030427FFF5443000F0260202194820060FF
68088 +:100250002403800000431024A48200609082006088
68089 +:1002600090830060304200FF000211C2000210279C
68090 +:10027000000211C03063007F00621825A083006077
68091 +:10028000026020210E0015F9240500010000202144
68092 +:100290008FBF00248FB400208FB3001C8FB20018D2
68093 +:1002A0008FB100148FB000100080102103E000080F
68094 +:1002B00027BD00288F83001427BDFFE8AFB00010D2
68095 +:1002C000AFBF0014906200638F87002C00808021F4
68096 +:1002D000344200408CE60010A06200633C0308003A
68097 +:1002E0008C6331B030C23FFF0043102B1040004EF2
68098 +:1002F0008F8500302402FF8090A3000D004310245E
68099 +:10030000304200FF504000490200202100061382C5
68100 +:10031000304800032402000255020044020020215C
68101 +:1003200094A2001C8F85001424030023A4A20114AE
68102 +:100330008CE60000000616023042003F1043001019
68103 +:100340003C0300838CE300188CA2007C1062000642
68104 +:100350002402000E0E0016C5A38200442403FFFFF2
68105 +:10036000104300382404FFFF8F8300149062006361
68106 +:1003700034420020A06200630A0017FC8F8300242F
68107 +:1003800000C31024144300078F83002490A200624E
68108 +:100390003042000F34420020A0A20062A38800383F
68109 +:1003A0008F8300249062000D3042007FA062000D18
68110 +:1003B0008F83003410600018020020218F840030E9
68111 +:1003C0008C8200100043102B1040000924020018FA
68112 +:1003D000020020210E0016C5A38200442403FFFF63
68113 +:1003E000104300182404FFFF0A00182400002021F5
68114 +:1003F0008C820010240500010200202100431023FC
68115 +:100400008F830024240600010E001646AC62001003
68116 +:100410000A001824000020210E0015F9240500010F
68117 +:100420000A00182400002021020020212402000DCF
68118 +:100430008FBF00148FB0001027BD00180A0016C52A
68119 +:10044000A38200448FBF00148FB0001000801021E1
68120 +:1004500003E0000827BD001827BDFFC8AFB2002089
68121 +:10046000AFBF0034AFB60030AFB5002CAFB400283A
68122 +:10047000AFB30024AFB1001CAFB000188F46012805
68123 +:100480003C0308008C6331A02402FF80AF86004843
68124 +:1004900000C318213065007F03452821006218241D
68125 +:1004A0003C02000AAF43002400A2282190A200626F
68126 +:1004B00000809021AF850014304200FF000211023D
68127 +:1004C000A382003890A200BC304200021440000217
68128 +:1004D00024030034240300308F820014A3830028F7
68129 +:1004E000938300388C4200C0A3800044AF82003C5C
68130 +:1004F000240200041062031C8F84003C8E4400041C
68131 +:10050000508003198F84003C8E4200103083FFFF1F
68132 +:10051000A784003A106002FFAF8200408F8400146D
68133 +:100520002403FF809082006300621024304200FFA9
68134 +:10053000144002CF9785003A9383003824020002CA
68135 +:1005400030B6FFFF14620005000088219382002866
68136 +:100550002403FFFD0A001B19AF82003C8F82003C80
68137 +:1005600002C2102B144002A18F8400400E0014EC34
68138 +:1005700000000000938300283C040800248477983E
68139 +:10058000240200341462002EAF84002C3C0A0800C0
68140 +:100590008D4A77C82402FFFFAFA2001000803821E7
68141 +:1005A0002405002F3C09080025297398240800FF22
68142 +:1005B0002406FFFF90E2000024A3FFFF00062202B2
68143 +:1005C00000C21026304200FF0002108000491021B6
68144 +:1005D0008C420000306500FF24E7000114A8FFF5FD
68145 +:1005E0000082302600061027AFA20014AFA2001030
68146 +:1005F0000000282127A7001027A6001400C51023FB
68147 +:100600009044000324A2000100A71821304500FFF8
68148 +:100610002CA200041440FFF9A06400008FA2001077
68149 +:100620001142000724020005024020210E0016C5D9
68150 +:10063000A38200442403FFFF104300642404FFFF4F
68151 +:100640003C0208009042779C104000098F82001401
68152 +:10065000024020212402000C0E0016C5A382004493
68153 +:100660002403FFFF104300592404FFFF8F8200146E
68154 +:10067000A380001C3C0308008C63779C8C440080A2
68155 +:100680003C0200FF3442FFFF006218240083202B4D
68156 +:1006900010800008AF83003402402021240200199A
68157 +:1006A0000E0016C5A38200442403FFFF1043004739
68158 +:1006B0002404FFFF8F87003C9782003A8F85003427
68159 +:1006C000AF8700200047202310A0003BA784003AFA
68160 +:1006D0008F86001430A200030002102390C300BCD8
68161 +:1006E0003050000300B0282100031882307300014D
68162 +:1006F0000013108000A228213C0308008C6331A065
68163 +:100700008F8200483084FFFF0085202B004310219A
68164 +:1007100010800011244200888F84002C1082000E6B
68165 +:100720003C033F013C0208008C42779800431024B0
68166 +:100730003C0325001443000630E500FF8C820000D6
68167 +:10074000ACC200888C8200100A0018E9ACC2009884
68168 +:100750000E001529000030219382001C8F850014A3
68169 +:100760008F830040020238218F82003CA387001C47
68170 +:1007700094A400E4006218218F82003434841000B5
68171 +:10078000AF83004000503021A4A400E41260000EAA
68172 +:10079000AF86003C24E20004A382001C94A200E483
68173 +:1007A00024C30004AF83003C34422000A4A200E430
68174 +:1007B0000A001906000020218F820040AF80003C13
68175 +:1007C00000471021AF820040000020212414FFFFC9
68176 +:1007D000109402112403FFFF3C0808008D0877A83D
68177 +:1007E0003C0208008C4231B03C03080090637798CB
68178 +:1007F00031043FFF0082102B1040001B3067003F88
68179 +:100800003C0208008C4231A88F83004800042180FC
68180 +:1008100000621821006418213062007F0342282101
68181 +:100820003C02000C00A228213C020080344200015E
68182 +:100830003066007800C230252402FF800062102458
68183 +:10084000AF42002830640007AF4208048F820014D2
68184 +:100850000344202124840940AF460814AF850024B6
68185 +:10086000AF840030AC4301189383003824020003A6
68186 +:10087000146201CF240200012402002610E201D1FB
68187 +:1008800028E2002710400013240200322402002234
68188 +:1008900010E201CC28E200231040000824020024CA
68189 +:1008A0002402002010E201B82402002110E20147D6
68190 +:1008B000024020210A001AFB2402000B10E201C1B1
68191 +:1008C0002402002510E20010024020210A001AFB39
68192 +:1008D0002402000B10E201AE28E2003310400006B3
68193 +:1008E0002402003F2402003110E2009A024020213D
68194 +:1008F0000A001AFB2402000B10E201A5024020218D
68195 +:100900000A001AFB2402000B8F90002C3C03080005
68196 +:100910008C6331B08F8500308E0400100000A82158
68197 +:100920008CB3001430823FFF0043102B8CB10020A9
68198 +:100930005040018F0240202190A3000D2402FF802F
68199 +:1009400000431024304200FF504001890240202122
68200 +:10095000000413823042000314400185024020212C
68201 +:1009600094A3001C8F8200148E040028A443011459
68202 +:100970008CA20010026218231064000302402021A0
68203 +:100980000A00197C2402001F8F82003400621021AB
68204 +:100990000262102B104000088F83002402402021A7
68205 +:1009A000240200180E0016C5A382004410540174DE
68206 +:1009B0002404FFFF8F8300248F8400348C62001096
68207 +:1009C0000224882100441023AC6200108F8200149E
68208 +:1009D000AC7100208C4200680051102B10400009BF
68209 +:1009E0008F830030024020212402001D0E0016C516
68210 +:1009F000A38200442403FFFF104301612404FFFF8E
68211 +:100A00008F8300308E0200248C6300241043000783
68212 +:100A1000024020212402001C0E0016C5A3820044BF
68213 +:100A20002403FFFF104301562404FFFF8F8400249A
68214 +:100A30008C82002424420001AC8200241233000482
68215 +:100A40008F8200148C4200685622000E8E02000035
68216 +:100A50008E0200003C030080004310241440000D6F
68217 +:100A60002402001A024020210E0016C5A382004471
68218 +:100A70002403FFFF104301422404FFFF0A0019BAB8
68219 +:100A80008E0200143C0300800043102450400003F9
68220 +:100A90008E020014AC8000208E0200142411FFFF8F
68221 +:100AA0001051000E3C0308003C0208008C423190BB
68222 +:100AB000004310242403001B14400007A3830044B8
68223 +:100AC0000E0016C5024020211051012D2404FFFF05
68224 +:100AD0000A0019CB8E030000A38000448E0300009F
68225 +:100AE0003C02000100621024104000123C02008011
68226 +:100AF0000062102414400008024020212402001A41
68227 +:100B00000E0016C5A38200442403FFFF1043011CFE
68228 +:100B10002404FFFF02402021020028210E0016E5D8
68229 +:100B2000240600012403FFFF104301152404FFFFE6
68230 +:100B3000241500018F83002402A0302102402021CF
68231 +:100B40009462003624050001244200010A001ADFE5
68232 +:100B5000A46200368F90002C3C0308008C6331B0F7
68233 +:100B60008E13001032623FFF0043102B10400089AB
68234 +:100B70008F8400302402FF809083000D00431024F6
68235 +:100B8000304200FF104000842402000D0013138245
68236 +:100B900030420003240300011443007F2402000DAF
68237 +:100BA0009082000D30420008544000048F820034CF
68238 +:100BB000024020210A001A102402002450400004A0
68239 +:100BC0008E03000C024020210A001A102402002784
68240 +:100BD0008C82002054620006024020218E0300080F
68241 +:100BE0008C820024506200098E02001402402021F1
68242 +:100BF000240200200E0016C5A38200441054007188
68243 +:100C00002403FFFF0A001A458F8400242411FFFFEC
68244 +:100C1000145100048F860014024020210A001A405B
68245 +:100C2000240200258E0300188CC2007C1062000391
68246 +:100C30002402000E0A001A40024020218E030024E4
68247 +:100C40008C82002810620003240200210A001A404E
68248 +:100C5000024020218E0500288C82002C10A2000367
68249 +:100C60002402001F0A001A40024020218E03002C9B
68250 +:100C700014600003240200230A001A4002402021CD
68251 +:100C80008CC200680043102B104000032402002691
68252 +:100C90000A001A40024020218C82001400651821AD
68253 +:100CA0000043102B104000088F84002402402021B4
68254 +:100CB000240200220E0016C5A382004410510041F8
68255 +:100CC0002403FFFF8F8400242403FFF79082000D8C
68256 +:100CD00000431024A082000D8F8600143C030800FE
68257 +:100CE0008C6331AC8F82004894C400E08F8500246F
68258 +:100CF0000043102130847FFF000420400044102175
68259 +:100D00003043007F034320213C03000E0083202159
68260 +:100D10002403FF8000431024AF42002CA493000062
68261 +:100D20008CA2002824420001ACA200288CA2002C36
68262 +:100D30008E03002C00431021ACA2002C8E02002C4C
68263 +:100D4000ACA200308E020014ACA2003494A2003A8F
68264 +:100D500024420001A4A2003A94C600E03C0208002C
68265 +:100D60008C4231B024C4000130837FFF1462000F35
68266 +:100D700000803021240280000082302430C2FFFF36
68267 +:100D8000000213C2304200FF000210270A001A7E40
68268 +:100D9000000233C02402000D024020210E0016C5BF
68269 +:100DA000A38200440A001A84004018218F82001494
68270 +:100DB00002402021240500010E0015F9A44600E0A0
68271 +:100DC000000018210A001B16006088218F90002C5B
68272 +:100DD0003C0308008C6331B08E05001030A23FFF49
68273 +:100DE0000043102B104000612402FF808F840030EC
68274 +:100DF0009083000D00431024304200FF5040005CFF
68275 +:100E0000024020218F8200341040000B0005138225
68276 +:100E10008F8200149763000A944200603042FFFF03
68277 +:100E200014430005000513828F8200202404FFFD77
68278 +:100E30000A001AF3AF82003C304200031440000E57
68279 +:100E40000000000092020002104000058E03002402
68280 +:100E500050600015920300030A001AAF02402021DF
68281 +:100E60008C82002450620010920300030240202173
68282 +:100E70000A001AB72402000F9082000D30420008C9
68283 +:100E80005440000992030003024020212402001074
68284 +:100E90000E0016C5A38200442403FFFF1043003850
68285 +:100EA0002404FFFF92030003240200025462000C9A
68286 +:100EB000920200038F820034544000099202000322
68287 +:100EC000024020212402002C0E0016C5A3820044FB
68288 +:100ED0002403FFFF1043002A2404FFFF92020003B3
68289 +:100EE0000200282102402021384600102CC60001B3
68290 +:100EF0002C4200010E0016E5004630252410FFFFAD
68291 +:100F00001050001F2404FFFF8F8300341060001373
68292 +:100F1000024020213C0208008C42318C0043102BFF
68293 +:100F200014400007000000000000282124060001F2
68294 +:100F30000E001646000000000A001AF300002021EF
68295 +:100F40002402002D0E0016C5A38200441050000C90
68296 +:100F50002404FFFF0A001AF3000020210E0015F9F7
68297 +:100F6000240500010A001AF300002021024020217C
68298 +:100F70002402000D0E0016C5A3820044004020216B
68299 +:100F80000A001B16008088211514000E00000000C6
68300 +:100F90000E00174C024020210A001B160040882139
68301 +:100FA0000E0016C5A38200440A001B1600408821CB
68302 +:100FB00014620017022018212402002314E2000505
68303 +:100FC0002402000B0E0017C0024020210A001B164D
68304 +:100FD0000040882102402021A38200440E0016C553
68305 +:100FE0002411FFFF0A001B170220182130A500FF63
68306 +:100FF0000E001529240600019783003A8F82003CD9
68307 +:10100000A780003A00431023AF82003C0220182141
68308 +:101010001220003E9782003A2402FFFD5462003EF7
68309 +:101020008E4300208E4200048F830014005610234C
68310 +:10103000AE420004906200633042007FA062006311
68311 +:101040008E4200208F840014A780003A34420002B0
68312 +:10105000AE420020A48000E4908200632403FFBF1E
68313 +:1010600000431024A08200630A001B598E43002015
68314 +:101070009082006300621024304200FF1040002381
68315 +:101080009782003A90820088908300BD2485008872
68316 +:101090003042003F2444FFE02C820020A383001C48
68317 +:1010A00010400019AF85002C2402000100821804B2
68318 +:1010B000306200191440000C3C02800034420002EF
68319 +:1010C000006210241440000B306200201040000F1A
68320 +:1010D0009782003A90A600010240202124050001D9
68321 +:1010E0000A001B5330C60001024020210A001B5297
68322 +:1010F00024050001024020210000282124060001CF
68323 +:101100000E001646000000009782003A1440FD04CD
68324 +:101110008F8400148E4300203062000410400012BF
68325 +:101120008F84003C2402FFFB00621024AE420020AA
68326 +:10113000274301808F4201B80440FFFE8F820048A0
68327 +:10114000AC6200008F420124AC6200042402608380
68328 +:10115000A462000824020002A062000B3C021000FE
68329 +:10116000AF4201B88F84003C8F8300148FBF0034DE
68330 +:101170008FB600308FB5002C8FB400288FB30024B9
68331 +:101180008FB200208FB1001C8FB000182402000124
68332 +:1011900027BD003803E00008AC6400C030A500FFA4
68333 +:1011A0002403000124A900010069102B1040000C49
68334 +:1011B00000004021240A000100A31023004A380443
68335 +:1011C00024630001308200010069302B10400002CE
68336 +:1011D000000420420107402554C0FFF800A310235B
68337 +:1011E00003E00008010010213C020800244260A432
68338 +:1011F0003C010800AC22738C3C02080024425308D6
68339 +:101200003C010800AC2273902402000627BDFFE0D9
68340 +:101210003C010800A02273943C021EDCAFB200180F
68341 +:10122000AFB10014AFBF001CAFB0001034526F411B
68342 +:1012300000008821240500080E001B7A02202021CE
68343 +:10124000001180803C07080024E773980002160014
68344 +:1012500002071821AC6200000000282124A200012E
68345 +:101260003045FFFF8C6200002CA6000804410002FC
68346 +:10127000000220400092202614C0FFF8AC64000059
68347 +:10128000020780218E0400000E001B7A2405002036
68348 +:10129000262300013071FFFF2E2301001460FFE5BB
68349 +:1012A000AE0200008FBF001C8FB200188FB1001477
68350 +:1012B0008FB0001003E0000827BD002027BDFFD835
68351 +:1012C000AFB3001CAFB20018AFBF0020AFB1001425
68352 +:1012D000AFB000108F5101408F48014800089402C0
68353 +:1012E000324300FF311300FF8F4201B80440FFFE7C
68354 +:1012F00027500180AE1100008F420144AE0200046D
68355 +:1013000024020002A6120008A202000B240200140C
68356 +:10131000AE1300241062002528620015104000085A
68357 +:101320002402001524020010106200302402001272
68358 +:10133000106200098FBF00200A001CB58FB3001C8B
68359 +:101340001062007024020022106200378FBF00205C
68360 +:101350000A001CB58FB3001C3C0208008C4231A06F
68361 +:101360002403FF800222102100431024AF420024F6
68362 +:101370003C0208008C4231A0022210213042007F42
68363 +:10138000034218213C02000A00621821166000BCCA
68364 +:10139000AF830014906200623042000F344200308C
68365 +:1013A000A06200620A001CB48FBF00203C046000F1
68366 +:1013B0008C832C083C02F0033442FFFF00621824A7
68367 +:1013C000AC832C083C0208008C4231A08C832C0892
68368 +:1013D000244200740002108200021480006218256A
68369 +:1013E000AC832C080A001CB48FBF00203C0208000C
68370 +:1013F0008C4231A02403FF800222102100431024DC
68371 +:10140000AF4200243C0208008C4231A03C03000A99
68372 +:10141000022210213042007F03421021004310219C
68373 +:101420000A001CB3AF8200143C0208008C4231A0B9
68374 +:101430002405FF800222102100451024AF42002421
68375 +:101440003C0208008C4231A0022210213042007F71
68376 +:10145000034218213C02000A0062182190620063D6
68377 +:1014600000A21024304200FF10400085AF8300141A
68378 +:1014700024620088944300123C0208008C4231A888
68379 +:1014800030633FFF00031980022210210043102126
68380 +:101490003043007F03432021004510243C03000C0F
68381 +:1014A00000832021AF4200289082000D00A210246A
68382 +:1014B000304200FF10400072AF8400249082000D83
68383 +:1014C000304200101440006F8FBF00200E0015C87E
68384 +:1014D000000000008F4201B80440FFFE0000000041
68385 +:1014E000AE1100008F420144AE020004240200024B
68386 +:1014F000A6120008A202000BAE1300240A001CB4BE
68387 +:101500008FBF00202406FF8002261024AF42002057
68388 +:101510003C0208008C4231A031043FFF00042180CE
68389 +:101520000222102100461024AF4200243C03080090
68390 +:101530008C6331A83C0208008C4231A03227007F26
68391 +:101540000223182102221021006418213042007F5A
68392 +:101550003064007F034228213C02000A0066182400
68393 +:1015600000A22821034420213C02000C00822021FB
68394 +:10157000AF4300283C020008034718210062902175
68395 +:10158000AF850014AF8400240E0015C8010080212F
68396 +:101590008F4201B80440FFFE8F8200248F84001424
68397 +:1015A000274501809042000DACB10000A4B00006B8
68398 +:1015B000000216000002160300021027000237C2C4
68399 +:1015C00014C00016248200889442001232033FFFA8
68400 +:1015D00030423FFF14430012240260829083006374
68401 +:1015E0002402FF8000431024304200FF5040000CD2
68402 +:1015F00024026082908200623042000F3442004038
68403 +:10160000A082006224026084A4A200082402000DCB
68404 +:10161000A0A200050A001C9E3C0227002402608252
68405 +:10162000A4A20008A0A000053C02270000061C00A0
68406 +:101630000062182524020002A0A2000BACA3001037
68407 +:10164000ACA00014ACA00024ACA00028ACA0002CDE
68408 +:101650008E42004C8F840024ACA200189083000DB1
68409 +:101660002402FF8000431024304200FF1040000598
68410 +:101670008FBF00209082000D3042007FA082000DBD
68411 +:101680008FBF00208FB3001C8FB200188FB10014E1
68412 +:101690008FB000103C02100027BD002803E00008B6
68413 +:1016A000AF4201B80800343008003430080033A8D5
68414 +:1016B000080033E0080034140800343808003438D7
68415 +:1016C00008003438080033180A0001240000000024
68416 +:1016D000000000000000000D747061362E322E33C1
68417 +:1016E00000000000060203010000000000000000EE
68418 +:1016F00000000000000000000000000000000000EA
68419 +:1017000000000000000000000000000000000000D9
68420 +:1017100000000000000000000000000000000000C9
68421 +:1017200000000000000000000000000000000000B9
68422 +:1017300000000000000000000000000000000000A9
68423 +:101740000000000000000000000000000000000099
68424 +:101750000000000000000000000000001000000376
68425 +:10176000000000000000000D0000000D3C02080019
68426 +:1017700024421C003C03080024632094AC40000079
68427 +:101780000043202B1480FFFD244200043C1D080070
68428 +:1017900037BD2FFC03A0F0213C1008002610049058
68429 +:1017A0003C1C0800279C1C000E00015C000000008F
68430 +:1017B0000000000D3084FFFF308200078F85001885
68431 +:1017C00010400002248300073064FFF800853021B8
68432 +:1017D00030C41FFF03441821247B4000AF85001C48
68433 +:1017E000AF84001803E00008AF4400843084FFFF9A
68434 +:1017F000308200078F8500208F860028104000026D
68435 +:10180000248300073064FFF8008520210086182B10
68436 +:1018100014600002AF8500240086202303442821A1
68437 +:1018200034068000AF840020AF44008000A6202151
68438 +:1018300003E00008AF84003827BDFFD8AFB3001C19
68439 +:10184000AFB20018AFB00010AFBF0024AFB400209B
68440 +:10185000AFB100143C0860088D1450002418FF7FBD
68441 +:101860003C1A8000029898243672380CAD12500051
68442 +:101870008F5100083C07601C3C08600036300001B6
68443 +:10188000AF500008AF800018AF400080AF40008428
68444 +:101890008CE600088D0F08083C0760168CEC0000F1
68445 +:1018A00031EEFFF039CA00103C0DFFFF340B800011
68446 +:1018B0003C030080034B48212D440001018D282466
68447 +:1018C0003C0253533C010800AC230420AF8900388C
68448 +:1018D000AF860028AF840010275B400014A20003ED
68449 +:1018E00034E37C008CF90004032818218C7F007CF1
68450 +:1018F0008C6500783C0280003C0B08008D6B048CEA
68451 +:101900003C0A08008D4A048834520070AF85003CC0
68452 +:10191000AF9F00403C13080026731C440240A021E6
68453 +:101920008E4800008F46000038C30001306400017B
68454 +:1019300010800017AF880034028048218D2F0000EE
68455 +:101940003C0508008CA5045C3C1808008F1804585E
68456 +:1019500001E8102300A280210000C8210202402BD0
68457 +:1019600003198821022838213C010800AC30045CAE
68458 +:101970003C010800AC2704588F4E000039CD00010F
68459 +:1019800031AC00011580FFED01E04021AF8F003444
68460 +:101990008E5100003C0708008CE7045C3C0D0800F9
68461 +:1019A0008DAD04580228802300F0602100007021D2
68462 +:1019B0000190302B01AE1821006620213C01080067
68463 +:1019C000AC2C045C3C010800AC2404588F46010890
68464 +:1019D0008F47010030C92000AF860000AF87000CA0
68465 +:1019E0001120000A00C040213C1808008F18042C68
68466 +:1019F000270800013C010800AC28042C3C184000DA
68467 +:101A0000AF5801380A000196000000009749010410
68468 +:101A100000002821014550213122FFFF0162582199
68469 +:101A20000162F82B015F502130D902003C0108000F
68470 +:101A3000AC2B048C3C010800AC2A0488172000154C
68471 +:101A400024040F0010E400130000000024080D001F
68472 +:101A500010E8023B30CD000611A0FFE93C18400021
68473 +:101A6000936E00002409001031C400F01089027147
68474 +:101A700024020070108202E58F880014250F0001F7
68475 +:101A8000AF8F00143C184000AF5801380A0001968F
68476 +:101A900000000000974C01041180FFD93C18400061
68477 +:101AA00030C34000146000A1000000008F460178A0
68478 +:101AB00004C0FFFE8F87003824100800240F0008A0
68479 +:101AC0008CE30008AF500178A74F0140A7400142C6
68480 +:101AD000974E01048F86000031C9FFFF30CD000111
68481 +:101AE00011A002E1012040212531FFFE241800024F
68482 +:101AF000A75801463228FFFFA75101483C190800AA
68483 +:101B00008F39043C172002D08F8C000C30DF00206E
68484 +:101B100017E00002240400092404000130C20C0074
68485 +:101B2000240504005045000134840004A744014A00
68486 +:101B30003C1108008E3104203C1800483C10000184
68487 +:101B40000238182530CF00020070282511E000046B
68488 +:101B5000000018213C19010000B9282524030001C8
68489 +:101B600030DF000453E00005AF8300083C0600109E
68490 +:101B700000A6282524030001AF830008AF4510000C
68491 +:101B80000000000000000000000000000000000055
68492 +:101B90008F83000810600023000000008F451000B4
68493 +:101BA00004A1FFFE000000001060001E0000000005
68494 +:101BB0008F4410003C0C0020008C102410400019B1
68495 +:101BC0008F8E000031CD000211A000160000000031
68496 +:101BD000974F101415E000130000000097591008EB
68497 +:101BE0003338FFFF271100060011188200033080F0
68498 +:101BF00000C7282132300001322300031200032CD9
68499 +:101C00008CA200000000000D00C7F821AFE2000028
68500 +:101C10003C0508008CA5043024A600013C01080006
68501 +:101C2000AC2604308F6D00003402FFFFAF8D00043E
68502 +:101C30008CEC0000118202A6000020218CED000037
68503 +:101C400031AC01001180028A000000003C02080053
68504 +:101C50008C4204743C0308008C63044C3C1F080055
68505 +:101C60008FFF04703C1808008F1804480048382182
68506 +:101C70000068802100E8282B03E430210208402B73
68507 +:101C80000304882100C57021022878213C01080046
68508 +:101C9000AC30044C3C010800AC2F04483C01080067
68509 +:101CA000AC2704743C010800AC2E04708F8400182B
68510 +:101CB0000120302131290007249F000833F91FFF3C
68511 +:101CC00003594021AF84001CAF990018251B400028
68512 +:101CD000AF590084112000038F83002024C2000725
68513 +:101CE0003046FFF88F84002800C3282100A4302B41
68514 +:101CF00014C00002AF83002400A428230345602100
68515 +:101D0000340D8000018D10213C0F1000AF850020A4
68516 +:101D1000AF820038AF450080AF4F01788F88001444
68517 +:101D2000250F00010A0001EFAF8F00148F62000839
68518 +:101D30008F670000240500300007760231C300F0F1
68519 +:101D4000106500A7240F0040546FFF4C8F880014CB
68520 +:101D50008F4B01780560FFFE0000000030CA0200D2
68521 +:101D600015400003000612820000000D00061282DA
68522 +:101D7000304D0003000D4900012D18210003808023
68523 +:101D8000020D402100086080019380218E1F000019
68524 +:101D900017E00002000000000000000D8F6E00043C
68525 +:101DA00005C202BD92070006920E000592020004D1
68526 +:101DB0003C090001000E18800070F8218FED00181A
68527 +:101DC000277100082448000501A96021000830821D
68528 +:101DD000AFEC0018022020210E00059E26050014FD
68529 +:101DE000920A00068F7900043C0B7FFF000A2080D6
68530 +:101DF000009178218DF800043566FFFF0326282422
68531 +:101E000003053821ADE70004920E0005920D000491
68532 +:101E1000960C0008000E10800051C8218F2300008E
68533 +:101E2000974901043C07FFFF006758243128FFFF52
68534 +:101E3000010DF82103EC50233144FFFF01643025EC
68535 +:101E4000AF260000920300072418000110780275E5
68536 +:101E5000240F0003106F0285000000008E050010A3
68537 +:101E60002419000AA7590140A7450142921800040D
68538 +:101E70008F860000240F0001A7580144A7400146A7
68539 +:101E80009747010430D100023C050041A7470148B3
68540 +:101E900000001821A74F014A1220000330CB000494
68541 +:101EA0003C0501412403000151600005AF83000897
68542 +:101EB0003C06001000A6282524030001AF8300087B
68543 +:101EC000AF4510000000000000000000000000000E
68544 +:101ED000000000008F8A000811400004000000008C
68545 +:101EE0008F4410000481FFFE000000008F6B000093
68546 +:101EF000920800043C1108008E310444AF8B0004AA
68547 +:101F000097590104311800FF3C0E08008DCE0440A3
68548 +:101F10003325FFFF0305382102276021000010212F
68549 +:101F2000250F000A31E8FFFF0187482B01C2682115
68550 +:101F300001A9F821311000073C010800AC2C044431
68551 +:101F40003C010800AC3F0440120000038F8C0018D5
68552 +:101F50002506000730C8FFF8010C682131BF1FFFBC
68553 +:101F6000AF8C001CAF9F0018AF5F00849744010442
68554 +:101F7000035F80213084FFFF308A00071140000397
68555 +:101F8000261B4000248900073124FFF88F8200209F
68556 +:101F90008F850028008220210085702B15C000024B
68557 +:101FA000AF820024008520233C0B08008D6B048C3D
68558 +:101FB0003C0A08008D4A04880344882134038000C9
68559 +:101FC000022310213C0F1000AF840020AF820038A4
68560 +:101FD000AF440080AF4F01780A0002968F8800144A
68561 +:101FE0008F5001780600FFFE30D10200162000035A
68562 +:101FF000000612820000000D00061282305F00030E
68563 +:10200000001F1900007F302100062080009FC8219A
68564 +:1020100000194880013380218E180000130000024F
68565 +:10202000000000000000000D8F6C000C058001FB1B
68566 +:102030008F870038240E0001AE0E00008CE30008EC
68567 +:10204000A20000078F65000400055402314D00FF17
68568 +:1020500025A80005000830822CCB00411560000245
68569 +:10206000A20A00040000000D8F7800043C03FFFF6B
68570 +:1020700000E02821330BFFFF256C000B000C1082C1
68571 +:1020800000022080008748218D3F000026040014B4
68572 +:10209000A618000803E3C8240E00059EAD39000011
68573 +:1020A0008F4F01083C11100001F1382410E001AB02
68574 +:1020B00000000000974D01049208000725AAFFECDC
68575 +:1020C000350600023144FFFFA2060007960600080D
68576 +:1020D0002CC7001354E0000592030007921100077B
68577 +:1020E000362F0001A20F00079203000724180001F9
68578 +:1020F000107801C224090003106901D58F880038C7
68579 +:1021000030CBFFFF257100020011788331E400FF1E
68580 +:1021100000042880A20F000500A848218D2D000092
68581 +:10212000974A01043C0EFFFF01AEF8243143FFFF44
68582 +:10213000006B1023244CFFFE03ECC825AD390000D2
68583 +:10214000920600053C03FFF63462FFFF30D800FF23
68584 +:102150000018388000F08821922F00143C04FF7F83
68585 +:102160003487FFFF31EE000F01C65821316500FFB3
68586 +:1021700000055080015068218DAC00200148F821F5
68587 +:10218000A20B00060182C824AE0C000CAFF9000CB3
68588 +:10219000920900068E11000C032778240009C080E4
68589 +:1021A0000310702195C60026030828210227202449
68590 +:1021B000AE04000CADCF0020ADC60024ACA60010CC
68591 +:1021C0008F8800003C0B08008D6B048C3C0A0800D3
68592 +:1021D0008D4A0488241F001024190002A75F0140C3
68593 +:1021E000A7400142A7400144A7590146974901046D
68594 +:1021F00024070001310600022538FFFEA7580148D8
68595 +:102200003C050009A747014A10C00003000018213F
68596 +:102210003C05010924030001310C00045180000534
68597 +:10222000AF8300083C08001000A828252403000103
68598 +:10223000AF830008AF451000000000000000000060
68599 +:1022400000000000000000009205000424AE00021F
68600 +:1022500031CD0007000D182330620007AE020010D8
68601 +:102260008F90000812000004000000008F4F100043
68602 +:1022700005E1FFFE000000008F7100008F8E001846
68603 +:102280003C0308008C630444AF91000497450104AB
68604 +:1022900025CF001031E61FFF30A2FFFFAF8E001CDC
68605 +:1022A000AF860018AF4600842449FFFE3C0C0800AE
68606 +:1022B0008D8C0440974D010401208021000947C303
68607 +:1022C0000070C02131A9FFFF0310F82B0188C8213D
68608 +:1022D000033F202103463821313100073C0108002B
68609 +:1022E000AC3804443C010800AC2404401220000334
68610 +:1022F00024FB40002527000730E9FFF88F860020E7
68611 +:102300008F8400280126382100E4C02B170000022A
68612 +:10231000AF86002400E438230347202134198000CD
68613 +:10232000009910213C0F1000AF870020AF820038C9
68614 +:10233000AF470080AF4F01780A0002968F880014E3
68615 +:102340009747010410E0FDAE3C1840008F5801781B
68616 +:102350000700FFFE30C5400010A000033C1F00082E
68617 +:102360000000000D3C1F0008AF5F01402410080072
68618 +:102370008F860000AF5001789744010430D90001E6
68619 +:10238000132000ED3086FFFF24CCFFFE240D000259
68620 +:10239000A74D0146A74C01488F9100182408000D55
68621 +:1023A000A748014A8F630000262F000831E21FFF73
68622 +:1023B0000342702130C90007AF830004AF91001CB5
68623 +:1023C000AF82001800C03821AF4200841120000302
68624 +:1023D00025DB400024D800073307FFF88F85002055
68625 +:1023E0008F84002800E5302100C4382B14E000025F
68626 +:1023F000AF85002400C430238F8400140346F821E5
68627 +:10240000340C8000AF86002003EC8021AF460080B2
68628 +:10241000249900013C0610003C184000AF460178AA
68629 +:10242000AF900038AF990014AF5801380A000196F8
68630 +:10243000000000008F630000975101043067FFFF28
68631 +:102440003228FFFF8F4F017805E0FFFE30EC0007D8
68632 +:10245000000CF82333F0000724F9FFFE2404000ADF
68633 +:10246000A7440140A7500142A7590144A740014693
68634 +:10247000A74801488F45010830B800201700000226
68635 +:10248000240300092403000130CD0002A743014AC0
68636 +:102490003C04004111A00003000018213C0401414C
68637 +:1024A0002403000130C9000451200005AF83000857
68638 +:1024B0003C0600100086202524030001AF8300089D
68639 +:1024C000AF44100000000000000000000000000009
68640 +:1024D000000000008F8E000811C000040000000002
68641 +:1024E0008F4210000441FFFE000000008F7F0000BB
68642 +:1024F000276400088F91003CAF9F0004948500087A
68643 +:102500009490000A9499000C30AFFFFF0010C400B3
68644 +:102510003323FFFF11F100A6030320253C0E080022
68645 +:102520008DCE04443C0C08008D8C044000E88821CA
68646 +:102530002626FFFE01C628210000682100A6F82BF0
68647 +:10254000018D2021009F80213C010800AC2504441E
68648 +:102550003C010800AC30044024E200083042FFFF98
68649 +:102560003047000710E000038F830018244F000756
68650 +:1025700031E2FFF83106FFFF30C800070043802139
68651 +:1025800032191FFF0359C021AF83001CAF990018F7
68652 +:10259000271B4000AF590084110000038F8C0020DE
68653 +:1025A00024C5000730A6FFF88F84002800CC28211E
68654 +:1025B00000A4F82B17E00002AF8C002400A428230D
68655 +:1025C000AF850020AF4500803C0408008C840434B3
68656 +:1025D00003454821340E8000012E6821108000053B
68657 +:1025E000AF8D0038939100172406000E12260011BB
68658 +:1025F0002407043F3C021000AF4201788F8800148A
68659 +:10260000250F00010A0001EFAF8F00140E0005C472
68660 +:1026100000E020218F8800143C0B08008D6B048C97
68661 +:102620003C0A08008D4A0488250F00010A0001EFCA
68662 +:10263000AF8F00143C021000A7470148AF42017859
68663 +:102640000A0004CE8F88001424040F001184003D7A
68664 +:1026500030CE002015C0000224030009240300012D
68665 +:102660000A00021AA743014A0A00020DA7400146C8
68666 +:1026700094EF000894F1000A94F0000C8F8C003C59
68667 +:10268000001174003207FFFF31EDFFFF11AC00377E
68668 +:1026900001C720253C1808008F1804443C0F08008F
68669 +:1026A0008DEF0440000080210308682101A8382B29
68670 +:1026B00001F0702101C760213C010800AC2D0444E9
68671 +:1026C0003C010800AC2C04400A00027A8F840018F8
68672 +:1026D0003C0208008C42047C3C0308008C630454D8
68673 +:1026E0003C1F08008FFF04783C1808008F18045026
68674 +:1026F000004838210068802100E8282B03E43021BD
68675 +:102700000208402B0304882100C57021022878218B
68676 +:102710003C010800AC3004543C010800AC2F0450CC
68677 +:102720003C010800AC27047C3C010800AC2E047876
68678 +:102730000A00027A8F840018A74001460A00043577
68679 +:102740008F91001830CD002015A0FFC52403000D87
68680 +:10275000240300050A00021AA743014A974E010408
68681 +:1027600025C5FFF00A00038130A4FFFF8F980040C9
68682 +:102770001498FFC8000010213C0508008CA5046CCB
68683 +:102780003C1F08008FFF046800A8C8210328302BD5
68684 +:1027900003E22021008640213C010800AC39046C92
68685 +:1027A0003C010800AC2804680A00027A8F840018F3
68686 +:1027B0008F8C0040148CFF5900E8C8213C18080099
68687 +:1027C0008F18046C3C1108008E3104682723FFFE2B
68688 +:1027D00003034821000010210123302B0222702125
68689 +:1027E00001C668213C010800AC29046C3C010800CA
68690 +:1027F000AC2D04680A0004A524E200088F88003884
68691 +:102800003C03FFFF8D02000C0043F82403E4C825BD
68692 +:10281000AD19000C0A00038F30CBFFFF0A0003C381
68693 +:10282000AE000000974A0104920400048E26000CBA
68694 +:10283000014458212579FFF200C7C0243325FFFF4A
68695 +:1028400003053825AE27000C0A0002E68E050010AD
68696 +:102850003C0DFFFF8D0A0010014D582401646025D6
68697 +:10286000AD0C00100A00038F30CBFFFF974301042B
68698 +:10287000920E00048E290010006E1021244DFFEEF0
68699 +:102880000127602431A8FFFF0188F825AE3F001022
68700 +:102890000A0002E68E0500108E0F000CAE0000004C
68701 +:1028A00000078880023028210A0002B8ACAF00205F
68702 +:1028B0001460000D3058FFFF3C04FFFF0044682403
68703 +:1028C00001A47026000E602B000D102B004CF82484
68704 +:1028D00013E00002000000000000000D8CAF0000BB
68705 +:1028E0000A00025001E410253B03FFFF0003882B80
68706 +:1028F0000018802B0211202410800002000000002C
68707 +:102900000000000D8CB900000A0002503722FFFFC2
68708 +:102910003084FFFF30A5FFFF108000070000182162
68709 +:10292000308200011040000200042042006518219E
68710 +:102930001480FFFB0005284003E000080060102120
68711 +:1029400010C00007000000008CA2000024C6FFFF9A
68712 +:1029500024A50004AC82000014C0FFFB2484000402
68713 +:1029600003E000080000000010A0000824A3FFFFFF
68714 +:10297000AC86000000000000000000002402FFFF01
68715 +:102980002463FFFF1462FFFA2484000403E00008BC
68716 +:1029900000000000308EFFFF30D8FFFF00057C00F4
68717 +:1029A00001F8602539CDFFFF01AC5021014C582BB7
68718 +:1029B000014B4821000944023127FFFF00E8302184
68719 +:1029C0000006240230C5FFFF00A418213862FFFF73
68720 +:1029D00003E000083042FFFF3C0C08008D8C0484AB
68721 +:1029E000240BFF8027BDFFD001845021014B4824D8
68722 +:1029F000AF4900203C0808008D080484AFB20020D5
68723 +:102A0000AFB00018AFBF0028AFB30024AFB1001CB7
68724 +:102A1000936600040104382130E4007F009A1021FD
68725 +:102A20003C0300080043902130C500200360802152
68726 +:102A30003C080111277B000814A000022646007004
68727 +:102A40002646006C9213000497510104920F000473
68728 +:102A50003267000F322EFFFF31ED004001C72823FF
68729 +:102A600011A0000500004821925900BC3338000431
68730 +:102A70001700009000000000924300BC307F00046B
68731 +:102A800013E0000F0000000010A0000D0000000087
68732 +:102A9000960E0002240AFF8000A7602125CDFFFECC
68733 +:102AA000A74D1016920B0004014B2024308200FF2A
68734 +:102AB00010400085010C40253C0F0400010F40250B
68735 +:102AC0008F5301780660FFFE2404000AA7440140EA
68736 +:102AD000960D00022404000931AC0007000C5823B5
68737 +:102AE000316A0007A74A0142960200022443FFFE12
68738 +:102AF000A7430144A7400146975F0104A75F01482F
68739 +:102B00008F590108333800205300000124040001CC
68740 +:102B1000920F000431EE001015C000023483001043
68741 +:102B200000801821A743014A0000000000000000B7
68742 +:102B30000000000000000000AF481000000000008E
68743 +:102B40000000000000000000000000008F51100095
68744 +:102B50000621FFFE3113FFFF12600003000000009A
68745 +:102B60008F481018ACC8000096030006307FFFFFA6
68746 +:102B700027F900020019988200138880023B302157
68747 +:102B80008CD800001520005700183402920300046E
68748 +:102B90002405FF8000A3F82433F100FF1220002C4D
68749 +:102BA00000000000924700BC30F2000212400028F2
68750 +:102BB00000000000974B100C2562FFFEA742101684
68751 +:102BC000000000003C0A040035490030AF49100005
68752 +:102BD00000000000000000000000000000000000F5
68753 +:102BE0008F4C10000581FFFE000000009749100C7B
68754 +:102BF0008F51101C00C020213127FFFF24F200302C
68755 +:102C0000001218820003288000BBF8213226FFFF43
68756 +:102C1000AFF100000E0005B300112C020013C880B4
68757 +:102C2000033B98218E78000000027400AFB80010BA
68758 +:102C30008FA80010310FFFFFAFAF00108FA400105E
68759 +:102C400001C46825AFAD00108FA60010AE6600006D
68760 +:102C500097730008976D000A9766000C8F8A003CF6
68761 +:102C6000000D5C0030CCFFFF3262FFFF104A0036DF
68762 +:102C7000016C2025960600023C10100024D30008A9
68763 +:102C80000E00013B3264FFFF974C01040E00014926
68764 +:102C90003184FFFFAF5001788FBF00288FB300242D
68765 +:102CA0008FB200208FB1001C8FB0001803E0000825
68766 +:102CB00027BD003010A0FF700000000024A5FFFC1D
68767 +:102CC0000A0005EC240900048CD10000AF51101853
68768 +:102CD0008F5301780660FF7A2404000A0A00060177
68769 +:102CE0000000000000A7C8218F8800388F4E101CFC
68770 +:102CF0000019C0820018788001E82021AC8E000005
68771 +:102D0000000E2C0200C020210E0005B331C6FFFFCB
68772 +:102D1000023B28218CAD000000025400004030210D
68773 +:102D2000AFAD00108FAC0010318BFFFFAFAB0010C8
68774 +:102D30008FA2001001424825AFA900108FA70010F4
68775 +:102D40000A000631ACA700008F8F0040148FFFC926
68776 +:102D50000000000097420104960B00023C050800A9
68777 +:102D60008CA5046C3049FFFF316AFFFF3C1108005D
68778 +:102D70008E310468012A382124F2FFFE00B240217E
68779 +:102D80000012FFC30112C82B023FC02103192021EA
68780 +:102D90003C010800AC28046C3C010800AC24046829
68781 +:102DA0000A00066B0000000000A4102B1040000970
68782 +:102DB000240300010005284000A4102B04A00003F8
68783 +:102DC000000318405440FFFC000528401060000735
68784 +:102DD000000000000085302B14C0000200031842E0
68785 +:102DE000008520231460FFFB0005284203E0000853
68786 +:102DF000008010218F85002C27BDFFE800053027BB
68787 +:102E00002CC300012CA400020083102510400003F5
68788 +:102E1000AFBF00102405007FAF85002C00052827D8
68789 +:102E200030A5FFFF0E000592240426F58F830030A5
68790 +:102E3000240402BD004030210083382B10E000093B
68791 +:102E400024050001000420400083102B04800003AF
68792 +:102E5000000528405440FFFC0004204010A000085A
68793 +:102E600000C350210064402B1500000200052842D9
68794 +:102E70000064182314A0FFFB0004204200C350216B
68795 +:102E80008FBF0010000A4C02312200FF27BD00183E
68796 +:102E9000AF8A002C03E00008AF8900300A00002A46
68797 +:102EA00000000000000000000000000D7478703683
68798 +:102EB0002E322E3300000000060203000000000046
68799 +:102EC000000001360000EA60000000000000000081
68800 +:102ED00000000000000000000000000000000000F2
68801 +:102EE00000000000000000000000000000000000E2
68802 +:102EF00000000000000000000000000000000016BC
68803 +:102F000000000000000000000000000000000000C1
68804 +:102F100000000000000000000000000000000000B1
68805 +:102F200000000000000000000000000000000000A1
68806 +:102F3000000000000000138800000000000005DC15
68807 +:102F4000000000000000000010000003000000006E
68808 +:102F50000000000D0000000D3C02080024423C204F
68809 +:102F60003C03080024633DD4AC4000000043202B08
68810 +:102F70001480FFFD244200043C1D080037BD7FFC87
68811 +:102F800003A0F0213C100800261000A83C1C0800FB
68812 +:102F9000279C3C200E0002BA000000000000000D3B
68813 +:102FA0008F8300383C088000350700708CE50000F6
68814 +:102FB000008330253C02900000C22025AF85003000
68815 +:102FC000AF4400208F4900200520FFFE3C03800015
68816 +:102FD000346200708C4500008F8600303C19080078
68817 +:102FE0008F39007C3C0E08008DCE007800A620238F
68818 +:102FF00003245821000078210164682B01CF60214F
68819 +:10300000018D50213C010800AC2B007C3C010800E4
68820 +:10301000AC2A007803E00008000000000A0000412C
68821 +:10302000240400018F8400383C05800034A2000194
68822 +:103030000082182503E00008AF43002003E00008E9
68823 +:10304000000010213084FFFF30A5FFFF1080000733
68824 +:1030500000001821308200011040000200042042CC
68825 +:10306000006518211480FFFB0005284003E00008DC
68826 +:103070000060102110C00007000000008CA20000BA
68827 +:1030800024C6FFFF24A50004AC82000014C0FFFB8F
68828 +:103090002484000403E000080000000010A00008E1
68829 +:1030A00024A3FFFFAC860000000000000000000029
68830 +:1030B0002402FFFF2463FFFF1462FFFA248400044C
68831 +:1030C00003E0000800000000308AFFFF93A800130F
68832 +:1030D000A74A014497490E1630C600FF3C02100073
68833 +:1030E000A7490146AF450148A3460152A748015AE6
68834 +:1030F000AF4701608FA400188FA30014A7440158A4
68835 +:10310000AF43015403E00008AF42017803E0000838
68836 +:10311000000000003C038000346200708C49000015
68837 +:103120008F8800002484000727BDFFF83084FFF853
68838 +:10313000AF890030974D008A31ACFFFFAFAC000083
68839 +:103140008FAB0000016850232547FFFF30E61FFFCB
68840 +:1031500000C4282B14A0FFF73C0C8000358B0070B6
68841 +:103160008D6A00003C0708008CE700843C060800DC
68842 +:103170008CC6008000081082014918230002788064
68843 +:1031800000E370210000202101C3C82B00C4C0212E
68844 +:1031900001FA4021031948212502400027BD0008FB
68845 +:1031A0003C010800AC2E00843C010800AC290080E2
68846 +:1031B00003E00008000000008F8200002486000762
68847 +:1031C00030C5FFF800A2182130641FFF03E000089B
68848 +:1031D000AF8400008F8700388F8A004027BDFFB87A
68849 +:1031E0008F860044AFB60040AFBF0044AFB5003C8F
68850 +:1031F000AFB40038AFB30034AFB20030AFB1002C81
68851 +:10320000AFB000288F4501048D4900ACAF47008066
68852 +:103210008CC8002000A938230000B021AF480E1050
68853 +:103220008F440E1000004821AF440E148CC20024BD
68854 +:10323000AF420E188F430E18AF430E1C10E001254D
68855 +:103240002D230001936B0008116000D400000000E2
68856 +:10325000976E001031CDFFFF00ED602B158000CF81
68857 +:103260000000000097700010320FFFFFAF4F0E00FC
68858 +:103270008F520000325100081220FFFD00000000B4
68859 +:1032800097540E088F460E043285FFFF30B30001BD
68860 +:1032900012600132000000000000000D30B8A040B4
68861 +:1032A00024150040131500C030A9A0001120012DE5
68862 +:1032B00000000000937F000813E0000800000000F9
68863 +:1032C00097630010306BFFFF00CB402B1100000311
68864 +:1032D00030AC00401180012300000000A785003CB5
68865 +:1032E000AF8600349366000800E02821AFA70020D5
68866 +:1032F00014C0012427B30020AF60000C9782003C6B
68867 +:103300003047400014E00002240300162403000E9E
68868 +:1033100024194007A363000AAF790014938A003E82
68869 +:103320008F740014315800070018AA4002959025A8
68870 +:10333000AF7200149784003C8F700014309100101D
68871 +:1033400002117825AF6F0014978E003C31CD000834
68872 +:1033500011A00147000028218F6700143C021000D3
68873 +:103360003C0C810000E22825AF65001497460E0A48
68874 +:103370002408000E3405FFFC30C3FFFF006C582505
68875 +:10338000AF6B0004A3680002937F000A27E90004E2
68876 +:10339000A369000A9786003C9363000A30CC1F00A3
68877 +:1033A000000C598301634021251F0028A37F0009D9
68878 +:1033B00097490E0CA769001093790009272A00028B
68879 +:1033C000315800070018A82332B10007A371000B81
68880 +:1033D00093740009976400108F910034978F003C1C
68881 +:1033E000329200FF024480210205702131ED00403D
68882 +:1033F00011A0000531C4FFFF0091282B3C12800072
68883 +:1034000010A000140000A0210224382B14E0011B9E
68884 +:103410008FA500208F4D0E14AF4D0E108F420E1C45
68885 +:10342000AF420E18AF440E008F4F000031EE00087F
68886 +:1034300011C0FFFD0000000097540E080080882195
68887 +:1034400000009021A794003C8F500E04241400012A
68888 +:10345000AF900034976400103095FFFF8E68000035
68889 +:103460000111F82317E00009AE7F00008F650014FA
68890 +:103470008F8B004434A60040AF6600148F4C0E10B2
68891 +:10348000AD6C00208F430E18AD63002493670008D5
68892 +:1034900014E000D2000000000E00009E2404001082
68893 +:1034A0008F8900483C08320000402821312600FF67
68894 +:1034B0000006FC0003E8502525390001AF990048BB
68895 +:1034C000AC4A0000937800099370000A330400FFAF
68896 +:1034D00000047400320F00FF01CF6825AC4D0004DA
68897 +:1034E0008F820048064000EAACA20008ACA0000CA5
68898 +:1034F0009783003C306B0008156000022628000608
68899 +:1035000026280002974E0E148F450E1C8F6700046C
68900 +:10351000936D000231C4FFFF31A200FFAFA2001083
68901 +:103520008F6C0014AFA800180E00008BAFAC001415
68902 +:10353000240400100E0000C7000000008E7200007E
68903 +:1035400016400005000000008F6400142405FFBF32
68904 +:1035500000859824AF7300148F79000C033538214F
68905 +:10356000AF67000C9375000816A00008000000006B
68906 +:1035700012800006000000008F7F00143C0BEFFF5C
68907 +:103580003568FFFE03E84824AF690014A3740008FF
68908 +:103590008FA500200A00024602202021AF470E001E
68909 +:1035A0000A0000F5000000008F5901780720FFFE97
68910 +:1035B000241F08008F840000AF5F0178974B008ABA
68911 +:1035C000316AFFFF014448232528FFFF31021FFF16
68912 +:1035D0002C4300081460FFF9000000008F8E0048A3
68913 +:1035E0008F8D003800C048210344202125C60001EA
68914 +:1035F000240C0F00AF86004800E9382324864000E1
68915 +:1036000031CA00FF11AC0005240800019391003E6F
68916 +:103610003230000700107A4035E80001000AAC00A3
68917 +:103620003C18010002B8A025AC9440008F930048DC
68918 +:1036300030B2003630A40008ACD3000410800097EC
68919 +:1036400001123025974E0E0A8F8D00003C0281003A
68920 +:1036500031CCFFFF25AB0008018240253C03100060
68921 +:1036600031651FFF25390006241F000EAF48016099
68922 +:1036700000C33025A75F015AAF850000A759015844
68923 +:1036800014E0000A8F93003824120F0052720002D7
68924 +:103690002416000134C600408F580E108F94004449
68925 +:1036A000AE9800208F550E18AE9500248F450E144D
68926 +:1036B000AF4501448F590E1CAF590148A34A01522E
68927 +:1036C0003C0A1000AF460154AF4A017814E0FEDD19
68928 +:1036D0002D2300010076A025128000178FBF004423
68929 +:1036E0008F84003824160F0010960084000000001C
68930 +:1036F0008F45017804A0FFFE24150F001095006E81
68931 +:10370000000000008F470E14240202403C1F1000EE
68932 +:10371000AF4701448F440E1CAF440148A3400152FF
68933 +:10372000A740015AAF400160A7400158AF42015481
68934 +:10373000AF5F01788FBF00448FB600408FB5003C6B
68935 +:103740008FB400388FB300348FB200308FB1002CAB
68936 +:103750008FB0002803E0000827BD004814C0FED049
68937 +:1037600030B8A0408F420E148F84004400004821DE
68938 +:10377000AC8200208F510E1CAC9100240A00020E76
68939 +:103780002D2300018F910034978A003C3C12800069
68940 +:103790000220A821315800401700FF300000A0216E
68941 +:1037A000976900108F9200343139FFFF13320035D2
68942 +:1037B00000002021008048211480FEA000A03821B4
68943 +:1037C0008F420E148F840044AC8200208F510E1C57
68944 +:1037D000AC9100240A00020E2D230001936A000917
68945 +:1037E0009378000B315000FF330F00FF020F702160
68946 +:1037F00025C2000A3050FFFF0E00009E020020216B
68947 +:103800008F8600483C1F410024CD0001AF8D004849
68948 +:10381000936C000930C600FF00064400318300FFAE
68949 +:10382000246B0002010B4825013FC825AC5900005C
68950 +:103830008F67000C97440E1400F22825AC45000455
68951 +:103840008F450E1C8F670004936A00023084FFFFCF
68952 +:10385000315800FFAFB800108F6F0014AFB10018DF
68953 +:103860000E00008BAFAF00140A0001A60200202159
68954 +:10387000AF6000040A00013EA36000020A00024695
68955 +:1038800000002021000090210A0001702414000192
68956 +:103890003C1280000A000195ACB2000C8F91000030
68957 +:1038A00025240002A744015826300008320F1FFFCC
68958 +:1038B0000A0001F9AF8F0000AF40014C1120002C2D
68959 +:1038C000000000008F590E10AF5901448F430E18AD
68960 +:1038D000240200403C1F1000AF430148A3400152A6
68961 +:1038E000A740015AAF400160A7400158AF420154C0
68962 +:1038F000AF5F01780A0002278FBF00441120000645
68963 +:103900000000000097460E0830CC004015800002F1
68964 +:10391000000000000000000D8F4D017805A0FFFEA3
68965 +:103920000000000097530E103C120500240E2000EA
68966 +:10393000326AFFFF0152C025AF58014C8F4F0E1461
68967 +:103940003C021000AF4F01448F500E1CAF50014895
68968 +:10395000A34001528F840038A740015AAF40016054
68969 +:10396000A7400158AF4E01540A000215AF4201783A
68970 +:103970008F490E14AF4901448F430E1C0A00028E7A
68971 +:10398000240200403C0E20FF27BDFFE03C1A8000CF
68972 +:103990003C0F800835CDFFFDAFBF001CAFB2001853
68973 +:1039A000AFB10014AFB00010AF8F0040AF4D0E00AC
68974 +:1039B0000000000000000000000000000000000007
68975 +:1039C000000000003C0C00FF358BFFFDAF4B0E00EC
68976 +:1039D0003C0660048CC95000240AFF7F3C11600043
68977 +:1039E000012A40243507380CACC750008E24043817
68978 +:1039F00024050009AF4500083083FFFF38622F71AE
68979 +:103A00002450C0B3AF8000480E000068AF800000B3
68980 +:103A100052000001AE20442C0E0004353C11800001
68981 +:103A20000E000ED9363000708F8A00403C1208001C
68982 +:103A300026523C88020088218E0800008F5F00001B
68983 +:103A40003BF900013338000113000017AF88003044
68984 +:103A5000022048218D2700003C0F08008DEF006CEC
68985 +:103A60003C0C08008D8C006800E8C02301F8282178
68986 +:103A70000000682100B8302B018D582101664021DB
68987 +:103A80003C010800AC25006C3C010800AC28006833
68988 +:103A90008F44000038830001306200011440FFEDC4
68989 +:103AA00000E04021AF8700308E0C00003C0508008C
68990 +:103AB0008CA5006C3C0408008C84006801883023CD
68991 +:103AC00000A638210000102100E6402B00821821BA
68992 +:103AD0000068F8213C010800AC27006C3C0108009C
68993 +:103AE000AC3F00688F49010025590088AF99004418
68994 +:103AF000AF890038AF4900208E070000AF87003043
68995 +:103B00008F4D017805A0FFFE000000008E0600002A
68996 +:103B10003C0B08008D6B00743C0408008C84007022
68997 +:103B200000C728230165F8210000102103E5402B80
68998 +:103B30000082382100E8C821240908003C0108005F
68999 +:103B4000AC3F00743C010800AC390070AF4901780B
69000 +:103B500093580108A398003E938F003E31EE000178
69001 +:103B600015C000158F830038240E0D00106E00194B
69002 +:103B7000240F0F00106F001D00000000915900007D
69003 +:103B800024180050332900FF113800043C1F400066
69004 +:103B9000AF5F01380A0002E7000000000E00090EC6
69005 +:103BA000000000008F8A00403C1F4000AF5F0138DA
69006 +:103BB0000A0002E700000000938D003E31AC0006D1
69007 +:103BC000000C51000E0000CE0152D8210A00034320
69008 +:103BD0008F8A00403C1B0800277B3D080E0000CE6A
69009 +:103BE000000000000A0003438F8A00403C1B0800CD
69010 +:103BF000277B3D280E0000CE000000000A00034392
69011 +:103C00008F8A004090AA00018FAB00108CAC00108E
69012 +:103C10003C0300FF8D680004AD6C00208CAD0014E7
69013 +:103C200000E060213462FFFFAD6D00248CA7001816
69014 +:103C30003C09FF000109C024AD6700288CAE001CC0
69015 +:103C40000182C82403197825AD6F0004AD6E002CE5
69016 +:103C50008CAD0008314A00FFAD6D001C94A9000234
69017 +:103C60003128FFFFAD68001090A70000A56000029A
69018 +:103C7000A1600004A167000090A30002306200FF71
69019 +:103C80000002198210600005240500011065000E75
69020 +:103C90000000000003E00008A16A00018CD80028A1
69021 +:103CA000354A0080AD7800188CCF0014AD6F001439
69022 +:103CB0008CCE0030AD6E00088CC4002CA16A0001CF
69023 +:103CC00003E00008AD64000C8CCD001CAD6D001845
69024 +:103CD0008CC90014AD6900148CC80024AD680008BC
69025 +:103CE0008CC70020AD67000C8CC200148C8300646C
69026 +:103CF0000043C82B13200007000000008CC20014F2
69027 +:103D0000144CFFE400000000354A008003E0000886
69028 +:103D1000A16A00018C8200640A000399000000007F
69029 +:103D200090AA000027BDFFF88FA9001CA3AA0000DD
69030 +:103D30008FAE00003C0FFF808FA8001835E2FFFF18
69031 +:103D40008CCD002C01C26024AFAC0000A120000487
69032 +:103D500000E06021A7A000028FB800008D270004BA
69033 +:103D60000188182100A0582100C05021006D28268C
69034 +:103D70003C06FF7F3C0F00FF2CAD000135EEFFFF3E
69035 +:103D800034D9FFFF3C02FF0003193024000D1DC091
69036 +:103D9000010EC82400E2C02400C370250319782551
69037 +:103DA000AD2E0000AD2F00048D450024AFAE000005
69038 +:103DB000AD2500088D4D00202405FFFFAD2D000C22
69039 +:103DC000956800023107FFFFAD27001091660018CB
69040 +:103DD00030C200FF000219C2506000018D4500345E
69041 +:103DE000AD2500148D67000827BD0008AD27001C15
69042 +:103DF0008C8B00CCAD2C0028AD20002CAD2B0024EA
69043 +:103E0000AD20001803E00008AD20002027BDFFE032
69044 +:103E1000AFB20018AFB10014AFB00010AFBF001CBC
69045 +:103E20009098000000C088213C0D00FF330F007FF8
69046 +:103E3000A0CF0000908E000135ACFFFF3C0AFF00D0
69047 +:103E4000A0CE000194A6001EA22000048CAB00149A
69048 +:103E50008E29000400A08021016C2824012A40241E
69049 +:103E60000080902101052025A6260002AE24000432
69050 +:103E700026050020262400080E00007624060002F5
69051 +:103E800092470000260500282624001400071E0083
69052 +:103E90000003160324060004044000032403FFFF6C
69053 +:103EA000965900023323FFFF0E000076AE23001068
69054 +:103EB000262400248FBF001C8FB200188FB100147D
69055 +:103EC0008FB0001024050003000030210A0000809C
69056 +:103ED00027BD002027BDFFD8AFB1001CAFB0001830
69057 +:103EE000AFBF002090A80000240200018FB0003C6A
69058 +:103EF0003103003F00808821106200148FAA00382F
69059 +:103F0000240B0005506B0016AFAA001000A0202162
69060 +:103F100000C028210E0003DC02003021922400BCE6
69061 +:103F2000308300021060000326060030ACC00000A1
69062 +:103F300024C600048FBF00208FB1001C8FB0001872
69063 +:103F400000C0102103E0000827BD002801403821EF
69064 +:103F50000E00035AAFB000100A0004200000000059
69065 +:103F60000E0003A1AFB000140A00042000000000FE
69066 +:103F70003C02000A034218213C04080024843D6CE2
69067 +:103F80002405001A000030210A000080AF8300548D
69068 +:103F90003C038000346200708C48000000A058216F
69069 +:103FA00000C04821308A00FFAF8800308F4401787C
69070 +:103FB0000480FFFE3C0C8000358600708CC500003C
69071 +:103FC0003C0308008C6300743C1808008F180070D4
69072 +:103FD00000A82023006468210000C82101A4782BD8
69073 +:103FE0000319702101CF60213C010800AC2D007441
69074 +:103FF0003C010800AC2C00708F480E14AF480144FF
69075 +:10400000AF47014CA34A0152A74B01589346010800
69076 +:1040100030C5000854A0000135291000934B090059
69077 +:1040200024070050316A00FF11470007000000001C
69078 +:104030008F450E1CAF450148AF4901543C091000A3
69079 +:1040400003E00008AF490178934D010831A800084A
69080 +:104050001100001000000000934F010831EE001025
69081 +:1040600051C00001352900083C04080090843DD06F
69082 +:10407000A34401508F4309A4AF4301488F4209A0D4
69083 +:10408000AF420144AF4901543C09100003E000086D
69084 +:10409000AF4901783C1908008F393D8C333800084E
69085 +:1040A0005700FFF1352900080A00047300000000E2
69086 +:1040B00024070040AF470814AF4008108F4209445E
69087 +:1040C0008F4309508F4409548F45095C8F46094C32
69088 +:1040D000AF820064AF830050AF84004CAF85005CBA
69089 +:1040E00003E00008AF8600609346010930C5007FF9
69090 +:1040F000000518C0000521400083102103E00008DE
69091 +:10410000244200883C09080091293D9124A800021E
69092 +:104110003C05110000093C0000E8302500C51825C9
69093 +:1041200024820008AC83000003E00008AC80000497
69094 +:104130009347010B8F4A002C974F09083C18000E3B
69095 +:104140000358482131EEFFFF000E41C0AF48002C5C
69096 +:1041500097430908952C001A008040212403000190
69097 +:10416000318BFFFFAC8B00008D2D001C00A058216F
69098 +:1041700000C06021AC8D00048D24002030E7004099
69099 +:10418000AD04000891220019304400031083004858
69100 +:104190002885000214A00062240600021086005642
69101 +:1041A00024190003109900660000000010E0003A96
69102 +:1041B000000000003C07080094E73D8624E200016F
69103 +:1041C000934F0934934709219525002A31EE00FFCA
69104 +:1041D000000E488230ED00FF978700580009360036
69105 +:1041E000000D1C003044FFFF00C310250044C02513
69106 +:1041F00000A778213C19400003197025000F4C00DE
69107 +:10420000AD090004AD0E0000934D09203C030006EB
69108 +:1042100025090014000D360000C32025AD04000858
69109 +:104220008F59092C24E5000130A27FFFAD19000C45
69110 +:104230008F580930A782005825020028AD180010B9
69111 +:104240008F4F0938AD0F0014AD2B00048F4E09407D
69112 +:10425000AD2E0008934D09373C05080090A53D9010
69113 +:104260008F4409488F46094031A700FF00EC182110
69114 +:10427000008678230003C7000005CC0003196025E1
69115 +:1042800031E8FFFC01885825AD2B000CAD20001053
69116 +:1042900003E00008AF4A002C3C0D080095AD3D86B8
69117 +:1042A0003C0E080095CE3D800A0004C901AE1021E5
69118 +:1042B0003C05080094A53D8A3C06080094C63D8054
69119 +:1042C0003C18080097183D7C952E002400A6782104
69120 +:1042D00001F86823000E240025A2FFF200821825B1
69121 +:1042E00024190800AD03000CAD190014AD00001036
69122 +:1042F0000A0004C4250800189526002495250028E6
69123 +:104300000006C40000057C00370E810035ED080072
69124 +:10431000AD0E000CAD0D00100A0004C425080014F9
69125 +:104320001480FFA200000000952400240004140063
69126 +:1043300034430800AD03000C0A0004C42508001033
69127 +:104340003C03080094633D8A3C05080094A53D8029
69128 +:104350003C06080094C63D7C953900249538002819
69129 +:10436000006520210086782300196C000018740075
69130 +:1043700025E2FFEE01C2202535A3810024190800A3
69131 +:10438000AD03000CAD040010AD190018AD00001411
69132 +:104390000A0004C42508001C03E00008240201F4FC
69133 +:1043A00027BDFFE8AFB00010AFBF00140E000060E3
69134 +:1043B0000080802124050040AF4508148F83005001
69135 +:1043C0008F84004C8F85005C0070182100641023DE
69136 +:1043D00018400004AF830050AF6300548F66005450
69137 +:1043E000AF86004C1200000C000000008F440074E7
69138 +:1043F000936800813409FA002D07000710E00005DA
69139 +:1044000000891021936C0081240B01F4018B50046E
69140 +:1044100001441021AF62000C8F4E095C01C5682376
69141 +:1044200019A000048FBF00148F4F095CAF8F005C90
69142 +:104430008FBF00148FB000100A00006227BD001863
69143 +:104440008F8400648F8300508F82004CAF640044DF
69144 +:10445000AF63005003E00008AF6200543C038000EB
69145 +:10446000346200708C43000027BDFFF8308700FFE6
69146 +:1044700030A900FF30C800FFAF8300308F440178BF
69147 +:104480000480FFFE3C028000345900708F38000029
69148 +:10449000A3A700033C0708008CE700748FAC000062
69149 +:1044A0003C0608008CC60070030378233C0E7FFF97
69150 +:1044B00000EFC82135CDFFFF00005021018D2824D9
69151 +:1044C00000CA1821000847C0032F202B00A8102580
69152 +:1044D0000064C021AFA200003C010800AC390074A8
69153 +:1044E0003C010800AC380070934F010AA3A0000201
69154 +:1044F0003C0E80FFA3AF00018FAC0000312B007F8A
69155 +:1045000035CDFFFF018D4824000B5600012A4025C0
69156 +:10451000240730002406FF803C05100027BD00085A
69157 +:10452000AF48014CAF470154A7400158A346015280
69158 +:1045300003E00008AF45017827BDFFE8AFBF0014D6
69159 +:10454000AFB000108F6500743C068000309000FF13
69160 +:1045500000A620250E000060AF6400749363000580
69161 +:10456000346200080E000062A362000502002021F0
69162 +:104570008FBF00148FB00010240500052406000131
69163 +:104580000A00057027BD001827BDFFE03C0380002E
69164 +:10459000AFB00010AFBF0018AFB1001434620070AC
69165 +:1045A0008C470000309000FF30A800FFAF8700303C
69166 +:1045B0008F4401780480FFFE3C18800037110070A2
69167 +:1045C0008E2F00003C0D08008DAD00743C0A0800E1
69168 +:1045D0008D4A007001E7702301AE282100005821A8
69169 +:1045E00000AE302B014B4821012638213C01080048
69170 +:1045F000AC250074000088213C010800AC27007045
69171 +:104600001100000F000000008F6200742619FFFFE8
69172 +:104610003208007F0002FE0233E5007F150000062D
69173 +:10462000332200FF2407FF800207202624A3FFFF78
69174 +:1046300000838025320200FF0040802124111008F1
69175 +:104640000E000060000000008F49081831250004AA
69176 +:1046500014A0FFFD3218007F001878C000187140C8
69177 +:1046600001CF682125AC0088AF4C0818274A098083
69178 +:104670008D4B0020AF4B01448D460024AF460148CE
69179 +:10468000A35001500E000062A740015802201021E3
69180 +:104690008FBF00188FB100148FB0001003E0000826
69181 +:1046A00027BD002027BDFFE8308400FFAFBF00100A
69182 +:1046B0000E0005BB30A500FF8F8300508FBF001098
69183 +:1046C000344500402404FF903C02100027BD001830
69184 +:1046D000AF43014CA3440152AF45015403E000082D
69185 +:1046E000AF4201789343093E306200081040000D4C
69186 +:1046F0003C0901013528080AAC8800008F47007486
69187 +:10470000AC8700043C06080090C63D9030C5001000
69188 +:1047100050A00006AC8000088F6A0060AC8A0008D8
69189 +:104720002484000C03E00008008010210A00062207
69190 +:104730002484000C27BDFFE8AFBF0014AFB0001009
69191 +:104740009346093F00A050210005288000853823AA
69192 +:1047500030C200FF240300063C09080095293D866D
69193 +:1047600024E8FFD824050004104300372406000283
69194 +:104770009750093C3C0F020400063400320EFFFF44
69195 +:1047800001CF6825AC8D0000934C093E318B002091
69196 +:104790001160000800000000934309363C02010349
69197 +:1047A000345F0300307900FF033FC0252405000873
69198 +:1047B000AC98000493430934935909210005F88209
69199 +:1047C000306200FF0002C082332F00FF00186E002D
69200 +:1047D000000F740001AE6025018920253C094000CE
69201 +:1047E00000898025ACF0FFD8934309378F4F0948E3
69202 +:1047F0008F580940306200FF004AC821033F7021F2
69203 +:1048000001F86023000E6F0001A650253185FFFCE2
69204 +:10481000001F58800145482501683821AD09002056
69205 +:104820000E00006024F00028240400040E00006242
69206 +:10483000A364003F020010218FBF00148FB000104E
69207 +:1048400003E0000827BD00180A0006352406001200
69208 +:1048500027BDFFD024090010AFB60028AFB5002453
69209 +:10486000AFB40020AFB10014AFB000103C0108009D
69210 +:10487000A0293D90AFBF002CAFB3001CAFB2001811
69211 +:1048800097480908309400FF3C02000E3107FFFFF3
69212 +:10489000000731C0AF46002C974409089344010B30
69213 +:1048A00030B500FF03428021308300300000B0218A
69214 +:1048B0001060012500008821240C00043C01080040
69215 +:1048C000A02C3D90934B093E000B5600000A2E038E
69216 +:1048D00004A0016000000000AF400048934F010BAE
69217 +:1048E00031EE002011C00006000000009358093E80
69218 +:1048F00000189E0000139603064001890000000086
69219 +:104900009344010B30830040106000038F930050EC
69220 +:104910008F8200502453FFFF9347093E30E6000882
69221 +:1049200014C0000224120003000090219619002CEC
69222 +:1049300093580934934F0937A7990058330C00FF57
69223 +:1049400031EE00FF024E6821000D5880016C5021AD
69224 +:10495000015140213C010800A4283D869205001821
69225 +:1049600030A900FF010918213C010800A4233D885B
69226 +:104970009211001816200002000000000000000D37
69227 +:104980003C010800A4233D8A3C010800A4203D808E
69228 +:104990003C010800A4203D7C935F010B3063FFFFC6
69229 +:1049A00033F00040120000022464000A2464000B6B
69230 +:1049B0003091FFFF0E00009E022020219358010B32
69231 +:1049C0003C08080095083D8A0040202100185982C3
69232 +:1049D000316700010E00049A01072821934C010B56
69233 +:1049E0008F4B002C974E09083C0F000E034F4021BF
69234 +:1049F00031CDFFFF000D51C0AF4A002C974309088D
69235 +:104A00009505001A004038212404000130A9FFFF59
69236 +:104A1000AC4900008D06001C00404821318A00404E
69237 +:104A2000AC4600048D020020ACE20008910300199E
69238 +:104A300030630003106400EC28790002172001188D
69239 +:104A4000241000021070010C241F0003107F011EAF
69240 +:104A500000000000114000DE000000003C090800DA
69241 +:104A600095293D8625220001935F0934934E092143
69242 +:104A70009504002A33F900FF0019C08231CF00FFEE
69243 +:104A8000978E005800184600000F6C00010D80251D
69244 +:104A90003045FFFF02051025008E50213C034000E9
69245 +:104AA00000433025000A6400ACEC0004ACE60000D2
69246 +:104AB000935F09203C19000624EC0014001FC60077
69247 +:104AC00003197825ACEF00088F48092C25CD00018B
69248 +:104AD00031A57FFFACE8000C8F500930A785005846
69249 +:104AE00024E80028ACF000108F4409380100802130
69250 +:104AF000ACE40014AD9300048F530940AD9300085B
69251 +:104B0000934A09373C19080093393D908F4309486F
69252 +:104B10008F460940314200FF0052F82100667023A1
69253 +:104B2000001F7F000019C40001F8282531CDFFFCCB
69254 +:104B300000AD2025AD84000CAD800010AF4B002CE3
69255 +:104B4000934B093E317300081260000D3C060101D1
69256 +:104B500034CC080AACEC00288F530074AD13000469
69257 +:104B60003C0B0800916B3D903167001050E0000352
69258 +:104B7000AD0000088F6A0060AD0A00082510000C27
69259 +:104B800012C0003D000000009343093F24160006B8
69260 +:104B900024060004306200FF105600C924070002FA
69261 +:104BA0009758093C3C0F0204330DFFFF01AF40252D
69262 +:104BB000AE0800009345093E30A400201080000894
69263 +:104BC00000000000935309363C0B0103357F0300BE
69264 +:104BD000327900FF033F7025AE0E00042406000862
69265 +:104BE000934F093493480921312AFFFF31ED00FF2B
69266 +:104BF000000D1082310300FF0002B60000032C00FC
69267 +:104C000002C56025018A9825001220803C094000D9
69268 +:104C10000204502302695825AD4BFFD8935F093732
69269 +:104C20008F4F09488F58094033F900FF0332702134
69270 +:104C30000006B08201D668210007440001F828234D
69271 +:104C4000000D1F000068302530A2FFFC2547FFD86B
69272 +:104C500000C260250016808002074821ACEC0020CD
69273 +:104C6000253000280E00006024120004A372003FCB
69274 +:104C70000E000062000000009347010B30F200407C
69275 +:104C8000124000053C1900FF8E180000372EFFFF70
69276 +:104C9000030E3024AE0600000E0000C702202021C3
69277 +:104CA0003C10080092103D90321100031220000FBA
69278 +:104CB00002A028218F89005025330001AF930050B6
69279 +:104CC000AF7300508F6B00540173F8231BE0000298
69280 +:104CD000026020218F640054AF6400548F4C007434
69281 +:104CE000258401F4AF64000C02A028210280202159
69282 +:104CF000A76000680E0005BB3C1410008F850050B3
69283 +:104D000034550006AF45014C8F8A00488FBF002CF8
69284 +:104D10008FB3001C25560001AF9600488FB20018D3
69285 +:104D2000A34A01528FB60028AF5501548FB1001429
69286 +:104D3000AF5401788FB500248FB400208FB00010DD
69287 +:104D400003E0000827BD00309358093E00189E007C
69288 +:104D500000139603064200362411000293440923EF
69289 +:104D6000308300021060FEDD8F8600608F8200506D
69290 +:104D700014C2FEDA000000000E0000600000000017
69291 +:104D80009369003F24070016312800FF1107000C2B
69292 +:104D9000240500083C0C0800918C3D90358B0001E7
69293 +:104DA0003C010800A02B3D90936A003F314300FF77
69294 +:104DB00010650065240D000A106D005E2402000CD1
69295 +:104DC0000E000062000000000A00069000000000D3
69296 +:104DD0003C09080095293D863C0A0800954A3D801B
69297 +:104DE0000A0006F3012A10213C09080095293D8A92
69298 +:104DF0003C04080094843D803C06080094C63D7C39
69299 +:104E000095030024012410210046F8230003CC0060
69300 +:104E100027F0FFF20330C025240F0800ACF8000C87
69301 +:104E2000ACEF0014ACE000100A0006EE24E7001816
69302 +:104E30003C010800A0313D90935F093E241600011B
69303 +:104E400033F900201720FEA5241100080A0006905F
69304 +:104E5000241100048F6E00848F4D094011A0FE9E26
69305 +:104E6000AF8E0050240F00143C010800A02F3D908D
69306 +:104E70000A00068F00000000950E0024950D002802
69307 +:104E8000000E6400000D2C003589810034A6080056
69308 +:104E9000ACE9000CACE600100A0006EE24E70014B2
69309 +:104EA0001460FEEC000000009502002400021C00CB
69310 +:104EB00034640800ACE4000C0A0006EE24E700109D
69311 +:104EC0000A000741240700123C02080094423D8A70
69312 +:104ED0003C06080094C63D803C03080094633D7C7A
69313 +:104EE00095100024951900280046F82103E3C023FB
69314 +:104EF00000106C0000197400270FFFEE01CF282569
69315 +:104F000035AC8100ACEC000CACE5001024070800C7
69316 +:104F1000AD2700182527001C0A0006EEAD2000145E
69317 +:104F20008F7F004CAF7F00548F7900540A000699A0
69318 +:104F3000AF790050A362003F0E0000620000000045
69319 +:104F40000A00069000000000240200140A0008274E
69320 +:104F5000A362003F27BDFFE8308400FFAFBF001011
69321 +:104F60000E0005BB30A500FF9378007E9379007F8B
69322 +:104F7000936E00809368007A332F00FF001866005C
69323 +:104F8000000F6C0031CB00FF018D4825000B520053
69324 +:104F90008FBF0010012A3825310600FF344470000D
69325 +:104FA00000E628252402FF813C03100027BD0018DD
69326 +:104FB000AF45014CAF440154A342015203E0000845
69327 +:104FC000AF43017827BDFFD8AFB20018AFB10014CE
69328 +:104FD000AFB00010AFBF0020AFB3001C9342010977
69329 +:104FE000308600FF30B000FF000618C23204000215
69330 +:104FF0003071000114800005305200FF93670005F6
69331 +:1050000030E5000810A0000D30C80010024020213B
69332 +:105010000E0005A702202821240400018FBF0020D4
69333 +:105020008FB3001C8FB200188FB100148FB0001026
69334 +:105030000080102103E0000827BD00281500003281
69335 +:105040000000000093430109000028213062007F26
69336 +:10505000000220C00002F94003E49821267900886C
69337 +:10506000033B98218E7800248E6F0008130F0046B2
69338 +:10507000000000008F640084241800020004FD82F8
69339 +:1050800033F900031338007C0000000093660083AE
69340 +:10509000934A0109514600043205007C10A00060CB
69341 +:1050A000000000003205007C14A0005302402021C3
69342 +:1050B00016200006320400018E7F00248F5901045F
69343 +:1050C00017F9FFD600002021320400011080000AE9
69344 +:1050D000024020218F4209408F9300641053000644
69345 +:1050E000000000000E00066D022028218F430940B9
69346 +:1050F000AF630044024020210E0006020220282156
69347 +:105100000A000860240400013C0908008D2900649D
69348 +:10511000252600013C010800AC26006416000012A0
69349 +:10512000000000008F6D00843C0E00C001AE6024C2
69350 +:1051300015800005024020210E00082E02202821A3
69351 +:105140000A00086024040001240500040E00057014
69352 +:1051500024060001024020210E00082E02202821F2
69353 +:105160000A000860240400010E000041240400012C
69354 +:10517000936B007D020B50250E000062A36A007D38
69355 +:105180000A0008A38F6D00848F6600748F480104A5
69356 +:105190008E67002400064E021507FFB63126007FF9
69357 +:1051A000936B008326440001308A007F1146004340
69358 +:1051B000316300FF5464FFB08F6400842645000112
69359 +:1051C00030B1007F30A200FF122600042405000148
69360 +:1051D000004090210A00087624110001240FFF806E
69361 +:1051E000024F702401CF9026324200FF00409021F0
69362 +:1051F0000A000876241100010E00066D0220282105
69363 +:10520000321800301300FFAA321000820240202121
69364 +:105210000E0005A7022028210A00086024040001CE
69365 +:105220008F6E00743C0F80002405000301CF902591
69366 +:10523000AF72007493710083240600010E000570A4
69367 +:10524000322400FF0E00004124040001936D007D14
69368 +:10525000020D60250E000062A36C007D3C0B08006F
69369 +:105260008D6B0054257000013C010800AC300054E7
69370 +:105270000A000860240400018F6800743C09800063
69371 +:105280002405000401093825AF6700749363008387
69372 +:10529000240600010E000570306400FF0E0000417E
69373 +:1052A000240400019362007D020298250E00006232
69374 +:1052B000A373007D0A00086024040001324D0080C1
69375 +:1052C00039AC0080546CFF6C8F6400840A0008C9FC
69376 +:1052D0002645000127BDFFC83C0A0008AFBF0030CB
69377 +:1052E000AFB5002CAFB40028AFB30024AFB200209C
69378 +:1052F000AFB1001CAFB00018034AD8212409004008
69379 +:10530000AF490814AF4008108F4209448F43095039
69380 +:105310008F4609548F47095C8F48094C9344010814
69381 +:105320009345010BAF820064308400FF30A500FF7D
69382 +:10533000AF830050AF86004CAF87005C0E00084A78
69383 +:10534000AF8800601440017D8FBF0030A760006807
69384 +:10535000934D0900240B00503C15080026B53D482C
69385 +:1053600031AC00FF3C12080026523D58118B00035F
69386 +:10537000000000000000A8210000902193510109C5
69387 +:105380008F9F005024040010322E007F000E68C052
69388 +:10539000000E6140018D282124B40088AF54081804
69389 +:1053A0008F4901048F4A09A43C0B000E034BC02116
69390 +:1053B000012A10233C010800AC223D6C8F430958A0
69391 +:1053C0003C010800A0243D9097470908007F302346
69392 +:1053D0003C010800AC263D7030E8FFFF0008C9C062
69393 +:1053E0003C010800AC3F3D94AF59002C974209089E
69394 +:1053F0009710002C8EB10000930F001803749821B1
69395 +:10540000A7900058AF9300440220F80931F000FF44
69396 +:10541000304E000215C001B2304F000111E0014FC3
69397 +:10542000000000009343093E3066000814C00002EB
69398 +:10543000241400030000A0218F5809A424130001A4
69399 +:105440003C010800AC383D98934F0934935109371B
69400 +:1054500031EC00FF322E00FF028E6821000D288003
69401 +:1054600000AC5021015058213C010800A42B3D887C
69402 +:105470003C010800A42A3D8693490934312200FFEB
69403 +:1054800002022021249000103C010800A4303D8439
69404 +:10549000240700068F9F00503C010800AC273D8C7C
69405 +:1054A0008F88005C8F59095800008021011F282334
69406 +:1054B00004A00149033F20230480014700A4302BAE
69407 +:1054C00010C00149000000003C010800AC253D70FF
69408 +:1054D0008E4200000040F809000000003043000246
69409 +:1054E000146000F80040882130440001548000100E
69410 +:1054F0008E4200043C0908008D293D743C0AC0001E
69411 +:10550000012A8025AF500E008F45000030AB000807
69412 +:105510001160FFFD00000000974D0E0824100001EF
69413 +:10552000A78D003C8F4C0E04AF8C00348E420004DB
69414 +:105530000040F8090000000002228825322E0002F7
69415 +:1055400015C00180000000003C09080095293D7C41
69416 +:105550003C06080094C63D883C0A0800954A3D7EFA
69417 +:105560003C1908008F393D74012660213C18080061
69418 +:105570008F183D983C03080094633D92018A2021D6
69419 +:105580008F4E09400329F821248F000203E32821CC
69420 +:10559000031968213C010800A42C3D8AAF8E0064E9
69421 +:1055A0003C010800AC2D3D983C010800A4253D803D
69422 +:1055B0000E00009E31E4FFFF8F870048004020214D
69423 +:1055C0003C010800A0273D918E42000824E800011C
69424 +:1055D000AF8800480040F809000000009344010B28
69425 +:1055E0008F4C002C974A09083C0B000E034B4021BE
69426 +:1055F0003149FFFF000919C08F8B0050AF43002CC9
69427 +:10560000974309089506001A00403821308A004067
69428 +:1056100030DFFFFFAC5F00008D19001C0040482107
69429 +:10562000AC5900048D180020AC580008910F0019E7
69430 +:1056300031E30003107300F0000000002862000254
69431 +:105640001440010924050002106500FD240D00032B
69432 +:10565000106D010D00000000114000D90000000095
69433 +:105660003C0A0800954A3D8625420001934D0934C5
69434 +:1056700093580921950E002A31A300FF00032082D0
69435 +:10568000331F00FF9798005800047E00001FCC00D5
69436 +:1056900001F940253049FFFF0109102501D83021CB
69437 +:1056A0003C0540000045502500066C00ACED0004B0
69438 +:1056B000ACEA0000934309203C04000624ED0014EA
69439 +:1056C0000003FE0003E4C825ACF900088F49092C4B
69440 +:1056D000270F000131EE7FFFACE9000C8F48093045
69441 +:1056E000A78E005824E90028ACE800108F4509383F
69442 +:1056F00001204021ACE50014ADAB00048F4209400D
69443 +:10570000ADA20008934B09373C1F080093FF3D9062
69444 +:105710008F4309488F4A0940316600FF00D4202199
69445 +:10572000006A78230004C700001FCC000319282555
69446 +:1057300031EEFFFC00AE1025ADA2000CADA00010B4
69447 +:10574000AF4C002C934C093E318B00085160000F88
69448 +:105750008E58000C3C06010134CA080AACEA002845
69449 +:105760008F4B0074AD2B00043C0C0800918C3D90D5
69450 +:105770003187001050E00003AD2000088F62006008
69451 +:10578000AD2200082528000C8E58000C0300F809F3
69452 +:10579000010020213C19080097393D8A3C1F080070
69453 +:1057A00097FF3D7E033F782125E900020E0000C7E8
69454 +:1057B0003124FFFF3C0E08008DCE3D6C3C080800F4
69455 +:1057C0008D083D7401C828233C010800AC253D6CC0
69456 +:1057D00014A00006000000003C0308008C633D8C10
69457 +:1057E000346400403C010800AC243D8C1200007081
69458 +:1057F0008F8C00448F470E108F900044AE0700201E
69459 +:105800008F4D0E18AE0D00243C10080096103D8000
69460 +:105810000E0000600000000024020040AF420814A7
69461 +:105820008F8600508F8A004C00D01821006A5823C0
69462 +:1058300019600004AF830050AF6300548F650054BB
69463 +:10584000AF85004C1200000C000000008F44007473
69464 +:10585000936800813409FA002D0E000711C000057D
69465 +:1058600000891821937F0081241901F403F9780439
69466 +:1058700001E41821AF63000C8F44095C8F83005C46
69467 +:105880000083C0231B000003000000008F50095C50
69468 +:10589000AF90005C0E000062000000008F8C005092
69469 +:1058A0008E4700103C010800AC2C3D9400E0F80944
69470 +:1058B000000000003C0D08008DAD3D6C55A0FEF5CC
69471 +:1058C000240700068F450024975909088F8B006430
69472 +:1058D0008F9400503C0F001F978200588F86005411
69473 +:1058E0008F93004C3328FFFF35E9FF8000A9502437
69474 +:1058F000000871C032320100AF4E0024A4C2002C57
69475 +:10590000AF4A0024AF6B0044AF740050AF73005433
69476 +:105910001640008032380010570000868EA4000424
69477 +:10592000322300405460001B8EB100088EB0000C82
69478 +:105930000200F809000000008FBF00308FB5002C76
69479 +:105940008FB400288FB300248FB200208FB1001CC9
69480 +:105950008FB0001803E0000827BD00389347010905
69481 +:105960008F8800380007FE0003E8C825AF59008083
69482 +:105970008F5809A08F5309A4AFB80010AF580E1468
69483 +:105980008FB40010AF540E10AF530E1C0A00096202
69484 +:10599000AF530E180220F809000000008EB0000C72
69485 +:1059A0000200F809000000000A000AA88FBF0030BA
69486 +:1059B000A5800020A59300220A000A5BAD93002475
69487 +:1059C0003C09080095293D863C06080094C63D80A8
69488 +:1059D0000A0009F4012610213C010800AC203D70AA
69489 +:1059E0000A00098E8E4200003C010800AC243D7084
69490 +:1059F0000A00098E8E4200003C03080094633D8A31
69491 +:105A00003C04080094843D803C1F080097FF3D7CC7
69492 +:105A1000951800240064C821033F782300186C0007
69493 +:105A200025EEFFF201AE2825AC45000C240208004B
69494 +:105A3000ACE20014ACE000100A0009EF24E7001803
69495 +:105A400095060024950900280006240000091C0082
69496 +:105A5000349F810034790800ACFF000CACF90010D1
69497 +:105A60000A0009EF24E700141460FEFB00000000A8
69498 +:105A70009518002400187C0035EE0800ACEE000CF0
69499 +:105A80000A0009EF24E700103C07080094E73D8076
69500 +:105A90003C04080094843D8A3C03080094633D7CE8
69501 +:105AA00095190024951800280087F82103E378232E
69502 +:105AB0002407080000192C0000186C0025EEFFEEEA
69503 +:105AC00001AE302534A28100AD2700182527001C27
69504 +:105AD000AD22000CAD2600100A0009EFAD20001425
69505 +:105AE00093520109000028210E000602324400FFF3
69506 +:105AF0008FBF00308FB5002C8FB400288FB30024E7
69507 +:105B00008FB200208FB1001C8FB0001803E0000896
69508 +:105B100027BD0038935F010933E400FF0E00066DD6
69509 +:105B200000002821323800105300FF7E322300404D
69510 +:105B30008EA400040080F809000000000A000AA2F8
69511 +:105B4000322300401200FF5F000000008F540E144B
69512 +:105B50008F920044AE5400208F530E1C0A000A8A14
69513 +:105B6000AE5300248F82001C008040213C040100C1
69514 +:105B70009047008530E3002010600009000000001D
69515 +:105B80003C0708008CE73D948F83001800E3202336
69516 +:105B9000048000089389000414E30003010020211D
69517 +:105BA00003E00008008010213C04010003E000082D
69518 +:105BB000008010211120000B006738238F8C0020FB
69519 +:105BC00024090034918B00BC316A0002514000016D
69520 +:105BD0002409003000E9682B15A0FFF10100202105
69521 +:105BE00000E938232419FFFC00B9C02400F9782407
69522 +:105BF00000F8702B15C0FFEA01E8202130C2000335
69523 +:105C00000002182314C00012306900030000302184
69524 +:105C100000A9702101C6682100ED602B1180FFE012
69525 +:105C20003C0401002D2F00010006482B01053821FE
69526 +:105C300001E9302414C0FFDA24E4FFFC2419FFFC3E
69527 +:105C400000B9C0240308202103E0000800801021CF
69528 +:105C50008F8B002024060004916A00BC31440004AC
69529 +:105C60001480FFEC00A970210A000B5E00003021B7
69530 +:105C700027BDFFE8AFBF00108F460100934A01091E
69531 +:105C80003C1F08008FFF00902407FF80314F00FF6A
69532 +:105C900031E8007F0008614003E6C821032CC021E1
69533 +:105CA00027090120012770243C010800A02F3DD0C6
69534 +:105CB000AF4E080C3C0D08008DAD00903C040080F8
69535 +:105CC0003482000301A65821016C182124650120AB
69536 +:105CD00030AA007801424025AF48081C3C1F08004C
69537 +:105CE0008FFF00908F88004003E6C0213319000722
69538 +:105CF00003074824033A7821AF49002825E909C061
69539 +:105D0000952E00023C0D08008DAD008C3C0A080069
69540 +:105D10008D4A009031CC3FFF01A61821000C59801C
69541 +:105D2000006B282100A72024AF44002C95220002FC
69542 +:105D30003C1F08008FFF008C9107008530593FFF02
69543 +:105D400003E678210019C1800146702101F868211D
69544 +:105D500031CC007F31AB007F019A2821017A50219C
69545 +:105D60003C03000C3C04000E00A328210144102138
69546 +:105D700030E6002027470980AF82002CAF88001C46
69547 +:105D8000AF890024AF85002010C00006AF8700282F
69548 +:105D90008D0200508CA4010C0044302318C0007701
69549 +:105DA00000000000910C0085240DFFDF018D3824D8
69550 +:105DB000A10700858F8B001C8F8900248F87002806
69551 +:105DC0008D65004CAF850018912F000D31EE00203D
69552 +:105DD00011C000170000000024090001A38900047D
69553 +:105DE000AF80000C8CE400248F85000C240A00088E
69554 +:105DF000AF800008AF8000103C010800A42A3D7E5F
69555 +:105E00003C010800A4203D920E000B32000030211E
69556 +:105E10008F8500248FBF0010AF82001490A8000D62
69557 +:105E200027BD00180008394203E0000830E20001F5
69558 +:105E3000913F00022418000133F900FF001921826C
69559 +:105E400010980039240800021088005B8F86002C0F
69560 +:105E50008CE5002414A0001B8F9F002091220000DD
69561 +:105E6000240A00053046003F10CA00472404000100
69562 +:105E70008F860008A3840004AF860010AF86000C54
69563 +:105E80008CE400248F85000C240A00083C010800E3
69564 +:105E9000A42A3D7E3C010800A4203D920E000B3256
69565 +:105EA000000000008F8500248FBF0010AF82001417
69566 +:105EB00090A8000D27BD00180008394203E0000833
69567 +:105EC00030E200018CF800088CF900248FEE00C449
69568 +:105ED000A38000048CE40024AF8E000C8F85000C9E
69569 +:105EE0008F86000803197823240A0008AF8F00105A
69570 +:105EF0003C010800A42A3D7E3C010800A4203D92FC
69571 +:105F00000E000B32000000008F8500248FBF0010B0
69572 +:105F1000AF82001490A8000D27BD00180008394278
69573 +:105F200003E0000830E20001912300003062003FEE
69574 +:105F3000104400278F8500208CE400241480002169
69575 +:105F4000000000008D2E00183C187FFF8F85002078
69576 +:105F5000370FFFFF01CF1824AF8300088F9F000881
69577 +:105F60008CA8008403E8C82B1720000203E020213E
69578 +:105F70008CA400840A000BEDAF8400088CA3010CF4
69579 +:105F80000A000BCBAF8300188D2C00188F860008F9
69580 +:105F90003C0D7FFF8F89002035A3FFFF018358242C
69581 +:105FA00024040001AF8B0010AD2000CCA3840004BA
69582 +:105FB0000A000BF9AF86000C8CCA00140A000BED26
69583 +:105FC000AF8A00088CA300C80A000C30AF83000819
69584 +:105FD0008F84002C8CAC00648C8D0014018D582BA8
69585 +:105FE00011600004000000008CA200640A000C3064
69586 +:105FF000AF8200088C8200140A000C30AF820008C7
69587 +:106000008F85000C27BDFFE0AFBF0018AFB10014B3
69588 +:1060100014A00007AFB000108F86002424020005F2
69589 +:1060200090C400003083003F106200B68F840020CF
69590 +:106030008F91000800A080218F8C00283C0508006B
69591 +:106040008CA53D708D8B000431663FFF00C5502B41
69592 +:106050005540000100C02821938D000411A0007359
69593 +:1060600000B0F82B8F98002024040034930F00BC5C
69594 +:1060700031EE000251C000012404003000A4C82BFE
69595 +:10608000172000D10000000000A4282300B0F82B46
69596 +:106090003C010800A4243D7C17E000680200202198
69597 +:1060A0003C0308008C633D6C0083102B54400001BE
69598 +:1060B000008018218F8800243C010800AC233D7427
69599 +:1060C000000048219104000D308300205060000141
69600 +:1060D0008F490E188F8300140123382B10E00059CC
69601 +:1060E000000000003C0408008C843D7400895821A5
69602 +:1060F000006B502B114000560090602B006930233C
69603 +:1061000000C020213C010800AC263D7412000003B1
69604 +:10611000241FFFFC1090008A32270003009FC82430
69605 +:106120003C010800AC393D743C010800A4203D92BC
69606 +:106130008F84000C120400078F830020AF910008A9
69607 +:10614000020020218C7100CCAF90000C26300001A1
69608 +:10615000AC7000CC3C0208008C423D748F8A001069
69609 +:10616000240700180082202301422823AF84000C5A
69610 +:1061700010800002AF850010240700108F86001CDD
69611 +:106180003C010800A0273D902407004090CC0085EA
69612 +:10619000318B00C0116700408F8D001414A00015D2
69613 +:1061A00000002021934A01098F420974314500FF04
69614 +:1061B0000002260224A300013090007F3071007F8E
69615 +:1061C0001230007A2407FF80A0C300833C09080036
69616 +:1061D0008D293D8C8F880024240D0002352C000869
69617 +:1061E0003C010800A02D3DD13C010800AC2C3D8CA9
69618 +:1061F00024040010910E000D31C6002010C00005CF
69619 +:1062000000801821240800013C010800AC283D74DE
69620 +:10621000348300018FBF00188FB100148FB00010BD
69621 +:106220000060102103E0000827BD00203C010800A9
69622 +:10623000A4203D7C13E0FF9A020020210A000C817B
69623 +:1062400000A020213C0408008C843D740090602B49
69624 +:106250001180FFAE000000003C0F080095EF3D7C70
69625 +:1062600001E4702101C6682B11A000072C820004F4
69626 +:106270003C1F60008FF954043338003F1700FFE5DE
69627 +:10628000240300422C8200041040FFA0240300429B
69628 +:106290000A000CDF8FBF0018152DFFC000000000A2
69629 +:1062A0008CDF00743C0380002405FF8003E3C825D5
69630 +:1062B000ACD9007490D80085240E0004240400108A
69631 +:1062C000330F003F01E54025A0C800858F880024DA
69632 +:1062D0003C010800A02E3DD1240300019106000DD1
69633 +:1062E00030C9002015200003000000003C03080016
69634 +:1062F0008C633D743C010800AC233D6C0A000CD655
69635 +:10630000000000008F8700108C88008400E8282B94
69636 +:1063100014A0000200E088218C910084240900016F
69637 +:10632000A38900048F440E18022028210E000B328E
69638 +:1063300002203021022080210A000C67AF82001465
69639 +:1063400000071823306600033C010800A4263D9294
69640 +:10635000122000058F8C0020918B00BC316A000454
69641 +:106360001540001524CD00043C0F080095EF3D9228
69642 +:1063700001E4702100AE302B50C0FF6E8F84000C02
69643 +:106380002C85000514A0FFA32403004230980003CD
69644 +:1063900017000002009818232483FFFC3C0108002A
69645 +:1063A000AC233D740A000CA30000000000A7582491
69646 +:1063B0000A000CCB016718263C010800A42D3D9271
69647 +:1063C0000A000D33000000003C010800AC203D74C1
69648 +:1063D0000A000CDE240300428F83001014600007C3
69649 +:1063E000000010218F88002424050005910600007C
69650 +:1063F00030C400FF108500030000000003E0000827
69651 +:1064000000000000910A0018314900FF000939C25C
69652 +:1064100014E0FFFA8F85001C3C04080094843D7C46
69653 +:106420003C0308008C633D943C1908008F393D748F
69654 +:106430003C0F080095EF3D920064C0218CAD0054E4
69655 +:106440000319702101CF6021018D58231960001DAF
69656 +:1064500000000000910E001C8F8C002C974B0E103A
69657 +:1064600031CD00FF8D850004016D30238D88000043
69658 +:1064700030CEFFFF000E510000AAC82100003821D5
69659 +:1064800001072021032A182B0083C021AD990004A5
69660 +:10649000AD980000918F000A01CF6821A18D000AFC
69661 +:1064A0008F88002C974B0E12A50B0008950A003818
69662 +:1064B00025490001A50900389107000D34E60008C0
69663 +:1064C000A106000D03E000080000000027BDFFE06A
69664 +:1064D000938700048F8F00248FAD00143C0E7FFF44
69665 +:1064E0008F89000C35C8FFFFAFBF001CAFB000188C
69666 +:1064F00001A8182491EA000D000717C03C1FBFFF38
69667 +:10650000006258252D2E00018F90001837F9FFFFEB
69668 +:106510003C1808008F183D943C0F080095EF3D8A09
69669 +:1065200001796824000E47803C07EFFF3C05F0FF2F
69670 +:1065300001A818253149002034E2FFFF34ACFFFFE9
69671 +:106540000310582327A500102406000225EA0002A4
69672 +:1065500000621824008080211520000200004021E4
69673 +:106560008F480E1CA7AA0012056000372407000000
69674 +:1065700030FF00FF001FCF008F8B001C00793825F3
69675 +:10658000AFA70014916F00853C08080091083D9169
69676 +:106590003C18DFFF31EE00C0370AFFFF000E182B5A
69677 +:1065A0003C1F080097FF3D8400EA6824A3A800115F
69678 +:1065B0000003174001A248258FB90010AFA90014AD
69679 +:1065C0003C0A0800914A3D93A7BF00168FA800140B
69680 +:1065D000032CC0243C0B01003C0F0FFF030B1825BC
69681 +:1065E0003147000335EEFFFF010C68240007160059
69682 +:1065F000006EF8243C09700001A2C82503E9582563
69683 +:10660000AFB90014AFAB00100E000076A3A00015C8
69684 +:106610008F8C0024260200089186000D30C40020D3
69685 +:10662000108000068FBF001C3C05080094A53D802B
69686 +:1066300024B0FFFF3C010800A4303D808FB000185B
69687 +:1066400003E0000827BD00208F9800140118502B8C
69688 +:106650005540FFC7240700010A000DB630FF00FFB8
69689 +:106660009382000427BDFFE0AFBF00181040000F69
69690 +:10667000008050218F880024240B00058F8900089A
69691 +:10668000910700008F8400200100282130E3003FA3
69692 +:106690008F86002C106B000800003821AFA9001075
69693 +:1066A0000E00040EAFAA0014A38000048FBF0018D0
69694 +:1066B00003E0000827BD00208D1900183C0F0800DA
69695 +:1066C0008DEF3D748F9800103C027FFF8D08001401
69696 +:1066D000345FFFFF033F682401F8702101AE60239F
69697 +:1066E00001883821AFA900100E00040EAFAA0014D3
69698 +:1066F0000A000E04A38000048F8700243C050800D4
69699 +:1067000094A53D923C0208008C423D8C90E6000D21
69700 +:106710000005240030C300201060002C00444025F8
69701 +:106720008F85001C00006021240B000190A30085D0
69702 +:1067300000004821240A00013C0F800035EE007063
69703 +:106740008DC70000AF8700308F5801780700FFFE2B
69704 +:106750003C038000347900708F3800003C0508004D
69705 +:106760008CA500743C0D08008DAD007003077823E4
69706 +:1067700000AF38210000102100EF302B01A22021B2
69707 +:10678000008618213C010800AC2700743C01080079
69708 +:10679000AC230070AF4B01483C1908008F393D9481
69709 +:1067A000A7490144A74A0146AF59014C3C0B0800D8
69710 +:1067B000916B3D91A34B0152AF4801543C0810002E
69711 +:1067C000A74C015803E00008AF4801788F4B0E1C1E
69712 +:1067D0003C0A08008D4A3D7497490E16974D0E14D9
69713 +:1067E00001456021312AFFFF0A000E2731A9FFFF72
69714 +:1067F0008F8300249064000D308200201040002917
69715 +:10680000000000000000482100005021000040214D
69716 +:106810003C07800034EB00708D670000AF870030CC
69717 +:106820008F4C01780580FFFE3C0D800035AC007078
69718 +:106830008D8B00003C0508008CA500743C0408000A
69719 +:106840008C8400700167302300A67821000010219D
69720 +:1068500001E6C82B0082C021031970213C01080009
69721 +:10686000AC2F00743C010800AC2E0070AF49014809
69722 +:106870003C0D08008DAD3D94A7480144240900401B
69723 +:10688000A74A01463C081000240AFF91AF4D014C75
69724 +:10689000A34A0152AF490154A740015803E0000840
69725 +:1068A000AF4801788F490E1897460E1297450E1083
69726 +:1068B00030CAFFFF0A000E5D30A8FFFF8F8300245F
69727 +:1068C00027BDFFF89064000D308200201040003A90
69728 +:1068D00000000000240B000100004821240A0001F0
69729 +:1068E0003C088000350700708CE30000AF83003067
69730 +:1068F0008F4C01780580FFFE3C0E80003C040800B0
69731 +:1069000090843DD035C700708CEC00003C05080039
69732 +:106910008CA50074A3A400033C1908008F390070F3
69733 +:106920008FAD00000183302300A638210000102124
69734 +:106930000322782100E6C02B01F8602101AE40253A
69735 +:10694000AFA800003C010800AC2700743C0108001F
69736 +:10695000AC2C00709346010A3C04080090843DD1A1
69737 +:10696000A3A00002A3A600018FA300003C0580FFA6
69738 +:106970003099007F34A2FFFF006278240019C6001E
69739 +:1069800001F87025240D3000AF4E014C27BD0008E2
69740 +:10699000AF4D0154A7400158AF4B0148A7490144EE
69741 +:1069A000A74A01463C091000240AFF80A34A01526D
69742 +:1069B00003E00008AF4901788F4B0E1897460E127E
69743 +:1069C00097450E1030CAFFFF0A000E9130A9FFFF55
69744 +:1069D0008F85001C2402008090A40085308300C0B5
69745 +:1069E000106200058F8600208F8800088F87000CBA
69746 +:1069F000ACC800C8ACC700C403E000080000000039
69747 +:106A00003C0A0800254A39543C09080025293A2047
69748 +:106A10003C08080025082DD43C07080024E73B3437
69749 +:106A20003C06080024C637C43C05080024A5353CB4
69750 +:106A30003C040800248431643C0308002463385C6F
69751 +:106A40003C020800244236303C010800AC2A3D508C
69752 +:106A50003C010800AC293D4C3C010800AC283D48F5
69753 +:106A60003C010800AC273D543C010800AC263D64C5
69754 +:106A70003C010800AC253D5C3C010800AC243D58BD
69755 +:106A80003C010800AC233D683C010800AC223D609D
69756 +:086A900003E000080000000013
69757 +:00000001FF
69758 diff --git a/firmware/bnx2/bnx2-mips-09-6.2.1b.fw.ihex b/firmware/bnx2/bnx2-mips-09-6.2.1b.fw.ihex
69759 new file mode 100644
69760 index 0000000..43d7c4f
69761 --- /dev/null
69762 +++ b/firmware/bnx2/bnx2-mips-09-6.2.1b.fw.ihex
69763 @@ -0,0 +1,6496 @@
69764 +:10000000080001180800000000005594000000C816
69765 +:1000100000000000000000000000000008005594EF
69766 +:10002000000000380000565C080000A00800000036
69767 +:100030000000574400005694080059200000008436
69768 +:100040000000ADD808005744000001C00000AE5CBD
69769 +:100050000800321008000000000092580000B01C98
69770 +:10006000000000000000000000000000080092589E
69771 +:100070000000033C000142740800049008000400E2
69772 +:10008000000012FC000145B000000000000000006C
69773 +:1000900000000000080016FC00000004000158AC3D
69774 +:1000A000080000A80800000000003D00000158B052
69775 +:1000B00000000000000000000000000008003D00FB
69776 +:1000C00000000030000195B00A000046000000006A
69777 +:1000D000000000000000000D636F6D362E322E31DF
69778 +:1000E00062000000060201020000000000000003A0
69779 +:1000F000000000C800000032000000030000000003
69780 +:1001000000000000000000000000000000000000EF
69781 +:1001100000000010000001360000EA600000000549
69782 +:1001200000000000000000000000000000000008C7
69783 +:1001300000000000000000000000000000000000BF
69784 +:1001400000000000000000000000000000000000AF
69785 +:10015000000000000000000000000000000000009F
69786 +:10016000000000020000000000000000000000008D
69787 +:10017000000000000000000000000000000000007F
69788 +:10018000000000000000000000000010000000005F
69789 +:10019000000000000000000000000000000000005F
69790 +:1001A000000000000000000000000000000000004F
69791 +:1001B000000000000000000000000000000000003F
69792 +:1001C000000000000000000000000000000000002F
69793 +:1001D000000000000000000000000000000000001F
69794 +:1001E0000000000010000003000000000000000DEF
69795 +:1001F0000000000D3C020800244256083C030800A1
69796 +:1002000024635754AC4000000043202B1480FFFDB2
69797 +:10021000244200043C1D080037BD9FFC03A0F021D0
69798 +:100220003C100800261001183C1C0800279C5608AA
69799 +:100230000E000256000000000000000D27BDFFB4B4
69800 +:10024000AFA10000AFA20004AFA30008AFA4000C50
69801 +:10025000AFA50010AFA60014AFA70018AFA8001CF0
69802 +:10026000AFA90020AFAA0024AFAB0028AFAC002C90
69803 +:10027000AFAD0030AFAE0034AFAF0038AFB8003C28
69804 +:10028000AFB90040AFBC0044AFBF00480E001544FA
69805 +:10029000000000008FBF00488FBC00448FB90040B1
69806 +:1002A0008FB8003C8FAF00388FAE00348FAD003078
69807 +:1002B0008FAC002C8FAB00288FAA00248FA90020C0
69808 +:1002C0008FA8001C8FA700188FA600148FA5001000
69809 +:1002D0008FA4000C8FA300088FA200048FA1000040
69810 +:1002E00027BD004C3C1B60108F7A5030377B502864
69811 +:1002F00003400008AF7A00008F82002427BDFFE092
69812 +:10030000AFB00010AFBF0018AFB100148C42000CAA
69813 +:100310003C1080008E110100104000348FBF001887
69814 +:100320000E000D84000000008F85002024047FFF54
69815 +:100330000091202BACB100008E030104960201084D
69816 +:1003400000031C003042FFFF00621825ACA300042C
69817 +:100350009202010A96030114304200FF3063FFFF4E
69818 +:100360000002140000431025ACA200089603010C03
69819 +:100370009602010E00031C003042FFFF00621825A8
69820 +:10038000ACA3000C960301109602011200031C009E
69821 +:100390003042FFFF00621825ACA300108E02011846
69822 +:1003A000ACA200148E02011CACA20018148000083C
69823 +:1003B0008F820024978200003C0420050044182509
69824 +:1003C00024420001ACA3001C0A0000C6A782000062
69825 +:1003D0003C0340189442001E00431025ACA2001CB0
69826 +:1003E0000E000DB8240400018FBF00188FB1001457
69827 +:1003F0008FB000100000102103E0000827BD00208E
69828 +:100400003C0780008CE202B834E50100044100089A
69829 +:10041000240300013C0208008C42006024420001D9
69830 +:100420003C010800AC22006003E0000800601021DD
69831 +:100430003C0208008C42005C8CA4002094A30016AF
69832 +:100440008CA6000494A5000E24420001ACE40280B6
69833 +:100450002463FFFC3C010800AC22005C3C0210005D
69834 +:10046000A4E30284A4E5028600001821ACE6028819
69835 +:10047000ACE202B803E000080060102127BDFFE0F5
69836 +:100480003C028000AFB0001034420100AFBF001C3E
69837 +:10049000AFB20018AFB100148C43000094450008BF
69838 +:1004A0002462FE002C42038110400003000381C23D
69839 +:1004B0000A00010226100004240201001462000553
69840 +:1004C0003C1180003C02800890420004305000FF44
69841 +:1004D0003C11800036320100964300143202000FB6
69842 +:1004E00000021500004310253C0308008C63004403
69843 +:1004F00030A40004AE220080246300013C01080007
69844 +:10050000AC2300441080000730A200028FBF001C03
69845 +:100510008FB200188FB100148FB000100A0000CE07
69846 +:1005200027BD00201040002D0000182130A20080BF
69847 +:1005300010400005362200708E44001C0E000C672F
69848 +:10054000240500A0362200708C4400008F82000C2D
69849 +:10055000008210232C43012C10600004AF82001095
69850 +:10056000240300010A000145AF84000C8E42000400
69851 +:100570003C036020AF84000CAC6200143C02080015
69852 +:100580008C42005850400015000018218C62000475
69853 +:10059000240301FE304203FF144300100000182121
69854 +:1005A0002E020004104000032E0200080A00014041
69855 +:1005B0000000802114400003000000000A000140F8
69856 +:1005C0002610FFF90000000D2402000202021004B0
69857 +:1005D0003C036000AC626914000018218FBF001C4E
69858 +:1005E0008FB200188FB100148FB00010006010217E
69859 +:1005F00003E0000827BD00203C0480008C8301003C
69860 +:1006000024020100506200033C0280080000000D3B
69861 +:100610003C02800890430004000010213063000F6A
69862 +:1006200000031D0003E00008AC8300800004188074
69863 +:100630002782FF9C00621821000410C00044102390
69864 +:100640008C640000000210C03C030800246356E4E0
69865 +:10065000004310213C038000AC64009003E00008DC
69866 +:10066000AF8200243C0208008C42011410400019A3
69867 +:100670003084400030A2007F000231C03C02020002
69868 +:100680001080001400A218253C026020AC43001426
69869 +:100690003C0408008C8456B83C0308008C630110AD
69870 +:1006A0003C02800024050900AC4500200086202182
69871 +:1006B000246300013C028008AC4400643C01080053
69872 +:1006C000AC2301103C010800AC2456B803E000083C
69873 +:1006D000000000003C02602003E00008AC4500146C
69874 +:1006E00003E000080000102103E0000800001021D2
69875 +:1006F00030A2000810400008240201003C0208005B
69876 +:100700008C42010C244200013C010800AC22010C87
69877 +:1007100003E0000800000000148200080000000050
69878 +:100720003C0208008C4200FC244200013C0108000D
69879 +:10073000AC2200FC0A0001A330A200203C02080009
69880 +:100740008C420084244200013C010800AC22008459
69881 +:1007500030A200201040000830A200103C02080027
69882 +:100760008C420108244200013C010800AC2201082F
69883 +:1007700003E0000800000000104000080000000036
69884 +:100780003C0208008C420104244200013C010800A4
69885 +:10079000AC22010403E00008000000003C02080055
69886 +:1007A0008C420100244200013C010800AC220100FF
69887 +:1007B00003E000080000000027BDFFE0AFB1001417
69888 +:1007C0003C118000AFB20018AFBF001CAFB00010EA
69889 +:1007D0003632010096500008320200041040000733
69890 +:1007E000320300028FBF001C8FB200188FB10014BB
69891 +:1007F0008FB000100A0000CE27BD00201060000B53
69892 +:10080000020028218E2401000E00018A0000000051
69893 +:100810003202008010400003240500A10E000C6786
69894 +:100820008E44001C0A0001E3240200018E2301040F
69895 +:100830008F82000810430006020028218E24010048
69896 +:100840000E00018A000000008E220104AF82000821
69897 +:10085000000010218FBF001C8FB200188FB1001450
69898 +:100860008FB0001003E0000827BD00202C82000498
69899 +:1008700014400002000018212483FFFD240200021E
69900 +:10088000006210043C03600003E00008AC626914DD
69901 +:1008900027BDFFE0AFBF001CAFB20018AFB100141E
69902 +:1008A000AFB000103C048000948201083043700017
69903 +:1008B000240220001062000A2862200154400052E5
69904 +:1008C0008FBF001C24024000106200482402600018
69905 +:1008D0001062004A8FBF001C0A0002518FB200183C
69906 +:1008E00034820100904300098C5000189451000C90
69907 +:1008F000240200091062001C0000902128620009F7
69908 +:10090000144000218F8200242402000A5062001249
69909 +:10091000323100FF2402000B1062000F00000000C3
69910 +:100920002402000C146200188F8200243C0208008C
69911 +:100930008C4256B824030900AC83002000501021DB
69912 +:100940003C038008AC6200643C010800AC2256B84D
69913 +:100950000A0002508FBF001C0E0001E900102602A1
69914 +:100960000A0002308F8200240E0001E900102602E6
69915 +:100970003C0380089462001A8C72000C3042FFFF26
69916 +:10098000020280258F8200248C42000C5040001E01
69917 +:100990008FBF001C0E000D84000000003C02800090
69918 +:1009A00034420100944300088F82002400031C009D
69919 +:1009B0009444001E8F82002000641825AC50000073
69920 +:1009C00024040001AC510004AC520008AC40000CFF
69921 +:1009D000AC400010AC400014AC4000180E000DB844
69922 +:1009E000AC43001C0A0002508FBF001C0E000440E4
69923 +:1009F000000000000A0002508FBF001C0E000C9F78
69924 +:100A0000000000008FBF001C8FB200188FB10014CF
69925 +:100A10008FB000100000102103E0000827BD002067
69926 +:100A200027BDFFD8AFB400203C036010AFBF002447
69927 +:100A3000AFB3001CAFB20018AFB10014AFB00010DC
69928 +:100A40008C6450002402FF7F3C1408002694563822
69929 +:100A5000008220243484380CAC6450003C028000B6
69930 +:100A6000240300370E0014B0AC4300083C07080014
69931 +:100A700024E70618028010212404001D2484FFFFAF
69932 +:100A8000AC4700000481FFFD244200043C02080042
69933 +:100A9000244207C83C010800AC2256403C02080032
69934 +:100AA000244202303C030800246306203C04080072
69935 +:100AB000248403B43C05080024A506F03C06080085
69936 +:100AC00024C62C9C3C010800AC2256803C02080045
69937 +:100AD000244205303C010800AC2756843C01080044
69938 +:100AE000AC2656943C010800AC23569C3C010800FF
69939 +:100AF000AC2456A03C010800AC2556A43C010800DB
69940 +:100B0000AC2256A83C010800AC23563C3C0108002E
69941 +:100B1000AC2456443C010800AC2056603C0108005F
69942 +:100B2000AC2556643C010800AC2056703C0108001E
69943 +:100B3000AC27567C3C010800AC2656903C010800CE
69944 +:100B4000AC2356980E00056E00000000AF80000C2C
69945 +:100B50003C0280008C5300008F8300043C0208009C
69946 +:100B60008C420020106200213262000700008821C0
69947 +:100B70002792FF9C3C100800261056E43C02080017
69948 +:100B80008C42002024050001022518040043202483
69949 +:100B90008F820004004310245044000C26310001D1
69950 +:100BA00010800008AF9000248E4300003C028000BB
69951 +:100BB000AC4300900E000D4BAE05000C0A0002C1C4
69952 +:100BC00026310001AE00000C263100012E22000269
69953 +:100BD000261000381440FFE9265200043C020800A9
69954 +:100BE0008C420020AF820004326200071040FFD91F
69955 +:100BF0003C028000326200011040002D326200028F
69956 +:100C00003C0580008CA2010000002021ACA2002045
69957 +:100C10008CA301042C42078110400008ACA300A85B
69958 +:100C200094A2010824032000304270001443000302
69959 +:100C30003C02800890420005304400FF0E0001593C
69960 +:100C4000000000003C0280009042010B304300FF96
69961 +:100C50002C62001E54400004000310800E00018628
69962 +:100C60000A0002EC00000000005410218C42000039
69963 +:100C70000040F80900000000104000043C02800021
69964 +:100C80008C4301043C026020AC4300143C02080089
69965 +:100C90008C4200343C0440003C03800024420001AC
69966 +:100CA000AC6401383C010800AC220034326200021E
69967 +:100CB00010400010326200043C1080008E0201409F
69968 +:100CC000000020210E000159AE0200200E00038317
69969 +:100CD000000000003C024000AE0201783C02080027
69970 +:100CE0008C420038244200013C010800AC2200384C
69971 +:100CF000326200041040FF973C0280003C108000EC
69972 +:100D00008E020180000020210E000159AE02002059
69973 +:100D10008E03018024020F00546200073C02800809
69974 +:100D20008E0201883C0300E03042FFFF00431025A3
69975 +:100D30000A000328AE020080344200809042000086
69976 +:100D400024030050304200FF14430007000000005D
69977 +:100D50000E000362000000001440000300000000C9
69978 +:100D60000E000971000000003C0208008C42003CAB
69979 +:100D70003C0440003C03800024420001AC6401B804
69980 +:100D80003C010800AC22003C0A0002A33C028000A7
69981 +:100D90003C02900034420001008220253C02800089
69982 +:100DA000AC4400203C0380008C6200200440FFFE25
69983 +:100DB0000000000003E00008000000003C0280008A
69984 +:100DC000344300010083202503E00008AC440020E8
69985 +:100DD00027BDFFE0AFB10014AFB000100080882144
69986 +:100DE000AFBF00180E00033230B000FF8F83FF94B6
69987 +:100DF000022020219062002502028025A07000259B
69988 +:100E00008C7000183C0280000E00033D020280241A
69989 +:100E10001600000B8FBF00183C0480008C8201F884
69990 +:100E20000440FFFE348201C024030002AC510000E4
69991 +:100E3000A04300043C021000AC8201F88FBF0018F0
69992 +:100E40008FB100148FB0001003E0000827BD002010
69993 +:100E500027BDFFE83C028000AFBF00103442018094
69994 +:100E6000944300048C4400083063020010600005C5
69995 +:100E7000000028210E00100C000000000A0003787A
69996 +:100E8000240500013C02FF000480000700821824B2
69997 +:100E90003C02040014620004240500018F82FF94C8
69998 +:100EA00090420008240500018FBF001000A010210F
69999 +:100EB00003E0000827BD00188F82FF982405000179
70000 +:100EC000A040001A3C028000344201400A00034264
70001 +:100ED0008C4400008F85FF9427BDFFE0AFBF001C4E
70002 +:100EE000AFB20018AFB10014AFB0001090A2000074
70003 +:100EF000304400FF38830020388200300003182B74
70004 +:100F00000002102B0062182410600003240200501D
70005 +:100F1000148200A88FBF001C90A20005304200017F
70006 +:100F2000104000A48FBF001C3C02800034420140EE
70007 +:100F3000904200082443FFFF2C6200051040009EF1
70008 +:100F40008FB20018000310803C030800246355ACE6
70009 +:100F5000004310218C420000004000080000000007
70010 +:100F60003C028000345101400E0003328E24000008
70011 +:100F70008F92FF948E2200048E50000C1602000205
70012 +:100F800024020001AE42000C0E00033D8E2400003E
70013 +:100F90008E220004145000068FBF001C8FB2001870
70014 +:100FA0008FB100148FB000100A000F7827BD002009
70015 +:100FB0008E42000C0A000419000000003C0480006E
70016 +:100FC0003482014094A300108C4200043063FFFF80
70017 +:100FD0001443001C0000000024020001A4A2001021
70018 +:100FE0008C8202380441000F3C0380003C02003F29
70019 +:100FF0003448F0003C0760003C06FFC08CE22BBC8C
70020 +:1010000000461824004810240002130200031D8229
70021 +:10101000106200583C0280008C8202380440FFF7C6
70022 +:101020003C038000346201408C44000034620200C2
70023 +:10103000AC4400003C021000AC6202380A00043BE1
70024 +:101040008FBF001C94A200100A00041900000000C9
70025 +:10105000240200201482000F3C0280003C03800028
70026 +:1010600094A20012346301408C6300043042FFFFFD
70027 +:10107000146200050000000024020001A4A2001276
70028 +:101080000A0004028FBF001C94A200120A00041977
70029 +:1010900000000000345101400E0003328E24000095
70030 +:1010A0008F92FF948E230004964200123050FFFF6F
70031 +:1010B0001603000224020001A64200120E00033DA6
70032 +:1010C0008E2400008E220004160200068FBF001C32
70033 +:1010D0008FB200188FB100148FB000100A00037C8B
70034 +:1010E00027BD0020964200120A00041900000000EB
70035 +:1010F0003C03800094A20014346301408C6300041C
70036 +:101100003042FFFF14620008240200018FBF001C60
70037 +:101110008FB200188FB100148FB00010A4A2001479
70038 +:101120000A00146327BD002094A20014144000217B
70039 +:101130008FBF001C0A000435000000003C03800043
70040 +:1011400094A20016346301408C6300043042FFFF18
70041 +:101150001462000D240200018FBF001C8FB2001822
70042 +:101160008FB100148FB00010A4A200160A000B1457
70043 +:1011700027BD00209442007824420004A4A200105D
70044 +:101180000A00043B8FBF001C94A200162403000138
70045 +:101190003042FFFF144300078FBF001C3C020800D1
70046 +:1011A0008C420070244200013C010800AC22007017
70047 +:1011B0008FBF001C8FB200188FB100148FB00010C9
70048 +:1011C00003E0000827BD002027BDFFD8AFB20018FC
70049 +:1011D0008F92FF94AFB10014AFBF0020AFB3001CDB
70050 +:1011E000AFB000103C028000345101008C5001006F
70051 +:1011F0009242000092230009304400FF2402001FA5
70052 +:10120000106200AB28620020104000192402003850
70053 +:101210002862000A1040000D2402000B286200081A
70054 +:101220001040002E8F820024046001042862000216
70055 +:101230001440002A8F820024240200061062002637
70056 +:101240008FBF00200A00055F8FB3001C1062006092
70057 +:101250002862000B144000FA8FBF00202402000E09
70058 +:10126000106200788F8200240A00055F8FB3001C93
70059 +:10127000106200D2286200391040000A2402008067
70060 +:1012800024020036106200E528620037104000C3D7
70061 +:1012900024020035106200D98FBF00200A00055FCC
70062 +:1012A0008FB3001C1062002D2862008110400006E0
70063 +:1012B000240200C824020039106200C98FBF002038
70064 +:1012C0000A00055F8FB3001C106200A28FBF0020D0
70065 +:1012D0000A00055F8FB3001C8F8200248C42000C33
70066 +:1012E000104000D78FBF00200E000D8400000000CA
70067 +:1012F0003C038000346301008C6200008F85002075
70068 +:10130000946700089466000CACA200008C64000492
70069 +:101310008F82002400063400ACA400049448001E10
70070 +:101320008C62001800073C0000E83825ACA20008D9
70071 +:101330008C62001C24040001ACA2000C9062000A24
70072 +:1013400000C23025ACA60010ACA00014ACA0001860
70073 +:10135000ACA7001C0A00051D8FBF00208F8200244F
70074 +:101360008C42000C104000B68FBF00200E000D8490
70075 +:10137000000000008F820024962400089625000CAF
70076 +:101380009443001E000422029626000E8F82002045
70077 +:10139000000426000083202500052C003C0300806B
70078 +:1013A00000A6282500832025AC400000AC400004A6
70079 +:1013B000AC400008AC40000CAC450010AC40001440
70080 +:1013C000AC400018AC44001C0A00051C24040001B9
70081 +:1013D0009622000C14400018000000009242000504
70082 +:1013E0003042001014400014000000000E000332D0
70083 +:1013F0000200202192420005020020213442001008
70084 +:101400000E00033DA242000592420000240300208A
70085 +:10141000304200FF10430089020020218FBF0020CE
70086 +:101420008FB3001C8FB200188FB100148FB0001062
70087 +:101430000A00107527BD00280000000D0A00055E97
70088 +:101440008FBF00208C42000C1040007D8FBF002019
70089 +:101450000E000D84000000008E2200048F84002006
70090 +:101460009623000CAC8200003C0280089445002CBE
70091 +:101470008F82002400031C0030A5FFFF9446001E4D
70092 +:101480003C02400E0065182500C23025AC830004E4
70093 +:10149000AC800008AC80000CAC800010AC80001464
70094 +:1014A000AC800018AC86001C0A00051C2404000156
70095 +:1014B0000E000332020020218F93FF9802002021AA
70096 +:1014C0000E00033DA660000C020020210E00034226
70097 +:1014D000240500018F8200248C42000C104000582B
70098 +:1014E0008FBF00200E000D84000000009622000C2B
70099 +:1014F0008F83002000021400AC700000AC62000476
70100 +:10150000AC6000088E4400388F820024AC64000C6C
70101 +:101510008E46003C9445001E3C02401FAC66001005
70102 +:1015200000A228258E62000424040001AC6200148D
70103 +:10153000AC600018AC65001C8FBF00208FB3001C8E
70104 +:101540008FB200188FB100148FB000100A000DB8D0
70105 +:1015500027BD0028240200201082003A8FB3001C0F
70106 +:101560000E000F5E00000000104000358FBF00200D
70107 +:101570003C0480008C8201F80440FFFE348201C0EC
70108 +:1015800024030002AC500000A04300043C02100001
70109 +:10159000AC8201F80A00055E8FBF00200200202106
70110 +:1015A0008FBF00208FB3001C8FB200188FB10014C2
70111 +:1015B0008FB000100A000EA727BD00289625000C4A
70112 +:1015C000020020218FBF00208FB3001C8FB20018B3
70113 +:1015D0008FB100148FB000100A000ECC27BD002878
70114 +:1015E000020020218FB3001C8FB200188FB10014AD
70115 +:1015F0008FB000100A000EF727BD00289225000DBD
70116 +:10160000020020218FB3001C8FB200188FB100148C
70117 +:101610008FB000100A000F4827BD002802002021CB
70118 +:101620008FBF00208FB3001C8FB200188FB1001441
70119 +:101630008FB000100A000F1F27BD00288FBF0020A9
70120 +:101640008FB3001C8FB200188FB100148FB0001040
70121 +:1016500003E0000827BD00283C0580008CA202782A
70122 +:101660000440FFFE34A2024024030002AC44000008
70123 +:10167000A04300043C02100003E00008ACA2027882
70124 +:10168000A380001803E00008A38000193C03800039
70125 +:101690008C6202780440FFFE8F82001CAC62024024
70126 +:1016A00024020002A06202443C02100003E0000891
70127 +:1016B000AC6202783C02600003E000088C425404F3
70128 +:1016C0009083003024020005008040213063003FF9
70129 +:1016D0000000482114620005000050219082004C57
70130 +:1016E0009483004E304900FF306AFFFFAD00000CCC
70131 +:1016F000AD000010AD000024950200148D05001C03
70132 +:101700008D0400183042FFFF004910230002110031
70133 +:10171000000237C3004038210086202300A2102B8E
70134 +:101720000082202300A72823AD05001CAD0400186B
70135 +:10173000A5090014A5090020A50A001603E0000869
70136 +:10174000A50A002203E000080000000027BDFFD822
70137 +:10175000AFB200183C128008AFB40020AFB3001C39
70138 +:10176000AFB10014AFBF0024AFB00010365101007C
70139 +:101770003C0260008C4254049222000C3C1408008D
70140 +:10178000929400F7304300FF2402000110620032FF
70141 +:101790000080982124020002146200353650008037
70142 +:1017A0000E00143D000000009202004C2403FF8054
70143 +:1017B0003C0480003042007F000211C024420240FD
70144 +:1017C0000262102100431824AC8300949245000863
70145 +:1017D0009204004C3042007F3C03800614850007D1
70146 +:1017E000004380212402FFFFA22200112402FFFFF8
70147 +:1017F000A62200120A0005D22402FFFF9602002052
70148 +:10180000A222001196020022A62200128E020024BB
70149 +:101810003C048008AE2200143485008090A2004C65
70150 +:1018200034830100A06200108CA2003CAC6200185E
70151 +:101830008C820068AC6200F48C820064AC6200F0C0
70152 +:101840008C82006CAC6200F824020001A0A2006847
70153 +:101850000A0005EE3C0480080E001456000000004B
70154 +:1018600036420080A04000680A0005EE3C04800873
70155 +:10187000A2000068A20000690A0006293C02800854
70156 +:10188000348300808C62003834850100AC62006CC7
70157 +:1018900024020001A062006990A200D59083000894
70158 +:1018A000305100FF3072007F12320019001111C058
70159 +:1018B00024420240026210212403FF8000431824C6
70160 +:1018C0003C048000AC8300943042007F3C038006DF
70161 +:1018D000004380218E02000C1040000D02002021E8
70162 +:1018E0000E00057E0000000026220001305100FF9E
70163 +:1018F0009203003C023410260002102B0002102339
70164 +:101900003063007F022288240A0005F8A203003C0D
70165 +:101910003C088008350401008C8200E03507008017
70166 +:10192000ACE2003C8C8200E0AD02000090E5004C8F
70167 +:10193000908600D590E3004C908400D52402FF806F
70168 +:1019400000A228243063007F308400FF00A62825F1
70169 +:101950000064182A1060000230A500FF38A500803E
70170 +:10196000A0E5004CA10500093C0280089043000E50
70171 +:10197000344400803C058000A043000A8C8300189A
70172 +:101980003C027FFF3442FFFF00621824AC83001842
70173 +:101990008CA201F80440FFFE00000000ACB301C0BF
70174 +:1019A0008FBF00248FB400208FB3001C8FB20018AB
70175 +:1019B0008FB100148FB0001024020002A0A201C455
70176 +:1019C00027BD00283C02100003E00008ACA201F88B
70177 +:1019D00090A2000024420001A0A200003C030800E5
70178 +:1019E0008C6300F4304200FF144300020080302179
70179 +:1019F000A0A0000090A200008F84001C000211C073
70180 +:101A00002442024024830040008220212402FF80DF
70181 +:101A1000008220243063007F3C02800A006218218B
70182 +:101A20003C028000AC44002403E00008ACC300008A
70183 +:101A300094820006908300058C85000C8C86001033
70184 +:101A40008C8700188C88001C8C8400203C010800C6
70185 +:101A5000A42256C63C010800A02356C53C0108003C
70186 +:101A6000AC2556CC3C010800AC2656D03C01080001
70187 +:101A7000AC2756D83C010800AC2856DC3C010800D5
70188 +:101A8000AC2456E003E00008000000003C0280089F
70189 +:101A9000344201008C4400343C038000346504006F
70190 +:101AA000AC6400388C420038AF850028AC62003C42
70191 +:101AB0003C020005AC6200300000000000000000A5
70192 +:101AC00003E00008000000003C020006308400FF34
70193 +:101AD000008220253C028000AC4400300000000061
70194 +:101AE00000000000000000003C0380008C62000049
70195 +:101AF000304200101040FFFD3462040003E0000893
70196 +:101B0000AF82002894C200003C080800950800CA73
70197 +:101B100030E7FFFF0080482101021021A4C200002D
70198 +:101B200094C200003042FFFF00E2102B544000013D
70199 +:101B3000A4C7000094A200003C0308008C6300CC02
70200 +:101B400024420001A4A2000094A200003042FFFF42
70201 +:101B5000144300073C0280080107102BA4A00000DA
70202 +:101B60005440000101003821A4C700003C02800855
70203 +:101B7000344601008CC3002894A200003C0480007D
70204 +:101B80003042FFFE000210C000621021AC82003C17
70205 +:101B90008C82003C006218231860000400000000E2
70206 +:101BA0008CC200240A0006BA244200018CC2002420
70207 +:101BB000AC8200383C020050344200103C038000EC
70208 +:101BC000AC620030000000000000000000000000D7
70209 +:101BD0008C620000304200201040FFFD0000000039
70210 +:101BE00094A200003C04800030420001000210C0BA
70211 +:101BF000004410218C430400AD2300008C420404F7
70212 +:101C0000AD2200043C02002003E00008AC8200305A
70213 +:101C100027BDFFE0AFB20018AFB10014AFB00010A5
70214 +:101C2000AFBF001C94C2000000C080213C1208001D
70215 +:101C3000965200C624420001A6020000960300004E
70216 +:101C400094E2000000E03021144300058FB1003021
70217 +:101C50000E00068F024038210A0006F10000000045
70218 +:101C60008C8300048C82000424420040046100073D
70219 +:101C7000AC8200048C8200040440000400000000D8
70220 +:101C80008C82000024420001AC8200009602000019
70221 +:101C90003042FFFF50520001A600000096220000D3
70222 +:101CA00024420001A62200003C02800834420100C8
70223 +:101CB000962300009442003C144300048FBF001C94
70224 +:101CC00024020001A62200008FBF001C8FB2001862
70225 +:101CD0008FB100148FB0001003E0000827BD002072
70226 +:101CE00027BDFFE03C028008AFBF0018344201006E
70227 +:101CF0008C4800343C03800034690400AC68003830
70228 +:101D00008C42003830E700FFAF890028AC62003C0D
70229 +:101D10003C020005AC620030000000000000000042
70230 +:101D200000000000000000000000000000000000B3
70231 +:101D30008C82000C8C82000C97830016AD22000070
70232 +:101D40008C82001000604021AD2200048C820018BB
70233 +:101D5000AD2200088C82001CAD22000C8CA2001465
70234 +:101D6000AD2200108C820020AD220014908200056C
70235 +:101D7000304200FF00021200AD2200188CA20018B1
70236 +:101D8000AD22001C8CA2000CAD2200208CA2001001
70237 +:101D9000AD2200248CA2001CAD2200288CA20020C1
70238 +:101DA000AD22002C3402FFFFAD260030AD20003400
70239 +:101DB000506200013408FFFFAD28003850E00011E8
70240 +:101DC0003C0280083C048008348401009482005066
70241 +:101DD0003042FFFFAD22003C9483004494850044D0
70242 +:101DE000240200013063FFFF000318C200641821C1
70243 +:101DF0009064006430A5000700A210040A00075C8C
70244 +:101E00000044102534420100AD20003C94430044BE
70245 +:101E1000944400443063FFFF000318C2006218219D
70246 +:101E200030840007906500642402000100821004E1
70247 +:101E30000002102700451024A0620064000000008A
70248 +:101E400000000000000000003C0200063442004098
70249 +:101E50003C038000AC620030000000000000000085
70250 +:101E6000000000008C620000304200101040FFFDB6
70251 +:101E70003C06800834C201503463040034C7014A70
70252 +:101E800034C4013434C5014034C60144AFA200104B
70253 +:101E90000E0006D2AF8300288FBF001803E00008B1
70254 +:101EA00027BD00208F8300143C0608008CC600E884
70255 +:101EB0008F82001C30633FFF000319800046102111
70256 +:101EC000004310212403FF80004318243C068000B7
70257 +:101ED000ACC300283042007F3C03800C004330211B
70258 +:101EE00090C2000D30A500FF0000382134420010E0
70259 +:101EF000A0C2000D8F8900143C028008344201000A
70260 +:101F00009443004400091382304800032402000176
70261 +:101F1000A4C3000E1102000B2902000210400005AC
70262 +:101F2000240200021100000C240300010A0007A48F
70263 +:101F30000000182111020006000000000A0007A49A
70264 +:101F4000000018218CC2002C0A0007A424430001C1
70265 +:101F50008CC20014244300018CC200180043102BD3
70266 +:101F60005040000A240700012402002714A20003A5
70267 +:101F70003C0380080A0007B1240700013463010014
70268 +:101F80009462004C24420001A462004C00091382B8
70269 +:101F9000304300032C620002104000090080282119
70270 +:101FA000146000040000000094C200340A0007C15D
70271 +:101FB0003046FFFF8CC600380A0007C10080282188
70272 +:101FC000000030213C040800248456C00A000706A3
70273 +:101FD0000000000027BDFF90AFB60068AFB50064F9
70274 +:101FE000AFB40060AFB3005CAFB20058AFB1005403
70275 +:101FF000AFBF006CAFB000508C9000000080B021EB
70276 +:102000003C0208008C4200E8960400328F83001CDA
70277 +:102010002414FF8030843FFF0062182100042180D7
70278 +:1020200000641821007410243C13800000A090214B
70279 +:1020300090A50000AE620028920400323C02800CA1
70280 +:102040003063007F00628821308400C02402004099
70281 +:10205000148200320000A8218E3500388E2200182C
70282 +:102060001440000224020001AE2200189202003C3B
70283 +:10207000304200201440000E8F83001C000511C068
70284 +:102080002442024000621821306400783C02008043
70285 +:102090000082202500741824AE630800AE64081086
70286 +:1020A0008E2200188E03000800431021AE22001873
70287 +:1020B0008E22002C8E230018244200010062182B6F
70288 +:1020C0001060004300000000924200002442000122
70289 +:1020D000A24200003C0308008C6300F4304200FF81
70290 +:1020E00050430001A2400000924200008F84001C77
70291 +:1020F000000211C024420240248300403063007F6C
70292 +:10210000008220213C02800A0094202400621821D1
70293 +:10211000AE6400240A0008D2AEC30000920300326D
70294 +:102120002402FFC000431024304200FF1440000589
70295 +:1021300024020001AE220018962200340A00084250
70296 +:102140003055FFFF8E22001424420001AE220018F9
70297 +:102150009202003000021600000216030441001C27
70298 +:10216000000000009602003227A400100080282101
70299 +:10217000A7A20016960200320000302124070001B9
70300 +:102180003042FFFFAF8200140E000706AFA0001C14
70301 +:10219000960200328F83001C3C0408008C8400E807
70302 +:1021A00030423FFF000211800064182100621821B4
70303 +:1021B00000741024AE62002C3063007F3C02800E5D
70304 +:1021C000006218219062000D3042007FA062000D75
70305 +:1021D0009222000D304200105040007892420000E0
70306 +:1021E0003C028008344401009482004C8EC30000FD
70307 +:1021F0003C130800967300C62442FFFFA482004CE3
70308 +:10220000946200329623000E3054FFFF3070FFFFBF
70309 +:102210003C0308008C6300D000701807A7A30038A7
70310 +:102220009482003E3063FFFF3042FFFF14620007DC
70311 +:10223000000000008C8200303C038000244200300B
70312 +:10224000AC62003C0A00086A8C82002C9482004038
70313 +:102250003042FFFF5462000927A400408C820038FE
70314 +:102260003C03800024420030AC62003C8C8200348D
70315 +:10227000AC6200380A0008793C03800027A50038CA
70316 +:1022800027A60048026038210E00068FA7A000484C
70317 +:102290008FA300403C02800024630030AC43003830
70318 +:1022A0008FA30044AC43003C3C0380003C0200058B
70319 +:1022B000AC6200303C028008344401009482004249
70320 +:1022C000346304003042FFFF0202102B1440000769
70321 +:1022D000AF8300289482004E9483004202021021B2
70322 +:1022E000004310230A00088F3043FFFF9483004E01
70323 +:1022F00094820042026318210050102300621823C8
70324 +:102300003063FFFF3C028008344401009482003CAB
70325 +:102310003042FFFF14430003000000000A00089F42
70326 +:10232000240300019482003C3042FFFF0062102B26
70327 +:10233000144000058F8200289482003C0062102324
70328 +:102340003043FFFF8F820028AC550000AC400004F2
70329 +:10235000AC540008AC43000C3C02000634420010B0
70330 +:102360003C038000AC620030000000000000000070
70331 +:10237000000000008C620000304200101040FFFDA1
70332 +:102380003C04800834840100001018C20064182145
70333 +:102390009065006432020007240600010046100424
70334 +:1023A00000451025A0620064948300429622000E2E
70335 +:1023B00050430001A386001892420000244200010D
70336 +:1023C000A24200003C0308008C6300F4304200FF8E
70337 +:1023D00050430001A2400000924200008F84001C84
70338 +:1023E000000211C0244202402483004000822021C8
70339 +:1023F0002402FF80008220243063007F3C02800A98
70340 +:10240000006218213C028000AC440024AEC30000EE
70341 +:102410008FBF006C8FB600688FB500648FB400600A
70342 +:102420008FB3005C8FB200588FB100548FB0005052
70343 +:1024300003E0000827BD007027BDFFD8AFB3001C24
70344 +:10244000AFB20018AFB10014AFB00010AFBF0020A2
70345 +:102450000080982100E0802130B1FFFF0E000D8444
70346 +:1024600030D200FF0000000000000000000000006B
70347 +:102470008F8200208F830024AC510000AC520004F6
70348 +:10248000AC530008AC40000CAC400010AC40001451
70349 +:10249000AC4000189463001E02038025AC50001C61
70350 +:1024A0000000000000000000000000002404000103
70351 +:1024B0008FBF00208FB3001C8FB200188FB10014A3
70352 +:1024C0008FB000100A000DB827BD002830A5FFFF0F
70353 +:1024D0000A0008DC30C600FF3C02800834430100DB
70354 +:1024E0009462000E3C080800950800C63046FFFFC5
70355 +:1024F00014C000043402FFFF946500EA0A000929B1
70356 +:102500008F84001C10C20027000000009462004E5F
70357 +:102510009464003C3045FFFF00A6102300A6182B52
70358 +:102520003087FFFF106000043044FFFF00C5102318
70359 +:1025300000E210233044FFFF0088102B1040000EF3
70360 +:1025400000E810233C028008344401002403000109
70361 +:1025500034420080A44300162402FFFFA482000E30
70362 +:10256000948500EA8F84001C0000302130A5FFFF15
70363 +:102570000A0009013C0760200044102A10400009AD
70364 +:102580003C0280083443008094620016304200010F
70365 +:10259000104000043C0280009442007E244200145B
70366 +:1025A000A462001603E000080000000027BDFFE061
70367 +:1025B0003C028008AFBF001CAFB0001834420100DD
70368 +:1025C000944300429442004C104000193068FFFFD1
70369 +:1025D0009383001824020001146200298FBF001C9D
70370 +:1025E0003C06800834D00100000810C200501021C1
70371 +:1025F000904200643103000734C70148304200FFB5
70372 +:10260000006210073042000134C9014E34C4012C6D
70373 +:1026100034C5013E1040001634C601420E0006D2F9
70374 +:10262000AFA90010960200420A0009463048FFFF99
70375 +:102630003C028008344401009483004494820042A8
70376 +:102640001043000F8FBF001C94820044A4820042FC
70377 +:1026500094820050A482004E8C820038AC820030FC
70378 +:1026600094820040A482003E9482004AA4820048E2
70379 +:102670008FBF001C8FB000180A00090427BD00207E
70380 +:102680008FB0001803E0000827BD002027BDFFA081
70381 +:10269000AFB1004C3C118000AFBF0058AFB3005445
70382 +:1026A000AFB20050AFB000483626018890C2000398
70383 +:1026B0003044007FA3A400108E32018090C200003D
70384 +:1026C0003043007F240200031062003BAF92001CE5
70385 +:1026D00028620004104000062402000424020002C4
70386 +:1026E000106200098FBF00580A000B0F8FB300540F
70387 +:1026F0001062004D240200051062014E8FBF005889
70388 +:102700000A000B0F8FB30054000411C002421021C5
70389 +:102710002404FF8024420240004410242643004049
70390 +:10272000AE2200243063007F3C02800A0062182140
70391 +:102730009062003CAFA3003C00441025A062003C26
70392 +:102740008FA3003C9062003C304200401040016C7E
70393 +:102750008FBF00583C108008A3800018361001007D
70394 +:102760008E0200E08C63003427A4003C27A50010F3
70395 +:10277000004310210E0007C3AE0200E093A2001038
70396 +:102780003C038000A20200D58C6202780440FFFE68
70397 +:102790008F82001CAC62024024020002A06202444C
70398 +:1027A0003C021000AC6202780E0009390000000003
70399 +:1027B0000A000B0E8FBF00583C05800890C3000133
70400 +:1027C00090A2000B1443014E8FBF005834A4008028
70401 +:1027D0008C8200189082004C90A200083C0260009D
70402 +:1027E0008C4254048C8300183C027FFF3442FFFF6C
70403 +:1027F000006218243C0208008C4200B4AC8300182C
70404 +:102800003C038000244200013C010800AC2200B4DB
70405 +:102810008C6201F80440FFFE8F82001CAC6201C094
70406 +:102820000A000AD6240200023C10800890C300016E
70407 +:102830009202000B144301328FBF005827A40018E6
70408 +:1028400036050110240600033C0260008C4254044B
70409 +:102850000E000E470000000027A40028360501F0F6
70410 +:102860000E000E47240600038FA200283603010045
70411 +:10287000AE0200648FA2002CAE0200688FA200306E
70412 +:10288000AE02006C93A40018906300D52402FF8070
70413 +:102890000082102400431025304900FF3084007F5F
70414 +:1028A0003122007F0082102A544000013929008023
70415 +:1028B000000411C0244202402403FF800242102180
70416 +:1028C00000431024AE220094264200403042007F94
70417 +:1028D0003C038006004340218FA3001C2402FFFF1D
70418 +:1028E000AFA800403C130800927300F71062003359
70419 +:1028F00093A2001995030014304400FF3063FFFFDA
70420 +:102900000064182B106000100000000095040014F3
70421 +:102910008D07001C8D0600183084FFFF0044202323
70422 +:102920000004210000E438210000102100E4202BE5
70423 +:1029300000C2302100C43021AD07001CAD060018D4
70424 +:102940000A000A2F93A20019950400148D07001C99
70425 +:102950008D0600183084FFFF008220230004210030
70426 +:10296000000010210080182100C2302300E4202B39
70427 +:1029700000C4302300E33823AD07001CAD06001867
70428 +:1029800093A200198FA30040A462001497A2001A1A
70429 +:10299000A46200168FA2001CAC6200108FA2001C63
70430 +:1029A000AC62000C93A20019A462002097A2001A46
70431 +:1029B000A46200228FA2001CAC6200243C048008A8
70432 +:1029C000348300808C6200388FA20020012088218F
70433 +:1029D000AC62003C8FA20020AC82000093A20018E1
70434 +:1029E000A062004C93A20018A0820009A0600068B9
70435 +:1029F00093A20018105100512407FF803229007F54
70436 +:102A0000000911C024420240024210213046007FDA
70437 +:102A10003C03800000471024AC6200943C02800616
70438 +:102A200000C2302190C2003CAFA60040000020212F
70439 +:102A300000471025A0C2003C8FA80040950200026C
70440 +:102A4000950300148D07001C3042FFFF3063FFFF29
70441 +:102A50008D060018004310230002110000E2382107
70442 +:102A600000E2102B00C4302100C23021AD07001C51
70443 +:102A7000AD06001895020002A5020014A50000167C
70444 +:102A80008D020008AD0200108D020008AD02000C9E
70445 +:102A900095020002A5020020A50000228D02000878
70446 +:102AA000AD0200249102003C304200401040001A68
70447 +:102AB000262200013C108008A3A90038A38000183A
70448 +:102AC000361001008E0200E08D03003427A4004080
70449 +:102AD00027A50038004310210E0007C3AE0200E016
70450 +:102AE00093A200383C038000A20200D58C620278D9
70451 +:102AF0000440FFFE8F82001CAC62024024020002F0
70452 +:102B0000A06202443C021000AC6202780E00093957
70453 +:102B100000000000262200013043007F14730004EF
70454 +:102B2000004020212403FF8002231024004320269C
70455 +:102B300093A200180A000A4B309100FF93A40018DA
70456 +:102B40008FA3001C2402FFFF1062000A308900FFDF
70457 +:102B500024820001248300013042007F14530005C9
70458 +:102B6000306900FF2403FF800083102400431026F7
70459 +:102B7000304900FF3C028008904200080120882173
70460 +:102B8000305000FF123000193222007F000211C0C5
70461 +:102B900002421021244202402403FF8000431824F3
70462 +:102BA0003C048000AC8300943042007F3C038006EC
70463 +:102BB000004310218C43000C004020211060000BCA
70464 +:102BC000AFA200400E00057E000000002623000199
70465 +:102BD0002405FF803062007F145300020225202468
70466 +:102BE000008518260A000AAF307100FF3C048008F7
70467 +:102BF000348400808C8300183C027FFF3442FFFF46
70468 +:102C000000621824AC8300183C0380008C6201F839
70469 +:102C10000440FFFE00000000AC7201C0240200026C
70470 +:102C2000A06201C43C021000AC6201F80A000B0E65
70471 +:102C30008FBF00583C04800890C300019082000BB5
70472 +:102C40001443002F8FBF0058349000809202000878
70473 +:102C500030420040104000200000000092020008B6
70474 +:102C60000002160000021603044100050240202164
70475 +:102C70000E000ECC240500930A000B0E8FBF0058E7
70476 +:102C80009202000924030018304200FF1443000D93
70477 +:102C900002402021240500390E000E64000030217E
70478 +:102CA0000E0003328F84001C8F82FF9424030012D5
70479 +:102CB000A04300090E00033D8F84001C0A000B0E88
70480 +:102CC0008FBF0058240500360E000E64000030212E
70481 +:102CD0000A000B0E8FBF00580E0003320240202165
70482 +:102CE000920200058F84001C344200200E00033D38
70483 +:102CF000A20200050E0010758F84001C8FBF0058C3
70484 +:102D00008FB300548FB200508FB1004C8FB0004889
70485 +:102D100003E0000827BD00603C0280083445010044
70486 +:102D20003C0280008C42014094A3000E0000302140
70487 +:102D300000402021AF82001C3063FFFF3402FFFF00
70488 +:102D4000106200063C0760202402FFFFA4A2000ED0
70489 +:102D500094A500EA0A00090130A5FFFF03E000087E
70490 +:102D60000000000027BDFFC83C0280003C06800830
70491 +:102D7000AFB5002CAFB1001CAFBF0030AFB400281E
70492 +:102D8000AFB30024AFB20020AFB00018345101003F
70493 +:102D900034C501008C4301008E2200148CA400E491
70494 +:102DA0000000A821AF83001C0044102318400052EB
70495 +:102DB000A38000188E22001400005021ACA200E471
70496 +:102DC00090C3000890A200D53073007FA3A200102A
70497 +:102DD0008CB200E08CB400E4304200FF1053003BA2
70498 +:102DE00093A200108F83001C2407FF80000211C0F3
70499 +:102DF0000062102124420240246300400047102456
70500 +:102E00003063007F3C0980003C08800A006818217C
70501 +:102E1000AD2200248C62003427A4001427A50010E2
70502 +:102E2000024280210290102304400028AFA3001426
70503 +:102E30009062003C00E21024304200FF1440001970
70504 +:102E4000020090219062003C34420040A062003CAD
70505 +:102E50008F86001C93A3001024C200403042007FE4
70506 +:102E6000004828213C0208008C4200F42463000141
70507 +:102E7000306400FF14820002A3A30010A3A000107E
70508 +:102E800093A20010AFA50014000211C0244202401A
70509 +:102E900000C2102100471024AD2200240A000B4577
70510 +:102EA00093A200100E0007C3000000003C0280083F
70511 +:102EB00034420100AC5000E093A30010240A00014A
70512 +:102EC000A04300D50A000B4593A200102402000184
70513 +:102ED000154200093C0380008C6202780440FFFE2A
70514 +:102EE0008F82001CAC62024024020002A0620244F5
70515 +:102EF0003C021000AC6202789222000B2403000214
70516 +:102F0000304200FF144300720000000096220008C7
70517 +:102F1000304300FF24020082146200402402008437
70518 +:102F20003C028000344901008D22000C95230006EC
70519 +:102F3000000216023063FFFF3045003F24020027E5
70520 +:102F400010A2000FAF83001428A200281040000830
70521 +:102F5000240200312402002110A2000924020025CD
70522 +:102F600010A20007938200190A000BBD00000000A8
70523 +:102F700010A20007938200190A000BBD0000000098
70524 +:102F80000E000777012020210A000C3D0000000000
70525 +:102F90003C0380008C6202780440FFFE8F82001C9C
70526 +:102FA000AC62024024020002A06202443C02100013
70527 +:102FB000AC6202780A000C3D000000009523000678
70528 +:102FC000912400058D25000C8D2600108D270018FA
70529 +:102FD0008D28001C8D290020244200013C0108009E
70530 +:102FE000A42356C63C010800A02456C53C01080095
70531 +:102FF000AC2556CC3C010800AC2656D03C0108005C
70532 +:10300000AC2756D83C010800AC2856DC3C0108002F
70533 +:10301000AC2956E00A000C3DA38200191462000A94
70534 +:10302000240200813C02800834420100944500EAF9
70535 +:10303000922600058F84001C30A5FFFF30C600FFDC
70536 +:103040000A000BFE3C0760211462005C00000000D7
70537 +:103050009222000A304300FF306200201040000737
70538 +:10306000306200403C02800834420100944500EA8E
70539 +:103070008F84001C0A000BFC24060040104000074F
70540 +:10308000000316003C02800834420100944500EA27
70541 +:103090008F84001C0A000BFC24060041000216036A
70542 +:1030A000044100463C02800834420100944500EA95
70543 +:1030B0008F84001C2406004230A5FFFF3C076019E6
70544 +:1030C0000E000901000000000A000C3D0000000095
70545 +:1030D0009222000B24040016304200FF1044000628
70546 +:1030E0003C0680009222000B24030017304200FFB0
70547 +:1030F000144300320000000034C5010090A2000B10
70548 +:10310000304200FF1444000B000080218CA20020FC
70549 +:103110008CA400202403FF800043102400021140EF
70550 +:103120003084007F004410253C032000004310251C
70551 +:10313000ACC2083094A2000800021400000214037C
70552 +:10314000044200012410000194A2000830420080D3
70553 +:103150005040001A0200A82194A20008304220002A
70554 +:10316000504000160200A8218CA300183C021C2D20
70555 +:10317000344219ED106200110200A8213C0208003F
70556 +:103180008C4200D4104000053C0280082403000457
70557 +:1031900034420100A04300FC3C028008344201009C
70558 +:1031A000944500EA8F84001C2406000630A5FFFF2A
70559 +:1031B0000E0009013C0760210200A8210E00093918
70560 +:1031C000000000009222000A304200081040000473
70561 +:1031D00002A010210E0013790000000002A01021AF
70562 +:1031E0008FBF00308FB5002C8FB400288FB3002420
70563 +:1031F0008FB200208FB1001C8FB0001803E00008D0
70564 +:1032000027BD00382402FF80008220243C02900069
70565 +:1032100034420007008220253C028000AC4400209C
70566 +:103220003C0380008C6200200440FFFE0000000090
70567 +:1032300003E00008000000003C0380002402FF803F
70568 +:10324000008220243462000700822025AC64002024
70569 +:103250008C6200200440FFFE0000000003E0000834
70570 +:103260000000000027BDFFD8AFB3001CAFB10014B1
70571 +:10327000AFB00010AFBF0020AFB200183C1180000B
70572 +:103280003C0280088E32002034530100AE2400201E
70573 +:10329000966300EA000514003C074000004738250B
70574 +:1032A00000A08021000030210E0009013065FFFFE1
70575 +:1032B000240200A1160200022402FFFFA2620009FC
70576 +:1032C000AE3200208FBF00208FB3001C8FB20018D9
70577 +:1032D0008FB100148FB0001003E0000827BD002854
70578 +:1032E0003C0280082403000527BDFFE834420100AA
70579 +:1032F000A04300FCAFBF00103C0280008C420100E4
70580 +:10330000240500A1004020210E000C67AF82001CA4
70581 +:103310003C0380008C6202780440FFFE8F82001C18
70582 +:103320008FBF001027BD0018AC62024024020002CB
70583 +:10333000A06202443C021000AC62027803E0000884
70584 +:103340000000000027BDFFE83C068000AFBF001072
70585 +:1033500034C7010094E20008304400FF3883008243
70586 +:10336000388200842C6300012C4200010062182581
70587 +:103370001060002D24020083938200195040003B0E
70588 +:103380008FBF00103C020800904256CC8CC4010054
70589 +:103390003C06080094C656C63045003F38A30032AC
70590 +:1033A00038A2003F2C6300012C4200010062182566
70591 +:1033B000AF84001CAF860014A380001914600007BE
70592 +:1033C00000E020212402002014A2001200000000CE
70593 +:1033D0003402FFFF14C2000F00000000240200208E
70594 +:1033E00014A2000500E028218CE300142402FFFF52
70595 +:1033F0005062000B8FBF00103C040800248456C0AC
70596 +:10340000000030210E000706240700010A000CD638
70597 +:103410008FBF00100E000777000000008FBF001064
70598 +:103420000A00093927BD001814820004240200850F
70599 +:103430008CC501040A000CE1000020211482000662
70600 +:103440002482FF808CC50104240440008FBF00103B
70601 +:103450000A00016727BD0018304200FF2C4200021D
70602 +:1034600010400004240200228FBF00100A000B2726
70603 +:1034700027BD0018148200048F8200248FBF001023
70604 +:103480000A000C8627BD00188C42000C1040001E5C
70605 +:1034900000E0282190E300092402001814620003D0
70606 +:1034A000240200160A000CFC240300081462000722
70607 +:1034B00024020017240300123C02800834420080DA
70608 +:1034C000A04300090A000D0994A7000854620007F0
70609 +:1034D00094A700088F82FF942404FFFE9043000508
70610 +:1034E00000641824A043000594A7000890A6001BC0
70611 +:1034F0008CA4000094A500068FBF001000073C00BC
70612 +:103500000A0008DC27BD00188FBF001003E0000888
70613 +:1035100027BD00188F8500243C04800094A2002A57
70614 +:103520008CA30034000230C02402FFF000C210243B
70615 +:1035300000621821AC83003C8CA200303C03800068
70616 +:10354000AC8200383C02005034420010AC620030C3
70617 +:103550000000000000000000000000008C6200007D
70618 +:10356000304200201040FFFD30C20008104000062D
70619 +:103570003C0280008C620408ACA200208C62040C27
70620 +:103580000A000D34ACA200248C430400ACA300203C
70621 +:103590008C420404ACA200243C0300203C028000C6
70622 +:1035A000AC4300303C0480008C8200300043102487
70623 +:1035B0001440FFFD8F8600243C020040AC820030A6
70624 +:1035C00094C3002A94C2002894C4002C94C5002EF1
70625 +:1035D00024630001004410213064FFFFA4C20028CE
70626 +:1035E00014850002A4C3002AA4C0002A03E0000836
70627 +:1035F000000000008F84002427BDFFE83C05800404
70628 +:1036000024840010AFBF00100E000E472406000AED
70629 +:103610008F840024948200129483002E3042000F85
70630 +:10362000244200030043180424027FFF0043102BB0
70631 +:1036300010400002AC8300000000000D0E000D13CE
70632 +:10364000000000008F8300248FBF001027BD0018EA
70633 +:10365000946200149463001A3042000F00021500B7
70634 +:10366000006218253C02800003E00008AC4300A083
70635 +:103670008F8300243C028004944400069462001A64
70636 +:103680008C650000A4640016004410233042FFFF44
70637 +:103690000045102B03E00008384200018F8400240D
70638 +:1036A0003C0780049486001A8C85000094E2000692
70639 +:1036B000A482001694E3000600C310233042FFFFEB
70640 +:1036C0000045102B384200011440FFF8A483001677
70641 +:1036D00003E00008000000008F8400243C02800406
70642 +:1036E000944200069483001A8C850000A482001680
70643 +:1036F000006210233042FFFF0045102B38420001CA
70644 +:103700005040000D8F850024006030213C0780046C
70645 +:1037100094E20006A482001694E3000600C310237E
70646 +:103720003042FFFF0045102B384200011440FFF8E3
70647 +:10373000A48300168F8500243C03800034620400BB
70648 +:103740008CA40020AF820020AC6400388CA200243E
70649 +:10375000AC62003C3C020005AC62003003E00008B3
70650 +:10376000ACA000048F8400243C0300068C8200047B
70651 +:1037700000021140004310253C038000AC62003081
70652 +:103780000000000000000000000000008C6200004B
70653 +:10379000304200101040FFFD34620400AC80000491
70654 +:1037A00003E00008AF8200208F86002427BDFFE0E1
70655 +:1037B000AFB10014AFB00010AFBF00188CC300044D
70656 +:1037C0008CC500248F820020309000FF94C4001A22
70657 +:1037D00024630001244200202484000124A7002047
70658 +:1037E000ACC30004AF820020A4C4001AACC70024FC
70659 +:1037F00004A100060000882104E2000594C2001A1A
70660 +:103800008CC2002024420001ACC2002094C2001AE5
70661 +:1038100094C300282E040001004310262C4200010E
70662 +:10382000004410245040000594C2001A24020001F4
70663 +:10383000ACC2000894C2001A94C300280010202BC8
70664 +:10384000004310262C4200010044102514400007BC
70665 +:10385000000000008CC20008144000042402001084
70666 +:103860008CC300041462000F8F8500240E000DA786
70667 +:10387000241100018F820024944300289442001AEE
70668 +:1038800014430003000000000E000D1300000000B0
70669 +:10389000160000048F8500240E000D840000000037
70670 +:1038A0008F85002494A2001E94A4001C24420001D1
70671 +:1038B0003043FFFF14640002A4A2001EA4A0001E57
70672 +:1038C0001200000A3C02800494A2001494A3001A7F
70673 +:1038D0003042000F00021500006218253C028000F3
70674 +:1038E000AC4300A00A000E1EACA0000894420006E3
70675 +:1038F00094A3001A8CA40000A4A200160062102356
70676 +:103900003042FFFF0044102B384200011040000DF0
70677 +:1039100002201021006030213C07800494E2000660
70678 +:10392000A4A2001694E3000600C310233042FFFF58
70679 +:103930000044102B384200011440FFF8A4A30016E5
70680 +:10394000022010218FBF00188FB100148FB000101B
70681 +:1039500003E0000827BD002003E00008000000008D
70682 +:103960008F82002C3C03000600021140004310250A
70683 +:103970003C038000AC62003000000000000000004A
70684 +:10398000000000008C620000304200101040FFFD7B
70685 +:1039900034620400AF82002803E00008AF80002CEE
70686 +:1039A00003E000080000102103E000080000000010
70687 +:1039B0003084FFFF30A5FFFF0000182110800007B2
70688 +:1039C000000000003082000110400002000420428C
70689 +:1039D000006518210A000E3D0005284003E000089C
70690 +:1039E0000060102110C0000624C6FFFF8CA200005A
70691 +:1039F00024A50004AC8200000A000E4724840004C1
70692 +:103A000003E000080000000010A0000824A3FFFF4E
70693 +:103A1000AC86000000000000000000002402FFFF50
70694 +:103A20002463FFFF1462FFFA2484000403E000080B
70695 +:103A3000000000003C0280083442008024030001A2
70696 +:103A4000AC43000CA4430010A4430012A443001490
70697 +:103A500003E00008A44300168F82002427BDFFD88E
70698 +:103A6000AFB3001CAFB20018AFB10014AFB000107C
70699 +:103A7000AFBF00208C47000C248200802409FF8007
70700 +:103A80003C08800E3043007F008080213C0A80008B
70701 +:103A9000004920240068182130B100FF30D200FF17
70702 +:103AA00010E000290000982126020100AD44002CFE
70703 +:103AB000004928243042007F004820219062000005
70704 +:103AC00024030050304200FF1443000400000000B3
70705 +:103AD000AD45002C948200EA3053FFFF0E000D84A8
70706 +:103AE000000000008F8200248F83002000112C0032
70707 +:103AF0009442001E001224003484000100A22825F4
70708 +:103B00003C02400000A22825AC7000008FBF0020BE
70709 +:103B1000AC6000048FB20018AC7300088FB10014C1
70710 +:103B2000AC60000C8FB3001CAC6400108FB00010B0
70711 +:103B3000AC60001424040001AC60001827BD00280C
70712 +:103B40000A000DB8AC65001C8FBF00208FB3001CAD
70713 +:103B50008FB200188FB100148FB0001003E000087E
70714 +:103B600027BD00283C06800034C201009043000FAE
70715 +:103B7000240200101062000E2865001110A000073A
70716 +:103B800024020012240200082405003A10620006F4
70717 +:103B90000000302103E0000800000000240500358B
70718 +:103BA0001462FFFC000030210A000E6400000000D7
70719 +:103BB0008CC200748F83FF9424420FA003E000089E
70720 +:103BC000AC62000C27BDFFE8AFBF00100E0003423F
70721 +:103BD000240500013C0480088FBF0010240200016E
70722 +:103BE00034830080A462001227BD00182402000163
70723 +:103BF00003E00008A080001A27BDFFE0AFB2001864
70724 +:103C0000AFB10014AFB00010AFBF001C30B2FFFF67
70725 +:103C10000E000332008088213C028008345000806E
70726 +:103C20009202000924030004304200FF1443000CF8
70727 +:103C30003C028008124000082402000A0E000E5BBD
70728 +:103C400000000000920200052403FFFE0043102440
70729 +:103C5000A202000524020012A20200093C02800810
70730 +:103C600034420080022020210E00033DA0400027A6
70731 +:103C700016400003022020210E000EBF00000000AD
70732 +:103C800002202021324600FF8FBF001C8FB2001897
70733 +:103C90008FB100148FB00010240500380A000E64A4
70734 +:103CA00027BD002027BDFFE0AFBF001CAFB200184A
70735 +:103CB000AFB10014AFB000100E00033200808021BD
70736 +:103CC0000E000E5B000000003C02800834450080BE
70737 +:103CD00090A2000924120018305100FF1232000394
70738 +:103CE0000200202124020012A0A2000990A20005D7
70739 +:103CF0002403FFFE004310240E00033DA0A2000594
70740 +:103D00000200202124050020163200070000302187
70741 +:103D10008FBF001C8FB200188FB100148FB000103D
70742 +:103D20000A00034227BD00208FBF001C8FB200187D
70743 +:103D30008FB100148FB00010240500390A000E6402
70744 +:103D400027BD002027BDFFE83C028000AFB0001077
70745 +:103D5000AFBF0014344201009442000C2405003629
70746 +:103D60000080802114400012304600FF0E00033214
70747 +:103D7000000000003C02800834420080240300124E
70748 +:103D8000A043000990430005346300100E000E5B51
70749 +:103D9000A04300050E00033D020020210200202167
70750 +:103DA0000E000342240500200A000F3C0000000022
70751 +:103DB0000E000E64000000000E00033202002021FD
70752 +:103DC0003C0280089043001B2405FF9F0200202135
70753 +:103DD000006518248FBF00148FB00010A043001B93
70754 +:103DE0000A00033D27BD001827BDFFE0AFBF001844
70755 +:103DF000AFB10014AFB0001030B100FF0E000332BD
70756 +:103E0000008080213C02800824030012344200809C
70757 +:103E10000E000E5BA04300090E00033D02002021AE
70758 +:103E200002002021022030218FBF00188FB1001422
70759 +:103E30008FB00010240500350A000E6427BD002055
70760 +:103E40003C0480089083000E9082000A1443000B0B
70761 +:103E5000000028218F82FF942403005024050001D4
70762 +:103E600090420000304200FF1443000400000000B4
70763 +:103E70009082000E24420001A082000E03E00008A0
70764 +:103E800000A010213C0380008C6201F80440FFFE7A
70765 +:103E900024020002AC6401C0A06201C43C02100014
70766 +:103EA00003E00008AC6201F827BDFFE0AFB20018E4
70767 +:103EB0003C128008AFB10014AFBF001CAFB00010BF
70768 +:103EC00036510080922200092403000A304200FF8C
70769 +:103ED0001443003E000000008E4300048E22003890
70770 +:103EE000506200808FBF001C92220000240300500B
70771 +:103EF000304200FF144300253C0280008C42014008
70772 +:103F00008E4300043642010002202821AC43001CED
70773 +:103F10009622005C8E2300383042FFFF00021040E2
70774 +:103F200000621821AE23001C8E4300048E2400384A
70775 +:103F30009622005C006418233042FFFF0003184300
70776 +:103F4000000210400043102A10400006000000004C
70777 +:103F50008E4200048E230038004310230A000FAA6B
70778 +:103F6000000220439622005C3042FFFF0002204006
70779 +:103F70003C0280083443010034420080ACA4002C91
70780 +:103F8000A040002424020001A062000C0E000F5E7D
70781 +:103F900000000000104000538FBF001C3C02800056
70782 +:103FA0008C4401403C0380008C6201F80440FFFE19
70783 +:103FB00024020002AC6401C0A06201C43C021000F3
70784 +:103FC000AC6201F80A0010078FBF001C92220009A2
70785 +:103FD00024030010304200FF144300043C02800020
70786 +:103FE0008C4401400A000FEE0000282192220009B3
70787 +:103FF00024030016304200FF14430006240200147C
70788 +:10400000A22200093C0280008C4401400A001001F9
70789 +:104010008FBF001C8E2200388E23003C00431023EB
70790 +:10402000044100308FBF001C92220027244200016F
70791 +:10403000A2220027922200272C42000414400016DE
70792 +:104040003C1080009222000924030004304200FF4B
70793 +:10405000144300093C0280008C4401408FBF001CC7
70794 +:104060008FB200188FB100148FB000102405009398
70795 +:104070000A000ECC27BD00208C440140240500938B
70796 +:104080008FBF001C8FB200188FB100148FB00010CA
70797 +:104090000A000F4827BD00208E0401400E000332A5
70798 +:1040A000000000008E4200042442FFFFAE420004E4
70799 +:1040B0008E22003C2442FFFFAE22003C0E00033D56
70800 +:1040C0008E0401408E0401408FBF001C8FB2001887
70801 +:1040D0008FB100148FB00010240500040A000342C1
70802 +:1040E00027BD00208FB200188FB100148FB00010D0
70803 +:1040F00003E0000827BD00203C0680008CC2018838
70804 +:104100003C038008346500809063000E00021402B6
70805 +:10411000304400FF306300FF1464000E3C0280084E
70806 +:1041200090A20026304200FF104400098F82FF94C5
70807 +:10413000A0A400262403005090420000304200FF5B
70808 +:1041400014430006000000000A0005A18CC4018091
70809 +:104150003C02800834420080A044002603E00008AE
70810 +:104160000000000027BDFFE030E700FFAFB20018FD
70811 +:10417000AFBF001CAFB10014AFB0001000809021A1
70812 +:1041800014E0000630C600FF000000000000000D33
70813 +:10419000000000000A001060240001163C038008A3
70814 +:1041A0009062000E304200FF14460023346200800B
70815 +:1041B00090420026304200FF1446001F000000001D
70816 +:1041C0009062000F304200FF1446001B0000000008
70817 +:1041D0009062000A304200FF144600038F90FF9463
70818 +:1041E0000000000D8F90FF948F82FF983C1180009B
70819 +:1041F000AE05003CAC450000A066000A0E0003328C
70820 +:104200008E240100A20000240E00033D8E24010034
70821 +:104210003C0380008C6201F80440FFFE240200028F
70822 +:10422000AC7201C0A06201C43C021000AC6201F893
70823 +:104230000A0010618FBF001C000000000000000D8C
70824 +:10424000000000002400013F8FBF001C8FB2001847
70825 +:104250008FB100148FB0001003E0000827BD0020CC
70826 +:104260008F83FF943C0280008C44010034420100A3
70827 +:104270008C65003C9046001B0A00102724070001B3
70828 +:104280003C0280089043000E9042000A0043102632
70829 +:10429000304200FF03E000080002102B27BDFFE0C2
70830 +:1042A0003C028008AFB10014AFB00010AFBF0018DF
70831 +:1042B0003450008092020005240300303042003068
70832 +:1042C00014430085008088218F8200248C42000CDA
70833 +:1042D000104000828FBF00180E000D840000000007
70834 +:1042E0008F860020ACD100009202000892030009E2
70835 +:1042F000304200FF00021200306300FF004310252F
70836 +:10430000ACC200049202004D000216000002160327
70837 +:1043100004410005000000003C0308008C630048D5
70838 +:104320000A00109F3C1080089202000830420040B2
70839 +:10433000144000030000182192020027304300FFC0
70840 +:104340003C108008361100809222004D00031E00B0
70841 +:10435000304200FF0002140000621825ACC30008C0
70842 +:104360008E2400308F820024ACC4000C8E250034D3
70843 +:104370009443001E3C02C00BACC50010006218251F
70844 +:104380008E22003800002021ACC200148E22003C96
70845 +:10439000ACC200180E000DB8ACC3001C8E020004A5
70846 +:1043A0008F8400203C058000AC8200008E2200201B
70847 +:1043B000AC8200048E22001CAC8200088E220058C1
70848 +:1043C0008CA3007400431021AC82000C8E22002CC0
70849 +:1043D000AC8200108E2200408E23004400021400A4
70850 +:1043E00000431025AC8200149222004D240300806B
70851 +:1043F000304200FF1443000400000000AC800018AD
70852 +:104400000A0010E38F8200248E23000C2402000196
70853 +:104410001062000E2402FFFF92220008304200408A
70854 +:104420001440000A2402FFFF8E23000C8CA20074AB
70855 +:10443000006218233C0208000062102414400002AD
70856 +:10444000000028210060282100051043AC820018DC
70857 +:104450008F820024000020219443001E3C02C00CE7
70858 +:10446000006218258F8200200E000DB8AC43001C9E
70859 +:104470003C038008346201008C4200008F850020DC
70860 +:10448000346300808FBF0018ACA20000ACA0000411
70861 +:104490008C6400488F8200248FB10014ACA4000803
70862 +:1044A000ACA0000CACA00010906300059446001E68
70863 +:1044B0003C02400D00031E0000C23025ACA30014D6
70864 +:1044C0008FB00010ACA0001824040001ACA6001CA2
70865 +:1044D0000A000DB827BD00208FBF00188FB100144F
70866 +:1044E0008FB0001003E0000827BD00203C028000D0
70867 +:1044F0009443007C3C02800834460100308400FF75
70868 +:104500003065FFFF2402000524A34650A0C4000C20
70869 +:104510005482000C3065FFFF90C2000D2C42000752
70870 +:104520001040000724A30A0090C3000D24020014C9
70871 +:104530000062100400A210210A00111F3045FFFF85
70872 +:104540003065FFFF3C0280083442008003E0000831
70873 +:10455000A44500143C03800834680080AD05003891
70874 +:10456000346701008CE2001C308400FF00A210239D
70875 +:104570001840000330C600FF24A2FFFCACE2001C80
70876 +:1045800030820001504000083C0380088D02003C4E
70877 +:1045900000A2102304410012240400058C620004D0
70878 +:1045A00010A2000F3C0380088C62000414A2001EBD
70879 +:1045B000000000003C0208008C4200D8304200207D
70880 +:1045C000104000093C0280083462008090630008BB
70881 +:1045D0009042004C144300043C0280082404000470
70882 +:1045E0000A00110900000000344300803442010039
70883 +:1045F000A040000C24020001A462001410C0000AB4
70884 +:104600003C0280008C4401003C0380008C6201F875
70885 +:104610000440FFFE24020002AC6401C0A06201C499
70886 +:104620003C021000AC6201F803E00008000000004A
70887 +:1046300027BDFFE800A61823AFBF00101860008058
70888 +:10464000308800FF3C02800834470080A0E000244E
70889 +:1046500034440100A0E000278C82001C00A210233B
70890 +:1046600004400056000000008CE2003C94E3005C33
70891 +:104670008CE4002C004530233063FFFF00C3182179
70892 +:104680000083202B1080000400E018218CE2002C15
70893 +:104690000A00117800A2102194E2005C3042FFFF72
70894 +:1046A00000C2102100A21021AC62001C3C02800854
70895 +:1046B000344400809482005C8C83001C3042FFFFF5
70896 +:1046C0000002104000A210210043102B10400004F3
70897 +:1046D000000000008C82001C0A00118B3C06800840
70898 +:1046E0009482005C3042FFFF0002104000A21021C3
70899 +:1046F0003C06800834C3010034C70080AC82001C33
70900 +:10470000A060000CACE500388C62001C00A21023F5
70901 +:104710001840000224A2FFFCAC62001C3102000120
70902 +:10472000104000083C0380088CE2003C00A21023EB
70903 +:1047300004410012240400058CC2000410A20010E1
70904 +:104740008FBF00108C62000414A2004F8FBF0010B6
70905 +:104750003C0208008C4200D8304200201040000A81
70906 +:104760003C02800834620080906300089042004C54
70907 +:10477000144300053C028008240400048FBF00108D
70908 +:104780000A00110927BD001834430080344201009B
70909 +:10479000A040000C24020001A46200143C0280002E
70910 +:1047A0008C4401003C0380008C6201F80440FFFE51
70911 +:1047B000240200020A0011D8000000008CE2001C54
70912 +:1047C000004610230043102B54400001ACE5001CB0
70913 +:1047D00094E2005C3042FFFF0062102B144000079F
70914 +:1047E0002402000294E2005C8CE3001C3042FFFFD4
70915 +:1047F00000621821ACE3001C24020002ACE5003882
70916 +:104800000E000F5EA082000C1040001F8FBF001032
70917 +:104810003C0280008C4401003C0380008C6201F863
70918 +:104820000440FFFE24020002AC6401C0A06201C487
70919 +:104830003C021000AC6201F80A0011F08FBF0010BA
70920 +:1048400031020010104000108FBF00103C028008A1
70921 +:10485000344500808CA3001C94A2005C00661823E1
70922 +:104860003042FFFF006218213C023FFF3444FFFF4B
70923 +:104870000083102B544000010080182100C3102138
70924 +:10488000ACA2001C8FBF001003E0000827BD001879
70925 +:1048900027BDFFE800C0402100A63023AFBF0010B5
70926 +:1048A00018C00026308A00FF3C028008344900808E
70927 +:1048B0008D24001C8D23002C008820230064182BDD
70928 +:1048C0001060000F344701008CE2002000461021E8
70929 +:1048D000ACE200208CE200200044102B1440000BBE
70930 +:1048E0003C023FFF8CE2002000441023ACE2002099
70931 +:1048F0009522005C3042FFFF0A0012100082202146
70932 +:10490000ACE00020008620213C023FFF3443FFFF43
70933 +:104910000064102B54400001006020213C028008FC
70934 +:104920003442008000851821AC43001CA0400024C4
70935 +:10493000A04000270A0012623C03800831420010A8
70936 +:10494000104000433C0380083C06800834C40080CB
70937 +:104950008C82003C004810235840003E34660080A2
70938 +:104960009082002424420001A0820024908200242E
70939 +:104970003C0308008C630024304200FF0043102BEE
70940 +:10498000144000688FBF001034C201008C42001C2C
70941 +:1049900000A2102318400063000000008CC3000434
70942 +:1049A0009482005C006818233042FFFF0003184324
70943 +:1049B000000210400043102A1040000500000000D3
70944 +:1049C0008CC20004004810230A0012450002104364
70945 +:1049D0009482005C3042FFFF000210403C068008D9
70946 +:1049E000AC82002C34C5008094A2005C8CA4002C06
70947 +:1049F00094A3005C3042FFFF00021040008220219F
70948 +:104A00003063FFFF0083202101041021ACA2001CB1
70949 +:104A10008CC2000434C60100ACC2001C2402000297
70950 +:104A20000E000F5EA0C2000C1040003E8FBF0010B1
70951 +:104A30003C0280008C4401003C0380008C6201F841
70952 +:104A40000440FFFE240200020A001292000000004F
70953 +:104A500034660080ACC50038346401008C82001CD0
70954 +:104A600000A210231840000224A2FFFCAC82001C0C
70955 +:104A7000314200015040000A3C0380088CC2003CD7
70956 +:104A800000A2102304430014240400058C620004D7
70957 +:104A900014A200033C0380080A00128424040005C9
70958 +:104AA0008C62000414A2001F8FBF00103C0208009B
70959 +:104AB0008C4200D8304200201040000A3C0280089E
70960 +:104AC00034620080906300089042004C144300055B
70961 +:104AD0003C028008240400048FBF00100A00110962
70962 +:104AE00027BD00183443008034420100A040000C70
70963 +:104AF00024020001A46200143C0280008C440100E6
70964 +:104B00003C0380008C6201F80440FFFE2402000296
70965 +:104B1000AC6401C0A06201C43C021000AC6201F8A8
70966 +:104B20008FBF001003E0000827BD001827BDFFE875
70967 +:104B30003C0A8008AFBF0010354900808D22003C40
70968 +:104B400000C04021308400FF004610231840009D23
70969 +:104B500030E700FF354701002402000100A63023A2
70970 +:104B6000A0E0000CA0E0000DA522001418C0002455
70971 +:104B7000308200108D23001C8D22002C0068182329
70972 +:104B80000043102B1040000F000000008CE20020BA
70973 +:104B900000461021ACE200208CE200200043102BE4
70974 +:104BA0001440000B3C023FFF8CE200200043102326
70975 +:104BB000ACE200209522005C3042FFFF0A0012C1E7
70976 +:104BC00000621821ACE00020006618213C023FFF83
70977 +:104BD0003446FFFF00C3102B5440000100C01821D1
70978 +:104BE0003C0280083442008000651821AC43001C60
70979 +:104BF000A0400024A04000270A00130F3C038008B7
70980 +:104C0000104000403C0380088D22003C00481023E7
70981 +:104C10005840003D34670080912200242442000166
70982 +:104C2000A1220024912200243C0308008C6300246C
70983 +:104C3000304200FF0043102B1440009A8FBF001039
70984 +:104C40008CE2001C00A21023184000960000000017
70985 +:104C50008D4300049522005C006818233042FFFF5A
70986 +:104C600000031843000210400043102A10400005C2
70987 +:104C7000012020218D420004004810230A0012F276
70988 +:104C8000000210439522005C3042FFFF00021040FA
70989 +:104C90003C068008AC82002C34C5008094A2005CE5
70990 +:104CA0008CA4002C94A3005C3042FFFF0002104053
70991 +:104CB000008220213063FFFF0083182101031021AF
70992 +:104CC000ACA2001C8CC2000434C60100ACC2001CA3
70993 +:104CD000240200020E000F5EA0C2000C1040007102
70994 +:104CE0008FBF00103C0280008C4401003C03800018
70995 +:104CF0008C6201F80440FFFE240200020A0013390E
70996 +:104D00000000000034670080ACE500383466010024
70997 +:104D10008CC2001C00A210231840000224A2FFFC39
70998 +:104D2000ACC2001C30820001504000083C038008E7
70999 +:104D30008CE2003C00A2102304430051240400052F
71000 +:104D40008C62000410A2003E3C0380088C620004C8
71001 +:104D500054A200548FBF00103C0208008C4200D8BF
71002 +:104D600030420020104000063C028008346200807F
71003 +:104D7000906300089042004C104300403C028008C1
71004 +:104D80003443008034420100A040000C24020001A2
71005 +:104D9000A46200143C0280008C4401003C038000AB
71006 +:104DA0008C6201F80440FFFE24020002AC6401C0E2
71007 +:104DB000A06201C43C021000AC6201F80A00137743
71008 +:104DC0008FBF001024020005A120002714E2000A72
71009 +:104DD0003C038008354301009062000D2C42000620
71010 +:104DE000504000053C0380089062000D2442000101
71011 +:104DF000A062000D3C03800834670080ACE50038F9
71012 +:104E0000346601008CC2001C00A21023184000026E
71013 +:104E100024A2FFFCACC2001C308200015040000AFA
71014 +:104E20003C0380088CE2003C00A2102304410014E3
71015 +:104E3000240400058C62000414A200033C038008D3
71016 +:104E40000A00136E240400058C62000414A20015ED
71017 +:104E50008FBF00103C0208008C4200D83042002076
71018 +:104E60001040000A3C028008346200809063000811
71019 +:104E70009042004C144300053C02800824040004C6
71020 +:104E80008FBF00100A00110927BD001834430080AD
71021 +:104E900034420100A040000C24020001A46200146E
71022 +:104EA0008FBF001003E0000827BD00183C0B8008EE
71023 +:104EB00027BDFFE83C028000AFBF00103442010074
71024 +:104EC000356A00809044000A356901008C45001461
71025 +:104ED0008D4800389123000C308400FF0105102319
71026 +:104EE0001C4000B3306700FF2CE20006504000B1C8
71027 +:104EF0008FBF00102402000100E2300430C2000322
71028 +:104F00005440000800A8302330C2000C144000A117
71029 +:104F100030C20030144000A38FBF00100A00143BC1
71030 +:104F20000000000018C00024308200108D43001CD7
71031 +:104F30008D42002C006818230043102B1040000FF6
71032 +:104F4000000000008D22002000461021AD2200202C
71033 +:104F50008D2200200043102B1440000B3C023FFF29
71034 +:104F60008D22002000431023AD2200209542005CDA
71035 +:104F70003042FFFF0A0013AF00621821AD2000206D
71036 +:104F8000006618213C023FFF3446FFFF00C3102B90
71037 +:104F90005440000100C018213C02800834420080C7
71038 +:104FA00000651821AC43001CA0400024A04000274D
71039 +:104FB0000A0013FD3C038008104000403C038008B9
71040 +:104FC0008D42003C004810231840003D34670080AB
71041 +:104FD0009142002424420001A14200249142002475
71042 +:104FE0003C0308008C630024304200FF0043102B78
71043 +:104FF000144000708FBF00108D22001C00A21023EF
71044 +:105000001840006C000000008D6300049542005CB5
71045 +:10501000006818233042FFFF0003184300021040CD
71046 +:105020000043102A10400005014020218D62000439
71047 +:10503000004810230A0013E0000210439542005C70
71048 +:105040003042FFFF000210403C068008AC82002C7A
71049 +:1050500034C5008094A2005C8CA4002C94A3005C56
71050 +:105060003042FFFF00021040008220213063FFFF2A
71051 +:105070000083182101031021ACA2001C8CC2000483
71052 +:1050800034C60100ACC2001C240200020E000F5EF8
71053 +:10509000A0C2000C104000478FBF00103C028000EF
71054 +:1050A0008C4401003C0380008C6201F80440FFFE48
71055 +:1050B000240200020A00142D000000003467008062
71056 +:1050C000ACE50038346601008CC2001C00A210233D
71057 +:1050D0001840000224A2FFFCACC2001C3082000178
71058 +:1050E0005040000A3C0380088CE2003C00A21023E0
71059 +:1050F00004430014240400058C62000414A200037D
71060 +:105100003C0380080A00141F240400058C6200047C
71061 +:1051100014A200288FBF00103C0208008C4200D867
71062 +:10512000304200201040000A3C02800834620080B7
71063 +:10513000906300089042004C144300053C02800834
71064 +:10514000240400048FBF00100A00110927BD0018B5
71065 +:105150003443008034420100A040000C24020001CE
71066 +:10516000A46200143C0280008C4401003C038000D7
71067 +:105170008C6201F80440FFFE24020002AC6401C00E
71068 +:10518000A06201C43C021000AC6201F80A00143BAA
71069 +:105190008FBF00108FBF0010010030210A00115A8C
71070 +:1051A00027BD0018010030210A00129927BD001800
71071 +:1051B0008FBF001003E0000827BD00183C038008E3
71072 +:1051C0003464010024020003A082000C8C620004FD
71073 +:1051D00003E00008AC82001C3C05800834A300807A
71074 +:1051E0009062002734A501002406004324420001F8
71075 +:1051F000A0620027906300273C0208008C42004810
71076 +:10520000306300FF146200043C07602194A500EAAB
71077 +:105210000A00090130A5FFFF03E0000800000000BC
71078 +:1052200027BDFFE8AFBF00103C0280000E00144411
71079 +:105230008C4401803C02800834430100A060000CD3
71080 +:105240008C4200048FBF001027BD001803E0000847
71081 +:10525000AC62001C27BDFFE03C028008AFBF001815
71082 +:10526000AFB10014AFB000103445008034460100E7
71083 +:105270003C0880008D09014090C3000C8CA4003CC8
71084 +:105280008CA200381482003B306700FF9502007C3E
71085 +:1052900090A30027146000093045FFFF2402000599
71086 +:1052A00054E200083C04800890C2000D2442000132
71087 +:1052B000A0C2000D0A00147F3C048008A0C0000DAD
71088 +:1052C0003C048008348201009042000C2403000555
71089 +:1052D000304200FF1443000A24A205DC348300801E
71090 +:1052E000906200272C4200075040000524A20A00CB
71091 +:1052F00090630027240200140062100400A2102111
71092 +:105300003C108008361000803045FFFF012020212E
71093 +:105310000E001444A60500149602005C8E030038AB
71094 +:105320003C1180003042FFFF000210400062182153
71095 +:10533000AE03001C0E0003328E24014092020025B1
71096 +:1053400034420040A20200250E00033D8E2401409D
71097 +:105350008E2401403C0380008C6201F80440FFFE73
71098 +:1053600024020002AC6401C0A06201C43C0210002F
71099 +:10537000AC6201F88FBF00188FB100148FB000101D
71100 +:1053800003E0000827BD00203C0360103C02080039
71101 +:1053900024420174AC62502C8C6250003C048000AA
71102 +:1053A00034420080AC6250003C0208002442547C2D
71103 +:1053B0003C010800AC2256003C020800244254384C
71104 +:1053C0003C010800AC2256043C020002AC840008F8
71105 +:1053D000AC82000C03E000082402000100A0302190
71106 +:1053E0003C1C0800279C56083C0200023C050400B7
71107 +:1053F00000852826008220260004102B2CA5000101
71108 +:105400002C840001000210803C0308002463560035
71109 +:105410000085202500431821108000030000102182
71110 +:10542000AC6600002402000103E000080000000058
71111 +:105430003C1C0800279C56083C0200023C05040066
71112 +:1054400000852826008220260004102B2CA50001B0
71113 +:105450002C840001000210803C03080024635600E5
71114 +:105460000085202500431821108000050000102130
71115 +:105470003C02080024425438AC62000024020001BF
71116 +:1054800003E00008000000003C0200023C030400AE
71117 +:1054900000821026008318262C4200012C63000194
71118 +:1054A000004310251040000B000028213C1C080080
71119 +:1054B000279C56083C0380008C62000824050001EC
71120 +:1054C00000431025AC6200088C62000C00441025DB
71121 +:1054D000AC62000C03E0000800A010213C1C080096
71122 +:1054E000279C56083C0580008CA3000C0004202754
71123 +:1054F000240200010064182403E00008ACA3000C9F
71124 +:105500003C020002148200063C0560008CA208D018
71125 +:105510002403FFFE0043102403E00008ACA208D0DF
71126 +:105520003C02040014820005000000008CA208D098
71127 +:105530002403FFFD00431024ACA208D003E00008C0
71128 +:10554000000000003C02601A344200108C430080CE
71129 +:1055500027BDFFF88C440084AFA3000093A3000094
71130 +:10556000240200041462001AAFA4000493A20001F4
71131 +:105570001040000797A300023062FFFC3C0380004C
71132 +:10558000004310218C4200000A001536AFA200042F
71133 +:105590003062FFFC3C03800000431021AC4400005B
71134 +:1055A000A3A000003C0560008CA208D02403FFFEED
71135 +:1055B0003C04601A00431024ACA208D08FA300045E
71136 +:1055C0008FA2000034840010AC830084AC82008081
71137 +:1055D00003E0000827BD000827BDFFE8AFBF0010AB
71138 +:1055E0003C1C0800279C56083C0280008C43000CA1
71139 +:1055F0008C420004004318243C0200021060001496
71140 +:10560000006228243C0204003C04000210A00005B3
71141 +:10561000006210243C0208008C4256000A00155B10
71142 +:1056200000000000104000073C0404003C02080099
71143 +:105630008C4256040040F809000000000A00156082
71144 +:10564000000000000000000D3C1C0800279C5608CC
71145 +:105650008FBF001003E0000827BD0018800802403B
71146 +:1056600080080100800800808008000000000C8095
71147 +:105670000000320008000E9808000EF408000F88A1
71148 +:1056800008001028080010748008010080080080BD
71149 +:10569000800800000A000028000000000000000050
71150 +:1056A0000000000D6370362E322E316200000000C3
71151 +:1056B00006020104000000000000000000000000DD
71152 +:1056C000000000000000000038003C000000000066
71153 +:1056D00000000000000000000000000000000020AA
71154 +:1056E00000000000000000000000000000000000BA
71155 +:1056F00000000000000000000000000000000000AA
71156 +:10570000000000000000000021003800000000013F
71157 +:105710000000002B000000000000000400030D400A
71158 +:105720000000000000000000000000000000000079
71159 +:105730000000000000000000100000030000000056
71160 +:105740000000000D0000000D3C020800244259AC8E
71161 +:105750003C03080024635BF4AC4000000043202BB2
71162 +:105760001480FFFD244200043C1D080037BD9FFC4F
71163 +:1057700003A0F0213C100800261000A03C1C0800EB
71164 +:10578000279C59AC0E0002F6000000000000000D3E
71165 +:1057900027BDFFB4AFA10000AFA20004AFA3000873
71166 +:1057A000AFA4000CAFA50010AFA60014AFA700185F
71167 +:1057B000AFA8001CAFA90020AFAA0024AFAB0028FF
71168 +:1057C000AFAC002CAFAD0030AFAE0034AFAF00389F
71169 +:1057D000AFB8003CAFB90040AFBC0044AFBF004819
71170 +:1057E0000E000820000000008FBF00488FBC00445E
71171 +:1057F0008FB900408FB8003C8FAF00388FAE0034B7
71172 +:105800008FAD00308FAC002C8FAB00288FAA002406
71173 +:105810008FA900208FA8001C8FA700188FA6001446
71174 +:105820008FA500108FA4000C8FA300088FA2000486
71175 +:105830008FA1000027BD004C3C1B60188F7A5030B0
71176 +:10584000377B502803400008AF7A000000A01821E1
71177 +:1058500000801021008028213C0460003C0760008B
71178 +:105860002406000810600006348420788C42000072
71179 +:10587000ACE220088C63000003E00008ACE3200CDD
71180 +:105880000A000F8100000000240300403C02600079
71181 +:1058900003E00008AC4320003C0760008F86000452
71182 +:1058A0008CE520740086102100A2182B14600007DC
71183 +:1058B000000028218F8AFDA024050001A1440013C7
71184 +:1058C0008F89000401244021AF88000403E0000810
71185 +:1058D00000A010218F84FDA08F8500049086001306
71186 +:1058E00030C300FF00A31023AF82000403E00008D0
71187 +:1058F000A08000138F84FDA027BDFFE8AFB000108B
71188 +:10590000AFBF001490890011908700112402002875
71189 +:10591000312800FF3906002830E300FF2485002CE1
71190 +:105920002CD00001106200162484001C0E00006EB2
71191 +:10593000000000008F8FFDA03C05600024020204DF
71192 +:1059400095EE003E95ED003C000E5C0031ACFFFF93
71193 +:10595000016C5025ACAA2010520000012402000462
71194 +:10596000ACA22000000000000000000000000000C9
71195 +:105970008FBF00148FB0001003E0000827BD00188F
71196 +:105980000A0000A6000028218F85FDA027BDFFD8B2
71197 +:10599000AFBF0020AFB3001CAFB20018AFB100140E
71198 +:1059A000AFB000100080982190A4001124B0001C1A
71199 +:1059B00024B1002C308300FF386200280E000090D4
71200 +:1059C0002C5200010E00009800000000020020216F
71201 +:1059D0001240000202202821000028210E00006E43
71202 +:1059E000000000008F8DFDA03C0880003C05600099
71203 +:1059F00095AC003E95AB003C02683025000C4C0095
71204 +:105A0000316AFFFF012A3825ACA7201024020202C8
71205 +:105A1000ACA6201452400001240200028FBF0020D7
71206 +:105A20008FB3001C8FB200188FB100148FB000101C
71207 +:105A300027BD002803E00008ACA2200027BDFFE03E
71208 +:105A4000AFB20018AFB10014AFB00010AFBF001C70
71209 +:105A50003C1160008E2320748F82000430D0FFFF41
71210 +:105A600030F2FFFF1062000C2406008F0E00006E63
71211 +:105A7000000000003C06801F0010440034C5FF00F9
71212 +:105A80000112382524040002AE2720100000302126
71213 +:105A9000AE252014AE2420008FBF001C8FB200184A
71214 +:105AA0008FB100148FB0001000C0102103E0000877
71215 +:105AB00027BD002027BDFFE0AFB0001030D0FFFFB2
71216 +:105AC000AFBF0018AFB100140E00006E30F1FFFF41
71217 +:105AD00000102400009180253C036000AC70201071
71218 +:105AE0008FBF00188FB100148FB000102402000483
71219 +:105AF000AC62200027BD002003E000080000102158
71220 +:105B000027BDFFE03C046018AFBF0018AFB1001420
71221 +:105B1000AFB000108C8850002403FF7F34028071E6
71222 +:105B20000103382434E5380C241F00313C1980006F
71223 +:105B3000AC8550003C11800AAC8253BCAF3F0008DA
71224 +:105B40000E00054CAF9100400E00050A3C116000AC
71225 +:105B50000E00007D000000008E3008083C0F570941
71226 +:105B60002418FFF00218602435EEE00035EDF00057
71227 +:105B7000018E5026018D58262D4600012D69000109
71228 +:105B8000AF86004C0E000D09AF8900503C06601630
71229 +:105B90008CC700003C0860148D0500A03C03FFFF8B
71230 +:105BA00000E320243C02535300052FC2108200550D
71231 +:105BB00034D07C00960201F2A780006C10400003F4
71232 +:105BC000A780007C384B1E1EA78B006C960201F844
71233 +:105BD000104000048F8D0050384C1E1EA78C007C96
71234 +:105BE0008F8D005011A000058F83004C240E0020E3
71235 +:105BF000A78E007CA78E006C8F83004C1060000580
71236 +:105C00009785007C240F0020A78F007CA78F006C55
71237 +:105C10009785007C2CB8008153000001240500808A
71238 +:105C20009784006C2C91040152200001240404008C
71239 +:105C30001060000B3C0260008FBF00188FB1001491
71240 +:105C40008FB0001027BD0020A784006CA785007CC2
71241 +:105C5000A380007EA780007403E00008A780009264
71242 +:105C60008C4704382419103C30FFFFFF13F9000360
71243 +:105C700030A8FFFF1100004624030050A380007EDF
71244 +:105C80009386007E50C00024A785007CA780007CFE
71245 +:105C90009798007CA780006CA7800074A780009272
71246 +:105CA0003C010800AC3800800E00078700000000AF
71247 +:105CB0003C0F60008DED0808240EFFF03C0B600ED9
71248 +:105CC000260C0388356A00100000482100002821B6
71249 +:105CD00001AE20243C105709AF8C0010AF8A004859
71250 +:105CE000AF89001810900023AF8500148FBF0018F3
71251 +:105CF0008FB100148FB0001027BD002003E0000812
71252 +:105D0000AF80005400055080014648218D260004D4
71253 +:105D10000A00014800D180219798007CA784006C7C
71254 +:105D2000A7800074A78000923C010800AC38008076
71255 +:105D30000E000787000000003C0F60008DED080892
71256 +:105D4000240EFFF03C0B600E260C0388356A001011
71257 +:105D5000000048210000282101AE20243C105709F2
71258 +:105D6000AF8C0010AF8A0048AF8900181490FFDF95
71259 +:105D7000AF85001424110001AF9100548FBF0018AB
71260 +:105D80008FB100148FB0001003E0000827BD002081
71261 +:105D90000A00017BA383007E3083FFFF8F880040D1
71262 +:105DA0008F87003C000321403C0580003C020050EE
71263 +:105DB000008248253C0660003C0A010034AC040027
71264 +:105DC0008CCD08E001AA58241160000500000000F5
71265 +:105DD0008CCF08E024E7000101EA7025ACCE08E092
71266 +:105DE0008D19001001805821ACB900388D180014AD
71267 +:105DF000ACB8003CACA9003000000000000000007E
71268 +:105E00000000000000000000000000000000000092
71269 +:105E100000000000000000003C0380008C640000D3
71270 +:105E2000308200201040FFFD3C0F60008DED08E047
71271 +:105E30003C0E010001AE18241460FFE100000000D8
71272 +:105E4000AF87003C03E00008AF8B00588F8500400F
71273 +:105E5000240BFFF03C06800094A7001A8CA90024B4
71274 +:105E600030ECFFFF000C38C000EB5024012A402129
71275 +:105E7000ACC8003C8CA400248CC3003C00831023DD
71276 +:105E800018400033000000008CAD002025A2000166
71277 +:105E90003C0F0050ACC2003835EE00103C068000CC
71278 +:105EA000ACCE003000000000000000000000000048
71279 +:105EB00000000000000000000000000000000000E2
71280 +:105EC000000000003C0480008C9900003338002062
71281 +:105ED0001300FFFD30E20008104000173C0980006D
71282 +:105EE0008C880408ACA800108C83040CACA30014AC
71283 +:105EF0003C1900203C188000AF19003094AE001807
71284 +:105F000094AF001C01CF3021A4A6001894AD001A54
71285 +:105F100025A70001A4A7001A94AB001A94AC001E98
71286 +:105F2000118B00030000000003E0000800000000E7
71287 +:105F300003E00008A4A0001A8D2A0400ACAA0010F7
71288 +:105F40008D240404ACA400140A0002183C1900209B
71289 +:105F50008CA200200A0002003C0F00500A0001EE53
71290 +:105F60000000000027BDFFE8AFBF00100E000232A6
71291 +:105F7000000000008F8900408FBF00103C038000AC
71292 +:105F8000A520000A9528000A9527000427BD0018BF
71293 +:105F90003105FFFF30E6000F0006150000A22025A6
71294 +:105FA00003E00008AC6400803C0508008CA50020DC
71295 +:105FB0008F83000C27BDFFE8AFB00010AFBF001407
71296 +:105FC00010A300100000802124040001020430040A
71297 +:105FD00000A6202400C3102450440006261000010F
71298 +:105FE000001018802787FDA41480000A006718217C
71299 +:105FF000261000012E0900025520FFF38F83000CAC
71300 +:10600000AF85000C8FBF00148FB0001003E00008B4
71301 +:1060100027BD00188C6800003C058000ACA8002457
71302 +:106020000E000234261000013C0508008CA500205B
71303 +:106030000A0002592E0900022405000100851804F7
71304 +:106040003C0408008C84002027BDFFC8AFBF00348B
71305 +:1060500000831024AFBE0030AFB7002CAFB60028CD
71306 +:10606000AFB50024AFB40020AFB3001CAFB200182E
71307 +:10607000AFB1001410400051AFB000108F84004049
71308 +:10608000948700069488000A00E8302330D5FFFF8B
71309 +:1060900012A0004B8FBF0034948B0018948C000A20
71310 +:1060A000016C50233142FFFF02A2482B1520000251
71311 +:1060B00002A02021004020212C8F000515E00002C5
71312 +:1060C00000809821241300040E0001C102602021E9
71313 +:1060D0008F87004002609021AF80004494F4000A52
71314 +:1060E000026080211260004E3291FFFF3C1670006A
71315 +:1060F0003C1440003C1E20003C1760008F99005863
71316 +:106100008F380000031618241074004F0283F82BF8
71317 +:1061100017E0003600000000107E00478F86004424
71318 +:1061200014C0003A2403000102031023022320219B
71319 +:106130003050FFFF1600FFF13091FFFF8F870040C6
71320 +:106140003C1100203C108000AE11003094EB000A9E
71321 +:106150003C178000024B5021A4EA000A94E9000A8F
71322 +:1061600094E800043123FFFF3106000F00062D00E4
71323 +:106170000065F025AEFE008094F3000A94F6001846
71324 +:1061800012D30036001221408CFF00148CF4001052
71325 +:1061900003E468210000C02101A4782B029870213B
71326 +:1061A00001CF6021ACED0014ACEC001002B238233A
71327 +:1061B00030F5FFFF16A0FFB88F8400408FBF00347A
71328 +:1061C0008FBE00308FB7002C8FB600288FB500240B
71329 +:1061D0008FB400208FB3001C8FB200188FB1001451
71330 +:1061E0008FB0001003E0000827BD00381477FFCC03
71331 +:1061F0008F8600440E000EE202002021004018218C
71332 +:106200008F86004410C0FFC9020310230270702360
71333 +:106210008F87004001C368210A0002E431B2FFFF0A
71334 +:106220008F86004414C0FFC93C1100203C10800040
71335 +:106230000A0002AEAE1100300E00046602002021FA
71336 +:106240000A0002DB00401821020020210E0009395B
71337 +:10625000022028210A0002DB004018210E0001EE76
71338 +:10626000000000000A0002C702B2382327BDFFC8A1
71339 +:10627000AFB7002CAFB60028AFB50024AFB40020F4
71340 +:10628000AFB3001CAFB20018AFB10014AFB0001034
71341 +:10629000AFBF00300E00011B241300013C047FFF40
71342 +:1062A0003C0380083C0220003C010800AC20007048
71343 +:1062B0003496FFFF34770080345200033C1512C03F
71344 +:1062C000241400013C1080002411FF800E000245C0
71345 +:1062D000000000008F8700488F8B00188F89001402
71346 +:1062E0008CEA00EC8CE800E8014B302B01092823F4
71347 +:1062F00000A6102314400006014B18231440000E82
71348 +:106300003C05800002A3602B1180000B0000000000
71349 +:106310003C0560008CEE00EC8CED00E88CA4180CC1
71350 +:10632000AF8E001804800053AF8D00148F8F0010C3
71351 +:10633000ADF400003C0580008CBF00003BF900017B
71352 +:10634000333800011700FFE13C0380008C6201003C
71353 +:1063500024060C0010460009000000008C680100B3
71354 +:106360002D043080548000103C0480008C690100B2
71355 +:106370002D2331811060000C3C0480008CAA0100A8
71356 +:1063800011460004000020218CA6010024C5FF81D5
71357 +:1063900030A400FF8E0B01000E000269AE0B00243A
71358 +:1063A0000A00034F3C0480008C8D01002DAC3300AB
71359 +:1063B00011800022000000003C0708008CE70098D4
71360 +:1063C00024EE00013C010800AC2E00983C04800043
71361 +:1063D0008C8201001440000300000000566000148D
71362 +:1063E0003C0440008C9F01008C9801000000982123
71363 +:1063F00003F1C82400193940330F007F00EF7025E6
71364 +:1064000001D26825AC8D08308C8C01008C85010090
71365 +:10641000258B0100017130240006514030A3007F1C
71366 +:106420000143482501324025AC8808303C04400037
71367 +:10643000AE0401380A00030E000000008C99010030
71368 +:10644000240F0020AC99002092F80000330300FFD5
71369 +:10645000106F000C241F0050547FFFDD3C048000AF
71370 +:106460008C8401000E00154E000000000A00034F4E
71371 +:106470003C04800000963824ACA7180C0A000327BF
71372 +:106480008F8F00108C8501000E0008F72404008017
71373 +:106490000A00034F3C04800000A4102B24030001D9
71374 +:1064A00010400009000030210005284000A4102BF6
71375 +:1064B00004A00003000318405440FFFC00052840DE
71376 +:1064C0005060000A0004182B0085382B54E00004AB
71377 +:1064D0000003184200C33025008520230003184222
71378 +:1064E0001460FFF9000528420004182B03E000089F
71379 +:1064F00000C310213084FFFF30C600FF3C0780003E
71380 +:106500008CE201B80440FFFE00064C000124302557
71381 +:106510003C08200000C820253C031000ACE00180AE
71382 +:10652000ACE50184ACE4018803E00008ACE301B809
71383 +:106530003C0660008CC5201C2402FFF03083020062
71384 +:10654000308601001060000E00A2282434A500014E
71385 +:106550003087300010E0000530830C0034A50004C3
71386 +:106560003C04600003E00008AC85201C1060FFFDC7
71387 +:106570003C04600034A5000803E00008AC85201C42
71388 +:1065800054C0FFF334A500020A0003B03087300086
71389 +:1065900027BDFFE8AFB00010AFBF00143C0760009C
71390 +:1065A000240600021080001100A080218F83005873
71391 +:1065B0000E0003A78C6400188F8200580000202171
71392 +:1065C000240600018C45000C0E000398000000001A
71393 +:1065D0001600000224020003000010218FBF0014E7
71394 +:1065E0008FB0001003E0000827BD00188CE8201CC5
71395 +:1065F0002409FFF001092824ACE5201C8F870058EE
71396 +:106600000A0003CD8CE5000C3C02600E00804021A6
71397 +:1066100034460100240900180000000000000000BA
71398 +:10662000000000003C0A00503C0380003547020097
71399 +:10663000AC68003834640400AC65003CAC670030E2
71400 +:106640008C6C0000318B00201160FFFD2407FFFFE0
71401 +:106650002403007F8C8D00002463FFFF248400044A
71402 +:10666000ACCD00001467FFFB24C60004000000004E
71403 +:10667000000000000000000024A402000085282B78
71404 +:106680003C0300203C0E80002529FFFF010540212E
71405 +:10669000ADC300301520FFE00080282103E0000892
71406 +:1066A000000000008F82005827BDFFD8AFB3001C48
71407 +:1066B000AFBF0020AFB20018AFB10014AFB00010F0
71408 +:1066C00094460002008098218C5200182CC300814F
71409 +:1066D0008C4800048C4700088C51000C8C49001039
71410 +:1066E000106000078C4A00142CC4000414800013AE
71411 +:1066F00030EB000730C5000310A0001000000000C0
71412 +:106700002410008B02002021022028210E00039873
71413 +:10671000240600031660000224020003000010217A
71414 +:106720008FBF00208FB3001C8FB200188FB10014F0
71415 +:106730008FB0001003E0000827BD00281560FFF1AE
71416 +:106740002410008B3C0C80003C030020241F00011F
71417 +:10675000AD830030AF9F0044000000000000000047
71418 +:10676000000000002419FFF024D8000F031978243A
71419 +:106770003C1000D0AD88003801F0702524CD000316
71420 +:106780003C08600EAD87003C35850400AD8E0030BE
71421 +:10679000000D38823504003C3C0380008C6B000007
71422 +:1067A000316200201040FFFD0000000010E00008F2
71423 +:1067B00024E3FFFF2407FFFF8CA800002463FFFFF2
71424 +:1067C00024A50004AC8800001467FFFB24840004A7
71425 +:1067D0003C05600EACA60038000000000000000080
71426 +:1067E000000000008F8600543C0400203C0780001D
71427 +:1067F000ACE4003054C000060120202102402021DA
71428 +:106800000E0003A7000080210A00041D02002021C1
71429 +:106810000E0003DD01402821024020210E0003A7C5
71430 +:10682000000080210A00041D0200202127BDFFE096
71431 +:10683000AFB200183092FFFFAFB10014AFBF001C21
71432 +:10684000AFB000101640000D000088210A0004932C
71433 +:106850000220102124050003508500278CE5000C40
71434 +:106860000000000D262800013111FFFF24E2002066
71435 +:106870000232802B12000019AF8200588F82004430
71436 +:10688000144000168F8700583C0670003C0320001F
71437 +:106890008CE5000000A62024148300108F84006083
71438 +:1068A000000544023C09800000A980241480FFE90F
71439 +:1068B000310600FF2CCA000B5140FFEB26280001D7
71440 +:1068C000000668803C0E080025CE575801AE6021B6
71441 +:1068D0008D8B0000016000080000000002201021E4
71442 +:1068E0008FBF001C8FB200188FB100148FB0001042
71443 +:1068F00003E0000827BD00200E0003982404008454
71444 +:106900001600FFD88F8700580A000474AF8000601B
71445 +:10691000020028210E0003BF240400018F870058C5
71446 +:106920000A000474AF820060020028210E0003BF39
71447 +:10693000000020210A0004A38F8700580E000404E1
71448 +:10694000020020218F8700580A000474AF82006083
71449 +:1069500030AFFFFF000F19C03C0480008C9001B8DD
71450 +:106960000600FFFE3C1920043C181000AC83018097
71451 +:10697000AC800184AC990188AC9801B80A00047518
71452 +:106980002628000190E2000390E30002000020218D
71453 +:106990000002FE0000033A0000FF2825240600083C
71454 +:1069A0000E000398000000001600FFDC2402000324
71455 +:1069B0008F870058000010210A000474AF82006025
71456 +:1069C00090E8000200002021240600090A0004C308
71457 +:1069D00000082E0090E4000C240900FF308500FF21
71458 +:1069E00010A900150000302190F9000290F8000372
71459 +:1069F000308F00FF94EB000400196E000018740043
71460 +:106A0000000F62000186202501AE5025014B28258C
71461 +:106A10003084FF8B0A0004C32406000A90E30002BE
71462 +:106A200090FF0004000020210003360000DF28252D
71463 +:106A30000A0004C32406000B0A0004D52406008BB8
71464 +:106A4000000449C23127003F000443423C02800059
71465 +:106A500000082040240316802CE60020AC43002CC4
71466 +:106A600024EAFFE02482000114C0000330A900FFE3
71467 +:106A700000801021314700FF000260803C0D800043
71468 +:106A8000240A0001018D20213C0B000E00EA28049D
71469 +:106A9000008B302111200005000538278CCE000026
71470 +:106AA00001C5382503E00008ACC700008CD8000001
71471 +:106AB0000307782403E00008ACCF000027BDFFE007
71472 +:106AC000AFB10014AFB00010AFBF00183C076000BA
71473 +:106AD0008CE408083402F0003C1160003083F000C0
71474 +:106AE000240501C03C04800E000030211062000625
71475 +:106AF000241000018CEA08083149F0003928E00030
71476 +:106B00000008382B000780403C0D0200AE2D081411
71477 +:106B1000240C16803C0B80008E2744000E000F8B47
71478 +:106B2000AD6C002C120000043C02169124050001FB
71479 +:106B3000120500103C023D2C345800E0AE384408E9
71480 +:106B40003C1108008E31007C8FBF00183C066000AD
71481 +:106B500000118540360F16808FB100148FB00010E1
71482 +:106B60003C0E020027BD0020ACCF442003E000080B
71483 +:106B7000ACCE08103C0218DA345800E0AE384408B5
71484 +:106B80003C1108008E31007C8FBF00183C0660006D
71485 +:106B900000118540360F16808FB100148FB00010A1
71486 +:106BA0003C0E020027BD0020ACCF442003E00008CB
71487 +:106BB000ACCE08100A0004EB240500010A0004EB27
71488 +:106BC0000000282124020400A7820024A780001CC2
71489 +:106BD000000020213C06080024C65A582405FFFF67
71490 +:106BE00024890001000440803124FFFF01061821A0
71491 +:106BF0002C87002014E0FFFAAC6500002404040098
71492 +:106C0000A7840026A780001E000020213C06080063
71493 +:106C100024C65AD82405FFFF248D0001000460809B
71494 +:106C200031A4FFFF018658212C8A00201540FFFA6D
71495 +:106C3000AD650000A7800028A7800020A780002263
71496 +:106C4000000020213C06080024C65B582405FFFFF5
71497 +:106C5000249900010004C0803324FFFF030678213B
71498 +:106C60002C8E000415C0FFFAADE500003C05600065
71499 +:106C70008CA73D002403E08F00E31024344601403C
71500 +:106C800003E00008ACA63D002487007F000731C266
71501 +:106C900024C5FFFF000518C2246400013082FFFFF5
71502 +:106CA000000238C0A78400303C010800AC27003047
71503 +:106CB000AF80002C0000282100002021000030219E
71504 +:106CC0002489000100A728213124FFFF2CA81701E7
71505 +:106CD000110000032C8300801460FFF924C600011A
71506 +:106CE00000C02821AF86002C10C0001DA786002AF6
71507 +:106CF00024CAFFFF000A11423C08080025085B581F
71508 +:106D00001040000A00002021004030212407FFFF2E
71509 +:106D1000248E00010004688031C4FFFF01A86021B7
71510 +:106D20000086582B1560FFFAAD87000030A2001FC7
71511 +:106D30005040000800043080240300010043C804D0
71512 +:106D400000041080004878212738FFFF03E0000886
71513 +:106D5000ADF8000000C820212405FFFFAC8500002D
71514 +:106D600003E000080000000030A5FFFF30C6FFFF71
71515 +:106D700030A8001F0080602130E700FF0005294295
71516 +:106D80000000502110C0001D24090001240B000147
71517 +:106D900025180001010B2004330800FF0126782686
71518 +:106DA000390E00202DED00012DC2000101A2182591
71519 +:106DB0001060000D014450250005C880032C4021BF
71520 +:106DC0000100182110E0000F000A20278D040000A8
71521 +:106DD000008A1825AD03000024AD00010000402109
71522 +:106DE0000000502131A5FFFF252E000131C9FFFF12
71523 +:106DF00000C9102B1040FFE72518000103E0000830
71524 +:106E0000000000008D0A0000014440240A0005D162
71525 +:106E1000AC68000027BDFFE830A5FFFF30C6FFFFCC
71526 +:106E2000AFB00010AFBF001430E7FFFF00005021EB
71527 +:106E30003410FFFF0000602124AF001F00C0482174
71528 +:106E4000241800012419002005E0001601E010219B
71529 +:106E50000002F943019F682A0009702B01AE40240B
71530 +:106E600011000017000C18800064102110E00005CC
71531 +:106E70008C4B000000F840040008382301675824B8
71532 +:106E800000003821154000410000402155600016E7
71533 +:106E90003169FFFF258B0001316CFFFF05E1FFEC3D
71534 +:106EA00001E0102124A2003E0002F943019F682A5C
71535 +:106EB0000009702B01AE40241500FFEB000C188078
71536 +:106EC000154600053402FFFF020028210E0005B51B
71537 +:106ED00000003821020010218FBF00148FB0001075
71538 +:106EE00003E0000827BD00181520000301601821E9
71539 +:106EF000000B1C0224080010306A00FF154000053A
71540 +:106F0000306E000F250D000800031A0231A800FFA3
71541 +:106F1000306E000F15C00005307F000325100004FF
71542 +:106F200000031902320800FF307F000317E000055C
71543 +:106F3000386900012502000200031882304800FF72
71544 +:106F4000386900013123000110600004310300FFA3
71545 +:106F5000250A0001314800FF310300FF000C6940A1
71546 +:106F600001A34021240A000110CAFFD53110FFFF00
71547 +:106F7000246E000131C800FF1119FFC638C9000195
71548 +:106F80002D1F002053E0001C258B0001240D000163
71549 +:106F90000A000648240E002051460017258B0001E8
71550 +:106FA00025090001312800FF2D0900205120001281
71551 +:106FB000258B000125430001010D5004014B1024D5
71552 +:106FC000250900011440FFF4306AFFFF3127FFFF5D
71553 +:106FD00010EE000C2582FFFF304CFFFF0000502117
71554 +:106FE0003410FFFF312800FF2D0900205520FFF24B
71555 +:106FF00025430001258B0001014648260A000602B0
71556 +:10700000316CFFFF00003821000050210A000654B7
71557 +:107010003410FFFF27BDFFD8AFB0001030F0FFFFE6
71558 +:10702000AFB10014001039423211FFE000071080A8
71559 +:10703000AFB3001C00B1282330D3FFFFAFB200185C
71560 +:1070400030A5FFFF00809021026030210044202104
71561 +:10705000AFBF00200E0005E03207001F022288218A
71562 +:107060003403FFFF0240202102002821026030216A
71563 +:1070700000003821104300093231FFFF02201021A7
71564 +:107080008FBF00208FB3001C8FB200188FB1001487
71565 +:107090008FB0001003E0000827BD00280E0005E0B7
71566 +:1070A0000000000000408821022010218FBF002036
71567 +:1070B0008FB3001C8FB200188FB100148FB0001076
71568 +:1070C00003E0000827BD0028000424003C03600002
71569 +:1070D000AC603D0810A00002348210063482101605
71570 +:1070E00003E00008AC623D0427BDFFE0AFB0001034
71571 +:1070F000309000FF2E020006AFBF001810400008BD
71572 +:10710000AFB10014001030803C03080024635784A2
71573 +:1071100000C328218CA400000080000800000000AB
71574 +:10712000000020218FBF00188FB100148FB0001015
71575 +:107130000080102103E0000827BD00209791002A5D
71576 +:1071400016200051000020213C020800904200332C
71577 +:107150000A0006BB00000000978D002615A0003134
71578 +:10716000000020210A0006BB2402000897870024A3
71579 +:1071700014E0001A00001821006020212402000100
71580 +:107180001080FFE98FBF0018000429C2004530219C
71581 +:1071900000A6582B1160FFE43C0880003C0720004B
71582 +:1071A000000569C001A76025AD0C00203C038008E4
71583 +:1071B0002402001F2442FFFFAC6000000441FFFDD9
71584 +:1071C0002463000424A5000100A6702B15C0FFF560
71585 +:1071D000000569C00A0006A58FBF00189787001C2C
71586 +:1071E0003C04080024845A58240504000E0006605C
71587 +:1071F00024060001978B002424440001308AFFFFFD
71588 +:107200002569FFFF2D48040000402821150000409B
71589 +:10721000A789002424AC3800000C19C00A0006B964
71590 +:10722000A780001C9787001E3C04080024845AD8BD
71591 +:10723000240504000E00066024060001979900262C
71592 +:10724000244400013098FFFF272FFFFF2F0E04007A
71593 +:107250000040882115C0002CA78F0026A780001EA3
71594 +:107260003A020003262401003084FFFF0E00068D41
71595 +:107270002C4500010011F8C027F00100001021C0CA
71596 +:107280000A0006BB240200089785002E978700227B
71597 +:107290003C04080024845B580E00066024060001AC
71598 +:1072A0009787002A8F89002C2445000130A8FFFF12
71599 +:1072B00024E3FFFF0109302B0040802114C0001897
71600 +:1072C000A783002AA7800022978500300E000F7543
71601 +:1072D00002002021244A05003144FFFF0E00068DE4
71602 +:1072E000240500013C05080094A500320E000F752E
71603 +:1072F00002002021244521003C0208009042003376
71604 +:107300000A0006BB000521C00A0006F3A784001E80
71605 +:1073100024AC3800000C19C00A0006B9A784001C70
71606 +:107320000A00070DA7850022308400FF27BDFFE873
71607 +:107330002C820006AFBF0014AFB000101040001543
71608 +:1073400000A03821000440803C0308002463579CBF
71609 +:10735000010328218CA40000008000080000000028
71610 +:1073600024CC007F000751C2000C59C23170FFFFCE
71611 +:107370002547C40030E5FFFF2784001C02003021B0
71612 +:107380000E0005B52407000197860028020620217B
71613 +:10739000A78400288FBF00148FB0001003E00008FE
71614 +:1073A00027BD00183C0508008CA50030000779C2F5
71615 +:1073B0000E00038125E4DF003045FFFF3C04080098
71616 +:1073C00024845B58240600010E0005B52407000143
71617 +:1073D000978E002A8FBF00148FB0001025CD0001BA
71618 +:1073E00027BD001803E00008A78D002A0007C9C2C6
71619 +:1073F0002738FF00001878C231F0FFFF3C04080076
71620 +:1074000024845AD802002821240600010E0005B564
71621 +:1074100024070001978D0026260E0100000E84002F
71622 +:1074200025AC00013C0B6000A78C0026AD603D0838
71623 +:1074300036040006000030213C0760008CE23D0469
71624 +:10744000305F000617E0FFFD24C9000100061B00A5
71625 +:10745000312600FF006440252CC50004ACE83D0443
71626 +:1074600014A0FFF68FBF00148FB0001003E00008D7
71627 +:1074700027BD0018000751C22549C8002406000195
71628 +:10748000240700013C04080024845A580E0005B566
71629 +:107490003125FFFF978700248FBF00148FB00010A5
71630 +:1074A00024E6000127BD001803E00008A786002499
71631 +:1074B0003C0660183C090800252900FCACC9502C8A
71632 +:1074C0008CC850003C0580003C020002350700805B
71633 +:1074D000ACC750003C04080024841FE03C030800B3
71634 +:1074E00024631F98ACA50008ACA2000C3C01080066
71635 +:1074F000AC2459A43C010800AC2359A803E00008BF
71636 +:107500002402000100A030213C1C0800279C59AC3B
71637 +:107510003C0C04003C0B0002008B3826008C4026FB
71638 +:107520002CE200010007502B2D050001000A4880C5
71639 +:107530003C030800246359A4004520250123182199
71640 +:107540001080000300001021AC660000240200013E
71641 +:1075500003E00008000000003C1C0800279C59AC18
71642 +:107560003C0B04003C0A0002008A3026008B3826BF
71643 +:107570002CC200010006482B2CE5000100094080C8
71644 +:107580003C030800246359A4004520250103182169
71645 +:1075900010800005000010213C0C0800258C1F986D
71646 +:1075A000AC6C00002402000103E0000800000000B1
71647 +:1075B0003C0900023C080400008830260089382677
71648 +:1075C0002CC30001008028212CE400010083102539
71649 +:1075D0001040000B000030213C1C0800279C59ACD7
71650 +:1075E0003C0A80008D4E00082406000101CA68256F
71651 +:1075F000AD4D00088D4C000C01855825AD4B000C9D
71652 +:1076000003E0000800C010213C1C0800279C59AC76
71653 +:107610003C0580008CA6000C0004202724020001F9
71654 +:1076200000C4182403E00008ACA3000C3C020002D4
71655 +:107630001082000B3C0560003C070400108700032B
71656 +:107640000000000003E00008000000008CA908D042
71657 +:10765000240AFFFD012A402403E00008ACA808D05A
71658 +:107660008CA408D02406FFFE0086182403E000083E
71659 +:10767000ACA308D03C05601A34A600108CC300806F
71660 +:1076800027BDFFF88CC50084AFA3000093A40000C1
71661 +:107690002402001010820003AFA5000403E00008DC
71662 +:1076A00027BD000893A7000114E0001497AC000266
71663 +:1076B00097B800023C0F8000330EFFFC01CF682119
71664 +:1076C000ADA50000A3A000003C0660008CC708D058
71665 +:1076D0002408FFFE3C04601A00E82824ACC508D04A
71666 +:1076E0008FA300048FA200003499001027BD00086A
71667 +:1076F000AF22008003E00008AF2300843C0B800031
71668 +:10770000318AFFFC014B48218D2800000A00080C3B
71669 +:10771000AFA8000427BDFFE8AFBF00103C1C080065
71670 +:10772000279C59AC3C0580008CA4000C8CA2000462
71671 +:107730003C0300020044282410A0000A00A31824DF
71672 +:107740003C0604003C0400021460000900A610245A
71673 +:107750001440000F3C0404000000000D3C1C080015
71674 +:10776000279C59AC8FBF001003E0000827BD00180C
71675 +:107770003C0208008C4259A40040F80900000000B7
71676 +:107780003C1C0800279C59AC0A0008358FBF00102C
71677 +:107790003C0208008C4259A80040F8090000000093
71678 +:1077A0000A00083B000000003C0880008D0201B880
71679 +:1077B0000440FFFE35090180AD2400003C031000A9
71680 +:1077C00024040040AD250004A1240008A1260009DE
71681 +:1077D000A527000A03E00008AD0301B83084FFFFCD
71682 +:1077E0000080382130A5FFFF000020210A00084555
71683 +:1077F000240600803087FFFF8CA400002406003898
71684 +:107800000A000845000028218F8300788F860070C9
71685 +:107810001066000B008040213C07080024E75B68ED
71686 +:10782000000328C000A710218C440000246300013D
71687 +:10783000108800053063000F5466FFFA000328C06B
71688 +:1078400003E00008000010213C07080024E75B6CFF
71689 +:1078500000A7302103E000088CC200003C03900028
71690 +:1078600034620001008220253C038000AC640020CB
71691 +:107870008C65002004A0FFFE0000000003E000086B
71692 +:10788000000000003C0280003443000100832025FA
71693 +:1078900003E00008AC44002027BDFFE0AFB10014B6
71694 +:1078A0003091FFFFAFB00010AFBF001812200013DF
71695 +:1078B00000A080218CA20000240400022406020003
71696 +:1078C0001040000F004028210E0007250000000096
71697 +:1078D00000001021AE000000022038218FBF0018E8
71698 +:1078E0008FB100148FB0001000402021000028212B
71699 +:1078F000000030210A00084527BD00208CA20000AE
71700 +:10790000022038218FBF00188FB100148FB00010F3
71701 +:107910000040202100002821000030210A000845F5
71702 +:1079200027BD002000A010213087FFFF8CA5000498
71703 +:107930008C4400000A000845240600068F83FD9C45
71704 +:1079400027BDFFE8AFBF0014AFB00010906700087C
71705 +:10795000008010210080282130E600400000202116
71706 +:1079600010C000088C5000000E0000BD0200202155
71707 +:10797000020020218FBF00148FB000100A000548BC
71708 +:1079800027BD00180E0008A4000000000E0000BD76
71709 +:1079900002002021020020218FBF00148FB00010B0
71710 +:1079A0000A00054827BD001827BDFFE0AFB0001052
71711 +:1079B0008F90FD9CAFBF001CAFB20018AFB1001498
71712 +:1079C00092060001008088210E00087230D2000467
71713 +:1079D00092040005001129C2A6050000348300406E
71714 +:1079E000A20300050E00087C022020210E00054A9B
71715 +:1079F0000220202124020001AE02000C02202821D6
71716 +:107A0000A602001024040002A602001224060200AE
71717 +:107A1000A60200140E000725A60200161640000F4D
71718 +:107A20008FBF001C978C00743C0B08008D6B007896
71719 +:107A30002588FFFF3109FFFF256A0001012A382B45
71720 +:107A400010E00006A78800743C0F6006240E0016A4
71721 +:107A500035ED0010ADAE00508FBF001C8FB2001886
71722 +:107A60008FB100148FB0001003E0000827BD002084
71723 +:107A700027BDFFE0AFB10014AFBF0018AFB00010DA
71724 +:107A80001080000400A088212402008010820007DA
71725 +:107A9000000000000000000D8FBF00188FB100141F
71726 +:107AA0008FB0001003E0000827BD00200E00087210
71727 +:107AB00000A020218F86FD9C0220202190C500057A
71728 +:107AC0000E00087C30B000FF2403003E1603FFF1D7
71729 +:107AD0003C0680008CC401780480FFFE34C801405D
71730 +:107AE000240900073C071000AD11000002202021EE
71731 +:107AF000A10900048FBF00188FB100148FB00010CF
71732 +:107B0000ACC701780A0008C527BD002027BDFFE0EB
71733 +:107B1000AFB00010AFBF0018AFB100143C10800030
71734 +:107B20008E110020000000000E00054AAE04002067
71735 +:107B3000AE1100208FBF00188FB100148FB000105D
71736 +:107B400003E0000827BD00203084FFFF00803821BB
71737 +:107B50002406003500A020210A0008450000282145
71738 +:107B60003084FFFF008038212406003600A0202149
71739 +:107B70000A0008450000282127BDFFD0AFB500242A
71740 +:107B80003095FFFFAFB60028AFB40020AFBF002C88
71741 +:107B9000AFB3001CAFB20018AFB10014AFB000100B
71742 +:107BA00030B6FFFF12A000270000A0218F920058DE
71743 +:107BB0008E4300003C0680002402004000033E0289
71744 +:107BC00000032C0230E4007F006698241482001D1C
71745 +:107BD00030A500FF8F8300682C68000A1100001098
71746 +:107BE0008F8D0044000358803C0C0800258C57B84A
71747 +:107BF000016C50218D4900000120000800000000A8
71748 +:107C000002D4302130C5FFFF0E0008522404008446
71749 +:107C1000166000028F920058AF8000688F8D00447C
71750 +:107C20002659002026980001032090213314FFFFDD
71751 +:107C300015A00004AF9900580295202B1480FFDC9A
71752 +:107C400000000000028010218FBF002C8FB600289A
71753 +:107C50008FB500248FB400208FB3001C8FB20018A2
71754 +:107C60008FB100148FB0001003E0000827BD003072
71755 +:107C70002407003414A70149000000009247000EB9
71756 +:107C80008F9FFDA08F90FD9C24181600A3E700197C
71757 +:107C90009242000D3C0880003C07800CA3E20018D3
71758 +:107CA000964A00123C0D60003C117FFFA60A005C62
71759 +:107CB000964400103623FFFF240200053099FFFF91
71760 +:107CC000AE1900548E46001CAD1800288CEF000041
71761 +:107CD0008DAE444801E6482601C93021AE06003881
71762 +:107CE0008E05003824CB00013C0E7F00AE05003C21
71763 +:107CF0008E0C003CAFEC0004AE0B00208E13002075
71764 +:107D0000AE13001CA3E0001BAE03002CA3E2001284
71765 +:107D10008E4A001424130050AE0A00348E0400343E
71766 +:107D2000AFE400148E590018AE1900489258000CA8
71767 +:107D3000A218004E920D000835AF0020A20F0008D7
71768 +:107D40008E090018012E282434AC4000AE0C001817
71769 +:107D5000920B0000317200FF1253027F2403FF8058
71770 +:107D60003C04080024845BE80E0008AA0000000020
71771 +:107D70003C1108008E315BE80E00087202202021C1
71772 +:107D80002405000424080001A2050025022020216A
71773 +:107D90000E00087CA20800053C0580008CB001782C
71774 +:107DA0000600FFFE8F92005834AE0140240F0002FF
71775 +:107DB0003C091000ADD10000A1CF0004ACA90178AE
71776 +:107DC0000A000962AF8000682CAD003751A0FF9413
71777 +:107DD0008F8D0044000580803C110800263157E05B
71778 +:107DE000021178218DEE000001C0000800000000A3
71779 +:107DF0002411000414B1008C3C0780003C080800EA
71780 +:107E00008D085BE88F86FD9CACE800208E4500085D
71781 +:107E10008F99FDA0240D0050ACC500308E4C000899
71782 +:107E2000ACCC00508E4B000CACCB00348E43001019
71783 +:107E3000ACC300388E4A0010ACCA00548E42001405
71784 +:107E4000ACC2003C8E5F0018AF3F00048E50001C97
71785 +:107E5000ACD0002090C40000309800FF130D024AFF
71786 +:107E6000000000008CC400348CD00030009030231F
71787 +:107E700004C000F12404008C126000EE2402000310
71788 +:107E80000A000962AF8200682419000514B900666F
71789 +:107E90003C0580003C0808008D085BE88F86FD9C4F
71790 +:107EA000ACA800208E4C00048F8AFDA0240720007F
71791 +:107EB000ACCC001C924B000824120008A14B001906
71792 +:107EC0008F82005890430009A14300188F85005805
71793 +:107ED00090BF000A33E400FF1092001028890009C7
71794 +:107EE000152000BA240E0002240D0020108D000B76
71795 +:107EF000340780002898002117000008240740005C
71796 +:107F000024100040109000053C0700012419008057
71797 +:107F1000109900023C070002240740008CC20018A0
71798 +:107F20003C03FF00004350240147F825ACDF001854
71799 +:107F300090B2000BA0D200278F8300589464000CED
71800 +:107F4000108001FE000000009467000C3C1F8000C0
71801 +:107F50002405FFBFA4C7005C9063000E2407000443
71802 +:107F6000A0C300088F820058904A000FA0CA0009E1
71803 +:107F70008F8900588D3200108FE400740244C823AA
71804 +:107F8000ACD900588D300014ACD0002C95380018B6
71805 +:107F9000330DFFFFACCD00409531001A322FFFFFAB
71806 +:107FA000ACCF00448D2E001CACCE00489128000EB2
71807 +:107FB000A0C8000890CC000801855824126001B6C2
71808 +:107FC000A0CB00088F9200580A000962AF870068B2
71809 +:107FD0002406000614A600143C0E80003C0F080086
71810 +:107FE0008DEF5BE88F85FD98ADCF00208E4900189E
71811 +:107FF0008F86FD9C8F8BFDA0ACA900008CC800383B
71812 +:1080000024040005ACA800048CCC003C1260008164
71813 +:10801000AD6C00000A000962AF84006824110007FB
71814 +:1080200010B1004B240400063C05080024A55BE8C1
71815 +:108030000E000881240400818F9200580013102B39
71816 +:108040000A000962AF820068241F002314BFFFF6F4
71817 +:108050003C0C80003C0508008CA55BE88F8BFDA0E4
71818 +:10806000AD8500208F91FD9C8E4600042564002084
71819 +:1080700026450014AE260028240600030E000F81BA
71820 +:10808000257000308F87005802002021240600034D
71821 +:108090000E000F8124E500083C04080024845BE8FE
71822 +:1080A0000E0008AA0000000092230000240A0050DD
71823 +:1080B000306200FF544AFFE18F9200580E000F6CAF
71824 +:1080C000000000000A000A6A8F920058240800335A
71825 +:1080D00014A800323C0380003C1108008E315BE89C
71826 +:1080E0008F8FFDA0AC7100208E420008240D002867
71827 +:1080F0008F89FD9CADE200308E4A000C24060009F9
71828 +:10810000ADEA00348E5F0010ADFF00388E440014DD
71829 +:10811000ADE400208E590018ADF900248E58001CE3
71830 +:10812000ADF80028A1ED00118E4E00041260003160
71831 +:10813000AD2E00288F9200580A000962AF860068B1
71832 +:10814000240D002214ADFFB8000000002404000735
71833 +:108150003C1008008E105BE83C188000AF10002037
71834 +:108160005660FEAEAF8400683C04080024845BE8DF
71835 +:108170000E0008AA241300508F84FD9C90920000EA
71836 +:10818000325900FF1333014B000000008F9200585A
71837 +:10819000000020210A000962AF8400683C05080045
71838 +:1081A00024A55BE80E000858240400810A000A6A2E
71839 +:1081B0008F92005802D498213265FFFF0E000852BA
71840 +:1081C000240400840A0009628F920058108EFF5325
71841 +:1081D000240704002887000310E00179241100041B
71842 +:1081E000240F0001548FFF4D240740000A000A228B
71843 +:1081F000240701003C05080024A55BE80E0008A444
71844 +:10820000240400828F920058000030210A00096285
71845 +:10821000AF8600683C04080024845BE88CC2003808
71846 +:108220000E0008AA8CC3003C8F9200580A000AC0B6
71847 +:1082300000002021240400823C05080024A55BE8FE
71848 +:108240000E0008A4000000008F92005800001021CA
71849 +:108250000A000962AF8200688E5000048F91FD9C75
71850 +:108260003C078000ACF00020922C00050200282181
71851 +:10827000318B0002156001562404008A8F92FDA004
71852 +:108280002404008D9245001B30A6002014C001502C
71853 +:1082900002002821922E00092408001231C900FF93
71854 +:1082A0001128014B240400810E00087202002021D5
71855 +:1082B0009258001B240F000402002021370D0042B9
71856 +:1082C000A24D001B0E00087CA22F00253C0580005B
71857 +:1082D0008CA401780480FFFE34B90140241F000201
71858 +:1082E000AF300000A33F00048F9200583C101000F4
71859 +:1082F000ACB001780A000A6B0013102B8E500004FA
71860 +:108300008F91FD9C3C038000AC700020922A0005F8
71861 +:108310000200282131420002144000172404008A80
71862 +:10832000922C00092412000402002821318B00FF46
71863 +:1083300011720011240400810E0008720200202135
71864 +:108340008F89FDA0240800122405FFFE912F001B39
71865 +:108350000200202135EE0020A12E001BA2280009DA
71866 +:108360009226000500C538240E00087CA2270005CF
71867 +:1083700002002821000020210E0009330000000027
71868 +:108380000A000A6A8F9200588E4C00043C07800055
71869 +:108390003C10080026105BE8ACEC00203C01080013
71870 +:1083A000AC2C5BE8924B0003317100041220013BBE
71871 +:1083B0008F84FD9C24020006A0820009924F001BBE
71872 +:1083C000240EFFC031E9003F012E4025A08800089F
71873 +:1083D0009245000330A6000114C0013200000000E5
71874 +:1083E0008E420008AE0200083C0208008C425BF09E
71875 +:1083F000104001318F90FDA0000219C28F8DFD9CAD
71876 +:10840000A603000C8E4A000C24180001240400145A
71877 +:10841000AE0A002C8E420010AE02001C965F0016C1
71878 +:10842000A61F003C96590014A619003EADB8000CDA
71879 +:10843000A5B80010A5B80012A5B80014A5B800167C
71880 +:1084400012600144A2040011925100033232000272
71881 +:108450002E5300018F920058266200080A0009621C
71882 +:10846000AF8200688E4400043C1980003C068008FE
71883 +:10847000AF2400208E45000890D80000240D005045
71884 +:10848000331100FF122D009C2407008824060009E8
71885 +:108490000E000845000000000A000A6A8F9200588A
71886 +:1084A0008E5000043C0980003C118008AD30002053
71887 +:1084B0009228000024050050310400FF10850110AF
71888 +:1084C0002407008802002021000028210E00084512
71889 +:1084D0002406000E922D00002418FF80020028219F
71890 +:1084E00001B8802524040004240600300E0007256E
71891 +:1084F000A23000000A000A6A8F9200588E500004D1
71892 +:108500008F91FDA03C028000AC500020923F001BE8
71893 +:1085100033F900101320006C240700810200202191
71894 +:10852000000028212406001F0E000845000000005E
71895 +:108530000A000A6A8F9200588E44001C0E00085DE3
71896 +:1085400000000000104000E3004048218F880058E0
71897 +:1085500024070089012020218D05001C240600012C
71898 +:108560000E000845000000000A000A6A8F920058B9
71899 +:10857000964900023C10080026105BE831280004F0
71900 +:10858000110000973C0460008E4E001C3C0F8000E0
71901 +:10859000ADEE00203C010800AC2E5BE896470002DF
71902 +:1085A00030E40001148000E6000000008E42000468
71903 +:1085B000AE0200083C1008008E105BF0120000ECC8
71904 +:1085C0003C0F80008F92FD9C241000018E4E0018FD
71905 +:1085D0008F8DFDA08F9FFD9801CF4825AE490018D3
71906 +:1085E000A2400005AE50000C3C0808008D085BF06E
71907 +:1085F0008F840058A6500010000839C2A6500012FF
71908 +:10860000A6500014A6500016A5A7000C8C8C0008DC
71909 +:108610008F8B00588F8A0058ADAC002C8D63000CF6
71910 +:1086200024070002ADA3001C91460010A1A6001172
71911 +:108630008F82005890450011A3E500088F990058DB
71912 +:1086400093380012A258004E8F910058922F0013B9
71913 +:10865000A1AF00128F920058964E0014A5AE003CB8
71914 +:1086600096490016A5A9003E8E480018ADA8001432
71915 +:108670005660FD6AAF8700683C05080024A55BE8EA
71916 +:108680000E000881000020218F9200580000382140
71917 +:108690000A000962AF8700683C05080024A55BE872
71918 +:1086A0000E0008A4240400828F9200580A000A4D8C
71919 +:1086B000000038210E000F6C000000008F9200585F
71920 +:1086C0000A000AC0000020210E00087202002021CA
71921 +:1086D0009223001B02002021346A00100E00087C47
71922 +:1086E000A22A001B000038210200202100002821BE
71923 +:1086F0000A000BA52406001F9242000C305F000107
71924 +:1087000013E0000300000000964A000EA4CA002CEB
71925 +:10871000924B000C316300025060000600003821CB
71926 +:108720008E470014964C0012ACC7001CA4CC001A53
71927 +:10873000000038210A000B7F240600093C050800D0
71928 +:1087400024A55BE80E0008A42404008B8F92005837
71929 +:108750000A000A4D0013382B3C0C08008D8C5BE896
71930 +:1087600024DFFFFE25930100326B007F016790211B
71931 +:1087700002638824AD110028AE4600E0AE4000E45C
71932 +:108780000A0009B3AE5F001CACC000543C0D0800E9
71933 +:108790008DAD5BE83C18800C37090100ACED00287A
71934 +:1087A0008E510014AD3100E08E4F0014AD2F00E467
71935 +:1087B0008E4E001025C7FFFE0A0009F4AD27001CED
71936 +:1087C0005491FDD6240740000A000A222407100015
71937 +:1087D0000E00092D000000000A000A6A8F9200585E
71938 +:1087E0008C83442C3C12DEAD3651BEEF3C010800B8
71939 +:1087F000AC205BE810710062000000003C196C6264
71940 +:1088000037387970147800082404000297850074C2
71941 +:108810009782006C2404009200A2F82B13E0001948
71942 +:1088200002002821240400020E00069524050200FF
71943 +:108830003C068000ACC200203C010800AC225BE892
71944 +:108840001040000D8F8C0058240A002824040003D7
71945 +:10885000918B0010316300FF546A00012404000171
71946 +:108860000E0000810000000010400004240400837A
71947 +:108870000A000BC28F920058240400833C050800B4
71948 +:1088800024A55BE80E000881000000008F920058CC
71949 +:108890000013382B0A000962AF8700680A000B49F1
71950 +:1088A000240200128E4400080E00085D0000000043
71951 +:1088B0000A000B55AE0200083C05080024A55BE841
71952 +:1088C0000E000858240400878F9200580A000B728B
71953 +:1088D0000013102B240400040E000695240500301C
71954 +:1088E0001440002A004048218F8800582407008344
71955 +:1088F000012020218D05001C0A000BB32406000175
71956 +:108900008F8300788F8600701066FEEE000038219D
71957 +:108910003C07080024E75B6C000320C00087282187
71958 +:108920008CAE000011D0005D246F000131E3000F18
71959 +:108930005466FFFA000320C00A000B8C00003821A7
71960 +:108940008E4400040E00085D000000000A000BC801
71961 +:10895000AE0200083C05080024A55BE80E0008A450
71962 +:10896000240400828F9200580A000B72000010212C
71963 +:108970003C05080024A55BE80A000C7C2404008761
71964 +:108980008C83442C0A000C5B3C196C628F88005865
71965 +:108990003C0780083C0C8000240B0050240A000196
71966 +:1089A000AD820020A0EB0000A0EA000191030004CA
71967 +:1089B000A0E3001891040005A0E400199106000648
71968 +:1089C0003C04080024845B6CA0E6001A91020007B6
71969 +:1089D0003C06080024C65B68A0E2001B9105000865
71970 +:1089E000A0E5001C911F0009A0FF001D9119000ABD
71971 +:1089F000A0F9001E9118000BA0F8001F9112000CA6
71972 +:108A0000A0F200209111000DA0F100219110000EA4
71973 +:108A1000A0F00022910F000FA0EF0023910E001094
71974 +:108A2000A0EE0024910D0011A0ED0025950C00147E
71975 +:108A3000A4EC0028950B00168F8A00708F920078A6
71976 +:108A4000A4EB002A95030018000A10C02545000178
71977 +:108A5000A4E3002C8D1F001C0044C0210046C82147
71978 +:108A600030A5000FAF3F0000AF09000010B20006B4
71979 +:108A7000AF850070000038218D05001C01202021E9
71980 +:108A80000A000BB32406000124AD000131A7000F3A
71981 +:108A9000AF8700780A000CF9000038213C06080076
71982 +:108AA00024C65B680086902100003821ACA000003D
71983 +:108AB0000A000B8CAE4000003C0482013C036000C5
71984 +:108AC00034820E02AC603D68AF80009803E000087D
71985 +:108AD000AC623D6C27BDFFE8AFB000103090FFFFE7
71986 +:108AE000001018422C620041AFBF00141440000275
71987 +:108AF00024040080240300403C010800AC300060E6
71988 +:108B00003C010800AC2300640E000F7500602821B2
71989 +:108B1000244802BF2409FF8001092824001039805D
71990 +:108B2000001030408FBF00148FB0001000A720212C
71991 +:108B300000861821AF8300803C010800AC25005856
71992 +:108B40003C010800AC24005C03E0000827BD0018CD
71993 +:108B5000308300FF30C6FFFF30E400FF3C08800098
71994 +:108B60008D0201B80440FFFE000354000144382583
71995 +:108B70003C09600000E920253C031000AD050180A0
71996 +:108B8000AD060184AD04018803E00008AD0301B81F
71997 +:108B90008F8500583C0A6012354800108CAC0004E8
71998 +:108BA0003C0D600E35A60010318B00062D690001CA
71999 +:108BB000AD0900C48CA70004ACC731808CA20008AA
72000 +:108BC00094A40002ACC231848CA3001C0460000396
72001 +:108BD000A784009003E00008000000008CAF00189C
72002 +:108BE000ACCF31D08CAE001C03E00008ACCE31D449
72003 +:108BF0008F8500588F87FF288F86FF308CAE00044A
72004 +:108C00003C0F601235E80010ACEE00788CAD000827
72005 +:108C1000ACED007C8CAC0010ACCC004C8CAB000CF0
72006 +:108C2000ACCB004894CA00543C0208008C4200447B
72007 +:108C300025490001A4C9005494C400543083FFFFA7
72008 +:108C400010620017000000003C0208008C42004047
72009 +:108C5000A4C200528CA30018ACE300308CA2001414
72010 +:108C6000ACE2002C8CB90018ACF900388CB80014B8
72011 +:108C700024050001ACF800348D0600BC50C5001975
72012 +:108C80008D0200B48D0200B8A4E2004894E40048CC
72013 +:108C9000A4E4004A94E800EA03E000083102FFFF80
72014 +:108CA0003C0208008C420024A4C00054A4C200521C
72015 +:108CB0008CA30018ACE300308CA20014ACE2002CB2
72016 +:108CC0008CB90018ACF900388CB8001424050001E8
72017 +:108CD000ACF800348D0600BC54C5FFEB8D0200B823
72018 +:108CE0008D0200B4A4E2004894E40048A4E4004AE1
72019 +:108CF00094E800EA03E000083102FFFF8F86005885
72020 +:108D00003C0480008CC900088CC80008000929C0F8
72021 +:108D1000000839C0AC87002090C30007306200040F
72022 +:108D20001040003EAF85009490CB0007316A0008E8
72023 +:108D30001140003D8F87FF2C8CCD000C8CCE001491
72024 +:108D400001AE602B11800036000000008CC2000CC8
72025 +:108D5000ACE200708CCB00188F85FF288F88FF3025
72026 +:108D6000ACEB00748CCA00102402FFF8ACAA00D847
72027 +:108D70008CC9000CAD0900608CC4001CACA400D0F0
72028 +:108D800090E3007C0062C824A0F9007C90D8000722
72029 +:108D9000330F000811E000040000000090ED007C9B
72030 +:108DA00035AC0001A0EC007C90CF000731EE000153
72031 +:108DB00011C000060000000090E3007C241800347D
72032 +:108DC00034790002A0F9007CACB800DC90C2000746
72033 +:108DD0003046000210C000040000000090E8007C53
72034 +:108DE00035040004A0E4007C90ED007D3C0B600E97
72035 +:108DF000356A001031AC003FA0EC007D8D4931D4C4
72036 +:108E00003127000110E00002240E0001A0AE00098D
72037 +:108E100094AF00EA03E0000831E2FFFF8F87FF2CE8
72038 +:108E20000A000DAF8CC200140A000DB0ACE0007057
72039 +:108E30008F8C005827BDFFD8AFB3001CAFB200180D
72040 +:108E4000AFB00010AFBF0020AFB10014918F00157C
72041 +:108E50003C13600E3673001031EB000FA38B009CA7
72042 +:108E60008D8F00048D8B0008959F0012959900103E
72043 +:108E70009584001A9598001E958E001C33EDFFFF17
72044 +:108E8000332AFFFF3089FFFF3308FFFF31C7FFFFA1
72045 +:108E90003C010800AC2D00243C010800AC29004432
72046 +:108EA0003C010800AC2A0040AE683178AE67317CE6
72047 +:108EB00091850015959100163C12601236520010F3
72048 +:108EC00030A200FF3230FFFFAE623188AE5000B4F6
72049 +:108ED00091830014959F0018240600010066C804C1
72050 +:108EE00033F8FFFFAE5900B8AE5800BC918E0014A5
72051 +:108EF000AF8F00843C08600631CD00FFAE4D00C04E
72052 +:108F0000918A00159584000E3C07600A314900FFE4
72053 +:108F1000AF8B00883084FFFFAE4900C835110010C8
72054 +:108F20000E000D1034F004103C0208008C4200606A
72055 +:108F30003C0308008C6300643C0608008CC60058A3
72056 +:108F40003C0508008CA5005C8F8400808FBF00204A
72057 +:108F5000AE23004CAE65319CAE030054AE4500DC40
72058 +:108F6000AE6231A0AE6331A4AE663198AE22004845
72059 +:108F70008FB3001CAE0200508FB10014AE4200E06F
72060 +:108F8000AE4300E4AE4600D88FB000108FB2001898
72061 +:108F90000A00057D27BD0028978500929783007CF5
72062 +:108FA00027BDFFE8AFB0001000A3102BAFBF001427
72063 +:108FB000240400058F900058104000552409000239
72064 +:108FC0000E0006958F850080AF8200942404000374
72065 +:108FD0001040004F240900023C0680000E00008172
72066 +:108FE000ACC2002024070001240820001040004DDE
72067 +:108FF00024040005978E00928F8AFF2C24090050CC
72068 +:1090000025C50001A7850092A14900003C0D08007C
72069 +:109010008DAD0064240380008F84FF28000D66005E
72070 +:10902000AD4C0018A5400006954B000A8F85FF3017
72071 +:109030002402FF8001633024A546000A915F000AE4
72072 +:109040000000482103E2C825A159000AA0A0000899
72073 +:10905000A140004CA08000D5961800029783009094
72074 +:109060003C020004A49800EA960F00022418FFBFF7
72075 +:1090700025EE2401A48E00BE8E0D0004ACAD00448C
72076 +:109080008E0C0008ACAC0040A4A00050A4A000547A
72077 +:109090008E0B000C240C0030AC8B00288E060010C8
72078 +:1090A000AC860024A480003EA487004EA487005014
72079 +:1090B000A483003CAD420074AC8800D8ACA800602A
72080 +:1090C000A08700FC909F00D433F9007FA09900D4C2
72081 +:1090D000909000D402187824A08F00D4914E007C88
72082 +:1090E00035CD0001A14D007C938B009CAD480070F4
72083 +:1090F000AC8C00DCA08B00D68F8800888F87008422
72084 +:10910000AC8800C4AC8700C8A5400078A540007AB0
72085 +:109110008FBF00148FB000100120102103E0000861
72086 +:1091200027BD00188F8500940E0007258F860080CC
72087 +:109130000A000E9F2409000227BDFFE0AFB0001017
72088 +:109140008F900058AFB10014AFBF00188E09000413
72089 +:109150000E00054A000921C08E0800048F84FF28F4
72090 +:109160008F82FF30000839C03C068000ACC7002069
72091 +:10917000948500EA904300131460001C30B1FFFF97
72092 +:109180008F8CFF2C918B0008316A00401540000B3A
72093 +:10919000000000008E0D0004022030218FBF001857
72094 +:1091A0008FB100148FB00010240400220000382179
72095 +:1091B000000D29C00A000D2F27BD00200E000098C9
72096 +:1091C000000000008E0D0004022030218FBF001827
72097 +:1091D0008FB100148FB00010240400220000382149
72098 +:1091E000000D29C00A000D2F27BD00200E000090A1
72099 +:1091F000000000008E0D0004022030218FBF0018F7
72100 +:109200008FB100148FB00010240400220000382118
72101 +:10921000000D29C00A000D2F27BD002027BDFFE04B
72102 +:10922000AFB200183092FFFFAFB00010AFBF001C0C
72103 +:10923000AFB100141240001E000080218F8600583C
72104 +:109240008CC500002403000600053F02000514023F
72105 +:1092500030E4000714830016304500FF2CA80006F8
72106 +:1092600011000040000558803C0C0800258C58BCBB
72107 +:10927000016C50218D490000012000080000000011
72108 +:109280008F8E0098240D000111CD005024020002A1
72109 +:10929000AF820098260900013130FFFF24C800206A
72110 +:1092A0000212202B010030211480FFE5AF88005806
72111 +:1092B000020010218FBF001C8FB200188FB1001464
72112 +:1092C0008FB0001003E0000827BD00209387007EC8
72113 +:1092D00054E00034000030210E000DE700000000D3
72114 +:1092E0008F8600580A000EFF240200018F87009825
72115 +:1092F0002405000210E50031240400130000282199
72116 +:1093000000003021240700010E000D2F0000000096
72117 +:109310000A000F008F8600588F83009824020002F5
72118 +:109320001462FFF6240400120E000D9A00000000E3
72119 +:109330008F85009400403021240400120E000D2F70
72120 +:10934000000038210A000F008F8600588F83009894
72121 +:109350002411000310710029241F0002107FFFCE8A
72122 +:1093600026090001240400100000282100003021FB
72123 +:109370000A000F1D240700018F91009824060002A7
72124 +:109380001626FFF9240400100E000E410000000014
72125 +:10939000144000238F9800588F8600580A000EFF53
72126 +:1093A00024020003240400140E000D2F00002821C5
72127 +:1093B0008F8600580A000EFF240200020E000EA93C
72128 +:1093C000000000000A000F008F8600580E000D3FBD
72129 +:1093D00000000000241900022404001400002821C9
72130 +:1093E0000000302100003821AF9900980E000D2FA9
72131 +:1093F000000000000A000F008F8600580E000D5775
72132 +:10940000000000008F8500942419000200403021E4
72133 +:1094100024040010000038210A000F56AF9900986C
72134 +:109420000040382124040010970F0002000028217A
72135 +:109430000E000D2F31E6FFFF8F8600580A000F0047
72136 +:10944000AF9100988F84FF2C3C077FFF34E6FFFF2D
72137 +:109450008C8500182402000100A61824AC83001893
72138 +:1094600003E00008A08200053084FFFF30A5FFFF65
72139 +:109470001080000700001821308200011040000217
72140 +:1094800000042042006518211480FFFB00052840DD
72141 +:1094900003E000080060102110C000070000000079
72142 +:1094A0008CA2000024C6FFFF24A50004AC820000AB
72143 +:1094B00014C0FFFB2484000403E000080000000047
72144 +:1094C00010A0000824A3FFFFAC86000000000000ED
72145 +:1094D000000000002402FFFF2463FFFF1462FFFA74
72146 +:1094E0002484000403E0000800000000000411C010
72147 +:1094F00003E000082442024027BDFFE8AFB000109F
72148 +:1095000000808021AFBF00140E000F9600A0202124
72149 +:1095100000504821240AFF808FBF00148FB0001034
72150 +:10952000012A30243127007F3C08800A3C042100B6
72151 +:1095300000E8102100C428253C03800027BD001846
72152 +:10954000AC650024AF820038AC400000AC6500245C
72153 +:1095500003E00008AC4000403C0D08008DAD005811
72154 +:1095600000056180240AFF8001A45821016C482174
72155 +:10957000012A30243127007F3C08800C3C04210064
72156 +:1095800000E8102100C428253C038000AC650028B9
72157 +:10959000AF82003403E00008AC40002430A5FFFF98
72158 +:1095A0003C0680008CC201B80440FFFE3C086015F8
72159 +:1095B00000A838253C031000ACC40180ACC0018475
72160 +:1095C000ACC7018803E00008ACC301B83C0D08003B
72161 +:1095D0008DAD005800056180240AFF8001A4582148
72162 +:1095E000016C4021010A4824000931403107007F05
72163 +:1095F00000C728253C04200000A418253C02800058
72164 +:10960000AC43083003E00008AF80003427BDFFE81A
72165 +:10961000AFB0001000808021AFBF00140E000F9685
72166 +:1096200000A0202100504821240BFF80012B502452
72167 +:10963000000A39403128007F3C0620008FBF00140B
72168 +:109640008FB0001000E8282534C2000100A21825C0
72169 +:109650003C04800027BD0018AC83083003E00008FC
72170 +:10966000AF8000383C0580088CA700603C0680086D
72171 +:109670000087102B144000112C8340008CA8006040
72172 +:109680002D0340001060000F240340008CC90060CF
72173 +:109690000089282B14A00002008018218CC30060D0
72174 +:1096A00000035A42000B30803C0A0800254A59202A
72175 +:1096B00000CA202103E000088C8200001460FFF340
72176 +:1096C0002403400000035A42000B30803C0A08008B
72177 +:1096D000254A592000CA202103E000088C8200009E
72178 +:1096E0003C05800890A60008938400AB24C20001CA
72179 +:1096F000304200FF3043007F1064000C0002382726
72180 +:10970000A0A200083C0480008C85017804A0FFFE24
72181 +:109710008F8A00A0240900023C081000AC8A014096
72182 +:10972000A089014403E00008AC8801780A00101BFE
72183 +:1097300030E2008027BDFFD8AFB200188F9200A49E
72184 +:10974000AFBF0020AFB3001CAFB00010AFB100142A
72185 +:109750008F9300348E5900283C1000803C0EFFEFA0
72186 +:10976000AE7900008E580024A260000A35CDFFFFBC
72187 +:10977000AE7800049251002C3C0BFF9F356AFFFF2E
72188 +:10978000A271000C8E6F000C3C080040A271000B0F
72189 +:1097900001F06025018D4824012A382400E8302595
72190 +:1097A000AE66000C8E450004AE6000183C0400FF5D
72191 +:1097B000AE6500148E43002C3482FFFFA6600008C3
72192 +:1097C0000062F824AE7F00108E5900088F9000A030
72193 +:1097D000964E0012AE7900208E51000C31D83FFF1A
72194 +:1097E00000187980AE7100248E4D001401F06021C4
72195 +:1097F00031CB0001AE6D00288E4A0018000C41C22A
72196 +:10980000000B4B80AE6A002C8E46001C01093821EB
72197 +:10981000A667001CAE660030964500028E4400200C
72198 +:10982000A665001EAE64003492430033306200042B
72199 +:1098300054400006924700003C0280083443010077
72200 +:109840008C7F00D0AE7F0030924700008F860038BA
72201 +:10985000A0C700309245003330A4000250800007BA
72202 +:10986000925100018F880038240BFF80910A00304C
72203 +:10987000014B4825A1090030925100018F9000381A
72204 +:10988000240CFFBF2404FFDFA21100318F8D0038AC
72205 +:109890003C1880083711008091AF003C31EE007F0A
72206 +:1098A000A1AE003C8F890038912B003C016C502404
72207 +:1098B000A12A003C8F9F00388E68001493E6003C7C
72208 +:1098C0002D0700010007114000C4282400A218251C
72209 +:1098D000A3E3003C8F87003896590012A4F90032A8
72210 +:1098E0008E450004922E007C30B0000300107823D7
72211 +:1098F00031ED000300AD102131CC000215800002D3
72212 +:1099000024460034244600303C0280083443008062
72213 +:10991000907F007C00BFC824333800041700000289
72214 +:1099200024C2000400C010218F98003824190002BE
72215 +:10993000ACE20034A3190000924F003F8F8E003834
72216 +:109940003C0C8008358B0080A1CF00018F9100383E
72217 +:10995000924D003F8E440004A62D0002956A005CE3
72218 +:109960000E000FF43150FFFF00024B800209382532
72219 +:109970003C08420000E82825AE2500048E4400384B
72220 +:109980008F850038ACA400188E460034ACA6001CAD
72221 +:10999000ACA0000CACA00010A4A00014A4A0001661
72222 +:1099A000A4A00020A4A00022ACA000248E62001479
72223 +:1099B00050400001240200018FBF00208FB3001C23
72224 +:1099C0008FB200188FB100148FB00010ACA2000845
72225 +:1099D0000A00101327BD002827BDFFC83C058008DA
72226 +:1099E00034A40080AFBF0034AFBE0030AFB7002C4E
72227 +:1099F000AFB60028AFB50024AFB40020AFB3001C51
72228 +:109A0000AFB20018AFB10014AFB00010948300786B
72229 +:109A10009482007A104300512405FFFF0080F0215A
72230 +:109A20000A0011230080B821108B004D8FBF003435
72231 +:109A30008F8600A03C1808008F18005C2411FF805E
72232 +:109A40003C1680000306782101F18024AED0002C62
72233 +:109A500096EE007A31EC007F3C0D800E31CB7FFF1B
72234 +:109A6000018D5021000B4840012AA82196A4000036
72235 +:109A70003C0808008D0800582405FF8030953FFF02
72236 +:109A800001061821001539800067C8210325F82434
72237 +:109A90003C02010003E290253338007F3C11800C2A
72238 +:109AA000AED20028031190219250000D320F000415
72239 +:109AB00011E0003702E0982196E3007A96E8007AF8
72240 +:109AC00096E5007A2404800031077FFF24E300013B
72241 +:109AD00030627FFF00A4F82403E2C825A6F9007ACB
72242 +:109AE00096E6007A3C1408008E94006030D67FFF22
72243 +:109AF00012D400C1000000008E5800188F8400A00E
72244 +:109B000002A028212713FFFF0E000FCEAE53002C1A
72245 +:109B100097D5007897D4007A12950010000028217C
72246 +:109B20003C098008352401003C0A8008914800085F
72247 +:109B3000908700D53114007F30E400FF0284302B81
72248 +:109B400014C0FFB9268B0001938E00AB268C000158
72249 +:109B5000008E682115ACFFB78F8600A08FBF003440
72250 +:109B60008FBE00308FB7002C8FB600288FB5002431
72251 +:109B70008FB400208FB3001C8FB200188FB1001477
72252 +:109B80008FB0001000A0102103E0000827BD0038AE
72253 +:109B900000C020210E000F99028028218E4B00105A
72254 +:109BA0008E4C00308F84003824090002016C502351
72255 +:109BB000AE4A0010A089000096E3005C8E4400309D
72256 +:109BC0008F9100380E000FF43070FFFF00024380C9
72257 +:109BD000020838253C02420000E22825AE25000498
72258 +:109BE0008E5F00048F8A00388E590000240B000815
72259 +:109BF000AD5F001CAD590018AD40000CAD40001029
72260 +:109C00009246000A240400052408C00030D000FF5A
72261 +:109C1000A550001496580008A55800169251000A45
72262 +:109C20003C188008322F00FFA54F0020964E0008F8
72263 +:109C300037110100A54E0022AD400024924D000BCB
72264 +:109C400031AC00FFA54C0002A14B00018E49003051
72265 +:109C50008F830038240BFFBFAC690008A06400307C
72266 +:109C60008F9000382403FFDF9607003200E8282495
72267 +:109C700000B51025A6020032921F003233F9003FD2
72268 +:109C800037260040A20600328F8C0038AD800034A9
72269 +:109C90008E2F00D0AD8F0038918E003C3C0F7FFF9F
72270 +:109CA00031CD007FA18D003C8F84003835EEFFFF61
72271 +:109CB000908A003C014B4824A089003C8F850038E5
72272 +:109CC00090A8003C01033824A0A7003C8E42003439
72273 +:109CD0008F9100383C038008AE2200408E59002C42
72274 +:109CE0008E5F0030033F3023AE26004492300048A0
72275 +:109CF0003218007FA23800488F8800388E4D00301F
72276 +:109D00008D0C004801AE582401965024014B482583
72277 +:109D1000AD0900489244000AA104004C964700088F
72278 +:109D20008F850038A4A7004E8E5000308E4400303E
72279 +:109D30000E0003818C65006092F9007C0002F940FE
72280 +:109D4000004028210002110003E2302133360002D6
72281 +:109D500012C00003020680210005B0800216802197
72282 +:109D6000926D007C31B30004126000020005708027
72283 +:109D7000020E80218E4B00308F8800382405800031
72284 +:109D8000316A0003000A4823312400030204182129
72285 +:109D9000AD03003496E4007A96F0007A96F1007AEA
72286 +:109DA00032027FFF2447000130FF7FFF0225C824D5
72287 +:109DB000033F3025A6E6007A96F8007A3C120800A8
72288 +:109DC0008E520060330F7FFF11F200180000000078
72289 +:109DD0008F8400A00E000FCE02A028218F8400A047
72290 +:109DE0000E000FDE028028210E001013000000007C
72291 +:109DF0000A00111F0000000096F1007A022480245E
72292 +:109E0000A6F0007A92EF007A92EB007A31EE00FF32
72293 +:109E1000000E69C2000D6027000C51C03169007F3F
72294 +:109E2000012A20250A001119A2E4007A96E6007A98
72295 +:109E300000C5C024A6F8007A92EF007A92F3007A67
72296 +:109E400031F200FF001271C2000E6827000DB1C090
72297 +:109E5000326C007F01962825A2E5007A0A0011D015
72298 +:109E60008F8400A03C0380003084FFFF30A5FFFFFB
72299 +:109E7000AC640018AC65001C03E000088C620014A0
72300 +:109E800027BDFFA03C068008AFBF005CAFBE0058F6
72301 +:109E9000AFB70054AFB60050AFB5004CAFB40048F8
72302 +:109EA000AFB30044AFB20040AFB1003CAFB0003838
72303 +:109EB00034C80100910500D590C700083084FFFF29
72304 +:109EC00030A500FF30E2007F0045182AAFA4001043
72305 +:109ED000A7A00018A7A0002610600055AFA000148E
72306 +:109EE00090CA00083149007F00A9302324D3FFFF26
72307 +:109EF0000013802B8FB400100014902B02128824C2
72308 +:109F0000522000888FB300143C03800894790052DB
72309 +:109F1000947E00508FB60010033EC0230018BC0092
72310 +:109F2000001714030016FC0002C2A82A16A00002A3
72311 +:109F3000001F2C030040282100133C0000072403CD
72312 +:109F400000A4102A5440000100A020212885000907
72313 +:109F500014A000020080A021241400083C0C8008FA
72314 +:109F60008D860048001459808D88004C3C03800089
72315 +:109F70003169FFFF3C0A0010012A202534710400DA
72316 +:109F8000AC660038AF9100A4AC68003CAC64003013
72317 +:109F900000000000000000000000000000000000C1
72318 +:109FA00000000000000000000000000000000000B1
72319 +:109FB0008C6E000031CD002011A0FFFD0014782A26
72320 +:109FC00001F01024104000390000A8213C16800840
72321 +:109FD00092D700083C1280008E44010032F6007FC8
72322 +:109FE0000E000F9902C028218E3900108E44010006
72323 +:109FF0000000902133373FFF0E000FB102E028210F
72324 +:10A00000923800003302003F2C500008520000102C
72325 +:10A0100000008821000210803C030800246358E4FB
72326 +:10A020000043F8218FFE000003C00008000000007C
72327 +:10A0300090CF0008938C00AB31EE007F00AE682318
72328 +:10A04000018D58210A0012172573FFFF0000882197
72329 +:10A050003C1E80008FC401000E000FCE02E02821BC
72330 +:10A060008FC401000E000FDE02C028211220000F55
72331 +:10A070000013802B8F8B00A426A400010004AC00E9
72332 +:10A08000027298230015AC032578004002B4B02A70
72333 +:10A090000013802B241700010300882102D0102414
72334 +:10A0A000AF9800A41440FFC9AFB700143C07800864
72335 +:10A0B00094E200508FAE00103C05800002A288217F
72336 +:10A0C0003C060020A4F10050ACA6003094F40050EF
72337 +:10A0D00094EF005201D51823306CFFFF11F4001EDD
72338 +:10A0E000AFAC00108CEF004C001561808CF500487F
72339 +:10A0F00001EC28210000202100AC582B02A4C02133
72340 +:10A10000030BB021ACE5004CACF600488FB4001056
72341 +:10A110000014902B021288241620FF7C3C03800838
72342 +:10A120008FB300148FBF005C8FBE00583A620001ED
72343 +:10A130008FB700548FB600508FB5004C8FB40048D5
72344 +:10A140008FB300448FB200408FB1003C8FB0003815
72345 +:10A1500003E0000827BD006094FE00548CF2004428
72346 +:10A1600033C9FFFE0009C8C00259F821ACBF003C4A
72347 +:10A170008CE800448CAD003C010D50231940003B9D
72348 +:10A18000000000008CF7004026E20001ACA200387D
72349 +:10A190003C05005034A700103C038000AC67003041
72350 +:10A1A00000000000000000000000000000000000AF
72351 +:10A1B000000000000000000000000000000000009F
72352 +:10A1C0008C7800003316002012C0FFFD3C1180087F
72353 +:10A1D000962200543C1580003C068008304E000159
72354 +:10A1E000000E18C0007578218DEC04003C070800B3
72355 +:10A1F0008CE700443C040020ACCC00488DF40404FF
72356 +:10A20000240B0001ACD4004C10EB0260AEA4003073
72357 +:10A21000963900523C0508008CA5004000B99021F9
72358 +:10A22000A6320052963F005427ED0001A62D00549F
72359 +:10A230009626005430C4FFFF5487FF2F8FB40010C0
72360 +:10A2400030A5FFFF0E0011F4A62000543C070800C3
72361 +:10A250008CE70024963E00520047B82303D74823DA
72362 +:10A26000A62900520A0012198FB400108CE2004097
72363 +:10A270000A0012BE00000000922400012407000121
72364 +:10A280003085007F14A7001C97AD00268E2B00148C
72365 +:10A29000240CC000316A3FFF01AC48243C06080092
72366 +:10A2A0008CC60060012A402531043FFF0086882BC0
72367 +:10A2B00012200011A7A800263C0508008CA5005814
72368 +:10A2C0008F9100A0000439802402FF8000B1182182
72369 +:10A2D0000067F82103E2F02433F8007F3C1280008D
72370 +:10A2E0003C19800EAE5E002C0319702191D0000D38
72371 +:10A2F000360F0004A1CF000D0E001028241200011B
72372 +:10A30000241100013C1E80008FC401000E000FCEFE
72373 +:10A3100002E028218FC401000E000FDE02C02821B8
72374 +:10A320001620FF558F8B00A40A0012860013802B85
72375 +:10A330008F8600A490C80001310400201080019194
72376 +:10A34000241000013C048008348B0080916A007C5A
72377 +:10A350008F9E0034AFA0002C314900011120000F66
72378 +:10A36000AFB000288CCD00148C8E006001AE602B45
72379 +:10A370001580000201A038218C8700603C188008FD
72380 +:10A38000370300808C70007000F0782B15E000021D
72381 +:10A3900000E020218C640070AFA4002C3C028008F7
72382 +:10A3A000344500808CD200148CBF0070025FC82B33
72383 +:10A3B00017200002024020218CA400708FA7002CDF
72384 +:10A3C0000087182310600003AFA3003024050002AB
72385 +:10A3D000AFA500288FA400280264882B162000BA9D
72386 +:10A3E000000018218CD000388FCE000C3C0F00806C
72387 +:10A3F000AFD000008CCD00343C0CFF9F01CF58251E
72388 +:10A40000AFCD000490CA003F3586FFFF01662024CF
72389 +:10A410003C0900203C08FFEFA3CA000B0089382547
72390 +:10A420003511FFFF00F118243C0500088F8700A4B8
72391 +:10A430000065C825AFD9000C8CE20014AFC000182D
72392 +:10A440008FA60030AFC200148CF800188FB0002C1B
72393 +:10A450003C1FFFFBAFD8001C8CEF000837F2FFFF5A
72394 +:10A4600003326824AFCF00248CEC000C020670216C
72395 +:10A47000AFCD000CA7C00038A7C0003AAFCE002C6B
72396 +:10A48000AFCC0020AFC000288CEA00148FAB002CAA
72397 +:10A49000014B48230126402311000011AFC80010D2
72398 +:10A4A00090EB003D8FC900048FC80000000B5100E5
72399 +:10A4B000012A28210000102100AA882B010218215E
72400 +:10A4C0000071F821AFC50004AFDF000090F2003D3D
72401 +:10A4D000A3D2000A8F9900A497380006A7D80008D5
72402 +:10A4E0008F910038240800023C038008A228000055
72403 +:10A4F0003465008094BF005C8FA4002C33F0FFFF14
72404 +:10A500000E000FF48F9200380002CB808F8500A4DC
72405 +:10A51000021978253C18420001F87025AE4E00045F
72406 +:10A520008F8400388CAD0038AC8D00188CAC0034B2
72407 +:10A53000AC8C001CAC80000CAC800010A48000141B
72408 +:10A54000A4800016A4800020A4800022AC800024F7
72409 +:10A5500090A6003F8FA7002CA486000250E0019235
72410 +:10A56000240700018FA200305040000290A2003D5D
72411 +:10A5700090A2003E244A0001A08A00018F84003886
72412 +:10A580008FA9002CAC8900083C128008364D008051
72413 +:10A5900091AC007C3186000214C000022407003414
72414 +:10A5A000240700308F8500A43C198008373F0080C5
72415 +:10A5B00090B0000093F9007C240E0004A0900030BD
72416 +:10A5C0008F8F00A48FB8002C8F8D003891F200017E
72417 +:10A5D0003304000301C46023A1B200318F8E003820
72418 +:10A5E0008F8600A42402C00095CA003294C90012CC
72419 +:10A5F0008FAB002C0142402431233FFF010388250B
72420 +:10A60000A5D1003291D000323185000300EBF82152
72421 +:10A610003218003F370F0040A1CF00328FA4002C2A
72422 +:10A6200003E5382133280004108000028F850038AC
72423 +:10A6300000E838213C0A8008ACA700343549010005
72424 +:10A640008D2800D08FA3002C2419FFBFACA80038A0
72425 +:10A6500090B1003C2C640001240FFFDF3227007F03
72426 +:10A66000A0A7003C8F98003800049140931F003C45
72427 +:10A6700003F98024A310003C8F8C0038918E003C9D
72428 +:10A6800001CF682401B23025A186003C8F8900A447
72429 +:10A690008F8800388D2B0020AD0B00408D220024C8
72430 +:10A6A000AD0200448D2A0028AD0A00488D23002CFD
72431 +:10A6B0000E001013AD03004C8FB1002824070002D8
72432 +:10A6C000122700118FA300280003282B00058023E8
72433 +:10A6D0000270982400608021006090210A00126FAF
72434 +:10A6E0000010882B962900128F8400A00000902172
72435 +:10A6F0003125FFFFA7A900180E000FC22411000189
72436 +:10A700000A00131D3C1E80003C0B80003C12800898
72437 +:10A710008D640100924900088F92FF340E000F995A
72438 +:10A720003125007F8F9900388FA700288FA4003033
72439 +:10A73000A3270000965F005C33F0FFFF0E000FF4CC
72440 +:10A740008F91003800026B80020D80253C0842008A
72441 +:10A750008F8D00A402085025AE2A00048DA5003874
72442 +:10A760008F8A003800007821000F1100AD450018D5
72443 +:10A770008DB800343C047FFF3488FFFFAD58001CC7
72444 +:10A7800091A6003E8D4C001C8D4900180006190052
72445 +:10A79000000677020183C821004E58250323882B29
72446 +:10A7A000012B382100F1F821AD59001CAD5F0018D4
72447 +:10A7B000AD40000CAD40001091B0003E8FA40030C1
72448 +:10A7C00024090005A550001495A500042419C00013
72449 +:10A7D00000884024A545001691B8003EA5580020E9
72450 +:10A7E00095AF0004A54F0022AD40002491AE003F7C
72451 +:10A7F000A54E000291A6003E91AC003D01861023BB
72452 +:10A80000244B0001A14B00018F9100388FA3003031
72453 +:10A810003C028008344B0100AE230008A22900301E
72454 +:10A820008F8C00388F8700A4959F003294F000121F
72455 +:10A830002407FFBF033FC02432053FFF03057825EF
72456 +:10A84000A58F0032918E00322418FFDF31CD003FFA
72457 +:10A8500035A60040A18600328F910038240DFFFFFD
72458 +:10A86000240CFF80AE2000348D6A00D0AE2A003860
72459 +:10A870009223003C3069007FA229003C8F90003871
72460 +:10A880003C0380009219003C0327F824A21F003CDF
72461 +:10A890008F8E003891C5003C00B87824A1CF003CD1
72462 +:10A8A0008F8A00383C0E8008AD4D00408FA6002CEA
72463 +:10A8B000AD46004491420048004C5825A14B004849
72464 +:10A8C0008F9000388F9900A48E09004801238824B6
72465 +:10A8D00002283825AE070048933F003EA21F004CD7
72466 +:10A8E0008F9800A48F8F003897050004A5E5004ECF
72467 +:10A8F0000E0003818DC500609246007C8FAC003055
72468 +:10A9000000026940000291000040282130CB000283
72469 +:10A9100001B21021156000AA018230213C0E80088E
72470 +:10A9200035C20080904C007C31830004106000032D
72471 +:10A930008FB900300005788000CF3021241F00043B
72472 +:10A940008F910038332D000303ED8023320800037C
72473 +:10A9500000C85021AE2A00343C188000A7C500383A
72474 +:10A960003C0680088F04010090DE00080E000FDE18
72475 +:10A9700033C5007F0E001013000000000A00140D04
72476 +:10A980008FA300288F9800348CC90038241F00033F
72477 +:10A99000A7000008AF0900008CC50034A300000A1E
72478 +:10A9A0008F9900A4AF0500043C080080932D003F60
72479 +:10A9B000A31F000C8F0A000C3C02FF9FA30D000B8D
72480 +:10A9C0000148F0253451FFFF3C12FFEF8F9900A49E
72481 +:10A9D00003D170243646FFFF01C61824AF03000CD4
72482 +:10A9E0008F2C0014972900128F8400A0AF0C001048
72483 +:10A9F0008F2F0014AF000018AF000020AF0F00141D
72484 +:10AA0000AF0000248F270018312F3FFF000F59801F
72485 +:10AA1000AF0700288F2500080164F821312D0001BF
72486 +:10AA2000AF0500308F31000C8F920038001F51C2EB
72487 +:10AA3000000D438001481021241E00023C068008BE
72488 +:10AA4000A702001CA7000034AF11002CA25E00007A
72489 +:10AA500034D20080964E005C8F9900383C0342004F
72490 +:10AA600031CCFFFF01833825AF2700048F8B00A472
72491 +:10AA7000240500012402C0008D640038240700343E
72492 +:10AA8000AF2400188D690034AF29001CAF20000CE2
72493 +:10AA9000AF200010A7200014A7200016A720002038
72494 +:10AAA000A7200022AF200024A7300002A325000128
72495 +:10AAB0008F8800388F9F00A4AD10000893ED000030
72496 +:10AAC000A10D00308F8A00A48F98003891510001A9
72497 +:10AAD000A31100318F8B0038957E003203C27024A1
72498 +:10AAE00001CF6025A56C0032916300323064003FD5
72499 +:10AAF000A16400329249007C3125000214A00002BA
72500 +:10AB00008F840038240700303C198008AC8700345B
72501 +:10AB1000373201008E5F00D0240AFFBF020090216F
72502 +:10AB2000AC9F0038908D003C31A8007FA088003C8D
72503 +:10AB30008F9E003893C2003C004A8824A3D1003C79
72504 +:10AB40008F8300380010882B9066003C34CE0020A4
72505 +:10AB5000A06E003C8F8400A48F9800388C8C00205D
72506 +:10AB6000AF0C00408C8F0024AF0F00448C8700286E
72507 +:10AB7000AF0700488C8B002CAF0B004C0E0010135D
72508 +:10AB80003C1E80000A0012700000000094C80052B1
72509 +:10AB90003C0A08008D4A002401488821A4D10052B3
72510 +:10ABA0000A0012198FB40010A08700018F840038AA
72511 +:10ABB000240B0001AC8B00080A0013BE3C12800875
72512 +:10ABC000000520800A0014A200C4302127BDFFE048
72513 +:10ABD0003C0D8008AFB20018AFB00010AFBF001C32
72514 +:10ABE000AFB1001435B200808E4C001835A80100BA
72515 +:10ABF000964B000695A70050910900FC000C5602E8
72516 +:10AC0000016728233143007F312600FF240200031F
72517 +:10AC1000AF8300A8AF8400A010C2001B30B0FFFFBC
72518 +:10AC2000910600FC2412000530C200FF10520033D0
72519 +:10AC300000000000160000098FBF001C8FB2001832
72520 +:10AC40008FB100148FB00010240D0C003C0C80005C
72521 +:10AC500027BD002003E00008AD8D00240E0011FB8D
72522 +:10AC6000020020218FBF001C8FB200188FB100148A
72523 +:10AC70008FB00010240D0C003C0C800027BD00207C
72524 +:10AC800003E00008AD8D0024965800789651007AB4
72525 +:10AC9000924E007D0238782631E8FFFF31C400C0B3
72526 +:10ACA000148000092D11000116000037000000007B
72527 +:10ACB0005620FFE28FBF001C0E0010D100000000E4
72528 +:10ACC0000A00156A8FBF001C1620FFDA0000000082
72529 +:10ACD0000E0010D1000000001440FFD88FBF001CF0
72530 +:10ACE0001600002200000000925F007D33E2003F6A
72531 +:10ACF000A242007D0A00156A8FBF001C950900EA78
72532 +:10AD00008F86008000802821240400050E0007257E
72533 +:10AD10003130FFFF978300923C0480002465FFFFE1
72534 +:10AD2000A78500928C8A01B80540FFFE0000000054
72535 +:10AD3000AC8001808FBF001CAC9001848FB20018E2
72536 +:10AD40008FB100148FB000103C0760133C0B100053
72537 +:10AD5000240D0C003C0C800027BD0020AC8701882E
72538 +:10AD6000AC8B01B803E00008AD8D00240E0011FB90
72539 +:10AD7000020020215040FFB18FBF001C925F007D78
72540 +:10AD80000A00159733E2003F0E0011FB020020215C
72541 +:10AD90001440FFAA8FBF001C122000070000000013
72542 +:10ADA0009259007D3330003F36020040A242007DC0
72543 +:10ADB0000A00156A8FBF001C0E0010D100000000B1
72544 +:10ADC0005040FF9E8FBF001C9259007D3330003FE2
72545 +:10ADD0000A0015C636020040000000000000001BFB
72546 +:10ADE0000000000F0000000A00000008000000063C
72547 +:10ADF0000000000500000005000000040000000441
72548 +:10AE00000000000300000003000000030000000336
72549 +:10AE10000000000300000002000000020000000229
72550 +:10AE2000000000020000000200000002000000021A
72551 +:10AE3000000000020000000200000002000000020A
72552 +:10AE400000000002000000020000000200000002FA
72553 +:10AE50000000000100000001000000018008010066
72554 +:10AE6000800800808008000000000C000000308096
72555 +:10AE7000080011D00800127C08001294080012A8E3
72556 +:10AE8000080012BC080011D0080011D0080012F010
72557 +:10AE90000800132C080013400800138808001A8CBF
72558 +:10AEA00008001A8C08001AC408001AC408001AD82E
72559 +:10AEB00008001AA808001D0008001CCC08001D5836
72560 +:10AEC00008001D5808001DE008001D108008024001
72561 +:10AED000080027340800256C0800275C080027F4C8
72562 +:10AEE0000800293C0800298808002AAC080029B479
72563 +:10AEF00008002A38080025DC08002EDC08002EA4F3
72564 +:10AF000008002588080025880800258808002B20CF
72565 +:10AF100008002B20080025880800258808002DD06F
72566 +:10AF2000080025880800258808002588080025884D
72567 +:10AF300008002E0C080025880800258808002588B0
72568 +:10AF4000080025880800258808002588080025882D
72569 +:10AF5000080025880800258808002588080025881D
72570 +:10AF6000080025880800258808002588080029A8E9
72571 +:10AF7000080025880800258808002E680800258814
72572 +:10AF800008002588080025880800258808002588ED
72573 +:10AF900008002588080025880800258808002588DD
72574 +:10AFA00008002588080025880800258808002588CD
72575 +:10AFB00008002588080025880800258808002588BD
72576 +:10AFC00008002CF4080025880800258808002C6853
72577 +:10AFD00008002BC408003CE408003CB808003C848E
72578 +:10AFE00008003C5808003C3808003BEC8008010091
72579 +:10AFF00080080080800800008008008008004C6401
72580 +:10B0000008004C9C08004BE408004C6408004C64A9
72581 +:10B01000080049B808004C64080050500A000C842D
72582 +:10B0200000000000000000000000000D7278703683
72583 +:10B030002E322E31620000000602010300000000E3
72584 +:10B0400000000001000000000000000000000000FF
72585 +:10B0500000000000000000000000000000000000F0
72586 +:10B0600000000000000000000000000000000000E0
72587 +:10B0700000000000000000000000000000000000D0
72588 +:10B0800000000000000000000000000000000000C0
72589 +:10B0900000000000000000000000000000000000B0
72590 +:10B0A00000000000000000000000000000000000A0
72591 +:10B0B0000000000000000000000000000000000090
72592 +:10B0C0000000000000000000000000000000000080
72593 +:10B0D0000000000000000000000000000000000070
72594 +:10B0E0000000000000000000000000000000000060
72595 +:10B0F0000000000000000000000000000000000050
72596 +:10B10000000000000000000000000000000000003F
72597 +:10B11000000000000000000000000000000000002F
72598 +:10B12000000000000000000000000000000000001F
72599 +:10B13000000000000000000000000000000000000F
72600 +:10B1400000000000000000000000000000000000FF
72601 +:10B1500000000000000000000000000000000000EF
72602 +:10B1600000000000000000000000000000000000DF
72603 +:10B1700000000000000000000000000000000000CF
72604 +:10B1800000000000000000000000000000000000BF
72605 +:10B1900000000000000000000000000000000000AF
72606 +:10B1A000000000000000000000000000000000009F
72607 +:10B1B000000000000000000000000000000000008F
72608 +:10B1C000000000000000000000000000000000007F
72609 +:10B1D000000000000000000000000000000000006F
72610 +:10B1E000000000000000000000000000000000005F
72611 +:10B1F000000000000000000000000000000000004F
72612 +:10B20000000000000000000000000000000000003E
72613 +:10B21000000000000000000000000000000000002E
72614 +:10B22000000000000000000000000000000000001E
72615 +:10B23000000000000000000000000000000000000E
72616 +:10B2400000000000000000000000000000000000FE
72617 +:10B2500000000000000000000000000000000000EE
72618 +:10B2600000000000000000000000000000000000DE
72619 +:10B2700000000000000000000000000000000000CE
72620 +:10B2800000000000000000000000000000000000BE
72621 +:10B2900000000000000000000000000000000000AE
72622 +:10B2A000000000000000000000000000000000009E
72623 +:10B2B000000000000000000000000000000000008E
72624 +:10B2C000000000000000000000000000000000007E
72625 +:10B2D000000000000000000000000000000000006E
72626 +:10B2E000000000000000000000000000000000005E
72627 +:10B2F000000000000000000000000000000000004E
72628 +:10B30000000000000000000000000000000000003D
72629 +:10B31000000000000000000000000000000000002D
72630 +:10B32000000000000000000000000000000000001D
72631 +:10B33000000000000000000000000000000000000D
72632 +:10B3400000000000000000000000000000000000FD
72633 +:10B3500000000000000000000000000000000000ED
72634 +:10B3600000000000000000000000000000000000DD
72635 +:10B3700000000000000000000000000000000000CD
72636 +:10B3800000000000000000000000000000000000BD
72637 +:10B3900000000000000000000000000000000000AD
72638 +:10B3A000000000000000000000000000000000009D
72639 +:10B3B000000000000000000000000000000000008D
72640 +:10B3C000000000000000000000000000000000007D
72641 +:10B3D000000000000000000000000000000000006D
72642 +:10B3E000000000000000000000000000000000005D
72643 +:10B3F000000000000000000000000000000000004D
72644 +:10B40000000000000000000000000000000000003C
72645 +:10B41000000000000000000000000000000000002C
72646 +:10B42000000000000000000000000000000000001C
72647 +:10B43000000000000000000000000000000000000C
72648 +:10B4400000000000000000000000000000000000FC
72649 +:10B4500000000000000000000000000000000000EC
72650 +:10B4600000000000000000000000000000000000DC
72651 +:10B4700000000000000000000000000000000000CC
72652 +:10B4800000000000000000000000000000000000BC
72653 +:10B4900000000000000000000000000000000000AC
72654 +:10B4A000000000000000000000000000000000009C
72655 +:10B4B000000000000000000000000000000000008C
72656 +:10B4C000000000000000000000000000000000007C
72657 +:10B4D000000000000000000000000000000000006C
72658 +:10B4E000000000000000000000000000000000005C
72659 +:10B4F000000000000000000000000000000000004C
72660 +:10B50000000000000000000000000000000000003B
72661 +:10B51000000000000000000000000000000000002B
72662 +:10B52000000000000000000000000000000000001B
72663 +:10B53000000000000000000000000000000000000B
72664 +:10B5400000000000000000000000000000000000FB
72665 +:10B5500000000000000000000000000000000000EB
72666 +:10B5600000000000000000000000000000000000DB
72667 +:10B5700000000000000000000000000000000000CB
72668 +:10B5800000000000000000000000000000000000BB
72669 +:10B5900000000000000000000000000000000000AB
72670 +:10B5A000000000000000000000000000000000009B
72671 +:10B5B000000000000000000000000000000000008B
72672 +:10B5C000000000000000000000000000000000007B
72673 +:10B5D000000000000000000000000000000000006B
72674 +:10B5E000000000000000000000000000000000005B
72675 +:10B5F000000000000000000000000000000000004B
72676 +:10B60000000000000000000000000000000000003A
72677 +:10B61000000000000000000000000000000000002A
72678 +:10B62000000000000000000000000000000000001A
72679 +:10B63000000000000000000000000000000000000A
72680 +:10B6400000000000000000000000000000000000FA
72681 +:10B6500000000000000000000000000000000000EA
72682 +:10B6600000000000000000000000000000000000DA
72683 +:10B6700000000000000000000000000000000000CA
72684 +:10B6800000000000000000000000000000000000BA
72685 +:10B6900000000000000000000000000000000000AA
72686 +:10B6A000000000000000000000000000000000009A
72687 +:10B6B000000000000000000000000000000000008A
72688 +:10B6C000000000000000000000000000000000007A
72689 +:10B6D000000000000000000000000000000000006A
72690 +:10B6E000000000000000000000000000000000005A
72691 +:10B6F000000000000000000000000000000000004A
72692 +:10B700000000000000000000000000000000000039
72693 +:10B710000000000000000000000000000000000029
72694 +:10B720000000000000000000000000000000000019
72695 +:10B730000000000000000000000000000000000009
72696 +:10B7400000000000000000000000000000000000F9
72697 +:10B7500000000000000000000000000000000000E9
72698 +:10B7600000000000000000000000000000000000D9
72699 +:10B7700000000000000000000000000000000000C9
72700 +:10B7800000000000000000000000000000000000B9
72701 +:10B7900000000000000000000000000000000000A9
72702 +:10B7A0000000000000000000000000000000000099
72703 +:10B7B0000000000000000000000000000000000089
72704 +:10B7C0000000000000000000000000000000000079
72705 +:10B7D0000000000000000000000000000000000069
72706 +:10B7E0000000000000000000000000000000000059
72707 +:10B7F0000000000000000000000000000000000049
72708 +:10B800000000000000000000000000000000000038
72709 +:10B810000000000000000000000000000000000028
72710 +:10B820000000000000000000000000000000000018
72711 +:10B830000000000000000000000000000000000008
72712 +:10B8400000000000000000000000000000000000F8
72713 +:10B8500000000000000000000000000000000000E8
72714 +:10B8600000000000000000000000000000000000D8
72715 +:10B8700000000000000000000000000000000000C8
72716 +:10B8800000000000000000000000000000000000B8
72717 +:10B8900000000000000000000000000000000000A8
72718 +:10B8A0000000000000000000000000000000000098
72719 +:10B8B0000000000000000000000000000000000088
72720 +:10B8C0000000000000000000000000000000000078
72721 +:10B8D0000000000000000000000000000000000068
72722 +:10B8E0000000000000000000000000000000000058
72723 +:10B8F0000000000000000000000000000000000048
72724 +:10B900000000000000000000000000000000000037
72725 +:10B910000000000000000000000000000000000027
72726 +:10B920000000000000000000000000000000000017
72727 +:10B930000000000000000000000000000000000007
72728 +:10B9400000000000000000000000000000000000F7
72729 +:10B9500000000000000000000000000000000000E7
72730 +:10B9600000000000000000000000000000000000D7
72731 +:10B9700000000000000000000000000000000000C7
72732 +:10B9800000000000000000000000000000000000B7
72733 +:10B9900000000000000000000000000000000000A7
72734 +:10B9A0000000000000000000000000000000000097
72735 +:10B9B0000000000000000000000000000000000087
72736 +:10B9C0000000000000000000000000000000000077
72737 +:10B9D0000000000000000000000000000000000067
72738 +:10B9E0000000000000000000000000000000000057
72739 +:10B9F0000000000000000000000000000000000047
72740 +:10BA00000000000000000000000000000000000036
72741 +:10BA10000000000000000000000000000000000026
72742 +:10BA20000000000000000000000000000000000016
72743 +:10BA30000000000000000000000000000000000006
72744 +:10BA400000000000000000000000000000000000F6
72745 +:10BA500000000000000000000000000000000000E6
72746 +:10BA600000000000000000000000000000000000D6
72747 +:10BA700000000000000000000000000000000000C6
72748 +:10BA800000000000000000000000000000000000B6
72749 +:10BA900000000000000000000000000000000000A6
72750 +:10BAA0000000000000000000000000000000000096
72751 +:10BAB0000000000000000000000000000000000086
72752 +:10BAC0000000000000000000000000000000000076
72753 +:10BAD0000000000000000000000000000000000066
72754 +:10BAE0000000000000000000000000000000000056
72755 +:10BAF0000000000000000000000000000000000046
72756 +:10BB00000000000000000000000000000000000035
72757 +:10BB10000000000000000000000000000000000025
72758 +:10BB20000000000000000000000000000000000015
72759 +:10BB30000000000000000000000000000000000005
72760 +:10BB400000000000000000000000000000000000F5
72761 +:10BB500000000000000000000000000000000000E5
72762 +:10BB600000000000000000000000000000000000D5
72763 +:10BB700000000000000000000000000000000000C5
72764 +:10BB800000000000000000000000000000000000B5
72765 +:10BB900000000000000000000000000000000000A5
72766 +:10BBA0000000000000000000000000000000000095
72767 +:10BBB0000000000000000000000000000000000085
72768 +:10BBC0000000000000000000000000000000000075
72769 +:10BBD0000000000000000000000000000000000065
72770 +:10BBE0000000000000000000000000000000000055
72771 +:10BBF0000000000000000000000000000000000045
72772 +:10BC00000000000000000000000000000000000034
72773 +:10BC10000000000000000000000000000000000024
72774 +:10BC20000000000000000000000000000000000014
72775 +:10BC30000000000000000000000000000000000004
72776 +:10BC400000000000000000000000000000000000F4
72777 +:10BC500000000000000000000000000000000000E4
72778 +:10BC600000000000000000000000000000000000D4
72779 +:10BC700000000000000000000000000000000000C4
72780 +:10BC800000000000000000000000000000000000B4
72781 +:10BC900000000000000000000000000000000000A4
72782 +:10BCA0000000000000000000000000000000000094
72783 +:10BCB0000000000000000000000000000000000084
72784 +:10BCC0000000000000000000000000000000000074
72785 +:10BCD0000000000000000000000000000000000064
72786 +:10BCE0000000000000000000000000000000000054
72787 +:10BCF0000000000000000000000000000000000044
72788 +:10BD00000000000000000000000000000000000033
72789 +:10BD10000000000000000000000000000000000023
72790 +:10BD20000000000000000000000000000000000013
72791 +:10BD30000000000000000000000000000000000003
72792 +:10BD400000000000000000000000000000000000F3
72793 +:10BD500000000000000000000000000000000000E3
72794 +:10BD600000000000000000000000000000000000D3
72795 +:10BD700000000000000000000000000000000000C3
72796 +:10BD800000000000000000000000000000000000B3
72797 +:10BD900000000000000000000000000000000000A3
72798 +:10BDA0000000000000000000000000000000000093
72799 +:10BDB0000000000000000000000000000000000083
72800 +:10BDC0000000000000000000000000000000000073
72801 +:10BDD0000000000000000000000000000000000063
72802 +:10BDE0000000000000000000000000000000000053
72803 +:10BDF0000000000000000000000000000000000043
72804 +:10BE00000000000000000000000000000000000032
72805 +:10BE10000000000000000000000000000000000022
72806 +:10BE20000000000000000000000000000000000012
72807 +:10BE30000000000000000000000000000000000002
72808 +:10BE400000000000000000000000000000000000F2
72809 +:10BE500000000000000000000000000000000000E2
72810 +:10BE600000000000000000000000000000000000D2
72811 +:10BE700000000000000000000000000000000000C2
72812 +:10BE800000000000000000000000000000000000B2
72813 +:10BE900000000000000000000000000000000000A2
72814 +:10BEA0000000000000000000000000000000000092
72815 +:10BEB0000000000000000000000000000000000082
72816 +:10BEC0000000000000000000000000000000000072
72817 +:10BED0000000000000000000000000000000000062
72818 +:10BEE0000000000000000000000000000000000052
72819 +:10BEF0000000000000000000000000000000000042
72820 +:10BF00000000000000000000000000000000000031
72821 +:10BF10000000000000000000000000000000000021
72822 +:10BF20000000000000000000000000000000000011
72823 +:10BF30000000000000000000000000000000000001
72824 +:10BF400000000000000000000000000000000000F1
72825 +:10BF500000000000000000000000000000000000E1
72826 +:10BF600000000000000000000000000000000000D1
72827 +:10BF700000000000000000000000000000000000C1
72828 +:10BF800000000000000000000000000000000000B1
72829 +:10BF900000000000000000000000000000000000A1
72830 +:10BFA0000000000000000000000000000000000091
72831 +:10BFB0000000000000000000000000000000000081
72832 +:10BFC0000000000000000000000000000000000071
72833 +:10BFD0000000000000000000000000000000000061
72834 +:10BFE0000000000000000000000000000000000051
72835 +:10BFF0000000000000000000000000000000000041
72836 +:10C000000000000000000000000000000000000030
72837 +:10C010000000000000000000000000000000000020
72838 +:10C020000000000000000000000000000000000010
72839 +:10C030000000000000000000000000000000000000
72840 +:10C0400000000000000000000000000000000000F0
72841 +:10C0500000000000000000000000000000000000E0
72842 +:10C0600000000000000000000000000000000000D0
72843 +:10C0700000000000000000000000000000000000C0
72844 +:10C0800000000000000000000000000000000000B0
72845 +:10C0900000000000000000000000000000000000A0
72846 +:10C0A0000000000000000000000000000000000090
72847 +:10C0B0000000000000000000000000000000000080
72848 +:10C0C0000000000000000000000000000000000070
72849 +:10C0D0000000000000000000000000000000000060
72850 +:10C0E0000000000000000000000000000000000050
72851 +:10C0F0000000000000000000000000000000000040
72852 +:10C10000000000000000000000000000000000002F
72853 +:10C11000000000000000000000000000000000001F
72854 +:10C12000000000000000000000000000000000000F
72855 +:10C1300000000000000000000000000000000000FF
72856 +:10C1400000000000000000000000000000000000EF
72857 +:10C1500000000000000000000000000000000000DF
72858 +:10C1600000000000000000000000000000000000CF
72859 +:10C1700000000000000000000000000000000000BF
72860 +:10C1800000000000000000000000000000000000AF
72861 +:10C19000000000000000000000000000000000009F
72862 +:10C1A000000000000000000000000000000000008F
72863 +:10C1B000000000000000000000000000000000007F
72864 +:10C1C000000000000000000000000000000000006F
72865 +:10C1D000000000000000000000000000000000005F
72866 +:10C1E000000000000000000000000000000000004F
72867 +:10C1F000000000000000000000000000000000003F
72868 +:10C20000000000000000000000000000000000002E
72869 +:10C21000000000000000000000000000000000001E
72870 +:10C22000000000000000000000000000000000000E
72871 +:10C2300000000000000000000000000000000000FE
72872 +:10C2400000000000000000000000000000000000EE
72873 +:10C2500000000000000000000000000000000000DE
72874 +:10C2600000000000000000000000000000000000CE
72875 +:10C2700000000000000000000000000000000000BE
72876 +:10C2800000000000000000000000000000000000AE
72877 +:10C29000000000000000000000000000000000009E
72878 +:10C2A000000000000000000000000000000000008E
72879 +:10C2B000000000000000000000000000000000007E
72880 +:10C2C000000000000000000000000000000000006E
72881 +:10C2D000000000000000000000000000000000005E
72882 +:10C2E000000000000000000000000000000000004E
72883 +:10C2F000000000000000000000000000000000003E
72884 +:10C30000000000000000000000000000000000002D
72885 +:10C31000000000000000000000000000000000001D
72886 +:10C32000000000000000000000000000000000000D
72887 +:10C3300000000000000000000000000000000000FD
72888 +:10C3400000000000000000000000000000000000ED
72889 +:10C3500000000000000000000000000000000000DD
72890 +:10C3600000000000000000000000000000000000CD
72891 +:10C3700000000000000000000000000000000000BD
72892 +:10C3800000000000000000000000000000000000AD
72893 +:10C39000000000000000000000000000000000009D
72894 +:10C3A000000000000000000000000000000000008D
72895 +:10C3B000000000000000000000000000000000007D
72896 +:10C3C000000000000000000000000000000000006D
72897 +:10C3D000000000000000000000000000000000005D
72898 +:10C3E000000000000000000000000000000000004D
72899 +:10C3F000000000000000000000000000000000003D
72900 +:10C40000000000000000000000000000000000002C
72901 +:10C41000000000000000000000000000000000001C
72902 +:10C42000000000000000000000000000000000000C
72903 +:10C4300000000000000000000000000000000000FC
72904 +:10C4400000000000000000000000000000000000EC
72905 +:10C4500000000000000000000000000000000000DC
72906 +:10C4600000000000000000000000000000000000CC
72907 +:10C4700000000000000000000000000000000000BC
72908 +:10C4800000000000000000000000000000000000AC
72909 +:10C49000000000000000000000000000000000009C
72910 +:10C4A000000000000000000000000000000000008C
72911 +:10C4B000000000000000000000000000000000007C
72912 +:10C4C000000000000000000000000000000000006C
72913 +:10C4D000000000000000000000000000000000005C
72914 +:10C4E000000000000000000000000000000000004C
72915 +:10C4F000000000000000000000000000000000003C
72916 +:10C50000000000000000000000000000000000002B
72917 +:10C51000000000000000000000000000000000001B
72918 +:10C52000000000000000000000000000000000000B
72919 +:10C5300000000000000000000000000000000000FB
72920 +:10C5400000000000000000000000000000000000EB
72921 +:10C5500000000000000000000000000000000000DB
72922 +:10C5600000000000000000000000000000000000CB
72923 +:10C5700000000000000000000000000000000000BB
72924 +:10C5800000000000000000000000000000000000AB
72925 +:10C59000000000000000000000000000000000009B
72926 +:10C5A000000000000000000000000000000000008B
72927 +:10C5B000000000000000000000000000000000007B
72928 +:10C5C000000000000000000000000000000000006B
72929 +:10C5D000000000000000000000000000000000005B
72930 +:10C5E000000000000000000000000000000000004B
72931 +:10C5F000000000000000000000000000000000003B
72932 +:10C60000000000000000000000000000000000002A
72933 +:10C61000000000000000000000000000000000001A
72934 +:10C62000000000000000000000000000000000000A
72935 +:10C6300000000000000000000000000000000000FA
72936 +:10C6400000000000000000000000000000000000EA
72937 +:10C6500000000000000000000000000000000000DA
72938 +:10C6600000000000000000000000000000000000CA
72939 +:10C6700000000000000000000000000000000000BA
72940 +:10C6800000000000000000000000000000000000AA
72941 +:10C69000000000000000000000000000000000009A
72942 +:10C6A000000000000000000000000000000000008A
72943 +:10C6B000000000000000000000000000000000007A
72944 +:10C6C000000000000000000000000000000000006A
72945 +:10C6D000000000000000000000000000000000005A
72946 +:10C6E000000000000000000000000000000000004A
72947 +:10C6F000000000000000000000000000000000003A
72948 +:10C700000000000000000000000000000000000029
72949 +:10C710000000000000000000000000000000000019
72950 +:10C720000000000000000000000000000000000009
72951 +:10C7300000000000000000000000000000000000F9
72952 +:10C7400000000000000000000000000000000000E9
72953 +:10C7500000000000000000000000000000000000D9
72954 +:10C7600000000000000000000000000000000000C9
72955 +:10C7700000000000000000000000000000000000B9
72956 +:10C7800000000000000000000000000000000000A9
72957 +:10C790000000000000000000000000000000000099
72958 +:10C7A0000000000000000000000000000000000089
72959 +:10C7B0000000000000000000000000000000000079
72960 +:10C7C0000000000000000000000000000000000069
72961 +:10C7D0000000000000000000000000000000000059
72962 +:10C7E0000000000000000000000000000000000049
72963 +:10C7F0000000000000000000000000000000000039
72964 +:10C800000000000000000000000000000000000028
72965 +:10C810000000000000000000000000000000000018
72966 +:10C820000000000000000000000000000000000008
72967 +:10C8300000000000000000000000000000000000F8
72968 +:10C8400000000000000000000000000000000000E8
72969 +:10C8500000000000000000000000000000000000D8
72970 +:10C8600000000000000000000000000000000000C8
72971 +:10C8700000000000000000000000000000000000B8
72972 +:10C8800000000000000000000000000000000000A8
72973 +:10C890000000000000000000000000000000000098
72974 +:10C8A0000000000000000000000000000000000088
72975 +:10C8B0000000000000000000000000000000000078
72976 +:10C8C0000000000000000000000000000000000068
72977 +:10C8D0000000000000000000000000000000000058
72978 +:10C8E0000000000000000000000000000000000048
72979 +:10C8F0000000000000000000000000000000000038
72980 +:10C900000000000000000000000000000000000027
72981 +:10C910000000000000000000000000000000000017
72982 +:10C920000000000000000000000000000000000007
72983 +:10C9300000000000000000000000000000000000F7
72984 +:10C9400000000000000000000000000000000000E7
72985 +:10C9500000000000000000000000000000000000D7
72986 +:10C9600000000000000000000000000000000000C7
72987 +:10C9700000000000000000000000000000000000B7
72988 +:10C9800000000000000000000000000000000000A7
72989 +:10C990000000000000000000000000000000000097
72990 +:10C9A0000000000000000000000000000000000087
72991 +:10C9B0000000000000000000000000000000000077
72992 +:10C9C0000000000000000000000000000000000067
72993 +:10C9D0000000000000000000000000000000000057
72994 +:10C9E0000000000000000000000000000000000047
72995 +:10C9F0000000000000000000000000000000000037
72996 +:10CA00000000000000000000000000000000000026
72997 +:10CA10000000000000000000000000000000000016
72998 +:10CA20000000000000000000000000000000000006
72999 +:10CA300000000000000000000000000000000000F6
73000 +:10CA400000000000000000000000000000000000E6
73001 +:10CA500000000000000000000000000000000000D6
73002 +:10CA600000000000000000000000000000000000C6
73003 +:10CA700000000000000000000000000000000000B6
73004 +:10CA800000000000000000000000000000000000A6
73005 +:10CA90000000000000000000000000000000000096
73006 +:10CAA0000000000000000000000000000000000086
73007 +:10CAB0000000000000000000000000000000000076
73008 +:10CAC0000000000000000000000000000000000066
73009 +:10CAD0000000000000000000000000000000000056
73010 +:10CAE0000000000000000000000000000000000046
73011 +:10CAF0000000000000000000000000000000000036
73012 +:10CB00000000000000000000000000000000000025
73013 +:10CB10000000000000000000000000000000000015
73014 +:10CB20000000000000000000000000000000000005
73015 +:10CB300000000000000000000000000000000000F5
73016 +:10CB400000000000000000000000000000000000E5
73017 +:10CB500000000000000000000000000000000000D5
73018 +:10CB600000000000000000000000000000000000C5
73019 +:10CB700000000000000000000000000000000000B5
73020 +:10CB800000000000000000000000000000000000A5
73021 +:10CB90000000000000000000000000000000000095
73022 +:10CBA0000000000000000000000000000000000085
73023 +:10CBB0000000000000000000000000000000000075
73024 +:10CBC0000000000000000000000000000000000065
73025 +:10CBD0000000000000000000000000000000000055
73026 +:10CBE0000000000000000000000000000000000045
73027 +:10CBF0000000000000000000000000000000000035
73028 +:10CC00000000000000000000000000000000000024
73029 +:10CC10000000000000000000000000000000000014
73030 +:10CC20000000000000000000000000000000000004
73031 +:10CC300000000000000000000000000000000000F4
73032 +:10CC400000000000000000000000000000000000E4
73033 +:10CC500000000000000000000000000000000000D4
73034 +:10CC600000000000000000000000000000000000C4
73035 +:10CC700000000000000000000000000000000000B4
73036 +:10CC800000000000000000000000000000000000A4
73037 +:10CC90000000000000000000000000000000000094
73038 +:10CCA0000000000000000000000000000000000084
73039 +:10CCB0000000000000000000000000000000000074
73040 +:10CCC0000000000000000000000000000000000064
73041 +:10CCD0000000000000000000000000000000000054
73042 +:10CCE0000000000000000000000000000000000044
73043 +:10CCF0000000000000000000000000000000000034
73044 +:10CD00000000000000000000000000000000000023
73045 +:10CD10000000000000000000000000000000000013
73046 +:10CD20000000000000000000000000000000000003
73047 +:10CD300000000000000000000000000000000000F3
73048 +:10CD400000000000000000000000000000000000E3
73049 +:10CD500000000000000000000000000000000000D3
73050 +:10CD600000000000000000000000000000000000C3
73051 +:10CD700000000000000000000000000000000000B3
73052 +:10CD800000000000000000000000000000000000A3
73053 +:10CD90000000000000000000000000000000000093
73054 +:10CDA0000000000000000000000000000000000083
73055 +:10CDB0000000000000000000000000000000000073
73056 +:10CDC0000000000000000000000000000000000063
73057 +:10CDD0000000000000000000000000000000000053
73058 +:10CDE0000000000000000000000000000000000043
73059 +:10CDF0000000000000000000000000000000000033
73060 +:10CE00000000000000000000000000000000000022
73061 +:10CE10000000000000000000000000000000000012
73062 +:10CE20000000000000000000000000000000000002
73063 +:10CE300000000000000000000000000000000000F2
73064 +:10CE400000000000000000000000000000000000E2
73065 +:10CE500000000000000000000000000000000000D2
73066 +:10CE600000000000000000000000000000000000C2
73067 +:10CE700000000000000000000000000000000000B2
73068 +:10CE800000000000000000000000000000000000A2
73069 +:10CE90000000000000000000000000000000000092
73070 +:10CEA0000000000000000000000000000000000082
73071 +:10CEB0000000000000000000000000000000000072
73072 +:10CEC0000000000000000000000000000000000062
73073 +:10CED0000000000000000000000000000000000052
73074 +:10CEE0000000000000000000000000000000000042
73075 +:10CEF0000000000000000000000000000000000032
73076 +:10CF00000000000000000000000000000000000021
73077 +:10CF10000000000000000000000000000000000011
73078 +:10CF20000000000000000000000000000000000001
73079 +:10CF300000000000000000000000000000000000F1
73080 +:10CF400000000000000000000000000000000000E1
73081 +:10CF500000000000000000000000000000000000D1
73082 +:10CF600000000000000000000000000000000000C1
73083 +:10CF700000000000000000000000000000000000B1
73084 +:10CF800000000000000000000000000000000000A1
73085 +:10CF90000000000000000000000000000000000091
73086 +:10CFA0000000000000000000000000000000000081
73087 +:10CFB0000000000000000000000000000000000071
73088 +:10CFC0000000000000000000000000000000000061
73089 +:10CFD0000000000000000000000000000000000051
73090 +:10CFE0000000000000000000000000000000000041
73091 +:10CFF0000000000000000000000000000000000031
73092 +:10D000000000000000000000000000000000000020
73093 +:10D010000000000000000000000000000000000010
73094 +:10D020000000000000000000000000000000000000
73095 +:10D0300000000000000000000000000000000000F0
73096 +:10D0400000000000000000000000000000000000E0
73097 +:10D0500000000000000000000000000000000000D0
73098 +:10D0600000000000000000000000000000000000C0
73099 +:10D0700000000000000000000000000000000000B0
73100 +:10D0800000000000000000000000000000000000A0
73101 +:10D090000000000000000000000000000000000090
73102 +:10D0A0000000000000000000000000000000000080
73103 +:10D0B0000000000000000000000000000000000070
73104 +:10D0C0000000000000000000000000000000000060
73105 +:10D0D0000000000000000000000000000000000050
73106 +:10D0E0000000000000000000000000000000000040
73107 +:10D0F0000000000000000000000000000000000030
73108 +:10D10000000000000000000000000000000000001F
73109 +:10D11000000000000000000000000000000000000F
73110 +:10D1200000000000000000000000000000000000FF
73111 +:10D1300000000000000000000000000000000000EF
73112 +:10D1400000000000000000000000000000000000DF
73113 +:10D1500000000000000000000000000000000000CF
73114 +:10D1600000000000000000000000000000000000BF
73115 +:10D1700000000000000000000000000000000000AF
73116 +:10D18000000000000000000000000000000000009F
73117 +:10D19000000000000000000000000000000000008F
73118 +:10D1A000000000000000000000000000000000007F
73119 +:10D1B000000000000000000000000000000000006F
73120 +:10D1C000000000000000000000000000000000005F
73121 +:10D1D000000000000000000000000000000000004F
73122 +:10D1E000000000000000000000000000000000003F
73123 +:10D1F000000000000000000000000000000000002F
73124 +:10D20000000000000000000000000000000000001E
73125 +:10D21000000000000000000000000000000000000E
73126 +:10D2200000000000000000000000000000000000FE
73127 +:10D2300000000000000000000000000000000000EE
73128 +:10D2400000000000000000000000000000000000DE
73129 +:10D2500000000000000000000000000000000000CE
73130 +:10D2600000000000000000000000000000000000BE
73131 +:10D2700000000000000000000000000000000000AE
73132 +:10D28000000000000000000000000000000000009E
73133 +:10D29000000000000000000000000000000000008E
73134 +:10D2A000000000000000000000000000000000007E
73135 +:10D2B000000000000000000000000000000000006E
73136 +:10D2C000000000000000000000000000000000005E
73137 +:10D2D000000000000000000000000000000000004E
73138 +:10D2E000000000000000000000000000000000003E
73139 +:10D2F000000000000000000000000000000000002E
73140 +:10D30000000000000000000000000000000000001D
73141 +:10D31000000000000000000000000000000000000D
73142 +:10D3200000000000000000000000000000000000FD
73143 +:10D3300000000000000000000000000000000000ED
73144 +:10D3400000000000000000000000000000000000DD
73145 +:10D3500000000000000000000000000000000000CD
73146 +:10D3600000000000000000000000000000000000BD
73147 +:10D3700000000000000000000000000000000000AD
73148 +:10D38000000000000000000000000000000000009D
73149 +:10D39000000000000000000000000000000000008D
73150 +:10D3A000000000000000000000000000000000007D
73151 +:10D3B000000000000000000000000000000000006D
73152 +:10D3C000000000000000000000000000000000005D
73153 +:10D3D000000000000000000000000000000000004D
73154 +:10D3E000000000000000000000000000000000003D
73155 +:10D3F000000000000000000000000000000000002D
73156 +:10D40000000000000000000000000000000000001C
73157 +:10D41000000000000000000000000000000000000C
73158 +:10D4200000000000000000000000000000000000FC
73159 +:10D4300000000000000000000000000000000000EC
73160 +:10D4400000000000000000000000000000000000DC
73161 +:10D4500000000000000000000000000000000000CC
73162 +:10D4600000000000000000000000000000000000BC
73163 +:10D4700000000000000000000000000000000000AC
73164 +:10D48000000000000000000000000000000000009C
73165 +:10D49000000000000000000000000000000000008C
73166 +:10D4A000000000000000000000000000000000007C
73167 +:10D4B000000000000000000000000000000000006C
73168 +:10D4C000000000000000000000000000000000005C
73169 +:10D4D000000000000000000000000000000000004C
73170 +:10D4E000000000000000000000000000000000003C
73171 +:10D4F000000000000000000000000000000000002C
73172 +:10D50000000000000000000000000000000000001B
73173 +:10D51000000000000000000000000000000000000B
73174 +:10D5200000000000000000000000000000000000FB
73175 +:10D5300000000000000000000000000000000000EB
73176 +:10D5400000000000000000000000000000000000DB
73177 +:10D5500000000000000000000000000000000000CB
73178 +:10D5600000000000000000000000000000000000BB
73179 +:10D5700000000000000000000000000000000000AB
73180 +:10D58000000000000000000000000000000000009B
73181 +:10D59000000000000000000000000000000000008B
73182 +:10D5A000000000000000000000000000000000007B
73183 +:10D5B000000000000000000000000000000000006B
73184 +:10D5C000000000000000000000000000000000005B
73185 +:10D5D000000000000000000000000000000000004B
73186 +:10D5E000000000000000000000000000000000003B
73187 +:10D5F000000000000000000000000000000000002B
73188 +:10D60000000000000000000000000000000000001A
73189 +:10D61000000000000000000000000000000000000A
73190 +:10D6200000000000000000000000000000000000FA
73191 +:10D6300000000000000000000000000000000000EA
73192 +:10D6400000000000000000000000000000000000DA
73193 +:10D6500000000000000000000000000000000000CA
73194 +:10D6600000000000000000000000000000000000BA
73195 +:10D6700000000000000000000000000000000000AA
73196 +:10D68000000000000000000000000000000000009A
73197 +:10D69000000000000000000000000000000000008A
73198 +:10D6A000000000000000000000000000000000007A
73199 +:10D6B000000000000000000000000000000000006A
73200 +:10D6C000000000000000000000000000000000005A
73201 +:10D6D000000000000000000000000000000000004A
73202 +:10D6E000000000000000000000000000000000003A
73203 +:10D6F000000000000000000000000000000000002A
73204 +:10D700000000000000000000000000000000000019
73205 +:10D710000000000000000000000000000000000009
73206 +:10D7200000000000000000000000000000000000F9
73207 +:10D7300000000000000000000000000000000000E9
73208 +:10D7400000000000000000000000000000000000D9
73209 +:10D7500000000000000000000000000000000000C9
73210 +:10D7600000000000000000000000000000000000B9
73211 +:10D7700000000000000000000000000000000000A9
73212 +:10D780000000000000000000000000000000000099
73213 +:10D790000000000000000000000000000000000089
73214 +:10D7A0000000000000000000000000000000000079
73215 +:10D7B0000000000000000000000000000000000069
73216 +:10D7C0000000000000000000000000000000000059
73217 +:10D7D0000000000000000000000000000000000049
73218 +:10D7E0000000000000000000000000000000000039
73219 +:10D7F0000000000000000000000000000000000029
73220 +:10D800000000000000000000000000000000000018
73221 +:10D810000000000000000000000000000000000008
73222 +:10D8200000000000000000000000000000000000F8
73223 +:10D8300000000000000000000000000000000000E8
73224 +:10D8400000000000000000000000000000000000D8
73225 +:10D8500000000000000000000000000000000000C8
73226 +:10D8600000000000000000000000000000000000B8
73227 +:10D8700000000000000000000000000000000000A8
73228 +:10D880000000000000000000000000000000000098
73229 +:10D890000000000000000000000000000000000088
73230 +:10D8A0000000000000000000000000000000000078
73231 +:10D8B0000000000000000000000000000000000068
73232 +:10D8C0000000000000000000000000000000000058
73233 +:10D8D0000000000000000000000000000000000048
73234 +:10D8E0000000000000000000000000000000000038
73235 +:10D8F0000000000000000000000000000000000028
73236 +:10D900000000000000000000000000000000000017
73237 +:10D910000000000000000000000000000000000007
73238 +:10D9200000000000000000000000000000000000F7
73239 +:10D9300000000000000000000000000000000000E7
73240 +:10D9400000000000000000000000000000000000D7
73241 +:10D9500000000000000000000000000000000000C7
73242 +:10D9600000000000000000000000000000000000B7
73243 +:10D9700000000000000000000000000000000000A7
73244 +:10D980000000000000000000000000000000000097
73245 +:10D990000000000000000000000000000000000087
73246 +:10D9A0000000000000000000000000000000000077
73247 +:10D9B0000000000000000000000000000000000067
73248 +:10D9C0000000000000000000000000000000000057
73249 +:10D9D0000000000000000000000000000000000047
73250 +:10D9E0000000000000000000000000000000000037
73251 +:10D9F0000000000000000000000000000000000027
73252 +:10DA00000000000000000000000000000000000016
73253 +:10DA10000000000000000000000000000000000006
73254 +:10DA200000000000000000000000000000000000F6
73255 +:10DA300000000000000000000000000000000000E6
73256 +:10DA400000000000000000000000000000000000D6
73257 +:10DA500000000000000000000000000000000000C6
73258 +:10DA600000000000000000000000000000000000B6
73259 +:10DA700000000000000000000000000000000000A6
73260 +:10DA80000000000000000000000000000000000096
73261 +:10DA90000000000000000000000000000000000086
73262 +:10DAA0000000000000000000000000000000000076
73263 +:10DAB0000000000000000000000000000000000066
73264 +:10DAC0000000000000000000000000000000000056
73265 +:10DAD0000000000000000000000000000000000046
73266 +:10DAE0000000000000000000000000000000000036
73267 +:10DAF0000000000000000000000000000000000026
73268 +:10DB00000000000000000000000000000000000015
73269 +:10DB10000000000000000000000000000000000005
73270 +:10DB200000000000000000000000000000000000F5
73271 +:10DB300000000000000000000000000000000000E5
73272 +:10DB400000000000000000000000000000000000D5
73273 +:10DB500000000000000000000000000000000000C5
73274 +:10DB600000000000000000000000000000000000B5
73275 +:10DB700000000000000000000000000000000000A5
73276 +:10DB80000000000000000000000000000000000095
73277 +:10DB90000000000000000000000000000000000085
73278 +:10DBA0000000000000000000000000000000000075
73279 +:10DBB0000000000000000000000000000000000065
73280 +:10DBC0000000000000000000000000000000000055
73281 +:10DBD0000000000000000000000000000000000045
73282 +:10DBE0000000000000000000000000000000000035
73283 +:10DBF0000000000000000000000000000000000025
73284 +:10DC00000000000000000000000000000000000014
73285 +:10DC10000000000000000000000000000000000004
73286 +:10DC200000000000000000000000000000000000F4
73287 +:10DC300000000000000000000000000000000000E4
73288 +:10DC400000000000000000000000000000000000D4
73289 +:10DC500000000000000000000000000000000000C4
73290 +:10DC600000000000000000000000000000000000B4
73291 +:10DC700000000000000000000000000000000000A4
73292 +:10DC80000000000000000000000000000000000094
73293 +:10DC90000000000000000000000000000000000084
73294 +:10DCA0000000000000000000000000000000000074
73295 +:10DCB0000000000000000000000000000000000064
73296 +:10DCC0000000000000000000000000000000000054
73297 +:10DCD0000000000000000000000000000000000044
73298 +:10DCE0000000000000000000000000000000000034
73299 +:10DCF0000000000000000000000000000000000024
73300 +:10DD00000000000000000000000000000000000013
73301 +:10DD10000000000000000000000000000000000003
73302 +:10DD200000000000000000000000000000000000F3
73303 +:10DD300000000000000000000000000000000000E3
73304 +:10DD400000000000000000000000000000000000D3
73305 +:10DD500000000000000000000000000000000000C3
73306 +:10DD600000000000000000000000000000000000B3
73307 +:10DD700000000000000000000000000000000000A3
73308 +:10DD80000000000000000000000000000000000093
73309 +:10DD90000000000000000000000000000000000083
73310 +:10DDA0000000000000000000000000000000000073
73311 +:10DDB0000000000000000000000000000000000063
73312 +:10DDC0000000000000000000000000000000000053
73313 +:10DDD0000000000000000000000000000000000043
73314 +:10DDE0000000000000000000000000000000000033
73315 +:10DDF0000000000000000000000000000000000023
73316 +:10DE00000000000000000000000000000000000012
73317 +:10DE10000000000000000000000000000000000002
73318 +:10DE200000000000000000000000000000000000F2
73319 +:10DE300000000000000000000000000000000000E2
73320 +:10DE400000000000000000000000000000000000D2
73321 +:10DE500000000000000000000000000000000000C2
73322 +:10DE600000000000000000000000000000000000B2
73323 +:10DE700000000000000000000000000000000000A2
73324 +:10DE80000000000000000000000000000000000092
73325 +:10DE90000000000000000000000000000000000082
73326 +:10DEA0000000000000000000000000000000000072
73327 +:10DEB0000000000000000000000000000000000062
73328 +:10DEC0000000000000000000000000000000000052
73329 +:10DED0000000000000000000000000000000000042
73330 +:10DEE0000000000000000000000000000000000032
73331 +:10DEF0000000000000000000000000000000000022
73332 +:10DF00000000000000000000000000000000000011
73333 +:10DF10000000000000000000000000000000000001
73334 +:10DF200000000000000000000000000000000000F1
73335 +:10DF300000000000000000000000000000000000E1
73336 +:10DF400000000000000000000000000000000000D1
73337 +:10DF500000000000000000000000000000000000C1
73338 +:10DF600000000000000000000000000000000000B1
73339 +:10DF700000000000000000000000000000000000A1
73340 +:10DF80000000000000000000000000000000000091
73341 +:10DF90000000000000000000000000000000000081
73342 +:10DFA0000000000000000000000000000000000071
73343 +:10DFB0000000000000000000000000000000000061
73344 +:10DFC0000000000000000000000000000000000051
73345 +:10DFD0000000000000000000000000000000000041
73346 +:10DFE0000000000000000000000000000000000031
73347 +:10DFF0000000000000000000000000000000000021
73348 +:10E000000000000000000000000000000000000010
73349 +:10E010000000000000000000000000000000000000
73350 +:10E0200000000000000000000000000000000000F0
73351 +:10E0300000000000000000000000000000000000E0
73352 +:10E0400000000000000000000000000000000000D0
73353 +:10E0500000000000000000000000000000000000C0
73354 +:10E0600000000000000000000000000000000000B0
73355 +:10E0700000000000000000000000000000000000A0
73356 +:10E080000000000000000000000000000000000090
73357 +:10E090000000000000000000000000000000000080
73358 +:10E0A0000000000000000000000000000000000070
73359 +:10E0B0000000000000000000000000000000000060
73360 +:10E0C0000000000000000000000000000000000050
73361 +:10E0D0000000000000000000000000000000000040
73362 +:10E0E0000000000000000000000000000000000030
73363 +:10E0F0000000000000000000000000000000000020
73364 +:10E10000000000000000000000000000000000000F
73365 +:10E1100000000000000000000000000000000000FF
73366 +:10E1200000000000000000000000000000000000EF
73367 +:10E1300000000000000000000000000000000000DF
73368 +:10E1400000000000000000000000000000000000CF
73369 +:10E1500000000000000000000000000000000000BF
73370 +:10E1600000000000000000000000000000000000AF
73371 +:10E17000000000000000000000000000000000009F
73372 +:10E18000000000000000000000000000000000008F
73373 +:10E19000000000000000000000000000000000007F
73374 +:10E1A000000000000000000000000000000000006F
73375 +:10E1B000000000000000000000000000000000005F
73376 +:10E1C000000000000000000000000000000000004F
73377 +:10E1D000000000000000000000000000000000003F
73378 +:10E1E000000000000000000000000000000000002F
73379 +:10E1F000000000000000000000000000000000809F
73380 +:10E20000000000000000000000000000000000000E
73381 +:10E2100000000000000000000000000000000000FE
73382 +:10E220000000000A000000000000000000000000E4
73383 +:10E2300010000003000000000000000D0000000DB1
73384 +:10E240003C020801244295C03C030801246397FC6A
73385 +:10E25000AC4000000043202B1480FFFD244200044A
73386 +:10E260003C1D080037BD9FFC03A0F0213C100800B6
73387 +:10E27000261032103C1C0801279C95C00E0012BECF
73388 +:10E28000000000000000000D3C02800030A5FFFFF0
73389 +:10E2900030C600FF344301803C0880008D0901B87E
73390 +:10E2A0000520FFFE00000000AC6400002404000212
73391 +:10E2B000A4650008A066000AA064000BAC67001803
73392 +:10E2C0003C03100003E00008AD0301B83C0560000A
73393 +:10E2D0008CA24FF80440FFFE00000000ACA44FC029
73394 +:10E2E0003C0310003C040200ACA44FC403E000084F
73395 +:10E2F000ACA34FF89486000C00A050212488001491
73396 +:10E3000000062B0200051080004448210109182B4B
73397 +:10E310001060001100000000910300002C6400094F
73398 +:10E320005080000991190001000360803C0D080134
73399 +:10E3300025AD9258018D58218D67000000E000083E
73400 +:10E340000000000091190001011940210109302B42
73401 +:10E3500054C0FFF29103000003E000080000102108
73402 +:10E360000A000CCC25080001910F0001240E000AC0
73403 +:10E3700015EE00400128C8232F38000A1700003D81
73404 +:10E38000250D00028D580000250F0006370E0100F4
73405 +:10E39000AD4E0000910C000291AB000191A400026F
73406 +:10E3A00091A60003000C2E00000B3C0000A71025D6
73407 +:10E3B00000041A000043C8250326C025AD580004F8
73408 +:10E3C000910E000691ED000191E7000291E5000336
73409 +:10E3D000000E5E00000D6400016C30250007220075
73410 +:10E3E00000C41025004518252508000A0A000CCC99
73411 +:10E3F000AD430008910F000125040002240800022B
73412 +:10E4000055E80001012020210A000CCC00804021A9
73413 +:10E41000910C0001240B0003158B00160000000076
73414 +:10E420008D580000910E000225080003370D0008EA
73415 +:10E43000A14E00100A000CCCAD4D00009119000156
73416 +:10E44000240F0004172F000B0000000091070002AA
73417 +:10E45000910400038D43000000072A0000A410254A
73418 +:10E460003466000425080004AD42000C0A000CCC00
73419 +:10E47000AD46000003E000082402000127BDFFE8CC
73420 +:10E48000AFBF0014AFB000100E00164E0080802108
73421 +:10E490003C0480083485008090A600052403FFFE1C
73422 +:10E4A0000200202100C310248FBF00148FB0001081
73423 +:10E4B000A0A200050A00165827BD001827BDFFE8D6
73424 +:10E4C000AFB00010AFBF00140E000FD40080802149
73425 +:10E4D0003C06800834C5008090A40000240200504F
73426 +:10E4E000308300FF106200073C09800002002021F9
73427 +:10E4F0008FBF00148FB00010AD2001800A00108F74
73428 +:10E5000027BD0018240801003C07800002002021DC
73429 +:10E510008FBF00148FB00010ACE801800A00108F8C
73430 +:10E5200027BD001827BDFF783C058008AFBE0080DE
73431 +:10E53000AFB7007CAFB3006CAFB10064AFBF008475
73432 +:10E54000AFB60078AFB50074AFB40070AFB200687A
73433 +:10E55000AFB0006034A600803C0580008CB201287A
73434 +:10E5600090C400098CA701043C020001309100FF17
73435 +:10E5700000E218240000B8210000F021106000071C
73436 +:10E58000000098213C0908008D2931F02413000176
73437 +:10E59000252800013C010800AC2831F0ACA0008423
73438 +:10E5A00090CC0005000C5827316A0001154000721C
73439 +:10E5B000AFA0005090CD00002406002031A400FF41
73440 +:10E5C00010860018240E0050108E009300000000EA
73441 +:10E5D0003C1008008E1000DC260F00013C010800F2
73442 +:10E5E000AC2F00DC0E0016C7000000000040182110
73443 +:10E5F0008FBF00848FBE00808FB7007C8FB60078FD
73444 +:10E600008FB500748FB400708FB3006C8FB2006848
73445 +:10E610008FB100648FB000600060102103E000083B
73446 +:10E6200027BD00880000000D3C1F8000AFA0003017
73447 +:10E6300097E501168FE201043C04002030B9FFFF8A
73448 +:10E64000004438240007182B00033140AFA60030E7
73449 +:10E650008FF5010437F80C003C1600400338802188
73450 +:10E6600002B6A02434C40040128000479215000D69
73451 +:10E6700032A800201500000234860080008030217E
73452 +:10E6800014C0009FAFA600303C0D800835A6008066
73453 +:10E6900090CC0008318B0040516000063C06800899
73454 +:10E6A000240E0004122E00A8240F0012122F003294
73455 +:10E6B0003C06800834C401003C0280009447011AE3
73456 +:10E6C0009619000E909F00088E18000830E3FFFF97
73457 +:10E6D00003F9B00432B40004AFB6005CAFA3005835
73458 +:10E6E0008E1600041280002EAFB8005434C3008090
73459 +:10E6F000906800083105004014A0002500000000CB
73460 +:10E700008C70005002D090230640000500000000ED
73461 +:10E710008C71003402D1A82306A201678EE20008A2
73462 +:10E72000126000063C1280003C1508008EB531F4E2
73463 +:10E7300026B600013C010800AC3631F4AE4000447E
73464 +:10E74000240300018FBF00848FBE00808FB7007C40
73465 +:10E750008FB600788FB500748FB400708FB3006CE3
73466 +:10E760008FB200688FB100648FB00060006010212C
73467 +:10E7700003E0000827BD00880E000D2800002021BE
73468 +:10E780000A000D75004018210A000D9500C02021D7
73469 +:10E790000E00171702C020211440FFE10000000006
73470 +:10E7A0003C0B8008356400808C8A003402CA482300
73471 +:10E7B0000520001D000000003C1E08008FDE310017
73472 +:10E7C00027D700013C010800AC3731001260000679
73473 +:10E7D000024020213C1408008E9431F42690000160
73474 +:10E7E0003C010800AC3031F40E00164E3C1E80088F
73475 +:10E7F00037CD008091B700250240202136EE00047D
73476 +:10E800000E001658A1AE00250E000CAC02402021CF
73477 +:10E810000A000DCA240300013C17080126F796C020
73478 +:10E820000A000D843C1F80008C86003002C66023E5
73479 +:10E830001980000C2419000C908F004F3C14080024
73480 +:10E840008E94310032B500FC35ED0001268E0001BA
73481 +:10E850003C010800AC2E3100A08D004FAFA0005845
73482 +:10E860002419000CAFB900308C9800300316A02397
73483 +:10E870001A80010B8FA300580074F82A17E0FFD309
73484 +:10E88000000000001074002A8FA5005802D4B021A7
73485 +:10E8900000B410233044FFFFAFA4005832A8000298
73486 +:10E8A0001100002E32AB00103C15800836B00080FD
73487 +:10E8B0009216000832D30040526000FB8EE200083E
73488 +:10E8C0000E00164E02402021240A0018A20A000958
73489 +:10E8D000921100052409FFFE024020210229902404
73490 +:10E8E0000E001658A2120005240400390000282149
73491 +:10E8F0000E0016F2240600180A000DCA24030001B7
73492 +:10E9000092FE000C3C0A800835490080001EBB00C6
73493 +:10E910008D27003836F10081024020213225F08118
73494 +:10E920000E000C9B30C600FF0A000DC10000000065
73495 +:10E930003AA7000130E300011460FFA402D4B02123
73496 +:10E940000A000E1D00000000024020210E001734B6
73497 +:10E95000020028210A000D75004018211160FF7087
73498 +:10E960003C0F80083C0D800835EE00808DC40038D7
73499 +:10E970008FA300548DA60004006660231D80FF68ED
73500 +:10E98000000000000064C02307020001AFA400548F
73501 +:10E990003C1F08008FFF31E433F9000113200015FC
73502 +:10E9A0008FAC00583C07800094E3011A10600012FD
73503 +:10E9B0003C0680080E00216A024020213C03080129
73504 +:10E9C000906396F13064000214800145000000005D
73505 +:10E9D000306C0004118000078FAC0058306600FBDB
73506 +:10E9E0003C010801A02696F132B500FCAFA000580A
73507 +:10E9F0008FAC00583C06800834D30080AFB40018B8
73508 +:10EA0000AFB60010AFAC00143C088000950B01209D
73509 +:10EA10008E6F0030966A005C8FA3005C8FBF003061
73510 +:10EA20003169FFFF3144FFFF8FAE005401341021E4
73511 +:10EA3000350540000064382B0045C82103E7C02598
73512 +:10EA4000AFB90020AFAF0028AFB80030AFAF00249F
73513 +:10EA5000AFA0002CAFAE0034926D000831B40008B6
73514 +:10EA6000168000BB020020218EE200040040F8095D
73515 +:10EA700027A400108FAF003031F300025660000170
73516 +:10EA800032B500FE3C048008349F008093F90008F2
73517 +:10EA900033380040530000138FA400248C850004F9
73518 +:10EAA0008FA7005410A700D52404001432B0000131
73519 +:10EAB0001200000C8FA400242414000C1234011A3C
73520 +:10EAC0002A2D000D11A001022413000E240E000AAD
73521 +:10EAD000522E0001241E00088FAF002425E40001FF
73522 +:10EAE000AFA400248FAA00143C0B80083565008079
73523 +:10EAF000008A48218CB10030ACA9003090A4004EAF
73524 +:10EB00008CA700303408FFFF0088180400E3F821C8
73525 +:10EB1000ACBF00348FA600308FB900548FB8005CB2
73526 +:10EB200030C200081040000B033898218CAC002044
73527 +:10EB3000119300D330C600FF92EE000C8FA7003473
73528 +:10EB400002402021000E6B0035B400800E000C9BAB
73529 +:10EB50003285F0803C028008345000808E0F0030F7
73530 +:10EB600001F1302318C00097264800803C070800B8
73531 +:10EB70008CE731E42404FF80010418243118007F5D
73532 +:10EB80003C1F80003C19800430F10001AFE300908D
73533 +:10EB900012200006031928213C030801906396F116
73534 +:10EBA00030690008152000C6306A00F73C10800864
73535 +:10EBB00036040080908C004F318B000115600042BC
73536 +:10EBC000000000003C0608008CC6319830CE0010D2
73537 +:10EBD00051C0004230F9000190AF006B55E0003F9A
73538 +:10EBE00030F9000124180001A0B8006B3C1180002E
73539 +:10EBF0009622007A24470064A48700123C0D800806
73540 +:10EC000035A5008090B40008329000401600000442
73541 +:10EC10003C03800832AE000115C0008B00000000EC
73542 +:10EC2000346400808C86002010D3000A3463010015
73543 +:10EC30008C67000002C7782319E000978FBF00544B
73544 +:10EC4000AC93002024130001AC760000AFB3005059
73545 +:10EC5000AC7F000417C0004E000000008FA90050D8
73546 +:10EC60001520000B000000003C030801906396F1A2
73547 +:10EC7000306A00011140002E8FAB0058306400FE56
73548 +:10EC80003C010801A02496F10A000D75000018212E
73549 +:10EC90000E000CAC024020210A000F1300000000FF
73550 +:10ECA0000A000E200000A0210040F80924040017EB
73551 +:10ECB0000A000DCA240300010040F80924040016CC
73552 +:10ECC0000A000DCA240300019094004F240DFFFE9A
73553 +:10ECD000028D2824A085004F30F900011320000682
73554 +:10ECE0003C0480083C030801906396F1307F0010DB
73555 +:10ECF00017E00051306800EF34900080240A0001D2
73556 +:10ED0000024020210E00164EA60A00129203002592
73557 +:10ED100024090001AFA90050346200010240202103
73558 +:10ED20000E001658A20200250A000EF93C0D8008BC
73559 +:10ED30001160FE83000018218FA5003030AC000464
73560 +:10ED40001180FE2C8FBF00840A000DCB240300012C
73561 +:10ED500027A500380E000CB6AFA000385440FF4382
73562 +:10ED60008EE200048FB40038329001005200FF3F61
73563 +:10ED70008EE200048FA3003C8E6E0058006E682364
73564 +:10ED800005A3FF39AE6300580A000E948EE200041A
73565 +:10ED90000E00164E024020213C038008346800809B
73566 +:10EDA000024020210E001658A11E000903C0302188
73567 +:10EDB000240400370E0016F2000028210A000F116B
73568 +:10EDC0008FA900508FAB00185960FF8D3C0D800853
73569 +:10EDD0000E00164E02402021920C00252405000151
73570 +:10EDE000AFA5005035820004024020210E001658C5
73571 +:10EDF000A20200250A000EF93C0D800812240059D9
73572 +:10EE00002A2300151060004D240900162408000C68
73573 +:10EE10005628FF2732B000013C0A8008914C001BA5
73574 +:10EE20002406FFBD241E000E01865824A14B001BA2
73575 +:10EE30000A000EA532B000013C010801A02896F19D
73576 +:10EE40000A000EF93C0D80088CB500308EFE0008DB
73577 +:10EE50002404001826B6000103C0F809ACB600303F
73578 +:10EE60003C030801906396F13077000116E0FF81C2
73579 +:10EE7000306A00018FB200300A000D753243000481
73580 +:10EE80003C1080009605011A50A0FF2B34C60010DC
73581 +:10EE90000A000EC892EE000C8C6200001456FF6D42
73582 +:10EEA000000000008C7800048FB9005403388823D8
73583 +:10EEB0000621FF638FBF00540A000F0E0000000000
73584 +:10EEC0003C010801A02A96F10A000F3030F9000138
73585 +:10EED0001633FF028FAF00240A000EB0241E00106C
73586 +:10EEE0000E00164E024020213C0B80083568008041
73587 +:10EEF00091090025240A0001AFAA0050353300040F
73588 +:10EF0000024020210E001658A11300253C050801DF
73589 +:10EF100090A596F130A200FD3C010801A02296F1D7
73590 +:10EF20000A000E6D004018212411000E53D1FEEA94
73591 +:10EF3000241E00100A000EAF241E00165629FEDC07
73592 +:10EF400032B000013C0A8008914C001B2406FFBD32
73593 +:10EF5000241E001001865824A14B001B0A000EA598
73594 +:10EF600032B000010A000EA4241E00123C038000EF
73595 +:10EF70008C6201B80440FFFE24040800AC6401B8B0
73596 +:10EF800003E000080000000030A5FFFF30C6FFFFCF
73597 +:10EF90003C0780008CE201B80440FFFE34EA0180A7
73598 +:10EFA000AD440000ACE400203C0480089483004899
73599 +:10EFB0003068FFFF11000016AF88000824AB001274
73600 +:10EFC000010B482B512000133C04800034EF01005A
73601 +:10EFD00095EE00208F890000240D001A31CCFFFF30
73602 +:10EFE00031274000A14D000B10E000362583FFFEC5
73603 +:10EFF0000103C02B170000348F9900048F88000490
73604 +:10F00000A5430014350700010A001003AF87000470
73605 +:10F010003C04800024030003348201808F890000B7
73606 +:10F020008F870004A043000B3C088000350C018052
73607 +:10F03000A585000EA585001A8F85000C30EB800099
73608 +:10F04000A5890010AD850028A58600081160000F75
73609 +:10F050008F85001435190100972A00163158FFFCDE
73610 +:10F06000270F000401E870218DCD400031A6FFFF7D
73611 +:10F0700014C000072403BFFF3C02FFFF34487FFF9A
73612 +:10F0800000E83824AF8700048F8500142403BFFFF5
73613 +:10F090003C04800000E3582434830180A46B0026E4
73614 +:10F0A000AC69002C10A0000300054C02A465001000
73615 +:10F0B000A46900263C071000AC8701B803E00008F3
73616 +:10F0C000000000008F990004240AFFFE032A382460
73617 +:10F0D0000A001003AF87000427BDFFE88FA20028B5
73618 +:10F0E00030A5FFFF30C6FFFFAFBF0010AF87000C99
73619 +:10F0F000AF820014AF8000040E000FDBAF80000071
73620 +:10F100008FBF001027BD001803E00008AF80001477
73621 +:10F110003C06800034C4007034C701008C8A0000B3
73622 +:10F1200090E500128F84000027BDFFF030A300FFA0
73623 +:10F13000000318823082400010400037246500032D
73624 +:10F140000005C8800326C0218F0E4000246F0004F4
73625 +:10F15000000F6880AFAE000001A660218D8B4000DB
73626 +:10F16000AFAB000494E900163128FFFC01063821FA
73627 +:10F170008CE64000AFA600088FA9000800003021EF
73628 +:10F18000000028213C07080024E701000A0010675E
73629 +:10F19000240800089059000024A500012CAC000CA4
73630 +:10F1A0000079C0210018788001E770218DCD000022
73631 +:10F1B0001180000600CD302603A5102114A8FFF50C
73632 +:10F1C00000051A005520FFF4905900003C0480000F
73633 +:10F1D000348700703C0508008CA531048CE30000E6
73634 +:10F1E0002CA2002010400009006A38230005488046
73635 +:10F1F0003C0B0800256B3108012B402124AA00019B
73636 +:10F20000AD0700003C010800AC2A310400C0102109
73637 +:10F2100003E0000827BD0010308220001040000BE2
73638 +:10F2200000055880016648218D24400024680004B0
73639 +:10F2300000083880AFA4000000E618218C6540006B
73640 +:10F24000AFA000080A001057AFA500040000000D91
73641 +:10F250000A0010588FA9000827BDFFE03C07800076
73642 +:10F2600034E60100AFBF001CAFB20018AFB100140C
73643 +:10F27000AFB0001094C5000E8F87000030A4FFFFD0
73644 +:10F280002483000430E2400010400010AF830028C7
73645 +:10F290003C09002000E940241100000D30EC800002
73646 +:10F2A0008F8A0004240BBFFF00EB38243543100085
73647 +:10F2B000AF87000030F220001640000B3C1900041C
73648 +:10F2C000241FFFBF0A0010B7007F102430EC80001D
73649 +:10F2D000158000423C0E002030F220001240FFF862
73650 +:10F2E0008F8300043C19000400F9C0241300FFF5CB
73651 +:10F2F000241FFFBF34620040AF82000430E20100EF
73652 +:10F300001040001130F010008F83002C10600006B8
73653 +:10F310003C0F80003C05002000E52024148000C044
73654 +:10F320003C0800043C0F800035EE010095CD001E26
73655 +:10F3300095CC001C31AAFFFF000C5C00014B482556
73656 +:10F34000AF89000C30F010001200000824110001F9
73657 +:10F3500030F100201620008B3C18100000F890249B
73658 +:10F36000164000823C040C002411000130E801002A
73659 +:10F370001500000B3C0900018F85000430A94000F6
73660 +:10F38000152000073C0900013C0C1F0100EC58242B
73661 +:10F390003C0A1000116A01183C1080003C09000171
73662 +:10F3A00000E9302410C000173C0B10003C18080086
73663 +:10F3B0008F1800243307000214E0014024030001E9
73664 +:10F3C0008FBF001C8FB200188FB100148FB00010D7
73665 +:10F3D0000060102103E0000827BD002000EE682433
73666 +:10F3E00011A0FFBE30F220008F8F00043C11FFFF00
73667 +:10F3F00036307FFF00F0382435E380000A0010A685
73668 +:10F40000AF87000000EB102450400065AF8000245F
73669 +:10F410008F8C002C3C0D0F0000ED18241580008807
73670 +:10F42000AF83001030E8010011000086938F0010B8
73671 +:10F430003C0A0200106A00833C1280003650010032
73672 +:10F44000920500139789002A3626000230AF00FF8C
73673 +:10F4500025EE0004000E19C03C0480008C9801B811
73674 +:10F460000700FFFE34880180AD0300003C198008CE
73675 +:10F47000AC830020973100483225FFFF10A0015CCB
73676 +:10F48000AF8500082523001200A3F82B53E0015993
73677 +:10F490008F850004348D010095AC00202402001AF1
73678 +:10F4A00030E44000318BFFFFA102000B108001927D
73679 +:10F4B0002563FFFE00A3502B154001908F8F0004A1
73680 +:10F4C000A50300148F88000435050001AF850004F2
73681 +:10F4D0003C08800035190180A729000EA729001AD1
73682 +:10F4E0008F89000C30B18000A7270010AF290028B9
73683 +:10F4F000A72600081220000E3C04800035020100FF
73684 +:10F50000944C0016318BFFFC256400040088182100
73685 +:10F510008C7F400033E6FFFF14C000053C048000F0
73686 +:10F520003C0AFFFF354D7FFF00AD2824AF85000466
73687 +:10F53000240EBFFF00AE402434850180A4A800261D
73688 +:10F54000ACA7002C3C071000AC8701B800001821C4
73689 +:10F550008FBF001C8FB200188FB100148FB0001045
73690 +:10F560000060102103E0000827BD00203C020BFFD3
73691 +:10F5700000E41824345FFFFF03E3C82B5320FF7B14
73692 +:10F58000241100013C0608008CC6002C24C5000193
73693 +:10F590003C010800AC25002C0A0010D42411000501
73694 +:10F5A0008F85002410A0002FAF80001090A30000D2
73695 +:10F5B000146000792419000310A0002A30E601002D
73696 +:10F5C00010C000CC8F860010241F000210DF00C97D
73697 +:10F5D0008F8B000C3C0708008CE7003824E4FFFF09
73698 +:10F5E00014E0000201641824000018213C0D0800FA
73699 +:10F5F00025AD0038006D1021904C00048F85002847
73700 +:10F6000025830004000321C030A5FFFF3626000239
73701 +:10F610000E000FDB000000000A00114D0000182151
73702 +:10F6200000E8302414C0FF403C0F80000E00103D65
73703 +:10F63000000000008F8700000A0010CAAF82000C93
73704 +:10F64000938F00103C18080127189640000F90C0B7
73705 +:10F6500002588021AF9000248F85002414A0FFD38E
73706 +:10F66000AF8F00103C0480008C86400030C5010044
73707 +:10F6700010A000BC322300043C0C08008D8C002438
73708 +:10F6800024120004106000C23190000D3C04800080
73709 +:10F690008C8D40003402FFFF11A201003231FFFBCC
73710 +:10F6A0008C884000310A01005540000124110010EF
73711 +:10F6B00030EE080011C000BE2419FFFB8F9800280F
73712 +:10F6C0002F0F03EF51E000010219802430E90100FF
73713 +:10F6D00011200014320800018F87002C14E000FB79
73714 +:10F6E0008F8C000C3C05800034AB0100917F00132F
73715 +:10F6F00033E300FF246A00042403FFFE0203802496
73716 +:10F70000000A21C012000002023230253226FFFF1B
73717 +:10F710000E000FDB9785002A1200FF290000182138
73718 +:10F72000320800011100000D32180004240E0001FF
73719 +:10F73000120E0002023230253226FFFF9785002A82
73720 +:10F740000E000FDB00002021240FFFFE020F80249B
73721 +:10F750001200FF1B00001821321800045300FF188C
73722 +:10F760002403000102323025241200045612000145
73723 +:10F770003226FFFF9785002A0E000FDB24040100CC
73724 +:10F780002419FFFB021988241220FF0D0000182104
73725 +:10F790000A0010E9240300011079009C00003021C8
73726 +:10F7A00090AD00012402000211A200BE30EA004028
73727 +:10F7B00090B90001241800011338007F30E900409F
73728 +:10F7C0008CA600049785002A00C020210E000FDBC4
73729 +:10F7D0003626000200004021010018218FBF001CC6
73730 +:10F7E0008FB200188FB100148FB00010006010218C
73731 +:10F7F00003E0000827BD0020360F010095EE000C45
73732 +:10F8000031CD020015A0FEE63C0900013C1880083D
73733 +:10F81000971200489789002A362600023248FFFFD7
73734 +:10F82000AF8800083C0380008C7101B80620FFFE01
73735 +:10F83000346A0180AD4000001100008E3C0F800052
73736 +:10F84000253F0012011FC82B1320008B240E00033C
73737 +:10F85000346C0100958B00202402001A30E4400033
73738 +:10F860003163FFFFA142000B108000A72463FFFE5D
73739 +:10F870000103682B15A000A52408FFFE34A5000194
73740 +:10F88000A5430014AF8500043C0480002412BFFF90
73741 +:10F8900000B2802434850180A4A9000EA4A9001A16
73742 +:10F8A000A4A60008A4B00026A4A700103C071000DE
73743 +:10F8B000AC8701B80A00114D000018213C038000FC
73744 +:10F8C00034640100949F000E3C1908008F3900D861
73745 +:10F8D0002404008033E5FFFF273100013C010800CC
73746 +:10F8E000AC3100D80E000FDB240600030A00114DD6
73747 +:10F8F00000001821240A000210CA00598F85002830
73748 +:10F900003C0308008C6300D0240E0001106E005EE2
73749 +:10F910002CCF000C24D2FFFC2E5000041600002136
73750 +:10F9200000002021241800021078001B2CD9000CA4
73751 +:10F9300024DFFFF82FE900041520FF330000202109
73752 +:10F9400030EB020051600004000621C054C00022C8
73753 +:10F9500030A5FFFF000621C030A5FFFF0A00117D82
73754 +:10F96000362600023C0908008D29002431300001B0
73755 +:10F970005200FEF7000018219785002A3626000263
73756 +:10F980000E000FDB000020210A00114D000018219D
73757 +:10F990000A00119C241200021320FFE624DFFFF866
73758 +:10F9A0000000202130A5FFFF0A00117D362600024D
73759 +:10F9B0000A0011AC021980245120FF828CA6000499
73760 +:10F9C0003C05080190A5964110A0FF7E2408000187
73761 +:10F9D0000A0011F0010018210E000FDB3226000191
73762 +:10F9E0008F8600108F8500280A00124F000621C064
73763 +:10F9F0008F8500043C18800024120003371001801A
73764 +:10FA0000A212000B0A00112E3C08800090A30001F6
73765 +:10FA1000241100011071FF70240800012409000264
73766 +:10FA20005069000430E60040240800010A0011F08B
73767 +:10FA30000100182150C0FFFD240800013C0C80008B
73768 +:10FA4000358B01009563001094A40002307FFFFF06
73769 +:10FA5000509FFF62010018210A001284240800014F
73770 +:10FA60002CA803EF1100FE56240300010A001239EE
73771 +:10FA700000000000240E000335EA0180A14E000BB7
73772 +:10FA80000A00121C3C04800011E0FFA2000621C005
73773 +:10FA900030A5FFFF0A00117D362600020A0011A5DD
73774 +:10FAA000241100201140FFC63C1280003650010096
73775 +:10FAB000960F001094AE000231E80FFF15C8FFC08A
73776 +:10FAC000000000000A0011E690B900013C060800A1
73777 +:10FAD0008CC6003824C4FFFF14C00002018418241F
73778 +:10FAE000000018213C0D080025AD0038006D1021E4
73779 +:10FAF0000A0011B6904300048F8F0004240EFFFE0D
73780 +:10FB00000A00112C01EE28242408FFFE0A00121A14
73781 +:10FB100000A8282427BDFFC8AFB00010AFBF003435
73782 +:10FB20003C10600CAFBE0030AFB7002CAFB6002861
73783 +:10FB3000AFB50024AFB40020AFB3001CAFB20018C3
73784 +:10FB4000AFB100148E0E5000240FFF7F3C068000E2
73785 +:10FB500001CF682435AC380C240B0003AE0C5000E8
73786 +:10FB6000ACCB00083C010800AC2000200E001819A6
73787 +:10FB7000000000003C0A0010354980513C06601628
73788 +:10FB8000AE09537C8CC700003C0860148D0500A0B2
73789 +:10FB90003C03FFFF00E320243C02535300051FC237
73790 +:10FBA0001482000634C57C000003A08002869821E0
73791 +:10FBB0008E7200043C116000025128218CBF007C31
73792 +:10FBC0008CA200783C1E600037C420203C05080150
73793 +:10FBD00024A59288AF820018AF9F001C0E0016DD8E
73794 +:10FBE0002406000A3C190001273996403C01080010
73795 +:10FBF000AC3931DC0E0020DDAF8000148FD708084F
73796 +:10FC00002418FFF03C15570902F8B02412D502F56C
73797 +:10FC100024040001AF80002C3C1480003697018042
73798 +:10FC20003C1E080127DE9644369301008E900000AA
73799 +:10FC30003205000310A0FFFD3207000110E000882C
73800 +:10FC4000320600028E7100283C048000AE91002034
73801 +:10FC50008E6500048E66000000A0382100C040219F
73802 +:10FC60008C8301B80460FFFE3C0B0010240A0800DE
73803 +:10FC700000AB4824AC8A01B8552000E0240BBFFF3C
73804 +:10FC80009675000E3C1208008E52002030AC4000E9
73805 +:10FC900032AFFFFF264E000125ED00043C010800B5
73806 +:10FCA000AC2E0020118000E8AF8D00283C18002009
73807 +:10FCB00000B8B02412C000E530B980002408BFFFAE
73808 +:10FCC00000A8382434C81000AF87000030E62000B8
73809 +:10FCD00010C000E92409FFBF3C03000400E328240E
73810 +:10FCE00010A00002010910243502004030EA010092
73811 +:10FCF00011400010AF8200048F8B002C11600007B0
73812 +:10FD00003C0D002000ED6024118000043C0F000435
73813 +:10FD100000EF702411C00239000000009668001E38
73814 +:10FD20009678001C3115FFFF0018B40002B690252C
73815 +:10FD3000AF92000C30F910001320001324150001BD
73816 +:10FD400030FF002017E0000A3C04100000E41024FB
73817 +:10FD50001040000D3C0A0C003C090BFF00EA18247F
73818 +:10FD60003525FFFF00A3302B10C0000830ED010047
73819 +:10FD70003C0C08008D8C002C24150005258B0001FF
73820 +:10FD80003C010800AC2B002C30ED010015A0000B4D
73821 +:10FD90003C0500018F85000430AE400055C00007CF
73822 +:10FDA0003C0500013C161F0100F690243C0F10009A
73823 +:10FDB000124F01CE000000003C05000100E5302498
73824 +:10FDC00010C000AF3C0C10003C1F08008FFF002447
73825 +:10FDD00033E90002152000712403000100601021A6
73826 +:10FDE000104000083C0680003C08800035180100E7
73827 +:10FDF0008F0F00243C056020ACAF00140000000011
73828 +:10FE00003C0680003C194000ACD9013800000000DD
73829 +:10FE10005220001332060002262B0140262C0080BF
73830 +:10FE2000240EFF80016E2024018E6824000D1940ED
73831 +:10FE3000318A007F0004A9403172007F3C16200007
73832 +:10FE400036C20002006A482502B2382500E2882541
73833 +:10FE50000122F825ACDF0830ACD1083032060002B0
73834 +:10FE600010C0FF723C188000370501408CA80000CC
73835 +:10FE700024100040AF08002090AF000831E300706C
73836 +:10FE8000107000D428790041532000082405006038
73837 +:10FE9000241100201071000E3C0A40003C09800033
73838 +:10FEA000AD2A01780A001304000000001465FFFB6E
73839 +:10FEB0003C0A40000E001FFA000000003C0A40000F
73840 +:10FEC0003C098000AD2A01780A00130400000000FC
73841 +:10FED00090A90009241F00048CA70000312800FF0E
73842 +:10FEE000111F01B22503FFFA2C7200061240001404
73843 +:10FEF0003C0680008CA9000494A4000A310500FF90
73844 +:10FF000000095E022D6A00083086FFFF15400002DE
73845 +:10FF10002567000424070003240C000910AC01FA33
73846 +:10FF200028AD000A11A001DE2410000A240E0008EA
73847 +:10FF300010AE0028000731C000C038213C06800008
73848 +:10FF40008CD501B806A0FFFE34D20180AE47000078
73849 +:10FF500034CB0140916E0008240300023C0A4000AB
73850 +:10FF600031C400FF00046A0001A86025A64C000807
73851 +:10FF7000A243000B9562000A3C0810003C09800077
73852 +:10FF8000A64200108D670004AE470024ACC801B83B
73853 +:10FF9000AD2A01780A001304000000003C0A80002A
73854 +:10FFA000354401009483000E3C0208008C4200D8C6
73855 +:10FFB000240400803065FFFF245500013C01080047
73856 +:10FFC000AC3500D80E000FDB240600030A001370C6
73857 +:10FFD000000018210009320230D900FF2418000166
73858 +:10FFE0001738FFD5000731C08F910020262200016D
73859 +:10FFF000AF8200200A0013C800C0382100CB2024A3
73860 +:020000021000EC
73861 +:10000000AF85000010800008AF860004240D87FF34
73862 +:1000100000CD6024158000083C0E006000AE302446
73863 +:1000200010C00005000000000E000D42000000009E
73864 +:100030000A001371000000000E0016050000000009
73865 +:100040000A0013710000000030B980005320FF1F28
73866 +:10005000AF8500003C02002000A2F82453E0FF1B03
73867 +:10006000AF8500003C07FFFF34E47FFF00A4382485
73868 +:100070000A00132B34C880000A001334010910242D
73869 +:1000800000EC58245160005AAF8000248F8D002C62
73870 +:100090003C0E0F0000EE182415A00075AF83001071
73871 +:1000A00030EF010011E00073939800103C12020041
73872 +:1000B000107200703C06800034D9010093280013B0
73873 +:1000C0009789002A36A60002311800FF271600047F
73874 +:1000D000001619C03C0480008C8501B804A0FFFE06
73875 +:1000E00034880180AD0300003C158008AC830020FB
73876 +:1000F00096BF004833E5FFFF10A001BCAF850008A4
73877 +:100100002523001200A3102B504001B98F85000455
73878 +:10011000348D010095AC0020240B001A30E440001F
73879 +:10012000318AFFFFA10B000B108001BA2543FFFEAF
73880 +:1001300000A3702B15C001B88F9600048F8F0004A8
73881 +:10014000A503001435E50001AF8500043C088000DC
73882 +:1001500035150180A6A9000EA6A9001A8F89000CEA
73883 +:1001600030BF8000A6A70010AEA90028A6A60008F0
73884 +:1001700013E0000F3C0F8000350C0100958B00163A
73885 +:10018000316AFFFC25440004008818218C6240007D
73886 +:100190003046FFFF14C000072416BFFF3C0EFFFFD0
73887 +:1001A00035CD7FFF00AD2824AF8500043C0F8000D3
73888 +:1001B0002416BFFF00B6902435E50180A4B20026C6
73889 +:1001C000ACA7002C3C071000ADE701B80A00137083
73890 +:1001D000000018210E00165D000000003C0A4000DF
73891 +:1001E0003C098000AD2A01780A00130400000000D9
73892 +:1001F0008F85002410A00027AF80001090A300007E
73893 +:10020000106000742409000310690101000030210E
73894 +:1002100090AE0001240D000211CD014230EF0040EC
73895 +:1002200090A90001241F0001113F000930E20040A5
73896 +:100230008CA600049785002A00C020210E000FDB49
73897 +:1002400036A60002000040210A00137001001821A8
73898 +:100250005040FFF88CA600043C07080190E7964147
73899 +:1002600010E0FFF4240800010A00137001001821B7
73900 +:10027000939800103C1F080127FF96400018C8C043
73901 +:10028000033F4021AF8800248F85002414A0FFDBAA
73902 +:10029000AF9800103C0480008C86400030C50100FF
73903 +:1002A00010A0008732AB00043C0C08008D8C0024A9
73904 +:1002B00024160004156000033192000D241600027C
73905 +:1002C0003C0480008C8E4000340DFFFF11CD0113E3
73906 +:1002D00032B5FFFB8C984000330F010055E0000160
73907 +:1002E0002415001030E80800110000382409FFFB35
73908 +:1002F0008F9F00282FF903EF53200001024990241B
73909 +:1003000030E2010010400014325F00018F87002CA2
73910 +:1003100014E0010E8F8C000C3C0480003486010038
73911 +:1003200090C5001330AA00FF25430004000321C03C
73912 +:100330002419FFFE025990241240000202B6302513
73913 +:1003400032A6FFFF0E000FDB9785002A1240FEA3A6
73914 +:1003500000001821325F000113E0000D3247000455
73915 +:10036000240900011249000202B6302532A6FFFF1F
73916 +:100370009785002A0E000FDB000020212402FFFEDB
73917 +:10038000024290241240FE950000182132470004DA
73918 +:1003900050E0FE922403000102B63025241600042A
73919 +:1003A0005656000132A6FFFF9785002A0E000FDB8C
73920 +:1003B000240401002403FFFB0243A82412A0FE87AB
73921 +:1003C000000018210A001370240300010A0014B968
73922 +:1003D0000249902410A0FFAF30E5010010A00017E3
73923 +:1003E0008F8600102403000210C300148F84000CB9
73924 +:1003F0003C0608008CC6003824CAFFFF14C0000267
73925 +:10040000008A1024000010213C0E080025CE003880
73926 +:10041000004E682191AC00048F850028258B0004D4
73927 +:10042000000B21C030A5FFFF36A600020E000FDB37
73928 +:10043000000000000A00137000001821240F0002C1
73929 +:1004400010CF0088241600013C0308008C6300D004
73930 +:100450001076008D8F85002824D9FFFC2F280004FA
73931 +:100460001500006300002021241F0002107F005DA2
73932 +:100470002CC9000C24C3FFF82C6200041440FFE9CF
73933 +:100480000000202130EA020051400004000621C093
73934 +:1004900054C0000530A5FFFF000621C030A5FFFFB6
73935 +:1004A0000A00150436A600020E000FDB32A600017A
73936 +:1004B0008F8600108F8500280A001520000621C0B5
73937 +:1004C0003C0A08008D4A0024315200015240FE438C
73938 +:1004D000000018219785002A36A600020E000FDBC7
73939 +:1004E000000020210A001370000018219668000CFB
73940 +:1004F000311802005700FE313C0500013C1F800806
73941 +:1005000097F900489789002A36A600023328FFFF92
73942 +:10051000AF8800083C0380008C7501B806A0FFFE80
73943 +:100520003C04800034820180AC400000110000B621
73944 +:1005300024180003252A0012010A182B106000B2AB
73945 +:1005400000000000966F00203C0E8000240D001A71
73946 +:1005500031ECFFFF35CA018030EB4000A14D000BAC
73947 +:10056000116000B02583FFFE0103902B164000AE02
73948 +:100570002416FFFE34A50001A5430014AF85000436
73949 +:100580002419BFFF00B94024A6E9000EA6E9001A0D
73950 +:10059000A6E60008A6E80026A6E700103C07100023
73951 +:1005A000AE8701B80A001370000018213C048000D7
73952 +:1005B0008C8201B80440FFFE349601802415001C93
73953 +:1005C000AEC70000A2D5000B3C071000AC8701B8F5
73954 +:1005D0003C0A40003C098000AD2A01780A0013045F
73955 +:1005E000000000005120FFA424C3FFF800002021D8
73956 +:1005F00030A5FFFF0A00150436A600020E00103DCC
73957 +:10060000000000008F8700000A001346AF82000C34
73958 +:1006100090A30001241500011075FF0B24080001B0
73959 +:10062000240600021066000430E2004024080001A5
73960 +:100630000A001370010018215040FFFD240800013A
73961 +:100640003C0C8000358B0100956A001094A40002D8
73962 +:100650003143FFFF5083FDE1010018210A00158599
73963 +:10066000240800018F8500282CB203EF1240FDDB27
73964 +:10067000240300013C0308008C6300D02416000111
73965 +:100680001476FF7624D9FFFC2CD8000C1300FF72DF
73966 +:10069000000621C030A5FFFF0A00150436A600029F
73967 +:1006A00010B00037240F000B14AFFE23000731C039
73968 +:1006B000312600FF00065600000A4E0305220047BF
73969 +:1006C00030C6007F0006F8C03C16080126D69640CA
73970 +:1006D00003F68021A2000001A20000003C0F600090
73971 +:1006E0008DF918202405000100C588040011302769
73972 +:1006F0000326C024000731C000C03821ADF81820FF
73973 +:100700000A0013C8A60000028F850020000731C030
73974 +:1007100024A2FFFF0A0013F6AF8200200A0014B2E1
73975 +:100720002415002011E0FECC3C1980003728010080
73976 +:100730009518001094B6000233120FFF16D2FEC6B1
73977 +:10074000000000000A00148290A900013C0B080080
73978 +:100750008D6B0038256DFFFF15600002018D1024A0
73979 +:10076000000010213C080800250800380048C0217E
73980 +:10077000930F000425EE00040A0014C5000E21C0EA
73981 +:1007800000065202241F00FF115FFDEB000731C07D
73982 +:10079000000A20C03C0E080125CE9640008EA821FC
73983 +:1007A000009E602100095C02240D00013C076000EE
73984 +:1007B000A2AD0000AD860000A2AB00018CF21820B3
73985 +:1007C00024030001014310040242B025ACF61820B6
73986 +:1007D00000C038210A0013C8A6A900020A0015AA01
73987 +:1007E000AF8000200A0012FFAF84002C8F85000428
73988 +:1007F0003C1980002408000337380180A308000B4F
73989 +:100800000A00144D3C088000A2F8000B0A00155A9B
73990 +:100810002419BFFF8F9600042412FFFE0A00144B18
73991 +:1008200002D228242416FFFE0A00155800B62824F8
73992 +:100830003C038000346401008C85000030A2003E3F
73993 +:100840001440000800000000AC6000488C870000E5
73994 +:1008500030E607C010C0000500000000AC60004C8E
73995 +:10086000AC60005003E0000824020001AC600054BA
73996 +:10087000AC6000408C880000310438001080FFF923
73997 +:10088000000000002402000103E00008AC60004406
73998 +:100890003C0380008C6201B80440FFFE3467018095
73999 +:1008A000ACE4000024080001ACE00004A4E500086A
74000 +:1008B00024050002A0E8000A34640140A0E5000B12
74001 +:1008C0009483000A14C00008A4E30010ACE00024E4
74002 +:1008D0003C07800034E901803C041000AD20002872
74003 +:1008E00003E00008ACE401B88C8600043C0410006E
74004 +:1008F000ACE600243C07800034E90180AD200028EC
74005 +:1009000003E00008ACE401B83C0680008CC201B8EA
74006 +:100910000440FFFE34C7018024090002ACE400005B
74007 +:10092000ACE40004A4E50008A0E9000A34C50140D5
74008 +:10093000A0E9000B94A8000A3C041000A4E80010F1
74009 +:10094000ACE000248CA30004ACE3002803E0000822
74010 +:10095000ACC401B83C039000346200010082202541
74011 +:100960003C038000AC6400208C65002004A0FFFEE6
74012 +:100970000000000003E00008000000003C028000CE
74013 +:10098000344300010083202503E00008AC4400202C
74014 +:1009900027BDFFE03C098000AFBF0018AFB10014D5
74015 +:1009A000AFB00010352801408D10000091040009FF
74016 +:1009B0009107000891050008308400FF30E600FF31
74017 +:1009C00000061A002C820081008330251040002A86
74018 +:1009D00030A50080000460803C0D080125AD92B078
74019 +:1009E000018D58218D6A00000140000800000000C0
74020 +:1009F0003C038000346201409445000A14A0001EAC
74021 +:100A00008F91FCC09227000530E6000414C0001A44
74022 +:100A1000000000000E00164E02002021922A000560
74023 +:100A200002002021354900040E001658A2290005B5
74024 +:100A30009228000531040004148000020000000028
74025 +:100A40000000000D922D0000240B002031AC00FFAF
74026 +:100A5000158B00093C0580008CAE01B805C0FFFE77
74027 +:100A600034B10180AE3000003C0F100024100005AE
74028 +:100A7000A230000BACAF01B80000000D8FBF001812
74029 +:100A80008FB100148FB0001003E0000827BD0020D4
74030 +:100A90000200202100C028218FBF00188FB1001450
74031 +:100AA0008FB00010240600010A00161D27BD00208B
74032 +:100AB0000000000D0200202100C028218FBF001877
74033 +:100AC0008FB100148FB00010000030210A00161DF5
74034 +:100AD00027BD002014A0FFE8000000000200202134
74035 +:100AE0008FBF00188FB100148FB0001000C02821F4
74036 +:100AF0000A00163B27BD00203C0780008CEE01B8A1
74037 +:100B000005C0FFFE34F00180241F0002A21F000B6D
74038 +:100B100034F80140A60600089719000A3C0F10009F
74039 +:100B2000A61900108F110004A6110012ACEF01B835
74040 +:100B30000A0016998FBF001827BDFFE8AFBF00104D
74041 +:100B40000E000FD4000000003C0280008FBF001098
74042 +:100B500000002021AC4001800A00108F27BD001842
74043 +:100B60003084FFFF30A5FFFF108000070000182130
74044 +:100B7000308200011040000200042042006518216C
74045 +:100B80001480FFFB0005284003E0000800601021EE
74046 +:100B900010C00007000000008CA2000024C6FFFF68
74047 +:100BA00024A50004AC82000014C0FFFB24840004D0
74048 +:100BB00003E000080000000010A0000824A3FFFFCD
74049 +:100BC000AC86000000000000000000002402FFFFCF
74050 +:100BD0002463FFFF1462FFFA2484000403E000088A
74051 +:100BE000000000003C03800027BDFFF83462018054
74052 +:100BF000AFA20000308C00FF30AD00FF30CE00FF10
74053 +:100C00003C0B80008D6401B80480FFFE00000000F2
74054 +:100C10008FA900008D6801288FAA00008FA700000F
74055 +:100C20008FA400002405000124020002A085000A10
74056 +:100C30008FA30000359940003C051000A062000B16
74057 +:100C40008FB800008FAC00008FA600008FAF0000AF
74058 +:100C500027BD0008AD280000AD400004AD80002491
74059 +:100C6000ACC00028A4F90008A70D0010A5EE0012E2
74060 +:100C700003E00008AD6501B83C06800827BDFFE829
74061 +:100C800034C50080AFBF001090A7000924020012F5
74062 +:100C900030E300FF1062000B008030218CA8005070
74063 +:100CA00000882023048000088FBF00108CAA003425
74064 +:100CB000240400390000282100CA4823052000052B
74065 +:100CC000240600128FBF00102402000103E0000878
74066 +:100CD00027BD00180E0016F2000000008FBF0010A4
74067 +:100CE0002402000103E0000827BD001827BDFFC84B
74068 +:100CF000AFB20030AFB00028AFBF0034AFB1002CAE
74069 +:100D000000A0802190A5000D30A6001010C000109A
74070 +:100D1000008090213C0280088C4400048E0300086F
74071 +:100D20001064000C30A7000530A6000510C0009329
74072 +:100D3000240400018FBF00348FB200308FB1002C2B
74073 +:100D40008FB000280080102103E0000827BD003884
74074 +:100D500030A7000510E0000F30AB001210C00006F5
74075 +:100D6000240400013C0980088E0800088D25000439
74076 +:100D70005105009C240400388FBF00348FB200302E
74077 +:100D80008FB1002C8FB000280080102103E00008F4
74078 +:100D900027BD0038240A0012156AFFE6240400016A
74079 +:100DA0000200202127A500100E000CB6AFA00010F5
74080 +:100DB0001440007C3C19800837240080909800087B
74081 +:100DC000331100081220000A8FA7001030FF010025
74082 +:100DD00013E000A48FA300148C8600580066102333
74083 +:100DE000044000043C0A8008AC8300588FA7001020
74084 +:100DF0003C0A800835480080910900083124000829
74085 +:100E00001480000224080003000040213C1F8008D9
74086 +:100E100093F1001193F9001237E600808CCC005456
74087 +:100E2000333800FF03087821322D00FF000F708057
74088 +:100E300001AE282100AC582B1160006F00000000AB
74089 +:100E400094CA005C8CC900543144FFFF0125102373
74090 +:100E50000082182B14600068000000008CCB005446
74091 +:100E60000165182330EC00041180006C000830800C
74092 +:100E70008FA8001C0068102B1040006230ED0004A9
74093 +:100E8000006610232C46008010C00002004088211C
74094 +:100E9000241100800E00164E024020213C0D8008D7
74095 +:100EA00035A6008024070001ACC7000C90C80008DC
74096 +:100EB0000011484035A70100310C007FA0CC00088C
74097 +:100EC0008E05000424AB0001ACCB0030A4D1005C43
74098 +:100ED0008CCA003C9602000E01422021ACC40020C6
74099 +:100EE0008CC3003C0069F821ACDF001C8E190004A3
74100 +:100EF000ACF900008E180008ACF800048FB10010A7
74101 +:100F0000322F000855E0004793A60020A0C0004EF5
74102 +:100F100090D8004E2411FFDFA0F8000890CF000801
74103 +:100F200001F17024A0CE00088E0500083C0B80085B
74104 +:100F300035690080AD2500388D6A00148D2200309F
74105 +:100F40002419005001422021AD24003491230000D7
74106 +:100F5000307F00FF13F90036264F01000E001658AF
74107 +:100F60000240202124040038000028210E0016F23F
74108 +:100F70002406000A0A001757240400010E000D2859
74109 +:100F8000000020218FBF00348FB200308FB1002CC1
74110 +:100F90008FB00028004020210080102103E00008CD
74111 +:100FA00027BD00388E0E00083C0F800835F0008009
74112 +:100FB000AE0E005402402021AE0000300E00164E4E
74113 +:100FC00000000000920D00250240202135AC0020D9
74114 +:100FD0000E001658A20C00250E000CAC0240202179
74115 +:100FE000240400382405008D0E0016F22406001299
74116 +:100FF0000A0017572404000194C5005C0A001792E8
74117 +:1010000030A3FFFF2407021811A0FF9E00E6102363
74118 +:101010008FAE001C0A00179A01C610230A0017970A
74119 +:101020002C620218A0E600080A0017C48E0500080A
74120 +:101030002406FF8001E6C0243C118000AE38002861
74121 +:101040008E0D000831E7007F3C0E800C00EE602121
74122 +:10105000AD8D00E08E080008AF8C00380A0017D074
74123 +:10106000AD8800E4AC800058908500082403FFF7A9
74124 +:1010700000A33824A08700080A0017758FA7001066
74125 +:101080003C05080024A560A83C04080024846FF4F3
74126 +:101090003C020800244260B0240300063C01080121
74127 +:1010A000AC2596C03C010801AC2496C43C01080163
74128 +:1010B000AC2296C83C010801A02396CC03E00008AE
74129 +:1010C0000000000003E00008240200013C02800050
74130 +:1010D000308800FF344701803C0680008CC301B893
74131 +:1010E0000460FFFE000000008CC501282418FF806A
74132 +:1010F0003C0D800A24AF010001F8702431EC007F20
74133 +:10110000ACCE0024018D2021ACE50000948B00EAD8
74134 +:101110003509600024080002316AFFFFACEA0004D0
74135 +:1011200024020001A4E90008A0E8000BACE00024C0
74136 +:101130003C071000ACC701B8AF84003803E00008DA
74137 +:10114000AF85006C938800488F8900608F820038DB
74138 +:1011500030C600FF0109382330E900FF01221821C1
74139 +:1011600030A500FF2468008810C000020124382147
74140 +:101170000080382130E400031480000330AA00030B
74141 +:101180001140000D312B000310A0000900001021B8
74142 +:1011900090ED0000244E000131C200FF0045602B9D
74143 +:1011A000A10D000024E700011580FFF925080001CA
74144 +:1011B00003E00008000000001560FFF300000000DD
74145 +:1011C00010A0FFFB000010218CF80000245900043F
74146 +:1011D000332200FF0045782BAD18000024E70004FF
74147 +:1011E00015E0FFF92508000403E0000800000000F6
74148 +:1011F00093850048938800588F8700600004320070
74149 +:101200003103007F00E5102B30C47F001040000F39
74150 +:10121000006428258F8400383C0980008C8A00EC0B
74151 +:10122000AD2A00A43C03800000A35825AC6B00A0AD
74152 +:101230008C6C00A00580FFFE000000008C6D00ACEF
74153 +:10124000AC8D00EC03E000088C6200A80A00188254
74154 +:101250008F840038938800593C0280000080502120
74155 +:10126000310300FEA383005930ABFFFF30CC00FFF9
74156 +:1012700030E7FFFF344801803C0980008D2401B82D
74157 +:101280000480FFFE8F8D006C24180016AD0D000049
74158 +:101290008D2201248F8D0038AD0200048D5900206D
74159 +:1012A000A5070008240201C4A119000AA118000B17
74160 +:1012B000952F01208D4E00088D4700049783005C18
74161 +:1012C0008D59002401CF302100C7282100A32023FD
74162 +:1012D0002418FFFFA504000CA50B000EA5020010AA
74163 +:1012E000A50C0012AD190018AD18002495AF00E848
74164 +:1012F0003C0B10002407FFF731EEFFFFAD0E002876
74165 +:101300008DAC0084AD0C002CAD2B01B88D460020B7
74166 +:1013100000C7282403E00008AD4500208F8800386E
74167 +:101320000080582130E7FFFF910900D63C02800081
74168 +:1013300030A5FFFF312400FF00041A00006750258C
74169 +:1013400030C600FF344701803C0980008D2C01B875
74170 +:101350000580FFFE8F82006C240F0017ACE20000B6
74171 +:101360008D390124ACF900048D780020A4EA00082E
74172 +:10137000241901C4A0F8000AA0EF000B9523012056
74173 +:101380008D6E00088D6D00049784005C01C35021B0
74174 +:10139000014D602101841023A4E2000CA4E5000E9D
74175 +:1013A000A4F90010A4E60012ACE000148D7800242B
74176 +:1013B000240DFFFFACF800188D0F007CACEF001C73
74177 +:1013C0008D0E00783C0F1000ACEE0020ACED002438
74178 +:1013D000950A00BE240DFFF73146FFFFACE600285A
74179 +:1013E000950C00809504008231837FFF0003CA00C2
74180 +:1013F0003082FFFF0322C021ACF8002CAD2F01B8D2
74181 +:10140000950E00828D6A002000AE3021014D282407
74182 +:10141000A506008203E00008AD6500203C028000C4
74183 +:10142000344501803C0480008C8301B80460FFFED9
74184 +:101430008F8A0044240600199549001C3128FFFFBB
74185 +:10144000000839C0ACA70000A0A6000B3C051000A6
74186 +:1014500003E00008AC8501B88F87004C0080402174
74187 +:1014600030C400FF3C0680008CC201B80440FFFE7F
74188 +:101470008F89006C9383006834996000ACA90000E8
74189 +:10148000A0A300058CE20010240F00022403FFF744
74190 +:10149000A4A20006A4B900088D180020A0B8000A74
74191 +:1014A000A0AF000B8CEE0000ACAE00108CED000481
74192 +:1014B000ACAD00148CEC001CACAC00248CEB002018
74193 +:1014C000ACAB00288CEA002C3C071000ACAA002C26
74194 +:1014D0008D090024ACA90018ACC701B88D05002007
74195 +:1014E00000A3202403E00008AD0400208F8600380C
74196 +:1014F00027BDFFE0AFB10014AFBF0018AFB00010C0
74197 +:1015000090C300D430A500FF3062002010400008D6
74198 +:10151000008088218CCB00D02409FFDF256A0001E0
74199 +:10152000ACCA00D090C800D401093824A0C700D4A8
74200 +:1015300014A000403C0C80008F840038908700D4B9
74201 +:101540002418FFBF2406FFEF30E3007FA08300D400
74202 +:10155000979F005C8F8200608F8D003803E2C82364
74203 +:10156000A799005CA5A000BC91AF00D401F870243D
74204 +:10157000A1AE00D48F8C0038A18000D78F8A0038AC
74205 +:10158000A5400082AD4000EC914500D400A658244F
74206 +:10159000A14B00D48F9000348F8400609786005C4C
74207 +:1015A0000204282110C0000FAF850034A38000582A
74208 +:1015B0003C0780008E2C000894ED01208E2B000447
74209 +:1015C000018D5021014B8021020620233086FFFF30
74210 +:1015D00030C8000F3909000131310001162000091F
74211 +:1015E000A3880058938600488FBF00188FB100145D
74212 +:1015F0008FB0001027BD0020AF85006403E0000815
74213 +:10160000AF86006000C870238FBF00189386004823
74214 +:101610008FB100148FB0001034EF0C00010F28219F
74215 +:1016200027BD0020ACEE0084AF85006403E0000815
74216 +:10163000AF86006035900180020028210E00190F4E
74217 +:10164000240600828F840038908600D430C5004084
74218 +:1016500050A0FFBAA38000688F85004C3C06800034
74219 +:101660008CCD01B805A0FFFE8F89006C2408608234
74220 +:1016700024070002AE090000A6080008A207000B1C
74221 +:101680008CA300083C0E1000AE0300108CA2000CCE
74222 +:10169000AE0200148CBF0014AE1F00188CB90018E5
74223 +:1016A000AE1900248CB80024AE1800288CAF002896
74224 +:1016B000AE0F002CACCE01B80A001948A380006818
74225 +:1016C0008F8A003827BDFFE0AFB10014AFB0001023
74226 +:1016D0008F880060AFBF00189389003C954200BC22
74227 +:1016E00030D100FF0109182B0080802130AC00FFB1
74228 +:1016F0003047FFFF0000582114600003310600FF4F
74229 +:1017000001203021010958239783005C0068202BB9
74230 +:101710001480002700000000106800562419000102
74231 +:101720001199006334E708803165FFFF0E0018C08F
74232 +:10173000020020218F83006C3C07800034E601808A
74233 +:101740003C0580008CAB01B80560FFFE240A001840
74234 +:101750008F840038ACC30000A0CA000B948900BE7F
74235 +:101760003C081000A4C90010ACC00030ACA801B8FF
74236 +:101770009482008024430001A4830080949F008011
74237 +:101780003C0608008CC6318833EC7FFF1186005E72
74238 +:101790000000000002002021022028218FBF001835
74239 +:1017A0008FB100148FB000100A00193427BD00203B
74240 +:1017B000914400D42403FF8000838825A15100D4E4
74241 +:1017C0009784005C3088FFFF51000023938C003C1D
74242 +:1017D0008F8500382402EFFF008B782394AE00BC85
74243 +:1017E0000168502B31E900FF01C26824A4AD00BCA0
74244 +:1017F00051400039010058213C1F800037E60100AC
74245 +:101800008CD800043C190001031940245500000144
74246 +:1018100034E740008E0A00202403FFFB241100015E
74247 +:1018200001432024AE0400201191002D34E78000F4
74248 +:1018300002002021012030210E0018C03165FFFF79
74249 +:101840009787005C8F890060A780005C0127802358
74250 +:10185000AF900060938C003C8F8B00388FBF0018D6
74251 +:101860008FB100148FB0001027BD002003E00008E6
74252 +:10187000A16C00D73C0D800035AA01008D48000402
74253 +:101880003C0900010109282454A0000134E740006C
74254 +:101890008E0F00202418FFFB34E7800001F870242D
74255 +:1018A00024190001AE0E00201599FF9F34E708802F
74256 +:1018B000020020210E00188E3165FFFF020020215A
74257 +:1018C000022028218FBF00188FB100148FB00010A4
74258 +:1018D0000A00193427BD00200A0019F7000048212A
74259 +:1018E00002002021012030210E00188E3165FFFFFB
74260 +:1018F0009787005C8F890060A780005C01278023A8
74261 +:101900000A001A0EAF900060948C0080241F8000A3
74262 +:10191000019F3024A4860080908B0080908F0080EF
74263 +:10192000316700FF0007C9C20019C027001871C045
74264 +:1019300031ED007F01AE2825A08500800A0019DF67
74265 +:1019400002002021938500682403000127BDFFE8E1
74266 +:1019500000A330042CA20020AFB00010AFBF0014D1
74267 +:1019600000C01821104000132410FFFE3C0708009F
74268 +:101970008CE7319000E610243C088000350501809A
74269 +:1019800014400005240600848F890038240A0004CE
74270 +:101990002410FFFFA12A00FC0E00190F0000000018
74271 +:1019A000020010218FBF00148FB0001003E0000868
74272 +:1019B00027BD00183C0608008CC631940A001A574F
74273 +:1019C00000C310248F87004427BDFFE0AFB200188A
74274 +:1019D000AFB10014AFB00010AFBF001C30D000FF9B
74275 +:1019E00090E6000D00A088210080902130C5007F86
74276 +:1019F000A0E5000D8F8500388E2300188CA200D042
74277 +:101A00001062002E240A000E0E001A4AA38A0068F3
74278 +:101A10002409FFFF104900222404FFFF5200002088
74279 +:101A2000000020218E2600003C0C001000CC582421
74280 +:101A3000156000393C0E000800CE682455A0003F18
74281 +:101A4000024020213C18000200D880241200001F10
74282 +:101A50003C0A00048F8700448CE200148CE30010E1
74283 +:101A60008CE500140043F82303E5C82B1320000580
74284 +:101A7000024020218E24002C8CF1001010910031A6
74285 +:101A80000240202124020012A38200680E001A4A9C
74286 +:101A90002412FFFF105200022404FFFF0000202147
74287 +:101AA0008FBF001C8FB200188FB100148FB00010D0
74288 +:101AB0000080102103E0000827BD002090A800D47A
74289 +:101AC000350400200A001A80A0A400D400CA4824CB
74290 +:101AD0001520000B8F8B00448F8D00448DAC0010BF
74291 +:101AE0001580000B024020218E2E002C51C0FFECEF
74292 +:101AF00000002021024020210A001A9B2402001726
74293 +:101B00008D66001050C0FFE6000020210240202119
74294 +:101B10000A001A9B24020011024020212402001511
74295 +:101B20000E001A4AA3820068240FFFFF104FFFDC4B
74296 +:101B30002404FFFF0A001A8A8E2600000A001AC138
74297 +:101B4000240200143C08000400C8382450E0FFD4EC
74298 +:101B500000002021024020210A001A9B24020013C9
74299 +:101B60008F85003827BDFFD8AFB3001CAFB2001877
74300 +:101B7000AFB10014AFB00010AFBF002090A700D4E9
74301 +:101B80008F90004C2412FFFF34E2004092060000C8
74302 +:101B9000A0A200D48E0300100080982110720006CD
74303 +:101BA00030D1003F2408000D0E001A4AA3880068B7
74304 +:101BB000105200252404FFFF8F8A00388E09001878
74305 +:101BC0008D4400D01124000702602021240C000E57
74306 +:101BD0000E001A4AA38C0068240BFFFF104B001A5A
74307 +:101BE0002404FFFF24040020122400048F8D0038F9
74308 +:101BF00091AF00D435EE0020A1AE00D48F85005403
74309 +:101C000010A00019000000001224004A8F9800382C
74310 +:101C10008F92FCC0971000809651000A5230004805
74311 +:101C20008F9300403C1F08008FFF318C03E5C82BC9
74312 +:101C30001720001E02602021000028210E0019A993
74313 +:101C400024060001000020218FBF00208FB3001C5C
74314 +:101C50008FB200188FB100148FB0001000801021D7
74315 +:101C600003E0000827BD00285224002A8E05001436
74316 +:101C70008F840038948A008025490001A48900805F
74317 +:101C8000948800803C0208008C42318831077FFF35
74318 +:101C900010E2000E00000000026020210E00193446
74319 +:101CA000240500010A001B0B000020212402002D46
74320 +:101CB0000E001A4AA38200682403FFFF1443FFE1C9
74321 +:101CC0002404FFFF0A001B0C8FBF002094990080A2
74322 +:101CD000241F800024050001033FC024A498008035
74323 +:101CE00090920080908E0080325100FF001181C2DE
74324 +:101CF00000107827000F69C031CC007F018D582576
74325 +:101D0000A08B00800E001934026020210A001B0BFA
74326 +:101D1000000020212406FFFF54A6FFD68F84003840
74327 +:101D2000026020210E001934240500010A001B0B5B
74328 +:101D300000002021026020210A001B252402000A45
74329 +:101D40002404FFFD0A001B0BAF9300608F8800384E
74330 +:101D500027BDFFE8AFB00010AFBF0014910A00D458
74331 +:101D60008F87004C00808021354900408CE60010B0
74332 +:101D7000A10900D43C0208008C4231B030C53FFFBD
74333 +:101D800000A2182B106000078F850050240DFF80E3
74334 +:101D900090AE000D01AE6024318B00FF156000088D
74335 +:101DA0000006C382020020212403000D8FBF00140F
74336 +:101DB0008FB0001027BD00180A001A4AA3830068DC
74337 +:101DC00033060003240F000254CFFFF70200202146
74338 +:101DD00094A2001C8F85003824190023A4A200E8D7
74339 +:101DE0008CE8000000081E02307F003F13F9003528
74340 +:101DF0003C0A00838CE800188CA600D0110600086D
74341 +:101E0000000000002405000E0E001A4AA385006899
74342 +:101E10002407FFFF104700182404FFFF8F850038B8
74343 +:101E200090A900D435240020A0A400D48F8C0044B5
74344 +:101E3000918E000D31CD007FA18D000D8F83005458
74345 +:101E40001060001C020020218F8400508C9800102C
74346 +:101E50000303782B11E0000D241900180200202143
74347 +:101E6000A39900680E001A4A2410FFFF10500002C8
74348 +:101E70002404FFFF000020218FBF00148FB000104A
74349 +:101E80000080102103E0000827BD00188C86001098
74350 +:101E90008F9F00440200202100C31023AFE20010F6
74351 +:101EA000240500010E0019A9240600010A001B9751
74352 +:101EB000000020210E001934240500010A001B97A0
74353 +:101EC00000002021010A5824156AFFD98F8C004494
74354 +:101ED000A0A600FC0A001B84A386005A30A500FFC0
74355 +:101EE0002406000124A9000100C9102B1040000C99
74356 +:101EF00000004021240A000100A61823308B0001B5
74357 +:101F000024C60001006A3804000420421160000267
74358 +:101F100000C9182B010740251460FFF800A61823FC
74359 +:101F200003E000080100102127BDFFD8AFB0001862
74360 +:101F30008F90004CAFB1001CAFBF00202403FFFF07
74361 +:101F40002411002FAFA30010920600002405000802
74362 +:101F500026100001006620260E001BB0308400FF12
74363 +:101F600000021E003C021EDC34466F410A001BD8F2
74364 +:101F70000000102110A00009008018212445000154
74365 +:101F800030A2FFFF2C4500080461FFFA0003204047
74366 +:101F90000086202614A0FFF9008018210E001BB037
74367 +:101FA000240500208FA300102629FFFF313100FFF8
74368 +:101FB00000034202240700FF1627FFE20102182651
74369 +:101FC00000035027AFAA0014AFAA00100000302170
74370 +:101FD00027A8001027A7001400E6782391ED00033E
74371 +:101FE00024CE000100C8602131C600FF2CCB0004C4
74372 +:101FF0001560FFF9A18D00008FA200108FBF002097
74373 +:102000008FB1001C8FB0001803E0000827BD002826
74374 +:1020100027BDFFD0AFB3001CAFB00010AFBF00288A
74375 +:10202000AFB50024AFB40020AFB20018AFB10014B8
74376 +:102030003C0C80008D880128240FFF803C06800A1C
74377 +:1020400025100100250B0080020F68243205007F57
74378 +:10205000016F7024AD8E009000A62821AD8D002464
74379 +:1020600090A600FC3169007F3C0A8004012A1821F7
74380 +:10207000A386005A9067007C00809821AF830030CF
74381 +:1020800030E20002AF88006CAF85003800A0182154
74382 +:10209000144000022404003424040030A3840048C7
74383 +:1020A0008C7200DC30D100FF24040004AF92006089
74384 +:1020B00012240004A38000688E7400041680001EA1
74385 +:1020C0003C0880009386005930C7000110E0000FE3
74386 +:1020D0008F9300608CB000848CA800842404FF805F
74387 +:1020E000020410240002F940310A007F03EA482567
74388 +:1020F0003C0C2000012C902530CD00FE3C038000DC
74389 +:10210000AC720830A38D00598F9300608FBF0028F8
74390 +:102110008FB50024ACB300DC8FB400208FB3001C5B
74391 +:102120008FB200188FB100148FB00010240200018C
74392 +:1021300003E0000827BD00308E7F000895020120D3
74393 +:102140008E67001003E2C8213326FFFF30D8000F4E
74394 +:1021500033150001AF87003416A00058A39800582B
74395 +:1021600035090C000309382100D81823AD03008479
74396 +:10217000AF8700648E6A00043148FFFF1100007EC3
74397 +:10218000A78A005C90AC00D42407FF8000EC3024C8
74398 +:1021900030CB00FF1560004B9786005C938E005A91
74399 +:1021A000240D000230D5FFFF11CD02A20000A021B6
74400 +:1021B0008F85006002A5802B160000BC9388004824
74401 +:1021C0003C11800096240120310400FF1485008812
74402 +:1021D0008F8400648F9800343312000356400085CA
74403 +:1021E00030A500FF8F900064310C00FF24060034FE
74404 +:1021F00011860095AF90004C9204000414800118E1
74405 +:102200008F8E0038A380003C8E0D00048DC800D84E
74406 +:102210003C0600FF34CCFFFF01AC30240106182B34
74407 +:1022200014600120AF8600548F8700609798005C8F
74408 +:10223000AF8700400307402310C000C7A788005C99
74409 +:102240008F91003030C3000300035823922A007C92
74410 +:102250003171000302261021000A20823092000111
74411 +:102260000012488000492821311FFFFF03E5C82BD9
74412 +:10227000132001208F8800388F8500348F880064F8
74413 +:102280001105025A3C0E3F018E0600003C0C250051
74414 +:1022900000CE682411AC01638F84004C30E500FF50
74415 +:1022A0000E00184A000030218F8800388F870060A8
74416 +:1022B0008F8500340A001DB78F8600540A001C5613
74417 +:1022C000AF87006490A400D400E48024320200FFB1
74418 +:1022D000104000169386005990A6008890AE00D753
74419 +:1022E00024A8008830D4003F2686FFE02CD10020AF
74420 +:1022F000A38E003C1220000CAF88004C240B000180
74421 +:1023000000CB20043095001916A0012B3C0680005C
74422 +:1023100034CF0002008FC0241700022E3099002015
74423 +:1023200017200234000000009386005930CB0001D2
74424 +:102330001160000F9788005C8CBF00848CA900841A
74425 +:10234000240AFF8003EA6024000C19403132007F28
74426 +:10235000007238253C0D200000EDC82530D800FE65
74427 +:102360003C0F8000ADF90830A39800599788005CB5
74428 +:102370001500FF84000000008E630020306200041E
74429 +:102380001040FF51938600592404FFFB0064802411
74430 +:102390003C038000AE700020346601808C7301B86D
74431 +:1023A0000660FFFE8F98006C347501003C1400013C
74432 +:1023B000ACD800008C6B012424076085ACCB0004F2
74433 +:1023C0008EAE000401D488245220000124076083CB
74434 +:1023D00024190002A4C700083C0F1000A0D9000B6C
74435 +:1023E0003C068000ACCF01B80A001C2B9386005934
74436 +:1023F00030A500FF0E00184A240600018F88006CEB
74437 +:102400003C05800034A90900250201889388004812
74438 +:10241000304A0007304B00783C0340802407FF809F
74439 +:102420000163C825014980210047F824310C00FFD1
74440 +:1024300024060034ACBF0800AF90004CACB90810C3
74441 +:102440005586FF6E920400048F8400388E11003090
74442 +:10245000908E00D431CD001015A000108F83006045
74443 +:102460002C6F000515E000E400000000909800D4F7
74444 +:102470002465FFFC331200101640000830A400FF52
74445 +:102480008F9F00648F99003413F90004388700018E
74446 +:1024900030E20001144001C8000000000E001BC320
74447 +:1024A000000000000A001DF8000000008F84006496
74448 +:1024B00030C500FF0E00184A24060001939800481A
74449 +:1024C000240B0034130B00A08F8500388F8600602A
74450 +:1024D0009783005C306EFFFF00CE8823AF910060D1
74451 +:1024E000A780005C1280FF90028018212414FFFD59
74452 +:1024F0005474FFA28E6300208E6A00042403FFBF81
74453 +:102500002408FFEF0155F823AE7F000490AC00D4FF
74454 +:102510003189007FA0A900D48E7200208F8F0038EF
74455 +:10252000A780005C364D0002AE6D0020A5E000BC27
74456 +:1025300091E500D400A3C824A1F900D48F950038F8
74457 +:10254000AEA000EC92B800D403085824A2AB00D48B
74458 +:102550000A001CD78F8500388F910034AF8000604F
74459 +:1025600002275821AF8B0034000020212403FFFFF5
74460 +:10257000108301B48F8500388E0C00103C0D0800CC
74461 +:102580008DAD31B09208000031843FFF008D802B6B
74462 +:1025900012000023310D003F3C1908008F3931A88B
74463 +:1025A0008F9F006C000479802408FF80033F202166
74464 +:1025B000008FC821938500590328F8243C06008029
74465 +:1025C0003C0F800034D80001001F91403331007F60
74466 +:1025D0008F8600380251502535EE0940332B0078A4
74467 +:1025E000333000073C0310003C02800C017890253A
74468 +:1025F000020E48210143C0250222382134AE0001D9
74469 +:10260000ADFF0804AF890050ADF20814AF87004455
74470 +:10261000ADFF0028ACD90084ADF80830A38E005976
74471 +:102620009383005A24070003106700272407000142
74472 +:102630001467FFAC8F8500382411002311B1008589
74473 +:1026400000000000240E000B026020210E001A4A38
74474 +:10265000A38E00680040A0210A001D328F8500383B
74475 +:1026600002602021240B000C0E001A4AA38B006884
74476 +:10267000240AFFFF104AFFBD2404FFFF8F8E00389D
74477 +:10268000A380003C8E0D00048DC800D83C0600FFDE
74478 +:1026900034CCFFFF01AC30240106182B1060FEE2A1
74479 +:1026A000AF86005402602021241200190E001A4A3D
74480 +:1026B000A3920068240FFFFF104FFFAC2404FFFF1C
74481 +:1026C0000A001C838F86005425A3FFE02C74002091
74482 +:1026D0001280FFDD240E000B000328803C1108014E
74483 +:1026E000263194B400B148218D2D000001A00008CE
74484 +:1026F000000000008F85003400A710219385003C66
74485 +:10270000AF82003402251821A383003C951F00BC32
74486 +:102710000226282137F91000A51900BC5240FF926B
74487 +:10272000AF850060246A0004A38A003C950900BCC0
74488 +:1027300024A40004AF84006035322000A51200BC40
74489 +:102740000A001D54000020218F8600602CC800055F
74490 +:102750001500FF609783005C3065FFFF00C5C8234C
74491 +:102760002F2F000511E00003306400FF24CDFFFC93
74492 +:1027700031A400FF8F8900648F920034113200046D
74493 +:10278000389F000133EC0001158001380000000083
74494 +:102790008F840038908700D434E60010A08600D4DF
74495 +:1027A0008F8500388F8600609783005CACA000ECBA
74496 +:1027B0000A001D2F306EFFFF8CB500848CB400849E
74497 +:1027C0003C04100002A7302400068940328E007FAE
74498 +:1027D000022E8025020410253C08800024050001FB
74499 +:1027E00002602021240600010E0019A9AD02083064
74500 +:1027F0000A001CC38F8500388C8200EC1222FE7EFA
74501 +:102800000260202124090005A38900680E001A4AED
74502 +:102810002411FFFF1451FE782404FFFF0A001D5508
74503 +:102820002403FFFF8F8F004C8F8800388DF8000045
74504 +:10283000AD1800888DE70010AD0700988F87006005
74505 +:102840000A001DB78F8600542406FFFF118600057D
74506 +:10285000000000000E001B4C026020210A001D8FAA
74507 +:102860000040A0210E001AD1026020210A001D8F15
74508 +:102870000040A0218F90004C3C0208008C4231B0F7
74509 +:102880008E110010322C3FFF0182282B10A0000C6B
74510 +:10289000240BFF808F85005090A3000D01637024EE
74511 +:1028A00031CA00FF1140000702602021001143825D
74512 +:1028B000310600032418000110D8010600000000B2
74513 +:1028C000026020212403000D0E001A4AA383006831
74514 +:1028D000004020218F8500380A001D320080A02191
74515 +:1028E0008F90004C3C0A08008D4A31B08F85005013
74516 +:1028F0008E0400100000A0218CB1001430823FFF34
74517 +:10290000004A602B8CB200205180FFEE0260202133
74518 +:1029100090B8000D240BFF800178702431C300FFB4
74519 +:102920005060FFE80260202100044382310600036A
74520 +:1029300014C0FFE40260202194BF001C8F9900386E
74521 +:102940008E060028A73F00E88CAF0010022F20233E
74522 +:1029500014C4013A026020218F83005400C368210F
74523 +:10296000022D382B14E00136240200188F8A00440F
74524 +:102970008F820030024390218D4B00100163702341
74525 +:10298000AD4E0010AD5200208C4C00740192282BEB
74526 +:1029900014A0015F026020218F8400508E08002463
74527 +:1029A0008C86002411060007026020212419001CD7
74528 +:1029B0000E001A4AA3990068240FFFFF104FFFC5AD
74529 +:1029C0002404FFFF8F8400448C87002424FF00012F
74530 +:1029D000AC9F00241251012F8F8D00308DB10074F7
74531 +:1029E0001232012C3C0B00808E0E000001CB5024D3
74532 +:1029F00015400075000000008E0300142411FFFF35
74533 +:102A0000107100073C0808003C0608008CC6319095
74534 +:102A100000C8C0241300015202602021A380006876
74535 +:102A20008E0300003C19000100792024108000135F
74536 +:102A30003C1F0080007FA02416800009020028218E
74537 +:102A4000026020212411001A0E001A4AA391006886
74538 +:102A50002407FFFF1047FF9F2404FFFF02002821E7
74539 +:102A6000026020210E001A6A240600012410FFFFD4
74540 +:102A70001050FF982404FFFF241400018F8D0044A0
74541 +:102A8000026020210280302195A900342405000134
74542 +:102A9000253200010E0019A9A5B200340000202142
74543 +:102AA0008F8500380A001D320080A0218F90004CD5
74544 +:102AB0003C1408008E9431B08E07001030E53FFFC3
74545 +:102AC00000B4C82B132000618F8600502412FF80B1
74546 +:102AD00090C9000D0249682431A400FF5080005CB9
74547 +:102AE000026020218F8C00541180000700078B8228
74548 +:102AF0008F8500388F82FCC094BF0080944A000A02
74549 +:102B0000515F00F78F8600403227000314E0006415
74550 +:102B100000000000920E000211C000D8000000006A
74551 +:102B20008E0B0024156000D902602021920400035E
74552 +:102B300024190002308500FF14B90005308900FF18
74553 +:102B40008F940054128000EA240D002C308900FF7D
74554 +:102B5000392C00102D8400012D3200010244302553
74555 +:102B6000020028210E001A6A026020212410FFFFB3
74556 +:102B7000105000BF8F8500388F830054106000D341
74557 +:102B8000240500013C0A08008D4A318C0143F82BD2
74558 +:102B900017E000B22402002D02602021000028214D
74559 +:102BA0000E0019A9240600018F85003800001821A5
74560 +:102BB0000A001D320060A0210E0018750000000000
74561 +:102BC0000A001DF800000000AC8000200A001E78FA
74562 +:102BD0008E03001400002821026020210E0019A994
74563 +:102BE000240600010A001CC38F8500380A001DB7A7
74564 +:102BF0008F8800388CAA00848CAC00843C031000C1
74565 +:102C00000147F824001F91403189007F024968255F
74566 +:102C100001A32825ACC50830910700012405000157
74567 +:102C2000026020210E0019A930E600010A001CC331
74568 +:102C30008F850038938F00482403FFFD0A001D3460
74569 +:102C4000AF8F00600A001D342403FFFF02602021C3
74570 +:102C50002410000D0E001A4AA390006800401821AD
74571 +:102C60008F8500380A001D320060A0210E00187503
74572 +:102C7000000000009783005C8F86006000402021E8
74573 +:102C80003070FFFF00D010232C4A00051140FE11C8
74574 +:102C90008F850038ACA400EC0A001D2F306EFFFFBA
74575 +:102CA00090CF000D31E300085460FFA192040003AF
74576 +:102CB00002602021240200100E001A4AA38200683C
74577 +:102CC0002403FFFF5443FF9A920400030A001F12DB
74578 +:102CD0008F85003890A4000D308F000811E000951A
74579 +:102CE0008F990054572000A6026020218E1F000CEF
74580 +:102CF0008CB4002057F40005026020218E0D0008DE
74581 +:102D00008CA7002411A7003A026020212402002091
74582 +:102D1000A38200680E001A4A2412FFFF1052FEED33
74583 +:102D20002404FFFF8F9F00442402FFF73C14800E11
74584 +:102D300093EA000D2419FF803C03800001423824EF
74585 +:102D4000A3E7000D8F9F00303C0908008D2931ACAE
74586 +:102D50008F8C006C97F200788F870044012C302113
74587 +:102D6000324D7FFF000D204000C4782131E5007F07
74588 +:102D700000B4C02101F94024AC68002CA711000068
74589 +:102D80008CEB0028256E0001ACEE00288CEA002CAC
74590 +:102D90008E02002C01426021ACEC002C8E09002C2C
74591 +:102DA000ACE900308E120014ACF2003494ED003A1D
74592 +:102DB00025A40001A4E4003A97E600783C1108003D
74593 +:102DC0008E3131B024C3000130707FFF1211005CDE
74594 +:102DD000006030218F8F0030026020212405000127
74595 +:102DE0000E001934A5E600780A001EA1000020217B
74596 +:102DF0008E0900142412FFFF1132006B8F8A0038F5
74597 +:102E00008E0200188D4C00D0144C00650260202109
74598 +:102E10008E0B00248CAE0028116E005B2402002172
74599 +:102E20000E001A4AA38200681452FFBE2404FFFF5A
74600 +:102E30008F8500380A001D320080A0212402001F67
74601 +:102E40000E001A4AA38200682409FFFF1049FEA160
74602 +:102E50002404FFFF0A001E548F83005402602021C7
74603 +:102E60000E001A4AA38200681450FF508F85003864
74604 +:102E70002403FFFF0A001D320060A0218CD800242B
74605 +:102E80008E0800241118FF29026020210A001F2744
74606 +:102E90002402000F8E0900003C05008001259024CB
74607 +:102EA0001640FF492402001A026020210E001A4A2F
74608 +:102EB000A3820068240CFFFF144CFECF2404FFFF04
74609 +:102EC0008F8500380A001D320080A0210E001934C1
74610 +:102ED000026020218F8500380A001EE500001821BD
74611 +:102EE0002403FFFD0060A0210A001D32AF860060B0
74612 +:102EF000026020210E001A4AA38D00682403FFFF00
74613 +:102F00001043FF588F8500380A001ECC920400033E
74614 +:102F10002418001D0E001A4AA39800682403FFFF1E
74615 +:102F20001443FE9D2404FFFF8F8500380A001D32E4
74616 +:102F30000080A021026020210A001F3D24020024FD
74617 +:102F4000240880000068C024330BFFFF000B73C20D
74618 +:102F500031D000FF001088270A001F6E001133C017
74619 +:102F6000240F001B0E001A4AA38F00681451FEACF8
74620 +:102F70002404FFFF8F8500380A001D320080A02145
74621 +:102F80000A001F3D240200278E0600288CA3002C77
74622 +:102F900010C30008026020210A001F812402001FC4
74623 +:102FA0000A001F812402000E026020210A001F81F6
74624 +:102FB000240200258E04002C1080000D8F8F00301D
74625 +:102FC0008DE800740104C02B5700000C0260202122
74626 +:102FD0008CB900140086A0210334282B10A0FF52C6
74627 +:102FE0008F9F0044026020210A001F8124020022DA
74628 +:102FF000026020210A001F81240200230A001F8191
74629 +:103000002402002627BDFFD8AFB3001CAFB10014C7
74630 +:10301000AFBF0020AFB20018AFB000103C0280007C
74631 +:103020008C5201408C4B01483C048000000B8C0208
74632 +:10303000322300FF317300FF8C8501B804A0FFFE2E
74633 +:1030400034900180AE1200008C8701442464FFF0AC
74634 +:10305000240600022C830013AE070004A61100080A
74635 +:10306000A206000BAE1300241060004F8FBF00209B
74636 +:10307000000448803C0A0801254A9534012A402171
74637 +:103080008D04000000800008000000003C030800E0
74638 +:103090008C6331A831693FFF00099980007280215B
74639 +:1030A000021370212405FF80264D0100264C00806C
74640 +:1030B0003C02800031B1007F3198007F31CA007F2F
74641 +:1030C0003C1F800A3C1980043C0F800C01C5202461
74642 +:1030D00001A5302401853824014F1821AC46002475
74643 +:1030E000023F402103194821AC470090AC4400281E
74644 +:1030F000AF830044AF880038AF8900300E0019005C
74645 +:10310000016080213C0380008C6B01B80560FFFEEC
74646 +:103110008F8700448F8600383465018090E8000D69
74647 +:10312000ACB20000A4B0000600082600000416039C
74648 +:1031300000029027001227C21080008124C200885C
74649 +:10314000241F6082A4BF0008A0A000052402000282
74650 +:10315000A0A2000B8F8B0030000424003C08270045
74651 +:1031600000889025ACB20010ACA00014ACA00024E4
74652 +:10317000ACA00028ACA0002C8D6900382413FF807F
74653 +:10318000ACA9001890E3000D02638024320500FF13
74654 +:1031900010A000058FBF002090ED000D31AC007F26
74655 +:1031A000A0EC000D8FBF00208FB3001C8FB2001861
74656 +:1031B0008FB100148FB000103C0A10003C0E80004C
74657 +:1031C00027BD002803E00008ADCA01B8265F010052
74658 +:1031D0002405FF8033F8007F3C06800003E5782457
74659 +:1031E0003C19800A03192021ACCF0024908E00D412
74660 +:1031F00000AE682431AC00FF11800024AF84003899
74661 +:10320000248E008895CD00123C0C08008D8C31A8CE
74662 +:1032100031AB3FFF01924821000B5180012A402130
74663 +:1032200001052024ACC400283107007F3C06800C37
74664 +:1032300000E620219083000D00A31024304500FFFC
74665 +:1032400010A0FFD8AF8400449098000D330F0010F9
74666 +:1032500015E0FFD58FBF00200E0019000000000010
74667 +:103260003C0380008C7901B80720FFFE00000000BD
74668 +:10327000AE1200008C7F0144AE1F0004A6110008AE
74669 +:1032800024110002A211000BAE1300243C1308010C
74670 +:10329000927396F0327000015200FFC38FBF00207E
74671 +:1032A0000E002146024020210A0020638FBF00202B
74672 +:1032B0003C1260008E452C083C03F0033462FFFF93
74673 +:1032C00000A2F824AE5F2C088E582C083C1901C0CF
74674 +:1032D00003199825AE532C080A0020638FBF0020E5
74675 +:1032E000264D010031AF007F3C10800A240EFF8084
74676 +:1032F00001F0282101AE60243C0B8000AD6C00245D
74677 +:103300001660FFA8AF85003824110003A0B100FCAF
74678 +:103310000A0020638FBF002026480100310A007F89
74679 +:103320003C0B800A2409FF80014B30210109202435
74680 +:103330003C078000ACE400240A002062AF8600381D
74681 +:10334000944E0012320C3FFF31CD3FFF15ACFF7D94
74682 +:10335000241F608290D900D42418FF800319782498
74683 +:1033600031EA00FF1140FF7700000000240700044D
74684 +:10337000A0C700FC8F870044241160842406000D40
74685 +:10338000A4B10008A0A600050A00204D24020002F6
74686 +:103390003C040001248496DC24030014240200FE73
74687 +:1033A0003C010800AC2431EC3C010800AC2331E8BE
74688 +:1033B0003C010801A42296F83C040801248496F8F4
74689 +:1033C0000000182100643021A0C300042463000120
74690 +:1033D0002C6500FF54A0FFFC006430213C0708006E
74691 +:1033E00024E7010003E00008AF87007800A058211F
74692 +:1033F000008048210000102114A00012000050217C
74693 +:103400000A002142000000003C010801A42096F8B7
74694 +:103410003C05080194A596F88F8200783C0C0801C1
74695 +:10342000258C96F800E2182100AC2021014B302BAE
74696 +:10343000A089000400001021A460000810C0003919
74697 +:10344000010048218F8600780009384000E94021BA
74698 +:103450000008388000E6282190A8000B90B9000AE7
74699 +:103460000008204000881021000218800066C0215A
74700 +:10347000A319000A8F85007800E5782191EE000AF3
74701 +:1034800091E6000B000E684001AE6021000C208028
74702 +:1034900000851021A046000B3C030801906396F2C2
74703 +:1034A000106000222462FFFF8F8300383C01080176
74704 +:1034B000A02296F2906C00FF118000040000000032
74705 +:1034C000906E00FF25CDFFFFA06D00FF3C190801A5
74706 +:1034D000973996F8272300013078FFFF2F0F00FF60
74707 +:1034E00011E0FFC9254A00013C010801A42396F818
74708 +:1034F0003C05080194A596F88F8200783C0C0801E1
74709 +:10350000258C96F800E2182100AC2021014B302BCD
74710 +:10351000A089000400001021A460000814C0FFC9A5
74711 +:103520000100482103E000080000000003E000085B
74712 +:103530002402000227BDFFE0248501002407FF804C
74713 +:10354000AFB00010AFBF0018AFB1001400A718242F
74714 +:103550003C10800030A4007F3C06800A00862821B1
74715 +:103560008E110024AE03002490A200FF1440000836
74716 +:10357000AF850038A0A000098FBF0018AE1100244D
74717 +:103580008FB100148FB0001003E0000827BD0020A9
74718 +:1035900090A900FD90A800FF312400FF0E0020F448
74719 +:1035A000310500FF8F8500388FBF0018A0A00009EB
74720 +:1035B000AE1100248FB100148FB0001003E000089A
74721 +:1035C00027BD002027BDFFD0AFB20020AFB1001C47
74722 +:1035D000AFB00018AFBF002CAFB40028AFB30024C9
74723 +:1035E0003C0980009533011635320C00952F011AE5
74724 +:1035F0003271FFFF023280218E08000431EEFFFF9E
74725 +:10360000248B0100010E6821240CFF8025A5FFFFFB
74726 +:10361000016C50243166007F3C07800AAD2A0024EB
74727 +:1036200000C73021AF850074AF8800703C010801ED
74728 +:10363000A02096F190C300090200D02100809821BB
74729 +:10364000306300FF2862000510400048AF86003854
74730 +:10365000286400021480008E24140001240D00054B
74731 +:103660003C010801A02D96D590CC00FD3C0108013D
74732 +:10367000A02096D63C010801A02096D790CB000A46
74733 +:10368000240AFF80318500FF014B4824312700FFC9
74734 +:1036900010E0000C000058213C12800836510080D8
74735 +:1036A0008E2F00308CD0005C01F0702305C0018E9D
74736 +:1036B0008F87007090D4000A3284007FA0C4000A73
74737 +:1036C0008F8600383C118008363000808E0F003025
74738 +:1036D0008F87007000EF702319C000EE000000001B
74739 +:1036E00090D4000924120002328400FF1092024795
74740 +:1036F000000000008CC2005800E2F82327F9FFFF09
74741 +:103700001B2001300000000090C5000924080004BF
74742 +:1037100030A300FF10680057240A00013C01080193
74743 +:10372000A02A96D590C900FF252700013C01080179
74744 +:10373000A02796D43C030801906396D52406000583
74745 +:103740001066006A2C780005130000C40000902168
74746 +:103750000003F8803C0408012484958003E4C82118
74747 +:103760008F25000000A0000800000000241800FFC2
74748 +:103770001078005C0000000090CC000A90CA00099C
74749 +:103780003C080801910896F13187008000EA48253D
74750 +:103790003C010801A02996DC90C500FD3C140801FD
74751 +:1037A000929496F2311100013C010801A02596DDAA
74752 +:1037B00090DF00FE3C010801A03F96DE90D200FFA2
74753 +:1037C0003C010801A03296DF8CD900543C0108016D
74754 +:1037D000AC3996E08CD000583C010801AC3096E43E
74755 +:1037E0008CC3005C3C010801AC3496EC3C01080140
74756 +:1037F000AC2396E8162000088FBF002C8FB4002859
74757 +:103800008FB300248FB200208FB1001C8FB000183E
74758 +:1038100003E0000827BD00303C1180009624010E13
74759 +:103820000E000FD43094FFFF3C0B08018D6B96F413
74760 +:103830000260382102802821AE2B01803C13080150
74761 +:103840008E7396D401602021240600830E00102F71
74762 +:10385000AFB300108FBF002C8FB400288FB30024AB
74763 +:103860008FB200208FB1001C8FB0001803E0000859
74764 +:1038700027BD00303C1808008F1831FC270F0001CD
74765 +:103880003C010800AC2F31FC0A0021D700000000E9
74766 +:103890001474FFB900000000A0C000FF3C05080040
74767 +:1038A0008CA531E43C0308008C6331E03C02080045
74768 +:1038B0008C4232048F99003834A80001241F000282
74769 +:1038C0003C010801AC2396F43C010801A02896F0C5
74770 +:1038D0003C010801A02296F3A33F00090A002190B1
74771 +:1038E0008F8600380E002146000000000A0021D714
74772 +:1038F0008F8600383C1F080193FF96D424190001DD
74773 +:1039000013F902298F8700703C100801921096D895
74774 +:103910003C06080190C696D610C000050200A02102
74775 +:103920003C040801908496D9109001E48F870078B8
74776 +:10393000001088408F9F0078023048210009C8801D
74777 +:10394000033F702195D80008270F0001A5CF00087C
74778 +:103950003C040801908496D93C05080190A596D6B0
74779 +:103960000E0020F4000000008F8700780230202134
74780 +:103970000004308000C720218C8500048F820074F1
74781 +:1039800000A2402305020006AC8200048C8A0000DD
74782 +:103990008F830070014310235C400001AC83000062
74783 +:1039A0008F86003890CB00FF2D6C00025580002DD3
74784 +:1039B000241400010230F821001F40800107282153
74785 +:1039C00090B9000B8CAE00040019C0400319782197
74786 +:1039D000000F1880006710218C4D000001AE882375
74787 +:1039E0002630FFFF5E00001F241400018C440004F9
74788 +:1039F0008CAA0000008A482319200019240E000414
74789 +:103A00003C010801A02E96D590AD000B8CAB0004B4
74790 +:103A1000000D8840022D80210010108000471021E9
74791 +:103A20008C44000401646023058202009443000872
74792 +:103A300090DF00FE90B9000B33E500FF54B900049D
74793 +:103A40000107A021A0D400FE8F8700780107A021E4
74794 +:103A50009284000B0E0020F4240500018F860038AC
74795 +:103A600024140001125400962E500001160000424A
74796 +:103A70003C08FFFF241900021659FF3F0000000018
74797 +:103A8000A0C000FF8F860038A0D200090A0021D70D
74798 +:103A90008F86003890C700092404000230E300FF3D
74799 +:103AA0001064016F24090004106901528F880074AA
74800 +:103AB0008CCE0054010E682325B10001062001754B
74801 +:103AC000241800043C010801A03896D53C010801E7
74802 +:103AD000A02096D490D400FD90D200FF2E4F00027B
74803 +:103AE00015E0FF14328400FF000438408F8900780D
74804 +:103AF00090DF00FF00E41021000220800089C8212F
74805 +:103B00002FE500029324000B14A0FF0A24070002F3
74806 +:103B100000041840006480210010588001692821A9
74807 +:103B20008CAC0004010C50230540FF020000000093
74808 +:103B30003C030801906396D614600005246F0001D1
74809 +:103B40003C010801A02496D93C010801A02796D782
74810 +:103B50003C010801A02F96D690CE00FF24E700017B
74811 +:103B600031CD00FF01A7882B1220FFE990A4000BA4
74812 +:103B70000A0021C6000000003C0508018CA596D46F
74813 +:103B80003C12000400A8F82413F2000624020005E9
74814 +:103B90003C090801912996D5152000022402000352
74815 +:103BA000240200053C010801A02296F190C700FF05
74816 +:103BB00014E0012024020002A0C200090A0021D75B
74817 +:103BC0008F86003890CC00FF1180FEDA240A0001B5
74818 +:103BD0008F8C00748F890078240F00030180682186
74819 +:103BE0001160001E240E0002000540400105A021C6
74820 +:103BF00000142080008990218E51000401918023BF
74821 +:103C00000600FECC000000003C020801904296D65F
74822 +:103C100014400005245800013C010801A02A96D751
74823 +:103C20003C010801A02596D93C010801A03896D690
74824 +:103C300090DF00FF010510210002C88033E500FF7E
74825 +:103C4000254A00010329202100AA402B1500FEB9B6
74826 +:103C50009085000B1560FFE50005404000054040E1
74827 +:103C600001051821000310803C010801A02A96D408
74828 +:103C70003C010801A02596D8004918218C64000455
74829 +:103C800000E4F82327F9FFFF1F20FFE900000000F0
74830 +:103C90008C63000000E358230560013A01A38823E8
74831 +:103CA00010E301170184C0231B00FEA200000000E6
74832 +:103CB0003C010801A02E96D50A002305240B000123
74833 +:103CC000240E0004A0CE00093C0D08008DAD31F893
74834 +:103CD0008F86003825A200013C010800AC2231F893
74835 +:103CE0000A0021D7000000008CD9005C00F9C02335
74836 +:103CF0001F00FE7B000000008CDF005C10FFFF65F2
74837 +:103D00008F8400748CC3005C008340232502000173
74838 +:103D10001C40FF60000000008CC9005C248700018B
74839 +:103D200000E9282B10A0FE943C0D80008DAB01040F
74840 +:103D30003C0C0001016C50241140FE8F2402001045
74841 +:103D40003C010801A02296F10A0021D700000000E2
74842 +:103D50008F9100748F86003826220001ACC2005C6F
74843 +:103D60000A002292241400018F8700382404FF8067
74844 +:103D70000000882190E9000A241400010124302564
74845 +:103D8000A0E6000A3C05080190A596D63C0408016F
74846 +:103D9000908496D90E0020F4000000008F86003831
74847 +:103DA0008F85007890C800FD310700FF0007404074
74848 +:103DB0000107F821001FC0800305C8219323000BD1
74849 +:103DC000A0C300FD8F8500788F8600380305602131
74850 +:103DD000918F000B000F704001CF6821000D808093
74851 +:103DE000020510218C4B0000ACCB00548D840004E4
74852 +:103DF0008F83007400645023194000022482000164
74853 +:103E00002462000101074821ACC2005C0009308037
74854 +:103E100000C5402100E02021240500010E0020F40F
74855 +:103E20009110000B8F86003890C500FF10A0FF0C8A
74856 +:103E3000001070408F85007801D06821000D10803F
74857 +:103E4000004558218D6400008F8C0074018450233C
74858 +:103E50002547000104E0FF02263100013C03080170
74859 +:103E6000906396D62E2F0002247800013C010801B1
74860 +:103E7000A03896D63C010801A03496D711E0FEF890
74861 +:103E8000020038210A002365000740408F84003873
74862 +:103E90008F8300748C85005800A340230502FE9A8E
74863 +:103EA000AC8300580A00223B000000003C070801D8
74864 +:103EB00090E796F2240200FF10E200BE8F860038E1
74865 +:103EC0003C110801963196FA3C030801246396F8E8
74866 +:103ED000262500013230FFFF30ABFFFF02036021D7
74867 +:103EE0002D6A00FF1540008D918700043C010801F8
74868 +:103EF000A42096FA8F88003800074840012728211F
74869 +:103F0000911800FF000530802405000127140001EE
74870 +:103F1000A11400FF3C120801925296F28F8800789B
74871 +:103F20008F8E0070264F000100C820213C0108013F
74872 +:103F3000A02F96F2AC8E00008F8D0074A48500082F
74873 +:103F4000AC8D00043C030801906396D414600077A4
74874 +:103F5000000090213C010801A02596D4A087000B09
74875 +:103F60008F8C007800CC5021A147000A8F82003846
74876 +:103F7000A04700FD8F840038A08700FE8F860038A0
74877 +:103F80008F9F0070ACDF00548F990074ACD900583B
74878 +:103F90008F8D00780127C02100185880016DA02165
74879 +:103FA000928F000A000F704001CF18210003888013
74880 +:103FB000022D8021A207000B8F8600780166602108
74881 +:103FC000918A000B000A1040004A2021000428803A
74882 +:103FD00000A64021A107000A3C07800834E90080C0
74883 +:103FE0008D2200308F860038ACC2005C0A0022921D
74884 +:103FF0002414000190CA00FF1540FEAD8F880074A4
74885 +:10400000A0C400090A0021D78F860038A0C000FD97
74886 +:104010008F98003824060001A30000FE3C0108012F
74887 +:10402000A02696D53C010801A02096D40A0021C6FE
74888 +:104030000000000090CB00FF3C040801908496F340
74889 +:10404000316C00FF0184502B1540000F2402000347
74890 +:1040500024020004A0C200090A0021D78F8600387C
74891 +:1040600090C3000A2410FF8002035824316C00FF23
74892 +:104070001180FDC1000000003C010801A02096D580
74893 +:104080000A0021C600000000A0C200090A0021D7D2
74894 +:104090008F86003890D4000A2412FF8002544824EE
74895 +:1040A000312800FF1500FFF4240200083C0108013C
74896 +:1040B000A02296F10A0021D70000000000108840DD
74897 +:1040C0008F8B0070023018210003688001A7202127
74898 +:1040D000AC8B00008F8A0074240C0001A48C0008B3
74899 +:1040E000AC8A00043C05080190A596D62402000184
74900 +:1040F00010A2FE1E24A5FFFF0A0022519084000B8F
74901 +:104100000184A0231A80FD8B000000003C010801FF
74902 +:10411000A02E96D50A002305240B00013C010801BE
74903 +:10412000A42596FA0A0023B78F880038240B0001D3
74904 +:10413000106B00228F9800388F85003890BF00FFE9
74905 +:1041400033F900FF1079002B000000003C1F08012C
74906 +:1041500093FF96D8001FC840033FC0210018A080DD
74907 +:104160000288782191EE000AA08E000A8F8D0078D7
74908 +:104170003C030801906396D800CD88210A0023DD16
74909 +:10418000A223000B263000010600003101A4902379
74910 +:104190000640002B240200033C010801A02F96D505
74911 +:1041A0000A002305240B00018F8900380A00223BF6
74912 +:1041B000AD2700540A00229124120001931400FD3F
74913 +:1041C000A094000B8F8800388F8F0078910E00FE2E
74914 +:1041D00000CF6821A1AE000A8F910038A22700FD10
74915 +:1041E0008F8300708F900038AE0300540A0023DEE6
74916 +:1041F0008F8D007890B000FEA090000A8F8B003861
74917 +:104200008F8C0078916A00FD00CC1021A04A000B31
74918 +:104210008F840038A08700FE8F8600748F85003859
74919 +:10422000ACA600580A0023DE8F8D007894B80008F1
74920 +:10423000ACA40004030378210A002285A4AF00087F
74921 +:104240003C010801A02296D50A0021C6000000000A
74922 +:1042500090CF0009240D000431EE00FF11CDFD8543
74923 +:10426000240200013C010801A02296D50A0021C6C3
74924 +:1042700000000000080033440800334408003420E4
74925 +:10428000080033F4080033D8080033280800332826
74926 +:10429000080033280800334C8008010080080080A3
74927 +:1042A000800800005F865437E4AC62CC50103A4579
74928 +:1042B00036621985BF14C0E81BC27A1E84F4B55655
74929 +:1042C000094EA6FE7DDA01E7C04D748108005A74DC
74930 +:1042D00008005AB808005A5C08005A5C08005A5C8A
74931 +:1042E00008005A5C08005A7408005A5C08005A5CBE
74932 +:1042F00008005AC008005A5C080059D408005A5CEB
74933 +:1043000008005A5C08005AC008005A5C08005A5C51
74934 +:1043100008005A5C08005A5C08005A5C08005A5CA5
74935 +:1043200008005A5C08005A5C08005A5C08005A5C95
74936 +:1043300008005A9408005A5C08005A9408005A5C15
74937 +:1043400008005A5C08005A5C08005A9808005A9401
74938 +:1043500008005A5C08005A5C08005A5C08005A5C65
74939 +:1043600008005A5C08005A5C08005A5C08005A5C55
74940 +:1043700008005A5C08005A5C08005A5C08005A5C45
74941 +:1043800008005A5C08005A5C08005A5C08005A5C35
74942 +:1043900008005A5C08005A5C08005A5C08005A5C25
74943 +:1043A00008005A9808005A9808005A5C08005A9861
74944 +:1043B00008005A5C08005A5C08005A5C08005A5C05
74945 +:1043C00008005A5C08005A5C08005A5C08005A5CF5
74946 +:1043D00008005A5C08005A5C08005A5C08005A5CE5
74947 +:1043E00008005A5C08005A5C08005A5C08005A5CD5
74948 +:1043F00008005A5C08005A5C08005A5C08005A5CC5
74949 +:1044000008005A5C08005A5C08005A5C08005A5CB4
74950 +:1044100008005A5C08005A5C08005A5C08005A5CA4
74951 +:1044200008005A5C08005A5C08005A5C08005A5C94
74952 +:1044300008005A5C08005A5C08005A5C08005A5C84
74953 +:1044400008005A5C08005A5C08005A5C08005A5C74
74954 +:1044500008005A5C08005A5C08005A5C08005A5C64
74955 +:1044600008005A5C08005A5C08005A5C08005A5C54
74956 +:1044700008005A5C08005A5C08005A5C08005A5C44
74957 +:1044800008005A5C08005A5C08005A5C08005A5C34
74958 +:1044900008005A5C08005A5C08005A5C08005A5C24
74959 +:1044A00008005A5C08005A5C08005A5C08005A5C14
74960 +:1044B00008005A5C08005A5C08005A5C08005A5C04
74961 +:1044C00008005A5C08005A5C08005A5C08005ADC74
74962 +:1044D0000800782C08007A900800783808007628C0
74963 +:1044E00008007838080078C4080078380800762872
74964 +:1044F0000800762808007628080076280800762824
74965 +:104500000800762808007628080076280800762813
74966 +:1045100008007628080078580800784808007628AF
74967 +:1045200008007628080076280800762808007628F3
74968 +:1045300008007628080076280800762808007628E3
74969 +:1045400008007628080076280800762808007848B1
74970 +:10455000080082FC08008188080082C40800818865
74971 +:104560000800829408008070080081880800818813
74972 +:1045700008008188080081880800818808008188F7
74973 +:1045800008008188080081880800818808008188E7
74974 +:104590000800818808008188080081B008008D34F7
74975 +:1045A00008008E9008008E70080088D808008D4C96
74976 +:1045B0000A00012400000000000000000000000DBF
74977 +:1045C000747061362E322E31620000000602010145
74978 +:1045D00000000000000000000000000000000000DB
74979 +:1045E00000000000000000000000000000000000CB
74980 +:1045F00000000000000000000000000000000000BB
74981 +:1046000000000000000000000000000000000000AA
74982 +:10461000000000000000000000000000000000009A
74983 +:10462000000000000000000000000000000000008A
74984 +:10463000000000000000000000000000000000007A
74985 +:104640000000000010000003000000000000000D4A
74986 +:104650000000000D3C020800244217203C03080023
74987 +:1046600024632A10AC4000000043202B1480FFFD7F
74988 +:10467000244200043C1D080037BD2FFC03A0F0219C
74989 +:104680003C100800261004903C1C0800279C1720B2
74990 +:104690000E000262000000000000000D2402FF80F6
74991 +:1046A00027BDFFE000821024AFB00010AF42002011
74992 +:1046B000AFBF0018AFB10014936500043084007FD1
74993 +:1046C000034418213C0200080062182130A5002094
74994 +:1046D000036080213C080111277B000814A0000220
74995 +:1046E0002466005C2466005892020004974301048B
74996 +:1046F000920400043047000F3063FFFF3084004015
74997 +:10470000006728231080000900004821920200055C
74998 +:1047100030420004104000050000000010A000031B
74999 +:104720000000000024A5FFFC2409000492020005FB
75000 +:1047300030420004104000120000000010A00010E1
75001 +:10474000000000009602000200A72021010440257D
75002 +:104750002442FFFEA7421016920300042402FF80A9
75003 +:1047600000431024304200FF104000033C020400CC
75004 +:104770000A000174010240258CC20000AF421018EB
75005 +:104780008F4201780440FFFE2402000AA742014044
75006 +:1047900096020002240400093042000700021023A0
75007 +:1047A00030420007A7420142960200022442FFFE67
75008 +:1047B000A7420144A740014697420104A74201488D
75009 +:1047C0008F420108304200205040000124040001C3
75010 +:1047D00092020004304200101440000234830010A2
75011 +:1047E00000801821A743014A0000000000000000DB
75012 +:1047F0000000000000000000AF48100000000000B2
75013 +:104800000000000000000000000000008F421000C7
75014 +:104810000441FFFE3102FFFF1040000700000000CE
75015 +:1048200092020004304200401440000300000000E7
75016 +:104830008F421018ACC20000960200063042FFFF03
75017 +:10484000244200020002104300021040036288214B
75018 +:10485000962200001120000D3044FFFF00A7102118
75019 +:104860008F8300388F45101C0002108200021080D8
75020 +:1048700000431021AC45000030A6FFFF0E00058D5F
75021 +:1048800000052C0200402021A62200009203000413
75022 +:104890002402FF8000431024304200FF1040001F1C
75023 +:1048A0000000000092020005304200021040001B90
75024 +:1048B000000000009742100C2442FFFEA742101691
75025 +:1048C000000000003C02040034420030AF421000FF
75026 +:1048D00000000000000000000000000000000000D8
75027 +:1048E0008F4210000441FFFE000000009742100CB0
75028 +:1048F0008F45101C3042FFFF24420030000210821E
75029 +:1049000000021080005B1021AC45000030A6FFFFC4
75030 +:104910000E00058D00052C02A62200009604000260
75031 +:10492000248400080E0001E93084FFFF974401044D
75032 +:104930000E0001F73084FFFF8FBF00188FB1001405
75033 +:104940008FB000103C02100027BD002003E00008DB
75034 +:10495000AF4201783084FFFF308200078F8500244A
75035 +:1049600010400002248300073064FFF800A41021E7
75036 +:1049700030421FFF03421821247B4000AF850028EE
75037 +:10498000AF82002403E00008AF4200843084FFFFC0
75038 +:104990003082000F8F85002C8F860034104000027B
75039 +:1049A0002483000F3064FFF000A410210046182B70
75040 +:1049B000AF8500300046202314600002AF82002C37
75041 +:1049C000AF84002C8F82002C340480000342182115
75042 +:1049D00000641821AF83003803E00008AF42008074
75043 +:1049E0008F820014104000088F8200048F82FFDC49
75044 +:1049F000144000058F8200043C02FFBF3442FFFFD9
75045 +:104A0000008220248F82000430430006240200022A
75046 +:104A10001062000F3C0201012C62000350400005AF
75047 +:104A2000240200041060000F3C0200010A00023062
75048 +:104A30000000000010620005240200061462000C51
75049 +:104A40003C0201110A000229008210253C020011DB
75050 +:104A500000821025AF421000240200010A0002303B
75051 +:104A6000AF82000C00821025AF421000AF80000C16
75052 +:104A700000000000000000000000000003E000084B
75053 +:104A8000000000008F82000C1040000400000000B5
75054 +:104A90008F4210000441FFFE0000000003E0000808
75055 +:104AA000000000008F8200102443F800000231C291
75056 +:104AB00024C2FFF02C6303011060000300021042C7
75057 +:104AC0000A000257AC8200008F85001800C5102B29
75058 +:104AD0001440000B0000182100C5102324470001DA
75059 +:104AE0008F82001C00A210212442FFFF0046102BE1
75060 +:104AF000544000042402FFFF0A000257AC87000064
75061 +:104B00002402FFFF0A000260AC8200008C820000D9
75062 +:104B10000002194000621821000318800062182169
75063 +:104B2000000318803C0208002442175C0062182130
75064 +:104B300003E000080060102127BDFFD8AFBF0020B0
75065 +:104B4000AFB1001CAFB000183C0460088C8250006C
75066 +:104B50002403FF7F3C066000004310243442380CDD
75067 +:104B6000AC8250008CC24C1C3C1A80000002160221
75068 +:104B70003042000F10400007AF82001C8CC34C1C59
75069 +:104B80003C02001F3442FC0000621824000319C2DA
75070 +:104B9000AF8300188F420008275B400034420001B9
75071 +:104BA000AF420008AF8000243C02601CAF40008090
75072 +:104BB000AF4000848C4500088CC308083402800094
75073 +:104BC000034220212402FFF0006218243C020080EE
75074 +:104BD0003C010800AC2204203C025709AF84003895
75075 +:104BE00014620004AF850034240200010A0002921E
75076 +:104BF000AF820014AF8000148F42000038420001E1
75077 +:104C0000304200011440FFFC8F8200141040001657
75078 +:104C10000000000097420104104000058F8300004F
75079 +:104C2000146000072462FFFF0A0002A72C62000A3A
75080 +:104C30002C620010504000048F83000024620001A9
75081 +:104C4000AF8200008F8300002C62000A1440000332
75082 +:104C50002C6200070A0002AEAF80FFDC10400002A9
75083 +:104C600024020001AF82FFDC8F4301088F44010062
75084 +:104C700030622000AF83000410400008AF840010B1
75085 +:104C80003C0208008C42042C244200013C01080034
75086 +:104C9000AC22042C0A00058A3C0240003065020068
75087 +:104CA00014A0000324020F001482026024020D00ED
75088 +:104CB00097420104104002C83C02400030624000AC
75089 +:104CC000144000AD8F8200388C4400088F42017878
75090 +:104CD0000440FFFE24020800AF42017824020008CD
75091 +:104CE000A7420140A7400142974201048F8400047B
75092 +:104CF0003051FFFF30820001104000070220802168
75093 +:104D00002623FFFE240200023070FFFFA742014667
75094 +:104D10000A0002DBA7430148A74001463C02080005
75095 +:104D20008C42043C1440000D8F8300103082002020
75096 +:104D30001440000224030009240300010060202124
75097 +:104D40008F830010240209005062000134840004A3
75098 +:104D5000A744014A0A0002F60000000024020F00E6
75099 +:104D60001462000530820020144000062403000D68
75100 +:104D70000A0002F524030005144000022403000980
75101 +:104D800024030001A743014A3C0208008C4204208E
75102 +:104D90003C0400480E00020C004420250E000235A1
75103 +:104DA000000000008F82000C1040003E0000000058
75104 +:104DB0008F4210003C0300200043102410400039B3
75105 +:104DC0008F820004304200021040003600000000D4
75106 +:104DD000974210141440003300000000974210085E
75107 +:104DE0008F8800383042FFFF2442000600021882FC
75108 +:104DF0000003388000E83021304300018CC40000FB
75109 +:104E000010600004304200030000000D0A00033768
75110 +:104E100000E81021544000103084FFFF3C05FFFFE4
75111 +:104E200000852024008518260003182B0004102B71
75112 +:104E300000431024104000050000000000000000A6
75113 +:104E40000000000D00000000240002228CC20000BF
75114 +:104E50000A000336004520253883FFFF0003182B86
75115 +:104E60000004102B00431024104000050000000037
75116 +:104E7000000000000000000D000000002400022BD4
75117 +:104E80008CC200003444FFFF00E81021AC44000055
75118 +:104E90003C0208008C420430244200013C0108001E
75119 +:104EA000AC2204308F6200008F840038AF8200088B
75120 +:104EB0008C8300003402FFFF1462000F00001021F9
75121 +:104EC0003C0508008CA504543C0408008C84045064
75122 +:104ED00000B0282100B0302B008220210086202144
75123 +:104EE0003C010800AC2504543C010800AC240450EB
75124 +:104EF0000A000580240400088C8200003042010072
75125 +:104F00001040000F000010213C0508008CA5044C47
75126 +:104F10003C0408008C84044800B0282100B0302BE9
75127 +:104F200000822021008620213C010800AC25044C91
75128 +:104F30003C010800AC2404480A0005802404000851
75129 +:104F40003C0508008CA504443C0408008C84044003
75130 +:104F500000B0282100B0302B0082202100862021C3
75131 +:104F60003C010800AC2504443C010800AC2404408A
75132 +:104F70000A000580240400088F6200088F62000088
75133 +:104F800000021602304300F02402003010620005D7
75134 +:104F900024020040106200E08F8200200A00058891
75135 +:104FA0002442000114A000050000000000000000E1
75136 +:104FB0000000000D00000000240002568F4201781E
75137 +:104FC0000440FFFE000000000E00023D27A4001078
75138 +:104FD0001440000500408021000000000000000D8A
75139 +:104FE000000000002400025D8E0200001040000559
75140 +:104FF00000000000000000000000000D00000000A4
75141 +:10500000240002608F62000C0443000324020001AC
75142 +:105010000A00042EAE000000AE0200008F820038AD
75143 +:105020008C480008A20000078F65000C8F64000404
75144 +:1050300030A3FFFF0004240200852023308200FFFC
75145 +:105040000043102124420005000230832CC200815D
75146 +:10505000A605000A14400005A20400040000000098
75147 +:105060000000000D00000000240002788F85003849
75148 +:105070000E0005AB260400148F6200048F43010864
75149 +:10508000A60200083C02100000621824106000080C
75150 +:105090000000000097420104920300072442FFEC45
75151 +:1050A000346300023045FFFF0A0003C3A203000778
75152 +:1050B000974201042442FFF03045FFFF96060008A6
75153 +:1050C0002CC200135440000592030007920200070F
75154 +:1050D00034420001A20200079203000724020001EB
75155 +:1050E00010620005240200031062000B8F8200385A
75156 +:1050F0000A0003E030C6FFFF8F8200383C04FFFF48
75157 +:105100008C43000C0064182400651825AC43000C87
75158 +:105110000A0003E030C6FFFF3C04FFFF8C43001091
75159 +:105120000064182400651825AC43001030C6FFFF4A
75160 +:1051300024C2000200021083A20200058F830038FF
75161 +:10514000304200FF00021080004328218CA800009C
75162 +:105150008CA2000024030004000217021443001272
75163 +:1051600000000000974201043C03FFFF01031824E4
75164 +:105170003042FFFF004610232442FFFE006240251C
75165 +:10518000ACA8000092030005306200FF000210800E
75166 +:1051900000501021904200143042000F00431021B3
75167 +:1051A0000A000415A20200068CA400049742010420
75168 +:1051B0009603000A3088FFFF3042FFFF00461023AD
75169 +:1051C0002442FFD60002140001024025ACA80004CE
75170 +:1051D000920200079204000524630028000318834C
75171 +:1051E0000064182134420004A2030006A202000752
75172 +:1051F0008F8200042403FFFB34420002004310248A
75173 +:10520000AF820004920300068F87003800031880E5
75174 +:10521000007010218C4400203C02FFF63442FFFF56
75175 +:105220000082402400671821AE04000CAC68000C1A
75176 +:10523000920500063C03FF7F8E02000C00052880CB
75177 +:1052400000B020213463FFFF01033024948800263E
75178 +:1052500000A7282100431024AE02000CAC860020D9
75179 +:10526000AC880024ACA8001024020010A742014022
75180 +:1052700024020002A7400142A7400144A742014680
75181 +:10528000974201043C0400082442FFFEA742014863
75182 +:10529000240200010E00020CA742014A9603000AF4
75183 +:1052A0009202000400431021244200023042000711
75184 +:1052B00000021023304200070E000235AE0200103B
75185 +:1052C0008F6200003C0308008C6304442404001037
75186 +:1052D000AF820008974201043042FFFF2442FFFEE4
75187 +:1052E00000403821000237C33C0208008C420440D1
75188 +:1052F000006718210067282B004610210045102167
75189 +:105300003C010800AC2304443C010800AC220440EA
75190 +:105310000A0005150000000014A0000500000000B0
75191 +:10532000000000000000000D000000002400030A3F
75192 +:105330008F4201780440FFFE000000000E00023D95
75193 +:1053400027A4001414400005004080210000000044
75194 +:105350000000000D00000000240003118E02000078
75195 +:105360005440000692020007000000000000000DFB
75196 +:10537000000000002400031C9202000730420004D9
75197 +:10538000104000058F8200042403FFFB344200021A
75198 +:1053900000431024AF8200048F620004044300081D
75199 +:1053A00092020007920200068E03000CAE0000007D
75200 +:1053B0000002108000501021AC4300209202000730
75201 +:1053C00030420004544000099602000A920200058F
75202 +:1053D0003C03000100021080005010218C46001890
75203 +:1053E00000C33021AC4600189602000A9206000461
75204 +:1053F000277100080220202100C2302124C60005A8
75205 +:10540000260500140E0005AB00063082920400064B
75206 +:105410008F6500043C027FFF000420800091202162
75207 +:105420008C8300043442FFFF00A228240065182169
75208 +:10543000AC8300049202000792040005920300046A
75209 +:10544000304200041040001496070008308400FF2A
75210 +:1054500000042080009120218C86000497420104E2
75211 +:105460009605000A306300FF3042FFFF0043102121
75212 +:105470000045102130E3FFFF004310232442FFD8F2
75213 +:1054800030C6FFFF0002140000C23025AC860004C5
75214 +:105490000A0004C992030007308500FF0005288038
75215 +:1054A00000B128218CA4000097420104306300FF62
75216 +:1054B0003042FFFF00431021004710233C03FFFF51
75217 +:1054C000008320243042FFFF00822025ACA400008E
75218 +:1054D0009203000724020001106200060000000091
75219 +:1054E0002402000310620011000000000A0004EC16
75220 +:1054F0008E03001097420104920300049605000AEF
75221 +:105500008E24000C00431021004510212442FFF29C
75222 +:105510003C03FFFF008320243042FFFF0082202550
75223 +:10552000AE24000C0A0004EC8E0300109742010424
75224 +:10553000920300049605000A8E24001000431021F7
75225 +:10554000004510212442FFEE3C03FFFF008320248E
75226 +:105550003042FFFF00822025AE2400108E03001091
75227 +:105560002402000AA7420140A74301429603000A11
75228 +:10557000920200043C04004000431021A742014471
75229 +:10558000A740014697420104A742014824020001B6
75230 +:105590000E00020CA742014A0E0002350000000076
75231 +:1055A0008F6200009203000400002021AF820008F7
75232 +:1055B000974201049606000A3042FFFF006218215C
75233 +:1055C000006028213C0308008C6304443C0208006E
75234 +:1055D0008C42044000651821004410210065382BDE
75235 +:1055E000004710213C010800AC2304443C010800A2
75236 +:1055F000AC22044092040004008620212484000A86
75237 +:105600003084FFFF0E0001E9000000009744010410
75238 +:105610003084FFFF0E0001F7000000003C02100084
75239 +:10562000AF4201780A0005878F820020148200278C
75240 +:105630003062000697420104104000673C024000BF
75241 +:105640003062400010400005000000000000000033
75242 +:105650000000000D00000000240004208F420178AB
75243 +:105660000440FFFE24020800AF4201782402000833
75244 +:10567000A7420140A74001428F82000497430104E2
75245 +:1056800030420001104000073070FFFF2603FFFE8C
75246 +:1056900024020002A7420146A74301480A00053F31
75247 +:1056A0002402000DA74001462402000DA742014A32
75248 +:1056B0008F62000024040008AF8200080E0001E998
75249 +:1056C000000000000A0005190200202110400042DD
75250 +:1056D0003C02400093620000304300F024020010BE
75251 +:1056E0001062000524020070106200358F820020D5
75252 +:1056F0000A000588244200018F62000097430104DC
75253 +:105700003050FFFF3071FFFF8F4201780440FFFEF1
75254 +:105710003202000700021023304200072403000A6F
75255 +:105720002604FFFEA7430140A7420142A7440144CB
75256 +:10573000A7400146A75101488F420108304200208E
75257 +:10574000144000022403000924030001A743014A76
75258 +:105750000E00020C3C0400400E0002350000000068
75259 +:105760003C0708008CE70444021110212442FFFE8C
75260 +:105770003C0608008CC604400040182100E3382194
75261 +:10578000000010218F65000000E3402B00C2302193
75262 +:105790002604000800C830213084FFFFAF850008D0
75263 +:1057A0003C010800AC2704443C010800AC2604403E
75264 +:1057B0000E0001E9000000000A0005190220202166
75265 +:1057C0000E00013B000000008F82002024420001F7
75266 +:1057D000AF8200203C024000AF4201380A00029232
75267 +:1057E000000000003084FFFF30C6FFFF00052C00E2
75268 +:1057F00000A628253882FFFF004510210045282BF0
75269 +:105800000045102100021C023042FFFF004310211E
75270 +:1058100000021C023042FFFF004310213842FFFF0C
75271 +:1058200003E000083042FFFF3084FFFF30A5FFFF98
75272 +:1058300000001821108000070000000030820001E5
75273 +:105840001040000200042042006518210A0005A152
75274 +:105850000005284003E000080060102110C0000689
75275 +:1058600024C6FFFF8CA2000024A50004AC82000027
75276 +:105870000A0005AB2484000403E0000800000000D7
75277 +:1058800010A0000824A3FFFFAC8600000000000069
75278 +:10589000000000002402FFFF2463FFFF1462FFFAF0
75279 +:1058A0002484000403E00008000000000000000160
75280 +:1058B0000A00002A00000000000000000000000DA7
75281 +:1058C000747870362E322E3162000000060201001C
75282 +:1058D00000000000000001360000EA600000000047
75283 +:1058E00000000000000000000000000000000000B8
75284 +:1058F00000000000000000000000000000000000A8
75285 +:105900000000000000000000000000000000000097
75286 +:105910000000001600000000000000000000000071
75287 +:105920000000000000000000000000000000000077
75288 +:105930000000000000000000000000000000000067
75289 +:1059400000000000000000000000138800000000BC
75290 +:10595000000005DC00000000000000001000000353
75291 +:10596000000000000000000D0000000D3C020800D7
75292 +:1059700024423D683C0308002463401CAC40000006
75293 +:105980000043202B1480FFFD244200043C1D08002E
75294 +:1059900037BD7FFC03A0F0213C100800261000A8B2
75295 +:1059A0003C1C0800279C3D680E00044E00000000CF
75296 +:1059B0000000000D27BDFFB4AFA10000AFA200049E
75297 +:1059C000AFA30008AFA4000CAFA50010AFA6001451
75298 +:1059D000AFA70018AFA8001CAFA90020AFAA0024F1
75299 +:1059E000AFAB0028AFAC002CAFAD0030AFAE003491
75300 +:1059F000AFAF0038AFB8003CAFB90040AFBC004417
75301 +:105A0000AFBF00480E000591000000008FBF0048A6
75302 +:105A10008FBC00448FB900408FB8003C8FAF003876
75303 +:105A20008FAE00348FAD00308FAC002C8FAB0028D0
75304 +:105A30008FAA00248FA900208FA8001C8FA7001810
75305 +:105A40008FA600148FA500108FA4000C8FA3000850
75306 +:105A50008FA200048FA1000027BD004C3C1B6004F6
75307 +:105A60008F7A5030377B502803400008AF7A00000F
75308 +:105A70008F86003C3C0390003C0280000086282575
75309 +:105A800000A32025AC4400203C0380008C6700204C
75310 +:105A900004E0FFFE0000000003E00008000000003A
75311 +:105AA0000A000070240400018F85003C3C04800043
75312 +:105AB0003483000100A3102503E00008AC8200201D
75313 +:105AC00003E00008000010213084FFFF30A5FFFF35
75314 +:105AD00010800007000018213082000110400002F1
75315 +:105AE00000042042006518211480FFFB00052840B7
75316 +:105AF00003E000080060102110C000070000000053
75317 +:105B00008CA2000024C6FFFF24A50004AC82000084
75318 +:105B100014C0FFFB2484000403E000080000000020
75319 +:105B200010A0000824A3FFFFAC86000000000000C6
75320 +:105B3000000000002402FFFF2463FFFF1462FFFA4D
75321 +:105B40002484000403E000080000000090AA003153
75322 +:105B50008FAB00108CAC00403C0300FF8D6800044C
75323 +:105B6000AD6C00208CAD004400E060213462FFFF8A
75324 +:105B7000AD6D00248CA700483C09FF000109C0243A
75325 +:105B8000AD6700288CAE004C0182C824031978252B
75326 +:105B9000AD6F0004AD6E002C8CAD0038314A00FFB3
75327 +:105BA000AD6D001C94A900323128FFFFAD680010D4
75328 +:105BB00090A70030A5600002A1600004A16700006A
75329 +:105BC00090A30032306200FF0002198210600005CD
75330 +:105BD000240500011065000E0000000003E000082D
75331 +:105BE000A16A00018CD80028354A0080AD780018E1
75332 +:105BF0008CCF0014AD6F00148CCE0030AD6E000859
75333 +:105C00008CC4002CA16A000103E00008AD64000C04
75334 +:105C10008CCD001CAD6D00188CC90014AD6900144A
75335 +:105C20008CC80024AD6800088CC70020AD67000C4C
75336 +:105C30008CC200148C8300700043C82B1320000713
75337 +:105C4000000000008CC20014144CFFE400000000AF
75338 +:105C5000354A008003E00008A16A00018C820070D0
75339 +:105C60000A0000E6000000009089003027BDFFF820
75340 +:105C70008FA8001CA3A900008FA300003C0DFF808B
75341 +:105C800035A2FFFF8CAC002C00625824AFAB0000A3
75342 +:105C9000A100000400C05821A7A000028D06000446
75343 +:105CA00000A048210167C8218FA500000080502175
75344 +:105CB0003C18FF7F032C20263C0E00FF2C8C00019B
75345 +:105CC000370FFFFF35CDFFFF3C02FF0000AFC824B8
75346 +:105CD00000EDC02400C27824000C1DC003236825F9
75347 +:105CE00001F87025AD0D0000AD0E00048D240024D8
75348 +:105CF000AFAD0000AD0400088D2C00202404FFFF90
75349 +:105D0000AD0C000C9547003230E6FFFFAD060010E9
75350 +:105D10009145004830A200FF000219C25060000106
75351 +:105D20008D240034AD0400148D4700388FAA00186C
75352 +:105D300027BD0008AD0B0028AD0A0024AD07001CEC
75353 +:105D4000AD00002CAD00001803E00008AD000020FD
75354 +:105D500027BDFFE0AFB20018AFB10014AFB0001024
75355 +:105D6000AFBF001C9098003000C088213C0D00FFA0
75356 +:105D7000330F007FA0CF0000908E003135ACFFFFC5
75357 +:105D80003C0AFF00A0CE000194A6001EA220000441
75358 +:105D90008CAB00148E29000400A08021016C282403
75359 +:105DA000012A40240080902101052025A62600021A
75360 +:105DB000AE24000426050020262400080E000092D0
75361 +:105DC00024060002924700302605002826240014ED
75362 +:105DD00000071E000003160324060004044000030D
75363 +:105DE0002403FFFF965900323323FFFF0E00009279
75364 +:105DF000AE230010262400248FBF001C8FB2001891
75365 +:105E00008FB100148FB00010240500030000302172
75366 +:105E10000A00009C27BD002027BDFFD8AFB1001CA1
75367 +:105E2000AFB00018AFBF002090A9003024020001DD
75368 +:105E300000E050213123003F00A040218FB00040FE
75369 +:105E40000080882100C04821106200148FA700380C
75370 +:105E5000240B000500A0202100C02821106B001396
75371 +:105E6000020030210E000128000000009225007C75
75372 +:105E700030A400021080000326030030AE00003082
75373 +:105E8000260300348FBF00208FB1001C8FB0001894
75374 +:105E90000060102103E0000827BD00280E0000A7C5
75375 +:105EA000AFB000100A00016F000000008FA3003C9B
75376 +:105EB000010020210120282101403021AFA3001042
75377 +:105EC0000E0000EEAFB000140A00016F00000000E9
75378 +:105ED0003C06800034C20E008C4400108F850044C4
75379 +:105EE000ACA400208C43001803E00008ACA30024FD
75380 +:105EF0003C06800034C20E008C4400148F850044A0
75381 +:105F0000ACA400208C43001C03E00008ACA30024D8
75382 +:105F10009382000C1040001B2483000F2404FFF028
75383 +:105F20000064382410E00019978B00109784000E4D
75384 +:105F30009389000D3C0A601C0A0001AC01644023F7
75385 +:105F400001037021006428231126000231C2FFFFE3
75386 +:105F500030A2FFFF0047302B50C0000E00E4482164
75387 +:105F60008D4D000C31A3FFFF00036400000C2C03D7
75388 +:105F700004A1FFF30000302130637FFF0A0001A479
75389 +:105F80002406000103E00008000000009784000ED2
75390 +:105F900000E448213123FFFF3168FFFF0068382B00
75391 +:105FA00054E0FFF8A783000E938A000D114000050E
75392 +:105FB000240F0001006BC023A380000D03E0000844
75393 +:105FC000A798000E006BC023A38F000D03E000080C
75394 +:105FD000A798000E03E000080000000027BDFFE8BE
75395 +:105FE000AFB000103C10800036030140308BFFFF43
75396 +:105FF00093AA002BAFBF0014A46B000436040E005C
75397 +:106000009488001630C600FF8FA90030A4680006EF
75398 +:10601000AC650008A0660012A46A001AAC670020F4
75399 +:106020008FA5002CA4690018012020210E000198E2
75400 +:10603000AC6500143C021000AE0201788FBF001462
75401 +:106040008FB0001003E0000827BD00188F85000006
75402 +:106050002484000727BDFFF83084FFF83C06800049
75403 +:1060600094CB008A316AFFFFAFAA00008FA900001D
75404 +:10607000012540232507FFFF30E31FFF0064102B9D
75405 +:106080001440FFF700056882000D288034CC4000E2
75406 +:1060900000AC102103E0000827BD00088F8200003B
75407 +:1060A0002486000730C5FFF800A2182130641FFFC6
75408 +:1060B00003E00008AF8400008F87003C8F84004419
75409 +:1060C00027BDFFB0AFB70044AFB40038AFB1002C6C
75410 +:1060D000AFBF0048AFB60040AFB5003CAFB300342F
75411 +:1060E000AFB20030AFB000283C0B80008C8600249B
75412 +:1060F000AD6700808C8A002035670E00356901008D
75413 +:10610000ACEA00108C8800248D2500040000B82122
75414 +:10611000ACE800188CE3001000A688230000A02142
75415 +:10612000ACE300148CE20018ACE2001C122000FE6C
75416 +:1061300000E0B021936C0008118000F40000000022
75417 +:10614000976F001031EEFFFF022E682B15A000EFB5
75418 +:1061500000000000977200103250FFFFAED0000028
75419 +:106160003C0380008C740000329300081260FFFD35
75420 +:106170000000000096D800088EC700043305FFFF1A
75421 +:1061800030B5000112A000E4000000000000000D86
75422 +:1061900030BFA0402419004013F9011B30B4A00007
75423 +:1061A000128000DF000000009373000812600008F6
75424 +:1061B00000000000976D001031ACFFFF00EC202BB9
75425 +:1061C0001080000330AE004011C000D50000000078
75426 +:1061D000A7850040AF87003893630008022028217C
75427 +:1061E000AFB10020146000F527B40020AF60000CB0
75428 +:1061F000978F004031F14000162000022403001662
75429 +:106200002403000E24054007A363000AAF650014B1
75430 +:10621000938A00428F70001431550001001512401E
75431 +:1062200002024825AF690014979F00408F78001440
75432 +:1062300033F9001003194025AF680014979200400D
75433 +:106240003247000810E0016E000000008F67001464
75434 +:106250003C1210003C11800000F27825AF6F001452
75435 +:1062600036230E00946E000A3C0D81002406000EB9
75436 +:1062700031CCFFFF018D2025AF640004A36600022E
75437 +:106280009373000A3406FFFC266B0004A36B000A1C
75438 +:1062900097980040330820001100015F00000000C3
75439 +:1062A0003C05800034A90E00979900409538000CF9
75440 +:1062B00097870040001940423312C00031030003A9
75441 +:1062C00000127B0330F11000006F6825001172038B
75442 +:1062D00001AE6025000C20C0A76400129793004017
75443 +:1062E000936A000A001359823175003C02AA1021FA
75444 +:1062F0002450003CA3700009953F000C33F93FFF88
75445 +:10630000A779001097700012936900090130F821F5
75446 +:1063100027E5000230B900070019C0233308000741
75447 +:10632000A368000B9371000997720012976F001019
75448 +:10633000322700FF8F910038978D004000F218211E
75449 +:10634000006F702101C6602131A6004010C0000519
75450 +:106350003185FFFF00B1102B3C1280001040001768
75451 +:10636000000098210225A82B56A0013E8FA50020F1
75452 +:106370003C048000348A0E008D5300143C068000DB
75453 +:10638000AD5300108D4B001CAD4B0018AD45000007
75454 +:106390008CCD000031AC00081180FFFD34CE0E0022
75455 +:1063A00095C3000800A0882100009021A783004029
75456 +:1063B0008DC6000424130001AF860038976F0010CB
75457 +:1063C00031F5FFFF8E9F000003F1282310A0011F6D
75458 +:1063D000AE85000093620008144000DD000000005C
75459 +:1063E0000E0001E7240400108F900048004028218F
75460 +:1063F0003C023200320600FF000654000142F8253C
75461 +:1064000026090001AF890048ACBF0000937900095C
75462 +:1064100097780012936F000A332800FF3303FFFFC1
75463 +:106420000103382100076C0031EE00FF01AE60254A
75464 +:10643000ACAC00048F840048978B0040316A200088
75465 +:106440001140010AACA4000897640012308BFFFFD2
75466 +:1064500006400108ACAB000C978E004031C5000827
75467 +:1064600014A0000226280006262800023C1F8000F7
75468 +:1064700037E70E0094F900148CE5001C8F670004C8
75469 +:10648000937800023324FFFF330300FFAFA3001013
75470 +:106490008F6F0014AFA800180E0001CBAFAF00142F
75471 +:1064A000240400100E0001FB000000008E9200008A
75472 +:1064B00016400005000000008F7800142403FFBF81
75473 +:1064C0000303A024AF7400148F67000C00F5C821EB
75474 +:1064D000AF79000C9375000816A0000800000000BA
75475 +:1064E00012600006000000008F6800143C0AEFFFF5
75476 +:1064F0003549FFFE0109F824AF7F0014A37300089B
75477 +:106500008FA500200A00034F02202021AED10000F9
75478 +:106510000A00022D3C03800014E0FF1E30BFA040A3
75479 +:106520000E0001900000A0212E9100010237B0253D
75480 +:1065300012C000188FBF00488F87003C24170F003F
75481 +:1065400010F700D43C0680008CD901780720FFFEAC
75482 +:10655000241F0F0010FF00F634CA0E008D560014E1
75483 +:1065600034C7014024080240ACF600048D49001CE9
75484 +:106570003C141000ACE90008A0E00012A4E0001AEE
75485 +:10658000ACE00020A4E00018ACE80014ACD4017822
75486 +:106590008FBF00488FB700448FB600408FB5003CD6
75487 +:1065A0008FB400388FB300348FB200308FB1002C1D
75488 +:1065B0008FB0002803E0000827BD00508F910038FD
75489 +:1065C000978800403C1280000220A821310700403B
75490 +:1065D00014E0FF7C00009821977900108F9200381A
75491 +:1065E0003338FFFF131200A8000020210080A021F3
75492 +:1065F000108000F300A088211620FECE00000000CD
75493 +:106600000A00031F2E9100013C0380008C62017878
75494 +:106610000440FFFE240808008F860000AC68017863
75495 +:106620003C038000946D008A31ACFFFF0186582343
75496 +:10663000256AFFFF31441FFF2C8900081520FFF950
75497 +:10664000000000008F8F0048347040008F83003CB2
75498 +:1066500000E0A021240E0F0025E70001AF870048CD
75499 +:1066600000D03021023488233C08800031F500FF3F
75500 +:10667000106E0005240700019398004233130001B7
75501 +:106680000013924036470001001524003C0A010027
75502 +:10669000008A4825ACC900008F82004830BF003610
75503 +:1066A00030B90008ACC200041320009900FF9825FF
75504 +:1066B00035120E009650000A8F8700003C0F8100B3
75505 +:1066C0003203FFFF24ED000835060140006F60250E
75506 +:1066D0003C0E100031AB1FFF269200062405000E71
75507 +:1066E000ACCC0020026E9825A4C5001AAF8B000028
75508 +:1066F000A4D20018162000083C1080008F89003CAE
75509 +:1067000024020F00512200022417000136730040BA
75510 +:106710000E0001883C10800036060E008CCB001461
75511 +:10672000360A014002402021AD4B00048CC5001CFC
75512 +:10673000AD450008A1550012AD5300140E0001989C
75513 +:106740003C151000AE1501780A000352000000004D
75514 +:10675000936F0009976E0012936D000B31E500FFF7
75515 +:1067600000AE202131AC00FF008C80212602000AFF
75516 +:106770003050FFFF0E0001E7020020218F86004805
75517 +:106780003C0341003C05800024CB0001AF8B004856
75518 +:10679000936A00099769001230C600FF315F00FF5D
75519 +:1067A0003128FFFF03E8382124F900020006C40065
75520 +:1067B0000319782501E37025AC4E00008F6D000CA5
75521 +:1067C00034A40E00948B001401B26025AC4C00047C
75522 +:1067D0008C85001C8F670004936A00023164FFFF00
75523 +:1067E000314900FFAFA900108F680014AFB1001845
75524 +:1067F0000E0001CBAFA800140A0002FD0200202108
75525 +:10680000AF600004A36000029798004033082000A6
75526 +:106810001500FEA300003021A760001297840040FD
75527 +:10682000936B000A3C10800030931F0000135183CB
75528 +:10683000014BA82126A20028A362000936090E00F8
75529 +:10684000953F000C0A000295A77F00108F7000147E
75530 +:10685000360900400E000188AF6900140A0002C921
75531 +:10686000000000000A00034F000020210641FEFA4C
75532 +:10687000ACA0000C8CAC000C3C0D8000018D902570
75533 +:106880000A0002EAACB2000C000090210A0002C526
75534 +:1068900024130001128000073C028000344B0E00DC
75535 +:1068A0009566000830D300401260004900000000E7
75536 +:1068B0003C0680008CD001780600FFFE34C50E0037
75537 +:1068C00094B500103C03050034CC014032B8FFFF02
75538 +:1068D00003039025AD92000C8CAF0014240D200012
75539 +:1068E0003C041000AD8F00048CAE001CAD8E00087F
75540 +:1068F000A1800012A580001AAD800020A58000189C
75541 +:10690000AD8D0014ACC401780A0003263C0680005B
75542 +:106910008F9F0000351801402692000227F90008D9
75543 +:1069200033281FFFA71200180A000391AF88000048
75544 +:106930003C02800034450140ACA0000C1280001BDA
75545 +:1069400034530E0034510E008E370010ACB70004E3
75546 +:106950008E2400183C0B8000ACA400083570014068
75547 +:1069600024040040A20000128FBF0048A600001AB5
75548 +:106970008FB70044AE0000208FB60040A60000187C
75549 +:106980008FB5003CAE0400148FB400388FB30034D0
75550 +:106990008FB200308FB1002C8FB000283C02100065
75551 +:1069A00027BD005003E00008AD6201788E66001438
75552 +:1069B000ACA600048E64001C0A00042A3C0B800074
75553 +:1069C0000E0001902E9100010A0003200237B0252D
75554 +:1069D000000000000000000D00000000240003691A
75555 +:1069E0000A0004013C06800027BDFFD8AFBF00208D
75556 +:1069F0003C0980003C1F20FFAFB200183C0760003C
75557 +:106A000035320E002402001037F9FFFDACE23008E9
75558 +:106A1000AFB3001CAFB10014AFB00010AE5900000E
75559 +:106A20000000000000000000000000000000000066
75560 +:106A3000000000003C1800FF3713FFFDAE530000BC
75561 +:106A40003C0B60048D7050002411FF7F3C0E00024F
75562 +:106A50000211782435EC380C35CD0109ACED4C1819
75563 +:106A6000240A0009AD6C50008CE80438AD2A0008F7
75564 +:106A7000AD2000148CE54C1C3106FFFF38C42F718B
75565 +:106A800000051E023062000F2486C0B310400007CC
75566 +:106A9000AF8200088CE54C1C3C09001F3528FC0027
75567 +:106AA00000A81824000321C2AF8400048CF1080858
75568 +:106AB0003C0F57092412F0000232702435F0001008
75569 +:106AC00001D0602601CF68262DAA00012D8B000180
75570 +:106AD000014B382550E00009A380000C3C1F601CCE
75571 +:106AE0008FF8000824190001A399000C33137C00CF
75572 +:106AF000A7930010A780000EA380000DAF80004870
75573 +:106B000014C00003AF8000003C066000ACC0442C01
75574 +:106B10000E0005B93C1080000E000F1A361101005E
75575 +:106B20003C12080026523DD03C13080026733E500C
75576 +:106B30008E03000038640001308200011440FFFC25
75577 +:106B40003C0B800A8E2600002407FF8024C90240E7
75578 +:106B5000312A007F014B402101272824AE06002066
75579 +:106B6000AF880044AE0500243C048000AF86003CA2
75580 +:106B70008C8C01780580FFFE24180800922F0008F5
75581 +:106B8000AC980178A38F0042938E004231CD000172
75582 +:106B900011A0000F24050D0024DFF8002FF90301D8
75583 +:106BA0001320001C000629C224A4FFF00004104298
75584 +:106BB000000231400E00020200D2D8213C02400007
75585 +:106BC0003C068000ACC201380A0004A000000000AE
75586 +:106BD00010C50023240D0F0010CD00273C1F800896
75587 +:106BE00037F9008093380000240E0050330F00FF67
75588 +:106BF00015EEFFF33C0240000E000A3600000000D4
75589 +:106C00003C0240003C068000ACC201380A0004A0EF
75590 +:106C1000000000008F83000400A3402B1500000B30
75591 +:106C20008F8B0008006B50212547FFFF00E5482BA4
75592 +:106C30001520000600A36023000C19400E0002027C
75593 +:106C40000073D8210A0004C43C0240000000000D7B
75594 +:106C50000E000202000000000A0004C43C024000D2
75595 +:106C60003C1B0800277B3F500E0002020000000082
75596 +:106C70000A0004C43C0240003C1B0800277B3F7014
75597 +:106C80000E000202000000000A0004C43C024000A2
75598 +:106C90003C0660043C09080025290104ACC9502CBD
75599 +:106CA0008CC850003C0580003C0200023507008083
75600 +:106CB000ACC750003C040800248415A43C03080021
75601 +:106CC0002463155CACA50008ACA2000C3C010800D4
75602 +:106CD000AC243D603C010800AC233D6403E00008A7
75603 +:106CE0002402000100A030213C1C0800279C3D68C4
75604 +:106CF0003C0C04003C0B0002008B3826008C402624
75605 +:106D00002CE200010007502B2D050001000A4880ED
75606 +:106D10003C03080024633D60004520250123182121
75607 +:106D20001080000300001021AC6600002402000166
75608 +:106D300003E00008000000003C1C0800279C3D68A0
75609 +:106D40003C0B04003C0A0002008A3026008B3826E7
75610 +:106D50002CC200010006482B2CE5000100094080F0
75611 +:106D60003C03080024633D600045202501031821F1
75612 +:106D700010800005000010213C0C0800258C155CDB
75613 +:106D8000AC6C00002402000103E0000800000000D9
75614 +:106D90003C0900023C08040000883026008938269F
75615 +:106DA0002CC30001008028212CE400010083102561
75616 +:106DB0001040000B000030213C1C0800279C3D685F
75617 +:106DC0003C0A80008D4E00082406000101CA682597
75618 +:106DD000AD4D00088D4C000C01855825AD4B000CC5
75619 +:106DE00003E0000800C010213C1C0800279C3D68FF
75620 +:106DF0003C0580008CA6000C000420272402000122
75621 +:106E000000C4182403E00008ACA3000C3C020002FC
75622 +:106E10001082000B3C0560003C0704001087000353
75623 +:106E20000000000003E00008000000008CA908D06A
75624 +:106E3000240AFFFD012A402403E00008ACA808D082
75625 +:106E40008CA408D02406FFFE0086182403E0000866
75626 +:106E5000ACA308D03C05601A34A600108CC3008097
75627 +:106E600027BDFFF88CC50084AFA3000093A40000E9
75628 +:106E70002402000110820003AFA5000403E0000813
75629 +:106E800027BD000893A7000114E0001497AC00028E
75630 +:106E900097B800023C0F8000330EFFFC01CF682141
75631 +:106EA000ADA50000A3A000003C0660008CC708D080
75632 +:106EB0002408FFFE3C04601A00E82824ACC508D072
75633 +:106EC0008FA300048FA200003499001027BD000892
75634 +:106ED000AF22008003E00008AF2300843C0B800059
75635 +:106EE000318AFFFC014B48218D2800000A00057DF6
75636 +:106EF000AFA8000427BDFFE8AFBF00103C1C08008E
75637 +:106F0000279C3D683C0580008CA4000C8CA20004EA
75638 +:106F10003C0300020044282410A0000A00A3182407
75639 +:106F20003C0604003C0400021460000900A6102482
75640 +:106F30001440000F3C0404000000000D3C1C08003D
75641 +:106F4000279C3D688FBF001003E0000827BD001894
75642 +:106F50003C0208008C423D600040F809000000003F
75643 +:106F60003C1C0800279C3D680A0005A68FBF001046
75644 +:106F70003C0208008C423D640040F809000000001B
75645 +:106F80000A0005AC00000000000411C003E0000886
75646 +:106F9000244202403C04080024843FB42405001A23
75647 +:106FA0000A00009C0000302127BDFFE0AFB00010B8
75648 +:106FB0003C108000AFBF0018AFB1001436110100C3
75649 +:106FC000922200090E0005B63044007F8E3F00007B
75650 +:106FD0008F89003C3C0F008003E26021258800403F
75651 +:106FE0000049F821240DFF80310E00783198007897
75652 +:106FF00035F9000135F100020319382501D1482582
75653 +:10700000010D302403ED5824018D2824240A00406A
75654 +:1070100024040080240300C0AE0B0024AE0008103E
75655 +:10702000AE0A0814AE040818AE03081CAE05080426
75656 +:10703000AE070820AE060808AE0908243609090084
75657 +:107040009539000C3605098033ED007F3338FFFF9A
75658 +:10705000001889C0AE110800AE0F0828952C000C4E
75659 +:107060008FBF00188FB10014318BFFFF000B51C090
75660 +:10707000AE0A002C8CA400508FB000108CA3003CF2
75661 +:107080008D2700048CA8001C8CA600383C0E800ABA
75662 +:1070900001AE102127BD0020AF820044AF84005014
75663 +:1070A000AF830054AF87004CAF88005C03E000085A
75664 +:1070B000AF8600603C09080091293FD924A800024E
75665 +:1070C0003C05110000093C0000E8302500C51825EA
75666 +:1070D00024820008AC83000003E00008AC800004B8
75667 +:1070E0003C098000352309009128010B906A0011AA
75668 +:1070F0002402002800804821314700FF00A07021B1
75669 +:1071000000C068213108004010E20002340C86DD26
75670 +:10711000240C08003C0A800035420A9A944700007B
75671 +:10712000354B0A9C35460AA030F9FFFFAD39000007
75672 +:107130008D780000354B0A8024040001AD3800042E
75673 +:107140008CCF0000AD2F00089165001930A300031B
75674 +:107150001064009028640002148000AF240500022F
75675 +:107160001065009E240F0003106F00B435450AA47B
75676 +:10717000240A0800118A0048000000005100003D68
75677 +:107180003C0B80003C0480003483090090670012AF
75678 +:1071900030E200FF004D7821000FC8802724000155
75679 +:1071A0003C0A8000354F090091E50019354C0980F3
75680 +:1071B0008D87002830A300FF0003150000475825E5
75681 +:1071C0000004C4003C19600001793025370806FF2F
75682 +:1071D000AD260000AD2800048DEA002C25280028EB
75683 +:1071E000AD2A00088DEC0030AD2C000C8DE500348C
75684 +:1071F000AD2500108DE400383C05800034AC093C1E
75685 +:10720000AD2400148DE3001CAD2300188DE7002091
75686 +:10721000AD27001C8DE20024AD2200208DF900284E
75687 +:1072200034A20100AD3900248D830000AD0E0004AE
75688 +:1072300034B90900AD0300008C47000C250200148E
75689 +:10724000AD070008932B00123C04080090843FD83F
75690 +:10725000AD000010317800FF030D302100064F0013
75691 +:1072600000047C00012F702535CDFFFC03E00008F1
75692 +:10727000AD0D000C35780900930600123C0508009E
75693 +:1072800094A53FC830C800FF010D5021000A60805E
75694 +:107290000A00063C018520211500005B000000006B
75695 +:1072A0003C08080095083FCE3C06080094C63FC83D
75696 +:1072B000010610213C0B800035790900933800113C
75697 +:1072C000932A001935660A80330800FF94CF002AFC
75698 +:1072D00000086082314500FF978A0058000C1E00AC
75699 +:1072E000000524003047FFFF006410250047C0253B
75700 +:1072F00001EA30213C0B4000030B402500066400EE
75701 +:10730000AD280000AD2C0004932500183C030006B6
75702 +:107310002528001400053E0000E31025AD220008DA
75703 +:107320008F24002C3C05800034AC093CAD24000CBB
75704 +:107330008F38001C34A20100254F0001AD38001029
75705 +:107340008D830000AD0E000431EB7FFFAD03000024
75706 +:107350008C47000C34B90900A78B0058AD07000812
75707 +:10736000932B00123C04080090843FD8250200149F
75708 +:10737000317800FF030D302100064F0000047C002F
75709 +:10738000012F702535CDFFFCAD00001003E0000893
75710 +:10739000AD0D000C3C02080094423FD23C050800B1
75711 +:1073A00094A53FC835440AA43C07080094E73FC4AD
75712 +:1073B000948B00000045C8210327C023000B1C004C
75713 +:1073C0002706FFF200665025AD2A000CAD20001004
75714 +:1073D000AD2C00140A00063025290018354F0AA4E8
75715 +:1073E00095E50000956400280005140000043C00A9
75716 +:1073F0003459810000EC5825AD39000CAD2B00103C
75717 +:107400000A000630252900143C0C0800958C3FCE5C
75718 +:107410000A000681258200015460FF56240A0800F4
75719 +:1074200035580AA49706000000061C00006C502581
75720 +:10743000AD2A000C0A000630252900103C03080084
75721 +:1074400094633FD23C07080094E73FC83C0F080014
75722 +:1074500095EF3FC494A4000095790028006710219F
75723 +:10746000004F582300041C00001934002578FFEE5B
75724 +:1074700000D87825346A8100AD2A000CAD2F0010A9
75725 +:10748000AD200014AD2C00180A0006302529001C80
75726 +:1074900003E00008240207D027BDFFE0AFB20018C8
75727 +:1074A000AFB10014AFB00010AFBF001C0E00007CE5
75728 +:1074B000008088218F8800548F87004C3C0580080D
75729 +:1074C00034B20080011128213C1080002402008089
75730 +:1074D000240300C000A72023AE0208183C06800841
75731 +:1074E000AE03081C18800004AF850054ACC500042E
75732 +:1074F0008CC90004AF89004C1220000936040980B1
75733 +:107500000E0006F800000000924C00278E0B00745D
75734 +:1075100001825004014B3021AE46000C3604098034
75735 +:107520008C8E001C8F8F005C01CF682319A0000493
75736 +:107530008FBF001C8C90001CAF90005C8FBF001CA4
75737 +:107540008FB200188FB100148FB000100A00007EB7
75738 +:1075500027BD00208F8600508F8300548F82004CFF
75739 +:107560003C05800834A40080AC860050AC83003C0D
75740 +:1075700003E00008ACA200043C0308008C63005444
75741 +:1075800027BDFFF8308400FF2462000130A500FF12
75742 +:107590003C010800AC22005430C600FF3C078000CC
75743 +:1075A0008CE801780500FFFE3C0C7FFFA3A40003DC
75744 +:1075B0008FAA0000358BFFFF014B4824000627C02F
75745 +:1075C00001244025AFA8000034E201009043000AE6
75746 +:1075D000A3A000023C1980FFA3A300018FAF00000D
75747 +:1075E00030AE007F3738FFFF01F86024000E6E00D8
75748 +:1075F0003C0A002034E50140018D58253549200022
75749 +:107600002406FF803C04100027BD0008ACAB000C32
75750 +:10761000ACA90014A4A00018A0A6001203E0000862
75751 +:10762000ACE40178308800FF30A700FF3C03800005
75752 +:107630008C6201780440FFFE3C0C8000358A0A0011
75753 +:107640008D4B00203584014035850980AC8B0004CA
75754 +:107650008D4900240007302B00061540AC89000836
75755 +:10766000A088001090A3004CA083002D03E0000828
75756 +:10767000A480001827BDFFE8308400FFAFBF0010D2
75757 +:107680000E00075D30A500FF8F8300548FBF0010F0
75758 +:107690003C06800034C50140344700402404FF907C
75759 +:1076A0003C02100027BD0018ACA3000CA0A40012DF
75760 +:1076B000ACA7001403E00008ACC2017827BDFFE0CE
75761 +:1076C0003C088008AFBF001CAFB20018AFB1001477
75762 +:1076D000AFB00010351000808E0600183C07800007
75763 +:1076E000309200FF00C72025AE0400180E00007C79
75764 +:1076F00030B100FF92030005346200080E00007EE6
75765 +:10770000A2020005024020210E000771022028215C
75766 +:10771000024020218FBF001C8FB200188FB10014CF
75767 +:107720008FB0001024050005240600010A0007326E
75768 +:1077300027BD00203C05800034A309809066000826
75769 +:1077400030C200081040000F3C0A01013549080A08
75770 +:10775000AC8900008CA80074AC8800043C070800C9
75771 +:1077600090E73FD830E5001050A00008AC8000083A
75772 +:107770003C0D800835AC00808D8B0058AC8B000828
75773 +:107780002484000C03E00008008010210A0007B5E3
75774 +:107790002484000C27BDFFE83C098000AFB0001036
75775 +:1077A000AFBF00143526098090C8000924020006E6
75776 +:1077B00000A05821310300FF3527090000808021F7
75777 +:1077C000240500041062007B2408000294CF005CB2
75778 +:1077D0003C0E020431EDFFFF01AE6025AE0C00004F
75779 +:1077E00090CA00083144002010800008000000000A
75780 +:1077F00090C2004E3C1F010337F90300305800FFD0
75781 +:107800000319302524050008AE06000490F9001184
75782 +:1078100090E6001290E40011333800FF00187082E7
75783 +:1078200030CF00FF01CF5021014B6821308900FF8C
75784 +:1078300031AAFFFF39230028000A60801460002C61
75785 +:10784000020C482390E400123C198000372F0100FD
75786 +:10785000308C00FF018B1821000310800045F821B7
75787 +:10786000001F8400360706FFAD270004373F0900DC
75788 +:1078700093EC001193EE0012372609800005C082B8
75789 +:107880008DE4000C8CC5003431CD00FF01AB10211C
75790 +:107890000058182100A4F8230008840000033F00CA
75791 +:1078A00000F0302533F9FFFF318F00FC00D970253F
75792 +:1078B0000158202101E9682100045080ADAE000C80
75793 +:1078C0000E00007C012A80213C088008240B000463
75794 +:1078D000350500800E00007EA0AB000902001021DB
75795 +:1078E0008FBF00148FB0001003E0000827BD001800
75796 +:1078F00090EC001190E300193C18080097183FCE57
75797 +:10790000318200FF0002F882307000FF001FCE00BD
75798 +:1079100000103C000327302500D870253C0F4000A4
75799 +:1079200001CF68253C198000AD2D0000373F0900CC
75800 +:1079300093EC001193EE0012372F010037260980D7
75801 +:107940000005C0828DE4000C8CC5003431CD00FFF1
75802 +:1079500001AB10210058182100A4F823000884006E
75803 +:1079600000033F0000F0302533F9FFFF318F00FCAA
75804 +:1079700000D970250158202101E9682100045080B8
75805 +:10798000ADAE000C0E00007C012A80213C0880086E
75806 +:10799000240B0004350500800E00007EA0AB00091A
75807 +:1079A000020010218FBF00148FB0001003E0000808
75808 +:1079B00027BD00180A0007C72408001227BDFFD002
75809 +:1079C0003C038000AFB60028AFB50024AFB4002060
75810 +:1079D000AFB10014AFBF002CAFB3001CAFB20018A2
75811 +:1079E000AFB000103467010090E6000B309400FF48
75812 +:1079F00030B500FF30C200300000B02110400099C7
75813 +:107A000000008821346409809088000800082E0056
75814 +:107A100000051E03046000C0240400048F86005487
75815 +:107A20003C010800A0243FD83C0C8000AD800048F9
75816 +:107A30003C048000348E010091CD000B31A5002064
75817 +:107A400010A000073C078000349309809272000860
75818 +:107A50000012860000107E0305E000C43C1F800871
75819 +:107A600034EC0100918A000B34EB09809169000825
75820 +:107A7000314400400004402B3123000800C8982303
75821 +:107A80001460000224120003000090213C108000CA
75822 +:107A900036180A8036040900970E002C90830011D6
75823 +:107AA0009089001293050018307F00FF312800FFF5
75824 +:107AB000024810210002C880930D0018033F78216E
75825 +:107AC00001F1302130B100FF00D11821A78E0058FC
75826 +:107AD0003C010800A4263FCE3C010800A4233FD06F
75827 +:107AE00015A00002000000000000000D920B010B29
75828 +:107AF0003065FFFF3C010800A4233FD2316A0040FB
75829 +:107B00003C010800A4203FC83C010800A4203FC459
75830 +:107B10001140000224A4000A24A4000B3091FFFFAE
75831 +:107B20000E0001E7022020219206010B3C0C080008
75832 +:107B3000958C3FD2004020210006698231A70001C8
75833 +:107B40000E00060101872821004020210260282123
75834 +:107B50000E00060C024030210E0007A1004020213B
75835 +:107B600016C00069004020219212010B32560040DD
75836 +:107B700012C000053C0500FF8C93000034AEFFFFEF
75837 +:107B8000026E8024AC9000000E0001FB0220202138
75838 +:107B90003C0F080091EF3FD831F10003122000168E
75839 +:107BA0003C1380088F8200543C09800835280080EF
75840 +:107BB000245F0001AD1F003C3C0580088CB9000427
75841 +:107BC00003E02021033FC0231B000002AF9F0054AD
75842 +:107BD0008CA400040E0006F8ACA400043C0780004E
75843 +:107BE0008CEB00743C04800834830080004B5021EF
75844 +:107BF000AC6A000C3C1380083670008002802021A3
75845 +:107C000002A02821A200006B0E00075D3C1480003A
75846 +:107C10008F920054368C0140AD92000C8F86004844
75847 +:107C20003C151000344D000624D60001AF960048E4
75848 +:107C30008FBF002CA18600128FB60028AD8D0014D6
75849 +:107C40008FB3001CAE9501788FB200188FB5002459
75850 +:107C50008FB400208FB100148FB0001003E0000833
75851 +:107C600027BD003034640980908F0008000F760033
75852 +:107C7000000E6E0305A00033347F090093F8001B4B
75853 +:107C8000241900103C010800A0393FD8331300022A
75854 +:107C90001260FF678F8600548F8200601446FF6574
75855 +:107CA0003C0480000E00007C000000003C048008C2
75856 +:107CB0003485008090A8000924060016310300FFD7
75857 +:107CC0001066000D0000000090AB00093C070800A2
75858 +:107CD00090E73FD824090008316400FF34EA00012E
75859 +:107CE0003C010800A02A3FD81089002F240C000A6C
75860 +:107CF000108C00282402000C0E00007E0000000002
75861 +:107D00000A0008608F8600540E0007B9024028213F
75862 +:107D10000A0008AE004020213C0B8008356A008034
75863 +:107D20008D4600548CE9000C1120FF3DAF860054B5
75864 +:107D3000240700143C010800A0273FD80A00085F70
75865 +:107D40003C0C800090910008241200023C010800C5
75866 +:107D5000A0323FD8323000201200000B2416000160
75867 +:107D60008F8600540A0008602411000837F800804C
75868 +:107D70008F020038AFE200048FF90004AF19003C15
75869 +:107D80000A00086C3C0780008F8600540A000860D7
75870 +:107D900024110004A0A200090E00007E00000000D3
75871 +:107DA0000A0008608F860054240200140A00093A71
75872 +:107DB000A0A2000927BDFFE8AFB000103C10800072
75873 +:107DC000AFBF001436020100904400090E00075DA9
75874 +:107DD000240500013C0480089099000E3483008043
75875 +:107DE000909F000F906F00269089000A33F800FFE3
75876 +:107DF00000196E000018740031EC00FF01AE502530
75877 +:107E0000000C5A00014B3825312800FF3603014091
75878 +:107E10003445600000E830252402FF813C04100056
75879 +:107E2000AC66000C8FBF0014AC650014A062001299
75880 +:107E3000AE0401788FB0001003E0000827BD0018E1
75881 +:107E400027BDFFE8308400FFAFBF00100E00075DC4
75882 +:107E500030A500FF3C05800034A4014034470040B9
75883 +:107E60002406FF92AC870014A08600128F83005472
75884 +:107E70008FBF00103C02100027BD0018AC83000C1F
75885 +:107E800003E00008ACA2017827BDFFD8AFB0001016
75886 +:107E9000308400FF30B000FF3C058000AFB100141B
75887 +:107EA000AFBF0020AFB3001CAFB20018000410C277
75888 +:107EB00034A60100320300023051000114600007B3
75889 +:107EC00090D200093C098008353300809268000593
75890 +:107ED0003107000810E0000C308A00100240202119
75891 +:107EE0000E00078302202821240200018FBF0020FA
75892 +:107EF0008FB3001C8FB200188FB100148FB0001028
75893 +:107F000003E0000827BD00281540003434A50A000E
75894 +:107F10008CB800248CAF0008130F004B00003821F0
75895 +:107F20003C0D800835B30080926C00682406000286
75896 +:107F3000318B00FF116600843C06800034C20100D2
75897 +:107F40009263004C90590009307F00FF53F9000400
75898 +:107F50003213007C10E00069000000003213007C46
75899 +:107F60005660005C0240202116200009320D0001FD
75900 +:107F70003C0C800035840100358B0A008D6500249F
75901 +:107F80008C86000414A6FFD900001021320D0001D8
75902 +:107F900011A0000E024020213C1880003710010083
75903 +:107FA0008E0F000C8F8E005011EE000800000000B4
75904 +:107FB0000E000843022028218E19000C3C1F800867
75905 +:107FC00037F00080AE190050024020210E000771EA
75906 +:107FD000022028210A00098F240200013C05080024
75907 +:107FE0008CA5006424A400013C010800AC240064BA
75908 +:107FF0001600000D00000000022028210E0007716D
75909 +:1080000002402021926E0068240C000231CD00FF56
75910 +:1080100011AC0022024020210E00094100000000A6
75911 +:108020000A00098F240200010E00007024040001E0
75912 +:10803000926B0025020B30250E00007EA266002503
75913 +:108040000A0009D3022028218E6200188CDF000468
75914 +:108050008CB9002400021E0217F9FFB13065007FC1
75915 +:108060009268004C264400013093007F1265004066
75916 +:10807000310300FF1464FFAB3C0D8008264700016C
75917 +:1080800030F1007F30E200FF1225000B24070001D1
75918 +:10809000004090210A00099C2411000124050004DD
75919 +:1080A0000E000732240600010E0009410000000006
75920 +:1080B0000A00098F240200012405FF8002452024C4
75921 +:1080C00000859026324200FF004090210A00099C62
75922 +:1080D000241100010E00084302202821320700303D
75923 +:1080E00010E0FFA132100082024020210E00078321
75924 +:1080F000022028210A00098F240200018E6900183D
75925 +:108100000240202102202821012640250E0009647A
75926 +:10811000AE6800189264004C240500032406000198
75927 +:108120000E000732308400FF0E00007024040001AE
75928 +:1081300092710025021150250E00007EA26A0025D2
75929 +:108140000A00098F240200018E6F00183C1880007D
75930 +:108150000240202101F87025022028210E0007711D
75931 +:10816000AE6E00189264004C0A000A1B240500043D
75932 +:10817000324A0080394900801469FF6A3C0D80084A
75933 +:108180000A0009F42647000127BDFFC0AFB0001860
75934 +:108190003C108000AFBF0038AFB70034AFB600303E
75935 +:1081A000AFB5002CAFB40028AFB30024AFB20020AD
75936 +:1081B0000E0005BEAFB1001C360201009045000B59
75937 +:1081C0000E00097690440008144000E78FBF003885
75938 +:1081D0003C08800835070080A0E0006B3606098067
75939 +:1081E00090C50000240300503C17080026F73F907C
75940 +:1081F00030A400FF3C13080026733FA01083000347
75941 +:108200003C1080000000B82100009821241F0010BD
75942 +:108210003611010036120A00361509808E580024E6
75943 +:108220008E3400048EAF00208F8C00543C01080077
75944 +:10823000A03F3FD836190A80972B002C8EF60000FD
75945 +:10824000932A00180298702301EC68233C0108006F
75946 +:10825000AC2E3FB43C010800AC2D3FB83C010800F7
75947 +:10826000AC2C3FDCA78B005802C0F809315400FF4A
75948 +:1082700030490002152000E930420001504000C49E
75949 +:108280009227000992A90008312800081500000271
75950 +:10829000241500030000A8213C0A80003543090092
75951 +:1082A00035440A008C8D00249072001190700012E9
75952 +:1082B000907F0011325900FF321100FF02B11021EE
75953 +:1082C0000002C08033EF00FF0319B021028F70213C
75954 +:1082D00002D4602125CB00103C010800A4363FCE1B
75955 +:1082E0003C010800AC2D3FE03C010800A42C3FD02D
75956 +:1082F0003C010800A42B3FCC3556010035540980C1
75957 +:1083000035510E008F8700548F89005C8E850020C8
75958 +:1083100024080006012730233C010800AC283FD484
75959 +:1083200000A7282304C000B50000902104A000B3DA
75960 +:1083300000C5502B114000B5000000003C010800B2
75961 +:10834000AC263FB88E6200000040F8090000000033
75962 +:108350003046000214C0007400408021304B000100
75963 +:10836000556000118E6200043C0D08008DAD3FBCCD
75964 +:108370003C0EC0003C04800001AE6025AE2C000025
75965 +:108380008C980000330F000811E0FFFD0000000092
75966 +:10839000963F000824120001A79F00408E39000478
75967 +:1083A000AF9900388E6200040040F8090000000018
75968 +:1083B0000202802532030002146000B300000000B6
75969 +:1083C0003C09080095293FC43C06080094C63FD0EC
75970 +:1083D0003C0A0800954A3FC63C0708008CE73FBCB2
75971 +:1083E000012670213C0308008C633FE03C08080034
75972 +:1083F00095083FDA01CA20218ED9000C00E9282116
75973 +:10840000249F000200A878210067C02133E4FFFF09
75974 +:10841000AF9900503C010800AC383FE03C01080037
75975 +:10842000A42F3FC83C010800A42E3FD20E0001E754
75976 +:10843000000000008F8D0048004020213C01080012
75977 +:10844000A02D3FD98E62000825AC0001AF8C0048FA
75978 +:108450000040F809000000008F85005402A0302180
75979 +:108460000E00060C004020210E0007A10040202134
75980 +:108470008E6B000C0160F809004020213C0A0800C6
75981 +:10848000954A3FD23C06080094C63FC601464821A3
75982 +:10849000252800020E0001FB3104FFFF3C05080007
75983 +:1084A0008CA53FB43C0708008CE73FBC00A7202305
75984 +:1084B0003C010800AC243FB414800006000000001A
75985 +:1084C0003C0208008C423FD4344B00403C01080081
75986 +:1084D000AC2B3FD4124000438F8E00448E2D0010F1
75987 +:1084E0008F920044AE4D00208E2C0018AE4C00241C
75988 +:1084F0003C04080094843FC80E0006FA0000000007
75989 +:108500008F9F00548E6700103C010800AC3F3FDC99
75990 +:1085100000E0F809000000003C1908008F393FB462
75991 +:108520001720FF798F870054979300583C11800ED5
75992 +:10853000321601000E000729A633002C16C0004594
75993 +:10854000320300105460004C8EE5000432080040F5
75994 +:108550005500001D8EF000088EE4000C0080F80924
75995 +:10856000000000008FBF00388FB700348FB6003096
75996 +:108570008FB5002C8FB400288FB300248FB2002059
75997 +:108580008FB1001C8FB0001803E0000827BD004029
75998 +:108590008F86003C36110E0000072E0000A6202515
75999 +:1085A000AE0400808E4300208E500024AFA3001044
76000 +:1085B000AE2300148FB20010AE320010AE30001C9B
76001 +:1085C0000A000A75AE3000180200F8090000000029
76002 +:1085D0008EE4000C0080F809000000000A000B2E59
76003 +:1085E0008FBF003824180001240F0001A5C000200F
76004 +:1085F000A5D800220A000B10ADCF00243C010800D2
76005 +:10860000AC203FB80A000AA68E6200003C010800B8
76006 +:10861000AC253FB80A000AA68E6200009224000929
76007 +:108620000E000771000028218FBF00388FB700347B
76008 +:108630008FB600308FB5002C8FB400288FB3002484
76009 +:108640008FB200208FB1001C8FB0001803E000082B
76010 +:1086500027BD00403C1480009295010900002821AC
76011 +:108660000E00084332A400FF320300105060FFB830
76012 +:10867000320800408EE5000400A0F8090000000068
76013 +:108680000A000B28320800405240FFA89793005878
76014 +:108690008E3400148F930044AE7400208E35001C7D
76015 +:1086A000AE7500240A000B1F979300588F820014A8
76016 +:1086B0000004218003E00008008210213C078008AC
76017 +:1086C00034E200809043006900804021106000097E
76018 +:1086D0003C0401003C0708008CE73FDC8F8300303E
76019 +:1086E00000E32023048000089389001C14E30003A6
76020 +:1086F0000100202103E00008008010213C0401005B
76021 +:1087000003E00008008010211120000B00673823CF
76022 +:108710003C0D800035AC0980918B007C316A0002F1
76023 +:10872000114000202409003400E9702B15C0FFF12E
76024 +:108730000100202100E938232403FFFC00A3C82402
76025 +:1087400000E3C02400F9782B15E0FFEA030820219C
76026 +:1087500030C400030004102314C000143049000387
76027 +:108760000000302100A9782101E6702100EE682B7D
76028 +:1087700011A0FFE03C0401002D3800010006C82BC9
76029 +:10878000010548210319382414E0FFDA2524FFFCF1
76030 +:108790002402FFFC00A218240068202103E0000846
76031 +:1087A000008010210A000B9E240900303C0C800040
76032 +:1087B0003586098090CB007C316A00041540FFE9C2
76033 +:1087C000240600040A000BAD000030213C03080021
76034 +:1087D0008C63005C8F82001827BDFFE0AFBF0018DC
76035 +:1087E000AFB1001410620005AFB00010000329C043
76036 +:1087F00024A40280AF840014AF8300183C108000D2
76037 +:1088000036020A0094450032361101000E000B7F3B
76038 +:1088100030A43FFF8E240000241FFF803C11008005
76039 +:108820000082C021031F60243309007F000CC9406F
76040 +:1088300003294025330E0078362F00033C0D10002D
76041 +:10884000010D502501CF5825AE0C002836080980AF
76042 +:10885000AE0C080CAE0B082CAE0A08309103006970
76043 +:108860003C06800C0126382110600006AF870034DA
76044 +:108870008D09003C8D03006C0123382318E0008231
76045 +:10888000000000003C0B8008356A00803C1080002E
76046 +:10889000A1400069360609808CC200383C06800081
76047 +:1088A00034C50A0090A8003C310C00201180001A49
76048 +:1088B000AF820030240D00013C0E800035D10A004B
76049 +:1088C000A38D001CAF8000248E2400248F850024FB
76050 +:1088D000240D0008AF800020AF8000283C01080074
76051 +:1088E000A42D3FC63C010800A4203FDA0E000B83F4
76052 +:1088F000000030219228003C8FBF00188FB1001477
76053 +:108900008FB0001000086142AF82002C27BD00200C
76054 +:1089100003E000083182000190B80032240E00010B
76055 +:10892000330F00FF000F2182108E00412419000236
76056 +:108930001099006434C40AC03C03800034640A0007
76057 +:108940008C8F002415E0001E34660900909F0030D3
76058 +:108950002418000533F9003F1338004E24030001AA
76059 +:108960008F860020A383001CAF860028AF860024DA
76060 +:108970003C0E800035D10A008E2400248F8500240F
76061 +:10898000240D00083C010800A42D3FC63C0108004E
76062 +:10899000A4203FDA0E000B83000000009228003C68
76063 +:1089A0008FBF00188FB100148FB000100008614213
76064 +:1089B000AF82002C27BD002003E0000831820001B7
76065 +:1089C0008C8A00088C8B00248CD000643C0E8000C4
76066 +:1089D00035D10A00014B2823AF900024A380001C4E
76067 +:1089E000AF8500288E2400248F8600208F850024E8
76068 +:1089F000240D00083C010800A42D3FC63C010800DE
76069 +:108A0000A4203FDA0E000B83000000009228003CF7
76070 +:108A10008FBF00188FB100148FB0001000086142A2
76071 +:108A2000AF82002C27BD002003E000083182000146
76072 +:108A300090A200303051003F5224002834C50AC0B3
76073 +:108A40008CB000241600002234CB09008CA600480C
76074 +:108A50003C0A7FFF3545FFFF00C510243C0E800017
76075 +:108A6000AF82002035C509008F8800208CAD0060E2
76076 +:108A7000010D602B15800002010020218CA40060F4
76077 +:108A80000A000C22AF8400208D02006C0A000BFC4F
76078 +:108A90003C0680008C8200488F8600203C097FFFC6
76079 +:108AA0003527FFFF004788243C0480082403000189
76080 +:108AB000AF910028AC80006CA383001C0A000C302E
76081 +:108AC000AF8600248C9F00140A000C22AF9F002068
76082 +:108AD0008D6200680A000C6C3C0E800034C4098072
76083 +:108AE0008C8900708CA300140123382B10E0000443
76084 +:108AF000000000008C8200700A000C6C3C0E8000AC
76085 +:108B00008CA200140A000C6C3C0E80008F8500249F
76086 +:108B100027BDFFE0AFBF0018AFB1001414A00008DC
76087 +:108B2000AFB000103C04800034870A0090E60030AB
76088 +:108B30002402000530C3003F106200B934840900EC
76089 +:108B40008F91002000A080213C048000348E0A0018
76090 +:108B50008DCD00043C0608008CC63FB831A73FFF0E
76091 +:108B600000E6602B5580000100E03021938F001C4F
76092 +:108B700011E0007800D0282B349F098093F9007C05
76093 +:108B800033380002130000792403003400C3102B93
76094 +:108B9000144000D90000000000C3302300D0282B6F
76095 +:108BA0003C010800A4233FC414A0006E0200182159
76096 +:108BB0003C0408008C843FB40064402B5500000145
76097 +:108BC000006020213C05800034A90A00912A003C65
76098 +:108BD0003C010800AC243FBC31430020146000037A
76099 +:108BE0000000482134AB0E008D6900188F88002CDE
76100 +:108BF0000128202B1080005F000000003C050800C9
76101 +:108C00008CA53FBC00A96821010D602B1180005C80
76102 +:108C100000B0702B0109382300E028213C01080036
76103 +:108C2000AC273FBC12000003240AFFFC10B0008DEB
76104 +:108C30003224000300AA18243C010800A4203FDAD3
76105 +:108C40003C010800AC233FBC006028218F84002435
76106 +:108C5000120400063C0B80088D6C006C0200202181
76107 +:108C6000AF91002025900001AD70006C8F8D002821
76108 +:108C700000858823AF91002401A52023AF8400281C
76109 +:108C80001220000224070018240700103C18800856
76110 +:108C90003706008090CF00683C010800A0273FD82D
76111 +:108CA0002407000131EE00FF11C70047000000005B
76112 +:108CB00014800018000028213C06800034D109806F
76113 +:108CC00034CD010091A600098E2C001824C40001A7
76114 +:108CD000000C86023205007F308B007F1165007F1B
76115 +:108CE0002407FF803C19800837290080A124004C0C
76116 +:108CF0003C0808008D083FD4241800023C010800FD
76117 +:108D0000A0384019350F00083C010800AC2F3FD4B3
76118 +:108D1000240500103C02800034440A009083003C8B
76119 +:108D2000307F002013E0000500A02021240A00016C
76120 +:108D30003C010800AC2A3FBC34A400018FBF0018DE
76121 +:108D40008FB100148FB000100080102103E00008E4
76122 +:108D500027BD00203C010800A4203FC410A0FF94C0
76123 +:108D6000020018210A000CC000C018210A000CB72C
76124 +:108D7000240300303C0508008CA53FBC00B0702BDC
76125 +:108D800011C0FFA8000000003C19080097393FC43B
76126 +:108D90000325C0210307782B11E000072CAA00044B
76127 +:108DA0003C0360008C625404305F003F17E0FFE337
76128 +:108DB000240400422CAA00041140FF9A240400421B
76129 +:108DC0000A000D248FBF00181528FFB9000000000D
76130 +:108DD0008CCA00183C1F800024020002015F182585
76131 +:108DE000ACC3001837F90A00A0C200689329003C00
76132 +:108DF0002404000400A01021312800203C010800B8
76133 +:108E0000A0244019110000022405001024020001D2
76134 +:108E10003C010800AC223FB40A000D1A3C0280005D
76135 +:108E20008F8800288C8900600109282B14A000027B
76136 +:108E3000010088218C9100603C048000348B0E007E
76137 +:108E40008D640018240A000102202821022030210C
76138 +:108E5000A38A001C0E000B83022080210A000CA6AE
76139 +:108E6000AF82002C00045823122000073164000355
76140 +:108E70003C0E800035C7098090ED007C31AC0004C9
76141 +:108E800015800019248F00043C010800A4243FDA57
76142 +:108E90003C1F080097FF3FDA03E5C82100D9C02B2B
76143 +:108EA0001300FF6B8F8400242CA6000514C0FFA3C1
76144 +:108EB0002404004230A200031440000200A2182340
76145 +:108EC00024A3FFFC3C010800AC233FBC3C0108008C
76146 +:108ED000A4203FDA0A000CE70060282100C77024B4
76147 +:108EE0000A000D0D01C720263C010800A42F3FDA1F
76148 +:108EF0000A000D78000000003C010800AC203FBCD7
76149 +:108F00000A000D23240400428F8300283C058000C2
76150 +:108F100034AA0A00146000060000102191470030B6
76151 +:108F20002406000530E400FF108600030000000066
76152 +:108F300003E0000800000000914B0048316900FF89
76153 +:108F4000000941C21500FFFA3C0680083C040800F5
76154 +:108F500094843FC43C0308008C633FDC3C19080048
76155 +:108F60008F393FBC3C0F080095EF3FDA0064C02109
76156 +:108F70008CCD00040319702101CF602134AB0E00A9
76157 +:108F8000018D282318A0001D00000000914F004C07
76158 +:108F90008F8C0034956D001031EE00FF8D89000438
76159 +:108FA00001AE30238D8A000030CEFFFF000E290075
76160 +:108FB0000125C82100003821014720210325182B55
76161 +:108FC0000083C021AD990004AD980000918F000A84
76162 +:108FD00001CF6821A18D000A956500128F8A0034A7
76163 +:108FE000A5450008954B003825690001A5490038C2
76164 +:108FF0009148000D35070008A147000D03E0000867
76165 +:109000000000000027BDFFD8AFB000189388001CF7
76166 +:109010008FB000143C0A80003C197FFF8F8700242A
76167 +:109020003738FFFFAFBF0020AFB1001C355F0A002B
76168 +:109030000218182493EB003C00087FC03C02BFFFDD
76169 +:10904000006F60252CF000013449FFFF3C1F080031
76170 +:109050008FFF3FDC8F9900303C18080097183FD2F3
76171 +:1090600001897824001047803C07EFFF3C05F0FFA2
76172 +:1090700001E818253C1180003169002034E2FFFF2F
76173 +:1090800034ADFFFF362E098027A50010240600020C
76174 +:1090900003F96023270B0002354A0E0000621824F2
76175 +:1090A0000080802115200002000040218D48001C16
76176 +:1090B000A7AB0012058000392407000030E800FF4C
76177 +:1090C00000083F00006758253C028008AFAB001441
76178 +:1090D000344F008091EA00683C08080091083FD9AD
76179 +:1090E0003C09DFFF352CFFFF000AF82B3C0208008B
76180 +:1090F00094423FCCA3A80011016CC024001FCF40B4
76181 +:10910000031918258FA70010AFA300143C0C08000A
76182 +:10911000918C3FDBA7A200168FAB001400ED482412
76183 +:109120003C0F01003C0A0FFF012FC82531980003B6
76184 +:10913000355FFFFF016D40243C027000033F38247F
76185 +:1091400000181E0000E2482501037825AFAF001487
76186 +:10915000AFA9001091CC007C0E000092A3AC0015CA
76187 +:10916000362D0A0091A6003C30C400201080000675
76188 +:10917000260200083C11080096313FC8262EFFFF4A
76189 +:109180003C010800A42E3FC88FBF00208FB1001CF7
76190 +:109190008FB0001803E0000827BD00288F8B002C3B
76191 +:1091A000010B502B5540FFC5240700010A000E0497
76192 +:1091B00030E800FF9383001C3C02800027BDFFD8ED
76193 +:1091C00034480A0000805021AFBF002034460AC056
76194 +:1091D000010028211060000E3444098091070030FE
76195 +:1091E000240B00058F89002030EC003F118B000B11
76196 +:1091F00000003821AFA900103C0B80088D69006C7D
76197 +:10920000AFAA00180E00015AAFA90014A380001CD9
76198 +:109210008FBF002003E0000827BD00288D1F0048F5
76199 +:109220003C1808008F183FBC8F9900283C027FFF34
76200 +:109230008D0800443443FFFFAFA900103C0B8008A9
76201 +:109240008D69006C03E370240319782101CF682332
76202 +:1092500001A83821AFAA00180E00015AAFA90014C6
76203 +:109260000A000E58A380001C3C05800034A60A00AA
76204 +:1092700090C7003C3C06080094C63FDA3C02080058
76205 +:109280008C423FD430E30020000624001060001E12
76206 +:10929000004438253C0880083505008090A300680C
76207 +:1092A00000004821240800010000282124040001B6
76208 +:1092B0003C0680008CCD017805A0FFFE34CF014034
76209 +:1092C000ADE800083C0208008C423FDCA5E5000444
76210 +:1092D000A5E40006ADE2000C3C04080090843FD9F0
76211 +:1092E0003C03800834790080A1E40012ADE700144B
76212 +:1092F000A5E900189338004C3C0E1000A1F8002D91
76213 +:1093000003E00008ACCE017834A90E008D28001CC3
76214 +:109310003C0C08008D8C3FBC952B0016952A001440
76215 +:10932000018648213164FFFF0A000E803145FFFFAE
76216 +:109330003C04800034830A009065003C30A2002089
76217 +:109340001040001934870E00000040210000382131
76218 +:10935000000020213C0680008CC901780520FFFE1A
76219 +:1093600034CA014034CF010091EB0009AD48000838
76220 +:109370003C0E08008DCE3FDC240DFF91240C0040F4
76221 +:109380003C081000A5440004A5470006AD4E000CA3
76222 +:10939000A14D0012AD4C0014A5400018A14B002DAA
76223 +:1093A00003E00008ACC801788CE8001894E60012CD
76224 +:1093B00094E4001030C7FFFF0A000EA93084FFFFBD
76225 +:1093C0003C04800034830A009065003C30A20020F9
76226 +:1093D0001040002727BDFFF82409000100003821B4
76227 +:1093E000240800013C0680008CCA01780540FFFE7D
76228 +:1093F0003C0280FF34C40100908D00093C0C080041
76229 +:10940000918C4019A3AD00038FAB00003185007F24
76230 +:109410003459FFFF01665025AFAA00009083000A6F
76231 +:10942000A3A0000200057E00A3A300018FB80000E6
76232 +:1094300034CB0140240C30000319702401CF68257F
76233 +:10944000AD6D000C27BD0008AD6C0014A5600018C0
76234 +:10945000AD690008A56700042409FF80A56800061F
76235 +:109460003C081000A169001203E00008ACC80178B4
76236 +:1094700034870E008CE9001894E6001294E4001082
76237 +:1094800030C8FFFF0A000ECD3087FFFF27BDFFE089
76238 +:10949000AFB100143C118000AFB00010AFBF001896
76239 +:1094A00036380A00970F0032363001000E000B7F6D
76240 +:1094B00031E43FFF8E0E0000240DFF803C042000AD
76241 +:1094C00001C25821016D6024000C4940316A007FBF
76242 +:1094D000012A4025010438253C048008AE270830C5
76243 +:1094E0003486008090C500682403000230A200FF8B
76244 +:1094F000104300048F9F00208F990024AC9F0068C8
76245 +:10950000AC9900648FBF00188FB100148FB00010A9
76246 +:1095100003E0000827BD00203C0A0800254A3A80E5
76247 +:109520003C09080025293B103C08080025082F1C91
76248 +:109530003C07080024E73BDC3C06080024C639044D
76249 +:109540003C05080024A536583C0408002484325CFD
76250 +:109550003C030800246339B83C0208002442375415
76251 +:109560003C010800AC2A3F983C010800AC293F941C
76252 +:109570003C010800AC283F903C010800AC273F9C10
76253 +:109580003C010800AC263FAC3C010800AC253FA4E0
76254 +:109590003C010800AC243FA03C010800AC233FB0D4
76255 +:1095A0003C010800AC223FA803E0000800000000D6
76256 +:1095B00080000940800009008008010080080080C8
76257 +:1095C00080080000800E00008008008080080000F5
76258 +:1095D00080000A8080000A00800009808000090065
76259 +:00000001FF
76260 diff --git a/fs/Kconfig.binfmt b/fs/Kconfig.binfmt
76261 index 2d0cbbd..a6d61492 100644
76262 --- a/fs/Kconfig.binfmt
76263 +++ b/fs/Kconfig.binfmt
76264 @@ -103,7 +103,7 @@ config HAVE_AOUT
76265
76266 config BINFMT_AOUT
76267 tristate "Kernel support for a.out and ECOFF binaries"
76268 - depends on HAVE_AOUT
76269 + depends on HAVE_AOUT && BROKEN
76270 ---help---
76271 A.out (Assembler.OUTput) is a set of formats for libraries and
76272 executables used in the earliest versions of UNIX. Linux used
76273 diff --git a/fs/afs/inode.c b/fs/afs/inode.c
76274 index e06f5a2..81d07ac 100644
76275 --- a/fs/afs/inode.c
76276 +++ b/fs/afs/inode.c
76277 @@ -141,7 +141,7 @@ struct inode *afs_iget_autocell(struct inode *dir, const char *dev_name,
76278 struct afs_vnode *vnode;
76279 struct super_block *sb;
76280 struct inode *inode;
76281 - static atomic_t afs_autocell_ino;
76282 + static atomic_unchecked_t afs_autocell_ino;
76283
76284 _enter("{%x:%u},%*.*s,",
76285 AFS_FS_I(dir)->fid.vid, AFS_FS_I(dir)->fid.vnode,
76286 @@ -154,7 +154,7 @@ struct inode *afs_iget_autocell(struct inode *dir, const char *dev_name,
76287 data.fid.unique = 0;
76288 data.fid.vnode = 0;
76289
76290 - inode = iget5_locked(sb, atomic_inc_return(&afs_autocell_ino),
76291 + inode = iget5_locked(sb, atomic_inc_return_unchecked(&afs_autocell_ino),
76292 afs_iget5_autocell_test, afs_iget5_set,
76293 &data);
76294 if (!inode) {
76295 diff --git a/fs/aio.c b/fs/aio.c
76296 index 155f842..89922d8 100644
76297 --- a/fs/aio.c
76298 +++ b/fs/aio.c
76299 @@ -450,7 +450,7 @@ static int aio_setup_ring(struct kioctx *ctx)
76300 size += sizeof(struct io_event) * nr_events;
76301
76302 nr_pages = PFN_UP(size);
76303 - if (nr_pages < 0)
76304 + if (nr_pages <= 0)
76305 return -EINVAL;
76306
76307 file = aio_private_file(ctx, nr_pages);
76308 diff --git a/fs/attr.c b/fs/attr.c
76309 index 6530ced..559e5e6 100644
76310 --- a/fs/attr.c
76311 +++ b/fs/attr.c
76312 @@ -102,6 +102,10 @@ int inode_newsize_ok(const struct inode *inode, loff_t offset)
76313 unsigned long limit;
76314
76315 limit = rlimit(RLIMIT_FSIZE);
76316 + if (offset > ULONG_MAX)
76317 + gr_learn_resource(current, RLIMIT_FSIZE, ULONG_MAX, 1);
76318 + else if (offset > 0)
76319 + gr_learn_resource(current, RLIMIT_FSIZE, (unsigned long)offset, 1);
76320 if (limit != RLIM_INFINITY && offset > limit)
76321 goto out_sig;
76322 if (offset > inode->i_sb->s_maxbytes)
76323 diff --git a/fs/autofs4/waitq.c b/fs/autofs4/waitq.c
76324 index 35b755e..f4b9e0a 100644
76325 --- a/fs/autofs4/waitq.c
76326 +++ b/fs/autofs4/waitq.c
76327 @@ -59,7 +59,7 @@ static int autofs4_write(struct autofs_sb_info *sbi,
76328 {
76329 unsigned long sigpipe, flags;
76330 mm_segment_t fs;
76331 - const char *data = (const char *)addr;
76332 + const char __user *data = (const char __force_user *)addr;
76333 ssize_t wr = 0;
76334
76335 sigpipe = sigismember(&current->pending.signal, SIGPIPE);
76336 @@ -340,6 +340,10 @@ static int validate_request(struct autofs_wait_queue **wait,
76337 return 1;
76338 }
76339
76340 +#ifdef CONFIG_GRKERNSEC_HIDESYM
76341 +static atomic_unchecked_t autofs_dummy_name_id = ATOMIC_INIT(0);
76342 +#endif
76343 +
76344 int autofs4_wait(struct autofs_sb_info *sbi, struct dentry *dentry,
76345 enum autofs_notify notify)
76346 {
76347 @@ -385,7 +389,12 @@ int autofs4_wait(struct autofs_sb_info *sbi, struct dentry *dentry,
76348
76349 /* If this is a direct mount request create a dummy name */
76350 if (IS_ROOT(dentry) && autofs_type_trigger(sbi->type))
76351 +#ifdef CONFIG_GRKERNSEC_HIDESYM
76352 + /* this name does get written to userland via autofs4_write() */
76353 + qstr.len = sprintf(name, "%08x", atomic_inc_return_unchecked(&autofs_dummy_name_id));
76354 +#else
76355 qstr.len = sprintf(name, "%p", dentry);
76356 +#endif
76357 else {
76358 qstr.len = autofs4_getpath(sbi, dentry, &name);
76359 if (!qstr.len) {
76360 diff --git a/fs/befs/endian.h b/fs/befs/endian.h
76361 index 2722387..56059b5 100644
76362 --- a/fs/befs/endian.h
76363 +++ b/fs/befs/endian.h
76364 @@ -11,7 +11,7 @@
76365
76366 #include <asm/byteorder.h>
76367
76368 -static inline u64
76369 +static inline u64 __intentional_overflow(-1)
76370 fs64_to_cpu(const struct super_block *sb, fs64 n)
76371 {
76372 if (BEFS_SB(sb)->byte_order == BEFS_BYTESEX_LE)
76373 @@ -29,7 +29,7 @@ cpu_to_fs64(const struct super_block *sb, u64 n)
76374 return (__force fs64)cpu_to_be64(n);
76375 }
76376
76377 -static inline u32
76378 +static inline u32 __intentional_overflow(-1)
76379 fs32_to_cpu(const struct super_block *sb, fs32 n)
76380 {
76381 if (BEFS_SB(sb)->byte_order == BEFS_BYTESEX_LE)
76382 @@ -47,7 +47,7 @@ cpu_to_fs32(const struct super_block *sb, u32 n)
76383 return (__force fs32)cpu_to_be32(n);
76384 }
76385
76386 -static inline u16
76387 +static inline u16 __intentional_overflow(-1)
76388 fs16_to_cpu(const struct super_block *sb, fs16 n)
76389 {
76390 if (BEFS_SB(sb)->byte_order == BEFS_BYTESEX_LE)
76391 diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c
76392 index 4c55668..eeae150 100644
76393 --- a/fs/binfmt_aout.c
76394 +++ b/fs/binfmt_aout.c
76395 @@ -16,6 +16,7 @@
76396 #include <linux/string.h>
76397 #include <linux/fs.h>
76398 #include <linux/file.h>
76399 +#include <linux/security.h>
76400 #include <linux/stat.h>
76401 #include <linux/fcntl.h>
76402 #include <linux/ptrace.h>
76403 @@ -58,6 +59,8 @@ static int aout_core_dump(struct coredump_params *cprm)
76404 #endif
76405 # define START_STACK(u) ((void __user *)u.start_stack)
76406
76407 + memset(&dump, 0, sizeof(dump));
76408 +
76409 fs = get_fs();
76410 set_fs(KERNEL_DS);
76411 has_dumped = 1;
76412 @@ -68,10 +71,12 @@ static int aout_core_dump(struct coredump_params *cprm)
76413
76414 /* If the size of the dump file exceeds the rlimit, then see what would happen
76415 if we wrote the stack, but not the data area. */
76416 + gr_learn_resource(current, RLIMIT_CORE, (dump.u_dsize + dump.u_ssize+1) * PAGE_SIZE, 1);
76417 if ((dump.u_dsize + dump.u_ssize+1) * PAGE_SIZE > cprm->limit)
76418 dump.u_dsize = 0;
76419
76420 /* Make sure we have enough room to write the stack and data areas. */
76421 + gr_learn_resource(current, RLIMIT_CORE, (dump.u_ssize + 1) * PAGE_SIZE, 1);
76422 if ((dump.u_ssize + 1) * PAGE_SIZE > cprm->limit)
76423 dump.u_ssize = 0;
76424
76425 @@ -232,6 +237,8 @@ static int load_aout_binary(struct linux_binprm * bprm)
76426 rlim = rlimit(RLIMIT_DATA);
76427 if (rlim >= RLIM_INFINITY)
76428 rlim = ~0;
76429 +
76430 + gr_learn_resource(current, RLIMIT_DATA, ex.a_data + ex.a_bss, 1);
76431 if (ex.a_data + ex.a_bss > rlim)
76432 return -ENOMEM;
76433
76434 @@ -261,6 +268,27 @@ static int load_aout_binary(struct linux_binprm * bprm)
76435
76436 install_exec_creds(bprm);
76437
76438 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
76439 + current->mm->pax_flags = 0UL;
76440 +#endif
76441 +
76442 +#ifdef CONFIG_PAX_PAGEEXEC
76443 + if (!(N_FLAGS(ex) & F_PAX_PAGEEXEC)) {
76444 + current->mm->pax_flags |= MF_PAX_PAGEEXEC;
76445 +
76446 +#ifdef CONFIG_PAX_EMUTRAMP
76447 + if (N_FLAGS(ex) & F_PAX_EMUTRAMP)
76448 + current->mm->pax_flags |= MF_PAX_EMUTRAMP;
76449 +#endif
76450 +
76451 +#ifdef CONFIG_PAX_MPROTECT
76452 + if (!(N_FLAGS(ex) & F_PAX_MPROTECT))
76453 + current->mm->pax_flags |= MF_PAX_MPROTECT;
76454 +#endif
76455 +
76456 + }
76457 +#endif
76458 +
76459 if (N_MAGIC(ex) == OMAGIC) {
76460 unsigned long text_addr, map_size;
76461 loff_t pos;
76462 @@ -312,7 +340,7 @@ static int load_aout_binary(struct linux_binprm * bprm)
76463 return error;
76464
76465 error = vm_mmap(bprm->file, N_DATADDR(ex), ex.a_data,
76466 - PROT_READ | PROT_WRITE | PROT_EXEC,
76467 + PROT_READ | PROT_WRITE,
76468 MAP_FIXED | MAP_PRIVATE | MAP_DENYWRITE | MAP_EXECUTABLE,
76469 fd_offset + ex.a_text);
76470 if (error != N_DATADDR(ex))
76471 diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
76472 index 3a93755..daf2ccc 100644
76473 --- a/fs/binfmt_elf.c
76474 +++ b/fs/binfmt_elf.c
76475 @@ -36,6 +36,7 @@
76476 #include <linux/coredump.h>
76477 #include <linux/sched.h>
76478 #include <linux/dax.h>
76479 +#include <linux/xattr.h>
76480 #include <asm/uaccess.h>
76481 #include <asm/param.h>
76482 #include <asm/page.h>
76483 @@ -67,6 +68,14 @@ static int elf_core_dump(struct coredump_params *cprm);
76484 #define elf_core_dump NULL
76485 #endif
76486
76487 +#ifdef CONFIG_PAX_MPROTECT
76488 +static void elf_handle_mprotect(struct vm_area_struct *vma, unsigned long newflags);
76489 +#endif
76490 +
76491 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
76492 +static void elf_handle_mmap(struct file *file);
76493 +#endif
76494 +
76495 #if ELF_EXEC_PAGESIZE > PAGE_SIZE
76496 #define ELF_MIN_ALIGN ELF_EXEC_PAGESIZE
76497 #else
76498 @@ -86,6 +95,15 @@ static struct linux_binfmt elf_format = {
76499 .load_binary = load_elf_binary,
76500 .load_shlib = load_elf_library,
76501 .core_dump = elf_core_dump,
76502 +
76503 +#ifdef CONFIG_PAX_MPROTECT
76504 + .handle_mprotect= elf_handle_mprotect,
76505 +#endif
76506 +
76507 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
76508 + .handle_mmap = elf_handle_mmap,
76509 +#endif
76510 +
76511 .min_coredump = ELF_EXEC_PAGESIZE,
76512 };
76513
76514 @@ -93,6 +111,8 @@ static struct linux_binfmt elf_format = {
76515
76516 static int set_brk(unsigned long start, unsigned long end)
76517 {
76518 + unsigned long e = end;
76519 +
76520 start = ELF_PAGEALIGN(start);
76521 end = ELF_PAGEALIGN(end);
76522 if (end > start) {
76523 @@ -101,7 +121,7 @@ static int set_brk(unsigned long start, unsigned long end)
76524 if (BAD_ADDR(addr))
76525 return addr;
76526 }
76527 - current->mm->start_brk = current->mm->brk = end;
76528 + current->mm->start_brk = current->mm->brk = e;
76529 return 0;
76530 }
76531
76532 @@ -162,12 +182,13 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
76533 elf_addr_t __user *u_rand_bytes;
76534 const char *k_platform = ELF_PLATFORM;
76535 const char *k_base_platform = ELF_BASE_PLATFORM;
76536 - unsigned char k_rand_bytes[16];
76537 + u32 k_rand_bytes[4];
76538 int items;
76539 elf_addr_t *elf_info;
76540 int ei_index = 0;
76541 const struct cred *cred = current_cred();
76542 struct vm_area_struct *vma;
76543 + unsigned long saved_auxv[AT_VECTOR_SIZE];
76544
76545 /*
76546 * In some cases (e.g. Hyper-Threading), we want to avoid L1
76547 @@ -209,8 +230,12 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
76548 * Generate 16 random bytes for userspace PRNG seeding.
76549 */
76550 get_random_bytes(k_rand_bytes, sizeof(k_rand_bytes));
76551 - u_rand_bytes = (elf_addr_t __user *)
76552 - STACK_ALLOC(p, sizeof(k_rand_bytes));
76553 + prandom_seed(k_rand_bytes[0] ^ prandom_u32());
76554 + prandom_seed(k_rand_bytes[1] ^ prandom_u32());
76555 + prandom_seed(k_rand_bytes[2] ^ prandom_u32());
76556 + prandom_seed(k_rand_bytes[3] ^ prandom_u32());
76557 + p = STACK_ROUND(p, sizeof(k_rand_bytes));
76558 + u_rand_bytes = (elf_addr_t __user *) p;
76559 if (__copy_to_user(u_rand_bytes, k_rand_bytes, sizeof(k_rand_bytes)))
76560 return -EFAULT;
76561
76562 @@ -325,9 +350,11 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
76563 return -EFAULT;
76564 current->mm->env_end = p;
76565
76566 + memcpy(saved_auxv, elf_info, ei_index * sizeof(elf_addr_t));
76567 +
76568 /* Put the elf_info on the stack in the right place. */
76569 sp = (elf_addr_t __user *)envp + 1;
76570 - if (copy_to_user(sp, elf_info, ei_index * sizeof(elf_addr_t)))
76571 + if (copy_to_user(sp, saved_auxv, ei_index * sizeof(elf_addr_t)))
76572 return -EFAULT;
76573 return 0;
76574 }
76575 @@ -516,14 +543,14 @@ static inline int arch_check_elf(struct elfhdr *ehdr, bool has_interp,
76576 an ELF header */
76577
76578 static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
76579 - struct file *interpreter, unsigned long *interp_map_addr,
76580 + struct file *interpreter,
76581 unsigned long no_base, struct elf_phdr *interp_elf_phdata)
76582 {
76583 struct elf_phdr *eppnt;
76584 - unsigned long load_addr = 0;
76585 + unsigned long load_addr = 0, pax_task_size = TASK_SIZE;
76586 int load_addr_set = 0;
76587 unsigned long last_bss = 0, elf_bss = 0;
76588 - unsigned long error = ~0UL;
76589 + unsigned long error = -EINVAL;
76590 unsigned long total_size;
76591 int i;
76592
76593 @@ -543,6 +570,11 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
76594 goto out;
76595 }
76596
76597 +#ifdef CONFIG_PAX_SEGMEXEC
76598 + if (current->mm->pax_flags & MF_PAX_SEGMEXEC)
76599 + pax_task_size = SEGMEXEC_TASK_SIZE;
76600 +#endif
76601 +
76602 eppnt = interp_elf_phdata;
76603 for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) {
76604 if (eppnt->p_type == PT_LOAD) {
76605 @@ -566,8 +598,6 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
76606 map_addr = elf_map(interpreter, load_addr + vaddr,
76607 eppnt, elf_prot, elf_type, total_size);
76608 total_size = 0;
76609 - if (!*interp_map_addr)
76610 - *interp_map_addr = map_addr;
76611 error = map_addr;
76612 if (BAD_ADDR(map_addr))
76613 goto out;
76614 @@ -586,8 +616,8 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
76615 k = load_addr + eppnt->p_vaddr;
76616 if (BAD_ADDR(k) ||
76617 eppnt->p_filesz > eppnt->p_memsz ||
76618 - eppnt->p_memsz > TASK_SIZE ||
76619 - TASK_SIZE - eppnt->p_memsz < k) {
76620 + eppnt->p_memsz > pax_task_size ||
76621 + pax_task_size - eppnt->p_memsz < k) {
76622 error = -ENOMEM;
76623 goto out;
76624 }
76625 @@ -626,9 +656,11 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
76626 elf_bss = ELF_PAGESTART(elf_bss + ELF_MIN_ALIGN - 1);
76627
76628 /* Map the last of the bss segment */
76629 - error = vm_brk(elf_bss, last_bss - elf_bss);
76630 - if (BAD_ADDR(error))
76631 - goto out;
76632 + if (last_bss > elf_bss) {
76633 + error = vm_brk(elf_bss, last_bss - elf_bss);
76634 + if (BAD_ADDR(error))
76635 + goto out;
76636 + }
76637 }
76638
76639 error = load_addr;
76640 @@ -636,6 +668,336 @@ out:
76641 return error;
76642 }
76643
76644 +#ifdef CONFIG_PAX_PT_PAX_FLAGS
76645 +#ifdef CONFIG_PAX_SOFTMODE
76646 +static unsigned long pax_parse_pt_pax_softmode(const struct elf_phdr * const elf_phdata)
76647 +{
76648 + unsigned long pax_flags = 0UL;
76649 +
76650 +#ifdef CONFIG_PAX_PAGEEXEC
76651 + if (elf_phdata->p_flags & PF_PAGEEXEC)
76652 + pax_flags |= MF_PAX_PAGEEXEC;
76653 +#endif
76654 +
76655 +#ifdef CONFIG_PAX_SEGMEXEC
76656 + if (elf_phdata->p_flags & PF_SEGMEXEC)
76657 + pax_flags |= MF_PAX_SEGMEXEC;
76658 +#endif
76659 +
76660 +#ifdef CONFIG_PAX_EMUTRAMP
76661 + if ((elf_phdata->p_flags & PF_EMUTRAMP) && (pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)))
76662 + pax_flags |= MF_PAX_EMUTRAMP;
76663 +#endif
76664 +
76665 +#ifdef CONFIG_PAX_MPROTECT
76666 + if (elf_phdata->p_flags & PF_MPROTECT)
76667 + pax_flags |= MF_PAX_MPROTECT;
76668 +#endif
76669 +
76670 +#if defined(CONFIG_PAX_RANDMMAP) || defined(CONFIG_PAX_RANDUSTACK)
76671 + if (randomize_va_space && (elf_phdata->p_flags & PF_RANDMMAP))
76672 + pax_flags |= MF_PAX_RANDMMAP;
76673 +#endif
76674 +
76675 + return pax_flags;
76676 +}
76677 +#endif
76678 +
76679 +static unsigned long pax_parse_pt_pax_hardmode(const struct elf_phdr * const elf_phdata)
76680 +{
76681 + unsigned long pax_flags = 0UL;
76682 +
76683 +#ifdef CONFIG_PAX_PAGEEXEC
76684 + if (!(elf_phdata->p_flags & PF_NOPAGEEXEC))
76685 + pax_flags |= MF_PAX_PAGEEXEC;
76686 +#endif
76687 +
76688 +#ifdef CONFIG_PAX_SEGMEXEC
76689 + if (!(elf_phdata->p_flags & PF_NOSEGMEXEC))
76690 + pax_flags |= MF_PAX_SEGMEXEC;
76691 +#endif
76692 +
76693 +#ifdef CONFIG_PAX_EMUTRAMP
76694 + if (!(elf_phdata->p_flags & PF_NOEMUTRAMP))
76695 + pax_flags |= MF_PAX_EMUTRAMP;
76696 +#endif
76697 +
76698 +#ifdef CONFIG_PAX_MPROTECT
76699 + if (!(elf_phdata->p_flags & PF_NOMPROTECT))
76700 + pax_flags |= MF_PAX_MPROTECT;
76701 +#endif
76702 +
76703 +#if defined(CONFIG_PAX_RANDMMAP) || defined(CONFIG_PAX_RANDUSTACK)
76704 + if (randomize_va_space && !(elf_phdata->p_flags & PF_NORANDMMAP))
76705 + pax_flags |= MF_PAX_RANDMMAP;
76706 +#endif
76707 +
76708 + return pax_flags;
76709 +}
76710 +#endif
76711 +
76712 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
76713 +#ifdef CONFIG_PAX_SOFTMODE
76714 +static unsigned long pax_parse_xattr_pax_softmode(unsigned long pax_flags_softmode)
76715 +{
76716 + unsigned long pax_flags = 0UL;
76717 +
76718 +#ifdef CONFIG_PAX_PAGEEXEC
76719 + if (pax_flags_softmode & MF_PAX_PAGEEXEC)
76720 + pax_flags |= MF_PAX_PAGEEXEC;
76721 +#endif
76722 +
76723 +#ifdef CONFIG_PAX_SEGMEXEC
76724 + if (pax_flags_softmode & MF_PAX_SEGMEXEC)
76725 + pax_flags |= MF_PAX_SEGMEXEC;
76726 +#endif
76727 +
76728 +#ifdef CONFIG_PAX_EMUTRAMP
76729 + if ((pax_flags_softmode & MF_PAX_EMUTRAMP) && (pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)))
76730 + pax_flags |= MF_PAX_EMUTRAMP;
76731 +#endif
76732 +
76733 +#ifdef CONFIG_PAX_MPROTECT
76734 + if (pax_flags_softmode & MF_PAX_MPROTECT)
76735 + pax_flags |= MF_PAX_MPROTECT;
76736 +#endif
76737 +
76738 +#if defined(CONFIG_PAX_RANDMMAP) || defined(CONFIG_PAX_RANDUSTACK)
76739 + if (randomize_va_space && (pax_flags_softmode & MF_PAX_RANDMMAP))
76740 + pax_flags |= MF_PAX_RANDMMAP;
76741 +#endif
76742 +
76743 + return pax_flags;
76744 +}
76745 +#endif
76746 +
76747 +static unsigned long pax_parse_xattr_pax_hardmode(unsigned long pax_flags_hardmode)
76748 +{
76749 + unsigned long pax_flags = 0UL;
76750 +
76751 +#ifdef CONFIG_PAX_PAGEEXEC
76752 + if (!(pax_flags_hardmode & MF_PAX_PAGEEXEC))
76753 + pax_flags |= MF_PAX_PAGEEXEC;
76754 +#endif
76755 +
76756 +#ifdef CONFIG_PAX_SEGMEXEC
76757 + if (!(pax_flags_hardmode & MF_PAX_SEGMEXEC))
76758 + pax_flags |= MF_PAX_SEGMEXEC;
76759 +#endif
76760 +
76761 +#ifdef CONFIG_PAX_EMUTRAMP
76762 + if (!(pax_flags_hardmode & MF_PAX_EMUTRAMP))
76763 + pax_flags |= MF_PAX_EMUTRAMP;
76764 +#endif
76765 +
76766 +#ifdef CONFIG_PAX_MPROTECT
76767 + if (!(pax_flags_hardmode & MF_PAX_MPROTECT))
76768 + pax_flags |= MF_PAX_MPROTECT;
76769 +#endif
76770 +
76771 +#if defined(CONFIG_PAX_RANDMMAP) || defined(CONFIG_PAX_RANDUSTACK)
76772 + if (randomize_va_space && !(pax_flags_hardmode & MF_PAX_RANDMMAP))
76773 + pax_flags |= MF_PAX_RANDMMAP;
76774 +#endif
76775 +
76776 + return pax_flags;
76777 +}
76778 +#endif
76779 +
76780 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
76781 +static unsigned long pax_parse_defaults(void)
76782 +{
76783 + unsigned long pax_flags = 0UL;
76784 +
76785 +#ifdef CONFIG_PAX_SOFTMODE
76786 + if (pax_softmode)
76787 + return pax_flags;
76788 +#endif
76789 +
76790 +#ifdef CONFIG_PAX_PAGEEXEC
76791 + pax_flags |= MF_PAX_PAGEEXEC;
76792 +#endif
76793 +
76794 +#ifdef CONFIG_PAX_SEGMEXEC
76795 + pax_flags |= MF_PAX_SEGMEXEC;
76796 +#endif
76797 +
76798 +#ifdef CONFIG_PAX_MPROTECT
76799 + pax_flags |= MF_PAX_MPROTECT;
76800 +#endif
76801 +
76802 +#ifdef CONFIG_PAX_RANDMMAP
76803 + if (randomize_va_space)
76804 + pax_flags |= MF_PAX_RANDMMAP;
76805 +#endif
76806 +
76807 + return pax_flags;
76808 +}
76809 +
76810 +static unsigned long pax_parse_ei_pax(const struct elfhdr * const elf_ex)
76811 +{
76812 + unsigned long pax_flags = PAX_PARSE_FLAGS_FALLBACK;
76813 +
76814 +#ifdef CONFIG_PAX_EI_PAX
76815 +
76816 +#ifdef CONFIG_PAX_SOFTMODE
76817 + if (pax_softmode)
76818 + return pax_flags;
76819 +#endif
76820 +
76821 + pax_flags = 0UL;
76822 +
76823 +#ifdef CONFIG_PAX_PAGEEXEC
76824 + if (!(elf_ex->e_ident[EI_PAX] & EF_PAX_PAGEEXEC))
76825 + pax_flags |= MF_PAX_PAGEEXEC;
76826 +#endif
76827 +
76828 +#ifdef CONFIG_PAX_SEGMEXEC
76829 + if (!(elf_ex->e_ident[EI_PAX] & EF_PAX_SEGMEXEC))
76830 + pax_flags |= MF_PAX_SEGMEXEC;
76831 +#endif
76832 +
76833 +#ifdef CONFIG_PAX_EMUTRAMP
76834 + if ((pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) && (elf_ex->e_ident[EI_PAX] & EF_PAX_EMUTRAMP))
76835 + pax_flags |= MF_PAX_EMUTRAMP;
76836 +#endif
76837 +
76838 +#ifdef CONFIG_PAX_MPROTECT
76839 + if ((pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) && !(elf_ex->e_ident[EI_PAX] & EF_PAX_MPROTECT))
76840 + pax_flags |= MF_PAX_MPROTECT;
76841 +#endif
76842 +
76843 +#ifdef CONFIG_PAX_ASLR
76844 + if (randomize_va_space && !(elf_ex->e_ident[EI_PAX] & EF_PAX_RANDMMAP))
76845 + pax_flags |= MF_PAX_RANDMMAP;
76846 +#endif
76847 +
76848 +#endif
76849 +
76850 + return pax_flags;
76851 +
76852 +}
76853 +
76854 +static unsigned long pax_parse_pt_pax(const struct elfhdr * const elf_ex, const struct elf_phdr * const elf_phdata)
76855 +{
76856 +
76857 +#ifdef CONFIG_PAX_PT_PAX_FLAGS
76858 + unsigned long i;
76859 +
76860 + for (i = 0UL; i < elf_ex->e_phnum; i++)
76861 + if (elf_phdata[i].p_type == PT_PAX_FLAGS) {
76862 + if (((elf_phdata[i].p_flags & PF_PAGEEXEC) && (elf_phdata[i].p_flags & PF_NOPAGEEXEC)) ||
76863 + ((elf_phdata[i].p_flags & PF_SEGMEXEC) && (elf_phdata[i].p_flags & PF_NOSEGMEXEC)) ||
76864 + ((elf_phdata[i].p_flags & PF_EMUTRAMP) && (elf_phdata[i].p_flags & PF_NOEMUTRAMP)) ||
76865 + ((elf_phdata[i].p_flags & PF_MPROTECT) && (elf_phdata[i].p_flags & PF_NOMPROTECT)) ||
76866 + ((elf_phdata[i].p_flags & PF_RANDMMAP) && (elf_phdata[i].p_flags & PF_NORANDMMAP)))
76867 + return PAX_PARSE_FLAGS_FALLBACK;
76868 +
76869 +#ifdef CONFIG_PAX_SOFTMODE
76870 + if (pax_softmode)
76871 + return pax_parse_pt_pax_softmode(&elf_phdata[i]);
76872 + else
76873 +#endif
76874 +
76875 + return pax_parse_pt_pax_hardmode(&elf_phdata[i]);
76876 + break;
76877 + }
76878 +#endif
76879 +
76880 + return PAX_PARSE_FLAGS_FALLBACK;
76881 +}
76882 +
76883 +static unsigned long pax_parse_xattr_pax(struct file * const file)
76884 +{
76885 +
76886 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
76887 + ssize_t xattr_size, i;
76888 + unsigned char xattr_value[sizeof("pemrs") - 1];
76889 + unsigned long pax_flags_hardmode = 0UL, pax_flags_softmode = 0UL;
76890 +
76891 + xattr_size = pax_getxattr(file->f_path.dentry, xattr_value, sizeof xattr_value);
76892 + if (xattr_size < 0 || xattr_size > sizeof xattr_value)
76893 + return PAX_PARSE_FLAGS_FALLBACK;
76894 +
76895 + for (i = 0; i < xattr_size; i++)
76896 + switch (xattr_value[i]) {
76897 + default:
76898 + return PAX_PARSE_FLAGS_FALLBACK;
76899 +
76900 +#define parse_flag(option1, option2, flag) \
76901 + case option1: \
76902 + if (pax_flags_hardmode & MF_PAX_##flag) \
76903 + return PAX_PARSE_FLAGS_FALLBACK;\
76904 + pax_flags_hardmode |= MF_PAX_##flag; \
76905 + break; \
76906 + case option2: \
76907 + if (pax_flags_softmode & MF_PAX_##flag) \
76908 + return PAX_PARSE_FLAGS_FALLBACK;\
76909 + pax_flags_softmode |= MF_PAX_##flag; \
76910 + break;
76911 +
76912 + parse_flag('p', 'P', PAGEEXEC);
76913 + parse_flag('e', 'E', EMUTRAMP);
76914 + parse_flag('m', 'M', MPROTECT);
76915 + parse_flag('r', 'R', RANDMMAP);
76916 + parse_flag('s', 'S', SEGMEXEC);
76917 +
76918 +#undef parse_flag
76919 + }
76920 +
76921 + if (pax_flags_hardmode & pax_flags_softmode)
76922 + return PAX_PARSE_FLAGS_FALLBACK;
76923 +
76924 +#ifdef CONFIG_PAX_SOFTMODE
76925 + if (pax_softmode)
76926 + return pax_parse_xattr_pax_softmode(pax_flags_softmode);
76927 + else
76928 +#endif
76929 +
76930 + return pax_parse_xattr_pax_hardmode(pax_flags_hardmode);
76931 +#else
76932 + return PAX_PARSE_FLAGS_FALLBACK;
76933 +#endif
76934 +
76935 +}
76936 +
76937 +static long pax_parse_pax_flags(const struct elfhdr * const elf_ex, const struct elf_phdr * const elf_phdata, struct file * const file)
76938 +{
76939 + unsigned long pax_flags, ei_pax_flags, pt_pax_flags, xattr_pax_flags;
76940 +
76941 + pax_flags = pax_parse_defaults();
76942 + ei_pax_flags = pax_parse_ei_pax(elf_ex);
76943 + pt_pax_flags = pax_parse_pt_pax(elf_ex, elf_phdata);
76944 + xattr_pax_flags = pax_parse_xattr_pax(file);
76945 +
76946 + if (pt_pax_flags != PAX_PARSE_FLAGS_FALLBACK &&
76947 + xattr_pax_flags != PAX_PARSE_FLAGS_FALLBACK &&
76948 + pt_pax_flags != xattr_pax_flags)
76949 + return -EINVAL;
76950 + if (xattr_pax_flags != PAX_PARSE_FLAGS_FALLBACK)
76951 + pax_flags = xattr_pax_flags;
76952 + else if (pt_pax_flags != PAX_PARSE_FLAGS_FALLBACK)
76953 + pax_flags = pt_pax_flags;
76954 + else if (ei_pax_flags != PAX_PARSE_FLAGS_FALLBACK)
76955 + pax_flags = ei_pax_flags;
76956 +
76957 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_PAX_SEGMEXEC)
76958 + if ((pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) == (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
76959 + if ((__supported_pte_mask & _PAGE_NX))
76960 + pax_flags &= ~MF_PAX_SEGMEXEC;
76961 + else
76962 + pax_flags &= ~MF_PAX_PAGEEXEC;
76963 + }
76964 +#endif
76965 +
76966 + if (0 > pax_check_flags(&pax_flags))
76967 + return -EINVAL;
76968 +
76969 + current->mm->pax_flags = pax_flags;
76970 + return 0;
76971 +}
76972 +#endif
76973 +
76974 /*
76975 * These are the functions used to load ELF style executables and shared
76976 * libraries. There is no binary dependent code anywhere else.
76977 @@ -649,6 +1011,11 @@ static unsigned long randomize_stack_top(unsigned long stack_top)
76978 {
76979 unsigned long random_variable = 0;
76980
76981 +#ifdef CONFIG_PAX_RANDUSTACK
76982 + if (current->mm->pax_flags & MF_PAX_RANDMMAP)
76983 + return stack_top - current->mm->delta_stack;
76984 +#endif
76985 +
76986 if ((current->flags & PF_RANDOMIZE) &&
76987 !(current->personality & ADDR_NO_RANDOMIZE)) {
76988 random_variable = (unsigned long) get_random_int();
76989 @@ -668,7 +1035,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
76990 unsigned long load_addr = 0, load_bias = 0;
76991 int load_addr_set = 0;
76992 char * elf_interpreter = NULL;
76993 - unsigned long error;
76994 + unsigned long error = 0;
76995 struct elf_phdr *elf_ppnt, *elf_phdata, *interp_elf_phdata = NULL;
76996 unsigned long elf_bss, elf_brk;
76997 int retval, i;
76998 @@ -683,6 +1050,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
76999 struct elfhdr interp_elf_ex;
77000 } *loc;
77001 struct arch_elf_state arch_state = INIT_ARCH_ELF_STATE;
77002 + unsigned long pax_task_size;
77003
77004 loc = kmalloc(sizeof(*loc), GFP_KERNEL);
77005 if (!loc) {
77006 @@ -841,6 +1209,77 @@ static int load_elf_binary(struct linux_binprm *bprm)
77007 /* Do this immediately, since STACK_TOP as used in setup_arg_pages
77008 may depend on the personality. */
77009 SET_PERSONALITY2(loc->elf_ex, &arch_state);
77010 +
77011 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
77012 + current->mm->pax_flags = 0UL;
77013 +#endif
77014 +
77015 +#ifdef CONFIG_PAX_DLRESOLVE
77016 + current->mm->call_dl_resolve = 0UL;
77017 +#endif
77018 +
77019 +#if defined(CONFIG_PPC32) && defined(CONFIG_PAX_EMUSIGRT)
77020 + current->mm->call_syscall = 0UL;
77021 +#endif
77022 +
77023 +#ifdef CONFIG_PAX_ASLR
77024 + current->mm->delta_mmap = 0UL;
77025 + current->mm->delta_stack = 0UL;
77026 +#endif
77027 +
77028 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
77029 + if (0 > pax_parse_pax_flags(&loc->elf_ex, elf_phdata, bprm->file)) {
77030 + retval = -EINVAL;
77031 + goto out_free_dentry;
77032 + }
77033 +#endif
77034 +
77035 +#ifdef CONFIG_PAX_HAVE_ACL_FLAGS
77036 + pax_set_initial_flags(bprm);
77037 +#elif defined(CONFIG_PAX_HOOK_ACL_FLAGS)
77038 + if (pax_set_initial_flags_func)
77039 + (pax_set_initial_flags_func)(bprm);
77040 +#endif
77041 +
77042 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
77043 + if ((current->mm->pax_flags & MF_PAX_PAGEEXEC) && !(__supported_pte_mask & _PAGE_NX)) {
77044 + current->mm->context.user_cs_limit = PAGE_SIZE;
77045 + current->mm->def_flags |= VM_PAGEEXEC | VM_NOHUGEPAGE;
77046 + }
77047 +#endif
77048 +
77049 +#ifdef CONFIG_PAX_SEGMEXEC
77050 + if (current->mm->pax_flags & MF_PAX_SEGMEXEC) {
77051 + current->mm->context.user_cs_base = SEGMEXEC_TASK_SIZE;
77052 + current->mm->context.user_cs_limit = TASK_SIZE-SEGMEXEC_TASK_SIZE;
77053 + pax_task_size = SEGMEXEC_TASK_SIZE;
77054 + current->mm->def_flags |= VM_NOHUGEPAGE;
77055 + } else
77056 +#endif
77057 +
77058 + pax_task_size = TASK_SIZE;
77059 +
77060 +#if defined(CONFIG_ARCH_TRACK_EXEC_LIMIT) || defined(CONFIG_PAX_SEGMEXEC)
77061 + if (current->mm->pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
77062 + set_user_cs(current->mm->context.user_cs_base, current->mm->context.user_cs_limit, get_cpu());
77063 + put_cpu();
77064 + }
77065 +#endif
77066 +
77067 +#ifdef CONFIG_PAX_ASLR
77068 + if (current->mm->pax_flags & MF_PAX_RANDMMAP) {
77069 + current->mm->delta_mmap = (pax_get_random_long() & ((1UL << PAX_DELTA_MMAP_LEN)-1)) << PAGE_SHIFT;
77070 + current->mm->delta_stack = (pax_get_random_long() & ((1UL << PAX_DELTA_STACK_LEN)-1)) << PAGE_SHIFT;
77071 + }
77072 +#endif
77073 +
77074 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
77075 + if (current->mm->pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
77076 + executable_stack = EXSTACK_DISABLE_X;
77077 + current->personality &= ~READ_IMPLIES_EXEC;
77078 + } else
77079 +#endif
77080 +
77081 if (elf_read_implies_exec(loc->elf_ex, executable_stack))
77082 current->personality |= READ_IMPLIES_EXEC;
77083
77084 @@ -916,8 +1355,21 @@ static int load_elf_binary(struct linux_binprm *bprm)
77085 if (current->flags & PF_RANDOMIZE)
77086 load_bias += arch_mmap_rnd();
77087 load_bias = ELF_PAGESTART(load_bias);
77088 - total_size = total_mapping_size(elf_phdata,
77089 - loc->elf_ex.e_phnum);
77090 +
77091 +#ifdef CONFIG_PAX_RANDMMAP
77092 + /* PaX: randomize base address at the default exe base if requested */
77093 + if ((current->mm->pax_flags & MF_PAX_RANDMMAP) && elf_interpreter) {
77094 +#ifdef CONFIG_SPARC64
77095 + load_bias = (pax_get_random_long() & ((1UL << PAX_DELTA_MMAP_LEN) - 1)) << (PAGE_SHIFT+1);
77096 +#else
77097 + load_bias = (pax_get_random_long() & ((1UL << PAX_DELTA_MMAP_LEN) - 1)) << PAGE_SHIFT;
77098 +#endif
77099 + load_bias = ELF_PAGESTART(PAX_ELF_ET_DYN_BASE - vaddr + load_bias);
77100 + elf_flags |= MAP_FIXED;
77101 + }
77102 +#endif
77103 +
77104 + total_size = total_mapping_size(elf_phdata, loc->elf_ex.e_phnum);
77105 if (!total_size) {
77106 retval = -EINVAL;
77107 goto out_free_dentry;
77108 @@ -953,9 +1405,9 @@ static int load_elf_binary(struct linux_binprm *bprm)
77109 * allowed task size. Note that p_filesz must always be
77110 * <= p_memsz so it is only necessary to check p_memsz.
77111 */
77112 - if (BAD_ADDR(k) || elf_ppnt->p_filesz > elf_ppnt->p_memsz ||
77113 - elf_ppnt->p_memsz > TASK_SIZE ||
77114 - TASK_SIZE - elf_ppnt->p_memsz < k) {
77115 + if (k >= pax_task_size || elf_ppnt->p_filesz > elf_ppnt->p_memsz ||
77116 + elf_ppnt->p_memsz > pax_task_size ||
77117 + pax_task_size - elf_ppnt->p_memsz < k) {
77118 /* set_brk can never work. Avoid overflows. */
77119 retval = -EINVAL;
77120 goto out_free_dentry;
77121 @@ -991,16 +1443,43 @@ static int load_elf_binary(struct linux_binprm *bprm)
77122 if (retval)
77123 goto out_free_dentry;
77124 if (likely(elf_bss != elf_brk) && unlikely(padzero(elf_bss))) {
77125 - retval = -EFAULT; /* Nobody gets to see this, but.. */
77126 - goto out_free_dentry;
77127 + /*
77128 + * This bss-zeroing can fail if the ELF
77129 + * file specifies odd protections. So
77130 + * we don't check the return value
77131 + */
77132 }
77133
77134 +#ifdef CONFIG_PAX_RANDMMAP
77135 + if (current->mm->pax_flags & MF_PAX_RANDMMAP) {
77136 + unsigned long start, size, flags;
77137 + vm_flags_t vm_flags;
77138 +
77139 + start = ELF_PAGEALIGN(elf_brk);
77140 + size = PAGE_SIZE + ((pax_get_random_long() & ((1UL << 22) - 1UL)) << 4);
77141 + flags = MAP_FIXED | MAP_PRIVATE;
77142 + vm_flags = VM_DONTEXPAND | VM_DONTDUMP;
77143 +
77144 + down_write(&current->mm->mmap_sem);
77145 + start = get_unmapped_area(NULL, start, PAGE_ALIGN(size), 0, flags);
77146 + retval = -ENOMEM;
77147 + if (!IS_ERR_VALUE(start) && !find_vma_intersection(current->mm, start, start + size + PAGE_SIZE)) {
77148 +// if (current->personality & ADDR_NO_RANDOMIZE)
77149 +// vm_flags |= VM_READ | VM_MAYREAD;
77150 + start = mmap_region(NULL, start, PAGE_ALIGN(size), vm_flags, 0);
77151 + retval = IS_ERR_VALUE(start) ? start : 0;
77152 + }
77153 + up_write(&current->mm->mmap_sem);
77154 + if (retval == 0)
77155 + retval = set_brk(start + size, start + size + PAGE_SIZE);
77156 + if (retval < 0)
77157 + goto out_free_dentry;
77158 + }
77159 +#endif
77160 +
77161 if (elf_interpreter) {
77162 - unsigned long interp_map_addr = 0;
77163 -
77164 elf_entry = load_elf_interp(&loc->interp_elf_ex,
77165 interpreter,
77166 - &interp_map_addr,
77167 load_bias, interp_elf_phdata);
77168 if (!IS_ERR((void *)elf_entry)) {
77169 /*
77170 @@ -1051,6 +1530,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
77171 current->mm->end_data = end_data;
77172 current->mm->start_stack = bprm->p;
77173
77174 +#ifndef CONFIG_PAX_RANDMMAP
77175 if ((current->flags & PF_RANDOMIZE) && (randomize_va_space > 1)) {
77176 current->mm->brk = current->mm->start_brk =
77177 arch_randomize_brk(current->mm);
77178 @@ -1058,6 +1538,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
77179 current->brk_randomized = 1;
77180 #endif
77181 }
77182 +#endif
77183
77184 if (current->personality & MMAP_PAGE_ZERO) {
77185 /* Why this, you ask??? Well SVr4 maps page 0 as read-only,
77186 @@ -1226,7 +1707,7 @@ static bool always_dump_vma(struct vm_area_struct *vma)
77187 * Decide what to dump of a segment, part, all or none.
77188 */
77189 static unsigned long vma_dump_size(struct vm_area_struct *vma,
77190 - unsigned long mm_flags)
77191 + unsigned long mm_flags, long signr)
77192 {
77193 #define FILTER(type) (mm_flags & (1UL << MMF_DUMP_##type))
77194
77195 @@ -1273,7 +1754,7 @@ static unsigned long vma_dump_size(struct vm_area_struct *vma,
77196 if (vma->vm_file == NULL)
77197 return 0;
77198
77199 - if (FILTER(MAPPED_PRIVATE))
77200 + if (signr == SIGKILL || FILTER(MAPPED_PRIVATE))
77201 goto whole;
77202
77203 /*
77204 @@ -1373,7 +1854,7 @@ static void fill_elf_header(struct elfhdr *elf, int segs,
77205 return;
77206 }
77207
77208 -static void fill_elf_note_phdr(struct elf_phdr *phdr, int sz, loff_t offset)
77209 +static void fill_elf_note_phdr(struct elf_phdr *phdr, size_t sz, loff_t offset)
77210 {
77211 phdr->p_type = PT_NOTE;
77212 phdr->p_offset = offset;
77213 @@ -1480,9 +1961,9 @@ static void fill_auxv_note(struct memelfnote *note, struct mm_struct *mm)
77214 {
77215 elf_addr_t *auxv = (elf_addr_t *) mm->saved_auxv;
77216 int i = 0;
77217 - do
77218 + do {
77219 i += 2;
77220 - while (auxv[i - 2] != AT_NULL);
77221 + } while (auxv[i - 2] != AT_NULL);
77222 fill_note(note, "CORE", NT_AUXV, i * sizeof(elf_addr_t), auxv);
77223 }
77224
77225 @@ -1491,7 +1972,7 @@ static void fill_siginfo_note(struct memelfnote *note, user_siginfo_t *csigdata,
77226 {
77227 mm_segment_t old_fs = get_fs();
77228 set_fs(KERNEL_DS);
77229 - copy_siginfo_to_user((user_siginfo_t __user *) csigdata, siginfo);
77230 + copy_siginfo_to_user((user_siginfo_t __force_user *) csigdata, siginfo);
77231 set_fs(old_fs);
77232 fill_note(note, "CORE", NT_SIGINFO, sizeof(*csigdata), csigdata);
77233 }
77234 @@ -2211,7 +2692,7 @@ static int elf_core_dump(struct coredump_params *cprm)
77235 vma = next_vma(vma, gate_vma)) {
77236 unsigned long dump_size;
77237
77238 - dump_size = vma_dump_size(vma, cprm->mm_flags);
77239 + dump_size = vma_dump_size(vma, cprm->mm_flags, cprm->siginfo->si_signo);
77240 vma_filesz[i++] = dump_size;
77241 vma_data_size += dump_size;
77242 }
77243 @@ -2319,6 +2800,167 @@ out:
77244
77245 #endif /* CONFIG_ELF_CORE */
77246
77247 +#ifdef CONFIG_PAX_MPROTECT
77248 +/* PaX: non-PIC ELF libraries need relocations on their executable segments
77249 + * therefore we'll grant them VM_MAYWRITE once during their life. Similarly
77250 + * we'll remove VM_MAYWRITE for good on RELRO segments.
77251 + *
77252 + * The checks favour ld-linux.so behaviour which operates on a per ELF segment
77253 + * basis because we want to allow the common case and not the special ones.
77254 + */
77255 +static void elf_handle_mprotect(struct vm_area_struct *vma, unsigned long newflags)
77256 +{
77257 + struct elfhdr elf_h;
77258 + struct elf_phdr elf_p;
77259 + unsigned long i;
77260 + unsigned long oldflags;
77261 + bool is_textrel_rw, is_textrel_rx, is_relro;
77262 +
77263 + if (!(vma->vm_mm->pax_flags & MF_PAX_MPROTECT) || !vma->vm_file)
77264 + return;
77265 +
77266 + oldflags = vma->vm_flags & (VM_MAYEXEC | VM_MAYWRITE | VM_MAYREAD | VM_EXEC | VM_WRITE | VM_READ);
77267 + newflags &= VM_MAYEXEC | VM_MAYWRITE | VM_MAYREAD | VM_EXEC | VM_WRITE | VM_READ;
77268 +
77269 +#ifdef CONFIG_PAX_ELFRELOCS
77270 + /* possible TEXTREL */
77271 + is_textrel_rw = !vma->anon_vma && oldflags == (VM_MAYEXEC | VM_MAYREAD | VM_EXEC | VM_READ) && newflags == (VM_WRITE | VM_READ);
77272 + is_textrel_rx = vma->anon_vma && oldflags == (VM_MAYEXEC | VM_MAYWRITE | VM_MAYREAD | VM_WRITE | VM_READ) && newflags == (VM_EXEC | VM_READ);
77273 +#else
77274 + is_textrel_rw = false;
77275 + is_textrel_rx = false;
77276 +#endif
77277 +
77278 + /* possible RELRO */
77279 + is_relro = vma->anon_vma && oldflags == (VM_MAYWRITE | VM_MAYREAD | VM_READ) && newflags == (VM_MAYWRITE | VM_MAYREAD | VM_READ);
77280 +
77281 + if (!is_textrel_rw && !is_textrel_rx && !is_relro)
77282 + return;
77283 +
77284 + if (sizeof(elf_h) != kernel_read(vma->vm_file, 0UL, (char *)&elf_h, sizeof(elf_h)) ||
77285 + memcmp(elf_h.e_ident, ELFMAG, SELFMAG) ||
77286 +
77287 +#ifdef CONFIG_PAX_ETEXECRELOCS
77288 + ((is_textrel_rw || is_textrel_rx) && (elf_h.e_type != ET_DYN && elf_h.e_type != ET_EXEC)) ||
77289 +#else
77290 + ((is_textrel_rw || is_textrel_rx) && elf_h.e_type != ET_DYN) ||
77291 +#endif
77292 +
77293 + (is_relro && (elf_h.e_type != ET_DYN && elf_h.e_type != ET_EXEC)) ||
77294 + !elf_check_arch(&elf_h) ||
77295 + elf_h.e_phentsize != sizeof(struct elf_phdr) ||
77296 + elf_h.e_phnum > 65536UL / sizeof(struct elf_phdr))
77297 + return;
77298 +
77299 + for (i = 0UL; i < elf_h.e_phnum; i++) {
77300 + if (sizeof(elf_p) != kernel_read(vma->vm_file, elf_h.e_phoff + i*sizeof(elf_p), (char *)&elf_p, sizeof(elf_p)))
77301 + return;
77302 + switch (elf_p.p_type) {
77303 + case PT_DYNAMIC:
77304 + if (!is_textrel_rw && !is_textrel_rx)
77305 + continue;
77306 + i = 0UL;
77307 + while ((i+1) * sizeof(elf_dyn) <= elf_p.p_filesz) {
77308 + elf_dyn dyn;
77309 +
77310 + if (sizeof(dyn) != kernel_read(vma->vm_file, elf_p.p_offset + i*sizeof(dyn), (char *)&dyn, sizeof(dyn)))
77311 + break;
77312 + if (dyn.d_tag == DT_NULL)
77313 + break;
77314 + if (dyn.d_tag == DT_TEXTREL || (dyn.d_tag == DT_FLAGS && (dyn.d_un.d_val & DF_TEXTREL))) {
77315 + gr_log_textrel(vma, is_textrel_rw);
77316 + if (is_textrel_rw)
77317 + vma->vm_flags |= VM_MAYWRITE;
77318 + else
77319 + /* PaX: disallow write access after relocs are done, hopefully noone else needs it... */
77320 + vma->vm_flags &= ~VM_MAYWRITE;
77321 + break;
77322 + }
77323 + i++;
77324 + }
77325 + is_textrel_rw = false;
77326 + is_textrel_rx = false;
77327 + continue;
77328 +
77329 + case PT_GNU_RELRO:
77330 + if (!is_relro)
77331 + continue;
77332 + if ((elf_p.p_offset >> PAGE_SHIFT) == vma->vm_pgoff && ELF_PAGEALIGN(elf_p.p_memsz) == vma->vm_end - vma->vm_start)
77333 + vma->vm_flags &= ~VM_MAYWRITE;
77334 + is_relro = false;
77335 + continue;
77336 +
77337 +#ifdef CONFIG_PAX_PT_PAX_FLAGS
77338 + case PT_PAX_FLAGS: {
77339 + const char *msg_mprotect = "", *msg_emutramp = "";
77340 + char *buffer_lib, *buffer_exe;
77341 +
77342 + if (elf_p.p_flags & PF_NOMPROTECT)
77343 + msg_mprotect = "MPROTECT disabled";
77344 +
77345 +#ifdef CONFIG_PAX_EMUTRAMP
77346 + if (!(vma->vm_mm->pax_flags & MF_PAX_EMUTRAMP) && !(elf_p.p_flags & PF_NOEMUTRAMP))
77347 + msg_emutramp = "EMUTRAMP enabled";
77348 +#endif
77349 +
77350 + if (!msg_mprotect[0] && !msg_emutramp[0])
77351 + continue;
77352 +
77353 + if (!printk_ratelimit())
77354 + continue;
77355 +
77356 + buffer_lib = (char *)__get_free_page(GFP_KERNEL);
77357 + buffer_exe = (char *)__get_free_page(GFP_KERNEL);
77358 + if (buffer_lib && buffer_exe) {
77359 + char *path_lib, *path_exe;
77360 +
77361 + path_lib = pax_get_path(&vma->vm_file->f_path, buffer_lib, PAGE_SIZE);
77362 + path_exe = pax_get_path(&vma->vm_mm->exe_file->f_path, buffer_exe, PAGE_SIZE);
77363 +
77364 + pr_info("PAX: %s wants %s%s%s on %s\n", path_lib, msg_mprotect,
77365 + (msg_mprotect[0] && msg_emutramp[0] ? " and " : ""), msg_emutramp, path_exe);
77366 +
77367 + }
77368 + free_page((unsigned long)buffer_exe);
77369 + free_page((unsigned long)buffer_lib);
77370 + continue;
77371 + }
77372 +#endif
77373 +
77374 + }
77375 + }
77376 +}
77377 +#endif
77378 +
77379 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
77380 +
77381 +extern int grsec_enable_log_rwxmaps;
77382 +
77383 +static void elf_handle_mmap(struct file *file)
77384 +{
77385 + struct elfhdr elf_h;
77386 + struct elf_phdr elf_p;
77387 + unsigned long i;
77388 +
77389 + if (!grsec_enable_log_rwxmaps)
77390 + return;
77391 +
77392 + if (sizeof(elf_h) != kernel_read(file, 0UL, (char *)&elf_h, sizeof(elf_h)) ||
77393 + memcmp(elf_h.e_ident, ELFMAG, SELFMAG) ||
77394 + (elf_h.e_type != ET_DYN && elf_h.e_type != ET_EXEC) || !elf_check_arch(&elf_h) ||
77395 + elf_h.e_phentsize != sizeof(struct elf_phdr) ||
77396 + elf_h.e_phnum > 65536UL / sizeof(struct elf_phdr))
77397 + return;
77398 +
77399 + for (i = 0UL; i < elf_h.e_phnum; i++) {
77400 + if (sizeof(elf_p) != kernel_read(file, elf_h.e_phoff + i*sizeof(elf_p), (char *)&elf_p, sizeof(elf_p)))
77401 + return;
77402 + if (elf_p.p_type == PT_GNU_STACK && (elf_p.p_flags & PF_X))
77403 + gr_log_ptgnustack(file);
77404 + }
77405 +}
77406 +#endif
77407 +
77408 static int __init init_elf_binfmt(void)
77409 {
77410 register_binfmt(&elf_format);
77411 diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c
77412 index b1adb92..81d396b 100644
77413 --- a/fs/binfmt_elf_fdpic.c
77414 +++ b/fs/binfmt_elf_fdpic.c
77415 @@ -1336,7 +1336,7 @@ static inline void fill_elf_fdpic_header(struct elfhdr *elf, int segs)
77416 return;
77417 }
77418
77419 -static inline void fill_elf_note_phdr(struct elf_phdr *phdr, int sz, loff_t offset)
77420 +static inline void fill_elf_note_phdr(struct elf_phdr *phdr, size_t sz, loff_t offset)
77421 {
77422 phdr->p_type = PT_NOTE;
77423 phdr->p_offset = offset;
77424 @@ -1707,7 +1707,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm)
77425
77426 /* Write notes phdr entry */
77427 {
77428 - int sz = 0;
77429 + size_t sz = 0;
77430
77431 for (i = 0; i < numnote; i++)
77432 sz += notesize(notes + i);
77433 diff --git a/fs/block_dev.c b/fs/block_dev.c
77434 index 44d4a1e..99df269 100644
77435 --- a/fs/block_dev.c
77436 +++ b/fs/block_dev.c
77437 @@ -762,7 +762,7 @@ static bool bd_may_claim(struct block_device *bdev, struct block_device *whole,
77438 else if (bdev->bd_contains == bdev)
77439 return true; /* is a whole device which isn't held */
77440
77441 - else if (whole->bd_holder == bd_may_claim)
77442 + else if (whole->bd_holder == (void *)bd_may_claim)
77443 return true; /* is a partition of a device that is being partitioned */
77444 else if (whole->bd_holder != NULL)
77445 return false; /* is a partition of a held device */
77446 diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
77447 index 5b8e235..33d31fc 100644
77448 --- a/fs/btrfs/ctree.c
77449 +++ b/fs/btrfs/ctree.c
77450 @@ -357,7 +357,7 @@ static inline void tree_mod_log_write_unlock(struct btrfs_fs_info *fs_info)
77451 */
77452 static inline u64 btrfs_inc_tree_mod_seq(struct btrfs_fs_info *fs_info)
77453 {
77454 - return atomic64_inc_return(&fs_info->tree_mod_seq);
77455 + return atomic64_inc_return_unchecked(&fs_info->tree_mod_seq);
77456 }
77457
77458 /*
77459 @@ -1182,9 +1182,12 @@ static noinline int __btrfs_cow_block(struct btrfs_trans_handle *trans,
77460 free_extent_buffer(buf);
77461 add_root_to_dirty_list(root);
77462 } else {
77463 - if (root->root_key.objectid == BTRFS_TREE_RELOC_OBJECTID)
77464 - parent_start = parent->start;
77465 - else
77466 + if (root->root_key.objectid == BTRFS_TREE_RELOC_OBJECTID) {
77467 + if (parent)
77468 + parent_start = parent->start;
77469 + else
77470 + parent_start = 0;
77471 + } else
77472 parent_start = 0;
77473
77474 WARN_ON(trans->transid != btrfs_header_generation(parent));
77475 diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
77476 index 385b449..289f2c4 100644
77477 --- a/fs/btrfs/ctree.h
77478 +++ b/fs/btrfs/ctree.h
77479 @@ -1576,7 +1576,7 @@ struct btrfs_fs_info {
77480
77481 /* this protects tree_mod_seq_list */
77482 spinlock_t tree_mod_seq_lock;
77483 - atomic64_t tree_mod_seq;
77484 + atomic64_unchecked_t tree_mod_seq;
77485 struct list_head tree_mod_seq_list;
77486
77487 /* this protects tree_mod_log */
77488 @@ -1881,7 +1881,7 @@ struct btrfs_root {
77489 struct list_head log_ctxs[2];
77490 atomic_t log_writers;
77491 atomic_t log_commit[2];
77492 - atomic_t log_batch;
77493 + atomic_unchecked_t log_batch;
77494 int log_transid;
77495 /* No matter the commit succeeds or not*/
77496 int log_transid_committed;
77497 diff --git a/fs/btrfs/delayed-inode.c b/fs/btrfs/delayed-inode.c
77498 index 02b934d..a8126a4 100644
77499 --- a/fs/btrfs/delayed-inode.c
77500 +++ b/fs/btrfs/delayed-inode.c
77501 @@ -462,7 +462,7 @@ static int __btrfs_add_delayed_deletion_item(struct btrfs_delayed_node *node,
77502
77503 static void finish_one_item(struct btrfs_delayed_root *delayed_root)
77504 {
77505 - int seq = atomic_inc_return(&delayed_root->items_seq);
77506 + int seq = atomic_inc_return_unchecked(&delayed_root->items_seq);
77507
77508 /*
77509 * atomic_dec_return implies a barrier for waitqueue_active
77510 @@ -1416,7 +1416,7 @@ void btrfs_assert_delayed_root_empty(struct btrfs_root *root)
77511
77512 static int could_end_wait(struct btrfs_delayed_root *delayed_root, int seq)
77513 {
77514 - int val = atomic_read(&delayed_root->items_seq);
77515 + int val = atomic_read_unchecked(&delayed_root->items_seq);
77516
77517 if (val < seq || val >= seq + BTRFS_DELAYED_BATCH)
77518 return 1;
77519 @@ -1441,7 +1441,7 @@ void btrfs_balance_delayed_items(struct btrfs_root *root)
77520 int seq;
77521 int ret;
77522
77523 - seq = atomic_read(&delayed_root->items_seq);
77524 + seq = atomic_read_unchecked(&delayed_root->items_seq);
77525
77526 ret = btrfs_wq_run_delayed_node(delayed_root, fs_info, 0);
77527 if (ret)
77528 diff --git a/fs/btrfs/delayed-inode.h b/fs/btrfs/delayed-inode.h
77529 index 0167853c..b7d2bb4 100644
77530 --- a/fs/btrfs/delayed-inode.h
77531 +++ b/fs/btrfs/delayed-inode.h
77532 @@ -43,7 +43,7 @@ struct btrfs_delayed_root {
77533 */
77534 struct list_head prepare_list;
77535 atomic_t items; /* for delayed items */
77536 - atomic_t items_seq; /* for delayed items */
77537 + atomic_unchecked_t items_seq; /* for delayed items */
77538 int nodes; /* for delayed nodes */
77539 wait_queue_head_t wait;
77540 };
77541 @@ -90,7 +90,7 @@ static inline void btrfs_init_delayed_root(
77542 struct btrfs_delayed_root *delayed_root)
77543 {
77544 atomic_set(&delayed_root->items, 0);
77545 - atomic_set(&delayed_root->items_seq, 0);
77546 + atomic_set_unchecked(&delayed_root->items_seq, 0);
77547 delayed_root->nodes = 0;
77548 spin_lock_init(&delayed_root->lock);
77549 init_waitqueue_head(&delayed_root->wait);
77550 diff --git a/fs/btrfs/delayed-ref.c b/fs/btrfs/delayed-ref.c
77551 index e06dd75a..22221aa 100644
77552 --- a/fs/btrfs/delayed-ref.c
77553 +++ b/fs/btrfs/delayed-ref.c
77554 @@ -660,7 +660,7 @@ add_delayed_tree_ref(struct btrfs_fs_info *fs_info,
77555 action = BTRFS_ADD_DELAYED_REF;
77556
77557 if (is_fstree(ref_root))
77558 - seq = atomic64_read(&fs_info->tree_mod_seq);
77559 + seq = atomic64_read_unchecked(&fs_info->tree_mod_seq);
77560 delayed_refs = &trans->transaction->delayed_refs;
77561
77562 /* first set the basic ref node struct up */
77563 @@ -716,7 +716,7 @@ add_delayed_data_ref(struct btrfs_fs_info *fs_info,
77564 delayed_refs = &trans->transaction->delayed_refs;
77565
77566 if (is_fstree(ref_root))
77567 - seq = atomic64_read(&fs_info->tree_mod_seq);
77568 + seq = atomic64_read_unchecked(&fs_info->tree_mod_seq);
77569
77570 /* first set the basic ref node struct up */
77571 atomic_set(&ref->refs, 1);
77572 diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
77573 index 41fb431..9b5ad63 100644
77574 --- a/fs/btrfs/disk-io.c
77575 +++ b/fs/btrfs/disk-io.c
77576 @@ -1263,7 +1263,7 @@ static void __setup_root(u32 nodesize, u32 sectorsize, u32 stripesize,
77577 atomic_set(&root->log_commit[0], 0);
77578 atomic_set(&root->log_commit[1], 0);
77579 atomic_set(&root->log_writers, 0);
77580 - atomic_set(&root->log_batch, 0);
77581 + atomic_set_unchecked(&root->log_batch, 0);
77582 atomic_set(&root->orphan_inodes, 0);
77583 atomic_set(&root->refs, 1);
77584 atomic_set(&root->will_be_snapshoted, 0);
77585 @@ -2582,7 +2582,7 @@ int open_ctree(struct super_block *sb,
77586 atomic_set(&fs_info->nr_async_bios, 0);
77587 atomic_set(&fs_info->defrag_running, 0);
77588 atomic_set(&fs_info->qgroup_op_seq, 0);
77589 - atomic64_set(&fs_info->tree_mod_seq, 0);
77590 + atomic64_set_unchecked(&fs_info->tree_mod_seq, 0);
77591 fs_info->sb = sb;
77592 fs_info->max_inline = BTRFS_DEFAULT_MAX_INLINE;
77593 fs_info->metadata_ratio = 0;
77594 diff --git a/fs/btrfs/extent_map.c b/fs/btrfs/extent_map.c
77595 index 6a98bdd..fed3da6 100644
77596 --- a/fs/btrfs/extent_map.c
77597 +++ b/fs/btrfs/extent_map.c
77598 @@ -235,7 +235,9 @@ static void try_merge_map(struct extent_map_tree *tree, struct extent_map *em)
77599 em->start = merge->start;
77600 em->orig_start = merge->orig_start;
77601 em->len += merge->len;
77602 - em->block_len += merge->block_len;
77603 + if (em->block_start != EXTENT_MAP_HOLE &&
77604 + em->block_start != EXTENT_MAP_INLINE)
77605 + em->block_len += merge->block_len;
77606 em->block_start = merge->block_start;
77607 em->mod_len = (em->mod_len + em->mod_start) - merge->mod_start;
77608 em->mod_start = merge->mod_start;
77609 @@ -252,7 +254,9 @@ static void try_merge_map(struct extent_map_tree *tree, struct extent_map *em)
77610 merge = rb_entry(rb, struct extent_map, rb_node);
77611 if (rb && mergable_maps(em, merge)) {
77612 em->len += merge->len;
77613 - em->block_len += merge->block_len;
77614 + if (em->block_start != EXTENT_MAP_HOLE &&
77615 + em->block_start != EXTENT_MAP_INLINE)
77616 + em->block_len += merge->block_len;
77617 rb_erase(&merge->rb_node, &tree->map);
77618 RB_CLEAR_NODE(&merge->rb_node);
77619 em->mod_len = (merge->mod_start + merge->mod_len) - em->mod_start;
77620 diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
77621 index 0f09526..000f57d 100644
77622 --- a/fs/btrfs/file.c
77623 +++ b/fs/btrfs/file.c
77624 @@ -1912,7 +1912,7 @@ int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
77625 return ret;
77626
77627 mutex_lock(&inode->i_mutex);
77628 - atomic_inc(&root->log_batch);
77629 + atomic_inc_unchecked(&root->log_batch);
77630 full_sync = test_bit(BTRFS_INODE_NEEDS_FULL_SYNC,
77631 &BTRFS_I(inode)->runtime_flags);
77632 /*
77633 @@ -1966,7 +1966,7 @@ int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
77634 mutex_unlock(&inode->i_mutex);
77635 goto out;
77636 }
77637 - atomic_inc(&root->log_batch);
77638 + atomic_inc_unchecked(&root->log_batch);
77639
77640 /*
77641 * If the last transaction that changed this file was before the current
77642 diff --git a/fs/btrfs/raid56.c b/fs/btrfs/raid56.c
77643 index 1a33d3e..4830234 100644
77644 --- a/fs/btrfs/raid56.c
77645 +++ b/fs/btrfs/raid56.c
77646 @@ -153,7 +153,7 @@ struct btrfs_raid_bio {
77647
77648 atomic_t stripes_pending;
77649
77650 - atomic_t error;
77651 + atomic_unchecked_t error;
77652 /*
77653 * these are two arrays of pointers. We allocate the
77654 * rbio big enough to hold them both and setup their
77655 @@ -902,7 +902,7 @@ static void raid_write_end_io(struct bio *bio)
77656 err = 0;
77657
77658 /* OK, we have read all the stripes we need to. */
77659 - if (atomic_read(&rbio->error) > rbio->bbio->max_errors)
77660 + if (atomic_read_unchecked(&rbio->error) > rbio->bbio->max_errors)
77661 err = -EIO;
77662
77663 rbio_orig_end_io(rbio, err);
77664 @@ -987,7 +987,7 @@ static struct btrfs_raid_bio *alloc_rbio(struct btrfs_root *root,
77665 rbio->faila = -1;
77666 rbio->failb = -1;
77667 atomic_set(&rbio->refs, 1);
77668 - atomic_set(&rbio->error, 0);
77669 + atomic_set_unchecked(&rbio->error, 0);
77670 atomic_set(&rbio->stripes_pending, 0);
77671
77672 /*
77673 @@ -1211,7 +1211,7 @@ static noinline void finish_rmw(struct btrfs_raid_bio *rbio)
77674 set_bit(RBIO_RMW_LOCKED_BIT, &rbio->flags);
77675 spin_unlock_irq(&rbio->bio_list_lock);
77676
77677 - atomic_set(&rbio->error, 0);
77678 + atomic_set_unchecked(&rbio->error, 0);
77679
77680 /*
77681 * now that we've set rmw_locked, run through the
77682 @@ -1399,11 +1399,11 @@ static int fail_rbio_index(struct btrfs_raid_bio *rbio, int failed)
77683 if (rbio->faila == -1) {
77684 /* first failure on this rbio */
77685 rbio->faila = failed;
77686 - atomic_inc(&rbio->error);
77687 + atomic_inc_unchecked(&rbio->error);
77688 } else if (rbio->failb == -1) {
77689 /* second failure on this rbio */
77690 rbio->failb = failed;
77691 - atomic_inc(&rbio->error);
77692 + atomic_inc_unchecked(&rbio->error);
77693 } else {
77694 ret = -EIO;
77695 }
77696 @@ -1465,7 +1465,7 @@ static void raid_rmw_end_io(struct bio *bio)
77697 if (!atomic_dec_and_test(&rbio->stripes_pending))
77698 return;
77699
77700 - if (atomic_read(&rbio->error) > rbio->bbio->max_errors)
77701 + if (atomic_read_unchecked(&rbio->error) > rbio->bbio->max_errors)
77702 goto cleanup;
77703
77704 /*
77705 @@ -1521,7 +1521,7 @@ static int raid56_rmw_stripe(struct btrfs_raid_bio *rbio)
77706
77707 index_rbio_pages(rbio);
77708
77709 - atomic_set(&rbio->error, 0);
77710 + atomic_set_unchecked(&rbio->error, 0);
77711 /*
77712 * build a list of bios to read all the missing parts of this
77713 * stripe
77714 @@ -2014,7 +2014,7 @@ static void raid_recover_end_io(struct bio *bio)
77715 if (!atomic_dec_and_test(&rbio->stripes_pending))
77716 return;
77717
77718 - if (atomic_read(&rbio->error) > rbio->bbio->max_errors)
77719 + if (atomic_read_unchecked(&rbio->error) > rbio->bbio->max_errors)
77720 rbio_orig_end_io(rbio, -EIO);
77721 else
77722 __raid_recover_end_io(rbio);
77723 @@ -2044,7 +2044,7 @@ static int __raid56_parity_recover(struct btrfs_raid_bio *rbio)
77724 if (ret)
77725 goto cleanup;
77726
77727 - atomic_set(&rbio->error, 0);
77728 + atomic_set_unchecked(&rbio->error, 0);
77729
77730 /*
77731 * read everything that hasn't failed. Thanks to the
77732 @@ -2053,7 +2053,7 @@ static int __raid56_parity_recover(struct btrfs_raid_bio *rbio)
77733 */
77734 for (stripe = 0; stripe < rbio->real_stripes; stripe++) {
77735 if (rbio->faila == stripe || rbio->failb == stripe) {
77736 - atomic_inc(&rbio->error);
77737 + atomic_inc_unchecked(&rbio->error);
77738 continue;
77739 }
77740
77741 @@ -2083,7 +2083,7 @@ static int __raid56_parity_recover(struct btrfs_raid_bio *rbio)
77742 * were up to date, or we might have no bios to read because
77743 * the devices were gone.
77744 */
77745 - if (atomic_read(&rbio->error) <= rbio->bbio->max_errors) {
77746 + if (atomic_read_unchecked(&rbio->error) <= rbio->bbio->max_errors) {
77747 __raid_recover_end_io(rbio);
77748 goto out;
77749 } else {
77750 @@ -2306,7 +2306,7 @@ static void raid_write_parity_end_io(struct bio *bio)
77751
77752 err = 0;
77753
77754 - if (atomic_read(&rbio->error))
77755 + if (atomic_read_unchecked(&rbio->error))
77756 err = -EIO;
77757
77758 rbio_orig_end_io(rbio, err);
77759 @@ -2370,7 +2370,7 @@ static noinline void finish_parity_scrub(struct btrfs_raid_bio *rbio,
77760 SetPageUptodate(q_page);
77761 }
77762
77763 - atomic_set(&rbio->error, 0);
77764 + atomic_set_unchecked(&rbio->error, 0);
77765
77766 for_each_set_bit(pagenr, rbio->dbitmap, rbio->stripe_npages) {
77767 struct page *p;
77768 @@ -2489,7 +2489,7 @@ static inline int is_data_stripe(struct btrfs_raid_bio *rbio, int stripe)
77769 */
77770 static void validate_rbio_for_parity_scrub(struct btrfs_raid_bio *rbio)
77771 {
77772 - if (atomic_read(&rbio->error) > rbio->bbio->max_errors)
77773 + if (atomic_read_unchecked(&rbio->error) > rbio->bbio->max_errors)
77774 goto cleanup;
77775
77776 if (rbio->faila >= 0 || rbio->failb >= 0) {
77777 @@ -2586,7 +2586,7 @@ static void raid56_parity_scrub_stripe(struct btrfs_raid_bio *rbio)
77778
77779 bio_list_init(&bio_list);
77780
77781 - atomic_set(&rbio->error, 0);
77782 + atomic_set_unchecked(&rbio->error, 0);
77783 /*
77784 * build a list of bios to read all the missing parts of this
77785 * stripe
77786 diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
77787 index fe609b8..6475fee 100644
77788 --- a/fs/btrfs/super.c
77789 +++ b/fs/btrfs/super.c
77790 @@ -248,7 +248,7 @@ void __btrfs_abort_transaction(struct btrfs_trans_handle *trans,
77791 function, line, errstr);
77792 return;
77793 }
77794 - ACCESS_ONCE(trans->transaction->aborted) = errno;
77795 + ACCESS_ONCE_RW(trans->transaction->aborted) = errno;
77796 /* Wake up anybody who may be waiting on this transaction */
77797 wake_up(&root->fs_info->transaction_wait);
77798 wake_up(&root->fs_info->transaction_blocked_wait);
77799 diff --git a/fs/btrfs/sysfs.c b/fs/btrfs/sysfs.c
77800 index e0ac859..dc1657f 100644
77801 --- a/fs/btrfs/sysfs.c
77802 +++ b/fs/btrfs/sysfs.c
77803 @@ -481,7 +481,7 @@ static int addrm_unknown_feature_attrs(struct btrfs_fs_info *fs_info, bool add)
77804 for (set = 0; set < FEAT_MAX; set++) {
77805 int i;
77806 struct attribute *attrs[2];
77807 - struct attribute_group agroup = {
77808 + attribute_group_no_const agroup = {
77809 .name = "features",
77810 .attrs = attrs,
77811 };
77812 diff --git a/fs/btrfs/tests/btrfs-tests.c b/fs/btrfs/tests/btrfs-tests.c
77813 index 9626252..e130203 100644
77814 --- a/fs/btrfs/tests/btrfs-tests.c
77815 +++ b/fs/btrfs/tests/btrfs-tests.c
77816 @@ -116,7 +116,7 @@ struct btrfs_fs_info *btrfs_alloc_dummy_fs_info(void)
77817 fs_info->running_transaction = NULL;
77818 fs_info->qgroup_tree = RB_ROOT;
77819 fs_info->qgroup_ulist = NULL;
77820 - atomic64_set(&fs_info->tree_mod_seq, 0);
77821 + atomic64_set_unchecked(&fs_info->tree_mod_seq, 0);
77822 INIT_LIST_HEAD(&fs_info->dirty_qgroups);
77823 INIT_LIST_HEAD(&fs_info->dead_roots);
77824 INIT_LIST_HEAD(&fs_info->tree_mod_seq_list);
77825 diff --git a/fs/btrfs/tests/free-space-tests.c b/fs/btrfs/tests/free-space-tests.c
77826 index 8b72b00..6c30bdc 100644
77827 --- a/fs/btrfs/tests/free-space-tests.c
77828 +++ b/fs/btrfs/tests/free-space-tests.c
77829 @@ -470,7 +470,9 @@ test_steal_space_from_bitmap_to_extent(struct btrfs_block_group_cache *cache)
77830 * extent entry.
77831 */
77832 use_bitmap_op = cache->free_space_ctl->op->use_bitmap;
77833 - cache->free_space_ctl->op->use_bitmap = test_use_bitmap;
77834 + pax_open_kernel();
77835 + *(void **)&cache->free_space_ctl->op->use_bitmap = test_use_bitmap;
77836 + pax_close_kernel();
77837
77838 /*
77839 * Extent entry covering free space range [128Mb - 256Kb, 128Mb - 128Kb[
77840 @@ -877,7 +879,9 @@ test_steal_space_from_bitmap_to_extent(struct btrfs_block_group_cache *cache)
77841 if (ret)
77842 return ret;
77843
77844 - cache->free_space_ctl->op->use_bitmap = use_bitmap_op;
77845 + pax_open_kernel();
77846 + *(void **)&cache->free_space_ctl->op->use_bitmap = use_bitmap_op;
77847 + pax_close_kernel();
77848 __btrfs_remove_free_space_cache(cache->free_space_ctl);
77849
77850 return 0;
77851 diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c
77852 index be8eae8..f884717 100644
77853 --- a/fs/btrfs/transaction.c
77854 +++ b/fs/btrfs/transaction.c
77855 @@ -260,7 +260,7 @@ loop:
77856 if (!RB_EMPTY_ROOT(&fs_info->tree_mod_log))
77857 WARN(1, KERN_ERR "BTRFS: tree_mod_log rb tree not empty when "
77858 "creating a fresh transaction\n");
77859 - atomic64_set(&fs_info->tree_mod_seq, 0);
77860 + atomic64_set_unchecked(&fs_info->tree_mod_seq, 0);
77861
77862 spin_lock_init(&cur_trans->delayed_refs.lock);
77863
77864 diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
77865 index 323e12c..f9bab4a 100644
77866 --- a/fs/btrfs/tree-log.c
77867 +++ b/fs/btrfs/tree-log.c
77868 @@ -172,7 +172,7 @@ static int start_log_trans(struct btrfs_trans_handle *trans,
77869 root->log_start_pid = current->pid;
77870 }
77871
77872 - atomic_inc(&root->log_batch);
77873 + atomic_inc_unchecked(&root->log_batch);
77874 atomic_inc(&root->log_writers);
77875 if (ctx) {
77876 int index = root->log_transid % 2;
77877 @@ -2754,7 +2754,7 @@ int btrfs_sync_log(struct btrfs_trans_handle *trans,
77878 wait_log_commit(root, log_transid - 1);
77879
77880 while (1) {
77881 - int batch = atomic_read(&root->log_batch);
77882 + int batch = atomic_read_unchecked(&root->log_batch);
77883 /* when we're on an ssd, just kick the log commit out */
77884 if (!btrfs_test_opt(root, SSD) &&
77885 test_bit(BTRFS_ROOT_MULTI_LOG_TASKS, &root->state)) {
77886 @@ -2763,7 +2763,7 @@ int btrfs_sync_log(struct btrfs_trans_handle *trans,
77887 mutex_lock(&root->log_mutex);
77888 }
77889 wait_for_writer(root);
77890 - if (batch == atomic_read(&root->log_batch))
77891 + if (batch == atomic_read_unchecked(&root->log_batch))
77892 break;
77893 }
77894
77895 @@ -2809,7 +2809,7 @@ int btrfs_sync_log(struct btrfs_trans_handle *trans,
77896 btrfs_init_log_ctx(&root_log_ctx);
77897
77898 mutex_lock(&log_root_tree->log_mutex);
77899 - atomic_inc(&log_root_tree->log_batch);
77900 + atomic_inc_unchecked(&log_root_tree->log_batch);
77901 atomic_inc(&log_root_tree->log_writers);
77902
77903 index2 = log_root_tree->log_transid % 2;
77904 diff --git a/fs/btrfs/tree-log.h b/fs/btrfs/tree-log.h
77905 index 6916a78..4598936 100644
77906 --- a/fs/btrfs/tree-log.h
77907 +++ b/fs/btrfs/tree-log.h
77908 @@ -45,7 +45,7 @@ static inline void btrfs_init_log_ctx(struct btrfs_log_ctx *ctx)
77909 static inline void btrfs_set_log_full_commit(struct btrfs_fs_info *fs_info,
77910 struct btrfs_trans_handle *trans)
77911 {
77912 - ACCESS_ONCE(fs_info->last_trans_log_full_commit) = trans->transid;
77913 + ACCESS_ONCE_RW(fs_info->last_trans_log_full_commit) = trans->transid;
77914 }
77915
77916 static inline int btrfs_need_log_full_commit(struct btrfs_fs_info *fs_info,
77917 diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
77918 index 9c62a6f..3c7df72 100644
77919 --- a/fs/btrfs/volumes.c
77920 +++ b/fs/btrfs/volumes.c
77921 @@ -231,7 +231,7 @@ static struct btrfs_device *__alloc_device(void)
77922
77923 spin_lock_init(&dev->reada_lock);
77924 atomic_set(&dev->reada_in_flight, 0);
77925 - atomic_set(&dev->dev_stats_ccnt, 0);
77926 + atomic_set_unchecked(&dev->dev_stats_ccnt, 0);
77927 btrfs_device_data_ordered_init(dev);
77928 INIT_RADIX_TREE(&dev->reada_zones, GFP_NOFS & ~__GFP_DIRECT_RECLAIM);
77929 INIT_RADIX_TREE(&dev->reada_extents, GFP_NOFS & ~__GFP_DIRECT_RECLAIM);
77930 @@ -5185,7 +5185,7 @@ static struct btrfs_bio *alloc_btrfs_bio(int total_stripes, int real_stripes)
77931 sizeof(u64) * (total_stripes),
77932 GFP_NOFS|__GFP_NOFAIL);
77933
77934 - atomic_set(&bbio->error, 0);
77935 + atomic_set_unchecked(&bbio->error, 0);
77936 atomic_set(&bbio->refs, 1);
77937
77938 return bbio;
77939 @@ -5866,7 +5866,7 @@ static void btrfs_end_bio(struct bio *bio)
77940 int is_orig_bio = 0;
77941
77942 if (bio->bi_error) {
77943 - atomic_inc(&bbio->error);
77944 + atomic_inc_unchecked(&bbio->error);
77945 if (bio->bi_error == -EIO || bio->bi_error == -EREMOTEIO) {
77946 unsigned int stripe_index =
77947 btrfs_io_bio(bio)->stripe_index;
77948 @@ -5904,7 +5904,7 @@ static void btrfs_end_bio(struct bio *bio)
77949 /* only send an error to the higher layers if it is
77950 * beyond the tolerance of the btrfs bio
77951 */
77952 - if (atomic_read(&bbio->error) > bbio->max_errors) {
77953 + if (atomic_read_unchecked(&bbio->error) > bbio->max_errors) {
77954 bio->bi_error = -EIO;
77955 } else {
77956 /*
77957 @@ -6015,7 +6015,7 @@ static void submit_stripe_bio(struct btrfs_root *root, struct btrfs_bio *bbio,
77958
77959 static void bbio_error(struct btrfs_bio *bbio, struct bio *bio, u64 logical)
77960 {
77961 - atomic_inc(&bbio->error);
77962 + atomic_inc_unchecked(&bbio->error);
77963 if (atomic_dec_and_test(&bbio->stripes_pending)) {
77964 /* Shoud be the original bio. */
77965 WARN_ON(bio != bbio->orig_bio);
77966 @@ -6777,10 +6777,10 @@ int btrfs_run_dev_stats(struct btrfs_trans_handle *trans,
77967 if (!device->dev_stats_valid || !btrfs_dev_stats_dirty(device))
77968 continue;
77969
77970 - stats_cnt = atomic_read(&device->dev_stats_ccnt);
77971 + stats_cnt = atomic_read_unchecked(&device->dev_stats_ccnt);
77972 ret = update_dev_stat_item(trans, dev_root, device);
77973 if (!ret)
77974 - atomic_sub(stats_cnt, &device->dev_stats_ccnt);
77975 + atomic_sub_unchecked(stats_cnt, &device->dev_stats_ccnt);
77976 }
77977 mutex_unlock(&fs_devices->device_list_mutex);
77978
77979 diff --git a/fs/btrfs/volumes.h b/fs/btrfs/volumes.h
77980 index d5c84f6..0badba4 100644
77981 --- a/fs/btrfs/volumes.h
77982 +++ b/fs/btrfs/volumes.h
77983 @@ -148,8 +148,8 @@ struct btrfs_device {
77984 int dev_stats_valid;
77985
77986 /* Counter to record the change of device stats */
77987 - atomic_t dev_stats_ccnt;
77988 - atomic_t dev_stat_values[BTRFS_DEV_STAT_VALUES_MAX];
77989 + atomic_unchecked_t dev_stats_ccnt;
77990 + atomic_unchecked_t dev_stat_values[BTRFS_DEV_STAT_VALUES_MAX];
77991 };
77992
77993 /*
77994 @@ -307,7 +307,7 @@ struct btrfs_bio {
77995 struct bio *orig_bio;
77996 unsigned long flags;
77997 void *private;
77998 - atomic_t error;
77999 + atomic_unchecked_t error;
78000 int max_errors;
78001 int num_stripes;
78002 int mirror_num;
78003 @@ -507,21 +507,21 @@ int btrfs_remove_chunk(struct btrfs_trans_handle *trans,
78004
78005 static inline int btrfs_dev_stats_dirty(struct btrfs_device *dev)
78006 {
78007 - return atomic_read(&dev->dev_stats_ccnt);
78008 + return atomic_read_unchecked(&dev->dev_stats_ccnt);
78009 }
78010
78011 static inline void btrfs_dev_stat_inc(struct btrfs_device *dev,
78012 int index)
78013 {
78014 - atomic_inc(dev->dev_stat_values + index);
78015 + atomic_inc_unchecked(dev->dev_stat_values + index);
78016 smp_mb__before_atomic();
78017 - atomic_inc(&dev->dev_stats_ccnt);
78018 + atomic_inc_unchecked(&dev->dev_stats_ccnt);
78019 }
78020
78021 static inline int btrfs_dev_stat_read(struct btrfs_device *dev,
78022 int index)
78023 {
78024 - return atomic_read(dev->dev_stat_values + index);
78025 + return atomic_read_unchecked(dev->dev_stat_values + index);
78026 }
78027
78028 static inline int btrfs_dev_stat_read_and_reset(struct btrfs_device *dev,
78029 @@ -529,18 +529,18 @@ static inline int btrfs_dev_stat_read_and_reset(struct btrfs_device *dev,
78030 {
78031 int ret;
78032
78033 - ret = atomic_xchg(dev->dev_stat_values + index, 0);
78034 + ret = atomic_xchg_unchecked(dev->dev_stat_values + index, 0);
78035 smp_mb__before_atomic();
78036 - atomic_inc(&dev->dev_stats_ccnt);
78037 + atomic_inc_unchecked(&dev->dev_stats_ccnt);
78038 return ret;
78039 }
78040
78041 static inline void btrfs_dev_stat_set(struct btrfs_device *dev,
78042 int index, unsigned long val)
78043 {
78044 - atomic_set(dev->dev_stat_values + index, val);
78045 + atomic_set_unchecked(dev->dev_stat_values + index, val);
78046 smp_mb__before_atomic();
78047 - atomic_inc(&dev->dev_stats_ccnt);
78048 + atomic_inc_unchecked(&dev->dev_stats_ccnt);
78049 }
78050
78051 static inline void btrfs_dev_stat_reset(struct btrfs_device *dev,
78052 diff --git a/fs/buffer.c b/fs/buffer.c
78053 index 4f4cd95..f19e4ab 100644
78054 --- a/fs/buffer.c
78055 +++ b/fs/buffer.c
78056 @@ -3417,7 +3417,7 @@ void __init buffer_init(void)
78057 bh_cachep = kmem_cache_create("buffer_head",
78058 sizeof(struct buffer_head), 0,
78059 (SLAB_RECLAIM_ACCOUNT|SLAB_PANIC|
78060 - SLAB_MEM_SPREAD),
78061 + SLAB_MEM_SPREAD|SLAB_NO_SANITIZE),
78062 NULL);
78063
78064 /*
78065 diff --git a/fs/cachefiles/bind.c b/fs/cachefiles/bind.c
78066 index 6af790f..ec4c1e6 100644
78067 --- a/fs/cachefiles/bind.c
78068 +++ b/fs/cachefiles/bind.c
78069 @@ -39,13 +39,11 @@ int cachefiles_daemon_bind(struct cachefiles_cache *cache, char *args)
78070 args);
78071
78072 /* start by checking things over */
78073 - ASSERT(cache->fstop_percent >= 0 &&
78074 - cache->fstop_percent < cache->fcull_percent &&
78075 + ASSERT(cache->fstop_percent < cache->fcull_percent &&
78076 cache->fcull_percent < cache->frun_percent &&
78077 cache->frun_percent < 100);
78078
78079 - ASSERT(cache->bstop_percent >= 0 &&
78080 - cache->bstop_percent < cache->bcull_percent &&
78081 + ASSERT(cache->bstop_percent < cache->bcull_percent &&
78082 cache->bcull_percent < cache->brun_percent &&
78083 cache->brun_percent < 100);
78084
78085 diff --git a/fs/cachefiles/daemon.c b/fs/cachefiles/daemon.c
78086 index f601def..b2cf704 100644
78087 --- a/fs/cachefiles/daemon.c
78088 +++ b/fs/cachefiles/daemon.c
78089 @@ -196,7 +196,7 @@ static ssize_t cachefiles_daemon_read(struct file *file, char __user *_buffer,
78090 if (n > buflen)
78091 return -EMSGSIZE;
78092
78093 - if (copy_to_user(_buffer, buffer, n) != 0)
78094 + if (n > sizeof(buffer) || copy_to_user(_buffer, buffer, n) != 0)
78095 return -EFAULT;
78096
78097 return n;
78098 @@ -222,7 +222,7 @@ static ssize_t cachefiles_daemon_write(struct file *file,
78099 if (test_bit(CACHEFILES_DEAD, &cache->flags))
78100 return -EIO;
78101
78102 - if (datalen < 0 || datalen > PAGE_SIZE - 1)
78103 + if (datalen > PAGE_SIZE - 1)
78104 return -EOPNOTSUPP;
78105
78106 /* drag the command string into the kernel so we can parse it */
78107 @@ -385,7 +385,7 @@ static int cachefiles_daemon_fstop(struct cachefiles_cache *cache, char *args)
78108 if (args[0] != '%' || args[1] != '\0')
78109 return -EINVAL;
78110
78111 - if (fstop < 0 || fstop >= cache->fcull_percent)
78112 + if (fstop >= cache->fcull_percent)
78113 return cachefiles_daemon_range_error(cache, args);
78114
78115 cache->fstop_percent = fstop;
78116 @@ -457,7 +457,7 @@ static int cachefiles_daemon_bstop(struct cachefiles_cache *cache, char *args)
78117 if (args[0] != '%' || args[1] != '\0')
78118 return -EINVAL;
78119
78120 - if (bstop < 0 || bstop >= cache->bcull_percent)
78121 + if (bstop >= cache->bcull_percent)
78122 return cachefiles_daemon_range_error(cache, args);
78123
78124 cache->bstop_percent = bstop;
78125 diff --git a/fs/cachefiles/internal.h b/fs/cachefiles/internal.h
78126 index 9c4b737..0bc3fd18 100644
78127 --- a/fs/cachefiles/internal.h
78128 +++ b/fs/cachefiles/internal.h
78129 @@ -65,7 +65,7 @@ struct cachefiles_cache {
78130 wait_queue_head_t daemon_pollwq; /* poll waitqueue for daemon */
78131 struct rb_root active_nodes; /* active nodes (can't be culled) */
78132 rwlock_t active_lock; /* lock for active_nodes */
78133 - atomic_t gravecounter; /* graveyard uniquifier */
78134 + atomic_unchecked_t gravecounter; /* graveyard uniquifier */
78135 unsigned frun_percent; /* when to stop culling (% files) */
78136 unsigned fcull_percent; /* when to start culling (% files) */
78137 unsigned fstop_percent; /* when to stop allocating (% files) */
78138 @@ -177,19 +177,19 @@ extern int cachefiles_check_in_use(struct cachefiles_cache *cache,
78139 * proc.c
78140 */
78141 #ifdef CONFIG_CACHEFILES_HISTOGRAM
78142 -extern atomic_t cachefiles_lookup_histogram[HZ];
78143 -extern atomic_t cachefiles_mkdir_histogram[HZ];
78144 -extern atomic_t cachefiles_create_histogram[HZ];
78145 +extern atomic_unchecked_t cachefiles_lookup_histogram[HZ];
78146 +extern atomic_unchecked_t cachefiles_mkdir_histogram[HZ];
78147 +extern atomic_unchecked_t cachefiles_create_histogram[HZ];
78148
78149 extern int __init cachefiles_proc_init(void);
78150 extern void cachefiles_proc_cleanup(void);
78151 static inline
78152 -void cachefiles_hist(atomic_t histogram[], unsigned long start_jif)
78153 +void cachefiles_hist(atomic_unchecked_t histogram[], unsigned long start_jif)
78154 {
78155 unsigned long jif = jiffies - start_jif;
78156 if (jif >= HZ)
78157 jif = HZ - 1;
78158 - atomic_inc(&histogram[jif]);
78159 + atomic_inc_unchecked(&histogram[jif]);
78160 }
78161
78162 #else
78163 diff --git a/fs/cachefiles/namei.c b/fs/cachefiles/namei.c
78164 index c4b8934..8c9b05c 100644
78165 --- a/fs/cachefiles/namei.c
78166 +++ b/fs/cachefiles/namei.c
78167 @@ -312,7 +312,7 @@ try_again:
78168 /* first step is to make up a grave dentry in the graveyard */
78169 sprintf(nbuffer, "%08x%08x",
78170 (uint32_t) get_seconds(),
78171 - (uint32_t) atomic_inc_return(&cache->gravecounter));
78172 + (uint32_t) atomic_inc_return_unchecked(&cache->gravecounter));
78173
78174 /* do the multiway lock magic */
78175 trap = lock_rename(cache->graveyard, dir);
78176 diff --git a/fs/cachefiles/proc.c b/fs/cachefiles/proc.c
78177 index eccd339..4c1d995 100644
78178 --- a/fs/cachefiles/proc.c
78179 +++ b/fs/cachefiles/proc.c
78180 @@ -14,9 +14,9 @@
78181 #include <linux/seq_file.h>
78182 #include "internal.h"
78183
78184 -atomic_t cachefiles_lookup_histogram[HZ];
78185 -atomic_t cachefiles_mkdir_histogram[HZ];
78186 -atomic_t cachefiles_create_histogram[HZ];
78187 +atomic_unchecked_t cachefiles_lookup_histogram[HZ];
78188 +atomic_unchecked_t cachefiles_mkdir_histogram[HZ];
78189 +atomic_unchecked_t cachefiles_create_histogram[HZ];
78190
78191 /*
78192 * display the latency histogram
78193 @@ -35,9 +35,9 @@ static int cachefiles_histogram_show(struct seq_file *m, void *v)
78194 return 0;
78195 default:
78196 index = (unsigned long) v - 3;
78197 - x = atomic_read(&cachefiles_lookup_histogram[index]);
78198 - y = atomic_read(&cachefiles_mkdir_histogram[index]);
78199 - z = atomic_read(&cachefiles_create_histogram[index]);
78200 + x = atomic_read_unchecked(&cachefiles_lookup_histogram[index]);
78201 + y = atomic_read_unchecked(&cachefiles_mkdir_histogram[index]);
78202 + z = atomic_read_unchecked(&cachefiles_create_histogram[index]);
78203 if (x == 0 && y == 0 && z == 0)
78204 return 0;
78205
78206 diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
78207 index 9314b4e..4a1f602 100644
78208 --- a/fs/ceph/dir.c
78209 +++ b/fs/ceph/dir.c
78210 @@ -214,10 +214,18 @@ static int __dcache_readdir(struct file *file, struct dir_context *ctx,
78211 spin_unlock(&dentry->d_lock);
78212
78213 if (emit_dentry) {
78214 + char d_name[DNAME_INLINE_LEN];
78215 + const unsigned char *name;
78216 +
78217 dout(" %llu (%llu) dentry %p %pd %p\n", di->offset, ctx->pos,
78218 dentry, dentry, d_inode(dentry));
78219 ctx->pos = di->offset;
78220 - if (!dir_emit(ctx, dentry->d_name.name,
78221 + name = dentry->d_name.name;
78222 + if (name == dentry->d_iname) {
78223 + memcpy(d_name, name, dentry->d_name.len);
78224 + name = d_name;
78225 + }
78226 + if (!dir_emit(ctx, name,
78227 dentry->d_name.len,
78228 ceph_translate_ino(dentry->d_sb,
78229 d_inode(dentry)->i_ino),
78230 @@ -259,7 +267,7 @@ static int ceph_readdir(struct file *file, struct dir_context *ctx)
78231 struct ceph_fs_client *fsc = ceph_inode_to_client(inode);
78232 struct ceph_mds_client *mdsc = fsc->mdsc;
78233 unsigned frag = fpos_frag(ctx->pos);
78234 - int off = fpos_off(ctx->pos);
78235 + unsigned int off = fpos_off(ctx->pos);
78236 int err;
78237 u32 ftype;
78238 struct ceph_mds_reply_info_parsed *rinfo;
78239 diff --git a/fs/ceph/super.c b/fs/ceph/super.c
78240 index f446afa..0ad3b8e 100644
78241 --- a/fs/ceph/super.c
78242 +++ b/fs/ceph/super.c
78243 @@ -907,7 +907,7 @@ static int ceph_compare_super(struct super_block *sb, void *data)
78244 /*
78245 * construct our own bdi so we can control readahead, etc.
78246 */
78247 -static atomic_long_t bdi_seq = ATOMIC_LONG_INIT(0);
78248 +static atomic_long_unchecked_t bdi_seq = ATOMIC_LONG_INIT(0);
78249
78250 static int ceph_register_bdi(struct super_block *sb,
78251 struct ceph_fs_client *fsc)
78252 @@ -924,7 +924,7 @@ static int ceph_register_bdi(struct super_block *sb,
78253 VM_MAX_READAHEAD * 1024 / PAGE_CACHE_SIZE;
78254
78255 err = bdi_register(&fsc->backing_dev_info, NULL, "ceph-%ld",
78256 - atomic_long_inc_return(&bdi_seq));
78257 + atomic_long_inc_return_unchecked(&bdi_seq));
78258 if (!err)
78259 sb->s_bdi = &fsc->backing_dev_info;
78260 return err;
78261 diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c
78262 index 50b2684..aa33a91 100644
78263 --- a/fs/cifs/cifs_debug.c
78264 +++ b/fs/cifs/cifs_debug.c
78265 @@ -269,8 +269,8 @@ static ssize_t cifs_stats_proc_write(struct file *file,
78266
78267 if (strtobool(&c, &bv) == 0) {
78268 #ifdef CONFIG_CIFS_STATS2
78269 - atomic_set(&totBufAllocCount, 0);
78270 - atomic_set(&totSmBufAllocCount, 0);
78271 + atomic_set_unchecked(&totBufAllocCount, 0);
78272 + atomic_set_unchecked(&totSmBufAllocCount, 0);
78273 #endif /* CONFIG_CIFS_STATS2 */
78274 spin_lock(&cifs_tcp_ses_lock);
78275 list_for_each(tmp1, &cifs_tcp_ses_list) {
78276 @@ -283,7 +283,7 @@ static ssize_t cifs_stats_proc_write(struct file *file,
78277 tcon = list_entry(tmp3,
78278 struct cifs_tcon,
78279 tcon_list);
78280 - atomic_set(&tcon->num_smbs_sent, 0);
78281 + atomic_set_unchecked(&tcon->num_smbs_sent, 0);
78282 if (server->ops->clear_stats)
78283 server->ops->clear_stats(tcon);
78284 }
78285 @@ -315,8 +315,8 @@ static int cifs_stats_proc_show(struct seq_file *m, void *v)
78286 smBufAllocCount.counter, cifs_min_small);
78287 #ifdef CONFIG_CIFS_STATS2
78288 seq_printf(m, "Total Large %d Small %d Allocations\n",
78289 - atomic_read(&totBufAllocCount),
78290 - atomic_read(&totSmBufAllocCount));
78291 + atomic_read_unchecked(&totBufAllocCount),
78292 + atomic_read_unchecked(&totSmBufAllocCount));
78293 #endif /* CONFIG_CIFS_STATS2 */
78294
78295 seq_printf(m, "Operations (MIDs): %d\n", atomic_read(&midCount));
78296 @@ -345,7 +345,7 @@ static int cifs_stats_proc_show(struct seq_file *m, void *v)
78297 if (tcon->need_reconnect)
78298 seq_puts(m, "\tDISCONNECTED ");
78299 seq_printf(m, "\nSMBs: %d",
78300 - atomic_read(&tcon->num_smbs_sent));
78301 + atomic_read_unchecked(&tcon->num_smbs_sent));
78302 if (server->ops->print_stats)
78303 server->ops->print_stats(m, tcon);
78304 }
78305 diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
78306 index cbc0f4b..230e61a 100644
78307 --- a/fs/cifs/cifsfs.c
78308 +++ b/fs/cifs/cifsfs.c
78309 @@ -1077,7 +1077,7 @@ cifs_init_request_bufs(void)
78310 */
78311 cifs_req_cachep = kmem_cache_create("cifs_request",
78312 CIFSMaxBufSize + max_hdr_size, 0,
78313 - SLAB_HWCACHE_ALIGN, NULL);
78314 + SLAB_HWCACHE_ALIGN | SLAB_USERCOPY, NULL);
78315 if (cifs_req_cachep == NULL)
78316 return -ENOMEM;
78317
78318 @@ -1104,7 +1104,7 @@ cifs_init_request_bufs(void)
78319 efficient to alloc 1 per page off the slab compared to 17K (5page)
78320 alloc of large cifs buffers even when page debugging is on */
78321 cifs_sm_req_cachep = kmem_cache_create("cifs_small_rq",
78322 - MAX_CIFS_SMALL_BUFFER_SIZE, 0, SLAB_HWCACHE_ALIGN,
78323 + MAX_CIFS_SMALL_BUFFER_SIZE, 0, SLAB_HWCACHE_ALIGN | SLAB_USERCOPY,
78324 NULL);
78325 if (cifs_sm_req_cachep == NULL) {
78326 mempool_destroy(cifs_req_poolp);
78327 @@ -1189,8 +1189,8 @@ init_cifs(void)
78328 atomic_set(&bufAllocCount, 0);
78329 atomic_set(&smBufAllocCount, 0);
78330 #ifdef CONFIG_CIFS_STATS2
78331 - atomic_set(&totBufAllocCount, 0);
78332 - atomic_set(&totSmBufAllocCount, 0);
78333 + atomic_set_unchecked(&totBufAllocCount, 0);
78334 + atomic_set_unchecked(&totSmBufAllocCount, 0);
78335 #endif /* CONFIG_CIFS_STATS2 */
78336
78337 atomic_set(&midCount, 0);
78338 diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
78339 index 2b510c5..8962775 100644
78340 --- a/fs/cifs/cifsglob.h
78341 +++ b/fs/cifs/cifsglob.h
78342 @@ -835,35 +835,35 @@ struct cifs_tcon {
78343 __u16 Flags; /* optional support bits */
78344 enum statusEnum tidStatus;
78345 #ifdef CONFIG_CIFS_STATS
78346 - atomic_t num_smbs_sent;
78347 + atomic_unchecked_t num_smbs_sent;
78348 union {
78349 struct {
78350 - atomic_t num_writes;
78351 - atomic_t num_reads;
78352 - atomic_t num_flushes;
78353 - atomic_t num_oplock_brks;
78354 - atomic_t num_opens;
78355 - atomic_t num_closes;
78356 - atomic_t num_deletes;
78357 - atomic_t num_mkdirs;
78358 - atomic_t num_posixopens;
78359 - atomic_t num_posixmkdirs;
78360 - atomic_t num_rmdirs;
78361 - atomic_t num_renames;
78362 - atomic_t num_t2renames;
78363 - atomic_t num_ffirst;
78364 - atomic_t num_fnext;
78365 - atomic_t num_fclose;
78366 - atomic_t num_hardlinks;
78367 - atomic_t num_symlinks;
78368 - atomic_t num_locks;
78369 - atomic_t num_acl_get;
78370 - atomic_t num_acl_set;
78371 + atomic_unchecked_t num_writes;
78372 + atomic_unchecked_t num_reads;
78373 + atomic_unchecked_t num_flushes;
78374 + atomic_unchecked_t num_oplock_brks;
78375 + atomic_unchecked_t num_opens;
78376 + atomic_unchecked_t num_closes;
78377 + atomic_unchecked_t num_deletes;
78378 + atomic_unchecked_t num_mkdirs;
78379 + atomic_unchecked_t num_posixopens;
78380 + atomic_unchecked_t num_posixmkdirs;
78381 + atomic_unchecked_t num_rmdirs;
78382 + atomic_unchecked_t num_renames;
78383 + atomic_unchecked_t num_t2renames;
78384 + atomic_unchecked_t num_ffirst;
78385 + atomic_unchecked_t num_fnext;
78386 + atomic_unchecked_t num_fclose;
78387 + atomic_unchecked_t num_hardlinks;
78388 + atomic_unchecked_t num_symlinks;
78389 + atomic_unchecked_t num_locks;
78390 + atomic_unchecked_t num_acl_get;
78391 + atomic_unchecked_t num_acl_set;
78392 } cifs_stats;
78393 #ifdef CONFIG_CIFS_SMB2
78394 struct {
78395 - atomic_t smb2_com_sent[NUMBER_OF_SMB2_COMMANDS];
78396 - atomic_t smb2_com_failed[NUMBER_OF_SMB2_COMMANDS];
78397 + atomic_unchecked_t smb2_com_sent[NUMBER_OF_SMB2_COMMANDS];
78398 + atomic_unchecked_t smb2_com_failed[NUMBER_OF_SMB2_COMMANDS];
78399 } smb2_stats;
78400 #endif /* CONFIG_CIFS_SMB2 */
78401 } stats;
78402 @@ -1213,7 +1213,7 @@ convert_delimiter(char *path, char delim)
78403 }
78404
78405 #ifdef CONFIG_CIFS_STATS
78406 -#define cifs_stats_inc atomic_inc
78407 +#define cifs_stats_inc atomic_inc_unchecked
78408
78409 static inline void cifs_stats_bytes_written(struct cifs_tcon *tcon,
78410 unsigned int bytes)
78411 @@ -1580,8 +1580,8 @@ GLOBAL_EXTERN atomic_t tconInfoReconnectCount;
78412 /* Various Debug counters */
78413 GLOBAL_EXTERN atomic_t bufAllocCount; /* current number allocated */
78414 #ifdef CONFIG_CIFS_STATS2
78415 -GLOBAL_EXTERN atomic_t totBufAllocCount; /* total allocated over all time */
78416 -GLOBAL_EXTERN atomic_t totSmBufAllocCount;
78417 +GLOBAL_EXTERN atomic_unchecked_t totBufAllocCount; /* total allocated over all time */
78418 +GLOBAL_EXTERN atomic_unchecked_t totSmBufAllocCount;
78419 #endif
78420 GLOBAL_EXTERN atomic_t smBufAllocCount;
78421 GLOBAL_EXTERN atomic_t midCount;
78422 diff --git a/fs/cifs/file.c b/fs/cifs/file.c
78423 index 0068e82..5ee5c2c 100644
78424 --- a/fs/cifs/file.c
78425 +++ b/fs/cifs/file.c
78426 @@ -2054,10 +2054,14 @@ static int cifs_writepages(struct address_space *mapping,
78427 index = mapping->writeback_index; /* Start from prev offset */
78428 end = -1;
78429 } else {
78430 - index = wbc->range_start >> PAGE_CACHE_SHIFT;
78431 - end = wbc->range_end >> PAGE_CACHE_SHIFT;
78432 - if (wbc->range_start == 0 && wbc->range_end == LLONG_MAX)
78433 + if (wbc->range_start == 0 && wbc->range_end == LLONG_MAX) {
78434 range_whole = true;
78435 + index = 0;
78436 + end = ULONG_MAX;
78437 + } else {
78438 + index = wbc->range_start >> PAGE_CACHE_SHIFT;
78439 + end = wbc->range_end >> PAGE_CACHE_SHIFT;
78440 + }
78441 scanned = true;
78442 }
78443 server = cifs_sb_master_tcon(cifs_sb)->ses->server;
78444 @@ -2531,7 +2535,7 @@ cifs_write_from_iter(loff_t offset, size_t len, struct iov_iter *from,
78445 wdata->pid = pid;
78446 wdata->bytes = cur_len;
78447 wdata->pagesz = PAGE_SIZE;
78448 - wdata->tailsz = cur_len - ((nr_pages - 1) * PAGE_SIZE);
78449 + wdata->tailsz = cur_len - nr_pages * PAGE_SIZE + PAGE_SIZE;
78450 wdata->credits = credits;
78451
78452 if (!wdata->cfile->invalidHandle ||
78453 diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c
78454 index 8442b8b..ea6986f 100644
78455 --- a/fs/cifs/misc.c
78456 +++ b/fs/cifs/misc.c
78457 @@ -170,7 +170,7 @@ cifs_buf_get(void)
78458 memset(ret_buf, 0, buf_size + 3);
78459 atomic_inc(&bufAllocCount);
78460 #ifdef CONFIG_CIFS_STATS2
78461 - atomic_inc(&totBufAllocCount);
78462 + atomic_inc_unchecked(&totBufAllocCount);
78463 #endif /* CONFIG_CIFS_STATS2 */
78464 }
78465
78466 @@ -205,7 +205,7 @@ cifs_small_buf_get(void)
78467 /* memset(ret_buf, 0, sizeof(struct smb_hdr) + 27);*/
78468 atomic_inc(&smBufAllocCount);
78469 #ifdef CONFIG_CIFS_STATS2
78470 - atomic_inc(&totSmBufAllocCount);
78471 + atomic_inc_unchecked(&totSmBufAllocCount);
78472 #endif /* CONFIG_CIFS_STATS2 */
78473
78474 }
78475 diff --git a/fs/cifs/smb1ops.c b/fs/cifs/smb1ops.c
78476 index fc537c2..47d654c 100644
78477 --- a/fs/cifs/smb1ops.c
78478 +++ b/fs/cifs/smb1ops.c
78479 @@ -622,27 +622,27 @@ static void
78480 cifs_clear_stats(struct cifs_tcon *tcon)
78481 {
78482 #ifdef CONFIG_CIFS_STATS
78483 - atomic_set(&tcon->stats.cifs_stats.num_writes, 0);
78484 - atomic_set(&tcon->stats.cifs_stats.num_reads, 0);
78485 - atomic_set(&tcon->stats.cifs_stats.num_flushes, 0);
78486 - atomic_set(&tcon->stats.cifs_stats.num_oplock_brks, 0);
78487 - atomic_set(&tcon->stats.cifs_stats.num_opens, 0);
78488 - atomic_set(&tcon->stats.cifs_stats.num_posixopens, 0);
78489 - atomic_set(&tcon->stats.cifs_stats.num_posixmkdirs, 0);
78490 - atomic_set(&tcon->stats.cifs_stats.num_closes, 0);
78491 - atomic_set(&tcon->stats.cifs_stats.num_deletes, 0);
78492 - atomic_set(&tcon->stats.cifs_stats.num_mkdirs, 0);
78493 - atomic_set(&tcon->stats.cifs_stats.num_rmdirs, 0);
78494 - atomic_set(&tcon->stats.cifs_stats.num_renames, 0);
78495 - atomic_set(&tcon->stats.cifs_stats.num_t2renames, 0);
78496 - atomic_set(&tcon->stats.cifs_stats.num_ffirst, 0);
78497 - atomic_set(&tcon->stats.cifs_stats.num_fnext, 0);
78498 - atomic_set(&tcon->stats.cifs_stats.num_fclose, 0);
78499 - atomic_set(&tcon->stats.cifs_stats.num_hardlinks, 0);
78500 - atomic_set(&tcon->stats.cifs_stats.num_symlinks, 0);
78501 - atomic_set(&tcon->stats.cifs_stats.num_locks, 0);
78502 - atomic_set(&tcon->stats.cifs_stats.num_acl_get, 0);
78503 - atomic_set(&tcon->stats.cifs_stats.num_acl_set, 0);
78504 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_writes, 0);
78505 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_reads, 0);
78506 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_flushes, 0);
78507 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_oplock_brks, 0);
78508 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_opens, 0);
78509 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_posixopens, 0);
78510 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_posixmkdirs, 0);
78511 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_closes, 0);
78512 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_deletes, 0);
78513 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_mkdirs, 0);
78514 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_rmdirs, 0);
78515 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_renames, 0);
78516 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_t2renames, 0);
78517 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_ffirst, 0);
78518 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_fnext, 0);
78519 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_fclose, 0);
78520 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_hardlinks, 0);
78521 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_symlinks, 0);
78522 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_locks, 0);
78523 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_acl_get, 0);
78524 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_acl_set, 0);
78525 #endif
78526 }
78527
78528 @@ -651,36 +651,36 @@ cifs_print_stats(struct seq_file *m, struct cifs_tcon *tcon)
78529 {
78530 #ifdef CONFIG_CIFS_STATS
78531 seq_printf(m, " Oplocks breaks: %d",
78532 - atomic_read(&tcon->stats.cifs_stats.num_oplock_brks));
78533 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_oplock_brks));
78534 seq_printf(m, "\nReads: %d Bytes: %llu",
78535 - atomic_read(&tcon->stats.cifs_stats.num_reads),
78536 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_reads),
78537 (long long)(tcon->bytes_read));
78538 seq_printf(m, "\nWrites: %d Bytes: %llu",
78539 - atomic_read(&tcon->stats.cifs_stats.num_writes),
78540 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_writes),
78541 (long long)(tcon->bytes_written));
78542 seq_printf(m, "\nFlushes: %d",
78543 - atomic_read(&tcon->stats.cifs_stats.num_flushes));
78544 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_flushes));
78545 seq_printf(m, "\nLocks: %d HardLinks: %d Symlinks: %d",
78546 - atomic_read(&tcon->stats.cifs_stats.num_locks),
78547 - atomic_read(&tcon->stats.cifs_stats.num_hardlinks),
78548 - atomic_read(&tcon->stats.cifs_stats.num_symlinks));
78549 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_locks),
78550 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_hardlinks),
78551 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_symlinks));
78552 seq_printf(m, "\nOpens: %d Closes: %d Deletes: %d",
78553 - atomic_read(&tcon->stats.cifs_stats.num_opens),
78554 - atomic_read(&tcon->stats.cifs_stats.num_closes),
78555 - atomic_read(&tcon->stats.cifs_stats.num_deletes));
78556 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_opens),
78557 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_closes),
78558 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_deletes));
78559 seq_printf(m, "\nPosix Opens: %d Posix Mkdirs: %d",
78560 - atomic_read(&tcon->stats.cifs_stats.num_posixopens),
78561 - atomic_read(&tcon->stats.cifs_stats.num_posixmkdirs));
78562 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_posixopens),
78563 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_posixmkdirs));
78564 seq_printf(m, "\nMkdirs: %d Rmdirs: %d",
78565 - atomic_read(&tcon->stats.cifs_stats.num_mkdirs),
78566 - atomic_read(&tcon->stats.cifs_stats.num_rmdirs));
78567 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_mkdirs),
78568 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_rmdirs));
78569 seq_printf(m, "\nRenames: %d T2 Renames %d",
78570 - atomic_read(&tcon->stats.cifs_stats.num_renames),
78571 - atomic_read(&tcon->stats.cifs_stats.num_t2renames));
78572 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_renames),
78573 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_t2renames));
78574 seq_printf(m, "\nFindFirst: %d FNext %d FClose %d",
78575 - atomic_read(&tcon->stats.cifs_stats.num_ffirst),
78576 - atomic_read(&tcon->stats.cifs_stats.num_fnext),
78577 - atomic_read(&tcon->stats.cifs_stats.num_fclose));
78578 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_ffirst),
78579 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_fnext),
78580 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_fclose));
78581 #endif
78582 }
78583
78584 diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c
78585 index 53ccdde..3debfe6 100644
78586 --- a/fs/cifs/smb2ops.c
78587 +++ b/fs/cifs/smb2ops.c
78588 @@ -422,8 +422,8 @@ smb2_clear_stats(struct cifs_tcon *tcon)
78589 #ifdef CONFIG_CIFS_STATS
78590 int i;
78591 for (i = 0; i < NUMBER_OF_SMB2_COMMANDS; i++) {
78592 - atomic_set(&tcon->stats.smb2_stats.smb2_com_sent[i], 0);
78593 - atomic_set(&tcon->stats.smb2_stats.smb2_com_failed[i], 0);
78594 + atomic_set_unchecked(&tcon->stats.smb2_stats.smb2_com_sent[i], 0);
78595 + atomic_set_unchecked(&tcon->stats.smb2_stats.smb2_com_failed[i], 0);
78596 }
78597 #endif
78598 }
78599 @@ -463,65 +463,65 @@ static void
78600 smb2_print_stats(struct seq_file *m, struct cifs_tcon *tcon)
78601 {
78602 #ifdef CONFIG_CIFS_STATS
78603 - atomic_t *sent = tcon->stats.smb2_stats.smb2_com_sent;
78604 - atomic_t *failed = tcon->stats.smb2_stats.smb2_com_failed;
78605 + atomic_unchecked_t *sent = tcon->stats.smb2_stats.smb2_com_sent;
78606 + atomic_unchecked_t *failed = tcon->stats.smb2_stats.smb2_com_failed;
78607 seq_printf(m, "\nNegotiates: %d sent %d failed",
78608 - atomic_read(&sent[SMB2_NEGOTIATE_HE]),
78609 - atomic_read(&failed[SMB2_NEGOTIATE_HE]));
78610 + atomic_read_unchecked(&sent[SMB2_NEGOTIATE_HE]),
78611 + atomic_read_unchecked(&failed[SMB2_NEGOTIATE_HE]));
78612 seq_printf(m, "\nSessionSetups: %d sent %d failed",
78613 - atomic_read(&sent[SMB2_SESSION_SETUP_HE]),
78614 - atomic_read(&failed[SMB2_SESSION_SETUP_HE]));
78615 + atomic_read_unchecked(&sent[SMB2_SESSION_SETUP_HE]),
78616 + atomic_read_unchecked(&failed[SMB2_SESSION_SETUP_HE]));
78617 seq_printf(m, "\nLogoffs: %d sent %d failed",
78618 - atomic_read(&sent[SMB2_LOGOFF_HE]),
78619 - atomic_read(&failed[SMB2_LOGOFF_HE]));
78620 + atomic_read_unchecked(&sent[SMB2_LOGOFF_HE]),
78621 + atomic_read_unchecked(&failed[SMB2_LOGOFF_HE]));
78622 seq_printf(m, "\nTreeConnects: %d sent %d failed",
78623 - atomic_read(&sent[SMB2_TREE_CONNECT_HE]),
78624 - atomic_read(&failed[SMB2_TREE_CONNECT_HE]));
78625 + atomic_read_unchecked(&sent[SMB2_TREE_CONNECT_HE]),
78626 + atomic_read_unchecked(&failed[SMB2_TREE_CONNECT_HE]));
78627 seq_printf(m, "\nTreeDisconnects: %d sent %d failed",
78628 - atomic_read(&sent[SMB2_TREE_DISCONNECT_HE]),
78629 - atomic_read(&failed[SMB2_TREE_DISCONNECT_HE]));
78630 + atomic_read_unchecked(&sent[SMB2_TREE_DISCONNECT_HE]),
78631 + atomic_read_unchecked(&failed[SMB2_TREE_DISCONNECT_HE]));
78632 seq_printf(m, "\nCreates: %d sent %d failed",
78633 - atomic_read(&sent[SMB2_CREATE_HE]),
78634 - atomic_read(&failed[SMB2_CREATE_HE]));
78635 + atomic_read_unchecked(&sent[SMB2_CREATE_HE]),
78636 + atomic_read_unchecked(&failed[SMB2_CREATE_HE]));
78637 seq_printf(m, "\nCloses: %d sent %d failed",
78638 - atomic_read(&sent[SMB2_CLOSE_HE]),
78639 - atomic_read(&failed[SMB2_CLOSE_HE]));
78640 + atomic_read_unchecked(&sent[SMB2_CLOSE_HE]),
78641 + atomic_read_unchecked(&failed[SMB2_CLOSE_HE]));
78642 seq_printf(m, "\nFlushes: %d sent %d failed",
78643 - atomic_read(&sent[SMB2_FLUSH_HE]),
78644 - atomic_read(&failed[SMB2_FLUSH_HE]));
78645 + atomic_read_unchecked(&sent[SMB2_FLUSH_HE]),
78646 + atomic_read_unchecked(&failed[SMB2_FLUSH_HE]));
78647 seq_printf(m, "\nReads: %d sent %d failed",
78648 - atomic_read(&sent[SMB2_READ_HE]),
78649 - atomic_read(&failed[SMB2_READ_HE]));
78650 + atomic_read_unchecked(&sent[SMB2_READ_HE]),
78651 + atomic_read_unchecked(&failed[SMB2_READ_HE]));
78652 seq_printf(m, "\nWrites: %d sent %d failed",
78653 - atomic_read(&sent[SMB2_WRITE_HE]),
78654 - atomic_read(&failed[SMB2_WRITE_HE]));
78655 + atomic_read_unchecked(&sent[SMB2_WRITE_HE]),
78656 + atomic_read_unchecked(&failed[SMB2_WRITE_HE]));
78657 seq_printf(m, "\nLocks: %d sent %d failed",
78658 - atomic_read(&sent[SMB2_LOCK_HE]),
78659 - atomic_read(&failed[SMB2_LOCK_HE]));
78660 + atomic_read_unchecked(&sent[SMB2_LOCK_HE]),
78661 + atomic_read_unchecked(&failed[SMB2_LOCK_HE]));
78662 seq_printf(m, "\nIOCTLs: %d sent %d failed",
78663 - atomic_read(&sent[SMB2_IOCTL_HE]),
78664 - atomic_read(&failed[SMB2_IOCTL_HE]));
78665 + atomic_read_unchecked(&sent[SMB2_IOCTL_HE]),
78666 + atomic_read_unchecked(&failed[SMB2_IOCTL_HE]));
78667 seq_printf(m, "\nCancels: %d sent %d failed",
78668 - atomic_read(&sent[SMB2_CANCEL_HE]),
78669 - atomic_read(&failed[SMB2_CANCEL_HE]));
78670 + atomic_read_unchecked(&sent[SMB2_CANCEL_HE]),
78671 + atomic_read_unchecked(&failed[SMB2_CANCEL_HE]));
78672 seq_printf(m, "\nEchos: %d sent %d failed",
78673 - atomic_read(&sent[SMB2_ECHO_HE]),
78674 - atomic_read(&failed[SMB2_ECHO_HE]));
78675 + atomic_read_unchecked(&sent[SMB2_ECHO_HE]),
78676 + atomic_read_unchecked(&failed[SMB2_ECHO_HE]));
78677 seq_printf(m, "\nQueryDirectories: %d sent %d failed",
78678 - atomic_read(&sent[SMB2_QUERY_DIRECTORY_HE]),
78679 - atomic_read(&failed[SMB2_QUERY_DIRECTORY_HE]));
78680 + atomic_read_unchecked(&sent[SMB2_QUERY_DIRECTORY_HE]),
78681 + atomic_read_unchecked(&failed[SMB2_QUERY_DIRECTORY_HE]));
78682 seq_printf(m, "\nChangeNotifies: %d sent %d failed",
78683 - atomic_read(&sent[SMB2_CHANGE_NOTIFY_HE]),
78684 - atomic_read(&failed[SMB2_CHANGE_NOTIFY_HE]));
78685 + atomic_read_unchecked(&sent[SMB2_CHANGE_NOTIFY_HE]),
78686 + atomic_read_unchecked(&failed[SMB2_CHANGE_NOTIFY_HE]));
78687 seq_printf(m, "\nQueryInfos: %d sent %d failed",
78688 - atomic_read(&sent[SMB2_QUERY_INFO_HE]),
78689 - atomic_read(&failed[SMB2_QUERY_INFO_HE]));
78690 + atomic_read_unchecked(&sent[SMB2_QUERY_INFO_HE]),
78691 + atomic_read_unchecked(&failed[SMB2_QUERY_INFO_HE]));
78692 seq_printf(m, "\nSetInfos: %d sent %d failed",
78693 - atomic_read(&sent[SMB2_SET_INFO_HE]),
78694 - atomic_read(&failed[SMB2_SET_INFO_HE]));
78695 + atomic_read_unchecked(&sent[SMB2_SET_INFO_HE]),
78696 + atomic_read_unchecked(&failed[SMB2_SET_INFO_HE]));
78697 seq_printf(m, "\nOplockBreaks: %d sent %d failed",
78698 - atomic_read(&sent[SMB2_OPLOCK_BREAK_HE]),
78699 - atomic_read(&failed[SMB2_OPLOCK_BREAK_HE]));
78700 + atomic_read_unchecked(&sent[SMB2_OPLOCK_BREAK_HE]),
78701 + atomic_read_unchecked(&failed[SMB2_OPLOCK_BREAK_HE]));
78702 #endif
78703 }
78704
78705 diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c
78706 index 373b5cd..b231fe6 100644
78707 --- a/fs/cifs/smb2pdu.c
78708 +++ b/fs/cifs/smb2pdu.c
78709 @@ -2390,8 +2390,7 @@ SMB2_query_directory(const unsigned int xid, struct cifs_tcon *tcon,
78710 default:
78711 cifs_dbg(VFS, "info level %u isn't supported\n",
78712 srch_inf->info_level);
78713 - rc = -EINVAL;
78714 - goto qdir_exit;
78715 + return -EINVAL;
78716 }
78717
78718 req->FileIndex = cpu_to_le32(index);
78719 diff --git a/fs/coda/cache.c b/fs/coda/cache.c
78720 index 5bb630a..043dc70 100644
78721 --- a/fs/coda/cache.c
78722 +++ b/fs/coda/cache.c
78723 @@ -24,7 +24,7 @@
78724 #include "coda_linux.h"
78725 #include "coda_cache.h"
78726
78727 -static atomic_t permission_epoch = ATOMIC_INIT(0);
78728 +static atomic_unchecked_t permission_epoch = ATOMIC_INIT(0);
78729
78730 /* replace or extend an acl cache hit */
78731 void coda_cache_enter(struct inode *inode, int mask)
78732 @@ -32,7 +32,7 @@ void coda_cache_enter(struct inode *inode, int mask)
78733 struct coda_inode_info *cii = ITOC(inode);
78734
78735 spin_lock(&cii->c_lock);
78736 - cii->c_cached_epoch = atomic_read(&permission_epoch);
78737 + cii->c_cached_epoch = atomic_read_unchecked(&permission_epoch);
78738 if (!uid_eq(cii->c_uid, current_fsuid())) {
78739 cii->c_uid = current_fsuid();
78740 cii->c_cached_perm = mask;
78741 @@ -46,14 +46,14 @@ void coda_cache_clear_inode(struct inode *inode)
78742 {
78743 struct coda_inode_info *cii = ITOC(inode);
78744 spin_lock(&cii->c_lock);
78745 - cii->c_cached_epoch = atomic_read(&permission_epoch) - 1;
78746 + cii->c_cached_epoch = atomic_read_unchecked(&permission_epoch) - 1;
78747 spin_unlock(&cii->c_lock);
78748 }
78749
78750 /* remove all acl caches */
78751 void coda_cache_clear_all(struct super_block *sb)
78752 {
78753 - atomic_inc(&permission_epoch);
78754 + atomic_inc_unchecked(&permission_epoch);
78755 }
78756
78757
78758 @@ -66,7 +66,7 @@ int coda_cache_check(struct inode *inode, int mask)
78759 spin_lock(&cii->c_lock);
78760 hit = (mask & cii->c_cached_perm) == mask &&
78761 uid_eq(cii->c_uid, current_fsuid()) &&
78762 - cii->c_cached_epoch == atomic_read(&permission_epoch);
78763 + cii->c_cached_epoch == atomic_read_unchecked(&permission_epoch);
78764 spin_unlock(&cii->c_lock);
78765
78766 return hit;
78767 diff --git a/fs/compat.c b/fs/compat.c
78768 index 6fd272d..39582b6 100644
78769 --- a/fs/compat.c
78770 +++ b/fs/compat.c
78771 @@ -54,7 +54,7 @@
78772 #include <asm/ioctls.h>
78773 #include "internal.h"
78774
78775 -int compat_log = 1;
78776 +int compat_log = 0;
78777
78778 int compat_printk(const char *fmt, ...)
78779 {
78780 @@ -512,7 +512,7 @@ COMPAT_SYSCALL_DEFINE2(io_setup, unsigned, nr_reqs, u32 __user *, ctx32p)
78781
78782 set_fs(KERNEL_DS);
78783 /* The __user pointer cast is valid because of the set_fs() */
78784 - ret = sys_io_setup(nr_reqs, (aio_context_t __user *) &ctx64);
78785 + ret = sys_io_setup(nr_reqs, (aio_context_t __force_user *) &ctx64);
78786 set_fs(oldfs);
78787 /* truncating is ok because it's a user address */
78788 if (!ret)
78789 @@ -562,7 +562,7 @@ ssize_t compat_rw_copy_check_uvector(int type,
78790 goto out;
78791
78792 ret = -EINVAL;
78793 - if (nr_segs > UIO_MAXIOV || nr_segs < 0)
78794 + if (nr_segs > UIO_MAXIOV)
78795 goto out;
78796 if (nr_segs > fast_segs) {
78797 ret = -ENOMEM;
78798 @@ -844,6 +844,7 @@ struct compat_old_linux_dirent {
78799 struct compat_readdir_callback {
78800 struct dir_context ctx;
78801 struct compat_old_linux_dirent __user *dirent;
78802 + struct file * file;
78803 int result;
78804 };
78805
78806 @@ -863,6 +864,10 @@ static int compat_fillonedir(struct dir_context *ctx, const char *name,
78807 buf->result = -EOVERFLOW;
78808 return -EOVERFLOW;
78809 }
78810 +
78811 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
78812 + return 0;
78813 +
78814 buf->result++;
78815 dirent = buf->dirent;
78816 if (!access_ok(VERIFY_WRITE, dirent,
78817 @@ -894,6 +899,7 @@ COMPAT_SYSCALL_DEFINE3(old_readdir, unsigned int, fd,
78818 if (!f.file)
78819 return -EBADF;
78820
78821 + buf.file = f.file;
78822 error = iterate_dir(f.file, &buf.ctx);
78823 if (buf.result)
78824 error = buf.result;
78825 @@ -913,6 +919,7 @@ struct compat_getdents_callback {
78826 struct dir_context ctx;
78827 struct compat_linux_dirent __user *current_dir;
78828 struct compat_linux_dirent __user *previous;
78829 + struct file * file;
78830 int count;
78831 int error;
78832 };
78833 @@ -935,6 +942,10 @@ static int compat_filldir(struct dir_context *ctx, const char *name, int namlen,
78834 buf->error = -EOVERFLOW;
78835 return -EOVERFLOW;
78836 }
78837 +
78838 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
78839 + return 0;
78840 +
78841 dirent = buf->previous;
78842 if (dirent) {
78843 if (__put_user(offset, &dirent->d_off))
78844 @@ -980,6 +991,7 @@ COMPAT_SYSCALL_DEFINE3(getdents, unsigned int, fd,
78845 if (!f.file)
78846 return -EBADF;
78847
78848 + buf.file = f.file;
78849 error = iterate_dir(f.file, &buf.ctx);
78850 if (error >= 0)
78851 error = buf.error;
78852 @@ -1000,6 +1012,7 @@ struct compat_getdents_callback64 {
78853 struct dir_context ctx;
78854 struct linux_dirent64 __user *current_dir;
78855 struct linux_dirent64 __user *previous;
78856 + struct file * file;
78857 int count;
78858 int error;
78859 };
78860 @@ -1018,6 +1031,10 @@ static int compat_filldir64(struct dir_context *ctx, const char *name,
78861 buf->error = -EINVAL; /* only used if we fail.. */
78862 if (reclen > buf->count)
78863 return -EINVAL;
78864 +
78865 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
78866 + return 0;
78867 +
78868 dirent = buf->previous;
78869
78870 if (dirent) {
78871 @@ -1067,13 +1084,13 @@ COMPAT_SYSCALL_DEFINE3(getdents64, unsigned int, fd,
78872 if (!f.file)
78873 return -EBADF;
78874
78875 + buf.file = f.file;
78876 error = iterate_dir(f.file, &buf.ctx);
78877 if (error >= 0)
78878 error = buf.error;
78879 lastdirent = buf.previous;
78880 if (lastdirent) {
78881 - typeof(lastdirent->d_off) d_off = buf.ctx.pos;
78882 - if (__put_user_unaligned(d_off, &lastdirent->d_off))
78883 + if (__put_user_unaligned(buf.ctx.pos, &lastdirent->d_off))
78884 error = -EFAULT;
78885 else
78886 error = count - buf.count;
78887 @@ -1328,7 +1345,7 @@ COMPAT_SYSCALL_DEFINE5(select, int, n, compat_ulong_t __user *, inp,
78888 }
78889
78890 struct compat_sel_arg_struct {
78891 - compat_ulong_t n;
78892 + compat_long_t n;
78893 compat_uptr_t inp;
78894 compat_uptr_t outp;
78895 compat_uptr_t exp;
78896 diff --git a/fs/compat_binfmt_elf.c b/fs/compat_binfmt_elf.c
78897 index 4d24d17..4f8c09e 100644
78898 --- a/fs/compat_binfmt_elf.c
78899 +++ b/fs/compat_binfmt_elf.c
78900 @@ -30,11 +30,13 @@
78901 #undef elf_phdr
78902 #undef elf_shdr
78903 #undef elf_note
78904 +#undef elf_dyn
78905 #undef elf_addr_t
78906 #define elfhdr elf32_hdr
78907 #define elf_phdr elf32_phdr
78908 #define elf_shdr elf32_shdr
78909 #define elf_note elf32_note
78910 +#define elf_dyn Elf32_Dyn
78911 #define elf_addr_t Elf32_Addr
78912
78913 /*
78914 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
78915 index dcf2653..3b9fb0c 100644
78916 --- a/fs/compat_ioctl.c
78917 +++ b/fs/compat_ioctl.c
78918 @@ -58,6 +58,8 @@
78919 #include <linux/atalk.h>
78920 #include <linux/gfp.h>
78921
78922 +#include "internal.h"
78923 +
78924 #include <net/bluetooth/bluetooth.h>
78925 #include <net/bluetooth/hci_sock.h>
78926 #include <net/bluetooth/rfcomm.h>
78927 @@ -115,19 +117,38 @@
78928 #include <asm/fbio.h>
78929 #endif
78930
78931 -static int w_long(unsigned int fd, unsigned int cmd,
78932 - compat_ulong_t __user *argp)
78933 +#define convert_in_user(srcptr, dstptr) \
78934 +({ \
78935 + typeof(*srcptr) val; \
78936 + \
78937 + get_user(val, srcptr) || put_user(val, dstptr); \
78938 +})
78939 +
78940 +static int do_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
78941 {
78942 - mm_segment_t old_fs = get_fs();
78943 int err;
78944 - unsigned long val;
78945
78946 - set_fs (KERNEL_DS);
78947 - err = sys_ioctl(fd, cmd, (unsigned long)&val);
78948 - set_fs (old_fs);
78949 - if (!err && put_user(val, argp))
78950 + err = security_file_ioctl(file, cmd, arg);
78951 + if (err)
78952 + return err;
78953 +
78954 + return vfs_ioctl(file, cmd, arg);
78955 +}
78956 +
78957 +static int w_long(struct file *file,
78958 + unsigned int cmd, compat_ulong_t __user *argp)
78959 +{
78960 + int err;
78961 + unsigned long __user *valp = compat_alloc_user_space(sizeof(*valp));
78962 +
78963 + if (valp == NULL)
78964 + return -EFAULT;
78965 + err = do_ioctl(file, cmd, (unsigned long)valp);
78966 + if (err)
78967 + return err;
78968 + if (convert_in_user(valp, argp))
78969 return -EFAULT;
78970 - return err;
78971 + return 0;
78972 }
78973
78974 struct compat_video_event {
78975 @@ -139,23 +160,23 @@ struct compat_video_event {
78976 } u;
78977 };
78978
78979 -static int do_video_get_event(unsigned int fd, unsigned int cmd,
78980 - struct compat_video_event __user *up)
78981 +static int do_video_get_event(struct file *file,
78982 + unsigned int cmd, struct compat_video_event __user *up)
78983 {
78984 - struct video_event kevent;
78985 - mm_segment_t old_fs = get_fs();
78986 + struct video_event __user *kevent =
78987 + compat_alloc_user_space(sizeof(*kevent));
78988 int err;
78989
78990 - set_fs(KERNEL_DS);
78991 - err = sys_ioctl(fd, cmd, (unsigned long) &kevent);
78992 - set_fs(old_fs);
78993 + if (kevent == NULL)
78994 + return -EFAULT;
78995
78996 + err = do_ioctl(file, cmd, (unsigned long)kevent);
78997 if (!err) {
78998 - err = put_user(kevent.type, &up->type);
78999 - err |= put_user(kevent.timestamp, &up->timestamp);
79000 - err |= put_user(kevent.u.size.w, &up->u.size.w);
79001 - err |= put_user(kevent.u.size.h, &up->u.size.h);
79002 - err |= put_user(kevent.u.size.aspect_ratio,
79003 + err = convert_in_user(&kevent->type, &up->type);
79004 + err |= convert_in_user(&kevent->timestamp, &up->timestamp);
79005 + err |= convert_in_user(&kevent->u.size.w, &up->u.size.w);
79006 + err |= convert_in_user(&kevent->u.size.h, &up->u.size.h);
79007 + err |= convert_in_user(&kevent->u.size.aspect_ratio,
79008 &up->u.size.aspect_ratio);
79009 if (err)
79010 err = -EFAULT;
79011 @@ -169,8 +190,8 @@ struct compat_video_still_picture {
79012 int32_t size;
79013 };
79014
79015 -static int do_video_stillpicture(unsigned int fd, unsigned int cmd,
79016 - struct compat_video_still_picture __user *up)
79017 +static int do_video_stillpicture(struct file *file,
79018 + unsigned int cmd, struct compat_video_still_picture __user *up)
79019 {
79020 struct video_still_picture __user *up_native;
79021 compat_uptr_t fp;
79022 @@ -190,7 +211,7 @@ static int do_video_stillpicture(unsigned int fd, unsigned int cmd,
79023 if (err)
79024 return -EFAULT;
79025
79026 - err = sys_ioctl(fd, cmd, (unsigned long) up_native);
79027 + err = do_ioctl(file, cmd, (unsigned long) up_native);
79028
79029 return err;
79030 }
79031 @@ -200,8 +221,8 @@ struct compat_video_spu_palette {
79032 compat_uptr_t palette;
79033 };
79034
79035 -static int do_video_set_spu_palette(unsigned int fd, unsigned int cmd,
79036 - struct compat_video_spu_palette __user *up)
79037 +static int do_video_set_spu_palette(struct file *file,
79038 + unsigned int cmd, struct compat_video_spu_palette __user *up)
79039 {
79040 struct video_spu_palette __user *up_native;
79041 compat_uptr_t palp;
79042 @@ -218,7 +239,7 @@ static int do_video_set_spu_palette(unsigned int fd, unsigned int cmd,
79043 if (err)
79044 return -EFAULT;
79045
79046 - err = sys_ioctl(fd, cmd, (unsigned long) up_native);
79047 + err = do_ioctl(file, cmd, (unsigned long) up_native);
79048
79049 return err;
79050 }
79051 @@ -276,7 +297,7 @@ static int sg_build_iovec(sg_io_hdr_t __user *sgio, void __user *dxferp, u16 iov
79052 return 0;
79053 }
79054
79055 -static int sg_ioctl_trans(unsigned int fd, unsigned int cmd,
79056 +static int sg_ioctl_trans(struct file *file, unsigned int cmd,
79057 sg_io_hdr32_t __user *sgio32)
79058 {
79059 sg_io_hdr_t __user *sgio;
79060 @@ -289,7 +310,7 @@ static int sg_ioctl_trans(unsigned int fd, unsigned int cmd,
79061 if (get_user(interface_id, &sgio32->interface_id))
79062 return -EFAULT;
79063 if (interface_id != 'S')
79064 - return sys_ioctl(fd, cmd, (unsigned long)sgio32);
79065 + return do_ioctl(file, cmd, (unsigned long)sgio32);
79066
79067 if (get_user(iovec_count, &sgio32->iovec_count))
79068 return -EFAULT;
79069 @@ -349,7 +370,7 @@ static int sg_ioctl_trans(unsigned int fd, unsigned int cmd,
79070 if (put_user(compat_ptr(data), &sgio->usr_ptr))
79071 return -EFAULT;
79072
79073 - err = sys_ioctl(fd, cmd, (unsigned long) sgio);
79074 + err = do_ioctl(file, cmd, (unsigned long) sgio);
79075
79076 if (err >= 0) {
79077 void __user *datap;
79078 @@ -380,13 +401,13 @@ struct compat_sg_req_info { /* used by SG_GET_REQUEST_TABLE ioctl() */
79079 int unused;
79080 };
79081
79082 -static int sg_grt_trans(unsigned int fd, unsigned int cmd, struct
79083 - compat_sg_req_info __user *o)
79084 +static int sg_grt_trans(struct file *file,
79085 + unsigned int cmd, struct compat_sg_req_info __user *o)
79086 {
79087 int err, i;
79088 sg_req_info_t __user *r;
79089 r = compat_alloc_user_space(sizeof(sg_req_info_t)*SG_MAX_QUEUE);
79090 - err = sys_ioctl(fd,cmd,(unsigned long)r);
79091 + err = do_ioctl(file, cmd, (unsigned long)r);
79092 if (err < 0)
79093 return err;
79094 for (i = 0; i < SG_MAX_QUEUE; i++) {
79095 @@ -412,8 +433,8 @@ struct sock_fprog32 {
79096 #define PPPIOCSPASS32 _IOW('t', 71, struct sock_fprog32)
79097 #define PPPIOCSACTIVE32 _IOW('t', 70, struct sock_fprog32)
79098
79099 -static int ppp_sock_fprog_ioctl_trans(unsigned int fd, unsigned int cmd,
79100 - struct sock_fprog32 __user *u_fprog32)
79101 +static int ppp_sock_fprog_ioctl_trans(struct file *file,
79102 + unsigned int cmd, struct sock_fprog32 __user *u_fprog32)
79103 {
79104 struct sock_fprog __user *u_fprog64 = compat_alloc_user_space(sizeof(struct sock_fprog));
79105 void __user *fptr64;
79106 @@ -435,7 +456,7 @@ static int ppp_sock_fprog_ioctl_trans(unsigned int fd, unsigned int cmd,
79107 else
79108 cmd = PPPIOCSACTIVE;
79109
79110 - return sys_ioctl(fd, cmd, (unsigned long) u_fprog64);
79111 + return do_ioctl(file, cmd, (unsigned long) u_fprog64);
79112 }
79113
79114 struct ppp_option_data32 {
79115 @@ -451,7 +472,7 @@ struct ppp_idle32 {
79116 };
79117 #define PPPIOCGIDLE32 _IOR('t', 63, struct ppp_idle32)
79118
79119 -static int ppp_gidle(unsigned int fd, unsigned int cmd,
79120 +static int ppp_gidle(struct file *file, unsigned int cmd,
79121 struct ppp_idle32 __user *idle32)
79122 {
79123 struct ppp_idle __user *idle;
79124 @@ -460,7 +481,7 @@ static int ppp_gidle(unsigned int fd, unsigned int cmd,
79125
79126 idle = compat_alloc_user_space(sizeof(*idle));
79127
79128 - err = sys_ioctl(fd, PPPIOCGIDLE, (unsigned long) idle);
79129 + err = do_ioctl(file, PPPIOCGIDLE, (unsigned long) idle);
79130
79131 if (!err) {
79132 if (get_user(xmit, &idle->xmit_idle) ||
79133 @@ -472,7 +493,7 @@ static int ppp_gidle(unsigned int fd, unsigned int cmd,
79134 return err;
79135 }
79136
79137 -static int ppp_scompress(unsigned int fd, unsigned int cmd,
79138 +static int ppp_scompress(struct file *file, unsigned int cmd,
79139 struct ppp_option_data32 __user *odata32)
79140 {
79141 struct ppp_option_data __user *odata;
79142 @@ -492,7 +513,7 @@ static int ppp_scompress(unsigned int fd, unsigned int cmd,
79143 sizeof(__u32) + sizeof(int)))
79144 return -EFAULT;
79145
79146 - return sys_ioctl(fd, PPPIOCSCOMPRESS, (unsigned long) odata);
79147 + return do_ioctl(file, PPPIOCSCOMPRESS, (unsigned long) odata);
79148 }
79149
79150 #ifdef CONFIG_BLOCK
79151 @@ -512,12 +533,13 @@ struct mtpos32 {
79152 };
79153 #define MTIOCPOS32 _IOR('m', 3, struct mtpos32)
79154
79155 -static int mt_ioctl_trans(unsigned int fd, unsigned int cmd, void __user *argp)
79156 +static int mt_ioctl_trans(struct file *file,
79157 + unsigned int cmd, void __user *argp)
79158 {
79159 - mm_segment_t old_fs = get_fs();
79160 - struct mtget get;
79161 + /* NULL initialization to make gcc shut up */
79162 + struct mtget __user *get = NULL;
79163 struct mtget32 __user *umget32;
79164 - struct mtpos pos;
79165 + struct mtpos __user *pos = NULL;
79166 struct mtpos32 __user *upos32;
79167 unsigned long kcmd;
79168 void *karg;
79169 @@ -526,32 +548,34 @@ static int mt_ioctl_trans(unsigned int fd, unsigned int cmd, void __user *argp)
79170 switch(cmd) {
79171 case MTIOCPOS32:
79172 kcmd = MTIOCPOS;
79173 - karg = &pos;
79174 + pos = compat_alloc_user_space(sizeof(*pos));
79175 + karg = pos;
79176 break;
79177 default: /* MTIOCGET32 */
79178 kcmd = MTIOCGET;
79179 - karg = &get;
79180 + get = compat_alloc_user_space(sizeof(*get));
79181 + karg = get;
79182 break;
79183 }
79184 - set_fs (KERNEL_DS);
79185 - err = sys_ioctl (fd, kcmd, (unsigned long)karg);
79186 - set_fs (old_fs);
79187 + if (karg == NULL)
79188 + return -EFAULT;
79189 + err = do_ioctl(file, kcmd, (unsigned long)karg);
79190 if (err)
79191 return err;
79192 switch (cmd) {
79193 case MTIOCPOS32:
79194 upos32 = argp;
79195 - err = __put_user(pos.mt_blkno, &upos32->mt_blkno);
79196 + err = convert_in_user(&pos->mt_blkno, &upos32->mt_blkno);
79197 break;
79198 case MTIOCGET32:
79199 umget32 = argp;
79200 - err = __put_user(get.mt_type, &umget32->mt_type);
79201 - err |= __put_user(get.mt_resid, &umget32->mt_resid);
79202 - err |= __put_user(get.mt_dsreg, &umget32->mt_dsreg);
79203 - err |= __put_user(get.mt_gstat, &umget32->mt_gstat);
79204 - err |= __put_user(get.mt_erreg, &umget32->mt_erreg);
79205 - err |= __put_user(get.mt_fileno, &umget32->mt_fileno);
79206 - err |= __put_user(get.mt_blkno, &umget32->mt_blkno);
79207 + err = convert_in_user(&get->mt_type, &umget32->mt_type);
79208 + err |= convert_in_user(&get->mt_resid, &umget32->mt_resid);
79209 + err |= convert_in_user(&get->mt_dsreg, &umget32->mt_dsreg);
79210 + err |= convert_in_user(&get->mt_gstat, &umget32->mt_gstat);
79211 + err |= convert_in_user(&get->mt_erreg, &umget32->mt_erreg);
79212 + err |= convert_in_user(&get->mt_fileno, &umget32->mt_fileno);
79213 + err |= convert_in_user(&get->mt_blkno, &umget32->mt_blkno);
79214 break;
79215 }
79216 return err ? -EFAULT: 0;
79217 @@ -605,42 +629,41 @@ struct serial_struct32 {
79218 compat_int_t reserved[1];
79219 };
79220
79221 -static int serial_struct_ioctl(unsigned fd, unsigned cmd,
79222 - struct serial_struct32 __user *ss32)
79223 +static int serial_struct_ioctl(struct file *file,
79224 + unsigned cmd, struct serial_struct32 __user *ss32)
79225 {
79226 typedef struct serial_struct32 SS32;
79227 int err;
79228 - struct serial_struct ss;
79229 - mm_segment_t oldseg = get_fs();
79230 + struct serial_struct __user *ss = compat_alloc_user_space(sizeof(*ss));
79231 __u32 udata;
79232 unsigned int base;
79233 + unsigned char *iomem_base;
79234
79235 + if (ss == NULL)
79236 + return -EFAULT;
79237 if (cmd == TIOCSSERIAL) {
79238 - if (!access_ok(VERIFY_READ, ss32, sizeof(SS32)))
79239 - return -EFAULT;
79240 - if (__copy_from_user(&ss, ss32, offsetof(SS32, iomem_base)))
79241 + if (copy_in_user(ss, ss32, offsetof(SS32, iomem_base)) ||
79242 + get_user(udata, &ss32->iomem_base))
79243 return -EFAULT;
79244 - if (__get_user(udata, &ss32->iomem_base))
79245 + iomem_base = compat_ptr(udata);
79246 + if (put_user(iomem_base, &ss->iomem_base) ||
79247 + convert_in_user(&ss32->iomem_reg_shift,
79248 + &ss->iomem_reg_shift) ||
79249 + convert_in_user(&ss32->port_high, &ss->port_high) ||
79250 + put_user(0UL, &ss->iomap_base))
79251 return -EFAULT;
79252 - ss.iomem_base = compat_ptr(udata);
79253 - if (__get_user(ss.iomem_reg_shift, &ss32->iomem_reg_shift) ||
79254 - __get_user(ss.port_high, &ss32->port_high))
79255 - return -EFAULT;
79256 - ss.iomap_base = 0UL;
79257 }
79258 - set_fs(KERNEL_DS);
79259 - err = sys_ioctl(fd,cmd,(unsigned long)(&ss));
79260 - set_fs(oldseg);
79261 + err = do_ioctl(file, cmd, (unsigned long)ss);
79262 if (cmd == TIOCGSERIAL && err >= 0) {
79263 - if (!access_ok(VERIFY_WRITE, ss32, sizeof(SS32)))
79264 - return -EFAULT;
79265 - if (__copy_to_user(ss32,&ss,offsetof(SS32,iomem_base)))
79266 + if (copy_in_user(ss32, ss, offsetof(SS32, iomem_base)) ||
79267 + get_user(iomem_base, &ss->iomem_base))
79268 return -EFAULT;
79269 - base = (unsigned long)ss.iomem_base >> 32 ?
79270 - 0xffffffff : (unsigned)(unsigned long)ss.iomem_base;
79271 - if (__put_user(base, &ss32->iomem_base) ||
79272 - __put_user(ss.iomem_reg_shift, &ss32->iomem_reg_shift) ||
79273 - __put_user(ss.port_high, &ss32->port_high))
79274 + base = (unsigned long)iomem_base >> 32 ?
79275 + 0xffffffff : (unsigned)(unsigned long)iomem_base;
79276 + if (put_user(base, &ss32->iomem_base) ||
79277 + convert_in_user(&ss->iomem_reg_shift,
79278 + &ss32->iomem_reg_shift) ||
79279 + convert_in_user(&ss->port_high, &ss32->port_high))
79280 return -EFAULT;
79281 }
79282 return err;
79283 @@ -674,8 +697,8 @@ struct i2c_rdwr_aligned {
79284 struct i2c_msg msgs[0];
79285 };
79286
79287 -static int do_i2c_rdwr_ioctl(unsigned int fd, unsigned int cmd,
79288 - struct i2c_rdwr_ioctl_data32 __user *udata)
79289 +static int do_i2c_rdwr_ioctl(struct file *file,
79290 + unsigned int cmd, struct i2c_rdwr_ioctl_data32 __user *udata)
79291 {
79292 struct i2c_rdwr_aligned __user *tdata;
79293 struct i2c_msg __user *tmsgs;
79294 @@ -704,15 +727,15 @@ static int do_i2c_rdwr_ioctl(unsigned int fd, unsigned int cmd,
79295 for (i = 0; i < nmsgs; i++) {
79296 if (copy_in_user(&tmsgs[i].addr, &umsgs[i].addr, 3*sizeof(u16)))
79297 return -EFAULT;
79298 - if (get_user(datap, &umsgs[i].buf) ||
79299 - put_user(compat_ptr(datap), &tmsgs[i].buf))
79300 + if (get_user(datap, (compat_caddr_t __user *)&umsgs[i].buf) ||
79301 + put_user(compat_ptr(datap), (u8 __user * __user *)&tmsgs[i].buf))
79302 return -EFAULT;
79303 }
79304 - return sys_ioctl(fd, cmd, (unsigned long)tdata);
79305 + return do_ioctl(file, cmd, (unsigned long)tdata);
79306 }
79307
79308 -static int do_i2c_smbus_ioctl(unsigned int fd, unsigned int cmd,
79309 - struct i2c_smbus_ioctl_data32 __user *udata)
79310 +static int do_i2c_smbus_ioctl(struct file *file,
79311 + unsigned int cmd, struct i2c_smbus_ioctl_data32 __user *udata)
79312 {
79313 struct i2c_smbus_ioctl_data __user *tdata;
79314 compat_caddr_t datap;
79315 @@ -734,7 +757,7 @@ static int do_i2c_smbus_ioctl(unsigned int fd, unsigned int cmd,
79316 __put_user(compat_ptr(datap), &tdata->data))
79317 return -EFAULT;
79318
79319 - return sys_ioctl(fd, cmd, (unsigned long)tdata);
79320 + return do_ioctl(file, cmd, (unsigned long)tdata);
79321 }
79322
79323 #define RTC_IRQP_READ32 _IOR('p', 0x0b, compat_ulong_t)
79324 @@ -742,29 +765,27 @@ static int do_i2c_smbus_ioctl(unsigned int fd, unsigned int cmd,
79325 #define RTC_EPOCH_READ32 _IOR('p', 0x0d, compat_ulong_t)
79326 #define RTC_EPOCH_SET32 _IOW('p', 0x0e, compat_ulong_t)
79327
79328 -static int rtc_ioctl(unsigned fd, unsigned cmd, void __user *argp)
79329 +static int rtc_ioctl(struct file *file,
79330 + unsigned cmd, void __user *argp)
79331 {
79332 - mm_segment_t oldfs = get_fs();
79333 - compat_ulong_t val32;
79334 - unsigned long kval;
79335 + unsigned long __user *valp = compat_alloc_user_space(sizeof(*valp));
79336 int ret;
79337
79338 + if (valp == NULL)
79339 + return -EFAULT;
79340 switch (cmd) {
79341 case RTC_IRQP_READ32:
79342 case RTC_EPOCH_READ32:
79343 - set_fs(KERNEL_DS);
79344 - ret = sys_ioctl(fd, (cmd == RTC_IRQP_READ32) ?
79345 + ret = do_ioctl(file, (cmd == RTC_IRQP_READ32) ?
79346 RTC_IRQP_READ : RTC_EPOCH_READ,
79347 - (unsigned long)&kval);
79348 - set_fs(oldfs);
79349 + (unsigned long)valp);
79350 if (ret)
79351 return ret;
79352 - val32 = kval;
79353 - return put_user(val32, (unsigned int __user *)argp);
79354 + return convert_in_user(valp, (unsigned int __user *)argp);
79355 case RTC_IRQP_SET32:
79356 - return sys_ioctl(fd, RTC_IRQP_SET, (unsigned long)argp);
79357 + return do_ioctl(file, RTC_IRQP_SET, (unsigned long)argp);
79358 case RTC_EPOCH_SET32:
79359 - return sys_ioctl(fd, RTC_EPOCH_SET, (unsigned long)argp);
79360 + return do_ioctl(file, RTC_EPOCH_SET, (unsigned long)argp);
79361 }
79362
79363 return -ENOIOCTLCMD;
79364 @@ -798,7 +819,7 @@ static int compat_ioctl_preallocate(struct file *file,
79365 copy_in_user(&p->l_len, &p32->l_len, sizeof(s64)) ||
79366 copy_in_user(&p->l_sysid, &p32->l_sysid, sizeof(s32)) ||
79367 copy_in_user(&p->l_pid, &p32->l_pid, sizeof(u32)) ||
79368 - copy_in_user(&p->l_pad, &p32->l_pad, 4*sizeof(u32)))
79369 + copy_in_user(p->l_pad, p32->l_pad, 4*sizeof(u32)))
79370 return -EFAULT;
79371
79372 return ioctl_preallocate(file, p);
79373 @@ -1436,53 +1457,53 @@ IGNORE_IOCTL(FBIOGCURSOR32)
79374 * a compat_ioctl operation in the place that handleѕ the
79375 * ioctl for the native case.
79376 */
79377 -static long do_ioctl_trans(int fd, unsigned int cmd,
79378 +static long do_ioctl_trans(unsigned int cmd,
79379 unsigned long arg, struct file *file)
79380 {
79381 void __user *argp = compat_ptr(arg);
79382
79383 switch (cmd) {
79384 case PPPIOCGIDLE32:
79385 - return ppp_gidle(fd, cmd, argp);
79386 + return ppp_gidle(file, cmd, argp);
79387 case PPPIOCSCOMPRESS32:
79388 - return ppp_scompress(fd, cmd, argp);
79389 + return ppp_scompress(file, cmd, argp);
79390 case PPPIOCSPASS32:
79391 case PPPIOCSACTIVE32:
79392 - return ppp_sock_fprog_ioctl_trans(fd, cmd, argp);
79393 + return ppp_sock_fprog_ioctl_trans(file, cmd, argp);
79394 #ifdef CONFIG_BLOCK
79395 case SG_IO:
79396 - return sg_ioctl_trans(fd, cmd, argp);
79397 + return sg_ioctl_trans(file, cmd, argp);
79398 case SG_GET_REQUEST_TABLE:
79399 - return sg_grt_trans(fd, cmd, argp);
79400 + return sg_grt_trans(file, cmd, argp);
79401 case MTIOCGET32:
79402 case MTIOCPOS32:
79403 - return mt_ioctl_trans(fd, cmd, argp);
79404 + return mt_ioctl_trans(file, cmd, argp);
79405 #endif
79406 /* Serial */
79407 case TIOCGSERIAL:
79408 case TIOCSSERIAL:
79409 - return serial_struct_ioctl(fd, cmd, argp);
79410 + return serial_struct_ioctl(file, cmd, argp);
79411 /* i2c */
79412 case I2C_FUNCS:
79413 - return w_long(fd, cmd, argp);
79414 + return w_long(file, cmd, argp);
79415 case I2C_RDWR:
79416 - return do_i2c_rdwr_ioctl(fd, cmd, argp);
79417 + return do_i2c_rdwr_ioctl(file, cmd, argp);
79418 case I2C_SMBUS:
79419 - return do_i2c_smbus_ioctl(fd, cmd, argp);
79420 + return do_i2c_smbus_ioctl(file, cmd, argp);
79421 /* Not implemented in the native kernel */
79422 case RTC_IRQP_READ32:
79423 case RTC_IRQP_SET32:
79424 case RTC_EPOCH_READ32:
79425 case RTC_EPOCH_SET32:
79426 - return rtc_ioctl(fd, cmd, argp);
79427 + return rtc_ioctl(file, cmd, argp);
79428
79429 /* dvb */
79430 case VIDEO_GET_EVENT:
79431 - return do_video_get_event(fd, cmd, argp);
79432 + return do_video_get_event(file, cmd, argp);
79433 case VIDEO_STILLPICTURE:
79434 - return do_video_stillpicture(fd, cmd, argp);
79435 + return do_video_stillpicture(file, cmd, argp);
79436 case VIDEO_SET_SPU_PALETTE:
79437 - return do_video_set_spu_palette(fd, cmd, argp);
79438 + return do_video_set_spu_palette(file, cmd, argp);
79439 }
79440
79441 /*
79442 @@ -1513,7 +1534,7 @@ static long do_ioctl_trans(int fd, unsigned int cmd,
79443 case NBD_SET_BLKSIZE:
79444 case NBD_SET_SIZE:
79445 case NBD_SET_SIZE_BLOCKS:
79446 - return do_vfs_ioctl(file, fd, cmd, arg);
79447 + return vfs_ioctl(file, cmd, arg);
79448 }
79449
79450 return -ENOIOCTLCMD;
79451 @@ -1602,7 +1623,7 @@ COMPAT_SYSCALL_DEFINE3(ioctl, unsigned int, fd, unsigned int, cmd,
79452 if (compat_ioctl_check_table(XFORM(cmd)))
79453 goto found_handler;
79454
79455 - error = do_ioctl_trans(fd, cmd, arg, f.file);
79456 + error = do_ioctl_trans(cmd, arg, f.file);
79457 if (error == -ENOIOCTLCMD)
79458 error = -ENOTTY;
79459
79460 @@ -1621,8 +1642,8 @@ COMPAT_SYSCALL_DEFINE3(ioctl, unsigned int, fd, unsigned int, cmd,
79461 static int __init init_sys32_ioctl_cmp(const void *p, const void *q)
79462 {
79463 unsigned int a, b;
79464 - a = *(unsigned int *)p;
79465 - b = *(unsigned int *)q;
79466 + a = *(const unsigned int *)p;
79467 + b = *(const unsigned int *)q;
79468 if (a > b)
79469 return 1;
79470 if (a < b)
79471 diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
79472 index a7a1b21..023d87a 100644
79473 --- a/fs/configfs/dir.c
79474 +++ b/fs/configfs/dir.c
79475 @@ -1540,7 +1540,8 @@ static int configfs_readdir(struct file *file, struct dir_context *ctx)
79476 }
79477 for (p = q->next; p != &parent_sd->s_children; p = p->next) {
79478 struct configfs_dirent *next;
79479 - const char *name;
79480 + const unsigned char * name;
79481 + char d_name[sizeof(next->s_dentry->d_iname)];
79482 int len;
79483 struct inode *inode = NULL;
79484
79485 @@ -1549,7 +1550,12 @@ static int configfs_readdir(struct file *file, struct dir_context *ctx)
79486 continue;
79487
79488 name = configfs_get_name(next);
79489 - len = strlen(name);
79490 + if (next->s_dentry && name == next->s_dentry->d_iname) {
79491 + len = next->s_dentry->d_name.len;
79492 + memcpy(d_name, name, len);
79493 + name = d_name;
79494 + } else
79495 + len = strlen(name);
79496
79497 /*
79498 * We'll have a dentry and an inode for
79499 diff --git a/fs/coredump.c b/fs/coredump.c
79500 index 1777331..d6154a2 100644
79501 --- a/fs/coredump.c
79502 +++ b/fs/coredump.c
79503 @@ -456,8 +456,8 @@ static void wait_for_dump_helpers(struct file *file)
79504 struct pipe_inode_info *pipe = file->private_data;
79505
79506 pipe_lock(pipe);
79507 - pipe->readers++;
79508 - pipe->writers--;
79509 + atomic_inc(&pipe->readers);
79510 + atomic_dec(&pipe->writers);
79511 wake_up_interruptible_sync(&pipe->wait);
79512 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
79513 pipe_unlock(pipe);
79514 @@ -466,11 +466,11 @@ static void wait_for_dump_helpers(struct file *file)
79515 * We actually want wait_event_freezable() but then we need
79516 * to clear TIF_SIGPENDING and improve dump_interrupted().
79517 */
79518 - wait_event_interruptible(pipe->wait, pipe->readers == 1);
79519 + wait_event_interruptible(pipe->wait, atomic_read(&pipe->readers) == 1);
79520
79521 pipe_lock(pipe);
79522 - pipe->readers--;
79523 - pipe->writers++;
79524 + atomic_dec(&pipe->readers);
79525 + atomic_inc(&pipe->writers);
79526 pipe_unlock(pipe);
79527 }
79528
79529 @@ -517,7 +517,9 @@ void do_coredump(const siginfo_t *siginfo)
79530 /* require nonrelative corefile path and be extra careful */
79531 bool need_suid_safe = false;
79532 bool core_dumped = false;
79533 - static atomic_t core_dump_count = ATOMIC_INIT(0);
79534 + static atomic_unchecked_t core_dump_count = ATOMIC_INIT(0);
79535 + long signr = siginfo->si_signo;
79536 + int dumpable;
79537 struct coredump_params cprm = {
79538 .siginfo = siginfo,
79539 .regs = signal_pt_regs(),
79540 @@ -530,12 +532,17 @@ void do_coredump(const siginfo_t *siginfo)
79541 .mm_flags = mm->flags,
79542 };
79543
79544 - audit_core_dumps(siginfo->si_signo);
79545 + audit_core_dumps(signr);
79546 +
79547 + dumpable = __get_dumpable(cprm.mm_flags);
79548 +
79549 + if (signr == SIGSEGV || signr == SIGBUS || signr == SIGKILL || signr == SIGILL)
79550 + gr_handle_brute_attach(dumpable);
79551
79552 binfmt = mm->binfmt;
79553 if (!binfmt || !binfmt->core_dump)
79554 goto fail;
79555 - if (!__get_dumpable(cprm.mm_flags))
79556 + if (!dumpable)
79557 goto fail;
79558
79559 cred = prepare_creds();
79560 @@ -553,7 +560,7 @@ void do_coredump(const siginfo_t *siginfo)
79561 need_suid_safe = true;
79562 }
79563
79564 - retval = coredump_wait(siginfo->si_signo, &core_state);
79565 + retval = coredump_wait(signr, &core_state);
79566 if (retval < 0)
79567 goto fail_creds;
79568
79569 @@ -596,7 +603,7 @@ void do_coredump(const siginfo_t *siginfo)
79570 }
79571 cprm.limit = RLIM_INFINITY;
79572
79573 - dump_count = atomic_inc_return(&core_dump_count);
79574 + dump_count = atomic_inc_return_unchecked(&core_dump_count);
79575 if (core_pipe_limit && (core_pipe_limit < dump_count)) {
79576 printk(KERN_WARNING "Pid %d(%s) over core_pipe_limit\n",
79577 task_tgid_vnr(current), current->comm);
79578 @@ -628,6 +635,8 @@ void do_coredump(const siginfo_t *siginfo)
79579 } else {
79580 struct inode *inode;
79581
79582 + gr_learn_resource(current, RLIMIT_CORE, binfmt->min_coredump, 1);
79583 +
79584 if (cprm.limit < binfmt->min_coredump)
79585 goto fail_unlock;
79586
79587 @@ -653,7 +662,7 @@ void do_coredump(const siginfo_t *siginfo)
79588 * If it doesn't exist, that's fine. If there's some
79589 * other problem, we'll catch it at the filp_open().
79590 */
79591 - (void) sys_unlink((const char __user *)cn.corename);
79592 + (void) sys_unlink((const char __force_user *)cn.corename);
79593 set_fs(old_fs);
79594 }
79595
79596 @@ -717,7 +726,7 @@ close_fail:
79597 filp_close(cprm.file, NULL);
79598 fail_dropcount:
79599 if (ispipe)
79600 - atomic_dec(&core_dump_count);
79601 + atomic_dec_unchecked(&core_dump_count);
79602 fail_unlock:
79603 kfree(cn.corename);
79604 coredump_finish(mm, core_dumped);
79605 @@ -738,6 +747,8 @@ int dump_emit(struct coredump_params *cprm, const void *addr, int nr)
79606 struct file *file = cprm->file;
79607 loff_t pos = file->f_pos;
79608 ssize_t n;
79609 +
79610 + gr_learn_resource(current, RLIMIT_CORE, cprm->written + nr, 1);
79611 if (cprm->written + nr > cprm->limit)
79612 return 0;
79613 while (nr) {
79614 diff --git a/fs/dcache.c b/fs/dcache.c
79615 index 877bcbb..7ec5109 100644
79616 --- a/fs/dcache.c
79617 +++ b/fs/dcache.c
79618 @@ -328,8 +328,9 @@ static inline void dentry_rcuwalk_invalidate(struct dentry *dentry)
79619 * and is unhashed.
79620 */
79621 static void dentry_iput(struct dentry * dentry)
79622 - __releases(dentry->d_lock)
79623 - __releases(dentry->d_inode->i_lock)
79624 + __releases(&dentry->d_lock)
79625 + __releases(&dentry->d_inode->i_lock);
79626 +static void dentry_iput(struct dentry * dentry)
79627 {
79628 struct inode *inode = dentry->d_inode;
79629 if (inode) {
79630 @@ -353,8 +354,9 @@ static void dentry_iput(struct dentry * dentry)
79631 * d_iput() operation if defined. dentry remains in-use.
79632 */
79633 static void dentry_unlink_inode(struct dentry * dentry)
79634 - __releases(dentry->d_lock)
79635 - __releases(dentry->d_inode->i_lock)
79636 + __releases(&dentry->d_lock)
79637 + __releases(&dentry->d_inode->i_lock);
79638 +static void dentry_unlink_inode(struct dentry * dentry)
79639 {
79640 struct inode *inode = dentry->d_inode;
79641
79642 @@ -534,7 +536,7 @@ static void __dentry_kill(struct dentry *dentry)
79643 * dentry_iput drops the locks, at which point nobody (except
79644 * transient RCU lookups) can reach this dentry.
79645 */
79646 - BUG_ON(dentry->d_lockref.count > 0);
79647 + BUG_ON(__lockref_read(&dentry->d_lockref) > 0);
79648 this_cpu_dec(nr_dentry);
79649 if (dentry->d_op && dentry->d_op->d_release)
79650 dentry->d_op->d_release(dentry);
79651 @@ -556,7 +558,8 @@ static void __dentry_kill(struct dentry *dentry)
79652 * Returns dentry requiring refcount drop, or NULL if we're done.
79653 */
79654 static struct dentry *dentry_kill(struct dentry *dentry)
79655 - __releases(dentry->d_lock)
79656 + __releases(&dentry->d_lock);
79657 +static struct dentry *dentry_kill(struct dentry *dentry)
79658 {
79659 struct inode *inode = dentry->d_inode;
79660 struct dentry *parent = NULL;
79661 @@ -587,7 +590,7 @@ static inline struct dentry *lock_parent(struct dentry *dentry)
79662 struct dentry *parent = dentry->d_parent;
79663 if (IS_ROOT(dentry))
79664 return NULL;
79665 - if (unlikely(dentry->d_lockref.count < 0))
79666 + if (unlikely(__lockref_read(&dentry->d_lockref) < 0))
79667 return NULL;
79668 if (likely(spin_trylock(&parent->d_lock)))
79669 return parent;
79670 @@ -649,8 +652,8 @@ static inline bool fast_dput(struct dentry *dentry)
79671 */
79672 if (unlikely(ret < 0)) {
79673 spin_lock(&dentry->d_lock);
79674 - if (dentry->d_lockref.count > 1) {
79675 - dentry->d_lockref.count--;
79676 + if (__lockref_read(&dentry->d_lockref) > 1) {
79677 + __lockref_dec(&dentry->d_lockref);
79678 spin_unlock(&dentry->d_lock);
79679 return 1;
79680 }
79681 @@ -705,7 +708,7 @@ static inline bool fast_dput(struct dentry *dentry)
79682 * else could have killed it and marked it dead. Either way, we
79683 * don't need to do anything else.
79684 */
79685 - if (dentry->d_lockref.count) {
79686 + if (__lockref_read(&dentry->d_lockref)) {
79687 spin_unlock(&dentry->d_lock);
79688 return 1;
79689 }
79690 @@ -715,7 +718,7 @@ static inline bool fast_dput(struct dentry *dentry)
79691 * lock, and we just tested that it was zero, so we can just
79692 * set it to 1.
79693 */
79694 - dentry->d_lockref.count = 1;
79695 + __lockref_set(&dentry->d_lockref, 1);
79696 return 0;
79697 }
79698
79699 @@ -777,7 +780,7 @@ repeat:
79700 dentry->d_flags |= DCACHE_REFERENCED;
79701 dentry_lru_add(dentry);
79702
79703 - dentry->d_lockref.count--;
79704 + __lockref_dec(&dentry->d_lockref);
79705 spin_unlock(&dentry->d_lock);
79706 return;
79707
79708 @@ -792,7 +795,7 @@ EXPORT_SYMBOL(dput);
79709 /* This must be called with d_lock held */
79710 static inline void __dget_dlock(struct dentry *dentry)
79711 {
79712 - dentry->d_lockref.count++;
79713 + __lockref_inc(&dentry->d_lockref);
79714 }
79715
79716 static inline void __dget(struct dentry *dentry)
79717 @@ -833,8 +836,8 @@ repeat:
79718 goto repeat;
79719 }
79720 rcu_read_unlock();
79721 - BUG_ON(!ret->d_lockref.count);
79722 - ret->d_lockref.count++;
79723 + BUG_ON(!__lockref_read(&ret->d_lockref));
79724 + __lockref_inc(&ret->d_lockref);
79725 spin_unlock(&ret->d_lock);
79726 return ret;
79727 }
79728 @@ -912,9 +915,9 @@ restart:
79729 spin_lock(&inode->i_lock);
79730 hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
79731 spin_lock(&dentry->d_lock);
79732 - if (!dentry->d_lockref.count) {
79733 + if (!__lockref_read(&dentry->d_lockref)) {
79734 struct dentry *parent = lock_parent(dentry);
79735 - if (likely(!dentry->d_lockref.count)) {
79736 + if (likely(!__lockref_read(&dentry->d_lockref))) {
79737 __dentry_kill(dentry);
79738 dput(parent);
79739 goto restart;
79740 @@ -949,7 +952,7 @@ static void shrink_dentry_list(struct list_head *list)
79741 * We found an inuse dentry which was not removed from
79742 * the LRU because of laziness during lookup. Do not free it.
79743 */
79744 - if (dentry->d_lockref.count > 0) {
79745 + if (__lockref_read(&dentry->d_lockref) > 0) {
79746 spin_unlock(&dentry->d_lock);
79747 if (parent)
79748 spin_unlock(&parent->d_lock);
79749 @@ -987,8 +990,8 @@ static void shrink_dentry_list(struct list_head *list)
79750 dentry = parent;
79751 while (dentry && !lockref_put_or_lock(&dentry->d_lockref)) {
79752 parent = lock_parent(dentry);
79753 - if (dentry->d_lockref.count != 1) {
79754 - dentry->d_lockref.count--;
79755 + if (__lockref_read(&dentry->d_lockref) != 1) {
79756 + __lockref_inc(&dentry->d_lockref);
79757 spin_unlock(&dentry->d_lock);
79758 if (parent)
79759 spin_unlock(&parent->d_lock);
79760 @@ -1028,7 +1031,7 @@ static enum lru_status dentry_lru_isolate(struct list_head *item,
79761 * counts, just remove them from the LRU. Otherwise give them
79762 * another pass through the LRU.
79763 */
79764 - if (dentry->d_lockref.count) {
79765 + if (__lockref_read(&dentry->d_lockref)) {
79766 d_lru_isolate(lru, dentry);
79767 spin_unlock(&dentry->d_lock);
79768 return LRU_REMOVED;
79769 @@ -1362,7 +1365,7 @@ static enum d_walk_ret select_collect(void *_data, struct dentry *dentry)
79770 } else {
79771 if (dentry->d_flags & DCACHE_LRU_LIST)
79772 d_lru_del(dentry);
79773 - if (!dentry->d_lockref.count) {
79774 + if (!__lockref_read(&dentry->d_lockref)) {
79775 d_shrink_add(dentry, &data->dispose);
79776 data->found++;
79777 }
79778 @@ -1410,7 +1413,7 @@ static enum d_walk_ret umount_check(void *_data, struct dentry *dentry)
79779 return D_WALK_CONTINUE;
79780
79781 /* root with refcount 1 is fine */
79782 - if (dentry == _data && dentry->d_lockref.count == 1)
79783 + if (dentry == _data && __lockref_read(&dentry->d_lockref) == 1)
79784 return D_WALK_CONTINUE;
79785
79786 printk(KERN_ERR "BUG: Dentry %p{i=%lx,n=%pd} "
79787 @@ -1419,7 +1422,7 @@ static enum d_walk_ret umount_check(void *_data, struct dentry *dentry)
79788 dentry->d_inode ?
79789 dentry->d_inode->i_ino : 0UL,
79790 dentry,
79791 - dentry->d_lockref.count,
79792 + __lockref_read(&dentry->d_lockref),
79793 dentry->d_sb->s_type->name,
79794 dentry->d_sb->s_id);
79795 WARN_ON(1);
79796 @@ -1560,7 +1563,7 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
79797 dentry->d_iname[DNAME_INLINE_LEN-1] = 0;
79798 if (name->len > DNAME_INLINE_LEN-1) {
79799 size_t size = offsetof(struct external_name, name[1]);
79800 - struct external_name *p = kmalloc(size + name->len, GFP_KERNEL);
79801 + struct external_name *p = kmalloc(round_up(size + name->len, sizeof(unsigned long)), GFP_KERNEL);
79802 if (!p) {
79803 kmem_cache_free(dentry_cache, dentry);
79804 return NULL;
79805 @@ -1583,7 +1586,7 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
79806 smp_wmb();
79807 dentry->d_name.name = dname;
79808
79809 - dentry->d_lockref.count = 1;
79810 + __lockref_set(&dentry->d_lockref, 1);
79811 dentry->d_flags = 0;
79812 spin_lock_init(&dentry->d_lock);
79813 seqcount_init(&dentry->d_seq);
79814 @@ -1592,6 +1595,9 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
79815 dentry->d_sb = sb;
79816 dentry->d_op = NULL;
79817 dentry->d_fsdata = NULL;
79818 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
79819 + atomic_set(&dentry->chroot_refcnt, 0);
79820 +#endif
79821 INIT_HLIST_BL_NODE(&dentry->d_hash);
79822 INIT_LIST_HEAD(&dentry->d_lru);
79823 INIT_LIST_HEAD(&dentry->d_subdirs);
79824 @@ -2317,7 +2323,7 @@ struct dentry *__d_lookup(const struct dentry *parent, const struct qstr *name)
79825 goto next;
79826 }
79827
79828 - dentry->d_lockref.count++;
79829 + __lockref_inc(&dentry->d_lockref);
79830 found = dentry;
79831 spin_unlock(&dentry->d_lock);
79832 break;
79833 @@ -2385,7 +2391,7 @@ again:
79834 spin_lock(&dentry->d_lock);
79835 inode = dentry->d_inode;
79836 isdir = S_ISDIR(inode->i_mode);
79837 - if (dentry->d_lockref.count == 1) {
79838 + if (__lockref_read(&dentry->d_lockref) == 1) {
79839 if (!spin_trylock(&inode->i_lock)) {
79840 spin_unlock(&dentry->d_lock);
79841 cpu_relax();
79842 @@ -3333,7 +3339,7 @@ static enum d_walk_ret d_genocide_kill(void *data, struct dentry *dentry)
79843
79844 if (!(dentry->d_flags & DCACHE_GENOCIDE)) {
79845 dentry->d_flags |= DCACHE_GENOCIDE;
79846 - dentry->d_lockref.count--;
79847 + __lockref_dec(&dentry->d_lockref);
79848 }
79849 }
79850 return D_WALK_CONTINUE;
79851 @@ -3441,7 +3447,8 @@ void __init vfs_caches_init_early(void)
79852 void __init vfs_caches_init(void)
79853 {
79854 names_cachep = kmem_cache_create("names_cache", PATH_MAX, 0,
79855 - SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL);
79856 + SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_USERCOPY|
79857 + SLAB_NO_SANITIZE, NULL);
79858
79859 dcache_init();
79860 inode_init();
79861 diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c
79862 index b7fcc0d..5da55c8 100644
79863 --- a/fs/debugfs/inode.c
79864 +++ b/fs/debugfs/inode.c
79865 @@ -406,6 +406,10 @@ EXPORT_SYMBOL_GPL(debugfs_create_file_size);
79866 * If debugfs is not enabled in the kernel, the value -%ENODEV will be
79867 * returned.
79868 */
79869 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
79870 +extern int grsec_enable_sysfs_restrict;
79871 +#endif
79872 +
79873 struct dentry *debugfs_create_dir(const char *name, struct dentry *parent)
79874 {
79875 struct dentry *dentry = start_creating(name, parent);
79876 @@ -418,7 +422,12 @@ struct dentry *debugfs_create_dir(const char *name, struct dentry *parent)
79877 if (unlikely(!inode))
79878 return failed_creating(dentry);
79879
79880 - inode->i_mode = S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO;
79881 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
79882 + if (grsec_enable_sysfs_restrict)
79883 + inode->i_mode = S_IFDIR | S_IRWXU;
79884 + else
79885 +#endif
79886 + inode->i_mode = S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO;
79887 inode->i_op = &simple_dir_inode_operations;
79888 inode->i_fop = &simple_dir_operations;
79889
79890 diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c
79891 index e2e47ba..221b0a3 100644
79892 --- a/fs/ecryptfs/inode.c
79893 +++ b/fs/ecryptfs/inode.c
79894 @@ -662,7 +662,7 @@ static char *ecryptfs_readlink_lower(struct dentry *dentry, size_t *bufsiz)
79895 old_fs = get_fs();
79896 set_fs(get_ds());
79897 rc = d_inode(lower_dentry)->i_op->readlink(lower_dentry,
79898 - (char __user *)lower_buf,
79899 + (char __force_user *)lower_buf,
79900 PATH_MAX);
79901 set_fs(old_fs);
79902 if (rc < 0)
79903 diff --git a/fs/ecryptfs/miscdev.c b/fs/ecryptfs/miscdev.c
79904 index e4141f2..d8263e8 100644
79905 --- a/fs/ecryptfs/miscdev.c
79906 +++ b/fs/ecryptfs/miscdev.c
79907 @@ -304,7 +304,7 @@ check_list:
79908 goto out_unlock_msg_ctx;
79909 i = PKT_TYPE_SIZE + PKT_CTR_SIZE;
79910 if (msg_ctx->msg) {
79911 - if (copy_to_user(&buf[i], packet_length, packet_length_size))
79912 + if (packet_length_size > sizeof(packet_length) || copy_to_user(&buf[i], packet_length, packet_length_size))
79913 goto out_unlock_msg_ctx;
79914 i += packet_length_size;
79915 if (copy_to_user(&buf[i], msg_ctx->msg, msg_ctx->msg_size))
79916 diff --git a/fs/exec.c b/fs/exec.c
79917 index b06623a..d1a8125 100644
79918 --- a/fs/exec.c
79919 +++ b/fs/exec.c
79920 @@ -56,8 +56,20 @@
79921 #include <linux/pipe_fs_i.h>
79922 #include <linux/oom.h>
79923 #include <linux/compat.h>
79924 +#include <linux/random.h>
79925 +#include <linux/seq_file.h>
79926 +#include <linux/coredump.h>
79927 +#include <linux/mman.h>
79928 +
79929 +#ifdef CONFIG_PAX_REFCOUNT
79930 +#include <linux/kallsyms.h>
79931 +#include <linux/kdebug.h>
79932 +#endif
79933 +
79934 +#include <trace/events/fs.h>
79935
79936 #include <asm/uaccess.h>
79937 +#include <asm/sections.h>
79938 #include <asm/mmu_context.h>
79939 #include <asm/tlb.h>
79940
79941 @@ -66,19 +78,34 @@
79942
79943 #include <trace/events/sched.h>
79944
79945 +#ifdef CONFIG_PAX_HAVE_ACL_FLAGS
79946 +void __weak pax_set_initial_flags(struct linux_binprm *bprm)
79947 +{
79948 + 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");
79949 +}
79950 +#endif
79951 +
79952 +#ifdef CONFIG_PAX_HOOK_ACL_FLAGS
79953 +void (*pax_set_initial_flags_func)(struct linux_binprm *bprm);
79954 +EXPORT_SYMBOL(pax_set_initial_flags_func);
79955 +#endif
79956 +
79957 int suid_dumpable = 0;
79958
79959 static LIST_HEAD(formats);
79960 static DEFINE_RWLOCK(binfmt_lock);
79961
79962 +extern int gr_process_kernel_exec_ban(void);
79963 +extern int gr_process_sugid_exec_ban(const struct linux_binprm *bprm);
79964 +
79965 void __register_binfmt(struct linux_binfmt * fmt, int insert)
79966 {
79967 BUG_ON(!fmt);
79968 if (WARN_ON(!fmt->load_binary))
79969 return;
79970 write_lock(&binfmt_lock);
79971 - insert ? list_add(&fmt->lh, &formats) :
79972 - list_add_tail(&fmt->lh, &formats);
79973 + insert ? pax_list_add((struct list_head *)&fmt->lh, &formats) :
79974 + pax_list_add_tail((struct list_head *)&fmt->lh, &formats);
79975 write_unlock(&binfmt_lock);
79976 }
79977
79978 @@ -87,7 +114,7 @@ EXPORT_SYMBOL(__register_binfmt);
79979 void unregister_binfmt(struct linux_binfmt * fmt)
79980 {
79981 write_lock(&binfmt_lock);
79982 - list_del(&fmt->lh);
79983 + pax_list_del((struct list_head *)&fmt->lh);
79984 write_unlock(&binfmt_lock);
79985 }
79986
79987 @@ -189,18 +216,10 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
79988 int write)
79989 {
79990 struct page *page;
79991 - int ret;
79992
79993 -#ifdef CONFIG_STACK_GROWSUP
79994 - if (write) {
79995 - ret = expand_downwards(bprm->vma, pos);
79996 - if (ret < 0)
79997 - return NULL;
79998 - }
79999 -#endif
80000 - ret = get_user_pages(current, bprm->mm, pos,
80001 - 1, write, 1, &page, NULL);
80002 - if (ret <= 0)
80003 + if (0 > expand_downwards(bprm->vma, pos))
80004 + return NULL;
80005 + if (0 >= get_user_pages(current, bprm->mm, pos, 1, write, 1, &page, NULL))
80006 return NULL;
80007
80008 if (write) {
80009 @@ -216,6 +235,17 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
80010 if (size <= ARG_MAX)
80011 return page;
80012
80013 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
80014 + // only allow 512KB for argv+env on suid/sgid binaries
80015 + // to prevent easy ASLR exhaustion
80016 + if (((!uid_eq(bprm->cred->euid, current_euid())) ||
80017 + (!gid_eq(bprm->cred->egid, current_egid()))) &&
80018 + (size > (512 * 1024))) {
80019 + put_page(page);
80020 + return NULL;
80021 + }
80022 +#endif
80023 +
80024 /*
80025 * Limit to 1/4-th the stack size for the argv+env strings.
80026 * This ensures that:
80027 @@ -275,6 +305,11 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
80028 vma->vm_end = STACK_TOP_MAX;
80029 vma->vm_start = vma->vm_end - PAGE_SIZE;
80030 vma->vm_flags = VM_SOFTDIRTY | VM_STACK_FLAGS | VM_STACK_INCOMPLETE_SETUP;
80031 +
80032 +#ifdef CONFIG_PAX_SEGMEXEC
80033 + vma->vm_flags &= ~(VM_EXEC | VM_MAYEXEC);
80034 +#endif
80035 +
80036 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
80037 INIT_LIST_HEAD(&vma->anon_vma_chain);
80038
80039 @@ -286,6 +321,12 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
80040 arch_bprm_mm_init(mm, vma);
80041 up_write(&mm->mmap_sem);
80042 bprm->p = vma->vm_end - sizeof(void *);
80043 +
80044 +#ifdef CONFIG_PAX_RANDUSTACK
80045 + if (randomize_va_space)
80046 + bprm->p ^= prandom_u32() & ~PAGE_MASK;
80047 +#endif
80048 +
80049 return 0;
80050 err:
80051 up_write(&mm->mmap_sem);
80052 @@ -402,7 +443,7 @@ struct user_arg_ptr {
80053 } ptr;
80054 };
80055
80056 -static const char __user *get_user_arg_ptr(struct user_arg_ptr argv, int nr)
80057 +const char __user *get_user_arg_ptr(struct user_arg_ptr argv, int nr)
80058 {
80059 const char __user *native;
80060
80061 @@ -411,14 +452,14 @@ static const char __user *get_user_arg_ptr(struct user_arg_ptr argv, int nr)
80062 compat_uptr_t compat;
80063
80064 if (get_user(compat, argv.ptr.compat + nr))
80065 - return ERR_PTR(-EFAULT);
80066 + return (const char __force_user *)ERR_PTR(-EFAULT);
80067
80068 return compat_ptr(compat);
80069 }
80070 #endif
80071
80072 if (get_user(native, argv.ptr.native + nr))
80073 - return ERR_PTR(-EFAULT);
80074 + return (const char __force_user *)ERR_PTR(-EFAULT);
80075
80076 return native;
80077 }
80078 @@ -437,7 +478,7 @@ static int count(struct user_arg_ptr argv, int max)
80079 if (!p)
80080 break;
80081
80082 - if (IS_ERR(p))
80083 + if (IS_ERR((const char __force_kernel *)p))
80084 return -EFAULT;
80085
80086 if (i >= max)
80087 @@ -472,7 +513,7 @@ static int copy_strings(int argc, struct user_arg_ptr argv,
80088
80089 ret = -EFAULT;
80090 str = get_user_arg_ptr(argv, argc);
80091 - if (IS_ERR(str))
80092 + if (IS_ERR((const char __force_kernel *)str))
80093 goto out;
80094
80095 len = strnlen_user(str, MAX_ARG_STRLEN);
80096 @@ -554,7 +595,7 @@ int copy_strings_kernel(int argc, const char *const *__argv,
80097 int r;
80098 mm_segment_t oldfs = get_fs();
80099 struct user_arg_ptr argv = {
80100 - .ptr.native = (const char __user *const __user *)__argv,
80101 + .ptr.native = (const char __user * const __force_user *)__argv,
80102 };
80103
80104 set_fs(KERNEL_DS);
80105 @@ -589,7 +630,8 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
80106 unsigned long new_end = old_end - shift;
80107 struct mmu_gather tlb;
80108
80109 - BUG_ON(new_start > new_end);
80110 + if (new_start >= new_end || new_start < mmap_min_addr)
80111 + return -ENOMEM;
80112
80113 /*
80114 * ensure there are no vmas between where we want to go
80115 @@ -598,6 +640,10 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
80116 if (vma != find_vma(mm, new_start))
80117 return -EFAULT;
80118
80119 +#ifdef CONFIG_PAX_SEGMEXEC
80120 + BUG_ON(pax_find_mirror_vma(vma));
80121 +#endif
80122 +
80123 /*
80124 * cover the whole range: [new_start, old_end)
80125 */
80126 @@ -681,10 +727,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
80127 stack_top = arch_align_stack(stack_top);
80128 stack_top = PAGE_ALIGN(stack_top);
80129
80130 - if (unlikely(stack_top < mmap_min_addr) ||
80131 - unlikely(vma->vm_end - vma->vm_start >= stack_top - mmap_min_addr))
80132 - return -ENOMEM;
80133 -
80134 stack_shift = vma->vm_end - stack_top;
80135
80136 bprm->p -= stack_shift;
80137 @@ -696,8 +738,28 @@ int setup_arg_pages(struct linux_binprm *bprm,
80138 bprm->exec -= stack_shift;
80139
80140 down_write(&mm->mmap_sem);
80141 +
80142 + /* Move stack pages down in memory. */
80143 + if (stack_shift) {
80144 + ret = shift_arg_pages(vma, stack_shift);
80145 + if (ret)
80146 + goto out_unlock;
80147 + }
80148 +
80149 vm_flags = VM_STACK_FLAGS;
80150
80151 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
80152 + if (mm->pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
80153 + vm_flags &= ~VM_EXEC;
80154 +
80155 +#ifdef CONFIG_PAX_MPROTECT
80156 + if (mm->pax_flags & MF_PAX_MPROTECT)
80157 + vm_flags &= ~VM_MAYEXEC;
80158 +#endif
80159 +
80160 + }
80161 +#endif
80162 +
80163 /*
80164 * Adjust stack execute permissions; explicitly enable for
80165 * EXSTACK_ENABLE_X, disable for EXSTACK_DISABLE_X and leave alone
80166 @@ -716,13 +778,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
80167 goto out_unlock;
80168 BUG_ON(prev != vma);
80169
80170 - /* Move stack pages down in memory. */
80171 - if (stack_shift) {
80172 - ret = shift_arg_pages(vma, stack_shift);
80173 - if (ret)
80174 - goto out_unlock;
80175 - }
80176 -
80177 /* mprotect_fixup is overkill to remove the temporary stack flags */
80178 vma->vm_flags &= ~VM_STACK_INCOMPLETE_SETUP;
80179
80180 @@ -746,6 +801,27 @@ int setup_arg_pages(struct linux_binprm *bprm,
80181 #endif
80182 current->mm->start_stack = bprm->p;
80183 ret = expand_stack(vma, stack_base);
80184 +
80185 +#if !defined(CONFIG_STACK_GROWSUP) && defined(CONFIG_PAX_RANDMMAP)
80186 + if (!ret && (mm->pax_flags & MF_PAX_RANDMMAP) && STACK_TOP <= 0xFFFFFFFFU && STACK_TOP > vma->vm_end) {
80187 + unsigned long size;
80188 + vm_flags_t vm_flags;
80189 +
80190 + size = STACK_TOP - vma->vm_end;
80191 + vm_flags = VM_NONE | VM_DONTEXPAND | VM_DONTDUMP;
80192 +
80193 + ret = vma->vm_end != mmap_region(NULL, vma->vm_end, size, vm_flags, 0);
80194 +
80195 +#ifdef CONFIG_X86
80196 + if (!ret) {
80197 + size = PAGE_SIZE + mmap_min_addr + ((mm->delta_mmap ^ mm->delta_stack) & (0xFFUL << PAGE_SHIFT));
80198 + ret = 0 != mmap_region(NULL, 0, PAGE_ALIGN(size), vm_flags, 0);
80199 + }
80200 +#endif
80201 +
80202 + }
80203 +#endif
80204 +
80205 if (ret)
80206 ret = -EFAULT;
80207
80208 @@ -761,6 +837,7 @@ static struct file *do_open_execat(int fd, struct filename *name, int flags)
80209 {
80210 struct file *file;
80211 int err;
80212 + int unsafe_flags = 0;
80213 struct open_flags open_exec_flags = {
80214 .open_flag = O_LARGEFILE | O_RDONLY | __FMODE_EXEC,
80215 .acc_mode = MAY_EXEC | MAY_OPEN,
80216 @@ -786,12 +863,22 @@ static struct file *do_open_execat(int fd, struct filename *name, int flags)
80217 if (path_noexec(&file->f_path))
80218 goto exit;
80219
80220 + if (current->ptrace && !(current->ptrace & PT_PTRACE_CAP))
80221 + unsafe_flags = LSM_UNSAFE_PTRACE;
80222 +
80223 + if (gr_ptrace_readexec(file, unsafe_flags)) {
80224 + err = -EPERM;
80225 + goto exit;
80226 + }
80227 +
80228 err = deny_write_access(file);
80229 if (err)
80230 goto exit;
80231
80232 - if (name->name[0] != '\0')
80233 + if (name->name[0] != '\0') {
80234 fsnotify_open(file);
80235 + trace_open_exec(name->name);
80236 + }
80237
80238 out:
80239 return file;
80240 @@ -821,10 +908,13 @@ int kernel_read(struct file *file, loff_t offset,
80241 loff_t pos = offset;
80242 int result;
80243
80244 + if (count > INT_MAX)
80245 + return -EINVAL;
80246 +
80247 old_fs = get_fs();
80248 set_fs(get_ds());
80249 /* The cast to a user pointer is valid due to the set_fs() */
80250 - result = vfs_read(file, (void __user *)addr, count, &pos);
80251 + result = vfs_read(file, (void __force_user *)addr, count, &pos);
80252 set_fs(old_fs);
80253 return result;
80254 }
80255 @@ -869,6 +959,7 @@ static int exec_mmap(struct mm_struct *mm)
80256 tsk->mm = mm;
80257 tsk->active_mm = mm;
80258 activate_mm(active_mm, mm);
80259 + populate_stack();
80260 tsk->mm->vmacache_seqnum = 0;
80261 vmacache_flush(tsk);
80262 task_unlock(tsk);
80263 @@ -1277,7 +1368,7 @@ static void check_unsafe_exec(struct linux_binprm *bprm)
80264 }
80265 rcu_read_unlock();
80266
80267 - if (p->fs->users > n_fs)
80268 + if (atomic_read(&p->fs->users) > n_fs)
80269 bprm->unsafe |= LSM_UNSAFE_SHARE;
80270 else
80271 p->fs->in_exec = 1;
80272 @@ -1478,6 +1569,31 @@ static int exec_binprm(struct linux_binprm *bprm)
80273 return ret;
80274 }
80275
80276 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
80277 +static DEFINE_PER_CPU(u64, exec_counter);
80278 +static int __init init_exec_counters(void)
80279 +{
80280 + unsigned int cpu;
80281 +
80282 + for_each_possible_cpu(cpu) {
80283 + per_cpu(exec_counter, cpu) = (u64)cpu;
80284 + }
80285 +
80286 + return 0;
80287 +}
80288 +early_initcall(init_exec_counters);
80289 +static inline void increment_exec_counter(void)
80290 +{
80291 + BUILD_BUG_ON(NR_CPUS > (1 << 16));
80292 + current->exec_id = this_cpu_add_return(exec_counter, 1 << 16);
80293 +}
80294 +#else
80295 +static inline void increment_exec_counter(void) {}
80296 +#endif
80297 +
80298 +extern void gr_handle_exec_args(struct linux_binprm *bprm,
80299 + struct user_arg_ptr argv);
80300 +
80301 /*
80302 * sys_execve() executes a new program.
80303 */
80304 @@ -1486,6 +1602,11 @@ static int do_execveat_common(int fd, struct filename *filename,
80305 struct user_arg_ptr envp,
80306 int flags)
80307 {
80308 +#ifdef CONFIG_GRKERNSEC
80309 + struct file *old_exec_file;
80310 + struct acl_subject_label *old_acl;
80311 + struct rlimit old_rlim[RLIM_NLIMITS];
80312 +#endif
80313 char *pathbuf = NULL;
80314 struct linux_binprm *bprm;
80315 struct file *file;
80316 @@ -1495,6 +1616,8 @@ static int do_execveat_common(int fd, struct filename *filename,
80317 if (IS_ERR(filename))
80318 return PTR_ERR(filename);
80319
80320 + gr_learn_resource(current, RLIMIT_NPROC, atomic_read(&current_user()->processes), 1);
80321 +
80322 /*
80323 * We move the actual failure in case of RLIMIT_NPROC excess from
80324 * set*uid() to execve() because too many poorly written programs
80325 @@ -1558,6 +1681,11 @@ static int do_execveat_common(int fd, struct filename *filename,
80326 }
80327 bprm->interp = bprm->filename;
80328
80329 + if (!gr_acl_handle_execve(file->f_path.dentry, file->f_path.mnt)) {
80330 + retval = -EACCES;
80331 + goto out_unmark;
80332 + }
80333 +
80334 retval = bprm_mm_init(bprm);
80335 if (retval)
80336 goto out_unmark;
80337 @@ -1574,24 +1702,70 @@ static int do_execveat_common(int fd, struct filename *filename,
80338 if (retval < 0)
80339 goto out;
80340
80341 +#ifdef CONFIG_GRKERNSEC
80342 + old_acl = current->acl;
80343 + memcpy(old_rlim, current->signal->rlim, sizeof(old_rlim));
80344 + old_exec_file = current->exec_file;
80345 + get_file(file);
80346 + current->exec_file = file;
80347 +#endif
80348 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
80349 + /* limit suid stack to 8MB
80350 + * we saved the old limits above and will restore them if this exec fails
80351 + */
80352 + if (((!uid_eq(bprm->cred->euid, current_euid())) || (!gid_eq(bprm->cred->egid, current_egid()))) &&
80353 + (old_rlim[RLIMIT_STACK].rlim_cur > (8 * 1024 * 1024)))
80354 + current->signal->rlim[RLIMIT_STACK].rlim_cur = 8 * 1024 * 1024;
80355 +#endif
80356 +
80357 + if (gr_process_kernel_exec_ban() || gr_process_sugid_exec_ban(bprm)) {
80358 + retval = -EPERM;
80359 + goto out_fail;
80360 + }
80361 +
80362 + if (!gr_tpe_allow(file)) {
80363 + retval = -EACCES;
80364 + goto out_fail;
80365 + }
80366 +
80367 + if (gr_check_crash_exec(file)) {
80368 + retval = -EACCES;
80369 + goto out_fail;
80370 + }
80371 +
80372 + retval = gr_set_proc_label(file->f_path.dentry, file->f_path.mnt,
80373 + bprm->unsafe);
80374 + if (retval < 0)
80375 + goto out_fail;
80376 +
80377 retval = copy_strings_kernel(1, &bprm->filename, bprm);
80378 if (retval < 0)
80379 - goto out;
80380 + goto out_fail;
80381
80382 bprm->exec = bprm->p;
80383 retval = copy_strings(bprm->envc, envp, bprm);
80384 if (retval < 0)
80385 - goto out;
80386 + goto out_fail;
80387
80388 retval = copy_strings(bprm->argc, argv, bprm);
80389 if (retval < 0)
80390 - goto out;
80391 + goto out_fail;
80392 +
80393 + gr_log_chroot_exec(file->f_path.dentry, file->f_path.mnt);
80394 +
80395 + gr_handle_exec_args(bprm, argv);
80396
80397 retval = exec_binprm(bprm);
80398 if (retval < 0)
80399 - goto out;
80400 + goto out_fail;
80401 +#ifdef CONFIG_GRKERNSEC
80402 + if (old_exec_file)
80403 + fput(old_exec_file);
80404 +#endif
80405
80406 /* execve succeeded */
80407 +
80408 + increment_exec_counter();
80409 current->fs->in_exec = 0;
80410 current->in_execve = 0;
80411 acct_update_integrals(current);
80412 @@ -1603,6 +1777,14 @@ static int do_execveat_common(int fd, struct filename *filename,
80413 put_files_struct(displaced);
80414 return retval;
80415
80416 +out_fail:
80417 +#ifdef CONFIG_GRKERNSEC
80418 + current->acl = old_acl;
80419 + memcpy(current->signal->rlim, old_rlim, sizeof(old_rlim));
80420 + fput(current->exec_file);
80421 + current->exec_file = old_exec_file;
80422 +#endif
80423 +
80424 out:
80425 if (bprm->mm) {
80426 acct_arg_size(bprm, 0);
80427 @@ -1749,3 +1931,319 @@ COMPAT_SYSCALL_DEFINE5(execveat, int, fd,
80428 argv, envp, flags);
80429 }
80430 #endif
80431 +
80432 +int pax_check_flags(unsigned long *flags)
80433 +{
80434 + int retval = 0;
80435 +
80436 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_SEGMEXEC)
80437 + if (*flags & MF_PAX_SEGMEXEC)
80438 + {
80439 + *flags &= ~MF_PAX_SEGMEXEC;
80440 + retval = -EINVAL;
80441 + }
80442 +#endif
80443 +
80444 + if ((*flags & MF_PAX_PAGEEXEC)
80445 +
80446 +#ifdef CONFIG_PAX_PAGEEXEC
80447 + && (*flags & MF_PAX_SEGMEXEC)
80448 +#endif
80449 +
80450 + )
80451 + {
80452 + *flags &= ~MF_PAX_PAGEEXEC;
80453 + retval = -EINVAL;
80454 + }
80455 +
80456 + if ((*flags & MF_PAX_MPROTECT)
80457 +
80458 +#ifdef CONFIG_PAX_MPROTECT
80459 + && !(*flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC))
80460 +#endif
80461 +
80462 + )
80463 + {
80464 + *flags &= ~MF_PAX_MPROTECT;
80465 + retval = -EINVAL;
80466 + }
80467 +
80468 + if ((*flags & MF_PAX_EMUTRAMP)
80469 +
80470 +#ifdef CONFIG_PAX_EMUTRAMP
80471 + && !(*flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC))
80472 +#endif
80473 +
80474 + )
80475 + {
80476 + *flags &= ~MF_PAX_EMUTRAMP;
80477 + retval = -EINVAL;
80478 + }
80479 +
80480 + return retval;
80481 +}
80482 +
80483 +EXPORT_SYMBOL(pax_check_flags);
80484 +
80485 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
80486 +char *pax_get_path(const struct path *path, char *buf, int buflen)
80487 +{
80488 + char *pathname = d_path(path, buf, buflen);
80489 +
80490 + if (IS_ERR(pathname))
80491 + goto toolong;
80492 +
80493 + pathname = mangle_path(buf, pathname, "\t\n\\");
80494 + if (!pathname)
80495 + goto toolong;
80496 +
80497 + *pathname = 0;
80498 + return buf;
80499 +
80500 +toolong:
80501 + return "<path too long>";
80502 +}
80503 +EXPORT_SYMBOL(pax_get_path);
80504 +
80505 +void pax_report_fault(struct pt_regs *regs, void *pc, void *sp)
80506 +{
80507 + struct task_struct *tsk = current;
80508 + struct mm_struct *mm = current->mm;
80509 + char *buffer_exec = (char *)__get_free_page(GFP_KERNEL);
80510 + char *buffer_fault = (char *)__get_free_page(GFP_KERNEL);
80511 + char *path_exec = NULL;
80512 + char *path_fault = NULL;
80513 + unsigned long start = 0UL, end = 0UL, offset = 0UL;
80514 + siginfo_t info = { };
80515 +
80516 + if (buffer_exec && buffer_fault) {
80517 + struct vm_area_struct *vma, *vma_exec = NULL, *vma_fault = NULL;
80518 +
80519 + down_read(&mm->mmap_sem);
80520 + vma = mm->mmap;
80521 + while (vma && (!vma_exec || !vma_fault)) {
80522 + if (vma->vm_file && mm->exe_file == vma->vm_file && (vma->vm_flags & VM_EXEC))
80523 + vma_exec = vma;
80524 + if (vma->vm_start <= (unsigned long)pc && (unsigned long)pc < vma->vm_end)
80525 + vma_fault = vma;
80526 + vma = vma->vm_next;
80527 + }
80528 + if (vma_exec)
80529 + path_exec = pax_get_path(&vma_exec->vm_file->f_path, buffer_exec, PAGE_SIZE);
80530 + if (vma_fault) {
80531 + start = vma_fault->vm_start;
80532 + end = vma_fault->vm_end;
80533 + offset = vma_fault->vm_pgoff << PAGE_SHIFT;
80534 + if (vma_fault->vm_file)
80535 + path_fault = pax_get_path(&vma_fault->vm_file->f_path, buffer_fault, PAGE_SIZE);
80536 + else if ((unsigned long)pc >= mm->start_brk && (unsigned long)pc < mm->brk)
80537 + path_fault = "<heap>";
80538 + else if (vma_fault->vm_flags & (VM_GROWSDOWN | VM_GROWSUP))
80539 + path_fault = "<stack>";
80540 + else
80541 + path_fault = "<anonymous mapping>";
80542 + }
80543 + up_read(&mm->mmap_sem);
80544 + }
80545 + if (tsk->signal->curr_ip)
80546 + printk(KERN_ERR "PAX: From %pI4: execution attempt in: %s, %08lx-%08lx %08lx\n", &tsk->signal->curr_ip, path_fault, start, end, offset);
80547 + else
80548 + printk(KERN_ERR "PAX: execution attempt in: %s, %08lx-%08lx %08lx\n", path_fault, start, end, offset);
80549 + 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),
80550 + from_kuid_munged(&init_user_ns, task_uid(tsk)), from_kuid_munged(&init_user_ns, task_euid(tsk)), pc, sp);
80551 + free_page((unsigned long)buffer_exec);
80552 + free_page((unsigned long)buffer_fault);
80553 + pax_report_insns(regs, pc, sp);
80554 + info.si_signo = SIGKILL;
80555 + info.si_errno = 0;
80556 + info.si_code = SI_KERNEL;
80557 + info.si_pid = 0;
80558 + info.si_uid = 0;
80559 + do_coredump(&info);
80560 +}
80561 +#endif
80562 +
80563 +#ifdef CONFIG_PAX_REFCOUNT
80564 +void pax_report_refcount_overflow(struct pt_regs *regs)
80565 +{
80566 + if (current->signal->curr_ip)
80567 + printk(KERN_EMERG "PAX: From %pI4: refcount overflow detected in: %s:%d, uid/euid: %u/%u\n",
80568 + &current->signal->curr_ip, current->comm, task_pid_nr(current),
80569 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
80570 + else
80571 + printk(KERN_EMERG "PAX: refcount overflow detected in: %s:%d, uid/euid: %u/%u\n", current->comm, task_pid_nr(current),
80572 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
80573 + print_symbol(KERN_EMERG "PAX: refcount overflow occured at: %s\n", instruction_pointer(regs));
80574 + preempt_disable();
80575 + show_regs(regs);
80576 + preempt_enable();
80577 + force_sig_info(SIGKILL, SEND_SIG_FORCED, current);
80578 +}
80579 +#endif
80580 +
80581 +#ifdef CONFIG_PAX_USERCOPY
80582 +/* 0: not at all, 1: fully, 2: fully inside frame, -1: partially (implies an error) */
80583 +static noinline int check_stack_object(const void *obj, unsigned long len)
80584 +{
80585 + const void * const stack = task_stack_page(current);
80586 + const void * const stackend = stack + THREAD_SIZE;
80587 +
80588 +#if defined(CONFIG_FRAME_POINTER) && defined(CONFIG_X86)
80589 + const void *frame = NULL;
80590 + const void *oldframe;
80591 +#endif
80592 +
80593 + if (obj + len < obj)
80594 + return -1;
80595 +
80596 + if (obj + len <= stack || stackend <= obj)
80597 + return 0;
80598 +
80599 + if (obj < stack || stackend < obj + len)
80600 + return -1;
80601 +
80602 +#if defined(CONFIG_FRAME_POINTER) && defined(CONFIG_X86)
80603 + oldframe = __builtin_frame_address(1);
80604 + if (oldframe)
80605 + frame = __builtin_frame_address(2);
80606 + /*
80607 + low ----------------------------------------------> high
80608 + [saved bp][saved ip][args][local vars][saved bp][saved ip]
80609 + ^----------------^
80610 + allow copies only within here
80611 + */
80612 + while (stack <= frame && frame < stackend) {
80613 + /* if obj + len extends past the last frame, this
80614 + check won't pass and the next frame will be 0,
80615 + causing us to bail out and correctly report
80616 + the copy as invalid
80617 + */
80618 + if (obj + len <= frame)
80619 + return obj >= oldframe + 2 * sizeof(void *) ? 2 : -1;
80620 + oldframe = frame;
80621 + frame = *(const void * const *)frame;
80622 + }
80623 + return -1;
80624 +#else
80625 + return 1;
80626 +#endif
80627 +}
80628 +
80629 +static __noreturn void pax_report_usercopy(const void *ptr, unsigned long len, bool to_user, const char *type)
80630 +{
80631 + if (current->signal->curr_ip)
80632 + printk(KERN_EMERG "PAX: From %pI4: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n",
80633 + &current->signal->curr_ip, to_user ? "leak" : "overwrite", to_user ? "from" : "to", ptr, type ? : "unknown", len);
80634 + else
80635 + printk(KERN_EMERG "PAX: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n",
80636 + to_user ? "leak" : "overwrite", to_user ? "from" : "to", ptr, type ? : "unknown", len);
80637 + dump_stack();
80638 + gr_handle_kernel_exploit();
80639 + do_group_exit(SIGKILL);
80640 +}
80641 +#endif
80642 +
80643 +#ifdef CONFIG_PAX_USERCOPY
80644 +
80645 +static inline bool check_kernel_text_object(unsigned long low, unsigned long high)
80646 +{
80647 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
80648 + unsigned long textlow = ktla_ktva((unsigned long)_stext);
80649 +#ifdef CONFIG_MODULES
80650 + unsigned long texthigh = (unsigned long)MODULES_EXEC_VADDR;
80651 +#else
80652 + unsigned long texthigh = ktla_ktva((unsigned long)_etext);
80653 +#endif
80654 +
80655 +#else
80656 + unsigned long textlow = (unsigned long)_stext;
80657 + unsigned long texthigh = (unsigned long)_etext;
80658 +
80659 +#ifdef CONFIG_X86_64
80660 + /* check against linear mapping as well */
80661 + if (high > (unsigned long)__va(__pa(textlow)) &&
80662 + low < (unsigned long)__va(__pa(texthigh)))
80663 + return true;
80664 +#endif
80665 +
80666 +#endif
80667 +
80668 + if (high <= textlow || low >= texthigh)
80669 + return false;
80670 + else
80671 + return true;
80672 +}
80673 +#endif
80674 +
80675 +void __check_object_size(const void *ptr, unsigned long n, bool to_user, bool const_size)
80676 +{
80677 +#ifdef CONFIG_PAX_USERCOPY
80678 + const char *type;
80679 +#endif
80680 +
80681 +#if !defined(CONFIG_STACK_GROWSUP) && !defined(CONFIG_X86_64)
80682 + unsigned long stackstart = (unsigned long)task_stack_page(current);
80683 + unsigned long currentsp = (unsigned long)&stackstart;
80684 + if (unlikely((currentsp < stackstart + 512 ||
80685 + currentsp >= stackstart + THREAD_SIZE) && !in_interrupt()))
80686 + BUG();
80687 +#endif
80688 +
80689 +#ifndef CONFIG_PAX_USERCOPY_DEBUG
80690 + if (const_size)
80691 + return;
80692 +#endif
80693 +
80694 +#ifdef CONFIG_PAX_USERCOPY
80695 + if (!n)
80696 + return;
80697 +
80698 + type = check_heap_object(ptr, n);
80699 + if (!type) {
80700 + int ret = check_stack_object(ptr, n);
80701 + if (ret == 1 || ret == 2)
80702 + return;
80703 + if (ret == 0) {
80704 + if (check_kernel_text_object((unsigned long)ptr, (unsigned long)ptr + n))
80705 + type = "<kernel text>";
80706 + else
80707 + return;
80708 + } else
80709 + type = "<process stack>";
80710 + }
80711 +
80712 + pax_report_usercopy(ptr, n, to_user, type);
80713 +#endif
80714 +
80715 +}
80716 +EXPORT_SYMBOL(__check_object_size);
80717 +
80718 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
80719 +void __used pax_track_stack(void)
80720 +{
80721 + unsigned long sp = (unsigned long)&sp;
80722 + if (sp < current_thread_info()->lowest_stack &&
80723 + sp >= (unsigned long)task_stack_page(current) + 2 * sizeof(unsigned long))
80724 + current_thread_info()->lowest_stack = sp;
80725 + if (unlikely((sp & ~(THREAD_SIZE - 1)) < (THREAD_SIZE/16)))
80726 + BUG();
80727 +}
80728 +EXPORT_SYMBOL(pax_track_stack);
80729 +#endif
80730 +
80731 +#ifdef CONFIG_PAX_SIZE_OVERFLOW
80732 +
80733 +static DEFINE_RATELIMIT_STATE(size_overflow_ratelimit, 15 * HZ, 3);
80734 +extern bool pax_size_overflow_report_only;
80735 +
80736 +void __nocapture(1, 3, 4) __used report_size_overflow(const char *file, unsigned int line, const char *func, const char *ssa_name)
80737 +{
80738 + if (!pax_size_overflow_report_only || __ratelimit(&size_overflow_ratelimit)) {
80739 + printk(KERN_EMERG "PAX: size overflow detected in function %s %s:%u %s", func, file, line, ssa_name);
80740 + dump_stack();
80741 + }
80742 + if (!pax_size_overflow_report_only)
80743 + do_group_exit(SIGKILL);
80744 +}
80745 +EXPORT_SYMBOL(report_size_overflow);
80746 +#endif
80747 diff --git a/fs/ext2/balloc.c b/fs/ext2/balloc.c
80748 index 9f9992b..8b59411 100644
80749 --- a/fs/ext2/balloc.c
80750 +++ b/fs/ext2/balloc.c
80751 @@ -1184,10 +1184,10 @@ static int ext2_has_free_blocks(struct ext2_sb_info *sbi)
80752
80753 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter);
80754 root_blocks = le32_to_cpu(sbi->s_es->s_r_blocks_count);
80755 - if (free_blocks < root_blocks + 1 && !capable(CAP_SYS_RESOURCE) &&
80756 + if (free_blocks < root_blocks + 1 &&
80757 !uid_eq(sbi->s_resuid, current_fsuid()) &&
80758 (gid_eq(sbi->s_resgid, GLOBAL_ROOT_GID) ||
80759 - !in_group_p (sbi->s_resgid))) {
80760 + !in_group_p (sbi->s_resgid)) && !capable_nolog(CAP_SYS_RESOURCE)) {
80761 return 0;
80762 }
80763 return 1;
80764 diff --git a/fs/ext2/super.c b/fs/ext2/super.c
80765 index 748d35a..87114f0 100644
80766 --- a/fs/ext2/super.c
80767 +++ b/fs/ext2/super.c
80768 @@ -270,10 +270,8 @@ static int ext2_show_options(struct seq_file *seq, struct dentry *root)
80769 #ifdef CONFIG_EXT2_FS_XATTR
80770 if (test_opt(sb, XATTR_USER))
80771 seq_puts(seq, ",user_xattr");
80772 - if (!test_opt(sb, XATTR_USER) &&
80773 - (def_mount_opts & EXT2_DEFM_XATTR_USER)) {
80774 + if (!test_opt(sb, XATTR_USER))
80775 seq_puts(seq, ",nouser_xattr");
80776 - }
80777 #endif
80778
80779 #ifdef CONFIG_EXT2_FS_POSIX_ACL
80780 @@ -861,8 +859,8 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent)
80781 if (def_mount_opts & EXT2_DEFM_UID16)
80782 set_opt(sbi->s_mount_opt, NO_UID32);
80783 #ifdef CONFIG_EXT2_FS_XATTR
80784 - if (def_mount_opts & EXT2_DEFM_XATTR_USER)
80785 - set_opt(sbi->s_mount_opt, XATTR_USER);
80786 + /* always enable user xattrs */
80787 + set_opt(sbi->s_mount_opt, XATTR_USER);
80788 #endif
80789 #ifdef CONFIG_EXT2_FS_POSIX_ACL
80790 if (def_mount_opts & EXT2_DEFM_ACL)
80791 diff --git a/fs/ext2/xattr.c b/fs/ext2/xattr.c
80792 index fa70848..57b36d2 100644
80793 --- a/fs/ext2/xattr.c
80794 +++ b/fs/ext2/xattr.c
80795 @@ -247,7 +247,7 @@ ext2_xattr_list(struct dentry *dentry, char *buffer, size_t buffer_size)
80796 struct buffer_head *bh = NULL;
80797 struct ext2_xattr_entry *entry;
80798 char *end;
80799 - size_t rest = buffer_size;
80800 + size_t rest = buffer_size, total_size = 0;
80801 int error;
80802
80803 ea_idebug(inode, "buffer=%p, buffer_size=%ld",
80804 @@ -304,9 +304,10 @@ bad_block: ext2_error(inode->i_sb, "ext2_xattr_list",
80805 buffer += size;
80806 }
80807 rest -= size;
80808 + total_size += size;
80809 }
80810 }
80811 - error = buffer_size - rest; /* total size */
80812 + error = total_size;
80813
80814 cleanup:
80815 brelse(bh);
80816 diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c
80817 index fe1f50f..3f4c870 100644
80818 --- a/fs/ext4/balloc.c
80819 +++ b/fs/ext4/balloc.c
80820 @@ -563,8 +563,8 @@ static int ext4_has_free_clusters(struct ext4_sb_info *sbi,
80821 /* Hm, nope. Are (enough) root reserved clusters available? */
80822 if (uid_eq(sbi->s_resuid, current_fsuid()) ||
80823 (!gid_eq(sbi->s_resgid, GLOBAL_ROOT_GID) && in_group_p(sbi->s_resgid)) ||
80824 - capable(CAP_SYS_RESOURCE) ||
80825 - (flags & EXT4_MB_USE_ROOT_BLOCKS)) {
80826 + (flags & EXT4_MB_USE_ROOT_BLOCKS) ||
80827 + capable_nolog(CAP_SYS_RESOURCE)) {
80828
80829 if (free_clusters >= (nclusters + dirty_clusters +
80830 resv_clusters))
80831 diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
80832 index cc7ca4e..1973ef2 100644
80833 --- a/fs/ext4/ext4.h
80834 +++ b/fs/ext4/ext4.h
80835 @@ -1351,19 +1351,19 @@ struct ext4_sb_info {
80836 unsigned long s_mb_last_start;
80837
80838 /* stats for buddy allocator */
80839 - atomic_t s_bal_reqs; /* number of reqs with len > 1 */
80840 - atomic_t s_bal_success; /* we found long enough chunks */
80841 - atomic_t s_bal_allocated; /* in blocks */
80842 - atomic_t s_bal_ex_scanned; /* total extents scanned */
80843 - atomic_t s_bal_goals; /* goal hits */
80844 - atomic_t s_bal_breaks; /* too long searches */
80845 - atomic_t s_bal_2orders; /* 2^order hits */
80846 + atomic_unchecked_t s_bal_reqs; /* number of reqs with len > 1 */
80847 + atomic_unchecked_t s_bal_success; /* we found long enough chunks */
80848 + atomic_unchecked_t s_bal_allocated; /* in blocks */
80849 + atomic_unchecked_t s_bal_ex_scanned; /* total extents scanned */
80850 + atomic_unchecked_t s_bal_goals; /* goal hits */
80851 + atomic_unchecked_t s_bal_breaks; /* too long searches */
80852 + atomic_unchecked_t s_bal_2orders; /* 2^order hits */
80853 spinlock_t s_bal_lock;
80854 unsigned long s_mb_buddies_generated;
80855 unsigned long long s_mb_generation_time;
80856 - atomic_t s_mb_lost_chunks;
80857 - atomic_t s_mb_preallocated;
80858 - atomic_t s_mb_discarded;
80859 + atomic_unchecked_t s_mb_lost_chunks;
80860 + atomic_unchecked_t s_mb_preallocated;
80861 + atomic_unchecked_t s_mb_discarded;
80862 atomic_t s_lock_busy;
80863
80864 /* locality groups */
80865 diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
80866 index 551353b..a069cff 100644
80867 --- a/fs/ext4/extents.c
80868 +++ b/fs/ext4/extents.c
80869 @@ -863,7 +863,7 @@ ext4_find_extent(struct inode *inode, ext4_lblk_t block,
80870 struct ext4_extent_header *eh;
80871 struct buffer_head *bh;
80872 struct ext4_ext_path *path = orig_path ? *orig_path : NULL;
80873 - short int depth, i, ppos = 0;
80874 + int depth, i, ppos = 0;
80875 int ret;
80876
80877 eh = ext_inode_hdr(inode);
80878 diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
80879 index 61eaf74..01a829b 100644
80880 --- a/fs/ext4/mballoc.c
80881 +++ b/fs/ext4/mballoc.c
80882 @@ -1912,7 +1912,7 @@ void ext4_mb_simple_scan_group(struct ext4_allocation_context *ac,
80883 BUG_ON(ac->ac_b_ex.fe_len != ac->ac_g_ex.fe_len);
80884
80885 if (EXT4_SB(sb)->s_mb_stats)
80886 - atomic_inc(&EXT4_SB(sb)->s_bal_2orders);
80887 + atomic_inc_unchecked(&EXT4_SB(sb)->s_bal_2orders);
80888
80889 break;
80890 }
80891 @@ -2235,7 +2235,7 @@ repeat:
80892 ac->ac_status = AC_STATUS_CONTINUE;
80893 ac->ac_flags |= EXT4_MB_HINT_FIRST;
80894 cr = 3;
80895 - atomic_inc(&sbi->s_mb_lost_chunks);
80896 + atomic_inc_unchecked(&sbi->s_mb_lost_chunks);
80897 goto repeat;
80898 }
80899 }
80900 @@ -2732,25 +2732,25 @@ int ext4_mb_release(struct super_block *sb)
80901 if (sbi->s_mb_stats) {
80902 ext4_msg(sb, KERN_INFO,
80903 "mballoc: %u blocks %u reqs (%u success)",
80904 - atomic_read(&sbi->s_bal_allocated),
80905 - atomic_read(&sbi->s_bal_reqs),
80906 - atomic_read(&sbi->s_bal_success));
80907 + atomic_read_unchecked(&sbi->s_bal_allocated),
80908 + atomic_read_unchecked(&sbi->s_bal_reqs),
80909 + atomic_read_unchecked(&sbi->s_bal_success));
80910 ext4_msg(sb, KERN_INFO,
80911 "mballoc: %u extents scanned, %u goal hits, "
80912 "%u 2^N hits, %u breaks, %u lost",
80913 - atomic_read(&sbi->s_bal_ex_scanned),
80914 - atomic_read(&sbi->s_bal_goals),
80915 - atomic_read(&sbi->s_bal_2orders),
80916 - atomic_read(&sbi->s_bal_breaks),
80917 - atomic_read(&sbi->s_mb_lost_chunks));
80918 + atomic_read_unchecked(&sbi->s_bal_ex_scanned),
80919 + atomic_read_unchecked(&sbi->s_bal_goals),
80920 + atomic_read_unchecked(&sbi->s_bal_2orders),
80921 + atomic_read_unchecked(&sbi->s_bal_breaks),
80922 + atomic_read_unchecked(&sbi->s_mb_lost_chunks));
80923 ext4_msg(sb, KERN_INFO,
80924 "mballoc: %lu generated and it took %Lu",
80925 sbi->s_mb_buddies_generated,
80926 sbi->s_mb_generation_time);
80927 ext4_msg(sb, KERN_INFO,
80928 "mballoc: %u preallocated, %u discarded",
80929 - atomic_read(&sbi->s_mb_preallocated),
80930 - atomic_read(&sbi->s_mb_discarded));
80931 + atomic_read_unchecked(&sbi->s_mb_preallocated),
80932 + atomic_read_unchecked(&sbi->s_mb_discarded));
80933 }
80934
80935 free_percpu(sbi->s_locality_groups);
80936 @@ -3208,16 +3208,16 @@ static void ext4_mb_collect_stats(struct ext4_allocation_context *ac)
80937 struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
80938
80939 if (sbi->s_mb_stats && ac->ac_g_ex.fe_len > 1) {
80940 - atomic_inc(&sbi->s_bal_reqs);
80941 - atomic_add(ac->ac_b_ex.fe_len, &sbi->s_bal_allocated);
80942 + atomic_inc_unchecked(&sbi->s_bal_reqs);
80943 + atomic_add_unchecked(ac->ac_b_ex.fe_len, &sbi->s_bal_allocated);
80944 if (ac->ac_b_ex.fe_len >= ac->ac_o_ex.fe_len)
80945 - atomic_inc(&sbi->s_bal_success);
80946 - atomic_add(ac->ac_found, &sbi->s_bal_ex_scanned);
80947 + atomic_inc_unchecked(&sbi->s_bal_success);
80948 + atomic_add_unchecked(ac->ac_found, &sbi->s_bal_ex_scanned);
80949 if (ac->ac_g_ex.fe_start == ac->ac_b_ex.fe_start &&
80950 ac->ac_g_ex.fe_group == ac->ac_b_ex.fe_group)
80951 - atomic_inc(&sbi->s_bal_goals);
80952 + atomic_inc_unchecked(&sbi->s_bal_goals);
80953 if (ac->ac_found > sbi->s_mb_max_to_scan)
80954 - atomic_inc(&sbi->s_bal_breaks);
80955 + atomic_inc_unchecked(&sbi->s_bal_breaks);
80956 }
80957
80958 if (ac->ac_op == EXT4_MB_HISTORY_ALLOC)
80959 @@ -3644,7 +3644,7 @@ ext4_mb_new_inode_pa(struct ext4_allocation_context *ac)
80960 trace_ext4_mb_new_inode_pa(ac, pa);
80961
80962 ext4_mb_use_inode_pa(ac, pa);
80963 - atomic_add(pa->pa_free, &sbi->s_mb_preallocated);
80964 + atomic_add_unchecked(pa->pa_free, &sbi->s_mb_preallocated);
80965
80966 ei = EXT4_I(ac->ac_inode);
80967 grp = ext4_get_group_info(sb, ac->ac_b_ex.fe_group);
80968 @@ -3704,7 +3704,7 @@ ext4_mb_new_group_pa(struct ext4_allocation_context *ac)
80969 trace_ext4_mb_new_group_pa(ac, pa);
80970
80971 ext4_mb_use_group_pa(ac, pa);
80972 - atomic_add(pa->pa_free, &EXT4_SB(sb)->s_mb_preallocated);
80973 + atomic_add_unchecked(pa->pa_free, &EXT4_SB(sb)->s_mb_preallocated);
80974
80975 grp = ext4_get_group_info(sb, ac->ac_b_ex.fe_group);
80976 lg = ac->ac_lg;
80977 @@ -3793,7 +3793,7 @@ ext4_mb_release_inode_pa(struct ext4_buddy *e4b, struct buffer_head *bitmap_bh,
80978 * from the bitmap and continue.
80979 */
80980 }
80981 - atomic_add(free, &sbi->s_mb_discarded);
80982 + atomic_add_unchecked(free, &sbi->s_mb_discarded);
80983
80984 return err;
80985 }
80986 @@ -3811,7 +3811,7 @@ ext4_mb_release_group_pa(struct ext4_buddy *e4b,
80987 ext4_get_group_no_and_offset(sb, pa->pa_pstart, &group, &bit);
80988 BUG_ON(group != e4b->bd_group && pa->pa_len != 0);
80989 mb_free_blocks(pa->pa_inode, e4b, bit, pa->pa_len);
80990 - atomic_add(pa->pa_len, &EXT4_SB(sb)->s_mb_discarded);
80991 + atomic_add_unchecked(pa->pa_len, &EXT4_SB(sb)->s_mb_discarded);
80992 trace_ext4_mballoc_discard(sb, NULL, group, bit, pa->pa_len);
80993
80994 return 0;
80995 diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
80996 index 34038e3..322fe62 100644
80997 --- a/fs/ext4/resize.c
80998 +++ b/fs/ext4/resize.c
80999 @@ -413,7 +413,7 @@ static int set_flexbg_block_bitmap(struct super_block *sb, handle_t *handle,
81000
81001 ext4_debug("mark blocks [%llu/%u] used\n", block, count);
81002 for (count2 = count; count > 0; count -= count2, block += count2) {
81003 - ext4_fsblk_t start;
81004 + ext4_fsblk_t start, diff;
81005 struct buffer_head *bh;
81006 ext4_group_t group;
81007 int err;
81008 @@ -422,10 +422,6 @@ static int set_flexbg_block_bitmap(struct super_block *sb, handle_t *handle,
81009 start = ext4_group_first_block_no(sb, group);
81010 group -= flex_gd->groups[0].group;
81011
81012 - count2 = EXT4_BLOCKS_PER_GROUP(sb) - (block - start);
81013 - if (count2 > count)
81014 - count2 = count;
81015 -
81016 if (flex_gd->bg_flags[group] & EXT4_BG_BLOCK_UNINIT) {
81017 BUG_ON(flex_gd->count > 1);
81018 continue;
81019 @@ -443,9 +439,15 @@ static int set_flexbg_block_bitmap(struct super_block *sb, handle_t *handle,
81020 err = ext4_journal_get_write_access(handle, bh);
81021 if (err)
81022 return err;
81023 +
81024 + diff = block - start;
81025 + count2 = EXT4_BLOCKS_PER_GROUP(sb) - diff;
81026 + if (count2 > count)
81027 + count2 = count;
81028 +
81029 ext4_debug("mark block bitmap %#04llx (+%llu/%u)\n", block,
81030 - block - start, count2);
81031 - ext4_set_bits(bh->b_data, block - start, count2);
81032 + diff, count2);
81033 + ext4_set_bits(bh->b_data, diff, count2);
81034
81035 err = ext4_handle_dirty_metadata(handle, NULL, bh);
81036 if (unlikely(err))
81037 diff --git a/fs/ext4/super.c b/fs/ext4/super.c
81038 index c9ab67d..3c937171 100644
81039 --- a/fs/ext4/super.c
81040 +++ b/fs/ext4/super.c
81041 @@ -1274,7 +1274,7 @@ static ext4_fsblk_t get_sb_block(void **data)
81042 }
81043
81044 #define DEFAULT_JOURNAL_IOPRIO (IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, 3))
81045 -static char deprecated_msg[] = "Mount option \"%s\" will be removed by %s\n"
81046 +static const char deprecated_msg[] = "Mount option \"%s\" will be removed by %s\n"
81047 "Contact linux-ext4@vger.kernel.org if you think we should keep it.\n";
81048
81049 #ifdef CONFIG_QUOTA
81050 diff --git a/fs/ext4/sysfs.c b/fs/ext4/sysfs.c
81051 index 1420a3c..e87523c 100644
81052 --- a/fs/ext4/sysfs.c
81053 +++ b/fs/ext4/sysfs.c
81054 @@ -45,7 +45,7 @@ struct ext4_attr {
81055 int offset;
81056 void *explicit_ptr;
81057 } u;
81058 -};
81059 +} __do_const;
81060
81061 static ssize_t session_write_kbytes_show(struct ext4_attr *a,
81062 struct ext4_sb_info *sbi, char *buf)
81063 diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c
81064 index 6b6b3e7..0cbeeb9 100644
81065 --- a/fs/ext4/xattr.c
81066 +++ b/fs/ext4/xattr.c
81067 @@ -398,7 +398,7 @@ static int
81068 ext4_xattr_list_entries(struct dentry *dentry, struct ext4_xattr_entry *entry,
81069 char *buffer, size_t buffer_size)
81070 {
81071 - size_t rest = buffer_size;
81072 + size_t rest = buffer_size, total_size = 0;
81073
81074 for (; !IS_LAST_ENTRY(entry); entry = EXT4_XATTR_NEXT(entry)) {
81075 const struct xattr_handler *handler =
81076 @@ -414,9 +414,10 @@ ext4_xattr_list_entries(struct dentry *dentry, struct ext4_xattr_entry *entry,
81077 buffer += size;
81078 }
81079 rest -= size;
81080 + total_size += size;
81081 }
81082 }
81083 - return buffer_size - rest;
81084 + return total_size;
81085 }
81086
81087 static int
81088 diff --git a/fs/fcntl.c b/fs/fcntl.c
81089 index ee85cd4..9dd0d20 100644
81090 --- a/fs/fcntl.c
81091 +++ b/fs/fcntl.c
81092 @@ -102,6 +102,10 @@ void __f_setown(struct file *filp, struct pid *pid, enum pid_type type,
81093 int force)
81094 {
81095 security_file_set_fowner(filp);
81096 + if (gr_handle_chroot_fowner(pid, type))
81097 + return;
81098 + if (gr_check_protected_task_fowner(pid, type))
81099 + return;
81100 f_modown(filp, pid, type, force);
81101 }
81102 EXPORT_SYMBOL(__f_setown);
81103 diff --git a/fs/fhandle.c b/fs/fhandle.c
81104 index d59712d..2c63363 100644
81105 --- a/fs/fhandle.c
81106 +++ b/fs/fhandle.c
81107 @@ -8,6 +8,7 @@
81108 #include <linux/fs_struct.h>
81109 #include <linux/fsnotify.h>
81110 #include <linux/personality.h>
81111 +#include <linux/grsecurity.h>
81112 #include <asm/uaccess.h>
81113 #include "internal.h"
81114 #include "mount.h"
81115 @@ -67,8 +68,7 @@ static long do_sys_name_to_handle(struct path *path,
81116 } else
81117 retval = 0;
81118 /* copy the mount id */
81119 - if (copy_to_user(mnt_id, &real_mount(path->mnt)->mnt_id,
81120 - sizeof(*mnt_id)) ||
81121 + if (put_user(real_mount(path->mnt)->mnt_id, mnt_id) ||
81122 copy_to_user(ufh, handle,
81123 sizeof(struct file_handle) + handle_bytes))
81124 retval = -EFAULT;
81125 @@ -175,7 +175,7 @@ static int handle_to_path(int mountdirfd, struct file_handle __user *ufh,
81126 * the directory. Ideally we would like CAP_DAC_SEARCH.
81127 * But we don't have that
81128 */
81129 - if (!capable(CAP_DAC_READ_SEARCH)) {
81130 + if (!capable(CAP_DAC_READ_SEARCH) || !gr_chroot_fhandle()) {
81131 retval = -EPERM;
81132 goto out_err;
81133 }
81134 @@ -197,7 +197,7 @@ static int handle_to_path(int mountdirfd, struct file_handle __user *ufh,
81135 /* copy the full handle */
81136 *handle = f_handle;
81137 if (copy_from_user(&handle->f_handle,
81138 - &ufh->f_handle,
81139 + ufh->f_handle,
81140 f_handle.handle_bytes)) {
81141 retval = -EFAULT;
81142 goto out_handle;
81143 diff --git a/fs/file.c b/fs/file.c
81144 index 39f8f15..898d887 100644
81145 --- a/fs/file.c
81146 +++ b/fs/file.c
81147 @@ -16,6 +16,7 @@
81148 #include <linux/slab.h>
81149 #include <linux/vmalloc.h>
81150 #include <linux/file.h>
81151 +#include <linux/security.h>
81152 #include <linux/fdtable.h>
81153 #include <linux/bitops.h>
81154 #include <linux/interrupt.h>
81155 @@ -162,9 +163,10 @@ out:
81156 * Return <0 error code on error; 1 on successful completion.
81157 * The files->file_lock should be held on entry, and will be held on exit.
81158 */
81159 -static int expand_fdtable(struct files_struct *files, int nr)
81160 - __releases(files->file_lock)
81161 - __acquires(files->file_lock)
81162 +static int expand_fdtable(struct files_struct *files, unsigned int nr)
81163 + __releases(&files->file_lock)
81164 + __acquires(&files->file_lock);
81165 +static int expand_fdtable(struct files_struct *files, unsigned int nr)
81166 {
81167 struct fdtable *new_fdt, *cur_fdt;
81168
81169 @@ -207,9 +209,10 @@ static int expand_fdtable(struct files_struct *files, int nr)
81170 * expanded and execution may have blocked.
81171 * The files->file_lock should be held on entry, and will be held on exit.
81172 */
81173 -static int expand_files(struct files_struct *files, int nr)
81174 - __releases(files->file_lock)
81175 - __acquires(files->file_lock)
81176 +static int expand_files(struct files_struct *files, unsigned int nr)
81177 + __releases(&files->file_lock)
81178 + __acquires(&files->file_lock);
81179 +static int expand_files(struct files_struct *files, unsigned int nr)
81180 {
81181 struct fdtable *fdt;
81182 int expanded = 0;
81183 @@ -816,7 +819,9 @@ bool get_close_on_exec(unsigned int fd)
81184
81185 static int do_dup2(struct files_struct *files,
81186 struct file *file, unsigned fd, unsigned flags)
81187 -__releases(&files->file_lock)
81188 +__releases(&files->file_lock);
81189 +static int do_dup2(struct files_struct *files,
81190 + struct file *file, unsigned fd, unsigned flags)
81191 {
81192 struct file *tofree;
81193 struct fdtable *fdt;
81194 @@ -866,6 +871,7 @@ int replace_fd(unsigned fd, struct file *file, unsigned flags)
81195 if (!file)
81196 return __close_fd(files, fd);
81197
81198 + gr_learn_resource(current, RLIMIT_NOFILE, fd, 0);
81199 if (fd >= rlimit(RLIMIT_NOFILE))
81200 return -EBADF;
81201
81202 @@ -892,6 +898,7 @@ SYSCALL_DEFINE3(dup3, unsigned int, oldfd, unsigned int, newfd, int, flags)
81203 if (unlikely(oldfd == newfd))
81204 return -EINVAL;
81205
81206 + gr_learn_resource(current, RLIMIT_NOFILE, newfd, 0);
81207 if (newfd >= rlimit(RLIMIT_NOFILE))
81208 return -EBADF;
81209
81210 @@ -947,6 +954,7 @@ SYSCALL_DEFINE1(dup, unsigned int, fildes)
81211 int f_dupfd(unsigned int from, struct file *file, unsigned flags)
81212 {
81213 int err;
81214 + gr_learn_resource(current, RLIMIT_NOFILE, from, 0);
81215 if (from >= rlimit(RLIMIT_NOFILE))
81216 return -EINVAL;
81217 err = alloc_fd(from, flags);
81218 diff --git a/fs/filesystems.c b/fs/filesystems.c
81219 index 5797d45..7d7d79a 100644
81220 --- a/fs/filesystems.c
81221 +++ b/fs/filesystems.c
81222 @@ -275,7 +275,11 @@ struct file_system_type *get_fs_type(const char *name)
81223 int len = dot ? dot - name : strlen(name);
81224
81225 fs = __get_fs_type(name, len);
81226 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
81227 + if (!fs && (___request_module(true, "grsec_modharden_fs", "fs-%.*s", len, name) == 0))
81228 +#else
81229 if (!fs && (request_module("fs-%.*s", len, name) == 0))
81230 +#endif
81231 fs = __get_fs_type(name, len);
81232
81233 if (dot && fs && !(fs->fs_flags & FS_HAS_SUBTYPE)) {
81234 diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
81235 index 7a8ea13..f7a17db 100644
81236 --- a/fs/fs-writeback.c
81237 +++ b/fs/fs-writeback.c
81238 @@ -880,9 +880,9 @@ fs_initcall(cgroup_writeback_init);
81239 #else /* CONFIG_CGROUP_WRITEBACK */
81240
81241 static struct bdi_writeback *
81242 +locked_inode_to_wb_and_lock_list(struct inode *inode) __releases(&inode->i_lock) __acquires(&wb->list_lock);
81243 +static struct bdi_writeback *
81244 locked_inode_to_wb_and_lock_list(struct inode *inode)
81245 - __releases(&inode->i_lock)
81246 - __acquires(&wb->list_lock)
81247 {
81248 struct bdi_writeback *wb = inode_to_wb(inode);
81249
81250 @@ -891,8 +891,8 @@ locked_inode_to_wb_and_lock_list(struct inode *inode)
81251 return wb;
81252 }
81253
81254 +static struct bdi_writeback *inode_to_wb_and_lock_list(struct inode *inode) __acquires(&wb->list_lock);
81255 static struct bdi_writeback *inode_to_wb_and_lock_list(struct inode *inode)
81256 - __acquires(&wb->list_lock)
81257 {
81258 struct bdi_writeback *wb = inode_to_wb(inode);
81259
81260 @@ -1136,9 +1136,8 @@ static int write_inode(struct inode *inode, struct writeback_control *wbc)
81261 * Wait for writeback on an inode to complete. Called with i_lock held.
81262 * Caller must make sure inode cannot go away when we drop i_lock.
81263 */
81264 +static void __inode_wait_for_writeback(struct inode *inode) __must_hold(&inode->i_lock);
81265 static void __inode_wait_for_writeback(struct inode *inode)
81266 - __releases(inode->i_lock)
81267 - __acquires(inode->i_lock)
81268 {
81269 DEFINE_WAIT_BIT(wq, &inode->i_state, __I_SYNC);
81270 wait_queue_head_t *wqh;
81271 @@ -1167,8 +1166,8 @@ void inode_wait_for_writeback(struct inode *inode)
81272 * held and drops it. It is aimed for callers not holding any inode reference
81273 * so once i_lock is dropped, inode can go away.
81274 */
81275 +static void inode_sleep_on_writeback(struct inode *inode) __releases(&inode->i_lock);
81276 static void inode_sleep_on_writeback(struct inode *inode)
81277 - __releases(inode->i_lock)
81278 {
81279 DEFINE_WAIT(wait);
81280 wait_queue_head_t *wqh = bit_waitqueue(&inode->i_state, __I_SYNC);
81281 diff --git a/fs/fs_struct.c b/fs/fs_struct.c
81282 index 7dca743..1ff87ae 100644
81283 --- a/fs/fs_struct.c
81284 +++ b/fs/fs_struct.c
81285 @@ -4,6 +4,7 @@
81286 #include <linux/path.h>
81287 #include <linux/slab.h>
81288 #include <linux/fs_struct.h>
81289 +#include <linux/grsecurity.h>
81290 #include "internal.h"
81291
81292 /*
81293 @@ -15,14 +16,18 @@ void set_fs_root(struct fs_struct *fs, const struct path *path)
81294 struct path old_root;
81295
81296 path_get(path);
81297 + gr_inc_chroot_refcnts(path->dentry, path->mnt);
81298 spin_lock(&fs->lock);
81299 write_seqcount_begin(&fs->seq);
81300 old_root = fs->root;
81301 fs->root = *path;
81302 + gr_set_chroot_entries(current, path);
81303 write_seqcount_end(&fs->seq);
81304 spin_unlock(&fs->lock);
81305 - if (old_root.dentry)
81306 + if (old_root.dentry) {
81307 + gr_dec_chroot_refcnts(old_root.dentry, old_root.mnt);
81308 path_put(&old_root);
81309 + }
81310 }
81311
81312 /*
81313 @@ -67,6 +72,10 @@ void chroot_fs_refs(const struct path *old_root, const struct path *new_root)
81314 int hits = 0;
81315 spin_lock(&fs->lock);
81316 write_seqcount_begin(&fs->seq);
81317 + /* this root replacement is only done by pivot_root,
81318 + leave grsec's chroot tagging alone for this task
81319 + so that a pivoted root isn't treated as a chroot
81320 + */
81321 hits += replace_path(&fs->root, old_root, new_root);
81322 hits += replace_path(&fs->pwd, old_root, new_root);
81323 write_seqcount_end(&fs->seq);
81324 @@ -85,6 +94,7 @@ void chroot_fs_refs(const struct path *old_root, const struct path *new_root)
81325
81326 void free_fs_struct(struct fs_struct *fs)
81327 {
81328 + gr_dec_chroot_refcnts(fs->root.dentry, fs->root.mnt);
81329 path_put(&fs->root);
81330 path_put(&fs->pwd);
81331 kmem_cache_free(fs_cachep, fs);
81332 @@ -99,7 +109,8 @@ void exit_fs(struct task_struct *tsk)
81333 task_lock(tsk);
81334 spin_lock(&fs->lock);
81335 tsk->fs = NULL;
81336 - kill = !--fs->users;
81337 + gr_clear_chroot_entries(tsk);
81338 + kill = !atomic_dec_return(&fs->users);
81339 spin_unlock(&fs->lock);
81340 task_unlock(tsk);
81341 if (kill)
81342 @@ -112,7 +123,7 @@ struct fs_struct *copy_fs_struct(struct fs_struct *old)
81343 struct fs_struct *fs = kmem_cache_alloc(fs_cachep, GFP_KERNEL);
81344 /* We don't need to lock fs - think why ;-) */
81345 if (fs) {
81346 - fs->users = 1;
81347 + atomic_set(&fs->users, 1);
81348 fs->in_exec = 0;
81349 spin_lock_init(&fs->lock);
81350 seqcount_init(&fs->seq);
81351 @@ -121,9 +132,13 @@ struct fs_struct *copy_fs_struct(struct fs_struct *old)
81352 spin_lock(&old->lock);
81353 fs->root = old->root;
81354 path_get(&fs->root);
81355 + /* instead of calling gr_set_chroot_entries here,
81356 + we call it from every caller of this function
81357 + */
81358 fs->pwd = old->pwd;
81359 path_get(&fs->pwd);
81360 spin_unlock(&old->lock);
81361 + gr_inc_chroot_refcnts(fs->root.dentry, fs->root.mnt);
81362 }
81363 return fs;
81364 }
81365 @@ -139,8 +154,9 @@ int unshare_fs_struct(void)
81366
81367 task_lock(current);
81368 spin_lock(&fs->lock);
81369 - kill = !--fs->users;
81370 + kill = !atomic_dec_return(&fs->users);
81371 current->fs = new_fs;
81372 + gr_set_chroot_entries(current, &new_fs->root);
81373 spin_unlock(&fs->lock);
81374 task_unlock(current);
81375
81376 @@ -153,13 +169,13 @@ EXPORT_SYMBOL_GPL(unshare_fs_struct);
81377
81378 int current_umask(void)
81379 {
81380 - return current->fs->umask;
81381 + return current->fs->umask | gr_acl_umask();
81382 }
81383 EXPORT_SYMBOL(current_umask);
81384
81385 /* to be mentioned only in INIT_TASK */
81386 struct fs_struct init_fs = {
81387 - .users = 1,
81388 + .users = ATOMIC_INIT(1),
81389 .lock = __SPIN_LOCK_UNLOCKED(init_fs.lock),
81390 .seq = SEQCNT_ZERO(init_fs.seq),
81391 .umask = 0022,
81392 diff --git a/fs/fscache/cookie.c b/fs/fscache/cookie.c
81393 index 43040721..2780191 100644
81394 --- a/fs/fscache/cookie.c
81395 +++ b/fs/fscache/cookie.c
81396 @@ -19,7 +19,7 @@
81397
81398 struct kmem_cache *fscache_cookie_jar;
81399
81400 -static atomic_t fscache_object_debug_id = ATOMIC_INIT(0);
81401 +static atomic_unchecked_t fscache_object_debug_id = ATOMIC_INIT(0);
81402
81403 static int fscache_acquire_non_index_cookie(struct fscache_cookie *cookie);
81404 static int fscache_alloc_object(struct fscache_cache *cache,
81405 @@ -69,11 +69,11 @@ struct fscache_cookie *__fscache_acquire_cookie(
81406 parent ? (char *) parent->def->name : "<no-parent>",
81407 def->name, netfs_data, enable);
81408
81409 - fscache_stat(&fscache_n_acquires);
81410 + fscache_stat_unchecked(&fscache_n_acquires);
81411
81412 /* if there's no parent cookie, then we don't create one here either */
81413 if (!parent) {
81414 - fscache_stat(&fscache_n_acquires_null);
81415 + fscache_stat_unchecked(&fscache_n_acquires_null);
81416 _leave(" [no parent]");
81417 return NULL;
81418 }
81419 @@ -88,7 +88,7 @@ struct fscache_cookie *__fscache_acquire_cookie(
81420 /* allocate and initialise a cookie */
81421 cookie = kmem_cache_alloc(fscache_cookie_jar, GFP_KERNEL);
81422 if (!cookie) {
81423 - fscache_stat(&fscache_n_acquires_oom);
81424 + fscache_stat_unchecked(&fscache_n_acquires_oom);
81425 _leave(" [ENOMEM]");
81426 return NULL;
81427 }
81428 @@ -115,13 +115,13 @@ struct fscache_cookie *__fscache_acquire_cookie(
81429
81430 switch (cookie->def->type) {
81431 case FSCACHE_COOKIE_TYPE_INDEX:
81432 - fscache_stat(&fscache_n_cookie_index);
81433 + fscache_stat_unchecked(&fscache_n_cookie_index);
81434 break;
81435 case FSCACHE_COOKIE_TYPE_DATAFILE:
81436 - fscache_stat(&fscache_n_cookie_data);
81437 + fscache_stat_unchecked(&fscache_n_cookie_data);
81438 break;
81439 default:
81440 - fscache_stat(&fscache_n_cookie_special);
81441 + fscache_stat_unchecked(&fscache_n_cookie_special);
81442 break;
81443 }
81444
81445 @@ -135,7 +135,7 @@ struct fscache_cookie *__fscache_acquire_cookie(
81446 } else {
81447 atomic_dec(&parent->n_children);
81448 __fscache_cookie_put(cookie);
81449 - fscache_stat(&fscache_n_acquires_nobufs);
81450 + fscache_stat_unchecked(&fscache_n_acquires_nobufs);
81451 _leave(" = NULL");
81452 return NULL;
81453 }
81454 @@ -144,7 +144,7 @@ struct fscache_cookie *__fscache_acquire_cookie(
81455 }
81456 }
81457
81458 - fscache_stat(&fscache_n_acquires_ok);
81459 + fscache_stat_unchecked(&fscache_n_acquires_ok);
81460 _leave(" = %p", cookie);
81461 return cookie;
81462 }
81463 @@ -213,7 +213,7 @@ static int fscache_acquire_non_index_cookie(struct fscache_cookie *cookie)
81464 cache = fscache_select_cache_for_object(cookie->parent);
81465 if (!cache) {
81466 up_read(&fscache_addremove_sem);
81467 - fscache_stat(&fscache_n_acquires_no_cache);
81468 + fscache_stat_unchecked(&fscache_n_acquires_no_cache);
81469 _leave(" = -ENOMEDIUM [no cache]");
81470 return -ENOMEDIUM;
81471 }
81472 @@ -297,14 +297,14 @@ static int fscache_alloc_object(struct fscache_cache *cache,
81473 object = cache->ops->alloc_object(cache, cookie);
81474 fscache_stat_d(&fscache_n_cop_alloc_object);
81475 if (IS_ERR(object)) {
81476 - fscache_stat(&fscache_n_object_no_alloc);
81477 + fscache_stat_unchecked(&fscache_n_object_no_alloc);
81478 ret = PTR_ERR(object);
81479 goto error;
81480 }
81481
81482 - fscache_stat(&fscache_n_object_alloc);
81483 + fscache_stat_unchecked(&fscache_n_object_alloc);
81484
81485 - object->debug_id = atomic_inc_return(&fscache_object_debug_id);
81486 + object->debug_id = atomic_inc_return_unchecked(&fscache_object_debug_id);
81487
81488 _debug("ALLOC OBJ%x: %s {%lx}",
81489 object->debug_id, cookie->def->name, object->events);
81490 @@ -419,7 +419,7 @@ void __fscache_invalidate(struct fscache_cookie *cookie)
81491
81492 _enter("{%s}", cookie->def->name);
81493
81494 - fscache_stat(&fscache_n_invalidates);
81495 + fscache_stat_unchecked(&fscache_n_invalidates);
81496
81497 /* Only permit invalidation of data files. Invalidating an index will
81498 * require the caller to release all its attachments to the tree rooted
81499 @@ -477,10 +477,10 @@ void __fscache_update_cookie(struct fscache_cookie *cookie)
81500 {
81501 struct fscache_object *object;
81502
81503 - fscache_stat(&fscache_n_updates);
81504 + fscache_stat_unchecked(&fscache_n_updates);
81505
81506 if (!cookie) {
81507 - fscache_stat(&fscache_n_updates_null);
81508 + fscache_stat_unchecked(&fscache_n_updates_null);
81509 _leave(" [no cookie]");
81510 return;
81511 }
81512 @@ -581,12 +581,12 @@ EXPORT_SYMBOL(__fscache_disable_cookie);
81513 */
81514 void __fscache_relinquish_cookie(struct fscache_cookie *cookie, bool retire)
81515 {
81516 - fscache_stat(&fscache_n_relinquishes);
81517 + fscache_stat_unchecked(&fscache_n_relinquishes);
81518 if (retire)
81519 - fscache_stat(&fscache_n_relinquishes_retire);
81520 + fscache_stat_unchecked(&fscache_n_relinquishes_retire);
81521
81522 if (!cookie) {
81523 - fscache_stat(&fscache_n_relinquishes_null);
81524 + fscache_stat_unchecked(&fscache_n_relinquishes_null);
81525 _leave(" [no cookie]");
81526 return;
81527 }
81528 @@ -687,7 +687,7 @@ int __fscache_check_consistency(struct fscache_cookie *cookie)
81529 if (test_bit(FSCACHE_IOERROR, &object->cache->flags))
81530 goto inconsistent;
81531
81532 - op->debug_id = atomic_inc_return(&fscache_op_debug_id);
81533 + op->debug_id = atomic_inc_return_unchecked(&fscache_op_debug_id);
81534
81535 __fscache_use_cookie(cookie);
81536 if (fscache_submit_op(object, op) < 0)
81537 diff --git a/fs/fscache/internal.h b/fs/fscache/internal.h
81538 index 97ec451..f722cee 100644
81539 --- a/fs/fscache/internal.h
81540 +++ b/fs/fscache/internal.h
81541 @@ -136,8 +136,8 @@ extern void fscache_operation_gc(struct work_struct *);
81542 extern int fscache_wait_for_deferred_lookup(struct fscache_cookie *);
81543 extern int fscache_wait_for_operation_activation(struct fscache_object *,
81544 struct fscache_operation *,
81545 - atomic_t *,
81546 - atomic_t *);
81547 + atomic_unchecked_t *,
81548 + atomic_unchecked_t *);
81549 extern void fscache_invalidate_writes(struct fscache_cookie *);
81550
81551 /*
81552 @@ -155,102 +155,102 @@ extern void fscache_proc_cleanup(void);
81553 * stats.c
81554 */
81555 #ifdef CONFIG_FSCACHE_STATS
81556 -extern atomic_t fscache_n_ops_processed[FSCACHE_MAX_THREADS];
81557 -extern atomic_t fscache_n_objs_processed[FSCACHE_MAX_THREADS];
81558 +extern atomic_unchecked_t fscache_n_ops_processed[FSCACHE_MAX_THREADS];
81559 +extern atomic_unchecked_t fscache_n_objs_processed[FSCACHE_MAX_THREADS];
81560
81561 -extern atomic_t fscache_n_op_pend;
81562 -extern atomic_t fscache_n_op_run;
81563 -extern atomic_t fscache_n_op_enqueue;
81564 -extern atomic_t fscache_n_op_deferred_release;
81565 -extern atomic_t fscache_n_op_initialised;
81566 -extern atomic_t fscache_n_op_release;
81567 -extern atomic_t fscache_n_op_gc;
81568 -extern atomic_t fscache_n_op_cancelled;
81569 -extern atomic_t fscache_n_op_rejected;
81570 +extern atomic_unchecked_t fscache_n_op_pend;
81571 +extern atomic_unchecked_t fscache_n_op_run;
81572 +extern atomic_unchecked_t fscache_n_op_enqueue;
81573 +extern atomic_unchecked_t fscache_n_op_deferred_release;
81574 +extern atomic_unchecked_t fscache_n_op_initialised;
81575 +extern atomic_unchecked_t fscache_n_op_release;
81576 +extern atomic_unchecked_t fscache_n_op_gc;
81577 +extern atomic_unchecked_t fscache_n_op_cancelled;
81578 +extern atomic_unchecked_t fscache_n_op_rejected;
81579
81580 -extern atomic_t fscache_n_attr_changed;
81581 -extern atomic_t fscache_n_attr_changed_ok;
81582 -extern atomic_t fscache_n_attr_changed_nobufs;
81583 -extern atomic_t fscache_n_attr_changed_nomem;
81584 -extern atomic_t fscache_n_attr_changed_calls;
81585 +extern atomic_unchecked_t fscache_n_attr_changed;
81586 +extern atomic_unchecked_t fscache_n_attr_changed_ok;
81587 +extern atomic_unchecked_t fscache_n_attr_changed_nobufs;
81588 +extern atomic_unchecked_t fscache_n_attr_changed_nomem;
81589 +extern atomic_unchecked_t fscache_n_attr_changed_calls;
81590
81591 -extern atomic_t fscache_n_allocs;
81592 -extern atomic_t fscache_n_allocs_ok;
81593 -extern atomic_t fscache_n_allocs_wait;
81594 -extern atomic_t fscache_n_allocs_nobufs;
81595 -extern atomic_t fscache_n_allocs_intr;
81596 -extern atomic_t fscache_n_allocs_object_dead;
81597 -extern atomic_t fscache_n_alloc_ops;
81598 -extern atomic_t fscache_n_alloc_op_waits;
81599 +extern atomic_unchecked_t fscache_n_allocs;
81600 +extern atomic_unchecked_t fscache_n_allocs_ok;
81601 +extern atomic_unchecked_t fscache_n_allocs_wait;
81602 +extern atomic_unchecked_t fscache_n_allocs_nobufs;
81603 +extern atomic_unchecked_t fscache_n_allocs_intr;
81604 +extern atomic_unchecked_t fscache_n_allocs_object_dead;
81605 +extern atomic_unchecked_t fscache_n_alloc_ops;
81606 +extern atomic_unchecked_t fscache_n_alloc_op_waits;
81607
81608 -extern atomic_t fscache_n_retrievals;
81609 -extern atomic_t fscache_n_retrievals_ok;
81610 -extern atomic_t fscache_n_retrievals_wait;
81611 -extern atomic_t fscache_n_retrievals_nodata;
81612 -extern atomic_t fscache_n_retrievals_nobufs;
81613 -extern atomic_t fscache_n_retrievals_intr;
81614 -extern atomic_t fscache_n_retrievals_nomem;
81615 -extern atomic_t fscache_n_retrievals_object_dead;
81616 -extern atomic_t fscache_n_retrieval_ops;
81617 -extern atomic_t fscache_n_retrieval_op_waits;
81618 +extern atomic_unchecked_t fscache_n_retrievals;
81619 +extern atomic_unchecked_t fscache_n_retrievals_ok;
81620 +extern atomic_unchecked_t fscache_n_retrievals_wait;
81621 +extern atomic_unchecked_t fscache_n_retrievals_nodata;
81622 +extern atomic_unchecked_t fscache_n_retrievals_nobufs;
81623 +extern atomic_unchecked_t fscache_n_retrievals_intr;
81624 +extern atomic_unchecked_t fscache_n_retrievals_nomem;
81625 +extern atomic_unchecked_t fscache_n_retrievals_object_dead;
81626 +extern atomic_unchecked_t fscache_n_retrieval_ops;
81627 +extern atomic_unchecked_t fscache_n_retrieval_op_waits;
81628
81629 -extern atomic_t fscache_n_stores;
81630 -extern atomic_t fscache_n_stores_ok;
81631 -extern atomic_t fscache_n_stores_again;
81632 -extern atomic_t fscache_n_stores_nobufs;
81633 -extern atomic_t fscache_n_stores_oom;
81634 -extern atomic_t fscache_n_store_ops;
81635 -extern atomic_t fscache_n_store_calls;
81636 -extern atomic_t fscache_n_store_pages;
81637 -extern atomic_t fscache_n_store_radix_deletes;
81638 -extern atomic_t fscache_n_store_pages_over_limit;
81639 +extern atomic_unchecked_t fscache_n_stores;
81640 +extern atomic_unchecked_t fscache_n_stores_ok;
81641 +extern atomic_unchecked_t fscache_n_stores_again;
81642 +extern atomic_unchecked_t fscache_n_stores_nobufs;
81643 +extern atomic_unchecked_t fscache_n_stores_oom;
81644 +extern atomic_unchecked_t fscache_n_store_ops;
81645 +extern atomic_unchecked_t fscache_n_store_calls;
81646 +extern atomic_unchecked_t fscache_n_store_pages;
81647 +extern atomic_unchecked_t fscache_n_store_radix_deletes;
81648 +extern atomic_unchecked_t fscache_n_store_pages_over_limit;
81649
81650 -extern atomic_t fscache_n_store_vmscan_not_storing;
81651 -extern atomic_t fscache_n_store_vmscan_gone;
81652 -extern atomic_t fscache_n_store_vmscan_busy;
81653 -extern atomic_t fscache_n_store_vmscan_cancelled;
81654 -extern atomic_t fscache_n_store_vmscan_wait;
81655 +extern atomic_unchecked_t fscache_n_store_vmscan_not_storing;
81656 +extern atomic_unchecked_t fscache_n_store_vmscan_gone;
81657 +extern atomic_unchecked_t fscache_n_store_vmscan_busy;
81658 +extern atomic_unchecked_t fscache_n_store_vmscan_cancelled;
81659 +extern atomic_unchecked_t fscache_n_store_vmscan_wait;
81660
81661 -extern atomic_t fscache_n_marks;
81662 -extern atomic_t fscache_n_uncaches;
81663 +extern atomic_unchecked_t fscache_n_marks;
81664 +extern atomic_unchecked_t fscache_n_uncaches;
81665
81666 -extern atomic_t fscache_n_acquires;
81667 -extern atomic_t fscache_n_acquires_null;
81668 -extern atomic_t fscache_n_acquires_no_cache;
81669 -extern atomic_t fscache_n_acquires_ok;
81670 -extern atomic_t fscache_n_acquires_nobufs;
81671 -extern atomic_t fscache_n_acquires_oom;
81672 +extern atomic_unchecked_t fscache_n_acquires;
81673 +extern atomic_unchecked_t fscache_n_acquires_null;
81674 +extern atomic_unchecked_t fscache_n_acquires_no_cache;
81675 +extern atomic_unchecked_t fscache_n_acquires_ok;
81676 +extern atomic_unchecked_t fscache_n_acquires_nobufs;
81677 +extern atomic_unchecked_t fscache_n_acquires_oom;
81678
81679 -extern atomic_t fscache_n_invalidates;
81680 -extern atomic_t fscache_n_invalidates_run;
81681 +extern atomic_unchecked_t fscache_n_invalidates;
81682 +extern atomic_unchecked_t fscache_n_invalidates_run;
81683
81684 -extern atomic_t fscache_n_updates;
81685 -extern atomic_t fscache_n_updates_null;
81686 -extern atomic_t fscache_n_updates_run;
81687 +extern atomic_unchecked_t fscache_n_updates;
81688 +extern atomic_unchecked_t fscache_n_updates_null;
81689 +extern atomic_unchecked_t fscache_n_updates_run;
81690
81691 -extern atomic_t fscache_n_relinquishes;
81692 -extern atomic_t fscache_n_relinquishes_null;
81693 -extern atomic_t fscache_n_relinquishes_waitcrt;
81694 -extern atomic_t fscache_n_relinquishes_retire;
81695 +extern atomic_unchecked_t fscache_n_relinquishes;
81696 +extern atomic_unchecked_t fscache_n_relinquishes_null;
81697 +extern atomic_unchecked_t fscache_n_relinquishes_waitcrt;
81698 +extern atomic_unchecked_t fscache_n_relinquishes_retire;
81699
81700 -extern atomic_t fscache_n_cookie_index;
81701 -extern atomic_t fscache_n_cookie_data;
81702 -extern atomic_t fscache_n_cookie_special;
81703 +extern atomic_unchecked_t fscache_n_cookie_index;
81704 +extern atomic_unchecked_t fscache_n_cookie_data;
81705 +extern atomic_unchecked_t fscache_n_cookie_special;
81706
81707 -extern atomic_t fscache_n_object_alloc;
81708 -extern atomic_t fscache_n_object_no_alloc;
81709 -extern atomic_t fscache_n_object_lookups;
81710 -extern atomic_t fscache_n_object_lookups_negative;
81711 -extern atomic_t fscache_n_object_lookups_positive;
81712 -extern atomic_t fscache_n_object_lookups_timed_out;
81713 -extern atomic_t fscache_n_object_created;
81714 -extern atomic_t fscache_n_object_avail;
81715 -extern atomic_t fscache_n_object_dead;
81716 +extern atomic_unchecked_t fscache_n_object_alloc;
81717 +extern atomic_unchecked_t fscache_n_object_no_alloc;
81718 +extern atomic_unchecked_t fscache_n_object_lookups;
81719 +extern atomic_unchecked_t fscache_n_object_lookups_negative;
81720 +extern atomic_unchecked_t fscache_n_object_lookups_positive;
81721 +extern atomic_unchecked_t fscache_n_object_lookups_timed_out;
81722 +extern atomic_unchecked_t fscache_n_object_created;
81723 +extern atomic_unchecked_t fscache_n_object_avail;
81724 +extern atomic_unchecked_t fscache_n_object_dead;
81725
81726 -extern atomic_t fscache_n_checkaux_none;
81727 -extern atomic_t fscache_n_checkaux_okay;
81728 -extern atomic_t fscache_n_checkaux_update;
81729 -extern atomic_t fscache_n_checkaux_obsolete;
81730 +extern atomic_unchecked_t fscache_n_checkaux_none;
81731 +extern atomic_unchecked_t fscache_n_checkaux_okay;
81732 +extern atomic_unchecked_t fscache_n_checkaux_update;
81733 +extern atomic_unchecked_t fscache_n_checkaux_obsolete;
81734
81735 extern atomic_t fscache_n_cop_alloc_object;
81736 extern atomic_t fscache_n_cop_lookup_object;
81737 @@ -280,6 +280,11 @@ static inline void fscache_stat(atomic_t *stat)
81738 atomic_inc(stat);
81739 }
81740
81741 +static inline void fscache_stat_unchecked(atomic_unchecked_t *stat)
81742 +{
81743 + atomic_inc_unchecked(stat);
81744 +}
81745 +
81746 static inline void fscache_stat_d(atomic_t *stat)
81747 {
81748 atomic_dec(stat);
81749 @@ -292,6 +297,7 @@ extern const struct file_operations fscache_stats_fops;
81750
81751 #define __fscache_stat(stat) (NULL)
81752 #define fscache_stat(stat) do {} while (0)
81753 +#define fscache_stat_unchecked(stat) do {} while (0)
81754 #define fscache_stat_d(stat) do {} while (0)
81755 #endif
81756
81757 diff --git a/fs/fscache/object.c b/fs/fscache/object.c
81758 index 9e792e3..6b2affb 100644
81759 --- a/fs/fscache/object.c
81760 +++ b/fs/fscache/object.c
81761 @@ -465,7 +465,7 @@ static const struct fscache_state *fscache_look_up_object(struct fscache_object
81762 _debug("LOOKUP \"%s\" in \"%s\"",
81763 cookie->def->name, object->cache->tag->name);
81764
81765 - fscache_stat(&fscache_n_object_lookups);
81766 + fscache_stat_unchecked(&fscache_n_object_lookups);
81767 fscache_stat(&fscache_n_cop_lookup_object);
81768 ret = object->cache->ops->lookup_object(object);
81769 fscache_stat_d(&fscache_n_cop_lookup_object);
81770 @@ -475,7 +475,7 @@ static const struct fscache_state *fscache_look_up_object(struct fscache_object
81771 if (ret == -ETIMEDOUT) {
81772 /* probably stuck behind another object, so move this one to
81773 * the back of the queue */
81774 - fscache_stat(&fscache_n_object_lookups_timed_out);
81775 + fscache_stat_unchecked(&fscache_n_object_lookups_timed_out);
81776 _leave(" [timeout]");
81777 return NO_TRANSIT;
81778 }
81779 @@ -503,7 +503,7 @@ void fscache_object_lookup_negative(struct fscache_object *object)
81780 _enter("{OBJ%x,%s}", object->debug_id, object->state->name);
81781
81782 if (!test_and_set_bit(FSCACHE_OBJECT_IS_LOOKED_UP, &object->flags)) {
81783 - fscache_stat(&fscache_n_object_lookups_negative);
81784 + fscache_stat_unchecked(&fscache_n_object_lookups_negative);
81785
81786 /* Allow write requests to begin stacking up and read requests to begin
81787 * returning ENODATA.
81788 @@ -538,7 +538,7 @@ void fscache_obtained_object(struct fscache_object *object)
81789 /* if we were still looking up, then we must have a positive lookup
81790 * result, in which case there may be data available */
81791 if (!test_and_set_bit(FSCACHE_OBJECT_IS_LOOKED_UP, &object->flags)) {
81792 - fscache_stat(&fscache_n_object_lookups_positive);
81793 + fscache_stat_unchecked(&fscache_n_object_lookups_positive);
81794
81795 /* We do (presumably) have data */
81796 clear_bit_unlock(FSCACHE_COOKIE_NO_DATA_YET, &cookie->flags);
81797 @@ -550,7 +550,7 @@ void fscache_obtained_object(struct fscache_object *object)
81798 clear_bit_unlock(FSCACHE_COOKIE_LOOKING_UP, &cookie->flags);
81799 wake_up_bit(&cookie->flags, FSCACHE_COOKIE_LOOKING_UP);
81800 } else {
81801 - fscache_stat(&fscache_n_object_created);
81802 + fscache_stat_unchecked(&fscache_n_object_created);
81803 }
81804
81805 set_bit(FSCACHE_OBJECT_IS_AVAILABLE, &object->flags);
81806 @@ -586,7 +586,7 @@ static const struct fscache_state *fscache_object_available(struct fscache_objec
81807 fscache_stat_d(&fscache_n_cop_lookup_complete);
81808
81809 fscache_hist(fscache_obj_instantiate_histogram, object->lookup_jif);
81810 - fscache_stat(&fscache_n_object_avail);
81811 + fscache_stat_unchecked(&fscache_n_object_avail);
81812
81813 _leave("");
81814 return transit_to(JUMPSTART_DEPS);
81815 @@ -735,7 +735,7 @@ static const struct fscache_state *fscache_drop_object(struct fscache_object *ob
81816
81817 /* this just shifts the object release to the work processor */
81818 fscache_put_object(object);
81819 - fscache_stat(&fscache_n_object_dead);
81820 + fscache_stat_unchecked(&fscache_n_object_dead);
81821
81822 _leave("");
81823 return transit_to(OBJECT_DEAD);
81824 @@ -900,7 +900,7 @@ enum fscache_checkaux fscache_check_aux(struct fscache_object *object,
81825 enum fscache_checkaux result;
81826
81827 if (!object->cookie->def->check_aux) {
81828 - fscache_stat(&fscache_n_checkaux_none);
81829 + fscache_stat_unchecked(&fscache_n_checkaux_none);
81830 return FSCACHE_CHECKAUX_OKAY;
81831 }
81832
81833 @@ -909,17 +909,17 @@ enum fscache_checkaux fscache_check_aux(struct fscache_object *object,
81834 switch (result) {
81835 /* entry okay as is */
81836 case FSCACHE_CHECKAUX_OKAY:
81837 - fscache_stat(&fscache_n_checkaux_okay);
81838 + fscache_stat_unchecked(&fscache_n_checkaux_okay);
81839 break;
81840
81841 /* entry requires update */
81842 case FSCACHE_CHECKAUX_NEEDS_UPDATE:
81843 - fscache_stat(&fscache_n_checkaux_update);
81844 + fscache_stat_unchecked(&fscache_n_checkaux_update);
81845 break;
81846
81847 /* entry requires deletion */
81848 case FSCACHE_CHECKAUX_OBSOLETE:
81849 - fscache_stat(&fscache_n_checkaux_obsolete);
81850 + fscache_stat_unchecked(&fscache_n_checkaux_obsolete);
81851 break;
81852
81853 default:
81854 @@ -1007,7 +1007,7 @@ static const struct fscache_state *fscache_invalidate_object(struct fscache_obje
81855 {
81856 const struct fscache_state *s;
81857
81858 - fscache_stat(&fscache_n_invalidates_run);
81859 + fscache_stat_unchecked(&fscache_n_invalidates_run);
81860 fscache_stat(&fscache_n_cop_invalidate_object);
81861 s = _fscache_invalidate_object(object, event);
81862 fscache_stat_d(&fscache_n_cop_invalidate_object);
81863 @@ -1022,7 +1022,7 @@ static const struct fscache_state *fscache_update_object(struct fscache_object *
81864 {
81865 _enter("{OBJ%x},%d", object->debug_id, event);
81866
81867 - fscache_stat(&fscache_n_updates_run);
81868 + fscache_stat_unchecked(&fscache_n_updates_run);
81869 fscache_stat(&fscache_n_cop_update_object);
81870 object->cache->ops->update_object(object);
81871 fscache_stat_d(&fscache_n_cop_update_object);
81872 diff --git a/fs/fscache/operation.c b/fs/fscache/operation.c
81873 index de67745..6a3a9b6 100644
81874 --- a/fs/fscache/operation.c
81875 +++ b/fs/fscache/operation.c
81876 @@ -17,7 +17,7 @@
81877 #include <linux/slab.h>
81878 #include "internal.h"
81879
81880 -atomic_t fscache_op_debug_id;
81881 +atomic_unchecked_t fscache_op_debug_id;
81882 EXPORT_SYMBOL(fscache_op_debug_id);
81883
81884 static void fscache_operation_dummy_cancel(struct fscache_operation *op)
81885 @@ -40,12 +40,12 @@ void fscache_operation_init(struct fscache_operation *op,
81886 INIT_WORK(&op->work, fscache_op_work_func);
81887 atomic_set(&op->usage, 1);
81888 op->state = FSCACHE_OP_ST_INITIALISED;
81889 - op->debug_id = atomic_inc_return(&fscache_op_debug_id);
81890 + op->debug_id = atomic_inc_return_unchecked(&fscache_op_debug_id);
81891 op->processor = processor;
81892 op->cancel = cancel ?: fscache_operation_dummy_cancel;
81893 op->release = release;
81894 INIT_LIST_HEAD(&op->pend_link);
81895 - fscache_stat(&fscache_n_op_initialised);
81896 + fscache_stat_unchecked(&fscache_n_op_initialised);
81897 }
81898 EXPORT_SYMBOL(fscache_operation_init);
81899
81900 @@ -68,7 +68,7 @@ void fscache_enqueue_operation(struct fscache_operation *op)
81901 ASSERTCMP(atomic_read(&op->usage), >, 0);
81902 ASSERTCMP(op->state, ==, FSCACHE_OP_ST_IN_PROGRESS);
81903
81904 - fscache_stat(&fscache_n_op_enqueue);
81905 + fscache_stat_unchecked(&fscache_n_op_enqueue);
81906 switch (op->flags & FSCACHE_OP_TYPE) {
81907 case FSCACHE_OP_ASYNC:
81908 _debug("queue async");
81909 @@ -101,7 +101,7 @@ static void fscache_run_op(struct fscache_object *object,
81910 wake_up_bit(&op->flags, FSCACHE_OP_WAITING);
81911 if (op->processor)
81912 fscache_enqueue_operation(op);
81913 - fscache_stat(&fscache_n_op_run);
81914 + fscache_stat_unchecked(&fscache_n_op_run);
81915 }
81916
81917 /*
81918 @@ -169,7 +169,7 @@ int fscache_submit_exclusive_op(struct fscache_object *object,
81919 op->state = FSCACHE_OP_ST_PENDING;
81920 flags = READ_ONCE(object->flags);
81921 if (unlikely(!(flags & BIT(FSCACHE_OBJECT_IS_LIVE)))) {
81922 - fscache_stat(&fscache_n_op_rejected);
81923 + fscache_stat_unchecked(&fscache_n_op_rejected);
81924 op->cancel(op);
81925 op->state = FSCACHE_OP_ST_CANCELLED;
81926 ret = -ENOBUFS;
81927 @@ -185,11 +185,11 @@ int fscache_submit_exclusive_op(struct fscache_object *object,
81928 if (object->n_in_progress > 0) {
81929 atomic_inc(&op->usage);
81930 list_add_tail(&op->pend_link, &object->pending_ops);
81931 - fscache_stat(&fscache_n_op_pend);
81932 + fscache_stat_unchecked(&fscache_n_op_pend);
81933 } else if (!list_empty(&object->pending_ops)) {
81934 atomic_inc(&op->usage);
81935 list_add_tail(&op->pend_link, &object->pending_ops);
81936 - fscache_stat(&fscache_n_op_pend);
81937 + fscache_stat_unchecked(&fscache_n_op_pend);
81938 fscache_start_operations(object);
81939 } else {
81940 ASSERTCMP(object->n_in_progress, ==, 0);
81941 @@ -205,7 +205,7 @@ int fscache_submit_exclusive_op(struct fscache_object *object,
81942 object->n_exclusive++; /* reads and writes must wait */
81943 atomic_inc(&op->usage);
81944 list_add_tail(&op->pend_link, &object->pending_ops);
81945 - fscache_stat(&fscache_n_op_pend);
81946 + fscache_stat_unchecked(&fscache_n_op_pend);
81947 ret = 0;
81948 } else if (flags & BIT(FSCACHE_OBJECT_KILLED_BY_CACHE)) {
81949 op->cancel(op);
81950 @@ -254,7 +254,7 @@ int fscache_submit_op(struct fscache_object *object,
81951 op->state = FSCACHE_OP_ST_PENDING;
81952 flags = READ_ONCE(object->flags);
81953 if (unlikely(!(flags & BIT(FSCACHE_OBJECT_IS_LIVE)))) {
81954 - fscache_stat(&fscache_n_op_rejected);
81955 + fscache_stat_unchecked(&fscache_n_op_rejected);
81956 op->cancel(op);
81957 op->state = FSCACHE_OP_ST_CANCELLED;
81958 ret = -ENOBUFS;
81959 @@ -269,11 +269,11 @@ int fscache_submit_op(struct fscache_object *object,
81960 if (object->n_exclusive > 0) {
81961 atomic_inc(&op->usage);
81962 list_add_tail(&op->pend_link, &object->pending_ops);
81963 - fscache_stat(&fscache_n_op_pend);
81964 + fscache_stat_unchecked(&fscache_n_op_pend);
81965 } else if (!list_empty(&object->pending_ops)) {
81966 atomic_inc(&op->usage);
81967 list_add_tail(&op->pend_link, &object->pending_ops);
81968 - fscache_stat(&fscache_n_op_pend);
81969 + fscache_stat_unchecked(&fscache_n_op_pend);
81970 fscache_start_operations(object);
81971 } else {
81972 ASSERTCMP(object->n_exclusive, ==, 0);
81973 @@ -285,7 +285,7 @@ int fscache_submit_op(struct fscache_object *object,
81974 object->n_ops++;
81975 atomic_inc(&op->usage);
81976 list_add_tail(&op->pend_link, &object->pending_ops);
81977 - fscache_stat(&fscache_n_op_pend);
81978 + fscache_stat_unchecked(&fscache_n_op_pend);
81979 ret = 0;
81980 } else if (flags & BIT(FSCACHE_OBJECT_KILLED_BY_CACHE)) {
81981 op->cancel(op);
81982 @@ -369,7 +369,7 @@ int fscache_cancel_op(struct fscache_operation *op,
81983 list_del_init(&op->pend_link);
81984 put = true;
81985
81986 - fscache_stat(&fscache_n_op_cancelled);
81987 + fscache_stat_unchecked(&fscache_n_op_cancelled);
81988 op->cancel(op);
81989 op->state = FSCACHE_OP_ST_CANCELLED;
81990 if (test_bit(FSCACHE_OP_EXCLUSIVE, &op->flags))
81991 @@ -385,7 +385,7 @@ int fscache_cancel_op(struct fscache_operation *op,
81992 if (object->n_in_progress == 0)
81993 fscache_start_operations(object);
81994
81995 - fscache_stat(&fscache_n_op_cancelled);
81996 + fscache_stat_unchecked(&fscache_n_op_cancelled);
81997 op->cancel(op);
81998 op->state = FSCACHE_OP_ST_CANCELLED;
81999 if (test_bit(FSCACHE_OP_EXCLUSIVE, &op->flags))
82000 @@ -416,7 +416,7 @@ void fscache_cancel_all_ops(struct fscache_object *object)
82001 while (!list_empty(&object->pending_ops)) {
82002 op = list_entry(object->pending_ops.next,
82003 struct fscache_operation, pend_link);
82004 - fscache_stat(&fscache_n_op_cancelled);
82005 + fscache_stat_unchecked(&fscache_n_op_cancelled);
82006 list_del_init(&op->pend_link);
82007
82008 ASSERTCMP(op->state, ==, FSCACHE_OP_ST_PENDING);
82009 @@ -493,7 +493,7 @@ void fscache_put_operation(struct fscache_operation *op)
82010 op->state != FSCACHE_OP_ST_COMPLETE,
82011 op->state, ==, FSCACHE_OP_ST_CANCELLED);
82012
82013 - fscache_stat(&fscache_n_op_release);
82014 + fscache_stat_unchecked(&fscache_n_op_release);
82015
82016 if (op->release) {
82017 op->release(op);
82018 @@ -513,7 +513,7 @@ void fscache_put_operation(struct fscache_operation *op)
82019 * lock, and defer it otherwise */
82020 if (!spin_trylock(&object->lock)) {
82021 _debug("defer put");
82022 - fscache_stat(&fscache_n_op_deferred_release);
82023 + fscache_stat_unchecked(&fscache_n_op_deferred_release);
82024
82025 cache = object->cache;
82026 spin_lock(&cache->op_gc_list_lock);
82027 @@ -567,7 +567,7 @@ void fscache_operation_gc(struct work_struct *work)
82028
82029 _debug("GC DEFERRED REL OBJ%x OP%x",
82030 object->debug_id, op->debug_id);
82031 - fscache_stat(&fscache_n_op_gc);
82032 + fscache_stat_unchecked(&fscache_n_op_gc);
82033
82034 ASSERTCMP(atomic_read(&op->usage), ==, 0);
82035 ASSERTCMP(op->state, ==, FSCACHE_OP_ST_DEAD);
82036 diff --git a/fs/fscache/page.c b/fs/fscache/page.c
82037 index 6b35fc4..11f393e 100644
82038 --- a/fs/fscache/page.c
82039 +++ b/fs/fscache/page.c
82040 @@ -74,7 +74,7 @@ try_again:
82041 val = radix_tree_lookup(&cookie->stores, page->index);
82042 if (!val) {
82043 rcu_read_unlock();
82044 - fscache_stat(&fscache_n_store_vmscan_not_storing);
82045 + fscache_stat_unchecked(&fscache_n_store_vmscan_not_storing);
82046 __fscache_uncache_page(cookie, page);
82047 return true;
82048 }
82049 @@ -104,11 +104,11 @@ try_again:
82050 spin_unlock(&cookie->stores_lock);
82051
82052 if (xpage) {
82053 - fscache_stat(&fscache_n_store_vmscan_cancelled);
82054 - fscache_stat(&fscache_n_store_radix_deletes);
82055 + fscache_stat_unchecked(&fscache_n_store_vmscan_cancelled);
82056 + fscache_stat_unchecked(&fscache_n_store_radix_deletes);
82057 ASSERTCMP(xpage, ==, page);
82058 } else {
82059 - fscache_stat(&fscache_n_store_vmscan_gone);
82060 + fscache_stat_unchecked(&fscache_n_store_vmscan_gone);
82061 }
82062
82063 wake_up_bit(&cookie->flags, 0);
82064 @@ -123,11 +123,11 @@ page_busy:
82065 * sleeping on memory allocation, so we may need to impose a timeout
82066 * too. */
82067 if (!(gfp & __GFP_DIRECT_RECLAIM) || !(gfp & __GFP_FS)) {
82068 - fscache_stat(&fscache_n_store_vmscan_busy);
82069 + fscache_stat_unchecked(&fscache_n_store_vmscan_busy);
82070 return false;
82071 }
82072
82073 - fscache_stat(&fscache_n_store_vmscan_wait);
82074 + fscache_stat_unchecked(&fscache_n_store_vmscan_wait);
82075 if (!release_page_wait_timeout(cookie, page))
82076 _debug("fscache writeout timeout page: %p{%lx}",
82077 page, page->index);
82078 @@ -156,7 +156,7 @@ static void fscache_end_page_write(struct fscache_object *object,
82079 FSCACHE_COOKIE_STORING_TAG);
82080 if (!radix_tree_tag_get(&cookie->stores, page->index,
82081 FSCACHE_COOKIE_PENDING_TAG)) {
82082 - fscache_stat(&fscache_n_store_radix_deletes);
82083 + fscache_stat_unchecked(&fscache_n_store_radix_deletes);
82084 xpage = radix_tree_delete(&cookie->stores, page->index);
82085 }
82086 spin_unlock(&cookie->stores_lock);
82087 @@ -177,7 +177,7 @@ static void fscache_attr_changed_op(struct fscache_operation *op)
82088
82089 _enter("{OBJ%x OP%x}", object->debug_id, op->debug_id);
82090
82091 - fscache_stat(&fscache_n_attr_changed_calls);
82092 + fscache_stat_unchecked(&fscache_n_attr_changed_calls);
82093
82094 if (fscache_object_is_active(object)) {
82095 fscache_stat(&fscache_n_cop_attr_changed);
82096 @@ -204,11 +204,11 @@ int __fscache_attr_changed(struct fscache_cookie *cookie)
82097
82098 ASSERTCMP(cookie->def->type, !=, FSCACHE_COOKIE_TYPE_INDEX);
82099
82100 - fscache_stat(&fscache_n_attr_changed);
82101 + fscache_stat_unchecked(&fscache_n_attr_changed);
82102
82103 op = kzalloc(sizeof(*op), GFP_KERNEL);
82104 if (!op) {
82105 - fscache_stat(&fscache_n_attr_changed_nomem);
82106 + fscache_stat_unchecked(&fscache_n_attr_changed_nomem);
82107 _leave(" = -ENOMEM");
82108 return -ENOMEM;
82109 }
82110 @@ -230,7 +230,7 @@ int __fscache_attr_changed(struct fscache_cookie *cookie)
82111 if (fscache_submit_exclusive_op(object, op) < 0)
82112 goto nobufs_dec;
82113 spin_unlock(&cookie->lock);
82114 - fscache_stat(&fscache_n_attr_changed_ok);
82115 + fscache_stat_unchecked(&fscache_n_attr_changed_ok);
82116 fscache_put_operation(op);
82117 _leave(" = 0");
82118 return 0;
82119 @@ -242,7 +242,7 @@ nobufs:
82120 fscache_put_operation(op);
82121 if (wake_cookie)
82122 __fscache_wake_unused_cookie(cookie);
82123 - fscache_stat(&fscache_n_attr_changed_nobufs);
82124 + fscache_stat_unchecked(&fscache_n_attr_changed_nobufs);
82125 _leave(" = %d", -ENOBUFS);
82126 return -ENOBUFS;
82127 }
82128 @@ -293,7 +293,7 @@ static struct fscache_retrieval *fscache_alloc_retrieval(
82129 /* allocate a retrieval operation and attempt to submit it */
82130 op = kzalloc(sizeof(*op), GFP_NOIO);
82131 if (!op) {
82132 - fscache_stat(&fscache_n_retrievals_nomem);
82133 + fscache_stat_unchecked(&fscache_n_retrievals_nomem);
82134 return NULL;
82135 }
82136
82137 @@ -332,12 +332,12 @@ int fscache_wait_for_deferred_lookup(struct fscache_cookie *cookie)
82138 return 0;
82139 }
82140
82141 - fscache_stat(&fscache_n_retrievals_wait);
82142 + fscache_stat_unchecked(&fscache_n_retrievals_wait);
82143
82144 jif = jiffies;
82145 if (wait_on_bit(&cookie->flags, FSCACHE_COOKIE_LOOKING_UP,
82146 TASK_INTERRUPTIBLE) != 0) {
82147 - fscache_stat(&fscache_n_retrievals_intr);
82148 + fscache_stat_unchecked(&fscache_n_retrievals_intr);
82149 _leave(" = -ERESTARTSYS");
82150 return -ERESTARTSYS;
82151 }
82152 @@ -355,8 +355,8 @@ int fscache_wait_for_deferred_lookup(struct fscache_cookie *cookie)
82153 */
82154 int fscache_wait_for_operation_activation(struct fscache_object *object,
82155 struct fscache_operation *op,
82156 - atomic_t *stat_op_waits,
82157 - atomic_t *stat_object_dead)
82158 + atomic_unchecked_t *stat_op_waits,
82159 + atomic_unchecked_t *stat_object_dead)
82160 {
82161 int ret;
82162
82163 @@ -365,7 +365,7 @@ int fscache_wait_for_operation_activation(struct fscache_object *object,
82164
82165 _debug(">>> WT");
82166 if (stat_op_waits)
82167 - fscache_stat(stat_op_waits);
82168 + fscache_stat_unchecked(stat_op_waits);
82169 if (wait_on_bit(&op->flags, FSCACHE_OP_WAITING,
82170 TASK_INTERRUPTIBLE) != 0) {
82171 ret = fscache_cancel_op(op, false);
82172 @@ -382,7 +382,7 @@ int fscache_wait_for_operation_activation(struct fscache_object *object,
82173 check_if_dead:
82174 if (op->state == FSCACHE_OP_ST_CANCELLED) {
82175 if (stat_object_dead)
82176 - fscache_stat(stat_object_dead);
82177 + fscache_stat_unchecked(stat_object_dead);
82178 _leave(" = -ENOBUFS [cancelled]");
82179 return -ENOBUFS;
82180 }
82181 @@ -391,7 +391,7 @@ check_if_dead:
82182 enum fscache_operation_state state = op->state;
82183 fscache_cancel_op(op, true);
82184 if (stat_object_dead)
82185 - fscache_stat(stat_object_dead);
82186 + fscache_stat_unchecked(stat_object_dead);
82187 _leave(" = -ENOBUFS [obj dead %d]", state);
82188 return -ENOBUFS;
82189 }
82190 @@ -420,7 +420,7 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
82191
82192 _enter("%p,%p,,,", cookie, page);
82193
82194 - fscache_stat(&fscache_n_retrievals);
82195 + fscache_stat_unchecked(&fscache_n_retrievals);
82196
82197 if (hlist_empty(&cookie->backing_objects))
82198 goto nobufs;
82199 @@ -462,7 +462,7 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
82200 goto nobufs_unlock_dec;
82201 spin_unlock(&cookie->lock);
82202
82203 - fscache_stat(&fscache_n_retrieval_ops);
82204 + fscache_stat_unchecked(&fscache_n_retrieval_ops);
82205
82206 /* we wait for the operation to become active, and then process it
82207 * *here*, in this thread, and not in the thread pool */
82208 @@ -488,15 +488,15 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
82209
82210 error:
82211 if (ret == -ENOMEM)
82212 - fscache_stat(&fscache_n_retrievals_nomem);
82213 + fscache_stat_unchecked(&fscache_n_retrievals_nomem);
82214 else if (ret == -ERESTARTSYS)
82215 - fscache_stat(&fscache_n_retrievals_intr);
82216 + fscache_stat_unchecked(&fscache_n_retrievals_intr);
82217 else if (ret == -ENODATA)
82218 - fscache_stat(&fscache_n_retrievals_nodata);
82219 + fscache_stat_unchecked(&fscache_n_retrievals_nodata);
82220 else if (ret < 0)
82221 - fscache_stat(&fscache_n_retrievals_nobufs);
82222 + fscache_stat_unchecked(&fscache_n_retrievals_nobufs);
82223 else
82224 - fscache_stat(&fscache_n_retrievals_ok);
82225 + fscache_stat_unchecked(&fscache_n_retrievals_ok);
82226
82227 fscache_put_retrieval(op);
82228 _leave(" = %d", ret);
82229 @@ -511,7 +511,7 @@ nobufs_unlock:
82230 __fscache_wake_unused_cookie(cookie);
82231 fscache_put_retrieval(op);
82232 nobufs:
82233 - fscache_stat(&fscache_n_retrievals_nobufs);
82234 + fscache_stat_unchecked(&fscache_n_retrievals_nobufs);
82235 _leave(" = -ENOBUFS");
82236 return -ENOBUFS;
82237 }
82238 @@ -550,7 +550,7 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
82239
82240 _enter("%p,,%d,,,", cookie, *nr_pages);
82241
82242 - fscache_stat(&fscache_n_retrievals);
82243 + fscache_stat_unchecked(&fscache_n_retrievals);
82244
82245 if (hlist_empty(&cookie->backing_objects))
82246 goto nobufs;
82247 @@ -588,7 +588,7 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
82248 goto nobufs_unlock_dec;
82249 spin_unlock(&cookie->lock);
82250
82251 - fscache_stat(&fscache_n_retrieval_ops);
82252 + fscache_stat_unchecked(&fscache_n_retrieval_ops);
82253
82254 /* we wait for the operation to become active, and then process it
82255 * *here*, in this thread, and not in the thread pool */
82256 @@ -614,15 +614,15 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
82257
82258 error:
82259 if (ret == -ENOMEM)
82260 - fscache_stat(&fscache_n_retrievals_nomem);
82261 + fscache_stat_unchecked(&fscache_n_retrievals_nomem);
82262 else if (ret == -ERESTARTSYS)
82263 - fscache_stat(&fscache_n_retrievals_intr);
82264 + fscache_stat_unchecked(&fscache_n_retrievals_intr);
82265 else if (ret == -ENODATA)
82266 - fscache_stat(&fscache_n_retrievals_nodata);
82267 + fscache_stat_unchecked(&fscache_n_retrievals_nodata);
82268 else if (ret < 0)
82269 - fscache_stat(&fscache_n_retrievals_nobufs);
82270 + fscache_stat_unchecked(&fscache_n_retrievals_nobufs);
82271 else
82272 - fscache_stat(&fscache_n_retrievals_ok);
82273 + fscache_stat_unchecked(&fscache_n_retrievals_ok);
82274
82275 fscache_put_retrieval(op);
82276 _leave(" = %d", ret);
82277 @@ -637,7 +637,7 @@ nobufs_unlock:
82278 if (wake_cookie)
82279 __fscache_wake_unused_cookie(cookie);
82280 nobufs:
82281 - fscache_stat(&fscache_n_retrievals_nobufs);
82282 + fscache_stat_unchecked(&fscache_n_retrievals_nobufs);
82283 _leave(" = -ENOBUFS");
82284 return -ENOBUFS;
82285 }
82286 @@ -662,7 +662,7 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
82287
82288 _enter("%p,%p,,,", cookie, page);
82289
82290 - fscache_stat(&fscache_n_allocs);
82291 + fscache_stat_unchecked(&fscache_n_allocs);
82292
82293 if (hlist_empty(&cookie->backing_objects))
82294 goto nobufs;
82295 @@ -696,7 +696,7 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
82296 goto nobufs_unlock_dec;
82297 spin_unlock(&cookie->lock);
82298
82299 - fscache_stat(&fscache_n_alloc_ops);
82300 + fscache_stat_unchecked(&fscache_n_alloc_ops);
82301
82302 ret = fscache_wait_for_operation_activation(
82303 object, &op->op,
82304 @@ -712,11 +712,11 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
82305
82306 error:
82307 if (ret == -ERESTARTSYS)
82308 - fscache_stat(&fscache_n_allocs_intr);
82309 + fscache_stat_unchecked(&fscache_n_allocs_intr);
82310 else if (ret < 0)
82311 - fscache_stat(&fscache_n_allocs_nobufs);
82312 + fscache_stat_unchecked(&fscache_n_allocs_nobufs);
82313 else
82314 - fscache_stat(&fscache_n_allocs_ok);
82315 + fscache_stat_unchecked(&fscache_n_allocs_ok);
82316
82317 fscache_put_retrieval(op);
82318 _leave(" = %d", ret);
82319 @@ -730,7 +730,7 @@ nobufs_unlock:
82320 if (wake_cookie)
82321 __fscache_wake_unused_cookie(cookie);
82322 nobufs:
82323 - fscache_stat(&fscache_n_allocs_nobufs);
82324 + fscache_stat_unchecked(&fscache_n_allocs_nobufs);
82325 _leave(" = -ENOBUFS");
82326 return -ENOBUFS;
82327 }
82328 @@ -806,7 +806,7 @@ static void fscache_write_op(struct fscache_operation *_op)
82329
82330 spin_lock(&cookie->stores_lock);
82331
82332 - fscache_stat(&fscache_n_store_calls);
82333 + fscache_stat_unchecked(&fscache_n_store_calls);
82334
82335 /* find a page to store */
82336 page = NULL;
82337 @@ -817,7 +817,7 @@ static void fscache_write_op(struct fscache_operation *_op)
82338 page = results[0];
82339 _debug("gang %d [%lx]", n, page->index);
82340 if (page->index >= op->store_limit) {
82341 - fscache_stat(&fscache_n_store_pages_over_limit);
82342 + fscache_stat_unchecked(&fscache_n_store_pages_over_limit);
82343 goto superseded;
82344 }
82345
82346 @@ -829,7 +829,7 @@ static void fscache_write_op(struct fscache_operation *_op)
82347 spin_unlock(&cookie->stores_lock);
82348 spin_unlock(&object->lock);
82349
82350 - fscache_stat(&fscache_n_store_pages);
82351 + fscache_stat_unchecked(&fscache_n_store_pages);
82352 fscache_stat(&fscache_n_cop_write_page);
82353 ret = object->cache->ops->write_page(op, page);
82354 fscache_stat_d(&fscache_n_cop_write_page);
82355 @@ -933,7 +933,7 @@ int __fscache_write_page(struct fscache_cookie *cookie,
82356 ASSERTCMP(cookie->def->type, !=, FSCACHE_COOKIE_TYPE_INDEX);
82357 ASSERT(PageFsCache(page));
82358
82359 - fscache_stat(&fscache_n_stores);
82360 + fscache_stat_unchecked(&fscache_n_stores);
82361
82362 if (test_bit(FSCACHE_COOKIE_INVALIDATING, &cookie->flags)) {
82363 _leave(" = -ENOBUFS [invalidating]");
82364 @@ -992,7 +992,7 @@ int __fscache_write_page(struct fscache_cookie *cookie,
82365 spin_unlock(&cookie->stores_lock);
82366 spin_unlock(&object->lock);
82367
82368 - op->op.debug_id = atomic_inc_return(&fscache_op_debug_id);
82369 + op->op.debug_id = atomic_inc_return_unchecked(&fscache_op_debug_id);
82370 op->store_limit = object->store_limit;
82371
82372 __fscache_use_cookie(cookie);
82373 @@ -1001,8 +1001,8 @@ int __fscache_write_page(struct fscache_cookie *cookie,
82374
82375 spin_unlock(&cookie->lock);
82376 radix_tree_preload_end();
82377 - fscache_stat(&fscache_n_store_ops);
82378 - fscache_stat(&fscache_n_stores_ok);
82379 + fscache_stat_unchecked(&fscache_n_store_ops);
82380 + fscache_stat_unchecked(&fscache_n_stores_ok);
82381
82382 /* the work queue now carries its own ref on the object */
82383 fscache_put_operation(&op->op);
82384 @@ -1010,14 +1010,14 @@ int __fscache_write_page(struct fscache_cookie *cookie,
82385 return 0;
82386
82387 already_queued:
82388 - fscache_stat(&fscache_n_stores_again);
82389 + fscache_stat_unchecked(&fscache_n_stores_again);
82390 already_pending:
82391 spin_unlock(&cookie->stores_lock);
82392 spin_unlock(&object->lock);
82393 spin_unlock(&cookie->lock);
82394 radix_tree_preload_end();
82395 fscache_put_operation(&op->op);
82396 - fscache_stat(&fscache_n_stores_ok);
82397 + fscache_stat_unchecked(&fscache_n_stores_ok);
82398 _leave(" = 0");
82399 return 0;
82400
82401 @@ -1039,14 +1039,14 @@ nobufs:
82402 fscache_put_operation(&op->op);
82403 if (wake_cookie)
82404 __fscache_wake_unused_cookie(cookie);
82405 - fscache_stat(&fscache_n_stores_nobufs);
82406 + fscache_stat_unchecked(&fscache_n_stores_nobufs);
82407 _leave(" = -ENOBUFS");
82408 return -ENOBUFS;
82409
82410 nomem_free:
82411 fscache_put_operation(&op->op);
82412 nomem:
82413 - fscache_stat(&fscache_n_stores_oom);
82414 + fscache_stat_unchecked(&fscache_n_stores_oom);
82415 _leave(" = -ENOMEM");
82416 return -ENOMEM;
82417 }
82418 @@ -1064,7 +1064,7 @@ void __fscache_uncache_page(struct fscache_cookie *cookie, struct page *page)
82419 ASSERTCMP(cookie->def->type, !=, FSCACHE_COOKIE_TYPE_INDEX);
82420 ASSERTCMP(page, !=, NULL);
82421
82422 - fscache_stat(&fscache_n_uncaches);
82423 + fscache_stat_unchecked(&fscache_n_uncaches);
82424
82425 /* cache withdrawal may beat us to it */
82426 if (!PageFsCache(page))
82427 @@ -1115,7 +1115,7 @@ void fscache_mark_page_cached(struct fscache_retrieval *op, struct page *page)
82428 struct fscache_cookie *cookie = op->op.object->cookie;
82429
82430 #ifdef CONFIG_FSCACHE_STATS
82431 - atomic_inc(&fscache_n_marks);
82432 + atomic_inc_unchecked(&fscache_n_marks);
82433 #endif
82434
82435 _debug("- mark %p{%lx}", page, page->index);
82436 diff --git a/fs/fscache/stats.c b/fs/fscache/stats.c
82437 index 7cfa0aa..d5ef97b7 100644
82438 --- a/fs/fscache/stats.c
82439 +++ b/fs/fscache/stats.c
82440 @@ -18,100 +18,100 @@
82441 /*
82442 * operation counters
82443 */
82444 -atomic_t fscache_n_op_pend;
82445 -atomic_t fscache_n_op_run;
82446 -atomic_t fscache_n_op_enqueue;
82447 -atomic_t fscache_n_op_requeue;
82448 -atomic_t fscache_n_op_deferred_release;
82449 -atomic_t fscache_n_op_initialised;
82450 -atomic_t fscache_n_op_release;
82451 -atomic_t fscache_n_op_gc;
82452 -atomic_t fscache_n_op_cancelled;
82453 -atomic_t fscache_n_op_rejected;
82454 +atomic_unchecked_t fscache_n_op_pend;
82455 +atomic_unchecked_t fscache_n_op_run;
82456 +atomic_unchecked_t fscache_n_op_enqueue;
82457 +atomic_unchecked_t fscache_n_op_requeue;
82458 +atomic_unchecked_t fscache_n_op_deferred_release;
82459 +atomic_unchecked_t fscache_n_op_initialised;
82460 +atomic_unchecked_t fscache_n_op_release;
82461 +atomic_unchecked_t fscache_n_op_gc;
82462 +atomic_unchecked_t fscache_n_op_cancelled;
82463 +atomic_unchecked_t fscache_n_op_rejected;
82464
82465 -atomic_t fscache_n_attr_changed;
82466 -atomic_t fscache_n_attr_changed_ok;
82467 -atomic_t fscache_n_attr_changed_nobufs;
82468 -atomic_t fscache_n_attr_changed_nomem;
82469 -atomic_t fscache_n_attr_changed_calls;
82470 +atomic_unchecked_t fscache_n_attr_changed;
82471 +atomic_unchecked_t fscache_n_attr_changed_ok;
82472 +atomic_unchecked_t fscache_n_attr_changed_nobufs;
82473 +atomic_unchecked_t fscache_n_attr_changed_nomem;
82474 +atomic_unchecked_t fscache_n_attr_changed_calls;
82475
82476 -atomic_t fscache_n_allocs;
82477 -atomic_t fscache_n_allocs_ok;
82478 -atomic_t fscache_n_allocs_wait;
82479 -atomic_t fscache_n_allocs_nobufs;
82480 -atomic_t fscache_n_allocs_intr;
82481 -atomic_t fscache_n_allocs_object_dead;
82482 -atomic_t fscache_n_alloc_ops;
82483 -atomic_t fscache_n_alloc_op_waits;
82484 +atomic_unchecked_t fscache_n_allocs;
82485 +atomic_unchecked_t fscache_n_allocs_ok;
82486 +atomic_unchecked_t fscache_n_allocs_wait;
82487 +atomic_unchecked_t fscache_n_allocs_nobufs;
82488 +atomic_unchecked_t fscache_n_allocs_intr;
82489 +atomic_unchecked_t fscache_n_allocs_object_dead;
82490 +atomic_unchecked_t fscache_n_alloc_ops;
82491 +atomic_unchecked_t fscache_n_alloc_op_waits;
82492
82493 -atomic_t fscache_n_retrievals;
82494 -atomic_t fscache_n_retrievals_ok;
82495 -atomic_t fscache_n_retrievals_wait;
82496 -atomic_t fscache_n_retrievals_nodata;
82497 -atomic_t fscache_n_retrievals_nobufs;
82498 -atomic_t fscache_n_retrievals_intr;
82499 -atomic_t fscache_n_retrievals_nomem;
82500 -atomic_t fscache_n_retrievals_object_dead;
82501 -atomic_t fscache_n_retrieval_ops;
82502 -atomic_t fscache_n_retrieval_op_waits;
82503 +atomic_unchecked_t fscache_n_retrievals;
82504 +atomic_unchecked_t fscache_n_retrievals_ok;
82505 +atomic_unchecked_t fscache_n_retrievals_wait;
82506 +atomic_unchecked_t fscache_n_retrievals_nodata;
82507 +atomic_unchecked_t fscache_n_retrievals_nobufs;
82508 +atomic_unchecked_t fscache_n_retrievals_intr;
82509 +atomic_unchecked_t fscache_n_retrievals_nomem;
82510 +atomic_unchecked_t fscache_n_retrievals_object_dead;
82511 +atomic_unchecked_t fscache_n_retrieval_ops;
82512 +atomic_unchecked_t fscache_n_retrieval_op_waits;
82513
82514 -atomic_t fscache_n_stores;
82515 -atomic_t fscache_n_stores_ok;
82516 -atomic_t fscache_n_stores_again;
82517 -atomic_t fscache_n_stores_nobufs;
82518 -atomic_t fscache_n_stores_oom;
82519 -atomic_t fscache_n_store_ops;
82520 -atomic_t fscache_n_store_calls;
82521 -atomic_t fscache_n_store_pages;
82522 -atomic_t fscache_n_store_radix_deletes;
82523 -atomic_t fscache_n_store_pages_over_limit;
82524 +atomic_unchecked_t fscache_n_stores;
82525 +atomic_unchecked_t fscache_n_stores_ok;
82526 +atomic_unchecked_t fscache_n_stores_again;
82527 +atomic_unchecked_t fscache_n_stores_nobufs;
82528 +atomic_unchecked_t fscache_n_stores_oom;
82529 +atomic_unchecked_t fscache_n_store_ops;
82530 +atomic_unchecked_t fscache_n_store_calls;
82531 +atomic_unchecked_t fscache_n_store_pages;
82532 +atomic_unchecked_t fscache_n_store_radix_deletes;
82533 +atomic_unchecked_t fscache_n_store_pages_over_limit;
82534
82535 -atomic_t fscache_n_store_vmscan_not_storing;
82536 -atomic_t fscache_n_store_vmscan_gone;
82537 -atomic_t fscache_n_store_vmscan_busy;
82538 -atomic_t fscache_n_store_vmscan_cancelled;
82539 -atomic_t fscache_n_store_vmscan_wait;
82540 +atomic_unchecked_t fscache_n_store_vmscan_not_storing;
82541 +atomic_unchecked_t fscache_n_store_vmscan_gone;
82542 +atomic_unchecked_t fscache_n_store_vmscan_busy;
82543 +atomic_unchecked_t fscache_n_store_vmscan_cancelled;
82544 +atomic_unchecked_t fscache_n_store_vmscan_wait;
82545
82546 -atomic_t fscache_n_marks;
82547 -atomic_t fscache_n_uncaches;
82548 +atomic_unchecked_t fscache_n_marks;
82549 +atomic_unchecked_t fscache_n_uncaches;
82550
82551 -atomic_t fscache_n_acquires;
82552 -atomic_t fscache_n_acquires_null;
82553 -atomic_t fscache_n_acquires_no_cache;
82554 -atomic_t fscache_n_acquires_ok;
82555 -atomic_t fscache_n_acquires_nobufs;
82556 -atomic_t fscache_n_acquires_oom;
82557 +atomic_unchecked_t fscache_n_acquires;
82558 +atomic_unchecked_t fscache_n_acquires_null;
82559 +atomic_unchecked_t fscache_n_acquires_no_cache;
82560 +atomic_unchecked_t fscache_n_acquires_ok;
82561 +atomic_unchecked_t fscache_n_acquires_nobufs;
82562 +atomic_unchecked_t fscache_n_acquires_oom;
82563
82564 -atomic_t fscache_n_invalidates;
82565 -atomic_t fscache_n_invalidates_run;
82566 +atomic_unchecked_t fscache_n_invalidates;
82567 +atomic_unchecked_t fscache_n_invalidates_run;
82568
82569 -atomic_t fscache_n_updates;
82570 -atomic_t fscache_n_updates_null;
82571 -atomic_t fscache_n_updates_run;
82572 +atomic_unchecked_t fscache_n_updates;
82573 +atomic_unchecked_t fscache_n_updates_null;
82574 +atomic_unchecked_t fscache_n_updates_run;
82575
82576 -atomic_t fscache_n_relinquishes;
82577 -atomic_t fscache_n_relinquishes_null;
82578 -atomic_t fscache_n_relinquishes_waitcrt;
82579 -atomic_t fscache_n_relinquishes_retire;
82580 +atomic_unchecked_t fscache_n_relinquishes;
82581 +atomic_unchecked_t fscache_n_relinquishes_null;
82582 +atomic_unchecked_t fscache_n_relinquishes_waitcrt;
82583 +atomic_unchecked_t fscache_n_relinquishes_retire;
82584
82585 -atomic_t fscache_n_cookie_index;
82586 -atomic_t fscache_n_cookie_data;
82587 -atomic_t fscache_n_cookie_special;
82588 +atomic_unchecked_t fscache_n_cookie_index;
82589 +atomic_unchecked_t fscache_n_cookie_data;
82590 +atomic_unchecked_t fscache_n_cookie_special;
82591
82592 -atomic_t fscache_n_object_alloc;
82593 -atomic_t fscache_n_object_no_alloc;
82594 -atomic_t fscache_n_object_lookups;
82595 -atomic_t fscache_n_object_lookups_negative;
82596 -atomic_t fscache_n_object_lookups_positive;
82597 -atomic_t fscache_n_object_lookups_timed_out;
82598 -atomic_t fscache_n_object_created;
82599 -atomic_t fscache_n_object_avail;
82600 -atomic_t fscache_n_object_dead;
82601 +atomic_unchecked_t fscache_n_object_alloc;
82602 +atomic_unchecked_t fscache_n_object_no_alloc;
82603 +atomic_unchecked_t fscache_n_object_lookups;
82604 +atomic_unchecked_t fscache_n_object_lookups_negative;
82605 +atomic_unchecked_t fscache_n_object_lookups_positive;
82606 +atomic_unchecked_t fscache_n_object_lookups_timed_out;
82607 +atomic_unchecked_t fscache_n_object_created;
82608 +atomic_unchecked_t fscache_n_object_avail;
82609 +atomic_unchecked_t fscache_n_object_dead;
82610
82611 -atomic_t fscache_n_checkaux_none;
82612 -atomic_t fscache_n_checkaux_okay;
82613 -atomic_t fscache_n_checkaux_update;
82614 -atomic_t fscache_n_checkaux_obsolete;
82615 +atomic_unchecked_t fscache_n_checkaux_none;
82616 +atomic_unchecked_t fscache_n_checkaux_okay;
82617 +atomic_unchecked_t fscache_n_checkaux_update;
82618 +atomic_unchecked_t fscache_n_checkaux_obsolete;
82619
82620 atomic_t fscache_n_cop_alloc_object;
82621 atomic_t fscache_n_cop_lookup_object;
82622 @@ -144,119 +144,119 @@ static int fscache_stats_show(struct seq_file *m, void *v)
82623 seq_puts(m, "FS-Cache statistics\n");
82624
82625 seq_printf(m, "Cookies: idx=%u dat=%u spc=%u\n",
82626 - atomic_read(&fscache_n_cookie_index),
82627 - atomic_read(&fscache_n_cookie_data),
82628 - atomic_read(&fscache_n_cookie_special));
82629 + atomic_read_unchecked(&fscache_n_cookie_index),
82630 + atomic_read_unchecked(&fscache_n_cookie_data),
82631 + atomic_read_unchecked(&fscache_n_cookie_special));
82632
82633 seq_printf(m, "Objects: alc=%u nal=%u avl=%u ded=%u\n",
82634 - atomic_read(&fscache_n_object_alloc),
82635 - atomic_read(&fscache_n_object_no_alloc),
82636 - atomic_read(&fscache_n_object_avail),
82637 - atomic_read(&fscache_n_object_dead));
82638 + atomic_read_unchecked(&fscache_n_object_alloc),
82639 + atomic_read_unchecked(&fscache_n_object_no_alloc),
82640 + atomic_read_unchecked(&fscache_n_object_avail),
82641 + atomic_read_unchecked(&fscache_n_object_dead));
82642 seq_printf(m, "ChkAux : non=%u ok=%u upd=%u obs=%u\n",
82643 - atomic_read(&fscache_n_checkaux_none),
82644 - atomic_read(&fscache_n_checkaux_okay),
82645 - atomic_read(&fscache_n_checkaux_update),
82646 - atomic_read(&fscache_n_checkaux_obsolete));
82647 + atomic_read_unchecked(&fscache_n_checkaux_none),
82648 + atomic_read_unchecked(&fscache_n_checkaux_okay),
82649 + atomic_read_unchecked(&fscache_n_checkaux_update),
82650 + atomic_read_unchecked(&fscache_n_checkaux_obsolete));
82651
82652 seq_printf(m, "Pages : mrk=%u unc=%u\n",
82653 - atomic_read(&fscache_n_marks),
82654 - atomic_read(&fscache_n_uncaches));
82655 + atomic_read_unchecked(&fscache_n_marks),
82656 + atomic_read_unchecked(&fscache_n_uncaches));
82657
82658 seq_printf(m, "Acquire: n=%u nul=%u noc=%u ok=%u nbf=%u"
82659 " oom=%u\n",
82660 - atomic_read(&fscache_n_acquires),
82661 - atomic_read(&fscache_n_acquires_null),
82662 - atomic_read(&fscache_n_acquires_no_cache),
82663 - atomic_read(&fscache_n_acquires_ok),
82664 - atomic_read(&fscache_n_acquires_nobufs),
82665 - atomic_read(&fscache_n_acquires_oom));
82666 + atomic_read_unchecked(&fscache_n_acquires),
82667 + atomic_read_unchecked(&fscache_n_acquires_null),
82668 + atomic_read_unchecked(&fscache_n_acquires_no_cache),
82669 + atomic_read_unchecked(&fscache_n_acquires_ok),
82670 + atomic_read_unchecked(&fscache_n_acquires_nobufs),
82671 + atomic_read_unchecked(&fscache_n_acquires_oom));
82672
82673 seq_printf(m, "Lookups: n=%u neg=%u pos=%u crt=%u tmo=%u\n",
82674 - atomic_read(&fscache_n_object_lookups),
82675 - atomic_read(&fscache_n_object_lookups_negative),
82676 - atomic_read(&fscache_n_object_lookups_positive),
82677 - atomic_read(&fscache_n_object_created),
82678 - atomic_read(&fscache_n_object_lookups_timed_out));
82679 + atomic_read_unchecked(&fscache_n_object_lookups),
82680 + atomic_read_unchecked(&fscache_n_object_lookups_negative),
82681 + atomic_read_unchecked(&fscache_n_object_lookups_positive),
82682 + atomic_read_unchecked(&fscache_n_object_created),
82683 + atomic_read_unchecked(&fscache_n_object_lookups_timed_out));
82684
82685 seq_printf(m, "Invals : n=%u run=%u\n",
82686 - atomic_read(&fscache_n_invalidates),
82687 - atomic_read(&fscache_n_invalidates_run));
82688 + atomic_read_unchecked(&fscache_n_invalidates),
82689 + atomic_read_unchecked(&fscache_n_invalidates_run));
82690
82691 seq_printf(m, "Updates: n=%u nul=%u run=%u\n",
82692 - atomic_read(&fscache_n_updates),
82693 - atomic_read(&fscache_n_updates_null),
82694 - atomic_read(&fscache_n_updates_run));
82695 + atomic_read_unchecked(&fscache_n_updates),
82696 + atomic_read_unchecked(&fscache_n_updates_null),
82697 + atomic_read_unchecked(&fscache_n_updates_run));
82698
82699 seq_printf(m, "Relinqs: n=%u nul=%u wcr=%u rtr=%u\n",
82700 - atomic_read(&fscache_n_relinquishes),
82701 - atomic_read(&fscache_n_relinquishes_null),
82702 - atomic_read(&fscache_n_relinquishes_waitcrt),
82703 - atomic_read(&fscache_n_relinquishes_retire));
82704 + atomic_read_unchecked(&fscache_n_relinquishes),
82705 + atomic_read_unchecked(&fscache_n_relinquishes_null),
82706 + atomic_read_unchecked(&fscache_n_relinquishes_waitcrt),
82707 + atomic_read_unchecked(&fscache_n_relinquishes_retire));
82708
82709 seq_printf(m, "AttrChg: n=%u ok=%u nbf=%u oom=%u run=%u\n",
82710 - atomic_read(&fscache_n_attr_changed),
82711 - atomic_read(&fscache_n_attr_changed_ok),
82712 - atomic_read(&fscache_n_attr_changed_nobufs),
82713 - atomic_read(&fscache_n_attr_changed_nomem),
82714 - atomic_read(&fscache_n_attr_changed_calls));
82715 + atomic_read_unchecked(&fscache_n_attr_changed),
82716 + atomic_read_unchecked(&fscache_n_attr_changed_ok),
82717 + atomic_read_unchecked(&fscache_n_attr_changed_nobufs),
82718 + atomic_read_unchecked(&fscache_n_attr_changed_nomem),
82719 + atomic_read_unchecked(&fscache_n_attr_changed_calls));
82720
82721 seq_printf(m, "Allocs : n=%u ok=%u wt=%u nbf=%u int=%u\n",
82722 - atomic_read(&fscache_n_allocs),
82723 - atomic_read(&fscache_n_allocs_ok),
82724 - atomic_read(&fscache_n_allocs_wait),
82725 - atomic_read(&fscache_n_allocs_nobufs),
82726 - atomic_read(&fscache_n_allocs_intr));
82727 + atomic_read_unchecked(&fscache_n_allocs),
82728 + atomic_read_unchecked(&fscache_n_allocs_ok),
82729 + atomic_read_unchecked(&fscache_n_allocs_wait),
82730 + atomic_read_unchecked(&fscache_n_allocs_nobufs),
82731 + atomic_read_unchecked(&fscache_n_allocs_intr));
82732 seq_printf(m, "Allocs : ops=%u owt=%u abt=%u\n",
82733 - atomic_read(&fscache_n_alloc_ops),
82734 - atomic_read(&fscache_n_alloc_op_waits),
82735 - atomic_read(&fscache_n_allocs_object_dead));
82736 + atomic_read_unchecked(&fscache_n_alloc_ops),
82737 + atomic_read_unchecked(&fscache_n_alloc_op_waits),
82738 + atomic_read_unchecked(&fscache_n_allocs_object_dead));
82739
82740 seq_printf(m, "Retrvls: n=%u ok=%u wt=%u nod=%u nbf=%u"
82741 " int=%u oom=%u\n",
82742 - atomic_read(&fscache_n_retrievals),
82743 - atomic_read(&fscache_n_retrievals_ok),
82744 - atomic_read(&fscache_n_retrievals_wait),
82745 - atomic_read(&fscache_n_retrievals_nodata),
82746 - atomic_read(&fscache_n_retrievals_nobufs),
82747 - atomic_read(&fscache_n_retrievals_intr),
82748 - atomic_read(&fscache_n_retrievals_nomem));
82749 + atomic_read_unchecked(&fscache_n_retrievals),
82750 + atomic_read_unchecked(&fscache_n_retrievals_ok),
82751 + atomic_read_unchecked(&fscache_n_retrievals_wait),
82752 + atomic_read_unchecked(&fscache_n_retrievals_nodata),
82753 + atomic_read_unchecked(&fscache_n_retrievals_nobufs),
82754 + atomic_read_unchecked(&fscache_n_retrievals_intr),
82755 + atomic_read_unchecked(&fscache_n_retrievals_nomem));
82756 seq_printf(m, "Retrvls: ops=%u owt=%u abt=%u\n",
82757 - atomic_read(&fscache_n_retrieval_ops),
82758 - atomic_read(&fscache_n_retrieval_op_waits),
82759 - atomic_read(&fscache_n_retrievals_object_dead));
82760 + atomic_read_unchecked(&fscache_n_retrieval_ops),
82761 + atomic_read_unchecked(&fscache_n_retrieval_op_waits),
82762 + atomic_read_unchecked(&fscache_n_retrievals_object_dead));
82763
82764 seq_printf(m, "Stores : n=%u ok=%u agn=%u nbf=%u oom=%u\n",
82765 - atomic_read(&fscache_n_stores),
82766 - atomic_read(&fscache_n_stores_ok),
82767 - atomic_read(&fscache_n_stores_again),
82768 - atomic_read(&fscache_n_stores_nobufs),
82769 - atomic_read(&fscache_n_stores_oom));
82770 + atomic_read_unchecked(&fscache_n_stores),
82771 + atomic_read_unchecked(&fscache_n_stores_ok),
82772 + atomic_read_unchecked(&fscache_n_stores_again),
82773 + atomic_read_unchecked(&fscache_n_stores_nobufs),
82774 + atomic_read_unchecked(&fscache_n_stores_oom));
82775 seq_printf(m, "Stores : ops=%u run=%u pgs=%u rxd=%u olm=%u\n",
82776 - atomic_read(&fscache_n_store_ops),
82777 - atomic_read(&fscache_n_store_calls),
82778 - atomic_read(&fscache_n_store_pages),
82779 - atomic_read(&fscache_n_store_radix_deletes),
82780 - atomic_read(&fscache_n_store_pages_over_limit));
82781 + atomic_read_unchecked(&fscache_n_store_ops),
82782 + atomic_read_unchecked(&fscache_n_store_calls),
82783 + atomic_read_unchecked(&fscache_n_store_pages),
82784 + atomic_read_unchecked(&fscache_n_store_radix_deletes),
82785 + atomic_read_unchecked(&fscache_n_store_pages_over_limit));
82786
82787 seq_printf(m, "VmScan : nos=%u gon=%u bsy=%u can=%u wt=%u\n",
82788 - atomic_read(&fscache_n_store_vmscan_not_storing),
82789 - atomic_read(&fscache_n_store_vmscan_gone),
82790 - atomic_read(&fscache_n_store_vmscan_busy),
82791 - atomic_read(&fscache_n_store_vmscan_cancelled),
82792 - atomic_read(&fscache_n_store_vmscan_wait));
82793 + atomic_read_unchecked(&fscache_n_store_vmscan_not_storing),
82794 + atomic_read_unchecked(&fscache_n_store_vmscan_gone),
82795 + atomic_read_unchecked(&fscache_n_store_vmscan_busy),
82796 + atomic_read_unchecked(&fscache_n_store_vmscan_cancelled),
82797 + atomic_read_unchecked(&fscache_n_store_vmscan_wait));
82798
82799 seq_printf(m, "Ops : pend=%u run=%u enq=%u can=%u rej=%u\n",
82800 - atomic_read(&fscache_n_op_pend),
82801 - atomic_read(&fscache_n_op_run),
82802 - atomic_read(&fscache_n_op_enqueue),
82803 - atomic_read(&fscache_n_op_cancelled),
82804 - atomic_read(&fscache_n_op_rejected));
82805 + atomic_read_unchecked(&fscache_n_op_pend),
82806 + atomic_read_unchecked(&fscache_n_op_run),
82807 + atomic_read_unchecked(&fscache_n_op_enqueue),
82808 + atomic_read_unchecked(&fscache_n_op_cancelled),
82809 + atomic_read_unchecked(&fscache_n_op_rejected));
82810 seq_printf(m, "Ops : ini=%u dfr=%u rel=%u gc=%u\n",
82811 - atomic_read(&fscache_n_op_initialised),
82812 - atomic_read(&fscache_n_op_deferred_release),
82813 - atomic_read(&fscache_n_op_release),
82814 - atomic_read(&fscache_n_op_gc));
82815 + atomic_read_unchecked(&fscache_n_op_initialised),
82816 + atomic_read_unchecked(&fscache_n_op_deferred_release),
82817 + atomic_read_unchecked(&fscache_n_op_release),
82818 + atomic_read_unchecked(&fscache_n_op_gc));
82819
82820 seq_printf(m, "CacheOp: alo=%d luo=%d luc=%d gro=%d\n",
82821 atomic_read(&fscache_n_cop_alloc_object),
82822 diff --git a/fs/fuse/cuse.c b/fs/fuse/cuse.c
82823 index 8e3ee19..5a0b7b2 100644
82824 --- a/fs/fuse/cuse.c
82825 +++ b/fs/fuse/cuse.c
82826 @@ -611,10 +611,12 @@ static int __init cuse_init(void)
82827 INIT_LIST_HEAD(&cuse_conntbl[i]);
82828
82829 /* inherit and extend fuse_dev_operations */
82830 - cuse_channel_fops = fuse_dev_operations;
82831 - cuse_channel_fops.owner = THIS_MODULE;
82832 - cuse_channel_fops.open = cuse_channel_open;
82833 - cuse_channel_fops.release = cuse_channel_release;
82834 + pax_open_kernel();
82835 + memcpy((void *)&cuse_channel_fops, &fuse_dev_operations, sizeof(fuse_dev_operations));
82836 + *(void **)&cuse_channel_fops.owner = THIS_MODULE;
82837 + *(void **)&cuse_channel_fops.open = cuse_channel_open;
82838 + *(void **)&cuse_channel_fops.release = cuse_channel_release;
82839 + pax_close_kernel();
82840
82841 cuse_class = class_create(THIS_MODULE, "cuse");
82842 if (IS_ERR(cuse_class))
82843 diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
82844 index ebb5e37..beae05b 100644
82845 --- a/fs/fuse/dev.c
82846 +++ b/fs/fuse/dev.c
82847 @@ -1390,7 +1390,7 @@ static ssize_t fuse_dev_splice_read(struct file *in, loff_t *ppos,
82848 ret = 0;
82849 pipe_lock(pipe);
82850
82851 - if (!pipe->readers) {
82852 + if (!atomic_read(&pipe->readers)) {
82853 send_sig(SIGPIPE, current, 0);
82854 if (!ret)
82855 ret = -EPIPE;
82856 @@ -1419,7 +1419,7 @@ static ssize_t fuse_dev_splice_read(struct file *in, loff_t *ppos,
82857 page_nr++;
82858 ret += buf->len;
82859
82860 - if (pipe->files)
82861 + if (atomic_read(&pipe->files))
82862 do_wakeup = 1;
82863 }
82864
82865 diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c
82866 index 5e42546..ea321c8 100644
82867 --- a/fs/gfs2/file.c
82868 +++ b/fs/gfs2/file.c
82869 @@ -781,7 +781,7 @@ static void calc_max_reserv(struct gfs2_inode *ip, loff_t *len,
82870 {
82871 loff_t max = *len;
82872 const struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode);
82873 - unsigned int tmp, max_data = max_blocks - 3 * (sdp->sd_max_height - 1);
82874 + unsigned int tmp, max_data = max_blocks - 3 * sdp->sd_max_height + 3;
82875
82876 for (tmp = max_data; tmp > sdp->sd_diptrs;) {
82877 tmp = DIV_ROUND_UP(tmp, sdp->sd_inptrs);
82878 diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
82879 index 32e7471..ffc6973 100644
82880 --- a/fs/gfs2/glock.c
82881 +++ b/fs/gfs2/glock.c
82882 @@ -324,9 +324,9 @@ static void state_change(struct gfs2_glock *gl, unsigned int new_state)
82883 if (held1 != held2) {
82884 GLOCK_BUG_ON(gl, __lockref_is_dead(&gl->gl_lockref));
82885 if (held2)
82886 - gl->gl_lockref.count++;
82887 + __lockref_inc(&gl->gl_lockref);
82888 else
82889 - gl->gl_lockref.count--;
82890 + __lockref_dec(&gl->gl_lockref);
82891 }
82892 if (held1 && held2 && list_empty(&gl->gl_holders))
82893 clear_bit(GLF_QUEUED, &gl->gl_flags);
82894 @@ -553,9 +553,9 @@ out:
82895 out_sched:
82896 clear_bit(GLF_LOCK, &gl->gl_flags);
82897 smp_mb__after_atomic();
82898 - gl->gl_lockref.count++;
82899 + __lockref_inc(&gl->gl_lockref);
82900 if (queue_delayed_work(glock_workqueue, &gl->gl_work, 0) == 0)
82901 - gl->gl_lockref.count--;
82902 + __lockref_dec(&gl->gl_lockref);
82903 return;
82904
82905 out_unlock:
82906 @@ -683,7 +683,7 @@ int gfs2_glock_get(struct gfs2_sbd *sdp, u64 number,
82907 gl->gl_node.next = NULL;
82908 gl->gl_flags = 0;
82909 gl->gl_name = name;
82910 - gl->gl_lockref.count = 1;
82911 + __lockref_set(&gl->gl_lockref, 1);
82912 gl->gl_state = LM_ST_UNLOCKED;
82913 gl->gl_target = LM_ST_UNLOCKED;
82914 gl->gl_demote_state = LM_ST_EXCLUSIVE;
82915 @@ -972,9 +972,9 @@ int gfs2_glock_nq(struct gfs2_holder *gh)
82916 if (unlikely((LM_FLAG_NOEXP & gh->gh_flags) &&
82917 test_and_clear_bit(GLF_FROZEN, &gl->gl_flags))) {
82918 set_bit(GLF_REPLY_PENDING, &gl->gl_flags);
82919 - gl->gl_lockref.count++;
82920 + __lockref_inc(&gl->gl_lockref);
82921 if (queue_delayed_work(glock_workqueue, &gl->gl_work, 0) == 0)
82922 - gl->gl_lockref.count--;
82923 + __lockref_dec(&gl->gl_lockref);
82924 }
82925 run_queue(gl, 1);
82926 spin_unlock(&gl->gl_lockref.lock);
82927 @@ -1278,7 +1278,7 @@ void gfs2_glock_complete(struct gfs2_glock *gl, int ret)
82928 }
82929 }
82930
82931 - gl->gl_lockref.count++;
82932 + __lockref_inc(&gl->gl_lockref);
82933 set_bit(GLF_REPLY_PENDING, &gl->gl_flags);
82934 spin_unlock(&gl->gl_lockref.lock);
82935
82936 @@ -1337,12 +1337,12 @@ add_back_to_lru:
82937 goto add_back_to_lru;
82938 }
82939 clear_bit(GLF_LRU, &gl->gl_flags);
82940 - gl->gl_lockref.count++;
82941 + __lockref_inc(&gl->gl_lockref);
82942 if (demote_ok(gl))
82943 handle_callback(gl, LM_ST_UNLOCKED, 0, false);
82944 WARN_ON(!test_and_clear_bit(GLF_LOCK, &gl->gl_flags));
82945 if (queue_delayed_work(glock_workqueue, &gl->gl_work, 0) == 0)
82946 - gl->gl_lockref.count--;
82947 + __lockref_dec(&gl->gl_lockref);
82948 spin_unlock(&gl->gl_lockref.lock);
82949 cond_resched_lock(&lru_lock);
82950 }
82951 @@ -1667,7 +1667,7 @@ void gfs2_dump_glock(struct seq_file *seq, const struct gfs2_glock *gl)
82952 state2str(gl->gl_demote_state), dtime,
82953 atomic_read(&gl->gl_ail_count),
82954 atomic_read(&gl->gl_revokes),
82955 - (int)gl->gl_lockref.count, gl->gl_hold_time);
82956 + __lockref_read(&gl->gl_lockref), gl->gl_hold_time);
82957
82958 list_for_each_entry(gh, &gl->gl_holders, gh_list)
82959 dump_holder(seq, gh);
82960 diff --git a/fs/gfs2/glops.c b/fs/gfs2/glops.c
82961 index f348cfb..e4274b2 100644
82962 --- a/fs/gfs2/glops.c
82963 +++ b/fs/gfs2/glops.c
82964 @@ -554,9 +554,9 @@ static void iopen_go_callback(struct gfs2_glock *gl, bool remote)
82965
82966 if (gl->gl_demote_state == LM_ST_UNLOCKED &&
82967 gl->gl_state == LM_ST_SHARED && ip) {
82968 - gl->gl_lockref.count++;
82969 + __lockref_inc(&gl->gl_lockref);
82970 if (queue_work(gfs2_delete_workqueue, &gl->gl_delete) == 0)
82971 - gl->gl_lockref.count--;
82972 + __lockref_dec(&gl->gl_lockref);
82973 }
82974 }
82975
82976 diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c
82977 index 3a31226..2fffbe9 100644
82978 --- a/fs/gfs2/quota.c
82979 +++ b/fs/gfs2/quota.c
82980 @@ -154,7 +154,7 @@ static enum lru_status gfs2_qd_isolate(struct list_head *item,
82981 if (!spin_trylock(&qd->qd_lockref.lock))
82982 return LRU_SKIP;
82983
82984 - if (qd->qd_lockref.count == 0) {
82985 + if (__lockref_read(&qd->qd_lockref) == 0) {
82986 lockref_mark_dead(&qd->qd_lockref);
82987 list_lru_isolate_move(lru, &qd->qd_lru, dispose);
82988 }
82989 @@ -221,7 +221,7 @@ static struct gfs2_quota_data *qd_alloc(unsigned hash, struct gfs2_sbd *sdp, str
82990 return NULL;
82991
82992 qd->qd_sbd = sdp;
82993 - qd->qd_lockref.count = 1;
82994 + __lockref_set(&qd->qd_lockref, 1);
82995 spin_lock_init(&qd->qd_lockref.lock);
82996 qd->qd_id = qid;
82997 qd->qd_slot = -1;
82998 @@ -312,7 +312,7 @@ static void qd_put(struct gfs2_quota_data *qd)
82999 if (lockref_put_or_lock(&qd->qd_lockref))
83000 return;
83001
83002 - qd->qd_lockref.count = 0;
83003 + __lockref_set(&qd->qd_lockref, 0);
83004 list_lru_add(&gfs2_qd_lru, &qd->qd_lru);
83005 spin_unlock(&qd->qd_lockref.lock);
83006
83007 diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
83008 index 595ebdb..1264061 100644
83009 --- a/fs/hugetlbfs/inode.c
83010 +++ b/fs/hugetlbfs/inode.c
83011 @@ -174,6 +174,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
83012 struct mm_struct *mm = current->mm;
83013 struct vm_area_struct *vma;
83014 struct hstate *h = hstate_file(file);
83015 + unsigned long offset = gr_rand_threadstack_offset(mm, file, flags);
83016 struct vm_unmapped_area_info info;
83017
83018 if (len & ~huge_page_mask(h))
83019 @@ -187,17 +188,26 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
83020 return addr;
83021 }
83022
83023 +#ifdef CONFIG_PAX_RANDMMAP
83024 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
83025 +#endif
83026 +
83027 if (addr) {
83028 addr = ALIGN(addr, huge_page_size(h));
83029 vma = find_vma(mm, addr);
83030 - if (TASK_SIZE - len >= addr &&
83031 - (!vma || addr + len <= vma->vm_start))
83032 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
83033 return addr;
83034 }
83035
83036 info.flags = 0;
83037 info.length = len;
83038 info.low_limit = TASK_UNMAPPED_BASE;
83039 +
83040 +#ifdef CONFIG_PAX_RANDMMAP
83041 + if (mm->pax_flags & MF_PAX_RANDMMAP)
83042 + info.low_limit += mm->delta_mmap;
83043 +#endif
83044 +
83045 info.high_limit = TASK_SIZE;
83046 info.align_mask = PAGE_MASK & ~huge_page_mask(h);
83047 info.align_offset = 0;
83048 @@ -1206,7 +1216,7 @@ static struct file_system_type hugetlbfs_fs_type = {
83049 };
83050 MODULE_ALIAS_FS("hugetlbfs");
83051
83052 -static struct vfsmount *hugetlbfs_vfsmount[HUGE_MAX_HSTATE];
83053 +struct vfsmount *hugetlbfs_vfsmount[HUGE_MAX_HSTATE];
83054
83055 static int can_do_hugetlb_shm(void)
83056 {
83057 diff --git a/fs/inode.c b/fs/inode.c
83058 index 1be5f90..55702b0 100644
83059 --- a/fs/inode.c
83060 +++ b/fs/inode.c
83061 @@ -844,19 +844,19 @@ unsigned int get_next_ino(void)
83062 unsigned int *p = &get_cpu_var(last_ino);
83063 unsigned int res = *p;
83064
83065 +start:
83066 +
83067 #ifdef CONFIG_SMP
83068 if (unlikely((res & (LAST_INO_BATCH-1)) == 0)) {
83069 - static atomic_t shared_last_ino;
83070 - int next = atomic_add_return(LAST_INO_BATCH, &shared_last_ino);
83071 + static atomic_unchecked_t shared_last_ino;
83072 + int next = atomic_add_return_unchecked(LAST_INO_BATCH, &shared_last_ino);
83073
83074 res = next - LAST_INO_BATCH;
83075 }
83076 #endif
83077
83078 - res++;
83079 - /* get_next_ino should not provide a 0 inode number */
83080 - if (unlikely(!res))
83081 - res++;
83082 + if (unlikely(!++res))
83083 + goto start; /* never zero */
83084 *p = res;
83085 put_cpu_var(last_ino);
83086 return res;
83087 diff --git a/fs/internal.h b/fs/internal.h
83088 index 71859c4d..e38c08c 100644
83089 --- a/fs/internal.h
83090 +++ b/fs/internal.h
83091 @@ -151,3 +151,10 @@ extern void mnt_pin_kill(struct mount *m);
83092 * fs/nsfs.c
83093 */
83094 extern struct dentry_operations ns_dentry_operations;
83095 +
83096 +/*
83097 + * fs/ioctl.c
83098 + */
83099 +extern int do_vfs_ioctl(struct file *file, unsigned int fd, unsigned int cmd,
83100 + unsigned long arg);
83101 +extern long vfs_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
83102 diff --git a/fs/ioctl.c b/fs/ioctl.c
83103 index 5d01d26..41c352e 100644
83104 --- a/fs/ioctl.c
83105 +++ b/fs/ioctl.c
83106 @@ -15,6 +15,7 @@
83107 #include <linux/writeback.h>
83108 #include <linux/buffer_head.h>
83109 #include <linux/falloc.h>
83110 +#include "internal.h"
83111
83112 #include <asm/ioctls.h>
83113
83114 @@ -32,8 +33,7 @@
83115 *
83116 * Returns 0 on success, -errno on error.
83117 */
83118 -static long vfs_ioctl(struct file *filp, unsigned int cmd,
83119 - unsigned long arg)
83120 +long vfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
83121 {
83122 int error = -ENOTTY;
83123
83124 diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c
83125 index 36345fe..f2d7dac 100644
83126 --- a/fs/jbd2/commit.c
83127 +++ b/fs/jbd2/commit.c
83128 @@ -1096,7 +1096,7 @@ restart_loop:
83129 */
83130 stats.ts_tid = commit_transaction->t_tid;
83131 stats.run.rs_handle_count =
83132 - atomic_read(&commit_transaction->t_handle_count);
83133 + atomic_read_unchecked(&commit_transaction->t_handle_count);
83134 trace_jbd2_run_stats(journal->j_fs_dev->bd_dev,
83135 commit_transaction->t_tid, &stats.run);
83136 stats.ts_requested = (commit_transaction->t_requested) ? 1 : 0;
83137 diff --git a/fs/jbd2/transaction.c b/fs/jbd2/transaction.c
83138 index ca181e8..8262e59 100644
83139 --- a/fs/jbd2/transaction.c
83140 +++ b/fs/jbd2/transaction.c
83141 @@ -91,7 +91,7 @@ jbd2_get_transaction(journal_t *journal, transaction_t *transaction)
83142 atomic_set(&transaction->t_updates, 0);
83143 atomic_set(&transaction->t_outstanding_credits,
83144 atomic_read(&journal->j_reserved_credits));
83145 - atomic_set(&transaction->t_handle_count, 0);
83146 + atomic_set_unchecked(&transaction->t_handle_count, 0);
83147 INIT_LIST_HEAD(&transaction->t_inode_list);
83148 INIT_LIST_HEAD(&transaction->t_private_list);
83149
83150 @@ -374,7 +374,7 @@ repeat:
83151 handle->h_requested_credits = blocks;
83152 handle->h_start_jiffies = jiffies;
83153 atomic_inc(&transaction->t_updates);
83154 - atomic_inc(&transaction->t_handle_count);
83155 + atomic_inc_unchecked(&transaction->t_handle_count);
83156 jbd_debug(4, "Handle %p given %d credits (total %d, free %lu)\n",
83157 handle, blocks,
83158 atomic_read(&transaction->t_outstanding_credits),
83159 diff --git a/fs/jffs2/erase.c b/fs/jffs2/erase.c
83160 index 4a6cf28..d3a29d3 100644
83161 --- a/fs/jffs2/erase.c
83162 +++ b/fs/jffs2/erase.c
83163 @@ -452,7 +452,8 @@ static void jffs2_mark_erased_block(struct jffs2_sb_info *c, struct jffs2_eraseb
83164 struct jffs2_unknown_node marker = {
83165 .magic = cpu_to_je16(JFFS2_MAGIC_BITMASK),
83166 .nodetype = cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER),
83167 - .totlen = cpu_to_je32(c->cleanmarker_size)
83168 + .totlen = cpu_to_je32(c->cleanmarker_size),
83169 + .hdr_crc = cpu_to_je32(0)
83170 };
83171
83172 jffs2_prealloc_raw_node_refs(c, jeb, 1);
83173 diff --git a/fs/jffs2/wbuf.c b/fs/jffs2/wbuf.c
83174 index f3a4857..2542b7a 100644
83175 --- a/fs/jffs2/wbuf.c
83176 +++ b/fs/jffs2/wbuf.c
83177 @@ -1023,7 +1023,8 @@ static const struct jffs2_unknown_node oob_cleanmarker =
83178 {
83179 .magic = constant_cpu_to_je16(JFFS2_MAGIC_BITMASK),
83180 .nodetype = constant_cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER),
83181 - .totlen = constant_cpu_to_je32(8)
83182 + .totlen = constant_cpu_to_je32(8),
83183 + .hdr_crc = constant_cpu_to_je32(0)
83184 };
83185
83186 /*
83187 diff --git a/fs/jfs/super.c b/fs/jfs/super.c
83188 index 8f9176c..6f2b910 100644
83189 --- a/fs/jfs/super.c
83190 +++ b/fs/jfs/super.c
83191 @@ -898,7 +898,7 @@ static int __init init_jfs_fs(void)
83192
83193 jfs_inode_cachep =
83194 kmem_cache_create("jfs_ip", sizeof(struct jfs_inode_info), 0,
83195 - SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD,
83196 + SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD|SLAB_USERCOPY,
83197 init_once);
83198 if (jfs_inode_cachep == NULL)
83199 return -ENOMEM;
83200 diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c
83201 index 91e0045..a654935 100644
83202 --- a/fs/kernfs/dir.c
83203 +++ b/fs/kernfs/dir.c
83204 @@ -205,7 +205,7 @@ struct kernfs_node *kernfs_get_parent(struct kernfs_node *kn)
83205 *
83206 * Returns 31 bit hash of ns + name (so it fits in an off_t )
83207 */
83208 -static unsigned int kernfs_name_hash(const char *name, const void *ns)
83209 +static unsigned int kernfs_name_hash(const unsigned char *name, const void *ns)
83210 {
83211 unsigned long hash = init_name_hash();
83212 unsigned int len = strlen(name);
83213 @@ -896,6 +896,12 @@ static int kernfs_iop_mkdir(struct inode *dir, struct dentry *dentry,
83214 ret = scops->mkdir(parent, dentry->d_name.name, mode);
83215
83216 kernfs_put_active(parent);
83217 +
83218 + if (!ret) {
83219 + struct dentry *dentry_ret = kernfs_iop_lookup(dir, dentry, 0);
83220 + ret = PTR_ERR_OR_ZERO(dentry_ret);
83221 + }
83222 +
83223 return ret;
83224 }
83225
83226 diff --git a/fs/kernfs/file.c b/fs/kernfs/file.c
83227 index 7247252..c73808e 100644
83228 --- a/fs/kernfs/file.c
83229 +++ b/fs/kernfs/file.c
83230 @@ -34,7 +34,7 @@ static DEFINE_MUTEX(kernfs_open_file_mutex);
83231
83232 struct kernfs_open_node {
83233 atomic_t refcnt;
83234 - atomic_t event;
83235 + atomic_unchecked_t event;
83236 wait_queue_head_t poll;
83237 struct list_head files; /* goes through kernfs_open_file.list */
83238 };
83239 @@ -163,7 +163,7 @@ static int kernfs_seq_show(struct seq_file *sf, void *v)
83240 {
83241 struct kernfs_open_file *of = sf->private;
83242
83243 - of->event = atomic_read(&of->kn->attr.open->event);
83244 + of->event = atomic_read_unchecked(&of->kn->attr.open->event);
83245
83246 return of->kn->attr.ops->seq_show(sf, v);
83247 }
83248 @@ -207,7 +207,7 @@ static ssize_t kernfs_file_direct_read(struct kernfs_open_file *of,
83249 goto out_free;
83250 }
83251
83252 - of->event = atomic_read(&of->kn->attr.open->event);
83253 + of->event = atomic_read_unchecked(&of->kn->attr.open->event);
83254 ops = kernfs_ops(of->kn);
83255 if (ops->read)
83256 len = ops->read(of, buf, len, *ppos);
83257 @@ -272,7 +272,7 @@ static ssize_t kernfs_fop_write(struct file *file, const char __user *user_buf,
83258 {
83259 struct kernfs_open_file *of = kernfs_of(file);
83260 const struct kernfs_ops *ops;
83261 - size_t len;
83262 + ssize_t len;
83263 char *buf;
83264
83265 if (of->atomic_write_len) {
83266 @@ -385,12 +385,12 @@ static int kernfs_vma_page_mkwrite(struct vm_area_struct *vma,
83267 return ret;
83268 }
83269
83270 -static int kernfs_vma_access(struct vm_area_struct *vma, unsigned long addr,
83271 - void *buf, int len, int write)
83272 +static ssize_t kernfs_vma_access(struct vm_area_struct *vma, unsigned long addr,
83273 + void *buf, size_t len, int write)
83274 {
83275 struct file *file = vma->vm_file;
83276 struct kernfs_open_file *of = kernfs_of(file);
83277 - int ret;
83278 + ssize_t ret;
83279
83280 if (!of->vm_ops)
83281 return -EINVAL;
83282 @@ -569,7 +569,7 @@ static int kernfs_get_open_node(struct kernfs_node *kn,
83283 return -ENOMEM;
83284
83285 atomic_set(&new_on->refcnt, 0);
83286 - atomic_set(&new_on->event, 1);
83287 + atomic_set_unchecked(&new_on->event, 1);
83288 init_waitqueue_head(&new_on->poll);
83289 INIT_LIST_HEAD(&new_on->files);
83290 goto retry;
83291 @@ -792,7 +792,7 @@ static unsigned int kernfs_fop_poll(struct file *filp, poll_table *wait)
83292
83293 kernfs_put_active(kn);
83294
83295 - if (of->event != atomic_read(&on->event))
83296 + if (of->event != atomic_read_unchecked(&on->event))
83297 goto trigger;
83298
83299 return DEFAULT_POLLMASK;
83300 @@ -823,7 +823,7 @@ repeat:
83301
83302 on = kn->attr.open;
83303 if (on) {
83304 - atomic_inc(&on->event);
83305 + atomic_inc_unchecked(&on->event);
83306 wake_up_interruptible(&on->poll);
83307 }
83308
83309 diff --git a/fs/libfs.c b/fs/libfs.c
83310 index c7cbfb0..fc3636d4 100644
83311 --- a/fs/libfs.c
83312 +++ b/fs/libfs.c
83313 @@ -155,6 +155,9 @@ int dcache_readdir(struct file *file, struct dir_context *ctx)
83314
83315 for (p = q->next; p != &dentry->d_subdirs; p = p->next) {
83316 struct dentry *next = list_entry(p, struct dentry, d_child);
83317 + char d_name[sizeof(next->d_iname)];
83318 + const unsigned char *name;
83319 +
83320 spin_lock_nested(&next->d_lock, DENTRY_D_LOCK_NESTED);
83321 if (!simple_positive(next)) {
83322 spin_unlock(&next->d_lock);
83323 @@ -163,7 +166,12 @@ int dcache_readdir(struct file *file, struct dir_context *ctx)
83324
83325 spin_unlock(&next->d_lock);
83326 spin_unlock(&dentry->d_lock);
83327 - if (!dir_emit(ctx, next->d_name.name, next->d_name.len,
83328 + name = next->d_name.name;
83329 + if (name == next->d_iname) {
83330 + memcpy(d_name, name, next->d_name.len);
83331 + name = d_name;
83332 + }
83333 + if (!dir_emit(ctx, name, next->d_name.len,
83334 d_inode(next)->i_ino, dt_type(d_inode(next))))
83335 return 0;
83336 spin_lock(&dentry->d_lock);
83337 diff --git a/fs/lockd/clntproc.c b/fs/lockd/clntproc.c
83338 index 1129520..356aeca 100644
83339 --- a/fs/lockd/clntproc.c
83340 +++ b/fs/lockd/clntproc.c
83341 @@ -36,11 +36,11 @@ static const struct rpc_call_ops nlmclnt_cancel_ops;
83342 /*
83343 * Cookie counter for NLM requests
83344 */
83345 -static atomic_t nlm_cookie = ATOMIC_INIT(0x1234);
83346 +static atomic_unchecked_t nlm_cookie = ATOMIC_INIT(0x1234);
83347
83348 void nlmclnt_next_cookie(struct nlm_cookie *c)
83349 {
83350 - u32 cookie = atomic_inc_return(&nlm_cookie);
83351 + u32 cookie = atomic_inc_return_unchecked(&nlm_cookie);
83352
83353 memcpy(c->data, &cookie, 4);
83354 c->len=4;
83355 diff --git a/fs/mount.h b/fs/mount.h
83356 index 14db05d..687f6d8 100644
83357 --- a/fs/mount.h
83358 +++ b/fs/mount.h
83359 @@ -13,7 +13,7 @@ struct mnt_namespace {
83360 u64 seq; /* Sequence number to prevent loops */
83361 wait_queue_head_t poll;
83362 u64 event;
83363 -};
83364 +} __randomize_layout;
83365
83366 struct mnt_pcp {
83367 int mnt_count;
83368 @@ -65,7 +65,7 @@ struct mount {
83369 struct hlist_head mnt_pins;
83370 struct fs_pin mnt_umount;
83371 struct dentry *mnt_ex_mountpoint;
83372 -};
83373 +} __randomize_layout;
83374
83375 #define MNT_NS_INTERNAL ERR_PTR(-EINVAL) /* distinct from any mnt_namespace */
83376
83377 diff --git a/fs/namei.c b/fs/namei.c
83378 index d8ee4da..47a7c9c 100644
83379 --- a/fs/namei.c
83380 +++ b/fs/namei.c
83381 @@ -336,17 +336,32 @@ int generic_permission(struct inode *inode, int mask)
83382 if (ret != -EACCES)
83383 return ret;
83384
83385 +#ifdef CONFIG_GRKERNSEC
83386 + /* we'll block if we have to log due to a denied capability use */
83387 + if (mask & MAY_NOT_BLOCK)
83388 + return -ECHILD;
83389 +#endif
83390 +
83391 if (S_ISDIR(inode->i_mode)) {
83392 /* DACs are overridable for directories */
83393 - if (capable_wrt_inode_uidgid(inode, CAP_DAC_OVERRIDE))
83394 - return 0;
83395 if (!(mask & MAY_WRITE))
83396 - if (capable_wrt_inode_uidgid(inode,
83397 - CAP_DAC_READ_SEARCH))
83398 + if (capable_wrt_inode_uidgid_nolog(inode, CAP_DAC_OVERRIDE) ||
83399 + capable_wrt_inode_uidgid(inode, CAP_DAC_READ_SEARCH))
83400 return 0;
83401 + if (capable_wrt_inode_uidgid(inode, CAP_DAC_OVERRIDE))
83402 + return 0;
83403 return -EACCES;
83404 }
83405 /*
83406 + * Searching includes executable on directories, else just read.
83407 + */
83408 + mask &= MAY_READ | MAY_WRITE | MAY_EXEC;
83409 + if (mask == MAY_READ)
83410 + if (capable_wrt_inode_uidgid_nolog(inode, CAP_DAC_OVERRIDE) ||
83411 + capable_wrt_inode_uidgid(inode, CAP_DAC_READ_SEARCH))
83412 + return 0;
83413 +
83414 + /*
83415 * Read/write DACs are always overridable.
83416 * Executable DACs are overridable when there is
83417 * at least one exec bit set.
83418 @@ -355,14 +370,6 @@ int generic_permission(struct inode *inode, int mask)
83419 if (capable_wrt_inode_uidgid(inode, CAP_DAC_OVERRIDE))
83420 return 0;
83421
83422 - /*
83423 - * Searching includes executable on directories, else just read.
83424 - */
83425 - mask &= MAY_READ | MAY_WRITE | MAY_EXEC;
83426 - if (mask == MAY_READ)
83427 - if (capable_wrt_inode_uidgid(inode, CAP_DAC_READ_SEARCH))
83428 - return 0;
83429 -
83430 return -EACCES;
83431 }
83432 EXPORT_SYMBOL(generic_permission);
83433 @@ -514,12 +521,35 @@ struct nameidata {
83434 struct nameidata *saved;
83435 unsigned root_seq;
83436 int dfd;
83437 -};
83438 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
83439 + struct path *symlinkown_stack;
83440 + struct path symlinkown_internal[EMBEDDED_LEVELS];
83441 + unsigned symlinkown_depth;
83442 + int symlinkown_enabled;
83443 +#endif
83444 +} __randomize_layout;
83445 +
83446 +static int gr_handle_nameidata_symlinkowner(const struct nameidata *nd, const struct inode *target)
83447 +{
83448 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
83449 + int i;
83450 +
83451 + for (i = 0; i < nd->symlinkown_depth; i++) {
83452 + if (gr_handle_symlink_owner(&nd->symlinkown_stack[i], target))
83453 + return -EACCES;
83454 + }
83455 +#endif
83456 + return 0;
83457 +}
83458
83459 static void set_nameidata(struct nameidata *p, int dfd, struct filename *name)
83460 {
83461 struct nameidata *old = current->nameidata;
83462 p->stack = p->internal;
83463 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
83464 + p->symlinkown_stack = p->symlinkown_internal;
83465 + p->symlinkown_enabled = -1;
83466 +#endif
83467 p->dfd = dfd;
83468 p->name = name;
83469 p->total_link_count = old ? old->total_link_count : 0;
83470 @@ -538,6 +568,12 @@ static void restore_nameidata(void)
83471 kfree(now->stack);
83472 now->stack = now->internal;
83473 }
83474 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
83475 + if (now->symlinkown_stack != now->symlinkown_internal) {
83476 + kfree(now->symlinkown_stack);
83477 + now->symlinkown_stack = now->symlinkown_internal;
83478 + }
83479 +#endif
83480 }
83481
83482 static int __nd_alloc_stack(struct nameidata *nd)
83483 @@ -557,6 +593,7 @@ static int __nd_alloc_stack(struct nameidata *nd)
83484 }
83485 memcpy(p, nd->internal, sizeof(nd->internal));
83486 nd->stack = p;
83487 +
83488 return 0;
83489 }
83490
83491 @@ -578,8 +615,32 @@ static bool path_connected(const struct path *path)
83492 return is_subdir(path->dentry, mnt->mnt_root);
83493 }
83494
83495 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
83496 +static int nd_alloc_symlinkown_stack(struct nameidata *nd)
83497 +{
83498 + struct path *p;
83499 +
83500 + if (likely(nd->symlinkown_depth != EMBEDDED_LEVELS))
83501 + return 0;
83502 + if (nd->symlinkown_stack != nd->symlinkown_internal)
83503 + return 0;
83504 +
83505 + p = kmalloc(MAXSYMLINKS * sizeof(struct path), GFP_KERNEL);
83506 + if (unlikely(!p))
83507 + return -ENOMEM;
83508 + memcpy(p, nd->symlinkown_internal, sizeof(nd->symlinkown_internal));
83509 + nd->symlinkown_stack = p;
83510 + return 0;
83511 +}
83512 +#endif
83513 +
83514 static inline int nd_alloc_stack(struct nameidata *nd)
83515 {
83516 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
83517 + if (nd->flags & LOOKUP_RCU)
83518 + return -ECHILD;
83519 +#endif
83520 +
83521 if (likely(nd->depth != EMBEDDED_LEVELS))
83522 return 0;
83523 if (likely(nd->stack != nd->internal))
83524 @@ -608,6 +669,14 @@ static void terminate_walk(struct nameidata *nd)
83525 path_put(&nd->path);
83526 for (i = 0; i < nd->depth; i++)
83527 path_put(&nd->stack[i].link);
83528 +
83529 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
83530 + /* we'll only ever set our values in ref-walk mode */
83531 + for (i = 0; i < nd->symlinkown_depth; i++)
83532 + path_put(&nd->symlinkown_stack[i]);
83533 + nd->symlinkown_depth = 0;
83534 +#endif
83535 +
83536 if (nd->root.mnt && !(nd->flags & LOOKUP_ROOT)) {
83537 path_put(&nd->root);
83538 nd->root.mnt = NULL;
83539 @@ -1001,6 +1070,9 @@ const char *get_link(struct nameidata *nd)
83540 if (unlikely(error))
83541 return ERR_PTR(error);
83542
83543 + if (gr_handle_follow_link(dentry, last->link.mnt))
83544 + return ERR_PTR(-EACCES);
83545 +
83546 nd->last_type = LAST_BIND;
83547 res = inode->i_link;
83548 if (!res) {
83549 @@ -1689,6 +1761,23 @@ static int pick_link(struct nameidata *nd, struct path *link,
83550 }
83551 }
83552
83553 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
83554 + if (unlikely(nd->symlinkown_enabled == -1))
83555 + nd->symlinkown_enabled = gr_get_symlinkown_enabled();
83556 + if (nd->symlinkown_enabled && gr_is_global_nonroot(inode->i_uid)) {
83557 + struct path *symlinkownlast;
83558 + error = nd_alloc_symlinkown_stack(nd);
83559 + if (unlikely(error)) {
83560 + path_put(link);
83561 + return error;
83562 + }
83563 + symlinkownlast = nd->symlinkown_stack + nd->symlinkown_depth++;
83564 + symlinkownlast->dentry = link->dentry;
83565 + symlinkownlast->mnt = link->mnt;
83566 + path_get(symlinkownlast);
83567 + }
83568 +#endif
83569 +
83570 last = nd->stack + nd->depth++;
83571 last->link = *link;
83572 last->cookie = NULL;
83573 @@ -1833,7 +1922,7 @@ EXPORT_SYMBOL(full_name_hash);
83574 static inline u64 hash_name(const char *name)
83575 {
83576 unsigned long a, b, adata, bdata, mask, hash, len;
83577 - const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
83578 + static const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
83579
83580 hash = a = 0;
83581 len = -sizeof(unsigned long);
83582 @@ -2001,6 +2090,10 @@ static const char *path_init(struct nameidata *nd, unsigned flags)
83583 nd->last_type = LAST_ROOT; /* if there are only slashes... */
83584 nd->flags = flags | LOOKUP_JUMPED | LOOKUP_PARENT;
83585 nd->depth = 0;
83586 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
83587 + nd->symlinkown_depth = 0;
83588 +#endif
83589 +
83590 if (flags & LOOKUP_ROOT) {
83591 struct dentry *root = nd->root.dentry;
83592 struct inode *inode = root->d_inode;
83593 @@ -2138,6 +2231,11 @@ static int path_lookupat(struct nameidata *nd, unsigned flags, struct path *path
83594 if (!err)
83595 err = complete_walk(nd);
83596
83597 + if (!err && !(nd->flags & LOOKUP_PARENT)) {
83598 + if (!gr_acl_handle_hidden_file(nd->path.dentry, nd->path.mnt))
83599 + err = -ENOENT;
83600 + }
83601 +
83602 if (!err && nd->flags & LOOKUP_DIRECTORY)
83603 if (!d_can_lookup(nd->path.dentry))
83604 err = -ENOTDIR;
83605 @@ -2186,6 +2284,10 @@ static int path_parentat(struct nameidata *nd, unsigned flags,
83606 err = link_path_walk(s, nd);
83607 if (!err)
83608 err = complete_walk(nd);
83609 +
83610 + if (!err && gr_handle_nameidata_symlinkowner(nd, nd->inode))
83611 + err = -EACCES;
83612 +
83613 if (!err) {
83614 *parent = nd->path;
83615 nd->path.mnt = NULL;
83616 @@ -2717,6 +2819,13 @@ static int may_open(struct path *path, int acc_mode, int flag)
83617 if (flag & O_NOATIME && !inode_owner_or_capable(inode))
83618 return -EPERM;
83619
83620 + if (gr_handle_rofs_blockwrite(dentry, path->mnt, acc_mode))
83621 + return -EPERM;
83622 + if (gr_handle_rawio(inode))
83623 + return -EPERM;
83624 + if (!gr_acl_handle_open(dentry, path->mnt, acc_mode))
83625 + return -EACCES;
83626 +
83627 return 0;
83628 }
83629
83630 @@ -2983,6 +3092,18 @@ static int lookup_open(struct nameidata *nd, struct path *path,
83631 /* Negative dentry, just create the file */
83632 if (!dentry->d_inode && (op->open_flag & O_CREAT)) {
83633 umode_t mode = op->mode;
83634 +
83635 +
83636 + if (gr_handle_nameidata_symlinkowner(nd, dir_inode)) {
83637 + error = -EACCES;
83638 + goto out_dput;
83639 + }
83640 +
83641 + if (!gr_acl_handle_creat(dentry, dir, nd->path.mnt, op->open_flag, op->acc_mode, mode)) {
83642 + error = -EACCES;
83643 + goto out_dput;
83644 + }
83645 +
83646 if (!IS_POSIXACL(dir->d_inode))
83647 mode &= ~current_umask();
83648 /*
83649 @@ -3004,6 +3125,8 @@ static int lookup_open(struct nameidata *nd, struct path *path,
83650 nd->flags & LOOKUP_EXCL);
83651 if (error)
83652 goto out_dput;
83653 + else
83654 + gr_handle_create(dentry, nd->path.mnt);
83655 }
83656 out_no_open:
83657 path->dentry = dentry;
83658 @@ -3109,11 +3232,24 @@ retry_lookup:
83659 goto finish_open_created;
83660 }
83661
83662 + if (!gr_acl_handle_hidden_file(path.dentry, nd->path.mnt)) {
83663 + path_to_nameidata(&path, nd);
83664 + return -ENOENT;
83665 + }
83666 +
83667 /*
83668 * create/update audit record if it already exists.
83669 */
83670 - if (d_is_positive(path.dentry))
83671 + if (d_is_positive(path.dentry)) {
83672 + /* only check if O_CREAT is specified, all other checks need to go
83673 + into may_open */
83674 + if (gr_handle_fifo(path.dentry, path.mnt, dir, open_flag, acc_mode)) {
83675 + path_to_nameidata(&path, nd);
83676 + return -EACCES;
83677 + }
83678 +
83679 audit_inode(nd->name, path.dentry, 0);
83680 + }
83681
83682 /*
83683 * If atomic_open() acquired write access it is dropped now due to
83684 @@ -3166,6 +3302,17 @@ finish_open:
83685 path_put(&save_parent);
83686 return error;
83687 }
83688 +
83689 + if (!gr_acl_handle_hidden_file(nd->path.dentry, nd->path.mnt)) {
83690 + error = -ENOENT;
83691 + goto out;
83692 + }
83693 +
83694 + if (gr_handle_nameidata_symlinkowner(nd, inode)) {
83695 + error = -EACCES;
83696 + goto out;
83697 + }
83698 +
83699 audit_inode(nd->name, nd->path.dentry, 0);
83700 if (unlikely(d_is_symlink(nd->path.dentry)) && !(open_flag & O_PATH)) {
83701 error = -ELOOP;
83702 @@ -3440,9 +3587,11 @@ static struct dentry *filename_create(int dfd, struct filename *name,
83703 goto unlock;
83704
83705 error = -EEXIST;
83706 - if (d_is_positive(dentry))
83707 + if (d_is_positive(dentry)) {
83708 + if (!gr_acl_handle_hidden_file(dentry, path->mnt))
83709 + error = -ENOENT;
83710 goto fail;
83711 -
83712 + }
83713 /*
83714 * Special case - lookup gave negative, but... we had foo/bar/
83715 * From the vfs_mknod() POV we just have a negative dentry -
83716 @@ -3496,6 +3645,20 @@ inline struct dentry *user_path_create(int dfd, const char __user *pathname,
83717 }
83718 EXPORT_SYMBOL(user_path_create);
83719
83720 +static struct dentry *user_path_create_with_name(int dfd, const char __user *pathname, struct path *path, struct filename **to, unsigned int lookup_flags)
83721 +{
83722 + struct filename *tmp = getname(pathname);
83723 + struct dentry *res;
83724 + if (IS_ERR(tmp))
83725 + return ERR_CAST(tmp);
83726 + res = kern_path_create(dfd, tmp->name, path, lookup_flags);
83727 + if (IS_ERR(res))
83728 + putname(tmp);
83729 + else
83730 + *to = tmp;
83731 + return res;
83732 +}
83733 +
83734 int vfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t dev)
83735 {
83736 int error = may_create(dir, dentry);
83737 @@ -3559,6 +3722,17 @@ retry:
83738
83739 if (!IS_POSIXACL(path.dentry->d_inode))
83740 mode &= ~current_umask();
83741 +
83742 + if (gr_handle_chroot_mknod(dentry, path.mnt, mode)) {
83743 + error = -EPERM;
83744 + goto out;
83745 + }
83746 +
83747 + if (!gr_acl_handle_mknod(dentry, path.dentry, path.mnt, mode)) {
83748 + error = -EACCES;
83749 + goto out;
83750 + }
83751 +
83752 error = security_path_mknod(&path, dentry, mode, dev);
83753 if (error)
83754 goto out;
83755 @@ -3574,6 +3748,8 @@ retry:
83756 error = vfs_mknod(path.dentry->d_inode,dentry,mode,0);
83757 break;
83758 }
83759 + if (!error)
83760 + gr_handle_create(dentry, path.mnt);
83761 out:
83762 done_path_create(&path, dentry);
83763 if (retry_estale(error, lookup_flags)) {
83764 @@ -3628,9 +3804,16 @@ retry:
83765
83766 if (!IS_POSIXACL(path.dentry->d_inode))
83767 mode &= ~current_umask();
83768 + if (!gr_acl_handle_mkdir(dentry, path.dentry, path.mnt)) {
83769 + error = -EACCES;
83770 + goto out;
83771 + }
83772 error = security_path_mkdir(&path, dentry, mode);
83773 if (!error)
83774 error = vfs_mkdir(path.dentry->d_inode, dentry, mode);
83775 + if (!error)
83776 + gr_handle_create(dentry, path.mnt);
83777 +out:
83778 done_path_create(&path, dentry);
83779 if (retry_estale(error, lookup_flags)) {
83780 lookup_flags |= LOOKUP_REVAL;
83781 @@ -3663,7 +3846,7 @@ void dentry_unhash(struct dentry *dentry)
83782 {
83783 shrink_dcache_parent(dentry);
83784 spin_lock(&dentry->d_lock);
83785 - if (dentry->d_lockref.count == 1)
83786 + if (__lockref_read(&dentry->d_lockref) == 1)
83787 __d_drop(dentry);
83788 spin_unlock(&dentry->d_lock);
83789 }
83790 @@ -3716,6 +3899,8 @@ static long do_rmdir(int dfd, const char __user *pathname)
83791 struct path path;
83792 struct qstr last;
83793 int type;
83794 + u64 saved_ino = 0;
83795 + dev_t saved_dev = 0;
83796 unsigned int lookup_flags = 0;
83797 retry:
83798 name = user_path_parent(dfd, pathname,
83799 @@ -3748,10 +3933,20 @@ retry:
83800 error = -ENOENT;
83801 goto exit3;
83802 }
83803 + saved_ino = gr_get_ino_from_dentry(dentry);
83804 + saved_dev = gr_get_dev_from_dentry(dentry);
83805 +
83806 + if (!gr_acl_handle_rmdir(dentry, path.mnt)) {
83807 + error = -EACCES;
83808 + goto exit3;
83809 + }
83810 +
83811 error = security_path_rmdir(&path, dentry);
83812 if (error)
83813 goto exit3;
83814 error = vfs_rmdir(path.dentry->d_inode, dentry);
83815 + if (!error && (saved_dev || saved_ino))
83816 + gr_handle_delete(saved_ino, saved_dev);
83817 exit3:
83818 dput(dentry);
83819 exit2:
83820 @@ -3846,6 +4041,8 @@ static long do_unlinkat(int dfd, const char __user *pathname)
83821 int type;
83822 struct inode *inode = NULL;
83823 struct inode *delegated_inode = NULL;
83824 + u64 saved_ino = 0;
83825 + dev_t saved_dev = 0;
83826 unsigned int lookup_flags = 0;
83827 retry:
83828 name = user_path_parent(dfd, pathname,
83829 @@ -3872,10 +4069,21 @@ retry_deleg:
83830 if (d_is_negative(dentry))
83831 goto slashes;
83832 ihold(inode);
83833 + if (inode->i_nlink <= 1) {
83834 + saved_ino = gr_get_ino_from_dentry(dentry);
83835 + saved_dev = gr_get_dev_from_dentry(dentry);
83836 + }
83837 + if (!gr_acl_handle_unlink(dentry, path.mnt)) {
83838 + error = -EACCES;
83839 + goto exit2;
83840 + }
83841 +
83842 error = security_path_unlink(&path, dentry);
83843 if (error)
83844 goto exit2;
83845 error = vfs_unlink(path.dentry->d_inode, dentry, &delegated_inode);
83846 + if (!error && (saved_ino || saved_dev))
83847 + gr_handle_delete(saved_ino, saved_dev);
83848 exit2:
83849 dput(dentry);
83850 }
83851 @@ -3964,9 +4172,17 @@ retry:
83852 if (IS_ERR(dentry))
83853 goto out_putname;
83854
83855 + if (!gr_acl_handle_symlink(dentry, path.dentry, path.mnt, from)) {
83856 + error = -EACCES;
83857 + goto out;
83858 + }
83859 +
83860 error = security_path_symlink(&path, dentry, from->name);
83861 if (!error)
83862 error = vfs_symlink(path.dentry->d_inode, dentry, from->name);
83863 + if (!error)
83864 + gr_handle_create(dentry, path.mnt);
83865 +out:
83866 done_path_create(&path, dentry);
83867 if (retry_estale(error, lookup_flags)) {
83868 lookup_flags |= LOOKUP_REVAL;
83869 @@ -4070,6 +4286,7 @@ SYSCALL_DEFINE5(linkat, int, olddfd, const char __user *, oldname,
83870 struct dentry *new_dentry;
83871 struct path old_path, new_path;
83872 struct inode *delegated_inode = NULL;
83873 + struct filename *to = NULL;
83874 int how = 0;
83875 int error;
83876
83877 @@ -4093,7 +4310,7 @@ retry:
83878 if (error)
83879 return error;
83880
83881 - new_dentry = user_path_create(newdfd, newname, &new_path,
83882 + new_dentry = user_path_create_with_name(newdfd, newname, &new_path, &to,
83883 (how & LOOKUP_REVAL));
83884 error = PTR_ERR(new_dentry);
83885 if (IS_ERR(new_dentry))
83886 @@ -4105,11 +4322,26 @@ retry:
83887 error = may_linkat(&old_path);
83888 if (unlikely(error))
83889 goto out_dput;
83890 +
83891 + if (gr_handle_hardlink(old_path.dentry, old_path.mnt, to)) {
83892 + error = -EACCES;
83893 + goto out_dput;
83894 + }
83895 +
83896 + if (!gr_acl_handle_link(new_dentry, new_path.dentry, new_path.mnt,
83897 + old_path.dentry, old_path.mnt, to)) {
83898 + error = -EACCES;
83899 + goto out_dput;
83900 + }
83901 +
83902 error = security_path_link(old_path.dentry, &new_path, new_dentry);
83903 if (error)
83904 goto out_dput;
83905 error = vfs_link(old_path.dentry, new_path.dentry->d_inode, new_dentry, &delegated_inode);
83906 + if (!error)
83907 + gr_handle_create(new_dentry, new_path.mnt);
83908 out_dput:
83909 + putname(to);
83910 done_path_create(&new_path, new_dentry);
83911 if (delegated_inode) {
83912 error = break_deleg_wait(&delegated_inode);
83913 @@ -4424,6 +4656,20 @@ retry_deleg:
83914 if (new_dentry == trap)
83915 goto exit5;
83916
83917 + if (gr_bad_chroot_rename(old_dentry, old_path.mnt, new_dentry, new_path.mnt)) {
83918 + /* use EXDEV error to cause 'mv' to switch to an alternative
83919 + * method for usability
83920 + */
83921 + error = -EXDEV;
83922 + goto exit5;
83923 + }
83924 +
83925 + error = gr_acl_handle_rename(new_dentry, new_path.dentry, new_path.mnt,
83926 + old_dentry, d_backing_inode(old_path.dentry), old_path.mnt,
83927 + to, flags);
83928 + if (error)
83929 + goto exit5;
83930 +
83931 error = security_path_rename(&old_path, old_dentry,
83932 &new_path, new_dentry, flags);
83933 if (error)
83934 @@ -4431,6 +4677,9 @@ retry_deleg:
83935 error = vfs_rename(old_path.dentry->d_inode, old_dentry,
83936 new_path.dentry->d_inode, new_dentry,
83937 &delegated_inode, flags);
83938 + if (!error)
83939 + gr_handle_rename(d_backing_inode(old_path.dentry), d_backing_inode(new_path.dentry), old_dentry,
83940 + new_dentry, old_path.mnt, d_is_positive(new_dentry) ? 1 : 0, flags);
83941 exit5:
83942 dput(new_dentry);
83943 exit4:
83944 @@ -4487,14 +4736,24 @@ EXPORT_SYMBOL(vfs_whiteout);
83945
83946 int readlink_copy(char __user *buffer, int buflen, const char *link)
83947 {
83948 + char tmpbuf[64];
83949 + const char *newlink;
83950 int len = PTR_ERR(link);
83951 +
83952 if (IS_ERR(link))
83953 goto out;
83954
83955 len = strlen(link);
83956 if (len > (unsigned) buflen)
83957 len = buflen;
83958 - if (copy_to_user(buffer, link, len))
83959 +
83960 + if (len < sizeof(tmpbuf)) {
83961 + memcpy(tmpbuf, link, len);
83962 + newlink = tmpbuf;
83963 + } else
83964 + newlink = link;
83965 +
83966 + if (copy_to_user(buffer, newlink, len))
83967 len = -EFAULT;
83968 out:
83969 return len;
83970 diff --git a/fs/namespace.c b/fs/namespace.c
83971 index 0570729..9de781d 100644
83972 --- a/fs/namespace.c
83973 +++ b/fs/namespace.c
83974 @@ -1516,6 +1516,9 @@ static int do_umount(struct mount *mnt, int flags)
83975 if (!(sb->s_flags & MS_RDONLY))
83976 retval = do_remount_sb(sb, MS_RDONLY, NULL, 0);
83977 up_write(&sb->s_umount);
83978 +
83979 + gr_log_remount(mnt->mnt_devname, retval);
83980 +
83981 return retval;
83982 }
83983
83984 @@ -1538,6 +1541,9 @@ static int do_umount(struct mount *mnt, int flags)
83985 }
83986 unlock_mount_hash();
83987 namespace_unlock();
83988 +
83989 + gr_log_unmount(mnt->mnt_devname, retval);
83990 +
83991 return retval;
83992 }
83993
83994 @@ -1592,7 +1598,7 @@ static inline bool may_mount(void)
83995 * unixes. Our API is identical to OSF/1 to avoid making a mess of AMD
83996 */
83997
83998 -SYSCALL_DEFINE2(umount, char __user *, name, int, flags)
83999 +SYSCALL_DEFINE2(umount, const char __user *, name, int, flags)
84000 {
84001 struct path path;
84002 struct mount *mnt;
84003 @@ -1637,7 +1643,7 @@ out:
84004 /*
84005 * The 2.0 compatible umount. No flags.
84006 */
84007 -SYSCALL_DEFINE1(oldumount, char __user *, name)
84008 +SYSCALL_DEFINE1(oldumount, const char __user *, name)
84009 {
84010 return sys_umount(name, 0);
84011 }
84012 @@ -2712,6 +2718,16 @@ long do_mount(const char *dev_name, const char __user *dir_name,
84013 MS_NOATIME | MS_NODIRATIME | MS_RELATIME| MS_KERNMOUNT |
84014 MS_STRICTATIME);
84015
84016 + if (gr_handle_rofs_mount(path.dentry, path.mnt, mnt_flags)) {
84017 + retval = -EPERM;
84018 + goto dput_out;
84019 + }
84020 +
84021 + if (gr_handle_chroot_mount(path.dentry, path.mnt, dev_name)) {
84022 + retval = -EPERM;
84023 + goto dput_out;
84024 + }
84025 +
84026 if (flags & MS_REMOUNT)
84027 retval = do_remount(&path, flags & ~MS_REMOUNT, mnt_flags,
84028 data_page);
84029 @@ -2725,7 +2741,10 @@ long do_mount(const char *dev_name, const char __user *dir_name,
84030 retval = do_new_mount(&path, type_page, flags, mnt_flags,
84031 dev_name, data_page);
84032 dput_out:
84033 + gr_log_mount(dev_name, &path, retval);
84034 +
84035 path_put(&path);
84036 +
84037 return retval;
84038 }
84039
84040 @@ -2743,7 +2762,7 @@ static void free_mnt_ns(struct mnt_namespace *ns)
84041 * number incrementing at 10Ghz will take 12,427 years to wrap which
84042 * is effectively never, so we can ignore the possibility.
84043 */
84044 -static atomic64_t mnt_ns_seq = ATOMIC64_INIT(1);
84045 +static atomic64_unchecked_t mnt_ns_seq = ATOMIC64_INIT(1);
84046
84047 static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
84048 {
84049 @@ -2759,7 +2778,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
84050 return ERR_PTR(ret);
84051 }
84052 new_ns->ns.ops = &mntns_operations;
84053 - new_ns->seq = atomic64_add_return(1, &mnt_ns_seq);
84054 + new_ns->seq = atomic64_add_return_unchecked(1, &mnt_ns_seq);
84055 atomic_set(&new_ns->count, 1);
84056 new_ns->root = NULL;
84057 INIT_LIST_HEAD(&new_ns->list);
84058 @@ -2769,7 +2788,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
84059 return new_ns;
84060 }
84061
84062 -struct mnt_namespace *copy_mnt_ns(unsigned long flags, struct mnt_namespace *ns,
84063 +__latent_entropy struct mnt_namespace *copy_mnt_ns(unsigned long flags, struct mnt_namespace *ns,
84064 struct user_namespace *user_ns, struct fs_struct *new_fs)
84065 {
84066 struct mnt_namespace *new_ns;
84067 @@ -2890,8 +2909,8 @@ struct dentry *mount_subtree(struct vfsmount *mnt, const char *name)
84068 }
84069 EXPORT_SYMBOL(mount_subtree);
84070
84071 -SYSCALL_DEFINE5(mount, char __user *, dev_name, char __user *, dir_name,
84072 - char __user *, type, unsigned long, flags, void __user *, data)
84073 +SYSCALL_DEFINE5(mount, const char __user *, dev_name, const char __user *, dir_name,
84074 + const char __user *, type, unsigned long, flags, void __user *, data)
84075 {
84076 int ret;
84077 char *kernel_type;
84078 @@ -2997,6 +3016,11 @@ SYSCALL_DEFINE2(pivot_root, const char __user *, new_root,
84079 if (error)
84080 goto out2;
84081
84082 + if (gr_handle_chroot_pivot()) {
84083 + error = -EPERM;
84084 + goto out2;
84085 + }
84086 +
84087 get_fs_root(current->fs, &root);
84088 old_mp = lock_mount(&old);
84089 error = PTR_ERR(old_mp);
84090 @@ -3315,7 +3339,7 @@ static int mntns_install(struct nsproxy *nsproxy, struct ns_common *ns)
84091 !ns_capable(current_user_ns(), CAP_SYS_ADMIN))
84092 return -EPERM;
84093
84094 - if (fs->users != 1)
84095 + if (atomic_read(&fs->users) != 1)
84096 return -EINVAL;
84097
84098 get_mnt_ns(mnt_ns);
84099 diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c
84100 index 646cdac..cdfa595 100644
84101 --- a/fs/nfs/callback_xdr.c
84102 +++ b/fs/nfs/callback_xdr.c
84103 @@ -53,7 +53,7 @@ struct callback_op {
84104 callback_decode_arg_t decode_args;
84105 callback_encode_res_t encode_res;
84106 long res_maxsize;
84107 -};
84108 +} __do_const;
84109
84110 static struct callback_op callback_ops[];
84111
84112 diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
84113 index 3e2071a..c09f4b6 100644
84114 --- a/fs/nfs/inode.c
84115 +++ b/fs/nfs/inode.c
84116 @@ -1284,16 +1284,16 @@ static int nfs_check_inode_attributes(struct inode *inode, struct nfs_fattr *fat
84117 return 0;
84118 }
84119
84120 -static atomic_long_t nfs_attr_generation_counter;
84121 +static atomic_long_unchecked_t nfs_attr_generation_counter;
84122
84123 static unsigned long nfs_read_attr_generation_counter(void)
84124 {
84125 - return atomic_long_read(&nfs_attr_generation_counter);
84126 + return atomic_long_read_unchecked(&nfs_attr_generation_counter);
84127 }
84128
84129 unsigned long nfs_inc_attr_generation_counter(void)
84130 {
84131 - return atomic_long_inc_return(&nfs_attr_generation_counter);
84132 + return atomic_long_inc_return_unchecked(&nfs_attr_generation_counter);
84133 }
84134 EXPORT_SYMBOL_GPL(nfs_inc_attr_generation_counter);
84135
84136 diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
84137 index a9f096c..fa0310f 100644
84138 --- a/fs/nfsd/nfs4proc.c
84139 +++ b/fs/nfsd/nfs4proc.c
84140 @@ -1485,7 +1485,7 @@ struct nfsd4_operation {
84141 nfsd4op_rsize op_rsize_bop;
84142 stateid_getter op_get_currentstateid;
84143 stateid_setter op_set_currentstateid;
84144 -};
84145 +} __do_const;
84146
84147 static struct nfsd4_operation nfsd4_ops[];
84148
84149 diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
84150 index 51c9e9c..82dc067 100644
84151 --- a/fs/nfsd/nfs4xdr.c
84152 +++ b/fs/nfsd/nfs4xdr.c
84153 @@ -1704,7 +1704,7 @@ nfsd4_decode_notsupp(struct nfsd4_compoundargs *argp, void *p)
84154
84155 typedef __be32(*nfsd4_dec)(struct nfsd4_compoundargs *argp, void *);
84156
84157 -static nfsd4_dec nfsd4_dec_ops[] = {
84158 +static const nfsd4_dec nfsd4_dec_ops[] = {
84159 [OP_ACCESS] = (nfsd4_dec)nfsd4_decode_access,
84160 [OP_CLOSE] = (nfsd4_dec)nfsd4_decode_close,
84161 [OP_COMMIT] = (nfsd4_dec)nfsd4_decode_commit,
84162 diff --git a/fs/nfsd/nfscache.c b/fs/nfsd/nfscache.c
84163 index 54cde9a..ff5756c 100644
84164 --- a/fs/nfsd/nfscache.c
84165 +++ b/fs/nfsd/nfscache.c
84166 @@ -513,7 +513,7 @@ nfsd_cache_update(struct svc_rqst *rqstp, int cachetype, __be32 *statp)
84167 struct kvec *resv = &rqstp->rq_res.head[0], *cachv;
84168 u32 hash;
84169 struct nfsd_drc_bucket *b;
84170 - int len;
84171 + long len;
84172 size_t bufsize = 0;
84173
84174 if (!rp)
84175 @@ -522,11 +522,14 @@ nfsd_cache_update(struct svc_rqst *rqstp, int cachetype, __be32 *statp)
84176 hash = nfsd_cache_hash(rp->c_xid);
84177 b = &drc_hashtbl[hash];
84178
84179 - len = resv->iov_len - ((char*)statp - (char*)resv->iov_base);
84180 - len >>= 2;
84181 + if (statp) {
84182 + len = (char*)statp - (char*)resv->iov_base;
84183 + len = resv->iov_len - len;
84184 + len >>= 2;
84185 + }
84186
84187 /* Don't cache excessive amounts of data and XDR failures */
84188 - if (!statp || len > (256 >> 2)) {
84189 + if (!statp || len > (256 >> 2) || len < 0) {
84190 nfsd_reply_cache_free(b, rp);
84191 return;
84192 }
84193 @@ -534,7 +537,7 @@ nfsd_cache_update(struct svc_rqst *rqstp, int cachetype, __be32 *statp)
84194 switch (cachetype) {
84195 case RC_REPLSTAT:
84196 if (len != 1)
84197 - printk("nfsd: RC_REPLSTAT/reply len %d!\n",len);
84198 + printk("nfsd: RC_REPLSTAT/reply len %ld!\n",len);
84199 rp->c_replstat = *statp;
84200 break;
84201 case RC_REPLBUFF:
84202 diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
84203 index 994d66f..a963779 100644
84204 --- a/fs/nfsd/vfs.c
84205 +++ b/fs/nfsd/vfs.c
84206 @@ -855,7 +855,7 @@ __be32 nfsd_readv(struct file *file, loff_t offset, struct kvec *vec, int vlen,
84207
84208 oldfs = get_fs();
84209 set_fs(KERNEL_DS);
84210 - host_err = vfs_readv(file, (struct iovec __user *)vec, vlen, &offset);
84211 + host_err = vfs_readv(file, (struct iovec __force_user *)vec, vlen, &offset);
84212 set_fs(oldfs);
84213 return nfsd_finish_read(file, count, host_err);
84214 }
84215 @@ -942,7 +942,7 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
84216
84217 /* Write the data. */
84218 oldfs = get_fs(); set_fs(KERNEL_DS);
84219 - host_err = vfs_writev(file, (struct iovec __user *)vec, vlen, &pos);
84220 + host_err = vfs_writev(file, (struct iovec __force_user *)vec, vlen, &pos);
84221 set_fs(oldfs);
84222 if (host_err < 0)
84223 goto out_nfserr;
84224 @@ -1449,7 +1449,7 @@ nfsd_readlink(struct svc_rqst *rqstp, struct svc_fh *fhp, char *buf, int *lenp)
84225 */
84226
84227 oldfs = get_fs(); set_fs(KERNEL_DS);
84228 - host_err = inode->i_op->readlink(path.dentry, (char __user *)buf, *lenp);
84229 + host_err = inode->i_op->readlink(path.dentry, (char __force_user *)buf, *lenp);
84230 set_fs(oldfs);
84231
84232 if (host_err < 0)
84233 diff --git a/fs/nls/nls_base.c b/fs/nls/nls_base.c
84234 index 52ccd34..7a6b202 100644
84235 --- a/fs/nls/nls_base.c
84236 +++ b/fs/nls/nls_base.c
84237 @@ -234,21 +234,25 @@ EXPORT_SYMBOL(utf16s_to_utf8s);
84238
84239 int __register_nls(struct nls_table *nls, struct module *owner)
84240 {
84241 - struct nls_table ** tmp = &tables;
84242 + struct nls_table *tmp = tables;
84243
84244 if (nls->next)
84245 return -EBUSY;
84246
84247 - nls->owner = owner;
84248 + pax_open_kernel();
84249 + *(void **)&nls->owner = owner;
84250 + pax_close_kernel();
84251 spin_lock(&nls_lock);
84252 - while (*tmp) {
84253 - if (nls == *tmp) {
84254 + while (tmp) {
84255 + if (nls == tmp) {
84256 spin_unlock(&nls_lock);
84257 return -EBUSY;
84258 }
84259 - tmp = &(*tmp)->next;
84260 + tmp = tmp->next;
84261 }
84262 - nls->next = tables;
84263 + pax_open_kernel();
84264 + *(struct nls_table **)&nls->next = tables;
84265 + pax_close_kernel();
84266 tables = nls;
84267 spin_unlock(&nls_lock);
84268 return 0;
84269 @@ -257,12 +261,14 @@ EXPORT_SYMBOL(__register_nls);
84270
84271 int unregister_nls(struct nls_table * nls)
84272 {
84273 - struct nls_table ** tmp = &tables;
84274 + struct nls_table * const * tmp = &tables;
84275
84276 spin_lock(&nls_lock);
84277 while (*tmp) {
84278 if (nls == *tmp) {
84279 - *tmp = nls->next;
84280 + pax_open_kernel();
84281 + *(struct nls_table **)tmp = nls->next;
84282 + pax_close_kernel();
84283 spin_unlock(&nls_lock);
84284 return 0;
84285 }
84286 @@ -272,7 +278,7 @@ int unregister_nls(struct nls_table * nls)
84287 return -EINVAL;
84288 }
84289
84290 -static struct nls_table *find_nls(char *charset)
84291 +static struct nls_table *find_nls(const char *charset)
84292 {
84293 struct nls_table *nls;
84294 spin_lock(&nls_lock);
84295 @@ -288,7 +294,7 @@ static struct nls_table *find_nls(char *charset)
84296 return nls;
84297 }
84298
84299 -struct nls_table *load_nls(char *charset)
84300 +struct nls_table *load_nls(const char *charset)
84301 {
84302 return try_then_request_module(find_nls(charset), "nls_%s", charset);
84303 }
84304 diff --git a/fs/nls/nls_euc-jp.c b/fs/nls/nls_euc-jp.c
84305 index 162b3f1..6076a7c 100644
84306 --- a/fs/nls/nls_euc-jp.c
84307 +++ b/fs/nls/nls_euc-jp.c
84308 @@ -560,8 +560,10 @@ static int __init init_nls_euc_jp(void)
84309 p_nls = load_nls("cp932");
84310
84311 if (p_nls) {
84312 - table.charset2upper = p_nls->charset2upper;
84313 - table.charset2lower = p_nls->charset2lower;
84314 + pax_open_kernel();
84315 + *(const unsigned char **)&table.charset2upper = p_nls->charset2upper;
84316 + *(const unsigned char **)&table.charset2lower = p_nls->charset2lower;
84317 + pax_close_kernel();
84318 return register_nls(&table);
84319 }
84320
84321 diff --git a/fs/nls/nls_koi8-ru.c b/fs/nls/nls_koi8-ru.c
84322 index a80a741..7b96e1b 100644
84323 --- a/fs/nls/nls_koi8-ru.c
84324 +++ b/fs/nls/nls_koi8-ru.c
84325 @@ -62,8 +62,10 @@ static int __init init_nls_koi8_ru(void)
84326 p_nls = load_nls("koi8-u");
84327
84328 if (p_nls) {
84329 - table.charset2upper = p_nls->charset2upper;
84330 - table.charset2lower = p_nls->charset2lower;
84331 + pax_open_kernel();
84332 + *(const unsigned char **)&table.charset2upper = p_nls->charset2upper;
84333 + *(const unsigned char **)&table.charset2lower = p_nls->charset2lower;
84334 + pax_close_kernel();
84335 return register_nls(&table);
84336 }
84337
84338 diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c
84339 index 8e8e6bc..211eeca 100644
84340 --- a/fs/notify/fanotify/fanotify_user.c
84341 +++ b/fs/notify/fanotify/fanotify_user.c
84342 @@ -216,8 +216,8 @@ static ssize_t copy_event_to_user(struct fsnotify_group *group,
84343
84344 fd = fanotify_event_metadata.fd;
84345 ret = -EFAULT;
84346 - if (copy_to_user(buf, &fanotify_event_metadata,
84347 - fanotify_event_metadata.event_len))
84348 + if (fanotify_event_metadata.event_len > sizeof fanotify_event_metadata ||
84349 + copy_to_user(buf, &fanotify_event_metadata, fanotify_event_metadata.event_len))
84350 goto out_close_fd;
84351
84352 #ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS
84353 diff --git a/fs/notify/notification.c b/fs/notify/notification.c
84354 index a95d8e0..a91a5fd 100644
84355 --- a/fs/notify/notification.c
84356 +++ b/fs/notify/notification.c
84357 @@ -48,7 +48,7 @@
84358 #include <linux/fsnotify_backend.h>
84359 #include "fsnotify.h"
84360
84361 -static atomic_t fsnotify_sync_cookie = ATOMIC_INIT(0);
84362 +static atomic_unchecked_t fsnotify_sync_cookie = ATOMIC_INIT(0);
84363
84364 /**
84365 * fsnotify_get_cookie - return a unique cookie for use in synchronizing events.
84366 @@ -56,7 +56,7 @@ static atomic_t fsnotify_sync_cookie = ATOMIC_INIT(0);
84367 */
84368 u32 fsnotify_get_cookie(void)
84369 {
84370 - return atomic_inc_return(&fsnotify_sync_cookie);
84371 + return atomic_inc_return_unchecked(&fsnotify_sync_cookie);
84372 }
84373 EXPORT_SYMBOL_GPL(fsnotify_get_cookie);
84374
84375 diff --git a/fs/ntfs/dir.c b/fs/ntfs/dir.c
84376 index 9e38daf..5727cae 100644
84377 --- a/fs/ntfs/dir.c
84378 +++ b/fs/ntfs/dir.c
84379 @@ -1310,7 +1310,7 @@ find_next_index_buffer:
84380 ia = (INDEX_ALLOCATION*)(kaddr + (ia_pos & ~PAGE_CACHE_MASK &
84381 ~(s64)(ndir->itype.index.block_size - 1)));
84382 /* Bounds checks. */
84383 - if (unlikely((u8*)ia < kaddr || (u8*)ia > kaddr + PAGE_CACHE_SIZE)) {
84384 + if (unlikely(!kaddr || (u8*)ia < kaddr || (u8*)ia > kaddr + PAGE_CACHE_SIZE)) {
84385 ntfs_error(sb, "Out of bounds check failed. Corrupt directory "
84386 "inode 0x%lx or driver bug.", vdir->i_ino);
84387 goto err_out;
84388 diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c
84389 index d1a8535..1cfa4a9 100644
84390 --- a/fs/ntfs/super.c
84391 +++ b/fs/ntfs/super.c
84392 @@ -688,7 +688,7 @@ static struct buffer_head *read_ntfs_boot_sector(struct super_block *sb,
84393 if (!silent)
84394 ntfs_error(sb, "Primary boot sector is invalid.");
84395 } else if (!silent)
84396 - ntfs_error(sb, read_err_str, "primary");
84397 + ntfs_error(sb, read_err_str, "%s", "primary");
84398 if (!(NTFS_SB(sb)->on_errors & ON_ERRORS_RECOVER)) {
84399 if (bh_primary)
84400 brelse(bh_primary);
84401 @@ -704,7 +704,7 @@ static struct buffer_head *read_ntfs_boot_sector(struct super_block *sb,
84402 goto hotfix_primary_boot_sector;
84403 brelse(bh_backup);
84404 } else if (!silent)
84405 - ntfs_error(sb, read_err_str, "backup");
84406 + ntfs_error(sb, read_err_str, "%s", "backup");
84407 /* Try to read NT3.51- backup boot sector. */
84408 if ((bh_backup = sb_bread(sb, nr_blocks >> 1))) {
84409 if (is_boot_sector_ntfs(sb, (NTFS_BOOT_SECTOR*)
84410 @@ -715,7 +715,7 @@ static struct buffer_head *read_ntfs_boot_sector(struct super_block *sb,
84411 "sector.");
84412 brelse(bh_backup);
84413 } else if (!silent)
84414 - ntfs_error(sb, read_err_str, "backup");
84415 + ntfs_error(sb, read_err_str, "%s", "backup");
84416 /* We failed. Cleanup and return. */
84417 if (bh_primary)
84418 brelse(bh_primary);
84419 diff --git a/fs/ocfs2/dlm/dlmcommon.h b/fs/ocfs2/dlm/dlmcommon.h
84420 index e88ccf8..716dfce 100644
84421 --- a/fs/ocfs2/dlm/dlmcommon.h
84422 +++ b/fs/ocfs2/dlm/dlmcommon.h
84423 @@ -151,9 +151,9 @@ struct dlm_ctxt
84424 struct list_head mle_hb_events;
84425
84426 /* these give a really vague idea of the system load */
84427 - atomic_t mle_tot_count[DLM_MLE_NUM_TYPES];
84428 + atomic_unchecked_t mle_tot_count[DLM_MLE_NUM_TYPES];
84429 atomic_t mle_cur_count[DLM_MLE_NUM_TYPES];
84430 - atomic_t res_tot_count;
84431 + atomic_unchecked_t res_tot_count;
84432 atomic_t res_cur_count;
84433
84434 struct dlm_debug_ctxt *dlm_debug_ctxt;
84435 diff --git a/fs/ocfs2/dlm/dlmdebug.c b/fs/ocfs2/dlm/dlmdebug.c
84436 index 8251360..9c7513a 100644
84437 --- a/fs/ocfs2/dlm/dlmdebug.c
84438 +++ b/fs/ocfs2/dlm/dlmdebug.c
84439 @@ -755,10 +755,10 @@ static int debug_state_print(struct dlm_ctxt *dlm, char *buf, int len)
84440 out += snprintf(buf + out, len - out,
84441 "Lock Resources: %d (%d)\n",
84442 atomic_read(&dlm->res_cur_count),
84443 - atomic_read(&dlm->res_tot_count));
84444 + atomic_read_unchecked(&dlm->res_tot_count));
84445
84446 for (i = 0; i < DLM_MLE_NUM_TYPES; ++i)
84447 - tot_mles += atomic_read(&dlm->mle_tot_count[i]);
84448 + tot_mles += atomic_read_unchecked(&dlm->mle_tot_count[i]);
84449
84450 for (i = 0; i < DLM_MLE_NUM_TYPES; ++i)
84451 cur_mles += atomic_read(&dlm->mle_cur_count[i]);
84452 @@ -771,19 +771,19 @@ static int debug_state_print(struct dlm_ctxt *dlm, char *buf, int len)
84453 out += snprintf(buf + out, len - out,
84454 " Blocking: %d (%d)\n",
84455 atomic_read(&dlm->mle_cur_count[DLM_MLE_BLOCK]),
84456 - atomic_read(&dlm->mle_tot_count[DLM_MLE_BLOCK]));
84457 + atomic_read_unchecked(&dlm->mle_tot_count[DLM_MLE_BLOCK]));
84458
84459 /* Mastery: xxx (xxx) */
84460 out += snprintf(buf + out, len - out,
84461 " Mastery: %d (%d)\n",
84462 atomic_read(&dlm->mle_cur_count[DLM_MLE_MASTER]),
84463 - atomic_read(&dlm->mle_tot_count[DLM_MLE_MASTER]));
84464 + atomic_read_unchecked(&dlm->mle_tot_count[DLM_MLE_MASTER]));
84465
84466 /* Migration: xxx (xxx) */
84467 out += snprintf(buf + out, len - out,
84468 " Migration: %d (%d)\n",
84469 atomic_read(&dlm->mle_cur_count[DLM_MLE_MIGRATION]),
84470 - atomic_read(&dlm->mle_tot_count[DLM_MLE_MIGRATION]));
84471 + atomic_read_unchecked(&dlm->mle_tot_count[DLM_MLE_MIGRATION]));
84472
84473 /* Lists: Dirty=Empty Purge=InUse PendingASTs=Empty ... */
84474 out += snprintf(buf + out, len - out,
84475 diff --git a/fs/ocfs2/dlm/dlmdomain.c b/fs/ocfs2/dlm/dlmdomain.c
84476 index 2ee7fe7..9cff42d 100644
84477 --- a/fs/ocfs2/dlm/dlmdomain.c
84478 +++ b/fs/ocfs2/dlm/dlmdomain.c
84479 @@ -2048,10 +2048,10 @@ static struct dlm_ctxt *dlm_alloc_ctxt(const char *domain,
84480 dlm->reco.new_master = O2NM_INVALID_NODE_NUM;
84481 dlm->reco.dead_node = O2NM_INVALID_NODE_NUM;
84482
84483 - atomic_set(&dlm->res_tot_count, 0);
84484 + atomic_set_unchecked(&dlm->res_tot_count, 0);
84485 atomic_set(&dlm->res_cur_count, 0);
84486 for (i = 0; i < DLM_MLE_NUM_TYPES; ++i) {
84487 - atomic_set(&dlm->mle_tot_count[i], 0);
84488 + atomic_set_unchecked(&dlm->mle_tot_count[i], 0);
84489 atomic_set(&dlm->mle_cur_count[i], 0);
84490 }
84491
84492 diff --git a/fs/ocfs2/dlm/dlmmaster.c b/fs/ocfs2/dlm/dlmmaster.c
84493 index 4e2162b..06d7446 100644
84494 --- a/fs/ocfs2/dlm/dlmmaster.c
84495 +++ b/fs/ocfs2/dlm/dlmmaster.c
84496 @@ -303,7 +303,7 @@ static void dlm_init_mle(struct dlm_master_list_entry *mle,
84497 mle->mnamehash = dlm_lockid_hash(name, namelen);
84498 }
84499
84500 - atomic_inc(&dlm->mle_tot_count[mle->type]);
84501 + atomic_inc_unchecked(&dlm->mle_tot_count[mle->type]);
84502 atomic_inc(&dlm->mle_cur_count[mle->type]);
84503
84504 /* copy off the node_map and register hb callbacks on our copy */
84505 @@ -577,7 +577,7 @@ static void dlm_init_lockres(struct dlm_ctxt *dlm,
84506
84507 kref_init(&res->refs);
84508
84509 - atomic_inc(&dlm->res_tot_count);
84510 + atomic_inc_unchecked(&dlm->res_tot_count);
84511 atomic_inc(&dlm->res_cur_count);
84512
84513 /* just for consistency */
84514 diff --git a/fs/ocfs2/localalloc.c b/fs/ocfs2/localalloc.c
84515 index 0a4457f..67ddb4f 100644
84516 --- a/fs/ocfs2/localalloc.c
84517 +++ b/fs/ocfs2/localalloc.c
84518 @@ -1319,7 +1319,7 @@ static int ocfs2_local_alloc_slide_window(struct ocfs2_super *osb,
84519 goto bail;
84520 }
84521
84522 - atomic_inc(&osb->alloc_stats.moves);
84523 + atomic_inc_unchecked(&osb->alloc_stats.moves);
84524
84525 bail:
84526 if (handle)
84527 diff --git a/fs/ocfs2/ocfs2.h b/fs/ocfs2/ocfs2.h
84528 index 7a01262..23667d1 100644
84529 --- a/fs/ocfs2/ocfs2.h
84530 +++ b/fs/ocfs2/ocfs2.h
84531 @@ -247,11 +247,11 @@ enum ocfs2_vol_state
84532
84533 struct ocfs2_alloc_stats
84534 {
84535 - atomic_t moves;
84536 - atomic_t local_data;
84537 - atomic_t bitmap_data;
84538 - atomic_t bg_allocs;
84539 - atomic_t bg_extends;
84540 + atomic_unchecked_t moves;
84541 + atomic_unchecked_t local_data;
84542 + atomic_unchecked_t bitmap_data;
84543 + atomic_unchecked_t bg_allocs;
84544 + atomic_unchecked_t bg_extends;
84545 };
84546
84547 enum ocfs2_local_alloc_state
84548 diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
84549 index fc6d25f..7b72242 100644
84550 --- a/fs/ocfs2/suballoc.c
84551 +++ b/fs/ocfs2/suballoc.c
84552 @@ -851,7 +851,7 @@ static int ocfs2_reserve_suballoc_bits(struct ocfs2_super *osb,
84553 mlog_errno(status);
84554 goto bail;
84555 }
84556 - atomic_inc(&osb->alloc_stats.bg_extends);
84557 + atomic_inc_unchecked(&osb->alloc_stats.bg_extends);
84558
84559 /* You should never ask for this much metadata */
84560 BUG_ON(bits_wanted >
84561 @@ -1998,7 +1998,7 @@ int ocfs2_claim_metadata(handle_t *handle,
84562 mlog_errno(status);
84563 goto bail;
84564 }
84565 - atomic_inc(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
84566 + atomic_inc_unchecked(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
84567
84568 *suballoc_loc = res.sr_bg_blkno;
84569 *suballoc_bit_start = res.sr_bit_offset;
84570 @@ -2164,7 +2164,7 @@ int ocfs2_claim_new_inode_at_loc(handle_t *handle,
84571 trace_ocfs2_claim_new_inode_at_loc((unsigned long long)di_blkno,
84572 res->sr_bits);
84573
84574 - atomic_inc(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
84575 + atomic_inc_unchecked(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
84576
84577 BUG_ON(res->sr_bits != 1);
84578
84579 @@ -2206,7 +2206,7 @@ int ocfs2_claim_new_inode(handle_t *handle,
84580 mlog_errno(status);
84581 goto bail;
84582 }
84583 - atomic_inc(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
84584 + atomic_inc_unchecked(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
84585
84586 BUG_ON(res.sr_bits != 1);
84587
84588 @@ -2310,7 +2310,7 @@ int __ocfs2_claim_clusters(handle_t *handle,
84589 cluster_start,
84590 num_clusters);
84591 if (!status)
84592 - atomic_inc(&osb->alloc_stats.local_data);
84593 + atomic_inc_unchecked(&osb->alloc_stats.local_data);
84594 } else {
84595 if (min_clusters > (osb->bitmap_cpg - 1)) {
84596 /* The only paths asking for contiguousness
84597 @@ -2336,7 +2336,7 @@ int __ocfs2_claim_clusters(handle_t *handle,
84598 ocfs2_desc_bitmap_to_cluster_off(ac->ac_inode,
84599 res.sr_bg_blkno,
84600 res.sr_bit_offset);
84601 - atomic_inc(&osb->alloc_stats.bitmap_data);
84602 + atomic_inc_unchecked(&osb->alloc_stats.bitmap_data);
84603 *num_clusters = res.sr_bits;
84604 }
84605 }
84606 diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
84607 index 2de4c8a..a106a0d 100644
84608 --- a/fs/ocfs2/super.c
84609 +++ b/fs/ocfs2/super.c
84610 @@ -310,11 +310,11 @@ static int ocfs2_osb_dump(struct ocfs2_super *osb, char *buf, int len)
84611 "%10s => GlobalAllocs: %d LocalAllocs: %d "
84612 "SubAllocs: %d LAWinMoves: %d SAExtends: %d\n",
84613 "Stats",
84614 - atomic_read(&osb->alloc_stats.bitmap_data),
84615 - atomic_read(&osb->alloc_stats.local_data),
84616 - atomic_read(&osb->alloc_stats.bg_allocs),
84617 - atomic_read(&osb->alloc_stats.moves),
84618 - atomic_read(&osb->alloc_stats.bg_extends));
84619 + atomic_read_unchecked(&osb->alloc_stats.bitmap_data),
84620 + atomic_read_unchecked(&osb->alloc_stats.local_data),
84621 + atomic_read_unchecked(&osb->alloc_stats.bg_allocs),
84622 + atomic_read_unchecked(&osb->alloc_stats.moves),
84623 + atomic_read_unchecked(&osb->alloc_stats.bg_extends));
84624
84625 out += snprintf(buf + out, len - out,
84626 "%10s => State: %u Descriptor: %llu Size: %u bits "
84627 @@ -2106,11 +2106,11 @@ static int ocfs2_initialize_super(struct super_block *sb,
84628
84629 mutex_init(&osb->system_file_mutex);
84630
84631 - atomic_set(&osb->alloc_stats.moves, 0);
84632 - atomic_set(&osb->alloc_stats.local_data, 0);
84633 - atomic_set(&osb->alloc_stats.bitmap_data, 0);
84634 - atomic_set(&osb->alloc_stats.bg_allocs, 0);
84635 - atomic_set(&osb->alloc_stats.bg_extends, 0);
84636 + atomic_set_unchecked(&osb->alloc_stats.moves, 0);
84637 + atomic_set_unchecked(&osb->alloc_stats.local_data, 0);
84638 + atomic_set_unchecked(&osb->alloc_stats.bitmap_data, 0);
84639 + atomic_set_unchecked(&osb->alloc_stats.bg_allocs, 0);
84640 + atomic_set_unchecked(&osb->alloc_stats.bg_extends, 0);
84641
84642 /* Copy the blockcheck stats from the superblock probe */
84643 osb->osb_ecc_stats = *stats;
84644 diff --git a/fs/open.c b/fs/open.c
84645 index b6f1e96..3108eed 100644
84646 --- a/fs/open.c
84647 +++ b/fs/open.c
84648 @@ -32,6 +32,8 @@
84649 #include <linux/dnotify.h>
84650 #include <linux/compat.h>
84651
84652 +#define CREATE_TRACE_POINTS
84653 +#include <trace/events/fs.h>
84654 #include "internal.h"
84655
84656 int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
84657 @@ -105,6 +107,8 @@ long vfs_truncate(struct path *path, loff_t length)
84658 error = locks_verify_truncate(inode, NULL, length);
84659 if (!error)
84660 error = security_path_truncate(path);
84661 + if (!error && !gr_acl_handle_truncate(path->dentry, path->mnt))
84662 + error = -EACCES;
84663 if (!error)
84664 error = do_truncate(path->dentry, length, 0, NULL);
84665
84666 @@ -189,6 +193,8 @@ static long do_sys_ftruncate(unsigned int fd, loff_t length, int small)
84667 error = locks_verify_truncate(inode, f.file, length);
84668 if (!error)
84669 error = security_path_truncate(&f.file->f_path);
84670 + if (!error && !gr_acl_handle_truncate(f.file->f_path.dentry, f.file->f_path.mnt))
84671 + error = -EACCES;
84672 if (!error)
84673 error = do_truncate(dentry, length, ATTR_MTIME|ATTR_CTIME, f.file);
84674 sb_end_write(inode->i_sb);
84675 @@ -398,6 +404,9 @@ retry:
84676 if (__mnt_is_readonly(path.mnt))
84677 res = -EROFS;
84678
84679 + if (!res && !gr_acl_handle_access(path.dentry, path.mnt, mode))
84680 + res = -EACCES;
84681 +
84682 out_path_release:
84683 path_put(&path);
84684 if (retry_estale(res, lookup_flags)) {
84685 @@ -429,6 +438,8 @@ retry:
84686 if (error)
84687 goto dput_and_out;
84688
84689 + gr_log_chdir(path.dentry, path.mnt);
84690 +
84691 set_fs_pwd(current->fs, &path);
84692
84693 dput_and_out:
84694 @@ -458,6 +469,13 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd)
84695 goto out_putf;
84696
84697 error = inode_permission(inode, MAY_EXEC | MAY_CHDIR);
84698 +
84699 + if (!error && !gr_chroot_fchdir(f.file->f_path.dentry, f.file->f_path.mnt))
84700 + error = -EPERM;
84701 +
84702 + if (!error)
84703 + gr_log_chdir(f.file->f_path.dentry, f.file->f_path.mnt);
84704 +
84705 if (!error)
84706 set_fs_pwd(current->fs, &f.file->f_path);
84707 out_putf:
84708 @@ -487,7 +505,13 @@ retry:
84709 if (error)
84710 goto dput_and_out;
84711
84712 + if (gr_handle_chroot_chroot(path.dentry, path.mnt))
84713 + goto dput_and_out;
84714 +
84715 set_fs_root(current->fs, &path);
84716 +
84717 + gr_handle_chroot_chdir(&path);
84718 +
84719 error = 0;
84720 dput_and_out:
84721 path_put(&path);
84722 @@ -511,6 +535,16 @@ static int chmod_common(struct path *path, umode_t mode)
84723 return error;
84724 retry_deleg:
84725 mutex_lock(&inode->i_mutex);
84726 +
84727 + if (!gr_acl_handle_chmod(path->dentry, path->mnt, &mode)) {
84728 + error = -EACCES;
84729 + goto out_unlock;
84730 + }
84731 + if (gr_handle_chroot_chmod(path->dentry, path->mnt, mode)) {
84732 + error = -EACCES;
84733 + goto out_unlock;
84734 + }
84735 +
84736 error = security_path_chmod(path, mode);
84737 if (error)
84738 goto out_unlock;
84739 @@ -576,6 +610,9 @@ static int chown_common(struct path *path, uid_t user, gid_t group)
84740 uid = make_kuid(current_user_ns(), user);
84741 gid = make_kgid(current_user_ns(), group);
84742
84743 + if (!gr_acl_handle_chown(path->dentry, path->mnt))
84744 + return -EACCES;
84745 +
84746 retry_deleg:
84747 newattrs.ia_valid = ATTR_CTIME;
84748 if (user != (uid_t) -1) {
84749 @@ -1029,6 +1066,7 @@ long do_sys_open(int dfd, const char __user *filename, int flags, umode_t mode)
84750 } else {
84751 fsnotify_open(f);
84752 fd_install(fd, f);
84753 + trace_do_sys_open(tmp->name, flags, mode);
84754 }
84755 }
84756 putname(tmp);
84757 diff --git a/fs/overlayfs/copy_up.c b/fs/overlayfs/copy_up.c
84758 index eff6319..d8a12987 100644
84759 --- a/fs/overlayfs/copy_up.c
84760 +++ b/fs/overlayfs/copy_up.c
84761 @@ -153,7 +153,7 @@ static char *ovl_read_symlink(struct dentry *realdentry)
84762 set_fs(get_ds());
84763 /* The cast to a user pointer is valid due to the set_fs() */
84764 res = inode->i_op->readlink(realdentry,
84765 - (char __user *)buf, PAGE_SIZE - 1);
84766 + (char __force_user *)buf, PAGE_SIZE - 1);
84767 set_fs(old_fs);
84768 if (res < 0) {
84769 free_page((unsigned long) buf);
84770 diff --git a/fs/overlayfs/inode.c b/fs/overlayfs/inode.c
84771 index b29036a..dcce79c 100644
84772 --- a/fs/overlayfs/inode.c
84773 +++ b/fs/overlayfs/inode.c
84774 @@ -356,6 +356,9 @@ struct inode *ovl_d_select_inode(struct dentry *dentry, unsigned file_flags)
84775 if (d_is_dir(dentry))
84776 return d_backing_inode(dentry);
84777
84778 + if (d_is_dir(dentry))
84779 + return d_backing_inode(dentry);
84780 +
84781 type = ovl_path_real(dentry, &realpath);
84782 if (ovl_open_need_copy_up(file_flags, type, realpath.dentry)) {
84783 err = ovl_want_write(dentry);
84784 diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c
84785 index f42c940..e5ae48a 100644
84786 --- a/fs/overlayfs/super.c
84787 +++ b/fs/overlayfs/super.c
84788 @@ -173,7 +173,7 @@ void ovl_path_lower(struct dentry *dentry, struct path *path)
84789 {
84790 struct ovl_entry *oe = dentry->d_fsdata;
84791
84792 - *path = oe->numlower ? oe->lowerstack[0] : (struct path) { NULL, NULL };
84793 + *path = oe->numlower ? oe->lowerstack[0] : (struct path) { .dentry = NULL, .mnt = NULL };
84794 }
84795
84796 int ovl_want_write(struct dentry *dentry)
84797 @@ -881,8 +881,8 @@ static unsigned int ovl_split_lowerdirs(char *str)
84798
84799 static int ovl_fill_super(struct super_block *sb, void *data, int silent)
84800 {
84801 - struct path upperpath = { NULL, NULL };
84802 - struct path workpath = { NULL, NULL };
84803 + struct path upperpath = { .dentry = NULL, .mnt = NULL };
84804 + struct path workpath = { .dentry = NULL, .mnt = NULL };
84805 struct dentry *root_dentry;
84806 struct ovl_entry *oe;
84807 struct ovl_fs *ufs;
84808 diff --git a/fs/pipe.c b/fs/pipe.c
84809 index 42cf8dd..932cb27 100644
84810 --- a/fs/pipe.c
84811 +++ b/fs/pipe.c
84812 @@ -36,7 +36,13 @@ unsigned int pipe_max_size = 1048576;
84813 /*
84814 * Minimum pipe size, as required by POSIX
84815 */
84816 -unsigned int pipe_min_size = PAGE_SIZE;
84817 +unsigned int pipe_min_size __read_only = PAGE_SIZE;
84818 +
84819 +/* Maximum allocatable pages per user. Hard limit is unset by default, soft
84820 + * matches default values.
84821 + */
84822 +unsigned long pipe_user_pages_hard;
84823 +unsigned long pipe_user_pages_soft = PIPE_DEF_BUFFERS * INR_OPEN_CUR;
84824
84825 /*
84826 * We use a start+len construction, which provides full use of the
84827 @@ -55,7 +61,7 @@ unsigned int pipe_min_size = PAGE_SIZE;
84828
84829 static void pipe_lock_nested(struct pipe_inode_info *pipe, int subclass)
84830 {
84831 - if (pipe->files)
84832 + if (atomic_read(&pipe->files))
84833 mutex_lock_nested(&pipe->mutex, subclass);
84834 }
84835
84836 @@ -70,7 +76,7 @@ EXPORT_SYMBOL(pipe_lock);
84837
84838 void pipe_unlock(struct pipe_inode_info *pipe)
84839 {
84840 - if (pipe->files)
84841 + if (atomic_read(&pipe->files))
84842 mutex_unlock(&pipe->mutex);
84843 }
84844 EXPORT_SYMBOL(pipe_unlock);
84845 @@ -291,9 +297,9 @@ pipe_read(struct kiocb *iocb, struct iov_iter *to)
84846 }
84847 if (bufs) /* More to do? */
84848 continue;
84849 - if (!pipe->writers)
84850 + if (!atomic_read(&pipe->writers))
84851 break;
84852 - if (!pipe->waiting_writers) {
84853 + if (!atomic_read(&pipe->waiting_writers)) {
84854 /* syscall merging: Usually we must not sleep
84855 * if O_NONBLOCK is set, or if we got some data.
84856 * But if a writer sleeps in kernel space, then
84857 @@ -350,7 +356,7 @@ pipe_write(struct kiocb *iocb, struct iov_iter *from)
84858
84859 __pipe_lock(pipe);
84860
84861 - if (!pipe->readers) {
84862 + if (!atomic_read(&pipe->readers)) {
84863 send_sig(SIGPIPE, current, 0);
84864 ret = -EPIPE;
84865 goto out;
84866 @@ -385,7 +391,7 @@ pipe_write(struct kiocb *iocb, struct iov_iter *from)
84867 for (;;) {
84868 int bufs;
84869
84870 - if (!pipe->readers) {
84871 + if (!atomic_read(&pipe->readers)) {
84872 send_sig(SIGPIPE, current, 0);
84873 if (!ret)
84874 ret = -EPIPE;
84875 @@ -453,9 +459,9 @@ pipe_write(struct kiocb *iocb, struct iov_iter *from)
84876 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
84877 do_wakeup = 0;
84878 }
84879 - pipe->waiting_writers++;
84880 + atomic_inc(&pipe->waiting_writers);
84881 pipe_wait(pipe);
84882 - pipe->waiting_writers--;
84883 + atomic_dec(&pipe->waiting_writers);
84884 }
84885 out:
84886 __pipe_unlock(pipe);
84887 @@ -510,7 +516,7 @@ pipe_poll(struct file *filp, poll_table *wait)
84888 mask = 0;
84889 if (filp->f_mode & FMODE_READ) {
84890 mask = (nrbufs > 0) ? POLLIN | POLLRDNORM : 0;
84891 - if (!pipe->writers && filp->f_version != pipe->w_counter)
84892 + if (!atomic_read(&pipe->writers) && filp->f_version != pipe->w_counter)
84893 mask |= POLLHUP;
84894 }
84895
84896 @@ -520,7 +526,7 @@ pipe_poll(struct file *filp, poll_table *wait)
84897 * Most Unices do not set POLLERR for FIFOs but on Linux they
84898 * behave exactly like pipes for poll().
84899 */
84900 - if (!pipe->readers)
84901 + if (!atomic_read(&pipe->readers))
84902 mask |= POLLERR;
84903 }
84904
84905 @@ -532,7 +538,7 @@ static void put_pipe_info(struct inode *inode, struct pipe_inode_info *pipe)
84906 int kill = 0;
84907
84908 spin_lock(&inode->i_lock);
84909 - if (!--pipe->files) {
84910 + if (atomic_dec_and_test(&pipe->files)) {
84911 inode->i_pipe = NULL;
84912 kill = 1;
84913 }
84914 @@ -549,11 +555,11 @@ pipe_release(struct inode *inode, struct file *file)
84915
84916 __pipe_lock(pipe);
84917 if (file->f_mode & FMODE_READ)
84918 - pipe->readers--;
84919 + atomic_dec(&pipe->readers);
84920 if (file->f_mode & FMODE_WRITE)
84921 - pipe->writers--;
84922 + atomic_dec(&pipe->writers);
84923
84924 - if (pipe->readers || pipe->writers) {
84925 + if (atomic_read(&pipe->readers) || atomic_read(&pipe->writers)) {
84926 wake_up_interruptible_sync_poll(&pipe->wait, POLLIN | POLLOUT | POLLRDNORM | POLLWRNORM | POLLERR | POLLHUP);
84927 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
84928 kill_fasync(&pipe->fasync_writers, SIGIO, POLL_OUT);
84929 @@ -583,20 +589,49 @@ pipe_fasync(int fd, struct file *filp, int on)
84930 return retval;
84931 }
84932
84933 +static void account_pipe_buffers(struct pipe_inode_info *pipe,
84934 + unsigned long old, unsigned long new)
84935 +{
84936 + atomic_long_add(new - old, &pipe->user->pipe_bufs);
84937 +}
84938 +
84939 +static bool too_many_pipe_buffers_soft(struct user_struct *user)
84940 +{
84941 + return pipe_user_pages_soft &&
84942 + atomic_long_read(&user->pipe_bufs) >= pipe_user_pages_soft;
84943 +}
84944 +
84945 +static bool too_many_pipe_buffers_hard(struct user_struct *user)
84946 +{
84947 + return pipe_user_pages_hard &&
84948 + atomic_long_read(&user->pipe_bufs) >= pipe_user_pages_hard;
84949 +}
84950 +
84951 struct pipe_inode_info *alloc_pipe_info(void)
84952 {
84953 struct pipe_inode_info *pipe;
84954
84955 pipe = kzalloc(sizeof(struct pipe_inode_info), GFP_KERNEL);
84956 if (pipe) {
84957 - pipe->bufs = kzalloc(sizeof(struct pipe_buffer) * PIPE_DEF_BUFFERS, GFP_KERNEL);
84958 + unsigned long pipe_bufs = PIPE_DEF_BUFFERS;
84959 + struct user_struct *user = get_current_user();
84960 +
84961 + if (!too_many_pipe_buffers_hard(user)) {
84962 + if (too_many_pipe_buffers_soft(user))
84963 + pipe_bufs = 1;
84964 + pipe->bufs = kzalloc(sizeof(struct pipe_buffer) * pipe_bufs, GFP_KERNEL);
84965 + }
84966 +
84967 if (pipe->bufs) {
84968 init_waitqueue_head(&pipe->wait);
84969 pipe->r_counter = pipe->w_counter = 1;
84970 - pipe->buffers = PIPE_DEF_BUFFERS;
84971 + pipe->buffers = pipe_bufs;
84972 + pipe->user = user;
84973 + account_pipe_buffers(pipe, 0, pipe_bufs);
84974 mutex_init(&pipe->mutex);
84975 return pipe;
84976 }
84977 + free_uid(user);
84978 kfree(pipe);
84979 }
84980
84981 @@ -607,6 +642,8 @@ void free_pipe_info(struct pipe_inode_info *pipe)
84982 {
84983 int i;
84984
84985 + account_pipe_buffers(pipe, pipe->buffers, 0);
84986 + free_uid(pipe->user);
84987 for (i = 0; i < pipe->buffers; i++) {
84988 struct pipe_buffer *buf = pipe->bufs + i;
84989 if (buf->ops)
84990 @@ -618,7 +655,7 @@ void free_pipe_info(struct pipe_inode_info *pipe)
84991 kfree(pipe);
84992 }
84993
84994 -static struct vfsmount *pipe_mnt __read_mostly;
84995 +struct vfsmount *pipe_mnt __read_mostly;
84996
84997 /*
84998 * pipefs_dname() is called from d_path().
84999 @@ -648,8 +685,9 @@ static struct inode * get_pipe_inode(void)
85000 goto fail_iput;
85001
85002 inode->i_pipe = pipe;
85003 - pipe->files = 2;
85004 - pipe->readers = pipe->writers = 1;
85005 + atomic_set(&pipe->files, 2);
85006 + atomic_set(&pipe->readers, 1);
85007 + atomic_set(&pipe->writers, 1);
85008 inode->i_fop = &pipefifo_fops;
85009
85010 /*
85011 @@ -831,17 +869,17 @@ static int fifo_open(struct inode *inode, struct file *filp)
85012 spin_lock(&inode->i_lock);
85013 if (inode->i_pipe) {
85014 pipe = inode->i_pipe;
85015 - pipe->files++;
85016 + atomic_inc(&pipe->files);
85017 spin_unlock(&inode->i_lock);
85018 } else {
85019 spin_unlock(&inode->i_lock);
85020 pipe = alloc_pipe_info();
85021 if (!pipe)
85022 return -ENOMEM;
85023 - pipe->files = 1;
85024 + atomic_set(&pipe->files, 1);
85025 spin_lock(&inode->i_lock);
85026 if (unlikely(inode->i_pipe)) {
85027 - inode->i_pipe->files++;
85028 + atomic_inc(&inode->i_pipe->files);
85029 spin_unlock(&inode->i_lock);
85030 free_pipe_info(pipe);
85031 pipe = inode->i_pipe;
85032 @@ -866,10 +904,10 @@ static int fifo_open(struct inode *inode, struct file *filp)
85033 * opened, even when there is no process writing the FIFO.
85034 */
85035 pipe->r_counter++;
85036 - if (pipe->readers++ == 0)
85037 + if (atomic_inc_return(&pipe->readers) == 1)
85038 wake_up_partner(pipe);
85039
85040 - if (!is_pipe && !pipe->writers) {
85041 + if (!is_pipe && !atomic_read(&pipe->writers)) {
85042 if ((filp->f_flags & O_NONBLOCK)) {
85043 /* suppress POLLHUP until we have
85044 * seen a writer */
85045 @@ -888,14 +926,14 @@ static int fifo_open(struct inode *inode, struct file *filp)
85046 * errno=ENXIO when there is no process reading the FIFO.
85047 */
85048 ret = -ENXIO;
85049 - if (!is_pipe && (filp->f_flags & O_NONBLOCK) && !pipe->readers)
85050 + if (!is_pipe && (filp->f_flags & O_NONBLOCK) && !atomic_read(&pipe->readers))
85051 goto err;
85052
85053 pipe->w_counter++;
85054 - if (!pipe->writers++)
85055 + if (atomic_inc_return(&pipe->writers) == 1)
85056 wake_up_partner(pipe);
85057
85058 - if (!is_pipe && !pipe->readers) {
85059 + if (!is_pipe && !atomic_read(&pipe->readers)) {
85060 if (wait_for_partner(pipe, &pipe->r_counter))
85061 goto err_wr;
85062 }
85063 @@ -909,11 +947,11 @@ static int fifo_open(struct inode *inode, struct file *filp)
85064 * the process can at least talk to itself.
85065 */
85066
85067 - pipe->readers++;
85068 - pipe->writers++;
85069 + atomic_inc(&pipe->readers);
85070 + atomic_inc(&pipe->writers);
85071 pipe->r_counter++;
85072 pipe->w_counter++;
85073 - if (pipe->readers == 1 || pipe->writers == 1)
85074 + if (atomic_read(&pipe->readers) == 1 || atomic_read(&pipe->writers) == 1)
85075 wake_up_partner(pipe);
85076 break;
85077
85078 @@ -927,13 +965,13 @@ static int fifo_open(struct inode *inode, struct file *filp)
85079 return 0;
85080
85081 err_rd:
85082 - if (!--pipe->readers)
85083 + if (atomic_dec_and_test(&pipe->readers))
85084 wake_up_interruptible(&pipe->wait);
85085 ret = -ERESTARTSYS;
85086 goto err;
85087
85088 err_wr:
85089 - if (!--pipe->writers)
85090 + if (atomic_dec_and_test(&pipe->writers))
85091 wake_up_interruptible(&pipe->wait);
85092 ret = -ERESTARTSYS;
85093 goto err;
85094 @@ -998,6 +1036,7 @@ static long pipe_set_size(struct pipe_inode_info *pipe, unsigned long nr_pages)
85095 memcpy(bufs + head, pipe->bufs, tail * sizeof(struct pipe_buffer));
85096 }
85097
85098 + account_pipe_buffers(pipe, pipe->buffers, nr_pages);
85099 pipe->curbuf = 0;
85100 kfree(pipe->bufs);
85101 pipe->bufs = bufs;
85102 @@ -1009,7 +1048,7 @@ static long pipe_set_size(struct pipe_inode_info *pipe, unsigned long nr_pages)
85103 * Currently we rely on the pipe array holding a power-of-2 number
85104 * of pages.
85105 */
85106 -static inline unsigned int round_pipe_size(unsigned int size)
85107 +static inline unsigned long round_pipe_size(unsigned long size)
85108 {
85109 unsigned long nr_pages;
85110
85111 @@ -1057,18 +1096,26 @@ long pipe_fcntl(struct file *file, unsigned int cmd, unsigned long arg)
85112
85113 switch (cmd) {
85114 case F_SETPIPE_SZ: {
85115 - unsigned int size, nr_pages;
85116 + unsigned long size, nr_pages;
85117 +
85118 + ret = -EINVAL;
85119 + if (arg < pipe_min_size)
85120 + goto out;
85121
85122 size = round_pipe_size(arg);
85123 nr_pages = size >> PAGE_SHIFT;
85124
85125 - ret = -EINVAL;
85126 - if (!nr_pages)
85127 + if (size < pipe_min_size)
85128 goto out;
85129
85130 if (!capable(CAP_SYS_RESOURCE) && size > pipe_max_size) {
85131 ret = -EPERM;
85132 goto out;
85133 + } else if ((too_many_pipe_buffers_hard(pipe->user) ||
85134 + too_many_pipe_buffers_soft(pipe->user)) &&
85135 + !capable(CAP_SYS_RESOURCE) && !capable(CAP_SYS_ADMIN)) {
85136 + ret = -EPERM;
85137 + goto out;
85138 }
85139 ret = pipe_set_size(pipe, nr_pages);
85140 break;
85141 diff --git a/fs/posix_acl.c b/fs/posix_acl.c
85142 index 4adde1e..9311892 100644
85143 --- a/fs/posix_acl.c
85144 +++ b/fs/posix_acl.c
85145 @@ -20,6 +20,7 @@
85146 #include <linux/xattr.h>
85147 #include <linux/export.h>
85148 #include <linux/user_namespace.h>
85149 +#include <linux/grsecurity.h>
85150
85151 struct posix_acl **acl_by_type(struct inode *inode, int type)
85152 {
85153 @@ -277,7 +278,7 @@ posix_acl_equiv_mode(const struct posix_acl *acl, umode_t *mode_p)
85154 }
85155 }
85156 if (mode_p)
85157 - *mode_p = (*mode_p & ~S_IRWXUGO) | mode;
85158 + *mode_p = ((*mode_p & ~S_IRWXUGO) | mode) & ~gr_acl_umask();
85159 return not_equiv;
85160 }
85161 EXPORT_SYMBOL(posix_acl_equiv_mode);
85162 @@ -427,7 +428,7 @@ static int posix_acl_create_masq(struct posix_acl *acl, umode_t *mode_p)
85163 mode &= (group_obj->e_perm << 3) | ~S_IRWXG;
85164 }
85165
85166 - *mode_p = (*mode_p & ~S_IRWXUGO) | mode;
85167 + *mode_p = ((*mode_p & ~S_IRWXUGO) | mode) & ~gr_acl_umask();
85168 return not_equiv;
85169 }
85170
85171 @@ -485,6 +486,8 @@ __posix_acl_create(struct posix_acl **acl, gfp_t gfp, umode_t *mode_p)
85172 struct posix_acl *clone = posix_acl_clone(*acl, gfp);
85173 int err = -ENOMEM;
85174 if (clone) {
85175 + *mode_p &= ~gr_acl_umask();
85176 +
85177 err = posix_acl_create_masq(clone, mode_p);
85178 if (err < 0) {
85179 posix_acl_release(clone);
85180 @@ -657,11 +660,12 @@ struct posix_acl *
85181 posix_acl_from_xattr(struct user_namespace *user_ns,
85182 const void *value, size_t size)
85183 {
85184 - posix_acl_xattr_header *header = (posix_acl_xattr_header *)value;
85185 - posix_acl_xattr_entry *entry = (posix_acl_xattr_entry *)(header+1), *end;
85186 + const posix_acl_xattr_header *header = (const posix_acl_xattr_header *)value;
85187 + const posix_acl_xattr_entry *entry = (const posix_acl_xattr_entry *)(header+1), *end;
85188 int count;
85189 struct posix_acl *acl;
85190 struct posix_acl_entry *acl_e;
85191 + umode_t umask = gr_acl_umask();
85192
85193 if (!value)
85194 return NULL;
85195 @@ -687,12 +691,18 @@ posix_acl_from_xattr(struct user_namespace *user_ns,
85196
85197 switch(acl_e->e_tag) {
85198 case ACL_USER_OBJ:
85199 + acl_e->e_perm &= ~((umask & S_IRWXU) >> 6);
85200 + break;
85201 case ACL_GROUP_OBJ:
85202 case ACL_MASK:
85203 + acl_e->e_perm &= ~((umask & S_IRWXG) >> 3);
85204 + break;
85205 case ACL_OTHER:
85206 + acl_e->e_perm &= ~(umask & S_IRWXO);
85207 break;
85208
85209 case ACL_USER:
85210 + acl_e->e_perm &= ~((umask & S_IRWXU) >> 6);
85211 acl_e->e_uid =
85212 make_kuid(user_ns,
85213 le32_to_cpu(entry->e_id));
85214 @@ -700,6 +710,7 @@ posix_acl_from_xattr(struct user_namespace *user_ns,
85215 goto fail;
85216 break;
85217 case ACL_GROUP:
85218 + acl_e->e_perm &= ~((umask & S_IRWXG) >> 3);
85219 acl_e->e_gid =
85220 make_kgid(user_ns,
85221 le32_to_cpu(entry->e_id));
85222 diff --git a/fs/proc/Kconfig b/fs/proc/Kconfig
85223 index 1ade120..a86f1a2 100644
85224 --- a/fs/proc/Kconfig
85225 +++ b/fs/proc/Kconfig
85226 @@ -30,7 +30,7 @@ config PROC_FS
85227
85228 config PROC_KCORE
85229 bool "/proc/kcore support" if !ARM
85230 - depends on PROC_FS && MMU
85231 + depends on PROC_FS && MMU && !GRKERNSEC_PROC_ADD
85232 help
85233 Provides a virtual ELF core file of the live kernel. This can
85234 be read with gdb and other ELF tools. No modifications can be
85235 @@ -38,8 +38,8 @@ config PROC_KCORE
85236
85237 config PROC_VMCORE
85238 bool "/proc/vmcore support"
85239 - depends on PROC_FS && CRASH_DUMP
85240 - default y
85241 + depends on PROC_FS && CRASH_DUMP && !GRKERNSEC
85242 + default n
85243 help
85244 Exports the dump image of crashed kernel in ELF format.
85245
85246 @@ -63,8 +63,8 @@ config PROC_SYSCTL
85247 limited in memory.
85248
85249 config PROC_PAGE_MONITOR
85250 - default y
85251 - depends on PROC_FS && MMU
85252 + default n
85253 + depends on PROC_FS && MMU && !GRKERNSEC
85254 bool "Enable /proc page monitoring" if EXPERT
85255 help
85256 Various /proc files exist to monitor process memory utilization:
85257 diff --git a/fs/proc/array.c b/fs/proc/array.c
85258 index b6c00ce..ab37ad1 100644
85259 --- a/fs/proc/array.c
85260 +++ b/fs/proc/array.c
85261 @@ -60,6 +60,7 @@
85262 #include <linux/tty.h>
85263 #include <linux/string.h>
85264 #include <linux/mman.h>
85265 +#include <linux/grsecurity.h>
85266 #include <linux/proc_fs.h>
85267 #include <linux/ioport.h>
85268 #include <linux/uaccess.h>
85269 @@ -351,6 +352,21 @@ static void task_cpus_allowed(struct seq_file *m, struct task_struct *task)
85270 cpumask_pr_args(&task->cpus_allowed));
85271 }
85272
85273 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
85274 +static inline void task_pax(struct seq_file *m, struct task_struct *p)
85275 +{
85276 + if (p->mm)
85277 + seq_printf(m, "PaX:\t%c%c%c%c%c\n",
85278 + p->mm->pax_flags & MF_PAX_PAGEEXEC ? 'P' : 'p',
85279 + p->mm->pax_flags & MF_PAX_EMUTRAMP ? 'E' : 'e',
85280 + p->mm->pax_flags & MF_PAX_MPROTECT ? 'M' : 'm',
85281 + p->mm->pax_flags & MF_PAX_RANDMMAP ? 'R' : 'r',
85282 + p->mm->pax_flags & MF_PAX_SEGMEXEC ? 'S' : 's');
85283 + else
85284 + seq_printf(m, "PaX:\t-----\n");
85285 +}
85286 +#endif
85287 +
85288 int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
85289 struct pid *pid, struct task_struct *task)
85290 {
85291 @@ -369,9 +385,24 @@ int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
85292 task_cpus_allowed(m, task);
85293 cpuset_task_status_allowed(m, task);
85294 task_context_switch_counts(m, task);
85295 +
85296 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
85297 + task_pax(m, task);
85298 +#endif
85299 +
85300 +#if defined(CONFIG_GRKERNSEC) && !defined(CONFIG_GRKERNSEC_NO_RBAC)
85301 + task_grsec_rbac(m, task);
85302 +#endif
85303 +
85304 return 0;
85305 }
85306
85307 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
85308 +#define PAX_RAND_FLAGS(_mm) (_mm != NULL && _mm != current->mm && \
85309 + (_mm->pax_flags & MF_PAX_RANDMMAP || \
85310 + _mm->pax_flags & MF_PAX_SEGMEXEC))
85311 +#endif
85312 +
85313 static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
85314 struct pid *pid, struct task_struct *task, int whole)
85315 {
85316 @@ -393,6 +424,13 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
85317 char tcomm[sizeof(task->comm)];
85318 unsigned long flags;
85319
85320 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
85321 + if (current->exec_id != m->exec_id) {
85322 + gr_log_badprocpid("stat");
85323 + return 0;
85324 + }
85325 +#endif
85326 +
85327 state = *get_task_state(task);
85328 vsize = eip = esp = 0;
85329 permitted = ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS | PTRACE_MODE_NOAUDIT);
85330 @@ -463,6 +501,19 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
85331 gtime = task_gtime(task);
85332 }
85333
85334 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
85335 + if (PAX_RAND_FLAGS(mm)) {
85336 + eip = 0;
85337 + esp = 0;
85338 + wchan = 0;
85339 + }
85340 +#endif
85341 +#ifdef CONFIG_GRKERNSEC_HIDESYM
85342 + wchan = 0;
85343 + eip =0;
85344 + esp =0;
85345 +#endif
85346 +
85347 /* scale priority and nice values from timeslices to -20..20 */
85348 /* to make it look like a "normal" Unix priority/nice value */
85349 priority = task_prio(task);
85350 @@ -494,9 +545,15 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
85351 seq_put_decimal_ull(m, ' ', vsize);
85352 seq_put_decimal_ull(m, ' ', mm ? get_mm_rss(mm) : 0);
85353 seq_put_decimal_ull(m, ' ', rsslim);
85354 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
85355 + seq_put_decimal_ull(m, ' ', PAX_RAND_FLAGS(mm) ? 1 : (mm ? (permitted ? mm->start_code : 1) : 0));
85356 + seq_put_decimal_ull(m, ' ', PAX_RAND_FLAGS(mm) ? 1 : (mm ? (permitted ? mm->end_code : 1) : 0));
85357 + seq_put_decimal_ull(m, ' ', PAX_RAND_FLAGS(mm) ? 0 : ((permitted && mm) ? mm->start_stack : 0));
85358 +#else
85359 seq_put_decimal_ull(m, ' ', mm ? (permitted ? mm->start_code : 1) : 0);
85360 seq_put_decimal_ull(m, ' ', mm ? (permitted ? mm->end_code : 1) : 0);
85361 seq_put_decimal_ull(m, ' ', (permitted && mm) ? mm->start_stack : 0);
85362 +#endif
85363 seq_put_decimal_ull(m, ' ', esp);
85364 seq_put_decimal_ull(m, ' ', eip);
85365 /* The signal information here is obsolete.
85366 @@ -530,7 +587,11 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
85367 seq_put_decimal_ull(m, ' ', cputime_to_clock_t(gtime));
85368 seq_put_decimal_ll(m, ' ', cputime_to_clock_t(cgtime));
85369
85370 - if (mm && permitted) {
85371 + if (mm && permitted
85372 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
85373 + && !PAX_RAND_FLAGS(mm)
85374 +#endif
85375 + ) {
85376 seq_put_decimal_ull(m, ' ', mm->start_data);
85377 seq_put_decimal_ull(m, ' ', mm->end_data);
85378 seq_put_decimal_ull(m, ' ', mm->start_brk);
85379 @@ -568,8 +629,15 @@ int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
85380 struct pid *pid, struct task_struct *task)
85381 {
85382 unsigned long size = 0, resident = 0, shared = 0, text = 0, data = 0;
85383 - struct mm_struct *mm = get_task_mm(task);
85384 + struct mm_struct *mm;
85385
85386 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
85387 + if (current->exec_id != m->exec_id) {
85388 + gr_log_badprocpid("statm");
85389 + return 0;
85390 + }
85391 +#endif
85392 + mm = get_task_mm(task);
85393 if (mm) {
85394 size = task_statm(mm, &shared, &text, &data, &resident);
85395 mmput(mm);
85396 @@ -592,6 +660,21 @@ int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
85397 return 0;
85398 }
85399
85400 +#ifdef CONFIG_GRKERNSEC_PROC_IPADDR
85401 +int proc_pid_ipaddr(struct seq_file *m, struct pid_namespace *ns, struct pid *pid, struct task_struct *task)
85402 +{
85403 + unsigned long flags;
85404 + u32 curr_ip = 0;
85405 +
85406 + if (lock_task_sighand(task, &flags)) {
85407 + curr_ip = task->signal->curr_ip;
85408 + unlock_task_sighand(task, &flags);
85409 + }
85410 + seq_printf(m, "%pI4\n", &curr_ip);
85411 + return 0;
85412 +}
85413 +#endif
85414 +
85415 #ifdef CONFIG_PROC_CHILDREN
85416 static struct pid *
85417 get_children_pid(struct inode *inode, struct pid *pid_prev, loff_t pos)
85418 diff --git a/fs/proc/base.c b/fs/proc/base.c
85419 index b7de324..417bafe 100644
85420 --- a/fs/proc/base.c
85421 +++ b/fs/proc/base.c
85422 @@ -113,6 +113,14 @@ struct pid_entry {
85423 union proc_op op;
85424 };
85425
85426 +struct getdents_callback {
85427 + struct linux_dirent __user * current_dir;
85428 + struct linux_dirent __user * previous;
85429 + struct file * file;
85430 + int count;
85431 + int error;
85432 +};
85433 +
85434 #define NOD(NAME, MODE, IOP, FOP, OP) { \
85435 .name = (NAME), \
85436 .len = sizeof(NAME) - 1, \
85437 @@ -224,6 +232,11 @@ static ssize_t proc_pid_cmdline_read(struct file *file, char __user *buf,
85438 goto out_mmput;
85439 }
85440
85441 + if (gr_acl_handle_procpidmem(tsk)) {
85442 + rv = 0;
85443 + goto out_mmput;
85444 + }
85445 +
85446 page = (char *)__get_free_page(GFP_TEMPORARY);
85447 if (!page) {
85448 rv = -ENOMEM;
85449 @@ -400,12 +413,28 @@ static const struct file_operations proc_pid_cmdline_ops = {
85450 .llseek = generic_file_llseek,
85451 };
85452
85453 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
85454 +#define PAX_RAND_FLAGS(_mm) (_mm != NULL && _mm != current->mm && \
85455 + (_mm->pax_flags & MF_PAX_RANDMMAP || \
85456 + _mm->pax_flags & MF_PAX_SEGMEXEC))
85457 +#endif
85458 +
85459 static int proc_pid_auxv(struct seq_file *m, struct pid_namespace *ns,
85460 struct pid *pid, struct task_struct *task)
85461 {
85462 struct mm_struct *mm = mm_access(task, PTRACE_MODE_READ_FSCREDS);
85463 if (mm && !IS_ERR(mm)) {
85464 unsigned int nwords = 0;
85465 +
85466 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
85467 + /* allow if we're currently ptracing this task */
85468 + if (PAX_RAND_FLAGS(mm) &&
85469 + (!(task->ptrace & PT_PTRACED) || (task->parent != current))) {
85470 + mmput(mm);
85471 + return 0;
85472 + }
85473 +#endif
85474 +
85475 do {
85476 nwords += 2;
85477 } while (mm->saved_auxv[nwords - 2] != 0); /* AT_NULL */
85478 @@ -417,7 +446,7 @@ static int proc_pid_auxv(struct seq_file *m, struct pid_namespace *ns,
85479 }
85480
85481
85482 -#ifdef CONFIG_KALLSYMS
85483 +#if defined(CONFIG_KALLSYMS) && !defined(CONFIG_GRKERNSEC_HIDESYM)
85484 /*
85485 * Provides a wchan file via kallsyms in a proper one-value-per-file format.
85486 * Returns the resolved symbol. If that fails, simply return the address.
85487 @@ -430,8 +459,8 @@ static int proc_pid_wchan(struct seq_file *m, struct pid_namespace *ns,
85488
85489 wchan = get_wchan(task);
85490
85491 - if (wchan && ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)
85492 - && !lookup_symbol_name(wchan, symname))
85493 + if (wchan && !lookup_symbol_name(wchan, symname)
85494 + && ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS))
85495 seq_printf(m, "%s", symname);
85496 else
85497 seq_putc(m, '0');
85498 @@ -457,7 +486,7 @@ static void unlock_trace(struct task_struct *task)
85499 mutex_unlock(&task->signal->cred_guard_mutex);
85500 }
85501
85502 -#ifdef CONFIG_STACKTRACE
85503 +#if defined(CONFIG_STACKTRACE) && !defined(CONFIG_GRKERNSEC_HIDESYM)
85504
85505 #define MAX_STACK_TRACE_DEPTH 64
85506
85507 @@ -655,7 +684,7 @@ static int proc_pid_limits(struct seq_file *m, struct pid_namespace *ns,
85508 return 0;
85509 }
85510
85511 -#ifdef CONFIG_HAVE_ARCH_TRACEHOOK
85512 +#if defined(CONFIG_HAVE_ARCH_TRACEHOOK) && !defined(CONFIG_GRKERNSEC_PROC_MEMMAP)
85513 static int proc_pid_syscall(struct seq_file *m, struct pid_namespace *ns,
85514 struct pid *pid, struct task_struct *task)
85515 {
85516 @@ -688,7 +717,7 @@ static int proc_pid_syscall(struct seq_file *m, struct pid_namespace *ns,
85517 /************************************************************************/
85518
85519 /* permission checks */
85520 -static int proc_fd_access_allowed(struct inode *inode)
85521 +static int proc_fd_access_allowed(struct inode *inode, unsigned int log)
85522 {
85523 struct task_struct *task;
85524 int allowed = 0;
85525 @@ -698,7 +727,10 @@ static int proc_fd_access_allowed(struct inode *inode)
85526 */
85527 task = get_proc_task(inode);
85528 if (task) {
85529 - allowed = ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS);
85530 + if (log)
85531 + allowed = ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS);
85532 + else
85533 + allowed = ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS | PTRACE_MODE_NOAUDIT);
85534 put_task_struct(task);
85535 }
85536 return allowed;
85537 @@ -729,6 +761,30 @@ static bool has_pid_permissions(struct pid_namespace *pid,
85538 struct task_struct *task,
85539 int hide_pid_min)
85540 {
85541 + if (gr_pid_is_chrooted(task) || gr_check_hidden_task(task))
85542 + return false;
85543 +
85544 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
85545 + rcu_read_lock();
85546 + {
85547 + const struct cred *tmpcred = current_cred();
85548 + const struct cred *cred = __task_cred(task);
85549 +
85550 + if (uid_eq(tmpcred->uid, GLOBAL_ROOT_UID) || uid_eq(tmpcred->uid, cred->uid)
85551 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
85552 + || in_group_p(grsec_proc_gid)
85553 +#endif
85554 + ) {
85555 + rcu_read_unlock();
85556 + return true;
85557 + }
85558 + }
85559 + rcu_read_unlock();
85560 +
85561 + if (!pid->hide_pid)
85562 + return ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS | PTRACE_MODE_NOAUDIT);
85563 +#endif
85564 +
85565 if (pid->hide_pid < hide_pid_min)
85566 return true;
85567 if (in_group_p(pid->pid_gid))
85568 @@ -750,7 +806,11 @@ static int proc_pid_permission(struct inode *inode, int mask)
85569 put_task_struct(task);
85570
85571 if (!has_perms) {
85572 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
85573 + {
85574 +#else
85575 if (pid->hide_pid == 2) {
85576 +#endif
85577 /*
85578 * Let's make getdents(), stat(), and open()
85579 * consistent with each other. If a process
85580 @@ -811,6 +871,10 @@ struct mm_struct *proc_mem_open(struct inode *inode, unsigned int mode)
85581
85582 if (task) {
85583 mm = mm_access(task, mode | PTRACE_MODE_FSCREDS);
85584 + if (!IS_ERR_OR_NULL(mm) && gr_acl_handle_procpidmem(task)) {
85585 + mmput(mm);
85586 + mm = ERR_PTR(-EPERM);
85587 + }
85588 put_task_struct(task);
85589
85590 if (!IS_ERR_OR_NULL(mm)) {
85591 @@ -832,6 +896,11 @@ static int __mem_open(struct inode *inode, struct file *file, unsigned int mode)
85592 return PTR_ERR(mm);
85593
85594 file->private_data = mm;
85595 +
85596 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
85597 + file->f_version = current->exec_id;
85598 +#endif
85599 +
85600 return 0;
85601 }
85602
85603 @@ -853,6 +922,17 @@ static ssize_t mem_rw(struct file *file, char __user *buf,
85604 ssize_t copied;
85605 char *page;
85606
85607 +#ifdef CONFIG_GRKERNSEC
85608 + if (write)
85609 + return -EPERM;
85610 +#endif
85611 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
85612 + if (file->f_version != current->exec_id) {
85613 + gr_log_badprocpid("mem");
85614 + return 0;
85615 + }
85616 +#endif
85617 +
85618 if (!mm)
85619 return 0;
85620
85621 @@ -865,7 +945,7 @@ static ssize_t mem_rw(struct file *file, char __user *buf,
85622 goto free;
85623
85624 while (count > 0) {
85625 - int this_len = min_t(int, count, PAGE_SIZE);
85626 + ssize_t this_len = min_t(ssize_t, count, PAGE_SIZE);
85627
85628 if (write && copy_from_user(page, buf, this_len)) {
85629 copied = -EFAULT;
85630 @@ -957,6 +1037,13 @@ static ssize_t environ_read(struct file *file, char __user *buf,
85631 if (!mm)
85632 return 0;
85633
85634 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
85635 + if (file->f_version != current->exec_id) {
85636 + gr_log_badprocpid("environ");
85637 + return 0;
85638 + }
85639 +#endif
85640 +
85641 page = (char *)__get_free_page(GFP_TEMPORARY);
85642 if (!page)
85643 return -ENOMEM;
85644 @@ -966,7 +1053,7 @@ static ssize_t environ_read(struct file *file, char __user *buf,
85645 goto free;
85646 while (count > 0) {
85647 size_t this_len, max_len;
85648 - int retval;
85649 + ssize_t retval;
85650
85651 if (src >= (mm->env_end - mm->env_start))
85652 break;
85653 @@ -1572,7 +1659,7 @@ static const char *proc_pid_follow_link(struct dentry *dentry, void **cookie)
85654 int error = -EACCES;
85655
85656 /* Are we allowed to snoop on the tasks file descriptors? */
85657 - if (!proc_fd_access_allowed(inode))
85658 + if (!proc_fd_access_allowed(inode, 0))
85659 goto out;
85660
85661 error = PROC_I(inode)->op.proc_get_link(dentry, &path);
85662 @@ -1616,8 +1703,18 @@ static int proc_pid_readlink(struct dentry * dentry, char __user * buffer, int b
85663 struct path path;
85664
85665 /* Are we allowed to snoop on the tasks file descriptors? */
85666 - if (!proc_fd_access_allowed(inode))
85667 - goto out;
85668 + /* logging this is needed for learning on chromium to work properly,
85669 + but we don't want to flood the logs from 'ps' which does a readlink
85670 + on /proc/fd/2 of tasks in the listing, nor do we want 'ps' to learn
85671 + CAP_SYS_PTRACE as it's not necessary for its basic functionality
85672 + */
85673 + if (dentry->d_name.name[0] == '2' && dentry->d_name.name[1] == '\0') {
85674 + if (!proc_fd_access_allowed(inode,0))
85675 + goto out;
85676 + } else {
85677 + if (!proc_fd_access_allowed(inode,1))
85678 + goto out;
85679 + }
85680
85681 error = PROC_I(inode)->op.proc_get_link(dentry, &path);
85682 if (error)
85683 @@ -1667,7 +1764,11 @@ struct inode *proc_pid_make_inode(struct super_block * sb, struct task_struct *t
85684 rcu_read_lock();
85685 cred = __task_cred(task);
85686 inode->i_uid = cred->euid;
85687 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
85688 + inode->i_gid = grsec_proc_gid;
85689 +#else
85690 inode->i_gid = cred->egid;
85691 +#endif
85692 rcu_read_unlock();
85693 }
85694 security_task_to_inode(task, inode);
85695 @@ -1703,10 +1804,19 @@ int pid_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
85696 return -ENOENT;
85697 }
85698 if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
85699 +#ifdef CONFIG_GRKERNSEC_PROC_USER
85700 + (inode->i_mode == (S_IFDIR|S_IRUSR|S_IXUSR)) ||
85701 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
85702 + (inode->i_mode == (S_IFDIR|S_IRUSR|S_IRGRP|S_IXUSR|S_IXGRP)) ||
85703 +#endif
85704 task_dumpable(task)) {
85705 cred = __task_cred(task);
85706 stat->uid = cred->euid;
85707 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
85708 + stat->gid = grsec_proc_gid;
85709 +#else
85710 stat->gid = cred->egid;
85711 +#endif
85712 }
85713 }
85714 rcu_read_unlock();
85715 @@ -1744,11 +1854,20 @@ int pid_revalidate(struct dentry *dentry, unsigned int flags)
85716
85717 if (task) {
85718 if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
85719 +#ifdef CONFIG_GRKERNSEC_PROC_USER
85720 + (inode->i_mode == (S_IFDIR|S_IRUSR|S_IXUSR)) ||
85721 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
85722 + (inode->i_mode == (S_IFDIR|S_IRUSR|S_IRGRP|S_IXUSR|S_IXGRP)) ||
85723 +#endif
85724 task_dumpable(task)) {
85725 rcu_read_lock();
85726 cred = __task_cred(task);
85727 inode->i_uid = cred->euid;
85728 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
85729 + inode->i_gid = grsec_proc_gid;
85730 +#else
85731 inode->i_gid = cred->egid;
85732 +#endif
85733 rcu_read_unlock();
85734 } else {
85735 inode->i_uid = GLOBAL_ROOT_UID;
85736 @@ -2287,6 +2406,9 @@ static struct dentry *proc_pident_lookup(struct inode *dir,
85737 if (!task)
85738 goto out_no_task;
85739
85740 + if (gr_pid_is_chrooted(task) || gr_check_hidden_task(task))
85741 + goto out;
85742 +
85743 /*
85744 * Yes, it does not scale. And it should not. Don't add
85745 * new entries into /proc/<tgid>/ without very good reasons.
85746 @@ -2317,6 +2439,9 @@ static int proc_pident_readdir(struct file *file, struct dir_context *ctx,
85747 if (!task)
85748 return -ENOENT;
85749
85750 + if (gr_pid_is_chrooted(task) || gr_check_hidden_task(task))
85751 + goto out;
85752 +
85753 if (!dir_emit_dots(file, ctx))
85754 goto out;
85755
85756 @@ -2732,7 +2857,9 @@ static const struct inode_operations proc_task_inode_operations;
85757 static const struct pid_entry tgid_base_stuff[] = {
85758 DIR("task", S_IRUGO|S_IXUGO, proc_task_inode_operations, proc_task_operations),
85759 DIR("fd", S_IRUSR|S_IXUSR, proc_fd_inode_operations, proc_fd_operations),
85760 +#ifndef CONFIG_GRKERNSEC
85761 DIR("map_files", S_IRUSR|S_IXUSR, proc_map_files_inode_operations, proc_map_files_operations),
85762 +#endif
85763 DIR("fdinfo", S_IRUSR|S_IXUSR, proc_fdinfo_inode_operations, proc_fdinfo_operations),
85764 DIR("ns", S_IRUSR|S_IXUGO, proc_ns_dir_inode_operations, proc_ns_dir_operations),
85765 #ifdef CONFIG_NET
85766 @@ -2750,7 +2877,7 @@ static const struct pid_entry tgid_base_stuff[] = {
85767 REG("autogroup", S_IRUGO|S_IWUSR, proc_pid_sched_autogroup_operations),
85768 #endif
85769 REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations),
85770 -#ifdef CONFIG_HAVE_ARCH_TRACEHOOK
85771 +#if defined(CONFIG_HAVE_ARCH_TRACEHOOK) && !defined(CONFIG_GRKERNSEC_PROC_MEMMAP)
85772 ONE("syscall", S_IRUSR, proc_pid_syscall),
85773 #endif
85774 REG("cmdline", S_IRUGO, proc_pid_cmdline_ops),
85775 @@ -2775,10 +2902,10 @@ static const struct pid_entry tgid_base_stuff[] = {
85776 #ifdef CONFIG_SECURITY
85777 DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations),
85778 #endif
85779 -#ifdef CONFIG_KALLSYMS
85780 +#if defined(CONFIG_KALLSYMS) && !defined(CONFIG_GRKERNSEC_HIDESYM)
85781 ONE("wchan", S_IRUGO, proc_pid_wchan),
85782 #endif
85783 -#ifdef CONFIG_STACKTRACE
85784 +#if defined(CONFIG_STACKTRACE) && !defined(CONFIG_GRKERNSEC_HIDESYM)
85785 ONE("stack", S_IRUSR, proc_pid_stack),
85786 #endif
85787 #ifdef CONFIG_SCHED_INFO
85788 @@ -2812,6 +2939,9 @@ static const struct pid_entry tgid_base_stuff[] = {
85789 #ifdef CONFIG_HARDWALL
85790 ONE("hardwall", S_IRUGO, proc_pid_hardwall),
85791 #endif
85792 +#ifdef CONFIG_GRKERNSEC_PROC_IPADDR
85793 + ONE("ipaddr", S_IRUSR, proc_pid_ipaddr),
85794 +#endif
85795 #ifdef CONFIG_USER_NS
85796 REG("uid_map", S_IRUGO|S_IWUSR, proc_uid_map_operations),
85797 REG("gid_map", S_IRUGO|S_IWUSR, proc_gid_map_operations),
85798 @@ -2944,7 +3074,14 @@ static int proc_pid_instantiate(struct inode *dir,
85799 if (!inode)
85800 goto out;
85801
85802 +#ifdef CONFIG_GRKERNSEC_PROC_USER
85803 + inode->i_mode = S_IFDIR|S_IRUSR|S_IXUSR;
85804 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
85805 + inode->i_gid = grsec_proc_gid;
85806 + inode->i_mode = S_IFDIR|S_IRUSR|S_IRGRP|S_IXUSR|S_IXGRP;
85807 +#else
85808 inode->i_mode = S_IFDIR|S_IRUGO|S_IXUGO;
85809 +#endif
85810 inode->i_op = &proc_tgid_base_inode_operations;
85811 inode->i_fop = &proc_tgid_base_operations;
85812 inode->i_flags|=S_IMMUTABLE;
85813 @@ -2982,7 +3119,11 @@ struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, unsign
85814 if (!task)
85815 goto out;
85816
85817 + if (gr_pid_is_chrooted(task) || gr_check_hidden_task(task))
85818 + goto out_put_task;
85819 +
85820 result = proc_pid_instantiate(dir, dentry, task, NULL);
85821 +out_put_task:
85822 put_task_struct(task);
85823 out:
85824 return ERR_PTR(result);
85825 @@ -3096,7 +3237,7 @@ static const struct pid_entry tid_base_stuff[] = {
85826 REG("sched", S_IRUGO|S_IWUSR, proc_pid_sched_operations),
85827 #endif
85828 REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations),
85829 -#ifdef CONFIG_HAVE_ARCH_TRACEHOOK
85830 +#if defined(CONFIG_HAVE_ARCH_TRACEHOOK) && !defined(CONFIG_GRKERNSEC_PROC_MEMMAP)
85831 ONE("syscall", S_IRUSR, proc_pid_syscall),
85832 #endif
85833 REG("cmdline", S_IRUGO, proc_pid_cmdline_ops),
85834 @@ -3123,10 +3264,10 @@ static const struct pid_entry tid_base_stuff[] = {
85835 #ifdef CONFIG_SECURITY
85836 DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations),
85837 #endif
85838 -#ifdef CONFIG_KALLSYMS
85839 +#if defined(CONFIG_KALLSYMS) && !defined(CONFIG_GRKERNSEC_HIDESYM)
85840 ONE("wchan", S_IRUGO, proc_pid_wchan),
85841 #endif
85842 -#ifdef CONFIG_STACKTRACE
85843 +#if defined(CONFIG_STACKTRACE) && !defined(CONFIG_GRKERNSEC_HIDESYM)
85844 ONE("stack", S_IRUSR, proc_pid_stack),
85845 #endif
85846 #ifdef CONFIG_SCHED_INFO
85847 diff --git a/fs/proc/cmdline.c b/fs/proc/cmdline.c
85848 index cbd82df..c0407d2 100644
85849 --- a/fs/proc/cmdline.c
85850 +++ b/fs/proc/cmdline.c
85851 @@ -23,7 +23,11 @@ static const struct file_operations cmdline_proc_fops = {
85852
85853 static int __init proc_cmdline_init(void)
85854 {
85855 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
85856 + proc_create_grsec("cmdline", 0, NULL, &cmdline_proc_fops);
85857 +#else
85858 proc_create("cmdline", 0, NULL, &cmdline_proc_fops);
85859 +#endif
85860 return 0;
85861 }
85862 fs_initcall(proc_cmdline_init);
85863 diff --git a/fs/proc/devices.c b/fs/proc/devices.c
85864 index 50493ed..248166b 100644
85865 --- a/fs/proc/devices.c
85866 +++ b/fs/proc/devices.c
85867 @@ -64,7 +64,11 @@ static const struct file_operations proc_devinfo_operations = {
85868
85869 static int __init proc_devices_init(void)
85870 {
85871 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
85872 + proc_create_grsec("devices", 0, NULL, &proc_devinfo_operations);
85873 +#else
85874 proc_create("devices", 0, NULL, &proc_devinfo_operations);
85875 +#endif
85876 return 0;
85877 }
85878 fs_initcall(proc_devices_init);
85879 diff --git a/fs/proc/fd.c b/fs/proc/fd.c
85880 index 3c2a915..cb7934e 100644
85881 --- a/fs/proc/fd.c
85882 +++ b/fs/proc/fd.c
85883 @@ -27,7 +27,8 @@ static int seq_show(struct seq_file *m, void *v)
85884 if (!task)
85885 return -ENOENT;
85886
85887 - files = get_files_struct(task);
85888 + if (!gr_acl_handle_procpidmem(task))
85889 + files = get_files_struct(task);
85890 put_task_struct(task);
85891
85892 if (files) {
85893 @@ -258,6 +259,7 @@ static int proc_readfd_common(struct file *file, struct dir_context *ctx,
85894 name, len, instantiate, p,
85895 (void *)(unsigned long)fd))
85896 goto out_fd_loop;
85897 + cond_resched();
85898 rcu_read_lock();
85899 }
85900 rcu_read_unlock();
85901 @@ -295,13 +297,15 @@ int proc_fd_permission(struct inode *inode, int mask)
85902 int rv;
85903
85904 rv = generic_permission(inode, mask);
85905 - if (rv == 0)
85906 - return rv;
85907
85908 rcu_read_lock();
85909 p = pid_task(proc_pid(inode), PIDTYPE_PID);
85910 - if (p && same_thread_group(p, current))
85911 - rv = 0;
85912 + if (p) {
85913 + if (same_thread_group(p, current))
85914 + rv = 0;
85915 + if (gr_acl_handle_procpidmem(p))
85916 + rv = -EACCES;
85917 + }
85918 rcu_read_unlock();
85919
85920 return rv;
85921 diff --git a/fs/proc/generic.c b/fs/proc/generic.c
85922 index ff3ffc7..1aec0a3 100644
85923 --- a/fs/proc/generic.c
85924 +++ b/fs/proc/generic.c
85925 @@ -22,6 +22,7 @@
85926 #include <linux/bitops.h>
85927 #include <linux/spinlock.h>
85928 #include <linux/completion.h>
85929 +#include <linux/grsecurity.h>
85930 #include <asm/uaccess.h>
85931
85932 #include "internal.h"
85933 @@ -253,6 +254,15 @@ struct dentry *proc_lookup(struct inode *dir, struct dentry *dentry,
85934 return proc_lookup_de(PDE(dir), dir, dentry);
85935 }
85936
85937 +struct dentry *proc_lookup_restrict(struct inode *dir, struct dentry *dentry,
85938 + unsigned int flags)
85939 +{
85940 + if (gr_proc_is_restricted())
85941 + return ERR_PTR(-EACCES);
85942 +
85943 + return proc_lookup_de(PDE(dir), dir, dentry);
85944 +}
85945 +
85946 /*
85947 * This returns non-zero if at EOF, so that the /proc
85948 * root directory can use this and check if it should
85949 @@ -310,6 +320,16 @@ int proc_readdir(struct file *file, struct dir_context *ctx)
85950 return proc_readdir_de(PDE(inode), file, ctx);
85951 }
85952
85953 +int proc_readdir_restrict(struct file *file, struct dir_context *ctx)
85954 +{
85955 + struct inode *inode = file_inode(file);
85956 +
85957 + if (gr_proc_is_restricted())
85958 + return -EACCES;
85959 +
85960 + return proc_readdir_de(PDE(inode), file, ctx);
85961 +}
85962 +
85963 /*
85964 * These are the generic /proc directory operations. They
85965 * use the in-memory "struct proc_dir_entry" tree to parse
85966 @@ -321,6 +341,12 @@ static const struct file_operations proc_dir_operations = {
85967 .iterate = proc_readdir,
85968 };
85969
85970 +static const struct file_operations proc_dir_restricted_operations = {
85971 + .llseek = generic_file_llseek,
85972 + .read = generic_read_dir,
85973 + .iterate = proc_readdir_restrict,
85974 +};
85975 +
85976 /*
85977 * proc directories can do almost nothing..
85978 */
85979 @@ -330,6 +356,12 @@ static const struct inode_operations proc_dir_inode_operations = {
85980 .setattr = proc_notify_change,
85981 };
85982
85983 +static const struct inode_operations proc_dir_restricted_inode_operations = {
85984 + .lookup = proc_lookup_restrict,
85985 + .getattr = proc_getattr,
85986 + .setattr = proc_notify_change,
85987 +};
85988 +
85989 static int proc_register(struct proc_dir_entry * dir, struct proc_dir_entry * dp)
85990 {
85991 int ret;
85992 @@ -445,6 +477,31 @@ struct proc_dir_entry *proc_mkdir_data(const char *name, umode_t mode,
85993 }
85994 EXPORT_SYMBOL_GPL(proc_mkdir_data);
85995
85996 +struct proc_dir_entry *proc_mkdir_data_restrict(const char *name, umode_t mode,
85997 + struct proc_dir_entry *parent, void *data)
85998 +{
85999 + struct proc_dir_entry *ent;
86000 +
86001 + if (mode == 0)
86002 + mode = S_IRUGO | S_IXUGO;
86003 +
86004 + ent = __proc_create(&parent, name, S_IFDIR | mode, 2);
86005 + if (ent) {
86006 + ent->data = data;
86007 + ent->restricted = 1;
86008 + ent->proc_fops = &proc_dir_restricted_operations;
86009 + ent->proc_iops = &proc_dir_restricted_inode_operations;
86010 + parent->nlink++;
86011 + if (proc_register(parent, ent) < 0) {
86012 + kfree(ent);
86013 + parent->nlink--;
86014 + ent = NULL;
86015 + }
86016 + }
86017 + return ent;
86018 +}
86019 +EXPORT_SYMBOL_GPL(proc_mkdir_data_restrict);
86020 +
86021 struct proc_dir_entry *proc_mkdir_mode(const char *name, umode_t mode,
86022 struct proc_dir_entry *parent)
86023 {
86024 @@ -459,6 +516,13 @@ struct proc_dir_entry *proc_mkdir(const char *name,
86025 }
86026 EXPORT_SYMBOL(proc_mkdir);
86027
86028 +struct proc_dir_entry *proc_mkdir_restrict(const char *name,
86029 + struct proc_dir_entry *parent)
86030 +{
86031 + return proc_mkdir_data_restrict(name, 0, parent, NULL);
86032 +}
86033 +EXPORT_SYMBOL(proc_mkdir_restrict);
86034 +
86035 struct proc_dir_entry *proc_create_mount_point(const char *name)
86036 {
86037 umode_t mode = S_IFDIR | S_IRUGO | S_IXUGO;
86038 diff --git a/fs/proc/inode.c b/fs/proc/inode.c
86039 index bd95b9f..a64a773 100644
86040 --- a/fs/proc/inode.c
86041 +++ b/fs/proc/inode.c
86042 @@ -23,11 +23,17 @@
86043 #include <linux/slab.h>
86044 #include <linux/mount.h>
86045 #include <linux/magic.h>
86046 +#include <linux/grsecurity.h>
86047
86048 #include <asm/uaccess.h>
86049
86050 #include "internal.h"
86051
86052 +#ifdef CONFIG_PROC_SYSCTL
86053 +extern const struct inode_operations proc_sys_inode_operations;
86054 +extern const struct inode_operations proc_sys_dir_operations;
86055 +#endif
86056 +
86057 static void proc_evict_inode(struct inode *inode)
86058 {
86059 struct proc_dir_entry *de;
86060 @@ -48,6 +54,13 @@ static void proc_evict_inode(struct inode *inode)
86061 RCU_INIT_POINTER(PROC_I(inode)->sysctl, NULL);
86062 sysctl_head_put(head);
86063 }
86064 +
86065 +#ifdef CONFIG_PROC_SYSCTL
86066 + if (inode->i_op == &proc_sys_inode_operations ||
86067 + inode->i_op == &proc_sys_dir_operations)
86068 + gr_handle_delete(inode->i_ino, inode->i_sb->s_dev);
86069 +#endif
86070 +
86071 }
86072
86073 static struct kmem_cache * proc_inode_cachep;
86074 @@ -429,7 +442,11 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
86075 if (de->mode) {
86076 inode->i_mode = de->mode;
86077 inode->i_uid = de->uid;
86078 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
86079 + inode->i_gid = grsec_proc_gid;
86080 +#else
86081 inode->i_gid = de->gid;
86082 +#endif
86083 }
86084 if (de->size)
86085 inode->i_size = de->size;
86086 diff --git a/fs/proc/internal.h b/fs/proc/internal.h
86087 index aa27810..9f2d3b2 100644
86088 --- a/fs/proc/internal.h
86089 +++ b/fs/proc/internal.h
86090 @@ -47,9 +47,10 @@ struct proc_dir_entry {
86091 struct completion *pde_unload_completion;
86092 struct list_head pde_openers; /* who did ->open, but not ->release */
86093 spinlock_t pde_unload_lock; /* proc_fops checks and pde_users bumps */
86094 + u8 restricted; /* a directory in /proc/net that should be restricted via GRKERNSEC_PROC */
86095 u8 namelen;
86096 char name[];
86097 -};
86098 +} __randomize_layout;
86099
86100 union proc_op {
86101 int (*proc_get_link)(struct dentry *, struct path *);
86102 @@ -67,7 +68,7 @@ struct proc_inode {
86103 struct ctl_table *sysctl_entry;
86104 const struct proc_ns_operations *ns_ops;
86105 struct inode vfs_inode;
86106 -};
86107 +} __randomize_layout;
86108
86109 /*
86110 * General functions
86111 @@ -155,6 +156,10 @@ extern int proc_pid_status(struct seq_file *, struct pid_namespace *,
86112 struct pid *, struct task_struct *);
86113 extern int proc_pid_statm(struct seq_file *, struct pid_namespace *,
86114 struct pid *, struct task_struct *);
86115 +#ifdef CONFIG_GRKERNSEC_PROC_IPADDR
86116 +extern int proc_pid_ipaddr(struct seq_file *, struct pid_namespace *,
86117 + struct pid *, struct task_struct *);
86118 +#endif
86119
86120 /*
86121 * base.c
86122 @@ -179,9 +184,11 @@ extern bool proc_fill_cache(struct file *, struct dir_context *, const char *, i
86123 * generic.c
86124 */
86125 extern struct dentry *proc_lookup(struct inode *, struct dentry *, unsigned int);
86126 +extern struct dentry *proc_lookup_restrict(struct inode *, struct dentry *, unsigned int);
86127 extern struct dentry *proc_lookup_de(struct proc_dir_entry *, struct inode *,
86128 struct dentry *);
86129 extern int proc_readdir(struct file *, struct dir_context *);
86130 +extern int proc_readdir_restrict(struct file *, struct dir_context *);
86131 extern int proc_readdir_de(struct proc_dir_entry *, struct file *, struct dir_context *);
86132
86133 static inline struct proc_dir_entry *pde_get(struct proc_dir_entry *pde)
86134 diff --git a/fs/proc/interrupts.c b/fs/proc/interrupts.c
86135 index a352d57..cb94a5c 100644
86136 --- a/fs/proc/interrupts.c
86137 +++ b/fs/proc/interrupts.c
86138 @@ -47,7 +47,11 @@ static const struct file_operations proc_interrupts_operations = {
86139
86140 static int __init proc_interrupts_init(void)
86141 {
86142 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
86143 + proc_create_grsec("interrupts", 0, NULL, &proc_interrupts_operations);
86144 +#else
86145 proc_create("interrupts", 0, NULL, &proc_interrupts_operations);
86146 +#endif
86147 return 0;
86148 }
86149 fs_initcall(proc_interrupts_init);
86150 diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c
86151 index 92e6726..93a72d0 100644
86152 --- a/fs/proc/kcore.c
86153 +++ b/fs/proc/kcore.c
86154 @@ -483,9 +483,10 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
86155 * the addresses in the elf_phdr on our list.
86156 */
86157 start = kc_offset_to_vaddr(*fpos - elf_buflen);
86158 - if ((tsz = (PAGE_SIZE - (start & ~PAGE_MASK))) > buflen)
86159 + tsz = PAGE_SIZE - (start & ~PAGE_MASK);
86160 + if (tsz > buflen)
86161 tsz = buflen;
86162 -
86163 +
86164 while (buflen) {
86165 struct kcore_list *m;
86166
86167 @@ -515,19 +516,20 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
86168 } else {
86169 if (kern_addr_valid(start)) {
86170 unsigned long n;
86171 + char *elf_buf;
86172 + mm_segment_t oldfs;
86173
86174 - n = copy_to_user(buffer, (char *)start, tsz);
86175 - /*
86176 - * We cannot distinguish between fault on source
86177 - * and fault on destination. When this happens
86178 - * we clear too and hope it will trigger the
86179 - * EFAULT again.
86180 - */
86181 - if (n) {
86182 - if (clear_user(buffer + tsz - n,
86183 - n))
86184 - return -EFAULT;
86185 - }
86186 + elf_buf = kzalloc(tsz, GFP_KERNEL);
86187 + if (!elf_buf)
86188 + return -ENOMEM;
86189 + oldfs = get_fs();
86190 + set_fs(KERNEL_DS);
86191 + n = __copy_from_user(elf_buf, (const void __user *)start, tsz);
86192 + set_fs(oldfs);
86193 + n = copy_to_user(buffer, elf_buf, tsz);
86194 + kfree(elf_buf);
86195 + if (n)
86196 + return -EFAULT;
86197 } else {
86198 if (clear_user(buffer, tsz))
86199 return -EFAULT;
86200 @@ -547,6 +549,9 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
86201
86202 static int open_kcore(struct inode *inode, struct file *filp)
86203 {
86204 +#if defined(CONFIG_GRKERNSEC_PROC_ADD) || defined(CONFIG_GRKERNSEC_HIDESYM)
86205 + return -EPERM;
86206 +#endif
86207 if (!capable(CAP_SYS_RAWIO))
86208 return -EPERM;
86209 if (kcore_need_update)
86210 @@ -580,7 +585,7 @@ static int __meminit kcore_callback(struct notifier_block *self,
86211 return NOTIFY_OK;
86212 }
86213
86214 -static struct notifier_block kcore_callback_nb __meminitdata = {
86215 +static struct notifier_block kcore_callback_nb = {
86216 .notifier_call = kcore_callback,
86217 .priority = 0,
86218 };
86219 diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
86220 index 9155a5a..abe1823 100644
86221 --- a/fs/proc/meminfo.c
86222 +++ b/fs/proc/meminfo.c
86223 @@ -191,7 +191,7 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
86224 0ul, // used to be vmalloc 'used'
86225 0ul // used to be vmalloc 'largest_chunk'
86226 #ifdef CONFIG_MEMORY_FAILURE
86227 - , atomic_long_read(&num_poisoned_pages) << (PAGE_SHIFT - 10)
86228 + , atomic_long_read_unchecked(&num_poisoned_pages) << (PAGE_SHIFT - 10)
86229 #endif
86230 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
86231 , K(global_page_state(NR_ANON_TRANSPARENT_HUGEPAGES) *
86232 diff --git a/fs/proc/nommu.c b/fs/proc/nommu.c
86233 index f8595e8..e0d13cbd 100644
86234 --- a/fs/proc/nommu.c
86235 +++ b/fs/proc/nommu.c
86236 @@ -64,7 +64,7 @@ static int nommu_region_show(struct seq_file *m, struct vm_region *region)
86237
86238 if (file) {
86239 seq_pad(m, ' ');
86240 - seq_file_path(m, file, "");
86241 + seq_file_path(m, file, "\n\\");
86242 }
86243
86244 seq_putc(m, '\n');
86245 diff --git a/fs/proc/proc_net.c b/fs/proc/proc_net.c
86246 index 350984a..0fb02a9 100644
86247 --- a/fs/proc/proc_net.c
86248 +++ b/fs/proc/proc_net.c
86249 @@ -23,9 +23,27 @@
86250 #include <linux/nsproxy.h>
86251 #include <net/net_namespace.h>
86252 #include <linux/seq_file.h>
86253 +#include <linux/grsecurity.h>
86254
86255 #include "internal.h"
86256
86257 +#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
86258 +static struct seq_operations *ipv6_seq_ops_addr;
86259 +
86260 +void register_ipv6_seq_ops_addr(struct seq_operations *addr)
86261 +{
86262 + ipv6_seq_ops_addr = addr;
86263 +}
86264 +
86265 +void unregister_ipv6_seq_ops_addr(void)
86266 +{
86267 + ipv6_seq_ops_addr = NULL;
86268 +}
86269 +
86270 +EXPORT_SYMBOL_GPL(register_ipv6_seq_ops_addr);
86271 +EXPORT_SYMBOL_GPL(unregister_ipv6_seq_ops_addr);
86272 +#endif
86273 +
86274 static inline struct net *PDE_NET(struct proc_dir_entry *pde)
86275 {
86276 return pde->parent->data;
86277 @@ -36,6 +54,8 @@ static struct net *get_proc_net(const struct inode *inode)
86278 return maybe_get_net(PDE_NET(PDE(inode)));
86279 }
86280
86281 +extern const struct seq_operations dev_seq_ops;
86282 +
86283 int seq_open_net(struct inode *ino, struct file *f,
86284 const struct seq_operations *ops, int size)
86285 {
86286 @@ -44,6 +64,14 @@ int seq_open_net(struct inode *ino, struct file *f,
86287
86288 BUG_ON(size < sizeof(*p));
86289
86290 + /* only permit access to /proc/net/dev */
86291 + if (
86292 +#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
86293 + ops != ipv6_seq_ops_addr &&
86294 +#endif
86295 + ops != &dev_seq_ops && gr_proc_is_restricted())
86296 + return -EACCES;
86297 +
86298 net = get_proc_net(ino);
86299 if (net == NULL)
86300 return -ENXIO;
86301 @@ -66,6 +94,9 @@ int single_open_net(struct inode *inode, struct file *file,
86302 int err;
86303 struct net *net;
86304
86305 + if (gr_proc_is_restricted())
86306 + return -EACCES;
86307 +
86308 err = -ENXIO;
86309 net = get_proc_net(inode);
86310 if (net == NULL)
86311 diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c
86312 index fe5b6e6..e5f3883 100644
86313 --- a/fs/proc/proc_sysctl.c
86314 +++ b/fs/proc/proc_sysctl.c
86315 @@ -11,13 +11,21 @@
86316 #include <linux/namei.h>
86317 #include <linux/mm.h>
86318 #include <linux/module.h>
86319 +#include <linux/nsproxy.h>
86320 +#ifdef CONFIG_GRKERNSEC
86321 +#include <net/net_namespace.h>
86322 +#endif
86323 #include "internal.h"
86324
86325 +extern int gr_handle_chroot_sysctl(const int op);
86326 +extern int gr_handle_sysctl_mod(const char *dirname, const char *name,
86327 + const int op);
86328 +
86329 static const struct dentry_operations proc_sys_dentry_operations;
86330 static const struct file_operations proc_sys_file_operations;
86331 -static const struct inode_operations proc_sys_inode_operations;
86332 +const struct inode_operations proc_sys_inode_operations;
86333 static const struct file_operations proc_sys_dir_file_operations;
86334 -static const struct inode_operations proc_sys_dir_operations;
86335 +const struct inode_operations proc_sys_dir_operations;
86336
86337 /* Support for permanently empty directories */
86338
86339 @@ -32,13 +40,17 @@ static bool is_empty_dir(struct ctl_table_header *head)
86340
86341 static void set_empty_dir(struct ctl_dir *dir)
86342 {
86343 - dir->header.ctl_table[0].child = sysctl_mount_point;
86344 + pax_open_kernel();
86345 + *(const void **)&dir->header.ctl_table[0].child = sysctl_mount_point;
86346 + pax_close_kernel();
86347 }
86348
86349 static void clear_empty_dir(struct ctl_dir *dir)
86350
86351 {
86352 - dir->header.ctl_table[0].child = NULL;
86353 + pax_open_kernel();
86354 + *(void **)&dir->header.ctl_table[0].child = NULL;
86355 + pax_close_kernel();
86356 }
86357
86358 void proc_sys_poll_notify(struct ctl_table_poll *poll)
86359 @@ -504,6 +516,9 @@ static struct dentry *proc_sys_lookup(struct inode *dir, struct dentry *dentry,
86360
86361 err = NULL;
86362 d_set_d_op(dentry, &proc_sys_dentry_operations);
86363 +
86364 + gr_handle_proc_create(dentry, inode);
86365 +
86366 d_add(dentry, inode);
86367
86368 out:
86369 @@ -519,6 +534,7 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
86370 struct inode *inode = file_inode(filp);
86371 struct ctl_table_header *head = grab_header(inode);
86372 struct ctl_table *table = PROC_I(inode)->sysctl_entry;
86373 + int op = write ? MAY_WRITE : MAY_READ;
86374 ssize_t error;
86375 size_t res;
86376
86377 @@ -530,7 +546,7 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
86378 * and won't be until we finish.
86379 */
86380 error = -EPERM;
86381 - if (sysctl_perm(head, table, write ? MAY_WRITE : MAY_READ))
86382 + if (sysctl_perm(head, table, op))
86383 goto out;
86384
86385 /* if that can happen at all, it should be -EINVAL, not -EISDIR */
86386 @@ -538,6 +554,27 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
86387 if (!table->proc_handler)
86388 goto out;
86389
86390 +#ifdef CONFIG_GRKERNSEC
86391 + error = -EPERM;
86392 + if (gr_handle_chroot_sysctl(op))
86393 + goto out;
86394 + dget(filp->f_path.dentry);
86395 + if (gr_handle_sysctl_mod(filp->f_path.dentry->d_parent->d_name.name, table->procname, op)) {
86396 + dput(filp->f_path.dentry);
86397 + goto out;
86398 + }
86399 + dput(filp->f_path.dentry);
86400 + if (!gr_acl_handle_open(filp->f_path.dentry, filp->f_path.mnt, op))
86401 + goto out;
86402 + if (write) {
86403 + if (current->nsproxy->net_ns != table->extra2) {
86404 + if (!capable(CAP_SYS_ADMIN))
86405 + goto out;
86406 + } else if (!ns_capable(current->nsproxy->net_ns->user_ns, CAP_NET_ADMIN))
86407 + goto out;
86408 + }
86409 +#endif
86410 +
86411 /* careful: calling conventions are nasty here */
86412 res = count;
86413 error = table->proc_handler(table, write, buf, &res, ppos);
86414 @@ -635,6 +672,9 @@ static bool proc_sys_fill_cache(struct file *file,
86415 return false;
86416 } else {
86417 d_set_d_op(child, &proc_sys_dentry_operations);
86418 +
86419 + gr_handle_proc_create(child, inode);
86420 +
86421 d_add(child, inode);
86422 }
86423 } else {
86424 @@ -678,6 +718,9 @@ static int scan(struct ctl_table_header *head, struct ctl_table *table,
86425 if ((*pos)++ < ctx->pos)
86426 return true;
86427
86428 + if (!gr_acl_handle_hidden_file(file->f_path.dentry, file->f_path.mnt))
86429 + return 0;
86430 +
86431 if (unlikely(S_ISLNK(table->mode)))
86432 res = proc_sys_link_fill_cache(file, ctx, head, table);
86433 else
86434 @@ -771,6 +814,9 @@ static int proc_sys_getattr(struct vfsmount *mnt, struct dentry *dentry, struct
86435 if (IS_ERR(head))
86436 return PTR_ERR(head);
86437
86438 + if (table && !gr_acl_handle_hidden_file(dentry, mnt))
86439 + return -ENOENT;
86440 +
86441 generic_fillattr(inode, stat);
86442 if (table)
86443 stat->mode = (stat->mode & S_IFMT) | table->mode;
86444 @@ -793,13 +839,13 @@ static const struct file_operations proc_sys_dir_file_operations = {
86445 .llseek = generic_file_llseek,
86446 };
86447
86448 -static const struct inode_operations proc_sys_inode_operations = {
86449 +const struct inode_operations proc_sys_inode_operations = {
86450 .permission = proc_sys_permission,
86451 .setattr = proc_sys_setattr,
86452 .getattr = proc_sys_getattr,
86453 };
86454
86455 -static const struct inode_operations proc_sys_dir_operations = {
86456 +const struct inode_operations proc_sys_dir_operations = {
86457 .lookup = proc_sys_lookup,
86458 .permission = proc_sys_permission,
86459 .setattr = proc_sys_setattr,
86460 @@ -876,7 +922,7 @@ static struct ctl_dir *find_subdir(struct ctl_dir *dir,
86461 static struct ctl_dir *new_dir(struct ctl_table_set *set,
86462 const char *name, int namelen)
86463 {
86464 - struct ctl_table *table;
86465 + ctl_table_no_const *table;
86466 struct ctl_dir *new;
86467 struct ctl_node *node;
86468 char *new_name;
86469 @@ -888,7 +934,7 @@ static struct ctl_dir *new_dir(struct ctl_table_set *set,
86470 return NULL;
86471
86472 node = (struct ctl_node *)(new + 1);
86473 - table = (struct ctl_table *)(node + 1);
86474 + table = (ctl_table_no_const *)(node + 1);
86475 new_name = (char *)(table + 2);
86476 memcpy(new_name, name, namelen);
86477 new_name[namelen] = '\0';
86478 @@ -1057,7 +1103,8 @@ static int sysctl_check_table(const char *path, struct ctl_table *table)
86479 static struct ctl_table_header *new_links(struct ctl_dir *dir, struct ctl_table *table,
86480 struct ctl_table_root *link_root)
86481 {
86482 - struct ctl_table *link_table, *entry, *link;
86483 + ctl_table_no_const *link_table, *link;
86484 + struct ctl_table *entry;
86485 struct ctl_table_header *links;
86486 struct ctl_node *node;
86487 char *link_name;
86488 @@ -1080,7 +1127,7 @@ static struct ctl_table_header *new_links(struct ctl_dir *dir, struct ctl_table
86489 return NULL;
86490
86491 node = (struct ctl_node *)(links + 1);
86492 - link_table = (struct ctl_table *)(node + nr_entries);
86493 + link_table = (ctl_table_no_const *)(node + nr_entries);
86494 link_name = (char *)&link_table[nr_entries + 1];
86495
86496 for (link = link_table, entry = table; entry->procname; link++, entry++) {
86497 @@ -1328,8 +1375,8 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
86498 struct ctl_table_header ***subheader, struct ctl_table_set *set,
86499 struct ctl_table *table)
86500 {
86501 - struct ctl_table *ctl_table_arg = NULL;
86502 - struct ctl_table *entry, *files;
86503 + ctl_table_no_const *ctl_table_arg = NULL, *files = NULL;
86504 + struct ctl_table *entry;
86505 int nr_files = 0;
86506 int nr_dirs = 0;
86507 int err = -ENOMEM;
86508 @@ -1341,10 +1388,9 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
86509 nr_files++;
86510 }
86511
86512 - files = table;
86513 /* If there are mixed files and directories we need a new table */
86514 if (nr_dirs && nr_files) {
86515 - struct ctl_table *new;
86516 + ctl_table_no_const *new;
86517 files = kzalloc(sizeof(struct ctl_table) * (nr_files + 1),
86518 GFP_KERNEL);
86519 if (!files)
86520 @@ -1362,7 +1408,7 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
86521 /* Register everything except a directory full of subdirectories */
86522 if (nr_files || !nr_dirs) {
86523 struct ctl_table_header *header;
86524 - header = __register_sysctl_table(set, path, files);
86525 + header = __register_sysctl_table(set, path, files ? files : table);
86526 if (!header) {
86527 kfree(ctl_table_arg);
86528 goto out;
86529 diff --git a/fs/proc/root.c b/fs/proc/root.c
86530 index 361ab4e..9720b97 100644
86531 --- a/fs/proc/root.c
86532 +++ b/fs/proc/root.c
86533 @@ -187,7 +187,15 @@ void __init proc_root_init(void)
86534 proc_create_mount_point("openprom");
86535 #endif
86536 proc_tty_init();
86537 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
86538 +#ifdef CONFIG_GRKERNSEC_PROC_USER
86539 + proc_mkdir_mode("bus", S_IRUSR | S_IXUSR, NULL);
86540 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
86541 + proc_mkdir_mode("bus", S_IRUSR | S_IXUSR | S_IRGRP | S_IXGRP, NULL);
86542 +#endif
86543 +#else
86544 proc_mkdir("bus", NULL);
86545 +#endif
86546 proc_sys_init();
86547 }
86548
86549 diff --git a/fs/proc/stat.c b/fs/proc/stat.c
86550 index 510413eb..34d9a8c 100644
86551 --- a/fs/proc/stat.c
86552 +++ b/fs/proc/stat.c
86553 @@ -11,6 +11,7 @@
86554 #include <linux/irqnr.h>
86555 #include <linux/cputime.h>
86556 #include <linux/tick.h>
86557 +#include <linux/grsecurity.h>
86558
86559 #ifndef arch_irq_stat_cpu
86560 #define arch_irq_stat_cpu(cpu) 0
86561 @@ -87,6 +88,18 @@ static int show_stat(struct seq_file *p, void *v)
86562 u64 sum_softirq = 0;
86563 unsigned int per_softirq_sums[NR_SOFTIRQS] = {0};
86564 struct timespec boottime;
86565 + int unrestricted = 1;
86566 +
86567 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
86568 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
86569 + if (!uid_eq(current_uid(), GLOBAL_ROOT_UID)
86570 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
86571 + && !in_group_p(grsec_proc_gid)
86572 +#endif
86573 + )
86574 + unrestricted = 0;
86575 +#endif
86576 +#endif
86577
86578 user = nice = system = idle = iowait =
86579 irq = softirq = steal = 0;
86580 @@ -99,23 +112,25 @@ static int show_stat(struct seq_file *p, void *v)
86581 nice += kcpustat_cpu(i).cpustat[CPUTIME_NICE];
86582 system += kcpustat_cpu(i).cpustat[CPUTIME_SYSTEM];
86583 idle += get_idle_time(i);
86584 - iowait += get_iowait_time(i);
86585 - irq += kcpustat_cpu(i).cpustat[CPUTIME_IRQ];
86586 - softirq += kcpustat_cpu(i).cpustat[CPUTIME_SOFTIRQ];
86587 - steal += kcpustat_cpu(i).cpustat[CPUTIME_STEAL];
86588 - guest += kcpustat_cpu(i).cpustat[CPUTIME_GUEST];
86589 - guest_nice += kcpustat_cpu(i).cpustat[CPUTIME_GUEST_NICE];
86590 - sum += kstat_cpu_irqs_sum(i);
86591 - sum += arch_irq_stat_cpu(i);
86592 + if (unrestricted) {
86593 + iowait += get_iowait_time(i);
86594 + irq += kcpustat_cpu(i).cpustat[CPUTIME_IRQ];
86595 + softirq += kcpustat_cpu(i).cpustat[CPUTIME_SOFTIRQ];
86596 + steal += kcpustat_cpu(i).cpustat[CPUTIME_STEAL];
86597 + guest += kcpustat_cpu(i).cpustat[CPUTIME_GUEST];
86598 + guest_nice += kcpustat_cpu(i).cpustat[CPUTIME_GUEST_NICE];
86599 + sum += kstat_cpu_irqs_sum(i);
86600 + sum += arch_irq_stat_cpu(i);
86601 + for (j = 0; j < NR_SOFTIRQS; j++) {
86602 + unsigned int softirq_stat = kstat_softirqs_cpu(j, i);
86603
86604 - for (j = 0; j < NR_SOFTIRQS; j++) {
86605 - unsigned int softirq_stat = kstat_softirqs_cpu(j, i);
86606 -
86607 - per_softirq_sums[j] += softirq_stat;
86608 - sum_softirq += softirq_stat;
86609 + per_softirq_sums[j] += softirq_stat;
86610 + sum_softirq += softirq_stat;
86611 + }
86612 }
86613 }
86614 - sum += arch_irq_stat();
86615 + if (unrestricted)
86616 + sum += arch_irq_stat();
86617
86618 seq_puts(p, "cpu ");
86619 seq_put_decimal_ull(p, ' ', cputime64_to_clock_t(user));
86620 @@ -136,12 +151,14 @@ static int show_stat(struct seq_file *p, void *v)
86621 nice = kcpustat_cpu(i).cpustat[CPUTIME_NICE];
86622 system = kcpustat_cpu(i).cpustat[CPUTIME_SYSTEM];
86623 idle = get_idle_time(i);
86624 - iowait = get_iowait_time(i);
86625 - irq = kcpustat_cpu(i).cpustat[CPUTIME_IRQ];
86626 - softirq = kcpustat_cpu(i).cpustat[CPUTIME_SOFTIRQ];
86627 - steal = kcpustat_cpu(i).cpustat[CPUTIME_STEAL];
86628 - guest = kcpustat_cpu(i).cpustat[CPUTIME_GUEST];
86629 - guest_nice = kcpustat_cpu(i).cpustat[CPUTIME_GUEST_NICE];
86630 + if (unrestricted) {
86631 + iowait = get_iowait_time(i);
86632 + irq = kcpustat_cpu(i).cpustat[CPUTIME_IRQ];
86633 + softirq = kcpustat_cpu(i).cpustat[CPUTIME_SOFTIRQ];
86634 + steal = kcpustat_cpu(i).cpustat[CPUTIME_STEAL];
86635 + guest = kcpustat_cpu(i).cpustat[CPUTIME_GUEST];
86636 + guest_nice = kcpustat_cpu(i).cpustat[CPUTIME_GUEST_NICE];
86637 + }
86638 seq_printf(p, "cpu%d", i);
86639 seq_put_decimal_ull(p, ' ', cputime64_to_clock_t(user));
86640 seq_put_decimal_ull(p, ' ', cputime64_to_clock_t(nice));
86641 @@ -159,7 +176,7 @@ static int show_stat(struct seq_file *p, void *v)
86642
86643 /* sum again ? it could be updated? */
86644 for_each_irq_nr(j)
86645 - seq_put_decimal_ull(p, ' ', kstat_irqs_usr(j));
86646 + seq_put_decimal_ull(p, ' ', unrestricted ? kstat_irqs_usr(j) : 0ULL);
86647
86648 seq_printf(p,
86649 "\nctxt %llu\n"
86650 @@ -167,11 +184,11 @@ static int show_stat(struct seq_file *p, void *v)
86651 "processes %lu\n"
86652 "procs_running %lu\n"
86653 "procs_blocked %lu\n",
86654 - nr_context_switches(),
86655 + unrestricted ? nr_context_switches() : 0ULL,
86656 (unsigned long)jif,
86657 - total_forks,
86658 - nr_running(),
86659 - nr_iowait());
86660 + unrestricted ? total_forks : 0UL,
86661 + unrestricted ? nr_running() : 0UL,
86662 + unrestricted ? nr_iowait() : 0UL);
86663
86664 seq_printf(p, "softirq %llu", (unsigned long long)sum_softirq);
86665
86666 diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
86667 index 09cd3ed..862cbb3 100644
86668 --- a/fs/proc/task_mmu.c
86669 +++ b/fs/proc/task_mmu.c
86670 @@ -14,12 +14,19 @@
86671 #include <linux/swapops.h>
86672 #include <linux/mmu_notifier.h>
86673 #include <linux/page_idle.h>
86674 +#include <linux/grsecurity.h>
86675
86676 #include <asm/elf.h>
86677 #include <asm/uaccess.h>
86678 #include <asm/tlbflush.h>
86679 #include "internal.h"
86680
86681 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
86682 +#define PAX_RAND_FLAGS(_mm) (_mm != NULL && _mm != current->mm && \
86683 + (_mm->pax_flags & MF_PAX_RANDMMAP || \
86684 + _mm->pax_flags & MF_PAX_SEGMEXEC))
86685 +#endif
86686 +
86687 void task_mem(struct seq_file *m, struct mm_struct *mm)
86688 {
86689 unsigned long data, text, lib, swap, ptes, pmds;
86690 @@ -58,8 +65,13 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
86691 "VmLib:\t%8lu kB\n"
86692 "VmPTE:\t%8lu kB\n"
86693 "VmPMD:\t%8lu kB\n"
86694 - "VmSwap:\t%8lu kB\n",
86695 - hiwater_vm << (PAGE_SHIFT-10),
86696 + "VmSwap:\t%8lu kB\n"
86697 +
86698 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
86699 + "CsBase:\t%8lx\nCsLim:\t%8lx\n"
86700 +#endif
86701 +
86702 + ,hiwater_vm << (PAGE_SHIFT-10),
86703 total_vm << (PAGE_SHIFT-10),
86704 mm->locked_vm << (PAGE_SHIFT-10),
86705 mm->pinned_vm << (PAGE_SHIFT-10),
86706 @@ -69,7 +81,19 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
86707 mm->stack_vm << (PAGE_SHIFT-10), text, lib,
86708 ptes >> 10,
86709 pmds >> 10,
86710 - swap << (PAGE_SHIFT-10));
86711 + swap << (PAGE_SHIFT-10)
86712 +
86713 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
86714 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
86715 + , PAX_RAND_FLAGS(mm) ? 0 : mm->context.user_cs_base
86716 + , PAX_RAND_FLAGS(mm) ? 0 : mm->context.user_cs_limit
86717 +#else
86718 + , mm->context.user_cs_base
86719 + , mm->context.user_cs_limit
86720 +#endif
86721 +#endif
86722 +
86723 + );
86724 hugetlb_report_usage(m, mm);
86725 }
86726
86727 @@ -287,13 +311,13 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
86728 pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
86729 }
86730
86731 - /* We don't show the stack guard page in /proc/maps */
86732 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
86733 + start = PAX_RAND_FLAGS(mm) ? 0UL : vma->vm_start;
86734 + end = PAX_RAND_FLAGS(mm) ? 0UL : vma->vm_end;
86735 +#else
86736 start = vma->vm_start;
86737 - if (stack_guard_page_start(vma, start))
86738 - start += PAGE_SIZE;
86739 end = vma->vm_end;
86740 - if (stack_guard_page_end(vma, end))
86741 - end -= PAGE_SIZE;
86742 +#endif
86743
86744 seq_setwidth(m, 25 + sizeof(void *) * 6 - 1);
86745 seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu ",
86746 @@ -303,7 +327,11 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
86747 flags & VM_WRITE ? 'w' : '-',
86748 flags & VM_EXEC ? 'x' : '-',
86749 flags & VM_MAYSHARE ? 's' : 'p',
86750 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
86751 + PAX_RAND_FLAGS(mm) ? 0UL : pgoff,
86752 +#else
86753 pgoff,
86754 +#endif
86755 MAJOR(dev), MINOR(dev), ino);
86756
86757 /*
86758 @@ -312,7 +340,7 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
86759 */
86760 if (file) {
86761 seq_pad(m, ' ');
86762 - seq_file_path(m, file, "\n");
86763 + seq_file_path(m, file, "\n\\");
86764 goto done;
86765 }
86766
86767 @@ -343,8 +371,9 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
86768 * Thread stack in /proc/PID/task/TID/maps or
86769 * the main process stack.
86770 */
86771 - if (!is_pid || (vma->vm_start <= mm->start_stack &&
86772 - vma->vm_end >= mm->start_stack)) {
86773 + if (!is_pid || (vma->vm_flags & (VM_GROWSDOWN | VM_GROWSUP)) ||
86774 + (vma->vm_start <= mm->start_stack &&
86775 + vma->vm_end >= mm->start_stack)) {
86776 name = "[stack]";
86777 } else {
86778 /* Thread stack in /proc/PID/maps */
86779 @@ -364,6 +393,12 @@ done:
86780
86781 static int show_map(struct seq_file *m, void *v, int is_pid)
86782 {
86783 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
86784 + if (current->exec_id != m->exec_id) {
86785 + gr_log_badprocpid("maps");
86786 + return 0;
86787 + }
86788 +#endif
86789 show_map_vma(m, v, is_pid);
86790 m_cache_vma(m, v);
86791 return 0;
86792 @@ -601,6 +636,9 @@ static void show_smap_vma_flags(struct seq_file *m, struct vm_area_struct *vma)
86793 [ilog2(VM_RAND_READ)] = "rr",
86794 [ilog2(VM_DONTCOPY)] = "dc",
86795 [ilog2(VM_DONTEXPAND)] = "de",
86796 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_X86_32)
86797 + [ilog2(VM_PAGEEXEC)] = "px",
86798 +#endif
86799 [ilog2(VM_ACCOUNT)] = "ac",
86800 [ilog2(VM_NORESERVE)] = "nr",
86801 [ilog2(VM_HUGETLB)] = "ht",
86802 @@ -670,9 +708,18 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
86803 .private = &mss,
86804 };
86805
86806 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
86807 + if (current->exec_id != m->exec_id) {
86808 + gr_log_badprocpid("smaps");
86809 + return 0;
86810 + }
86811 +#endif
86812 memset(&mss, 0, sizeof mss);
86813 - /* mmap_sem is held in m_start */
86814 - walk_page_vma(vma, &smaps_walk);
86815 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
86816 + if (!PAX_RAND_FLAGS(vma->vm_mm))
86817 +#endif
86818 + /* mmap_sem is held in m_start */
86819 + walk_page_vma(vma, &smaps_walk);
86820
86821 show_map_vma(m, vma, is_pid);
86822
86823 @@ -694,7 +741,11 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
86824 "KernelPageSize: %8lu kB\n"
86825 "MMUPageSize: %8lu kB\n"
86826 "Locked: %8lu kB\n",
86827 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
86828 + PAX_RAND_FLAGS(vma->vm_mm) ? 0UL : (vma->vm_end - vma->vm_start) >> 10,
86829 +#else
86830 (vma->vm_end - vma->vm_start) >> 10,
86831 +#endif
86832 mss.resident >> 10,
86833 (unsigned long)(mss.pss >> (10 + PSS_SHIFT)),
86834 mss.shared_clean >> 10,
86835 @@ -1518,6 +1569,13 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
86836 char buffer[64];
86837 int nid;
86838
86839 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
86840 + if (current->exec_id != m->exec_id) {
86841 + gr_log_badprocpid("numa_maps");
86842 + return 0;
86843 + }
86844 +#endif
86845 +
86846 if (!mm)
86847 return 0;
86848
86849 @@ -1532,11 +1590,15 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
86850 mpol_to_str(buffer, sizeof(buffer), proc_priv->task_mempolicy);
86851 }
86852
86853 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
86854 + seq_printf(m, "%08lx %s", PAX_RAND_FLAGS(vma->vm_mm) ? 0UL : vma->vm_start, buffer);
86855 +#else
86856 seq_printf(m, "%08lx %s", vma->vm_start, buffer);
86857 +#endif
86858
86859 if (file) {
86860 seq_puts(m, " file=");
86861 - seq_file_path(m, file, "\n\t= ");
86862 + seq_file_path(m, file, "\n\t\\= ");
86863 } else if (vma->vm_start <= mm->brk && vma->vm_end >= mm->start_brk) {
86864 seq_puts(m, " heap");
86865 } else {
86866 diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c
86867 index e0d64c9..c44c96e 100644
86868 --- a/fs/proc/task_nommu.c
86869 +++ b/fs/proc/task_nommu.c
86870 @@ -51,7 +51,7 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
86871 else
86872 bytes += kobjsize(mm);
86873
86874 - if (current->fs && current->fs->users > 1)
86875 + if (current->fs && atomic_read(&current->fs->users) > 1)
86876 sbytes += kobjsize(current->fs);
86877 else
86878 bytes += kobjsize(current->fs);
86879 @@ -180,7 +180,7 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma,
86880
86881 if (file) {
86882 seq_pad(m, ' ');
86883 - seq_file_path(m, file, "");
86884 + seq_file_path(m, file, "\n\\");
86885 } else if (mm) {
86886 pid_t tid = pid_of_stack(priv, vma, is_pid);
86887
86888 diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c
86889 index 4e61388..1a2523d 100644
86890 --- a/fs/proc/vmcore.c
86891 +++ b/fs/proc/vmcore.c
86892 @@ -105,9 +105,13 @@ static ssize_t read_from_oldmem(char *buf, size_t count,
86893 nr_bytes = count;
86894
86895 /* If pfn is not ram, return zeros for sparse dump files */
86896 - if (pfn_is_ram(pfn) == 0)
86897 - memset(buf, 0, nr_bytes);
86898 - else {
86899 + if (pfn_is_ram(pfn) == 0) {
86900 + if (userbuf) {
86901 + if (clear_user((char __force_user *)buf, nr_bytes))
86902 + return -EFAULT;
86903 + } else
86904 + memset(buf, 0, nr_bytes);
86905 + } else {
86906 tmp = copy_oldmem_page(pfn, buf, nr_bytes,
86907 offset, userbuf);
86908 if (tmp < 0)
86909 @@ -170,7 +174,7 @@ int __weak remap_oldmem_pfn_range(struct vm_area_struct *vma,
86910 static int copy_to(void *target, void *src, size_t size, int userbuf)
86911 {
86912 if (userbuf) {
86913 - if (copy_to_user((char __user *) target, src, size))
86914 + if (copy_to_user((char __force_user *) target, src, size))
86915 return -EFAULT;
86916 } else {
86917 memcpy(target, src, size);
86918 @@ -233,7 +237,7 @@ static ssize_t __read_vmcore(char *buffer, size_t buflen, loff_t *fpos,
86919 if (*fpos < m->offset + m->size) {
86920 tsz = min_t(size_t, m->offset + m->size - *fpos, buflen);
86921 start = m->paddr + *fpos - m->offset;
86922 - tmp = read_from_oldmem(buffer, tsz, &start, userbuf);
86923 + tmp = read_from_oldmem((char __force_kernel *)buffer, tsz, &start, userbuf);
86924 if (tmp < 0)
86925 return tmp;
86926 buflen -= tsz;
86927 @@ -253,7 +257,7 @@ static ssize_t __read_vmcore(char *buffer, size_t buflen, loff_t *fpos,
86928 static ssize_t read_vmcore(struct file *file, char __user *buffer,
86929 size_t buflen, loff_t *fpos)
86930 {
86931 - return __read_vmcore((__force char *) buffer, buflen, fpos, 1);
86932 + return __read_vmcore((__force_kernel char *) buffer, buflen, fpos, 1);
86933 }
86934
86935 /*
86936 diff --git a/fs/qnx6/qnx6.h b/fs/qnx6/qnx6.h
86937 index d3fb2b6..43a8140 100644
86938 --- a/fs/qnx6/qnx6.h
86939 +++ b/fs/qnx6/qnx6.h
86940 @@ -74,7 +74,7 @@ enum {
86941 BYTESEX_BE,
86942 };
86943
86944 -static inline __u64 fs64_to_cpu(struct qnx6_sb_info *sbi, __fs64 n)
86945 +static inline __u64 __intentional_overflow(-1) fs64_to_cpu(struct qnx6_sb_info *sbi, __fs64 n)
86946 {
86947 if (sbi->s_bytesex == BYTESEX_LE)
86948 return le64_to_cpu((__force __le64)n);
86949 @@ -90,7 +90,7 @@ static inline __fs64 cpu_to_fs64(struct qnx6_sb_info *sbi, __u64 n)
86950 return (__force __fs64)cpu_to_be64(n);
86951 }
86952
86953 -static inline __u32 fs32_to_cpu(struct qnx6_sb_info *sbi, __fs32 n)
86954 +static inline __u32 __intentional_overflow(-1) fs32_to_cpu(struct qnx6_sb_info *sbi, __fs32 n)
86955 {
86956 if (sbi->s_bytesex == BYTESEX_LE)
86957 return le32_to_cpu((__force __le32)n);
86958 diff --git a/fs/quota/netlink.c b/fs/quota/netlink.c
86959 index bb2869f..d34ada8 100644
86960 --- a/fs/quota/netlink.c
86961 +++ b/fs/quota/netlink.c
86962 @@ -44,7 +44,7 @@ static struct genl_family quota_genl_family = {
86963 void quota_send_warning(struct kqid qid, dev_t dev,
86964 const char warntype)
86965 {
86966 - static atomic_t seq;
86967 + static atomic_unchecked_t seq;
86968 struct sk_buff *skb;
86969 void *msg_head;
86970 int ret;
86971 @@ -60,7 +60,7 @@ void quota_send_warning(struct kqid qid, dev_t dev,
86972 "VFS: Not enough memory to send quota warning.\n");
86973 return;
86974 }
86975 - msg_head = genlmsg_put(skb, 0, atomic_add_return(1, &seq),
86976 + msg_head = genlmsg_put(skb, 0, atomic_add_return_unchecked(1, &seq),
86977 &quota_genl_family, 0, QUOTA_NL_C_WARNING);
86978 if (!msg_head) {
86979 printk(KERN_ERR
86980 diff --git a/fs/read_write.c b/fs/read_write.c
86981 index 819ef3f..f07222d 100644
86982 --- a/fs/read_write.c
86983 +++ b/fs/read_write.c
86984 @@ -505,7 +505,7 @@ ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t
86985
86986 old_fs = get_fs();
86987 set_fs(get_ds());
86988 - p = (__force const char __user *)buf;
86989 + p = (const char __force_user *)buf;
86990 if (count > MAX_RW_COUNT)
86991 count = MAX_RW_COUNT;
86992 ret = __vfs_write(file, p, count, pos);
86993 diff --git a/fs/readdir.c b/fs/readdir.c
86994 index ced6791..e0500c1 100644
86995 --- a/fs/readdir.c
86996 +++ b/fs/readdir.c
86997 @@ -18,6 +18,7 @@
86998 #include <linux/security.h>
86999 #include <linux/syscalls.h>
87000 #include <linux/unistd.h>
87001 +#include <linux/namei.h>
87002
87003 #include <asm/uaccess.h>
87004
87005 @@ -71,6 +72,7 @@ struct old_linux_dirent {
87006 struct readdir_callback {
87007 struct dir_context ctx;
87008 struct old_linux_dirent __user * dirent;
87009 + struct file * file;
87010 int result;
87011 };
87012
87013 @@ -89,6 +91,10 @@ static int fillonedir(struct dir_context *ctx, const char *name, int namlen,
87014 buf->result = -EOVERFLOW;
87015 return -EOVERFLOW;
87016 }
87017 +
87018 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
87019 + return 0;
87020 +
87021 buf->result++;
87022 dirent = buf->dirent;
87023 if (!access_ok(VERIFY_WRITE, dirent,
87024 @@ -120,6 +126,7 @@ SYSCALL_DEFINE3(old_readdir, unsigned int, fd,
87025 if (!f.file)
87026 return -EBADF;
87027
87028 + buf.file = f.file;
87029 error = iterate_dir(f.file, &buf.ctx);
87030 if (buf.result)
87031 error = buf.result;
87032 @@ -145,6 +152,7 @@ struct getdents_callback {
87033 struct dir_context ctx;
87034 struct linux_dirent __user * current_dir;
87035 struct linux_dirent __user * previous;
87036 + struct file * file;
87037 int count;
87038 int error;
87039 };
87040 @@ -167,6 +175,10 @@ static int filldir(struct dir_context *ctx, const char *name, int namlen,
87041 buf->error = -EOVERFLOW;
87042 return -EOVERFLOW;
87043 }
87044 +
87045 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
87046 + return 0;
87047 +
87048 dirent = buf->previous;
87049 if (dirent) {
87050 if (__put_user(offset, &dirent->d_off))
87051 @@ -212,6 +224,7 @@ SYSCALL_DEFINE3(getdents, unsigned int, fd,
87052 if (!f.file)
87053 return -EBADF;
87054
87055 + buf.file = f.file;
87056 error = iterate_dir(f.file, &buf.ctx);
87057 if (error >= 0)
87058 error = buf.error;
87059 @@ -230,6 +243,7 @@ struct getdents_callback64 {
87060 struct dir_context ctx;
87061 struct linux_dirent64 __user * current_dir;
87062 struct linux_dirent64 __user * previous;
87063 + struct file *file;
87064 int count;
87065 int error;
87066 };
87067 @@ -246,6 +260,10 @@ static int filldir64(struct dir_context *ctx, const char *name, int namlen,
87068 buf->error = -EINVAL; /* only used if we fail.. */
87069 if (reclen > buf->count)
87070 return -EINVAL;
87071 +
87072 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
87073 + return 0;
87074 +
87075 dirent = buf->previous;
87076 if (dirent) {
87077 if (__put_user(offset, &dirent->d_off))
87078 @@ -293,13 +311,13 @@ SYSCALL_DEFINE3(getdents64, unsigned int, fd,
87079 if (!f.file)
87080 return -EBADF;
87081
87082 + buf.file = f.file;
87083 error = iterate_dir(f.file, &buf.ctx);
87084 if (error >= 0)
87085 error = buf.error;
87086 lastdirent = buf.previous;
87087 if (lastdirent) {
87088 - typeof(lastdirent->d_off) d_off = buf.ctx.pos;
87089 - if (__put_user(d_off, &lastdirent->d_off))
87090 + if (__put_user(buf.ctx.pos, &lastdirent->d_off))
87091 error = -EFAULT;
87092 else
87093 error = count - buf.count;
87094 diff --git a/fs/reiserfs/do_balan.c b/fs/reiserfs/do_balan.c
87095 index 9c02d96..6562c10 100644
87096 --- a/fs/reiserfs/do_balan.c
87097 +++ b/fs/reiserfs/do_balan.c
87098 @@ -1887,7 +1887,7 @@ void do_balance(struct tree_balance *tb, struct item_head *ih,
87099 return;
87100 }
87101
87102 - atomic_inc(&fs_generation(tb->tb_sb));
87103 + atomic_inc_unchecked(&fs_generation(tb->tb_sb));
87104 do_balance_starts(tb);
87105
87106 /*
87107 diff --git a/fs/reiserfs/item_ops.c b/fs/reiserfs/item_ops.c
87108 index aca73dd..e3c558d 100644
87109 --- a/fs/reiserfs/item_ops.c
87110 +++ b/fs/reiserfs/item_ops.c
87111 @@ -724,18 +724,18 @@ static void errcatch_print_vi(struct virtual_item *vi)
87112 }
87113
87114 static struct item_operations errcatch_ops = {
87115 - errcatch_bytes_number,
87116 - errcatch_decrement_key,
87117 - errcatch_is_left_mergeable,
87118 - errcatch_print_item,
87119 - errcatch_check_item,
87120 + .bytes_number = errcatch_bytes_number,
87121 + .decrement_key = errcatch_decrement_key,
87122 + .is_left_mergeable = errcatch_is_left_mergeable,
87123 + .print_item = errcatch_print_item,
87124 + .check_item = errcatch_check_item,
87125
87126 - errcatch_create_vi,
87127 - errcatch_check_left,
87128 - errcatch_check_right,
87129 - errcatch_part_size,
87130 - errcatch_unit_num,
87131 - errcatch_print_vi
87132 + .create_vi = errcatch_create_vi,
87133 + .check_left = errcatch_check_left,
87134 + .check_right = errcatch_check_right,
87135 + .part_size = errcatch_part_size,
87136 + .unit_num = errcatch_unit_num,
87137 + .print_vi = errcatch_print_vi
87138 };
87139
87140 #if ! (TYPE_STAT_DATA == 0 && TYPE_INDIRECT == 1 && TYPE_DIRECT == 2 && TYPE_DIRENTRY == 3)
87141 diff --git a/fs/reiserfs/procfs.c b/fs/reiserfs/procfs.c
87142 index 621b9f3..af527fd 100644
87143 --- a/fs/reiserfs/procfs.c
87144 +++ b/fs/reiserfs/procfs.c
87145 @@ -114,7 +114,7 @@ static int show_super(struct seq_file *m, void *unused)
87146 "SMALL_TAILS " : "NO_TAILS ",
87147 replay_only(sb) ? "REPLAY_ONLY " : "",
87148 convert_reiserfs(sb) ? "CONV " : "",
87149 - atomic_read(&r->s_generation_counter),
87150 + atomic_read_unchecked(&r->s_generation_counter),
87151 SF(s_disk_reads), SF(s_disk_writes), SF(s_fix_nodes),
87152 SF(s_do_balance), SF(s_unneeded_left_neighbor),
87153 SF(s_good_search_by_key_reada), SF(s_bmaps),
87154 diff --git a/fs/reiserfs/reiserfs.h b/fs/reiserfs/reiserfs.h
87155 index 2adcde1..7d27bc8 100644
87156 --- a/fs/reiserfs/reiserfs.h
87157 +++ b/fs/reiserfs/reiserfs.h
87158 @@ -580,7 +580,7 @@ struct reiserfs_sb_info {
87159 /* Comment? -Hans */
87160 wait_queue_head_t s_wait;
87161 /* increased by one every time the tree gets re-balanced */
87162 - atomic_t s_generation_counter;
87163 + atomic_unchecked_t s_generation_counter;
87164
87165 /* File system properties. Currently holds on-disk FS format */
87166 unsigned long s_properties;
87167 @@ -2300,7 +2300,7 @@ static inline loff_t max_reiserfs_offset(struct inode *inode)
87168 #define REISERFS_USER_MEM 1 /* user memory mode */
87169
87170 #define fs_generation(s) (REISERFS_SB(s)->s_generation_counter)
87171 -#define get_generation(s) atomic_read (&fs_generation(s))
87172 +#define get_generation(s) atomic_read_unchecked (&fs_generation(s))
87173 #define FILESYSTEM_CHANGED_TB(tb) (get_generation((tb)->tb_sb) != (tb)->fs_gen)
87174 #define __fs_changed(gen,s) (gen != get_generation (s))
87175 #define fs_changed(gen,s) \
87176 diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c
87177 index 4a62fe8..5dc2f5f 100644
87178 --- a/fs/reiserfs/super.c
87179 +++ b/fs/reiserfs/super.c
87180 @@ -1870,6 +1870,10 @@ static int reiserfs_fill_super(struct super_block *s, void *data, int silent)
87181 sbi->s_mount_opt |= (1 << REISERFS_SMALLTAIL);
87182 sbi->s_mount_opt |= (1 << REISERFS_ERROR_RO);
87183 sbi->s_mount_opt |= (1 << REISERFS_BARRIER_FLUSH);
87184 +#ifdef CONFIG_REISERFS_FS_XATTR
87185 + /* turn on user xattrs by default */
87186 + sbi->s_mount_opt |= (1 << REISERFS_XATTRS_USER);
87187 +#endif
87188 /* no preallocation minimum, be smart in reiserfs_file_write instead */
87189 sbi->s_alloc_options.preallocmin = 0;
87190 /* Preallocate by 16 blocks (17-1) at once */
87191 diff --git a/fs/select.c b/fs/select.c
87192 index 0155473..da772c4 100644
87193 --- a/fs/select.c
87194 +++ b/fs/select.c
87195 @@ -20,6 +20,7 @@
87196 #include <linux/export.h>
87197 #include <linux/slab.h>
87198 #include <linux/poll.h>
87199 +#include <linux/security.h>
87200 #include <linux/personality.h> /* for STICKY_TIMEOUTS */
87201 #include <linux/file.h>
87202 #include <linux/fdtable.h>
87203 @@ -717,7 +718,7 @@ SYSCALL_DEFINE6(pselect6, int, n, fd_set __user *, inp, fd_set __user *, outp,
87204
87205 #ifdef __ARCH_WANT_SYS_OLD_SELECT
87206 struct sel_arg_struct {
87207 - unsigned long n;
87208 + long n;
87209 fd_set __user *inp, *outp, *exp;
87210 struct timeval __user *tvp;
87211 };
87212 @@ -880,6 +881,7 @@ int do_sys_poll(struct pollfd __user *ufds, unsigned int nfds,
87213 struct poll_list *walk = head;
87214 unsigned long todo = nfds;
87215
87216 + gr_learn_resource(current, RLIMIT_NOFILE, nfds, 1);
87217 if (nfds > rlimit(RLIMIT_NOFILE))
87218 return -EINVAL;
87219
87220 diff --git a/fs/seq_file.c b/fs/seq_file.c
87221 index e85664b..ad62e5f 100644
87222 --- a/fs/seq_file.c
87223 +++ b/fs/seq_file.c
87224 @@ -14,6 +14,8 @@
87225 #include <linux/mm.h>
87226 #include <linux/printk.h>
87227 #include <linux/string_helpers.h>
87228 +#include <linux/sched.h>
87229 +#include <linux/grsecurity.h>
87230
87231 #include <asm/uaccess.h>
87232 #include <asm/page.h>
87233 @@ -26,7 +28,7 @@ static void seq_set_overflow(struct seq_file *m)
87234 static void *seq_buf_alloc(unsigned long size)
87235 {
87236 void *buf;
87237 - gfp_t gfp = GFP_KERNEL;
87238 + gfp_t gfp = GFP_KERNEL | GFP_USERCOPY;
87239
87240 /*
87241 * For high order allocations, use __GFP_NORETRY to avoid oom-killing -
87242 @@ -38,7 +40,7 @@ static void *seq_buf_alloc(unsigned long size)
87243 gfp |= __GFP_NORETRY | __GFP_NOWARN;
87244 buf = kmalloc(size, gfp);
87245 if (!buf && size > PAGE_SIZE)
87246 - buf = vmalloc(size);
87247 + buf = vmalloc_usercopy(size);
87248 return buf;
87249 }
87250
87251 @@ -75,6 +77,9 @@ int seq_open(struct file *file, const struct seq_operations *op)
87252 #ifdef CONFIG_USER_NS
87253 p->user_ns = file->f_cred->user_ns;
87254 #endif
87255 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
87256 + p->exec_id = current->exec_id;
87257 +#endif
87258
87259 /*
87260 * Wrappers around seq_open(e.g. swaps_open) need to be
87261 @@ -97,6 +102,16 @@ int seq_open(struct file *file, const struct seq_operations *op)
87262 }
87263 EXPORT_SYMBOL(seq_open);
87264
87265 +
87266 +int seq_open_restrict(struct file *file, const struct seq_operations *op)
87267 +{
87268 + if (gr_proc_is_restricted())
87269 + return -EACCES;
87270 +
87271 + return seq_open(file, op);
87272 +}
87273 +EXPORT_SYMBOL(seq_open_restrict);
87274 +
87275 static int traverse(struct seq_file *m, loff_t offset)
87276 {
87277 loff_t pos = 0, index;
87278 @@ -168,7 +183,7 @@ Eoverflow:
87279 ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
87280 {
87281 struct seq_file *m = file->private_data;
87282 - size_t copied = 0;
87283 + ssize_t copied = 0;
87284 loff_t pos;
87285 size_t n;
87286 void *p;
87287 @@ -563,7 +578,7 @@ static void single_stop(struct seq_file *p, void *v)
87288 int single_open(struct file *file, int (*show)(struct seq_file *, void *),
87289 void *data)
87290 {
87291 - struct seq_operations *op = kmalloc(sizeof(*op), GFP_KERNEL);
87292 + seq_operations_no_const *op = kzalloc(sizeof(*op), GFP_KERNEL);
87293 int res = -ENOMEM;
87294
87295 if (op) {
87296 @@ -599,6 +614,17 @@ int single_open_size(struct file *file, int (*show)(struct seq_file *, void *),
87297 }
87298 EXPORT_SYMBOL(single_open_size);
87299
87300 +int single_open_restrict(struct file *file, int (*show)(struct seq_file *, void *),
87301 + void *data)
87302 +{
87303 + if (gr_proc_is_restricted())
87304 + return -EACCES;
87305 +
87306 + return single_open(file, show, data);
87307 +}
87308 +EXPORT_SYMBOL(single_open_restrict);
87309 +
87310 +
87311 int single_release(struct inode *inode, struct file *file)
87312 {
87313 const struct seq_operations *op = ((struct seq_file *)file->private_data)->op;
87314 diff --git a/fs/splice.c b/fs/splice.c
87315 index 4cf700d..e7216fc 100644
87316 --- a/fs/splice.c
87317 +++ b/fs/splice.c
87318 @@ -192,7 +192,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
87319 pipe_lock(pipe);
87320
87321 for (;;) {
87322 - if (!pipe->readers) {
87323 + if (!atomic_read(&pipe->readers)) {
87324 send_sig(SIGPIPE, current, 0);
87325 if (!ret)
87326 ret = -EPIPE;
87327 @@ -215,7 +215,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
87328 page_nr++;
87329 ret += buf->len;
87330
87331 - if (pipe->files)
87332 + if (atomic_read(&pipe->files))
87333 do_wakeup = 1;
87334
87335 if (!--spd->nr_pages)
87336 @@ -246,9 +246,9 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
87337 do_wakeup = 0;
87338 }
87339
87340 - pipe->waiting_writers++;
87341 + atomic_inc(&pipe->waiting_writers);
87342 pipe_wait(pipe);
87343 - pipe->waiting_writers--;
87344 + atomic_dec(&pipe->waiting_writers);
87345 }
87346
87347 pipe_unlock(pipe);
87348 @@ -579,7 +579,7 @@ static ssize_t kernel_readv(struct file *file, const struct iovec *vec,
87349 old_fs = get_fs();
87350 set_fs(get_ds());
87351 /* The cast to a user pointer is valid due to the set_fs() */
87352 - res = vfs_readv(file, (const struct iovec __user *)vec, vlen, &pos);
87353 + res = vfs_readv(file, (const struct iovec __force_user *)vec, vlen, &pos);
87354 set_fs(old_fs);
87355
87356 return res;
87357 @@ -594,7 +594,7 @@ ssize_t kernel_write(struct file *file, const char *buf, size_t count,
87358 old_fs = get_fs();
87359 set_fs(get_ds());
87360 /* The cast to a user pointer is valid due to the set_fs() */
87361 - res = vfs_write(file, (__force const char __user *)buf, count, &pos);
87362 + res = vfs_write(file, (const char __force_user *)buf, count, &pos);
87363 set_fs(old_fs);
87364
87365 return res;
87366 @@ -647,7 +647,7 @@ ssize_t default_file_splice_read(struct file *in, loff_t *ppos,
87367 goto err;
87368
87369 this_len = min_t(size_t, len, PAGE_CACHE_SIZE - offset);
87370 - vec[i].iov_base = (void __user *) page_address(page);
87371 + vec[i].iov_base = (void __force_user *) page_address(page);
87372 vec[i].iov_len = this_len;
87373 spd.pages[i] = page;
87374 spd.nr_pages++;
87375 @@ -786,7 +786,7 @@ static int splice_from_pipe_feed(struct pipe_inode_info *pipe, struct splice_des
87376 ops->release(pipe, buf);
87377 pipe->curbuf = (pipe->curbuf + 1) & (pipe->buffers - 1);
87378 pipe->nrbufs--;
87379 - if (pipe->files)
87380 + if (atomic_read(&pipe->files))
87381 sd->need_wakeup = true;
87382 }
87383
87384 @@ -817,10 +817,10 @@ static int splice_from_pipe_next(struct pipe_inode_info *pipe, struct splice_des
87385 return -ERESTARTSYS;
87386
87387 while (!pipe->nrbufs) {
87388 - if (!pipe->writers)
87389 + if (!atomic_read(&pipe->writers))
87390 return 0;
87391
87392 - if (!pipe->waiting_writers && sd->num_spliced)
87393 + if (!atomic_read(&pipe->waiting_writers) && sd->num_spliced)
87394 return 0;
87395
87396 if (sd->flags & SPLICE_F_NONBLOCK)
87397 @@ -1036,7 +1036,7 @@ iter_file_splice_write(struct pipe_inode_info *pipe, struct file *out,
87398 ops->release(pipe, buf);
87399 pipe->curbuf = (pipe->curbuf + 1) & (pipe->buffers - 1);
87400 pipe->nrbufs--;
87401 - if (pipe->files)
87402 + if (atomic_read(&pipe->files))
87403 sd.need_wakeup = true;
87404 } else {
87405 buf->offset += ret;
87406 @@ -1196,7 +1196,7 @@ ssize_t splice_direct_to_actor(struct file *in, struct splice_desc *sd,
87407 * out of the pipe right after the splice_to_pipe(). So set
87408 * PIPE_READERS appropriately.
87409 */
87410 - pipe->readers = 1;
87411 + atomic_set(&pipe->readers, 1);
87412
87413 current->splice_pipe = pipe;
87414 }
87415 @@ -1503,6 +1503,7 @@ static int get_iovec_page_array(const struct iovec __user *iov,
87416
87417 partial[buffers].offset = off;
87418 partial[buffers].len = plen;
87419 + partial[buffers].private = 0;
87420
87421 off = 0;
87422 len -= plen;
87423 @@ -1734,9 +1735,9 @@ static int ipipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
87424 ret = -ERESTARTSYS;
87425 break;
87426 }
87427 - if (!pipe->writers)
87428 + if (!atomic_read(&pipe->writers))
87429 break;
87430 - if (!pipe->waiting_writers) {
87431 + if (!atomic_read(&pipe->waiting_writers)) {
87432 if (flags & SPLICE_F_NONBLOCK) {
87433 ret = -EAGAIN;
87434 break;
87435 @@ -1768,7 +1769,7 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
87436 pipe_lock(pipe);
87437
87438 while (pipe->nrbufs >= pipe->buffers) {
87439 - if (!pipe->readers) {
87440 + if (!atomic_read(&pipe->readers)) {
87441 send_sig(SIGPIPE, current, 0);
87442 ret = -EPIPE;
87443 break;
87444 @@ -1781,9 +1782,9 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
87445 ret = -ERESTARTSYS;
87446 break;
87447 }
87448 - pipe->waiting_writers++;
87449 + atomic_inc(&pipe->waiting_writers);
87450 pipe_wait(pipe);
87451 - pipe->waiting_writers--;
87452 + atomic_dec(&pipe->waiting_writers);
87453 }
87454
87455 pipe_unlock(pipe);
87456 @@ -1819,14 +1820,14 @@ retry:
87457 pipe_double_lock(ipipe, opipe);
87458
87459 do {
87460 - if (!opipe->readers) {
87461 + if (!atomic_read(&opipe->readers)) {
87462 send_sig(SIGPIPE, current, 0);
87463 if (!ret)
87464 ret = -EPIPE;
87465 break;
87466 }
87467
87468 - if (!ipipe->nrbufs && !ipipe->writers)
87469 + if (!ipipe->nrbufs && !atomic_read(&ipipe->writers))
87470 break;
87471
87472 /*
87473 @@ -1923,7 +1924,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
87474 pipe_double_lock(ipipe, opipe);
87475
87476 do {
87477 - if (!opipe->readers) {
87478 + if (!atomic_read(&opipe->readers)) {
87479 send_sig(SIGPIPE, current, 0);
87480 if (!ret)
87481 ret = -EPIPE;
87482 @@ -1968,7 +1969,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
87483 * return EAGAIN if we have the potential of some data in the
87484 * future, otherwise just return 0
87485 */
87486 - if (!ret && ipipe->waiting_writers && (flags & SPLICE_F_NONBLOCK))
87487 + if (!ret && atomic_read(&ipipe->waiting_writers) && (flags & SPLICE_F_NONBLOCK))
87488 ret = -EAGAIN;
87489
87490 pipe_unlock(ipipe);
87491 diff --git a/fs/squashfs/xattr.c b/fs/squashfs/xattr.c
87492 index 6a4cc34..acc9eef 100644
87493 --- a/fs/squashfs/xattr.c
87494 +++ b/fs/squashfs/xattr.c
87495 @@ -46,8 +46,8 @@ ssize_t squashfs_listxattr(struct dentry *d, char *buffer,
87496 + msblk->xattr_table;
87497 int offset = SQUASHFS_XATTR_OFFSET(squashfs_i(inode)->xattr);
87498 int count = squashfs_i(inode)->xattr_count;
87499 - size_t rest = buffer_size;
87500 - int err;
87501 + size_t used = 0;
87502 + ssize_t err;
87503
87504 /* check that the file system has xattrs */
87505 if (msblk->xattr_id_table == NULL)
87506 @@ -68,11 +68,11 @@ ssize_t squashfs_listxattr(struct dentry *d, char *buffer,
87507 name_size = le16_to_cpu(entry.size);
87508 handler = squashfs_xattr_handler(le16_to_cpu(entry.type));
87509 if (handler)
87510 - prefix_size = handler->list(handler, d, buffer, rest,
87511 + prefix_size = handler->list(handler, d, buffer, buffer ? buffer_size - used : 0,
87512 NULL, name_size);
87513 if (prefix_size) {
87514 if (buffer) {
87515 - if (prefix_size + name_size + 1 > rest) {
87516 + if (prefix_size + name_size + 1 > buffer_size - used) {
87517 err = -ERANGE;
87518 goto failed;
87519 }
87520 @@ -86,7 +86,7 @@ ssize_t squashfs_listxattr(struct dentry *d, char *buffer,
87521 buffer[name_size] = '\0';
87522 buffer += name_size + 1;
87523 }
87524 - rest -= prefix_size + name_size + 1;
87525 + used += prefix_size + name_size + 1;
87526 } else {
87527 /* no handler or insuffficient privileges, so skip */
87528 err = squashfs_read_metadata(sb, NULL, &start,
87529 @@ -107,7 +107,7 @@ ssize_t squashfs_listxattr(struct dentry *d, char *buffer,
87530 if (err < 0)
87531 goto failed;
87532 }
87533 - err = buffer_size - rest;
87534 + err = used;
87535
87536 failed:
87537 return err;
87538 diff --git a/fs/stat.c b/fs/stat.c
87539 index d4a61d8..87dbeb3 100644
87540 --- a/fs/stat.c
87541 +++ b/fs/stat.c
87542 @@ -28,8 +28,13 @@ void generic_fillattr(struct inode *inode, struct kstat *stat)
87543 stat->gid = inode->i_gid;
87544 stat->rdev = inode->i_rdev;
87545 stat->size = i_size_read(inode);
87546 - stat->atime = inode->i_atime;
87547 - stat->mtime = inode->i_mtime;
87548 + if (is_sidechannel_device(inode) && !capable_nolog(CAP_MKNOD)) {
87549 + stat->atime = inode->i_ctime;
87550 + stat->mtime = inode->i_ctime;
87551 + } else {
87552 + stat->atime = inode->i_atime;
87553 + stat->mtime = inode->i_mtime;
87554 + }
87555 stat->ctime = inode->i_ctime;
87556 stat->blksize = (1 << inode->i_blkbits);
87557 stat->blocks = inode->i_blocks;
87558 @@ -52,9 +57,16 @@ EXPORT_SYMBOL(generic_fillattr);
87559 int vfs_getattr_nosec(struct path *path, struct kstat *stat)
87560 {
87561 struct inode *inode = d_backing_inode(path->dentry);
87562 + int retval;
87563
87564 - if (inode->i_op->getattr)
87565 - return inode->i_op->getattr(path->mnt, path->dentry, stat);
87566 + if (inode->i_op->getattr) {
87567 + retval = inode->i_op->getattr(path->mnt, path->dentry, stat);
87568 + if (!retval && is_sidechannel_device(inode) && !capable_nolog(CAP_MKNOD)) {
87569 + stat->atime = stat->ctime;
87570 + stat->mtime = stat->ctime;
87571 + }
87572 + return retval;
87573 + }
87574
87575 generic_fillattr(inode, stat);
87576 return 0;
87577 diff --git a/fs/super.c b/fs/super.c
87578 index f5f4b32..f6bedd2 100644
87579 --- a/fs/super.c
87580 +++ b/fs/super.c
87581 @@ -348,7 +348,8 @@ EXPORT_SYMBOL(deactivate_super);
87582 * called for superblocks not in rundown mode (== ones still on ->fs_supers
87583 * of their type), so increment of ->s_count is OK here.
87584 */
87585 -static int grab_super(struct super_block *s) __releases(sb_lock)
87586 +static int grab_super(struct super_block *s) __releases(&sb_lock);
87587 +static int grab_super(struct super_block *s)
87588 {
87589 s->s_count++;
87590 spin_unlock(&sb_lock);
87591 diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
87592 index 94374e4..b5da3a1 100644
87593 --- a/fs/sysfs/dir.c
87594 +++ b/fs/sysfs/dir.c
87595 @@ -33,6 +33,10 @@ void sysfs_warn_dup(struct kernfs_node *parent, const char *name)
87596 kfree(buf);
87597 }
87598
87599 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
87600 +extern int grsec_enable_sysfs_restrict;
87601 +#endif
87602 +
87603 /**
87604 * sysfs_create_dir_ns - create a directory for an object with a namespace tag
87605 * @kobj: object we're creating directory for
87606 @@ -41,9 +45,16 @@ void sysfs_warn_dup(struct kernfs_node *parent, const char *name)
87607 int sysfs_create_dir_ns(struct kobject *kobj, const void *ns)
87608 {
87609 struct kernfs_node *parent, *kn;
87610 + const char *name;
87611 + umode_t mode = S_IRWXU | S_IRUGO | S_IXUGO;
87612 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
87613 + const char *parent_name;
87614 +#endif
87615
87616 BUG_ON(!kobj);
87617
87618 + name = kobject_name(kobj);
87619 +
87620 if (kobj->parent)
87621 parent = kobj->parent->sd;
87622 else
87623 @@ -52,11 +63,24 @@ int sysfs_create_dir_ns(struct kobject *kobj, const void *ns)
87624 if (!parent)
87625 return -ENOENT;
87626
87627 - kn = kernfs_create_dir_ns(parent, kobject_name(kobj),
87628 - S_IRWXU | S_IRUGO | S_IXUGO, kobj, ns);
87629 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
87630 + parent_name = parent->name;
87631 + mode = S_IRWXU;
87632 +
87633 + if ((!strcmp(parent_name, "") && (!strcmp(name, "devices") || !strcmp(name, "fs"))) ||
87634 + (!strcmp(parent_name, "devices") && !strcmp(name, "system")) ||
87635 + (!strcmp(parent_name, "fs") && (!strcmp(name, "selinux") || !strcmp(name, "fuse") || !strcmp(name, "ecryptfs"))) ||
87636 + (!strcmp(parent_name, "system") && !strcmp(name, "cpu")))
87637 + mode = S_IRWXU | S_IRUGO | S_IXUGO;
87638 + if (!grsec_enable_sysfs_restrict)
87639 + mode = S_IRWXU | S_IRUGO | S_IXUGO;
87640 +#endif
87641 +
87642 + kn = kernfs_create_dir_ns(parent, name,
87643 + mode, kobj, ns);
87644 if (IS_ERR(kn)) {
87645 if (PTR_ERR(kn) == -EEXIST)
87646 - sysfs_warn_dup(parent, kobject_name(kobj));
87647 + sysfs_warn_dup(parent, name);
87648 return PTR_ERR(kn);
87649 }
87650
87651 diff --git a/fs/sysv/sysv.h b/fs/sysv/sysv.h
87652 index 6c21228..9afd5fe 100644
87653 --- a/fs/sysv/sysv.h
87654 +++ b/fs/sysv/sysv.h
87655 @@ -187,7 +187,7 @@ static inline u32 PDP_swab(u32 x)
87656 #endif
87657 }
87658
87659 -static inline __u32 fs32_to_cpu(struct sysv_sb_info *sbi, __fs32 n)
87660 +static inline __u32 __intentional_overflow(-1) fs32_to_cpu(struct sysv_sb_info *sbi, __fs32 n)
87661 {
87662 if (sbi->s_bytesex == BYTESEX_PDP)
87663 return PDP_swab((__force __u32)n);
87664 diff --git a/fs/tracefs/inode.c b/fs/tracefs/inode.c
87665 index c66f242..2e8701a 100644
87666 --- a/fs/tracefs/inode.c
87667 +++ b/fs/tracefs/inode.c
87668 @@ -53,7 +53,7 @@ static const struct file_operations tracefs_file_operations = {
87669 static struct tracefs_dir_ops {
87670 int (*mkdir)(const char *name);
87671 int (*rmdir)(const char *name);
87672 -} tracefs_ops;
87673 +} __no_const tracefs_ops __read_only;
87674
87675 static char *get_dname(struct dentry *dentry)
87676 {
87677 @@ -494,8 +494,10 @@ struct dentry *tracefs_create_instance_dir(const char *name, struct dentry *pare
87678 if (!dentry)
87679 return NULL;
87680
87681 - tracefs_ops.mkdir = mkdir;
87682 - tracefs_ops.rmdir = rmdir;
87683 + pax_open_kernel();
87684 + *(void **)&tracefs_ops.mkdir = mkdir;
87685 + *(void **)&tracefs_ops.rmdir = rmdir;
87686 + pax_close_kernel();
87687
87688 return dentry;
87689 }
87690 diff --git a/fs/udf/misc.c b/fs/udf/misc.c
87691 index 71d1c25..084e2ad 100644
87692 --- a/fs/udf/misc.c
87693 +++ b/fs/udf/misc.c
87694 @@ -288,7 +288,7 @@ void udf_new_tag(char *data, uint16_t ident, uint16_t version, uint16_t snum,
87695
87696 u8 udf_tag_checksum(const struct tag *t)
87697 {
87698 - u8 *data = (u8 *)t;
87699 + const u8 *data = (const u8 *)t;
87700 u8 checksum = 0;
87701 int i;
87702 for (i = 0; i < sizeof(struct tag); ++i)
87703 diff --git a/fs/ufs/swab.h b/fs/ufs/swab.h
87704 index 8d974c4..b82f6ec 100644
87705 --- a/fs/ufs/swab.h
87706 +++ b/fs/ufs/swab.h
87707 @@ -22,7 +22,7 @@ enum {
87708 BYTESEX_BE
87709 };
87710
87711 -static inline u64
87712 +static inline u64 __intentional_overflow(-1)
87713 fs64_to_cpu(struct super_block *sbp, __fs64 n)
87714 {
87715 if (UFS_SB(sbp)->s_bytesex == BYTESEX_LE)
87716 @@ -40,7 +40,7 @@ cpu_to_fs64(struct super_block *sbp, u64 n)
87717 return (__force __fs64)cpu_to_be64(n);
87718 }
87719
87720 -static inline u32
87721 +static inline u32 __intentional_overflow(-1)
87722 fs32_to_cpu(struct super_block *sbp, __fs32 n)
87723 {
87724 if (UFS_SB(sbp)->s_bytesex == BYTESEX_LE)
87725 diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c
87726 index 5031170..472208c 100644
87727 --- a/fs/userfaultfd.c
87728 +++ b/fs/userfaultfd.c
87729 @@ -426,7 +426,7 @@ static int userfaultfd_release(struct inode *inode, struct file *file)
87730 struct userfaultfd_wake_range range = { .len = 0, };
87731 unsigned long new_flags;
87732
87733 - ACCESS_ONCE(ctx->released) = true;
87734 + ACCESS_ONCE_RW(ctx->released) = true;
87735
87736 /*
87737 * Flush page faults out of all CPUs. NOTE: all page faults
87738 diff --git a/fs/utimes.c b/fs/utimes.c
87739 index aa138d6..5f3a811 100644
87740 --- a/fs/utimes.c
87741 +++ b/fs/utimes.c
87742 @@ -1,6 +1,7 @@
87743 #include <linux/compiler.h>
87744 #include <linux/file.h>
87745 #include <linux/fs.h>
87746 +#include <linux/security.h>
87747 #include <linux/linkage.h>
87748 #include <linux/mount.h>
87749 #include <linux/namei.h>
87750 @@ -103,6 +104,12 @@ static int utimes_common(struct path *path, struct timespec *times)
87751 }
87752 }
87753 retry_deleg:
87754 +
87755 + if (!gr_acl_handle_utime(path->dentry, path->mnt)) {
87756 + error = -EACCES;
87757 + goto mnt_drop_write_and_out;
87758 + }
87759 +
87760 mutex_lock(&inode->i_mutex);
87761 error = notify_change(path->dentry, &newattrs, &delegated_inode);
87762 mutex_unlock(&inode->i_mutex);
87763 diff --git a/fs/xattr.c b/fs/xattr.c
87764 index 9b932b9..31cdeb7 100644
87765 --- a/fs/xattr.c
87766 +++ b/fs/xattr.c
87767 @@ -227,6 +227,27 @@ int vfs_xattr_cmp(struct dentry *dentry, const char *xattr_name,
87768 return rc;
87769 }
87770
87771 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
87772 +ssize_t
87773 +pax_getxattr(struct dentry *dentry, void *value, size_t size)
87774 +{
87775 + struct inode *inode = dentry->d_inode;
87776 + ssize_t error;
87777 +
87778 + error = inode_permission(inode, MAY_EXEC);
87779 + if (error)
87780 + return error;
87781 +
87782 + if (inode->i_op->getxattr)
87783 + error = inode->i_op->getxattr(dentry, XATTR_NAME_PAX_FLAGS, value, size);
87784 + else
87785 + error = -EOPNOTSUPP;
87786 +
87787 + return error;
87788 +}
87789 +EXPORT_SYMBOL(pax_getxattr);
87790 +#endif
87791 +
87792 ssize_t
87793 vfs_getxattr(struct dentry *dentry, const char *name, void *value, size_t size)
87794 {
87795 @@ -319,7 +340,7 @@ EXPORT_SYMBOL_GPL(vfs_removexattr);
87796 * Extended attribute SET operations
87797 */
87798 static long
87799 -setxattr(struct dentry *d, const char __user *name, const void __user *value,
87800 +setxattr(struct path *path, const char __user *name, const void __user *value,
87801 size_t size, int flags)
87802 {
87803 int error;
87804 @@ -355,7 +376,12 @@ setxattr(struct dentry *d, const char __user *name, const void __user *value,
87805 posix_acl_fix_xattr_from_user(kvalue, size);
87806 }
87807
87808 - error = vfs_setxattr(d, kname, kvalue, size, flags);
87809 + if (!gr_acl_handle_setxattr(path->dentry, path->mnt)) {
87810 + error = -EACCES;
87811 + goto out;
87812 + }
87813 +
87814 + error = vfs_setxattr(path->dentry, kname, kvalue, size, flags);
87815 out:
87816 if (vvalue)
87817 vfree(vvalue);
87818 @@ -376,7 +402,7 @@ retry:
87819 return error;
87820 error = mnt_want_write(path.mnt);
87821 if (!error) {
87822 - error = setxattr(path.dentry, name, value, size, flags);
87823 + error = setxattr(&path, name, value, size, flags);
87824 mnt_drop_write(path.mnt);
87825 }
87826 path_put(&path);
87827 @@ -412,7 +438,7 @@ SYSCALL_DEFINE5(fsetxattr, int, fd, const char __user *, name,
87828 audit_file(f.file);
87829 error = mnt_want_write_file(f.file);
87830 if (!error) {
87831 - error = setxattr(f.file->f_path.dentry, name, value, size, flags);
87832 + error = setxattr(&f.file->f_path, name, value, size, flags);
87833 mnt_drop_write_file(f.file);
87834 }
87835 fdput(f);
87836 @@ -598,7 +624,7 @@ SYSCALL_DEFINE3(flistxattr, int, fd, char __user *, list, size_t, size)
87837 * Extended attribute REMOVE operations
87838 */
87839 static long
87840 -removexattr(struct dentry *d, const char __user *name)
87841 +removexattr(struct path *path, const char __user *name)
87842 {
87843 int error;
87844 char kname[XATTR_NAME_MAX + 1];
87845 @@ -609,7 +635,10 @@ removexattr(struct dentry *d, const char __user *name)
87846 if (error < 0)
87847 return error;
87848
87849 - return vfs_removexattr(d, kname);
87850 + if (!gr_acl_handle_removexattr(path->dentry, path->mnt))
87851 + return -EACCES;
87852 +
87853 + return vfs_removexattr(path->dentry, kname);
87854 }
87855
87856 static int path_removexattr(const char __user *pathname,
87857 @@ -623,7 +652,7 @@ retry:
87858 return error;
87859 error = mnt_want_write(path.mnt);
87860 if (!error) {
87861 - error = removexattr(path.dentry, name);
87862 + error = removexattr(&path, name);
87863 mnt_drop_write(path.mnt);
87864 }
87865 path_put(&path);
87866 @@ -649,14 +678,16 @@ SYSCALL_DEFINE2(lremovexattr, const char __user *, pathname,
87867 SYSCALL_DEFINE2(fremovexattr, int, fd, const char __user *, name)
87868 {
87869 struct fd f = fdget(fd);
87870 + struct path *path;
87871 int error = -EBADF;
87872
87873 if (!f.file)
87874 return error;
87875 + path = &f.file->f_path;
87876 audit_file(f.file);
87877 error = mnt_want_write_file(f.file);
87878 if (!error) {
87879 - error = removexattr(f.file->f_path.dentry, name);
87880 + error = removexattr(path, name);
87881 mnt_drop_write_file(f.file);
87882 }
87883 fdput(f);
87884 diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c
87885 index 119c242..a02e8da 100644
87886 --- a/fs/xfs/libxfs/xfs_bmap.c
87887 +++ b/fs/xfs/libxfs/xfs_bmap.c
87888 @@ -554,7 +554,7 @@ xfs_bmap_validate_ret(
87889
87890 #else
87891 #define xfs_bmap_check_leaf_extents(cur, ip, whichfork) do { } while (0)
87892 -#define xfs_bmap_validate_ret(bno,len,flags,mval,onmap,nmap)
87893 +#define xfs_bmap_validate_ret(bno,len,flags,mval,onmap,nmap) do { } while (0)
87894 #endif /* DEBUG */
87895
87896 /*
87897 diff --git a/fs/xfs/libxfs/xfs_da_btree.c b/fs/xfs/libxfs/xfs_da_btree.c
87898 index e89a0f8..3165b4a 100644
87899 --- a/fs/xfs/libxfs/xfs_da_btree.c
87900 +++ b/fs/xfs/libxfs/xfs_da_btree.c
87901 @@ -2011,6 +2011,7 @@ xfs_da_grow_inode_int(
87902 struct xfs_inode *dp = args->dp;
87903 int w = args->whichfork;
87904 xfs_rfsblock_t nblks = dp->i_d.di_nblocks;
87905 + xfs_rfsblock_t nblocks;
87906 struct xfs_bmbt_irec map, *mapp;
87907 int nmap, error, got, i, mapi;
87908
87909 @@ -2079,7 +2080,8 @@ xfs_da_grow_inode_int(
87910 }
87911
87912 /* account for newly allocated blocks in reserved blocks total */
87913 - args->total -= dp->i_d.di_nblocks - nblks;
87914 + nblocks = dp->i_d.di_nblocks - nblks;
87915 + args->total -= nblocks;
87916
87917 out_free_map:
87918 if (mapp != &map)
87919 diff --git a/fs/xfs/xfs_dir2_readdir.c b/fs/xfs/xfs_dir2_readdir.c
87920 index 642d55d..d8ccf82 100644
87921 --- a/fs/xfs/xfs_dir2_readdir.c
87922 +++ b/fs/xfs/xfs_dir2_readdir.c
87923 @@ -140,7 +140,12 @@ xfs_dir2_sf_getdents(
87924 ino = dp->d_ops->sf_get_ino(sfp, sfep);
87925 filetype = dp->d_ops->sf_get_ftype(sfep);
87926 ctx->pos = off & 0x7fffffff;
87927 - if (!dir_emit(ctx, (char *)sfep->name, sfep->namelen, ino,
87928 + if (dp->i_df.if_u1.if_data == dp->i_df.if_u2.if_inline_data) {
87929 + char name[sfep->namelen];
87930 + memcpy(name, sfep->name, sfep->namelen);
87931 + if (!dir_emit(ctx, name, sfep->namelen, ino, xfs_dir3_get_dtype(dp->i_mount, filetype)))
87932 + return 0;
87933 + } else if (!dir_emit(ctx, (char *)sfep->name, sfep->namelen, ino,
87934 xfs_dir3_get_dtype(dp->i_mount, filetype)))
87935 return 0;
87936 sfep = dp->d_ops->sf_nextentry(sfp, sfep);
87937 diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
87938 index d42738d..7175979 100644
87939 --- a/fs/xfs/xfs_ioctl.c
87940 +++ b/fs/xfs/xfs_ioctl.c
87941 @@ -121,7 +121,7 @@ xfs_find_handle(
87942 }
87943
87944 error = -EFAULT;
87945 - if (copy_to_user(hreq->ohandle, &handle, hsize) ||
87946 + if (hsize > sizeof handle || copy_to_user(hreq->ohandle, &handle, hsize) ||
87947 copy_to_user(hreq->ohandlen, &hsize, sizeof(__s32)))
87948 goto out_put;
87949
87950 diff --git a/fs/xfs/xfs_linux.h b/fs/xfs/xfs_linux.h
87951 index ec0e239..ab85b22 100644
87952 --- a/fs/xfs/xfs_linux.h
87953 +++ b/fs/xfs/xfs_linux.h
87954 @@ -218,7 +218,7 @@ static inline kgid_t xfs_gid_to_kgid(__uint32_t gid)
87955 * of the compiler which do not like us using do_div in the middle
87956 * of large functions.
87957 */
87958 -static inline __u32 xfs_do_div(void *a, __u32 b, int n)
87959 +static inline __u32 __intentional_overflow(-1) xfs_do_div(void *a, __u32 b, int n)
87960 {
87961 __u32 mod;
87962
87963 @@ -274,7 +274,7 @@ static inline __u32 xfs_do_mod(void *a, __u32 b, int n)
87964 return 0;
87965 }
87966 #else
87967 -static inline __u32 xfs_do_div(void *a, __u32 b, int n)
87968 +static inline __u32 __intentional_overflow(-1) xfs_do_div(void *a, __u32 b, int n)
87969 {
87970 __u32 mod;
87971
87972 diff --git a/grsecurity/Kconfig b/grsecurity/Kconfig
87973 new file mode 100644
87974 index 0000000..354c5a3
87975 --- /dev/null
87976 +++ b/grsecurity/Kconfig
87977 @@ -0,0 +1,1203 @@
87978 +#
87979 +# grecurity configuration
87980 +#
87981 +menu "Memory Protections"
87982 +depends on GRKERNSEC
87983 +
87984 +config GRKERNSEC_KMEM
87985 + bool "Deny reading/writing to /dev/kmem, /dev/mem, and /dev/port"
87986 + default y if GRKERNSEC_CONFIG_AUTO
87987 + select STRICT_DEVMEM if (X86 || ARM || TILE || S390)
87988 + help
87989 + If you say Y here, /dev/kmem and /dev/mem won't be allowed to
87990 + be written to or read from to modify or leak the contents of the running
87991 + kernel. /dev/port will also not be allowed to be opened, writing to
87992 + /dev/cpu/*/msr will be prevented, and support for kexec will be removed.
87993 + If you have module support disabled, enabling this will close up several
87994 + ways that are currently used to insert malicious code into the running
87995 + kernel.
87996 +
87997 + Even with this feature enabled, we still highly recommend that
87998 + you use the RBAC system, as it is still possible for an attacker to
87999 + modify the running kernel through other more obscure methods.
88000 +
88001 + Enabling this feature will prevent the "cpupower" and "powertop" tools
88002 + from working and excludes debugfs from being compiled into the kernel.
88003 +
88004 + It is highly recommended that you say Y here if you meet all the
88005 + conditions above.
88006 +
88007 +config GRKERNSEC_VM86
88008 + bool "Restrict VM86 mode"
88009 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER)
88010 + depends on X86_32
88011 +
88012 + help
88013 + If you say Y here, only processes with CAP_SYS_RAWIO will be able to
88014 + make use of a special execution mode on 32bit x86 processors called
88015 + Virtual 8086 (VM86) mode. XFree86 may need vm86 mode for certain
88016 + video cards and will still work with this option enabled. The purpose
88017 + of the option is to prevent exploitation of emulation errors in
88018 + virtualization of vm86 mode like the one discovered in VMWare in 2009.
88019 + Nearly all users should be able to enable this option.
88020 +
88021 +config GRKERNSEC_IO
88022 + bool "Disable privileged I/O"
88023 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER)
88024 + depends on X86
88025 + select RTC_CLASS
88026 + select RTC_INTF_DEV
88027 + select RTC_DRV_CMOS
88028 +
88029 + help
88030 + If you say Y here, all ioperm and iopl calls will return an error.
88031 + Ioperm and iopl can be used to modify the running kernel.
88032 + Unfortunately, some programs need this access to operate properly,
88033 + the most notable of which are XFree86 and hwclock. hwclock can be
88034 + remedied by having RTC support in the kernel, so real-time
88035 + clock support is enabled if this option is enabled, to ensure
88036 + that hwclock operates correctly. If hwclock still does not work,
88037 + either update udev or symlink /dev/rtc to /dev/rtc0.
88038 +
88039 + If you're using XFree86 or a version of Xorg from 2012 or earlier,
88040 + you may not be able to boot into a graphical environment with this
88041 + option enabled. In this case, you should use the RBAC system instead.
88042 +
88043 +config GRKERNSEC_BPF_HARDEN
88044 + bool "Harden BPF interpreter"
88045 + default y if GRKERNSEC_CONFIG_AUTO
88046 + help
88047 + Unlike previous versions of grsecurity that hardened both the BPF
88048 + interpreted code against corruption at rest as well as the JIT code
88049 + against JIT-spray attacks and attacker-controlled immediate values
88050 + for ROP, this feature will enforce disabling of the new eBPF JIT engine
88051 + and will ensure the interpreted code is read-only at rest. This feature
88052 + may be removed at a later time when eBPF stabilizes to entirely revert
88053 + back to the more secure pre-3.16 BPF interpreter/JIT.
88054 +
88055 + If you're using KERNEXEC, it's recommended that you enable this option
88056 + to supplement the hardening of the kernel.
88057 +
88058 +config GRKERNSEC_PERF_HARDEN
88059 + bool "Disable unprivileged PERF_EVENTS usage by default"
88060 + default y if GRKERNSEC_CONFIG_AUTO
88061 + depends on PERF_EVENTS
88062 + help
88063 + If you say Y here, the range of acceptable values for the
88064 + /proc/sys/kernel/perf_event_paranoid sysctl will be expanded to allow and
88065 + default to a new value: 3. When the sysctl is set to this value, no
88066 + unprivileged use of the PERF_EVENTS syscall interface will be permitted.
88067 +
88068 + Though PERF_EVENTS can be used legitimately for performance monitoring
88069 + and low-level application profiling, it is forced on regardless of
88070 + configuration, has been at fault for several vulnerabilities, and
88071 + creates new opportunities for side channels and other information leaks.
88072 +
88073 + This feature puts PERF_EVENTS into a secure default state and permits
88074 + the administrator to change out of it temporarily if unprivileged
88075 + application profiling is needed.
88076 +
88077 +config GRKERNSEC_RAND_THREADSTACK
88078 + bool "Insert random gaps between thread stacks"
88079 + default y if GRKERNSEC_CONFIG_AUTO
88080 + depends on PAX_RANDMMAP && !PPC
88081 + help
88082 + If you say Y here, a random-sized gap will be enforced between allocated
88083 + thread stacks. Glibc's NPTL and other threading libraries that
88084 + pass MAP_STACK to the kernel for thread stack allocation are supported.
88085 + The implementation currently provides 8 bits of entropy for the gap.
88086 +
88087 + Many distributions do not compile threaded remote services with the
88088 + -fstack-check argument to GCC, causing the variable-sized stack-based
88089 + allocator, alloca(), to not probe the stack on allocation. This
88090 + permits an unbounded alloca() to skip over any guard page and potentially
88091 + modify another thread's stack reliably. An enforced random gap
88092 + reduces the reliability of such an attack and increases the chance
88093 + that such a read/write to another thread's stack instead lands in
88094 + an unmapped area, causing a crash and triggering grsecurity's
88095 + anti-bruteforcing logic.
88096 +
88097 +config GRKERNSEC_PROC_MEMMAP
88098 + bool "Harden ASLR against information leaks and entropy reduction"
88099 + default y if (GRKERNSEC_CONFIG_AUTO || PAX_NOEXEC || PAX_ASLR)
88100 + depends on PAX_NOEXEC || PAX_ASLR
88101 + help
88102 + If you say Y here, the /proc/<pid>/maps and /proc/<pid>/stat files will
88103 + give no information about the addresses of its mappings if
88104 + PaX features that rely on random addresses are enabled on the task.
88105 + In addition to sanitizing this information and disabling other
88106 + dangerous sources of information, this option causes reads of sensitive
88107 + /proc/<pid> entries where the file descriptor was opened in a different
88108 + task than the one performing the read. Such attempts are logged.
88109 + This option also limits argv/env strings for suid/sgid binaries
88110 + to 512KB to prevent a complete exhaustion of the stack entropy provided
88111 + by ASLR. Finally, it places an 8MB stack resource limit on suid/sgid
88112 + binaries to prevent alternative mmap layouts from being abused.
88113 +
88114 + If you use PaX it is essential that you say Y here as it closes up
88115 + several holes that make full ASLR useless locally.
88116 +
88117 +
88118 +config GRKERNSEC_KSTACKOVERFLOW
88119 + bool "Prevent kernel stack overflows"
88120 + default y if GRKERNSEC_CONFIG_AUTO
88121 + depends on !IA64 && 64BIT
88122 + help
88123 + If you say Y here, the kernel's process stacks will be allocated
88124 + with vmalloc instead of the kernel's default allocator. This
88125 + introduces guard pages that in combination with the alloca checking
88126 + of the STACKLEAK feature prevents all forms of kernel process stack
88127 + overflow abuse. Note that this is different from kernel stack
88128 + buffer overflows.
88129 +
88130 +config GRKERNSEC_BRUTE
88131 + bool "Deter exploit bruteforcing"
88132 + default y if GRKERNSEC_CONFIG_AUTO
88133 + help
88134 + If you say Y here, attempts to bruteforce exploits against forking
88135 + daemons such as apache or sshd, as well as against suid/sgid binaries
88136 + will be deterred. When a child of a forking daemon is killed by PaX
88137 + or crashes due to an illegal instruction or other suspicious signal,
88138 + the parent process will be delayed 30 seconds upon every subsequent
88139 + fork until the administrator is able to assess the situation and
88140 + restart the daemon.
88141 + In the suid/sgid case, the attempt is logged, the user has all their
88142 + existing instances of the suid/sgid binary terminated and will
88143 + be unable to execute any suid/sgid binaries for 15 minutes.
88144 +
88145 + It is recommended that you also enable signal logging in the auditing
88146 + section so that logs are generated when a process triggers a suspicious
88147 + signal.
88148 + If the sysctl option is enabled, a sysctl option with name
88149 + "deter_bruteforce" is created.
88150 +
88151 +config GRKERNSEC_MODHARDEN
88152 + bool "Harden module auto-loading"
88153 + default y if GRKERNSEC_CONFIG_AUTO
88154 + depends on MODULES
88155 + help
88156 + If you say Y here, module auto-loading in response to use of some
88157 + feature implemented by an unloaded module will be restricted to
88158 + root users. Enabling this option helps defend against attacks
88159 + by unprivileged users who abuse the auto-loading behavior to
88160 + cause a vulnerable module to load that is then exploited.
88161 +
88162 + If this option prevents a legitimate use of auto-loading for a
88163 + non-root user, the administrator can execute modprobe manually
88164 + with the exact name of the module mentioned in the alert log.
88165 + Alternatively, the administrator can add the module to the list
88166 + of modules loaded at boot by modifying init scripts.
88167 +
88168 + Modification of init scripts will most likely be needed on
88169 + Ubuntu servers with encrypted home directory support enabled,
88170 + as the first non-root user logging in will cause the ecb(aes),
88171 + ecb(aes)-all, cbc(aes), and cbc(aes)-all modules to be loaded.
88172 +
88173 +config GRKERNSEC_HIDESYM
88174 + bool "Hide kernel symbols"
88175 + default y if GRKERNSEC_CONFIG_AUTO
88176 + select PAX_USERCOPY_SLABS
88177 + help
88178 + If you say Y here, getting information on loaded modules, and
88179 + displaying all kernel symbols through a syscall will be restricted
88180 + to users with CAP_SYS_MODULE. For software compatibility reasons,
88181 + /proc/kallsyms will be restricted to the root user. The RBAC
88182 + system can hide that entry even from root.
88183 +
88184 + This option also prevents leaking of kernel addresses through
88185 + several /proc entries.
88186 +
88187 + Note that this option is only effective provided the following
88188 + conditions are met:
88189 + 1) The kernel using grsecurity is not precompiled by some distribution
88190 + 2) You have also enabled GRKERNSEC_DMESG
88191 + 3) You are using the RBAC system and hiding other files such as your
88192 + kernel image and System.map. Alternatively, enabling this option
88193 + causes the permissions on /boot, /lib/modules, and the kernel
88194 + source directory to change at compile time to prevent
88195 + reading by non-root users.
88196 + If the above conditions are met, this option will aid in providing a
88197 + useful protection against local kernel exploitation of overflows
88198 + and arbitrary read/write vulnerabilities.
88199 +
88200 + It is highly recommended that you enable GRKERNSEC_PERF_HARDEN
88201 + in addition to this feature.
88202 +
88203 +config GRKERNSEC_RANDSTRUCT
88204 + bool "Randomize layout of sensitive kernel structures"
88205 + default y if GRKERNSEC_CONFIG_AUTO
88206 + select GRKERNSEC_HIDESYM
88207 + select MODVERSIONS if MODULES
88208 + help
88209 + If you say Y here, the layouts of a number of sensitive kernel
88210 + structures (task, fs, cred, etc) and all structures composed entirely
88211 + of function pointers (aka "ops" structs) will be randomized at compile-time.
88212 + This can introduce the requirement of an additional infoleak
88213 + vulnerability for exploits targeting these structure types.
88214 +
88215 + Enabling this feature will introduce some performance impact, slightly
88216 + increase memory usage, and prevent the use of forensic tools like
88217 + Volatility against the system (unless the kernel source tree isn't
88218 + cleaned after kernel installation).
88219 +
88220 + The seed used for compilation is located at tools/gcc/randomize_layout_seed.h.
88221 + It remains after a make clean to allow for external modules to be compiled
88222 + with the existing seed and will be removed by a make mrproper or
88223 + make distclean.
88224 +
88225 + Note that the implementation requires gcc 4.6.4. or newer. You may need
88226 + to install the supporting headers explicitly in addition to the normal
88227 + gcc package.
88228 +
88229 +config GRKERNSEC_RANDSTRUCT_PERFORMANCE
88230 + bool "Use cacheline-aware structure randomization"
88231 + depends on GRKERNSEC_RANDSTRUCT
88232 + default y if GRKERNSEC_CONFIG_PRIORITY_PERF
88233 + help
88234 + If you say Y here, the RANDSTRUCT randomization will make a best effort
88235 + at restricting randomization to cacheline-sized groups of elements. It
88236 + will further not randomize bitfields in structures. This reduces the
88237 + performance hit of RANDSTRUCT at the cost of weakened randomization.
88238 +
88239 +config GRKERNSEC_KERN_LOCKOUT
88240 + bool "Active kernel exploit response"
88241 + default y if GRKERNSEC_CONFIG_AUTO
88242 + depends on X86 || ARM || PPC || SPARC
88243 + help
88244 + If you say Y here, when a PaX alert is triggered due to suspicious
88245 + activity in the kernel (from KERNEXEC/UDEREF/USERCOPY)
88246 + or an OOPS occurs due to bad memory accesses, instead of just
88247 + terminating the offending process (and potentially allowing
88248 + a subsequent exploit from the same user), we will take one of two
88249 + actions:
88250 + If the user was root, we will panic the system
88251 + If the user was non-root, we will log the attempt, terminate
88252 + all processes owned by the user, then prevent them from creating
88253 + any new processes until the system is restarted
88254 + This deters repeated kernel exploitation/bruteforcing attempts
88255 + and is useful for later forensics.
88256 +
88257 +config GRKERNSEC_OLD_ARM_USERLAND
88258 + bool "Old ARM userland compatibility"
88259 + depends on ARM && (CPU_V6 || CPU_V6K || CPU_V7)
88260 + help
88261 + If you say Y here, stubs of executable code to perform such operations
88262 + as "compare-exchange" will be placed at fixed locations in the ARM vector
88263 + table. This is unfortunately needed for old ARM userland meant to run
88264 + across a wide range of processors. Without this option enabled,
88265 + the get_tls and data memory barrier stubs will be emulated by the kernel,
88266 + which is enough for Linaro userlands or other userlands designed for v6
88267 + and newer ARM CPUs. It's recommended that you try without this option enabled
88268 + first, and only enable it if your userland does not boot (it will likely fail
88269 + at init time).
88270 +
88271 +endmenu
88272 +menu "Role Based Access Control Options"
88273 +depends on GRKERNSEC
88274 +
88275 +config GRKERNSEC_RBAC_DEBUG
88276 + bool
88277 +
88278 +config GRKERNSEC_NO_RBAC
88279 + bool "Disable RBAC system"
88280 + help
88281 + If you say Y here, the /dev/grsec device will be removed from the kernel,
88282 + preventing the RBAC system from being enabled. You should only say Y
88283 + here if you have no intention of using the RBAC system, so as to prevent
88284 + an attacker with root access from misusing the RBAC system to hide files
88285 + and processes when loadable module support and /dev/[k]mem have been
88286 + locked down.
88287 +
88288 +config GRKERNSEC_ACL_HIDEKERN
88289 + bool "Hide kernel processes"
88290 + help
88291 + If you say Y here, all kernel threads will be hidden to all
88292 + processes but those whose subject has the "view hidden processes"
88293 + flag.
88294 +
88295 +config GRKERNSEC_ACL_MAXTRIES
88296 + int "Maximum tries before password lockout"
88297 + default 3
88298 + help
88299 + This option enforces the maximum number of times a user can attempt
88300 + to authorize themselves with the grsecurity RBAC system before being
88301 + denied the ability to attempt authorization again for a specified time.
88302 + The lower the number, the harder it will be to brute-force a password.
88303 +
88304 +config GRKERNSEC_ACL_TIMEOUT
88305 + int "Time to wait after max password tries, in seconds"
88306 + default 30
88307 + help
88308 + This option specifies the time the user must wait after attempting to
88309 + authorize to the RBAC system with the maximum number of invalid
88310 + passwords. The higher the number, the harder it will be to brute-force
88311 + a password.
88312 +
88313 +endmenu
88314 +menu "Filesystem Protections"
88315 +depends on GRKERNSEC
88316 +
88317 +config GRKERNSEC_PROC
88318 + bool "Proc restrictions"
88319 + default y if GRKERNSEC_CONFIG_AUTO
88320 + help
88321 + If you say Y here, the permissions of the /proc filesystem
88322 + will be altered to enhance system security and privacy. You MUST
88323 + choose either a user only restriction or a user and group restriction.
88324 + Depending upon the option you choose, you can either restrict users to
88325 + see only the processes they themselves run, or choose a group that can
88326 + view all processes and files normally restricted to root if you choose
88327 + the "restrict to user only" option. NOTE: If you're running identd or
88328 + ntpd as a non-root user, you will have to run it as the group you
88329 + specify here.
88330 +
88331 +config GRKERNSEC_PROC_USER
88332 + bool "Restrict /proc to user only"
88333 + depends on GRKERNSEC_PROC
88334 + help
88335 + If you say Y here, non-root users will only be able to view their own
88336 + processes, and restricts them from viewing network-related information,
88337 + and viewing kernel symbol and module information.
88338 +
88339 +config GRKERNSEC_PROC_USERGROUP
88340 + bool "Allow special group"
88341 + default y if GRKERNSEC_CONFIG_AUTO
88342 + depends on GRKERNSEC_PROC && !GRKERNSEC_PROC_USER
88343 + help
88344 + If you say Y here, you will be able to select a group that will be
88345 + able to view all processes and network-related information. If you've
88346 + enabled GRKERNSEC_HIDESYM, kernel and symbol information may still
88347 + remain hidden. This option is useful if you want to run identd as
88348 + a non-root user. The group you select may also be chosen at boot time
88349 + via "grsec_proc_gid=" on the kernel commandline.
88350 +
88351 +config GRKERNSEC_PROC_GID
88352 + int "GID for special group"
88353 + depends on GRKERNSEC_PROC_USERGROUP
88354 + default 1001
88355 +
88356 +config GRKERNSEC_PROC_ADD
88357 + bool "Additional restrictions"
88358 + default y if GRKERNSEC_CONFIG_AUTO
88359 + depends on GRKERNSEC_PROC_USER || GRKERNSEC_PROC_USERGROUP
88360 + help
88361 + If you say Y here, additional restrictions will be placed on
88362 + /proc that keep normal users from viewing device information and
88363 + slabinfo information that could be useful for exploits.
88364 +
88365 +config GRKERNSEC_LINK
88366 + bool "Linking restrictions"
88367 + default y if GRKERNSEC_CONFIG_AUTO
88368 + help
88369 + If you say Y here, /tmp race exploits will be prevented, since users
88370 + will no longer be able to follow symlinks owned by other users in
88371 + world-writable +t directories (e.g. /tmp), unless the owner of the
88372 + symlink is the owner of the directory. users will also not be
88373 + able to hardlink to files they do not own. If the sysctl option is
88374 + enabled, a sysctl option with name "linking_restrictions" is created.
88375 +
88376 +config GRKERNSEC_SYMLINKOWN
88377 + bool "Kernel-enforced SymlinksIfOwnerMatch"
88378 + default y if GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER
88379 + help
88380 + Apache's SymlinksIfOwnerMatch option has an inherent race condition
88381 + that prevents it from being used as a security feature. As Apache
88382 + verifies the symlink by performing a stat() against the target of
88383 + the symlink before it is followed, an attacker can setup a symlink
88384 + to point to a same-owned file, then replace the symlink with one
88385 + that targets another user's file just after Apache "validates" the
88386 + symlink -- a classic TOCTOU race. If you say Y here, a complete,
88387 + race-free replacement for Apache's "SymlinksIfOwnerMatch" option
88388 + will be in place for the group you specify. If the sysctl option
88389 + is enabled, a sysctl option with name "enforce_symlinksifowner" is
88390 + created.
88391 +
88392 +config GRKERNSEC_SYMLINKOWN_GID
88393 + int "GID for users with kernel-enforced SymlinksIfOwnerMatch"
88394 + depends on GRKERNSEC_SYMLINKOWN
88395 + default 1006
88396 + help
88397 + Setting this GID determines what group kernel-enforced
88398 + SymlinksIfOwnerMatch will be enabled for. If the sysctl option
88399 + is enabled, a sysctl option with name "symlinkown_gid" is created.
88400 +
88401 +config GRKERNSEC_FIFO
88402 + bool "FIFO restrictions"
88403 + default y if GRKERNSEC_CONFIG_AUTO
88404 + help
88405 + If you say Y here, users will not be able to write to FIFOs they don't
88406 + own in world-writable +t directories (e.g. /tmp), unless the owner of
88407 + the FIFO is the same owner of the directory it's held in. If the sysctl
88408 + option is enabled, a sysctl option with name "fifo_restrictions" is
88409 + created.
88410 +
88411 +config GRKERNSEC_SYSFS_RESTRICT
88412 + bool "Sysfs/debugfs restriction"
88413 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER)
88414 + depends on SYSFS
88415 + help
88416 + If you say Y here, sysfs (the pseudo-filesystem mounted at /sys) and
88417 + any filesystem normally mounted under it (e.g. debugfs) will be
88418 + mostly accessible only by root. These filesystems generally provide access
88419 + to hardware and debug information that isn't appropriate for unprivileged
88420 + users of the system. Sysfs and debugfs have also become a large source
88421 + of new vulnerabilities, ranging from infoleaks to local compromise.
88422 + There has been very little oversight with an eye toward security involved
88423 + in adding new exporters of information to these filesystems, so their
88424 + use is discouraged.
88425 + For reasons of compatibility, a few directories have been whitelisted
88426 + for access by non-root users:
88427 + /sys/fs/selinux
88428 + /sys/fs/fuse
88429 + /sys/devices/system/cpu
88430 +
88431 +config GRKERNSEC_ROFS
88432 + bool "Runtime read-only mount protection"
88433 + depends on SYSCTL
88434 + help
88435 + If you say Y here, a sysctl option with name "romount_protect" will
88436 + be created. By setting this option to 1 at runtime, filesystems
88437 + will be protected in the following ways:
88438 + * No new writable mounts will be allowed
88439 + * Existing read-only mounts won't be able to be remounted read/write
88440 + * Write operations will be denied on all block devices
88441 + This option acts independently of grsec_lock: once it is set to 1,
88442 + it cannot be turned off. Therefore, please be mindful of the resulting
88443 + behavior if this option is enabled in an init script on a read-only
88444 + filesystem.
88445 + Also be aware that as with other root-focused features, GRKERNSEC_KMEM
88446 + and GRKERNSEC_IO should be enabled and module loading disabled via
88447 + config or at runtime.
88448 + This feature is mainly intended for secure embedded systems.
88449 +
88450 +
88451 +config GRKERNSEC_DEVICE_SIDECHANNEL
88452 + bool "Eliminate stat/notify-based device sidechannels"
88453 + default y if GRKERNSEC_CONFIG_AUTO
88454 + help
88455 + If you say Y here, timing analyses on block or character
88456 + devices like /dev/ptmx using stat or inotify/dnotify/fanotify
88457 + will be thwarted for unprivileged users. If a process without
88458 + CAP_MKNOD stats such a device, the last access and last modify times
88459 + will match the device's create time. No access or modify events
88460 + will be triggered through inotify/dnotify/fanotify for such devices.
88461 + This feature will prevent attacks that may at a minimum
88462 + allow an attacker to determine the administrator's password length.
88463 +
88464 +config GRKERNSEC_CHROOT
88465 + bool "Chroot jail restrictions"
88466 + default y if GRKERNSEC_CONFIG_AUTO
88467 + help
88468 + If you say Y here, you will be able to choose several options that will
88469 + make breaking out of a chrooted jail much more difficult. If you
88470 + encounter no software incompatibilities with the following options, it
88471 + is recommended that you enable each one.
88472 +
88473 + Note that the chroot restrictions are not intended to apply to "chroots"
88474 + to directories that are simple bind mounts of the global root filesystem.
88475 + For several other reasons, a user shouldn't expect any significant
88476 + security by performing such a chroot.
88477 +
88478 +config GRKERNSEC_CHROOT_MOUNT
88479 + bool "Deny mounts"
88480 + default y if GRKERNSEC_CONFIG_AUTO
88481 + depends on GRKERNSEC_CHROOT
88482 + help
88483 + If you say Y here, processes inside a chroot will not be able to
88484 + mount or remount filesystems. If the sysctl option is enabled, a
88485 + sysctl option with name "chroot_deny_mount" is created.
88486 +
88487 +config GRKERNSEC_CHROOT_DOUBLE
88488 + bool "Deny double-chroots"
88489 + default y if GRKERNSEC_CONFIG_AUTO
88490 + depends on GRKERNSEC_CHROOT
88491 + help
88492 + If you say Y here, processes inside a chroot will not be able to chroot
88493 + again outside the chroot. This is a widely used method of breaking
88494 + out of a chroot jail and should not be allowed. If the sysctl
88495 + option is enabled, a sysctl option with name
88496 + "chroot_deny_chroot" is created.
88497 +
88498 +config GRKERNSEC_CHROOT_PIVOT
88499 + bool "Deny pivot_root in chroot"
88500 + default y if GRKERNSEC_CONFIG_AUTO
88501 + depends on GRKERNSEC_CHROOT
88502 + help
88503 + If you say Y here, processes inside a chroot will not be able to use
88504 + a function called pivot_root() that was introduced in Linux 2.3.41. It
88505 + works similar to chroot in that it changes the root filesystem. This
88506 + function could be misused in a chrooted process to attempt to break out
88507 + of the chroot, and therefore should not be allowed. If the sysctl
88508 + option is enabled, a sysctl option with name "chroot_deny_pivot" is
88509 + created.
88510 +
88511 +config GRKERNSEC_CHROOT_CHDIR
88512 + bool "Enforce chdir(\"/\") on all chroots"
88513 + default y if GRKERNSEC_CONFIG_AUTO
88514 + depends on GRKERNSEC_CHROOT
88515 + help
88516 + If you say Y here, the current working directory of all newly-chrooted
88517 + applications will be set to the the root directory of the chroot.
88518 + The man page on chroot(2) states:
88519 + Note that this call does not change the current working
88520 + directory, so that `.' can be outside the tree rooted at
88521 + `/'. In particular, the super-user can escape from a
88522 + `chroot jail' by doing `mkdir foo; chroot foo; cd ..'.
88523 +
88524 + It is recommended that you say Y here, since it's not known to break
88525 + any software. If the sysctl option is enabled, a sysctl option with
88526 + name "chroot_enforce_chdir" is created.
88527 +
88528 +config GRKERNSEC_CHROOT_CHMOD
88529 + bool "Deny (f)chmod +s"
88530 + default y if GRKERNSEC_CONFIG_AUTO
88531 + depends on GRKERNSEC_CHROOT
88532 + help
88533 + If you say Y here, processes inside a chroot will not be able to chmod
88534 + or fchmod files to make them have suid or sgid bits. This protects
88535 + against another published method of breaking a chroot. If the sysctl
88536 + option is enabled, a sysctl option with name "chroot_deny_chmod" is
88537 + created.
88538 +
88539 +config GRKERNSEC_CHROOT_FCHDIR
88540 + bool "Deny fchdir and fhandle out of chroot"
88541 + default y if GRKERNSEC_CONFIG_AUTO
88542 + depends on GRKERNSEC_CHROOT
88543 + help
88544 + If you say Y here, a well-known method of breaking chroots by fchdir'ing
88545 + to a file descriptor of the chrooting process that points to a directory
88546 + outside the filesystem will be stopped. Additionally, this option prevents
88547 + use of the recently-created syscall for opening files by a guessable "file
88548 + handle" inside a chroot. If the sysctl option is enabled, a sysctl option
88549 + with name "chroot_deny_fchdir" is created.
88550 +
88551 +config GRKERNSEC_CHROOT_MKNOD
88552 + bool "Deny mknod"
88553 + default y if GRKERNSEC_CONFIG_AUTO
88554 + depends on GRKERNSEC_CHROOT
88555 + help
88556 + If you say Y here, processes inside a chroot will not be allowed to
88557 + mknod. The problem with using mknod inside a chroot is that it
88558 + would allow an attacker to create a device entry that is the same
88559 + as one on the physical root of your system, which could range from
88560 + anything from the console device to a device for your harddrive (which
88561 + they could then use to wipe the drive or steal data). It is recommended
88562 + that you say Y here, unless you run into software incompatibilities.
88563 + If the sysctl option is enabled, a sysctl option with name
88564 + "chroot_deny_mknod" is created.
88565 +
88566 +config GRKERNSEC_CHROOT_SHMAT
88567 + bool "Deny shmat() out of chroot"
88568 + default y if GRKERNSEC_CONFIG_AUTO
88569 + depends on GRKERNSEC_CHROOT
88570 + help
88571 + If you say Y here, processes inside a chroot will not be able to attach
88572 + to shared memory segments that were created outside of the chroot jail.
88573 + It is recommended that you say Y here. If the sysctl option is enabled,
88574 + a sysctl option with name "chroot_deny_shmat" is created.
88575 +
88576 +config GRKERNSEC_CHROOT_UNIX
88577 + bool "Deny access to abstract AF_UNIX sockets out of chroot"
88578 + default y if GRKERNSEC_CONFIG_AUTO
88579 + depends on GRKERNSEC_CHROOT
88580 + help
88581 + If you say Y here, processes inside a chroot will not be able to
88582 + connect to abstract (meaning not belonging to a filesystem) Unix
88583 + domain sockets that were bound outside of a chroot. It is recommended
88584 + that you say Y here. If the sysctl option is enabled, a sysctl option
88585 + with name "chroot_deny_unix" is created.
88586 +
88587 +config GRKERNSEC_CHROOT_FINDTASK
88588 + bool "Protect outside processes"
88589 + default y if GRKERNSEC_CONFIG_AUTO
88590 + depends on GRKERNSEC_CHROOT
88591 + help
88592 + If you say Y here, processes inside a chroot will not be able to
88593 + kill, send signals with fcntl, ptrace, capget, getpgid, setpgid,
88594 + getsid, or view any process outside of the chroot. If the sysctl
88595 + option is enabled, a sysctl option with name "chroot_findtask" is
88596 + created.
88597 +
88598 +config GRKERNSEC_CHROOT_NICE
88599 + bool "Restrict priority changes"
88600 + default y if GRKERNSEC_CONFIG_AUTO
88601 + depends on GRKERNSEC_CHROOT
88602 + help
88603 + If you say Y here, processes inside a chroot will not be able to raise
88604 + the priority of processes in the chroot, or alter the priority of
88605 + processes outside the chroot. This provides more security than simply
88606 + removing CAP_SYS_NICE from the process' capability set. If the
88607 + sysctl option is enabled, a sysctl option with name "chroot_restrict_nice"
88608 + is created.
88609 +
88610 +config GRKERNSEC_CHROOT_SYSCTL
88611 + bool "Deny sysctl writes"
88612 + default y if GRKERNSEC_CONFIG_AUTO
88613 + depends on GRKERNSEC_CHROOT
88614 + help
88615 + If you say Y here, an attacker in a chroot will not be able to
88616 + write to sysctl entries, either by sysctl(2) or through a /proc
88617 + interface. It is strongly recommended that you say Y here. If the
88618 + sysctl option is enabled, a sysctl option with name
88619 + "chroot_deny_sysctl" is created.
88620 +
88621 +config GRKERNSEC_CHROOT_RENAME
88622 + bool "Deny bad renames"
88623 + default y if GRKERNSEC_CONFIG_AUTO
88624 + depends on GRKERNSEC_CHROOT
88625 + help
88626 + If you say Y here, an attacker in a chroot will not be able to
88627 + abuse the ability to create double chroots to break out of the
88628 + chroot by exploiting a race condition between a rename of a directory
88629 + within a chroot against an open of a symlink with relative path
88630 + components. This feature will likewise prevent an accomplice outside
88631 + a chroot from enabling a user inside the chroot to break out and make
88632 + use of their credentials on the global filesystem. Enabling this
88633 + feature is essential to prevent root users from breaking out of a
88634 + chroot. If the sysctl option is enabled, a sysctl option with name
88635 + "chroot_deny_bad_rename" is created.
88636 +
88637 +config GRKERNSEC_CHROOT_CAPS
88638 + bool "Capability restrictions"
88639 + default y if GRKERNSEC_CONFIG_AUTO
88640 + depends on GRKERNSEC_CHROOT
88641 + help
88642 + If you say Y here, the capabilities on all processes within a
88643 + chroot jail will be lowered to stop module insertion, raw i/o,
88644 + system and net admin tasks, rebooting the system, modifying immutable
88645 + files, modifying IPC owned by another, and changing the system time.
88646 + This is left an option because it can break some apps. Disable this
88647 + if your chrooted apps are having problems performing those kinds of
88648 + tasks. If the sysctl option is enabled, a sysctl option with
88649 + name "chroot_caps" is created.
88650 +
88651 +config GRKERNSEC_CHROOT_INITRD
88652 + bool "Exempt initrd tasks from restrictions"
88653 + default y if GRKERNSEC_CONFIG_AUTO
88654 + depends on GRKERNSEC_CHROOT && BLK_DEV_INITRD
88655 + help
88656 + If you say Y here, tasks started prior to init will be exempted from
88657 + grsecurity's chroot restrictions. This option is mainly meant to
88658 + resolve Plymouth's performing privileged operations unnecessarily
88659 + in a chroot.
88660 +
88661 +endmenu
88662 +menu "Kernel Auditing"
88663 +depends on GRKERNSEC
88664 +
88665 +config GRKERNSEC_AUDIT_GROUP
88666 + bool "Single group for auditing"
88667 + help
88668 + If you say Y here, the exec and chdir logging features will only operate
88669 + on a group you specify. This option is recommended if you only want to
88670 + watch certain users instead of having a large amount of logs from the
88671 + entire system. If the sysctl option is enabled, a sysctl option with
88672 + name "audit_group" is created.
88673 +
88674 +config GRKERNSEC_AUDIT_GID
88675 + int "GID for auditing"
88676 + depends on GRKERNSEC_AUDIT_GROUP
88677 + default 1007
88678 +
88679 +config GRKERNSEC_EXECLOG
88680 + bool "Exec logging"
88681 + help
88682 + If you say Y here, all execve() calls will be logged (since the
88683 + other exec*() calls are frontends to execve(), all execution
88684 + will be logged). Useful for shell-servers that like to keep track
88685 + of their users. If the sysctl option is enabled, a sysctl option with
88686 + name "exec_logging" is created.
88687 + WARNING: This option when enabled will produce a LOT of logs, especially
88688 + on an active system.
88689 +
88690 +config GRKERNSEC_RESLOG
88691 + bool "Resource logging"
88692 + default y if GRKERNSEC_CONFIG_AUTO
88693 + help
88694 + If you say Y here, all attempts to overstep resource limits will
88695 + be logged with the resource name, the requested size, and the current
88696 + limit. It is highly recommended that you say Y here. If the sysctl
88697 + option is enabled, a sysctl option with name "resource_logging" is
88698 + created. If the RBAC system is enabled, the sysctl value is ignored.
88699 +
88700 +config GRKERNSEC_CHROOT_EXECLOG
88701 + bool "Log execs within chroot"
88702 + help
88703 + If you say Y here, all executions inside a chroot jail will be logged
88704 + to syslog. This can cause a large amount of logs if certain
88705 + applications (eg. djb's daemontools) are installed on the system, and
88706 + is therefore left as an option. If the sysctl option is enabled, a
88707 + sysctl option with name "chroot_execlog" is created.
88708 +
88709 +config GRKERNSEC_AUDIT_PTRACE
88710 + bool "Ptrace logging"
88711 + help
88712 + If you say Y here, all attempts to attach to a process via ptrace
88713 + will be logged. If the sysctl option is enabled, a sysctl option
88714 + with name "audit_ptrace" is created.
88715 +
88716 +config GRKERNSEC_AUDIT_CHDIR
88717 + bool "Chdir logging"
88718 + help
88719 + If you say Y here, all chdir() calls will be logged. If the sysctl
88720 + option is enabled, a sysctl option with name "audit_chdir" is created.
88721 +
88722 +config GRKERNSEC_AUDIT_MOUNT
88723 + bool "(Un)Mount logging"
88724 + help
88725 + If you say Y here, all mounts and unmounts will be logged. If the
88726 + sysctl option is enabled, a sysctl option with name "audit_mount" is
88727 + created.
88728 +
88729 +config GRKERNSEC_SIGNAL
88730 + bool "Signal logging"
88731 + default y if GRKERNSEC_CONFIG_AUTO
88732 + help
88733 + If you say Y here, certain important signals will be logged, such as
88734 + SIGSEGV, which will as a result inform you of when a error in a program
88735 + occurred, which in some cases could mean a possible exploit attempt.
88736 + If the sysctl option is enabled, a sysctl option with name
88737 + "signal_logging" is created.
88738 +
88739 +config GRKERNSEC_FORKFAIL
88740 + bool "Fork failure logging"
88741 + help
88742 + If you say Y here, all failed fork() attempts will be logged.
88743 + This could suggest a fork bomb, or someone attempting to overstep
88744 + their process limit. If the sysctl option is enabled, a sysctl option
88745 + with name "forkfail_logging" is created.
88746 +
88747 +config GRKERNSEC_TIME
88748 + bool "Time change logging"
88749 + default y if GRKERNSEC_CONFIG_AUTO
88750 + help
88751 + If you say Y here, any changes of the system clock will be logged.
88752 + If the sysctl option is enabled, a sysctl option with name
88753 + "timechange_logging" is created.
88754 +
88755 +config GRKERNSEC_PROC_IPADDR
88756 + bool "/proc/<pid>/ipaddr support"
88757 + default y if GRKERNSEC_CONFIG_AUTO
88758 + help
88759 + If you say Y here, a new entry will be added to each /proc/<pid>
88760 + directory that contains the IP address of the person using the task.
88761 + The IP is carried across local TCP and AF_UNIX stream sockets.
88762 + This information can be useful for IDS/IPSes to perform remote response
88763 + to a local attack. The entry is readable by only the owner of the
88764 + process (and root if he has CAP_DAC_OVERRIDE, which can be removed via
88765 + the RBAC system), and thus does not create privacy concerns.
88766 +
88767 +config GRKERNSEC_RWXMAP_LOG
88768 + bool 'Denied RWX mmap/mprotect logging'
88769 + default y if GRKERNSEC_CONFIG_AUTO
88770 + depends on PAX_MPROTECT && !PAX_EMUPLT && !PAX_EMUSIGRT
88771 + help
88772 + If you say Y here, calls to mmap() and mprotect() with explicit
88773 + usage of PROT_WRITE and PROT_EXEC together will be logged when
88774 + denied by the PAX_MPROTECT feature. This feature will also
88775 + log other problematic scenarios that can occur when PAX_MPROTECT
88776 + is enabled on a binary, like textrels and PT_GNU_STACK. If the
88777 + sysctl option is enabled, a sysctl option with name "rwxmap_logging"
88778 + is created.
88779 +
88780 +endmenu
88781 +
88782 +menu "Executable Protections"
88783 +depends on GRKERNSEC
88784 +
88785 +config GRKERNSEC_DMESG
88786 + bool "Dmesg(8) restriction"
88787 + default y if GRKERNSEC_CONFIG_AUTO
88788 + help
88789 + If you say Y here, non-root users will not be able to use dmesg(8)
88790 + to view the contents of the kernel's circular log buffer.
88791 + The kernel's log buffer often contains kernel addresses and other
88792 + identifying information useful to an attacker in fingerprinting a
88793 + system for a targeted exploit.
88794 + If the sysctl option is enabled, a sysctl option with name "dmesg" is
88795 + created.
88796 +
88797 +config GRKERNSEC_HARDEN_PTRACE
88798 + bool "Deter ptrace-based process snooping"
88799 + default y if GRKERNSEC_CONFIG_AUTO
88800 + help
88801 + If you say Y here, TTY sniffers and other malicious monitoring
88802 + programs implemented through ptrace will be defeated. If you
88803 + have been using the RBAC system, this option has already been
88804 + enabled for several years for all users, with the ability to make
88805 + fine-grained exceptions.
88806 +
88807 + This option only affects the ability of non-root users to ptrace
88808 + processes that are not a descendent of the ptracing process.
88809 + This means that strace ./binary and gdb ./binary will still work,
88810 + but attaching to arbitrary processes will not. If the sysctl
88811 + option is enabled, a sysctl option with name "harden_ptrace" is
88812 + created.
88813 +
88814 +config GRKERNSEC_PTRACE_READEXEC
88815 + bool "Require read access to ptrace sensitive binaries"
88816 + default y if GRKERNSEC_CONFIG_AUTO
88817 + help
88818 + If you say Y here, unprivileged users will not be able to ptrace unreadable
88819 + binaries. This option is useful in environments that
88820 + remove the read bits (e.g. file mode 4711) from suid binaries to
88821 + prevent infoleaking of their contents. This option adds
88822 + consistency to the use of that file mode, as the binary could normally
88823 + be read out when run without privileges while ptracing.
88824 +
88825 + If the sysctl option is enabled, a sysctl option with name "ptrace_readexec"
88826 + is created.
88827 +
88828 +config GRKERNSEC_SETXID
88829 + bool "Enforce consistent multithreaded privileges"
88830 + default y if GRKERNSEC_CONFIG_AUTO
88831 + depends on (X86 || SPARC64 || PPC || ARM || MIPS)
88832 + help
88833 + If you say Y here, a change from a root uid to a non-root uid
88834 + in a multithreaded application will cause the resulting uids,
88835 + gids, supplementary groups, and capabilities in that thread
88836 + to be propagated to the other threads of the process. In most
88837 + cases this is unnecessary, as glibc will emulate this behavior
88838 + on behalf of the application. Other libcs do not act in the
88839 + same way, allowing the other threads of the process to continue
88840 + running with root privileges. If the sysctl option is enabled,
88841 + a sysctl option with name "consistent_setxid" is created.
88842 +
88843 +config GRKERNSEC_HARDEN_IPC
88844 + bool "Disallow access to overly-permissive IPC objects"
88845 + default y if GRKERNSEC_CONFIG_AUTO
88846 + depends on SYSVIPC
88847 + help
88848 + If you say Y here, access to overly-permissive IPC objects (shared
88849 + memory, message queues, and semaphores) will be denied for processes
88850 + given the following criteria beyond normal permission checks:
88851 + 1) If the IPC object is world-accessible and the euid doesn't match
88852 + that of the creator or current uid for the IPC object
88853 + 2) If the IPC object is group-accessible and the egid doesn't
88854 + match that of the creator or current gid for the IPC object
88855 + It's a common error to grant too much permission to these objects,
88856 + with impact ranging from denial of service and information leaking to
88857 + privilege escalation. This feature was developed in response to
88858 + research by Tim Brown:
88859 + http://labs.portcullis.co.uk/whitepapers/memory-squatting-attacks-on-system-v-shared-memory/
88860 + who found hundreds of such insecure usages. Processes with
88861 + CAP_IPC_OWNER are still permitted to access these IPC objects.
88862 + If the sysctl option is enabled, a sysctl option with name
88863 + "harden_ipc" is created.
88864 +
88865 +config GRKERNSEC_HARDEN_TTY
88866 + bool "Disallow unprivileged use of command injection"
88867 + default y if GRKERNSEC_CONFIG_AUTO
88868 + help
88869 + If you say Y here, the ability to use the TIOCSTI ioctl for
88870 + terminal command injection will be denied for unprivileged users.
88871 + There are very few legitimate uses for this functionality and it
88872 + has made vulnerabilities in several 'su'-like programs possible in
88873 + the past. Even without these vulnerabilities, it provides an
88874 + attacker with an easy mechanism to move laterally among other
88875 + processes within the same user's compromised session.
88876 + By default, Linux allows unprivileged use of command injection as
88877 + long as the injection is being performed into the same tty session.
88878 + This feature makes that case the same as attempting to inject into
88879 + another session, making any TIOCSTI use require CAP_SYS_ADMIN.
88880 + If the sysctl option is enabled, a sysctl option with name
88881 + "harden_tty" is created.
88882 +
88883 +config GRKERNSEC_TPE
88884 + bool "Trusted Path Execution (TPE)"
88885 + default y if GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER
88886 + help
88887 + If you say Y here, you will be able to choose a gid to add to the
88888 + supplementary groups of users you want to mark as "untrusted."
88889 + These users will not be able to execute any files that are not in
88890 + root-owned directories writable only by root. If the sysctl option
88891 + is enabled, a sysctl option with name "tpe" is created.
88892 +
88893 +config GRKERNSEC_TPE_ALL
88894 + bool "Partially restrict all non-root users"
88895 + depends on GRKERNSEC_TPE
88896 + help
88897 + If you say Y here, all non-root users will be covered under
88898 + a weaker TPE restriction. This is separate from, and in addition to,
88899 + the main TPE options that you have selected elsewhere. Thus, if a
88900 + "trusted" GID is chosen, this restriction applies to even that GID.
88901 + Under this restriction, all non-root users will only be allowed to
88902 + execute files in directories they own that are not group or
88903 + world-writable, or in directories owned by root and writable only by
88904 + root. If the sysctl option is enabled, a sysctl option with name
88905 + "tpe_restrict_all" is created.
88906 +
88907 +config GRKERNSEC_TPE_INVERT
88908 + bool "Invert GID option"
88909 + depends on GRKERNSEC_TPE
88910 + help
88911 + If you say Y here, the group you specify in the TPE configuration will
88912 + decide what group TPE restrictions will be *disabled* for. This
88913 + option is useful if you want TPE restrictions to be applied to most
88914 + users on the system. If the sysctl option is enabled, a sysctl option
88915 + with name "tpe_invert" is created. Unlike other sysctl options, this
88916 + entry will default to on for backward-compatibility.
88917 +
88918 +config GRKERNSEC_TPE_GID
88919 + int
88920 + default GRKERNSEC_TPE_UNTRUSTED_GID if (GRKERNSEC_TPE && !GRKERNSEC_TPE_INVERT)
88921 + default GRKERNSEC_TPE_TRUSTED_GID if (GRKERNSEC_TPE && GRKERNSEC_TPE_INVERT)
88922 +
88923 +config GRKERNSEC_TPE_UNTRUSTED_GID
88924 + int "GID for TPE-untrusted users"
88925 + depends on GRKERNSEC_TPE && !GRKERNSEC_TPE_INVERT
88926 + default 1005
88927 + help
88928 + Setting this GID determines what group TPE restrictions will be
88929 + *enabled* for. If the sysctl option is enabled, a sysctl option
88930 + with name "tpe_gid" is created.
88931 +
88932 +config GRKERNSEC_TPE_TRUSTED_GID
88933 + int "GID for TPE-trusted users"
88934 + depends on GRKERNSEC_TPE && GRKERNSEC_TPE_INVERT
88935 + default 1005
88936 + help
88937 + Setting this GID determines what group TPE restrictions will be
88938 + *disabled* for. If the sysctl option is enabled, a sysctl option
88939 + with name "tpe_gid" is created.
88940 +
88941 +endmenu
88942 +menu "Network Protections"
88943 +depends on GRKERNSEC
88944 +
88945 +config GRKERNSEC_BLACKHOLE
88946 + bool "TCP/UDP blackhole and LAST_ACK DoS prevention"
88947 + default y if GRKERNSEC_CONFIG_AUTO
88948 + depends on NET
88949 + help
88950 + If you say Y here, neither TCP resets nor ICMP
88951 + destination-unreachable packets will be sent in response to packets
88952 + sent to ports for which no associated listening process exists.
88953 + It will also prevent the sending of ICMP protocol unreachable packets
88954 + in response to packets with unknown protocols.
88955 + This feature supports both IPV4 and IPV6 and exempts the
88956 + loopback interface from blackholing. Enabling this feature
88957 + makes a host more resilient to DoS attacks and reduces network
88958 + visibility against scanners.
88959 +
88960 + The blackhole feature as-implemented is equivalent to the FreeBSD
88961 + blackhole feature, as it prevents RST responses to all packets, not
88962 + just SYNs. Under most application behavior this causes no
88963 + problems, but applications (like haproxy) may not close certain
88964 + connections in a way that cleanly terminates them on the remote
88965 + end, leaving the remote host in LAST_ACK state. Because of this
88966 + side-effect and to prevent intentional LAST_ACK DoSes, this
88967 + feature also adds automatic mitigation against such attacks.
88968 + The mitigation drastically reduces the amount of time a socket
88969 + can spend in LAST_ACK state. If you're using haproxy and not
88970 + all servers it connects to have this option enabled, consider
88971 + disabling this feature on the haproxy host.
88972 +
88973 + If the sysctl option is enabled, two sysctl options with names
88974 + "ip_blackhole" and "lastack_retries" will be created.
88975 + While "ip_blackhole" takes the standard zero/non-zero on/off
88976 + toggle, "lastack_retries" uses the same kinds of values as
88977 + "tcp_retries1" and "tcp_retries2". The default value of 4
88978 + prevents a socket from lasting more than 45 seconds in LAST_ACK
88979 + state.
88980 +
88981 +config GRKERNSEC_NO_SIMULT_CONNECT
88982 + bool "Disable TCP Simultaneous Connect"
88983 + default y if GRKERNSEC_CONFIG_AUTO
88984 + depends on NET
88985 + help
88986 + If you say Y here, a feature by Willy Tarreau will be enabled that
88987 + removes a weakness in Linux's strict implementation of TCP that
88988 + allows two clients to connect to each other without either entering
88989 + a listening state. The weakness allows an attacker to easily prevent
88990 + a client from connecting to a known server provided the source port
88991 + for the connection is guessed correctly.
88992 +
88993 + As the weakness could be used to prevent an antivirus or IPS from
88994 + fetching updates, or prevent an SSL gateway from fetching a CRL,
88995 + it should be eliminated by enabling this option. Though Linux is
88996 + one of few operating systems supporting simultaneous connect, it
88997 + has no legitimate use in practice and is rarely supported by firewalls.
88998 +
88999 +config GRKERNSEC_SOCKET
89000 + bool "Socket restrictions"
89001 + depends on NET
89002 + help
89003 + If you say Y here, you will be able to choose from several options.
89004 + If you assign a GID on your system and add it to the supplementary
89005 + groups of users you want to restrict socket access to, this patch
89006 + will perform up to three things, based on the option(s) you choose.
89007 +
89008 +config GRKERNSEC_SOCKET_ALL
89009 + bool "Deny any sockets to group"
89010 + depends on GRKERNSEC_SOCKET
89011 + help
89012 + If you say Y here, you will be able to choose a GID of whose users will
89013 + be unable to connect to other hosts from your machine or run server
89014 + applications from your machine. If the sysctl option is enabled, a
89015 + sysctl option with name "socket_all" is created.
89016 +
89017 +config GRKERNSEC_SOCKET_ALL_GID
89018 + int "GID to deny all sockets for"
89019 + depends on GRKERNSEC_SOCKET_ALL
89020 + default 1004
89021 + help
89022 + Here you can choose the GID to disable socket access for. Remember to
89023 + add the users you want socket access disabled for to the GID
89024 + specified here. If the sysctl option is enabled, a sysctl option
89025 + with name "socket_all_gid" is created.
89026 +
89027 +config GRKERNSEC_SOCKET_CLIENT
89028 + bool "Deny client sockets to group"
89029 + depends on GRKERNSEC_SOCKET
89030 + help
89031 + If you say Y here, you will be able to choose a GID of whose users will
89032 + be unable to connect to other hosts from your machine, but will be
89033 + able to run servers. If this option is enabled, all users in the group
89034 + you specify will have to use passive mode when initiating ftp transfers
89035 + from the shell on your machine. If the sysctl option is enabled, a
89036 + sysctl option with name "socket_client" is created.
89037 +
89038 +config GRKERNSEC_SOCKET_CLIENT_GID
89039 + int "GID to deny client sockets for"
89040 + depends on GRKERNSEC_SOCKET_CLIENT
89041 + default 1003
89042 + help
89043 + Here you can choose the GID to disable client socket access for.
89044 + Remember to add the users you want client socket access disabled for to
89045 + the GID specified here. If the sysctl option is enabled, a sysctl
89046 + option with name "socket_client_gid" is created.
89047 +
89048 +config GRKERNSEC_SOCKET_SERVER
89049 + bool "Deny server sockets to group"
89050 + depends on GRKERNSEC_SOCKET
89051 + help
89052 + If you say Y here, you will be able to choose a GID of whose users will
89053 + be unable to run server applications from your machine. If the sysctl
89054 + option is enabled, a sysctl option with name "socket_server" is created.
89055 +
89056 +config GRKERNSEC_SOCKET_SERVER_GID
89057 + int "GID to deny server sockets for"
89058 + depends on GRKERNSEC_SOCKET_SERVER
89059 + default 1002
89060 + help
89061 + Here you can choose the GID to disable server socket access for.
89062 + Remember to add the users you want server socket access disabled for to
89063 + the GID specified here. If the sysctl option is enabled, a sysctl
89064 + option with name "socket_server_gid" is created.
89065 +
89066 +endmenu
89067 +
89068 +menu "Physical Protections"
89069 +depends on GRKERNSEC
89070 +
89071 +config GRKERNSEC_DENYUSB
89072 + bool "Deny new USB connections after toggle"
89073 + default y if GRKERNSEC_CONFIG_AUTO
89074 + depends on SYSCTL && USB_SUPPORT
89075 + help
89076 + If you say Y here, a new sysctl option with name "deny_new_usb"
89077 + will be created. Setting its value to 1 will prevent any new
89078 + USB devices from being recognized by the OS. Any attempted USB
89079 + device insertion will be logged. This option is intended to be
89080 + used against custom USB devices designed to exploit vulnerabilities
89081 + in various USB device drivers.
89082 +
89083 + For greatest effectiveness, this sysctl should be set after any
89084 + relevant init scripts. This option is safe to enable in distros
89085 + as each user can choose whether or not to toggle the sysctl.
89086 +
89087 +config GRKERNSEC_DENYUSB_FORCE
89088 + bool "Reject all USB devices not connected at boot"
89089 + select USB
89090 + depends on GRKERNSEC_DENYUSB
89091 + help
89092 + If you say Y here, a variant of GRKERNSEC_DENYUSB will be enabled
89093 + that doesn't involve a sysctl entry. This option should only be
89094 + enabled if you're sure you want to deny all new USB connections
89095 + at runtime and don't want to modify init scripts. This should not
89096 + be enabled by distros. It forces the core USB code to be built
89097 + into the kernel image so that all devices connected at boot time
89098 + can be recognized and new USB device connections can be prevented
89099 + prior to init running.
89100 +
89101 +endmenu
89102 +
89103 +menu "Sysctl Support"
89104 +depends on GRKERNSEC && SYSCTL
89105 +
89106 +config GRKERNSEC_SYSCTL
89107 + bool "Sysctl support"
89108 + default y if GRKERNSEC_CONFIG_AUTO
89109 + help
89110 + If you say Y here, you will be able to change the options that
89111 + grsecurity runs with at bootup, without having to recompile your
89112 + kernel. You can echo values to files in /proc/sys/kernel/grsecurity
89113 + to enable (1) or disable (0) various features. All the sysctl entries
89114 + are mutable until the "grsec_lock" entry is set to a non-zero value.
89115 + All features enabled in the kernel configuration are disabled at boot
89116 + if you do not say Y to the "Turn on features by default" option.
89117 + All options should be set at startup, and the grsec_lock entry should
89118 + be set to a non-zero value after all the options are set.
89119 + *THIS IS EXTREMELY IMPORTANT*
89120 +
89121 +config GRKERNSEC_SYSCTL_DISTRO
89122 + bool "Extra sysctl support for distro makers (READ HELP)"
89123 + depends on GRKERNSEC_SYSCTL && GRKERNSEC_IO
89124 + help
89125 + If you say Y here, additional sysctl options will be created
89126 + for features that affect processes running as root. Therefore,
89127 + it is critical when using this option that the grsec_lock entry be
89128 + enabled after boot. Only distros with prebuilt kernel packages
89129 + with this option enabled that can ensure grsec_lock is enabled
89130 + after boot should use this option.
89131 + *Failure to set grsec_lock after boot makes all grsec features
89132 + this option covers useless*
89133 +
89134 + Currently this option creates the following sysctl entries:
89135 + "Disable Privileged I/O": "disable_priv_io"
89136 +
89137 +config GRKERNSEC_SYSCTL_ON
89138 + bool "Turn on features by default"
89139 + default y if GRKERNSEC_CONFIG_AUTO
89140 + depends on GRKERNSEC_SYSCTL
89141 + help
89142 + If you say Y here, instead of having all features enabled in the
89143 + kernel configuration disabled at boot time, the features will be
89144 + enabled at boot time. It is recommended you say Y here unless
89145 + there is some reason you would want all sysctl-tunable features to
89146 + be disabled by default. As mentioned elsewhere, it is important
89147 + to enable the grsec_lock entry once you have finished modifying
89148 + the sysctl entries.
89149 +
89150 +endmenu
89151 +menu "Logging Options"
89152 +depends on GRKERNSEC
89153 +
89154 +config GRKERNSEC_FLOODTIME
89155 + int "Seconds in between log messages (minimum)"
89156 + default 10
89157 + help
89158 + This option allows you to enforce the number of seconds between
89159 + grsecurity log messages. The default should be suitable for most
89160 + people, however, if you choose to change it, choose a value small enough
89161 + to allow informative logs to be produced, but large enough to
89162 + prevent flooding.
89163 +
89164 + Setting both this value and GRKERNSEC_FLOODBURST to 0 will disable
89165 + any rate limiting on grsecurity log messages.
89166 +
89167 +config GRKERNSEC_FLOODBURST
89168 + int "Number of messages in a burst (maximum)"
89169 + default 6
89170 + help
89171 + This option allows you to choose the maximum number of messages allowed
89172 + within the flood time interval you chose in a separate option. The
89173 + default should be suitable for most people, however if you find that
89174 + many of your logs are being interpreted as flooding, you may want to
89175 + raise this value.
89176 +
89177 + Setting both this value and GRKERNSEC_FLOODTIME to 0 will disable
89178 + any rate limiting on grsecurity log messages.
89179 +
89180 +endmenu
89181 diff --git a/grsecurity/Makefile b/grsecurity/Makefile
89182 new file mode 100644
89183 index 0000000..e136e5f
89184 --- /dev/null
89185 +++ b/grsecurity/Makefile
89186 @@ -0,0 +1,54 @@
89187 +# grsecurity - access control and security hardening for Linux
89188 +# All code in this directory and various hooks located throughout the Linux kernel are
89189 +# Copyright (C) 2001-2014 Bradley Spengler, Open Source Security, Inc.
89190 +# http://www.grsecurity.net spender@grsecurity.net
89191 +#
89192 +# This program is free software; you can redistribute it and/or
89193 +# modify it under the terms of the GNU General Public License version 2
89194 +# as published by the Free Software Foundation.
89195 +#
89196 +# This program is distributed in the hope that it will be useful,
89197 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
89198 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
89199 +# GNU General Public License for more details.
89200 +#
89201 +# You should have received a copy of the GNU General Public License
89202 +# along with this program; if not, write to the Free Software
89203 +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
89204 +
89205 +KBUILD_CFLAGS += -Werror
89206 +
89207 +obj-y = grsec_chdir.o grsec_chroot.o grsec_exec.o grsec_fifo.o grsec_fork.o \
89208 + grsec_mount.o grsec_sig.o grsec_sysctl.o \
89209 + grsec_time.o grsec_tpe.o grsec_link.o grsec_pax.o grsec_ptrace.o \
89210 + grsec_usb.o grsec_ipc.o grsec_proc.o grsec_tty.o
89211 +
89212 +obj-$(CONFIG_GRKERNSEC) += grsec_init.o grsum.o gracl.o gracl_segv.o \
89213 + gracl_cap.o gracl_alloc.o gracl_shm.o grsec_mem.o gracl_fs.o \
89214 + gracl_learn.o grsec_log.o gracl_policy.o
89215 +ifdef CONFIG_COMPAT
89216 +obj-$(CONFIG_GRKERNSEC) += gracl_compat.o
89217 +endif
89218 +
89219 +obj-$(CONFIG_GRKERNSEC_RESLOG) += gracl_res.o
89220 +
89221 +ifdef CONFIG_NET
89222 +obj-y += grsec_sock.o
89223 +obj-$(CONFIG_GRKERNSEC) += gracl_ip.o
89224 +endif
89225 +
89226 +ifndef CONFIG_GRKERNSEC
89227 +obj-y += grsec_disabled.o
89228 +endif
89229 +
89230 +ifdef CONFIG_GRKERNSEC_HIDESYM
89231 +extra-y := grsec_hidesym.o
89232 +$(obj)/grsec_hidesym.o:
89233 + @-chmod -f 500 /boot
89234 + @-chmod -f 500 /lib/modules
89235 + @-chmod -f 500 /lib64/modules
89236 + @-chmod -f 500 /lib32/modules
89237 + @-chmod -f 700 .
89238 + @-chmod -f 700 $(objtree)
89239 + @echo ' grsec: protected kernel image paths'
89240 +endif
89241 diff --git a/grsecurity/gracl.c b/grsecurity/gracl.c
89242 new file mode 100644
89243 index 0000000..7ad630a
89244 --- /dev/null
89245 +++ b/grsecurity/gracl.c
89246 @@ -0,0 +1,2757 @@
89247 +#include <linux/kernel.h>
89248 +#include <linux/module.h>
89249 +#include <linux/sched.h>
89250 +#include <linux/mm.h>
89251 +#include <linux/file.h>
89252 +#include <linux/fs.h>
89253 +#include <linux/namei.h>
89254 +#include <linux/mount.h>
89255 +#include <linux/tty.h>
89256 +#include <linux/proc_fs.h>
89257 +#include <linux/lglock.h>
89258 +#include <linux/slab.h>
89259 +#include <linux/vmalloc.h>
89260 +#include <linux/types.h>
89261 +#include <linux/sysctl.h>
89262 +#include <linux/netdevice.h>
89263 +#include <linux/ptrace.h>
89264 +#include <linux/gracl.h>
89265 +#include <linux/gralloc.h>
89266 +#include <linux/security.h>
89267 +#include <linux/grinternal.h>
89268 +#include <linux/pid_namespace.h>
89269 +#include <linux/stop_machine.h>
89270 +#include <linux/fdtable.h>
89271 +#include <linux/percpu.h>
89272 +#include <linux/lglock.h>
89273 +#include <linux/hugetlb.h>
89274 +#include <linux/posix-timers.h>
89275 +#include <linux/prefetch.h>
89276 +#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE)
89277 +#include <linux/magic.h>
89278 +#include <linux/pagemap.h>
89279 +#include "../fs/btrfs/async-thread.h"
89280 +#include "../fs/btrfs/ctree.h"
89281 +#include "../fs/btrfs/btrfs_inode.h"
89282 +#endif
89283 +#include "../fs/mount.h"
89284 +
89285 +#include <asm/uaccess.h>
89286 +#include <asm/errno.h>
89287 +#include <asm/mman.h>
89288 +
89289 +#define FOR_EACH_ROLE_START(role) \
89290 + role = running_polstate.role_list; \
89291 + while (role) {
89292 +
89293 +#define FOR_EACH_ROLE_END(role) \
89294 + role = role->prev; \
89295 + }
89296 +
89297 +extern struct path gr_real_root;
89298 +
89299 +static struct gr_policy_state running_polstate;
89300 +struct gr_policy_state *polstate = &running_polstate;
89301 +extern struct gr_alloc_state *current_alloc_state;
89302 +
89303 +extern char *gr_shared_page[4];
89304 +DEFINE_RWLOCK(gr_inode_lock);
89305 +
89306 +static unsigned int gr_status __read_only = GR_STATUS_INIT;
89307 +
89308 +#ifdef CONFIG_NET
89309 +extern struct vfsmount *sock_mnt;
89310 +#endif
89311 +
89312 +extern struct vfsmount *pipe_mnt;
89313 +extern struct vfsmount *shm_mnt;
89314 +
89315 +#ifdef CONFIG_HUGETLBFS
89316 +extern struct vfsmount *hugetlbfs_vfsmount[HUGE_MAX_HSTATE];
89317 +#endif
89318 +
89319 +extern u16 acl_sp_role_value;
89320 +extern struct acl_object_label *fakefs_obj_rw;
89321 +extern struct acl_object_label *fakefs_obj_rwx;
89322 +
89323 +int gr_acl_is_enabled(void)
89324 +{
89325 + return (gr_status & GR_READY);
89326 +}
89327 +
89328 +void gr_enable_rbac_system(void)
89329 +{
89330 + pax_open_kernel();
89331 + gr_status |= GR_READY;
89332 + pax_close_kernel();
89333 +}
89334 +
89335 +int gr_rbac_disable(void *unused)
89336 +{
89337 + pax_open_kernel();
89338 + gr_status &= ~GR_READY;
89339 + pax_close_kernel();
89340 +
89341 + return 0;
89342 +}
89343 +
89344 +static inline dev_t __get_dev(const struct dentry *dentry)
89345 +{
89346 + struct dentry *ldentry = d_backing_dentry((struct dentry *)dentry);
89347 +
89348 +#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE)
89349 + if (ldentry->d_sb->s_magic == BTRFS_SUPER_MAGIC)
89350 + return BTRFS_I(d_inode(ldentry))->root->anon_dev;
89351 + else
89352 +#endif
89353 + return d_inode(ldentry)->i_sb->s_dev;
89354 +}
89355 +
89356 +static inline u64 __get_ino(const struct dentry *dentry)
89357 +{
89358 + struct dentry *ldentry = d_backing_dentry((struct dentry *)dentry);
89359 +
89360 +#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE)
89361 + if (ldentry->d_sb->s_magic == BTRFS_SUPER_MAGIC)
89362 + return btrfs_ino(d_inode(dentry));
89363 + else
89364 +#endif
89365 + return d_inode(ldentry)->i_ino;
89366 +}
89367 +
89368 +dev_t gr_get_dev_from_dentry(struct dentry *dentry)
89369 +{
89370 + return __get_dev(dentry);
89371 +}
89372 +
89373 +u64 gr_get_ino_from_dentry(struct dentry *dentry)
89374 +{
89375 + return __get_ino(dentry);
89376 +}
89377 +
89378 +static char gr_task_roletype_to_char(struct task_struct *task)
89379 +{
89380 + switch (task->role->roletype &
89381 + (GR_ROLE_DEFAULT | GR_ROLE_USER | GR_ROLE_GROUP |
89382 + GR_ROLE_SPECIAL)) {
89383 + case GR_ROLE_DEFAULT:
89384 + return 'D';
89385 + case GR_ROLE_USER:
89386 + return 'U';
89387 + case GR_ROLE_GROUP:
89388 + return 'G';
89389 + case GR_ROLE_SPECIAL:
89390 + return 'S';
89391 + }
89392 +
89393 + return 'X';
89394 +}
89395 +
89396 +char gr_roletype_to_char(void)
89397 +{
89398 + return gr_task_roletype_to_char(current);
89399 +}
89400 +
89401 +int
89402 +gr_acl_tpe_check(void)
89403 +{
89404 + if (unlikely(!(gr_status & GR_READY)))
89405 + return 0;
89406 + if (current->role->roletype & GR_ROLE_TPE)
89407 + return 1;
89408 + else
89409 + return 0;
89410 +}
89411 +
89412 +int
89413 +gr_handle_rawio(const struct inode *inode)
89414 +{
89415 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
89416 + if (inode && (S_ISBLK(inode->i_mode) || (S_ISCHR(inode->i_mode) && imajor(inode) == RAW_MAJOR)) &&
89417 + grsec_enable_chroot_caps && proc_is_chrooted(current) &&
89418 + !capable(CAP_SYS_RAWIO))
89419 + return 1;
89420 +#endif
89421 + return 0;
89422 +}
89423 +
89424 +int
89425 +gr_streq(const char *a, const char *b, const unsigned int lena, const unsigned int lenb)
89426 +{
89427 + if (likely(lena != lenb))
89428 + return 0;
89429 +
89430 + return !memcmp(a, b, lena);
89431 +}
89432 +
89433 +static int prepend(char **buffer, int *buflen, const char *str, int namelen)
89434 +{
89435 + *buflen -= namelen;
89436 + if (*buflen < 0)
89437 + return -ENAMETOOLONG;
89438 + *buffer -= namelen;
89439 + memcpy(*buffer, str, namelen);
89440 + return 0;
89441 +}
89442 +
89443 +static int prepend_name(char **buffer, int *buflen, struct qstr *name)
89444 +{
89445 + return prepend(buffer, buflen, name->name, name->len);
89446 +}
89447 +
89448 +static int prepend_path(const struct path *path, struct path *root,
89449 + char **buffer, int *buflen)
89450 +{
89451 + struct dentry *dentry = path->dentry;
89452 + struct vfsmount *vfsmnt = path->mnt;
89453 + struct mount *mnt = real_mount(vfsmnt);
89454 + bool slash = false;
89455 + int error = 0;
89456 +
89457 + while (dentry != root->dentry || vfsmnt != root->mnt) {
89458 + struct dentry * parent;
89459 +
89460 + if (dentry == vfsmnt->mnt_root || IS_ROOT(dentry)) {
89461 + /* Global root? */
89462 + if (!mnt_has_parent(mnt)) {
89463 + goto out;
89464 + }
89465 + dentry = mnt->mnt_mountpoint;
89466 + mnt = mnt->mnt_parent;
89467 + vfsmnt = &mnt->mnt;
89468 + continue;
89469 + }
89470 + parent = dentry->d_parent;
89471 + prefetch(parent);
89472 + spin_lock(&dentry->d_lock);
89473 + error = prepend_name(buffer, buflen, &dentry->d_name);
89474 + spin_unlock(&dentry->d_lock);
89475 + if (!error)
89476 + error = prepend(buffer, buflen, "/", 1);
89477 + if (error)
89478 + break;
89479 +
89480 + slash = true;
89481 + dentry = parent;
89482 + }
89483 +
89484 +out:
89485 + if (!error && !slash)
89486 + error = prepend(buffer, buflen, "/", 1);
89487 +
89488 + return error;
89489 +}
89490 +
89491 +/* this must be called with mount_lock and rename_lock held */
89492 +
89493 +static char *__our_d_path(const struct path *path, struct path *root,
89494 + char *buf, int buflen)
89495 +{
89496 + char *res = buf + buflen;
89497 + int error;
89498 +
89499 + prepend(&res, &buflen, "\0", 1);
89500 + error = prepend_path(path, root, &res, &buflen);
89501 + if (error)
89502 + return ERR_PTR(error);
89503 +
89504 + return res;
89505 +}
89506 +
89507 +static char *
89508 +gen_full_path(struct path *path, struct path *root, char *buf, int buflen)
89509 +{
89510 + char *retval;
89511 +
89512 + retval = __our_d_path(path, root, buf, buflen);
89513 + if (unlikely(IS_ERR(retval)))
89514 + retval = strcpy(buf, "<path too long>");
89515 + else if (unlikely(retval[1] == '/' && retval[2] == '\0'))
89516 + retval[1] = '\0';
89517 +
89518 + return retval;
89519 +}
89520 +
89521 +static char *
89522 +__d_real_path(const struct dentry *dentry, const struct vfsmount *vfsmnt,
89523 + char *buf, int buflen)
89524 +{
89525 + struct path path;
89526 + char *res;
89527 +
89528 + path.dentry = (struct dentry *)dentry;
89529 + path.mnt = (struct vfsmount *)vfsmnt;
89530 +
89531 + /* we can use gr_real_root.dentry, gr_real_root.mnt, because this is only called
89532 + by the RBAC system */
89533 + res = gen_full_path(&path, &gr_real_root, buf, buflen);
89534 +
89535 + return res;
89536 +}
89537 +
89538 +static char *
89539 +d_real_path(const struct dentry *dentry, const struct vfsmount *vfsmnt,
89540 + char *buf, int buflen)
89541 +{
89542 + char *res;
89543 + struct path path;
89544 + struct path root;
89545 + struct task_struct *reaper = init_pid_ns.child_reaper;
89546 +
89547 + path.dentry = (struct dentry *)dentry;
89548 + path.mnt = (struct vfsmount *)vfsmnt;
89549 +
89550 + /* we can't use gr_real_root.dentry, gr_real_root.mnt, because they belong only to the RBAC system */
89551 + get_fs_root(reaper->fs, &root);
89552 +
89553 + read_seqlock_excl(&mount_lock);
89554 + write_seqlock(&rename_lock);
89555 + res = gen_full_path(&path, &root, buf, buflen);
89556 + write_sequnlock(&rename_lock);
89557 + read_sequnlock_excl(&mount_lock);
89558 +
89559 + path_put(&root);
89560 + return res;
89561 +}
89562 +
89563 +char *
89564 +gr_to_filename_rbac(const struct dentry *dentry, const struct vfsmount *mnt)
89565 +{
89566 + char *ret;
89567 + read_seqlock_excl(&mount_lock);
89568 + write_seqlock(&rename_lock);
89569 + ret = __d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[0],smp_processor_id()),
89570 + PAGE_SIZE);
89571 + write_sequnlock(&rename_lock);
89572 + read_sequnlock_excl(&mount_lock);
89573 + return ret;
89574 +}
89575 +
89576 +static char *
89577 +gr_to_proc_filename_rbac(const struct dentry *dentry, const struct vfsmount *mnt)
89578 +{
89579 + char *ret;
89580 + char *buf;
89581 + int buflen;
89582 +
89583 + read_seqlock_excl(&mount_lock);
89584 + write_seqlock(&rename_lock);
89585 + buf = per_cpu_ptr(gr_shared_page[0], smp_processor_id());
89586 + ret = __d_real_path(dentry, mnt, buf, PAGE_SIZE - 6);
89587 + buflen = (int)(ret - buf);
89588 + if (buflen >= 5)
89589 + prepend(&ret, &buflen, "/proc", 5);
89590 + else
89591 + ret = strcpy(buf, "<path too long>");
89592 + write_sequnlock(&rename_lock);
89593 + read_sequnlock_excl(&mount_lock);
89594 + return ret;
89595 +}
89596 +
89597 +char *
89598 +gr_to_filename_nolock(const struct dentry *dentry, const struct vfsmount *mnt)
89599 +{
89600 + return __d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[0],smp_processor_id()),
89601 + PAGE_SIZE);
89602 +}
89603 +
89604 +char *
89605 +gr_to_filename(const struct dentry *dentry, const struct vfsmount *mnt)
89606 +{
89607 + return d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[0], smp_processor_id()),
89608 + PAGE_SIZE);
89609 +}
89610 +
89611 +char *
89612 +gr_to_filename1(const struct dentry *dentry, const struct vfsmount *mnt)
89613 +{
89614 + return d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[1], smp_processor_id()),
89615 + PAGE_SIZE);
89616 +}
89617 +
89618 +char *
89619 +gr_to_filename2(const struct dentry *dentry, const struct vfsmount *mnt)
89620 +{
89621 + return d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[2], smp_processor_id()),
89622 + PAGE_SIZE);
89623 +}
89624 +
89625 +char *
89626 +gr_to_filename3(const struct dentry *dentry, const struct vfsmount *mnt)
89627 +{
89628 + return d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[3], smp_processor_id()),
89629 + PAGE_SIZE);
89630 +}
89631 +
89632 +__u32
89633 +to_gr_audit(const __u32 reqmode)
89634 +{
89635 + /* masks off auditable permission flags, then shifts them to create
89636 + auditing flags, and adds the special case of append auditing if
89637 + we're requesting write */
89638 + return (((reqmode & ~GR_AUDITS) << 10) | ((reqmode & GR_WRITE) ? GR_AUDIT_APPEND : 0));
89639 +}
89640 +
89641 +struct acl_role_label *
89642 +__lookup_acl_role_label(const struct gr_policy_state *state, const struct task_struct *task, const uid_t uid,
89643 + const gid_t gid)
89644 +{
89645 + unsigned int index = gr_rhash(uid, GR_ROLE_USER, state->acl_role_set.r_size);
89646 + struct acl_role_label *match;
89647 + struct role_allowed_ip *ipp;
89648 + unsigned int x;
89649 + u32 curr_ip = task->signal->saved_ip;
89650 +
89651 + match = state->acl_role_set.r_hash[index];
89652 +
89653 + while (match) {
89654 + if ((match->roletype & (GR_ROLE_DOMAIN | GR_ROLE_USER)) == (GR_ROLE_DOMAIN | GR_ROLE_USER)) {
89655 + for (x = 0; x < match->domain_child_num; x++) {
89656 + if (match->domain_children[x] == uid)
89657 + goto found;
89658 + }
89659 + } else if (match->uidgid == uid && match->roletype & GR_ROLE_USER)
89660 + break;
89661 + match = match->next;
89662 + }
89663 +found:
89664 + if (match == NULL) {
89665 + try_group:
89666 + index = gr_rhash(gid, GR_ROLE_GROUP, state->acl_role_set.r_size);
89667 + match = state->acl_role_set.r_hash[index];
89668 +
89669 + while (match) {
89670 + if ((match->roletype & (GR_ROLE_DOMAIN | GR_ROLE_GROUP)) == (GR_ROLE_DOMAIN | GR_ROLE_GROUP)) {
89671 + for (x = 0; x < match->domain_child_num; x++) {
89672 + if (match->domain_children[x] == gid)
89673 + goto found2;
89674 + }
89675 + } else if (match->uidgid == gid && match->roletype & GR_ROLE_GROUP)
89676 + break;
89677 + match = match->next;
89678 + }
89679 +found2:
89680 + if (match == NULL)
89681 + match = state->default_role;
89682 + if (match->allowed_ips == NULL)
89683 + return match;
89684 + else {
89685 + for (ipp = match->allowed_ips; ipp; ipp = ipp->next) {
89686 + if (likely
89687 + ((ntohl(curr_ip) & ipp->netmask) ==
89688 + (ntohl(ipp->addr) & ipp->netmask)))
89689 + return match;
89690 + }
89691 + match = state->default_role;
89692 + }
89693 + } else if (match->allowed_ips == NULL) {
89694 + return match;
89695 + } else {
89696 + for (ipp = match->allowed_ips; ipp; ipp = ipp->next) {
89697 + if (likely
89698 + ((ntohl(curr_ip) & ipp->netmask) ==
89699 + (ntohl(ipp->addr) & ipp->netmask)))
89700 + return match;
89701 + }
89702 + goto try_group;
89703 + }
89704 +
89705 + return match;
89706 +}
89707 +
89708 +static struct acl_role_label *
89709 +lookup_acl_role_label(const struct task_struct *task, const uid_t uid,
89710 + const gid_t gid)
89711 +{
89712 + return __lookup_acl_role_label(&running_polstate, task, uid, gid);
89713 +}
89714 +
89715 +struct acl_subject_label *
89716 +lookup_acl_subj_label(const u64 ino, const dev_t dev,
89717 + const struct acl_role_label *role)
89718 +{
89719 + unsigned int index = gr_fhash(ino, dev, role->subj_hash_size);
89720 + struct acl_subject_label *match;
89721 +
89722 + match = role->subj_hash[index];
89723 +
89724 + while (match && (match->inode != ino || match->device != dev ||
89725 + (match->mode & GR_DELETED))) {
89726 + match = match->next;
89727 + }
89728 +
89729 + if (match && !(match->mode & GR_DELETED))
89730 + return match;
89731 + else
89732 + return NULL;
89733 +}
89734 +
89735 +struct acl_subject_label *
89736 +lookup_acl_subj_label_deleted(const u64 ino, const dev_t dev,
89737 + const struct acl_role_label *role)
89738 +{
89739 + unsigned int index = gr_fhash(ino, dev, role->subj_hash_size);
89740 + struct acl_subject_label *match;
89741 +
89742 + match = role->subj_hash[index];
89743 +
89744 + while (match && (match->inode != ino || match->device != dev ||
89745 + !(match->mode & GR_DELETED))) {
89746 + match = match->next;
89747 + }
89748 +
89749 + if (match && (match->mode & GR_DELETED))
89750 + return match;
89751 + else
89752 + return NULL;
89753 +}
89754 +
89755 +static struct acl_object_label *
89756 +lookup_acl_obj_label(const u64 ino, const dev_t dev,
89757 + const struct acl_subject_label *subj)
89758 +{
89759 + unsigned int index = gr_fhash(ino, dev, subj->obj_hash_size);
89760 + struct acl_object_label *match;
89761 +
89762 + match = subj->obj_hash[index];
89763 +
89764 + while (match && (match->inode != ino || match->device != dev ||
89765 + (match->mode & GR_DELETED))) {
89766 + match = match->next;
89767 + }
89768 +
89769 + if (match && !(match->mode & GR_DELETED))
89770 + return match;
89771 + else
89772 + return NULL;
89773 +}
89774 +
89775 +static struct acl_object_label *
89776 +lookup_acl_obj_label_create(const u64 ino, const dev_t dev,
89777 + const struct acl_subject_label *subj)
89778 +{
89779 + unsigned int index = gr_fhash(ino, dev, subj->obj_hash_size);
89780 + struct acl_object_label *match;
89781 +
89782 + match = subj->obj_hash[index];
89783 +
89784 + while (match && (match->inode != ino || match->device != dev ||
89785 + !(match->mode & GR_DELETED))) {
89786 + match = match->next;
89787 + }
89788 +
89789 + if (match && (match->mode & GR_DELETED))
89790 + return match;
89791 +
89792 + match = subj->obj_hash[index];
89793 +
89794 + while (match && (match->inode != ino || match->device != dev ||
89795 + (match->mode & GR_DELETED))) {
89796 + match = match->next;
89797 + }
89798 +
89799 + if (match && !(match->mode & GR_DELETED))
89800 + return match;
89801 + else
89802 + return NULL;
89803 +}
89804 +
89805 +struct name_entry *
89806 +__lookup_name_entry(const struct gr_policy_state *state, const char *name)
89807 +{
89808 + unsigned int len = strlen(name);
89809 + unsigned int key = full_name_hash(name, len);
89810 + unsigned int index = key % state->name_set.n_size;
89811 + struct name_entry *match;
89812 +
89813 + match = state->name_set.n_hash[index];
89814 +
89815 + while (match && (match->key != key || !gr_streq(match->name, name, match->len, len)))
89816 + match = match->next;
89817 +
89818 + return match;
89819 +}
89820 +
89821 +static struct name_entry *
89822 +lookup_name_entry(const char *name)
89823 +{
89824 + return __lookup_name_entry(&running_polstate, name);
89825 +}
89826 +
89827 +static struct name_entry *
89828 +lookup_name_entry_create(const char *name)
89829 +{
89830 + unsigned int len = strlen(name);
89831 + unsigned int key = full_name_hash(name, len);
89832 + unsigned int index = key % running_polstate.name_set.n_size;
89833 + struct name_entry *match;
89834 +
89835 + match = running_polstate.name_set.n_hash[index];
89836 +
89837 + while (match && (match->key != key || !gr_streq(match->name, name, match->len, len) ||
89838 + !match->deleted))
89839 + match = match->next;
89840 +
89841 + if (match && match->deleted)
89842 + return match;
89843 +
89844 + match = running_polstate.name_set.n_hash[index];
89845 +
89846 + while (match && (match->key != key || !gr_streq(match->name, name, match->len, len) ||
89847 + match->deleted))
89848 + match = match->next;
89849 +
89850 + if (match && !match->deleted)
89851 + return match;
89852 + else
89853 + return NULL;
89854 +}
89855 +
89856 +static struct inodev_entry *
89857 +lookup_inodev_entry(const u64 ino, const dev_t dev)
89858 +{
89859 + unsigned int index = gr_fhash(ino, dev, running_polstate.inodev_set.i_size);
89860 + struct inodev_entry *match;
89861 +
89862 + match = running_polstate.inodev_set.i_hash[index];
89863 +
89864 + while (match && (match->nentry->inode != ino || match->nentry->device != dev))
89865 + match = match->next;
89866 +
89867 + return match;
89868 +}
89869 +
89870 +void
89871 +__insert_inodev_entry(const struct gr_policy_state *state, struct inodev_entry *entry)
89872 +{
89873 + unsigned int index = gr_fhash(entry->nentry->inode, entry->nentry->device,
89874 + state->inodev_set.i_size);
89875 + struct inodev_entry **curr;
89876 +
89877 + entry->prev = NULL;
89878 +
89879 + curr = &state->inodev_set.i_hash[index];
89880 + if (*curr != NULL)
89881 + (*curr)->prev = entry;
89882 +
89883 + entry->next = *curr;
89884 + *curr = entry;
89885 +
89886 + return;
89887 +}
89888 +
89889 +static void
89890 +insert_inodev_entry(struct inodev_entry *entry)
89891 +{
89892 + __insert_inodev_entry(&running_polstate, entry);
89893 +}
89894 +
89895 +void
89896 +insert_acl_obj_label(struct acl_object_label *obj,
89897 + struct acl_subject_label *subj)
89898 +{
89899 + unsigned int index =
89900 + gr_fhash(obj->inode, obj->device, subj->obj_hash_size);
89901 + struct acl_object_label **curr;
89902 +
89903 + obj->prev = NULL;
89904 +
89905 + curr = &subj->obj_hash[index];
89906 + if (*curr != NULL)
89907 + (*curr)->prev = obj;
89908 +
89909 + obj->next = *curr;
89910 + *curr = obj;
89911 +
89912 + return;
89913 +}
89914 +
89915 +void
89916 +insert_acl_subj_label(struct acl_subject_label *obj,
89917 + struct acl_role_label *role)
89918 +{
89919 + unsigned int index = gr_fhash(obj->inode, obj->device, role->subj_hash_size);
89920 + struct acl_subject_label **curr;
89921 +
89922 + obj->prev = NULL;
89923 +
89924 + curr = &role->subj_hash[index];
89925 + if (*curr != NULL)
89926 + (*curr)->prev = obj;
89927 +
89928 + obj->next = *curr;
89929 + *curr = obj;
89930 +
89931 + return;
89932 +}
89933 +
89934 +/* derived from glibc fnmatch() 0: match, 1: no match*/
89935 +
89936 +static int
89937 +glob_match(const char *p, const char *n)
89938 +{
89939 + char c;
89940 +
89941 + while ((c = *p++) != '\0') {
89942 + switch (c) {
89943 + case '?':
89944 + if (*n == '\0')
89945 + return 1;
89946 + else if (*n == '/')
89947 + return 1;
89948 + break;
89949 + case '\\':
89950 + if (*n != c)
89951 + return 1;
89952 + break;
89953 + case '*':
89954 + for (c = *p++; c == '?' || c == '*'; c = *p++) {
89955 + if (*n == '/')
89956 + return 1;
89957 + else if (c == '?') {
89958 + if (*n == '\0')
89959 + return 1;
89960 + else
89961 + ++n;
89962 + }
89963 + }
89964 + if (c == '\0') {
89965 + return 0;
89966 + } else {
89967 + const char *endp;
89968 +
89969 + if ((endp = strchr(n, '/')) == NULL)
89970 + endp = n + strlen(n);
89971 +
89972 + if (c == '[') {
89973 + for (--p; n < endp; ++n)
89974 + if (!glob_match(p, n))
89975 + return 0;
89976 + } else if (c == '/') {
89977 + while (*n != '\0' && *n != '/')
89978 + ++n;
89979 + if (*n == '/' && !glob_match(p, n + 1))
89980 + return 0;
89981 + } else {
89982 + for (--p; n < endp; ++n)
89983 + if (*n == c && !glob_match(p, n))
89984 + return 0;
89985 + }
89986 +
89987 + return 1;
89988 + }
89989 + case '[':
89990 + {
89991 + int not;
89992 + char cold;
89993 +
89994 + if (*n == '\0' || *n == '/')
89995 + return 1;
89996 +
89997 + not = (*p == '!' || *p == '^');
89998 + if (not)
89999 + ++p;
90000 +
90001 + c = *p++;
90002 + for (;;) {
90003 + unsigned char fn = (unsigned char)*n;
90004 +
90005 + if (c == '\0')
90006 + return 1;
90007 + else {
90008 + if (c == fn)
90009 + goto matched;
90010 + cold = c;
90011 + c = *p++;
90012 +
90013 + if (c == '-' && *p != ']') {
90014 + unsigned char cend = *p++;
90015 +
90016 + if (cend == '\0')
90017 + return 1;
90018 +
90019 + if (cold <= fn && fn <= cend)
90020 + goto matched;
90021 +
90022 + c = *p++;
90023 + }
90024 + }
90025 +
90026 + if (c == ']')
90027 + break;
90028 + }
90029 + if (!not)
90030 + return 1;
90031 + break;
90032 + matched:
90033 + while (c != ']') {
90034 + if (c == '\0')
90035 + return 1;
90036 +
90037 + c = *p++;
90038 + }
90039 + if (not)
90040 + return 1;
90041 + }
90042 + break;
90043 + default:
90044 + if (c != *n)
90045 + return 1;
90046 + }
90047 +
90048 + ++n;
90049 + }
90050 +
90051 + if (*n == '\0')
90052 + return 0;
90053 +
90054 + if (*n == '/')
90055 + return 0;
90056 +
90057 + return 1;
90058 +}
90059 +
90060 +static struct acl_object_label *
90061 +chk_glob_label(struct acl_object_label *globbed,
90062 + const struct dentry *dentry, const struct vfsmount *mnt, char **path)
90063 +{
90064 + struct acl_object_label *tmp;
90065 +
90066 + if (*path == NULL)
90067 + *path = gr_to_filename_nolock(dentry, mnt);
90068 +
90069 + tmp = globbed;
90070 +
90071 + while (tmp) {
90072 + if (!glob_match(tmp->filename, *path))
90073 + return tmp;
90074 + tmp = tmp->next;
90075 + }
90076 +
90077 + return NULL;
90078 +}
90079 +
90080 +static struct acl_object_label *
90081 +__full_lookup(const struct dentry *orig_dentry, const struct vfsmount *orig_mnt,
90082 + const u64 curr_ino, const dev_t curr_dev,
90083 + const struct acl_subject_label *subj, char **path, const int checkglob)
90084 +{
90085 + struct acl_subject_label *tmpsubj;
90086 + struct acl_object_label *retval;
90087 + struct acl_object_label *retval2;
90088 +
90089 + tmpsubj = (struct acl_subject_label *) subj;
90090 + read_lock(&gr_inode_lock);
90091 + do {
90092 + retval = lookup_acl_obj_label(curr_ino, curr_dev, tmpsubj);
90093 + if (retval) {
90094 + if (checkglob && retval->globbed) {
90095 + retval2 = chk_glob_label(retval->globbed, orig_dentry, orig_mnt, path);
90096 + if (retval2)
90097 + retval = retval2;
90098 + }
90099 + break;
90100 + }
90101 + } while ((tmpsubj = tmpsubj->parent_subject));
90102 + read_unlock(&gr_inode_lock);
90103 +
90104 + return retval;
90105 +}
90106 +
90107 +static struct acl_object_label *
90108 +full_lookup(const struct dentry *orig_dentry, const struct vfsmount *orig_mnt,
90109 + struct dentry *curr_dentry,
90110 + const struct acl_subject_label *subj, char **path, const int checkglob)
90111 +{
90112 + int newglob = checkglob;
90113 + u64 inode;
90114 + dev_t device;
90115 +
90116 + /* if we aren't checking a subdirectory of the original path yet, don't do glob checking
90117 + as we don't want a / * rule to match instead of the / object
90118 + don't do this for create lookups that call this function though, since they're looking up
90119 + on the parent and thus need globbing checks on all paths
90120 + */
90121 + if (orig_dentry == curr_dentry && newglob != GR_CREATE_GLOB)
90122 + newglob = GR_NO_GLOB;
90123 +
90124 + spin_lock(&curr_dentry->d_lock);
90125 + inode = __get_ino(curr_dentry);
90126 + device = __get_dev(curr_dentry);
90127 + spin_unlock(&curr_dentry->d_lock);
90128 +
90129 + return __full_lookup(orig_dentry, orig_mnt, inode, device, subj, path, newglob);
90130 +}
90131 +
90132 +#ifdef CONFIG_HUGETLBFS
90133 +static inline bool
90134 +is_hugetlbfs_mnt(const struct vfsmount *mnt)
90135 +{
90136 + int i;
90137 + for (i = 0; i < HUGE_MAX_HSTATE; i++) {
90138 + if (unlikely(hugetlbfs_vfsmount[i] == mnt))
90139 + return true;
90140 + }
90141 +
90142 + return false;
90143 +}
90144 +#endif
90145 +
90146 +static struct acl_object_label *
90147 +__chk_obj_label(const struct dentry *l_dentry, const struct vfsmount *l_mnt,
90148 + const struct acl_subject_label *subj, char *path, const int checkglob)
90149 +{
90150 + struct dentry *dentry = (struct dentry *) l_dentry;
90151 + struct vfsmount *mnt = (struct vfsmount *) l_mnt;
90152 + struct inode * inode = d_backing_inode(dentry);
90153 + struct mount *real_mnt = real_mount(mnt);
90154 + struct acl_object_label *retval;
90155 + struct dentry *parent;
90156 +
90157 + read_seqlock_excl(&mount_lock);
90158 + write_seqlock(&rename_lock);
90159 +
90160 + if (unlikely((mnt == shm_mnt && inode->i_nlink == 0) || mnt == pipe_mnt ||
90161 +#ifdef CONFIG_NET
90162 + mnt == sock_mnt ||
90163 +#endif
90164 +#ifdef CONFIG_HUGETLBFS
90165 + (is_hugetlbfs_mnt(mnt) && inode->i_nlink == 0) ||
90166 +#endif
90167 + /* ignore Eric Biederman */
90168 + IS_PRIVATE(inode))) {
90169 + retval = (subj->mode & GR_SHMEXEC) ? fakefs_obj_rwx : fakefs_obj_rw;
90170 + goto out;
90171 + }
90172 +
90173 + for (;;) {
90174 + if (dentry == gr_real_root.dentry && mnt == gr_real_root.mnt)
90175 + break;
90176 +
90177 + if (dentry == mnt->mnt_root || IS_ROOT(dentry)) {
90178 + if (!mnt_has_parent(real_mnt))
90179 + break;
90180 +
90181 + retval = full_lookup(l_dentry, l_mnt, dentry, subj, &path, checkglob);
90182 + if (retval != NULL)
90183 + goto out;
90184 +
90185 + dentry = real_mnt->mnt_mountpoint;
90186 + real_mnt = real_mnt->mnt_parent;
90187 + mnt = &real_mnt->mnt;
90188 + continue;
90189 + }
90190 +
90191 + parent = dentry->d_parent;
90192 + retval = full_lookup(l_dentry, l_mnt, dentry, subj, &path, checkglob);
90193 + if (retval != NULL)
90194 + goto out;
90195 +
90196 + dentry = parent;
90197 + }
90198 +
90199 + retval = full_lookup(l_dentry, l_mnt, dentry, subj, &path, checkglob);
90200 +
90201 + /* gr_real_root is pinned so we don't have to hold a reference */
90202 + if (retval == NULL)
90203 + retval = full_lookup(l_dentry, l_mnt, gr_real_root.dentry, subj, &path, checkglob);
90204 +out:
90205 + write_sequnlock(&rename_lock);
90206 + read_sequnlock_excl(&mount_lock);
90207 +
90208 + BUG_ON(retval == NULL);
90209 +
90210 + return retval;
90211 +}
90212 +
90213 +static struct acl_object_label *
90214 +chk_obj_label(const struct dentry *l_dentry, const struct vfsmount *l_mnt,
90215 + const struct acl_subject_label *subj)
90216 +{
90217 + char *path = NULL;
90218 + return __chk_obj_label(l_dentry, l_mnt, subj, path, GR_REG_GLOB);
90219 +}
90220 +
90221 +static struct acl_object_label *
90222 +chk_obj_label_noglob(const struct dentry *l_dentry, const struct vfsmount *l_mnt,
90223 + const struct acl_subject_label *subj)
90224 +{
90225 + char *path = NULL;
90226 + return __chk_obj_label(l_dentry, l_mnt, subj, path, GR_NO_GLOB);
90227 +}
90228 +
90229 +static struct acl_object_label *
90230 +chk_obj_create_label(const struct dentry *l_dentry, const struct vfsmount *l_mnt,
90231 + const struct acl_subject_label *subj, char *path)
90232 +{
90233 + return __chk_obj_label(l_dentry, l_mnt, subj, path, GR_CREATE_GLOB);
90234 +}
90235 +
90236 +struct acl_subject_label *
90237 +chk_subj_label(const struct dentry *l_dentry, const struct vfsmount *l_mnt,
90238 + const struct acl_role_label *role)
90239 +{
90240 + struct dentry *dentry = (struct dentry *) l_dentry;
90241 + struct vfsmount *mnt = (struct vfsmount *) l_mnt;
90242 + struct mount *real_mnt = real_mount(mnt);
90243 + struct acl_subject_label *retval;
90244 + struct dentry *parent;
90245 +
90246 + read_seqlock_excl(&mount_lock);
90247 + write_seqlock(&rename_lock);
90248 +
90249 + for (;;) {
90250 + if (dentry == gr_real_root.dentry && mnt == gr_real_root.mnt)
90251 + break;
90252 + if (dentry == mnt->mnt_root || IS_ROOT(dentry)) {
90253 + if (!mnt_has_parent(real_mnt))
90254 + break;
90255 +
90256 + spin_lock(&dentry->d_lock);
90257 + read_lock(&gr_inode_lock);
90258 + retval =
90259 + lookup_acl_subj_label(__get_ino(dentry),
90260 + __get_dev(dentry), role);
90261 + read_unlock(&gr_inode_lock);
90262 + spin_unlock(&dentry->d_lock);
90263 + if (retval != NULL)
90264 + goto out;
90265 +
90266 + dentry = real_mnt->mnt_mountpoint;
90267 + real_mnt = real_mnt->mnt_parent;
90268 + mnt = &real_mnt->mnt;
90269 + continue;
90270 + }
90271 +
90272 + spin_lock(&dentry->d_lock);
90273 + read_lock(&gr_inode_lock);
90274 + retval = lookup_acl_subj_label(__get_ino(dentry),
90275 + __get_dev(dentry), role);
90276 + read_unlock(&gr_inode_lock);
90277 + parent = dentry->d_parent;
90278 + spin_unlock(&dentry->d_lock);
90279 +
90280 + if (retval != NULL)
90281 + goto out;
90282 +
90283 + dentry = parent;
90284 + }
90285 +
90286 + spin_lock(&dentry->d_lock);
90287 + read_lock(&gr_inode_lock);
90288 + retval = lookup_acl_subj_label(__get_ino(dentry),
90289 + __get_dev(dentry), role);
90290 + read_unlock(&gr_inode_lock);
90291 + spin_unlock(&dentry->d_lock);
90292 +
90293 + if (unlikely(retval == NULL)) {
90294 + /* gr_real_root is pinned, we don't need to hold a reference */
90295 + read_lock(&gr_inode_lock);
90296 + retval = lookup_acl_subj_label(__get_ino(gr_real_root.dentry),
90297 + __get_dev(gr_real_root.dentry), role);
90298 + read_unlock(&gr_inode_lock);
90299 + }
90300 +out:
90301 + write_sequnlock(&rename_lock);
90302 + read_sequnlock_excl(&mount_lock);
90303 +
90304 + BUG_ON(retval == NULL);
90305 +
90306 + return retval;
90307 +}
90308 +
90309 +void
90310 +assign_special_role(const char *rolename)
90311 +{
90312 + struct acl_object_label *obj;
90313 + struct acl_role_label *r;
90314 + struct acl_role_label *assigned = NULL;
90315 + struct task_struct *tsk;
90316 + struct file *filp;
90317 +
90318 + FOR_EACH_ROLE_START(r)
90319 + if (!strcmp(rolename, r->rolename) &&
90320 + (r->roletype & GR_ROLE_SPECIAL)) {
90321 + assigned = r;
90322 + break;
90323 + }
90324 + FOR_EACH_ROLE_END(r)
90325 +
90326 + if (!assigned)
90327 + return;
90328 +
90329 + read_lock(&tasklist_lock);
90330 + read_lock(&grsec_exec_file_lock);
90331 +
90332 + tsk = current->real_parent;
90333 + if (tsk == NULL)
90334 + goto out_unlock;
90335 +
90336 + filp = tsk->exec_file;
90337 + if (filp == NULL)
90338 + goto out_unlock;
90339 +
90340 + tsk->is_writable = 0;
90341 + tsk->inherited = 0;
90342 +
90343 + tsk->acl_sp_role = 1;
90344 + tsk->acl_role_id = ++acl_sp_role_value;
90345 + tsk->role = assigned;
90346 + tsk->acl = chk_subj_label(filp->f_path.dentry, filp->f_path.mnt, tsk->role);
90347 +
90348 + /* ignore additional mmap checks for processes that are writable
90349 + by the default ACL */
90350 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, running_polstate.default_role->root_label);
90351 + if (unlikely(obj->mode & GR_WRITE))
90352 + tsk->is_writable = 1;
90353 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, tsk->role->root_label);
90354 + if (unlikely(obj->mode & GR_WRITE))
90355 + tsk->is_writable = 1;
90356 +
90357 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
90358 + printk(KERN_ALERT "Assigning special role:%s subject:%s to process (%s:%d)\n", tsk->role->rolename,
90359 + tsk->acl->filename, tsk->comm, task_pid_nr(tsk));
90360 +#endif
90361 +
90362 +out_unlock:
90363 + read_unlock(&grsec_exec_file_lock);
90364 + read_unlock(&tasklist_lock);
90365 + return;
90366 +}
90367 +
90368 +
90369 +static void
90370 +gr_log_learn(const struct dentry *dentry, const struct vfsmount *mnt, const __u32 mode)
90371 +{
90372 + struct task_struct *task = current;
90373 + const struct cred *cred = current_cred();
90374 +
90375 + security_learn(GR_LEARN_AUDIT_MSG, task->role->rolename, task->role->roletype,
90376 + GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid), task->exec_file ? gr_to_filename1(task->exec_file->f_path.dentry,
90377 + task->exec_file->f_path.mnt) : task->acl->filename, task->acl->filename,
90378 + 1UL, 1UL, gr_to_filename(dentry, mnt), (unsigned long) mode, &task->signal->saved_ip);
90379 +
90380 + return;
90381 +}
90382 +
90383 +static void
90384 +gr_log_learn_uid_change(const kuid_t real, const kuid_t effective, const kuid_t fs)
90385 +{
90386 + struct task_struct *task = current;
90387 + const struct cred *cred = current_cred();
90388 +
90389 + security_learn(GR_ID_LEARN_MSG, task->role->rolename, task->role->roletype,
90390 + GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid), task->exec_file ? gr_to_filename1(task->exec_file->f_path.dentry,
90391 + task->exec_file->f_path.mnt) : task->acl->filename, task->acl->filename,
90392 + 'u', GR_GLOBAL_UID(real), GR_GLOBAL_UID(effective), GR_GLOBAL_UID(fs), &task->signal->saved_ip);
90393 +
90394 + return;
90395 +}
90396 +
90397 +static void
90398 +gr_log_learn_gid_change(const kgid_t real, const kgid_t effective, const kgid_t fs)
90399 +{
90400 + struct task_struct *task = current;
90401 + const struct cred *cred = current_cred();
90402 +
90403 + security_learn(GR_ID_LEARN_MSG, task->role->rolename, task->role->roletype,
90404 + GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid), task->exec_file ? gr_to_filename1(task->exec_file->f_path.dentry,
90405 + task->exec_file->f_path.mnt) : task->acl->filename, task->acl->filename,
90406 + 'g', GR_GLOBAL_GID(real), GR_GLOBAL_GID(effective), GR_GLOBAL_GID(fs), &task->signal->saved_ip);
90407 +
90408 + return;
90409 +}
90410 +
90411 +static void
90412 +gr_set_proc_res(struct task_struct *task)
90413 +{
90414 + struct acl_subject_label *proc;
90415 + unsigned short i;
90416 +
90417 + proc = task->acl;
90418 +
90419 + if (proc->mode & (GR_LEARN | GR_INHERITLEARN))
90420 + return;
90421 +
90422 + for (i = 0; i < RLIM_NLIMITS; i++) {
90423 + unsigned long rlim_cur, rlim_max;
90424 +
90425 + if (!(proc->resmask & (1U << i)))
90426 + continue;
90427 +
90428 + rlim_cur = proc->res[i].rlim_cur;
90429 + rlim_max = proc->res[i].rlim_max;
90430 +
90431 + if (i == RLIMIT_NOFILE) {
90432 + unsigned long saved_sysctl_nr_open = sysctl_nr_open;
90433 + if (rlim_cur > saved_sysctl_nr_open)
90434 + rlim_cur = saved_sysctl_nr_open;
90435 + if (rlim_max > saved_sysctl_nr_open)
90436 + rlim_max = saved_sysctl_nr_open;
90437 + }
90438 +
90439 + task->signal->rlim[i].rlim_cur = rlim_cur;
90440 + task->signal->rlim[i].rlim_max = rlim_max;
90441 +
90442 + if (i == RLIMIT_CPU)
90443 + update_rlimit_cpu(task, rlim_cur);
90444 + }
90445 +
90446 + return;
90447 +}
90448 +
90449 +/* both of the below must be called with
90450 + rcu_read_lock();
90451 + read_lock(&tasklist_lock);
90452 + read_lock(&grsec_exec_file_lock);
90453 + except in the case of gr_set_role_label() (for __gr_get_subject_for_task)
90454 +*/
90455 +
90456 +struct acl_subject_label *__gr_get_subject_for_task(const struct gr_policy_state *state, struct task_struct *task, const char *filename, int fallback)
90457 +{
90458 + char *tmpname;
90459 + struct acl_subject_label *tmpsubj;
90460 + struct file *filp;
90461 + struct name_entry *nmatch;
90462 +
90463 + filp = task->exec_file;
90464 + if (filp == NULL)
90465 + return NULL;
90466 +
90467 + /* the following is to apply the correct subject
90468 + on binaries running when the RBAC system
90469 + is enabled, when the binaries have been
90470 + replaced or deleted since their execution
90471 + -----
90472 + when the RBAC system starts, the inode/dev
90473 + from exec_file will be one the RBAC system
90474 + is unaware of. It only knows the inode/dev
90475 + of the present file on disk, or the absence
90476 + of it.
90477 + */
90478 +
90479 + if (filename)
90480 + nmatch = __lookup_name_entry(state, filename);
90481 + else {
90482 + preempt_disable();
90483 + tmpname = gr_to_filename_rbac(filp->f_path.dentry, filp->f_path.mnt);
90484 +
90485 + nmatch = __lookup_name_entry(state, tmpname);
90486 + preempt_enable();
90487 + }
90488 + tmpsubj = NULL;
90489 + if (nmatch) {
90490 + if (nmatch->deleted)
90491 + tmpsubj = lookup_acl_subj_label_deleted(nmatch->inode, nmatch->device, task->role);
90492 + else
90493 + tmpsubj = lookup_acl_subj_label(nmatch->inode, nmatch->device, task->role);
90494 + }
90495 + /* this also works for the reload case -- if we don't match a potentially inherited subject
90496 + then we fall back to a normal lookup based on the binary's ino/dev
90497 + */
90498 + if (tmpsubj == NULL && fallback)
90499 + tmpsubj = chk_subj_label(filp->f_path.dentry, filp->f_path.mnt, task->role);
90500 +
90501 + return tmpsubj;
90502 +}
90503 +
90504 +static struct acl_subject_label *gr_get_subject_for_task(struct task_struct *task, const char *filename, int fallback)
90505 +{
90506 + return __gr_get_subject_for_task(&running_polstate, task, filename, fallback);
90507 +}
90508 +
90509 +void __gr_apply_subject_to_task(const struct gr_policy_state *state, struct task_struct *task, struct acl_subject_label *subj)
90510 +{
90511 + struct acl_object_label *obj;
90512 + struct file *filp;
90513 +
90514 + filp = task->exec_file;
90515 +
90516 + task->acl = subj;
90517 + task->is_writable = 0;
90518 + /* ignore additional mmap checks for processes that are writable
90519 + by the default ACL */
90520 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, state->default_role->root_label);
90521 + if (unlikely(obj->mode & GR_WRITE))
90522 + task->is_writable = 1;
90523 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, task->role->root_label);
90524 + if (unlikely(obj->mode & GR_WRITE))
90525 + task->is_writable = 1;
90526 +
90527 + gr_set_proc_res(task);
90528 +
90529 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
90530 + 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);
90531 +#endif
90532 +}
90533 +
90534 +static void gr_apply_subject_to_task(struct task_struct *task, struct acl_subject_label *subj)
90535 +{
90536 + __gr_apply_subject_to_task(&running_polstate, task, subj);
90537 +}
90538 +
90539 +__u32
90540 +gr_search_file(const struct dentry * dentry, const __u32 mode,
90541 + const struct vfsmount * mnt)
90542 +{
90543 + __u32 retval = mode;
90544 + struct acl_subject_label *curracl;
90545 + struct acl_object_label *currobj;
90546 +
90547 + if (unlikely(!(gr_status & GR_READY)))
90548 + return (mode & ~GR_AUDITS);
90549 +
90550 + curracl = current->acl;
90551 +
90552 + currobj = chk_obj_label(dentry, mnt, curracl);
90553 + retval = currobj->mode & mode;
90554 +
90555 + /* if we're opening a specified transfer file for writing
90556 + (e.g. /dev/initctl), then transfer our role to init
90557 + */
90558 + if (unlikely(currobj->mode & GR_INIT_TRANSFER && retval & GR_WRITE &&
90559 + current->role->roletype & GR_ROLE_PERSIST)) {
90560 + struct task_struct *task = init_pid_ns.child_reaper;
90561 +
90562 + if (task->role != current->role) {
90563 + struct acl_subject_label *subj;
90564 +
90565 + task->acl_sp_role = 0;
90566 + task->acl_role_id = current->acl_role_id;
90567 + task->role = current->role;
90568 + rcu_read_lock();
90569 + read_lock(&grsec_exec_file_lock);
90570 + subj = gr_get_subject_for_task(task, NULL, 1);
90571 + gr_apply_subject_to_task(task, subj);
90572 + read_unlock(&grsec_exec_file_lock);
90573 + rcu_read_unlock();
90574 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_INIT_TRANSFER_MSG);
90575 + }
90576 + }
90577 +
90578 + if (unlikely
90579 + ((curracl->mode & (GR_LEARN | GR_INHERITLEARN)) && !(mode & GR_NOPTRACE)
90580 + && (retval != (mode & ~(GR_AUDITS | GR_SUPPRESS))))) {
90581 + __u32 new_mode = mode;
90582 +
90583 + new_mode &= ~(GR_AUDITS | GR_SUPPRESS);
90584 +
90585 + retval = new_mode;
90586 +
90587 + if (new_mode & GR_EXEC && curracl->mode & GR_INHERITLEARN)
90588 + new_mode |= GR_INHERIT;
90589 +
90590 + if (!(mode & GR_NOLEARN))
90591 + gr_log_learn(dentry, mnt, new_mode);
90592 + }
90593 +
90594 + return retval;
90595 +}
90596 +
90597 +struct acl_object_label *gr_get_create_object(const struct dentry *new_dentry,
90598 + const struct dentry *parent,
90599 + const struct vfsmount *mnt)
90600 +{
90601 + struct name_entry *match;
90602 + struct acl_object_label *matchpo;
90603 + struct acl_subject_label *curracl;
90604 + char *path;
90605 +
90606 + if (unlikely(!(gr_status & GR_READY)))
90607 + return NULL;
90608 +
90609 + preempt_disable();
90610 + path = gr_to_filename_rbac(new_dentry, mnt);
90611 + match = lookup_name_entry_create(path);
90612 +
90613 + curracl = current->acl;
90614 +
90615 + if (match) {
90616 + read_lock(&gr_inode_lock);
90617 + matchpo = lookup_acl_obj_label_create(match->inode, match->device, curracl);
90618 + read_unlock(&gr_inode_lock);
90619 +
90620 + if (matchpo) {
90621 + preempt_enable();
90622 + return matchpo;
90623 + }
90624 + }
90625 +
90626 + // lookup parent
90627 +
90628 + matchpo = chk_obj_create_label(parent, mnt, curracl, path);
90629 +
90630 + preempt_enable();
90631 + return matchpo;
90632 +}
90633 +
90634 +__u32
90635 +gr_check_create(const struct dentry * new_dentry, const struct dentry * parent,
90636 + const struct vfsmount * mnt, const __u32 mode)
90637 +{
90638 + struct acl_object_label *matchpo;
90639 + __u32 retval;
90640 +
90641 + if (unlikely(!(gr_status & GR_READY)))
90642 + return (mode & ~GR_AUDITS);
90643 +
90644 + matchpo = gr_get_create_object(new_dentry, parent, mnt);
90645 +
90646 + retval = matchpo->mode & mode;
90647 +
90648 + if ((retval != (mode & ~(GR_AUDITS | GR_SUPPRESS)))
90649 + && (current->acl->mode & (GR_LEARN | GR_INHERITLEARN))) {
90650 + __u32 new_mode = mode;
90651 +
90652 + new_mode &= ~(GR_AUDITS | GR_SUPPRESS);
90653 +
90654 + gr_log_learn(new_dentry, mnt, new_mode);
90655 + return new_mode;
90656 + }
90657 +
90658 + return retval;
90659 +}
90660 +
90661 +__u32
90662 +gr_check_link(const struct dentry * new_dentry,
90663 + const struct dentry * parent_dentry,
90664 + const struct vfsmount * parent_mnt,
90665 + const struct dentry * old_dentry, const struct vfsmount * old_mnt)
90666 +{
90667 + struct acl_object_label *obj;
90668 + __u32 oldmode, newmode;
90669 + __u32 needmode;
90670 + __u32 checkmodes = GR_FIND | GR_APPEND | GR_WRITE | GR_EXEC | GR_SETID | GR_READ |
90671 + GR_DELETE | GR_INHERIT;
90672 +
90673 + if (unlikely(!(gr_status & GR_READY)))
90674 + return (GR_CREATE | GR_LINK);
90675 +
90676 + obj = chk_obj_label(old_dentry, old_mnt, current->acl);
90677 + oldmode = obj->mode;
90678 +
90679 + obj = gr_get_create_object(new_dentry, parent_dentry, parent_mnt);
90680 + newmode = obj->mode;
90681 +
90682 + needmode = newmode & checkmodes;
90683 +
90684 + // old name for hardlink must have at least the permissions of the new name
90685 + if ((oldmode & needmode) != needmode)
90686 + goto bad;
90687 +
90688 + // if old name had restrictions/auditing, make sure the new name does as well
90689 + needmode = oldmode & (GR_NOPTRACE | GR_PTRACERD | GR_INHERIT | GR_AUDITS);
90690 +
90691 + // don't allow hardlinking of suid/sgid/fcapped files without permission
90692 + if (is_privileged_binary(old_dentry))
90693 + needmode |= GR_SETID;
90694 +
90695 + if ((newmode & needmode) != needmode)
90696 + goto bad;
90697 +
90698 + // enforce minimum permissions
90699 + if ((newmode & (GR_CREATE | GR_LINK)) == (GR_CREATE | GR_LINK))
90700 + return newmode;
90701 +bad:
90702 + needmode = oldmode;
90703 + if (is_privileged_binary(old_dentry))
90704 + needmode |= GR_SETID;
90705 +
90706 + if (current->acl->mode & (GR_LEARN | GR_INHERITLEARN)) {
90707 + gr_log_learn(old_dentry, old_mnt, needmode | GR_CREATE | GR_LINK);
90708 + return (GR_CREATE | GR_LINK);
90709 + } else if (newmode & GR_SUPPRESS)
90710 + return GR_SUPPRESS;
90711 + else
90712 + return 0;
90713 +}
90714 +
90715 +int
90716 +gr_check_hidden_task(const struct task_struct *task)
90717 +{
90718 + if (unlikely(!(gr_status & GR_READY)))
90719 + return 0;
90720 +
90721 + if (!(task->acl->mode & GR_PROCFIND) && !(current->acl->mode & GR_VIEW))
90722 + return 1;
90723 +
90724 + return 0;
90725 +}
90726 +
90727 +int
90728 +gr_check_protected_task(const struct task_struct *task)
90729 +{
90730 + if (unlikely(!(gr_status & GR_READY) || !task))
90731 + return 0;
90732 +
90733 + if ((task->acl->mode & GR_PROTECTED) && !(current->acl->mode & GR_KILL) &&
90734 + task->acl != current->acl)
90735 + return 1;
90736 +
90737 + return 0;
90738 +}
90739 +
90740 +int
90741 +gr_check_protected_task_fowner(struct pid *pid, enum pid_type type)
90742 +{
90743 + struct task_struct *p;
90744 + int ret = 0;
90745 +
90746 + if (unlikely(!(gr_status & GR_READY) || !pid))
90747 + return ret;
90748 +
90749 + read_lock(&tasklist_lock);
90750 + do_each_pid_task(pid, type, p) {
90751 + if ((p->acl->mode & GR_PROTECTED) && !(current->acl->mode & GR_KILL) &&
90752 + p->acl != current->acl) {
90753 + ret = 1;
90754 + goto out;
90755 + }
90756 + } while_each_pid_task(pid, type, p);
90757 +out:
90758 + read_unlock(&tasklist_lock);
90759 +
90760 + return ret;
90761 +}
90762 +
90763 +void
90764 +gr_copy_label(struct task_struct *tsk)
90765 +{
90766 + struct task_struct *p = current;
90767 +
90768 + tsk->inherited = p->inherited;
90769 + tsk->acl_sp_role = 0;
90770 + tsk->acl_role_id = p->acl_role_id;
90771 + tsk->acl = p->acl;
90772 + tsk->role = p->role;
90773 + tsk->signal->used_accept = 0;
90774 + tsk->signal->curr_ip = p->signal->curr_ip;
90775 + tsk->signal->saved_ip = p->signal->saved_ip;
90776 + if (p->exec_file)
90777 + get_file(p->exec_file);
90778 + tsk->exec_file = p->exec_file;
90779 + tsk->is_writable = p->is_writable;
90780 + if (unlikely(p->signal->used_accept)) {
90781 + p->signal->curr_ip = 0;
90782 + p->signal->saved_ip = 0;
90783 + }
90784 +
90785 + return;
90786 +}
90787 +
90788 +extern int gr_process_kernel_setuid_ban(struct user_struct *user);
90789 +
90790 +int
90791 +gr_check_user_change(kuid_t real, kuid_t effective, kuid_t fs)
90792 +{
90793 + unsigned int i;
90794 + __u16 num;
90795 + uid_t *uidlist;
90796 + uid_t curuid;
90797 + int realok = 0;
90798 + int effectiveok = 0;
90799 + int fsok = 0;
90800 + uid_t globalreal, globaleffective, globalfs;
90801 +
90802 +#if defined(CONFIG_GRKERNSEC_KERN_LOCKOUT)
90803 + struct user_struct *user;
90804 +
90805 + if (!uid_valid(real))
90806 + goto skipit;
90807 +
90808 + /* find user based on global namespace */
90809 +
90810 + globalreal = GR_GLOBAL_UID(real);
90811 +
90812 + user = find_user(make_kuid(&init_user_ns, globalreal));
90813 + if (user == NULL)
90814 + goto skipit;
90815 +
90816 + if (gr_process_kernel_setuid_ban(user)) {
90817 + /* for find_user */
90818 + free_uid(user);
90819 + return 1;
90820 + }
90821 +
90822 + /* for find_user */
90823 + free_uid(user);
90824 +
90825 +skipit:
90826 +#endif
90827 +
90828 + if (unlikely(!(gr_status & GR_READY)))
90829 + return 0;
90830 +
90831 + if (current->acl->mode & (GR_LEARN | GR_INHERITLEARN))
90832 + gr_log_learn_uid_change(real, effective, fs);
90833 +
90834 + num = current->acl->user_trans_num;
90835 + uidlist = current->acl->user_transitions;
90836 +
90837 + if (uidlist == NULL)
90838 + return 0;
90839 +
90840 + if (!uid_valid(real)) {
90841 + realok = 1;
90842 + globalreal = (uid_t)-1;
90843 + } else {
90844 + globalreal = GR_GLOBAL_UID(real);
90845 + }
90846 + if (!uid_valid(effective)) {
90847 + effectiveok = 1;
90848 + globaleffective = (uid_t)-1;
90849 + } else {
90850 + globaleffective = GR_GLOBAL_UID(effective);
90851 + }
90852 + if (!uid_valid(fs)) {
90853 + fsok = 1;
90854 + globalfs = (uid_t)-1;
90855 + } else {
90856 + globalfs = GR_GLOBAL_UID(fs);
90857 + }
90858 +
90859 + if (current->acl->user_trans_type & GR_ID_ALLOW) {
90860 + for (i = 0; i < num; i++) {
90861 + curuid = uidlist[i];
90862 + if (globalreal == curuid)
90863 + realok = 1;
90864 + if (globaleffective == curuid)
90865 + effectiveok = 1;
90866 + if (globalfs == curuid)
90867 + fsok = 1;
90868 + }
90869 + } else if (current->acl->user_trans_type & GR_ID_DENY) {
90870 + for (i = 0; i < num; i++) {
90871 + curuid = uidlist[i];
90872 + if (globalreal == curuid)
90873 + break;
90874 + if (globaleffective == curuid)
90875 + break;
90876 + if (globalfs == curuid)
90877 + break;
90878 + }
90879 + /* not in deny list */
90880 + if (i == num) {
90881 + realok = 1;
90882 + effectiveok = 1;
90883 + fsok = 1;
90884 + }
90885 + }
90886 +
90887 + if (realok && effectiveok && fsok)
90888 + return 0;
90889 + else {
90890 + gr_log_int(GR_DONT_AUDIT, GR_USRCHANGE_ACL_MSG, realok ? (effectiveok ? (fsok ? 0 : globalfs) : globaleffective) : globalreal);
90891 + return 1;
90892 + }
90893 +}
90894 +
90895 +int
90896 +gr_check_group_change(kgid_t real, kgid_t effective, kgid_t fs)
90897 +{
90898 + unsigned int i;
90899 + __u16 num;
90900 + gid_t *gidlist;
90901 + gid_t curgid;
90902 + int realok = 0;
90903 + int effectiveok = 0;
90904 + int fsok = 0;
90905 + gid_t globalreal, globaleffective, globalfs;
90906 +
90907 + if (unlikely(!(gr_status & GR_READY)))
90908 + return 0;
90909 +
90910 + if (current->acl->mode & (GR_LEARN | GR_INHERITLEARN))
90911 + gr_log_learn_gid_change(real, effective, fs);
90912 +
90913 + num = current->acl->group_trans_num;
90914 + gidlist = current->acl->group_transitions;
90915 +
90916 + if (gidlist == NULL)
90917 + return 0;
90918 +
90919 + if (!gid_valid(real)) {
90920 + realok = 1;
90921 + globalreal = (gid_t)-1;
90922 + } else {
90923 + globalreal = GR_GLOBAL_GID(real);
90924 + }
90925 + if (!gid_valid(effective)) {
90926 + effectiveok = 1;
90927 + globaleffective = (gid_t)-1;
90928 + } else {
90929 + globaleffective = GR_GLOBAL_GID(effective);
90930 + }
90931 + if (!gid_valid(fs)) {
90932 + fsok = 1;
90933 + globalfs = (gid_t)-1;
90934 + } else {
90935 + globalfs = GR_GLOBAL_GID(fs);
90936 + }
90937 +
90938 + if (current->acl->group_trans_type & GR_ID_ALLOW) {
90939 + for (i = 0; i < num; i++) {
90940 + curgid = gidlist[i];
90941 + if (globalreal == curgid)
90942 + realok = 1;
90943 + if (globaleffective == curgid)
90944 + effectiveok = 1;
90945 + if (globalfs == curgid)
90946 + fsok = 1;
90947 + }
90948 + } else if (current->acl->group_trans_type & GR_ID_DENY) {
90949 + for (i = 0; i < num; i++) {
90950 + curgid = gidlist[i];
90951 + if (globalreal == curgid)
90952 + break;
90953 + if (globaleffective == curgid)
90954 + break;
90955 + if (globalfs == curgid)
90956 + break;
90957 + }
90958 + /* not in deny list */
90959 + if (i == num) {
90960 + realok = 1;
90961 + effectiveok = 1;
90962 + fsok = 1;
90963 + }
90964 + }
90965 +
90966 + if (realok && effectiveok && fsok)
90967 + return 0;
90968 + else {
90969 + gr_log_int(GR_DONT_AUDIT, GR_GRPCHANGE_ACL_MSG, realok ? (effectiveok ? (fsok ? 0 : globalfs) : globaleffective) : globalreal);
90970 + return 1;
90971 + }
90972 +}
90973 +
90974 +extern int gr_acl_is_capable(const int cap);
90975 +
90976 +void
90977 +gr_set_role_label(struct task_struct *task, const kuid_t kuid, const kgid_t kgid)
90978 +{
90979 + struct acl_role_label *role = task->role;
90980 + struct acl_role_label *origrole = role;
90981 + struct acl_subject_label *subj = NULL;
90982 + struct acl_object_label *obj;
90983 + struct file *filp;
90984 + uid_t uid;
90985 + gid_t gid;
90986 +
90987 + if (unlikely(!(gr_status & GR_READY)))
90988 + return;
90989 +
90990 + uid = GR_GLOBAL_UID(kuid);
90991 + gid = GR_GLOBAL_GID(kgid);
90992 +
90993 + filp = task->exec_file;
90994 +
90995 + /* kernel process, we'll give them the kernel role */
90996 + if (unlikely(!filp)) {
90997 + task->role = running_polstate.kernel_role;
90998 + task->acl = running_polstate.kernel_role->root_label;
90999 + return;
91000 + } else if (!task->role || !(task->role->roletype & GR_ROLE_SPECIAL)) {
91001 + /* save the current ip at time of role lookup so that the proper
91002 + IP will be learned for role_allowed_ip */
91003 + task->signal->saved_ip = task->signal->curr_ip;
91004 + role = lookup_acl_role_label(task, uid, gid);
91005 + }
91006 +
91007 + /* don't change the role if we're not a privileged process */
91008 + if (role && task->role != role &&
91009 + (((role->roletype & GR_ROLE_USER) && !gr_acl_is_capable(CAP_SETUID)) ||
91010 + ((role->roletype & GR_ROLE_GROUP) && !gr_acl_is_capable(CAP_SETGID))))
91011 + return;
91012 +
91013 + task->role = role;
91014 +
91015 + if (task->inherited) {
91016 + /* if we reached our subject through inheritance, then first see
91017 + if there's a subject of the same name in the new role that has
91018 + an object that would result in the same inherited subject
91019 + */
91020 + subj = gr_get_subject_for_task(task, task->acl->filename, 0);
91021 + if (subj) {
91022 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, subj);
91023 + if (!(obj->mode & GR_INHERIT))
91024 + subj = NULL;
91025 + }
91026 +
91027 + }
91028 + if (subj == NULL) {
91029 + /* otherwise:
91030 + perform subject lookup in possibly new role
91031 + we can use this result below in the case where role == task->role
91032 + */
91033 + subj = chk_subj_label(filp->f_path.dentry, filp->f_path.mnt, role);
91034 + }
91035 +
91036 + /* if we changed uid/gid, but result in the same role
91037 + and are using inheritance, don't lose the inherited subject
91038 + if current subject is other than what normal lookup
91039 + would result in, we arrived via inheritance, don't
91040 + lose subject
91041 + */
91042 + if (role != origrole || (!(task->acl->mode & GR_INHERITLEARN) &&
91043 + (subj == task->acl)))
91044 + task->acl = subj;
91045 +
91046 + /* leave task->inherited unaffected */
91047 +
91048 + task->is_writable = 0;
91049 +
91050 + /* ignore additional mmap checks for processes that are writable
91051 + by the default ACL */
91052 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, running_polstate.default_role->root_label);
91053 + if (unlikely(obj->mode & GR_WRITE))
91054 + task->is_writable = 1;
91055 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, task->role->root_label);
91056 + if (unlikely(obj->mode & GR_WRITE))
91057 + task->is_writable = 1;
91058 +
91059 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
91060 + 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);
91061 +#endif
91062 +
91063 + gr_set_proc_res(task);
91064 +
91065 + return;
91066 +}
91067 +
91068 +int
91069 +gr_set_proc_label(const struct dentry *dentry, const struct vfsmount *mnt,
91070 + const int unsafe_flags)
91071 +{
91072 + struct task_struct *task = current;
91073 + struct acl_subject_label *newacl;
91074 + struct acl_object_label *obj;
91075 + __u32 retmode;
91076 +
91077 + if (unlikely(!(gr_status & GR_READY)))
91078 + return 0;
91079 +
91080 + newacl = chk_subj_label(dentry, mnt, task->role);
91081 +
91082 + /* special handling for if we did an strace -f -p <pid> from an admin role, where pid then
91083 + did an exec
91084 + */
91085 + rcu_read_lock();
91086 + read_lock(&tasklist_lock);
91087 + if (task->ptrace && task->parent && ((task->parent->role->roletype & GR_ROLE_GOD) ||
91088 + (task->parent->acl->mode & GR_POVERRIDE))) {
91089 + read_unlock(&tasklist_lock);
91090 + rcu_read_unlock();
91091 + goto skip_check;
91092 + }
91093 + read_unlock(&tasklist_lock);
91094 + rcu_read_unlock();
91095 +
91096 + if (unsafe_flags && !(task->acl->mode & GR_POVERRIDE) && (task->acl != newacl) &&
91097 + !(task->role->roletype & GR_ROLE_GOD) &&
91098 + !gr_search_file(dentry, GR_PTRACERD, mnt) &&
91099 + !(task->acl->mode & (GR_LEARN | GR_INHERITLEARN))) {
91100 + if (unsafe_flags & LSM_UNSAFE_SHARE)
91101 + gr_log_fs_generic(GR_DONT_AUDIT, GR_UNSAFESHARE_EXEC_ACL_MSG, dentry, mnt);
91102 + else
91103 + gr_log_fs_generic(GR_DONT_AUDIT, GR_PTRACE_EXEC_ACL_MSG, dentry, mnt);
91104 + return -EACCES;
91105 + }
91106 +
91107 +skip_check:
91108 +
91109 + obj = chk_obj_label(dentry, mnt, task->acl);
91110 + retmode = obj->mode & (GR_INHERIT | GR_AUDIT_INHERIT);
91111 +
91112 + if (!(task->acl->mode & GR_INHERITLEARN) &&
91113 + ((newacl->mode & GR_LEARN) || !(retmode & GR_INHERIT))) {
91114 + if (obj->nested)
91115 + task->acl = obj->nested;
91116 + else
91117 + task->acl = newacl;
91118 + task->inherited = 0;
91119 + } else {
91120 + task->inherited = 1;
91121 + if (retmode & GR_INHERIT && retmode & GR_AUDIT_INHERIT)
91122 + gr_log_str_fs(GR_DO_AUDIT, GR_INHERIT_ACL_MSG, task->acl->filename, dentry, mnt);
91123 + }
91124 +
91125 + task->is_writable = 0;
91126 +
91127 + /* ignore additional mmap checks for processes that are writable
91128 + by the default ACL */
91129 + obj = chk_obj_label(dentry, mnt, running_polstate.default_role->root_label);
91130 + if (unlikely(obj->mode & GR_WRITE))
91131 + task->is_writable = 1;
91132 + obj = chk_obj_label(dentry, mnt, task->role->root_label);
91133 + if (unlikely(obj->mode & GR_WRITE))
91134 + task->is_writable = 1;
91135 +
91136 + gr_set_proc_res(task);
91137 +
91138 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
91139 + 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);
91140 +#endif
91141 + return 0;
91142 +}
91143 +
91144 +/* always called with valid inodev ptr */
91145 +static void
91146 +do_handle_delete(struct inodev_entry *inodev, const u64 ino, const dev_t dev)
91147 +{
91148 + struct acl_object_label *matchpo;
91149 + struct acl_subject_label *matchps;
91150 + struct acl_subject_label *subj;
91151 + struct acl_role_label *role;
91152 + unsigned int x;
91153 +
91154 + FOR_EACH_ROLE_START(role)
91155 + FOR_EACH_SUBJECT_START(role, subj, x)
91156 + if ((matchpo = lookup_acl_obj_label(ino, dev, subj)) != NULL)
91157 + matchpo->mode |= GR_DELETED;
91158 + FOR_EACH_SUBJECT_END(subj,x)
91159 + FOR_EACH_NESTED_SUBJECT_START(role, subj)
91160 + /* nested subjects aren't in the role's subj_hash table */
91161 + if ((matchpo = lookup_acl_obj_label(ino, dev, subj)) != NULL)
91162 + matchpo->mode |= GR_DELETED;
91163 + FOR_EACH_NESTED_SUBJECT_END(subj)
91164 + if ((matchps = lookup_acl_subj_label(ino, dev, role)) != NULL)
91165 + matchps->mode |= GR_DELETED;
91166 + FOR_EACH_ROLE_END(role)
91167 +
91168 + inodev->nentry->deleted = 1;
91169 +
91170 + return;
91171 +}
91172 +
91173 +void
91174 +gr_handle_delete(const u64 ino, const dev_t dev)
91175 +{
91176 + struct inodev_entry *inodev;
91177 +
91178 + if (unlikely(!(gr_status & GR_READY)))
91179 + return;
91180 +
91181 + write_lock(&gr_inode_lock);
91182 + inodev = lookup_inodev_entry(ino, dev);
91183 + if (inodev != NULL)
91184 + do_handle_delete(inodev, ino, dev);
91185 + write_unlock(&gr_inode_lock);
91186 +
91187 + return;
91188 +}
91189 +
91190 +static void
91191 +update_acl_obj_label(const u64 oldinode, const dev_t olddevice,
91192 + const u64 newinode, const dev_t newdevice,
91193 + struct acl_subject_label *subj)
91194 +{
91195 + unsigned int index = gr_fhash(oldinode, olddevice, subj->obj_hash_size);
91196 + struct acl_object_label *match;
91197 +
91198 + match = subj->obj_hash[index];
91199 +
91200 + while (match && (match->inode != oldinode ||
91201 + match->device != olddevice ||
91202 + !(match->mode & GR_DELETED)))
91203 + match = match->next;
91204 +
91205 + if (match && (match->inode == oldinode)
91206 + && (match->device == olddevice)
91207 + && (match->mode & GR_DELETED)) {
91208 + if (match->prev == NULL) {
91209 + subj->obj_hash[index] = match->next;
91210 + if (match->next != NULL)
91211 + match->next->prev = NULL;
91212 + } else {
91213 + match->prev->next = match->next;
91214 + if (match->next != NULL)
91215 + match->next->prev = match->prev;
91216 + }
91217 + match->prev = NULL;
91218 + match->next = NULL;
91219 + match->inode = newinode;
91220 + match->device = newdevice;
91221 + match->mode &= ~GR_DELETED;
91222 +
91223 + insert_acl_obj_label(match, subj);
91224 + }
91225 +
91226 + return;
91227 +}
91228 +
91229 +static void
91230 +update_acl_subj_label(const u64 oldinode, const dev_t olddevice,
91231 + const u64 newinode, const dev_t newdevice,
91232 + struct acl_role_label *role)
91233 +{
91234 + unsigned int index = gr_fhash(oldinode, olddevice, role->subj_hash_size);
91235 + struct acl_subject_label *match;
91236 +
91237 + match = role->subj_hash[index];
91238 +
91239 + while (match && (match->inode != oldinode ||
91240 + match->device != olddevice ||
91241 + !(match->mode & GR_DELETED)))
91242 + match = match->next;
91243 +
91244 + if (match && (match->inode == oldinode)
91245 + && (match->device == olddevice)
91246 + && (match->mode & GR_DELETED)) {
91247 + if (match->prev == NULL) {
91248 + role->subj_hash[index] = match->next;
91249 + if (match->next != NULL)
91250 + match->next->prev = NULL;
91251 + } else {
91252 + match->prev->next = match->next;
91253 + if (match->next != NULL)
91254 + match->next->prev = match->prev;
91255 + }
91256 + match->prev = NULL;
91257 + match->next = NULL;
91258 + match->inode = newinode;
91259 + match->device = newdevice;
91260 + match->mode &= ~GR_DELETED;
91261 +
91262 + insert_acl_subj_label(match, role);
91263 + }
91264 +
91265 + return;
91266 +}
91267 +
91268 +static void
91269 +update_inodev_entry(const u64 oldinode, const dev_t olddevice,
91270 + const u64 newinode, const dev_t newdevice)
91271 +{
91272 + unsigned int index = gr_fhash(oldinode, olddevice, running_polstate.inodev_set.i_size);
91273 + struct inodev_entry *match;
91274 +
91275 + match = running_polstate.inodev_set.i_hash[index];
91276 +
91277 + while (match && (match->nentry->inode != oldinode ||
91278 + match->nentry->device != olddevice || !match->nentry->deleted))
91279 + match = match->next;
91280 +
91281 + if (match && (match->nentry->inode == oldinode)
91282 + && (match->nentry->device == olddevice) &&
91283 + match->nentry->deleted) {
91284 + if (match->prev == NULL) {
91285 + running_polstate.inodev_set.i_hash[index] = match->next;
91286 + if (match->next != NULL)
91287 + match->next->prev = NULL;
91288 + } else {
91289 + match->prev->next = match->next;
91290 + if (match->next != NULL)
91291 + match->next->prev = match->prev;
91292 + }
91293 + match->prev = NULL;
91294 + match->next = NULL;
91295 + match->nentry->inode = newinode;
91296 + match->nentry->device = newdevice;
91297 + match->nentry->deleted = 0;
91298 +
91299 + insert_inodev_entry(match);
91300 + }
91301 +
91302 + return;
91303 +}
91304 +
91305 +static void
91306 +__do_handle_create(const struct name_entry *matchn, u64 ino, dev_t dev)
91307 +{
91308 + struct acl_subject_label *subj;
91309 + struct acl_role_label *role;
91310 + unsigned int x;
91311 +
91312 + FOR_EACH_ROLE_START(role)
91313 + update_acl_subj_label(matchn->inode, matchn->device, ino, dev, role);
91314 +
91315 + FOR_EACH_NESTED_SUBJECT_START(role, subj)
91316 + if ((subj->inode == ino) && (subj->device == dev)) {
91317 + subj->inode = ino;
91318 + subj->device = dev;
91319 + }
91320 + /* nested subjects aren't in the role's subj_hash table */
91321 + update_acl_obj_label(matchn->inode, matchn->device,
91322 + ino, dev, subj);
91323 + FOR_EACH_NESTED_SUBJECT_END(subj)
91324 + FOR_EACH_SUBJECT_START(role, subj, x)
91325 + update_acl_obj_label(matchn->inode, matchn->device,
91326 + ino, dev, subj);
91327 + FOR_EACH_SUBJECT_END(subj,x)
91328 + FOR_EACH_ROLE_END(role)
91329 +
91330 + update_inodev_entry(matchn->inode, matchn->device, ino, dev);
91331 +
91332 + return;
91333 +}
91334 +
91335 +static void
91336 +do_handle_create(const struct name_entry *matchn, const struct dentry *dentry,
91337 + const struct vfsmount *mnt)
91338 +{
91339 + u64 ino = __get_ino(dentry);
91340 + dev_t dev = __get_dev(dentry);
91341 +
91342 + __do_handle_create(matchn, ino, dev);
91343 +
91344 + return;
91345 +}
91346 +
91347 +void
91348 +gr_handle_create(const struct dentry *dentry, const struct vfsmount *mnt)
91349 +{
91350 + struct name_entry *matchn;
91351 +
91352 + if (unlikely(!(gr_status & GR_READY)))
91353 + return;
91354 +
91355 + preempt_disable();
91356 + matchn = lookup_name_entry(gr_to_filename_rbac(dentry, mnt));
91357 +
91358 + if (unlikely((unsigned long)matchn)) {
91359 + write_lock(&gr_inode_lock);
91360 + do_handle_create(matchn, dentry, mnt);
91361 + write_unlock(&gr_inode_lock);
91362 + }
91363 + preempt_enable();
91364 +
91365 + return;
91366 +}
91367 +
91368 +void
91369 +gr_handle_proc_create(const struct dentry *dentry, const struct inode *inode)
91370 +{
91371 + struct name_entry *matchn;
91372 +
91373 + if (unlikely(!(gr_status & GR_READY)))
91374 + return;
91375 +
91376 + preempt_disable();
91377 + matchn = lookup_name_entry(gr_to_proc_filename_rbac(dentry, init_pid_ns.proc_mnt));
91378 +
91379 + if (unlikely((unsigned long)matchn)) {
91380 + write_lock(&gr_inode_lock);
91381 + __do_handle_create(matchn, inode->i_ino, inode->i_sb->s_dev);
91382 + write_unlock(&gr_inode_lock);
91383 + }
91384 + preempt_enable();
91385 +
91386 + return;
91387 +}
91388 +
91389 +void
91390 +gr_handle_rename(struct inode *old_dir, struct inode *new_dir,
91391 + struct dentry *old_dentry,
91392 + struct dentry *new_dentry,
91393 + struct vfsmount *mnt, const __u8 replace, unsigned int flags)
91394 +{
91395 + struct name_entry *matchn;
91396 + struct name_entry *matchn2 = NULL;
91397 + struct inodev_entry *inodev;
91398 + struct inode *inode = d_backing_inode(new_dentry);
91399 + struct inode *old_inode = d_backing_inode(old_dentry);
91400 + u64 old_ino = __get_ino(old_dentry);
91401 + dev_t old_dev = __get_dev(old_dentry);
91402 + unsigned int exchange = flags & RENAME_EXCHANGE;
91403 +
91404 + /* vfs_rename swaps the name and parent link for old_dentry and
91405 + new_dentry
91406 + at this point, old_dentry has the new name, parent link, and inode
91407 + for the renamed file
91408 + if a file is being replaced by a rename, new_dentry has the inode
91409 + and name for the replaced file
91410 + */
91411 +
91412 + if (unlikely(!(gr_status & GR_READY)))
91413 + return;
91414 +
91415 + preempt_disable();
91416 + matchn = lookup_name_entry(gr_to_filename_rbac(old_dentry, mnt));
91417 +
91418 + /* exchange cases:
91419 + a filename exists for the source, but not dest
91420 + do a recreate on source
91421 + a filename exists for the dest, but not source
91422 + do a recreate on dest
91423 + a filename exists for both source and dest
91424 + delete source and dest, then create source and dest
91425 + a filename exists for neither source nor dest
91426 + no updates needed
91427 +
91428 + the name entry lookups get us the old inode/dev associated with
91429 + each name, so do the deletes first (if possible) so that when
91430 + we do the create, we pick up on the right entries
91431 + */
91432 +
91433 + if (exchange)
91434 + matchn2 = lookup_name_entry(gr_to_filename_rbac(new_dentry, mnt));
91435 +
91436 + /* we wouldn't have to check d_inode if it weren't for
91437 + NFS silly-renaming
91438 + */
91439 +
91440 + write_lock(&gr_inode_lock);
91441 + if (unlikely((replace || exchange) && inode)) {
91442 + u64 new_ino = __get_ino(new_dentry);
91443 + dev_t new_dev = __get_dev(new_dentry);
91444 +
91445 + inodev = lookup_inodev_entry(new_ino, new_dev);
91446 + if (inodev != NULL && ((inode->i_nlink <= 1) || d_is_dir(new_dentry)))
91447 + do_handle_delete(inodev, new_ino, new_dev);
91448 + }
91449 +
91450 + inodev = lookup_inodev_entry(old_ino, old_dev);
91451 + if (inodev != NULL && ((old_inode->i_nlink <= 1) || d_is_dir(old_dentry)))
91452 + do_handle_delete(inodev, old_ino, old_dev);
91453 +
91454 + if (unlikely(matchn != NULL))
91455 + do_handle_create(matchn, old_dentry, mnt);
91456 +
91457 + if (unlikely(matchn2 != NULL))
91458 + do_handle_create(matchn2, new_dentry, mnt);
91459 +
91460 + write_unlock(&gr_inode_lock);
91461 + preempt_enable();
91462 +
91463 + return;
91464 +}
91465 +
91466 +#if defined(CONFIG_GRKERNSEC_RESLOG) || !defined(CONFIG_GRKERNSEC_NO_RBAC)
91467 +static const unsigned long res_learn_bumps[GR_NLIMITS] = {
91468 + [RLIMIT_CPU] = GR_RLIM_CPU_BUMP,
91469 + [RLIMIT_FSIZE] = GR_RLIM_FSIZE_BUMP,
91470 + [RLIMIT_DATA] = GR_RLIM_DATA_BUMP,
91471 + [RLIMIT_STACK] = GR_RLIM_STACK_BUMP,
91472 + [RLIMIT_CORE] = GR_RLIM_CORE_BUMP,
91473 + [RLIMIT_RSS] = GR_RLIM_RSS_BUMP,
91474 + [RLIMIT_NPROC] = GR_RLIM_NPROC_BUMP,
91475 + [RLIMIT_NOFILE] = GR_RLIM_NOFILE_BUMP,
91476 + [RLIMIT_MEMLOCK] = GR_RLIM_MEMLOCK_BUMP,
91477 + [RLIMIT_AS] = GR_RLIM_AS_BUMP,
91478 + [RLIMIT_LOCKS] = GR_RLIM_LOCKS_BUMP,
91479 + [RLIMIT_SIGPENDING] = GR_RLIM_SIGPENDING_BUMP,
91480 + [RLIMIT_MSGQUEUE] = GR_RLIM_MSGQUEUE_BUMP,
91481 + [RLIMIT_NICE] = GR_RLIM_NICE_BUMP,
91482 + [RLIMIT_RTPRIO] = GR_RLIM_RTPRIO_BUMP,
91483 + [RLIMIT_RTTIME] = GR_RLIM_RTTIME_BUMP
91484 +};
91485 +
91486 +void
91487 +gr_learn_resource(const struct task_struct *task,
91488 + const int res, const unsigned long wanted, const int gt)
91489 +{
91490 + struct acl_subject_label *acl;
91491 + const struct cred *cred;
91492 +
91493 + if (unlikely((gr_status & GR_READY) &&
91494 + task->acl && (task->acl->mode & (GR_LEARN | GR_INHERITLEARN))))
91495 + goto skip_reslog;
91496 +
91497 + gr_log_resource(task, res, wanted, gt);
91498 +skip_reslog:
91499 +
91500 + if (unlikely(!(gr_status & GR_READY) || !wanted || res >= GR_NLIMITS))
91501 + return;
91502 +
91503 + acl = task->acl;
91504 +
91505 + if (likely(!acl || !(acl->mode & (GR_LEARN | GR_INHERITLEARN)) ||
91506 + !(acl->resmask & (1U << (unsigned short) res))))
91507 + return;
91508 +
91509 + if (wanted >= acl->res[res].rlim_cur) {
91510 + unsigned long res_add;
91511 +
91512 + res_add = wanted + res_learn_bumps[res];
91513 +
91514 + acl->res[res].rlim_cur = res_add;
91515 +
91516 + if (wanted > acl->res[res].rlim_max)
91517 + acl->res[res].rlim_max = res_add;
91518 +
91519 + /* only log the subject filename, since resource logging is supported for
91520 + single-subject learning only */
91521 + rcu_read_lock();
91522 + cred = __task_cred(task);
91523 + security_learn(GR_LEARN_AUDIT_MSG, task->role->rolename,
91524 + task->role->roletype, GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid), acl->filename,
91525 + acl->filename, acl->res[res].rlim_cur, acl->res[res].rlim_max,
91526 + "", (unsigned long) res, &task->signal->saved_ip);
91527 + rcu_read_unlock();
91528 + }
91529 +
91530 + return;
91531 +}
91532 +EXPORT_SYMBOL_GPL(gr_learn_resource);
91533 +#endif
91534 +
91535 +#if defined(CONFIG_PAX_HAVE_ACL_FLAGS) && (defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR))
91536 +void
91537 +pax_set_initial_flags(struct linux_binprm *bprm)
91538 +{
91539 + struct task_struct *task = current;
91540 + struct acl_subject_label *proc;
91541 + unsigned long flags;
91542 +
91543 + if (unlikely(!(gr_status & GR_READY)))
91544 + return;
91545 +
91546 + flags = pax_get_flags(task);
91547 +
91548 + proc = task->acl;
91549 +
91550 + if (proc->pax_flags & GR_PAX_DISABLE_PAGEEXEC)
91551 + flags &= ~MF_PAX_PAGEEXEC;
91552 + if (proc->pax_flags & GR_PAX_DISABLE_SEGMEXEC)
91553 + flags &= ~MF_PAX_SEGMEXEC;
91554 + if (proc->pax_flags & GR_PAX_DISABLE_RANDMMAP)
91555 + flags &= ~MF_PAX_RANDMMAP;
91556 + if (proc->pax_flags & GR_PAX_DISABLE_EMUTRAMP)
91557 + flags &= ~MF_PAX_EMUTRAMP;
91558 + if (proc->pax_flags & GR_PAX_DISABLE_MPROTECT)
91559 + flags &= ~MF_PAX_MPROTECT;
91560 +
91561 + if (proc->pax_flags & GR_PAX_ENABLE_PAGEEXEC)
91562 + flags |= MF_PAX_PAGEEXEC;
91563 + if (proc->pax_flags & GR_PAX_ENABLE_SEGMEXEC)
91564 + flags |= MF_PAX_SEGMEXEC;
91565 + if (proc->pax_flags & GR_PAX_ENABLE_RANDMMAP)
91566 + flags |= MF_PAX_RANDMMAP;
91567 + if (proc->pax_flags & GR_PAX_ENABLE_EMUTRAMP)
91568 + flags |= MF_PAX_EMUTRAMP;
91569 + if (proc->pax_flags & GR_PAX_ENABLE_MPROTECT)
91570 + flags |= MF_PAX_MPROTECT;
91571 +
91572 + pax_set_flags(task, flags);
91573 +
91574 + return;
91575 +}
91576 +#endif
91577 +
91578 +int
91579 +gr_handle_proc_ptrace(struct task_struct *task)
91580 +{
91581 + struct file *filp;
91582 + struct task_struct *tmp = task;
91583 + struct task_struct *curtemp = current;
91584 + __u32 retmode;
91585 +
91586 +#ifndef CONFIG_GRKERNSEC_HARDEN_PTRACE
91587 + if (unlikely(!(gr_status & GR_READY)))
91588 + return 0;
91589 +#endif
91590 +
91591 + read_lock(&tasklist_lock);
91592 + read_lock(&grsec_exec_file_lock);
91593 + filp = task->exec_file;
91594 +
91595 + while (task_pid_nr(tmp) > 0) {
91596 + if (tmp == curtemp)
91597 + break;
91598 + tmp = tmp->real_parent;
91599 + }
91600 +
91601 + if (!filp || (task_pid_nr(tmp) == 0 && ((grsec_enable_harden_ptrace && gr_is_global_nonroot(current_uid()) && !(gr_status & GR_READY)) ||
91602 + ((gr_status & GR_READY) && !(current->acl->mode & GR_RELAXPTRACE))))) {
91603 + read_unlock(&grsec_exec_file_lock);
91604 + read_unlock(&tasklist_lock);
91605 + return 1;
91606 + }
91607 +
91608 +#ifdef CONFIG_GRKERNSEC_HARDEN_PTRACE
91609 + if (!(gr_status & GR_READY)) {
91610 + read_unlock(&grsec_exec_file_lock);
91611 + read_unlock(&tasklist_lock);
91612 + return 0;
91613 + }
91614 +#endif
91615 +
91616 + retmode = gr_search_file(filp->f_path.dentry, GR_NOPTRACE, filp->f_path.mnt);
91617 + read_unlock(&grsec_exec_file_lock);
91618 + read_unlock(&tasklist_lock);
91619 +
91620 + if (retmode & GR_NOPTRACE)
91621 + return 1;
91622 +
91623 + if (!(current->acl->mode & GR_POVERRIDE) && !(current->role->roletype & GR_ROLE_GOD)
91624 + && (current->acl != task->acl || (current->acl != current->role->root_label
91625 + && task_pid_nr(current) != task_pid_nr(task))))
91626 + return 1;
91627 +
91628 + return 0;
91629 +}
91630 +
91631 +void task_grsec_rbac(struct seq_file *m, struct task_struct *p)
91632 +{
91633 + if (unlikely(!(gr_status & GR_READY)))
91634 + return;
91635 +
91636 + if (!(current->role->roletype & GR_ROLE_GOD))
91637 + return;
91638 +
91639 + seq_printf(m, "RBAC:\t%.64s:%c:%.950s\n",
91640 + p->role->rolename, gr_task_roletype_to_char(p),
91641 + p->acl->filename);
91642 +}
91643 +
91644 +int
91645 +gr_handle_ptrace(struct task_struct *task, const long request)
91646 +{
91647 + struct task_struct *tmp = task;
91648 + struct task_struct *curtemp = current;
91649 + __u32 retmode;
91650 +
91651 +#ifndef CONFIG_GRKERNSEC_HARDEN_PTRACE
91652 + if (unlikely(!(gr_status & GR_READY)))
91653 + return 0;
91654 +#endif
91655 + if (request == PTRACE_ATTACH || request == PTRACE_SEIZE) {
91656 + read_lock(&tasklist_lock);
91657 + while (task_pid_nr(tmp) > 0) {
91658 + if (tmp == curtemp)
91659 + break;
91660 + tmp = tmp->real_parent;
91661 + }
91662 +
91663 + if (task_pid_nr(tmp) == 0 && ((grsec_enable_harden_ptrace && gr_is_global_nonroot(current_uid()) && !(gr_status & GR_READY)) ||
91664 + ((gr_status & GR_READY) && !(current->acl->mode & GR_RELAXPTRACE)))) {
91665 + read_unlock(&tasklist_lock);
91666 + gr_log_ptrace(GR_DONT_AUDIT, GR_PTRACE_ACL_MSG, task);
91667 + return 1;
91668 + }
91669 + read_unlock(&tasklist_lock);
91670 + }
91671 +
91672 +#ifdef CONFIG_GRKERNSEC_HARDEN_PTRACE
91673 + if (!(gr_status & GR_READY))
91674 + return 0;
91675 +#endif
91676 +
91677 + read_lock(&grsec_exec_file_lock);
91678 + if (unlikely(!task->exec_file)) {
91679 + read_unlock(&grsec_exec_file_lock);
91680 + return 0;
91681 + }
91682 +
91683 + retmode = gr_search_file(task->exec_file->f_path.dentry, GR_PTRACERD | GR_NOPTRACE, task->exec_file->f_path.mnt);
91684 + read_unlock(&grsec_exec_file_lock);
91685 +
91686 + if (retmode & GR_NOPTRACE) {
91687 + gr_log_ptrace(GR_DONT_AUDIT, GR_PTRACE_ACL_MSG, task);
91688 + return 1;
91689 + }
91690 +
91691 + if (retmode & GR_PTRACERD) {
91692 + switch (request) {
91693 + case PTRACE_SEIZE:
91694 + case PTRACE_POKETEXT:
91695 + case PTRACE_POKEDATA:
91696 + case PTRACE_POKEUSR:
91697 +#if !defined(CONFIG_PPC32) && !defined(CONFIG_PPC64) && !defined(CONFIG_PARISC) && !defined(CONFIG_ALPHA) && !defined(CONFIG_IA64)
91698 + case PTRACE_SETREGS:
91699 + case PTRACE_SETFPREGS:
91700 +#endif
91701 +#ifdef CONFIG_X86
91702 + case PTRACE_SETFPXREGS:
91703 +#endif
91704 +#ifdef CONFIG_ALTIVEC
91705 + case PTRACE_SETVRREGS:
91706 +#endif
91707 + return 1;
91708 + default:
91709 + return 0;
91710 + }
91711 + } else if (!(current->acl->mode & GR_POVERRIDE) &&
91712 + !(current->role->roletype & GR_ROLE_GOD) &&
91713 + (current->acl != task->acl)) {
91714 + gr_log_ptrace(GR_DONT_AUDIT, GR_PTRACE_ACL_MSG, task);
91715 + return 1;
91716 + }
91717 +
91718 + return 0;
91719 +}
91720 +
91721 +static int is_writable_mmap(const struct file *filp)
91722 +{
91723 + struct task_struct *task = current;
91724 + struct acl_object_label *obj, *obj2;
91725 + struct dentry *dentry = filp->f_path.dentry;
91726 + struct vfsmount *mnt = filp->f_path.mnt;
91727 + struct inode *inode = d_backing_inode(dentry);
91728 +
91729 + if (gr_status & GR_READY && !(task->acl->mode & GR_OVERRIDE) &&
91730 + !task->is_writable && d_is_reg(dentry) && (mnt != shm_mnt || (inode->i_nlink > 0))) {
91731 + obj = chk_obj_label(dentry, mnt, running_polstate.default_role->root_label);
91732 + obj2 = chk_obj_label(dentry, mnt, task->role->root_label);
91733 + if (unlikely((obj->mode & GR_WRITE) || (obj2->mode & GR_WRITE))) {
91734 + gr_log_fs_generic(GR_DONT_AUDIT, GR_WRITLIB_ACL_MSG, dentry, mnt);
91735 + return 1;
91736 + }
91737 + }
91738 + return 0;
91739 +}
91740 +
91741 +int
91742 +gr_acl_handle_mmap(const struct file *file, const unsigned long prot)
91743 +{
91744 + __u32 mode;
91745 +
91746 + if (unlikely(!file || !(prot & PROT_EXEC)))
91747 + return 1;
91748 +
91749 + if (is_writable_mmap(file))
91750 + return 0;
91751 +
91752 + mode =
91753 + gr_search_file(file->f_path.dentry,
91754 + GR_EXEC | GR_AUDIT_EXEC | GR_SUPPRESS,
91755 + file->f_path.mnt);
91756 +
91757 + if (!gr_tpe_allow(file))
91758 + return 0;
91759 +
91760 + if (unlikely(!(mode & GR_EXEC) && !(mode & GR_SUPPRESS))) {
91761 + gr_log_fs_rbac_generic(GR_DONT_AUDIT, GR_MMAP_ACL_MSG, file->f_path.dentry, file->f_path.mnt);
91762 + return 0;
91763 + } else if (unlikely(!(mode & GR_EXEC))) {
91764 + return 0;
91765 + } else if (unlikely(mode & GR_EXEC && mode & GR_AUDIT_EXEC)) {
91766 + gr_log_fs_rbac_generic(GR_DO_AUDIT, GR_MMAP_ACL_MSG, file->f_path.dentry, file->f_path.mnt);
91767 + return 1;
91768 + }
91769 +
91770 + return 1;
91771 +}
91772 +
91773 +int
91774 +gr_acl_handle_mprotect(const struct file *file, const unsigned long prot)
91775 +{
91776 + __u32 mode;
91777 +
91778 + if (unlikely(!file || !(prot & PROT_EXEC)))
91779 + return 1;
91780 +
91781 + if (is_writable_mmap(file))
91782 + return 0;
91783 +
91784 + mode =
91785 + gr_search_file(file->f_path.dentry,
91786 + GR_EXEC | GR_AUDIT_EXEC | GR_SUPPRESS,
91787 + file->f_path.mnt);
91788 +
91789 + if (!gr_tpe_allow(file))
91790 + return 0;
91791 +
91792 + if (unlikely(!(mode & GR_EXEC) && !(mode & GR_SUPPRESS))) {
91793 + gr_log_fs_rbac_generic(GR_DONT_AUDIT, GR_MPROTECT_ACL_MSG, file->f_path.dentry, file->f_path.mnt);
91794 + return 0;
91795 + } else if (unlikely(!(mode & GR_EXEC))) {
91796 + return 0;
91797 + } else if (unlikely(mode & GR_EXEC && mode & GR_AUDIT_EXEC)) {
91798 + gr_log_fs_rbac_generic(GR_DO_AUDIT, GR_MPROTECT_ACL_MSG, file->f_path.dentry, file->f_path.mnt);
91799 + return 1;
91800 + }
91801 +
91802 + return 1;
91803 +}
91804 +
91805 +void
91806 +gr_acl_handle_psacct(struct task_struct *task, const long code)
91807 +{
91808 + unsigned long runtime, cputime;
91809 + cputime_t utime, stime;
91810 + unsigned int wday, cday;
91811 + __u8 whr, chr;
91812 + __u8 wmin, cmin;
91813 + __u8 wsec, csec;
91814 + struct timespec curtime, starttime;
91815 +
91816 + if (unlikely(!(gr_status & GR_READY) || !task->acl ||
91817 + !(task->acl->mode & GR_PROCACCT)))
91818 + return;
91819 +
91820 + curtime = ns_to_timespec(ktime_get_ns());
91821 + starttime = ns_to_timespec(task->start_time);
91822 + runtime = curtime.tv_sec - starttime.tv_sec;
91823 + wday = runtime / (60 * 60 * 24);
91824 + runtime -= wday * (60 * 60 * 24);
91825 + whr = runtime / (60 * 60);
91826 + runtime -= whr * (60 * 60);
91827 + wmin = runtime / 60;
91828 + runtime -= wmin * 60;
91829 + wsec = runtime;
91830 +
91831 + task_cputime(task, &utime, &stime);
91832 + cputime = cputime_to_secs(utime + stime);
91833 + cday = cputime / (60 * 60 * 24);
91834 + cputime -= cday * (60 * 60 * 24);
91835 + chr = cputime / (60 * 60);
91836 + cputime -= chr * (60 * 60);
91837 + cmin = cputime / 60;
91838 + cputime -= cmin * 60;
91839 + csec = cputime;
91840 +
91841 + gr_log_procacct(GR_DO_AUDIT, GR_ACL_PROCACCT_MSG, task, wday, whr, wmin, wsec, cday, chr, cmin, csec, code);
91842 +
91843 + return;
91844 +}
91845 +
91846 +#ifdef CONFIG_TASKSTATS
91847 +int gr_is_taskstats_denied(int pid)
91848 +{
91849 + struct task_struct *task;
91850 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
91851 + const struct cred *cred;
91852 +#endif
91853 + int ret = 0;
91854 +
91855 + /* restrict taskstats viewing to un-chrooted root users
91856 + who have the 'view' subject flag if the RBAC system is enabled
91857 + */
91858 +
91859 + rcu_read_lock();
91860 + read_lock(&tasklist_lock);
91861 + task = find_task_by_vpid(pid);
91862 + if (task) {
91863 +#ifdef CONFIG_GRKERNSEC_CHROOT
91864 + if (proc_is_chrooted(task))
91865 + ret = -EACCES;
91866 +#endif
91867 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
91868 + cred = __task_cred(task);
91869 +#ifdef CONFIG_GRKERNSEC_PROC_USER
91870 + if (gr_is_global_nonroot(cred->uid))
91871 + ret = -EACCES;
91872 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
91873 + if (gr_is_global_nonroot(cred->uid) && !groups_search(cred->group_info, grsec_proc_gid))
91874 + ret = -EACCES;
91875 +#endif
91876 +#endif
91877 + if (gr_status & GR_READY) {
91878 + if (!(task->acl->mode & GR_VIEW))
91879 + ret = -EACCES;
91880 + }
91881 + } else
91882 + ret = -ENOENT;
91883 +
91884 + read_unlock(&tasklist_lock);
91885 + rcu_read_unlock();
91886 +
91887 + return ret;
91888 +}
91889 +#endif
91890 +
91891 +/* AUXV entries are filled via a descendant of search_binary_handler
91892 + after we've already applied the subject for the target
91893 +*/
91894 +int gr_acl_enable_at_secure(void)
91895 +{
91896 + if (unlikely(!(gr_status & GR_READY)))
91897 + return 0;
91898 +
91899 + if (current->acl->mode & GR_ATSECURE)
91900 + return 1;
91901 +
91902 + return 0;
91903 +}
91904 +
91905 +int gr_acl_handle_filldir(const struct file *file, const char *name, const unsigned int namelen, const u64 ino)
91906 +{
91907 + struct task_struct *task = current;
91908 + struct dentry *dentry = file->f_path.dentry;
91909 + struct vfsmount *mnt = file->f_path.mnt;
91910 + struct acl_object_label *obj, *tmp;
91911 + struct acl_subject_label *subj;
91912 + unsigned int bufsize;
91913 + int is_not_root;
91914 + char *path;
91915 + dev_t dev = __get_dev(dentry);
91916 +
91917 + if (unlikely(!(gr_status & GR_READY)))
91918 + return 1;
91919 +
91920 + if (task->acl->mode & (GR_LEARN | GR_INHERITLEARN))
91921 + return 1;
91922 +
91923 + /* ignore Eric Biederman */
91924 + if (IS_PRIVATE(d_backing_inode(dentry)))
91925 + return 1;
91926 +
91927 + subj = task->acl;
91928 + read_lock(&gr_inode_lock);
91929 + do {
91930 + obj = lookup_acl_obj_label(ino, dev, subj);
91931 + if (obj != NULL) {
91932 + read_unlock(&gr_inode_lock);
91933 + return (obj->mode & GR_FIND) ? 1 : 0;
91934 + }
91935 + } while ((subj = subj->parent_subject));
91936 + read_unlock(&gr_inode_lock);
91937 +
91938 + /* this is purely an optimization since we're looking for an object
91939 + for the directory we're doing a readdir on
91940 + if it's possible for any globbed object to match the entry we're
91941 + filling into the directory, then the object we find here will be
91942 + an anchor point with attached globbed objects
91943 + */
91944 + obj = chk_obj_label_noglob(dentry, mnt, task->acl);
91945 + if (obj->globbed == NULL)
91946 + return (obj->mode & GR_FIND) ? 1 : 0;
91947 +
91948 + is_not_root = ((obj->filename[0] == '/') &&
91949 + (obj->filename[1] == '\0')) ? 0 : 1;
91950 + bufsize = PAGE_SIZE - namelen - is_not_root;
91951 +
91952 + /* check bufsize > PAGE_SIZE || bufsize == 0 */
91953 + if (unlikely((bufsize - 1) > (PAGE_SIZE - 1)))
91954 + return 1;
91955 +
91956 + preempt_disable();
91957 + path = d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[0], smp_processor_id()),
91958 + bufsize);
91959 +
91960 + bufsize = strlen(path);
91961 +
91962 + /* if base is "/", don't append an additional slash */
91963 + if (is_not_root)
91964 + *(path + bufsize) = '/';
91965 + memcpy(path + bufsize + is_not_root, name, namelen);
91966 + *(path + bufsize + namelen + is_not_root) = '\0';
91967 +
91968 + tmp = obj->globbed;
91969 + while (tmp) {
91970 + if (!glob_match(tmp->filename, path)) {
91971 + preempt_enable();
91972 + return (tmp->mode & GR_FIND) ? 1 : 0;
91973 + }
91974 + tmp = tmp->next;
91975 + }
91976 + preempt_enable();
91977 + return (obj->mode & GR_FIND) ? 1 : 0;
91978 +}
91979 +
91980 +void gr_put_exec_file(struct task_struct *task)
91981 +{
91982 + struct file *filp;
91983 +
91984 + write_lock(&grsec_exec_file_lock);
91985 + filp = task->exec_file;
91986 + task->exec_file = NULL;
91987 + write_unlock(&grsec_exec_file_lock);
91988 +
91989 + if (filp)
91990 + fput(filp);
91991 +
91992 + return;
91993 +}
91994 +
91995 +
91996 +#ifdef CONFIG_NETFILTER_XT_MATCH_GRADM_MODULE
91997 +EXPORT_SYMBOL_GPL(gr_acl_is_enabled);
91998 +#endif
91999 +#ifdef CONFIG_SECURITY
92000 +EXPORT_SYMBOL_GPL(gr_check_user_change);
92001 +EXPORT_SYMBOL_GPL(gr_check_group_change);
92002 +#endif
92003 +
92004 diff --git a/grsecurity/gracl_alloc.c b/grsecurity/gracl_alloc.c
92005 new file mode 100644
92006 index 0000000..9adc75c
92007 --- /dev/null
92008 +++ b/grsecurity/gracl_alloc.c
92009 @@ -0,0 +1,105 @@
92010 +#include <linux/kernel.h>
92011 +#include <linux/mm.h>
92012 +#include <linux/slab.h>
92013 +#include <linux/vmalloc.h>
92014 +#include <linux/gracl.h>
92015 +#include <linux/grsecurity.h>
92016 +
92017 +static struct gr_alloc_state __current_alloc_state = { 1, 1, NULL };
92018 +struct gr_alloc_state *current_alloc_state = &__current_alloc_state;
92019 +
92020 +static int
92021 +alloc_pop(void)
92022 +{
92023 + if (current_alloc_state->alloc_stack_next == 1)
92024 + return 0;
92025 +
92026 + kfree(current_alloc_state->alloc_stack[current_alloc_state->alloc_stack_next - 2]);
92027 +
92028 + current_alloc_state->alloc_stack_next--;
92029 +
92030 + return 1;
92031 +}
92032 +
92033 +static int
92034 +alloc_push(void *buf)
92035 +{
92036 + if (current_alloc_state->alloc_stack_next >= current_alloc_state->alloc_stack_size)
92037 + return 1;
92038 +
92039 + current_alloc_state->alloc_stack[current_alloc_state->alloc_stack_next - 1] = buf;
92040 +
92041 + current_alloc_state->alloc_stack_next++;
92042 +
92043 + return 0;
92044 +}
92045 +
92046 +void *
92047 +acl_alloc(unsigned long len)
92048 +{
92049 + void *ret = NULL;
92050 +
92051 + if (!len || len > PAGE_SIZE)
92052 + goto out;
92053 +
92054 + ret = kmalloc(len, GFP_KERNEL);
92055 +
92056 + if (ret) {
92057 + if (alloc_push(ret)) {
92058 + kfree(ret);
92059 + ret = NULL;
92060 + }
92061 + }
92062 +
92063 +out:
92064 + return ret;
92065 +}
92066 +
92067 +void *
92068 +acl_alloc_num(unsigned long num, unsigned long len)
92069 +{
92070 + if (!len || (num > (PAGE_SIZE / len)))
92071 + return NULL;
92072 +
92073 + return acl_alloc(num * len);
92074 +}
92075 +
92076 +void
92077 +acl_free_all(void)
92078 +{
92079 + if (!current_alloc_state->alloc_stack)
92080 + return;
92081 +
92082 + while (alloc_pop()) ;
92083 +
92084 + if (current_alloc_state->alloc_stack) {
92085 + if ((current_alloc_state->alloc_stack_size * sizeof (void *)) <= PAGE_SIZE)
92086 + kfree(current_alloc_state->alloc_stack);
92087 + else
92088 + vfree(current_alloc_state->alloc_stack);
92089 + }
92090 +
92091 + current_alloc_state->alloc_stack = NULL;
92092 + current_alloc_state->alloc_stack_size = 1;
92093 + current_alloc_state->alloc_stack_next = 1;
92094 +
92095 + return;
92096 +}
92097 +
92098 +int
92099 +acl_alloc_stack_init(unsigned long size)
92100 +{
92101 + if ((size * sizeof (void *)) <= PAGE_SIZE)
92102 + current_alloc_state->alloc_stack =
92103 + (void **) kmalloc(size * sizeof (void *), GFP_KERNEL);
92104 + else
92105 + current_alloc_state->alloc_stack = (void **) vmalloc(size * sizeof (void *));
92106 +
92107 + current_alloc_state->alloc_stack_size = size;
92108 + current_alloc_state->alloc_stack_next = 1;
92109 +
92110 + if (!current_alloc_state->alloc_stack)
92111 + return 0;
92112 + else
92113 + return 1;
92114 +}
92115 diff --git a/grsecurity/gracl_cap.c b/grsecurity/gracl_cap.c
92116 new file mode 100644
92117 index 0000000..1a94c11
92118 --- /dev/null
92119 +++ b/grsecurity/gracl_cap.c
92120 @@ -0,0 +1,127 @@
92121 +#include <linux/kernel.h>
92122 +#include <linux/module.h>
92123 +#include <linux/sched.h>
92124 +#include <linux/gracl.h>
92125 +#include <linux/grsecurity.h>
92126 +#include <linux/grinternal.h>
92127 +
92128 +extern const char *captab_log[];
92129 +extern int captab_log_entries;
92130 +
92131 +int gr_learn_cap(const struct task_struct *task, const struct cred *cred, const int cap)
92132 +{
92133 + struct acl_subject_label *curracl;
92134 +
92135 + if (!gr_acl_is_enabled())
92136 + return 1;
92137 +
92138 + curracl = task->acl;
92139 +
92140 + if (curracl->mode & (GR_LEARN | GR_INHERITLEARN)) {
92141 + security_learn(GR_LEARN_AUDIT_MSG, task->role->rolename,
92142 + task->role->roletype, GR_GLOBAL_UID(cred->uid),
92143 + GR_GLOBAL_GID(cred->gid), task->exec_file ?
92144 + gr_to_filename(task->exec_file->f_path.dentry,
92145 + task->exec_file->f_path.mnt) : curracl->filename,
92146 + curracl->filename, 0UL,
92147 + 0UL, "", (unsigned long) cap, &task->signal->saved_ip);
92148 + return 1;
92149 + }
92150 +
92151 + return 0;
92152 +}
92153 +
92154 +int gr_task_acl_is_capable(const struct task_struct *task, const struct cred *cred, const int cap)
92155 +{
92156 + struct acl_subject_label *curracl;
92157 + kernel_cap_t cap_drop = __cap_empty_set, cap_mask = __cap_empty_set;
92158 + kernel_cap_t cap_audit = __cap_empty_set;
92159 +
92160 + if (!gr_acl_is_enabled())
92161 + return 1;
92162 +
92163 + curracl = task->acl;
92164 +
92165 + cap_drop = curracl->cap_lower;
92166 + cap_mask = curracl->cap_mask;
92167 + cap_audit = curracl->cap_invert_audit;
92168 +
92169 + while ((curracl = curracl->parent_subject)) {
92170 + /* if the cap isn't specified in the current computed mask but is specified in the
92171 + current level subject, and is lowered in the current level subject, then add
92172 + it to the set of dropped capabilities
92173 + otherwise, add the current level subject's mask to the current computed mask
92174 + */
92175 + if (!cap_raised(cap_mask, cap) && cap_raised(curracl->cap_mask, cap)) {
92176 + cap_raise(cap_mask, cap);
92177 + if (cap_raised(curracl->cap_lower, cap))
92178 + cap_raise(cap_drop, cap);
92179 + if (cap_raised(curracl->cap_invert_audit, cap))
92180 + cap_raise(cap_audit, cap);
92181 + }
92182 + }
92183 +
92184 + if (!cap_raised(cap_drop, cap)) {
92185 + if (cap_raised(cap_audit, cap))
92186 + gr_log_cap(GR_DO_AUDIT, GR_CAP_ACL_MSG2, task, captab_log[cap]);
92187 + return 1;
92188 + }
92189 +
92190 + /* only learn the capability use if the process has the capability in the
92191 + general case, the two uses in sys.c of gr_learn_cap are an exception
92192 + to this rule to ensure any role transition involves what the full-learned
92193 + policy believes in a privileged process
92194 + */
92195 + if (cap_raised(cred->cap_effective, cap) && gr_learn_cap(task, cred, cap))
92196 + return 1;
92197 +
92198 + if ((cap >= 0) && (cap < captab_log_entries) && cap_raised(cred->cap_effective, cap) && !cap_raised(cap_audit, cap))
92199 + gr_log_cap(GR_DONT_AUDIT, GR_CAP_ACL_MSG, task, captab_log[cap]);
92200 +
92201 + return 0;
92202 +}
92203 +
92204 +int
92205 +gr_acl_is_capable(const int cap)
92206 +{
92207 + return gr_task_acl_is_capable(current, current_cred(), cap);
92208 +}
92209 +
92210 +int gr_task_acl_is_capable_nolog(const struct task_struct *task, const int cap)
92211 +{
92212 + struct acl_subject_label *curracl;
92213 + kernel_cap_t cap_drop = __cap_empty_set, cap_mask = __cap_empty_set;
92214 +
92215 + if (!gr_acl_is_enabled())
92216 + return 1;
92217 +
92218 + curracl = task->acl;
92219 +
92220 + cap_drop = curracl->cap_lower;
92221 + cap_mask = curracl->cap_mask;
92222 +
92223 + while ((curracl = curracl->parent_subject)) {
92224 + /* if the cap isn't specified in the current computed mask but is specified in the
92225 + current level subject, and is lowered in the current level subject, then add
92226 + it to the set of dropped capabilities
92227 + otherwise, add the current level subject's mask to the current computed mask
92228 + */
92229 + if (!cap_raised(cap_mask, cap) && cap_raised(curracl->cap_mask, cap)) {
92230 + cap_raise(cap_mask, cap);
92231 + if (cap_raised(curracl->cap_lower, cap))
92232 + cap_raise(cap_drop, cap);
92233 + }
92234 + }
92235 +
92236 + if (!cap_raised(cap_drop, cap))
92237 + return 1;
92238 +
92239 + return 0;
92240 +}
92241 +
92242 +int
92243 +gr_acl_is_capable_nolog(const int cap)
92244 +{
92245 + return gr_task_acl_is_capable_nolog(current, cap);
92246 +}
92247 +
92248 diff --git a/grsecurity/gracl_compat.c b/grsecurity/gracl_compat.c
92249 new file mode 100644
92250 index 0000000..a43dd06
92251 --- /dev/null
92252 +++ b/grsecurity/gracl_compat.c
92253 @@ -0,0 +1,269 @@
92254 +#include <linux/kernel.h>
92255 +#include <linux/gracl.h>
92256 +#include <linux/compat.h>
92257 +#include <linux/gracl_compat.h>
92258 +
92259 +#include <asm/uaccess.h>
92260 +
92261 +int copy_gr_arg_wrapper_compat(const char *buf, struct gr_arg_wrapper *uwrap)
92262 +{
92263 + struct gr_arg_wrapper_compat uwrapcompat;
92264 +
92265 + if (copy_from_user(&uwrapcompat, buf, sizeof(uwrapcompat)))
92266 + return -EFAULT;
92267 +
92268 + if ((uwrapcompat.version != GRSECURITY_VERSION) ||
92269 + (uwrapcompat.size != sizeof(struct gr_arg_compat)))
92270 + return -EINVAL;
92271 +
92272 + uwrap->arg = compat_ptr(uwrapcompat.arg);
92273 + uwrap->version = uwrapcompat.version;
92274 + uwrap->size = sizeof(struct gr_arg);
92275 +
92276 + return 0;
92277 +}
92278 +
92279 +int copy_gr_arg_compat(const struct gr_arg __user *buf, struct gr_arg *arg)
92280 +{
92281 + struct gr_arg_compat argcompat;
92282 +
92283 + if (copy_from_user(&argcompat, buf, sizeof(argcompat)))
92284 + return -EFAULT;
92285 +
92286 + arg->role_db.r_table = compat_ptr(argcompat.role_db.r_table);
92287 + arg->role_db.num_pointers = argcompat.role_db.num_pointers;
92288 + arg->role_db.num_roles = argcompat.role_db.num_roles;
92289 + arg->role_db.num_domain_children = argcompat.role_db.num_domain_children;
92290 + arg->role_db.num_subjects = argcompat.role_db.num_subjects;
92291 + arg->role_db.num_objects = argcompat.role_db.num_objects;
92292 +
92293 + memcpy(&arg->pw, &argcompat.pw, sizeof(arg->pw));
92294 + memcpy(&arg->salt, &argcompat.salt, sizeof(arg->salt));
92295 + memcpy(&arg->sum, &argcompat.sum, sizeof(arg->sum));
92296 + memcpy(&arg->sp_role, &argcompat.sp_role, sizeof(arg->sp_role));
92297 + arg->sprole_pws = compat_ptr(argcompat.sprole_pws);
92298 + arg->segv_device = argcompat.segv_device;
92299 + arg->segv_inode = argcompat.segv_inode;
92300 + arg->segv_uid = argcompat.segv_uid;
92301 + arg->num_sprole_pws = argcompat.num_sprole_pws;
92302 + arg->mode = argcompat.mode;
92303 +
92304 + return 0;
92305 +}
92306 +
92307 +int copy_acl_object_label_compat(struct acl_object_label *obj, const struct acl_object_label *userp)
92308 +{
92309 + struct acl_object_label_compat objcompat;
92310 +
92311 + if (copy_from_user(&objcompat, userp, sizeof(objcompat)))
92312 + return -EFAULT;
92313 +
92314 + obj->filename = compat_ptr(objcompat.filename);
92315 + obj->inode = objcompat.inode;
92316 + obj->device = objcompat.device;
92317 + obj->mode = objcompat.mode;
92318 +
92319 + obj->nested = compat_ptr(objcompat.nested);
92320 + obj->globbed = compat_ptr(objcompat.globbed);
92321 +
92322 + obj->prev = compat_ptr(objcompat.prev);
92323 + obj->next = compat_ptr(objcompat.next);
92324 +
92325 + return 0;
92326 +}
92327 +
92328 +int copy_acl_subject_label_compat(struct acl_subject_label *subj, const struct acl_subject_label *userp)
92329 +{
92330 + unsigned int i;
92331 + struct acl_subject_label_compat subjcompat;
92332 +
92333 + if (copy_from_user(&subjcompat, userp, sizeof(subjcompat)))
92334 + return -EFAULT;
92335 +
92336 + subj->filename = compat_ptr(subjcompat.filename);
92337 + subj->inode = subjcompat.inode;
92338 + subj->device = subjcompat.device;
92339 + subj->mode = subjcompat.mode;
92340 + subj->cap_mask = subjcompat.cap_mask;
92341 + subj->cap_lower = subjcompat.cap_lower;
92342 + subj->cap_invert_audit = subjcompat.cap_invert_audit;
92343 +
92344 + for (i = 0; i < GR_NLIMITS; i++) {
92345 + if (subjcompat.res[i].rlim_cur == COMPAT_RLIM_INFINITY)
92346 + subj->res[i].rlim_cur = RLIM_INFINITY;
92347 + else
92348 + subj->res[i].rlim_cur = subjcompat.res[i].rlim_cur;
92349 + if (subjcompat.res[i].rlim_max == COMPAT_RLIM_INFINITY)
92350 + subj->res[i].rlim_max = RLIM_INFINITY;
92351 + else
92352 + subj->res[i].rlim_max = subjcompat.res[i].rlim_max;
92353 + }
92354 + subj->resmask = subjcompat.resmask;
92355 +
92356 + subj->user_trans_type = subjcompat.user_trans_type;
92357 + subj->group_trans_type = subjcompat.group_trans_type;
92358 + subj->user_transitions = compat_ptr(subjcompat.user_transitions);
92359 + subj->group_transitions = compat_ptr(subjcompat.group_transitions);
92360 + subj->user_trans_num = subjcompat.user_trans_num;
92361 + subj->group_trans_num = subjcompat.group_trans_num;
92362 +
92363 + memcpy(&subj->sock_families, &subjcompat.sock_families, sizeof(subj->sock_families));
92364 + memcpy(&subj->ip_proto, &subjcompat.ip_proto, sizeof(subj->ip_proto));
92365 + subj->ip_type = subjcompat.ip_type;
92366 + subj->ips = compat_ptr(subjcompat.ips);
92367 + subj->ip_num = subjcompat.ip_num;
92368 + subj->inaddr_any_override = subjcompat.inaddr_any_override;
92369 +
92370 + subj->crashes = subjcompat.crashes;
92371 + subj->expires = subjcompat.expires;
92372 +
92373 + subj->parent_subject = compat_ptr(subjcompat.parent_subject);
92374 + subj->hash = compat_ptr(subjcompat.hash);
92375 + subj->prev = compat_ptr(subjcompat.prev);
92376 + subj->next = compat_ptr(subjcompat.next);
92377 +
92378 + subj->obj_hash = compat_ptr(subjcompat.obj_hash);
92379 + subj->obj_hash_size = subjcompat.obj_hash_size;
92380 + subj->pax_flags = subjcompat.pax_flags;
92381 +
92382 + return 0;
92383 +}
92384 +
92385 +int copy_acl_role_label_compat(struct acl_role_label *role, const struct acl_role_label *userp)
92386 +{
92387 + struct acl_role_label_compat rolecompat;
92388 +
92389 + if (copy_from_user(&rolecompat, userp, sizeof(rolecompat)))
92390 + return -EFAULT;
92391 +
92392 + role->rolename = compat_ptr(rolecompat.rolename);
92393 + role->uidgid = rolecompat.uidgid;
92394 + role->roletype = rolecompat.roletype;
92395 +
92396 + role->auth_attempts = rolecompat.auth_attempts;
92397 + role->expires = rolecompat.expires;
92398 +
92399 + role->root_label = compat_ptr(rolecompat.root_label);
92400 + role->hash = compat_ptr(rolecompat.hash);
92401 +
92402 + role->prev = compat_ptr(rolecompat.prev);
92403 + role->next = compat_ptr(rolecompat.next);
92404 +
92405 + role->transitions = compat_ptr(rolecompat.transitions);
92406 + role->allowed_ips = compat_ptr(rolecompat.allowed_ips);
92407 + role->domain_children = compat_ptr(rolecompat.domain_children);
92408 + role->domain_child_num = rolecompat.domain_child_num;
92409 +
92410 + role->umask = rolecompat.umask;
92411 +
92412 + role->subj_hash = compat_ptr(rolecompat.subj_hash);
92413 + role->subj_hash_size = rolecompat.subj_hash_size;
92414 +
92415 + return 0;
92416 +}
92417 +
92418 +int copy_role_allowed_ip_compat(struct role_allowed_ip *roleip, const struct role_allowed_ip *userp)
92419 +{
92420 + struct role_allowed_ip_compat roleip_compat;
92421 +
92422 + if (copy_from_user(&roleip_compat, userp, sizeof(roleip_compat)))
92423 + return -EFAULT;
92424 +
92425 + roleip->addr = roleip_compat.addr;
92426 + roleip->netmask = roleip_compat.netmask;
92427 +
92428 + roleip->prev = compat_ptr(roleip_compat.prev);
92429 + roleip->next = compat_ptr(roleip_compat.next);
92430 +
92431 + return 0;
92432 +}
92433 +
92434 +int copy_role_transition_compat(struct role_transition *trans, const struct role_transition *userp)
92435 +{
92436 + struct role_transition_compat trans_compat;
92437 +
92438 + if (copy_from_user(&trans_compat, userp, sizeof(trans_compat)))
92439 + return -EFAULT;
92440 +
92441 + trans->rolename = compat_ptr(trans_compat.rolename);
92442 +
92443 + trans->prev = compat_ptr(trans_compat.prev);
92444 + trans->next = compat_ptr(trans_compat.next);
92445 +
92446 + return 0;
92447 +
92448 +}
92449 +
92450 +int copy_gr_hash_struct_compat(struct gr_hash_struct *hash, const struct gr_hash_struct *userp)
92451 +{
92452 + struct gr_hash_struct_compat hash_compat;
92453 +
92454 + if (copy_from_user(&hash_compat, userp, sizeof(hash_compat)))
92455 + return -EFAULT;
92456 +
92457 + hash->table = compat_ptr(hash_compat.table);
92458 + hash->nametable = compat_ptr(hash_compat.nametable);
92459 + hash->first = compat_ptr(hash_compat.first);
92460 +
92461 + hash->table_size = hash_compat.table_size;
92462 + hash->used_size = hash_compat.used_size;
92463 +
92464 + hash->type = hash_compat.type;
92465 +
92466 + return 0;
92467 +}
92468 +
92469 +int copy_pointer_from_array_compat(void *ptr, unsigned long idx, const void *userp)
92470 +{
92471 + compat_uptr_t ptrcompat;
92472 +
92473 + if (copy_from_user(&ptrcompat, userp + (idx * sizeof(ptrcompat)), sizeof(ptrcompat)))
92474 + return -EFAULT;
92475 +
92476 + *(void **)ptr = compat_ptr(ptrcompat);
92477 +
92478 + return 0;
92479 +}
92480 +
92481 +int copy_acl_ip_label_compat(struct acl_ip_label *ip, const struct acl_ip_label *userp)
92482 +{
92483 + struct acl_ip_label_compat ip_compat;
92484 +
92485 + if (copy_from_user(&ip_compat, userp, sizeof(ip_compat)))
92486 + return -EFAULT;
92487 +
92488 + ip->iface = compat_ptr(ip_compat.iface);
92489 + ip->addr = ip_compat.addr;
92490 + ip->netmask = ip_compat.netmask;
92491 + ip->low = ip_compat.low;
92492 + ip->high = ip_compat.high;
92493 + ip->mode = ip_compat.mode;
92494 + ip->type = ip_compat.type;
92495 +
92496 + memcpy(&ip->proto, &ip_compat.proto, sizeof(ip->proto));
92497 +
92498 + ip->prev = compat_ptr(ip_compat.prev);
92499 + ip->next = compat_ptr(ip_compat.next);
92500 +
92501 + return 0;
92502 +}
92503 +
92504 +int copy_sprole_pw_compat(struct sprole_pw *pw, unsigned long idx, const struct sprole_pw *userp)
92505 +{
92506 + struct sprole_pw_compat pw_compat;
92507 +
92508 + if (copy_from_user(&pw_compat, (const void *)userp + (sizeof(pw_compat) * idx), sizeof(pw_compat)))
92509 + return -EFAULT;
92510 +
92511 + pw->rolename = compat_ptr(pw_compat.rolename);
92512 + memcpy(&pw->salt, pw_compat.salt, sizeof(pw->salt));
92513 + memcpy(&pw->sum, pw_compat.sum, sizeof(pw->sum));
92514 +
92515 + return 0;
92516 +}
92517 +
92518 +size_t get_gr_arg_wrapper_size_compat(void)
92519 +{
92520 + return sizeof(struct gr_arg_wrapper_compat);
92521 +}
92522 +
92523 diff --git a/grsecurity/gracl_fs.c b/grsecurity/gracl_fs.c
92524 new file mode 100644
92525 index 0000000..fce7f71
92526 --- /dev/null
92527 +++ b/grsecurity/gracl_fs.c
92528 @@ -0,0 +1,448 @@
92529 +#include <linux/kernel.h>
92530 +#include <linux/sched.h>
92531 +#include <linux/types.h>
92532 +#include <linux/fs.h>
92533 +#include <linux/file.h>
92534 +#include <linux/stat.h>
92535 +#include <linux/grsecurity.h>
92536 +#include <linux/grinternal.h>
92537 +#include <linux/gracl.h>
92538 +
92539 +umode_t
92540 +gr_acl_umask(void)
92541 +{
92542 + if (unlikely(!gr_acl_is_enabled()))
92543 + return 0;
92544 +
92545 + return current->role->umask;
92546 +}
92547 +
92548 +__u32
92549 +gr_acl_handle_hidden_file(const struct dentry * dentry,
92550 + const struct vfsmount * mnt)
92551 +{
92552 + __u32 mode;
92553 +
92554 + if (unlikely(d_is_negative(dentry)))
92555 + return GR_FIND;
92556 +
92557 + mode =
92558 + gr_search_file(dentry, GR_FIND | GR_AUDIT_FIND | GR_SUPPRESS, mnt);
92559 +
92560 + if (unlikely(mode & GR_FIND && mode & GR_AUDIT_FIND)) {
92561 + gr_log_fs_rbac_generic(GR_DO_AUDIT, GR_HIDDEN_ACL_MSG, dentry, mnt);
92562 + return mode;
92563 + } else if (unlikely(!(mode & GR_FIND) && !(mode & GR_SUPPRESS))) {
92564 + gr_log_fs_rbac_generic(GR_DONT_AUDIT, GR_HIDDEN_ACL_MSG, dentry, mnt);
92565 + return 0;
92566 + } else if (unlikely(!(mode & GR_FIND)))
92567 + return 0;
92568 +
92569 + return GR_FIND;
92570 +}
92571 +
92572 +__u32
92573 +gr_acl_handle_open(const struct dentry * dentry, const struct vfsmount * mnt,
92574 + int acc_mode)
92575 +{
92576 + __u32 reqmode = GR_FIND;
92577 + __u32 mode;
92578 +
92579 + if (unlikely(d_is_negative(dentry)))
92580 + return reqmode;
92581 +
92582 + if (acc_mode & MAY_APPEND)
92583 + reqmode |= GR_APPEND;
92584 + else if (acc_mode & MAY_WRITE)
92585 + reqmode |= GR_WRITE;
92586 + if ((acc_mode & MAY_READ) && !d_is_dir(dentry))
92587 + reqmode |= GR_READ;
92588 +
92589 + mode =
92590 + gr_search_file(dentry, reqmode | to_gr_audit(reqmode) | GR_SUPPRESS,
92591 + mnt);
92592 +
92593 + if (unlikely(((mode & reqmode) == reqmode) && mode & GR_AUDITS)) {
92594 + gr_log_fs_rbac_mode2(GR_DO_AUDIT, GR_OPEN_ACL_MSG, dentry, mnt,
92595 + reqmode & GR_READ ? " reading" : "",
92596 + reqmode & GR_WRITE ? " writing" : reqmode &
92597 + GR_APPEND ? " appending" : "");
92598 + return reqmode;
92599 + } else
92600 + if (unlikely((mode & reqmode) != reqmode && !(mode & GR_SUPPRESS)))
92601 + {
92602 + gr_log_fs_rbac_mode2(GR_DONT_AUDIT, GR_OPEN_ACL_MSG, dentry, mnt,
92603 + reqmode & GR_READ ? " reading" : "",
92604 + reqmode & GR_WRITE ? " writing" : reqmode &
92605 + GR_APPEND ? " appending" : "");
92606 + return 0;
92607 + } else if (unlikely((mode & reqmode) != reqmode))
92608 + return 0;
92609 +
92610 + return reqmode;
92611 +}
92612 +
92613 +__u32
92614 +gr_acl_handle_creat(const struct dentry * dentry,
92615 + const struct dentry * p_dentry,
92616 + const struct vfsmount * p_mnt, int open_flags, int acc_mode,
92617 + const int imode)
92618 +{
92619 + __u32 reqmode = GR_WRITE | GR_CREATE;
92620 + __u32 mode;
92621 +
92622 + if (acc_mode & MAY_APPEND)
92623 + reqmode |= GR_APPEND;
92624 + // if a directory was required or the directory already exists, then
92625 + // don't count this open as a read
92626 + if ((acc_mode & MAY_READ) &&
92627 + !((open_flags & O_DIRECTORY) || d_is_dir(dentry)))
92628 + reqmode |= GR_READ;
92629 + if ((open_flags & O_CREAT) &&
92630 + ((imode & S_ISUID) || ((imode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))))
92631 + reqmode |= GR_SETID;
92632 +
92633 + mode =
92634 + gr_check_create(dentry, p_dentry, p_mnt,
92635 + reqmode | to_gr_audit(reqmode) | GR_SUPPRESS);
92636 +
92637 + if (unlikely(((mode & reqmode) == reqmode) && mode & GR_AUDITS)) {
92638 + gr_log_fs_rbac_mode2(GR_DO_AUDIT, GR_CREATE_ACL_MSG, dentry, p_mnt,
92639 + reqmode & GR_READ ? " reading" : "",
92640 + reqmode & GR_WRITE ? " writing" : reqmode &
92641 + GR_APPEND ? " appending" : "");
92642 + return reqmode;
92643 + } else
92644 + if (unlikely((mode & reqmode) != reqmode && !(mode & GR_SUPPRESS)))
92645 + {
92646 + gr_log_fs_rbac_mode2(GR_DONT_AUDIT, GR_CREATE_ACL_MSG, dentry, p_mnt,
92647 + reqmode & GR_READ ? " reading" : "",
92648 + reqmode & GR_WRITE ? " writing" : reqmode &
92649 + GR_APPEND ? " appending" : "");
92650 + return 0;
92651 + } else if (unlikely((mode & reqmode) != reqmode))
92652 + return 0;
92653 +
92654 + return reqmode;
92655 +}
92656 +
92657 +__u32
92658 +gr_acl_handle_access(const struct dentry * dentry, const struct vfsmount * mnt,
92659 + const int fmode)
92660 +{
92661 + __u32 mode, reqmode = GR_FIND;
92662 +
92663 + if ((fmode & S_IXOTH) && !d_is_dir(dentry))
92664 + reqmode |= GR_EXEC;
92665 + if (fmode & S_IWOTH)
92666 + reqmode |= GR_WRITE;
92667 + if (fmode & S_IROTH)
92668 + reqmode |= GR_READ;
92669 +
92670 + mode =
92671 + gr_search_file(dentry, reqmode | to_gr_audit(reqmode) | GR_SUPPRESS,
92672 + mnt);
92673 +
92674 + if (unlikely(((mode & reqmode) == reqmode) && mode & GR_AUDITS)) {
92675 + gr_log_fs_rbac_mode3(GR_DO_AUDIT, GR_ACCESS_ACL_MSG, dentry, mnt,
92676 + reqmode & GR_READ ? " reading" : "",
92677 + reqmode & GR_WRITE ? " writing" : "",
92678 + reqmode & GR_EXEC ? " executing" : "");
92679 + return reqmode;
92680 + } else
92681 + if (unlikely((mode & reqmode) != reqmode && !(mode & GR_SUPPRESS)))
92682 + {
92683 + gr_log_fs_rbac_mode3(GR_DONT_AUDIT, GR_ACCESS_ACL_MSG, dentry, mnt,
92684 + reqmode & GR_READ ? " reading" : "",
92685 + reqmode & GR_WRITE ? " writing" : "",
92686 + reqmode & GR_EXEC ? " executing" : "");
92687 + return 0;
92688 + } else if (unlikely((mode & reqmode) != reqmode))
92689 + return 0;
92690 +
92691 + return reqmode;
92692 +}
92693 +
92694 +static __u32 generic_fs_handler(const struct dentry *dentry, const struct vfsmount *mnt, __u32 reqmode, const char *fmt)
92695 +{
92696 + __u32 mode;
92697 +
92698 + mode = gr_search_file(dentry, reqmode | to_gr_audit(reqmode) | GR_SUPPRESS, mnt);
92699 +
92700 + if (unlikely(((mode & (reqmode)) == (reqmode)) && mode & GR_AUDITS)) {
92701 + gr_log_fs_rbac_generic(GR_DO_AUDIT, fmt, dentry, mnt);
92702 + return mode;
92703 + } else if (unlikely((mode & (reqmode)) != (reqmode) && !(mode & GR_SUPPRESS))) {
92704 + gr_log_fs_rbac_generic(GR_DONT_AUDIT, fmt, dentry, mnt);
92705 + return 0;
92706 + } else if (unlikely((mode & (reqmode)) != (reqmode)))
92707 + return 0;
92708 +
92709 + return (reqmode);
92710 +}
92711 +
92712 +__u32
92713 +gr_acl_handle_rmdir(const struct dentry * dentry, const struct vfsmount * mnt)
92714 +{
92715 + return generic_fs_handler(dentry, mnt, GR_WRITE | GR_DELETE , GR_RMDIR_ACL_MSG);
92716 +}
92717 +
92718 +__u32
92719 +gr_acl_handle_unlink(const struct dentry *dentry, const struct vfsmount *mnt)
92720 +{
92721 + return generic_fs_handler(dentry, mnt, GR_WRITE | GR_DELETE , GR_UNLINK_ACL_MSG);
92722 +}
92723 +
92724 +__u32
92725 +gr_acl_handle_truncate(const struct dentry *dentry, const struct vfsmount *mnt)
92726 +{
92727 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_TRUNCATE_ACL_MSG);
92728 +}
92729 +
92730 +__u32
92731 +gr_acl_handle_utime(const struct dentry *dentry, const struct vfsmount *mnt)
92732 +{
92733 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_ATIME_ACL_MSG);
92734 +}
92735 +
92736 +__u32
92737 +gr_acl_handle_chmod(const struct dentry *dentry, const struct vfsmount *mnt,
92738 + umode_t *modeptr)
92739 +{
92740 + umode_t mode;
92741 + struct inode *inode = d_backing_inode(dentry);
92742 +
92743 + *modeptr &= ~gr_acl_umask();
92744 + mode = *modeptr;
92745 +
92746 + if (unlikely(inode && S_ISSOCK(inode->i_mode)))
92747 + return 1;
92748 +
92749 + if (unlikely(!d_is_dir(dentry) &&
92750 + ((mode & S_ISUID) || ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))))) {
92751 + return generic_fs_handler(dentry, mnt, GR_WRITE | GR_SETID,
92752 + GR_CHMOD_ACL_MSG);
92753 + } else {
92754 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_CHMOD_ACL_MSG);
92755 + }
92756 +}
92757 +
92758 +__u32
92759 +gr_acl_handle_chown(const struct dentry *dentry, const struct vfsmount *mnt)
92760 +{
92761 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_CHOWN_ACL_MSG);
92762 +}
92763 +
92764 +__u32
92765 +gr_acl_handle_setxattr(const struct dentry *dentry, const struct vfsmount *mnt)
92766 +{
92767 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_SETXATTR_ACL_MSG);
92768 +}
92769 +
92770 +__u32
92771 +gr_acl_handle_removexattr(const struct dentry *dentry, const struct vfsmount *mnt)
92772 +{
92773 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_REMOVEXATTR_ACL_MSG);
92774 +}
92775 +
92776 +__u32
92777 +gr_acl_handle_execve(const struct dentry *dentry, const struct vfsmount *mnt)
92778 +{
92779 + return generic_fs_handler(dentry, mnt, GR_EXEC, GR_EXEC_ACL_MSG);
92780 +}
92781 +
92782 +__u32
92783 +gr_acl_handle_unix(const struct dentry *dentry, const struct vfsmount *mnt)
92784 +{
92785 + return generic_fs_handler(dentry, mnt, GR_READ | GR_WRITE,
92786 + GR_UNIXCONNECT_ACL_MSG);
92787 +}
92788 +
92789 +/* hardlinks require at minimum create and link permission,
92790 + any additional privilege required is based on the
92791 + privilege of the file being linked to
92792 +*/
92793 +__u32
92794 +gr_acl_handle_link(const struct dentry * new_dentry,
92795 + const struct dentry * parent_dentry,
92796 + const struct vfsmount * parent_mnt,
92797 + const struct dentry * old_dentry,
92798 + const struct vfsmount * old_mnt, const struct filename *to)
92799 +{
92800 + __u32 mode;
92801 + __u32 needmode = GR_CREATE | GR_LINK;
92802 + __u32 needaudit = GR_AUDIT_CREATE | GR_AUDIT_LINK;
92803 +
92804 + mode =
92805 + gr_check_link(new_dentry, parent_dentry, parent_mnt, old_dentry,
92806 + old_mnt);
92807 +
92808 + if (unlikely(((mode & needmode) == needmode) && (mode & needaudit))) {
92809 + gr_log_fs_rbac_str(GR_DO_AUDIT, GR_LINK_ACL_MSG, old_dentry, old_mnt, to->name);
92810 + return mode;
92811 + } else if (unlikely(((mode & needmode) != needmode) && !(mode & GR_SUPPRESS))) {
92812 + gr_log_fs_rbac_str(GR_DONT_AUDIT, GR_LINK_ACL_MSG, old_dentry, old_mnt, to->name);
92813 + return 0;
92814 + } else if (unlikely((mode & needmode) != needmode))
92815 + return 0;
92816 +
92817 + return 1;
92818 +}
92819 +
92820 +__u32
92821 +gr_acl_handle_symlink(const struct dentry * new_dentry,
92822 + const struct dentry * parent_dentry,
92823 + const struct vfsmount * parent_mnt, const struct filename *from)
92824 +{
92825 + __u32 needmode = GR_WRITE | GR_CREATE;
92826 + __u32 mode;
92827 +
92828 + mode =
92829 + gr_check_create(new_dentry, parent_dentry, parent_mnt,
92830 + GR_CREATE | GR_AUDIT_CREATE |
92831 + GR_WRITE | GR_AUDIT_WRITE | GR_SUPPRESS);
92832 +
92833 + if (unlikely(mode & GR_WRITE && mode & GR_AUDITS)) {
92834 + gr_log_fs_str_rbac(GR_DO_AUDIT, GR_SYMLINK_ACL_MSG, from->name, new_dentry, parent_mnt);
92835 + return mode;
92836 + } else if (unlikely(((mode & needmode) != needmode) && !(mode & GR_SUPPRESS))) {
92837 + gr_log_fs_str_rbac(GR_DONT_AUDIT, GR_SYMLINK_ACL_MSG, from->name, new_dentry, parent_mnt);
92838 + return 0;
92839 + } else if (unlikely((mode & needmode) != needmode))
92840 + return 0;
92841 +
92842 + return (GR_WRITE | GR_CREATE);
92843 +}
92844 +
92845 +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)
92846 +{
92847 + __u32 mode;
92848 +
92849 + mode = gr_check_create(new_dentry, parent_dentry, parent_mnt, reqmode | to_gr_audit(reqmode) | GR_SUPPRESS);
92850 +
92851 + if (unlikely(((mode & (reqmode)) == (reqmode)) && mode & GR_AUDITS)) {
92852 + gr_log_fs_rbac_generic(GR_DO_AUDIT, fmt, new_dentry, parent_mnt);
92853 + return mode;
92854 + } else if (unlikely((mode & (reqmode)) != (reqmode) && !(mode & GR_SUPPRESS))) {
92855 + gr_log_fs_rbac_generic(GR_DONT_AUDIT, fmt, new_dentry, parent_mnt);
92856 + return 0;
92857 + } else if (unlikely((mode & (reqmode)) != (reqmode)))
92858 + return 0;
92859 +
92860 + return (reqmode);
92861 +}
92862 +
92863 +__u32
92864 +gr_acl_handle_mknod(const struct dentry * new_dentry,
92865 + const struct dentry * parent_dentry,
92866 + const struct vfsmount * parent_mnt,
92867 + const int mode)
92868 +{
92869 + __u32 reqmode = GR_WRITE | GR_CREATE;
92870 + if (unlikely((mode & S_ISUID) || ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))))
92871 + reqmode |= GR_SETID;
92872 +
92873 + return generic_fs_create_handler(new_dentry, parent_dentry, parent_mnt,
92874 + reqmode, GR_MKNOD_ACL_MSG);
92875 +}
92876 +
92877 +__u32
92878 +gr_acl_handle_mkdir(const struct dentry *new_dentry,
92879 + const struct dentry *parent_dentry,
92880 + const struct vfsmount *parent_mnt)
92881 +{
92882 + return generic_fs_create_handler(new_dentry, parent_dentry, parent_mnt,
92883 + GR_WRITE | GR_CREATE, GR_MKDIR_ACL_MSG);
92884 +}
92885 +
92886 +#define RENAME_CHECK_SUCCESS(old, new) \
92887 + (((old & (GR_WRITE | GR_READ)) == (GR_WRITE | GR_READ)) && \
92888 + ((new & (GR_WRITE | GR_READ)) == (GR_WRITE | GR_READ)))
92889 +
92890 +int
92891 +gr_acl_handle_rename(struct dentry *new_dentry,
92892 + struct dentry *parent_dentry,
92893 + const struct vfsmount *parent_mnt,
92894 + struct dentry *old_dentry,
92895 + struct inode *old_parent_inode,
92896 + struct vfsmount *old_mnt, const struct filename *newname, unsigned int flags)
92897 +{
92898 + __u32 comp1, comp2;
92899 + int error = 0;
92900 +
92901 + if (unlikely(!gr_acl_is_enabled()))
92902 + return 0;
92903 +
92904 + if (flags & RENAME_EXCHANGE) {
92905 + comp1 = gr_search_file(new_dentry, GR_READ | GR_WRITE |
92906 + GR_AUDIT_READ | GR_AUDIT_WRITE |
92907 + GR_SUPPRESS, parent_mnt);
92908 + comp2 =
92909 + gr_search_file(old_dentry,
92910 + GR_READ | GR_WRITE | GR_AUDIT_READ |
92911 + GR_AUDIT_WRITE | GR_SUPPRESS, old_mnt);
92912 + } else if (d_is_negative(new_dentry)) {
92913 + comp1 = gr_check_create(new_dentry, parent_dentry, parent_mnt,
92914 + GR_READ | GR_WRITE | GR_CREATE | GR_AUDIT_READ |
92915 + GR_AUDIT_WRITE | GR_AUDIT_CREATE | GR_SUPPRESS);
92916 + comp2 = gr_search_file(old_dentry, GR_READ | GR_WRITE |
92917 + GR_DELETE | GR_AUDIT_DELETE |
92918 + GR_AUDIT_READ | GR_AUDIT_WRITE |
92919 + GR_SUPPRESS, old_mnt);
92920 + } else {
92921 + comp1 = gr_search_file(new_dentry, GR_READ | GR_WRITE |
92922 + GR_CREATE | GR_DELETE |
92923 + GR_AUDIT_CREATE | GR_AUDIT_DELETE |
92924 + GR_AUDIT_READ | GR_AUDIT_WRITE |
92925 + GR_SUPPRESS, parent_mnt);
92926 + comp2 =
92927 + gr_search_file(old_dentry,
92928 + GR_READ | GR_WRITE | GR_AUDIT_READ |
92929 + GR_DELETE | GR_AUDIT_DELETE |
92930 + GR_AUDIT_WRITE | GR_SUPPRESS, old_mnt);
92931 + }
92932 +
92933 + if (RENAME_CHECK_SUCCESS(comp1, comp2) &&
92934 + ((comp1 & GR_AUDITS) || (comp2 & GR_AUDITS)))
92935 + gr_log_fs_rbac_str(GR_DO_AUDIT, GR_RENAME_ACL_MSG, old_dentry, old_mnt, newname->name);
92936 + else if (!RENAME_CHECK_SUCCESS(comp1, comp2) && !(comp1 & GR_SUPPRESS)
92937 + && !(comp2 & GR_SUPPRESS)) {
92938 + gr_log_fs_rbac_str(GR_DONT_AUDIT, GR_RENAME_ACL_MSG, old_dentry, old_mnt, newname->name);
92939 + error = -EACCES;
92940 + } else if (unlikely(!RENAME_CHECK_SUCCESS(comp1, comp2)))
92941 + error = -EACCES;
92942 +
92943 + return error;
92944 +}
92945 +
92946 +void
92947 +gr_acl_handle_exit(void)
92948 +{
92949 + u16 id;
92950 + char *rolename;
92951 +
92952 + if (unlikely(current->acl_sp_role && gr_acl_is_enabled() &&
92953 + !(current->role->roletype & GR_ROLE_PERSIST))) {
92954 + id = current->acl_role_id;
92955 + rolename = current->role->rolename;
92956 + gr_set_acls(1);
92957 + gr_log_str_int(GR_DONT_AUDIT_GOOD, GR_SPROLEL_ACL_MSG, rolename, id);
92958 + }
92959 +
92960 + gr_put_exec_file(current);
92961 + return;
92962 +}
92963 +
92964 +int
92965 +gr_acl_handle_procpidmem(const struct task_struct *task)
92966 +{
92967 + if (unlikely(!gr_acl_is_enabled()))
92968 + return 0;
92969 +
92970 + if (task != current && (task->acl->mode & GR_PROTPROCFD) &&
92971 + !(current->acl->mode & GR_POVERRIDE) &&
92972 + !(current->role->roletype & GR_ROLE_GOD))
92973 + return -EACCES;
92974 +
92975 + return 0;
92976 +}
92977 diff --git a/grsecurity/gracl_ip.c b/grsecurity/gracl_ip.c
92978 new file mode 100644
92979 index 0000000..ed6ee43
92980 --- /dev/null
92981 +++ b/grsecurity/gracl_ip.c
92982 @@ -0,0 +1,386 @@
92983 +#include <linux/kernel.h>
92984 +#include <asm/uaccess.h>
92985 +#include <asm/errno.h>
92986 +#include <net/sock.h>
92987 +#include <linux/file.h>
92988 +#include <linux/fs.h>
92989 +#include <linux/net.h>
92990 +#include <linux/in.h>
92991 +#include <linux/skbuff.h>
92992 +#include <linux/ip.h>
92993 +#include <linux/udp.h>
92994 +#include <linux/types.h>
92995 +#include <linux/sched.h>
92996 +#include <linux/netdevice.h>
92997 +#include <linux/inetdevice.h>
92998 +#include <linux/gracl.h>
92999 +#include <linux/grsecurity.h>
93000 +#include <linux/grinternal.h>
93001 +
93002 +#define GR_BIND 0x01
93003 +#define GR_CONNECT 0x02
93004 +#define GR_INVERT 0x04
93005 +#define GR_BINDOVERRIDE 0x08
93006 +#define GR_CONNECTOVERRIDE 0x10
93007 +#define GR_SOCK_FAMILY 0x20
93008 +
93009 +static const char * gr_protocols[IPPROTO_MAX] = {
93010 + "ip", "icmp", "igmp", "ggp", "ipencap", "st", "tcp", "cbt",
93011 + "egp", "igp", "bbn-rcc", "nvp", "pup", "argus", "emcon", "xnet",
93012 + "chaos", "udp", "mux", "dcn", "hmp", "prm", "xns-idp", "trunk-1",
93013 + "trunk-2", "leaf-1", "leaf-2", "rdp", "irtp", "iso-tp4", "netblt", "mfe-nsp",
93014 + "merit-inp", "sep", "3pc", "idpr", "xtp", "ddp", "idpr-cmtp", "tp++",
93015 + "il", "ipv6", "sdrp", "ipv6-route", "ipv6-frag", "idrp", "rsvp", "gre",
93016 + "mhrp", "bna", "ipv6-crypt", "ipv6-auth", "i-nlsp", "swipe", "narp", "mobile",
93017 + "tlsp", "skip", "ipv6-icmp", "ipv6-nonxt", "ipv6-opts", "unknown:61", "cftp", "unknown:63",
93018 + "sat-expak", "kryptolan", "rvd", "ippc", "unknown:68", "sat-mon", "visa", "ipcv",
93019 + "cpnx", "cphb", "wsn", "pvp", "br-sat-mon", "sun-nd", "wb-mon", "wb-expak",
93020 + "iso-ip", "vmtp", "secure-vmtp", "vines", "ttp", "nfsnet-igp", "dgp", "tcf",
93021 + "eigrp", "ospf", "sprite-rpc", "larp", "mtp", "ax.25", "ipip", "micp",
93022 + "scc-sp", "etherip", "encap", "unknown:99", "gmtp", "ifmp", "pnni", "pim",
93023 + "aris", "scps", "qnx", "a/n", "ipcomp", "snp", "compaq-peer", "ipx-in-ip",
93024 + "vrrp", "pgm", "unknown:114", "l2tp", "ddx", "iatp", "stp", "srp",
93025 + "uti", "smp", "sm", "ptp", "isis", "fire", "crtp", "crdup",
93026 + "sscopmce", "iplt", "sps", "pipe", "sctp", "fc", "unkown:134", "unknown:135",
93027 + "unknown:136", "unknown:137", "unknown:138", "unknown:139", "unknown:140", "unknown:141", "unknown:142", "unknown:143",
93028 + "unknown:144", "unknown:145", "unknown:146", "unknown:147", "unknown:148", "unknown:149", "unknown:150", "unknown:151",
93029 + "unknown:152", "unknown:153", "unknown:154", "unknown:155", "unknown:156", "unknown:157", "unknown:158", "unknown:159",
93030 + "unknown:160", "unknown:161", "unknown:162", "unknown:163", "unknown:164", "unknown:165", "unknown:166", "unknown:167",
93031 + "unknown:168", "unknown:169", "unknown:170", "unknown:171", "unknown:172", "unknown:173", "unknown:174", "unknown:175",
93032 + "unknown:176", "unknown:177", "unknown:178", "unknown:179", "unknown:180", "unknown:181", "unknown:182", "unknown:183",
93033 + "unknown:184", "unknown:185", "unknown:186", "unknown:187", "unknown:188", "unknown:189", "unknown:190", "unknown:191",
93034 + "unknown:192", "unknown:193", "unknown:194", "unknown:195", "unknown:196", "unknown:197", "unknown:198", "unknown:199",
93035 + "unknown:200", "unknown:201", "unknown:202", "unknown:203", "unknown:204", "unknown:205", "unknown:206", "unknown:207",
93036 + "unknown:208", "unknown:209", "unknown:210", "unknown:211", "unknown:212", "unknown:213", "unknown:214", "unknown:215",
93037 + "unknown:216", "unknown:217", "unknown:218", "unknown:219", "unknown:220", "unknown:221", "unknown:222", "unknown:223",
93038 + "unknown:224", "unknown:225", "unknown:226", "unknown:227", "unknown:228", "unknown:229", "unknown:230", "unknown:231",
93039 + "unknown:232", "unknown:233", "unknown:234", "unknown:235", "unknown:236", "unknown:237", "unknown:238", "unknown:239",
93040 + "unknown:240", "unknown:241", "unknown:242", "unknown:243", "unknown:244", "unknown:245", "unknown:246", "unknown:247",
93041 + "unknown:248", "unknown:249", "unknown:250", "unknown:251", "unknown:252", "unknown:253", "unknown:254", "unknown:255",
93042 + };
93043 +
93044 +static const char * gr_socktypes[SOCK_MAX] = {
93045 + "unknown:0", "stream", "dgram", "raw", "rdm", "seqpacket", "unknown:6",
93046 + "unknown:7", "unknown:8", "unknown:9", "packet"
93047 + };
93048 +
93049 +static const char * gr_sockfamilies[AF_MAX+1] = {
93050 + "unspec", "unix", "inet", "ax25", "ipx", "appletalk", "netrom", "bridge", "atmpvc", "x25",
93051 + "inet6", "rose", "decnet", "netbeui", "security", "key", "netlink", "packet", "ash",
93052 + "econet", "atmsvc", "rds", "sna", "irda", "ppox", "wanpipe", "llc", "fam_27", "fam_28",
93053 + "tipc", "bluetooth", "iucv", "rxrpc", "isdn", "phonet", "ieee802154", "ciaf", "alg", "nfc", "vsock"
93054 + };
93055 +
93056 +const char *
93057 +gr_proto_to_name(unsigned char proto)
93058 +{
93059 + return gr_protocols[proto];
93060 +}
93061 +
93062 +const char *
93063 +gr_socktype_to_name(unsigned char type)
93064 +{
93065 + return gr_socktypes[type];
93066 +}
93067 +
93068 +const char *
93069 +gr_sockfamily_to_name(unsigned char family)
93070 +{
93071 + return gr_sockfamilies[family];
93072 +}
93073 +
93074 +extern const struct net_proto_family __rcu *net_families[NPROTO] __read_mostly;
93075 +
93076 +int
93077 +gr_search_socket(const int domain, const int type, const int protocol)
93078 +{
93079 + struct acl_subject_label *curr;
93080 + const struct cred *cred = current_cred();
93081 +
93082 + if (unlikely(!gr_acl_is_enabled()))
93083 + goto exit;
93084 +
93085 + if ((domain < 0) || (type < 0) || (protocol < 0) ||
93086 + (domain >= AF_MAX) || (type >= SOCK_MAX) || (protocol >= IPPROTO_MAX))
93087 + goto exit; // let the kernel handle it
93088 +
93089 + curr = current->acl;
93090 +
93091 + if (curr->sock_families[domain / 32] & (1U << (domain % 32))) {
93092 + /* the family is allowed, if this is PF_INET allow it only if
93093 + the extra sock type/protocol checks pass */
93094 + if (domain == PF_INET)
93095 + goto inet_check;
93096 + goto exit;
93097 + } else {
93098 + if (curr->mode & (GR_LEARN | GR_INHERITLEARN)) {
93099 + __u32 fakeip = 0;
93100 + security_learn(GR_IP_LEARN_MSG, current->role->rolename,
93101 + current->role->roletype, GR_GLOBAL_UID(cred->uid),
93102 + GR_GLOBAL_GID(cred->gid), current->exec_file ?
93103 + gr_to_filename(current->exec_file->f_path.dentry,
93104 + current->exec_file->f_path.mnt) :
93105 + curr->filename, curr->filename,
93106 + &fakeip, domain, 0, 0, GR_SOCK_FAMILY,
93107 + &current->signal->saved_ip);
93108 + goto exit;
93109 + }
93110 + goto exit_fail;
93111 + }
93112 +
93113 +inet_check:
93114 + /* the rest of this checking is for IPv4 only */
93115 + if (!curr->ips)
93116 + goto exit;
93117 +
93118 + if ((curr->ip_type & (1U << type)) &&
93119 + (curr->ip_proto[protocol / 32] & (1U << (protocol % 32))))
93120 + goto exit;
93121 +
93122 + if (curr->mode & (GR_LEARN | GR_INHERITLEARN)) {
93123 + /* we don't place acls on raw sockets , and sometimes
93124 + dgram/ip sockets are opened for ioctl and not
93125 + bind/connect, so we'll fake a bind learn log */
93126 + if (type == SOCK_RAW || type == SOCK_PACKET) {
93127 + __u32 fakeip = 0;
93128 + security_learn(GR_IP_LEARN_MSG, current->role->rolename,
93129 + current->role->roletype, GR_GLOBAL_UID(cred->uid),
93130 + GR_GLOBAL_GID(cred->gid), current->exec_file ?
93131 + gr_to_filename(current->exec_file->f_path.dentry,
93132 + current->exec_file->f_path.mnt) :
93133 + curr->filename, curr->filename,
93134 + &fakeip, 0, type,
93135 + protocol, GR_CONNECT, &current->signal->saved_ip);
93136 + } else if ((type == SOCK_DGRAM) && (protocol == IPPROTO_IP)) {
93137 + __u32 fakeip = 0;
93138 + security_learn(GR_IP_LEARN_MSG, current->role->rolename,
93139 + current->role->roletype, GR_GLOBAL_UID(cred->uid),
93140 + GR_GLOBAL_GID(cred->gid), current->exec_file ?
93141 + gr_to_filename(current->exec_file->f_path.dentry,
93142 + current->exec_file->f_path.mnt) :
93143 + curr->filename, curr->filename,
93144 + &fakeip, 0, type,
93145 + protocol, GR_BIND, &current->signal->saved_ip);
93146 + }
93147 + /* we'll log when they use connect or bind */
93148 + goto exit;
93149 + }
93150 +
93151 +exit_fail:
93152 + if (domain == PF_INET)
93153 + gr_log_str3(GR_DONT_AUDIT, GR_SOCK_MSG, gr_sockfamily_to_name(domain),
93154 + gr_socktype_to_name(type), gr_proto_to_name(protocol));
93155 + else if (rcu_access_pointer(net_families[domain]) != NULL)
93156 + gr_log_str2_int(GR_DONT_AUDIT, GR_SOCK_NOINET_MSG, gr_sockfamily_to_name(domain),
93157 + gr_socktype_to_name(type), protocol);
93158 +
93159 + return 0;
93160 +exit:
93161 + return 1;
93162 +}
93163 +
93164 +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)
93165 +{
93166 + if ((ip->mode & mode) &&
93167 + (ip_port >= ip->low) &&
93168 + (ip_port <= ip->high) &&
93169 + ((ntohl(ip_addr) & our_netmask) ==
93170 + (ntohl(our_addr) & our_netmask))
93171 + && (ip->proto[protocol / 32] & (1U << (protocol % 32)))
93172 + && (ip->type & (1U << type))) {
93173 + if (ip->mode & GR_INVERT)
93174 + return 2; // specifically denied
93175 + else
93176 + return 1; // allowed
93177 + }
93178 +
93179 + return 0; // not specifically allowed, may continue parsing
93180 +}
93181 +
93182 +static int
93183 +gr_search_connectbind(const int full_mode, struct sock *sk,
93184 + struct sockaddr_in *addr, const int type)
93185 +{
93186 + char iface[IFNAMSIZ] = {0};
93187 + struct acl_subject_label *curr;
93188 + struct acl_ip_label *ip;
93189 + struct inet_sock *isk;
93190 + struct net_device *dev;
93191 + struct in_device *idev;
93192 + unsigned long i;
93193 + int ret;
93194 + int mode = full_mode & (GR_BIND | GR_CONNECT);
93195 + __u32 ip_addr = 0;
93196 + __u32 our_addr;
93197 + __u32 our_netmask;
93198 + char *p;
93199 + __u16 ip_port = 0;
93200 + const struct cred *cred = current_cred();
93201 +
93202 + if (unlikely(!gr_acl_is_enabled() || sk->sk_family != PF_INET))
93203 + return 0;
93204 +
93205 + curr = current->acl;
93206 + isk = inet_sk(sk);
93207 +
93208 + /* INADDR_ANY overriding for binds, inaddr_any_override is already in network order */
93209 + if ((full_mode & GR_BINDOVERRIDE) && addr->sin_addr.s_addr == htonl(INADDR_ANY) && curr->inaddr_any_override != 0)
93210 + addr->sin_addr.s_addr = curr->inaddr_any_override;
93211 + if ((full_mode & GR_CONNECT) && isk->inet_saddr == htonl(INADDR_ANY) && curr->inaddr_any_override != 0) {
93212 + struct sockaddr_in saddr;
93213 + int err;
93214 +
93215 + saddr.sin_family = AF_INET;
93216 + saddr.sin_addr.s_addr = curr->inaddr_any_override;
93217 + saddr.sin_port = isk->inet_sport;
93218 +
93219 + err = security_socket_bind(sk->sk_socket, (struct sockaddr *)&saddr, sizeof(struct sockaddr_in));
93220 + if (err)
93221 + return err;
93222 +
93223 + err = sk->sk_socket->ops->bind(sk->sk_socket, (struct sockaddr *)&saddr, sizeof(struct sockaddr_in));
93224 + if (err)
93225 + return err;
93226 + }
93227 +
93228 + if (!curr->ips)
93229 + return 0;
93230 +
93231 + ip_addr = addr->sin_addr.s_addr;
93232 + ip_port = ntohs(addr->sin_port);
93233 +
93234 + if (curr->mode & (GR_LEARN | GR_INHERITLEARN)) {
93235 + security_learn(GR_IP_LEARN_MSG, current->role->rolename,
93236 + current->role->roletype, GR_GLOBAL_UID(cred->uid),
93237 + GR_GLOBAL_GID(cred->gid), current->exec_file ?
93238 + gr_to_filename(current->exec_file->f_path.dentry,
93239 + current->exec_file->f_path.mnt) :
93240 + curr->filename, curr->filename,
93241 + &ip_addr, ip_port, type,
93242 + sk->sk_protocol, mode, &current->signal->saved_ip);
93243 + return 0;
93244 + }
93245 +
93246 + for (i = 0; i < curr->ip_num; i++) {
93247 + ip = *(curr->ips + i);
93248 + if (ip->iface != NULL) {
93249 + strncpy(iface, ip->iface, IFNAMSIZ - 1);
93250 + p = strchr(iface, ':');
93251 + if (p != NULL)
93252 + *p = '\0';
93253 + dev = dev_get_by_name(sock_net(sk), iface);
93254 + if (dev == NULL)
93255 + continue;
93256 + idev = in_dev_get(dev);
93257 + if (idev == NULL) {
93258 + dev_put(dev);
93259 + continue;
93260 + }
93261 + rcu_read_lock();
93262 + for_ifa(idev) {
93263 + if (!strcmp(ip->iface, ifa->ifa_label)) {
93264 + our_addr = ifa->ifa_address;
93265 + our_netmask = 0xffffffff;
93266 + ret = check_ip_policy(ip, ip_addr, ip_port, sk->sk_protocol, mode, type, our_addr, our_netmask);
93267 + if (ret == 1) {
93268 + rcu_read_unlock();
93269 + in_dev_put(idev);
93270 + dev_put(dev);
93271 + return 0;
93272 + } else if (ret == 2) {
93273 + rcu_read_unlock();
93274 + in_dev_put(idev);
93275 + dev_put(dev);
93276 + goto denied;
93277 + }
93278 + }
93279 + } endfor_ifa(idev);
93280 + rcu_read_unlock();
93281 + in_dev_put(idev);
93282 + dev_put(dev);
93283 + } else {
93284 + our_addr = ip->addr;
93285 + our_netmask = ip->netmask;
93286 + ret = check_ip_policy(ip, ip_addr, ip_port, sk->sk_protocol, mode, type, our_addr, our_netmask);
93287 + if (ret == 1)
93288 + return 0;
93289 + else if (ret == 2)
93290 + goto denied;
93291 + }
93292 + }
93293 +
93294 +denied:
93295 + if (mode == GR_BIND)
93296 + 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));
93297 + else if (mode == GR_CONNECT)
93298 + 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));
93299 +
93300 + return -EACCES;
93301 +}
93302 +
93303 +int
93304 +gr_search_connect(struct socket *sock, struct sockaddr_in *addr)
93305 +{
93306 + /* always allow disconnection of dgram sockets with connect */
93307 + if (addr->sin_family == AF_UNSPEC)
93308 + return 0;
93309 + return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sock->sk, addr, sock->type);
93310 +}
93311 +
93312 +int
93313 +gr_search_bind(struct socket *sock, struct sockaddr_in *addr)
93314 +{
93315 + return gr_search_connectbind(GR_BIND | GR_BINDOVERRIDE, sock->sk, addr, sock->type);
93316 +}
93317 +
93318 +int gr_search_listen(struct socket *sock)
93319 +{
93320 + struct sock *sk = sock->sk;
93321 + struct sockaddr_in addr;
93322 +
93323 + addr.sin_addr.s_addr = inet_sk(sk)->inet_saddr;
93324 + addr.sin_port = inet_sk(sk)->inet_sport;
93325 +
93326 + return gr_search_connectbind(GR_BIND | GR_CONNECTOVERRIDE, sock->sk, &addr, sock->type);
93327 +}
93328 +
93329 +int gr_search_accept(struct socket *sock)
93330 +{
93331 + struct sock *sk = sock->sk;
93332 + struct sockaddr_in addr;
93333 +
93334 + addr.sin_addr.s_addr = inet_sk(sk)->inet_saddr;
93335 + addr.sin_port = inet_sk(sk)->inet_sport;
93336 +
93337 + return gr_search_connectbind(GR_BIND | GR_CONNECTOVERRIDE, sock->sk, &addr, sock->type);
93338 +}
93339 +
93340 +int
93341 +gr_search_udp_sendmsg(struct sock *sk, struct sockaddr_in *addr)
93342 +{
93343 + if (addr)
93344 + return gr_search_connectbind(GR_CONNECT, sk, addr, SOCK_DGRAM);
93345 + else {
93346 + struct sockaddr_in sin;
93347 + const struct inet_sock *inet = inet_sk(sk);
93348 +
93349 + sin.sin_addr.s_addr = inet->inet_daddr;
93350 + sin.sin_port = inet->inet_dport;
93351 +
93352 + return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sk, &sin, SOCK_DGRAM);
93353 + }
93354 +}
93355 +
93356 +int
93357 +gr_search_udp_recvmsg(struct sock *sk, const struct sk_buff *skb)
93358 +{
93359 + struct sockaddr_in sin;
93360 +
93361 + if (unlikely(skb->len < sizeof (struct udphdr)))
93362 + return 0; // skip this packet
93363 +
93364 + sin.sin_addr.s_addr = ip_hdr(skb)->saddr;
93365 + sin.sin_port = udp_hdr(skb)->source;
93366 +
93367 + return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sk, &sin, SOCK_DGRAM);
93368 +}
93369 diff --git a/grsecurity/gracl_learn.c b/grsecurity/gracl_learn.c
93370 new file mode 100644
93371 index 0000000..25f54ef
93372 --- /dev/null
93373 +++ b/grsecurity/gracl_learn.c
93374 @@ -0,0 +1,207 @@
93375 +#include <linux/kernel.h>
93376 +#include <linux/mm.h>
93377 +#include <linux/sched.h>
93378 +#include <linux/poll.h>
93379 +#include <linux/string.h>
93380 +#include <linux/file.h>
93381 +#include <linux/types.h>
93382 +#include <linux/vmalloc.h>
93383 +#include <linux/grinternal.h>
93384 +
93385 +extern ssize_t write_grsec_handler(struct file * file, const char __user * buf,
93386 + size_t count, loff_t *ppos);
93387 +extern int gr_acl_is_enabled(void);
93388 +
93389 +static DECLARE_WAIT_QUEUE_HEAD(learn_wait);
93390 +static int gr_learn_attached;
93391 +
93392 +/* use a 512k buffer */
93393 +#define LEARN_BUFFER_SIZE (512 * 1024)
93394 +
93395 +static DEFINE_SPINLOCK(gr_learn_lock);
93396 +static DEFINE_MUTEX(gr_learn_user_mutex);
93397 +
93398 +/* we need to maintain two buffers, so that the kernel context of grlearn
93399 + uses a semaphore around the userspace copying, and the other kernel contexts
93400 + use a spinlock when copying into the buffer, since they cannot sleep
93401 +*/
93402 +static char *learn_buffer;
93403 +static char *learn_buffer_user;
93404 +static int learn_buffer_len;
93405 +static int learn_buffer_user_len;
93406 +
93407 +static ssize_t
93408 +read_learn(struct file *file, char __user * buf, size_t count, loff_t * ppos)
93409 +{
93410 + DECLARE_WAITQUEUE(wait, current);
93411 + ssize_t retval = 0;
93412 +
93413 + add_wait_queue(&learn_wait, &wait);
93414 + set_current_state(TASK_INTERRUPTIBLE);
93415 + do {
93416 + mutex_lock(&gr_learn_user_mutex);
93417 + spin_lock(&gr_learn_lock);
93418 + if (learn_buffer_len)
93419 + break;
93420 + spin_unlock(&gr_learn_lock);
93421 + mutex_unlock(&gr_learn_user_mutex);
93422 + if (file->f_flags & O_NONBLOCK) {
93423 + retval = -EAGAIN;
93424 + goto out;
93425 + }
93426 + if (signal_pending(current)) {
93427 + retval = -ERESTARTSYS;
93428 + goto out;
93429 + }
93430 +
93431 + schedule();
93432 + } while (1);
93433 +
93434 + memcpy(learn_buffer_user, learn_buffer, learn_buffer_len);
93435 + learn_buffer_user_len = learn_buffer_len;
93436 + retval = learn_buffer_len;
93437 + learn_buffer_len = 0;
93438 +
93439 + spin_unlock(&gr_learn_lock);
93440 +
93441 + if (copy_to_user(buf, learn_buffer_user, learn_buffer_user_len))
93442 + retval = -EFAULT;
93443 +
93444 + mutex_unlock(&gr_learn_user_mutex);
93445 +out:
93446 + set_current_state(TASK_RUNNING);
93447 + remove_wait_queue(&learn_wait, &wait);
93448 + return retval;
93449 +}
93450 +
93451 +static unsigned int
93452 +poll_learn(struct file * file, poll_table * wait)
93453 +{
93454 + poll_wait(file, &learn_wait, wait);
93455 +
93456 + if (learn_buffer_len)
93457 + return (POLLIN | POLLRDNORM);
93458 +
93459 + return 0;
93460 +}
93461 +
93462 +void
93463 +gr_clear_learn_entries(void)
93464 +{
93465 + char *tmp;
93466 +
93467 + mutex_lock(&gr_learn_user_mutex);
93468 + spin_lock(&gr_learn_lock);
93469 + tmp = learn_buffer;
93470 + learn_buffer = NULL;
93471 + spin_unlock(&gr_learn_lock);
93472 + if (tmp)
93473 + vfree(tmp);
93474 + if (learn_buffer_user != NULL) {
93475 + vfree(learn_buffer_user);
93476 + learn_buffer_user = NULL;
93477 + }
93478 + learn_buffer_len = 0;
93479 + mutex_unlock(&gr_learn_user_mutex);
93480 +
93481 + return;
93482 +}
93483 +
93484 +void
93485 +gr_add_learn_entry(const char *fmt, ...)
93486 +{
93487 + va_list args;
93488 + unsigned int len;
93489 +
93490 + if (!gr_learn_attached)
93491 + return;
93492 +
93493 + spin_lock(&gr_learn_lock);
93494 +
93495 + /* leave a gap at the end so we know when it's "full" but don't have to
93496 + compute the exact length of the string we're trying to append
93497 + */
93498 + if (learn_buffer_len > LEARN_BUFFER_SIZE - 16384) {
93499 + spin_unlock(&gr_learn_lock);
93500 + wake_up_interruptible(&learn_wait);
93501 + return;
93502 + }
93503 + if (learn_buffer == NULL) {
93504 + spin_unlock(&gr_learn_lock);
93505 + return;
93506 + }
93507 +
93508 + va_start(args, fmt);
93509 + len = vsnprintf(learn_buffer + learn_buffer_len, LEARN_BUFFER_SIZE - learn_buffer_len, fmt, args);
93510 + va_end(args);
93511 +
93512 + learn_buffer_len += len + 1;
93513 +
93514 + spin_unlock(&gr_learn_lock);
93515 + wake_up_interruptible(&learn_wait);
93516 +
93517 + return;
93518 +}
93519 +
93520 +static int
93521 +open_learn(struct inode *inode, struct file *file)
93522 +{
93523 + if (file->f_mode & FMODE_READ && gr_learn_attached)
93524 + return -EBUSY;
93525 + if (file->f_mode & FMODE_READ) {
93526 + int retval = 0;
93527 + mutex_lock(&gr_learn_user_mutex);
93528 + if (learn_buffer == NULL)
93529 + learn_buffer = vmalloc(LEARN_BUFFER_SIZE);
93530 + if (learn_buffer_user == NULL)
93531 + learn_buffer_user = vmalloc(LEARN_BUFFER_SIZE);
93532 + if (learn_buffer == NULL) {
93533 + retval = -ENOMEM;
93534 + goto out_error;
93535 + }
93536 + if (learn_buffer_user == NULL) {
93537 + retval = -ENOMEM;
93538 + goto out_error;
93539 + }
93540 + learn_buffer_len = 0;
93541 + learn_buffer_user_len = 0;
93542 + gr_learn_attached = 1;
93543 +out_error:
93544 + mutex_unlock(&gr_learn_user_mutex);
93545 + return retval;
93546 + }
93547 + return 0;
93548 +}
93549 +
93550 +static int
93551 +close_learn(struct inode *inode, struct file *file)
93552 +{
93553 + if (file->f_mode & FMODE_READ) {
93554 + char *tmp = NULL;
93555 + mutex_lock(&gr_learn_user_mutex);
93556 + spin_lock(&gr_learn_lock);
93557 + tmp = learn_buffer;
93558 + learn_buffer = NULL;
93559 + spin_unlock(&gr_learn_lock);
93560 + if (tmp)
93561 + vfree(tmp);
93562 + if (learn_buffer_user != NULL) {
93563 + vfree(learn_buffer_user);
93564 + learn_buffer_user = NULL;
93565 + }
93566 + learn_buffer_len = 0;
93567 + learn_buffer_user_len = 0;
93568 + gr_learn_attached = 0;
93569 + mutex_unlock(&gr_learn_user_mutex);
93570 + }
93571 +
93572 + return 0;
93573 +}
93574 +
93575 +const struct file_operations grsec_fops = {
93576 + .read = read_learn,
93577 + .write = write_grsec_handler,
93578 + .open = open_learn,
93579 + .release = close_learn,
93580 + .poll = poll_learn,
93581 +};
93582 diff --git a/grsecurity/gracl_policy.c b/grsecurity/gracl_policy.c
93583 new file mode 100644
93584 index 0000000..0773423
93585 --- /dev/null
93586 +++ b/grsecurity/gracl_policy.c
93587 @@ -0,0 +1,1786 @@
93588 +#include <linux/kernel.h>
93589 +#include <linux/module.h>
93590 +#include <linux/sched.h>
93591 +#include <linux/mm.h>
93592 +#include <linux/file.h>
93593 +#include <linux/fs.h>
93594 +#include <linux/namei.h>
93595 +#include <linux/mount.h>
93596 +#include <linux/tty.h>
93597 +#include <linux/proc_fs.h>
93598 +#include <linux/lglock.h>
93599 +#include <linux/slab.h>
93600 +#include <linux/vmalloc.h>
93601 +#include <linux/types.h>
93602 +#include <linux/sysctl.h>
93603 +#include <linux/netdevice.h>
93604 +#include <linux/ptrace.h>
93605 +#include <linux/gracl.h>
93606 +#include <linux/gralloc.h>
93607 +#include <linux/security.h>
93608 +#include <linux/grinternal.h>
93609 +#include <linux/pid_namespace.h>
93610 +#include <linux/stop_machine.h>
93611 +#include <linux/fdtable.h>
93612 +#include <linux/percpu.h>
93613 +#include <linux/lglock.h>
93614 +#include <linux/hugetlb.h>
93615 +#include <linux/posix-timers.h>
93616 +#include "../fs/mount.h"
93617 +
93618 +#include <asm/uaccess.h>
93619 +#include <asm/errno.h>
93620 +#include <asm/mman.h>
93621 +
93622 +extern struct gr_policy_state *polstate;
93623 +
93624 +#define FOR_EACH_ROLE_START(role) \
93625 + role = polstate->role_list; \
93626 + while (role) {
93627 +
93628 +#define FOR_EACH_ROLE_END(role) \
93629 + role = role->prev; \
93630 + }
93631 +
93632 +struct path gr_real_root;
93633 +
93634 +extern struct gr_alloc_state *current_alloc_state;
93635 +
93636 +u16 acl_sp_role_value;
93637 +
93638 +static DEFINE_MUTEX(gr_dev_mutex);
93639 +
93640 +extern int chkpw(struct gr_arg *entry, unsigned char *salt, unsigned char *sum);
93641 +extern void gr_clear_learn_entries(void);
93642 +
93643 +struct gr_arg *gr_usermode __read_only;
93644 +unsigned char *gr_system_salt __read_only;
93645 +unsigned char *gr_system_sum __read_only;
93646 +
93647 +static unsigned int gr_auth_attempts = 0;
93648 +static unsigned long gr_auth_expires = 0UL;
93649 +
93650 +struct acl_object_label *fakefs_obj_rw;
93651 +struct acl_object_label *fakefs_obj_rwx;
93652 +
93653 +extern int gr_init_uidset(void);
93654 +extern void gr_free_uidset(void);
93655 +extern void gr_remove_uid(uid_t uid);
93656 +extern int gr_find_uid(uid_t uid);
93657 +
93658 +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);
93659 +extern void __gr_apply_subject_to_task(struct gr_policy_state *state, struct task_struct *task, struct acl_subject_label *subj);
93660 +extern int gr_streq(const char *a, const char *b, const unsigned int lena, const unsigned int lenb);
93661 +extern void __insert_inodev_entry(const struct gr_policy_state *state, struct inodev_entry *entry);
93662 +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);
93663 +extern void insert_acl_obj_label(struct acl_object_label *obj, struct acl_subject_label *subj);
93664 +extern void insert_acl_subj_label(struct acl_subject_label *obj, struct acl_role_label *role);
93665 +extern struct name_entry * __lookup_name_entry(const struct gr_policy_state *state, const char *name);
93666 +extern char *gr_to_filename_rbac(const struct dentry *dentry, const struct vfsmount *mnt);
93667 +extern struct acl_subject_label *lookup_acl_subj_label(const u64 ino, const dev_t dev, const struct acl_role_label *role);
93668 +extern struct acl_subject_label *lookup_acl_subj_label_deleted(const u64 ino, const dev_t dev, const struct acl_role_label *role);
93669 +extern void assign_special_role(const char *rolename);
93670 +extern struct acl_subject_label *chk_subj_label(const struct dentry *l_dentry, const struct vfsmount *l_mnt, const struct acl_role_label *role);
93671 +extern int gr_rbac_disable(void *unused);
93672 +extern void gr_enable_rbac_system(void);
93673 +
93674 +static int copy_acl_object_label_normal(struct acl_object_label *obj, const struct acl_object_label *userp)
93675 +{
93676 + if (copy_from_user(obj, userp, sizeof(struct acl_object_label)))
93677 + return -EFAULT;
93678 +
93679 + return 0;
93680 +}
93681 +
93682 +static int copy_acl_ip_label_normal(struct acl_ip_label *ip, const struct acl_ip_label *userp)
93683 +{
93684 + if (copy_from_user(ip, userp, sizeof(struct acl_ip_label)))
93685 + return -EFAULT;
93686 +
93687 + return 0;
93688 +}
93689 +
93690 +static int copy_acl_subject_label_normal(struct acl_subject_label *subj, const struct acl_subject_label *userp)
93691 +{
93692 + if (copy_from_user(subj, userp, sizeof(struct acl_subject_label)))
93693 + return -EFAULT;
93694 +
93695 + return 0;
93696 +}
93697 +
93698 +static int copy_acl_role_label_normal(struct acl_role_label *role, const struct acl_role_label *userp)
93699 +{
93700 + if (copy_from_user(role, userp, sizeof(struct acl_role_label)))
93701 + return -EFAULT;
93702 +
93703 + return 0;
93704 +}
93705 +
93706 +static int copy_role_allowed_ip_normal(struct role_allowed_ip *roleip, const struct role_allowed_ip *userp)
93707 +{
93708 + if (copy_from_user(roleip, userp, sizeof(struct role_allowed_ip)))
93709 + return -EFAULT;
93710 +
93711 + return 0;
93712 +}
93713 +
93714 +static int copy_sprole_pw_normal(struct sprole_pw *pw, unsigned long idx, const struct sprole_pw *userp)
93715 +{
93716 + if (copy_from_user(pw, userp + idx, sizeof(struct sprole_pw)))
93717 + return -EFAULT;
93718 +
93719 + return 0;
93720 +}
93721 +
93722 +static int copy_gr_hash_struct_normal(struct gr_hash_struct *hash, const struct gr_hash_struct *userp)
93723 +{
93724 + if (copy_from_user(hash, userp, sizeof(struct gr_hash_struct)))
93725 + return -EFAULT;
93726 +
93727 + return 0;
93728 +}
93729 +
93730 +static int copy_role_transition_normal(struct role_transition *trans, const struct role_transition *userp)
93731 +{
93732 + if (copy_from_user(trans, userp, sizeof(struct role_transition)))
93733 + return -EFAULT;
93734 +
93735 + return 0;
93736 +}
93737 +
93738 +int copy_pointer_from_array_normal(void *ptr, unsigned long idx, const void *userp)
93739 +{
93740 + if (copy_from_user(ptr, userp + (idx * sizeof(void *)), sizeof(void *)))
93741 + return -EFAULT;
93742 +
93743 + return 0;
93744 +}
93745 +
93746 +static int copy_gr_arg_wrapper_normal(const char __user *buf, struct gr_arg_wrapper *uwrap)
93747 +{
93748 + if (copy_from_user(uwrap, buf, sizeof (struct gr_arg_wrapper)))
93749 + return -EFAULT;
93750 +
93751 + if ((uwrap->version != GRSECURITY_VERSION) ||
93752 + (uwrap->size != sizeof(struct gr_arg)))
93753 + return -EINVAL;
93754 +
93755 + return 0;
93756 +}
93757 +
93758 +static int copy_gr_arg_normal(const struct gr_arg __user *buf, struct gr_arg *arg)
93759 +{
93760 + if (copy_from_user(arg, buf, sizeof (struct gr_arg)))
93761 + return -EFAULT;
93762 +
93763 + return 0;
93764 +}
93765 +
93766 +static size_t get_gr_arg_wrapper_size_normal(void)
93767 +{
93768 + return sizeof(struct gr_arg_wrapper);
93769 +}
93770 +
93771 +#ifdef CONFIG_COMPAT
93772 +extern int copy_gr_arg_wrapper_compat(const char *buf, struct gr_arg_wrapper *uwrap);
93773 +extern int copy_gr_arg_compat(const struct gr_arg __user *buf, struct gr_arg *arg);
93774 +extern int copy_acl_object_label_compat(struct acl_object_label *obj, const struct acl_object_label *userp);
93775 +extern int copy_acl_subject_label_compat(struct acl_subject_label *subj, const struct acl_subject_label *userp);
93776 +extern int copy_acl_role_label_compat(struct acl_role_label *role, const struct acl_role_label *userp);
93777 +extern int copy_role_allowed_ip_compat(struct role_allowed_ip *roleip, const struct role_allowed_ip *userp);
93778 +extern int copy_role_transition_compat(struct role_transition *trans, const struct role_transition *userp);
93779 +extern int copy_gr_hash_struct_compat(struct gr_hash_struct *hash, const struct gr_hash_struct *userp);
93780 +extern int copy_pointer_from_array_compat(void *ptr, unsigned long idx, const void *userp);
93781 +extern int copy_acl_ip_label_compat(struct acl_ip_label *ip, const struct acl_ip_label *userp);
93782 +extern int copy_sprole_pw_compat(struct sprole_pw *pw, unsigned long idx, const struct sprole_pw *userp);
93783 +extern size_t get_gr_arg_wrapper_size_compat(void);
93784 +
93785 +int (* copy_gr_arg_wrapper)(const char *buf, struct gr_arg_wrapper *uwrap) __read_only;
93786 +int (* copy_gr_arg)(const struct gr_arg *buf, struct gr_arg *arg) __read_only;
93787 +int (* copy_acl_object_label)(struct acl_object_label *obj, const struct acl_object_label *userp) __read_only;
93788 +int (* copy_acl_subject_label)(struct acl_subject_label *subj, const struct acl_subject_label *userp) __read_only;
93789 +int (* copy_acl_role_label)(struct acl_role_label *role, const struct acl_role_label *userp) __read_only;
93790 +int (* copy_acl_ip_label)(struct acl_ip_label *ip, const struct acl_ip_label *userp) __read_only;
93791 +int (* copy_pointer_from_array)(void *ptr, unsigned long idx, const void *userp) __read_only;
93792 +int (* copy_sprole_pw)(struct sprole_pw *pw, unsigned long idx, const struct sprole_pw *userp) __read_only;
93793 +int (* copy_gr_hash_struct)(struct gr_hash_struct *hash, const struct gr_hash_struct *userp) __read_only;
93794 +int (* copy_role_transition)(struct role_transition *trans, const struct role_transition *userp) __read_only;
93795 +int (* copy_role_allowed_ip)(struct role_allowed_ip *roleip, const struct role_allowed_ip *userp) __read_only;
93796 +size_t (* get_gr_arg_wrapper_size)(void) __read_only;
93797 +
93798 +#else
93799 +#define copy_gr_arg_wrapper copy_gr_arg_wrapper_normal
93800 +#define copy_gr_arg copy_gr_arg_normal
93801 +#define copy_gr_hash_struct copy_gr_hash_struct_normal
93802 +#define copy_acl_object_label copy_acl_object_label_normal
93803 +#define copy_acl_subject_label copy_acl_subject_label_normal
93804 +#define copy_acl_role_label copy_acl_role_label_normal
93805 +#define copy_acl_ip_label copy_acl_ip_label_normal
93806 +#define copy_pointer_from_array copy_pointer_from_array_normal
93807 +#define copy_sprole_pw copy_sprole_pw_normal
93808 +#define copy_role_transition copy_role_transition_normal
93809 +#define copy_role_allowed_ip copy_role_allowed_ip_normal
93810 +#define get_gr_arg_wrapper_size get_gr_arg_wrapper_size_normal
93811 +#endif
93812 +
93813 +static struct acl_subject_label *
93814 +lookup_subject_map(const struct acl_subject_label *userp)
93815 +{
93816 + unsigned int index = gr_shash(userp, polstate->subj_map_set.s_size);
93817 + struct subject_map *match;
93818 +
93819 + match = polstate->subj_map_set.s_hash[index];
93820 +
93821 + while (match && match->user != userp)
93822 + match = match->next;
93823 +
93824 + if (match != NULL)
93825 + return match->kernel;
93826 + else
93827 + return NULL;
93828 +}
93829 +
93830 +static void
93831 +insert_subj_map_entry(struct subject_map *subjmap)
93832 +{
93833 + unsigned int index = gr_shash(subjmap->user, polstate->subj_map_set.s_size);
93834 + struct subject_map **curr;
93835 +
93836 + subjmap->prev = NULL;
93837 +
93838 + curr = &polstate->subj_map_set.s_hash[index];
93839 + if (*curr != NULL)
93840 + (*curr)->prev = subjmap;
93841 +
93842 + subjmap->next = *curr;
93843 + *curr = subjmap;
93844 +
93845 + return;
93846 +}
93847 +
93848 +static void
93849 +__insert_acl_role_label(struct acl_role_label *role, uid_t uidgid)
93850 +{
93851 + unsigned int index =
93852 + gr_rhash(uidgid, role->roletype & (GR_ROLE_USER | GR_ROLE_GROUP), polstate->acl_role_set.r_size);
93853 + struct acl_role_label **curr;
93854 + struct acl_role_label *tmp, *tmp2;
93855 +
93856 + curr = &polstate->acl_role_set.r_hash[index];
93857 +
93858 + /* simple case, slot is empty, just set it to our role */
93859 + if (*curr == NULL) {
93860 + *curr = role;
93861 + } else {
93862 + /* example:
93863 + 1 -> 2 -> 3 (adding 2 -> 3 to here)
93864 + 2 -> 3
93865 + */
93866 + /* first check to see if we can already be reached via this slot */
93867 + tmp = *curr;
93868 + while (tmp && tmp != role)
93869 + tmp = tmp->next;
93870 + if (tmp == role) {
93871 + /* we don't need to add ourselves to this slot's chain */
93872 + return;
93873 + }
93874 + /* we need to add ourselves to this chain, two cases */
93875 + if (role->next == NULL) {
93876 + /* simple case, append the current chain to our role */
93877 + role->next = *curr;
93878 + *curr = role;
93879 + } else {
93880 + /* 1 -> 2 -> 3 -> 4
93881 + 2 -> 3 -> 4
93882 + 3 -> 4 (adding 1 -> 2 -> 3 -> 4 to here)
93883 + */
93884 + /* trickier case: walk our role's chain until we find
93885 + the role for the start of the current slot's chain */
93886 + tmp = role;
93887 + tmp2 = *curr;
93888 + while (tmp->next && tmp->next != tmp2)
93889 + tmp = tmp->next;
93890 + if (tmp->next == tmp2) {
93891 + /* from example above, we found 3, so just
93892 + replace this slot's chain with ours */
93893 + *curr = role;
93894 + } else {
93895 + /* we didn't find a subset of our role's chain
93896 + in the current slot's chain, so append their
93897 + chain to ours, and set us as the first role in
93898 + the slot's chain
93899 +
93900 + we could fold this case with the case above,
93901 + but making it explicit for clarity
93902 + */
93903 + tmp->next = tmp2;
93904 + *curr = role;
93905 + }
93906 + }
93907 + }
93908 +
93909 + return;
93910 +}
93911 +
93912 +static void
93913 +insert_acl_role_label(struct acl_role_label *role)
93914 +{
93915 + int i;
93916 +
93917 + if (polstate->role_list == NULL) {
93918 + polstate->role_list = role;
93919 + role->prev = NULL;
93920 + } else {
93921 + role->prev = polstate->role_list;
93922 + polstate->role_list = role;
93923 + }
93924 +
93925 + /* used for hash chains */
93926 + role->next = NULL;
93927 +
93928 + if (role->roletype & GR_ROLE_DOMAIN) {
93929 + for (i = 0; i < role->domain_child_num; i++)
93930 + __insert_acl_role_label(role, role->domain_children[i]);
93931 + } else
93932 + __insert_acl_role_label(role, role->uidgid);
93933 +}
93934 +
93935 +static int
93936 +insert_name_entry(char *name, const u64 inode, const dev_t device, __u8 deleted)
93937 +{
93938 + struct name_entry **curr, *nentry;
93939 + struct inodev_entry *ientry;
93940 + unsigned int len = strlen(name);
93941 + unsigned int key = full_name_hash(name, len);
93942 + unsigned int index = key % polstate->name_set.n_size;
93943 +
93944 + curr = &polstate->name_set.n_hash[index];
93945 +
93946 + while (*curr && ((*curr)->key != key || !gr_streq((*curr)->name, name, (*curr)->len, len)))
93947 + curr = &((*curr)->next);
93948 +
93949 + if (*curr != NULL)
93950 + return 1;
93951 +
93952 + nentry = acl_alloc(sizeof (struct name_entry));
93953 + if (nentry == NULL)
93954 + return 0;
93955 + ientry = acl_alloc(sizeof (struct inodev_entry));
93956 + if (ientry == NULL)
93957 + return 0;
93958 + ientry->nentry = nentry;
93959 +
93960 + nentry->key = key;
93961 + nentry->name = name;
93962 + nentry->inode = inode;
93963 + nentry->device = device;
93964 + nentry->len = len;
93965 + nentry->deleted = deleted;
93966 +
93967 + nentry->prev = NULL;
93968 + curr = &polstate->name_set.n_hash[index];
93969 + if (*curr != NULL)
93970 + (*curr)->prev = nentry;
93971 + nentry->next = *curr;
93972 + *curr = nentry;
93973 +
93974 + /* insert us into the table searchable by inode/dev */
93975 + __insert_inodev_entry(polstate, ientry);
93976 +
93977 + return 1;
93978 +}
93979 +
93980 +/* allocating chained hash tables, so optimal size is where lambda ~ 1 */
93981 +
93982 +static void *
93983 +create_table(__u32 * len, int elementsize)
93984 +{
93985 + unsigned int table_sizes[] = {
93986 + 7, 13, 31, 61, 127, 251, 509, 1021, 2039, 4093, 8191, 16381,
93987 + 32749, 65521, 131071, 262139, 524287, 1048573, 2097143,
93988 + 4194301, 8388593, 16777213, 33554393, 67108859
93989 + };
93990 + void *newtable = NULL;
93991 + unsigned int pwr = 0;
93992 +
93993 + while ((pwr < ((sizeof (table_sizes) / sizeof (table_sizes[0])) - 1)) &&
93994 + table_sizes[pwr] <= *len)
93995 + pwr++;
93996 +
93997 + if (table_sizes[pwr] <= *len || (table_sizes[pwr] > ULONG_MAX / elementsize))
93998 + return newtable;
93999 +
94000 + if ((table_sizes[pwr] * elementsize) <= PAGE_SIZE)
94001 + newtable =
94002 + kmalloc(table_sizes[pwr] * elementsize, GFP_KERNEL);
94003 + else
94004 + newtable = vmalloc(table_sizes[pwr] * elementsize);
94005 +
94006 + *len = table_sizes[pwr];
94007 +
94008 + return newtable;
94009 +}
94010 +
94011 +static int
94012 +init_variables(const struct gr_arg *arg, bool reload)
94013 +{
94014 + struct task_struct *reaper = init_pid_ns.child_reaper;
94015 + unsigned int stacksize;
94016 +
94017 + polstate->subj_map_set.s_size = arg->role_db.num_subjects;
94018 + polstate->acl_role_set.r_size = arg->role_db.num_roles + arg->role_db.num_domain_children;
94019 + polstate->name_set.n_size = arg->role_db.num_objects;
94020 + polstate->inodev_set.i_size = arg->role_db.num_objects;
94021 +
94022 + if (!polstate->subj_map_set.s_size || !polstate->acl_role_set.r_size ||
94023 + !polstate->name_set.n_size || !polstate->inodev_set.i_size)
94024 + return 1;
94025 +
94026 + if (!reload) {
94027 + if (!gr_init_uidset())
94028 + return 1;
94029 + }
94030 +
94031 + /* set up the stack that holds allocation info */
94032 +
94033 + stacksize = arg->role_db.num_pointers + 5;
94034 +
94035 + if (!acl_alloc_stack_init(stacksize))
94036 + return 1;
94037 +
94038 + if (!reload) {
94039 + /* grab reference for the real root dentry and vfsmount */
94040 + get_fs_root(reaper->fs, &gr_real_root);
94041 +
94042 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
94043 + 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));
94044 +#endif
94045 +
94046 + fakefs_obj_rw = kzalloc(sizeof(struct acl_object_label), GFP_KERNEL);
94047 + if (fakefs_obj_rw == NULL)
94048 + return 1;
94049 + fakefs_obj_rw->mode = GR_FIND | GR_READ | GR_WRITE;
94050 +
94051 + fakefs_obj_rwx = kzalloc(sizeof(struct acl_object_label), GFP_KERNEL);
94052 + if (fakefs_obj_rwx == NULL)
94053 + return 1;
94054 + fakefs_obj_rwx->mode = GR_FIND | GR_READ | GR_WRITE | GR_EXEC;
94055 + }
94056 +
94057 + polstate->subj_map_set.s_hash =
94058 + (struct subject_map **) create_table(&polstate->subj_map_set.s_size, sizeof(void *));
94059 + polstate->acl_role_set.r_hash =
94060 + (struct acl_role_label **) create_table(&polstate->acl_role_set.r_size, sizeof(void *));
94061 + polstate->name_set.n_hash = (struct name_entry **) create_table(&polstate->name_set.n_size, sizeof(void *));
94062 + polstate->inodev_set.i_hash =
94063 + (struct inodev_entry **) create_table(&polstate->inodev_set.i_size, sizeof(void *));
94064 +
94065 + if (!polstate->subj_map_set.s_hash || !polstate->acl_role_set.r_hash ||
94066 + !polstate->name_set.n_hash || !polstate->inodev_set.i_hash)
94067 + return 1;
94068 +
94069 + memset(polstate->subj_map_set.s_hash, 0,
94070 + sizeof(struct subject_map *) * polstate->subj_map_set.s_size);
94071 + memset(polstate->acl_role_set.r_hash, 0,
94072 + sizeof (struct acl_role_label *) * polstate->acl_role_set.r_size);
94073 + memset(polstate->name_set.n_hash, 0,
94074 + sizeof (struct name_entry *) * polstate->name_set.n_size);
94075 + memset(polstate->inodev_set.i_hash, 0,
94076 + sizeof (struct inodev_entry *) * polstate->inodev_set.i_size);
94077 +
94078 + return 0;
94079 +}
94080 +
94081 +/* free information not needed after startup
94082 + currently contains user->kernel pointer mappings for subjects
94083 +*/
94084 +
94085 +static void
94086 +free_init_variables(void)
94087 +{
94088 + __u32 i;
94089 +
94090 + if (polstate->subj_map_set.s_hash) {
94091 + for (i = 0; i < polstate->subj_map_set.s_size; i++) {
94092 + if (polstate->subj_map_set.s_hash[i]) {
94093 + kfree(polstate->subj_map_set.s_hash[i]);
94094 + polstate->subj_map_set.s_hash[i] = NULL;
94095 + }
94096 + }
94097 +
94098 + if ((polstate->subj_map_set.s_size * sizeof (struct subject_map *)) <=
94099 + PAGE_SIZE)
94100 + kfree(polstate->subj_map_set.s_hash);
94101 + else
94102 + vfree(polstate->subj_map_set.s_hash);
94103 + }
94104 +
94105 + return;
94106 +}
94107 +
94108 +static void
94109 +free_variables(bool reload)
94110 +{
94111 + struct acl_subject_label *s;
94112 + struct acl_role_label *r;
94113 + struct task_struct *task, *task2;
94114 + unsigned int x;
94115 +
94116 + if (!reload) {
94117 + gr_clear_learn_entries();
94118 +
94119 + read_lock(&tasklist_lock);
94120 + do_each_thread(task2, task) {
94121 + task->acl_sp_role = 0;
94122 + task->acl_role_id = 0;
94123 + task->inherited = 0;
94124 + task->acl = NULL;
94125 + task->role = NULL;
94126 + } while_each_thread(task2, task);
94127 + read_unlock(&tasklist_lock);
94128 +
94129 + kfree(fakefs_obj_rw);
94130 + fakefs_obj_rw = NULL;
94131 + kfree(fakefs_obj_rwx);
94132 + fakefs_obj_rwx = NULL;
94133 +
94134 + /* release the reference to the real root dentry and vfsmount */
94135 + path_put(&gr_real_root);
94136 + memset(&gr_real_root, 0, sizeof(gr_real_root));
94137 + }
94138 +
94139 + /* free all object hash tables */
94140 +
94141 + FOR_EACH_ROLE_START(r)
94142 + if (r->subj_hash == NULL)
94143 + goto next_role;
94144 + FOR_EACH_SUBJECT_START(r, s, x)
94145 + if (s->obj_hash == NULL)
94146 + break;
94147 + if ((s->obj_hash_size * sizeof (struct acl_object_label *)) <= PAGE_SIZE)
94148 + kfree(s->obj_hash);
94149 + else
94150 + vfree(s->obj_hash);
94151 + FOR_EACH_SUBJECT_END(s, x)
94152 + FOR_EACH_NESTED_SUBJECT_START(r, s)
94153 + if (s->obj_hash == NULL)
94154 + break;
94155 + if ((s->obj_hash_size * sizeof (struct acl_object_label *)) <= PAGE_SIZE)
94156 + kfree(s->obj_hash);
94157 + else
94158 + vfree(s->obj_hash);
94159 + FOR_EACH_NESTED_SUBJECT_END(s)
94160 + if ((r->subj_hash_size * sizeof (struct acl_subject_label *)) <= PAGE_SIZE)
94161 + kfree(r->subj_hash);
94162 + else
94163 + vfree(r->subj_hash);
94164 + r->subj_hash = NULL;
94165 +next_role:
94166 + FOR_EACH_ROLE_END(r)
94167 +
94168 + acl_free_all();
94169 +
94170 + if (polstate->acl_role_set.r_hash) {
94171 + if ((polstate->acl_role_set.r_size * sizeof (struct acl_role_label *)) <=
94172 + PAGE_SIZE)
94173 + kfree(polstate->acl_role_set.r_hash);
94174 + else
94175 + vfree(polstate->acl_role_set.r_hash);
94176 + }
94177 + if (polstate->name_set.n_hash) {
94178 + if ((polstate->name_set.n_size * sizeof (struct name_entry *)) <=
94179 + PAGE_SIZE)
94180 + kfree(polstate->name_set.n_hash);
94181 + else
94182 + vfree(polstate->name_set.n_hash);
94183 + }
94184 +
94185 + if (polstate->inodev_set.i_hash) {
94186 + if ((polstate->inodev_set.i_size * sizeof (struct inodev_entry *)) <=
94187 + PAGE_SIZE)
94188 + kfree(polstate->inodev_set.i_hash);
94189 + else
94190 + vfree(polstate->inodev_set.i_hash);
94191 + }
94192 +
94193 + if (!reload)
94194 + gr_free_uidset();
94195 +
94196 + memset(&polstate->name_set, 0, sizeof (struct name_db));
94197 + memset(&polstate->inodev_set, 0, sizeof (struct inodev_db));
94198 + memset(&polstate->acl_role_set, 0, sizeof (struct acl_role_db));
94199 + memset(&polstate->subj_map_set, 0, sizeof (struct acl_subj_map_db));
94200 +
94201 + polstate->default_role = NULL;
94202 + polstate->kernel_role = NULL;
94203 + polstate->role_list = NULL;
94204 +
94205 + return;
94206 +}
94207 +
94208 +static struct acl_subject_label *
94209 +do_copy_user_subj(struct acl_subject_label *userp, struct acl_role_label *role, int *already_copied);
94210 +
94211 +static int alloc_and_copy_string(char **name, unsigned int maxlen)
94212 +{
94213 + unsigned int len = strnlen_user(*name, maxlen);
94214 + char *tmp;
94215 +
94216 + if (!len || len >= maxlen)
94217 + return -EINVAL;
94218 +
94219 + if ((tmp = (char *) acl_alloc(len)) == NULL)
94220 + return -ENOMEM;
94221 +
94222 + if (copy_from_user(tmp, *name, len))
94223 + return -EFAULT;
94224 +
94225 + tmp[len-1] = '\0';
94226 + *name = tmp;
94227 +
94228 + return 0;
94229 +}
94230 +
94231 +static int
94232 +copy_user_glob(struct acl_object_label *obj)
94233 +{
94234 + struct acl_object_label *g_tmp, **guser;
94235 + int error;
94236 +
94237 + if (obj->globbed == NULL)
94238 + return 0;
94239 +
94240 + guser = &obj->globbed;
94241 + while (*guser) {
94242 + g_tmp = (struct acl_object_label *)
94243 + acl_alloc(sizeof (struct acl_object_label));
94244 + if (g_tmp == NULL)
94245 + return -ENOMEM;
94246 +
94247 + if (copy_acl_object_label(g_tmp, *guser))
94248 + return -EFAULT;
94249 +
94250 + error = alloc_and_copy_string(&g_tmp->filename, PATH_MAX);
94251 + if (error)
94252 + return error;
94253 +
94254 + *guser = g_tmp;
94255 + guser = &(g_tmp->next);
94256 + }
94257 +
94258 + return 0;
94259 +}
94260 +
94261 +static int
94262 +copy_user_objs(struct acl_object_label *userp, struct acl_subject_label *subj,
94263 + struct acl_role_label *role)
94264 +{
94265 + struct acl_object_label *o_tmp;
94266 + int ret;
94267 +
94268 + while (userp) {
94269 + if ((o_tmp = (struct acl_object_label *)
94270 + acl_alloc(sizeof (struct acl_object_label))) == NULL)
94271 + return -ENOMEM;
94272 +
94273 + if (copy_acl_object_label(o_tmp, userp))
94274 + return -EFAULT;
94275 +
94276 + userp = o_tmp->prev;
94277 +
94278 + ret = alloc_and_copy_string(&o_tmp->filename, PATH_MAX);
94279 + if (ret)
94280 + return ret;
94281 +
94282 + insert_acl_obj_label(o_tmp, subj);
94283 + if (!insert_name_entry(o_tmp->filename, o_tmp->inode,
94284 + o_tmp->device, (o_tmp->mode & GR_DELETED) ? 1 : 0))
94285 + return -ENOMEM;
94286 +
94287 + ret = copy_user_glob(o_tmp);
94288 + if (ret)
94289 + return ret;
94290 +
94291 + if (o_tmp->nested) {
94292 + int already_copied;
94293 +
94294 + o_tmp->nested = do_copy_user_subj(o_tmp->nested, role, &already_copied);
94295 + if (IS_ERR(o_tmp->nested))
94296 + return PTR_ERR(o_tmp->nested);
94297 +
94298 + /* insert into nested subject list if we haven't copied this one yet
94299 + to prevent duplicate entries */
94300 + if (!already_copied) {
94301 + o_tmp->nested->next = role->hash->first;
94302 + role->hash->first = o_tmp->nested;
94303 + }
94304 + }
94305 + }
94306 +
94307 + return 0;
94308 +}
94309 +
94310 +static __u32
94311 +count_user_subjs(struct acl_subject_label *userp)
94312 +{
94313 + struct acl_subject_label s_tmp;
94314 + __u32 num = 0;
94315 +
94316 + while (userp) {
94317 + if (copy_acl_subject_label(&s_tmp, userp))
94318 + break;
94319 +
94320 + userp = s_tmp.prev;
94321 + }
94322 +
94323 + return num;
94324 +}
94325 +
94326 +static int
94327 +copy_user_allowedips(struct acl_role_label *rolep)
94328 +{
94329 + struct role_allowed_ip *ruserip, *rtmp = NULL, *rlast;
94330 +
94331 + ruserip = rolep->allowed_ips;
94332 +
94333 + while (ruserip) {
94334 + rlast = rtmp;
94335 +
94336 + if ((rtmp = (struct role_allowed_ip *)
94337 + acl_alloc(sizeof (struct role_allowed_ip))) == NULL)
94338 + return -ENOMEM;
94339 +
94340 + if (copy_role_allowed_ip(rtmp, ruserip))
94341 + return -EFAULT;
94342 +
94343 + ruserip = rtmp->prev;
94344 +
94345 + if (!rlast) {
94346 + rtmp->prev = NULL;
94347 + rolep->allowed_ips = rtmp;
94348 + } else {
94349 + rlast->next = rtmp;
94350 + rtmp->prev = rlast;
94351 + }
94352 +
94353 + if (!ruserip)
94354 + rtmp->next = NULL;
94355 + }
94356 +
94357 + return 0;
94358 +}
94359 +
94360 +static int
94361 +copy_user_transitions(struct acl_role_label *rolep)
94362 +{
94363 + struct role_transition *rusertp, *rtmp = NULL, *rlast;
94364 + int error;
94365 +
94366 + rusertp = rolep->transitions;
94367 +
94368 + while (rusertp) {
94369 + rlast = rtmp;
94370 +
94371 + if ((rtmp = (struct role_transition *)
94372 + acl_alloc(sizeof (struct role_transition))) == NULL)
94373 + return -ENOMEM;
94374 +
94375 + if (copy_role_transition(rtmp, rusertp))
94376 + return -EFAULT;
94377 +
94378 + rusertp = rtmp->prev;
94379 +
94380 + error = alloc_and_copy_string(&rtmp->rolename, GR_SPROLE_LEN);
94381 + if (error)
94382 + return error;
94383 +
94384 + if (!rlast) {
94385 + rtmp->prev = NULL;
94386 + rolep->transitions = rtmp;
94387 + } else {
94388 + rlast->next = rtmp;
94389 + rtmp->prev = rlast;
94390 + }
94391 +
94392 + if (!rusertp)
94393 + rtmp->next = NULL;
94394 + }
94395 +
94396 + return 0;
94397 +}
94398 +
94399 +static __u32 count_user_objs(const struct acl_object_label __user *userp)
94400 +{
94401 + struct acl_object_label o_tmp;
94402 + __u32 num = 0;
94403 +
94404 + while (userp) {
94405 + if (copy_acl_object_label(&o_tmp, userp))
94406 + break;
94407 +
94408 + userp = o_tmp.prev;
94409 + num++;
94410 + }
94411 +
94412 + return num;
94413 +}
94414 +
94415 +static struct acl_subject_label *
94416 +do_copy_user_subj(struct acl_subject_label *userp, struct acl_role_label *role, int *already_copied)
94417 +{
94418 + struct acl_subject_label *s_tmp = NULL, *s_tmp2;
94419 + __u32 num_objs;
94420 + struct acl_ip_label **i_tmp, *i_utmp2;
94421 + struct gr_hash_struct ghash;
94422 + struct subject_map *subjmap;
94423 + unsigned int i_num;
94424 + int err;
94425 +
94426 + if (already_copied != NULL)
94427 + *already_copied = 0;
94428 +
94429 + s_tmp = lookup_subject_map(userp);
94430 +
94431 + /* we've already copied this subject into the kernel, just return
94432 + the reference to it, and don't copy it over again
94433 + */
94434 + if (s_tmp) {
94435 + if (already_copied != NULL)
94436 + *already_copied = 1;
94437 + return(s_tmp);
94438 + }
94439 +
94440 + if ((s_tmp = (struct acl_subject_label *)
94441 + acl_alloc(sizeof (struct acl_subject_label))) == NULL)
94442 + return ERR_PTR(-ENOMEM);
94443 +
94444 + subjmap = (struct subject_map *)kmalloc(sizeof (struct subject_map), GFP_KERNEL);
94445 + if (subjmap == NULL)
94446 + return ERR_PTR(-ENOMEM);
94447 +
94448 + subjmap->user = userp;
94449 + subjmap->kernel = s_tmp;
94450 + insert_subj_map_entry(subjmap);
94451 +
94452 + if (copy_acl_subject_label(s_tmp, userp))
94453 + return ERR_PTR(-EFAULT);
94454 +
94455 + err = alloc_and_copy_string(&s_tmp->filename, PATH_MAX);
94456 + if (err)
94457 + return ERR_PTR(err);
94458 +
94459 + if (!strcmp(s_tmp->filename, "/"))
94460 + role->root_label = s_tmp;
94461 +
94462 + if (copy_gr_hash_struct(&ghash, s_tmp->hash))
94463 + return ERR_PTR(-EFAULT);
94464 +
94465 + /* copy user and group transition tables */
94466 +
94467 + if (s_tmp->user_trans_num) {
94468 + uid_t *uidlist;
94469 +
94470 + uidlist = (uid_t *)acl_alloc_num(s_tmp->user_trans_num, sizeof(uid_t));
94471 + if (uidlist == NULL)
94472 + return ERR_PTR(-ENOMEM);
94473 + if (copy_from_user(uidlist, s_tmp->user_transitions, s_tmp->user_trans_num * sizeof(uid_t)))
94474 + return ERR_PTR(-EFAULT);
94475 +
94476 + s_tmp->user_transitions = uidlist;
94477 + }
94478 +
94479 + if (s_tmp->group_trans_num) {
94480 + gid_t *gidlist;
94481 +
94482 + gidlist = (gid_t *)acl_alloc_num(s_tmp->group_trans_num, sizeof(gid_t));
94483 + if (gidlist == NULL)
94484 + return ERR_PTR(-ENOMEM);
94485 + if (copy_from_user(gidlist, s_tmp->group_transitions, s_tmp->group_trans_num * sizeof(gid_t)))
94486 + return ERR_PTR(-EFAULT);
94487 +
94488 + s_tmp->group_transitions = gidlist;
94489 + }
94490 +
94491 + /* set up object hash table */
94492 + num_objs = count_user_objs(ghash.first);
94493 +
94494 + s_tmp->obj_hash_size = num_objs;
94495 + s_tmp->obj_hash =
94496 + (struct acl_object_label **)
94497 + create_table(&(s_tmp->obj_hash_size), sizeof(void *));
94498 +
94499 + if (!s_tmp->obj_hash)
94500 + return ERR_PTR(-ENOMEM);
94501 +
94502 + memset(s_tmp->obj_hash, 0,
94503 + s_tmp->obj_hash_size *
94504 + sizeof (struct acl_object_label *));
94505 +
94506 + /* add in objects */
94507 + err = copy_user_objs(ghash.first, s_tmp, role);
94508 +
94509 + if (err)
94510 + return ERR_PTR(err);
94511 +
94512 + /* set pointer for parent subject */
94513 + if (s_tmp->parent_subject) {
94514 + s_tmp2 = do_copy_user_subj(s_tmp->parent_subject, role, NULL);
94515 +
94516 + if (IS_ERR(s_tmp2))
94517 + return s_tmp2;
94518 +
94519 + s_tmp->parent_subject = s_tmp2;
94520 + }
94521 +
94522 + /* add in ip acls */
94523 +
94524 + if (!s_tmp->ip_num) {
94525 + s_tmp->ips = NULL;
94526 + goto insert;
94527 + }
94528 +
94529 + i_tmp =
94530 + (struct acl_ip_label **) acl_alloc_num(s_tmp->ip_num,
94531 + sizeof (struct acl_ip_label *));
94532 +
94533 + if (!i_tmp)
94534 + return ERR_PTR(-ENOMEM);
94535 +
94536 + for (i_num = 0; i_num < s_tmp->ip_num; i_num++) {
94537 + *(i_tmp + i_num) =
94538 + (struct acl_ip_label *)
94539 + acl_alloc(sizeof (struct acl_ip_label));
94540 + if (!*(i_tmp + i_num))
94541 + return ERR_PTR(-ENOMEM);
94542 +
94543 + if (copy_pointer_from_array(&i_utmp2, i_num, s_tmp->ips))
94544 + return ERR_PTR(-EFAULT);
94545 +
94546 + if (copy_acl_ip_label(*(i_tmp + i_num), i_utmp2))
94547 + return ERR_PTR(-EFAULT);
94548 +
94549 + if ((*(i_tmp + i_num))->iface == NULL)
94550 + continue;
94551 +
94552 + err = alloc_and_copy_string(&(*(i_tmp + i_num))->iface, IFNAMSIZ);
94553 + if (err)
94554 + return ERR_PTR(err);
94555 + }
94556 +
94557 + s_tmp->ips = i_tmp;
94558 +
94559 +insert:
94560 + if (!insert_name_entry(s_tmp->filename, s_tmp->inode,
94561 + s_tmp->device, (s_tmp->mode & GR_DELETED) ? 1 : 0))
94562 + return ERR_PTR(-ENOMEM);
94563 +
94564 + return s_tmp;
94565 +}
94566 +
94567 +static int
94568 +copy_user_subjs(struct acl_subject_label *userp, struct acl_role_label *role)
94569 +{
94570 + struct acl_subject_label s_pre;
94571 + struct acl_subject_label * ret;
94572 + int err;
94573 +
94574 + while (userp) {
94575 + if (copy_acl_subject_label(&s_pre, userp))
94576 + return -EFAULT;
94577 +
94578 + ret = do_copy_user_subj(userp, role, NULL);
94579 +
94580 + err = PTR_ERR(ret);
94581 + if (IS_ERR(ret))
94582 + return err;
94583 +
94584 + insert_acl_subj_label(ret, role);
94585 +
94586 + userp = s_pre.prev;
94587 + }
94588 +
94589 + return 0;
94590 +}
94591 +
94592 +static int
94593 +copy_user_acl(struct gr_arg *arg)
94594 +{
94595 + struct acl_role_label *r_tmp = NULL, **r_utmp, *r_utmp2;
94596 + struct acl_subject_label *subj_list;
94597 + struct sprole_pw *sptmp;
94598 + struct gr_hash_struct *ghash;
94599 + uid_t *domainlist;
94600 + unsigned int r_num;
94601 + int err = 0;
94602 + __u16 i;
94603 + __u32 num_subjs;
94604 +
94605 + /* we need a default and kernel role */
94606 + if (arg->role_db.num_roles < 2)
94607 + return -EINVAL;
94608 +
94609 + /* copy special role authentication info from userspace */
94610 +
94611 + polstate->num_sprole_pws = arg->num_sprole_pws;
94612 + polstate->acl_special_roles = (struct sprole_pw **) acl_alloc_num(polstate->num_sprole_pws, sizeof(struct sprole_pw *));
94613 +
94614 + if (!polstate->acl_special_roles && polstate->num_sprole_pws)
94615 + return -ENOMEM;
94616 +
94617 + for (i = 0; i < polstate->num_sprole_pws; i++) {
94618 + sptmp = (struct sprole_pw *) acl_alloc(sizeof(struct sprole_pw));
94619 + if (!sptmp)
94620 + return -ENOMEM;
94621 + if (copy_sprole_pw(sptmp, i, arg->sprole_pws))
94622 + return -EFAULT;
94623 +
94624 + err = alloc_and_copy_string((char **)&sptmp->rolename, GR_SPROLE_LEN);
94625 + if (err)
94626 + return err;
94627 +
94628 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
94629 + printk(KERN_ALERT "Copying special role %s\n", sptmp->rolename);
94630 +#endif
94631 +
94632 + polstate->acl_special_roles[i] = sptmp;
94633 + }
94634 +
94635 + r_utmp = (struct acl_role_label **) arg->role_db.r_table;
94636 +
94637 + for (r_num = 0; r_num < arg->role_db.num_roles; r_num++) {
94638 + r_tmp = acl_alloc(sizeof (struct acl_role_label));
94639 +
94640 + if (!r_tmp)
94641 + return -ENOMEM;
94642 +
94643 + if (copy_pointer_from_array(&r_utmp2, r_num, r_utmp))
94644 + return -EFAULT;
94645 +
94646 + if (copy_acl_role_label(r_tmp, r_utmp2))
94647 + return -EFAULT;
94648 +
94649 + err = alloc_and_copy_string(&r_tmp->rolename, GR_SPROLE_LEN);
94650 + if (err)
94651 + return err;
94652 +
94653 + if (!strcmp(r_tmp->rolename, "default")
94654 + && (r_tmp->roletype & GR_ROLE_DEFAULT)) {
94655 + polstate->default_role = r_tmp;
94656 + } else if (!strcmp(r_tmp->rolename, ":::kernel:::")) {
94657 + polstate->kernel_role = r_tmp;
94658 + }
94659 +
94660 + if ((ghash = (struct gr_hash_struct *) acl_alloc(sizeof(struct gr_hash_struct))) == NULL)
94661 + return -ENOMEM;
94662 +
94663 + if (copy_gr_hash_struct(ghash, r_tmp->hash))
94664 + return -EFAULT;
94665 +
94666 + r_tmp->hash = ghash;
94667 +
94668 + num_subjs = count_user_subjs(r_tmp->hash->first);
94669 +
94670 + r_tmp->subj_hash_size = num_subjs;
94671 + r_tmp->subj_hash =
94672 + (struct acl_subject_label **)
94673 + create_table(&(r_tmp->subj_hash_size), sizeof(void *));
94674 +
94675 + if (!r_tmp->subj_hash)
94676 + return -ENOMEM;
94677 +
94678 + err = copy_user_allowedips(r_tmp);
94679 + if (err)
94680 + return err;
94681 +
94682 + /* copy domain info */
94683 + if (r_tmp->domain_children != NULL) {
94684 + domainlist = acl_alloc_num(r_tmp->domain_child_num, sizeof(uid_t));
94685 + if (domainlist == NULL)
94686 + return -ENOMEM;
94687 +
94688 + if (copy_from_user(domainlist, r_tmp->domain_children, r_tmp->domain_child_num * sizeof(uid_t)))
94689 + return -EFAULT;
94690 +
94691 + r_tmp->domain_children = domainlist;
94692 + }
94693 +
94694 + err = copy_user_transitions(r_tmp);
94695 + if (err)
94696 + return err;
94697 +
94698 + memset(r_tmp->subj_hash, 0,
94699 + r_tmp->subj_hash_size *
94700 + sizeof (struct acl_subject_label *));
94701 +
94702 + /* acquire the list of subjects, then NULL out
94703 + the list prior to parsing the subjects for this role,
94704 + as during this parsing the list is replaced with a list
94705 + of *nested* subjects for the role
94706 + */
94707 + subj_list = r_tmp->hash->first;
94708 +
94709 + /* set nested subject list to null */
94710 + r_tmp->hash->first = NULL;
94711 +
94712 + err = copy_user_subjs(subj_list, r_tmp);
94713 +
94714 + if (err)
94715 + return err;
94716 +
94717 + insert_acl_role_label(r_tmp);
94718 + }
94719 +
94720 + if (polstate->default_role == NULL || polstate->kernel_role == NULL)
94721 + return -EINVAL;
94722 +
94723 + return err;
94724 +}
94725 +
94726 +static int gracl_reload_apply_policies(void *reload)
94727 +{
94728 + struct gr_reload_state *reload_state = (struct gr_reload_state *)reload;
94729 + struct task_struct *task, *task2;
94730 + struct acl_role_label *role, *rtmp;
94731 + struct acl_subject_label *subj;
94732 + const struct cred *cred;
94733 + int role_applied;
94734 + int ret = 0;
94735 +
94736 + memcpy(&reload_state->oldpolicy, reload_state->oldpolicy_ptr, sizeof(struct gr_policy_state));
94737 + memcpy(&reload_state->oldalloc, reload_state->oldalloc_ptr, sizeof(struct gr_alloc_state));
94738 +
94739 + /* first make sure we'll be able to apply the new policy cleanly */
94740 + do_each_thread(task2, task) {
94741 + if (task->exec_file == NULL)
94742 + continue;
94743 + role_applied = 0;
94744 + if (!reload_state->oldmode && task->role->roletype & GR_ROLE_SPECIAL) {
94745 + /* preserve special roles */
94746 + FOR_EACH_ROLE_START(role)
94747 + if ((role->roletype & GR_ROLE_SPECIAL) && !strcmp(task->role->rolename, role->rolename)) {
94748 + rtmp = task->role;
94749 + task->role = role;
94750 + role_applied = 1;
94751 + break;
94752 + }
94753 + FOR_EACH_ROLE_END(role)
94754 + }
94755 + if (!role_applied) {
94756 + cred = __task_cred(task);
94757 + rtmp = task->role;
94758 + task->role = __lookup_acl_role_label(polstate, task, GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid));
94759 + }
94760 + /* this handles non-nested inherited subjects, nested subjects will still
94761 + be dropped currently */
94762 + subj = __gr_get_subject_for_task(polstate, task, task->acl->filename, 1);
94763 + task->tmpacl = __gr_get_subject_for_task(polstate, task, NULL, 1);
94764 + /* change the role back so that we've made no modifications to the policy */
94765 + task->role = rtmp;
94766 +
94767 + if (subj == NULL || task->tmpacl == NULL) {
94768 + ret = -EINVAL;
94769 + goto out;
94770 + }
94771 + } while_each_thread(task2, task);
94772 +
94773 + /* now actually apply the policy */
94774 +
94775 + do_each_thread(task2, task) {
94776 + if (task->exec_file) {
94777 + role_applied = 0;
94778 + if (!reload_state->oldmode && task->role->roletype & GR_ROLE_SPECIAL) {
94779 + /* preserve special roles */
94780 + FOR_EACH_ROLE_START(role)
94781 + if ((role->roletype & GR_ROLE_SPECIAL) && !strcmp(task->role->rolename, role->rolename)) {
94782 + task->role = role;
94783 + role_applied = 1;
94784 + break;
94785 + }
94786 + FOR_EACH_ROLE_END(role)
94787 + }
94788 + if (!role_applied) {
94789 + cred = __task_cred(task);
94790 + task->role = __lookup_acl_role_label(polstate, task, GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid));
94791 + }
94792 + /* this handles non-nested inherited subjects, nested subjects will still
94793 + be dropped currently */
94794 + if (!reload_state->oldmode && task->inherited)
94795 + subj = __gr_get_subject_for_task(polstate, task, task->acl->filename, 1);
94796 + else {
94797 + /* looked up and tagged to the task previously */
94798 + subj = task->tmpacl;
94799 + }
94800 + /* subj will be non-null */
94801 + __gr_apply_subject_to_task(polstate, task, subj);
94802 + if (reload_state->oldmode) {
94803 + task->acl_role_id = 0;
94804 + task->acl_sp_role = 0;
94805 + task->inherited = 0;
94806 + }
94807 + } else {
94808 + // it's a kernel process
94809 + task->role = polstate->kernel_role;
94810 + task->acl = polstate->kernel_role->root_label;
94811 +#ifdef CONFIG_GRKERNSEC_ACL_HIDEKERN
94812 + task->acl->mode &= ~GR_PROCFIND;
94813 +#endif
94814 + }
94815 + } while_each_thread(task2, task);
94816 +
94817 + memcpy(reload_state->oldpolicy_ptr, &reload_state->newpolicy, sizeof(struct gr_policy_state));
94818 + memcpy(reload_state->oldalloc_ptr, &reload_state->newalloc, sizeof(struct gr_alloc_state));
94819 +
94820 +out:
94821 +
94822 + return ret;
94823 +}
94824 +
94825 +static int gracl_reload(struct gr_arg *args, unsigned char oldmode)
94826 +{
94827 + struct gr_reload_state new_reload_state = { };
94828 + int err;
94829 +
94830 + new_reload_state.oldpolicy_ptr = polstate;
94831 + new_reload_state.oldalloc_ptr = current_alloc_state;
94832 + new_reload_state.oldmode = oldmode;
94833 +
94834 + current_alloc_state = &new_reload_state.newalloc;
94835 + polstate = &new_reload_state.newpolicy;
94836 +
94837 + /* everything relevant is now saved off, copy in the new policy */
94838 + if (init_variables(args, true)) {
94839 + gr_log_str(GR_DONT_AUDIT_GOOD, GR_INITF_ACL_MSG, GR_VERSION);
94840 + err = -ENOMEM;
94841 + goto error;
94842 + }
94843 +
94844 + err = copy_user_acl(args);
94845 + free_init_variables();
94846 + if (err)
94847 + goto error;
94848 + /* the new policy is copied in, with the old policy available via saved_state
94849 + first go through applying roles, making sure to preserve special roles
94850 + then apply new subjects, making sure to preserve inherited and nested subjects,
94851 + though currently only inherited subjects will be preserved
94852 + */
94853 + err = stop_machine(gracl_reload_apply_policies, &new_reload_state, NULL);
94854 + if (err)
94855 + goto error;
94856 +
94857 + /* we've now applied the new policy, so restore the old policy state to free it */
94858 + polstate = &new_reload_state.oldpolicy;
94859 + current_alloc_state = &new_reload_state.oldalloc;
94860 + free_variables(true);
94861 +
94862 + /* oldpolicy/oldalloc_ptr point to the new policy/alloc states as they were copied
94863 + to running_polstate/current_alloc_state inside stop_machine
94864 + */
94865 + err = 0;
94866 + goto out;
94867 +error:
94868 + /* on error of loading the new policy, we'll just keep the previous
94869 + policy set around
94870 + */
94871 + free_variables(true);
94872 +
94873 + /* doesn't affect runtime, but maintains consistent state */
94874 +out:
94875 + polstate = new_reload_state.oldpolicy_ptr;
94876 + current_alloc_state = new_reload_state.oldalloc_ptr;
94877 +
94878 + return err;
94879 +}
94880 +
94881 +static int
94882 +gracl_init(struct gr_arg *args)
94883 +{
94884 + int error = 0;
94885 +
94886 + memcpy(gr_system_salt, args->salt, GR_SALT_LEN);
94887 + memcpy(gr_system_sum, args->sum, GR_SHA_LEN);
94888 +
94889 + if (init_variables(args, false)) {
94890 + gr_log_str(GR_DONT_AUDIT_GOOD, GR_INITF_ACL_MSG, GR_VERSION);
94891 + error = -ENOMEM;
94892 + goto out;
94893 + }
94894 +
94895 + error = copy_user_acl(args);
94896 + free_init_variables();
94897 + if (error)
94898 + goto out;
94899 +
94900 + error = gr_set_acls(0);
94901 + if (error)
94902 + goto out;
94903 +
94904 + gr_enable_rbac_system();
94905 +
94906 + return 0;
94907 +
94908 +out:
94909 + free_variables(false);
94910 + return error;
94911 +}
94912 +
94913 +static int
94914 +lookup_special_role_auth(__u16 mode, const char *rolename, unsigned char **salt,
94915 + unsigned char **sum)
94916 +{
94917 + struct acl_role_label *r;
94918 + struct role_allowed_ip *ipp;
94919 + struct role_transition *trans;
94920 + unsigned int i;
94921 + int found = 0;
94922 + u32 curr_ip = current->signal->curr_ip;
94923 +
94924 + current->signal->saved_ip = curr_ip;
94925 +
94926 + /* check transition table */
94927 +
94928 + for (trans = current->role->transitions; trans; trans = trans->next) {
94929 + if (!strcmp(rolename, trans->rolename)) {
94930 + found = 1;
94931 + break;
94932 + }
94933 + }
94934 +
94935 + if (!found)
94936 + return 0;
94937 +
94938 + /* handle special roles that do not require authentication
94939 + and check ip */
94940 +
94941 + FOR_EACH_ROLE_START(r)
94942 + if (!strcmp(rolename, r->rolename) &&
94943 + (r->roletype & GR_ROLE_SPECIAL)) {
94944 + found = 0;
94945 + if (r->allowed_ips != NULL) {
94946 + for (ipp = r->allowed_ips; ipp; ipp = ipp->next) {
94947 + if ((ntohl(curr_ip) & ipp->netmask) ==
94948 + (ntohl(ipp->addr) & ipp->netmask))
94949 + found = 1;
94950 + }
94951 + } else
94952 + found = 2;
94953 + if (!found)
94954 + return 0;
94955 +
94956 + if (((mode == GR_SPROLE) && (r->roletype & GR_ROLE_NOPW)) ||
94957 + ((mode == GR_SPROLEPAM) && (r->roletype & GR_ROLE_PAM))) {
94958 + *salt = NULL;
94959 + *sum = NULL;
94960 + return 1;
94961 + }
94962 + }
94963 + FOR_EACH_ROLE_END(r)
94964 +
94965 + for (i = 0; i < polstate->num_sprole_pws; i++) {
94966 + if (!strcmp(rolename, polstate->acl_special_roles[i]->rolename)) {
94967 + *salt = polstate->acl_special_roles[i]->salt;
94968 + *sum = polstate->acl_special_roles[i]->sum;
94969 + return 1;
94970 + }
94971 + }
94972 +
94973 + return 0;
94974 +}
94975 +
94976 +int gr_check_secure_terminal(struct task_struct *task)
94977 +{
94978 + struct task_struct *p, *p2, *p3;
94979 + struct files_struct *files;
94980 + struct fdtable *fdt;
94981 + struct file *our_file = NULL, *file;
94982 + struct inode *our_inode = NULL;
94983 + int i;
94984 +
94985 + if (task->signal->tty == NULL)
94986 + return 1;
94987 +
94988 + files = get_files_struct(task);
94989 + if (files != NULL) {
94990 + rcu_read_lock();
94991 + fdt = files_fdtable(files);
94992 + for (i=0; i < fdt->max_fds; i++) {
94993 + file = fcheck_files(files, i);
94994 + if (file && (our_file == NULL) && (file->private_data == task->signal->tty)) {
94995 + get_file(file);
94996 + our_file = file;
94997 + }
94998 + }
94999 + rcu_read_unlock();
95000 + put_files_struct(files);
95001 + }
95002 +
95003 + if (our_file == NULL)
95004 + return 1;
95005 +
95006 + our_inode = d_backing_inode(our_file->f_path.dentry);
95007 +
95008 + read_lock(&tasklist_lock);
95009 + do_each_thread(p2, p) {
95010 + files = get_files_struct(p);
95011 + if (files == NULL ||
95012 + (p->signal && p->signal->tty == task->signal->tty)) {
95013 + if (files != NULL)
95014 + put_files_struct(files);
95015 + continue;
95016 + }
95017 + rcu_read_lock();
95018 + fdt = files_fdtable(files);
95019 + for (i=0; i < fdt->max_fds; i++) {
95020 + struct inode *inode = NULL;
95021 + file = fcheck_files(files, i);
95022 + if (file)
95023 + inode = d_backing_inode(file->f_path.dentry);
95024 + if (inode && S_ISCHR(inode->i_mode) && inode->i_rdev == our_inode->i_rdev) {
95025 + p3 = task;
95026 + while (task_pid_nr(p3) > 0) {
95027 + if (p3 == p)
95028 + break;
95029 + p3 = p3->real_parent;
95030 + }
95031 + if (p3 == p)
95032 + break;
95033 + gr_log_ttysniff(GR_DONT_AUDIT_GOOD, GR_TTYSNIFF_ACL_MSG, p);
95034 + gr_handle_alertkill(p);
95035 + rcu_read_unlock();
95036 + put_files_struct(files);
95037 + read_unlock(&tasklist_lock);
95038 + fput(our_file);
95039 + return 0;
95040 + }
95041 + }
95042 + rcu_read_unlock();
95043 + put_files_struct(files);
95044 + } while_each_thread(p2, p);
95045 + read_unlock(&tasklist_lock);
95046 +
95047 + fput(our_file);
95048 + return 1;
95049 +}
95050 +
95051 +ssize_t
95052 +write_grsec_handler(struct file *file, const char __user * buf, size_t count, loff_t *ppos)
95053 +{
95054 + struct gr_arg_wrapper uwrap;
95055 + unsigned char *sprole_salt = NULL;
95056 + unsigned char *sprole_sum = NULL;
95057 + int error = 0;
95058 + int error2 = 0;
95059 + size_t req_count = 0;
95060 + unsigned char oldmode = 0;
95061 +
95062 + mutex_lock(&gr_dev_mutex);
95063 +
95064 + if (gr_acl_is_enabled() && !(current->acl->mode & GR_KERNELAUTH)) {
95065 + error = -EPERM;
95066 + goto out;
95067 + }
95068 +
95069 +#ifdef CONFIG_COMPAT
95070 + pax_open_kernel();
95071 + if (is_compat_task()) {
95072 + copy_gr_arg_wrapper = &copy_gr_arg_wrapper_compat;
95073 + copy_gr_arg = &copy_gr_arg_compat;
95074 + copy_acl_object_label = &copy_acl_object_label_compat;
95075 + copy_acl_subject_label = &copy_acl_subject_label_compat;
95076 + copy_acl_role_label = &copy_acl_role_label_compat;
95077 + copy_acl_ip_label = &copy_acl_ip_label_compat;
95078 + copy_role_allowed_ip = &copy_role_allowed_ip_compat;
95079 + copy_role_transition = &copy_role_transition_compat;
95080 + copy_sprole_pw = &copy_sprole_pw_compat;
95081 + copy_gr_hash_struct = &copy_gr_hash_struct_compat;
95082 + copy_pointer_from_array = &copy_pointer_from_array_compat;
95083 + get_gr_arg_wrapper_size = &get_gr_arg_wrapper_size_compat;
95084 + } else {
95085 + copy_gr_arg_wrapper = &copy_gr_arg_wrapper_normal;
95086 + copy_gr_arg = &copy_gr_arg_normal;
95087 + copy_acl_object_label = &copy_acl_object_label_normal;
95088 + copy_acl_subject_label = &copy_acl_subject_label_normal;
95089 + copy_acl_role_label = &copy_acl_role_label_normal;
95090 + copy_acl_ip_label = &copy_acl_ip_label_normal;
95091 + copy_role_allowed_ip = &copy_role_allowed_ip_normal;
95092 + copy_role_transition = &copy_role_transition_normal;
95093 + copy_sprole_pw = &copy_sprole_pw_normal;
95094 + copy_gr_hash_struct = &copy_gr_hash_struct_normal;
95095 + copy_pointer_from_array = &copy_pointer_from_array_normal;
95096 + get_gr_arg_wrapper_size = &get_gr_arg_wrapper_size_normal;
95097 + }
95098 + pax_close_kernel();
95099 +#endif
95100 +
95101 + req_count = get_gr_arg_wrapper_size();
95102 +
95103 + if (count != req_count) {
95104 + gr_log_int_int(GR_DONT_AUDIT_GOOD, GR_DEV_ACL_MSG, (int)count, (int)req_count);
95105 + error = -EINVAL;
95106 + goto out;
95107 + }
95108 +
95109 +
95110 + if (gr_auth_expires && time_after_eq(get_seconds(), gr_auth_expires)) {
95111 + gr_auth_expires = 0;
95112 + gr_auth_attempts = 0;
95113 + }
95114 +
95115 + error = copy_gr_arg_wrapper(buf, &uwrap);
95116 + if (error)
95117 + goto out;
95118 +
95119 + error = copy_gr_arg(uwrap.arg, gr_usermode);
95120 + if (error)
95121 + goto out;
95122 +
95123 + if (gr_usermode->mode != GR_SPROLE && gr_usermode->mode != GR_SPROLEPAM &&
95124 + gr_auth_attempts >= CONFIG_GRKERNSEC_ACL_MAXTRIES &&
95125 + time_after(gr_auth_expires, get_seconds())) {
95126 + error = -EBUSY;
95127 + goto out;
95128 + }
95129 +
95130 + /* if non-root trying to do anything other than use a special role,
95131 + do not attempt authentication, do not count towards authentication
95132 + locking
95133 + */
95134 +
95135 + if (gr_usermode->mode != GR_SPROLE && gr_usermode->mode != GR_STATUS &&
95136 + gr_usermode->mode != GR_UNSPROLE && gr_usermode->mode != GR_SPROLEPAM &&
95137 + gr_is_global_nonroot(current_uid())) {
95138 + error = -EPERM;
95139 + goto out;
95140 + }
95141 +
95142 + /* ensure pw and special role name are null terminated */
95143 +
95144 + gr_usermode->pw[GR_PW_LEN - 1] = '\0';
95145 + gr_usermode->sp_role[GR_SPROLE_LEN - 1] = '\0';
95146 +
95147 + /* Okay.
95148 + * We have our enough of the argument structure..(we have yet
95149 + * to copy_from_user the tables themselves) . Copy the tables
95150 + * only if we need them, i.e. for loading operations. */
95151 +
95152 + switch (gr_usermode->mode) {
95153 + case GR_STATUS:
95154 + if (gr_acl_is_enabled()) {
95155 + error = 1;
95156 + if (!gr_check_secure_terminal(current))
95157 + error = 3;
95158 + } else
95159 + error = 2;
95160 + goto out;
95161 + case GR_SHUTDOWN:
95162 + if (gr_acl_is_enabled() && !(chkpw(gr_usermode, gr_system_salt, gr_system_sum))) {
95163 + stop_machine(gr_rbac_disable, NULL, NULL);
95164 + free_variables(false);
95165 + memset(gr_usermode, 0, sizeof(struct gr_arg));
95166 + memset(gr_system_salt, 0, GR_SALT_LEN);
95167 + memset(gr_system_sum, 0, GR_SHA_LEN);
95168 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SHUTS_ACL_MSG);
95169 + } else if (gr_acl_is_enabled()) {
95170 + gr_log_noargs(GR_DONT_AUDIT, GR_SHUTF_ACL_MSG);
95171 + error = -EPERM;
95172 + } else {
95173 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SHUTI_ACL_MSG);
95174 + error = -EAGAIN;
95175 + }
95176 + break;
95177 + case GR_ENABLE:
95178 + if (!gr_acl_is_enabled() && !(error2 = gracl_init(gr_usermode)))
95179 + gr_log_str(GR_DONT_AUDIT_GOOD, GR_ENABLE_ACL_MSG, GR_VERSION);
95180 + else {
95181 + if (gr_acl_is_enabled())
95182 + error = -EAGAIN;
95183 + else
95184 + error = error2;
95185 + gr_log_str(GR_DONT_AUDIT, GR_ENABLEF_ACL_MSG, GR_VERSION);
95186 + }
95187 + break;
95188 + case GR_OLDRELOAD:
95189 + oldmode = 1;
95190 + case GR_RELOAD:
95191 + if (!gr_acl_is_enabled()) {
95192 + gr_log_str(GR_DONT_AUDIT_GOOD, GR_RELOADI_ACL_MSG, GR_VERSION);
95193 + error = -EAGAIN;
95194 + } else if (!(chkpw(gr_usermode, gr_system_salt, gr_system_sum))) {
95195 + error2 = gracl_reload(gr_usermode, oldmode);
95196 + if (!error2)
95197 + gr_log_str(GR_DONT_AUDIT_GOOD, GR_RELOAD_ACL_MSG, GR_VERSION);
95198 + else {
95199 + gr_log_str(GR_DONT_AUDIT, GR_RELOADF_ACL_MSG, GR_VERSION);
95200 + error = error2;
95201 + }
95202 + } else {
95203 + gr_log_str(GR_DONT_AUDIT, GR_RELOADF_ACL_MSG, GR_VERSION);
95204 + error = -EPERM;
95205 + }
95206 + break;
95207 + case GR_SEGVMOD:
95208 + if (unlikely(!gr_acl_is_enabled())) {
95209 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SEGVMODI_ACL_MSG);
95210 + error = -EAGAIN;
95211 + break;
95212 + }
95213 +
95214 + if (!(chkpw(gr_usermode, gr_system_salt, gr_system_sum))) {
95215 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SEGVMODS_ACL_MSG);
95216 + if (gr_usermode->segv_device && gr_usermode->segv_inode) {
95217 + struct acl_subject_label *segvacl;
95218 + segvacl =
95219 + lookup_acl_subj_label(gr_usermode->segv_inode,
95220 + gr_usermode->segv_device,
95221 + current->role);
95222 + if (segvacl) {
95223 + segvacl->crashes = 0;
95224 + segvacl->expires = 0;
95225 + }
95226 + } else if (gr_find_uid(gr_usermode->segv_uid) >= 0) {
95227 + gr_remove_uid(gr_usermode->segv_uid);
95228 + }
95229 + } else {
95230 + gr_log_noargs(GR_DONT_AUDIT, GR_SEGVMODF_ACL_MSG);
95231 + error = -EPERM;
95232 + }
95233 + break;
95234 + case GR_SPROLE:
95235 + case GR_SPROLEPAM:
95236 + if (unlikely(!gr_acl_is_enabled())) {
95237 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SPROLEI_ACL_MSG);
95238 + error = -EAGAIN;
95239 + break;
95240 + }
95241 +
95242 + if (current->role->expires && time_after_eq(get_seconds(), current->role->expires)) {
95243 + current->role->expires = 0;
95244 + current->role->auth_attempts = 0;
95245 + }
95246 +
95247 + if (current->role->auth_attempts >= CONFIG_GRKERNSEC_ACL_MAXTRIES &&
95248 + time_after(current->role->expires, get_seconds())) {
95249 + error = -EBUSY;
95250 + goto out;
95251 + }
95252 +
95253 + if (lookup_special_role_auth
95254 + (gr_usermode->mode, gr_usermode->sp_role, &sprole_salt, &sprole_sum)
95255 + && ((!sprole_salt && !sprole_sum)
95256 + || !(chkpw(gr_usermode, sprole_salt, sprole_sum)))) {
95257 + char *p = "";
95258 + assign_special_role(gr_usermode->sp_role);
95259 + read_lock(&tasklist_lock);
95260 + if (current->real_parent)
95261 + p = current->real_parent->role->rolename;
95262 + read_unlock(&tasklist_lock);
95263 + gr_log_str_int(GR_DONT_AUDIT_GOOD, GR_SPROLES_ACL_MSG,
95264 + p, acl_sp_role_value);
95265 + } else {
95266 + gr_log_str(GR_DONT_AUDIT, GR_SPROLEF_ACL_MSG, gr_usermode->sp_role);
95267 + error = -EPERM;
95268 + if(!(current->role->auth_attempts++))
95269 + current->role->expires = get_seconds() + CONFIG_GRKERNSEC_ACL_TIMEOUT;
95270 +
95271 + goto out;
95272 + }
95273 + break;
95274 + case GR_UNSPROLE:
95275 + if (unlikely(!gr_acl_is_enabled())) {
95276 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_UNSPROLEI_ACL_MSG);
95277 + error = -EAGAIN;
95278 + break;
95279 + }
95280 +
95281 + if (current->role->roletype & GR_ROLE_SPECIAL) {
95282 + char *p = "";
95283 + int i = 0;
95284 +
95285 + read_lock(&tasklist_lock);
95286 + if (current->real_parent) {
95287 + p = current->real_parent->role->rolename;
95288 + i = current->real_parent->acl_role_id;
95289 + }
95290 + read_unlock(&tasklist_lock);
95291 +
95292 + gr_log_str_int(GR_DONT_AUDIT_GOOD, GR_UNSPROLES_ACL_MSG, p, i);
95293 + gr_set_acls(1);
95294 + } else {
95295 + error = -EPERM;
95296 + goto out;
95297 + }
95298 + break;
95299 + default:
95300 + gr_log_int(GR_DONT_AUDIT, GR_INVMODE_ACL_MSG, gr_usermode->mode);
95301 + error = -EINVAL;
95302 + break;
95303 + }
95304 +
95305 + if (error != -EPERM)
95306 + goto out;
95307 +
95308 + if(!(gr_auth_attempts++))
95309 + gr_auth_expires = get_seconds() + CONFIG_GRKERNSEC_ACL_TIMEOUT;
95310 +
95311 + out:
95312 + mutex_unlock(&gr_dev_mutex);
95313 +
95314 + if (!error)
95315 + error = req_count;
95316 +
95317 + return error;
95318 +}
95319 +
95320 +int
95321 +gr_set_acls(const int type)
95322 +{
95323 + struct task_struct *task, *task2;
95324 + struct acl_role_label *role = current->role;
95325 + struct acl_subject_label *subj;
95326 + __u16 acl_role_id = current->acl_role_id;
95327 + const struct cred *cred;
95328 + int ret;
95329 +
95330 + rcu_read_lock();
95331 + read_lock(&tasklist_lock);
95332 + read_lock(&grsec_exec_file_lock);
95333 + do_each_thread(task2, task) {
95334 + /* check to see if we're called from the exit handler,
95335 + if so, only replace ACLs that have inherited the admin
95336 + ACL */
95337 +
95338 + if (type && (task->role != role ||
95339 + task->acl_role_id != acl_role_id))
95340 + continue;
95341 +
95342 + task->acl_role_id = 0;
95343 + task->acl_sp_role = 0;
95344 + task->inherited = 0;
95345 +
95346 + if (task->exec_file) {
95347 + cred = __task_cred(task);
95348 + task->role = __lookup_acl_role_label(polstate, task, GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid));
95349 + subj = __gr_get_subject_for_task(polstate, task, NULL, 1);
95350 + if (subj == NULL) {
95351 + ret = -EINVAL;
95352 + read_unlock(&grsec_exec_file_lock);
95353 + read_unlock(&tasklist_lock);
95354 + rcu_read_unlock();
95355 + gr_log_str_int(GR_DONT_AUDIT_GOOD, GR_DEFACL_MSG, task->comm, task_pid_nr(task));
95356 + return ret;
95357 + }
95358 + __gr_apply_subject_to_task(polstate, task, subj);
95359 + } else {
95360 + // it's a kernel process
95361 + task->role = polstate->kernel_role;
95362 + task->acl = polstate->kernel_role->root_label;
95363 +#ifdef CONFIG_GRKERNSEC_ACL_HIDEKERN
95364 + task->acl->mode &= ~GR_PROCFIND;
95365 +#endif
95366 + }
95367 + } while_each_thread(task2, task);
95368 + read_unlock(&grsec_exec_file_lock);
95369 + read_unlock(&tasklist_lock);
95370 + rcu_read_unlock();
95371 +
95372 + return 0;
95373 +}
95374 diff --git a/grsecurity/gracl_res.c b/grsecurity/gracl_res.c
95375 new file mode 100644
95376 index 0000000..39645c9
95377 --- /dev/null
95378 +++ b/grsecurity/gracl_res.c
95379 @@ -0,0 +1,68 @@
95380 +#include <linux/kernel.h>
95381 +#include <linux/sched.h>
95382 +#include <linux/gracl.h>
95383 +#include <linux/grinternal.h>
95384 +
95385 +static const char *restab_log[] = {
95386 + [RLIMIT_CPU] = "RLIMIT_CPU",
95387 + [RLIMIT_FSIZE] = "RLIMIT_FSIZE",
95388 + [RLIMIT_DATA] = "RLIMIT_DATA",
95389 + [RLIMIT_STACK] = "RLIMIT_STACK",
95390 + [RLIMIT_CORE] = "RLIMIT_CORE",
95391 + [RLIMIT_RSS] = "RLIMIT_RSS",
95392 + [RLIMIT_NPROC] = "RLIMIT_NPROC",
95393 + [RLIMIT_NOFILE] = "RLIMIT_NOFILE",
95394 + [RLIMIT_MEMLOCK] = "RLIMIT_MEMLOCK",
95395 + [RLIMIT_AS] = "RLIMIT_AS",
95396 + [RLIMIT_LOCKS] = "RLIMIT_LOCKS",
95397 + [RLIMIT_SIGPENDING] = "RLIMIT_SIGPENDING",
95398 + [RLIMIT_MSGQUEUE] = "RLIMIT_MSGQUEUE",
95399 + [RLIMIT_NICE] = "RLIMIT_NICE",
95400 + [RLIMIT_RTPRIO] = "RLIMIT_RTPRIO",
95401 + [RLIMIT_RTTIME] = "RLIMIT_RTTIME",
95402 + [GR_CRASH_RES] = "RLIMIT_CRASH"
95403 +};
95404 +
95405 +void
95406 +gr_log_resource(const struct task_struct *task,
95407 + const int res, const unsigned long wanted, const int gt)
95408 +{
95409 + const struct cred *cred;
95410 + unsigned long rlim;
95411 +
95412 + if (!gr_acl_is_enabled() && !grsec_resource_logging)
95413 + return;
95414 +
95415 + // not yet supported resource
95416 + if (unlikely(!restab_log[res]))
95417 + return;
95418 +
95419 + if (res == RLIMIT_CPU || res == RLIMIT_RTTIME)
95420 + rlim = task_rlimit_max(task, res);
95421 + else
95422 + rlim = task_rlimit(task, res);
95423 +
95424 + if (likely((rlim == RLIM_INFINITY) || (gt && wanted <= rlim) || (!gt && wanted < rlim)))
95425 + return;
95426 +
95427 + rcu_read_lock();
95428 + cred = __task_cred(task);
95429 +
95430 + if (res == RLIMIT_NPROC &&
95431 + (cap_raised(cred->cap_effective, CAP_SYS_ADMIN) ||
95432 + cap_raised(cred->cap_effective, CAP_SYS_RESOURCE)))
95433 + goto out_rcu_unlock;
95434 + else if (res == RLIMIT_MEMLOCK &&
95435 + cap_raised(cred->cap_effective, CAP_IPC_LOCK))
95436 + goto out_rcu_unlock;
95437 + else if (res == RLIMIT_NICE && cap_raised(cred->cap_effective, CAP_SYS_NICE))
95438 + goto out_rcu_unlock;
95439 + rcu_read_unlock();
95440 +
95441 + gr_log_res_ulong2_str(GR_DONT_AUDIT, GR_RESOURCE_MSG, task, wanted, restab_log[res], rlim);
95442 +
95443 + return;
95444 +out_rcu_unlock:
95445 + rcu_read_unlock();
95446 + return;
95447 +}
95448 diff --git a/grsecurity/gracl_segv.c b/grsecurity/gracl_segv.c
95449 new file mode 100644
95450 index 0000000..9c6684d
95451 --- /dev/null
95452 +++ b/grsecurity/gracl_segv.c
95453 @@ -0,0 +1,291 @@
95454 +#include <linux/kernel.h>
95455 +#include <linux/mm.h>
95456 +#include <asm/uaccess.h>
95457 +#include <asm/errno.h>
95458 +#include <asm/mman.h>
95459 +#include <net/sock.h>
95460 +#include <linux/file.h>
95461 +#include <linux/fs.h>
95462 +#include <linux/net.h>
95463 +#include <linux/in.h>
95464 +#include <linux/slab.h>
95465 +#include <linux/types.h>
95466 +#include <linux/sched.h>
95467 +#include <linux/timer.h>
95468 +#include <linux/gracl.h>
95469 +#include <linux/grsecurity.h>
95470 +#include <linux/grinternal.h>
95471 +#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE)
95472 +#include <linux/magic.h>
95473 +#include <linux/pagemap.h>
95474 +#include "../fs/btrfs/async-thread.h"
95475 +#include "../fs/btrfs/ctree.h"
95476 +#include "../fs/btrfs/btrfs_inode.h"
95477 +#endif
95478 +
95479 +static struct crash_uid *uid_set;
95480 +static unsigned short uid_used;
95481 +static DEFINE_SPINLOCK(gr_uid_lock);
95482 +extern rwlock_t gr_inode_lock;
95483 +extern struct acl_subject_label *
95484 + lookup_acl_subj_label(const u64 inode, const dev_t dev,
95485 + struct acl_role_label *role);
95486 +
95487 +int
95488 +gr_init_uidset(void)
95489 +{
95490 + uid_set =
95491 + kmalloc(GR_UIDTABLE_MAX * sizeof (struct crash_uid), GFP_KERNEL);
95492 + uid_used = 0;
95493 +
95494 + return uid_set ? 1 : 0;
95495 +}
95496 +
95497 +void
95498 +gr_free_uidset(void)
95499 +{
95500 + if (uid_set) {
95501 + struct crash_uid *tmpset;
95502 + spin_lock(&gr_uid_lock);
95503 + tmpset = uid_set;
95504 + uid_set = NULL;
95505 + uid_used = 0;
95506 + spin_unlock(&gr_uid_lock);
95507 + if (tmpset)
95508 + kfree(tmpset);
95509 + }
95510 +
95511 + return;
95512 +}
95513 +
95514 +int
95515 +gr_find_uid(const uid_t uid)
95516 +{
95517 + struct crash_uid *tmp = uid_set;
95518 + uid_t buid;
95519 + int low = 0, high = uid_used - 1, mid;
95520 +
95521 + while (high >= low) {
95522 + mid = (low + high) >> 1;
95523 + buid = tmp[mid].uid;
95524 + if (buid == uid)
95525 + return mid;
95526 + if (buid > uid)
95527 + high = mid - 1;
95528 + if (buid < uid)
95529 + low = mid + 1;
95530 + }
95531 +
95532 + return -1;
95533 +}
95534 +
95535 +static void
95536 +gr_insertsort(void)
95537 +{
95538 + unsigned short i, j;
95539 + struct crash_uid index;
95540 +
95541 + for (i = 1; i < uid_used; i++) {
95542 + index = uid_set[i];
95543 + j = i;
95544 + while ((j > 0) && uid_set[j - 1].uid > index.uid) {
95545 + uid_set[j] = uid_set[j - 1];
95546 + j--;
95547 + }
95548 + uid_set[j] = index;
95549 + }
95550 +
95551 + return;
95552 +}
95553 +
95554 +static void
95555 +gr_insert_uid(const kuid_t kuid, const unsigned long expires)
95556 +{
95557 + int loc;
95558 + uid_t uid = GR_GLOBAL_UID(kuid);
95559 +
95560 + if (uid_used == GR_UIDTABLE_MAX)
95561 + return;
95562 +
95563 + loc = gr_find_uid(uid);
95564 +
95565 + if (loc >= 0) {
95566 + uid_set[loc].expires = expires;
95567 + return;
95568 + }
95569 +
95570 + uid_set[uid_used].uid = uid;
95571 + uid_set[uid_used].expires = expires;
95572 + uid_used++;
95573 +
95574 + gr_insertsort();
95575 +
95576 + return;
95577 +}
95578 +
95579 +void
95580 +gr_remove_uid(const unsigned short loc)
95581 +{
95582 + unsigned short i;
95583 +
95584 + for (i = loc + 1; i < uid_used; i++)
95585 + uid_set[i - 1] = uid_set[i];
95586 +
95587 + uid_used--;
95588 +
95589 + return;
95590 +}
95591 +
95592 +int
95593 +gr_check_crash_uid(const kuid_t kuid)
95594 +{
95595 + int loc;
95596 + int ret = 0;
95597 + uid_t uid;
95598 +
95599 + if (unlikely(!gr_acl_is_enabled()))
95600 + return 0;
95601 +
95602 + uid = GR_GLOBAL_UID(kuid);
95603 +
95604 + spin_lock(&gr_uid_lock);
95605 + loc = gr_find_uid(uid);
95606 +
95607 + if (loc < 0)
95608 + goto out_unlock;
95609 +
95610 + if (time_before_eq(uid_set[loc].expires, get_seconds()))
95611 + gr_remove_uid(loc);
95612 + else
95613 + ret = 1;
95614 +
95615 +out_unlock:
95616 + spin_unlock(&gr_uid_lock);
95617 + return ret;
95618 +}
95619 +
95620 +extern int gr_fake_force_sig(int sig, struct task_struct *t);
95621 +
95622 +void
95623 +gr_handle_crash(struct task_struct *task, const int sig)
95624 +{
95625 + struct acl_subject_label *curr;
95626 + struct task_struct *tsk, *tsk2;
95627 + const struct cred *cred;
95628 + const struct cred *cred2;
95629 +
95630 + if (sig != SIGSEGV && sig != SIGKILL && sig != SIGBUS && sig != SIGILL)
95631 + return;
95632 +
95633 + if (unlikely(!gr_acl_is_enabled()))
95634 + return;
95635 +
95636 + curr = task->acl;
95637 +
95638 + if (!(curr->resmask & (1U << GR_CRASH_RES)))
95639 + return;
95640 +
95641 + if (time_before_eq(curr->expires, get_seconds())) {
95642 + curr->expires = 0;
95643 + curr->crashes = 0;
95644 + }
95645 +
95646 + curr->crashes++;
95647 +
95648 + if (!curr->expires)
95649 + curr->expires = get_seconds() + curr->res[GR_CRASH_RES].rlim_max;
95650 +
95651 + if ((curr->crashes >= curr->res[GR_CRASH_RES].rlim_cur) &&
95652 + time_after(curr->expires, get_seconds())) {
95653 + rcu_read_lock();
95654 + cred = __task_cred(task);
95655 + if (gr_is_global_nonroot(cred->uid) && is_privileged_binary(task->mm->exe_file->f_path.dentry)) {
95656 + gr_log_crash1(GR_DONT_AUDIT, GR_SEGVSTART_ACL_MSG, task, curr->res[GR_CRASH_RES].rlim_max);
95657 + spin_lock(&gr_uid_lock);
95658 + gr_insert_uid(cred->uid, curr->expires);
95659 + spin_unlock(&gr_uid_lock);
95660 + curr->expires = 0;
95661 + curr->crashes = 0;
95662 + read_lock(&tasklist_lock);
95663 + do_each_thread(tsk2, tsk) {
95664 + cred2 = __task_cred(tsk);
95665 + if (tsk != task && uid_eq(cred2->uid, cred->uid))
95666 + gr_fake_force_sig(SIGKILL, tsk);
95667 + } while_each_thread(tsk2, tsk);
95668 + read_unlock(&tasklist_lock);
95669 + } else {
95670 + gr_log_crash2(GR_DONT_AUDIT, GR_SEGVNOSUID_ACL_MSG, task, curr->res[GR_CRASH_RES].rlim_max);
95671 + read_lock(&tasklist_lock);
95672 + read_lock(&grsec_exec_file_lock);
95673 + do_each_thread(tsk2, tsk) {
95674 + if (likely(tsk != task)) {
95675 + // if this thread has the same subject as the one that triggered
95676 + // RES_CRASH and it's the same binary, kill it
95677 + if (tsk->acl == task->acl && gr_is_same_file(tsk->exec_file, task->exec_file))
95678 + gr_fake_force_sig(SIGKILL, tsk);
95679 + }
95680 + } while_each_thread(tsk2, tsk);
95681 + read_unlock(&grsec_exec_file_lock);
95682 + read_unlock(&tasklist_lock);
95683 + }
95684 + rcu_read_unlock();
95685 + }
95686 +
95687 + return;
95688 +}
95689 +
95690 +int
95691 +gr_check_crash_exec(const struct file *filp)
95692 +{
95693 + struct acl_subject_label *curr;
95694 + struct dentry *dentry;
95695 +
95696 + if (unlikely(!gr_acl_is_enabled()))
95697 + return 0;
95698 +
95699 + read_lock(&gr_inode_lock);
95700 + dentry = filp->f_path.dentry;
95701 + curr = lookup_acl_subj_label(gr_get_ino_from_dentry(dentry), gr_get_dev_from_dentry(dentry),
95702 + current->role);
95703 + read_unlock(&gr_inode_lock);
95704 +
95705 + if (!curr || !(curr->resmask & (1U << GR_CRASH_RES)) ||
95706 + (!curr->crashes && !curr->expires))
95707 + return 0;
95708 +
95709 + if ((curr->crashes >= curr->res[GR_CRASH_RES].rlim_cur) &&
95710 + time_after(curr->expires, get_seconds()))
95711 + return 1;
95712 + else if (time_before_eq(curr->expires, get_seconds())) {
95713 + curr->crashes = 0;
95714 + curr->expires = 0;
95715 + }
95716 +
95717 + return 0;
95718 +}
95719 +
95720 +void
95721 +gr_handle_alertkill(struct task_struct *task)
95722 +{
95723 + struct acl_subject_label *curracl;
95724 + __u32 curr_ip;
95725 + struct task_struct *p, *p2;
95726 +
95727 + if (unlikely(!gr_acl_is_enabled()))
95728 + return;
95729 +
95730 + curracl = task->acl;
95731 + curr_ip = task->signal->curr_ip;
95732 +
95733 + if ((curracl->mode & GR_KILLIPPROC) && curr_ip) {
95734 + read_lock(&tasklist_lock);
95735 + do_each_thread(p2, p) {
95736 + if (p->signal->curr_ip == curr_ip)
95737 + gr_fake_force_sig(SIGKILL, p);
95738 + } while_each_thread(p2, p);
95739 + read_unlock(&tasklist_lock);
95740 + } else if (curracl->mode & GR_KILLPROC)
95741 + gr_fake_force_sig(SIGKILL, task);
95742 +
95743 + return;
95744 +}
95745 diff --git a/grsecurity/gracl_shm.c b/grsecurity/gracl_shm.c
95746 new file mode 100644
95747 index 0000000..6b0c9cc
95748 --- /dev/null
95749 +++ b/grsecurity/gracl_shm.c
95750 @@ -0,0 +1,40 @@
95751 +#include <linux/kernel.h>
95752 +#include <linux/mm.h>
95753 +#include <linux/sched.h>
95754 +#include <linux/file.h>
95755 +#include <linux/ipc.h>
95756 +#include <linux/gracl.h>
95757 +#include <linux/grsecurity.h>
95758 +#include <linux/grinternal.h>
95759 +
95760 +int
95761 +gr_handle_shmat(const pid_t shm_cprid, const pid_t shm_lapid,
95762 + const u64 shm_createtime, const kuid_t cuid, const int shmid)
95763 +{
95764 + struct task_struct *task;
95765 +
95766 + if (!gr_acl_is_enabled())
95767 + return 1;
95768 +
95769 + rcu_read_lock();
95770 + read_lock(&tasklist_lock);
95771 +
95772 + task = find_task_by_vpid(shm_cprid);
95773 +
95774 + if (unlikely(!task))
95775 + task = find_task_by_vpid(shm_lapid);
95776 +
95777 + if (unlikely(task && (time_before_eq64(task->start_time, shm_createtime) ||
95778 + (task_pid_nr(task) == shm_lapid)) &&
95779 + (task->acl->mode & GR_PROTSHM) &&
95780 + (task->acl != current->acl))) {
95781 + read_unlock(&tasklist_lock);
95782 + rcu_read_unlock();
95783 + gr_log_int3(GR_DONT_AUDIT, GR_SHMAT_ACL_MSG, GR_GLOBAL_UID(cuid), shm_cprid, shmid);
95784 + return 0;
95785 + }
95786 + read_unlock(&tasklist_lock);
95787 + rcu_read_unlock();
95788 +
95789 + return 1;
95790 +}
95791 diff --git a/grsecurity/grsec_chdir.c b/grsecurity/grsec_chdir.c
95792 new file mode 100644
95793 index 0000000..bc0be01
95794 --- /dev/null
95795 +++ b/grsecurity/grsec_chdir.c
95796 @@ -0,0 +1,19 @@
95797 +#include <linux/kernel.h>
95798 +#include <linux/sched.h>
95799 +#include <linux/fs.h>
95800 +#include <linux/file.h>
95801 +#include <linux/grsecurity.h>
95802 +#include <linux/grinternal.h>
95803 +
95804 +void
95805 +gr_log_chdir(const struct dentry *dentry, const struct vfsmount *mnt)
95806 +{
95807 +#ifdef CONFIG_GRKERNSEC_AUDIT_CHDIR
95808 + if ((grsec_enable_chdir && grsec_enable_group &&
95809 + in_group_p(grsec_audit_gid)) || (grsec_enable_chdir &&
95810 + !grsec_enable_group)) {
95811 + gr_log_fs_generic(GR_DO_AUDIT, GR_CHDIR_AUDIT_MSG, dentry, mnt);
95812 + }
95813 +#endif
95814 + return;
95815 +}
95816 diff --git a/grsecurity/grsec_chroot.c b/grsecurity/grsec_chroot.c
95817 new file mode 100644
95818 index 0000000..652ab45
95819 --- /dev/null
95820 +++ b/grsecurity/grsec_chroot.c
95821 @@ -0,0 +1,467 @@
95822 +#include <linux/kernel.h>
95823 +#include <linux/module.h>
95824 +#include <linux/sched.h>
95825 +#include <linux/file.h>
95826 +#include <linux/fs.h>
95827 +#include <linux/mount.h>
95828 +#include <linux/types.h>
95829 +#include "../fs/mount.h"
95830 +#include <linux/grsecurity.h>
95831 +#include <linux/grinternal.h>
95832 +
95833 +#ifdef CONFIG_GRKERNSEC_CHROOT_INITRD
95834 +int gr_init_ran;
95835 +#endif
95836 +
95837 +void gr_inc_chroot_refcnts(struct dentry *dentry, struct vfsmount *mnt)
95838 +{
95839 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
95840 + struct dentry *tmpd = dentry;
95841 +
95842 + read_seqlock_excl(&mount_lock);
95843 + write_seqlock(&rename_lock);
95844 +
95845 + while (tmpd != mnt->mnt_root) {
95846 + atomic_inc(&tmpd->chroot_refcnt);
95847 + tmpd = tmpd->d_parent;
95848 + }
95849 + atomic_inc(&tmpd->chroot_refcnt);
95850 +
95851 + write_sequnlock(&rename_lock);
95852 + read_sequnlock_excl(&mount_lock);
95853 +#endif
95854 +}
95855 +
95856 +void gr_dec_chroot_refcnts(struct dentry *dentry, struct vfsmount *mnt)
95857 +{
95858 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
95859 + struct dentry *tmpd = dentry;
95860 +
95861 + read_seqlock_excl(&mount_lock);
95862 + write_seqlock(&rename_lock);
95863 +
95864 + while (tmpd != mnt->mnt_root) {
95865 + atomic_dec(&tmpd->chroot_refcnt);
95866 + tmpd = tmpd->d_parent;
95867 + }
95868 + atomic_dec(&tmpd->chroot_refcnt);
95869 +
95870 + write_sequnlock(&rename_lock);
95871 + read_sequnlock_excl(&mount_lock);
95872 +#endif
95873 +}
95874 +
95875 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
95876 +static struct dentry *get_closest_chroot(struct dentry *dentry)
95877 +{
95878 + write_seqlock(&rename_lock);
95879 + do {
95880 + if (atomic_read(&dentry->chroot_refcnt)) {
95881 + write_sequnlock(&rename_lock);
95882 + return dentry;
95883 + }
95884 + dentry = dentry->d_parent;
95885 + } while (!IS_ROOT(dentry));
95886 + write_sequnlock(&rename_lock);
95887 + return NULL;
95888 +}
95889 +#endif
95890 +
95891 +int gr_bad_chroot_rename(struct dentry *olddentry, struct vfsmount *oldmnt,
95892 + struct dentry *newdentry, struct vfsmount *newmnt)
95893 +{
95894 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
95895 + struct dentry *chroot;
95896 +
95897 + if (unlikely(!grsec_enable_chroot_rename))
95898 + return 0;
95899 +
95900 + if (likely(!proc_is_chrooted(current) && gr_is_global_root(current_uid())))
95901 + return 0;
95902 +
95903 + chroot = get_closest_chroot(olddentry);
95904 +
95905 + if (chroot == NULL)
95906 + return 0;
95907 +
95908 + if (is_subdir(newdentry, chroot))
95909 + return 0;
95910 +
95911 + gr_log_fs_generic(GR_DONT_AUDIT, GR_CHROOT_RENAME_MSG, olddentry, oldmnt);
95912 +
95913 + return 1;
95914 +#else
95915 + return 0;
95916 +#endif
95917 +}
95918 +
95919 +void gr_set_chroot_entries(struct task_struct *task, const struct path *path)
95920 +{
95921 +#ifdef CONFIG_GRKERNSEC
95922 + if (task_pid_nr(task) > 1 && path->dentry != init_task.fs->root.dentry &&
95923 + path->dentry != task->nsproxy->mnt_ns->root->mnt.mnt_root
95924 +#ifdef CONFIG_GRKERNSEC_CHROOT_INITRD
95925 + && gr_init_ran
95926 +#endif
95927 + )
95928 + task->gr_is_chrooted = 1;
95929 + else {
95930 +#ifdef CONFIG_GRKERNSEC_CHROOT_INITRD
95931 + if (task_pid_nr(task) == 1 && !gr_init_ran)
95932 + gr_init_ran = 1;
95933 +#endif
95934 + task->gr_is_chrooted = 0;
95935 + }
95936 +
95937 + task->gr_chroot_dentry = path->dentry;
95938 +#endif
95939 + return;
95940 +}
95941 +
95942 +void gr_clear_chroot_entries(struct task_struct *task)
95943 +{
95944 +#ifdef CONFIG_GRKERNSEC
95945 + task->gr_is_chrooted = 0;
95946 + task->gr_chroot_dentry = NULL;
95947 +#endif
95948 + return;
95949 +}
95950 +
95951 +int
95952 +gr_handle_chroot_unix(const pid_t pid)
95953 +{
95954 +#ifdef CONFIG_GRKERNSEC_CHROOT_UNIX
95955 + struct task_struct *p;
95956 +
95957 + if (unlikely(!grsec_enable_chroot_unix))
95958 + return 1;
95959 +
95960 + if (likely(!proc_is_chrooted(current)))
95961 + return 1;
95962 +
95963 + rcu_read_lock();
95964 + read_lock(&tasklist_lock);
95965 + p = find_task_by_vpid_unrestricted(pid);
95966 + if (unlikely(p && !have_same_root(current, p))) {
95967 + read_unlock(&tasklist_lock);
95968 + rcu_read_unlock();
95969 + gr_log_noargs(GR_DONT_AUDIT, GR_UNIX_CHROOT_MSG);
95970 + return 0;
95971 + }
95972 + read_unlock(&tasklist_lock);
95973 + rcu_read_unlock();
95974 +#endif
95975 + return 1;
95976 +}
95977 +
95978 +int
95979 +gr_handle_chroot_nice(void)
95980 +{
95981 +#ifdef CONFIG_GRKERNSEC_CHROOT_NICE
95982 + if (grsec_enable_chroot_nice && proc_is_chrooted(current)) {
95983 + gr_log_noargs(GR_DONT_AUDIT, GR_NICE_CHROOT_MSG);
95984 + return -EPERM;
95985 + }
95986 +#endif
95987 + return 0;
95988 +}
95989 +
95990 +int
95991 +gr_handle_chroot_setpriority(struct task_struct *p, const int niceval)
95992 +{
95993 +#ifdef CONFIG_GRKERNSEC_CHROOT_NICE
95994 + if (grsec_enable_chroot_nice && (niceval < task_nice(p))
95995 + && proc_is_chrooted(current)) {
95996 + gr_log_str_int(GR_DONT_AUDIT, GR_PRIORITY_CHROOT_MSG, p->comm, task_pid_nr(p));
95997 + return -EACCES;
95998 + }
95999 +#endif
96000 + return 0;
96001 +}
96002 +
96003 +int
96004 +gr_handle_chroot_fowner(struct pid *pid, enum pid_type type)
96005 +{
96006 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
96007 + struct task_struct *p;
96008 + int ret = 0;
96009 + if (!grsec_enable_chroot_findtask || !proc_is_chrooted(current) || !pid)
96010 + return ret;
96011 +
96012 + read_lock(&tasklist_lock);
96013 + do_each_pid_task(pid, type, p) {
96014 + if (!have_same_root(current, p)) {
96015 + ret = 1;
96016 + goto out;
96017 + }
96018 + } while_each_pid_task(pid, type, p);
96019 +out:
96020 + read_unlock(&tasklist_lock);
96021 + return ret;
96022 +#endif
96023 + return 0;
96024 +}
96025 +
96026 +int
96027 +gr_pid_is_chrooted(struct task_struct *p)
96028 +{
96029 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
96030 + if (!grsec_enable_chroot_findtask || !proc_is_chrooted(current) || p == NULL)
96031 + return 0;
96032 +
96033 + if ((p->exit_state & (EXIT_ZOMBIE | EXIT_DEAD)) ||
96034 + !have_same_root(current, p)) {
96035 + return 1;
96036 + }
96037 +#endif
96038 + return 0;
96039 +}
96040 +
96041 +EXPORT_SYMBOL_GPL(gr_pid_is_chrooted);
96042 +
96043 +#if defined(CONFIG_GRKERNSEC_CHROOT_DOUBLE) || defined(CONFIG_GRKERNSEC_CHROOT_FCHDIR)
96044 +int gr_is_outside_chroot(const struct dentry *u_dentry, const struct vfsmount *u_mnt)
96045 +{
96046 + struct path path, currentroot;
96047 + int ret = 0;
96048 +
96049 + path.dentry = (struct dentry *)u_dentry;
96050 + path.mnt = (struct vfsmount *)u_mnt;
96051 + get_fs_root(current->fs, &currentroot);
96052 + if (path_is_under(&path, &currentroot))
96053 + ret = 1;
96054 + path_put(&currentroot);
96055 +
96056 + return ret;
96057 +}
96058 +#endif
96059 +
96060 +int
96061 +gr_chroot_fchdir(struct dentry *u_dentry, struct vfsmount *u_mnt)
96062 +{
96063 +#ifdef CONFIG_GRKERNSEC_CHROOT_FCHDIR
96064 + if (!grsec_enable_chroot_fchdir)
96065 + return 1;
96066 +
96067 + if (!proc_is_chrooted(current))
96068 + return 1;
96069 + else if (!gr_is_outside_chroot(u_dentry, u_mnt)) {
96070 + gr_log_fs_generic(GR_DONT_AUDIT, GR_CHROOT_FCHDIR_MSG, u_dentry, u_mnt);
96071 + return 0;
96072 + }
96073 +#endif
96074 + return 1;
96075 +}
96076 +
96077 +int
96078 +gr_chroot_fhandle(void)
96079 +{
96080 +#ifdef CONFIG_GRKERNSEC_CHROOT_FCHDIR
96081 + if (!grsec_enable_chroot_fchdir)
96082 + return 1;
96083 +
96084 + if (!proc_is_chrooted(current))
96085 + return 1;
96086 + else {
96087 + gr_log_noargs(GR_DONT_AUDIT, GR_CHROOT_FHANDLE_MSG);
96088 + return 0;
96089 + }
96090 +#endif
96091 + return 1;
96092 +}
96093 +
96094 +int
96095 +gr_chroot_shmat(const pid_t shm_cprid, const pid_t shm_lapid,
96096 + const u64 shm_createtime)
96097 +{
96098 +#ifdef CONFIG_GRKERNSEC_CHROOT_SHMAT
96099 + struct task_struct *p;
96100 +
96101 + if (unlikely(!grsec_enable_chroot_shmat))
96102 + return 1;
96103 +
96104 + if (likely(!proc_is_chrooted(current)))
96105 + return 1;
96106 +
96107 + rcu_read_lock();
96108 + read_lock(&tasklist_lock);
96109 +
96110 + if ((p = find_task_by_vpid_unrestricted(shm_cprid))) {
96111 + if (time_before_eq64(p->start_time, shm_createtime)) {
96112 + if (have_same_root(current, p)) {
96113 + goto allow;
96114 + } else {
96115 + read_unlock(&tasklist_lock);
96116 + rcu_read_unlock();
96117 + gr_log_noargs(GR_DONT_AUDIT, GR_SHMAT_CHROOT_MSG);
96118 + return 0;
96119 + }
96120 + }
96121 + /* creator exited, pid reuse, fall through to next check */
96122 + }
96123 + if ((p = find_task_by_vpid_unrestricted(shm_lapid))) {
96124 + if (unlikely(!have_same_root(current, p))) {
96125 + read_unlock(&tasklist_lock);
96126 + rcu_read_unlock();
96127 + gr_log_noargs(GR_DONT_AUDIT, GR_SHMAT_CHROOT_MSG);
96128 + return 0;
96129 + }
96130 + }
96131 +
96132 +allow:
96133 + read_unlock(&tasklist_lock);
96134 + rcu_read_unlock();
96135 +#endif
96136 + return 1;
96137 +}
96138 +
96139 +void
96140 +gr_log_chroot_exec(const struct dentry *dentry, const struct vfsmount *mnt)
96141 +{
96142 +#ifdef CONFIG_GRKERNSEC_CHROOT_EXECLOG
96143 + if (grsec_enable_chroot_execlog && proc_is_chrooted(current))
96144 + gr_log_fs_generic(GR_DO_AUDIT, GR_EXEC_CHROOT_MSG, dentry, mnt);
96145 +#endif
96146 + return;
96147 +}
96148 +
96149 +int
96150 +gr_handle_chroot_mknod(const struct dentry *dentry,
96151 + const struct vfsmount *mnt, const int mode)
96152 +{
96153 +#ifdef CONFIG_GRKERNSEC_CHROOT_MKNOD
96154 + if (grsec_enable_chroot_mknod && !S_ISFIFO(mode) && !S_ISREG(mode) &&
96155 + proc_is_chrooted(current)) {
96156 + gr_log_fs_generic(GR_DONT_AUDIT, GR_MKNOD_CHROOT_MSG, dentry, mnt);
96157 + return -EPERM;
96158 + }
96159 +#endif
96160 + return 0;
96161 +}
96162 +
96163 +int
96164 +gr_handle_chroot_mount(const struct dentry *dentry,
96165 + const struct vfsmount *mnt, const char *dev_name)
96166 +{
96167 +#ifdef CONFIG_GRKERNSEC_CHROOT_MOUNT
96168 + if (grsec_enable_chroot_mount && proc_is_chrooted(current)) {
96169 + gr_log_str_fs(GR_DONT_AUDIT, GR_MOUNT_CHROOT_MSG, dev_name ? dev_name : "none", dentry, mnt);
96170 + return -EPERM;
96171 + }
96172 +#endif
96173 + return 0;
96174 +}
96175 +
96176 +int
96177 +gr_handle_chroot_pivot(void)
96178 +{
96179 +#ifdef CONFIG_GRKERNSEC_CHROOT_PIVOT
96180 + if (grsec_enable_chroot_pivot && proc_is_chrooted(current)) {
96181 + gr_log_noargs(GR_DONT_AUDIT, GR_PIVOT_CHROOT_MSG);
96182 + return -EPERM;
96183 + }
96184 +#endif
96185 + return 0;
96186 +}
96187 +
96188 +int
96189 +gr_handle_chroot_chroot(const struct dentry *dentry, const struct vfsmount *mnt)
96190 +{
96191 +#ifdef CONFIG_GRKERNSEC_CHROOT_DOUBLE
96192 + if (grsec_enable_chroot_double && proc_is_chrooted(current) &&
96193 + !gr_is_outside_chroot(dentry, mnt)) {
96194 + gr_log_fs_generic(GR_DONT_AUDIT, GR_CHROOT_CHROOT_MSG, dentry, mnt);
96195 + return -EPERM;
96196 + }
96197 +#endif
96198 + return 0;
96199 +}
96200 +
96201 +extern const char *captab_log[];
96202 +extern int captab_log_entries;
96203 +
96204 +int
96205 +gr_task_chroot_is_capable(const struct task_struct *task, const struct cred *cred, const int cap)
96206 +{
96207 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
96208 + if (grsec_enable_chroot_caps && proc_is_chrooted(task)) {
96209 + kernel_cap_t chroot_caps = GR_CHROOT_CAPS;
96210 + if (cap_raised(chroot_caps, cap)) {
96211 + if (cap_raised(cred->cap_effective, cap) && cap < captab_log_entries) {
96212 + gr_log_cap(GR_DONT_AUDIT, GR_CAP_CHROOT_MSG, task, captab_log[cap]);
96213 + }
96214 + return 0;
96215 + }
96216 + }
96217 +#endif
96218 + return 1;
96219 +}
96220 +
96221 +int
96222 +gr_chroot_is_capable(const int cap)
96223 +{
96224 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
96225 + return gr_task_chroot_is_capable(current, current_cred(), cap);
96226 +#endif
96227 + return 1;
96228 +}
96229 +
96230 +int
96231 +gr_task_chroot_is_capable_nolog(const struct task_struct *task, const int cap)
96232 +{
96233 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
96234 + if (grsec_enable_chroot_caps && proc_is_chrooted(task)) {
96235 + kernel_cap_t chroot_caps = GR_CHROOT_CAPS;
96236 + if (cap_raised(chroot_caps, cap)) {
96237 + return 0;
96238 + }
96239 + }
96240 +#endif
96241 + return 1;
96242 +}
96243 +
96244 +int
96245 +gr_chroot_is_capable_nolog(const int cap)
96246 +{
96247 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
96248 + return gr_task_chroot_is_capable_nolog(current, cap);
96249 +#endif
96250 + return 1;
96251 +}
96252 +
96253 +int
96254 +gr_handle_chroot_sysctl(const int op)
96255 +{
96256 +#ifdef CONFIG_GRKERNSEC_CHROOT_SYSCTL
96257 + if (grsec_enable_chroot_sysctl && (op & MAY_WRITE) &&
96258 + proc_is_chrooted(current))
96259 + return -EACCES;
96260 +#endif
96261 + return 0;
96262 +}
96263 +
96264 +void
96265 +gr_handle_chroot_chdir(const struct path *path)
96266 +{
96267 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHDIR
96268 + if (grsec_enable_chroot_chdir)
96269 + set_fs_pwd(current->fs, path);
96270 +#endif
96271 + return;
96272 +}
96273 +
96274 +int
96275 +gr_handle_chroot_chmod(const struct dentry *dentry,
96276 + const struct vfsmount *mnt, const int mode)
96277 +{
96278 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHMOD
96279 + /* allow chmod +s on directories, but not files */
96280 + if (grsec_enable_chroot_chmod && !d_is_dir(dentry) &&
96281 + ((mode & S_ISUID) || ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))) &&
96282 + proc_is_chrooted(current)) {
96283 + gr_log_fs_generic(GR_DONT_AUDIT, GR_CHMOD_CHROOT_MSG, dentry, mnt);
96284 + return -EPERM;
96285 + }
96286 +#endif
96287 + return 0;
96288 +}
96289 diff --git a/grsecurity/grsec_disabled.c b/grsecurity/grsec_disabled.c
96290 new file mode 100644
96291 index 0000000..e723c08
96292 --- /dev/null
96293 +++ b/grsecurity/grsec_disabled.c
96294 @@ -0,0 +1,445 @@
96295 +#include <linux/kernel.h>
96296 +#include <linux/module.h>
96297 +#include <linux/sched.h>
96298 +#include <linux/file.h>
96299 +#include <linux/fs.h>
96300 +#include <linux/kdev_t.h>
96301 +#include <linux/net.h>
96302 +#include <linux/in.h>
96303 +#include <linux/ip.h>
96304 +#include <linux/skbuff.h>
96305 +#include <linux/sysctl.h>
96306 +
96307 +#ifdef CONFIG_PAX_HAVE_ACL_FLAGS
96308 +void
96309 +pax_set_initial_flags(struct linux_binprm *bprm)
96310 +{
96311 + return;
96312 +}
96313 +#endif
96314 +
96315 +#ifdef CONFIG_SYSCTL
96316 +__u32
96317 +gr_handle_sysctl(const struct ctl_table * table, const int op)
96318 +{
96319 + return 0;
96320 +}
96321 +#endif
96322 +
96323 +#ifdef CONFIG_TASKSTATS
96324 +int gr_is_taskstats_denied(int pid)
96325 +{
96326 + return 0;
96327 +}
96328 +#endif
96329 +
96330 +int
96331 +gr_acl_is_enabled(void)
96332 +{
96333 + return 0;
96334 +}
96335 +
96336 +int
96337 +gr_learn_cap(const struct task_struct *task, const struct cred *cred, const int cap)
96338 +{
96339 + return 0;
96340 +}
96341 +
96342 +void
96343 +gr_handle_proc_create(const struct dentry *dentry, const struct inode *inode)
96344 +{
96345 + return;
96346 +}
96347 +
96348 +int
96349 +gr_handle_rawio(const struct inode *inode)
96350 +{
96351 + return 0;
96352 +}
96353 +
96354 +void
96355 +gr_acl_handle_psacct(struct task_struct *task, const long code)
96356 +{
96357 + return;
96358 +}
96359 +
96360 +int
96361 +gr_handle_ptrace(struct task_struct *task, const long request)
96362 +{
96363 + return 0;
96364 +}
96365 +
96366 +int
96367 +gr_handle_proc_ptrace(struct task_struct *task)
96368 +{
96369 + return 0;
96370 +}
96371 +
96372 +int
96373 +gr_set_acls(const int type)
96374 +{
96375 + return 0;
96376 +}
96377 +
96378 +int
96379 +gr_check_hidden_task(const struct task_struct *tsk)
96380 +{
96381 + return 0;
96382 +}
96383 +
96384 +int
96385 +gr_check_protected_task(const struct task_struct *task)
96386 +{
96387 + return 0;
96388 +}
96389 +
96390 +int
96391 +gr_check_protected_task_fowner(struct pid *pid, enum pid_type type)
96392 +{
96393 + return 0;
96394 +}
96395 +
96396 +void
96397 +gr_copy_label(struct task_struct *tsk)
96398 +{
96399 + return;
96400 +}
96401 +
96402 +void
96403 +gr_set_pax_flags(struct task_struct *task)
96404 +{
96405 + return;
96406 +}
96407 +
96408 +int
96409 +gr_set_proc_label(const struct dentry *dentry, const struct vfsmount *mnt,
96410 + const int unsafe_share)
96411 +{
96412 + return 0;
96413 +}
96414 +
96415 +void
96416 +gr_handle_delete(const u64 ino, const dev_t dev)
96417 +{
96418 + return;
96419 +}
96420 +
96421 +void
96422 +gr_handle_create(const struct dentry *dentry, const struct vfsmount *mnt)
96423 +{
96424 + return;
96425 +}
96426 +
96427 +void
96428 +gr_handle_crash(struct task_struct *task, const int sig)
96429 +{
96430 + return;
96431 +}
96432 +
96433 +int
96434 +gr_check_crash_exec(const struct file *filp)
96435 +{
96436 + return 0;
96437 +}
96438 +
96439 +int
96440 +gr_check_crash_uid(const kuid_t uid)
96441 +{
96442 + return 0;
96443 +}
96444 +
96445 +void
96446 +gr_handle_rename(struct inode *old_dir, struct inode *new_dir,
96447 + struct dentry *old_dentry,
96448 + struct dentry *new_dentry,
96449 + struct vfsmount *mnt, const __u8 replace, unsigned int flags)
96450 +{
96451 + return;
96452 +}
96453 +
96454 +int
96455 +gr_search_socket(const int family, const int type, const int protocol)
96456 +{
96457 + return 1;
96458 +}
96459 +
96460 +int
96461 +gr_search_connectbind(const int mode, const struct socket *sock,
96462 + const struct sockaddr_in *addr)
96463 +{
96464 + return 0;
96465 +}
96466 +
96467 +void
96468 +gr_handle_alertkill(struct task_struct *task)
96469 +{
96470 + return;
96471 +}
96472 +
96473 +__u32
96474 +gr_acl_handle_execve(const struct dentry * dentry, const struct vfsmount * mnt)
96475 +{
96476 + return 1;
96477 +}
96478 +
96479 +__u32
96480 +gr_acl_handle_hidden_file(const struct dentry * dentry,
96481 + const struct vfsmount * mnt)
96482 +{
96483 + return 1;
96484 +}
96485 +
96486 +__u32
96487 +gr_acl_handle_open(const struct dentry * dentry, const struct vfsmount * mnt,
96488 + int acc_mode)
96489 +{
96490 + return 1;
96491 +}
96492 +
96493 +__u32
96494 +gr_acl_handle_rmdir(const struct dentry * dentry, const struct vfsmount * mnt)
96495 +{
96496 + return 1;
96497 +}
96498 +
96499 +__u32
96500 +gr_acl_handle_unlink(const struct dentry * dentry, const struct vfsmount * mnt)
96501 +{
96502 + return 1;
96503 +}
96504 +
96505 +int
96506 +gr_acl_handle_mmap(const struct file *file, const unsigned long prot,
96507 + unsigned int *vm_flags)
96508 +{
96509 + return 1;
96510 +}
96511 +
96512 +__u32
96513 +gr_acl_handle_truncate(const struct dentry * dentry,
96514 + const struct vfsmount * mnt)
96515 +{
96516 + return 1;
96517 +}
96518 +
96519 +__u32
96520 +gr_acl_handle_utime(const struct dentry * dentry, const struct vfsmount * mnt)
96521 +{
96522 + return 1;
96523 +}
96524 +
96525 +__u32
96526 +gr_acl_handle_access(const struct dentry * dentry,
96527 + const struct vfsmount * mnt, const int fmode)
96528 +{
96529 + return 1;
96530 +}
96531 +
96532 +__u32
96533 +gr_acl_handle_chmod(const struct dentry * dentry, const struct vfsmount * mnt,
96534 + umode_t *mode)
96535 +{
96536 + return 1;
96537 +}
96538 +
96539 +__u32
96540 +gr_acl_handle_chown(const struct dentry * dentry, const struct vfsmount * mnt)
96541 +{
96542 + return 1;
96543 +}
96544 +
96545 +__u32
96546 +gr_acl_handle_setxattr(const struct dentry * dentry, const struct vfsmount * mnt)
96547 +{
96548 + return 1;
96549 +}
96550 +
96551 +__u32
96552 +gr_acl_handle_removexattr(const struct dentry * dentry, const struct vfsmount * mnt)
96553 +{
96554 + return 1;
96555 +}
96556 +
96557 +void
96558 +grsecurity_init(void)
96559 +{
96560 + return;
96561 +}
96562 +
96563 +umode_t gr_acl_umask(void)
96564 +{
96565 + return 0;
96566 +}
96567 +
96568 +__u32
96569 +gr_acl_handle_mknod(const struct dentry * new_dentry,
96570 + const struct dentry * parent_dentry,
96571 + const struct vfsmount * parent_mnt,
96572 + const int mode)
96573 +{
96574 + return 1;
96575 +}
96576 +
96577 +__u32
96578 +gr_acl_handle_mkdir(const struct dentry * new_dentry,
96579 + const struct dentry * parent_dentry,
96580 + const struct vfsmount * parent_mnt)
96581 +{
96582 + return 1;
96583 +}
96584 +
96585 +__u32
96586 +gr_acl_handle_symlink(const struct dentry * new_dentry,
96587 + const struct dentry * parent_dentry,
96588 + const struct vfsmount * parent_mnt, const struct filename *from)
96589 +{
96590 + return 1;
96591 +}
96592 +
96593 +__u32
96594 +gr_acl_handle_link(const struct dentry * new_dentry,
96595 + const struct dentry * parent_dentry,
96596 + const struct vfsmount * parent_mnt,
96597 + const struct dentry * old_dentry,
96598 + const struct vfsmount * old_mnt, const struct filename *to)
96599 +{
96600 + return 1;
96601 +}
96602 +
96603 +int
96604 +gr_acl_handle_rename(const struct dentry *new_dentry,
96605 + const struct dentry *parent_dentry,
96606 + const struct vfsmount *parent_mnt,
96607 + const struct dentry *old_dentry,
96608 + const struct inode *old_parent_inode,
96609 + const struct vfsmount *old_mnt, const struct filename *newname,
96610 + unsigned int flags)
96611 +{
96612 + return 0;
96613 +}
96614 +
96615 +int
96616 +gr_acl_handle_filldir(const struct file *file, const char *name,
96617 + const int namelen, const u64 ino)
96618 +{
96619 + return 1;
96620 +}
96621 +
96622 +int
96623 +gr_handle_shmat(const pid_t shm_cprid, const pid_t shm_lapid,
96624 + const u64 shm_createtime, const kuid_t cuid, const int shmid)
96625 +{
96626 + return 1;
96627 +}
96628 +
96629 +int
96630 +gr_search_bind(const struct socket *sock, const struct sockaddr_in *addr)
96631 +{
96632 + return 0;
96633 +}
96634 +
96635 +int
96636 +gr_search_accept(const struct socket *sock)
96637 +{
96638 + return 0;
96639 +}
96640 +
96641 +int
96642 +gr_search_listen(const struct socket *sock)
96643 +{
96644 + return 0;
96645 +}
96646 +
96647 +int
96648 +gr_search_connect(const struct socket *sock, const struct sockaddr_in *addr)
96649 +{
96650 + return 0;
96651 +}
96652 +
96653 +__u32
96654 +gr_acl_handle_unix(const struct dentry * dentry, const struct vfsmount * mnt)
96655 +{
96656 + return 1;
96657 +}
96658 +
96659 +__u32
96660 +gr_acl_handle_creat(const struct dentry * dentry,
96661 + const struct dentry * p_dentry,
96662 + const struct vfsmount * p_mnt, int open_flags, int acc_mode,
96663 + const int imode)
96664 +{
96665 + return 1;
96666 +}
96667 +
96668 +void
96669 +gr_acl_handle_exit(void)
96670 +{
96671 + return;
96672 +}
96673 +
96674 +int
96675 +gr_acl_handle_mprotect(const struct file *file, const unsigned long prot)
96676 +{
96677 + return 1;
96678 +}
96679 +
96680 +void
96681 +gr_set_role_label(const kuid_t uid, const kgid_t gid)
96682 +{
96683 + return;
96684 +}
96685 +
96686 +int
96687 +gr_acl_handle_procpidmem(const struct task_struct *task)
96688 +{
96689 + return 0;
96690 +}
96691 +
96692 +int
96693 +gr_search_udp_recvmsg(const struct sock *sk, const struct sk_buff *skb)
96694 +{
96695 + return 0;
96696 +}
96697 +
96698 +int
96699 +gr_search_udp_sendmsg(const struct sock *sk, const struct sockaddr_in *addr)
96700 +{
96701 + return 0;
96702 +}
96703 +
96704 +int
96705 +gr_check_user_change(kuid_t real, kuid_t effective, kuid_t fs)
96706 +{
96707 + return 0;
96708 +}
96709 +
96710 +int
96711 +gr_check_group_change(kgid_t real, kgid_t effective, kgid_t fs)
96712 +{
96713 + return 0;
96714 +}
96715 +
96716 +int gr_acl_enable_at_secure(void)
96717 +{
96718 + return 0;
96719 +}
96720 +
96721 +dev_t gr_get_dev_from_dentry(struct dentry *dentry)
96722 +{
96723 + return d_backing_inode(dentry)->i_sb->s_dev;
96724 +}
96725 +
96726 +u64 gr_get_ino_from_dentry(struct dentry *dentry)
96727 +{
96728 + return d_backing_inode(dentry)->i_ino;
96729 +}
96730 +
96731 +void gr_put_exec_file(struct task_struct *task)
96732 +{
96733 + return;
96734 +}
96735 +
96736 +#ifdef CONFIG_SECURITY
96737 +EXPORT_SYMBOL_GPL(gr_check_user_change);
96738 +EXPORT_SYMBOL_GPL(gr_check_group_change);
96739 +#endif
96740 diff --git a/grsecurity/grsec_exec.c b/grsecurity/grsec_exec.c
96741 new file mode 100644
96742 index 0000000..fb7531e
96743 --- /dev/null
96744 +++ b/grsecurity/grsec_exec.c
96745 @@ -0,0 +1,189 @@
96746 +#include <linux/kernel.h>
96747 +#include <linux/sched.h>
96748 +#include <linux/file.h>
96749 +#include <linux/binfmts.h>
96750 +#include <linux/fs.h>
96751 +#include <linux/types.h>
96752 +#include <linux/grdefs.h>
96753 +#include <linux/grsecurity.h>
96754 +#include <linux/grinternal.h>
96755 +#include <linux/capability.h>
96756 +#include <linux/module.h>
96757 +#include <linux/compat.h>
96758 +
96759 +#include <asm/uaccess.h>
96760 +
96761 +#ifdef CONFIG_GRKERNSEC_EXECLOG
96762 +static char gr_exec_arg_buf[132];
96763 +static DEFINE_MUTEX(gr_exec_arg_mutex);
96764 +#endif
96765 +
96766 +struct user_arg_ptr {
96767 +#ifdef CONFIG_COMPAT
96768 + bool is_compat;
96769 +#endif
96770 + union {
96771 + const char __user *const __user *native;
96772 +#ifdef CONFIG_COMPAT
96773 + const compat_uptr_t __user *compat;
96774 +#endif
96775 + } ptr;
96776 +};
96777 +
96778 +extern const char __user *get_user_arg_ptr(struct user_arg_ptr argv, int nr);
96779 +
96780 +void
96781 +gr_handle_exec_args(struct linux_binprm *bprm, struct user_arg_ptr argv)
96782 +{
96783 +#ifdef CONFIG_GRKERNSEC_EXECLOG
96784 + char *grarg = gr_exec_arg_buf;
96785 + unsigned int i, x, execlen = 0;
96786 + char c;
96787 +
96788 + if (!((grsec_enable_execlog && grsec_enable_group &&
96789 + in_group_p(grsec_audit_gid))
96790 + || (grsec_enable_execlog && !grsec_enable_group)))
96791 + return;
96792 +
96793 + mutex_lock(&gr_exec_arg_mutex);
96794 + memset(grarg, 0, sizeof(gr_exec_arg_buf));
96795 +
96796 + for (i = 0; i < bprm->argc && execlen < 128; i++) {
96797 + const char __user *p;
96798 + unsigned int len;
96799 +
96800 + p = get_user_arg_ptr(argv, i);
96801 + if (IS_ERR(p))
96802 + goto log;
96803 +
96804 + len = strnlen_user(p, 128 - execlen);
96805 + if (len > 128 - execlen)
96806 + len = 128 - execlen;
96807 + else if (len > 0)
96808 + len--;
96809 + if (copy_from_user(grarg + execlen, p, len))
96810 + goto log;
96811 +
96812 + /* rewrite unprintable characters */
96813 + for (x = 0; x < len; x++) {
96814 + c = *(grarg + execlen + x);
96815 + if (c < 32 || c > 126)
96816 + *(grarg + execlen + x) = ' ';
96817 + }
96818 +
96819 + execlen += len;
96820 + *(grarg + execlen) = ' ';
96821 + *(grarg + execlen + 1) = '\0';
96822 + execlen++;
96823 + }
96824 +
96825 + log:
96826 + gr_log_fs_str(GR_DO_AUDIT, GR_EXEC_AUDIT_MSG, bprm->file->f_path.dentry,
96827 + bprm->file->f_path.mnt, grarg);
96828 + mutex_unlock(&gr_exec_arg_mutex);
96829 +#endif
96830 + return;
96831 +}
96832 +
96833 +#ifdef CONFIG_GRKERNSEC
96834 +extern int gr_acl_is_capable(const int cap);
96835 +extern int gr_acl_is_capable_nolog(const int cap);
96836 +extern int gr_task_acl_is_capable(const struct task_struct *task, const struct cred *cred, const int cap);
96837 +extern int gr_task_acl_is_capable_nolog(const struct task_struct *task, const int cap);
96838 +extern int gr_chroot_is_capable(const int cap);
96839 +extern int gr_chroot_is_capable_nolog(const int cap);
96840 +extern int gr_task_chroot_is_capable(const struct task_struct *task, const struct cred *cred, const int cap);
96841 +extern int gr_task_chroot_is_capable_nolog(const struct task_struct *task, const int cap);
96842 +#endif
96843 +
96844 +const char *captab_log[] = {
96845 + "CAP_CHOWN",
96846 + "CAP_DAC_OVERRIDE",
96847 + "CAP_DAC_READ_SEARCH",
96848 + "CAP_FOWNER",
96849 + "CAP_FSETID",
96850 + "CAP_KILL",
96851 + "CAP_SETGID",
96852 + "CAP_SETUID",
96853 + "CAP_SETPCAP",
96854 + "CAP_LINUX_IMMUTABLE",
96855 + "CAP_NET_BIND_SERVICE",
96856 + "CAP_NET_BROADCAST",
96857 + "CAP_NET_ADMIN",
96858 + "CAP_NET_RAW",
96859 + "CAP_IPC_LOCK",
96860 + "CAP_IPC_OWNER",
96861 + "CAP_SYS_MODULE",
96862 + "CAP_SYS_RAWIO",
96863 + "CAP_SYS_CHROOT",
96864 + "CAP_SYS_PTRACE",
96865 + "CAP_SYS_PACCT",
96866 + "CAP_SYS_ADMIN",
96867 + "CAP_SYS_BOOT",
96868 + "CAP_SYS_NICE",
96869 + "CAP_SYS_RESOURCE",
96870 + "CAP_SYS_TIME",
96871 + "CAP_SYS_TTY_CONFIG",
96872 + "CAP_MKNOD",
96873 + "CAP_LEASE",
96874 + "CAP_AUDIT_WRITE",
96875 + "CAP_AUDIT_CONTROL",
96876 + "CAP_SETFCAP",
96877 + "CAP_MAC_OVERRIDE",
96878 + "CAP_MAC_ADMIN",
96879 + "CAP_SYSLOG",
96880 + "CAP_WAKE_ALARM",
96881 + "CAP_BLOCK_SUSPEND",
96882 + "CAP_AUDIT_READ"
96883 +};
96884 +
96885 +int captab_log_entries = sizeof(captab_log)/sizeof(captab_log[0]);
96886 +
96887 +int gr_is_capable(const int cap)
96888 +{
96889 +#ifdef CONFIG_GRKERNSEC
96890 + if (gr_acl_is_capable(cap) && gr_chroot_is_capable(cap))
96891 + return 1;
96892 + return 0;
96893 +#else
96894 + return 1;
96895 +#endif
96896 +}
96897 +
96898 +int gr_task_is_capable(const struct task_struct *task, const struct cred *cred, const int cap)
96899 +{
96900 +#ifdef CONFIG_GRKERNSEC
96901 + if (gr_task_acl_is_capable(task, cred, cap) && gr_task_chroot_is_capable(task, cred, cap))
96902 + return 1;
96903 + return 0;
96904 +#else
96905 + return 1;
96906 +#endif
96907 +}
96908 +
96909 +int gr_is_capable_nolog(const int cap)
96910 +{
96911 +#ifdef CONFIG_GRKERNSEC
96912 + if (gr_acl_is_capable_nolog(cap) && gr_chroot_is_capable_nolog(cap))
96913 + return 1;
96914 + return 0;
96915 +#else
96916 + return 1;
96917 +#endif
96918 +}
96919 +
96920 +int gr_task_is_capable_nolog(const struct task_struct *task, const int cap)
96921 +{
96922 +#ifdef CONFIG_GRKERNSEC
96923 + if (gr_task_acl_is_capable_nolog(task, cap) && gr_task_chroot_is_capable_nolog(task, cap))
96924 + return 1;
96925 + return 0;
96926 +#else
96927 + return 1;
96928 +#endif
96929 +}
96930 +
96931 +EXPORT_SYMBOL_GPL(gr_is_capable);
96932 +EXPORT_SYMBOL_GPL(gr_is_capable_nolog);
96933 +EXPORT_SYMBOL_GPL(gr_task_is_capable);
96934 +EXPORT_SYMBOL_GPL(gr_task_is_capable_nolog);
96935 diff --git a/grsecurity/grsec_fifo.c b/grsecurity/grsec_fifo.c
96936 new file mode 100644
96937 index 0000000..cdec49b
96938 --- /dev/null
96939 +++ b/grsecurity/grsec_fifo.c
96940 @@ -0,0 +1,26 @@
96941 +#include <linux/kernel.h>
96942 +#include <linux/sched.h>
96943 +#include <linux/fs.h>
96944 +#include <linux/file.h>
96945 +#include <linux/grinternal.h>
96946 +
96947 +int
96948 +gr_handle_fifo(const struct dentry *dentry, const struct vfsmount *mnt,
96949 + const struct dentry *dir, const int flag, const int acc_mode)
96950 +{
96951 +#ifdef CONFIG_GRKERNSEC_FIFO
96952 + const struct cred *cred = current_cred();
96953 + struct inode *inode = d_backing_inode(dentry);
96954 + struct inode *dir_inode = d_backing_inode(dir);
96955 +
96956 + if (grsec_enable_fifo && S_ISFIFO(inode->i_mode) &&
96957 + !(flag & O_EXCL) && (dir_inode->i_mode & S_ISVTX) &&
96958 + !uid_eq(inode->i_uid, dir_inode->i_uid) &&
96959 + !uid_eq(cred->fsuid, inode->i_uid)) {
96960 + if (!inode_permission(inode, acc_mode))
96961 + gr_log_fs_int2(GR_DONT_AUDIT, GR_FIFO_MSG, dentry, mnt, GR_GLOBAL_UID(inode->i_uid), GR_GLOBAL_GID(inode->i_gid));
96962 + return -EACCES;
96963 + }
96964 +#endif
96965 + return 0;
96966 +}
96967 diff --git a/grsecurity/grsec_fork.c b/grsecurity/grsec_fork.c
96968 new file mode 100644
96969 index 0000000..8ca18bf
96970 --- /dev/null
96971 +++ b/grsecurity/grsec_fork.c
96972 @@ -0,0 +1,23 @@
96973 +#include <linux/kernel.h>
96974 +#include <linux/sched.h>
96975 +#include <linux/grsecurity.h>
96976 +#include <linux/grinternal.h>
96977 +#include <linux/errno.h>
96978 +
96979 +void
96980 +gr_log_forkfail(const int retval)
96981 +{
96982 +#ifdef CONFIG_GRKERNSEC_FORKFAIL
96983 + if (grsec_enable_forkfail && (retval == -EAGAIN || retval == -ENOMEM)) {
96984 + switch (retval) {
96985 + case -EAGAIN:
96986 + gr_log_str(GR_DONT_AUDIT, GR_FAILFORK_MSG, "EAGAIN");
96987 + break;
96988 + case -ENOMEM:
96989 + gr_log_str(GR_DONT_AUDIT, GR_FAILFORK_MSG, "ENOMEM");
96990 + break;
96991 + }
96992 + }
96993 +#endif
96994 + return;
96995 +}
96996 diff --git a/grsecurity/grsec_init.c b/grsecurity/grsec_init.c
96997 new file mode 100644
96998 index 0000000..6822208
96999 --- /dev/null
97000 +++ b/grsecurity/grsec_init.c
97001 @@ -0,0 +1,294 @@
97002 +#include <linux/kernel.h>
97003 +#include <linux/sched.h>
97004 +#include <linux/mm.h>
97005 +#include <linux/gracl.h>
97006 +#include <linux/slab.h>
97007 +#include <linux/vmalloc.h>
97008 +#include <linux/percpu.h>
97009 +#include <linux/module.h>
97010 +
97011 +int grsec_enable_ptrace_readexec __read_only;
97012 +int grsec_enable_setxid __read_only;
97013 +int grsec_enable_symlinkown __read_only;
97014 +kgid_t grsec_symlinkown_gid __read_only;
97015 +int grsec_enable_brute __read_only;
97016 +int grsec_enable_link __read_only;
97017 +int grsec_enable_dmesg __read_only;
97018 +int grsec_enable_harden_ptrace __read_only;
97019 +int grsec_enable_harden_ipc __read_only;
97020 +int grsec_enable_fifo __read_only;
97021 +int grsec_enable_execlog __read_only;
97022 +int grsec_enable_signal __read_only;
97023 +int grsec_enable_forkfail __read_only;
97024 +int grsec_enable_audit_ptrace __read_only;
97025 +int grsec_enable_time __read_only;
97026 +int grsec_enable_group __read_only;
97027 +kgid_t grsec_audit_gid __read_only;
97028 +int grsec_enable_chdir __read_only;
97029 +int grsec_enable_mount __read_only;
97030 +int grsec_enable_rofs __read_only;
97031 +int grsec_deny_new_usb __read_only;
97032 +int grsec_enable_chroot_findtask __read_only;
97033 +int grsec_enable_chroot_mount __read_only;
97034 +int grsec_enable_chroot_shmat __read_only;
97035 +int grsec_enable_chroot_fchdir __read_only;
97036 +int grsec_enable_chroot_double __read_only;
97037 +int grsec_enable_chroot_pivot __read_only;
97038 +int grsec_enable_chroot_chdir __read_only;
97039 +int grsec_enable_chroot_chmod __read_only;
97040 +int grsec_enable_chroot_mknod __read_only;
97041 +int grsec_enable_chroot_nice __read_only;
97042 +int grsec_enable_chroot_execlog __read_only;
97043 +int grsec_enable_chroot_caps __read_only;
97044 +int grsec_enable_chroot_rename __read_only;
97045 +int grsec_enable_chroot_sysctl __read_only;
97046 +int grsec_enable_chroot_unix __read_only;
97047 +int grsec_enable_tpe __read_only;
97048 +kgid_t grsec_tpe_gid __read_only;
97049 +int grsec_enable_blackhole __read_only;
97050 +#ifdef CONFIG_IPV6_MODULE
97051 +EXPORT_SYMBOL_GPL(grsec_enable_blackhole);
97052 +#endif
97053 +int grsec_lastack_retries __read_only;
97054 +int grsec_enable_tpe_all __read_only;
97055 +int grsec_enable_tpe_invert __read_only;
97056 +int grsec_enable_socket_all __read_only;
97057 +kgid_t grsec_socket_all_gid __read_only;
97058 +int grsec_enable_socket_client __read_only;
97059 +kgid_t grsec_socket_client_gid __read_only;
97060 +int grsec_enable_socket_server __read_only;
97061 +kgid_t grsec_socket_server_gid __read_only;
97062 +int grsec_resource_logging __read_only;
97063 +int grsec_disable_privio __read_only;
97064 +int grsec_enable_log_rwxmaps __read_only;
97065 +int grsec_enable_harden_tty __read_only;
97066 +int grsec_lock __read_only;
97067 +
97068 +DEFINE_SPINLOCK(grsec_alert_lock);
97069 +unsigned long grsec_alert_wtime = 0;
97070 +unsigned long grsec_alert_fyet = 0;
97071 +
97072 +DEFINE_SPINLOCK(grsec_audit_lock);
97073 +
97074 +DEFINE_RWLOCK(grsec_exec_file_lock);
97075 +
97076 +char *gr_shared_page[4];
97077 +
97078 +char *gr_alert_log_fmt;
97079 +char *gr_audit_log_fmt;
97080 +char *gr_alert_log_buf;
97081 +char *gr_audit_log_buf;
97082 +
97083 +extern struct gr_arg *gr_usermode;
97084 +extern unsigned char *gr_system_salt;
97085 +extern unsigned char *gr_system_sum;
97086 +
97087 +void __init
97088 +grsecurity_init(void)
97089 +{
97090 + int j;
97091 + /* create the per-cpu shared pages */
97092 +
97093 +#ifdef CONFIG_X86
97094 + memset((char *)(0x41a + PAGE_OFFSET), 0, 36);
97095 +#endif
97096 +
97097 + for (j = 0; j < 4; j++) {
97098 + gr_shared_page[j] = (char *)__alloc_percpu(PAGE_SIZE, __alignof__(unsigned long long));
97099 + if (gr_shared_page[j] == NULL) {
97100 + panic("Unable to allocate grsecurity shared page");
97101 + return;
97102 + }
97103 + }
97104 +
97105 + /* allocate log buffers */
97106 + gr_alert_log_fmt = kmalloc(512, GFP_KERNEL);
97107 + if (!gr_alert_log_fmt) {
97108 + panic("Unable to allocate grsecurity alert log format buffer");
97109 + return;
97110 + }
97111 + gr_audit_log_fmt = kmalloc(512, GFP_KERNEL);
97112 + if (!gr_audit_log_fmt) {
97113 + panic("Unable to allocate grsecurity audit log format buffer");
97114 + return;
97115 + }
97116 + gr_alert_log_buf = (char *) get_zeroed_page(GFP_KERNEL);
97117 + if (!gr_alert_log_buf) {
97118 + panic("Unable to allocate grsecurity alert log buffer");
97119 + return;
97120 + }
97121 + gr_audit_log_buf = (char *) get_zeroed_page(GFP_KERNEL);
97122 + if (!gr_audit_log_buf) {
97123 + panic("Unable to allocate grsecurity audit log buffer");
97124 + return;
97125 + }
97126 +
97127 + /* allocate memory for authentication structure */
97128 + gr_usermode = kmalloc(sizeof(struct gr_arg), GFP_KERNEL);
97129 + gr_system_salt = kmalloc(GR_SALT_LEN, GFP_KERNEL);
97130 + gr_system_sum = kmalloc(GR_SHA_LEN, GFP_KERNEL);
97131 +
97132 + if (!gr_usermode || !gr_system_salt || !gr_system_sum) {
97133 + panic("Unable to allocate grsecurity authentication structure");
97134 + return;
97135 + }
97136 +
97137 +#ifdef CONFIG_GRKERNSEC_IO
97138 +#if !defined(CONFIG_GRKERNSEC_SYSCTL_DISTRO)
97139 + grsec_disable_privio = 1;
97140 +#elif defined(CONFIG_GRKERNSEC_SYSCTL_ON)
97141 + grsec_disable_privio = 1;
97142 +#else
97143 + grsec_disable_privio = 0;
97144 +#endif
97145 +#endif
97146 +
97147 +#ifdef CONFIG_GRKERNSEC_TPE_INVERT
97148 + /* for backward compatibility, tpe_invert always defaults to on if
97149 + enabled in the kernel
97150 + */
97151 + grsec_enable_tpe_invert = 1;
97152 +#endif
97153 +
97154 +#if !defined(CONFIG_GRKERNSEC_SYSCTL) || defined(CONFIG_GRKERNSEC_SYSCTL_ON)
97155 +#ifndef CONFIG_GRKERNSEC_SYSCTL
97156 + grsec_lock = 1;
97157 +#endif
97158 +
97159 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
97160 + grsec_enable_log_rwxmaps = 1;
97161 +#endif
97162 +#ifdef CONFIG_GRKERNSEC_AUDIT_GROUP
97163 + grsec_enable_group = 1;
97164 + grsec_audit_gid = KGIDT_INIT(CONFIG_GRKERNSEC_AUDIT_GID);
97165 +#endif
97166 +#ifdef CONFIG_GRKERNSEC_PTRACE_READEXEC
97167 + grsec_enable_ptrace_readexec = 1;
97168 +#endif
97169 +#ifdef CONFIG_GRKERNSEC_AUDIT_CHDIR
97170 + grsec_enable_chdir = 1;
97171 +#endif
97172 +#ifdef CONFIG_GRKERNSEC_HARDEN_PTRACE
97173 + grsec_enable_harden_ptrace = 1;
97174 +#endif
97175 +#ifdef CONFIG_GRKERNSEC_HARDEN_IPC
97176 + grsec_enable_harden_ipc = 1;
97177 +#endif
97178 +#ifdef CONFIG_GRKERNSEC_HARDEN_TTY
97179 + grsec_enable_harden_tty = 1;
97180 +#endif
97181 +#ifdef CONFIG_GRKERNSEC_AUDIT_MOUNT
97182 + grsec_enable_mount = 1;
97183 +#endif
97184 +#ifdef CONFIG_GRKERNSEC_LINK
97185 + grsec_enable_link = 1;
97186 +#endif
97187 +#ifdef CONFIG_GRKERNSEC_BRUTE
97188 + grsec_enable_brute = 1;
97189 +#endif
97190 +#ifdef CONFIG_GRKERNSEC_DMESG
97191 + grsec_enable_dmesg = 1;
97192 +#endif
97193 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
97194 + grsec_enable_blackhole = 1;
97195 + grsec_lastack_retries = 4;
97196 +#endif
97197 +#ifdef CONFIG_GRKERNSEC_FIFO
97198 + grsec_enable_fifo = 1;
97199 +#endif
97200 +#ifdef CONFIG_GRKERNSEC_EXECLOG
97201 + grsec_enable_execlog = 1;
97202 +#endif
97203 +#ifdef CONFIG_GRKERNSEC_SETXID
97204 + grsec_enable_setxid = 1;
97205 +#endif
97206 +#ifdef CONFIG_GRKERNSEC_SIGNAL
97207 + grsec_enable_signal = 1;
97208 +#endif
97209 +#ifdef CONFIG_GRKERNSEC_FORKFAIL
97210 + grsec_enable_forkfail = 1;
97211 +#endif
97212 +#ifdef CONFIG_GRKERNSEC_TIME
97213 + grsec_enable_time = 1;
97214 +#endif
97215 +#ifdef CONFIG_GRKERNSEC_RESLOG
97216 + grsec_resource_logging = 1;
97217 +#endif
97218 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
97219 + grsec_enable_chroot_findtask = 1;
97220 +#endif
97221 +#ifdef CONFIG_GRKERNSEC_CHROOT_UNIX
97222 + grsec_enable_chroot_unix = 1;
97223 +#endif
97224 +#ifdef CONFIG_GRKERNSEC_CHROOT_MOUNT
97225 + grsec_enable_chroot_mount = 1;
97226 +#endif
97227 +#ifdef CONFIG_GRKERNSEC_CHROOT_FCHDIR
97228 + grsec_enable_chroot_fchdir = 1;
97229 +#endif
97230 +#ifdef CONFIG_GRKERNSEC_CHROOT_SHMAT
97231 + grsec_enable_chroot_shmat = 1;
97232 +#endif
97233 +#ifdef CONFIG_GRKERNSEC_AUDIT_PTRACE
97234 + grsec_enable_audit_ptrace = 1;
97235 +#endif
97236 +#ifdef CONFIG_GRKERNSEC_CHROOT_DOUBLE
97237 + grsec_enable_chroot_double = 1;
97238 +#endif
97239 +#ifdef CONFIG_GRKERNSEC_CHROOT_PIVOT
97240 + grsec_enable_chroot_pivot = 1;
97241 +#endif
97242 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHDIR
97243 + grsec_enable_chroot_chdir = 1;
97244 +#endif
97245 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHMOD
97246 + grsec_enable_chroot_chmod = 1;
97247 +#endif
97248 +#ifdef CONFIG_GRKERNSEC_CHROOT_MKNOD
97249 + grsec_enable_chroot_mknod = 1;
97250 +#endif
97251 +#ifdef CONFIG_GRKERNSEC_CHROOT_NICE
97252 + grsec_enable_chroot_nice = 1;
97253 +#endif
97254 +#ifdef CONFIG_GRKERNSEC_CHROOT_EXECLOG
97255 + grsec_enable_chroot_execlog = 1;
97256 +#endif
97257 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
97258 + grsec_enable_chroot_caps = 1;
97259 +#endif
97260 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
97261 + grsec_enable_chroot_rename = 1;
97262 +#endif
97263 +#ifdef CONFIG_GRKERNSEC_CHROOT_SYSCTL
97264 + grsec_enable_chroot_sysctl = 1;
97265 +#endif
97266 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
97267 + grsec_enable_symlinkown = 1;
97268 + grsec_symlinkown_gid = KGIDT_INIT(CONFIG_GRKERNSEC_SYMLINKOWN_GID);
97269 +#endif
97270 +#ifdef CONFIG_GRKERNSEC_TPE
97271 + grsec_enable_tpe = 1;
97272 + grsec_tpe_gid = KGIDT_INIT(CONFIG_GRKERNSEC_TPE_GID);
97273 +#ifdef CONFIG_GRKERNSEC_TPE_ALL
97274 + grsec_enable_tpe_all = 1;
97275 +#endif
97276 +#endif
97277 +#ifdef CONFIG_GRKERNSEC_SOCKET_ALL
97278 + grsec_enable_socket_all = 1;
97279 + grsec_socket_all_gid = KGIDT_INIT(CONFIG_GRKERNSEC_SOCKET_ALL_GID);
97280 +#endif
97281 +#ifdef CONFIG_GRKERNSEC_SOCKET_CLIENT
97282 + grsec_enable_socket_client = 1;
97283 + grsec_socket_client_gid = KGIDT_INIT(CONFIG_GRKERNSEC_SOCKET_CLIENT_GID);
97284 +#endif
97285 +#ifdef CONFIG_GRKERNSEC_SOCKET_SERVER
97286 + grsec_enable_socket_server = 1;
97287 + grsec_socket_server_gid = KGIDT_INIT(CONFIG_GRKERNSEC_SOCKET_SERVER_GID);
97288 +#endif
97289 +#endif
97290 +#ifdef CONFIG_GRKERNSEC_DENYUSB_FORCE
97291 + grsec_deny_new_usb = 1;
97292 +#endif
97293 +
97294 + return;
97295 +}
97296 diff --git a/grsecurity/grsec_ipc.c b/grsecurity/grsec_ipc.c
97297 new file mode 100644
97298 index 0000000..1773300
97299 --- /dev/null
97300 +++ b/grsecurity/grsec_ipc.c
97301 @@ -0,0 +1,48 @@
97302 +#include <linux/kernel.h>
97303 +#include <linux/mm.h>
97304 +#include <linux/sched.h>
97305 +#include <linux/file.h>
97306 +#include <linux/ipc.h>
97307 +#include <linux/ipc_namespace.h>
97308 +#include <linux/grsecurity.h>
97309 +#include <linux/grinternal.h>
97310 +
97311 +int
97312 +gr_ipc_permitted(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, int requested_mode, int granted_mode)
97313 +{
97314 +#ifdef CONFIG_GRKERNSEC_HARDEN_IPC
97315 + int write;
97316 + int orig_granted_mode;
97317 + kuid_t euid;
97318 + kgid_t egid;
97319 +
97320 + if (!grsec_enable_harden_ipc)
97321 + return 1;
97322 +
97323 + euid = current_euid();
97324 + egid = current_egid();
97325 +
97326 + write = requested_mode & 00002;
97327 + orig_granted_mode = ipcp->mode;
97328 +
97329 + if (uid_eq(euid, ipcp->cuid) || uid_eq(euid, ipcp->uid))
97330 + orig_granted_mode >>= 6;
97331 + else {
97332 + /* if likely wrong permissions, lock to user */
97333 + if (orig_granted_mode & 0007)
97334 + orig_granted_mode = 0;
97335 + /* otherwise do a egid-only check */
97336 + else if (gid_eq(egid, ipcp->cgid) || gid_eq(egid, ipcp->gid))
97337 + orig_granted_mode >>= 3;
97338 + /* otherwise, no access */
97339 + else
97340 + orig_granted_mode = 0;
97341 + }
97342 + if (!(requested_mode & ~granted_mode & 0007) && (requested_mode & ~orig_granted_mode & 0007) &&
97343 + !ns_capable_nolog(ns->user_ns, CAP_IPC_OWNER)) {
97344 + gr_log_str_int(GR_DONT_AUDIT, GR_IPC_DENIED_MSG, write ? "write" : "read", GR_GLOBAL_UID(ipcp->cuid));
97345 + return 0;
97346 + }
97347 +#endif
97348 + return 1;
97349 +}
97350 diff --git a/grsecurity/grsec_link.c b/grsecurity/grsec_link.c
97351 new file mode 100644
97352 index 0000000..84c44a0
97353 --- /dev/null
97354 +++ b/grsecurity/grsec_link.c
97355 @@ -0,0 +1,65 @@
97356 +#include <linux/kernel.h>
97357 +#include <linux/sched.h>
97358 +#include <linux/fs.h>
97359 +#include <linux/file.h>
97360 +#include <linux/grinternal.h>
97361 +
97362 +int gr_get_symlinkown_enabled(void)
97363 +{
97364 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
97365 + if (grsec_enable_symlinkown && in_group_p(grsec_symlinkown_gid))
97366 + return 1;
97367 +#endif
97368 + return 0;
97369 +}
97370 +
97371 +int gr_handle_symlink_owner(const struct path *link, const struct inode *target)
97372 +{
97373 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
97374 + const struct inode *link_inode = d_backing_inode(link->dentry);
97375 +
97376 + if (target && !uid_eq(link_inode->i_uid, target->i_uid)) {
97377 + 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));
97378 + return 1;
97379 + }
97380 +#endif
97381 + return 0;
97382 +}
97383 +
97384 +int
97385 +gr_handle_follow_link(const struct dentry *dentry, const struct vfsmount *mnt)
97386 +{
97387 +#ifdef CONFIG_GRKERNSEC_LINK
97388 + struct inode *inode = d_backing_inode(dentry);
97389 + struct inode *parent = d_backing_inode(dentry->d_parent);
97390 + const struct cred *cred = current_cred();
97391 +
97392 + if (grsec_enable_link && d_is_symlink(dentry) &&
97393 + (parent->i_mode & S_ISVTX) && !uid_eq(parent->i_uid, inode->i_uid) &&
97394 + (parent->i_mode & S_IWOTH) && !uid_eq(cred->fsuid, inode->i_uid)) {
97395 + gr_log_fs_int2(GR_DONT_AUDIT, GR_SYMLINK_MSG, dentry, mnt, GR_GLOBAL_UID(inode->i_uid), GR_GLOBAL_GID(inode->i_gid));
97396 + return -EACCES;
97397 + }
97398 +#endif
97399 + return 0;
97400 +}
97401 +
97402 +int
97403 +gr_handle_hardlink(const struct dentry *dentry,
97404 + const struct vfsmount *mnt,
97405 + const struct filename *to)
97406 +{
97407 +#ifdef CONFIG_GRKERNSEC_LINK
97408 + struct inode *inode = d_backing_inode(dentry);
97409 + const struct cred *cred = current_cred();
97410 +
97411 + if (grsec_enable_link && !uid_eq(cred->fsuid, inode->i_uid) &&
97412 + (!d_is_reg(dentry) || is_privileged_binary(dentry) ||
97413 + (inode_permission(inode, MAY_READ | MAY_WRITE))) &&
97414 + !capable(CAP_FOWNER) && gr_is_global_nonroot(cred->uid)) {
97415 + 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);
97416 + return -EPERM;
97417 + }
97418 +#endif
97419 + return 0;
97420 +}
97421 diff --git a/grsecurity/grsec_log.c b/grsecurity/grsec_log.c
97422 new file mode 100644
97423 index 0000000..a24b338
97424 --- /dev/null
97425 +++ b/grsecurity/grsec_log.c
97426 @@ -0,0 +1,340 @@
97427 +#include <linux/kernel.h>
97428 +#include <linux/sched.h>
97429 +#include <linux/file.h>
97430 +#include <linux/tty.h>
97431 +#include <linux/fs.h>
97432 +#include <linux/mm.h>
97433 +#include <linux/grinternal.h>
97434 +
97435 +#ifdef CONFIG_TREE_PREEMPT_RCU
97436 +#define DISABLE_PREEMPT() preempt_disable()
97437 +#define ENABLE_PREEMPT() preempt_enable()
97438 +#else
97439 +#define DISABLE_PREEMPT()
97440 +#define ENABLE_PREEMPT()
97441 +#endif
97442 +
97443 +#define BEGIN_LOCKS(x) \
97444 + DISABLE_PREEMPT(); \
97445 + rcu_read_lock(); \
97446 + read_lock(&tasklist_lock); \
97447 + read_lock(&grsec_exec_file_lock); \
97448 + if (x != GR_DO_AUDIT) \
97449 + spin_lock(&grsec_alert_lock); \
97450 + else \
97451 + spin_lock(&grsec_audit_lock)
97452 +
97453 +#define END_LOCKS(x) \
97454 + if (x != GR_DO_AUDIT) \
97455 + spin_unlock(&grsec_alert_lock); \
97456 + else \
97457 + spin_unlock(&grsec_audit_lock); \
97458 + read_unlock(&grsec_exec_file_lock); \
97459 + read_unlock(&tasklist_lock); \
97460 + rcu_read_unlock(); \
97461 + ENABLE_PREEMPT(); \
97462 + if (x == GR_DONT_AUDIT) \
97463 + gr_handle_alertkill(current)
97464 +
97465 +enum {
97466 + FLOODING,
97467 + NO_FLOODING
97468 +};
97469 +
97470 +extern char *gr_alert_log_fmt;
97471 +extern char *gr_audit_log_fmt;
97472 +extern char *gr_alert_log_buf;
97473 +extern char *gr_audit_log_buf;
97474 +
97475 +static int gr_log_start(int audit)
97476 +{
97477 + char *loglevel = (audit == GR_DO_AUDIT) ? KERN_INFO : KERN_ALERT;
97478 + char *fmt = (audit == GR_DO_AUDIT) ? gr_audit_log_fmt : gr_alert_log_fmt;
97479 + char *buf = (audit == GR_DO_AUDIT) ? gr_audit_log_buf : gr_alert_log_buf;
97480 +#if (CONFIG_GRKERNSEC_FLOODTIME > 0 && CONFIG_GRKERNSEC_FLOODBURST > 0)
97481 + unsigned long curr_secs = get_seconds();
97482 +
97483 + if (audit == GR_DO_AUDIT)
97484 + goto set_fmt;
97485 +
97486 + if (!grsec_alert_wtime || time_after(curr_secs, grsec_alert_wtime + CONFIG_GRKERNSEC_FLOODTIME)) {
97487 + grsec_alert_wtime = curr_secs;
97488 + grsec_alert_fyet = 0;
97489 + } else if (time_before_eq(curr_secs, grsec_alert_wtime + CONFIG_GRKERNSEC_FLOODTIME)
97490 + && (grsec_alert_fyet < CONFIG_GRKERNSEC_FLOODBURST)) {
97491 + grsec_alert_fyet++;
97492 + } else if (grsec_alert_fyet == CONFIG_GRKERNSEC_FLOODBURST) {
97493 + grsec_alert_wtime = curr_secs;
97494 + grsec_alert_fyet++;
97495 + printk(KERN_ALERT "grsec: more alerts, logging disabled for %d seconds\n", CONFIG_GRKERNSEC_FLOODTIME);
97496 + return FLOODING;
97497 + }
97498 + else return FLOODING;
97499 +
97500 +set_fmt:
97501 +#endif
97502 + memset(buf, 0, PAGE_SIZE);
97503 + if (current->signal->curr_ip && gr_acl_is_enabled()) {
97504 + sprintf(fmt, "%s%s", loglevel, "grsec: From %pI4: (%.64s:%c:%.950s) ");
97505 + snprintf(buf, PAGE_SIZE - 1, fmt, &current->signal->curr_ip, current->role->rolename, gr_roletype_to_char(), current->acl->filename);
97506 + } else if (current->signal->curr_ip) {
97507 + sprintf(fmt, "%s%s", loglevel, "grsec: From %pI4: ");
97508 + snprintf(buf, PAGE_SIZE - 1, fmt, &current->signal->curr_ip);
97509 + } else if (gr_acl_is_enabled()) {
97510 + sprintf(fmt, "%s%s", loglevel, "grsec: (%.64s:%c:%.950s) ");
97511 + snprintf(buf, PAGE_SIZE - 1, fmt, current->role->rolename, gr_roletype_to_char(), current->acl->filename);
97512 + } else {
97513 + sprintf(fmt, "%s%s", loglevel, "grsec: ");
97514 + strcpy(buf, fmt);
97515 + }
97516 +
97517 + return NO_FLOODING;
97518 +}
97519 +
97520 +static void gr_log_middle(int audit, const char *msg, va_list ap)
97521 + __attribute__ ((format (printf, 2, 0)));
97522 +
97523 +static void gr_log_middle(int audit, const char *msg, va_list ap)
97524 +{
97525 + char *buf = (audit == GR_DO_AUDIT) ? gr_audit_log_buf : gr_alert_log_buf;
97526 + unsigned int len = strlen(buf);
97527 +
97528 + vsnprintf(buf + len, PAGE_SIZE - len - 1, msg, ap);
97529 +
97530 + return;
97531 +}
97532 +
97533 +static void gr_log_middle_varargs(int audit, const char *msg, ...)
97534 + __attribute__ ((format (printf, 2, 3)));
97535 +
97536 +static void gr_log_middle_varargs(int audit, const char *msg, ...)
97537 +{
97538 + char *buf = (audit == GR_DO_AUDIT) ? gr_audit_log_buf : gr_alert_log_buf;
97539 + unsigned int len = strlen(buf);
97540 + va_list ap;
97541 +
97542 + va_start(ap, msg);
97543 + vsnprintf(buf + len, PAGE_SIZE - len - 1, msg, ap);
97544 + va_end(ap);
97545 +
97546 + return;
97547 +}
97548 +
97549 +static void gr_log_end(int audit, int append_default)
97550 +{
97551 + char *buf = (audit == GR_DO_AUDIT) ? gr_audit_log_buf : gr_alert_log_buf;
97552 + if (append_default) {
97553 + struct task_struct *task = current;
97554 + struct task_struct *parent = task->real_parent;
97555 + const struct cred *cred = __task_cred(task);
97556 + const struct cred *pcred = __task_cred(parent);
97557 + unsigned int len = strlen(buf);
97558 +
97559 + 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));
97560 + }
97561 +
97562 + printk("%s\n", buf);
97563 +
97564 + return;
97565 +}
97566 +
97567 +void gr_log_varargs(int audit, const char *msg, int argtypes, ...)
97568 +{
97569 + int logtype;
97570 + char *result = (audit == GR_DO_AUDIT) ? "successful" : "denied";
97571 + char *str1 = NULL, *str2 = NULL, *str3 = NULL;
97572 + void *voidptr = NULL;
97573 + int num1 = 0, num2 = 0;
97574 + unsigned long ulong1 = 0, ulong2 = 0;
97575 + struct dentry *dentry = NULL;
97576 + struct vfsmount *mnt = NULL;
97577 + struct file *file = NULL;
97578 + struct task_struct *task = NULL;
97579 + struct vm_area_struct *vma = NULL;
97580 + const struct cred *cred, *pcred;
97581 + va_list ap;
97582 +
97583 + BEGIN_LOCKS(audit);
97584 + logtype = gr_log_start(audit);
97585 + if (logtype == FLOODING) {
97586 + END_LOCKS(audit);
97587 + return;
97588 + }
97589 + va_start(ap, argtypes);
97590 + switch (argtypes) {
97591 + case GR_TTYSNIFF:
97592 + task = va_arg(ap, struct task_struct *);
97593 + 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));
97594 + break;
97595 + case GR_SYSCTL_HIDDEN:
97596 + str1 = va_arg(ap, char *);
97597 + gr_log_middle_varargs(audit, msg, result, str1);
97598 + break;
97599 + case GR_RBAC:
97600 + dentry = va_arg(ap, struct dentry *);
97601 + mnt = va_arg(ap, struct vfsmount *);
97602 + gr_log_middle_varargs(audit, msg, result, gr_to_filename(dentry, mnt));
97603 + break;
97604 + case GR_RBAC_STR:
97605 + dentry = va_arg(ap, struct dentry *);
97606 + mnt = va_arg(ap, struct vfsmount *);
97607 + str1 = va_arg(ap, char *);
97608 + gr_log_middle_varargs(audit, msg, result, gr_to_filename(dentry, mnt), str1);
97609 + break;
97610 + case GR_STR_RBAC:
97611 + str1 = va_arg(ap, char *);
97612 + dentry = va_arg(ap, struct dentry *);
97613 + mnt = va_arg(ap, struct vfsmount *);
97614 + gr_log_middle_varargs(audit, msg, result, str1, gr_to_filename(dentry, mnt));
97615 + break;
97616 + case GR_RBAC_MODE2:
97617 + dentry = va_arg(ap, struct dentry *);
97618 + mnt = va_arg(ap, struct vfsmount *);
97619 + str1 = va_arg(ap, char *);
97620 + str2 = va_arg(ap, char *);
97621 + gr_log_middle_varargs(audit, msg, result, gr_to_filename(dentry, mnt), str1, str2);
97622 + break;
97623 + case GR_RBAC_MODE3:
97624 + dentry = va_arg(ap, struct dentry *);
97625 + mnt = va_arg(ap, struct vfsmount *);
97626 + str1 = va_arg(ap, char *);
97627 + str2 = va_arg(ap, char *);
97628 + str3 = va_arg(ap, char *);
97629 + gr_log_middle_varargs(audit, msg, result, gr_to_filename(dentry, mnt), str1, str2, str3);
97630 + break;
97631 + case GR_FILENAME:
97632 + dentry = va_arg(ap, struct dentry *);
97633 + mnt = va_arg(ap, struct vfsmount *);
97634 + gr_log_middle_varargs(audit, msg, gr_to_filename(dentry, mnt));
97635 + break;
97636 + case GR_STR_FILENAME:
97637 + str1 = va_arg(ap, char *);
97638 + dentry = va_arg(ap, struct dentry *);
97639 + mnt = va_arg(ap, struct vfsmount *);
97640 + gr_log_middle_varargs(audit, msg, str1, gr_to_filename(dentry, mnt));
97641 + break;
97642 + case GR_FILENAME_STR:
97643 + dentry = va_arg(ap, struct dentry *);
97644 + mnt = va_arg(ap, struct vfsmount *);
97645 + str1 = va_arg(ap, char *);
97646 + gr_log_middle_varargs(audit, msg, gr_to_filename(dentry, mnt), str1);
97647 + break;
97648 + case GR_FILENAME_TWO_INT:
97649 + dentry = va_arg(ap, struct dentry *);
97650 + mnt = va_arg(ap, struct vfsmount *);
97651 + num1 = va_arg(ap, int);
97652 + num2 = va_arg(ap, int);
97653 + gr_log_middle_varargs(audit, msg, gr_to_filename(dentry, mnt), num1, num2);
97654 + break;
97655 + case GR_FILENAME_TWO_INT_STR:
97656 + dentry = va_arg(ap, struct dentry *);
97657 + mnt = va_arg(ap, struct vfsmount *);
97658 + num1 = va_arg(ap, int);
97659 + num2 = va_arg(ap, int);
97660 + str1 = va_arg(ap, char *);
97661 + gr_log_middle_varargs(audit, msg, gr_to_filename(dentry, mnt), num1, num2, str1);
97662 + break;
97663 + case GR_TEXTREL:
97664 + str1 = va_arg(ap, char *);
97665 + file = va_arg(ap, struct file *);
97666 + ulong1 = va_arg(ap, unsigned long);
97667 + ulong2 = va_arg(ap, unsigned long);
97668 + gr_log_middle_varargs(audit, msg, str1, file ? gr_to_filename(file->f_path.dentry, file->f_path.mnt) : "<anonymous mapping>", ulong1, ulong2);
97669 + break;
97670 + case GR_PTRACE:
97671 + task = va_arg(ap, struct task_struct *);
97672 + 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));
97673 + break;
97674 + case GR_RESOURCE:
97675 + task = va_arg(ap, struct task_struct *);
97676 + cred = __task_cred(task);
97677 + pcred = __task_cred(task->real_parent);
97678 + ulong1 = va_arg(ap, unsigned long);
97679 + str1 = va_arg(ap, char *);
97680 + ulong2 = va_arg(ap, unsigned long);
97681 + 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));
97682 + break;
97683 + case GR_CAP:
97684 + task = va_arg(ap, struct task_struct *);
97685 + cred = __task_cred(task);
97686 + pcred = __task_cred(task->real_parent);
97687 + str1 = va_arg(ap, char *);
97688 + 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));
97689 + break;
97690 + case GR_SIG:
97691 + str1 = va_arg(ap, char *);
97692 + voidptr = va_arg(ap, void *);
97693 + gr_log_middle_varargs(audit, msg, str1, voidptr);
97694 + break;
97695 + case GR_SIG2:
97696 + task = va_arg(ap, struct task_struct *);
97697 + cred = __task_cred(task);
97698 + pcred = __task_cred(task->real_parent);
97699 + num1 = va_arg(ap, int);
97700 + 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));
97701 + break;
97702 + case GR_CRASH1:
97703 + task = va_arg(ap, struct task_struct *);
97704 + cred = __task_cred(task);
97705 + pcred = __task_cred(task->real_parent);
97706 + ulong1 = va_arg(ap, unsigned long);
97707 + 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);
97708 + break;
97709 + case GR_CRASH2:
97710 + task = va_arg(ap, struct task_struct *);
97711 + cred = __task_cred(task);
97712 + pcred = __task_cred(task->real_parent);
97713 + ulong1 = va_arg(ap, unsigned long);
97714 + 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);
97715 + break;
97716 + case GR_RWXMAP:
97717 + file = va_arg(ap, struct file *);
97718 + gr_log_middle_varargs(audit, msg, file ? gr_to_filename(file->f_path.dentry, file->f_path.mnt) : "<anonymous mapping>");
97719 + break;
97720 + case GR_RWXMAPVMA:
97721 + vma = va_arg(ap, struct vm_area_struct *);
97722 + if (vma->vm_file)
97723 + str1 = gr_to_filename(vma->vm_file->f_path.dentry, vma->vm_file->f_path.mnt);
97724 + else if (vma->vm_flags & (VM_GROWSDOWN | VM_GROWSUP))
97725 + str1 = "<stack>";
97726 + else if (vma->vm_start <= current->mm->brk &&
97727 + vma->vm_end >= current->mm->start_brk)
97728 + str1 = "<heap>";
97729 + else
97730 + str1 = "<anonymous mapping>";
97731 + gr_log_middle_varargs(audit, msg, str1);
97732 + break;
97733 + case GR_PSACCT:
97734 + {
97735 + unsigned int wday, cday;
97736 + __u8 whr, chr;
97737 + __u8 wmin, cmin;
97738 + __u8 wsec, csec;
97739 +
97740 + task = va_arg(ap, struct task_struct *);
97741 + wday = va_arg(ap, unsigned int);
97742 + cday = va_arg(ap, unsigned int);
97743 + whr = va_arg(ap, int);
97744 + chr = va_arg(ap, int);
97745 + wmin = va_arg(ap, int);
97746 + cmin = va_arg(ap, int);
97747 + wsec = va_arg(ap, int);
97748 + csec = va_arg(ap, int);
97749 + ulong1 = va_arg(ap, unsigned long);
97750 + cred = __task_cred(task);
97751 + pcred = __task_cred(task->real_parent);
97752 +
97753 + 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));
97754 + }
97755 + break;
97756 + default:
97757 + gr_log_middle(audit, msg, ap);
97758 + }
97759 + va_end(ap);
97760 + // these don't need DEFAULTSECARGS printed on the end
97761 + if (argtypes == GR_CRASH1 || argtypes == GR_CRASH2)
97762 + gr_log_end(audit, 0);
97763 + else
97764 + gr_log_end(audit, 1);
97765 + END_LOCKS(audit);
97766 +}
97767 diff --git a/grsecurity/grsec_mem.c b/grsecurity/grsec_mem.c
97768 new file mode 100644
97769 index 0000000..0e39d8c
97770 --- /dev/null
97771 +++ b/grsecurity/grsec_mem.c
97772 @@ -0,0 +1,48 @@
97773 +#include <linux/kernel.h>
97774 +#include <linux/sched.h>
97775 +#include <linux/mm.h>
97776 +#include <linux/mman.h>
97777 +#include <linux/module.h>
97778 +#include <linux/grinternal.h>
97779 +
97780 +void gr_handle_msr_write(void)
97781 +{
97782 + gr_log_noargs(GR_DONT_AUDIT, GR_MSRWRITE_MSG);
97783 + return;
97784 +}
97785 +EXPORT_SYMBOL_GPL(gr_handle_msr_write);
97786 +
97787 +void
97788 +gr_handle_ioperm(void)
97789 +{
97790 + gr_log_noargs(GR_DONT_AUDIT, GR_IOPERM_MSG);
97791 + return;
97792 +}
97793 +
97794 +void
97795 +gr_handle_iopl(void)
97796 +{
97797 + gr_log_noargs(GR_DONT_AUDIT, GR_IOPL_MSG);
97798 + return;
97799 +}
97800 +
97801 +void
97802 +gr_handle_mem_readwrite(u64 from, u64 to)
97803 +{
97804 + gr_log_two_u64(GR_DONT_AUDIT, GR_MEM_READWRITE_MSG, from, to);
97805 + return;
97806 +}
97807 +
97808 +void
97809 +gr_handle_vm86(void)
97810 +{
97811 + gr_log_noargs(GR_DONT_AUDIT, GR_VM86_MSG);
97812 + return;
97813 +}
97814 +
97815 +void
97816 +gr_log_badprocpid(const char *entry)
97817 +{
97818 + gr_log_str(GR_DONT_AUDIT, GR_BADPROCPID_MSG, entry);
97819 + return;
97820 +}
97821 diff --git a/grsecurity/grsec_mount.c b/grsecurity/grsec_mount.c
97822 new file mode 100644
97823 index 0000000..fe02bf4
97824 --- /dev/null
97825 +++ b/grsecurity/grsec_mount.c
97826 @@ -0,0 +1,65 @@
97827 +#include <linux/kernel.h>
97828 +#include <linux/sched.h>
97829 +#include <linux/mount.h>
97830 +#include <linux/major.h>
97831 +#include <linux/grsecurity.h>
97832 +#include <linux/grinternal.h>
97833 +
97834 +void
97835 +gr_log_remount(const char *devname, const int retval)
97836 +{
97837 +#ifdef CONFIG_GRKERNSEC_AUDIT_MOUNT
97838 + if (grsec_enable_mount && (retval >= 0))
97839 + gr_log_str(GR_DO_AUDIT, GR_REMOUNT_AUDIT_MSG, devname ? devname : "none");
97840 +#endif
97841 + return;
97842 +}
97843 +
97844 +void
97845 +gr_log_unmount(const char *devname, const int retval)
97846 +{
97847 +#ifdef CONFIG_GRKERNSEC_AUDIT_MOUNT
97848 + if (grsec_enable_mount && (retval >= 0))
97849 + gr_log_str(GR_DO_AUDIT, GR_UNMOUNT_AUDIT_MSG, devname ? devname : "none");
97850 +#endif
97851 + return;
97852 +}
97853 +
97854 +void
97855 +gr_log_mount(const char *from, struct path *to, const int retval)
97856 +{
97857 +#ifdef CONFIG_GRKERNSEC_AUDIT_MOUNT
97858 + if (grsec_enable_mount && (retval >= 0))
97859 + gr_log_str_fs(GR_DO_AUDIT, GR_MOUNT_AUDIT_MSG, from ? from : "none", to->dentry, to->mnt);
97860 +#endif
97861 + return;
97862 +}
97863 +
97864 +int
97865 +gr_handle_rofs_mount(struct dentry *dentry, struct vfsmount *mnt, int mnt_flags)
97866 +{
97867 +#ifdef CONFIG_GRKERNSEC_ROFS
97868 + if (grsec_enable_rofs && !(mnt_flags & MNT_READONLY)) {
97869 + gr_log_fs_generic(GR_DO_AUDIT, GR_ROFS_MOUNT_MSG, dentry, mnt);
97870 + return -EPERM;
97871 + } else
97872 + return 0;
97873 +#endif
97874 + return 0;
97875 +}
97876 +
97877 +int
97878 +gr_handle_rofs_blockwrite(struct dentry *dentry, struct vfsmount *mnt, int acc_mode)
97879 +{
97880 +#ifdef CONFIG_GRKERNSEC_ROFS
97881 + struct inode *inode = d_backing_inode(dentry);
97882 +
97883 + if (grsec_enable_rofs && (acc_mode & MAY_WRITE) &&
97884 + inode && (S_ISBLK(inode->i_mode) || (S_ISCHR(inode->i_mode) && imajor(inode) == RAW_MAJOR))) {
97885 + gr_log_fs_generic(GR_DO_AUDIT, GR_ROFS_BLOCKWRITE_MSG, dentry, mnt);
97886 + return -EPERM;
97887 + } else
97888 + return 0;
97889 +#endif
97890 + return 0;
97891 +}
97892 diff --git a/grsecurity/grsec_pax.c b/grsecurity/grsec_pax.c
97893 new file mode 100644
97894 index 0000000..2ad7b96
97895 --- /dev/null
97896 +++ b/grsecurity/grsec_pax.c
97897 @@ -0,0 +1,47 @@
97898 +#include <linux/kernel.h>
97899 +#include <linux/sched.h>
97900 +#include <linux/mm.h>
97901 +#include <linux/file.h>
97902 +#include <linux/grinternal.h>
97903 +#include <linux/grsecurity.h>
97904 +
97905 +void
97906 +gr_log_textrel(struct vm_area_struct * vma, bool is_textrel_rw)
97907 +{
97908 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
97909 + if (grsec_enable_log_rwxmaps)
97910 + gr_log_textrel_ulong_ulong(GR_DONT_AUDIT, GR_TEXTREL_AUDIT_MSG,
97911 + is_textrel_rw ? "executable to writable" : "writable to executable",
97912 + vma->vm_file, vma->vm_start, vma->vm_pgoff);
97913 +#endif
97914 + return;
97915 +}
97916 +
97917 +void gr_log_ptgnustack(struct file *file)
97918 +{
97919 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
97920 + if (grsec_enable_log_rwxmaps)
97921 + gr_log_rwxmap(GR_DONT_AUDIT, GR_PTGNUSTACK_MSG, file);
97922 +#endif
97923 + return;
97924 +}
97925 +
97926 +void
97927 +gr_log_rwxmmap(struct file *file)
97928 +{
97929 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
97930 + if (grsec_enable_log_rwxmaps)
97931 + gr_log_rwxmap(GR_DONT_AUDIT, GR_RWXMMAP_MSG, file);
97932 +#endif
97933 + return;
97934 +}
97935 +
97936 +void
97937 +gr_log_rwxmprotect(struct vm_area_struct *vma)
97938 +{
97939 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
97940 + if (grsec_enable_log_rwxmaps)
97941 + gr_log_rwxmap_vma(GR_DONT_AUDIT, GR_RWXMPROTECT_MSG, vma);
97942 +#endif
97943 + return;
97944 +}
97945 diff --git a/grsecurity/grsec_proc.c b/grsecurity/grsec_proc.c
97946 new file mode 100644
97947 index 0000000..2005a3a
97948 --- /dev/null
97949 +++ b/grsecurity/grsec_proc.c
97950 @@ -0,0 +1,20 @@
97951 +#include <linux/kernel.h>
97952 +#include <linux/sched.h>
97953 +#include <linux/grsecurity.h>
97954 +#include <linux/grinternal.h>
97955 +
97956 +int gr_proc_is_restricted(void)
97957 +{
97958 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
97959 + const struct cred *cred = current_cred();
97960 +#endif
97961 +
97962 +#ifdef CONFIG_GRKERNSEC_PROC_USER
97963 + if (!uid_eq(cred->fsuid, GLOBAL_ROOT_UID))
97964 + return -EACCES;
97965 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
97966 + if (!uid_eq(cred->fsuid, GLOBAL_ROOT_UID) && !in_group_p(grsec_proc_gid))
97967 + return -EACCES;
97968 +#endif
97969 + return 0;
97970 +}
97971 diff --git a/grsecurity/grsec_ptrace.c b/grsecurity/grsec_ptrace.c
97972 new file mode 100644
97973 index 0000000..304c518
97974 --- /dev/null
97975 +++ b/grsecurity/grsec_ptrace.c
97976 @@ -0,0 +1,30 @@
97977 +#include <linux/kernel.h>
97978 +#include <linux/sched.h>
97979 +#include <linux/grinternal.h>
97980 +#include <linux/security.h>
97981 +
97982 +void
97983 +gr_audit_ptrace(struct task_struct *task)
97984 +{
97985 +#ifdef CONFIG_GRKERNSEC_AUDIT_PTRACE
97986 + if (grsec_enable_audit_ptrace)
97987 + gr_log_ptrace(GR_DO_AUDIT, GR_PTRACE_AUDIT_MSG, task);
97988 +#endif
97989 + return;
97990 +}
97991 +
97992 +int
97993 +gr_ptrace_readexec(struct file *file, int unsafe_flags)
97994 +{
97995 +#ifdef CONFIG_GRKERNSEC_PTRACE_READEXEC
97996 + const struct dentry *dentry = file->f_path.dentry;
97997 + const struct vfsmount *mnt = file->f_path.mnt;
97998 +
97999 + if (grsec_enable_ptrace_readexec && (unsafe_flags & LSM_UNSAFE_PTRACE) &&
98000 + (inode_permission(d_backing_inode(dentry), MAY_READ) || !gr_acl_handle_open(dentry, mnt, MAY_READ))) {
98001 + gr_log_fs_generic(GR_DONT_AUDIT, GR_PTRACE_READEXEC_MSG, dentry, mnt);
98002 + return -EACCES;
98003 + }
98004 +#endif
98005 + return 0;
98006 +}
98007 diff --git a/grsecurity/grsec_sig.c b/grsecurity/grsec_sig.c
98008 new file mode 100644
98009 index 0000000..a2b8b8f
98010 --- /dev/null
98011 +++ b/grsecurity/grsec_sig.c
98012 @@ -0,0 +1,245 @@
98013 +#include <linux/kernel.h>
98014 +#include <linux/sched.h>
98015 +#include <linux/fs.h>
98016 +#include <linux/delay.h>
98017 +#include <linux/grsecurity.h>
98018 +#include <linux/grinternal.h>
98019 +#include <linux/hardirq.h>
98020 +#include <asm/pgtable.h>
98021 +
98022 +char *signames[] = {
98023 + [SIGSEGV] = "Segmentation fault",
98024 + [SIGILL] = "Illegal instruction",
98025 + [SIGABRT] = "Abort",
98026 + [SIGBUS] = "Invalid alignment/Bus error"
98027 +};
98028 +
98029 +void
98030 +gr_log_signal(const int sig, const void *addr, const struct task_struct *t)
98031 +{
98032 +#ifdef CONFIG_GRKERNSEC_SIGNAL
98033 + if (grsec_enable_signal && ((sig == SIGSEGV) || (sig == SIGILL) ||
98034 + (sig == SIGABRT) || (sig == SIGBUS))) {
98035 + if (task_pid_nr(t) == task_pid_nr(current)) {
98036 + gr_log_sig_addr(GR_DONT_AUDIT_GOOD, GR_UNISIGLOG_MSG, signames[sig], addr);
98037 + } else {
98038 + gr_log_sig_task(GR_DONT_AUDIT_GOOD, GR_DUALSIGLOG_MSG, t, sig);
98039 + }
98040 + }
98041 +#endif
98042 + return;
98043 +}
98044 +
98045 +int
98046 +gr_handle_signal(const struct task_struct *p, const int sig)
98047 +{
98048 +#ifdef CONFIG_GRKERNSEC
98049 + /* ignore the 0 signal for protected task checks */
98050 + if (task_pid_nr(current) > 1 && sig && gr_check_protected_task(p)) {
98051 + gr_log_sig_task(GR_DONT_AUDIT, GR_SIG_ACL_MSG, p, sig);
98052 + return -EPERM;
98053 + } else if (gr_pid_is_chrooted((struct task_struct *)p)) {
98054 + return -EPERM;
98055 + }
98056 +#endif
98057 + return 0;
98058 +}
98059 +
98060 +#ifdef CONFIG_GRKERNSEC
98061 +extern int specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t);
98062 +
98063 +int gr_fake_force_sig(int sig, struct task_struct *t)
98064 +{
98065 + unsigned long int flags;
98066 + int ret, blocked, ignored;
98067 + struct k_sigaction *action;
98068 +
98069 + spin_lock_irqsave(&t->sighand->siglock, flags);
98070 + action = &t->sighand->action[sig-1];
98071 + ignored = action->sa.sa_handler == SIG_IGN;
98072 + blocked = sigismember(&t->blocked, sig);
98073 + if (blocked || ignored) {
98074 + action->sa.sa_handler = SIG_DFL;
98075 + if (blocked) {
98076 + sigdelset(&t->blocked, sig);
98077 + recalc_sigpending_and_wake(t);
98078 + }
98079 + }
98080 + if (action->sa.sa_handler == SIG_DFL)
98081 + t->signal->flags &= ~SIGNAL_UNKILLABLE;
98082 + ret = specific_send_sig_info(sig, SEND_SIG_PRIV, t);
98083 +
98084 + spin_unlock_irqrestore(&t->sighand->siglock, flags);
98085 +
98086 + return ret;
98087 +}
98088 +#endif
98089 +
98090 +#define GR_USER_BAN_TIME (15 * 60)
98091 +#define GR_DAEMON_BRUTE_TIME (30 * 60)
98092 +
98093 +void gr_handle_brute_attach(int dumpable)
98094 +{
98095 +#ifdef CONFIG_GRKERNSEC_BRUTE
98096 + struct task_struct *p = current;
98097 + kuid_t uid = GLOBAL_ROOT_UID;
98098 + int daemon = 0;
98099 +
98100 + if (!grsec_enable_brute)
98101 + return;
98102 +
98103 + rcu_read_lock();
98104 + read_lock(&tasklist_lock);
98105 + read_lock(&grsec_exec_file_lock);
98106 + if (p->real_parent && gr_is_same_file(p->real_parent->exec_file, p->exec_file) &&
98107 + !is_privileged_binary(p->mm->exe_file->f_path.dentry)) {
98108 + p->real_parent->brute_expires = get_seconds() + GR_DAEMON_BRUTE_TIME;
98109 + p->real_parent->brute = 1;
98110 + daemon = 1;
98111 + } else {
98112 + const struct cred *cred = __task_cred(p), *cred2;
98113 + struct task_struct *tsk, *tsk2;
98114 +
98115 + if (dumpable != SUID_DUMP_USER && gr_is_global_nonroot(cred->uid)) {
98116 + struct user_struct *user;
98117 +
98118 + uid = cred->uid;
98119 +
98120 + /* this is put upon execution past expiration */
98121 + user = find_user(uid);
98122 + if (user == NULL)
98123 + goto unlock;
98124 + user->sugid_banned = 1;
98125 + user->sugid_ban_expires = get_seconds() + GR_USER_BAN_TIME;
98126 + if (user->sugid_ban_expires == ~0UL)
98127 + user->sugid_ban_expires--;
98128 +
98129 + /* only kill other threads of the same binary, from the same user */
98130 + do_each_thread(tsk2, tsk) {
98131 + cred2 = __task_cred(tsk);
98132 + if (tsk != p && uid_eq(cred2->uid, uid) && gr_is_same_file(tsk->exec_file, p->exec_file))
98133 + gr_fake_force_sig(SIGKILL, tsk);
98134 + } while_each_thread(tsk2, tsk);
98135 + }
98136 + }
98137 +unlock:
98138 + read_unlock(&grsec_exec_file_lock);
98139 + read_unlock(&tasklist_lock);
98140 + rcu_read_unlock();
98141 +
98142 + if (gr_is_global_nonroot(uid))
98143 + 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);
98144 + else if (daemon)
98145 + gr_log_noargs(GR_DONT_AUDIT, GR_BRUTE_DAEMON_MSG);
98146 +
98147 +#endif
98148 + return;
98149 +}
98150 +
98151 +void gr_handle_brute_check(void)
98152 +{
98153 +#ifdef CONFIG_GRKERNSEC_BRUTE
98154 + struct task_struct *p = current;
98155 +
98156 + if (unlikely(p->brute)) {
98157 + if (!grsec_enable_brute)
98158 + p->brute = 0;
98159 + else if (time_before(get_seconds(), p->brute_expires))
98160 + msleep(30 * 1000);
98161 + }
98162 +#endif
98163 + return;
98164 +}
98165 +
98166 +void gr_handle_kernel_exploit(void)
98167 +{
98168 +#ifdef CONFIG_GRKERNSEC_KERN_LOCKOUT
98169 + static unsigned int num_banned_users __read_only;
98170 + const struct cred *cred;
98171 + struct task_struct *tsk, *tsk2;
98172 + struct user_struct *user;
98173 + kuid_t uid;
98174 +
98175 + if (in_irq() || in_serving_softirq() || in_nmi())
98176 + panic("grsec: halting the system due to suspicious kernel crash caused in interrupt context");
98177 +
98178 + uid = current_uid();
98179 +
98180 + if (gr_is_global_root(uid))
98181 + panic("grsec: halting the system due to suspicious kernel crash caused by root");
98182 + else {
98183 + pax_open_kernel();
98184 + num_banned_users++;
98185 + pax_close_kernel();
98186 + if (num_banned_users > 8)
98187 + panic("grsec: halting the system due to suspicious kernel crash caused by a large number of different users");
98188 +
98189 + /* kill all the processes of this user, hold a reference
98190 + to their creds struct, and prevent them from creating
98191 + another process until system reset
98192 + */
98193 + printk(KERN_ALERT "grsec: banning user with uid %u until system restart for suspicious kernel crash\n",
98194 + GR_GLOBAL_UID(uid));
98195 + /* we intentionally leak this ref */
98196 + user = get_uid(current->cred->user);
98197 + if (user)
98198 + user->kernel_banned = 1;
98199 +
98200 + /* kill all processes of this user */
98201 + read_lock(&tasklist_lock);
98202 + do_each_thread(tsk2, tsk) {
98203 + cred = __task_cred(tsk);
98204 + if (uid_eq(cred->uid, uid))
98205 + gr_fake_force_sig(SIGKILL, tsk);
98206 + } while_each_thread(tsk2, tsk);
98207 + read_unlock(&tasklist_lock);
98208 + }
98209 +#endif
98210 +}
98211 +
98212 +#ifdef CONFIG_GRKERNSEC_BRUTE
98213 +static bool sugid_ban_expired(struct user_struct *user)
98214 +{
98215 + if (user->sugid_ban_expires != ~0UL && time_after_eq(get_seconds(), user->sugid_ban_expires)) {
98216 + user->sugid_banned = 0;
98217 + user->sugid_ban_expires = 0;
98218 + free_uid(user);
98219 + return true;
98220 + }
98221 +
98222 + return false;
98223 +}
98224 +#endif
98225 +
98226 +int gr_process_kernel_exec_ban(void)
98227 +{
98228 +#ifdef CONFIG_GRKERNSEC_KERN_LOCKOUT
98229 + if (unlikely(current->cred->user->kernel_banned))
98230 + return -EPERM;
98231 +#endif
98232 + return 0;
98233 +}
98234 +
98235 +int gr_process_kernel_setuid_ban(struct user_struct *user)
98236 +{
98237 +#ifdef CONFIG_GRKERNSEC_KERN_LOCKOUT
98238 + if (unlikely(user->kernel_banned))
98239 + gr_fake_force_sig(SIGKILL, current);
98240 +#endif
98241 + return 0;
98242 +}
98243 +
98244 +int gr_process_sugid_exec_ban(const struct linux_binprm *bprm)
98245 +{
98246 +#ifdef CONFIG_GRKERNSEC_BRUTE
98247 + struct user_struct *user = current->cred->user;
98248 + if (unlikely(user->sugid_banned)) {
98249 + if (sugid_ban_expired(user))
98250 + return 0;
98251 + /* disallow execution of suid/sgid binaries only */
98252 + else if (is_privileged_binary(bprm->file->f_path.dentry))
98253 + return -EPERM;
98254 + }
98255 +#endif
98256 + return 0;
98257 +}
98258 diff --git a/grsecurity/grsec_sock.c b/grsecurity/grsec_sock.c
98259 new file mode 100644
98260 index 0000000..a523bd2
98261 --- /dev/null
98262 +++ b/grsecurity/grsec_sock.c
98263 @@ -0,0 +1,244 @@
98264 +#include <linux/kernel.h>
98265 +#include <linux/module.h>
98266 +#include <linux/sched.h>
98267 +#include <linux/file.h>
98268 +#include <linux/net.h>
98269 +#include <linux/in.h>
98270 +#include <linux/ip.h>
98271 +#include <net/sock.h>
98272 +#include <net/inet_sock.h>
98273 +#include <linux/grsecurity.h>
98274 +#include <linux/grinternal.h>
98275 +#include <linux/gracl.h>
98276 +
98277 +extern int gr_search_udp_recvmsg(const struct sock *sk, const struct sk_buff *skb);
98278 +extern int gr_search_udp_sendmsg(const struct sock *sk, const struct sockaddr_in *addr);
98279 +
98280 +EXPORT_SYMBOL_GPL(gr_search_udp_recvmsg);
98281 +EXPORT_SYMBOL_GPL(gr_search_udp_sendmsg);
98282 +
98283 +#ifdef CONFIG_UNIX_MODULE
98284 +EXPORT_SYMBOL_GPL(gr_acl_handle_unix);
98285 +EXPORT_SYMBOL_GPL(gr_acl_handle_mknod);
98286 +EXPORT_SYMBOL_GPL(gr_handle_chroot_unix);
98287 +EXPORT_SYMBOL_GPL(gr_handle_create);
98288 +#endif
98289 +
98290 +#ifdef CONFIG_GRKERNSEC
98291 +#define gr_conn_table_size 32749
98292 +struct conn_table_entry {
98293 + struct conn_table_entry *next;
98294 + struct signal_struct *sig;
98295 +};
98296 +
98297 +struct conn_table_entry *gr_conn_table[gr_conn_table_size];
98298 +DEFINE_SPINLOCK(gr_conn_table_lock);
98299 +
98300 +extern const char * gr_socktype_to_name(unsigned char type);
98301 +extern const char * gr_proto_to_name(unsigned char proto);
98302 +extern const char * gr_sockfamily_to_name(unsigned char family);
98303 +
98304 +static int
98305 +conn_hash(__u32 saddr, __u32 daddr, __u16 sport, __u16 dport, unsigned int size)
98306 +{
98307 + return ((daddr + saddr + (sport << 8) + (dport << 16)) % size);
98308 +}
98309 +
98310 +static int
98311 +conn_match(const struct signal_struct *sig, __u32 saddr, __u32 daddr,
98312 + __u16 sport, __u16 dport)
98313 +{
98314 + if (unlikely(sig->gr_saddr == saddr && sig->gr_daddr == daddr &&
98315 + sig->gr_sport == sport && sig->gr_dport == dport))
98316 + return 1;
98317 + else
98318 + return 0;
98319 +}
98320 +
98321 +static void gr_add_to_task_ip_table_nolock(struct signal_struct *sig, struct conn_table_entry *newent)
98322 +{
98323 + struct conn_table_entry **match;
98324 + unsigned int index;
98325 +
98326 + index = conn_hash(sig->gr_saddr, sig->gr_daddr,
98327 + sig->gr_sport, sig->gr_dport,
98328 + gr_conn_table_size);
98329 +
98330 + newent->sig = sig;
98331 +
98332 + match = &gr_conn_table[index];
98333 + newent->next = *match;
98334 + *match = newent;
98335 +
98336 + return;
98337 +}
98338 +
98339 +static void gr_del_task_from_ip_table_nolock(struct signal_struct *sig)
98340 +{
98341 + struct conn_table_entry *match, *last = NULL;
98342 + unsigned int index;
98343 +
98344 + index = conn_hash(sig->gr_saddr, sig->gr_daddr,
98345 + sig->gr_sport, sig->gr_dport,
98346 + gr_conn_table_size);
98347 +
98348 + match = gr_conn_table[index];
98349 + while (match && !conn_match(match->sig,
98350 + sig->gr_saddr, sig->gr_daddr, sig->gr_sport,
98351 + sig->gr_dport)) {
98352 + last = match;
98353 + match = match->next;
98354 + }
98355 +
98356 + if (match) {
98357 + if (last)
98358 + last->next = match->next;
98359 + else
98360 + gr_conn_table[index] = NULL;
98361 + kfree(match);
98362 + }
98363 +
98364 + return;
98365 +}
98366 +
98367 +static struct signal_struct * gr_lookup_task_ip_table(__u32 saddr, __u32 daddr,
98368 + __u16 sport, __u16 dport)
98369 +{
98370 + struct conn_table_entry *match;
98371 + unsigned int index;
98372 +
98373 + index = conn_hash(saddr, daddr, sport, dport, gr_conn_table_size);
98374 +
98375 + match = gr_conn_table[index];
98376 + while (match && !conn_match(match->sig, saddr, daddr, sport, dport))
98377 + match = match->next;
98378 +
98379 + if (match)
98380 + return match->sig;
98381 + else
98382 + return NULL;
98383 +}
98384 +
98385 +#endif
98386 +
98387 +void gr_update_task_in_ip_table(const struct inet_sock *inet)
98388 +{
98389 +#ifdef CONFIG_GRKERNSEC
98390 + struct signal_struct *sig = current->signal;
98391 + struct conn_table_entry *newent;
98392 +
98393 + newent = kmalloc(sizeof(struct conn_table_entry), GFP_ATOMIC);
98394 + if (newent == NULL)
98395 + return;
98396 + /* no bh lock needed since we are called with bh disabled */
98397 + spin_lock(&gr_conn_table_lock);
98398 + gr_del_task_from_ip_table_nolock(sig);
98399 + sig->gr_saddr = inet->inet_rcv_saddr;
98400 + sig->gr_daddr = inet->inet_daddr;
98401 + sig->gr_sport = inet->inet_sport;
98402 + sig->gr_dport = inet->inet_dport;
98403 + gr_add_to_task_ip_table_nolock(sig, newent);
98404 + spin_unlock(&gr_conn_table_lock);
98405 +#endif
98406 + return;
98407 +}
98408 +
98409 +void gr_del_task_from_ip_table(struct task_struct *task)
98410 +{
98411 +#ifdef CONFIG_GRKERNSEC
98412 + spin_lock_bh(&gr_conn_table_lock);
98413 + gr_del_task_from_ip_table_nolock(task->signal);
98414 + spin_unlock_bh(&gr_conn_table_lock);
98415 +#endif
98416 + return;
98417 +}
98418 +
98419 +void
98420 +gr_attach_curr_ip(const struct sock *sk)
98421 +{
98422 +#ifdef CONFIG_GRKERNSEC
98423 + struct signal_struct *p, *set;
98424 + const struct inet_sock *inet = inet_sk(sk);
98425 +
98426 + if (unlikely(sk->sk_protocol != IPPROTO_TCP))
98427 + return;
98428 +
98429 + set = current->signal;
98430 +
98431 + spin_lock_bh(&gr_conn_table_lock);
98432 + p = gr_lookup_task_ip_table(inet->inet_daddr, inet->inet_rcv_saddr,
98433 + inet->inet_dport, inet->inet_sport);
98434 + if (unlikely(p != NULL)) {
98435 + set->curr_ip = p->curr_ip;
98436 + set->used_accept = 1;
98437 + gr_del_task_from_ip_table_nolock(p);
98438 + spin_unlock_bh(&gr_conn_table_lock);
98439 + return;
98440 + }
98441 + spin_unlock_bh(&gr_conn_table_lock);
98442 +
98443 + set->curr_ip = inet->inet_daddr;
98444 + set->used_accept = 1;
98445 +#endif
98446 + return;
98447 +}
98448 +
98449 +int
98450 +gr_handle_sock_all(const int family, const int type, const int protocol)
98451 +{
98452 +#ifdef CONFIG_GRKERNSEC_SOCKET_ALL
98453 + if (grsec_enable_socket_all && in_group_p(grsec_socket_all_gid) &&
98454 + (family != AF_UNIX)) {
98455 + if (family == AF_INET)
98456 + gr_log_str3(GR_DONT_AUDIT, GR_SOCK_MSG, gr_sockfamily_to_name(family), gr_socktype_to_name(type), gr_proto_to_name(protocol));
98457 + else
98458 + gr_log_str2_int(GR_DONT_AUDIT, GR_SOCK_NOINET_MSG, gr_sockfamily_to_name(family), gr_socktype_to_name(type), protocol);
98459 + return -EACCES;
98460 + }
98461 +#endif
98462 + return 0;
98463 +}
98464 +
98465 +int
98466 +gr_handle_sock_server(const struct sockaddr *sck)
98467 +{
98468 +#ifdef CONFIG_GRKERNSEC_SOCKET_SERVER
98469 + if (grsec_enable_socket_server &&
98470 + in_group_p(grsec_socket_server_gid) &&
98471 + sck && (sck->sa_family != AF_UNIX) &&
98472 + (sck->sa_family != AF_LOCAL)) {
98473 + gr_log_noargs(GR_DONT_AUDIT, GR_BIND_MSG);
98474 + return -EACCES;
98475 + }
98476 +#endif
98477 + return 0;
98478 +}
98479 +
98480 +int
98481 +gr_handle_sock_server_other(const struct sock *sck)
98482 +{
98483 +#ifdef CONFIG_GRKERNSEC_SOCKET_SERVER
98484 + if (grsec_enable_socket_server &&
98485 + in_group_p(grsec_socket_server_gid) &&
98486 + sck && (sck->sk_family != AF_UNIX) &&
98487 + (sck->sk_family != AF_LOCAL)) {
98488 + gr_log_noargs(GR_DONT_AUDIT, GR_BIND_MSG);
98489 + return -EACCES;
98490 + }
98491 +#endif
98492 + return 0;
98493 +}
98494 +
98495 +int
98496 +gr_handle_sock_client(const struct sockaddr *sck)
98497 +{
98498 +#ifdef CONFIG_GRKERNSEC_SOCKET_CLIENT
98499 + if (grsec_enable_socket_client && in_group_p(grsec_socket_client_gid) &&
98500 + sck && (sck->sa_family != AF_UNIX) &&
98501 + (sck->sa_family != AF_LOCAL)) {
98502 + gr_log_noargs(GR_DONT_AUDIT, GR_CONNECT_MSG);
98503 + return -EACCES;
98504 + }
98505 +#endif
98506 + return 0;
98507 +}
98508 diff --git a/grsecurity/grsec_sysctl.c b/grsecurity/grsec_sysctl.c
98509 new file mode 100644
98510 index 0000000..4f673f8
98511 --- /dev/null
98512 +++ b/grsecurity/grsec_sysctl.c
98513 @@ -0,0 +1,497 @@
98514 +#include <linux/kernel.h>
98515 +#include <linux/sched.h>
98516 +#include <linux/sysctl.h>
98517 +#include <linux/grsecurity.h>
98518 +#include <linux/grinternal.h>
98519 +
98520 +int
98521 +gr_handle_sysctl_mod(const char *dirname, const char *name, const int op)
98522 +{
98523 +#ifdef CONFIG_GRKERNSEC_SYSCTL
98524 + if (dirname == NULL || name == NULL)
98525 + return 0;
98526 + if (!strcmp(dirname, "grsecurity") && grsec_lock && (op & MAY_WRITE)) {
98527 + gr_log_str(GR_DONT_AUDIT, GR_SYSCTL_MSG, name);
98528 + return -EACCES;
98529 + }
98530 +#endif
98531 + return 0;
98532 +}
98533 +
98534 +#if defined(CONFIG_GRKERNSEC_ROFS) || defined(CONFIG_GRKERNSEC_DENYUSB)
98535 +static int __maybe_unused __read_only one = 1;
98536 +#endif
98537 +
98538 +#if defined(CONFIG_GRKERNSEC_SYSCTL) || defined(CONFIG_GRKERNSEC_ROFS) || \
98539 + defined(CONFIG_GRKERNSEC_DENYUSB)
98540 +struct ctl_table grsecurity_table[] = {
98541 +#ifdef CONFIG_GRKERNSEC_SYSCTL
98542 +#ifdef CONFIG_GRKERNSEC_SYSCTL_DISTRO
98543 +#ifdef CONFIG_GRKERNSEC_IO
98544 + {
98545 + .procname = "disable_priv_io",
98546 + .data = &grsec_disable_privio,
98547 + .maxlen = sizeof(int),
98548 + .mode = 0600,
98549 + .proc_handler = &proc_dointvec_secure,
98550 + },
98551 +#endif
98552 +#endif
98553 +#ifdef CONFIG_GRKERNSEC_LINK
98554 + {
98555 + .procname = "linking_restrictions",
98556 + .data = &grsec_enable_link,
98557 + .maxlen = sizeof(int),
98558 + .mode = 0600,
98559 + .proc_handler = &proc_dointvec_secure,
98560 + },
98561 +#endif
98562 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
98563 + {
98564 + .procname = "enforce_symlinksifowner",
98565 + .data = &grsec_enable_symlinkown,
98566 + .maxlen = sizeof(int),
98567 + .mode = 0600,
98568 + .proc_handler = &proc_dointvec_secure,
98569 + },
98570 + {
98571 + .procname = "symlinkown_gid",
98572 + .data = &grsec_symlinkown_gid,
98573 + .maxlen = sizeof(int),
98574 + .mode = 0600,
98575 + .proc_handler = &proc_dointvec_secure,
98576 + },
98577 +#endif
98578 +#ifdef CONFIG_GRKERNSEC_BRUTE
98579 + {
98580 + .procname = "deter_bruteforce",
98581 + .data = &grsec_enable_brute,
98582 + .maxlen = sizeof(int),
98583 + .mode = 0600,
98584 + .proc_handler = &proc_dointvec_secure,
98585 + },
98586 +#endif
98587 +#ifdef CONFIG_GRKERNSEC_FIFO
98588 + {
98589 + .procname = "fifo_restrictions",
98590 + .data = &grsec_enable_fifo,
98591 + .maxlen = sizeof(int),
98592 + .mode = 0600,
98593 + .proc_handler = &proc_dointvec_secure,
98594 + },
98595 +#endif
98596 +#ifdef CONFIG_GRKERNSEC_PTRACE_READEXEC
98597 + {
98598 + .procname = "ptrace_readexec",
98599 + .data = &grsec_enable_ptrace_readexec,
98600 + .maxlen = sizeof(int),
98601 + .mode = 0600,
98602 + .proc_handler = &proc_dointvec_secure,
98603 + },
98604 +#endif
98605 +#ifdef CONFIG_GRKERNSEC_SETXID
98606 + {
98607 + .procname = "consistent_setxid",
98608 + .data = &grsec_enable_setxid,
98609 + .maxlen = sizeof(int),
98610 + .mode = 0600,
98611 + .proc_handler = &proc_dointvec_secure,
98612 + },
98613 +#endif
98614 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
98615 + {
98616 + .procname = "ip_blackhole",
98617 + .data = &grsec_enable_blackhole,
98618 + .maxlen = sizeof(int),
98619 + .mode = 0600,
98620 + .proc_handler = &proc_dointvec_secure,
98621 + },
98622 + {
98623 + .procname = "lastack_retries",
98624 + .data = &grsec_lastack_retries,
98625 + .maxlen = sizeof(int),
98626 + .mode = 0600,
98627 + .proc_handler = &proc_dointvec_secure,
98628 + },
98629 +#endif
98630 +#ifdef CONFIG_GRKERNSEC_EXECLOG
98631 + {
98632 + .procname = "exec_logging",
98633 + .data = &grsec_enable_execlog,
98634 + .maxlen = sizeof(int),
98635 + .mode = 0600,
98636 + .proc_handler = &proc_dointvec_secure,
98637 + },
98638 +#endif
98639 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
98640 + {
98641 + .procname = "rwxmap_logging",
98642 + .data = &grsec_enable_log_rwxmaps,
98643 + .maxlen = sizeof(int),
98644 + .mode = 0600,
98645 + .proc_handler = &proc_dointvec_secure,
98646 + },
98647 +#endif
98648 +#ifdef CONFIG_GRKERNSEC_SIGNAL
98649 + {
98650 + .procname = "signal_logging",
98651 + .data = &grsec_enable_signal,
98652 + .maxlen = sizeof(int),
98653 + .mode = 0600,
98654 + .proc_handler = &proc_dointvec_secure,
98655 + },
98656 +#endif
98657 +#ifdef CONFIG_GRKERNSEC_FORKFAIL
98658 + {
98659 + .procname = "forkfail_logging",
98660 + .data = &grsec_enable_forkfail,
98661 + .maxlen = sizeof(int),
98662 + .mode = 0600,
98663 + .proc_handler = &proc_dointvec_secure,
98664 + },
98665 +#endif
98666 +#ifdef CONFIG_GRKERNSEC_TIME
98667 + {
98668 + .procname = "timechange_logging",
98669 + .data = &grsec_enable_time,
98670 + .maxlen = sizeof(int),
98671 + .mode = 0600,
98672 + .proc_handler = &proc_dointvec_secure,
98673 + },
98674 +#endif
98675 +#ifdef CONFIG_GRKERNSEC_CHROOT_SHMAT
98676 + {
98677 + .procname = "chroot_deny_shmat",
98678 + .data = &grsec_enable_chroot_shmat,
98679 + .maxlen = sizeof(int),
98680 + .mode = 0600,
98681 + .proc_handler = &proc_dointvec_secure,
98682 + },
98683 +#endif
98684 +#ifdef CONFIG_GRKERNSEC_CHROOT_UNIX
98685 + {
98686 + .procname = "chroot_deny_unix",
98687 + .data = &grsec_enable_chroot_unix,
98688 + .maxlen = sizeof(int),
98689 + .mode = 0600,
98690 + .proc_handler = &proc_dointvec_secure,
98691 + },
98692 +#endif
98693 +#ifdef CONFIG_GRKERNSEC_CHROOT_MOUNT
98694 + {
98695 + .procname = "chroot_deny_mount",
98696 + .data = &grsec_enable_chroot_mount,
98697 + .maxlen = sizeof(int),
98698 + .mode = 0600,
98699 + .proc_handler = &proc_dointvec_secure,
98700 + },
98701 +#endif
98702 +#ifdef CONFIG_GRKERNSEC_CHROOT_FCHDIR
98703 + {
98704 + .procname = "chroot_deny_fchdir",
98705 + .data = &grsec_enable_chroot_fchdir,
98706 + .maxlen = sizeof(int),
98707 + .mode = 0600,
98708 + .proc_handler = &proc_dointvec_secure,
98709 + },
98710 +#endif
98711 +#ifdef CONFIG_GRKERNSEC_CHROOT_DOUBLE
98712 + {
98713 + .procname = "chroot_deny_chroot",
98714 + .data = &grsec_enable_chroot_double,
98715 + .maxlen = sizeof(int),
98716 + .mode = 0600,
98717 + .proc_handler = &proc_dointvec_secure,
98718 + },
98719 +#endif
98720 +#ifdef CONFIG_GRKERNSEC_CHROOT_PIVOT
98721 + {
98722 + .procname = "chroot_deny_pivot",
98723 + .data = &grsec_enable_chroot_pivot,
98724 + .maxlen = sizeof(int),
98725 + .mode = 0600,
98726 + .proc_handler = &proc_dointvec_secure,
98727 + },
98728 +#endif
98729 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHDIR
98730 + {
98731 + .procname = "chroot_enforce_chdir",
98732 + .data = &grsec_enable_chroot_chdir,
98733 + .maxlen = sizeof(int),
98734 + .mode = 0600,
98735 + .proc_handler = &proc_dointvec_secure,
98736 + },
98737 +#endif
98738 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHMOD
98739 + {
98740 + .procname = "chroot_deny_chmod",
98741 + .data = &grsec_enable_chroot_chmod,
98742 + .maxlen = sizeof(int),
98743 + .mode = 0600,
98744 + .proc_handler = &proc_dointvec_secure,
98745 + },
98746 +#endif
98747 +#ifdef CONFIG_GRKERNSEC_CHROOT_MKNOD
98748 + {
98749 + .procname = "chroot_deny_mknod",
98750 + .data = &grsec_enable_chroot_mknod,
98751 + .maxlen = sizeof(int),
98752 + .mode = 0600,
98753 + .proc_handler = &proc_dointvec_secure,
98754 + },
98755 +#endif
98756 +#ifdef CONFIG_GRKERNSEC_CHROOT_NICE
98757 + {
98758 + .procname = "chroot_restrict_nice",
98759 + .data = &grsec_enable_chroot_nice,
98760 + .maxlen = sizeof(int),
98761 + .mode = 0600,
98762 + .proc_handler = &proc_dointvec_secure,
98763 + },
98764 +#endif
98765 +#ifdef CONFIG_GRKERNSEC_CHROOT_EXECLOG
98766 + {
98767 + .procname = "chroot_execlog",
98768 + .data = &grsec_enable_chroot_execlog,
98769 + .maxlen = sizeof(int),
98770 + .mode = 0600,
98771 + .proc_handler = &proc_dointvec_secure,
98772 + },
98773 +#endif
98774 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
98775 + {
98776 + .procname = "chroot_caps",
98777 + .data = &grsec_enable_chroot_caps,
98778 + .maxlen = sizeof(int),
98779 + .mode = 0600,
98780 + .proc_handler = &proc_dointvec_secure,
98781 + },
98782 +#endif
98783 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
98784 + {
98785 + .procname = "chroot_deny_bad_rename",
98786 + .data = &grsec_enable_chroot_rename,
98787 + .maxlen = sizeof(int),
98788 + .mode = 0600,
98789 + .proc_handler = &proc_dointvec_secure,
98790 + },
98791 +#endif
98792 +#ifdef CONFIG_GRKERNSEC_CHROOT_SYSCTL
98793 + {
98794 + .procname = "chroot_deny_sysctl",
98795 + .data = &grsec_enable_chroot_sysctl,
98796 + .maxlen = sizeof(int),
98797 + .mode = 0600,
98798 + .proc_handler = &proc_dointvec_secure,
98799 + },
98800 +#endif
98801 +#ifdef CONFIG_GRKERNSEC_TPE
98802 + {
98803 + .procname = "tpe",
98804 + .data = &grsec_enable_tpe,
98805 + .maxlen = sizeof(int),
98806 + .mode = 0600,
98807 + .proc_handler = &proc_dointvec_secure,
98808 + },
98809 + {
98810 + .procname = "tpe_gid",
98811 + .data = &grsec_tpe_gid,
98812 + .maxlen = sizeof(int),
98813 + .mode = 0600,
98814 + .proc_handler = &proc_dointvec_secure,
98815 + },
98816 +#endif
98817 +#ifdef CONFIG_GRKERNSEC_TPE_INVERT
98818 + {
98819 + .procname = "tpe_invert",
98820 + .data = &grsec_enable_tpe_invert,
98821 + .maxlen = sizeof(int),
98822 + .mode = 0600,
98823 + .proc_handler = &proc_dointvec_secure,
98824 + },
98825 +#endif
98826 +#ifdef CONFIG_GRKERNSEC_TPE_ALL
98827 + {
98828 + .procname = "tpe_restrict_all",
98829 + .data = &grsec_enable_tpe_all,
98830 + .maxlen = sizeof(int),
98831 + .mode = 0600,
98832 + .proc_handler = &proc_dointvec_secure,
98833 + },
98834 +#endif
98835 +#ifdef CONFIG_GRKERNSEC_SOCKET_ALL
98836 + {
98837 + .procname = "socket_all",
98838 + .data = &grsec_enable_socket_all,
98839 + .maxlen = sizeof(int),
98840 + .mode = 0600,
98841 + .proc_handler = &proc_dointvec_secure,
98842 + },
98843 + {
98844 + .procname = "socket_all_gid",
98845 + .data = &grsec_socket_all_gid,
98846 + .maxlen = sizeof(int),
98847 + .mode = 0600,
98848 + .proc_handler = &proc_dointvec_secure,
98849 + },
98850 +#endif
98851 +#ifdef CONFIG_GRKERNSEC_SOCKET_CLIENT
98852 + {
98853 + .procname = "socket_client",
98854 + .data = &grsec_enable_socket_client,
98855 + .maxlen = sizeof(int),
98856 + .mode = 0600,
98857 + .proc_handler = &proc_dointvec_secure,
98858 + },
98859 + {
98860 + .procname = "socket_client_gid",
98861 + .data = &grsec_socket_client_gid,
98862 + .maxlen = sizeof(int),
98863 + .mode = 0600,
98864 + .proc_handler = &proc_dointvec_secure,
98865 + },
98866 +#endif
98867 +#ifdef CONFIG_GRKERNSEC_SOCKET_SERVER
98868 + {
98869 + .procname = "socket_server",
98870 + .data = &grsec_enable_socket_server,
98871 + .maxlen = sizeof(int),
98872 + .mode = 0600,
98873 + .proc_handler = &proc_dointvec_secure,
98874 + },
98875 + {
98876 + .procname = "socket_server_gid",
98877 + .data = &grsec_socket_server_gid,
98878 + .maxlen = sizeof(int),
98879 + .mode = 0600,
98880 + .proc_handler = &proc_dointvec_secure,
98881 + },
98882 +#endif
98883 +#ifdef CONFIG_GRKERNSEC_AUDIT_GROUP
98884 + {
98885 + .procname = "audit_group",
98886 + .data = &grsec_enable_group,
98887 + .maxlen = sizeof(int),
98888 + .mode = 0600,
98889 + .proc_handler = &proc_dointvec_secure,
98890 + },
98891 + {
98892 + .procname = "audit_gid",
98893 + .data = &grsec_audit_gid,
98894 + .maxlen = sizeof(int),
98895 + .mode = 0600,
98896 + .proc_handler = &proc_dointvec_secure,
98897 + },
98898 +#endif
98899 +#ifdef CONFIG_GRKERNSEC_AUDIT_CHDIR
98900 + {
98901 + .procname = "audit_chdir",
98902 + .data = &grsec_enable_chdir,
98903 + .maxlen = sizeof(int),
98904 + .mode = 0600,
98905 + .proc_handler = &proc_dointvec_secure,
98906 + },
98907 +#endif
98908 +#ifdef CONFIG_GRKERNSEC_AUDIT_MOUNT
98909 + {
98910 + .procname = "audit_mount",
98911 + .data = &grsec_enable_mount,
98912 + .maxlen = sizeof(int),
98913 + .mode = 0600,
98914 + .proc_handler = &proc_dointvec_secure,
98915 + },
98916 +#endif
98917 +#ifdef CONFIG_GRKERNSEC_DMESG
98918 + {
98919 + .procname = "dmesg",
98920 + .data = &grsec_enable_dmesg,
98921 + .maxlen = sizeof(int),
98922 + .mode = 0600,
98923 + .proc_handler = &proc_dointvec_secure,
98924 + },
98925 +#endif
98926 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
98927 + {
98928 + .procname = "chroot_findtask",
98929 + .data = &grsec_enable_chroot_findtask,
98930 + .maxlen = sizeof(int),
98931 + .mode = 0600,
98932 + .proc_handler = &proc_dointvec_secure,
98933 + },
98934 +#endif
98935 +#ifdef CONFIG_GRKERNSEC_RESLOG
98936 + {
98937 + .procname = "resource_logging",
98938 + .data = &grsec_resource_logging,
98939 + .maxlen = sizeof(int),
98940 + .mode = 0600,
98941 + .proc_handler = &proc_dointvec_secure,
98942 + },
98943 +#endif
98944 +#ifdef CONFIG_GRKERNSEC_AUDIT_PTRACE
98945 + {
98946 + .procname = "audit_ptrace",
98947 + .data = &grsec_enable_audit_ptrace,
98948 + .maxlen = sizeof(int),
98949 + .mode = 0600,
98950 + .proc_handler = &proc_dointvec_secure,
98951 + },
98952 +#endif
98953 +#ifdef CONFIG_GRKERNSEC_HARDEN_PTRACE
98954 + {
98955 + .procname = "harden_ptrace",
98956 + .data = &grsec_enable_harden_ptrace,
98957 + .maxlen = sizeof(int),
98958 + .mode = 0600,
98959 + .proc_handler = &proc_dointvec_secure,
98960 + },
98961 +#endif
98962 +#ifdef CONFIG_GRKERNSEC_HARDEN_IPC
98963 + {
98964 + .procname = "harden_ipc",
98965 + .data = &grsec_enable_harden_ipc,
98966 + .maxlen = sizeof(int),
98967 + .mode = 0600,
98968 + .proc_handler = &proc_dointvec_secure,
98969 + },
98970 +#endif
98971 +#ifdef CONFIG_GRKERNSEC_HARDEN_TTY
98972 + {
98973 + .procname = "harden_tty",
98974 + .data = &grsec_enable_harden_tty,
98975 + .maxlen = sizeof(int),
98976 + .mode = 0600,
98977 + .proc_handler = &proc_dointvec_secure,
98978 + },
98979 +#endif
98980 + {
98981 + .procname = "grsec_lock",
98982 + .data = &grsec_lock,
98983 + .maxlen = sizeof(int),
98984 + .mode = 0600,
98985 + .proc_handler = &proc_dointvec_secure,
98986 + },
98987 +#endif
98988 +#ifdef CONFIG_GRKERNSEC_ROFS
98989 + {
98990 + .procname = "romount_protect",
98991 + .data = &grsec_enable_rofs,
98992 + .maxlen = sizeof(int),
98993 + .mode = 0600,
98994 + .proc_handler = &proc_dointvec_minmax_secure,
98995 + .extra1 = &one,
98996 + .extra2 = &one,
98997 + },
98998 +#endif
98999 +#if defined(CONFIG_GRKERNSEC_DENYUSB) && !defined(CONFIG_GRKERNSEC_DENYUSB_FORCE)
99000 + {
99001 + .procname = "deny_new_usb",
99002 + .data = &grsec_deny_new_usb,
99003 + .maxlen = sizeof(int),
99004 + .mode = 0600,
99005 + .proc_handler = &proc_dointvec_secure,
99006 + },
99007 +#endif
99008 + { }
99009 +};
99010 +#endif
99011 diff --git a/grsecurity/grsec_time.c b/grsecurity/grsec_time.c
99012 new file mode 100644
99013 index 0000000..61b514e
99014 --- /dev/null
99015 +++ b/grsecurity/grsec_time.c
99016 @@ -0,0 +1,16 @@
99017 +#include <linux/kernel.h>
99018 +#include <linux/sched.h>
99019 +#include <linux/grinternal.h>
99020 +#include <linux/module.h>
99021 +
99022 +void
99023 +gr_log_timechange(void)
99024 +{
99025 +#ifdef CONFIG_GRKERNSEC_TIME
99026 + if (grsec_enable_time)
99027 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_TIME_MSG);
99028 +#endif
99029 + return;
99030 +}
99031 +
99032 +EXPORT_SYMBOL_GPL(gr_log_timechange);
99033 diff --git a/grsecurity/grsec_tpe.c b/grsecurity/grsec_tpe.c
99034 new file mode 100644
99035 index 0000000..9786671
99036 --- /dev/null
99037 +++ b/grsecurity/grsec_tpe.c
99038 @@ -0,0 +1,78 @@
99039 +#include <linux/kernel.h>
99040 +#include <linux/sched.h>
99041 +#include <linux/file.h>
99042 +#include <linux/fs.h>
99043 +#include <linux/grinternal.h>
99044 +
99045 +extern int gr_acl_tpe_check(void);
99046 +
99047 +int
99048 +gr_tpe_allow(const struct file *file)
99049 +{
99050 +#ifdef CONFIG_GRKERNSEC
99051 + struct inode *inode = d_backing_inode(file->f_path.dentry->d_parent);
99052 + struct inode *file_inode = d_backing_inode(file->f_path.dentry);
99053 + const struct cred *cred = current_cred();
99054 + char *msg = NULL;
99055 + char *msg2 = NULL;
99056 +
99057 + // never restrict root
99058 + if (gr_is_global_root(cred->uid))
99059 + return 1;
99060 +
99061 + if (grsec_enable_tpe) {
99062 +#ifdef CONFIG_GRKERNSEC_TPE_INVERT
99063 + if (grsec_enable_tpe_invert && !in_group_p(grsec_tpe_gid))
99064 + msg = "not being in trusted group";
99065 + else if (!grsec_enable_tpe_invert && in_group_p(grsec_tpe_gid))
99066 + msg = "being in untrusted group";
99067 +#else
99068 + if (in_group_p(grsec_tpe_gid))
99069 + msg = "being in untrusted group";
99070 +#endif
99071 + }
99072 + if (!msg && gr_acl_tpe_check())
99073 + msg = "being in untrusted role";
99074 +
99075 + // not in any affected group/role
99076 + if (!msg)
99077 + goto next_check;
99078 +
99079 + if (gr_is_global_nonroot(inode->i_uid))
99080 + msg2 = "file in non-root-owned directory";
99081 + else if (inode->i_mode & S_IWOTH)
99082 + msg2 = "file in world-writable directory";
99083 + else if (inode->i_mode & S_IWGRP)
99084 + msg2 = "file in group-writable directory";
99085 + else if (file_inode->i_mode & S_IWOTH)
99086 + msg2 = "file is world-writable";
99087 +
99088 + if (msg && msg2) {
99089 + char fullmsg[70] = {0};
99090 + snprintf(fullmsg, sizeof(fullmsg)-1, "%s and %s", msg, msg2);
99091 + gr_log_str_fs(GR_DONT_AUDIT, GR_EXEC_TPE_MSG, fullmsg, file->f_path.dentry, file->f_path.mnt);
99092 + return 0;
99093 + }
99094 + msg = NULL;
99095 +next_check:
99096 +#ifdef CONFIG_GRKERNSEC_TPE_ALL
99097 + if (!grsec_enable_tpe || !grsec_enable_tpe_all)
99098 + return 1;
99099 +
99100 + if (gr_is_global_nonroot(inode->i_uid) && !uid_eq(inode->i_uid, cred->uid))
99101 + msg = "directory not owned by user";
99102 + else if (inode->i_mode & S_IWOTH)
99103 + msg = "file in world-writable directory";
99104 + else if (inode->i_mode & S_IWGRP)
99105 + msg = "file in group-writable directory";
99106 + else if (file_inode->i_mode & S_IWOTH)
99107 + msg = "file is world-writable";
99108 +
99109 + if (msg) {
99110 + gr_log_str_fs(GR_DONT_AUDIT, GR_EXEC_TPE_MSG, msg, file->f_path.dentry, file->f_path.mnt);
99111 + return 0;
99112 + }
99113 +#endif
99114 +#endif
99115 + return 1;
99116 +}
99117 diff --git a/grsecurity/grsec_tty.c b/grsecurity/grsec_tty.c
99118 new file mode 100644
99119 index 0000000..ad8b9c5
99120 --- /dev/null
99121 +++ b/grsecurity/grsec_tty.c
99122 @@ -0,0 +1,18 @@
99123 +#include <linux/kernel.h>
99124 +#include <linux/sched.h>
99125 +#include <linux/grsecurity.h>
99126 +#include <linux/grinternal.h>
99127 +#include <linux/capability.h>
99128 +#include <linux/tty.h>
99129 +
99130 +int gr_handle_tiocsti(struct tty_struct *tty)
99131 +{
99132 +#ifdef CONFIG_GRKERNSEC_HARDEN_TTY
99133 + if (grsec_enable_harden_tty && (current->signal->tty == tty) &&
99134 + !capable(CAP_SYS_ADMIN)) {
99135 + gr_log_noargs(GR_DONT_AUDIT, GR_TIOCSTI_MSG);
99136 + return 1;
99137 + }
99138 +#endif
99139 + return 0;
99140 +}
99141 diff --git a/grsecurity/grsec_usb.c b/grsecurity/grsec_usb.c
99142 new file mode 100644
99143 index 0000000..ae02d8e
99144 --- /dev/null
99145 +++ b/grsecurity/grsec_usb.c
99146 @@ -0,0 +1,15 @@
99147 +#include <linux/kernel.h>
99148 +#include <linux/grinternal.h>
99149 +#include <linux/module.h>
99150 +
99151 +int gr_handle_new_usb(void)
99152 +{
99153 +#ifdef CONFIG_GRKERNSEC_DENYUSB
99154 + if (grsec_deny_new_usb) {
99155 + printk(KERN_ALERT "grsec: denied insert of new USB device\n");
99156 + return 1;
99157 + }
99158 +#endif
99159 + return 0;
99160 +}
99161 +EXPORT_SYMBOL_GPL(gr_handle_new_usb);
99162 diff --git a/grsecurity/grsum.c b/grsecurity/grsum.c
99163 new file mode 100644
99164 index 0000000..4fb2ce6
99165 --- /dev/null
99166 +++ b/grsecurity/grsum.c
99167 @@ -0,0 +1,54 @@
99168 +#include <linux/err.h>
99169 +#include <linux/kernel.h>
99170 +#include <linux/sched.h>
99171 +#include <linux/mm.h>
99172 +#include <linux/scatterlist.h>
99173 +#include <linux/crypto.h>
99174 +#include <linux/gracl.h>
99175 +#include <crypto/algapi.h>
99176 +
99177 +#if !defined(CONFIG_CRYPTO) || defined(CONFIG_CRYPTO_MODULE) || !defined(CONFIG_CRYPTO_SHA256) || defined(CONFIG_CRYPTO_SHA256_MODULE)
99178 +#error "crypto and sha256 must be built into the kernel"
99179 +#endif
99180 +
99181 +int
99182 +chkpw(struct gr_arg *entry, unsigned char *salt, unsigned char *sum)
99183 +{
99184 + struct crypto_hash *tfm;
99185 + struct hash_desc desc;
99186 + struct scatterlist sg[2];
99187 + unsigned char temp_sum[GR_SHA_LEN] __attribute__((aligned(__alignof__(unsigned long))));
99188 + unsigned long *tmpsumptr = (unsigned long *)temp_sum;
99189 + unsigned long *sumptr = (unsigned long *)sum;
99190 + int cryptres;
99191 + int retval = 1;
99192 +
99193 + tfm = crypto_alloc_hash("sha256", 0, CRYPTO_ALG_ASYNC);
99194 + if (IS_ERR(tfm)) {
99195 + /* should never happen, since sha256 should be built in */
99196 + memset(entry->pw, 0, GR_PW_LEN);
99197 + return 1;
99198 + }
99199 +
99200 + sg_init_table(sg, 2);
99201 + sg_set_buf(&sg[0], salt, GR_SALT_LEN);
99202 + sg_set_buf(&sg[1], entry->pw, strlen(entry->pw));
99203 +
99204 + desc.tfm = tfm;
99205 + desc.flags = 0;
99206 +
99207 + cryptres = crypto_hash_digest(&desc, sg, GR_SALT_LEN + strlen(entry->pw),
99208 + temp_sum);
99209 +
99210 + memset(entry->pw, 0, GR_PW_LEN);
99211 +
99212 + if (cryptres)
99213 + goto out;
99214 +
99215 + if (!crypto_memneq(sumptr, tmpsumptr, GR_SHA_LEN))
99216 + retval = 0;
99217 +out:
99218 + crypto_free_hash(tfm);
99219 +
99220 + return retval;
99221 +}
99222 diff --git a/include/acpi/ghes.h b/include/acpi/ghes.h
99223 index 720446c..f32baee 100644
99224 --- a/include/acpi/ghes.h
99225 +++ b/include/acpi/ghes.h
99226 @@ -32,7 +32,7 @@ struct ghes_estatus_node {
99227
99228 struct ghes_estatus_cache {
99229 u32 estatus_len;
99230 - atomic_t count;
99231 + atomic_unchecked_t count;
99232 struct acpi_hest_generic *generic;
99233 unsigned long long time_in;
99234 struct rcu_head rcu;
99235 diff --git a/include/asm-generic/4level-fixup.h b/include/asm-generic/4level-fixup.h
99236 index 5bdab6b..9ae82fe 100644
99237 --- a/include/asm-generic/4level-fixup.h
99238 +++ b/include/asm-generic/4level-fixup.h
99239 @@ -14,8 +14,10 @@
99240 #define pmd_alloc(mm, pud, address) \
99241 ((unlikely(pgd_none(*(pud))) && __pmd_alloc(mm, pud, address))? \
99242 NULL: pmd_offset(pud, address))
99243 +#define pmd_alloc_kernel(mm, pud, address) pmd_alloc((mm), (pud), (address))
99244
99245 #define pud_alloc(mm, pgd, address) (pgd)
99246 +#define pud_alloc_kernel(mm, pgd, address) pud_alloc((mm), (pgd), (address))
99247 #define pud_offset(pgd, start) (pgd)
99248 #define pud_none(pud) 0
99249 #define pud_bad(pud) 0
99250 diff --git a/include/asm-generic/atomic-long.h b/include/asm-generic/atomic-long.h
99251 index eb1973b..b24b581 100644
99252 --- a/include/asm-generic/atomic-long.h
99253 +++ b/include/asm-generic/atomic-long.h
99254 @@ -22,6 +22,12 @@
99255
99256 typedef atomic64_t atomic_long_t;
99257
99258 +#ifdef CONFIG_PAX_REFCOUNT
99259 +typedef atomic64_unchecked_t atomic_long_unchecked_t;
99260 +#else
99261 +typedef atomic64_t atomic_long_unchecked_t;
99262 +#endif
99263 +
99264 #define ATOMIC_LONG_INIT(i) ATOMIC64_INIT(i)
99265 #define ATOMIC_LONG_PFX(x) atomic64 ## x
99266
99267 @@ -29,51 +35,61 @@ typedef atomic64_t atomic_long_t;
99268
99269 typedef atomic_t atomic_long_t;
99270
99271 +#ifdef CONFIG_PAX_REFCOUNT
99272 +typedef atomic_unchecked_t atomic_long_unchecked_t;
99273 +#else
99274 +typedef atomic_t atomic_long_unchecked_t;
99275 +#endif
99276 +
99277 #define ATOMIC_LONG_INIT(i) ATOMIC_INIT(i)
99278 #define ATOMIC_LONG_PFX(x) atomic ## x
99279
99280 #endif
99281
99282 -#define ATOMIC_LONG_READ_OP(mo) \
99283 -static inline long atomic_long_read##mo(const atomic_long_t *l) \
99284 +#define ATOMIC_LONG_READ_OP(mo, suffix) \
99285 +static inline long atomic_long_read##mo##suffix(const atomic_long##suffix##_t *l)\
99286 { \
99287 - ATOMIC_LONG_PFX(_t) *v = (ATOMIC_LONG_PFX(_t) *)l; \
99288 + ATOMIC_LONG_PFX(suffix##_t) *v = (ATOMIC_LONG_PFX(suffix##_t) *)l;\
99289 \
99290 - return (long)ATOMIC_LONG_PFX(_read##mo)(v); \
99291 + return (long)ATOMIC_LONG_PFX(_read##mo##suffix)(v); \
99292 }
99293 -ATOMIC_LONG_READ_OP()
99294 -ATOMIC_LONG_READ_OP(_acquire)
99295 +ATOMIC_LONG_READ_OP(,)
99296 +ATOMIC_LONG_READ_OP(,_unchecked)
99297 +ATOMIC_LONG_READ_OP(_acquire,)
99298
99299 #undef ATOMIC_LONG_READ_OP
99300
99301 -#define ATOMIC_LONG_SET_OP(mo) \
99302 -static inline void atomic_long_set##mo(atomic_long_t *l, long i) \
99303 +#define ATOMIC_LONG_SET_OP(mo, suffix) \
99304 +static inline void atomic_long_set##mo##suffix(atomic_long##suffix##_t *l, long i)\
99305 { \
99306 - ATOMIC_LONG_PFX(_t) *v = (ATOMIC_LONG_PFX(_t) *)l; \
99307 + ATOMIC_LONG_PFX(suffix##_t) *v = (ATOMIC_LONG_PFX(suffix##_t) *)l;\
99308 \
99309 - ATOMIC_LONG_PFX(_set##mo)(v, i); \
99310 + ATOMIC_LONG_PFX(_set##mo##suffix)(v, i); \
99311 }
99312 -ATOMIC_LONG_SET_OP()
99313 -ATOMIC_LONG_SET_OP(_release)
99314 +ATOMIC_LONG_SET_OP(,)
99315 +ATOMIC_LONG_SET_OP(,_unchecked)
99316 +ATOMIC_LONG_SET_OP(_release,)
99317
99318 #undef ATOMIC_LONG_SET_OP
99319
99320 -#define ATOMIC_LONG_ADD_SUB_OP(op, mo) \
99321 +#define ATOMIC_LONG_ADD_SUB_OP(op, mo, suffix) \
99322 static inline long \
99323 -atomic_long_##op##_return##mo(long i, atomic_long_t *l) \
99324 +atomic_long_##op##_return##mo##suffix(long i, atomic_long##suffix##_t *l)\
99325 { \
99326 - ATOMIC_LONG_PFX(_t) *v = (ATOMIC_LONG_PFX(_t) *)l; \
99327 + ATOMIC_LONG_PFX(suffix##_t) *v = (ATOMIC_LONG_PFX(suffix##_t) *)l;\
99328 \
99329 - return (long)ATOMIC_LONG_PFX(_##op##_return##mo)(i, v); \
99330 + return (long)ATOMIC_LONG_PFX(_##op##_return##mo##suffix)(i, v); \
99331 }
99332 -ATOMIC_LONG_ADD_SUB_OP(add,)
99333 -ATOMIC_LONG_ADD_SUB_OP(add, _relaxed)
99334 -ATOMIC_LONG_ADD_SUB_OP(add, _acquire)
99335 -ATOMIC_LONG_ADD_SUB_OP(add, _release)
99336 -ATOMIC_LONG_ADD_SUB_OP(sub,)
99337 -ATOMIC_LONG_ADD_SUB_OP(sub, _relaxed)
99338 -ATOMIC_LONG_ADD_SUB_OP(sub, _acquire)
99339 -ATOMIC_LONG_ADD_SUB_OP(sub, _release)
99340 +ATOMIC_LONG_ADD_SUB_OP(add,,)
99341 +ATOMIC_LONG_ADD_SUB_OP(add,,_unchecked)
99342 +ATOMIC_LONG_ADD_SUB_OP(add, _relaxed,)
99343 +ATOMIC_LONG_ADD_SUB_OP(add, _acquire,)
99344 +ATOMIC_LONG_ADD_SUB_OP(add, _release,)
99345 +ATOMIC_LONG_ADD_SUB_OP(sub,,)
99346 +//ATOMIC_LONG_ADD_SUB_OP(sub,,_unchecked)
99347 +ATOMIC_LONG_ADD_SUB_OP(sub, _relaxed,)
99348 +ATOMIC_LONG_ADD_SUB_OP(sub, _acquire,)
99349 +ATOMIC_LONG_ADD_SUB_OP(sub, _release,)
99350
99351 #undef ATOMIC_LONG_ADD_SUB_OP
99352
99353 @@ -105,6 +121,15 @@ static inline void atomic_long_inc(atomic_long_t *l)
99354 ATOMIC_LONG_PFX(_inc)(v);
99355 }
99356
99357 +#ifdef CONFIG_PAX_REFCOUNT
99358 +static inline void atomic_long_inc_unchecked(atomic_long_unchecked_t *l)
99359 +{
99360 + ATOMIC_LONG_PFX(_unchecked_t) *v = (ATOMIC_LONG_PFX(_unchecked_t) *)l;
99361 +
99362 + ATOMIC_LONG_PFX(_inc_unchecked)(v);
99363 +}
99364 +#endif
99365 +
99366 static inline void atomic_long_dec(atomic_long_t *l)
99367 {
99368 ATOMIC_LONG_PFX(_t) *v = (ATOMIC_LONG_PFX(_t) *)l;
99369 @@ -112,21 +137,32 @@ static inline void atomic_long_dec(atomic_long_t *l)
99370 ATOMIC_LONG_PFX(_dec)(v);
99371 }
99372
99373 -#define ATOMIC_LONG_OP(op) \
99374 +#ifdef CONFIG_PAX_REFCOUNT
99375 +static inline void atomic_long_dec_unchecked(atomic_long_unchecked_t *l)
99376 +{
99377 + ATOMIC_LONG_PFX(_unchecked_t) *v = (ATOMIC_LONG_PFX(_unchecked_t) *)l;
99378 +
99379 + ATOMIC_LONG_PFX(_dec_unchecked)(v);
99380 +}
99381 +#endif
99382 +
99383 +#define ATOMIC_LONG_OP(op, suffix) \
99384 static inline void \
99385 -atomic_long_##op(long i, atomic_long_t *l) \
99386 +atomic_long_##op##suffix(long i, atomic_long##suffix##_t *l) \
99387 { \
99388 - ATOMIC_LONG_PFX(_t) *v = (ATOMIC_LONG_PFX(_t) *)l; \
99389 + ATOMIC_LONG_PFX(suffix##_t) *v = (ATOMIC_LONG_PFX(suffix##_t) *)l;\
99390 \
99391 - ATOMIC_LONG_PFX(_##op)(i, v); \
99392 + ATOMIC_LONG_PFX(_##op##suffix)(i, v); \
99393 }
99394
99395 -ATOMIC_LONG_OP(add)
99396 -ATOMIC_LONG_OP(sub)
99397 -ATOMIC_LONG_OP(and)
99398 -ATOMIC_LONG_OP(or)
99399 -ATOMIC_LONG_OP(xor)
99400 -ATOMIC_LONG_OP(andnot)
99401 +ATOMIC_LONG_OP(add,)
99402 +ATOMIC_LONG_OP(add,_unchecked)
99403 +ATOMIC_LONG_OP(sub,)
99404 +ATOMIC_LONG_OP(sub,_unchecked)
99405 +ATOMIC_LONG_OP(and,)
99406 +ATOMIC_LONG_OP(or,)
99407 +ATOMIC_LONG_OP(xor,)
99408 +ATOMIC_LONG_OP(andnot,)
99409
99410 #undef ATOMIC_LONG_OP
99411
99412 @@ -158,22 +194,23 @@ static inline int atomic_long_add_negative(long i, atomic_long_t *l)
99413 return ATOMIC_LONG_PFX(_add_negative)(i, v);
99414 }
99415
99416 -#define ATOMIC_LONG_INC_DEC_OP(op, mo) \
99417 +#define ATOMIC_LONG_INC_DEC_OP(op, mo, suffix) \
99418 static inline long \
99419 -atomic_long_##op##_return##mo(atomic_long_t *l) \
99420 +atomic_long_##op##_return##mo##suffix(atomic_long##suffix##_t *l) \
99421 { \
99422 - ATOMIC_LONG_PFX(_t) *v = (ATOMIC_LONG_PFX(_t) *)l; \
99423 + ATOMIC_LONG_PFX(suffix##_t) *v = (ATOMIC_LONG_PFX(suffix##_t) *)l;\
99424 \
99425 - return (long)ATOMIC_LONG_PFX(_##op##_return##mo)(v); \
99426 + return (long)ATOMIC_LONG_PFX(_##op##_return##mo##suffix)(v); \
99427 }
99428 -ATOMIC_LONG_INC_DEC_OP(inc,)
99429 -ATOMIC_LONG_INC_DEC_OP(inc, _relaxed)
99430 -ATOMIC_LONG_INC_DEC_OP(inc, _acquire)
99431 -ATOMIC_LONG_INC_DEC_OP(inc, _release)
99432 -ATOMIC_LONG_INC_DEC_OP(dec,)
99433 -ATOMIC_LONG_INC_DEC_OP(dec, _relaxed)
99434 -ATOMIC_LONG_INC_DEC_OP(dec, _acquire)
99435 -ATOMIC_LONG_INC_DEC_OP(dec, _release)
99436 +ATOMIC_LONG_INC_DEC_OP(inc,,)
99437 +ATOMIC_LONG_INC_DEC_OP(inc,,_unchecked)
99438 +ATOMIC_LONG_INC_DEC_OP(inc, _relaxed,)
99439 +ATOMIC_LONG_INC_DEC_OP(inc, _acquire,)
99440 +ATOMIC_LONG_INC_DEC_OP(inc, _release,)
99441 +ATOMIC_LONG_INC_DEC_OP(dec,,)
99442 +ATOMIC_LONG_INC_DEC_OP(dec, _relaxed,)
99443 +ATOMIC_LONG_INC_DEC_OP(dec, _acquire,)
99444 +ATOMIC_LONG_INC_DEC_OP(dec, _release,)
99445
99446 #undef ATOMIC_LONG_INC_DEC_OP
99447
99448 @@ -187,4 +224,51 @@ static inline long atomic_long_add_unless(atomic_long_t *l, long a, long u)
99449 #define atomic_long_inc_not_zero(l) \
99450 ATOMIC_LONG_PFX(_inc_not_zero)((ATOMIC_LONG_PFX(_t) *)(l))
99451
99452 +#ifdef CONFIG_PAX_REFCOUNT
99453 +static inline void pax_refcount_needs_these_functions(void)
99454 +{
99455 + atomic_read_unchecked((atomic_unchecked_t *)NULL);
99456 + atomic_set_unchecked((atomic_unchecked_t *)NULL, 0);
99457 + atomic_add_unchecked(0, (atomic_unchecked_t *)NULL);
99458 + atomic_sub_unchecked(0, (atomic_unchecked_t *)NULL);
99459 + atomic_inc_unchecked((atomic_unchecked_t *)NULL);
99460 + (void)atomic_inc_and_test_unchecked((atomic_unchecked_t *)NULL);
99461 + atomic_inc_return_unchecked((atomic_unchecked_t *)NULL);
99462 + atomic_add_return_unchecked(0, (atomic_unchecked_t *)NULL);
99463 + atomic_dec_unchecked((atomic_unchecked_t *)NULL);
99464 + atomic_cmpxchg_unchecked((atomic_unchecked_t *)NULL, 0, 0);
99465 + (void)atomic_xchg_unchecked((atomic_unchecked_t *)NULL, 0);
99466 +
99467 + atomic_long_read_unchecked((atomic_long_unchecked_t *)NULL);
99468 + atomic_long_set_unchecked((atomic_long_unchecked_t *)NULL, 0);
99469 + atomic_long_add_unchecked(0, (atomic_long_unchecked_t *)NULL);
99470 + atomic_long_sub_unchecked(0, (atomic_long_unchecked_t *)NULL);
99471 + atomic_long_inc_unchecked((atomic_long_unchecked_t *)NULL);
99472 + atomic_long_add_return_unchecked(0, (atomic_long_unchecked_t *)NULL);
99473 + atomic_long_inc_return_unchecked((atomic_long_unchecked_t *)NULL);
99474 + atomic_long_dec_unchecked((atomic_long_unchecked_t *)NULL);
99475 +}
99476 +#else
99477 +#define atomic_read_unchecked(v) atomic_read(v)
99478 +#define atomic_set_unchecked(v, i) atomic_set((v), (i))
99479 +#define atomic_add_unchecked(i, v) atomic_add((i), (v))
99480 +#define atomic_sub_unchecked(i, v) atomic_sub((i), (v))
99481 +#define atomic_inc_unchecked(v) atomic_inc(v)
99482 +#define atomic_inc_and_test_unchecked(v) atomic_inc_and_test(v)
99483 +#define atomic_inc_return_unchecked(v) atomic_inc_return(v)
99484 +#define atomic_add_return_unchecked(i, v) atomic_add_return((i), (v))
99485 +#define atomic_dec_unchecked(v) atomic_dec(v)
99486 +#define atomic_cmpxchg_unchecked(v, o, n) atomic_cmpxchg((v), (o), (n))
99487 +#define atomic_xchg_unchecked(v, i) atomic_xchg((v), (i))
99488 +
99489 +#define atomic_long_read_unchecked(v) atomic_long_read(v)
99490 +#define atomic_long_set_unchecked(v, i) atomic_long_set((v), (i))
99491 +#define atomic_long_add_unchecked(i, v) atomic_long_add((i), (v))
99492 +#define atomic_long_sub_unchecked(i, v) atomic_long_sub((i), (v))
99493 +#define atomic_long_inc_unchecked(v) atomic_long_inc(v)
99494 +#define atomic_long_add_return_unchecked(i, v) atomic_long_add_return((i), (v))
99495 +#define atomic_long_inc_return_unchecked(v) atomic_long_inc_return(v)
99496 +#define atomic_long_dec_unchecked(v) atomic_long_dec(v)
99497 +#endif
99498 +
99499 #endif /* _ASM_GENERIC_ATOMIC_LONG_H */
99500 diff --git a/include/asm-generic/atomic64.h b/include/asm-generic/atomic64.h
99501 index d48e78c..d29d3a3 100644
99502 --- a/include/asm-generic/atomic64.h
99503 +++ b/include/asm-generic/atomic64.h
99504 @@ -16,6 +16,8 @@ typedef struct {
99505 long long counter;
99506 } atomic64_t;
99507
99508 +typedef atomic64_t atomic64_unchecked_t;
99509 +
99510 #define ATOMIC64_INIT(i) { (i) }
99511
99512 extern long long atomic64_read(const atomic64_t *v);
99513 @@ -55,4 +57,14 @@ extern int atomic64_add_unless(atomic64_t *v, long long a, long long u);
99514 #define atomic64_dec_and_test(v) (atomic64_dec_return((v)) == 0)
99515 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1LL, 0LL)
99516
99517 +#define atomic64_read_unchecked(v) atomic64_read(v)
99518 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
99519 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
99520 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
99521 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
99522 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
99523 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
99524 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
99525 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
99526 +
99527 #endif /* _ASM_GENERIC_ATOMIC64_H */
99528 diff --git a/include/asm-generic/bitops/__fls.h b/include/asm-generic/bitops/__fls.h
99529 index a60a7cc..0fe12f2 100644
99530 --- a/include/asm-generic/bitops/__fls.h
99531 +++ b/include/asm-generic/bitops/__fls.h
99532 @@ -9,7 +9,7 @@
99533 *
99534 * Undefined if no set bit exists, so code should check against 0 first.
99535 */
99536 -static __always_inline unsigned long __fls(unsigned long word)
99537 +static __always_inline unsigned long __intentional_overflow(-1) __fls(unsigned long word)
99538 {
99539 int num = BITS_PER_LONG - 1;
99540
99541 diff --git a/include/asm-generic/bitops/fls.h b/include/asm-generic/bitops/fls.h
99542 index 0576d1f..dad6c71 100644
99543 --- a/include/asm-generic/bitops/fls.h
99544 +++ b/include/asm-generic/bitops/fls.h
99545 @@ -9,7 +9,7 @@
99546 * Note fls(0) = 0, fls(1) = 1, fls(0x80000000) = 32.
99547 */
99548
99549 -static __always_inline int fls(int x)
99550 +static __always_inline int __intentional_overflow(-1) fls(int x)
99551 {
99552 int r = 32;
99553
99554 diff --git a/include/asm-generic/bitops/fls64.h b/include/asm-generic/bitops/fls64.h
99555 index b097cf8..3d40e14 100644
99556 --- a/include/asm-generic/bitops/fls64.h
99557 +++ b/include/asm-generic/bitops/fls64.h
99558 @@ -15,7 +15,7 @@
99559 * at position 64.
99560 */
99561 #if BITS_PER_LONG == 32
99562 -static __always_inline int fls64(__u64 x)
99563 +static __always_inline int __intentional_overflow(-1) fls64(__u64 x)
99564 {
99565 __u32 h = x >> 32;
99566 if (h)
99567 @@ -23,7 +23,7 @@ static __always_inline int fls64(__u64 x)
99568 return fls(x);
99569 }
99570 #elif BITS_PER_LONG == 64
99571 -static __always_inline int fls64(__u64 x)
99572 +static __always_inline int __intentional_overflow(-1) fls64(__u64 x)
99573 {
99574 if (x == 0)
99575 return 0;
99576 diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
99577 index 630dd23..8c1dcb6b 100644
99578 --- a/include/asm-generic/bug.h
99579 +++ b/include/asm-generic/bug.h
99580 @@ -62,13 +62,13 @@ struct bug_entry {
99581 * to provide better diagnostics.
99582 */
99583 #ifndef __WARN_TAINT
99584 -extern __printf(3, 4)
99585 +extern __printf(3, 4) __nocapture(1, 3, 4)
99586 void warn_slowpath_fmt(const char *file, const int line,
99587 const char *fmt, ...);
99588 -extern __printf(4, 5)
99589 +extern __printf(4, 5) __nocapture(1, 4, 5)
99590 void warn_slowpath_fmt_taint(const char *file, const int line, unsigned taint,
99591 const char *fmt, ...);
99592 -extern void warn_slowpath_null(const char *file, const int line);
99593 +extern __nocapture(1) void warn_slowpath_null(const char *file, const int line);
99594 #define WANT_WARN_ON_SLOWPATH
99595 #define __WARN() warn_slowpath_null(__FILE__, __LINE__)
99596 #define __WARN_printf(arg...) warn_slowpath_fmt(__FILE__, __LINE__, arg)
99597 diff --git a/include/asm-generic/cache.h b/include/asm-generic/cache.h
99598 index 1bfcfe5..e04c5c9 100644
99599 --- a/include/asm-generic/cache.h
99600 +++ b/include/asm-generic/cache.h
99601 @@ -6,7 +6,7 @@
99602 * cache lines need to provide their own cache.h.
99603 */
99604
99605 -#define L1_CACHE_SHIFT 5
99606 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
99607 +#define L1_CACHE_SHIFT 5UL
99608 +#define L1_CACHE_BYTES (1UL << L1_CACHE_SHIFT)
99609
99610 #endif /* __ASM_GENERIC_CACHE_H */
99611 diff --git a/include/asm-generic/emergency-restart.h b/include/asm-generic/emergency-restart.h
99612 index 0d68a1e..b74a761 100644
99613 --- a/include/asm-generic/emergency-restart.h
99614 +++ b/include/asm-generic/emergency-restart.h
99615 @@ -1,7 +1,7 @@
99616 #ifndef _ASM_GENERIC_EMERGENCY_RESTART_H
99617 #define _ASM_GENERIC_EMERGENCY_RESTART_H
99618
99619 -static inline void machine_emergency_restart(void)
99620 +static inline __noreturn void machine_emergency_restart(void)
99621 {
99622 machine_restart(NULL);
99623 }
99624 diff --git a/include/asm-generic/kmap_types.h b/include/asm-generic/kmap_types.h
99625 index 90f99c7..00ce236 100644
99626 --- a/include/asm-generic/kmap_types.h
99627 +++ b/include/asm-generic/kmap_types.h
99628 @@ -2,9 +2,9 @@
99629 #define _ASM_GENERIC_KMAP_TYPES_H
99630
99631 #ifdef __WITH_KM_FENCE
99632 -# define KM_TYPE_NR 41
99633 +# define KM_TYPE_NR 42
99634 #else
99635 -# define KM_TYPE_NR 20
99636 +# define KM_TYPE_NR 21
99637 #endif
99638
99639 #endif
99640 diff --git a/include/asm-generic/local.h b/include/asm-generic/local.h
99641 index 9ceb03b..62b0b8f 100644
99642 --- a/include/asm-generic/local.h
99643 +++ b/include/asm-generic/local.h
99644 @@ -23,24 +23,37 @@ typedef struct
99645 atomic_long_t a;
99646 } local_t;
99647
99648 +typedef struct {
99649 + atomic_long_unchecked_t a;
99650 +} local_unchecked_t;
99651 +
99652 #define LOCAL_INIT(i) { ATOMIC_LONG_INIT(i) }
99653
99654 #define local_read(l) atomic_long_read(&(l)->a)
99655 +#define local_read_unchecked(l) atomic_long_read_unchecked(&(l)->a)
99656 #define local_set(l,i) atomic_long_set((&(l)->a),(i))
99657 +#define local_set_unchecked(l,i) atomic_long_set_unchecked((&(l)->a),(i))
99658 #define local_inc(l) atomic_long_inc(&(l)->a)
99659 +#define local_inc_unchecked(l) atomic_long_inc_unchecked(&(l)->a)
99660 #define local_dec(l) atomic_long_dec(&(l)->a)
99661 +#define local_dec_unchecked(l) atomic_long_dec_unchecked(&(l)->a)
99662 #define local_add(i,l) atomic_long_add((i),(&(l)->a))
99663 +#define local_add_unchecked(i,l) atomic_long_add_unchecked((i),(&(l)->a))
99664 #define local_sub(i,l) atomic_long_sub((i),(&(l)->a))
99665 +#define local_sub_unchecked(i,l) atomic_long_sub_unchecked((i),(&(l)->a))
99666
99667 #define local_sub_and_test(i, l) atomic_long_sub_and_test((i), (&(l)->a))
99668 #define local_dec_and_test(l) atomic_long_dec_and_test(&(l)->a)
99669 #define local_inc_and_test(l) atomic_long_inc_and_test(&(l)->a)
99670 #define local_add_negative(i, l) atomic_long_add_negative((i), (&(l)->a))
99671 #define local_add_return(i, l) atomic_long_add_return((i), (&(l)->a))
99672 +#define local_add_return_unchecked(i, l) atomic_long_add_return_unchecked((i), (&(l)->a))
99673 #define local_sub_return(i, l) atomic_long_sub_return((i), (&(l)->a))
99674 #define local_inc_return(l) atomic_long_inc_return(&(l)->a)
99675 +#define local_dec_return(l) atomic_long_dec_return(&(l)->a)
99676
99677 #define local_cmpxchg(l, o, n) atomic_long_cmpxchg((&(l)->a), (o), (n))
99678 +#define local_cmpxchg_unchecked(l, o, n) atomic_long_cmpxchg((&(l)->a), (o), (n))
99679 #define local_xchg(l, n) atomic_long_xchg((&(l)->a), (n))
99680 #define local_add_unless(l, _a, u) atomic_long_add_unless((&(l)->a), (_a), (u))
99681 #define local_inc_not_zero(l) atomic_long_inc_not_zero(&(l)->a)
99682 diff --git a/include/asm-generic/pgtable-nopmd.h b/include/asm-generic/pgtable-nopmd.h
99683 index 725612b..9cc513a 100644
99684 --- a/include/asm-generic/pgtable-nopmd.h
99685 +++ b/include/asm-generic/pgtable-nopmd.h
99686 @@ -1,14 +1,19 @@
99687 #ifndef _PGTABLE_NOPMD_H
99688 #define _PGTABLE_NOPMD_H
99689
99690 -#ifndef __ASSEMBLY__
99691 -
99692 #include <asm-generic/pgtable-nopud.h>
99693
99694 -struct mm_struct;
99695 -
99696 #define __PAGETABLE_PMD_FOLDED
99697
99698 +#define PMD_SHIFT PUD_SHIFT
99699 +#define PTRS_PER_PMD 1
99700 +#define PMD_SIZE (_AC(1,UL) << PMD_SHIFT)
99701 +#define PMD_MASK (~(PMD_SIZE-1))
99702 +
99703 +#ifndef __ASSEMBLY__
99704 +
99705 +struct mm_struct;
99706 +
99707 /*
99708 * Having the pmd type consist of a pud gets the size right, and allows
99709 * us to conceptually access the pud entry that this pmd is folded into
99710 @@ -16,11 +21,6 @@ struct mm_struct;
99711 */
99712 typedef struct { pud_t pud; } pmd_t;
99713
99714 -#define PMD_SHIFT PUD_SHIFT
99715 -#define PTRS_PER_PMD 1
99716 -#define PMD_SIZE (1UL << PMD_SHIFT)
99717 -#define PMD_MASK (~(PMD_SIZE-1))
99718 -
99719 /*
99720 * The "pud_xxx()" functions here are trivial for a folded two-level
99721 * setup: the pmd is never bad, and a pmd always exists (as it's folded
99722 diff --git a/include/asm-generic/pgtable-nopud.h b/include/asm-generic/pgtable-nopud.h
99723 index 810431d..0ec4804f 100644
99724 --- a/include/asm-generic/pgtable-nopud.h
99725 +++ b/include/asm-generic/pgtable-nopud.h
99726 @@ -1,10 +1,15 @@
99727 #ifndef _PGTABLE_NOPUD_H
99728 #define _PGTABLE_NOPUD_H
99729
99730 -#ifndef __ASSEMBLY__
99731 -
99732 #define __PAGETABLE_PUD_FOLDED
99733
99734 +#define PUD_SHIFT PGDIR_SHIFT
99735 +#define PTRS_PER_PUD 1
99736 +#define PUD_SIZE (_AC(1,UL) << PUD_SHIFT)
99737 +#define PUD_MASK (~(PUD_SIZE-1))
99738 +
99739 +#ifndef __ASSEMBLY__
99740 +
99741 /*
99742 * Having the pud type consist of a pgd gets the size right, and allows
99743 * us to conceptually access the pgd entry that this pud is folded into
99744 @@ -12,11 +17,6 @@
99745 */
99746 typedef struct { pgd_t pgd; } pud_t;
99747
99748 -#define PUD_SHIFT PGDIR_SHIFT
99749 -#define PTRS_PER_PUD 1
99750 -#define PUD_SIZE (1UL << PUD_SHIFT)
99751 -#define PUD_MASK (~(PUD_SIZE-1))
99752 -
99753 /*
99754 * The "pgd_xxx()" functions here are trivial for a folded two-level
99755 * setup: the pud is never bad, and a pud always exists (as it's folded
99756 @@ -29,6 +29,7 @@ static inline void pgd_clear(pgd_t *pgd) { }
99757 #define pud_ERROR(pud) (pgd_ERROR((pud).pgd))
99758
99759 #define pgd_populate(mm, pgd, pud) do { } while (0)
99760 +#define pgd_populate_kernel(mm, pgd, pud) do { } while (0)
99761 /*
99762 * (puds are folded into pgds so this doesn't get actually called,
99763 * but the define is needed for a generic inline function.)
99764 diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
99765 index 14b0ff32..f3993a4 100644
99766 --- a/include/asm-generic/pgtable.h
99767 +++ b/include/asm-generic/pgtable.h
99768 @@ -748,6 +748,22 @@ static inline int pmd_protnone(pmd_t pmd)
99769 }
99770 #endif /* CONFIG_NUMA_BALANCING */
99771
99772 +#ifndef __HAVE_ARCH_PAX_OPEN_KERNEL
99773 +#ifdef CONFIG_PAX_KERNEXEC
99774 +#error KERNEXEC requires pax_open_kernel
99775 +#else
99776 +static inline unsigned long pax_open_kernel(void) { return 0; }
99777 +#endif
99778 +#endif
99779 +
99780 +#ifndef __HAVE_ARCH_PAX_CLOSE_KERNEL
99781 +#ifdef CONFIG_PAX_KERNEXEC
99782 +#error KERNEXEC requires pax_close_kernel
99783 +#else
99784 +static inline unsigned long pax_close_kernel(void) { return 0; }
99785 +#endif
99786 +#endif
99787 +
99788 #endif /* CONFIG_MMU */
99789
99790 #ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
99791 diff --git a/include/asm-generic/sections.h b/include/asm-generic/sections.h
99792 index b58fd66..6cfae67 100644
99793 --- a/include/asm-generic/sections.h
99794 +++ b/include/asm-generic/sections.h
99795 @@ -30,6 +30,7 @@ extern char _data[], _sdata[], _edata[];
99796 extern char __bss_start[], __bss_stop[];
99797 extern char __init_begin[], __init_end[];
99798 extern char _sinittext[], _einittext[];
99799 +extern char _sinitdata[], _einitdata[];
99800 extern char _end[];
99801 extern char __per_cpu_load[], __per_cpu_start[], __per_cpu_end[];
99802 extern char __kprobes_text_start[], __kprobes_text_end[];
99803 diff --git a/include/asm-generic/uaccess.h b/include/asm-generic/uaccess.h
99804 index 1bfa602..aab89b1 100644
99805 --- a/include/asm-generic/uaccess.h
99806 +++ b/include/asm-generic/uaccess.h
99807 @@ -345,4 +345,20 @@ clear_user(void __user *to, unsigned long n)
99808 return __clear_user(to, n);
99809 }
99810
99811 +#ifndef __HAVE_ARCH_PAX_OPEN_USERLAND
99812 +#ifdef CONFIG_PAX_MEMORY_UDEREF
99813 +#error UDEREF requires pax_open_userland
99814 +#else
99815 +static inline unsigned long pax_open_userland(void) { return 0; }
99816 +#endif
99817 +#endif
99818 +
99819 +#ifndef __HAVE_ARCH_PAX_CLOSE_USERLAND
99820 +#ifdef CONFIG_PAX_MEMORY_UDEREF
99821 +#error UDEREF requires pax_close_userland
99822 +#else
99823 +static inline unsigned long pax_close_userland(void) { return 0; }
99824 +#endif
99825 +#endif
99826 +
99827 #endif /* __ASM_GENERIC_UACCESS_H */
99828 diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
99829 index c4bd0e2..ca4ca5a9 100644
99830 --- a/include/asm-generic/vmlinux.lds.h
99831 +++ b/include/asm-generic/vmlinux.lds.h
99832 @@ -256,6 +256,7 @@
99833 .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \
99834 VMLINUX_SYMBOL(__start_rodata) = .; \
99835 *(.rodata) *(.rodata.*) \
99836 + *(.data..read_only) \
99837 *(__vermagic) /* Kernel version magic */ \
99838 . = ALIGN(8); \
99839 VMLINUX_SYMBOL(__start___tracepoints_ptrs) = .; \
99840 @@ -512,6 +513,7 @@
99841 KERNEL_CTORS() \
99842 MCOUNT_REC() \
99843 *(.init.rodata) \
99844 + *(.init.rodata.*) \
99845 FTRACE_EVENTS() \
99846 TRACE_SYSCALLS() \
99847 KPROBE_BLACKLIST() \
99848 @@ -535,6 +537,8 @@
99849
99850 #define EXIT_DATA \
99851 *(.exit.data) \
99852 + *(.exit.rodata) \
99853 + *(.exit.rodata.*) \
99854 MEM_DISCARD(exit.data) \
99855 MEM_DISCARD(exit.rodata)
99856
99857 @@ -751,17 +755,18 @@
99858 * section in the linker script will go there too. @phdr should have
99859 * a leading colon.
99860 *
99861 - * Note that this macros defines __per_cpu_load as an absolute symbol.
99862 + * Note that this macros defines per_cpu_load as an absolute symbol.
99863 * If there is no need to put the percpu section at a predetermined
99864 * address, use PERCPU_SECTION.
99865 */
99866 #define PERCPU_VADDR(cacheline, vaddr, phdr) \
99867 - VMLINUX_SYMBOL(__per_cpu_load) = .; \
99868 - .data..percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load) \
99869 + per_cpu_load = .; \
99870 + .data..percpu vaddr : AT(VMLINUX_SYMBOL(per_cpu_load) \
99871 - LOAD_OFFSET) { \
99872 + VMLINUX_SYMBOL(__per_cpu_load) = . + per_cpu_load; \
99873 PERCPU_INPUT(cacheline) \
99874 } phdr \
99875 - . = VMLINUX_SYMBOL(__per_cpu_load) + SIZEOF(.data..percpu);
99876 + . = VMLINUX_SYMBOL(per_cpu_load) + SIZEOF(.data..percpu);
99877
99878 /**
99879 * PERCPU_SECTION - define output section for percpu area, simple version
99880 @@ -823,12 +828,14 @@
99881
99882 #define INIT_DATA_SECTION(initsetup_align) \
99883 .init.data : AT(ADDR(.init.data) - LOAD_OFFSET) { \
99884 + VMLINUX_SYMBOL(_sinitdata) = .; \
99885 INIT_DATA \
99886 INIT_SETUP(initsetup_align) \
99887 INIT_CALLS \
99888 CON_INITCALL \
99889 SECURITY_INITCALL \
99890 INIT_RAM_FS \
99891 + VMLINUX_SYMBOL(_einitdata) = .; \
99892 }
99893
99894 #define BSS_SECTION(sbss_align, bss_align, stop_align) \
99895 diff --git a/include/crypto/algapi.h b/include/crypto/algapi.h
99896 index c9fe145..9fb2337 100644
99897 --- a/include/crypto/algapi.h
99898 +++ b/include/crypto/algapi.h
99899 @@ -37,7 +37,7 @@ struct crypto_type {
99900 unsigned int maskclear;
99901 unsigned int maskset;
99902 unsigned int tfmsize;
99903 -};
99904 +} __do_const;
99905
99906 struct crypto_instance {
99907 struct crypto_alg alg;
99908 diff --git a/include/drm/drmP.h b/include/drm/drmP.h
99909 index 0a271ca..0e14d3d 100644
99910 --- a/include/drm/drmP.h
99911 +++ b/include/drm/drmP.h
99912 @@ -59,6 +59,7 @@
99913
99914 #include <asm/mman.h>
99915 #include <asm/pgalloc.h>
99916 +#include <asm/local.h>
99917 #include <asm/uaccess.h>
99918
99919 #include <uapi/drm/drm.h>
99920 @@ -243,10 +244,12 @@ void drm_err(const char *format, ...);
99921 * \param cmd command.
99922 * \param arg argument.
99923 */
99924 -typedef int drm_ioctl_t(struct drm_device *dev, void *data,
99925 +typedef int (* const drm_ioctl_t)(struct drm_device *dev, void *data,
99926 + struct drm_file *file_priv);
99927 +typedef int (* drm_ioctl_no_const_t)(struct drm_device *dev, void *data,
99928 struct drm_file *file_priv);
99929
99930 -typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd,
99931 +typedef int (* const drm_ioctl_compat_t)(struct file *filp, unsigned int cmd,
99932 unsigned long arg);
99933
99934 #define DRM_IOCTL_NR(n) _IOC_NR(n)
99935 @@ -262,9 +265,9 @@ typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd,
99936 struct drm_ioctl_desc {
99937 unsigned int cmd;
99938 int flags;
99939 - drm_ioctl_t *func;
99940 + drm_ioctl_t func;
99941 const char *name;
99942 -};
99943 +} __do_const;
99944
99945 /**
99946 * Creates a driver or general drm_ioctl_desc array entry for the given
99947 @@ -645,7 +648,8 @@ struct drm_driver {
99948
99949 /* List of devices hanging off this driver with stealth attach. */
99950 struct list_head legacy_dev_list;
99951 -};
99952 +} __do_const;
99953 +typedef struct drm_driver __no_const drm_driver_no_const;
99954
99955 enum drm_minor_type {
99956 DRM_MINOR_LEGACY,
99957 @@ -663,7 +667,8 @@ struct drm_info_list {
99958 int (*show)(struct seq_file*, void*); /** show callback */
99959 u32 driver_features; /**< Required driver features for this entry */
99960 void *data;
99961 -};
99962 +} __do_const;
99963 +typedef struct drm_info_list __no_const drm_info_list_no_const;
99964
99965 /**
99966 * debugfs node structure. This structure represents a debugfs file.
99967 @@ -752,7 +757,7 @@ struct drm_device {
99968
99969 /** \name Usage Counters */
99970 /*@{ */
99971 - int open_count; /**< Outstanding files open, protected by drm_global_mutex. */
99972 + local_t open_count; /**< Outstanding files open, protected by drm_global_mutex. */
99973 spinlock_t buf_lock; /**< For drm_device::buf_use and a few other things. */
99974 int buf_use; /**< Buffers in use -- cannot alloc */
99975 atomic_t buf_alloc; /**< Buffer allocation in progress */
99976 diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h
99977 index 3febb4b..afc5199 100644
99978 --- a/include/drm/drm_crtc_helper.h
99979 +++ b/include/drm/drm_crtc_helper.h
99980 @@ -163,7 +163,7 @@ struct drm_encoder_helper_funcs {
99981 int (*atomic_check)(struct drm_encoder *encoder,
99982 struct drm_crtc_state *crtc_state,
99983 struct drm_connector_state *conn_state);
99984 -};
99985 +} __no_const;
99986
99987 /**
99988 * struct drm_connector_helper_funcs - helper operations for connectors
99989 diff --git a/include/drm/drm_mm.h b/include/drm/drm_mm.h
99990 index 0de6290..2a2c125 100644
99991 --- a/include/drm/drm_mm.h
99992 +++ b/include/drm/drm_mm.h
99993 @@ -297,7 +297,7 @@ void drm_mm_remove_node(struct drm_mm_node *node);
99994 void drm_mm_replace_node(struct drm_mm_node *old, struct drm_mm_node *new);
99995 void drm_mm_init(struct drm_mm *mm,
99996 u64 start,
99997 - u64 size);
99998 + u64 size) __intentional_overflow(3);
99999 void drm_mm_takedown(struct drm_mm *mm);
100000 bool drm_mm_clean(struct drm_mm *mm);
100001
100002 diff --git a/include/drm/i915_pciids.h b/include/drm/i915_pciids.h
100003 index 17c4456..da0c5eb 100644
100004 --- a/include/drm/i915_pciids.h
100005 +++ b/include/drm/i915_pciids.h
100006 @@ -37,7 +37,7 @@
100007 */
100008 #define INTEL_VGA_DEVICE(id, info) { \
100009 0x8086, id, \
100010 - ~0, ~0, \
100011 + PCI_ANY_ID, PCI_ANY_ID, \
100012 0x030000, 0xff0000, \
100013 (unsigned long) info }
100014
100015 diff --git a/include/drm/intel-gtt.h b/include/drm/intel-gtt.h
100016 index 9e9bddaa5..ce73c69 100644
100017 --- a/include/drm/intel-gtt.h
100018 +++ b/include/drm/intel-gtt.h
100019 @@ -3,8 +3,8 @@
100020 #ifndef _DRM_INTEL_GTT_H
100021 #define _DRM_INTEL_GTT_H
100022
100023 -void intel_gtt_get(u64 *gtt_total, size_t *stolen_size,
100024 - phys_addr_t *mappable_base, u64 *mappable_end);
100025 +void intel_gtt_get(u64 *gtt_total, u64 *stolen_size,
100026 + u64 *mappable_base, u64 *mappable_end);
100027
100028 int intel_gmch_probe(struct pci_dev *bridge_pdev, struct pci_dev *gpu_pdev,
100029 struct agp_bridge_data *bridge);
100030 diff --git a/include/drm/ttm/ttm_memory.h b/include/drm/ttm/ttm_memory.h
100031 index 72dcbe8..8db58d7 100644
100032 --- a/include/drm/ttm/ttm_memory.h
100033 +++ b/include/drm/ttm/ttm_memory.h
100034 @@ -48,7 +48,7 @@
100035
100036 struct ttm_mem_shrink {
100037 int (*do_shrink) (struct ttm_mem_shrink *);
100038 -};
100039 +} __no_const;
100040
100041 /**
100042 * struct ttm_mem_global - Global memory accounting structure.
100043 diff --git a/include/drm/ttm/ttm_page_alloc.h b/include/drm/ttm/ttm_page_alloc.h
100044 index 49a8284..9643967 100644
100045 --- a/include/drm/ttm/ttm_page_alloc.h
100046 +++ b/include/drm/ttm/ttm_page_alloc.h
100047 @@ -80,6 +80,7 @@ void ttm_dma_page_alloc_fini(void);
100048 */
100049 extern int ttm_dma_page_alloc_debugfs(struct seq_file *m, void *data);
100050
100051 +struct device;
100052 extern int ttm_dma_populate(struct ttm_dma_tt *ttm_dma, struct device *dev);
100053 extern void ttm_dma_unpopulate(struct ttm_dma_tt *ttm_dma, struct device *dev);
100054
100055 diff --git a/include/keys/asymmetric-subtype.h b/include/keys/asymmetric-subtype.h
100056 index 4915d40..8b913c0 100644
100057 --- a/include/keys/asymmetric-subtype.h
100058 +++ b/include/keys/asymmetric-subtype.h
100059 @@ -37,7 +37,7 @@ struct asymmetric_key_subtype {
100060 /* Verify the signature on a key of this subtype (optional) */
100061 int (*verify_signature)(const struct key *key,
100062 const struct public_key_signature *sig);
100063 -};
100064 +} __do_const;
100065
100066 /**
100067 * asymmetric_key_subtype - Get the subtype from an asymmetric key
100068 diff --git a/include/linux/atmdev.h b/include/linux/atmdev.h
100069 index c1da539..1dcec55 100644
100070 --- a/include/linux/atmdev.h
100071 +++ b/include/linux/atmdev.h
100072 @@ -28,7 +28,7 @@ struct compat_atm_iobuf {
100073 #endif
100074
100075 struct k_atm_aal_stats {
100076 -#define __HANDLE_ITEM(i) atomic_t i
100077 +#define __HANDLE_ITEM(i) atomic_unchecked_t i
100078 __AAL_STAT_ITEMS
100079 #undef __HANDLE_ITEM
100080 };
100081 @@ -200,7 +200,7 @@ struct atmdev_ops { /* only send is required */
100082 int (*change_qos)(struct atm_vcc *vcc,struct atm_qos *qos,int flags);
100083 int (*proc_read)(struct atm_dev *dev,loff_t *pos,char *page);
100084 struct module *owner;
100085 -};
100086 +} __do_const ;
100087
100088 struct atmphy_ops {
100089 int (*start)(struct atm_dev *dev);
100090 diff --git a/include/linux/atomic.h b/include/linux/atomic.h
100091 index 301de78..f5f8e42 100644
100092 --- a/include/linux/atomic.h
100093 +++ b/include/linux/atomic.h
100094 @@ -103,6 +103,11 @@
100095 #define atomic_inc_return(...) \
100096 __atomic_op_fence(atomic_inc_return, __VA_ARGS__)
100097 #endif
100098 +
100099 +#ifndef atomic_inc_return_unchecked
100100 +#define atomic_inc_return_unchecked(...) \
100101 + __atomic_op_fence(atomic_inc_return_unchecked, __VA_ARGS__)
100102 +#endif
100103 #endif /* atomic_inc_return_relaxed */
100104
100105 /* atomic_sub_return_relaxed */
100106 @@ -255,6 +260,11 @@
100107 #define atomic64_inc_return(...) \
100108 __atomic_op_fence(atomic64_inc_return, __VA_ARGS__)
100109 #endif
100110 +
100111 +#ifndef atomic64_inc_return_unchecked
100112 +#define atomic64_inc_return_unchecked(...) \
100113 + __atomic_op_fence(atomic64_inc_return_unchecked, __VA_ARGS__)
100114 +#endif
100115 #endif /* atomic64_inc_return_relaxed */
100116
100117
100118 @@ -432,7 +442,7 @@
100119 * Atomically adds @a to @v, so long as @v was not already @u.
100120 * Returns non-zero if @v was not @u, and zero otherwise.
100121 */
100122 -static inline int atomic_add_unless(atomic_t *v, int a, int u)
100123 +static inline int __intentional_overflow(-1) atomic_add_unless(atomic_t *v, int a, int u)
100124 {
100125 return __atomic_add_unless(v, a, u) != u;
100126 }
100127 diff --git a/include/linux/audit.h b/include/linux/audit.h
100128 index 20eba1e..40b479d 100644
100129 --- a/include/linux/audit.h
100130 +++ b/include/linux/audit.h
100131 @@ -227,7 +227,7 @@ static inline void audit_ptrace(struct task_struct *t)
100132 extern unsigned int audit_serial(void);
100133 extern int auditsc_get_stamp(struct audit_context *ctx,
100134 struct timespec *t, unsigned int *serial);
100135 -extern int audit_set_loginuid(kuid_t loginuid);
100136 +extern int __intentional_overflow(-1) audit_set_loginuid(kuid_t loginuid);
100137
100138 static inline kuid_t audit_get_loginuid(struct task_struct *tsk)
100139 {
100140 diff --git a/include/linux/average.h b/include/linux/average.h
100141 index d04aa58..3de0da8 100644
100142 --- a/include/linux/average.h
100143 +++ b/include/linux/average.h
100144 @@ -36,7 +36,7 @@
100145 BUILD_BUG_ON_NOT_POWER_OF_2(_factor); \
100146 BUILD_BUG_ON_NOT_POWER_OF_2(_weight); \
100147 \
100148 - ACCESS_ONCE(e->internal) = internal ? \
100149 + ACCESS_ONCE_RW(e->internal) = internal ? \
100150 (((internal << weight) - internal) + \
100151 (val << factor)) >> weight : \
100152 (val << factor); \
100153 diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h
100154 index 576e463..28fd926 100644
100155 --- a/include/linux/binfmts.h
100156 +++ b/include/linux/binfmts.h
100157 @@ -44,7 +44,7 @@ struct linux_binprm {
100158 unsigned interp_flags;
100159 unsigned interp_data;
100160 unsigned long loader, exec;
100161 -};
100162 +} __randomize_layout;
100163
100164 #define BINPRM_FLAGS_ENFORCE_NONDUMP_BIT 0
100165 #define BINPRM_FLAGS_ENFORCE_NONDUMP (1 << BINPRM_FLAGS_ENFORCE_NONDUMP_BIT)
100166 @@ -77,8 +77,10 @@ struct linux_binfmt {
100167 int (*load_binary)(struct linux_binprm *);
100168 int (*load_shlib)(struct file *);
100169 int (*core_dump)(struct coredump_params *cprm);
100170 + void (*handle_mprotect)(struct vm_area_struct *vma, unsigned long newflags);
100171 + void (*handle_mmap)(struct file *);
100172 unsigned long min_coredump; /* minimal dump size */
100173 -};
100174 +} __do_const __randomize_layout;
100175
100176 extern void __register_binfmt(struct linux_binfmt *fmt, int insert);
100177
100178 diff --git a/include/linux/bitmap.h b/include/linux/bitmap.h
100179 index 9653fdb..b3d3a17 100644
100180 --- a/include/linux/bitmap.h
100181 +++ b/include/linux/bitmap.h
100182 @@ -295,7 +295,7 @@ static inline int bitmap_full(const unsigned long *src, unsigned int nbits)
100183 return find_first_zero_bit(src, nbits) == nbits;
100184 }
100185
100186 -static __always_inline int bitmap_weight(const unsigned long *src, unsigned int nbits)
100187 +static __always_inline int __intentional_overflow(-1) bitmap_weight(const unsigned long *src, unsigned int nbits)
100188 {
100189 if (small_const_nbits(nbits))
100190 return hweight_long(*src & BITMAP_LAST_WORD_MASK(nbits));
100191 diff --git a/include/linux/bitops.h b/include/linux/bitops.h
100192 index defeaac..856d23d 100644
100193 --- a/include/linux/bitops.h
100194 +++ b/include/linux/bitops.h
100195 @@ -75,7 +75,7 @@ static inline int get_count_order(unsigned int count)
100196 return order;
100197 }
100198
100199 -static __always_inline unsigned long hweight_long(unsigned long w)
100200 +static __always_inline unsigned long __intentional_overflow(-1) hweight_long(unsigned long w)
100201 {
100202 return sizeof(w) == 4 ? hweight32(w) : hweight64(w);
100203 }
100204 @@ -105,7 +105,7 @@ static inline __u64 ror64(__u64 word, unsigned int shift)
100205 * @word: value to rotate
100206 * @shift: bits to roll
100207 */
100208 -static inline __u32 rol32(__u32 word, unsigned int shift)
100209 +static inline __u32 __intentional_overflow(-1) rol32(__u32 word, unsigned int shift)
100210 {
100211 return (word << shift) | (word >> ((-shift) & 31));
100212 }
100213 @@ -115,7 +115,7 @@ static inline __u32 rol32(__u32 word, unsigned int shift)
100214 * @word: value to rotate
100215 * @shift: bits to roll
100216 */
100217 -static inline __u32 ror32(__u32 word, unsigned int shift)
100218 +static inline __u32 __intentional_overflow(-1) ror32(__u32 word, unsigned int shift)
100219 {
100220 return (word >> shift) | (word << (32 - shift));
100221 }
100222 @@ -184,7 +184,7 @@ static inline __s64 sign_extend64(__u64 value, int index)
100223 return (__s64)(value << shift) >> shift;
100224 }
100225
100226 -static inline unsigned fls_long(unsigned long l)
100227 +static inline unsigned __intentional_overflow(-1) fls_long(unsigned long l)
100228 {
100229 if (sizeof(l) == 4)
100230 return fls(l);
100231 diff --git a/include/linux/blk-cgroup.h b/include/linux/blk-cgroup.h
100232 index c02e669..439bd4b 100644
100233 --- a/include/linux/blk-cgroup.h
100234 +++ b/include/linux/blk-cgroup.h
100235 @@ -63,12 +63,12 @@ struct blkcg {
100236 */
100237 struct blkg_stat {
100238 struct percpu_counter cpu_cnt;
100239 - atomic64_t aux_cnt;
100240 + atomic64_unchecked_t aux_cnt;
100241 };
100242
100243 struct blkg_rwstat {
100244 struct percpu_counter cpu_cnt[BLKG_RWSTAT_NR];
100245 - atomic64_t aux_cnt[BLKG_RWSTAT_NR];
100246 + atomic64_unchecked_t aux_cnt[BLKG_RWSTAT_NR];
100247 };
100248
100249 /*
100250 @@ -508,7 +508,7 @@ static inline int blkg_stat_init(struct blkg_stat *stat, gfp_t gfp)
100251 if (ret)
100252 return ret;
100253
100254 - atomic64_set(&stat->aux_cnt, 0);
100255 + atomic64_set_unchecked(&stat->aux_cnt, 0);
100256 return 0;
100257 }
100258
100259 @@ -546,7 +546,7 @@ static inline uint64_t blkg_stat_read(struct blkg_stat *stat)
100260 static inline void blkg_stat_reset(struct blkg_stat *stat)
100261 {
100262 percpu_counter_set(&stat->cpu_cnt, 0);
100263 - atomic64_set(&stat->aux_cnt, 0);
100264 + atomic64_set_unchecked(&stat->aux_cnt, 0);
100265 }
100266
100267 /**
100268 @@ -559,7 +559,7 @@ static inline void blkg_stat_reset(struct blkg_stat *stat)
100269 static inline void blkg_stat_add_aux(struct blkg_stat *to,
100270 struct blkg_stat *from)
100271 {
100272 - atomic64_add(blkg_stat_read(from) + atomic64_read(&from->aux_cnt),
100273 + atomic64_add_unchecked(blkg_stat_read(from) + atomic64_read_unchecked(&from->aux_cnt),
100274 &to->aux_cnt);
100275 }
100276
100277 @@ -574,7 +574,7 @@ static inline int blkg_rwstat_init(struct blkg_rwstat *rwstat, gfp_t gfp)
100278 percpu_counter_destroy(&rwstat->cpu_cnt[i]);
100279 return ret;
100280 }
100281 - atomic64_set(&rwstat->aux_cnt[i], 0);
100282 + atomic64_set_unchecked(&rwstat->aux_cnt[i], 0);
100283 }
100284 return 0;
100285 }
100286 @@ -628,7 +628,7 @@ static inline struct blkg_rwstat blkg_rwstat_read(struct blkg_rwstat *rwstat)
100287 int i;
100288
100289 for (i = 0; i < BLKG_RWSTAT_NR; i++)
100290 - atomic64_set(&result.aux_cnt[i],
100291 + atomic64_set_unchecked(&result.aux_cnt[i],
100292 percpu_counter_sum_positive(&rwstat->cpu_cnt[i]));
100293 return result;
100294 }
100295 @@ -645,8 +645,8 @@ static inline uint64_t blkg_rwstat_total(struct blkg_rwstat *rwstat)
100296 {
100297 struct blkg_rwstat tmp = blkg_rwstat_read(rwstat);
100298
100299 - return atomic64_read(&tmp.aux_cnt[BLKG_RWSTAT_READ]) +
100300 - atomic64_read(&tmp.aux_cnt[BLKG_RWSTAT_WRITE]);
100301 + return atomic64_read_unchecked(&tmp.aux_cnt[BLKG_RWSTAT_READ]) +
100302 + atomic64_read_unchecked(&tmp.aux_cnt[BLKG_RWSTAT_WRITE]);
100303 }
100304
100305 /**
100306 @@ -659,7 +659,7 @@ static inline void blkg_rwstat_reset(struct blkg_rwstat *rwstat)
100307
100308 for (i = 0; i < BLKG_RWSTAT_NR; i++) {
100309 percpu_counter_set(&rwstat->cpu_cnt[i], 0);
100310 - atomic64_set(&rwstat->aux_cnt[i], 0);
100311 + atomic64_set_unchecked(&rwstat->aux_cnt[i], 0);
100312 }
100313 }
100314
100315 @@ -677,8 +677,8 @@ static inline void blkg_rwstat_add_aux(struct blkg_rwstat *to,
100316 int i;
100317
100318 for (i = 0; i < BLKG_RWSTAT_NR; i++)
100319 - atomic64_add(atomic64_read(&v.aux_cnt[i]) +
100320 - atomic64_read(&from->aux_cnt[i]),
100321 + atomic64_add_unchecked(atomic64_read_unchecked(&v.aux_cnt[i]) +
100322 + atomic64_read_unchecked(&from->aux_cnt[i]),
100323 &to->aux_cnt[i]);
100324 }
100325
100326 diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
100327 index 1687557..3a013dd 100644
100328 --- a/include/linux/blkdev.h
100329 +++ b/include/linux/blkdev.h
100330 @@ -1647,7 +1647,7 @@ struct block_device_operations {
100331 void (*swap_slot_free_notify) (struct block_device *, unsigned long);
100332 struct module *owner;
100333 const struct pr_ops *pr_ops;
100334 -};
100335 +} __do_const;
100336
100337 extern int __blkdev_driver_ioctl(struct block_device *, fmode_t, unsigned int,
100338 unsigned long);
100339 diff --git a/include/linux/blktrace_api.h b/include/linux/blktrace_api.h
100340 index afc1343..9735539 100644
100341 --- a/include/linux/blktrace_api.h
100342 +++ b/include/linux/blktrace_api.h
100343 @@ -25,7 +25,7 @@ struct blk_trace {
100344 struct dentry *dropped_file;
100345 struct dentry *msg_file;
100346 struct list_head running_list;
100347 - atomic_t dropped;
100348 + atomic_unchecked_t dropped;
100349 };
100350
100351 extern int blk_trace_ioctl(struct block_device *, unsigned, char __user *);
100352 diff --git a/include/linux/cache.h b/include/linux/cache.h
100353 index 17e7e82..1d7da26 100644
100354 --- a/include/linux/cache.h
100355 +++ b/include/linux/cache.h
100356 @@ -16,6 +16,14 @@
100357 #define __read_mostly
100358 #endif
100359
100360 +#ifndef __read_only
100361 +#ifdef CONFIG_PAX_KERNEXEC
100362 +#error KERNEXEC requires __read_only
100363 +#else
100364 +#define __read_only __read_mostly
100365 +#endif
100366 +#endif
100367 +
100368 #ifndef ____cacheline_aligned
100369 #define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))
100370 #endif
100371 diff --git a/include/linux/capability.h b/include/linux/capability.h
100372 index af9f0b9..71a5e5c 100644
100373 --- a/include/linux/capability.h
100374 +++ b/include/linux/capability.h
100375 @@ -237,15 +237,28 @@ static inline bool capable(int cap)
100376 {
100377 return true;
100378 }
100379 +static inline bool capable_nolog(int cap)
100380 +{
100381 + return true;
100382 +}
100383 static inline bool ns_capable(struct user_namespace *ns, int cap)
100384 {
100385 return true;
100386 }
100387 +static inline bool ns_capable_nolog(struct user_namespace *ns, int cap)
100388 +{
100389 + return true;
100390 +}
100391 #endif /* CONFIG_MULTIUSER */
100392 extern bool capable_wrt_inode_uidgid(const struct inode *inode, int cap);
100393 +extern bool capable_wrt_inode_uidgid_nolog(const struct inode *inode, int cap);
100394 extern bool file_ns_capable(const struct file *file, struct user_namespace *ns, int cap);
100395 +extern bool capable_nolog(int cap);
100396 +extern bool ns_capable_nolog(struct user_namespace *ns, int cap);
100397
100398 /* audit system wants to get cap info from files as well */
100399 extern int get_vfs_caps_from_disk(const struct dentry *dentry, struct cpu_vfs_cap_data *cpu_caps);
100400
100401 +extern int is_privileged_binary(const struct dentry *dentry);
100402 +
100403 #endif /* !_LINUX_CAPABILITY_H */
100404 diff --git a/include/linux/cdrom.h b/include/linux/cdrom.h
100405 index 8609d57..86e4d79 100644
100406 --- a/include/linux/cdrom.h
100407 +++ b/include/linux/cdrom.h
100408 @@ -87,7 +87,6 @@ struct cdrom_device_ops {
100409
100410 /* driver specifications */
100411 const int capability; /* capability flags */
100412 - int n_minors; /* number of active minor devices */
100413 /* handle uniform packets for scsi type devices (scsi,atapi) */
100414 int (*generic_packet) (struct cdrom_device_info *,
100415 struct packet_command *);
100416 diff --git a/include/linux/cgroup-defs.h b/include/linux/cgroup-defs.h
100417 index 8e30fae..38632f8 100644
100418 --- a/include/linux/cgroup-defs.h
100419 +++ b/include/linux/cgroup-defs.h
100420 @@ -413,7 +413,7 @@ struct cftype {
100421 #ifdef CONFIG_DEBUG_LOCK_ALLOC
100422 struct lock_class_key lockdep_key;
100423 #endif
100424 -};
100425 +} __do_const;
100426
100427 /*
100428 * Control Group subsystem type.
100429 diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
100430 index bda5ec0b4..51d8ea1 100644
100431 --- a/include/linux/cleancache.h
100432 +++ b/include/linux/cleancache.h
100433 @@ -35,7 +35,7 @@ struct cleancache_ops {
100434 void (*invalidate_page)(int, struct cleancache_filekey, pgoff_t);
100435 void (*invalidate_inode)(int, struct cleancache_filekey);
100436 void (*invalidate_fs)(int);
100437 -};
100438 +} __no_const;
100439
100440 extern int cleancache_register_ops(struct cleancache_ops *ops);
100441 extern void __cleancache_init_fs(struct super_block *);
100442 diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
100443 index c56988a..ea6c518 100644
100444 --- a/include/linux/clk-provider.h
100445 +++ b/include/linux/clk-provider.h
100446 @@ -214,6 +214,7 @@ struct clk_ops {
100447 void (*init)(struct clk_hw *hw);
100448 int (*debug_init)(struct clk_hw *hw, struct dentry *dentry);
100449 };
100450 +typedef struct clk_ops __no_const clk_ops_no_const;
100451
100452 /**
100453 * struct clk_init_data - holds init data that's common to all clocks and is
100454 diff --git a/include/linux/compat.h b/include/linux/compat.h
100455 index a76c917..63b52db 100644
100456 --- a/include/linux/compat.h
100457 +++ b/include/linux/compat.h
100458 @@ -316,7 +316,7 @@ compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr,
100459 compat_size_t __user *len_ptr);
100460
100461 asmlinkage long compat_sys_ipc(u32, int, int, u32, compat_uptr_t, u32);
100462 -asmlinkage long compat_sys_shmat(int shmid, compat_uptr_t shmaddr, int shmflg);
100463 +asmlinkage long compat_sys_shmat(int shmid, compat_uptr_t shmaddr, int shmflg) __intentional_overflow(0);
100464 asmlinkage long compat_sys_semctl(int semid, int semnum, int cmd, int arg);
100465 asmlinkage long compat_sys_msgsnd(int msqid, compat_uptr_t msgp,
100466 compat_ssize_t msgsz, int msgflg);
100467 @@ -325,7 +325,7 @@ asmlinkage long compat_sys_msgrcv(int msqid, compat_uptr_t msgp,
100468 long compat_sys_msgctl(int first, int second, void __user *uptr);
100469 long compat_sys_shmctl(int first, int second, void __user *uptr);
100470 long compat_sys_semtimedop(int semid, struct sembuf __user *tsems,
100471 - unsigned nsems, const struct compat_timespec __user *timeout);
100472 + compat_long_t nsems, const struct compat_timespec __user *timeout);
100473 asmlinkage long compat_sys_keyctl(u32 option,
100474 u32 arg2, u32 arg3, u32 arg4, u32 arg5);
100475 asmlinkage long compat_sys_ustat(unsigned dev, struct compat_ustat __user *u32);
100476 @@ -439,7 +439,7 @@ extern int compat_ptrace_request(struct task_struct *child,
100477 extern long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
100478 compat_ulong_t addr, compat_ulong_t data);
100479 asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid,
100480 - compat_long_t addr, compat_long_t data);
100481 + compat_ulong_t addr, compat_ulong_t data);
100482
100483 asmlinkage long compat_sys_lookup_dcookie(u32, u32, char __user *, compat_size_t);
100484 /*
100485 diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
100486 index 22ab246..bfa81b0 100644
100487 --- a/include/linux/compiler-gcc.h
100488 +++ b/include/linux/compiler-gcc.h
100489 @@ -116,8 +116,8 @@
100490 */
100491 #define __pure __attribute__((pure))
100492 #define __aligned(x) __attribute__((aligned(x)))
100493 -#define __printf(a, b) __attribute__((format(printf, a, b)))
100494 -#define __scanf(a, b) __attribute__((format(scanf, a, b)))
100495 +#define __printf(a, b) __attribute__((format(printf, a, b))) __nocapture(a, b)
100496 +#define __scanf(a, b) __attribute__((format(scanf, a, b))) __nocapture(a, b)
100497 #define __attribute_const__ __attribute__((__const__))
100498 #define __maybe_unused __attribute__((unused))
100499 #define __always_unused __attribute__((unused))
100500 @@ -184,9 +184,38 @@
100501 # define __compiletime_warning(message) __attribute__((warning(message)))
100502 # define __compiletime_error(message) __attribute__((error(message)))
100503 #endif /* __CHECKER__ */
100504 +
100505 +#define __alloc_size(...) __attribute((alloc_size(__VA_ARGS__)))
100506 +#define __bos(ptr, arg) __builtin_object_size((ptr), (arg))
100507 +#define __bos0(ptr) __bos((ptr), 0)
100508 +#define __bos1(ptr) __bos((ptr), 1)
100509 #endif /* GCC_VERSION >= 40300 */
100510
100511 #if GCC_VERSION >= 40500
100512 +
100513 +#ifdef RANDSTRUCT_PLUGIN
100514 +#define __randomize_layout __attribute__((randomize_layout))
100515 +#define __no_randomize_layout __attribute__((no_randomize_layout))
100516 +#endif
100517 +
100518 +#ifdef CONSTIFY_PLUGIN
100519 +#define __no_const __attribute__((no_const))
100520 +#define __do_const __attribute__((do_const))
100521 +#endif
100522 +
100523 +#ifdef SIZE_OVERFLOW_PLUGIN
100524 +#define __size_overflow(...) __attribute__((size_overflow(__VA_ARGS__)))
100525 +#define __intentional_overflow(...) __attribute__((intentional_overflow(__VA_ARGS__)))
100526 +#endif
100527 +
100528 +#ifdef LATENT_ENTROPY_PLUGIN
100529 +#define __latent_entropy __attribute__((latent_entropy))
100530 +#endif
100531 +
100532 +#ifdef INITIFY_PLUGIN
100533 +#define __nocapture(...) __attribute__((nocapture(__VA_ARGS__)))
100534 +#endif
100535 +
100536 /*
100537 * Mark a position in code as unreachable. This can be used to
100538 * suppress control flow warnings after asm blocks that transfer
100539 diff --git a/include/linux/compiler.h b/include/linux/compiler.h
100540 index 6fc9a6d..8ad4c2b 100644
100541 --- a/include/linux/compiler.h
100542 +++ b/include/linux/compiler.h
100543 @@ -5,11 +5,14 @@
100544
100545 #ifdef __CHECKER__
100546 # define __user __attribute__((noderef, address_space(1)))
100547 +# define __force_user __force __user
100548 # define __kernel __attribute__((address_space(0)))
100549 +# define __force_kernel __force __kernel
100550 # define __safe __attribute__((safe))
100551 # define __force __attribute__((force))
100552 # define __nocast __attribute__((nocast))
100553 # define __iomem __attribute__((noderef, address_space(2)))
100554 +# define __force_iomem __force __iomem
100555 # define __must_hold(x) __attribute__((context(x,1,1)))
100556 # define __acquires(x) __attribute__((context(x,0,1)))
100557 # define __releases(x) __attribute__((context(x,1,0)))
100558 @@ -17,33 +20,78 @@
100559 # define __release(x) __context__(x,-1)
100560 # define __cond_lock(x,c) ((c) ? ({ __acquire(x); 1; }) : 0)
100561 # define __percpu __attribute__((noderef, address_space(3)))
100562 +# define __force_percpu __force __percpu
100563 # define __pmem __attribute__((noderef, address_space(5)))
100564 +# define __force_pmem __force __pmem
100565 #ifdef CONFIG_SPARSE_RCU_POINTER
100566 # define __rcu __attribute__((noderef, address_space(4)))
100567 +# define __force_rcu __force __rcu
100568 #else
100569 # define __rcu
100570 +# define __force_rcu
100571 #endif
100572 extern void __chk_user_ptr(const volatile void __user *);
100573 extern void __chk_io_ptr(const volatile void __iomem *);
100574 #else
100575 -# define __user
100576 -# define __kernel
100577 +# ifdef CHECKER_PLUGIN
100578 +# ifdef CHECKER_PLUGIN_USER
100579 +//# define __user
100580 +//# define __force_user
100581 +//# define __kernel
100582 +//# define __force_kernel
100583 +# else
100584 +# define __user
100585 +# define __force_user
100586 +# define __kernel
100587 +# define __force_kernel
100588 +# endif
100589 +# ifdef CHECKER_PLUGIN_CONTEXT
100590 +# define __must_hold(x) __attribute__((context(#x,1,1)))
100591 +# define __acquires(x) __attribute__((context(#x,0,1)))
100592 +# define __releases(x) __attribute__((context(#x,1,0)))
100593 +# define __acquire(x) __context__(#x,1)
100594 +# define __release(x) __context__(#x,-1)
100595 +# define __cond_lock(x,c) ((c) ? ({ __acquire(x); 1; }) : 0)
100596 +# define __cond_unlock(x,c) ((c) ? ({ __release(x); 1; }) : 0)
100597 +# else
100598 +# define __must_hold(x)
100599 +# define __acquires(x)
100600 +# define __releases(x)
100601 +# define __acquire(x) (void)0
100602 +# define __release(x) (void)0
100603 +# define __cond_lock(x,c) (c)
100604 +# define __cond_unlock(x,c) (c)
100605 +# endif
100606 +# else
100607 +# ifdef STRUCTLEAK_PLUGIN
100608 +# define __user __attribute__((user))
100609 +# else
100610 +# define __user
100611 +# endif
100612 +# define __force_user
100613 +# define __kernel
100614 +# define __force_kernel
100615 +# define __must_hold(x)
100616 +# define __acquires(x)
100617 +# define __releases(x)
100618 +# define __acquire(x) (void)0
100619 +# define __release(x) (void)0
100620 +# define __cond_lock(x,c) (c)
100621 +# endif
100622 # define __safe
100623 # define __force
100624 # define __nocast
100625 # define __iomem
100626 +# define __force_iomem
100627 # define __chk_user_ptr(x) (void)0
100628 # define __chk_io_ptr(x) (void)0
100629 # define __builtin_warning(x, y...) (1)
100630 -# define __must_hold(x)
100631 -# define __acquires(x)
100632 -# define __releases(x)
100633 -# define __acquire(x) (void)0
100634 -# define __release(x) (void)0
100635 -# define __cond_lock(x,c) (c)
100636 # define __percpu
100637 +# define __force_percpu
100638 # define __rcu
100639 +# define __force_rcu
100640 # define __pmem
100641 +# define __force_pmem
100642 #endif
100643
100644 /* Indirect macros required for expanded argument pasting, eg. __LINE__. */
100645 @@ -198,29 +246,20 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
100646
100647 #include <uapi/linux/types.h>
100648
100649 -#define __READ_ONCE_SIZE \
100650 -({ \
100651 - switch (size) { \
100652 - case 1: *(__u8 *)res = *(volatile __u8 *)p; break; \
100653 - case 2: *(__u16 *)res = *(volatile __u16 *)p; break; \
100654 - case 4: *(__u32 *)res = *(volatile __u32 *)p; break; \
100655 - case 8: *(__u64 *)res = *(volatile __u64 *)p; break; \
100656 - default: \
100657 - barrier(); \
100658 - __builtin_memcpy((void *)res, (const void *)p, size); \
100659 - barrier(); \
100660 - } \
100661 -})
100662 -
100663 -static __always_inline
100664 -void __read_once_size(const volatile void *p, void *res, int size)
100665 -{
100666 - __READ_ONCE_SIZE;
100667 -}
100668 -
100669 #ifdef CONFIG_KASAN
100670 /*
100671 - * This function is not 'inline' because __no_sanitize_address confilcts
100672 + * Use READ_ONCE_NOCHECK() instead of READ_ONCE() if you need
100673 + * to hide memory access from KASAN.
100674 + */
100675 +#define READ_ONCE_NOCHECK(x) \
100676 +({ \
100677 + union { typeof(x) __val; char __c[sizeof(x)]; } __u; \
100678 + __read_once_size_nocheck(&(x), __u.__c, sizeof(x)); \
100679 + __u.__val; \
100680 +})
100681 +
100682 +/*
100683 + * This function is not 'inline' because __no_sanitize_address conflicts
100684 * with inlining. Attempt to inline it may cause a build failure.
100685 * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67368
100686 * '__maybe_unused' allows us to avoid defined-but-not-used warnings.
100687 @@ -228,29 +267,20 @@ void __read_once_size(const volatile void *p, void *res, int size)
100688 static __no_sanitize_address __maybe_unused
100689 void __read_once_size_nocheck(const volatile void *p, void *res, int size)
100690 {
100691 - __READ_ONCE_SIZE;
100692 -}
100693 -#else
100694 -static __always_inline
100695 -void __read_once_size_nocheck(const volatile void *p, void *res, int size)
100696 -{
100697 - __READ_ONCE_SIZE;
100698 -}
100699 -#endif
100700 -
100701 -static __always_inline void __write_once_size(volatile void *p, void *res, int size)
100702 -{
100703 switch (size) {
100704 - case 1: *(volatile __u8 *)p = *(__u8 *)res; break;
100705 - case 2: *(volatile __u16 *)p = *(__u16 *)res; break;
100706 - case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
100707 - case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
100708 + case 1: *(__u8 *)res = *(const volatile __u8 *)p; break;
100709 + case 2: *(__u16 *)res = *(const volatile __u16 *)p; break;
100710 + case 4: *(__u32 *)res = *(const volatile __u32 *)p; break;
100711 + case 8: *(__u64 *)res = *(const volatile __u64 *)p; break;
100712 default:
100713 barrier();
100714 - __builtin_memcpy((void *)p, (const void *)res, size);
100715 + __builtin_memcpy(res, (const void *)p, size);
100716 barrier();
100717 }
100718 }
100719 +#else
100720 +#define READ_ONCE_NOCHECK(x) READ_ONCE(x)
100721 +#endif
100722
100723 /*
100724 * Prevent the compiler from merging or refetching reads or writes. The
100725 @@ -274,29 +304,15 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
100726 * required ordering.
100727 */
100728
100729 -#define __READ_ONCE(x, check) \
100730 -({ \
100731 - union { typeof(x) __val; char __c[1]; } __u; \
100732 - if (check) \
100733 - __read_once_size(&(x), __u.__c, sizeof(x)); \
100734 - else \
100735 - __read_once_size_nocheck(&(x), __u.__c, sizeof(x)); \
100736 - __u.__val; \
100737 +#define READ_ONCE(x) ({ \
100738 + typeof(x) __val = *(volatile typeof(x) *)&(x); \
100739 + __val; \
100740 })
100741 -#define READ_ONCE(x) __READ_ONCE(x, 1)
100742
100743 -/*
100744 - * Use READ_ONCE_NOCHECK() instead of READ_ONCE() if you need
100745 - * to hide memory access from KASAN.
100746 - */
100747 -#define READ_ONCE_NOCHECK(x) __READ_ONCE(x, 0)
100748 -
100749 -#define WRITE_ONCE(x, val) \
100750 -({ \
100751 - union { typeof(x) __val; char __c[1]; } __u = \
100752 - { .__val = (__force typeof(x)) (val) }; \
100753 - __write_once_size(&(x), __u.__c, sizeof(x)); \
100754 - __u.__val; \
100755 +#define WRITE_ONCE(x, val) ({ \
100756 + typeof(x) __val = (val); \
100757 + (x) = *(volatile typeof(x) *)&__val; \
100758 + __val; \
100759 })
100760
100761 #endif /* __KERNEL__ */
100762 @@ -399,6 +415,38 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
100763 # define __attribute_const__ /* unimplemented */
100764 #endif
100765
100766 +#ifndef __randomize_layout
100767 +# define __randomize_layout
100768 +#endif
100769 +
100770 +#ifndef __no_randomize_layout
100771 +# define __no_randomize_layout
100772 +#endif
100773 +
100774 +#ifndef __no_const
100775 +# define __no_const
100776 +#endif
100777 +
100778 +#ifndef __do_const
100779 +# define __do_const
100780 +#endif
100781 +
100782 +#ifndef __size_overflow
100783 +# define __size_overflow(...)
100784 +#endif
100785 +
100786 +#ifndef __intentional_overflow
100787 +# define __intentional_overflow(...)
100788 +#endif
100789 +
100790 +#ifndef __latent_entropy
100791 +# define __latent_entropy
100792 +#endif
100793 +
100794 +#ifndef __nocapture
100795 +# define __nocapture(...)
100796 +#endif
100797 +
100798 /*
100799 * Tell gcc if a function is cold. The compiler will assume any path
100800 * directly leading to the call is unlikely.
100801 @@ -408,6 +456,22 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
100802 #define __cold
100803 #endif
100804
100805 +#ifndef __alloc_size
100806 +#define __alloc_size(...)
100807 +#endif
100808 +
100809 +#ifndef __bos
100810 +#define __bos(ptr, arg)
100811 +#endif
100812 +
100813 +#ifndef __bos0
100814 +#define __bos0(ptr)
100815 +#endif
100816 +
100817 +#ifndef __bos1
100818 +#define __bos1(ptr)
100819 +#endif
100820 +
100821 /* Simple shorthand for a section definition */
100822 #ifndef __section
100823 # define __section(S) __attribute__ ((__section__(#S)))
100824 @@ -430,6 +494,8 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
100825 # define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
100826 #endif
100827
100828 +#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))
100829 +
100830 /* Is this type a native word size -- useful for atomic operations */
100831 #ifndef __native_word
100832 # define __native_word(t) (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long))
100833 @@ -509,8 +575,9 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
100834 */
100835 #define __ACCESS_ONCE(x) ({ \
100836 __maybe_unused typeof(x) __var = (__force typeof(x)) 0; \
100837 - (volatile typeof(x) *)&(x); })
100838 + (volatile const typeof(x) *)&(x); })
100839 #define ACCESS_ONCE(x) (*__ACCESS_ONCE(x))
100840 +#define ACCESS_ONCE_RW(x) (*(volatile typeof(x) *)&(x))
100841
100842 /**
100843 * lockless_dereference() - safely load a pointer for later dereference
100844 diff --git a/include/linux/configfs.h b/include/linux/configfs.h
100845 index 758a029..77c9e59 100644
100846 --- a/include/linux/configfs.h
100847 +++ b/include/linux/configfs.h
100848 @@ -127,7 +127,7 @@ struct configfs_attribute {
100849 umode_t ca_mode;
100850 ssize_t (*show)(struct config_item *, char *);
100851 ssize_t (*store)(struct config_item *, const char *, size_t);
100852 -};
100853 +} __do_const;
100854
100855 #define CONFIGFS_ATTR(_pfx, _name) \
100856 static struct configfs_attribute _pfx##attr_##_name = { \
100857 diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
100858 index 177c768..663bdfb 100644
100859 --- a/include/linux/cpufreq.h
100860 +++ b/include/linux/cpufreq.h
100861 @@ -210,6 +210,7 @@ struct global_attr {
100862 ssize_t (*store)(struct kobject *a, struct attribute *b,
100863 const char *c, size_t count);
100864 };
100865 +typedef struct global_attr __no_const global_attr_no_const;
100866
100867 #define define_one_global_ro(_name) \
100868 static struct global_attr _name = \
100869 @@ -281,7 +282,7 @@ struct cpufreq_driver {
100870 bool boost_supported;
100871 bool boost_enabled;
100872 int (*set_boost)(int state);
100873 -};
100874 +} __do_const;
100875
100876 /* flags */
100877 #define CPUFREQ_STICKY (1 << 0) /* driver isn't removed even if
100878 diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
100879 index 786ad32..09d1fb1 100644
100880 --- a/include/linux/cpuidle.h
100881 +++ b/include/linux/cpuidle.h
100882 @@ -59,7 +59,8 @@ struct cpuidle_state {
100883 void (*enter_freeze) (struct cpuidle_device *dev,
100884 struct cpuidle_driver *drv,
100885 int index);
100886 -};
100887 +} __do_const;
100888 +typedef struct cpuidle_state __no_const cpuidle_state_no_const;
100889
100890 /* Idle State Flags */
100891 #define CPUIDLE_FLAG_COUPLED (0x02) /* state applies to multiple cpus */
100892 @@ -234,7 +235,7 @@ struct cpuidle_governor {
100893 void (*reflect) (struct cpuidle_device *dev, int index);
100894
100895 struct module *owner;
100896 -};
100897 +} __do_const;
100898
100899 #ifdef CONFIG_CPU_IDLE
100900 extern int cpuidle_register_governor(struct cpuidle_governor *gov);
100901 diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h
100902 index 59915ea..81ebec0 100644
100903 --- a/include/linux/cpumask.h
100904 +++ b/include/linux/cpumask.h
100905 @@ -127,17 +127,17 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp)
100906 }
100907
100908 /* Valid inputs for n are -1 and 0. */
100909 -static inline unsigned int cpumask_next(int n, const struct cpumask *srcp)
100910 +static inline unsigned int __intentional_overflow(-1) cpumask_next(int n, const struct cpumask *srcp)
100911 {
100912 return n+1;
100913 }
100914
100915 -static inline unsigned int cpumask_next_zero(int n, const struct cpumask *srcp)
100916 +static inline unsigned int __intentional_overflow(-1) cpumask_next_zero(int n, const struct cpumask *srcp)
100917 {
100918 return n+1;
100919 }
100920
100921 -static inline unsigned int cpumask_next_and(int n,
100922 +static inline unsigned int __intentional_overflow(-1) cpumask_next_and(int n,
100923 const struct cpumask *srcp,
100924 const struct cpumask *andp)
100925 {
100926 @@ -181,7 +181,7 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp)
100927 *
100928 * Returns >= nr_cpu_ids if no further cpus set.
100929 */
100930 -static inline unsigned int cpumask_next(int n, const struct cpumask *srcp)
100931 +static inline unsigned int __intentional_overflow(-1) cpumask_next(int n, const struct cpumask *srcp)
100932 {
100933 /* -1 is a legal arg here. */
100934 if (n != -1)
100935 @@ -196,7 +196,7 @@ static inline unsigned int cpumask_next(int n, const struct cpumask *srcp)
100936 *
100937 * Returns >= nr_cpu_ids if no further cpus unset.
100938 */
100939 -static inline unsigned int cpumask_next_zero(int n, const struct cpumask *srcp)
100940 +static inline unsigned int __intentional_overflow(-1) cpumask_next_zero(int n, const struct cpumask *srcp)
100941 {
100942 /* -1 is a legal arg here. */
100943 if (n != -1)
100944 @@ -204,7 +204,7 @@ static inline unsigned int cpumask_next_zero(int n, const struct cpumask *srcp)
100945 return find_next_zero_bit(cpumask_bits(srcp), nr_cpumask_bits, n+1);
100946 }
100947
100948 -int cpumask_next_and(int n, const struct cpumask *, const struct cpumask *);
100949 +int cpumask_next_and(int n, const struct cpumask *, const struct cpumask *) __intentional_overflow(-1);
100950 int cpumask_any_but(const struct cpumask *mask, unsigned int cpu);
100951 unsigned int cpumask_local_spread(unsigned int i, int node);
100952
100953 @@ -471,7 +471,7 @@ static inline bool cpumask_full(const struct cpumask *srcp)
100954 * cpumask_weight - Count of bits in *srcp
100955 * @srcp: the cpumask to count bits (< nr_cpu_ids) in.
100956 */
100957 -static inline unsigned int cpumask_weight(const struct cpumask *srcp)
100958 +static inline unsigned int __intentional_overflow(-1) cpumask_weight(const struct cpumask *srcp)
100959 {
100960 return bitmap_weight(cpumask_bits(srcp), nr_cpumask_bits);
100961 }
100962 diff --git a/include/linux/cred.h b/include/linux/cred.h
100963 index 8d70e13..37dfbd2 100644
100964 --- a/include/linux/cred.h
100965 +++ b/include/linux/cred.h
100966 @@ -35,7 +35,7 @@ struct group_info {
100967 int nblocks;
100968 kgid_t small_block[NGROUPS_SMALL];
100969 kgid_t *blocks[0];
100970 -};
100971 +} __randomize_layout;
100972
100973 /**
100974 * get_group_info - Get a reference to a group info structure
100975 @@ -153,7 +153,7 @@ struct cred {
100976 struct user_namespace *user_ns; /* user_ns the caps and keyrings are relative to. */
100977 struct group_info *group_info; /* supplementary groups for euid/fsgid */
100978 struct rcu_head rcu; /* RCU deletion hook */
100979 -};
100980 +} __randomize_layout;
100981
100982 extern void __put_cred(struct cred *);
100983 extern void exit_creds(struct task_struct *);
100984 @@ -211,6 +211,9 @@ static inline void validate_creds_for_do_exit(struct task_struct *tsk)
100985 static inline void validate_process_creds(void)
100986 {
100987 }
100988 +static inline void validate_task_creds(struct task_struct *task)
100989 +{
100990 +}
100991 #endif
100992
100993 static inline bool cap_ambient_invariant_ok(const struct cred *cred)
100994 @@ -355,6 +358,7 @@ static inline void put_cred(const struct cred *_cred)
100995
100996 #define task_uid(task) (task_cred_xxx((task), uid))
100997 #define task_euid(task) (task_cred_xxx((task), euid))
100998 +#define task_securebits(task) (task_cred_xxx((task), securebits))
100999
101000 #define current_cred_xxx(xxx) \
101001 ({ \
101002 diff --git a/include/linux/crypto.h b/include/linux/crypto.h
101003 index e71cb70..0e90b90 100644
101004 --- a/include/linux/crypto.h
101005 +++ b/include/linux/crypto.h
101006 @@ -517,7 +517,7 @@ struct cipher_tfm {
101007 const u8 *key, unsigned int keylen);
101008 void (*cit_encrypt_one)(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
101009 void (*cit_decrypt_one)(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
101010 -};
101011 +} __no_const;
101012
101013 struct hash_tfm {
101014 int (*init)(struct hash_desc *desc);
101015 @@ -538,7 +538,7 @@ struct compress_tfm {
101016 int (*cot_decompress)(struct crypto_tfm *tfm,
101017 const u8 *src, unsigned int slen,
101018 u8 *dst, unsigned int *dlen);
101019 -};
101020 +} __no_const;
101021
101022 #define crt_ablkcipher crt_u.ablkcipher
101023 #define crt_blkcipher crt_u.blkcipher
101024 diff --git a/include/linux/ctype.h b/include/linux/ctype.h
101025 index 653589e..4ef254a 100644
101026 --- a/include/linux/ctype.h
101027 +++ b/include/linux/ctype.h
101028 @@ -56,7 +56,7 @@ static inline unsigned char __toupper(unsigned char c)
101029 * Fast implementation of tolower() for internal usage. Do not use in your
101030 * code.
101031 */
101032 -static inline char _tolower(const char c)
101033 +static inline unsigned char _tolower(const unsigned char c)
101034 {
101035 return c | 0x20;
101036 }
101037 diff --git a/include/linux/dcache.h b/include/linux/dcache.h
101038 index 8a2e009..c3e6d63 100644
101039 --- a/include/linux/dcache.h
101040 +++ b/include/linux/dcache.h
101041 @@ -123,6 +123,9 @@ struct dentry {
101042 unsigned long d_time; /* used by d_revalidate */
101043 void *d_fsdata; /* fs-specific data */
101044
101045 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
101046 + atomic_t chroot_refcnt; /* tracks use of directory in chroot */
101047 +#endif
101048 struct list_head d_lru; /* LRU list */
101049 struct list_head d_child; /* child of parent list */
101050 struct list_head d_subdirs; /* our children */
101051 @@ -133,7 +136,7 @@ struct dentry {
101052 struct hlist_node d_alias; /* inode alias list */
101053 struct rcu_head d_rcu;
101054 } d_u;
101055 -};
101056 +} __randomize_layout;
101057
101058 /*
101059 * dentry->d_lock spinlock nesting subclasses:
101060 @@ -321,7 +324,7 @@ extern struct dentry *__d_lookup_rcu(const struct dentry *parent,
101061
101062 static inline unsigned d_count(const struct dentry *dentry)
101063 {
101064 - return dentry->d_lockref.count;
101065 + return __lockref_read(&dentry->d_lockref);
101066 }
101067
101068 /*
101069 @@ -350,7 +353,7 @@ extern char *dentry_path(struct dentry *, char *, int);
101070 static inline struct dentry *dget_dlock(struct dentry *dentry)
101071 {
101072 if (dentry)
101073 - dentry->d_lockref.count++;
101074 + __lockref_inc(&dentry->d_lockref);
101075 return dentry;
101076 }
101077
101078 diff --git a/include/linux/decompress/mm.h b/include/linux/decompress/mm.h
101079 index 7925bf0..d5143d2 100644
101080 --- a/include/linux/decompress/mm.h
101081 +++ b/include/linux/decompress/mm.h
101082 @@ -77,7 +77,7 @@ static void free(void *where)
101083 * warnings when not needed (indeed large_malloc / large_free are not
101084 * needed by inflate */
101085
101086 -#define malloc(a) kmalloc(a, GFP_KERNEL)
101087 +#define malloc(a) kmalloc((a), GFP_KERNEL)
101088 #define free(a) kfree(a)
101089
101090 #define large_malloc(a) vmalloc(a)
101091 diff --git a/include/linux/devfreq.h b/include/linux/devfreq.h
101092 index 68030e2..c55bb73 100644
101093 --- a/include/linux/devfreq.h
101094 +++ b/include/linux/devfreq.h
101095 @@ -117,7 +117,7 @@ struct devfreq_governor {
101096 int (*get_target_freq)(struct devfreq *this, unsigned long *freq);
101097 int (*event_handler)(struct devfreq *devfreq,
101098 unsigned int event, void *data);
101099 -};
101100 +} __do_const;
101101
101102 /**
101103 * struct devfreq - Device devfreq structure
101104 diff --git a/include/linux/device.h b/include/linux/device.h
101105 index b8f411b..49052b0 100644
101106 --- a/include/linux/device.h
101107 +++ b/include/linux/device.h
101108 @@ -342,7 +342,7 @@ struct subsys_interface {
101109 struct list_head node;
101110 int (*add_dev)(struct device *dev, struct subsys_interface *sif);
101111 void (*remove_dev)(struct device *dev, struct subsys_interface *sif);
101112 -};
101113 +} __do_const;
101114
101115 int subsys_interface_register(struct subsys_interface *sif);
101116 void subsys_interface_unregister(struct subsys_interface *sif);
101117 @@ -538,7 +538,7 @@ struct device_type {
101118 void (*release)(struct device *dev);
101119
101120 const struct dev_pm_ops *pm;
101121 -};
101122 +} __do_const;
101123
101124 /* interface for exporting device attributes */
101125 struct device_attribute {
101126 @@ -548,11 +548,12 @@ struct device_attribute {
101127 ssize_t (*store)(struct device *dev, struct device_attribute *attr,
101128 const char *buf, size_t count);
101129 };
101130 +typedef struct device_attribute __no_const device_attribute_no_const;
101131
101132 struct dev_ext_attribute {
101133 struct device_attribute attr;
101134 void *var;
101135 -};
101136 +} __do_const;
101137
101138 ssize_t device_show_ulong(struct device *dev, struct device_attribute *attr,
101139 char *buf);
101140 diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
101141 index 2e551e2..8ea30b5 100644
101142 --- a/include/linux/dma-mapping.h
101143 +++ b/include/linux/dma-mapping.h
101144 @@ -65,7 +65,7 @@ struct dma_map_ops {
101145 u64 (*get_required_mask)(struct device *dev);
101146 #endif
101147 int is_phys;
101148 -};
101149 +} __do_const;
101150
101151 #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
101152
101153 diff --git a/include/linux/efi.h b/include/linux/efi.h
101154 index 47be3ad..b2b1b58 100644
101155 --- a/include/linux/efi.h
101156 +++ b/include/linux/efi.h
101157 @@ -1094,6 +1094,7 @@ struct efivar_operations {
101158 efi_set_variable_nonblocking_t *set_variable_nonblocking;
101159 efi_query_variable_store_t *query_variable_store;
101160 };
101161 +typedef struct efivar_operations __no_const efivar_operations_no_const;
101162
101163 struct efivars {
101164 /*
101165 diff --git a/include/linux/elf.h b/include/linux/elf.h
101166 index 20fa8d8..3d0dd18 100644
101167 --- a/include/linux/elf.h
101168 +++ b/include/linux/elf.h
101169 @@ -29,6 +29,7 @@ extern Elf32_Dyn _DYNAMIC [];
101170 #define elf_note elf32_note
101171 #define elf_addr_t Elf32_Off
101172 #define Elf_Half Elf32_Half
101173 +#define elf_dyn Elf32_Dyn
101174
101175 #else
101176
101177 @@ -39,6 +40,7 @@ extern Elf64_Dyn _DYNAMIC [];
101178 #define elf_note elf64_note
101179 #define elf_addr_t Elf64_Off
101180 #define Elf_Half Elf64_Half
101181 +#define elf_dyn Elf64_Dyn
101182
101183 #endif
101184
101185 diff --git a/include/linux/err.h b/include/linux/err.h
101186 index a729120..6ede2c9 100644
101187 --- a/include/linux/err.h
101188 +++ b/include/linux/err.h
101189 @@ -20,12 +20,12 @@
101190
101191 #define IS_ERR_VALUE(x) unlikely((x) >= (unsigned long)-MAX_ERRNO)
101192
101193 -static inline void * __must_check ERR_PTR(long error)
101194 +static inline void * __must_check __intentional_overflow(-1) ERR_PTR(long error)
101195 {
101196 return (void *) error;
101197 }
101198
101199 -static inline long __must_check PTR_ERR(__force const void *ptr)
101200 +static inline long __must_check __intentional_overflow(-1) PTR_ERR(__force const void *ptr)
101201 {
101202 return (long) ptr;
101203 }
101204 diff --git a/include/linux/extcon.h b/include/linux/extcon.h
101205 index 7abf674..c0a73a0 100644
101206 --- a/include/linux/extcon.h
101207 +++ b/include/linux/extcon.h
101208 @@ -123,7 +123,7 @@ struct extcon_dev {
101209 /* /sys/class/extcon/.../mutually_exclusive/... */
101210 struct attribute_group attr_g_muex;
101211 struct attribute **attrs_muex;
101212 - struct device_attribute *d_attrs_muex;
101213 + device_attribute_no_const *d_attrs_muex;
101214 };
101215
101216 /**
101217 diff --git a/include/linux/fb.h b/include/linux/fb.h
101218 index 3d00380..ce2dbdf9 100644
101219 --- a/include/linux/fb.h
101220 +++ b/include/linux/fb.h
101221 @@ -305,7 +305,8 @@ struct fb_ops {
101222 /* called at KDB enter and leave time to prepare the console */
101223 int (*fb_debug_enter)(struct fb_info *info);
101224 int (*fb_debug_leave)(struct fb_info *info);
101225 -};
101226 +} __do_const;
101227 +typedef struct fb_ops __no_const fb_ops_no_const;
101228
101229 #ifdef CONFIG_FB_TILEBLITTING
101230 #define FB_TILE_CURSOR_NONE 0
101231 diff --git a/include/linux/fdtable.h b/include/linux/fdtable.h
101232 index 5295535..9852c7e 100644
101233 --- a/include/linux/fdtable.h
101234 +++ b/include/linux/fdtable.h
101235 @@ -105,7 +105,7 @@ struct files_struct *get_files_struct(struct task_struct *);
101236 void put_files_struct(struct files_struct *fs);
101237 void reset_files_struct(struct files_struct *);
101238 int unshare_files(struct files_struct **);
101239 -struct files_struct *dup_fd(struct files_struct *, int *);
101240 +struct files_struct *dup_fd(struct files_struct *, int *) __latent_entropy;
101241 void do_close_on_exec(struct files_struct *);
101242 int iterate_fd(struct files_struct *, unsigned,
101243 int (*)(const void *, struct file *, unsigned),
101244 diff --git a/include/linux/fs.h b/include/linux/fs.h
101245 index 3aa5142..8b8d8ee 100644
101246 --- a/include/linux/fs.h
101247 +++ b/include/linux/fs.h
101248 @@ -439,7 +439,7 @@ struct address_space {
101249 spinlock_t private_lock; /* for use by the address_space */
101250 struct list_head private_list; /* ditto */
101251 void *private_data; /* ditto */
101252 -} __attribute__((aligned(sizeof(long))));
101253 +} __attribute__((aligned(sizeof(long)))) __randomize_layout;
101254 /*
101255 * On most architectures that alignment is already the case; but
101256 * must be enforced here for CRIS, to let the least significant bit
101257 @@ -482,7 +482,7 @@ struct block_device {
101258 int bd_fsfreeze_count;
101259 /* Mutex for freeze */
101260 struct mutex bd_fsfreeze_mutex;
101261 -};
101262 +} __randomize_layout;
101263
101264 /*
101265 * Radix-tree tags, for tagging dirty and writeback pages within the pagecache
101266 @@ -677,7 +677,7 @@ struct inode {
101267 #endif
101268
101269 void *i_private; /* fs or device private pointer */
101270 -};
101271 +} __randomize_layout;
101272
101273 static inline int inode_unhashed(struct inode *inode)
101274 {
101275 @@ -872,7 +872,7 @@ struct file {
101276 struct list_head f_tfile_llink;
101277 #endif /* #ifdef CONFIG_EPOLL */
101278 struct address_space *f_mapping;
101279 -} __attribute__((aligned(4))); /* lest something weird decides that 2 is OK */
101280 +} __attribute__((aligned(4))) __randomize_layout; /* lest something weird decides that 2 is OK */
101281
101282 struct file_handle {
101283 __u32 handle_bytes;
101284 @@ -1007,7 +1007,7 @@ struct file_lock {
101285 int state; /* state of grant or error if -ve */
101286 } afs;
101287 } fl_u;
101288 -};
101289 +} __randomize_layout;
101290
101291 struct file_lock_context {
101292 spinlock_t flc_lock;
101293 @@ -1373,7 +1373,7 @@ struct super_block {
101294 /* s_inode_list_lock protects s_inodes */
101295 spinlock_t s_inode_list_lock ____cacheline_aligned_in_smp;
101296 struct list_head s_inodes; /* all inodes */
101297 -};
101298 +} __randomize_layout;
101299
101300 extern struct timespec current_fs_time(struct super_block *sb);
101301
101302 @@ -1629,7 +1629,8 @@ struct file_operations {
101303 #ifndef CONFIG_MMU
101304 unsigned (*mmap_capabilities)(struct file *);
101305 #endif
101306 -};
101307 +} __do_const __randomize_layout;
101308 +typedef struct file_operations __no_const file_operations_no_const;
101309
101310 struct inode_operations {
101311 struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int);
101312 @@ -2336,7 +2337,7 @@ extern int register_chrdev_region(dev_t, unsigned, const char *);
101313 extern int __register_chrdev(unsigned int major, unsigned int baseminor,
101314 unsigned int count, const char *name,
101315 const struct file_operations *fops);
101316 -extern void __unregister_chrdev(unsigned int major, unsigned int baseminor,
101317 +extern __nocapture(4) void __unregister_chrdev(unsigned int major, unsigned int baseminor,
101318 unsigned int count, const char *name);
101319 extern void unregister_chrdev_region(dev_t, unsigned);
101320 extern void chrdev_show(struct seq_file *,off_t);
101321 @@ -2764,8 +2765,6 @@ extern int vfs_lstat(const char __user *, struct kstat *);
101322 extern int vfs_fstat(unsigned int, struct kstat *);
101323 extern int vfs_fstatat(int , const char __user *, struct kstat *, int);
101324
101325 -extern int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd,
101326 - unsigned long arg);
101327 extern int __generic_block_fiemap(struct inode *inode,
101328 struct fiemap_extent_info *fieinfo,
101329 loff_t start, loff_t len,
101330 @@ -3026,4 +3025,14 @@ static inline bool dir_relax(struct inode *inode)
101331
101332 extern bool path_noexec(const struct path *path);
101333
101334 +static inline bool is_sidechannel_device(const struct inode *inode)
101335 +{
101336 +#ifdef CONFIG_GRKERNSEC_DEVICE_SIDECHANNEL
101337 + umode_t mode = inode->i_mode;
101338 + return ((S_ISCHR(mode) || S_ISBLK(mode)) && (mode & (S_IROTH | S_IWOTH)));
101339 +#else
101340 + return false;
101341 +#endif
101342 +}
101343 +
101344 #endif /* _LINUX_FS_H */
101345 diff --git a/include/linux/fs_struct.h b/include/linux/fs_struct.h
101346 index 0efc3e6..fd23610 100644
101347 --- a/include/linux/fs_struct.h
101348 +++ b/include/linux/fs_struct.h
101349 @@ -6,13 +6,13 @@
101350 #include <linux/seqlock.h>
101351
101352 struct fs_struct {
101353 - int users;
101354 + atomic_t users;
101355 spinlock_t lock;
101356 seqcount_t seq;
101357 int umask;
101358 int in_exec;
101359 struct path root, pwd;
101360 -};
101361 +} __randomize_layout;
101362
101363 extern struct kmem_cache *fs_cachep;
101364
101365 diff --git a/include/linux/fscache-cache.h b/include/linux/fscache-cache.h
101366 index 604e152..5954d0d 100644
101367 --- a/include/linux/fscache-cache.h
101368 +++ b/include/linux/fscache-cache.h
101369 @@ -117,7 +117,7 @@ struct fscache_operation {
101370 fscache_operation_release_t release;
101371 };
101372
101373 -extern atomic_t fscache_op_debug_id;
101374 +extern atomic_unchecked_t fscache_op_debug_id;
101375 extern void fscache_op_work_func(struct work_struct *work);
101376
101377 extern void fscache_enqueue_operation(struct fscache_operation *);
101378 diff --git a/include/linux/fscache.h b/include/linux/fscache.h
101379 index 115bb81..e7b812b 100644
101380 --- a/include/linux/fscache.h
101381 +++ b/include/linux/fscache.h
101382 @@ -152,7 +152,7 @@ struct fscache_cookie_def {
101383 * - this is mandatory for any object that may have data
101384 */
101385 void (*now_uncached)(void *cookie_netfs_data);
101386 -};
101387 +} __do_const;
101388
101389 /*
101390 * fscache cached network filesystem type
101391 diff --git a/include/linux/fsnotify.h b/include/linux/fsnotify.h
101392 index 7ee1774..72505b8 100644
101393 --- a/include/linux/fsnotify.h
101394 +++ b/include/linux/fsnotify.h
101395 @@ -197,6 +197,9 @@ static inline void fsnotify_access(struct file *file)
101396 struct inode *inode = file_inode(file);
101397 __u32 mask = FS_ACCESS;
101398
101399 + if (is_sidechannel_device(inode))
101400 + return;
101401 +
101402 if (S_ISDIR(inode->i_mode))
101403 mask |= FS_ISDIR;
101404
101405 @@ -215,6 +218,9 @@ static inline void fsnotify_modify(struct file *file)
101406 struct inode *inode = file_inode(file);
101407 __u32 mask = FS_MODIFY;
101408
101409 + if (is_sidechannel_device(inode))
101410 + return;
101411 +
101412 if (S_ISDIR(inode->i_mode))
101413 mask |= FS_ISDIR;
101414
101415 @@ -317,7 +323,7 @@ static inline void fsnotify_change(struct dentry *dentry, unsigned int ia_valid)
101416 */
101417 static inline const unsigned char *fsnotify_oldname_init(const unsigned char *name)
101418 {
101419 - return kstrdup(name, GFP_KERNEL);
101420 + return (const unsigned char *)kstrdup((const char *)name, GFP_KERNEL);
101421 }
101422
101423 /*
101424 diff --git a/include/linux/genhd.h b/include/linux/genhd.h
101425 index 847cc1d..2d2699a 100644
101426 --- a/include/linux/genhd.h
101427 +++ b/include/linux/genhd.h
101428 @@ -207,7 +207,7 @@ struct gendisk {
101429 struct kobject *slave_dir;
101430
101431 struct timer_rand_state *random;
101432 - atomic_t sync_io; /* RAID */
101433 + atomic_unchecked_t sync_io; /* RAID */
101434 struct disk_events *ev;
101435 #ifdef CONFIG_BLK_DEV_INTEGRITY
101436 struct kobject integrity_kobj;
101437 @@ -448,7 +448,7 @@ extern void disk_flush_events(struct gendisk *disk, unsigned int mask);
101438 extern unsigned int disk_clear_events(struct gendisk *disk, unsigned int mask);
101439
101440 /* drivers/char/random.c */
101441 -extern void add_disk_randomness(struct gendisk *disk);
101442 +extern void add_disk_randomness(struct gendisk *disk) __latent_entropy;
101443 extern void rand_initialize_disk(struct gendisk *disk);
101444
101445 static inline sector_t get_start_sect(struct block_device *bdev)
101446 diff --git a/include/linux/genl_magic_func.h b/include/linux/genl_magic_func.h
101447 index 667c311..abac2a7 100644
101448 --- a/include/linux/genl_magic_func.h
101449 +++ b/include/linux/genl_magic_func.h
101450 @@ -246,7 +246,7 @@ const char *CONCAT_(GENL_MAGIC_FAMILY, _genl_cmd_to_str)(__u8 cmd)
101451 },
101452
101453 #define ZZZ_genl_ops CONCAT_(GENL_MAGIC_FAMILY, _genl_ops)
101454 -static struct genl_ops ZZZ_genl_ops[] __read_mostly = {
101455 +static struct genl_ops ZZZ_genl_ops[] = {
101456 #include GENL_MAGIC_INCLUDE_FILE
101457 };
101458
101459 diff --git a/include/linux/genl_magic_struct.h b/include/linux/genl_magic_struct.h
101460 index eecd19b..391d1957 100644
101461 --- a/include/linux/genl_magic_struct.h
101462 +++ b/include/linux/genl_magic_struct.h
101463 @@ -76,8 +76,8 @@ extern void CONCAT_(GENL_MAGIC_FAMILY, _genl_unregister)(void);
101464 __field(attr_nr, attr_flag, name, NLA_U32, __u32, \
101465 nla_get_u32, nla_put_u32, false)
101466 #define __s32_field(attr_nr, attr_flag, name) \
101467 - __field(attr_nr, attr_flag, name, NLA_U32, __s32, \
101468 - nla_get_u32, nla_put_u32, true)
101469 + __field(attr_nr, attr_flag, name, NLA_S32, __s32, \
101470 + nla_get_s32, nla_put_s32, true)
101471 #define __u64_field(attr_nr, attr_flag, name) \
101472 __field(attr_nr, attr_flag, name, NLA_U64, __u64, \
101473 nla_get_u64, nla_put_u64, false)
101474 diff --git a/include/linux/gfp.h b/include/linux/gfp.h
101475 index 8942af0..2c247c14 100644
101476 --- a/include/linux/gfp.h
101477 +++ b/include/linux/gfp.h
101478 @@ -36,6 +36,13 @@ struct vm_area_struct;
101479 #define ___GFP_OTHER_NODE 0x800000u
101480 #define ___GFP_WRITE 0x1000000u
101481 #define ___GFP_KSWAPD_RECLAIM 0x2000000u
101482 +
101483 +#ifdef CONFIG_PAX_USERCOPY_SLABS
101484 +#define ___GFP_USERCOPY 0x4000000u
101485 +#else
101486 +#define ___GFP_USERCOPY 0
101487 +#endif
101488 +
101489 /* If the above are modified, __GFP_BITS_SHIFT may need updating */
101490
101491 /*
101492 @@ -78,6 +85,7 @@ struct vm_area_struct;
101493 #define __GFP_WRITE ((__force gfp_t)___GFP_WRITE)
101494 #define __GFP_HARDWALL ((__force gfp_t)___GFP_HARDWALL)
101495 #define __GFP_THISNODE ((__force gfp_t)___GFP_THISNODE)
101496 +#define __GFP_USERCOPY ((__force gfp_t)___GFP_USERCOPY)/* Allocator intends to copy page to/from userland */
101497
101498 /*
101499 * Watermark modifiers -- controls access to emergency reserves
101500 @@ -183,7 +191,7 @@ struct vm_area_struct;
101501 #define __GFP_OTHER_NODE ((__force gfp_t)___GFP_OTHER_NODE)
101502
101503 /* Room for N __GFP_FOO bits */
101504 -#define __GFP_BITS_SHIFT 26
101505 +#define __GFP_BITS_SHIFT 27
101506 #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1))
101507
101508 /*
101509 @@ -250,6 +258,8 @@ struct vm_area_struct;
101510 __GFP_NOMEMALLOC | __GFP_NORETRY | __GFP_NOWARN) & \
101511 ~__GFP_KSWAPD_RECLAIM)
101512
101513 +#define GFP_USERCOPY __GFP_USERCOPY
101514 +
101515 /* Convert GFP flags to their corresponding migrate type */
101516 #define GFP_MOVABLE_MASK (__GFP_RECLAIMABLE|__GFP_MOVABLE)
101517 #define GFP_MOVABLE_SHIFT 3
101518 diff --git a/include/linux/gracl.h b/include/linux/gracl.h
101519 new file mode 100644
101520 index 0000000..91858e4
101521 --- /dev/null
101522 +++ b/include/linux/gracl.h
101523 @@ -0,0 +1,342 @@
101524 +#ifndef GR_ACL_H
101525 +#define GR_ACL_H
101526 +
101527 +#include <linux/grdefs.h>
101528 +#include <linux/resource.h>
101529 +#include <linux/capability.h>
101530 +#include <linux/dcache.h>
101531 +#include <asm/resource.h>
101532 +
101533 +/* Major status information */
101534 +
101535 +#define GR_VERSION "grsecurity 3.1"
101536 +#define GRSECURITY_VERSION 0x3100
101537 +
101538 +enum {
101539 + GR_SHUTDOWN = 0,
101540 + GR_ENABLE = 1,
101541 + GR_SPROLE = 2,
101542 + GR_OLDRELOAD = 3,
101543 + GR_SEGVMOD = 4,
101544 + GR_STATUS = 5,
101545 + GR_UNSPROLE = 6,
101546 + GR_PASSSET = 7,
101547 + GR_SPROLEPAM = 8,
101548 + GR_RELOAD = 9,
101549 +};
101550 +
101551 +/* Password setup definitions
101552 + * kernel/grhash.c */
101553 +enum {
101554 + GR_PW_LEN = 128,
101555 + GR_SALT_LEN = 16,
101556 + GR_SHA_LEN = 32,
101557 +};
101558 +
101559 +enum {
101560 + GR_SPROLE_LEN = 64,
101561 +};
101562 +
101563 +enum {
101564 + GR_NO_GLOB = 0,
101565 + GR_REG_GLOB,
101566 + GR_CREATE_GLOB
101567 +};
101568 +
101569 +#define GR_NLIMITS 32
101570 +
101571 +/* Begin Data Structures */
101572 +
101573 +struct sprole_pw {
101574 + unsigned char *rolename;
101575 + unsigned char salt[GR_SALT_LEN];
101576 + unsigned char sum[GR_SHA_LEN]; /* 256-bit SHA hash of the password */
101577 +};
101578 +
101579 +struct name_entry {
101580 + __u32 key;
101581 + u64 inode;
101582 + dev_t device;
101583 + char *name;
101584 + __u16 len;
101585 + __u8 deleted;
101586 + struct name_entry *prev;
101587 + struct name_entry *next;
101588 +};
101589 +
101590 +struct inodev_entry {
101591 + struct name_entry *nentry;
101592 + struct inodev_entry *prev;
101593 + struct inodev_entry *next;
101594 +};
101595 +
101596 +struct acl_role_db {
101597 + struct acl_role_label **r_hash;
101598 + __u32 r_size;
101599 +};
101600 +
101601 +struct inodev_db {
101602 + struct inodev_entry **i_hash;
101603 + __u32 i_size;
101604 +};
101605 +
101606 +struct name_db {
101607 + struct name_entry **n_hash;
101608 + __u32 n_size;
101609 +};
101610 +
101611 +struct crash_uid {
101612 + uid_t uid;
101613 + unsigned long expires;
101614 +};
101615 +
101616 +struct gr_hash_struct {
101617 + void **table;
101618 + void **nametable;
101619 + void *first;
101620 + __u32 table_size;
101621 + __u32 used_size;
101622 + int type;
101623 +};
101624 +
101625 +/* Userspace Grsecurity ACL data structures */
101626 +
101627 +struct acl_subject_label {
101628 + char *filename;
101629 + u64 inode;
101630 + dev_t device;
101631 + __u32 mode;
101632 + kernel_cap_t cap_mask;
101633 + kernel_cap_t cap_lower;
101634 + kernel_cap_t cap_invert_audit;
101635 +
101636 + struct rlimit res[GR_NLIMITS];
101637 + __u32 resmask;
101638 +
101639 + __u8 user_trans_type;
101640 + __u8 group_trans_type;
101641 + uid_t *user_transitions;
101642 + gid_t *group_transitions;
101643 + __u16 user_trans_num;
101644 + __u16 group_trans_num;
101645 +
101646 + __u32 sock_families[2];
101647 + __u32 ip_proto[8];
101648 + __u32 ip_type;
101649 + struct acl_ip_label **ips;
101650 + __u32 ip_num;
101651 + __u32 inaddr_any_override;
101652 +
101653 + __u32 crashes;
101654 + unsigned long expires;
101655 +
101656 + struct acl_subject_label *parent_subject;
101657 + struct gr_hash_struct *hash;
101658 + struct acl_subject_label *prev;
101659 + struct acl_subject_label *next;
101660 +
101661 + struct acl_object_label **obj_hash;
101662 + __u32 obj_hash_size;
101663 + __u16 pax_flags;
101664 +};
101665 +
101666 +struct role_allowed_ip {
101667 + __u32 addr;
101668 + __u32 netmask;
101669 +
101670 + struct role_allowed_ip *prev;
101671 + struct role_allowed_ip *next;
101672 +};
101673 +
101674 +struct role_transition {
101675 + char *rolename;
101676 +
101677 + struct role_transition *prev;
101678 + struct role_transition *next;
101679 +};
101680 +
101681 +struct acl_role_label {
101682 + char *rolename;
101683 + uid_t uidgid;
101684 + __u16 roletype;
101685 +
101686 + __u16 auth_attempts;
101687 + unsigned long expires;
101688 +
101689 + struct acl_subject_label *root_label;
101690 + struct gr_hash_struct *hash;
101691 +
101692 + struct acl_role_label *prev;
101693 + struct acl_role_label *next;
101694 +
101695 + struct role_transition *transitions;
101696 + struct role_allowed_ip *allowed_ips;
101697 + uid_t *domain_children;
101698 + __u16 domain_child_num;
101699 +
101700 + umode_t umask;
101701 +
101702 + struct acl_subject_label **subj_hash;
101703 + __u32 subj_hash_size;
101704 +};
101705 +
101706 +struct user_acl_role_db {
101707 + struct acl_role_label **r_table;
101708 + __u32 num_pointers; /* Number of allocations to track */
101709 + __u32 num_roles; /* Number of roles */
101710 + __u32 num_domain_children; /* Number of domain children */
101711 + __u32 num_subjects; /* Number of subjects */
101712 + __u32 num_objects; /* Number of objects */
101713 +};
101714 +
101715 +struct acl_object_label {
101716 + char *filename;
101717 + u64 inode;
101718 + dev_t device;
101719 + __u32 mode;
101720 +
101721 + struct acl_subject_label *nested;
101722 + struct acl_object_label *globbed;
101723 +
101724 + /* next two structures not used */
101725 +
101726 + struct acl_object_label *prev;
101727 + struct acl_object_label *next;
101728 +};
101729 +
101730 +struct acl_ip_label {
101731 + char *iface;
101732 + __u32 addr;
101733 + __u32 netmask;
101734 + __u16 low, high;
101735 + __u8 mode;
101736 + __u32 type;
101737 + __u32 proto[8];
101738 +
101739 + /* next two structures not used */
101740 +
101741 + struct acl_ip_label *prev;
101742 + struct acl_ip_label *next;
101743 +};
101744 +
101745 +struct gr_arg {
101746 + struct user_acl_role_db role_db;
101747 + unsigned char pw[GR_PW_LEN];
101748 + unsigned char salt[GR_SALT_LEN];
101749 + unsigned char sum[GR_SHA_LEN];
101750 + unsigned char sp_role[GR_SPROLE_LEN];
101751 + struct sprole_pw *sprole_pws;
101752 + dev_t segv_device;
101753 + u64 segv_inode;
101754 + uid_t segv_uid;
101755 + __u16 num_sprole_pws;
101756 + __u16 mode;
101757 +};
101758 +
101759 +struct gr_arg_wrapper {
101760 + struct gr_arg *arg;
101761 + __u32 version;
101762 + __u32 size;
101763 +};
101764 +
101765 +struct subject_map {
101766 + struct acl_subject_label *user;
101767 + struct acl_subject_label *kernel;
101768 + struct subject_map *prev;
101769 + struct subject_map *next;
101770 +};
101771 +
101772 +struct acl_subj_map_db {
101773 + struct subject_map **s_hash;
101774 + __u32 s_size;
101775 +};
101776 +
101777 +struct gr_policy_state {
101778 + struct sprole_pw **acl_special_roles;
101779 + __u16 num_sprole_pws;
101780 + struct acl_role_label *kernel_role;
101781 + struct acl_role_label *role_list;
101782 + struct acl_role_label *default_role;
101783 + struct acl_role_db acl_role_set;
101784 + struct acl_subj_map_db subj_map_set;
101785 + struct name_db name_set;
101786 + struct inodev_db inodev_set;
101787 +};
101788 +
101789 +struct gr_alloc_state {
101790 + unsigned long alloc_stack_next;
101791 + unsigned long alloc_stack_size;
101792 + void **alloc_stack;
101793 +};
101794 +
101795 +struct gr_reload_state {
101796 + struct gr_policy_state oldpolicy;
101797 + struct gr_alloc_state oldalloc;
101798 + struct gr_policy_state newpolicy;
101799 + struct gr_alloc_state newalloc;
101800 + struct gr_policy_state *oldpolicy_ptr;
101801 + struct gr_alloc_state *oldalloc_ptr;
101802 + unsigned char oldmode;
101803 +};
101804 +
101805 +/* End Data Structures Section */
101806 +
101807 +/* Hash functions generated by empirical testing by Brad Spengler
101808 + Makes good use of the low bits of the inode. Generally 0-1 times
101809 + in loop for successful match. 0-3 for unsuccessful match.
101810 + Shift/add algorithm with modulus of table size and an XOR*/
101811 +
101812 +static __inline__ unsigned int
101813 +gr_rhash(const uid_t uid, const __u16 type, const unsigned int sz)
101814 +{
101815 + return ((((uid + type) << (16 + type)) ^ uid) % sz);
101816 +}
101817 +
101818 + static __inline__ unsigned int
101819 +gr_shash(const struct acl_subject_label *userp, const unsigned int sz)
101820 +{
101821 + return ((const unsigned long)userp % sz);
101822 +}
101823 +
101824 +static __inline__ unsigned int
101825 +gr_fhash(const u64 ino, const dev_t dev, const unsigned int sz)
101826 +{
101827 + unsigned int rem;
101828 + div_u64_rem((ino + dev) ^ ((ino << 13) + (ino << 23) + (dev << 9)), sz, &rem);
101829 + return rem;
101830 +}
101831 +
101832 +static __inline__ unsigned int
101833 +gr_nhash(const char *name, const __u16 len, const unsigned int sz)
101834 +{
101835 + return full_name_hash((const unsigned char *)name, len) % sz;
101836 +}
101837 +
101838 +#define FOR_EACH_SUBJECT_START(role,subj,iter) \
101839 + subj = NULL; \
101840 + iter = 0; \
101841 + while (iter < role->subj_hash_size) { \
101842 + if (subj == NULL) \
101843 + subj = role->subj_hash[iter]; \
101844 + if (subj == NULL) { \
101845 + iter++; \
101846 + continue; \
101847 + }
101848 +
101849 +#define FOR_EACH_SUBJECT_END(subj,iter) \
101850 + subj = subj->next; \
101851 + if (subj == NULL) \
101852 + iter++; \
101853 + }
101854 +
101855 +
101856 +#define FOR_EACH_NESTED_SUBJECT_START(role,subj) \
101857 + subj = role->hash->first; \
101858 + while (subj != NULL) {
101859 +
101860 +#define FOR_EACH_NESTED_SUBJECT_END(subj) \
101861 + subj = subj->next; \
101862 + }
101863 +
101864 +#endif
101865 +
101866 diff --git a/include/linux/gracl_compat.h b/include/linux/gracl_compat.h
101867 new file mode 100644
101868 index 0000000..af64092
101869 --- /dev/null
101870 +++ b/include/linux/gracl_compat.h
101871 @@ -0,0 +1,156 @@
101872 +#ifndef GR_ACL_COMPAT_H
101873 +#define GR_ACL_COMPAT_H
101874 +
101875 +#include <linux/resource.h>
101876 +#include <asm/resource.h>
101877 +
101878 +struct sprole_pw_compat {
101879 + compat_uptr_t rolename;
101880 + unsigned char salt[GR_SALT_LEN];
101881 + unsigned char sum[GR_SHA_LEN];
101882 +};
101883 +
101884 +struct gr_hash_struct_compat {
101885 + compat_uptr_t table;
101886 + compat_uptr_t nametable;
101887 + compat_uptr_t first;
101888 + __u32 table_size;
101889 + __u32 used_size;
101890 + int type;
101891 +};
101892 +
101893 +struct acl_subject_label_compat {
101894 + compat_uptr_t filename;
101895 + compat_u64 inode;
101896 + __u32 device;
101897 + __u32 mode;
101898 + kernel_cap_t cap_mask;
101899 + kernel_cap_t cap_lower;
101900 + kernel_cap_t cap_invert_audit;
101901 +
101902 + struct compat_rlimit res[GR_NLIMITS];
101903 + __u32 resmask;
101904 +
101905 + __u8 user_trans_type;
101906 + __u8 group_trans_type;
101907 + compat_uptr_t user_transitions;
101908 + compat_uptr_t group_transitions;
101909 + __u16 user_trans_num;
101910 + __u16 group_trans_num;
101911 +
101912 + __u32 sock_families[2];
101913 + __u32 ip_proto[8];
101914 + __u32 ip_type;
101915 + compat_uptr_t ips;
101916 + __u32 ip_num;
101917 + __u32 inaddr_any_override;
101918 +
101919 + __u32 crashes;
101920 + compat_ulong_t expires;
101921 +
101922 + compat_uptr_t parent_subject;
101923 + compat_uptr_t hash;
101924 + compat_uptr_t prev;
101925 + compat_uptr_t next;
101926 +
101927 + compat_uptr_t obj_hash;
101928 + __u32 obj_hash_size;
101929 + __u16 pax_flags;
101930 +};
101931 +
101932 +struct role_allowed_ip_compat {
101933 + __u32 addr;
101934 + __u32 netmask;
101935 +
101936 + compat_uptr_t prev;
101937 + compat_uptr_t next;
101938 +};
101939 +
101940 +struct role_transition_compat {
101941 + compat_uptr_t rolename;
101942 +
101943 + compat_uptr_t prev;
101944 + compat_uptr_t next;
101945 +};
101946 +
101947 +struct acl_role_label_compat {
101948 + compat_uptr_t rolename;
101949 + uid_t uidgid;
101950 + __u16 roletype;
101951 +
101952 + __u16 auth_attempts;
101953 + compat_ulong_t expires;
101954 +
101955 + compat_uptr_t root_label;
101956 + compat_uptr_t hash;
101957 +
101958 + compat_uptr_t prev;
101959 + compat_uptr_t next;
101960 +
101961 + compat_uptr_t transitions;
101962 + compat_uptr_t allowed_ips;
101963 + compat_uptr_t domain_children;
101964 + __u16 domain_child_num;
101965 +
101966 + umode_t umask;
101967 +
101968 + compat_uptr_t subj_hash;
101969 + __u32 subj_hash_size;
101970 +};
101971 +
101972 +struct user_acl_role_db_compat {
101973 + compat_uptr_t r_table;
101974 + __u32 num_pointers;
101975 + __u32 num_roles;
101976 + __u32 num_domain_children;
101977 + __u32 num_subjects;
101978 + __u32 num_objects;
101979 +};
101980 +
101981 +struct acl_object_label_compat {
101982 + compat_uptr_t filename;
101983 + compat_u64 inode;
101984 + __u32 device;
101985 + __u32 mode;
101986 +
101987 + compat_uptr_t nested;
101988 + compat_uptr_t globbed;
101989 +
101990 + compat_uptr_t prev;
101991 + compat_uptr_t next;
101992 +};
101993 +
101994 +struct acl_ip_label_compat {
101995 + compat_uptr_t iface;
101996 + __u32 addr;
101997 + __u32 netmask;
101998 + __u16 low, high;
101999 + __u8 mode;
102000 + __u32 type;
102001 + __u32 proto[8];
102002 +
102003 + compat_uptr_t prev;
102004 + compat_uptr_t next;
102005 +};
102006 +
102007 +struct gr_arg_compat {
102008 + struct user_acl_role_db_compat role_db;
102009 + unsigned char pw[GR_PW_LEN];
102010 + unsigned char salt[GR_SALT_LEN];
102011 + unsigned char sum[GR_SHA_LEN];
102012 + unsigned char sp_role[GR_SPROLE_LEN];
102013 + compat_uptr_t sprole_pws;
102014 + __u32 segv_device;
102015 + compat_u64 segv_inode;
102016 + uid_t segv_uid;
102017 + __u16 num_sprole_pws;
102018 + __u16 mode;
102019 +};
102020 +
102021 +struct gr_arg_wrapper_compat {
102022 + compat_uptr_t arg;
102023 + __u32 version;
102024 + __u32 size;
102025 +};
102026 +
102027 +#endif
102028 diff --git a/include/linux/gralloc.h b/include/linux/gralloc.h
102029 new file mode 100644
102030 index 0000000..323ecf2
102031 --- /dev/null
102032 +++ b/include/linux/gralloc.h
102033 @@ -0,0 +1,9 @@
102034 +#ifndef __GRALLOC_H
102035 +#define __GRALLOC_H
102036 +
102037 +void acl_free_all(void);
102038 +int acl_alloc_stack_init(unsigned long size);
102039 +void *acl_alloc(unsigned long len);
102040 +void *acl_alloc_num(unsigned long num, unsigned long len);
102041 +
102042 +#endif
102043 diff --git a/include/linux/grdefs.h b/include/linux/grdefs.h
102044 new file mode 100644
102045 index 0000000..be66033
102046 --- /dev/null
102047 +++ b/include/linux/grdefs.h
102048 @@ -0,0 +1,140 @@
102049 +#ifndef GRDEFS_H
102050 +#define GRDEFS_H
102051 +
102052 +/* Begin grsecurity status declarations */
102053 +
102054 +enum {
102055 + GR_READY = 0x01,
102056 + GR_STATUS_INIT = 0x00 // disabled state
102057 +};
102058 +
102059 +/* Begin ACL declarations */
102060 +
102061 +/* Role flags */
102062 +
102063 +enum {
102064 + GR_ROLE_USER = 0x0001,
102065 + GR_ROLE_GROUP = 0x0002,
102066 + GR_ROLE_DEFAULT = 0x0004,
102067 + GR_ROLE_SPECIAL = 0x0008,
102068 + GR_ROLE_AUTH = 0x0010,
102069 + GR_ROLE_NOPW = 0x0020,
102070 + GR_ROLE_GOD = 0x0040,
102071 + GR_ROLE_LEARN = 0x0080,
102072 + GR_ROLE_TPE = 0x0100,
102073 + GR_ROLE_DOMAIN = 0x0200,
102074 + GR_ROLE_PAM = 0x0400,
102075 + GR_ROLE_PERSIST = 0x0800
102076 +};
102077 +
102078 +/* ACL Subject and Object mode flags */
102079 +enum {
102080 + GR_DELETED = 0x80000000
102081 +};
102082 +
102083 +/* ACL Object-only mode flags */
102084 +enum {
102085 + GR_READ = 0x00000001,
102086 + GR_APPEND = 0x00000002,
102087 + GR_WRITE = 0x00000004,
102088 + GR_EXEC = 0x00000008,
102089 + GR_FIND = 0x00000010,
102090 + GR_INHERIT = 0x00000020,
102091 + GR_SETID = 0x00000040,
102092 + GR_CREATE = 0x00000080,
102093 + GR_DELETE = 0x00000100,
102094 + GR_LINK = 0x00000200,
102095 + GR_AUDIT_READ = 0x00000400,
102096 + GR_AUDIT_APPEND = 0x00000800,
102097 + GR_AUDIT_WRITE = 0x00001000,
102098 + GR_AUDIT_EXEC = 0x00002000,
102099 + GR_AUDIT_FIND = 0x00004000,
102100 + GR_AUDIT_INHERIT= 0x00008000,
102101 + GR_AUDIT_SETID = 0x00010000,
102102 + GR_AUDIT_CREATE = 0x00020000,
102103 + GR_AUDIT_DELETE = 0x00040000,
102104 + GR_AUDIT_LINK = 0x00080000,
102105 + GR_PTRACERD = 0x00100000,
102106 + GR_NOPTRACE = 0x00200000,
102107 + GR_SUPPRESS = 0x00400000,
102108 + GR_NOLEARN = 0x00800000,
102109 + GR_INIT_TRANSFER= 0x01000000
102110 +};
102111 +
102112 +#define GR_AUDITS (GR_AUDIT_READ | GR_AUDIT_WRITE | GR_AUDIT_APPEND | GR_AUDIT_EXEC | \
102113 + GR_AUDIT_FIND | GR_AUDIT_INHERIT | GR_AUDIT_SETID | \
102114 + GR_AUDIT_CREATE | GR_AUDIT_DELETE | GR_AUDIT_LINK)
102115 +
102116 +/* ACL subject-only mode flags */
102117 +enum {
102118 + GR_KILL = 0x00000001,
102119 + GR_VIEW = 0x00000002,
102120 + GR_PROTECTED = 0x00000004,
102121 + GR_LEARN = 0x00000008,
102122 + GR_OVERRIDE = 0x00000010,
102123 + /* just a placeholder, this mode is only used in userspace */
102124 + GR_DUMMY = 0x00000020,
102125 + GR_PROTSHM = 0x00000040,
102126 + GR_KILLPROC = 0x00000080,
102127 + GR_KILLIPPROC = 0x00000100,
102128 + /* just a placeholder, this mode is only used in userspace */
102129 + GR_NOTROJAN = 0x00000200,
102130 + GR_PROTPROCFD = 0x00000400,
102131 + GR_PROCACCT = 0x00000800,
102132 + GR_RELAXPTRACE = 0x00001000,
102133 + //GR_NESTED = 0x00002000,
102134 + GR_INHERITLEARN = 0x00004000,
102135 + GR_PROCFIND = 0x00008000,
102136 + GR_POVERRIDE = 0x00010000,
102137 + GR_KERNELAUTH = 0x00020000,
102138 + GR_ATSECURE = 0x00040000,
102139 + GR_SHMEXEC = 0x00080000
102140 +};
102141 +
102142 +enum {
102143 + GR_PAX_ENABLE_SEGMEXEC = 0x0001,
102144 + GR_PAX_ENABLE_PAGEEXEC = 0x0002,
102145 + GR_PAX_ENABLE_MPROTECT = 0x0004,
102146 + GR_PAX_ENABLE_RANDMMAP = 0x0008,
102147 + GR_PAX_ENABLE_EMUTRAMP = 0x0010,
102148 + GR_PAX_DISABLE_SEGMEXEC = 0x0100,
102149 + GR_PAX_DISABLE_PAGEEXEC = 0x0200,
102150 + GR_PAX_DISABLE_MPROTECT = 0x0400,
102151 + GR_PAX_DISABLE_RANDMMAP = 0x0800,
102152 + GR_PAX_DISABLE_EMUTRAMP = 0x1000,
102153 +};
102154 +
102155 +enum {
102156 + GR_ID_USER = 0x01,
102157 + GR_ID_GROUP = 0x02,
102158 +};
102159 +
102160 +enum {
102161 + GR_ID_ALLOW = 0x01,
102162 + GR_ID_DENY = 0x02,
102163 +};
102164 +
102165 +#define GR_CRASH_RES 31
102166 +#define GR_UIDTABLE_MAX 500
102167 +
102168 +/* begin resource learning section */
102169 +enum {
102170 + GR_RLIM_CPU_BUMP = 60,
102171 + GR_RLIM_FSIZE_BUMP = 50000,
102172 + GR_RLIM_DATA_BUMP = 10000,
102173 + GR_RLIM_STACK_BUMP = 1000,
102174 + GR_RLIM_CORE_BUMP = 10000,
102175 + GR_RLIM_RSS_BUMP = 500000,
102176 + GR_RLIM_NPROC_BUMP = 1,
102177 + GR_RLIM_NOFILE_BUMP = 5,
102178 + GR_RLIM_MEMLOCK_BUMP = 50000,
102179 + GR_RLIM_AS_BUMP = 500000,
102180 + GR_RLIM_LOCKS_BUMP = 2,
102181 + GR_RLIM_SIGPENDING_BUMP = 5,
102182 + GR_RLIM_MSGQUEUE_BUMP = 10000,
102183 + GR_RLIM_NICE_BUMP = 1,
102184 + GR_RLIM_RTPRIO_BUMP = 1,
102185 + GR_RLIM_RTTIME_BUMP = 1000000
102186 +};
102187 +
102188 +#endif
102189 diff --git a/include/linux/grinternal.h b/include/linux/grinternal.h
102190 new file mode 100644
102191 index 0000000..1dbf9c8
102192 --- /dev/null
102193 +++ b/include/linux/grinternal.h
102194 @@ -0,0 +1,231 @@
102195 +#ifndef __GRINTERNAL_H
102196 +#define __GRINTERNAL_H
102197 +
102198 +#ifdef CONFIG_GRKERNSEC
102199 +
102200 +#include <linux/fs.h>
102201 +#include <linux/mnt_namespace.h>
102202 +#include <linux/nsproxy.h>
102203 +#include <linux/gracl.h>
102204 +#include <linux/grdefs.h>
102205 +#include <linux/grmsg.h>
102206 +
102207 +void gr_add_learn_entry(const char *fmt, ...)
102208 + __attribute__ ((format (printf, 1, 2)));
102209 +__u32 gr_search_file(const struct dentry *dentry, const __u32 mode,
102210 + const struct vfsmount *mnt);
102211 +__u32 gr_check_create(const struct dentry *new_dentry,
102212 + const struct dentry *parent,
102213 + const struct vfsmount *mnt, const __u32 mode);
102214 +int gr_check_protected_task(const struct task_struct *task);
102215 +__u32 to_gr_audit(const __u32 reqmode);
102216 +int gr_set_acls(const int type);
102217 +int gr_acl_is_enabled(void);
102218 +char gr_roletype_to_char(void);
102219 +
102220 +void gr_handle_alertkill(struct task_struct *task);
102221 +char *gr_to_filename(const struct dentry *dentry,
102222 + const struct vfsmount *mnt);
102223 +char *gr_to_filename1(const struct dentry *dentry,
102224 + const struct vfsmount *mnt);
102225 +char *gr_to_filename2(const struct dentry *dentry,
102226 + const struct vfsmount *mnt);
102227 +char *gr_to_filename3(const struct dentry *dentry,
102228 + const struct vfsmount *mnt);
102229 +
102230 +extern int grsec_enable_ptrace_readexec;
102231 +extern int grsec_enable_harden_ptrace;
102232 +extern int grsec_enable_link;
102233 +extern int grsec_enable_fifo;
102234 +extern int grsec_enable_execve;
102235 +extern int grsec_enable_shm;
102236 +extern int grsec_enable_execlog;
102237 +extern int grsec_enable_signal;
102238 +extern int grsec_enable_audit_ptrace;
102239 +extern int grsec_enable_forkfail;
102240 +extern int grsec_enable_time;
102241 +extern int grsec_enable_rofs;
102242 +extern int grsec_deny_new_usb;
102243 +extern int grsec_enable_chroot_shmat;
102244 +extern int grsec_enable_chroot_mount;
102245 +extern int grsec_enable_chroot_double;
102246 +extern int grsec_enable_chroot_pivot;
102247 +extern int grsec_enable_chroot_chdir;
102248 +extern int grsec_enable_chroot_chmod;
102249 +extern int grsec_enable_chroot_mknod;
102250 +extern int grsec_enable_chroot_fchdir;
102251 +extern int grsec_enable_chroot_nice;
102252 +extern int grsec_enable_chroot_execlog;
102253 +extern int grsec_enable_chroot_caps;
102254 +extern int grsec_enable_chroot_rename;
102255 +extern int grsec_enable_chroot_sysctl;
102256 +extern int grsec_enable_chroot_unix;
102257 +extern int grsec_enable_symlinkown;
102258 +extern kgid_t grsec_symlinkown_gid;
102259 +extern int grsec_enable_tpe;
102260 +extern kgid_t grsec_tpe_gid;
102261 +extern int grsec_enable_tpe_all;
102262 +extern int grsec_enable_tpe_invert;
102263 +extern int grsec_enable_socket_all;
102264 +extern kgid_t grsec_socket_all_gid;
102265 +extern int grsec_enable_socket_client;
102266 +extern kgid_t grsec_socket_client_gid;
102267 +extern int grsec_enable_socket_server;
102268 +extern kgid_t grsec_socket_server_gid;
102269 +extern kgid_t grsec_audit_gid;
102270 +extern int grsec_enable_group;
102271 +extern int grsec_enable_log_rwxmaps;
102272 +extern int grsec_enable_mount;
102273 +extern int grsec_enable_chdir;
102274 +extern int grsec_resource_logging;
102275 +extern int grsec_enable_blackhole;
102276 +extern int grsec_lastack_retries;
102277 +extern int grsec_enable_brute;
102278 +extern int grsec_enable_harden_ipc;
102279 +extern int grsec_enable_harden_tty;
102280 +extern int grsec_lock;
102281 +
102282 +extern spinlock_t grsec_alert_lock;
102283 +extern unsigned long grsec_alert_wtime;
102284 +extern unsigned long grsec_alert_fyet;
102285 +
102286 +extern spinlock_t grsec_audit_lock;
102287 +
102288 +extern rwlock_t grsec_exec_file_lock;
102289 +
102290 +#define gr_task_fullpath(tsk) ((tsk)->exec_file ? \
102291 + gr_to_filename2((tsk)->exec_file->f_path.dentry, \
102292 + (tsk)->exec_file->f_path.mnt) : "/")
102293 +
102294 +#define gr_parent_task_fullpath(tsk) ((tsk)->real_parent->exec_file ? \
102295 + gr_to_filename3((tsk)->real_parent->exec_file->f_path.dentry, \
102296 + (tsk)->real_parent->exec_file->f_path.mnt) : "/")
102297 +
102298 +#define gr_task_fullpath0(tsk) ((tsk)->exec_file ? \
102299 + gr_to_filename((tsk)->exec_file->f_path.dentry, \
102300 + (tsk)->exec_file->f_path.mnt) : "/")
102301 +
102302 +#define gr_parent_task_fullpath0(tsk) ((tsk)->real_parent->exec_file ? \
102303 + gr_to_filename1((tsk)->real_parent->exec_file->f_path.dentry, \
102304 + (tsk)->real_parent->exec_file->f_path.mnt) : "/")
102305 +
102306 +#define proc_is_chrooted(tsk_a) ((tsk_a)->gr_is_chrooted)
102307 +
102308 +#define have_same_root(tsk_a,tsk_b) ((tsk_a)->gr_chroot_dentry == (tsk_b)->gr_chroot_dentry)
102309 +
102310 +static inline bool gr_is_same_file(const struct file *file1, const struct file *file2)
102311 +{
102312 + if (file1 && file2) {
102313 + const struct inode *inode1 = file1->f_path.dentry->d_inode;
102314 + const struct inode *inode2 = file2->f_path.dentry->d_inode;
102315 + if (inode1->i_ino == inode2->i_ino && inode1->i_sb->s_dev == inode2->i_sb->s_dev)
102316 + return true;
102317 + }
102318 +
102319 + return false;
102320 +}
102321 +
102322 +#define GR_CHROOT_CAPS {{ \
102323 + CAP_TO_MASK(CAP_LINUX_IMMUTABLE) | CAP_TO_MASK(CAP_NET_ADMIN) | \
102324 + CAP_TO_MASK(CAP_SYS_MODULE) | CAP_TO_MASK(CAP_SYS_RAWIO) | \
102325 + CAP_TO_MASK(CAP_SYS_PACCT) | CAP_TO_MASK(CAP_SYS_ADMIN) | \
102326 + CAP_TO_MASK(CAP_SYS_BOOT) | CAP_TO_MASK(CAP_SYS_TIME) | \
102327 + CAP_TO_MASK(CAP_NET_RAW) | CAP_TO_MASK(CAP_SYS_TTY_CONFIG) | \
102328 + CAP_TO_MASK(CAP_IPC_OWNER) | CAP_TO_MASK(CAP_SETFCAP), \
102329 + CAP_TO_MASK(CAP_SYSLOG) | CAP_TO_MASK(CAP_MAC_ADMIN) }}
102330 +
102331 +#define security_learn(normal_msg,args...) \
102332 +({ \
102333 + read_lock(&grsec_exec_file_lock); \
102334 + gr_add_learn_entry(normal_msg "\n", ## args); \
102335 + read_unlock(&grsec_exec_file_lock); \
102336 +})
102337 +
102338 +enum {
102339 + GR_DO_AUDIT,
102340 + GR_DONT_AUDIT,
102341 + /* used for non-audit messages that we shouldn't kill the task on */
102342 + GR_DONT_AUDIT_GOOD
102343 +};
102344 +
102345 +enum {
102346 + GR_TTYSNIFF,
102347 + GR_RBAC,
102348 + GR_RBAC_STR,
102349 + GR_STR_RBAC,
102350 + GR_RBAC_MODE2,
102351 + GR_RBAC_MODE3,
102352 + GR_FILENAME,
102353 + GR_SYSCTL_HIDDEN,
102354 + GR_NOARGS,
102355 + GR_ONE_INT,
102356 + GR_ONE_INT_TWO_STR,
102357 + GR_ONE_STR,
102358 + GR_STR_INT,
102359 + GR_TWO_STR_INT,
102360 + GR_TWO_INT,
102361 + GR_TWO_U64,
102362 + GR_THREE_INT,
102363 + GR_FIVE_INT_TWO_STR,
102364 + GR_TWO_STR,
102365 + GR_THREE_STR,
102366 + GR_FOUR_STR,
102367 + GR_STR_FILENAME,
102368 + GR_FILENAME_STR,
102369 + GR_FILENAME_TWO_INT,
102370 + GR_FILENAME_TWO_INT_STR,
102371 + GR_TEXTREL,
102372 + GR_PTRACE,
102373 + GR_RESOURCE,
102374 + GR_CAP,
102375 + GR_SIG,
102376 + GR_SIG2,
102377 + GR_CRASH1,
102378 + GR_CRASH2,
102379 + GR_PSACCT,
102380 + GR_RWXMAP,
102381 + GR_RWXMAPVMA
102382 +};
102383 +
102384 +#define gr_log_hidden_sysctl(audit, msg, str) gr_log_varargs(audit, msg, GR_SYSCTL_HIDDEN, str)
102385 +#define gr_log_ttysniff(audit, msg, task) gr_log_varargs(audit, msg, GR_TTYSNIFF, task)
102386 +#define gr_log_fs_rbac_generic(audit, msg, dentry, mnt) gr_log_varargs(audit, msg, GR_RBAC, dentry, mnt)
102387 +#define gr_log_fs_rbac_str(audit, msg, dentry, mnt, str) gr_log_varargs(audit, msg, GR_RBAC_STR, dentry, mnt, str)
102388 +#define gr_log_fs_str_rbac(audit, msg, str, dentry, mnt) gr_log_varargs(audit, msg, GR_STR_RBAC, str, dentry, mnt)
102389 +#define gr_log_fs_rbac_mode2(audit, msg, dentry, mnt, str1, str2) gr_log_varargs(audit, msg, GR_RBAC_MODE2, dentry, mnt, str1, str2)
102390 +#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)
102391 +#define gr_log_fs_generic(audit, msg, dentry, mnt) gr_log_varargs(audit, msg, GR_FILENAME, dentry, mnt)
102392 +#define gr_log_noargs(audit, msg) gr_log_varargs(audit, msg, GR_NOARGS)
102393 +#define gr_log_int(audit, msg, num) gr_log_varargs(audit, msg, GR_ONE_INT, num)
102394 +#define gr_log_int_str2(audit, msg, num, str1, str2) gr_log_varargs(audit, msg, GR_ONE_INT_TWO_STR, num, str1, str2)
102395 +#define gr_log_str(audit, msg, str) gr_log_varargs(audit, msg, GR_ONE_STR, str)
102396 +#define gr_log_str_int(audit, msg, str, num) gr_log_varargs(audit, msg, GR_STR_INT, str, num)
102397 +#define gr_log_int_int(audit, msg, num1, num2) gr_log_varargs(audit, msg, GR_TWO_INT, num1, num2)
102398 +#define gr_log_two_u64(audit, msg, num1, num2) gr_log_varargs(audit, msg, GR_TWO_U64, num1, num2)
102399 +#define gr_log_int3(audit, msg, num1, num2, num3) gr_log_varargs(audit, msg, GR_THREE_INT, num1, num2, num3)
102400 +#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)
102401 +#define gr_log_str_str(audit, msg, str1, str2) gr_log_varargs(audit, msg, GR_TWO_STR, str1, str2)
102402 +#define gr_log_str2_int(audit, msg, str1, str2, num) gr_log_varargs(audit, msg, GR_TWO_STR_INT, str1, str2, num)
102403 +#define gr_log_str3(audit, msg, str1, str2, str3) gr_log_varargs(audit, msg, GR_THREE_STR, str1, str2, str3)
102404 +#define gr_log_str4(audit, msg, str1, str2, str3, str4) gr_log_varargs(audit, msg, GR_FOUR_STR, str1, str2, str3, str4)
102405 +#define gr_log_str_fs(audit, msg, str, dentry, mnt) gr_log_varargs(audit, msg, GR_STR_FILENAME, str, dentry, mnt)
102406 +#define gr_log_fs_str(audit, msg, dentry, mnt, str) gr_log_varargs(audit, msg, GR_FILENAME_STR, dentry, mnt, str)
102407 +#define gr_log_fs_int2(audit, msg, dentry, mnt, num1, num2) gr_log_varargs(audit, msg, GR_FILENAME_TWO_INT, dentry, mnt, num1, num2)
102408 +#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)
102409 +#define gr_log_textrel_ulong_ulong(audit, msg, str, file, ulong1, ulong2) gr_log_varargs(audit, msg, GR_TEXTREL, str, file, ulong1, ulong2)
102410 +#define gr_log_ptrace(audit, msg, task) gr_log_varargs(audit, msg, GR_PTRACE, task)
102411 +#define gr_log_res_ulong2_str(audit, msg, task, ulong1, str, ulong2) gr_log_varargs(audit, msg, GR_RESOURCE, task, ulong1, str, ulong2)
102412 +#define gr_log_cap(audit, msg, task, str) gr_log_varargs(audit, msg, GR_CAP, task, str)
102413 +#define gr_log_sig_addr(audit, msg, str, addr) gr_log_varargs(audit, msg, GR_SIG, str, addr)
102414 +#define gr_log_sig_task(audit, msg, task, num) gr_log_varargs(audit, msg, GR_SIG2, task, num)
102415 +#define gr_log_crash1(audit, msg, task, ulong) gr_log_varargs(audit, msg, GR_CRASH1, task, ulong)
102416 +#define gr_log_crash2(audit, msg, task, ulong1) gr_log_varargs(audit, msg, GR_CRASH2, task, ulong1)
102417 +#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)
102418 +#define gr_log_rwxmap(audit, msg, str) gr_log_varargs(audit, msg, GR_RWXMAP, str)
102419 +#define gr_log_rwxmap_vma(audit, msg, str) gr_log_varargs(audit, msg, GR_RWXMAPVMA, str)
102420 +
102421 +void gr_log_varargs(int audit, const char *msg, int argtypes, ...);
102422 +
102423 +#endif
102424 +
102425 +#endif
102426 diff --git a/include/linux/grmsg.h b/include/linux/grmsg.h
102427 new file mode 100644
102428 index 0000000..12028ce
102429 --- /dev/null
102430 +++ b/include/linux/grmsg.h
102431 @@ -0,0 +1,119 @@
102432 +#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"
102433 +#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"
102434 +#define GR_PTRACE_ACL_MSG "denied ptrace of %.950s(%.16s:%d) by "
102435 +#define GR_STOPMOD_MSG "denied modification of module state by "
102436 +#define GR_ROFS_BLOCKWRITE_MSG "denied write to block device %.950s by "
102437 +#define GR_ROFS_MOUNT_MSG "denied writable mount of %.950s by "
102438 +#define GR_IOPERM_MSG "denied use of ioperm() by "
102439 +#define GR_IOPL_MSG "denied use of iopl() by "
102440 +#define GR_SHMAT_ACL_MSG "denied attach of shared memory of UID %u, PID %d, ID %u by "
102441 +#define GR_UNIX_CHROOT_MSG "denied connect() to abstract AF_UNIX socket outside of chroot by "
102442 +#define GR_SHMAT_CHROOT_MSG "denied attach of shared memory outside of chroot by "
102443 +#define GR_MEM_READWRITE_MSG "denied access of range %Lx -> %Lx in /dev/mem by "
102444 +#define GR_SYMLINK_MSG "not following symlink %.950s owned by %d.%d by "
102445 +#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"
102446 +#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"
102447 +#define GR_HIDDEN_ACL_MSG "%s access to hidden file %.950s by "
102448 +#define GR_OPEN_ACL_MSG "%s open of %.950s for%s%s by "
102449 +#define GR_CREATE_ACL_MSG "%s create of %.950s for%s%s by "
102450 +#define GR_FIFO_MSG "denied writing FIFO %.950s of %d.%d by "
102451 +#define GR_MKNOD_CHROOT_MSG "denied mknod of %.950s from chroot by "
102452 +#define GR_MKNOD_ACL_MSG "%s mknod of %.950s by "
102453 +#define GR_UNIXCONNECT_ACL_MSG "%s connect() to the unix domain socket %.950s by "
102454 +#define GR_TTYSNIFF_ACL_MSG "terminal being sniffed by IP:%pI4 %.480s[%.16s:%d], parent %.480s[%.16s:%d] against "
102455 +#define GR_MKDIR_ACL_MSG "%s mkdir of %.950s by "
102456 +#define GR_RMDIR_ACL_MSG "%s rmdir of %.950s by "
102457 +#define GR_UNLINK_ACL_MSG "%s unlink of %.950s by "
102458 +#define GR_SYMLINK_ACL_MSG "%s symlink from %.480s to %.480s by "
102459 +#define GR_HARDLINK_MSG "denied hardlink of %.930s (owned by %d.%d) to %.30s for "
102460 +#define GR_LINK_ACL_MSG "%s link of %.480s to %.480s by "
102461 +#define GR_INHERIT_ACL_MSG "successful inherit of %.480s's ACL for %.480s by "
102462 +#define GR_RENAME_ACL_MSG "%s rename of %.480s to %.480s by "
102463 +#define GR_UNSAFESHARE_EXEC_ACL_MSG "denied exec with cloned fs of %.950s by "
102464 +#define GR_PTRACE_EXEC_ACL_MSG "denied ptrace of %.950s by "
102465 +#define GR_EXEC_ACL_MSG "%s execution of %.950s by "
102466 +#define GR_EXEC_TPE_MSG "denied untrusted exec (due to %.70s) of %.950s by "
102467 +#define GR_SEGVSTART_ACL_MSG "possible exploit bruteforcing on " DEFAULTSECMSG " banning uid %u from login for %lu seconds"
102468 +#define GR_SEGVNOSUID_ACL_MSG "possible exploit bruteforcing on " DEFAULTSECMSG " banning execution for %lu seconds"
102469 +#define GR_MOUNT_CHROOT_MSG "denied mount of %.256s as %.930s from chroot by "
102470 +#define GR_PIVOT_CHROOT_MSG "denied pivot_root from chroot by "
102471 +#define GR_TRUNCATE_ACL_MSG "%s truncate of %.950s by "
102472 +#define GR_ATIME_ACL_MSG "%s access time change of %.950s by "
102473 +#define GR_ACCESS_ACL_MSG "%s access of %.950s for%s%s%s by "
102474 +#define GR_CHROOT_CHROOT_MSG "denied double chroot to %.950s by "
102475 +#define GR_CHROOT_RENAME_MSG "denied bad rename of %.950s out of a chroot by "
102476 +#define GR_CHMOD_CHROOT_MSG "denied chmod +s of %.950s by "
102477 +#define GR_CHMOD_ACL_MSG "%s chmod of %.950s by "
102478 +#define GR_CHROOT_FCHDIR_MSG "denied fchdir outside of chroot to %.950s by "
102479 +#define GR_CHROOT_FHANDLE_MSG "denied use of file handles inside chroot by "
102480 +#define GR_CHOWN_ACL_MSG "%s chown of %.950s by "
102481 +#define GR_SETXATTR_ACL_MSG "%s setting extended attribute of %.950s by "
102482 +#define GR_REMOVEXATTR_ACL_MSG "%s removing extended attribute of %.950s by "
102483 +#define GR_WRITLIB_ACL_MSG "denied load of writable library %.950s by "
102484 +#define GR_INITF_ACL_MSG "init_variables() failed %s by "
102485 +#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"
102486 +#define GR_DEV_ACL_MSG "/dev/grsec: %d bytes sent %d required, being fed garbage by "
102487 +#define GR_SHUTS_ACL_MSG "shutdown auth success for "
102488 +#define GR_SHUTF_ACL_MSG "shutdown auth failure for "
102489 +#define GR_SHUTI_ACL_MSG "ignoring shutdown for disabled RBAC system for "
102490 +#define GR_SEGVMODS_ACL_MSG "segvmod auth success for "
102491 +#define GR_SEGVMODF_ACL_MSG "segvmod auth failure for "
102492 +#define GR_SEGVMODI_ACL_MSG "ignoring segvmod for disabled RBAC system for "
102493 +#define GR_ENABLE_ACL_MSG "%s RBAC system loaded by "
102494 +#define GR_ENABLEF_ACL_MSG "unable to load %s for "
102495 +#define GR_RELOADI_ACL_MSG "ignoring reload request for disabled RBAC system"
102496 +#define GR_RELOAD_ACL_MSG "%s RBAC system reloaded by "
102497 +#define GR_RELOADF_ACL_MSG "failed reload of %s for "
102498 +#define GR_SPROLEI_ACL_MSG "ignoring change to special role for disabled RBAC system for "
102499 +#define GR_SPROLES_ACL_MSG "successful change to special role %s (id %d) by "
102500 +#define GR_SPROLEL_ACL_MSG "special role %s (id %d) exited by "
102501 +#define GR_SPROLEF_ACL_MSG "special role %s failure for "
102502 +#define GR_UNSPROLEI_ACL_MSG "ignoring unauth of special role for disabled RBAC system for "
102503 +#define GR_UNSPROLES_ACL_MSG "successful unauth of special role %s (id %d) by "
102504 +#define GR_INVMODE_ACL_MSG "invalid mode %d by "
102505 +#define GR_PRIORITY_CHROOT_MSG "denied priority change of process (%.16s:%d) by "
102506 +#define GR_FAILFORK_MSG "failed fork with errno %s by "
102507 +#define GR_NICE_CHROOT_MSG "denied priority change by "
102508 +#define GR_UNISIGLOG_MSG "%.32s occurred at %p in "
102509 +#define GR_DUALSIGLOG_MSG "signal %d sent to " DEFAULTSECMSG " by "
102510 +#define GR_SIG_ACL_MSG "denied send of signal %d to protected task " DEFAULTSECMSG " by "
102511 +#define GR_SYSCTL_MSG "denied modification of grsecurity sysctl value : %.32s by "
102512 +#define GR_SYSCTL_ACL_MSG "%s sysctl of %.950s for%s%s by "
102513 +#define GR_TIME_MSG "time set by "
102514 +#define GR_DEFACL_MSG "fatal: unable to find subject for (%.16s:%d), loaded by "
102515 +#define GR_MMAP_ACL_MSG "%s executable mmap of %.950s by "
102516 +#define GR_MPROTECT_ACL_MSG "%s executable mprotect of %.950s by "
102517 +#define GR_SOCK_MSG "denied socket(%.16s,%.16s,%.16s) by "
102518 +#define GR_SOCK_NOINET_MSG "denied socket(%.16s,%.16s,%d) by "
102519 +#define GR_BIND_MSG "denied bind() by "
102520 +#define GR_CONNECT_MSG "denied connect() by "
102521 +#define GR_BIND_ACL_MSG "denied bind() to %pI4 port %u sock type %.16s protocol %.16s by "
102522 +#define GR_CONNECT_ACL_MSG "denied connect() to %pI4 port %u sock type %.16s protocol %.16s by "
102523 +#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"
102524 +#define GR_EXEC_CHROOT_MSG "exec of %.980s within chroot by process "
102525 +#define GR_CAP_ACL_MSG "use of %s denied for "
102526 +#define GR_CAP_CHROOT_MSG "use of %s in chroot denied for "
102527 +#define GR_CAP_ACL_MSG2 "use of %s permitted for "
102528 +#define GR_USRCHANGE_ACL_MSG "change to uid %u denied for "
102529 +#define GR_GRPCHANGE_ACL_MSG "change to gid %u denied for "
102530 +#define GR_REMOUNT_AUDIT_MSG "remount of %.256s by "
102531 +#define GR_UNMOUNT_AUDIT_MSG "unmount of %.256s by "
102532 +#define GR_MOUNT_AUDIT_MSG "mount of %.256s to %.256s by "
102533 +#define GR_CHDIR_AUDIT_MSG "chdir to %.980s by "
102534 +#define GR_EXEC_AUDIT_MSG "exec of %.930s (%.128s) by "
102535 +#define GR_RESOURCE_MSG "denied resource overstep by requesting %lu for %.16s against limit %lu for "
102536 +#define GR_RWXMMAP_MSG "denied RWX mmap of %.950s by "
102537 +#define GR_RWXMPROTECT_MSG "denied RWX mprotect of %.950s by "
102538 +#define GR_TEXTREL_AUDIT_MSG "allowed %s text relocation transition in %.950s, VMA:0x%08lx 0x%08lx by "
102539 +#define GR_PTGNUSTACK_MSG "denied marking stack executable as requested by PT_GNU_STACK marking in %.950s by "
102540 +#define GR_VM86_MSG "denied use of vm86 by "
102541 +#define GR_PTRACE_AUDIT_MSG "process %.950s(%.16s:%d) attached to via ptrace by "
102542 +#define GR_PTRACE_READEXEC_MSG "denied ptrace of unreadable binary %.950s by "
102543 +#define GR_INIT_TRANSFER_MSG "persistent special role transferred privilege to init by "
102544 +#define GR_BADPROCPID_MSG "denied read of sensitive /proc/pid/%s entry via fd passed across exec by "
102545 +#define GR_SYMLINKOWNER_MSG "denied following symlink %.950s since symlink owner %u does not match target owner %u, by "
102546 +#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 "
102547 +#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 "
102548 +#define GR_IPC_DENIED_MSG "denied %s of overly-permissive IPC object with creator uid %u by "
102549 +#define GR_TIOCSTI_MSG "denied unprivileged use of TIOCSTI by "
102550 +#define GR_MSRWRITE_MSG "denied write to CPU MSR by "
102551 diff --git a/include/linux/grsecurity.h b/include/linux/grsecurity.h
102552 new file mode 100644
102553 index 0000000..0166061
102554 --- /dev/null
102555 +++ b/include/linux/grsecurity.h
102556 @@ -0,0 +1,258 @@
102557 +#ifndef GR_SECURITY_H
102558 +#define GR_SECURITY_H
102559 +#include <linux/fs.h>
102560 +#include <linux/fs_struct.h>
102561 +#include <linux/binfmts.h>
102562 +#include <linux/tty.h>
102563 +#include <linux/gracl.h>
102564 +
102565 +/* notify of brain-dead configs */
102566 +#if defined(CONFIG_DEBUG_FS) && defined(CONFIG_GRKERNSEC_KMEM)
102567 +#error "CONFIG_DEBUG_FS being enabled is a security risk when CONFIG_GRKERNSEC_KMEM is enabled"
102568 +#endif
102569 +#if defined(CONFIG_PROC_PAGE_MONITOR) && defined(CONFIG_GRKERNSEC)
102570 +#error "CONFIG_PROC_PAGE_MONITOR is a security risk"
102571 +#endif
102572 +#if defined(CONFIG_GRKERNSEC_PROC_USER) && defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
102573 +#error "CONFIG_GRKERNSEC_PROC_USER and CONFIG_GRKERNSEC_PROC_USERGROUP cannot both be enabled."
102574 +#endif
102575 +#if defined(CONFIG_GRKERNSEC_PROC) && !defined(CONFIG_GRKERNSEC_PROC_USER) && !defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
102576 +#error "CONFIG_GRKERNSEC_PROC enabled, but neither CONFIG_GRKERNSEC_PROC_USER nor CONFIG_GRKERNSEC_PROC_USERGROUP enabled"
102577 +#endif
102578 +#if defined(CONFIG_PAX_NOEXEC) && !defined(CONFIG_PAX_PAGEEXEC) && !defined(CONFIG_PAX_SEGMEXEC) && !defined(CONFIG_PAX_KERNEXEC)
102579 +#error "CONFIG_PAX_NOEXEC enabled, but PAGEEXEC, SEGMEXEC, and KERNEXEC are disabled."
102580 +#endif
102581 +#if defined(CONFIG_PAX_ASLR) && !defined(CONFIG_PAX_RANDKSTACK) && !defined(CONFIG_PAX_RANDUSTACK) && !defined(CONFIG_PAX_RANDMMAP)
102582 +#error "CONFIG_PAX_ASLR enabled, but RANDKSTACK, RANDUSTACK, and RANDMMAP are disabled."
102583 +#endif
102584 +#if defined(CONFIG_PAX) && !defined(CONFIG_PAX_NOEXEC) && !defined(CONFIG_PAX_ASLR)
102585 +#error "CONFIG_PAX enabled, but no PaX options are enabled."
102586 +#endif
102587 +
102588 +int gr_handle_new_usb(void);
102589 +
102590 +void gr_handle_brute_attach(int dumpable);
102591 +void gr_handle_brute_check(void);
102592 +void gr_handle_kernel_exploit(void);
102593 +
102594 +char gr_roletype_to_char(void);
102595 +
102596 +int gr_proc_is_restricted(void);
102597 +
102598 +int gr_acl_enable_at_secure(void);
102599 +
102600 +int gr_check_user_change(kuid_t real, kuid_t effective, kuid_t fs);
102601 +int gr_check_group_change(kgid_t real, kgid_t effective, kgid_t fs);
102602 +
102603 +int gr_learn_cap(const struct task_struct *task, const struct cred *cred, const int cap);
102604 +
102605 +void gr_del_task_from_ip_table(struct task_struct *p);
102606 +
102607 +int gr_pid_is_chrooted(struct task_struct *p);
102608 +int gr_handle_chroot_fowner(struct pid *pid, enum pid_type type);
102609 +int gr_handle_chroot_nice(void);
102610 +int gr_handle_chroot_sysctl(const int op);
102611 +int gr_handle_chroot_setpriority(struct task_struct *p,
102612 + const int niceval);
102613 +int gr_chroot_fchdir(struct dentry *u_dentry, struct vfsmount *u_mnt);
102614 +int gr_chroot_fhandle(void);
102615 +int gr_handle_chroot_chroot(const struct dentry *dentry,
102616 + const struct vfsmount *mnt);
102617 +void gr_handle_chroot_chdir(const struct path *path);
102618 +int gr_handle_chroot_chmod(const struct dentry *dentry,
102619 + const struct vfsmount *mnt, const int mode);
102620 +int gr_handle_chroot_mknod(const struct dentry *dentry,
102621 + const struct vfsmount *mnt, const int mode);
102622 +int gr_handle_chroot_mount(const struct dentry *dentry,
102623 + const struct vfsmount *mnt,
102624 + const char *dev_name);
102625 +int gr_handle_chroot_pivot(void);
102626 +int gr_handle_chroot_unix(const pid_t pid);
102627 +
102628 +int gr_handle_rawio(const struct inode *inode);
102629 +
102630 +void gr_handle_ioperm(void);
102631 +void gr_handle_iopl(void);
102632 +void gr_handle_msr_write(void);
102633 +
102634 +umode_t gr_acl_umask(void);
102635 +
102636 +int gr_tpe_allow(const struct file *file);
102637 +
102638 +void gr_set_chroot_entries(struct task_struct *task, const struct path *path);
102639 +void gr_clear_chroot_entries(struct task_struct *task);
102640 +
102641 +void gr_log_forkfail(const int retval);
102642 +void gr_log_timechange(void);
102643 +void gr_log_signal(const int sig, const void *addr, const struct task_struct *t);
102644 +void gr_log_chdir(const struct dentry *dentry,
102645 + const struct vfsmount *mnt);
102646 +void gr_log_chroot_exec(const struct dentry *dentry,
102647 + const struct vfsmount *mnt);
102648 +void gr_log_remount(const char *devname, const int retval);
102649 +void gr_log_unmount(const char *devname, const int retval);
102650 +void gr_log_mount(const char *from, struct path *to, const int retval);
102651 +void gr_log_textrel(struct vm_area_struct *vma, bool is_textrel_rw);
102652 +void gr_log_ptgnustack(struct file *file);
102653 +void gr_log_rwxmmap(struct file *file);
102654 +void gr_log_rwxmprotect(struct vm_area_struct *vma);
102655 +
102656 +int gr_handle_follow_link(const struct dentry *dentry,
102657 + const struct vfsmount *mnt);
102658 +int gr_handle_fifo(const struct dentry *dentry,
102659 + const struct vfsmount *mnt,
102660 + const struct dentry *dir, const int flag,
102661 + const int acc_mode);
102662 +int gr_handle_hardlink(const struct dentry *dentry,
102663 + const struct vfsmount *mnt,
102664 + const struct filename *to);
102665 +
102666 +int gr_is_capable(const int cap);
102667 +int gr_is_capable_nolog(const int cap);
102668 +int gr_task_is_capable(const struct task_struct *task, const struct cred *cred, const int cap);
102669 +int gr_task_is_capable_nolog(const struct task_struct *task, const int cap);
102670 +
102671 +void gr_copy_label(struct task_struct *tsk);
102672 +void gr_handle_crash(struct task_struct *task, const int sig);
102673 +int gr_handle_signal(const struct task_struct *p, const int sig);
102674 +int gr_check_crash_uid(const kuid_t uid);
102675 +int gr_check_protected_task(const struct task_struct *task);
102676 +int gr_check_protected_task_fowner(struct pid *pid, enum pid_type type);
102677 +int gr_acl_handle_mmap(const struct file *file,
102678 + const unsigned long prot);
102679 +int gr_acl_handle_mprotect(const struct file *file,
102680 + const unsigned long prot);
102681 +int gr_check_hidden_task(const struct task_struct *tsk);
102682 +__u32 gr_acl_handle_truncate(const struct dentry *dentry,
102683 + const struct vfsmount *mnt);
102684 +__u32 gr_acl_handle_utime(const struct dentry *dentry,
102685 + const struct vfsmount *mnt);
102686 +__u32 gr_acl_handle_access(const struct dentry *dentry,
102687 + const struct vfsmount *mnt, const int fmode);
102688 +__u32 gr_acl_handle_chmod(const struct dentry *dentry,
102689 + const struct vfsmount *mnt, umode_t *mode);
102690 +__u32 gr_acl_handle_chown(const struct dentry *dentry,
102691 + const struct vfsmount *mnt);
102692 +__u32 gr_acl_handle_setxattr(const struct dentry *dentry,
102693 + const struct vfsmount *mnt);
102694 +__u32 gr_acl_handle_removexattr(const struct dentry *dentry,
102695 + const struct vfsmount *mnt);
102696 +int gr_handle_ptrace(struct task_struct *task, const long request);
102697 +int gr_handle_proc_ptrace(struct task_struct *task);
102698 +__u32 gr_acl_handle_execve(const struct dentry *dentry,
102699 + const struct vfsmount *mnt);
102700 +int gr_check_crash_exec(const struct file *filp);
102701 +int gr_acl_is_enabled(void);
102702 +void gr_set_role_label(struct task_struct *task, const kuid_t uid,
102703 + const kgid_t gid);
102704 +int gr_set_proc_label(const struct dentry *dentry,
102705 + const struct vfsmount *mnt,
102706 + const int unsafe_flags);
102707 +__u32 gr_acl_handle_hidden_file(const struct dentry *dentry,
102708 + const struct vfsmount *mnt);
102709 +__u32 gr_acl_handle_open(const struct dentry *dentry,
102710 + const struct vfsmount *mnt, int acc_mode);
102711 +__u32 gr_acl_handle_creat(const struct dentry *dentry,
102712 + const struct dentry *p_dentry,
102713 + const struct vfsmount *p_mnt,
102714 + int open_flags, int acc_mode, const int imode);
102715 +void gr_handle_create(const struct dentry *dentry,
102716 + const struct vfsmount *mnt);
102717 +void gr_handle_proc_create(const struct dentry *dentry,
102718 + const struct inode *inode);
102719 +__u32 gr_acl_handle_mknod(const struct dentry *new_dentry,
102720 + const struct dentry *parent_dentry,
102721 + const struct vfsmount *parent_mnt,
102722 + const int mode);
102723 +__u32 gr_acl_handle_mkdir(const struct dentry *new_dentry,
102724 + const struct dentry *parent_dentry,
102725 + const struct vfsmount *parent_mnt);
102726 +__u32 gr_acl_handle_rmdir(const struct dentry *dentry,
102727 + const struct vfsmount *mnt);
102728 +void gr_handle_delete(const u64 ino, const dev_t dev);
102729 +__u32 gr_acl_handle_unlink(const struct dentry *dentry,
102730 + const struct vfsmount *mnt);
102731 +__u32 gr_acl_handle_symlink(const struct dentry *new_dentry,
102732 + const struct dentry *parent_dentry,
102733 + const struct vfsmount *parent_mnt,
102734 + const struct filename *from);
102735 +__u32 gr_acl_handle_link(const struct dentry *new_dentry,
102736 + const struct dentry *parent_dentry,
102737 + const struct vfsmount *parent_mnt,
102738 + const struct dentry *old_dentry,
102739 + const struct vfsmount *old_mnt, const struct filename *to);
102740 +int gr_handle_symlink_owner(const struct path *link, const struct inode *target);
102741 +int gr_acl_handle_rename(struct dentry *new_dentry,
102742 + struct dentry *parent_dentry,
102743 + const struct vfsmount *parent_mnt,
102744 + struct dentry *old_dentry,
102745 + struct inode *old_parent_inode,
102746 + struct vfsmount *old_mnt, const struct filename *newname, unsigned int flags);
102747 +void gr_handle_rename(struct inode *old_dir, struct inode *new_dir,
102748 + struct dentry *old_dentry,
102749 + struct dentry *new_dentry,
102750 + struct vfsmount *mnt, const __u8 replace, unsigned int flags);
102751 +__u32 gr_check_link(const struct dentry *new_dentry,
102752 + const struct dentry *parent_dentry,
102753 + const struct vfsmount *parent_mnt,
102754 + const struct dentry *old_dentry,
102755 + const struct vfsmount *old_mnt);
102756 +int gr_acl_handle_filldir(const struct file *file, const char *name,
102757 + const unsigned int namelen, const u64 ino);
102758 +
102759 +__u32 gr_acl_handle_unix(const struct dentry *dentry,
102760 + const struct vfsmount *mnt);
102761 +void gr_acl_handle_exit(void);
102762 +void gr_acl_handle_psacct(struct task_struct *task, const long code);
102763 +int gr_acl_handle_procpidmem(const struct task_struct *task);
102764 +int gr_handle_rofs_mount(struct dentry *dentry, struct vfsmount *mnt, int mnt_flags);
102765 +int gr_handle_rofs_blockwrite(struct dentry *dentry, struct vfsmount *mnt, int acc_mode);
102766 +void gr_audit_ptrace(struct task_struct *task);
102767 +dev_t gr_get_dev_from_dentry(struct dentry *dentry);
102768 +u64 gr_get_ino_from_dentry(struct dentry *dentry);
102769 +void gr_put_exec_file(struct task_struct *task);
102770 +
102771 +int gr_get_symlinkown_enabled(void);
102772 +
102773 +int gr_ptrace_readexec(struct file *file, int unsafe_flags);
102774 +
102775 +int gr_handle_tiocsti(struct tty_struct *tty);
102776 +
102777 +void gr_inc_chroot_refcnts(struct dentry *dentry, struct vfsmount *mnt);
102778 +void gr_dec_chroot_refcnts(struct dentry *dentry, struct vfsmount *mnt);
102779 +int gr_bad_chroot_rename(struct dentry *olddentry, struct vfsmount *oldmnt,
102780 + struct dentry *newdentry, struct vfsmount *newmnt);
102781 +
102782 +#ifdef CONFIG_GRKERNSEC_RESLOG
102783 +extern void gr_log_resource(const struct task_struct *task, const int res,
102784 + const unsigned long wanted, const int gt);
102785 +#else
102786 +static inline void gr_log_resource(const struct task_struct *task, const int res,
102787 + const unsigned long wanted, const int gt)
102788 +{
102789 +}
102790 +#endif
102791 +
102792 +#ifdef CONFIG_GRKERNSEC
102793 +void task_grsec_rbac(struct seq_file *m, struct task_struct *p);
102794 +void gr_handle_vm86(void);
102795 +void gr_handle_mem_readwrite(u64 from, u64 to);
102796 +
102797 +void gr_log_badprocpid(const char *entry);
102798 +
102799 +extern int grsec_enable_dmesg;
102800 +extern int grsec_disable_privio;
102801 +
102802 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
102803 +extern kgid_t grsec_proc_gid;
102804 +#endif
102805 +
102806 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
102807 +extern int grsec_enable_chroot_findtask;
102808 +#endif
102809 +#ifdef CONFIG_GRKERNSEC_SETXID
102810 +extern int grsec_enable_setxid;
102811 +#endif
102812 +#endif
102813 +
102814 +#endif
102815 diff --git a/include/linux/grsock.h b/include/linux/grsock.h
102816 new file mode 100644
102817 index 0000000..e7ffaaf
102818 --- /dev/null
102819 +++ b/include/linux/grsock.h
102820 @@ -0,0 +1,19 @@
102821 +#ifndef __GRSOCK_H
102822 +#define __GRSOCK_H
102823 +
102824 +extern void gr_attach_curr_ip(const struct sock *sk);
102825 +extern int gr_handle_sock_all(const int family, const int type,
102826 + const int protocol);
102827 +extern int gr_handle_sock_server(const struct sockaddr *sck);
102828 +extern int gr_handle_sock_server_other(const struct sock *sck);
102829 +extern int gr_handle_sock_client(const struct sockaddr *sck);
102830 +extern int gr_search_connect(struct socket * sock,
102831 + struct sockaddr_in * addr);
102832 +extern int gr_search_bind(struct socket * sock,
102833 + struct sockaddr_in * addr);
102834 +extern int gr_search_listen(struct socket * sock);
102835 +extern int gr_search_accept(struct socket * sock);
102836 +extern int gr_search_socket(const int domain, const int type,
102837 + const int protocol);
102838 +
102839 +#endif
102840 diff --git a/include/linux/highmem.h b/include/linux/highmem.h
102841 index bb3f329..9daed55 100644
102842 --- a/include/linux/highmem.h
102843 +++ b/include/linux/highmem.h
102844 @@ -190,6 +190,18 @@ static inline void clear_highpage(struct page *page)
102845 kunmap_atomic(kaddr);
102846 }
102847
102848 +static inline void sanitize_highpage(struct page *page)
102849 +{
102850 + void *kaddr;
102851 + unsigned long flags;
102852 +
102853 + local_irq_save(flags);
102854 + kaddr = kmap_atomic(page);
102855 + clear_page(kaddr);
102856 + kunmap_atomic(kaddr);
102857 + local_irq_restore(flags);
102858 +}
102859 +
102860 static inline void zero_user_segments(struct page *page,
102861 unsigned start1, unsigned end1,
102862 unsigned start2, unsigned end2)
102863 diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h
102864 index 685c262..5d42d36 100644
102865 --- a/include/linux/hugetlb.h
102866 +++ b/include/linux/hugetlb.h
102867 @@ -317,7 +317,7 @@ struct hstate {
102868 unsigned int surplus_huge_pages_node[MAX_NUMNODES];
102869 #ifdef CONFIG_CGROUP_HUGETLB
102870 /* cgroup control files */
102871 - struct cftype cgroup_files[5];
102872 + struct cftype (*cgroup_files)[5];
102873 #endif
102874 char name[HSTATE_NAME_LEN];
102875 };
102876 diff --git a/include/linux/hugetlb_cgroup.h b/include/linux/hugetlb_cgroup.h
102877 index 24154c2..43ac947 100644
102878 --- a/include/linux/hugetlb_cgroup.h
102879 +++ b/include/linux/hugetlb_cgroup.h
102880 @@ -26,6 +26,13 @@ struct hugetlb_cgroup;
102881
102882 #ifdef CONFIG_CGROUP_HUGETLB
102883
102884 +enum {
102885 + RES_USAGE,
102886 + RES_LIMIT,
102887 + RES_MAX_USAGE,
102888 + RES_FAILCNT,
102889 +};
102890 +
102891 static inline struct hugetlb_cgroup *hugetlb_cgroup_from_page(struct page *page)
102892 {
102893 VM_BUG_ON_PAGE(!PageHuge(page), page);
102894 @@ -64,6 +71,10 @@ extern void hugetlb_cgroup_file_init(void) __init;
102895 extern void hugetlb_cgroup_migrate(struct page *oldhpage,
102896 struct page *newhpage);
102897
102898 +ssize_t hugetlb_cgroup_reset(struct kernfs_open_file *of, char *buf, size_t nbytes, loff_t off);
102899 +ssize_t hugetlb_cgroup_write(struct kernfs_open_file *of, char *buf, size_t nbytes, loff_t off);
102900 +u64 hugetlb_cgroup_read_u64(struct cgroup_subsys_state *css, struct cftype *cft);
102901 +
102902 #else
102903 static inline struct hugetlb_cgroup *hugetlb_cgroup_from_page(struct page *page)
102904 {
102905 diff --git a/include/linux/hwmon-sysfs.h b/include/linux/hwmon-sysfs.h
102906 index 1c7b89a..7dda400 100644
102907 --- a/include/linux/hwmon-sysfs.h
102908 +++ b/include/linux/hwmon-sysfs.h
102909 @@ -25,7 +25,8 @@
102910 struct sensor_device_attribute{
102911 struct device_attribute dev_attr;
102912 int index;
102913 -};
102914 +} __do_const;
102915 +typedef struct sensor_device_attribute __no_const sensor_device_attribute_no_const;
102916 #define to_sensor_dev_attr(_dev_attr) \
102917 container_of(_dev_attr, struct sensor_device_attribute, dev_attr)
102918
102919 @@ -41,7 +42,8 @@ struct sensor_device_attribute_2 {
102920 struct device_attribute dev_attr;
102921 u8 index;
102922 u8 nr;
102923 -};
102924 +} __do_const;
102925 +typedef struct sensor_device_attribute_2 __no_const sensor_device_attribute_2_no_const;
102926 #define to_sensor_dev_attr_2(_dev_attr) \
102927 container_of(_dev_attr, struct sensor_device_attribute_2, dev_attr)
102928
102929 diff --git a/include/linux/i2c.h b/include/linux/i2c.h
102930 index 768063b..62ef5be 100644
102931 --- a/include/linux/i2c.h
102932 +++ b/include/linux/i2c.h
102933 @@ -412,6 +412,7 @@ struct i2c_algorithm {
102934 int (*unreg_slave)(struct i2c_client *client);
102935 #endif
102936 };
102937 +typedef struct i2c_algorithm __no_const i2c_algorithm_no_const;
102938
102939 /**
102940 * struct i2c_bus_recovery_info - I2C bus recovery information
102941 diff --git a/include/linux/if_pppox.h b/include/linux/if_pppox.h
102942 index b49cf92..0c29072 100644
102943 --- a/include/linux/if_pppox.h
102944 +++ b/include/linux/if_pppox.h
102945 @@ -78,7 +78,7 @@ struct pppox_proto {
102946 int (*ioctl)(struct socket *sock, unsigned int cmd,
102947 unsigned long arg);
102948 struct module *owner;
102949 -};
102950 +} __do_const;
102951
102952 extern int register_pppox_proto(int proto_num, const struct pppox_proto *pp);
102953 extern void unregister_pppox_proto(int proto_num);
102954 diff --git a/include/linux/init.h b/include/linux/init.h
102955 index b449f37..61005b3 100644
102956 --- a/include/linux/init.h
102957 +++ b/include/linux/init.h
102958 @@ -37,9 +37,17 @@
102959 * section.
102960 */
102961
102962 +#define add_init_latent_entropy __latent_entropy
102963 +
102964 +#ifdef CONFIG_MEMORY_HOTPLUG
102965 +#define add_meminit_latent_entropy
102966 +#else
102967 +#define add_meminit_latent_entropy __latent_entropy
102968 +#endif
102969 +
102970 /* These are for everybody (although not all archs will actually
102971 discard it in modules) */
102972 -#define __init __section(.init.text) __cold notrace
102973 +#define __init __section(.init.text) __cold notrace add_init_latent_entropy
102974 #define __initdata __section(.init.data)
102975 #define __initconst __constsection(.init.rodata)
102976 #define __exitdata __section(.exit.data)
102977 @@ -92,7 +100,7 @@
102978 #define __exit __section(.exit.text) __exitused __cold notrace
102979
102980 /* Used for MEMORY_HOTPLUG */
102981 -#define __meminit __section(.meminit.text) __cold notrace
102982 +#define __meminit __section(.meminit.text) __cold notrace add_meminit_latent_entropy
102983 #define __meminitdata __section(.meminit.data)
102984 #define __meminitconst __constsection(.meminit.rodata)
102985 #define __memexit __section(.memexit.text) __exitused __cold notrace
102986 diff --git a/include/linux/init_task.h b/include/linux/init_task.h
102987 index 1c1ff7e..97a439f 100644
102988 --- a/include/linux/init_task.h
102989 +++ b/include/linux/init_task.h
102990 @@ -159,6 +159,12 @@ extern struct task_group root_task_group;
102991
102992 #define INIT_TASK_COMM "swapper"
102993
102994 +#ifdef CONFIG_X86
102995 +#define INIT_TASK_THREAD_INFO .tinfo = INIT_THREAD_INFO,
102996 +#else
102997 +#define INIT_TASK_THREAD_INFO
102998 +#endif
102999 +
103000 #ifdef CONFIG_RT_MUTEXES
103001 # define INIT_RT_MUTEXES(tsk) \
103002 .pi_waiters = RB_ROOT, \
103003 @@ -225,6 +231,7 @@ extern struct task_group root_task_group;
103004 RCU_POINTER_INITIALIZER(cred, &init_cred), \
103005 .comm = INIT_TASK_COMM, \
103006 .thread = INIT_THREAD, \
103007 + INIT_TASK_THREAD_INFO \
103008 .fs = &init_fs, \
103009 .files = &init_files, \
103010 .signal = &init_signals, \
103011 diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
103012 index ad16809..516b54d 100644
103013 --- a/include/linux/interrupt.h
103014 +++ b/include/linux/interrupt.h
103015 @@ -435,8 +435,8 @@ extern const char * const softirq_to_name[NR_SOFTIRQS];
103016
103017 struct softirq_action
103018 {
103019 - void (*action)(struct softirq_action *);
103020 -};
103021 + void (*action)(void);
103022 +} __no_const;
103023
103024 asmlinkage void do_softirq(void);
103025 asmlinkage void __do_softirq(void);
103026 @@ -450,7 +450,7 @@ static inline void do_softirq_own_stack(void)
103027 }
103028 #endif
103029
103030 -extern void open_softirq(int nr, void (*action)(struct softirq_action *));
103031 +extern void open_softirq(int nr, void (*action)(void));
103032 extern void softirq_init(void);
103033 extern void __raise_softirq_irqoff(unsigned int nr);
103034
103035 diff --git a/include/linux/iommu.h b/include/linux/iommu.h
103036 index f28dff3..2f6c413 100644
103037 --- a/include/linux/iommu.h
103038 +++ b/include/linux/iommu.h
103039 @@ -193,7 +193,7 @@ struct iommu_ops {
103040
103041 unsigned long pgsize_bitmap;
103042 void *priv;
103043 -};
103044 +} __do_const;
103045
103046 #define IOMMU_GROUP_NOTIFY_ADD_DEVICE 1 /* Device added */
103047 #define IOMMU_GROUP_NOTIFY_DEL_DEVICE 2 /* Pre Device removed */
103048 diff --git a/include/linux/ioport.h b/include/linux/ioport.h
103049 index 24bea08..89cafba 100644
103050 --- a/include/linux/ioport.h
103051 +++ b/include/linux/ioport.h
103052 @@ -162,7 +162,7 @@ struct resource *lookup_resource(struct resource *root, resource_size_t start);
103053 int adjust_resource(struct resource *res, resource_size_t start,
103054 resource_size_t size);
103055 resource_size_t resource_alignment(struct resource *res);
103056 -static inline resource_size_t resource_size(const struct resource *res)
103057 +static inline resource_size_t __intentional_overflow(-1) resource_size(const struct resource *res)
103058 {
103059 return res->end - res->start + 1;
103060 }
103061 diff --git a/include/linux/ipc.h b/include/linux/ipc.h
103062 index 9d84942..12d5bdf 100644
103063 --- a/include/linux/ipc.h
103064 +++ b/include/linux/ipc.h
103065 @@ -19,8 +19,8 @@ struct kern_ipc_perm
103066 kuid_t cuid;
103067 kgid_t cgid;
103068 umode_t mode;
103069 - unsigned long seq;
103070 + unsigned long seq __intentional_overflow(-1);
103071 void *security;
103072 -};
103073 +} __randomize_layout;
103074
103075 #endif /* _LINUX_IPC_H */
103076 diff --git a/include/linux/ipc_namespace.h b/include/linux/ipc_namespace.h
103077 index 1eee6bc..9cf4912 100644
103078 --- a/include/linux/ipc_namespace.h
103079 +++ b/include/linux/ipc_namespace.h
103080 @@ -60,7 +60,7 @@ struct ipc_namespace {
103081 struct user_namespace *user_ns;
103082
103083 struct ns_common ns;
103084 -};
103085 +} __randomize_layout;
103086
103087 extern struct ipc_namespace init_ipc_ns;
103088 extern atomic_t nr_ipc_ns;
103089 diff --git a/include/linux/irq.h b/include/linux/irq.h
103090 index 3c1c967..ca8abc6 100644
103091 --- a/include/linux/irq.h
103092 +++ b/include/linux/irq.h
103093 @@ -386,7 +386,10 @@ struct irq_chip {
103094 int (*irq_set_vcpu_affinity)(struct irq_data *data, void *vcpu_info);
103095
103096 unsigned long flags;
103097 -};
103098 +} __do_const;
103099 +#ifndef _LINUX_IRQDOMAIN_H
103100 +typedef struct irq_chip __no_const irq_chip_no_const;
103101 +#endif
103102
103103 /*
103104 * irq_chip specific flags
103105 diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h
103106 index a587a33..0ff712d 100644
103107 --- a/include/linux/irqdesc.h
103108 +++ b/include/linux/irqdesc.h
103109 @@ -59,7 +59,7 @@ struct irq_desc {
103110 unsigned int irq_count; /* For detecting broken IRQs */
103111 unsigned long last_unhandled; /* Aging timer for unhandled count */
103112 unsigned int irqs_unhandled;
103113 - atomic_t threads_handled;
103114 + atomic_unchecked_t threads_handled;
103115 int threads_handled_last;
103116 raw_spinlock_t lock;
103117 struct cpumask *percpu_enabled;
103118 diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h
103119 index d5e5c5b..0e779bd 100644
103120 --- a/include/linux/irqdomain.h
103121 +++ b/include/linux/irqdomain.h
103122 @@ -38,6 +38,9 @@ struct device_node;
103123 struct irq_domain;
103124 struct of_device_id;
103125 struct irq_chip;
103126 +#ifndef _LINUX_IRQ_H
103127 +typedef struct irq_chip __no_const irq_chip_no_const;
103128 +#endif
103129 struct irq_data;
103130
103131 /* Number of irqs reserved for a legacy isa controller */
103132 diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h
103133 index 65407f6..a9ae0ed 100644
103134 --- a/include/linux/jbd2.h
103135 +++ b/include/linux/jbd2.h
103136 @@ -677,7 +677,7 @@ struct transaction_s
103137 /*
103138 * How many handles used this transaction? [t_handle_lock]
103139 */
103140 - atomic_t t_handle_count;
103141 + atomic_unchecked_t t_handle_count;
103142
103143 /*
103144 * This transaction is being forced and some process is
103145 diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h
103146 index 5fdc553..766e169 100644
103147 --- a/include/linux/jiffies.h
103148 +++ b/include/linux/jiffies.h
103149 @@ -284,19 +284,19 @@ extern unsigned long preset_lpj;
103150 extern unsigned int jiffies_to_msecs(const unsigned long j);
103151 extern unsigned int jiffies_to_usecs(const unsigned long j);
103152
103153 -static inline u64 jiffies_to_nsecs(const unsigned long j)
103154 +static inline u64 __intentional_overflow(-1) jiffies_to_nsecs(const unsigned long j)
103155 {
103156 return (u64)jiffies_to_usecs(j) * NSEC_PER_USEC;
103157 }
103158
103159 -extern unsigned long __msecs_to_jiffies(const unsigned int m);
103160 +extern unsigned long __msecs_to_jiffies(const unsigned int m) __intentional_overflow(-1);
103161 #if HZ <= MSEC_PER_SEC && !(MSEC_PER_SEC % HZ)
103162 /*
103163 * HZ is equal to or smaller than 1000, and 1000 is a nice round
103164 * multiple of HZ, divide with the factor between them, but round
103165 * upwards:
103166 */
103167 -static inline unsigned long _msecs_to_jiffies(const unsigned int m)
103168 +static inline unsigned long __intentional_overflow(-1) _msecs_to_jiffies(const unsigned int m)
103169 {
103170 return (m + (MSEC_PER_SEC / HZ) - 1) / (MSEC_PER_SEC / HZ);
103171 }
103172 @@ -307,7 +307,7 @@ static inline unsigned long _msecs_to_jiffies(const unsigned int m)
103173 *
103174 * But first make sure the multiplication result cannot overflow:
103175 */
103176 -static inline unsigned long _msecs_to_jiffies(const unsigned int m)
103177 +static inline unsigned long __intentional_overflow(-1) _msecs_to_jiffies(const unsigned int m)
103178 {
103179 if (m > jiffies_to_msecs(MAX_JIFFY_OFFSET))
103180 return MAX_JIFFY_OFFSET;
103181 @@ -318,7 +318,7 @@ static inline unsigned long _msecs_to_jiffies(const unsigned int m)
103182 * Generic case - multiply, round and divide. But first check that if
103183 * we are doing a net multiplication, that we wouldn't overflow:
103184 */
103185 -static inline unsigned long _msecs_to_jiffies(const unsigned int m)
103186 +static inline unsigned long __intentional_overflow(-1) _msecs_to_jiffies(const unsigned int m)
103187 {
103188 if (HZ > MSEC_PER_SEC && m > jiffies_to_msecs(MAX_JIFFY_OFFSET))
103189 return MAX_JIFFY_OFFSET;
103190 @@ -362,14 +362,14 @@ static __always_inline unsigned long msecs_to_jiffies(const unsigned int m)
103191 }
103192 }
103193
103194 -extern unsigned long __usecs_to_jiffies(const unsigned int u);
103195 +extern unsigned long __usecs_to_jiffies(const unsigned int u) __intentional_overflow(-1);
103196 #if !(USEC_PER_SEC % HZ)
103197 -static inline unsigned long _usecs_to_jiffies(const unsigned int u)
103198 +static inline unsigned long __intentional_overflow(-1) _usecs_to_jiffies(const unsigned int u)
103199 {
103200 return (u + (USEC_PER_SEC / HZ) - 1) / (USEC_PER_SEC / HZ);
103201 }
103202 #else
103203 -static inline unsigned long _usecs_to_jiffies(const unsigned int u)
103204 +static inline unsigned long __intentional_overflow(-1) _usecs_to_jiffies(const unsigned int u)
103205 {
103206 return (USEC_TO_HZ_MUL32 * u + USEC_TO_HZ_ADJ32)
103207 >> USEC_TO_HZ_SHR32;
103208 diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h
103209 index 6883e19..e854fcb 100644
103210 --- a/include/linux/kallsyms.h
103211 +++ b/include/linux/kallsyms.h
103212 @@ -15,7 +15,8 @@
103213
103214 struct module;
103215
103216 -#ifdef CONFIG_KALLSYMS
103217 +#if !defined(__INCLUDED_BY_HIDESYM) || !defined(CONFIG_KALLSYMS)
103218 +#if defined(CONFIG_KALLSYMS) && !defined(CONFIG_GRKERNSEC_HIDESYM)
103219 /* Lookup the address for a symbol. Returns 0 if not found. */
103220 unsigned long kallsyms_lookup_name(const char *name);
103221
103222 @@ -106,6 +107,21 @@ static inline int lookup_symbol_attrs(unsigned long addr, unsigned long *size, u
103223 /* Stupid that this does nothing, but I didn't create this mess. */
103224 #define __print_symbol(fmt, addr)
103225 #endif /*CONFIG_KALLSYMS*/
103226 +#else /* when included by kallsyms.c, vsnprintf.c, kprobes.c, or
103227 + arch/x86/kernel/dumpstack.c, with HIDESYM enabled */
103228 +extern unsigned long kallsyms_lookup_name(const char *name);
103229 +extern void __print_symbol(const char *fmt, unsigned long address);
103230 +extern int sprint_backtrace(char *buffer, unsigned long address);
103231 +extern int sprint_symbol(char *buffer, unsigned long address);
103232 +extern int sprint_symbol_no_offset(char *buffer, unsigned long address);
103233 +const char *kallsyms_lookup(unsigned long addr,
103234 + unsigned long *symbolsize,
103235 + unsigned long *offset,
103236 + char **modname, char *namebuf);
103237 +extern int kallsyms_lookup_size_offset(unsigned long addr,
103238 + unsigned long *symbolsize,
103239 + unsigned long *offset);
103240 +#endif
103241
103242 /* This macro allows us to keep printk typechecking */
103243 static __printf(1, 2)
103244 diff --git a/include/linux/key-type.h b/include/linux/key-type.h
103245 index 7463355..30de32e 100644
103246 --- a/include/linux/key-type.h
103247 +++ b/include/linux/key-type.h
103248 @@ -46,7 +46,7 @@ struct key_preparsed_payload {
103249 size_t quotalen; /* Quota length for proposed payload */
103250 time_t expiry; /* Expiry time of key */
103251 bool trusted; /* True if key is trusted */
103252 -};
103253 +} __randomize_layout;
103254
103255 typedef int (*request_key_actor_t)(struct key_construction *key,
103256 const char *op, void *aux);
103257 @@ -151,7 +151,7 @@ struct key_type {
103258 /* internal fields */
103259 struct list_head link; /* link in types list */
103260 struct lock_class_key lock_class; /* key->sem lock class */
103261 -};
103262 +} __do_const __randomize_layout;
103263
103264 extern struct key_type key_type_keyring;
103265
103266 diff --git a/include/linux/kgdb.h b/include/linux/kgdb.h
103267 index e465bb1..19f605fd 100644
103268 --- a/include/linux/kgdb.h
103269 +++ b/include/linux/kgdb.h
103270 @@ -52,7 +52,7 @@ extern int kgdb_connected;
103271 extern int kgdb_io_module_registered;
103272
103273 extern atomic_t kgdb_setting_breakpoint;
103274 -extern atomic_t kgdb_cpu_doing_single_step;
103275 +extern atomic_unchecked_t kgdb_cpu_doing_single_step;
103276
103277 extern struct task_struct *kgdb_usethread;
103278 extern struct task_struct *kgdb_contthread;
103279 @@ -254,7 +254,7 @@ struct kgdb_arch {
103280 void (*correct_hw_break)(void);
103281
103282 void (*enable_nmi)(bool on);
103283 -};
103284 +} __do_const;
103285
103286 /**
103287 * struct kgdb_io - Describe the interface for an I/O driver to talk with KGDB.
103288 @@ -279,7 +279,7 @@ struct kgdb_io {
103289 void (*pre_exception) (void);
103290 void (*post_exception) (void);
103291 int is_console;
103292 -};
103293 +} __do_const;
103294
103295 extern struct kgdb_arch arch_kgdb_ops;
103296
103297 diff --git a/include/linux/kmemleak.h b/include/linux/kmemleak.h
103298 index 4894c68..7824e6a 100644
103299 --- a/include/linux/kmemleak.h
103300 +++ b/include/linux/kmemleak.h
103301 @@ -27,7 +27,7 @@
103302
103303 extern void kmemleak_init(void) __init;
103304 extern void kmemleak_alloc(const void *ptr, size_t size, int min_count,
103305 - gfp_t gfp) __ref;
103306 + gfp_t gfp) __ref __size_overflow(2);
103307 extern void kmemleak_alloc_percpu(const void __percpu *ptr, size_t size,
103308 gfp_t gfp) __ref;
103309 extern void kmemleak_free(const void *ptr) __ref;
103310 @@ -63,7 +63,7 @@ static inline void kmemleak_erase(void **ptr)
103311 static inline void kmemleak_init(void)
103312 {
103313 }
103314 -static inline void kmemleak_alloc(const void *ptr, size_t size, int min_count,
103315 +static inline void __size_overflow(2) kmemleak_alloc(const void *ptr, size_t size, int min_count,
103316 gfp_t gfp)
103317 {
103318 }
103319 diff --git a/include/linux/kmod.h b/include/linux/kmod.h
103320 index fcfd2bf..bc6316e 100644
103321 --- a/include/linux/kmod.h
103322 +++ b/include/linux/kmod.h
103323 @@ -34,6 +34,8 @@ extern char modprobe_path[]; /* for sysctl */
103324 * usually useless though. */
103325 extern __printf(2, 3)
103326 int __request_module(bool wait, const char *name, ...);
103327 +extern __printf(3, 4)
103328 +int ___request_module(bool wait, char *param_name, const char *name, ...);
103329 #define request_module(mod...) __request_module(true, mod)
103330 #define request_module_nowait(mod...) __request_module(false, mod)
103331 #define try_then_request_module(x, mod...) \
103332 @@ -57,6 +59,9 @@ struct subprocess_info {
103333 struct work_struct work;
103334 struct completion *complete;
103335 char *path;
103336 +#ifdef CONFIG_GRKERNSEC
103337 + char *origpath;
103338 +#endif
103339 char **argv;
103340 char **envp;
103341 int wait;
103342 diff --git a/include/linux/kobject.h b/include/linux/kobject.h
103343 index e628459..5985b6e 100644
103344 --- a/include/linux/kobject.h
103345 +++ b/include/linux/kobject.h
103346 @@ -119,7 +119,7 @@ struct kobj_type {
103347 struct attribute **default_attrs;
103348 const struct kobj_ns_type_operations *(*child_ns_type)(struct kobject *kobj);
103349 const void *(*namespace)(struct kobject *kobj);
103350 -};
103351 +} __do_const;
103352
103353 struct kobj_uevent_env {
103354 char *argv[3];
103355 @@ -143,6 +143,7 @@ struct kobj_attribute {
103356 ssize_t (*store)(struct kobject *kobj, struct kobj_attribute *attr,
103357 const char *buf, size_t count);
103358 };
103359 +typedef struct kobj_attribute __no_const kobj_attribute_no_const;
103360
103361 extern const struct sysfs_ops kobj_sysfs_ops;
103362
103363 @@ -170,7 +171,7 @@ struct kset {
103364 spinlock_t list_lock;
103365 struct kobject kobj;
103366 const struct kset_uevent_ops *uevent_ops;
103367 -};
103368 +} __randomize_layout;
103369
103370 extern void kset_init(struct kset *kset);
103371 extern int __must_check kset_register(struct kset *kset);
103372 diff --git a/include/linux/kobject_ns.h b/include/linux/kobject_ns.h
103373 index df32d25..fb52e27 100644
103374 --- a/include/linux/kobject_ns.h
103375 +++ b/include/linux/kobject_ns.h
103376 @@ -44,7 +44,7 @@ struct kobj_ns_type_operations {
103377 const void *(*netlink_ns)(struct sock *sk);
103378 const void *(*initial_ns)(void);
103379 void (*drop_ns)(void *);
103380 -};
103381 +} __do_const;
103382
103383 int kobj_ns_type_register(const struct kobj_ns_type_operations *ops);
103384 int kobj_ns_type_registered(enum kobj_ns_type type);
103385 diff --git a/include/linux/kref.h b/include/linux/kref.h
103386 index e15828f..531fd0a 100644
103387 --- a/include/linux/kref.h
103388 +++ b/include/linux/kref.h
103389 @@ -67,7 +67,7 @@ static inline void kref_get(struct kref *kref)
103390 static inline int kref_sub(struct kref *kref, unsigned int count,
103391 void (*release)(struct kref *kref))
103392 {
103393 - WARN_ON(release == NULL);
103394 + BUG_ON(release == NULL);
103395
103396 if (atomic_sub_and_test((int) count, &kref->refcount)) {
103397 release(kref);
103398 diff --git a/include/linux/libata.h b/include/linux/libata.h
103399 index b20a275..4aff061 100644
103400 --- a/include/linux/libata.h
103401 +++ b/include/linux/libata.h
103402 @@ -992,7 +992,7 @@ struct ata_port_operations {
103403 * fields must be pointers.
103404 */
103405 const struct ata_port_operations *inherits;
103406 -};
103407 +} __do_const;
103408
103409 struct ata_port_info {
103410 unsigned long flags;
103411 diff --git a/include/linux/linkage.h b/include/linux/linkage.h
103412 index a6a42dd..6c5ebce 100644
103413 --- a/include/linux/linkage.h
103414 +++ b/include/linux/linkage.h
103415 @@ -36,6 +36,7 @@
103416 #endif
103417
103418 #define __page_aligned_data __section(.data..page_aligned) __aligned(PAGE_SIZE)
103419 +#define __page_aligned_rodata __read_only __aligned(PAGE_SIZE)
103420 #define __page_aligned_bss __section(.bss..page_aligned) __aligned(PAGE_SIZE)
103421
103422 /*
103423 diff --git a/include/linux/list.h b/include/linux/list.h
103424 index 993395a..b481018 100644
103425 --- a/include/linux/list.h
103426 +++ b/include/linux/list.h
103427 @@ -113,6 +113,19 @@ extern void __list_del_entry(struct list_head *entry);
103428 extern void list_del(struct list_head *entry);
103429 #endif
103430
103431 +extern void __pax_list_add(struct list_head *new,
103432 + struct list_head *prev,
103433 + struct list_head *next);
103434 +static inline void pax_list_add(struct list_head *new, struct list_head *head)
103435 +{
103436 + __pax_list_add(new, head, head->next);
103437 +}
103438 +static inline void pax_list_add_tail(struct list_head *new, struct list_head *head)
103439 +{
103440 + __pax_list_add(new, head->prev, head);
103441 +}
103442 +extern void pax_list_del(struct list_head *entry);
103443 +
103444 /**
103445 * list_replace - replace old entry by new one
103446 * @old : the element to be replaced
103447 @@ -146,6 +159,8 @@ static inline void list_del_init(struct list_head *entry)
103448 INIT_LIST_HEAD(entry);
103449 }
103450
103451 +extern void pax_list_del_init(struct list_head *entry);
103452 +
103453 /**
103454 * list_move - delete from one list and add as another's head
103455 * @list: the entry to move
103456 diff --git a/include/linux/lockref.h b/include/linux/lockref.h
103457 index b10b122..d37b3de 100644
103458 --- a/include/linux/lockref.h
103459 +++ b/include/linux/lockref.h
103460 @@ -28,7 +28,7 @@ struct lockref {
103461 #endif
103462 struct {
103463 spinlock_t lock;
103464 - int count;
103465 + atomic_t count;
103466 };
103467 };
103468 };
103469 @@ -43,9 +43,29 @@ extern void lockref_mark_dead(struct lockref *);
103470 extern int lockref_get_not_dead(struct lockref *);
103471
103472 /* Must be called under spinlock for reliable results */
103473 -static inline int __lockref_is_dead(const struct lockref *l)
103474 +static inline int __lockref_is_dead(const struct lockref *lockref)
103475 {
103476 - return ((int)l->count < 0);
103477 + return atomic_read(&lockref->count) < 0;
103478 +}
103479 +
103480 +static inline int __lockref_read(const struct lockref *lockref)
103481 +{
103482 + return atomic_read(&lockref->count);
103483 +}
103484 +
103485 +static inline void __lockref_set(struct lockref *lockref, int count)
103486 +{
103487 + atomic_set(&lockref->count, count);
103488 +}
103489 +
103490 +static inline void __lockref_inc(struct lockref *lockref)
103491 +{
103492 + atomic_inc(&lockref->count);
103493 +}
103494 +
103495 +static inline void __lockref_dec(struct lockref *lockref)
103496 +{
103497 + atomic_dec(&lockref->count);
103498 }
103499
103500 #endif /* __LINUX_LOCKREF_H */
103501 diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h
103502 index ec3a6ba..72c79d4 100644
103503 --- a/include/linux/lsm_hooks.h
103504 +++ b/include/linux/lsm_hooks.h
103505 @@ -1824,7 +1824,7 @@ struct security_hook_heads {
103506 struct list_head audit_rule_match;
103507 struct list_head audit_rule_free;
103508 #endif /* CONFIG_AUDIT */
103509 -};
103510 +} __randomize_layout;
103511
103512 /*
103513 * Security module hook list structure.
103514 @@ -1834,7 +1834,7 @@ struct security_hook_list {
103515 struct list_head list;
103516 struct list_head *head;
103517 union security_list_options hook;
103518 -};
103519 +} __randomize_layout;
103520
103521 /*
103522 * Initializing a security_hook_list structure takes
103523 diff --git a/include/linux/math64.h b/include/linux/math64.h
103524 index 6e8b5b2..8e8a37d 100644
103525 --- a/include/linux/math64.h
103526 +++ b/include/linux/math64.h
103527 @@ -15,7 +15,7 @@
103528 * This is commonly provided by 32bit archs to provide an optimized 64bit
103529 * divide.
103530 */
103531 -static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
103532 +static inline u64 __intentional_overflow(-1) div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
103533 {
103534 *remainder = dividend % divisor;
103535 return dividend / divisor;
103536 @@ -42,7 +42,7 @@ static inline u64 div64_u64_rem(u64 dividend, u64 divisor, u64 *remainder)
103537 /**
103538 * div64_u64 - unsigned 64bit divide with 64bit divisor
103539 */
103540 -static inline u64 div64_u64(u64 dividend, u64 divisor)
103541 +static inline u64 __intentional_overflow(-1) div64_u64(u64 dividend, u64 divisor)
103542 {
103543 return dividend / divisor;
103544 }
103545 @@ -61,7 +61,7 @@ static inline s64 div64_s64(s64 dividend, s64 divisor)
103546 #define div64_ul(x, y) div_u64((x), (y))
103547
103548 #ifndef div_u64_rem
103549 -static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
103550 +static inline u64 __intentional_overflow(-1) div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
103551 {
103552 *remainder = do_div(dividend, divisor);
103553 return dividend;
103554 @@ -77,7 +77,7 @@ extern u64 div64_u64_rem(u64 dividend, u64 divisor, u64 *remainder);
103555 #endif
103556
103557 #ifndef div64_u64
103558 -extern u64 div64_u64(u64 dividend, u64 divisor);
103559 +extern u64 __intentional_overflow(-1) div64_u64(u64 dividend, u64 divisor);
103560 #endif
103561
103562 #ifndef div64_s64
103563 @@ -94,7 +94,7 @@ extern s64 div64_s64(s64 dividend, s64 divisor);
103564 * divide.
103565 */
103566 #ifndef div_u64
103567 -static inline u64 div_u64(u64 dividend, u32 divisor)
103568 +static inline u64 __intentional_overflow(-1) div_u64(u64 dividend, u32 divisor)
103569 {
103570 u32 remainder;
103571 return div_u64_rem(dividend, divisor, &remainder);
103572 diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
103573 index cd0e241..ea80891 100644
103574 --- a/include/linux/memcontrol.h
103575 +++ b/include/linux/memcontrol.h
103576 @@ -259,7 +259,7 @@ struct mem_cgroup {
103577 int last_scanned_node;
103578 #if MAX_NUMNODES > 1
103579 nodemask_t scan_nodes;
103580 - atomic_t numainfo_events;
103581 + atomic64_t numainfo_events;
103582 atomic_t numainfo_updating;
103583 #endif
103584
103585 diff --git a/include/linux/mempolicy.h b/include/linux/mempolicy.h
103586 index 3d385c8..deacb6a 100644
103587 --- a/include/linux/mempolicy.h
103588 +++ b/include/linux/mempolicy.h
103589 @@ -91,6 +91,10 @@ static inline struct mempolicy *mpol_dup(struct mempolicy *pol)
103590 }
103591
103592 #define vma_policy(vma) ((vma)->vm_policy)
103593 +static inline void set_vma_policy(struct vm_area_struct *vma, struct mempolicy *pol)
103594 +{
103595 + vma->vm_policy = pol;
103596 +}
103597
103598 static inline void mpol_get(struct mempolicy *pol)
103599 {
103600 @@ -229,6 +233,9 @@ static inline void mpol_free_shared_policy(struct shared_policy *p)
103601 }
103602
103603 #define vma_policy(vma) NULL
103604 +static inline void set_vma_policy(struct vm_area_struct *vma, struct mempolicy *pol)
103605 +{
103606 +}
103607
103608 static inline int
103609 vma_dup_policy(struct vm_area_struct *src, struct vm_area_struct *dst)
103610 diff --git a/include/linux/mm.h b/include/linux/mm.h
103611 index 00bad77..356be09 100644
103612 --- a/include/linux/mm.h
103613 +++ b/include/linux/mm.h
103614 @@ -143,6 +143,11 @@ extern unsigned int kobjsize(const void *objp);
103615 #define VM_ACCOUNT 0x00100000 /* Is a VM accounted object */
103616 #define VM_NORESERVE 0x00200000 /* should the VM suppress accounting */
103617 #define VM_HUGETLB 0x00400000 /* Huge TLB Page VM */
103618 +
103619 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_X86_32)
103620 +#define VM_PAGEEXEC 0x00800000 /* vma->vm_page_prot needs special handling */
103621 +#endif
103622 +
103623 #define VM_ARCH_1 0x01000000 /* Architecture-specific flag */
103624 #define VM_ARCH_2 0x02000000
103625 #define VM_DONTDUMP 0x04000000 /* Do not include in the core dump */
103626 @@ -268,8 +273,8 @@ struct vm_operations_struct {
103627 /* called by access_process_vm when get_user_pages() fails, typically
103628 * for use by special VMAs that can switch between memory and hardware
103629 */
103630 - int (*access)(struct vm_area_struct *vma, unsigned long addr,
103631 - void *buf, int len, int write);
103632 + ssize_t (*access)(struct vm_area_struct *vma, unsigned long addr,
103633 + void *buf, size_t len, int write);
103634
103635 /* Called by the /proc/PID/maps code to ask the vma whether it
103636 * has a special name. Returning non-NULL will also cause this
103637 @@ -307,6 +312,7 @@ struct vm_operations_struct {
103638 struct page *(*find_special_page)(struct vm_area_struct *vma,
103639 unsigned long addr);
103640 };
103641 +typedef struct vm_operations_struct __no_const vm_operations_struct_no_const;
103642
103643 struct mmu_gather;
103644 struct inode;
103645 @@ -1142,8 +1148,8 @@ int follow_pfn(struct vm_area_struct *vma, unsigned long address,
103646 unsigned long *pfn);
103647 int follow_phys(struct vm_area_struct *vma, unsigned long address,
103648 unsigned int flags, unsigned long *prot, resource_size_t *phys);
103649 -int generic_access_phys(struct vm_area_struct *vma, unsigned long addr,
103650 - void *buf, int len, int write);
103651 +ssize_t generic_access_phys(struct vm_area_struct *vma, unsigned long addr,
103652 + void *buf, size_t len, int write);
103653
103654 static inline void unmap_shared_mapping_range(struct address_space *mapping,
103655 loff_t const holebegin, loff_t const holelen)
103656 @@ -1183,9 +1189,9 @@ static inline int fixup_user_fault(struct task_struct *tsk,
103657 }
103658 #endif
103659
103660 -extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write);
103661 -extern int access_remote_vm(struct mm_struct *mm, unsigned long addr,
103662 - void *buf, int len, int write);
103663 +extern ssize_t access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, size_t len, int write);
103664 +extern ssize_t access_remote_vm(struct mm_struct *mm, unsigned long addr,
103665 + void *buf, size_t len, int write);
103666
103667 long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
103668 unsigned long start, unsigned long nr_pages,
103669 @@ -1276,39 +1282,11 @@ int clear_page_dirty_for_io(struct page *page);
103670
103671 int get_cmdline(struct task_struct *task, char *buffer, int buflen);
103672
103673 -/* Is the vma a continuation of the stack vma above it? */
103674 -static inline int vma_growsdown(struct vm_area_struct *vma, unsigned long addr)
103675 -{
103676 - return vma && (vma->vm_end == addr) && (vma->vm_flags & VM_GROWSDOWN);
103677 -}
103678 -
103679 static inline bool vma_is_anonymous(struct vm_area_struct *vma)
103680 {
103681 return !vma->vm_ops;
103682 }
103683
103684 -static inline int stack_guard_page_start(struct vm_area_struct *vma,
103685 - unsigned long addr)
103686 -{
103687 - return (vma->vm_flags & VM_GROWSDOWN) &&
103688 - (vma->vm_start == addr) &&
103689 - !vma_growsdown(vma->vm_prev, addr);
103690 -}
103691 -
103692 -/* Is the vma a continuation of the stack vma below it? */
103693 -static inline int vma_growsup(struct vm_area_struct *vma, unsigned long addr)
103694 -{
103695 - return vma && (vma->vm_start == addr) && (vma->vm_flags & VM_GROWSUP);
103696 -}
103697 -
103698 -static inline int stack_guard_page_end(struct vm_area_struct *vma,
103699 - unsigned long addr)
103700 -{
103701 - return (vma->vm_flags & VM_GROWSUP) &&
103702 - (vma->vm_end == addr) &&
103703 - !vma_growsup(vma->vm_next, addr);
103704 -}
103705 -
103706 extern struct task_struct *task_of_stack(struct task_struct *task,
103707 struct vm_area_struct *vma, bool in_group);
103708
103709 @@ -1431,8 +1409,15 @@ static inline int __pud_alloc(struct mm_struct *mm, pgd_t *pgd,
103710 {
103711 return 0;
103712 }
103713 +
103714 +static inline int __pud_alloc_kernel(struct mm_struct *mm, pgd_t *pgd,
103715 + unsigned long address)
103716 +{
103717 + return 0;
103718 +}
103719 #else
103720 int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address);
103721 +int __pud_alloc_kernel(struct mm_struct *mm, pgd_t *pgd, unsigned long address);
103722 #endif
103723
103724 #if defined(__PAGETABLE_PMD_FOLDED) || !defined(CONFIG_MMU)
103725 @@ -1442,6 +1427,12 @@ static inline int __pmd_alloc(struct mm_struct *mm, pud_t *pud,
103726 return 0;
103727 }
103728
103729 +static inline int __pmd_alloc_kernel(struct mm_struct *mm, pud_t *pud,
103730 + unsigned long address)
103731 +{
103732 + return 0;
103733 +}
103734 +
103735 static inline void mm_nr_pmds_init(struct mm_struct *mm) {}
103736
103737 static inline unsigned long mm_nr_pmds(struct mm_struct *mm)
103738 @@ -1454,6 +1445,7 @@ static inline void mm_dec_nr_pmds(struct mm_struct *mm) {}
103739
103740 #else
103741 int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address);
103742 +int __pmd_alloc_kernel(struct mm_struct *mm, pud_t *pud, unsigned long address);
103743
103744 static inline void mm_nr_pmds_init(struct mm_struct *mm)
103745 {
103746 @@ -1491,11 +1483,23 @@ static inline pud_t *pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long a
103747 NULL: pud_offset(pgd, address);
103748 }
103749
103750 +static inline pud_t *pud_alloc_kernel(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
103751 +{
103752 + return (unlikely(pgd_none(*pgd)) && __pud_alloc_kernel(mm, pgd, address))?
103753 + NULL: pud_offset(pgd, address);
103754 +}
103755 +
103756 static inline pmd_t *pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
103757 {
103758 return (unlikely(pud_none(*pud)) && __pmd_alloc(mm, pud, address))?
103759 NULL: pmd_offset(pud, address);
103760 }
103761 +
103762 +static inline pmd_t *pmd_alloc_kernel(struct mm_struct *mm, pud_t *pud, unsigned long address)
103763 +{
103764 + return (unlikely(pud_none(*pud)) && __pmd_alloc_kernel(mm, pud, address))?
103765 + NULL: pmd_offset(pud, address);
103766 +}
103767 #endif /* CONFIG_MMU && !__ARCH_HAS_4LEVEL_HACK */
103768
103769 #if USE_SPLIT_PTE_PTLOCKS
103770 @@ -1878,12 +1882,23 @@ extern struct vm_area_struct *copy_vma(struct vm_area_struct **,
103771 bool *need_rmap_locks);
103772 extern void exit_mmap(struct mm_struct *);
103773
103774 +#if defined(CONFIG_GRKERNSEC) && (defined(CONFIG_GRKERNSEC_RESLOG) || !defined(CONFIG_GRKERNSEC_NO_RBAC))
103775 +extern void gr_learn_resource(const struct task_struct *task, const int res,
103776 + const unsigned long wanted, const int gt);
103777 +#else
103778 +static inline void gr_learn_resource(const struct task_struct *task, const int res,
103779 + const unsigned long wanted, const int gt)
103780 +{
103781 +}
103782 +#endif
103783 +
103784 static inline int check_data_rlimit(unsigned long rlim,
103785 unsigned long new,
103786 unsigned long start,
103787 unsigned long end_data,
103788 unsigned long start_data)
103789 {
103790 + gr_learn_resource(current, RLIMIT_DATA, (new - start) + (end_data - start_data), 1);
103791 if (rlim < RLIM_INFINITY) {
103792 if (((new - start) + (end_data - start_data)) > rlim)
103793 return -ENOSPC;
103794 @@ -1916,6 +1931,7 @@ extern unsigned long do_mmap(struct file *file, unsigned long addr,
103795 unsigned long len, unsigned long prot, unsigned long flags,
103796 vm_flags_t vm_flags, unsigned long pgoff, unsigned long *populate);
103797 extern int do_munmap(struct mm_struct *, unsigned long, size_t);
103798 +extern int __do_munmap(struct mm_struct *, unsigned long, size_t);
103799
103800 static inline unsigned long
103801 do_mmap_pgoff(struct file *file, unsigned long addr,
103802 @@ -1952,10 +1968,11 @@ struct vm_unmapped_area_info {
103803 unsigned long high_limit;
103804 unsigned long align_mask;
103805 unsigned long align_offset;
103806 + unsigned long threadstack_offset;
103807 };
103808
103809 -extern unsigned long unmapped_area(struct vm_unmapped_area_info *info);
103810 -extern unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info);
103811 +extern unsigned long unmapped_area(const struct vm_unmapped_area_info *info);
103812 +extern unsigned long unmapped_area_topdown(const struct vm_unmapped_area_info *info);
103813
103814 /*
103815 * Search for an unmapped address range.
103816 @@ -1967,7 +1984,7 @@ extern unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info);
103817 * - satisfies (begin_addr & align_mask) == (align_offset & align_mask)
103818 */
103819 static inline unsigned long
103820 -vm_unmapped_area(struct vm_unmapped_area_info *info)
103821 +vm_unmapped_area(const struct vm_unmapped_area_info *info)
103822 {
103823 if (info->flags & VM_UNMAPPED_AREA_TOPDOWN)
103824 return unmapped_area_topdown(info);
103825 @@ -2027,6 +2044,10 @@ extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long add
103826 extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr,
103827 struct vm_area_struct **pprev);
103828
103829 +extern struct vm_area_struct *pax_find_mirror_vma(struct vm_area_struct *vma);
103830 +extern __must_check long pax_mirror_vma(struct vm_area_struct *vma_m, struct vm_area_struct *vma);
103831 +extern void pax_mirror_file_pte(struct vm_area_struct *vma, unsigned long address, struct page *page_m, spinlock_t *ptl);
103832 +
103833 /* Look up the first VMA which intersects the interval start_addr..end_addr-1,
103834 NULL if none. Assume start_addr < end_addr. */
103835 static inline struct vm_area_struct * find_vma_intersection(struct mm_struct * mm, unsigned long start_addr, unsigned long end_addr)
103836 @@ -2056,10 +2077,10 @@ static inline struct vm_area_struct *find_exact_vma(struct mm_struct *mm,
103837 }
103838
103839 #ifdef CONFIG_MMU
103840 -pgprot_t vm_get_page_prot(unsigned long vm_flags);
103841 +pgprot_t vm_get_page_prot(vm_flags_t vm_flags);
103842 void vma_set_page_prot(struct vm_area_struct *vma);
103843 #else
103844 -static inline pgprot_t vm_get_page_prot(unsigned long vm_flags)
103845 +static inline pgprot_t vm_get_page_prot(vm_flags_t vm_flags)
103846 {
103847 return __pgprot(0);
103848 }
103849 @@ -2122,6 +2143,11 @@ void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long);
103850 static inline void vm_stat_account(struct mm_struct *mm,
103851 unsigned long flags, struct file *file, long pages)
103852 {
103853 +
103854 +#ifdef CONFIG_PAX_RANDMMAP
103855 + if (!(mm->pax_flags & MF_PAX_RANDMMAP) || (flags & (VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)))
103856 +#endif
103857 +
103858 mm->total_vm += pages;
103859 }
103860 #endif /* CONFIG_PROC_FS */
103861 @@ -2226,7 +2252,7 @@ extern void put_hwpoison_page(struct page *page);
103862 extern int sysctl_memory_failure_early_kill;
103863 extern int sysctl_memory_failure_recovery;
103864 extern void shake_page(struct page *p, int access);
103865 -extern atomic_long_t num_poisoned_pages;
103866 +extern atomic_long_unchecked_t num_poisoned_pages;
103867 extern int soft_offline_page(struct page *page, int flags);
103868
103869
103870 @@ -2311,5 +2337,11 @@ void __init setup_nr_node_ids(void);
103871 static inline void setup_nr_node_ids(void) {}
103872 #endif
103873
103874 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
103875 +extern void track_exec_limit(struct mm_struct *mm, unsigned long start, unsigned long end, unsigned long prot);
103876 +#else
103877 +static inline void track_exec_limit(struct mm_struct *mm, unsigned long start, unsigned long end, unsigned long prot) {}
103878 +#endif
103879 +
103880 #endif /* __KERNEL__ */
103881 #endif /* _LINUX_MM_H */
103882 diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
103883 index f8d1492..a6dfed0 100644
103884 --- a/include/linux/mm_types.h
103885 +++ b/include/linux/mm_types.h
103886 @@ -355,7 +355,9 @@ struct vm_area_struct {
103887 struct mempolicy *vm_policy; /* NUMA policy for the VMA */
103888 #endif
103889 struct vm_userfaultfd_ctx vm_userfaultfd_ctx;
103890 -};
103891 +
103892 + struct vm_area_struct *vm_mirror;/* PaX: mirror vma or NULL */
103893 +} __randomize_layout;
103894
103895 struct core_thread {
103896 struct task_struct *task;
103897 @@ -511,7 +513,25 @@ struct mm_struct {
103898 #ifdef CONFIG_HUGETLB_PAGE
103899 atomic_long_t hugetlb_usage;
103900 #endif
103901 -};
103902 +
103903 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
103904 + unsigned long pax_flags;
103905 +#endif
103906 +
103907 +#ifdef CONFIG_PAX_DLRESOLVE
103908 + unsigned long call_dl_resolve;
103909 +#endif
103910 +
103911 +#if defined(CONFIG_PPC32) && defined(CONFIG_PAX_EMUSIGRT)
103912 + unsigned long call_syscall;
103913 +#endif
103914 +
103915 +#ifdef CONFIG_PAX_ASLR
103916 + unsigned long delta_mmap; /* randomized offset */
103917 + unsigned long delta_stack; /* randomized offset */
103918 +#endif
103919 +
103920 +} __randomize_layout;
103921
103922 static inline void mm_init_cpumask(struct mm_struct *mm)
103923 {
103924 diff --git a/include/linux/mmiotrace.h b/include/linux/mmiotrace.h
103925 index 3ba327a..85cd5ce 100644
103926 --- a/include/linux/mmiotrace.h
103927 +++ b/include/linux/mmiotrace.h
103928 @@ -46,7 +46,7 @@ extern int kmmio_handler(struct pt_regs *regs, unsigned long addr);
103929 /* Called from ioremap.c */
103930 extern void mmiotrace_ioremap(resource_size_t offset, unsigned long size,
103931 void __iomem *addr);
103932 -extern void mmiotrace_iounmap(volatile void __iomem *addr);
103933 +extern void mmiotrace_iounmap(const volatile void __iomem *addr);
103934
103935 /* For anyone to insert markers. Remember trailing newline. */
103936 extern __printf(1, 2) int mmiotrace_printk(const char *fmt, ...);
103937 @@ -66,7 +66,7 @@ static inline void mmiotrace_ioremap(resource_size_t offset,
103938 {
103939 }
103940
103941 -static inline void mmiotrace_iounmap(volatile void __iomem *addr)
103942 +static inline void mmiotrace_iounmap(const volatile void __iomem *addr)
103943 {
103944 }
103945
103946 diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
103947 index e23a9e7..75994f3 100644
103948 --- a/include/linux/mmzone.h
103949 +++ b/include/linux/mmzone.h
103950 @@ -527,7 +527,7 @@ struct zone {
103951
103952 ZONE_PADDING(_pad3_)
103953 /* Zone statistics */
103954 - atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
103955 + atomic_long_unchecked_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
103956 } ____cacheline_internodealigned_in_smp;
103957
103958 enum zone_flags {
103959 diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
103960 index 64f36e0..fa7f0d8 100644
103961 --- a/include/linux/mod_devicetable.h
103962 +++ b/include/linux/mod_devicetable.h
103963 @@ -139,7 +139,7 @@ struct usb_device_id {
103964 #define USB_DEVICE_ID_MATCH_INT_PROTOCOL 0x0200
103965 #define USB_DEVICE_ID_MATCH_INT_NUMBER 0x0400
103966
103967 -#define HID_ANY_ID (~0)
103968 +#define HID_ANY_ID (~0U)
103969 #define HID_BUS_ANY 0xffff
103970 #define HID_GROUP_ANY 0x0000
103971
103972 @@ -480,7 +480,7 @@ struct dmi_system_id {
103973 const char *ident;
103974 struct dmi_strmatch matches[4];
103975 void *driver_data;
103976 -};
103977 +} __do_const;
103978 /*
103979 * struct dmi_device_id appears during expansion of
103980 * "MODULE_DEVICE_TABLE(dmi, x)". Compiler doesn't look inside it
103981 diff --git a/include/linux/module.h b/include/linux/module.h
103982 index b229a99..37a70e1 100644
103983 --- a/include/linux/module.h
103984 +++ b/include/linux/module.h
103985 @@ -19,9 +19,11 @@
103986 #include <linux/jump_label.h>
103987 #include <linux/export.h>
103988 #include <linux/rbtree_latch.h>
103989 +#include <linux/fs.h>
103990
103991 #include <linux/percpu.h>
103992 #include <asm/module.h>
103993 +#include <asm/pgtable.h>
103994
103995 /* In stripped ARM and x86-64 modules, ~ is surprisingly rare. */
103996 #define MODULE_SIG_STRING "~Module signature appended~\n"
103997 @@ -44,7 +46,7 @@ struct module_kobject {
103998 struct kobject *drivers_dir;
103999 struct module_param_attrs *mp;
104000 struct completion *kobj_completion;
104001 -};
104002 +} __randomize_layout;
104003
104004 struct module_attribute {
104005 struct attribute attr;
104006 @@ -56,12 +58,13 @@ struct module_attribute {
104007 int (*test)(struct module *);
104008 void (*free)(struct module *);
104009 };
104010 +typedef struct module_attribute __no_const module_attribute_no_const;
104011
104012 struct module_version_attribute {
104013 struct module_attribute mattr;
104014 const char *module_name;
104015 const char *version;
104016 -} __attribute__ ((__aligned__(sizeof(void *))));
104017 +} __do_const __attribute__ ((__aligned__(sizeof(void *))));
104018
104019 extern ssize_t __modver_version_show(struct module_attribute *,
104020 struct module_kobject *, char *);
104021 @@ -319,7 +322,7 @@ struct module {
104022
104023 /* Sysfs stuff. */
104024 struct module_kobject mkobj;
104025 - struct module_attribute *modinfo_attrs;
104026 + module_attribute_no_const *modinfo_attrs;
104027 const char *version;
104028 const char *srcversion;
104029 struct kobject *holders_dir;
104030 @@ -376,20 +379,21 @@ struct module {
104031 * If this is non-NULL, vfree() after init() returns.
104032 *
104033 * Cacheline align here, such that:
104034 - * module_init, module_core, init_size, core_size,
104035 + * module_init_*, module_core_*, init_size_*, core_size_*,
104036 * init_text_size, core_text_size and mtn_core::{mod,node[0]}
104037 * are on the same cacheline.
104038 */
104039 - void *module_init ____cacheline_aligned;
104040 + void *module_init_rw ____cacheline_aligned;
104041 + void *module_init_rx;
104042
104043 /* Here is the actual code + data, vfree'd on unload. */
104044 - void *module_core;
104045 + void *module_core_rx, *module_core_rw;
104046
104047 /* Here are the sizes of the init and core sections */
104048 - unsigned int init_size, core_size;
104049 + unsigned int init_size_rw, core_size_rw;
104050
104051 /* The size of the executable code in each section. */
104052 - unsigned int init_text_size, core_text_size;
104053 + unsigned int init_size_rx, core_size_rx;
104054
104055 #ifdef CONFIG_MODULES_TREE_LOOKUP
104056 /*
104057 @@ -397,13 +401,12 @@ struct module {
104058 * above entries such that a regular lookup will only touch one
104059 * cacheline.
104060 */
104061 - struct mod_tree_node mtn_core;
104062 - struct mod_tree_node mtn_init;
104063 + struct mod_tree_node mtn_core_rw;
104064 + struct mod_tree_node mtn_core_rx;
104065 + struct mod_tree_node mtn_init_rw;
104066 + struct mod_tree_node mtn_init_rx;
104067 #endif
104068
104069 - /* Size of RO sections of the module (text+rodata) */
104070 - unsigned int init_ro_size, core_ro_size;
104071 -
104072 /* Arch-specific module values */
104073 struct mod_arch_specific arch;
104074
104075 @@ -455,6 +458,10 @@ struct module {
104076 unsigned int num_trace_events;
104077 struct trace_enum_map **trace_enums;
104078 unsigned int num_trace_enums;
104079 + struct file_operations trace_id;
104080 + struct file_operations trace_enable;
104081 + struct file_operations trace_format;
104082 + struct file_operations trace_filter;
104083 #endif
104084 #ifdef CONFIG_FTRACE_MCOUNT_RECORD
104085 unsigned int num_ftrace_callsites;
104086 @@ -482,7 +489,8 @@ struct module {
104087 ctor_fn_t *ctors;
104088 unsigned int num_ctors;
104089 #endif
104090 -} ____cacheline_aligned;
104091 +} ____cacheline_aligned __randomize_layout;
104092 +
104093 #ifndef MODULE_ARCH_INIT
104094 #define MODULE_ARCH_INIT {}
104095 #endif
104096 @@ -503,18 +511,48 @@ bool is_module_address(unsigned long addr);
104097 bool is_module_percpu_address(unsigned long addr);
104098 bool is_module_text_address(unsigned long addr);
104099
104100 +static inline int within_module_range(unsigned long addr, void *start, unsigned long size)
104101 +{
104102 +
104103 +#ifdef CONFIG_PAX_KERNEXEC
104104 + if (ktla_ktva(addr) >= (unsigned long)start &&
104105 + ktla_ktva(addr) < (unsigned long)start + size)
104106 + return 1;
104107 +#endif
104108 +
104109 + return ((void *)addr >= start && (void *)addr < start + size);
104110 +}
104111 +
104112 +static inline int within_module_core_rx(unsigned long addr, const struct module *mod)
104113 +{
104114 + return within_module_range(addr, mod->module_core_rx, mod->core_size_rx);
104115 +}
104116 +
104117 +static inline int within_module_core_rw(unsigned long addr, const struct module *mod)
104118 +{
104119 + return within_module_range(addr, mod->module_core_rw, mod->core_size_rw);
104120 +}
104121 +
104122 +static inline int within_module_init_rx(unsigned long addr, const struct module *mod)
104123 +{
104124 + return within_module_range(addr, mod->module_init_rx, mod->init_size_rx);
104125 +}
104126 +
104127 +static inline int within_module_init_rw(unsigned long addr, const struct module *mod)
104128 +{
104129 + return within_module_range(addr, mod->module_init_rw, mod->init_size_rw);
104130 +}
104131 +
104132 static inline bool within_module_core(unsigned long addr,
104133 const struct module *mod)
104134 {
104135 - return (unsigned long)mod->module_core <= addr &&
104136 - addr < (unsigned long)mod->module_core + mod->core_size;
104137 + return within_module_core_rx(addr, mod) || within_module_core_rw(addr, mod);
104138 }
104139
104140 static inline bool within_module_init(unsigned long addr,
104141 const struct module *mod)
104142 {
104143 - return (unsigned long)mod->module_init <= addr &&
104144 - addr < (unsigned long)mod->module_init + mod->init_size;
104145 + return within_module_init_rx(addr, mod) || within_module_init_rw(addr, mod);
104146 }
104147
104148 static inline bool within_module(unsigned long addr, const struct module *mod)
104149 diff --git a/include/linux/moduleloader.h b/include/linux/moduleloader.h
104150 index 4d0cb9b..3169ac7 100644
104151 --- a/include/linux/moduleloader.h
104152 +++ b/include/linux/moduleloader.h
104153 @@ -25,9 +25,21 @@ unsigned int arch_mod_section_prepend(struct module *mod, unsigned int section);
104154 sections. Returns NULL on failure. */
104155 void *module_alloc(unsigned long size);
104156
104157 +#ifdef CONFIG_PAX_KERNEXEC
104158 +void *module_alloc_exec(unsigned long size);
104159 +#else
104160 +#define module_alloc_exec(x) module_alloc(x)
104161 +#endif
104162 +
104163 /* Free memory returned from module_alloc. */
104164 void module_memfree(void *module_region);
104165
104166 +#ifdef CONFIG_PAX_KERNEXEC
104167 +void module_memfree_exec(void *module_region);
104168 +#else
104169 +#define module_memfree_exec(x) module_memfree((x))
104170 +#endif
104171 +
104172 /*
104173 * Apply the given relocation to the (simplified) ELF. Return -error
104174 * or 0.
104175 @@ -45,8 +57,10 @@ static inline int apply_relocate(Elf_Shdr *sechdrs,
104176 unsigned int relsec,
104177 struct module *me)
104178 {
104179 +#ifdef CONFIG_MODULES
104180 printk(KERN_ERR "module %s: REL relocation unsupported\n",
104181 module_name(me));
104182 +#endif
104183 return -ENOEXEC;
104184 }
104185 #endif
104186 @@ -68,8 +82,10 @@ static inline int apply_relocate_add(Elf_Shdr *sechdrs,
104187 unsigned int relsec,
104188 struct module *me)
104189 {
104190 +#ifdef CONFIG_MODULES
104191 printk(KERN_ERR "module %s: REL relocation unsupported\n",
104192 module_name(me));
104193 +#endif
104194 return -ENOEXEC;
104195 }
104196 #endif
104197 diff --git a/include/linux/moduleparam.h b/include/linux/moduleparam.h
104198 index 52666d9..9701f5e 100644
104199 --- a/include/linux/moduleparam.h
104200 +++ b/include/linux/moduleparam.h
104201 @@ -289,7 +289,7 @@ static inline void kernel_param_unlock(struct module *mod)
104202 * @len is usually just sizeof(string).
104203 */
104204 #define module_param_string(name, string, len, perm) \
104205 - static const struct kparam_string __param_string_##name \
104206 + static const struct kparam_string __param_string_##name __used \
104207 = { len, string }; \
104208 __module_param_call(MODULE_PARAM_PREFIX, name, \
104209 &param_ops_string, \
104210 @@ -441,7 +441,7 @@ extern int param_set_bint(const char *val, const struct kernel_param *kp);
104211 */
104212 #define module_param_array_named(name, array, type, nump, perm) \
104213 param_check_##type(name, &(array)[0]); \
104214 - static const struct kparam_array __param_arr_##name \
104215 + static const struct kparam_array __param_arr_##name __used \
104216 = { .max = ARRAY_SIZE(array), .num = nump, \
104217 .ops = &param_ops_##type, \
104218 .elemsize = sizeof(array[0]), .elem = array }; \
104219 diff --git a/include/linux/mount.h b/include/linux/mount.h
104220 index f822c3c..958ca0a 100644
104221 --- a/include/linux/mount.h
104222 +++ b/include/linux/mount.h
104223 @@ -67,7 +67,7 @@ struct vfsmount {
104224 struct dentry *mnt_root; /* root of the mounted tree */
104225 struct super_block *mnt_sb; /* pointer to superblock */
104226 int mnt_flags;
104227 -};
104228 +} __randomize_layout;
104229
104230 struct file; /* forward dec */
104231 struct path;
104232 diff --git a/include/linux/msg.h b/include/linux/msg.h
104233 index f3f302f..a001305 100644
104234 --- a/include/linux/msg.h
104235 +++ b/include/linux/msg.h
104236 @@ -29,7 +29,7 @@ struct msg_queue {
104237 struct list_head q_messages;
104238 struct list_head q_receivers;
104239 struct list_head q_senders;
104240 -};
104241 +} __randomize_layout;
104242
104243 /* Helper routines for sys_msgsnd and sys_msgrcv */
104244 extern long do_msgsnd(int msqid, long mtype, void __user *mtext,
104245 diff --git a/include/linux/net.h b/include/linux/net.h
104246 index 0b4ac7d..d4dc945 100644
104247 --- a/include/linux/net.h
104248 +++ b/include/linux/net.h
104249 @@ -195,7 +195,7 @@ struct net_proto_family {
104250 int (*create)(struct net *net, struct socket *sock,
104251 int protocol, int kern);
104252 struct module *owner;
104253 -};
104254 +} __do_const;
104255
104256 struct iovec;
104257 struct kvec;
104258 diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
104259 index 3143c84..a709abf 100644
104260 --- a/include/linux/netdevice.h
104261 +++ b/include/linux/netdevice.h
104262 @@ -1237,6 +1237,7 @@ struct net_device_ops {
104263 int (*ndo_fill_metadata_dst)(struct net_device *dev,
104264 struct sk_buff *skb);
104265 };
104266 +typedef struct net_device_ops __no_const net_device_ops_no_const;
104267
104268 /**
104269 * enum net_device_priv_flags - &struct net_device priv_flags
104270 @@ -1548,7 +1549,7 @@ struct net_device {
104271 unsigned long base_addr;
104272 int irq;
104273
104274 - atomic_t carrier_changes;
104275 + atomic_unchecked_t carrier_changes;
104276
104277 /*
104278 * Some hardware also needs these fields (state,dev_list,
104279 @@ -1587,8 +1588,8 @@ struct net_device {
104280
104281 struct net_device_stats stats;
104282
104283 - atomic_long_t rx_dropped;
104284 - atomic_long_t tx_dropped;
104285 + atomic_long_unchecked_t rx_dropped;
104286 + atomic_long_unchecked_t tx_dropped;
104287
104288 #ifdef CONFIG_WIRELESS_EXT
104289 const struct iw_handler_def * wireless_handlers;
104290 diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h
104291 index 0ad5567..79b35f5a 100644
104292 --- a/include/linux/netfilter.h
104293 +++ b/include/linux/netfilter.h
104294 @@ -119,7 +119,7 @@ struct nf_sockopt_ops {
104295 #endif
104296 /* Use the module struct to lock set/get code in place */
104297 struct module *owner;
104298 -};
104299 +} __do_const;
104300
104301 /* Function to register/unregister hook points. */
104302 int nf_register_net_hook(struct net *net, const struct nf_hook_ops *ops);
104303 diff --git a/include/linux/netfilter/nfnetlink.h b/include/linux/netfilter/nfnetlink.h
104304 index 5646b24..707819e 100644
104305 --- a/include/linux/netfilter/nfnetlink.h
104306 +++ b/include/linux/netfilter/nfnetlink.h
104307 @@ -19,7 +19,7 @@ struct nfnl_callback {
104308 const struct nlattr * const cda[]);
104309 const struct nla_policy *policy; /* netlink attribute policy */
104310 const u_int16_t attr_count; /* number of nlattr's */
104311 -};
104312 +} __do_const;
104313
104314 struct nfnetlink_subsystem {
104315 const char *name;
104316 diff --git a/include/linux/netfilter/xt_gradm.h b/include/linux/netfilter/xt_gradm.h
104317 new file mode 100644
104318 index 0000000..33f4af8
104319 --- /dev/null
104320 +++ b/include/linux/netfilter/xt_gradm.h
104321 @@ -0,0 +1,9 @@
104322 +#ifndef _LINUX_NETFILTER_XT_GRADM_H
104323 +#define _LINUX_NETFILTER_XT_GRADM_H 1
104324 +
104325 +struct xt_gradm_mtinfo {
104326 + __u16 flags;
104327 + __u16 invflags;
104328 +};
104329 +
104330 +#endif
104331 diff --git a/include/linux/netlink.h b/include/linux/netlink.h
104332 index 639e9b8..b37c9be 100644
104333 --- a/include/linux/netlink.h
104334 +++ b/include/linux/netlink.h
104335 @@ -158,19 +158,19 @@ struct netlink_dump_control {
104336 void *data;
104337 struct module *module;
104338 u16 min_dump_alloc;
104339 -};
104340 +} __do_const;
104341 +typedef struct netlink_dump_control __no_const netlink_dump_control_no_const;
104342
104343 extern int __netlink_dump_start(struct sock *ssk, struct sk_buff *skb,
104344 const struct nlmsghdr *nlh,
104345 - struct netlink_dump_control *control);
104346 + struct netlink_dump_control *control,
104347 + void *data,
104348 + struct module *module);
104349 static inline int netlink_dump_start(struct sock *ssk, struct sk_buff *skb,
104350 const struct nlmsghdr *nlh,
104351 struct netlink_dump_control *control)
104352 {
104353 - if (!control->module)
104354 - control->module = THIS_MODULE;
104355 -
104356 - return __netlink_dump_start(ssk, skb, nlh, control);
104357 + return __netlink_dump_start(ssk, skb, nlh, control, control->data, control->module ? : THIS_MODULE);
104358 }
104359
104360 struct netlink_tap {
104361 diff --git a/include/linux/nls.h b/include/linux/nls.h
104362 index 520681b..2b7fabb 100644
104363 --- a/include/linux/nls.h
104364 +++ b/include/linux/nls.h
104365 @@ -31,7 +31,7 @@ struct nls_table {
104366 const unsigned char *charset2upper;
104367 struct module *owner;
104368 struct nls_table *next;
104369 -};
104370 +} __do_const;
104371
104372 /* this value hold the maximum octet of charset */
104373 #define NLS_MAX_CHARSET_SIZE 6 /* for UTF-8 */
104374 @@ -46,7 +46,7 @@ enum utf16_endian {
104375 /* nls_base.c */
104376 extern int __register_nls(struct nls_table *, struct module *);
104377 extern int unregister_nls(struct nls_table *);
104378 -extern struct nls_table *load_nls(char *);
104379 +extern struct nls_table *load_nls(const char *);
104380 extern void unload_nls(struct nls_table *);
104381 extern struct nls_table *load_nls_default(void);
104382 #define register_nls(nls) __register_nls((nls), THIS_MODULE)
104383 diff --git a/include/linux/notifier.h b/include/linux/notifier.h
104384 index d14a4c3..a078786 100644
104385 --- a/include/linux/notifier.h
104386 +++ b/include/linux/notifier.h
104387 @@ -54,7 +54,8 @@ struct notifier_block {
104388 notifier_fn_t notifier_call;
104389 struct notifier_block __rcu *next;
104390 int priority;
104391 -};
104392 +} __do_const;
104393 +typedef struct notifier_block __no_const notifier_block_no_const;
104394
104395 struct atomic_notifier_head {
104396 spinlock_t lock;
104397 diff --git a/include/linux/oprofile.h b/include/linux/oprofile.h
104398 index b2a0f15..4d7da32 100644
104399 --- a/include/linux/oprofile.h
104400 +++ b/include/linux/oprofile.h
104401 @@ -138,9 +138,9 @@ int oprofilefs_create_ulong(struct dentry * root,
104402 int oprofilefs_create_ro_ulong(struct dentry * root,
104403 char const * name, ulong * val);
104404
104405 -/** Create a file for read-only access to an atomic_t. */
104406 +/** Create a file for read-only access to an atomic_unchecked_t. */
104407 int oprofilefs_create_ro_atomic(struct dentry * root,
104408 - char const * name, atomic_t * val);
104409 + char const * name, atomic_unchecked_t * val);
104410
104411 /** create a directory */
104412 struct dentry *oprofilefs_mkdir(struct dentry *parent, char const *name);
104413 diff --git a/include/linux/padata.h b/include/linux/padata.h
104414 index 4386946..f50c615 100644
104415 --- a/include/linux/padata.h
104416 +++ b/include/linux/padata.h
104417 @@ -129,7 +129,7 @@ struct parallel_data {
104418 struct padata_serial_queue __percpu *squeue;
104419 atomic_t reorder_objects;
104420 atomic_t refcnt;
104421 - atomic_t seq_nr;
104422 + atomic_unchecked_t seq_nr;
104423 struct padata_cpumask cpumask;
104424 spinlock_t lock ____cacheline_aligned;
104425 unsigned int processed;
104426 diff --git a/include/linux/path.h b/include/linux/path.h
104427 index d137218..be0c176 100644
104428 --- a/include/linux/path.h
104429 +++ b/include/linux/path.h
104430 @@ -1,13 +1,15 @@
104431 #ifndef _LINUX_PATH_H
104432 #define _LINUX_PATH_H
104433
104434 +#include <linux/compiler.h>
104435 +
104436 struct dentry;
104437 struct vfsmount;
104438
104439 struct path {
104440 struct vfsmount *mnt;
104441 struct dentry *dentry;
104442 -};
104443 +} __randomize_layout;
104444
104445 extern void path_get(const struct path *);
104446 extern void path_put(const struct path *);
104447 diff --git a/include/linux/pci_hotplug.h b/include/linux/pci_hotplug.h
104448 index 8c78950..0d74ed9 100644
104449 --- a/include/linux/pci_hotplug.h
104450 +++ b/include/linux/pci_hotplug.h
104451 @@ -71,7 +71,8 @@ struct hotplug_slot_ops {
104452 int (*get_latch_status) (struct hotplug_slot *slot, u8 *value);
104453 int (*get_adapter_status) (struct hotplug_slot *slot, u8 *value);
104454 int (*reset_slot) (struct hotplug_slot *slot, int probe);
104455 -};
104456 +} __do_const;
104457 +typedef struct hotplug_slot_ops __no_const hotplug_slot_ops_no_const;
104458
104459 /**
104460 * struct hotplug_slot_info - used to notify the hotplug pci core of the state of the slot
104461 diff --git a/include/linux/percpu.h b/include/linux/percpu.h
104462 index caebf2a..4c3ae9d 100644
104463 --- a/include/linux/percpu.h
104464 +++ b/include/linux/percpu.h
104465 @@ -34,7 +34,7 @@
104466 * preallocate for this. Keep PERCPU_DYNAMIC_RESERVE equal to or
104467 * larger than PERCPU_DYNAMIC_EARLY_SIZE.
104468 */
104469 -#define PERCPU_DYNAMIC_EARLY_SLOTS 128
104470 +#define PERCPU_DYNAMIC_EARLY_SLOTS 256
104471 #define PERCPU_DYNAMIC_EARLY_SIZE (12 << 10)
104472
104473 /*
104474 diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
104475 index f9828a4..d5a70ba 100644
104476 --- a/include/linux/perf_event.h
104477 +++ b/include/linux/perf_event.h
104478 @@ -470,8 +470,8 @@ struct perf_event {
104479
104480 enum perf_event_active_state state;
104481 unsigned int attach_state;
104482 - local64_t count;
104483 - atomic64_t child_count;
104484 + local64_t count; /* PaX: fix it one day */
104485 + atomic64_unchecked_t child_count;
104486
104487 /*
104488 * These are the total time in nanoseconds that the event
104489 @@ -522,8 +522,8 @@ struct perf_event {
104490 * These accumulate total time (in nanoseconds) that children
104491 * events have been enabled and running, respectively.
104492 */
104493 - atomic64_t child_total_time_enabled;
104494 - atomic64_t child_total_time_running;
104495 + atomic64_unchecked_t child_total_time_enabled;
104496 + atomic64_unchecked_t child_total_time_running;
104497
104498 /*
104499 * Protect attach/detach and child_list:
104500 @@ -950,7 +950,7 @@ static inline void perf_event_task_sched_out(struct task_struct *prev,
104501
104502 static inline u64 __perf_event_count(struct perf_event *event)
104503 {
104504 - return local64_read(&event->count) + atomic64_read(&event->child_count);
104505 + return local64_read(&event->count) + atomic64_read_unchecked(&event->child_count);
104506 }
104507
104508 extern void perf_event_mmap(struct vm_area_struct *vma);
104509 @@ -974,7 +974,7 @@ static inline void perf_callchain_store(struct perf_callchain_entry *entry, u64
104510 entry->ip[entry->nr++] = ip;
104511 }
104512
104513 -extern int sysctl_perf_event_paranoid;
104514 +extern int sysctl_perf_event_legitimately_concerned;
104515 extern int sysctl_perf_event_mlock;
104516 extern int sysctl_perf_event_sample_rate;
104517 extern int sysctl_perf_cpu_time_max_percent;
104518 @@ -989,19 +989,24 @@ extern int perf_cpu_time_max_percent_handler(struct ctl_table *table, int write,
104519 loff_t *ppos);
104520
104521
104522 +static inline bool perf_paranoid_any(void)
104523 +{
104524 + return sysctl_perf_event_legitimately_concerned > 2;
104525 +}
104526 +
104527 static inline bool perf_paranoid_tracepoint_raw(void)
104528 {
104529 - return sysctl_perf_event_paranoid > -1;
104530 + return sysctl_perf_event_legitimately_concerned > -1;
104531 }
104532
104533 static inline bool perf_paranoid_cpu(void)
104534 {
104535 - return sysctl_perf_event_paranoid > 0;
104536 + return sysctl_perf_event_legitimately_concerned > 0;
104537 }
104538
104539 static inline bool perf_paranoid_kernel(void)
104540 {
104541 - return sysctl_perf_event_paranoid > 1;
104542 + return sysctl_perf_event_legitimately_concerned > 1;
104543 }
104544
104545 extern void perf_event_init(void);
104546 @@ -1164,7 +1169,7 @@ struct perf_pmu_events_attr {
104547 struct device_attribute attr;
104548 u64 id;
104549 const char *event_str;
104550 -};
104551 +} __do_const;
104552
104553 ssize_t perf_event_sysfs_show(struct device *dev, struct device_attribute *attr,
104554 char *page);
104555 diff --git a/include/linux/pid_namespace.h b/include/linux/pid_namespace.h
104556 index 918b117..7af374b7 100644
104557 --- a/include/linux/pid_namespace.h
104558 +++ b/include/linux/pid_namespace.h
104559 @@ -45,7 +45,7 @@ struct pid_namespace {
104560 int hide_pid;
104561 int reboot; /* group exit code if this pidns was rebooted */
104562 struct ns_common ns;
104563 -};
104564 +} __randomize_layout;
104565
104566 extern struct pid_namespace init_pid_ns;
104567
104568 diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h
104569 index eb8b8ac..deb6089 100644
104570 --- a/include/linux/pipe_fs_i.h
104571 +++ b/include/linux/pipe_fs_i.h
104572 @@ -42,21 +42,23 @@ struct pipe_buffer {
104573 * @fasync_readers: reader side fasync
104574 * @fasync_writers: writer side fasync
104575 * @bufs: the circular array of pipe buffers
104576 + * @user: the user who created this pipe
104577 **/
104578 struct pipe_inode_info {
104579 struct mutex mutex;
104580 wait_queue_head_t wait;
104581 unsigned int nrbufs, curbuf, buffers;
104582 - unsigned int readers;
104583 - unsigned int writers;
104584 - unsigned int files;
104585 - unsigned int waiting_writers;
104586 + atomic_t readers;
104587 + atomic_t writers;
104588 + atomic_t files;
104589 + atomic_t waiting_writers;
104590 unsigned int r_counter;
104591 unsigned int w_counter;
104592 struct page *tmp_page;
104593 struct fasync_struct *fasync_readers;
104594 struct fasync_struct *fasync_writers;
104595 struct pipe_buffer *bufs;
104596 + struct user_struct *user;
104597 };
104598
104599 /*
104600 @@ -123,6 +125,8 @@ void pipe_unlock(struct pipe_inode_info *);
104601 void pipe_double_lock(struct pipe_inode_info *, struct pipe_inode_info *);
104602
104603 extern unsigned int pipe_max_size, pipe_min_size;
104604 +extern unsigned long pipe_user_pages_hard;
104605 +extern unsigned long pipe_user_pages_soft;
104606 int pipe_proc_fn(struct ctl_table *, int, void __user *, size_t *, loff_t *);
104607
104608
104609 diff --git a/include/linux/pm.h b/include/linux/pm.h
104610 index 528be67..4643a08 100644
104611 --- a/include/linux/pm.h
104612 +++ b/include/linux/pm.h
104613 @@ -630,6 +630,7 @@ struct dev_pm_domain {
104614 void (*sync)(struct device *dev);
104615 void (*dismiss)(struct device *dev);
104616 };
104617 +typedef struct dev_pm_domain __no_const dev_pm_domain_no_const;
104618
104619 /*
104620 * The PM_EVENT_ messages are also used by drivers implementing the legacy
104621 diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
104622 index ba4ced3..7ce2a56 100644
104623 --- a/include/linux/pm_domain.h
104624 +++ b/include/linux/pm_domain.h
104625 @@ -35,7 +35,7 @@ struct gpd_dev_ops {
104626 int (*save_state)(struct device *dev);
104627 int (*restore_state)(struct device *dev);
104628 bool (*active_wakeup)(struct device *dev);
104629 -};
104630 +} __no_const;
104631
104632 struct generic_pm_domain {
104633 struct dev_pm_domain domain; /* PM domain operations */
104634 diff --git a/include/linux/pm_runtime.h b/include/linux/pm_runtime.h
104635 index 3bdbb41..2a6f56c 100644
104636 --- a/include/linux/pm_runtime.h
104637 +++ b/include/linux/pm_runtime.h
104638 @@ -110,7 +110,7 @@ static inline bool pm_runtime_callbacks_present(struct device *dev)
104639
104640 static inline void pm_runtime_mark_last_busy(struct device *dev)
104641 {
104642 - ACCESS_ONCE(dev->power.last_busy) = jiffies;
104643 + ACCESS_ONCE_RW(dev->power.last_busy) = jiffies;
104644 }
104645
104646 static inline bool pm_runtime_is_irq_safe(struct device *dev)
104647 diff --git a/include/linux/pnp.h b/include/linux/pnp.h
104648 index 5df733b..d55f252 100644
104649 --- a/include/linux/pnp.h
104650 +++ b/include/linux/pnp.h
104651 @@ -298,7 +298,7 @@ static inline void pnp_set_drvdata(struct pnp_dev *pdev, void *data)
104652 struct pnp_fixup {
104653 char id[7];
104654 void (*quirk_function) (struct pnp_dev * dev); /* fixup function */
104655 -};
104656 +} __do_const;
104657
104658 /* config parameters */
104659 #define PNP_CONFIG_NORMAL 0x0001
104660 diff --git a/include/linux/poison.h b/include/linux/poison.h
104661 index 317e16d..ec214cb 100644
104662 --- a/include/linux/poison.h
104663 +++ b/include/linux/poison.h
104664 @@ -19,15 +19,15 @@
104665 * under normal circumstances, used to verify that nobody uses
104666 * non-initialized list entries.
104667 */
104668 -#define LIST_POISON1 ((void *) 0x100 + POISON_POINTER_DELTA)
104669 -#define LIST_POISON2 ((void *) 0x200 + POISON_POINTER_DELTA)
104670 +#define LIST_POISON1 ((void *) (long)0xFFFFFF02)
104671 +#define LIST_POISON2 ((void *) (long)0xFFFFFF04)
104672
104673 /********** include/linux/timer.h **********/
104674 /*
104675 * Magic number "tsta" to indicate a static timer initializer
104676 * for the object debugging code.
104677 */
104678 -#define TIMER_ENTRY_STATIC ((void *) 0x74737461)
104679 +#define TIMER_ENTRY_STATIC ((void *) 0x300 + POISON_POINTER_DELTA)
104680
104681 /********** mm/debug-pagealloc.c **********/
104682 #define PAGE_POISON 0xaa
104683 diff --git a/include/linux/power/smartreflex.h b/include/linux/power/smartreflex.h
104684 index d8b187c3..9a9257a 100644
104685 --- a/include/linux/power/smartreflex.h
104686 +++ b/include/linux/power/smartreflex.h
104687 @@ -238,7 +238,7 @@ struct omap_sr_class_data {
104688 int (*notify)(struct omap_sr *sr, u32 status);
104689 u8 notify_flags;
104690 u8 class_type;
104691 -};
104692 +} __do_const;
104693
104694 /**
104695 * struct omap_sr_nvalue_table - Smartreflex n-target value info
104696 diff --git a/include/linux/ppp-comp.h b/include/linux/ppp-comp.h
104697 index 4ea1d37..80f4b33 100644
104698 --- a/include/linux/ppp-comp.h
104699 +++ b/include/linux/ppp-comp.h
104700 @@ -84,7 +84,7 @@ struct compressor {
104701 struct module *owner;
104702 /* Extra skb space needed by the compressor algorithm */
104703 unsigned int comp_extra;
104704 -};
104705 +} __do_const;
104706
104707 /*
104708 * The return value from decompress routine is the length of the
104709 diff --git a/include/linux/preempt.h b/include/linux/preempt.h
104710 index 75e4e30..fcfde15 100644
104711 --- a/include/linux/preempt.h
104712 +++ b/include/linux/preempt.h
104713 @@ -134,11 +134,16 @@ extern void preempt_count_sub(int val);
104714 #define preempt_count_dec_and_test() __preempt_count_dec_and_test()
104715 #endif
104716
104717 +#define raw_preempt_count_add(val) __preempt_count_add(val)
104718 +#define raw_preempt_count_sub(val) __preempt_count_sub(val)
104719 +
104720 #define __preempt_count_inc() __preempt_count_add(1)
104721 #define __preempt_count_dec() __preempt_count_sub(1)
104722
104723 #define preempt_count_inc() preempt_count_add(1)
104724 +#define raw_preempt_count_inc() raw_preempt_count_add(1)
104725 #define preempt_count_dec() preempt_count_sub(1)
104726 +#define raw_preempt_count_dec() raw_preempt_count_sub(1)
104727
104728 #ifdef CONFIG_PREEMPT_COUNT
104729
104730 @@ -148,6 +153,12 @@ do { \
104731 barrier(); \
104732 } while (0)
104733
104734 +#define raw_preempt_disable() \
104735 +do { \
104736 + raw_preempt_count_inc(); \
104737 + barrier(); \
104738 +} while (0)
104739 +
104740 #define sched_preempt_enable_no_resched() \
104741 do { \
104742 barrier(); \
104743 @@ -156,6 +167,12 @@ do { \
104744
104745 #define preempt_enable_no_resched() sched_preempt_enable_no_resched()
104746
104747 +#define raw_preempt_enable_no_resched() \
104748 +do { \
104749 + barrier(); \
104750 + raw_preempt_count_dec(); \
104751 +} while (0)
104752 +
104753 #define preemptible() (preempt_count() == 0 && !irqs_disabled())
104754
104755 #ifdef CONFIG_PREEMPT
104756 @@ -216,8 +233,10 @@ do { \
104757 * region.
104758 */
104759 #define preempt_disable() barrier()
104760 +#define raw_preempt_disable() barrier()
104761 #define sched_preempt_enable_no_resched() barrier()
104762 #define preempt_enable_no_resched() barrier()
104763 +#define raw_preempt_enable_no_resched() barrier()
104764 #define preempt_enable() barrier()
104765 #define preempt_check_resched() do { } while (0)
104766
104767 @@ -232,11 +251,13 @@ do { \
104768 /*
104769 * Modules have no business playing preemption tricks.
104770 */
104771 +#ifndef CONFIG_PAX_KERNEXEC
104772 #undef sched_preempt_enable_no_resched
104773 #undef preempt_enable_no_resched
104774 #undef preempt_enable_no_resched_notrace
104775 #undef preempt_check_resched
104776 #endif
104777 +#endif
104778
104779 #define preempt_set_need_resched() \
104780 do { \
104781 diff --git a/include/linux/printk.h b/include/linux/printk.h
104782 index 9729565..e5e5255 100644
104783 --- a/include/linux/printk.h
104784 +++ b/include/linux/printk.h
104785 @@ -123,6 +123,7 @@ void early_printk(const char *s, ...) { }
104786 #endif
104787
104788 typedef __printf(1, 0) int (*printk_func_t)(const char *fmt, va_list args);
104789 +extern int kptr_restrict;
104790
104791 #ifdef CONFIG_PRINTK
104792 asmlinkage __printf(5, 0)
104793 @@ -158,7 +159,6 @@ extern bool printk_timed_ratelimit(unsigned long *caller_jiffies,
104794
104795 extern int printk_delay_msec;
104796 extern int dmesg_restrict;
104797 -extern int kptr_restrict;
104798
104799 extern void wake_up_klogd(void);
104800
104801 diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
104802 index b97bf2e..f14c92d4 100644
104803 --- a/include/linux/proc_fs.h
104804 +++ b/include/linux/proc_fs.h
104805 @@ -17,8 +17,11 @@ extern void proc_flush_task(struct task_struct *);
104806 extern struct proc_dir_entry *proc_symlink(const char *,
104807 struct proc_dir_entry *, const char *);
104808 extern struct proc_dir_entry *proc_mkdir(const char *, struct proc_dir_entry *);
104809 +extern struct proc_dir_entry *proc_mkdir_restrict(const char *, struct proc_dir_entry *);
104810 extern struct proc_dir_entry *proc_mkdir_data(const char *, umode_t,
104811 struct proc_dir_entry *, void *);
104812 +extern struct proc_dir_entry *proc_mkdir_data_restrict(const char *, umode_t,
104813 + struct proc_dir_entry *, void *);
104814 extern struct proc_dir_entry *proc_mkdir_mode(const char *, umode_t,
104815 struct proc_dir_entry *);
104816
104817 @@ -34,6 +37,19 @@ static inline struct proc_dir_entry *proc_create(
104818 return proc_create_data(name, mode, parent, proc_fops, NULL);
104819 }
104820
104821 +static inline struct proc_dir_entry *proc_create_grsec(const char *name, umode_t mode,
104822 + struct proc_dir_entry *parent, const struct file_operations *proc_fops)
104823 +{
104824 +#ifdef CONFIG_GRKERNSEC_PROC_USER
104825 + return proc_create_data(name, S_IRUSR, parent, proc_fops, NULL);
104826 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
104827 + return proc_create_data(name, S_IRUSR | S_IRGRP, parent, proc_fops, NULL);
104828 +#else
104829 + return proc_create_data(name, mode, parent, proc_fops, NULL);
104830 +#endif
104831 +}
104832 +
104833 +
104834 extern void proc_set_size(struct proc_dir_entry *, loff_t);
104835 extern void proc_set_user(struct proc_dir_entry *, kuid_t, kgid_t);
104836 extern void *PDE_DATA(const struct inode *);
104837 @@ -56,8 +72,12 @@ static inline struct proc_dir_entry *proc_symlink(const char *name,
104838 struct proc_dir_entry *parent,const char *dest) { return NULL;}
104839 static inline struct proc_dir_entry *proc_mkdir(const char *name,
104840 struct proc_dir_entry *parent) {return NULL;}
104841 +static inline struct proc_dir_entry *proc_mkdir_restrict(const char *name,
104842 + struct proc_dir_entry *parent) { return NULL; }
104843 static inline struct proc_dir_entry *proc_mkdir_data(const char *name,
104844 umode_t mode, struct proc_dir_entry *parent, void *data) { return NULL; }
104845 +static inline struct proc_dir_entry *proc_mkdir_data_restrict(const char *name,
104846 + umode_t mode, struct proc_dir_entry *parent, void *data) { return NULL; }
104847 static inline struct proc_dir_entry *proc_mkdir_mode(const char *name,
104848 umode_t mode, struct proc_dir_entry *parent) { return NULL; }
104849 #define proc_create(name, mode, parent, proc_fops) ({NULL;})
104850 @@ -79,7 +99,7 @@ struct net;
104851 static inline struct proc_dir_entry *proc_net_mkdir(
104852 struct net *net, const char *name, struct proc_dir_entry *parent)
104853 {
104854 - return proc_mkdir_data(name, 0, parent, net);
104855 + return proc_mkdir_data_restrict(name, 0, parent, net);
104856 }
104857
104858 #endif /* _LINUX_PROC_FS_H */
104859 diff --git a/include/linux/proc_ns.h b/include/linux/proc_ns.h
104860 index 42dfc61..8113a99 100644
104861 --- a/include/linux/proc_ns.h
104862 +++ b/include/linux/proc_ns.h
104863 @@ -16,7 +16,7 @@ struct proc_ns_operations {
104864 struct ns_common *(*get)(struct task_struct *task);
104865 void (*put)(struct ns_common *ns);
104866 int (*install)(struct nsproxy *nsproxy, struct ns_common *ns);
104867 -};
104868 +} __do_const __randomize_layout;
104869
104870 extern const struct proc_ns_operations netns_operations;
104871 extern const struct proc_ns_operations utsns_operations;
104872 diff --git a/include/linux/psci.h b/include/linux/psci.h
104873 index 12c4865..2cd7c41 100644
104874 --- a/include/linux/psci.h
104875 +++ b/include/linux/psci.h
104876 @@ -32,7 +32,7 @@ struct psci_operations {
104877 int (*affinity_info)(unsigned long target_affinity,
104878 unsigned long lowest_affinity_level);
104879 int (*migrate_info_type)(void);
104880 -};
104881 +} __no_const;
104882
104883 extern struct psci_operations psci_ops;
104884
104885 diff --git a/include/linux/quota.h b/include/linux/quota.h
104886 index b2505ac..5f7ab55 100644
104887 --- a/include/linux/quota.h
104888 +++ b/include/linux/quota.h
104889 @@ -76,7 +76,7 @@ struct kqid { /* Type in which we store the quota identifier */
104890
104891 extern bool qid_eq(struct kqid left, struct kqid right);
104892 extern bool qid_lt(struct kqid left, struct kqid right);
104893 -extern qid_t from_kqid(struct user_namespace *to, struct kqid qid);
104894 +extern qid_t from_kqid(struct user_namespace *to, struct kqid qid) __intentional_overflow(-1);
104895 extern qid_t from_kqid_munged(struct user_namespace *to, struct kqid qid);
104896 extern bool qid_valid(struct kqid qid);
104897
104898 diff --git a/include/linux/random.h b/include/linux/random.h
104899 index a75840c..e7c4305 100644
104900 --- a/include/linux/random.h
104901 +++ b/include/linux/random.h
104902 @@ -18,9 +18,19 @@ struct random_ready_callback {
104903 };
104904
104905 extern void add_device_randomness(const void *, unsigned int);
104906 +
104907 +static inline void add_latent_entropy(void)
104908 +{
104909 +
104910 +#ifdef LATENT_ENTROPY_PLUGIN
104911 + add_device_randomness((const void *)&latent_entropy, sizeof(latent_entropy));
104912 +#endif
104913 +
104914 +}
104915 +
104916 extern void add_input_randomness(unsigned int type, unsigned int code,
104917 - unsigned int value);
104918 -extern void add_interrupt_randomness(int irq, int irq_flags);
104919 + unsigned int value) __latent_entropy;
104920 +extern void add_interrupt_randomness(int irq, int irq_flags) __latent_entropy;
104921
104922 extern void get_random_bytes(void *buf, int nbytes);
104923 extern int add_random_ready_callback(struct random_ready_callback *rdy);
104924 @@ -52,6 +62,11 @@ void prandom_seed_full_state(struct rnd_state __percpu *pcpu_state);
104925 #define prandom_init_once(pcpu_state) \
104926 DO_ONCE(prandom_seed_full_state, (pcpu_state))
104927
104928 +static inline unsigned long __intentional_overflow(-1) pax_get_random_long(void)
104929 +{
104930 + return prandom_u32() + (sizeof(long) > 4 ? (unsigned long)prandom_u32() << 32 : 0);
104931 +}
104932 +
104933 /**
104934 * prandom_u32_max - returns a pseudo-random number in interval [0, ep_ro)
104935 * @ep_ro: right open interval endpoint
104936 @@ -64,7 +79,7 @@ void prandom_seed_full_state(struct rnd_state __percpu *pcpu_state);
104937 *
104938 * Returns: pseudo-random number in interval [0, ep_ro)
104939 */
104940 -static inline u32 prandom_u32_max(u32 ep_ro)
104941 +static inline u32 __intentional_overflow(-1) prandom_u32_max(u32 ep_ro)
104942 {
104943 return (u32)(((u64) prandom_u32() * ep_ro) >> 32);
104944 }
104945 diff --git a/include/linux/rbtree_augmented.h b/include/linux/rbtree_augmented.h
104946 index 14d7b83..a1edf56 100644
104947 --- a/include/linux/rbtree_augmented.h
104948 +++ b/include/linux/rbtree_augmented.h
104949 @@ -90,7 +90,9 @@ rbname ## _rotate(struct rb_node *rb_old, struct rb_node *rb_new) \
104950 old->rbaugmented = rbcompute(old); \
104951 } \
104952 rbstatic const struct rb_augment_callbacks rbname = { \
104953 - rbname ## _propagate, rbname ## _copy, rbname ## _rotate \
104954 + .propagate = rbname ## _propagate, \
104955 + .copy = rbname ## _copy, \
104956 + .rotate = rbname ## _rotate \
104957 };
104958
104959
104960 diff --git a/include/linux/rculist.h b/include/linux/rculist.h
104961 index 5ed5409..92c9f6a 100644
104962 --- a/include/linux/rculist.h
104963 +++ b/include/linux/rculist.h
104964 @@ -59,6 +59,9 @@ void __list_add_rcu(struct list_head *new,
104965 struct list_head *prev, struct list_head *next);
104966 #endif
104967
104968 +void __pax_list_add_rcu(struct list_head *new,
104969 + struct list_head *prev, struct list_head *next);
104970 +
104971 /**
104972 * list_add_rcu - add a new entry to rcu-protected list
104973 * @new: new entry to be added
104974 @@ -80,6 +83,11 @@ static inline void list_add_rcu(struct list_head *new, struct list_head *head)
104975 __list_add_rcu(new, head, head->next);
104976 }
104977
104978 +static inline void pax_list_add_rcu(struct list_head *new, struct list_head *head)
104979 +{
104980 + __pax_list_add_rcu(new, head, head->next);
104981 +}
104982 +
104983 /**
104984 * list_add_tail_rcu - add a new entry to rcu-protected list
104985 * @new: new entry to be added
104986 @@ -102,6 +110,12 @@ static inline void list_add_tail_rcu(struct list_head *new,
104987 __list_add_rcu(new, head->prev, head);
104988 }
104989
104990 +static inline void pax_list_add_tail_rcu(struct list_head *new,
104991 + struct list_head *head)
104992 +{
104993 + __pax_list_add_rcu(new, head->prev, head);
104994 +}
104995 +
104996 /**
104997 * list_del_rcu - deletes entry from list without re-initialization
104998 * @entry: the element to delete from the list.
104999 @@ -132,6 +146,8 @@ static inline void list_del_rcu(struct list_head *entry)
105000 entry->prev = LIST_POISON2;
105001 }
105002
105003 +extern void pax_list_del_rcu(struct list_head *entry);
105004 +
105005 /**
105006 * hlist_del_init_rcu - deletes entry from hash list with re-initialization
105007 * @n: the element to delete from the hash list.
105008 diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
105009 index a0189ba..7e34269 100644
105010 --- a/include/linux/rcupdate.h
105011 +++ b/include/linux/rcupdate.h
105012 @@ -854,6 +854,7 @@ static inline void rcu_preempt_sleep_check(void)
105013 * read-side critical sections may be preempted and they may also block, but
105014 * only when acquiring spinlocks that are subject to priority inheritance.
105015 */
105016 +static inline void rcu_read_lock(void) __acquires(RCU);
105017 static inline void rcu_read_lock(void)
105018 {
105019 __rcu_read_lock();
105020 @@ -908,6 +909,7 @@ static inline void rcu_read_lock(void)
105021 *
105022 * See rcu_read_lock() for more information.
105023 */
105024 +static inline void rcu_read_unlock(void) __releases(RCU);
105025 static inline void rcu_read_unlock(void)
105026 {
105027 RCU_LOCKDEP_WARN(!rcu_is_watching(),
105028 @@ -934,6 +936,7 @@ static inline void rcu_read_unlock(void)
105029 * rcu_read_unlock_bh() from one task if the matching rcu_read_lock_bh()
105030 * was invoked from some other task.
105031 */
105032 +static inline void rcu_read_lock_bh(void) __acquires(RCU_BH);
105033 static inline void rcu_read_lock_bh(void)
105034 {
105035 local_bh_disable();
105036 @@ -948,6 +951,7 @@ static inline void rcu_read_lock_bh(void)
105037 *
105038 * See rcu_read_lock_bh() for more information.
105039 */
105040 +static inline void rcu_read_unlock_bh(void) __releases(RCU_BH);
105041 static inline void rcu_read_unlock_bh(void)
105042 {
105043 RCU_LOCKDEP_WARN(!rcu_is_watching(),
105044 @@ -970,6 +974,7 @@ static inline void rcu_read_unlock_bh(void)
105045 * rcu_read_unlock_sched() from process context if the matching
105046 * rcu_read_lock_sched() was invoked from an NMI handler.
105047 */
105048 +static inline void rcu_read_lock_sched(void) __acquires(RCU_SCHED);
105049 static inline void rcu_read_lock_sched(void)
105050 {
105051 preempt_disable();
105052 @@ -980,6 +985,7 @@ static inline void rcu_read_lock_sched(void)
105053 }
105054
105055 /* Used by lockdep and tracing: cannot be traced, cannot call lockdep. */
105056 +static inline notrace void rcu_read_lock_sched_notrace(void) __acquires(RCU_SCHED);
105057 static inline notrace void rcu_read_lock_sched_notrace(void)
105058 {
105059 preempt_disable_notrace();
105060 @@ -991,6 +997,7 @@ static inline notrace void rcu_read_lock_sched_notrace(void)
105061 *
105062 * See rcu_read_lock_sched for more information.
105063 */
105064 +static inline void rcu_read_unlock_sched(void) __releases(RCU_SCHED);
105065 static inline void rcu_read_unlock_sched(void)
105066 {
105067 RCU_LOCKDEP_WARN(!rcu_is_watching(),
105068 @@ -1001,6 +1008,7 @@ static inline void rcu_read_unlock_sched(void)
105069 }
105070
105071 /* Used by lockdep and tracing: cannot be traced, cannot call lockdep. */
105072 +static inline notrace void rcu_read_unlock_sched_notrace(void) __releases(RCU_SCHED);
105073 static inline notrace void rcu_read_unlock_sched_notrace(void)
105074 {
105075 __release(RCU_SCHED);
105076 diff --git a/include/linux/reboot.h b/include/linux/reboot.h
105077 index a7ff409..03e2fa8 100644
105078 --- a/include/linux/reboot.h
105079 +++ b/include/linux/reboot.h
105080 @@ -47,9 +47,9 @@ extern void do_kernel_restart(char *cmd);
105081 */
105082
105083 extern void migrate_to_reboot_cpu(void);
105084 -extern void machine_restart(char *cmd);
105085 -extern void machine_halt(void);
105086 -extern void machine_power_off(void);
105087 +extern void machine_restart(char *cmd) __noreturn;
105088 +extern void machine_halt(void) __noreturn;
105089 +extern void machine_power_off(void) __noreturn;
105090
105091 extern void machine_shutdown(void);
105092 struct pt_regs;
105093 @@ -60,9 +60,9 @@ extern void machine_crash_shutdown(struct pt_regs *);
105094 */
105095
105096 extern void kernel_restart_prepare(char *cmd);
105097 -extern void kernel_restart(char *cmd);
105098 -extern void kernel_halt(void);
105099 -extern void kernel_power_off(void);
105100 +extern void kernel_restart(char *cmd) __noreturn;
105101 +extern void kernel_halt(void) __noreturn;
105102 +extern void kernel_power_off(void) __noreturn;
105103
105104 extern int C_A_D; /* for sysctl */
105105 void ctrl_alt_del(void);
105106 @@ -77,7 +77,7 @@ extern void orderly_reboot(void);
105107 * Emergency restart, callable from an interrupt handler.
105108 */
105109
105110 -extern void emergency_restart(void);
105111 +extern void emergency_restart(void) __noreturn;
105112 #include <asm/emergency-restart.h>
105113
105114 #endif /* _LINUX_REBOOT_H */
105115 diff --git a/include/linux/regset.h b/include/linux/regset.h
105116 index 8e0c9fe..ac4d221 100644
105117 --- a/include/linux/regset.h
105118 +++ b/include/linux/regset.h
105119 @@ -161,7 +161,8 @@ struct user_regset {
105120 unsigned int align;
105121 unsigned int bias;
105122 unsigned int core_note_type;
105123 -};
105124 +} __do_const;
105125 +typedef struct user_regset __no_const user_regset_no_const;
105126
105127 /**
105128 * struct user_regset_view - available regsets
105129 diff --git a/include/linux/relay.h b/include/linux/relay.h
105130 index d7c8359..818daf5 100644
105131 --- a/include/linux/relay.h
105132 +++ b/include/linux/relay.h
105133 @@ -157,7 +157,7 @@ struct rchan_callbacks
105134 * The callback should return 0 if successful, negative if not.
105135 */
105136 int (*remove_buf_file)(struct dentry *dentry);
105137 -};
105138 +} __no_const;
105139
105140 /*
105141 * CONFIG_RELAY kernel API, kernel/relay.c
105142 diff --git a/include/linux/rio.h b/include/linux/rio.h
105143 index cde976e..ebd6033 100644
105144 --- a/include/linux/rio.h
105145 +++ b/include/linux/rio.h
105146 @@ -358,7 +358,7 @@ struct rio_ops {
105147 int (*map_inb)(struct rio_mport *mport, dma_addr_t lstart,
105148 u64 rstart, u32 size, u32 flags);
105149 void (*unmap_inb)(struct rio_mport *mport, dma_addr_t lstart);
105150 -};
105151 +} __no_const;
105152
105153 #define RIO_RESOURCE_MEM 0x00000100
105154 #define RIO_RESOURCE_DOORBELL 0x00000200
105155 diff --git a/include/linux/rmap.h b/include/linux/rmap.h
105156 index ddda2ac..4c6b6e1 100644
105157 --- a/include/linux/rmap.h
105158 +++ b/include/linux/rmap.h
105159 @@ -135,8 +135,8 @@ static inline void anon_vma_unlock_read(struct anon_vma *anon_vma)
105160 void anon_vma_init(void); /* create anon_vma_cachep */
105161 int anon_vma_prepare(struct vm_area_struct *);
105162 void unlink_anon_vmas(struct vm_area_struct *);
105163 -int anon_vma_clone(struct vm_area_struct *, struct vm_area_struct *);
105164 -int anon_vma_fork(struct vm_area_struct *, struct vm_area_struct *);
105165 +int anon_vma_clone(struct vm_area_struct *, const struct vm_area_struct *);
105166 +int anon_vma_fork(struct vm_area_struct *, const struct vm_area_struct *);
105167
105168 static inline void anon_vma_merge(struct vm_area_struct *vma,
105169 struct vm_area_struct *next)
105170 diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h
105171 index 556ec1e..38c19c9 100644
105172 --- a/include/linux/scatterlist.h
105173 +++ b/include/linux/scatterlist.h
105174 @@ -1,6 +1,7 @@
105175 #ifndef _LINUX_SCATTERLIST_H
105176 #define _LINUX_SCATTERLIST_H
105177
105178 +#include <linux/sched.h>
105179 #include <linux/string.h>
105180 #include <linux/types.h>
105181 #include <linux/bug.h>
105182 @@ -136,10 +137,17 @@ static inline struct page *sg_page(struct scatterlist *sg)
105183 static inline void sg_set_buf(struct scatterlist *sg, const void *buf,
105184 unsigned int buflen)
105185 {
105186 + const void *realbuf = buf;
105187 +
105188 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
105189 + if (object_starts_on_stack(buf))
105190 + realbuf = buf - current->stack + current->lowmem_stack;
105191 +#endif
105192 +
105193 #ifdef CONFIG_DEBUG_SG
105194 - BUG_ON(!virt_addr_valid(buf));
105195 + BUG_ON(!virt_addr_valid(realbuf));
105196 #endif
105197 - sg_set_page(sg, virt_to_page(buf), buflen, offset_in_page(buf));
105198 + sg_set_page(sg, virt_to_page(realbuf), buflen, offset_in_page(realbuf));
105199 }
105200
105201 /*
105202 diff --git a/include/linux/sched.h b/include/linux/sched.h
105203 index 21a6e96..25820d8 100644
105204 --- a/include/linux/sched.h
105205 +++ b/include/linux/sched.h
105206 @@ -7,7 +7,7 @@
105207
105208
105209 struct sched_param {
105210 - int sched_priority;
105211 + unsigned int sched_priority;
105212 };
105213
105214 #include <asm/param.h> /* for HZ */
105215 @@ -134,6 +134,7 @@ struct perf_event_context;
105216 struct blk_plug;
105217 struct filename;
105218 struct nameidata;
105219 +struct linux_binprm;
105220
105221 #define VMACACHE_BITS 2
105222 #define VMACACHE_SIZE (1U << VMACACHE_BITS)
105223 @@ -437,6 +438,19 @@ struct nsproxy;
105224 struct user_namespace;
105225
105226 #ifdef CONFIG_MMU
105227 +
105228 +#ifdef CONFIG_GRKERNSEC_RAND_THREADSTACK
105229 +extern unsigned long gr_rand_threadstack_offset(const struct mm_struct *mm, const struct file *filp, unsigned long flags);
105230 +#else
105231 +static inline unsigned long gr_rand_threadstack_offset(const struct mm_struct *mm, const struct file *filp, unsigned long flags)
105232 +{
105233 + return 0;
105234 +}
105235 +#endif
105236 +
105237 +extern bool check_heap_stack_gap(const struct vm_area_struct *vma, unsigned long addr, unsigned long len, unsigned long offset);
105238 +extern unsigned long skip_heap_stack_gap(const struct vm_area_struct *vma, unsigned long len, unsigned long offset);
105239 +
105240 extern void arch_pick_mmap_layout(struct mm_struct *mm);
105241 extern unsigned long
105242 arch_get_unmapped_area(struct file *, unsigned long, unsigned long,
105243 @@ -769,6 +783,17 @@ struct signal_struct {
105244 #ifdef CONFIG_TASKSTATS
105245 struct taskstats *stats;
105246 #endif
105247 +
105248 +#ifdef CONFIG_GRKERNSEC
105249 + u32 curr_ip;
105250 + u32 saved_ip;
105251 + u32 gr_saddr;
105252 + u32 gr_daddr;
105253 + u16 gr_sport;
105254 + u16 gr_dport;
105255 + u8 used_accept:1;
105256 +#endif
105257 +
105258 #ifdef CONFIG_AUDIT
105259 unsigned audit_tty;
105260 unsigned audit_tty_log_passwd;
105261 @@ -783,7 +808,7 @@ struct signal_struct {
105262 struct mutex cred_guard_mutex; /* guard against foreign influences on
105263 * credential calculations
105264 * (notably. ptrace) */
105265 -};
105266 +} __randomize_layout;
105267
105268 /*
105269 * Bits in flags field of signal_struct.
105270 @@ -831,12 +856,21 @@ struct user_struct {
105271 #endif
105272 unsigned long locked_shm; /* How many pages of mlocked shm ? */
105273 unsigned long unix_inflight; /* How many files in flight in unix sockets */
105274 + atomic_long_t pipe_bufs; /* how many pages are allocated in pipe buffers */
105275
105276 #ifdef CONFIG_KEYS
105277 struct key *uid_keyring; /* UID specific keyring */
105278 struct key *session_keyring; /* UID's default session keyring */
105279 #endif
105280
105281 +#ifdef CONFIG_GRKERNSEC_KERN_LOCKOUT
105282 + unsigned char kernel_banned;
105283 +#endif
105284 +#ifdef CONFIG_GRKERNSEC_BRUTE
105285 + unsigned char sugid_banned;
105286 + unsigned long sugid_ban_expires;
105287 +#endif
105288 +
105289 /* Hash table maintenance information */
105290 struct hlist_node uidhash_node;
105291 kuid_t uid;
105292 @@ -844,7 +878,7 @@ struct user_struct {
105293 #if defined(CONFIG_PERF_EVENTS) || defined(CONFIG_BPF_SYSCALL)
105294 atomic_long_t locked_vm;
105295 #endif
105296 -};
105297 +} __randomize_layout;
105298
105299 extern int uids_sysfs_init(void);
105300
105301 @@ -1379,6 +1413,9 @@ struct tlbflush_unmap_batch {
105302 struct task_struct {
105303 volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */
105304 void *stack;
105305 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
105306 + void *lowmem_stack;
105307 +#endif
105308 atomic_t usage;
105309 unsigned int flags; /* per process flags, defined below */
105310 unsigned int ptrace;
105311 @@ -1514,8 +1551,8 @@ struct task_struct {
105312 struct list_head thread_node;
105313
105314 struct completion *vfork_done; /* for vfork() */
105315 - int __user *set_child_tid; /* CLONE_CHILD_SETTID */
105316 - int __user *clear_child_tid; /* CLONE_CHILD_CLEARTID */
105317 + pid_t __user *set_child_tid; /* CLONE_CHILD_SETTID */
105318 + pid_t __user *clear_child_tid; /* CLONE_CHILD_CLEARTID */
105319
105320 cputime_t utime, stime, utimescaled, stimescaled;
105321 cputime_t gtime;
105322 @@ -1538,11 +1575,6 @@ struct task_struct {
105323 struct task_cputime cputime_expires;
105324 struct list_head cpu_timers[3];
105325
105326 -/* process credentials */
105327 - const struct cred __rcu *real_cred; /* objective and real subjective task
105328 - * credentials (COW) */
105329 - const struct cred __rcu *cred; /* effective (overridable) subjective task
105330 - * credentials (COW) */
105331 char comm[TASK_COMM_LEN]; /* executable name excluding path
105332 - access with [gs]et_task_comm (which lock
105333 it with task_lock())
105334 @@ -1558,6 +1590,8 @@ struct task_struct {
105335 /* hung task detection */
105336 unsigned long last_switch_count;
105337 #endif
105338 +/* CPU-specific state of this task */
105339 + struct thread_struct thread;
105340 /* filesystem information */
105341 struct fs_struct *fs;
105342 /* open file information */
105343 @@ -1632,6 +1666,10 @@ struct task_struct {
105344 gfp_t lockdep_reclaim_gfp;
105345 #endif
105346
105347 +/* process credentials */
105348 + const struct cred __rcu *real_cred; /* objective and real subjective task
105349 + * credentials (COW) */
105350 +
105351 /* journalling filesystem info */
105352 void *journal_info;
105353
105354 @@ -1670,6 +1708,10 @@ struct task_struct {
105355 /* cg_list protected by css_set_lock and tsk->alloc_lock */
105356 struct list_head cg_list;
105357 #endif
105358 +
105359 + const struct cred __rcu *cred; /* effective (overridable) subjective task
105360 + * credentials (COW) */
105361 +
105362 #ifdef CONFIG_FUTEX
105363 struct robust_list_head __user *robust_list;
105364 #ifdef CONFIG_COMPAT
105365 @@ -1785,7 +1827,7 @@ struct task_struct {
105366 * Number of functions that haven't been traced
105367 * because of depth overrun.
105368 */
105369 - atomic_t trace_overrun;
105370 + atomic_unchecked_t trace_overrun;
105371 /* Pause for the tracing */
105372 atomic_t tracing_graph_pause;
105373 #endif
105374 @@ -1814,22 +1856,89 @@ struct task_struct {
105375 unsigned long task_state_change;
105376 #endif
105377 int pagefault_disabled;
105378 -/* CPU-specific state of this task */
105379 - struct thread_struct thread;
105380 -/*
105381 - * WARNING: on x86, 'thread_struct' contains a variable-sized
105382 - * structure. It *MUST* be at the end of 'task_struct'.
105383 - *
105384 - * Do not put anything below here!
105385 - */
105386 -};
105387 +
105388 +#ifdef CONFIG_GRKERNSEC
105389 + /* grsecurity */
105390 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
105391 + u64 exec_id;
105392 +#endif
105393 +#ifdef CONFIG_GRKERNSEC_SETXID
105394 + const struct cred *delayed_cred;
105395 +#endif
105396 + struct dentry *gr_chroot_dentry;
105397 + struct acl_subject_label *acl;
105398 + struct acl_subject_label *tmpacl;
105399 + struct acl_role_label *role;
105400 + struct file *exec_file;
105401 + unsigned long brute_expires;
105402 + u16 acl_role_id;
105403 + u8 inherited;
105404 + /* is this the task that authenticated to the special role */
105405 + u8 acl_sp_role;
105406 + u8 is_writable;
105407 + u8 brute;
105408 + u8 gr_is_chrooted;
105409 +#endif
105410 +
105411 +/* thread_info moved to task_struct */
105412 +#ifdef CONFIG_X86
105413 + struct thread_info tinfo;
105414 +#endif
105415 +} __randomize_layout;
105416
105417 #ifdef CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT
105418 -extern int arch_task_struct_size __read_mostly;
105419 +extern size_t arch_task_struct_size __read_mostly;
105420 #else
105421 # define arch_task_struct_size (sizeof(struct task_struct))
105422 #endif
105423
105424 +#define MF_PAX_PAGEEXEC 0x01000000 /* Paging based non-executable pages */
105425 +#define MF_PAX_EMUTRAMP 0x02000000 /* Emulate trampolines */
105426 +#define MF_PAX_MPROTECT 0x04000000 /* Restrict mprotect() */
105427 +#define MF_PAX_RANDMMAP 0x08000000 /* Randomize mmap() base */
105428 +/*#define MF_PAX_RANDEXEC 0x10000000*/ /* Randomize ET_EXEC base */
105429 +#define MF_PAX_SEGMEXEC 0x20000000 /* Segmentation based non-executable pages */
105430 +
105431 +#ifdef CONFIG_PAX_SOFTMODE
105432 +extern int pax_softmode;
105433 +#endif
105434 +
105435 +extern int pax_check_flags(unsigned long *);
105436 +#define PAX_PARSE_FLAGS_FALLBACK (~0UL)
105437 +
105438 +/* if tsk != current then task_lock must be held on it */
105439 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
105440 +static inline unsigned long pax_get_flags(struct task_struct *tsk)
105441 +{
105442 + if (likely(tsk->mm))
105443 + return tsk->mm->pax_flags;
105444 + else
105445 + return 0UL;
105446 +}
105447 +
105448 +/* if tsk != current then task_lock must be held on it */
105449 +static inline long pax_set_flags(struct task_struct *tsk, unsigned long flags)
105450 +{
105451 + if (likely(tsk->mm)) {
105452 + tsk->mm->pax_flags = flags;
105453 + return 0;
105454 + }
105455 + return -EINVAL;
105456 +}
105457 +#endif
105458 +
105459 +#ifdef CONFIG_PAX_HAVE_ACL_FLAGS
105460 +extern void pax_set_initial_flags(struct linux_binprm *bprm);
105461 +#elif defined(CONFIG_PAX_HOOK_ACL_FLAGS)
105462 +extern void (*pax_set_initial_flags_func)(struct linux_binprm *bprm);
105463 +#endif
105464 +
105465 +struct path;
105466 +extern char *pax_get_path(const struct path *path, char *buf, int buflen);
105467 +extern void pax_report_fault(struct pt_regs *regs, void *pc, void *sp);
105468 +extern void pax_report_insns(struct pt_regs *regs, void *pc, void *sp);
105469 +extern void pax_report_refcount_overflow(struct pt_regs *regs);
105470 +
105471 /* Future-safe accessor for struct task_struct's cpus_allowed. */
105472 #define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed)
105473
105474 @@ -1911,7 +2020,7 @@ struct pid_namespace;
105475 pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type,
105476 struct pid_namespace *ns);
105477
105478 -static inline pid_t task_pid_nr(struct task_struct *tsk)
105479 +static inline pid_t task_pid_nr(const struct task_struct *tsk)
105480 {
105481 return tsk->pid;
105482 }
105483 @@ -2273,6 +2382,25 @@ extern u64 sched_clock_cpu(int cpu);
105484
105485 extern void sched_clock_init(void);
105486
105487 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
105488 +static inline void populate_stack(void)
105489 +{
105490 + struct task_struct *curtask = current;
105491 + int c;
105492 + int *ptr = curtask->stack;
105493 + int *end = curtask->stack + THREAD_SIZE;
105494 +
105495 + while (ptr < end) {
105496 + c = *(volatile int *)ptr;
105497 + ptr += PAGE_SIZE/sizeof(int);
105498 + }
105499 +}
105500 +#else
105501 +static inline void populate_stack(void)
105502 +{
105503 +}
105504 +#endif
105505 +
105506 #ifndef CONFIG_HAVE_UNSTABLE_SCHED_CLOCK
105507 static inline void sched_clock_tick(void)
105508 {
105509 @@ -2401,7 +2529,9 @@ extern void set_curr_task(int cpu, struct task_struct *p);
105510 void yield(void);
105511
105512 union thread_union {
105513 +#ifndef CONFIG_X86
105514 struct thread_info thread_info;
105515 +#endif
105516 unsigned long stack[THREAD_SIZE/sizeof(long)];
105517 };
105518
105519 @@ -2434,6 +2564,7 @@ extern struct pid_namespace init_pid_ns;
105520 */
105521
105522 extern struct task_struct *find_task_by_vpid(pid_t nr);
105523 +extern struct task_struct *find_task_by_vpid_unrestricted(pid_t nr);
105524 extern struct task_struct *find_task_by_pid_ns(pid_t nr,
105525 struct pid_namespace *ns);
105526
105527 @@ -2465,7 +2596,7 @@ extern void proc_caches_init(void);
105528 extern void flush_signals(struct task_struct *);
105529 extern void ignore_signals(struct task_struct *);
105530 extern void flush_signal_handlers(struct task_struct *, int force_default);
105531 -extern int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info);
105532 +extern int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info) __must_hold(&tsk->sighand->siglock);
105533
105534 static inline int kernel_dequeue_signal(siginfo_t *info)
105535 {
105536 @@ -2619,7 +2750,7 @@ extern void __cleanup_sighand(struct sighand_struct *);
105537 extern void exit_itimers(struct signal_struct *);
105538 extern void flush_itimer_signals(void);
105539
105540 -extern void do_group_exit(int);
105541 +extern __noreturn void do_group_exit(int);
105542
105543 extern int do_execve(struct filename *,
105544 const char __user * const __user *,
105545 @@ -2734,11 +2865,13 @@ static inline int thread_group_empty(struct task_struct *p)
105546 * It must not be nested with write_lock_irq(&tasklist_lock),
105547 * neither inside nor outside.
105548 */
105549 +static inline void task_lock(struct task_struct *p) __acquires(&p->alloc_lock);
105550 static inline void task_lock(struct task_struct *p)
105551 {
105552 spin_lock(&p->alloc_lock);
105553 }
105554
105555 +static inline void task_unlock(struct task_struct *p) __releases(&p->alloc_lock);
105556 static inline void task_unlock(struct task_struct *p)
105557 {
105558 spin_unlock(&p->alloc_lock);
105559 @@ -2824,9 +2957,9 @@ static inline unsigned long *end_of_stack(struct task_struct *p)
105560 #define task_stack_end_corrupted(task) \
105561 (*(end_of_stack(task)) != STACK_END_MAGIC)
105562
105563 -static inline int object_is_on_stack(void *obj)
105564 +static inline int object_starts_on_stack(const void *obj)
105565 {
105566 - void *stack = task_stack_page(current);
105567 + const void *stack = task_stack_page(current);
105568
105569 return (obj >= stack) && (obj < (stack + THREAD_SIZE));
105570 }
105571 diff --git a/include/linux/sched/sysctl.h b/include/linux/sched/sysctl.h
105572 index c9e4731..c716293 100644
105573 --- a/include/linux/sched/sysctl.h
105574 +++ b/include/linux/sched/sysctl.h
105575 @@ -34,6 +34,7 @@ enum { sysctl_hung_task_timeout_secs = 0 };
105576 #define DEFAULT_MAX_MAP_COUNT (USHRT_MAX - MAPCOUNT_ELF_CORE_MARGIN)
105577
105578 extern int sysctl_max_map_count;
105579 +extern unsigned long sysctl_heap_stack_gap;
105580
105581 extern unsigned int sysctl_sched_latency;
105582 extern unsigned int sysctl_sched_min_granularity;
105583 diff --git a/include/linux/scif.h b/include/linux/scif.h
105584 index 49a35d6..c6209dd 100644
105585 --- a/include/linux/scif.h
105586 +++ b/include/linux/scif.h
105587 @@ -156,7 +156,7 @@ struct scif_client {
105588 void (*probe)(struct scif_peer_dev *spdev);
105589 void (*remove)(struct scif_peer_dev *spdev);
105590 struct subsys_interface si;
105591 -};
105592 +} __do_const;
105593
105594 #define SCIF_OPEN_FAILED ((scif_epd_t)-1)
105595 #define SCIF_REGISTER_FAILED ((off_t)-1)
105596 diff --git a/include/linux/security.h b/include/linux/security.h
105597 index 2f4c1f7..5bc05d7 100644
105598 --- a/include/linux/security.h
105599 +++ b/include/linux/security.h
105600 @@ -28,6 +28,7 @@
105601 #include <linux/err.h>
105602 #include <linux/string.h>
105603 #include <linux/mm.h>
105604 +#include <linux/grsecurity.h>
105605
105606 struct linux_binprm;
105607 struct cred;
105608 diff --git a/include/linux/sem.h b/include/linux/sem.h
105609 index 976ce3a..db62f3f 100644
105610 --- a/include/linux/sem.h
105611 +++ b/include/linux/sem.h
105612 @@ -21,7 +21,7 @@ struct sem_array {
105613 struct list_head list_id; /* undo requests on this array */
105614 int sem_nsems; /* no. of semaphores in array */
105615 int complex_count; /* pending complex operations */
105616 -};
105617 +} __randomize_layout;
105618
105619 #ifdef CONFIG_SYSVIPC
105620
105621 diff --git a/include/linux/semaphore.h b/include/linux/semaphore.h
105622 index dc368b8..e895209 100644
105623 --- a/include/linux/semaphore.h
105624 +++ b/include/linux/semaphore.h
105625 @@ -37,7 +37,7 @@ static inline void sema_init(struct semaphore *sem, int val)
105626 }
105627
105628 extern void down(struct semaphore *sem);
105629 -extern int __must_check down_interruptible(struct semaphore *sem);
105630 +extern int __must_check down_interruptible(struct semaphore *sem) __intentional_overflow(-1);
105631 extern int __must_check down_killable(struct semaphore *sem);
105632 extern int __must_check down_trylock(struct semaphore *sem);
105633 extern int __must_check down_timeout(struct semaphore *sem, long jiffies);
105634 diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h
105635 index dde00de..202bfd3 100644
105636 --- a/include/linux/seq_file.h
105637 +++ b/include/linux/seq_file.h
105638 @@ -27,6 +27,9 @@ struct seq_file {
105639 struct mutex lock;
105640 const struct seq_operations *op;
105641 int poll_event;
105642 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
105643 + u64 exec_id;
105644 +#endif
105645 #ifdef CONFIG_USER_NS
105646 struct user_namespace *user_ns;
105647 #endif
105648 @@ -39,6 +42,7 @@ struct seq_operations {
105649 void * (*next) (struct seq_file *m, void *v, loff_t *pos);
105650 int (*show) (struct seq_file *m, void *v);
105651 };
105652 +typedef struct seq_operations __no_const seq_operations_no_const;
105653
105654 #define SEQ_SKIP 1
105655
105656 @@ -111,6 +115,7 @@ void seq_pad(struct seq_file *m, char c);
105657
105658 char *mangle_path(char *s, const char *p, const char *esc);
105659 int seq_open(struct file *, const struct seq_operations *);
105660 +int seq_open_restrict(struct file *, const struct seq_operations *);
105661 ssize_t seq_read(struct file *, char __user *, size_t, loff_t *);
105662 loff_t seq_lseek(struct file *, loff_t, int);
105663 int seq_release(struct inode *, struct file *);
105664 @@ -138,6 +143,7 @@ int seq_path_root(struct seq_file *m, const struct path *path,
105665 const struct path *root, const char *esc);
105666
105667 int single_open(struct file *, int (*)(struct seq_file *, void *), void *);
105668 +int single_open_restrict(struct file *, int (*)(struct seq_file *, void *), void *);
105669 int single_open_size(struct file *, int (*)(struct seq_file *, void *), void *, size_t);
105670 int single_release(struct inode *, struct file *);
105671 void *__seq_open_private(struct file *, const struct seq_operations *, int);
105672 diff --git a/include/linux/seqlock.h b/include/linux/seqlock.h
105673 index e058210..386666a 100644
105674 --- a/include/linux/seqlock.h
105675 +++ b/include/linux/seqlock.h
105676 @@ -440,42 +440,49 @@ static inline unsigned read_seqretry(const seqlock_t *sl, unsigned start)
105677 * Acts like a normal spin_lock/unlock.
105678 * Don't need preempt_disable() because that is in the spin_lock already.
105679 */
105680 +static inline void write_seqlock(seqlock_t *sl) __acquires(sl);
105681 static inline void write_seqlock(seqlock_t *sl)
105682 {
105683 spin_lock(&sl->lock);
105684 write_seqcount_begin(&sl->seqcount);
105685 }
105686
105687 +static inline void write_sequnlock(seqlock_t *sl) __releases(sl);
105688 static inline void write_sequnlock(seqlock_t *sl)
105689 {
105690 write_seqcount_end(&sl->seqcount);
105691 spin_unlock(&sl->lock);
105692 }
105693
105694 +static inline void write_seqlock_bh(seqlock_t *sl) __acquires(sl);
105695 static inline void write_seqlock_bh(seqlock_t *sl)
105696 {
105697 spin_lock_bh(&sl->lock);
105698 write_seqcount_begin(&sl->seqcount);
105699 }
105700
105701 +static inline void write_sequnlock_bh(seqlock_t *sl) __releases(sl);
105702 static inline void write_sequnlock_bh(seqlock_t *sl)
105703 {
105704 write_seqcount_end(&sl->seqcount);
105705 spin_unlock_bh(&sl->lock);
105706 }
105707
105708 +static inline void write_seqlock_irq(seqlock_t *sl) __acquires(sl);
105709 static inline void write_seqlock_irq(seqlock_t *sl)
105710 {
105711 spin_lock_irq(&sl->lock);
105712 write_seqcount_begin(&sl->seqcount);
105713 }
105714
105715 +static inline void write_sequnlock_irq(seqlock_t *sl) __releases(sl);
105716 static inline void write_sequnlock_irq(seqlock_t *sl)
105717 {
105718 write_seqcount_end(&sl->seqcount);
105719 spin_unlock_irq(&sl->lock);
105720 }
105721
105722 +static inline unsigned long __write_seqlock_irqsave(seqlock_t *sl) __acquires(sl);
105723 static inline unsigned long __write_seqlock_irqsave(seqlock_t *sl)
105724 {
105725 unsigned long flags;
105726 @@ -488,6 +495,7 @@ static inline unsigned long __write_seqlock_irqsave(seqlock_t *sl)
105727 #define write_seqlock_irqsave(lock, flags) \
105728 do { flags = __write_seqlock_irqsave(lock); } while (0)
105729
105730 +static inline void write_sequnlock_irqrestore(seqlock_t *sl, unsigned long flags) __releases(sl);
105731 static inline void
105732 write_sequnlock_irqrestore(seqlock_t *sl, unsigned long flags)
105733 {
105734 @@ -500,11 +508,13 @@ write_sequnlock_irqrestore(seqlock_t *sl, unsigned long flags)
105735 * but doesn't update the sequence number. Acts like a normal spin_lock/unlock.
105736 * Don't need preempt_disable() because that is in the spin_lock already.
105737 */
105738 +static inline void read_seqlock_excl(seqlock_t *sl) __acquires(sl);
105739 static inline void read_seqlock_excl(seqlock_t *sl)
105740 {
105741 spin_lock(&sl->lock);
105742 }
105743
105744 +static inline void read_sequnlock_excl(seqlock_t *sl) __releases(sl);
105745 static inline void read_sequnlock_excl(seqlock_t *sl)
105746 {
105747 spin_unlock(&sl->lock);
105748 diff --git a/include/linux/shm.h b/include/linux/shm.h
105749 index 6fb8016..2cf60e7 100644
105750 --- a/include/linux/shm.h
105751 +++ b/include/linux/shm.h
105752 @@ -22,7 +22,11 @@ struct shmid_kernel /* private to the kernel */
105753 /* The task created the shm object. NULL if the task is dead. */
105754 struct task_struct *shm_creator;
105755 struct list_head shm_clist; /* list by creator */
105756 -};
105757 +#ifdef CONFIG_GRKERNSEC
105758 + u64 shm_createtime;
105759 + pid_t shm_lapid;
105760 +#endif
105761 +} __randomize_layout;
105762
105763 /* shm_mode upper byte flags */
105764 #define SHM_DEST 01000 /* segment will be destroyed on last detach */
105765 diff --git a/include/linux/signal.h b/include/linux/signal.h
105766 index 92557bb..53fa513 100644
105767 --- a/include/linux/signal.h
105768 +++ b/include/linux/signal.h
105769 @@ -288,7 +288,7 @@ static inline void allow_signal(int sig)
105770 * know it'll be handled, so that they don't get converted to
105771 * SIGKILL or just silently dropped.
105772 */
105773 - kernel_sigaction(sig, (__force __sighandler_t)2);
105774 + kernel_sigaction(sig, (__force_user __sighandler_t)2);
105775 }
105776
105777 static inline void disallow_signal(int sig)
105778 diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
105779 index 75f136a..fa3b724 100644
105780 --- a/include/linux/skbuff.h
105781 +++ b/include/linux/skbuff.h
105782 @@ -809,7 +809,7 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t priority, int flags,
105783 int node);
105784 struct sk_buff *__build_skb(void *data, unsigned int frag_size);
105785 struct sk_buff *build_skb(void *data, unsigned int frag_size);
105786 -static inline struct sk_buff *alloc_skb(unsigned int size,
105787 +static inline struct sk_buff * __intentional_overflow(0) alloc_skb(unsigned int size,
105788 gfp_t priority)
105789 {
105790 return __alloc_skb(size, priority, 0, NUMA_NO_NODE);
105791 @@ -2080,7 +2080,7 @@ static inline int skb_checksum_start_offset(const struct sk_buff *skb)
105792 return skb->csum_start - skb_headroom(skb);
105793 }
105794
105795 -static inline int skb_transport_offset(const struct sk_buff *skb)
105796 +static inline int __intentional_overflow(0) skb_transport_offset(const struct sk_buff *skb)
105797 {
105798 return skb_transport_header(skb) - skb->data;
105799 }
105800 @@ -2095,7 +2095,7 @@ static inline u32 skb_inner_network_header_len(const struct sk_buff *skb)
105801 return skb->inner_transport_header - skb->inner_network_header;
105802 }
105803
105804 -static inline int skb_network_offset(const struct sk_buff *skb)
105805 +static inline int __intentional_overflow(0) skb_network_offset(const struct sk_buff *skb)
105806 {
105807 return skb_network_header(skb) - skb->data;
105808 }
105809 @@ -2155,7 +2155,7 @@ static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len)
105810 * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
105811 */
105812 #ifndef NET_SKB_PAD
105813 -#define NET_SKB_PAD max(32, L1_CACHE_BYTES)
105814 +#define NET_SKB_PAD max(_AC(32,UL), L1_CACHE_BYTES)
105815 #endif
105816
105817 int ___pskb_trim(struct sk_buff *skb, unsigned int len);
105818 @@ -2795,9 +2795,9 @@ struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags, int noblock,
105819 int *err);
105820 unsigned int datagram_poll(struct file *file, struct socket *sock,
105821 struct poll_table_struct *wait);
105822 -int skb_copy_datagram_iter(const struct sk_buff *from, int offset,
105823 +int __intentional_overflow(0) skb_copy_datagram_iter(const struct sk_buff *from, int offset,
105824 struct iov_iter *to, int size);
105825 -static inline int skb_copy_datagram_msg(const struct sk_buff *from, int offset,
105826 +static inline int __intentional_overflow(2,4) skb_copy_datagram_msg(const struct sk_buff *from, int offset,
105827 struct msghdr *msg, int size)
105828 {
105829 return skb_copy_datagram_iter(from, offset, &msg->msg_iter, size);
105830 @@ -3326,6 +3326,9 @@ static inline void nf_reset(struct sk_buff *skb)
105831 nf_bridge_put(skb->nf_bridge);
105832 skb->nf_bridge = NULL;
105833 #endif
105834 +#if IS_ENABLED(CONFIG_NETFILTER_XT_TARGET_TRACE)
105835 + skb->nf_trace = 0;
105836 +#endif
105837 }
105838
105839 static inline void nf_reset_trace(struct sk_buff *skb)
105840 diff --git a/include/linux/slab.h b/include/linux/slab.h
105841 index 2037a86..58fd323 100644
105842 --- a/include/linux/slab.h
105843 +++ b/include/linux/slab.h
105844 @@ -15,14 +15,29 @@
105845 #include <linux/types.h>
105846 #include <linux/workqueue.h>
105847
105848 +#include <linux/err.h>
105849
105850 /*
105851 * Flags to pass to kmem_cache_create().
105852 * The ones marked DEBUG are only valid if CONFIG_DEBUG_SLAB is set.
105853 */
105854 #define SLAB_DEBUG_FREE 0x00000100UL /* DEBUG: Perform (expensive) checks on free */
105855 +
105856 +#ifdef CONFIG_PAX_USERCOPY_SLABS
105857 +#define SLAB_USERCOPY 0x00000200UL /* PaX: Allow copying objs to/from userland */
105858 +#else
105859 +#define SLAB_USERCOPY 0x00000000UL
105860 +#endif
105861 +
105862 #define SLAB_RED_ZONE 0x00000400UL /* DEBUG: Red zone objs in a cache */
105863 #define SLAB_POISON 0x00000800UL /* DEBUG: Poison objects */
105864 +
105865 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
105866 +#define SLAB_NO_SANITIZE 0x00001000UL /* PaX: Do not sanitize objs on free */
105867 +#else
105868 +#define SLAB_NO_SANITIZE 0x00000000UL
105869 +#endif
105870 +
105871 #define SLAB_HWCACHE_ALIGN 0x00002000UL /* Align objs on cache lines */
105872 #define SLAB_CACHE_DMA 0x00004000UL /* Use GFP_DMA memory */
105873 #define SLAB_STORE_USER 0x00010000UL /* DEBUG: Store the last owner for bug hunting */
105874 @@ -98,10 +113,13 @@
105875 * ZERO_SIZE_PTR can be passed to kfree though in the same way that NULL can.
105876 * Both make kfree a no-op.
105877 */
105878 -#define ZERO_SIZE_PTR ((void *)16)
105879 +#define ZERO_SIZE_PTR \
105880 +({ \
105881 + BUILD_BUG_ON(!(MAX_ERRNO & ~PAGE_MASK));\
105882 + (void *)(-MAX_ERRNO-1L); \
105883 +})
105884
105885 -#define ZERO_OR_NULL_PTR(x) ((unsigned long)(x) <= \
105886 - (unsigned long)ZERO_SIZE_PTR)
105887 +#define ZERO_OR_NULL_PTR(x) ((unsigned long)(x) - 1 >= (unsigned long)ZERO_SIZE_PTR - 1)
105888
105889 #include <linux/kmemleak.h>
105890 #include <linux/kasan.h>
105891 @@ -143,6 +161,8 @@ void * __must_check krealloc(const void *, size_t, gfp_t);
105892 void kfree(const void *);
105893 void kzfree(const void *);
105894 size_t ksize(const void *);
105895 +const char *check_heap_object(const void *ptr, unsigned long n);
105896 +bool is_usercopy_object(const void *ptr);
105897
105898 /*
105899 * Some archs want to perform DMA into kmalloc caches and need a guaranteed
105900 @@ -253,6 +273,10 @@ extern struct kmem_cache *kmalloc_caches[KMALLOC_SHIFT_HIGH + 1];
105901 extern struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
105902 #endif
105903
105904 +#ifdef CONFIG_PAX_USERCOPY_SLABS
105905 +extern struct kmem_cache *kmalloc_usercopy_caches[KMALLOC_SHIFT_HIGH + 1];
105906 +#endif
105907 +
105908 /*
105909 * Figure out which kmalloc slab an allocation of a certain size
105910 * belongs to.
105911 @@ -261,7 +285,7 @@ extern struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
105912 * 2 = 129 .. 192 bytes
105913 * n = 2^(n-1)+1 .. 2^n
105914 */
105915 -static __always_inline int kmalloc_index(size_t size)
105916 +static __always_inline __size_overflow(1) int kmalloc_index(size_t size)
105917 {
105918 if (!size)
105919 return 0;
105920 @@ -304,7 +328,7 @@ static __always_inline int kmalloc_index(size_t size)
105921 }
105922 #endif /* !CONFIG_SLOB */
105923
105924 -void *__kmalloc(size_t size, gfp_t flags) __assume_kmalloc_alignment;
105925 +void *__kmalloc(size_t size, gfp_t flags) __assume_kmalloc_alignment __alloc_size(1) __size_overflow(1);
105926 void *kmem_cache_alloc(struct kmem_cache *, gfp_t flags) __assume_slab_alignment;
105927 void kmem_cache_free(struct kmem_cache *, void *);
105928
105929 @@ -319,10 +343,10 @@ void kmem_cache_free_bulk(struct kmem_cache *, size_t, void **);
105930 int kmem_cache_alloc_bulk(struct kmem_cache *, gfp_t, size_t, void **);
105931
105932 #ifdef CONFIG_NUMA
105933 -void *__kmalloc_node(size_t size, gfp_t flags, int node) __assume_kmalloc_alignment;
105934 +void *__kmalloc_node(size_t size, gfp_t flags, int node) __assume_kmalloc_alignment __alloc_size(1) __size_overflow(1);
105935 void *kmem_cache_alloc_node(struct kmem_cache *, gfp_t flags, int node) __assume_slab_alignment;
105936 #else
105937 -static __always_inline void *__kmalloc_node(size_t size, gfp_t flags, int node)
105938 +static __always_inline void * __alloc_size(1) __size_overflow(1) __kmalloc_node(size_t size, gfp_t flags, int node)
105939 {
105940 return __kmalloc(size, flags);
105941 }
105942 diff --git a/include/linux/slab_def.h b/include/linux/slab_def.h
105943 index 33d0490..70a6313 100644
105944 --- a/include/linux/slab_def.h
105945 +++ b/include/linux/slab_def.h
105946 @@ -40,7 +40,7 @@ struct kmem_cache {
105947 /* 4) cache creation/removal */
105948 const char *name;
105949 struct list_head list;
105950 - int refcount;
105951 + atomic_t refcount;
105952 int object_size;
105953 int align;
105954
105955 @@ -56,10 +56,14 @@ struct kmem_cache {
105956 unsigned long node_allocs;
105957 unsigned long node_frees;
105958 unsigned long node_overflow;
105959 - atomic_t allochit;
105960 - atomic_t allocmiss;
105961 - atomic_t freehit;
105962 - atomic_t freemiss;
105963 + atomic_unchecked_t allochit;
105964 + atomic_unchecked_t allocmiss;
105965 + atomic_unchecked_t freehit;
105966 + atomic_unchecked_t freemiss;
105967 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
105968 + atomic_unchecked_t sanitized;
105969 + atomic_unchecked_t not_sanitized;
105970 +#endif
105971
105972 /*
105973 * If debugging is enabled, then the allocator can add additional
105974 diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h
105975 index 3388511..6252f90 100644
105976 --- a/include/linux/slub_def.h
105977 +++ b/include/linux/slub_def.h
105978 @@ -74,7 +74,7 @@ struct kmem_cache {
105979 struct kmem_cache_order_objects max;
105980 struct kmem_cache_order_objects min;
105981 gfp_t allocflags; /* gfp flags to use on each alloc */
105982 - int refcount; /* Refcount for slab cache destroy */
105983 + atomic_t refcount; /* Refcount for slab cache destroy */
105984 void (*ctor)(void *);
105985 int inuse; /* Offset to metadata */
105986 int align; /* Alignment */
105987 diff --git a/include/linux/smp.h b/include/linux/smp.h
105988 index c441407..f487b83 100644
105989 --- a/include/linux/smp.h
105990 +++ b/include/linux/smp.h
105991 @@ -183,7 +183,9 @@ static inline void smp_init(void) { }
105992 #endif
105993
105994 #define get_cpu() ({ preempt_disable(); smp_processor_id(); })
105995 +#define raw_get_cpu() ({ raw_preempt_disable(); raw_smp_processor_id(); })
105996 #define put_cpu() preempt_enable()
105997 +#define raw_put_cpu_no_resched() raw_preempt_enable_no_resched()
105998
105999 /*
106000 * Callback to arch code if there's nosmp or maxcpus=0 on the
106001 diff --git a/include/linux/sock_diag.h b/include/linux/sock_diag.h
106002 index fddebc6..6f0ae39 100644
106003 --- a/include/linux/sock_diag.h
106004 +++ b/include/linux/sock_diag.h
106005 @@ -15,7 +15,7 @@ struct sock_diag_handler {
106006 __u8 family;
106007 int (*dump)(struct sk_buff *skb, struct nlmsghdr *nlh);
106008 int (*get_info)(struct sk_buff *skb, struct sock *sk);
106009 -};
106010 +} __do_const;
106011
106012 int sock_diag_register(const struct sock_diag_handler *h);
106013 void sock_diag_unregister(const struct sock_diag_handler *h);
106014 diff --git a/include/linux/sonet.h b/include/linux/sonet.h
106015 index 680f9a3..f13aeb0 100644
106016 --- a/include/linux/sonet.h
106017 +++ b/include/linux/sonet.h
106018 @@ -7,7 +7,7 @@
106019 #include <uapi/linux/sonet.h>
106020
106021 struct k_sonet_stats {
106022 -#define __HANDLE_ITEM(i) atomic_t i
106023 +#define __HANDLE_ITEM(i) atomic_unchecked_t i
106024 __SONET_ITEMS
106025 #undef __HANDLE_ITEM
106026 };
106027 diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h
106028 index 47dd0ce..3275f16 100644
106029 --- a/include/linux/spinlock.h
106030 +++ b/include/linux/spinlock.h
106031 @@ -142,14 +142,17 @@ do { \
106032 extern int do_raw_spin_trylock(raw_spinlock_t *lock);
106033 extern void do_raw_spin_unlock(raw_spinlock_t *lock) __releases(lock);
106034 #else
106035 -static inline void do_raw_spin_lock(raw_spinlock_t *lock) __acquires(lock)
106036 +static inline void do_raw_spin_lock(raw_spinlock_t *lock) __acquires(lock);
106037 +static inline void do_raw_spin_lock(raw_spinlock_t *lock)
106038 {
106039 __acquire(lock);
106040 arch_spin_lock(&lock->raw_lock);
106041 }
106042
106043 static inline void
106044 -do_raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long *flags) __acquires(lock)
106045 +do_raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long *flags) __acquires(lock);
106046 +static inline void
106047 +do_raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long *flags)
106048 {
106049 __acquire(lock);
106050 arch_spin_lock_flags(&lock->raw_lock, *flags);
106051 @@ -160,7 +163,8 @@ static inline int do_raw_spin_trylock(raw_spinlock_t *lock)
106052 return arch_spin_trylock(&(lock)->raw_lock);
106053 }
106054
106055 -static inline void do_raw_spin_unlock(raw_spinlock_t *lock) __releases(lock)
106056 +static inline void do_raw_spin_unlock(raw_spinlock_t *lock) __releases(lock);
106057 +static inline void do_raw_spin_unlock(raw_spinlock_t *lock)
106058 {
106059 arch_spin_unlock(&lock->raw_lock);
106060 __release(lock);
106061 @@ -297,11 +301,13 @@ do { \
106062 raw_spin_lock_init(&(_lock)->rlock); \
106063 } while (0)
106064
106065 +static __always_inline void spin_lock(spinlock_t *lock) __acquires(lock);
106066 static __always_inline void spin_lock(spinlock_t *lock)
106067 {
106068 raw_spin_lock(&lock->rlock);
106069 }
106070
106071 +static __always_inline void spin_lock_bh(spinlock_t *lock) __acquires(lock);
106072 static __always_inline void spin_lock_bh(spinlock_t *lock)
106073 {
106074 raw_spin_lock_bh(&lock->rlock);
106075 @@ -327,6 +333,7 @@ do { \
106076 raw_spin_lock_nest_lock(spinlock_check(lock), nest_lock); \
106077 } while (0)
106078
106079 +static __always_inline void spin_lock_irq(spinlock_t *lock) __acquires(lock);
106080 static __always_inline void spin_lock_irq(spinlock_t *lock)
106081 {
106082 raw_spin_lock_irq(&lock->rlock);
106083 @@ -342,21 +349,25 @@ do { \
106084 raw_spin_lock_irqsave_nested(spinlock_check(lock), flags, subclass); \
106085 } while (0)
106086
106087 +static __always_inline void spin_unlock(spinlock_t *lock) __releases(lock);
106088 static __always_inline void spin_unlock(spinlock_t *lock)
106089 {
106090 raw_spin_unlock(&lock->rlock);
106091 }
106092
106093 +static __always_inline void spin_unlock_bh(spinlock_t *lock) __releases(lock);
106094 static __always_inline void spin_unlock_bh(spinlock_t *lock)
106095 {
106096 raw_spin_unlock_bh(&lock->rlock);
106097 }
106098
106099 +static __always_inline void spin_unlock_irq(spinlock_t *lock) __releases(lock);
106100 static __always_inline void spin_unlock_irq(spinlock_t *lock)
106101 {
106102 raw_spin_unlock_irq(&lock->rlock);
106103 }
106104
106105 +static __always_inline void spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags) __releases(lock);
106106 static __always_inline void spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags)
106107 {
106108 raw_spin_unlock_irqrestore(&lock->rlock, flags);
106109 diff --git a/include/linux/srcu.h b/include/linux/srcu.h
106110 index f5f80c5..d4e916a 100644
106111 --- a/include/linux/srcu.h
106112 +++ b/include/linux/srcu.h
106113 @@ -213,7 +213,8 @@ static inline int srcu_read_lock_held(struct srcu_struct *sp)
106114 * srcu_read_unlock() in an irq handler if the matching srcu_read_lock()
106115 * was invoked in process context.
106116 */
106117 -static inline int srcu_read_lock(struct srcu_struct *sp) __acquires(sp)
106118 +static inline int srcu_read_lock(struct srcu_struct *sp) __acquires(sp);
106119 +static inline int srcu_read_lock(struct srcu_struct *sp)
106120 {
106121 int retval;
106122
106123 @@ -231,8 +232,8 @@ static inline int srcu_read_lock(struct srcu_struct *sp) __acquires(sp)
106124 *
106125 * Exit an SRCU read-side critical section.
106126 */
106127 +static inline void srcu_read_unlock(struct srcu_struct *sp, int idx) __releases(sp);
106128 static inline void srcu_read_unlock(struct srcu_struct *sp, int idx)
106129 - __releases(sp)
106130 {
106131 rcu_lock_release(&(sp)->dep_map);
106132 __srcu_read_unlock(sp, idx);
106133 diff --git a/include/linux/sunrpc/addr.h b/include/linux/sunrpc/addr.h
106134 index 5c9c6cd..f16c5c9 100644
106135 --- a/include/linux/sunrpc/addr.h
106136 +++ b/include/linux/sunrpc/addr.h
106137 @@ -23,9 +23,9 @@ static inline unsigned short rpc_get_port(const struct sockaddr *sap)
106138 {
106139 switch (sap->sa_family) {
106140 case AF_INET:
106141 - return ntohs(((struct sockaddr_in *)sap)->sin_port);
106142 + return ntohs(((const struct sockaddr_in *)sap)->sin_port);
106143 case AF_INET6:
106144 - return ntohs(((struct sockaddr_in6 *)sap)->sin6_port);
106145 + return ntohs(((const struct sockaddr_in6 *)sap)->sin6_port);
106146 }
106147 return 0;
106148 }
106149 @@ -58,7 +58,7 @@ static inline bool rpc_cmp_addr4(const struct sockaddr *sap1,
106150 static inline bool __rpc_copy_addr4(struct sockaddr *dst,
106151 const struct sockaddr *src)
106152 {
106153 - const struct sockaddr_in *ssin = (struct sockaddr_in *) src;
106154 + const struct sockaddr_in *ssin = (const struct sockaddr_in *) src;
106155 struct sockaddr_in *dsin = (struct sockaddr_in *) dst;
106156
106157 dsin->sin_family = ssin->sin_family;
106158 @@ -177,7 +177,7 @@ static inline u32 rpc_get_scope_id(const struct sockaddr *sa)
106159 if (sa->sa_family != AF_INET6)
106160 return 0;
106161
106162 - return ((struct sockaddr_in6 *) sa)->sin6_scope_id;
106163 + return ((const struct sockaddr_in6 *) sa)->sin6_scope_id;
106164 }
106165
106166 #endif /* _LINUX_SUNRPC_ADDR_H */
106167 diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h
106168 index 131032f..5f9378a 100644
106169 --- a/include/linux/sunrpc/clnt.h
106170 +++ b/include/linux/sunrpc/clnt.h
106171 @@ -101,7 +101,7 @@ struct rpc_procinfo {
106172 unsigned int p_timer; /* Which RTT timer to use */
106173 u32 p_statidx; /* Which procedure to account */
106174 const char * p_name; /* name of procedure */
106175 -};
106176 +} __do_const;
106177
106178 #ifdef __KERNEL__
106179
106180 diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h
106181 index cc0fc71..b70c6b1 100644
106182 --- a/include/linux/sunrpc/svc.h
106183 +++ b/include/linux/sunrpc/svc.h
106184 @@ -425,7 +425,7 @@ struct svc_procedure {
106185 unsigned int pc_count; /* call count */
106186 unsigned int pc_cachetype; /* cache info (NFS) */
106187 unsigned int pc_xdrressize; /* maximum size of XDR reply */
106188 -};
106189 +} __do_const;
106190
106191 /*
106192 * Mode for mapping cpus to pools.
106193 diff --git a/include/linux/sunrpc/svc_rdma.h b/include/linux/sunrpc/svc_rdma.h
106194 index f869807..6ab4834 100644
106195 --- a/include/linux/sunrpc/svc_rdma.h
106196 +++ b/include/linux/sunrpc/svc_rdma.h
106197 @@ -53,15 +53,15 @@ extern unsigned int svcrdma_ord;
106198 extern unsigned int svcrdma_max_requests;
106199 extern unsigned int svcrdma_max_req_size;
106200
106201 -extern atomic_t rdma_stat_recv;
106202 -extern atomic_t rdma_stat_read;
106203 -extern atomic_t rdma_stat_write;
106204 -extern atomic_t rdma_stat_sq_starve;
106205 -extern atomic_t rdma_stat_rq_starve;
106206 -extern atomic_t rdma_stat_rq_poll;
106207 -extern atomic_t rdma_stat_rq_prod;
106208 -extern atomic_t rdma_stat_sq_poll;
106209 -extern atomic_t rdma_stat_sq_prod;
106210 +extern atomic_unchecked_t rdma_stat_recv;
106211 +extern atomic_unchecked_t rdma_stat_read;
106212 +extern atomic_unchecked_t rdma_stat_write;
106213 +extern atomic_unchecked_t rdma_stat_sq_starve;
106214 +extern atomic_unchecked_t rdma_stat_rq_starve;
106215 +extern atomic_unchecked_t rdma_stat_rq_poll;
106216 +extern atomic_unchecked_t rdma_stat_rq_prod;
106217 +extern atomic_unchecked_t rdma_stat_sq_poll;
106218 +extern atomic_unchecked_t rdma_stat_sq_prod;
106219
106220 /*
106221 * Contexts are built when an RDMA request is created and are a
106222 diff --git a/include/linux/sunrpc/svcauth.h b/include/linux/sunrpc/svcauth.h
106223 index 8d71d65..f79586e 100644
106224 --- a/include/linux/sunrpc/svcauth.h
106225 +++ b/include/linux/sunrpc/svcauth.h
106226 @@ -120,7 +120,7 @@ struct auth_ops {
106227 int (*release)(struct svc_rqst *rq);
106228 void (*domain_release)(struct auth_domain *);
106229 int (*set_client)(struct svc_rqst *rq);
106230 -};
106231 +} __do_const;
106232
106233 #define SVC_GARBAGE 1
106234 #define SVC_SYSERR 2
106235 diff --git a/include/linux/swapops.h b/include/linux/swapops.h
106236 index 5c3a5f3..84a8bef 100644
106237 --- a/include/linux/swapops.h
106238 +++ b/include/linux/swapops.h
106239 @@ -165,7 +165,7 @@ static inline int is_write_migration_entry(swp_entry_t entry)
106240
106241 #ifdef CONFIG_MEMORY_FAILURE
106242
106243 -extern atomic_long_t num_poisoned_pages __read_mostly;
106244 +extern atomic_long_unchecked_t num_poisoned_pages __read_mostly;
106245
106246 /*
106247 * Support for hardware poisoned pages
106248 @@ -188,22 +188,22 @@ static inline bool test_set_page_hwpoison(struct page *page)
106249
106250 static inline void num_poisoned_pages_inc(void)
106251 {
106252 - atomic_long_inc(&num_poisoned_pages);
106253 + atomic_long_inc_unchecked(&num_poisoned_pages);
106254 }
106255
106256 static inline void num_poisoned_pages_dec(void)
106257 {
106258 - atomic_long_dec(&num_poisoned_pages);
106259 + atomic_long_dec_unchecked(&num_poisoned_pages);
106260 }
106261
106262 static inline void num_poisoned_pages_add(long num)
106263 {
106264 - atomic_long_add(num, &num_poisoned_pages);
106265 + atomic_long_add_unchecked(num, &num_poisoned_pages);
106266 }
106267
106268 static inline void num_poisoned_pages_sub(long num)
106269 {
106270 - atomic_long_sub(num, &num_poisoned_pages);
106271 + atomic_long_sub_unchecked(num, &num_poisoned_pages);
106272 }
106273 #else
106274
106275 diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h
106276 index e7a018e..49f8b17 100644
106277 --- a/include/linux/swiotlb.h
106278 +++ b/include/linux/swiotlb.h
106279 @@ -60,7 +60,8 @@ extern void
106280
106281 extern void
106282 swiotlb_free_coherent(struct device *hwdev, size_t size,
106283 - void *vaddr, dma_addr_t dma_handle);
106284 + void *vaddr, dma_addr_t dma_handle,
106285 + struct dma_attrs *attrs);
106286
106287 extern dma_addr_t swiotlb_map_page(struct device *dev, struct page *page,
106288 unsigned long offset, size_t size,
106289 diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
106290 index c2b66a2..888e225 100644
106291 --- a/include/linux/syscalls.h
106292 +++ b/include/linux/syscalls.h
106293 @@ -102,7 +102,12 @@ union bpf_attr;
106294 #define __TYPE_IS_L(t) (__same_type((t)0, 0L))
106295 #define __TYPE_IS_UL(t) (__same_type((t)0, 0UL))
106296 #define __TYPE_IS_LL(t) (__same_type((t)0, 0LL) || __same_type((t)0, 0ULL))
106297 -#define __SC_LONG(t, a) __typeof(__builtin_choose_expr(__TYPE_IS_LL(t), 0LL, 0L)) a
106298 +#define __SC_LONG(t, a) __typeof__( \
106299 + __builtin_choose_expr( \
106300 + sizeof(t) > sizeof(int), \
106301 + (t) 0, \
106302 + __builtin_choose_expr(__type_is_unsigned(t), 0UL, 0L) \
106303 + )) a
106304 #define __SC_CAST(t, a) (t) a
106305 #define __SC_ARGS(t, a) a
106306 #define __SC_TEST(t, a) (void)BUILD_BUG_ON_ZERO(!__TYPE_IS_LL(t) && sizeof(t) > sizeof(long))
106307 @@ -384,11 +389,11 @@ asmlinkage long sys_sync(void);
106308 asmlinkage long sys_fsync(unsigned int fd);
106309 asmlinkage long sys_fdatasync(unsigned int fd);
106310 asmlinkage long sys_bdflush(int func, long data);
106311 -asmlinkage long sys_mount(char __user *dev_name, char __user *dir_name,
106312 - char __user *type, unsigned long flags,
106313 +asmlinkage long sys_mount(const char __user *dev_name, const char __user *dir_name,
106314 + const char __user *type, unsigned long flags,
106315 void __user *data);
106316 -asmlinkage long sys_umount(char __user *name, int flags);
106317 -asmlinkage long sys_oldumount(char __user *name);
106318 +asmlinkage long sys_umount(const char __user *name, int flags);
106319 +asmlinkage long sys_oldumount(const char __user *name);
106320 asmlinkage long sys_truncate(const char __user *path, long length);
106321 asmlinkage long sys_ftruncate(unsigned int fd, unsigned long length);
106322 asmlinkage long sys_stat(const char __user *filename,
106323 @@ -604,7 +609,7 @@ asmlinkage long sys_getsockname(int, struct sockaddr __user *, int __user *);
106324 asmlinkage long sys_getpeername(int, struct sockaddr __user *, int __user *);
106325 asmlinkage long sys_send(int, void __user *, size_t, unsigned);
106326 asmlinkage long sys_sendto(int, void __user *, size_t, unsigned,
106327 - struct sockaddr __user *, int);
106328 + struct sockaddr __user *, int) __intentional_overflow(0);
106329 asmlinkage long sys_sendmsg(int fd, struct user_msghdr __user *msg, unsigned flags);
106330 asmlinkage long sys_sendmmsg(int fd, struct mmsghdr __user *msg,
106331 unsigned int vlen, unsigned flags);
106332 @@ -663,10 +668,10 @@ asmlinkage long sys_msgctl(int msqid, int cmd, struct msqid_ds __user *buf);
106333
106334 asmlinkage long sys_semget(key_t key, int nsems, int semflg);
106335 asmlinkage long sys_semop(int semid, struct sembuf __user *sops,
106336 - unsigned nsops);
106337 + long nsops);
106338 asmlinkage long sys_semctl(int semid, int semnum, int cmd, unsigned long arg);
106339 asmlinkage long sys_semtimedop(int semid, struct sembuf __user *sops,
106340 - unsigned nsops,
106341 + long nsops,
106342 const struct timespec __user *timeout);
106343 asmlinkage long sys_shmat(int shmid, char __user *shmaddr, int shmflg);
106344 asmlinkage long sys_shmget(key_t key, size_t size, int flag);
106345 @@ -879,7 +884,7 @@ asmlinkage long sys_seccomp(unsigned int op, unsigned int flags,
106346 const char __user *uargs);
106347 asmlinkage long sys_getrandom(char __user *buf, size_t count,
106348 unsigned int flags);
106349 -asmlinkage long sys_bpf(int cmd, union bpf_attr *attr, unsigned int size);
106350 +asmlinkage long sys_bpf(int cmd, union bpf_attr __user *attr, unsigned int size);
106351
106352 asmlinkage long sys_execveat(int dfd, const char __user *filename,
106353 const char __user *const __user *argv,
106354 diff --git a/include/linux/syscore_ops.h b/include/linux/syscore_ops.h
106355 index 27b3b0b..e093dd9 100644
106356 --- a/include/linux/syscore_ops.h
106357 +++ b/include/linux/syscore_ops.h
106358 @@ -16,7 +16,7 @@ struct syscore_ops {
106359 int (*suspend)(void);
106360 void (*resume)(void);
106361 void (*shutdown)(void);
106362 -};
106363 +} __do_const;
106364
106365 extern void register_syscore_ops(struct syscore_ops *ops);
106366 extern void unregister_syscore_ops(struct syscore_ops *ops);
106367 diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
106368 index fa7bc29..0d96561 100644
106369 --- a/include/linux/sysctl.h
106370 +++ b/include/linux/sysctl.h
106371 @@ -39,10 +39,16 @@ typedef int proc_handler (struct ctl_table *ctl, int write,
106372
106373 extern int proc_dostring(struct ctl_table *, int,
106374 void __user *, size_t *, loff_t *);
106375 +extern int proc_dostring_modpriv(struct ctl_table *, int,
106376 + void __user *, size_t *, loff_t *);
106377 extern int proc_dointvec(struct ctl_table *, int,
106378 void __user *, size_t *, loff_t *);
106379 +extern int proc_dointvec_secure(struct ctl_table *, int,
106380 + void __user *, size_t *, loff_t *);
106381 extern int proc_dointvec_minmax(struct ctl_table *, int,
106382 void __user *, size_t *, loff_t *);
106383 +extern int proc_dointvec_minmax_secure(struct ctl_table *, int,
106384 + void __user *, size_t *, loff_t *);
106385 extern int proc_dointvec_jiffies(struct ctl_table *, int,
106386 void __user *, size_t *, loff_t *);
106387 extern int proc_dointvec_userhz_jiffies(struct ctl_table *, int,
106388 @@ -113,7 +119,8 @@ struct ctl_table
106389 struct ctl_table_poll *poll;
106390 void *extra1;
106391 void *extra2;
106392 -};
106393 +} __do_const __randomize_layout;
106394 +typedef struct ctl_table __no_const ctl_table_no_const;
106395
106396 struct ctl_node {
106397 struct rb_node node;
106398 diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
106399 index c6f0f0d..a34ab2d 100644
106400 --- a/include/linux/sysfs.h
106401 +++ b/include/linux/sysfs.h
106402 @@ -34,7 +34,8 @@ struct attribute {
106403 struct lock_class_key *key;
106404 struct lock_class_key skey;
106405 #endif
106406 -};
106407 +} __do_const;
106408 +typedef struct attribute __no_const attribute_no_const;
106409
106410 /**
106411 * sysfs_attr_init - initialize a dynamically allocated sysfs attribute
106412 @@ -88,7 +89,8 @@ struct attribute_group {
106413 struct bin_attribute *, int);
106414 struct attribute **attrs;
106415 struct bin_attribute **bin_attrs;
106416 -};
106417 +} __do_const;
106418 +typedef struct attribute_group __no_const attribute_group_no_const;
106419
106420 /**
106421 * Use these macros to make defining attributes easier. See include/linux/device.h
106422 @@ -162,7 +164,8 @@ struct bin_attribute {
106423 char *, loff_t, size_t);
106424 int (*mmap)(struct file *, struct kobject *, struct bin_attribute *attr,
106425 struct vm_area_struct *vma);
106426 -};
106427 +} __do_const;
106428 +typedef struct bin_attribute __no_const bin_attribute_no_const;
106429
106430 /**
106431 * sysfs_bin_attr_init - initialize a dynamically allocated bin_attribute
106432 diff --git a/include/linux/sysrq.h b/include/linux/sysrq.h
106433 index 387fa7d..3fcde6b 100644
106434 --- a/include/linux/sysrq.h
106435 +++ b/include/linux/sysrq.h
106436 @@ -16,6 +16,7 @@
106437
106438 #include <linux/errno.h>
106439 #include <linux/types.h>
106440 +#include <linux/compiler.h>
106441
106442 /* Possible values of bitmask for enabling sysrq functions */
106443 /* 0x0001 is reserved for enable everything */
106444 @@ -33,7 +34,7 @@ struct sysrq_key_op {
106445 char *help_msg;
106446 char *action_msg;
106447 int enable_mask;
106448 -};
106449 +} __do_const;
106450
106451 #ifdef CONFIG_MAGIC_SYSRQ
106452
106453 diff --git a/include/linux/tcp.h b/include/linux/tcp.h
106454 index b386361..cc87028 100644
106455 --- a/include/linux/tcp.h
106456 +++ b/include/linux/tcp.h
106457 @@ -63,13 +63,13 @@ struct tcp_fastopen_cookie {
106458
106459 /* This defines a selective acknowledgement block. */
106460 struct tcp_sack_block_wire {
106461 - __be32 start_seq;
106462 - __be32 end_seq;
106463 + __be32 start_seq __intentional_overflow(-1);
106464 + __be32 end_seq __intentional_overflow(-1);
106465 };
106466
106467 struct tcp_sack_block {
106468 - u32 start_seq;
106469 - u32 end_seq;
106470 + u32 start_seq __intentional_overflow(-1);
106471 + u32 end_seq __intentional_overflow(-1);
106472 };
106473
106474 /*These are used to set the sack_ok field in struct tcp_options_received */
106475 @@ -154,7 +154,7 @@ struct tcp_sock {
106476 * total number of segments in.
106477 */
106478 u32 rcv_nxt; /* What we want to receive next */
106479 - u32 copied_seq; /* Head of yet unread data */
106480 + u32 copied_seq __intentional_overflow(-1); /* Head of yet unread data */
106481 u32 rcv_wup; /* rcv_nxt on last window update sent */
106482 u32 snd_nxt; /* Next sequence we send */
106483 u32 segs_out; /* RFC4898 tcpEStatsPerfSegsOut
106484 @@ -258,7 +258,7 @@ struct tcp_sock {
106485 u32 prr_out; /* Total number of pkts sent during Recovery. */
106486
106487 u32 rcv_wnd; /* Current receiver window */
106488 - u32 write_seq; /* Tail(+1) of data held in tcp send buffer */
106489 + u32 write_seq __intentional_overflow(-1); /* Tail(+1) of data held in tcp send buffer */
106490 u32 notsent_lowat; /* TCP_NOTSENT_LOWAT */
106491 u32 pushed_seq; /* Last pushed seq, required to talk to windows */
106492 u32 lost_out; /* Lost packets */
106493 @@ -299,7 +299,7 @@ struct tcp_sock {
106494 int undo_retrans; /* number of undoable retransmissions. */
106495 u32 total_retrans; /* Total retransmits for entire connection */
106496
106497 - u32 urg_seq; /* Seq of received urgent pointer */
106498 + u32 urg_seq __intentional_overflow(-1); /* Seq of received urgent pointer */
106499 unsigned int keepalive_time; /* time before keep alive takes place */
106500 unsigned int keepalive_intvl; /* time interval between keep alive probes */
106501
106502 diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h
106503 index ff307b5..f1a4468 100644
106504 --- a/include/linux/thread_info.h
106505 +++ b/include/linux/thread_info.h
106506 @@ -145,6 +145,13 @@ static inline bool test_and_clear_restore_sigmask(void)
106507 #error "no set_restore_sigmask() provided and default one won't work"
106508 #endif
106509
106510 +extern void __check_object_size(const void *ptr, unsigned long n, bool to_user, bool const_size);
106511 +
106512 +static inline void check_object_size(const void *ptr, unsigned long n, bool to_user)
106513 +{
106514 + __check_object_size(ptr, n, to_user, __builtin_constant_p(n));
106515 +}
106516 +
106517 #endif /* __KERNEL__ */
106518
106519 #endif /* _LINUX_THREAD_INFO_H */
106520 diff --git a/include/linux/tty.h b/include/linux/tty.h
106521 index 6b6e811..616acad 100644
106522 --- a/include/linux/tty.h
106523 +++ b/include/linux/tty.h
106524 @@ -225,7 +225,7 @@ struct tty_port {
106525 const struct tty_port_operations *ops; /* Port operations */
106526 spinlock_t lock; /* Lock protecting tty field */
106527 int blocked_open; /* Waiting to open */
106528 - int count; /* Usage count */
106529 + atomic_t count; /* Usage count */
106530 wait_queue_head_t open_wait; /* Open waiters */
106531 wait_queue_head_t delta_msr_wait; /* Modem status change */
106532 unsigned long flags; /* TTY flags ASY_*/
106533 @@ -312,7 +312,7 @@ struct tty_struct {
106534 /* If the tty has a pending do_SAK, queue it here - akpm */
106535 struct work_struct SAK_work;
106536 struct tty_port *port;
106537 -};
106538 +} __randomize_layout;
106539
106540 /* Each of a tty's open files has private_data pointing to tty_file_private */
106541 struct tty_file_private {
106542 @@ -575,7 +575,7 @@ extern int tty_port_open(struct tty_port *port,
106543 struct tty_struct *tty, struct file *filp);
106544 static inline int tty_port_users(struct tty_port *port)
106545 {
106546 - return port->count + port->blocked_open;
106547 + return atomic_read(&port->count) + port->blocked_open;
106548 }
106549
106550 extern int tty_register_ldisc(int disc, struct tty_ldisc_ops *new_ldisc);
106551 diff --git a/include/linux/tty_driver.h b/include/linux/tty_driver.h
106552 index 1610524..331e7c8 100644
106553 --- a/include/linux/tty_driver.h
106554 +++ b/include/linux/tty_driver.h
106555 @@ -291,7 +291,7 @@ struct tty_operations {
106556 void (*poll_put_char)(struct tty_driver *driver, int line, char ch);
106557 #endif
106558 const struct file_operations *proc_fops;
106559 -};
106560 +} __do_const __randomize_layout;
106561
106562 struct tty_driver {
106563 int magic; /* magic number for this structure */
106564 @@ -325,7 +325,7 @@ struct tty_driver {
106565
106566 const struct tty_operations *ops;
106567 struct list_head tty_drivers;
106568 -};
106569 +} __randomize_layout;
106570
106571 extern struct list_head tty_drivers;
106572
106573 diff --git a/include/linux/tty_ldisc.h b/include/linux/tty_ldisc.h
106574 index 00c9d68..bc0188b 100644
106575 --- a/include/linux/tty_ldisc.h
106576 +++ b/include/linux/tty_ldisc.h
106577 @@ -215,7 +215,7 @@ struct tty_ldisc_ops {
106578
106579 struct module *owner;
106580
106581 - int refcount;
106582 + atomic_t refcount;
106583 };
106584
106585 struct tty_ldisc {
106586 diff --git a/include/linux/types.h b/include/linux/types.h
106587 index 70dd3df..c61727f 100644
106588 --- a/include/linux/types.h
106589 +++ b/include/linux/types.h
106590 @@ -176,10 +176,26 @@ typedef struct {
106591 int counter;
106592 } atomic_t;
106593
106594 +#ifdef CONFIG_PAX_REFCOUNT
106595 +typedef struct {
106596 + int counter;
106597 +} atomic_unchecked_t;
106598 +#else
106599 +typedef atomic_t atomic_unchecked_t;
106600 +#endif
106601 +
106602 #ifdef CONFIG_64BIT
106603 typedef struct {
106604 long counter;
106605 } atomic64_t;
106606 +
106607 +#ifdef CONFIG_PAX_REFCOUNT
106608 +typedef struct {
106609 + long counter;
106610 +} atomic64_unchecked_t;
106611 +#else
106612 +typedef atomic64_t atomic64_unchecked_t;
106613 +#endif
106614 #endif
106615
106616 struct list_head {
106617 diff --git a/include/linux/uaccess.h b/include/linux/uaccess.h
106618 index 558129a..0c26e08 100644
106619 --- a/include/linux/uaccess.h
106620 +++ b/include/linux/uaccess.h
106621 @@ -109,6 +109,6 @@ extern long strncpy_from_unsafe(char *dst, const void *unsafe_addr, long count);
106622 * Returns 0 on success, or -EFAULT.
106623 */
106624 #define probe_kernel_address(addr, retval) \
106625 - probe_kernel_read(&retval, addr, sizeof(retval))
106626 + probe_kernel_read(&(retval), addr, sizeof(retval))
106627
106628 #endif /* __LINUX_UACCESS_H__ */
106629 diff --git a/include/linux/uidgid.h b/include/linux/uidgid.h
106630 index 0383552..a0125dd 100644
106631 --- a/include/linux/uidgid.h
106632 +++ b/include/linux/uidgid.h
106633 @@ -187,4 +187,9 @@ static inline bool kgid_has_mapping(struct user_namespace *ns, kgid_t gid)
106634
106635 #endif /* CONFIG_USER_NS */
106636
106637 +#define GR_GLOBAL_UID(x) from_kuid_munged(&init_user_ns, (x))
106638 +#define GR_GLOBAL_GID(x) from_kgid_munged(&init_user_ns, (x))
106639 +#define gr_is_global_root(x) uid_eq((x), GLOBAL_ROOT_UID)
106640 +#define gr_is_global_nonroot(x) (!uid_eq((x), GLOBAL_ROOT_UID))
106641 +
106642 #endif /* _LINUX_UIDGID_H */
106643 diff --git a/include/linux/uio_driver.h b/include/linux/uio_driver.h
106644 index 32c0e83..671eb35 100644
106645 --- a/include/linux/uio_driver.h
106646 +++ b/include/linux/uio_driver.h
106647 @@ -67,7 +67,7 @@ struct uio_device {
106648 struct module *owner;
106649 struct device *dev;
106650 int minor;
106651 - atomic_t event;
106652 + atomic_unchecked_t event;
106653 struct fasync_struct *async_queue;
106654 wait_queue_head_t wait;
106655 struct uio_info *info;
106656 diff --git a/include/linux/unaligned/access_ok.h b/include/linux/unaligned/access_ok.h
106657 index 99c1b4d..562e6f3 100644
106658 --- a/include/linux/unaligned/access_ok.h
106659 +++ b/include/linux/unaligned/access_ok.h
106660 @@ -4,34 +4,34 @@
106661 #include <linux/kernel.h>
106662 #include <asm/byteorder.h>
106663
106664 -static inline u16 get_unaligned_le16(const void *p)
106665 +static inline u16 __intentional_overflow(-1) get_unaligned_le16(const void *p)
106666 {
106667 - return le16_to_cpup((__le16 *)p);
106668 + return le16_to_cpup((const __le16 *)p);
106669 }
106670
106671 -static inline u32 get_unaligned_le32(const void *p)
106672 +static inline u32 __intentional_overflow(-1) get_unaligned_le32(const void *p)
106673 {
106674 - return le32_to_cpup((__le32 *)p);
106675 + return le32_to_cpup((const __le32 *)p);
106676 }
106677
106678 -static inline u64 get_unaligned_le64(const void *p)
106679 +static inline u64 __intentional_overflow(-1) get_unaligned_le64(const void *p)
106680 {
106681 - return le64_to_cpup((__le64 *)p);
106682 + return le64_to_cpup((const __le64 *)p);
106683 }
106684
106685 -static inline u16 get_unaligned_be16(const void *p)
106686 +static inline u16 __intentional_overflow(-1) get_unaligned_be16(const void *p)
106687 {
106688 - return be16_to_cpup((__be16 *)p);
106689 + return be16_to_cpup((const __be16 *)p);
106690 }
106691
106692 -static inline u32 get_unaligned_be32(const void *p)
106693 +static inline u32 __intentional_overflow(-1) get_unaligned_be32(const void *p)
106694 {
106695 - return be32_to_cpup((__be32 *)p);
106696 + return be32_to_cpup((const __be32 *)p);
106697 }
106698
106699 -static inline u64 get_unaligned_be64(const void *p)
106700 +static inline u64 __intentional_overflow(-1) get_unaligned_be64(const void *p)
106701 {
106702 - return be64_to_cpup((__be64 *)p);
106703 + return be64_to_cpup((const __be64 *)p);
106704 }
106705
106706 static inline void put_unaligned_le16(u16 val, void *p)
106707 diff --git a/include/linux/usb.h b/include/linux/usb.h
106708 index b79925d..67cf5d4 100644
106709 --- a/include/linux/usb.h
106710 +++ b/include/linux/usb.h
106711 @@ -367,7 +367,7 @@ struct usb_bus {
106712 * with the URB_SHORT_NOT_OK flag set.
106713 */
106714 unsigned no_sg_constraint:1; /* no sg constraint */
106715 - unsigned sg_tablesize; /* 0 or largest number of sg list entries */
106716 + unsigned short sg_tablesize; /* 0 or largest number of sg list entries */
106717
106718 int devnum_next; /* Next open device number in
106719 * round-robin allocation */
106720 @@ -600,7 +600,7 @@ struct usb_device {
106721 int maxchild;
106722
106723 u32 quirks;
106724 - atomic_t urbnum;
106725 + atomic_unchecked_t urbnum;
106726
106727 unsigned long active_duration;
106728
106729 @@ -1793,10 +1793,10 @@ void usb_sg_wait(struct usb_sg_request *io);
106730
106731 /* NOTE: these are not the standard USB_ENDPOINT_XFER_* values!! */
106732 /* (yet ... they're the values used by usbfs) */
106733 -#define PIPE_ISOCHRONOUS 0
106734 -#define PIPE_INTERRUPT 1
106735 -#define PIPE_CONTROL 2
106736 -#define PIPE_BULK 3
106737 +#define PIPE_ISOCHRONOUS 0U
106738 +#define PIPE_INTERRUPT 1U
106739 +#define PIPE_CONTROL 2U
106740 +#define PIPE_BULK 3U
106741
106742 #define usb_pipein(pipe) ((pipe) & USB_DIR_IN)
106743 #define usb_pipeout(pipe) (!usb_pipein(pipe))
106744 diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h
106745 index f89c24b..843dfb8 100644
106746 --- a/include/linux/usb/hcd.h
106747 +++ b/include/linux/usb/hcd.h
106748 @@ -23,6 +23,7 @@
106749
106750 #include <linux/rwsem.h>
106751 #include <linux/interrupt.h>
106752 +#include <scsi/scsi_host.h>
106753
106754 #define MAX_TOPO_LEVEL 6
106755
106756 diff --git a/include/linux/usb/renesas_usbhs.h b/include/linux/usb/renesas_usbhs.h
106757 index bfb7472..b308c8d 100644
106758 --- a/include/linux/usb/renesas_usbhs.h
106759 +++ b/include/linux/usb/renesas_usbhs.h
106760 @@ -39,7 +39,7 @@ enum {
106761 */
106762 struct renesas_usbhs_driver_callback {
106763 int (*notify_hotplug)(struct platform_device *pdev);
106764 -};
106765 +} __no_const;
106766
106767 /*
106768 * callback functions for platform
106769 diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h
106770 index 8297e5b..0dfae27 100644
106771 --- a/include/linux/user_namespace.h
106772 +++ b/include/linux/user_namespace.h
106773 @@ -39,7 +39,7 @@ struct user_namespace {
106774 struct key *persistent_keyring_register;
106775 struct rw_semaphore persistent_keyring_register_sem;
106776 #endif
106777 -};
106778 +} __randomize_layout;
106779
106780 extern struct user_namespace init_user_ns;
106781
106782 diff --git a/include/linux/utsname.h b/include/linux/utsname.h
106783 index 5093f58..c103e58 100644
106784 --- a/include/linux/utsname.h
106785 +++ b/include/linux/utsname.h
106786 @@ -25,7 +25,7 @@ struct uts_namespace {
106787 struct new_utsname name;
106788 struct user_namespace *user_ns;
106789 struct ns_common ns;
106790 -};
106791 +} __randomize_layout;
106792 extern struct uts_namespace init_uts_ns;
106793
106794 #ifdef CONFIG_UTS_NS
106795 diff --git a/include/linux/vermagic.h b/include/linux/vermagic.h
106796 index 6f8fbcf..4efc177 100644
106797 --- a/include/linux/vermagic.h
106798 +++ b/include/linux/vermagic.h
106799 @@ -25,9 +25,42 @@
106800 #define MODULE_ARCH_VERMAGIC ""
106801 #endif
106802
106803 +#ifdef CONFIG_PAX_REFCOUNT
106804 +#define MODULE_PAX_REFCOUNT "REFCOUNT "
106805 +#else
106806 +#define MODULE_PAX_REFCOUNT ""
106807 +#endif
106808 +
106809 +#ifdef CONSTIFY_PLUGIN
106810 +#define MODULE_CONSTIFY_PLUGIN "CONSTIFY_PLUGIN "
106811 +#else
106812 +#define MODULE_CONSTIFY_PLUGIN ""
106813 +#endif
106814 +
106815 +#ifdef STACKLEAK_PLUGIN
106816 +#define MODULE_STACKLEAK_PLUGIN "STACKLEAK_PLUGIN "
106817 +#else
106818 +#define MODULE_STACKLEAK_PLUGIN ""
106819 +#endif
106820 +
106821 +#ifdef RANDSTRUCT_PLUGIN
106822 +#include <generated/randomize_layout_hash.h>
106823 +#define MODULE_RANDSTRUCT_PLUGIN "RANDSTRUCT_PLUGIN_" RANDSTRUCT_HASHED_SEED
106824 +#else
106825 +#define MODULE_RANDSTRUCT_PLUGIN
106826 +#endif
106827 +
106828 +#ifdef CONFIG_GRKERNSEC
106829 +#define MODULE_GRSEC "GRSEC "
106830 +#else
106831 +#define MODULE_GRSEC ""
106832 +#endif
106833 +
106834 #define VERMAGIC_STRING \
106835 UTS_RELEASE " " \
106836 MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT \
106837 MODULE_VERMAGIC_MODULE_UNLOAD MODULE_VERMAGIC_MODVERSIONS \
106838 - MODULE_ARCH_VERMAGIC
106839 + MODULE_ARCH_VERMAGIC \
106840 + MODULE_PAX_REFCOUNT MODULE_CONSTIFY_PLUGIN MODULE_STACKLEAK_PLUGIN \
106841 + MODULE_GRSEC MODULE_RANDSTRUCT_PLUGIN
106842
106843 diff --git a/include/linux/vga_switcheroo.h b/include/linux/vga_switcheroo.h
106844 index 69e1d4a1..566fa52 100644
106845 --- a/include/linux/vga_switcheroo.h
106846 +++ b/include/linux/vga_switcheroo.h
106847 @@ -141,9 +141,9 @@ enum vga_switcheroo_state vga_switcheroo_get_client_state(struct pci_dev *dev);
106848
106849 void vga_switcheroo_set_dynamic_switch(struct pci_dev *pdev, enum vga_switcheroo_state dynamic);
106850
106851 -int vga_switcheroo_init_domain_pm_ops(struct device *dev, struct dev_pm_domain *domain);
106852 +int vga_switcheroo_init_domain_pm_ops(struct device *dev, dev_pm_domain_no_const *domain);
106853 void vga_switcheroo_fini_domain_pm_ops(struct device *dev);
106854 -int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, struct dev_pm_domain *domain);
106855 +int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, dev_pm_domain_no_const *domain);
106856 #else
106857
106858 static inline void vga_switcheroo_unregister_client(struct pci_dev *dev) {}
106859 @@ -160,9 +160,9 @@ static inline enum vga_switcheroo_state vga_switcheroo_get_client_state(struct p
106860
106861 static inline void vga_switcheroo_set_dynamic_switch(struct pci_dev *pdev, enum vga_switcheroo_state dynamic) {}
106862
106863 -static inline int vga_switcheroo_init_domain_pm_ops(struct device *dev, struct dev_pm_domain *domain) { return -EINVAL; }
106864 +static inline int vga_switcheroo_init_domain_pm_ops(struct device *dev, dev_pm_domain_no_const *domain) { return -EINVAL; }
106865 static inline void vga_switcheroo_fini_domain_pm_ops(struct device *dev) {}
106866 -static inline int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, struct dev_pm_domain *domain) { return -EINVAL; }
106867 +static inline int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, dev_pm_domain_no_const *domain) { return -EINVAL; }
106868
106869 #endif
106870 #endif /* _LINUX_VGA_SWITCHEROO_H_ */
106871 diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h
106872 index 3bff87a..66d8171 100644
106873 --- a/include/linux/vmalloc.h
106874 +++ b/include/linux/vmalloc.h
106875 @@ -18,6 +18,14 @@ struct vm_area_struct; /* vma defining user mapping in mm_types.h */
106876 #define VM_UNINITIALIZED 0x00000020 /* vm_struct is not fully initialized */
106877 #define VM_NO_GUARD 0x00000040 /* don't add guard page */
106878 #define VM_KASAN 0x00000080 /* has allocated kasan shadow memory */
106879 +
106880 +#if defined(CONFIG_X86) && defined(CONFIG_PAX_KERNEXEC)
106881 +#define VM_KERNEXEC 0x00000100 /* allocate from executable kernel memory range */
106882 +#endif
106883 +
106884 +#define VM_USERCOPY 0x00000200 /* allocation intended for copies to userland */
106885 +
106886 +
106887 /* bits [20..32] reserved for arch specific ioremap internals */
106888
106889 /*
106890 @@ -67,6 +75,7 @@ static inline void vmalloc_init(void)
106891 #endif
106892
106893 extern void *vmalloc(unsigned long size);
106894 +extern void *vmalloc_usercopy(unsigned long size);
106895 extern void *vzalloc(unsigned long size);
106896 extern void *vmalloc_user(unsigned long size);
106897 extern void *vmalloc_node(unsigned long size, int node);
106898 @@ -86,6 +95,10 @@ extern void *vmap(struct page **pages, unsigned int count,
106899 unsigned long flags, pgprot_t prot);
106900 extern void vunmap(const void *addr);
106901
106902 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
106903 +extern void unmap_process_stacks(struct task_struct *task);
106904 +#endif
106905 +
106906 extern int remap_vmalloc_range_partial(struct vm_area_struct *vma,
106907 unsigned long uaddr, void *kaddr,
106908 unsigned long size);
106909 @@ -150,7 +163,7 @@ extern void free_vm_area(struct vm_struct *area);
106910
106911 /* for /dev/kmem */
106912 extern long vread(char *buf, char *addr, unsigned long count);
106913 -extern long vwrite(char *buf, char *addr, unsigned long count);
106914 +extern long vwrite(char *buf, char *addr, unsigned long count) __size_overflow(3);
106915
106916 /*
106917 * Internals. Dont't use..
106918 diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h
106919 index 3e5d907..037e86c 100644
106920 --- a/include/linux/vmstat.h
106921 +++ b/include/linux/vmstat.h
106922 @@ -108,18 +108,18 @@ static inline void vm_events_fold_cpu(int cpu)
106923 /*
106924 * Zone based page accounting with per cpu differentials.
106925 */
106926 -extern atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
106927 +extern atomic_long_unchecked_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
106928
106929 static inline void zone_page_state_add(long x, struct zone *zone,
106930 enum zone_stat_item item)
106931 {
106932 - atomic_long_add(x, &zone->vm_stat[item]);
106933 - atomic_long_add(x, &vm_stat[item]);
106934 + atomic_long_add_unchecked(x, &zone->vm_stat[item]);
106935 + atomic_long_add_unchecked(x, &vm_stat[item]);
106936 }
106937
106938 -static inline unsigned long global_page_state(enum zone_stat_item item)
106939 +static inline unsigned long __intentional_overflow(-1) global_page_state(enum zone_stat_item item)
106940 {
106941 - long x = atomic_long_read(&vm_stat[item]);
106942 + long x = atomic_long_read_unchecked(&vm_stat[item]);
106943 #ifdef CONFIG_SMP
106944 if (x < 0)
106945 x = 0;
106946 @@ -127,10 +127,10 @@ static inline unsigned long global_page_state(enum zone_stat_item item)
106947 return x;
106948 }
106949
106950 -static inline unsigned long zone_page_state(struct zone *zone,
106951 +static inline unsigned long __intentional_overflow(-1) zone_page_state(struct zone *zone,
106952 enum zone_stat_item item)
106953 {
106954 - long x = atomic_long_read(&zone->vm_stat[item]);
106955 + long x = atomic_long_read_unchecked(&zone->vm_stat[item]);
106956 #ifdef CONFIG_SMP
106957 if (x < 0)
106958 x = 0;
106959 @@ -147,7 +147,7 @@ static inline unsigned long zone_page_state(struct zone *zone,
106960 static inline unsigned long zone_page_state_snapshot(struct zone *zone,
106961 enum zone_stat_item item)
106962 {
106963 - long x = atomic_long_read(&zone->vm_stat[item]);
106964 + long x = atomic_long_read_unchecked(&zone->vm_stat[item]);
106965
106966 #ifdef CONFIG_SMP
106967 int cpu;
106968 @@ -212,14 +212,14 @@ static inline void __mod_zone_page_state(struct zone *zone,
106969
106970 static inline void __inc_zone_state(struct zone *zone, enum zone_stat_item item)
106971 {
106972 - atomic_long_inc(&zone->vm_stat[item]);
106973 - atomic_long_inc(&vm_stat[item]);
106974 + atomic_long_inc_unchecked(&zone->vm_stat[item]);
106975 + atomic_long_inc_unchecked(&vm_stat[item]);
106976 }
106977
106978 static inline void __dec_zone_state(struct zone *zone, enum zone_stat_item item)
106979 {
106980 - atomic_long_dec(&zone->vm_stat[item]);
106981 - atomic_long_dec(&vm_stat[item]);
106982 + atomic_long_dec_unchecked(&zone->vm_stat[item]);
106983 + atomic_long_dec_unchecked(&vm_stat[item]);
106984 }
106985
106986 static inline void __inc_zone_page_state(struct page *page,
106987 diff --git a/include/linux/writeback.h b/include/linux/writeback.h
106988 index d0b5ca5..c13529b 100644
106989 --- a/include/linux/writeback.h
106990 +++ b/include/linux/writeback.h
106991 @@ -278,8 +278,9 @@ static inline void inode_detach_wb(struct inode *inode)
106992 }
106993
106994 static inline void wbc_attach_and_unlock_inode(struct writeback_control *wbc,
106995 + struct inode *inode) __releases(&inode->i_lock);
106996 +static inline void wbc_attach_and_unlock_inode(struct writeback_control *wbc,
106997 struct inode *inode)
106998 - __releases(&inode->i_lock)
106999 {
107000 spin_unlock(&inode->i_lock);
107001 }
107002 diff --git a/include/linux/xattr.h b/include/linux/xattr.h
107003 index 89474b9..31b5dcb 100644
107004 --- a/include/linux/xattr.h
107005 +++ b/include/linux/xattr.h
107006 @@ -30,7 +30,7 @@ struct xattr_handler {
107007 int (*set)(const struct xattr_handler *, struct dentry *dentry,
107008 const char *name, const void *buffer, size_t size,
107009 int flags);
107010 -};
107011 +} __do_const;
107012
107013 const char *xattr_full_name(const struct xattr_handler *, const char *);
107014
107015 @@ -41,6 +41,9 @@ struct xattr {
107016 };
107017
107018 ssize_t xattr_getsecurity(struct inode *, const char *, void *, size_t);
107019 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
107020 +ssize_t pax_getxattr(struct dentry *, void *, size_t);
107021 +#endif
107022 ssize_t vfs_getxattr(struct dentry *, const char *, void *, size_t);
107023 ssize_t vfs_listxattr(struct dentry *d, char *list, size_t size);
107024 int __vfs_setxattr_noperm(struct dentry *, const char *, const void *, size_t, int);
107025 diff --git a/include/linux/zlib.h b/include/linux/zlib.h
107026 index 92dbbd3..13ab0b3 100644
107027 --- a/include/linux/zlib.h
107028 +++ b/include/linux/zlib.h
107029 @@ -31,6 +31,7 @@
107030 #define _ZLIB_H
107031
107032 #include <linux/zconf.h>
107033 +#include <linux/compiler.h>
107034
107035 /* zlib deflate based on ZLIB_VERSION "1.1.3" */
107036 /* zlib inflate based on ZLIB_VERSION "1.2.3" */
107037 @@ -179,7 +180,7 @@ typedef z_stream *z_streamp;
107038
107039 /* basic functions */
107040
107041 -extern int zlib_deflate_workspacesize (int windowBits, int memLevel);
107042 +extern int zlib_deflate_workspacesize (int windowBits, int memLevel) __intentional_overflow(0);
107043 /*
107044 Returns the number of bytes that needs to be allocated for a per-
107045 stream workspace with the specified parameters. A pointer to this
107046 diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h
107047 index acbcd2f..c3abe84 100644
107048 --- a/include/media/v4l2-dev.h
107049 +++ b/include/media/v4l2-dev.h
107050 @@ -74,7 +74,7 @@ struct v4l2_file_operations {
107051 int (*mmap) (struct file *, struct vm_area_struct *);
107052 int (*open) (struct file *);
107053 int (*release) (struct file *);
107054 -};
107055 +} __do_const;
107056
107057 /*
107058 * Newer version of video_device, handled by videodev2.c
107059 diff --git a/include/media/v4l2-device.h b/include/media/v4l2-device.h
107060 index 9c58157..d86ebf5 100644
107061 --- a/include/media/v4l2-device.h
107062 +++ b/include/media/v4l2-device.h
107063 @@ -93,7 +93,7 @@ int __must_check v4l2_device_register(struct device *dev, struct v4l2_device *v4
107064 this function returns 0. If the name ends with a digit (e.g. cx18),
107065 then the name will be set to cx18-0 since cx180 looks really odd. */
107066 int v4l2_device_set_name(struct v4l2_device *v4l2_dev, const char *basename,
107067 - atomic_t *instance);
107068 + atomic_unchecked_t *instance);
107069
107070 /* Set v4l2_dev->dev to NULL. Call when the USB parent disconnects.
107071 Since the parent disappears this ensures that v4l2_dev doesn't have an
107072 diff --git a/include/net/9p/transport.h b/include/net/9p/transport.h
107073 index 5122b5e..598b440 100644
107074 --- a/include/net/9p/transport.h
107075 +++ b/include/net/9p/transport.h
107076 @@ -62,7 +62,7 @@ struct p9_trans_module {
107077 int (*cancelled)(struct p9_client *, struct p9_req_t *req);
107078 int (*zc_request)(struct p9_client *, struct p9_req_t *,
107079 struct iov_iter *, struct iov_iter *, int , int, int);
107080 -};
107081 +} __do_const;
107082
107083 void v9fs_register_trans(struct p9_trans_module *m);
107084 void v9fs_unregister_trans(struct p9_trans_module *m);
107085 diff --git a/include/net/af_unix.h b/include/net/af_unix.h
107086 index 9b4c418..f3ff431 100644
107087 --- a/include/net/af_unix.h
107088 +++ b/include/net/af_unix.h
107089 @@ -36,7 +36,7 @@ struct unix_skb_parms {
107090 u32 secid; /* Security ID */
107091 #endif
107092 u32 consumed;
107093 -};
107094 +} __randomize_layout;
107095
107096 #define UNIXCB(skb) (*(struct unix_skb_parms *)&((skb)->cb))
107097
107098 diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h
107099 index 5289929..b4c41b3 100644
107100 --- a/include/net/bluetooth/l2cap.h
107101 +++ b/include/net/bluetooth/l2cap.h
107102 @@ -613,7 +613,7 @@ struct l2cap_ops {
107103 struct sk_buff *(*alloc_skb) (struct l2cap_chan *chan,
107104 unsigned long hdr_len,
107105 unsigned long len, int nb);
107106 -};
107107 +} __do_const;
107108
107109 struct l2cap_conn {
107110 struct hci_conn *hcon;
107111 diff --git a/include/net/bonding.h b/include/net/bonding.h
107112 index c1740a2..ec57070 100644
107113 --- a/include/net/bonding.h
107114 +++ b/include/net/bonding.h
107115 @@ -668,7 +668,7 @@ extern struct rtnl_link_ops bond_link_ops;
107116
107117 static inline void bond_tx_drop(struct net_device *dev, struct sk_buff *skb)
107118 {
107119 - atomic_long_inc(&dev->tx_dropped);
107120 + atomic_long_inc_unchecked(&dev->tx_dropped);
107121 dev_kfree_skb_any(skb);
107122 }
107123
107124 diff --git a/include/net/caif/cfctrl.h b/include/net/caif/cfctrl.h
107125 index f2ae33d..c457cf0 100644
107126 --- a/include/net/caif/cfctrl.h
107127 +++ b/include/net/caif/cfctrl.h
107128 @@ -52,7 +52,7 @@ struct cfctrl_rsp {
107129 void (*radioset_rsp)(void);
107130 void (*reject_rsp)(struct cflayer *layer, u8 linkid,
107131 struct cflayer *client_layer);
107132 -};
107133 +} __no_const;
107134
107135 /* Link Setup Parameters for CAIF-Links. */
107136 struct cfctrl_link_param {
107137 @@ -101,8 +101,8 @@ struct cfctrl_request_info {
107138 struct cfctrl {
107139 struct cfsrvl serv;
107140 struct cfctrl_rsp res;
107141 - atomic_t req_seq_no;
107142 - atomic_t rsp_seq_no;
107143 + atomic_unchecked_t req_seq_no;
107144 + atomic_unchecked_t rsp_seq_no;
107145 struct list_head list;
107146 /* Protects from simultaneous access to first_req list */
107147 spinlock_t info_list_lock;
107148 diff --git a/include/net/cfg802154.h b/include/net/cfg802154.h
107149 index 171cd76..15666d6 100644
107150 --- a/include/net/cfg802154.h
107151 +++ b/include/net/cfg802154.h
107152 @@ -341,7 +341,7 @@ struct wpan_dev {
107153 /* MAC BSN field */
107154 atomic_t bsn;
107155 /* MAC DSN field */
107156 - atomic_t dsn;
107157 + atomic_unchecked_t dsn;
107158
107159 u8 min_be;
107160 u8 max_be;
107161 diff --git a/include/net/flow.h b/include/net/flow.h
107162 index 83969ee..ee0611d 100644
107163 --- a/include/net/flow.h
107164 +++ b/include/net/flow.h
107165 @@ -243,7 +243,7 @@ void flow_cache_fini(struct net *net);
107166
107167 void flow_cache_flush(struct net *net);
107168 void flow_cache_flush_deferred(struct net *net);
107169 -extern atomic_t flow_cache_genid;
107170 +extern atomic_unchecked_t flow_cache_genid;
107171
107172 __u32 __get_hash_from_flowi6(const struct flowi6 *fl6, struct flow_keys *keys);
107173
107174 diff --git a/include/net/genetlink.h b/include/net/genetlink.h
107175 index 1b6b6dc..f6e691b 100644
107176 --- a/include/net/genetlink.h
107177 +++ b/include/net/genetlink.h
107178 @@ -128,7 +128,7 @@ struct genl_ops {
107179 u8 cmd;
107180 u8 internal_flags;
107181 u8 flags;
107182 -};
107183 +} __do_const;
107184
107185 int __genl_register_family(struct genl_family *family);
107186
107187 diff --git a/include/net/gro_cells.h b/include/net/gro_cells.h
107188 index cf6c745..8a0cf00 100644
107189 --- a/include/net/gro_cells.h
107190 +++ b/include/net/gro_cells.h
107191 @@ -27,7 +27,7 @@ static inline void gro_cells_receive(struct gro_cells *gcells, struct sk_buff *s
107192 cell = this_cpu_ptr(gcells->cells);
107193
107194 if (skb_queue_len(&cell->napi_skbs) > netdev_max_backlog) {
107195 - atomic_long_inc(&dev->rx_dropped);
107196 + atomic_long_inc_unchecked(&dev->rx_dropped);
107197 kfree_skb(skb);
107198 return;
107199 }
107200 diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h
107201 index 49dcad4..6d2c708 100644
107202 --- a/include/net/inet_connection_sock.h
107203 +++ b/include/net/inet_connection_sock.h
107204 @@ -65,7 +65,7 @@ struct inet_connection_sock_af_ops {
107205 int (*bind_conflict)(const struct sock *sk,
107206 const struct inet_bind_bucket *tb, bool relax);
107207 void (*mtu_reduced)(struct sock *sk);
107208 -};
107209 +} __do_const;
107210
107211 /** inet_connection_sock - INET connection oriented sock
107212 *
107213 diff --git a/include/net/inet_sock.h b/include/net/inet_sock.h
107214 index 625bdf9..5fd982c 100644
107215 --- a/include/net/inet_sock.h
107216 +++ b/include/net/inet_sock.h
107217 @@ -43,7 +43,7 @@
107218 struct ip_options {
107219 __be32 faddr;
107220 __be32 nexthop;
107221 - unsigned char optlen;
107222 + unsigned char optlen __intentional_overflow(0);
107223 unsigned char srr;
107224 unsigned char rr;
107225 unsigned char ts;
107226 diff --git a/include/net/inetpeer.h b/include/net/inetpeer.h
107227 index 235c781..160d4a3 100644
107228 --- a/include/net/inetpeer.h
107229 +++ b/include/net/inetpeer.h
107230 @@ -52,7 +52,7 @@ struct inet_peer {
107231 */
107232 union {
107233 struct {
107234 - atomic_t rid; /* Frag reception counter */
107235 + atomic_unchecked_t rid; /* Frag reception counter */
107236 };
107237 struct rcu_head rcu;
107238 struct inet_peer *gc_next;
107239 diff --git a/include/net/ip.h b/include/net/ip.h
107240 index 1a98f1c..2a44de6 100644
107241 --- a/include/net/ip.h
107242 +++ b/include/net/ip.h
107243 @@ -330,7 +330,7 @@ static inline unsigned int ip_skb_dst_mtu(const struct sk_buff *skb)
107244 return min(skb_dst(skb)->dev->mtu, IP_MAX_MTU);
107245 }
107246
107247 -u32 ip_idents_reserve(u32 hash, int segs);
107248 +u32 ip_idents_reserve(u32 hash, int segs) __intentional_overflow(-1);
107249 void __ip_select_ident(struct net *net, struct iphdr *iph, int segs);
107250
107251 static inline void ip_select_ident_segs(struct net *net, struct sk_buff *skb,
107252 diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h
107253 index 3f98233..3d46645 100644
107254 --- a/include/net/ip_fib.h
107255 +++ b/include/net/ip_fib.h
107256 @@ -174,7 +174,7 @@ __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh);
107257
107258 #define FIB_RES_SADDR(net, res) \
107259 ((FIB_RES_NH(res).nh_saddr_genid == \
107260 - atomic_read(&(net)->ipv4.dev_addr_genid)) ? \
107261 + atomic_read_unchecked(&(net)->ipv4.dev_addr_genid)) ? \
107262 FIB_RES_NH(res).nh_saddr : \
107263 fib_info_update_nh_saddr((net), &FIB_RES_NH(res)))
107264 #define FIB_RES_GW(res) (FIB_RES_NH(res).nh_gw)
107265 diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h
107266 index 0816c87..b86fca5 100644
107267 --- a/include/net/ip_vs.h
107268 +++ b/include/net/ip_vs.h
107269 @@ -543,7 +543,7 @@ struct ip_vs_conn {
107270 struct ip_vs_conn *control; /* Master control connection */
107271 atomic_t n_control; /* Number of controlled ones */
107272 struct ip_vs_dest *dest; /* real server */
107273 - atomic_t in_pkts; /* incoming packet counter */
107274 + atomic_unchecked_t in_pkts; /* incoming packet counter */
107275
107276 /* Packet transmitter for different forwarding methods. If it
107277 * mangles the packet, it must return NF_DROP or better NF_STOLEN,
107278 @@ -664,7 +664,7 @@ struct ip_vs_dest {
107279 __be16 port; /* port number of the server */
107280 union nf_inet_addr addr; /* IP address of the server */
107281 volatile unsigned int flags; /* dest status flags */
107282 - atomic_t conn_flags; /* flags to copy to conn */
107283 + atomic_unchecked_t conn_flags; /* flags to copy to conn */
107284 atomic_t weight; /* server weight */
107285
107286 atomic_t refcnt; /* reference counter */
107287 @@ -924,11 +924,11 @@ struct netns_ipvs {
107288 /* ip_vs_lblc */
107289 int sysctl_lblc_expiration;
107290 struct ctl_table_header *lblc_ctl_header;
107291 - struct ctl_table *lblc_ctl_table;
107292 + ctl_table_no_const *lblc_ctl_table;
107293 /* ip_vs_lblcr */
107294 int sysctl_lblcr_expiration;
107295 struct ctl_table_header *lblcr_ctl_header;
107296 - struct ctl_table *lblcr_ctl_table;
107297 + ctl_table_no_const *lblcr_ctl_table;
107298 /* ip_vs_est */
107299 struct list_head est_list; /* estimator list */
107300 spinlock_t est_lock;
107301 diff --git a/include/net/ipv6.h b/include/net/ipv6.h
107302 index 9a5c9f0..929c0e3 100644
107303 --- a/include/net/ipv6.h
107304 +++ b/include/net/ipv6.h
107305 @@ -756,7 +756,7 @@ static inline __be32 ip6_make_flowlabel(struct net *net, struct sk_buff *skb,
107306 * to minimize possbility that any useful information to an
107307 * attacker is leaked. Only lower 20 bits are relevant.
107308 */
107309 - rol32(hash, 16);
107310 + hash = rol32(hash, 16);
107311
107312 flowlabel = (__force __be32)hash & IPV6_FLOWLABEL_MASK;
107313
107314 diff --git a/include/net/irda/ircomm_tty.h b/include/net/irda/ircomm_tty.h
107315 index 8d4f588..2e37ad2 100644
107316 --- a/include/net/irda/ircomm_tty.h
107317 +++ b/include/net/irda/ircomm_tty.h
107318 @@ -33,6 +33,7 @@
107319 #include <linux/termios.h>
107320 #include <linux/timer.h>
107321 #include <linux/tty.h> /* struct tty_struct */
107322 +#include <asm/local.h>
107323
107324 #include <net/irda/irias_object.h>
107325 #include <net/irda/ircomm_core.h>
107326 diff --git a/include/net/iucv/af_iucv.h b/include/net/iucv/af_iucv.h
107327 index 714cc9a..ea05f3e 100644
107328 --- a/include/net/iucv/af_iucv.h
107329 +++ b/include/net/iucv/af_iucv.h
107330 @@ -149,7 +149,7 @@ struct iucv_skb_cb {
107331 struct iucv_sock_list {
107332 struct hlist_head head;
107333 rwlock_t lock;
107334 - atomic_t autobind_name;
107335 + atomic_unchecked_t autobind_name;
107336 };
107337
107338 unsigned int iucv_sock_poll(struct file *file, struct socket *sock,
107339 diff --git a/include/net/llc_c_ac.h b/include/net/llc_c_ac.h
107340 index f3be818..bf46196 100644
107341 --- a/include/net/llc_c_ac.h
107342 +++ b/include/net/llc_c_ac.h
107343 @@ -87,7 +87,7 @@
107344 #define LLC_CONN_AC_STOP_SENDACK_TMR 70
107345 #define LLC_CONN_AC_START_SENDACK_TMR_IF_NOT_RUNNING 71
107346
107347 -typedef int (*llc_conn_action_t)(struct sock *sk, struct sk_buff *skb);
107348 +typedef int (* const llc_conn_action_t)(struct sock *sk, struct sk_buff *skb);
107349
107350 int llc_conn_ac_clear_remote_busy(struct sock *sk, struct sk_buff *skb);
107351 int llc_conn_ac_conn_ind(struct sock *sk, struct sk_buff *skb);
107352 diff --git a/include/net/llc_c_ev.h b/include/net/llc_c_ev.h
107353 index 3948cf1..83b28c4 100644
107354 --- a/include/net/llc_c_ev.h
107355 +++ b/include/net/llc_c_ev.h
107356 @@ -125,8 +125,8 @@ static __inline__ struct llc_conn_state_ev *llc_conn_ev(struct sk_buff *skb)
107357 return (struct llc_conn_state_ev *)skb->cb;
107358 }
107359
107360 -typedef int (*llc_conn_ev_t)(struct sock *sk, struct sk_buff *skb);
107361 -typedef int (*llc_conn_ev_qfyr_t)(struct sock *sk, struct sk_buff *skb);
107362 +typedef int (* const llc_conn_ev_t)(struct sock *sk, struct sk_buff *skb);
107363 +typedef int (* const llc_conn_ev_qfyr_t)(struct sock *sk, struct sk_buff *skb);
107364
107365 int llc_conn_ev_conn_req(struct sock *sk, struct sk_buff *skb);
107366 int llc_conn_ev_data_req(struct sock *sk, struct sk_buff *skb);
107367 diff --git a/include/net/llc_c_st.h b/include/net/llc_c_st.h
107368 index 48f3f89..0e92c50 100644
107369 --- a/include/net/llc_c_st.h
107370 +++ b/include/net/llc_c_st.h
107371 @@ -37,7 +37,7 @@ struct llc_conn_state_trans {
107372 u8 next_state;
107373 const llc_conn_ev_qfyr_t *ev_qualifiers;
107374 const llc_conn_action_t *ev_actions;
107375 -};
107376 +} __do_const;
107377
107378 struct llc_conn_state {
107379 u8 current_state;
107380 diff --git a/include/net/llc_s_ac.h b/include/net/llc_s_ac.h
107381 index a61b98c..aade1eb 100644
107382 --- a/include/net/llc_s_ac.h
107383 +++ b/include/net/llc_s_ac.h
107384 @@ -23,7 +23,7 @@
107385 #define SAP_ACT_TEST_IND 9
107386
107387 /* All action functions must look like this */
107388 -typedef int (*llc_sap_action_t)(struct llc_sap *sap, struct sk_buff *skb);
107389 +typedef int (* const llc_sap_action_t)(struct llc_sap *sap, struct sk_buff *skb);
107390
107391 int llc_sap_action_unitdata_ind(struct llc_sap *sap, struct sk_buff *skb);
107392 int llc_sap_action_send_ui(struct llc_sap *sap, struct sk_buff *skb);
107393 diff --git a/include/net/llc_s_st.h b/include/net/llc_s_st.h
107394 index c4359e2..76dbc4a 100644
107395 --- a/include/net/llc_s_st.h
107396 +++ b/include/net/llc_s_st.h
107397 @@ -20,7 +20,7 @@ struct llc_sap_state_trans {
107398 llc_sap_ev_t ev;
107399 u8 next_state;
107400 const llc_sap_action_t *ev_actions;
107401 -};
107402 +} __do_const;
107403
107404 struct llc_sap_state {
107405 u8 curr_state;
107406 diff --git a/include/net/mac80211.h b/include/net/mac80211.h
107407 index 760bc4d..84e4550 100644
107408 --- a/include/net/mac80211.h
107409 +++ b/include/net/mac80211.h
107410 @@ -1497,7 +1497,7 @@ enum ieee80211_key_flags {
107411 * @iv_len: The IV length for this key type
107412 */
107413 struct ieee80211_key_conf {
107414 - atomic64_t tx_pn;
107415 + atomic64_unchecked_t tx_pn;
107416 u32 cipher;
107417 u8 icv_len;
107418 u8 iv_len;
107419 @@ -5142,7 +5142,7 @@ struct ieee80211_tx_rate_control {
107420 struct sk_buff *skb;
107421 struct ieee80211_tx_rate reported_rate;
107422 bool rts, short_preamble;
107423 - u8 max_rate_idx;
107424 + s8 max_rate_idx;
107425 u32 rate_idx_mask;
107426 u8 *rate_idx_mcs_mask;
107427 bool bss;
107428 @@ -5179,7 +5179,7 @@ struct rate_control_ops {
107429 void (*remove_sta_debugfs)(void *priv, void *priv_sta);
107430
107431 u32 (*get_expected_throughput)(void *priv_sta);
107432 -};
107433 +} __do_const;
107434
107435 static inline int rate_supported(struct ieee80211_sta *sta,
107436 enum ieee80211_band band,
107437 diff --git a/include/net/neighbour.h b/include/net/neighbour.h
107438 index 8b68384..48fe40e 100644
107439 --- a/include/net/neighbour.h
107440 +++ b/include/net/neighbour.h
107441 @@ -142,7 +142,7 @@ struct neighbour {
107442 unsigned int arp_queue_len_bytes;
107443 struct timer_list timer;
107444 unsigned long used;
107445 - atomic_t probes;
107446 + atomic_unchecked_t probes;
107447 __u8 flags;
107448 __u8 nud_state;
107449 __u8 type;
107450 @@ -163,7 +163,7 @@ struct neigh_ops {
107451 void (*error_report)(struct neighbour *, struct sk_buff *);
107452 int (*output)(struct neighbour *, struct sk_buff *);
107453 int (*connected_output)(struct neighbour *, struct sk_buff *);
107454 -};
107455 +} __do_const;
107456
107457 struct pneigh_entry {
107458 struct pneigh_entry *next;
107459 @@ -217,7 +217,7 @@ struct neigh_table {
107460 struct neigh_statistics __percpu *stats;
107461 struct neigh_hash_table __rcu *nht;
107462 struct pneigh_entry **phash_buckets;
107463 -};
107464 +} __randomize_layout;
107465
107466 enum {
107467 NEIGH_ARP_TABLE = 0,
107468 diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h
107469 index 2dcea63..31d53ba 100644
107470 --- a/include/net/net_namespace.h
107471 +++ b/include/net/net_namespace.h
107472 @@ -53,7 +53,7 @@ struct net {
107473 */
107474 spinlock_t rules_mod_lock;
107475
107476 - atomic64_t cookie_gen;
107477 + atomic64_unchecked_t cookie_gen;
107478
107479 struct list_head list; /* list of network namespaces */
107480 struct list_head cleanup_list; /* namespaces on death row */
107481 @@ -138,8 +138,8 @@ struct net {
107482 struct netns_mpls mpls;
107483 #endif
107484 struct sock *diag_nlsk;
107485 - atomic_t fnhe_genid;
107486 -};
107487 + atomic_unchecked_t fnhe_genid;
107488 +} __randomize_layout;
107489
107490 #include <linux/seq_file_net.h>
107491
107492 @@ -274,7 +274,11 @@ static inline struct net *read_pnet(const possible_net_t *pnet)
107493 #define __net_init __init
107494 #define __net_exit __exit_refok
107495 #define __net_initdata __initdata
107496 +#ifdef CONSTIFY_PLUGIN
107497 #define __net_initconst __initconst
107498 +#else
107499 +#define __net_initconst __initdata
107500 +#endif
107501 #endif
107502
107503 int peernet2id_alloc(struct net *net, struct net *peer);
107504 @@ -289,7 +293,7 @@ struct pernet_operations {
107505 void (*exit_batch)(struct list_head *net_exit_list);
107506 int *id;
107507 size_t size;
107508 -};
107509 +} __do_const;
107510
107511 /*
107512 * Use these carefully. If you implement a network device and it
107513 @@ -337,12 +341,12 @@ static inline void unregister_net_sysctl_table(struct ctl_table_header *header)
107514
107515 static inline int rt_genid_ipv4(struct net *net)
107516 {
107517 - return atomic_read(&net->ipv4.rt_genid);
107518 + return atomic_read_unchecked(&net->ipv4.rt_genid);
107519 }
107520
107521 static inline void rt_genid_bump_ipv4(struct net *net)
107522 {
107523 - atomic_inc(&net->ipv4.rt_genid);
107524 + atomic_inc_unchecked(&net->ipv4.rt_genid);
107525 }
107526
107527 extern void (*__fib6_flush_trees)(struct net *net);
107528 @@ -369,12 +373,12 @@ static inline void rt_genid_bump_all(struct net *net)
107529
107530 static inline int fnhe_genid(struct net *net)
107531 {
107532 - return atomic_read(&net->fnhe_genid);
107533 + return atomic_read_unchecked(&net->fnhe_genid);
107534 }
107535
107536 static inline void fnhe_genid_bump(struct net *net)
107537 {
107538 - atomic_inc(&net->fnhe_genid);
107539 + atomic_inc_unchecked(&net->fnhe_genid);
107540 }
107541
107542 #endif /* __NET_NET_NAMESPACE_H */
107543 diff --git a/include/net/netfilter/nf_conntrack_core.h b/include/net/netfilter/nf_conntrack_core.h
107544 index 788ef58..62e17d1 100644
107545 --- a/include/net/netfilter/nf_conntrack_core.h
107546 +++ b/include/net/netfilter/nf_conntrack_core.h
107547 @@ -79,12 +79,10 @@ print_tuple(struct seq_file *s, const struct nf_conntrack_tuple *tuple,
107548 const struct nf_conntrack_l3proto *l3proto,
107549 const struct nf_conntrack_l4proto *proto);
107550
107551 -#ifdef CONFIG_LOCKDEP
107552 -# define CONNTRACK_LOCKS 8
107553 -#else
107554 -# define CONNTRACK_LOCKS 1024
107555 -#endif
107556 +#define CONNTRACK_LOCKS 1024
107557 +
107558 extern spinlock_t nf_conntrack_locks[CONNTRACK_LOCKS];
107559 +void nf_conntrack_lock(spinlock_t *lock);
107560
107561 extern spinlock_t nf_conntrack_expect_lock;
107562
107563 diff --git a/include/net/netlink.h b/include/net/netlink.h
107564 index 0e31727..2f2b511 100644
107565 --- a/include/net/netlink.h
107566 +++ b/include/net/netlink.h
107567 @@ -521,7 +521,7 @@ static inline void nlmsg_trim(struct sk_buff *skb, const void *mark)
107568 {
107569 if (mark) {
107570 WARN_ON((unsigned char *) mark < skb->data);
107571 - skb_trim(skb, (unsigned char *) mark - skb->data);
107572 + skb_trim(skb, (const unsigned char *) mark - skb->data);
107573 }
107574 }
107575
107576 diff --git a/include/net/netns/conntrack.h b/include/net/netns/conntrack.h
107577 index 723b61c..4386367 100644
107578 --- a/include/net/netns/conntrack.h
107579 +++ b/include/net/netns/conntrack.h
107580 @@ -14,10 +14,10 @@ struct nf_conntrack_ecache;
107581 struct nf_proto_net {
107582 #ifdef CONFIG_SYSCTL
107583 struct ctl_table_header *ctl_table_header;
107584 - struct ctl_table *ctl_table;
107585 + ctl_table_no_const *ctl_table;
107586 #ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT
107587 struct ctl_table_header *ctl_compat_header;
107588 - struct ctl_table *ctl_compat_table;
107589 + ctl_table_no_const *ctl_compat_table;
107590 #endif
107591 #endif
107592 unsigned int users;
107593 @@ -60,7 +60,7 @@ struct nf_ip_net {
107594 struct nf_icmp_net icmpv6;
107595 #if defined(CONFIG_SYSCTL) && defined(CONFIG_NF_CONNTRACK_PROC_COMPAT)
107596 struct ctl_table_header *ctl_table_header;
107597 - struct ctl_table *ctl_table;
107598 + ctl_table_no_const *ctl_table;
107599 #endif
107600 };
107601
107602 diff --git a/include/net/netns/ipv4.h b/include/net/netns/ipv4.h
107603 index c68926b..106c147 100644
107604 --- a/include/net/netns/ipv4.h
107605 +++ b/include/net/netns/ipv4.h
107606 @@ -93,7 +93,7 @@ struct netns_ipv4 {
107607
107608 struct ping_group_range ping_group_range;
107609
107610 - atomic_t dev_addr_genid;
107611 + atomic_unchecked_t dev_addr_genid;
107612
107613 #ifdef CONFIG_SYSCTL
107614 unsigned long *sysctl_local_reserved_ports;
107615 @@ -107,6 +107,6 @@ struct netns_ipv4 {
107616 struct fib_rules_ops *mr_rules_ops;
107617 #endif
107618 #endif
107619 - atomic_t rt_genid;
107620 + atomic_unchecked_t rt_genid;
107621 };
107622 #endif
107623 diff --git a/include/net/netns/ipv6.h b/include/net/netns/ipv6.h
107624 index c0368db..95ad90f 100644
107625 --- a/include/net/netns/ipv6.h
107626 +++ b/include/net/netns/ipv6.h
107627 @@ -80,8 +80,8 @@ struct netns_ipv6 {
107628 struct fib_rules_ops *mr6_rules_ops;
107629 #endif
107630 #endif
107631 - atomic_t dev_addr_genid;
107632 - atomic_t fib6_sernum;
107633 + atomic_unchecked_t dev_addr_genid;
107634 + atomic_unchecked_t fib6_sernum;
107635 };
107636
107637 #if IS_ENABLED(CONFIG_NF_DEFRAG_IPV6)
107638 diff --git a/include/net/netns/xfrm.h b/include/net/netns/xfrm.h
107639 index 730d82a..045f2c4 100644
107640 --- a/include/net/netns/xfrm.h
107641 +++ b/include/net/netns/xfrm.h
107642 @@ -78,7 +78,7 @@ struct netns_xfrm {
107643
107644 /* flow cache part */
107645 struct flow_cache flow_cache_global;
107646 - atomic_t flow_cache_genid;
107647 + atomic_unchecked_t flow_cache_genid;
107648 struct list_head flow_cache_gc_list;
107649 spinlock_t flow_cache_gc_lock;
107650 struct work_struct flow_cache_gc_work;
107651 diff --git a/include/net/ping.h b/include/net/ping.h
107652 index ac80cb4..ec1ed09 100644
107653 --- a/include/net/ping.h
107654 +++ b/include/net/ping.h
107655 @@ -54,7 +54,7 @@ struct ping_iter_state {
107656
107657 extern struct proto ping_prot;
107658 #if IS_ENABLED(CONFIG_IPV6)
107659 -extern struct pingv6_ops pingv6_ops;
107660 +extern struct pingv6_ops *pingv6_ops;
107661 #endif
107662
107663 struct pingfakehdr {
107664 diff --git a/include/net/protocol.h b/include/net/protocol.h
107665 index d6fcc1f..ca277058 100644
107666 --- a/include/net/protocol.h
107667 +++ b/include/net/protocol.h
107668 @@ -49,7 +49,7 @@ struct net_protocol {
107669 * socket lookup?
107670 */
107671 icmp_strict_tag_validation:1;
107672 -};
107673 +} __do_const;
107674
107675 #if IS_ENABLED(CONFIG_IPV6)
107676 struct inet6_protocol {
107677 @@ -62,7 +62,7 @@ struct inet6_protocol {
107678 u8 type, u8 code, int offset,
107679 __be32 info);
107680 unsigned int flags; /* INET6_PROTO_xxx */
107681 -};
107682 +} __do_const;
107683
107684 #define INET6_PROTO_NOPOLICY 0x1
107685 #define INET6_PROTO_FINAL 0x2
107686 diff --git a/include/net/rtnetlink.h b/include/net/rtnetlink.h
107687 index 2f87c1b..5a03287 100644
107688 --- a/include/net/rtnetlink.h
107689 +++ b/include/net/rtnetlink.h
107690 @@ -95,7 +95,7 @@ struct rtnl_link_ops {
107691 const struct net_device *dev,
107692 const struct net_device *slave_dev);
107693 struct net *(*get_link_net)(const struct net_device *dev);
107694 -};
107695 +} __do_const;
107696
107697 int __rtnl_link_register(struct rtnl_link_ops *ops);
107698 void __rtnl_link_unregister(struct rtnl_link_ops *ops);
107699 diff --git a/include/net/sctp/checksum.h b/include/net/sctp/checksum.h
107700 index 4a5b9a3..ca27d73 100644
107701 --- a/include/net/sctp/checksum.h
107702 +++ b/include/net/sctp/checksum.h
107703 @@ -61,8 +61,8 @@ static inline __le32 sctp_compute_cksum(const struct sk_buff *skb,
107704 unsigned int offset)
107705 {
107706 struct sctphdr *sh = sctp_hdr(skb);
107707 - __le32 ret, old = sh->checksum;
107708 - const struct skb_checksum_ops ops = {
107709 + __le32 ret, old = sh->checksum;
107710 + static const struct skb_checksum_ops ops = {
107711 .update = sctp_csum_update,
107712 .combine = sctp_csum_combine,
107713 };
107714 diff --git a/include/net/sctp/sm.h b/include/net/sctp/sm.h
107715 index 487ef34..d457f98 100644
107716 --- a/include/net/sctp/sm.h
107717 +++ b/include/net/sctp/sm.h
107718 @@ -80,7 +80,7 @@ typedef void (sctp_timer_event_t) (unsigned long);
107719 typedef struct {
107720 sctp_state_fn_t *fn;
107721 const char *name;
107722 -} sctp_sm_table_entry_t;
107723 +} __do_const sctp_sm_table_entry_t;
107724
107725 /* A naming convention of "sctp_sf_xxx" applies to all the state functions
107726 * currently in use.
107727 @@ -292,7 +292,7 @@ __u32 sctp_generate_tag(const struct sctp_endpoint *);
107728 __u32 sctp_generate_tsn(const struct sctp_endpoint *);
107729
107730 /* Extern declarations for major data structures. */
107731 -extern sctp_timer_event_t *sctp_timer_events[SCTP_NUM_TIMEOUT_TYPES];
107732 +extern sctp_timer_event_t * const sctp_timer_events[SCTP_NUM_TIMEOUT_TYPES];
107733
107734
107735 /* Get the size of a DATA chunk payload. */
107736 diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h
107737 index eea9bde..909b45c 100644
107738 --- a/include/net/sctp/structs.h
107739 +++ b/include/net/sctp/structs.h
107740 @@ -513,7 +513,7 @@ struct sctp_pf {
107741 void (*to_sk_saddr)(union sctp_addr *, struct sock *sk);
107742 void (*to_sk_daddr)(union sctp_addr *, struct sock *sk);
107743 struct sctp_af *af;
107744 -};
107745 +} __do_const;
107746
107747
107748 /* Structure to track chunk fragments that have been acked, but peer
107749 diff --git a/include/net/snmp.h b/include/net/snmp.h
107750 index 35512ac..edbd85b 100644
107751 --- a/include/net/snmp.h
107752 +++ b/include/net/snmp.h
107753 @@ -67,7 +67,7 @@ struct icmp_mib {
107754
107755 #define ICMPMSG_MIB_MAX __ICMPMSG_MIB_MAX
107756 struct icmpmsg_mib {
107757 - atomic_long_t mibs[ICMPMSG_MIB_MAX];
107758 + atomic_long_unchecked_t mibs[ICMPMSG_MIB_MAX];
107759 };
107760
107761 /* ICMP6 (IPv6-ICMP) */
107762 @@ -78,17 +78,17 @@ struct icmpv6_mib {
107763 };
107764 /* per device counters, (shared on all cpus) */
107765 struct icmpv6_mib_device {
107766 - atomic_long_t mibs[ICMP6_MIB_MAX];
107767 + atomic_long_unchecked_t mibs[ICMP6_MIB_MAX];
107768 };
107769
107770 #define ICMP6MSG_MIB_MAX __ICMP6MSG_MIB_MAX
107771 /* per network ns counters */
107772 struct icmpv6msg_mib {
107773 - atomic_long_t mibs[ICMP6MSG_MIB_MAX];
107774 + atomic_long_unchecked_t mibs[ICMP6MSG_MIB_MAX];
107775 };
107776 /* per device counters, (shared on all cpus) */
107777 struct icmpv6msg_mib_device {
107778 - atomic_long_t mibs[ICMP6MSG_MIB_MAX];
107779 + atomic_long_unchecked_t mibs[ICMP6MSG_MIB_MAX];
107780 };
107781
107782
107783 @@ -130,7 +130,7 @@ struct linux_xfrm_mib {
107784 this_cpu_inc(mib->mibs[field])
107785
107786 #define SNMP_INC_STATS_ATOMIC_LONG(mib, field) \
107787 - atomic_long_inc(&mib->mibs[field])
107788 + atomic_long_inc_unchecked(&mib->mibs[field])
107789
107790 #define SNMP_INC_STATS(mib, field) \
107791 this_cpu_inc(mib->mibs[field])
107792 diff --git a/include/net/sock.h b/include/net/sock.h
107793 index 14d3c07..c273ad8 100644
107794 --- a/include/net/sock.h
107795 +++ b/include/net/sock.h
107796 @@ -202,7 +202,7 @@ struct sock_common {
107797 struct in6_addr skc_v6_rcv_saddr;
107798 #endif
107799
107800 - atomic64_t skc_cookie;
107801 + atomic64_unchecked_t skc_cookie;
107802
107803 /* following fields are padding to force
107804 * offset(struct sock, sk_refcnt) == 128 on 64bit arches
107805 @@ -379,7 +379,7 @@ struct sock {
107806 unsigned int sk_napi_id;
107807 unsigned int sk_ll_usec;
107808 #endif
107809 - atomic_t sk_drops;
107810 + atomic_unchecked_t sk_drops;
107811 int sk_rcvbuf;
107812
107813 struct sk_filter __rcu *sk_filter;
107814 @@ -1067,7 +1067,7 @@ struct proto {
107815 void (*destroy_cgroup)(struct mem_cgroup *memcg);
107816 struct cg_proto *(*proto_cgroup)(struct mem_cgroup *memcg);
107817 #endif
107818 -};
107819 +} __randomize_layout;
107820
107821 int proto_register(struct proto *prot, int alloc_slab);
107822 void proto_unregister(struct proto *prot);
107823 @@ -1207,7 +1207,7 @@ static inline void memcg_memory_allocated_sub(struct cg_proto *prot,
107824 page_counter_uncharge(&prot->memory_allocated, amt);
107825 }
107826
107827 -static inline long
107828 +static inline long __intentional_overflow(-1)
107829 sk_memory_allocated(const struct sock *sk)
107830 {
107831 struct proto *prot = sk->sk_prot;
107832 @@ -1799,7 +1799,7 @@ static inline void sk_nocaps_add(struct sock *sk, netdev_features_t flags)
107833 }
107834
107835 static inline int skb_do_copy_data_nocache(struct sock *sk, struct sk_buff *skb,
107836 - struct iov_iter *from, char *to,
107837 + struct iov_iter *from, unsigned char *to,
107838 int copy, int offset)
107839 {
107840 if (skb->ip_summed == CHECKSUM_NONE) {
107841 @@ -2050,7 +2050,7 @@ static inline void sk_stream_moderate_sndbuf(struct sock *sk)
107842 }
107843 }
107844
107845 -struct sk_buff *sk_stream_alloc_skb(struct sock *sk, int size, gfp_t gfp,
107846 +struct sk_buff * __intentional_overflow(0) sk_stream_alloc_skb(struct sock *sk, int size, gfp_t gfp,
107847 bool force_schedule);
107848
107849 /**
107850 @@ -2126,7 +2126,7 @@ struct sock_skb_cb {
107851 static inline void
107852 sock_skb_set_dropcount(const struct sock *sk, struct sk_buff *skb)
107853 {
107854 - SOCK_SKB_CB(skb)->dropcount = atomic_read(&sk->sk_drops);
107855 + SOCK_SKB_CB(skb)->dropcount = atomic_read_unchecked(&sk->sk_drops);
107856 }
107857
107858 void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk,
107859 diff --git a/include/net/tcp.h b/include/net/tcp.h
107860 index 414d822..f99ea64 100644
107861 --- a/include/net/tcp.h
107862 +++ b/include/net/tcp.h
107863 @@ -550,7 +550,7 @@ void tcp_retransmit_timer(struct sock *sk);
107864 void tcp_xmit_retransmit_queue(struct sock *);
107865 void tcp_simple_retransmit(struct sock *);
107866 int tcp_trim_head(struct sock *, struct sk_buff *, u32);
107867 -int tcp_fragment(struct sock *, struct sk_buff *, u32, unsigned int, gfp_t);
107868 +int tcp_fragment(struct sock *, struct sk_buff *, u32, unsigned int, gfp_t) __intentional_overflow(3);
107869
107870 void tcp_send_probe0(struct sock *);
107871 void tcp_send_partial(struct sock *);
107872 @@ -736,8 +736,8 @@ static inline u32 tcp_skb_timestamp(const struct sk_buff *skb)
107873 * If this grows please adjust skbuff.h:skbuff->cb[xxx] size appropriately.
107874 */
107875 struct tcp_skb_cb {
107876 - __u32 seq; /* Starting sequence number */
107877 - __u32 end_seq; /* SEQ + FIN + SYN + datalen */
107878 + __u32 seq __intentional_overflow(-1); /* Starting sequence number */
107879 + __u32 end_seq __intentional_overflow(-1); /* SEQ + FIN + SYN + datalen */
107880 union {
107881 /* Note : tcp_tw_isn is used in input path only
107882 * (isn chosen by tcp_timewait_state_process())
107883 @@ -765,7 +765,7 @@ struct tcp_skb_cb {
107884
107885 __u8 ip_dsfield; /* IPv4 tos or IPv6 dsfield */
107886 /* 1 byte hole */
107887 - __u32 ack_seq; /* Sequence number ACK'd */
107888 + __u32 ack_seq __intentional_overflow(-1); /* Sequence number ACK'd */
107889 union {
107890 struct inet_skb_parm h4;
107891 #if IS_ENABLED(CONFIG_IPV6)
107892 diff --git a/include/net/xfrm.h b/include/net/xfrm.h
107893 index d6f6e50..6fea29e 100644
107894 --- a/include/net/xfrm.h
107895 +++ b/include/net/xfrm.h
107896 @@ -284,7 +284,6 @@ struct xfrm_dst;
107897 struct xfrm_policy_afinfo {
107898 unsigned short family;
107899 struct dst_ops *dst_ops;
107900 - void (*garbage_collect)(struct net *net);
107901 struct dst_entry *(*dst_lookup)(struct net *net,
107902 int tos, int oif,
107903 const xfrm_address_t *saddr,
107904 @@ -303,7 +302,7 @@ struct xfrm_policy_afinfo {
107905 struct net_device *dev,
107906 const struct flowi *fl);
107907 struct dst_entry *(*blackhole_route)(struct net *net, struct dst_entry *orig);
107908 -};
107909 +} __do_const;
107910
107911 int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo);
107912 int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo);
107913 @@ -342,7 +341,7 @@ struct xfrm_state_afinfo {
107914 int (*transport_finish)(struct sk_buff *skb,
107915 int async);
107916 void (*local_error)(struct sk_buff *skb, u32 mtu);
107917 -};
107918 +} __do_const;
107919
107920 int xfrm_state_register_afinfo(struct xfrm_state_afinfo *afinfo);
107921 int xfrm_state_unregister_afinfo(struct xfrm_state_afinfo *afinfo);
107922 @@ -437,7 +436,7 @@ struct xfrm_mode {
107923 struct module *owner;
107924 unsigned int encap;
107925 int flags;
107926 -};
107927 +} __do_const;
107928
107929 /* Flags for xfrm_mode. */
107930 enum {
107931 @@ -532,7 +531,7 @@ struct xfrm_policy {
107932 struct timer_list timer;
107933
107934 struct flow_cache_object flo;
107935 - atomic_t genid;
107936 + atomic_unchecked_t genid;
107937 u32 priority;
107938 u32 index;
107939 struct xfrm_mark mark;
107940 @@ -603,7 +602,7 @@ struct xfrm_mgr {
107941 int num_bundles,
107942 const struct xfrm_kmaddress *k);
107943 bool (*is_alive)(const struct km_event *c);
107944 -};
107945 +} __do_const;
107946
107947 int xfrm_register_km(struct xfrm_mgr *km);
107948 int xfrm_unregister_km(struct xfrm_mgr *km);
107949 @@ -1172,6 +1171,7 @@ static inline void xfrm_sk_free_policy(struct sock *sk)
107950 }
107951
107952 void xfrm_garbage_collect(struct net *net);
107953 +void xfrm_garbage_collect_deferred(struct net *net);
107954
107955 #else
107956
107957 @@ -1210,6 +1210,9 @@ static inline int xfrm6_policy_check_reverse(struct sock *sk, int dir,
107958 static inline void xfrm_garbage_collect(struct net *net)
107959 {
107960 }
107961 +static inline void xfrm_garbage_collect_deferred(struct net *net)
107962 +{
107963 +}
107964 #endif
107965
107966 static __inline__
107967 diff --git a/include/rdma/iw_cm.h b/include/rdma/iw_cm.h
107968 index 036bd27..c0d7f17 100644
107969 --- a/include/rdma/iw_cm.h
107970 +++ b/include/rdma/iw_cm.h
107971 @@ -123,7 +123,7 @@ struct iw_cm_verbs {
107972 int backlog);
107973
107974 int (*destroy_listen)(struct iw_cm_id *cm_id);
107975 -};
107976 +} __no_const;
107977
107978 /**
107979 * iw_create_cm_id - Create an IW CM identifier.
107980 diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h
107981 index 93d14da..734b3d8 100644
107982 --- a/include/scsi/libfc.h
107983 +++ b/include/scsi/libfc.h
107984 @@ -771,6 +771,7 @@ struct libfc_function_template {
107985 */
107986 void (*disc_stop_final) (struct fc_lport *);
107987 };
107988 +typedef struct libfc_function_template __no_const libfc_function_template_no_const;
107989
107990 /**
107991 * struct fc_disc - Discovery context
107992 @@ -875,7 +876,7 @@ struct fc_lport {
107993 struct fc_vport *vport;
107994
107995 /* Operational Information */
107996 - struct libfc_function_template tt;
107997 + libfc_function_template_no_const tt;
107998 u8 link_up;
107999 u8 qfull;
108000 enum fc_lport_state state;
108001 diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h
108002 index fe89d7c..cf05af3 100644
108003 --- a/include/scsi/scsi_device.h
108004 +++ b/include/scsi/scsi_device.h
108005 @@ -186,9 +186,9 @@ struct scsi_device {
108006 unsigned int max_device_blocked; /* what device_blocked counts down from */
108007 #define SCSI_DEFAULT_DEVICE_BLOCKED 3
108008
108009 - atomic_t iorequest_cnt;
108010 - atomic_t iodone_cnt;
108011 - atomic_t ioerr_cnt;
108012 + atomic_unchecked_t iorequest_cnt;
108013 + atomic_unchecked_t iodone_cnt;
108014 + atomic_unchecked_t ioerr_cnt;
108015
108016 struct device sdev_gendev,
108017 sdev_dev;
108018 diff --git a/include/scsi/scsi_driver.h b/include/scsi/scsi_driver.h
108019 index 891a658..fcd68df 100644
108020 --- a/include/scsi/scsi_driver.h
108021 +++ b/include/scsi/scsi_driver.h
108022 @@ -14,7 +14,7 @@ struct scsi_driver {
108023 void (*rescan)(struct device *);
108024 int (*init_command)(struct scsi_cmnd *);
108025 void (*uninit_command)(struct scsi_cmnd *);
108026 - int (*done)(struct scsi_cmnd *);
108027 + unsigned int (*done)(struct scsi_cmnd *);
108028 int (*eh_action)(struct scsi_cmnd *, int);
108029 };
108030 #define to_scsi_driver(drv) \
108031 diff --git a/include/scsi/scsi_transport_fc.h b/include/scsi/scsi_transport_fc.h
108032 index 784bc2c..855a04c 100644
108033 --- a/include/scsi/scsi_transport_fc.h
108034 +++ b/include/scsi/scsi_transport_fc.h
108035 @@ -757,7 +757,8 @@ struct fc_function_template {
108036 unsigned long show_host_system_hostname:1;
108037
108038 unsigned long disable_target_scan:1;
108039 -};
108040 +} __do_const;
108041 +typedef struct fc_function_template __no_const fc_function_template_no_const;
108042
108043
108044 /**
108045 diff --git a/include/scsi/sg.h b/include/scsi/sg.h
108046 index 3afec70..b196b43 100644
108047 --- a/include/scsi/sg.h
108048 +++ b/include/scsi/sg.h
108049 @@ -52,7 +52,7 @@ typedef struct sg_io_hdr
108050 or scatter gather list */
108051 unsigned char __user *cmdp; /* [i], [*i] points to command to perform */
108052 void __user *sbp; /* [i], [*o] points to sense_buffer memory */
108053 - unsigned int timeout; /* [i] MAX_UINT->no timeout (unit: millisec) */
108054 + unsigned int timeout __intentional_overflow(-1); /* [i] MAX_UINT->no timeout (unit: millisec) */
108055 unsigned int flags; /* [i] 0 -> default, see SG_FLAG... */
108056 int pack_id; /* [i->o] unused internally (normally) */
108057 void __user * usr_ptr; /* [i->o] unused internally */
108058 diff --git a/include/sound/compress_driver.h b/include/sound/compress_driver.h
108059 index fa1d055..3647940 100644
108060 --- a/include/sound/compress_driver.h
108061 +++ b/include/sound/compress_driver.h
108062 @@ -130,7 +130,7 @@ struct snd_compr_ops {
108063 struct snd_compr_caps *caps);
108064 int (*get_codec_caps) (struct snd_compr_stream *stream,
108065 struct snd_compr_codec_caps *codec);
108066 -};
108067 +} __no_const;
108068
108069 /**
108070 * struct snd_compr: Compressed device
108071 diff --git a/include/sound/soc.h b/include/sound/soc.h
108072 index fb955e6..6ff0ea9 100644
108073 --- a/include/sound/soc.h
108074 +++ b/include/sound/soc.h
108075 @@ -905,7 +905,7 @@ struct snd_soc_codec_driver {
108076 enum snd_soc_dapm_type, int);
108077
108078 bool ignore_pmdown_time; /* Doesn't benefit from pmdown delay */
108079 -};
108080 +} __do_const;
108081
108082 /* SoC platform interface */
108083 struct snd_soc_platform_driver {
108084 @@ -932,7 +932,7 @@ struct snd_soc_platform_driver {
108085 const struct snd_compr_ops *compr_ops;
108086
108087 int (*bespoke_trigger)(struct snd_pcm_substream *, int);
108088 -};
108089 +} __do_const;
108090
108091 struct snd_soc_dai_link_component {
108092 const char *name;
108093 diff --git a/include/trace/events/fs.h b/include/trace/events/fs.h
108094 new file mode 100644
108095 index 0000000..fb634b7
108096 --- /dev/null
108097 +++ b/include/trace/events/fs.h
108098 @@ -0,0 +1,53 @@
108099 +#undef TRACE_SYSTEM
108100 +#define TRACE_SYSTEM fs
108101 +
108102 +#if !defined(_TRACE_FS_H) || defined(TRACE_HEADER_MULTI_READ)
108103 +#define _TRACE_FS_H
108104 +
108105 +#include <linux/fs.h>
108106 +#include <linux/tracepoint.h>
108107 +
108108 +TRACE_EVENT(do_sys_open,
108109 +
108110 + TP_PROTO(const char *filename, int flags, int mode),
108111 +
108112 + TP_ARGS(filename, flags, mode),
108113 +
108114 + TP_STRUCT__entry(
108115 + __string( filename, filename )
108116 + __field( int, flags )
108117 + __field( int, mode )
108118 + ),
108119 +
108120 + TP_fast_assign(
108121 + __assign_str(filename, filename);
108122 + __entry->flags = flags;
108123 + __entry->mode = mode;
108124 + ),
108125 +
108126 + TP_printk("\"%s\" %x %o",
108127 + __get_str(filename), __entry->flags, __entry->mode)
108128 +);
108129 +
108130 +TRACE_EVENT(open_exec,
108131 +
108132 + TP_PROTO(const char *filename),
108133 +
108134 + TP_ARGS(filename),
108135 +
108136 + TP_STRUCT__entry(
108137 + __string( filename, filename )
108138 + ),
108139 +
108140 + TP_fast_assign(
108141 + __assign_str(filename, filename);
108142 + ),
108143 +
108144 + TP_printk("\"%s\"",
108145 + __get_str(filename))
108146 +);
108147 +
108148 +#endif /* _TRACE_FS_H */
108149 +
108150 +/* This part must be outside protection */
108151 +#include <trace/define_trace.h>
108152 diff --git a/include/trace/events/irq.h b/include/trace/events/irq.h
108153 index ff8f6c0..6b6bae3 100644
108154 --- a/include/trace/events/irq.h
108155 +++ b/include/trace/events/irq.h
108156 @@ -51,7 +51,7 @@ SOFTIRQ_NAME_LIST
108157 */
108158 TRACE_EVENT(irq_handler_entry,
108159
108160 - TP_PROTO(int irq, struct irqaction *action),
108161 + TP_PROTO(int irq, const struct irqaction *action),
108162
108163 TP_ARGS(irq, action),
108164
108165 @@ -81,7 +81,7 @@ TRACE_EVENT(irq_handler_entry,
108166 */
108167 TRACE_EVENT(irq_handler_exit,
108168
108169 - TP_PROTO(int irq, struct irqaction *action, int ret),
108170 + TP_PROTO(int irq, const struct irqaction *action, int ret),
108171
108172 TP_ARGS(irq, action, ret),
108173
108174 diff --git a/include/uapi/linux/a.out.h b/include/uapi/linux/a.out.h
108175 index 7caf44c..23c6f27 100644
108176 --- a/include/uapi/linux/a.out.h
108177 +++ b/include/uapi/linux/a.out.h
108178 @@ -39,6 +39,14 @@ enum machine_type {
108179 M_MIPS2 = 152 /* MIPS R6000/R4000 binary */
108180 };
108181
108182 +/* Constants for the N_FLAGS field */
108183 +#define F_PAX_PAGEEXEC 1 /* Paging based non-executable pages */
108184 +#define F_PAX_EMUTRAMP 2 /* Emulate trampolines */
108185 +#define F_PAX_MPROTECT 4 /* Restrict mprotect() */
108186 +#define F_PAX_RANDMMAP 8 /* Randomize mmap() base */
108187 +/*#define F_PAX_RANDEXEC 16*/ /* Randomize ET_EXEC base */
108188 +#define F_PAX_SEGMEXEC 32 /* Segmentation based non-executable pages */
108189 +
108190 #if !defined (N_MAGIC)
108191 #define N_MAGIC(exec) ((exec).a_info & 0xffff)
108192 #endif
108193 diff --git a/include/uapi/linux/bcache.h b/include/uapi/linux/bcache.h
108194 index 22b6ad3..aeba37e 100644
108195 --- a/include/uapi/linux/bcache.h
108196 +++ b/include/uapi/linux/bcache.h
108197 @@ -5,6 +5,7 @@
108198 * Bcache on disk data structures
108199 */
108200
108201 +#include <linux/compiler.h>
108202 #include <asm/types.h>
108203
108204 #define BITMASK(name, type, field, offset, size) \
108205 @@ -20,8 +21,8 @@ static inline void SET_##name(type *k, __u64 v) \
108206 /* Btree keys - all units are in sectors */
108207
108208 struct bkey {
108209 - __u64 high;
108210 - __u64 low;
108211 + __u64 high __intentional_overflow(-1);
108212 + __u64 low __intentional_overflow(-1);
108213 __u64 ptr[];
108214 };
108215
108216 diff --git a/include/uapi/linux/byteorder/little_endian.h b/include/uapi/linux/byteorder/little_endian.h
108217 index d876736..ccce5c0 100644
108218 --- a/include/uapi/linux/byteorder/little_endian.h
108219 +++ b/include/uapi/linux/byteorder/little_endian.h
108220 @@ -42,51 +42,51 @@
108221
108222 static inline __le64 __cpu_to_le64p(const __u64 *p)
108223 {
108224 - return (__force __le64)*p;
108225 + return (__force const __le64)*p;
108226 }
108227 -static inline __u64 __le64_to_cpup(const __le64 *p)
108228 +static inline __u64 __intentional_overflow(-1) __le64_to_cpup(const __le64 *p)
108229 {
108230 - return (__force __u64)*p;
108231 + return (__force const __u64)*p;
108232 }
108233 static inline __le32 __cpu_to_le32p(const __u32 *p)
108234 {
108235 - return (__force __le32)*p;
108236 + return (__force const __le32)*p;
108237 }
108238 static inline __u32 __le32_to_cpup(const __le32 *p)
108239 {
108240 - return (__force __u32)*p;
108241 + return (__force const __u32)*p;
108242 }
108243 static inline __le16 __cpu_to_le16p(const __u16 *p)
108244 {
108245 - return (__force __le16)*p;
108246 + return (__force const __le16)*p;
108247 }
108248 static inline __u16 __le16_to_cpup(const __le16 *p)
108249 {
108250 - return (__force __u16)*p;
108251 + return (__force const __u16)*p;
108252 }
108253 static inline __be64 __cpu_to_be64p(const __u64 *p)
108254 {
108255 - return (__force __be64)__swab64p(p);
108256 + return (__force const __be64)__swab64p(p);
108257 }
108258 static inline __u64 __be64_to_cpup(const __be64 *p)
108259 {
108260 - return __swab64p((__u64 *)p);
108261 + return __swab64p((const __u64 *)p);
108262 }
108263 static inline __be32 __cpu_to_be32p(const __u32 *p)
108264 {
108265 - return (__force __be32)__swab32p(p);
108266 + return (__force const __be32)__swab32p(p);
108267 }
108268 -static inline __u32 __be32_to_cpup(const __be32 *p)
108269 +static inline __u32 __intentional_overflow(-1) __be32_to_cpup(const __be32 *p)
108270 {
108271 - return __swab32p((__u32 *)p);
108272 + return __swab32p((const __u32 *)p);
108273 }
108274 static inline __be16 __cpu_to_be16p(const __u16 *p)
108275 {
108276 - return (__force __be16)__swab16p(p);
108277 + return (__force const __be16)__swab16p(p);
108278 }
108279 static inline __u16 __be16_to_cpup(const __be16 *p)
108280 {
108281 - return __swab16p((__u16 *)p);
108282 + return __swab16p((const __u16 *)p);
108283 }
108284 #define __cpu_to_le64s(x) do { (void)(x); } while (0)
108285 #define __le64_to_cpus(x) do { (void)(x); } while (0)
108286 diff --git a/include/uapi/linux/connector.h b/include/uapi/linux/connector.h
108287 index 4cb2835..cfbc4e2 100644
108288 --- a/include/uapi/linux/connector.h
108289 +++ b/include/uapi/linux/connector.h
108290 @@ -69,7 +69,7 @@ struct cb_id {
108291 struct cn_msg {
108292 struct cb_id id;
108293
108294 - __u32 seq;
108295 + __u32 seq __intentional_overflow(-1);
108296 __u32 ack;
108297
108298 __u16 len; /* Length of the following data */
108299 diff --git a/include/uapi/linux/elf.h b/include/uapi/linux/elf.h
108300 index 71e1d0e..6cc9caf 100644
108301 --- a/include/uapi/linux/elf.h
108302 +++ b/include/uapi/linux/elf.h
108303 @@ -37,6 +37,17 @@ typedef __s64 Elf64_Sxword;
108304 #define PT_GNU_EH_FRAME 0x6474e550
108305
108306 #define PT_GNU_STACK (PT_LOOS + 0x474e551)
108307 +#define PT_GNU_RELRO (PT_LOOS + 0x474e552)
108308 +
108309 +#define PT_PAX_FLAGS (PT_LOOS + 0x5041580)
108310 +
108311 +/* Constants for the e_flags field */
108312 +#define EF_PAX_PAGEEXEC 1 /* Paging based non-executable pages */
108313 +#define EF_PAX_EMUTRAMP 2 /* Emulate trampolines */
108314 +#define EF_PAX_MPROTECT 4 /* Restrict mprotect() */
108315 +#define EF_PAX_RANDMMAP 8 /* Randomize mmap() base */
108316 +/*#define EF_PAX_RANDEXEC 16*/ /* Randomize ET_EXEC base */
108317 +#define EF_PAX_SEGMEXEC 32 /* Segmentation based non-executable pages */
108318
108319 /*
108320 * Extended Numbering
108321 @@ -94,6 +105,8 @@ typedef __s64 Elf64_Sxword;
108322 #define DT_DEBUG 21
108323 #define DT_TEXTREL 22
108324 #define DT_JMPREL 23
108325 +#define DT_FLAGS 30
108326 + #define DF_TEXTREL 0x00000004
108327 #define DT_ENCODING 32
108328 #define OLD_DT_LOOS 0x60000000
108329 #define DT_LOOS 0x6000000d
108330 @@ -240,6 +253,19 @@ typedef struct elf64_hdr {
108331 #define PF_W 0x2
108332 #define PF_X 0x1
108333
108334 +#define PF_PAGEEXEC (1U << 4) /* Enable PAGEEXEC */
108335 +#define PF_NOPAGEEXEC (1U << 5) /* Disable PAGEEXEC */
108336 +#define PF_SEGMEXEC (1U << 6) /* Enable SEGMEXEC */
108337 +#define PF_NOSEGMEXEC (1U << 7) /* Disable SEGMEXEC */
108338 +#define PF_MPROTECT (1U << 8) /* Enable MPROTECT */
108339 +#define PF_NOMPROTECT (1U << 9) /* Disable MPROTECT */
108340 +/*#define PF_RANDEXEC (1U << 10)*/ /* Enable RANDEXEC */
108341 +/*#define PF_NORANDEXEC (1U << 11)*/ /* Disable RANDEXEC */
108342 +#define PF_EMUTRAMP (1U << 12) /* Enable EMUTRAMP */
108343 +#define PF_NOEMUTRAMP (1U << 13) /* Disable EMUTRAMP */
108344 +#define PF_RANDMMAP (1U << 14) /* Enable RANDMMAP */
108345 +#define PF_NORANDMMAP (1U << 15) /* Disable RANDMMAP */
108346 +
108347 typedef struct elf32_phdr{
108348 Elf32_Word p_type;
108349 Elf32_Off p_offset;
108350 @@ -332,6 +358,8 @@ typedef struct elf64_shdr {
108351 #define EI_OSABI 7
108352 #define EI_PAD 8
108353
108354 +#define EI_PAX 14
108355 +
108356 #define ELFMAG0 0x7f /* EI_MAG */
108357 #define ELFMAG1 'E'
108358 #define ELFMAG2 'L'
108359 diff --git a/include/uapi/linux/personality.h b/include/uapi/linux/personality.h
108360 index aa169c4..6a2771d 100644
108361 --- a/include/uapi/linux/personality.h
108362 +++ b/include/uapi/linux/personality.h
108363 @@ -30,6 +30,7 @@ enum {
108364 #define PER_CLEAR_ON_SETID (READ_IMPLIES_EXEC | \
108365 ADDR_NO_RANDOMIZE | \
108366 ADDR_COMPAT_LAYOUT | \
108367 + ADDR_LIMIT_3GB | \
108368 MMAP_PAGE_ZERO)
108369
108370 /*
108371 diff --git a/include/uapi/linux/screen_info.h b/include/uapi/linux/screen_info.h
108372 index 8b8d39d..1ca6c07 100644
108373 --- a/include/uapi/linux/screen_info.h
108374 +++ b/include/uapi/linux/screen_info.h
108375 @@ -44,7 +44,7 @@ struct screen_info {
108376 __u16 vesa_attributes; /* 0x34 */
108377 __u32 capabilities; /* 0x36 */
108378 __u32 ext_lfb_base; /* 0x3a */
108379 - __u8 _reserved[2]; /* 0x3e */
108380 + __u16 vesapm_size; /* 0x3e */
108381 } __attribute__((packed));
108382
108383 #define VIDEO_TYPE_MDA 0x10 /* Monochrome Text Display */
108384 diff --git a/include/uapi/linux/swab.h b/include/uapi/linux/swab.h
108385 index 0e011eb..0020b3c 100644
108386 --- a/include/uapi/linux/swab.h
108387 +++ b/include/uapi/linux/swab.h
108388 @@ -43,7 +43,7 @@
108389 * ___swab16, ___swab32, ___swab64, ___swahw32, ___swahb32
108390 */
108391
108392 -static inline __attribute_const__ __u16 __fswab16(__u16 val)
108393 +static inline __intentional_overflow(0) __attribute_const__ __u16 __fswab16(__u16 val)
108394 {
108395 #ifdef __HAVE_BUILTIN_BSWAP16__
108396 return __builtin_bswap16(val);
108397 @@ -54,7 +54,7 @@ static inline __attribute_const__ __u16 __fswab16(__u16 val)
108398 #endif
108399 }
108400
108401 -static inline __attribute_const__ __u32 __fswab32(__u32 val)
108402 +static inline __intentional_overflow(0) __attribute_const__ __u32 __fswab32(__u32 val)
108403 {
108404 #ifdef __HAVE_BUILTIN_BSWAP32__
108405 return __builtin_bswap32(val);
108406 @@ -65,7 +65,7 @@ static inline __attribute_const__ __u32 __fswab32(__u32 val)
108407 #endif
108408 }
108409
108410 -static inline __attribute_const__ __u64 __fswab64(__u64 val)
108411 +static inline __intentional_overflow(0) __attribute_const__ __u64 __fswab64(__u64 val)
108412 {
108413 #ifdef __HAVE_BUILTIN_BSWAP64__
108414 return __builtin_bswap64(val);
108415 diff --git a/include/uapi/linux/xattr.h b/include/uapi/linux/xattr.h
108416 index 1590c49..5eab462 100644
108417 --- a/include/uapi/linux/xattr.h
108418 +++ b/include/uapi/linux/xattr.h
108419 @@ -73,5 +73,9 @@
108420 #define XATTR_POSIX_ACL_DEFAULT "posix_acl_default"
108421 #define XATTR_NAME_POSIX_ACL_DEFAULT XATTR_SYSTEM_PREFIX XATTR_POSIX_ACL_DEFAULT
108422
108423 +/* User namespace */
108424 +#define XATTR_PAX_PREFIX XATTR_USER_PREFIX "pax."
108425 +#define XATTR_PAX_FLAGS_SUFFIX "flags"
108426 +#define XATTR_NAME_PAX_FLAGS XATTR_PAX_PREFIX XATTR_PAX_FLAGS_SUFFIX
108427
108428 #endif /* _UAPI_LINUX_XATTR_H */
108429 diff --git a/include/video/udlfb.h b/include/video/udlfb.h
108430 index f9466fa..f4e2b81 100644
108431 --- a/include/video/udlfb.h
108432 +++ b/include/video/udlfb.h
108433 @@ -53,10 +53,10 @@ struct dlfb_data {
108434 u32 pseudo_palette[256];
108435 int blank_mode; /*one of FB_BLANK_ */
108436 /* blit-only rendering path metrics, exposed through sysfs */
108437 - atomic_t bytes_rendered; /* raw pixel-bytes driver asked to render */
108438 - atomic_t bytes_identical; /* saved effort with backbuffer comparison */
108439 - atomic_t bytes_sent; /* to usb, after compression including overhead */
108440 - atomic_t cpu_kcycles_used; /* transpired during pixel processing */
108441 + atomic_unchecked_t bytes_rendered; /* raw pixel-bytes driver asked to render */
108442 + atomic_unchecked_t bytes_identical; /* saved effort with backbuffer comparison */
108443 + atomic_unchecked_t bytes_sent; /* to usb, after compression including overhead */
108444 + atomic_unchecked_t cpu_kcycles_used; /* transpired during pixel processing */
108445 };
108446
108447 #define NR_USB_REQUEST_I2C_SUB_IO 0x02
108448 diff --git a/include/video/uvesafb.h b/include/video/uvesafb.h
108449 index 30f5362..8ed8ac9 100644
108450 --- a/include/video/uvesafb.h
108451 +++ b/include/video/uvesafb.h
108452 @@ -122,6 +122,7 @@ struct uvesafb_par {
108453 u8 ypan; /* 0 - nothing, 1 - ypan, 2 - ywrap */
108454 u8 pmi_setpal; /* PMI for palette changes */
108455 u16 *pmi_base; /* protected mode interface location */
108456 + u8 *pmi_code; /* protected mode code location */
108457 void *pmi_start;
108458 void *pmi_pal;
108459 u8 *vbe_state_orig; /*
108460 diff --git a/init/Kconfig b/init/Kconfig
108461 index 235c7a2..8dbf372 100644
108462 --- a/init/Kconfig
108463 +++ b/init/Kconfig
108464 @@ -285,7 +285,8 @@ config FHANDLE
108465
108466 config USELIB
108467 bool "uselib syscall"
108468 - default y
108469 + default n
108470 + depends on !GRKERNSEC
108471 help
108472 This option enables the uselib syscall, a system call used in the
108473 dynamic linker from libc5 and earlier. glibc does not use this
108474 @@ -633,6 +634,7 @@ config RCU_FAST_NO_HZ
108475 config TREE_RCU_TRACE
108476 def_bool RCU_TRACE && ( TREE_RCU || PREEMPT_RCU )
108477 select DEBUG_FS
108478 + depends on !GRKERNSEC_KMEM
108479 help
108480 This option provides tracing for the TREE_RCU and
108481 PREEMPT_RCU implementations, permitting Makefile to
108482 @@ -1156,6 +1158,7 @@ endif # CGROUPS
108483 config CHECKPOINT_RESTORE
108484 bool "Checkpoint/restore support" if EXPERT
108485 select PROC_CHILDREN
108486 + depends on !GRKERNSEC
108487 default n
108488 help
108489 Enables additional kernel features in a sake of checkpoint/restore.
108490 @@ -1701,7 +1704,7 @@ config SLUB_DEBUG
108491
108492 config COMPAT_BRK
108493 bool "Disable heap randomization"
108494 - default y
108495 + default n
108496 help
108497 Randomizing heap placement makes heap exploits harder, but it
108498 also breaks ancient binaries (including anything libc5 based).
108499 diff --git a/init/Makefile b/init/Makefile
108500 index 7bc47ee..6da2dc7 100644
108501 --- a/init/Makefile
108502 +++ b/init/Makefile
108503 @@ -2,6 +2,9 @@
108504 # Makefile for the linux kernel.
108505 #
108506
108507 +ccflags-y := $(GCC_PLUGINS_CFLAGS)
108508 +asflags-y := $(GCC_PLUGINS_AFLAGS)
108509 +
108510 obj-y := main.o version.o mounts.o
108511 ifneq ($(CONFIG_BLK_DEV_INITRD),y)
108512 obj-y += noinitramfs.o
108513 diff --git a/init/do_mounts.c b/init/do_mounts.c
108514 index dea5de9..bbdbb5f 100644
108515 --- a/init/do_mounts.c
108516 +++ b/init/do_mounts.c
108517 @@ -363,11 +363,11 @@ static void __init get_fs_names(char *page)
108518 static int __init do_mount_root(char *name, char *fs, int flags, void *data)
108519 {
108520 struct super_block *s;
108521 - int err = sys_mount(name, "/root", fs, flags, data);
108522 + int err = sys_mount((char __force_user *)name, (char __force_user *)"/root", (char __force_user *)fs, flags, (void __force_user *)data);
108523 if (err)
108524 return err;
108525
108526 - sys_chdir("/root");
108527 + sys_chdir((const char __force_user *)"/root");
108528 s = current->fs->pwd.dentry->d_sb;
108529 ROOT_DEV = s->s_dev;
108530 printk(KERN_INFO
108531 @@ -490,18 +490,18 @@ void __init change_floppy(char *fmt, ...)
108532 va_start(args, fmt);
108533 vsprintf(buf, fmt, args);
108534 va_end(args);
108535 - fd = sys_open("/dev/root", O_RDWR | O_NDELAY, 0);
108536 + fd = sys_open((char __user *)"/dev/root", O_RDWR | O_NDELAY, 0);
108537 if (fd >= 0) {
108538 sys_ioctl(fd, FDEJECT, 0);
108539 sys_close(fd);
108540 }
108541 printk(KERN_NOTICE "VFS: Insert %s and press ENTER\n", buf);
108542 - fd = sys_open("/dev/console", O_RDWR, 0);
108543 + fd = sys_open((__force const char __user *)"/dev/console", O_RDWR, 0);
108544 if (fd >= 0) {
108545 sys_ioctl(fd, TCGETS, (long)&termios);
108546 termios.c_lflag &= ~ICANON;
108547 sys_ioctl(fd, TCSETSF, (long)&termios);
108548 - sys_read(fd, &c, 1);
108549 + sys_read(fd, (char __user *)&c, 1);
108550 termios.c_lflag |= ICANON;
108551 sys_ioctl(fd, TCSETSF, (long)&termios);
108552 sys_close(fd);
108553 @@ -600,8 +600,8 @@ void __init prepare_namespace(void)
108554 mount_root();
108555 out:
108556 devtmpfs_mount("dev");
108557 - sys_mount(".", "/", NULL, MS_MOVE, NULL);
108558 - sys_chroot(".");
108559 + sys_mount((char __force_user *)".", (char __force_user *)"/", NULL, MS_MOVE, NULL);
108560 + sys_chroot((const char __force_user *)".");
108561 }
108562
108563 static bool is_tmpfs;
108564 diff --git a/init/do_mounts.h b/init/do_mounts.h
108565 index f5b978a..69dbfe8 100644
108566 --- a/init/do_mounts.h
108567 +++ b/init/do_mounts.h
108568 @@ -15,15 +15,15 @@ extern int root_mountflags;
108569
108570 static inline int create_dev(char *name, dev_t dev)
108571 {
108572 - sys_unlink(name);
108573 - return sys_mknod(name, S_IFBLK|0600, new_encode_dev(dev));
108574 + sys_unlink((char __force_user *)name);
108575 + return sys_mknod((char __force_user *)name, S_IFBLK|0600, new_encode_dev(dev));
108576 }
108577
108578 #if BITS_PER_LONG == 32
108579 static inline u32 bstat(char *name)
108580 {
108581 struct stat64 stat;
108582 - if (sys_stat64(name, &stat) != 0)
108583 + if (sys_stat64((char __force_user *)name, (struct stat64 __force_user *)&stat) != 0)
108584 return 0;
108585 if (!S_ISBLK(stat.st_mode))
108586 return 0;
108587 @@ -35,7 +35,7 @@ static inline u32 bstat(char *name)
108588 static inline u32 bstat(char *name)
108589 {
108590 struct stat stat;
108591 - if (sys_newstat(name, &stat) != 0)
108592 + if (sys_newstat((const char __force_user *)name, (struct stat __force_user *)&stat) != 0)
108593 return 0;
108594 if (!S_ISBLK(stat.st_mode))
108595 return 0;
108596 diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c
108597 index 3e0878e..8a9d7a0 100644
108598 --- a/init/do_mounts_initrd.c
108599 +++ b/init/do_mounts_initrd.c
108600 @@ -37,13 +37,13 @@ static int init_linuxrc(struct subprocess_info *info, struct cred *new)
108601 {
108602 sys_unshare(CLONE_FS | CLONE_FILES);
108603 /* stdin/stdout/stderr for /linuxrc */
108604 - sys_open("/dev/console", O_RDWR, 0);
108605 + sys_open((const char __force_user *)"/dev/console", O_RDWR, 0);
108606 sys_dup(0);
108607 sys_dup(0);
108608 /* move initrd over / and chdir/chroot in initrd root */
108609 - sys_chdir("/root");
108610 - sys_mount(".", "/", NULL, MS_MOVE, NULL);
108611 - sys_chroot(".");
108612 + sys_chdir((const char __force_user *)"/root");
108613 + sys_mount((char __force_user *)".", (char __force_user *)"/", NULL, MS_MOVE, NULL);
108614 + sys_chroot((const char __force_user *)".");
108615 sys_setsid();
108616 return 0;
108617 }
108618 @@ -59,8 +59,8 @@ static void __init handle_initrd(void)
108619 create_dev("/dev/root.old", Root_RAM0);
108620 /* mount initrd on rootfs' /root */
108621 mount_block_root("/dev/root.old", root_mountflags & ~MS_RDONLY);
108622 - sys_mkdir("/old", 0700);
108623 - sys_chdir("/old");
108624 + sys_mkdir((const char __force_user *)"/old", 0700);
108625 + sys_chdir((const char __force_user *)"/old");
108626
108627 /* try loading default modules from initrd */
108628 load_default_modules();
108629 @@ -80,31 +80,31 @@ static void __init handle_initrd(void)
108630 current->flags &= ~PF_FREEZER_SKIP;
108631
108632 /* move initrd to rootfs' /old */
108633 - sys_mount("..", ".", NULL, MS_MOVE, NULL);
108634 + sys_mount((char __force_user *)"..", (char __force_user *)".", NULL, MS_MOVE, NULL);
108635 /* switch root and cwd back to / of rootfs */
108636 - sys_chroot("..");
108637 + sys_chroot((const char __force_user *)"..");
108638
108639 if (new_decode_dev(real_root_dev) == Root_RAM0) {
108640 - sys_chdir("/old");
108641 + sys_chdir((const char __force_user *)"/old");
108642 return;
108643 }
108644
108645 - sys_chdir("/");
108646 + sys_chdir((const char __force_user *)"/");
108647 ROOT_DEV = new_decode_dev(real_root_dev);
108648 mount_root();
108649
108650 printk(KERN_NOTICE "Trying to move old root to /initrd ... ");
108651 - error = sys_mount("/old", "/root/initrd", NULL, MS_MOVE, NULL);
108652 + error = sys_mount((char __force_user *)"/old", (char __force_user *)"/root/initrd", NULL, MS_MOVE, NULL);
108653 if (!error)
108654 printk("okay\n");
108655 else {
108656 - int fd = sys_open("/dev/root.old", O_RDWR, 0);
108657 + int fd = sys_open((const char __force_user *)"/dev/root.old", O_RDWR, 0);
108658 if (error == -ENOENT)
108659 printk("/initrd does not exist. Ignored.\n");
108660 else
108661 printk("failed\n");
108662 printk(KERN_NOTICE "Unmounting old root\n");
108663 - sys_umount("/old", MNT_DETACH);
108664 + sys_umount((char __force_user *)"/old", MNT_DETACH);
108665 printk(KERN_NOTICE "Trying to free ramdisk memory ... ");
108666 if (fd < 0) {
108667 error = fd;
108668 @@ -127,11 +127,11 @@ int __init initrd_load(void)
108669 * mounted in the normal path.
108670 */
108671 if (rd_load_image("/initrd.image") && ROOT_DEV != Root_RAM0) {
108672 - sys_unlink("/initrd.image");
108673 + sys_unlink((const char __force_user *)"/initrd.image");
108674 handle_initrd();
108675 return 1;
108676 }
108677 }
108678 - sys_unlink("/initrd.image");
108679 + sys_unlink((const char __force_user *)"/initrd.image");
108680 return 0;
108681 }
108682 diff --git a/init/do_mounts_md.c b/init/do_mounts_md.c
108683 index 8cb6db5..d729f50 100644
108684 --- a/init/do_mounts_md.c
108685 +++ b/init/do_mounts_md.c
108686 @@ -180,7 +180,7 @@ static void __init md_setup_drive(void)
108687 partitioned ? "_d" : "", minor,
108688 md_setup_args[ent].device_names);
108689
108690 - fd = sys_open(name, 0, 0);
108691 + fd = sys_open((char __force_user *)name, 0, 0);
108692 if (fd < 0) {
108693 printk(KERN_ERR "md: open failed - cannot start "
108694 "array %s\n", name);
108695 @@ -243,7 +243,7 @@ static void __init md_setup_drive(void)
108696 * array without it
108697 */
108698 sys_close(fd);
108699 - fd = sys_open(name, 0, 0);
108700 + fd = sys_open((char __force_user *)name, 0, 0);
108701 sys_ioctl(fd, BLKRRPART, 0);
108702 }
108703 sys_close(fd);
108704 @@ -293,7 +293,7 @@ static void __init autodetect_raid(void)
108705
108706 wait_for_device_probe();
108707
108708 - fd = sys_open("/dev/md0", 0, 0);
108709 + fd = sys_open((const char __force_user *) "/dev/md0", 0, 0);
108710 if (fd >= 0) {
108711 sys_ioctl(fd, RAID_AUTORUN, raid_autopart);
108712 sys_close(fd);
108713 diff --git a/init/init_task.c b/init/init_task.c
108714 index ba0a7f36..2bcf1d5 100644
108715 --- a/init/init_task.c
108716 +++ b/init/init_task.c
108717 @@ -22,5 +22,9 @@ EXPORT_SYMBOL(init_task);
108718 * Initial thread structure. Alignment of this is handled by a special
108719 * linker map entry.
108720 */
108721 +#ifdef CONFIG_X86
108722 +union thread_union init_thread_union __init_task_data;
108723 +#else
108724 union thread_union init_thread_union __init_task_data =
108725 { INIT_THREAD_INFO(init_task) };
108726 +#endif
108727 diff --git a/init/initramfs.c b/init/initramfs.c
108728 index b32ad7d..05f6420 100644
108729 --- a/init/initramfs.c
108730 +++ b/init/initramfs.c
108731 @@ -25,7 +25,7 @@ static ssize_t __init xwrite(int fd, const char *p, size_t count)
108732
108733 /* sys_write only can write MAX_RW_COUNT aka 2G-4K bytes at most */
108734 while (count) {
108735 - ssize_t rv = sys_write(fd, p, count);
108736 + ssize_t rv = sys_write(fd, (char __force_user *)p, count);
108737
108738 if (rv < 0) {
108739 if (rv == -EINTR || rv == -EAGAIN)
108740 @@ -107,7 +107,7 @@ static void __init free_hash(void)
108741 }
108742 }
108743
108744 -static long __init do_utime(char *filename, time_t mtime)
108745 +static long __init do_utime(char __force_user *filename, time_t mtime)
108746 {
108747 struct timespec t[2];
108748
108749 @@ -142,7 +142,7 @@ static void __init dir_utime(void)
108750 struct dir_entry *de, *tmp;
108751 list_for_each_entry_safe(de, tmp, &dir_list, list) {
108752 list_del(&de->list);
108753 - do_utime(de->name, de->mtime);
108754 + do_utime((char __force_user *)de->name, de->mtime);
108755 kfree(de->name);
108756 kfree(de);
108757 }
108758 @@ -304,7 +304,7 @@ static int __init maybe_link(void)
108759 if (nlink >= 2) {
108760 char *old = find_link(major, minor, ino, mode, collected);
108761 if (old)
108762 - return (sys_link(old, collected) < 0) ? -1 : 1;
108763 + return (sys_link((char __force_user *)old, (char __force_user *)collected) < 0) ? -1 : 1;
108764 }
108765 return 0;
108766 }
108767 @@ -313,11 +313,11 @@ static void __init clean_path(char *path, umode_t fmode)
108768 {
108769 struct stat st;
108770
108771 - if (!sys_newlstat(path, &st) && (st.st_mode ^ fmode) & S_IFMT) {
108772 + if (!sys_newlstat((char __force_user *)path, (struct stat __force_user *)&st) && (st.st_mode ^ fmode) & S_IFMT) {
108773 if (S_ISDIR(st.st_mode))
108774 - sys_rmdir(path);
108775 + sys_rmdir((char __force_user *)path);
108776 else
108777 - sys_unlink(path);
108778 + sys_unlink((char __force_user *)path);
108779 }
108780 }
108781
108782 @@ -338,7 +338,7 @@ static int __init do_name(void)
108783 int openflags = O_WRONLY|O_CREAT;
108784 if (ml != 1)
108785 openflags |= O_TRUNC;
108786 - wfd = sys_open(collected, openflags, mode);
108787 + wfd = sys_open((char __force_user *)collected, openflags, mode);
108788
108789 if (wfd >= 0) {
108790 sys_fchown(wfd, uid, gid);
108791 @@ -350,17 +350,17 @@ static int __init do_name(void)
108792 }
108793 }
108794 } else if (S_ISDIR(mode)) {
108795 - sys_mkdir(collected, mode);
108796 - sys_chown(collected, uid, gid);
108797 - sys_chmod(collected, mode);
108798 + sys_mkdir((char __force_user *)collected, mode);
108799 + sys_chown((char __force_user *)collected, uid, gid);
108800 + sys_chmod((char __force_user *)collected, mode);
108801 dir_add(collected, mtime);
108802 } else if (S_ISBLK(mode) || S_ISCHR(mode) ||
108803 S_ISFIFO(mode) || S_ISSOCK(mode)) {
108804 if (maybe_link() == 0) {
108805 - sys_mknod(collected, mode, rdev);
108806 - sys_chown(collected, uid, gid);
108807 - sys_chmod(collected, mode);
108808 - do_utime(collected, mtime);
108809 + sys_mknod((char __force_user *)collected, mode, rdev);
108810 + sys_chown((char __force_user *)collected, uid, gid);
108811 + sys_chmod((char __force_user *)collected, mode);
108812 + do_utime((char __force_user *)collected, mtime);
108813 }
108814 }
108815 return 0;
108816 @@ -372,7 +372,7 @@ static int __init do_copy(void)
108817 if (xwrite(wfd, victim, body_len) != body_len)
108818 error("write error");
108819 sys_close(wfd);
108820 - do_utime(vcollected, mtime);
108821 + do_utime((char __force_user *)vcollected, mtime);
108822 kfree(vcollected);
108823 eat(body_len);
108824 state = SkipIt;
108825 @@ -390,9 +390,9 @@ static int __init do_symlink(void)
108826 {
108827 collected[N_ALIGN(name_len) + body_len] = '\0';
108828 clean_path(collected, 0);
108829 - sys_symlink(collected + N_ALIGN(name_len), collected);
108830 - sys_lchown(collected, uid, gid);
108831 - do_utime(collected, mtime);
108832 + sys_symlink((char __force_user *)collected + N_ALIGN(name_len), (char __force_user *)collected);
108833 + sys_lchown((char __force_user *)collected, uid, gid);
108834 + do_utime((char __force_user *)collected, mtime);
108835 state = SkipIt;
108836 next_state = Reset;
108837 return 0;
108838 diff --git a/init/main.c b/init/main.c
108839 index 9e64d70..2f40cd9 100644
108840 --- a/init/main.c
108841 +++ b/init/main.c
108842 @@ -97,6 +97,8 @@ extern void radix_tree_init(void);
108843 static inline void mark_rodata_ro(void) { }
108844 #endif
108845
108846 +extern void grsecurity_init(void);
108847 +
108848 /*
108849 * Debug helper: via this flag we know that we are in 'early bootup code'
108850 * where only the boot processor is running with IRQ disabled. This means
108851 @@ -158,6 +160,48 @@ static int __init set_reset_devices(char *str)
108852
108853 __setup("reset_devices", set_reset_devices);
108854
108855 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
108856 +kgid_t grsec_proc_gid = KGIDT_INIT(CONFIG_GRKERNSEC_PROC_GID);
108857 +static int __init setup_grsec_proc_gid(char *str)
108858 +{
108859 + grsec_proc_gid = KGIDT_INIT(simple_strtol(str, NULL, 0));
108860 + return 1;
108861 +}
108862 +__setup("grsec_proc_gid=", setup_grsec_proc_gid);
108863 +#endif
108864 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
108865 +int grsec_enable_sysfs_restrict = 1;
108866 +static int __init setup_grsec_sysfs_restrict(char *str)
108867 +{
108868 + if (!simple_strtol(str, NULL, 0))
108869 + grsec_enable_sysfs_restrict = 0;
108870 + return 1;
108871 +}
108872 +__setup("grsec_sysfs_restrict", setup_grsec_sysfs_restrict);
108873 +#endif
108874 +
108875 +#ifdef CONFIG_PAX_SOFTMODE
108876 +int pax_softmode;
108877 +
108878 +static int __init setup_pax_softmode(char *str)
108879 +{
108880 + get_option(&str, &pax_softmode);
108881 + return 1;
108882 +}
108883 +__setup("pax_softmode=", setup_pax_softmode);
108884 +#endif
108885 +
108886 +#ifdef CONFIG_PAX_SIZE_OVERFLOW
108887 +bool pax_size_overflow_report_only __read_only;
108888 +
108889 +static int __init setup_pax_size_overflow_report_only(char *str)
108890 +{
108891 + pax_size_overflow_report_only = true;
108892 + return 0;
108893 +}
108894 +early_param("pax_size_overflow_report_only", setup_pax_size_overflow_report_only);
108895 +#endif
108896 +
108897 static const char *argv_init[MAX_INIT_ARGS+2] = { "init", NULL, };
108898 const char *envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, };
108899 static const char *panic_later, *panic_param;
108900 @@ -731,7 +775,7 @@ static bool __init_or_module initcall_blacklisted(initcall_t fn)
108901 struct blacklist_entry *entry;
108902 char *fn_name;
108903
108904 - fn_name = kasprintf(GFP_KERNEL, "%pf", fn);
108905 + fn_name = kasprintf(GFP_KERNEL, "%pX", fn);
108906 if (!fn_name)
108907 return false;
108908
108909 @@ -783,7 +827,7 @@ int __init_or_module do_one_initcall(initcall_t fn)
108910 {
108911 int count = preempt_count();
108912 int ret;
108913 - char msgbuf[64];
108914 + const char *msg1 = "", *msg2 = "";
108915
108916 if (initcall_blacklisted(fn))
108917 return -EPERM;
108918 @@ -793,18 +837,17 @@ int __init_or_module do_one_initcall(initcall_t fn)
108919 else
108920 ret = fn();
108921
108922 - msgbuf[0] = 0;
108923 -
108924 if (preempt_count() != count) {
108925 - sprintf(msgbuf, "preemption imbalance ");
108926 + msg1 = " preemption imbalance";
108927 preempt_count_set(count);
108928 }
108929 if (irqs_disabled()) {
108930 - strlcat(msgbuf, "disabled interrupts ", sizeof(msgbuf));
108931 + msg2 = " disabled interrupts";
108932 local_irq_enable();
108933 }
108934 - WARN(msgbuf[0], "initcall %pF returned with %s\n", fn, msgbuf);
108935 + WARN(*msg1 || *msg2, "initcall %pF returned with%s%s\n", fn, msg1, msg2);
108936
108937 + add_latent_entropy();
108938 return ret;
108939 }
108940
108941 @@ -909,8 +952,8 @@ static int run_init_process(const char *init_filename)
108942 {
108943 argv_init[0] = init_filename;
108944 return do_execve(getname_kernel(init_filename),
108945 - (const char __user *const __user *)argv_init,
108946 - (const char __user *const __user *)envp_init);
108947 + (const char __user *const __force_user *)argv_init,
108948 + (const char __user *const __force_user *)envp_init);
108949 }
108950
108951 static int try_to_run_init_process(const char *init_filename)
108952 @@ -927,6 +970,10 @@ static int try_to_run_init_process(const char *init_filename)
108953 return ret;
108954 }
108955
108956 +#ifdef CONFIG_GRKERNSEC_CHROOT_INITRD
108957 +extern int gr_init_ran;
108958 +#endif
108959 +
108960 static noinline void __init kernel_init_freeable(void);
108961
108962 static int __ref kernel_init(void *unused)
108963 @@ -951,6 +998,11 @@ static int __ref kernel_init(void *unused)
108964 ramdisk_execute_command, ret);
108965 }
108966
108967 +#ifdef CONFIG_GRKERNSEC_CHROOT_INITRD
108968 + /* if no initrd was used, be extra sure we enforce chroot restrictions */
108969 + gr_init_ran = 1;
108970 +#endif
108971 +
108972 /*
108973 * We try each of these until one succeeds.
108974 *
108975 @@ -1008,7 +1060,7 @@ static noinline void __init kernel_init_freeable(void)
108976 do_basic_setup();
108977
108978 /* Open the /dev/console on the rootfs, this should never fail */
108979 - if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
108980 + if (sys_open((const char __force_user *) "/dev/console", O_RDWR, 0) < 0)
108981 pr_err("Warning: unable to open an initial console.\n");
108982
108983 (void) sys_dup(0);
108984 @@ -1021,11 +1073,13 @@ static noinline void __init kernel_init_freeable(void)
108985 if (!ramdisk_execute_command)
108986 ramdisk_execute_command = "/init";
108987
108988 - if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
108989 + if (sys_access((const char __force_user *) ramdisk_execute_command, 0) != 0) {
108990 ramdisk_execute_command = NULL;
108991 prepare_namespace();
108992 }
108993
108994 + grsecurity_init();
108995 +
108996 /*
108997 * Ok, we have completed the initial bootup, and
108998 * we're essentially up and running. Get rid of the
108999 diff --git a/ipc/compat.c b/ipc/compat.c
109000 index 9b3c85f..5266b0f 100644
109001 --- a/ipc/compat.c
109002 +++ b/ipc/compat.c
109003 @@ -396,7 +396,7 @@ COMPAT_SYSCALL_DEFINE6(ipc, u32, call, int, first, int, second,
109004 COMPAT_SHMLBA);
109005 if (err < 0)
109006 return err;
109007 - return put_user(raddr, (compat_ulong_t *)compat_ptr(third));
109008 + return put_user(raddr, (compat_ulong_t __user *)compat_ptr(third));
109009 }
109010 case SHMDT:
109011 return sys_shmdt(compat_ptr(ptr));
109012 @@ -747,7 +747,7 @@ COMPAT_SYSCALL_DEFINE3(shmctl, int, first, int, second, void __user *, uptr)
109013 }
109014
109015 COMPAT_SYSCALL_DEFINE4(semtimedop, int, semid, struct sembuf __user *, tsems,
109016 - unsigned, nsops,
109017 + compat_long_t, nsops,
109018 const struct compat_timespec __user *, timeout)
109019 {
109020 struct timespec __user *ts64;
109021 diff --git a/ipc/ipc_sysctl.c b/ipc/ipc_sysctl.c
109022 index 8ad93c2..54036e1 100644
109023 --- a/ipc/ipc_sysctl.c
109024 +++ b/ipc/ipc_sysctl.c
109025 @@ -30,7 +30,7 @@ static void *get_ipc(struct ctl_table *table)
109026 static int proc_ipc_dointvec(struct ctl_table *table, int write,
109027 void __user *buffer, size_t *lenp, loff_t *ppos)
109028 {
109029 - struct ctl_table ipc_table;
109030 + ctl_table_no_const ipc_table;
109031
109032 memcpy(&ipc_table, table, sizeof(ipc_table));
109033 ipc_table.data = get_ipc(table);
109034 @@ -41,7 +41,7 @@ static int proc_ipc_dointvec(struct ctl_table *table, int write,
109035 static int proc_ipc_dointvec_minmax(struct ctl_table *table, int write,
109036 void __user *buffer, size_t *lenp, loff_t *ppos)
109037 {
109038 - struct ctl_table ipc_table;
109039 + ctl_table_no_const ipc_table;
109040
109041 memcpy(&ipc_table, table, sizeof(ipc_table));
109042 ipc_table.data = get_ipc(table);
109043 @@ -65,7 +65,7 @@ static int proc_ipc_dointvec_minmax_orphans(struct ctl_table *table, int write,
109044 static int proc_ipc_doulongvec_minmax(struct ctl_table *table, int write,
109045 void __user *buffer, size_t *lenp, loff_t *ppos)
109046 {
109047 - struct ctl_table ipc_table;
109048 + ctl_table_no_const ipc_table;
109049 memcpy(&ipc_table, table, sizeof(ipc_table));
109050 ipc_table.data = get_ipc(table);
109051
109052 @@ -76,7 +76,7 @@ static int proc_ipc_doulongvec_minmax(struct ctl_table *table, int write,
109053 static int proc_ipc_auto_msgmni(struct ctl_table *table, int write,
109054 void __user *buffer, size_t *lenp, loff_t *ppos)
109055 {
109056 - struct ctl_table ipc_table;
109057 + ctl_table_no_const ipc_table;
109058 int dummy = 0;
109059
109060 memcpy(&ipc_table, table, sizeof(ipc_table));
109061 @@ -99,6 +99,8 @@ static int proc_ipc_auto_msgmni(struct ctl_table *table, int write,
109062 static int zero;
109063 static int one = 1;
109064 static int int_max = INT_MAX;
109065 +static unsigned long long_zero = 0;
109066 +static unsigned long long_max = LONG_MAX;
109067
109068 static struct ctl_table ipc_kern_table[] = {
109069 {
109070 @@ -107,6 +109,8 @@ static struct ctl_table ipc_kern_table[] = {
109071 .maxlen = sizeof(init_ipc_ns.shm_ctlmax),
109072 .mode = 0644,
109073 .proc_handler = proc_ipc_doulongvec_minmax,
109074 + .extra1 = &long_zero,
109075 + .extra2 = &long_max,
109076 },
109077 {
109078 .procname = "shmall",
109079 @@ -114,6 +118,8 @@ static struct ctl_table ipc_kern_table[] = {
109080 .maxlen = sizeof(init_ipc_ns.shm_ctlall),
109081 .mode = 0644,
109082 .proc_handler = proc_ipc_doulongvec_minmax,
109083 + .extra1 = &long_zero,
109084 + .extra2 = &long_max,
109085 },
109086 {
109087 .procname = "shmmni",
109088 diff --git a/ipc/mq_sysctl.c b/ipc/mq_sysctl.c
109089 index 68d4e95..1477ded 100644
109090 --- a/ipc/mq_sysctl.c
109091 +++ b/ipc/mq_sysctl.c
109092 @@ -25,7 +25,7 @@ static void *get_mq(struct ctl_table *table)
109093 static int proc_mq_dointvec(struct ctl_table *table, int write,
109094 void __user *buffer, size_t *lenp, loff_t *ppos)
109095 {
109096 - struct ctl_table mq_table;
109097 + ctl_table_no_const mq_table;
109098 memcpy(&mq_table, table, sizeof(mq_table));
109099 mq_table.data = get_mq(table);
109100
109101 @@ -35,7 +35,7 @@ static int proc_mq_dointvec(struct ctl_table *table, int write,
109102 static int proc_mq_dointvec_minmax(struct ctl_table *table, int write,
109103 void __user *buffer, size_t *lenp, loff_t *ppos)
109104 {
109105 - struct ctl_table mq_table;
109106 + ctl_table_no_const mq_table;
109107 memcpy(&mq_table, table, sizeof(mq_table));
109108 mq_table.data = get_mq(table);
109109
109110 diff --git a/ipc/mqueue.c b/ipc/mqueue.c
109111 index 161a180..be31d93 100644
109112 --- a/ipc/mqueue.c
109113 +++ b/ipc/mqueue.c
109114 @@ -274,6 +274,7 @@ static struct inode *mqueue_get_inode(struct super_block *sb,
109115 mq_bytes = mq_treesize + (info->attr.mq_maxmsg *
109116 info->attr.mq_msgsize);
109117
109118 + gr_learn_resource(current, RLIMIT_MSGQUEUE, u->mq_bytes + mq_bytes, 1);
109119 spin_lock(&mq_lock);
109120 if (u->mq_bytes + mq_bytes < u->mq_bytes ||
109121 u->mq_bytes + mq_bytes > rlimit(RLIMIT_MSGQUEUE)) {
109122 diff --git a/ipc/msg.c b/ipc/msg.c
109123 index 1471db9..dbdcf7f 100644
109124 --- a/ipc/msg.c
109125 +++ b/ipc/msg.c
109126 @@ -1041,7 +1041,8 @@ void msg_exit_ns(struct ipc_namespace *ns)
109127 static int sysvipc_msg_proc_show(struct seq_file *s, void *it)
109128 {
109129 struct user_namespace *user_ns = seq_user_ns(s);
109130 - struct msg_queue *msq = it;
109131 + struct kern_ipc_perm *perm = it;
109132 + struct msg_queue *msq = container_of(perm, struct msg_queue, q_perm);
109133
109134 seq_printf(s,
109135 "%10d %10d %4o %10lu %10lu %5u %5u %5u %5u %5u %5u %10lu %10lu %10lu\n",
109136 diff --git a/ipc/msgutil.c b/ipc/msgutil.c
109137 index ed81aaf..4bb6792 100644
109138 --- a/ipc/msgutil.c
109139 +++ b/ipc/msgutil.c
109140 @@ -55,7 +55,7 @@ static struct msg_msg *alloc_msg(size_t len)
109141 size_t alen;
109142
109143 alen = min(len, DATALEN_MSG);
109144 - msg = kmalloc(sizeof(*msg) + alen, GFP_KERNEL);
109145 + msg = kmalloc(sizeof(*msg) + alen, GFP_KERNEL|GFP_USERCOPY);
109146 if (msg == NULL)
109147 return NULL;
109148
109149 @@ -67,7 +67,7 @@ static struct msg_msg *alloc_msg(size_t len)
109150 while (len > 0) {
109151 struct msg_msgseg *seg;
109152 alen = min(len, DATALEN_SEG);
109153 - seg = kmalloc(sizeof(*seg) + alen, GFP_KERNEL);
109154 + seg = kmalloc(sizeof(*seg) + alen, GFP_KERNEL|GFP_USERCOPY);
109155 if (seg == NULL)
109156 goto out_err;
109157 *pseg = seg;
109158 diff --git a/ipc/sem.c b/ipc/sem.c
109159 index b471e5a..cb0c603 100644
109160 --- a/ipc/sem.c
109161 +++ b/ipc/sem.c
109162 @@ -1790,7 +1790,7 @@ static int get_queue_result(struct sem_queue *q)
109163 }
109164
109165 SYSCALL_DEFINE4(semtimedop, int, semid, struct sembuf __user *, tsops,
109166 - unsigned, nsops, const struct timespec __user *, timeout)
109167 + long, nsops, const struct timespec __user *, timeout)
109168 {
109169 int error = -EINVAL;
109170 struct sem_array *sma;
109171 @@ -2025,7 +2025,7 @@ out_free:
109172 }
109173
109174 SYSCALL_DEFINE3(semop, int, semid, struct sembuf __user *, tsops,
109175 - unsigned, nsops)
109176 + long, nsops)
109177 {
109178 return sys_semtimedop(semid, tsops, nsops, NULL);
109179 }
109180 @@ -2180,7 +2180,8 @@ void exit_sem(struct task_struct *tsk)
109181 static int sysvipc_sem_proc_show(struct seq_file *s, void *it)
109182 {
109183 struct user_namespace *user_ns = seq_user_ns(s);
109184 - struct sem_array *sma = it;
109185 + struct kern_ipc_perm *perm = it;
109186 + struct sem_array *sma = container_of(perm, struct sem_array, sem_perm);
109187 time_t sem_otime;
109188
109189 /*
109190 diff --git a/ipc/shm.c b/ipc/shm.c
109191 index 3174634..215d679 100644
109192 --- a/ipc/shm.c
109193 +++ b/ipc/shm.c
109194 @@ -72,9 +72,17 @@ static void shm_destroy(struct ipc_namespace *ns, struct shmid_kernel *shp);
109195 static int sysvipc_shm_proc_show(struct seq_file *s, void *it);
109196 #endif
109197
109198 +#ifdef CONFIG_GRKERNSEC
109199 +extern int gr_handle_shmat(const pid_t shm_cprid, const pid_t shm_lapid,
109200 + const u64 shm_createtime, const kuid_t cuid,
109201 + const int shmid);
109202 +extern int gr_chroot_shmat(const pid_t shm_cprid, const pid_t shm_lapid,
109203 + const u64 shm_createtime);
109204 +#endif
109205 +
109206 void shm_init_ns(struct ipc_namespace *ns)
109207 {
109208 - ns->shm_ctlmax = SHMMAX;
109209 + ns->shm_ctlmax = BITS_PER_LONG == 32 ? SHMMAX : LONG_MAX;
109210 ns->shm_ctlall = SHMALL;
109211 ns->shm_ctlmni = SHMMNI;
109212 ns->shm_rmid_forced = 0;
109213 @@ -588,6 +596,9 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params)
109214 shp->shm_lprid = 0;
109215 shp->shm_atim = shp->shm_dtim = 0;
109216 shp->shm_ctim = get_seconds();
109217 +#ifdef CONFIG_GRKERNSEC
109218 + shp->shm_createtime = ktime_get_ns();
109219 +#endif
109220 shp->shm_segsz = size;
109221 shp->shm_nattch = 0;
109222 shp->shm_file = file;
109223 @@ -1131,6 +1142,12 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr,
109224 f_mode = FMODE_READ | FMODE_WRITE;
109225 }
109226 if (shmflg & SHM_EXEC) {
109227 +
109228 +#ifdef CONFIG_PAX_MPROTECT
109229 + if (current->mm->pax_flags & MF_PAX_MPROTECT)
109230 + goto out;
109231 +#endif
109232 +
109233 prot |= PROT_EXEC;
109234 acc_mode |= S_IXUGO;
109235 }
109236 @@ -1155,6 +1172,15 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr,
109237 if (err)
109238 goto out_unlock;
109239
109240 +#ifdef CONFIG_GRKERNSEC
109241 + if (!gr_handle_shmat(shp->shm_cprid, shp->shm_lapid, shp->shm_createtime,
109242 + shp->shm_perm.cuid, shmid) ||
109243 + !gr_chroot_shmat(shp->shm_cprid, shp->shm_lapid, shp->shm_createtime)) {
109244 + err = -EACCES;
109245 + goto out_unlock;
109246 + }
109247 +#endif
109248 +
109249 ipc_lock_object(&shp->shm_perm);
109250
109251 /* check if shm_destroy() is tearing down shp */
109252 @@ -1167,6 +1193,9 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr,
109253 path = shp->shm_file->f_path;
109254 path_get(&path);
109255 shp->shm_nattch++;
109256 +#ifdef CONFIG_GRKERNSEC
109257 + shp->shm_lapid = current->pid;
109258 +#endif
109259 size = i_size_read(d_inode(path.dentry));
109260 ipc_unlock_object(&shp->shm_perm);
109261 rcu_read_unlock();
109262 @@ -1365,7 +1394,8 @@ SYSCALL_DEFINE1(shmdt, char __user *, shmaddr)
109263 static int sysvipc_shm_proc_show(struct seq_file *s, void *it)
109264 {
109265 struct user_namespace *user_ns = seq_user_ns(s);
109266 - struct shmid_kernel *shp = it;
109267 + struct kern_ipc_perm *perm = it;
109268 + struct shmid_kernel *shp = container_of(perm, struct shmid_kernel, shm_perm);
109269 unsigned long rss = 0, swp = 0;
109270
109271 shm_add_rss_swap(shp, &rss, &swp);
109272 diff --git a/ipc/util.c b/ipc/util.c
109273 index 0f401d9..049b0ff 100644
109274 --- a/ipc/util.c
109275 +++ b/ipc/util.c
109276 @@ -71,6 +71,8 @@ struct ipc_proc_iface {
109277 int (*show)(struct seq_file *, void *);
109278 };
109279
109280 +extern int gr_ipc_permitted(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, int requested_mode, int granted_mode);
109281 +
109282 /**
109283 * ipc_init - initialise ipc subsystem
109284 *
109285 @@ -494,6 +496,10 @@ int ipcperms(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, short flag)
109286 granted_mode >>= 6;
109287 else if (in_group_p(ipcp->cgid) || in_group_p(ipcp->gid))
109288 granted_mode >>= 3;
109289 +
109290 + if (!gr_ipc_permitted(ns, ipcp, requested_mode, granted_mode))
109291 + return -1;
109292 +
109293 /* is there some bit set in requested_mode but not in granted_mode? */
109294 if ((requested_mode & ~granted_mode & 0007) &&
109295 !ns_capable(ns->user_ns, CAP_IPC_OWNER))
109296 diff --git a/kernel/audit.c b/kernel/audit.c
109297 index 5ffcbd3..166fa77 100644
109298 --- a/kernel/audit.c
109299 +++ b/kernel/audit.c
109300 @@ -124,7 +124,7 @@ u32 audit_sig_sid = 0;
109301 3) suppressed due to audit_rate_limit
109302 4) suppressed due to audit_backlog_limit
109303 */
109304 -static atomic_t audit_lost = ATOMIC_INIT(0);
109305 +static atomic_unchecked_t audit_lost = ATOMIC_INIT(0);
109306
109307 /* The netlink socket. */
109308 static struct sock *audit_sock;
109309 @@ -258,7 +258,7 @@ void audit_log_lost(const char *message)
109310 unsigned long now;
109311 int print;
109312
109313 - atomic_inc(&audit_lost);
109314 + atomic_inc_unchecked(&audit_lost);
109315
109316 print = (audit_failure == AUDIT_FAIL_PANIC || !audit_rate_limit);
109317
109318 @@ -275,7 +275,7 @@ void audit_log_lost(const char *message)
109319 if (print) {
109320 if (printk_ratelimit())
109321 pr_warn("audit_lost=%u audit_rate_limit=%u audit_backlog_limit=%u\n",
109322 - atomic_read(&audit_lost),
109323 + atomic_read_unchecked(&audit_lost),
109324 audit_rate_limit,
109325 audit_backlog_limit);
109326 audit_panic(message);
109327 @@ -847,7 +847,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
109328 s.pid = audit_pid;
109329 s.rate_limit = audit_rate_limit;
109330 s.backlog_limit = audit_backlog_limit;
109331 - s.lost = atomic_read(&audit_lost);
109332 + s.lost = atomic_read_unchecked(&audit_lost);
109333 s.backlog = skb_queue_len(&audit_skb_queue);
109334 s.feature_bitmap = AUDIT_FEATURE_BITMAP_ALL;
109335 s.backlog_wait_time = audit_backlog_wait_time_master;
109336 diff --git a/kernel/auditsc.c b/kernel/auditsc.c
109337 index b86cc04..dfbfd4e 100644
109338 --- a/kernel/auditsc.c
109339 +++ b/kernel/auditsc.c
109340 @@ -1024,7 +1024,7 @@ static int audit_log_single_execve_arg(struct audit_context *context,
109341 * for strings that are too long, we should not have created
109342 * any.
109343 */
109344 - if (WARN_ON_ONCE(len < 0 || len > MAX_ARG_STRLEN - 1)) {
109345 + if (WARN_ON_ONCE(len > MAX_ARG_STRLEN - 1)) {
109346 send_sig(SIGKILL, current, 0);
109347 return -1;
109348 }
109349 @@ -1955,7 +1955,7 @@ int auditsc_get_stamp(struct audit_context *ctx,
109350 }
109351
109352 /* global counter which is incremented every time something logs in */
109353 -static atomic_t session_id = ATOMIC_INIT(0);
109354 +static atomic_unchecked_t session_id = ATOMIC_INIT(0);
109355
109356 static int audit_set_loginuid_perm(kuid_t loginuid)
109357 {
109358 @@ -2022,7 +2022,7 @@ int audit_set_loginuid(kuid_t loginuid)
109359
109360 /* are we setting or clearing? */
109361 if (uid_valid(loginuid))
109362 - sessionid = (unsigned int)atomic_inc_return(&session_id);
109363 + sessionid = (unsigned int)atomic_inc_return_unchecked(&session_id);
109364
109365 task->sessionid = sessionid;
109366 task->loginuid = loginuid;
109367 diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c
109368 index 334b1bd..67c97a2 100644
109369 --- a/kernel/bpf/core.c
109370 +++ b/kernel/bpf/core.c
109371 @@ -151,14 +151,17 @@ bpf_jit_binary_alloc(unsigned int proglen, u8 **image_ptr,
109372 * random section of illegal instructions.
109373 */
109374 size = round_up(proglen + sizeof(*hdr) + 128, PAGE_SIZE);
109375 - hdr = module_alloc(size);
109376 + hdr = module_alloc_exec(size);
109377 if (hdr == NULL)
109378 return NULL;
109379
109380 /* Fill space with illegal/arch-dep instructions. */
109381 bpf_fill_ill_insns(hdr, size);
109382
109383 + pax_open_kernel();
109384 hdr->pages = size / PAGE_SIZE;
109385 + pax_close_kernel();
109386 +
109387 hole = min_t(unsigned int, size - (proglen + sizeof(*hdr)),
109388 PAGE_SIZE - sizeof(*hdr));
109389 start = (prandom_u32() % hole) & ~(alignment - 1);
109390 @@ -171,7 +174,7 @@ bpf_jit_binary_alloc(unsigned int proglen, u8 **image_ptr,
109391
109392 void bpf_jit_binary_free(struct bpf_binary_header *hdr)
109393 {
109394 - module_memfree(hdr);
109395 + module_memfree_exec(hdr);
109396 }
109397 #endif /* CONFIG_BPF_JIT */
109398
109399 diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
109400 index 3b39550..e470527 100644
109401 --- a/kernel/bpf/syscall.c
109402 +++ b/kernel/bpf/syscall.c
109403 @@ -711,8 +711,16 @@ SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, siz
109404 union bpf_attr attr = {};
109405 int err;
109406
109407 - if (!capable(CAP_SYS_ADMIN) && sysctl_unprivileged_bpf_disabled)
109408 + /* the syscall is limited to root temporarily. This restriction will be
109409 + * lifted by upstream when a half-assed security audit is clean. Note
109410 + * that eBPF+tracing must have this restriction, since it may pass
109411 + * kernel data to user space
109412 + */
109413 + if (!capable(CAP_SYS_ADMIN))
109414 return -EPERM;
109415 +#ifdef CONFIG_GRKERNSEC
109416 + return -EPERM;
109417 +#endif
109418
109419 if (!access_ok(VERIFY_READ, uattr, 1))
109420 return -EFAULT;
109421 diff --git a/kernel/capability.c b/kernel/capability.c
109422 index 45432b5..988f1e4 100644
109423 --- a/kernel/capability.c
109424 +++ b/kernel/capability.c
109425 @@ -193,6 +193,9 @@ SYSCALL_DEFINE2(capget, cap_user_header_t, header, cap_user_data_t, dataptr)
109426 * before modification is attempted and the application
109427 * fails.
109428 */
109429 + if (tocopy > ARRAY_SIZE(kdata))
109430 + return -EFAULT;
109431 +
109432 if (copy_to_user(dataptr, kdata, tocopy
109433 * sizeof(struct __user_cap_data_struct))) {
109434 return -EFAULT;
109435 @@ -298,10 +301,11 @@ bool has_ns_capability(struct task_struct *t,
109436 int ret;
109437
109438 rcu_read_lock();
109439 - ret = security_capable(__task_cred(t), ns, cap);
109440 + ret = security_capable(__task_cred(t), ns, cap) == 0 &&
109441 + gr_task_is_capable(t, __task_cred(t), cap);
109442 rcu_read_unlock();
109443
109444 - return (ret == 0);
109445 + return ret;
109446 }
109447
109448 /**
109449 @@ -338,10 +342,10 @@ bool has_ns_capability_noaudit(struct task_struct *t,
109450 int ret;
109451
109452 rcu_read_lock();
109453 - ret = security_capable_noaudit(__task_cred(t), ns, cap);
109454 + ret = security_capable_noaudit(__task_cred(t), ns, cap) == 0 && gr_task_is_capable_nolog(t, cap);
109455 rcu_read_unlock();
109456
109457 - return (ret == 0);
109458 + return ret;
109459 }
109460
109461 /**
109462 @@ -379,7 +383,7 @@ bool ns_capable(struct user_namespace *ns, int cap)
109463 BUG();
109464 }
109465
109466 - if (security_capable(current_cred(), ns, cap) == 0) {
109467 + if (security_capable(current_cred(), ns, cap) == 0 && gr_is_capable(cap)) {
109468 current->flags |= PF_SUPERPRIV;
109469 return true;
109470 }
109471 @@ -387,6 +391,20 @@ bool ns_capable(struct user_namespace *ns, int cap)
109472 }
109473 EXPORT_SYMBOL(ns_capable);
109474
109475 +bool ns_capable_nolog(struct user_namespace *ns, int cap)
109476 +{
109477 + if (unlikely(!cap_valid(cap))) {
109478 + pr_crit("capable_nolog() called with invalid cap=%u\n", cap);
109479 + BUG();
109480 + }
109481 +
109482 + if (security_capable_noaudit(current_cred(), ns, cap) == 0 && gr_is_capable_nolog(cap)) {
109483 + current->flags |= PF_SUPERPRIV;
109484 + return true;
109485 + }
109486 + return false;
109487 +}
109488 +EXPORT_SYMBOL(ns_capable_nolog);
109489
109490 /**
109491 * capable - Determine if the current task has a superior capability in effect
109492 @@ -403,6 +421,13 @@ bool capable(int cap)
109493 return ns_capable(&init_user_ns, cap);
109494 }
109495 EXPORT_SYMBOL(capable);
109496 +
109497 +bool capable_nolog(int cap)
109498 +{
109499 + return ns_capable_nolog(&init_user_ns, cap);
109500 +}
109501 +EXPORT_SYMBOL(capable_nolog);
109502 +
109503 #endif /* CONFIG_MULTIUSER */
109504
109505 /**
109506 @@ -447,3 +472,12 @@ bool capable_wrt_inode_uidgid(const struct inode *inode, int cap)
109507 kgid_has_mapping(ns, inode->i_gid);
109508 }
109509 EXPORT_SYMBOL(capable_wrt_inode_uidgid);
109510 +
109511 +bool capable_wrt_inode_uidgid_nolog(const struct inode *inode, int cap)
109512 +{
109513 + struct user_namespace *ns = current_user_ns();
109514 +
109515 + return ns_capable_nolog(ns, cap) && kuid_has_mapping(ns, inode->i_uid) &&
109516 + kgid_has_mapping(ns, inode->i_gid);
109517 +}
109518 +EXPORT_SYMBOL(capable_wrt_inode_uidgid_nolog);
109519 diff --git a/kernel/cgroup.c b/kernel/cgroup.c
109520 index fb1ecfd..f6add73 100644
109521 --- a/kernel/cgroup.c
109522 +++ b/kernel/cgroup.c
109523 @@ -3346,7 +3346,7 @@ static int cgroup_add_file(struct cgroup_subsys_state *css, struct cgroup *cgrp,
109524 key = &cft->lockdep_key;
109525 #endif
109526 kn = __kernfs_create_file(cgrp->kn, cgroup_file_name(cgrp, cft, name),
109527 - cgroup_file_mode(cft), 0, cft->kf_ops, cft,
109528 + cgroup_file_mode(cft), 0, cft->kf_ops, (void *)cft,
109529 NULL, key);
109530 if (IS_ERR(kn))
109531 return PTR_ERR(kn);
109532 @@ -3450,11 +3450,14 @@ static void cgroup_exit_cftypes(struct cftype *cfts)
109533 /* free copy for custom atomic_write_len, see init_cftypes() */
109534 if (cft->max_write_len && cft->max_write_len != PAGE_SIZE)
109535 kfree(cft->kf_ops);
109536 - cft->kf_ops = NULL;
109537 - cft->ss = NULL;
109538 +
109539 + pax_open_kernel();
109540 + *(void **)&cft->kf_ops = NULL;
109541 + *(void **)&cft->ss = NULL;
109542
109543 /* revert flags set by cgroup core while adding @cfts */
109544 - cft->flags &= ~(__CFTYPE_ONLY_ON_DFL | __CFTYPE_NOT_ON_DFL);
109545 + *(unsigned int *)&cft->flags &= ~(__CFTYPE_ONLY_ON_DFL | __CFTYPE_NOT_ON_DFL);
109546 + pax_close_kernel();
109547 }
109548 }
109549
109550 @@ -3485,8 +3488,10 @@ static int cgroup_init_cftypes(struct cgroup_subsys *ss, struct cftype *cfts)
109551 kf_ops->atomic_write_len = cft->max_write_len;
109552 }
109553
109554 - cft->kf_ops = kf_ops;
109555 - cft->ss = ss;
109556 + pax_open_kernel();
109557 + *(void **)&cft->kf_ops = kf_ops;
109558 + *(void **)&cft->ss = ss;
109559 + pax_close_kernel();
109560 }
109561
109562 return 0;
109563 @@ -3499,7 +3504,7 @@ static int cgroup_rm_cftypes_locked(struct cftype *cfts)
109564 if (!cfts || !cfts[0].ss)
109565 return -ENOENT;
109566
109567 - list_del(&cfts->node);
109568 + pax_list_del((struct list_head *)&cfts->node);
109569 cgroup_apply_cftypes(cfts, false);
109570 cgroup_exit_cftypes(cfts);
109571 return 0;
109572 @@ -3556,7 +3561,7 @@ static int cgroup_add_cftypes(struct cgroup_subsys *ss, struct cftype *cfts)
109573
109574 mutex_lock(&cgroup_mutex);
109575
109576 - list_add_tail(&cfts->node, &ss->cfts);
109577 + pax_list_add_tail((struct list_head *)&cfts->node, &ss->cfts);
109578 ret = cgroup_apply_cftypes(cfts, true);
109579 if (ret)
109580 cgroup_rm_cftypes_locked(cfts);
109581 @@ -3577,8 +3582,10 @@ int cgroup_add_dfl_cftypes(struct cgroup_subsys *ss, struct cftype *cfts)
109582 {
109583 struct cftype *cft;
109584
109585 + pax_open_kernel();
109586 for (cft = cfts; cft && cft->name[0] != '\0'; cft++)
109587 - cft->flags |= __CFTYPE_ONLY_ON_DFL;
109588 + *(unsigned int *)&cft->flags |= __CFTYPE_ONLY_ON_DFL;
109589 + pax_close_kernel();
109590 return cgroup_add_cftypes(ss, cfts);
109591 }
109592
109593 @@ -3594,8 +3601,10 @@ int cgroup_add_legacy_cftypes(struct cgroup_subsys *ss, struct cftype *cfts)
109594 {
109595 struct cftype *cft;
109596
109597 + pax_open_kernel();
109598 for (cft = cfts; cft && cft->name[0] != '\0'; cft++)
109599 - cft->flags |= __CFTYPE_NOT_ON_DFL;
109600 + *(unsigned int *)&cft->flags |= __CFTYPE_NOT_ON_DFL;
109601 + pax_close_kernel();
109602 return cgroup_add_cftypes(ss, cfts);
109603 }
109604
109605 @@ -5738,6 +5747,9 @@ static void cgroup_release_agent(struct work_struct *work)
109606 if (!pathbuf || !agentbuf)
109607 goto out;
109608
109609 + if (agentbuf[0] == '\0')
109610 + goto out;
109611 +
109612 path = cgroup_path(cgrp, pathbuf, PATH_MAX);
109613 if (!path)
109614 goto out;
109615 @@ -5913,7 +5925,7 @@ static int cgroup_css_links_read(struct seq_file *seq, void *v)
109616 struct task_struct *task;
109617 int count = 0;
109618
109619 - seq_printf(seq, "css_set %p\n", cset);
109620 + seq_printf(seq, "css_set %pK\n", cset);
109621
109622 list_for_each_entry(task, &cset->tasks, cg_list) {
109623 if (count++ > MAX_TASKS_SHOWN_PER_CSS)
109624 diff --git a/kernel/compat.c b/kernel/compat.c
109625 index 333d364..762ec00 100644
109626 --- a/kernel/compat.c
109627 +++ b/kernel/compat.c
109628 @@ -13,6 +13,7 @@
109629
109630 #include <linux/linkage.h>
109631 #include <linux/compat.h>
109632 +#include <linux/module.h>
109633 #include <linux/errno.h>
109634 #include <linux/time.h>
109635 #include <linux/signal.h>
109636 @@ -220,7 +221,7 @@ static long compat_nanosleep_restart(struct restart_block *restart)
109637 mm_segment_t oldfs;
109638 long ret;
109639
109640 - restart->nanosleep.rmtp = (struct timespec __user *) &rmt;
109641 + restart->nanosleep.rmtp = (struct timespec __force_user *) &rmt;
109642 oldfs = get_fs();
109643 set_fs(KERNEL_DS);
109644 ret = hrtimer_nanosleep_restart(restart);
109645 @@ -252,7 +253,7 @@ COMPAT_SYSCALL_DEFINE2(nanosleep, struct compat_timespec __user *, rqtp,
109646 oldfs = get_fs();
109647 set_fs(KERNEL_DS);
109648 ret = hrtimer_nanosleep(&tu,
109649 - rmtp ? (struct timespec __user *)&rmt : NULL,
109650 + rmtp ? (struct timespec __force_user *)&rmt : NULL,
109651 HRTIMER_MODE_REL, CLOCK_MONOTONIC);
109652 set_fs(oldfs);
109653
109654 @@ -378,7 +379,7 @@ COMPAT_SYSCALL_DEFINE1(sigpending, compat_old_sigset_t __user *, set)
109655 mm_segment_t old_fs = get_fs();
109656
109657 set_fs(KERNEL_DS);
109658 - ret = sys_sigpending((old_sigset_t __user *) &s);
109659 + ret = sys_sigpending((old_sigset_t __force_user *) &s);
109660 set_fs(old_fs);
109661 if (ret == 0)
109662 ret = put_user(s, set);
109663 @@ -468,7 +469,7 @@ COMPAT_SYSCALL_DEFINE2(old_getrlimit, unsigned int, resource,
109664 mm_segment_t old_fs = get_fs();
109665
109666 set_fs(KERNEL_DS);
109667 - ret = sys_old_getrlimit(resource, (struct rlimit __user *)&r);
109668 + ret = sys_old_getrlimit(resource, (struct rlimit __force_user *)&r);
109669 set_fs(old_fs);
109670
109671 if (!ret) {
109672 @@ -550,8 +551,8 @@ COMPAT_SYSCALL_DEFINE4(wait4,
109673 set_fs (KERNEL_DS);
109674 ret = sys_wait4(pid,
109675 (stat_addr ?
109676 - (unsigned int __user *) &status : NULL),
109677 - options, (struct rusage __user *) &r);
109678 + (unsigned int __force_user *) &status : NULL),
109679 + options, (struct rusage __force_user *) &r);
109680 set_fs (old_fs);
109681
109682 if (ret > 0) {
109683 @@ -577,8 +578,8 @@ COMPAT_SYSCALL_DEFINE5(waitid,
109684 memset(&info, 0, sizeof(info));
109685
109686 set_fs(KERNEL_DS);
109687 - ret = sys_waitid(which, pid, (siginfo_t __user *)&info, options,
109688 - uru ? (struct rusage __user *)&ru : NULL);
109689 + ret = sys_waitid(which, pid, (siginfo_t __force_user *)&info, options,
109690 + uru ? (struct rusage __force_user *)&ru : NULL);
109691 set_fs(old_fs);
109692
109693 if ((ret < 0) || (info.si_signo == 0))
109694 @@ -712,8 +713,8 @@ COMPAT_SYSCALL_DEFINE4(timer_settime, timer_t, timer_id, int, flags,
109695 oldfs = get_fs();
109696 set_fs(KERNEL_DS);
109697 err = sys_timer_settime(timer_id, flags,
109698 - (struct itimerspec __user *) &newts,
109699 - (struct itimerspec __user *) &oldts);
109700 + (struct itimerspec __force_user *) &newts,
109701 + (struct itimerspec __force_user *) &oldts);
109702 set_fs(oldfs);
109703 if (!err && old && put_compat_itimerspec(old, &oldts))
109704 return -EFAULT;
109705 @@ -730,7 +731,7 @@ COMPAT_SYSCALL_DEFINE2(timer_gettime, timer_t, timer_id,
109706 oldfs = get_fs();
109707 set_fs(KERNEL_DS);
109708 err = sys_timer_gettime(timer_id,
109709 - (struct itimerspec __user *) &ts);
109710 + (struct itimerspec __force_user *) &ts);
109711 set_fs(oldfs);
109712 if (!err && put_compat_itimerspec(setting, &ts))
109713 return -EFAULT;
109714 @@ -749,7 +750,7 @@ COMPAT_SYSCALL_DEFINE2(clock_settime, clockid_t, which_clock,
109715 oldfs = get_fs();
109716 set_fs(KERNEL_DS);
109717 err = sys_clock_settime(which_clock,
109718 - (struct timespec __user *) &ts);
109719 + (struct timespec __force_user *) &ts);
109720 set_fs(oldfs);
109721 return err;
109722 }
109723 @@ -764,7 +765,7 @@ COMPAT_SYSCALL_DEFINE2(clock_gettime, clockid_t, which_clock,
109724 oldfs = get_fs();
109725 set_fs(KERNEL_DS);
109726 err = sys_clock_gettime(which_clock,
109727 - (struct timespec __user *) &ts);
109728 + (struct timespec __force_user *) &ts);
109729 set_fs(oldfs);
109730 if (!err && compat_put_timespec(&ts, tp))
109731 return -EFAULT;
109732 @@ -784,7 +785,7 @@ COMPAT_SYSCALL_DEFINE2(clock_adjtime, clockid_t, which_clock,
109733
109734 oldfs = get_fs();
109735 set_fs(KERNEL_DS);
109736 - ret = sys_clock_adjtime(which_clock, (struct timex __user *) &txc);
109737 + ret = sys_clock_adjtime(which_clock, (struct timex __force_user *) &txc);
109738 set_fs(oldfs);
109739
109740 err = compat_put_timex(utp, &txc);
109741 @@ -804,7 +805,7 @@ COMPAT_SYSCALL_DEFINE2(clock_getres, clockid_t, which_clock,
109742 oldfs = get_fs();
109743 set_fs(KERNEL_DS);
109744 err = sys_clock_getres(which_clock,
109745 - (struct timespec __user *) &ts);
109746 + (struct timespec __force_user *) &ts);
109747 set_fs(oldfs);
109748 if (!err && tp && compat_put_timespec(&ts, tp))
109749 return -EFAULT;
109750 @@ -818,7 +819,7 @@ static long compat_clock_nanosleep_restart(struct restart_block *restart)
109751 struct timespec tu;
109752 struct compat_timespec __user *rmtp = restart->nanosleep.compat_rmtp;
109753
109754 - restart->nanosleep.rmtp = (struct timespec __user *) &tu;
109755 + restart->nanosleep.rmtp = (struct timespec __force_user *) &tu;
109756 oldfs = get_fs();
109757 set_fs(KERNEL_DS);
109758 err = clock_nanosleep_restart(restart);
109759 @@ -850,8 +851,8 @@ COMPAT_SYSCALL_DEFINE4(clock_nanosleep, clockid_t, which_clock, int, flags,
109760 oldfs = get_fs();
109761 set_fs(KERNEL_DS);
109762 err = sys_clock_nanosleep(which_clock, flags,
109763 - (struct timespec __user *) &in,
109764 - (struct timespec __user *) &out);
109765 + (struct timespec __force_user *) &in,
109766 + (struct timespec __force_user *) &out);
109767 set_fs(oldfs);
109768
109769 if ((err == -ERESTART_RESTARTBLOCK) && rmtp &&
109770 @@ -1147,7 +1148,7 @@ COMPAT_SYSCALL_DEFINE2(sched_rr_get_interval,
109771 mm_segment_t old_fs = get_fs();
109772
109773 set_fs(KERNEL_DS);
109774 - ret = sys_sched_rr_get_interval(pid, (struct timespec __user *)&t);
109775 + ret = sys_sched_rr_get_interval(pid, (struct timespec __force_user *)&t);
109776 set_fs(old_fs);
109777 if (compat_put_timespec(&t, interval))
109778 return -EFAULT;
109779 diff --git a/kernel/configs.c b/kernel/configs.c
109780 index c18b1f1..b9a0132 100644
109781 --- a/kernel/configs.c
109782 +++ b/kernel/configs.c
109783 @@ -74,8 +74,19 @@ static int __init ikconfig_init(void)
109784 struct proc_dir_entry *entry;
109785
109786 /* create the current config file */
109787 +#if defined(CONFIG_GRKERNSEC_PROC_ADD) || defined(CONFIG_GRKERNSEC_HIDESYM)
109788 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_HIDESYM)
109789 + entry = proc_create("config.gz", S_IFREG | S_IRUSR, NULL,
109790 + &ikconfig_file_ops);
109791 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
109792 + entry = proc_create("config.gz", S_IFREG | S_IRUSR | S_IRGRP, NULL,
109793 + &ikconfig_file_ops);
109794 +#endif
109795 +#else
109796 entry = proc_create("config.gz", S_IFREG | S_IRUGO, NULL,
109797 &ikconfig_file_ops);
109798 +#endif
109799 +
109800 if (!entry)
109801 return -ENOMEM;
109802
109803 diff --git a/kernel/cred.c b/kernel/cred.c
109804 index 71179a0..a72ab47 100644
109805 --- a/kernel/cred.c
109806 +++ b/kernel/cred.c
109807 @@ -172,6 +172,15 @@ void exit_creds(struct task_struct *tsk)
109808 validate_creds(cred);
109809 alter_cred_subscribers(cred, -1);
109810 put_cred(cred);
109811 +
109812 +#ifdef CONFIG_GRKERNSEC_SETXID
109813 + cred = (struct cred *) tsk->delayed_cred;
109814 + if (cred != NULL) {
109815 + tsk->delayed_cred = NULL;
109816 + validate_creds(cred);
109817 + put_cred(cred);
109818 + }
109819 +#endif
109820 }
109821
109822 /**
109823 @@ -419,7 +428,7 @@ static bool cred_cap_issubset(const struct cred *set, const struct cred *subset)
109824 * Always returns 0 thus allowing this function to be tail-called at the end
109825 * of, say, sys_setgid().
109826 */
109827 -int commit_creds(struct cred *new)
109828 +static int __commit_creds(struct cred *new)
109829 {
109830 struct task_struct *task = current;
109831 const struct cred *old = task->real_cred;
109832 @@ -438,6 +447,8 @@ int commit_creds(struct cred *new)
109833
109834 get_cred(new); /* we will require a ref for the subj creds too */
109835
109836 + gr_set_role_label(task, new->uid, new->gid);
109837 +
109838 /* dumpability changes */
109839 if (!uid_eq(old->euid, new->euid) ||
109840 !gid_eq(old->egid, new->egid) ||
109841 @@ -487,6 +498,105 @@ int commit_creds(struct cred *new)
109842 put_cred(old);
109843 return 0;
109844 }
109845 +#ifdef CONFIG_GRKERNSEC_SETXID
109846 +extern int set_user(struct cred *new);
109847 +
109848 +void gr_delayed_cred_worker(void)
109849 +{
109850 + const struct cred *new = current->delayed_cred;
109851 + struct cred *ncred;
109852 +
109853 + current->delayed_cred = NULL;
109854 +
109855 + if (!uid_eq(current_uid(), GLOBAL_ROOT_UID) && new != NULL) {
109856 + // from doing get_cred on it when queueing this
109857 + put_cred(new);
109858 + return;
109859 + } else if (new == NULL)
109860 + return;
109861 +
109862 + ncred = prepare_creds();
109863 + if (!ncred)
109864 + goto die;
109865 + // uids
109866 + ncred->uid = new->uid;
109867 + ncred->euid = new->euid;
109868 + ncred->suid = new->suid;
109869 + ncred->fsuid = new->fsuid;
109870 + // gids
109871 + ncred->gid = new->gid;
109872 + ncred->egid = new->egid;
109873 + ncred->sgid = new->sgid;
109874 + ncred->fsgid = new->fsgid;
109875 + // groups
109876 + set_groups(ncred, new->group_info);
109877 + // caps
109878 + ncred->securebits = new->securebits;
109879 + ncred->cap_inheritable = new->cap_inheritable;
109880 + ncred->cap_permitted = new->cap_permitted;
109881 + ncred->cap_effective = new->cap_effective;
109882 + ncred->cap_bset = new->cap_bset;
109883 +
109884 + if (set_user(ncred)) {
109885 + abort_creds(ncred);
109886 + goto die;
109887 + }
109888 +
109889 + // from doing get_cred on it when queueing this
109890 + put_cred(new);
109891 +
109892 + __commit_creds(ncred);
109893 + return;
109894 +die:
109895 + // from doing get_cred on it when queueing this
109896 + put_cred(new);
109897 + do_group_exit(SIGKILL);
109898 +}
109899 +#endif
109900 +
109901 +int commit_creds(struct cred *new)
109902 +{
109903 +#ifdef CONFIG_GRKERNSEC_SETXID
109904 + int ret;
109905 + int schedule_it = 0;
109906 + struct task_struct *t;
109907 + unsigned oldsecurebits = current_cred()->securebits;
109908 +
109909 + /* we won't get called with tasklist_lock held for writing
109910 + and interrupts disabled as the cred struct in that case is
109911 + init_cred
109912 + */
109913 + if (grsec_enable_setxid && !current_is_single_threaded() &&
109914 + uid_eq(current_uid(), GLOBAL_ROOT_UID) &&
109915 + !uid_eq(new->uid, GLOBAL_ROOT_UID)) {
109916 + schedule_it = 1;
109917 + }
109918 + ret = __commit_creds(new);
109919 + if (schedule_it) {
109920 + rcu_read_lock();
109921 + read_lock(&tasklist_lock);
109922 + for (t = next_thread(current); t != current;
109923 + t = next_thread(t)) {
109924 + /* we'll check if the thread has uid 0 in
109925 + * the delayed worker routine
109926 + */
109927 + if (task_securebits(t) == oldsecurebits &&
109928 + t->delayed_cred == NULL) {
109929 + t->delayed_cred = get_cred(new);
109930 + set_tsk_thread_flag(t, TIF_GRSEC_SETXID);
109931 + set_tsk_need_resched(t);
109932 + }
109933 + }
109934 + read_unlock(&tasklist_lock);
109935 + rcu_read_unlock();
109936 + }
109937 +
109938 + return ret;
109939 +#else
109940 + return __commit_creds(new);
109941 +#endif
109942 +}
109943 +
109944 EXPORT_SYMBOL(commit_creds);
109945
109946 /**
109947 diff --git a/kernel/debug/debug_core.c b/kernel/debug/debug_core.c
109948 index 0874e2e..5b32cc9 100644
109949 --- a/kernel/debug/debug_core.c
109950 +++ b/kernel/debug/debug_core.c
109951 @@ -127,7 +127,7 @@ static DEFINE_RAW_SPINLOCK(dbg_slave_lock);
109952 */
109953 static atomic_t masters_in_kgdb;
109954 static atomic_t slaves_in_kgdb;
109955 -static atomic_t kgdb_break_tasklet_var;
109956 +static atomic_unchecked_t kgdb_break_tasklet_var;
109957 atomic_t kgdb_setting_breakpoint;
109958
109959 struct task_struct *kgdb_usethread;
109960 @@ -137,7 +137,7 @@ int kgdb_single_step;
109961 static pid_t kgdb_sstep_pid;
109962
109963 /* to keep track of the CPU which is doing the single stepping*/
109964 -atomic_t kgdb_cpu_doing_single_step = ATOMIC_INIT(-1);
109965 +atomic_unchecked_t kgdb_cpu_doing_single_step = ATOMIC_INIT(-1);
109966
109967 /*
109968 * If you are debugging a problem where roundup (the collection of
109969 @@ -552,7 +552,7 @@ return_normal:
109970 * kernel will only try for the value of sstep_tries before
109971 * giving up and continuing on.
109972 */
109973 - if (atomic_read(&kgdb_cpu_doing_single_step) != -1 &&
109974 + if (atomic_read_unchecked(&kgdb_cpu_doing_single_step) != -1 &&
109975 (kgdb_info[cpu].task &&
109976 kgdb_info[cpu].task->pid != kgdb_sstep_pid) && --sstep_tries) {
109977 atomic_set(&kgdb_active, -1);
109978 @@ -654,8 +654,8 @@ cpu_master_loop:
109979 }
109980
109981 kgdb_restore:
109982 - if (atomic_read(&kgdb_cpu_doing_single_step) != -1) {
109983 - int sstep_cpu = atomic_read(&kgdb_cpu_doing_single_step);
109984 + if (atomic_read_unchecked(&kgdb_cpu_doing_single_step) != -1) {
109985 + int sstep_cpu = atomic_read_unchecked(&kgdb_cpu_doing_single_step);
109986 if (kgdb_info[sstep_cpu].task)
109987 kgdb_sstep_pid = kgdb_info[sstep_cpu].task->pid;
109988 else
109989 @@ -949,18 +949,18 @@ static void kgdb_unregister_callbacks(void)
109990 static void kgdb_tasklet_bpt(unsigned long ing)
109991 {
109992 kgdb_breakpoint();
109993 - atomic_set(&kgdb_break_tasklet_var, 0);
109994 + atomic_set_unchecked(&kgdb_break_tasklet_var, 0);
109995 }
109996
109997 static DECLARE_TASKLET(kgdb_tasklet_breakpoint, kgdb_tasklet_bpt, 0);
109998
109999 void kgdb_schedule_breakpoint(void)
110000 {
110001 - if (atomic_read(&kgdb_break_tasklet_var) ||
110002 + if (atomic_read_unchecked(&kgdb_break_tasklet_var) ||
110003 atomic_read(&kgdb_active) != -1 ||
110004 atomic_read(&kgdb_setting_breakpoint))
110005 return;
110006 - atomic_inc(&kgdb_break_tasklet_var);
110007 + atomic_inc_unchecked(&kgdb_break_tasklet_var);
110008 tasklet_schedule(&kgdb_tasklet_breakpoint);
110009 }
110010 EXPORT_SYMBOL_GPL(kgdb_schedule_breakpoint);
110011 diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c
110012 index 41213454..861e178 100644
110013 --- a/kernel/debug/kdb/kdb_main.c
110014 +++ b/kernel/debug/kdb/kdb_main.c
110015 @@ -2021,7 +2021,7 @@ static int kdb_lsmod(int argc, const char **argv)
110016 continue;
110017
110018 kdb_printf("%-20s%8u 0x%p ", mod->name,
110019 - mod->core_size, (void *)mod);
110020 + mod->core_size_rx + mod->core_size_rw, (void *)mod);
110021 #ifdef CONFIG_MODULE_UNLOAD
110022 kdb_printf("%4d ", module_refcount(mod));
110023 #endif
110024 @@ -2031,7 +2031,7 @@ static int kdb_lsmod(int argc, const char **argv)
110025 kdb_printf(" (Loading)");
110026 else
110027 kdb_printf(" (Live)");
110028 - kdb_printf(" 0x%p", mod->module_core);
110029 + kdb_printf(" 0x%p 0x%p", mod->module_core_rx, mod->module_core_rw);
110030
110031 #ifdef CONFIG_MODULE_UNLOAD
110032 {
110033 diff --git a/kernel/events/core.c b/kernel/events/core.c
110034 index 1087bbe..d0f51f0 100644
110035 --- a/kernel/events/core.c
110036 +++ b/kernel/events/core.c
110037 @@ -175,8 +175,15 @@ static struct srcu_struct pmus_srcu;
110038 * 0 - disallow raw tracepoint access for unpriv
110039 * 1 - disallow cpu events for unpriv
110040 * 2 - disallow kernel profiling for unpriv
110041 + * 3 - disallow all unpriv perf event use
110042 */
110043 -int sysctl_perf_event_paranoid __read_mostly = 1;
110044 +#ifdef CONFIG_GRKERNSEC_PERF_HARDEN
110045 +int sysctl_perf_event_legitimately_concerned __read_only = 3;
110046 +#elif defined(CONFIG_GRKERNSEC_HIDESYM)
110047 +int sysctl_perf_event_legitimately_concerned __read_only = 2;
110048 +#else
110049 +int sysctl_perf_event_legitimately_concerned __read_only = 1;
110050 +#endif
110051
110052 /* Minimum for 512 kiB + 1 user control page */
110053 int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */
110054 @@ -202,7 +209,7 @@ static void update_perf_cpu_limits(void)
110055
110056 tmp *= sysctl_perf_cpu_time_max_percent;
110057 do_div(tmp, 100);
110058 - ACCESS_ONCE(perf_sample_allowed_ns) = tmp;
110059 + ACCESS_ONCE_RW(perf_sample_allowed_ns) = tmp;
110060 }
110061
110062 static int perf_rotate_context(struct perf_cpu_context *cpuctx);
110063 @@ -308,7 +315,7 @@ void perf_sample_event_took(u64 sample_len_ns)
110064 }
110065 }
110066
110067 -static atomic64_t perf_event_id;
110068 +static atomic64_unchecked_t perf_event_id;
110069
110070 static void cpu_ctx_sched_out(struct perf_cpu_context *cpuctx,
110071 enum event_type_t event_type);
110072 @@ -3898,9 +3905,9 @@ u64 perf_event_read_value(struct perf_event *event, u64 *enabled, u64 *running)
110073 total += perf_event_count(event);
110074
110075 *enabled += event->total_time_enabled +
110076 - atomic64_read(&event->child_total_time_enabled);
110077 + atomic64_read_unchecked(&event->child_total_time_enabled);
110078 *running += event->total_time_running +
110079 - atomic64_read(&event->child_total_time_running);
110080 + atomic64_read_unchecked(&event->child_total_time_running);
110081
110082 list_for_each_entry(child, &event->child_list, child_list) {
110083 (void)perf_event_read(child, false);
110084 @@ -3932,12 +3939,12 @@ static int __perf_read_group_add(struct perf_event *leader,
110085 */
110086 if (read_format & PERF_FORMAT_TOTAL_TIME_ENABLED) {
110087 values[n++] += leader->total_time_enabled +
110088 - atomic64_read(&leader->child_total_time_enabled);
110089 + atomic64_read_unchecked(&leader->child_total_time_enabled);
110090 }
110091
110092 if (read_format & PERF_FORMAT_TOTAL_TIME_RUNNING) {
110093 values[n++] += leader->total_time_running +
110094 - atomic64_read(&leader->child_total_time_running);
110095 + atomic64_read_unchecked(&leader->child_total_time_running);
110096 }
110097
110098 /*
110099 @@ -4478,10 +4485,10 @@ void perf_event_update_userpage(struct perf_event *event)
110100 userpg->offset -= local64_read(&event->hw.prev_count);
110101
110102 userpg->time_enabled = enabled +
110103 - atomic64_read(&event->child_total_time_enabled);
110104 + atomic64_read_unchecked(&event->child_total_time_enabled);
110105
110106 userpg->time_running = running +
110107 - atomic64_read(&event->child_total_time_running);
110108 + atomic64_read_unchecked(&event->child_total_time_running);
110109
110110 arch_perf_update_userpage(event, userpg, now);
110111
110112 @@ -5156,7 +5163,7 @@ perf_output_sample_ustack(struct perf_output_handle *handle, u64 dump_size,
110113
110114 /* Data. */
110115 sp = perf_user_stack_pointer(regs);
110116 - rem = __output_copy_user(handle, (void *) sp, dump_size);
110117 + rem = __output_copy_user(handle, (void __user *) sp, dump_size);
110118 dyn_size = dump_size - rem;
110119
110120 perf_output_skip(handle, rem);
110121 @@ -5247,11 +5254,11 @@ static void perf_output_read_one(struct perf_output_handle *handle,
110122 values[n++] = perf_event_count(event);
110123 if (read_format & PERF_FORMAT_TOTAL_TIME_ENABLED) {
110124 values[n++] = enabled +
110125 - atomic64_read(&event->child_total_time_enabled);
110126 + atomic64_read_unchecked(&event->child_total_time_enabled);
110127 }
110128 if (read_format & PERF_FORMAT_TOTAL_TIME_RUNNING) {
110129 values[n++] = running +
110130 - atomic64_read(&event->child_total_time_running);
110131 + atomic64_read_unchecked(&event->child_total_time_running);
110132 }
110133 if (read_format & PERF_FORMAT_ID)
110134 values[n++] = primary_event_id(event);
110135 @@ -7906,7 +7913,7 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
110136 event->parent = parent_event;
110137
110138 event->ns = get_pid_ns(task_active_pid_ns(current));
110139 - event->id = atomic64_inc_return(&perf_event_id);
110140 + event->id = atomic64_inc_return_unchecked(&perf_event_id);
110141
110142 event->state = PERF_EVENT_STATE_INACTIVE;
110143
110144 @@ -8265,6 +8272,11 @@ SYSCALL_DEFINE5(perf_event_open,
110145 if (flags & ~PERF_FLAG_ALL)
110146 return -EINVAL;
110147
110148 +#ifdef CONFIG_GRKERNSEC_PERF_HARDEN
110149 + if (perf_paranoid_any() && !capable(CAP_SYS_ADMIN))
110150 + return -EACCES;
110151 +#endif
110152 +
110153 err = perf_copy_attr(attr_uptr, &attr);
110154 if (err)
110155 return err;
110156 @@ -8736,10 +8748,10 @@ static void sync_child_event(struct perf_event *child_event,
110157 /*
110158 * Add back the child's count to the parent's count:
110159 */
110160 - atomic64_add(child_val, &parent_event->child_count);
110161 - atomic64_add(child_event->total_time_enabled,
110162 + atomic64_add_unchecked(child_val, &parent_event->child_count);
110163 + atomic64_add_unchecked(child_event->total_time_enabled,
110164 &parent_event->child_total_time_enabled);
110165 - atomic64_add(child_event->total_time_running,
110166 + atomic64_add_unchecked(child_event->total_time_running,
110167 &parent_event->child_total_time_running);
110168
110169 /*
110170 diff --git a/kernel/events/internal.h b/kernel/events/internal.h
110171 index 2bbad9c..056f20c 100644
110172 --- a/kernel/events/internal.h
110173 +++ b/kernel/events/internal.h
110174 @@ -115,10 +115,10 @@ static inline unsigned long perf_aux_size(struct ring_buffer *rb)
110175 return rb->aux_nr_pages << PAGE_SHIFT;
110176 }
110177
110178 -#define DEFINE_OUTPUT_COPY(func_name, memcpy_func) \
110179 +#define DEFINE_OUTPUT_COPY(func_name, memcpy_func, user) \
110180 static inline unsigned long \
110181 func_name(struct perf_output_handle *handle, \
110182 - const void *buf, unsigned long len) \
110183 + const void user *buf, unsigned long len) \
110184 { \
110185 unsigned long size, written; \
110186 \
110187 @@ -151,7 +151,7 @@ memcpy_common(void *dst, const void *src, unsigned long n)
110188 return 0;
110189 }
110190
110191 -DEFINE_OUTPUT_COPY(__output_copy, memcpy_common)
110192 +DEFINE_OUTPUT_COPY(__output_copy, memcpy_common, )
110193
110194 static inline unsigned long
110195 memcpy_skip(void *dst, const void *src, unsigned long n)
110196 @@ -159,7 +159,7 @@ memcpy_skip(void *dst, const void *src, unsigned long n)
110197 return 0;
110198 }
110199
110200 -DEFINE_OUTPUT_COPY(__output_skip, memcpy_skip)
110201 +DEFINE_OUTPUT_COPY(__output_skip, memcpy_skip, )
110202
110203 #ifndef arch_perf_out_copy_user
110204 #define arch_perf_out_copy_user arch_perf_out_copy_user
110205 @@ -177,7 +177,7 @@ arch_perf_out_copy_user(void *dst, const void *src, unsigned long n)
110206 }
110207 #endif
110208
110209 -DEFINE_OUTPUT_COPY(__output_copy_user, arch_perf_out_copy_user)
110210 +DEFINE_OUTPUT_COPY(__output_copy_user, arch_perf_out_copy_user, __user)
110211
110212 /* Callchain handling */
110213 extern struct perf_callchain_entry *
110214 diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c
110215 index 7dad849..d4eb8a5 100644
110216 --- a/kernel/events/uprobes.c
110217 +++ b/kernel/events/uprobes.c
110218 @@ -1689,7 +1689,7 @@ static int is_trap_at_addr(struct mm_struct *mm, unsigned long vaddr)
110219 {
110220 struct page *page;
110221 uprobe_opcode_t opcode;
110222 - int result;
110223 + long result;
110224
110225 pagefault_disable();
110226 result = __copy_from_user_inatomic(&opcode, (void __user*)vaddr,
110227 diff --git a/kernel/exit.c b/kernel/exit.c
110228 index 07110c6..1125445 100644
110229 --- a/kernel/exit.c
110230 +++ b/kernel/exit.c
110231 @@ -171,6 +171,10 @@ void release_task(struct task_struct *p)
110232 struct task_struct *leader;
110233 int zap_leader;
110234 repeat:
110235 +#ifdef CONFIG_NET
110236 + gr_del_task_from_ip_table(p);
110237 +#endif
110238 +
110239 /* don't need to get the RCU readlock here - the process is dead and
110240 * can't be modifying its own credentials. But shut RCU-lockdep up */
110241 rcu_read_lock();
110242 @@ -450,9 +454,8 @@ static struct task_struct *find_alive_thread(struct task_struct *p)
110243 return NULL;
110244 }
110245
110246 +static struct task_struct *find_child_reaper(struct task_struct *father) __must_hold(&tasklist_lock);
110247 static struct task_struct *find_child_reaper(struct task_struct *father)
110248 - __releases(&tasklist_lock)
110249 - __acquires(&tasklist_lock)
110250 {
110251 struct pid_namespace *pid_ns = task_active_pid_ns(father);
110252 struct task_struct *reaper = pid_ns->child_reaper;
110253 @@ -549,6 +552,8 @@ static void reparent_leader(struct task_struct *father, struct task_struct *p,
110254 * jobs, send them a SIGHUP and then a SIGCONT. (POSIX 3.2.2.2)
110255 */
110256 static void forget_original_parent(struct task_struct *father,
110257 + struct list_head *dead) __must_hold(&tasklist_lock);
110258 +static void forget_original_parent(struct task_struct *father,
110259 struct list_head *dead)
110260 {
110261 struct task_struct *p, *t, *reaper;
110262 @@ -656,6 +661,8 @@ void do_exit(long code)
110263 int group_dead;
110264 TASKS_RCU(int tasks_rcu_i);
110265
110266 + set_fs(USER_DS);
110267 +
110268 profile_task_exit(tsk);
110269
110270 WARN_ON(blk_needs_flush_plug(tsk));
110271 @@ -672,7 +679,6 @@ void do_exit(long code)
110272 * mm_release()->clear_child_tid() from writing to a user-controlled
110273 * kernel address.
110274 */
110275 - set_fs(USER_DS);
110276
110277 ptrace_event(PTRACE_EVENT_EXIT, code);
110278
110279 @@ -732,6 +738,9 @@ void do_exit(long code)
110280 tsk->exit_code = code;
110281 taskstats_exit(tsk, group_dead);
110282
110283 + gr_acl_handle_psacct(tsk, code);
110284 + gr_acl_handle_exit();
110285 +
110286 exit_mm(tsk);
110287
110288 if (group_dead)
110289 @@ -851,7 +860,7 @@ SYSCALL_DEFINE1(exit, int, error_code)
110290 * Take down every thread in the group. This is called by fatal signals
110291 * as well as by sys_exit_group (below).
110292 */
110293 -void
110294 +__noreturn void
110295 do_group_exit(int exit_code)
110296 {
110297 struct signal_struct *sig = current->signal;
110298 @@ -968,6 +977,7 @@ static int wait_noreap_copyout(struct wait_opts *wo, struct task_struct *p,
110299 * the lock and this task is uninteresting. If we return nonzero, we have
110300 * released the lock and the system call should return.
110301 */
110302 +static int wait_task_zombie(struct wait_opts *wo, struct task_struct *p) __must_hold(&tasklist_lock);
110303 static int wait_task_zombie(struct wait_opts *wo, struct task_struct *p)
110304 {
110305 int state, retval, status;
110306 @@ -984,6 +994,7 @@ static int wait_task_zombie(struct wait_opts *wo, struct task_struct *p)
110307
110308 get_task_struct(p);
110309 read_unlock(&tasklist_lock);
110310 + __acquire(&tasklist_lock); // XXX sparse can't model conditional release
110311 sched_annotate_sleep();
110312
110313 if ((exit_code & 0x7f) == 0) {
110314 @@ -1006,6 +1017,7 @@ static int wait_task_zombie(struct wait_opts *wo, struct task_struct *p)
110315 * We own this thread, nobody else can reap it.
110316 */
110317 read_unlock(&tasklist_lock);
110318 + __acquire(&tasklist_lock); // XXX sparse can't model conditional release
110319 sched_annotate_sleep();
110320
110321 /*
110322 @@ -1149,6 +1161,8 @@ static int *task_stopped_code(struct task_struct *p, bool ptrace)
110323 * search should terminate.
110324 */
110325 static int wait_task_stopped(struct wait_opts *wo,
110326 + int ptrace, struct task_struct *p) __must_hold(&tasklist_lock);
110327 +static int wait_task_stopped(struct wait_opts *wo,
110328 int ptrace, struct task_struct *p)
110329 {
110330 struct siginfo __user *infop;
110331 @@ -1196,6 +1210,7 @@ unlock_sig:
110332 pid = task_pid_vnr(p);
110333 why = ptrace ? CLD_TRAPPED : CLD_STOPPED;
110334 read_unlock(&tasklist_lock);
110335 + __acquire(&tasklist_lock); // XXX sparse can't model conditional release
110336 sched_annotate_sleep();
110337
110338 if (unlikely(wo->wo_flags & WNOWAIT))
110339 @@ -1233,6 +1248,7 @@ unlock_sig:
110340 * the lock and this task is uninteresting. If we return nonzero, we have
110341 * released the lock and the system call should return.
110342 */
110343 +static int wait_task_continued(struct wait_opts *wo, struct task_struct *p) __must_hold(&tasklist_lock);
110344 static int wait_task_continued(struct wait_opts *wo, struct task_struct *p)
110345 {
110346 int retval;
110347 @@ -1259,6 +1275,7 @@ static int wait_task_continued(struct wait_opts *wo, struct task_struct *p)
110348 pid = task_pid_vnr(p);
110349 get_task_struct(p);
110350 read_unlock(&tasklist_lock);
110351 + __acquire(&tasklist_lock); // XXX sparse can't model conditional release
110352 sched_annotate_sleep();
110353
110354 if (!wo->wo_info) {
110355 @@ -1288,6 +1305,8 @@ static int wait_task_continued(struct wait_opts *wo, struct task_struct *p)
110356 * or another error from security_task_wait(), or still -ECHILD.
110357 */
110358 static int wait_consider_task(struct wait_opts *wo, int ptrace,
110359 + struct task_struct *p) __must_hold(&tasklist_lock);
110360 +static int wait_consider_task(struct wait_opts *wo, int ptrace,
110361 struct task_struct *p)
110362 {
110363 /*
110364 @@ -1413,6 +1432,7 @@ static int wait_consider_task(struct wait_opts *wo, int ptrace,
110365 * ->notask_error is 0 if there were any eligible children,
110366 * or another error from security_task_wait(), or still -ECHILD.
110367 */
110368 +static int do_wait_thread(struct wait_opts *wo, struct task_struct *tsk) __must_hold(&tasklist_lock);
110369 static int do_wait_thread(struct wait_opts *wo, struct task_struct *tsk)
110370 {
110371 struct task_struct *p;
110372 @@ -1427,6 +1447,7 @@ static int do_wait_thread(struct wait_opts *wo, struct task_struct *tsk)
110373 return 0;
110374 }
110375
110376 +static int ptrace_do_wait(struct wait_opts *wo, struct task_struct *tsk) __must_hold(&tasklist_lock);
110377 static int ptrace_do_wait(struct wait_opts *wo, struct task_struct *tsk)
110378 {
110379 struct task_struct *p;
110380 @@ -1490,12 +1511,16 @@ repeat:
110381 tsk = current;
110382 do {
110383 retval = do_wait_thread(wo, tsk);
110384 - if (retval)
110385 + if (retval) {
110386 + __release(&tasklist_lock); // XXX sparse can't model conditional release
110387 goto end;
110388 + }
110389
110390 retval = ptrace_do_wait(wo, tsk);
110391 - if (retval)
110392 + if (retval) {
110393 + __release(&tasklist_lock); // XXX sparse can't model conditional release
110394 goto end;
110395 + }
110396
110397 if (wo->wo_flags & __WNOTHREAD)
110398 break;
110399 diff --git a/kernel/fork.c b/kernel/fork.c
110400 index 1155eac..0c9bd1f 100644
110401 --- a/kernel/fork.c
110402 +++ b/kernel/fork.c
110403 @@ -188,12 +188,54 @@ static void free_thread_info(struct thread_info *ti)
110404 void thread_info_cache_init(void)
110405 {
110406 thread_info_cache = kmem_cache_create("thread_info", THREAD_SIZE,
110407 - THREAD_SIZE, 0, NULL);
110408 + THREAD_SIZE, SLAB_USERCOPY, NULL);
110409 BUG_ON(thread_info_cache == NULL);
110410 }
110411 # endif
110412 #endif
110413
110414 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
110415 +static inline struct thread_info *gr_alloc_thread_info_node(struct task_struct *tsk,
110416 + int node, void **lowmem_stack)
110417 +{
110418 + struct page *pages[THREAD_SIZE / PAGE_SIZE];
110419 + void *ret = NULL;
110420 + unsigned int i;
110421 +
110422 + *lowmem_stack = alloc_thread_info_node(tsk, node);
110423 + if (*lowmem_stack == NULL)
110424 + goto out;
110425 +
110426 + for (i = 0; i < THREAD_SIZE / PAGE_SIZE; i++)
110427 + pages[i] = virt_to_page(*lowmem_stack + (i * PAGE_SIZE));
110428 +
110429 + /* use VM_IOREMAP to gain THREAD_SIZE alignment */
110430 + ret = vmap(pages, THREAD_SIZE / PAGE_SIZE, VM_IOREMAP, PAGE_KERNEL);
110431 + if (ret == NULL) {
110432 + free_thread_info(*lowmem_stack);
110433 + *lowmem_stack = NULL;
110434 + }
110435 +
110436 +out:
110437 + return ret;
110438 +}
110439 +
110440 +static inline void gr_free_thread_info(struct task_struct *tsk, struct thread_info *ti)
110441 +{
110442 + unmap_process_stacks(tsk);
110443 +}
110444 +#else
110445 +static inline struct thread_info *gr_alloc_thread_info_node(struct task_struct *tsk,
110446 + int node, void **lowmem_stack)
110447 +{
110448 + return alloc_thread_info_node(tsk, node);
110449 +}
110450 +static inline void gr_free_thread_info(struct task_struct *tsk, struct thread_info *ti)
110451 +{
110452 + free_thread_info(ti);
110453 +}
110454 +#endif
110455 +
110456 /* SLAB cache for signal_struct structures (tsk->signal) */
110457 static struct kmem_cache *signal_cachep;
110458
110459 @@ -212,18 +254,22 @@ struct kmem_cache *vm_area_cachep;
110460 /* SLAB cache for mm_struct structures (tsk->mm) */
110461 static struct kmem_cache *mm_cachep;
110462
110463 -static void account_kernel_stack(struct thread_info *ti, int account)
110464 +static void account_kernel_stack(struct task_struct *tsk, struct thread_info *ti, int account)
110465 {
110466 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
110467 + struct zone *zone = page_zone(virt_to_page(tsk->lowmem_stack));
110468 +#else
110469 struct zone *zone = page_zone(virt_to_page(ti));
110470 +#endif
110471
110472 mod_zone_page_state(zone, NR_KERNEL_STACK, account);
110473 }
110474
110475 void free_task(struct task_struct *tsk)
110476 {
110477 - account_kernel_stack(tsk->stack, -1);
110478 + account_kernel_stack(tsk, tsk->stack, -1);
110479 arch_release_thread_info(tsk->stack);
110480 - free_thread_info(tsk->stack);
110481 + gr_free_thread_info(tsk, tsk->stack);
110482 rt_mutex_debug_task_free(tsk);
110483 ftrace_graph_exit_task(tsk);
110484 put_seccomp_filter(tsk);
110485 @@ -290,7 +336,7 @@ static void set_max_threads(unsigned int max_threads_suggested)
110486
110487 #ifdef CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT
110488 /* Initialized by the architecture: */
110489 -int arch_task_struct_size __read_mostly;
110490 +size_t arch_task_struct_size __read_mostly;
110491 #endif
110492
110493 void __init fork_init(void)
110494 @@ -335,6 +381,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
110495 {
110496 struct task_struct *tsk;
110497 struct thread_info *ti;
110498 + void *lowmem_stack;
110499 int node = tsk_fork_get_node(orig);
110500 int err;
110501
110502 @@ -342,7 +389,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
110503 if (!tsk)
110504 return NULL;
110505
110506 - ti = alloc_thread_info_node(tsk, node);
110507 + ti = gr_alloc_thread_info_node(tsk, node, &lowmem_stack);
110508 if (!ti)
110509 goto free_tsk;
110510
110511 @@ -351,6 +398,9 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
110512 goto free_ti;
110513
110514 tsk->stack = ti;
110515 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
110516 + tsk->lowmem_stack = lowmem_stack;
110517 +#endif
110518 #ifdef CONFIG_SECCOMP
110519 /*
110520 * We must handle setting up seccomp filters once we're under
110521 @@ -367,7 +417,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
110522 set_task_stack_end_magic(tsk);
110523
110524 #ifdef CONFIG_CC_STACKPROTECTOR
110525 - tsk->stack_canary = get_random_int();
110526 + tsk->stack_canary = pax_get_random_long();
110527 #endif
110528
110529 /*
110530 @@ -382,24 +432,90 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
110531 tsk->task_frag.page = NULL;
110532 tsk->wake_q.next = NULL;
110533
110534 - account_kernel_stack(ti, 1);
110535 + account_kernel_stack(tsk, ti, 1);
110536
110537 return tsk;
110538
110539 free_ti:
110540 - free_thread_info(ti);
110541 + gr_free_thread_info(tsk, ti);
110542 free_tsk:
110543 free_task_struct(tsk);
110544 return NULL;
110545 }
110546
110547 #ifdef CONFIG_MMU
110548 -static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
110549 +static struct vm_area_struct *dup_vma(struct mm_struct *mm, struct mm_struct *oldmm, struct vm_area_struct *mpnt)
110550 +{
110551 + struct vm_area_struct *tmp;
110552 + unsigned long charge;
110553 + struct file *file;
110554 + int retval;
110555 +
110556 + charge = 0;
110557 + if (mpnt->vm_flags & VM_ACCOUNT) {
110558 + unsigned long len = vma_pages(mpnt);
110559 +
110560 + if (security_vm_enough_memory_mm(oldmm, len)) /* sic */
110561 + goto fail_nomem;
110562 + charge = len;
110563 + }
110564 + tmp = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL);
110565 + if (!tmp)
110566 + goto fail_nomem;
110567 + *tmp = *mpnt;
110568 + tmp->vm_mm = mm;
110569 + INIT_LIST_HEAD(&tmp->anon_vma_chain);
110570 + retval = vma_dup_policy(mpnt, tmp);
110571 + if (retval)
110572 + goto fail_nomem_policy;
110573 + if (anon_vma_fork(tmp, mpnt))
110574 + goto fail_nomem_anon_vma_fork;
110575 + tmp->vm_flags &= ~(VM_LOCKED|VM_LOCKONFAULT|VM_UFFD_MISSING|VM_UFFD_WP);
110576 + tmp->vm_next = tmp->vm_prev = NULL;
110577 + tmp->vm_mirror = NULL;
110578 + tmp->vm_userfaultfd_ctx = NULL_VM_UFFD_CTX;
110579 + file = tmp->vm_file;
110580 + if (file) {
110581 + struct inode *inode = file_inode(file);
110582 + struct address_space *mapping = file->f_mapping;
110583 +
110584 + get_file(file);
110585 + if (tmp->vm_flags & VM_DENYWRITE)
110586 + atomic_dec(&inode->i_writecount);
110587 + i_mmap_lock_write(mapping);
110588 + if (tmp->vm_flags & VM_SHARED)
110589 + atomic_inc(&mapping->i_mmap_writable);
110590 + flush_dcache_mmap_lock(mapping);
110591 + /* insert tmp into the share list, just after mpnt */
110592 + vma_interval_tree_insert_after(tmp, mpnt, &mapping->i_mmap);
110593 + flush_dcache_mmap_unlock(mapping);
110594 + i_mmap_unlock_write(mapping);
110595 + }
110596 +
110597 + /*
110598 + * Clear hugetlb-related page reserves for children. This only
110599 + * affects MAP_PRIVATE mappings. Faults generated by the child
110600 + * are not guaranteed to succeed, even if read-only
110601 + */
110602 + if (is_vm_hugetlb_page(tmp))
110603 + reset_vma_resv_huge_pages(tmp);
110604 +
110605 + return tmp;
110606 +
110607 +fail_nomem_anon_vma_fork:
110608 + mpol_put(vma_policy(tmp));
110609 +fail_nomem_policy:
110610 + kmem_cache_free(vm_area_cachep, tmp);
110611 +fail_nomem:
110612 + vm_unacct_memory(charge);
110613 + return NULL;
110614 +}
110615 +
110616 +static __latent_entropy int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
110617 {
110618 struct vm_area_struct *mpnt, *tmp, *prev, **pprev;
110619 struct rb_node **rb_link, *rb_parent;
110620 int retval;
110621 - unsigned long charge;
110622
110623 uprobe_start_dup_mmap();
110624 down_write(&oldmm->mmap_sem);
110625 @@ -430,53 +546,15 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
110626
110627 prev = NULL;
110628 for (mpnt = oldmm->mmap; mpnt; mpnt = mpnt->vm_next) {
110629 - struct file *file;
110630 -
110631 if (mpnt->vm_flags & VM_DONTCOPY) {
110632 vm_stat_account(mm, mpnt->vm_flags, mpnt->vm_file,
110633 -vma_pages(mpnt));
110634 continue;
110635 }
110636 - charge = 0;
110637 - if (mpnt->vm_flags & VM_ACCOUNT) {
110638 - unsigned long len = vma_pages(mpnt);
110639 -
110640 - if (security_vm_enough_memory_mm(oldmm, len)) /* sic */
110641 - goto fail_nomem;
110642 - charge = len;
110643 - }
110644 - tmp = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL);
110645 - if (!tmp)
110646 - goto fail_nomem;
110647 - *tmp = *mpnt;
110648 - INIT_LIST_HEAD(&tmp->anon_vma_chain);
110649 - retval = vma_dup_policy(mpnt, tmp);
110650 - if (retval)
110651 - goto fail_nomem_policy;
110652 - tmp->vm_mm = mm;
110653 - if (anon_vma_fork(tmp, mpnt))
110654 - goto fail_nomem_anon_vma_fork;
110655 - tmp->vm_flags &=
110656 - ~(VM_LOCKED|VM_LOCKONFAULT|VM_UFFD_MISSING|VM_UFFD_WP);
110657 - tmp->vm_next = tmp->vm_prev = NULL;
110658 - tmp->vm_userfaultfd_ctx = NULL_VM_UFFD_CTX;
110659 - file = tmp->vm_file;
110660 - if (file) {
110661 - struct inode *inode = file_inode(file);
110662 - struct address_space *mapping = file->f_mapping;
110663 -
110664 - get_file(file);
110665 - if (tmp->vm_flags & VM_DENYWRITE)
110666 - atomic_dec(&inode->i_writecount);
110667 - i_mmap_lock_write(mapping);
110668 - if (tmp->vm_flags & VM_SHARED)
110669 - atomic_inc(&mapping->i_mmap_writable);
110670 - flush_dcache_mmap_lock(mapping);
110671 - /* insert tmp into the share list, just after mpnt */
110672 - vma_interval_tree_insert_after(tmp, mpnt,
110673 - &mapping->i_mmap);
110674 - flush_dcache_mmap_unlock(mapping);
110675 - i_mmap_unlock_write(mapping);
110676 + tmp = dup_vma(mm, oldmm, mpnt);
110677 + if (!tmp) {
110678 + retval = -ENOMEM;
110679 + goto out;
110680 }
110681
110682 /*
110683 @@ -508,6 +586,38 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
110684 if (retval)
110685 goto out;
110686 }
110687 +
110688 +#ifdef CONFIG_PAX_SEGMEXEC
110689 + if (oldmm->pax_flags & MF_PAX_SEGMEXEC) {
110690 + struct vm_area_struct *mpnt_m;
110691 +
110692 + for (mpnt = oldmm->mmap, mpnt_m = mm->mmap; mpnt; mpnt = mpnt->vm_next) {
110693 + if (mpnt->vm_flags & VM_DONTCOPY)
110694 + continue;
110695 +
110696 + BUG_ON(!mpnt_m || mpnt_m->vm_mirror || mpnt->vm_mm != oldmm || mpnt_m->vm_mm != mm);
110697 +
110698 + if (!mpnt->vm_mirror) {
110699 + mpnt_m = mpnt_m->vm_next;
110700 + continue;
110701 + }
110702 +
110703 + if (mpnt->vm_end <= SEGMEXEC_TASK_SIZE) {
110704 + BUG_ON(mpnt->vm_mirror->vm_mirror != mpnt);
110705 + mpnt->vm_mirror = mpnt_m;
110706 + } else {
110707 + BUG_ON(mpnt->vm_mirror->vm_mirror == mpnt || mpnt->vm_mirror->vm_mirror->vm_mm != mm);
110708 + mpnt_m->vm_mirror = mpnt->vm_mirror->vm_mirror;
110709 + mpnt_m->vm_mirror->vm_mirror = mpnt_m;
110710 + mpnt->vm_mirror->vm_mirror = mpnt;
110711 + }
110712 +
110713 + mpnt_m = mpnt_m->vm_next;
110714 + }
110715 + BUG_ON(mpnt_m);
110716 + }
110717 +#endif
110718 +
110719 /* a new mm has just been created */
110720 arch_dup_mmap(oldmm, mm);
110721 retval = 0;
110722 @@ -517,14 +627,6 @@ out:
110723 up_write(&oldmm->mmap_sem);
110724 uprobe_end_dup_mmap();
110725 return retval;
110726 -fail_nomem_anon_vma_fork:
110727 - mpol_put(vma_policy(tmp));
110728 -fail_nomem_policy:
110729 - kmem_cache_free(vm_area_cachep, tmp);
110730 -fail_nomem:
110731 - retval = -ENOMEM;
110732 - vm_unacct_memory(charge);
110733 - goto out;
110734 }
110735
110736 static inline int mm_alloc_pgd(struct mm_struct *mm)
110737 @@ -799,8 +901,8 @@ struct mm_struct *mm_access(struct task_struct *task, unsigned int mode)
110738 return ERR_PTR(err);
110739
110740 mm = get_task_mm(task);
110741 - if (mm && mm != current->mm &&
110742 - !ptrace_may_access(task, mode)) {
110743 + if (mm && ((mm != current->mm && !ptrace_may_access(task, mode)) ||
110744 + ((mode & PTRACE_MODE_ATTACH) && (gr_handle_proc_ptrace(task) || gr_acl_handle_procpidmem(task))))) {
110745 mmput(mm);
110746 mm = ERR_PTR(-EACCES);
110747 }
110748 @@ -1001,13 +1103,20 @@ static int copy_fs(unsigned long clone_flags, struct task_struct *tsk)
110749 spin_unlock(&fs->lock);
110750 return -EAGAIN;
110751 }
110752 - fs->users++;
110753 + atomic_inc(&fs->users);
110754 spin_unlock(&fs->lock);
110755 return 0;
110756 }
110757 tsk->fs = copy_fs_struct(fs);
110758 if (!tsk->fs)
110759 return -ENOMEM;
110760 + /* Carry through gr_chroot_dentry and is_chrooted instead
110761 + of recomputing it here. Already copied when the task struct
110762 + is duplicated. This allows pivot_root to not be treated as
110763 + a chroot
110764 + */
110765 + //gr_set_chroot_entries(tsk, &tsk->fs->root);
110766 +
110767 return 0;
110768 }
110769
110770 @@ -1240,7 +1349,7 @@ init_task_pid(struct task_struct *task, enum pid_type type, struct pid *pid)
110771 * parts of the process environment (as per the clone
110772 * flags). The actual kick-off is left to the caller.
110773 */
110774 -static struct task_struct *copy_process(unsigned long clone_flags,
110775 +static __latent_entropy struct task_struct *copy_process(unsigned long clone_flags,
110776 unsigned long stack_start,
110777 unsigned long stack_size,
110778 int __user *child_tidptr,
110779 @@ -1312,6 +1421,9 @@ static struct task_struct *copy_process(unsigned long clone_flags,
110780 DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
110781 #endif
110782 retval = -EAGAIN;
110783 +
110784 + gr_learn_resource(p, RLIMIT_NPROC, atomic_read(&p->real_cred->user->processes), 0);
110785 +
110786 if (atomic_read(&p->real_cred->user->processes) >=
110787 task_rlimit(p, RLIMIT_NPROC)) {
110788 if (p->real_cred->user != INIT_USER &&
110789 @@ -1570,6 +1682,11 @@ static struct task_struct *copy_process(unsigned long clone_flags,
110790 goto bad_fork_cancel_cgroup;
110791 }
110792
110793 + /* synchronizes with gr_set_acls()
110794 + we need to call this past the point of no return for fork()
110795 + */
110796 + gr_copy_label(p);
110797 +
110798 if (likely(p->pid)) {
110799 ptrace_init_task(p, (clone_flags & CLONE_PTRACE) || trace);
110800
110801 @@ -1659,6 +1776,8 @@ bad_fork_cleanup_count:
110802 bad_fork_free:
110803 free_task(p);
110804 fork_out:
110805 + gr_log_forkfail(retval);
110806 +
110807 return ERR_PTR(retval);
110808 }
110809
110810 @@ -1721,6 +1840,7 @@ long _do_fork(unsigned long clone_flags,
110811
110812 p = copy_process(clone_flags, stack_start, stack_size,
110813 child_tidptr, NULL, trace, tls);
110814 + add_latent_entropy();
110815 /*
110816 * Do this prior waking up the new thread - the thread pointer
110817 * might get invalid after that point, if the thread exits quickly.
110818 @@ -1737,6 +1857,8 @@ long _do_fork(unsigned long clone_flags,
110819 if (clone_flags & CLONE_PARENT_SETTID)
110820 put_user(nr, parent_tidptr);
110821
110822 + gr_handle_brute_check();
110823 +
110824 if (clone_flags & CLONE_VFORK) {
110825 p->vfork_done = &vfork;
110826 init_completion(&vfork);
110827 @@ -1869,7 +1991,7 @@ void __init proc_caches_init(void)
110828 mm_cachep = kmem_cache_create("mm_struct",
110829 sizeof(struct mm_struct), ARCH_MIN_MMSTRUCT_ALIGN,
110830 SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_NOTRACK, NULL);
110831 - vm_area_cachep = KMEM_CACHE(vm_area_struct, SLAB_PANIC);
110832 + vm_area_cachep = KMEM_CACHE(vm_area_struct, SLAB_PANIC | SLAB_NO_SANITIZE);
110833 mmap_init();
110834 nsproxy_cache_init();
110835 }
110836 @@ -1917,7 +2039,7 @@ static int unshare_fs(unsigned long unshare_flags, struct fs_struct **new_fsp)
110837 return 0;
110838
110839 /* don't need lock here; in the worst case we'll do useless copy */
110840 - if (fs->users == 1)
110841 + if (atomic_read(&fs->users) == 1)
110842 return 0;
110843
110844 *new_fsp = copy_fs_struct(fs);
110845 @@ -2030,7 +2152,8 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags)
110846 fs = current->fs;
110847 spin_lock(&fs->lock);
110848 current->fs = new_fs;
110849 - if (--fs->users)
110850 + gr_set_chroot_entries(current, &current->fs->root);
110851 + if (atomic_dec_return(&fs->users))
110852 new_fs = NULL;
110853 else
110854 new_fs = fs;
110855 @@ -2094,7 +2217,7 @@ int unshare_files(struct files_struct **displaced)
110856 int sysctl_max_threads(struct ctl_table *table, int write,
110857 void __user *buffer, size_t *lenp, loff_t *ppos)
110858 {
110859 - struct ctl_table t;
110860 + ctl_table_no_const t;
110861 int ret;
110862 int threads = max_threads;
110863 int min = MIN_THREADS;
110864 diff --git a/kernel/futex.c b/kernel/futex.c
110865 index 461c72b..b4f4bd8 100644
110866 --- a/kernel/futex.c
110867 +++ b/kernel/futex.c
110868 @@ -202,7 +202,7 @@ struct futex_pi_state {
110869 atomic_t refcount;
110870
110871 union futex_key key;
110872 -};
110873 +} __randomize_layout;
110874
110875 /**
110876 * struct futex_q - The hashed futex queue entry, one per waiting task
110877 @@ -236,7 +236,7 @@ struct futex_q {
110878 struct rt_mutex_waiter *rt_waiter;
110879 union futex_key *requeue_pi_key;
110880 u32 bitset;
110881 -};
110882 +} __randomize_layout;
110883
110884 static const struct futex_q futex_q_init = {
110885 /* list gets initialized in queue_me()*/
110886 @@ -472,6 +472,11 @@ get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key, int rw)
110887 struct page *page, *page_head;
110888 int err, ro = 0;
110889
110890 +#ifdef CONFIG_PAX_SEGMEXEC
110891 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && address >= SEGMEXEC_TASK_SIZE)
110892 + return -EFAULT;
110893 +#endif
110894 +
110895 /*
110896 * The futex address must be "naturally" aligned.
110897 */
110898 @@ -678,7 +683,7 @@ static int cmpxchg_futex_value_locked(u32 *curval, u32 __user *uaddr,
110899
110900 static int get_futex_value_locked(u32 *dest, u32 __user *from)
110901 {
110902 - int ret;
110903 + unsigned long ret;
110904
110905 pagefault_disable();
110906 ret = __copy_from_user_inatomic(dest, from, sizeof(u32));
110907 @@ -3136,6 +3141,7 @@ static void __init futex_detect_cmpxchg(void)
110908 {
110909 #ifndef CONFIG_HAVE_FUTEX_CMPXCHG
110910 u32 curval;
110911 + mm_segment_t oldfs;
110912
110913 /*
110914 * This will fail and we want it. Some arch implementations do
110915 @@ -3147,8 +3153,11 @@ static void __init futex_detect_cmpxchg(void)
110916 * implementation, the non-functional ones will return
110917 * -ENOSYS.
110918 */
110919 + oldfs = get_fs();
110920 + set_fs(USER_DS);
110921 if (cmpxchg_futex_value_locked(&curval, NULL, 0, 0) == -EFAULT)
110922 futex_cmpxchg_enabled = 1;
110923 + set_fs(oldfs);
110924 #endif
110925 }
110926
110927 diff --git a/kernel/futex_compat.c b/kernel/futex_compat.c
110928 index 4ae3232..5adee02 100644
110929 --- a/kernel/futex_compat.c
110930 +++ b/kernel/futex_compat.c
110931 @@ -32,7 +32,7 @@ fetch_robust_entry(compat_uptr_t *uentry, struct robust_list __user **entry,
110932 return 0;
110933 }
110934
110935 -static void __user *futex_uaddr(struct robust_list __user *entry,
110936 +static void __user __intentional_overflow(-1) *futex_uaddr(struct robust_list __user *entry,
110937 compat_long_t futex_offset)
110938 {
110939 compat_uptr_t base = ptr_to_compat(entry);
110940 diff --git a/kernel/gcov/base.c b/kernel/gcov/base.c
110941 index 7080ae1..c9b3761 100644
110942 --- a/kernel/gcov/base.c
110943 +++ b/kernel/gcov/base.c
110944 @@ -123,11 +123,6 @@ void gcov_enable_events(void)
110945 }
110946
110947 #ifdef CONFIG_MODULES
110948 -static inline int within(void *addr, void *start, unsigned long size)
110949 -{
110950 - return ((addr >= start) && (addr < start + size));
110951 -}
110952 -
110953 /* Update list and generate events when modules are unloaded. */
110954 static int gcov_module_notifier(struct notifier_block *nb, unsigned long event,
110955 void *data)
110956 @@ -142,7 +137,7 @@ static int gcov_module_notifier(struct notifier_block *nb, unsigned long event,
110957
110958 /* Remove entries located in module from linked list. */
110959 while ((info = gcov_info_next(info))) {
110960 - if (within(info, mod->module_core, mod->core_size)) {
110961 + if (within_module_core_rw((unsigned long)info, mod)) {
110962 gcov_info_unlink(prev, info);
110963 if (gcov_events_enabled)
110964 gcov_event(GCOV_REMOVE, info);
110965 diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
110966 index 6ead200..0cdeef1 100644
110967 --- a/kernel/irq/manage.c
110968 +++ b/kernel/irq/manage.c
110969 @@ -958,7 +958,7 @@ static int irq_thread(void *data)
110970
110971 action_ret = handler_fn(desc, action);
110972 if (action_ret == IRQ_HANDLED)
110973 - atomic_inc(&desc->threads_handled);
110974 + atomic_inc_unchecked(&desc->threads_handled);
110975 if (action_ret == IRQ_WAKE_THREAD)
110976 irq_wake_secondary(desc, action);
110977
110978 diff --git a/kernel/irq/msi.c b/kernel/irq/msi.c
110979 index 6b0c0b7..9314a9c 100644
110980 --- a/kernel/irq/msi.c
110981 +++ b/kernel/irq/msi.c
110982 @@ -212,16 +212,18 @@ static void msi_domain_update_dom_ops(struct msi_domain_info *info)
110983 return;
110984 }
110985
110986 + pax_open_kernel();
110987 if (ops->get_hwirq == NULL)
110988 - ops->get_hwirq = msi_domain_ops_default.get_hwirq;
110989 + *(void **)&ops->get_hwirq = msi_domain_ops_default.get_hwirq;
110990 if (ops->msi_init == NULL)
110991 - ops->msi_init = msi_domain_ops_default.msi_init;
110992 + *(void **)&ops->msi_init = msi_domain_ops_default.msi_init;
110993 if (ops->msi_check == NULL)
110994 - ops->msi_check = msi_domain_ops_default.msi_check;
110995 + *(void **)&ops->msi_check = msi_domain_ops_default.msi_check;
110996 if (ops->msi_prepare == NULL)
110997 - ops->msi_prepare = msi_domain_ops_default.msi_prepare;
110998 + *(void **)&ops->msi_prepare = msi_domain_ops_default.msi_prepare;
110999 if (ops->set_desc == NULL)
111000 - ops->set_desc = msi_domain_ops_default.set_desc;
111001 + *(void **)&ops->set_desc = msi_domain_ops_default.set_desc;
111002 + pax_close_kernel();
111003 }
111004
111005 static void msi_domain_update_chip_ops(struct msi_domain_info *info)
111006 @@ -229,8 +231,11 @@ static void msi_domain_update_chip_ops(struct msi_domain_info *info)
111007 struct irq_chip *chip = info->chip;
111008
111009 BUG_ON(!chip || !chip->irq_mask || !chip->irq_unmask);
111010 - if (!chip->irq_set_affinity)
111011 - chip->irq_set_affinity = msi_domain_set_affinity;
111012 + if (!chip->irq_set_affinity) {
111013 + pax_open_kernel();
111014 + *(void **)&chip->irq_set_affinity = msi_domain_set_affinity;
111015 + pax_close_kernel();
111016 + }
111017 }
111018
111019 /**
111020 diff --git a/kernel/irq/spurious.c b/kernel/irq/spurious.c
111021 index 3214417..e02594d 100644
111022 --- a/kernel/irq/spurious.c
111023 +++ b/kernel/irq/spurious.c
111024 @@ -336,7 +336,7 @@ void note_interrupt(struct irq_desc *desc, irqreturn_t action_ret)
111025 * count. We just care about the count being
111026 * different than the one we saw before.
111027 */
111028 - handled = atomic_read(&desc->threads_handled);
111029 + handled = atomic_read_unchecked(&desc->threads_handled);
111030 handled |= SPURIOUS_DEFERRED;
111031 if (handled != desc->threads_handled_last) {
111032 action_ret = IRQ_HANDLED;
111033 diff --git a/kernel/jump_label.c b/kernel/jump_label.c
111034 index 05254ee..a2e0725 100644
111035 --- a/kernel/jump_label.c
111036 +++ b/kernel/jump_label.c
111037 @@ -14,6 +14,7 @@
111038 #include <linux/err.h>
111039 #include <linux/static_key.h>
111040 #include <linux/jump_label_ratelimit.h>
111041 +#include <linux/mm.h>
111042
111043 #ifdef HAVE_JUMP_LABEL
111044
111045 @@ -51,7 +52,9 @@ jump_label_sort_entries(struct jump_entry *start, struct jump_entry *stop)
111046
111047 size = (((unsigned long)stop - (unsigned long)start)
111048 / sizeof(struct jump_entry));
111049 + pax_open_kernel();
111050 sort(start, size, sizeof(struct jump_entry), jump_label_cmp, NULL);
111051 + pax_close_kernel();
111052 }
111053
111054 static void jump_label_update(struct static_key *key);
111055 @@ -386,10 +389,12 @@ static void jump_label_invalidate_module_init(struct module *mod)
111056 struct jump_entry *iter_stop = iter_start + mod->num_jump_entries;
111057 struct jump_entry *iter;
111058
111059 + pax_open_kernel();
111060 for (iter = iter_start; iter < iter_stop; iter++) {
111061 if (within_module_init(iter->code, mod))
111062 iter->code = 0;
111063 }
111064 + pax_close_kernel();
111065 }
111066
111067 static int
111068 diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c
111069 index 5c5987f..bc502b0 100644
111070 --- a/kernel/kallsyms.c
111071 +++ b/kernel/kallsyms.c
111072 @@ -11,6 +11,9 @@
111073 * Changed the compression method from stem compression to "table lookup"
111074 * compression (see scripts/kallsyms.c for a more complete description)
111075 */
111076 +#ifdef CONFIG_GRKERNSEC_HIDESYM
111077 +#define __INCLUDED_BY_HIDESYM 1
111078 +#endif
111079 #include <linux/kallsyms.h>
111080 #include <linux/module.h>
111081 #include <linux/init.h>
111082 @@ -54,12 +57,33 @@ extern const unsigned long kallsyms_markers[] __weak;
111083
111084 static inline int is_kernel_inittext(unsigned long addr)
111085 {
111086 + if (system_state != SYSTEM_BOOTING)
111087 + return 0;
111088 +
111089 if (addr >= (unsigned long)_sinittext
111090 && addr <= (unsigned long)_einittext)
111091 return 1;
111092 return 0;
111093 }
111094
111095 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
111096 +#ifdef CONFIG_MODULES
111097 +static inline int is_module_text(unsigned long addr)
111098 +{
111099 + if ((unsigned long)MODULES_EXEC_VADDR <= addr && addr <= (unsigned long)MODULES_EXEC_END)
111100 + return 1;
111101 +
111102 + addr = ktla_ktva(addr);
111103 + return (unsigned long)MODULES_EXEC_VADDR <= addr && addr <= (unsigned long)MODULES_EXEC_END;
111104 +}
111105 +#else
111106 +static inline int is_module_text(unsigned long addr)
111107 +{
111108 + return 0;
111109 +}
111110 +#endif
111111 +#endif
111112 +
111113 static inline int is_kernel_text(unsigned long addr)
111114 {
111115 if ((addr >= (unsigned long)_stext && addr <= (unsigned long)_etext) ||
111116 @@ -70,13 +94,28 @@ static inline int is_kernel_text(unsigned long addr)
111117
111118 static inline int is_kernel(unsigned long addr)
111119 {
111120 +
111121 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
111122 + if (is_kernel_text(addr) || is_kernel_inittext(addr))
111123 + return 1;
111124 +
111125 + if (ktla_ktva((unsigned long)_text) <= addr && addr < (unsigned long)_end)
111126 +#else
111127 if (addr >= (unsigned long)_stext && addr <= (unsigned long)_end)
111128 +#endif
111129 +
111130 return 1;
111131 return in_gate_area_no_mm(addr);
111132 }
111133
111134 static int is_ksym_addr(unsigned long addr)
111135 {
111136 +
111137 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
111138 + if (is_module_text(addr))
111139 + return 0;
111140 +#endif
111141 +
111142 if (all_var)
111143 return is_kernel(addr);
111144
111145 @@ -481,7 +520,6 @@ static unsigned long get_ksymbol_core(struct kallsym_iter *iter)
111146
111147 static void reset_iter(struct kallsym_iter *iter, loff_t new_pos)
111148 {
111149 - iter->name[0] = '\0';
111150 iter->nameoff = get_symbol_offset(new_pos);
111151 iter->pos = new_pos;
111152 }
111153 @@ -529,6 +567,11 @@ static int s_show(struct seq_file *m, void *p)
111154 {
111155 struct kallsym_iter *iter = m->private;
111156
111157 +#ifdef CONFIG_GRKERNSEC_HIDESYM
111158 + if (!uid_eq(current_uid(), GLOBAL_ROOT_UID))
111159 + return 0;
111160 +#endif
111161 +
111162 /* Some debugging symbols have no name. Ignore them. */
111163 if (!iter->name[0])
111164 return 0;
111165 @@ -542,6 +585,7 @@ static int s_show(struct seq_file *m, void *p)
111166 */
111167 type = iter->exported ? toupper(iter->type) :
111168 tolower(iter->type);
111169 +
111170 seq_printf(m, "%pK %c %s\t[%s]\n", (void *)iter->value,
111171 type, iter->name, iter->module_name);
111172 } else
111173 diff --git a/kernel/kcmp.c b/kernel/kcmp.c
111174 index 3a47fa9..bcb17e3 100644
111175 --- a/kernel/kcmp.c
111176 +++ b/kernel/kcmp.c
111177 @@ -100,6 +100,10 @@ SYSCALL_DEFINE5(kcmp, pid_t, pid1, pid_t, pid2, int, type,
111178 struct task_struct *task1, *task2;
111179 int ret;
111180
111181 +#ifdef CONFIG_GRKERNSEC
111182 + return -ENOSYS;
111183 +#endif
111184 +
111185 rcu_read_lock();
111186
111187 /*
111188 diff --git a/kernel/kexec.c b/kernel/kexec.c
111189 index d873b64..61f7c59 100644
111190 --- a/kernel/kexec.c
111191 +++ b/kernel/kexec.c
111192 @@ -224,7 +224,8 @@ COMPAT_SYSCALL_DEFINE4(kexec_load, compat_ulong_t, entry,
111193 compat_ulong_t, flags)
111194 {
111195 struct compat_kexec_segment in;
111196 - struct kexec_segment out, __user *ksegments;
111197 + struct kexec_segment out;
111198 + struct kexec_segment __user *ksegments;
111199 unsigned long i, result;
111200
111201 /* Don't allow clients that don't understand the native
111202 diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c
111203 index 11b64a6..d011095 100644
111204 --- a/kernel/kexec_core.c
111205 +++ b/kernel/kexec_core.c
111206 @@ -851,7 +851,7 @@ int kimage_load_segment(struct kimage *image,
111207
111208 struct kimage *kexec_image;
111209 struct kimage *kexec_crash_image;
111210 -int kexec_load_disabled;
111211 +int kexec_load_disabled __read_only;
111212
111213 void crash_kexec(struct pt_regs *regs)
111214 {
111215 diff --git a/kernel/kmod.c b/kernel/kmod.c
111216 index 0277d12..8c01709 100644
111217 --- a/kernel/kmod.c
111218 +++ b/kernel/kmod.c
111219 @@ -66,7 +66,7 @@ static void free_modprobe_argv(struct subprocess_info *info)
111220 kfree(info->argv);
111221 }
111222
111223 -static int call_modprobe(char *module_name, int wait)
111224 +static int call_modprobe(char *module_name, char *module_param, int wait)
111225 {
111226 struct subprocess_info *info;
111227 static char *envp[] = {
111228 @@ -76,7 +76,7 @@ static int call_modprobe(char *module_name, int wait)
111229 NULL
111230 };
111231
111232 - char **argv = kmalloc(sizeof(char *[5]), GFP_KERNEL);
111233 + char **argv = kmalloc(sizeof(char *[6]), GFP_KERNEL);
111234 if (!argv)
111235 goto out;
111236
111237 @@ -88,7 +88,8 @@ static int call_modprobe(char *module_name, int wait)
111238 argv[1] = "-q";
111239 argv[2] = "--";
111240 argv[3] = module_name; /* check free_modprobe_argv() */
111241 - argv[4] = NULL;
111242 + argv[4] = module_param;
111243 + argv[5] = NULL;
111244
111245 info = call_usermodehelper_setup(modprobe_path, argv, envp, GFP_KERNEL,
111246 NULL, free_modprobe_argv, NULL);
111247 @@ -121,9 +122,8 @@ out:
111248 * If module auto-loading support is disabled then this function
111249 * becomes a no-operation.
111250 */
111251 -int __request_module(bool wait, const char *fmt, ...)
111252 +static int ____request_module(bool wait, char *module_param, const char *fmt, va_list ap)
111253 {
111254 - va_list args;
111255 char module_name[MODULE_NAME_LEN];
111256 unsigned int max_modprobes;
111257 int ret;
111258 @@ -142,9 +142,7 @@ int __request_module(bool wait, const char *fmt, ...)
111259 if (!modprobe_path[0])
111260 return 0;
111261
111262 - va_start(args, fmt);
111263 - ret = vsnprintf(module_name, MODULE_NAME_LEN, fmt, args);
111264 - va_end(args);
111265 + ret = vsnprintf(module_name, MODULE_NAME_LEN, fmt, ap);
111266 if (ret >= MODULE_NAME_LEN)
111267 return -ENAMETOOLONG;
111268
111269 @@ -152,6 +150,20 @@ int __request_module(bool wait, const char *fmt, ...)
111270 if (ret)
111271 return ret;
111272
111273 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
111274 + if (uid_eq(current_uid(), GLOBAL_ROOT_UID)) {
111275 + /* hack to workaround consolekit/udisks stupidity */
111276 + read_lock(&tasklist_lock);
111277 + if (!strcmp(current->comm, "mount") &&
111278 + current->real_parent && !strncmp(current->real_parent->comm, "udisk", 5)) {
111279 + read_unlock(&tasklist_lock);
111280 + printk(KERN_ALERT "grsec: denied attempt to auto-load fs module %.64s by udisks\n", module_name);
111281 + return -EPERM;
111282 + }
111283 + read_unlock(&tasklist_lock);
111284 + }
111285 +#endif
111286 +
111287 /* If modprobe needs a service that is in a module, we get a recursive
111288 * loop. Limit the number of running kmod threads to max_threads/2 or
111289 * MAX_KMOD_CONCURRENT, whichever is the smaller. A cleaner method
111290 @@ -180,16 +192,61 @@ int __request_module(bool wait, const char *fmt, ...)
111291
111292 trace_module_request(module_name, wait, _RET_IP_);
111293
111294 - ret = call_modprobe(module_name, wait ? UMH_WAIT_PROC : UMH_WAIT_EXEC);
111295 + ret = call_modprobe(module_name, module_param, wait ? UMH_WAIT_PROC : UMH_WAIT_EXEC);
111296
111297 atomic_dec(&kmod_concurrent);
111298 return ret;
111299 }
111300 +
111301 +int ___request_module(bool wait, char *module_param, const char *fmt, ...)
111302 +{
111303 + va_list args;
111304 + int ret;
111305 +
111306 + va_start(args, fmt);
111307 + ret = ____request_module(wait, module_param, fmt, args);
111308 + va_end(args);
111309 +
111310 + return ret;
111311 +}
111312 +
111313 +int __request_module(bool wait, const char *fmt, ...)
111314 +{
111315 + va_list args;
111316 + int ret;
111317 +
111318 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
111319 + if (!uid_eq(current_uid(), GLOBAL_ROOT_UID)) {
111320 + char module_param[MODULE_NAME_LEN];
111321 +
111322 + memset(module_param, 0, sizeof(module_param));
111323 +
111324 + snprintf(module_param, sizeof(module_param) - 1, "grsec_modharden_normal%u_", GR_GLOBAL_UID(current_uid()));
111325 +
111326 + va_start(args, fmt);
111327 + ret = ____request_module(wait, module_param, fmt, args);
111328 + va_end(args);
111329 +
111330 + return ret;
111331 + }
111332 +#endif
111333 +
111334 + va_start(args, fmt);
111335 + ret = ____request_module(wait, NULL, fmt, args);
111336 + va_end(args);
111337 +
111338 + return ret;
111339 +}
111340 +
111341 EXPORT_SYMBOL(__request_module);
111342 #endif /* CONFIG_MODULES */
111343
111344 static void call_usermodehelper_freeinfo(struct subprocess_info *info)
111345 {
111346 +#ifdef CONFIG_GRKERNSEC
111347 + kfree(info->path);
111348 + info->path = info->origpath;
111349 +#endif
111350 if (info->cleanup)
111351 (*info->cleanup)(info);
111352 kfree(info);
111353 @@ -228,6 +285,22 @@ static int call_usermodehelper_exec_async(void *data)
111354 */
111355 set_user_nice(current, 0);
111356
111357 +#ifdef CONFIG_GRKERNSEC
111358 + /* this is race-free as far as userland is concerned as we copied
111359 + out the path to be used prior to this point and are now operating
111360 + on that copy
111361 + */
111362 + if ((strncmp(sub_info->path, "/sbin/", 6) && strncmp(sub_info->path, "/usr/lib/", 9) &&
111363 + strncmp(sub_info->path, "/lib/", 5) && strncmp(sub_info->path, "/lib64/", 7) &&
111364 + strncmp(sub_info->path, "/usr/libexec/", 13) && strncmp(sub_info->path, "/usr/bin/", 9) &&
111365 + strncmp(sub_info->path, "/usr/sbin/", 10) &&
111366 + strcmp(sub_info->path, "/usr/share/apport/apport")) || strstr(sub_info->path, "..")) {
111367 + printk(KERN_ALERT "grsec: denied exec of usermode helper binary %.950s located outside of permitted system paths\n", sub_info->path);
111368 + retval = -EPERM;
111369 + goto out;
111370 + }
111371 +#endif
111372 +
111373 retval = -ENOMEM;
111374 new = prepare_kernel_cred(current);
111375 if (!new)
111376 @@ -250,8 +323,8 @@ static int call_usermodehelper_exec_async(void *data)
111377 commit_creds(new);
111378
111379 retval = do_execve(getname_kernel(sub_info->path),
111380 - (const char __user *const __user *)sub_info->argv,
111381 - (const char __user *const __user *)sub_info->envp);
111382 + (const char __user *const __force_user *)sub_info->argv,
111383 + (const char __user *const __force_user *)sub_info->envp);
111384 out:
111385 sub_info->retval = retval;
111386 /*
111387 @@ -287,7 +360,7 @@ static void call_usermodehelper_exec_sync(struct subprocess_info *sub_info)
111388 *
111389 * Thus the __user pointer cast is valid here.
111390 */
111391 - sys_wait4(pid, (int __user *)&ret, 0, NULL);
111392 + sys_wait4(pid, (int __force_user *)&ret, 0, NULL);
111393
111394 /*
111395 * If ret is 0, either call_usermodehelper_exec_async failed and
111396 @@ -528,7 +601,12 @@ struct subprocess_info *call_usermodehelper_setup(char *path, char **argv,
111397 goto out;
111398
111399 INIT_WORK(&sub_info->work, call_usermodehelper_exec_work);
111400 +#ifdef CONFIG_GRKERNSEC
111401 + sub_info->origpath = path;
111402 + sub_info->path = kstrdup(path, gfp_mask);
111403 +#else
111404 sub_info->path = path;
111405 +#endif
111406 sub_info->argv = argv;
111407 sub_info->envp = envp;
111408
111409 @@ -630,7 +708,7 @@ EXPORT_SYMBOL(call_usermodehelper);
111410 static int proc_cap_handler(struct ctl_table *table, int write,
111411 void __user *buffer, size_t *lenp, loff_t *ppos)
111412 {
111413 - struct ctl_table t;
111414 + ctl_table_no_const t;
111415 unsigned long cap_array[_KERNEL_CAPABILITY_U32S];
111416 kernel_cap_t new_cap;
111417 int err, i;
111418 diff --git a/kernel/kprobes.c b/kernel/kprobes.c
111419 index d10ab6b..1725fbd 100644
111420 --- a/kernel/kprobes.c
111421 +++ b/kernel/kprobes.c
111422 @@ -31,6 +31,9 @@
111423 * <jkenisto@us.ibm.com> and Prasanna S Panchamukhi
111424 * <prasanna@in.ibm.com> added function-return probes.
111425 */
111426 +#ifdef CONFIG_GRKERNSEC_HIDESYM
111427 +#define __INCLUDED_BY_HIDESYM 1
111428 +#endif
111429 #include <linux/kprobes.h>
111430 #include <linux/hash.h>
111431 #include <linux/init.h>
111432 @@ -122,12 +125,12 @@ enum kprobe_slot_state {
111433
111434 static void *alloc_insn_page(void)
111435 {
111436 - return module_alloc(PAGE_SIZE);
111437 + return module_alloc_exec(PAGE_SIZE);
111438 }
111439
111440 static void free_insn_page(void *page)
111441 {
111442 - module_memfree(page);
111443 + module_memfree_exec(page);
111444 }
111445
111446 struct kprobe_insn_cache kprobe_insn_slots = {
111447 @@ -2198,11 +2201,11 @@ static void report_probe(struct seq_file *pi, struct kprobe *p,
111448 kprobe_type = "k";
111449
111450 if (sym)
111451 - seq_printf(pi, "%p %s %s+0x%x %s ",
111452 + seq_printf(pi, "%pK %s %s+0x%x %s ",
111453 p->addr, kprobe_type, sym, offset,
111454 (modname ? modname : " "));
111455 else
111456 - seq_printf(pi, "%p %s %p ",
111457 + seq_printf(pi, "%pK %s %pK ",
111458 p->addr, kprobe_type, p->addr);
111459
111460 if (!pp)
111461 @@ -2291,7 +2294,7 @@ static int kprobe_blacklist_seq_show(struct seq_file *m, void *v)
111462 struct kprobe_blacklist_entry *ent =
111463 list_entry(v, struct kprobe_blacklist_entry, list);
111464
111465 - seq_printf(m, "0x%p-0x%p\t%ps\n", (void *)ent->start_addr,
111466 + seq_printf(m, "0x%pK-0x%pK\t%ps\n", (void *)ent->start_addr,
111467 (void *)ent->end_addr, (void *)ent->start_addr);
111468 return 0;
111469 }
111470 diff --git a/kernel/ksysfs.c b/kernel/ksysfs.c
111471 index e83b264..d09fae1 100644
111472 --- a/kernel/ksysfs.c
111473 +++ b/kernel/ksysfs.c
111474 @@ -50,6 +50,8 @@ static ssize_t uevent_helper_store(struct kobject *kobj,
111475 {
111476 if (count+1 > UEVENT_HELPER_PATH_LEN)
111477 return -ENOENT;
111478 + if (!capable(CAP_SYS_ADMIN))
111479 + return -EPERM;
111480 memcpy(uevent_helper, buf, count);
111481 uevent_helper[count] = '\0';
111482 if (count && uevent_helper[count-1] == '\n')
111483 @@ -176,7 +178,7 @@ static ssize_t notes_read(struct file *filp, struct kobject *kobj,
111484 return count;
111485 }
111486
111487 -static struct bin_attribute notes_attr = {
111488 +static bin_attribute_no_const notes_attr __read_only = {
111489 .attr = {
111490 .name = "notes",
111491 .mode = S_IRUGO,
111492 diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
111493 index 60ace56..8392836 100644
111494 --- a/kernel/locking/lockdep.c
111495 +++ b/kernel/locking/lockdep.c
111496 @@ -613,6 +613,10 @@ static int static_obj(void *obj)
111497 end = (unsigned long) &_end,
111498 addr = (unsigned long) obj;
111499
111500 +#ifdef CONFIG_PAX_KERNEXEC
111501 + start = ktla_ktva(start);
111502 +#endif
111503 +
111504 /*
111505 * static variable?
111506 */
111507 @@ -757,6 +761,7 @@ register_lock_class(struct lockdep_map *lock, unsigned int subclass, int force)
111508 if (!static_obj(lock->key)) {
111509 debug_locks_off();
111510 printk("INFO: trying to register non-static key.\n");
111511 + printk("lock:%pS key:%pS.\n", lock, lock->key);
111512 printk("the code is fine but needs lockdep annotation.\n");
111513 printk("turning off the locking correctness validator.\n");
111514 dump_stack();
111515 @@ -3102,7 +3107,7 @@ static int __lock_acquire(struct lockdep_map *lock, unsigned int subclass,
111516 if (!class)
111517 return 0;
111518 }
111519 - atomic_inc((atomic_t *)&class->ops);
111520 + atomic_long_inc_unchecked((atomic_long_unchecked_t *)&class->ops);
111521 if (very_verbose(class)) {
111522 printk("\nacquire class [%p] %s", class->key, class->name);
111523 if (class->name_version > 1)
111524 diff --git a/kernel/locking/lockdep_proc.c b/kernel/locking/lockdep_proc.c
111525 index dbb61a3..2b50dde 100644
111526 --- a/kernel/locking/lockdep_proc.c
111527 +++ b/kernel/locking/lockdep_proc.c
111528 @@ -65,7 +65,7 @@ static int l_show(struct seq_file *m, void *v)
111529 return 0;
111530 }
111531
111532 - seq_printf(m, "%p", class->key);
111533 + seq_printf(m, "%pK", class->key);
111534 #ifdef CONFIG_DEBUG_LOCKDEP
111535 seq_printf(m, " OPS:%8ld", class->ops);
111536 #endif
111537 @@ -83,7 +83,7 @@ static int l_show(struct seq_file *m, void *v)
111538
111539 list_for_each_entry(entry, &class->locks_after, entry) {
111540 if (entry->distance == 1) {
111541 - seq_printf(m, " -> [%p] ", entry->class->key);
111542 + seq_printf(m, " -> [%pK] ", entry->class->key);
111543 print_name(m, entry->class);
111544 seq_puts(m, "\n");
111545 }
111546 @@ -152,7 +152,7 @@ static int lc_show(struct seq_file *m, void *v)
111547 if (!class->key)
111548 continue;
111549
111550 - seq_printf(m, "[%p] ", class->key);
111551 + seq_printf(m, "[%pK] ", class->key);
111552 print_name(m, class);
111553 seq_puts(m, "\n");
111554 }
111555 @@ -508,7 +508,7 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
111556 if (!i)
111557 seq_line(m, '-', 40-namelen, namelen);
111558
111559 - snprintf(ip, sizeof(ip), "[<%p>]",
111560 + snprintf(ip, sizeof(ip), "[<%pK>]",
111561 (void *)class->contention_point[i]);
111562 seq_printf(m, "%40s %14lu %29s %pS\n",
111563 name, stats->contention_point[i],
111564 @@ -523,7 +523,7 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
111565 if (!i)
111566 seq_line(m, '-', 40-namelen, namelen);
111567
111568 - snprintf(ip, sizeof(ip), "[<%p>]",
111569 + snprintf(ip, sizeof(ip), "[<%pK>]",
111570 (void *)class->contending_point[i]);
111571 seq_printf(m, "%40s %14lu %29s %pS\n",
111572 name, stats->contending_point[i],
111573 diff --git a/kernel/locking/mutex-debug.c b/kernel/locking/mutex-debug.c
111574 index 3ef3736..9c951fa 100644
111575 --- a/kernel/locking/mutex-debug.c
111576 +++ b/kernel/locking/mutex-debug.c
111577 @@ -49,21 +49,21 @@ void debug_mutex_free_waiter(struct mutex_waiter *waiter)
111578 }
111579
111580 void debug_mutex_add_waiter(struct mutex *lock, struct mutex_waiter *waiter,
111581 - struct thread_info *ti)
111582 + struct task_struct *task)
111583 {
111584 SMP_DEBUG_LOCKS_WARN_ON(!spin_is_locked(&lock->wait_lock));
111585
111586 /* Mark the current thread as blocked on the lock: */
111587 - ti->task->blocked_on = waiter;
111588 + task->blocked_on = waiter;
111589 }
111590
111591 void mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,
111592 - struct thread_info *ti)
111593 + struct task_struct *task)
111594 {
111595 DEBUG_LOCKS_WARN_ON(list_empty(&waiter->list));
111596 - DEBUG_LOCKS_WARN_ON(waiter->task != ti->task);
111597 - DEBUG_LOCKS_WARN_ON(ti->task->blocked_on != waiter);
111598 - ti->task->blocked_on = NULL;
111599 + DEBUG_LOCKS_WARN_ON(waiter->task != task);
111600 + DEBUG_LOCKS_WARN_ON(task->blocked_on != waiter);
111601 + task->blocked_on = NULL;
111602
111603 list_del_init(&waiter->list);
111604 waiter->task = NULL;
111605 diff --git a/kernel/locking/mutex-debug.h b/kernel/locking/mutex-debug.h
111606 index 0799fd3..d06ae3b 100644
111607 --- a/kernel/locking/mutex-debug.h
111608 +++ b/kernel/locking/mutex-debug.h
111609 @@ -20,9 +20,9 @@ extern void debug_mutex_wake_waiter(struct mutex *lock,
111610 extern void debug_mutex_free_waiter(struct mutex_waiter *waiter);
111611 extern void debug_mutex_add_waiter(struct mutex *lock,
111612 struct mutex_waiter *waiter,
111613 - struct thread_info *ti);
111614 + struct task_struct *task);
111615 extern void mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,
111616 - struct thread_info *ti);
111617 + struct task_struct *task);
111618 extern void debug_mutex_unlock(struct mutex *lock);
111619 extern void debug_mutex_init(struct mutex *lock, const char *name,
111620 struct lock_class_key *key);
111621 diff --git a/kernel/locking/mutex.c b/kernel/locking/mutex.c
111622 index 0551c21..f753f95 100644
111623 --- a/kernel/locking/mutex.c
111624 +++ b/kernel/locking/mutex.c
111625 @@ -534,7 +534,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,
111626 goto skip_wait;
111627
111628 debug_mutex_lock_common(lock, &waiter);
111629 - debug_mutex_add_waiter(lock, &waiter, task_thread_info(task));
111630 + debug_mutex_add_waiter(lock, &waiter, task);
111631
111632 /* add waiting tasks to the end of the waitqueue (FIFO): */
111633 list_add_tail(&waiter.list, &lock->wait_list);
111634 @@ -581,7 +581,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,
111635 }
111636 __set_task_state(task, TASK_RUNNING);
111637
111638 - mutex_remove_waiter(lock, &waiter, current_thread_info());
111639 + mutex_remove_waiter(lock, &waiter, task);
111640 /* set it to 0 if there are no waiters left: */
111641 if (likely(list_empty(&lock->wait_list)))
111642 atomic_set(&lock->count, 0);
111643 @@ -602,7 +602,7 @@ skip_wait:
111644 return 0;
111645
111646 err:
111647 - mutex_remove_waiter(lock, &waiter, task_thread_info(task));
111648 + mutex_remove_waiter(lock, &waiter, task);
111649 spin_unlock_mutex(&lock->wait_lock, flags);
111650 debug_mutex_free_waiter(&waiter);
111651 mutex_release(&lock->dep_map, 1, ip);
111652 diff --git a/kernel/module.c b/kernel/module.c
111653 index 0e5c711..540d4d4 100644
111654 --- a/kernel/module.c
111655 +++ b/kernel/module.c
111656 @@ -59,6 +59,7 @@
111657 #include <linux/jump_label.h>
111658 #include <linux/pfn.h>
111659 #include <linux/bsearch.h>
111660 +#include <linux/grsecurity.h>
111661 #include <uapi/linux/module.h>
111662 #include "module-internal.h"
111663
111664 @@ -108,7 +109,7 @@ static LIST_HEAD(modules);
111665 * Use a latched RB-tree for __module_address(); this allows us to use
111666 * RCU-sched lookups of the address from any context.
111667 *
111668 - * Because modules have two address ranges: init and core, we need two
111669 + * Because modules have four address ranges: init_{rw,rx} and core_{rw,rx}, we need four
111670 * latch_tree_nodes entries. Therefore we need the back-pointer from
111671 * mod_tree_node.
111672 *
111673 @@ -125,10 +126,14 @@ static __always_inline unsigned long __mod_tree_val(struct latch_tree_node *n)
111674 struct mod_tree_node *mtn = container_of(n, struct mod_tree_node, node);
111675 struct module *mod = mtn->mod;
111676
111677 - if (unlikely(mtn == &mod->mtn_init))
111678 - return (unsigned long)mod->module_init;
111679 + if (unlikely(mtn == &mod->mtn_init_rw))
111680 + return (unsigned long)mod->module_init_rw;
111681 + if (unlikely(mtn == &mod->mtn_init_rx))
111682 + return (unsigned long)mod->module_init_rx;
111683
111684 - return (unsigned long)mod->module_core;
111685 + if (unlikely(mtn == &mod->mtn_core_rw))
111686 + return (unsigned long)mod->module_core_rw;
111687 + return (unsigned long)mod->module_core_rx;
111688 }
111689
111690 static __always_inline unsigned long __mod_tree_size(struct latch_tree_node *n)
111691 @@ -136,10 +141,14 @@ static __always_inline unsigned long __mod_tree_size(struct latch_tree_node *n)
111692 struct mod_tree_node *mtn = container_of(n, struct mod_tree_node, node);
111693 struct module *mod = mtn->mod;
111694
111695 - if (unlikely(mtn == &mod->mtn_init))
111696 - return (unsigned long)mod->init_size;
111697 + if (unlikely(mtn == &mod->mtn_init_rw))
111698 + return (unsigned long)mod->init_size_rw;
111699 + if (unlikely(mtn == &mod->mtn_init_rx))
111700 + return (unsigned long)mod->init_size_rx;
111701
111702 - return (unsigned long)mod->core_size;
111703 + if (unlikely(mtn == &mod->mtn_core_rw))
111704 + return (unsigned long)mod->core_size_rw;
111705 + return (unsigned long)mod->core_size_rx;
111706 }
111707
111708 static __always_inline bool
111709 @@ -172,14 +181,19 @@ static const struct latch_tree_ops mod_tree_ops = {
111710
111711 static struct mod_tree_root {
111712 struct latch_tree_root root;
111713 - unsigned long addr_min;
111714 - unsigned long addr_max;
111715 + unsigned long addr_min_rw;
111716 + unsigned long addr_min_rx;
111717 + unsigned long addr_max_rw;
111718 + unsigned long addr_max_rx;
111719 } mod_tree __cacheline_aligned = {
111720 - .addr_min = -1UL,
111721 + .addr_min_rw = -1UL,
111722 + .addr_min_rx = -1UL,
111723 };
111724
111725 -#define module_addr_min mod_tree.addr_min
111726 -#define module_addr_max mod_tree.addr_max
111727 +#define module_addr_min_rw mod_tree.addr_min_rw
111728 +#define module_addr_min_rx mod_tree.addr_min_rx
111729 +#define module_addr_max_rw mod_tree.addr_max_rw
111730 +#define module_addr_max_rx mod_tree.addr_max_rx
111731
111732 static noinline void __mod_tree_insert(struct mod_tree_node *node)
111733 {
111734 @@ -197,23 +211,31 @@ static void __mod_tree_remove(struct mod_tree_node *node)
111735 */
111736 static void mod_tree_insert(struct module *mod)
111737 {
111738 - mod->mtn_core.mod = mod;
111739 - mod->mtn_init.mod = mod;
111740 + mod->mtn_core_rw.mod = mod;
111741 + mod->mtn_core_rx.mod = mod;
111742 + mod->mtn_init_rw.mod = mod;
111743 + mod->mtn_init_rx.mod = mod;
111744
111745 - __mod_tree_insert(&mod->mtn_core);
111746 - if (mod->init_size)
111747 - __mod_tree_insert(&mod->mtn_init);
111748 + __mod_tree_insert(&mod->mtn_core_rw);
111749 + __mod_tree_insert(&mod->mtn_core_rx);
111750 + if (mod->init_size_rw)
111751 + __mod_tree_insert(&mod->mtn_init_rw);
111752 + if (mod->init_size_rx)
111753 + __mod_tree_insert(&mod->mtn_init_rx);
111754 }
111755
111756 static void mod_tree_remove_init(struct module *mod)
111757 {
111758 - if (mod->init_size)
111759 - __mod_tree_remove(&mod->mtn_init);
111760 + if (mod->init_size_rw)
111761 + __mod_tree_remove(&mod->mtn_init_rw);
111762 + if (mod->init_size_rx)
111763 + __mod_tree_remove(&mod->mtn_init_rx);
111764 }
111765
111766 static void mod_tree_remove(struct module *mod)
111767 {
111768 - __mod_tree_remove(&mod->mtn_core);
111769 + __mod_tree_remove(&mod->mtn_core_rw);
111770 + __mod_tree_remove(&mod->mtn_core_rx);
111771 mod_tree_remove_init(mod);
111772 }
111773
111774 @@ -230,7 +252,8 @@ static struct module *mod_find(unsigned long addr)
111775
111776 #else /* MODULES_TREE_LOOKUP */
111777
111778 -static unsigned long module_addr_min = -1UL, module_addr_max = 0;
111779 +static unsigned long module_addr_min_rw = -1UL, module_addr_max_rw = 0;
111780 +static unsigned long module_addr_min_rx = -1UL, module_addr_max_rx = 0;
111781
111782 static void mod_tree_insert(struct module *mod) { }
111783 static void mod_tree_remove_init(struct module *mod) { }
111784 @@ -254,22 +277,36 @@ static struct module *mod_find(unsigned long addr)
111785 * Bounds of module text, for speeding up __module_address.
111786 * Protected by module_mutex.
111787 */
111788 -static void __mod_update_bounds(void *base, unsigned int size)
111789 +static void __mod_update_bounds_rw(void *base, unsigned int size)
111790 {
111791 unsigned long min = (unsigned long)base;
111792 unsigned long max = min + size;
111793
111794 - if (min < module_addr_min)
111795 - module_addr_min = min;
111796 - if (max > module_addr_max)
111797 - module_addr_max = max;
111798 + if (min < module_addr_min_rw)
111799 + module_addr_min_rw = min;
111800 + if (max > module_addr_max_rw)
111801 + module_addr_max_rw = max;
111802 +}
111803 +
111804 +static void __mod_update_bounds_rx(void *base, unsigned int size)
111805 +{
111806 + unsigned long min = (unsigned long)base;
111807 + unsigned long max = min + size;
111808 +
111809 + if (min < module_addr_min_rx)
111810 + module_addr_min_rx = min;
111811 + if (max > module_addr_max_rx)
111812 + module_addr_max_rx = max;
111813 }
111814
111815 static void mod_update_bounds(struct module *mod)
111816 {
111817 - __mod_update_bounds(mod->module_core, mod->core_size);
111818 - if (mod->init_size)
111819 - __mod_update_bounds(mod->module_init, mod->init_size);
111820 + __mod_update_bounds_rw(mod->module_core_rw, mod->core_size_rw);
111821 + __mod_update_bounds_rx(mod->module_core_rx, mod->core_size_rx);
111822 + if (mod->init_size_rw)
111823 + __mod_update_bounds_rw(mod->module_init_rw, mod->init_size_rw);
111824 + if (mod->init_size_rx)
111825 + __mod_update_bounds_rx(mod->module_init_rx, mod->init_size_rx);
111826 }
111827
111828 #ifdef CONFIG_KGDB_KDB
111829 @@ -298,7 +335,7 @@ module_param(sig_enforce, bool_enable_only, 0644);
111830 #endif /* !CONFIG_MODULE_SIG_FORCE */
111831
111832 /* Block module loading/unloading? */
111833 -int modules_disabled = 0;
111834 +int modules_disabled __read_only = 0;
111835 core_param(nomodule, modules_disabled, bint, 0);
111836
111837 /* Waiting for a module to finish initializing? */
111838 @@ -476,7 +513,7 @@ bool each_symbol_section(bool (*fn)(const struct symsearch *arr,
111839 return true;
111840
111841 list_for_each_entry_rcu(mod, &modules, list) {
111842 - struct symsearch arr[] = {
111843 + struct symsearch modarr[] = {
111844 { mod->syms, mod->syms + mod->num_syms, mod->crcs,
111845 NOT_GPL_ONLY, false },
111846 { mod->gpl_syms, mod->gpl_syms + mod->num_gpl_syms,
111847 @@ -501,7 +538,7 @@ bool each_symbol_section(bool (*fn)(const struct symsearch *arr,
111848 if (mod->state == MODULE_STATE_UNFORMED)
111849 continue;
111850
111851 - if (each_symbol_in_section(arr, ARRAY_SIZE(arr), mod, fn, data))
111852 + if (each_symbol_in_section(modarr, ARRAY_SIZE(modarr), mod, fn, data))
111853 return true;
111854 }
111855 return false;
111856 @@ -647,7 +684,7 @@ static int percpu_modalloc(struct module *mod, struct load_info *info)
111857 if (!pcpusec->sh_size)
111858 return 0;
111859
111860 - if (align > PAGE_SIZE) {
111861 + if (align-1 >= PAGE_SIZE) {
111862 pr_warn("%s: per-cpu alignment %li > %li\n",
111863 mod->name, align, PAGE_SIZE);
111864 align = PAGE_SIZE;
111865 @@ -1217,7 +1254,7 @@ struct module_attribute module_uevent =
111866 static ssize_t show_coresize(struct module_attribute *mattr,
111867 struct module_kobject *mk, char *buffer)
111868 {
111869 - return sprintf(buffer, "%u\n", mk->mod->core_size);
111870 + return sprintf(buffer, "%u\n", mk->mod->core_size_rx + mk->mod->core_size_rw);
111871 }
111872
111873 static struct module_attribute modinfo_coresize =
111874 @@ -1226,7 +1263,7 @@ static struct module_attribute modinfo_coresize =
111875 static ssize_t show_initsize(struct module_attribute *mattr,
111876 struct module_kobject *mk, char *buffer)
111877 {
111878 - return sprintf(buffer, "%u\n", mk->mod->init_size);
111879 + return sprintf(buffer, "%u\n", mk->mod->init_size_rx + mk->mod->init_size_rw);
111880 }
111881
111882 static struct module_attribute modinfo_initsize =
111883 @@ -1318,12 +1355,29 @@ static int check_version(Elf_Shdr *sechdrs,
111884 goto bad_version;
111885 }
111886
111887 +#ifdef CONFIG_GRKERNSEC_RANDSTRUCT
111888 + /*
111889 + * avoid potentially printing jibberish on attempted load
111890 + * of a module randomized with a different seed
111891 + */
111892 + pr_warn("no symbol version for %s\n", symname);
111893 +#else
111894 pr_warn("%s: no symbol version for %s\n", mod->name, symname);
111895 +#endif
111896 return 0;
111897
111898 bad_version:
111899 +#ifdef CONFIG_GRKERNSEC_RANDSTRUCT
111900 + /*
111901 + * avoid potentially printing jibberish on attempted load
111902 + * of a module randomized with a different seed
111903 + */
111904 + pr_warn("attempted module disagrees about version of symbol %s\n",
111905 + symname);
111906 +#else
111907 pr_warn("%s: disagrees about version of symbol %s\n",
111908 mod->name, symname);
111909 +#endif
111910 return 0;
111911 }
111912
111913 @@ -1451,7 +1505,7 @@ resolve_symbol_wait(struct module *mod,
111914 */
111915 #ifdef CONFIG_SYSFS
111916
111917 -#ifdef CONFIG_KALLSYMS
111918 +#if defined(CONFIG_KALLSYMS) && !defined(CONFIG_GRKERNSEC_HIDESYM)
111919 static inline bool sect_empty(const Elf_Shdr *sect)
111920 {
111921 return !(sect->sh_flags & SHF_ALLOC) || sect->sh_size == 0;
111922 @@ -1589,7 +1643,7 @@ static void add_notes_attrs(struct module *mod, const struct load_info *info)
111923 {
111924 unsigned int notes, loaded, i;
111925 struct module_notes_attrs *notes_attrs;
111926 - struct bin_attribute *nattr;
111927 + bin_attribute_no_const *nattr;
111928
111929 /* failed to create section attributes, so can't create notes */
111930 if (!mod->sect_attrs)
111931 @@ -1701,7 +1755,7 @@ static void del_usage_links(struct module *mod)
111932 static int module_add_modinfo_attrs(struct module *mod)
111933 {
111934 struct module_attribute *attr;
111935 - struct module_attribute *temp_attr;
111936 + module_attribute_no_const *temp_attr;
111937 int error = 0;
111938 int i;
111939
111940 @@ -1918,21 +1972,21 @@ static void set_section_ro_nx(void *base,
111941
111942 static void unset_module_core_ro_nx(struct module *mod)
111943 {
111944 - set_page_attributes(mod->module_core + mod->core_text_size,
111945 - mod->module_core + mod->core_size,
111946 + set_page_attributes(mod->module_core_rw,
111947 + mod->module_core_rw + mod->core_size_rw,
111948 set_memory_x);
111949 - set_page_attributes(mod->module_core,
111950 - mod->module_core + mod->core_ro_size,
111951 + set_page_attributes(mod->module_core_rx,
111952 + mod->module_core_rx + mod->core_size_rx,
111953 set_memory_rw);
111954 }
111955
111956 static void unset_module_init_ro_nx(struct module *mod)
111957 {
111958 - set_page_attributes(mod->module_init + mod->init_text_size,
111959 - mod->module_init + mod->init_size,
111960 + set_page_attributes(mod->module_init_rw,
111961 + mod->module_init_rw + mod->init_size_rw,
111962 set_memory_x);
111963 - set_page_attributes(mod->module_init,
111964 - mod->module_init + mod->init_ro_size,
111965 + set_page_attributes(mod->module_init_rx,
111966 + mod->module_init_rx + mod->init_size_rx,
111967 set_memory_rw);
111968 }
111969
111970 @@ -1945,14 +1999,14 @@ void set_all_modules_text_rw(void)
111971 list_for_each_entry_rcu(mod, &modules, list) {
111972 if (mod->state == MODULE_STATE_UNFORMED)
111973 continue;
111974 - if ((mod->module_core) && (mod->core_text_size)) {
111975 - set_page_attributes(mod->module_core,
111976 - mod->module_core + mod->core_text_size,
111977 + if ((mod->module_core_rx) && (mod->core_size_rx)) {
111978 + set_page_attributes(mod->module_core_rx,
111979 + mod->module_core_rx + mod->core_size_rx,
111980 set_memory_rw);
111981 }
111982 - if ((mod->module_init) && (mod->init_text_size)) {
111983 - set_page_attributes(mod->module_init,
111984 - mod->module_init + mod->init_text_size,
111985 + if ((mod->module_init_rx) && (mod->init_size_rx)) {
111986 + set_page_attributes(mod->module_init_rx,
111987 + mod->module_init_rx + mod->init_size_rx,
111988 set_memory_rw);
111989 }
111990 }
111991 @@ -1968,14 +2022,14 @@ void set_all_modules_text_ro(void)
111992 list_for_each_entry_rcu(mod, &modules, list) {
111993 if (mod->state == MODULE_STATE_UNFORMED)
111994 continue;
111995 - if ((mod->module_core) && (mod->core_text_size)) {
111996 - set_page_attributes(mod->module_core,
111997 - mod->module_core + mod->core_text_size,
111998 + if ((mod->module_core_rx) && (mod->core_size_rx)) {
111999 + set_page_attributes(mod->module_core_rx,
112000 + mod->module_core_rx + mod->core_size_rx,
112001 set_memory_ro);
112002 }
112003 - if ((mod->module_init) && (mod->init_text_size)) {
112004 - set_page_attributes(mod->module_init,
112005 - mod->module_init + mod->init_text_size,
112006 + if ((mod->module_init_rx) && (mod->init_size_rx)) {
112007 + set_page_attributes(mod->module_init_rx,
112008 + mod->module_init_rx + mod->init_size_rx,
112009 set_memory_ro);
112010 }
112011 }
112012 @@ -1984,7 +2038,15 @@ void set_all_modules_text_ro(void)
112013 #else
112014 static inline void set_section_ro_nx(void *base, unsigned long text_size, unsigned long ro_size, unsigned long total_size) { }
112015 static void unset_module_core_ro_nx(struct module *mod) { }
112016 -static void unset_module_init_ro_nx(struct module *mod) { }
112017 +static void unset_module_init_ro_nx(struct module *mod)
112018 +{
112019 +
112020 +#ifdef CONFIG_PAX_KERNEXEC
112021 + set_memory_nx((unsigned long)mod->module_init_rx, PFN_UP(mod->init_size_rx));
112022 + set_memory_rw((unsigned long)mod->module_init_rx, PFN_UP(mod->init_size_rx));
112023 +#endif
112024 +
112025 +}
112026 #endif
112027
112028 void __weak module_memfree(void *module_region)
112029 @@ -2039,16 +2101,19 @@ static void free_module(struct module *mod)
112030 /* This may be NULL, but that's OK */
112031 unset_module_init_ro_nx(mod);
112032 module_arch_freeing_init(mod);
112033 - module_memfree(mod->module_init);
112034 + module_memfree(mod->module_init_rw);
112035 + module_memfree_exec(mod->module_init_rx);
112036 kfree(mod->args);
112037 percpu_modfree(mod);
112038
112039 /* Free lock-classes; relies on the preceding sync_rcu(). */
112040 - lockdep_free_key_range(mod->module_core, mod->core_size);
112041 + lockdep_free_key_range(mod->module_core_rx, mod->core_size_rx);
112042 + lockdep_free_key_range(mod->module_core_rw, mod->core_size_rw);
112043
112044 /* Finally, free the core (containing the module structure) */
112045 unset_module_core_ro_nx(mod);
112046 - module_memfree(mod->module_core);
112047 + module_memfree_exec(mod->module_core_rx);
112048 + module_memfree(mod->module_core_rw);
112049
112050 #ifdef CONFIG_MPU
112051 update_protections(current->mm);
112052 @@ -2117,9 +2182,31 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
112053 int ret = 0;
112054 const struct kernel_symbol *ksym;
112055
112056 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
112057 + int is_fs_load = 0;
112058 + int register_filesystem_found = 0;
112059 + char *p;
112060 +
112061 + p = strstr(mod->args, "grsec_modharden_fs");
112062 + if (p) {
112063 + char *endptr = p + sizeof("grsec_modharden_fs") - 1;
112064 + /* copy \0 as well */
112065 + memmove(p, endptr, strlen(mod->args) - (unsigned int)(endptr - mod->args) + 1);
112066 + is_fs_load = 1;
112067 + }
112068 +#endif
112069 +
112070 for (i = 1; i < symsec->sh_size / sizeof(Elf_Sym); i++) {
112071 const char *name = info->strtab + sym[i].st_name;
112072
112073 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
112074 + /* it's a real shame this will never get ripped and copied
112075 + upstream! ;(
112076 + */
112077 + if (is_fs_load && !strcmp(name, "register_filesystem"))
112078 + register_filesystem_found = 1;
112079 +#endif
112080 +
112081 switch (sym[i].st_shndx) {
112082 case SHN_COMMON:
112083 /* Ignore common symbols */
112084 @@ -2144,7 +2231,9 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
112085 ksym = resolve_symbol_wait(mod, info, name);
112086 /* Ok if resolved. */
112087 if (ksym && !IS_ERR(ksym)) {
112088 + pax_open_kernel();
112089 sym[i].st_value = ksym->value;
112090 + pax_close_kernel();
112091 break;
112092 }
112093
112094 @@ -2163,11 +2252,20 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
112095 secbase = (unsigned long)mod_percpu(mod);
112096 else
112097 secbase = info->sechdrs[sym[i].st_shndx].sh_addr;
112098 + pax_open_kernel();
112099 sym[i].st_value += secbase;
112100 + pax_close_kernel();
112101 break;
112102 }
112103 }
112104
112105 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
112106 + if (is_fs_load && !register_filesystem_found) {
112107 + printk(KERN_ALERT "grsec: Denied attempt to load non-fs module %.64s through mount\n", mod->name);
112108 + ret = -EPERM;
112109 + }
112110 +#endif
112111 +
112112 return ret;
112113 }
112114
112115 @@ -2251,22 +2349,12 @@ static void layout_sections(struct module *mod, struct load_info *info)
112116 || s->sh_entsize != ~0UL
112117 || strstarts(sname, ".init"))
112118 continue;
112119 - s->sh_entsize = get_offset(mod, &mod->core_size, s, i);
112120 + if ((s->sh_flags & SHF_WRITE) || !(s->sh_flags & SHF_ALLOC))
112121 + s->sh_entsize = get_offset(mod, &mod->core_size_rw, s, i);
112122 + else
112123 + s->sh_entsize = get_offset(mod, &mod->core_size_rx, s, i);
112124 pr_debug("\t%s\n", sname);
112125 }
112126 - switch (m) {
112127 - case 0: /* executable */
112128 - mod->core_size = debug_align(mod->core_size);
112129 - mod->core_text_size = mod->core_size;
112130 - break;
112131 - case 1: /* RO: text and ro-data */
112132 - mod->core_size = debug_align(mod->core_size);
112133 - mod->core_ro_size = mod->core_size;
112134 - break;
112135 - case 3: /* whole core */
112136 - mod->core_size = debug_align(mod->core_size);
112137 - break;
112138 - }
112139 }
112140
112141 pr_debug("Init section allocation order:\n");
112142 @@ -2280,23 +2368,13 @@ static void layout_sections(struct module *mod, struct load_info *info)
112143 || s->sh_entsize != ~0UL
112144 || !strstarts(sname, ".init"))
112145 continue;
112146 - s->sh_entsize = (get_offset(mod, &mod->init_size, s, i)
112147 - | INIT_OFFSET_MASK);
112148 + if ((s->sh_flags & SHF_WRITE) || !(s->sh_flags & SHF_ALLOC))
112149 + s->sh_entsize = get_offset(mod, &mod->init_size_rw, s, i);
112150 + else
112151 + s->sh_entsize = get_offset(mod, &mod->init_size_rx, s, i);
112152 + s->sh_entsize |= INIT_OFFSET_MASK;
112153 pr_debug("\t%s\n", sname);
112154 }
112155 - switch (m) {
112156 - case 0: /* executable */
112157 - mod->init_size = debug_align(mod->init_size);
112158 - mod->init_text_size = mod->init_size;
112159 - break;
112160 - case 1: /* RO: text and ro-data */
112161 - mod->init_size = debug_align(mod->init_size);
112162 - mod->init_ro_size = mod->init_size;
112163 - break;
112164 - case 3: /* whole init */
112165 - mod->init_size = debug_align(mod->init_size);
112166 - break;
112167 - }
112168 }
112169 }
112170
112171 @@ -2469,7 +2547,7 @@ static void layout_symtab(struct module *mod, struct load_info *info)
112172
112173 /* Put symbol section at end of init part of module. */
112174 symsect->sh_flags |= SHF_ALLOC;
112175 - symsect->sh_entsize = get_offset(mod, &mod->init_size, symsect,
112176 + symsect->sh_entsize = get_offset(mod, &mod->init_size_rx, symsect,
112177 info->index.sym) | INIT_OFFSET_MASK;
112178 pr_debug("\t%s\n", info->secstrings + symsect->sh_name);
112179
112180 @@ -2486,23 +2564,23 @@ static void layout_symtab(struct module *mod, struct load_info *info)
112181 }
112182
112183 /* Append room for core symbols at end of core part. */
112184 - info->symoffs = ALIGN(mod->core_size, symsect->sh_addralign ?: 1);
112185 - info->stroffs = mod->core_size = info->symoffs + ndst * sizeof(Elf_Sym);
112186 - mod->core_size += strtab_size;
112187 - mod->core_size = debug_align(mod->core_size);
112188 + info->symoffs = ALIGN(mod->core_size_rx, symsect->sh_addralign ?: 1);
112189 + info->stroffs = mod->core_size_rx = info->symoffs + ndst * sizeof(Elf_Sym);
112190 + mod->core_size_rx += strtab_size;
112191 + mod->core_size_rx = debug_align(mod->core_size_rx);
112192
112193 /* Put string table section at end of init part of module. */
112194 strsect->sh_flags |= SHF_ALLOC;
112195 - strsect->sh_entsize = get_offset(mod, &mod->init_size, strsect,
112196 + strsect->sh_entsize = get_offset(mod, &mod->init_size_rx, strsect,
112197 info->index.str) | INIT_OFFSET_MASK;
112198 pr_debug("\t%s\n", info->secstrings + strsect->sh_name);
112199
112200 /* We'll tack temporary mod_kallsyms on the end. */
112201 - mod->init_size = ALIGN(mod->init_size,
112202 + mod->init_size_rx = ALIGN(mod->init_size_rx,
112203 __alignof__(struct mod_kallsyms));
112204 - info->mod_kallsyms_init_off = mod->init_size;
112205 - mod->init_size += sizeof(struct mod_kallsyms);
112206 - mod->init_size = debug_align(mod->init_size);
112207 + info->mod_kallsyms_init_off = mod->init_size_rx;
112208 + mod->init_size_rx += sizeof(struct mod_kallsyms);
112209 + mod->init_size_rx = debug_align(mod->init_size_rx);
112210 }
112211
112212 /*
112213 @@ -2519,21 +2597,24 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
112214 Elf_Shdr *symsec = &info->sechdrs[info->index.sym];
112215
112216 /* Set up to point into init section. */
112217 - mod->kallsyms = mod->module_init + info->mod_kallsyms_init_off;
112218 + mod->kallsyms = mod->module_init_rx + info->mod_kallsyms_init_off;
112219 +
112220 + pax_open_kernel();
112221
112222 mod->kallsyms->symtab = (void *)symsec->sh_addr;
112223 mod->kallsyms->num_symtab = symsec->sh_size / sizeof(Elf_Sym);
112224 /* Make sure we get permanent strtab: don't use info->strtab. */
112225 mod->kallsyms->strtab = (void *)info->sechdrs[info->index.str].sh_addr;
112226
112227 +
112228 /* Set types up while we still have access to sections. */
112229 for (i = 0; i < mod->kallsyms->num_symtab; i++)
112230 mod->kallsyms->symtab[i].st_info
112231 = elf_type(&mod->kallsyms->symtab[i], info);
112232
112233 /* Now populate the cut down core kallsyms for after init. */
112234 - mod->core_kallsyms.symtab = dst = mod->module_core + info->symoffs;
112235 - mod->core_kallsyms.strtab = s = mod->module_core + info->stroffs;
112236 + mod->core_kallsyms.symtab = dst = mod->module_core_rx + info->symoffs;
112237 + mod->core_kallsyms.strtab = s = mod->module_core_rx + info->stroffs;
112238 src = mod->kallsyms->symtab;
112239 for (ndst = i = 0; i < mod->kallsyms->num_symtab; i++) {
112240 if (i == 0 ||
112241 @@ -2545,6 +2626,8 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
112242 }
112243 }
112244 mod->core_kallsyms.num_symtab = ndst;
112245 +
112246 + pax_close_kernel();
112247 }
112248 #else
112249 static inline void layout_symtab(struct module *mod, struct load_info *info)
112250 @@ -2844,7 +2927,15 @@ static struct module *setup_load_info(struct load_info *info, int flags)
112251 mod = (void *)info->sechdrs[info->index.mod].sh_addr;
112252
112253 if (info->index.sym == 0) {
112254 +#ifdef CONFIG_GRKERNSEC_RANDSTRUCT
112255 + /*
112256 + * avoid potentially printing jibberish on attempted load
112257 + * of a module randomized with a different seed
112258 + */
112259 + pr_warn("module has no symbols (stripped?)\n");
112260 +#else
112261 pr_warn("%s: module has no symbols (stripped?)\n", mod->name);
112262 +#endif
112263 return ERR_PTR(-ENOEXEC);
112264 }
112265
112266 @@ -2860,8 +2951,14 @@ static struct module *setup_load_info(struct load_info *info, int flags)
112267 static int check_modinfo(struct module *mod, struct load_info *info, int flags)
112268 {
112269 const char *modmagic = get_modinfo(info, "vermagic");
112270 + const char *license = get_modinfo(info, "license");
112271 int err;
112272
112273 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
112274 + if (!license || !license_is_gpl_compatible(license))
112275 + return -ENOEXEC;
112276 +#endif
112277 +
112278 if (flags & MODULE_INIT_IGNORE_VERMAGIC)
112279 modmagic = NULL;
112280
112281 @@ -2886,7 +2983,7 @@ static int check_modinfo(struct module *mod, struct load_info *info, int flags)
112282 }
112283
112284 /* Set up license info based on the info section */
112285 - set_license(mod, get_modinfo(info, "license"));
112286 + set_license(mod, license);
112287
112288 return 0;
112289 }
112290 @@ -2983,7 +3080,7 @@ static int move_module(struct module *mod, struct load_info *info)
112291 void *ptr;
112292
112293 /* Do the allocs. */
112294 - ptr = module_alloc(mod->core_size);
112295 + ptr = module_alloc(mod->core_size_rw);
112296 /*
112297 * The pointer to this block is stored in the module structure
112298 * which is inside the block. Just mark it as not being a
112299 @@ -2993,11 +3090,11 @@ static int move_module(struct module *mod, struct load_info *info)
112300 if (!ptr)
112301 return -ENOMEM;
112302
112303 - memset(ptr, 0, mod->core_size);
112304 - mod->module_core = ptr;
112305 + memset(ptr, 0, mod->core_size_rw);
112306 + mod->module_core_rw = ptr;
112307
112308 - if (mod->init_size) {
112309 - ptr = module_alloc(mod->init_size);
112310 + if (mod->init_size_rw) {
112311 + ptr = module_alloc(mod->init_size_rw);
112312 /*
112313 * The pointer to this block is stored in the module structure
112314 * which is inside the block. This block doesn't need to be
112315 @@ -3006,13 +3103,45 @@ static int move_module(struct module *mod, struct load_info *info)
112316 */
112317 kmemleak_ignore(ptr);
112318 if (!ptr) {
112319 - module_memfree(mod->module_core);
112320 + module_memfree(mod->module_core_rw);
112321 return -ENOMEM;
112322 }
112323 - memset(ptr, 0, mod->init_size);
112324 - mod->module_init = ptr;
112325 + memset(ptr, 0, mod->init_size_rw);
112326 + mod->module_init_rw = ptr;
112327 } else
112328 - mod->module_init = NULL;
112329 + mod->module_init_rw = NULL;
112330 +
112331 + ptr = module_alloc_exec(mod->core_size_rx);
112332 + kmemleak_not_leak(ptr);
112333 + if (!ptr) {
112334 + if (mod->module_init_rw)
112335 + module_memfree(mod->module_init_rw);
112336 + module_memfree(mod->module_core_rw);
112337 + return -ENOMEM;
112338 + }
112339 +
112340 + pax_open_kernel();
112341 + memset(ptr, 0, mod->core_size_rx);
112342 + pax_close_kernel();
112343 + mod->module_core_rx = ptr;
112344 +
112345 + if (mod->init_size_rx) {
112346 + ptr = module_alloc_exec(mod->init_size_rx);
112347 + kmemleak_ignore(ptr);
112348 + if (!ptr && mod->init_size_rx) {
112349 + module_memfree_exec(mod->module_core_rx);
112350 + if (mod->module_init_rw)
112351 + module_memfree(mod->module_init_rw);
112352 + module_memfree(mod->module_core_rw);
112353 + return -ENOMEM;
112354 + }
112355 +
112356 + pax_open_kernel();
112357 + memset(ptr, 0, mod->init_size_rx);
112358 + pax_close_kernel();
112359 + mod->module_init_rx = ptr;
112360 + } else
112361 + mod->module_init_rx = NULL;
112362
112363 /* Transfer each section which specifies SHF_ALLOC */
112364 pr_debug("final section addresses:\n");
112365 @@ -3023,16 +3152,45 @@ static int move_module(struct module *mod, struct load_info *info)
112366 if (!(shdr->sh_flags & SHF_ALLOC))
112367 continue;
112368
112369 - if (shdr->sh_entsize & INIT_OFFSET_MASK)
112370 - dest = mod->module_init
112371 - + (shdr->sh_entsize & ~INIT_OFFSET_MASK);
112372 - else
112373 - dest = mod->module_core + shdr->sh_entsize;
112374 + if (shdr->sh_entsize & INIT_OFFSET_MASK) {
112375 + if ((shdr->sh_flags & SHF_WRITE) || !(shdr->sh_flags & SHF_ALLOC))
112376 + dest = mod->module_init_rw
112377 + + (shdr->sh_entsize & ~INIT_OFFSET_MASK);
112378 + else
112379 + dest = mod->module_init_rx
112380 + + (shdr->sh_entsize & ~INIT_OFFSET_MASK);
112381 + } else {
112382 + if ((shdr->sh_flags & SHF_WRITE) || !(shdr->sh_flags & SHF_ALLOC))
112383 + dest = mod->module_core_rw + shdr->sh_entsize;
112384 + else
112385 + dest = mod->module_core_rx + shdr->sh_entsize;
112386 + }
112387 +
112388 + if (shdr->sh_type != SHT_NOBITS) {
112389 +
112390 +#ifdef CONFIG_PAX_KERNEXEC
112391 +#ifdef CONFIG_X86_64
112392 + if ((shdr->sh_flags & SHF_WRITE) && (shdr->sh_flags & SHF_EXECINSTR))
112393 + set_memory_x((unsigned long)dest, (shdr->sh_size + PAGE_SIZE) >> PAGE_SHIFT);
112394 +#endif
112395 + if (!(shdr->sh_flags & SHF_WRITE) && (shdr->sh_flags & SHF_ALLOC)) {
112396 + pax_open_kernel();
112397 + memcpy(dest, (void *)shdr->sh_addr, shdr->sh_size);
112398 + pax_close_kernel();
112399 + } else
112400 +#endif
112401
112402 - if (shdr->sh_type != SHT_NOBITS)
112403 memcpy(dest, (void *)shdr->sh_addr, shdr->sh_size);
112404 + }
112405 /* Update sh_addr to point to copy in image. */
112406 - shdr->sh_addr = (unsigned long)dest;
112407 +
112408 +#ifdef CONFIG_PAX_KERNEXEC
112409 + if (shdr->sh_flags & SHF_EXECINSTR)
112410 + shdr->sh_addr = ktva_ktla((unsigned long)dest);
112411 + else
112412 +#endif
112413 +
112414 + shdr->sh_addr = (unsigned long)dest;
112415 pr_debug("\t0x%lx %s\n",
112416 (long)shdr->sh_addr, info->secstrings + shdr->sh_name);
112417 }
112418 @@ -3089,12 +3247,12 @@ static void flush_module_icache(const struct module *mod)
112419 * Do it before processing of module parameters, so the module
112420 * can provide parameter accessor functions of its own.
112421 */
112422 - if (mod->module_init)
112423 - flush_icache_range((unsigned long)mod->module_init,
112424 - (unsigned long)mod->module_init
112425 - + mod->init_size);
112426 - flush_icache_range((unsigned long)mod->module_core,
112427 - (unsigned long)mod->module_core + mod->core_size);
112428 + if (mod->module_init_rx)
112429 + flush_icache_range((unsigned long)mod->module_init_rx,
112430 + (unsigned long)mod->module_init_rx
112431 + + mod->init_size_rx);
112432 + flush_icache_range((unsigned long)mod->module_core_rx,
112433 + (unsigned long)mod->module_core_rx + mod->core_size_rx);
112434
112435 set_fs(old_fs);
112436 }
112437 @@ -3152,8 +3310,10 @@ static void module_deallocate(struct module *mod, struct load_info *info)
112438 {
112439 percpu_modfree(mod);
112440 module_arch_freeing_init(mod);
112441 - module_memfree(mod->module_init);
112442 - module_memfree(mod->module_core);
112443 + module_memfree_exec(mod->module_init_rx);
112444 + module_memfree_exec(mod->module_core_rx);
112445 + module_memfree(mod->module_init_rw);
112446 + module_memfree(mod->module_core_rw);
112447 }
112448
112449 int __weak module_finalize(const Elf_Ehdr *hdr,
112450 @@ -3166,7 +3326,9 @@ int __weak module_finalize(const Elf_Ehdr *hdr,
112451 static int post_relocation(struct module *mod, const struct load_info *info)
112452 {
112453 /* Sort exception table now relocations are done. */
112454 + pax_open_kernel();
112455 sort_extable(mod->extable, mod->extable + mod->num_exentries);
112456 + pax_close_kernel();
112457
112458 /* Copy relocated percpu area over. */
112459 percpu_modcopy(mod, (void *)info->sechdrs[info->index.pcpu].sh_addr,
112460 @@ -3214,13 +3376,15 @@ static void do_mod_ctors(struct module *mod)
112461 /* For freeing module_init on success, in case kallsyms traversing */
112462 struct mod_initfree {
112463 struct rcu_head rcu;
112464 - void *module_init;
112465 + void *module_init_rw;
112466 + void *module_init_rx;
112467 };
112468
112469 static void do_free_init(struct rcu_head *head)
112470 {
112471 struct mod_initfree *m = container_of(head, struct mod_initfree, rcu);
112472 - module_memfree(m->module_init);
112473 + module_memfree(m->module_init_rw);
112474 + module_memfree_exec(m->module_init_rx);
112475 kfree(m);
112476 }
112477
112478 @@ -3240,7 +3404,8 @@ static noinline int do_init_module(struct module *mod)
112479 ret = -ENOMEM;
112480 goto fail;
112481 }
112482 - freeinit->module_init = mod->module_init;
112483 + freeinit->module_init_rw = mod->module_init_rw;
112484 + freeinit->module_init_rx = mod->module_init_rx;
112485
112486 /*
112487 * We want to find out whether @mod uses async during init. Clear
112488 @@ -3299,10 +3464,10 @@ static noinline int do_init_module(struct module *mod)
112489 mod_tree_remove_init(mod);
112490 unset_module_init_ro_nx(mod);
112491 module_arch_freeing_init(mod);
112492 - mod->module_init = NULL;
112493 - mod->init_size = 0;
112494 - mod->init_ro_size = 0;
112495 - mod->init_text_size = 0;
112496 + mod->module_init_rw = NULL;
112497 + mod->module_init_rx = NULL;
112498 + mod->init_size_rw = 0;
112499 + mod->init_size_rx = 0;
112500 /*
112501 * We want to free module_init, but be aware that kallsyms may be
112502 * walking this with preempt disabled. In all the failure paths, we
112503 @@ -3392,16 +3557,16 @@ static int complete_formation(struct module *mod, struct load_info *info)
112504 module_bug_finalize(info->hdr, info->sechdrs, mod);
112505
112506 /* Set RO and NX regions for core */
112507 - set_section_ro_nx(mod->module_core,
112508 - mod->core_text_size,
112509 - mod->core_ro_size,
112510 - mod->core_size);
112511 + set_section_ro_nx(mod->module_core_rx,
112512 + mod->core_size_rx,
112513 + mod->core_size_rx,
112514 + mod->core_size_rx);
112515
112516 /* Set RO and NX regions for init */
112517 - set_section_ro_nx(mod->module_init,
112518 - mod->init_text_size,
112519 - mod->init_ro_size,
112520 - mod->init_size);
112521 + set_section_ro_nx(mod->module_init_rx,
112522 + mod->init_size_rx,
112523 + mod->init_size_rx,
112524 + mod->init_size_rx);
112525
112526 /* Mark state as coming so strong_try_module_get() ignores us,
112527 * but kallsyms etc. can see us. */
112528 @@ -3496,9 +3661,38 @@ static int load_module(struct load_info *info, const char __user *uargs,
112529 if (err)
112530 goto free_unload;
112531
112532 + /* Now copy in args */
112533 + mod->args = strndup_user(uargs, ~0UL >> 1);
112534 + if (IS_ERR(mod->args)) {
112535 + err = PTR_ERR(mod->args);
112536 + goto free_unload;
112537 + }
112538 +
112539 /* Set up MODINFO_ATTR fields */
112540 setup_modinfo(mod, info);
112541
112542 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
112543 + {
112544 + char *p, *p2;
112545 +
112546 + if (strstr(mod->args, "grsec_modharden_netdev")) {
112547 + 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);
112548 + err = -EPERM;
112549 + goto free_modinfo;
112550 + } else if ((p = strstr(mod->args, "grsec_modharden_normal"))) {
112551 + p += sizeof("grsec_modharden_normal") - 1;
112552 + p2 = strstr(p, "_");
112553 + if (p2) {
112554 + *p2 = '\0';
112555 + printk(KERN_ALERT "grsec: denied kernel module auto-load of %.64s by uid %.9s\n", mod->name, p);
112556 + *p2 = '_';
112557 + }
112558 + err = -EPERM;
112559 + goto free_modinfo;
112560 + }
112561 + }
112562 +#endif
112563 +
112564 /* Fix up syms, so that st_value is a pointer to location. */
112565 err = simplify_symbols(mod, info);
112566 if (err < 0)
112567 @@ -3514,13 +3708,6 @@ static int load_module(struct load_info *info, const char __user *uargs,
112568
112569 flush_module_icache(mod);
112570
112571 - /* Now copy in args */
112572 - mod->args = strndup_user(uargs, ~0UL >> 1);
112573 - if (IS_ERR(mod->args)) {
112574 - err = PTR_ERR(mod->args);
112575 - goto free_arch_cleanup;
112576 - }
112577 -
112578 dynamic_debug_setup(info->debug, info->num_debug);
112579
112580 /* Ftrace init must be called in the MODULE_STATE_UNFORMED state */
112581 @@ -3572,11 +3759,10 @@ static int load_module(struct load_info *info, const char __user *uargs,
112582 ddebug_cleanup:
112583 dynamic_debug_remove(info->debug);
112584 synchronize_sched();
112585 - kfree(mod->args);
112586 - free_arch_cleanup:
112587 module_arch_cleanup(mod);
112588 free_modinfo:
112589 free_modinfo(mod);
112590 + kfree(mod->args);
112591 free_unload:
112592 module_unload_free(mod);
112593 unlink_mod:
112594 @@ -3596,7 +3782,8 @@ static int load_module(struct load_info *info, const char __user *uargs,
112595 */
112596 ftrace_release_mod(mod);
112597 /* Free lock-classes; relies on the preceding sync_rcu() */
112598 - lockdep_free_key_range(mod->module_core, mod->core_size);
112599 + lockdep_free_key_range(mod->module_core_rx, mod->core_size_rx);
112600 + lockdep_free_key_range(mod->module_core_rw, mod->core_size_rw);
112601
112602 module_deallocate(mod, info);
112603 free_copy:
112604 @@ -3679,10 +3866,16 @@ static const char *get_ksymbol(struct module *mod,
112605 struct mod_kallsyms *kallsyms = rcu_dereference_sched(mod->kallsyms);
112606
112607 /* At worse, next value is at end of module */
112608 - if (within_module_init(addr, mod))
112609 - nextval = (unsigned long)mod->module_init+mod->init_text_size;
112610 + if (within_module_init_rx(addr, mod))
112611 + nextval = (unsigned long)mod->module_init_rx+mod->init_size_rx;
112612 + else if (within_module_init_rw(addr, mod))
112613 + nextval = (unsigned long)mod->module_init_rw+mod->init_size_rw;
112614 + else if (within_module_core_rx(addr, mod))
112615 + nextval = (unsigned long)mod->module_core_rx+mod->core_size_rx;
112616 + else if (within_module_core_rw(addr, mod))
112617 + nextval = (unsigned long)mod->module_core_rw+mod->core_size_rw;
112618 else
112619 - nextval = (unsigned long)mod->module_core+mod->core_text_size;
112620 + return NULL;
112621
112622 /* Scan for closest preceding symbol, and next symbol. (ELF
112623 starts real symbols at 1). */
112624 @@ -3935,7 +4128,7 @@ static int m_show(struct seq_file *m, void *p)
112625 return 0;
112626
112627 seq_printf(m, "%s %u",
112628 - mod->name, mod->init_size + mod->core_size);
112629 + mod->name, mod->init_size_rx + mod->init_size_rw + mod->core_size_rx + mod->core_size_rw);
112630 print_unload_info(m, mod);
112631
112632 /* Informative for users. */
112633 @@ -3944,7 +4137,7 @@ static int m_show(struct seq_file *m, void *p)
112634 mod->state == MODULE_STATE_COMING ? "Loading" :
112635 "Live");
112636 /* Used by oprofile and other similar tools. */
112637 - seq_printf(m, " 0x%pK", mod->module_core);
112638 + seq_printf(m, " 0x%pK 0x%pK", mod->module_core_rx, mod->module_core_rw);
112639
112640 /* Taints info */
112641 if (mod->taints)
112642 @@ -3980,7 +4173,17 @@ static const struct file_operations proc_modules_operations = {
112643
112644 static int __init proc_modules_init(void)
112645 {
112646 +#ifndef CONFIG_GRKERNSEC_HIDESYM
112647 +#ifdef CONFIG_GRKERNSEC_PROC_USER
112648 + proc_create("modules", S_IRUSR, NULL, &proc_modules_operations);
112649 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
112650 + proc_create("modules", S_IRUSR | S_IRGRP, NULL, &proc_modules_operations);
112651 +#else
112652 proc_create("modules", 0, NULL, &proc_modules_operations);
112653 +#endif
112654 +#else
112655 + proc_create("modules", S_IRUSR, NULL, &proc_modules_operations);
112656 +#endif
112657 return 0;
112658 }
112659 module_init(proc_modules_init);
112660 @@ -4041,7 +4244,8 @@ struct module *__module_address(unsigned long addr)
112661 {
112662 struct module *mod;
112663
112664 - if (addr < module_addr_min || addr > module_addr_max)
112665 + if ((addr < module_addr_min_rx || addr > module_addr_max_rx) &&
112666 + (addr < module_addr_min_rw || addr > module_addr_max_rw))
112667 return NULL;
112668
112669 module_assert_mutex_or_preempt();
112670 @@ -4084,11 +4288,20 @@ bool is_module_text_address(unsigned long addr)
112671 */
112672 struct module *__module_text_address(unsigned long addr)
112673 {
112674 - struct module *mod = __module_address(addr);
112675 + struct module *mod;
112676 +
112677 +#ifdef CONFIG_X86_32
112678 + addr = ktla_ktva(addr);
112679 +#endif
112680 +
112681 + if (addr < module_addr_min_rx || addr > module_addr_max_rx)
112682 + return NULL;
112683 +
112684 + mod = __module_address(addr);
112685 +
112686 if (mod) {
112687 /* Make sure it's within the text section. */
112688 - if (!within(addr, mod->module_init, mod->init_text_size)
112689 - && !within(addr, mod->module_core, mod->core_text_size))
112690 + if (!within_module_init_rx(addr, mod) && !within_module_core_rx(addr, mod))
112691 mod = NULL;
112692 }
112693 return mod;
112694 diff --git a/kernel/notifier.c b/kernel/notifier.c
112695 index fd2c9ac..95e58f6 100644
112696 --- a/kernel/notifier.c
112697 +++ b/kernel/notifier.c
112698 @@ -5,6 +5,7 @@
112699 #include <linux/rcupdate.h>
112700 #include <linux/vmalloc.h>
112701 #include <linux/reboot.h>
112702 +#include <linux/mm.h>
112703
112704 /*
112705 * Notifier list for kernel code which wants to be called
112706 @@ -24,10 +25,12 @@ static int notifier_chain_register(struct notifier_block **nl,
112707 while ((*nl) != NULL) {
112708 if (n->priority > (*nl)->priority)
112709 break;
112710 - nl = &((*nl)->next);
112711 + nl = (struct notifier_block **)&((*nl)->next);
112712 }
112713 - n->next = *nl;
112714 + pax_open_kernel();
112715 + *(const void **)&n->next = *nl;
112716 rcu_assign_pointer(*nl, n);
112717 + pax_close_kernel();
112718 return 0;
112719 }
112720
112721 @@ -39,10 +42,12 @@ static int notifier_chain_cond_register(struct notifier_block **nl,
112722 return 0;
112723 if (n->priority > (*nl)->priority)
112724 break;
112725 - nl = &((*nl)->next);
112726 + nl = (struct notifier_block **)&((*nl)->next);
112727 }
112728 - n->next = *nl;
112729 + pax_open_kernel();
112730 + *(const void **)&n->next = *nl;
112731 rcu_assign_pointer(*nl, n);
112732 + pax_close_kernel();
112733 return 0;
112734 }
112735
112736 @@ -51,10 +56,12 @@ static int notifier_chain_unregister(struct notifier_block **nl,
112737 {
112738 while ((*nl) != NULL) {
112739 if ((*nl) == n) {
112740 + pax_open_kernel();
112741 rcu_assign_pointer(*nl, n->next);
112742 + pax_close_kernel();
112743 return 0;
112744 }
112745 - nl = &((*nl)->next);
112746 + nl = (struct notifier_block **)&((*nl)->next);
112747 }
112748 return -ENOENT;
112749 }
112750 diff --git a/kernel/padata.c b/kernel/padata.c
112751 index b38bea9..91acfbe 100644
112752 --- a/kernel/padata.c
112753 +++ b/kernel/padata.c
112754 @@ -54,7 +54,7 @@ static int padata_cpu_hash(struct parallel_data *pd)
112755 * seq_nr mod. number of cpus in use.
112756 */
112757
112758 - seq_nr = atomic_inc_return(&pd->seq_nr);
112759 + seq_nr = atomic_inc_return_unchecked(&pd->seq_nr);
112760 cpu_index = seq_nr % cpumask_weight(pd->cpumask.pcpu);
112761
112762 return padata_index_to_cpu(pd, cpu_index);
112763 @@ -428,7 +428,7 @@ static struct parallel_data *padata_alloc_pd(struct padata_instance *pinst,
112764 padata_init_pqueues(pd);
112765 padata_init_squeues(pd);
112766 setup_timer(&pd->timer, padata_reorder_timer, (unsigned long)pd);
112767 - atomic_set(&pd->seq_nr, -1);
112768 + atomic_set_unchecked(&pd->seq_nr, -1);
112769 atomic_set(&pd->reorder_objects, 0);
112770 atomic_set(&pd->refcnt, 0);
112771 pd->pinst = pinst;
112772 diff --git a/kernel/panic.c b/kernel/panic.c
112773 index 41e2b54..5292098 100644
112774 --- a/kernel/panic.c
112775 +++ b/kernel/panic.c
112776 @@ -55,7 +55,7 @@ EXPORT_SYMBOL(panic_blink);
112777 /*
112778 * Stop ourself in panic -- architecture code may override this
112779 */
112780 -void __weak panic_smp_self_stop(void)
112781 +void __weak __noreturn panic_smp_self_stop(void)
112782 {
112783 while (1)
112784 cpu_relax();
112785 @@ -438,7 +438,7 @@ static void warn_slowpath_common(const char *file, int line, void *caller,
112786 disable_trace_on_warning();
112787
112788 pr_warn("------------[ cut here ]------------\n");
112789 - pr_warn("WARNING: CPU: %d PID: %d at %s:%d %pS()\n",
112790 + pr_warn("WARNING: CPU: %d PID: %d at %s:%d %pA()\n",
112791 raw_smp_processor_id(), current->pid, file, line, caller);
112792
112793 if (args)
112794 @@ -503,7 +503,8 @@ EXPORT_SYMBOL(warn_slowpath_null);
112795 */
112796 __visible void __stack_chk_fail(void)
112797 {
112798 - panic("stack-protector: Kernel stack is corrupted in: %p\n",
112799 + dump_stack();
112800 + panic("stack-protector: Kernel stack is corrupted in: %pA\n",
112801 __builtin_return_address(0));
112802 }
112803 EXPORT_SYMBOL(__stack_chk_fail);
112804 diff --git a/kernel/pid.c b/kernel/pid.c
112805 index 78b3d9f..1f368d5 100644
112806 --- a/kernel/pid.c
112807 +++ b/kernel/pid.c
112808 @@ -33,6 +33,7 @@
112809 #include <linux/rculist.h>
112810 #include <linux/bootmem.h>
112811 #include <linux/hash.h>
112812 +#include <linux/security.h>
112813 #include <linux/pid_namespace.h>
112814 #include <linux/init_task.h>
112815 #include <linux/syscalls.h>
112816 @@ -47,7 +48,7 @@ struct pid init_struct_pid = INIT_STRUCT_PID;
112817
112818 int pid_max = PID_MAX_DEFAULT;
112819
112820 -#define RESERVED_PIDS 300
112821 +#define RESERVED_PIDS 500
112822
112823 int pid_max_min = RESERVED_PIDS + 1;
112824 int pid_max_max = PID_MAX_LIMIT;
112825 @@ -451,9 +452,17 @@ EXPORT_SYMBOL(pid_task);
112826 */
112827 struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns)
112828 {
112829 + struct task_struct *task;
112830 +
112831 RCU_LOCKDEP_WARN(!rcu_read_lock_held(),
112832 "find_task_by_pid_ns() needs rcu_read_lock() protection");
112833 - return pid_task(find_pid_ns(nr, ns), PIDTYPE_PID);
112834 +
112835 + task = pid_task(find_pid_ns(nr, ns), PIDTYPE_PID);
112836 +
112837 + if (gr_pid_is_chrooted(task))
112838 + return NULL;
112839 +
112840 + return task;
112841 }
112842
112843 struct task_struct *find_task_by_vpid(pid_t vnr)
112844 @@ -461,6 +470,13 @@ struct task_struct *find_task_by_vpid(pid_t vnr)
112845 return find_task_by_pid_ns(vnr, task_active_pid_ns(current));
112846 }
112847
112848 +struct task_struct *find_task_by_vpid_unrestricted(pid_t vnr)
112849 +{
112850 + RCU_LOCKDEP_WARN(!rcu_read_lock_held(),
112851 + "find_task_by_pid_ns() needs rcu_read_lock() protection");
112852 + return pid_task(find_pid_ns(vnr, task_active_pid_ns(current)), PIDTYPE_PID);
112853 +}
112854 +
112855 struct pid *get_task_pid(struct task_struct *task, enum pid_type type)
112856 {
112857 struct pid *pid;
112858 diff --git a/kernel/pid_namespace.c b/kernel/pid_namespace.c
112859 index a65ba13..f600dbb 100644
112860 --- a/kernel/pid_namespace.c
112861 +++ b/kernel/pid_namespace.c
112862 @@ -274,7 +274,7 @@ static int pid_ns_ctl_handler(struct ctl_table *table, int write,
112863 void __user *buffer, size_t *lenp, loff_t *ppos)
112864 {
112865 struct pid_namespace *pid_ns = task_active_pid_ns(current);
112866 - struct ctl_table tmp = *table;
112867 + ctl_table_no_const tmp = *table;
112868
112869 if (write && !ns_capable(pid_ns->user_ns, CAP_SYS_ADMIN))
112870 return -EPERM;
112871 diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig
112872 index 02e8dfa..8b4a8d3 100644
112873 --- a/kernel/power/Kconfig
112874 +++ b/kernel/power/Kconfig
112875 @@ -34,6 +34,8 @@ config HIBERNATE_CALLBACKS
112876 config HIBERNATION
112877 bool "Hibernation (aka 'suspend to disk')"
112878 depends on SWAP && ARCH_HIBERNATION_POSSIBLE
112879 + depends on !GRKERNSEC_KMEM
112880 + depends on !PAX_MEMORY_SANITIZE
112881 select HIBERNATE_CALLBACKS
112882 select LZO_COMPRESS
112883 select LZO_DECOMPRESS
112884 diff --git a/kernel/power/process.c b/kernel/power/process.c
112885 index 564f786..361a18e 100644
112886 --- a/kernel/power/process.c
112887 +++ b/kernel/power/process.c
112888 @@ -35,6 +35,7 @@ static int try_to_freeze_tasks(bool user_only)
112889 unsigned int elapsed_msecs;
112890 bool wakeup = false;
112891 int sleep_usecs = USEC_PER_MSEC;
112892 + bool timedout = false;
112893
112894 do_gettimeofday(&start);
112895
112896 @@ -45,13 +46,20 @@ static int try_to_freeze_tasks(bool user_only)
112897
112898 while (true) {
112899 todo = 0;
112900 + if (time_after(jiffies, end_time))
112901 + timedout = true;
112902 read_lock(&tasklist_lock);
112903 for_each_process_thread(g, p) {
112904 if (p == current || !freeze_task(p))
112905 continue;
112906
112907 - if (!freezer_should_skip(p))
112908 + if (!freezer_should_skip(p)) {
112909 todo++;
112910 + if (timedout) {
112911 + printk(KERN_ERR "Task refusing to freeze:\n");
112912 + sched_show_task(p);
112913 + }
112914 + }
112915 }
112916 read_unlock(&tasklist_lock);
112917
112918 @@ -60,7 +68,7 @@ static int try_to_freeze_tasks(bool user_only)
112919 todo += wq_busy;
112920 }
112921
112922 - if (!todo || time_after(jiffies, end_time))
112923 + if (!todo || timedout)
112924 break;
112925
112926 if (pm_wakeup_pending()) {
112927 diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
112928 index c048e34..8ef7f71 100644
112929 --- a/kernel/printk/printk.c
112930 +++ b/kernel/printk/printk.c
112931 @@ -478,7 +478,7 @@ static int log_store(int facility, int level,
112932 return msg->text_len;
112933 }
112934
112935 -int dmesg_restrict = IS_ENABLED(CONFIG_SECURITY_DMESG_RESTRICT);
112936 +int dmesg_restrict __read_only = IS_ENABLED(CONFIG_SECURITY_DMESG_RESTRICT);
112937
112938 static int syslog_action_restricted(int type)
112939 {
112940 @@ -501,6 +501,11 @@ int check_syslog_permissions(int type, int source)
112941 if (source == SYSLOG_FROM_PROC && type != SYSLOG_ACTION_OPEN)
112942 goto ok;
112943
112944 +#ifdef CONFIG_GRKERNSEC_DMESG
112945 + if (grsec_enable_dmesg && !capable(CAP_SYSLOG) && !capable_nolog(CAP_SYS_ADMIN))
112946 + return -EPERM;
112947 +#endif
112948 +
112949 if (syslog_action_restricted(type)) {
112950 if (capable(CAP_SYSLOG))
112951 goto ok;
112952 diff --git a/kernel/profile.c b/kernel/profile.c
112953 index 99513e1..0caa643 100644
112954 --- a/kernel/profile.c
112955 +++ b/kernel/profile.c
112956 @@ -37,7 +37,7 @@ struct profile_hit {
112957 #define NR_PROFILE_HIT (PAGE_SIZE/sizeof(struct profile_hit))
112958 #define NR_PROFILE_GRP (NR_PROFILE_HIT/PROFILE_GRPSZ)
112959
112960 -static atomic_t *prof_buffer;
112961 +static atomic_unchecked_t *prof_buffer;
112962 static unsigned long prof_len, prof_shift;
112963
112964 int prof_on __read_mostly;
112965 @@ -256,7 +256,7 @@ static void profile_flip_buffers(void)
112966 hits[i].pc = 0;
112967 continue;
112968 }
112969 - atomic_add(hits[i].hits, &prof_buffer[hits[i].pc]);
112970 + atomic_add_unchecked(hits[i].hits, &prof_buffer[hits[i].pc]);
112971 hits[i].hits = hits[i].pc = 0;
112972 }
112973 }
112974 @@ -317,9 +317,9 @@ static void do_profile_hits(int type, void *__pc, unsigned int nr_hits)
112975 * Add the current hit(s) and flush the write-queue out
112976 * to the global buffer:
112977 */
112978 - atomic_add(nr_hits, &prof_buffer[pc]);
112979 + atomic_add_unchecked(nr_hits, &prof_buffer[pc]);
112980 for (i = 0; i < NR_PROFILE_HIT; ++i) {
112981 - atomic_add(hits[i].hits, &prof_buffer[hits[i].pc]);
112982 + atomic_add_unchecked(hits[i].hits, &prof_buffer[hits[i].pc]);
112983 hits[i].pc = hits[i].hits = 0;
112984 }
112985 out:
112986 @@ -394,7 +394,7 @@ static void do_profile_hits(int type, void *__pc, unsigned int nr_hits)
112987 {
112988 unsigned long pc;
112989 pc = ((unsigned long)__pc - (unsigned long)_stext) >> prof_shift;
112990 - atomic_add(nr_hits, &prof_buffer[min(pc, prof_len - 1)]);
112991 + atomic_add_unchecked(nr_hits, &prof_buffer[min(pc, prof_len - 1)]);
112992 }
112993 #endif /* !CONFIG_SMP */
112994
112995 @@ -489,7 +489,7 @@ read_profile(struct file *file, char __user *buf, size_t count, loff_t *ppos)
112996 return -EFAULT;
112997 buf++; p++; count--; read++;
112998 }
112999 - pnt = (char *)prof_buffer + p - sizeof(atomic_t);
113000 + pnt = (char *)prof_buffer + p - sizeof(atomic_unchecked_t);
113001 if (copy_to_user(buf, (void *)pnt, count))
113002 return -EFAULT;
113003 read += count;
113004 @@ -520,7 +520,7 @@ static ssize_t write_profile(struct file *file, const char __user *buf,
113005 }
113006 #endif
113007 profile_discard_flip_buffers();
113008 - memset(prof_buffer, 0, prof_len * sizeof(atomic_t));
113009 + memset(prof_buffer, 0, prof_len * sizeof(atomic_unchecked_t));
113010 return count;
113011 }
113012
113013 diff --git a/kernel/ptrace.c b/kernel/ptrace.c
113014 index 3189e51..fcc8509 100644
113015 --- a/kernel/ptrace.c
113016 +++ b/kernel/ptrace.c
113017 @@ -207,12 +207,32 @@ static int ptrace_check_attach(struct task_struct *child, bool ignore_state)
113018 return ret;
113019 }
113020
113021 -static int ptrace_has_cap(struct user_namespace *ns, unsigned int mode)
113022 +static bool ptrace_has_cap(const struct cred *tcred, unsigned int mode)
113023 {
113024 + struct user_namespace *tns = tcred->user_ns;
113025 + struct user_namespace *curns = current_cred()->user_ns;
113026 +
113027 + /* When a root-owned process enters a user namespace created by a
113028 + * malicious user, the user shouldn't be able to execute code under
113029 + * uid 0 by attaching to the root-owned process via ptrace.
113030 + * Therefore, similar to the capable_wrt_inode_uidgid() check,
113031 + * verify that all the uids and gids of the target process are
113032 + * mapped into the current namespace.
113033 + * No fsuid/fsgid check because __ptrace_may_access doesn't do it
113034 + * either.
113035 + */
113036 + if (!kuid_has_mapping(curns, tcred->euid) ||
113037 + !kuid_has_mapping(curns, tcred->suid) ||
113038 + !kuid_has_mapping(curns, tcred->uid) ||
113039 + !kgid_has_mapping(curns, tcred->egid) ||
113040 + !kgid_has_mapping(curns, tcred->sgid) ||
113041 + !kgid_has_mapping(curns, tcred->gid))
113042 + return false;
113043 +
113044 if (mode & PTRACE_MODE_NOAUDIT)
113045 - return has_ns_capability_noaudit(current, ns, CAP_SYS_PTRACE);
113046 + return has_ns_capability_noaudit(current, tns, CAP_SYS_PTRACE);
113047 else
113048 - return has_ns_capability(current, ns, CAP_SYS_PTRACE);
113049 + return has_ns_capability(current, tns, CAP_SYS_PTRACE);
113050 }
113051
113052 /* Returns 0 on success, -errno on denial. */
113053 @@ -264,7 +284,7 @@ static int __ptrace_may_access(struct task_struct *task, unsigned int mode)
113054 gid_eq(caller_gid, tcred->sgid) &&
113055 gid_eq(caller_gid, tcred->gid))
113056 goto ok;
113057 - if (ptrace_has_cap(tcred->user_ns, mode))
113058 + if (ptrace_has_cap(tcred, mode))
113059 goto ok;
113060 rcu_read_unlock();
113061 return -EPERM;
113062 @@ -275,7 +295,7 @@ ok:
113063 dumpable = get_dumpable(task->mm);
113064 rcu_read_lock();
113065 if (dumpable != SUID_DUMP_USER &&
113066 - !ptrace_has_cap(__task_cred(task)->user_ns, mode)) {
113067 + !ptrace_has_cap(__task_cred(task), mode)) {
113068 rcu_read_unlock();
113069 return -EPERM;
113070 }
113071 @@ -344,7 +364,7 @@ static int ptrace_attach(struct task_struct *task, long request,
113072 if (seize)
113073 flags |= PT_SEIZED;
113074 rcu_read_lock();
113075 - if (ns_capable(__task_cred(task)->user_ns, CAP_SYS_PTRACE))
113076 + if (ns_capable_nolog(__task_cred(task)->user_ns, CAP_SYS_PTRACE))
113077 flags |= PT_PTRACE_CAP;
113078 rcu_read_unlock();
113079 task->ptrace = flags;
113080 @@ -537,7 +557,7 @@ int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __user *dst
113081 break;
113082 return -EIO;
113083 }
113084 - if (copy_to_user(dst, buf, retval))
113085 + if (retval > sizeof(buf) || copy_to_user(dst, buf, retval))
113086 return -EFAULT;
113087 copied += retval;
113088 src += retval;
113089 @@ -838,7 +858,7 @@ int ptrace_request(struct task_struct *child, long request,
113090 bool seized = child->ptrace & PT_SEIZED;
113091 int ret = -EIO;
113092 siginfo_t siginfo, *si;
113093 - void __user *datavp = (void __user *) data;
113094 + void __user *datavp = (__force void __user *) data;
113095 unsigned long __user *datalp = datavp;
113096 unsigned long flags;
113097
113098 @@ -1089,14 +1109,21 @@ SYSCALL_DEFINE4(ptrace, long, request, long, pid, unsigned long, addr,
113099 goto out;
113100 }
113101
113102 + if (gr_handle_ptrace(child, request)) {
113103 + ret = -EPERM;
113104 + goto out_put_task_struct;
113105 + }
113106 +
113107 if (request == PTRACE_ATTACH || request == PTRACE_SEIZE) {
113108 ret = ptrace_attach(child, request, addr, data);
113109 /*
113110 * Some architectures need to do book-keeping after
113111 * a ptrace attach.
113112 */
113113 - if (!ret)
113114 + if (!ret) {
113115 arch_ptrace_attach(child);
113116 + gr_audit_ptrace(child);
113117 + }
113118 goto out_put_task_struct;
113119 }
113120
113121 @@ -1124,7 +1151,7 @@ int generic_ptrace_peekdata(struct task_struct *tsk, unsigned long addr,
113122 copied = access_process_vm(tsk, addr, &tmp, sizeof(tmp), 0);
113123 if (copied != sizeof(tmp))
113124 return -EIO;
113125 - return put_user(tmp, (unsigned long __user *)data);
113126 + return put_user(tmp, (__force unsigned long __user *)data);
113127 }
113128
113129 int generic_ptrace_pokedata(struct task_struct *tsk, unsigned long addr,
113130 @@ -1217,7 +1244,7 @@ int compat_ptrace_request(struct task_struct *child, compat_long_t request,
113131 }
113132
113133 COMPAT_SYSCALL_DEFINE4(ptrace, compat_long_t, request, compat_long_t, pid,
113134 - compat_long_t, addr, compat_long_t, data)
113135 + compat_ulong_t, addr, compat_ulong_t, data)
113136 {
113137 struct task_struct *child;
113138 long ret;
113139 @@ -1233,14 +1260,21 @@ COMPAT_SYSCALL_DEFINE4(ptrace, compat_long_t, request, compat_long_t, pid,
113140 goto out;
113141 }
113142
113143 + if (gr_handle_ptrace(child, request)) {
113144 + ret = -EPERM;
113145 + goto out_put_task_struct;
113146 + }
113147 +
113148 if (request == PTRACE_ATTACH || request == PTRACE_SEIZE) {
113149 ret = ptrace_attach(child, request, addr, data);
113150 /*
113151 * Some architectures need to do book-keeping after
113152 * a ptrace attach.
113153 */
113154 - if (!ret)
113155 + if (!ret) {
113156 arch_ptrace_attach(child);
113157 + gr_audit_ptrace(child);
113158 + }
113159 goto out_put_task_struct;
113160 }
113161
113162 diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
113163 index d89328e..a2c42e2 100644
113164 --- a/kernel/rcu/rcutorture.c
113165 +++ b/kernel/rcu/rcutorture.c
113166 @@ -134,12 +134,12 @@ static DEFINE_PER_CPU(long [RCU_TORTURE_PIPE_LEN + 1],
113167 rcu_torture_count) = { 0 };
113168 static DEFINE_PER_CPU(long [RCU_TORTURE_PIPE_LEN + 1],
113169 rcu_torture_batch) = { 0 };
113170 -static atomic_t rcu_torture_wcount[RCU_TORTURE_PIPE_LEN + 1];
113171 -static atomic_t n_rcu_torture_alloc;
113172 -static atomic_t n_rcu_torture_alloc_fail;
113173 -static atomic_t n_rcu_torture_free;
113174 -static atomic_t n_rcu_torture_mberror;
113175 -static atomic_t n_rcu_torture_error;
113176 +static atomic_unchecked_t rcu_torture_wcount[RCU_TORTURE_PIPE_LEN + 1];
113177 +static atomic_unchecked_t n_rcu_torture_alloc;
113178 +static atomic_unchecked_t n_rcu_torture_alloc_fail;
113179 +static atomic_unchecked_t n_rcu_torture_free;
113180 +static atomic_unchecked_t n_rcu_torture_mberror;
113181 +static atomic_unchecked_t n_rcu_torture_error;
113182 static long n_rcu_torture_barrier_error;
113183 static long n_rcu_torture_boost_ktrerror;
113184 static long n_rcu_torture_boost_rterror;
113185 @@ -148,7 +148,7 @@ static long n_rcu_torture_boosts;
113186 static long n_rcu_torture_timers;
113187 static long n_barrier_attempts;
113188 static long n_barrier_successes;
113189 -static atomic_long_t n_cbfloods;
113190 +static atomic_long_unchecked_t n_cbfloods;
113191 static struct list_head rcu_torture_removed;
113192
113193 static int rcu_torture_writer_state;
113194 @@ -211,11 +211,11 @@ rcu_torture_alloc(void)
113195
113196 spin_lock_bh(&rcu_torture_lock);
113197 if (list_empty(&rcu_torture_freelist)) {
113198 - atomic_inc(&n_rcu_torture_alloc_fail);
113199 + atomic_inc_unchecked(&n_rcu_torture_alloc_fail);
113200 spin_unlock_bh(&rcu_torture_lock);
113201 return NULL;
113202 }
113203 - atomic_inc(&n_rcu_torture_alloc);
113204 + atomic_inc_unchecked(&n_rcu_torture_alloc);
113205 p = rcu_torture_freelist.next;
113206 list_del_init(p);
113207 spin_unlock_bh(&rcu_torture_lock);
113208 @@ -228,7 +228,7 @@ rcu_torture_alloc(void)
113209 static void
113210 rcu_torture_free(struct rcu_torture *p)
113211 {
113212 - atomic_inc(&n_rcu_torture_free);
113213 + atomic_inc_unchecked(&n_rcu_torture_free);
113214 spin_lock_bh(&rcu_torture_lock);
113215 list_add_tail(&p->rtort_free, &rcu_torture_freelist);
113216 spin_unlock_bh(&rcu_torture_lock);
113217 @@ -309,7 +309,7 @@ rcu_torture_pipe_update_one(struct rcu_torture *rp)
113218 i = rp->rtort_pipe_count;
113219 if (i > RCU_TORTURE_PIPE_LEN)
113220 i = RCU_TORTURE_PIPE_LEN;
113221 - atomic_inc(&rcu_torture_wcount[i]);
113222 + atomic_inc_unchecked(&rcu_torture_wcount[i]);
113223 if (++rp->rtort_pipe_count >= RCU_TORTURE_PIPE_LEN) {
113224 rp->rtort_mbtest = 0;
113225 return true;
113226 @@ -839,7 +839,7 @@ rcu_torture_cbflood(void *arg)
113227 VERBOSE_TOROUT_STRING("rcu_torture_cbflood task started");
113228 do {
113229 schedule_timeout_interruptible(cbflood_inter_holdoff);
113230 - atomic_long_inc(&n_cbfloods);
113231 + atomic_long_inc_unchecked(&n_cbfloods);
113232 WARN_ON(signal_pending(current));
113233 for (i = 0; i < cbflood_n_burst; i++) {
113234 for (j = 0; j < cbflood_n_per_burst; j++) {
113235 @@ -967,7 +967,7 @@ rcu_torture_writer(void *arg)
113236 i = old_rp->rtort_pipe_count;
113237 if (i > RCU_TORTURE_PIPE_LEN)
113238 i = RCU_TORTURE_PIPE_LEN;
113239 - atomic_inc(&rcu_torture_wcount[i]);
113240 + atomic_inc_unchecked(&rcu_torture_wcount[i]);
113241 old_rp->rtort_pipe_count++;
113242 switch (synctype[torture_random(&rand) % nsynctypes]) {
113243 case RTWS_DEF_FREE:
113244 @@ -1106,7 +1106,7 @@ static void rcu_torture_timer(unsigned long unused)
113245 return;
113246 }
113247 if (p->rtort_mbtest == 0)
113248 - atomic_inc(&n_rcu_torture_mberror);
113249 + atomic_inc_unchecked(&n_rcu_torture_mberror);
113250 spin_lock(&rand_lock);
113251 cur_ops->read_delay(&rand);
113252 n_rcu_torture_timers++;
113253 @@ -1182,7 +1182,7 @@ rcu_torture_reader(void *arg)
113254 continue;
113255 }
113256 if (p->rtort_mbtest == 0)
113257 - atomic_inc(&n_rcu_torture_mberror);
113258 + atomic_inc_unchecked(&n_rcu_torture_mberror);
113259 cur_ops->read_delay(&rand);
113260 preempt_disable();
113261 pipe_count = p->rtort_pipe_count;
113262 @@ -1250,11 +1250,11 @@ rcu_torture_stats_print(void)
113263 rcu_torture_current,
113264 rcu_torture_current_version,
113265 list_empty(&rcu_torture_freelist),
113266 - atomic_read(&n_rcu_torture_alloc),
113267 - atomic_read(&n_rcu_torture_alloc_fail),
113268 - atomic_read(&n_rcu_torture_free));
113269 + atomic_read_unchecked(&n_rcu_torture_alloc),
113270 + atomic_read_unchecked(&n_rcu_torture_alloc_fail),
113271 + atomic_read_unchecked(&n_rcu_torture_free));
113272 pr_cont("rtmbe: %d rtbke: %ld rtbre: %ld ",
113273 - atomic_read(&n_rcu_torture_mberror),
113274 + atomic_read_unchecked(&n_rcu_torture_mberror),
113275 n_rcu_torture_boost_ktrerror,
113276 n_rcu_torture_boost_rterror);
113277 pr_cont("rtbf: %ld rtb: %ld nt: %ld ",
113278 @@ -1266,17 +1266,17 @@ rcu_torture_stats_print(void)
113279 n_barrier_successes,
113280 n_barrier_attempts,
113281 n_rcu_torture_barrier_error);
113282 - pr_cont("cbflood: %ld\n", atomic_long_read(&n_cbfloods));
113283 + pr_cont("cbflood: %ld\n", atomic_long_read_unchecked(&n_cbfloods));
113284
113285 pr_alert("%s%s ", torture_type, TORTURE_FLAG);
113286 - if (atomic_read(&n_rcu_torture_mberror) != 0 ||
113287 + if (atomic_read_unchecked(&n_rcu_torture_mberror) != 0 ||
113288 n_rcu_torture_barrier_error != 0 ||
113289 n_rcu_torture_boost_ktrerror != 0 ||
113290 n_rcu_torture_boost_rterror != 0 ||
113291 n_rcu_torture_boost_failure != 0 ||
113292 i > 1) {
113293 pr_cont("%s", "!!! ");
113294 - atomic_inc(&n_rcu_torture_error);
113295 + atomic_inc_unchecked(&n_rcu_torture_error);
113296 WARN_ON_ONCE(1);
113297 }
113298 pr_cont("Reader Pipe: ");
113299 @@ -1293,7 +1293,7 @@ rcu_torture_stats_print(void)
113300 pr_alert("%s%s ", torture_type, TORTURE_FLAG);
113301 pr_cont("Free-Block Circulation: ");
113302 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++) {
113303 - pr_cont(" %d", atomic_read(&rcu_torture_wcount[i]));
113304 + pr_cont(" %d", atomic_read_unchecked(&rcu_torture_wcount[i]));
113305 }
113306 pr_cont("\n");
113307
113308 @@ -1647,7 +1647,7 @@ rcu_torture_cleanup(void)
113309
113310 rcu_torture_stats_print(); /* -After- the stats thread is stopped! */
113311
113312 - if (atomic_read(&n_rcu_torture_error) || n_rcu_torture_barrier_error)
113313 + if (atomic_read_unchecked(&n_rcu_torture_error) || n_rcu_torture_barrier_error)
113314 rcu_torture_print_module_parms(cur_ops, "End of test: FAILURE");
113315 else if (torture_onoff_failures())
113316 rcu_torture_print_module_parms(cur_ops,
113317 @@ -1772,18 +1772,18 @@ rcu_torture_init(void)
113318
113319 rcu_torture_current = NULL;
113320 rcu_torture_current_version = 0;
113321 - atomic_set(&n_rcu_torture_alloc, 0);
113322 - atomic_set(&n_rcu_torture_alloc_fail, 0);
113323 - atomic_set(&n_rcu_torture_free, 0);
113324 - atomic_set(&n_rcu_torture_mberror, 0);
113325 - atomic_set(&n_rcu_torture_error, 0);
113326 + atomic_set_unchecked(&n_rcu_torture_alloc, 0);
113327 + atomic_set_unchecked(&n_rcu_torture_alloc_fail, 0);
113328 + atomic_set_unchecked(&n_rcu_torture_free, 0);
113329 + atomic_set_unchecked(&n_rcu_torture_mberror, 0);
113330 + atomic_set_unchecked(&n_rcu_torture_error, 0);
113331 n_rcu_torture_barrier_error = 0;
113332 n_rcu_torture_boost_ktrerror = 0;
113333 n_rcu_torture_boost_rterror = 0;
113334 n_rcu_torture_boost_failure = 0;
113335 n_rcu_torture_boosts = 0;
113336 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++)
113337 - atomic_set(&rcu_torture_wcount[i], 0);
113338 + atomic_set_unchecked(&rcu_torture_wcount[i], 0);
113339 for_each_possible_cpu(cpu) {
113340 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++) {
113341 per_cpu(rcu_torture_count, cpu)[i] = 0;
113342 diff --git a/kernel/rcu/tiny.c b/kernel/rcu/tiny.c
113343 index 944b1b4..45d1d75 100644
113344 --- a/kernel/rcu/tiny.c
113345 +++ b/kernel/rcu/tiny.c
113346 @@ -42,7 +42,7 @@
113347 /* Forward declarations for tiny_plugin.h. */
113348 struct rcu_ctrlblk;
113349 static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp);
113350 -static void rcu_process_callbacks(struct softirq_action *unused);
113351 +static void rcu_process_callbacks(void);
113352 static void __call_rcu(struct rcu_head *head,
113353 rcu_callback_t func,
113354 struct rcu_ctrlblk *rcp);
113355 @@ -170,7 +170,7 @@ static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp)
113356 false));
113357 }
113358
113359 -static void rcu_process_callbacks(struct softirq_action *unused)
113360 +static __latent_entropy void rcu_process_callbacks(void)
113361 {
113362 __rcu_process_callbacks(&rcu_sched_ctrlblk);
113363 __rcu_process_callbacks(&rcu_bh_ctrlblk);
113364 diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
113365 index f07343b..d59d264 100644
113366 --- a/kernel/rcu/tree.c
113367 +++ b/kernel/rcu/tree.c
113368 @@ -336,7 +336,7 @@ static void rcu_momentary_dyntick_idle(void)
113369 */
113370 rdtp = this_cpu_ptr(&rcu_dynticks);
113371 smp_mb__before_atomic(); /* Earlier stuff before QS. */
113372 - atomic_add(2, &rdtp->dynticks); /* QS. */
113373 + atomic_add_unchecked(2, &rdtp->dynticks); /* QS. */
113374 smp_mb__after_atomic(); /* Later stuff after QS. */
113375 break;
113376 }
113377 @@ -658,10 +658,10 @@ static void rcu_eqs_enter_common(long long oldval, bool user)
113378 rcu_prepare_for_idle();
113379 /* CPUs seeing atomic_inc() must see prior RCU read-side crit sects */
113380 smp_mb__before_atomic(); /* See above. */
113381 - atomic_inc(&rdtp->dynticks);
113382 + atomic_inc_unchecked(&rdtp->dynticks);
113383 smp_mb__after_atomic(); /* Force ordering with next sojourn. */
113384 WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) &&
113385 - atomic_read(&rdtp->dynticks) & 0x1);
113386 + atomic_read_unchecked(&rdtp->dynticks) & 0x1);
113387 rcu_dynticks_task_enter();
113388
113389 /*
113390 @@ -784,11 +784,11 @@ static void rcu_eqs_exit_common(long long oldval, int user)
113391
113392 rcu_dynticks_task_exit();
113393 smp_mb__before_atomic(); /* Force ordering w/previous sojourn. */
113394 - atomic_inc(&rdtp->dynticks);
113395 + atomic_inc_unchecked(&rdtp->dynticks);
113396 /* CPUs seeing atomic_inc() must see later RCU read-side crit sects */
113397 smp_mb__after_atomic(); /* See above. */
113398 WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) &&
113399 - !(atomic_read(&rdtp->dynticks) & 0x1));
113400 + !(atomic_read_unchecked(&rdtp->dynticks) & 0x1));
113401 rcu_cleanup_after_idle();
113402 trace_rcu_dyntick(TPS("End"), oldval, rdtp->dynticks_nesting);
113403 if (IS_ENABLED(CONFIG_RCU_EQS_DEBUG) &&
113404 @@ -924,12 +924,12 @@ void rcu_nmi_enter(void)
113405 * to be in the outermost NMI handler that interrupted an RCU-idle
113406 * period (observation due to Andy Lutomirski).
113407 */
113408 - if (!(atomic_read(&rdtp->dynticks) & 0x1)) {
113409 + if (!(atomic_read_unchecked(&rdtp->dynticks) & 0x1)) {
113410 smp_mb__before_atomic(); /* Force delay from prior write. */
113411 - atomic_inc(&rdtp->dynticks);
113412 + atomic_inc_unchecked(&rdtp->dynticks);
113413 /* atomic_inc() before later RCU read-side crit sects */
113414 smp_mb__after_atomic(); /* See above. */
113415 - WARN_ON_ONCE(!(atomic_read(&rdtp->dynticks) & 0x1));
113416 + WARN_ON_ONCE(!(atomic_read_unchecked(&rdtp->dynticks) & 0x1));
113417 incby = 1;
113418 }
113419 rdtp->dynticks_nmi_nesting += incby;
113420 @@ -954,7 +954,7 @@ void rcu_nmi_exit(void)
113421 * to us!)
113422 */
113423 WARN_ON_ONCE(rdtp->dynticks_nmi_nesting <= 0);
113424 - WARN_ON_ONCE(!(atomic_read(&rdtp->dynticks) & 0x1));
113425 + WARN_ON_ONCE(!(atomic_read_unchecked(&rdtp->dynticks) & 0x1));
113426
113427 /*
113428 * If the nesting level is not 1, the CPU wasn't RCU-idle, so
113429 @@ -969,9 +969,9 @@ void rcu_nmi_exit(void)
113430 rdtp->dynticks_nmi_nesting = 0;
113431 /* CPUs seeing atomic_inc() must see prior RCU read-side crit sects */
113432 smp_mb__before_atomic(); /* See above. */
113433 - atomic_inc(&rdtp->dynticks);
113434 + atomic_inc_unchecked(&rdtp->dynticks);
113435 smp_mb__after_atomic(); /* Force delay to next write. */
113436 - WARN_ON_ONCE(atomic_read(&rdtp->dynticks) & 0x1);
113437 + WARN_ON_ONCE(atomic_read_unchecked(&rdtp->dynticks) & 0x1);
113438 }
113439
113440 /**
113441 @@ -984,7 +984,7 @@ void rcu_nmi_exit(void)
113442 */
113443 bool notrace __rcu_is_watching(void)
113444 {
113445 - return atomic_read(this_cpu_ptr(&rcu_dynticks.dynticks)) & 0x1;
113446 + return atomic_read_unchecked(this_cpu_ptr(&rcu_dynticks.dynticks)) & 0x1;
113447 }
113448
113449 /**
113450 @@ -1067,7 +1067,7 @@ static int rcu_is_cpu_rrupt_from_idle(void)
113451 static int dyntick_save_progress_counter(struct rcu_data *rdp,
113452 bool *isidle, unsigned long *maxj)
113453 {
113454 - rdp->dynticks_snap = atomic_add_return(0, &rdp->dynticks->dynticks);
113455 + rdp->dynticks_snap = atomic_add_return_unchecked(0, &rdp->dynticks->dynticks);
113456 rcu_sysidle_check_cpu(rdp, isidle, maxj);
113457 if ((rdp->dynticks_snap & 0x1) == 0) {
113458 trace_rcu_fqs(rdp->rsp->name, rdp->gpnum, rdp->cpu, TPS("dti"));
113459 @@ -1093,7 +1093,7 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp,
113460 int *rcrmp;
113461 unsigned int snap;
113462
113463 - curr = (unsigned int)atomic_add_return(0, &rdp->dynticks->dynticks);
113464 + curr = (unsigned int)atomic_add_return_unchecked(0, &rdp->dynticks->dynticks);
113465 snap = (unsigned int)rdp->dynticks_snap;
113466
113467 /*
113468 @@ -2934,7 +2934,7 @@ __rcu_process_callbacks(struct rcu_state *rsp)
113469 /*
113470 * Do RCU core processing for the current CPU.
113471 */
113472 -static void rcu_process_callbacks(struct softirq_action *unused)
113473 +static void rcu_process_callbacks(void)
113474 {
113475 struct rcu_state *rsp;
113476
113477 @@ -3587,7 +3587,7 @@ static void rcu_report_exp_rdp(struct rcu_state *rsp, struct rcu_data *rdp,
113478 /* Common code for synchronize_{rcu,sched}_expedited() work-done checking. */
113479 static bool sync_exp_work_done(struct rcu_state *rsp, struct rcu_node *rnp,
113480 struct rcu_data *rdp,
113481 - atomic_long_t *stat, unsigned long s)
113482 + atomic_long_unchecked_t *stat, unsigned long s)
113483 {
113484 if (rcu_exp_gp_seq_done(rsp, s)) {
113485 if (rnp)
113486 @@ -3596,7 +3596,7 @@ static bool sync_exp_work_done(struct rcu_state *rsp, struct rcu_node *rnp,
113487 mutex_unlock(&rdp->exp_funnel_mutex);
113488 /* Ensure test happens before caller kfree(). */
113489 smp_mb__before_atomic(); /* ^^^ */
113490 - atomic_long_inc(stat);
113491 + atomic_long_inc_unchecked(stat);
113492 return true;
113493 }
113494 return false;
113495 @@ -3718,7 +3718,7 @@ static void sync_rcu_exp_select_cpus(struct rcu_state *rsp,
113496 struct rcu_dynticks *rdtp = &per_cpu(rcu_dynticks, cpu);
113497
113498 if (raw_smp_processor_id() == cpu ||
113499 - !(atomic_add_return(0, &rdtp->dynticks) & 0x1))
113500 + !(atomic_add_return_unchecked(0, &rdtp->dynticks) & 0x1))
113501 mask_ofl_test |= rdp->grpmask;
113502 }
113503 mask_ofl_ipi = rnp->expmask & ~mask_ofl_test;
113504 @@ -4156,7 +4156,7 @@ rcu_boot_init_percpu_data(int cpu, struct rcu_state *rsp)
113505 rdp->grpmask = 1UL << (cpu - rdp->mynode->grplo);
113506 rdp->dynticks = &per_cpu(rcu_dynticks, cpu);
113507 WARN_ON_ONCE(rdp->dynticks->dynticks_nesting != DYNTICK_TASK_EXIT_IDLE);
113508 - WARN_ON_ONCE(atomic_read(&rdp->dynticks->dynticks) != 1);
113509 + WARN_ON_ONCE(atomic_read_unchecked(&rdp->dynticks->dynticks) != 1);
113510 rdp->cpu = cpu;
113511 rdp->rsp = rsp;
113512 mutex_init(&rdp->exp_funnel_mutex);
113513 @@ -4187,8 +4187,8 @@ rcu_init_percpu_data(int cpu, struct rcu_state *rsp)
113514 init_callback_list(rdp); /* Re-enable callbacks on this CPU. */
113515 rdp->dynticks->dynticks_nesting = DYNTICK_TASK_EXIT_IDLE;
113516 rcu_sysidle_init_percpu_data(rdp->dynticks);
113517 - atomic_set(&rdp->dynticks->dynticks,
113518 - (atomic_read(&rdp->dynticks->dynticks) & ~0x1) + 1);
113519 + atomic_set_unchecked(&rdp->dynticks->dynticks,
113520 + (atomic_read_unchecked(&rdp->dynticks->dynticks) & ~0x1) + 1);
113521 raw_spin_unlock(&rnp->lock); /* irqs remain disabled. */
113522
113523 /*
113524 diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h
113525 index 9fb4e23..e47417d 100644
113526 --- a/kernel/rcu/tree.h
113527 +++ b/kernel/rcu/tree.h
113528 @@ -114,11 +114,11 @@ struct rcu_dynticks {
113529 long long dynticks_nesting; /* Track irq/process nesting level. */
113530 /* Process level is worth LLONG_MAX/2. */
113531 int dynticks_nmi_nesting; /* Track NMI nesting level. */
113532 - atomic_t dynticks; /* Even value for idle, else odd. */
113533 + atomic_unchecked_t dynticks;/* Even value for idle, else odd. */
113534 #ifdef CONFIG_NO_HZ_FULL_SYSIDLE
113535 long long dynticks_idle_nesting;
113536 /* irq/process nesting level from idle. */
113537 - atomic_t dynticks_idle; /* Even value for idle, else odd. */
113538 + atomic_unchecked_t dynticks_idle;/* Even value for idle, else odd. */
113539 /* "Idle" excludes userspace execution. */
113540 unsigned long dynticks_idle_jiffies;
113541 /* End of last non-NMI non-idle period. */
113542 @@ -498,12 +498,12 @@ struct rcu_state {
113543 /* End of fields guarded by barrier_mutex. */
113544
113545 unsigned long expedited_sequence; /* Take a ticket. */
113546 - atomic_long_t expedited_workdone0; /* # done by others #0. */
113547 - atomic_long_t expedited_workdone1; /* # done by others #1. */
113548 - atomic_long_t expedited_workdone2; /* # done by others #2. */
113549 - atomic_long_t expedited_workdone3; /* # done by others #3. */
113550 - atomic_long_t expedited_normal; /* # fallbacks to normal. */
113551 - atomic_t expedited_need_qs; /* # CPUs left to check in. */
113552 + atomic_long_unchecked_t expedited_workdone0; /* # done by others #0. */
113553 + atomic_long_unchecked_t expedited_workdone1; /* # done by others #1. */
113554 + atomic_long_unchecked_t expedited_workdone2; /* # done by others #2. */
113555 + atomic_long_unchecked_t expedited_workdone3; /* # done by others #3. */
113556 + atomic_long_unchecked_t expedited_normal; /* # fallbacks to normal. */
113557 + atomic_unchecked_t expedited_need_qs; /* # CPUs left to check in. */
113558 wait_queue_head_t expedited_wq; /* Wait for check-ins. */
113559 int ncpus_snap; /* # CPUs seen last time. */
113560
113561 diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
113562 index 630c197..1db30ad 100644
113563 --- a/kernel/rcu/tree_plugin.h
113564 +++ b/kernel/rcu/tree_plugin.h
113565 @@ -1276,7 +1276,7 @@ static void rcu_boost_kthread_setaffinity(struct rcu_node *rnp, int outgoingcpu)
113566 free_cpumask_var(cm);
113567 }
113568
113569 -static struct smp_hotplug_thread rcu_cpu_thread_spec = {
113570 +static struct smp_hotplug_thread rcu_cpu_thread_spec __read_only = {
113571 .store = &rcu_cpu_kthread_task,
113572 .thread_should_run = rcu_cpu_kthread_should_run,
113573 .thread_fn = rcu_cpu_kthread,
113574 @@ -1749,7 +1749,7 @@ static void print_cpu_stall_info(struct rcu_state *rsp, int cpu)
113575 "o."[!!(rdp->grpmask & rdp->mynode->qsmaskinit)],
113576 "N."[!!(rdp->grpmask & rdp->mynode->qsmaskinitnext)],
113577 ticks_value, ticks_title,
113578 - atomic_read(&rdtp->dynticks) & 0xfff,
113579 + atomic_read_unchecked(&rdtp->dynticks) & 0xfff,
113580 rdtp->dynticks_nesting, rdtp->dynticks_nmi_nesting,
113581 rdp->softirq_snap, kstat_softirqs_cpu(RCU_SOFTIRQ, cpu),
113582 READ_ONCE(rsp->n_force_qs) - rsp->n_force_qs_gpstart,
113583 @@ -2279,8 +2279,8 @@ static int rcu_nocb_kthread(void *arg)
113584 }
113585 trace_rcu_batch_end(rdp->rsp->name, c, !!list, 0, 0, 1);
113586 smp_mb__before_atomic(); /* _add after CB invocation. */
113587 - atomic_long_add(-c, &rdp->nocb_q_count);
113588 - atomic_long_add(-cl, &rdp->nocb_q_count_lazy);
113589 + atomic_long_sub(c, &rdp->nocb_q_count);
113590 + atomic_long_sub(cl, &rdp->nocb_q_count_lazy);
113591 rdp->n_nocbs_invoked += c;
113592 }
113593 return 0;
113594 @@ -2630,9 +2630,9 @@ static void rcu_sysidle_enter(int irq)
113595 j = jiffies;
113596 WRITE_ONCE(rdtp->dynticks_idle_jiffies, j);
113597 smp_mb__before_atomic();
113598 - atomic_inc(&rdtp->dynticks_idle);
113599 + atomic_inc_unchecked(&rdtp->dynticks_idle);
113600 smp_mb__after_atomic();
113601 - WARN_ON_ONCE(atomic_read(&rdtp->dynticks_idle) & 0x1);
113602 + WARN_ON_ONCE(atomic_read_unchecked(&rdtp->dynticks_idle) & 0x1);
113603 }
113604
113605 /*
113606 @@ -2703,9 +2703,9 @@ static void rcu_sysidle_exit(int irq)
113607
113608 /* Record end of idle period. */
113609 smp_mb__before_atomic();
113610 - atomic_inc(&rdtp->dynticks_idle);
113611 + atomic_inc_unchecked(&rdtp->dynticks_idle);
113612 smp_mb__after_atomic();
113613 - WARN_ON_ONCE(!(atomic_read(&rdtp->dynticks_idle) & 0x1));
113614 + WARN_ON_ONCE(!(atomic_read_unchecked(&rdtp->dynticks_idle) & 0x1));
113615
113616 /*
113617 * If we are the timekeeping CPU, we are permitted to be non-idle
113618 @@ -2751,7 +2751,7 @@ static void rcu_sysidle_check_cpu(struct rcu_data *rdp, bool *isidle,
113619 WARN_ON_ONCE(smp_processor_id() != tick_do_timer_cpu);
113620
113621 /* Pick up current idle and NMI-nesting counter and check. */
113622 - cur = atomic_read(&rdtp->dynticks_idle);
113623 + cur = atomic_read_unchecked(&rdtp->dynticks_idle);
113624 if (cur & 0x1) {
113625 *isidle = false; /* We are not idle! */
113626 return;
113627 diff --git a/kernel/rcu/tree_trace.c b/kernel/rcu/tree_trace.c
113628 index ef7093c..1cc3d0f 100644
113629 --- a/kernel/rcu/tree_trace.c
113630 +++ b/kernel/rcu/tree_trace.c
113631 @@ -125,7 +125,7 @@ static void print_one_rcu_data(struct seq_file *m, struct rcu_data *rdp)
113632 rdp->rcu_qs_ctr_snap == per_cpu(rcu_qs_ctr, rdp->cpu),
113633 rdp->core_needs_qs);
113634 seq_printf(m, " dt=%d/%llx/%d df=%lu",
113635 - atomic_read(&rdp->dynticks->dynticks),
113636 + atomic_read_unchecked(&rdp->dynticks->dynticks),
113637 rdp->dynticks->dynticks_nesting,
113638 rdp->dynticks->dynticks_nmi_nesting,
113639 rdp->dynticks_fqs);
113640 @@ -187,12 +187,12 @@ static int show_rcuexp(struct seq_file *m, void *v)
113641
113642 seq_printf(m, "s=%lu wd0=%lu wd1=%lu wd2=%lu wd3=%lu n=%lu enq=%d sc=%lu\n",
113643 rsp->expedited_sequence,
113644 - atomic_long_read(&rsp->expedited_workdone0),
113645 - atomic_long_read(&rsp->expedited_workdone1),
113646 - atomic_long_read(&rsp->expedited_workdone2),
113647 - atomic_long_read(&rsp->expedited_workdone3),
113648 - atomic_long_read(&rsp->expedited_normal),
113649 - atomic_read(&rsp->expedited_need_qs),
113650 + atomic_long_read_unchecked(&rsp->expedited_workdone0),
113651 + atomic_long_read_unchecked(&rsp->expedited_workdone1),
113652 + atomic_long_read_unchecked(&rsp->expedited_workdone2),
113653 + atomic_long_read_unchecked(&rsp->expedited_workdone3),
113654 + atomic_long_read_unchecked(&rsp->expedited_normal),
113655 + atomic_read_unchecked(&rsp->expedited_need_qs),
113656 rsp->expedited_sequence / 2);
113657 return 0;
113658 }
113659 diff --git a/kernel/resource.c b/kernel/resource.c
113660 index 249b1eb..b3451db 100644
113661 --- a/kernel/resource.c
113662 +++ b/kernel/resource.c
113663 @@ -84,8 +84,8 @@ static void *r_next(struct seq_file *m, void *v, loff_t *pos)
113664
113665 enum { MAX_IORES_LEVEL = 5 };
113666
113667 +static void *r_start(struct seq_file *m, loff_t *pos) __acquires(&resource_lock);
113668 static void *r_start(struct seq_file *m, loff_t *pos)
113669 - __acquires(resource_lock)
113670 {
113671 struct resource *p = m->private;
113672 loff_t l = 0;
113673 @@ -95,8 +95,8 @@ static void *r_start(struct seq_file *m, loff_t *pos)
113674 return p;
113675 }
113676
113677 +static void r_stop(struct seq_file *m, void *v) __releases(&resource_lock);
113678 static void r_stop(struct seq_file *m, void *v)
113679 - __releases(resource_lock)
113680 {
113681 read_unlock(&resource_lock);
113682 }
113683 @@ -162,8 +162,18 @@ static const struct file_operations proc_iomem_operations = {
113684
113685 static int __init ioresources_init(void)
113686 {
113687 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
113688 +#ifdef CONFIG_GRKERNSEC_PROC_USER
113689 + proc_create("ioports", S_IRUSR, NULL, &proc_ioports_operations);
113690 + proc_create("iomem", S_IRUSR, NULL, &proc_iomem_operations);
113691 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
113692 + proc_create("ioports", S_IRUSR | S_IRGRP, NULL, &proc_ioports_operations);
113693 + proc_create("iomem", S_IRUSR | S_IRGRP, NULL, &proc_iomem_operations);
113694 +#endif
113695 +#else
113696 proc_create("ioports", 0, NULL, &proc_ioports_operations);
113697 proc_create("iomem", 0, NULL, &proc_iomem_operations);
113698 +#endif
113699 return 0;
113700 }
113701 __initcall(ioresources_init);
113702 diff --git a/kernel/sched/auto_group.c b/kernel/sched/auto_group.c
113703 index 750ed60..eb01466 100644
113704 --- a/kernel/sched/auto_group.c
113705 +++ b/kernel/sched/auto_group.c
113706 @@ -9,7 +9,7 @@
113707
113708 unsigned int __read_mostly sysctl_sched_autogroup_enabled = 1;
113709 static struct autogroup autogroup_default;
113710 -static atomic_t autogroup_seq_nr;
113711 +static atomic_unchecked_t autogroup_seq_nr;
113712
113713 void __init autogroup_init(struct task_struct *init_task)
113714 {
113715 @@ -77,7 +77,7 @@ static inline struct autogroup *autogroup_create(void)
113716
113717 kref_init(&ag->kref);
113718 init_rwsem(&ag->lock);
113719 - ag->id = atomic_inc_return(&autogroup_seq_nr);
113720 + ag->id = atomic_inc_return_unchecked(&autogroup_seq_nr);
113721 ag->tg = tg;
113722 #ifdef CONFIG_RT_GROUP_SCHED
113723 /*
113724 diff --git a/kernel/sched/core.c b/kernel/sched/core.c
113725 index eb70592..d5c8eb1 100644
113726 --- a/kernel/sched/core.c
113727 +++ b/kernel/sched/core.c
113728 @@ -2162,7 +2162,7 @@ void set_numabalancing_state(bool enabled)
113729 int sysctl_numa_balancing(struct ctl_table *table, int write,
113730 void __user *buffer, size_t *lenp, loff_t *ppos)
113731 {
113732 - struct ctl_table t;
113733 + ctl_table_no_const t;
113734 int err;
113735 int state = static_branch_likely(&sched_numa_balancing);
113736
113737 @@ -2683,8 +2683,10 @@ context_switch(struct rq *rq, struct task_struct *prev,
113738 next->active_mm = oldmm;
113739 atomic_inc(&oldmm->mm_count);
113740 enter_lazy_tlb(oldmm, next);
113741 - } else
113742 + } else {
113743 switch_mm(oldmm, mm, next);
113744 + populate_stack();
113745 + }
113746
113747 if (!prev->mm) {
113748 prev->active_mm = NULL;
113749 @@ -3506,6 +3508,8 @@ int can_nice(const struct task_struct *p, const int nice)
113750 /* convert nice value [19,-20] to rlimit style value [1,40] */
113751 int nice_rlim = nice_to_rlimit(nice);
113752
113753 + gr_learn_resource(p, RLIMIT_NICE, nice_rlim, 1);
113754 +
113755 return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) ||
113756 capable(CAP_SYS_NICE));
113757 }
113758 @@ -3532,7 +3536,8 @@ SYSCALL_DEFINE1(nice, int, increment)
113759 nice = task_nice(current) + increment;
113760
113761 nice = clamp_val(nice, MIN_NICE, MAX_NICE);
113762 - if (increment < 0 && !can_nice(current, nice))
113763 + if (increment < 0 && (!can_nice(current, nice) ||
113764 + gr_handle_chroot_nice()))
113765 return -EPERM;
113766
113767 retval = security_task_setnice(current, nice);
113768 @@ -3841,6 +3846,7 @@ recheck:
113769 if (policy != p->policy && !rlim_rtprio)
113770 return -EPERM;
113771
113772 + gr_learn_resource(p, RLIMIT_RTPRIO, attr->sched_priority, 1);
113773 /* can't increase priority */
113774 if (attr->sched_priority > p->rt_priority &&
113775 attr->sched_priority > rlim_rtprio)
113776 @@ -5180,6 +5186,7 @@ void idle_task_exit(void)
113777
113778 if (mm != &init_mm) {
113779 switch_mm(mm, &init_mm, current);
113780 + populate_stack();
113781 finish_arch_post_lock_switch();
113782 }
113783 mmdrop(mm);
113784 @@ -5305,7 +5312,7 @@ static void migrate_tasks(struct rq *dead_rq)
113785
113786 #if defined(CONFIG_SCHED_DEBUG) && defined(CONFIG_SYSCTL)
113787
113788 -static struct ctl_table sd_ctl_dir[] = {
113789 +static ctl_table_no_const sd_ctl_dir[] __read_only = {
113790 {
113791 .procname = "sched_domain",
113792 .mode = 0555,
113793 @@ -5322,17 +5329,17 @@ static struct ctl_table sd_ctl_root[] = {
113794 {}
113795 };
113796
113797 -static struct ctl_table *sd_alloc_ctl_entry(int n)
113798 +static ctl_table_no_const *sd_alloc_ctl_entry(int n)
113799 {
113800 - struct ctl_table *entry =
113801 + ctl_table_no_const *entry =
113802 kcalloc(n, sizeof(struct ctl_table), GFP_KERNEL);
113803
113804 return entry;
113805 }
113806
113807 -static void sd_free_ctl_entry(struct ctl_table **tablep)
113808 +static void sd_free_ctl_entry(ctl_table_no_const *tablep)
113809 {
113810 - struct ctl_table *entry;
113811 + ctl_table_no_const *entry;
113812
113813 /*
113814 * In the intermediate directories, both the child directory and
113815 @@ -5340,22 +5347,25 @@ static void sd_free_ctl_entry(struct ctl_table **tablep)
113816 * will always be set. In the lowest directory the names are
113817 * static strings and all have proc handlers.
113818 */
113819 - for (entry = *tablep; entry->mode; entry++) {
113820 - if (entry->child)
113821 - sd_free_ctl_entry(&entry->child);
113822 + for (entry = tablep; entry->mode; entry++) {
113823 + if (entry->child) {
113824 + sd_free_ctl_entry(entry->child);
113825 + pax_open_kernel();
113826 + entry->child = NULL;
113827 + pax_close_kernel();
113828 + }
113829 if (entry->proc_handler == NULL)
113830 kfree(entry->procname);
113831 }
113832
113833 - kfree(*tablep);
113834 - *tablep = NULL;
113835 + kfree(tablep);
113836 }
113837
113838 static int min_load_idx = 0;
113839 static int max_load_idx = CPU_LOAD_IDX_MAX-1;
113840
113841 static void
113842 -set_table_entry(struct ctl_table *entry,
113843 +set_table_entry(ctl_table_no_const *entry,
113844 const char *procname, void *data, int maxlen,
113845 umode_t mode, proc_handler *proc_handler,
113846 bool load_idx)
113847 @@ -5375,7 +5385,7 @@ set_table_entry(struct ctl_table *entry,
113848 static struct ctl_table *
113849 sd_alloc_ctl_domain_table(struct sched_domain *sd)
113850 {
113851 - struct ctl_table *table = sd_alloc_ctl_entry(14);
113852 + ctl_table_no_const *table = sd_alloc_ctl_entry(14);
113853
113854 if (table == NULL)
113855 return NULL;
113856 @@ -5413,9 +5423,9 @@ sd_alloc_ctl_domain_table(struct sched_domain *sd)
113857 return table;
113858 }
113859
113860 -static struct ctl_table *sd_alloc_ctl_cpu_table(int cpu)
113861 +static ctl_table_no_const *sd_alloc_ctl_cpu_table(int cpu)
113862 {
113863 - struct ctl_table *entry, *table;
113864 + ctl_table_no_const *entry, *table;
113865 struct sched_domain *sd;
113866 int domain_num = 0, i;
113867 char buf[32];
113868 @@ -5442,11 +5452,13 @@ static struct ctl_table_header *sd_sysctl_header;
113869 static void register_sched_domain_sysctl(void)
113870 {
113871 int i, cpu_num = num_possible_cpus();
113872 - struct ctl_table *entry = sd_alloc_ctl_entry(cpu_num + 1);
113873 + ctl_table_no_const *entry = sd_alloc_ctl_entry(cpu_num + 1);
113874 char buf[32];
113875
113876 WARN_ON(sd_ctl_dir[0].child);
113877 + pax_open_kernel();
113878 sd_ctl_dir[0].child = entry;
113879 + pax_close_kernel();
113880
113881 if (entry == NULL)
113882 return;
113883 @@ -5468,8 +5480,12 @@ static void unregister_sched_domain_sysctl(void)
113884 {
113885 unregister_sysctl_table(sd_sysctl_header);
113886 sd_sysctl_header = NULL;
113887 - if (sd_ctl_dir[0].child)
113888 - sd_free_ctl_entry(&sd_ctl_dir[0].child);
113889 + if (sd_ctl_dir[0].child) {
113890 + sd_free_ctl_entry(sd_ctl_dir[0].child);
113891 + pax_open_kernel();
113892 + sd_ctl_dir[0].child = NULL;
113893 + pax_close_kernel();
113894 + }
113895 }
113896 #else
113897 static void register_sched_domain_sysctl(void)
113898 diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
113899 index cfdc0e6..71f2abd 100644
113900 --- a/kernel/sched/fair.c
113901 +++ b/kernel/sched/fair.c
113902 @@ -7817,7 +7817,7 @@ static void nohz_idle_balance(struct rq *this_rq, enum cpu_idle_type idle) { }
113903 * run_rebalance_domains is triggered when needed from the scheduler tick.
113904 * Also triggered for nohz idle balancing (with nohz_balancing_kick set).
113905 */
113906 -static void run_rebalance_domains(struct softirq_action *h)
113907 +static __latent_entropy void run_rebalance_domains(void)
113908 {
113909 struct rq *this_rq = this_rq();
113910 enum cpu_idle_type idle = this_rq->idle_balance ?
113911 diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
113912 index b242775..b497b69 100644
113913 --- a/kernel/sched/sched.h
113914 +++ b/kernel/sched/sched.h
113915 @@ -1228,7 +1228,7 @@ struct sched_class {
113916 #ifdef CONFIG_FAIR_GROUP_SCHED
113917 void (*task_move_group) (struct task_struct *p);
113918 #endif
113919 -};
113920 +} __do_const;
113921
113922 static inline void put_prev_task(struct rq *rq, struct task_struct *prev)
113923 {
113924 diff --git a/kernel/signal.c b/kernel/signal.c
113925 index f3f1f7a..d2e7863 100644
113926 --- a/kernel/signal.c
113927 +++ b/kernel/signal.c
113928 @@ -53,12 +53,12 @@ static struct kmem_cache *sigqueue_cachep;
113929
113930 int print_fatal_signals __read_mostly;
113931
113932 -static void __user *sig_handler(struct task_struct *t, int sig)
113933 +static __sighandler_t sig_handler(struct task_struct *t, int sig)
113934 {
113935 return t->sighand->action[sig - 1].sa.sa_handler;
113936 }
113937
113938 -static int sig_handler_ignored(void __user *handler, int sig)
113939 +static int sig_handler_ignored(__sighandler_t handler, int sig)
113940 {
113941 /* Is it explicitly or implicitly ignored? */
113942 return handler == SIG_IGN ||
113943 @@ -67,7 +67,7 @@ static int sig_handler_ignored(void __user *handler, int sig)
113944
113945 static int sig_task_ignored(struct task_struct *t, int sig, bool force)
113946 {
113947 - void __user *handler;
113948 + __sighandler_t handler;
113949
113950 handler = sig_handler(t, sig);
113951
113952 @@ -372,6 +372,9 @@ __sigqueue_alloc(int sig, struct task_struct *t, gfp_t flags, int override_rlimi
113953 atomic_inc(&user->sigpending);
113954 rcu_read_unlock();
113955
113956 + if (!override_rlimit)
113957 + gr_learn_resource(t, RLIMIT_SIGPENDING, atomic_read(&user->sigpending), 1);
113958 +
113959 if (override_rlimit ||
113960 atomic_read(&user->sigpending) <=
113961 task_rlimit(t, RLIMIT_SIGPENDING)) {
113962 @@ -494,7 +497,7 @@ flush_signal_handlers(struct task_struct *t, int force_default)
113963
113964 int unhandled_signal(struct task_struct *tsk, int sig)
113965 {
113966 - void __user *handler = tsk->sighand->action[sig-1].sa.sa_handler;
113967 + __sighandler_t handler = tsk->sighand->action[sig-1].sa.sa_handler;
113968 if (is_global_init(tsk))
113969 return 1;
113970 if (handler != SIG_IGN && handler != SIG_DFL)
113971 @@ -556,6 +559,7 @@ static int __dequeue_signal(struct sigpending *pending, sigset_t *mask,
113972 *
113973 * All callers have to hold the siglock.
113974 */
113975 +int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info) __must_hold(&tsk->sighand->siglock);
113976 int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info)
113977 {
113978 int signr;
113979 @@ -742,6 +746,13 @@ static int check_kill_permission(int sig, struct siginfo *info,
113980 }
113981 }
113982
113983 + /* allow glibc communication via tgkill to other threads in our
113984 + thread group */
113985 + if ((info == SEND_SIG_NOINFO || info->si_code != SI_TKILL ||
113986 + sig != (SIGRTMIN+1) || task_tgid_vnr(t) != info->si_pid)
113987 + && gr_handle_signal(t, sig))
113988 + return -EPERM;
113989 +
113990 return security_task_kill(t, info, sig, 0);
113991 }
113992
113993 @@ -1125,7 +1136,7 @@ __group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p)
113994 return send_signal(sig, info, p, 1);
113995 }
113996
113997 -static int
113998 +int
113999 specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t)
114000 {
114001 return send_signal(sig, info, t, 0);
114002 @@ -1162,6 +1173,7 @@ force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
114003 unsigned long int flags;
114004 int ret, blocked, ignored;
114005 struct k_sigaction *action;
114006 + int is_unhandled = 0;
114007
114008 spin_lock_irqsave(&t->sighand->siglock, flags);
114009 action = &t->sighand->action[sig-1];
114010 @@ -1176,9 +1188,18 @@ force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
114011 }
114012 if (action->sa.sa_handler == SIG_DFL)
114013 t->signal->flags &= ~SIGNAL_UNKILLABLE;
114014 + if (action->sa.sa_handler == SIG_IGN || action->sa.sa_handler == SIG_DFL)
114015 + is_unhandled = 1;
114016 ret = specific_send_sig_info(sig, info, t);
114017 spin_unlock_irqrestore(&t->sighand->siglock, flags);
114018
114019 + /* only deal with unhandled signals, java etc trigger SIGSEGV during
114020 + normal operation */
114021 + if (is_unhandled) {
114022 + gr_log_signal(sig, !is_si_special(info) ? info->si_addr : NULL, t);
114023 + gr_handle_crash(t, sig);
114024 + }
114025 +
114026 return ret;
114027 }
114028
114029 @@ -1259,8 +1280,11 @@ int group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p)
114030 ret = check_kill_permission(sig, info, p);
114031 rcu_read_unlock();
114032
114033 - if (!ret && sig)
114034 + if (!ret && sig) {
114035 ret = do_send_sig_info(sig, info, p, true);
114036 + if (!ret)
114037 + gr_log_signal(sig, !is_si_special(info) ? info->si_addr : NULL, p);
114038 + }
114039
114040 return ret;
114041 }
114042 @@ -1774,9 +1798,8 @@ static int sigkill_pending(struct task_struct *tsk)
114043 * If we actually decide not to stop at all because the tracer
114044 * is gone, we keep current->exit_code unless clear_code.
114045 */
114046 +static void ptrace_stop(int exit_code, int why, int clear_code, siginfo_t *info) __must_hold(&current->sighand->siglock);
114047 static void ptrace_stop(int exit_code, int why, int clear_code, siginfo_t *info)
114048 - __releases(&current->sighand->siglock)
114049 - __acquires(&current->sighand->siglock)
114050 {
114051 bool gstop_done = false;
114052
114053 @@ -1896,6 +1919,7 @@ static void ptrace_stop(int exit_code, int why, int clear_code, siginfo_t *info)
114054 recalc_sigpending_tsk(current);
114055 }
114056
114057 +static void ptrace_do_notify(int signr, int exit_code, int why) __must_hold(&current->sighand->siglock);
114058 static void ptrace_do_notify(int signr, int exit_code, int why)
114059 {
114060 siginfo_t info;
114061 @@ -1943,8 +1967,8 @@ void ptrace_notify(int exit_code)
114062 * %false if group stop is already cancelled or ptrace trap is scheduled.
114063 * %true if participated in group stop.
114064 */
114065 +static bool do_signal_stop(int signr) __releases(&current->sighand->siglock);
114066 static bool do_signal_stop(int signr)
114067 - __releases(&current->sighand->siglock)
114068 {
114069 struct signal_struct *sig = current->signal;
114070
114071 @@ -1956,8 +1980,10 @@ static bool do_signal_stop(int signr)
114072 WARN_ON_ONCE(signr & ~JOBCTL_STOP_SIGMASK);
114073
114074 if (!likely(current->jobctl & JOBCTL_STOP_DEQUEUED) ||
114075 - unlikely(signal_group_exit(sig)))
114076 + unlikely(signal_group_exit(sig))) {
114077 + __release(&current->sighand->siglock); // XXX sparse can't model conditional release
114078 return false;
114079 + }
114080 /*
114081 * There is no group stop already in progress. We must
114082 * initiate one now.
114083 @@ -2041,6 +2067,7 @@ static bool do_signal_stop(int signr)
114084 * Schedule it and let the caller deal with it.
114085 */
114086 task_set_jobctl_pending(current, JOBCTL_TRAP_STOP);
114087 + __release(&current->sighand->siglock); // XXX sparse can't model conditional release
114088 return false;
114089 }
114090 }
114091 @@ -2864,7 +2891,15 @@ do_send_specific(pid_t tgid, pid_t pid, int sig, struct siginfo *info)
114092 int error = -ESRCH;
114093
114094 rcu_read_lock();
114095 - p = find_task_by_vpid(pid);
114096 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
114097 + /* allow glibc communication via tgkill to other threads in our
114098 + thread group */
114099 + if (grsec_enable_chroot_findtask && info->si_code == SI_TKILL &&
114100 + sig == (SIGRTMIN+1) && tgid == info->si_pid)
114101 + p = find_task_by_vpid_unrestricted(pid);
114102 + else
114103 +#endif
114104 + p = find_task_by_vpid(pid);
114105 if (p && (tgid <= 0 || task_tgid_vnr(p) == tgid)) {
114106 error = check_kill_permission(sig, info, p);
114107 /*
114108 @@ -3193,8 +3228,8 @@ COMPAT_SYSCALL_DEFINE2(sigaltstack,
114109 }
114110 seg = get_fs();
114111 set_fs(KERNEL_DS);
114112 - ret = do_sigaltstack((stack_t __force __user *) (uss_ptr ? &uss : NULL),
114113 - (stack_t __force __user *) &uoss,
114114 + ret = do_sigaltstack((stack_t __force_user *) (uss_ptr ? &uss : NULL),
114115 + (stack_t __force_user *) &uoss,
114116 compat_user_stack_pointer());
114117 set_fs(seg);
114118 if (ret >= 0 && uoss_ptr) {
114119 diff --git a/kernel/smpboot.c b/kernel/smpboot.c
114120 index d264f59..48b8da3 100644
114121 --- a/kernel/smpboot.c
114122 +++ b/kernel/smpboot.c
114123 @@ -301,7 +301,7 @@ int smpboot_register_percpu_thread_cpumask(struct smp_hotplug_thread *plug_threa
114124 if (cpumask_test_cpu(cpu, cpumask))
114125 smpboot_unpark_thread(plug_thread, cpu);
114126 }
114127 - list_add(&plug_thread->list, &hotplug_threads);
114128 + pax_list_add(&plug_thread->list, &hotplug_threads);
114129 out:
114130 mutex_unlock(&smpboot_threads_lock);
114131 put_online_cpus();
114132 @@ -319,7 +319,7 @@ void smpboot_unregister_percpu_thread(struct smp_hotplug_thread *plug_thread)
114133 {
114134 get_online_cpus();
114135 mutex_lock(&smpboot_threads_lock);
114136 - list_del(&plug_thread->list);
114137 + pax_list_del(&plug_thread->list);
114138 smpboot_destroy_threads(plug_thread);
114139 mutex_unlock(&smpboot_threads_lock);
114140 put_online_cpus();
114141 diff --git a/kernel/softirq.c b/kernel/softirq.c
114142 index 479e443..66d845e1 100644
114143 --- a/kernel/softirq.c
114144 +++ b/kernel/softirq.c
114145 @@ -53,7 +53,7 @@ irq_cpustat_t irq_stat[NR_CPUS] ____cacheline_aligned;
114146 EXPORT_SYMBOL(irq_stat);
114147 #endif
114148
114149 -static struct softirq_action softirq_vec[NR_SOFTIRQS] __cacheline_aligned_in_smp;
114150 +static struct softirq_action softirq_vec[NR_SOFTIRQS] __read_only __aligned(PAGE_SIZE);
114151
114152 DEFINE_PER_CPU(struct task_struct *, ksoftirqd);
114153
114154 @@ -270,7 +270,7 @@ restart:
114155 kstat_incr_softirqs_this_cpu(vec_nr);
114156
114157 trace_softirq_entry(vec_nr);
114158 - h->action(h);
114159 + h->action();
114160 trace_softirq_exit(vec_nr);
114161 if (unlikely(prev_count != preempt_count())) {
114162 pr_err("huh, entered softirq %u %s %p with preempt_count %08x, exited with %08x?\n",
114163 @@ -430,7 +430,7 @@ void __raise_softirq_irqoff(unsigned int nr)
114164 or_softirq_pending(1UL << nr);
114165 }
114166
114167 -void open_softirq(int nr, void (*action)(struct softirq_action *))
114168 +void __init open_softirq(int nr, void (*action)(void))
114169 {
114170 softirq_vec[nr].action = action;
114171 }
114172 @@ -482,7 +482,7 @@ void __tasklet_hi_schedule_first(struct tasklet_struct *t)
114173 }
114174 EXPORT_SYMBOL(__tasklet_hi_schedule_first);
114175
114176 -static void tasklet_action(struct softirq_action *a)
114177 +static void tasklet_action(void)
114178 {
114179 struct tasklet_struct *list;
114180
114181 @@ -518,7 +518,7 @@ static void tasklet_action(struct softirq_action *a)
114182 }
114183 }
114184
114185 -static void tasklet_hi_action(struct softirq_action *a)
114186 +static __latent_entropy void tasklet_hi_action(void)
114187 {
114188 struct tasklet_struct *list;
114189
114190 @@ -744,7 +744,7 @@ static struct notifier_block cpu_nfb = {
114191 .notifier_call = cpu_callback
114192 };
114193
114194 -static struct smp_hotplug_thread softirq_threads = {
114195 +static struct smp_hotplug_thread softirq_threads __read_only = {
114196 .store = &ksoftirqd,
114197 .thread_should_run = ksoftirqd_should_run,
114198 .thread_fn = run_ksoftirqd,
114199 diff --git a/kernel/sys.c b/kernel/sys.c
114200 index 78947de..cb182d1 100644
114201 --- a/kernel/sys.c
114202 +++ b/kernel/sys.c
114203 @@ -160,6 +160,12 @@ static int set_one_prio(struct task_struct *p, int niceval, int error)
114204 error = -EACCES;
114205 goto out;
114206 }
114207 +
114208 + if (gr_handle_chroot_setpriority(p, niceval)) {
114209 + error = -EACCES;
114210 + goto out;
114211 + }
114212 +
114213 no_nice = security_task_setnice(p, niceval);
114214 if (no_nice) {
114215 error = no_nice;
114216 @@ -366,6 +372,20 @@ SYSCALL_DEFINE2(setregid, gid_t, rgid, gid_t, egid)
114217 goto error;
114218 }
114219
114220 + if (gr_check_group_change(new->gid, new->egid, INVALID_GID))
114221 + goto error;
114222 +
114223 + if (!gid_eq(new->gid, old->gid)) {
114224 + /* make sure we generate a learn log for what will
114225 + end up being a role transition after a full-learning
114226 + policy is generated
114227 + CAP_SETGID is required to perform a transition
114228 + we may not log a CAP_SETGID check above, e.g.
114229 + in the case where new rgid = old egid
114230 + */
114231 + gr_learn_cap(current, new, CAP_SETGID);
114232 + }
114233 +
114234 if (rgid != (gid_t) -1 ||
114235 (egid != (gid_t) -1 && !gid_eq(kegid, old->gid)))
114236 new->sgid = new->egid;
114237 @@ -401,6 +421,10 @@ SYSCALL_DEFINE1(setgid, gid_t, gid)
114238 old = current_cred();
114239
114240 retval = -EPERM;
114241 +
114242 + if (gr_check_group_change(kgid, kgid, kgid))
114243 + goto error;
114244 +
114245 if (ns_capable(old->user_ns, CAP_SETGID))
114246 new->gid = new->egid = new->sgid = new->fsgid = kgid;
114247 else if (gid_eq(kgid, old->gid) || gid_eq(kgid, old->sgid))
114248 @@ -418,7 +442,7 @@ error:
114249 /*
114250 * change the user struct in a credentials set to match the new UID
114251 */
114252 -static int set_user(struct cred *new)
114253 +int set_user(struct cred *new)
114254 {
114255 struct user_struct *new_user;
114256
114257 @@ -498,7 +522,18 @@ SYSCALL_DEFINE2(setreuid, uid_t, ruid, uid_t, euid)
114258 goto error;
114259 }
114260
114261 + if (gr_check_user_change(new->uid, new->euid, INVALID_UID))
114262 + goto error;
114263 +
114264 if (!uid_eq(new->uid, old->uid)) {
114265 + /* make sure we generate a learn log for what will
114266 + end up being a role transition after a full-learning
114267 + policy is generated
114268 + CAP_SETUID is required to perform a transition
114269 + we may not log a CAP_SETUID check above, e.g.
114270 + in the case where new ruid = old euid
114271 + */
114272 + gr_learn_cap(current, new, CAP_SETUID);
114273 retval = set_user(new);
114274 if (retval < 0)
114275 goto error;
114276 @@ -548,6 +583,12 @@ SYSCALL_DEFINE1(setuid, uid_t, uid)
114277 old = current_cred();
114278
114279 retval = -EPERM;
114280 +
114281 + if (gr_check_crash_uid(kuid))
114282 + goto error;
114283 + if (gr_check_user_change(kuid, kuid, kuid))
114284 + goto error;
114285 +
114286 if (ns_capable(old->user_ns, CAP_SETUID)) {
114287 new->suid = new->uid = kuid;
114288 if (!uid_eq(kuid, old->uid)) {
114289 @@ -617,6 +658,9 @@ SYSCALL_DEFINE3(setresuid, uid_t, ruid, uid_t, euid, uid_t, suid)
114290 goto error;
114291 }
114292
114293 + if (gr_check_user_change(kruid, keuid, INVALID_UID))
114294 + goto error;
114295 +
114296 if (ruid != (uid_t) -1) {
114297 new->uid = kruid;
114298 if (!uid_eq(kruid, old->uid)) {
114299 @@ -701,6 +745,9 @@ SYSCALL_DEFINE3(setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid)
114300 goto error;
114301 }
114302
114303 + if (gr_check_group_change(krgid, kegid, INVALID_GID))
114304 + goto error;
114305 +
114306 if (rgid != (gid_t) -1)
114307 new->gid = krgid;
114308 if (egid != (gid_t) -1)
114309 @@ -765,12 +812,16 @@ SYSCALL_DEFINE1(setfsuid, uid_t, uid)
114310 uid_eq(kuid, old->suid) || uid_eq(kuid, old->fsuid) ||
114311 ns_capable(old->user_ns, CAP_SETUID)) {
114312 if (!uid_eq(kuid, old->fsuid)) {
114313 + if (gr_check_user_change(INVALID_UID, INVALID_UID, kuid))
114314 + goto error;
114315 +
114316 new->fsuid = kuid;
114317 if (security_task_fix_setuid(new, old, LSM_SETID_FS) == 0)
114318 goto change_okay;
114319 }
114320 }
114321
114322 +error:
114323 abort_creds(new);
114324 return old_fsuid;
114325
114326 @@ -803,12 +854,16 @@ SYSCALL_DEFINE1(setfsgid, gid_t, gid)
114327 if (gid_eq(kgid, old->gid) || gid_eq(kgid, old->egid) ||
114328 gid_eq(kgid, old->sgid) || gid_eq(kgid, old->fsgid) ||
114329 ns_capable(old->user_ns, CAP_SETGID)) {
114330 + if (gr_check_group_change(INVALID_GID, INVALID_GID, kgid))
114331 + goto error;
114332 +
114333 if (!gid_eq(kgid, old->fsgid)) {
114334 new->fsgid = kgid;
114335 goto change_okay;
114336 }
114337 }
114338
114339 +error:
114340 abort_creds(new);
114341 return old_fsgid;
114342
114343 @@ -1187,19 +1242,19 @@ SYSCALL_DEFINE1(olduname, struct oldold_utsname __user *, name)
114344 return -EFAULT;
114345
114346 down_read(&uts_sem);
114347 - error = __copy_to_user(&name->sysname, &utsname()->sysname,
114348 + error = __copy_to_user(name->sysname, &utsname()->sysname,
114349 __OLD_UTS_LEN);
114350 error |= __put_user(0, name->sysname + __OLD_UTS_LEN);
114351 - error |= __copy_to_user(&name->nodename, &utsname()->nodename,
114352 + error |= __copy_to_user(name->nodename, &utsname()->nodename,
114353 __OLD_UTS_LEN);
114354 error |= __put_user(0, name->nodename + __OLD_UTS_LEN);
114355 - error |= __copy_to_user(&name->release, &utsname()->release,
114356 + error |= __copy_to_user(name->release, &utsname()->release,
114357 __OLD_UTS_LEN);
114358 error |= __put_user(0, name->release + __OLD_UTS_LEN);
114359 - error |= __copy_to_user(&name->version, &utsname()->version,
114360 + error |= __copy_to_user(name->version, &utsname()->version,
114361 __OLD_UTS_LEN);
114362 error |= __put_user(0, name->version + __OLD_UTS_LEN);
114363 - error |= __copy_to_user(&name->machine, &utsname()->machine,
114364 + error |= __copy_to_user(name->machine, &utsname()->machine,
114365 __OLD_UTS_LEN);
114366 error |= __put_user(0, name->machine + __OLD_UTS_LEN);
114367 up_read(&uts_sem);
114368 @@ -1400,6 +1455,13 @@ int do_prlimit(struct task_struct *tsk, unsigned int resource,
114369 */
114370 new_rlim->rlim_cur = 1;
114371 }
114372 + /* Handle the case where a fork and setuid occur and then RLIMIT_NPROC
114373 + is changed to a lower value. Since tasks can be created by the same
114374 + user in between this limit change and an execve by this task, force
114375 + a recheck only for this task by setting PF_NPROC_EXCEEDED
114376 + */
114377 + if (resource == RLIMIT_NPROC && tsk->real_cred->user != INIT_USER)
114378 + tsk->flags |= PF_NPROC_EXCEEDED;
114379 }
114380 if (!retval) {
114381 if (old_rlim)
114382 diff --git a/kernel/sysctl.c b/kernel/sysctl.c
114383 index dc6858d..93aa01c 100644
114384 --- a/kernel/sysctl.c
114385 +++ b/kernel/sysctl.c
114386 @@ -95,7 +95,6 @@
114387 #endif
114388
114389 #if defined(CONFIG_SYSCTL)
114390 -
114391 /* External variables not in a header file. */
114392 extern int suid_dumpable;
114393 #ifdef CONFIG_COREDUMP
114394 @@ -112,22 +111,24 @@ extern int sysctl_nr_open_min, sysctl_nr_open_max;
114395 #ifndef CONFIG_MMU
114396 extern int sysctl_nr_trim_pages;
114397 #endif
114398 +extern int sysctl_modify_ldt;
114399
114400 /* Constants used for minimum and maximum */
114401 #ifdef CONFIG_LOCKUP_DETECTOR
114402 -static int sixty = 60;
114403 +static int sixty __read_only = 60;
114404 #endif
114405
114406 -static int __maybe_unused neg_one = -1;
114407 +static int __maybe_unused neg_one __read_only = -1;
114408
114409 -static int zero;
114410 -static int __maybe_unused one = 1;
114411 -static int __maybe_unused two = 2;
114412 -static int __maybe_unused four = 4;
114413 -static unsigned long one_ul = 1;
114414 -static int one_hundred = 100;
114415 +static int zero __read_only = 0;
114416 +static int __maybe_unused one __read_only = 1;
114417 +static int __maybe_unused two __read_only = 2;
114418 +static int __maybe_unused three __read_only = 3;
114419 +static int __maybe_unused four __read_only = 4;
114420 +static unsigned long one_ul __read_only = 1;
114421 +static int one_hundred __read_only = 100;
114422 #ifdef CONFIG_PRINTK
114423 -static int ten_thousand = 10000;
114424 +static int ten_thousand __read_only = 10000;
114425 #endif
114426
114427 /* this is needed for the proc_doulongvec_minmax of vm_dirty_bytes */
114428 @@ -181,10 +182,8 @@ static int proc_taint(struct ctl_table *table, int write,
114429 void __user *buffer, size_t *lenp, loff_t *ppos);
114430 #endif
114431
114432 -#ifdef CONFIG_PRINTK
114433 -static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
114434 +static int proc_dointvec_minmax_secure_sysadmin(struct ctl_table *table, int write,
114435 void __user *buffer, size_t *lenp, loff_t *ppos);
114436 -#endif
114437
114438 static int proc_dointvec_minmax_coredump(struct ctl_table *table, int write,
114439 void __user *buffer, size_t *lenp, loff_t *ppos);
114440 @@ -215,6 +214,8 @@ static int sysrq_sysctl_handler(struct ctl_table *table, int write,
114441
114442 #endif
114443
114444 +extern struct ctl_table grsecurity_table[];
114445 +
114446 static struct ctl_table kern_table[];
114447 static struct ctl_table vm_table[];
114448 static struct ctl_table fs_table[];
114449 @@ -229,6 +230,20 @@ extern struct ctl_table epoll_table[];
114450 int sysctl_legacy_va_layout;
114451 #endif
114452
114453 +#ifdef CONFIG_PAX_SOFTMODE
114454 +static struct ctl_table pax_table[] = {
114455 + {
114456 + .procname = "softmode",
114457 + .data = &pax_softmode,
114458 + .maxlen = sizeof(unsigned int),
114459 + .mode = 0600,
114460 + .proc_handler = &proc_dointvec,
114461 + },
114462 +
114463 + { }
114464 +};
114465 +#endif
114466 +
114467 /* The default sysctl tables: */
114468
114469 static struct ctl_table sysctl_base_table[] = {
114470 @@ -277,6 +292,22 @@ static int max_extfrag_threshold = 1000;
114471 #endif
114472
114473 static struct ctl_table kern_table[] = {
114474 +#if defined(CONFIG_GRKERNSEC_SYSCTL) || defined(CONFIG_GRKERNSEC_ROFS)
114475 + {
114476 + .procname = "grsecurity",
114477 + .mode = 0500,
114478 + .child = grsecurity_table,
114479 + },
114480 +#endif
114481 +
114482 +#ifdef CONFIG_PAX_SOFTMODE
114483 + {
114484 + .procname = "pax",
114485 + .mode = 0500,
114486 + .child = pax_table,
114487 + },
114488 +#endif
114489 +
114490 {
114491 .procname = "sched_child_runs_first",
114492 .data = &sysctl_sched_child_runs_first,
114493 @@ -629,7 +660,7 @@ static struct ctl_table kern_table[] = {
114494 .maxlen = sizeof(int),
114495 .mode = 0644,
114496 /* only handle a transition from default "0" to "1" */
114497 - .proc_handler = proc_dointvec_minmax,
114498 + .proc_handler = proc_dointvec_minmax_secure,
114499 .extra1 = &one,
114500 .extra2 = &one,
114501 },
114502 @@ -640,7 +671,7 @@ static struct ctl_table kern_table[] = {
114503 .data = &modprobe_path,
114504 .maxlen = KMOD_PATH_LEN,
114505 .mode = 0644,
114506 - .proc_handler = proc_dostring,
114507 + .proc_handler = proc_dostring_modpriv,
114508 },
114509 {
114510 .procname = "modules_disabled",
114511 @@ -648,7 +679,7 @@ static struct ctl_table kern_table[] = {
114512 .maxlen = sizeof(int),
114513 .mode = 0644,
114514 /* only handle a transition from default "0" to "1" */
114515 - .proc_handler = proc_dointvec_minmax,
114516 + .proc_handler = proc_dointvec_minmax_secure,
114517 .extra1 = &one,
114518 .extra2 = &one,
114519 },
114520 @@ -803,20 +834,24 @@ static struct ctl_table kern_table[] = {
114521 .data = &dmesg_restrict,
114522 .maxlen = sizeof(int),
114523 .mode = 0644,
114524 - .proc_handler = proc_dointvec_minmax_sysadmin,
114525 + .proc_handler = proc_dointvec_minmax_secure_sysadmin,
114526 .extra1 = &zero,
114527 .extra2 = &one,
114528 },
114529 +#endif
114530 {
114531 .procname = "kptr_restrict",
114532 .data = &kptr_restrict,
114533 .maxlen = sizeof(int),
114534 .mode = 0644,
114535 - .proc_handler = proc_dointvec_minmax_sysadmin,
114536 + .proc_handler = proc_dointvec_minmax_secure_sysadmin,
114537 +#ifdef CONFIG_GRKERNSEC_HIDESYM
114538 + .extra1 = &two,
114539 +#else
114540 .extra1 = &zero,
114541 +#endif
114542 .extra2 = &two,
114543 },
114544 -#endif
114545 {
114546 .procname = "ngroups_max",
114547 .data = &ngroups_max,
114548 @@ -981,6 +1016,17 @@ static struct ctl_table kern_table[] = {
114549 .mode = 0644,
114550 .proc_handler = proc_dointvec,
114551 },
114552 +#ifdef CONFIG_MODIFY_LDT_SYSCALL
114553 + {
114554 + .procname = "modify_ldt",
114555 + .data = &sysctl_modify_ldt,
114556 + .maxlen = sizeof(int),
114557 + .mode = 0644,
114558 + .proc_handler = proc_dointvec_minmax_secure_sysadmin,
114559 + .extra1 = &zero,
114560 + .extra2 = &one,
114561 + },
114562 +#endif
114563 #endif
114564 #if defined(CONFIG_MMU)
114565 {
114566 @@ -1103,10 +1149,17 @@ static struct ctl_table kern_table[] = {
114567 */
114568 {
114569 .procname = "perf_event_paranoid",
114570 - .data = &sysctl_perf_event_paranoid,
114571 - .maxlen = sizeof(sysctl_perf_event_paranoid),
114572 + .data = &sysctl_perf_event_legitimately_concerned,
114573 + .maxlen = sizeof(sysctl_perf_event_legitimately_concerned),
114574 .mode = 0644,
114575 - .proc_handler = proc_dointvec,
114576 + /* go ahead, be a hero */
114577 + .proc_handler = proc_dointvec_minmax_secure_sysadmin,
114578 + .extra1 = &neg_one,
114579 +#ifdef CONFIG_GRKERNSEC_PERF_HARDEN
114580 + .extra2 = &three,
114581 +#else
114582 + .extra2 = &two,
114583 +#endif
114584 },
114585 {
114586 .procname = "perf_event_mlock_kb",
114587 @@ -1409,6 +1462,13 @@ static struct ctl_table vm_table[] = {
114588 .proc_handler = proc_dointvec_minmax,
114589 .extra1 = &zero,
114590 },
114591 + {
114592 + .procname = "heap_stack_gap",
114593 + .data = &sysctl_heap_stack_gap,
114594 + .maxlen = sizeof(sysctl_heap_stack_gap),
114595 + .mode = 0644,
114596 + .proc_handler = proc_doulongvec_minmax,
114597 + },
114598 #else
114599 {
114600 .procname = "nr_trim_pages",
114601 @@ -1735,6 +1795,20 @@ static struct ctl_table fs_table[] = {
114602 .proc_handler = &pipe_proc_fn,
114603 .extra1 = &pipe_min_size,
114604 },
114605 + {
114606 + .procname = "pipe-user-pages-hard",
114607 + .data = &pipe_user_pages_hard,
114608 + .maxlen = sizeof(pipe_user_pages_hard),
114609 + .mode = 0644,
114610 + .proc_handler = proc_doulongvec_minmax,
114611 + },
114612 + {
114613 + .procname = "pipe-user-pages-soft",
114614 + .data = &pipe_user_pages_soft,
114615 + .maxlen = sizeof(pipe_user_pages_soft),
114616 + .mode = 0644,
114617 + .proc_handler = proc_doulongvec_minmax,
114618 + },
114619 { }
114620 };
114621
114622 @@ -1885,6 +1959,16 @@ int proc_dostring(struct ctl_table *table, int write,
114623 (char __user *)buffer, lenp, ppos);
114624 }
114625
114626 +int proc_dostring_modpriv(struct ctl_table *table, int write,
114627 + void __user *buffer, size_t *lenp, loff_t *ppos)
114628 +{
114629 + if (write && !capable(CAP_SYS_MODULE))
114630 + return -EPERM;
114631 +
114632 + return _proc_do_string(table->data, table->maxlen, write,
114633 + buffer, lenp, ppos);
114634 +}
114635 +
114636 static size_t proc_skip_spaces(char **buf)
114637 {
114638 size_t ret;
114639 @@ -1990,6 +2074,8 @@ static int proc_put_long(void __user **buf, size_t *size, unsigned long val,
114640 len = strlen(tmp);
114641 if (len > *size)
114642 len = *size;
114643 + if (len > sizeof(tmp))
114644 + len = sizeof(tmp);
114645 if (copy_to_user(*buf, tmp, len))
114646 return -EFAULT;
114647 *size -= len;
114648 @@ -2168,6 +2254,44 @@ int proc_dointvec(struct ctl_table *table, int write,
114649 NULL,NULL);
114650 }
114651
114652 +static int do_proc_dointvec_conv_secure(bool *negp, unsigned long *lvalp,
114653 + int *valp,
114654 + int write, void *data)
114655 +{
114656 + if (write) {
114657 + if (*negp) {
114658 + if (*lvalp > (unsigned long) INT_MAX + 1)
114659 + return -EINVAL;
114660 + pax_open_kernel();
114661 + *valp = -*lvalp;
114662 + pax_close_kernel();
114663 + } else {
114664 + if (*lvalp > (unsigned long) INT_MAX)
114665 + return -EINVAL;
114666 + pax_open_kernel();
114667 + *valp = *lvalp;
114668 + pax_close_kernel();
114669 + }
114670 + } else {
114671 + int val = *valp;
114672 + if (val < 0) {
114673 + *negp = true;
114674 + *lvalp = -(unsigned long)val;
114675 + } else {
114676 + *negp = false;
114677 + *lvalp = (unsigned long)val;
114678 + }
114679 + }
114680 + return 0;
114681 +}
114682 +
114683 +int proc_dointvec_secure(struct ctl_table *table, int write,
114684 + void __user *buffer, size_t *lenp, loff_t *ppos)
114685 +{
114686 + return do_proc_dointvec(table,write,buffer,lenp,ppos,
114687 + do_proc_dointvec_conv_secure,NULL);
114688 +}
114689 +
114690 /*
114691 * Taint values can only be increased
114692 * This means we can safely use a temporary.
114693 @@ -2175,7 +2299,7 @@ int proc_dointvec(struct ctl_table *table, int write,
114694 static int proc_taint(struct ctl_table *table, int write,
114695 void __user *buffer, size_t *lenp, loff_t *ppos)
114696 {
114697 - struct ctl_table t;
114698 + ctl_table_no_const t;
114699 unsigned long tmptaint = get_taint();
114700 int err;
114701
114702 @@ -2203,16 +2327,14 @@ static int proc_taint(struct ctl_table *table, int write,
114703 return err;
114704 }
114705
114706 -#ifdef CONFIG_PRINTK
114707 -static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
114708 +static int proc_dointvec_minmax_secure_sysadmin(struct ctl_table *table, int write,
114709 void __user *buffer, size_t *lenp, loff_t *ppos)
114710 {
114711 if (write && !capable(CAP_SYS_ADMIN))
114712 return -EPERM;
114713
114714 - return proc_dointvec_minmax(table, write, buffer, lenp, ppos);
114715 + return proc_dointvec_minmax_secure(table, write, buffer, lenp, ppos);
114716 }
114717 -#endif
114718
114719 struct do_proc_dointvec_minmax_conv_param {
114720 int *min;
114721 @@ -2243,6 +2365,32 @@ static int do_proc_dointvec_minmax_conv(bool *negp, unsigned long *lvalp,
114722 return 0;
114723 }
114724
114725 +static int do_proc_dointvec_minmax_conv_secure(bool *negp, unsigned long *lvalp,
114726 + int *valp,
114727 + int write, void *data)
114728 +{
114729 + struct do_proc_dointvec_minmax_conv_param *param = data;
114730 + if (write) {
114731 + int val = *negp ? -*lvalp : *lvalp;
114732 + if ((param->min && *param->min > val) ||
114733 + (param->max && *param->max < val))
114734 + return -EINVAL;
114735 + pax_open_kernel();
114736 + *valp = val;
114737 + pax_close_kernel();
114738 + } else {
114739 + int val = *valp;
114740 + if (val < 0) {
114741 + *negp = true;
114742 + *lvalp = -(unsigned long)val;
114743 + } else {
114744 + *negp = false;
114745 + *lvalp = (unsigned long)val;
114746 + }
114747 + }
114748 + return 0;
114749 +}
114750 +
114751 /**
114752 * proc_dointvec_minmax - read a vector of integers with min/max values
114753 * @table: the sysctl table
114754 @@ -2270,6 +2418,17 @@ int proc_dointvec_minmax(struct ctl_table *table, int write,
114755 do_proc_dointvec_minmax_conv, &param);
114756 }
114757
114758 +int proc_dointvec_minmax_secure(struct ctl_table *table, int write,
114759 + void __user *buffer, size_t *lenp, loff_t *ppos)
114760 +{
114761 + struct do_proc_dointvec_minmax_conv_param param = {
114762 + .min = (int *) table->extra1,
114763 + .max = (int *) table->extra2,
114764 + };
114765 + return do_proc_dointvec(table, write, buffer, lenp, ppos,
114766 + do_proc_dointvec_minmax_conv_secure, &param);
114767 +}
114768 +
114769 static void validate_coredump_safety(void)
114770 {
114771 #ifdef CONFIG_COREDUMP
114772 @@ -2772,6 +2931,12 @@ int proc_dostring(struct ctl_table *table, int write,
114773 return -ENOSYS;
114774 }
114775
114776 +int proc_dostring_modpriv(struct ctl_table *table, int write,
114777 + void __user *buffer, size_t *lenp, loff_t *ppos)
114778 +{
114779 + return -ENOSYS;
114780 +}
114781 +
114782 int proc_dointvec(struct ctl_table *table, int write,
114783 void __user *buffer, size_t *lenp, loff_t *ppos)
114784 {
114785 @@ -2828,5 +2993,6 @@ EXPORT_SYMBOL(proc_dointvec_minmax);
114786 EXPORT_SYMBOL(proc_dointvec_userhz_jiffies);
114787 EXPORT_SYMBOL(proc_dointvec_ms_jiffies);
114788 EXPORT_SYMBOL(proc_dostring);
114789 +EXPORT_SYMBOL(proc_dostring_modpriv);
114790 EXPORT_SYMBOL(proc_doulongvec_minmax);
114791 EXPORT_SYMBOL(proc_doulongvec_ms_jiffies_minmax);
114792 diff --git a/kernel/taskstats.c b/kernel/taskstats.c
114793 index 21f82c2..c1984e5 100644
114794 --- a/kernel/taskstats.c
114795 +++ b/kernel/taskstats.c
114796 @@ -28,9 +28,12 @@
114797 #include <linux/fs.h>
114798 #include <linux/file.h>
114799 #include <linux/pid_namespace.h>
114800 +#include <linux/grsecurity.h>
114801 #include <net/genetlink.h>
114802 #include <linux/atomic.h>
114803
114804 +extern int gr_is_taskstats_denied(int pid);
114805 +
114806 /*
114807 * Maximum length of a cpumask that can be specified in
114808 * the TASKSTATS_CMD_ATTR_REGISTER/DEREGISTER_CPUMASK attribute
114809 @@ -567,6 +570,9 @@ err:
114810
114811 static int taskstats_user_cmd(struct sk_buff *skb, struct genl_info *info)
114812 {
114813 + if (gr_is_taskstats_denied(current->pid))
114814 + return -EACCES;
114815 +
114816 if (info->attrs[TASKSTATS_CMD_ATTR_REGISTER_CPUMASK])
114817 return cmd_attr_register_cpumask(info);
114818 else if (info->attrs[TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK])
114819 diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c
114820 index 7fbba635..7cc64ae 100644
114821 --- a/kernel/time/alarmtimer.c
114822 +++ b/kernel/time/alarmtimer.c
114823 @@ -820,7 +820,7 @@ static int __init alarmtimer_init(void)
114824 struct platform_device *pdev;
114825 int error = 0;
114826 int i;
114827 - struct k_clock alarm_clock = {
114828 + static struct k_clock alarm_clock = {
114829 .clock_getres = alarm_clock_getres,
114830 .clock_get = alarm_clock_get,
114831 .timer_create = alarm_timer_create,
114832 diff --git a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c
114833 index f5e86d2..33a4099 100644
114834 --- a/kernel/time/posix-cpu-timers.c
114835 +++ b/kernel/time/posix-cpu-timers.c
114836 @@ -1497,14 +1497,14 @@ struct k_clock clock_posix_cpu = {
114837
114838 static __init int init_posix_cpu_timers(void)
114839 {
114840 - struct k_clock process = {
114841 + static struct k_clock process = {
114842 .clock_getres = process_cpu_clock_getres,
114843 .clock_get = process_cpu_clock_get,
114844 .timer_create = process_cpu_timer_create,
114845 .nsleep = process_cpu_nsleep,
114846 .nsleep_restart = process_cpu_nsleep_restart,
114847 };
114848 - struct k_clock thread = {
114849 + static struct k_clock thread = {
114850 .clock_getres = thread_cpu_clock_getres,
114851 .clock_get = thread_cpu_clock_get,
114852 .timer_create = thread_cpu_timer_create,
114853 diff --git a/kernel/time/posix-timers.c b/kernel/time/posix-timers.c
114854 index f2826c3..c8d9d80 100644
114855 --- a/kernel/time/posix-timers.c
114856 +++ b/kernel/time/posix-timers.c
114857 @@ -43,6 +43,7 @@
114858 #include <linux/hash.h>
114859 #include <linux/posix-clock.h>
114860 #include <linux/posix-timers.h>
114861 +#include <linux/grsecurity.h>
114862 #include <linux/syscalls.h>
114863 #include <linux/wait.h>
114864 #include <linux/workqueue.h>
114865 @@ -124,7 +125,7 @@ static DEFINE_SPINLOCK(hash_lock);
114866 * which we beg off on and pass to do_sys_settimeofday().
114867 */
114868
114869 -static struct k_clock posix_clocks[MAX_CLOCKS];
114870 +static struct k_clock *posix_clocks[MAX_CLOCKS];
114871
114872 /*
114873 * These ones are defined below.
114874 @@ -284,7 +285,7 @@ static int posix_get_hrtimer_res(clockid_t which_clock, struct timespec *tp)
114875 */
114876 static __init int init_posix_timers(void)
114877 {
114878 - struct k_clock clock_realtime = {
114879 + static struct k_clock clock_realtime = {
114880 .clock_getres = posix_get_hrtimer_res,
114881 .clock_get = posix_clock_realtime_get,
114882 .clock_set = posix_clock_realtime_set,
114883 @@ -296,7 +297,7 @@ static __init int init_posix_timers(void)
114884 .timer_get = common_timer_get,
114885 .timer_del = common_timer_del,
114886 };
114887 - struct k_clock clock_monotonic = {
114888 + static struct k_clock clock_monotonic = {
114889 .clock_getres = posix_get_hrtimer_res,
114890 .clock_get = posix_ktime_get_ts,
114891 .nsleep = common_nsleep,
114892 @@ -306,19 +307,19 @@ static __init int init_posix_timers(void)
114893 .timer_get = common_timer_get,
114894 .timer_del = common_timer_del,
114895 };
114896 - struct k_clock clock_monotonic_raw = {
114897 + static struct k_clock clock_monotonic_raw = {
114898 .clock_getres = posix_get_hrtimer_res,
114899 .clock_get = posix_get_monotonic_raw,
114900 };
114901 - struct k_clock clock_realtime_coarse = {
114902 + static struct k_clock clock_realtime_coarse = {
114903 .clock_getres = posix_get_coarse_res,
114904 .clock_get = posix_get_realtime_coarse,
114905 };
114906 - struct k_clock clock_monotonic_coarse = {
114907 + static struct k_clock clock_monotonic_coarse = {
114908 .clock_getres = posix_get_coarse_res,
114909 .clock_get = posix_get_monotonic_coarse,
114910 };
114911 - struct k_clock clock_tai = {
114912 + static struct k_clock clock_tai = {
114913 .clock_getres = posix_get_hrtimer_res,
114914 .clock_get = posix_get_tai,
114915 .nsleep = common_nsleep,
114916 @@ -328,7 +329,7 @@ static __init int init_posix_timers(void)
114917 .timer_get = common_timer_get,
114918 .timer_del = common_timer_del,
114919 };
114920 - struct k_clock clock_boottime = {
114921 + static struct k_clock clock_boottime = {
114922 .clock_getres = posix_get_hrtimer_res,
114923 .clock_get = posix_get_boottime,
114924 .nsleep = common_nsleep,
114925 @@ -540,7 +541,7 @@ void posix_timers_register_clock(const clockid_t clock_id,
114926 return;
114927 }
114928
114929 - posix_clocks[clock_id] = *new_clock;
114930 + posix_clocks[clock_id] = new_clock;
114931 }
114932 EXPORT_SYMBOL_GPL(posix_timers_register_clock);
114933
114934 @@ -586,9 +587,9 @@ static struct k_clock *clockid_to_kclock(const clockid_t id)
114935 return (id & CLOCKFD_MASK) == CLOCKFD ?
114936 &clock_posix_dynamic : &clock_posix_cpu;
114937
114938 - if (id >= MAX_CLOCKS || !posix_clocks[id].clock_getres)
114939 + if (id >= MAX_CLOCKS || !posix_clocks[id] || !posix_clocks[id]->clock_getres)
114940 return NULL;
114941 - return &posix_clocks[id];
114942 + return posix_clocks[id];
114943 }
114944
114945 static int common_timer_create(struct k_itimer *new_timer)
114946 @@ -606,7 +607,7 @@ SYSCALL_DEFINE3(timer_create, const clockid_t, which_clock,
114947 struct k_clock *kc = clockid_to_kclock(which_clock);
114948 struct k_itimer *new_timer;
114949 int error, new_timer_id;
114950 - sigevent_t event;
114951 + sigevent_t event = { };
114952 int it_id_set = IT_ID_NOT_SET;
114953
114954 if (!kc)
114955 @@ -1021,6 +1022,13 @@ SYSCALL_DEFINE2(clock_settime, const clockid_t, which_clock,
114956 if (copy_from_user(&new_tp, tp, sizeof (*tp)))
114957 return -EFAULT;
114958
114959 + /* only the CLOCK_REALTIME clock can be set, all other clocks
114960 + have their clock_set fptr set to a nosettime dummy function
114961 + CLOCK_REALTIME has a NULL clock_set fptr which causes it to
114962 + call common_clock_set, which calls do_sys_settimeofday, which
114963 + we hook
114964 + */
114965 +
114966 return kc->clock_set(which_clock, &new_tp);
114967 }
114968
114969 diff --git a/kernel/time/time.c b/kernel/time/time.c
114970 index 86751c6..7875536 100644
114971 --- a/kernel/time/time.c
114972 +++ b/kernel/time/time.c
114973 @@ -177,6 +177,11 @@ int do_sys_settimeofday(const struct timespec *tv, const struct timezone *tz)
114974 if (tz->tz_minuteswest > 15*60 || tz->tz_minuteswest < -15*60)
114975 return -EINVAL;
114976
114977 + /* we log in do_settimeofday called below, so don't log twice
114978 + */
114979 + if (!tv)
114980 + gr_log_timechange();
114981 +
114982 sys_tz = *tz;
114983 update_vsyscall_tz();
114984 if (firsttime) {
114985 diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
114986 index 99188ee..29f96f9 100644
114987 --- a/kernel/time/timekeeping.c
114988 +++ b/kernel/time/timekeeping.c
114989 @@ -15,6 +15,7 @@
114990 #include <linux/init.h>
114991 #include <linux/mm.h>
114992 #include <linux/sched.h>
114993 +#include <linux/grsecurity.h>
114994 #include <linux/syscore_ops.h>
114995 #include <linux/clocksource.h>
114996 #include <linux/jiffies.h>
114997 @@ -915,6 +916,8 @@ int do_settimeofday64(const struct timespec64 *ts)
114998 if (!timespec64_valid_strict(ts))
114999 return -EINVAL;
115000
115001 + gr_log_timechange();
115002 +
115003 raw_spin_lock_irqsave(&timekeeper_lock, flags);
115004 write_seqcount_begin(&tk_core.seq);
115005
115006 diff --git a/kernel/time/timer.c b/kernel/time/timer.c
115007 index bbc5d11..6141050 100644
115008 --- a/kernel/time/timer.c
115009 +++ b/kernel/time/timer.c
115010 @@ -1429,7 +1429,7 @@ void update_process_times(int user_tick)
115011 /*
115012 * This function runs timers and the timer-tq in bottom half context.
115013 */
115014 -static void run_timer_softirq(struct softirq_action *h)
115015 +static __latent_entropy void run_timer_softirq(void)
115016 {
115017 struct tvec_base *base = this_cpu_ptr(&tvec_bases);
115018
115019 diff --git a/kernel/time/timer_list.c b/kernel/time/timer_list.c
115020 index ba7d8b2..aa301b0 100644
115021 --- a/kernel/time/timer_list.c
115022 +++ b/kernel/time/timer_list.c
115023 @@ -50,12 +50,16 @@ static void SEQ_printf(struct seq_file *m, const char *fmt, ...)
115024
115025 static void print_name_offset(struct seq_file *m, void *sym)
115026 {
115027 +#ifdef CONFIG_GRKERNSEC_HIDESYM
115028 + SEQ_printf(m, "<%p>", NULL);
115029 +#else
115030 char symname[KSYM_NAME_LEN];
115031
115032 if (lookup_symbol_name((unsigned long)sym, symname) < 0)
115033 SEQ_printf(m, "<%pK>", sym);
115034 else
115035 SEQ_printf(m, "%s", symname);
115036 +#endif
115037 }
115038
115039 static void
115040 @@ -124,11 +128,14 @@ next_one:
115041 static void
115042 print_base(struct seq_file *m, struct hrtimer_clock_base *base, u64 now)
115043 {
115044 +#ifdef CONFIG_GRKERNSEC_HIDESYM
115045 + SEQ_printf(m, " .base: %p\n", NULL);
115046 +#else
115047 SEQ_printf(m, " .base: %pK\n", base);
115048 +#endif
115049 SEQ_printf(m, " .index: %d\n", base->index);
115050
115051 SEQ_printf(m, " .resolution: %u nsecs\n", (unsigned) hrtimer_resolution);
115052 -
115053 SEQ_printf(m, " .get_time: ");
115054 print_name_offset(m, base->get_time);
115055 SEQ_printf(m, "\n");
115056 @@ -393,7 +400,11 @@ static int __init init_timer_list_procfs(void)
115057 {
115058 struct proc_dir_entry *pe;
115059
115060 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
115061 + pe = proc_create("timer_list", 0400, NULL, &timer_list_fops);
115062 +#else
115063 pe = proc_create("timer_list", 0444, NULL, &timer_list_fops);
115064 +#endif
115065 if (!pe)
115066 return -ENOMEM;
115067 return 0;
115068 diff --git a/kernel/time/timer_stats.c b/kernel/time/timer_stats.c
115069 index 1adecb4..b4fb631 100644
115070 --- a/kernel/time/timer_stats.c
115071 +++ b/kernel/time/timer_stats.c
115072 @@ -116,7 +116,7 @@ static ktime_t time_start, time_stop;
115073 static unsigned long nr_entries;
115074 static struct entry entries[MAX_ENTRIES];
115075
115076 -static atomic_t overflow_count;
115077 +static atomic_unchecked_t overflow_count;
115078
115079 /*
115080 * The entries are in a hash-table, for fast lookup:
115081 @@ -140,7 +140,7 @@ static void reset_entries(void)
115082 nr_entries = 0;
115083 memset(entries, 0, sizeof(entries));
115084 memset(tstat_hash_table, 0, sizeof(tstat_hash_table));
115085 - atomic_set(&overflow_count, 0);
115086 + atomic_set_unchecked(&overflow_count, 0);
115087 }
115088
115089 static struct entry *alloc_entry(void)
115090 @@ -261,7 +261,7 @@ void timer_stats_update_stats(void *timer, pid_t pid, void *startf,
115091 if (likely(entry))
115092 entry->count++;
115093 else
115094 - atomic_inc(&overflow_count);
115095 + atomic_inc_unchecked(&overflow_count);
115096
115097 out_unlock:
115098 raw_spin_unlock_irqrestore(lock, flags);
115099 @@ -269,12 +269,16 @@ void timer_stats_update_stats(void *timer, pid_t pid, void *startf,
115100
115101 static void print_name_offset(struct seq_file *m, unsigned long addr)
115102 {
115103 +#ifdef CONFIG_GRKERNSEC_HIDESYM
115104 + seq_printf(m, "<%p>", NULL);
115105 +#else
115106 char symname[KSYM_NAME_LEN];
115107
115108 if (lookup_symbol_name(addr, symname) < 0)
115109 - seq_printf(m, "<%p>", (void *)addr);
115110 + seq_printf(m, "<%pK>", (void *)addr);
115111 else
115112 seq_printf(m, "%s", symname);
115113 +#endif
115114 }
115115
115116 static int tstats_show(struct seq_file *m, void *v)
115117 @@ -300,8 +304,8 @@ static int tstats_show(struct seq_file *m, void *v)
115118
115119 seq_puts(m, "Timer Stats Version: v0.3\n");
115120 seq_printf(m, "Sample period: %ld.%03ld s\n", period.tv_sec, ms);
115121 - if (atomic_read(&overflow_count))
115122 - seq_printf(m, "Overflow: %d entries\n", atomic_read(&overflow_count));
115123 + if (atomic_read_unchecked(&overflow_count))
115124 + seq_printf(m, "Overflow: %d entries\n", atomic_read_unchecked(&overflow_count));
115125 seq_printf(m, "Collection: %s\n", timer_stats_active ? "active" : "inactive");
115126
115127 for (i = 0; i < nr_entries; i++) {
115128 @@ -417,7 +421,11 @@ static int __init init_tstats_procfs(void)
115129 {
115130 struct proc_dir_entry *pe;
115131
115132 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
115133 + pe = proc_create("timer_stats", 0600, NULL, &tstats_fops);
115134 +#else
115135 pe = proc_create("timer_stats", 0644, NULL, &tstats_fops);
115136 +#endif
115137 if (!pe)
115138 return -ENOMEM;
115139 return 0;
115140 diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
115141 index e45db6b..1fb429b 100644
115142 --- a/kernel/trace/Kconfig
115143 +++ b/kernel/trace/Kconfig
115144 @@ -120,6 +120,7 @@ config TRACING_SUPPORT
115145 # irqflags tracing for your architecture.
115146 depends on TRACE_IRQFLAGS_SUPPORT || PPC32
115147 depends on STACKTRACE_SUPPORT
115148 + depends on !GRKERNSEC_KMEM
115149 default y
115150
115151 if TRACING_SUPPORT
115152 @@ -378,6 +379,7 @@ config BLK_DEV_IO_TRACE
115153 depends on BLOCK
115154 select RELAY
115155 select DEBUG_FS
115156 + depends on !GRKERNSEC_KMEM
115157 select TRACEPOINTS
115158 select GENERIC_TRACER
115159 select STACKTRACE
115160 diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c
115161 index a990824..9c8e7ad 100644
115162 --- a/kernel/trace/blktrace.c
115163 +++ b/kernel/trace/blktrace.c
115164 @@ -328,7 +328,7 @@ static ssize_t blk_dropped_read(struct file *filp, char __user *buffer,
115165 struct blk_trace *bt = filp->private_data;
115166 char buf[16];
115167
115168 - snprintf(buf, sizeof(buf), "%u\n", atomic_read(&bt->dropped));
115169 + snprintf(buf, sizeof(buf), "%u\n", atomic_read_unchecked(&bt->dropped));
115170
115171 return simple_read_from_buffer(buffer, count, ppos, buf, strlen(buf));
115172 }
115173 @@ -386,7 +386,7 @@ static int blk_subbuf_start_callback(struct rchan_buf *buf, void *subbuf,
115174 return 1;
115175
115176 bt = buf->chan->private_data;
115177 - atomic_inc(&bt->dropped);
115178 + atomic_inc_unchecked(&bt->dropped);
115179 return 0;
115180 }
115181
115182 @@ -485,7 +485,7 @@ int do_blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
115183
115184 bt->dir = dir;
115185 bt->dev = dev;
115186 - atomic_set(&bt->dropped, 0);
115187 + atomic_set_unchecked(&bt->dropped, 0);
115188 INIT_LIST_HEAD(&bt->running_list);
115189
115190 ret = -EIO;
115191 diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
115192 index 3f743b1..a3e3588 100644
115193 --- a/kernel/trace/ftrace.c
115194 +++ b/kernel/trace/ftrace.c
115195 @@ -2423,12 +2423,17 @@ ftrace_code_disable(struct module *mod, struct dyn_ftrace *rec)
115196 if (unlikely(ftrace_disabled))
115197 return 0;
115198
115199 + ret = ftrace_arch_code_modify_prepare();
115200 + FTRACE_WARN_ON(ret);
115201 + if (ret)
115202 + return 0;
115203 +
115204 ret = ftrace_make_nop(mod, rec, MCOUNT_ADDR);
115205 + FTRACE_WARN_ON(ftrace_arch_code_modify_post_process());
115206 if (ret) {
115207 ftrace_bug(ret, rec);
115208 - return 0;
115209 }
115210 - return 1;
115211 + return ret ? 0 : 1;
115212 }
115213
115214 /*
115215 @@ -4813,8 +4818,10 @@ static int ftrace_process_locs(struct module *mod,
115216 if (!count)
115217 return 0;
115218
115219 + pax_open_kernel();
115220 sort(start, count, sizeof(*start),
115221 ftrace_cmp_ips, NULL);
115222 + pax_close_kernel();
115223
115224 start_pg = ftrace_allocate_pages(count);
115225 if (!start_pg)
115226 @@ -5691,7 +5698,7 @@ static int alloc_retstack_tasklist(struct ftrace_ret_stack **ret_stack_list)
115227
115228 if (t->ret_stack == NULL) {
115229 atomic_set(&t->tracing_graph_pause, 0);
115230 - atomic_set(&t->trace_overrun, 0);
115231 + atomic_set_unchecked(&t->trace_overrun, 0);
115232 t->curr_ret_stack = -1;
115233 /* Make sure the tasks see the -1 first: */
115234 smp_wmb();
115235 @@ -5914,7 +5921,7 @@ static void
115236 graph_init_task(struct task_struct *t, struct ftrace_ret_stack *ret_stack)
115237 {
115238 atomic_set(&t->tracing_graph_pause, 0);
115239 - atomic_set(&t->trace_overrun, 0);
115240 + atomic_set_unchecked(&t->trace_overrun, 0);
115241 t->ftrace_timestamp = 0;
115242 /* make curr_ret_stack visible before we add the ret_stack */
115243 smp_wmb();
115244 diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
115245 index 9c6045a..927be25 100644
115246 --- a/kernel/trace/ring_buffer.c
115247 +++ b/kernel/trace/ring_buffer.c
115248 @@ -296,9 +296,9 @@ struct buffer_data_page {
115249 */
115250 struct buffer_page {
115251 struct list_head list; /* list of buffer pages */
115252 - local_t write; /* index for next write */
115253 + local_unchecked_t write; /* index for next write */
115254 unsigned read; /* index for next read */
115255 - local_t entries; /* entries on this page */
115256 + local_unchecked_t entries; /* entries on this page */
115257 unsigned long real_end; /* real end of data */
115258 struct buffer_data_page *page; /* Actual data page */
115259 };
115260 @@ -448,11 +448,11 @@ struct ring_buffer_per_cpu {
115261 unsigned long last_overrun;
115262 local_t entries_bytes;
115263 local_t entries;
115264 - local_t overrun;
115265 - local_t commit_overrun;
115266 - local_t dropped_events;
115267 + local_unchecked_t overrun;
115268 + local_unchecked_t commit_overrun;
115269 + local_unchecked_t dropped_events;
115270 local_t committing;
115271 - local_t commits;
115272 + local_unchecked_t commits;
115273 unsigned long read;
115274 unsigned long read_bytes;
115275 u64 write_stamp;
115276 @@ -1022,8 +1022,8 @@ static int rb_tail_page_update(struct ring_buffer_per_cpu *cpu_buffer,
115277 *
115278 * We add a counter to the write field to denote this.
115279 */
115280 - old_write = local_add_return(RB_WRITE_INTCNT, &next_page->write);
115281 - old_entries = local_add_return(RB_WRITE_INTCNT, &next_page->entries);
115282 + old_write = local_add_return_unchecked(RB_WRITE_INTCNT, &next_page->write);
115283 + old_entries = local_add_return_unchecked(RB_WRITE_INTCNT, &next_page->entries);
115284
115285 /*
115286 * Just make sure we have seen our old_write and synchronize
115287 @@ -1051,8 +1051,8 @@ static int rb_tail_page_update(struct ring_buffer_per_cpu *cpu_buffer,
115288 * cmpxchg to only update if an interrupt did not already
115289 * do it for us. If the cmpxchg fails, we don't care.
115290 */
115291 - (void)local_cmpxchg(&next_page->write, old_write, val);
115292 - (void)local_cmpxchg(&next_page->entries, old_entries, eval);
115293 + (void)local_cmpxchg_unchecked(&next_page->write, old_write, val);
115294 + (void)local_cmpxchg_unchecked(&next_page->entries, old_entries, eval);
115295
115296 /*
115297 * No need to worry about races with clearing out the commit.
115298 @@ -1420,12 +1420,12 @@ static void rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer);
115299
115300 static inline unsigned long rb_page_entries(struct buffer_page *bpage)
115301 {
115302 - return local_read(&bpage->entries) & RB_WRITE_MASK;
115303 + return local_read_unchecked(&bpage->entries) & RB_WRITE_MASK;
115304 }
115305
115306 static inline unsigned long rb_page_write(struct buffer_page *bpage)
115307 {
115308 - return local_read(&bpage->write) & RB_WRITE_MASK;
115309 + return local_read_unchecked(&bpage->write) & RB_WRITE_MASK;
115310 }
115311
115312 static int
115313 @@ -1520,7 +1520,7 @@ rb_remove_pages(struct ring_buffer_per_cpu *cpu_buffer, unsigned int nr_pages)
115314 * bytes consumed in ring buffer from here.
115315 * Increment overrun to account for the lost events.
115316 */
115317 - local_add(page_entries, &cpu_buffer->overrun);
115318 + local_add_unchecked(page_entries, &cpu_buffer->overrun);
115319 local_sub(BUF_PAGE_SIZE, &cpu_buffer->entries_bytes);
115320 }
115321
115322 @@ -1951,7 +1951,7 @@ rb_handle_head_page(struct ring_buffer_per_cpu *cpu_buffer,
115323 * it is our responsibility to update
115324 * the counters.
115325 */
115326 - local_add(entries, &cpu_buffer->overrun);
115327 + local_add_unchecked(entries, &cpu_buffer->overrun);
115328 local_sub(BUF_PAGE_SIZE, &cpu_buffer->entries_bytes);
115329
115330 /*
115331 @@ -2085,7 +2085,7 @@ rb_reset_tail(struct ring_buffer_per_cpu *cpu_buffer,
115332 if (tail == BUF_PAGE_SIZE)
115333 tail_page->real_end = 0;
115334
115335 - local_sub(length, &tail_page->write);
115336 + local_sub_unchecked(length, &tail_page->write);
115337 return;
115338 }
115339
115340 @@ -2120,7 +2120,7 @@ rb_reset_tail(struct ring_buffer_per_cpu *cpu_buffer,
115341 rb_event_set_padding(event);
115342
115343 /* Set the write back to the previous setting */
115344 - local_sub(length, &tail_page->write);
115345 + local_sub_unchecked(length, &tail_page->write);
115346 return;
115347 }
115348
115349 @@ -2132,7 +2132,7 @@ rb_reset_tail(struct ring_buffer_per_cpu *cpu_buffer,
115350
115351 /* Set write to end of buffer */
115352 length = (tail + length) - BUF_PAGE_SIZE;
115353 - local_sub(length, &tail_page->write);
115354 + local_sub_unchecked(length, &tail_page->write);
115355 }
115356
115357 /*
115358 @@ -2159,7 +2159,7 @@ rb_move_tail(struct ring_buffer_per_cpu *cpu_buffer,
115359 * about it.
115360 */
115361 if (unlikely(next_page == commit_page)) {
115362 - local_inc(&cpu_buffer->commit_overrun);
115363 + local_inc_unchecked(&cpu_buffer->commit_overrun);
115364 goto out_reset;
115365 }
115366
115367 @@ -2189,7 +2189,7 @@ rb_move_tail(struct ring_buffer_per_cpu *cpu_buffer,
115368 * this is easy, just stop here.
115369 */
115370 if (!(buffer->flags & RB_FL_OVERWRITE)) {
115371 - local_inc(&cpu_buffer->dropped_events);
115372 + local_inc_unchecked(&cpu_buffer->dropped_events);
115373 goto out_reset;
115374 }
115375
115376 @@ -2215,7 +2215,7 @@ rb_move_tail(struct ring_buffer_per_cpu *cpu_buffer,
115377 cpu_buffer->tail_page) &&
115378 (cpu_buffer->commit_page ==
115379 cpu_buffer->reader_page))) {
115380 - local_inc(&cpu_buffer->commit_overrun);
115381 + local_inc_unchecked(&cpu_buffer->commit_overrun);
115382 goto out_reset;
115383 }
115384 }
115385 @@ -2366,7 +2366,7 @@ rb_try_to_discard(struct ring_buffer_per_cpu *cpu_buffer,
115386
115387 if (bpage->page == (void *)addr && rb_page_write(bpage) == old_index) {
115388 unsigned long write_mask =
115389 - local_read(&bpage->write) & ~RB_WRITE_MASK;
115390 + local_read_unchecked(&bpage->write) & ~RB_WRITE_MASK;
115391 unsigned long event_length = rb_event_length(event);
115392 /*
115393 * This is on the tail page. It is possible that
115394 @@ -2376,7 +2376,7 @@ rb_try_to_discard(struct ring_buffer_per_cpu *cpu_buffer,
115395 */
115396 old_index += write_mask;
115397 new_index += write_mask;
115398 - index = local_cmpxchg(&bpage->write, old_index, new_index);
115399 + index = local_cmpxchg_unchecked(&bpage->write, old_index, new_index);
115400 if (index == old_index) {
115401 /* update counters */
115402 local_sub(event_length, &cpu_buffer->entries_bytes);
115403 @@ -2391,7 +2391,7 @@ rb_try_to_discard(struct ring_buffer_per_cpu *cpu_buffer,
115404 static void rb_start_commit(struct ring_buffer_per_cpu *cpu_buffer)
115405 {
115406 local_inc(&cpu_buffer->committing);
115407 - local_inc(&cpu_buffer->commits);
115408 + local_inc_unchecked(&cpu_buffer->commits);
115409 }
115410
115411 static void
115412 @@ -2456,7 +2456,7 @@ static inline void rb_end_commit(struct ring_buffer_per_cpu *cpu_buffer)
115413 return;
115414
115415 again:
115416 - commits = local_read(&cpu_buffer->commits);
115417 + commits = local_read_unchecked(&cpu_buffer->commits);
115418 /* synchronize with interrupts */
115419 barrier();
115420 if (local_read(&cpu_buffer->committing) == 1)
115421 @@ -2472,7 +2472,7 @@ static inline void rb_end_commit(struct ring_buffer_per_cpu *cpu_buffer)
115422 * updating of the commit page and the clearing of the
115423 * committing counter.
115424 */
115425 - if (unlikely(local_read(&cpu_buffer->commits) != commits) &&
115426 + if (unlikely(local_read_unchecked(&cpu_buffer->commits) != commits) &&
115427 !local_read(&cpu_buffer->committing)) {
115428 local_inc(&cpu_buffer->committing);
115429 goto again;
115430 @@ -2700,7 +2700,7 @@ __rb_reserve_next(struct ring_buffer_per_cpu *cpu_buffer,
115431 info->length += RB_LEN_TIME_EXTEND;
115432
115433 tail_page = info->tail_page = cpu_buffer->tail_page;
115434 - write = local_add_return(info->length, &tail_page->write);
115435 + write = local_add_return_unchecked(info->length, &tail_page->write);
115436
115437 /* set write to only the index of the write */
115438 write &= RB_WRITE_MASK;
115439 @@ -2723,7 +2723,7 @@ __rb_reserve_next(struct ring_buffer_per_cpu *cpu_buffer,
115440 kmemcheck_annotate_bitfield(event, bitfield);
115441 rb_update_event(cpu_buffer, event, info);
115442
115443 - local_inc(&tail_page->entries);
115444 + local_inc_unchecked(&tail_page->entries);
115445
115446 /*
115447 * If this is the first commit on the page, then update
115448 @@ -2760,7 +2760,7 @@ rb_reserve_next_event(struct ring_buffer *buffer,
115449 barrier();
115450 if (unlikely(ACCESS_ONCE(cpu_buffer->buffer) != buffer)) {
115451 local_dec(&cpu_buffer->committing);
115452 - local_dec(&cpu_buffer->commits);
115453 + local_dec_unchecked(&cpu_buffer->commits);
115454 return NULL;
115455 }
115456 #endif
115457 @@ -2889,7 +2889,7 @@ rb_decrement_entry(struct ring_buffer_per_cpu *cpu_buffer,
115458
115459 /* Do the likely case first */
115460 if (likely(bpage->page == (void *)addr)) {
115461 - local_dec(&bpage->entries);
115462 + local_dec_unchecked(&bpage->entries);
115463 return;
115464 }
115465
115466 @@ -2901,7 +2901,7 @@ rb_decrement_entry(struct ring_buffer_per_cpu *cpu_buffer,
115467 start = bpage;
115468 do {
115469 if (bpage->page == (void *)addr) {
115470 - local_dec(&bpage->entries);
115471 + local_dec_unchecked(&bpage->entries);
115472 return;
115473 }
115474 rb_inc_page(cpu_buffer, &bpage);
115475 @@ -3189,7 +3189,7 @@ static inline unsigned long
115476 rb_num_of_entries(struct ring_buffer_per_cpu *cpu_buffer)
115477 {
115478 return local_read(&cpu_buffer->entries) -
115479 - (local_read(&cpu_buffer->overrun) + cpu_buffer->read);
115480 + (local_read_unchecked(&cpu_buffer->overrun) + cpu_buffer->read);
115481 }
115482
115483 /**
115484 @@ -3278,7 +3278,7 @@ unsigned long ring_buffer_overrun_cpu(struct ring_buffer *buffer, int cpu)
115485 return 0;
115486
115487 cpu_buffer = buffer->buffers[cpu];
115488 - ret = local_read(&cpu_buffer->overrun);
115489 + ret = local_read_unchecked(&cpu_buffer->overrun);
115490
115491 return ret;
115492 }
115493 @@ -3301,7 +3301,7 @@ ring_buffer_commit_overrun_cpu(struct ring_buffer *buffer, int cpu)
115494 return 0;
115495
115496 cpu_buffer = buffer->buffers[cpu];
115497 - ret = local_read(&cpu_buffer->commit_overrun);
115498 + ret = local_read_unchecked(&cpu_buffer->commit_overrun);
115499
115500 return ret;
115501 }
115502 @@ -3323,7 +3323,7 @@ ring_buffer_dropped_events_cpu(struct ring_buffer *buffer, int cpu)
115503 return 0;
115504
115505 cpu_buffer = buffer->buffers[cpu];
115506 - ret = local_read(&cpu_buffer->dropped_events);
115507 + ret = local_read_unchecked(&cpu_buffer->dropped_events);
115508
115509 return ret;
115510 }
115511 @@ -3386,7 +3386,7 @@ unsigned long ring_buffer_overruns(struct ring_buffer *buffer)
115512 /* if you care about this being correct, lock the buffer */
115513 for_each_buffer_cpu(buffer, cpu) {
115514 cpu_buffer = buffer->buffers[cpu];
115515 - overruns += local_read(&cpu_buffer->overrun);
115516 + overruns += local_read_unchecked(&cpu_buffer->overrun);
115517 }
115518
115519 return overruns;
115520 @@ -3557,8 +3557,8 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer)
115521 /*
115522 * Reset the reader page to size zero.
115523 */
115524 - local_set(&cpu_buffer->reader_page->write, 0);
115525 - local_set(&cpu_buffer->reader_page->entries, 0);
115526 + local_set_unchecked(&cpu_buffer->reader_page->write, 0);
115527 + local_set_unchecked(&cpu_buffer->reader_page->entries, 0);
115528 local_set(&cpu_buffer->reader_page->page->commit, 0);
115529 cpu_buffer->reader_page->real_end = 0;
115530
115531 @@ -3592,7 +3592,7 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer)
115532 * want to compare with the last_overrun.
115533 */
115534 smp_mb();
115535 - overwrite = local_read(&(cpu_buffer->overrun));
115536 + overwrite = local_read_unchecked(&(cpu_buffer->overrun));
115537
115538 /*
115539 * Here's the tricky part.
115540 @@ -4178,8 +4178,8 @@ rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer)
115541
115542 cpu_buffer->head_page
115543 = list_entry(cpu_buffer->pages, struct buffer_page, list);
115544 - local_set(&cpu_buffer->head_page->write, 0);
115545 - local_set(&cpu_buffer->head_page->entries, 0);
115546 + local_set_unchecked(&cpu_buffer->head_page->write, 0);
115547 + local_set_unchecked(&cpu_buffer->head_page->entries, 0);
115548 local_set(&cpu_buffer->head_page->page->commit, 0);
115549
115550 cpu_buffer->head_page->read = 0;
115551 @@ -4189,18 +4189,18 @@ rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer)
115552
115553 INIT_LIST_HEAD(&cpu_buffer->reader_page->list);
115554 INIT_LIST_HEAD(&cpu_buffer->new_pages);
115555 - local_set(&cpu_buffer->reader_page->write, 0);
115556 - local_set(&cpu_buffer->reader_page->entries, 0);
115557 + local_set_unchecked(&cpu_buffer->reader_page->write, 0);
115558 + local_set_unchecked(&cpu_buffer->reader_page->entries, 0);
115559 local_set(&cpu_buffer->reader_page->page->commit, 0);
115560 cpu_buffer->reader_page->read = 0;
115561
115562 local_set(&cpu_buffer->entries_bytes, 0);
115563 - local_set(&cpu_buffer->overrun, 0);
115564 - local_set(&cpu_buffer->commit_overrun, 0);
115565 - local_set(&cpu_buffer->dropped_events, 0);
115566 + local_set_unchecked(&cpu_buffer->overrun, 0);
115567 + local_set_unchecked(&cpu_buffer->commit_overrun, 0);
115568 + local_set_unchecked(&cpu_buffer->dropped_events, 0);
115569 local_set(&cpu_buffer->entries, 0);
115570 local_set(&cpu_buffer->committing, 0);
115571 - local_set(&cpu_buffer->commits, 0);
115572 + local_set_unchecked(&cpu_buffer->commits, 0);
115573 cpu_buffer->read = 0;
115574 cpu_buffer->read_bytes = 0;
115575
115576 @@ -4590,8 +4590,8 @@ int ring_buffer_read_page(struct ring_buffer *buffer,
115577 rb_init_page(bpage);
115578 bpage = reader->page;
115579 reader->page = *data_page;
115580 - local_set(&reader->write, 0);
115581 - local_set(&reader->entries, 0);
115582 + local_set_unchecked(&reader->write, 0);
115583 + local_set_unchecked(&reader->entries, 0);
115584 reader->read = 0;
115585 *data_page = bpage;
115586
115587 diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
115588 index d929340..e0e84ca 100644
115589 --- a/kernel/trace/trace.c
115590 +++ b/kernel/trace/trace.c
115591 @@ -3546,7 +3546,7 @@ int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set)
115592 return 0;
115593 }
115594
115595 -int set_tracer_flag(struct trace_array *tr, unsigned int mask, int enabled)
115596 +int set_tracer_flag(struct trace_array *tr, unsigned long mask, int enabled)
115597 {
115598 /* do nothing if flag is already set */
115599 if (!!(tr->trace_flags & mask) == !!enabled)
115600 diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
115601 index 919d9d0..8db0243 100644
115602 --- a/kernel/trace/trace.h
115603 +++ b/kernel/trace/trace.h
115604 @@ -1335,7 +1335,7 @@ void trace_printk_control(bool enabled);
115605 void trace_printk_init_buffers(void);
115606 void trace_printk_start_comm(void);
115607 int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set);
115608 -int set_tracer_flag(struct trace_array *tr, unsigned int mask, int enabled);
115609 +int set_tracer_flag(struct trace_array *tr, unsigned long mask, int enabled);
115610
115611 /*
115612 * Normal trace_printk() and friends allocates special buffers
115613 diff --git a/kernel/trace/trace_clock.c b/kernel/trace/trace_clock.c
115614 index 0f06532..247c8e7 100644
115615 --- a/kernel/trace/trace_clock.c
115616 +++ b/kernel/trace/trace_clock.c
115617 @@ -127,7 +127,7 @@ u64 notrace trace_clock_global(void)
115618 }
115619 EXPORT_SYMBOL_GPL(trace_clock_global);
115620
115621 -static atomic64_t trace_counter;
115622 +static atomic64_unchecked_t trace_counter;
115623
115624 /*
115625 * trace_clock_counter(): simply an atomic counter.
115626 @@ -136,5 +136,5 @@ static atomic64_t trace_counter;
115627 */
115628 u64 notrace trace_clock_counter(void)
115629 {
115630 - return atomic64_add_return(1, &trace_counter);
115631 + return atomic64_inc_return_unchecked(&trace_counter);
115632 }
115633 diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
115634 index d202d99..1bf816c 100644
115635 --- a/kernel/trace/trace_events.c
115636 +++ b/kernel/trace/trace_events.c
115637 @@ -2369,7 +2369,6 @@ __trace_early_add_new_event(struct trace_event_call *call,
115638 return 0;
115639 }
115640
115641 -struct ftrace_module_file_ops;
115642 static void __add_event_to_tracers(struct trace_event_call *call);
115643
115644 /* Add an additional event_call dynamically */
115645 diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c
115646 index a663cbb..64fcf73 100644
115647 --- a/kernel/trace/trace_functions_graph.c
115648 +++ b/kernel/trace/trace_functions_graph.c
115649 @@ -137,7 +137,7 @@ ftrace_push_return_trace(unsigned long ret, unsigned long func, int *depth,
115650
115651 /* The return trace stack is full */
115652 if (current->curr_ret_stack == FTRACE_RETFUNC_DEPTH - 1) {
115653 - atomic_inc(&current->trace_overrun);
115654 + atomic_inc_unchecked(&current->trace_overrun);
115655 return -EBUSY;
115656 }
115657
115658 @@ -234,7 +234,7 @@ ftrace_pop_return_trace(struct ftrace_graph_ret *trace, unsigned long *ret,
115659 *ret = current->ret_stack[index].ret;
115660 trace->func = current->ret_stack[index].func;
115661 trace->calltime = current->ret_stack[index].calltime;
115662 - trace->overrun = atomic_read(&current->trace_overrun);
115663 + trace->overrun = atomic_read_unchecked(&current->trace_overrun);
115664 trace->depth = index;
115665 }
115666
115667 diff --git a/kernel/trace/trace_mmiotrace.c b/kernel/trace/trace_mmiotrace.c
115668 index 2be8c4f..444ecfb 100644
115669 --- a/kernel/trace/trace_mmiotrace.c
115670 +++ b/kernel/trace/trace_mmiotrace.c
115671 @@ -24,7 +24,7 @@ struct header_iter {
115672 static struct trace_array *mmio_trace_array;
115673 static bool overrun_detected;
115674 static unsigned long prev_overruns;
115675 -static atomic_t dropped_count;
115676 +static atomic_unchecked_t dropped_count;
115677
115678 static void mmio_reset_data(struct trace_array *tr)
115679 {
115680 @@ -124,7 +124,7 @@ static void mmio_close(struct trace_iterator *iter)
115681
115682 static unsigned long count_overruns(struct trace_iterator *iter)
115683 {
115684 - unsigned long cnt = atomic_xchg(&dropped_count, 0);
115685 + unsigned long cnt = atomic_xchg_unchecked(&dropped_count, 0);
115686 unsigned long over = ring_buffer_overruns(iter->trace_buffer->buffer);
115687
115688 if (over > prev_overruns)
115689 @@ -307,7 +307,7 @@ static void __trace_mmiotrace_rw(struct trace_array *tr,
115690 event = trace_buffer_lock_reserve(buffer, TRACE_MMIO_RW,
115691 sizeof(*entry), 0, pc);
115692 if (!event) {
115693 - atomic_inc(&dropped_count);
115694 + atomic_inc_unchecked(&dropped_count);
115695 return;
115696 }
115697 entry = ring_buffer_event_data(event);
115698 @@ -337,7 +337,7 @@ static void __trace_mmiotrace_map(struct trace_array *tr,
115699 event = trace_buffer_lock_reserve(buffer, TRACE_MMIO_MAP,
115700 sizeof(*entry), 0, pc);
115701 if (!event) {
115702 - atomic_inc(&dropped_count);
115703 + atomic_inc_unchecked(&dropped_count);
115704 return;
115705 }
115706 entry = ring_buffer_event_data(event);
115707 diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c
115708 index 2829821..a290dc8 100644
115709 --- a/kernel/trace/trace_output.c
115710 +++ b/kernel/trace/trace_output.c
115711 @@ -713,14 +713,16 @@ int register_trace_event(struct trace_event *event)
115712 goto out;
115713 }
115714
115715 + pax_open_kernel();
115716 if (event->funcs->trace == NULL)
115717 - event->funcs->trace = trace_nop_print;
115718 + *(void **)&event->funcs->trace = trace_nop_print;
115719 if (event->funcs->raw == NULL)
115720 - event->funcs->raw = trace_nop_print;
115721 + *(void **)&event->funcs->raw = trace_nop_print;
115722 if (event->funcs->hex == NULL)
115723 - event->funcs->hex = trace_nop_print;
115724 + *(void **)&event->funcs->hex = trace_nop_print;
115725 if (event->funcs->binary == NULL)
115726 - event->funcs->binary = trace_nop_print;
115727 + *(void **)&event->funcs->binary = trace_nop_print;
115728 + pax_close_kernel();
115729
115730 key = event->type & (EVENT_HASHSIZE - 1);
115731
115732 diff --git a/kernel/trace/trace_seq.c b/kernel/trace/trace_seq.c
115733 index e694c9f..6775a38 100644
115734 --- a/kernel/trace/trace_seq.c
115735 +++ b/kernel/trace/trace_seq.c
115736 @@ -337,7 +337,7 @@ int trace_seq_path(struct trace_seq *s, const struct path *path)
115737 return 0;
115738 }
115739
115740 - seq_buf_path(&s->seq, path, "\n");
115741 + seq_buf_path(&s->seq, path, "\n\\");
115742
115743 if (unlikely(seq_buf_has_overflowed(&s->seq))) {
115744 s->seq.len = save_len;
115745 diff --git a/kernel/trace/trace_stack.c b/kernel/trace/trace_stack.c
115746 index 202df6c..58bab5d 100644
115747 --- a/kernel/trace/trace_stack.c
115748 +++ b/kernel/trace/trace_stack.c
115749 @@ -88,7 +88,7 @@ check_stack(unsigned long ip, unsigned long *stack)
115750 return;
115751
115752 /* we do not handle interrupt stacks yet */
115753 - if (!object_is_on_stack(stack))
115754 + if (!object_starts_on_stack(stack))
115755 return;
115756
115757 /* Can't do this from NMI context (can cause deadlocks) */
115758 diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c
115759 index 0655afb..bfb4b48 100644
115760 --- a/kernel/trace/trace_syscalls.c
115761 +++ b/kernel/trace/trace_syscalls.c
115762 @@ -591,6 +591,8 @@ static int perf_sysenter_enable(struct trace_event_call *call)
115763 int num;
115764
115765 num = ((struct syscall_metadata *)call->data)->syscall_nr;
115766 + if (WARN_ON_ONCE(num < 0 || num >= NR_syscalls))
115767 + return -EINVAL;
115768
115769 mutex_lock(&syscall_trace_lock);
115770 if (!sys_perf_refcount_enter)
115771 @@ -611,6 +613,8 @@ static void perf_sysenter_disable(struct trace_event_call *call)
115772 int num;
115773
115774 num = ((struct syscall_metadata *)call->data)->syscall_nr;
115775 + if (WARN_ON_ONCE(num < 0 || num >= NR_syscalls))
115776 + return;
115777
115778 mutex_lock(&syscall_trace_lock);
115779 sys_perf_refcount_enter--;
115780 @@ -663,6 +667,8 @@ static int perf_sysexit_enable(struct trace_event_call *call)
115781 int num;
115782
115783 num = ((struct syscall_metadata *)call->data)->syscall_nr;
115784 + if (WARN_ON_ONCE(num < 0 || num >= NR_syscalls))
115785 + return -EINVAL;
115786
115787 mutex_lock(&syscall_trace_lock);
115788 if (!sys_perf_refcount_exit)
115789 @@ -683,6 +689,8 @@ static void perf_sysexit_disable(struct trace_event_call *call)
115790 int num;
115791
115792 num = ((struct syscall_metadata *)call->data)->syscall_nr;
115793 + if (WARN_ON_ONCE(num < 0 || num >= NR_syscalls))
115794 + return;
115795
115796 mutex_lock(&syscall_trace_lock);
115797 sys_perf_refcount_exit--;
115798 diff --git a/kernel/user.c b/kernel/user.c
115799 index b069ccb..c59fe26 100644
115800 --- a/kernel/user.c
115801 +++ b/kernel/user.c
115802 @@ -127,8 +127,8 @@ static struct user_struct *uid_hash_find(kuid_t uid, struct hlist_head *hashent)
115803 * IRQ state (as stored in flags) is restored and uidhash_lock released
115804 * upon function exit.
115805 */
115806 +static void free_user(struct user_struct *up, unsigned long flags) __releases(&uidhash_lock);
115807 static void free_user(struct user_struct *up, unsigned long flags)
115808 - __releases(&uidhash_lock)
115809 {
115810 uid_hash_remove(up);
115811 spin_unlock_irqrestore(&uidhash_lock, flags);
115812 diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
115813 index 88fefa6..d1e2bd7 100644
115814 --- a/kernel/user_namespace.c
115815 +++ b/kernel/user_namespace.c
115816 @@ -84,6 +84,21 @@ int create_user_ns(struct cred *new)
115817 !kgid_has_mapping(parent_ns, group))
115818 return -EPERM;
115819
115820 +#ifdef CONFIG_GRKERNSEC
115821 + /*
115822 + * This doesn't really inspire confidence:
115823 + * http://marc.info/?l=linux-kernel&m=135543612731939&w=2
115824 + * http://marc.info/?l=linux-kernel&m=135545831607095&w=2
115825 + * Increases kernel attack surface in areas developers
115826 + * previously cared little about ("low importance due
115827 + * to requiring "root" capability")
115828 + * To be removed when this code receives *proper* review
115829 + */
115830 + if (!capable(CAP_SYS_ADMIN) || !capable(CAP_SETUID) ||
115831 + !capable(CAP_SETGID))
115832 + return -EPERM;
115833 +#endif
115834 +
115835 ns = kmem_cache_zalloc(user_ns_cachep, GFP_KERNEL);
115836 if (!ns)
115837 return -ENOMEM;
115838 @@ -981,7 +996,7 @@ static int userns_install(struct nsproxy *nsproxy, struct ns_common *ns)
115839 if (!thread_group_empty(current))
115840 return -EINVAL;
115841
115842 - if (current->fs->users != 1)
115843 + if (atomic_read(&current->fs->users) != 1)
115844 return -EINVAL;
115845
115846 if (!ns_capable(user_ns, CAP_SYS_ADMIN))
115847 diff --git a/kernel/utsname_sysctl.c b/kernel/utsname_sysctl.c
115848 index c8eac43..4b5f08f 100644
115849 --- a/kernel/utsname_sysctl.c
115850 +++ b/kernel/utsname_sysctl.c
115851 @@ -47,7 +47,7 @@ static void put_uts(struct ctl_table *table, int write, void *which)
115852 static int proc_do_uts_string(struct ctl_table *table, int write,
115853 void __user *buffer, size_t *lenp, loff_t *ppos)
115854 {
115855 - struct ctl_table uts_table;
115856 + ctl_table_no_const uts_table;
115857 int r;
115858 memcpy(&uts_table, table, sizeof(uts_table));
115859 uts_table.data = get_uts(table, write);
115860 diff --git a/kernel/watchdog.c b/kernel/watchdog.c
115861 index 18f34cf..e7513f2 100644
115862 --- a/kernel/watchdog.c
115863 +++ b/kernel/watchdog.c
115864 @@ -664,7 +664,7 @@ static int watchdog_nmi_enable(unsigned int cpu) { return 0; }
115865 static void watchdog_nmi_disable(unsigned int cpu) { return; }
115866 #endif /* CONFIG_HARDLOCKUP_DETECTOR */
115867
115868 -static struct smp_hotplug_thread watchdog_threads = {
115869 +static struct smp_hotplug_thread watchdog_threads __read_only = {
115870 .store = &softlockup_watchdog,
115871 .thread_should_run = watchdog_should_run,
115872 .thread_fn = watchdog,
115873 diff --git a/kernel/workqueue.c b/kernel/workqueue.c
115874 index 450c21f..16482d9 100644
115875 --- a/kernel/workqueue.c
115876 +++ b/kernel/workqueue.c
115877 @@ -1866,9 +1866,8 @@ static void pool_mayday_timeout(unsigned long __pool)
115878 * multiple times. Does GFP_KERNEL allocations. Called only from
115879 * manager.
115880 */
115881 +static void maybe_create_worker(struct worker_pool *pool) __must_hold(&pool->lock);
115882 static void maybe_create_worker(struct worker_pool *pool)
115883 -__releases(&pool->lock)
115884 -__acquires(&pool->lock)
115885 {
115886 restart:
115887 spin_unlock_irq(&pool->lock);
115888 @@ -1958,9 +1957,8 @@ static bool manage_workers(struct worker *worker)
115889 * CONTEXT:
115890 * spin_lock_irq(pool->lock) which is released and regrabbed.
115891 */
115892 +static void process_one_work(struct worker *worker, struct work_struct *work) __must_hold(&pool->lock);
115893 static void process_one_work(struct worker *worker, struct work_struct *work)
115894 -__releases(&pool->lock)
115895 -__acquires(&pool->lock)
115896 {
115897 struct pool_workqueue *pwq = get_work_pwq(work);
115898 struct worker_pool *pool = worker->pool;
115899 @@ -4462,7 +4460,7 @@ static void rebind_workers(struct worker_pool *pool)
115900 WARN_ON_ONCE(!(worker_flags & WORKER_UNBOUND));
115901 worker_flags |= WORKER_REBOUND;
115902 worker_flags &= ~WORKER_UNBOUND;
115903 - ACCESS_ONCE(worker->flags) = worker_flags;
115904 + ACCESS_ONCE_RW(worker->flags) = worker_flags;
115905 }
115906
115907 spin_unlock_irq(&pool->lock);
115908 diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
115909 index 8c15b29..fc52e8e 100644
115910 --- a/lib/Kconfig.debug
115911 +++ b/lib/Kconfig.debug
115912 @@ -243,6 +243,7 @@ config PAGE_OWNER
115913 bool "Track page owner"
115914 depends on DEBUG_KERNEL && STACKTRACE_SUPPORT
115915 select DEBUG_FS
115916 + depends on !GRKERNSEC_KMEM
115917 select STACKTRACE
115918 select PAGE_EXTENSION
115919 help
115920 @@ -257,6 +258,7 @@ config PAGE_OWNER
115921
115922 config DEBUG_FS
115923 bool "Debug Filesystem"
115924 + depends on !GRKERNSEC_KMEM
115925 help
115926 debugfs is a virtual file system that kernel developers use to put
115927 debugging files into. Enable this option to be able to read and
115928 @@ -498,6 +500,7 @@ config DEBUG_KMEMLEAK
115929 bool "Kernel memory leak detector"
115930 depends on DEBUG_KERNEL && HAVE_DEBUG_KMEMLEAK
115931 select DEBUG_FS
115932 + depends on !GRKERNSEC_KMEM
115933 select STACKTRACE if STACKTRACE_SUPPORT
115934 select KALLSYMS
115935 select CRC32
115936 @@ -945,7 +948,7 @@ config DEBUG_MUTEXES
115937
115938 config DEBUG_WW_MUTEX_SLOWPATH
115939 bool "Wait/wound mutex debugging: Slowpath testing"
115940 - depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
115941 + depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT && !PAX_CONSTIFY_PLUGIN
115942 select DEBUG_LOCK_ALLOC
115943 select DEBUG_SPINLOCK
115944 select DEBUG_MUTEXES
115945 @@ -962,7 +965,7 @@ config DEBUG_WW_MUTEX_SLOWPATH
115946
115947 config DEBUG_LOCK_ALLOC
115948 bool "Lock debugging: detect incorrect freeing of live locks"
115949 - depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
115950 + depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT && !PAX_CONSTIFY_PLUGIN
115951 select DEBUG_SPINLOCK
115952 select DEBUG_MUTEXES
115953 select LOCKDEP
115954 @@ -976,7 +979,7 @@ config DEBUG_LOCK_ALLOC
115955
115956 config PROVE_LOCKING
115957 bool "Lock debugging: prove locking correctness"
115958 - depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
115959 + depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT && !PAX_CONSTIFY_PLUGIN
115960 select LOCKDEP
115961 select DEBUG_SPINLOCK
115962 select DEBUG_MUTEXES
115963 @@ -1027,7 +1030,7 @@ config LOCKDEP
115964
115965 config LOCK_STAT
115966 bool "Lock usage statistics"
115967 - depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
115968 + depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT && !PAX_CONSTIFY_PLUGIN
115969 select LOCKDEP
115970 select DEBUG_SPINLOCK
115971 select DEBUG_MUTEXES
115972 @@ -1412,6 +1415,7 @@ config NOTIFIER_ERROR_INJECTION
115973 tristate "Notifier error injection"
115974 depends on DEBUG_KERNEL
115975 select DEBUG_FS
115976 + depends on !GRKERNSEC_KMEM
115977 help
115978 This option provides the ability to inject artificial errors to
115979 specified notifier chain callbacks. It is useful to test the error
115980 @@ -1524,6 +1528,7 @@ config FAIL_IO_TIMEOUT
115981 config FAIL_MMC_REQUEST
115982 bool "Fault-injection capability for MMC IO"
115983 select DEBUG_FS
115984 + depends on !GRKERNSEC_KMEM
115985 depends on FAULT_INJECTION && MMC
115986 help
115987 Provide fault-injection capability for MMC IO.
115988 @@ -1535,6 +1540,7 @@ config FAIL_MMC_REQUEST
115989 config FAIL_FUTEX
115990 bool "Fault-injection capability for futexes"
115991 select DEBUG_FS
115992 + depends on !GRKERNSEC_KMEM
115993 depends on FAULT_INJECTION && FUTEX
115994 help
115995 Provide fault-injection capability for futexes.
115996 @@ -1560,6 +1566,7 @@ config LATENCYTOP
115997 depends on DEBUG_KERNEL
115998 depends on STACKTRACE_SUPPORT
115999 depends on PROC_FS
116000 + depends on !GRKERNSEC_HIDESYM
116001 select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND && !ARC
116002 select KALLSYMS
116003 select KALLSYMS_ALL
116004 @@ -1576,7 +1583,7 @@ config ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
116005 config DEBUG_STRICT_USER_COPY_CHECKS
116006 bool "Strict user copy size checks"
116007 depends on ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
116008 - depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING
116009 + depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING && !PAX_SIZE_OVERFLOW
116010 help
116011 Enabling this option turns a certain set of sanity checks for user
116012 copy operations into compile time failures.
116013 @@ -1710,7 +1717,7 @@ endmenu # runtime tests
116014
116015 config PROVIDE_OHCI1394_DMA_INIT
116016 bool "Remote debugging over FireWire early on boot"
116017 - depends on PCI && X86
116018 + depends on PCI && X86 && !GRKERNSEC
116019 help
116020 If you want to debug problems which hang or crash the kernel early
116021 on boot and the crashing machine has a FireWire port, you can use
116022 diff --git a/lib/Kconfig.kasan b/lib/Kconfig.kasan
116023 index 0fee5ac..b2b159d 100644
116024 --- a/lib/Kconfig.kasan
116025 +++ b/lib/Kconfig.kasan
116026 @@ -5,7 +5,7 @@ if HAVE_ARCH_KASAN
116027
116028 config KASAN
116029 bool "KASan: runtime memory debugger"
116030 - depends on SLUB_DEBUG
116031 + depends on SLUB_DEBUG && !GRKERNSEC_KSTACKOVERFLOW
116032 select CONSTRUCTORS
116033 help
116034 Enables kernel address sanitizer - runtime memory debugger,
116035 diff --git a/lib/Makefile b/lib/Makefile
116036 index 7f1de26..ab68f1a 100644
116037 --- a/lib/Makefile
116038 +++ b/lib/Makefile
116039 @@ -66,7 +66,7 @@ obj-$(CONFIG_BTREE) += btree.o
116040 obj-$(CONFIG_INTERVAL_TREE) += interval_tree.o
116041 obj-$(CONFIG_ASSOCIATIVE_ARRAY) += assoc_array.o
116042 obj-$(CONFIG_DEBUG_PREEMPT) += smp_processor_id.o
116043 -obj-$(CONFIG_DEBUG_LIST) += list_debug.o
116044 +obj-y += list_debug.o
116045 obj-$(CONFIG_DEBUG_OBJECTS) += debugobjects.o
116046
116047 ifneq ($(CONFIG_HAVE_DEC_LOCK),y)
116048 diff --git a/lib/bitmap.c b/lib/bitmap.c
116049 index 8148143..d132f7e9 100644
116050 --- a/lib/bitmap.c
116051 +++ b/lib/bitmap.c
116052 @@ -361,7 +361,7 @@ int __bitmap_parse(const char *buf, unsigned int buflen,
116053 {
116054 int c, old_c, totaldigits, ndigits, nchunks, nbits;
116055 u32 chunk;
116056 - const char __user __force *ubuf = (const char __user __force *)buf;
116057 + const char __user *ubuf = (const char __force_user *)buf;
116058
116059 bitmap_zero(maskp, nmaskbits);
116060
116061 @@ -447,7 +447,7 @@ int bitmap_parse_user(const char __user *ubuf,
116062 {
116063 if (!access_ok(VERIFY_READ, ubuf, ulen))
116064 return -EFAULT;
116065 - return __bitmap_parse((const char __force *)ubuf,
116066 + return __bitmap_parse((const char __force_kernel *)ubuf,
116067 ulen, 1, maskp, nmaskbits);
116068
116069 }
116070 @@ -507,7 +507,7 @@ static int __bitmap_parselist(const char *buf, unsigned int buflen,
116071 {
116072 unsigned a, b;
116073 int c, old_c, totaldigits, ndigits;
116074 - const char __user __force *ubuf = (const char __user __force *)buf;
116075 + const char __user *ubuf = (const char __force_user *)buf;
116076 int at_start, in_range;
116077
116078 totaldigits = c = 0;
116079 @@ -611,7 +611,7 @@ int bitmap_parselist_user(const char __user *ubuf,
116080 {
116081 if (!access_ok(VERIFY_READ, ubuf, ulen))
116082 return -EFAULT;
116083 - return __bitmap_parselist((const char __force *)ubuf,
116084 + return __bitmap_parselist((const char __force_kernel *)ubuf,
116085 ulen, 1, maskp, nmaskbits);
116086 }
116087 EXPORT_SYMBOL(bitmap_parselist_user);
116088 diff --git a/lib/bug.c b/lib/bug.c
116089 index cff145f..724a0b8 100644
116090 --- a/lib/bug.c
116091 +++ b/lib/bug.c
116092 @@ -148,6 +148,8 @@ enum bug_trap_type report_bug(unsigned long bugaddr, struct pt_regs *regs)
116093 return BUG_TRAP_TYPE_NONE;
116094
116095 bug = find_bug(bugaddr);
116096 + if (!bug)
116097 + return BUG_TRAP_TYPE_NONE;
116098
116099 file = NULL;
116100 line = 0;
116101 diff --git a/lib/debugobjects.c b/lib/debugobjects.c
116102 index 547f7f9..a6d4ba0 100644
116103 --- a/lib/debugobjects.c
116104 +++ b/lib/debugobjects.c
116105 @@ -289,7 +289,7 @@ static void debug_object_is_on_stack(void *addr, int onstack)
116106 if (limit > 4)
116107 return;
116108
116109 - is_on_stack = object_is_on_stack(addr);
116110 + is_on_stack = object_starts_on_stack(addr);
116111 if (is_on_stack == onstack)
116112 return;
116113
116114 diff --git a/lib/decompress_bunzip2.c b/lib/decompress_bunzip2.c
116115 index 0234361..41a411c 100644
116116 --- a/lib/decompress_bunzip2.c
116117 +++ b/lib/decompress_bunzip2.c
116118 @@ -665,7 +665,8 @@ static int INIT start_bunzip(struct bunzip_data **bdp, void *inbuf, long len,
116119
116120 /* Fourth byte (ascii '1'-'9'), indicates block size in units of 100k of
116121 uncompressed data. Allocate intermediate buffer for block. */
116122 - bd->dbufSize = 100000*(i-BZh0);
116123 + i -= BZh0;
116124 + bd->dbufSize = 100000 * i;
116125
116126 bd->dbuf = large_malloc(bd->dbufSize * sizeof(int));
116127 if (!bd->dbuf)
116128 diff --git a/lib/decompress_unlzma.c b/lib/decompress_unlzma.c
116129 index ed7a1fd..44a1a62 100644
116130 --- a/lib/decompress_unlzma.c
116131 +++ b/lib/decompress_unlzma.c
116132 @@ -39,10 +39,10 @@
116133
116134 #define MIN(a, b) (((a) < (b)) ? (a) : (b))
116135
116136 -static long long INIT read_int(unsigned char *ptr, int size)
116137 +static unsigned long long INIT read_int(unsigned char *ptr, int size)
116138 {
116139 int i;
116140 - long long ret = 0;
116141 + unsigned long long ret = 0;
116142
116143 for (i = 0; i < size; i++)
116144 ret = (ret << 8) | ptr[size-i-1];
116145 diff --git a/lib/div64.c b/lib/div64.c
116146 index 62a698a..32327d08 100644
116147 --- a/lib/div64.c
116148 +++ b/lib/div64.c
116149 @@ -59,7 +59,7 @@ uint32_t __attribute__((weak)) __div64_32(uint64_t *n, uint32_t base)
116150 EXPORT_SYMBOL(__div64_32);
116151
116152 #ifndef div_s64_rem
116153 -s64 div_s64_rem(s64 dividend, s32 divisor, s32 *remainder)
116154 +s64 __intentional_overflow(-1) div_s64_rem(s64 dividend, s32 divisor, s32 *remainder)
116155 {
116156 u64 quotient;
116157
116158 @@ -130,7 +130,7 @@ EXPORT_SYMBOL(div64_u64_rem);
116159 * 'http://www.hackersdelight.org/hdcodetxt/divDouble.c.txt'
116160 */
116161 #ifndef div64_u64
116162 -u64 div64_u64(u64 dividend, u64 divisor)
116163 +u64 __intentional_overflow(-1) div64_u64(u64 dividend, u64 divisor)
116164 {
116165 u32 high = divisor >> 32;
116166 u64 quot;
116167 diff --git a/lib/dma-debug.c b/lib/dma-debug.c
116168 index 4a1515f4..baea985 100644
116169 --- a/lib/dma-debug.c
116170 +++ b/lib/dma-debug.c
116171 @@ -982,7 +982,7 @@ static int dma_debug_device_change(struct notifier_block *nb, unsigned long acti
116172
116173 void dma_debug_add_bus(struct bus_type *bus)
116174 {
116175 - struct notifier_block *nb;
116176 + notifier_block_no_const *nb;
116177
116178 if (dma_debug_disabled())
116179 return;
116180 @@ -1164,7 +1164,7 @@ static void check_unmap(struct dma_debug_entry *ref)
116181
116182 static void check_for_stack(struct device *dev, void *addr)
116183 {
116184 - if (object_is_on_stack(addr))
116185 + if (object_starts_on_stack(addr))
116186 err_printk(dev, NULL, "DMA-API: device driver maps memory from "
116187 "stack [addr=%p]\n", addr);
116188 }
116189 diff --git a/lib/inflate.c b/lib/inflate.c
116190 index 013a761..c28f3fc 100644
116191 --- a/lib/inflate.c
116192 +++ b/lib/inflate.c
116193 @@ -269,7 +269,7 @@ static void free(void *where)
116194 malloc_ptr = free_mem_ptr;
116195 }
116196 #else
116197 -#define malloc(a) kmalloc(a, GFP_KERNEL)
116198 +#define malloc(a) kmalloc((a), GFP_KERNEL)
116199 #define free(a) kfree(a)
116200 #endif
116201
116202 diff --git a/lib/ioremap.c b/lib/ioremap.c
116203 index 86c8911..f5bfc34 100644
116204 --- a/lib/ioremap.c
116205 +++ b/lib/ioremap.c
116206 @@ -75,7 +75,7 @@ static inline int ioremap_pmd_range(pud_t *pud, unsigned long addr,
116207 unsigned long next;
116208
116209 phys_addr -= addr;
116210 - pmd = pmd_alloc(&init_mm, pud, addr);
116211 + pmd = pmd_alloc_kernel(&init_mm, pud, addr);
116212 if (!pmd)
116213 return -ENOMEM;
116214 do {
116215 @@ -101,7 +101,7 @@ static inline int ioremap_pud_range(pgd_t *pgd, unsigned long addr,
116216 unsigned long next;
116217
116218 phys_addr -= addr;
116219 - pud = pud_alloc(&init_mm, pgd, addr);
116220 + pud = pud_alloc_kernel(&init_mm, pgd, addr);
116221 if (!pud)
116222 return -ENOMEM;
116223 do {
116224 diff --git a/lib/is_single_threaded.c b/lib/is_single_threaded.c
116225 index 391fd23..96e17b6 100644
116226 --- a/lib/is_single_threaded.c
116227 +++ b/lib/is_single_threaded.c
116228 @@ -22,6 +22,9 @@ bool current_is_single_threaded(void)
116229 struct task_struct *p, *t;
116230 bool ret;
116231
116232 + if (!mm)
116233 + return true;
116234 +
116235 if (atomic_read(&task->signal->live) != 1)
116236 return false;
116237
116238 diff --git a/lib/kobject.c b/lib/kobject.c
116239 index 7cbccd2..37f089d 100644
116240 --- a/lib/kobject.c
116241 +++ b/lib/kobject.c
116242 @@ -954,9 +954,9 @@ EXPORT_SYMBOL_GPL(kset_create_and_add);
116243
116244
116245 static DEFINE_SPINLOCK(kobj_ns_type_lock);
116246 -static const struct kobj_ns_type_operations *kobj_ns_ops_tbl[KOBJ_NS_TYPES];
116247 +static const struct kobj_ns_type_operations *kobj_ns_ops_tbl[KOBJ_NS_TYPES] __read_only;
116248
116249 -int kobj_ns_type_register(const struct kobj_ns_type_operations *ops)
116250 +int __init kobj_ns_type_register(const struct kobj_ns_type_operations *ops)
116251 {
116252 enum kobj_ns_type type = ops->type;
116253 int error;
116254 diff --git a/lib/list_debug.c b/lib/list_debug.c
116255 index c24c2f7..f0296f4 100644
116256 --- a/lib/list_debug.c
116257 +++ b/lib/list_debug.c
116258 @@ -11,7 +11,9 @@
116259 #include <linux/bug.h>
116260 #include <linux/kernel.h>
116261 #include <linux/rculist.h>
116262 +#include <linux/mm.h>
116263
116264 +#ifdef CONFIG_DEBUG_LIST
116265 /*
116266 * Insert a new entry between two known consecutive entries.
116267 *
116268 @@ -19,21 +21,40 @@
116269 * the prev/next entries already!
116270 */
116271
116272 +static bool __list_add_debug(struct list_head *new,
116273 + struct list_head *prev,
116274 + struct list_head *next)
116275 +{
116276 + if (unlikely(next->prev != prev)) {
116277 + printk(KERN_ERR "list_add corruption. next->prev should be "
116278 + "prev (%p), but was %p. (next=%p).\n",
116279 + prev, next->prev, next);
116280 + BUG();
116281 + return false;
116282 + }
116283 + if (unlikely(prev->next != next)) {
116284 + printk(KERN_ERR "list_add corruption. prev->next should be "
116285 + "next (%p), but was %p. (prev=%p).\n",
116286 + next, prev->next, prev);
116287 + BUG();
116288 + return false;
116289 + }
116290 + if (unlikely(new == prev || new == next)) {
116291 + printk(KERN_ERR "list_add double add: new=%p, prev=%p, next=%p.\n",
116292 + new, prev, next);
116293 + BUG();
116294 + return false;
116295 + }
116296 + return true;
116297 +}
116298 +
116299 void __list_add(struct list_head *new,
116300 - struct list_head *prev,
116301 - struct list_head *next)
116302 + struct list_head *prev,
116303 + struct list_head *next)
116304 {
116305 - WARN(next->prev != prev,
116306 - "list_add corruption. next->prev should be "
116307 - "prev (%p), but was %p. (next=%p).\n",
116308 - prev, next->prev, next);
116309 - WARN(prev->next != next,
116310 - "list_add corruption. prev->next should be "
116311 - "next (%p), but was %p. (prev=%p).\n",
116312 - next, prev->next, prev);
116313 - WARN(new == prev || new == next,
116314 - "list_add double add: new=%p, prev=%p, next=%p.\n",
116315 - new, prev, next);
116316 + if (!__list_add_debug(new, prev, next))
116317 + return;
116318 +
116319 next->prev = new;
116320 new->next = next;
116321 new->prev = prev;
116322 @@ -41,28 +62,46 @@ void __list_add(struct list_head *new,
116323 }
116324 EXPORT_SYMBOL(__list_add);
116325
116326 -void __list_del_entry(struct list_head *entry)
116327 +static bool __list_del_entry_debug(struct list_head *entry)
116328 {
116329 struct list_head *prev, *next;
116330
116331 prev = entry->prev;
116332 next = entry->next;
116333
116334 - if (WARN(next == LIST_POISON1,
116335 - "list_del corruption, %p->next is LIST_POISON1 (%p)\n",
116336 - entry, LIST_POISON1) ||
116337 - WARN(prev == LIST_POISON2,
116338 - "list_del corruption, %p->prev is LIST_POISON2 (%p)\n",
116339 - entry, LIST_POISON2) ||
116340 - WARN(prev->next != entry,
116341 - "list_del corruption. prev->next should be %p, "
116342 - "but was %p\n", entry, prev->next) ||
116343 - WARN(next->prev != entry,
116344 - "list_del corruption. next->prev should be %p, "
116345 - "but was %p\n", entry, next->prev))
116346 + if (unlikely(next == LIST_POISON1)) {
116347 + printk(KERN_ERR "list_del corruption, %p->next is LIST_POISON1 (%p)\n",
116348 + entry, LIST_POISON1);
116349 + BUG();
116350 + return false;
116351 + }
116352 + if (unlikely(prev == LIST_POISON2)) {
116353 + printk(KERN_ERR "list_del corruption, %p->prev is LIST_POISON2 (%p)\n",
116354 + entry, LIST_POISON2);
116355 + BUG();
116356 + return false;
116357 + }
116358 + if (unlikely(entry->prev->next != entry)) {
116359 + printk(KERN_ERR "list_del corruption. prev->next should be %p, "
116360 + "but was %p\n", entry, prev->next);
116361 + BUG();
116362 + return false;
116363 + }
116364 + if (unlikely(entry->next->prev != entry)) {
116365 + printk(KERN_ERR "list_del corruption. next->prev should be %p, "
116366 + "but was %p\n", entry, next->prev);
116367 + BUG();
116368 + return false;
116369 + }
116370 + return true;
116371 +}
116372 +
116373 +void __list_del_entry(struct list_head *entry)
116374 +{
116375 + if (!__list_del_entry_debug(entry))
116376 return;
116377
116378 - __list_del(prev, next);
116379 + __list_del(entry->prev, entry->next);
116380 }
116381 EXPORT_SYMBOL(__list_del_entry);
116382
116383 @@ -86,15 +125,85 @@ EXPORT_SYMBOL(list_del);
116384 void __list_add_rcu(struct list_head *new,
116385 struct list_head *prev, struct list_head *next)
116386 {
116387 - WARN(next->prev != prev,
116388 - "list_add_rcu corruption. next->prev should be prev (%p), but was %p. (next=%p).\n",
116389 - prev, next->prev, next);
116390 - WARN(prev->next != next,
116391 - "list_add_rcu corruption. prev->next should be next (%p), but was %p. (prev=%p).\n",
116392 - next, prev->next, prev);
116393 + if (!__list_add_debug(new, prev, next))
116394 + return;
116395 +
116396 new->next = next;
116397 new->prev = prev;
116398 rcu_assign_pointer(list_next_rcu(prev), new);
116399 next->prev = new;
116400 }
116401 EXPORT_SYMBOL(__list_add_rcu);
116402 +#endif
116403 +
116404 +void __pax_list_add(struct list_head *new, struct list_head *prev, struct list_head *next)
116405 +{
116406 +#ifdef CONFIG_DEBUG_LIST
116407 + if (!__list_add_debug(new, prev, next))
116408 + return;
116409 +#endif
116410 +
116411 + pax_open_kernel();
116412 + next->prev = new;
116413 + new->next = next;
116414 + new->prev = prev;
116415 + prev->next = new;
116416 + pax_close_kernel();
116417 +}
116418 +EXPORT_SYMBOL(__pax_list_add);
116419 +
116420 +void pax_list_del(struct list_head *entry)
116421 +{
116422 +#ifdef CONFIG_DEBUG_LIST
116423 + if (!__list_del_entry_debug(entry))
116424 + return;
116425 +#endif
116426 +
116427 + pax_open_kernel();
116428 + __list_del(entry->prev, entry->next);
116429 + entry->next = LIST_POISON1;
116430 + entry->prev = LIST_POISON2;
116431 + pax_close_kernel();
116432 +}
116433 +EXPORT_SYMBOL(pax_list_del);
116434 +
116435 +void pax_list_del_init(struct list_head *entry)
116436 +{
116437 + pax_open_kernel();
116438 + __list_del(entry->prev, entry->next);
116439 + INIT_LIST_HEAD(entry);
116440 + pax_close_kernel();
116441 +}
116442 +EXPORT_SYMBOL(pax_list_del_init);
116443 +
116444 +void __pax_list_add_rcu(struct list_head *new,
116445 + struct list_head *prev, struct list_head *next)
116446 +{
116447 +#ifdef CONFIG_DEBUG_LIST
116448 + if (!__list_add_debug(new, prev, next))
116449 + return;
116450 +#endif
116451 +
116452 + pax_open_kernel();
116453 + new->next = next;
116454 + new->prev = prev;
116455 + rcu_assign_pointer(list_next_rcu(prev), new);
116456 + next->prev = new;
116457 + pax_close_kernel();
116458 +}
116459 +EXPORT_SYMBOL(__pax_list_add_rcu);
116460 +
116461 +void pax_list_del_rcu(struct list_head *entry)
116462 +{
116463 +#ifdef CONFIG_DEBUG_LIST
116464 + if (!__list_del_entry_debug(entry))
116465 + return;
116466 +#endif
116467 +
116468 + pax_open_kernel();
116469 + __list_del(entry->prev, entry->next);
116470 + entry->next = LIST_POISON1;
116471 + entry->prev = LIST_POISON2;
116472 + pax_close_kernel();
116473 +}
116474 +EXPORT_SYMBOL(pax_list_del_rcu);
116475 diff --git a/lib/lockref.c b/lib/lockref.c
116476 index 5a92189..d77978d 100644
116477 --- a/lib/lockref.c
116478 +++ b/lib/lockref.c
116479 @@ -40,13 +40,13 @@
116480 void lockref_get(struct lockref *lockref)
116481 {
116482 CMPXCHG_LOOP(
116483 - new.count++;
116484 + __lockref_inc(&new);
116485 ,
116486 return;
116487 );
116488
116489 spin_lock(&lockref->lock);
116490 - lockref->count++;
116491 + __lockref_inc(lockref);
116492 spin_unlock(&lockref->lock);
116493 }
116494 EXPORT_SYMBOL(lockref_get);
116495 @@ -61,8 +61,8 @@ int lockref_get_not_zero(struct lockref *lockref)
116496 int retval;
116497
116498 CMPXCHG_LOOP(
116499 - new.count++;
116500 - if (old.count <= 0)
116501 + __lockref_inc(&new);
116502 + if (__lockref_read(&old) <= 0)
116503 return 0;
116504 ,
116505 return 1;
116506 @@ -70,8 +70,8 @@ int lockref_get_not_zero(struct lockref *lockref)
116507
116508 spin_lock(&lockref->lock);
116509 retval = 0;
116510 - if (lockref->count > 0) {
116511 - lockref->count++;
116512 + if (__lockref_read(lockref) > 0) {
116513 + __lockref_inc(lockref);
116514 retval = 1;
116515 }
116516 spin_unlock(&lockref->lock);
116517 @@ -88,17 +88,17 @@ EXPORT_SYMBOL(lockref_get_not_zero);
116518 int lockref_get_or_lock(struct lockref *lockref)
116519 {
116520 CMPXCHG_LOOP(
116521 - new.count++;
116522 - if (old.count <= 0)
116523 + __lockref_inc(&new);
116524 + if (__lockref_read(&old) <= 0)
116525 break;
116526 ,
116527 return 1;
116528 );
116529
116530 spin_lock(&lockref->lock);
116531 - if (lockref->count <= 0)
116532 + if (__lockref_read(lockref) <= 0)
116533 return 0;
116534 - lockref->count++;
116535 + __lockref_inc(lockref);
116536 spin_unlock(&lockref->lock);
116537 return 1;
116538 }
116539 @@ -114,11 +114,11 @@ EXPORT_SYMBOL(lockref_get_or_lock);
116540 int lockref_put_return(struct lockref *lockref)
116541 {
116542 CMPXCHG_LOOP(
116543 - new.count--;
116544 - if (old.count <= 0)
116545 + __lockref_dec(&new);
116546 + if (__lockref_read(&old) <= 0)
116547 return -1;
116548 ,
116549 - return new.count;
116550 + return __lockref_read(&new);
116551 );
116552 return -1;
116553 }
116554 @@ -132,17 +132,17 @@ EXPORT_SYMBOL(lockref_put_return);
116555 int lockref_put_or_lock(struct lockref *lockref)
116556 {
116557 CMPXCHG_LOOP(
116558 - new.count--;
116559 - if (old.count <= 1)
116560 + __lockref_dec(&new);
116561 + if (__lockref_read(&old) <= 1)
116562 break;
116563 ,
116564 return 1;
116565 );
116566
116567 spin_lock(&lockref->lock);
116568 - if (lockref->count <= 1)
116569 + if (__lockref_read(lockref) <= 1)
116570 return 0;
116571 - lockref->count--;
116572 + __lockref_dec(lockref);
116573 spin_unlock(&lockref->lock);
116574 return 1;
116575 }
116576 @@ -155,7 +155,7 @@ EXPORT_SYMBOL(lockref_put_or_lock);
116577 void lockref_mark_dead(struct lockref *lockref)
116578 {
116579 assert_spin_locked(&lockref->lock);
116580 - lockref->count = -128;
116581 + __lockref_set(lockref, -128);
116582 }
116583 EXPORT_SYMBOL(lockref_mark_dead);
116584
116585 @@ -169,8 +169,8 @@ int lockref_get_not_dead(struct lockref *lockref)
116586 int retval;
116587
116588 CMPXCHG_LOOP(
116589 - new.count++;
116590 - if (old.count < 0)
116591 + __lockref_inc(&new);
116592 + if (__lockref_read(&old) < 0)
116593 return 0;
116594 ,
116595 return 1;
116596 @@ -178,8 +178,8 @@ int lockref_get_not_dead(struct lockref *lockref)
116597
116598 spin_lock(&lockref->lock);
116599 retval = 0;
116600 - if (lockref->count >= 0) {
116601 - lockref->count++;
116602 + if (__lockref_read(lockref) >= 0) {
116603 + __lockref_inc(lockref);
116604 retval = 1;
116605 }
116606 spin_unlock(&lockref->lock);
116607 diff --git a/lib/nlattr.c b/lib/nlattr.c
116608 index f5907d2..36072be 100644
116609 --- a/lib/nlattr.c
116610 +++ b/lib/nlattr.c
116611 @@ -278,6 +278,8 @@ int nla_memcpy(void *dest, const struct nlattr *src, int count)
116612 {
116613 int minlen = min_t(int, count, nla_len(src));
116614
116615 + BUG_ON(minlen < 0);
116616 +
116617 memcpy(dest, nla_data(src), minlen);
116618 if (count > minlen)
116619 memset(dest + minlen, 0, count - minlen);
116620 diff --git a/lib/percpu-refcount.c b/lib/percpu-refcount.c
116621 index 6111bcb..02e816b 100644
116622 --- a/lib/percpu-refcount.c
116623 +++ b/lib/percpu-refcount.c
116624 @@ -31,7 +31,7 @@
116625 * atomic_long_t can't hit 0 before we've added up all the percpu refs.
116626 */
116627
116628 -#define PERCPU_COUNT_BIAS (1LU << (BITS_PER_LONG - 1))
116629 +#define PERCPU_COUNT_BIAS (1LU << (BITS_PER_LONG - 2))
116630
116631 static DECLARE_WAIT_QUEUE_HEAD(percpu_ref_switch_waitq);
116632
116633 diff --git a/lib/radix-tree.c b/lib/radix-tree.c
116634 index 6b79e90..4811f49 100644
116635 --- a/lib/radix-tree.c
116636 +++ b/lib/radix-tree.c
116637 @@ -68,7 +68,7 @@ struct radix_tree_preload {
116638 /* nodes->private_data points to next preallocated node */
116639 struct radix_tree_node *nodes;
116640 };
116641 -static DEFINE_PER_CPU(struct radix_tree_preload, radix_tree_preloads) = { 0, };
116642 +static DEFINE_PER_CPU(struct radix_tree_preload, radix_tree_preloads);
116643
116644 static inline void *ptr_to_indirect(void *ptr)
116645 {
116646 diff --git a/lib/random32.c b/lib/random32.c
116647 index 1211191..63e8a83 100644
116648 --- a/lib/random32.c
116649 +++ b/lib/random32.c
116650 @@ -47,7 +47,7 @@ static inline void prandom_state_selftest(void)
116651 }
116652 #endif
116653
116654 -static DEFINE_PER_CPU(struct rnd_state, net_rand_state);
116655 +static DEFINE_PER_CPU(struct rnd_state, net_rand_state) __latent_entropy;
116656
116657 /**
116658 * prandom_u32_state - seeded pseudo-random number generator.
116659 diff --git a/lib/rbtree.c b/lib/rbtree.c
116660 index 1356454..70ce6c6 100644
116661 --- a/lib/rbtree.c
116662 +++ b/lib/rbtree.c
116663 @@ -412,7 +412,9 @@ static inline void dummy_copy(struct rb_node *old, struct rb_node *new) {}
116664 static inline void dummy_rotate(struct rb_node *old, struct rb_node *new) {}
116665
116666 static const struct rb_augment_callbacks dummy_callbacks = {
116667 - dummy_propagate, dummy_copy, dummy_rotate
116668 + .propagate = dummy_propagate,
116669 + .copy = dummy_copy,
116670 + .rotate = dummy_rotate
116671 };
116672
116673 void rb_insert_color(struct rb_node *node, struct rb_root *root)
116674 diff --git a/lib/rhashtable.c b/lib/rhashtable.c
116675 index 51282f5..471b337 100644
116676 --- a/lib/rhashtable.c
116677 +++ b/lib/rhashtable.c
116678 @@ -558,8 +558,8 @@ EXPORT_SYMBOL_GPL(rhashtable_walk_exit);
116679 * will rewind back to the beginning and you may use it immediately
116680 * by calling rhashtable_walk_next.
116681 */
116682 +int rhashtable_walk_start(struct rhashtable_iter *iter) __acquires(RCU);
116683 int rhashtable_walk_start(struct rhashtable_iter *iter)
116684 - __acquires(RCU)
116685 {
116686 struct rhashtable *ht = iter->ht;
116687
116688 @@ -643,8 +643,8 @@ EXPORT_SYMBOL_GPL(rhashtable_walk_next);
116689 *
116690 * Finish a hash table walk.
116691 */
116692 +void rhashtable_walk_stop(struct rhashtable_iter *iter) __releases(RCU);
116693 void rhashtable_walk_stop(struct rhashtable_iter *iter)
116694 - __releases(RCU)
116695 {
116696 struct rhashtable *ht;
116697 struct bucket_table *tbl = iter->walker->tbl;
116698 diff --git a/lib/show_mem.c b/lib/show_mem.c
116699 index 1feed6a..4ede1e9 100644
116700 --- a/lib/show_mem.c
116701 +++ b/lib/show_mem.c
116702 @@ -47,6 +47,6 @@ void show_mem(unsigned int filter)
116703 quicklist_total_size());
116704 #endif
116705 #ifdef CONFIG_MEMORY_FAILURE
116706 - printk("%lu pages hwpoisoned\n", atomic_long_read(&num_poisoned_pages));
116707 + printk("%lu pages hwpoisoned\n", atomic_long_read_unchecked(&num_poisoned_pages));
116708 #endif
116709 }
116710 diff --git a/lib/strncpy_from_user.c b/lib/strncpy_from_user.c
116711 index e0af6ff..fcc9f15 100644
116712 --- a/lib/strncpy_from_user.c
116713 +++ b/lib/strncpy_from_user.c
116714 @@ -22,7 +22,7 @@
116715 */
116716 static inline long do_strncpy_from_user(char *dst, const char __user *src, long count, unsigned long max)
116717 {
116718 - const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
116719 + static const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
116720 long res = 0;
116721
116722 /*
116723 diff --git a/lib/strnlen_user.c b/lib/strnlen_user.c
116724 index 3a5f2b3..102f1ff 100644
116725 --- a/lib/strnlen_user.c
116726 +++ b/lib/strnlen_user.c
116727 @@ -26,7 +26,7 @@
116728 */
116729 static inline long do_strnlen_user(const char __user *src, unsigned long count, unsigned long max)
116730 {
116731 - const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
116732 + static const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
116733 long align, res = 0;
116734 unsigned long c;
116735
116736 diff --git a/lib/swiotlb.c b/lib/swiotlb.c
116737 index 76f29ec..1a5316f 100644
116738 --- a/lib/swiotlb.c
116739 +++ b/lib/swiotlb.c
116740 @@ -690,7 +690,7 @@ EXPORT_SYMBOL(swiotlb_alloc_coherent);
116741
116742 void
116743 swiotlb_free_coherent(struct device *hwdev, size_t size, void *vaddr,
116744 - dma_addr_t dev_addr)
116745 + dma_addr_t dev_addr, struct dma_attrs *attrs)
116746 {
116747 phys_addr_t paddr = dma_to_phys(hwdev, dev_addr);
116748
116749 diff --git a/lib/usercopy.c b/lib/usercopy.c
116750 index 4f5b1dd..7cab418 100644
116751 --- a/lib/usercopy.c
116752 +++ b/lib/usercopy.c
116753 @@ -7,3 +7,9 @@ void copy_from_user_overflow(void)
116754 WARN(1, "Buffer overflow detected!\n");
116755 }
116756 EXPORT_SYMBOL(copy_from_user_overflow);
116757 +
116758 +void copy_to_user_overflow(void)
116759 +{
116760 + WARN(1, "Buffer overflow detected!\n");
116761 +}
116762 +EXPORT_SYMBOL(copy_to_user_overflow);
116763 diff --git a/lib/vsprintf.c b/lib/vsprintf.c
116764 index f9cee8e..f0ed0f1 100644
116765 --- a/lib/vsprintf.c
116766 +++ b/lib/vsprintf.c
116767 @@ -16,6 +16,9 @@
116768 * - scnprintf and vscnprintf
116769 */
116770
116771 +#ifdef CONFIG_GRKERNSEC_HIDESYM
116772 +#define __INCLUDED_BY_HIDESYM 1
116773 +#endif
116774 #include <stdarg.h>
116775 #include <linux/clk.h>
116776 #include <linux/clk-provider.h>
116777 @@ -629,7 +632,7 @@ char *symbol_string(char *buf, char *end, void *ptr,
116778 #ifdef CONFIG_KALLSYMS
116779 if (*fmt == 'B')
116780 sprint_backtrace(sym, value);
116781 - else if (*fmt != 'f' && *fmt != 's')
116782 + else if (*fmt != 'f' && *fmt != 's' && *fmt != 'X')
116783 sprint_symbol(sym, value);
116784 else
116785 sprint_symbol_no_offset(sym, value);
116786 @@ -1361,7 +1364,11 @@ char *clock(char *buf, char *end, struct clk *clk, struct printf_spec spec,
116787 }
116788 }
116789
116790 -int kptr_restrict __read_mostly;
116791 +#ifdef CONFIG_GRKERNSEC_HIDESYM
116792 +int kptr_restrict __read_only = 2;
116793 +#else
116794 +int kptr_restrict __read_only;
116795 +#endif
116796
116797 /*
116798 * Show a '%p' thing. A kernel extension is that the '%p' is followed
116799 @@ -1372,8 +1379,10 @@ int kptr_restrict __read_mostly;
116800 *
116801 * - 'F' For symbolic function descriptor pointers with offset
116802 * - 'f' For simple symbolic function names without offset
116803 + * - 'X' For simple symbolic function names without offset approved for use with GRKERNSEC_HIDESYM
116804 * - 'S' For symbolic direct pointers with offset
116805 * - 's' For symbolic direct pointers without offset
116806 + * - 'A' For symbolic direct pointers with offset approved for use with GRKERNSEC_HIDESYM
116807 * - '[FfSs]R' as above with __builtin_extract_return_addr() translation
116808 * - 'B' For backtraced symbolic direct pointers with offset
116809 * - 'R' For decoded struct resource, e.g., [mem 0x0-0x1f 64bit pref]
116810 @@ -1463,12 +1472,12 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
116811
116812 if (!ptr && *fmt != 'K') {
116813 /*
116814 - * Print (null) with the same width as a pointer so it makes
116815 + * Print (nil) with the same width as a pointer so it makes
116816 * tabular output look nice.
116817 */
116818 if (spec.field_width == -1)
116819 spec.field_width = default_width;
116820 - return string(buf, end, "(null)", spec);
116821 + return string(buf, end, "(nil)", spec);
116822 }
116823
116824 switch (*fmt) {
116825 @@ -1478,6 +1487,14 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
116826 /* Fallthrough */
116827 case 'S':
116828 case 's':
116829 +#ifdef CONFIG_GRKERNSEC_HIDESYM
116830 + break;
116831 +#else
116832 + return symbol_string(buf, end, ptr, spec, fmt);
116833 +#endif
116834 + case 'X':
116835 + ptr = dereference_function_descriptor(ptr);
116836 + case 'A':
116837 case 'B':
116838 return symbol_string(buf, end, ptr, spec, fmt);
116839 case 'R':
116840 @@ -1542,6 +1559,8 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
116841 va_end(va);
116842 return buf;
116843 }
116844 + case 'P':
116845 + break;
116846 case 'K':
116847 /*
116848 * %pK cannot be used in IRQ context because its test
116849 @@ -1601,6 +1620,22 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
116850 ((const struct file *)ptr)->f_path.dentry,
116851 spec, fmt);
116852 }
116853 +
116854 +#ifdef CONFIG_GRKERNSEC_HIDESYM
116855 + /* 'P' = approved pointers to copy to userland,
116856 + as in the /proc/kallsyms case, as we make it display nothing
116857 + for non-root users, and the real contents for root users
116858 + 'X' = approved simple symbols
116859 + Also ignore 'K' pointers, since we force their NULLing for non-root users
116860 + above
116861 + */
116862 + if ((unsigned long)ptr > TASK_SIZE && *fmt != 'P' && *fmt != 'X' && *fmt != 'K' && is_usercopy_object(buf)) {
116863 + printk(KERN_ALERT "grsec: kernel infoleak detected! Please report this log to spender@grsecurity.net.\n");
116864 + dump_stack();
116865 + ptr = NULL;
116866 + }
116867 +#endif
116868 +
116869 spec.flags |= SMALL;
116870 if (spec.field_width == -1) {
116871 spec.field_width = default_width;
116872 @@ -2282,11 +2317,11 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
116873 typeof(type) value; \
116874 if (sizeof(type) == 8) { \
116875 args = PTR_ALIGN(args, sizeof(u32)); \
116876 - *(u32 *)&value = *(u32 *)args; \
116877 - *((u32 *)&value + 1) = *(u32 *)(args + 4); \
116878 + *(u32 *)&value = *(const u32 *)args; \
116879 + *((u32 *)&value + 1) = *(const u32 *)(args + 4); \
116880 } else { \
116881 args = PTR_ALIGN(args, sizeof(type)); \
116882 - value = *(typeof(type) *)args; \
116883 + value = *(const typeof(type) *)args; \
116884 } \
116885 args += sizeof(type); \
116886 value; \
116887 @@ -2349,7 +2384,7 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
116888 case FORMAT_TYPE_STR: {
116889 const char *str_arg = args;
116890 args += strlen(str_arg) + 1;
116891 - str = string(str, end, (char *)str_arg, spec);
116892 + str = string(str, end, str_arg, spec);
116893 break;
116894 }
116895
116896 diff --git a/localversion-grsec b/localversion-grsec
116897 new file mode 100644
116898 index 0000000..7cd6065
116899 --- /dev/null
116900 +++ b/localversion-grsec
116901 @@ -0,0 +1 @@
116902 +-grsec
116903 diff --git a/mm/Kconfig b/mm/Kconfig
116904 index 97a4e06..b20ba55 100644
116905 --- a/mm/Kconfig
116906 +++ b/mm/Kconfig
116907 @@ -324,10 +324,11 @@ config KSM
116908 root has set /sys/kernel/mm/ksm/run to 1 (if CONFIG_SYSFS is set).
116909
116910 config DEFAULT_MMAP_MIN_ADDR
116911 - int "Low address space to protect from user allocation"
116912 + int "Low address space to protect from user allocation"
116913 depends on MMU
116914 - default 4096
116915 - help
116916 + default 32768 if ALPHA || ARM || PARISC || SPARC32
116917 + default 65536
116918 + help
116919 This is the portion of low virtual memory which should be protected
116920 from userspace allocation. Keeping a user from writing to low pages
116921 can help reduce the impact of kernel NULL pointer bugs.
116922 @@ -359,8 +360,9 @@ config MEMORY_FAILURE
116923
116924 config HWPOISON_INJECT
116925 tristate "HWPoison pages injector"
116926 - depends on MEMORY_FAILURE && DEBUG_KERNEL && PROC_FS
116927 + depends on MEMORY_FAILURE && DEBUG_KERNEL && PROC_FS && !GRKERNSEC
116928 select PROC_PAGE_MONITOR
116929 + depends on !GRKERNSEC
116930
116931 config NOMMU_INITIAL_TRIM_EXCESS
116932 int "Turn on mmap() excess space trimming before booting"
116933 @@ -521,6 +523,7 @@ config MEM_SOFT_DIRTY
116934 bool "Track memory changes"
116935 depends on CHECKPOINT_RESTORE && HAVE_ARCH_SOFT_DIRTY && PROC_FS
116936 select PROC_PAGE_MONITOR
116937 + depends on !GRKERNSEC
116938 help
116939 This option enables memory changes tracking by introducing a
116940 soft-dirty bit on pte-s. This bit it set when someone writes
116941 @@ -595,6 +598,7 @@ config ZSMALLOC_STAT
116942 bool "Export zsmalloc statistics"
116943 depends on ZSMALLOC
116944 select DEBUG_FS
116945 + depends on !GRKERNSEC_KMEM
116946 help
116947 This option enables code in the zsmalloc to collect various
116948 statistics about whats happening in zsmalloc and exports that
116949 diff --git a/mm/Kconfig.debug b/mm/Kconfig.debug
116950 index 957d3da..1d34e20 100644
116951 --- a/mm/Kconfig.debug
116952 +++ b/mm/Kconfig.debug
116953 @@ -10,6 +10,7 @@ config PAGE_EXTENSION
116954 config DEBUG_PAGEALLOC
116955 bool "Debug page memory allocations"
116956 depends on DEBUG_KERNEL
116957 + depends on !PAX_MEMORY_SANITIZE
116958 depends on !HIBERNATION || ARCH_SUPPORTS_DEBUG_PAGEALLOC && !PPC && !SPARC
116959 depends on !KMEMCHECK
116960 select PAGE_EXTENSION
116961 diff --git a/mm/backing-dev.c b/mm/backing-dev.c
116962 index cbe6f0b..200caf3 100644
116963 --- a/mm/backing-dev.c
116964 +++ b/mm/backing-dev.c
116965 @@ -12,7 +12,7 @@
116966 #include <linux/device.h>
116967 #include <trace/events/writeback.h>
116968
116969 -static atomic_long_t bdi_seq = ATOMIC_LONG_INIT(0);
116970 +static atomic_long_unchecked_t bdi_seq = ATOMIC_LONG_INIT(0);
116971
116972 struct backing_dev_info noop_backing_dev_info = {
116973 .name = "noop",
116974 @@ -879,7 +879,7 @@ int bdi_setup_and_register(struct backing_dev_info *bdi, char *name)
116975 return err;
116976
116977 err = bdi_register(bdi, NULL, "%.28s-%ld", name,
116978 - atomic_long_inc_return(&bdi_seq));
116979 + atomic_long_inc_return_unchecked(&bdi_seq));
116980 if (err) {
116981 bdi_destroy(bdi);
116982 return err;
116983 diff --git a/mm/debug.c b/mm/debug.c
116984 index 668aa35..1b35d47 100644
116985 --- a/mm/debug.c
116986 +++ b/mm/debug.c
116987 @@ -127,6 +127,9 @@ static const struct trace_print_flags vmaflags_names[] = {
116988 {VM_RAND_READ, "randread" },
116989 {VM_DONTCOPY, "dontcopy" },
116990 {VM_DONTEXPAND, "dontexpand" },
116991 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_X86_32)
116992 + {VM_PAGEEXEC, "pageexec" },
116993 +#endif
116994 {VM_ACCOUNT, "account" },
116995 {VM_NORESERVE, "noreserve" },
116996 {VM_HUGETLB, "hugetlb" },
116997 diff --git a/mm/filemap.c b/mm/filemap.c
116998 index 1bb0076..6244c1d 100644
116999 --- a/mm/filemap.c
117000 +++ b/mm/filemap.c
117001 @@ -2161,7 +2161,7 @@ int generic_file_mmap(struct file * file, struct vm_area_struct * vma)
117002 struct address_space *mapping = file->f_mapping;
117003
117004 if (!mapping->a_ops->readpage)
117005 - return -ENOEXEC;
117006 + return -ENODEV;
117007 file_accessed(file);
117008 vma->vm_ops = &generic_file_vm_ops;
117009 return 0;
117010 @@ -2342,6 +2342,7 @@ inline ssize_t generic_write_checks(struct kiocb *iocb, struct iov_iter *from)
117011 pos = iocb->ki_pos;
117012
117013 if (limit != RLIM_INFINITY) {
117014 + gr_learn_resource(current, RLIMIT_FSIZE, iocb->ki_pos, 0);
117015 if (iocb->ki_pos >= limit) {
117016 send_sig(SIGXFSZ, current, 0);
117017 return -EFBIG;
117018 diff --git a/mm/gup.c b/mm/gup.c
117019 index deafa2c..1a4e46a 100644
117020 --- a/mm/gup.c
117021 +++ b/mm/gup.c
117022 @@ -302,11 +302,6 @@ static int faultin_page(struct task_struct *tsk, struct vm_area_struct *vma,
117023 /* mlock all present pages, but do not fault in new pages */
117024 if ((*flags & (FOLL_POPULATE | FOLL_MLOCK)) == FOLL_MLOCK)
117025 return -ENOENT;
117026 - /* For mm_populate(), just skip the stack guard page. */
117027 - if ((*flags & FOLL_POPULATE) &&
117028 - (stack_guard_page_start(vma, address) ||
117029 - stack_guard_page_end(vma, address + PAGE_SIZE)))
117030 - return -ENOENT;
117031 if (*flags & FOLL_WRITE)
117032 fault_flags |= FAULT_FLAG_WRITE;
117033 if (nonblocking)
117034 @@ -472,14 +467,14 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
117035 if (!(gup_flags & FOLL_FORCE))
117036 gup_flags |= FOLL_NUMA;
117037
117038 - do {
117039 + while (nr_pages) {
117040 struct page *page;
117041 unsigned int foll_flags = gup_flags;
117042 unsigned int page_increm;
117043
117044 /* first iteration or cross vma bound */
117045 if (!vma || start >= vma->vm_end) {
117046 - vma = find_extend_vma(mm, start);
117047 + vma = find_vma(mm, start);
117048 if (!vma && in_gate_area(mm, start)) {
117049 int ret;
117050 ret = get_gate_page(mm, start & PAGE_MASK,
117051 @@ -491,7 +486,7 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
117052 goto next_page;
117053 }
117054
117055 - if (!vma || check_vma_flags(vma, gup_flags))
117056 + if (!vma || start < vma->vm_start || check_vma_flags(vma, gup_flags))
117057 return i ? : -EFAULT;
117058 if (is_vm_hugetlb_page(vma)) {
117059 i = follow_hugetlb_page(mm, vma, pages, vmas,
117060 @@ -552,7 +547,7 @@ next_page:
117061 i += page_increm;
117062 start += page_increm * PAGE_SIZE;
117063 nr_pages -= page_increm;
117064 - } while (nr_pages);
117065 + }
117066 return i;
117067 }
117068 EXPORT_SYMBOL(__get_user_pages);
117069 diff --git a/mm/highmem.c b/mm/highmem.c
117070 index 123bcd3..c2c85db 100644
117071 --- a/mm/highmem.c
117072 +++ b/mm/highmem.c
117073 @@ -195,8 +195,9 @@ static void flush_all_zero_pkmaps(void)
117074 * So no dangers, even with speculative execution.
117075 */
117076 page = pte_page(pkmap_page_table[i]);
117077 + pax_open_kernel();
117078 pte_clear(&init_mm, PKMAP_ADDR(i), &pkmap_page_table[i]);
117079 -
117080 + pax_close_kernel();
117081 set_page_address(page, NULL);
117082 need_flush = 1;
117083 }
117084 @@ -259,8 +260,11 @@ start:
117085 }
117086 }
117087 vaddr = PKMAP_ADDR(last_pkmap_nr);
117088 +
117089 + pax_open_kernel();
117090 set_pte_at(&init_mm, vaddr,
117091 &(pkmap_page_table[last_pkmap_nr]), mk_pte(page, kmap_prot));
117092 + pax_close_kernel();
117093
117094 pkmap_count[last_pkmap_nr] = 1;
117095 set_page_address(page, (void *)vaddr);
117096 diff --git a/mm/hugetlb.c b/mm/hugetlb.c
117097 index ef6963b..09c45dc 100644
117098 --- a/mm/hugetlb.c
117099 +++ b/mm/hugetlb.c
117100 @@ -39,7 +39,60 @@ int hugepages_treat_as_movable;
117101
117102 int hugetlb_max_hstate __read_mostly;
117103 unsigned int default_hstate_idx;
117104 -struct hstate hstates[HUGE_MAX_HSTATE];
117105 +
117106 +#ifdef CONFIG_CGROUP_HUGETLB
117107 +static struct cftype hugetlb_files[HUGE_MAX_HSTATE][5] = {
117108 +# define MEMFILE_PRIVATE(x, val) (((x) << 16) | (val))
117109 +# define CFTYPE_INIT(idx) \
117110 + { /* Add the limit file */ \
117111 + [0] = { .private = MEMFILE_PRIVATE(idx, RES_LIMIT), \
117112 + .read_u64 = hugetlb_cgroup_read_u64, \
117113 + .write = hugetlb_cgroup_write, }, \
117114 + /* Add the usage file */ \
117115 + [1] = { .private = MEMFILE_PRIVATE(idx, RES_USAGE), \
117116 + .read_u64 = hugetlb_cgroup_read_u64, }, \
117117 + /* Add the MAX usage file */ \
117118 + [2] = { .private = MEMFILE_PRIVATE(idx, RES_MAX_USAGE), \
117119 + .write = hugetlb_cgroup_reset, \
117120 + .read_u64 = hugetlb_cgroup_read_u64, }, \
117121 + /* Add the failcntfile */ \
117122 + [3] = { .private = MEMFILE_PRIVATE(idx, RES_FAILCNT), \
117123 + .write = hugetlb_cgroup_reset, \
117124 + .read_u64 = hugetlb_cgroup_read_u64, }, \
117125 + [4] = { /* NULL terminator */ }, \
117126 + }
117127 +
117128 +# if HUGE_MAX_HSTATE > 0
117129 + [0] = CFTYPE_INIT(0),
117130 +# endif
117131 +# if HUGE_MAX_HSTATE > 1
117132 + [1] = CFTYPE_INIT(1),
117133 +# endif
117134 +# if HUGE_MAX_HSTATE > 2
117135 +# error PaX: add more initializers...
117136 +# endif
117137 +
117138 +# undef CFTYPE_INIT
117139 +};
117140 +#endif
117141 +
117142 +struct hstate hstates[HUGE_MAX_HSTATE] = {
117143 +#ifdef CONFIG_CGROUP_HUGETLB
117144 +# define HSTATE_INIT(idx) [idx] = { .cgroup_files = &hugetlb_files[idx] }
117145 +
117146 +# if HUGE_MAX_HSTATE > 0
117147 + HSTATE_INIT(0),
117148 +# endif
117149 +# if HUGE_MAX_HSTATE > 1
117150 + HSTATE_INIT(1),
117151 +# endif
117152 +# if HUGE_MAX_HSTATE > 2
117153 +# error PaX: add more initializers...
117154 +# endif
117155 +
117156 +# undef HSTATE_INIT
117157 +#endif
117158 +};
117159 /*
117160 * Minimum page order among possible hugepage sizes, set to a proper value
117161 * at boot time.
117162 @@ -2780,6 +2833,7 @@ static int hugetlb_sysctl_handler_common(bool obey_mempolicy,
117163 struct ctl_table *table, int write,
117164 void __user *buffer, size_t *length, loff_t *ppos)
117165 {
117166 + ctl_table_no_const t;
117167 struct hstate *h = &default_hstate;
117168 unsigned long tmp = h->max_huge_pages;
117169 int ret;
117170 @@ -2787,9 +2841,10 @@ static int hugetlb_sysctl_handler_common(bool obey_mempolicy,
117171 if (!hugepages_supported())
117172 return -ENOTSUPP;
117173
117174 - table->data = &tmp;
117175 - table->maxlen = sizeof(unsigned long);
117176 - ret = proc_doulongvec_minmax(table, write, buffer, length, ppos);
117177 + t = *table;
117178 + t.data = &tmp;
117179 + t.maxlen = sizeof(unsigned long);
117180 + ret = proc_doulongvec_minmax(&t, write, buffer, length, ppos);
117181 if (ret)
117182 goto out;
117183
117184 @@ -2824,6 +2879,7 @@ int hugetlb_overcommit_handler(struct ctl_table *table, int write,
117185 struct hstate *h = &default_hstate;
117186 unsigned long tmp;
117187 int ret;
117188 + ctl_table_no_const hugetlb_table;
117189
117190 if (!hugepages_supported())
117191 return -ENOTSUPP;
117192 @@ -2833,9 +2889,10 @@ int hugetlb_overcommit_handler(struct ctl_table *table, int write,
117193 if (write && hstate_is_gigantic(h))
117194 return -EINVAL;
117195
117196 - table->data = &tmp;
117197 - table->maxlen = sizeof(unsigned long);
117198 - ret = proc_doulongvec_minmax(table, write, buffer, length, ppos);
117199 + hugetlb_table = *table;
117200 + hugetlb_table.data = &tmp;
117201 + hugetlb_table.maxlen = sizeof(unsigned long);
117202 + ret = proc_doulongvec_minmax(&hugetlb_table, write, buffer, length, ppos);
117203 if (ret)
117204 goto out;
117205
117206 @@ -3341,6 +3398,27 @@ static void unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma,
117207 i_mmap_unlock_write(mapping);
117208 }
117209
117210 +#ifdef CONFIG_PAX_SEGMEXEC
117211 +static void pax_mirror_huge_pte(struct vm_area_struct *vma, unsigned long address, struct page *page_m)
117212 +{
117213 + struct mm_struct *mm = vma->vm_mm;
117214 + struct vm_area_struct *vma_m;
117215 + unsigned long address_m;
117216 + pte_t *ptep_m;
117217 +
117218 + vma_m = pax_find_mirror_vma(vma);
117219 + if (!vma_m)
117220 + return;
117221 +
117222 + BUG_ON(address >= SEGMEXEC_TASK_SIZE);
117223 + address_m = address + SEGMEXEC_TASK_SIZE;
117224 + ptep_m = huge_pte_offset(mm, address_m & HPAGE_MASK);
117225 + get_page(page_m);
117226 + hugepage_add_anon_rmap(page_m, vma_m, address_m);
117227 + set_huge_pte_at(mm, address_m, ptep_m, make_huge_pte(vma_m, page_m, 0));
117228 +}
117229 +#endif
117230 +
117231 /*
117232 * Hugetlb_cow() should be called with page lock of the original hugepage held.
117233 * Called with hugetlb_instantiation_mutex held and pte_page locked so we
117234 @@ -3454,6 +3532,11 @@ retry_avoidcopy:
117235 make_huge_pte(vma, new_page, 1));
117236 page_remove_rmap(old_page);
117237 hugepage_add_new_anon_rmap(new_page, vma, address);
117238 +
117239 +#ifdef CONFIG_PAX_SEGMEXEC
117240 + pax_mirror_huge_pte(vma, address, new_page);
117241 +#endif
117242 +
117243 /* Make the old page be freed below */
117244 new_page = old_page;
117245 }
117246 @@ -3627,6 +3710,10 @@ retry:
117247 && (vma->vm_flags & VM_SHARED)));
117248 set_huge_pte_at(mm, address, ptep, new_pte);
117249
117250 +#ifdef CONFIG_PAX_SEGMEXEC
117251 + pax_mirror_huge_pte(vma, address, page);
117252 +#endif
117253 +
117254 hugetlb_count_add(pages_per_huge_page(h), mm);
117255 if ((flags & FAULT_FLAG_WRITE) && !(vma->vm_flags & VM_SHARED)) {
117256 /* Optimization, do the COW without a second fault */
117257 @@ -3695,6 +3782,10 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
117258 struct address_space *mapping;
117259 int need_wait_lock = 0;
117260
117261 +#ifdef CONFIG_PAX_SEGMEXEC
117262 + struct vm_area_struct *vma_m;
117263 +#endif
117264 +
117265 address &= huge_page_mask(h);
117266
117267 ptep = huge_pte_offset(mm, address);
117268 @@ -3712,6 +3803,26 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
117269 return VM_FAULT_OOM;
117270 }
117271
117272 +#ifdef CONFIG_PAX_SEGMEXEC
117273 + vma_m = pax_find_mirror_vma(vma);
117274 + if (vma_m) {
117275 + unsigned long address_m;
117276 +
117277 + if (vma->vm_start > vma_m->vm_start) {
117278 + address_m = address;
117279 + address -= SEGMEXEC_TASK_SIZE;
117280 + vma = vma_m;
117281 + h = hstate_vma(vma);
117282 + } else
117283 + address_m = address + SEGMEXEC_TASK_SIZE;
117284 +
117285 + if (!huge_pte_alloc(mm, address_m, huge_page_size(h)))
117286 + return VM_FAULT_OOM;
117287 + address_m &= HPAGE_MASK;
117288 + unmap_hugepage_range(vma, address_m, address_m + HPAGE_SIZE, NULL);
117289 + }
117290 +#endif
117291 +
117292 mapping = vma->vm_file->f_mapping;
117293 idx = vma_hugecache_offset(h, vma, address);
117294
117295 diff --git a/mm/hugetlb_cgroup.c b/mm/hugetlb_cgroup.c
117296 index d8fb10d..1c74822 100644
117297 --- a/mm/hugetlb_cgroup.c
117298 +++ b/mm/hugetlb_cgroup.c
117299 @@ -27,7 +27,6 @@ struct hugetlb_cgroup {
117300 struct page_counter hugepage[HUGE_MAX_HSTATE];
117301 };
117302
117303 -#define MEMFILE_PRIVATE(x, val) (((x) << 16) | (val))
117304 #define MEMFILE_IDX(val) (((val) >> 16) & 0xffff)
117305 #define MEMFILE_ATTR(val) ((val) & 0xffff)
117306
117307 @@ -238,14 +237,7 @@ void hugetlb_cgroup_uncharge_cgroup(int idx, unsigned long nr_pages,
117308 return;
117309 }
117310
117311 -enum {
117312 - RES_USAGE,
117313 - RES_LIMIT,
117314 - RES_MAX_USAGE,
117315 - RES_FAILCNT,
117316 -};
117317 -
117318 -static u64 hugetlb_cgroup_read_u64(struct cgroup_subsys_state *css,
117319 +u64 hugetlb_cgroup_read_u64(struct cgroup_subsys_state *css,
117320 struct cftype *cft)
117321 {
117322 struct page_counter *counter;
117323 @@ -269,7 +261,7 @@ static u64 hugetlb_cgroup_read_u64(struct cgroup_subsys_state *css,
117324
117325 static DEFINE_MUTEX(hugetlb_limit_mutex);
117326
117327 -static ssize_t hugetlb_cgroup_write(struct kernfs_open_file *of,
117328 +ssize_t hugetlb_cgroup_write(struct kernfs_open_file *of,
117329 char *buf, size_t nbytes, loff_t off)
117330 {
117331 int ret, idx;
117332 @@ -299,7 +291,7 @@ static ssize_t hugetlb_cgroup_write(struct kernfs_open_file *of,
117333 return ret ?: nbytes;
117334 }
117335
117336 -static ssize_t hugetlb_cgroup_reset(struct kernfs_open_file *of,
117337 +ssize_t hugetlb_cgroup_reset(struct kernfs_open_file *of,
117338 char *buf, size_t nbytes, loff_t off)
117339 {
117340 int ret = 0;
117341 @@ -335,46 +327,26 @@ static char *mem_fmt(char *buf, int size, unsigned long hsize)
117342
117343 static void __init __hugetlb_cgroup_file_init(int idx)
117344 {
117345 + char names[4][MAX_CFTYPE_NAME];
117346 char buf[32];
117347 - struct cftype *cft;
117348 struct hstate *h = &hstates[idx];
117349
117350 /* format the size */
117351 mem_fmt(buf, 32, huge_page_size(h));
117352 -
117353 - /* Add the limit file */
117354 - cft = &h->cgroup_files[0];
117355 - snprintf(cft->name, MAX_CFTYPE_NAME, "%s.limit_in_bytes", buf);
117356 - cft->private = MEMFILE_PRIVATE(idx, RES_LIMIT);
117357 - cft->read_u64 = hugetlb_cgroup_read_u64;
117358 - cft->write = hugetlb_cgroup_write;
117359 -
117360 - /* Add the usage file */
117361 - cft = &h->cgroup_files[1];
117362 - snprintf(cft->name, MAX_CFTYPE_NAME, "%s.usage_in_bytes", buf);
117363 - cft->private = MEMFILE_PRIVATE(idx, RES_USAGE);
117364 - cft->read_u64 = hugetlb_cgroup_read_u64;
117365 -
117366 - /* Add the MAX usage file */
117367 - cft = &h->cgroup_files[2];
117368 - snprintf(cft->name, MAX_CFTYPE_NAME, "%s.max_usage_in_bytes", buf);
117369 - cft->private = MEMFILE_PRIVATE(idx, RES_MAX_USAGE);
117370 - cft->write = hugetlb_cgroup_reset;
117371 - cft->read_u64 = hugetlb_cgroup_read_u64;
117372 -
117373 - /* Add the failcntfile */
117374 - cft = &h->cgroup_files[3];
117375 - snprintf(cft->name, MAX_CFTYPE_NAME, "%s.failcnt", buf);
117376 - cft->private = MEMFILE_PRIVATE(idx, RES_FAILCNT);
117377 - cft->write = hugetlb_cgroup_reset;
117378 - cft->read_u64 = hugetlb_cgroup_read_u64;
117379 -
117380 - /* NULL terminate the last cft */
117381 - cft = &h->cgroup_files[4];
117382 - memset(cft, 0, sizeof(*cft));
117383 + snprintf(names[0], MAX_CFTYPE_NAME, "%s.limit_in_bytes", buf);
117384 + snprintf(names[1], MAX_CFTYPE_NAME, "%s.usage_in_bytes", buf);
117385 + snprintf(names[2], MAX_CFTYPE_NAME, "%s.max_usage_in_bytes", buf);
117386 + snprintf(names[3], MAX_CFTYPE_NAME, "%s.failcnt", buf);
117387 +
117388 + pax_open_kernel();
117389 + strncpy((void *)(*h->cgroup_files)[0].name, names[0], MAX_CFTYPE_NAME);
117390 + strncpy((void *)(*h->cgroup_files)[1].name, names[1], MAX_CFTYPE_NAME);
117391 + strncpy((void *)(*h->cgroup_files)[2].name, names[2], MAX_CFTYPE_NAME);
117392 + strncpy((void *)(*h->cgroup_files)[3].name, names[3], MAX_CFTYPE_NAME);
117393 + pax_close_kernel();
117394
117395 WARN_ON(cgroup_add_legacy_cftypes(&hugetlb_cgrp_subsys,
117396 - h->cgroup_files));
117397 + *h->cgroup_files));
117398 }
117399
117400 void __init hugetlb_cgroup_file_init(void)
117401 diff --git a/mm/internal.h b/mm/internal.h
117402 index 38e24b8..73ff43d 100644
117403 --- a/mm/internal.h
117404 +++ b/mm/internal.h
117405 @@ -177,6 +177,7 @@ __find_buddy_index(unsigned long page_idx, unsigned int order)
117406 extern int __isolate_free_page(struct page *page, unsigned int order);
117407 extern void __free_pages_bootmem(struct page *page, unsigned long pfn,
117408 unsigned int order);
117409 +extern void free_compound_page(struct page *page);
117410 extern void prep_compound_page(struct page *page, unsigned int order);
117411 #ifdef CONFIG_MEMORY_FAILURE
117412 extern bool is_free_buddy_page(struct page *page);
117413 diff --git a/mm/kmemleak.c b/mm/kmemleak.c
117414 index 19423a4..f591ad4 100644
117415 --- a/mm/kmemleak.c
117416 +++ b/mm/kmemleak.c
117417 @@ -366,7 +366,7 @@ static void print_unreferenced(struct seq_file *seq,
117418
117419 for (i = 0; i < object->trace_len; i++) {
117420 void *ptr = (void *)object->trace[i];
117421 - seq_printf(seq, " [<%p>] %pS\n", ptr, ptr);
117422 + seq_printf(seq, " [<%pP>] %pA\n", ptr, ptr);
117423 }
117424 }
117425
117426 @@ -1958,7 +1958,7 @@ static int __init kmemleak_late_init(void)
117427 return -ENOMEM;
117428 }
117429
117430 - dentry = debugfs_create_file("kmemleak", S_IRUGO, NULL, NULL,
117431 + dentry = debugfs_create_file("kmemleak", S_IRUSR, NULL, NULL,
117432 &kmemleak_fops);
117433 if (!dentry)
117434 pr_warning("Failed to create the debugfs kmemleak file\n");
117435 diff --git a/mm/maccess.c b/mm/maccess.c
117436 index d159b1c..7655796 100644
117437 --- a/mm/maccess.c
117438 +++ b/mm/maccess.c
117439 @@ -28,12 +28,12 @@ long __probe_kernel_read(void *dst, const void *src, size_t size)
117440 long ret;
117441 mm_segment_t old_fs = get_fs();
117442
117443 - set_fs(KERNEL_DS);
117444 pagefault_disable();
117445 + set_fs(KERNEL_DS);
117446 ret = __copy_from_user_inatomic(dst,
117447 - (__force const void __user *)src, size);
117448 - pagefault_enable();
117449 + (const void __force_user *)src, size);
117450 set_fs(old_fs);
117451 + pagefault_enable();
117452
117453 return ret ? -EFAULT : 0;
117454 }
117455 @@ -56,11 +56,11 @@ long __probe_kernel_write(void *dst, const void *src, size_t size)
117456 long ret;
117457 mm_segment_t old_fs = get_fs();
117458
117459 - set_fs(KERNEL_DS);
117460 pagefault_disable();
117461 - ret = __copy_to_user_inatomic((__force void __user *)dst, src, size);
117462 - pagefault_enable();
117463 + set_fs(KERNEL_DS);
117464 + ret = __copy_to_user_inatomic((void __force_user *)dst, src, size);
117465 set_fs(old_fs);
117466 + pagefault_enable();
117467
117468 return ret ? -EFAULT : 0;
117469 }
117470 diff --git a/mm/madvise.c b/mm/madvise.c
117471 index c889fcb..f181221 100644
117472 --- a/mm/madvise.c
117473 +++ b/mm/madvise.c
117474 @@ -52,6 +52,10 @@ static long madvise_behavior(struct vm_area_struct *vma,
117475 pgoff_t pgoff;
117476 unsigned long new_flags = vma->vm_flags;
117477
117478 +#ifdef CONFIG_PAX_SEGMEXEC
117479 + struct vm_area_struct *vma_m;
117480 +#endif
117481 +
117482 switch (behavior) {
117483 case MADV_NORMAL:
117484 new_flags = new_flags & ~VM_RAND_READ & ~VM_SEQ_READ;
117485 @@ -128,6 +132,13 @@ success:
117486 /*
117487 * vm_flags is protected by the mmap_sem held in write mode.
117488 */
117489 +
117490 +#ifdef CONFIG_PAX_SEGMEXEC
117491 + vma_m = pax_find_mirror_vma(vma);
117492 + if (vma_m)
117493 + vma_m->vm_flags = new_flags & ~(VM_WRITE | VM_MAYWRITE | VM_ACCOUNT);
117494 +#endif
117495 +
117496 vma->vm_flags = new_flags;
117497
117498 out:
117499 @@ -279,11 +290,27 @@ static long madvise_dontneed(struct vm_area_struct *vma,
117500 struct vm_area_struct **prev,
117501 unsigned long start, unsigned long end)
117502 {
117503 +
117504 +#ifdef CONFIG_PAX_SEGMEXEC
117505 + struct vm_area_struct *vma_m;
117506 +#endif
117507 +
117508 *prev = vma;
117509 if (vma->vm_flags & (VM_LOCKED|VM_HUGETLB|VM_PFNMAP))
117510 return -EINVAL;
117511
117512 zap_page_range(vma, start, end - start, NULL);
117513 +
117514 +#ifdef CONFIG_PAX_SEGMEXEC
117515 + vma_m = pax_find_mirror_vma(vma);
117516 + if (vma_m) {
117517 + if (vma_m->vm_flags & (VM_LOCKED|VM_HUGETLB|VM_PFNMAP))
117518 + return -EINVAL;
117519 +
117520 + zap_page_range(vma_m, start + SEGMEXEC_TASK_SIZE, end - start, NULL);
117521 + }
117522 +#endif
117523 +
117524 return 0;
117525 }
117526
117527 @@ -486,6 +513,16 @@ SYSCALL_DEFINE3(madvise, unsigned long, start, size_t, len_in, int, behavior)
117528 if (end < start)
117529 return error;
117530
117531 +#ifdef CONFIG_PAX_SEGMEXEC
117532 + if (current->mm->pax_flags & MF_PAX_SEGMEXEC) {
117533 + if (end > SEGMEXEC_TASK_SIZE)
117534 + return error;
117535 + } else
117536 +#endif
117537 +
117538 + if (end > TASK_SIZE)
117539 + return error;
117540 +
117541 error = 0;
117542 if (end == start)
117543 return error;
117544 diff --git a/mm/memcontrol.c b/mm/memcontrol.c
117545 index ee6acd2..e83259e 100644
117546 --- a/mm/memcontrol.c
117547 +++ b/mm/memcontrol.c
117548 @@ -809,7 +809,7 @@ static void memcg_check_events(struct mem_cgroup *memcg, struct page *page)
117549 mem_cgroup_update_tree(memcg, page);
117550 #if MAX_NUMNODES > 1
117551 if (unlikely(do_numainfo))
117552 - atomic_inc(&memcg->numainfo_events);
117553 + atomic64_inc(&memcg->numainfo_events);
117554 #endif
117555 }
117556 }
117557 @@ -1450,7 +1450,7 @@ static void mem_cgroup_may_update_nodemask(struct mem_cgroup *memcg)
117558 * numainfo_events > 0 means there was at least NUMAINFO_EVENTS_TARGET
117559 * pagein/pageout changes since the last update.
117560 */
117561 - if (!atomic_read(&memcg->numainfo_events))
117562 + if (!atomic64_read(&memcg->numainfo_events))
117563 return;
117564 if (atomic_inc_return(&memcg->numainfo_updating) > 1)
117565 return;
117566 @@ -1464,7 +1464,7 @@ static void mem_cgroup_may_update_nodemask(struct mem_cgroup *memcg)
117567 node_clear(nid, memcg->scan_nodes);
117568 }
117569
117570 - atomic_set(&memcg->numainfo_events, 0);
117571 + atomic64_set(&memcg->numainfo_events, 0);
117572 atomic_set(&memcg->numainfo_updating, 0);
117573 }
117574
117575 diff --git a/mm/memory-failure.c b/mm/memory-failure.c
117576 index 750b789..b1b1b59 100644
117577 --- a/mm/memory-failure.c
117578 +++ b/mm/memory-failure.c
117579 @@ -64,7 +64,7 @@ int sysctl_memory_failure_early_kill __read_mostly = 0;
117580
117581 int sysctl_memory_failure_recovery __read_mostly = 1;
117582
117583 -atomic_long_t num_poisoned_pages __read_mostly = ATOMIC_LONG_INIT(0);
117584 +atomic_long_unchecked_t num_poisoned_pages __read_mostly = ATOMIC_LONG_INIT(0);
117585
117586 #if defined(CONFIG_HWPOISON_INJECT) || defined(CONFIG_HWPOISON_INJECT_MODULE)
117587
117588 @@ -189,7 +189,7 @@ static int kill_proc(struct task_struct *t, unsigned long addr, int trapno,
117589 pfn, t->comm, t->pid);
117590 si.si_signo = SIGBUS;
117591 si.si_errno = 0;
117592 - si.si_addr = (void *)addr;
117593 + si.si_addr = (void __user *)addr;
117594 #ifdef __ARCH_SI_TRAPNO
117595 si.si_trapno = trapno;
117596 #endif
117597 @@ -784,7 +784,7 @@ static struct page_state {
117598 unsigned long res;
117599 enum mf_action_page_type type;
117600 int (*action)(struct page *p, unsigned long pfn);
117601 -} error_states[] = {
117602 +} __do_const error_states[] = {
117603 { reserved, reserved, MF_MSG_KERNEL, me_kernel },
117604 /*
117605 * free pages are specially detected outside this table:
117606 diff --git a/mm/memory.c b/mm/memory.c
117607 index b80bf47..d3fd553 100644
117608 --- a/mm/memory.c
117609 +++ b/mm/memory.c
117610 @@ -415,6 +415,7 @@ static inline void free_pmd_range(struct mmu_gather *tlb, pud_t *pud,
117611 free_pte_range(tlb, pmd, addr);
117612 } while (pmd++, addr = next, addr != end);
117613
117614 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_PER_CPU_PGD)
117615 start &= PUD_MASK;
117616 if (start < floor)
117617 return;
117618 @@ -430,6 +431,7 @@ static inline void free_pmd_range(struct mmu_gather *tlb, pud_t *pud,
117619 pud_clear(pud);
117620 pmd_free_tlb(tlb, pmd, start);
117621 mm_dec_nr_pmds(tlb->mm);
117622 +#endif
117623 }
117624
117625 static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,
117626 @@ -449,6 +451,7 @@ static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,
117627 free_pmd_range(tlb, pud, addr, next, floor, ceiling);
117628 } while (pud++, addr = next, addr != end);
117629
117630 +#if !defined(CONFIG_X86_64) || !defined(CONFIG_PAX_PER_CPU_PGD)
117631 start &= PGDIR_MASK;
117632 if (start < floor)
117633 return;
117634 @@ -463,6 +466,8 @@ static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,
117635 pud = pud_offset(pgd, start);
117636 pgd_clear(pgd);
117637 pud_free_tlb(tlb, pud, start);
117638 +#endif
117639 +
117640 }
117641
117642 /*
117643 @@ -691,7 +696,7 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr,
117644 /*
117645 * Choose text because data symbols depend on CONFIG_KALLSYMS_ALL=y
117646 */
117647 - pr_alert("file:%pD fault:%pf mmap:%pf readpage:%pf\n",
117648 + pr_alert("file:%pD fault:%pX mmap:%pX readpage:%pX\n",
117649 vma->vm_file,
117650 vma->vm_ops ? vma->vm_ops->fault : NULL,
117651 vma->vm_file ? vma->vm_file->f_op->mmap : NULL,
117652 @@ -1464,6 +1469,10 @@ static int insert_page(struct vm_area_struct *vma, unsigned long addr,
117653 page_add_file_rmap(page);
117654 set_pte_at(mm, addr, pte, mk_pte(page, prot));
117655
117656 +#ifdef CONFIG_PAX_SEGMEXEC
117657 + pax_mirror_file_pte(vma, addr, page, ptl);
117658 +#endif
117659 +
117660 retval = 0;
117661 pte_unmap_unlock(pte, ptl);
117662 return retval;
117663 @@ -1508,9 +1517,21 @@ int vm_insert_page(struct vm_area_struct *vma, unsigned long addr,
117664 if (!page_count(page))
117665 return -EINVAL;
117666 if (!(vma->vm_flags & VM_MIXEDMAP)) {
117667 +
117668 +#ifdef CONFIG_PAX_SEGMEXEC
117669 + struct vm_area_struct *vma_m;
117670 +#endif
117671 +
117672 BUG_ON(down_read_trylock(&vma->vm_mm->mmap_sem));
117673 BUG_ON(vma->vm_flags & VM_PFNMAP);
117674 vma->vm_flags |= VM_MIXEDMAP;
117675 +
117676 +#ifdef CONFIG_PAX_SEGMEXEC
117677 + vma_m = pax_find_mirror_vma(vma);
117678 + if (vma_m)
117679 + vma_m->vm_flags |= VM_MIXEDMAP;
117680 +#endif
117681 +
117682 }
117683 return insert_page(vma, addr, page, vma->vm_page_prot);
117684 }
117685 @@ -1593,6 +1614,7 @@ int vm_insert_mixed(struct vm_area_struct *vma, unsigned long addr,
117686 unsigned long pfn)
117687 {
117688 BUG_ON(!(vma->vm_flags & VM_MIXEDMAP));
117689 + BUG_ON(vma->vm_mirror);
117690
117691 if (addr < vma->vm_start || addr >= vma->vm_end)
117692 return -EFAULT;
117693 @@ -1840,7 +1862,9 @@ static int apply_to_pmd_range(struct mm_struct *mm, pud_t *pud,
117694
117695 BUG_ON(pud_huge(*pud));
117696
117697 - pmd = pmd_alloc(mm, pud, addr);
117698 + pmd = (mm == &init_mm) ?
117699 + pmd_alloc_kernel(mm, pud, addr) :
117700 + pmd_alloc(mm, pud, addr);
117701 if (!pmd)
117702 return -ENOMEM;
117703 do {
117704 @@ -1860,7 +1884,9 @@ static int apply_to_pud_range(struct mm_struct *mm, pgd_t *pgd,
117705 unsigned long next;
117706 int err;
117707
117708 - pud = pud_alloc(mm, pgd, addr);
117709 + pud = (mm == &init_mm) ?
117710 + pud_alloc_kernel(mm, pgd, addr) :
117711 + pud_alloc(mm, pgd, addr);
117712 if (!pud)
117713 return -ENOMEM;
117714 do {
117715 @@ -2041,6 +2067,196 @@ static inline int wp_page_reuse(struct mm_struct *mm,
117716 return VM_FAULT_WRITE;
117717 }
117718
117719 +#ifdef CONFIG_PAX_SEGMEXEC
117720 +static void pax_unmap_mirror_pte(struct vm_area_struct *vma, unsigned long address, pmd_t *pmd)
117721 +{
117722 + struct mm_struct *mm = vma->vm_mm;
117723 + spinlock_t *ptl;
117724 + pte_t *pte, entry;
117725 +
117726 + pte = pte_offset_map_lock(mm, pmd, address, &ptl);
117727 + entry = *pte;
117728 + if (pte_none(entry))
117729 + ;
117730 + else if (!pte_present(entry)) {
117731 + swp_entry_t swapentry;
117732 +
117733 + swapentry = pte_to_swp_entry(entry);
117734 + if (!non_swap_entry(swapentry))
117735 + dec_mm_counter_fast(mm, MM_SWAPENTS);
117736 + else if (is_migration_entry(swapentry)) {
117737 + if (PageAnon(migration_entry_to_page(swapentry)))
117738 + dec_mm_counter_fast(mm, MM_ANONPAGES);
117739 + else
117740 + dec_mm_counter_fast(mm, MM_FILEPAGES);
117741 + }
117742 + free_swap_and_cache(swapentry);
117743 + pte_clear_not_present_full(mm, address, pte, 0);
117744 + } else {
117745 + struct page *page;
117746 +
117747 + flush_cache_page(vma, address, pte_pfn(entry));
117748 + entry = ptep_clear_flush(vma, address, pte);
117749 + BUG_ON(pte_dirty(entry));
117750 + page = vm_normal_page(vma, address, entry);
117751 + if (page) {
117752 + update_hiwater_rss(mm);
117753 + if (PageAnon(page))
117754 + dec_mm_counter_fast(mm, MM_ANONPAGES);
117755 + else
117756 + dec_mm_counter_fast(mm, MM_FILEPAGES);
117757 + page_remove_rmap(page);
117758 + page_cache_release(page);
117759 + }
117760 + }
117761 + pte_unmap_unlock(pte, ptl);
117762 +}
117763 +
117764 +/* PaX: if vma is mirrored, synchronize the mirror's PTE
117765 + *
117766 + * the ptl of the lower mapped page is held on entry and is not released on exit
117767 + * or inside to ensure atomic changes to the PTE states (swapout, mremap, munmap, etc)
117768 + */
117769 +static void pax_mirror_anon_pte(struct vm_area_struct *vma, unsigned long address, struct page *page_m, spinlock_t *ptl)
117770 +{
117771 + struct mm_struct *mm = vma->vm_mm;
117772 + unsigned long address_m;
117773 + spinlock_t *ptl_m;
117774 + struct vm_area_struct *vma_m;
117775 + pmd_t *pmd_m;
117776 + pte_t *pte_m, entry_m;
117777 +
117778 + BUG_ON(!page_m || !PageAnon(page_m));
117779 +
117780 + vma_m = pax_find_mirror_vma(vma);
117781 + if (!vma_m)
117782 + return;
117783 +
117784 + BUG_ON(!PageLocked(page_m));
117785 + BUG_ON(address >= SEGMEXEC_TASK_SIZE);
117786 + address_m = address + SEGMEXEC_TASK_SIZE;
117787 + pmd_m = pmd_offset(pud_offset(pgd_offset(mm, address_m), address_m), address_m);
117788 + pte_m = pte_offset_map(pmd_m, address_m);
117789 + ptl_m = pte_lockptr(mm, pmd_m);
117790 + if (ptl != ptl_m) {
117791 + spin_lock_nested(ptl_m, SINGLE_DEPTH_NESTING);
117792 + if (!pte_none(*pte_m))
117793 + goto out;
117794 + }
117795 +
117796 + entry_m = pfn_pte(page_to_pfn(page_m), vma_m->vm_page_prot);
117797 + page_cache_get(page_m);
117798 + page_add_anon_rmap(page_m, vma_m, address_m);
117799 + inc_mm_counter_fast(mm, MM_ANONPAGES);
117800 + set_pte_at(mm, address_m, pte_m, entry_m);
117801 + update_mmu_cache(vma_m, address_m, pte_m);
117802 +out:
117803 + if (ptl != ptl_m)
117804 + spin_unlock(ptl_m);
117805 + pte_unmap(pte_m);
117806 + unlock_page(page_m);
117807 +}
117808 +
117809 +void pax_mirror_file_pte(struct vm_area_struct *vma, unsigned long address, struct page *page_m, spinlock_t *ptl)
117810 +{
117811 + struct mm_struct *mm = vma->vm_mm;
117812 + unsigned long address_m;
117813 + spinlock_t *ptl_m;
117814 + struct vm_area_struct *vma_m;
117815 + pmd_t *pmd_m;
117816 + pte_t *pte_m, entry_m;
117817 +
117818 + BUG_ON(!page_m || PageAnon(page_m));
117819 +
117820 + vma_m = pax_find_mirror_vma(vma);
117821 + if (!vma_m)
117822 + return;
117823 +
117824 + BUG_ON(address >= SEGMEXEC_TASK_SIZE);
117825 + address_m = address + SEGMEXEC_TASK_SIZE;
117826 + pmd_m = pmd_offset(pud_offset(pgd_offset(mm, address_m), address_m), address_m);
117827 + pte_m = pte_offset_map(pmd_m, address_m);
117828 + ptl_m = pte_lockptr(mm, pmd_m);
117829 + if (ptl != ptl_m) {
117830 + spin_lock_nested(ptl_m, SINGLE_DEPTH_NESTING);
117831 + if (!pte_none(*pte_m))
117832 + goto out;
117833 + }
117834 +
117835 + entry_m = pfn_pte(page_to_pfn(page_m), vma_m->vm_page_prot);
117836 + page_cache_get(page_m);
117837 + page_add_file_rmap(page_m);
117838 + inc_mm_counter_fast(mm, MM_FILEPAGES);
117839 + set_pte_at(mm, address_m, pte_m, entry_m);
117840 + update_mmu_cache(vma_m, address_m, pte_m);
117841 +out:
117842 + if (ptl != ptl_m)
117843 + spin_unlock(ptl_m);
117844 + pte_unmap(pte_m);
117845 +}
117846 +
117847 +static void pax_mirror_pfn_pte(struct vm_area_struct *vma, unsigned long address, unsigned long pfn_m, spinlock_t *ptl)
117848 +{
117849 + struct mm_struct *mm = vma->vm_mm;
117850 + unsigned long address_m;
117851 + spinlock_t *ptl_m;
117852 + struct vm_area_struct *vma_m;
117853 + pmd_t *pmd_m;
117854 + pte_t *pte_m, entry_m;
117855 +
117856 + vma_m = pax_find_mirror_vma(vma);
117857 + if (!vma_m)
117858 + return;
117859 +
117860 + BUG_ON(address >= SEGMEXEC_TASK_SIZE);
117861 + address_m = address + SEGMEXEC_TASK_SIZE;
117862 + pmd_m = pmd_offset(pud_offset(pgd_offset(mm, address_m), address_m), address_m);
117863 + pte_m = pte_offset_map(pmd_m, address_m);
117864 + ptl_m = pte_lockptr(mm, pmd_m);
117865 + if (ptl != ptl_m) {
117866 + spin_lock_nested(ptl_m, SINGLE_DEPTH_NESTING);
117867 + if (!pte_none(*pte_m))
117868 + goto out;
117869 + }
117870 +
117871 + entry_m = pfn_pte(pfn_m, vma_m->vm_page_prot);
117872 + set_pte_at(mm, address_m, pte_m, entry_m);
117873 +out:
117874 + if (ptl != ptl_m)
117875 + spin_unlock(ptl_m);
117876 + pte_unmap(pte_m);
117877 +}
117878 +
117879 +static void pax_mirror_pte(struct vm_area_struct *vma, unsigned long address, pte_t *pte, pmd_t *pmd, spinlock_t *ptl)
117880 +{
117881 + struct page *page_m;
117882 + pte_t entry;
117883 +
117884 + if (!(vma->vm_mm->pax_flags & MF_PAX_SEGMEXEC))
117885 + goto out;
117886 +
117887 + entry = *pte;
117888 + page_m = vm_normal_page(vma, address, entry);
117889 + if (!page_m)
117890 + pax_mirror_pfn_pte(vma, address, pte_pfn(entry), ptl);
117891 + else if (PageAnon(page_m)) {
117892 + if (pax_find_mirror_vma(vma)) {
117893 + pte_unmap_unlock(pte, ptl);
117894 + lock_page(page_m);
117895 + pte = pte_offset_map_lock(vma->vm_mm, pmd, address, &ptl);
117896 + if (pte_same(entry, *pte))
117897 + pax_mirror_anon_pte(vma, address, page_m, ptl);
117898 + else
117899 + unlock_page(page_m);
117900 + }
117901 + } else
117902 + pax_mirror_file_pte(vma, address, page_m, ptl);
117903 +
117904 +out:
117905 + pte_unmap_unlock(pte, ptl);
117906 +}
117907 +#endif
117908 +
117909 /*
117910 * Handle the case of a page which we actually need to copy to a new page.
117911 *
117912 @@ -2095,6 +2311,12 @@ static int wp_page_copy(struct mm_struct *mm, struct vm_area_struct *vma,
117913 */
117914 page_table = pte_offset_map_lock(mm, pmd, address, &ptl);
117915 if (likely(pte_same(*page_table, orig_pte))) {
117916 +
117917 +#ifdef CONFIG_PAX_SEGMEXEC
117918 + if (pax_find_mirror_vma(vma))
117919 + BUG_ON(!trylock_page(new_page));
117920 +#endif
117921 +
117922 if (old_page) {
117923 if (!PageAnon(old_page)) {
117924 dec_mm_counter_fast(mm, MM_FILEPAGES);
117925 @@ -2149,6 +2371,10 @@ static int wp_page_copy(struct mm_struct *mm, struct vm_area_struct *vma,
117926 page_remove_rmap(old_page);
117927 }
117928
117929 +#ifdef CONFIG_PAX_SEGMEXEC
117930 + pax_mirror_anon_pte(vma, address, new_page, ptl);
117931 +#endif
117932 +
117933 /* Free the old page.. */
117934 new_page = old_page;
117935 page_copied = 1;
117936 @@ -2580,6 +2806,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
117937 swap_free(entry);
117938 if (vm_swap_full() || (vma->vm_flags & VM_LOCKED) || PageMlocked(page))
117939 try_to_free_swap(page);
117940 +
117941 +#ifdef CONFIG_PAX_SEGMEXEC
117942 + if ((flags & FAULT_FLAG_WRITE) || !pax_find_mirror_vma(vma))
117943 +#endif
117944 +
117945 unlock_page(page);
117946 if (page != swapcache) {
117947 /*
117948 @@ -2603,6 +2834,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
117949
117950 /* No need to invalidate - it was non-present before */
117951 update_mmu_cache(vma, address, page_table);
117952 +
117953 +#ifdef CONFIG_PAX_SEGMEXEC
117954 + pax_mirror_anon_pte(vma, address, page, ptl);
117955 +#endif
117956 +
117957 unlock:
117958 pte_unmap_unlock(page_table, ptl);
117959 out:
117960 @@ -2622,40 +2858,6 @@ out_release:
117961 }
117962
117963 /*
117964 - * This is like a special single-page "expand_{down|up}wards()",
117965 - * except we must first make sure that 'address{-|+}PAGE_SIZE'
117966 - * doesn't hit another vma.
117967 - */
117968 -static inline int check_stack_guard_page(struct vm_area_struct *vma, unsigned long address)
117969 -{
117970 - address &= PAGE_MASK;
117971 - if ((vma->vm_flags & VM_GROWSDOWN) && address == vma->vm_start) {
117972 - struct vm_area_struct *prev = vma->vm_prev;
117973 -
117974 - /*
117975 - * Is there a mapping abutting this one below?
117976 - *
117977 - * That's only ok if it's the same stack mapping
117978 - * that has gotten split..
117979 - */
117980 - if (prev && prev->vm_end == address)
117981 - return prev->vm_flags & VM_GROWSDOWN ? 0 : -ENOMEM;
117982 -
117983 - return expand_downwards(vma, address - PAGE_SIZE);
117984 - }
117985 - if ((vma->vm_flags & VM_GROWSUP) && address + PAGE_SIZE == vma->vm_end) {
117986 - struct vm_area_struct *next = vma->vm_next;
117987 -
117988 - /* As VM_GROWSDOWN but s/below/above/ */
117989 - if (next && next->vm_start == address + PAGE_SIZE)
117990 - return next->vm_flags & VM_GROWSUP ? 0 : -ENOMEM;
117991 -
117992 - return expand_upwards(vma, address + PAGE_SIZE);
117993 - }
117994 - return 0;
117995 -}
117996 -
117997 -/*
117998 * We enter with non-exclusive mmap_sem (to exclude vma changes,
117999 * but allow concurrent faults), and pte mapped but not yet locked.
118000 * We return with mmap_sem still held, but pte unmapped and unlocked.
118001 @@ -2665,25 +2867,22 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
118002 unsigned int flags)
118003 {
118004 struct mem_cgroup *memcg;
118005 - struct page *page;
118006 + struct page *page = NULL;
118007 spinlock_t *ptl;
118008 pte_t entry;
118009
118010 - pte_unmap(page_table);
118011 -
118012 /* File mapping without ->vm_ops ? */
118013 - if (vma->vm_flags & VM_SHARED)
118014 + if (vma->vm_flags & VM_SHARED) {
118015 + pte_unmap(page_table);
118016 return VM_FAULT_SIGBUS;
118017 -
118018 - /* Check if we need to add a guard page to the stack */
118019 - if (check_stack_guard_page(vma, address) < 0)
118020 - return VM_FAULT_SIGSEGV;
118021 + }
118022
118023 /* Use the zero-page for reads */
118024 if (!(flags & FAULT_FLAG_WRITE) && !mm_forbids_zeropage(mm)) {
118025 entry = pte_mkspecial(pfn_pte(my_zero_pfn(address),
118026 vma->vm_page_prot));
118027 - page_table = pte_offset_map_lock(mm, pmd, address, &ptl);
118028 + ptl = pte_lockptr(mm, pmd);
118029 + spin_lock(ptl);
118030 if (!pte_none(*page_table))
118031 goto unlock;
118032 /* Deliver the page fault to userland, check inside PT lock */
118033 @@ -2696,6 +2895,8 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
118034 }
118035
118036 /* Allocate our own private page. */
118037 + pte_unmap(page_table);
118038 +
118039 if (unlikely(anon_vma_prepare(vma)))
118040 goto oom;
118041 page = alloc_zeroed_user_highpage_movable(vma, address);
118042 @@ -2729,6 +2930,11 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
118043 VM_UFFD_MISSING);
118044 }
118045
118046 +#ifdef CONFIG_PAX_SEGMEXEC
118047 + if (pax_find_mirror_vma(vma))
118048 + BUG_ON(!trylock_page(page));
118049 +#endif
118050 +
118051 inc_mm_counter_fast(mm, MM_ANONPAGES);
118052 page_add_new_anon_rmap(page, vma, address);
118053 mem_cgroup_commit_charge(page, memcg, false);
118054 @@ -2738,6 +2944,12 @@ setpte:
118055
118056 /* No need to invalidate - it was non-present before */
118057 update_mmu_cache(vma, address, page_table);
118058 +
118059 +#ifdef CONFIG_PAX_SEGMEXEC
118060 + if (page)
118061 + pax_mirror_anon_pte(vma, address, page, ptl);
118062 +#endif
118063 +
118064 unlock:
118065 pte_unmap_unlock(page_table, ptl);
118066 return 0;
118067 @@ -2970,6 +3182,11 @@ static int do_read_fault(struct mm_struct *mm, struct vm_area_struct *vma,
118068 return ret;
118069 }
118070 do_set_pte(vma, address, fault_page, pte, false, false);
118071 +
118072 +#ifdef CONFIG_PAX_SEGMEXEC
118073 + pax_mirror_file_pte(vma, address, fault_page, ptl);
118074 +#endif
118075 +
118076 unlock_page(fault_page);
118077 unlock_out:
118078 pte_unmap_unlock(pte, ptl);
118079 @@ -3021,7 +3238,18 @@ static int do_cow_fault(struct mm_struct *mm, struct vm_area_struct *vma,
118080 }
118081 goto uncharge_out;
118082 }
118083 +
118084 +#ifdef CONFIG_PAX_SEGMEXEC
118085 + if (pax_find_mirror_vma(vma))
118086 + BUG_ON(!trylock_page(new_page));
118087 +#endif
118088 +
118089 do_set_pte(vma, address, new_page, pte, true, true);
118090 +
118091 +#ifdef CONFIG_PAX_SEGMEXEC
118092 + pax_mirror_anon_pte(vma, address, new_page, ptl);
118093 +#endif
118094 +
118095 mem_cgroup_commit_charge(new_page, memcg, false);
118096 lru_cache_add_active_or_unevictable(new_page, vma);
118097 pte_unmap_unlock(pte, ptl);
118098 @@ -3079,6 +3307,11 @@ static int do_shared_fault(struct mm_struct *mm, struct vm_area_struct *vma,
118099 return ret;
118100 }
118101 do_set_pte(vma, address, fault_page, pte, true, false);
118102 +
118103 +#ifdef CONFIG_PAX_SEGMEXEC
118104 + pax_mirror_file_pte(vma, address, fault_page, ptl);
118105 +#endif
118106 +
118107 pte_unmap_unlock(pte, ptl);
118108
118109 if (set_page_dirty(fault_page))
118110 @@ -3325,6 +3558,12 @@ static int handle_pte_fault(struct mm_struct *mm,
118111 if (flags & FAULT_FLAG_WRITE)
118112 flush_tlb_fix_spurious_fault(vma, address);
118113 }
118114 +
118115 +#ifdef CONFIG_PAX_SEGMEXEC
118116 + pax_mirror_pte(vma, address, pte, pmd, ptl);
118117 + return 0;
118118 +#endif
118119 +
118120 unlock:
118121 pte_unmap_unlock(pte, ptl);
118122 return 0;
118123 @@ -3344,9 +3583,41 @@ static int __handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
118124 pmd_t *pmd;
118125 pte_t *pte;
118126
118127 +#ifdef CONFIG_PAX_SEGMEXEC
118128 + struct vm_area_struct *vma_m;
118129 +#endif
118130 +
118131 if (unlikely(is_vm_hugetlb_page(vma)))
118132 return hugetlb_fault(mm, vma, address, flags);
118133
118134 +#ifdef CONFIG_PAX_SEGMEXEC
118135 + vma_m = pax_find_mirror_vma(vma);
118136 + if (vma_m) {
118137 + unsigned long address_m;
118138 + pgd_t *pgd_m;
118139 + pud_t *pud_m;
118140 + pmd_t *pmd_m;
118141 +
118142 + if (vma->vm_start > vma_m->vm_start) {
118143 + address_m = address;
118144 + address -= SEGMEXEC_TASK_SIZE;
118145 + vma = vma_m;
118146 + } else
118147 + address_m = address + SEGMEXEC_TASK_SIZE;
118148 +
118149 + pgd_m = pgd_offset(mm, address_m);
118150 + pud_m = pud_alloc(mm, pgd_m, address_m);
118151 + if (!pud_m)
118152 + return VM_FAULT_OOM;
118153 + pmd_m = pmd_alloc(mm, pud_m, address_m);
118154 + if (!pmd_m)
118155 + return VM_FAULT_OOM;
118156 + if (!pmd_present(*pmd_m) && __pte_alloc(mm, vma_m, pmd_m, address_m))
118157 + return VM_FAULT_OOM;
118158 + pax_unmap_mirror_pte(vma_m, address_m, pmd_m);
118159 + }
118160 +#endif
118161 +
118162 pgd = pgd_offset(mm, address);
118163 pud = pud_alloc(mm, pgd, address);
118164 if (!pud)
118165 @@ -3488,6 +3759,23 @@ int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
118166 spin_unlock(&mm->page_table_lock);
118167 return 0;
118168 }
118169 +
118170 +int __pud_alloc_kernel(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
118171 +{
118172 + pud_t *new = pud_alloc_one(mm, address);
118173 + if (!new)
118174 + return -ENOMEM;
118175 +
118176 + smp_wmb(); /* See comment in __pte_alloc */
118177 +
118178 + spin_lock(&mm->page_table_lock);
118179 + if (pgd_present(*pgd)) /* Another has populated it */
118180 + pud_free(mm, new);
118181 + else
118182 + pgd_populate_kernel(mm, pgd, new);
118183 + spin_unlock(&mm->page_table_lock);
118184 + return 0;
118185 +}
118186 #endif /* __PAGETABLE_PUD_FOLDED */
118187
118188 #ifndef __PAGETABLE_PMD_FOLDED
118189 @@ -3520,6 +3808,32 @@ int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
118190 spin_unlock(&mm->page_table_lock);
118191 return 0;
118192 }
118193 +
118194 +int __pmd_alloc_kernel(struct mm_struct *mm, pud_t *pud, unsigned long address)
118195 +{
118196 + pmd_t *new = pmd_alloc_one(mm, address);
118197 + if (!new)
118198 + return -ENOMEM;
118199 +
118200 + smp_wmb(); /* See comment in __pte_alloc */
118201 +
118202 + spin_lock(&mm->page_table_lock);
118203 +#ifndef __ARCH_HAS_4LEVEL_HACK
118204 + if (!pud_present(*pud)) {
118205 + mm_inc_nr_pmds(mm);
118206 + pud_populate_kernel(mm, pud, new);
118207 + } else /* Another has populated it */
118208 + pmd_free(mm, new);
118209 +#else
118210 + if (!pgd_present(*pud)) {
118211 + mm_inc_nr_pmds(mm);
118212 + pgd_populate_kernel(mm, pud, new);
118213 + } else /* Another has populated it */
118214 + pmd_free(mm, new);
118215 +#endif /* __ARCH_HAS_4LEVEL_HACK */
118216 + spin_unlock(&mm->page_table_lock);
118217 + return 0;
118218 +}
118219 #endif /* __PAGETABLE_PMD_FOLDED */
118220
118221 static int __follow_pte(struct mm_struct *mm, unsigned long address,
118222 @@ -3629,8 +3943,8 @@ out:
118223 return ret;
118224 }
118225
118226 -int generic_access_phys(struct vm_area_struct *vma, unsigned long addr,
118227 - void *buf, int len, int write)
118228 +ssize_t generic_access_phys(struct vm_area_struct *vma, unsigned long addr,
118229 + void *buf, size_t len, int write)
118230 {
118231 resource_size_t phys_addr;
118232 unsigned long prot = 0;
118233 @@ -3656,8 +3970,8 @@ EXPORT_SYMBOL_GPL(generic_access_phys);
118234 * Access another process' address space as given in mm. If non-NULL, use the
118235 * given task for page fault accounting.
118236 */
118237 -static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
118238 - unsigned long addr, void *buf, int len, int write)
118239 +static ssize_t __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
118240 + unsigned long addr, void *buf, size_t len, int write)
118241 {
118242 struct vm_area_struct *vma;
118243 void *old_buf = buf;
118244 @@ -3665,7 +3979,7 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
118245 down_read(&mm->mmap_sem);
118246 /* ignore errors, just check how much was successfully transferred */
118247 while (len) {
118248 - int bytes, ret, offset;
118249 + ssize_t bytes, ret, offset;
118250 void *maddr;
118251 struct page *page = NULL;
118252
118253 @@ -3726,8 +4040,8 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
118254 *
118255 * The caller must hold a reference on @mm.
118256 */
118257 -int access_remote_vm(struct mm_struct *mm, unsigned long addr,
118258 - void *buf, int len, int write)
118259 +ssize_t access_remote_vm(struct mm_struct *mm, unsigned long addr,
118260 + void *buf, size_t len, int write)
118261 {
118262 return __access_remote_vm(NULL, mm, addr, buf, len, write);
118263 }
118264 @@ -3737,11 +4051,11 @@ int access_remote_vm(struct mm_struct *mm, unsigned long addr,
118265 * Source/target buffer must be kernel space,
118266 * Do not walk the page table directly, use get_user_pages
118267 */
118268 -int access_process_vm(struct task_struct *tsk, unsigned long addr,
118269 - void *buf, int len, int write)
118270 +ssize_t access_process_vm(struct task_struct *tsk, unsigned long addr,
118271 + void *buf, size_t len, int write)
118272 {
118273 struct mm_struct *mm;
118274 - int ret;
118275 + ssize_t ret;
118276
118277 mm = get_task_mm(tsk);
118278 if (!mm)
118279 diff --git a/mm/mempolicy.c b/mm/mempolicy.c
118280 index 87a1779..ebf95d4 100644
118281 --- a/mm/mempolicy.c
118282 +++ b/mm/mempolicy.c
118283 @@ -700,6 +700,10 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
118284 unsigned long vmstart;
118285 unsigned long vmend;
118286
118287 +#ifdef CONFIG_PAX_SEGMEXEC
118288 + struct vm_area_struct *vma_m;
118289 +#endif
118290 +
118291 vma = find_vma(mm, start);
118292 if (!vma || vma->vm_start > start)
118293 return -EFAULT;
118294 @@ -743,6 +747,16 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
118295 err = vma_replace_policy(vma, new_pol);
118296 if (err)
118297 goto out;
118298 +
118299 +#ifdef CONFIG_PAX_SEGMEXEC
118300 + vma_m = pax_find_mirror_vma(vma);
118301 + if (vma_m) {
118302 + err = vma_replace_policy(vma_m, new_pol);
118303 + if (err)
118304 + goto out;
118305 + }
118306 +#endif
118307 +
118308 }
118309
118310 out:
118311 @@ -1158,6 +1172,17 @@ static long do_mbind(unsigned long start, unsigned long len,
118312
118313 if (end < start)
118314 return -EINVAL;
118315 +
118316 +#ifdef CONFIG_PAX_SEGMEXEC
118317 + if (mm->pax_flags & MF_PAX_SEGMEXEC) {
118318 + if (end > SEGMEXEC_TASK_SIZE)
118319 + return -EINVAL;
118320 + } else
118321 +#endif
118322 +
118323 + if (end > TASK_SIZE)
118324 + return -EINVAL;
118325 +
118326 if (end == start)
118327 return 0;
118328
118329 @@ -1383,8 +1408,7 @@ SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
118330 */
118331 tcred = __task_cred(task);
118332 if (!uid_eq(cred->euid, tcred->suid) && !uid_eq(cred->euid, tcred->uid) &&
118333 - !uid_eq(cred->uid, tcred->suid) && !uid_eq(cred->uid, tcred->uid) &&
118334 - !capable(CAP_SYS_NICE)) {
118335 + !uid_eq(cred->uid, tcred->suid) && !capable(CAP_SYS_NICE)) {
118336 rcu_read_unlock();
118337 err = -EPERM;
118338 goto out_put;
118339 @@ -1415,6 +1439,15 @@ SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
118340 goto out;
118341 }
118342
118343 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
118344 + if (mm != current->mm &&
118345 + (mm->pax_flags & MF_PAX_RANDMMAP || mm->pax_flags & MF_PAX_SEGMEXEC)) {
118346 + mmput(mm);
118347 + err = -EPERM;
118348 + goto out;
118349 + }
118350 +#endif
118351 +
118352 err = do_migrate_pages(mm, old, new,
118353 capable(CAP_SYS_NICE) ? MPOL_MF_MOVE_ALL : MPOL_MF_MOVE);
118354
118355 diff --git a/mm/migrate.c b/mm/migrate.c
118356 index 6d17e0a..64ef47b 100644
118357 --- a/mm/migrate.c
118358 +++ b/mm/migrate.c
118359 @@ -1505,8 +1505,7 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages,
118360 */
118361 tcred = __task_cred(task);
118362 if (!uid_eq(cred->euid, tcred->suid) && !uid_eq(cred->euid, tcred->uid) &&
118363 - !uid_eq(cred->uid, tcred->suid) && !uid_eq(cred->uid, tcred->uid) &&
118364 - !capable(CAP_SYS_NICE)) {
118365 + !uid_eq(cred->uid, tcred->suid) && !capable(CAP_SYS_NICE)) {
118366 rcu_read_unlock();
118367 err = -EPERM;
118368 goto out;
118369 diff --git a/mm/mlock.c b/mm/mlock.c
118370 index d6006b1..a72cbda 100644
118371 --- a/mm/mlock.c
118372 +++ b/mm/mlock.c
118373 @@ -14,6 +14,7 @@
118374 #include <linux/pagevec.h>
118375 #include <linux/mempolicy.h>
118376 #include <linux/syscalls.h>
118377 +#include <linux/security.h>
118378 #include <linux/sched.h>
118379 #include <linux/export.h>
118380 #include <linux/rmap.h>
118381 @@ -560,7 +561,7 @@ static int apply_vma_lock_flags(unsigned long start, size_t len,
118382 {
118383 unsigned long nstart, end, tmp;
118384 struct vm_area_struct * vma, * prev;
118385 - int error;
118386 + int error = 0;
118387
118388 VM_BUG_ON(offset_in_page(start));
118389 VM_BUG_ON(len != PAGE_ALIGN(len));
118390 @@ -569,6 +570,9 @@ static int apply_vma_lock_flags(unsigned long start, size_t len,
118391 return -EINVAL;
118392 if (end == start)
118393 return 0;
118394 + if (end > TASK_SIZE)
118395 + return -EINVAL;
118396 +
118397 vma = find_vma(current->mm, start);
118398 if (!vma || vma->vm_start > start)
118399 return -ENOMEM;
118400 @@ -578,8 +582,14 @@ static int apply_vma_lock_flags(unsigned long start, size_t len,
118401 prev = vma;
118402
118403 for (nstart = start ; ; ) {
118404 - vm_flags_t newflags = vma->vm_flags & VM_LOCKED_CLEAR_MASK;
118405 + vm_flags_t newflags;
118406
118407 +#ifdef CONFIG_PAX_SEGMEXEC
118408 + if ((current->mm->pax_flags & MF_PAX_SEGMEXEC) && (vma->vm_start >= SEGMEXEC_TASK_SIZE))
118409 + break;
118410 +#endif
118411 +
118412 + newflags = vma->vm_flags & VM_LOCKED_CLEAR_MASK;
118413 newflags |= flags;
118414
118415 /* Here we know that vma->vm_start <= nstart < vma->vm_end. */
118416 @@ -627,6 +637,10 @@ static int do_mlock(unsigned long start, size_t len, vm_flags_t flags)
118417 locked += current->mm->locked_vm;
118418
118419 /* check against resource limits */
118420 + if (locked > (ULONG_MAX >> PAGE_SHIFT))
118421 + gr_learn_resource(current, RLIMIT_MEMLOCK, ULONG_MAX, 1);
118422 + else
118423 + gr_learn_resource(current, RLIMIT_MEMLOCK, locked << PAGE_SHIFT, 1);
118424 if ((locked <= lock_limit) || capable(CAP_IPC_LOCK))
118425 error = apply_vma_lock_flags(start, len, flags);
118426
118427 @@ -707,6 +721,11 @@ static int apply_mlockall_flags(int flags)
118428 for (vma = current->mm->mmap; vma ; vma = prev->vm_next) {
118429 vm_flags_t newflags;
118430
118431 +#ifdef CONFIG_PAX_SEGMEXEC
118432 + if ((current->mm->pax_flags & MF_PAX_SEGMEXEC) && (vma->vm_start >= SEGMEXEC_TASK_SIZE))
118433 + break;
118434 +#endif
118435 +
118436 newflags = vma->vm_flags & VM_LOCKED_CLEAR_MASK;
118437 newflags |= to_add;
118438
118439 @@ -736,8 +755,12 @@ SYSCALL_DEFINE1(mlockall, int, flags)
118440 lock_limit >>= PAGE_SHIFT;
118441
118442 ret = -ENOMEM;
118443 - down_write(&current->mm->mmap_sem);
118444
118445 + down_write(&current->mm->mmap_sem);
118446 + if (current->mm->total_vm > (ULONG_MAX >> PAGE_SHIFT))
118447 + gr_learn_resource(current, RLIMIT_MEMLOCK, ULONG_MAX, 1);
118448 + else
118449 + gr_learn_resource(current, RLIMIT_MEMLOCK, current->mm->total_vm << PAGE_SHIFT, 1);
118450 if (!(flags & MCL_CURRENT) || (current->mm->total_vm <= lock_limit) ||
118451 capable(CAP_IPC_LOCK))
118452 ret = apply_mlockall_flags(flags);
118453 diff --git a/mm/mm_init.c b/mm/mm_init.c
118454 index fdadf91..90c6bcc 100644
118455 --- a/mm/mm_init.c
118456 +++ b/mm/mm_init.c
118457 @@ -170,7 +170,7 @@ static int __meminit mm_compute_batch_notifier(struct notifier_block *self,
118458 return NOTIFY_OK;
118459 }
118460
118461 -static struct notifier_block compute_batch_nb __meminitdata = {
118462 +static struct notifier_block compute_batch_nb = {
118463 .notifier_call = mm_compute_batch_notifier,
118464 .priority = IPC_CALLBACK_PRI, /* use lowest priority */
118465 };
118466 diff --git a/mm/mmap.c b/mm/mmap.c
118467 index 455772a..5ce0964 100644
118468 --- a/mm/mmap.c
118469 +++ b/mm/mmap.c
118470 @@ -42,6 +42,7 @@
118471 #include <linux/memory.h>
118472 #include <linux/printk.h>
118473 #include <linux/userfaultfd_k.h>
118474 +#include <linux/random.h>
118475
118476 #include <asm/uaccess.h>
118477 #include <asm/cacheflush.h>
118478 @@ -58,6 +59,16 @@
118479 #define arch_rebalance_pgtables(addr, len) (addr)
118480 #endif
118481
118482 +static inline void verify_mm_writelocked(struct mm_struct *mm)
118483 +{
118484 +#if defined(CONFIG_DEBUG_VM) || defined(CONFIG_PAX)
118485 + if (unlikely(down_read_trylock(&mm->mmap_sem))) {
118486 + up_read(&mm->mmap_sem);
118487 + BUG();
118488 + }
118489 +#endif
118490 +}
118491 +
118492 static void unmap_region(struct mm_struct *mm,
118493 struct vm_area_struct *vma, struct vm_area_struct *prev,
118494 unsigned long start, unsigned long end);
118495 @@ -77,16 +88,25 @@ static void unmap_region(struct mm_struct *mm,
118496 * x: (no) no x: (no) yes x: (no) yes x: (yes) yes
118497 *
118498 */
118499 -pgprot_t protection_map[16] = {
118500 +pgprot_t protection_map[16] __read_only = {
118501 __P000, __P001, __P010, __P011, __P100, __P101, __P110, __P111,
118502 __S000, __S001, __S010, __S011, __S100, __S101, __S110, __S111
118503 };
118504
118505 -pgprot_t vm_get_page_prot(unsigned long vm_flags)
118506 +pgprot_t vm_get_page_prot(vm_flags_t vm_flags)
118507 {
118508 - return __pgprot(pgprot_val(protection_map[vm_flags &
118509 + pgprot_t prot = __pgprot(pgprot_val(protection_map[vm_flags &
118510 (VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)]) |
118511 pgprot_val(arch_vm_get_page_prot(vm_flags)));
118512 +
118513 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_X86_32)
118514 + if (!(__supported_pte_mask & _PAGE_NX) &&
118515 + (vm_flags & (VM_PAGEEXEC | VM_EXEC)) == VM_PAGEEXEC &&
118516 + (vm_flags & (VM_READ | VM_WRITE)))
118517 + prot = __pgprot(pte_val(pte_exprotect(__pte(pgprot_val(prot)))));
118518 +#endif
118519 +
118520 + return prot;
118521 }
118522 EXPORT_SYMBOL(vm_get_page_prot);
118523
118524 @@ -115,6 +135,7 @@ unsigned long sysctl_overcommit_kbytes __read_mostly;
118525 int sysctl_max_map_count __read_mostly = DEFAULT_MAX_MAP_COUNT;
118526 unsigned long sysctl_user_reserve_kbytes __read_mostly = 1UL << 17; /* 128MB */
118527 unsigned long sysctl_admin_reserve_kbytes __read_mostly = 1UL << 13; /* 8MB */
118528 +unsigned long sysctl_heap_stack_gap __read_mostly = 64*1024;
118529 /*
118530 * Make sure vm_committed_as in one cacheline and not cacheline shared with
118531 * other variables. It can be updated by several CPUs frequently.
118532 @@ -272,6 +293,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma)
118533 struct vm_area_struct *next = vma->vm_next;
118534
118535 might_sleep();
118536 + BUG_ON(vma->vm_mirror);
118537 if (vma->vm_ops && vma->vm_ops->close)
118538 vma->vm_ops->close(vma);
118539 if (vma->vm_file)
118540 @@ -285,6 +307,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len);
118541
118542 SYSCALL_DEFINE1(brk, unsigned long, brk)
118543 {
118544 + unsigned long rlim;
118545 unsigned long retval;
118546 unsigned long newbrk, oldbrk;
118547 struct mm_struct *mm = current->mm;
118548 @@ -315,7 +338,13 @@ SYSCALL_DEFINE1(brk, unsigned long, brk)
118549 * segment grow beyond its set limit the in case where the limit is
118550 * not page aligned -Ram Gupta
118551 */
118552 - if (check_data_rlimit(rlimit(RLIMIT_DATA), brk, mm->start_brk,
118553 + rlim = rlimit(RLIMIT_DATA);
118554 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
118555 + /* force a minimum 16MB brk heap on setuid/setgid binaries */
118556 + if (rlim < (4096 * PAGE_SIZE) && (get_dumpable(mm) != SUID_DUMP_USER) && gr_is_global_nonroot(current_uid()))
118557 + rlim = 4096 * PAGE_SIZE;
118558 +#endif
118559 + if (check_data_rlimit(rlim, brk, mm->start_brk,
118560 mm->end_data, mm->start_data))
118561 goto out;
118562
118563 @@ -977,6 +1006,12 @@ can_vma_merge_before(struct vm_area_struct *vma, unsigned long vm_flags,
118564 pgoff_t vm_pgoff,
118565 struct vm_userfaultfd_ctx vm_userfaultfd_ctx)
118566 {
118567 +
118568 +#ifdef CONFIG_PAX_SEGMEXEC
118569 + if ((vma->vm_mm->pax_flags & MF_PAX_SEGMEXEC) && vma->vm_start == SEGMEXEC_TASK_SIZE)
118570 + return 0;
118571 +#endif
118572 +
118573 if (is_mergeable_vma(vma, file, vm_flags, vm_userfaultfd_ctx) &&
118574 is_mergeable_anon_vma(anon_vma, vma->anon_vma, vma)) {
118575 if (vma->vm_pgoff == vm_pgoff)
118576 @@ -998,6 +1033,12 @@ can_vma_merge_after(struct vm_area_struct *vma, unsigned long vm_flags,
118577 pgoff_t vm_pgoff,
118578 struct vm_userfaultfd_ctx vm_userfaultfd_ctx)
118579 {
118580 +
118581 +#ifdef CONFIG_PAX_SEGMEXEC
118582 + if ((vma->vm_mm->pax_flags & MF_PAX_SEGMEXEC) && vma->vm_end == SEGMEXEC_TASK_SIZE)
118583 + return 0;
118584 +#endif
118585 +
118586 if (is_mergeable_vma(vma, file, vm_flags, vm_userfaultfd_ctx) &&
118587 is_mergeable_anon_vma(anon_vma, vma->anon_vma, vma)) {
118588 pgoff_t vm_pglen;
118589 @@ -1048,6 +1089,13 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
118590 struct vm_area_struct *area, *next;
118591 int err;
118592
118593 +#ifdef CONFIG_PAX_SEGMEXEC
118594 + unsigned long addr_m = addr + SEGMEXEC_TASK_SIZE, end_m = end + SEGMEXEC_TASK_SIZE;
118595 + struct vm_area_struct *area_m = NULL, *next_m = NULL, *prev_m = NULL;
118596 +
118597 + BUG_ON((mm->pax_flags & MF_PAX_SEGMEXEC) && SEGMEXEC_TASK_SIZE < end);
118598 +#endif
118599 +
118600 /*
118601 * We later require that vma->vm_flags == vm_flags,
118602 * so this tests vma->vm_flags & VM_SPECIAL, too.
118603 @@ -1063,6 +1111,15 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
118604 if (next && next->vm_end == end) /* cases 6, 7, 8 */
118605 next = next->vm_next;
118606
118607 +#ifdef CONFIG_PAX_SEGMEXEC
118608 + if (prev)
118609 + prev_m = pax_find_mirror_vma(prev);
118610 + if (area)
118611 + area_m = pax_find_mirror_vma(area);
118612 + if (next)
118613 + next_m = pax_find_mirror_vma(next);
118614 +#endif
118615 +
118616 /*
118617 * Can it merge with the predecessor?
118618 */
118619 @@ -1085,9 +1142,24 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
118620 /* cases 1, 6 */
118621 err = vma_adjust(prev, prev->vm_start,
118622 next->vm_end, prev->vm_pgoff, NULL);
118623 - } else /* cases 2, 5, 7 */
118624 +
118625 +#ifdef CONFIG_PAX_SEGMEXEC
118626 + if (!err && prev_m)
118627 + err = vma_adjust(prev_m, prev_m->vm_start,
118628 + next_m->vm_end, prev_m->vm_pgoff, NULL);
118629 +#endif
118630 +
118631 + } else { /* cases 2, 5, 7 */
118632 err = vma_adjust(prev, prev->vm_start,
118633 end, prev->vm_pgoff, NULL);
118634 +
118635 +#ifdef CONFIG_PAX_SEGMEXEC
118636 + if (!err && prev_m)
118637 + err = vma_adjust(prev_m, prev_m->vm_start,
118638 + end_m, prev_m->vm_pgoff, NULL);
118639 +#endif
118640 +
118641 + }
118642 if (err)
118643 return NULL;
118644 khugepaged_enter_vma_merge(prev, vm_flags);
118645 @@ -1102,12 +1174,27 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
118646 can_vma_merge_before(next, vm_flags,
118647 anon_vma, file, pgoff+pglen,
118648 vm_userfaultfd_ctx)) {
118649 - if (prev && addr < prev->vm_end) /* case 4 */
118650 + if (prev && addr < prev->vm_end) { /* case 4 */
118651 err = vma_adjust(prev, prev->vm_start,
118652 addr, prev->vm_pgoff, NULL);
118653 - else /* cases 3, 8 */
118654 +
118655 +#ifdef CONFIG_PAX_SEGMEXEC
118656 + if (!err && prev_m)
118657 + err = vma_adjust(prev_m, prev_m->vm_start,
118658 + addr_m, prev_m->vm_pgoff, NULL);
118659 +#endif
118660 +
118661 + } else { /* cases 3, 8 */
118662 err = vma_adjust(area, addr, next->vm_end,
118663 next->vm_pgoff - pglen, NULL);
118664 +
118665 +#ifdef CONFIG_PAX_SEGMEXEC
118666 + if (!err && area_m)
118667 + err = vma_adjust(area_m, addr_m, next_m->vm_end,
118668 + next_m->vm_pgoff - pglen, NULL);
118669 +#endif
118670 +
118671 + }
118672 if (err)
118673 return NULL;
118674 khugepaged_enter_vma_merge(area, vm_flags);
118675 @@ -1216,8 +1303,10 @@ none:
118676 void vm_stat_account(struct mm_struct *mm, unsigned long flags,
118677 struct file *file, long pages)
118678 {
118679 - const unsigned long stack_flags
118680 - = VM_STACK_FLAGS & (VM_GROWSUP|VM_GROWSDOWN);
118681 +
118682 +#ifdef CONFIG_PAX_RANDMMAP
118683 + if (!(mm->pax_flags & MF_PAX_RANDMMAP) || (flags & (VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)))
118684 +#endif
118685
118686 mm->total_vm += pages;
118687
118688 @@ -1225,7 +1314,7 @@ void vm_stat_account(struct mm_struct *mm, unsigned long flags,
118689 mm->shared_vm += pages;
118690 if ((flags & (VM_EXEC|VM_WRITE)) == VM_EXEC)
118691 mm->exec_vm += pages;
118692 - } else if (flags & stack_flags)
118693 + } else if (flags & (VM_GROWSUP|VM_GROWSDOWN))
118694 mm->stack_vm += pages;
118695 }
118696 #endif /* CONFIG_PROC_FS */
118697 @@ -1255,6 +1344,10 @@ static inline int mlock_future_check(struct mm_struct *mm,
118698 locked += mm->locked_vm;
118699 lock_limit = rlimit(RLIMIT_MEMLOCK);
118700 lock_limit >>= PAGE_SHIFT;
118701 + if (locked > (ULONG_MAX >> PAGE_SHIFT))
118702 + gr_learn_resource(current, RLIMIT_MEMLOCK, ULONG_MAX, 1);
118703 + else
118704 + gr_learn_resource(current, RLIMIT_MEMLOCK, locked << PAGE_SHIFT, 1);
118705 if (locked > lock_limit && !capable(CAP_IPC_LOCK))
118706 return -EAGAIN;
118707 }
118708 @@ -1282,7 +1375,7 @@ unsigned long do_mmap(struct file *file, unsigned long addr,
118709 * (the exception is when the underlying filesystem is noexec
118710 * mounted, in which case we dont add PROT_EXEC.)
118711 */
118712 - if ((prot & PROT_READ) && (current->personality & READ_IMPLIES_EXEC))
118713 + if ((prot & (PROT_READ | PROT_WRITE)) && (current->personality & READ_IMPLIES_EXEC))
118714 if (!(file && path_noexec(&file->f_path)))
118715 prot |= PROT_EXEC;
118716
118717 @@ -1305,7 +1398,7 @@ unsigned long do_mmap(struct file *file, unsigned long addr,
118718 /* Obtain the address to map to. we verify (or select) it and ensure
118719 * that it represents a valid section of the address space.
118720 */
118721 - addr = get_unmapped_area(file, addr, len, pgoff, flags);
118722 + addr = get_unmapped_area(file, addr, len, pgoff, flags | ((prot & PROT_EXEC) ? MAP_EXECUTABLE : 0));
118723 if (offset_in_page(addr))
118724 return addr;
118725
118726 @@ -1316,6 +1409,43 @@ unsigned long do_mmap(struct file *file, unsigned long addr,
118727 vm_flags |= calc_vm_prot_bits(prot) | calc_vm_flag_bits(flags) |
118728 mm->def_flags | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC;
118729
118730 +#ifdef CONFIG_PAX_MPROTECT
118731 + if (mm->pax_flags & MF_PAX_MPROTECT) {
118732 +
118733 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
118734 + if (file && !pgoff && (vm_flags & VM_EXEC) && mm->binfmt &&
118735 + mm->binfmt->handle_mmap)
118736 + mm->binfmt->handle_mmap(file);
118737 +#endif
118738 +
118739 +#ifndef CONFIG_PAX_MPROTECT_COMPAT
118740 + if ((vm_flags & (VM_WRITE | VM_EXEC)) == (VM_WRITE | VM_EXEC)) {
118741 + gr_log_rwxmmap(file);
118742 +
118743 +#ifdef CONFIG_PAX_EMUPLT
118744 + vm_flags &= ~VM_EXEC;
118745 +#else
118746 + return -EPERM;
118747 +#endif
118748 +
118749 + }
118750 +
118751 + if (!(vm_flags & VM_EXEC))
118752 + vm_flags &= ~VM_MAYEXEC;
118753 +#else
118754 + if ((vm_flags & (VM_WRITE | VM_EXEC)) != VM_EXEC)
118755 + vm_flags &= ~(VM_EXEC | VM_MAYEXEC);
118756 +#endif
118757 + else
118758 + vm_flags &= ~VM_MAYWRITE;
118759 + }
118760 +#endif
118761 +
118762 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_X86_32)
118763 + if ((mm->pax_flags & MF_PAX_PAGEEXEC) && file)
118764 + vm_flags &= ~VM_PAGEEXEC;
118765 +#endif
118766 +
118767 if (flags & MAP_LOCKED)
118768 if (!can_do_mlock())
118769 return -EPERM;
118770 @@ -1403,6 +1533,9 @@ unsigned long do_mmap(struct file *file, unsigned long addr,
118771 vm_flags |= VM_NORESERVE;
118772 }
118773
118774 + if (!gr_acl_handle_mmap(file, prot))
118775 + return -EACCES;
118776 +
118777 addr = mmap_region(file, addr, len, vm_flags, pgoff);
118778 if (!IS_ERR_VALUE(addr) &&
118779 ((vm_flags & VM_LOCKED) ||
118780 @@ -1496,7 +1629,7 @@ int vma_wants_writenotify(struct vm_area_struct *vma)
118781 const struct vm_operations_struct *vm_ops = vma->vm_ops;
118782
118783 /* If it was private or non-writable, the write bit is already clear */
118784 - if ((vm_flags & (VM_WRITE|VM_SHARED)) != ((VM_WRITE|VM_SHARED)))
118785 + if ((vm_flags & (VM_WRITE|VM_SHARED)) != (VM_WRITE|VM_SHARED))
118786 return 0;
118787
118788 /* The backer wishes to know when pages are first written to? */
118789 @@ -1547,7 +1680,22 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
118790 struct rb_node **rb_link, *rb_parent;
118791 unsigned long charged = 0;
118792
118793 +#ifdef CONFIG_PAX_SEGMEXEC
118794 + struct vm_area_struct *vma_m = NULL;
118795 +#endif
118796 +
118797 + /*
118798 + * mm->mmap_sem is required to protect against another thread
118799 + * changing the mappings in case we sleep.
118800 + */
118801 + verify_mm_writelocked(mm);
118802 +
118803 /* Check against address space limit. */
118804 +
118805 +#ifdef CONFIG_PAX_RANDMMAP
118806 + if (!(mm->pax_flags & MF_PAX_RANDMMAP) || (vm_flags & (VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)))
118807 +#endif
118808 +
118809 if (!may_expand_vm(mm, len >> PAGE_SHIFT)) {
118810 unsigned long nr_pages;
118811
118812 @@ -1569,6 +1717,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
118813 &rb_parent)) {
118814 if (do_munmap(mm, addr, len))
118815 return -ENOMEM;
118816 + BUG_ON(find_vma_links(mm, addr, addr + len, &prev, &rb_link, &rb_parent));
118817 }
118818
118819 /*
118820 @@ -1600,6 +1749,16 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
118821 goto unacct_error;
118822 }
118823
118824 +#ifdef CONFIG_PAX_SEGMEXEC
118825 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && (vm_flags & VM_EXEC)) {
118826 + vma_m = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
118827 + if (!vma_m) {
118828 + error = -ENOMEM;
118829 + goto free_vma;
118830 + }
118831 + }
118832 +#endif
118833 +
118834 vma->vm_mm = mm;
118835 vma->vm_start = addr;
118836 vma->vm_end = addr + len;
118837 @@ -1630,6 +1789,13 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
118838 if (error)
118839 goto unmap_and_free_vma;
118840
118841 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_X86_32)
118842 + if ((mm->pax_flags & MF_PAX_PAGEEXEC) && !(vma->vm_flags & VM_SPECIAL)) {
118843 + vma->vm_flags |= VM_PAGEEXEC;
118844 + vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
118845 + }
118846 +#endif
118847 +
118848 /* Can addr have changed??
118849 *
118850 * Answer: Yes, several device drivers can do it in their
118851 @@ -1648,6 +1814,12 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
118852 }
118853
118854 vma_link(mm, vma, prev, rb_link, rb_parent);
118855 +
118856 +#ifdef CONFIG_PAX_SEGMEXEC
118857 + if (vma_m)
118858 + BUG_ON(pax_mirror_vma(vma_m, vma));
118859 +#endif
118860 +
118861 /* Once vma denies write, undo our temporary denial count */
118862 if (file) {
118863 if (vm_flags & VM_SHARED)
118864 @@ -1660,6 +1832,7 @@ out:
118865 perf_event_mmap(vma);
118866
118867 vm_stat_account(mm, vm_flags, file, len >> PAGE_SHIFT);
118868 + track_exec_limit(mm, addr, addr + len, vm_flags);
118869 if (vm_flags & VM_LOCKED) {
118870 if (!((vm_flags & VM_SPECIAL) || is_vm_hugetlb_page(vma) ||
118871 vma == get_gate_vma(current->mm)))
118872 @@ -1697,6 +1870,12 @@ allow_write_and_free_vma:
118873 if (vm_flags & VM_DENYWRITE)
118874 allow_write_access(file);
118875 free_vma:
118876 +
118877 +#ifdef CONFIG_PAX_SEGMEXEC
118878 + if (vma_m)
118879 + kmem_cache_free(vm_area_cachep, vma_m);
118880 +#endif
118881 +
118882 kmem_cache_free(vm_area_cachep, vma);
118883 unacct_error:
118884 if (charged)
118885 @@ -1704,7 +1883,63 @@ unacct_error:
118886 return error;
118887 }
118888
118889 -unsigned long unmapped_area(struct vm_unmapped_area_info *info)
118890 +#ifdef CONFIG_GRKERNSEC_RAND_THREADSTACK
118891 +unsigned long gr_rand_threadstack_offset(const struct mm_struct *mm, const struct file *filp, unsigned long flags)
118892 +{
118893 + if ((mm->pax_flags & MF_PAX_RANDMMAP) && !filp && (flags & MAP_STACK))
118894 + return ((prandom_u32() & 0xFF) + 1) << PAGE_SHIFT;
118895 +
118896 + return 0;
118897 +}
118898 +#endif
118899 +
118900 +bool check_heap_stack_gap(const struct vm_area_struct *vma, unsigned long addr, unsigned long len, unsigned long offset)
118901 +{
118902 + if (!vma) {
118903 +#ifdef CONFIG_STACK_GROWSUP
118904 + if (addr > sysctl_heap_stack_gap)
118905 + vma = find_vma(current->mm, addr - sysctl_heap_stack_gap);
118906 + else
118907 + vma = find_vma(current->mm, 0);
118908 + if (vma && (vma->vm_flags & VM_GROWSUP))
118909 + return false;
118910 +#endif
118911 + return true;
118912 + }
118913 +
118914 + if (addr + len > vma->vm_start)
118915 + return false;
118916 +
118917 + if (vma->vm_flags & VM_GROWSDOWN)
118918 + return sysctl_heap_stack_gap <= vma->vm_start - addr - len;
118919 +#ifdef CONFIG_STACK_GROWSUP
118920 + else if (vma->vm_prev && (vma->vm_prev->vm_flags & VM_GROWSUP))
118921 + return addr - vma->vm_prev->vm_end >= sysctl_heap_stack_gap;
118922 +#endif
118923 + else if (offset)
118924 + return offset <= vma->vm_start - addr - len;
118925 +
118926 + return true;
118927 +}
118928 +
118929 +unsigned long skip_heap_stack_gap(const struct vm_area_struct *vma, unsigned long len, unsigned long offset)
118930 +{
118931 + if (vma->vm_start < len)
118932 + return -ENOMEM;
118933 +
118934 + if (!(vma->vm_flags & VM_GROWSDOWN)) {
118935 + if (offset <= vma->vm_start - len)
118936 + return vma->vm_start - len - offset;
118937 + else
118938 + return -ENOMEM;
118939 + }
118940 +
118941 + if (sysctl_heap_stack_gap <= vma->vm_start - len)
118942 + return vma->vm_start - len - sysctl_heap_stack_gap;
118943 + return -ENOMEM;
118944 +}
118945 +
118946 +unsigned long unmapped_area(const struct vm_unmapped_area_info *info)
118947 {
118948 /*
118949 * We implement the search by looking for an rbtree node that
118950 @@ -1752,11 +1987,29 @@ unsigned long unmapped_area(struct vm_unmapped_area_info *info)
118951 }
118952 }
118953
118954 - gap_start = vma->vm_prev ? vma->vm_prev->vm_end : 0;
118955 + gap_start = vma->vm_prev ? vma->vm_prev->vm_end: 0;
118956 check_current:
118957 /* Check if current node has a suitable gap */
118958 if (gap_start > high_limit)
118959 return -ENOMEM;
118960 +
118961 + if (gap_end - gap_start > info->threadstack_offset)
118962 + gap_start += info->threadstack_offset;
118963 + else
118964 + gap_start = gap_end;
118965 +
118966 + if (vma->vm_prev && (vma->vm_prev->vm_flags & VM_GROWSUP)) {
118967 + if (gap_end - gap_start > sysctl_heap_stack_gap)
118968 + gap_start += sysctl_heap_stack_gap;
118969 + else
118970 + gap_start = gap_end;
118971 + }
118972 + if (vma->vm_flags & VM_GROWSDOWN) {
118973 + if (gap_end - gap_start > sysctl_heap_stack_gap)
118974 + gap_end -= sysctl_heap_stack_gap;
118975 + else
118976 + gap_end = gap_start;
118977 + }
118978 if (gap_end >= low_limit && gap_end - gap_start >= length)
118979 goto found;
118980
118981 @@ -1806,7 +2059,7 @@ found:
118982 return gap_start;
118983 }
118984
118985 -unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info)
118986 +unsigned long unmapped_area_topdown(const struct vm_unmapped_area_info *info)
118987 {
118988 struct mm_struct *mm = current->mm;
118989 struct vm_area_struct *vma;
118990 @@ -1860,6 +2113,24 @@ check_current:
118991 gap_end = vma->vm_start;
118992 if (gap_end < low_limit)
118993 return -ENOMEM;
118994 +
118995 + if (gap_end - gap_start > info->threadstack_offset)
118996 + gap_end -= info->threadstack_offset;
118997 + else
118998 + gap_end = gap_start;
118999 +
119000 + if (vma->vm_prev && (vma->vm_prev->vm_flags & VM_GROWSUP)) {
119001 + if (gap_end - gap_start > sysctl_heap_stack_gap)
119002 + gap_start += sysctl_heap_stack_gap;
119003 + else
119004 + gap_start = gap_end;
119005 + }
119006 + if (vma->vm_flags & VM_GROWSDOWN) {
119007 + if (gap_end - gap_start > sysctl_heap_stack_gap)
119008 + gap_end -= sysctl_heap_stack_gap;
119009 + else
119010 + gap_end = gap_start;
119011 + }
119012 if (gap_start <= high_limit && gap_end - gap_start >= length)
119013 goto found;
119014
119015 @@ -1923,6 +2194,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
119016 struct mm_struct *mm = current->mm;
119017 struct vm_area_struct *vma;
119018 struct vm_unmapped_area_info info;
119019 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
119020
119021 if (len > TASK_SIZE - mmap_min_addr)
119022 return -ENOMEM;
119023 @@ -1930,11 +2202,15 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
119024 if (flags & MAP_FIXED)
119025 return addr;
119026
119027 +#ifdef CONFIG_PAX_RANDMMAP
119028 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
119029 +#endif
119030 +
119031 if (addr) {
119032 addr = PAGE_ALIGN(addr);
119033 vma = find_vma(mm, addr);
119034 if (TASK_SIZE - len >= addr && addr >= mmap_min_addr &&
119035 - (!vma || addr + len <= vma->vm_start))
119036 + check_heap_stack_gap(vma, addr, len, offset))
119037 return addr;
119038 }
119039
119040 @@ -1943,6 +2219,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
119041 info.low_limit = mm->mmap_base;
119042 info.high_limit = TASK_SIZE;
119043 info.align_mask = 0;
119044 + info.threadstack_offset = offset;
119045 return vm_unmapped_area(&info);
119046 }
119047 #endif
119048 @@ -1961,6 +2238,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
119049 struct mm_struct *mm = current->mm;
119050 unsigned long addr = addr0;
119051 struct vm_unmapped_area_info info;
119052 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
119053
119054 /* requested length too big for entire address space */
119055 if (len > TASK_SIZE - mmap_min_addr)
119056 @@ -1969,12 +2247,16 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
119057 if (flags & MAP_FIXED)
119058 return addr;
119059
119060 +#ifdef CONFIG_PAX_RANDMMAP
119061 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
119062 +#endif
119063 +
119064 /* requesting a specific address */
119065 if (addr) {
119066 addr = PAGE_ALIGN(addr);
119067 vma = find_vma(mm, addr);
119068 if (TASK_SIZE - len >= addr && addr >= mmap_min_addr &&
119069 - (!vma || addr + len <= vma->vm_start))
119070 + check_heap_stack_gap(vma, addr, len, offset))
119071 return addr;
119072 }
119073
119074 @@ -1983,6 +2265,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
119075 info.low_limit = max(PAGE_SIZE, mmap_min_addr);
119076 info.high_limit = mm->mmap_base;
119077 info.align_mask = 0;
119078 + info.threadstack_offset = offset;
119079 addr = vm_unmapped_area(&info);
119080
119081 /*
119082 @@ -1995,6 +2278,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
119083 VM_BUG_ON(addr != -ENOMEM);
119084 info.flags = 0;
119085 info.low_limit = TASK_UNMAPPED_BASE;
119086 +
119087 +#ifdef CONFIG_PAX_RANDMMAP
119088 + if (mm->pax_flags & MF_PAX_RANDMMAP)
119089 + info.low_limit += mm->delta_mmap;
119090 +#endif
119091 +
119092 info.high_limit = TASK_SIZE;
119093 addr = vm_unmapped_area(&info);
119094 }
119095 @@ -2094,6 +2383,28 @@ find_vma_prev(struct mm_struct *mm, unsigned long addr,
119096 return vma;
119097 }
119098
119099 +#ifdef CONFIG_PAX_SEGMEXEC
119100 +struct vm_area_struct *pax_find_mirror_vma(struct vm_area_struct *vma)
119101 +{
119102 + struct vm_area_struct *vma_m;
119103 +
119104 + BUG_ON(!vma || vma->vm_start >= vma->vm_end);
119105 + if (!(vma->vm_mm->pax_flags & MF_PAX_SEGMEXEC) || !(vma->vm_flags & VM_EXEC)) {
119106 + BUG_ON(vma->vm_mirror);
119107 + return NULL;
119108 + }
119109 + BUG_ON(vma->vm_start < SEGMEXEC_TASK_SIZE && SEGMEXEC_TASK_SIZE < vma->vm_end);
119110 + vma_m = vma->vm_mirror;
119111 + BUG_ON(!vma_m || vma_m->vm_mirror != vma);
119112 + BUG_ON(vma->vm_file != vma_m->vm_file);
119113 + BUG_ON(vma->vm_end - vma->vm_start != vma_m->vm_end - vma_m->vm_start);
119114 + BUG_ON(vma->vm_pgoff != vma_m->vm_pgoff);
119115 + BUG_ON(vma->anon_vma != vma_m->anon_vma && vma->anon_vma->root != vma_m->anon_vma->root);
119116 + BUG_ON((vma->vm_flags ^ vma_m->vm_flags) & ~(VM_WRITE | VM_MAYWRITE | VM_ACCOUNT | VM_LOCKED));
119117 + return vma_m;
119118 +}
119119 +#endif
119120 +
119121 /*
119122 * Verify that the stack growth is acceptable and
119123 * update accounting. This is shared with both the
119124 @@ -2111,8 +2422,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
119125
119126 /* Stack limit test */
119127 actual_size = size;
119128 - if (size && (vma->vm_flags & (VM_GROWSUP | VM_GROWSDOWN)))
119129 - actual_size -= PAGE_SIZE;
119130 + gr_learn_resource(current, RLIMIT_STACK, actual_size, 1);
119131 if (actual_size > READ_ONCE(rlim[RLIMIT_STACK].rlim_cur))
119132 return -ENOMEM;
119133
119134 @@ -2123,6 +2433,10 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
119135 locked = mm->locked_vm + grow;
119136 limit = READ_ONCE(rlim[RLIMIT_MEMLOCK].rlim_cur);
119137 limit >>= PAGE_SHIFT;
119138 + if (locked > (ULONG_MAX >> PAGE_SHIFT))
119139 + gr_learn_resource(current, RLIMIT_MEMLOCK, ULONG_MAX, 1);
119140 + else
119141 + gr_learn_resource(current, RLIMIT_MEMLOCK, locked << PAGE_SHIFT, 1);
119142 if (locked > limit && !capable(CAP_IPC_LOCK))
119143 return -ENOMEM;
119144 }
119145 @@ -2148,17 +2462,21 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
119146 * PA-RISC uses this for its stack; IA64 for its Register Backing Store.
119147 * vma is the last one with address > vma->vm_end. Have to extend vma.
119148 */
119149 +#ifndef CONFIG_IA64
119150 +static
119151 +#endif
119152 int expand_upwards(struct vm_area_struct *vma, unsigned long address)
119153 {
119154 struct mm_struct *mm = vma->vm_mm;
119155 int error = 0;
119156 + bool locknext;
119157
119158 if (!(vma->vm_flags & VM_GROWSUP))
119159 return -EFAULT;
119160
119161 /* Guard against wrapping around to address 0. */
119162 - if (address < PAGE_ALIGN(address+4))
119163 - address = PAGE_ALIGN(address+4);
119164 + if (address < PAGE_ALIGN(address+1))
119165 + address = PAGE_ALIGN(address+1);
119166 else
119167 return -ENOMEM;
119168
119169 @@ -2166,15 +2484,24 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address)
119170 if (unlikely(anon_vma_prepare(vma)))
119171 return -ENOMEM;
119172
119173 + locknext = vma->vm_next && (vma->vm_next->vm_flags & VM_GROWSDOWN);
119174 + if (locknext && anon_vma_prepare(vma->vm_next))
119175 + return -ENOMEM;
119176 +
119177 /*
119178 * vma->vm_start/vm_end cannot change under us because the caller
119179 * is required to hold the mmap_sem in read mode. We need the
119180 - * anon_vma lock to serialize against concurrent expand_stacks.
119181 + * anon_vma locks to serialize against concurrent expand_stacks
119182 + * and expand_upwards.
119183 */
119184 anon_vma_lock_write(vma->anon_vma);
119185 + if (locknext)
119186 + anon_vma_lock_write(vma->vma_next->anon_vma);
119187
119188 /* Somebody else might have raced and expanded it already */
119189 - if (address > vma->vm_end) {
119190 + 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)
119191 + error = -ENOMEM;
119192 + else if (address > vma->vm_end && (!locknext || vma->vm_next->vm_start >= address)) {
119193 unsigned long size, grow;
119194
119195 size = address - vma->vm_start;
119196 @@ -2213,6 +2540,8 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address)
119197 }
119198 }
119199 }
119200 + if (locknext)
119201 + anon_vma_unlock_write(vma->vm_next->anon_vma);
119202 anon_vma_unlock_write(vma->anon_vma);
119203 khugepaged_enter_vma_merge(vma, vma->vm_flags);
119204 validate_mm(mm);
119205 @@ -2228,6 +2557,8 @@ int expand_downwards(struct vm_area_struct *vma,
119206 {
119207 struct mm_struct *mm = vma->vm_mm;
119208 int error;
119209 + bool lockprev = false;
119210 + struct vm_area_struct *prev;
119211
119212 address &= PAGE_MASK;
119213 error = security_mmap_addr(address);
119214 @@ -2238,6 +2569,15 @@ int expand_downwards(struct vm_area_struct *vma,
119215 if (unlikely(anon_vma_prepare(vma)))
119216 return -ENOMEM;
119217
119218 + prev = vma->vm_prev;
119219 +#if defined(CONFIG_STACK_GROWSUP) || defined(CONFIG_IA64)
119220 + lockprev = prev && (prev->vm_flags & VM_GROWSUP);
119221 +#endif
119222 + if (lockprev && anon_vma_prepare(prev))
119223 + return -ENOMEM;
119224 + if (lockprev)
119225 + anon_vma_lock_write(prev->anon_vma);
119226 +
119227 /*
119228 * vma->vm_start/vm_end cannot change under us because the caller
119229 * is required to hold the mmap_sem in read mode. We need the
119230 @@ -2246,9 +2586,17 @@ int expand_downwards(struct vm_area_struct *vma,
119231 anon_vma_lock_write(vma->anon_vma);
119232
119233 /* Somebody else might have raced and expanded it already */
119234 - if (address < vma->vm_start) {
119235 + if (prev && (prev->vm_flags & (VM_READ | VM_WRITE | VM_EXEC)) && address - prev->vm_end < sysctl_heap_stack_gap)
119236 + error = -ENOMEM;
119237 + else if (address < vma->vm_start && (!lockprev || prev->vm_end <= address)) {
119238 unsigned long size, grow;
119239
119240 +#ifdef CONFIG_PAX_SEGMEXEC
119241 + struct vm_area_struct *vma_m;
119242 +
119243 + vma_m = pax_find_mirror_vma(vma);
119244 +#endif
119245 +
119246 size = vma->vm_end - address;
119247 grow = (vma->vm_start - address) >> PAGE_SHIFT;
119248
119249 @@ -2277,13 +2625,27 @@ int expand_downwards(struct vm_area_struct *vma,
119250 vma->vm_pgoff -= grow;
119251 anon_vma_interval_tree_post_update_vma(vma);
119252 vma_gap_update(vma);
119253 +
119254 +#ifdef CONFIG_PAX_SEGMEXEC
119255 + if (vma_m) {
119256 + anon_vma_interval_tree_pre_update_vma(vma_m);
119257 + vma_m->vm_start -= grow << PAGE_SHIFT;
119258 + vma_m->vm_pgoff -= grow;
119259 + anon_vma_interval_tree_post_update_vma(vma_m);
119260 + vma_gap_update(vma_m);
119261 + }
119262 +#endif
119263 +
119264 spin_unlock(&mm->page_table_lock);
119265
119266 + track_exec_limit(vma->vm_mm, vma->vm_start, vma->vm_end, vma->vm_flags);
119267 perf_event_mmap(vma);
119268 }
119269 }
119270 }
119271 anon_vma_unlock_write(vma->anon_vma);
119272 + if (lockprev)
119273 + anon_vma_unlock_write(prev->anon_vma);
119274 khugepaged_enter_vma_merge(vma, vma->vm_flags);
119275 validate_mm(mm);
119276 return error;
119277 @@ -2383,6 +2745,13 @@ static void remove_vma_list(struct mm_struct *mm, struct vm_area_struct *vma)
119278 do {
119279 long nrpages = vma_pages(vma);
119280
119281 +#ifdef CONFIG_PAX_SEGMEXEC
119282 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && (vma->vm_start >= SEGMEXEC_TASK_SIZE)) {
119283 + vma = remove_vma(vma);
119284 + continue;
119285 + }
119286 +#endif
119287 +
119288 if (vma->vm_flags & VM_ACCOUNT)
119289 nr_accounted += nrpages;
119290 vm_stat_account(mm, vma->vm_flags, vma->vm_file, -nrpages);
119291 @@ -2427,6 +2796,16 @@ detach_vmas_to_be_unmapped(struct mm_struct *mm, struct vm_area_struct *vma,
119292 insertion_point = (prev ? &prev->vm_next : &mm->mmap);
119293 vma->vm_prev = NULL;
119294 do {
119295 +
119296 +#ifdef CONFIG_PAX_SEGMEXEC
119297 + if (vma->vm_mirror) {
119298 + BUG_ON(!vma->vm_mirror->vm_mirror || vma->vm_mirror->vm_mirror != vma);
119299 + vma->vm_mirror->vm_mirror = NULL;
119300 + vma->vm_mirror->vm_flags &= ~VM_EXEC;
119301 + vma->vm_mirror = NULL;
119302 + }
119303 +#endif
119304 +
119305 vma_rb_erase(vma, &mm->mm_rb);
119306 mm->map_count--;
119307 tail_vma = vma;
119308 @@ -2454,14 +2833,33 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
119309 struct vm_area_struct *new;
119310 int err;
119311
119312 +#ifdef CONFIG_PAX_SEGMEXEC
119313 + struct vm_area_struct *vma_m, *new_m = NULL;
119314 + unsigned long addr_m = addr + SEGMEXEC_TASK_SIZE;
119315 +#endif
119316 +
119317 if (is_vm_hugetlb_page(vma) && (addr &
119318 ~(huge_page_mask(hstate_vma(vma)))))
119319 return -EINVAL;
119320
119321 +#ifdef CONFIG_PAX_SEGMEXEC
119322 + vma_m = pax_find_mirror_vma(vma);
119323 +#endif
119324 +
119325 new = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL);
119326 if (!new)
119327 return -ENOMEM;
119328
119329 +#ifdef CONFIG_PAX_SEGMEXEC
119330 + if (vma_m) {
119331 + new_m = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL);
119332 + if (!new_m) {
119333 + kmem_cache_free(vm_area_cachep, new);
119334 + return -ENOMEM;
119335 + }
119336 + }
119337 +#endif
119338 +
119339 /* most fields are the same, copy all, and then fixup */
119340 *new = *vma;
119341
119342 @@ -2474,6 +2872,22 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
119343 new->vm_pgoff += ((addr - vma->vm_start) >> PAGE_SHIFT);
119344 }
119345
119346 +#ifdef CONFIG_PAX_SEGMEXEC
119347 + if (vma_m) {
119348 + *new_m = *vma_m;
119349 + INIT_LIST_HEAD(&new_m->anon_vma_chain);
119350 + new_m->vm_mirror = new;
119351 + new->vm_mirror = new_m;
119352 +
119353 + if (new_below)
119354 + new_m->vm_end = addr_m;
119355 + else {
119356 + new_m->vm_start = addr_m;
119357 + new_m->vm_pgoff += ((addr_m - vma_m->vm_start) >> PAGE_SHIFT);
119358 + }
119359 + }
119360 +#endif
119361 +
119362 err = vma_dup_policy(vma, new);
119363 if (err)
119364 goto out_free_vma;
119365 @@ -2494,6 +2908,38 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
119366 else
119367 err = vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new);
119368
119369 +#ifdef CONFIG_PAX_SEGMEXEC
119370 + if (!err && vma_m) {
119371 + struct mempolicy *pol = vma_policy(new);
119372 +
119373 + if (anon_vma_clone(new_m, vma_m))
119374 + goto out_free_mpol;
119375 +
119376 + mpol_get(pol);
119377 + set_vma_policy(new_m, pol);
119378 +
119379 + if (new_m->vm_file)
119380 + get_file(new_m->vm_file);
119381 +
119382 + if (new_m->vm_ops && new_m->vm_ops->open)
119383 + new_m->vm_ops->open(new_m);
119384 +
119385 + if (new_below)
119386 + err = vma_adjust(vma_m, addr_m, vma_m->vm_end, vma_m->vm_pgoff +
119387 + ((addr_m - new_m->vm_start) >> PAGE_SHIFT), new_m);
119388 + else
119389 + err = vma_adjust(vma_m, vma_m->vm_start, addr_m, vma_m->vm_pgoff, new_m);
119390 +
119391 + if (err) {
119392 + if (new_m->vm_ops && new_m->vm_ops->close)
119393 + new_m->vm_ops->close(new_m);
119394 + if (new_m->vm_file)
119395 + fput(new_m->vm_file);
119396 + mpol_put(pol);
119397 + }
119398 + }
119399 +#endif
119400 +
119401 /* Success. */
119402 if (!err)
119403 return 0;
119404 @@ -2503,10 +2949,18 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
119405 new->vm_ops->close(new);
119406 if (new->vm_file)
119407 fput(new->vm_file);
119408 - unlink_anon_vmas(new);
119409 out_free_mpol:
119410 mpol_put(vma_policy(new));
119411 out_free_vma:
119412 +
119413 +#ifdef CONFIG_PAX_SEGMEXEC
119414 + if (new_m) {
119415 + unlink_anon_vmas(new_m);
119416 + kmem_cache_free(vm_area_cachep, new_m);
119417 + }
119418 +#endif
119419 +
119420 + unlink_anon_vmas(new);
119421 kmem_cache_free(vm_area_cachep, new);
119422 return err;
119423 }
119424 @@ -2518,6 +2972,15 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
119425 int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
119426 unsigned long addr, int new_below)
119427 {
119428 +
119429 +#ifdef CONFIG_PAX_SEGMEXEC
119430 + if (mm->pax_flags & MF_PAX_SEGMEXEC) {
119431 + BUG_ON(vma->vm_end > SEGMEXEC_TASK_SIZE);
119432 + if (mm->map_count >= sysctl_max_map_count-1)
119433 + return -ENOMEM;
119434 + } else
119435 +#endif
119436 +
119437 if (mm->map_count >= sysctl_max_map_count)
119438 return -ENOMEM;
119439
119440 @@ -2529,11 +2992,30 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
119441 * work. This now handles partial unmappings.
119442 * Jeremy Fitzhardinge <jeremy@goop.org>
119443 */
119444 +#ifdef CONFIG_PAX_SEGMEXEC
119445 int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
119446 {
119447 + int ret = __do_munmap(mm, start, len);
119448 + if (ret || !(mm->pax_flags & MF_PAX_SEGMEXEC))
119449 + return ret;
119450 +
119451 + return __do_munmap(mm, start + SEGMEXEC_TASK_SIZE, len);
119452 +}
119453 +
119454 +int __do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
119455 +#else
119456 +int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
119457 +#endif
119458 +{
119459 unsigned long end;
119460 struct vm_area_struct *vma, *prev, *last;
119461
119462 + /*
119463 + * mm->mmap_sem is required to protect against another thread
119464 + * changing the mappings in case we sleep.
119465 + */
119466 + verify_mm_writelocked(mm);
119467 +
119468 if ((offset_in_page(start)) || start > TASK_SIZE || len > TASK_SIZE-start)
119469 return -EINVAL;
119470
119471 @@ -2611,6 +3093,8 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
119472 /* Fix up all other VM information */
119473 remove_vma_list(mm, vma);
119474
119475 + track_exec_limit(mm, start, end, 0UL);
119476 +
119477 return 0;
119478 }
119479
119480 @@ -2619,6 +3103,13 @@ int vm_munmap(unsigned long start, size_t len)
119481 int ret;
119482 struct mm_struct *mm = current->mm;
119483
119484 +
119485 +#ifdef CONFIG_PAX_SEGMEXEC
119486 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) &&
119487 + (len > SEGMEXEC_TASK_SIZE || start > SEGMEXEC_TASK_SIZE-len))
119488 + return -EINVAL;
119489 +#endif
119490 +
119491 down_write(&mm->mmap_sem);
119492 ret = do_munmap(mm, start, len);
119493 up_write(&mm->mmap_sem);
119494 @@ -2665,6 +3156,11 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
119495 down_write(&mm->mmap_sem);
119496 vma = find_vma(mm, start);
119497
119498 +#ifdef CONFIG_PAX_SEGMEXEC
119499 + if (vma && (mm->pax_flags & MF_PAX_SEGMEXEC) && (vma->vm_flags & VM_MAYEXEC))
119500 + goto out;
119501 +#endif
119502 +
119503 if (!vma || !(vma->vm_flags & VM_SHARED))
119504 goto out;
119505
119506 @@ -2725,16 +3221,6 @@ out:
119507 return ret;
119508 }
119509
119510 -static inline void verify_mm_writelocked(struct mm_struct *mm)
119511 -{
119512 -#ifdef CONFIG_DEBUG_VM
119513 - if (unlikely(down_read_trylock(&mm->mmap_sem))) {
119514 - WARN_ON(1);
119515 - up_read(&mm->mmap_sem);
119516 - }
119517 -#endif
119518 -}
119519 -
119520 /*
119521 * this is really a simplified "do_mmap". it only handles
119522 * anonymous maps. eventually we may be able to do some
119523 @@ -2748,6 +3234,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
119524 struct rb_node **rb_link, *rb_parent;
119525 pgoff_t pgoff = addr >> PAGE_SHIFT;
119526 int error;
119527 + unsigned long charged;
119528
119529 len = PAGE_ALIGN(len);
119530 if (!len)
119531 @@ -2755,10 +3242,24 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
119532
119533 flags = VM_DATA_DEFAULT_FLAGS | VM_ACCOUNT | mm->def_flags;
119534
119535 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
119536 + if (mm->pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
119537 + flags &= ~VM_EXEC;
119538 +
119539 +#ifdef CONFIG_PAX_MPROTECT
119540 + if (mm->pax_flags & MF_PAX_MPROTECT)
119541 + flags &= ~VM_MAYEXEC;
119542 +#endif
119543 +
119544 + }
119545 +#endif
119546 +
119547 error = get_unmapped_area(NULL, addr, len, 0, MAP_FIXED);
119548 if (offset_in_page(error))
119549 return error;
119550
119551 + charged = len >> PAGE_SHIFT;
119552 +
119553 error = mlock_future_check(mm, mm->def_flags, len);
119554 if (error)
119555 return error;
119556 @@ -2776,16 +3277,17 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
119557 &rb_parent)) {
119558 if (do_munmap(mm, addr, len))
119559 return -ENOMEM;
119560 + BUG_ON(find_vma_links(mm, addr, addr + len, &prev, &rb_link, &rb_parent));
119561 }
119562
119563 /* Check against address space limits *after* clearing old maps... */
119564 - if (!may_expand_vm(mm, len >> PAGE_SHIFT))
119565 + if (!may_expand_vm(mm, charged))
119566 return -ENOMEM;
119567
119568 if (mm->map_count > sysctl_max_map_count)
119569 return -ENOMEM;
119570
119571 - if (security_vm_enough_memory_mm(mm, len >> PAGE_SHIFT))
119572 + if (security_vm_enough_memory_mm(mm, charged))
119573 return -ENOMEM;
119574
119575 /* Can we just expand an old private anonymous mapping? */
119576 @@ -2799,7 +3301,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
119577 */
119578 vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
119579 if (!vma) {
119580 - vm_unacct_memory(len >> PAGE_SHIFT);
119581 + vm_unacct_memory(charged);
119582 return -ENOMEM;
119583 }
119584
119585 @@ -2813,10 +3315,11 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
119586 vma_link(mm, vma, prev, rb_link, rb_parent);
119587 out:
119588 perf_event_mmap(vma);
119589 - mm->total_vm += len >> PAGE_SHIFT;
119590 + mm->total_vm += charged;
119591 if (flags & VM_LOCKED)
119592 - mm->locked_vm += (len >> PAGE_SHIFT);
119593 + mm->locked_vm += charged;
119594 vma->vm_flags |= VM_SOFTDIRTY;
119595 + track_exec_limit(mm, addr, addr + len, flags);
119596 return addr;
119597 }
119598
119599 @@ -2878,6 +3381,7 @@ void exit_mmap(struct mm_struct *mm)
119600 while (vma) {
119601 if (vma->vm_flags & VM_ACCOUNT)
119602 nr_accounted += vma_pages(vma);
119603 + vma->vm_mirror = NULL;
119604 vma = remove_vma(vma);
119605 }
119606 vm_unacct_memory(nr_accounted);
119607 @@ -2892,6 +3396,10 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
119608 struct vm_area_struct *prev;
119609 struct rb_node **rb_link, *rb_parent;
119610
119611 +#ifdef CONFIG_PAX_SEGMEXEC
119612 + struct vm_area_struct *vma_m = NULL;
119613 +#endif
119614 +
119615 if (find_vma_links(mm, vma->vm_start, vma->vm_end,
119616 &prev, &rb_link, &rb_parent))
119617 return -ENOMEM;
119618 @@ -2899,6 +3407,9 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
119619 security_vm_enough_memory_mm(mm, vma_pages(vma)))
119620 return -ENOMEM;
119621
119622 + if (security_mmap_addr(vma->vm_start))
119623 + return -EPERM;
119624 +
119625 /*
119626 * The vm_pgoff of a purely anonymous vma should be irrelevant
119627 * until its first write fault, when page's anon_vma and index
119628 @@ -2916,7 +3427,21 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
119629 vma->vm_pgoff = vma->vm_start >> PAGE_SHIFT;
119630 }
119631
119632 +#ifdef CONFIG_PAX_SEGMEXEC
119633 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && (vma->vm_flags & VM_EXEC)) {
119634 + vma_m = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
119635 + if (!vma_m)
119636 + return -ENOMEM;
119637 + }
119638 +#endif
119639 +
119640 vma_link(mm, vma, prev, rb_link, rb_parent);
119641 +
119642 +#ifdef CONFIG_PAX_SEGMEXEC
119643 + if (vma_m)
119644 + BUG_ON(pax_mirror_vma(vma_m, vma));
119645 +#endif
119646 +
119647 return 0;
119648 }
119649
119650 @@ -2935,6 +3460,8 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
119651 struct rb_node **rb_link, *rb_parent;
119652 bool faulted_in_anon_vma = true;
119653
119654 + BUG_ON(vma->vm_mirror);
119655 +
119656 /*
119657 * If anonymous vma has not yet been faulted, update new pgoff
119658 * to match new location, to increase its chance of merging.
119659 @@ -3001,6 +3528,39 @@ out:
119660 return NULL;
119661 }
119662
119663 +#ifdef CONFIG_PAX_SEGMEXEC
119664 +long pax_mirror_vma(struct vm_area_struct *vma_m, struct vm_area_struct *vma)
119665 +{
119666 + struct vm_area_struct *prev_m;
119667 + struct rb_node **rb_link_m, *rb_parent_m;
119668 + struct mempolicy *pol_m;
119669 +
119670 + BUG_ON(!(vma->vm_mm->pax_flags & MF_PAX_SEGMEXEC) || !(vma->vm_flags & VM_EXEC));
119671 + BUG_ON(vma->vm_mirror || vma_m->vm_mirror);
119672 + BUG_ON(!mpol_equal(vma_policy(vma), vma_policy(vma_m)));
119673 + *vma_m = *vma;
119674 + INIT_LIST_HEAD(&vma_m->anon_vma_chain);
119675 + if (anon_vma_clone(vma_m, vma))
119676 + return -ENOMEM;
119677 + pol_m = vma_policy(vma_m);
119678 + mpol_get(pol_m);
119679 + set_vma_policy(vma_m, pol_m);
119680 + vma_m->vm_start += SEGMEXEC_TASK_SIZE;
119681 + vma_m->vm_end += SEGMEXEC_TASK_SIZE;
119682 + vma_m->vm_flags &= ~(VM_WRITE | VM_MAYWRITE | VM_ACCOUNT | VM_LOCKED);
119683 + vma_m->vm_page_prot = vm_get_page_prot(vma_m->vm_flags);
119684 + if (vma_m->vm_file)
119685 + get_file(vma_m->vm_file);
119686 + if (vma_m->vm_ops && vma_m->vm_ops->open)
119687 + vma_m->vm_ops->open(vma_m);
119688 + BUG_ON(find_vma_links(vma->vm_mm, vma_m->vm_start, vma_m->vm_end, &prev_m, &rb_link_m, &rb_parent_m));
119689 + vma_link(vma->vm_mm, vma_m, prev_m, rb_link_m, rb_parent_m);
119690 + vma_m->vm_mirror = vma;
119691 + vma->vm_mirror = vma_m;
119692 + return 0;
119693 +}
119694 +#endif
119695 +
119696 /*
119697 * Return true if the calling process may expand its vm space by the passed
119698 * number of pages
119699 @@ -3012,6 +3572,11 @@ int may_expand_vm(struct mm_struct *mm, unsigned long npages)
119700
119701 lim = rlimit(RLIMIT_AS) >> PAGE_SHIFT;
119702
119703 + if ((cur + npages) > (ULONG_MAX >> PAGE_SHIFT))
119704 + gr_learn_resource(current, RLIMIT_AS, ULONG_MAX, 1);
119705 + else
119706 + gr_learn_resource(current, RLIMIT_AS, (cur + npages) << PAGE_SHIFT, 1);
119707 +
119708 if (cur + npages > lim)
119709 return 0;
119710 return 1;
119711 @@ -3086,6 +3651,22 @@ static struct vm_area_struct *__install_special_mapping(
119712 vma->vm_start = addr;
119713 vma->vm_end = addr + len;
119714
119715 +#ifdef CONFIG_PAX_MPROTECT
119716 + if (mm->pax_flags & MF_PAX_MPROTECT) {
119717 +#ifndef CONFIG_PAX_MPROTECT_COMPAT
119718 + if ((vm_flags & (VM_WRITE | VM_EXEC)) == (VM_WRITE | VM_EXEC))
119719 + return ERR_PTR(-EPERM);
119720 + if (!(vm_flags & VM_EXEC))
119721 + vm_flags &= ~VM_MAYEXEC;
119722 +#else
119723 + if ((vm_flags & (VM_WRITE | VM_EXEC)) != VM_EXEC)
119724 + vm_flags &= ~(VM_EXEC | VM_MAYEXEC);
119725 +#endif
119726 + else
119727 + vm_flags &= ~VM_MAYWRITE;
119728 + }
119729 +#endif
119730 +
119731 vma->vm_flags = vm_flags | mm->def_flags | VM_DONTEXPAND | VM_SOFTDIRTY;
119732 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
119733
119734 diff --git a/mm/mprotect.c b/mm/mprotect.c
119735 index ef5be8e..811ccb0 100644
119736 --- a/mm/mprotect.c
119737 +++ b/mm/mprotect.c
119738 @@ -24,10 +24,18 @@
119739 #include <linux/migrate.h>
119740 #include <linux/perf_event.h>
119741 #include <linux/ksm.h>
119742 +#include <linux/sched/sysctl.h>
119743 +
119744 +#ifdef CONFIG_PAX_MPROTECT
119745 +#include <linux/elf.h>
119746 +#include <linux/binfmts.h>
119747 +#endif
119748 +
119749 #include <asm/uaccess.h>
119750 #include <asm/pgtable.h>
119751 #include <asm/cacheflush.h>
119752 #include <asm/tlbflush.h>
119753 +#include <asm/mmu_context.h>
119754
119755 #include "internal.h"
119756
119757 @@ -254,6 +262,48 @@ unsigned long change_protection(struct vm_area_struct *vma, unsigned long start,
119758 return pages;
119759 }
119760
119761 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
119762 +/* called while holding the mmap semaphor for writing except stack expansion */
119763 +void track_exec_limit(struct mm_struct *mm, unsigned long start, unsigned long end, unsigned long prot)
119764 +{
119765 + unsigned long oldlimit, newlimit = 0UL;
119766 +
119767 + if (!(mm->pax_flags & MF_PAX_PAGEEXEC) || (__supported_pte_mask & _PAGE_NX))
119768 + return;
119769 +
119770 + spin_lock(&mm->page_table_lock);
119771 + oldlimit = mm->context.user_cs_limit;
119772 + if ((prot & VM_EXEC) && oldlimit < end)
119773 + /* USER_CS limit moved up */
119774 + newlimit = end;
119775 + else if (!(prot & VM_EXEC) && start < oldlimit && oldlimit <= end)
119776 + /* USER_CS limit moved down */
119777 + newlimit = start;
119778 +
119779 + if (newlimit) {
119780 + mm->context.user_cs_limit = newlimit;
119781 +
119782 +#ifdef CONFIG_SMP
119783 + wmb();
119784 + cpumask_clear(&mm->context.cpu_user_cs_mask);
119785 + cpumask_set_cpu(smp_processor_id(), &mm->context.cpu_user_cs_mask);
119786 +#endif
119787 +
119788 + set_user_cs(mm->context.user_cs_base, mm->context.user_cs_limit, smp_processor_id());
119789 + }
119790 + spin_unlock(&mm->page_table_lock);
119791 + if (newlimit == end) {
119792 + struct vm_area_struct *vma = find_vma(mm, oldlimit);
119793 +
119794 + for (; vma && vma->vm_start < end; vma = vma->vm_next)
119795 + if (is_vm_hugetlb_page(vma))
119796 + hugetlb_change_protection(vma, vma->vm_start, vma->vm_end, vma->vm_page_prot);
119797 + else
119798 + change_protection(vma, vma->vm_start, vma->vm_end, vma->vm_page_prot, vma_wants_writenotify(vma), 0);
119799 + }
119800 +}
119801 +#endif
119802 +
119803 int
119804 mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
119805 unsigned long start, unsigned long end, unsigned long newflags)
119806 @@ -266,11 +316,29 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
119807 int error;
119808 int dirty_accountable = 0;
119809
119810 +#ifdef CONFIG_PAX_SEGMEXEC
119811 + struct vm_area_struct *vma_m = NULL;
119812 + unsigned long start_m, end_m;
119813 +
119814 + start_m = start + SEGMEXEC_TASK_SIZE;
119815 + end_m = end + SEGMEXEC_TASK_SIZE;
119816 +#endif
119817 +
119818 if (newflags == oldflags) {
119819 *pprev = vma;
119820 return 0;
119821 }
119822
119823 + if (newflags & (VM_READ | VM_WRITE | VM_EXEC)) {
119824 + struct vm_area_struct *prev = vma->vm_prev, *next = vma->vm_next;
119825 +
119826 + if (next && (next->vm_flags & VM_GROWSDOWN) && sysctl_heap_stack_gap > next->vm_start - end)
119827 + return -ENOMEM;
119828 +
119829 + if (prev && (prev->vm_flags & VM_GROWSUP) && sysctl_heap_stack_gap > start - prev->vm_end)
119830 + return -ENOMEM;
119831 + }
119832 +
119833 /*
119834 * If we make a private mapping writable we increase our commit;
119835 * but (without finer accounting) cannot reduce our commit if we
119836 @@ -287,6 +355,42 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
119837 }
119838 }
119839
119840 +#ifdef CONFIG_PAX_SEGMEXEC
119841 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && ((oldflags ^ newflags) & VM_EXEC)) {
119842 + if (start != vma->vm_start) {
119843 + error = split_vma(mm, vma, start, 1);
119844 + if (error)
119845 + goto fail;
119846 + BUG_ON(!*pprev || (*pprev)->vm_next == vma);
119847 + *pprev = (*pprev)->vm_next;
119848 + }
119849 +
119850 + if (end != vma->vm_end) {
119851 + error = split_vma(mm, vma, end, 0);
119852 + if (error)
119853 + goto fail;
119854 + }
119855 +
119856 + if (pax_find_mirror_vma(vma)) {
119857 + error = __do_munmap(mm, start_m, end_m - start_m);
119858 + if (error)
119859 + goto fail;
119860 + } else {
119861 + vma_m = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
119862 + if (!vma_m) {
119863 + error = -ENOMEM;
119864 + goto fail;
119865 + }
119866 + vma->vm_flags = newflags;
119867 + error = pax_mirror_vma(vma_m, vma);
119868 + if (error) {
119869 + vma->vm_flags = oldflags;
119870 + goto fail;
119871 + }
119872 + }
119873 + }
119874 +#endif
119875 +
119876 /*
119877 * First try to merge with previous and/or next vma.
119878 */
119879 @@ -318,7 +422,19 @@ success:
119880 * vm_flags and vm_page_prot are protected by the mmap_sem
119881 * held in write mode.
119882 */
119883 +
119884 +#ifdef CONFIG_PAX_SEGMEXEC
119885 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && (newflags & VM_EXEC) && ((vma->vm_flags ^ newflags) & VM_READ))
119886 + pax_find_mirror_vma(vma)->vm_flags ^= VM_READ;
119887 +#endif
119888 +
119889 vma->vm_flags = newflags;
119890 +
119891 +#ifdef CONFIG_PAX_MPROTECT
119892 + if (mm->binfmt && mm->binfmt->handle_mprotect)
119893 + mm->binfmt->handle_mprotect(vma, newflags);
119894 +#endif
119895 +
119896 dirty_accountable = vma_wants_writenotify(vma);
119897 vma_set_page_prot(vma);
119898
119899 @@ -363,6 +479,17 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
119900 end = start + len;
119901 if (end <= start)
119902 return -ENOMEM;
119903 +
119904 +#ifdef CONFIG_PAX_SEGMEXEC
119905 + if (current->mm->pax_flags & MF_PAX_SEGMEXEC) {
119906 + if (end > SEGMEXEC_TASK_SIZE)
119907 + return -EINVAL;
119908 + } else
119909 +#endif
119910 +
119911 + if (end > TASK_SIZE)
119912 + return -EINVAL;
119913 +
119914 if (!arch_validate_prot(prot))
119915 return -EINVAL;
119916
119917 @@ -370,7 +497,7 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
119918 /*
119919 * Does the application expect PROT_READ to imply PROT_EXEC:
119920 */
119921 - if ((prot & PROT_READ) && (current->personality & READ_IMPLIES_EXEC))
119922 + if ((prot & (PROT_READ | PROT_WRITE)) && (current->personality & READ_IMPLIES_EXEC))
119923 prot |= PROT_EXEC;
119924
119925 vm_flags = calc_vm_prot_bits(prot);
119926 @@ -402,6 +529,11 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
119927 if (start > vma->vm_start)
119928 prev = vma;
119929
119930 +#ifdef CONFIG_PAX_MPROTECT
119931 + if (current->mm->binfmt && current->mm->binfmt->handle_mprotect)
119932 + current->mm->binfmt->handle_mprotect(vma, vm_flags);
119933 +#endif
119934 +
119935 for (nstart = start ; ; ) {
119936 unsigned long newflags;
119937
119938 @@ -412,6 +544,14 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
119939
119940 /* newflags >> 4 shift VM_MAY% in place of VM_% */
119941 if ((newflags & ~(newflags >> 4)) & (VM_READ | VM_WRITE | VM_EXEC)) {
119942 + if (prot & (PROT_WRITE | PROT_EXEC))
119943 + gr_log_rwxmprotect(vma);
119944 +
119945 + error = -EACCES;
119946 + goto out;
119947 + }
119948 +
119949 + if (!gr_acl_handle_mprotect(vma->vm_file, prot)) {
119950 error = -EACCES;
119951 goto out;
119952 }
119953 @@ -426,6 +566,9 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
119954 error = mprotect_fixup(vma, &prev, nstart, tmp, newflags);
119955 if (error)
119956 goto out;
119957 +
119958 + track_exec_limit(current->mm, nstart, tmp, vm_flags);
119959 +
119960 nstart = tmp;
119961
119962 if (nstart < prev->vm_end)
119963 diff --git a/mm/mremap.c b/mm/mremap.c
119964 index c25bc62..900ca7f 100644
119965 --- a/mm/mremap.c
119966 +++ b/mm/mremap.c
119967 @@ -143,6 +143,12 @@ static void move_ptes(struct vm_area_struct *vma, pmd_t *old_pmd,
119968 continue;
119969 pte = ptep_get_and_clear(mm, old_addr, old_pte);
119970 pte = move_pte(pte, new_vma->vm_page_prot, old_addr, new_addr);
119971 +
119972 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
119973 + if (!(__supported_pte_mask & _PAGE_NX) && pte_present(pte) && (new_vma->vm_flags & (VM_PAGEEXEC | VM_EXEC)) == VM_PAGEEXEC)
119974 + pte = pte_exprotect(pte);
119975 +#endif
119976 +
119977 pte = move_soft_dirty_pte(pte);
119978 set_pte_at(mm, new_addr, new_pte, pte);
119979 }
119980 @@ -354,6 +360,11 @@ static struct vm_area_struct *vma_to_resize(unsigned long addr,
119981 if (is_vm_hugetlb_page(vma))
119982 return ERR_PTR(-EINVAL);
119983
119984 +#ifdef CONFIG_PAX_SEGMEXEC
119985 + if (pax_find_mirror_vma(vma))
119986 + return ERR_PTR(-EINVAL);
119987 +#endif
119988 +
119989 /* We can't remap across vm area boundaries */
119990 if (old_len > vma->vm_end - addr)
119991 return ERR_PTR(-EFAULT);
119992 @@ -400,11 +411,19 @@ static unsigned long mremap_to(unsigned long addr, unsigned long old_len,
119993 unsigned long ret = -EINVAL;
119994 unsigned long charged = 0;
119995 unsigned long map_flags;
119996 + unsigned long pax_task_size = TASK_SIZE;
119997
119998 if (offset_in_page(new_addr))
119999 goto out;
120000
120001 - if (new_len > TASK_SIZE || new_addr > TASK_SIZE - new_len)
120002 +#ifdef CONFIG_PAX_SEGMEXEC
120003 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
120004 + pax_task_size = SEGMEXEC_TASK_SIZE;
120005 +#endif
120006 +
120007 + pax_task_size -= PAGE_SIZE;
120008 +
120009 + if (new_len > TASK_SIZE || new_addr > pax_task_size - new_len)
120010 goto out;
120011
120012 /* Ensure the old/new locations do not overlap */
120013 @@ -477,6 +496,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
120014 unsigned long ret = -EINVAL;
120015 unsigned long charged = 0;
120016 bool locked = false;
120017 + unsigned long pax_task_size = TASK_SIZE;
120018
120019 if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE))
120020 return ret;
120021 @@ -498,6 +518,17 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
120022 if (!new_len)
120023 return ret;
120024
120025 +#ifdef CONFIG_PAX_SEGMEXEC
120026 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
120027 + pax_task_size = SEGMEXEC_TASK_SIZE;
120028 +#endif
120029 +
120030 + pax_task_size -= PAGE_SIZE;
120031 +
120032 + if (new_len > pax_task_size || addr > pax_task_size-new_len ||
120033 + old_len > pax_task_size || addr > pax_task_size-old_len)
120034 + return ret;
120035 +
120036 down_write(&current->mm->mmap_sem);
120037
120038 if (flags & MREMAP_FIXED) {
120039 @@ -548,6 +579,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
120040 new_addr = addr;
120041 }
120042 ret = addr;
120043 + track_exec_limit(vma->vm_mm, vma->vm_start, addr + new_len, vma->vm_flags);
120044 goto out;
120045 }
120046 }
120047 @@ -571,7 +603,12 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
120048 goto out;
120049 }
120050
120051 + map_flags = vma->vm_flags;
120052 ret = move_vma(vma, addr, old_len, new_len, new_addr, &locked);
120053 + if (!(ret & ~PAGE_MASK)) {
120054 + track_exec_limit(current->mm, addr, addr + old_len, 0UL);
120055 + track_exec_limit(current->mm, new_addr, new_addr + new_len, map_flags);
120056 + }
120057 }
120058 out:
120059 if (offset_in_page(ret)) {
120060 diff --git a/mm/nommu.c b/mm/nommu.c
120061 index 92be862..30dc573 100644
120062 --- a/mm/nommu.c
120063 +++ b/mm/nommu.c
120064 @@ -56,7 +56,6 @@ int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT;
120065 int sysctl_nr_trim_pages = CONFIG_NOMMU_INITIAL_TRIM_EXCESS;
120066 unsigned long sysctl_user_reserve_kbytes __read_mostly = 1UL << 17; /* 128MB */
120067 unsigned long sysctl_admin_reserve_kbytes __read_mostly = 1UL << 13; /* 8MB */
120068 -int heap_stack_gap = 0;
120069
120070 atomic_long_t mmap_pages_allocated;
120071
120072 @@ -863,15 +862,6 @@ struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr)
120073 EXPORT_SYMBOL(find_vma);
120074
120075 /*
120076 - * find a VMA
120077 - * - we don't extend stack VMAs under NOMMU conditions
120078 - */
120079 -struct vm_area_struct *find_extend_vma(struct mm_struct *mm, unsigned long addr)
120080 -{
120081 - return find_vma(mm, addr);
120082 -}
120083 -
120084 -/*
120085 * expand a stack to a given address
120086 * - not supported under NOMMU conditions
120087 */
120088 @@ -1536,6 +1526,7 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
120089
120090 /* most fields are the same, copy all, and then fixup */
120091 *new = *vma;
120092 + INIT_LIST_HEAD(&new->anon_vma_chain);
120093 *region = *vma->vm_region;
120094 new->vm_region = region;
120095
120096 @@ -1936,8 +1927,8 @@ void filemap_map_pages(struct vm_area_struct *vma, struct vm_fault *vmf)
120097 }
120098 EXPORT_SYMBOL(filemap_map_pages);
120099
120100 -static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
120101 - unsigned long addr, void *buf, int len, int write)
120102 +static ssize_t __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
120103 + unsigned long addr, void *buf, size_t len, int write)
120104 {
120105 struct vm_area_struct *vma;
120106
120107 @@ -1978,8 +1969,8 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
120108 *
120109 * The caller must hold a reference on @mm.
120110 */
120111 -int access_remote_vm(struct mm_struct *mm, unsigned long addr,
120112 - void *buf, int len, int write)
120113 +ssize_t access_remote_vm(struct mm_struct *mm, unsigned long addr,
120114 + void *buf, size_t len, int write)
120115 {
120116 return __access_remote_vm(NULL, mm, addr, buf, len, write);
120117 }
120118 @@ -1988,7 +1979,7 @@ int access_remote_vm(struct mm_struct *mm, unsigned long addr,
120119 * Access another process' address space.
120120 * - source/target buffer must be kernel space
120121 */
120122 -int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write)
120123 +ssize_t access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, size_t len, int write)
120124 {
120125 struct mm_struct *mm;
120126
120127 diff --git a/mm/oom_kill.c b/mm/oom_kill.c
120128 index c126809..02f1d52 100644
120129 --- a/mm/oom_kill.c
120130 +++ b/mm/oom_kill.c
120131 @@ -613,6 +613,10 @@ void oom_kill_process(struct oom_control *oc, struct task_struct *p,
120132 if (p->signal->oom_score_adj == OOM_SCORE_ADJ_MIN)
120133 continue;
120134
120135 + task_lock(p); /* Protect ->comm from prctl() */
120136 + pr_err("Kill process %d (%s) sharing same memory\n",
120137 + task_pid_nr(p), p->comm);
120138 + task_unlock(p);
120139 do_send_sig_info(SIGKILL, SEND_SIG_FORCED, p, true);
120140 }
120141 rcu_read_unlock();
120142 diff --git a/mm/page-writeback.c b/mm/page-writeback.c
120143 index d15d88c..4316955 100644
120144 --- a/mm/page-writeback.c
120145 +++ b/mm/page-writeback.c
120146 @@ -860,7 +860,7 @@ static long long pos_ratio_polynom(unsigned long setpoint,
120147 * card's wb_dirty may rush to many times higher than wb_setpoint.
120148 * - the wb dirty thresh drops quickly due to change of JBOD workload
120149 */
120150 -static void wb_position_ratio(struct dirty_throttle_control *dtc)
120151 +static void __intentional_overflow(-1) wb_position_ratio(struct dirty_throttle_control *dtc)
120152 {
120153 struct bdi_writeback *wb = dtc->wb;
120154 unsigned long write_bw = wb->avg_write_bandwidth;
120155 diff --git a/mm/page_alloc.c b/mm/page_alloc.c
120156 index 9d666df..dfa2193 100644
120157 --- a/mm/page_alloc.c
120158 +++ b/mm/page_alloc.c
120159 @@ -62,6 +62,7 @@
120160 #include <linux/sched/rt.h>
120161 #include <linux/page_owner.h>
120162 #include <linux/kthread.h>
120163 +#include <linux/random.h>
120164
120165 #include <asm/sections.h>
120166 #include <asm/tlbflush.h>
120167 @@ -229,7 +230,6 @@ static char * const zone_names[MAX_NR_ZONES] = {
120168 #endif
120169 };
120170
120171 -static void free_compound_page(struct page *page);
120172 compound_page_dtor * const compound_page_dtors[] = {
120173 NULL,
120174 free_compound_page,
120175 @@ -457,7 +457,7 @@ out:
120176 * This usage means that zero-order pages may not be compound.
120177 */
120178
120179 -static void free_compound_page(struct page *page)
120180 +void free_compound_page(struct page *page)
120181 {
120182 __free_pages_ok(page, compound_order(page));
120183 }
120184 @@ -563,7 +563,7 @@ static inline void clear_page_guard(struct zone *zone, struct page *page,
120185 __mod_zone_freepage_state(zone, (1 << order), migratetype);
120186 }
120187 #else
120188 -struct page_ext_operations debug_guardpage_ops = { NULL, };
120189 +struct page_ext_operations debug_guardpage_ops = { .need = NULL, .init = NULL };
120190 static inline void set_page_guard(struct zone *zone, struct page *page,
120191 unsigned int order, int migratetype) {}
120192 static inline void clear_page_guard(struct zone *zone, struct page *page,
120193 @@ -955,6 +955,10 @@ static bool free_pages_prepare(struct page *page, unsigned int order)
120194 bool compound = PageCompound(page);
120195 int i, bad = 0;
120196
120197 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
120198 + unsigned long index = 1UL << order;
120199 +#endif
120200 +
120201 VM_BUG_ON_PAGE(PageTail(page), page);
120202 VM_BUG_ON_PAGE(compound && compound_order(page) != order, page);
120203
120204 @@ -981,6 +985,12 @@ static bool free_pages_prepare(struct page *page, unsigned int order)
120205 debug_check_no_obj_freed(page_address(page),
120206 PAGE_SIZE << order);
120207 }
120208 +
120209 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
120210 + for (; index; --index)
120211 + sanitize_highpage(page + index - 1);
120212 +#endif
120213 +
120214 arch_free_page(page, order);
120215 kernel_map_pages(page, 1 << order, 0);
120216
120217 @@ -1003,6 +1013,20 @@ static void __free_pages_ok(struct page *page, unsigned int order)
120218 local_irq_restore(flags);
120219 }
120220
120221 +#ifdef CONFIG_PAX_LATENT_ENTROPY
120222 +bool __meminitdata extra_latent_entropy;
120223 +
120224 +static int __init setup_pax_extra_latent_entropy(char *str)
120225 +{
120226 + extra_latent_entropy = true;
120227 + return 0;
120228 +}
120229 +early_param("pax_extra_latent_entropy", setup_pax_extra_latent_entropy);
120230 +
120231 +volatile u64 latent_entropy __latent_entropy;
120232 +EXPORT_SYMBOL(latent_entropy);
120233 +#endif
120234 +
120235 static void __init __free_pages_boot_core(struct page *page,
120236 unsigned long pfn, unsigned int order)
120237 {
120238 @@ -1019,6 +1043,19 @@ static void __init __free_pages_boot_core(struct page *page,
120239 __ClearPageReserved(p);
120240 set_page_count(p, 0);
120241
120242 +#ifdef CONFIG_PAX_LATENT_ENTROPY
120243 + if (extra_latent_entropy && !PageHighMem(page) && page_to_pfn(page) < 0x100000) {
120244 + u64 hash = 0;
120245 + size_t index, end = PAGE_SIZE * nr_pages / sizeof hash;
120246 + const u64 *data = lowmem_page_address(page);
120247 +
120248 + for (index = 0; index < end; index++)
120249 + hash ^= hash + data[index];
120250 + latent_entropy ^= hash;
120251 + add_device_randomness((const void *)&latent_entropy, sizeof(latent_entropy));
120252 + }
120253 +#endif
120254 +
120255 page_zone(page)->managed_pages += nr_pages;
120256 set_page_refcounted(page);
120257 __free_pages(page, order);
120258 @@ -1075,7 +1112,6 @@ static inline bool __meminit meminit_pfn_in_nid(unsigned long pfn, int node,
120259 }
120260 #endif
120261
120262 -
120263 void __init __free_pages_bootmem(struct page *page, unsigned long pfn,
120264 unsigned int order)
120265 {
120266 @@ -1379,9 +1415,11 @@ static int prep_new_page(struct page *page, unsigned int order, gfp_t gfp_flags,
120267 kernel_map_pages(page, 1 << order, 1);
120268 kasan_alloc_pages(page, order);
120269
120270 +#ifndef CONFIG_PAX_MEMORY_SANITIZE
120271 if (gfp_flags & __GFP_ZERO)
120272 for (i = 0; i < (1 << order); i++)
120273 clear_highpage(page + i);
120274 +#endif
120275
120276 if (order && (gfp_flags & __GFP_COMP))
120277 prep_compound_page(page, order);
120278 @@ -2250,7 +2288,7 @@ struct page *buffered_rmqueue(struct zone *preferred_zone,
120279 }
120280
120281 __mod_zone_page_state(zone, NR_ALLOC_BATCH, -(1 << order));
120282 - if (atomic_long_read(&zone->vm_stat[NR_ALLOC_BATCH]) <= 0 &&
120283 + if (atomic_long_read_unchecked(&zone->vm_stat[NR_ALLOC_BATCH]) <= 0 &&
120284 !test_bit(ZONE_FAIR_DEPLETED, &zone->flags))
120285 set_bit(ZONE_FAIR_DEPLETED, &zone->flags);
120286
120287 @@ -2467,7 +2505,7 @@ static void reset_alloc_batches(struct zone *preferred_zone)
120288 do {
120289 mod_zone_page_state(zone, NR_ALLOC_BATCH,
120290 high_wmark_pages(zone) - low_wmark_pages(zone) -
120291 - atomic_long_read(&zone->vm_stat[NR_ALLOC_BATCH]));
120292 + atomic_long_read_unchecked(&zone->vm_stat[NR_ALLOC_BATCH]));
120293 clear_bit(ZONE_FAIR_DEPLETED, &zone->flags);
120294 } while (zone++ != preferred_zone);
120295 }
120296 @@ -6059,7 +6097,7 @@ static void __setup_per_zone_wmarks(void)
120297
120298 __mod_zone_page_state(zone, NR_ALLOC_BATCH,
120299 high_wmark_pages(zone) - low_wmark_pages(zone) -
120300 - atomic_long_read(&zone->vm_stat[NR_ALLOC_BATCH]));
120301 + atomic_long_read_unchecked(&zone->vm_stat[NR_ALLOC_BATCH]));
120302
120303 spin_unlock_irqrestore(&zone->lock, flags);
120304 }
120305 diff --git a/mm/percpu.c b/mm/percpu.c
120306 index 8a943b9..29d8b8d 100644
120307 --- a/mm/percpu.c
120308 +++ b/mm/percpu.c
120309 @@ -131,7 +131,7 @@ static unsigned int pcpu_low_unit_cpu __read_mostly;
120310 static unsigned int pcpu_high_unit_cpu __read_mostly;
120311
120312 /* the address of the first chunk which starts with the kernel static area */
120313 -void *pcpu_base_addr __read_mostly;
120314 +void *pcpu_base_addr __read_only;
120315 EXPORT_SYMBOL_GPL(pcpu_base_addr);
120316
120317 static const int *pcpu_unit_map __read_mostly; /* cpu -> unit */
120318 diff --git a/mm/process_vm_access.c b/mm/process_vm_access.c
120319 index 5d453e5..4043093 100644
120320 --- a/mm/process_vm_access.c
120321 +++ b/mm/process_vm_access.c
120322 @@ -13,6 +13,7 @@
120323 #include <linux/uio.h>
120324 #include <linux/sched.h>
120325 #include <linux/highmem.h>
120326 +#include <linux/security.h>
120327 #include <linux/ptrace.h>
120328 #include <linux/slab.h>
120329 #include <linux/syscalls.h>
120330 @@ -154,19 +155,19 @@ static ssize_t process_vm_rw_core(pid_t pid, struct iov_iter *iter,
120331 ssize_t iov_len;
120332 size_t total_len = iov_iter_count(iter);
120333
120334 + return -ENOSYS; // PaX: until properly audited
120335 +
120336 /*
120337 * Work out how many pages of struct pages we're going to need
120338 * when eventually calling get_user_pages
120339 */
120340 for (i = 0; i < riovcnt; i++) {
120341 iov_len = rvec[i].iov_len;
120342 - if (iov_len > 0) {
120343 - nr_pages_iov = ((unsigned long)rvec[i].iov_base
120344 - + iov_len)
120345 - / PAGE_SIZE - (unsigned long)rvec[i].iov_base
120346 - / PAGE_SIZE + 1;
120347 - nr_pages = max(nr_pages, nr_pages_iov);
120348 - }
120349 + if (iov_len <= 0)
120350 + continue;
120351 + nr_pages_iov = ((unsigned long)rvec[i].iov_base + iov_len) / PAGE_SIZE -
120352 + (unsigned long)rvec[i].iov_base / PAGE_SIZE + 1;
120353 + nr_pages = max(nr_pages, nr_pages_iov);
120354 }
120355
120356 if (nr_pages == 0)
120357 @@ -194,6 +195,11 @@ static ssize_t process_vm_rw_core(pid_t pid, struct iov_iter *iter,
120358 goto free_proc_pages;
120359 }
120360
120361 + if (gr_handle_ptrace(task, vm_write ? PTRACE_POKETEXT : PTRACE_ATTACH)) {
120362 + rc = -EPERM;
120363 + goto put_task_struct;
120364 + }
120365 +
120366 mm = mm_access(task, PTRACE_MODE_ATTACH_REALCREDS);
120367 if (!mm || IS_ERR(mm)) {
120368 rc = IS_ERR(mm) ? PTR_ERR(mm) : -ESRCH;
120369 diff --git a/mm/rmap.c b/mm/rmap.c
120370 index b577fbb..ccd4d4e 100644
120371 --- a/mm/rmap.c
120372 +++ b/mm/rmap.c
120373 @@ -171,6 +171,10 @@ int anon_vma_prepare(struct vm_area_struct *vma)
120374 struct anon_vma *anon_vma = vma->anon_vma;
120375 struct anon_vma_chain *avc;
120376
120377 +#ifdef CONFIG_PAX_SEGMEXEC
120378 + struct anon_vma_chain *avc_m = NULL;
120379 +#endif
120380 +
120381 might_sleep();
120382 if (unlikely(!anon_vma)) {
120383 struct mm_struct *mm = vma->vm_mm;
120384 @@ -180,6 +184,12 @@ int anon_vma_prepare(struct vm_area_struct *vma)
120385 if (!avc)
120386 goto out_enomem;
120387
120388 +#ifdef CONFIG_PAX_SEGMEXEC
120389 + avc_m = anon_vma_chain_alloc(GFP_KERNEL);
120390 + if (!avc_m)
120391 + goto out_enomem_free_avc;
120392 +#endif
120393 +
120394 anon_vma = find_mergeable_anon_vma(vma);
120395 allocated = NULL;
120396 if (!anon_vma) {
120397 @@ -193,6 +203,19 @@ int anon_vma_prepare(struct vm_area_struct *vma)
120398 /* page_table_lock to protect against threads */
120399 spin_lock(&mm->page_table_lock);
120400 if (likely(!vma->anon_vma)) {
120401 +
120402 +#ifdef CONFIG_PAX_SEGMEXEC
120403 + struct vm_area_struct *vma_m = pax_find_mirror_vma(vma);
120404 +
120405 + if (vma_m) {
120406 + BUG_ON(vma_m->anon_vma);
120407 + vma_m->anon_vma = anon_vma;
120408 + anon_vma_chain_link(vma_m, avc_m, anon_vma);
120409 + anon_vma->degree++;
120410 + avc_m = NULL;
120411 + }
120412 +#endif
120413 +
120414 vma->anon_vma = anon_vma;
120415 anon_vma_chain_link(vma, avc, anon_vma);
120416 /* vma reference or self-parent link for new root */
120417 @@ -205,12 +228,24 @@ int anon_vma_prepare(struct vm_area_struct *vma)
120418
120419 if (unlikely(allocated))
120420 put_anon_vma(allocated);
120421 +
120422 +#ifdef CONFIG_PAX_SEGMEXEC
120423 + if (unlikely(avc_m))
120424 + anon_vma_chain_free(avc_m);
120425 +#endif
120426 +
120427 if (unlikely(avc))
120428 anon_vma_chain_free(avc);
120429 }
120430 return 0;
120431
120432 out_enomem_free_avc:
120433 +
120434 +#ifdef CONFIG_PAX_SEGMEXEC
120435 + if (avc_m)
120436 + anon_vma_chain_free(avc_m);
120437 +#endif
120438 +
120439 anon_vma_chain_free(avc);
120440 out_enomem:
120441 return -ENOMEM;
120442 @@ -254,7 +289,7 @@ static inline void unlock_anon_vma_root(struct anon_vma *root)
120443 * good chance of avoiding scanning the whole hierarchy when it searches where
120444 * page is mapped.
120445 */
120446 -int anon_vma_clone(struct vm_area_struct *dst, struct vm_area_struct *src)
120447 +int anon_vma_clone(struct vm_area_struct *dst, const struct vm_area_struct *src)
120448 {
120449 struct anon_vma_chain *avc, *pavc;
120450 struct anon_vma *root = NULL;
120451 @@ -308,7 +343,7 @@ int anon_vma_clone(struct vm_area_struct *dst, struct vm_area_struct *src)
120452 * the corresponding VMA in the parent process is attached to.
120453 * Returns 0 on success, non-zero on failure.
120454 */
120455 -int anon_vma_fork(struct vm_area_struct *vma, struct vm_area_struct *pvma)
120456 +int anon_vma_fork(struct vm_area_struct *vma, const struct vm_area_struct *pvma)
120457 {
120458 struct anon_vma_chain *avc;
120459 struct anon_vma *anon_vma;
120460 @@ -428,8 +463,10 @@ static void anon_vma_ctor(void *data)
120461 void __init anon_vma_init(void)
120462 {
120463 anon_vma_cachep = kmem_cache_create("anon_vma", sizeof(struct anon_vma),
120464 - 0, SLAB_DESTROY_BY_RCU|SLAB_PANIC, anon_vma_ctor);
120465 - anon_vma_chain_cachep = KMEM_CACHE(anon_vma_chain, SLAB_PANIC);
120466 + 0, SLAB_DESTROY_BY_RCU|SLAB_PANIC|SLAB_NO_SANITIZE,
120467 + anon_vma_ctor);
120468 + anon_vma_chain_cachep = KMEM_CACHE(anon_vma_chain,
120469 + SLAB_PANIC|SLAB_NO_SANITIZE);
120470 }
120471
120472 /*
120473 diff --git a/mm/shmem.c b/mm/shmem.c
120474 index ea5a70c..4b38523 100644
120475 --- a/mm/shmem.c
120476 +++ b/mm/shmem.c
120477 @@ -33,7 +33,7 @@
120478 #include <linux/swap.h>
120479 #include <linux/uio.h>
120480
120481 -static struct vfsmount *shm_mnt;
120482 +struct vfsmount *shm_mnt;
120483
120484 #ifdef CONFIG_SHMEM
120485 /*
120486 @@ -82,7 +82,7 @@ static struct vfsmount *shm_mnt;
120487 #define BOGO_DIRENT_SIZE 20
120488
120489 /* Symlink up to this size is kmalloc'ed instead of using a swappable page */
120490 -#define SHORT_SYMLINK_LEN 128
120491 +#define SHORT_SYMLINK_LEN 64
120492
120493 /*
120494 * shmem_fallocate communicates with shmem_fault or shmem_writepage via
120495 @@ -2564,6 +2564,11 @@ static const struct xattr_handler *shmem_xattr_handlers[] = {
120496 static int shmem_xattr_validate(const char *name)
120497 {
120498 struct { const char *prefix; size_t len; } arr[] = {
120499 +
120500 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
120501 + { XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN},
120502 +#endif
120503 +
120504 { XATTR_SECURITY_PREFIX, XATTR_SECURITY_PREFIX_LEN },
120505 { XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN }
120506 };
120507 @@ -2619,6 +2624,15 @@ static int shmem_setxattr(struct dentry *dentry, const char *name,
120508 if (err)
120509 return err;
120510
120511 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
120512 + if (!strncmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN)) {
120513 + if (strcmp(name, XATTR_NAME_PAX_FLAGS))
120514 + return -EOPNOTSUPP;
120515 + if (size > 8)
120516 + return -EINVAL;
120517 + }
120518 +#endif
120519 +
120520 return simple_xattr_set(&info->xattrs, name, value, size, flags);
120521 }
120522
120523 @@ -3002,8 +3016,7 @@ int shmem_fill_super(struct super_block *sb, void *data, int silent)
120524 int err = -ENOMEM;
120525
120526 /* Round up to L1_CACHE_BYTES to resist false sharing */
120527 - sbinfo = kzalloc(max((int)sizeof(struct shmem_sb_info),
120528 - L1_CACHE_BYTES), GFP_KERNEL);
120529 + sbinfo = kzalloc(max(sizeof(struct shmem_sb_info), L1_CACHE_BYTES), GFP_KERNEL);
120530 if (!sbinfo)
120531 return -ENOMEM;
120532
120533 diff --git a/mm/slab.c b/mm/slab.c
120534 index 4765c97..26f5c11 100644
120535 --- a/mm/slab.c
120536 +++ b/mm/slab.c
120537 @@ -116,6 +116,7 @@
120538 #include <linux/kmemcheck.h>
120539 #include <linux/memory.h>
120540 #include <linux/prefetch.h>
120541 +#include <linux/vmalloc.h>
120542
120543 #include <net/sock.h>
120544
120545 @@ -315,10 +316,12 @@ static void kmem_cache_node_init(struct kmem_cache_node *parent)
120546 if ((x)->max_freeable < i) \
120547 (x)->max_freeable = i; \
120548 } while (0)
120549 -#define STATS_INC_ALLOCHIT(x) atomic_inc(&(x)->allochit)
120550 -#define STATS_INC_ALLOCMISS(x) atomic_inc(&(x)->allocmiss)
120551 -#define STATS_INC_FREEHIT(x) atomic_inc(&(x)->freehit)
120552 -#define STATS_INC_FREEMISS(x) atomic_inc(&(x)->freemiss)
120553 +#define STATS_INC_ALLOCHIT(x) atomic_inc_unchecked(&(x)->allochit)
120554 +#define STATS_INC_ALLOCMISS(x) atomic_inc_unchecked(&(x)->allocmiss)
120555 +#define STATS_INC_FREEHIT(x) atomic_inc_unchecked(&(x)->freehit)
120556 +#define STATS_INC_FREEMISS(x) atomic_inc_unchecked(&(x)->freemiss)
120557 +#define STATS_INC_SANITIZED(x) atomic_inc_unchecked(&(x)->sanitized)
120558 +#define STATS_INC_NOT_SANITIZED(x) atomic_inc_unchecked(&(x)->not_sanitized)
120559 #else
120560 #define STATS_INC_ACTIVE(x) do { } while (0)
120561 #define STATS_DEC_ACTIVE(x) do { } while (0)
120562 @@ -335,6 +338,8 @@ static void kmem_cache_node_init(struct kmem_cache_node *parent)
120563 #define STATS_INC_ALLOCMISS(x) do { } while (0)
120564 #define STATS_INC_FREEHIT(x) do { } while (0)
120565 #define STATS_INC_FREEMISS(x) do { } while (0)
120566 +#define STATS_INC_SANITIZED(x) do { } while (0)
120567 +#define STATS_INC_NOT_SANITIZED(x) do { } while (0)
120568 #endif
120569
120570 #if DEBUG
120571 @@ -451,7 +456,7 @@ static inline void *index_to_obj(struct kmem_cache *cache, struct page *page,
120572 * reciprocal_divide(offset, cache->reciprocal_buffer_size)
120573 */
120574 static inline unsigned int obj_to_index(const struct kmem_cache *cache,
120575 - const struct page *page, void *obj)
120576 + const struct page *page, const void *obj)
120577 {
120578 u32 offset = (obj - page->s_mem);
120579 return reciprocal_divide(offset, cache->reciprocal_buffer_size);
120580 @@ -1453,7 +1458,7 @@ void __init kmem_cache_init(void)
120581 * structures first. Without this, further allocations will bug.
120582 */
120583 kmalloc_caches[INDEX_NODE] = create_kmalloc_cache("kmalloc-node",
120584 - kmalloc_size(INDEX_NODE), ARCH_KMALLOC_FLAGS);
120585 + kmalloc_size(INDEX_NODE), SLAB_USERCOPY | ARCH_KMALLOC_FLAGS);
120586 slab_state = PARTIAL_NODE;
120587 setup_kmalloc_cache_index_table();
120588
120589 @@ -1692,7 +1697,7 @@ static void store_stackinfo(struct kmem_cache *cachep, unsigned long *addr,
120590
120591 while (!kstack_end(sptr)) {
120592 svalue = *sptr++;
120593 - if (kernel_text_address(svalue)) {
120594 + if (kernel_text_address(ktva_ktla(svalue))) {
120595 *addr++ = svalue;
120596 size -= sizeof(unsigned long);
120597 if (size <= sizeof(unsigned long))
120598 @@ -2064,7 +2069,7 @@ __kmem_cache_alias(const char *name, size_t size, size_t align,
120599
120600 cachep = find_mergeable(size, align, flags, name, ctor);
120601 if (cachep) {
120602 - cachep->refcount++;
120603 + atomic_inc(&cachep->refcount);
120604
120605 /*
120606 * Adjust the object sizes so that we clear
120607 @@ -3369,6 +3374,20 @@ static inline void __cache_free(struct kmem_cache *cachep, void *objp,
120608 struct array_cache *ac = cpu_cache_get(cachep);
120609
120610 check_irq_off();
120611 +
120612 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
120613 + if (cachep->flags & (SLAB_POISON | SLAB_NO_SANITIZE))
120614 + STATS_INC_NOT_SANITIZED(cachep);
120615 + else {
120616 + memset(objp, PAX_MEMORY_SANITIZE_VALUE, cachep->object_size);
120617 +
120618 + if (cachep->ctor)
120619 + cachep->ctor(objp);
120620 +
120621 + STATS_INC_SANITIZED(cachep);
120622 + }
120623 +#endif
120624 +
120625 kmemleak_free_recursive(objp, cachep->flags);
120626 objp = cache_free_debugcheck(cachep, objp, caller);
120627
120628 @@ -3494,7 +3513,7 @@ __do_kmalloc_node(size_t size, gfp_t flags, int node, unsigned long caller)
120629 return kmem_cache_alloc_node_trace(cachep, flags, node, size);
120630 }
120631
120632 -void *__kmalloc_node(size_t size, gfp_t flags, int node)
120633 +void * __size_overflow(1) __kmalloc_node(size_t size, gfp_t flags, int node)
120634 {
120635 return __do_kmalloc_node(size, flags, node, _RET_IP_);
120636 }
120637 @@ -3514,7 +3533,7 @@ EXPORT_SYMBOL(__kmalloc_node_track_caller);
120638 * @flags: the type of memory to allocate (see kmalloc).
120639 * @caller: function caller for debug tracking of the caller
120640 */
120641 -static __always_inline void *__do_kmalloc(size_t size, gfp_t flags,
120642 +static __always_inline void * __size_overflow(1) __do_kmalloc(size_t size, gfp_t flags,
120643 unsigned long caller)
120644 {
120645 struct kmem_cache *cachep;
120646 @@ -3587,6 +3606,7 @@ void kfree(const void *objp)
120647
120648 if (unlikely(ZERO_OR_NULL_PTR(objp)))
120649 return;
120650 + VM_BUG_ON(!virt_addr_valid(objp));
120651 local_irq_save(flags);
120652 kfree_debugcheck(objp);
120653 c = virt_to_cache(objp);
120654 @@ -4006,14 +4026,22 @@ void slabinfo_show_stats(struct seq_file *m, struct kmem_cache *cachep)
120655 }
120656 /* cpu stats */
120657 {
120658 - unsigned long allochit = atomic_read(&cachep->allochit);
120659 - unsigned long allocmiss = atomic_read(&cachep->allocmiss);
120660 - unsigned long freehit = atomic_read(&cachep->freehit);
120661 - unsigned long freemiss = atomic_read(&cachep->freemiss);
120662 + unsigned long allochit = atomic_read_unchecked(&cachep->allochit);
120663 + unsigned long allocmiss = atomic_read_unchecked(&cachep->allocmiss);
120664 + unsigned long freehit = atomic_read_unchecked(&cachep->freehit);
120665 + unsigned long freemiss = atomic_read_unchecked(&cachep->freemiss);
120666
120667 seq_printf(m, " : cpustat %6lu %6lu %6lu %6lu",
120668 allochit, allocmiss, freehit, freemiss);
120669 }
120670 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
120671 + {
120672 + unsigned long sanitized = atomic_read_unchecked(&cachep->sanitized);
120673 + unsigned long not_sanitized = atomic_read_unchecked(&cachep->not_sanitized);
120674 +
120675 + seq_printf(m, " : pax %6lu %6lu", sanitized, not_sanitized);
120676 + }
120677 +#endif
120678 #endif
120679 }
120680
120681 @@ -4221,13 +4249,80 @@ static const struct file_operations proc_slabstats_operations = {
120682 static int __init slab_proc_init(void)
120683 {
120684 #ifdef CONFIG_DEBUG_SLAB_LEAK
120685 - proc_create("slab_allocators", 0, NULL, &proc_slabstats_operations);
120686 + proc_create("slab_allocators", S_IRUSR, NULL, &proc_slabstats_operations);
120687 #endif
120688 return 0;
120689 }
120690 module_init(slab_proc_init);
120691 #endif
120692
120693 +bool is_usercopy_object(const void *ptr)
120694 +{
120695 + struct page *page;
120696 + struct kmem_cache *cachep;
120697 +
120698 + if (ZERO_OR_NULL_PTR(ptr))
120699 + return false;
120700 +
120701 + if (!slab_is_available())
120702 + return false;
120703 +
120704 + if (is_vmalloc_addr(ptr)
120705 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
120706 + && !object_starts_on_stack(ptr)
120707 +#endif
120708 + ) {
120709 + struct vm_struct *vm = find_vm_area(ptr);
120710 + if (vm && (vm->flags & VM_USERCOPY))
120711 + return true;
120712 + return false;
120713 + }
120714 +
120715 + if (!virt_addr_valid(ptr))
120716 + return false;
120717 +
120718 + page = virt_to_head_page(ptr);
120719 +
120720 + if (!PageSlab(page))
120721 + return false;
120722 +
120723 + cachep = page->slab_cache;
120724 + return cachep->flags & SLAB_USERCOPY;
120725 +}
120726 +
120727 +#ifdef CONFIG_PAX_USERCOPY
120728 +const char *check_heap_object(const void *ptr, unsigned long n)
120729 +{
120730 + struct page *page;
120731 + struct kmem_cache *cachep;
120732 + unsigned int objnr;
120733 + unsigned long offset;
120734 +
120735 + if (ZERO_OR_NULL_PTR(ptr))
120736 + return "<null>";
120737 +
120738 + if (!virt_addr_valid(ptr))
120739 + return NULL;
120740 +
120741 + page = virt_to_head_page(ptr);
120742 +
120743 + if (!PageSlab(page))
120744 + return NULL;
120745 +
120746 + cachep = page->slab_cache;
120747 + if (!(cachep->flags & SLAB_USERCOPY))
120748 + return cachep->name;
120749 +
120750 + objnr = obj_to_index(cachep, page, ptr);
120751 + BUG_ON(objnr >= cachep->num);
120752 + offset = ptr - index_to_obj(cachep, page, objnr) - obj_offset(cachep);
120753 + if (offset <= cachep->object_size && n <= cachep->object_size - offset)
120754 + return NULL;
120755 +
120756 + return cachep->name;
120757 +}
120758 +#endif
120759 +
120760 /**
120761 * ksize - get the actual amount of memory allocated for a given object
120762 * @objp: Pointer to the object
120763 diff --git a/mm/slab.h b/mm/slab.h
120764 index 7b60871..dd645ce1 100644
120765 --- a/mm/slab.h
120766 +++ b/mm/slab.h
120767 @@ -22,7 +22,7 @@ struct kmem_cache {
120768 unsigned int align; /* Alignment as calculated */
120769 unsigned long flags; /* Active flags on the slab */
120770 const char *name; /* Slab name for sysfs */
120771 - int refcount; /* Use counter */
120772 + atomic_t refcount; /* Use counter */
120773 void (*ctor)(void *); /* Called on object slot creation */
120774 struct list_head list; /* List of all slab caches on the system */
120775 };
120776 @@ -66,6 +66,20 @@ extern struct list_head slab_caches;
120777 /* The slab cache that manages slab cache information */
120778 extern struct kmem_cache *kmem_cache;
120779
120780 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
120781 +#ifdef CONFIG_X86_64
120782 +#define PAX_MEMORY_SANITIZE_VALUE '\xfe'
120783 +#else
120784 +#define PAX_MEMORY_SANITIZE_VALUE '\xff'
120785 +#endif
120786 +enum pax_sanitize_mode {
120787 + PAX_SANITIZE_SLAB_OFF = 0,
120788 + PAX_SANITIZE_SLAB_FAST,
120789 + PAX_SANITIZE_SLAB_FULL,
120790 +};
120791 +extern enum pax_sanitize_mode pax_sanitize_slab;
120792 +#endif
120793 +
120794 unsigned long calculate_alignment(unsigned long flags,
120795 unsigned long align, unsigned long size);
120796
120797 @@ -115,7 +129,8 @@ static inline unsigned long kmem_cache_flags(unsigned long object_size,
120798
120799 /* Legal flag mask for kmem_cache_create(), for various configurations */
120800 #define SLAB_CORE_FLAGS (SLAB_HWCACHE_ALIGN | SLAB_CACHE_DMA | SLAB_PANIC | \
120801 - SLAB_DESTROY_BY_RCU | SLAB_DEBUG_OBJECTS )
120802 + SLAB_DESTROY_BY_RCU | SLAB_DEBUG_OBJECTS | \
120803 + SLAB_USERCOPY | SLAB_NO_SANITIZE)
120804
120805 #if defined(CONFIG_DEBUG_SLAB)
120806 #define SLAB_DEBUG_FLAGS (SLAB_RED_ZONE | SLAB_POISON | SLAB_STORE_USER)
120807 @@ -309,6 +324,9 @@ static inline struct kmem_cache *cache_from_obj(struct kmem_cache *s, void *x)
120808 return s;
120809
120810 page = virt_to_head_page(x);
120811 +
120812 + BUG_ON(!PageSlab(page));
120813 +
120814 cachep = page->slab_cache;
120815 if (slab_equal_or_root(cachep, s))
120816 return cachep;
120817 diff --git a/mm/slab_common.c b/mm/slab_common.c
120818 index 3c6a86b..f143a66 100644
120819 --- a/mm/slab_common.c
120820 +++ b/mm/slab_common.c
120821 @@ -25,11 +25,35 @@
120822
120823 #include "slab.h"
120824
120825 -enum slab_state slab_state;
120826 +enum slab_state slab_state __read_only;
120827 LIST_HEAD(slab_caches);
120828 DEFINE_MUTEX(slab_mutex);
120829 struct kmem_cache *kmem_cache;
120830
120831 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
120832 +enum pax_sanitize_mode pax_sanitize_slab __read_only = PAX_SANITIZE_SLAB_FAST;
120833 +static int __init pax_sanitize_slab_setup(char *str)
120834 +{
120835 + if (!str)
120836 + return 0;
120837 +
120838 + if (!strcmp(str, "0") || !strcmp(str, "off")) {
120839 + pr_info("PaX slab sanitization: %s\n", "disabled");
120840 + pax_sanitize_slab = PAX_SANITIZE_SLAB_OFF;
120841 + } else if (!strcmp(str, "1") || !strcmp(str, "fast")) {
120842 + pr_info("PaX slab sanitization: %s\n", "fast");
120843 + pax_sanitize_slab = PAX_SANITIZE_SLAB_FAST;
120844 + } else if (!strcmp(str, "full")) {
120845 + pr_info("PaX slab sanitization: %s\n", "full");
120846 + pax_sanitize_slab = PAX_SANITIZE_SLAB_FULL;
120847 + } else
120848 + pr_err("PaX slab sanitization: unsupported option '%s'\n", str);
120849 +
120850 + return 0;
120851 +}
120852 +early_param("pax_sanitize_slab", pax_sanitize_slab_setup);
120853 +#endif
120854 +
120855 /*
120856 * Set of flags that will prevent slab merging
120857 */
120858 @@ -43,7 +67,7 @@ struct kmem_cache *kmem_cache;
120859 * Merge control. If this is set then no merging of slab caches will occur.
120860 * (Could be removed. This was introduced to pacify the merge skeptics.)
120861 */
120862 -static int slab_nomerge;
120863 +static int slab_nomerge = 1;
120864
120865 static int __init setup_slab_nomerge(char *str)
120866 {
120867 @@ -239,7 +263,7 @@ int slab_unmergeable(struct kmem_cache *s)
120868 /*
120869 * We may have set a slab to be unmergeable during bootstrap.
120870 */
120871 - if (s->refcount < 0)
120872 + if (atomic_read(&s->refcount) < 0)
120873 return 1;
120874
120875 return 0;
120876 @@ -343,7 +367,7 @@ static struct kmem_cache *create_cache(const char *name,
120877 if (err)
120878 goto out_free_cache;
120879
120880 - s->refcount = 1;
120881 + atomic_set(&s->refcount, 1);
120882 list_add(&s->list, &slab_caches);
120883 out:
120884 if (err)
120885 @@ -407,6 +431,13 @@ kmem_cache_create(const char *name, size_t size, size_t align,
120886 */
120887 flags &= CACHE_CREATE_MASK;
120888
120889 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
120890 + if (pax_sanitize_slab == PAX_SANITIZE_SLAB_OFF || (flags & SLAB_DESTROY_BY_RCU))
120891 + flags |= SLAB_NO_SANITIZE;
120892 + else if (pax_sanitize_slab == PAX_SANITIZE_SLAB_FULL)
120893 + flags &= ~SLAB_NO_SANITIZE;
120894 +#endif
120895 +
120896 s = __kmem_cache_alias(name, size, align, flags, ctor);
120897 if (s)
120898 goto out_unlock;
120899 @@ -468,7 +499,7 @@ static void release_caches(struct list_head *release, bool need_rcu_barrier)
120900 rcu_barrier();
120901
120902 list_for_each_entry_safe(s, s2, release, list) {
120903 -#ifdef SLAB_SUPPORTS_SYSFS
120904 +#if defined(SLAB_SUPPORTS_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
120905 sysfs_slab_remove(s);
120906 #else
120907 slab_kmem_cache_release(s);
120908 @@ -711,8 +742,7 @@ void kmem_cache_destroy(struct kmem_cache *s)
120909
120910 mutex_lock(&slab_mutex);
120911
120912 - s->refcount--;
120913 - if (s->refcount)
120914 + if (!atomic_dec_and_test(&s->refcount))
120915 goto out_unlock;
120916
120917 err = shutdown_memcg_caches(s, &release, &need_rcu_barrier);
120918 @@ -778,7 +808,7 @@ void __init create_boot_cache(struct kmem_cache *s, const char *name, size_t siz
120919 panic("Creation of kmalloc slab %s size=%zu failed. Reason %d\n",
120920 name, size, err);
120921
120922 - s->refcount = -1; /* Exempt from merging for now */
120923 + atomic_set(&s->refcount, -1); /* Exempt from merging for now */
120924 }
120925
120926 struct kmem_cache *__init create_kmalloc_cache(const char *name, size_t size,
120927 @@ -791,7 +821,7 @@ struct kmem_cache *__init create_kmalloc_cache(const char *name, size_t size,
120928
120929 create_boot_cache(s, name, size, flags);
120930 list_add(&s->list, &slab_caches);
120931 - s->refcount = 1;
120932 + atomic_set(&s->refcount, 1);
120933 return s;
120934 }
120935
120936 @@ -803,6 +833,11 @@ struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
120937 EXPORT_SYMBOL(kmalloc_dma_caches);
120938 #endif
120939
120940 +#ifdef CONFIG_PAX_USERCOPY_SLABS
120941 +struct kmem_cache *kmalloc_usercopy_caches[KMALLOC_SHIFT_HIGH + 1];
120942 +EXPORT_SYMBOL(kmalloc_usercopy_caches);
120943 +#endif
120944 +
120945 /*
120946 * Conversion table for small slabs sizes / 8 to the index in the
120947 * kmalloc array. This is necessary for slabs < 192 since we have non power
120948 @@ -867,6 +902,13 @@ struct kmem_cache *kmalloc_slab(size_t size, gfp_t flags)
120949 return kmalloc_dma_caches[index];
120950
120951 #endif
120952 +
120953 +#ifdef CONFIG_PAX_USERCOPY_SLABS
120954 + if (unlikely((flags & GFP_USERCOPY)))
120955 + return kmalloc_usercopy_caches[index];
120956 +
120957 +#endif
120958 +
120959 return kmalloc_caches[index];
120960 }
120961
120962 @@ -959,7 +1001,7 @@ void __init create_kmalloc_caches(unsigned long flags)
120963
120964 for (i = KMALLOC_SHIFT_LOW; i <= KMALLOC_SHIFT_HIGH; i++) {
120965 if (!kmalloc_caches[i])
120966 - new_kmalloc_cache(i, flags);
120967 + new_kmalloc_cache(i, SLAB_USERCOPY | flags);
120968
120969 /*
120970 * Caches that are not of the two-to-the-power-of size.
120971 @@ -967,9 +1009,9 @@ void __init create_kmalloc_caches(unsigned long flags)
120972 * earlier power of two caches
120973 */
120974 if (KMALLOC_MIN_SIZE <= 32 && !kmalloc_caches[1] && i == 6)
120975 - new_kmalloc_cache(1, flags);
120976 + new_kmalloc_cache(1, SLAB_USERCOPY | flags);
120977 if (KMALLOC_MIN_SIZE <= 64 && !kmalloc_caches[2] && i == 7)
120978 - new_kmalloc_cache(2, flags);
120979 + new_kmalloc_cache(2, SLAB_USERCOPY | flags);
120980 }
120981
120982 /* Kmalloc array is now usable */
120983 @@ -990,6 +1032,23 @@ void __init create_kmalloc_caches(unsigned long flags)
120984 }
120985 }
120986 #endif
120987 +
120988 +#ifdef CONFIG_PAX_USERCOPY_SLABS
120989 + for (i = 0; i <= KMALLOC_SHIFT_HIGH; i++) {
120990 + struct kmem_cache *s = kmalloc_caches[i];
120991 +
120992 + if (s) {
120993 + int size = kmalloc_size(i);
120994 + char *n = kasprintf(GFP_NOWAIT,
120995 + "usercopy-kmalloc-%d", size);
120996 +
120997 + BUG_ON(!n);
120998 + kmalloc_usercopy_caches[i] = create_kmalloc_cache(n,
120999 + size, SLAB_USERCOPY | flags);
121000 + }
121001 + }
121002 +#endif
121003 +
121004 }
121005 #endif /* !CONFIG_SLOB */
121006
121007 @@ -1049,6 +1108,9 @@ static void print_slabinfo_header(struct seq_file *m)
121008 seq_puts(m, " : globalstat <listallocs> <maxobjs> <grown> <reaped> "
121009 "<error> <maxfreeable> <nodeallocs> <remotefrees> <alienoverflow>");
121010 seq_puts(m, " : cpustat <allochit> <allocmiss> <freehit> <freemiss>");
121011 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
121012 + seq_puts(m, " : pax <sanitized> <not_sanitized>");
121013 +#endif
121014 #endif
121015 seq_putc(m, '\n');
121016 }
121017 @@ -1178,7 +1240,7 @@ static int __init slab_proc_init(void)
121018 module_init(slab_proc_init);
121019 #endif /* CONFIG_SLABINFO */
121020
121021 -static __always_inline void *__do_krealloc(const void *p, size_t new_size,
121022 +static __always_inline void * __size_overflow(2) __do_krealloc(const void *p, size_t new_size,
121023 gfp_t flags)
121024 {
121025 void *ret;
121026 diff --git a/mm/slob.c b/mm/slob.c
121027 index 17e8f8c..56d3370 100644
121028 --- a/mm/slob.c
121029 +++ b/mm/slob.c
121030 @@ -67,6 +67,7 @@
121031 #include <linux/rcupdate.h>
121032 #include <linux/list.h>
121033 #include <linux/kmemleak.h>
121034 +#include <linux/vmalloc.h>
121035
121036 #include <trace/events/kmem.h>
121037
121038 @@ -157,7 +158,7 @@ static void set_slob(slob_t *s, slobidx_t size, slob_t *next)
121039 /*
121040 * Return the size of a slob block.
121041 */
121042 -static slobidx_t slob_units(slob_t *s)
121043 +static slobidx_t slob_units(const slob_t *s)
121044 {
121045 if (s->units > 0)
121046 return s->units;
121047 @@ -167,7 +168,7 @@ static slobidx_t slob_units(slob_t *s)
121048 /*
121049 * Return the next free slob block pointer after this one.
121050 */
121051 -static slob_t *slob_next(slob_t *s)
121052 +static slob_t *slob_next(const slob_t *s)
121053 {
121054 slob_t *base = (slob_t *)((unsigned long)s & PAGE_MASK);
121055 slobidx_t next;
121056 @@ -182,14 +183,14 @@ static slob_t *slob_next(slob_t *s)
121057 /*
121058 * Returns true if s is the last free block in its page.
121059 */
121060 -static int slob_last(slob_t *s)
121061 +static int slob_last(const slob_t *s)
121062 {
121063 return !((unsigned long)slob_next(s) & ~PAGE_MASK);
121064 }
121065
121066 -static void *slob_new_pages(gfp_t gfp, int order, int node)
121067 +static struct page *slob_new_pages(gfp_t gfp, unsigned int order, int node)
121068 {
121069 - void *page;
121070 + struct page *page;
121071
121072 #ifdef CONFIG_NUMA
121073 if (node != NUMA_NO_NODE)
121074 @@ -201,14 +202,18 @@ static void *slob_new_pages(gfp_t gfp, int order, int node)
121075 if (!page)
121076 return NULL;
121077
121078 - return page_address(page);
121079 + __SetPageSlab(page);
121080 + return page;
121081 }
121082
121083 -static void slob_free_pages(void *b, int order)
121084 +static void slob_free_pages(struct page *sp, int order)
121085 {
121086 if (current->reclaim_state)
121087 current->reclaim_state->reclaimed_slab += 1 << order;
121088 - free_pages((unsigned long)b, order);
121089 + __ClearPageSlab(sp);
121090 + page_mapcount_reset(sp);
121091 + sp->private = 0;
121092 + __free_pages(sp, order);
121093 }
121094
121095 /*
121096 @@ -313,15 +318,15 @@ static void *slob_alloc(size_t size, gfp_t gfp, int align, int node)
121097
121098 /* Not enough space: must allocate a new page */
121099 if (!b) {
121100 - b = slob_new_pages(gfp & ~__GFP_ZERO, 0, node);
121101 - if (!b)
121102 + sp = slob_new_pages(gfp & ~__GFP_ZERO, 0, node);
121103 + if (!sp)
121104 return NULL;
121105 - sp = virt_to_page(b);
121106 - __SetPageSlab(sp);
121107 + b = page_address(sp);
121108
121109 spin_lock_irqsave(&slob_lock, flags);
121110 sp->units = SLOB_UNITS(PAGE_SIZE);
121111 sp->freelist = b;
121112 + sp->private = 0;
121113 INIT_LIST_HEAD(&sp->lru);
121114 set_slob(b, SLOB_UNITS(PAGE_SIZE), b + SLOB_UNITS(PAGE_SIZE));
121115 set_slob_page_free(sp, slob_list);
121116 @@ -337,7 +342,7 @@ static void *slob_alloc(size_t size, gfp_t gfp, int align, int node)
121117 /*
121118 * slob_free: entry point into the slob allocator.
121119 */
121120 -static void slob_free(void *block, int size)
121121 +static void slob_free(struct kmem_cache *c, void *block, int size)
121122 {
121123 struct page *sp;
121124 slob_t *prev, *next, *b = (slob_t *)block;
121125 @@ -359,12 +364,15 @@ static void slob_free(void *block, int size)
121126 if (slob_page_free(sp))
121127 clear_slob_page_free(sp);
121128 spin_unlock_irqrestore(&slob_lock, flags);
121129 - __ClearPageSlab(sp);
121130 - page_mapcount_reset(sp);
121131 - slob_free_pages(b, 0);
121132 + slob_free_pages(sp, 0);
121133 return;
121134 }
121135
121136 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
121137 + if (pax_sanitize_slab && !(c && (c->flags & SLAB_NO_SANITIZE)))
121138 + memset(block, PAX_MEMORY_SANITIZE_VALUE, size);
121139 +#endif
121140 +
121141 if (!slob_page_free(sp)) {
121142 /* This slob page is about to become partially free. Easy! */
121143 sp->units = units;
121144 @@ -424,11 +432,10 @@ out:
121145 */
121146
121147 static __always_inline void *
121148 -__do_kmalloc_node(size_t size, gfp_t gfp, int node, unsigned long caller)
121149 +__do_kmalloc_node_align(size_t size, gfp_t gfp, int node, unsigned long caller, int align)
121150 {
121151 - unsigned int *m;
121152 - int align = max_t(size_t, ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
121153 - void *ret;
121154 + slob_t *m;
121155 + void *ret = NULL;
121156
121157 gfp &= gfp_allowed_mask;
121158
121159 @@ -442,27 +449,45 @@ __do_kmalloc_node(size_t size, gfp_t gfp, int node, unsigned long caller)
121160
121161 if (!m)
121162 return NULL;
121163 - *m = size;
121164 + BUILD_BUG_ON(ARCH_KMALLOC_MINALIGN < 2 * SLOB_UNIT);
121165 + BUILD_BUG_ON(ARCH_SLAB_MINALIGN < 2 * SLOB_UNIT);
121166 + m[0].units = size;
121167 + m[1].units = align;
121168 ret = (void *)m + align;
121169
121170 trace_kmalloc_node(caller, ret,
121171 size, size + align, gfp, node);
121172 } else {
121173 unsigned int order = get_order(size);
121174 + struct page *page;
121175
121176 if (likely(order))
121177 gfp |= __GFP_COMP;
121178 - ret = slob_new_pages(gfp, order, node);
121179 + page = slob_new_pages(gfp, order, node);
121180 + if (page) {
121181 + ret = page_address(page);
121182 + page->private = size;
121183 + }
121184
121185 trace_kmalloc_node(caller, ret,
121186 size, PAGE_SIZE << order, gfp, node);
121187 }
121188
121189 - kmemleak_alloc(ret, size, 1, gfp);
121190 return ret;
121191 }
121192
121193 -void *__kmalloc(size_t size, gfp_t gfp)
121194 +static __always_inline void *
121195 +__do_kmalloc_node(size_t size, gfp_t gfp, int node, unsigned long caller)
121196 +{
121197 + int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
121198 + void *ret = __do_kmalloc_node_align(size, gfp, node, caller, align);
121199 +
121200 + if (!ZERO_OR_NULL_PTR(ret))
121201 + kmemleak_alloc(ret, size, 1, gfp);
121202 + return ret;
121203 +}
121204 +
121205 +void * __size_overflow(1) __kmalloc(size_t size, gfp_t gfp)
121206 {
121207 return __do_kmalloc_node(size, gfp, NUMA_NO_NODE, _RET_IP_);
121208 }
121209 @@ -491,34 +516,123 @@ void kfree(const void *block)
121210 return;
121211 kmemleak_free(block);
121212
121213 + VM_BUG_ON(!virt_addr_valid(block));
121214 sp = virt_to_page(block);
121215 - if (PageSlab(sp)) {
121216 + VM_BUG_ON(!PageSlab(sp));
121217 + if (!sp->private) {
121218 int align = max_t(size_t, ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
121219 - unsigned int *m = (unsigned int *)(block - align);
121220 - slob_free(m, *m + align);
121221 - } else
121222 + slob_t *m = (slob_t *)(block - align);
121223 + slob_free(NULL, m, m[0].units + align);
121224 + } else {
121225 + __ClearPageSlab(sp);
121226 + page_mapcount_reset(sp);
121227 + sp->private = 0;
121228 __free_pages(sp, compound_order(sp));
121229 + }
121230 }
121231 EXPORT_SYMBOL(kfree);
121232
121233 +bool is_usercopy_object(const void *ptr)
121234 +{
121235 + if (!slab_is_available())
121236 + return false;
121237 +
121238 + if (is_vmalloc_addr(ptr)
121239 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
121240 + && !object_starts_on_stack(ptr)
121241 +#endif
121242 + ) {
121243 + struct vm_struct *vm = find_vm_area(ptr);
121244 + if (vm && (vm->flags & VM_USERCOPY))
121245 + return true;
121246 + return false;
121247 + }
121248 +
121249 + // PAX: TODO
121250 +
121251 + return false;
121252 +}
121253 +
121254 +#ifdef CONFIG_PAX_USERCOPY
121255 +const char *check_heap_object(const void *ptr, unsigned long n)
121256 +{
121257 + struct page *page;
121258 + const slob_t *free;
121259 + const void *base;
121260 + unsigned long flags;
121261 +
121262 + if (ZERO_OR_NULL_PTR(ptr))
121263 + return "<null>";
121264 +
121265 + if (!virt_addr_valid(ptr))
121266 + return NULL;
121267 +
121268 + page = virt_to_head_page(ptr);
121269 + if (!PageSlab(page))
121270 + return NULL;
121271 +
121272 + if (page->private) {
121273 + base = page;
121274 + if (base <= ptr && n <= page->private - (ptr - base))
121275 + return NULL;
121276 + return "<slob>";
121277 + }
121278 +
121279 + /* some tricky double walking to find the chunk */
121280 + spin_lock_irqsave(&slob_lock, flags);
121281 + base = (void *)((unsigned long)ptr & PAGE_MASK);
121282 + free = page->freelist;
121283 +
121284 + while (!slob_last(free) && (void *)free <= ptr) {
121285 + base = free + slob_units(free);
121286 + free = slob_next(free);
121287 + }
121288 +
121289 + while (base < (void *)free) {
121290 + slobidx_t m = ((slob_t *)base)[0].units, align = ((slob_t *)base)[1].units;
121291 + int size = SLOB_UNIT * SLOB_UNITS(m + align);
121292 + int offset;
121293 +
121294 + if (ptr < base + align)
121295 + break;
121296 +
121297 + offset = ptr - base - align;
121298 + if (offset >= m) {
121299 + base += size;
121300 + continue;
121301 + }
121302 +
121303 + if (n > m - offset)
121304 + break;
121305 +
121306 + spin_unlock_irqrestore(&slob_lock, flags);
121307 + return NULL;
121308 + }
121309 +
121310 + spin_unlock_irqrestore(&slob_lock, flags);
121311 + return "<slob>";
121312 +}
121313 +#endif
121314 +
121315 /* can't use ksize for kmem_cache_alloc memory, only kmalloc */
121316 size_t ksize(const void *block)
121317 {
121318 struct page *sp;
121319 int align;
121320 - unsigned int *m;
121321 + slob_t *m;
121322
121323 BUG_ON(!block);
121324 if (unlikely(block == ZERO_SIZE_PTR))
121325 return 0;
121326
121327 sp = virt_to_page(block);
121328 - if (unlikely(!PageSlab(sp)))
121329 - return PAGE_SIZE << compound_order(sp);
121330 + VM_BUG_ON(!PageSlab(sp));
121331 + if (sp->private)
121332 + return sp->private;
121333
121334 align = max_t(size_t, ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
121335 - m = (unsigned int *)(block - align);
121336 - return SLOB_UNITS(*m) * SLOB_UNIT;
121337 + m = (slob_t *)(block - align);
121338 + return SLOB_UNITS(m[0].units) * SLOB_UNIT;
121339 }
121340 EXPORT_SYMBOL(ksize);
121341
121342 @@ -534,23 +648,33 @@ int __kmem_cache_create(struct kmem_cache *c, unsigned long flags)
121343
121344 static void *slob_alloc_node(struct kmem_cache *c, gfp_t flags, int node)
121345 {
121346 - void *b;
121347 + void *b = NULL;
121348
121349 flags &= gfp_allowed_mask;
121350
121351 lockdep_trace_alloc(flags);
121352
121353 +#ifdef CONFIG_PAX_USERCOPY_SLABS
121354 + b = __do_kmalloc_node_align(c->size, flags, node, _RET_IP_, c->align);
121355 +#else
121356 if (c->size < PAGE_SIZE) {
121357 b = slob_alloc(c->size, flags, c->align, node);
121358 trace_kmem_cache_alloc_node(_RET_IP_, b, c->object_size,
121359 SLOB_UNITS(c->size) * SLOB_UNIT,
121360 flags, node);
121361 } else {
121362 - b = slob_new_pages(flags, get_order(c->size), node);
121363 + struct page *sp;
121364 +
121365 + sp = slob_new_pages(flags, get_order(c->size), node);
121366 + if (sp) {
121367 + b = page_address(sp);
121368 + sp->private = c->size;
121369 + }
121370 trace_kmem_cache_alloc_node(_RET_IP_, b, c->object_size,
121371 PAGE_SIZE << get_order(c->size),
121372 flags, node);
121373 }
121374 +#endif
121375
121376 if (b && c->ctor)
121377 c->ctor(b);
121378 @@ -566,7 +690,7 @@ void *kmem_cache_alloc(struct kmem_cache *cachep, gfp_t flags)
121379 EXPORT_SYMBOL(kmem_cache_alloc);
121380
121381 #ifdef CONFIG_NUMA
121382 -void *__kmalloc_node(size_t size, gfp_t gfp, int node)
121383 +void * __size_overflow(1) __kmalloc_node(size_t size, gfp_t gfp, int node)
121384 {
121385 return __do_kmalloc_node(size, gfp, node, _RET_IP_);
121386 }
121387 @@ -579,12 +703,16 @@ void *kmem_cache_alloc_node(struct kmem_cache *cachep, gfp_t gfp, int node)
121388 EXPORT_SYMBOL(kmem_cache_alloc_node);
121389 #endif
121390
121391 -static void __kmem_cache_free(void *b, int size)
121392 +static void __kmem_cache_free(struct kmem_cache *c, void *b, int size)
121393 {
121394 - if (size < PAGE_SIZE)
121395 - slob_free(b, size);
121396 + struct page *sp;
121397 +
121398 + sp = virt_to_page(b);
121399 + BUG_ON(!PageSlab(sp));
121400 + if (!sp->private)
121401 + slob_free(c, b, size);
121402 else
121403 - slob_free_pages(b, get_order(size));
121404 + slob_free_pages(sp, get_order(size));
121405 }
121406
121407 static void kmem_rcu_free(struct rcu_head *head)
121408 @@ -592,22 +720,36 @@ static void kmem_rcu_free(struct rcu_head *head)
121409 struct slob_rcu *slob_rcu = (struct slob_rcu *)head;
121410 void *b = (void *)slob_rcu - (slob_rcu->size - sizeof(struct slob_rcu));
121411
121412 - __kmem_cache_free(b, slob_rcu->size);
121413 + __kmem_cache_free(NULL, b, slob_rcu->size);
121414 }
121415
121416 void kmem_cache_free(struct kmem_cache *c, void *b)
121417 {
121418 + int size = c->size;
121419 +
121420 +#ifdef CONFIG_PAX_USERCOPY_SLABS
121421 + if (size + c->align < PAGE_SIZE) {
121422 + size += c->align;
121423 + b -= c->align;
121424 + }
121425 +#endif
121426 +
121427 kmemleak_free_recursive(b, c->flags);
121428 if (unlikely(c->flags & SLAB_DESTROY_BY_RCU)) {
121429 struct slob_rcu *slob_rcu;
121430 - slob_rcu = b + (c->size - sizeof(struct slob_rcu));
121431 - slob_rcu->size = c->size;
121432 + slob_rcu = b + (size - sizeof(struct slob_rcu));
121433 + slob_rcu->size = size;
121434 call_rcu(&slob_rcu->head, kmem_rcu_free);
121435 } else {
121436 - __kmem_cache_free(b, c->size);
121437 + __kmem_cache_free(c, b, size);
121438 }
121439
121440 +#ifdef CONFIG_PAX_USERCOPY_SLABS
121441 + trace_kfree(_RET_IP_, b);
121442 +#else
121443 trace_kmem_cache_free(_RET_IP_, b);
121444 +#endif
121445 +
121446 }
121447 EXPORT_SYMBOL(kmem_cache_free);
121448
121449 diff --git a/mm/slub.c b/mm/slub.c
121450 index 4699751..bb1f0cf 100644
121451 --- a/mm/slub.c
121452 +++ b/mm/slub.c
121453 @@ -34,6 +34,7 @@
121454 #include <linux/stacktrace.h>
121455 #include <linux/prefetch.h>
121456 #include <linux/memcontrol.h>
121457 +#include <linux/vmalloc.h>
121458
121459 #include <trace/events/kmem.h>
121460
121461 @@ -198,7 +199,7 @@ struct track {
121462
121463 enum track_item { TRACK_ALLOC, TRACK_FREE };
121464
121465 -#ifdef CONFIG_SYSFS
121466 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
121467 static int sysfs_slab_add(struct kmem_cache *);
121468 static int sysfs_slab_alias(struct kmem_cache *, const char *);
121469 static void memcg_propagate_slab_attrs(struct kmem_cache *s);
121470 @@ -558,7 +559,7 @@ static void print_track(const char *s, struct track *t)
121471 if (!t->addr)
121472 return;
121473
121474 - pr_err("INFO: %s in %pS age=%lu cpu=%u pid=%d\n",
121475 + pr_err("INFO: %s in %pA age=%lu cpu=%u pid=%d\n",
121476 s, (void *)t->addr, jiffies - t->when, t->cpu, t->pid);
121477 #ifdef CONFIG_STACKTRACE
121478 {
121479 @@ -2771,6 +2772,21 @@ static __always_inline void slab_free(struct kmem_cache *s, struct page *page,
121480
121481 slab_free_freelist_hook(s, head, tail);
121482
121483 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
121484 + if (!(s->flags & SLAB_NO_SANITIZE)) {
121485 + void *x = head;
121486 +
121487 + while (1) {
121488 + memset(x, PAX_MEMORY_SANITIZE_VALUE, s->object_size);
121489 + if (s->ctor)
121490 + s->ctor(x);
121491 + if (x == tail_obj)
121492 + break;
121493 + x = get_freepointer(s, x);
121494 + }
121495 + }
121496 +#endif
121497 +
121498 redo:
121499 /*
121500 * Determine the currently cpus per cpu slab.
121501 @@ -3262,6 +3278,9 @@ static int calculate_sizes(struct kmem_cache *s, int forced_order)
121502 s->inuse = size;
121503
121504 if (((flags & (SLAB_DESTROY_BY_RCU | SLAB_POISON)) ||
121505 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
121506 + (!(flags & SLAB_NO_SANITIZE)) ||
121507 +#endif
121508 s->ctor)) {
121509 /*
121510 * Relocate free pointer after the object if it is not
121511 @@ -3516,7 +3535,7 @@ static int __init setup_slub_min_objects(char *str)
121512
121513 __setup("slub_min_objects=", setup_slub_min_objects);
121514
121515 -void *__kmalloc(size_t size, gfp_t flags)
121516 +void * __size_overflow(1) __kmalloc(size_t size, gfp_t flags)
121517 {
121518 struct kmem_cache *s;
121519 void *ret;
121520 @@ -3554,7 +3573,7 @@ static void *kmalloc_large_node(size_t size, gfp_t flags, int node)
121521 return ptr;
121522 }
121523
121524 -void *__kmalloc_node(size_t size, gfp_t flags, int node)
121525 +void * __size_overflow(1) __kmalloc_node(size_t size, gfp_t flags, int node)
121526 {
121527 struct kmem_cache *s;
121528 void *ret;
121529 @@ -3602,6 +3621,70 @@ static size_t __ksize(const void *object)
121530 return slab_ksize(page->slab_cache);
121531 }
121532
121533 +bool is_usercopy_object(const void *ptr)
121534 +{
121535 + struct page *page;
121536 + struct kmem_cache *s;
121537 +
121538 + if (ZERO_OR_NULL_PTR(ptr))
121539 + return false;
121540 +
121541 + if (!slab_is_available())
121542 + return false;
121543 +
121544 + if (is_vmalloc_addr(ptr)
121545 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
121546 + && !object_starts_on_stack(ptr)
121547 +#endif
121548 + ) {
121549 + struct vm_struct *vm = find_vm_area(ptr);
121550 + if (vm && (vm->flags & VM_USERCOPY))
121551 + return true;
121552 + return false;
121553 + }
121554 +
121555 + if (!virt_addr_valid(ptr))
121556 + return false;
121557 +
121558 + page = virt_to_head_page(ptr);
121559 +
121560 + if (!PageSlab(page))
121561 + return false;
121562 +
121563 + s = page->slab_cache;
121564 + return s->flags & SLAB_USERCOPY;
121565 +}
121566 +
121567 +#ifdef CONFIG_PAX_USERCOPY
121568 +const char *check_heap_object(const void *ptr, unsigned long n)
121569 +{
121570 + struct page *page;
121571 + struct kmem_cache *s;
121572 + unsigned long offset;
121573 +
121574 + if (ZERO_OR_NULL_PTR(ptr))
121575 + return "<null>";
121576 +
121577 + if (!virt_addr_valid(ptr))
121578 + return NULL;
121579 +
121580 + page = virt_to_head_page(ptr);
121581 +
121582 + if (!PageSlab(page))
121583 + return NULL;
121584 +
121585 + s = page->slab_cache;
121586 + if (!(s->flags & SLAB_USERCOPY))
121587 + return s->name;
121588 +
121589 + offset = (ptr - page_address(page)) % s->size;
121590 + if (offset <= s->object_size && n <= s->object_size - offset)
121591 + return NULL;
121592 +
121593 + return s->name;
121594 +}
121595 +#endif
121596 +
121597 size_t ksize(const void *object)
121598 {
121599 size_t size = __ksize(object);
121600 @@ -3622,6 +3705,7 @@ void kfree(const void *x)
121601 if (unlikely(ZERO_OR_NULL_PTR(x)))
121602 return;
121603
121604 + VM_BUG_ON(!virt_addr_valid(x));
121605 page = virt_to_head_page(x);
121606 if (unlikely(!PageSlab(page))) {
121607 BUG_ON(!PageCompound(page));
121608 @@ -3939,7 +4023,7 @@ __kmem_cache_alias(const char *name, size_t size, size_t align,
121609
121610 s = find_mergeable(size, align, flags, name, ctor);
121611 if (s) {
121612 - s->refcount++;
121613 + atomic_inc(&s->refcount);
121614
121615 /*
121616 * Adjust the object sizes so that we clear
121617 @@ -3955,7 +4039,7 @@ __kmem_cache_alias(const char *name, size_t size, size_t align,
121618 }
121619
121620 if (sysfs_slab_alias(s, name)) {
121621 - s->refcount--;
121622 + atomic_dec(&s->refcount);
121623 s = NULL;
121624 }
121625 }
121626 @@ -4072,7 +4156,7 @@ void *__kmalloc_node_track_caller(size_t size, gfp_t gfpflags,
121627 }
121628 #endif
121629
121630 -#ifdef CONFIG_SYSFS
121631 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
121632 static int count_inuse(struct page *page)
121633 {
121634 return page->inuse;
121635 @@ -4353,7 +4437,11 @@ static int list_locations(struct kmem_cache *s, char *buf,
121636 len += sprintf(buf + len, "%7ld ", l->count);
121637
121638 if (l->addr)
121639 +#ifdef CONFIG_GRKERNSEC_HIDESYM
121640 + len += sprintf(buf + len, "%pS", NULL);
121641 +#else
121642 len += sprintf(buf + len, "%pS", (void *)l->addr);
121643 +#endif
121644 else
121645 len += sprintf(buf + len, "<not-available>");
121646
121647 @@ -4451,12 +4539,12 @@ static void __init resiliency_test(void)
121648 validate_slab_cache(kmalloc_caches[9]);
121649 }
121650 #else
121651 -#ifdef CONFIG_SYSFS
121652 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
121653 static void resiliency_test(void) {};
121654 #endif
121655 #endif
121656
121657 -#ifdef CONFIG_SYSFS
121658 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
121659 enum slab_stat_type {
121660 SL_ALL, /* All slabs */
121661 SL_PARTIAL, /* Only partially allocated slabs */
121662 @@ -4693,13 +4781,17 @@ static ssize_t ctor_show(struct kmem_cache *s, char *buf)
121663 {
121664 if (!s->ctor)
121665 return 0;
121666 +#ifdef CONFIG_GRKERNSEC_HIDESYM
121667 + return sprintf(buf, "%pS\n", NULL);
121668 +#else
121669 return sprintf(buf, "%pS\n", s->ctor);
121670 +#endif
121671 }
121672 SLAB_ATTR_RO(ctor);
121673
121674 static ssize_t aliases_show(struct kmem_cache *s, char *buf)
121675 {
121676 - return sprintf(buf, "%d\n", s->refcount < 0 ? 0 : s->refcount - 1);
121677 + return sprintf(buf, "%d\n", atomic_read(&s->refcount) < 0 ? 0 : atomic_read(&s->refcount) - 1);
121678 }
121679 SLAB_ATTR_RO(aliases);
121680
121681 @@ -4787,6 +4879,22 @@ static ssize_t cache_dma_show(struct kmem_cache *s, char *buf)
121682 SLAB_ATTR_RO(cache_dma);
121683 #endif
121684
121685 +#ifdef CONFIG_PAX_USERCOPY_SLABS
121686 +static ssize_t usercopy_show(struct kmem_cache *s, char *buf)
121687 +{
121688 + return sprintf(buf, "%d\n", !!(s->flags & SLAB_USERCOPY));
121689 +}
121690 +SLAB_ATTR_RO(usercopy);
121691 +#endif
121692 +
121693 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
121694 +static ssize_t sanitize_show(struct kmem_cache *s, char *buf)
121695 +{
121696 + return sprintf(buf, "%d\n", !(s->flags & SLAB_NO_SANITIZE));
121697 +}
121698 +SLAB_ATTR_RO(sanitize);
121699 +#endif
121700 +
121701 static ssize_t destroy_by_rcu_show(struct kmem_cache *s, char *buf)
121702 {
121703 return sprintf(buf, "%d\n", !!(s->flags & SLAB_DESTROY_BY_RCU));
121704 @@ -4842,7 +4950,7 @@ static ssize_t trace_store(struct kmem_cache *s, const char *buf,
121705 * as well as cause other issues like converting a mergeable
121706 * cache into an umergeable one.
121707 */
121708 - if (s->refcount > 1)
121709 + if (atomic_read(&s->refcount) > 1)
121710 return -EINVAL;
121711
121712 s->flags &= ~SLAB_TRACE;
121713 @@ -4962,7 +5070,7 @@ static ssize_t failslab_show(struct kmem_cache *s, char *buf)
121714 static ssize_t failslab_store(struct kmem_cache *s, const char *buf,
121715 size_t length)
121716 {
121717 - if (s->refcount > 1)
121718 + if (atomic_read(&s->refcount) > 1)
121719 return -EINVAL;
121720
121721 s->flags &= ~SLAB_FAILSLAB;
121722 @@ -5094,7 +5202,7 @@ STAT_ATTR(CPU_PARTIAL_NODE, cpu_partial_node);
121723 STAT_ATTR(CPU_PARTIAL_DRAIN, cpu_partial_drain);
121724 #endif
121725
121726 -static struct attribute *slab_attrs[] = {
121727 +static struct attribute *slab_attrs[] __read_only = {
121728 &slab_size_attr.attr,
121729 &object_size_attr.attr,
121730 &objs_per_slab_attr.attr,
121731 @@ -5129,6 +5237,12 @@ static struct attribute *slab_attrs[] = {
121732 #ifdef CONFIG_ZONE_DMA
121733 &cache_dma_attr.attr,
121734 #endif
121735 +#ifdef CONFIG_PAX_USERCOPY_SLABS
121736 + &usercopy_attr.attr,
121737 +#endif
121738 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
121739 + &sanitize_attr.attr,
121740 +#endif
121741 #ifdef CONFIG_NUMA
121742 &remote_node_defrag_ratio_attr.attr,
121743 #endif
121744 @@ -5370,6 +5484,7 @@ static char *create_unique_id(struct kmem_cache *s)
121745 return name;
121746 }
121747
121748 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
121749 static int sysfs_slab_add(struct kmem_cache *s)
121750 {
121751 int err;
121752 @@ -5441,6 +5556,7 @@ void sysfs_slab_remove(struct kmem_cache *s)
121753 kobject_del(&s->kobj);
121754 kobject_put(&s->kobj);
121755 }
121756 +#endif
121757
121758 /*
121759 * Need to buffer aliases during bootup until sysfs becomes
121760 @@ -5454,6 +5570,7 @@ struct saved_alias {
121761
121762 static struct saved_alias *alias_list;
121763
121764 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
121765 static int sysfs_slab_alias(struct kmem_cache *s, const char *name)
121766 {
121767 struct saved_alias *al;
121768 @@ -5476,6 +5593,7 @@ static int sysfs_slab_alias(struct kmem_cache *s, const char *name)
121769 alias_list = al;
121770 return 0;
121771 }
121772 +#endif
121773
121774 static int __init slab_sysfs_init(void)
121775 {
121776 diff --git a/mm/sparse-vmemmap.c b/mm/sparse-vmemmap.c
121777 index 4cba9c2..b4f9fcc 100644
121778 --- a/mm/sparse-vmemmap.c
121779 +++ b/mm/sparse-vmemmap.c
121780 @@ -131,7 +131,7 @@ pud_t * __meminit vmemmap_pud_populate(pgd_t *pgd, unsigned long addr, int node)
121781 void *p = vmemmap_alloc_block(PAGE_SIZE, node);
121782 if (!p)
121783 return NULL;
121784 - pud_populate(&init_mm, pud, p);
121785 + pud_populate_kernel(&init_mm, pud, p);
121786 }
121787 return pud;
121788 }
121789 @@ -143,7 +143,7 @@ pgd_t * __meminit vmemmap_pgd_populate(unsigned long addr, int node)
121790 void *p = vmemmap_alloc_block(PAGE_SIZE, node);
121791 if (!p)
121792 return NULL;
121793 - pgd_populate(&init_mm, pgd, p);
121794 + pgd_populate_kernel(&init_mm, pgd, p);
121795 }
121796 return pgd;
121797 }
121798 diff --git a/mm/sparse.c b/mm/sparse.c
121799 index d1b48b6..6e8590e 100644
121800 --- a/mm/sparse.c
121801 +++ b/mm/sparse.c
121802 @@ -750,7 +750,7 @@ static void clear_hwpoisoned_pages(struct page *memmap, int nr_pages)
121803
121804 for (i = 0; i < PAGES_PER_SECTION; i++) {
121805 if (PageHWPoison(&memmap[i])) {
121806 - atomic_long_sub(1, &num_poisoned_pages);
121807 + atomic_long_sub_unchecked(1, &num_poisoned_pages);
121808 ClearPageHWPoison(&memmap[i]);
121809 }
121810 }
121811 diff --git a/mm/swap.c b/mm/swap.c
121812 index 39395fb..addaf53 100644
121813 --- a/mm/swap.c
121814 +++ b/mm/swap.c
121815 @@ -86,6 +86,8 @@ static void __put_compound_page(struct page *page)
121816 if (!PageHuge(page))
121817 __page_cache_release(page);
121818 dtor = get_compound_page_dtor(page);
121819 + if (!PageHuge(page))
121820 + BUG_ON(dtor != free_compound_page);
121821 (*dtor)(page);
121822 }
121823
121824 diff --git a/mm/swapfile.c b/mm/swapfile.c
121825 index 5887731..e23a30e 100644
121826 --- a/mm/swapfile.c
121827 +++ b/mm/swapfile.c
121828 @@ -84,7 +84,7 @@ static DEFINE_MUTEX(swapon_mutex);
121829
121830 static DECLARE_WAIT_QUEUE_HEAD(proc_poll_wait);
121831 /* Activity counter to indicate that a swapon or swapoff has occurred */
121832 -static atomic_t proc_poll_event = ATOMIC_INIT(0);
121833 +static atomic_unchecked_t proc_poll_event = ATOMIC_INIT(0);
121834
121835 static inline unsigned char swap_count(unsigned char ent)
121836 {
121837 @@ -1986,7 +1986,7 @@ SYSCALL_DEFINE1(swapoff, const char __user *, specialfile)
121838 spin_unlock(&swap_lock);
121839
121840 err = 0;
121841 - atomic_inc(&proc_poll_event);
121842 + atomic_inc_unchecked(&proc_poll_event);
121843 wake_up_interruptible(&proc_poll_wait);
121844
121845 out_dput:
121846 @@ -2003,8 +2003,8 @@ static unsigned swaps_poll(struct file *file, poll_table *wait)
121847
121848 poll_wait(file, &proc_poll_wait, wait);
121849
121850 - if (seq->poll_event != atomic_read(&proc_poll_event)) {
121851 - seq->poll_event = atomic_read(&proc_poll_event);
121852 + if (seq->poll_event != atomic_read_unchecked(&proc_poll_event)) {
121853 + seq->poll_event = atomic_read_unchecked(&proc_poll_event);
121854 return POLLIN | POLLRDNORM | POLLERR | POLLPRI;
121855 }
121856
121857 @@ -2102,7 +2102,7 @@ static int swaps_open(struct inode *inode, struct file *file)
121858 return ret;
121859
121860 seq = file->private_data;
121861 - seq->poll_event = atomic_read(&proc_poll_event);
121862 + seq->poll_event = atomic_read_unchecked(&proc_poll_event);
121863 return 0;
121864 }
121865
121866 @@ -2551,7 +2551,7 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags)
121867 (frontswap_map) ? "FS" : "");
121868
121869 mutex_unlock(&swapon_mutex);
121870 - atomic_inc(&proc_poll_event);
121871 + atomic_inc_unchecked(&proc_poll_event);
121872 wake_up_interruptible(&proc_poll_wait);
121873
121874 if (S_ISREG(inode->i_mode))
121875 diff --git a/mm/util.c b/mm/util.c
121876 index 9af1c12..d58f645 100644
121877 --- a/mm/util.c
121878 +++ b/mm/util.c
121879 @@ -233,6 +233,12 @@ struct task_struct *task_of_stack(struct task_struct *task,
121880 void arch_pick_mmap_layout(struct mm_struct *mm)
121881 {
121882 mm->mmap_base = TASK_UNMAPPED_BASE;
121883 +
121884 +#ifdef CONFIG_PAX_RANDMMAP
121885 + if (mm->pax_flags & MF_PAX_RANDMMAP)
121886 + mm->mmap_base += mm->delta_mmap;
121887 +#endif
121888 +
121889 mm->get_unmapped_area = arch_get_unmapped_area;
121890 }
121891 #endif
121892 @@ -434,6 +440,9 @@ int get_cmdline(struct task_struct *task, char *buffer, int buflen)
121893 if (!mm->arg_end)
121894 goto out_mm; /* Shh! No looking before we're done */
121895
121896 + if (gr_acl_handle_procpidmem(task))
121897 + goto out_mm;
121898 +
121899 len = mm->arg_end - mm->arg_start;
121900
121901 if (len > buflen)
121902 diff --git a/mm/vmalloc.c b/mm/vmalloc.c
121903 index 8e3c9c5..a4b63af 100644
121904 --- a/mm/vmalloc.c
121905 +++ b/mm/vmalloc.c
121906 @@ -42,20 +42,65 @@ struct vfree_deferred {
121907 struct work_struct wq;
121908 };
121909 static DEFINE_PER_CPU(struct vfree_deferred, vfree_deferred);
121910 +static DEFINE_PER_CPU(struct vfree_deferred, vunmap_deferred);
121911 +
121912 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
121913 +struct stack_deferred_llist {
121914 + struct llist_head list;
121915 + void *stack;
121916 + void *lowmem_stack;
121917 +};
121918 +
121919 +struct stack_deferred {
121920 + struct stack_deferred_llist list;
121921 + struct work_struct wq;
121922 +};
121923 +
121924 +static DEFINE_PER_CPU(struct stack_deferred, stack_deferred);
121925 +#endif
121926
121927 static void __vunmap(const void *, int);
121928
121929 -static void free_work(struct work_struct *w)
121930 +static void vfree_work(struct work_struct *w)
121931 {
121932 struct vfree_deferred *p = container_of(w, struct vfree_deferred, wq);
121933 struct llist_node *llnode = llist_del_all(&p->list);
121934 while (llnode) {
121935 - void *p = llnode;
121936 + void *x = llnode;
121937 llnode = llist_next(llnode);
121938 - __vunmap(p, 1);
121939 + __vunmap(x, 1);
121940 }
121941 }
121942
121943 +static void vunmap_work(struct work_struct *w)
121944 +{
121945 + struct vfree_deferred *p = container_of(w, struct vfree_deferred, wq);
121946 + struct llist_node *llnode = llist_del_all(&p->list);
121947 + while (llnode) {
121948 + void *x = llnode;
121949 + llnode = llist_next(llnode);
121950 + __vunmap(x, 0);
121951 + }
121952 +}
121953 +
121954 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
121955 +static void unmap_work(struct work_struct *w)
121956 +{
121957 + struct stack_deferred *p = container_of(w, struct stack_deferred, wq);
121958 + struct llist_node *llnode = llist_del_all(&p->list.list);
121959 + while (llnode) {
121960 + struct stack_deferred_llist *x =
121961 + llist_entry((struct llist_head *)llnode,
121962 + struct stack_deferred_llist, list);
121963 + void *stack = ACCESS_ONCE(x->stack);
121964 + void *lowmem_stack = ACCESS_ONCE(x->lowmem_stack);
121965 + llnode = llist_next(llnode);
121966 + __vunmap(stack, 0);
121967 + free_kmem_pages((unsigned long)lowmem_stack, THREAD_SIZE_ORDER);
121968 + }
121969 +}
121970 +#endif
121971 +
121972 /*** Page table manipulation functions ***/
121973
121974 static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end)
121975 @@ -63,10 +108,23 @@ static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end)
121976 pte_t *pte;
121977
121978 pte = pte_offset_kernel(pmd, addr);
121979 + pax_open_kernel();
121980 do {
121981 - pte_t ptent = ptep_get_and_clear(&init_mm, addr, pte);
121982 - WARN_ON(!pte_none(ptent) && !pte_present(ptent));
121983 +
121984 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
121985 + if ((unsigned long)MODULES_EXEC_VADDR <= addr && addr < (unsigned long)MODULES_EXEC_END) {
121986 + BUG_ON(!pte_exec(*pte));
121987 + set_pte_at(&init_mm, addr, pte, pfn_pte(__pa(addr) >> PAGE_SHIFT, PAGE_KERNEL_EXEC));
121988 + continue;
121989 + }
121990 +#endif
121991 +
121992 + {
121993 + pte_t ptent = ptep_get_and_clear(&init_mm, addr, pte);
121994 + WARN_ON(!pte_none(ptent) && !pte_present(ptent));
121995 + }
121996 } while (pte++, addr += PAGE_SIZE, addr != end);
121997 + pax_close_kernel();
121998 }
121999
122000 static void vunmap_pmd_range(pud_t *pud, unsigned long addr, unsigned long end)
122001 @@ -129,16 +187,29 @@ static int vmap_pte_range(pmd_t *pmd, unsigned long addr,
122002 pte = pte_alloc_kernel(pmd, addr);
122003 if (!pte)
122004 return -ENOMEM;
122005 +
122006 + pax_open_kernel();
122007 do {
122008 struct page *page = pages[*nr];
122009
122010 - if (WARN_ON(!pte_none(*pte)))
122011 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
122012 + if (pgprot_val(prot) & _PAGE_NX)
122013 +#endif
122014 +
122015 + if (!pte_none(*pte)) {
122016 + pax_close_kernel();
122017 + WARN_ON(1);
122018 return -EBUSY;
122019 - if (WARN_ON(!page))
122020 + }
122021 + if (!page) {
122022 + pax_close_kernel();
122023 + WARN_ON(1);
122024 return -ENOMEM;
122025 + }
122026 set_pte_at(&init_mm, addr, pte, mk_pte(page, prot));
122027 (*nr)++;
122028 } while (pte++, addr += PAGE_SIZE, addr != end);
122029 + pax_close_kernel();
122030 return 0;
122031 }
122032
122033 @@ -148,7 +219,7 @@ static int vmap_pmd_range(pud_t *pud, unsigned long addr,
122034 pmd_t *pmd;
122035 unsigned long next;
122036
122037 - pmd = pmd_alloc(&init_mm, pud, addr);
122038 + pmd = pmd_alloc_kernel(&init_mm, pud, addr);
122039 if (!pmd)
122040 return -ENOMEM;
122041 do {
122042 @@ -165,7 +236,7 @@ static int vmap_pud_range(pgd_t *pgd, unsigned long addr,
122043 pud_t *pud;
122044 unsigned long next;
122045
122046 - pud = pud_alloc(&init_mm, pgd, addr);
122047 + pud = pud_alloc_kernel(&init_mm, pgd, addr);
122048 if (!pud)
122049 return -ENOMEM;
122050 do {
122051 @@ -225,6 +296,12 @@ int is_vmalloc_or_module_addr(const void *x)
122052 if (addr >= MODULES_VADDR && addr < MODULES_END)
122053 return 1;
122054 #endif
122055 +
122056 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
122057 + if (x >= (const void *)MODULES_EXEC_VADDR && x < (const void *)MODULES_EXEC_END)
122058 + return 1;
122059 +#endif
122060 +
122061 return is_vmalloc_addr(x);
122062 }
122063
122064 @@ -245,8 +322,14 @@ struct page *vmalloc_to_page(const void *vmalloc_addr)
122065
122066 if (!pgd_none(*pgd)) {
122067 pud_t *pud = pud_offset(pgd, addr);
122068 +#ifdef CONFIG_X86
122069 + if (!pud_large(*pud))
122070 +#endif
122071 if (!pud_none(*pud)) {
122072 pmd_t *pmd = pmd_offset(pud, addr);
122073 +#ifdef CONFIG_X86
122074 + if (!pmd_large(*pmd))
122075 +#endif
122076 if (!pmd_none(*pmd)) {
122077 pte_t *ptep, pte;
122078
122079 @@ -348,7 +431,7 @@ static void purge_vmap_area_lazy(void);
122080 * Allocate a region of KVA of the specified size and alignment, within the
122081 * vstart and vend.
122082 */
122083 -static struct vmap_area *alloc_vmap_area(unsigned long size,
122084 +static struct vmap_area * __size_overflow(1) alloc_vmap_area(unsigned long size,
122085 unsigned long align,
122086 unsigned long vstart, unsigned long vend,
122087 int node, gfp_t gfp_mask)
122088 @@ -1204,13 +1287,27 @@ void __init vmalloc_init(void)
122089 for_each_possible_cpu(i) {
122090 struct vmap_block_queue *vbq;
122091 struct vfree_deferred *p;
122092 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
122093 + struct stack_deferred *p2;
122094 +#endif
122095
122096 vbq = &per_cpu(vmap_block_queue, i);
122097 spin_lock_init(&vbq->lock);
122098 INIT_LIST_HEAD(&vbq->free);
122099 +
122100 p = &per_cpu(vfree_deferred, i);
122101 init_llist_head(&p->list);
122102 - INIT_WORK(&p->wq, free_work);
122103 + INIT_WORK(&p->wq, vfree_work);
122104 +
122105 + p = &per_cpu(vunmap_deferred, i);
122106 + init_llist_head(&p->list);
122107 + INIT_WORK(&p->wq, vunmap_work);
122108 +
122109 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
122110 + p2 = &per_cpu(stack_deferred, i);
122111 + init_llist_head(&p2->list.list);
122112 + INIT_WORK(&p2->wq, unmap_work);
122113 +#endif
122114 }
122115
122116 /* Import existing vmlist entries. */
122117 @@ -1335,6 +1432,16 @@ static struct vm_struct *__get_vm_area_node(unsigned long size,
122118 struct vm_struct *area;
122119
122120 BUG_ON(in_interrupt());
122121 +
122122 +#if defined(CONFIG_X86) && defined(CONFIG_PAX_KERNEXEC)
122123 + if (flags & VM_KERNEXEC) {
122124 + if (start != VMALLOC_START || end != VMALLOC_END)
122125 + return NULL;
122126 + start = (unsigned long)MODULES_EXEC_VADDR;
122127 + end = (unsigned long)MODULES_EXEC_END;
122128 + }
122129 +#endif
122130 +
122131 if (flags & VM_IOREMAP)
122132 align = 1ul << clamp_t(int, fls_long(size),
122133 PAGE_SHIFT, IOREMAP_MAX_ORDER);
122134 @@ -1347,7 +1454,9 @@ static struct vm_struct *__get_vm_area_node(unsigned long size,
122135 if (unlikely(!area))
122136 return NULL;
122137
122138 +#ifndef CONFIG_GRKERNSEC_KSTACKOVERFLOW
122139 if (!(flags & VM_NO_GUARD))
122140 +#endif
122141 size += PAGE_SIZE;
122142
122143 va = alloc_vmap_area(size, align, start, end, node, gfp_mask);
122144 @@ -1532,13 +1641,36 @@ EXPORT_SYMBOL(vfree);
122145 */
122146 void vunmap(const void *addr)
122147 {
122148 - BUG_ON(in_interrupt());
122149 - might_sleep();
122150 - if (addr)
122151 + if (!addr)
122152 + return;
122153 + if (unlikely(in_interrupt())) {
122154 + struct vfree_deferred *p = this_cpu_ptr(&vunmap_deferred);
122155 + if (llist_add((struct llist_node *)addr, &p->list))
122156 + schedule_work(&p->wq);
122157 + } else {
122158 + might_sleep();
122159 __vunmap(addr, 0);
122160 + }
122161 }
122162 EXPORT_SYMBOL(vunmap);
122163
122164 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
122165 +void unmap_process_stacks(struct task_struct *task)
122166 +{
122167 + if (unlikely(in_interrupt())) {
122168 + struct stack_deferred *p = this_cpu_ptr(&stack_deferred);
122169 + struct stack_deferred_llist *list = task->stack;
122170 + list->stack = task->stack;
122171 + list->lowmem_stack = task->lowmem_stack;
122172 + if (llist_add((struct llist_node *)&list->list, &p->list.list))
122173 + schedule_work(&p->wq);
122174 + } else {
122175 + __vunmap(task->stack, 0);
122176 + free_kmem_pages((unsigned long)task->lowmem_stack, THREAD_SIZE_ORDER);
122177 + }
122178 +}
122179 +#endif
122180 +
122181 /**
122182 * vmap - map an array of pages into virtually contiguous space
122183 * @pages: array of page pointers
122184 @@ -1559,6 +1691,11 @@ void *vmap(struct page **pages, unsigned int count,
122185 if (count > totalram_pages)
122186 return NULL;
122187
122188 +#if defined(CONFIG_X86) && defined(CONFIG_PAX_KERNEXEC)
122189 + if (!(pgprot_val(prot) & _PAGE_NX))
122190 + flags |= VM_KERNEXEC;
122191 +#endif
122192 +
122193 area = get_vm_area_caller((count << PAGE_SHIFT), flags,
122194 __builtin_return_address(0));
122195 if (!area)
122196 @@ -1663,6 +1800,14 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
122197 if (!size || (size >> PAGE_SHIFT) > totalram_pages)
122198 goto fail;
122199
122200 +#if defined(CONFIG_X86) && defined(CONFIG_PAX_KERNEXEC)
122201 + if (!(pgprot_val(prot) & _PAGE_NX)) {
122202 + vm_flags |= VM_KERNEXEC;
122203 + start = VMALLOC_START;
122204 + end = VMALLOC_END;
122205 + }
122206 +#endif
122207 +
122208 area = __get_vm_area_node(size, align, VM_ALLOC | VM_UNINITIALIZED |
122209 vm_flags, start, end, node, gfp_mask, caller);
122210 if (!area)
122211 @@ -1716,6 +1861,14 @@ static void *__vmalloc_node(unsigned long size, unsigned long align,
122212 gfp_mask, prot, 0, node, caller);
122213 }
122214
122215 +void *vmalloc_usercopy(unsigned long size)
122216 +{
122217 + return __vmalloc_node_range(size, 1, VMALLOC_START, VMALLOC_END,
122218 + GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL,
122219 + VM_USERCOPY, NUMA_NO_NODE,
122220 + __builtin_return_address(0));
122221 +}
122222 +
122223 void *__vmalloc(unsigned long size, gfp_t gfp_mask, pgprot_t prot)
122224 {
122225 return __vmalloc_node(size, 1, gfp_mask, prot, NUMA_NO_NODE,
122226 @@ -1839,10 +1992,9 @@ EXPORT_SYMBOL(vzalloc_node);
122227 * For tight control over page level allocator and protection flags
122228 * use __vmalloc() instead.
122229 */
122230 -
122231 void *vmalloc_exec(unsigned long size)
122232 {
122233 - return __vmalloc_node(size, 1, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL_EXEC,
122234 + return __vmalloc_node(size, 1, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO, PAGE_KERNEL_EXEC,
122235 NUMA_NO_NODE, __builtin_return_address(0));
122236 }
122237
122238 @@ -2149,6 +2301,8 @@ int remap_vmalloc_range_partial(struct vm_area_struct *vma, unsigned long uaddr,
122239 {
122240 struct vm_struct *area;
122241
122242 + BUG_ON(vma->vm_mirror);
122243 +
122244 size = PAGE_ALIGN(size);
122245
122246 if (!PAGE_ALIGNED(uaddr) || !PAGE_ALIGNED(kaddr))
122247 @@ -2631,7 +2785,11 @@ static int s_show(struct seq_file *m, void *p)
122248 v->addr, v->addr + v->size, v->size);
122249
122250 if (v->caller)
122251 +#ifdef CONFIG_GRKERNSEC_HIDESYM
122252 + seq_printf(m, " %pK", v->caller);
122253 +#else
122254 seq_printf(m, " %pS", v->caller);
122255 +#endif
122256
122257 if (v->nr_pages)
122258 seq_printf(m, " pages=%d", v->nr_pages);
122259 diff --git a/mm/vmstat.c b/mm/vmstat.c
122260 index c54fd29..c37890c 100644
122261 --- a/mm/vmstat.c
122262 +++ b/mm/vmstat.c
122263 @@ -27,6 +27,7 @@
122264 #include <linux/mm_inline.h>
122265 #include <linux/page_ext.h>
122266 #include <linux/page_owner.h>
122267 +#include <linux/grsecurity.h>
122268
122269 #include "internal.h"
122270
122271 @@ -86,7 +87,7 @@ void vm_events_fold_cpu(int cpu)
122272 *
122273 * vm_stat contains the global counters
122274 */
122275 -atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS] __cacheline_aligned_in_smp;
122276 +atomic_long_unchecked_t vm_stat[NR_VM_ZONE_STAT_ITEMS] __cacheline_aligned_in_smp;
122277 EXPORT_SYMBOL(vm_stat);
122278
122279 #ifdef CONFIG_SMP
122280 @@ -438,7 +439,7 @@ static int fold_diff(int *diff)
122281
122282 for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++)
122283 if (diff[i]) {
122284 - atomic_long_add(diff[i], &vm_stat[i]);
122285 + atomic_long_add_unchecked(diff[i], &vm_stat[i]);
122286 changes++;
122287 }
122288 return changes;
122289 @@ -476,7 +477,7 @@ static int refresh_cpu_vm_stats(void)
122290 v = this_cpu_xchg(p->vm_stat_diff[i], 0);
122291 if (v) {
122292
122293 - atomic_long_add(v, &zone->vm_stat[i]);
122294 + atomic_long_add_unchecked(v, &zone->vm_stat[i]);
122295 global_diff[i] += v;
122296 #ifdef CONFIG_NUMA
122297 /* 3 seconds idle till flush */
122298 @@ -540,7 +541,7 @@ void cpu_vm_stats_fold(int cpu)
122299
122300 v = p->vm_stat_diff[i];
122301 p->vm_stat_diff[i] = 0;
122302 - atomic_long_add(v, &zone->vm_stat[i]);
122303 + atomic_long_add_unchecked(v, &zone->vm_stat[i]);
122304 global_diff[i] += v;
122305 }
122306 }
122307 @@ -560,8 +561,8 @@ void drain_zonestat(struct zone *zone, struct per_cpu_pageset *pset)
122308 if (pset->vm_stat_diff[i]) {
122309 int v = pset->vm_stat_diff[i];
122310 pset->vm_stat_diff[i] = 0;
122311 - atomic_long_add(v, &zone->vm_stat[i]);
122312 - atomic_long_add(v, &vm_stat[i]);
122313 + atomic_long_add_unchecked(v, &zone->vm_stat[i]);
122314 + atomic_long_add_unchecked(v, &vm_stat[i]);
122315 }
122316 }
122317 #endif
122318 @@ -1315,10 +1316,22 @@ static void *vmstat_start(struct seq_file *m, loff_t *pos)
122319 stat_items_size += sizeof(struct vm_event_state);
122320 #endif
122321
122322 - v = kmalloc(stat_items_size, GFP_KERNEL);
122323 + v = kzalloc(stat_items_size, GFP_KERNEL);
122324 m->private = v;
122325 if (!v)
122326 return ERR_PTR(-ENOMEM);
122327 +
122328 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
122329 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
122330 + if (!uid_eq(current_uid(), GLOBAL_ROOT_UID)
122331 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
122332 + && !in_group_p(grsec_proc_gid)
122333 +#endif
122334 + )
122335 + return (unsigned long *)m->private + *pos;
122336 +#endif
122337 +#endif
122338 +
122339 for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++)
122340 v[i] = global_page_state(i);
122341 v += NR_VM_ZONE_STAT_ITEMS;
122342 @@ -1553,10 +1566,16 @@ static int __init setup_vmstat(void)
122343 cpu_notifier_register_done();
122344 #endif
122345 #ifdef CONFIG_PROC_FS
122346 - proc_create("buddyinfo", S_IRUGO, NULL, &fragmentation_file_operations);
122347 - proc_create("pagetypeinfo", S_IRUGO, NULL, &pagetypeinfo_file_ops);
122348 - proc_create("vmstat", S_IRUGO, NULL, &proc_vmstat_file_operations);
122349 - proc_create("zoneinfo", S_IRUGO, NULL, &proc_zoneinfo_file_operations);
122350 + {
122351 + mode_t gr_mode = S_IRUGO;
122352 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
122353 + gr_mode = S_IRUSR;
122354 +#endif
122355 + proc_create("buddyinfo", gr_mode, NULL, &fragmentation_file_operations);
122356 + proc_create("pagetypeinfo", gr_mode, NULL, &pagetypeinfo_file_ops);
122357 + proc_create("vmstat", S_IRUGO, NULL, &proc_vmstat_file_operations);
122358 + proc_create("zoneinfo", gr_mode, NULL, &proc_zoneinfo_file_operations);
122359 + }
122360 #endif
122361 return 0;
122362 }
122363 diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
122364 index d2cd9de..501c186 100644
122365 --- a/net/8021q/vlan.c
122366 +++ b/net/8021q/vlan.c
122367 @@ -491,7 +491,7 @@ out:
122368 return NOTIFY_DONE;
122369 }
122370
122371 -static struct notifier_block vlan_notifier_block __read_mostly = {
122372 +static struct notifier_block vlan_notifier_block = {
122373 .notifier_call = vlan_device_event,
122374 };
122375
122376 @@ -566,8 +566,7 @@ static int vlan_ioctl_handler(struct net *net, void __user *arg)
122377 err = -EPERM;
122378 if (!ns_capable(net->user_ns, CAP_NET_ADMIN))
122379 break;
122380 - if ((args.u.name_type >= 0) &&
122381 - (args.u.name_type < VLAN_NAME_TYPE_HIGHEST)) {
122382 + if (args.u.name_type < VLAN_NAME_TYPE_HIGHEST) {
122383 struct vlan_net *vn;
122384
122385 vn = net_generic(net, vlan_net_id);
122386 diff --git a/net/8021q/vlan_netlink.c b/net/8021q/vlan_netlink.c
122387 index c92b52f..006c052 100644
122388 --- a/net/8021q/vlan_netlink.c
122389 +++ b/net/8021q/vlan_netlink.c
122390 @@ -245,7 +245,7 @@ static struct net *vlan_get_link_net(const struct net_device *dev)
122391 return dev_net(real_dev);
122392 }
122393
122394 -struct rtnl_link_ops vlan_link_ops __read_mostly = {
122395 +struct rtnl_link_ops vlan_link_ops = {
122396 .kind = "vlan",
122397 .maxtype = IFLA_VLAN_MAX,
122398 .policy = vlan_policy,
122399 diff --git a/net/9p/mod.c b/net/9p/mod.c
122400 index 6ab36ae..6f1841b 100644
122401 --- a/net/9p/mod.c
122402 +++ b/net/9p/mod.c
122403 @@ -84,7 +84,7 @@ static LIST_HEAD(v9fs_trans_list);
122404 void v9fs_register_trans(struct p9_trans_module *m)
122405 {
122406 spin_lock(&v9fs_trans_lock);
122407 - list_add_tail(&m->list, &v9fs_trans_list);
122408 + pax_list_add_tail((struct list_head *)&m->list, &v9fs_trans_list);
122409 spin_unlock(&v9fs_trans_lock);
122410 }
122411 EXPORT_SYMBOL(v9fs_register_trans);
122412 @@ -97,7 +97,7 @@ EXPORT_SYMBOL(v9fs_register_trans);
122413 void v9fs_unregister_trans(struct p9_trans_module *m)
122414 {
122415 spin_lock(&v9fs_trans_lock);
122416 - list_del_init(&m->list);
122417 + pax_list_del_init((struct list_head *)&m->list);
122418 spin_unlock(&v9fs_trans_lock);
122419 }
122420 EXPORT_SYMBOL(v9fs_unregister_trans);
122421 diff --git a/net/9p/trans_fd.c b/net/9p/trans_fd.c
122422 index bced8c0..ef253b7 100644
122423 --- a/net/9p/trans_fd.c
122424 +++ b/net/9p/trans_fd.c
122425 @@ -428,7 +428,7 @@ static int p9_fd_write(struct p9_client *client, void *v, int len)
122426 oldfs = get_fs();
122427 set_fs(get_ds());
122428 /* The cast to a user pointer is valid due to the set_fs() */
122429 - ret = vfs_write(ts->wr, (__force void __user *)v, len, &ts->wr->f_pos);
122430 + ret = vfs_write(ts->wr, (void __force_user *)v, len, &ts->wr->f_pos);
122431 set_fs(oldfs);
122432
122433 if (ret <= 0 && ret != -ERESTARTSYS && ret != -EAGAIN)
122434 diff --git a/net/appletalk/atalk_proc.c b/net/appletalk/atalk_proc.c
122435 index af46bc4..f9adfcd 100644
122436 --- a/net/appletalk/atalk_proc.c
122437 +++ b/net/appletalk/atalk_proc.c
122438 @@ -256,7 +256,7 @@ int __init atalk_proc_init(void)
122439 struct proc_dir_entry *p;
122440 int rc = -ENOMEM;
122441
122442 - atalk_proc_dir = proc_mkdir("atalk", init_net.proc_net);
122443 + atalk_proc_dir = proc_mkdir_restrict("atalk", init_net.proc_net);
122444 if (!atalk_proc_dir)
122445 goto out;
122446
122447 diff --git a/net/atm/atm_misc.c b/net/atm/atm_misc.c
122448 index 876fbe8..8bbea9f 100644
122449 --- a/net/atm/atm_misc.c
122450 +++ b/net/atm/atm_misc.c
122451 @@ -17,7 +17,7 @@ int atm_charge(struct atm_vcc *vcc, int truesize)
122452 if (atomic_read(&sk_atm(vcc)->sk_rmem_alloc) <= sk_atm(vcc)->sk_rcvbuf)
122453 return 1;
122454 atm_return(vcc, truesize);
122455 - atomic_inc(&vcc->stats->rx_drop);
122456 + atomic_inc_unchecked(&vcc->stats->rx_drop);
122457 return 0;
122458 }
122459 EXPORT_SYMBOL(atm_charge);
122460 @@ -39,7 +39,7 @@ struct sk_buff *atm_alloc_charge(struct atm_vcc *vcc, int pdu_size,
122461 }
122462 }
122463 atm_return(vcc, guess);
122464 - atomic_inc(&vcc->stats->rx_drop);
122465 + atomic_inc_unchecked(&vcc->stats->rx_drop);
122466 return NULL;
122467 }
122468 EXPORT_SYMBOL(atm_alloc_charge);
122469 @@ -86,7 +86,7 @@ EXPORT_SYMBOL(atm_pcr_goal);
122470
122471 void sonet_copy_stats(struct k_sonet_stats *from, struct sonet_stats *to)
122472 {
122473 -#define __HANDLE_ITEM(i) to->i = atomic_read(&from->i)
122474 +#define __HANDLE_ITEM(i) to->i = atomic_read_unchecked(&from->i)
122475 __SONET_ITEMS
122476 #undef __HANDLE_ITEM
122477 }
122478 @@ -94,7 +94,7 @@ EXPORT_SYMBOL(sonet_copy_stats);
122479
122480 void sonet_subtract_stats(struct k_sonet_stats *from, struct sonet_stats *to)
122481 {
122482 -#define __HANDLE_ITEM(i) atomic_sub(to->i, &from->i)
122483 +#define __HANDLE_ITEM(i) atomic_sub_unchecked(to->i,&from->i)
122484 __SONET_ITEMS
122485 #undef __HANDLE_ITEM
122486 }
122487 diff --git a/net/atm/lec.c b/net/atm/lec.c
122488 index cd3b379..977a3c9 100644
122489 --- a/net/atm/lec.c
122490 +++ b/net/atm/lec.c
122491 @@ -111,9 +111,9 @@ static inline void lec_arp_put(struct lec_arp_table *entry)
122492 }
122493
122494 static struct lane2_ops lane2_ops = {
122495 - lane2_resolve, /* resolve, spec 3.1.3 */
122496 - lane2_associate_req, /* associate_req, spec 3.1.4 */
122497 - NULL /* associate indicator, spec 3.1.5 */
122498 + .resolve = lane2_resolve,
122499 + .associate_req = lane2_associate_req,
122500 + .associate_indicator = NULL
122501 };
122502
122503 static unsigned char bus_mac[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
122504 diff --git a/net/atm/lec.h b/net/atm/lec.h
122505 index 4149db1..f2ab682 100644
122506 --- a/net/atm/lec.h
122507 +++ b/net/atm/lec.h
122508 @@ -48,7 +48,7 @@ struct lane2_ops {
122509 const u8 *tlvs, u32 sizeoftlvs);
122510 void (*associate_indicator) (struct net_device *dev, const u8 *mac_addr,
122511 const u8 *tlvs, u32 sizeoftlvs);
122512 -};
122513 +} __no_const;
122514
122515 /*
122516 * ATM LAN Emulation supports both LLC & Dix Ethernet EtherType
122517 diff --git a/net/atm/mpoa_caches.c b/net/atm/mpoa_caches.c
122518 index d1b2d9a..d549f7f 100644
122519 --- a/net/atm/mpoa_caches.c
122520 +++ b/net/atm/mpoa_caches.c
122521 @@ -535,30 +535,30 @@ static void eg_destroy_cache(struct mpoa_client *mpc)
122522
122523
122524 static struct in_cache_ops ingress_ops = {
122525 - in_cache_add_entry, /* add_entry */
122526 - in_cache_get, /* get */
122527 - in_cache_get_with_mask, /* get_with_mask */
122528 - in_cache_get_by_vcc, /* get_by_vcc */
122529 - in_cache_put, /* put */
122530 - in_cache_remove_entry, /* remove_entry */
122531 - cache_hit, /* cache_hit */
122532 - clear_count_and_expired, /* clear_count */
122533 - check_resolving_entries, /* check_resolving */
122534 - refresh_entries, /* refresh */
122535 - in_destroy_cache /* destroy_cache */
122536 + .add_entry = in_cache_add_entry,
122537 + .get = in_cache_get,
122538 + .get_with_mask = in_cache_get_with_mask,
122539 + .get_by_vcc = in_cache_get_by_vcc,
122540 + .put = in_cache_put,
122541 + .remove_entry = in_cache_remove_entry,
122542 + .cache_hit = cache_hit,
122543 + .clear_count = clear_count_and_expired,
122544 + .check_resolving = check_resolving_entries,
122545 + .refresh = refresh_entries,
122546 + .destroy_cache = in_destroy_cache
122547 };
122548
122549 static struct eg_cache_ops egress_ops = {
122550 - eg_cache_add_entry, /* add_entry */
122551 - eg_cache_get_by_cache_id, /* get_by_cache_id */
122552 - eg_cache_get_by_tag, /* get_by_tag */
122553 - eg_cache_get_by_vcc, /* get_by_vcc */
122554 - eg_cache_get_by_src_ip, /* get_by_src_ip */
122555 - eg_cache_put, /* put */
122556 - eg_cache_remove_entry, /* remove_entry */
122557 - update_eg_cache_entry, /* update */
122558 - clear_expired, /* clear_expired */
122559 - eg_destroy_cache /* destroy_cache */
122560 + .add_entry = eg_cache_add_entry,
122561 + .get_by_cache_id = eg_cache_get_by_cache_id,
122562 + .get_by_tag = eg_cache_get_by_tag,
122563 + .get_by_vcc = eg_cache_get_by_vcc,
122564 + .get_by_src_ip = eg_cache_get_by_src_ip,
122565 + .put = eg_cache_put,
122566 + .remove_entry = eg_cache_remove_entry,
122567 + .update = update_eg_cache_entry,
122568 + .clear_expired = clear_expired,
122569 + .destroy_cache = eg_destroy_cache
122570 };
122571
122572
122573 diff --git a/net/atm/proc.c b/net/atm/proc.c
122574 index bbb6461..cf04016 100644
122575 --- a/net/atm/proc.c
122576 +++ b/net/atm/proc.c
122577 @@ -45,9 +45,9 @@ static void add_stats(struct seq_file *seq, const char *aal,
122578 const struct k_atm_aal_stats *stats)
122579 {
122580 seq_printf(seq, "%s ( %d %d %d %d %d )", aal,
122581 - atomic_read(&stats->tx), atomic_read(&stats->tx_err),
122582 - atomic_read(&stats->rx), atomic_read(&stats->rx_err),
122583 - atomic_read(&stats->rx_drop));
122584 + atomic_read_unchecked(&stats->tx),atomic_read_unchecked(&stats->tx_err),
122585 + atomic_read_unchecked(&stats->rx),atomic_read_unchecked(&stats->rx_err),
122586 + atomic_read_unchecked(&stats->rx_drop));
122587 }
122588
122589 static void atm_dev_info(struct seq_file *seq, const struct atm_dev *dev)
122590 diff --git a/net/atm/resources.c b/net/atm/resources.c
122591 index 0447d5d..3cf4728 100644
122592 --- a/net/atm/resources.c
122593 +++ b/net/atm/resources.c
122594 @@ -160,7 +160,7 @@ EXPORT_SYMBOL(atm_dev_deregister);
122595 static void copy_aal_stats(struct k_atm_aal_stats *from,
122596 struct atm_aal_stats *to)
122597 {
122598 -#define __HANDLE_ITEM(i) to->i = atomic_read(&from->i)
122599 +#define __HANDLE_ITEM(i) to->i = atomic_read_unchecked(&from->i)
122600 __AAL_STAT_ITEMS
122601 #undef __HANDLE_ITEM
122602 }
122603 @@ -168,7 +168,7 @@ static void copy_aal_stats(struct k_atm_aal_stats *from,
122604 static void subtract_aal_stats(struct k_atm_aal_stats *from,
122605 struct atm_aal_stats *to)
122606 {
122607 -#define __HANDLE_ITEM(i) atomic_sub(to->i, &from->i)
122608 +#define __HANDLE_ITEM(i) atomic_sub_unchecked(to->i, &from->i)
122609 __AAL_STAT_ITEMS
122610 #undef __HANDLE_ITEM
122611 }
122612 diff --git a/net/ax25/sysctl_net_ax25.c b/net/ax25/sysctl_net_ax25.c
122613 index 919a5ce..cc6b444 100644
122614 --- a/net/ax25/sysctl_net_ax25.c
122615 +++ b/net/ax25/sysctl_net_ax25.c
122616 @@ -152,7 +152,7 @@ int ax25_register_dev_sysctl(ax25_dev *ax25_dev)
122617 {
122618 char path[sizeof("net/ax25/") + IFNAMSIZ];
122619 int k;
122620 - struct ctl_table *table;
122621 + ctl_table_no_const *table;
122622
122623 table = kmemdup(ax25_param_table, sizeof(ax25_param_table), GFP_KERNEL);
122624 if (!table)
122625 diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c
122626 index 912d9c3..2494d1e 100644
122627 --- a/net/batman-adv/bat_iv_ogm.c
122628 +++ b/net/batman-adv/bat_iv_ogm.c
122629 @@ -316,7 +316,7 @@ static int batadv_iv_ogm_iface_enable(struct batadv_hard_iface *hard_iface)
122630
122631 /* randomize initial seqno to avoid collision */
122632 get_random_bytes(&random_seqno, sizeof(random_seqno));
122633 - atomic_set(&hard_iface->bat_iv.ogm_seqno, random_seqno);
122634 + atomic_set_unchecked(&hard_iface->bat_iv.ogm_seqno, random_seqno);
122635
122636 hard_iface->bat_iv.ogm_buff_len = BATADV_OGM_HLEN;
122637 ogm_buff = kmalloc(hard_iface->bat_iv.ogm_buff_len, GFP_ATOMIC);
122638 @@ -919,9 +919,9 @@ static void batadv_iv_ogm_schedule(struct batadv_hard_iface *hard_iface)
122639 batadv_ogm_packet->tvlv_len = htons(tvlv_len);
122640
122641 /* change sequence number to network order */
122642 - seqno = (u32)atomic_read(&hard_iface->bat_iv.ogm_seqno);
122643 + seqno = (u32)atomic_read_unchecked(&hard_iface->bat_iv.ogm_seqno);
122644 batadv_ogm_packet->seqno = htonl(seqno);
122645 - atomic_inc(&hard_iface->bat_iv.ogm_seqno);
122646 + atomic_inc_unchecked(&hard_iface->bat_iv.ogm_seqno);
122647
122648 batadv_iv_ogm_slide_own_bcast_window(hard_iface);
122649
122650 @@ -1600,7 +1600,7 @@ static void batadv_iv_ogm_process(const struct sk_buff *skb, int ogm_offset,
122651 return;
122652
122653 /* could be changed by schedule_own_packet() */
122654 - if_incoming_seqno = atomic_read(&if_incoming->bat_iv.ogm_seqno);
122655 + if_incoming_seqno = atomic_read_unchecked(&if_incoming->bat_iv.ogm_seqno);
122656
122657 if (ogm_packet->flags & BATADV_DIRECTLINK)
122658 has_directlink_flag = true;
122659 diff --git a/net/batman-adv/fragmentation.c b/net/batman-adv/fragmentation.c
122660 index 700c96c..637df49 100644
122661 --- a/net/batman-adv/fragmentation.c
122662 +++ b/net/batman-adv/fragmentation.c
122663 @@ -468,7 +468,7 @@ bool batadv_frag_send_packet(struct sk_buff *skb,
122664 frag_header.packet_type = BATADV_UNICAST_FRAG;
122665 frag_header.version = BATADV_COMPAT_VERSION;
122666 frag_header.ttl = BATADV_TTL;
122667 - frag_header.seqno = htons(atomic_inc_return(&bat_priv->frag_seqno));
122668 + frag_header.seqno = htons(atomic_inc_return_unchecked(&bat_priv->frag_seqno));
122669 frag_header.reserved = 0;
122670 frag_header.no = 0;
122671 frag_header.total_size = htons(skb->len);
122672 diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c
122673 index 3207667..c281989 100644
122674 --- a/net/batman-adv/routing.c
122675 +++ b/net/batman-adv/routing.c
122676 @@ -665,7 +665,7 @@ batadv_reroute_unicast_packet(struct batadv_priv *bat_priv,
122677 if (!primary_if)
122678 goto out;
122679 orig_addr = primary_if->net_dev->dev_addr;
122680 - orig_ttvn = (u8)atomic_read(&bat_priv->tt.vn);
122681 + orig_ttvn = (u8)atomic_read_unchecked(&bat_priv->tt.vn);
122682 } else {
122683 orig_node = batadv_transtable_search(bat_priv, NULL, dst_addr,
122684 vid);
122685 @@ -740,7 +740,7 @@ static int batadv_check_unicast_ttvn(struct batadv_priv *bat_priv,
122686 * value is used later to check if the node which sent (or re-routed
122687 * last time) the packet had an updated information or not
122688 */
122689 - curr_ttvn = (u8)atomic_read(&bat_priv->tt.vn);
122690 + curr_ttvn = (u8)atomic_read_unchecked(&bat_priv->tt.vn);
122691 if (!batadv_is_my_mac(bat_priv, unicast_packet->dest)) {
122692 orig_node = batadv_orig_hash_find(bat_priv,
122693 unicast_packet->dest);
122694 diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
122695 index ac4d08d..76780fe 100644
122696 --- a/net/batman-adv/soft-interface.c
122697 +++ b/net/batman-adv/soft-interface.c
122698 @@ -330,7 +330,7 @@ send:
122699 primary_if->net_dev->dev_addr);
122700
122701 /* set broadcast sequence number */
122702 - seqno = atomic_inc_return(&bat_priv->bcast_seqno);
122703 + seqno = atomic_inc_return_unchecked(&bat_priv->bcast_seqno);
122704 bcast_packet->seqno = htonl(seqno);
122705
122706 batadv_add_bcast_packet_to_list(bat_priv, skb, brd_delay);
122707 @@ -798,8 +798,8 @@ static int batadv_softif_init_late(struct net_device *dev)
122708 atomic_set(&bat_priv->batman_queue_left, BATADV_BATMAN_QUEUE_LEN);
122709
122710 atomic_set(&bat_priv->mesh_state, BATADV_MESH_INACTIVE);
122711 - atomic_set(&bat_priv->bcast_seqno, 1);
122712 - atomic_set(&bat_priv->tt.vn, 0);
122713 + atomic_set_unchecked(&bat_priv->bcast_seqno, 1);
122714 + atomic_set_unchecked(&bat_priv->tt.vn, 0);
122715 atomic_set(&bat_priv->tt.local_changes, 0);
122716 atomic_set(&bat_priv->tt.ogm_append_cnt, 0);
122717 #ifdef CONFIG_BATMAN_ADV_BLA
122718 @@ -812,7 +812,7 @@ static int batadv_softif_init_late(struct net_device *dev)
122719
122720 /* randomize initial seqno to avoid collision */
122721 get_random_bytes(&random_seqno, sizeof(random_seqno));
122722 - atomic_set(&bat_priv->frag_seqno, random_seqno);
122723 + atomic_set_unchecked(&bat_priv->frag_seqno, random_seqno);
122724
122725 bat_priv->primary_if = NULL;
122726 bat_priv->num_ifaces = 0;
122727 @@ -1018,7 +1018,7 @@ int batadv_softif_is_valid(const struct net_device *net_dev)
122728 return 0;
122729 }
122730
122731 -struct rtnl_link_ops batadv_link_ops __read_mostly = {
122732 +struct rtnl_link_ops batadv_link_ops = {
122733 .kind = "batadv",
122734 .priv_size = sizeof(struct batadv_priv),
122735 .setup = batadv_softif_init_early,
122736 diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
122737 index 83b0ca2..6ebbdf4 100644
122738 --- a/net/batman-adv/translation-table.c
122739 +++ b/net/batman-adv/translation-table.c
122740 @@ -607,7 +607,7 @@ bool batadv_tt_local_add(struct net_device *soft_iface, const u8 *addr,
122741 batadv_dbg(BATADV_DBG_TT, bat_priv,
122742 "Creating new local tt entry: %pM (vid: %d, ttvn: %d)\n",
122743 addr, BATADV_PRINT_VID(vid),
122744 - (u8)atomic_read(&bat_priv->tt.vn));
122745 + (u8)atomic_read_unchecked(&bat_priv->tt.vn));
122746
122747 ether_addr_copy(tt_local->common.addr, addr);
122748 /* The local entry has to be marked as NEW to avoid to send it in
122749 @@ -837,7 +837,7 @@ batadv_tt_prepare_tvlv_local_data(struct batadv_priv *bat_priv,
122750 }
122751
122752 (*tt_data)->flags = BATADV_NO_FLAGS;
122753 - (*tt_data)->ttvn = atomic_read(&bat_priv->tt.vn);
122754 + (*tt_data)->ttvn = atomic_read_unchecked(&bat_priv->tt.vn);
122755 (*tt_data)->num_vlan = htons(num_vlan);
122756
122757 tt_vlan = (struct batadv_tvlv_tt_vlan_data *)(*tt_data + 1);
122758 @@ -956,7 +956,7 @@ int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset)
122759
122760 seq_printf(seq,
122761 "Locally retrieved addresses (from %s) announced via TT (TTVN: %u):\n",
122762 - net_dev->name, (u8)atomic_read(&bat_priv->tt.vn));
122763 + net_dev->name, (u8)atomic_read_unchecked(&bat_priv->tt.vn));
122764 seq_printf(seq, " %-13s %s %-8s %-9s (%-10s)\n", "Client", "VID",
122765 "Flags", "Last seen", "CRC");
122766
122767 @@ -2733,7 +2733,7 @@ static bool batadv_send_my_tt_response(struct batadv_priv *bat_priv,
122768
122769 spin_lock_bh(&bat_priv->tt.commit_lock);
122770
122771 - my_ttvn = (u8)atomic_read(&bat_priv->tt.vn);
122772 + my_ttvn = (u8)atomic_read_unchecked(&bat_priv->tt.vn);
122773 req_ttvn = tt_data->ttvn;
122774
122775 orig_node = batadv_orig_hash_find(bat_priv, req_src);
122776 @@ -2772,7 +2772,7 @@ static bool batadv_send_my_tt_response(struct batadv_priv *bat_priv,
122777 bat_priv->tt.last_changeset_len);
122778 spin_unlock_bh(&bat_priv->tt.last_changeset_lock);
122779 } else {
122780 - req_ttvn = (u8)atomic_read(&bat_priv->tt.vn);
122781 + req_ttvn = (u8)atomic_read_unchecked(&bat_priv->tt.vn);
122782
122783 /* allocate the tvlv, put the tt_data and all the tt_vlan_data
122784 * in the initial part
122785 @@ -3294,10 +3294,10 @@ static void batadv_tt_local_commit_changes_nolock(struct batadv_priv *bat_priv)
122786 batadv_tt_local_update_crc(bat_priv);
122787
122788 /* Increment the TTVN only once per OGM interval */
122789 - atomic_inc(&bat_priv->tt.vn);
122790 + atomic_inc_unchecked(&bat_priv->tt.vn);
122791 batadv_dbg(BATADV_DBG_TT, bat_priv,
122792 "Local changes committed, updating to ttvn %u\n",
122793 - (u8)atomic_read(&bat_priv->tt.vn));
122794 + (u8)atomic_read_unchecked(&bat_priv->tt.vn));
122795
122796 /* reset the sending counter */
122797 atomic_set(&bat_priv->tt.ogm_append_cnt, BATADV_TT_OGM_APPEND_MAX);
122798 diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
122799 index d260efd..1548fb3 100644
122800 --- a/net/batman-adv/types.h
122801 +++ b/net/batman-adv/types.h
122802 @@ -81,7 +81,7 @@ enum batadv_dhcp_recipient {
122803 struct batadv_hard_iface_bat_iv {
122804 unsigned char *ogm_buff;
122805 int ogm_buff_len;
122806 - atomic_t ogm_seqno;
122807 + atomic_unchecked_t ogm_seqno;
122808 };
122809
122810 /**
122811 @@ -529,7 +529,7 @@ enum batadv_counters {
122812 * @work: work queue callback item for translation table purging
122813 */
122814 struct batadv_priv_tt {
122815 - atomic_t vn;
122816 + atomic_unchecked_t vn;
122817 atomic_t ogm_append_cnt;
122818 atomic_t local_changes;
122819 struct list_head changes_list;
122820 @@ -784,7 +784,7 @@ struct batadv_priv {
122821 atomic_t bonding;
122822 atomic_t fragmentation;
122823 atomic_t packet_size_max;
122824 - atomic_t frag_seqno;
122825 + atomic_unchecked_t frag_seqno;
122826 #ifdef CONFIG_BATMAN_ADV_BLA
122827 atomic_t bridge_loop_avoidance;
122828 #endif
122829 @@ -803,7 +803,7 @@ struct batadv_priv {
122830 #endif
122831 u32 isolation_mark;
122832 u32 isolation_mark_mask;
122833 - atomic_t bcast_seqno;
122834 + atomic_unchecked_t bcast_seqno;
122835 atomic_t bcast_queue_left;
122836 atomic_t batman_queue_left;
122837 char num_ifaces;
122838 diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c
122839 index b1eb8c0..266b4100 100644
122840 --- a/net/bluetooth/hci_sock.c
122841 +++ b/net/bluetooth/hci_sock.c
122842 @@ -1332,7 +1332,7 @@ static int hci_sock_setsockopt(struct socket *sock, int level, int optname,
122843 uf.event_mask[1] = *((u32 *) f->event_mask + 1);
122844 }
122845
122846 - len = min_t(unsigned int, len, sizeof(uf));
122847 + len = min((size_t)len, sizeof(uf));
122848 if (copy_from_user(&uf, optval, len)) {
122849 err = -EFAULT;
122850 break;
122851 diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
122852 index 66e8b6e..6b53602 100644
122853 --- a/net/bluetooth/l2cap_core.c
122854 +++ b/net/bluetooth/l2cap_core.c
122855 @@ -3537,8 +3537,10 @@ static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len,
122856 break;
122857
122858 case L2CAP_CONF_RFC:
122859 - if (olen == sizeof(rfc))
122860 - memcpy(&rfc, (void *)val, olen);
122861 + if (olen != sizeof(rfc))
122862 + break;
122863 +
122864 + memcpy(&rfc, (void *)val, olen);
122865
122866 if (test_bit(CONF_STATE2_DEVICE, &chan->conf_state) &&
122867 rfc.mode != chan->mode)
122868 diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
122869 index 1bb5515..17f48c6 100644
122870 --- a/net/bluetooth/l2cap_sock.c
122871 +++ b/net/bluetooth/l2cap_sock.c
122872 @@ -633,7 +633,8 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname,
122873 struct sock *sk = sock->sk;
122874 struct l2cap_chan *chan = l2cap_pi(sk)->chan;
122875 struct l2cap_options opts;
122876 - int len, err = 0;
122877 + int err = 0;
122878 + size_t len = optlen;
122879 u32 opt;
122880
122881 BT_DBG("sk %p", sk);
122882 @@ -660,7 +661,7 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname,
122883 opts.max_tx = chan->max_tx;
122884 opts.txwin_size = chan->tx_win;
122885
122886 - len = min_t(unsigned int, sizeof(opts), optlen);
122887 + len = min(sizeof(opts), len);
122888 if (copy_from_user((char *) &opts, optval, len)) {
122889 err = -EFAULT;
122890 break;
122891 @@ -747,7 +748,8 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
122892 struct bt_security sec;
122893 struct bt_power pwr;
122894 struct l2cap_conn *conn;
122895 - int len, err = 0;
122896 + int err = 0;
122897 + size_t len = optlen;
122898 u32 opt;
122899
122900 BT_DBG("sk %p", sk);
122901 @@ -771,7 +773,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
122902
122903 sec.level = BT_SECURITY_LOW;
122904
122905 - len = min_t(unsigned int, sizeof(sec), optlen);
122906 + len = min(sizeof(sec), len);
122907 if (copy_from_user((char *) &sec, optval, len)) {
122908 err = -EFAULT;
122909 break;
122910 @@ -867,7 +869,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
122911
122912 pwr.force_active = BT_POWER_FORCE_ACTIVE_ON;
122913
122914 - len = min_t(unsigned int, sizeof(pwr), optlen);
122915 + len = min(sizeof(pwr), len);
122916 if (copy_from_user((char *) &pwr, optval, len)) {
122917 err = -EFAULT;
122918 break;
122919 diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c
122920 index 7511df7..a670df3 100644
122921 --- a/net/bluetooth/rfcomm/sock.c
122922 +++ b/net/bluetooth/rfcomm/sock.c
122923 @@ -690,7 +690,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
122924 struct sock *sk = sock->sk;
122925 struct bt_security sec;
122926 int err = 0;
122927 - size_t len;
122928 + size_t len = optlen;
122929 u32 opt;
122930
122931 BT_DBG("sk %p", sk);
122932 @@ -712,7 +712,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
122933
122934 sec.level = BT_SECURITY_LOW;
122935
122936 - len = min_t(unsigned int, sizeof(sec), optlen);
122937 + len = min(sizeof(sec), len);
122938 if (copy_from_user((char *) &sec, optval, len)) {
122939 err = -EFAULT;
122940 break;
122941 diff --git a/net/bluetooth/rfcomm/tty.c b/net/bluetooth/rfcomm/tty.c
122942 index 8e385a0..a5bdd8e 100644
122943 --- a/net/bluetooth/rfcomm/tty.c
122944 +++ b/net/bluetooth/rfcomm/tty.c
122945 @@ -752,7 +752,7 @@ static int rfcomm_tty_open(struct tty_struct *tty, struct file *filp)
122946 BT_DBG("tty %p id %d", tty, tty->index);
122947
122948 BT_DBG("dev %p dst %pMR channel %d opened %d", dev, &dev->dst,
122949 - dev->channel, dev->port.count);
122950 + dev->channel, atomic_read(&dev->port.count));
122951
122952 err = tty_port_open(&dev->port, tty, filp);
122953 if (err)
122954 @@ -775,7 +775,7 @@ static void rfcomm_tty_close(struct tty_struct *tty, struct file *filp)
122955 struct rfcomm_dev *dev = (struct rfcomm_dev *) tty->driver_data;
122956
122957 BT_DBG("tty %p dev %p dlc %p opened %d", tty, dev, dev->dlc,
122958 - dev->port.count);
122959 + atomic_read(&dev->port.count));
122960
122961 tty_port_close(&dev->port, tty, filp);
122962 }
122963 diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c
122964 index 40197ff..58633af 100644
122965 --- a/net/bridge/br_netlink.c
122966 +++ b/net/bridge/br_netlink.c
122967 @@ -1220,7 +1220,7 @@ static struct rtnl_af_ops br_af_ops __read_mostly = {
122968 .get_link_af_size = br_get_link_af_size_filtered,
122969 };
122970
122971 -struct rtnl_link_ops br_link_ops __read_mostly = {
122972 +struct rtnl_link_ops br_link_ops = {
122973 .kind = "bridge",
122974 .priv_size = sizeof(struct net_bridge),
122975 .setup = br_dev_setup,
122976 diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c
122977 index f46ca41..c4a7eea 100644
122978 --- a/net/bridge/netfilter/ebtables.c
122979 +++ b/net/bridge/netfilter/ebtables.c
122980 @@ -1535,7 +1535,7 @@ static int do_ebt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
122981 tmp.valid_hooks = t->table->valid_hooks;
122982 }
122983 mutex_unlock(&ebt_mutex);
122984 - if (copy_to_user(user, &tmp, *len) != 0) {
122985 + if (*len > sizeof(tmp) || copy_to_user(user, &tmp, *len) != 0) {
122986 BUGPRINT("c2u Didn't work\n");
122987 ret = -EFAULT;
122988 break;
122989 @@ -2341,7 +2341,7 @@ static int compat_do_ebt_get_ctl(struct sock *sk, int cmd,
122990 goto out;
122991 tmp.valid_hooks = t->valid_hooks;
122992
122993 - if (copy_to_user(user, &tmp, *len) != 0) {
122994 + if (*len > sizeof(tmp) || copy_to_user(user, &tmp, *len) != 0) {
122995 ret = -EFAULT;
122996 break;
122997 }
122998 @@ -2352,7 +2352,7 @@ static int compat_do_ebt_get_ctl(struct sock *sk, int cmd,
122999 tmp.entries_size = t->table->entries_size;
123000 tmp.valid_hooks = t->table->valid_hooks;
123001
123002 - if (copy_to_user(user, &tmp, *len) != 0) {
123003 + if (*len > sizeof(tmp) || copy_to_user(user, &tmp, *len) != 0) {
123004 ret = -EFAULT;
123005 break;
123006 }
123007 diff --git a/net/caif/cfctrl.c b/net/caif/cfctrl.c
123008 index f5afda1..dcf770a 100644
123009 --- a/net/caif/cfctrl.c
123010 +++ b/net/caif/cfctrl.c
123011 @@ -10,6 +10,7 @@
123012 #include <linux/spinlock.h>
123013 #include <linux/slab.h>
123014 #include <linux/pkt_sched.h>
123015 +#include <linux/sched.h>
123016 #include <net/caif/caif_layer.h>
123017 #include <net/caif/cfpkt.h>
123018 #include <net/caif/cfctrl.h>
123019 @@ -43,8 +44,8 @@ struct cflayer *cfctrl_create(void)
123020 memset(&dev_info, 0, sizeof(dev_info));
123021 dev_info.id = 0xff;
123022 cfsrvl_init(&this->serv, 0, &dev_info, false);
123023 - atomic_set(&this->req_seq_no, 1);
123024 - atomic_set(&this->rsp_seq_no, 1);
123025 + atomic_set_unchecked(&this->req_seq_no, 1);
123026 + atomic_set_unchecked(&this->rsp_seq_no, 1);
123027 this->serv.layer.receive = cfctrl_recv;
123028 sprintf(this->serv.layer.name, "ctrl");
123029 this->serv.layer.ctrlcmd = cfctrl_ctrlcmd;
123030 @@ -130,8 +131,8 @@ static void cfctrl_insert_req(struct cfctrl *ctrl,
123031 struct cfctrl_request_info *req)
123032 {
123033 spin_lock_bh(&ctrl->info_list_lock);
123034 - atomic_inc(&ctrl->req_seq_no);
123035 - req->sequence_no = atomic_read(&ctrl->req_seq_no);
123036 + atomic_inc_unchecked(&ctrl->req_seq_no);
123037 + req->sequence_no = atomic_read_unchecked(&ctrl->req_seq_no);
123038 list_add_tail(&req->list, &ctrl->list);
123039 spin_unlock_bh(&ctrl->info_list_lock);
123040 }
123041 @@ -149,7 +150,7 @@ static struct cfctrl_request_info *cfctrl_remove_req(struct cfctrl *ctrl,
123042 if (p != first)
123043 pr_warn("Requests are not received in order\n");
123044
123045 - atomic_set(&ctrl->rsp_seq_no,
123046 + atomic_set_unchecked(&ctrl->rsp_seq_no,
123047 p->sequence_no);
123048 list_del(&p->list);
123049 goto out;
123050 diff --git a/net/caif/chnl_net.c b/net/caif/chnl_net.c
123051 index 67a4a36..8d28068 100644
123052 --- a/net/caif/chnl_net.c
123053 +++ b/net/caif/chnl_net.c
123054 @@ -515,7 +515,7 @@ static const struct nla_policy ipcaif_policy[IFLA_CAIF_MAX + 1] = {
123055 };
123056
123057
123058 -static struct rtnl_link_ops ipcaif_link_ops __read_mostly = {
123059 +static struct rtnl_link_ops ipcaif_link_ops = {
123060 .kind = "caif",
123061 .priv_size = sizeof(struct chnl_net),
123062 .setup = ipcaif_net_setup,
123063 diff --git a/net/can/af_can.c b/net/can/af_can.c
123064 index 166d436..2920816 100644
123065 --- a/net/can/af_can.c
123066 +++ b/net/can/af_can.c
123067 @@ -890,7 +890,7 @@ static const struct net_proto_family can_family_ops = {
123068 };
123069
123070 /* notifier block for netdevice event */
123071 -static struct notifier_block can_netdev_notifier __read_mostly = {
123072 +static struct notifier_block can_netdev_notifier = {
123073 .notifier_call = can_notifier,
123074 };
123075
123076 diff --git a/net/can/bcm.c b/net/can/bcm.c
123077 index 6863310..78bd4c6 100644
123078 --- a/net/can/bcm.c
123079 +++ b/net/can/bcm.c
123080 @@ -1625,7 +1625,7 @@ static int __init bcm_module_init(void)
123081 }
123082
123083 /* create /proc/net/can-bcm directory */
123084 - proc_dir = proc_mkdir("can-bcm", init_net.proc_net);
123085 + proc_dir = proc_mkdir_restrict("can-bcm", init_net.proc_net);
123086 return 0;
123087 }
123088
123089 diff --git a/net/can/gw.c b/net/can/gw.c
123090 index 4551687..4e82e9b 100644
123091 --- a/net/can/gw.c
123092 +++ b/net/can/gw.c
123093 @@ -80,7 +80,6 @@ MODULE_PARM_DESC(max_hops,
123094 "default: " __stringify(CGW_DEFAULT_HOPS) ")");
123095
123096 static HLIST_HEAD(cgw_list);
123097 -static struct notifier_block notifier;
123098
123099 static struct kmem_cache *cgw_cache __read_mostly;
123100
123101 @@ -992,6 +991,10 @@ static int cgw_remove_job(struct sk_buff *skb, struct nlmsghdr *nlh)
123102 return err;
123103 }
123104
123105 +static struct notifier_block notifier = {
123106 + .notifier_call = cgw_notifier
123107 +};
123108 +
123109 static __init int cgw_module_init(void)
123110 {
123111 /* sanitize given module parameter */
123112 @@ -1007,7 +1010,6 @@ static __init int cgw_module_init(void)
123113 return -ENOMEM;
123114
123115 /* set notifier */
123116 - notifier.notifier_call = cgw_notifier;
123117 register_netdevice_notifier(&notifier);
123118
123119 if (__rtnl_register(PF_CAN, RTM_GETROUTE, NULL, cgw_dump_jobs, NULL)) {
123120 diff --git a/net/can/proc.c b/net/can/proc.c
123121 index 1a19b98..df2b4ec 100644
123122 --- a/net/can/proc.c
123123 +++ b/net/can/proc.c
123124 @@ -514,7 +514,7 @@ static void can_remove_proc_readentry(const char *name)
123125 void can_init_proc(void)
123126 {
123127 /* create /proc/net/can directory */
123128 - can_dir = proc_mkdir("can", init_net.proc_net);
123129 + can_dir = proc_mkdir_restrict("can", init_net.proc_net);
123130
123131 if (!can_dir) {
123132 printk(KERN_INFO "can: failed to create /proc/net/can . "
123133 diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
123134 index 63ae5dd..40e8dce 100644
123135 --- a/net/ceph/messenger.c
123136 +++ b/net/ceph/messenger.c
123137 @@ -190,7 +190,7 @@ static void con_fault(struct ceph_connection *con);
123138 #define MAX_ADDR_STR_LEN 64 /* 54 is enough */
123139
123140 static char addr_str[ADDR_STR_COUNT][MAX_ADDR_STR_LEN];
123141 -static atomic_t addr_str_seq = ATOMIC_INIT(0);
123142 +static atomic_unchecked_t addr_str_seq = ATOMIC_INIT(0);
123143
123144 static struct page *zero_page; /* used in certain error cases */
123145
123146 @@ -201,7 +201,7 @@ const char *ceph_pr_addr(const struct sockaddr_storage *ss)
123147 struct sockaddr_in *in4 = (struct sockaddr_in *) ss;
123148 struct sockaddr_in6 *in6 = (struct sockaddr_in6 *) ss;
123149
123150 - i = atomic_inc_return(&addr_str_seq) & ADDR_STR_COUNT_MASK;
123151 + i = atomic_inc_return_unchecked(&addr_str_seq) & ADDR_STR_COUNT_MASK;
123152 s = addr_str[i];
123153
123154 switch (ss->ss_family) {
123155 diff --git a/net/compat.c b/net/compat.c
123156 index 5cfd26a..3c50cb0 100644
123157 --- a/net/compat.c
123158 +++ b/net/compat.c
123159 @@ -58,7 +58,7 @@ int get_compat_msghdr(struct msghdr *kmsg,
123160
123161 if (kmsg->msg_namelen > sizeof(struct sockaddr_storage))
123162 kmsg->msg_namelen = sizeof(struct sockaddr_storage);
123163 - kmsg->msg_control = compat_ptr(tmp3);
123164 + kmsg->msg_control = (void __force_kernel *)compat_ptr(tmp3);
123165
123166 if (save_addr)
123167 *save_addr = compat_ptr(uaddr);
123168 @@ -98,20 +98,20 @@ int get_compat_msghdr(struct msghdr *kmsg,
123169
123170 #define CMSG_COMPAT_FIRSTHDR(msg) \
123171 (((msg)->msg_controllen) >= sizeof(struct compat_cmsghdr) ? \
123172 - (struct compat_cmsghdr __user *)((msg)->msg_control) : \
123173 + (struct compat_cmsghdr __force_user *)((msg)->msg_control) : \
123174 (struct compat_cmsghdr __user *)NULL)
123175
123176 #define CMSG_COMPAT_OK(ucmlen, ucmsg, mhdr) \
123177 ((ucmlen) >= sizeof(struct compat_cmsghdr) && \
123178 (ucmlen) <= (unsigned long) \
123179 ((mhdr)->msg_controllen - \
123180 - ((char *)(ucmsg) - (char *)(mhdr)->msg_control)))
123181 + ((char __force_kernel *)(ucmsg) - (char *)(mhdr)->msg_control)))
123182
123183 static inline struct compat_cmsghdr __user *cmsg_compat_nxthdr(struct msghdr *msg,
123184 struct compat_cmsghdr __user *cmsg, int cmsg_len)
123185 {
123186 char __user *ptr = (char __user *)cmsg + CMSG_COMPAT_ALIGN(cmsg_len);
123187 - if ((unsigned long)(ptr + 1 - (char __user *)msg->msg_control) >
123188 + if ((unsigned long)(ptr + 1 - (char __force_user *)msg->msg_control) >
123189 msg->msg_controllen)
123190 return NULL;
123191 return (struct compat_cmsghdr __user *)ptr;
123192 @@ -201,7 +201,7 @@ Efault:
123193
123194 int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *data)
123195 {
123196 - struct compat_cmsghdr __user *cm = (struct compat_cmsghdr __user *) kmsg->msg_control;
123197 + struct compat_cmsghdr __user *cm = (struct compat_cmsghdr __force_user *) kmsg->msg_control;
123198 struct compat_cmsghdr cmhdr;
123199 struct compat_timeval ctv;
123200 struct compat_timespec cts[3];
123201 @@ -257,7 +257,7 @@ int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *dat
123202
123203 void scm_detach_fds_compat(struct msghdr *kmsg, struct scm_cookie *scm)
123204 {
123205 - struct compat_cmsghdr __user *cm = (struct compat_cmsghdr __user *) kmsg->msg_control;
123206 + struct compat_cmsghdr __user *cm = (struct compat_cmsghdr __force_user *) kmsg->msg_control;
123207 int fdmax = (kmsg->msg_controllen - sizeof(struct compat_cmsghdr)) / sizeof(int);
123208 int fdnum = scm->fp->count;
123209 struct file **fp = scm->fp->fp;
123210 @@ -345,7 +345,7 @@ static int do_set_sock_timeout(struct socket *sock, int level,
123211 return -EFAULT;
123212 old_fs = get_fs();
123213 set_fs(KERNEL_DS);
123214 - err = sock_setsockopt(sock, level, optname, (char *)&ktime, sizeof(ktime));
123215 + err = sock_setsockopt(sock, level, optname, (char __force_user *)&ktime, sizeof(ktime));
123216 set_fs(old_fs);
123217
123218 return err;
123219 @@ -406,7 +406,7 @@ static int do_get_sock_timeout(struct socket *sock, int level, int optname,
123220 len = sizeof(ktime);
123221 old_fs = get_fs();
123222 set_fs(KERNEL_DS);
123223 - err = sock_getsockopt(sock, level, optname, (char *) &ktime, &len);
123224 + err = sock_getsockopt(sock, level, optname, (char __force_user *) &ktime, (int __force_user *)&len);
123225 set_fs(old_fs);
123226
123227 if (!err) {
123228 @@ -549,7 +549,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
123229 case MCAST_JOIN_GROUP:
123230 case MCAST_LEAVE_GROUP:
123231 {
123232 - struct compat_group_req __user *gr32 = (void *)optval;
123233 + struct compat_group_req __user *gr32 = (void __user *)optval;
123234 struct group_req __user *kgr =
123235 compat_alloc_user_space(sizeof(struct group_req));
123236 u32 interface;
123237 @@ -570,7 +570,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
123238 case MCAST_BLOCK_SOURCE:
123239 case MCAST_UNBLOCK_SOURCE:
123240 {
123241 - struct compat_group_source_req __user *gsr32 = (void *)optval;
123242 + struct compat_group_source_req __user *gsr32 = (void __user *)optval;
123243 struct group_source_req __user *kgsr = compat_alloc_user_space(
123244 sizeof(struct group_source_req));
123245 u32 interface;
123246 @@ -591,7 +591,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
123247 }
123248 case MCAST_MSFILTER:
123249 {
123250 - struct compat_group_filter __user *gf32 = (void *)optval;
123251 + struct compat_group_filter __user *gf32 = (void __user *)optval;
123252 struct group_filter __user *kgf;
123253 u32 interface, fmode, numsrc;
123254
123255 @@ -629,7 +629,7 @@ int compat_mc_getsockopt(struct sock *sock, int level, int optname,
123256 char __user *optval, int __user *optlen,
123257 int (*getsockopt)(struct sock *, int, int, char __user *, int __user *))
123258 {
123259 - struct compat_group_filter __user *gf32 = (void *)optval;
123260 + struct compat_group_filter __user *gf32 = (void __user *)optval;
123261 struct group_filter __user *kgf;
123262 int __user *koptlen;
123263 u32 interface, fmode, numsrc;
123264 @@ -773,7 +773,7 @@ COMPAT_SYSCALL_DEFINE2(socketcall, int, call, u32 __user *, args)
123265
123266 if (call < SYS_SOCKET || call > SYS_SENDMMSG)
123267 return -EINVAL;
123268 - if (copy_from_user(a, args, nas[call]))
123269 + if (nas[call] > sizeof a || copy_from_user(a, args, nas[call]))
123270 return -EFAULT;
123271 a0 = a[0];
123272 a1 = a[1];
123273 diff --git a/net/core/datagram.c b/net/core/datagram.c
123274 index d62af69..2e07b22 100644
123275 --- a/net/core/datagram.c
123276 +++ b/net/core/datagram.c
123277 @@ -338,7 +338,7 @@ int skb_kill_datagram(struct sock *sk, struct sk_buff *skb, unsigned int flags)
123278 }
123279
123280 kfree_skb(skb);
123281 - atomic_inc(&sk->sk_drops);
123282 + atomic_inc_unchecked(&sk->sk_drops);
123283 sk_mem_reclaim_partial(sk);
123284
123285 return err;
123286 diff --git a/net/core/dev.c b/net/core/dev.c
123287 index 9efbdb3..16a834b 100644
123288 --- a/net/core/dev.c
123289 +++ b/net/core/dev.c
123290 @@ -1748,7 +1748,7 @@ int __dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
123291 {
123292 if (skb_orphan_frags(skb, GFP_ATOMIC) ||
123293 unlikely(!is_skb_forwardable(dev, skb))) {
123294 - atomic_long_inc(&dev->rx_dropped);
123295 + atomic_long_inc_unchecked(&dev->rx_dropped);
123296 kfree_skb(skb);
123297 return NET_RX_DROP;
123298 }
123299 @@ -3173,7 +3173,7 @@ recursion_alert:
123300 drop:
123301 rcu_read_unlock_bh();
123302
123303 - atomic_long_inc(&dev->tx_dropped);
123304 + atomic_long_inc_unchecked(&dev->tx_dropped);
123305 kfree_skb_list(skb);
123306 return rc;
123307 out:
123308 @@ -3525,7 +3525,7 @@ drop:
123309
123310 local_irq_restore(flags);
123311
123312 - atomic_long_inc(&skb->dev->rx_dropped);
123313 + atomic_long_inc_unchecked(&skb->dev->rx_dropped);
123314 kfree_skb(skb);
123315 return NET_RX_DROP;
123316 }
123317 @@ -3602,7 +3602,7 @@ int netif_rx_ni(struct sk_buff *skb)
123318 }
123319 EXPORT_SYMBOL(netif_rx_ni);
123320
123321 -static void net_tx_action(struct softirq_action *h)
123322 +static __latent_entropy void net_tx_action(void)
123323 {
123324 struct softnet_data *sd = this_cpu_ptr(&softnet_data);
123325
123326 @@ -3948,7 +3948,7 @@ ncls:
123327 ret = pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
123328 } else {
123329 drop:
123330 - atomic_long_inc(&skb->dev->rx_dropped);
123331 + atomic_long_inc_unchecked(&skb->dev->rx_dropped);
123332 kfree_skb(skb);
123333 /* Jamal, now you will not able to escape explaining
123334 * me how you were going to use this. :-)
123335 @@ -4844,7 +4844,7 @@ out_unlock:
123336 return work;
123337 }
123338
123339 -static void net_rx_action(struct softirq_action *h)
123340 +static __latent_entropy void net_rx_action(void)
123341 {
123342 struct softnet_data *sd = this_cpu_ptr(&softnet_data);
123343 unsigned long time_limit = jiffies + 2;
123344 @@ -7004,8 +7004,8 @@ struct rtnl_link_stats64 *dev_get_stats(struct net_device *dev,
123345 } else {
123346 netdev_stats_to_stats64(storage, &dev->stats);
123347 }
123348 - storage->rx_dropped += atomic_long_read(&dev->rx_dropped);
123349 - storage->tx_dropped += atomic_long_read(&dev->tx_dropped);
123350 + storage->rx_dropped += atomic_long_read_unchecked(&dev->rx_dropped);
123351 + storage->tx_dropped += atomic_long_read_unchecked(&dev->tx_dropped);
123352 return storage;
123353 }
123354 EXPORT_SYMBOL(dev_get_stats);
123355 diff --git a/net/core/dev_ioctl.c b/net/core/dev_ioctl.c
123356 index b94b1d2..da3ed7c 100644
123357 --- a/net/core/dev_ioctl.c
123358 +++ b/net/core/dev_ioctl.c
123359 @@ -368,8 +368,13 @@ void dev_load(struct net *net, const char *name)
123360 no_module = !dev;
123361 if (no_module && capable(CAP_NET_ADMIN))
123362 no_module = request_module("netdev-%s", name);
123363 - if (no_module && capable(CAP_SYS_MODULE))
123364 + if (no_module && capable(CAP_SYS_MODULE)) {
123365 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
123366 + ___request_module(true, "grsec_modharden_netdev", "%s", name);
123367 +#else
123368 request_module("%s", name);
123369 +#endif
123370 + }
123371 }
123372 EXPORT_SYMBOL(dev_load);
123373
123374 diff --git a/net/core/filter.c b/net/core/filter.c
123375 index 37157c4..3cdff69 100644
123376 --- a/net/core/filter.c
123377 +++ b/net/core/filter.c
123378 @@ -580,7 +580,11 @@ do_pass:
123379
123380 /* Unknown instruction. */
123381 default:
123382 - goto err;
123383 + WARN(1, KERN_ALERT "Unknown sock filter code:%u jt:%u tf:%u k:%u\n",
123384 + fp->code, fp->jt, fp->jf, fp->k);
123385 + kfree(addrs);
123386 + BUG();
123387 + return -EINVAL;
123388 }
123389
123390 insn++;
123391 @@ -624,7 +628,7 @@ static int check_load_and_stores(const struct sock_filter *filter, int flen)
123392 u16 *masks, memvalid = 0; /* One bit per cell, 16 cells */
123393 int pc, ret = 0;
123394
123395 - BUILD_BUG_ON(BPF_MEMWORDS > 16);
123396 + BUILD_BUG_ON(BPF_MEMWORDS != 16);
123397
123398 masks = kmalloc_array(flen, sizeof(*masks), GFP_KERNEL);
123399 if (!masks)
123400 @@ -1058,7 +1062,7 @@ int bpf_prog_create(struct bpf_prog **pfp, struct sock_fprog_kern *fprog)
123401 if (!fp)
123402 return -ENOMEM;
123403
123404 - memcpy(fp->insns, fprog->filter, fsize);
123405 + memcpy(fp->insns, (void __force_kernel *)fprog->filter, fsize);
123406
123407 fp->len = fprog->len;
123408 /* Since unattached filters are not copied back to user
123409 diff --git a/net/core/flow.c b/net/core/flow.c
123410 index 1033725..340f65d 100644
123411 --- a/net/core/flow.c
123412 +++ b/net/core/flow.c
123413 @@ -65,7 +65,7 @@ static void flow_cache_new_hashrnd(unsigned long arg)
123414 static int flow_entry_valid(struct flow_cache_entry *fle,
123415 struct netns_xfrm *xfrm)
123416 {
123417 - if (atomic_read(&xfrm->flow_cache_genid) != fle->genid)
123418 + if (atomic_read_unchecked(&xfrm->flow_cache_genid) != fle->genid)
123419 return 0;
123420 if (fle->object && !fle->object->ops->check(fle->object))
123421 return 0;
123422 @@ -242,7 +242,7 @@ flow_cache_lookup(struct net *net, const struct flowi *key, u16 family, u8 dir,
123423 hlist_add_head(&fle->u.hlist, &fcp->hash_table[hash]);
123424 fcp->hash_count++;
123425 }
123426 - } else if (likely(fle->genid == atomic_read(&net->xfrm.flow_cache_genid))) {
123427 + } else if (likely(fle->genid == atomic_read_unchecked(&net->xfrm.flow_cache_genid))) {
123428 flo = fle->object;
123429 if (!flo)
123430 goto ret_object;
123431 @@ -263,7 +263,7 @@ nocache:
123432 }
123433 flo = resolver(net, key, family, dir, flo, ctx);
123434 if (fle) {
123435 - fle->genid = atomic_read(&net->xfrm.flow_cache_genid);
123436 + fle->genid = atomic_read_unchecked(&net->xfrm.flow_cache_genid);
123437 if (!IS_ERR(flo))
123438 fle->object = flo;
123439 else
123440 diff --git a/net/core/neighbour.c b/net/core/neighbour.c
123441 index f18ae91..f033693 100644
123442 --- a/net/core/neighbour.c
123443 +++ b/net/core/neighbour.c
123444 @@ -860,7 +860,7 @@ static void neigh_probe(struct neighbour *neigh)
123445 skb = skb_clone(skb, GFP_ATOMIC);
123446 write_unlock(&neigh->lock);
123447 neigh->ops->solicit(neigh, skb);
123448 - atomic_inc(&neigh->probes);
123449 + atomic_inc_unchecked(&neigh->probes);
123450 kfree_skb(skb);
123451 }
123452
123453 @@ -916,7 +916,7 @@ static void neigh_timer_handler(unsigned long arg)
123454 neigh_dbg(2, "neigh %p is probed\n", neigh);
123455 neigh->nud_state = NUD_PROBE;
123456 neigh->updated = jiffies;
123457 - atomic_set(&neigh->probes, 0);
123458 + atomic_set_unchecked(&neigh->probes, 0);
123459 notify = 1;
123460 next = now + NEIGH_VAR(neigh->parms, RETRANS_TIME);
123461 }
123462 @@ -926,7 +926,7 @@ static void neigh_timer_handler(unsigned long arg)
123463 }
123464
123465 if ((neigh->nud_state & (NUD_INCOMPLETE | NUD_PROBE)) &&
123466 - atomic_read(&neigh->probes) >= neigh_max_probes(neigh)) {
123467 + atomic_read_unchecked(&neigh->probes) >= neigh_max_probes(neigh)) {
123468 neigh->nud_state = NUD_FAILED;
123469 notify = 1;
123470 neigh_invalidate(neigh);
123471 @@ -970,7 +970,7 @@ int __neigh_event_send(struct neighbour *neigh, struct sk_buff *skb)
123472 NEIGH_VAR(neigh->parms, APP_PROBES)) {
123473 unsigned long next, now = jiffies;
123474
123475 - atomic_set(&neigh->probes,
123476 + atomic_set_unchecked(&neigh->probes,
123477 NEIGH_VAR(neigh->parms, UCAST_PROBES));
123478 neigh->nud_state = NUD_INCOMPLETE;
123479 neigh->updated = now;
123480 @@ -1161,7 +1161,7 @@ int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new,
123481 if (new != old) {
123482 neigh_del_timer(neigh);
123483 if (new & NUD_PROBE)
123484 - atomic_set(&neigh->probes, 0);
123485 + atomic_set_unchecked(&neigh->probes, 0);
123486 if (new & NUD_IN_TIMER)
123487 neigh_add_timer(neigh, (jiffies +
123488 ((new & NUD_REACHABLE) ?
123489 @@ -1249,7 +1249,7 @@ void __neigh_set_probe_once(struct neighbour *neigh)
123490 if (!(neigh->nud_state & NUD_FAILED))
123491 return;
123492 neigh->nud_state = NUD_INCOMPLETE;
123493 - atomic_set(&neigh->probes, neigh_max_probes(neigh));
123494 + atomic_set_unchecked(&neigh->probes, neigh_max_probes(neigh));
123495 neigh_add_timer(neigh,
123496 jiffies + NEIGH_VAR(neigh->parms, RETRANS_TIME));
123497 }
123498 @@ -2186,7 +2186,7 @@ static int neigh_fill_info(struct sk_buff *skb, struct neighbour *neigh,
123499 ci.ndm_refcnt = atomic_read(&neigh->refcnt) - 1;
123500 read_unlock_bh(&neigh->lock);
123501
123502 - if (nla_put_u32(skb, NDA_PROBES, atomic_read(&neigh->probes)) ||
123503 + if (nla_put_u32(skb, NDA_PROBES, atomic_read_unchecked(&neigh->probes)) ||
123504 nla_put(skb, NDA_CACHEINFO, sizeof(ci), &ci))
123505 goto nla_put_failure;
123506
123507 @@ -2870,7 +2870,7 @@ static int proc_unres_qlen(struct ctl_table *ctl, int write,
123508 void __user *buffer, size_t *lenp, loff_t *ppos)
123509 {
123510 int size, ret;
123511 - struct ctl_table tmp = *ctl;
123512 + ctl_table_no_const tmp = *ctl;
123513
123514 tmp.extra1 = &zero;
123515 tmp.extra2 = &unres_qlen_max;
123516 @@ -2932,7 +2932,7 @@ static int neigh_proc_dointvec_zero_intmax(struct ctl_table *ctl, int write,
123517 void __user *buffer,
123518 size_t *lenp, loff_t *ppos)
123519 {
123520 - struct ctl_table tmp = *ctl;
123521 + ctl_table_no_const tmp = *ctl;
123522 int ret;
123523
123524 tmp.extra1 = &zero;
123525 diff --git a/net/core/net-procfs.c b/net/core/net-procfs.c
123526 index 2bf8329..2eb1423 100644
123527 --- a/net/core/net-procfs.c
123528 +++ b/net/core/net-procfs.c
123529 @@ -79,7 +79,13 @@ static void dev_seq_printf_stats(struct seq_file *seq, struct net_device *dev)
123530 struct rtnl_link_stats64 temp;
123531 const struct rtnl_link_stats64 *stats = dev_get_stats(dev, &temp);
123532
123533 - seq_printf(seq, "%6s: %7llu %7llu %4llu %4llu %4llu %5llu %10llu %9llu "
123534 + if (gr_proc_is_restricted())
123535 + seq_printf(seq, "%6s: %7llu %7llu %4llu %4llu %4llu %5llu %10llu %9llu "
123536 + "%8llu %7llu %4llu %4llu %4llu %5llu %7llu %10llu\n",
123537 + dev->name, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL,
123538 + 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL);
123539 + else
123540 + seq_printf(seq, "%6s: %7llu %7llu %4llu %4llu %4llu %5llu %10llu %9llu "
123541 "%8llu %7llu %4llu %4llu %4llu %5llu %7llu %10llu\n",
123542 dev->name, stats->rx_bytes, stats->rx_packets,
123543 stats->rx_errors,
123544 @@ -166,7 +172,7 @@ static int softnet_seq_show(struct seq_file *seq, void *v)
123545 return 0;
123546 }
123547
123548 -static const struct seq_operations dev_seq_ops = {
123549 +const struct seq_operations dev_seq_ops = {
123550 .start = dev_seq_start,
123551 .next = dev_seq_next,
123552 .stop = dev_seq_stop,
123553 @@ -196,7 +202,7 @@ static const struct seq_operations softnet_seq_ops = {
123554
123555 static int softnet_seq_open(struct inode *inode, struct file *file)
123556 {
123557 - return seq_open(file, &softnet_seq_ops);
123558 + return seq_open_restrict(file, &softnet_seq_ops);
123559 }
123560
123561 static const struct file_operations softnet_seq_fops = {
123562 @@ -283,8 +289,13 @@ static int ptype_seq_show(struct seq_file *seq, void *v)
123563 else
123564 seq_printf(seq, "%04x", ntohs(pt->type));
123565
123566 +#ifdef CONFIG_GRKERNSEC_HIDESYM
123567 + seq_printf(seq, " %-8s %pf\n",
123568 + pt->dev ? pt->dev->name : "", NULL);
123569 +#else
123570 seq_printf(seq, " %-8s %pf\n",
123571 pt->dev ? pt->dev->name : "", pt->func);
123572 +#endif
123573 }
123574
123575 return 0;
123576 diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
123577 index f88a62ab..ba29125 100644
123578 --- a/net/core/net-sysfs.c
123579 +++ b/net/core/net-sysfs.c
123580 @@ -287,7 +287,7 @@ static ssize_t carrier_changes_show(struct device *dev,
123581 {
123582 struct net_device *netdev = to_net_dev(dev);
123583 return sprintf(buf, fmt_dec,
123584 - atomic_read(&netdev->carrier_changes));
123585 + atomic_read_unchecked(&netdev->carrier_changes));
123586 }
123587 static DEVICE_ATTR_RO(carrier_changes);
123588
123589 diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
123590 index 2c2eb1b..a53be3e 100644
123591 --- a/net/core/net_namespace.c
123592 +++ b/net/core/net_namespace.c
123593 @@ -775,7 +775,7 @@ static int __register_pernet_operations(struct list_head *list,
123594 int error;
123595 LIST_HEAD(net_exit_list);
123596
123597 - list_add_tail(&ops->list, list);
123598 + pax_list_add_tail((struct list_head *)&ops->list, list);
123599 if (ops->init || (ops->id && ops->size)) {
123600 for_each_net(net) {
123601 error = ops_init(ops, net);
123602 @@ -788,7 +788,7 @@ static int __register_pernet_operations(struct list_head *list,
123603
123604 out_undo:
123605 /* If I have an error cleanup all namespaces I initialized */
123606 - list_del(&ops->list);
123607 + pax_list_del((struct list_head *)&ops->list);
123608 ops_exit_list(ops, &net_exit_list);
123609 ops_free_list(ops, &net_exit_list);
123610 return error;
123611 @@ -799,7 +799,7 @@ static void __unregister_pernet_operations(struct pernet_operations *ops)
123612 struct net *net;
123613 LIST_HEAD(net_exit_list);
123614
123615 - list_del(&ops->list);
123616 + pax_list_del((struct list_head *)&ops->list);
123617 for_each_net(net)
123618 list_add_tail(&net->exit_list, &net_exit_list);
123619 ops_exit_list(ops, &net_exit_list);
123620 @@ -933,7 +933,7 @@ int register_pernet_device(struct pernet_operations *ops)
123621 mutex_lock(&net_mutex);
123622 error = register_pernet_operations(&pernet_list, ops);
123623 if (!error && (first_device == &pernet_list))
123624 - first_device = &ops->list;
123625 + first_device = (struct list_head *)&ops->list;
123626 mutex_unlock(&net_mutex);
123627 return error;
123628 }
123629 diff --git a/net/core/netpoll.c b/net/core/netpoll.c
123630 index 94acfc8..01545c0 100644
123631 --- a/net/core/netpoll.c
123632 +++ b/net/core/netpoll.c
123633 @@ -382,7 +382,7 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len)
123634 struct udphdr *udph;
123635 struct iphdr *iph;
123636 struct ethhdr *eth;
123637 - static atomic_t ip_ident;
123638 + static atomic_unchecked_t ip_ident;
123639 struct ipv6hdr *ip6h;
123640
123641 WARN_ON_ONCE(!irqs_disabled());
123642 @@ -455,7 +455,7 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len)
123643 put_unaligned(0x45, (unsigned char *)iph);
123644 iph->tos = 0;
123645 put_unaligned(htons(ip_len), &(iph->tot_len));
123646 - iph->id = htons(atomic_inc_return(&ip_ident));
123647 + iph->id = htons(atomic_inc_return_unchecked(&ip_ident));
123648 iph->frag_off = 0;
123649 iph->ttl = 64;
123650 iph->protocol = IPPROTO_UDP;
123651 diff --git a/net/core/pktgen.c b/net/core/pktgen.c
123652 index 4da4d51..ef1aa60 100644
123653 --- a/net/core/pktgen.c
123654 +++ b/net/core/pktgen.c
123655 @@ -3829,7 +3829,7 @@ static int __net_init pg_net_init(struct net *net)
123656 pn->net = net;
123657 INIT_LIST_HEAD(&pn->pktgen_threads);
123658 pn->pktgen_exiting = false;
123659 - pn->proc_dir = proc_mkdir(PG_PROC_DIR, pn->net->proc_net);
123660 + pn->proc_dir = proc_mkdir_restrict(PG_PROC_DIR, pn->net->proc_net);
123661 if (!pn->proc_dir) {
123662 pr_warn("cannot create /proc/net/%s\n", PG_PROC_DIR);
123663 return -ENODEV;
123664 diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
123665 index 34ba7a0..5ebb8ef 100644
123666 --- a/net/core/rtnetlink.c
123667 +++ b/net/core/rtnetlink.c
123668 @@ -61,7 +61,7 @@ struct rtnl_link {
123669 rtnl_doit_func doit;
123670 rtnl_dumpit_func dumpit;
123671 rtnl_calcit_func calcit;
123672 -};
123673 +} __no_const;
123674
123675 static DEFINE_MUTEX(rtnl_mutex);
123676
123677 @@ -307,10 +307,13 @@ int __rtnl_link_register(struct rtnl_link_ops *ops)
123678 * to use the ops for creating device. So do not
123679 * fill up dellink as well. That disables rtnl_dellink.
123680 */
123681 - if (ops->setup && !ops->dellink)
123682 - ops->dellink = unregister_netdevice_queue;
123683 + if (ops->setup && !ops->dellink) {
123684 + pax_open_kernel();
123685 + *(void **)&ops->dellink = unregister_netdevice_queue;
123686 + pax_close_kernel();
123687 + }
123688
123689 - list_add_tail(&ops->list, &link_ops);
123690 + pax_list_add_tail((struct list_head *)&ops->list, &link_ops);
123691 return 0;
123692 }
123693 EXPORT_SYMBOL_GPL(__rtnl_link_register);
123694 @@ -357,7 +360,7 @@ void __rtnl_link_unregister(struct rtnl_link_ops *ops)
123695 for_each_net(net) {
123696 __rtnl_kill_links(net, ops);
123697 }
123698 - list_del(&ops->list);
123699 + pax_list_del((struct list_head *)&ops->list);
123700 }
123701 EXPORT_SYMBOL_GPL(__rtnl_link_unregister);
123702
123703 @@ -1233,7 +1236,7 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
123704 (dev->ifalias &&
123705 nla_put_string(skb, IFLA_IFALIAS, dev->ifalias)) ||
123706 nla_put_u32(skb, IFLA_CARRIER_CHANGES,
123707 - atomic_read(&dev->carrier_changes)) ||
123708 + atomic_read_unchecked(&dev->carrier_changes)) ||
123709 nla_put_u8(skb, IFLA_PROTO_DOWN, dev->proto_down))
123710 goto nla_put_failure;
123711
123712 @@ -3385,7 +3388,7 @@ static int rtnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
123713 __rtnl_unlock();
123714 rtnl = net->rtnl;
123715 {
123716 - struct netlink_dump_control c = {
123717 + netlink_dump_control_no_const c = {
123718 .dump = dumpit,
123719 .min_dump_alloc = min_dump_alloc,
123720 };
123721 diff --git a/net/core/scm.c b/net/core/scm.c
123722 index dce0acb..69f6cac 100644
123723 --- a/net/core/scm.c
123724 +++ b/net/core/scm.c
123725 @@ -215,9 +215,9 @@ EXPORT_SYMBOL(__scm_send);
123726 int put_cmsg(struct msghdr * msg, int level, int type, int len, void *data)
123727 {
123728 struct cmsghdr __user *cm
123729 - = (__force struct cmsghdr __user *)msg->msg_control;
123730 + = (struct cmsghdr __force_user *)msg->msg_control;
123731 struct cmsghdr cmhdr;
123732 - int cmlen = CMSG_LEN(len);
123733 + size_t cmlen = CMSG_LEN(len);
123734 int err;
123735
123736 if (MSG_CMSG_COMPAT & msg->msg_flags)
123737 @@ -238,7 +238,7 @@ int put_cmsg(struct msghdr * msg, int level, int type, int len, void *data)
123738 err = -EFAULT;
123739 if (copy_to_user(cm, &cmhdr, sizeof cmhdr))
123740 goto out;
123741 - if (copy_to_user(CMSG_DATA(cm), data, cmlen - sizeof(struct cmsghdr)))
123742 + if (copy_to_user((void __force_user *)CMSG_DATA((void __force_kernel *)cm), data, cmlen - sizeof(struct cmsghdr)))
123743 goto out;
123744 cmlen = CMSG_SPACE(len);
123745 if (msg->msg_controllen < cmlen)
123746 @@ -254,7 +254,7 @@ EXPORT_SYMBOL(put_cmsg);
123747 void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
123748 {
123749 struct cmsghdr __user *cm
123750 - = (__force struct cmsghdr __user*)msg->msg_control;
123751 + = (struct cmsghdr __force_user *)msg->msg_control;
123752
123753 int fdmax = 0;
123754 int fdnum = scm->fp->count;
123755 @@ -274,7 +274,7 @@ void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
123756 if (fdnum < fdmax)
123757 fdmax = fdnum;
123758
123759 - for (i=0, cmfptr=(__force int __user *)CMSG_DATA(cm); i<fdmax;
123760 + for (i=0, cmfptr=(int __force_user *)CMSG_DATA((void __force_kernel *)cm); i<fdmax;
123761 i++, cmfptr++)
123762 {
123763 struct socket *sock;
123764 @@ -303,7 +303,7 @@ void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
123765
123766 if (i > 0)
123767 {
123768 - int cmlen = CMSG_LEN(i*sizeof(int));
123769 + size_t cmlen = CMSG_LEN(i*sizeof(int));
123770 err = put_user(SOL_SOCKET, &cm->cmsg_level);
123771 if (!err)
123772 err = put_user(SCM_RIGHTS, &cm->cmsg_type);
123773 diff --git a/net/core/skbuff.c b/net/core/skbuff.c
123774 index 5bf88f5..008242b 100644
123775 --- a/net/core/skbuff.c
123776 +++ b/net/core/skbuff.c
123777 @@ -971,7 +971,8 @@ static void skb_headers_offset_update(struct sk_buff *skb, int off)
123778 if (skb->ip_summed == CHECKSUM_PARTIAL)
123779 skb->csum_start += off;
123780 /* {transport,network,mac}_header and tail are relative to skb->head */
123781 - skb->transport_header += off;
123782 + if (skb_transport_header_was_set(skb))
123783 + skb->transport_header += off;
123784 skb->network_header += off;
123785 if (skb_mac_header_was_set(skb))
123786 skb->mac_header += off;
123787 @@ -2105,7 +2106,7 @@ EXPORT_SYMBOL(__skb_checksum);
123788 __wsum skb_checksum(const struct sk_buff *skb, int offset,
123789 int len, __wsum csum)
123790 {
123791 - const struct skb_checksum_ops ops = {
123792 + static const struct skb_checksum_ops ops = {
123793 .update = csum_partial_ext,
123794 .combine = csum_block_add_ext,
123795 };
123796 @@ -3320,12 +3321,14 @@ void __init skb_init(void)
123797 skbuff_head_cache = kmem_cache_create("skbuff_head_cache",
123798 sizeof(struct sk_buff),
123799 0,
123800 - SLAB_HWCACHE_ALIGN|SLAB_PANIC,
123801 + SLAB_HWCACHE_ALIGN|SLAB_PANIC|
123802 + SLAB_NO_SANITIZE,
123803 NULL);
123804 skbuff_fclone_cache = kmem_cache_create("skbuff_fclone_cache",
123805 sizeof(struct sk_buff_fclones),
123806 0,
123807 - SLAB_HWCACHE_ALIGN|SLAB_PANIC,
123808 + SLAB_HWCACHE_ALIGN|SLAB_PANIC|
123809 + SLAB_NO_SANITIZE,
123810 NULL);
123811 }
123812
123813 diff --git a/net/core/sock.c b/net/core/sock.c
123814 index 0d91f7d..47dcbc8 100644
123815 --- a/net/core/sock.c
123816 +++ b/net/core/sock.c
123817 @@ -451,7 +451,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
123818 struct sk_buff_head *list = &sk->sk_receive_queue;
123819
123820 if (atomic_read(&sk->sk_rmem_alloc) >= sk->sk_rcvbuf) {
123821 - atomic_inc(&sk->sk_drops);
123822 + atomic_inc_unchecked(&sk->sk_drops);
123823 trace_sock_rcvqueue_full(sk, skb);
123824 return -ENOMEM;
123825 }
123826 @@ -461,7 +461,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
123827 return err;
123828
123829 if (!sk_rmem_schedule(sk, skb, skb->truesize)) {
123830 - atomic_inc(&sk->sk_drops);
123831 + atomic_inc_unchecked(&sk->sk_drops);
123832 return -ENOBUFS;
123833 }
123834
123835 @@ -494,7 +494,7 @@ int sk_receive_skb(struct sock *sk, struct sk_buff *skb, const int nested)
123836 skb->dev = NULL;
123837
123838 if (sk_rcvqueues_full(sk, sk->sk_rcvbuf)) {
123839 - atomic_inc(&sk->sk_drops);
123840 + atomic_inc_unchecked(&sk->sk_drops);
123841 goto discard_and_relse;
123842 }
123843 if (nested)
123844 @@ -512,7 +512,7 @@ int sk_receive_skb(struct sock *sk, struct sk_buff *skb, const int nested)
123845 mutex_release(&sk->sk_lock.dep_map, 1, _RET_IP_);
123846 } else if (sk_add_backlog(sk, skb, sk->sk_rcvbuf)) {
123847 bh_unlock_sock(sk);
123848 - atomic_inc(&sk->sk_drops);
123849 + atomic_inc_unchecked(&sk->sk_drops);
123850 goto discard_and_relse;
123851 }
123852
123853 @@ -919,6 +919,7 @@ set_rcvbuf:
123854 }
123855 break;
123856
123857 +#ifndef GRKERNSEC_BPF_HARDEN
123858 case SO_ATTACH_BPF:
123859 ret = -EINVAL;
123860 if (optlen == sizeof(u32)) {
123861 @@ -931,7 +932,7 @@ set_rcvbuf:
123862 ret = sk_attach_bpf(ufd, sk);
123863 }
123864 break;
123865 -
123866 +#endif
123867 case SO_DETACH_FILTER:
123868 ret = sk_detach_filter(sk);
123869 break;
123870 @@ -1037,12 +1038,12 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
123871 struct timeval tm;
123872 } v;
123873
123874 - int lv = sizeof(int);
123875 - int len;
123876 + unsigned int lv = sizeof(int);
123877 + unsigned int len;
123878
123879 if (get_user(len, optlen))
123880 return -EFAULT;
123881 - if (len < 0)
123882 + if (len > INT_MAX)
123883 return -EINVAL;
123884
123885 memset(&v, 0, sizeof(v));
123886 @@ -1180,11 +1181,11 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
123887
123888 case SO_PEERNAME:
123889 {
123890 - char address[128];
123891 + char address[_K_SS_MAXSIZE];
123892
123893 if (sock->ops->getname(sock, (struct sockaddr *)address, &lv, 2))
123894 return -ENOTCONN;
123895 - if (lv < len)
123896 + if (lv < len || sizeof address < len)
123897 return -EINVAL;
123898 if (copy_to_user(optval, address, len))
123899 return -EFAULT;
123900 @@ -1272,7 +1273,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
123901
123902 if (len > lv)
123903 len = lv;
123904 - if (copy_to_user(optval, &v, len))
123905 + if (len > sizeof(v) || copy_to_user(optval, &v, len))
123906 return -EFAULT;
123907 lenout:
123908 if (put_user(len, optlen))
123909 @@ -1564,7 +1565,7 @@ struct sock *sk_clone_lock(const struct sock *sk, const gfp_t priority)
123910 newsk->sk_err = 0;
123911 newsk->sk_priority = 0;
123912 newsk->sk_incoming_cpu = raw_smp_processor_id();
123913 - atomic64_set(&newsk->sk_cookie, 0);
123914 + atomic64_set_unchecked(&newsk->sk_cookie, 0);
123915 /*
123916 * Before updating sk_refcnt, we must commit prior changes to memory
123917 * (Documentation/RCU/rculist_nulls.txt for details)
123918 @@ -2424,7 +2425,7 @@ void sock_init_data(struct socket *sock, struct sock *sk)
123919 */
123920 smp_wmb();
123921 atomic_set(&sk->sk_refcnt, 1);
123922 - atomic_set(&sk->sk_drops, 0);
123923 + atomic_set_unchecked(&sk->sk_drops, 0);
123924 }
123925 EXPORT_SYMBOL(sock_init_data);
123926
123927 @@ -2553,6 +2554,7 @@ void sock_enable_timestamp(struct sock *sk, int flag)
123928 int sock_recv_errqueue(struct sock *sk, struct msghdr *msg, int len,
123929 int level, int type)
123930 {
123931 + struct sock_extended_err ee;
123932 struct sock_exterr_skb *serr;
123933 struct sk_buff *skb;
123934 int copied, err;
123935 @@ -2574,7 +2576,8 @@ int sock_recv_errqueue(struct sock *sk, struct msghdr *msg, int len,
123936 sock_recv_timestamp(msg, sk, skb);
123937
123938 serr = SKB_EXT_ERR(skb);
123939 - put_cmsg(msg, level, type, sizeof(serr->ee), &serr->ee);
123940 + ee = serr->ee;
123941 + put_cmsg(msg, level, type, sizeof ee, &ee);
123942
123943 msg->msg_flags |= MSG_ERRQUEUE;
123944 err = copied;
123945 diff --git a/net/core/sock_diag.c b/net/core/sock_diag.c
123946 index 0c1d58d..e6ad04f 100644
123947 --- a/net/core/sock_diag.c
123948 +++ b/net/core/sock_diag.c
123949 @@ -14,7 +14,7 @@
123950 #include <linux/inet_diag.h>
123951 #include <linux/sock_diag.h>
123952
123953 -static const struct sock_diag_handler *sock_diag_handlers[AF_MAX];
123954 +static const struct sock_diag_handler *sock_diag_handlers[AF_MAX] __read_only;
123955 static int (*inet_rcv_compat)(struct sk_buff *skb, struct nlmsghdr *nlh);
123956 static DEFINE_MUTEX(sock_diag_table_mutex);
123957 static struct workqueue_struct *broadcast_wq;
123958 @@ -22,12 +22,12 @@ static struct workqueue_struct *broadcast_wq;
123959 static u64 sock_gen_cookie(struct sock *sk)
123960 {
123961 while (1) {
123962 - u64 res = atomic64_read(&sk->sk_cookie);
123963 + u64 res = atomic64_read_unchecked(&sk->sk_cookie);
123964
123965 if (res)
123966 return res;
123967 - res = atomic64_inc_return(&sock_net(sk)->cookie_gen);
123968 - atomic64_cmpxchg(&sk->sk_cookie, 0, res);
123969 + res = atomic64_inc_return_unchecked(&sock_net(sk)->cookie_gen);
123970 + atomic64_cmpxchg_unchecked(&sk->sk_cookie, 0, res);
123971 }
123972 }
123973
123974 @@ -192,8 +192,11 @@ int sock_diag_register(const struct sock_diag_handler *hndl)
123975 mutex_lock(&sock_diag_table_mutex);
123976 if (sock_diag_handlers[hndl->family])
123977 err = -EBUSY;
123978 - else
123979 + else {
123980 + pax_open_kernel();
123981 sock_diag_handlers[hndl->family] = hndl;
123982 + pax_close_kernel();
123983 + }
123984 mutex_unlock(&sock_diag_table_mutex);
123985
123986 return err;
123987 @@ -209,7 +212,9 @@ void sock_diag_unregister(const struct sock_diag_handler *hnld)
123988
123989 mutex_lock(&sock_diag_table_mutex);
123990 BUG_ON(sock_diag_handlers[family] != hnld);
123991 + pax_open_kernel();
123992 sock_diag_handlers[family] = NULL;
123993 + pax_close_kernel();
123994 mutex_unlock(&sock_diag_table_mutex);
123995 }
123996 EXPORT_SYMBOL_GPL(sock_diag_unregister);
123997 diff --git a/net/core/sysctl_net_core.c b/net/core/sysctl_net_core.c
123998 index a6beb7b..4d833b2 100644
123999 --- a/net/core/sysctl_net_core.c
124000 +++ b/net/core/sysctl_net_core.c
124001 @@ -36,7 +36,7 @@ static int rps_sock_flow_sysctl(struct ctl_table *table, int write,
124002 {
124003 unsigned int orig_size, size;
124004 int ret, i;
124005 - struct ctl_table tmp = {
124006 + ctl_table_no_const tmp = {
124007 .data = &size,
124008 .maxlen = sizeof(size),
124009 .mode = table->mode
124010 @@ -204,7 +204,7 @@ static int set_default_qdisc(struct ctl_table *table, int write,
124011 void __user *buffer, size_t *lenp, loff_t *ppos)
124012 {
124013 char id[IFNAMSIZ];
124014 - struct ctl_table tbl = {
124015 + ctl_table_no_const tbl = {
124016 .data = id,
124017 .maxlen = IFNAMSIZ,
124018 };
124019 @@ -222,7 +222,7 @@ static int set_default_qdisc(struct ctl_table *table, int write,
124020 static int proc_do_rss_key(struct ctl_table *table, int write,
124021 void __user *buffer, size_t *lenp, loff_t *ppos)
124022 {
124023 - struct ctl_table fake_table;
124024 + ctl_table_no_const fake_table;
124025 char buf[NETDEV_RSS_KEY_LEN * 3];
124026
124027 snprintf(buf, sizeof(buf), "%*phC", NETDEV_RSS_KEY_LEN, netdev_rss_key);
124028 @@ -286,7 +286,7 @@ static struct ctl_table net_core_table[] = {
124029 .mode = 0444,
124030 .proc_handler = proc_do_rss_key,
124031 },
124032 -#ifdef CONFIG_BPF_JIT
124033 +#if defined(CONFIG_BPF_JIT) && !defined(CONFIG_GRKERNSEC_BPF_HARDEN)
124034 {
124035 .procname = "bpf_jit_enable",
124036 .data = &bpf_jit_enable,
124037 @@ -419,13 +419,12 @@ static struct ctl_table netns_core_table[] = {
124038
124039 static __net_init int sysctl_core_net_init(struct net *net)
124040 {
124041 - struct ctl_table *tbl;
124042 + ctl_table_no_const *tbl = NULL;
124043
124044 net->core.sysctl_somaxconn = SOMAXCONN;
124045
124046 - tbl = netns_core_table;
124047 if (!net_eq(net, &init_net)) {
124048 - tbl = kmemdup(tbl, sizeof(netns_core_table), GFP_KERNEL);
124049 + tbl = kmemdup(netns_core_table, sizeof(netns_core_table), GFP_KERNEL);
124050 if (tbl == NULL)
124051 goto err_dup;
124052
124053 @@ -435,17 +434,16 @@ static __net_init int sysctl_core_net_init(struct net *net)
124054 if (net->user_ns != &init_user_ns) {
124055 tbl[0].procname = NULL;
124056 }
124057 - }
124058 -
124059 - net->core.sysctl_hdr = register_net_sysctl(net, "net/core", tbl);
124060 + net->core.sysctl_hdr = register_net_sysctl(net, "net/core", tbl);
124061 + } else
124062 + net->core.sysctl_hdr = register_net_sysctl(net, "net/core", netns_core_table);
124063 if (net->core.sysctl_hdr == NULL)
124064 goto err_reg;
124065
124066 return 0;
124067
124068 err_reg:
124069 - if (tbl != netns_core_table)
124070 - kfree(tbl);
124071 + kfree(tbl);
124072 err_dup:
124073 return -ENOMEM;
124074 }
124075 @@ -460,7 +458,7 @@ static __net_exit void sysctl_core_net_exit(struct net *net)
124076 kfree(tbl);
124077 }
124078
124079 -static __net_initdata struct pernet_operations sysctl_core_ops = {
124080 +static __net_initconst struct pernet_operations sysctl_core_ops = {
124081 .init = sysctl_core_net_init,
124082 .exit = sysctl_core_net_exit,
124083 };
124084 diff --git a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c
124085 index 13d6b1a..0ac2a9b 100644
124086 --- a/net/decnet/af_decnet.c
124087 +++ b/net/decnet/af_decnet.c
124088 @@ -466,6 +466,7 @@ static struct proto dn_proto = {
124089 .sysctl_rmem = sysctl_decnet_rmem,
124090 .max_header = DN_MAX_NSP_DATA_HEADER + 64,
124091 .obj_size = sizeof(struct dn_sock),
124092 + .slab_flags = SLAB_USERCOPY,
124093 };
124094
124095 static struct sock *dn_alloc_sock(struct net *net, struct socket *sock, gfp_t gfp, int kern)
124096 diff --git a/net/decnet/dn_dev.c b/net/decnet/dn_dev.c
124097 index b2c26b0..41f803e 100644
124098 --- a/net/decnet/dn_dev.c
124099 +++ b/net/decnet/dn_dev.c
124100 @@ -201,7 +201,7 @@ static struct dn_dev_sysctl_table {
124101 .extra1 = &min_t3,
124102 .extra2 = &max_t3
124103 },
124104 - {0}
124105 + { }
124106 },
124107 };
124108
124109 diff --git a/net/decnet/sysctl_net_decnet.c b/net/decnet/sysctl_net_decnet.c
124110 index 5325b54..a0d4d69 100644
124111 --- a/net/decnet/sysctl_net_decnet.c
124112 +++ b/net/decnet/sysctl_net_decnet.c
124113 @@ -174,7 +174,7 @@ static int dn_node_address_handler(struct ctl_table *table, int write,
124114
124115 if (len > *lenp) len = *lenp;
124116
124117 - if (copy_to_user(buffer, addr, len))
124118 + if (len > sizeof addr || copy_to_user(buffer, addr, len))
124119 return -EFAULT;
124120
124121 *lenp = len;
124122 @@ -237,7 +237,7 @@ static int dn_def_dev_handler(struct ctl_table *table, int write,
124123
124124 if (len > *lenp) len = *lenp;
124125
124126 - if (copy_to_user(buffer, devname, len))
124127 + if (len > sizeof devname || copy_to_user(buffer, devname, len))
124128 return -EFAULT;
124129
124130 *lenp = len;
124131 diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c
124132 index 1eba07f..4859469 100644
124133 --- a/net/dsa/dsa.c
124134 +++ b/net/dsa/dsa.c
124135 @@ -999,7 +999,7 @@ static struct packet_type dsa_pack_type __read_mostly = {
124136 .func = dsa_switch_rcv,
124137 };
124138
124139 -static struct notifier_block dsa_netdevice_nb __read_mostly = {
124140 +static struct notifier_block dsa_netdevice_nb = {
124141 .notifier_call = dsa_slave_netdevice_event,
124142 };
124143
124144 diff --git a/net/hsr/hsr_netlink.c b/net/hsr/hsr_netlink.c
124145 index a2c7e4c..3dc9f67 100644
124146 --- a/net/hsr/hsr_netlink.c
124147 +++ b/net/hsr/hsr_netlink.c
124148 @@ -102,7 +102,7 @@ nla_put_failure:
124149 return -EMSGSIZE;
124150 }
124151
124152 -static struct rtnl_link_ops hsr_link_ops __read_mostly = {
124153 +static struct rtnl_link_ops hsr_link_ops = {
124154 .kind = "hsr",
124155 .maxtype = IFLA_HSR_MAX,
124156 .policy = hsr_policy,
124157 diff --git a/net/ieee802154/6lowpan/core.c b/net/ieee802154/6lowpan/core.c
124158 index 20c49c7..94377ab 100644
124159 --- a/net/ieee802154/6lowpan/core.c
124160 +++ b/net/ieee802154/6lowpan/core.c
124161 @@ -184,7 +184,7 @@ static void lowpan_dellink(struct net_device *ldev, struct list_head *head)
124162 dev_put(wdev);
124163 }
124164
124165 -static struct rtnl_link_ops lowpan_link_ops __read_mostly = {
124166 +static struct rtnl_link_ops lowpan_link_ops = {
124167 .kind = "lowpan",
124168 .priv_size = LOWPAN_PRIV_SIZE(sizeof(struct lowpan_dev_info)),
124169 .setup = lowpan_setup,
124170 diff --git a/net/ieee802154/6lowpan/reassembly.c b/net/ieee802154/6lowpan/reassembly.c
124171 index 6b437e8..47c6566 100644
124172 --- a/net/ieee802154/6lowpan/reassembly.c
124173 +++ b/net/ieee802154/6lowpan/reassembly.c
124174 @@ -492,14 +492,13 @@ static struct ctl_table lowpan_frags_ctl_table[] = {
124175
124176 static int __net_init lowpan_frags_ns_sysctl_register(struct net *net)
124177 {
124178 - struct ctl_table *table;
124179 + ctl_table_no_const *table = NULL;
124180 struct ctl_table_header *hdr;
124181 struct netns_ieee802154_lowpan *ieee802154_lowpan =
124182 net_ieee802154_lowpan(net);
124183
124184 - table = lowpan_frags_ns_ctl_table;
124185 if (!net_eq(net, &init_net)) {
124186 - table = kmemdup(table, sizeof(lowpan_frags_ns_ctl_table),
124187 + table = kmemdup(lowpan_frags_ns_ctl_table, sizeof(lowpan_frags_ns_ctl_table),
124188 GFP_KERNEL);
124189 if (table == NULL)
124190 goto err_alloc;
124191 @@ -514,9 +513,9 @@ static int __net_init lowpan_frags_ns_sysctl_register(struct net *net)
124192 /* Don't export sysctls to unprivileged users */
124193 if (net->user_ns != &init_user_ns)
124194 table[0].procname = NULL;
124195 - }
124196 -
124197 - hdr = register_net_sysctl(net, "net/ieee802154/6lowpan", table);
124198 + hdr = register_net_sysctl(net, "net/ieee802154/6lowpan", table);
124199 + } else
124200 + hdr = register_net_sysctl(net, "net/ieee802154/6lowpan", lowpan_frags_ns_ctl_table);
124201 if (hdr == NULL)
124202 goto err_reg;
124203
124204 @@ -524,8 +523,7 @@ static int __net_init lowpan_frags_ns_sysctl_register(struct net *net)
124205 return 0;
124206
124207 err_reg:
124208 - if (!net_eq(net, &init_net))
124209 - kfree(table);
124210 + kfree(table);
124211 err_alloc:
124212 return -ENOMEM;
124213 }
124214 diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig
124215 index 416dfa0..6e41f17 100644
124216 --- a/net/ipv4/Kconfig
124217 +++ b/net/ipv4/Kconfig
124218 @@ -353,6 +353,7 @@ config INET_ESP
124219 select CRYPTO_CBC
124220 select CRYPTO_SHA1
124221 select CRYPTO_DES
124222 + select CRYPTO_ECHAINIV
124223 ---help---
124224 Support for IPsec ESP.
124225
124226 diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
124227 index 5c5db66..c10a4a2 100644
124228 --- a/net/ipv4/af_inet.c
124229 +++ b/net/ipv4/af_inet.c
124230 @@ -1389,7 +1389,7 @@ int inet_recv_error(struct sock *sk, struct msghdr *msg, int len, int *addr_len)
124231 return ip_recv_error(sk, msg, len, addr_len);
124232 #if IS_ENABLED(CONFIG_IPV6)
124233 if (sk->sk_family == AF_INET6)
124234 - return pingv6_ops.ipv6_recv_error(sk, msg, len, addr_len);
124235 + return pingv6_ops->ipv6_recv_error(sk, msg, len, addr_len);
124236 #endif
124237 return -EINVAL;
124238 }
124239 diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c
124240 index 59b3e0e..ff060b8 100644
124241 --- a/net/ipv4/arp.c
124242 +++ b/net/ipv4/arp.c
124243 @@ -332,7 +332,7 @@ static void arp_solicit(struct neighbour *neigh, struct sk_buff *skb)
124244 u8 dst_ha[MAX_ADDR_LEN], *dst_hw = NULL;
124245 struct net_device *dev = neigh->dev;
124246 __be32 target = *(__be32 *)neigh->primary_key;
124247 - int probes = atomic_read(&neigh->probes);
124248 + int probes = atomic_read_unchecked(&neigh->probes);
124249 struct in_device *in_dev;
124250 struct dst_entry *dst = NULL;
124251
124252 diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
124253 index f6303b1..d524bab 100644
124254 --- a/net/ipv4/devinet.c
124255 +++ b/net/ipv4/devinet.c
124256 @@ -69,7 +69,8 @@
124257
124258 static struct ipv4_devconf ipv4_devconf = {
124259 .data = {
124260 - [IPV4_DEVCONF_ACCEPT_REDIRECTS - 1] = 1,
124261 + [IPV4_DEVCONF_ACCEPT_REDIRECTS - 1] = 0,
124262 + [IPV4_DEVCONF_RP_FILTER - 1] = 1,
124263 [IPV4_DEVCONF_SEND_REDIRECTS - 1] = 1,
124264 [IPV4_DEVCONF_SECURE_REDIRECTS - 1] = 1,
124265 [IPV4_DEVCONF_SHARED_MEDIA - 1] = 1,
124266 @@ -80,7 +81,8 @@ static struct ipv4_devconf ipv4_devconf = {
124267
124268 static struct ipv4_devconf ipv4_devconf_dflt = {
124269 .data = {
124270 - [IPV4_DEVCONF_ACCEPT_REDIRECTS - 1] = 1,
124271 + [IPV4_DEVCONF_ACCEPT_REDIRECTS - 1] = 0,
124272 + [IPV4_DEVCONF_RP_FILTER - 1] = 1,
124273 [IPV4_DEVCONF_SEND_REDIRECTS - 1] = 1,
124274 [IPV4_DEVCONF_SECURE_REDIRECTS - 1] = 1,
124275 [IPV4_DEVCONF_SHARED_MEDIA - 1] = 1,
124276 @@ -1579,7 +1581,7 @@ static int inet_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb)
124277 idx = 0;
124278 head = &net->dev_index_head[h];
124279 rcu_read_lock();
124280 - cb->seq = atomic_read(&net->ipv4.dev_addr_genid) ^
124281 + cb->seq = atomic_read_unchecked(&net->ipv4.dev_addr_genid) ^
124282 net->dev_base_seq;
124283 hlist_for_each_entry_rcu(dev, head, index_hlist) {
124284 if (idx < s_idx)
124285 @@ -1907,7 +1909,7 @@ static int inet_netconf_dump_devconf(struct sk_buff *skb,
124286 idx = 0;
124287 head = &net->dev_index_head[h];
124288 rcu_read_lock();
124289 - cb->seq = atomic_read(&net->ipv4.dev_addr_genid) ^
124290 + cb->seq = atomic_read_unchecked(&net->ipv4.dev_addr_genid) ^
124291 net->dev_base_seq;
124292 hlist_for_each_entry_rcu(dev, head, index_hlist) {
124293 if (idx < s_idx)
124294 @@ -2148,7 +2150,7 @@ static int ipv4_doint_and_flush(struct ctl_table *ctl, int write,
124295 #define DEVINET_SYSCTL_FLUSHING_ENTRY(attr, name) \
124296 DEVINET_SYSCTL_COMPLEX_ENTRY(attr, name, ipv4_doint_and_flush)
124297
124298 -static struct devinet_sysctl_table {
124299 +static const struct devinet_sysctl_table {
124300 struct ctl_table_header *sysctl_header;
124301 struct ctl_table devinet_vars[__IPV4_DEVCONF_MAX];
124302 } devinet_sysctl = {
124303 @@ -2282,7 +2284,7 @@ static __net_init int devinet_init_net(struct net *net)
124304 int err;
124305 struct ipv4_devconf *all, *dflt;
124306 #ifdef CONFIG_SYSCTL
124307 - struct ctl_table *tbl = ctl_forward_entry;
124308 + ctl_table_no_const *tbl = NULL;
124309 struct ctl_table_header *forw_hdr;
124310 #endif
124311
124312 @@ -2300,7 +2302,7 @@ static __net_init int devinet_init_net(struct net *net)
124313 goto err_alloc_dflt;
124314
124315 #ifdef CONFIG_SYSCTL
124316 - tbl = kmemdup(tbl, sizeof(ctl_forward_entry), GFP_KERNEL);
124317 + tbl = kmemdup(ctl_forward_entry, sizeof(ctl_forward_entry), GFP_KERNEL);
124318 if (!tbl)
124319 goto err_alloc_ctl;
124320
124321 @@ -2320,7 +2322,10 @@ static __net_init int devinet_init_net(struct net *net)
124322 goto err_reg_dflt;
124323
124324 err = -ENOMEM;
124325 - forw_hdr = register_net_sysctl(net, "net/ipv4", tbl);
124326 + if (!net_eq(net, &init_net))
124327 + forw_hdr = register_net_sysctl(net, "net/ipv4", tbl);
124328 + else
124329 + forw_hdr = register_net_sysctl(net, "net/ipv4", ctl_forward_entry);
124330 if (!forw_hdr)
124331 goto err_reg_ctl;
124332 net->ipv4.forw_hdr = forw_hdr;
124333 @@ -2336,8 +2341,7 @@ err_reg_ctl:
124334 err_reg_dflt:
124335 __devinet_sysctl_unregister(all);
124336 err_reg_all:
124337 - if (tbl != ctl_forward_entry)
124338 - kfree(tbl);
124339 + kfree(tbl);
124340 err_alloc_ctl:
124341 #endif
124342 if (dflt != &ipv4_devconf_dflt)
124343 diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c
124344 index 4734475..8ef3aab 100644
124345 --- a/net/ipv4/fib_frontend.c
124346 +++ b/net/ipv4/fib_frontend.c
124347 @@ -1133,12 +1133,12 @@ static int fib_inetaddr_event(struct notifier_block *this, unsigned long event,
124348 #ifdef CONFIG_IP_ROUTE_MULTIPATH
124349 fib_sync_up(dev, RTNH_F_DEAD);
124350 #endif
124351 - atomic_inc(&net->ipv4.dev_addr_genid);
124352 + atomic_inc_unchecked(&net->ipv4.dev_addr_genid);
124353 rt_cache_flush(dev_net(dev));
124354 break;
124355 case NETDEV_DOWN:
124356 fib_del_ifaddr(ifa, NULL);
124357 - atomic_inc(&net->ipv4.dev_addr_genid);
124358 + atomic_inc_unchecked(&net->ipv4.dev_addr_genid);
124359 if (!ifa->ifa_dev->ifa_list) {
124360 /* Last address was deleted from this interface.
124361 * Disable IP.
124362 @@ -1178,7 +1178,7 @@ static int fib_netdev_event(struct notifier_block *this, unsigned long event, vo
124363 #ifdef CONFIG_IP_ROUTE_MULTIPATH
124364 fib_sync_up(dev, RTNH_F_DEAD);
124365 #endif
124366 - atomic_inc(&net->ipv4.dev_addr_genid);
124367 + atomic_inc_unchecked(&net->ipv4.dev_addr_genid);
124368 rt_cache_flush(net);
124369 break;
124370 case NETDEV_DOWN:
124371 diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
124372 index d97268e..6ee80d4 100644
124373 --- a/net/ipv4/fib_semantics.c
124374 +++ b/net/ipv4/fib_semantics.c
124375 @@ -913,7 +913,7 @@ __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh)
124376 nh->nh_saddr = inet_select_addr(nh->nh_dev,
124377 nh->nh_gw,
124378 nh->nh_parent->fib_scope);
124379 - nh->nh_saddr_genid = atomic_read(&net->ipv4.dev_addr_genid);
124380 + nh->nh_saddr_genid = atomic_read_unchecked(&net->ipv4.dev_addr_genid);
124381
124382 return nh->nh_saddr;
124383 }
124384 diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
124385 index 6414891..30ec9bf 100644
124386 --- a/net/ipv4/inet_connection_sock.c
124387 +++ b/net/ipv4/inet_connection_sock.c
124388 @@ -670,8 +670,8 @@ struct sock *inet_csk_clone_lock(const struct sock *sk,
124389 newsk->sk_write_space = sk_stream_write_space;
124390
124391 newsk->sk_mark = inet_rsk(req)->ir_mark;
124392 - atomic64_set(&newsk->sk_cookie,
124393 - atomic64_read(&inet_rsk(req)->ir_cookie));
124394 + atomic64_set_unchecked(&newsk->sk_cookie,
124395 + atomic64_read_unchecked(&inet_rsk(req)->ir_cookie));
124396
124397 newicsk->icsk_retransmits = 0;
124398 newicsk->icsk_backoff = 0;
124399 diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c
124400 index ab9f8a6..238aa59 100644
124401 --- a/net/ipv4/inet_diag.c
124402 +++ b/net/ipv4/inet_diag.c
124403 @@ -962,7 +962,7 @@ static int inet_diag_rcv_msg_compat(struct sk_buff *skb, struct nlmsghdr *nlh)
124404 return -EINVAL;
124405 }
124406 {
124407 - struct netlink_dump_control c = {
124408 + static struct netlink_dump_control c = {
124409 .dump = inet_diag_dump_compat,
124410 };
124411 return netlink_dump_start(net->diag_nlsk, skb, nlh, &c);
124412 @@ -992,7 +992,7 @@ static int inet_diag_handler_dump(struct sk_buff *skb, struct nlmsghdr *h)
124413 return -EINVAL;
124414 }
124415 {
124416 - struct netlink_dump_control c = {
124417 + static struct netlink_dump_control c = {
124418 .dump = inet_diag_dump,
124419 };
124420 return netlink_dump_start(net->diag_nlsk, skb, h, &c);
124421 diff --git a/net/ipv4/inet_hashtables.c b/net/ipv4/inet_hashtables.c
124422 index ccc5980..67cba85 100644
124423 --- a/net/ipv4/inet_hashtables.c
124424 +++ b/net/ipv4/inet_hashtables.c
124425 @@ -19,6 +19,7 @@
124426 #include <linux/slab.h>
124427 #include <linux/wait.h>
124428 #include <linux/vmalloc.h>
124429 +#include <linux/security.h>
124430
124431 #include <net/inet_connection_sock.h>
124432 #include <net/inet_hashtables.h>
124433 @@ -54,6 +55,8 @@ u32 sk_ehashfn(const struct sock *sk)
124434 sk->sk_daddr, sk->sk_dport);
124435 }
124436
124437 +extern void gr_update_task_in_ip_table(const struct inet_sock *inet);
124438 +
124439 /*
124440 * Allocate and initialize a new local port bind bucket.
124441 * The bindhash mutex for snum's hash chain must be held here.
124442 @@ -586,6 +589,7 @@ ok:
124443
124444 if (tw)
124445 inet_twsk_deschedule_put(tw);
124446 + gr_update_task_in_ip_table(inet_sk(sk));
124447
124448 ret = 0;
124449 goto out;
124450 diff --git a/net/ipv4/inet_timewait_sock.c b/net/ipv4/inet_timewait_sock.c
124451 index c67f9bd..7a108d1 100644
124452 --- a/net/ipv4/inet_timewait_sock.c
124453 +++ b/net/ipv4/inet_timewait_sock.c
124454 @@ -186,7 +186,7 @@ struct inet_timewait_sock *inet_twsk_alloc(const struct sock *sk,
124455 tw->tw_ipv6only = 0;
124456 tw->tw_transparent = inet->transparent;
124457 tw->tw_prot = sk->sk_prot_creator;
124458 - atomic64_set(&tw->tw_cookie, atomic64_read(&sk->sk_cookie));
124459 + atomic64_set_unchecked(&tw->tw_cookie, atomic64_read_unchecked(&sk->sk_cookie));
124460 twsk_net_set(tw, sock_net(sk));
124461 setup_timer(&tw->tw_timer, tw_timer_handler, (unsigned long)tw);
124462 /*
124463 diff --git a/net/ipv4/inetpeer.c b/net/ipv4/inetpeer.c
124464 index 86fa458..5f601b9 100644
124465 --- a/net/ipv4/inetpeer.c
124466 +++ b/net/ipv4/inetpeer.c
124467 @@ -445,7 +445,7 @@ relookup:
124468 if (p) {
124469 p->daddr = *daddr;
124470 atomic_set(&p->refcnt, 1);
124471 - atomic_set(&p->rid, 0);
124472 + atomic_set_unchecked(&p->rid, 0);
124473 p->metrics[RTAX_LOCK-1] = INETPEER_METRICS_NEW;
124474 p->rate_tokens = 0;
124475 /* 60*HZ is arbitrary, but chosen enough high so that the first
124476 diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c
124477 index b8a0607d..0ef8880 100644
124478 --- a/net/ipv4/ip_fragment.c
124479 +++ b/net/ipv4/ip_fragment.c
124480 @@ -284,7 +284,7 @@ static int ip_frag_too_far(struct ipq *qp)
124481 return 0;
124482
124483 start = qp->rid;
124484 - end = atomic_inc_return(&peer->rid);
124485 + end = atomic_inc_return_unchecked(&peer->rid);
124486 qp->rid = end;
124487
124488 rc = qp->q.fragments && (end - start) > max;
124489 @@ -775,12 +775,11 @@ static struct ctl_table ip4_frags_ctl_table[] = {
124490
124491 static int __net_init ip4_frags_ns_ctl_register(struct net *net)
124492 {
124493 - struct ctl_table *table;
124494 + ctl_table_no_const *table = NULL;
124495 struct ctl_table_header *hdr;
124496
124497 - table = ip4_frags_ns_ctl_table;
124498 if (!net_eq(net, &init_net)) {
124499 - table = kmemdup(table, sizeof(ip4_frags_ns_ctl_table), GFP_KERNEL);
124500 + table = kmemdup(ip4_frags_ns_ctl_table, sizeof(ip4_frags_ns_ctl_table), GFP_KERNEL);
124501 if (!table)
124502 goto err_alloc;
124503
124504 @@ -794,9 +793,10 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net)
124505 /* Don't export sysctls to unprivileged users */
124506 if (net->user_ns != &init_user_ns)
124507 table[0].procname = NULL;
124508 - }
124509 + hdr = register_net_sysctl(net, "net/ipv4", table);
124510 + } else
124511 + hdr = register_net_sysctl(net, "net/ipv4", ip4_frags_ns_ctl_table);
124512
124513 - hdr = register_net_sysctl(net, "net/ipv4", table);
124514 if (!hdr)
124515 goto err_reg;
124516
124517 @@ -804,8 +804,7 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net)
124518 return 0;
124519
124520 err_reg:
124521 - if (!net_eq(net, &init_net))
124522 - kfree(table);
124523 + kfree(table);
124524 err_alloc:
124525 return -ENOMEM;
124526 }
124527 diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
124528 index 6145214..77ebc63 100644
124529 --- a/net/ipv4/ip_gre.c
124530 +++ b/net/ipv4/ip_gre.c
124531 @@ -117,7 +117,7 @@ static bool log_ecn_error = true;
124532 module_param(log_ecn_error, bool, 0644);
124533 MODULE_PARM_DESC(log_ecn_error, "Log packets received with corrupted ECN");
124534
124535 -static struct rtnl_link_ops ipgre_link_ops __read_mostly;
124536 +static struct rtnl_link_ops ipgre_link_ops;
124537 static int ipgre_tunnel_init(struct net_device *dev);
124538
124539 static int ipgre_net_id __read_mostly;
124540 @@ -1190,7 +1190,7 @@ static const struct nla_policy ipgre_policy[IFLA_GRE_MAX + 1] = {
124541 [IFLA_GRE_COLLECT_METADATA] = { .type = NLA_FLAG },
124542 };
124543
124544 -static struct rtnl_link_ops ipgre_link_ops __read_mostly = {
124545 +static struct rtnl_link_ops ipgre_link_ops = {
124546 .kind = "gre",
124547 .maxtype = IFLA_GRE_MAX,
124548 .policy = ipgre_policy,
124549 @@ -1205,7 +1205,7 @@ static struct rtnl_link_ops ipgre_link_ops __read_mostly = {
124550 .get_link_net = ip_tunnel_get_link_net,
124551 };
124552
124553 -static struct rtnl_link_ops ipgre_tap_ops __read_mostly = {
124554 +static struct rtnl_link_ops ipgre_tap_ops = {
124555 .kind = "gretap",
124556 .maxtype = IFLA_GRE_MAX,
124557 .policy = ipgre_policy,
124558 diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c
124559 index b1209b6..c2f63ba 100644
124560 --- a/net/ipv4/ip_input.c
124561 +++ b/net/ipv4/ip_input.c
124562 @@ -148,6 +148,10 @@
124563 #include <linux/netlink.h>
124564 #include <net/dst_metadata.h>
124565
124566 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
124567 +extern int grsec_enable_blackhole;
124568 +#endif
124569 +
124570 /*
124571 * Process Router Attention IP option (RFC 2113)
124572 */
124573 @@ -223,6 +227,9 @@ static int ip_local_deliver_finish(struct net *net, struct sock *sk, struct sk_b
124574 if (!raw) {
124575 if (xfrm4_policy_check(NULL, XFRM_POLICY_IN, skb)) {
124576 IP_INC_STATS_BH(net, IPSTATS_MIB_INUNKNOWNPROTOS);
124577 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
124578 + if (!grsec_enable_blackhole || (skb->dev->flags & IFF_LOOPBACK))
124579 +#endif
124580 icmp_send(skb, ICMP_DEST_UNREACH,
124581 ICMP_PROT_UNREACH, 0);
124582 }
124583 diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c
124584 index a501242..ea6b81d 100644
124585 --- a/net/ipv4/ip_sockglue.c
124586 +++ b/net/ipv4/ip_sockglue.c
124587 @@ -1310,7 +1310,8 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
124588 len = min_t(unsigned int, len, opt->optlen);
124589 if (put_user(len, optlen))
124590 return -EFAULT;
124591 - if (copy_to_user(optval, opt->__data, len))
124592 + if ((len > (sizeof(optbuf) - sizeof(struct ip_options))) ||
124593 + copy_to_user(optval, opt->__data, len))
124594 return -EFAULT;
124595 return 0;
124596 }
124597 @@ -1443,7 +1444,7 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
124598 if (sk->sk_type != SOCK_STREAM)
124599 return -ENOPROTOOPT;
124600
124601 - msg.msg_control = (__force void *) optval;
124602 + msg.msg_control = (__force_kernel void *) optval;
124603 msg.msg_controllen = len;
124604 msg.msg_flags = flags;
124605
124606 diff --git a/net/ipv4/ip_vti.c b/net/ipv4/ip_vti.c
124607 index 4d8f0b6..a2c583b 100644
124608 --- a/net/ipv4/ip_vti.c
124609 +++ b/net/ipv4/ip_vti.c
124610 @@ -45,7 +45,7 @@
124611 #include <net/net_namespace.h>
124612 #include <net/netns/generic.h>
124613
124614 -static struct rtnl_link_ops vti_link_ops __read_mostly;
124615 +static struct rtnl_link_ops vti_link_ops;
124616
124617 static int vti_net_id __read_mostly;
124618 static int vti_tunnel_init(struct net_device *dev);
124619 @@ -525,7 +525,7 @@ static const struct nla_policy vti_policy[IFLA_VTI_MAX + 1] = {
124620 [IFLA_VTI_REMOTE] = { .len = FIELD_SIZEOF(struct iphdr, daddr) },
124621 };
124622
124623 -static struct rtnl_link_ops vti_link_ops __read_mostly = {
124624 +static struct rtnl_link_ops vti_link_ops = {
124625 .kind = "vti",
124626 .maxtype = IFLA_VTI_MAX,
124627 .policy = vti_policy,
124628 diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
124629 index 0bc7412..9bf43d2 100644
124630 --- a/net/ipv4/ipconfig.c
124631 +++ b/net/ipv4/ipconfig.c
124632 @@ -337,7 +337,7 @@ static int __init ic_devinet_ioctl(unsigned int cmd, struct ifreq *arg)
124633
124634 mm_segment_t oldfs = get_fs();
124635 set_fs(get_ds());
124636 - res = devinet_ioctl(&init_net, cmd, (struct ifreq __user *) arg);
124637 + res = devinet_ioctl(&init_net, cmd, (struct ifreq __force_user *) arg);
124638 set_fs(oldfs);
124639 return res;
124640 }
124641 @@ -348,7 +348,7 @@ static int __init ic_dev_ioctl(unsigned int cmd, struct ifreq *arg)
124642
124643 mm_segment_t oldfs = get_fs();
124644 set_fs(get_ds());
124645 - res = dev_ioctl(&init_net, cmd, (struct ifreq __user *) arg);
124646 + res = dev_ioctl(&init_net, cmd, (struct ifreq __force_user *) arg);
124647 set_fs(oldfs);
124648 return res;
124649 }
124650 @@ -359,7 +359,7 @@ static int __init ic_route_ioctl(unsigned int cmd, struct rtentry *arg)
124651
124652 mm_segment_t oldfs = get_fs();
124653 set_fs(get_ds());
124654 - res = ip_rt_ioctl(&init_net, cmd, (void __user *) arg);
124655 + res = ip_rt_ioctl(&init_net, cmd, (void __force_user *) arg);
124656 set_fs(oldfs);
124657 return res;
124658 }
124659 diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c
124660 index a09fb0d..24e19b2 100644
124661 --- a/net/ipv4/ipip.c
124662 +++ b/net/ipv4/ipip.c
124663 @@ -124,7 +124,7 @@ MODULE_PARM_DESC(log_ecn_error, "Log packets received with corrupted ECN");
124664 static int ipip_net_id __read_mostly;
124665
124666 static int ipip_tunnel_init(struct net_device *dev);
124667 -static struct rtnl_link_ops ipip_link_ops __read_mostly;
124668 +static struct rtnl_link_ops ipip_link_ops;
124669
124670 static int ipip_err(struct sk_buff *skb, u32 info)
124671 {
124672 @@ -485,7 +485,7 @@ static const struct nla_policy ipip_policy[IFLA_IPTUN_MAX + 1] = {
124673 [IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 },
124674 };
124675
124676 -static struct rtnl_link_ops ipip_link_ops __read_mostly = {
124677 +static struct rtnl_link_ops ipip_link_ops = {
124678 .kind = "ipip",
124679 .maxtype = IFLA_IPTUN_MAX,
124680 .policy = ipip_policy,
124681 diff --git a/net/ipv4/netfilter/arp_tables.c b/net/ipv4/netfilter/arp_tables.c
124682 index 11dccba..60aa8e6 100644
124683 --- a/net/ipv4/netfilter/arp_tables.c
124684 +++ b/net/ipv4/netfilter/arp_tables.c
124685 @@ -892,14 +892,14 @@ static int compat_table_info(const struct xt_table_info *info,
124686 #endif
124687
124688 static int get_info(struct net *net, void __user *user,
124689 - const int *len, int compat)
124690 + int len, int compat)
124691 {
124692 char name[XT_TABLE_MAXNAMELEN];
124693 struct xt_table *t;
124694 int ret;
124695
124696 - if (*len != sizeof(struct arpt_getinfo)) {
124697 - duprintf("length %u != %Zu\n", *len,
124698 + if (len != sizeof(struct arpt_getinfo)) {
124699 + duprintf("length %u != %Zu\n", len,
124700 sizeof(struct arpt_getinfo));
124701 return -EINVAL;
124702 }
124703 @@ -936,7 +936,7 @@ static int get_info(struct net *net, void __user *user,
124704 info.size = private->size;
124705 strcpy(info.name, name);
124706
124707 - if (copy_to_user(user, &info, *len) != 0)
124708 + if (copy_to_user(user, &info, len) != 0)
124709 ret = -EFAULT;
124710 else
124711 ret = 0;
124712 @@ -1701,7 +1701,7 @@ static int compat_do_arpt_get_ctl(struct sock *sk, int cmd, void __user *user,
124713
124714 switch (cmd) {
124715 case ARPT_SO_GET_INFO:
124716 - ret = get_info(sock_net(sk), user, len, 1);
124717 + ret = get_info(sock_net(sk), user, *len, 1);
124718 break;
124719 case ARPT_SO_GET_ENTRIES:
124720 ret = compat_get_entries(sock_net(sk), user, len);
124721 @@ -1746,7 +1746,7 @@ static int do_arpt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len
124722
124723 switch (cmd) {
124724 case ARPT_SO_GET_INFO:
124725 - ret = get_info(sock_net(sk), user, len, 0);
124726 + ret = get_info(sock_net(sk), user, *len, 0);
124727 break;
124728
124729 case ARPT_SO_GET_ENTRIES:
124730 diff --git a/net/ipv4/netfilter/ip_tables.c b/net/ipv4/netfilter/ip_tables.c
124731 index b99affa..7fc00c8 100644
124732 --- a/net/ipv4/netfilter/ip_tables.c
124733 +++ b/net/ipv4/netfilter/ip_tables.c
124734 @@ -1078,14 +1078,14 @@ static int compat_table_info(const struct xt_table_info *info,
124735 #endif
124736
124737 static int get_info(struct net *net, void __user *user,
124738 - const int *len, int compat)
124739 + int len, int compat)
124740 {
124741 char name[XT_TABLE_MAXNAMELEN];
124742 struct xt_table *t;
124743 int ret;
124744
124745 - if (*len != sizeof(struct ipt_getinfo)) {
124746 - duprintf("length %u != %zu\n", *len,
124747 + if (len != sizeof(struct ipt_getinfo)) {
124748 + duprintf("length %u != %zu\n", len,
124749 sizeof(struct ipt_getinfo));
124750 return -EINVAL;
124751 }
124752 @@ -1122,7 +1122,7 @@ static int get_info(struct net *net, void __user *user,
124753 info.size = private->size;
124754 strcpy(info.name, name);
124755
124756 - if (copy_to_user(user, &info, *len) != 0)
124757 + if (copy_to_user(user, &info, len) != 0)
124758 ret = -EFAULT;
124759 else
124760 ret = 0;
124761 @@ -1973,7 +1973,7 @@ compat_do_ipt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
124762
124763 switch (cmd) {
124764 case IPT_SO_GET_INFO:
124765 - ret = get_info(sock_net(sk), user, len, 1);
124766 + ret = get_info(sock_net(sk), user, *len, 1);
124767 break;
124768 case IPT_SO_GET_ENTRIES:
124769 ret = compat_get_entries(sock_net(sk), user, len);
124770 @@ -2020,7 +2020,7 @@ do_ipt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
124771
124772 switch (cmd) {
124773 case IPT_SO_GET_INFO:
124774 - ret = get_info(sock_net(sk), user, len, 0);
124775 + ret = get_info(sock_net(sk), user, *len, 0);
124776 break;
124777
124778 case IPT_SO_GET_ENTRIES:
124779 diff --git a/net/ipv4/netfilter/ipt_CLUSTERIP.c b/net/ipv4/netfilter/ipt_CLUSTERIP.c
124780 index 4a9e6db..06174e1 100644
124781 --- a/net/ipv4/netfilter/ipt_CLUSTERIP.c
124782 +++ b/net/ipv4/netfilter/ipt_CLUSTERIP.c
124783 @@ -730,7 +730,7 @@ static int clusterip_net_init(struct net *net)
124784 spin_lock_init(&cn->lock);
124785
124786 #ifdef CONFIG_PROC_FS
124787 - cn->procdir = proc_mkdir("ipt_CLUSTERIP", net->proc_net);
124788 + cn->procdir = proc_mkdir_restrict("ipt_CLUSTERIP", net->proc_net);
124789 if (!cn->procdir) {
124790 pr_err("Unable to proc dir entry\n");
124791 return -ENOMEM;
124792 diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c
124793 index aa67e0e..3c65672 100644
124794 --- a/net/ipv4/ping.c
124795 +++ b/net/ipv4/ping.c
124796 @@ -59,7 +59,7 @@ struct ping_table {
124797 };
124798
124799 static struct ping_table ping_table;
124800 -struct pingv6_ops pingv6_ops;
124801 +struct pingv6_ops *pingv6_ops;
124802 EXPORT_SYMBOL_GPL(pingv6_ops);
124803
124804 static u16 ping_port_rover;
124805 @@ -359,7 +359,7 @@ static int ping_check_bind_addr(struct sock *sk, struct inet_sock *isk,
124806 return -ENODEV;
124807 }
124808 }
124809 - has_addr = pingv6_ops.ipv6_chk_addr(net, &addr->sin6_addr, dev,
124810 + has_addr = pingv6_ops->ipv6_chk_addr(net, &addr->sin6_addr, dev,
124811 scoped);
124812 rcu_read_unlock();
124813
124814 @@ -568,7 +568,7 @@ void ping_err(struct sk_buff *skb, int offset, u32 info)
124815 }
124816 #if IS_ENABLED(CONFIG_IPV6)
124817 } else if (skb->protocol == htons(ETH_P_IPV6)) {
124818 - harderr = pingv6_ops.icmpv6_err_convert(type, code, &err);
124819 + harderr = pingv6_ops->icmpv6_err_convert(type, code, &err);
124820 #endif
124821 }
124822
124823 @@ -586,7 +586,7 @@ void ping_err(struct sk_buff *skb, int offset, u32 info)
124824 info, (u8 *)icmph);
124825 #if IS_ENABLED(CONFIG_IPV6)
124826 } else if (family == AF_INET6) {
124827 - pingv6_ops.ipv6_icmp_error(sk, skb, err, 0,
124828 + pingv6_ops->ipv6_icmp_error(sk, skb, err, 0,
124829 info, (u8 *)icmph);
124830 #endif
124831 }
124832 @@ -921,10 +921,10 @@ int ping_recvmsg(struct sock *sk, struct msghdr *msg, size_t len, int noblock,
124833 }
124834
124835 if (inet6_sk(sk)->rxopt.all)
124836 - pingv6_ops.ip6_datagram_recv_common_ctl(sk, msg, skb);
124837 + pingv6_ops->ip6_datagram_recv_common_ctl(sk, msg, skb);
124838 if (skb->protocol == htons(ETH_P_IPV6) &&
124839 inet6_sk(sk)->rxopt.all)
124840 - pingv6_ops.ip6_datagram_recv_specific_ctl(sk, msg, skb);
124841 + pingv6_ops->ip6_datagram_recv_specific_ctl(sk, msg, skb);
124842 else if (skb->protocol == htons(ETH_P_IP) && isk->cmsg_flags)
124843 ip_cmsg_recv(msg, skb);
124844 #endif
124845 @@ -1119,7 +1119,7 @@ static void ping_v4_format_sock(struct sock *sp, struct seq_file *f,
124846 from_kuid_munged(seq_user_ns(f), sock_i_uid(sp)),
124847 0, sock_i_ino(sp),
124848 atomic_read(&sp->sk_refcnt), sp,
124849 - atomic_read(&sp->sk_drops));
124850 + atomic_read_unchecked(&sp->sk_drops));
124851 }
124852
124853 static int ping_v4_seq_show(struct seq_file *seq, void *v)
124854 diff --git a/net/ipv4/proc.c b/net/ipv4/proc.c
124855 index 3abd9d7..c5e4052 100644
124856 --- a/net/ipv4/proc.c
124857 +++ b/net/ipv4/proc.c
124858 @@ -333,7 +333,7 @@ static void icmpmsg_put(struct seq_file *seq)
124859
124860 count = 0;
124861 for (i = 0; i < ICMPMSG_MIB_MAX; i++) {
124862 - val = atomic_long_read(&net->mib.icmpmsg_statistics->mibs[i]);
124863 + val = atomic_long_read_unchecked(&net->mib.icmpmsg_statistics->mibs[i]);
124864 if (val) {
124865 type[count] = i;
124866 vals[count++] = val;
124867 @@ -352,7 +352,7 @@ static void icmp_put(struct seq_file *seq)
124868 {
124869 int i;
124870 struct net *net = seq->private;
124871 - atomic_long_t *ptr = net->mib.icmpmsg_statistics->mibs;
124872 + atomic_long_unchecked_t *ptr = net->mib.icmpmsg_statistics->mibs;
124873
124874 seq_puts(seq, "\nIcmp: InMsgs InErrors InCsumErrors");
124875 for (i = 0; icmpmibmap[i].name != NULL; i++)
124876 @@ -366,13 +366,13 @@ static void icmp_put(struct seq_file *seq)
124877 snmp_fold_field(net->mib.icmp_statistics, ICMP_MIB_CSUMERRORS));
124878 for (i = 0; icmpmibmap[i].name != NULL; i++)
124879 seq_printf(seq, " %lu",
124880 - atomic_long_read(ptr + icmpmibmap[i].index));
124881 + atomic_long_read_unchecked(ptr + icmpmibmap[i].index));
124882 seq_printf(seq, " %lu %lu",
124883 snmp_fold_field(net->mib.icmp_statistics, ICMP_MIB_OUTMSGS),
124884 snmp_fold_field(net->mib.icmp_statistics, ICMP_MIB_OUTERRORS));
124885 for (i = 0; icmpmibmap[i].name != NULL; i++)
124886 seq_printf(seq, " %lu",
124887 - atomic_long_read(ptr + (icmpmibmap[i].index | 0x100)));
124888 + atomic_long_read_unchecked(ptr + (icmpmibmap[i].index | 0x100)));
124889 }
124890
124891 /*
124892 diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
124893 index 7113bae..0e9e9a6 100644
124894 --- a/net/ipv4/raw.c
124895 +++ b/net/ipv4/raw.c
124896 @@ -323,7 +323,7 @@ static int raw_rcv_skb(struct sock *sk, struct sk_buff *skb)
124897 int raw_rcv(struct sock *sk, struct sk_buff *skb)
124898 {
124899 if (!xfrm4_policy_check(sk, XFRM_POLICY_IN, skb)) {
124900 - atomic_inc(&sk->sk_drops);
124901 + atomic_inc_unchecked(&sk->sk_drops);
124902 kfree_skb(skb);
124903 return NET_RX_DROP;
124904 }
124905 @@ -783,16 +783,20 @@ static int raw_init(struct sock *sk)
124906
124907 static int raw_seticmpfilter(struct sock *sk, char __user *optval, int optlen)
124908 {
124909 + struct icmp_filter filter;
124910 +
124911 if (optlen > sizeof(struct icmp_filter))
124912 optlen = sizeof(struct icmp_filter);
124913 - if (copy_from_user(&raw_sk(sk)->filter, optval, optlen))
124914 + if (copy_from_user(&filter, optval, optlen))
124915 return -EFAULT;
124916 + raw_sk(sk)->filter = filter;
124917 return 0;
124918 }
124919
124920 static int raw_geticmpfilter(struct sock *sk, char __user *optval, int __user *optlen)
124921 {
124922 int len, ret = -EFAULT;
124923 + struct icmp_filter filter;
124924
124925 if (get_user(len, optlen))
124926 goto out;
124927 @@ -802,8 +806,8 @@ static int raw_geticmpfilter(struct sock *sk, char __user *optval, int __user *o
124928 if (len > sizeof(struct icmp_filter))
124929 len = sizeof(struct icmp_filter);
124930 ret = -EFAULT;
124931 - if (put_user(len, optlen) ||
124932 - copy_to_user(optval, &raw_sk(sk)->filter, len))
124933 + filter = raw_sk(sk)->filter;
124934 + if (put_user(len, optlen) || len > sizeof filter || copy_to_user(optval, &filter, len))
124935 goto out;
124936 ret = 0;
124937 out: return ret;
124938 @@ -1032,7 +1036,7 @@ static void raw_sock_seq_show(struct seq_file *seq, struct sock *sp, int i)
124939 0, 0L, 0,
124940 from_kuid_munged(seq_user_ns(seq), sock_i_uid(sp)),
124941 0, sock_i_ino(sp),
124942 - atomic_read(&sp->sk_refcnt), sp, atomic_read(&sp->sk_drops));
124943 + atomic_read(&sp->sk_refcnt), sp, atomic_read_unchecked(&sp->sk_drops));
124944 }
124945
124946 static int raw_seq_show(struct seq_file *seq, void *v)
124947 diff --git a/net/ipv4/route.c b/net/ipv4/route.c
124948 index 02c6229..68cc2a6 100644
124949 --- a/net/ipv4/route.c
124950 +++ b/net/ipv4/route.c
124951 @@ -232,7 +232,7 @@ static const struct seq_operations rt_cache_seq_ops = {
124952
124953 static int rt_cache_seq_open(struct inode *inode, struct file *file)
124954 {
124955 - return seq_open(file, &rt_cache_seq_ops);
124956 + return seq_open_restrict(file, &rt_cache_seq_ops);
124957 }
124958
124959 static const struct file_operations rt_cache_seq_fops = {
124960 @@ -323,7 +323,7 @@ static const struct seq_operations rt_cpu_seq_ops = {
124961
124962 static int rt_cpu_seq_open(struct inode *inode, struct file *file)
124963 {
124964 - return seq_open(file, &rt_cpu_seq_ops);
124965 + return seq_open_restrict(file, &rt_cpu_seq_ops);
124966 }
124967
124968 static const struct file_operations rt_cpu_seq_fops = {
124969 @@ -361,7 +361,7 @@ static int rt_acct_proc_show(struct seq_file *m, void *v)
124970
124971 static int rt_acct_proc_open(struct inode *inode, struct file *file)
124972 {
124973 - return single_open(file, rt_acct_proc_show, NULL);
124974 + return single_open_restrict(file, rt_acct_proc_show, NULL);
124975 }
124976
124977 static const struct file_operations rt_acct_proc_fops = {
124978 @@ -463,7 +463,7 @@ static struct neighbour *ipv4_neigh_lookup(const struct dst_entry *dst,
124979
124980 #define IP_IDENTS_SZ 2048u
124981
124982 -static atomic_t *ip_idents __read_mostly;
124983 +static atomic_unchecked_t ip_idents[IP_IDENTS_SZ] __read_mostly;
124984 static u32 *ip_tstamps __read_mostly;
124985
124986 /* In order to protect privacy, we add a perturbation to identifiers
124987 @@ -473,7 +473,7 @@ static u32 *ip_tstamps __read_mostly;
124988 u32 ip_idents_reserve(u32 hash, int segs)
124989 {
124990 u32 *p_tstamp = ip_tstamps + hash % IP_IDENTS_SZ;
124991 - atomic_t *p_id = ip_idents + hash % IP_IDENTS_SZ;
124992 + atomic_unchecked_t *p_id = ip_idents + hash % IP_IDENTS_SZ;
124993 u32 old = ACCESS_ONCE(*p_tstamp);
124994 u32 now = (u32)jiffies;
124995 u32 delta = 0;
124996 @@ -481,7 +481,7 @@ u32 ip_idents_reserve(u32 hash, int segs)
124997 if (old != now && cmpxchg(p_tstamp, old, now) == old)
124998 delta = prandom_u32_max(now - old);
124999
125000 - return atomic_add_return(segs + delta, p_id) - segs;
125001 + return atomic_add_return_unchecked(segs + delta, p_id) - segs;
125002 }
125003 EXPORT_SYMBOL(ip_idents_reserve);
125004
125005 @@ -2755,34 +2755,34 @@ static struct ctl_table ipv4_route_flush_table[] = {
125006 .maxlen = sizeof(int),
125007 .mode = 0200,
125008 .proc_handler = ipv4_sysctl_rtcache_flush,
125009 + .extra1 = &init_net,
125010 },
125011 { },
125012 };
125013
125014 static __net_init int sysctl_route_net_init(struct net *net)
125015 {
125016 - struct ctl_table *tbl;
125017 + ctl_table_no_const *tbl = NULL;
125018
125019 - tbl = ipv4_route_flush_table;
125020 if (!net_eq(net, &init_net)) {
125021 - tbl = kmemdup(tbl, sizeof(ipv4_route_flush_table), GFP_KERNEL);
125022 + tbl = kmemdup(ipv4_route_flush_table, sizeof(ipv4_route_flush_table), GFP_KERNEL);
125023 if (!tbl)
125024 goto err_dup;
125025
125026 /* Don't export sysctls to unprivileged users */
125027 if (net->user_ns != &init_user_ns)
125028 tbl[0].procname = NULL;
125029 - }
125030 - tbl[0].extra1 = net;
125031 + tbl[0].extra1 = net;
125032 + net->ipv4.route_hdr = register_net_sysctl(net, "net/ipv4/route", tbl);
125033 + } else
125034 + net->ipv4.route_hdr = register_net_sysctl(net, "net/ipv4/route", ipv4_route_flush_table);
125035
125036 - net->ipv4.route_hdr = register_net_sysctl(net, "net/ipv4/route", tbl);
125037 if (!net->ipv4.route_hdr)
125038 goto err_reg;
125039 return 0;
125040
125041 err_reg:
125042 - if (tbl != ipv4_route_flush_table)
125043 - kfree(tbl);
125044 + kfree(tbl);
125045 err_dup:
125046 return -ENOMEM;
125047 }
125048 @@ -2805,8 +2805,8 @@ static __net_initdata struct pernet_operations sysctl_route_ops = {
125049
125050 static __net_init int rt_genid_init(struct net *net)
125051 {
125052 - atomic_set(&net->ipv4.rt_genid, 0);
125053 - atomic_set(&net->fnhe_genid, 0);
125054 + atomic_set_unchecked(&net->ipv4.rt_genid, 0);
125055 + atomic_set_unchecked(&net->fnhe_genid, 0);
125056 get_random_bytes(&net->ipv4.dev_addr_genid,
125057 sizeof(net->ipv4.dev_addr_genid));
125058 return 0;
125059 @@ -2850,11 +2850,7 @@ int __init ip_rt_init(void)
125060 int rc = 0;
125061 int cpu;
125062
125063 - ip_idents = kmalloc(IP_IDENTS_SZ * sizeof(*ip_idents), GFP_KERNEL);
125064 - if (!ip_idents)
125065 - panic("IP: failed to allocate ip_idents\n");
125066 -
125067 - prandom_bytes(ip_idents, IP_IDENTS_SZ * sizeof(*ip_idents));
125068 + prandom_bytes(ip_idents, sizeof(ip_idents));
125069
125070 ip_tstamps = kcalloc(IP_IDENTS_SZ, sizeof(*ip_tstamps), GFP_KERNEL);
125071 if (!ip_tstamps)
125072 diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c
125073 index a0bd7a5..79fdbb9 100644
125074 --- a/net/ipv4/sysctl_net_ipv4.c
125075 +++ b/net/ipv4/sysctl_net_ipv4.c
125076 @@ -67,7 +67,7 @@ static int ipv4_local_port_range(struct ctl_table *table, int write,
125077 container_of(table->data, struct net, ipv4.ip_local_ports.range);
125078 int ret;
125079 int range[2];
125080 - struct ctl_table tmp = {
125081 + ctl_table_no_const tmp = {
125082 .data = &range,
125083 .maxlen = sizeof(range),
125084 .mode = table->mode,
125085 @@ -125,7 +125,7 @@ static int ipv4_ping_group_range(struct ctl_table *table, int write,
125086 int ret;
125087 gid_t urange[2];
125088 kgid_t low, high;
125089 - struct ctl_table tmp = {
125090 + ctl_table_no_const tmp = {
125091 .data = &urange,
125092 .maxlen = sizeof(urange),
125093 .mode = table->mode,
125094 @@ -156,7 +156,7 @@ static int proc_tcp_congestion_control(struct ctl_table *ctl, int write,
125095 void __user *buffer, size_t *lenp, loff_t *ppos)
125096 {
125097 char val[TCP_CA_NAME_MAX];
125098 - struct ctl_table tbl = {
125099 + ctl_table_no_const tbl = {
125100 .data = val,
125101 .maxlen = TCP_CA_NAME_MAX,
125102 };
125103 @@ -175,7 +175,7 @@ static int proc_tcp_available_congestion_control(struct ctl_table *ctl,
125104 void __user *buffer, size_t *lenp,
125105 loff_t *ppos)
125106 {
125107 - struct ctl_table tbl = { .maxlen = TCP_CA_BUF_MAX, };
125108 + ctl_table_no_const tbl = { .maxlen = TCP_CA_BUF_MAX, };
125109 int ret;
125110
125111 tbl.data = kmalloc(tbl.maxlen, GFP_USER);
125112 @@ -192,7 +192,7 @@ static int proc_allowed_congestion_control(struct ctl_table *ctl,
125113 void __user *buffer, size_t *lenp,
125114 loff_t *ppos)
125115 {
125116 - struct ctl_table tbl = { .maxlen = TCP_CA_BUF_MAX };
125117 + ctl_table_no_const tbl = { .maxlen = TCP_CA_BUF_MAX };
125118 int ret;
125119
125120 tbl.data = kmalloc(tbl.maxlen, GFP_USER);
125121 @@ -211,7 +211,7 @@ static int proc_tcp_fastopen_key(struct ctl_table *ctl, int write,
125122 void __user *buffer, size_t *lenp,
125123 loff_t *ppos)
125124 {
125125 - struct ctl_table tbl = { .maxlen = (TCP_FASTOPEN_KEY_LENGTH * 2 + 10) };
125126 + ctl_table_no_const tbl = { .maxlen = (TCP_FASTOPEN_KEY_LENGTH * 2 + 10) };
125127 struct tcp_fastopen_context *ctxt;
125128 int ret;
125129 u32 user_key[4]; /* 16 bytes, matching TCP_FASTOPEN_KEY_LENGTH */
125130 @@ -955,13 +955,12 @@ static struct ctl_table ipv4_net_table[] = {
125131
125132 static __net_init int ipv4_sysctl_init_net(struct net *net)
125133 {
125134 - struct ctl_table *table;
125135 + ctl_table_no_const *table = NULL;
125136
125137 - table = ipv4_net_table;
125138 if (!net_eq(net, &init_net)) {
125139 int i;
125140
125141 - table = kmemdup(table, sizeof(ipv4_net_table), GFP_KERNEL);
125142 + table = kmemdup(ipv4_net_table, sizeof(ipv4_net_table), GFP_KERNEL);
125143 if (!table)
125144 goto err_alloc;
125145
125146 @@ -970,7 +969,10 @@ static __net_init int ipv4_sysctl_init_net(struct net *net)
125147 table[i].data += (void *)net - (void *)&init_net;
125148 }
125149
125150 - net->ipv4.ipv4_hdr = register_net_sysctl(net, "net/ipv4", table);
125151 + if (!net_eq(net, &init_net))
125152 + net->ipv4.ipv4_hdr = register_net_sysctl(net, "net/ipv4", table);
125153 + else
125154 + net->ipv4.ipv4_hdr = register_net_sysctl(net, "net/ipv4", ipv4_net_table);
125155 if (!net->ipv4.ipv4_hdr)
125156 goto err_reg;
125157
125158 diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
125159 index d4c5115..f949b08 100644
125160 --- a/net/ipv4/tcp_input.c
125161 +++ b/net/ipv4/tcp_input.c
125162 @@ -266,11 +266,13 @@ static void tcp_ecn_rcv_synack(struct tcp_sock *tp, const struct tcphdr *th)
125163 tp->ecn_flags &= ~TCP_ECN_OK;
125164 }
125165
125166 +#ifndef CONFIG_GRKERNSEC_NO_SIMULT_CONNECT
125167 static void tcp_ecn_rcv_syn(struct tcp_sock *tp, const struct tcphdr *th)
125168 {
125169 if ((tp->ecn_flags & TCP_ECN_OK) && (!th->ece || !th->cwr))
125170 tp->ecn_flags &= ~TCP_ECN_OK;
125171 }
125172 +#endif
125173
125174 static bool tcp_ecn_rcv_ecn_echo(const struct tcp_sock *tp, const struct tcphdr *th)
125175 {
125176 @@ -787,7 +789,7 @@ static void tcp_update_pacing_rate(struct sock *sk)
125177 * without any lock. We want to make sure compiler wont store
125178 * intermediate values in this location.
125179 */
125180 - ACCESS_ONCE(sk->sk_pacing_rate) = min_t(u64, rate,
125181 + ACCESS_ONCE_RW(sk->sk_pacing_rate) = min_t(u64, rate,
125182 sk->sk_max_pacing_rate);
125183 }
125184
125185 @@ -4674,7 +4676,7 @@ static struct sk_buff *tcp_collapse_one(struct sock *sk, struct sk_buff *skb,
125186 * simplifies code)
125187 */
125188 static void
125189 -tcp_collapse(struct sock *sk, struct sk_buff_head *list,
125190 +__intentional_overflow(5,6) tcp_collapse(struct sock *sk, struct sk_buff_head *list,
125191 struct sk_buff *head, struct sk_buff *tail,
125192 u32 start, u32 end)
125193 {
125194 @@ -5669,6 +5671,7 @@ discard:
125195 tcp_paws_reject(&tp->rx_opt, 0))
125196 goto discard_and_undo;
125197
125198 +#ifndef CONFIG_GRKERNSEC_NO_SIMULT_CONNECT
125199 if (th->syn) {
125200 /* We see SYN without ACK. It is attempt of
125201 * simultaneous connect with crossed SYNs.
125202 @@ -5720,6 +5723,7 @@ discard:
125203 goto discard;
125204 #endif
125205 }
125206 +#endif
125207 /* "fifth, if neither of the SYN or RST bits is set then
125208 * drop the segment and return."
125209 */
125210 @@ -5765,7 +5769,7 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb)
125211 goto discard;
125212
125213 if (th->syn) {
125214 - if (th->fin)
125215 + if (th->fin || th->urg || th->psh)
125216 goto discard;
125217 if (icsk->icsk_af_ops->conn_request(sk, skb) < 0)
125218 return 1;
125219 @@ -6097,7 +6101,7 @@ struct request_sock *inet_reqsk_alloc(const struct request_sock_ops *ops,
125220
125221 kmemcheck_annotate_bitfield(ireq, flags);
125222 ireq->opt = NULL;
125223 - atomic64_set(&ireq->ir_cookie, 0);
125224 + atomic64_set_unchecked(&ireq->ir_cookie, 0);
125225 ireq->ireq_state = TCP_NEW_SYN_RECV;
125226 write_pnet(&ireq->ireq_net, sock_net(sk_listener));
125227 ireq->ireq_family = sk_listener->sk_family;
125228 diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
125229 index 8c7e631..d1dfdaf 100644
125230 --- a/net/ipv4/tcp_ipv4.c
125231 +++ b/net/ipv4/tcp_ipv4.c
125232 @@ -89,6 +89,10 @@ int sysctl_tcp_tw_reuse __read_mostly;
125233 int sysctl_tcp_low_latency __read_mostly;
125234 EXPORT_SYMBOL(sysctl_tcp_low_latency);
125235
125236 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
125237 +extern int grsec_enable_blackhole;
125238 +#endif
125239 +
125240 #ifdef CONFIG_TCP_MD5SIG
125241 static int tcp_v4_md5_hash_hdr(char *md5_hash, const struct tcp_md5sig_key *key,
125242 __be32 daddr, __be32 saddr, const struct tcphdr *th);
125243 @@ -1420,6 +1424,9 @@ int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb)
125244 return 0;
125245
125246 reset:
125247 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
125248 + if (!grsec_enable_blackhole)
125249 +#endif
125250 tcp_v4_send_reset(rsk, skb);
125251 discard:
125252 kfree_skb(skb);
125253 @@ -1585,12 +1592,19 @@ int tcp_v4_rcv(struct sk_buff *skb)
125254
125255 lookup:
125256 sk = __inet_lookup_skb(&tcp_hashinfo, skb, th->source, th->dest);
125257 - if (!sk)
125258 + if (!sk) {
125259 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
125260 + ret = 1;
125261 +#endif
125262 goto no_tcp_socket;
125263 -
125264 + }
125265 process:
125266 - if (sk->sk_state == TCP_TIME_WAIT)
125267 + if (sk->sk_state == TCP_TIME_WAIT) {
125268 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
125269 + ret = 2;
125270 +#endif
125271 goto do_time_wait;
125272 + }
125273
125274 if (sk->sk_state == TCP_NEW_SYN_RECV) {
125275 struct request_sock *req = inet_reqsk(sk);
125276 @@ -1675,6 +1689,10 @@ csum_error:
125277 bad_packet:
125278 TCP_INC_STATS_BH(net, TCP_MIB_INERRS);
125279 } else {
125280 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
125281 + if (!grsec_enable_blackhole || (ret == 1 &&
125282 + (skb->dev->flags & IFF_LOOPBACK)))
125283 +#endif
125284 tcp_v4_send_reset(NULL, skb);
125285 }
125286
125287 diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c
125288 index ac6b196..e94c1ea 100644
125289 --- a/net/ipv4/tcp_minisocks.c
125290 +++ b/net/ipv4/tcp_minisocks.c
125291 @@ -27,6 +27,10 @@
125292 #include <net/inet_common.h>
125293 #include <net/xfrm.h>
125294
125295 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
125296 +extern int grsec_enable_blackhole;
125297 +#endif
125298 +
125299 int sysctl_tcp_syncookies __read_mostly = 1;
125300 EXPORT_SYMBOL(sysctl_tcp_syncookies);
125301
125302 @@ -787,7 +791,10 @@ embryonic_reset:
125303 * avoid becoming vulnerable to outside attack aiming at
125304 * resetting legit local connections.
125305 */
125306 - req->rsk_ops->send_reset(sk, skb);
125307 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
125308 + if (!grsec_enable_blackhole)
125309 +#endif
125310 + req->rsk_ops->send_reset(sk, skb);
125311 } else if (fastopen) { /* received a valid RST pkt */
125312 reqsk_fastopen_remove(sk, req, true);
125313 tcp_reset(sk);
125314 diff --git a/net/ipv4/tcp_probe.c b/net/ipv4/tcp_probe.c
125315 index ebf5ff5..4d1ff32 100644
125316 --- a/net/ipv4/tcp_probe.c
125317 +++ b/net/ipv4/tcp_probe.c
125318 @@ -236,7 +236,7 @@ static ssize_t tcpprobe_read(struct file *file, char __user *buf,
125319 if (cnt + width >= len)
125320 break;
125321
125322 - if (copy_to_user(buf + cnt, tbuf, width))
125323 + if (width > sizeof tbuf || copy_to_user(buf + cnt, tbuf, width))
125324 return -EFAULT;
125325 cnt += width;
125326 }
125327 diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c
125328 index 193ba1f..aeda727 100644
125329 --- a/net/ipv4/tcp_timer.c
125330 +++ b/net/ipv4/tcp_timer.c
125331 @@ -22,6 +22,10 @@
125332 #include <linux/gfp.h>
125333 #include <net/tcp.h>
125334
125335 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
125336 +extern int grsec_lastack_retries;
125337 +#endif
125338 +
125339 int sysctl_tcp_syn_retries __read_mostly = TCP_SYN_RETRIES;
125340 int sysctl_tcp_synack_retries __read_mostly = TCP_SYNACK_RETRIES;
125341 int sysctl_tcp_keepalive_time __read_mostly = TCP_KEEPALIVE_TIME;
125342 @@ -207,6 +211,13 @@ static int tcp_write_timeout(struct sock *sk)
125343 }
125344 }
125345
125346 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
125347 + if ((sk->sk_state == TCP_LAST_ACK) &&
125348 + (grsec_lastack_retries > 0) &&
125349 + (grsec_lastack_retries < retry_until))
125350 + retry_until = grsec_lastack_retries;
125351 +#endif
125352 +
125353 if (retransmits_timed_out(sk, retry_until,
125354 syn_set ? 0 : icsk->icsk_user_timeout, syn_set)) {
125355 /* Has it gone just too far? */
125356 diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
125357 index 7f8ab46..6d152f7 100644
125358 --- a/net/ipv4/udp.c
125359 +++ b/net/ipv4/udp.c
125360 @@ -87,6 +87,7 @@
125361 #include <linux/types.h>
125362 #include <linux/fcntl.h>
125363 #include <linux/module.h>
125364 +#include <linux/security.h>
125365 #include <linux/socket.h>
125366 #include <linux/sockios.h>
125367 #include <linux/igmp.h>
125368 @@ -114,6 +115,10 @@
125369 #include <net/busy_poll.h>
125370 #include "udp_impl.h"
125371
125372 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
125373 +extern int grsec_enable_blackhole;
125374 +#endif
125375 +
125376 struct udp_table udp_table __read_mostly;
125377 EXPORT_SYMBOL(udp_table);
125378
125379 @@ -611,6 +616,9 @@ static inline bool __udp_is_mcast_sock(struct net *net, struct sock *sk,
125380 return true;
125381 }
125382
125383 +extern int gr_search_udp_recvmsg(struct sock *sk, const struct sk_buff *skb);
125384 +extern int gr_search_udp_sendmsg(struct sock *sk, struct sockaddr_in *addr);
125385 +
125386 /*
125387 * This routine is called by the ICMP module when it gets some
125388 * sort of error condition. If err < 0 then the socket should
125389 @@ -947,9 +955,18 @@ int udp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
125390 dport = usin->sin_port;
125391 if (dport == 0)
125392 return -EINVAL;
125393 +
125394 + err = gr_search_udp_sendmsg(sk, usin);
125395 + if (err)
125396 + return err;
125397 } else {
125398 if (sk->sk_state != TCP_ESTABLISHED)
125399 return -EDESTADDRREQ;
125400 +
125401 + err = gr_search_udp_sendmsg(sk, NULL);
125402 + if (err)
125403 + return err;
125404 +
125405 daddr = inet->inet_daddr;
125406 dport = inet->inet_dport;
125407 /* Open fast path for connected socket.
125408 @@ -1206,7 +1223,7 @@ static unsigned int first_packet_length(struct sock *sk)
125409 IS_UDPLITE(sk));
125410 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
125411 IS_UDPLITE(sk));
125412 - atomic_inc(&sk->sk_drops);
125413 + atomic_inc_unchecked(&sk->sk_drops);
125414 __skb_unlink(skb, rcvq);
125415 __skb_queue_tail(&list_kill, skb);
125416 }
125417 @@ -1286,6 +1303,10 @@ try_again:
125418 if (!skb)
125419 goto out;
125420
125421 + err = gr_search_udp_recvmsg(sk, skb);
125422 + if (err)
125423 + goto out_free;
125424 +
125425 ulen = skb->len - sizeof(struct udphdr);
125426 copied = len;
125427 if (copied > ulen)
125428 @@ -1318,7 +1339,7 @@ try_again:
125429 if (unlikely(err)) {
125430 trace_kfree_skb(skb, udp_recvmsg);
125431 if (!peeked) {
125432 - atomic_inc(&sk->sk_drops);
125433 + atomic_inc_unchecked(&sk->sk_drops);
125434 UDP_INC_STATS_USER(sock_net(sk),
125435 UDP_MIB_INERRORS, is_udplite);
125436 }
125437 @@ -1612,7 +1633,7 @@ csum_error:
125438 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_CSUMERRORS, is_udplite);
125439 drop:
125440 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
125441 - atomic_inc(&sk->sk_drops);
125442 + atomic_inc_unchecked(&sk->sk_drops);
125443 kfree_skb(skb);
125444 return -1;
125445 }
125446 @@ -1630,7 +1651,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
125447 skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC);
125448
125449 if (!skb1) {
125450 - atomic_inc(&sk->sk_drops);
125451 + atomic_inc_unchecked(&sk->sk_drops);
125452 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS,
125453 IS_UDPLITE(sk));
125454 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
125455 @@ -1836,6 +1857,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
125456 goto csum_error;
125457
125458 UDP_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE);
125459 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
125460 + if (!grsec_enable_blackhole || (skb->dev->flags & IFF_LOOPBACK))
125461 +#endif
125462 icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0);
125463
125464 /*
125465 @@ -2440,7 +2464,7 @@ static void udp4_format_sock(struct sock *sp, struct seq_file *f,
125466 from_kuid_munged(seq_user_ns(f), sock_i_uid(sp)),
125467 0, sock_i_ino(sp),
125468 atomic_read(&sp->sk_refcnt), sp,
125469 - atomic_read(&sp->sk_drops));
125470 + atomic_read_unchecked(&sp->sk_drops));
125471 }
125472
125473 int udp4_seq_show(struct seq_file *seq, void *v)
125474 diff --git a/net/ipv4/xfrm4_mode_transport.c b/net/ipv4/xfrm4_mode_transport.c
125475 index fd840c7..b517627 100644
125476 --- a/net/ipv4/xfrm4_mode_transport.c
125477 +++ b/net/ipv4/xfrm4_mode_transport.c
125478 @@ -18,7 +18,7 @@
125479 * The IP header will be moved forward to make space for the encapsulation
125480 * header.
125481 */
125482 -static int xfrm4_transport_output(struct xfrm_state *x, struct sk_buff *skb)
125483 +static int __intentional_overflow(0) xfrm4_transport_output(struct xfrm_state *x, struct sk_buff *skb)
125484 {
125485 struct iphdr *iph = ip_hdr(skb);
125486 int ihl = iph->ihl * 4;
125487 diff --git a/net/ipv4/xfrm4_policy.c b/net/ipv4/xfrm4_policy.c
125488 index 7b0edb3..785b3f6 100644
125489 --- a/net/ipv4/xfrm4_policy.c
125490 +++ b/net/ipv4/xfrm4_policy.c
125491 @@ -215,11 +215,11 @@ _decode_session4(struct sk_buff *skb, struct flowi *fl, int reverse)
125492 fl4->flowi4_tos = iph->tos;
125493 }
125494
125495 -static inline int xfrm4_garbage_collect(struct dst_ops *ops)
125496 +static int xfrm4_garbage_collect(struct dst_ops *ops)
125497 {
125498 struct net *net = container_of(ops, struct net, xfrm.xfrm4_dst_ops);
125499
125500 - xfrm4_policy_afinfo.garbage_collect(net);
125501 + xfrm_garbage_collect_deferred(net);
125502 return (dst_entries_get_slow(ops) > ops->gc_thresh * 2);
125503 }
125504
125505 @@ -297,19 +297,19 @@ static struct ctl_table xfrm4_policy_table[] = {
125506
125507 static int __net_init xfrm4_net_sysctl_init(struct net *net)
125508 {
125509 - struct ctl_table *table;
125510 + ctl_table_no_const *table = NULL;
125511 struct ctl_table_header *hdr;
125512
125513 - table = xfrm4_policy_table;
125514 if (!net_eq(net, &init_net)) {
125515 - table = kmemdup(table, sizeof(xfrm4_policy_table), GFP_KERNEL);
125516 + table = kmemdup(xfrm4_policy_table, sizeof(xfrm4_policy_table), GFP_KERNEL);
125517 if (!table)
125518 goto err_alloc;
125519
125520 table[0].data = &net->xfrm.xfrm4_dst_ops.gc_thresh;
125521 - }
125522
125523 - hdr = register_net_sysctl(net, "net/ipv4", table);
125524 + hdr = register_net_sysctl(net, "net/ipv4", table);
125525 + } else
125526 + hdr = register_net_sysctl(net, "net/ipv4", xfrm4_policy_table);
125527 if (!hdr)
125528 goto err_reg;
125529
125530 @@ -317,8 +317,7 @@ static int __net_init xfrm4_net_sysctl_init(struct net *net)
125531 return 0;
125532
125533 err_reg:
125534 - if (!net_eq(net, &init_net))
125535 - kfree(table);
125536 + kfree(table);
125537 err_alloc:
125538 return -ENOMEM;
125539 }
125540 diff --git a/net/ipv4/xfrm4_state.c b/net/ipv4/xfrm4_state.c
125541 index 542074c..648df74 100644
125542 --- a/net/ipv4/xfrm4_state.c
125543 +++ b/net/ipv4/xfrm4_state.c
125544 @@ -56,6 +56,7 @@ xfrm4_init_temprop(struct xfrm_state *x, const struct xfrm_tmpl *tmpl,
125545
125546 int xfrm4_extract_header(struct sk_buff *skb)
125547 {
125548 + unsigned char iph_tmp;
125549 const struct iphdr *iph = ip_hdr(skb);
125550
125551 XFRM_MODE_SKB_CB(skb)->ihl = sizeof(*iph);
125552 @@ -63,7 +64,8 @@ int xfrm4_extract_header(struct sk_buff *skb)
125553 XFRM_MODE_SKB_CB(skb)->frag_off = iph->frag_off;
125554 XFRM_MODE_SKB_CB(skb)->tos = iph->tos;
125555 XFRM_MODE_SKB_CB(skb)->ttl = iph->ttl;
125556 - XFRM_MODE_SKB_CB(skb)->optlen = iph->ihl * 4 - sizeof(*iph);
125557 + iph_tmp = iph->ihl * 4;
125558 + XFRM_MODE_SKB_CB(skb)->optlen = iph_tmp - sizeof(*iph);
125559 memset(XFRM_MODE_SKB_CB(skb)->flow_lbl, 0,
125560 sizeof(XFRM_MODE_SKB_CB(skb)->flow_lbl));
125561
125562 diff --git a/net/ipv6/Kconfig b/net/ipv6/Kconfig
125563 index 983bb99..ebc39e1 100644
125564 --- a/net/ipv6/Kconfig
125565 +++ b/net/ipv6/Kconfig
125566 @@ -69,6 +69,7 @@ config INET6_ESP
125567 select CRYPTO_CBC
125568 select CRYPTO_SHA1
125569 select CRYPTO_DES
125570 + select CRYPTO_ECHAINIV
125571 ---help---
125572 Support for IPsec ESP.
125573
125574 diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
125575 index e8d3da0..c1ab725 100644
125576 --- a/net/ipv6/addrconf.c
125577 +++ b/net/ipv6/addrconf.c
125578 @@ -179,7 +179,7 @@ static struct ipv6_devconf ipv6_devconf __read_mostly = {
125579 .hop_limit = IPV6_DEFAULT_HOPLIMIT,
125580 .mtu6 = IPV6_MIN_MTU,
125581 .accept_ra = 1,
125582 - .accept_redirects = 1,
125583 + .accept_redirects = 0,
125584 .autoconf = 1,
125585 .force_mld_version = 0,
125586 .mldv1_unsolicited_report_interval = 10 * HZ,
125587 @@ -223,7 +223,7 @@ static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = {
125588 .hop_limit = IPV6_DEFAULT_HOPLIMIT,
125589 .mtu6 = IPV6_MIN_MTU,
125590 .accept_ra = 1,
125591 - .accept_redirects = 1,
125592 + .accept_redirects = 0,
125593 .autoconf = 1,
125594 .force_mld_version = 0,
125595 .mldv1_unsolicited_report_interval = 10 * HZ,
125596 @@ -643,7 +643,7 @@ static int inet6_netconf_dump_devconf(struct sk_buff *skb,
125597 idx = 0;
125598 head = &net->dev_index_head[h];
125599 rcu_read_lock();
125600 - cb->seq = atomic_read(&net->ipv6.dev_addr_genid) ^
125601 + cb->seq = atomic_read_unchecked(&net->ipv6.dev_addr_genid) ^
125602 net->dev_base_seq;
125603 hlist_for_each_entry_rcu(dev, head, index_hlist) {
125604 if (idx < s_idx)
125605 @@ -2584,7 +2584,7 @@ int addrconf_set_dstaddr(struct net *net, void __user *arg)
125606 p.iph.ihl = 5;
125607 p.iph.protocol = IPPROTO_IPV6;
125608 p.iph.ttl = 64;
125609 - ifr.ifr_ifru.ifru_data = (__force void __user *)&p;
125610 + ifr.ifr_ifru.ifru_data = (void __force_user *)&p;
125611
125612 if (ops->ndo_do_ioctl) {
125613 mm_segment_t oldfs = get_fs();
125614 @@ -3867,16 +3867,23 @@ static const struct file_operations if6_fops = {
125615 .release = seq_release_net,
125616 };
125617
125618 +extern void register_ipv6_seq_ops_addr(struct seq_operations *addr);
125619 +extern void unregister_ipv6_seq_ops_addr(void);
125620 +
125621 static int __net_init if6_proc_net_init(struct net *net)
125622 {
125623 - if (!proc_create("if_inet6", S_IRUGO, net->proc_net, &if6_fops))
125624 + register_ipv6_seq_ops_addr(&if6_seq_ops);
125625 + if (!proc_create("if_inet6", S_IRUGO, net->proc_net, &if6_fops)) {
125626 + unregister_ipv6_seq_ops_addr();
125627 return -ENOMEM;
125628 + }
125629 return 0;
125630 }
125631
125632 static void __net_exit if6_proc_net_exit(struct net *net)
125633 {
125634 remove_proc_entry("if_inet6", net->proc_net);
125635 + unregister_ipv6_seq_ops_addr();
125636 }
125637
125638 static struct pernet_operations if6_proc_net_ops = {
125639 @@ -4495,7 +4502,7 @@ static int inet6_dump_addr(struct sk_buff *skb, struct netlink_callback *cb,
125640 s_ip_idx = ip_idx = cb->args[2];
125641
125642 rcu_read_lock();
125643 - cb->seq = atomic_read(&net->ipv6.dev_addr_genid) ^ net->dev_base_seq;
125644 + cb->seq = atomic_read_unchecked(&net->ipv6.dev_addr_genid) ^ net->dev_base_seq;
125645 for (h = s_h; h < NETDEV_HASHENTRIES; h++, s_idx = 0) {
125646 idx = 0;
125647 head = &net->dev_index_head[h];
125648 @@ -4705,7 +4712,7 @@ static inline size_t inet6_if_nlmsg_size(void)
125649 + nla_total_size(inet6_ifla6_size()); /* IFLA_PROTINFO */
125650 }
125651
125652 -static inline void __snmp6_fill_statsdev(u64 *stats, atomic_long_t *mib,
125653 +static inline void __snmp6_fill_statsdev(u64 *stats, atomic_long_unchecked_t *mib,
125654 int items, int bytes)
125655 {
125656 int i;
125657 @@ -4715,7 +4722,7 @@ static inline void __snmp6_fill_statsdev(u64 *stats, atomic_long_t *mib,
125658 /* Use put_unaligned() because stats may not be aligned for u64. */
125659 put_unaligned(items, &stats[0]);
125660 for (i = 1; i < items; i++)
125661 - put_unaligned(atomic_long_read(&mib[i]), &stats[i]);
125662 + put_unaligned(atomic_long_read_unchecked(&mib[i]), &stats[i]);
125663
125664 memset(&stats[items], 0, pad);
125665 }
125666 @@ -5169,7 +5176,7 @@ static void __ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp)
125667 rt_genid_bump_ipv6(net);
125668 break;
125669 }
125670 - atomic_inc(&net->ipv6.dev_addr_genid);
125671 + atomic_inc_unchecked(&net->ipv6.dev_addr_genid);
125672 }
125673
125674 static void ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp)
125675 @@ -5189,7 +5196,7 @@ int addrconf_sysctl_forward(struct ctl_table *ctl, int write,
125676 int *valp = ctl->data;
125677 int val = *valp;
125678 loff_t pos = *ppos;
125679 - struct ctl_table lctl;
125680 + ctl_table_no_const lctl;
125681 int ret;
125682
125683 /*
125684 @@ -5214,7 +5221,7 @@ int addrconf_sysctl_mtu(struct ctl_table *ctl, int write,
125685 {
125686 struct inet6_dev *idev = ctl->extra1;
125687 int min_mtu = IPV6_MIN_MTU;
125688 - struct ctl_table lctl;
125689 + ctl_table_no_const lctl;
125690
125691 lctl = *ctl;
125692 lctl.extra1 = &min_mtu;
125693 @@ -5289,7 +5296,7 @@ int addrconf_sysctl_disable(struct ctl_table *ctl, int write,
125694 int *valp = ctl->data;
125695 int val = *valp;
125696 loff_t pos = *ppos;
125697 - struct ctl_table lctl;
125698 + ctl_table_no_const lctl;
125699 int ret;
125700
125701 /*
125702 @@ -5354,7 +5361,7 @@ static int addrconf_sysctl_stable_secret(struct ctl_table *ctl, int write,
125703 int err;
125704 struct in6_addr addr;
125705 char str[IPV6_MAX_STRLEN];
125706 - struct ctl_table lctl = *ctl;
125707 + ctl_table_no_const lctl = *ctl;
125708 struct net *net = ctl->extra2;
125709 struct ipv6_stable_secret *secret = ctl->data;
125710
125711 @@ -5423,7 +5430,7 @@ int addrconf_sysctl_ignore_routes_with_linkdown(struct ctl_table *ctl,
125712 int *valp = ctl->data;
125713 int val = *valp;
125714 loff_t pos = *ppos;
125715 - struct ctl_table lctl;
125716 + ctl_table_no_const lctl;
125717 int ret;
125718
125719 /* ctl->data points to idev->cnf.ignore_routes_when_linkdown
125720 diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
125721 index 9f5137c..a7eabd9 100644
125722 --- a/net/ipv6/af_inet6.c
125723 +++ b/net/ipv6/af_inet6.c
125724 @@ -780,7 +780,7 @@ static int __net_init inet6_net_init(struct net *net)
125725 net->ipv6.sysctl.idgen_retries = 3;
125726 net->ipv6.sysctl.idgen_delay = 1 * HZ;
125727 net->ipv6.sysctl.flowlabel_state_ranges = 0;
125728 - atomic_set(&net->ipv6.fib6_sernum, 1);
125729 + atomic_set_unchecked(&net->ipv6.fib6_sernum, 1);
125730
125731 err = ipv6_init_mibs(net);
125732 if (err)
125733 diff --git a/net/ipv6/datagram.c b/net/ipv6/datagram.c
125734 index 4281621..b1e9d2d 100644
125735 --- a/net/ipv6/datagram.c
125736 +++ b/net/ipv6/datagram.c
125737 @@ -982,5 +982,5 @@ void ip6_dgram_sock_seq_show(struct seq_file *seq, struct sock *sp,
125738 0,
125739 sock_i_ino(sp),
125740 atomic_read(&sp->sk_refcnt), sp,
125741 - atomic_read(&sp->sk_drops));
125742 + atomic_read_unchecked(&sp->sk_drops));
125743 }
125744 diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c
125745 index 0a37ddc..af81b1a 100644
125746 --- a/net/ipv6/icmp.c
125747 +++ b/net/ipv6/icmp.c
125748 @@ -998,7 +998,7 @@ static struct ctl_table ipv6_icmp_table_template[] = {
125749
125750 struct ctl_table * __net_init ipv6_icmp_sysctl_init(struct net *net)
125751 {
125752 - struct ctl_table *table;
125753 + ctl_table_no_const *table;
125754
125755 table = kmemdup(ipv6_icmp_table_template,
125756 sizeof(ipv6_icmp_table_template),
125757 diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c
125758 index 0c7e276..68d9b36 100644
125759 --- a/net/ipv6/ip6_fib.c
125760 +++ b/net/ipv6/ip6_fib.c
125761 @@ -100,9 +100,9 @@ static int fib6_new_sernum(struct net *net)
125762 int new, old;
125763
125764 do {
125765 - old = atomic_read(&net->ipv6.fib6_sernum);
125766 + old = atomic_read_unchecked(&net->ipv6.fib6_sernum);
125767 new = old < INT_MAX ? old + 1 : 1;
125768 - } while (atomic_cmpxchg(&net->ipv6.fib6_sernum,
125769 + } while (atomic_cmpxchg_unchecked(&net->ipv6.fib6_sernum,
125770 old, new) != old);
125771 return new;
125772 }
125773 diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c
125774 index e5ea177..54bf9fb 100644
125775 --- a/net/ipv6/ip6_gre.c
125776 +++ b/net/ipv6/ip6_gre.c
125777 @@ -71,8 +71,8 @@ struct ip6gre_net {
125778 struct net_device *fb_tunnel_dev;
125779 };
125780
125781 -static struct rtnl_link_ops ip6gre_link_ops __read_mostly;
125782 -static struct rtnl_link_ops ip6gre_tap_ops __read_mostly;
125783 +static struct rtnl_link_ops ip6gre_link_ops;
125784 +static struct rtnl_link_ops ip6gre_tap_ops;
125785 static int ip6gre_tunnel_init(struct net_device *dev);
125786 static void ip6gre_tunnel_setup(struct net_device *dev);
125787 static void ip6gre_tunnel_link(struct ip6gre_net *ign, struct ip6_tnl *t);
125788 @@ -1302,7 +1302,7 @@ static void ip6gre_fb_tunnel_init(struct net_device *dev)
125789 }
125790
125791
125792 -static struct inet6_protocol ip6gre_protocol __read_mostly = {
125793 +static struct inet6_protocol ip6gre_protocol = {
125794 .handler = ip6gre_rcv,
125795 .err_handler = ip6gre_err,
125796 .flags = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,
125797 @@ -1656,7 +1656,7 @@ static const struct nla_policy ip6gre_policy[IFLA_GRE_MAX + 1] = {
125798 [IFLA_GRE_FLAGS] = { .type = NLA_U32 },
125799 };
125800
125801 -static struct rtnl_link_ops ip6gre_link_ops __read_mostly = {
125802 +static struct rtnl_link_ops ip6gre_link_ops = {
125803 .kind = "ip6gre",
125804 .maxtype = IFLA_GRE_MAX,
125805 .policy = ip6gre_policy,
125806 @@ -1671,7 +1671,7 @@ static struct rtnl_link_ops ip6gre_link_ops __read_mostly = {
125807 .get_link_net = ip6_tnl_get_link_net,
125808 };
125809
125810 -static struct rtnl_link_ops ip6gre_tap_ops __read_mostly = {
125811 +static struct rtnl_link_ops ip6gre_tap_ops = {
125812 .kind = "ip6gretap",
125813 .maxtype = IFLA_GRE_MAX,
125814 .policy = ip6gre_policy,
125815 diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c
125816 index 137fca4..2671d8c 100644
125817 --- a/net/ipv6/ip6_tunnel.c
125818 +++ b/net/ipv6/ip6_tunnel.c
125819 @@ -80,7 +80,7 @@ static u32 HASH(const struct in6_addr *addr1, const struct in6_addr *addr2)
125820
125821 static int ip6_tnl_dev_init(struct net_device *dev);
125822 static void ip6_tnl_dev_setup(struct net_device *dev);
125823 -static struct rtnl_link_ops ip6_link_ops __read_mostly;
125824 +static struct rtnl_link_ops ip6_link_ops;
125825
125826 static int ip6_tnl_net_id __read_mostly;
125827 struct ip6_tnl_net {
125828 @@ -1841,7 +1841,7 @@ static const struct nla_policy ip6_tnl_policy[IFLA_IPTUN_MAX + 1] = {
125829 [IFLA_IPTUN_PROTO] = { .type = NLA_U8 },
125830 };
125831
125832 -static struct rtnl_link_ops ip6_link_ops __read_mostly = {
125833 +static struct rtnl_link_ops ip6_link_ops = {
125834 .kind = "ip6tnl",
125835 .maxtype = IFLA_IPTUN_MAX,
125836 .policy = ip6_tnl_policy,
125837 diff --git a/net/ipv6/ip6_vti.c b/net/ipv6/ip6_vti.c
125838 index 0a8610b..2c8c85b 100644
125839 --- a/net/ipv6/ip6_vti.c
125840 +++ b/net/ipv6/ip6_vti.c
125841 @@ -62,7 +62,7 @@ static u32 HASH(const struct in6_addr *addr1, const struct in6_addr *addr2)
125842
125843 static int vti6_dev_init(struct net_device *dev);
125844 static void vti6_dev_setup(struct net_device *dev);
125845 -static struct rtnl_link_ops vti6_link_ops __read_mostly;
125846 +static struct rtnl_link_ops vti6_link_ops;
125847
125848 static int vti6_net_id __read_mostly;
125849 struct vti6_net {
125850 @@ -1019,7 +1019,7 @@ static const struct nla_policy vti6_policy[IFLA_VTI_MAX + 1] = {
125851 [IFLA_VTI_OKEY] = { .type = NLA_U32 },
125852 };
125853
125854 -static struct rtnl_link_ops vti6_link_ops __read_mostly = {
125855 +static struct rtnl_link_ops vti6_link_ops = {
125856 .kind = "vti6",
125857 .maxtype = IFLA_VTI_MAX,
125858 .policy = vti6_policy,
125859 diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c
125860 index 4449ad1..e47579c 100644
125861 --- a/net/ipv6/ipv6_sockglue.c
125862 +++ b/net/ipv6/ipv6_sockglue.c
125863 @@ -1025,7 +1025,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,
125864 if (sk->sk_type != SOCK_STREAM)
125865 return -ENOPROTOOPT;
125866
125867 - msg.msg_control = optval;
125868 + msg.msg_control = (void __force_kernel *)optval;
125869 msg.msg_controllen = len;
125870 msg.msg_flags = flags;
125871
125872 diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c
125873 index 84afb9a..d7dcc41 100644
125874 --- a/net/ipv6/ndisc.c
125875 +++ b/net/ipv6/ndisc.c
125876 @@ -665,7 +665,7 @@ static void ndisc_solicit(struct neighbour *neigh, struct sk_buff *skb)
125877 struct in6_addr mcaddr;
125878 struct net_device *dev = neigh->dev;
125879 struct in6_addr *target = (struct in6_addr *)&neigh->primary_key;
125880 - int probes = atomic_read(&neigh->probes);
125881 + int probes = atomic_read_unchecked(&neigh->probes);
125882
125883 if (skb && ipv6_chk_addr_and_flags(dev_net(dev), &ipv6_hdr(skb)->saddr,
125884 dev, 1,
125885 diff --git a/net/ipv6/netfilter/ip6_tables.c b/net/ipv6/netfilter/ip6_tables.c
125886 index 99425cf..262204d 100644
125887 --- a/net/ipv6/netfilter/ip6_tables.c
125888 +++ b/net/ipv6/netfilter/ip6_tables.c
125889 @@ -1090,14 +1090,14 @@ static int compat_table_info(const struct xt_table_info *info,
125890 #endif
125891
125892 static int get_info(struct net *net, void __user *user,
125893 - const int *len, int compat)
125894 + int len, int compat)
125895 {
125896 char name[XT_TABLE_MAXNAMELEN];
125897 struct xt_table *t;
125898 int ret;
125899
125900 - if (*len != sizeof(struct ip6t_getinfo)) {
125901 - duprintf("length %u != %zu\n", *len,
125902 + if (len != sizeof(struct ip6t_getinfo)) {
125903 + duprintf("length %u != %zu\n", len,
125904 sizeof(struct ip6t_getinfo));
125905 return -EINVAL;
125906 }
125907 @@ -1134,7 +1134,7 @@ static int get_info(struct net *net, void __user *user,
125908 info.size = private->size;
125909 strcpy(info.name, name);
125910
125911 - if (copy_to_user(user, &info, *len) != 0)
125912 + if (copy_to_user(user, &info, len) != 0)
125913 ret = -EFAULT;
125914 else
125915 ret = 0;
125916 @@ -1982,7 +1982,7 @@ compat_do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
125917
125918 switch (cmd) {
125919 case IP6T_SO_GET_INFO:
125920 - ret = get_info(sock_net(sk), user, len, 1);
125921 + ret = get_info(sock_net(sk), user, *len, 1);
125922 break;
125923 case IP6T_SO_GET_ENTRIES:
125924 ret = compat_get_entries(sock_net(sk), user, len);
125925 @@ -2029,7 +2029,7 @@ do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
125926
125927 switch (cmd) {
125928 case IP6T_SO_GET_INFO:
125929 - ret = get_info(sock_net(sk), user, len, 0);
125930 + ret = get_info(sock_net(sk), user, *len, 0);
125931 break;
125932
125933 case IP6T_SO_GET_ENTRIES:
125934 diff --git a/net/ipv6/netfilter/nf_conntrack_reasm.c b/net/ipv6/netfilter/nf_conntrack_reasm.c
125935 index bab4441..233aa7a 100644
125936 --- a/net/ipv6/netfilter/nf_conntrack_reasm.c
125937 +++ b/net/ipv6/netfilter/nf_conntrack_reasm.c
125938 @@ -96,12 +96,11 @@ static struct ctl_table nf_ct_frag6_sysctl_table[] = {
125939
125940 static int nf_ct_frag6_sysctl_register(struct net *net)
125941 {
125942 - struct ctl_table *table;
125943 + ctl_table_no_const *table = NULL;
125944 struct ctl_table_header *hdr;
125945
125946 - table = nf_ct_frag6_sysctl_table;
125947 if (!net_eq(net, &init_net)) {
125948 - table = kmemdup(table, sizeof(nf_ct_frag6_sysctl_table),
125949 + table = kmemdup(nf_ct_frag6_sysctl_table, sizeof(nf_ct_frag6_sysctl_table),
125950 GFP_KERNEL);
125951 if (table == NULL)
125952 goto err_alloc;
125953 @@ -112,9 +111,9 @@ static int nf_ct_frag6_sysctl_register(struct net *net)
125954 table[2].data = &net->nf_frag.frags.high_thresh;
125955 table[2].extra1 = &net->nf_frag.frags.low_thresh;
125956 table[2].extra2 = &init_net.nf_frag.frags.high_thresh;
125957 - }
125958 -
125959 - hdr = register_net_sysctl(net, "net/netfilter", table);
125960 + hdr = register_net_sysctl(net, "net/netfilter", table);
125961 + } else
125962 + hdr = register_net_sysctl(net, "net/netfilter", nf_ct_frag6_sysctl_table);
125963 if (hdr == NULL)
125964 goto err_reg;
125965
125966 @@ -122,8 +121,7 @@ static int nf_ct_frag6_sysctl_register(struct net *net)
125967 return 0;
125968
125969 err_reg:
125970 - if (!net_eq(net, &init_net))
125971 - kfree(table);
125972 + kfree(table);
125973 err_alloc:
125974 return -ENOMEM;
125975 }
125976 diff --git a/net/ipv6/ping.c b/net/ipv6/ping.c
125977 index 263a516..692f738 100644
125978 --- a/net/ipv6/ping.c
125979 +++ b/net/ipv6/ping.c
125980 @@ -240,6 +240,24 @@ static struct pernet_operations ping_v6_net_ops = {
125981 };
125982 #endif
125983
125984 +static struct pingv6_ops real_pingv6_ops = {
125985 + .ipv6_recv_error = ipv6_recv_error,
125986 + .ip6_datagram_recv_common_ctl = ip6_datagram_recv_common_ctl,
125987 + .ip6_datagram_recv_specific_ctl = ip6_datagram_recv_specific_ctl,
125988 + .icmpv6_err_convert = icmpv6_err_convert,
125989 + .ipv6_icmp_error = ipv6_icmp_error,
125990 + .ipv6_chk_addr = ipv6_chk_addr,
125991 +};
125992 +
125993 +static struct pingv6_ops dummy_pingv6_ops = {
125994 + .ipv6_recv_error = dummy_ipv6_recv_error,
125995 + .ip6_datagram_recv_common_ctl = dummy_ip6_datagram_recv_ctl,
125996 + .ip6_datagram_recv_specific_ctl = dummy_ip6_datagram_recv_ctl,
125997 + .icmpv6_err_convert = dummy_icmpv6_err_convert,
125998 + .ipv6_icmp_error = dummy_ipv6_icmp_error,
125999 + .ipv6_chk_addr = dummy_ipv6_chk_addr,
126000 +};
126001 +
126002 int __init pingv6_init(void)
126003 {
126004 #ifdef CONFIG_PROC_FS
126005 @@ -247,13 +265,7 @@ int __init pingv6_init(void)
126006 if (ret)
126007 return ret;
126008 #endif
126009 - pingv6_ops.ipv6_recv_error = ipv6_recv_error;
126010 - pingv6_ops.ip6_datagram_recv_common_ctl = ip6_datagram_recv_common_ctl;
126011 - pingv6_ops.ip6_datagram_recv_specific_ctl =
126012 - ip6_datagram_recv_specific_ctl;
126013 - pingv6_ops.icmpv6_err_convert = icmpv6_err_convert;
126014 - pingv6_ops.ipv6_icmp_error = ipv6_icmp_error;
126015 - pingv6_ops.ipv6_chk_addr = ipv6_chk_addr;
126016 + pingv6_ops = &real_pingv6_ops;
126017 return inet6_register_protosw(&pingv6_protosw);
126018 }
126019
126020 @@ -262,14 +274,9 @@ int __init pingv6_init(void)
126021 */
126022 void pingv6_exit(void)
126023 {
126024 - pingv6_ops.ipv6_recv_error = dummy_ipv6_recv_error;
126025 - pingv6_ops.ip6_datagram_recv_common_ctl = dummy_ip6_datagram_recv_ctl;
126026 - pingv6_ops.ip6_datagram_recv_specific_ctl = dummy_ip6_datagram_recv_ctl;
126027 - pingv6_ops.icmpv6_err_convert = dummy_icmpv6_err_convert;
126028 - pingv6_ops.ipv6_icmp_error = dummy_ipv6_icmp_error;
126029 - pingv6_ops.ipv6_chk_addr = dummy_ipv6_chk_addr;
126030 #ifdef CONFIG_PROC_FS
126031 unregister_pernet_subsys(&ping_v6_net_ops);
126032 #endif
126033 + pingv6_ops = &dummy_pingv6_ops;
126034 inet6_unregister_protosw(&pingv6_protosw);
126035 }
126036 diff --git a/net/ipv6/proc.c b/net/ipv6/proc.c
126037 index 679253d0..d85dd97 100644
126038 --- a/net/ipv6/proc.c
126039 +++ b/net/ipv6/proc.c
126040 @@ -151,7 +151,7 @@ static const struct snmp_mib snmp6_udplite6_list[] = {
126041 SNMP_MIB_SENTINEL
126042 };
126043
126044 -static void snmp6_seq_show_icmpv6msg(struct seq_file *seq, atomic_long_t *smib)
126045 +static void snmp6_seq_show_icmpv6msg(struct seq_file *seq, atomic_long_unchecked_t *smib)
126046 {
126047 char name[32];
126048 int i;
126049 @@ -168,14 +168,14 @@ static void snmp6_seq_show_icmpv6msg(struct seq_file *seq, atomic_long_t *smib)
126050 snprintf(name, sizeof(name), "Icmp6%s%s",
126051 i & 0x100 ? "Out" : "In", p);
126052 seq_printf(seq, "%-32s\t%lu\n", name,
126053 - atomic_long_read(smib + i));
126054 + atomic_long_read_unchecked(smib + i));
126055 }
126056
126057 /* print by number (nonzero only) - ICMPMsgStat format */
126058 for (i = 0; i < ICMP6MSG_MIB_MAX; i++) {
126059 unsigned long val;
126060
126061 - val = atomic_long_read(smib + i);
126062 + val = atomic_long_read_unchecked(smib + i);
126063 if (!val)
126064 continue;
126065 snprintf(name, sizeof(name), "Icmp6%sType%u",
126066 @@ -188,7 +188,7 @@ static void snmp6_seq_show_icmpv6msg(struct seq_file *seq, atomic_long_t *smib)
126067 * or shared one (smib != NULL)
126068 */
126069 static void snmp6_seq_show_item(struct seq_file *seq, void __percpu *pcpumib,
126070 - atomic_long_t *smib,
126071 + atomic_long_unchecked_t *smib,
126072 const struct snmp_mib *itemlist)
126073 {
126074 int i;
126075 @@ -197,7 +197,7 @@ static void snmp6_seq_show_item(struct seq_file *seq, void __percpu *pcpumib,
126076 for (i = 0; itemlist[i].name; i++) {
126077 val = pcpumib ?
126078 snmp_fold_field(pcpumib, itemlist[i].entry) :
126079 - atomic_long_read(smib + itemlist[i].entry);
126080 + atomic_long_read_unchecked(smib + itemlist[i].entry);
126081 seq_printf(seq, "%-32s\t%lu\n", itemlist[i].name, val);
126082 }
126083 }
126084 @@ -310,7 +310,7 @@ static int __net_init ipv6_proc_init_net(struct net *net)
126085 if (!proc_create("snmp6", S_IRUGO, net->proc_net, &snmp6_seq_fops))
126086 goto proc_snmp6_fail;
126087
126088 - net->mib.proc_net_devsnmp6 = proc_mkdir("dev_snmp6", net->proc_net);
126089 + net->mib.proc_net_devsnmp6 = proc_mkdir_restrict("dev_snmp6", net->proc_net);
126090 if (!net->mib.proc_net_devsnmp6)
126091 goto proc_dev_snmp6_fail;
126092 return 0;
126093 diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
126094 index 9914098..f3f8888 100644
126095 --- a/net/ipv6/raw.c
126096 +++ b/net/ipv6/raw.c
126097 @@ -389,7 +389,7 @@ static inline int rawv6_rcv_skb(struct sock *sk, struct sk_buff *skb)
126098 {
126099 if ((raw6_sk(sk)->checksum || rcu_access_pointer(sk->sk_filter)) &&
126100 skb_checksum_complete(skb)) {
126101 - atomic_inc(&sk->sk_drops);
126102 + atomic_inc_unchecked(&sk->sk_drops);
126103 kfree_skb(skb);
126104 return NET_RX_DROP;
126105 }
126106 @@ -417,7 +417,7 @@ int rawv6_rcv(struct sock *sk, struct sk_buff *skb)
126107 struct raw6_sock *rp = raw6_sk(sk);
126108
126109 if (!xfrm6_policy_check(sk, XFRM_POLICY_IN, skb)) {
126110 - atomic_inc(&sk->sk_drops);
126111 + atomic_inc_unchecked(&sk->sk_drops);
126112 kfree_skb(skb);
126113 return NET_RX_DROP;
126114 }
126115 @@ -441,7 +441,7 @@ int rawv6_rcv(struct sock *sk, struct sk_buff *skb)
126116
126117 if (inet->hdrincl) {
126118 if (skb_checksum_complete(skb)) {
126119 - atomic_inc(&sk->sk_drops);
126120 + atomic_inc_unchecked(&sk->sk_drops);
126121 kfree_skb(skb);
126122 return NET_RX_DROP;
126123 }
126124 @@ -609,7 +609,7 @@ out:
126125 return err;
126126 }
126127
126128 -static int rawv6_send_hdrinc(struct sock *sk, struct msghdr *msg, int length,
126129 +static int rawv6_send_hdrinc(struct sock *sk, struct msghdr *msg, unsigned int length,
126130 struct flowi6 *fl6, struct dst_entry **dstp,
126131 unsigned int flags)
126132 {
126133 @@ -922,12 +922,15 @@ do_confirm:
126134 static int rawv6_seticmpfilter(struct sock *sk, int level, int optname,
126135 char __user *optval, int optlen)
126136 {
126137 + struct icmp6_filter filter;
126138 +
126139 switch (optname) {
126140 case ICMPV6_FILTER:
126141 if (optlen > sizeof(struct icmp6_filter))
126142 optlen = sizeof(struct icmp6_filter);
126143 - if (copy_from_user(&raw6_sk(sk)->filter, optval, optlen))
126144 + if (copy_from_user(&filter, optval, optlen))
126145 return -EFAULT;
126146 + raw6_sk(sk)->filter = filter;
126147 return 0;
126148 default:
126149 return -ENOPROTOOPT;
126150 @@ -940,6 +943,7 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
126151 char __user *optval, int __user *optlen)
126152 {
126153 int len;
126154 + struct icmp6_filter filter;
126155
126156 switch (optname) {
126157 case ICMPV6_FILTER:
126158 @@ -951,7 +955,8 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
126159 len = sizeof(struct icmp6_filter);
126160 if (put_user(len, optlen))
126161 return -EFAULT;
126162 - if (copy_to_user(optval, &raw6_sk(sk)->filter, len))
126163 + filter = raw6_sk(sk)->filter;
126164 + if (len > sizeof filter || copy_to_user(optval, &filter, len))
126165 return -EFAULT;
126166 return 0;
126167 default:
126168 diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c
126169 index 45f5ae5..1c57cbe 100644
126170 --- a/net/ipv6/reassembly.c
126171 +++ b/net/ipv6/reassembly.c
126172 @@ -630,12 +630,11 @@ static struct ctl_table ip6_frags_ctl_table[] = {
126173
126174 static int __net_init ip6_frags_ns_sysctl_register(struct net *net)
126175 {
126176 - struct ctl_table *table;
126177 + ctl_table_no_const *table = NULL;
126178 struct ctl_table_header *hdr;
126179
126180 - table = ip6_frags_ns_ctl_table;
126181 if (!net_eq(net, &init_net)) {
126182 - table = kmemdup(table, sizeof(ip6_frags_ns_ctl_table), GFP_KERNEL);
126183 + table = kmemdup(ip6_frags_ns_ctl_table, sizeof(ip6_frags_ns_ctl_table), GFP_KERNEL);
126184 if (!table)
126185 goto err_alloc;
126186
126187 @@ -649,9 +648,10 @@ static int __net_init ip6_frags_ns_sysctl_register(struct net *net)
126188 /* Don't export sysctls to unprivileged users */
126189 if (net->user_ns != &init_user_ns)
126190 table[0].procname = NULL;
126191 - }
126192 + hdr = register_net_sysctl(net, "net/ipv6", table);
126193 + } else
126194 + hdr = register_net_sysctl(net, "net/ipv6", ip6_frags_ns_ctl_table);
126195
126196 - hdr = register_net_sysctl(net, "net/ipv6", table);
126197 if (!hdr)
126198 goto err_reg;
126199
126200 @@ -659,8 +659,7 @@ static int __net_init ip6_frags_ns_sysctl_register(struct net *net)
126201 return 0;
126202
126203 err_reg:
126204 - if (!net_eq(net, &init_net))
126205 - kfree(table);
126206 + kfree(table);
126207 err_alloc:
126208 return -ENOMEM;
126209 }
126210 diff --git a/net/ipv6/route.c b/net/ipv6/route.c
126211 index 3f164d3..cd507d9 100644
126212 --- a/net/ipv6/route.c
126213 +++ b/net/ipv6/route.c
126214 @@ -3503,7 +3503,7 @@ struct ctl_table ipv6_route_table_template[] = {
126215
126216 struct ctl_table * __net_init ipv6_route_sysctl_init(struct net *net)
126217 {
126218 - struct ctl_table *table;
126219 + ctl_table_no_const *table;
126220
126221 table = kmemdup(ipv6_route_table_template,
126222 sizeof(ipv6_route_table_template),
126223 diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
126224 index dcccae8..33152e7 100644
126225 --- a/net/ipv6/sit.c
126226 +++ b/net/ipv6/sit.c
126227 @@ -74,7 +74,7 @@ static void ipip6_tunnel_setup(struct net_device *dev);
126228 static void ipip6_dev_free(struct net_device *dev);
126229 static bool check_6rd(struct ip_tunnel *tunnel, const struct in6_addr *v6dst,
126230 __be32 *v4dst);
126231 -static struct rtnl_link_ops sit_link_ops __read_mostly;
126232 +static struct rtnl_link_ops sit_link_ops;
126233
126234 static int sit_net_id __read_mostly;
126235 struct sit_net {
126236 @@ -1735,7 +1735,7 @@ static void ipip6_dellink(struct net_device *dev, struct list_head *head)
126237 unregister_netdevice_queue(dev, head);
126238 }
126239
126240 -static struct rtnl_link_ops sit_link_ops __read_mostly = {
126241 +static struct rtnl_link_ops sit_link_ops = {
126242 .kind = "sit",
126243 .maxtype = IFLA_IPTUN_MAX,
126244 .policy = ipip6_policy,
126245 diff --git a/net/ipv6/sysctl_net_ipv6.c b/net/ipv6/sysctl_net_ipv6.c
126246 index 45243bb..cdb398e 100644
126247 --- a/net/ipv6/sysctl_net_ipv6.c
126248 +++ b/net/ipv6/sysctl_net_ipv6.c
126249 @@ -111,7 +111,7 @@ static struct ctl_table ipv6_rotable[] = {
126250
126251 static int __net_init ipv6_sysctl_net_init(struct net *net)
126252 {
126253 - struct ctl_table *ipv6_table;
126254 + ctl_table_no_const *ipv6_table;
126255 struct ctl_table *ipv6_route_table;
126256 struct ctl_table *ipv6_icmp_table;
126257 int err;
126258 diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
126259 index b8d4056..9509e20 100644
126260 --- a/net/ipv6/tcp_ipv6.c
126261 +++ b/net/ipv6/tcp_ipv6.c
126262 @@ -102,6 +102,10 @@ static void inet6_sk_rx_dst_set(struct sock *sk, const struct sk_buff *skb)
126263 }
126264 }
126265
126266 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
126267 +extern int grsec_enable_blackhole;
126268 +#endif
126269 +
126270 static __u32 tcp_v6_init_sequence(const struct sk_buff *skb)
126271 {
126272 return secure_tcpv6_sequence_number(ipv6_hdr(skb)->daddr.s6_addr32,
126273 @@ -1269,6 +1273,9 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
126274 return 0;
126275
126276 reset:
126277 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
126278 + if (!grsec_enable_blackhole)
126279 +#endif
126280 tcp_v6_send_reset(sk, skb);
126281 discard:
126282 if (opt_skb)
126283 @@ -1379,12 +1386,20 @@ static int tcp_v6_rcv(struct sk_buff *skb)
126284 lookup:
126285 sk = __inet6_lookup_skb(&tcp_hashinfo, skb, th->source, th->dest,
126286 inet6_iif(skb));
126287 - if (!sk)
126288 + if (!sk) {
126289 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
126290 + ret = 1;
126291 +#endif
126292 goto no_tcp_socket;
126293 + }
126294
126295 process:
126296 - if (sk->sk_state == TCP_TIME_WAIT)
126297 + if (sk->sk_state == TCP_TIME_WAIT) {
126298 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
126299 + ret = 2;
126300 +#endif
126301 goto do_time_wait;
126302 + }
126303
126304 if (sk->sk_state == TCP_NEW_SYN_RECV) {
126305 struct request_sock *req = inet_reqsk(sk);
126306 @@ -1472,6 +1487,10 @@ csum_error:
126307 bad_packet:
126308 TCP_INC_STATS_BH(net, TCP_MIB_INERRS);
126309 } else {
126310 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
126311 + if (!grsec_enable_blackhole || (ret == 1 &&
126312 + (skb->dev->flags & IFF_LOOPBACK)))
126313 +#endif
126314 tcp_v6_send_reset(NULL, skb);
126315 }
126316
126317 diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
126318 index 9da3287..87089a6 100644
126319 --- a/net/ipv6/udp.c
126320 +++ b/net/ipv6/udp.c
126321 @@ -76,6 +76,10 @@ static u32 udp6_ehashfn(const struct net *net,
126322 udp_ipv6_hash_secret + net_hash_mix(net));
126323 }
126324
126325 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
126326 +extern int grsec_enable_blackhole;
126327 +#endif
126328 +
126329 int ipv6_rcv_saddr_equal(const struct sock *sk, const struct sock *sk2)
126330 {
126331 const struct in6_addr *sk2_rcv_saddr6 = inet6_rcv_saddr(sk2);
126332 @@ -448,7 +452,7 @@ try_again:
126333 if (unlikely(err)) {
126334 trace_kfree_skb(skb, udpv6_recvmsg);
126335 if (!peeked) {
126336 - atomic_inc(&sk->sk_drops);
126337 + atomic_inc_unchecked(&sk->sk_drops);
126338 if (is_udp4)
126339 UDP_INC_STATS_USER(sock_net(sk),
126340 UDP_MIB_INERRORS,
126341 @@ -712,7 +716,7 @@ csum_error:
126342 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_CSUMERRORS, is_udplite);
126343 drop:
126344 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
126345 - atomic_inc(&sk->sk_drops);
126346 + atomic_inc_unchecked(&sk->sk_drops);
126347 kfree_skb(skb);
126348 return -1;
126349 }
126350 @@ -753,7 +757,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
126351 if (likely(!skb1))
126352 skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC);
126353 if (!skb1) {
126354 - atomic_inc(&sk->sk_drops);
126355 + atomic_inc_unchecked(&sk->sk_drops);
126356 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS,
126357 IS_UDPLITE(sk));
126358 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
126359 @@ -937,6 +941,9 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
126360 goto csum_error;
126361
126362 UDP6_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE);
126363 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
126364 + if (!grsec_enable_blackhole || (skb->dev->flags & IFF_LOOPBACK))
126365 +#endif
126366 icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0);
126367
126368 kfree_skb(skb);
126369 diff --git a/net/ipv6/xfrm6_policy.c b/net/ipv6/xfrm6_policy.c
126370 index c074771..45ded9b 100644
126371 --- a/net/ipv6/xfrm6_policy.c
126372 +++ b/net/ipv6/xfrm6_policy.c
126373 @@ -216,11 +216,11 @@ _decode_session6(struct sk_buff *skb, struct flowi *fl, int reverse)
126374 }
126375 }
126376
126377 -static inline int xfrm6_garbage_collect(struct dst_ops *ops)
126378 +static int xfrm6_garbage_collect(struct dst_ops *ops)
126379 {
126380 struct net *net = container_of(ops, struct net, xfrm.xfrm6_dst_ops);
126381
126382 - xfrm6_policy_afinfo.garbage_collect(net);
126383 + xfrm_garbage_collect_deferred(net);
126384 return dst_entries_get_fast(ops) > ops->gc_thresh * 2;
126385 }
126386
126387 @@ -327,19 +327,19 @@ static struct ctl_table xfrm6_policy_table[] = {
126388
126389 static int __net_init xfrm6_net_sysctl_init(struct net *net)
126390 {
126391 - struct ctl_table *table;
126392 + ctl_table_no_const *table = NULL;
126393 struct ctl_table_header *hdr;
126394
126395 - table = xfrm6_policy_table;
126396 if (!net_eq(net, &init_net)) {
126397 - table = kmemdup(table, sizeof(xfrm6_policy_table), GFP_KERNEL);
126398 + table = kmemdup(xfrm6_policy_table, sizeof(xfrm6_policy_table), GFP_KERNEL);
126399 if (!table)
126400 goto err_alloc;
126401
126402 table[0].data = &net->xfrm.xfrm6_dst_ops.gc_thresh;
126403 - }
126404 + hdr = register_net_sysctl(net, "net/ipv6", table);
126405 + } else
126406 + hdr = register_net_sysctl(net, "net/ipv6", xfrm6_policy_table);
126407
126408 - hdr = register_net_sysctl(net, "net/ipv6", table);
126409 if (!hdr)
126410 goto err_reg;
126411
126412 @@ -347,8 +347,7 @@ static int __net_init xfrm6_net_sysctl_init(struct net *net)
126413 return 0;
126414
126415 err_reg:
126416 - if (!net_eq(net, &init_net))
126417 - kfree(table);
126418 + kfree(table);
126419 err_alloc:
126420 return -ENOMEM;
126421 }
126422 diff --git a/net/ipx/ipx_proc.c b/net/ipx/ipx_proc.c
126423 index c1d247e..9e5949d 100644
126424 --- a/net/ipx/ipx_proc.c
126425 +++ b/net/ipx/ipx_proc.c
126426 @@ -289,7 +289,7 @@ int __init ipx_proc_init(void)
126427 struct proc_dir_entry *p;
126428 int rc = -ENOMEM;
126429
126430 - ipx_proc_dir = proc_mkdir("ipx", init_net.proc_net);
126431 + ipx_proc_dir = proc_mkdir_restrict("ipx", init_net.proc_net);
126432
126433 if (!ipx_proc_dir)
126434 goto out;
126435 diff --git a/net/irda/ircomm/ircomm_tty.c b/net/irda/ircomm/ircomm_tty.c
126436 index a423770..a6e53a3 100644
126437 --- a/net/irda/ircomm/ircomm_tty.c
126438 +++ b/net/irda/ircomm/ircomm_tty.c
126439 @@ -310,10 +310,10 @@ static int ircomm_tty_block_til_ready(struct ircomm_tty_cb *self,
126440 add_wait_queue(&port->open_wait, &wait);
126441
126442 pr_debug("%s(%d):block_til_ready before block on %s open_count=%d\n",
126443 - __FILE__, __LINE__, tty->driver->name, port->count);
126444 + __FILE__, __LINE__, tty->driver->name, atomic_read(&port->count));
126445
126446 spin_lock_irqsave(&port->lock, flags);
126447 - port->count--;
126448 + atomic_dec(&port->count);
126449 port->blocked_open++;
126450 spin_unlock_irqrestore(&port->lock, flags);
126451
126452 @@ -347,7 +347,7 @@ static int ircomm_tty_block_til_ready(struct ircomm_tty_cb *self,
126453 }
126454
126455 pr_debug("%s(%d):block_til_ready blocking on %s open_count=%d\n",
126456 - __FILE__, __LINE__, tty->driver->name, port->count);
126457 + __FILE__, __LINE__, tty->driver->name, atomic_read(&port->count));
126458
126459 schedule();
126460 }
126461 @@ -357,12 +357,12 @@ static int ircomm_tty_block_til_ready(struct ircomm_tty_cb *self,
126462
126463 spin_lock_irqsave(&port->lock, flags);
126464 if (!tty_hung_up_p(filp))
126465 - port->count++;
126466 + atomic_inc(&port->count);
126467 port->blocked_open--;
126468 spin_unlock_irqrestore(&port->lock, flags);
126469
126470 pr_debug("%s(%d):block_til_ready after blocking on %s open_count=%d\n",
126471 - __FILE__, __LINE__, tty->driver->name, port->count);
126472 + __FILE__, __LINE__, tty->driver->name, atomic_read(&port->count));
126473
126474 if (!retval)
126475 port->flags |= ASYNC_NORMAL_ACTIVE;
126476 @@ -432,12 +432,12 @@ static int ircomm_tty_open(struct tty_struct *tty, struct file *filp)
126477
126478 /* ++ is not atomic, so this should be protected - Jean II */
126479 spin_lock_irqsave(&self->port.lock, flags);
126480 - self->port.count++;
126481 + atomic_inc(&self->port.count);
126482 spin_unlock_irqrestore(&self->port.lock, flags);
126483 tty_port_tty_set(&self->port, tty);
126484
126485 pr_debug("%s(), %s%d, count = %d\n", __func__ , tty->driver->name,
126486 - self->line, self->port.count);
126487 + self->line, atomic_read(&self->port.count));
126488
126489 /* Not really used by us, but lets do it anyway */
126490 self->port.low_latency = (self->port.flags & ASYNC_LOW_LATENCY) ? 1 : 0;
126491 @@ -932,7 +932,7 @@ static void ircomm_tty_hangup(struct tty_struct *tty)
126492 tty_kref_put(port->tty);
126493 }
126494 port->tty = NULL;
126495 - port->count = 0;
126496 + atomic_set(&port->count, 0);
126497 spin_unlock_irqrestore(&port->lock, flags);
126498
126499 wake_up_interruptible(&port->open_wait);
126500 @@ -1279,7 +1279,7 @@ static void ircomm_tty_line_info(struct ircomm_tty_cb *self, struct seq_file *m)
126501 seq_putc(m, '\n');
126502
126503 seq_printf(m, "Role: %s\n", self->client ? "client" : "server");
126504 - seq_printf(m, "Open count: %d\n", self->port.count);
126505 + seq_printf(m, "Open count: %d\n", atomic_read(&self->port.count));
126506 seq_printf(m, "Max data size: %d\n", self->max_data_size);
126507 seq_printf(m, "Max header size: %d\n", self->max_header_size);
126508
126509 diff --git a/net/irda/irproc.c b/net/irda/irproc.c
126510 index b9ac598..f88cc56 100644
126511 --- a/net/irda/irproc.c
126512 +++ b/net/irda/irproc.c
126513 @@ -66,7 +66,7 @@ void __init irda_proc_register(void)
126514 {
126515 int i;
126516
126517 - proc_irda = proc_mkdir("irda", init_net.proc_net);
126518 + proc_irda = proc_mkdir_restrict("irda", init_net.proc_net);
126519 if (proc_irda == NULL)
126520 return;
126521
126522 diff --git a/net/iucv/af_iucv.c b/net/iucv/af_iucv.c
126523 index 20ab7b2..1b7d8bb 100644
126524 --- a/net/iucv/af_iucv.c
126525 +++ b/net/iucv/af_iucv.c
126526 @@ -685,10 +685,10 @@ static void __iucv_auto_name(struct iucv_sock *iucv)
126527 {
126528 char name[12];
126529
126530 - sprintf(name, "%08x", atomic_inc_return(&iucv_sk_list.autobind_name));
126531 + sprintf(name, "%08x", atomic_inc_return_unchecked(&iucv_sk_list.autobind_name));
126532 while (__iucv_get_sock_by_name(name)) {
126533 sprintf(name, "%08x",
126534 - atomic_inc_return(&iucv_sk_list.autobind_name));
126535 + atomic_inc_return_unchecked(&iucv_sk_list.autobind_name));
126536 }
126537 memcpy(iucv->src_name, name, 8);
126538 }
126539 diff --git a/net/iucv/iucv.c b/net/iucv/iucv.c
126540 index 7eaa000..2fa7f35 100644
126541 --- a/net/iucv/iucv.c
126542 +++ b/net/iucv/iucv.c
126543 @@ -702,7 +702,7 @@ static int iucv_cpu_notify(struct notifier_block *self,
126544 return NOTIFY_OK;
126545 }
126546
126547 -static struct notifier_block __refdata iucv_cpu_notifier = {
126548 +static struct notifier_block iucv_cpu_notifier = {
126549 .notifier_call = iucv_cpu_notify,
126550 };
126551
126552 diff --git a/net/key/af_key.c b/net/key/af_key.c
126553 index f9c9ecb..060751e 100644
126554 --- a/net/key/af_key.c
126555 +++ b/net/key/af_key.c
126556 @@ -3050,10 +3050,10 @@ static int pfkey_send_policy_notify(struct xfrm_policy *xp, int dir, const struc
126557 static u32 get_acqseq(void)
126558 {
126559 u32 res;
126560 - static atomic_t acqseq;
126561 + static atomic_unchecked_t acqseq;
126562
126563 do {
126564 - res = atomic_inc_return(&acqseq);
126565 + res = atomic_inc_return_unchecked(&acqseq);
126566 } while (!res);
126567 return res;
126568 }
126569 diff --git a/net/l2tp/l2tp_eth.c b/net/l2tp/l2tp_eth.c
126570 index e253c26..609e848 100644
126571 --- a/net/l2tp/l2tp_eth.c
126572 +++ b/net/l2tp/l2tp_eth.c
126573 @@ -42,12 +42,12 @@ struct l2tp_eth {
126574 struct sock *tunnel_sock;
126575 struct l2tp_session *session;
126576 struct list_head list;
126577 - atomic_long_t tx_bytes;
126578 - atomic_long_t tx_packets;
126579 - atomic_long_t tx_dropped;
126580 - atomic_long_t rx_bytes;
126581 - atomic_long_t rx_packets;
126582 - atomic_long_t rx_errors;
126583 + atomic_long_unchecked_t tx_bytes;
126584 + atomic_long_unchecked_t tx_packets;
126585 + atomic_long_unchecked_t tx_dropped;
126586 + atomic_long_unchecked_t rx_bytes;
126587 + atomic_long_unchecked_t rx_packets;
126588 + atomic_long_unchecked_t rx_errors;
126589 };
126590
126591 /* via l2tp_session_priv() */
126592 @@ -98,10 +98,10 @@ static int l2tp_eth_dev_xmit(struct sk_buff *skb, struct net_device *dev)
126593 int ret = l2tp_xmit_skb(session, skb, session->hdr_len);
126594
126595 if (likely(ret == NET_XMIT_SUCCESS)) {
126596 - atomic_long_add(len, &priv->tx_bytes);
126597 - atomic_long_inc(&priv->tx_packets);
126598 + atomic_long_add_unchecked(len, &priv->tx_bytes);
126599 + atomic_long_inc_unchecked(&priv->tx_packets);
126600 } else {
126601 - atomic_long_inc(&priv->tx_dropped);
126602 + atomic_long_inc_unchecked(&priv->tx_dropped);
126603 }
126604 return NETDEV_TX_OK;
126605 }
126606 @@ -111,12 +111,12 @@ static struct rtnl_link_stats64 *l2tp_eth_get_stats64(struct net_device *dev,
126607 {
126608 struct l2tp_eth *priv = netdev_priv(dev);
126609
126610 - stats->tx_bytes = atomic_long_read(&priv->tx_bytes);
126611 - stats->tx_packets = atomic_long_read(&priv->tx_packets);
126612 - stats->tx_dropped = atomic_long_read(&priv->tx_dropped);
126613 - stats->rx_bytes = atomic_long_read(&priv->rx_bytes);
126614 - stats->rx_packets = atomic_long_read(&priv->rx_packets);
126615 - stats->rx_errors = atomic_long_read(&priv->rx_errors);
126616 + stats->tx_bytes = atomic_long_read_unchecked(&priv->tx_bytes);
126617 + stats->tx_packets = atomic_long_read_unchecked(&priv->tx_packets);
126618 + stats->tx_dropped = atomic_long_read_unchecked(&priv->tx_dropped);
126619 + stats->rx_bytes = atomic_long_read_unchecked(&priv->rx_bytes);
126620 + stats->rx_packets = atomic_long_read_unchecked(&priv->rx_packets);
126621 + stats->rx_errors = atomic_long_read_unchecked(&priv->rx_errors);
126622 return stats;
126623 }
126624
126625 @@ -167,15 +167,15 @@ static void l2tp_eth_dev_recv(struct l2tp_session *session, struct sk_buff *skb,
126626 nf_reset(skb);
126627
126628 if (dev_forward_skb(dev, skb) == NET_RX_SUCCESS) {
126629 - atomic_long_inc(&priv->rx_packets);
126630 - atomic_long_add(data_len, &priv->rx_bytes);
126631 + atomic_long_inc_unchecked(&priv->rx_packets);
126632 + atomic_long_add_unchecked(data_len, &priv->rx_bytes);
126633 } else {
126634 - atomic_long_inc(&priv->rx_errors);
126635 + atomic_long_inc_unchecked(&priv->rx_errors);
126636 }
126637 return;
126638
126639 error:
126640 - atomic_long_inc(&priv->rx_errors);
126641 + atomic_long_inc_unchecked(&priv->rx_errors);
126642 kfree_skb(skb);
126643 }
126644
126645 diff --git a/net/l2tp/l2tp_ip.c b/net/l2tp/l2tp_ip.c
126646 index ec22078..0822b6e 100644
126647 --- a/net/l2tp/l2tp_ip.c
126648 +++ b/net/l2tp/l2tp_ip.c
126649 @@ -608,7 +608,7 @@ static struct inet_protosw l2tp_ip_protosw = {
126650 .ops = &l2tp_ip_ops,
126651 };
126652
126653 -static struct net_protocol l2tp_ip_protocol __read_mostly = {
126654 +static const struct net_protocol l2tp_ip_protocol = {
126655 .handler = l2tp_ip_recv,
126656 .netns_ok = 1,
126657 };
126658 diff --git a/net/l2tp/l2tp_ip6.c b/net/l2tp/l2tp_ip6.c
126659 index a2c8747..f1fc10b 100644
126660 --- a/net/l2tp/l2tp_ip6.c
126661 +++ b/net/l2tp/l2tp_ip6.c
126662 @@ -759,7 +759,7 @@ static struct inet_protosw l2tp_ip6_protosw = {
126663 .ops = &l2tp_ip6_ops,
126664 };
126665
126666 -static struct inet6_protocol l2tp_ip6_protocol __read_mostly = {
126667 +static const struct inet6_protocol l2tp_ip6_protocol = {
126668 .handler = l2tp_ip6_recv,
126669 };
126670
126671 diff --git a/net/llc/llc_proc.c b/net/llc/llc_proc.c
126672 index 1a3c7e0..80f8b0c 100644
126673 --- a/net/llc/llc_proc.c
126674 +++ b/net/llc/llc_proc.c
126675 @@ -247,7 +247,7 @@ int __init llc_proc_init(void)
126676 int rc = -ENOMEM;
126677 struct proc_dir_entry *p;
126678
126679 - llc_proc_dir = proc_mkdir("llc", init_net.proc_net);
126680 + llc_proc_dir = proc_mkdir_restrict("llc", init_net.proc_net);
126681 if (!llc_proc_dir)
126682 goto out;
126683
126684 diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
126685 index c12f348..adb3b48 100644
126686 --- a/net/mac80211/cfg.c
126687 +++ b/net/mac80211/cfg.c
126688 @@ -378,7 +378,7 @@ static int ieee80211_get_key(struct wiphy *wiphy, struct net_device *dev,
126689 drv_get_key_seq(sdata->local, key, &kseq);
126690 memcpy(seq, kseq.ccmp.pn, 6);
126691 } else {
126692 - pn64 = atomic64_read(&key->conf.tx_pn);
126693 + pn64 = atomic64_read_unchecked(&key->conf.tx_pn);
126694 seq[0] = pn64;
126695 seq[1] = pn64 >> 8;
126696 seq[2] = pn64 >> 16;
126697 @@ -540,7 +540,7 @@ static int ieee80211_set_monitor_channel(struct wiphy *wiphy,
126698 ret = ieee80211_vif_use_channel(sdata, chandef,
126699 IEEE80211_CHANCTX_EXCLUSIVE);
126700 }
126701 - } else if (local->open_count == local->monitors) {
126702 + } else if (local_read(&local->open_count) == local->monitors) {
126703 local->_oper_chandef = *chandef;
126704 ieee80211_hw_config(local, 0);
126705 }
126706 @@ -3513,7 +3513,7 @@ static void ieee80211_mgmt_frame_register(struct wiphy *wiphy,
126707 sdata->vif.probe_req_reg--;
126708 }
126709
126710 - if (!local->open_count)
126711 + if (!local_read(&local->open_count))
126712 break;
126713
126714 if (sdata->vif.probe_req_reg == 1)
126715 @@ -3669,8 +3669,8 @@ static int ieee80211_cfg_get_channel(struct wiphy *wiphy,
126716 if (chanctx_conf) {
126717 *chandef = sdata->vif.bss_conf.chandef;
126718 ret = 0;
126719 - } else if (local->open_count > 0 &&
126720 - local->open_count == local->monitors &&
126721 + } else if (local_read(&local->open_count) > 0 &&
126722 + local_read(&local->open_count) == local->monitors &&
126723 sdata->vif.type == NL80211_IFTYPE_MONITOR) {
126724 if (local->use_chanctx)
126725 *chandef = local->monitor_chandef;
126726 diff --git a/net/mac80211/debugfs_key.c b/net/mac80211/debugfs_key.c
126727 index 7961e7d..eea148f 100644
126728 --- a/net/mac80211/debugfs_key.c
126729 +++ b/net/mac80211/debugfs_key.c
126730 @@ -111,7 +111,7 @@ static ssize_t key_tx_spec_write(struct file *file, const char __user *userbuf,
126731 /* PN is a 48-bit counter */
126732 if (pn >= (1ULL << 48))
126733 return -ERANGE;
126734 - atomic64_set(&key->conf.tx_pn, pn);
126735 + atomic64_set_unchecked(&key->conf.tx_pn, pn);
126736 return count;
126737 default:
126738 return 0;
126739 @@ -144,7 +144,7 @@ static ssize_t key_tx_spec_read(struct file *file, char __user *userbuf,
126740 case WLAN_CIPHER_SUITE_BIP_GMAC_256:
126741 case WLAN_CIPHER_SUITE_GCMP:
126742 case WLAN_CIPHER_SUITE_GCMP_256:
126743 - pn = atomic64_read(&key->conf.tx_pn);
126744 + pn = atomic64_read_unchecked(&key->conf.tx_pn);
126745 len = scnprintf(buf, sizeof(buf), "%02x%02x%02x%02x%02x%02x\n",
126746 (u8)(pn >> 40), (u8)(pn >> 32), (u8)(pn >> 24),
126747 (u8)(pn >> 16), (u8)(pn >> 8), (u8)pn);
126748 diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
126749 index 5322b4c..ed9ecbe 100644
126750 --- a/net/mac80211/ieee80211_i.h
126751 +++ b/net/mac80211/ieee80211_i.h
126752 @@ -30,6 +30,7 @@
126753 #include <net/ieee80211_radiotap.h>
126754 #include <net/cfg80211.h>
126755 #include <net/mac80211.h>
126756 +#include <asm/local.h>
126757 #include "key.h"
126758 #include "sta_info.h"
126759 #include "debug.h"
126760 @@ -1111,7 +1112,7 @@ struct ieee80211_local {
126761 /* also used to protect ampdu_ac_queue and amdpu_ac_stop_refcnt */
126762 spinlock_t queue_stop_reason_lock;
126763
126764 - int open_count;
126765 + local_t open_count;
126766 int monitors, cooked_mntrs;
126767 /* number of interfaces with corresponding FIF_ flags */
126768 int fif_fcsfail, fif_plcpfail, fif_control, fif_other_bss, fif_pspoll,
126769 diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
126770 index c9e325d..afa762a 100644
126771 --- a/net/mac80211/iface.c
126772 +++ b/net/mac80211/iface.c
126773 @@ -551,7 +551,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
126774 break;
126775 }
126776
126777 - if (local->open_count == 0) {
126778 + if (local_read(&local->open_count) == 0) {
126779 res = drv_start(local);
126780 if (res)
126781 goto err_del_bss;
126782 @@ -598,7 +598,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
126783 res = drv_add_interface(local, sdata);
126784 if (res)
126785 goto err_stop;
126786 - } else if (local->monitors == 0 && local->open_count == 0) {
126787 + } else if (local->monitors == 0 && local_read(&local->open_count) == 0) {
126788 res = ieee80211_add_virtual_monitor(local);
126789 if (res)
126790 goto err_stop;
126791 @@ -707,7 +707,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
126792 atomic_inc(&local->iff_allmultis);
126793
126794 if (coming_up)
126795 - local->open_count++;
126796 + local_inc(&local->open_count);
126797
126798 if (hw_reconf_flags)
126799 ieee80211_hw_config(local, hw_reconf_flags);
126800 @@ -745,7 +745,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
126801 err_del_interface:
126802 drv_remove_interface(local, sdata);
126803 err_stop:
126804 - if (!local->open_count)
126805 + if (!local_read(&local->open_count))
126806 drv_stop(local);
126807 err_del_bss:
126808 sdata->bss = NULL;
126809 @@ -912,7 +912,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
126810 }
126811
126812 if (going_down)
126813 - local->open_count--;
126814 + local_dec(&local->open_count);
126815
126816 switch (sdata->vif.type) {
126817 case NL80211_IFTYPE_AP_VLAN:
126818 @@ -981,7 +981,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
126819 atomic_set(&sdata->txqs_len[txqi->txq.ac], 0);
126820 }
126821
126822 - if (local->open_count == 0)
126823 + if (local_read(&local->open_count) == 0)
126824 ieee80211_clear_tx_pending(local);
126825
126826 /*
126827 @@ -1024,7 +1024,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
126828 if (cancel_scan)
126829 flush_delayed_work(&local->scan_work);
126830
126831 - if (local->open_count == 0) {
126832 + if (local_read(&local->open_count) == 0) {
126833 ieee80211_stop_device(local);
126834
126835 /* no reconfiguring after stop! */
126836 @@ -1035,7 +1035,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
126837 ieee80211_configure_filter(local);
126838 ieee80211_hw_config(local, hw_reconf_flags);
126839
126840 - if (local->monitors == local->open_count)
126841 + if (local->monitors == local_read(&local->open_count))
126842 ieee80211_add_virtual_monitor(local);
126843 }
126844
126845 @@ -1895,8 +1895,8 @@ void ieee80211_remove_interfaces(struct ieee80211_local *local)
126846 */
126847 cfg80211_shutdown_all_interfaces(local->hw.wiphy);
126848
126849 - WARN(local->open_count, "%s: open count remains %d\n",
126850 - wiphy_name(local->hw.wiphy), local->open_count);
126851 + WARN(local_read(&local->open_count), "%s: open count remains %ld\n",
126852 + wiphy_name(local->hw.wiphy), local_read(&local->open_count));
126853
126854 mutex_lock(&local->iflist_mtx);
126855 list_for_each_entry_safe(sdata, tmp, &local->interfaces, list) {
126856 diff --git a/net/mac80211/key.c b/net/mac80211/key.c
126857 index 44388d6..a052880 100644
126858 --- a/net/mac80211/key.c
126859 +++ b/net/mac80211/key.c
126860 @@ -914,7 +914,7 @@ void ieee80211_get_key_tx_seq(struct ieee80211_key_conf *keyconf,
126861 case WLAN_CIPHER_SUITE_GCMP_256:
126862 BUILD_BUG_ON(offsetof(typeof(*seq), ccmp) !=
126863 offsetof(typeof(*seq), gcmp));
126864 - pn64 = atomic64_read(&key->conf.tx_pn);
126865 + pn64 = atomic64_read_unchecked(&key->conf.tx_pn);
126866 seq->ccmp.pn[5] = pn64;
126867 seq->ccmp.pn[4] = pn64 >> 8;
126868 seq->ccmp.pn[3] = pn64 >> 16;
126869 @@ -1014,7 +1014,7 @@ void ieee80211_set_key_tx_seq(struct ieee80211_key_conf *keyconf,
126870 ((u64)seq->ccmp.pn[2] << 24) |
126871 ((u64)seq->ccmp.pn[1] << 32) |
126872 ((u64)seq->ccmp.pn[0] << 40);
126873 - atomic64_set(&key->conf.tx_pn, pn64);
126874 + atomic64_set_unchecked(&key->conf.tx_pn, pn64);
126875 break;
126876 default:
126877 WARN_ON(1);
126878 diff --git a/net/mac80211/main.c b/net/mac80211/main.c
126879 index 175ffcf..2212fd2 100644
126880 --- a/net/mac80211/main.c
126881 +++ b/net/mac80211/main.c
126882 @@ -170,7 +170,7 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed)
126883 changed &= ~(IEEE80211_CONF_CHANGE_CHANNEL |
126884 IEEE80211_CONF_CHANGE_POWER);
126885
126886 - if (changed && local->open_count) {
126887 + if (changed && local_read(&local->open_count)) {
126888 ret = drv_config(local, changed);
126889 /*
126890 * Goal:
126891 diff --git a/net/mac80211/pm.c b/net/mac80211/pm.c
126892 index 00a43a7..ab6deef 100644
126893 --- a/net/mac80211/pm.c
126894 +++ b/net/mac80211/pm.c
126895 @@ -19,7 +19,7 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
126896 struct ieee80211_sub_if_data *sdata;
126897 struct sta_info *sta;
126898
126899 - if (!local->open_count)
126900 + if (!local_read(&local->open_count))
126901 goto suspend;
126902
126903 ieee80211_scan_cancel(local);
126904 @@ -178,7 +178,7 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
126905 WARN_ON(!list_empty(&local->chanctx_list));
126906
126907 /* stop hardware - this must stop RX */
126908 - if (local->open_count)
126909 + if (local_read(&local->open_count))
126910 ieee80211_stop_device(local);
126911
126912 suspend:
126913 diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c
126914 index a4e2f4e..02bfac1 100644
126915 --- a/net/mac80211/rate.c
126916 +++ b/net/mac80211/rate.c
126917 @@ -901,7 +901,7 @@ int ieee80211_init_rate_ctrl_alg(struct ieee80211_local *local,
126918
126919 ASSERT_RTNL();
126920
126921 - if (local->open_count)
126922 + if (local_read(&local->open_count))
126923 return -EBUSY;
126924
126925 if (ieee80211_hw_check(&local->hw, HAS_RATE_CONTROL)) {
126926 diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
126927 index f91d187..373ad96 100644
126928 --- a/net/mac80211/sta_info.c
126929 +++ b/net/mac80211/sta_info.c
126930 @@ -348,7 +348,7 @@ struct sta_info *sta_info_alloc(struct ieee80211_sub_if_data *sdata,
126931 int size = sizeof(struct txq_info) +
126932 ALIGN(hw->txq_data_size, sizeof(void *));
126933
126934 - txq_data = kcalloc(ARRAY_SIZE(sta->sta.txq), size, gfp);
126935 + txq_data = kcalloc(size, ARRAY_SIZE(sta->sta.txq), gfp);
126936 if (!txq_data)
126937 goto free;
126938
126939 diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
126940 index bdc224d..11c229f 100644
126941 --- a/net/mac80211/tx.c
126942 +++ b/net/mac80211/tx.c
126943 @@ -2825,7 +2825,7 @@ static bool ieee80211_xmit_fast(struct ieee80211_sub_if_data *sdata,
126944 case WLAN_CIPHER_SUITE_CCMP_256:
126945 case WLAN_CIPHER_SUITE_GCMP:
126946 case WLAN_CIPHER_SUITE_GCMP_256:
126947 - pn = atomic64_inc_return(&fast_tx->key->conf.tx_pn);
126948 + pn = atomic64_inc_return_unchecked(&fast_tx->key->conf.tx_pn);
126949 crypto_hdr[0] = pn;
126950 crypto_hdr[1] = pn >> 8;
126951 crypto_hdr[4] = pn >> 16;
126952 diff --git a/net/mac80211/util.c b/net/mac80211/util.c
126953 index 33344f5..2e15b8f 100644
126954 --- a/net/mac80211/util.c
126955 +++ b/net/mac80211/util.c
126956 @@ -1758,7 +1758,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
126957 bool suspended = local->suspended;
126958
126959 /* nothing to do if HW shouldn't run */
126960 - if (!local->open_count)
126961 + if (!local_read(&local->open_count))
126962 goto wake_up;
126963
126964 #ifdef CONFIG_PM
126965 @@ -2051,7 +2051,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
126966 local->in_reconfig = false;
126967 barrier();
126968
126969 - if (local->monitors == local->open_count && local->monitors > 0)
126970 + if (local->monitors == local_read(&local->open_count) && local->monitors > 0)
126971 ieee80211_add_virtual_monitor(local);
126972
126973 /*
126974 @@ -2085,7 +2085,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
126975 * If this is for hw restart things are still running.
126976 * We may want to change that later, however.
126977 */
126978 - if (local->open_count && (!suspended || reconfig_due_to_wowlan))
126979 + if (local_read(&local->open_count) && (!suspended || reconfig_due_to_wowlan))
126980 drv_reconfig_complete(local, IEEE80211_RECONFIG_TYPE_RESTART);
126981
126982 if (!suspended)
126983 @@ -2099,7 +2099,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
126984
126985 ieee80211_flush_completed_scan(local, false);
126986
126987 - if (local->open_count && !reconfig_due_to_wowlan)
126988 + if (local_read(&local->open_count) && !reconfig_due_to_wowlan)
126989 drv_reconfig_complete(local, IEEE80211_RECONFIG_TYPE_SUSPEND);
126990
126991 list_for_each_entry(sdata, &local->interfaces, list) {
126992 diff --git a/net/mac80211/wpa.c b/net/mac80211/wpa.c
126993 index d824c38..f3ded28 100644
126994 --- a/net/mac80211/wpa.c
126995 +++ b/net/mac80211/wpa.c
126996 @@ -447,7 +447,7 @@ static int ccmp_encrypt_skb(struct ieee80211_tx_data *tx, struct sk_buff *skb,
126997 hdr = (struct ieee80211_hdr *) pos;
126998 pos += hdrlen;
126999
127000 - pn64 = atomic64_inc_return(&key->conf.tx_pn);
127001 + pn64 = atomic64_inc_return_unchecked(&key->conf.tx_pn);
127002
127003 pn[5] = pn64;
127004 pn[4] = pn64 >> 8;
127005 @@ -676,7 +676,7 @@ static int gcmp_encrypt_skb(struct ieee80211_tx_data *tx, struct sk_buff *skb)
127006 hdr = (struct ieee80211_hdr *)pos;
127007 pos += hdrlen;
127008
127009 - pn64 = atomic64_inc_return(&key->conf.tx_pn);
127010 + pn64 = atomic64_inc_return_unchecked(&key->conf.tx_pn);
127011
127012 pn[5] = pn64;
127013 pn[4] = pn64 >> 8;
127014 @@ -950,7 +950,7 @@ ieee80211_crypto_aes_cmac_encrypt(struct ieee80211_tx_data *tx)
127015 mmie->key_id = cpu_to_le16(key->conf.keyidx);
127016
127017 /* PN = PN + 1 */
127018 - pn64 = atomic64_inc_return(&key->conf.tx_pn);
127019 + pn64 = atomic64_inc_return_unchecked(&key->conf.tx_pn);
127020
127021 bip_ipn_set64(mmie->sequence_number, pn64);
127022
127023 @@ -994,7 +994,7 @@ ieee80211_crypto_aes_cmac_256_encrypt(struct ieee80211_tx_data *tx)
127024 mmie->key_id = cpu_to_le16(key->conf.keyidx);
127025
127026 /* PN = PN + 1 */
127027 - pn64 = atomic64_inc_return(&key->conf.tx_pn);
127028 + pn64 = atomic64_inc_return_unchecked(&key->conf.tx_pn);
127029
127030 bip_ipn_set64(mmie->sequence_number, pn64);
127031
127032 @@ -1139,7 +1139,7 @@ ieee80211_crypto_aes_gmac_encrypt(struct ieee80211_tx_data *tx)
127033 mmie->key_id = cpu_to_le16(key->conf.keyidx);
127034
127035 /* PN = PN + 1 */
127036 - pn64 = atomic64_inc_return(&key->conf.tx_pn);
127037 + pn64 = atomic64_inc_return_unchecked(&key->conf.tx_pn);
127038
127039 bip_ipn_set64(mmie->sequence_number, pn64);
127040
127041 diff --git a/net/mac802154/iface.c b/net/mac802154/iface.c
127042 index 7079cd3..c299f08 100644
127043 --- a/net/mac802154/iface.c
127044 +++ b/net/mac802154/iface.c
127045 @@ -386,7 +386,7 @@ static int ieee802154_header_create(struct sk_buff *skb,
127046 hdr.fc.type = cb->type;
127047 hdr.fc.security_enabled = cb->secen;
127048 hdr.fc.ack_request = cb->ackreq;
127049 - hdr.seq = atomic_inc_return(&dev->ieee802154_ptr->dsn) & 0xFF;
127050 + hdr.seq = atomic_inc_return_unchecked(&dev->ieee802154_ptr->dsn) & 0xFF;
127051
127052 if (mac802154_set_header_security(sdata, &hdr, cb) < 0)
127053 return -EINVAL;
127054 @@ -451,7 +451,7 @@ static int mac802154_header_create(struct sk_buff *skb,
127055 memset(&hdr.fc, 0, sizeof(hdr.fc));
127056 hdr.fc.type = IEEE802154_FC_TYPE_DATA;
127057 hdr.fc.ack_request = wpan_dev->ackreq;
127058 - hdr.seq = atomic_inc_return(&dev->ieee802154_ptr->dsn) & 0xFF;
127059 + hdr.seq = atomic_inc_return_unchecked(&dev->ieee802154_ptr->dsn) & 0xFF;
127060
127061 /* TODO currently a workaround to give zero cb block to set
127062 * security parameters defaults according MIB.
127063 @@ -576,7 +576,7 @@ ieee802154_setup_sdata(struct ieee802154_sub_if_data *sdata,
127064 get_random_bytes(&tmp, sizeof(tmp));
127065 atomic_set(&wpan_dev->bsn, tmp);
127066 get_random_bytes(&tmp, sizeof(tmp));
127067 - atomic_set(&wpan_dev->dsn, tmp);
127068 + atomic_set_unchecked(&wpan_dev->dsn, tmp);
127069
127070 /* defaults per 802.15.4-2011 */
127071 wpan_dev->min_be = 3;
127072 diff --git a/net/mpls/af_mpls.c b/net/mpls/af_mpls.c
127073 index c32fc41..f8dcf21 100644
127074 --- a/net/mpls/af_mpls.c
127075 +++ b/net/mpls/af_mpls.c
127076 @@ -828,7 +828,7 @@ static int mpls_dev_sysctl_register(struct net_device *dev,
127077 struct mpls_dev *mdev)
127078 {
127079 char path[sizeof("net/mpls/conf/") + IFNAMSIZ];
127080 - struct ctl_table *table;
127081 + ctl_table_no_const *table;
127082 int i;
127083
127084 table = kmemdup(&mpls_dev_table, sizeof(mpls_dev_table), GFP_KERNEL);
127085 @@ -1489,7 +1489,7 @@ static int mpls_platform_labels(struct ctl_table *table, int write,
127086 struct net *net = table->data;
127087 int platform_labels = net->mpls.platform_labels;
127088 int ret;
127089 - struct ctl_table tmp = {
127090 + ctl_table_no_const tmp = {
127091 .procname = table->procname,
127092 .data = &platform_labels,
127093 .maxlen = sizeof(int),
127094 @@ -1519,7 +1519,7 @@ static const struct ctl_table mpls_table[] = {
127095
127096 static int mpls_net_init(struct net *net)
127097 {
127098 - struct ctl_table *table;
127099 + ctl_table_no_const *table;
127100
127101 net->mpls.platform_labels = 0;
127102 net->mpls.platform_label = NULL;
127103 diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
127104 index 4692782..24f2db1 100644
127105 --- a/net/netfilter/Kconfig
127106 +++ b/net/netfilter/Kconfig
127107 @@ -1128,6 +1128,16 @@ config NETFILTER_XT_MATCH_ESP
127108
127109 To compile it as a module, choose M here. If unsure, say N.
127110
127111 +config NETFILTER_XT_MATCH_GRADM
127112 + tristate '"gradm" match support'
127113 + depends on NETFILTER_XTABLES && NETFILTER_ADVANCED
127114 + depends on GRKERNSEC && !GRKERNSEC_NO_RBAC
127115 + ---help---
127116 + The gradm match allows to match on grsecurity RBAC being enabled.
127117 + It is useful when iptables rules are applied early on bootup to
127118 + prevent connections to the machine (except from a trusted host)
127119 + while the RBAC system is disabled.
127120 +
127121 config NETFILTER_XT_MATCH_HASHLIMIT
127122 tristate '"hashlimit" match support'
127123 depends on IP6_NF_IPTABLES || IP6_NF_IPTABLES=n
127124 diff --git a/net/netfilter/Makefile b/net/netfilter/Makefile
127125 index 7638c36..faf3ac2 100644
127126 --- a/net/netfilter/Makefile
127127 +++ b/net/netfilter/Makefile
127128 @@ -138,6 +138,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_DEVGROUP) += xt_devgroup.o
127129 obj-$(CONFIG_NETFILTER_XT_MATCH_DSCP) += xt_dscp.o
127130 obj-$(CONFIG_NETFILTER_XT_MATCH_ECN) += xt_ecn.o
127131 obj-$(CONFIG_NETFILTER_XT_MATCH_ESP) += xt_esp.o
127132 +obj-$(CONFIG_NETFILTER_XT_MATCH_GRADM) += xt_gradm.o
127133 obj-$(CONFIG_NETFILTER_XT_MATCH_HASHLIMIT) += xt_hashlimit.o
127134 obj-$(CONFIG_NETFILTER_XT_MATCH_HELPER) += xt_helper.o
127135 obj-$(CONFIG_NETFILTER_XT_MATCH_HL) += xt_hl.o
127136 diff --git a/net/netfilter/ipset/ip_set_core.c b/net/netfilter/ipset/ip_set_core.c
127137 index 54f3d7c..fba57f5 100644
127138 --- a/net/netfilter/ipset/ip_set_core.c
127139 +++ b/net/netfilter/ipset/ip_set_core.c
127140 @@ -1422,7 +1422,7 @@ ip_set_dump(struct sock *ctnl, struct sk_buff *skb,
127141 return -IPSET_ERR_PROTOCOL;
127142
127143 {
127144 - struct netlink_dump_control c = {
127145 + static struct netlink_dump_control c = {
127146 .dump = ip_set_dump_start,
127147 .done = ip_set_dump_done,
127148 };
127149 @@ -1997,7 +1997,7 @@ done:
127150 return ret;
127151 }
127152
127153 -static struct nf_sockopt_ops so_set __read_mostly = {
127154 +static struct nf_sockopt_ops so_set = {
127155 .pf = PF_INET,
127156 .get_optmin = SO_IP_SET,
127157 .get_optmax = SO_IP_SET + 1,
127158 diff --git a/net/netfilter/ipvs/ip_vs_conn.c b/net/netfilter/ipvs/ip_vs_conn.c
127159 index 85ca189..871f064 100644
127160 --- a/net/netfilter/ipvs/ip_vs_conn.c
127161 +++ b/net/netfilter/ipvs/ip_vs_conn.c
127162 @@ -574,7 +574,7 @@ ip_vs_bind_dest(struct ip_vs_conn *cp, struct ip_vs_dest *dest)
127163 /* Increase the refcnt counter of the dest */
127164 ip_vs_dest_hold(dest);
127165
127166 - conn_flags = atomic_read(&dest->conn_flags);
127167 + conn_flags = atomic_read_unchecked(&dest->conn_flags);
127168 if (cp->protocol != IPPROTO_UDP)
127169 conn_flags &= ~IP_VS_CONN_F_ONE_PACKET;
127170 flags = cp->flags;
127171 @@ -923,7 +923,7 @@ ip_vs_conn_new(const struct ip_vs_conn_param *p, int dest_af,
127172
127173 cp->control = NULL;
127174 atomic_set(&cp->n_control, 0);
127175 - atomic_set(&cp->in_pkts, 0);
127176 + atomic_set_unchecked(&cp->in_pkts, 0);
127177
127178 cp->packet_xmit = NULL;
127179 cp->app = NULL;
127180 @@ -1230,7 +1230,7 @@ static inline int todrop_entry(struct ip_vs_conn *cp)
127181
127182 /* Don't drop the entry if its number of incoming packets is not
127183 located in [0, 8] */
127184 - i = atomic_read(&cp->in_pkts);
127185 + i = atomic_read_unchecked(&cp->in_pkts);
127186 if (i > 8 || i < 0) return 0;
127187
127188 if (!todrop_rate[i]) return 0;
127189 diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
127190 index f57b4dc..8cba121 100644
127191 --- a/net/netfilter/ipvs/ip_vs_core.c
127192 +++ b/net/netfilter/ipvs/ip_vs_core.c
127193 @@ -611,7 +611,7 @@ int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb,
127194 ret = cp->packet_xmit(skb, cp, pd->pp, iph);
127195 /* do not touch skb anymore */
127196
127197 - atomic_inc(&cp->in_pkts);
127198 + atomic_inc_unchecked(&cp->in_pkts);
127199 ip_vs_conn_put(cp);
127200 return ret;
127201 }
127202 @@ -1813,7 +1813,7 @@ ip_vs_in(struct netns_ipvs *ipvs, unsigned int hooknum, struct sk_buff *skb, int
127203 if (cp->flags & IP_VS_CONN_F_ONE_PACKET)
127204 pkts = sysctl_sync_threshold(ipvs);
127205 else
127206 - pkts = atomic_add_return(1, &cp->in_pkts);
127207 + pkts = atomic_add_return_unchecked(1, &cp->in_pkts);
127208
127209 if (ipvs->sync_state & IP_VS_STATE_MASTER)
127210 ip_vs_sync_conn(ipvs, cp, pkts);
127211 diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c
127212 index e7c1b05..81b2474 100644
127213 --- a/net/netfilter/ipvs/ip_vs_ctl.c
127214 +++ b/net/netfilter/ipvs/ip_vs_ctl.c
127215 @@ -811,7 +811,7 @@ __ip_vs_update_dest(struct ip_vs_service *svc, struct ip_vs_dest *dest,
127216 */
127217 ip_vs_rs_hash(ipvs, dest);
127218 }
127219 - atomic_set(&dest->conn_flags, conn_flags);
127220 + atomic_set_unchecked(&dest->conn_flags, conn_flags);
127221
127222 /* bind the service */
127223 old_svc = rcu_dereference_protected(dest->svc, 1);
127224 @@ -1687,7 +1687,7 @@ proc_do_sync_ports(struct ctl_table *table, int write,
127225 * align with netns init in ip_vs_control_net_init()
127226 */
127227
127228 -static struct ctl_table vs_vars[] = {
127229 +static ctl_table_no_const vs_vars[] __read_only = {
127230 {
127231 .procname = "amemthresh",
127232 .maxlen = sizeof(int),
127233 @@ -2042,7 +2042,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
127234 " %-7s %-6d %-10d %-10d\n",
127235 &dest->addr.in6,
127236 ntohs(dest->port),
127237 - ip_vs_fwd_name(atomic_read(&dest->conn_flags)),
127238 + ip_vs_fwd_name(atomic_read_unchecked(&dest->conn_flags)),
127239 atomic_read(&dest->weight),
127240 atomic_read(&dest->activeconns),
127241 atomic_read(&dest->inactconns));
127242 @@ -2053,7 +2053,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
127243 "%-7s %-6d %-10d %-10d\n",
127244 ntohl(dest->addr.ip),
127245 ntohs(dest->port),
127246 - ip_vs_fwd_name(atomic_read(&dest->conn_flags)),
127247 + ip_vs_fwd_name(atomic_read_unchecked(&dest->conn_flags)),
127248 atomic_read(&dest->weight),
127249 atomic_read(&dest->activeconns),
127250 atomic_read(&dest->inactconns));
127251 @@ -2562,7 +2562,7 @@ __ip_vs_get_dest_entries(struct netns_ipvs *ipvs, const struct ip_vs_get_dests *
127252
127253 entry.addr = dest->addr.ip;
127254 entry.port = dest->port;
127255 - entry.conn_flags = atomic_read(&dest->conn_flags);
127256 + entry.conn_flags = atomic_read_unchecked(&dest->conn_flags);
127257 entry.weight = atomic_read(&dest->weight);
127258 entry.u_threshold = dest->u_threshold;
127259 entry.l_threshold = dest->l_threshold;
127260 @@ -3143,7 +3143,7 @@ static int ip_vs_genl_fill_dest(struct sk_buff *skb, struct ip_vs_dest *dest)
127261 if (nla_put(skb, IPVS_DEST_ATTR_ADDR, sizeof(dest->addr), &dest->addr) ||
127262 nla_put_be16(skb, IPVS_DEST_ATTR_PORT, dest->port) ||
127263 nla_put_u32(skb, IPVS_DEST_ATTR_FWD_METHOD,
127264 - (atomic_read(&dest->conn_flags) &
127265 + (atomic_read_unchecked(&dest->conn_flags) &
127266 IP_VS_CONN_F_FWD_MASK)) ||
127267 nla_put_u32(skb, IPVS_DEST_ATTR_WEIGHT,
127268 atomic_read(&dest->weight)) ||
127269 @@ -3840,7 +3840,7 @@ static int __net_init ip_vs_control_net_init_sysctl(struct netns_ipvs *ipvs)
127270 {
127271 struct net *net = ipvs->net;
127272 int idx;
127273 - struct ctl_table *tbl;
127274 + ctl_table_no_const *tbl;
127275
127276 atomic_set(&ipvs->dropentry, 0);
127277 spin_lock_init(&ipvs->dropentry_lock);
127278 diff --git a/net/netfilter/ipvs/ip_vs_lblc.c b/net/netfilter/ipvs/ip_vs_lblc.c
127279 index cccf4d6..8d60399 100644
127280 --- a/net/netfilter/ipvs/ip_vs_lblc.c
127281 +++ b/net/netfilter/ipvs/ip_vs_lblc.c
127282 @@ -118,7 +118,7 @@ struct ip_vs_lblc_table {
127283 * IPVS LBLC sysctl table
127284 */
127285 #ifdef CONFIG_SYSCTL
127286 -static struct ctl_table vs_vars_table[] = {
127287 +static ctl_table_no_const vs_vars_table[] __read_only = {
127288 {
127289 .procname = "lblc_expiration",
127290 .data = NULL,
127291 diff --git a/net/netfilter/ipvs/ip_vs_lblcr.c b/net/netfilter/ipvs/ip_vs_lblcr.c
127292 index 796d70e..8458955 100644
127293 --- a/net/netfilter/ipvs/ip_vs_lblcr.c
127294 +++ b/net/netfilter/ipvs/ip_vs_lblcr.c
127295 @@ -289,7 +289,7 @@ struct ip_vs_lblcr_table {
127296 * IPVS LBLCR sysctl table
127297 */
127298
127299 -static struct ctl_table vs_vars_table[] = {
127300 +static ctl_table_no_const vs_vars_table[] __read_only = {
127301 {
127302 .procname = "lblcr_expiration",
127303 .data = NULL,
127304 diff --git a/net/netfilter/ipvs/ip_vs_sync.c b/net/netfilter/ipvs/ip_vs_sync.c
127305 index 803001a..09fb00d 100644
127306 --- a/net/netfilter/ipvs/ip_vs_sync.c
127307 +++ b/net/netfilter/ipvs/ip_vs_sync.c
127308 @@ -611,7 +611,7 @@ static void ip_vs_sync_conn_v0(struct netns_ipvs *ipvs, struct ip_vs_conn *cp,
127309 cp = cp->control;
127310 if (cp) {
127311 if (cp->flags & IP_VS_CONN_F_TEMPLATE)
127312 - pkts = atomic_add_return(1, &cp->in_pkts);
127313 + pkts = atomic_add_return_unchecked(1, &cp->in_pkts);
127314 else
127315 pkts = sysctl_sync_threshold(ipvs);
127316 ip_vs_sync_conn(ipvs, cp, pkts);
127317 @@ -772,7 +772,7 @@ control:
127318 if (!cp)
127319 return;
127320 if (cp->flags & IP_VS_CONN_F_TEMPLATE)
127321 - pkts = atomic_add_return(1, &cp->in_pkts);
127322 + pkts = atomic_add_return_unchecked(1, &cp->in_pkts);
127323 else
127324 pkts = sysctl_sync_threshold(ipvs);
127325 goto sloop;
127326 @@ -919,7 +919,7 @@ static void ip_vs_proc_conn(struct netns_ipvs *ipvs, struct ip_vs_conn_param *pa
127327
127328 if (opt)
127329 memcpy(&cp->in_seq, opt, sizeof(*opt));
127330 - atomic_set(&cp->in_pkts, sysctl_sync_threshold(ipvs));
127331 + atomic_set_unchecked(&cp->in_pkts, sysctl_sync_threshold(ipvs));
127332 cp->state = state;
127333 cp->old_state = cp->state;
127334 /*
127335 diff --git a/net/netfilter/ipvs/ip_vs_xmit.c b/net/netfilter/ipvs/ip_vs_xmit.c
127336 index 3264cb49..6e06523 100644
127337 --- a/net/netfilter/ipvs/ip_vs_xmit.c
127338 +++ b/net/netfilter/ipvs/ip_vs_xmit.c
127339 @@ -1268,7 +1268,7 @@ ip_vs_icmp_xmit(struct sk_buff *skb, struct ip_vs_conn *cp,
127340 else
127341 rc = NF_ACCEPT;
127342 /* do not touch skb anymore */
127343 - atomic_inc(&cp->in_pkts);
127344 + atomic_inc_unchecked(&cp->in_pkts);
127345 goto out;
127346 }
127347
127348 @@ -1361,7 +1361,7 @@ ip_vs_icmp_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp,
127349 else
127350 rc = NF_ACCEPT;
127351 /* do not touch skb anymore */
127352 - atomic_inc(&cp->in_pkts);
127353 + atomic_inc_unchecked(&cp->in_pkts);
127354 goto out;
127355 }
127356
127357 diff --git a/net/netfilter/nf_conntrack_acct.c b/net/netfilter/nf_conntrack_acct.c
127358 index 45da11a..ef3e5dc 100644
127359 --- a/net/netfilter/nf_conntrack_acct.c
127360 +++ b/net/netfilter/nf_conntrack_acct.c
127361 @@ -64,7 +64,7 @@ static struct nf_ct_ext_type acct_extend __read_mostly = {
127362 #ifdef CONFIG_SYSCTL
127363 static int nf_conntrack_acct_init_sysctl(struct net *net)
127364 {
127365 - struct ctl_table *table;
127366 + ctl_table_no_const *table;
127367
127368 table = kmemdup(acct_sysctl_table, sizeof(acct_sysctl_table),
127369 GFP_KERNEL);
127370 diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
127371 index 3cb3cb8..c9fcad80 100644
127372 --- a/net/netfilter/nf_conntrack_core.c
127373 +++ b/net/netfilter/nf_conntrack_core.c
127374 @@ -66,6 +66,21 @@ EXPORT_SYMBOL_GPL(nf_conntrack_locks);
127375 __cacheline_aligned_in_smp DEFINE_SPINLOCK(nf_conntrack_expect_lock);
127376 EXPORT_SYMBOL_GPL(nf_conntrack_expect_lock);
127377
127378 +static __read_mostly spinlock_t nf_conntrack_locks_all_lock;
127379 +static __read_mostly bool nf_conntrack_locks_all;
127380 +
127381 +void nf_conntrack_lock(spinlock_t *lock) __acquires(lock)
127382 +{
127383 + spin_lock(lock);
127384 + while (unlikely(nf_conntrack_locks_all)) {
127385 + spin_unlock(lock);
127386 + spin_lock(&nf_conntrack_locks_all_lock);
127387 + spin_unlock(&nf_conntrack_locks_all_lock);
127388 + spin_lock(lock);
127389 + }
127390 +}
127391 +EXPORT_SYMBOL_GPL(nf_conntrack_lock);
127392 +
127393 static void nf_conntrack_double_unlock(unsigned int h1, unsigned int h2)
127394 {
127395 h1 %= CONNTRACK_LOCKS;
127396 @@ -82,12 +97,12 @@ static bool nf_conntrack_double_lock(struct net *net, unsigned int h1,
127397 h1 %= CONNTRACK_LOCKS;
127398 h2 %= CONNTRACK_LOCKS;
127399 if (h1 <= h2) {
127400 - spin_lock(&nf_conntrack_locks[h1]);
127401 + nf_conntrack_lock(&nf_conntrack_locks[h1]);
127402 if (h1 != h2)
127403 spin_lock_nested(&nf_conntrack_locks[h2],
127404 SINGLE_DEPTH_NESTING);
127405 } else {
127406 - spin_lock(&nf_conntrack_locks[h2]);
127407 + nf_conntrack_lock(&nf_conntrack_locks[h2]);
127408 spin_lock_nested(&nf_conntrack_locks[h1],
127409 SINGLE_DEPTH_NESTING);
127410 }
127411 @@ -102,16 +117,19 @@ static void nf_conntrack_all_lock(void)
127412 {
127413 int i;
127414
127415 - for (i = 0; i < CONNTRACK_LOCKS; i++)
127416 - spin_lock_nested(&nf_conntrack_locks[i], i);
127417 -}
127418 + spin_lock(&nf_conntrack_locks_all_lock);
127419 + nf_conntrack_locks_all = true;
127420
127421 -static void nf_conntrack_all_unlock(void)
127422 -{
127423 - int i;
127424 -
127425 - for (i = 0; i < CONNTRACK_LOCKS; i++)
127426 + for (i = 0; i < CONNTRACK_LOCKS; i++) {
127427 + spin_lock(&nf_conntrack_locks[i]);
127428 spin_unlock(&nf_conntrack_locks[i]);
127429 + }
127430 +}
127431 +
127432 +static void nf_conntrack_all_unlock(void)
127433 +{
127434 + nf_conntrack_locks_all = false;
127435 + spin_unlock(&nf_conntrack_locks_all_lock);
127436 }
127437
127438 unsigned int nf_conntrack_htable_size __read_mostly;
127439 @@ -757,7 +775,7 @@ restart:
127440 hash = hash_bucket(_hash, net);
127441 for (; i < net->ct.htable_size; i++) {
127442 lockp = &nf_conntrack_locks[hash % CONNTRACK_LOCKS];
127443 - spin_lock(lockp);
127444 + nf_conntrack_lock(lockp);
127445 if (read_seqcount_retry(&net->ct.generation, sequence)) {
127446 spin_unlock(lockp);
127447 goto restart;
127448 @@ -1382,7 +1400,7 @@ get_next_corpse(struct net *net, int (*iter)(struct nf_conn *i, void *data),
127449 for (; *bucket < net->ct.htable_size; (*bucket)++) {
127450 lockp = &nf_conntrack_locks[*bucket % CONNTRACK_LOCKS];
127451 local_bh_disable();
127452 - spin_lock(lockp);
127453 + nf_conntrack_lock(lockp);
127454 if (*bucket < net->ct.htable_size) {
127455 hlist_nulls_for_each_entry(h, n, &net->ct.hash[*bucket], hnnode) {
127456 if (NF_CT_DIRECTION(h) != IP_CT_DIR_ORIGINAL)
127457 @@ -1755,6 +1773,10 @@ void nf_conntrack_init_end(void)
127458 #define DYING_NULLS_VAL ((1<<30)+1)
127459 #define TEMPLATE_NULLS_VAL ((1<<30)+2)
127460
127461 +#ifdef CONFIG_GRKERNSEC_HIDESYM
127462 +static atomic_unchecked_t conntrack_cache_id = ATOMIC_INIT(0);
127463 +#endif
127464 +
127465 int nf_conntrack_init_net(struct net *net)
127466 {
127467 int ret = -ENOMEM;
127468 @@ -1779,7 +1801,11 @@ int nf_conntrack_init_net(struct net *net)
127469 if (!net->ct.stat)
127470 goto err_pcpu_lists;
127471
127472 +#ifdef CONFIG_GRKERNSEC_HIDESYM
127473 + net->ct.slabname = kasprintf(GFP_KERNEL, "nf_conntrack_%08x", atomic_inc_return_unchecked(&conntrack_cache_id));
127474 +#else
127475 net->ct.slabname = kasprintf(GFP_KERNEL, "nf_conntrack_%p", net);
127476 +#endif
127477 if (!net->ct.slabname)
127478 goto err_slabname;
127479
127480 diff --git a/net/netfilter/nf_conntrack_ecache.c b/net/netfilter/nf_conntrack_ecache.c
127481 index 4e78c57..ec8fb74 100644
127482 --- a/net/netfilter/nf_conntrack_ecache.c
127483 +++ b/net/netfilter/nf_conntrack_ecache.c
127484 @@ -264,7 +264,7 @@ static struct nf_ct_ext_type event_extend __read_mostly = {
127485 #ifdef CONFIG_SYSCTL
127486 static int nf_conntrack_event_init_sysctl(struct net *net)
127487 {
127488 - struct ctl_table *table;
127489 + ctl_table_no_const *table;
127490
127491 table = kmemdup(event_sysctl_table, sizeof(event_sysctl_table),
127492 GFP_KERNEL);
127493 diff --git a/net/netfilter/nf_conntrack_helper.c b/net/netfilter/nf_conntrack_helper.c
127494 index bd9d315..fbd2fb7 100644
127495 --- a/net/netfilter/nf_conntrack_helper.c
127496 +++ b/net/netfilter/nf_conntrack_helper.c
127497 @@ -57,7 +57,7 @@ static struct ctl_table helper_sysctl_table[] = {
127498
127499 static int nf_conntrack_helper_init_sysctl(struct net *net)
127500 {
127501 - struct ctl_table *table;
127502 + ctl_table_no_const *table;
127503
127504 table = kmemdup(helper_sysctl_table, sizeof(helper_sysctl_table),
127505 GFP_KERNEL);
127506 @@ -425,7 +425,7 @@ static void __nf_conntrack_helper_unregister(struct nf_conntrack_helper *me,
127507 }
127508 local_bh_disable();
127509 for (i = 0; i < net->ct.htable_size; i++) {
127510 - spin_lock(&nf_conntrack_locks[i % CONNTRACK_LOCKS]);
127511 + nf_conntrack_lock(&nf_conntrack_locks[i % CONNTRACK_LOCKS]);
127512 if (i < net->ct.htable_size) {
127513 hlist_nulls_for_each_entry(h, nn, &net->ct.hash[i], hnnode)
127514 unhelp(h, me);
127515 diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c
127516 index 9f52729..7e7a2c6 100644
127517 --- a/net/netfilter/nf_conntrack_netlink.c
127518 +++ b/net/netfilter/nf_conntrack_netlink.c
127519 @@ -840,7 +840,7 @@ ctnetlink_dump_table(struct sk_buff *skb, struct netlink_callback *cb)
127520 for (; cb->args[0] < net->ct.htable_size; cb->args[0]++) {
127521 restart:
127522 lockp = &nf_conntrack_locks[cb->args[0] % CONNTRACK_LOCKS];
127523 - spin_lock(lockp);
127524 + nf_conntrack_lock(lockp);
127525 if (cb->args[0] >= net->ct.htable_size) {
127526 spin_unlock(lockp);
127527 goto out;
127528 @@ -1184,10 +1184,11 @@ ctnetlink_get_conntrack(struct sock *ctnl, struct sk_buff *skb,
127529 int err;
127530
127531 if (nlh->nlmsg_flags & NLM_F_DUMP) {
127532 - struct netlink_dump_control c = {
127533 + static struct netlink_dump_control c = {
127534 .dump = ctnetlink_dump_table,
127535 .done = ctnetlink_done,
127536 };
127537 + void *data = NULL;
127538
127539 if (cda[CTA_MARK] && cda[CTA_MARK_MASK]) {
127540 struct ctnetlink_filter *filter;
127541 @@ -1196,9 +1197,9 @@ ctnetlink_get_conntrack(struct sock *ctnl, struct sk_buff *skb,
127542 if (IS_ERR(filter))
127543 return PTR_ERR(filter);
127544
127545 - c.data = filter;
127546 + data = filter;
127547 }
127548 - return netlink_dump_start(ctnl, skb, nlh, &c);
127549 + return __netlink_dump_start(ctnl, skb, nlh, &c, data, THIS_MODULE);
127550 }
127551
127552 err = ctnetlink_parse_zone(cda[CTA_ZONE], &zone);
127553 @@ -1336,7 +1337,7 @@ ctnetlink_get_ct_dying(struct sock *ctnl, struct sk_buff *skb,
127554 const struct nlattr * const cda[])
127555 {
127556 if (nlh->nlmsg_flags & NLM_F_DUMP) {
127557 - struct netlink_dump_control c = {
127558 + static struct netlink_dump_control c = {
127559 .dump = ctnetlink_dump_dying,
127560 .done = ctnetlink_done_list,
127561 };
127562 @@ -1358,7 +1359,7 @@ ctnetlink_get_ct_unconfirmed(struct sock *ctnl, struct sk_buff *skb,
127563 const struct nlattr * const cda[])
127564 {
127565 if (nlh->nlmsg_flags & NLM_F_DUMP) {
127566 - struct netlink_dump_control c = {
127567 + static struct netlink_dump_control c = {
127568 .dump = ctnetlink_dump_unconfirmed,
127569 .done = ctnetlink_done_list,
127570 };
127571 @@ -2040,7 +2041,7 @@ ctnetlink_stat_ct_cpu(struct sock *ctnl, struct sk_buff *skb,
127572 const struct nlattr * const cda[])
127573 {
127574 if (nlh->nlmsg_flags & NLM_F_DUMP) {
127575 - struct netlink_dump_control c = {
127576 + static struct netlink_dump_control c = {
127577 .dump = ctnetlink_ct_stat_cpu_dump,
127578 };
127579 return netlink_dump_start(ctnl, skb, nlh, &c);
127580 @@ -2741,7 +2742,7 @@ static int ctnetlink_dump_exp_ct(struct sock *ctnl, struct sk_buff *skb,
127581 struct nf_conntrack_tuple_hash *h;
127582 struct nf_conn *ct;
127583 struct nf_conntrack_zone zone;
127584 - struct netlink_dump_control c = {
127585 + static struct netlink_dump_control c = {
127586 .dump = ctnetlink_exp_ct_dump_table,
127587 .done = ctnetlink_exp_done,
127588 };
127589 @@ -2760,9 +2761,8 @@ static int ctnetlink_dump_exp_ct(struct sock *ctnl, struct sk_buff *skb,
127590 return -ENOENT;
127591
127592 ct = nf_ct_tuplehash_to_ctrack(h);
127593 - c.data = ct;
127594
127595 - err = netlink_dump_start(ctnl, skb, nlh, &c);
127596 + err = __netlink_dump_start(ctnl, skb, nlh, &c, ct, THIS_MODULE);
127597 nf_ct_put(ct);
127598
127599 return err;
127600 @@ -2786,7 +2786,7 @@ ctnetlink_get_expect(struct sock *ctnl, struct sk_buff *skb,
127601 if (cda[CTA_EXPECT_MASTER])
127602 return ctnetlink_dump_exp_ct(ctnl, skb, nlh, cda);
127603 else {
127604 - struct netlink_dump_control c = {
127605 + static struct netlink_dump_control c = {
127606 .dump = ctnetlink_exp_dump_table,
127607 .done = ctnetlink_exp_done,
127608 };
127609 @@ -3248,7 +3248,7 @@ ctnetlink_stat_exp_cpu(struct sock *ctnl, struct sk_buff *skb,
127610 const struct nlattr * const cda[])
127611 {
127612 if (nlh->nlmsg_flags & NLM_F_DUMP) {
127613 - struct netlink_dump_control c = {
127614 + static struct netlink_dump_control c = {
127615 .dump = ctnetlink_exp_stat_cpu_dump,
127616 };
127617 return netlink_dump_start(ctnl, skb, nlh, &c);
127618 diff --git a/net/netfilter/nf_conntrack_proto.c b/net/netfilter/nf_conntrack_proto.c
127619 index b65d586..beec902 100644
127620 --- a/net/netfilter/nf_conntrack_proto.c
127621 +++ b/net/netfilter/nf_conntrack_proto.c
127622 @@ -52,7 +52,7 @@ nf_ct_register_sysctl(struct net *net,
127623
127624 static void
127625 nf_ct_unregister_sysctl(struct ctl_table_header **header,
127626 - struct ctl_table **table,
127627 + ctl_table_no_const **table,
127628 unsigned int users)
127629 {
127630 if (users > 0)
127631 diff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c
127632 index 1fb3cac..a35219b 100644
127633 --- a/net/netfilter/nf_conntrack_standalone.c
127634 +++ b/net/netfilter/nf_conntrack_standalone.c
127635 @@ -497,7 +497,7 @@ static struct ctl_table nf_ct_netfilter_table[] = {
127636
127637 static int nf_conntrack_standalone_init_sysctl(struct net *net)
127638 {
127639 - struct ctl_table *table;
127640 + ctl_table_no_const *table;
127641
127642 table = kmemdup(nf_ct_sysctl_table, sizeof(nf_ct_sysctl_table),
127643 GFP_KERNEL);
127644 diff --git a/net/netfilter/nf_conntrack_timestamp.c b/net/netfilter/nf_conntrack_timestamp.c
127645 index 7a394df..bd91a8a 100644
127646 --- a/net/netfilter/nf_conntrack_timestamp.c
127647 +++ b/net/netfilter/nf_conntrack_timestamp.c
127648 @@ -42,7 +42,7 @@ static struct nf_ct_ext_type tstamp_extend __read_mostly = {
127649 #ifdef CONFIG_SYSCTL
127650 static int nf_conntrack_tstamp_init_sysctl(struct net *net)
127651 {
127652 - struct ctl_table *table;
127653 + ctl_table_no_const *table;
127654
127655 table = kmemdup(tstamp_sysctl_table, sizeof(tstamp_sysctl_table),
127656 GFP_KERNEL);
127657 diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c
127658 index a5d41df..1ff49be 100644
127659 --- a/net/netfilter/nf_log.c
127660 +++ b/net/netfilter/nf_log.c
127661 @@ -391,7 +391,7 @@ static const struct file_operations nflog_file_ops = {
127662
127663 #ifdef CONFIG_SYSCTL
127664 static char nf_log_sysctl_fnames[NFPROTO_NUMPROTO-NFPROTO_UNSPEC][3];
127665 -static struct ctl_table nf_log_sysctl_table[NFPROTO_NUMPROTO+1];
127666 +static ctl_table_no_const nf_log_sysctl_table[NFPROTO_NUMPROTO+1] __read_only;
127667
127668 static int nf_log_proc_dostring(struct ctl_table *table, int write,
127669 void __user *buffer, size_t *lenp, loff_t *ppos)
127670 @@ -422,13 +422,15 @@ static int nf_log_proc_dostring(struct ctl_table *table, int write,
127671 rcu_assign_pointer(net->nf.nf_loggers[tindex], logger);
127672 mutex_unlock(&nf_log_mutex);
127673 } else {
127674 + ctl_table_no_const nf_log_table = *table;
127675 +
127676 mutex_lock(&nf_log_mutex);
127677 logger = nft_log_dereference(net->nf.nf_loggers[tindex]);
127678 if (!logger)
127679 - table->data = "NONE";
127680 + nf_log_table.data = "NONE";
127681 else
127682 - table->data = logger->name;
127683 - r = proc_dostring(table, write, buffer, lenp, ppos);
127684 + nf_log_table.data = logger->name;
127685 + r = proc_dostring(&nf_log_table, write, buffer, lenp, ppos);
127686 mutex_unlock(&nf_log_mutex);
127687 }
127688
127689 diff --git a/net/netfilter/nf_sockopt.c b/net/netfilter/nf_sockopt.c
127690 index c68c1e5..8b5d670 100644
127691 --- a/net/netfilter/nf_sockopt.c
127692 +++ b/net/netfilter/nf_sockopt.c
127693 @@ -43,7 +43,7 @@ int nf_register_sockopt(struct nf_sockopt_ops *reg)
127694 }
127695 }
127696
127697 - list_add(&reg->list, &nf_sockopts);
127698 + pax_list_add((struct list_head *)&reg->list, &nf_sockopts);
127699 out:
127700 mutex_unlock(&nf_sockopt_mutex);
127701 return ret;
127702 @@ -53,7 +53,7 @@ EXPORT_SYMBOL(nf_register_sockopt);
127703 void nf_unregister_sockopt(struct nf_sockopt_ops *reg)
127704 {
127705 mutex_lock(&nf_sockopt_mutex);
127706 - list_del(&reg->list);
127707 + pax_list_del((struct list_head *)&reg->list);
127708 mutex_unlock(&nf_sockopt_mutex);
127709 }
127710 EXPORT_SYMBOL(nf_unregister_sockopt);
127711 diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
127712 index 2cb429d..77adda0 100644
127713 --- a/net/netfilter/nf_tables_api.c
127714 +++ b/net/netfilter/nf_tables_api.c
127715 @@ -555,7 +555,7 @@ static int nf_tables_gettable(struct sock *nlsk, struct sk_buff *skb,
127716 int err;
127717
127718 if (nlh->nlmsg_flags & NLM_F_DUMP) {
127719 - struct netlink_dump_control c = {
127720 + static struct netlink_dump_control c = {
127721 .dump = nf_tables_dump_tables,
127722 };
127723 return netlink_dump_start(nlsk, skb, nlh, &c);
127724 @@ -1112,7 +1112,7 @@ static int nf_tables_getchain(struct sock *nlsk, struct sk_buff *skb,
127725 int err;
127726
127727 if (nlh->nlmsg_flags & NLM_F_DUMP) {
127728 - struct netlink_dump_control c = {
127729 + static struct netlink_dump_control c = {
127730 .dump = nf_tables_dump_chains,
127731 };
127732 return netlink_dump_start(nlsk, skb, nlh, &c);
127733 @@ -1943,7 +1943,7 @@ static int nf_tables_getrule(struct sock *nlsk, struct sk_buff *skb,
127734 int err;
127735
127736 if (nlh->nlmsg_flags & NLM_F_DUMP) {
127737 - struct netlink_dump_control c = {
127738 + static struct netlink_dump_control c = {
127739 .dump = nf_tables_dump_rules,
127740 };
127741 return netlink_dump_start(nlsk, skb, nlh, &c);
127742 @@ -2630,7 +2630,7 @@ static int nf_tables_getset(struct sock *nlsk, struct sk_buff *skb,
127743 return err;
127744
127745 if (nlh->nlmsg_flags & NLM_F_DUMP) {
127746 - struct netlink_dump_control c = {
127747 + static struct netlink_dump_control c = {
127748 .dump = nf_tables_dump_sets,
127749 .done = nf_tables_dump_sets_done,
127750 };
127751 @@ -2641,9 +2641,8 @@ static int nf_tables_getset(struct sock *nlsk, struct sk_buff *skb,
127752 return -ENOMEM;
127753
127754 *ctx_dump = ctx;
127755 - c.data = ctx_dump;
127756
127757 - return netlink_dump_start(nlsk, skb, nlh, &c);
127758 + return __netlink_dump_start(nlsk, skb, nlh, &c, ctx_dump, THIS_MODULE);
127759 }
127760
127761 /* Only accept unspec with dump */
127762 @@ -3222,7 +3221,7 @@ static int nf_tables_getsetelem(struct sock *nlsk, struct sk_buff *skb,
127763 return -ENOENT;
127764
127765 if (nlh->nlmsg_flags & NLM_F_DUMP) {
127766 - struct netlink_dump_control c = {
127767 + static struct netlink_dump_control c = {
127768 .dump = nf_tables_dump_set,
127769 };
127770 return netlink_dump_start(nlsk, skb, nlh, &c);
127771 diff --git a/net/netfilter/nfnetlink_acct.c b/net/netfilter/nfnetlink_acct.c
127772 index fefbf5f..996b6ef 100644
127773 --- a/net/netfilter/nfnetlink_acct.c
127774 +++ b/net/netfilter/nfnetlink_acct.c
127775 @@ -263,10 +263,11 @@ nfnl_acct_get(struct sock *nfnl, struct sk_buff *skb,
127776 char *acct_name;
127777
127778 if (nlh->nlmsg_flags & NLM_F_DUMP) {
127779 - struct netlink_dump_control c = {
127780 + static struct netlink_dump_control c = {
127781 .dump = nfnl_acct_dump,
127782 .done = nfnl_acct_done,
127783 };
127784 + void *data = NULL;
127785
127786 if (tb[NFACCT_FILTER]) {
127787 struct nfacct_filter *filter;
127788 @@ -275,9 +276,9 @@ nfnl_acct_get(struct sock *nfnl, struct sk_buff *skb,
127789 if (IS_ERR(filter))
127790 return PTR_ERR(filter);
127791
127792 - c.data = filter;
127793 + data = filter;
127794 }
127795 - return netlink_dump_start(nfnl, skb, nlh, &c);
127796 + return __netlink_dump_start(nfnl, skb, nlh, &c, data, THIS_MODULE);
127797 }
127798
127799 if (!tb[NFACCT_NAME])
127800 diff --git a/net/netfilter/nfnetlink_cthelper.c b/net/netfilter/nfnetlink_cthelper.c
127801 index 54330fb..77d3fb1 100644
127802 --- a/net/netfilter/nfnetlink_cthelper.c
127803 +++ b/net/netfilter/nfnetlink_cthelper.c
127804 @@ -510,7 +510,7 @@ nfnl_cthelper_get(struct sock *nfnl, struct sk_buff *skb,
127805 bool tuple_set = false;
127806
127807 if (nlh->nlmsg_flags & NLM_F_DUMP) {
127808 - struct netlink_dump_control c = {
127809 + static struct netlink_dump_control c = {
127810 .dump = nfnl_cthelper_dump_table,
127811 };
127812 return netlink_dump_start(nfnl, skb, nlh, &c);
127813 diff --git a/net/netfilter/nfnetlink_cttimeout.c b/net/netfilter/nfnetlink_cttimeout.c
127814 index c7a2d0e..272225e 100644
127815 --- a/net/netfilter/nfnetlink_cttimeout.c
127816 +++ b/net/netfilter/nfnetlink_cttimeout.c
127817 @@ -250,7 +250,7 @@ cttimeout_get_timeout(struct sock *ctnl, struct sk_buff *skb,
127818 struct ctnl_timeout *cur;
127819
127820 if (nlh->nlmsg_flags & NLM_F_DUMP) {
127821 - struct netlink_dump_control c = {
127822 + static struct netlink_dump_control c = {
127823 .dump = ctnl_timeout_dump,
127824 };
127825 return netlink_dump_start(ctnl, skb, nlh, &c);
127826 diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c
127827 index 740cce4..4672d73 100644
127828 --- a/net/netfilter/nfnetlink_log.c
127829 +++ b/net/netfilter/nfnetlink_log.c
127830 @@ -85,7 +85,7 @@ static int nfnl_log_net_id __read_mostly;
127831 struct nfnl_log_net {
127832 spinlock_t instances_lock;
127833 struct hlist_head instance_table[INSTANCE_BUCKETS];
127834 - atomic_t global_seq;
127835 + atomic_unchecked_t global_seq;
127836 };
127837
127838 static struct nfnl_log_net *nfnl_log_pernet(struct net *net)
127839 @@ -575,7 +575,7 @@ __build_packet_message(struct nfnl_log_net *log,
127840 /* global sequence number */
127841 if ((inst->flags & NFULNL_CFG_F_SEQ_GLOBAL) &&
127842 nla_put_be32(inst->skb, NFULA_SEQ_GLOBAL,
127843 - htonl(atomic_inc_return(&log->global_seq))))
127844 + htonl(atomic_inc_return_unchecked(&log->global_seq))))
127845 goto nla_put_failure;
127846
127847 if (ct && nfnl_ct->build(inst->skb, ct, ctinfo,
127848 diff --git a/net/netfilter/nft_compat.c b/net/netfilter/nft_compat.c
127849 index 9c8fab0..5080c7c 100644
127850 --- a/net/netfilter/nft_compat.c
127851 +++ b/net/netfilter/nft_compat.c
127852 @@ -322,14 +322,7 @@ static void nft_match_eval(const struct nft_expr *expr,
127853 return;
127854 }
127855
127856 - switch (ret ? 1 : 0) {
127857 - case 1:
127858 - regs->verdict.code = NFT_CONTINUE;
127859 - break;
127860 - case 0:
127861 - regs->verdict.code = NFT_BREAK;
127862 - break;
127863 - }
127864 + regs->verdict.code = ret ? NFT_CONTINUE : NFT_BREAK;
127865 }
127866
127867 static const struct nla_policy nft_match_policy[NFTA_MATCH_MAX + 1] = {
127868 diff --git a/net/netfilter/xt_gradm.c b/net/netfilter/xt_gradm.c
127869 new file mode 100644
127870 index 0000000..a7cb915
127871 --- /dev/null
127872 +++ b/net/netfilter/xt_gradm.c
127873 @@ -0,0 +1,51 @@
127874 +/*
127875 + * gradm match for netfilter
127876 + * Copyright (c) Zbigniew Krzystolik, 2010
127877 + *
127878 + * This program is free software; you can redistribute it and/or modify
127879 + * it under the terms of the GNU General Public License; either version
127880 + * 2 or 3 as published by the Free Software Foundation.
127881 + */
127882 +#include <linux/module.h>
127883 +#include <linux/moduleparam.h>
127884 +#include <linux/skbuff.h>
127885 +#include <linux/netfilter/x_tables.h>
127886 +#include <linux/grsecurity.h>
127887 +#include <linux/netfilter/xt_gradm.h>
127888 +
127889 +static bool
127890 +gradm_mt(const struct sk_buff *skb, struct xt_action_param *par)
127891 +{
127892 + const struct xt_gradm_mtinfo *info = par->matchinfo;
127893 + bool retval = false;
127894 + if (gr_acl_is_enabled())
127895 + retval = true;
127896 + return retval ^ info->invflags;
127897 +}
127898 +
127899 +static struct xt_match gradm_mt_reg __read_mostly = {
127900 + .name = "gradm",
127901 + .revision = 0,
127902 + .family = NFPROTO_UNSPEC,
127903 + .match = gradm_mt,
127904 + .matchsize = XT_ALIGN(sizeof(struct xt_gradm_mtinfo)),
127905 + .me = THIS_MODULE,
127906 +};
127907 +
127908 +static int __init gradm_mt_init(void)
127909 +{
127910 + return xt_register_match(&gradm_mt_reg);
127911 +}
127912 +
127913 +static void __exit gradm_mt_exit(void)
127914 +{
127915 + xt_unregister_match(&gradm_mt_reg);
127916 +}
127917 +
127918 +module_init(gradm_mt_init);
127919 +module_exit(gradm_mt_exit);
127920 +MODULE_AUTHOR("Zbigniew Krzystolik <zbyniu@destrukcja.pl>");
127921 +MODULE_DESCRIPTION("Xtables: Grsecurity RBAC match");
127922 +MODULE_LICENSE("GPL");
127923 +MODULE_ALIAS("ipt_gradm");
127924 +MODULE_ALIAS("ip6t_gradm");
127925 diff --git a/net/netfilter/xt_hashlimit.c b/net/netfilter/xt_hashlimit.c
127926 index 1786968..1ec6dac 100644
127927 --- a/net/netfilter/xt_hashlimit.c
127928 +++ b/net/netfilter/xt_hashlimit.c
127929 @@ -869,11 +869,11 @@ static int __net_init hashlimit_proc_net_init(struct net *net)
127930 {
127931 struct hashlimit_net *hashlimit_net = hashlimit_pernet(net);
127932
127933 - hashlimit_net->ipt_hashlimit = proc_mkdir("ipt_hashlimit", net->proc_net);
127934 + hashlimit_net->ipt_hashlimit = proc_mkdir_restrict("ipt_hashlimit", net->proc_net);
127935 if (!hashlimit_net->ipt_hashlimit)
127936 return -ENOMEM;
127937 #if IS_ENABLED(CONFIG_IP6_NF_IPTABLES)
127938 - hashlimit_net->ip6t_hashlimit = proc_mkdir("ip6t_hashlimit", net->proc_net);
127939 + hashlimit_net->ip6t_hashlimit = proc_mkdir_restrict("ip6t_hashlimit", net->proc_net);
127940 if (!hashlimit_net->ip6t_hashlimit) {
127941 remove_proc_entry("ipt_hashlimit", net->proc_net);
127942 return -ENOMEM;
127943 diff --git a/net/netfilter/xt_recent.c b/net/netfilter/xt_recent.c
127944 index d725a27..14b0c51 100644
127945 --- a/net/netfilter/xt_recent.c
127946 +++ b/net/netfilter/xt_recent.c
127947 @@ -642,7 +642,7 @@ static int __net_init recent_proc_net_init(struct net *net)
127948 {
127949 struct recent_net *recent_net = recent_pernet(net);
127950
127951 - recent_net->xt_recent = proc_mkdir("xt_recent", net->proc_net);
127952 + recent_net->xt_recent = proc_mkdir_restrict("xt_recent", net->proc_net);
127953 if (!recent_net->xt_recent)
127954 return -ENOMEM;
127955 return 0;
127956 diff --git a/net/netfilter/xt_statistic.c b/net/netfilter/xt_statistic.c
127957 index 11de55e..f25e448 100644
127958 --- a/net/netfilter/xt_statistic.c
127959 +++ b/net/netfilter/xt_statistic.c
127960 @@ -19,7 +19,7 @@
127961 #include <linux/module.h>
127962
127963 struct xt_statistic_priv {
127964 - atomic_t count;
127965 + atomic_unchecked_t count;
127966 } ____cacheline_aligned_in_smp;
127967
127968 MODULE_LICENSE("GPL");
127969 @@ -42,9 +42,9 @@ statistic_mt(const struct sk_buff *skb, struct xt_action_param *par)
127970 break;
127971 case XT_STATISTIC_MODE_NTH:
127972 do {
127973 - oval = atomic_read(&info->master->count);
127974 + oval = atomic_read_unchecked(&info->master->count);
127975 nval = (oval == info->u.nth.every) ? 0 : oval + 1;
127976 - } while (atomic_cmpxchg(&info->master->count, oval, nval) != oval);
127977 + } while (atomic_cmpxchg_unchecked(&info->master->count, oval, nval) != oval);
127978 if (nval == 0)
127979 ret = !ret;
127980 break;
127981 @@ -64,7 +64,7 @@ static int statistic_mt_check(const struct xt_mtchk_param *par)
127982 info->master = kzalloc(sizeof(*info->master), GFP_KERNEL);
127983 if (info->master == NULL)
127984 return -ENOMEM;
127985 - atomic_set(&info->master->count, info->u.nth.count);
127986 + atomic_set_unchecked(&info->master->count, info->u.nth.count);
127987
127988 return 0;
127989 }
127990 diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
127991 index 59651af..45b9a6e 100644
127992 --- a/net/netlink/af_netlink.c
127993 +++ b/net/netlink/af_netlink.c
127994 @@ -287,7 +287,7 @@ static void netlink_overrun(struct sock *sk)
127995 sk->sk_error_report(sk);
127996 }
127997 }
127998 - atomic_inc(&sk->sk_drops);
127999 + atomic_inc_unchecked(&sk->sk_drops);
128000 }
128001
128002 static void netlink_rcv_wake(struct sock *sk)
128003 @@ -2876,7 +2876,9 @@ errout_skb:
128004
128005 int __netlink_dump_start(struct sock *ssk, struct sk_buff *skb,
128006 const struct nlmsghdr *nlh,
128007 - struct netlink_dump_control *control)
128008 + struct netlink_dump_control *control,
128009 + void *data,
128010 + struct module *module)
128011 {
128012 struct netlink_callback *cb;
128013 struct sock *sk;
128014 @@ -2908,7 +2910,7 @@ int __netlink_dump_start(struct sock *ssk, struct sk_buff *skb,
128015 goto error_unlock;
128016 }
128017 /* add reference of module which cb->dump belongs to */
128018 - if (!try_module_get(control->module)) {
128019 + if (!try_module_get(module)) {
128020 ret = -EPROTONOSUPPORT;
128021 goto error_unlock;
128022 }
128023 @@ -2918,8 +2920,8 @@ int __netlink_dump_start(struct sock *ssk, struct sk_buff *skb,
128024 cb->dump = control->dump;
128025 cb->done = control->done;
128026 cb->nlh = nlh;
128027 - cb->data = control->data;
128028 - cb->module = control->module;
128029 + cb->data = data;
128030 + cb->module = module;
128031 cb->min_dump_alloc = control->min_dump_alloc;
128032 cb->skb = skb;
128033
128034 @@ -3183,7 +3185,7 @@ static int netlink_seq_show(struct seq_file *seq, void *v)
128035 sk_wmem_alloc_get(s),
128036 nlk->cb_running,
128037 atomic_read(&s->sk_refcnt),
128038 - atomic_read(&s->sk_drops),
128039 + atomic_read_unchecked(&s->sk_drops),
128040 sock_i_ino(s)
128041 );
128042
128043 diff --git a/net/netlink/diag.c b/net/netlink/diag.c
128044 index 3ee63a3cf..d6df4d8 100644
128045 --- a/net/netlink/diag.c
128046 +++ b/net/netlink/diag.c
128047 @@ -209,7 +209,7 @@ static int netlink_diag_handler_dump(struct sk_buff *skb, struct nlmsghdr *h)
128048 return -EINVAL;
128049
128050 if (h->nlmsg_flags & NLM_F_DUMP) {
128051 - struct netlink_dump_control c = {
128052 + static struct netlink_dump_control c = {
128053 .dump = netlink_diag_dump,
128054 };
128055 return netlink_dump_start(net->diag_nlsk, skb, h, &c);
128056 diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c
128057 index bc0e504..9a71c81 100644
128058 --- a/net/netlink/genetlink.c
128059 +++ b/net/netlink/genetlink.c
128060 @@ -573,26 +573,24 @@ static int genl_family_rcv_msg(struct genl_family *family,
128061 return -EOPNOTSUPP;
128062
128063 if (!family->parallel_ops) {
128064 - struct netlink_dump_control c = {
128065 - .module = family->module,
128066 - /* we have const, but the netlink API doesn't */
128067 - .data = (void *)ops,
128068 + static struct netlink_dump_control c = {
128069 .dump = genl_lock_dumpit,
128070 .done = genl_lock_done,
128071 };
128072 + /* we have const, but the netlink API doesn't */
128073 + void *data = (void *)ops;
128074
128075 genl_unlock();
128076 - rc = __netlink_dump_start(net->genl_sock, skb, nlh, &c);
128077 + rc = __netlink_dump_start(net->genl_sock, skb, nlh, &c, data, family->module);
128078 genl_lock();
128079
128080 } else {
128081 - struct netlink_dump_control c = {
128082 - .module = family->module,
128083 + netlink_dump_control_no_const c = {
128084 .dump = ops->dumpit,
128085 .done = ops->done,
128086 };
128087
128088 - rc = __netlink_dump_start(net->genl_sock, skb, nlh, &c);
128089 + rc = __netlink_dump_start(net->genl_sock, skb, nlh, &c, NULL, family->module);
128090 }
128091
128092 return rc;
128093 diff --git a/net/openvswitch/actions.c b/net/openvswitch/actions.c
128094 index c88d0f2..2d59df5 100644
128095 --- a/net/openvswitch/actions.c
128096 +++ b/net/openvswitch/actions.c
128097 @@ -1160,17 +1160,26 @@ int ovs_execute_actions(struct datapath *dp, struct sk_buff *skb,
128098 const struct sw_flow_actions *acts,
128099 struct sw_flow_key *key)
128100 {
128101 - int level = this_cpu_read(exec_actions_level);
128102 - int err;
128103 + static const int ovs_recursion_limit = 5;
128104 + int err, level;
128105 +
128106 + level = __this_cpu_inc_return(exec_actions_level);
128107 + if (unlikely(level > ovs_recursion_limit)) {
128108 + net_crit_ratelimited("ovs: recursion limit reached on datapath %s, probable configuration error\n",
128109 + ovs_dp_name(dp));
128110 + kfree_skb(skb);
128111 + err = -ENETDOWN;
128112 + goto out;
128113 + }
128114
128115 - this_cpu_inc(exec_actions_level);
128116 err = do_execute_actions(dp, skb, key,
128117 acts->actions, acts->actions_len);
128118
128119 - if (!level)
128120 + if (level == 1)
128121 process_deferred_actions(dp);
128122
128123 - this_cpu_dec(exec_actions_level);
128124 +out:
128125 + __this_cpu_dec(exec_actions_level);
128126 return err;
128127 }
128128
128129 diff --git a/net/openvswitch/vport-internal_dev.c b/net/openvswitch/vport-internal_dev.c
128130 index ec76398..52091dd 100644
128131 --- a/net/openvswitch/vport-internal_dev.c
128132 +++ b/net/openvswitch/vport-internal_dev.c
128133 @@ -147,7 +147,7 @@ static const struct net_device_ops internal_dev_netdev_ops = {
128134 .ndo_get_stats64 = internal_get_stats,
128135 };
128136
128137 -static struct rtnl_link_ops internal_dev_link_ops __read_mostly = {
128138 +static struct rtnl_link_ops internal_dev_link_ops = {
128139 .kind = "openvswitch",
128140 };
128141
128142 diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
128143 index 992396a..9269534 100644
128144 --- a/net/packet/af_packet.c
128145 +++ b/net/packet/af_packet.c
128146 @@ -278,7 +278,7 @@ static int packet_direct_xmit(struct sk_buff *skb)
128147
128148 return ret;
128149 drop:
128150 - atomic_long_inc(&dev->tx_dropped);
128151 + atomic_long_inc_unchecked(&dev->tx_dropped);
128152 kfree_skb(skb);
128153 return NET_XMIT_DROP;
128154 }
128155 @@ -1392,9 +1392,9 @@ static unsigned int fanout_demux_rollover(struct packet_fanout *f,
128156 packet_rcv_has_room(po_next, skb) == ROOM_NORMAL) {
128157 if (i != j)
128158 po->rollover->sock = i;
128159 - atomic_long_inc(&po->rollover->num);
128160 + atomic_long_inc_unchecked(&po->rollover->num);
128161 if (room == ROOM_LOW)
128162 - atomic_long_inc(&po->rollover->num_huge);
128163 + atomic_long_inc_unchecked(&po->rollover->num_huge);
128164 return i;
128165 }
128166
128167 @@ -1402,7 +1402,7 @@ static unsigned int fanout_demux_rollover(struct packet_fanout *f,
128168 i = 0;
128169 } while (i != j);
128170
128171 - atomic_long_inc(&po->rollover->num_failed);
128172 + atomic_long_inc_unchecked(&po->rollover->num_failed);
128173 return idx;
128174 }
128175
128176 @@ -1657,9 +1657,9 @@ static int fanout_add(struct sock *sk, u16 id, u16 type_flags)
128177 po->rollover = kzalloc(sizeof(*po->rollover), GFP_KERNEL);
128178 if (!po->rollover)
128179 return -ENOMEM;
128180 - atomic_long_set(&po->rollover->num, 0);
128181 - atomic_long_set(&po->rollover->num_huge, 0);
128182 - atomic_long_set(&po->rollover->num_failed, 0);
128183 + atomic_long_set_unchecked(&po->rollover->num, 0);
128184 + atomic_long_set_unchecked(&po->rollover->num_huge, 0);
128185 + atomic_long_set_unchecked(&po->rollover->num_failed, 0);
128186 }
128187
128188 mutex_lock(&fanout_mutex);
128189 @@ -2071,7 +2071,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
128190 drop_n_acct:
128191 spin_lock(&sk->sk_receive_queue.lock);
128192 po->stats.stats1.tp_drops++;
128193 - atomic_inc(&sk->sk_drops);
128194 + atomic_inc_unchecked(&sk->sk_drops);
128195 spin_unlock(&sk->sk_receive_queue.lock);
128196
128197 drop_n_restore:
128198 @@ -3770,7 +3770,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
128199 case PACKET_HDRLEN:
128200 if (len > sizeof(int))
128201 len = sizeof(int);
128202 - if (copy_from_user(&val, optval, len))
128203 + if (len > sizeof(val) || copy_from_user(&val, optval, len))
128204 return -EFAULT;
128205 switch (val) {
128206 case TPACKET_V1:
128207 @@ -3805,9 +3805,9 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
128208 case PACKET_ROLLOVER_STATS:
128209 if (!po->rollover)
128210 return -EINVAL;
128211 - rstats.tp_all = atomic_long_read(&po->rollover->num);
128212 - rstats.tp_huge = atomic_long_read(&po->rollover->num_huge);
128213 - rstats.tp_failed = atomic_long_read(&po->rollover->num_failed);
128214 + rstats.tp_all = atomic_long_read_unchecked(&po->rollover->num);
128215 + rstats.tp_huge = atomic_long_read_unchecked(&po->rollover->num_huge);
128216 + rstats.tp_failed = atomic_long_read_unchecked(&po->rollover->num_failed);
128217 data = &rstats;
128218 lv = sizeof(rstats);
128219 break;
128220 @@ -3825,7 +3825,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
128221 len = lv;
128222 if (put_user(len, optlen))
128223 return -EFAULT;
128224 - if (copy_to_user(optval, data, len))
128225 + if (len > sizeof(st) || copy_to_user(optval, data, len))
128226 return -EFAULT;
128227 return 0;
128228 }
128229 diff --git a/net/packet/diag.c b/net/packet/diag.c
128230 index 0ed68f0..54c1dbe 100644
128231 --- a/net/packet/diag.c
128232 +++ b/net/packet/diag.c
128233 @@ -236,7 +236,7 @@ static int packet_diag_handler_dump(struct sk_buff *skb, struct nlmsghdr *h)
128234 return -EINVAL;
128235
128236 if (h->nlmsg_flags & NLM_F_DUMP) {
128237 - struct netlink_dump_control c = {
128238 + static struct netlink_dump_control c = {
128239 .dump = packet_diag_dump,
128240 };
128241 return netlink_dump_start(net->diag_nlsk, skb, h, &c);
128242 diff --git a/net/packet/internal.h b/net/packet/internal.h
128243 index 9ee4631..6b79352 100644
128244 --- a/net/packet/internal.h
128245 +++ b/net/packet/internal.h
128246 @@ -93,9 +93,9 @@ struct packet_fanout {
128247 struct packet_rollover {
128248 int sock;
128249 struct rcu_head rcu;
128250 - atomic_long_t num;
128251 - atomic_long_t num_huge;
128252 - atomic_long_t num_failed;
128253 + atomic_long_unchecked_t num;
128254 + atomic_long_unchecked_t num_huge;
128255 + atomic_long_unchecked_t num_failed;
128256 #define ROLLOVER_HLEN (L1_CACHE_BYTES / sizeof(u32))
128257 u32 history[ROLLOVER_HLEN] ____cacheline_aligned;
128258 } ____cacheline_aligned_in_smp;
128259 diff --git a/net/phonet/pep.c b/net/phonet/pep.c
128260 index 850a86c..8884a37 100644
128261 --- a/net/phonet/pep.c
128262 +++ b/net/phonet/pep.c
128263 @@ -388,7 +388,7 @@ static int pipe_do_rcv(struct sock *sk, struct sk_buff *skb)
128264
128265 case PNS_PEP_CTRL_REQ:
128266 if (skb_queue_len(&pn->ctrlreq_queue) >= PNPIPE_CTRLREQ_MAX) {
128267 - atomic_inc(&sk->sk_drops);
128268 + atomic_inc_unchecked(&sk->sk_drops);
128269 break;
128270 }
128271 __skb_pull(skb, 4);
128272 @@ -409,7 +409,7 @@ static int pipe_do_rcv(struct sock *sk, struct sk_buff *skb)
128273 }
128274
128275 if (pn->rx_credits == 0) {
128276 - atomic_inc(&sk->sk_drops);
128277 + atomic_inc_unchecked(&sk->sk_drops);
128278 err = -ENOBUFS;
128279 break;
128280 }
128281 @@ -579,7 +579,7 @@ static int pipe_handler_do_rcv(struct sock *sk, struct sk_buff *skb)
128282 }
128283
128284 if (pn->rx_credits == 0) {
128285 - atomic_inc(&sk->sk_drops);
128286 + atomic_inc_unchecked(&sk->sk_drops);
128287 err = NET_RX_DROP;
128288 break;
128289 }
128290 diff --git a/net/phonet/socket.c b/net/phonet/socket.c
128291 index d575ef4..1dedc31 100644
128292 --- a/net/phonet/socket.c
128293 +++ b/net/phonet/socket.c
128294 @@ -611,7 +611,7 @@ static int pn_sock_seq_show(struct seq_file *seq, void *v)
128295 from_kuid_munged(seq_user_ns(seq), sock_i_uid(sk)),
128296 sock_i_ino(sk),
128297 atomic_read(&sk->sk_refcnt), sk,
128298 - atomic_read(&sk->sk_drops));
128299 + atomic_read_unchecked(&sk->sk_drops));
128300 }
128301 seq_pad(seq, '\n');
128302 return 0;
128303 diff --git a/net/phonet/sysctl.c b/net/phonet/sysctl.c
128304 index c02a8c4..3c5b600 100644
128305 --- a/net/phonet/sysctl.c
128306 +++ b/net/phonet/sysctl.c
128307 @@ -67,7 +67,7 @@ static int proc_local_port_range(struct ctl_table *table, int write,
128308 {
128309 int ret;
128310 int range[2] = {local_port_range[0], local_port_range[1]};
128311 - struct ctl_table tmp = {
128312 + ctl_table_no_const tmp = {
128313 .data = &range,
128314 .maxlen = sizeof(range),
128315 .mode = table->mode,
128316 diff --git a/net/rds/cong.c b/net/rds/cong.c
128317 index e6144b8..4f9fda6 100644
128318 --- a/net/rds/cong.c
128319 +++ b/net/rds/cong.c
128320 @@ -78,7 +78,7 @@
128321 * finds that the saved generation number is smaller than the global generation
128322 * number, it wakes up the process.
128323 */
128324 -static atomic_t rds_cong_generation = ATOMIC_INIT(0);
128325 +static atomic_unchecked_t rds_cong_generation = ATOMIC_INIT(0);
128326
128327 /*
128328 * Congestion monitoring
128329 @@ -247,7 +247,7 @@ void rds_cong_map_updated(struct rds_cong_map *map, uint64_t portmask)
128330 rdsdebug("waking map %p for %pI4\n",
128331 map, &map->m_addr);
128332 rds_stats_inc(s_cong_update_received);
128333 - atomic_inc(&rds_cong_generation);
128334 + atomic_inc_unchecked(&rds_cong_generation);
128335 if (waitqueue_active(&map->m_waitq))
128336 wake_up(&map->m_waitq);
128337 if (waitqueue_active(&rds_poll_waitq))
128338 @@ -273,7 +273,7 @@ EXPORT_SYMBOL_GPL(rds_cong_map_updated);
128339
128340 int rds_cong_updated_since(unsigned long *recent)
128341 {
128342 - unsigned long gen = atomic_read(&rds_cong_generation);
128343 + unsigned long gen = atomic_read_unchecked(&rds_cong_generation);
128344
128345 if (likely(*recent == gen))
128346 return 0;
128347 diff --git a/net/rds/ib.h b/net/rds/ib.h
128348 index b3fdebb..43e973b 100644
128349 --- a/net/rds/ib.h
128350 +++ b/net/rds/ib.h
128351 @@ -156,7 +156,7 @@ struct rds_ib_connection {
128352 /* sending acks */
128353 unsigned long i_ack_flags;
128354 #ifdef KERNEL_HAS_ATOMIC64
128355 - atomic64_t i_ack_next; /* next ACK to send */
128356 + atomic64_unchecked_t i_ack_next; /* next ACK to send */
128357 #else
128358 spinlock_t i_ack_lock; /* protect i_ack_next */
128359 u64 i_ack_next; /* next ACK to send */
128360 diff --git a/net/rds/ib_cm.c b/net/rds/ib_cm.c
128361 index da5a7fb..1095491 100644
128362 --- a/net/rds/ib_cm.c
128363 +++ b/net/rds/ib_cm.c
128364 @@ -805,7 +805,7 @@ void rds_ib_conn_shutdown(struct rds_connection *conn)
128365 /* Clear the ACK state */
128366 clear_bit(IB_ACK_IN_FLIGHT, &ic->i_ack_flags);
128367 #ifdef KERNEL_HAS_ATOMIC64
128368 - atomic64_set(&ic->i_ack_next, 0);
128369 + atomic64_set_unchecked(&ic->i_ack_next, 0);
128370 #else
128371 ic->i_ack_next = 0;
128372 #endif
128373 diff --git a/net/rds/ib_recv.c b/net/rds/ib_recv.c
128374 index 977fb86..0d10a97 100644
128375 --- a/net/rds/ib_recv.c
128376 +++ b/net/rds/ib_recv.c
128377 @@ -623,7 +623,7 @@ static u64 rds_ib_get_ack(struct rds_ib_connection *ic)
128378 #else
128379 void rds_ib_set_ack(struct rds_ib_connection *ic, u64 seq, int ack_required)
128380 {
128381 - atomic64_set(&ic->i_ack_next, seq);
128382 + atomic64_set_unchecked(&ic->i_ack_next, seq);
128383 if (ack_required) {
128384 smp_mb__before_atomic();
128385 set_bit(IB_ACK_REQUESTED, &ic->i_ack_flags);
128386 @@ -635,7 +635,7 @@ static u64 rds_ib_get_ack(struct rds_ib_connection *ic)
128387 clear_bit(IB_ACK_REQUESTED, &ic->i_ack_flags);
128388 smp_mb__after_atomic();
128389
128390 - return atomic64_read(&ic->i_ack_next);
128391 + return atomic64_read_unchecked(&ic->i_ack_next);
128392 }
128393 #endif
128394
128395 diff --git a/net/rds/iw.h b/net/rds/iw.h
128396 index 5af01d1..29d5f61 100644
128397 --- a/net/rds/iw.h
128398 +++ b/net/rds/iw.h
128399 @@ -137,7 +137,7 @@ struct rds_iw_connection {
128400 /* sending acks */
128401 unsigned long i_ack_flags;
128402 #ifdef KERNEL_HAS_ATOMIC64
128403 - atomic64_t i_ack_next; /* next ACK to send */
128404 + atomic64_unchecked_t i_ack_next; /* next ACK to send */
128405 #else
128406 spinlock_t i_ack_lock; /* protect i_ack_next */
128407 u64 i_ack_next; /* next ACK to send */
128408 diff --git a/net/rds/iw_cm.c b/net/rds/iw_cm.c
128409 index aea4c91..716ba52 100644
128410 --- a/net/rds/iw_cm.c
128411 +++ b/net/rds/iw_cm.c
128412 @@ -667,7 +667,7 @@ void rds_iw_conn_shutdown(struct rds_connection *conn)
128413 /* Clear the ACK state */
128414 clear_bit(IB_ACK_IN_FLIGHT, &ic->i_ack_flags);
128415 #ifdef KERNEL_HAS_ATOMIC64
128416 - atomic64_set(&ic->i_ack_next, 0);
128417 + atomic64_set_unchecked(&ic->i_ack_next, 0);
128418 #else
128419 ic->i_ack_next = 0;
128420 #endif
128421 diff --git a/net/rds/iw_recv.c b/net/rds/iw_recv.c
128422 index a66d179..cf1e258 100644
128423 --- a/net/rds/iw_recv.c
128424 +++ b/net/rds/iw_recv.c
128425 @@ -412,7 +412,7 @@ static u64 rds_iw_get_ack(struct rds_iw_connection *ic)
128426 static void rds_iw_set_ack(struct rds_iw_connection *ic, u64 seq,
128427 int ack_required)
128428 {
128429 - atomic64_set(&ic->i_ack_next, seq);
128430 + atomic64_set_unchecked(&ic->i_ack_next, seq);
128431 if (ack_required) {
128432 smp_mb__before_atomic();
128433 set_bit(IB_ACK_REQUESTED, &ic->i_ack_flags);
128434 @@ -424,7 +424,7 @@ static u64 rds_iw_get_ack(struct rds_iw_connection *ic)
128435 clear_bit(IB_ACK_REQUESTED, &ic->i_ack_flags);
128436 smp_mb__after_atomic();
128437
128438 - return atomic64_read(&ic->i_ack_next);
128439 + return atomic64_read_unchecked(&ic->i_ack_next);
128440 }
128441 #endif
128442
128443 diff --git a/net/rds/rds.h b/net/rds/rds.h
128444 index 0e2797b..a4a38ff 100644
128445 --- a/net/rds/rds.h
128446 +++ b/net/rds/rds.h
128447 @@ -463,7 +463,7 @@ struct rds_transport {
128448 void (*sync_mr)(void *trans_private, int direction);
128449 void (*free_mr)(void *trans_private, int invalidate);
128450 void (*flush_mrs)(void);
128451 -};
128452 +} __do_const;
128453
128454 struct rds_sock {
128455 struct sock rs_sk;
128456 diff --git a/net/rds/tcp.c b/net/rds/tcp.c
128457 index 9d6ddba..da3cd96 100644
128458 --- a/net/rds/tcp.c
128459 +++ b/net/rds/tcp.c
128460 @@ -62,7 +62,7 @@ void rds_tcp_nonagle(struct socket *sock)
128461 int val = 1;
128462
128463 set_fs(KERNEL_DS);
128464 - sock->ops->setsockopt(sock, SOL_TCP, TCP_NODELAY, (char __user *)&val,
128465 + sock->ops->setsockopt(sock, SOL_TCP, TCP_NODELAY, (char __force_user *)&val,
128466 sizeof(val));
128467 set_fs(oldfs);
128468 }
128469 diff --git a/net/rds/tcp_send.c b/net/rds/tcp_send.c
128470 index 2894e60..f9c01ac 100644
128471 --- a/net/rds/tcp_send.c
128472 +++ b/net/rds/tcp_send.c
128473 @@ -43,7 +43,7 @@ static void rds_tcp_cork(struct socket *sock, int val)
128474
128475 oldfs = get_fs();
128476 set_fs(KERNEL_DS);
128477 - sock->ops->setsockopt(sock, SOL_TCP, TCP_CORK, (char __user *)&val,
128478 + sock->ops->setsockopt(sock, SOL_TCP, TCP_CORK, (char __force_user *)&val,
128479 sizeof(val));
128480 set_fs(oldfs);
128481 }
128482 diff --git a/net/rxrpc/af_rxrpc.c b/net/rxrpc/af_rxrpc.c
128483 index 1f8a144..2c93350 100644
128484 --- a/net/rxrpc/af_rxrpc.c
128485 +++ b/net/rxrpc/af_rxrpc.c
128486 @@ -40,7 +40,7 @@ static const struct proto_ops rxrpc_rpc_ops;
128487 __be32 rxrpc_epoch;
128488
128489 /* current debugging ID */
128490 -atomic_t rxrpc_debug_id;
128491 +atomic_unchecked_t rxrpc_debug_id;
128492
128493 /* count of skbs currently in use */
128494 atomic_t rxrpc_n_skbs;
128495 diff --git a/net/rxrpc/ar-ack.c b/net/rxrpc/ar-ack.c
128496 index adc555e..abb87bf 100644
128497 --- a/net/rxrpc/ar-ack.c
128498 +++ b/net/rxrpc/ar-ack.c
128499 @@ -224,7 +224,7 @@ static void rxrpc_resend(struct rxrpc_call *call)
128500
128501 _enter("{%d,%d,%d,%d},",
128502 call->acks_hard, call->acks_unacked,
128503 - atomic_read(&call->sequence),
128504 + atomic_read_unchecked(&call->sequence),
128505 CIRC_CNT(call->acks_head, call->acks_tail, call->acks_winsz));
128506
128507 stop = false;
128508 @@ -248,7 +248,7 @@ static void rxrpc_resend(struct rxrpc_call *call)
128509
128510 /* each Tx packet has a new serial number */
128511 sp->hdr.serial =
128512 - htonl(atomic_inc_return(&call->conn->serial));
128513 + htonl(atomic_inc_return_unchecked(&call->conn->serial));
128514
128515 hdr = (struct rxrpc_header *) txb->head;
128516 hdr->serial = sp->hdr.serial;
128517 @@ -452,7 +452,7 @@ static void rxrpc_rotate_tx_window(struct rxrpc_call *call, u32 hard)
128518 */
128519 static void rxrpc_clear_tx_window(struct rxrpc_call *call)
128520 {
128521 - rxrpc_rotate_tx_window(call, atomic_read(&call->sequence));
128522 + rxrpc_rotate_tx_window(call, atomic_read_unchecked(&call->sequence));
128523 }
128524
128525 /*
128526 @@ -678,7 +678,7 @@ process_further:
128527
128528 latest = ntohl(sp->hdr.serial);
128529 hard = ntohl(ack.firstPacket);
128530 - tx = atomic_read(&call->sequence);
128531 + tx = atomic_read_unchecked(&call->sequence);
128532
128533 _proto("Rx ACK %%%u { m=%hu f=#%u p=#%u s=%%%u r=%s n=%u }",
128534 latest,
128535 @@ -1212,7 +1212,7 @@ void rxrpc_process_call(struct work_struct *work)
128536 goto maybe_reschedule;
128537
128538 send_ACK_with_skew:
128539 - ack.maxSkew = htons(atomic_read(&call->conn->hi_serial) -
128540 + ack.maxSkew = htons(atomic_read_unchecked(&call->conn->hi_serial) -
128541 ntohl(ack.serial));
128542 send_ACK:
128543 mtu = call->conn->trans->peer->if_mtu;
128544 @@ -1224,7 +1224,7 @@ send_ACK:
128545 ackinfo.rxMTU = htonl(rxrpc_rx_mtu);
128546 ackinfo.jumbo_max = htonl(rxrpc_rx_jumbo_max);
128547
128548 - hdr.serial = htonl(atomic_inc_return(&call->conn->serial));
128549 + hdr.serial = htonl(atomic_inc_return_unchecked(&call->conn->serial));
128550 _proto("Tx ACK %%%u { m=%hu f=#%u p=#%u s=%%%u r=%s n=%u }",
128551 ntohl(hdr.serial),
128552 ntohs(ack.maxSkew),
128553 @@ -1242,7 +1242,7 @@ send_ACK:
128554 send_message:
128555 _debug("send message");
128556
128557 - hdr.serial = htonl(atomic_inc_return(&call->conn->serial));
128558 + hdr.serial = htonl(atomic_inc_return_unchecked(&call->conn->serial));
128559 _proto("Tx %s %%%u", rxrpc_pkts[hdr.type], ntohl(hdr.serial));
128560 send_message_2:
128561
128562 diff --git a/net/rxrpc/ar-call.c b/net/rxrpc/ar-call.c
128563 index a9e05db..194e793 100644
128564 --- a/net/rxrpc/ar-call.c
128565 +++ b/net/rxrpc/ar-call.c
128566 @@ -232,7 +232,7 @@ static struct rxrpc_call *rxrpc_alloc_call(gfp_t gfp)
128567 spin_lock_init(&call->lock);
128568 rwlock_init(&call->state_lock);
128569 atomic_set(&call->usage, 1);
128570 - call->debug_id = atomic_inc_return(&rxrpc_debug_id);
128571 + call->debug_id = atomic_inc_return_unchecked(&rxrpc_debug_id);
128572 call->state = RXRPC_CALL_CLIENT_SEND_REQUEST;
128573
128574 memset(&call->sock_node, 0xed, sizeof(call->sock_node));
128575 diff --git a/net/rxrpc/ar-connection.c b/net/rxrpc/ar-connection.c
128576 index 6c71ed1..2e59425 100644
128577 --- a/net/rxrpc/ar-connection.c
128578 +++ b/net/rxrpc/ar-connection.c
128579 @@ -210,7 +210,7 @@ static struct rxrpc_connection *rxrpc_alloc_connection(gfp_t gfp)
128580 rwlock_init(&conn->lock);
128581 spin_lock_init(&conn->state_lock);
128582 atomic_set(&conn->usage, 1);
128583 - conn->debug_id = atomic_inc_return(&rxrpc_debug_id);
128584 + conn->debug_id = atomic_inc_return_unchecked(&rxrpc_debug_id);
128585 conn->avail_calls = RXRPC_MAXCALLS;
128586 conn->size_align = 4;
128587 conn->header_size = sizeof(struct rxrpc_header);
128588 diff --git a/net/rxrpc/ar-connevent.c b/net/rxrpc/ar-connevent.c
128589 index e7ed43a..6afa140 100644
128590 --- a/net/rxrpc/ar-connevent.c
128591 +++ b/net/rxrpc/ar-connevent.c
128592 @@ -109,7 +109,7 @@ static int rxrpc_abort_connection(struct rxrpc_connection *conn,
128593
128594 len = iov[0].iov_len + iov[1].iov_len;
128595
128596 - hdr.serial = htonl(atomic_inc_return(&conn->serial));
128597 + hdr.serial = htonl(atomic_inc_return_unchecked(&conn->serial));
128598 _proto("Tx CONN ABORT %%%u { %d }", ntohl(hdr.serial), abort_code);
128599
128600 ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 2, len);
128601 diff --git a/net/rxrpc/ar-input.c b/net/rxrpc/ar-input.c
128602 index 4505a69..fe73096 100644
128603 --- a/net/rxrpc/ar-input.c
128604 +++ b/net/rxrpc/ar-input.c
128605 @@ -331,9 +331,9 @@ void rxrpc_fast_process_packet(struct rxrpc_call *call, struct sk_buff *skb)
128606 /* track the latest serial number on this connection for ACK packet
128607 * information */
128608 serial = ntohl(sp->hdr.serial);
128609 - hi_serial = atomic_read(&call->conn->hi_serial);
128610 + hi_serial = atomic_read_unchecked(&call->conn->hi_serial);
128611 while (serial > hi_serial)
128612 - hi_serial = atomic_cmpxchg(&call->conn->hi_serial, hi_serial,
128613 + hi_serial = atomic_cmpxchg_unchecked(&call->conn->hi_serial, hi_serial,
128614 serial);
128615
128616 /* request ACK generation for any ACK or DATA packet that requests
128617 diff --git a/net/rxrpc/ar-internal.h b/net/rxrpc/ar-internal.h
128618 index 2934a73..a0091f5 100644
128619 --- a/net/rxrpc/ar-internal.h
128620 +++ b/net/rxrpc/ar-internal.h
128621 @@ -274,8 +274,8 @@ struct rxrpc_connection {
128622 int error; /* error code for local abort */
128623 int debug_id; /* debug ID for printks */
128624 unsigned int call_counter; /* call ID counter */
128625 - atomic_t serial; /* packet serial number counter */
128626 - atomic_t hi_serial; /* highest serial number received */
128627 + atomic_unchecked_t serial; /* packet serial number counter */
128628 + atomic_unchecked_t hi_serial; /* highest serial number received */
128629 u8 avail_calls; /* number of calls available */
128630 u8 size_align; /* data size alignment (for security) */
128631 u8 header_size; /* rxrpc + security header size */
128632 @@ -348,7 +348,7 @@ struct rxrpc_call {
128633 spinlock_t lock;
128634 rwlock_t state_lock; /* lock for state transition */
128635 atomic_t usage;
128636 - atomic_t sequence; /* Tx data packet sequence counter */
128637 + atomic_unchecked_t sequence; /* Tx data packet sequence counter */
128638 u32 abort_code; /* local/remote abort code */
128639 enum { /* current state of call */
128640 RXRPC_CALL_CLIENT_SEND_REQUEST, /* - client sending request phase */
128641 @@ -433,7 +433,7 @@ static inline void rxrpc_abort_call(struct rxrpc_call *call, u32 abort_code)
128642 */
128643 extern atomic_t rxrpc_n_skbs;
128644 extern __be32 rxrpc_epoch;
128645 -extern atomic_t rxrpc_debug_id;
128646 +extern atomic_unchecked_t rxrpc_debug_id;
128647 extern struct workqueue_struct *rxrpc_workqueue;
128648
128649 /*
128650 diff --git a/net/rxrpc/ar-local.c b/net/rxrpc/ar-local.c
128651 index 78483b4..b1c0e1e 100644
128652 --- a/net/rxrpc/ar-local.c
128653 +++ b/net/rxrpc/ar-local.c
128654 @@ -53,7 +53,7 @@ struct rxrpc_local *rxrpc_alloc_local(struct sockaddr_rxrpc *srx)
128655 spin_lock_init(&local->lock);
128656 rwlock_init(&local->services_lock);
128657 atomic_set(&local->usage, 1);
128658 - local->debug_id = atomic_inc_return(&rxrpc_debug_id);
128659 + local->debug_id = atomic_inc_return_unchecked(&rxrpc_debug_id);
128660 memcpy(&local->srx, srx, sizeof(*srx));
128661 }
128662
128663 diff --git a/net/rxrpc/ar-output.c b/net/rxrpc/ar-output.c
128664 index 14c4e12..971ba8b 100644
128665 --- a/net/rxrpc/ar-output.c
128666 +++ b/net/rxrpc/ar-output.c
128667 @@ -648,14 +648,14 @@ static int rxrpc_send_data(struct rxrpc_sock *rx,
128668 memset(skb_put(skb, pad), 0, pad);
128669 }
128670
128671 - seq = atomic_inc_return(&call->sequence);
128672 + seq = atomic_inc_return_unchecked(&call->sequence);
128673
128674 sp->hdr.epoch = conn->epoch;
128675 sp->hdr.cid = call->cid;
128676 sp->hdr.callNumber = call->call_id;
128677 sp->hdr.seq = htonl(seq);
128678 sp->hdr.serial =
128679 - htonl(atomic_inc_return(&conn->serial));
128680 + htonl(atomic_inc_return_unchecked(&conn->serial));
128681 sp->hdr.type = RXRPC_PACKET_TYPE_DATA;
128682 sp->hdr.userStatus = 0;
128683 sp->hdr.securityIndex = conn->security_ix;
128684 diff --git a/net/rxrpc/ar-peer.c b/net/rxrpc/ar-peer.c
128685 index bebaa43..2644591 100644
128686 --- a/net/rxrpc/ar-peer.c
128687 +++ b/net/rxrpc/ar-peer.c
128688 @@ -72,7 +72,7 @@ static struct rxrpc_peer *rxrpc_alloc_peer(struct sockaddr_rxrpc *srx,
128689 INIT_LIST_HEAD(&peer->error_targets);
128690 spin_lock_init(&peer->lock);
128691 atomic_set(&peer->usage, 1);
128692 - peer->debug_id = atomic_inc_return(&rxrpc_debug_id);
128693 + peer->debug_id = atomic_inc_return_unchecked(&rxrpc_debug_id);
128694 memcpy(&peer->srx, srx, sizeof(*srx));
128695
128696 rxrpc_assess_MTU_size(peer);
128697 diff --git a/net/rxrpc/ar-proc.c b/net/rxrpc/ar-proc.c
128698 index 38047f7..9f48511 100644
128699 --- a/net/rxrpc/ar-proc.c
128700 +++ b/net/rxrpc/ar-proc.c
128701 @@ -164,8 +164,8 @@ static int rxrpc_connection_seq_show(struct seq_file *seq, void *v)
128702 atomic_read(&conn->usage),
128703 rxrpc_conn_states[conn->state],
128704 key_serial(conn->key),
128705 - atomic_read(&conn->serial),
128706 - atomic_read(&conn->hi_serial));
128707 + atomic_read_unchecked(&conn->serial),
128708 + atomic_read_unchecked(&conn->hi_serial));
128709
128710 return 0;
128711 }
128712 diff --git a/net/rxrpc/ar-transport.c b/net/rxrpc/ar-transport.c
128713 index 9946467..9dfbccb 100644
128714 --- a/net/rxrpc/ar-transport.c
128715 +++ b/net/rxrpc/ar-transport.c
128716 @@ -51,7 +51,7 @@ static struct rxrpc_transport *rxrpc_alloc_transport(struct rxrpc_local *local,
128717 spin_lock_init(&trans->client_lock);
128718 rwlock_init(&trans->conn_lock);
128719 atomic_set(&trans->usage, 1);
128720 - trans->debug_id = atomic_inc_return(&rxrpc_debug_id);
128721 + trans->debug_id = atomic_inc_return_unchecked(&rxrpc_debug_id);
128722
128723 if (peer->srx.transport.family == AF_INET) {
128724 switch (peer->srx.transport_type) {
128725 diff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c
128726 index d7a9ab5..3b6d126 100644
128727 --- a/net/rxrpc/rxkad.c
128728 +++ b/net/rxrpc/rxkad.c
128729 @@ -610,7 +610,7 @@ static int rxkad_issue_challenge(struct rxrpc_connection *conn)
128730
128731 len = iov[0].iov_len + iov[1].iov_len;
128732
128733 - hdr.serial = htonl(atomic_inc_return(&conn->serial));
128734 + hdr.serial = htonl(atomic_inc_return_unchecked(&conn->serial));
128735 _proto("Tx CHALLENGE %%%u", ntohl(hdr.serial));
128736
128737 ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 2, len);
128738 @@ -660,7 +660,7 @@ static int rxkad_send_response(struct rxrpc_connection *conn,
128739
128740 len = iov[0].iov_len + iov[1].iov_len + iov[2].iov_len;
128741
128742 - hdr->serial = htonl(atomic_inc_return(&conn->serial));
128743 + hdr->serial = htonl(atomic_inc_return_unchecked(&conn->serial));
128744 _proto("Tx RESPONSE %%%u", ntohl(hdr->serial));
128745
128746 ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 3, len);
128747 diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
128748 index 16bc83b..a7df216b 100644
128749 --- a/net/sched/sch_generic.c
128750 +++ b/net/sched/sch_generic.c
128751 @@ -349,7 +349,7 @@ void netif_carrier_on(struct net_device *dev)
128752 if (test_and_clear_bit(__LINK_STATE_NOCARRIER, &dev->state)) {
128753 if (dev->reg_state == NETREG_UNINITIALIZED)
128754 return;
128755 - atomic_inc(&dev->carrier_changes);
128756 + atomic_inc_unchecked(&dev->carrier_changes);
128757 linkwatch_fire_event(dev);
128758 if (netif_running(dev))
128759 __netdev_watchdog_up(dev);
128760 @@ -368,7 +368,7 @@ void netif_carrier_off(struct net_device *dev)
128761 if (!test_and_set_bit(__LINK_STATE_NOCARRIER, &dev->state)) {
128762 if (dev->reg_state == NETREG_UNINITIALIZED)
128763 return;
128764 - atomic_inc(&dev->carrier_changes);
128765 + atomic_inc_unchecked(&dev->carrier_changes);
128766 linkwatch_fire_event(dev);
128767 }
128768 }
128769 diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c
128770 index ec52912..059504b 100644
128771 --- a/net/sctp/ipv6.c
128772 +++ b/net/sctp/ipv6.c
128773 @@ -987,7 +987,7 @@ static const struct inet6_protocol sctpv6_protocol = {
128774 .flags = INET6_PROTO_NOPOLICY | INET6_PROTO_FINAL,
128775 };
128776
128777 -static struct sctp_af sctp_af_inet6 = {
128778 +static struct sctp_af sctp_af_inet6 __read_only = {
128779 .sa_family = AF_INET6,
128780 .sctp_xmit = sctp_v6_xmit,
128781 .setsockopt = ipv6_setsockopt,
128782 @@ -1017,7 +1017,7 @@ static struct sctp_af sctp_af_inet6 = {
128783 #endif
128784 };
128785
128786 -static struct sctp_pf sctp_pf_inet6 = {
128787 +static struct sctp_pf sctp_pf_inet6 __read_only = {
128788 .event_msgname = sctp_inet6_event_msgname,
128789 .skb_msgname = sctp_inet6_skb_msgname,
128790 .af_supported = sctp_inet6_af_supported,
128791 @@ -1044,7 +1044,7 @@ void sctp_v6_pf_init(void)
128792
128793 void sctp_v6_pf_exit(void)
128794 {
128795 - list_del(&sctp_af_inet6.list);
128796 + pax_list_del(&sctp_af_inet6.list);
128797 }
128798
128799 /* Initialize IPv6 support and register with socket layer. */
128800 diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c
128801 index 8b4ff31..92b21ee 100644
128802 --- a/net/sctp/protocol.c
128803 +++ b/net/sctp/protocol.c
128804 @@ -858,8 +858,10 @@ int sctp_register_af(struct sctp_af *af)
128805 return 0;
128806 }
128807
128808 + pax_open_kernel();
128809 INIT_LIST_HEAD(&af->list);
128810 - list_add_tail(&af->list, &sctp_address_families);
128811 + pax_close_kernel();
128812 + pax_list_add_tail(&af->list, &sctp_address_families);
128813 return 1;
128814 }
128815
128816 @@ -989,7 +991,7 @@ static inline int sctp_v4_xmit(struct sk_buff *skb,
128817
128818 static struct sctp_af sctp_af_inet;
128819
128820 -static struct sctp_pf sctp_pf_inet = {
128821 +static struct sctp_pf sctp_pf_inet __read_only = {
128822 .event_msgname = sctp_inet_event_msgname,
128823 .skb_msgname = sctp_inet_skb_msgname,
128824 .af_supported = sctp_inet_af_supported,
128825 @@ -1061,7 +1063,7 @@ static const struct net_protocol sctp_protocol = {
128826 };
128827
128828 /* IPv4 address related functions. */
128829 -static struct sctp_af sctp_af_inet = {
128830 +static struct sctp_af sctp_af_inet __read_only = {
128831 .sa_family = AF_INET,
128832 .sctp_xmit = sctp_v4_xmit,
128833 .setsockopt = ip_setsockopt,
128834 @@ -1145,7 +1147,7 @@ static void sctp_v4_pf_init(void)
128835
128836 static void sctp_v4_pf_exit(void)
128837 {
128838 - list_del(&sctp_af_inet.list);
128839 + pax_list_del(&sctp_af_inet.list);
128840 }
128841
128842 static int sctp_v4_protosw_init(void)
128843 diff --git a/net/sctp/sm_sideeffect.c b/net/sctp/sm_sideeffect.c
128844 index 6098d4c..9920c54 100644
128845 --- a/net/sctp/sm_sideeffect.c
128846 +++ b/net/sctp/sm_sideeffect.c
128847 @@ -63,7 +63,7 @@ static int sctp_cmd_interpreter(sctp_event_t event_type,
128848 static int sctp_side_effects(sctp_event_t event_type, sctp_subtype_t subtype,
128849 sctp_state_t state,
128850 struct sctp_endpoint *ep,
128851 - struct sctp_association *asoc,
128852 + struct sctp_association **asoc,
128853 void *event_arg,
128854 sctp_disposition_t status,
128855 sctp_cmd_seq_t *commands,
128856 @@ -443,7 +443,7 @@ static void sctp_generate_sack_event(unsigned long data)
128857 sctp_generate_timeout_event(asoc, SCTP_EVENT_TIMEOUT_SACK);
128858 }
128859
128860 -sctp_timer_event_t *sctp_timer_events[SCTP_NUM_TIMEOUT_TYPES] = {
128861 +sctp_timer_event_t * const sctp_timer_events[SCTP_NUM_TIMEOUT_TYPES] = {
128862 NULL,
128863 sctp_generate_t1_cookie_event,
128864 sctp_generate_t1_init_event,
128865 @@ -1123,7 +1123,7 @@ int sctp_do_sm(struct net *net, sctp_event_t event_type, sctp_subtype_t subtype,
128866 debug_post_sfn();
128867
128868 error = sctp_side_effects(event_type, subtype, state,
128869 - ep, asoc, event_arg, status,
128870 + ep, &asoc, event_arg, status,
128871 &commands, gfp);
128872 debug_post_sfx();
128873
128874 @@ -1136,7 +1136,7 @@ int sctp_do_sm(struct net *net, sctp_event_t event_type, sctp_subtype_t subtype,
128875 static int sctp_side_effects(sctp_event_t event_type, sctp_subtype_t subtype,
128876 sctp_state_t state,
128877 struct sctp_endpoint *ep,
128878 - struct sctp_association *asoc,
128879 + struct sctp_association **asoc,
128880 void *event_arg,
128881 sctp_disposition_t status,
128882 sctp_cmd_seq_t *commands,
128883 @@ -1151,7 +1151,7 @@ static int sctp_side_effects(sctp_event_t event_type, sctp_subtype_t subtype,
128884 * disposition SCTP_DISPOSITION_CONSUME.
128885 */
128886 if (0 != (error = sctp_cmd_interpreter(event_type, subtype, state,
128887 - ep, asoc,
128888 + ep, *asoc,
128889 event_arg, status,
128890 commands, gfp)))
128891 goto bail;
128892 @@ -1174,11 +1174,12 @@ static int sctp_side_effects(sctp_event_t event_type, sctp_subtype_t subtype,
128893 break;
128894
128895 case SCTP_DISPOSITION_DELETE_TCB:
128896 + case SCTP_DISPOSITION_ABORT:
128897 /* This should now be a command. */
128898 + *asoc = NULL;
128899 break;
128900
128901 case SCTP_DISPOSITION_CONSUME:
128902 - case SCTP_DISPOSITION_ABORT:
128903 /*
128904 * We should no longer have much work to do here as the
128905 * real work has been done as explicit commands above.
128906 diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c
128907 index 22c2bf3..f1f08c8 100644
128908 --- a/net/sctp/sm_statefuns.c
128909 +++ b/net/sctp/sm_statefuns.c
128910 @@ -2976,7 +2976,7 @@ sctp_disposition_t sctp_sf_eat_data_6_2(struct net *net,
128911 SCTP_INC_STATS(net, SCTP_MIB_IN_DATA_CHUNK_DISCARDS);
128912 goto discard_force;
128913 case SCTP_IERROR_NO_DATA:
128914 - goto consume;
128915 + return SCTP_DISPOSITION_ABORT;
128916 case SCTP_IERROR_PROTO_VIOLATION:
128917 return sctp_sf_abort_violation(net, ep, asoc, chunk, commands,
128918 (u8 *)chunk->subh.data_hdr, sizeof(sctp_datahdr_t));
128919 @@ -3043,9 +3043,6 @@ discard_noforce:
128920 sctp_add_cmd_sf(commands, SCTP_CMD_GEN_SACK, force);
128921
128922 return SCTP_DISPOSITION_DISCARD;
128923 -consume:
128924 - return SCTP_DISPOSITION_CONSUME;
128925 -
128926 }
128927
128928 /*
128929 @@ -3093,7 +3090,7 @@ sctp_disposition_t sctp_sf_eat_data_fast_4_4(struct net *net,
128930 case SCTP_IERROR_BAD_STREAM:
128931 break;
128932 case SCTP_IERROR_NO_DATA:
128933 - goto consume;
128934 + return SCTP_DISPOSITION_ABORT;
128935 case SCTP_IERROR_PROTO_VIOLATION:
128936 return sctp_sf_abort_violation(net, ep, asoc, chunk, commands,
128937 (u8 *)chunk->subh.data_hdr, sizeof(sctp_datahdr_t));
128938 @@ -3119,7 +3116,6 @@ sctp_disposition_t sctp_sf_eat_data_fast_4_4(struct net *net,
128939 SCTP_TO(SCTP_EVENT_TIMEOUT_T2_SHUTDOWN));
128940 }
128941
128942 -consume:
128943 return SCTP_DISPOSITION_CONSUME;
128944 }
128945
128946 @@ -4825,9 +4821,6 @@ sctp_disposition_t sctp_sf_do_9_1_prm_abort(
128947 * if necessary to fill gaps.
128948 */
128949 struct sctp_chunk *abort = arg;
128950 - sctp_disposition_t retval;
128951 -
128952 - retval = SCTP_DISPOSITION_CONSUME;
128953
128954 if (abort)
128955 sctp_add_cmd_sf(commands, SCTP_CMD_REPLY, SCTP_CHUNK(abort));
128956 @@ -4845,7 +4838,7 @@ sctp_disposition_t sctp_sf_do_9_1_prm_abort(
128957 SCTP_INC_STATS(net, SCTP_MIB_ABORTEDS);
128958 SCTP_DEC_STATS(net, SCTP_MIB_CURRESTAB);
128959
128960 - return retval;
128961 + return SCTP_DISPOSITION_ABORT;
128962 }
128963
128964 /* We tried an illegal operation on an association which is closed. */
128965 @@ -4960,12 +4953,10 @@ sctp_disposition_t sctp_sf_cookie_wait_prm_abort(
128966 sctp_cmd_seq_t *commands)
128967 {
128968 struct sctp_chunk *abort = arg;
128969 - sctp_disposition_t retval;
128970
128971 /* Stop T1-init timer */
128972 sctp_add_cmd_sf(commands, SCTP_CMD_TIMER_STOP,
128973 SCTP_TO(SCTP_EVENT_TIMEOUT_T1_INIT));
128974 - retval = SCTP_DISPOSITION_CONSUME;
128975
128976 if (abort)
128977 sctp_add_cmd_sf(commands, SCTP_CMD_REPLY, SCTP_CHUNK(abort));
128978 @@ -4985,7 +4976,7 @@ sctp_disposition_t sctp_sf_cookie_wait_prm_abort(
128979 sctp_add_cmd_sf(commands, SCTP_CMD_INIT_FAILED,
128980 SCTP_PERR(SCTP_ERROR_USER_ABORT));
128981
128982 - return retval;
128983 + return SCTP_DISPOSITION_ABORT;
128984 }
128985
128986 /*
128987 diff --git a/net/sctp/socket.c b/net/sctp/socket.c
128988 index be1489f..5364cd7 100644
128989 --- a/net/sctp/socket.c
128990 +++ b/net/sctp/socket.c
128991 @@ -2192,11 +2192,13 @@ static int sctp_setsockopt_events(struct sock *sk, char __user *optval,
128992 {
128993 struct sctp_association *asoc;
128994 struct sctp_ulpevent *event;
128995 + struct sctp_event_subscribe subscribe;
128996
128997 if (optlen > sizeof(struct sctp_event_subscribe))
128998 return -EINVAL;
128999 - if (copy_from_user(&sctp_sk(sk)->subscribe, optval, optlen))
129000 + if (copy_from_user(&subscribe, optval, optlen))
129001 return -EFAULT;
129002 + sctp_sk(sk)->subscribe = subscribe;
129003
129004 /* At the time when a user app subscribes to SCTP_SENDER_DRY_EVENT,
129005 * if there is no data to be sent or retransmit, the stack will
129006 @@ -4371,13 +4373,16 @@ static int sctp_getsockopt_disable_fragments(struct sock *sk, int len,
129007 static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval,
129008 int __user *optlen)
129009 {
129010 + struct sctp_event_subscribe subscribe;
129011 +
129012 if (len <= 0)
129013 return -EINVAL;
129014 if (len > sizeof(struct sctp_event_subscribe))
129015 len = sizeof(struct sctp_event_subscribe);
129016 if (put_user(len, optlen))
129017 return -EFAULT;
129018 - if (copy_to_user(optval, &sctp_sk(sk)->subscribe, len))
129019 + subscribe = sctp_sk(sk)->subscribe;
129020 + if (copy_to_user(optval, &subscribe, len))
129021 return -EFAULT;
129022 return 0;
129023 }
129024 @@ -4395,6 +4400,8 @@ static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval,
129025 */
129026 static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optval, int __user *optlen)
129027 {
129028 + __u32 autoclose;
129029 +
129030 /* Applicable to UDP-style socket only */
129031 if (sctp_style(sk, TCP))
129032 return -EOPNOTSUPP;
129033 @@ -4403,7 +4410,8 @@ static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optv
129034 len = sizeof(int);
129035 if (put_user(len, optlen))
129036 return -EFAULT;
129037 - if (copy_to_user(optval, &sctp_sk(sk)->autoclose, sizeof(int)))
129038 + autoclose = sctp_sk(sk)->autoclose;
129039 + if (copy_to_user(optval, &autoclose, sizeof(int)))
129040 return -EFAULT;
129041 return 0;
129042 }
129043 @@ -4777,12 +4785,15 @@ static int sctp_getsockopt_delayed_ack(struct sock *sk, int len,
129044 */
129045 static int sctp_getsockopt_initmsg(struct sock *sk, int len, char __user *optval, int __user *optlen)
129046 {
129047 + struct sctp_initmsg initmsg;
129048 +
129049 if (len < sizeof(struct sctp_initmsg))
129050 return -EINVAL;
129051 len = sizeof(struct sctp_initmsg);
129052 if (put_user(len, optlen))
129053 return -EFAULT;
129054 - if (copy_to_user(optval, &sctp_sk(sk)->initmsg, len))
129055 + initmsg = sctp_sk(sk)->initmsg;
129056 + if (copy_to_user(optval, &initmsg, len))
129057 return -EFAULT;
129058 return 0;
129059 }
129060 @@ -4823,6 +4834,8 @@ static int sctp_getsockopt_peer_addrs(struct sock *sk, int len,
129061 ->addr_to_user(sp, &temp);
129062 if (space_left < addrlen)
129063 return -ENOMEM;
129064 + if (addrlen > sizeof(temp) || addrlen < 0)
129065 + return -EFAULT;
129066 if (copy_to_user(to, &temp, addrlen))
129067 return -EFAULT;
129068 to += addrlen;
129069 diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c
129070 index 3e0fc51..289fe22 100644
129071 --- a/net/sctp/sysctl.c
129072 +++ b/net/sctp/sysctl.c
129073 @@ -317,7 +317,7 @@ static int proc_sctp_do_hmac_alg(struct ctl_table *ctl, int write,
129074 loff_t *ppos)
129075 {
129076 struct net *net = current->nsproxy->net_ns;
129077 - struct ctl_table tbl;
129078 + ctl_table_no_const tbl;
129079 bool changed = false;
129080 char *none = "none";
129081 char tmp[8] = {0};
129082 @@ -365,7 +365,7 @@ static int proc_sctp_do_rto_min(struct ctl_table *ctl, int write,
129083 struct net *net = current->nsproxy->net_ns;
129084 unsigned int min = *(unsigned int *) ctl->extra1;
129085 unsigned int max = *(unsigned int *) ctl->extra2;
129086 - struct ctl_table tbl;
129087 + ctl_table_no_const tbl;
129088 int ret, new_value;
129089
129090 memset(&tbl, 0, sizeof(struct ctl_table));
129091 @@ -394,7 +394,7 @@ static int proc_sctp_do_rto_max(struct ctl_table *ctl, int write,
129092 struct net *net = current->nsproxy->net_ns;
129093 unsigned int min = *(unsigned int *) ctl->extra1;
129094 unsigned int max = *(unsigned int *) ctl->extra2;
129095 - struct ctl_table tbl;
129096 + ctl_table_no_const tbl;
129097 int ret, new_value;
129098
129099 memset(&tbl, 0, sizeof(struct ctl_table));
129100 @@ -432,7 +432,7 @@ static int proc_sctp_do_auth(struct ctl_table *ctl, int write,
129101 loff_t *ppos)
129102 {
129103 struct net *net = current->nsproxy->net_ns;
129104 - struct ctl_table tbl;
129105 + ctl_table_no_const tbl;
129106 int new_value, ret;
129107
129108 memset(&tbl, 0, sizeof(struct ctl_table));
129109 @@ -459,7 +459,7 @@ static int proc_sctp_do_auth(struct ctl_table *ctl, int write,
129110
129111 int sctp_sysctl_net_register(struct net *net)
129112 {
129113 - struct ctl_table *table;
129114 + ctl_table_no_const *table;
129115 int i;
129116
129117 table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL);
129118 diff --git a/net/socket.c b/net/socket.c
129119 index d730ef9..5f02959 100644
129120 --- a/net/socket.c
129121 +++ b/net/socket.c
129122 @@ -89,6 +89,7 @@
129123 #include <linux/magic.h>
129124 #include <linux/slab.h>
129125 #include <linux/xattr.h>
129126 +#include <linux/in.h>
129127
129128 #include <asm/uaccess.h>
129129 #include <asm/unistd.h>
129130 @@ -107,6 +108,7 @@
129131 #include <linux/atalk.h>
129132 #include <net/busy_poll.h>
129133 #include <linux/errqueue.h>
129134 +#include <linux/grsock.h>
129135
129136 #ifdef CONFIG_NET_RX_BUSY_POLL
129137 unsigned int sysctl_net_busy_read __read_mostly;
129138 @@ -160,7 +162,7 @@ static const struct file_operations socket_file_ops = {
129139 */
129140
129141 static DEFINE_SPINLOCK(net_family_lock);
129142 -static const struct net_proto_family __rcu *net_families[NPROTO] __read_mostly;
129143 +const struct net_proto_family __rcu *net_families[NPROTO] __read_mostly;
129144
129145 /*
129146 * Statistics counters of the socket lists
129147 @@ -327,7 +329,7 @@ static struct dentry *sockfs_mount(struct file_system_type *fs_type,
129148 &sockfs_dentry_operations, SOCKFS_MAGIC);
129149 }
129150
129151 -static struct vfsmount *sock_mnt __read_mostly;
129152 +struct vfsmount *sock_mnt __read_mostly;
129153
129154 static struct file_system_type sock_fs_type = {
129155 .name = "sockfs",
129156 @@ -1099,6 +1101,8 @@ int __sock_create(struct net *net, int family, int type, int protocol,
129157 return -EAFNOSUPPORT;
129158 if (type < 0 || type >= SOCK_MAX)
129159 return -EINVAL;
129160 + if (protocol < 0)
129161 + return -EINVAL;
129162
129163 /* Compatibility.
129164
129165 @@ -1119,6 +1123,20 @@ int __sock_create(struct net *net, int family, int type, int protocol,
129166 if (err)
129167 return err;
129168
129169 + if(!kern && !gr_search_socket(family, type, protocol)) {
129170 + if (rcu_access_pointer(net_families[family]) == NULL)
129171 + return -EAFNOSUPPORT;
129172 + else
129173 + return -EACCES;
129174 + }
129175 +
129176 + if (!kern && gr_handle_sock_all(family, type, protocol)) {
129177 + if (rcu_access_pointer(net_families[family]) == NULL)
129178 + return -EAFNOSUPPORT;
129179 + else
129180 + return -EACCES;
129181 + }
129182 +
129183 /*
129184 * Allocate the socket and allow the family to set things up. if
129185 * the protocol is 0, the family is instructed to select an appropriate
129186 @@ -1370,6 +1388,14 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
129187 if (sock) {
129188 err = move_addr_to_kernel(umyaddr, addrlen, &address);
129189 if (err >= 0) {
129190 + if (gr_handle_sock_server((struct sockaddr *)&address)) {
129191 + err = -EACCES;
129192 + goto error;
129193 + }
129194 + err = gr_search_bind(sock, (struct sockaddr_in *)&address);
129195 + if (err)
129196 + goto error;
129197 +
129198 err = security_socket_bind(sock,
129199 (struct sockaddr *)&address,
129200 addrlen);
129201 @@ -1378,6 +1404,7 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
129202 (struct sockaddr *)
129203 &address, addrlen);
129204 }
129205 +error:
129206 fput_light(sock->file, fput_needed);
129207 }
129208 return err;
129209 @@ -1401,10 +1428,20 @@ SYSCALL_DEFINE2(listen, int, fd, int, backlog)
129210 if ((unsigned int)backlog > somaxconn)
129211 backlog = somaxconn;
129212
129213 + if (gr_handle_sock_server_other(sock->sk)) {
129214 + err = -EPERM;
129215 + goto error;
129216 + }
129217 +
129218 + err = gr_search_listen(sock);
129219 + if (err)
129220 + goto error;
129221 +
129222 err = security_socket_listen(sock, backlog);
129223 if (!err)
129224 err = sock->ops->listen(sock, backlog);
129225
129226 +error:
129227 fput_light(sock->file, fput_needed);
129228 }
129229 return err;
129230 @@ -1448,6 +1485,18 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,
129231 newsock->type = sock->type;
129232 newsock->ops = sock->ops;
129233
129234 + if (gr_handle_sock_server_other(sock->sk)) {
129235 + err = -EPERM;
129236 + sock_release(newsock);
129237 + goto out_put;
129238 + }
129239 +
129240 + err = gr_search_accept(sock);
129241 + if (err) {
129242 + sock_release(newsock);
129243 + goto out_put;
129244 + }
129245 +
129246 /*
129247 * We don't need try_module_get here, as the listening socket (sock)
129248 * has the protocol module (sock->ops->owner) held.
129249 @@ -1493,6 +1542,8 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,
129250 fd_install(newfd, newfile);
129251 err = newfd;
129252
129253 + gr_attach_curr_ip(newsock->sk);
129254 +
129255 out_put:
129256 fput_light(sock->file, fput_needed);
129257 out:
129258 @@ -1525,6 +1576,7 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
129259 int, addrlen)
129260 {
129261 struct socket *sock;
129262 + struct sockaddr *sck;
129263 struct sockaddr_storage address;
129264 int err, fput_needed;
129265
129266 @@ -1535,6 +1587,17 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
129267 if (err < 0)
129268 goto out_put;
129269
129270 + sck = (struct sockaddr *)&address;
129271 +
129272 + if (gr_handle_sock_client(sck)) {
129273 + err = -EACCES;
129274 + goto out_put;
129275 + }
129276 +
129277 + err = gr_search_connect(sock, (struct sockaddr_in *)sck);
129278 + if (err)
129279 + goto out_put;
129280 +
129281 err =
129282 security_socket_connect(sock, (struct sockaddr *)&address, addrlen);
129283 if (err)
129284 @@ -1557,7 +1620,7 @@ SYSCALL_DEFINE3(getsockname, int, fd, struct sockaddr __user *, usockaddr,
129285 int __user *, usockaddr_len)
129286 {
129287 struct socket *sock;
129288 - struct sockaddr_storage address;
129289 + struct sockaddr_storage address = { };
129290 int len, err, fput_needed;
129291
129292 sock = sockfd_lookup_light(fd, &err, &fput_needed);
129293 @@ -1588,7 +1651,7 @@ SYSCALL_DEFINE3(getpeername, int, fd, struct sockaddr __user *, usockaddr,
129294 int __user *, usockaddr_len)
129295 {
129296 struct socket *sock;
129297 - struct sockaddr_storage address;
129298 + struct sockaddr_storage address = { };
129299 int len, err, fput_needed;
129300
129301 sock = sockfd_lookup_light(fd, &err, &fput_needed);
129302 @@ -1616,6 +1679,8 @@ SYSCALL_DEFINE3(getpeername, int, fd, struct sockaddr __user *, usockaddr,
129303 * the protocol.
129304 */
129305
129306 +asmlinkage long sys_sendto(int, void __user *, size_t, unsigned, struct sockaddr __user *, int);
129307 +
129308 SYSCALL_DEFINE6(sendto, int, fd, void __user *, buff, size_t, len,
129309 unsigned int, flags, struct sockaddr __user *, addr,
129310 int, addr_len)
129311 @@ -1679,7 +1744,7 @@ SYSCALL_DEFINE6(recvfrom, int, fd, void __user *, ubuf, size_t, size,
129312 struct socket *sock;
129313 struct iovec iov;
129314 struct msghdr msg;
129315 - struct sockaddr_storage address;
129316 + struct sockaddr_storage address = { };
129317 int err, err2;
129318 int fput_needed;
129319
129320 @@ -1922,7 +1987,7 @@ static int ___sys_sendmsg(struct socket *sock, struct user_msghdr __user *msg,
129321 * checking falls down on this.
129322 */
129323 if (copy_from_user(ctl_buf,
129324 - (void __user __force *)msg_sys->msg_control,
129325 + (void __force_user *)msg_sys->msg_control,
129326 ctl_len))
129327 goto out_freectl;
129328 msg_sys->msg_control = ctl_buf;
129329 @@ -2072,7 +2137,7 @@ static int ___sys_recvmsg(struct socket *sock, struct user_msghdr __user *msg,
129330 ssize_t err;
129331
129332 /* kernel mode address */
129333 - struct sockaddr_storage addr;
129334 + struct sockaddr_storage addr = { };
129335
129336 /* user mode address pointers */
129337 struct sockaddr __user *uaddr;
129338 @@ -2717,7 +2782,7 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32)
129339 ifr = compat_alloc_user_space(buf_size);
129340 rxnfc = (void __user *)ifr + ALIGN(sizeof(struct ifreq), 8);
129341
129342 - if (copy_in_user(&ifr->ifr_name, &ifr32->ifr_name, IFNAMSIZ))
129343 + if (copy_in_user(ifr->ifr_name, ifr32->ifr_name, IFNAMSIZ))
129344 return -EFAULT;
129345
129346 if (put_user(convert_in ? rxnfc : compat_ptr(data),
129347 @@ -2828,7 +2893,7 @@ static int bond_ioctl(struct net *net, unsigned int cmd,
129348 old_fs = get_fs();
129349 set_fs(KERNEL_DS);
129350 err = dev_ioctl(net, cmd,
129351 - (struct ifreq __user __force *) &kifr);
129352 + (struct ifreq __force_user *) &kifr);
129353 set_fs(old_fs);
129354
129355 return err;
129356 @@ -2921,7 +2986,7 @@ static int compat_sioc_ifmap(struct net *net, unsigned int cmd,
129357
129358 old_fs = get_fs();
129359 set_fs(KERNEL_DS);
129360 - err = dev_ioctl(net, cmd, (void __user __force *)&ifr);
129361 + err = dev_ioctl(net, cmd, (void __force_user *)&ifr);
129362 set_fs(old_fs);
129363
129364 if (cmd == SIOCGIFMAP && !err) {
129365 @@ -3005,7 +3070,7 @@ static int routing_ioctl(struct net *net, struct socket *sock,
129366 ret |= get_user(rtdev, &(ur4->rt_dev));
129367 if (rtdev) {
129368 ret |= copy_from_user(devname, compat_ptr(rtdev), 15);
129369 - r4.rt_dev = (char __user __force *)devname;
129370 + r4.rt_dev = (char __force_user *)devname;
129371 devname[15] = 0;
129372 } else
129373 r4.rt_dev = NULL;
129374 @@ -3232,8 +3297,8 @@ int kernel_getsockopt(struct socket *sock, int level, int optname,
129375 int __user *uoptlen;
129376 int err;
129377
129378 - uoptval = (char __user __force *) optval;
129379 - uoptlen = (int __user __force *) optlen;
129380 + uoptval = (char __force_user *) optval;
129381 + uoptlen = (int __force_user *) optlen;
129382
129383 set_fs(KERNEL_DS);
129384 if (level == SOL_SOCKET)
129385 @@ -3253,7 +3318,7 @@ int kernel_setsockopt(struct socket *sock, int level, int optname,
129386 char __user *uoptval;
129387 int err;
129388
129389 - uoptval = (char __user __force *) optval;
129390 + uoptval = (char __force_user *) optval;
129391
129392 set_fs(KERNEL_DS);
129393 if (level == SOL_SOCKET)
129394 diff --git a/net/sunrpc/Kconfig b/net/sunrpc/Kconfig
129395 index 04ce2c0..b1dd1bd 100644
129396 --- a/net/sunrpc/Kconfig
129397 +++ b/net/sunrpc/Kconfig
129398 @@ -38,6 +38,7 @@ config SUNRPC_DEBUG
129399 bool "RPC: Enable dprintk debugging"
129400 depends on SUNRPC && SYSCTL
129401 select DEBUG_FS
129402 + depends on !GRKERNSEC_KMEM
129403 help
129404 This option enables a sysctl-based debugging interface
129405 that is be used by the 'rpcdebug' utility to turn on or off
129406 diff --git a/net/sunrpc/auth_gss/svcauth_gss.c b/net/sunrpc/auth_gss/svcauth_gss.c
129407 index 1095be9..815d777 100644
129408 --- a/net/sunrpc/auth_gss/svcauth_gss.c
129409 +++ b/net/sunrpc/auth_gss/svcauth_gss.c
129410 @@ -1142,7 +1142,7 @@ static int gss_proxy_save_rsc(struct cache_detail *cd,
129411 uint64_t *handle)
129412 {
129413 struct rsc rsci, *rscp = NULL;
129414 - static atomic64_t ctxhctr;
129415 + static atomic64_unchecked_t ctxhctr = ATOMIC64_INIT(0);
129416 long long ctxh;
129417 struct gss_api_mech *gm = NULL;
129418 time_t expiry;
129419 @@ -1153,7 +1153,7 @@ static int gss_proxy_save_rsc(struct cache_detail *cd,
129420 status = -ENOMEM;
129421 /* the handle needs to be just a unique id,
129422 * use a static counter */
129423 - ctxh = atomic64_inc_return(&ctxhctr);
129424 + ctxh = atomic64_inc_return_unchecked(&ctxhctr);
129425
129426 /* make a copy for the caller */
129427 *handle = ctxh;
129428 diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c
129429 index 21e2035..2e567b1 100644
129430 --- a/net/sunrpc/cache.c
129431 +++ b/net/sunrpc/cache.c
129432 @@ -1623,7 +1623,7 @@ static int create_cache_proc_entries(struct cache_detail *cd, struct net *net)
129433 struct sunrpc_net *sn;
129434
129435 sn = net_generic(net, sunrpc_net_id);
129436 - cd->u.procfs.proc_ent = proc_mkdir(cd->name, sn->proc_net_rpc);
129437 + cd->u.procfs.proc_ent = proc_mkdir_restrict(cd->name, sn->proc_net_rpc);
129438 if (cd->u.procfs.proc_ent == NULL)
129439 goto out_nomem;
129440 cd->u.procfs.channel_ent = NULL;
129441 diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
129442 index 23608eb..f2b5208 100644
129443 --- a/net/sunrpc/clnt.c
129444 +++ b/net/sunrpc/clnt.c
129445 @@ -1428,7 +1428,9 @@ call_start(struct rpc_task *task)
129446 (RPC_IS_ASYNC(task) ? "async" : "sync"));
129447
129448 /* Increment call count */
129449 - task->tk_msg.rpc_proc->p_count++;
129450 + pax_open_kernel();
129451 + (*(unsigned int *)&task->tk_msg.rpc_proc->p_count)++;
129452 + pax_close_kernel();
129453 clnt->cl_stats->rpccnt++;
129454 task->tk_action = call_reserve;
129455 }
129456 diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c
129457 index 73ad57a..d7a0c08 100644
129458 --- a/net/sunrpc/sched.c
129459 +++ b/net/sunrpc/sched.c
129460 @@ -261,9 +261,9 @@ static int rpc_wait_bit_killable(struct wait_bit_key *key, int mode)
129461 #if IS_ENABLED(CONFIG_SUNRPC_DEBUG) || IS_ENABLED(CONFIG_TRACEPOINTS)
129462 static void rpc_task_set_debuginfo(struct rpc_task *task)
129463 {
129464 - static atomic_t rpc_pid;
129465 + static atomic_unchecked_t rpc_pid;
129466
129467 - task->tk_pid = atomic_inc_return(&rpc_pid);
129468 + task->tk_pid = atomic_inc_return_unchecked(&rpc_pid);
129469 }
129470 #else
129471 static inline void rpc_task_set_debuginfo(struct rpc_task *task)
129472 diff --git a/net/sunrpc/stats.c b/net/sunrpc/stats.c
129473 index 2ecb994..5afb49f 100644
129474 --- a/net/sunrpc/stats.c
129475 +++ b/net/sunrpc/stats.c
129476 @@ -290,7 +290,7 @@ int rpc_proc_init(struct net *net)
129477
129478 dprintk("RPC: registering /proc/net/rpc\n");
129479 sn = net_generic(net, sunrpc_net_id);
129480 - sn->proc_net_rpc = proc_mkdir("rpc", net->proc_net);
129481 + sn->proc_net_rpc = proc_mkdir_restrict("rpc", net->proc_net);
129482 if (sn->proc_net_rpc == NULL)
129483 return -ENOMEM;
129484
129485 diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
129486 index cc98528..f427662 100644
129487 --- a/net/sunrpc/svc.c
129488 +++ b/net/sunrpc/svc.c
129489 @@ -1166,7 +1166,9 @@ svc_process_common(struct svc_rqst *rqstp, struct kvec *argv, struct kvec *resv)
129490 svc_putnl(resv, RPC_SUCCESS);
129491
129492 /* Bump per-procedure stats counter */
129493 - procp->pc_count++;
129494 + pax_open_kernel();
129495 + (*(unsigned int *)&procp->pc_count)++;
129496 + pax_close_kernel();
129497
129498 /* Initialize storage for argp and resp */
129499 memset(rqstp->rq_argp, 0, procp->pc_argsize);
129500 diff --git a/net/sunrpc/svcauth_unix.c b/net/sunrpc/svcauth_unix.c
129501 index 621ca7b..78bf76b 100644
129502 --- a/net/sunrpc/svcauth_unix.c
129503 +++ b/net/sunrpc/svcauth_unix.c
129504 @@ -470,7 +470,7 @@ static void unix_gid_request(struct cache_detail *cd,
129505 (*bpp)[-1] = '\n';
129506 }
129507
129508 -static struct unix_gid *unix_gid_lookup(struct cache_detail *cd, kuid_t uid);
129509 +static struct unix_gid * __intentional_overflow(-1) unix_gid_lookup(struct cache_detail *cd, kuid_t uid);
129510
129511 static int unix_gid_parse(struct cache_detail *cd,
129512 char *mesg, int mlen)
129513 diff --git a/net/sunrpc/xprtrdma/svc_rdma.c b/net/sunrpc/xprtrdma/svc_rdma.c
129514 index 1b7051b..65b0d80 100644
129515 --- a/net/sunrpc/xprtrdma/svc_rdma.c
129516 +++ b/net/sunrpc/xprtrdma/svc_rdma.c
129517 @@ -61,15 +61,15 @@ unsigned int svcrdma_max_req_size = RPCRDMA_MAX_REQ_SIZE;
129518 static unsigned int min_max_inline = 4096;
129519 static unsigned int max_max_inline = 65536;
129520
129521 -atomic_t rdma_stat_recv;
129522 -atomic_t rdma_stat_read;
129523 -atomic_t rdma_stat_write;
129524 -atomic_t rdma_stat_sq_starve;
129525 -atomic_t rdma_stat_rq_starve;
129526 -atomic_t rdma_stat_rq_poll;
129527 -atomic_t rdma_stat_rq_prod;
129528 -atomic_t rdma_stat_sq_poll;
129529 -atomic_t rdma_stat_sq_prod;
129530 +atomic_unchecked_t rdma_stat_recv;
129531 +atomic_unchecked_t rdma_stat_read;
129532 +atomic_unchecked_t rdma_stat_write;
129533 +atomic_unchecked_t rdma_stat_sq_starve;
129534 +atomic_unchecked_t rdma_stat_rq_starve;
129535 +atomic_unchecked_t rdma_stat_rq_poll;
129536 +atomic_unchecked_t rdma_stat_rq_prod;
129537 +atomic_unchecked_t rdma_stat_sq_poll;
129538 +atomic_unchecked_t rdma_stat_sq_prod;
129539
129540 /* Temporary NFS request map and context caches */
129541 struct kmem_cache *svc_rdma_map_cachep;
129542 @@ -87,17 +87,17 @@ static int read_reset_stat(struct ctl_table *table, int write,
129543 void __user *buffer, size_t *lenp,
129544 loff_t *ppos)
129545 {
129546 - atomic_t *stat = (atomic_t *)table->data;
129547 + atomic_unchecked_t *stat = (atomic_unchecked_t *)table->data;
129548
129549 if (!stat)
129550 return -EINVAL;
129551
129552 if (write)
129553 - atomic_set(stat, 0);
129554 + atomic_set_unchecked(stat, 0);
129555 else {
129556 char str_buf[32];
129557 char *data;
129558 - int len = snprintf(str_buf, 32, "%d\n", atomic_read(stat));
129559 + int len = snprintf(str_buf, 32, "%d\n", atomic_read_unchecked(stat));
129560 if (len >= 32)
129561 return -EFAULT;
129562 len = strlen(str_buf);
129563 @@ -109,7 +109,7 @@ static int read_reset_stat(struct ctl_table *table, int write,
129564 len -= *ppos;
129565 if (len > *lenp)
129566 len = *lenp;
129567 - if (len && copy_to_user(buffer, str_buf, len))
129568 + if (len > sizeof str_buf || (len && copy_to_user(buffer, str_buf, len)))
129569 return -EFAULT;
129570 *lenp = len;
129571 *ppos += len;
129572 @@ -150,63 +150,63 @@ static struct ctl_table svcrdma_parm_table[] = {
129573 {
129574 .procname = "rdma_stat_read",
129575 .data = &rdma_stat_read,
129576 - .maxlen = sizeof(atomic_t),
129577 + .maxlen = sizeof(atomic_unchecked_t),
129578 .mode = 0644,
129579 .proc_handler = read_reset_stat,
129580 },
129581 {
129582 .procname = "rdma_stat_recv",
129583 .data = &rdma_stat_recv,
129584 - .maxlen = sizeof(atomic_t),
129585 + .maxlen = sizeof(atomic_unchecked_t),
129586 .mode = 0644,
129587 .proc_handler = read_reset_stat,
129588 },
129589 {
129590 .procname = "rdma_stat_write",
129591 .data = &rdma_stat_write,
129592 - .maxlen = sizeof(atomic_t),
129593 + .maxlen = sizeof(atomic_unchecked_t),
129594 .mode = 0644,
129595 .proc_handler = read_reset_stat,
129596 },
129597 {
129598 .procname = "rdma_stat_sq_starve",
129599 .data = &rdma_stat_sq_starve,
129600 - .maxlen = sizeof(atomic_t),
129601 + .maxlen = sizeof(atomic_unchecked_t),
129602 .mode = 0644,
129603 .proc_handler = read_reset_stat,
129604 },
129605 {
129606 .procname = "rdma_stat_rq_starve",
129607 .data = &rdma_stat_rq_starve,
129608 - .maxlen = sizeof(atomic_t),
129609 + .maxlen = sizeof(atomic_unchecked_t),
129610 .mode = 0644,
129611 .proc_handler = read_reset_stat,
129612 },
129613 {
129614 .procname = "rdma_stat_rq_poll",
129615 .data = &rdma_stat_rq_poll,
129616 - .maxlen = sizeof(atomic_t),
129617 + .maxlen = sizeof(atomic_unchecked_t),
129618 .mode = 0644,
129619 .proc_handler = read_reset_stat,
129620 },
129621 {
129622 .procname = "rdma_stat_rq_prod",
129623 .data = &rdma_stat_rq_prod,
129624 - .maxlen = sizeof(atomic_t),
129625 + .maxlen = sizeof(atomic_unchecked_t),
129626 .mode = 0644,
129627 .proc_handler = read_reset_stat,
129628 },
129629 {
129630 .procname = "rdma_stat_sq_poll",
129631 .data = &rdma_stat_sq_poll,
129632 - .maxlen = sizeof(atomic_t),
129633 + .maxlen = sizeof(atomic_unchecked_t),
129634 .mode = 0644,
129635 .proc_handler = read_reset_stat,
129636 },
129637 {
129638 .procname = "rdma_stat_sq_prod",
129639 .data = &rdma_stat_sq_prod,
129640 - .maxlen = sizeof(atomic_t),
129641 + .maxlen = sizeof(atomic_unchecked_t),
129642 .mode = 0644,
129643 .proc_handler = read_reset_stat,
129644 },
129645 diff --git a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
129646 index ff4f01e..997f03d 100644
129647 --- a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
129648 +++ b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
129649 @@ -200,7 +200,7 @@ int rdma_read_chunk_lcl(struct svcxprt_rdma *xprt,
129650 *page_no = pg_no;
129651 *page_offset = pg_off;
129652 ret = read;
129653 - atomic_inc(&rdma_stat_read);
129654 + atomic_inc_unchecked(&rdma_stat_read);
129655 return ret;
129656 err:
129657 svc_rdma_unmap_dma(ctxt);
129658 @@ -343,7 +343,7 @@ int rdma_read_chunk_frmr(struct svcxprt_rdma *xprt,
129659 *page_no = pg_no;
129660 *page_offset = pg_off;
129661 ret = read;
129662 - atomic_inc(&rdma_stat_read);
129663 + atomic_inc_unchecked(&rdma_stat_read);
129664 return ret;
129665 err:
129666 ib_dma_unmap_sg(xprt->sc_cm_id->device,
129667 @@ -598,7 +598,7 @@ int svc_rdma_recvfrom(struct svc_rqst *rqstp)
129668 dto_q);
129669 list_del_init(&ctxt->dto_q);
129670 } else {
129671 - atomic_inc(&rdma_stat_rq_starve);
129672 + atomic_inc_unchecked(&rdma_stat_rq_starve);
129673 clear_bit(XPT_DATA, &xprt->xpt_flags);
129674 ctxt = NULL;
129675 }
129676 @@ -616,7 +616,7 @@ int svc_rdma_recvfrom(struct svc_rqst *rqstp)
129677 }
129678 dprintk("svcrdma: processing ctxt=%p on xprt=%p, rqstp=%p, status=%d\n",
129679 ctxt, rdma_xprt, rqstp, ctxt->wc_status);
129680 - atomic_inc(&rdma_stat_recv);
129681 + atomic_inc_unchecked(&rdma_stat_recv);
129682
129683 /* Build up the XDR from the receive buffers. */
129684 rdma_build_arg_xdr(rqstp, ctxt, ctxt->byte_len);
129685 diff --git a/net/sunrpc/xprtrdma/svc_rdma_sendto.c b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
129686 index 969a1ab..ee9b382 100644
129687 --- a/net/sunrpc/xprtrdma/svc_rdma_sendto.c
129688 +++ b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
129689 @@ -291,7 +291,7 @@ static int send_write(struct svcxprt_rdma *xprt, struct svc_rqst *rqstp,
129690 write_wr.remote_addr = to;
129691
129692 /* Post It */
129693 - atomic_inc(&rdma_stat_write);
129694 + atomic_inc_unchecked(&rdma_stat_write);
129695 if (svc_rdma_send(xprt, &write_wr.wr))
129696 goto err;
129697 return write_len - bc;
129698 diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c
129699 index b348b4a..db45b20 100644
129700 --- a/net/sunrpc/xprtrdma/svc_rdma_transport.c
129701 +++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c
129702 @@ -346,7 +346,7 @@ static void rq_cq_reap(struct svcxprt_rdma *xprt)
129703 return;
129704
129705 ib_req_notify_cq(xprt->sc_rq_cq, IB_CQ_NEXT_COMP);
129706 - atomic_inc(&rdma_stat_rq_poll);
129707 + atomic_inc_unchecked(&rdma_stat_rq_poll);
129708
129709 while ((ret = ib_poll_cq(xprt->sc_rq_cq, 1, &wc)) > 0) {
129710 ctxt = (struct svc_rdma_op_ctxt *)(unsigned long)wc.wr_id;
129711 @@ -368,7 +368,7 @@ static void rq_cq_reap(struct svcxprt_rdma *xprt)
129712 }
129713
129714 if (ctxt)
129715 - atomic_inc(&rdma_stat_rq_prod);
129716 + atomic_inc_unchecked(&rdma_stat_rq_prod);
129717
129718 set_bit(XPT_DATA, &xprt->sc_xprt.xpt_flags);
129719 /*
129720 @@ -447,7 +447,7 @@ static void sq_cq_reap(struct svcxprt_rdma *xprt)
129721 return;
129722
129723 ib_req_notify_cq(xprt->sc_sq_cq, IB_CQ_NEXT_COMP);
129724 - atomic_inc(&rdma_stat_sq_poll);
129725 + atomic_inc_unchecked(&rdma_stat_sq_poll);
129726 while ((ret = ib_poll_cq(cq, ARRAY_SIZE(wc_a), wc_a)) > 0) {
129727 int i;
129728
129729 @@ -476,7 +476,7 @@ static void sq_cq_reap(struct svcxprt_rdma *xprt)
129730 }
129731
129732 if (ctxt)
129733 - atomic_inc(&rdma_stat_sq_prod);
129734 + atomic_inc_unchecked(&rdma_stat_sq_prod);
129735 }
129736
129737 static void sq_comp_handler(struct ib_cq *cq, void *cq_context)
129738 @@ -1273,7 +1273,7 @@ int svc_rdma_send(struct svcxprt_rdma *xprt, struct ib_send_wr *wr)
129739 spin_lock_bh(&xprt->sc_lock);
129740 if (xprt->sc_sq_depth < atomic_read(&xprt->sc_sq_count) + wr_count) {
129741 spin_unlock_bh(&xprt->sc_lock);
129742 - atomic_inc(&rdma_stat_sq_starve);
129743 + atomic_inc_unchecked(&rdma_stat_sq_starve);
129744
129745 /* See if we can opportunistically reap SQ WR to make room */
129746 sq_cq_reap(xprt);
129747 diff --git a/net/sysctl_net.c b/net/sysctl_net.c
129748 index ed98c1f..f74b659 100644
129749 --- a/net/sysctl_net.c
129750 +++ b/net/sysctl_net.c
129751 @@ -46,7 +46,7 @@ static int net_ctl_permissions(struct ctl_table_header *head,
129752 kgid_t root_gid = make_kgid(net->user_ns, 0);
129753
129754 /* Allow network administrator to have same access as root. */
129755 - if (ns_capable(net->user_ns, CAP_NET_ADMIN) ||
129756 + if (ns_capable_nolog(net->user_ns, CAP_NET_ADMIN) ||
129757 uid_eq(root_uid, current_euid())) {
129758 int mode = (table->mode >> 6) & 7;
129759 return (mode << 6) | (mode << 3) | mode;
129760 diff --git a/net/tipc/netlink_compat.c b/net/tipc/netlink_compat.c
129761 index 1eadc95..f6ccd08 100644
129762 --- a/net/tipc/netlink_compat.c
129763 +++ b/net/tipc/netlink_compat.c
129764 @@ -65,13 +65,13 @@ struct tipc_nl_compat_cmd_dump {
129765 int (*header)(struct tipc_nl_compat_msg *);
129766 int (*dumpit)(struct sk_buff *, struct netlink_callback *);
129767 int (*format)(struct tipc_nl_compat_msg *msg, struct nlattr **attrs);
129768 -};
129769 +} __no_const;
129770
129771 struct tipc_nl_compat_cmd_doit {
129772 int (*doit)(struct sk_buff *skb, struct genl_info *info);
129773 int (*transcode)(struct tipc_nl_compat_cmd_doit *cmd,
129774 struct sk_buff *skb, struct tipc_nl_compat_msg *msg);
129775 -};
129776 +} __no_const;
129777
129778 static int tipc_skb_tailroom(struct sk_buff *skb)
129779 {
129780 @@ -836,7 +836,10 @@ static int tipc_nl_compat_publ_dump(struct tipc_nl_compat_msg *msg, u32 sock)
129781 void *hdr;
129782 struct nlattr *nest;
129783 struct sk_buff *args;
129784 - struct tipc_nl_compat_cmd_dump dump;
129785 + static struct tipc_nl_compat_cmd_dump dump = {
129786 + .dumpit = tipc_nl_publ_dump,
129787 + .format = __tipc_nl_compat_publ_dump,
129788 + };
129789
129790 args = nlmsg_new(NLMSG_GOODSIZE, GFP_KERNEL);
129791 if (!args)
129792 @@ -859,9 +862,6 @@ static int tipc_nl_compat_publ_dump(struct tipc_nl_compat_msg *msg, u32 sock)
129793 nla_nest_end(args, nest);
129794 genlmsg_end(args, hdr);
129795
129796 - dump.dumpit = tipc_nl_publ_dump;
129797 - dump.format = __tipc_nl_compat_publ_dump;
129798 -
129799 err = __tipc_nl_compat_dumpit(&dump, msg, args);
129800
129801 kfree_skb(args);
129802 diff --git a/net/tipc/subscr.c b/net/tipc/subscr.c
129803 index 69ee2ee..3352a8d 100644
129804 --- a/net/tipc/subscr.c
129805 +++ b/net/tipc/subscr.c
129806 @@ -75,7 +75,7 @@ static void tipc_subscrp_send_event(struct tipc_subscription *sub,
129807 struct tipc_subscriber *subscriber = sub->subscriber;
129808 struct kvec msg_sect;
129809
129810 - msg_sect.iov_base = (void *)&sub->evt;
129811 + msg_sect.iov_base = &sub->evt;
129812 msg_sect.iov_len = sizeof(struct tipc_event);
129813 sub->evt.event = htohl(event, sub->swap);
129814 sub->evt.found_lower = htohl(found_lower, sub->swap);
129815 diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
129816 index 898a53a..5a23004 100644
129817 --- a/net/unix/af_unix.c
129818 +++ b/net/unix/af_unix.c
129819 @@ -919,6 +919,12 @@ static struct sock *unix_find_other(struct net *net,
129820 err = -ECONNREFUSED;
129821 if (!S_ISSOCK(inode->i_mode))
129822 goto put_fail;
129823 +
129824 + if (!gr_acl_handle_unix(path.dentry, path.mnt)) {
129825 + err = -EACCES;
129826 + goto put_fail;
129827 + }
129828 +
129829 u = unix_find_socket_byinode(inode);
129830 if (!u)
129831 goto put_fail;
129832 @@ -939,6 +945,13 @@ static struct sock *unix_find_other(struct net *net,
129833 if (u) {
129834 struct dentry *dentry;
129835 dentry = unix_sk(u)->path.dentry;
129836 +
129837 + if (!gr_handle_chroot_unix(pid_vnr(u->sk_peer_pid))) {
129838 + err = -EPERM;
129839 + sock_put(u);
129840 + goto fail;
129841 + }
129842 +
129843 if (dentry)
129844 touch_atime(&unix_sk(u)->path);
129845 } else
129846 @@ -960,13 +973,19 @@ static int unix_mknod(struct dentry *dentry, struct path *path, umode_t mode,
129847
129848 err = security_path_mknod(path, dentry, mode, 0);
129849 if (!err) {
129850 + if (!gr_acl_handle_mknod(dentry, path->dentry, path->mnt, mode)) {
129851 + err = -EACCES;
129852 + goto out;
129853 + }
129854 err = vfs_mknod(d_inode(path->dentry), dentry, mode, 0);
129855 if (!err) {
129856 res->mnt = mntget(path->mnt);
129857 res->dentry = dget(dentry);
129858 + gr_handle_create(dentry, path->mnt);
129859 }
129860 }
129861
129862 +out:
129863 return err;
129864 }
129865
129866 @@ -2806,9 +2825,13 @@ static int unix_seq_show(struct seq_file *seq, void *v)
129867 seq_puts(seq, "Num RefCount Protocol Flags Type St "
129868 "Inode Path\n");
129869 else {
129870 - struct sock *s = v;
129871 + struct sock *s = v, *peer;
129872 struct unix_sock *u = unix_sk(s);
129873 unix_state_lock(s);
129874 + peer = unix_peer(s);
129875 + unix_state_unlock(s);
129876 +
129877 + unix_state_double_lock(s, peer);
129878
129879 seq_printf(seq, "%pK: %08X %08X %08X %04X %02X %5lu",
129880 s,
129881 @@ -2833,10 +2856,29 @@ static int unix_seq_show(struct seq_file *seq, void *v)
129882 seq_putc(seq, '@');
129883 i++;
129884 }
129885 - for ( ; i < len; i++)
129886 - seq_putc(seq, u->addr->name->sun_path[i]);
129887 - }
129888 - unix_state_unlock(s);
129889 + for ( ; i < len; i++) {
129890 + char c = u->addr->name->sun_path[i];
129891 + switch (c) {
129892 + case '\n':
129893 + seq_putc(seq, '\\');
129894 + seq_putc(seq, 'n');
129895 + break;
129896 + case '\t':
129897 + seq_putc(seq, '\\');
129898 + seq_putc(seq, 't');
129899 + break;
129900 + case '\\':
129901 + seq_putc(seq, '\\');
129902 + seq_putc(seq, '\\');
129903 + break;
129904 + default:
129905 + seq_putc(seq, c);
129906 + }
129907 + }
129908 + } else if (peer)
129909 + seq_printf(seq, " P%lu", sock_i_ino(peer));
129910 +
129911 + unix_state_double_unlock(s, peer);
129912 seq_putc(seq, '\n');
129913 }
129914
129915 diff --git a/net/unix/diag.c b/net/unix/diag.c
129916 index 4d96797..ab6a813 100644
129917 --- a/net/unix/diag.c
129918 +++ b/net/unix/diag.c
129919 @@ -299,7 +299,7 @@ static int unix_diag_handler_dump(struct sk_buff *skb, struct nlmsghdr *h)
129920 return -EINVAL;
129921
129922 if (h->nlmsg_flags & NLM_F_DUMP) {
129923 - struct netlink_dump_control c = {
129924 + static struct netlink_dump_control c = {
129925 .dump = unix_diag_dump,
129926 };
129927 return netlink_dump_start(net->diag_nlsk, skb, h, &c);
129928 diff --git a/net/unix/sysctl_net_unix.c b/net/unix/sysctl_net_unix.c
129929 index b3d5150..ff3a837 100644
129930 --- a/net/unix/sysctl_net_unix.c
129931 +++ b/net/unix/sysctl_net_unix.c
129932 @@ -28,7 +28,7 @@ static struct ctl_table unix_table[] = {
129933
129934 int __net_init unix_sysctl_register(struct net *net)
129935 {
129936 - struct ctl_table *table;
129937 + ctl_table_no_const *table;
129938
129939 table = kmemdup(unix_table, sizeof(unix_table), GFP_KERNEL);
129940 if (table == NULL)
129941 diff --git a/net/vmw_vsock/vmci_transport_notify.c b/net/vmw_vsock/vmci_transport_notify.c
129942 index 9b7f207..2596621 100644
129943 --- a/net/vmw_vsock/vmci_transport_notify.c
129944 +++ b/net/vmw_vsock/vmci_transport_notify.c
129945 @@ -662,19 +662,19 @@ static void vmci_transport_notify_pkt_process_negotiate(struct sock *sk)
129946
129947 /* Socket control packet based operations. */
129948 struct vmci_transport_notify_ops vmci_transport_notify_pkt_ops = {
129949 - vmci_transport_notify_pkt_socket_init,
129950 - vmci_transport_notify_pkt_socket_destruct,
129951 - vmci_transport_notify_pkt_poll_in,
129952 - vmci_transport_notify_pkt_poll_out,
129953 - vmci_transport_notify_pkt_handle_pkt,
129954 - vmci_transport_notify_pkt_recv_init,
129955 - vmci_transport_notify_pkt_recv_pre_block,
129956 - vmci_transport_notify_pkt_recv_pre_dequeue,
129957 - vmci_transport_notify_pkt_recv_post_dequeue,
129958 - vmci_transport_notify_pkt_send_init,
129959 - vmci_transport_notify_pkt_send_pre_block,
129960 - vmci_transport_notify_pkt_send_pre_enqueue,
129961 - vmci_transport_notify_pkt_send_post_enqueue,
129962 - vmci_transport_notify_pkt_process_request,
129963 - vmci_transport_notify_pkt_process_negotiate,
129964 + .socket_init = vmci_transport_notify_pkt_socket_init,
129965 + .socket_destruct = vmci_transport_notify_pkt_socket_destruct,
129966 + .poll_in = vmci_transport_notify_pkt_poll_in,
129967 + .poll_out = vmci_transport_notify_pkt_poll_out,
129968 + .handle_notify_pkt = vmci_transport_notify_pkt_handle_pkt,
129969 + .recv_init = vmci_transport_notify_pkt_recv_init,
129970 + .recv_pre_block = vmci_transport_notify_pkt_recv_pre_block,
129971 + .recv_pre_dequeue = vmci_transport_notify_pkt_recv_pre_dequeue,
129972 + .recv_post_dequeue = vmci_transport_notify_pkt_recv_post_dequeue,
129973 + .send_init = vmci_transport_notify_pkt_send_init,
129974 + .send_pre_block = vmci_transport_notify_pkt_send_pre_block,
129975 + .send_pre_enqueue = vmci_transport_notify_pkt_send_pre_enqueue,
129976 + .send_post_enqueue = vmci_transport_notify_pkt_send_post_enqueue,
129977 + .process_request = vmci_transport_notify_pkt_process_request,
129978 + .process_negotiate = vmci_transport_notify_pkt_process_negotiate,
129979 };
129980 diff --git a/net/vmw_vsock/vmci_transport_notify_qstate.c b/net/vmw_vsock/vmci_transport_notify_qstate.c
129981 index dc9c792..3089de0 100644
129982 --- a/net/vmw_vsock/vmci_transport_notify_qstate.c
129983 +++ b/net/vmw_vsock/vmci_transport_notify_qstate.c
129984 @@ -420,19 +420,19 @@ vmci_transport_notify_pkt_send_pre_enqueue(
129985
129986 /* Socket always on control packet based operations. */
129987 struct vmci_transport_notify_ops vmci_transport_notify_pkt_q_state_ops = {
129988 - vmci_transport_notify_pkt_socket_init,
129989 - vmci_transport_notify_pkt_socket_destruct,
129990 - vmci_transport_notify_pkt_poll_in,
129991 - vmci_transport_notify_pkt_poll_out,
129992 - vmci_transport_notify_pkt_handle_pkt,
129993 - vmci_transport_notify_pkt_recv_init,
129994 - vmci_transport_notify_pkt_recv_pre_block,
129995 - vmci_transport_notify_pkt_recv_pre_dequeue,
129996 - vmci_transport_notify_pkt_recv_post_dequeue,
129997 - vmci_transport_notify_pkt_send_init,
129998 - vmci_transport_notify_pkt_send_pre_block,
129999 - vmci_transport_notify_pkt_send_pre_enqueue,
130000 - vmci_transport_notify_pkt_send_post_enqueue,
130001 - vmci_transport_notify_pkt_process_request,
130002 - vmci_transport_notify_pkt_process_negotiate,
130003 + .socket_init = vmci_transport_notify_pkt_socket_init,
130004 + .socket_destruct = vmci_transport_notify_pkt_socket_destruct,
130005 + .poll_in = vmci_transport_notify_pkt_poll_in,
130006 + .poll_out = vmci_transport_notify_pkt_poll_out,
130007 + .handle_notify_pkt = vmci_transport_notify_pkt_handle_pkt,
130008 + .recv_init = vmci_transport_notify_pkt_recv_init,
130009 + .recv_pre_block = vmci_transport_notify_pkt_recv_pre_block,
130010 + .recv_pre_dequeue = vmci_transport_notify_pkt_recv_pre_dequeue,
130011 + .recv_post_dequeue = vmci_transport_notify_pkt_recv_post_dequeue,
130012 + .send_init = vmci_transport_notify_pkt_send_init,
130013 + .send_pre_block = vmci_transport_notify_pkt_send_pre_block,
130014 + .send_pre_enqueue = vmci_transport_notify_pkt_send_pre_enqueue,
130015 + .send_post_enqueue = vmci_transport_notify_pkt_send_post_enqueue,
130016 + .process_request = vmci_transport_notify_pkt_process_request,
130017 + .process_negotiate = vmci_transport_notify_pkt_process_negotiate,
130018 };
130019 diff --git a/net/wireless/wext-core.c b/net/wireless/wext-core.c
130020 index c8717c1..08539f5 100644
130021 --- a/net/wireless/wext-core.c
130022 +++ b/net/wireless/wext-core.c
130023 @@ -748,8 +748,7 @@ static int ioctl_standard_iw_point(struct iw_point *iwp, unsigned int cmd,
130024 */
130025
130026 /* Support for very large requests */
130027 - if ((descr->flags & IW_DESCR_FLAG_NOMAX) &&
130028 - (user_length > descr->max_tokens)) {
130029 + if (user_length > descr->max_tokens) {
130030 /* Allow userspace to GET more than max so
130031 * we can support any size GET requests.
130032 * There is still a limit : -ENOMEM.
130033 @@ -788,22 +787,6 @@ static int ioctl_standard_iw_point(struct iw_point *iwp, unsigned int cmd,
130034 }
130035 }
130036
130037 - if (IW_IS_GET(cmd) && !(descr->flags & IW_DESCR_FLAG_NOMAX)) {
130038 - /*
130039 - * If this is a GET, but not NOMAX, it means that the extra
130040 - * data is not bounded by userspace, but by max_tokens. Thus
130041 - * set the length to max_tokens. This matches the extra data
130042 - * allocation.
130043 - * The driver should fill it with the number of tokens it
130044 - * provided, and it may check iwp->length rather than having
130045 - * knowledge of max_tokens. If the driver doesn't change the
130046 - * iwp->length, this ioctl just copies back max_token tokens
130047 - * filled with zeroes. Hopefully the driver isn't claiming
130048 - * them to be valid data.
130049 - */
130050 - iwp->length = descr->max_tokens;
130051 - }
130052 -
130053 err = handler(dev, info, (union iwreq_data *) iwp, extra);
130054
130055 iwp->length += essid_compat;
130056 diff --git a/net/x25/sysctl_net_x25.c b/net/x25/sysctl_net_x25.c
130057 index 4323952..a06dfe1 100644
130058 --- a/net/x25/sysctl_net_x25.c
130059 +++ b/net/x25/sysctl_net_x25.c
130060 @@ -70,7 +70,7 @@ static struct ctl_table x25_table[] = {
130061 .mode = 0644,
130062 .proc_handler = proc_dointvec,
130063 },
130064 - { 0, },
130065 + { },
130066 };
130067
130068 void __init x25_register_sysctl(void)
130069 diff --git a/net/x25/x25_proc.c b/net/x25/x25_proc.c
130070 index 0917f04..f4e3d8c 100644
130071 --- a/net/x25/x25_proc.c
130072 +++ b/net/x25/x25_proc.c
130073 @@ -209,7 +209,7 @@ static const struct file_operations x25_seq_forward_fops = {
130074
130075 int __init x25_proc_init(void)
130076 {
130077 - if (!proc_mkdir("x25", init_net.proc_net))
130078 + if (!proc_mkdir_restrict("x25", init_net.proc_net))
130079 return -ENOMEM;
130080
130081 if (!proc_create("x25/route", S_IRUGO, init_net.proc_net,
130082 diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
130083 index b5e665b..3030b1d 100644
130084 --- a/net/xfrm/xfrm_policy.c
130085 +++ b/net/xfrm/xfrm_policy.c
130086 @@ -332,7 +332,7 @@ static void xfrm_policy_kill(struct xfrm_policy *policy)
130087 {
130088 policy->walk.dead = 1;
130089
130090 - atomic_inc(&policy->genid);
130091 + atomic_inc_unchecked(&policy->genid);
130092
130093 if (del_timer(&policy->polq.hold_timer))
130094 xfrm_pol_put(policy);
130095 @@ -782,7 +782,7 @@ int xfrm_policy_insert(int dir, struct xfrm_policy *policy, int excl)
130096 else
130097 hlist_add_head(&policy->bydst, chain);
130098 __xfrm_policy_link(policy, dir);
130099 - atomic_inc(&net->xfrm.flow_cache_genid);
130100 + atomic_inc_unchecked(&net->xfrm.flow_cache_genid);
130101
130102 /* After previous checking, family can either be AF_INET or AF_INET6 */
130103 if (policy->family == AF_INET)
130104 @@ -1896,7 +1896,7 @@ xfrm_resolve_and_create_bundle(struct xfrm_policy **pols, int num_pols,
130105
130106 xdst->num_pols = num_pols;
130107 memcpy(xdst->pols, pols, sizeof(struct xfrm_policy *) * num_pols);
130108 - xdst->policy_genid = atomic_read(&pols[0]->genid);
130109 + xdst->policy_genid = atomic_read_unchecked(&pols[0]->genid);
130110
130111 return xdst;
130112 }
130113 @@ -2710,10 +2710,11 @@ void xfrm_garbage_collect(struct net *net)
130114 }
130115 EXPORT_SYMBOL(xfrm_garbage_collect);
130116
130117 -static void xfrm_garbage_collect_deferred(struct net *net)
130118 +void xfrm_garbage_collect_deferred(struct net *net)
130119 {
130120 flow_cache_flush_deferred(net);
130121 }
130122 +EXPORT_SYMBOL(xfrm_garbage_collect_deferred);
130123
130124 static void xfrm_init_pmtu(struct dst_entry *dst)
130125 {
130126 @@ -2763,7 +2764,7 @@ static int xfrm_bundle_ok(struct xfrm_dst *first)
130127 if (xdst->xfrm_genid != dst->xfrm->genid)
130128 return 0;
130129 if (xdst->num_pols > 0 &&
130130 - xdst->policy_genid != atomic_read(&xdst->pols[0]->genid))
130131 + xdst->policy_genid != atomic_read_unchecked(&xdst->pols[0]->genid))
130132 return 0;
130133
130134 mtu = dst_mtu(dst->child);
130135 @@ -2850,8 +2851,6 @@ int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo)
130136 dst_ops->link_failure = xfrm_link_failure;
130137 if (likely(dst_ops->neigh_lookup == NULL))
130138 dst_ops->neigh_lookup = xfrm_neigh_lookup;
130139 - if (likely(afinfo->garbage_collect == NULL))
130140 - afinfo->garbage_collect = xfrm_garbage_collect_deferred;
130141 rcu_assign_pointer(xfrm_policy_afinfo[afinfo->family], afinfo);
130142 }
130143 spin_unlock(&xfrm_policy_afinfo_lock);
130144 @@ -2885,7 +2884,6 @@ int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo)
130145 dst_ops->check = NULL;
130146 dst_ops->negative_advice = NULL;
130147 dst_ops->link_failure = NULL;
130148 - afinfo->garbage_collect = NULL;
130149 }
130150 return err;
130151 }
130152 @@ -3266,7 +3264,7 @@ static int xfrm_policy_migrate(struct xfrm_policy *pol,
130153 sizeof(pol->xfrm_vec[i].saddr));
130154 pol->xfrm_vec[i].encap_family = mp->new_family;
130155 /* flush bundles */
130156 - atomic_inc(&pol->genid);
130157 + atomic_inc_unchecked(&pol->genid);
130158 }
130159 }
130160
130161 diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
130162 index 9895a8c..705c302 100644
130163 --- a/net/xfrm/xfrm_state.c
130164 +++ b/net/xfrm/xfrm_state.c
130165 @@ -166,12 +166,14 @@ int xfrm_register_type(const struct xfrm_type *type, unsigned short family)
130166
130167 if (unlikely(afinfo == NULL))
130168 return -EAFNOSUPPORT;
130169 - typemap = afinfo->type_map;
130170 + typemap = (const struct xfrm_type **)afinfo->type_map;
130171 spin_lock_bh(&xfrm_type_lock);
130172
130173 - if (likely(typemap[type->proto] == NULL))
130174 + if (likely(typemap[type->proto] == NULL)) {
130175 + pax_open_kernel();
130176 typemap[type->proto] = type;
130177 - else
130178 + pax_close_kernel();
130179 + } else
130180 err = -EEXIST;
130181 spin_unlock_bh(&xfrm_type_lock);
130182 xfrm_state_put_afinfo(afinfo);
130183 @@ -187,13 +189,16 @@ int xfrm_unregister_type(const struct xfrm_type *type, unsigned short family)
130184
130185 if (unlikely(afinfo == NULL))
130186 return -EAFNOSUPPORT;
130187 - typemap = afinfo->type_map;
130188 + typemap = (const struct xfrm_type **)afinfo->type_map;
130189 spin_lock_bh(&xfrm_type_lock);
130190
130191 if (unlikely(typemap[type->proto] != type))
130192 err = -ENOENT;
130193 - else
130194 + else {
130195 + pax_open_kernel();
130196 typemap[type->proto] = NULL;
130197 + pax_close_kernel();
130198 + }
130199 spin_unlock_bh(&xfrm_type_lock);
130200 xfrm_state_put_afinfo(afinfo);
130201 return err;
130202 @@ -203,7 +208,6 @@ EXPORT_SYMBOL(xfrm_unregister_type);
130203 static const struct xfrm_type *xfrm_get_type(u8 proto, unsigned short family)
130204 {
130205 struct xfrm_state_afinfo *afinfo;
130206 - const struct xfrm_type **typemap;
130207 const struct xfrm_type *type;
130208 int modload_attempted = 0;
130209
130210 @@ -211,9 +215,8 @@ retry:
130211 afinfo = xfrm_state_get_afinfo(family);
130212 if (unlikely(afinfo == NULL))
130213 return NULL;
130214 - typemap = afinfo->type_map;
130215
130216 - type = typemap[proto];
130217 + type = afinfo->type_map[proto];
130218 if (unlikely(type && !try_module_get(type->owner)))
130219 type = NULL;
130220 if (!type && !modload_attempted) {
130221 @@ -247,7 +250,7 @@ int xfrm_register_mode(struct xfrm_mode *mode, int family)
130222 return -EAFNOSUPPORT;
130223
130224 err = -EEXIST;
130225 - modemap = afinfo->mode_map;
130226 + modemap = (struct xfrm_mode **)afinfo->mode_map;
130227 spin_lock_bh(&xfrm_mode_lock);
130228 if (modemap[mode->encap])
130229 goto out;
130230 @@ -256,8 +259,10 @@ int xfrm_register_mode(struct xfrm_mode *mode, int family)
130231 if (!try_module_get(afinfo->owner))
130232 goto out;
130233
130234 - mode->afinfo = afinfo;
130235 + pax_open_kernel();
130236 + *(const void **)&mode->afinfo = afinfo;
130237 modemap[mode->encap] = mode;
130238 + pax_close_kernel();
130239 err = 0;
130240
130241 out:
130242 @@ -281,10 +286,12 @@ int xfrm_unregister_mode(struct xfrm_mode *mode, int family)
130243 return -EAFNOSUPPORT;
130244
130245 err = -ENOENT;
130246 - modemap = afinfo->mode_map;
130247 + modemap = (struct xfrm_mode **)afinfo->mode_map;
130248 spin_lock_bh(&xfrm_mode_lock);
130249 if (likely(modemap[mode->encap] == mode)) {
130250 + pax_open_kernel();
130251 modemap[mode->encap] = NULL;
130252 + pax_close_kernel();
130253 module_put(mode->afinfo->owner);
130254 err = 0;
130255 }
130256 @@ -1505,10 +1512,10 @@ EXPORT_SYMBOL(xfrm_find_acq_byseq);
130257 u32 xfrm_get_acqseq(void)
130258 {
130259 u32 res;
130260 - static atomic_t acqseq;
130261 + static atomic_unchecked_t acqseq;
130262
130263 do {
130264 - res = atomic_inc_return(&acqseq);
130265 + res = atomic_inc_return_unchecked(&acqseq);
130266 } while (!res);
130267
130268 return res;
130269 @@ -1883,7 +1890,7 @@ static DEFINE_SPINLOCK(xfrm_km_lock);
130270 int xfrm_register_km(struct xfrm_mgr *km)
130271 {
130272 spin_lock_bh(&xfrm_km_lock);
130273 - list_add_tail_rcu(&km->list, &xfrm_km_list);
130274 + pax_list_add_tail_rcu((struct list_head *)&km->list, &xfrm_km_list);
130275 spin_unlock_bh(&xfrm_km_lock);
130276 return 0;
130277 }
130278 @@ -1892,7 +1899,7 @@ EXPORT_SYMBOL(xfrm_register_km);
130279 int xfrm_unregister_km(struct xfrm_mgr *km)
130280 {
130281 spin_lock_bh(&xfrm_km_lock);
130282 - list_del_rcu(&km->list);
130283 + pax_list_del_rcu((struct list_head *)&km->list);
130284 spin_unlock_bh(&xfrm_km_lock);
130285 synchronize_rcu();
130286 return 0;
130287 diff --git a/net/xfrm/xfrm_sysctl.c b/net/xfrm/xfrm_sysctl.c
130288 index 05a6e3d..6716ec9 100644
130289 --- a/net/xfrm/xfrm_sysctl.c
130290 +++ b/net/xfrm/xfrm_sysctl.c
130291 @@ -42,7 +42,7 @@ static struct ctl_table xfrm_table[] = {
130292
130293 int __net_init xfrm_sysctl_init(struct net *net)
130294 {
130295 - struct ctl_table *table;
130296 + ctl_table_no_const *table;
130297
130298 __xfrm_sysctl_init(net);
130299
130300 diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c
130301 index 805681a..17a7088 100644
130302 --- a/net/xfrm/xfrm_user.c
130303 +++ b/net/xfrm/xfrm_user.c
130304 @@ -2471,7 +2471,7 @@ static int xfrm_user_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
130305 return -EINVAL;
130306
130307 {
130308 - struct netlink_dump_control c = {
130309 + netlink_dump_control_no_const c = {
130310 .dump = link->dump,
130311 .done = link->done,
130312 };
130313 diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
130314 index 1db6d73..0819042 100644
130315 --- a/scripts/Kbuild.include
130316 +++ b/scripts/Kbuild.include
130317 @@ -146,7 +146,7 @@ cc-ifversion = $(shell [ $(cc-version) $(1) $(2) ] && echo $(3) || echo $(4))
130318 # cc-ldoption
130319 # Usage: ldflags += $(call cc-ldoption, -Wl$(comma)--hash-style=both)
130320 cc-ldoption = $(call try-run,\
130321 - $(CC) $(1) -nostdlib -x c /dev/null -o "$$TMP",$(1),$(2))
130322 + $(CC) $(1) -Wl,-r -nostdlib -x c /dev/null -o "$$TMP",$(1),$(2))
130323
130324 # ld-option
130325 # Usage: LDFLAGS += $(call ld-option, -X)
130326 diff --git a/scripts/Makefile.build b/scripts/Makefile.build
130327 index 01df30a..b687dbf 100644
130328 --- a/scripts/Makefile.build
130329 +++ b/scripts/Makefile.build
130330 @@ -60,7 +60,7 @@ endif
130331 endif
130332
130333 # Do not include host rules unless needed
130334 -ifneq ($(hostprogs-y)$(hostprogs-m),)
130335 +ifneq ($(hostprogs-y)$(hostprogs-m)$(hostlibs-y)$(hostlibs-m)$(hostcxxlibs-y)$(hostcxxlibs-m),)
130336 include scripts/Makefile.host
130337 endif
130338
130339 diff --git a/scripts/Makefile.clean b/scripts/Makefile.clean
130340 index 55c96cb..e4e88ab 100644
130341 --- a/scripts/Makefile.clean
130342 +++ b/scripts/Makefile.clean
130343 @@ -38,7 +38,8 @@ subdir-ymn := $(addprefix $(obj)/,$(subdir-ymn))
130344 __clean-files := $(extra-y) $(extra-m) $(extra-) \
130345 $(always) $(targets) $(clean-files) \
130346 $(host-progs) \
130347 - $(hostprogs-y) $(hostprogs-m) $(hostprogs-)
130348 + $(hostprogs-y) $(hostprogs-m) $(hostprogs-) \
130349 + $(hostlibs-y) $(hostlibs-m) $(hostlibs-)
130350
130351 __clean-files := $(filter-out $(no-clean-files), $(__clean-files))
130352
130353 diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn
130354 index 4efedcb..0220ab2 100644
130355 --- a/scripts/Makefile.extrawarn
130356 +++ b/scripts/Makefile.extrawarn
130357 @@ -26,6 +26,10 @@ warning-1 += $(call cc-option, -Wmissing-include-dirs)
130358 warning-1 += $(call cc-option, -Wunused-but-set-variable)
130359 warning-1 += $(call cc-disable-warning, missing-field-initializers)
130360
130361 +#warning-1 += $(call cc-option, -Wnull-dereference)
130362 +warning-1 += $(call cc-option, -Wduplicated-cond)
130363 +warning-1 += $(call cc-option, -Wlogical-op)
130364 +
130365 warning-2 := -Waggregate-return
130366 warning-2 += -Wcast-align
130367 warning-2 += -Wdisabled-optimization
130368 diff --git a/scripts/Makefile.gcc-plugins b/scripts/Makefile.gcc-plugins
130369 new file mode 100644
130370 index 0000000..f1bb96d
130371 --- /dev/null
130372 +++ b/scripts/Makefile.gcc-plugins
130373 @@ -0,0 +1,79 @@
130374 +ifndef DISABLE_PAX_PLUGINS
130375 +ifeq ($(call cc-ifversion, -ge, 0408, y), y)
130376 +PLUGINCC := $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-plugin.sh "$(HOSTCXX)" "$(HOSTCXX)" "$(CC)")
130377 +else
130378 +PLUGINCC := $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-plugin.sh "$(HOSTCC)" "$(HOSTCXX)" "$(CC)")
130379 +endif
130380 +ifneq ($(PLUGINCC),)
130381 +ifdef CONFIG_PAX_CONSTIFY_PLUGIN
130382 +CONSTIFY_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/constify_plugin.so -DCONSTIFY_PLUGIN
130383 +endif
130384 +ifdef CONFIG_PAX_MEMORY_STACKLEAK
130385 +STACKLEAK_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/stackleak_plugin.so -DSTACKLEAK_PLUGIN
130386 +STACKLEAK_PLUGIN_CFLAGS += -fplugin-arg-stackleak_plugin-track-lowest-sp=100
130387 +endif
130388 +ifdef CONFIG_KALLOCSTAT_PLUGIN
130389 +KALLOCSTAT_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/kallocstat_plugin.so
130390 +endif
130391 +ifdef CONFIG_PAX_KERNEXEC_PLUGIN
130392 +KERNEXEC_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/kernexec_plugin.so
130393 +KERNEXEC_PLUGIN_CFLAGS += -fplugin-arg-kernexec_plugin-method=$(CONFIG_PAX_KERNEXEC_PLUGIN_METHOD) -DKERNEXEC_PLUGIN
130394 +KERNEXEC_PLUGIN_AFLAGS := -DKERNEXEC_PLUGIN
130395 +endif
130396 +ifdef CONFIG_GRKERNSEC_RANDSTRUCT
130397 +RANDSTRUCT_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/randomize_layout_plugin.so -DRANDSTRUCT_PLUGIN
130398 +ifdef CONFIG_GRKERNSEC_RANDSTRUCT_PERFORMANCE
130399 +RANDSTRUCT_PLUGIN_CFLAGS += -fplugin-arg-randomize_layout_plugin-performance-mode
130400 +endif
130401 +endif
130402 +ifdef CONFIG_CHECKER_PLUGIN
130403 +ifeq ($(call cc-ifversion, -ge, 0406, y), y)
130404 +CHECKER_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/checker_plugin.so -DCHECKER_PLUGIN
130405 +ifdef CONFIG_CHECKER_PLUGIN_USER
130406 +CHECKER_PLUGIN_CFLAGS += -fplugin-arg-checker_plugin-user -DCHECKER_PLUGIN_USER
130407 +endif
130408 +ifdef CONFIG_CHECKER_PLUGIN_CONTEXT
130409 +CHECKER_PLUGIN_CFLAGS += -fplugin-arg-checker_plugin-context -DCHECKER_PLUGIN_CONTEXT
130410 +endif
130411 +endif
130412 +endif
130413 +COLORIZE_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/colorize_plugin.so
130414 +ifdef CONFIG_PAX_SIZE_OVERFLOW
130415 +SIZE_OVERFLOW_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/size_overflow_plugin/size_overflow_plugin.so -DSIZE_OVERFLOW_PLUGIN
130416 +endif
130417 +ifdef CONFIG_PAX_LATENT_ENTROPY
130418 +LATENT_ENTROPY_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/latent_entropy_plugin.so -DLATENT_ENTROPY_PLUGIN
130419 +endif
130420 +ifdef CONFIG_PAX_MEMORY_STRUCTLEAK
130421 +STRUCTLEAK_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/structleak_plugin.so -DSTRUCTLEAK_PLUGIN
130422 +endif
130423 +INITIFY_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/initify_plugin.so -DINITIFY_PLUGIN
130424 +GCC_PLUGINS_CFLAGS := $(CONSTIFY_PLUGIN_CFLAGS) $(STACKLEAK_PLUGIN_CFLAGS) $(KALLOCSTAT_PLUGIN_CFLAGS)
130425 +GCC_PLUGINS_CFLAGS += $(KERNEXEC_PLUGIN_CFLAGS) $(CHECKER_PLUGIN_CFLAGS) $(COLORIZE_PLUGIN_CFLAGS)
130426 +GCC_PLUGINS_CFLAGS += $(SIZE_OVERFLOW_PLUGIN_CFLAGS) $(LATENT_ENTROPY_PLUGIN_CFLAGS) $(STRUCTLEAK_PLUGIN_CFLAGS)
130427 +GCC_PLUGINS_CFLAGS += $(INITIFY_PLUGIN_CFLAGS)
130428 +GCC_PLUGINS_CFLAGS += $(RANDSTRUCT_PLUGIN_CFLAGS)
130429 +GCC_PLUGINS_AFLAGS := $(KERNEXEC_PLUGIN_AFLAGS)
130430 +export PLUGINCC GCC_PLUGINS_CFLAGS GCC_PLUGINS_AFLAGS CONSTIFY_PLUGIN LATENT_ENTROPY_PLUGIN_CFLAGS
130431 +ifeq ($(KBUILD_EXTMOD),)
130432 +gcc-plugins:
130433 + $(Q)$(MAKE) $(build)=tools/gcc
130434 +else
130435 +gcc-plugins: ;
130436 +endif
130437 +else
130438 +gcc-plugins:
130439 +ifeq ($(call cc-ifversion, -ge, 0405, y), y)
130440 +ifeq ($(call cc-ifversion, -ge, 0408, y), y)
130441 + $(CONFIG_SHELL) -x $(srctree)/scripts/gcc-plugin.sh "$(HOSTCXX)" "$(HOSTCXX)" "$(CC)"
130442 +else
130443 + $(CONFIG_SHELL) -x $(srctree)/scripts/gcc-plugin.sh "$(HOSTCC)" "$(HOSTCXX)" "$(CC)"
130444 +endif
130445 + $(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.)
130446 +else
130447 + $(warning Warning, your gcc version does not support plugins, you should upgrade it to gcc 4.5 at least.)
130448 +endif
130449 + $(warning PAX_MEMORY_STACKLEAK, constification, PAX_LATENT_ENTROPY and other features will be less secure. PAX_SIZE_OVERFLOW will not be active.)
130450 +endif
130451 +endif
130452 +
130453 diff --git a/scripts/Makefile.host b/scripts/Makefile.host
130454 index 133edfa..4d180d9 100644
130455 --- a/scripts/Makefile.host
130456 +++ b/scripts/Makefile.host
130457 @@ -20,7 +20,25 @@
130458 # Will compile qconf as a C++ program, and menu as a C program.
130459 # They are linked as C++ code to the executable qconf
130460
130461 +# hostprogs-y := conf
130462 +# conf-objs := conf.o libkconfig.so
130463 +# libkconfig-objs := expr.o type.o
130464 +# Will create a shared library named libkconfig.so that consists of
130465 +# expr.o and type.o (they are both compiled as C code and the object files
130466 +# are made as position independent code).
130467 +# conf.c is compiled as a C program, and conf.o is linked together with
130468 +# libkconfig.so as the executable conf.
130469 +# Note: Shared libraries consisting of C++ files are not supported
130470 +
130471 +# hostcc-option
130472 +# Usage: cflags-y += $(call hostcc-option,-march=winchip-c6,-march=i586)
130473 +
130474 +hostcc-option = $(call try-run,\
130475 + $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2))
130476 +
130477 __hostprogs := $(sort $(hostprogs-y) $(hostprogs-m))
130478 +__hostlibs := $(sort $(hostlibs-y) $(hostlibs-m))
130479 +__hostcxxlibs := $(sort $(hostcxxlibs-y) $(hostcxxlibs-m))
130480
130481 # C code
130482 # Executables compiled from a single .c file
130483 @@ -42,6 +60,19 @@ host-cxxmulti := $(foreach m,$(__hostprogs),$(if $($(m)-cxxobjs),$(m)))
130484 # C++ Object (.o) files compiled from .cc files
130485 host-cxxobjs := $(sort $(foreach m,$(host-cxxmulti),$($(m)-cxxobjs)))
130486
130487 +# Shared libaries (only .c supported)
130488 +# Shared libraries (.so) - all .so files referenced in "xxx-objs"
130489 +host-cshlib := $(sort $(filter %.so, $(host-cobjs)))
130490 +host-cshlib += $(sort $(filter %.so, $(__hostlibs)))
130491 +host-cxxshlib := $(sort $(filter %.so, $(__hostcxxlibs)))
130492 +# Remove .so files from "xxx-objs"
130493 +host-cobjs := $(filter-out %.so,$(host-cobjs))
130494 +host-cxxobjs := $(filter-out %.so,$(host-cxxobjs))
130495 +
130496 +# Object (.o) files used by the shared libaries
130497 +host-cshobjs := $(sort $(foreach m,$(host-cshlib),$($(m:.so=-objs))))
130498 +host-cxxshobjs := $(sort $(foreach m,$(host-cxxshlib),$($(m:.so=-objs))))
130499 +
130500 # output directory for programs/.o files
130501 # hostprogs-y := tools/build may have been specified.
130502 # Retrieve also directory of .o files from prog-objs or prog-cxxobjs notation
130503 @@ -56,6 +87,10 @@ host-cmulti := $(addprefix $(obj)/,$(host-cmulti))
130504 host-cobjs := $(addprefix $(obj)/,$(host-cobjs))
130505 host-cxxmulti := $(addprefix $(obj)/,$(host-cxxmulti))
130506 host-cxxobjs := $(addprefix $(obj)/,$(host-cxxobjs))
130507 +host-cshlib := $(addprefix $(obj)/,$(host-cshlib))
130508 +host-cxxshlib := $(addprefix $(obj)/,$(host-cxxshlib))
130509 +host-cshobjs := $(addprefix $(obj)/,$(host-cshobjs))
130510 +host-cxxshobjs := $(addprefix $(obj)/,$(host-cxxshobjs))
130511 host-objdirs := $(addprefix $(obj)/,$(host-objdirs))
130512
130513 obj-dirs += $(host-objdirs)
130514 @@ -124,5 +159,37 @@ quiet_cmd_host-cxxobjs = HOSTCXX $@
130515 $(host-cxxobjs): $(obj)/%.o: $(src)/%.cc FORCE
130516 $(call if_changed_dep,host-cxxobjs)
130517
130518 +# Compile .c file, create position independent .o file
130519 +# host-cshobjs -> .o
130520 +quiet_cmd_host-cshobjs = HOSTCC -fPIC $@
130521 + cmd_host-cshobjs = $(HOSTCC) $(hostc_flags) -fPIC -c -o $@ $<
130522 +$(host-cshobjs): $(obj)/%.o: $(src)/%.c FORCE
130523 + $(call if_changed_dep,host-cshobjs)
130524 +
130525 +# Compile .c file, create position independent .o file
130526 +# host-cxxshobjs -> .o
130527 +quiet_cmd_host-cxxshobjs = HOSTCXX -fPIC $@
130528 + cmd_host-cxxshobjs = $(HOSTCXX) $(hostcxx_flags) -fPIC -c -o $@ $<
130529 +$(host-cxxshobjs): $(obj)/%.o: $(src)/%.c FORCE
130530 + $(call if_changed_dep,host-cxxshobjs)
130531 +
130532 +# Link a shared library, based on position independent .o files
130533 +# *.o -> .so shared library (host-cshlib)
130534 +quiet_cmd_host-cshlib = HOSTLLD -shared $@
130535 + cmd_host-cshlib = $(HOSTCC) $(HOSTLDFLAGS) -shared -o $@ \
130536 + $(addprefix $(obj)/,$($(@F:.so=-objs))) \
130537 + $(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
130538 +$(host-cshlib): $(obj)/%: $(host-cshobjs) FORCE
130539 + $(call if_changed,host-cshlib)
130540 +
130541 +# Link a shared library, based on position independent .o files
130542 +# *.o -> .so shared library (host-cxxshlib)
130543 +quiet_cmd_host-cxxshlib = HOSTLLD -shared $@
130544 + cmd_host-cxxshlib = $(HOSTCXX) $(HOSTLDFLAGS) -shared -o $@ \
130545 + $(addprefix $(obj)/,$($(@F:.so=-objs))) \
130546 + $(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
130547 +$(host-cxxshlib): $(obj)/%: $(host-cxxshobjs) FORCE
130548 + $(call if_changed,host-cxxshlib)
130549 +
130550 targets += $(host-csingle) $(host-cmulti) $(host-cobjs)\
130551 - $(host-cxxmulti) $(host-cxxobjs)
130552 + $(host-cxxmulti) $(host-cxxobjs) $(host-cshlib) $(host-cshobjs) $(host-cxxshlib) $(host-cxxshobjs)
130553 diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c
130554 index c68fd61..f9a3b74 100644
130555 --- a/scripts/basic/fixdep.c
130556 +++ b/scripts/basic/fixdep.c
130557 @@ -161,7 +161,7 @@ static unsigned int strhash(const char *str, unsigned int sz)
130558 /*
130559 * Lookup a value in the configuration string.
130560 */
130561 -static int is_defined_config(const char *name, int len, unsigned int hash)
130562 +static int is_defined_config(const char *name, unsigned int len, unsigned int hash)
130563 {
130564 struct item *aux;
130565
130566 @@ -194,10 +194,10 @@ static void define_config(const char *name, int len, unsigned int hash)
130567 /*
130568 * Record the use of a CONFIG_* word.
130569 */
130570 -static void use_config(const char *m, int slen)
130571 +static void use_config(const char *m, unsigned int slen)
130572 {
130573 unsigned int hash = strhash(m, slen);
130574 - int c, i;
130575 + unsigned int c, i;
130576
130577 if (is_defined_config(m, slen, hash))
130578 return;
130579 @@ -218,9 +218,9 @@ static void use_config(const char *m, int slen)
130580
130581 static void parse_config_file(const char *map, size_t len)
130582 {
130583 - const int *end = (const int *) (map + len);
130584 + const unsigned int *end = (const unsigned int *) (map + len);
130585 /* start at +1, so that p can never be < map */
130586 - const int *m = (const int *) map + 1;
130587 + const unsigned int *m = (const unsigned int *) map + 1;
130588 const char *p, *q;
130589
130590 for (; m < end; m++) {
130591 @@ -417,7 +417,7 @@ static void print_deps(void)
130592 static void traps(void)
130593 {
130594 static char test[] __attribute__((aligned(sizeof(int)))) = "CONF";
130595 - int *p = (int *)test;
130596 + unsigned int *p = (unsigned int *)test;
130597
130598 if (*p != INT_CONF) {
130599 fprintf(stderr, "fixdep: sizeof(int) != 4 or wrong endianness? %#x\n",
130600 diff --git a/scripts/dtc/checks.c b/scripts/dtc/checks.c
130601 index e81a8c74..a615ad7 100644
130602 --- a/scripts/dtc/checks.c
130603 +++ b/scripts/dtc/checks.c
130604 @@ -277,7 +277,7 @@ NODE_ERROR(duplicate_property_names, NULL);
130605 static void check_node_name_chars(struct check *c, struct node *dt,
130606 struct node *node)
130607 {
130608 - int n = strspn(node->name, c->data);
130609 + size_t n = strspn(node->name, c->data);
130610
130611 if (n < strlen(node->name))
130612 FAIL(c, "Bad character '%c' in node %s",
130613 @@ -297,7 +297,7 @@ NODE_ERROR(node_name_format, NULL, &node_name_chars);
130614 static void check_property_name_chars(struct check *c, struct node *dt,
130615 struct node *node, struct property *prop)
130616 {
130617 - int n = strspn(prop->name, c->data);
130618 + size_t n = strspn(prop->name, c->data);
130619
130620 if (n < strlen(prop->name))
130621 FAIL(c, "Bad character '%c' in property name \"%s\", node %s",
130622 @@ -399,7 +399,7 @@ static void check_explicit_phandles(struct check *c, struct node *root,
130623
130624 phandle = propval_cell(prop);
130625
130626 - if ((phandle == 0) || (phandle == -1)) {
130627 + if ((phandle == 0) || (phandle == ~0U)) {
130628 FAIL(c, "%s has bad value (0x%x) in %s property",
130629 node->fullpath, phandle, prop->name);
130630 return;
130631 @@ -462,7 +462,7 @@ static void fixup_phandle_references(struct check *c, struct node *dt,
130632 cell_t phandle;
130633
130634 for_each_marker_of_type(m, REF_PHANDLE) {
130635 - assert(m->offset + sizeof(cell_t) <= prop->val.len);
130636 + assert(m->offset + (int)sizeof(cell_t) <= prop->val.len);
130637
130638 refnode = get_node_by_ref(dt, m->ref);
130639 if (! refnode) {
130640 @@ -688,7 +688,7 @@ static void enable_warning_error(struct check *c, bool warn, bool error)
130641
130642 static void disable_warning_error(struct check *c, bool warn, bool error)
130643 {
130644 - int i;
130645 + size_t i;
130646
130647 /* Lowering level, also lower it for things this is the prereq
130648 * for */
130649 @@ -709,7 +709,7 @@ static void disable_warning_error(struct check *c, bool warn, bool error)
130650
130651 void parse_checks_option(bool warn, bool error, const char *arg)
130652 {
130653 - int i;
130654 + size_t i;
130655 const char *name = arg;
130656 bool enable = true;
130657
130658 @@ -737,7 +737,7 @@ void parse_checks_option(bool warn, bool error, const char *arg)
130659 void process_checks(bool force, struct boot_info *bi)
130660 {
130661 struct node *dt = bi->dt;
130662 - int i;
130663 + size_t i;
130664 int error = 0;
130665
130666 for (i = 0; i < ARRAY_SIZE(check_table); i++) {
130667 diff --git a/scripts/dtc/data.c b/scripts/dtc/data.c
130668 index 8cae237..dcdab66 100644
130669 --- a/scripts/dtc/data.c
130670 +++ b/scripts/dtc/data.c
130671 @@ -94,10 +94,10 @@ struct data data_copy_file(FILE *f, size_t maxlen)
130672 {
130673 struct data d = empty_data;
130674
130675 - while (!feof(f) && (d.len < maxlen)) {
130676 + while (!feof(f) && ((size_t)d.len < maxlen)) {
130677 size_t chunksize, ret;
130678
130679 - if (maxlen == -1)
130680 + if (maxlen == ~0UL)
130681 chunksize = 4096;
130682 else
130683 chunksize = maxlen - d.len;
130684 @@ -108,7 +108,7 @@ struct data data_copy_file(FILE *f, size_t maxlen)
130685 if (ferror(f))
130686 die("Error reading file into data: %s", strerror(errno));
130687
130688 - if (d.len + ret < d.len)
130689 + if (d.len + ret < (size_t)d.len)
130690 die("Overflow reading file into data\n");
130691
130692 d.len += ret;
130693 diff --git a/scripts/dtc/flattree.c b/scripts/dtc/flattree.c
130694 index bd99fa2..e04d08d 100644
130695 --- a/scripts/dtc/flattree.c
130696 +++ b/scripts/dtc/flattree.c
130697 @@ -178,7 +178,7 @@ static void asm_emit_data(void *e, struct data d)
130698 for_each_marker_of_type(m, LABEL)
130699 emit_offset_label(f, m->ref, m->offset);
130700
130701 - while ((d.len - off) >= sizeof(uint32_t)) {
130702 + while ((d.len - off) >= (int)sizeof(uint32_t)) {
130703 asm_emit_cell(e, fdt32_to_cpu(*((uint32_t *)(d.val+off))));
130704 off += sizeof(uint32_t);
130705 }
130706 @@ -369,7 +369,7 @@ static void make_fdt_header(struct fdt_header *fdt,
130707 void dt_to_blob(FILE *f, struct boot_info *bi, int version)
130708 {
130709 struct version_info *vi = NULL;
130710 - int i;
130711 + size_t i;
130712 struct data blob = empty_data;
130713 struct data reservebuf = empty_data;
130714 struct data dtbuf = empty_data;
130715 @@ -463,7 +463,7 @@ static void dump_stringtable_asm(FILE *f, struct data strbuf)
130716 void dt_to_asm(FILE *f, struct boot_info *bi, int version)
130717 {
130718 struct version_info *vi = NULL;
130719 - int i;
130720 + size_t i;
130721 struct data strbuf = empty_data;
130722 struct reserve_info *re;
130723 const char *symprefix = "dt";
130724 @@ -543,7 +543,7 @@ void dt_to_asm(FILE *f, struct boot_info *bi, int version)
130725 ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->re.size >> 32));
130726 ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->re.size & 0xffffffff));
130727 }
130728 - for (i = 0; i < reservenum; i++) {
130729 + for (i = 0; i < (size_t)reservenum; i++) {
130730 fprintf(f, "\t.long\t0, 0\n\t.long\t0, 0\n");
130731 }
130732
130733 diff --git a/scripts/dtc/livetree.c b/scripts/dtc/livetree.c
130734 index e229b84..7141e8e 100644
130735 --- a/scripts/dtc/livetree.c
130736 +++ b/scripts/dtc/livetree.c
130737 @@ -492,7 +492,7 @@ struct node *get_node_by_phandle(struct node *tree, cell_t phandle)
130738 {
130739 struct node *child, *node;
130740
130741 - assert((phandle != 0) && (phandle != -1));
130742 + assert((phandle != 0) && (phandle != ~0U));
130743
130744 if (tree->phandle == phandle) {
130745 if (tree->deleted)
130746 @@ -523,7 +523,7 @@ cell_t get_node_phandle(struct node *root, struct node *node)
130747 {
130748 static cell_t phandle = 1; /* FIXME: ick, static local */
130749
130750 - if ((node->phandle != 0) && (node->phandle != -1))
130751 + if ((node->phandle != 0) && (node->phandle != ~0U))
130752 return node->phandle;
130753
130754 while (get_node_by_phandle(root, phandle))
130755 diff --git a/scripts/gcc-plugin.sh b/scripts/gcc-plugin.sh
130756 new file mode 100644
130757 index 0000000..eaa4fce
130758 --- /dev/null
130759 +++ b/scripts/gcc-plugin.sh
130760 @@ -0,0 +1,51 @@
130761 +#!/bin/sh
130762 +srctree=$(dirname "$0")
130763 +gccplugins_dir=$($3 -print-file-name=plugin)
130764 +plugincc=$($1 -E -x c++ - -o /dev/null -I"${srctree}"/../tools/gcc -I"${gccplugins_dir}"/include 2>&1 <<EOF
130765 +#include "gcc-common.h"
130766 +#if BUILDING_GCC_VERSION >= 4008 || defined(ENABLE_BUILD_WITH_CXX)
130767 +#warning $2 CXX
130768 +#else
130769 +#warning $1 CC
130770 +#endif
130771 +EOF
130772 +)
130773 +
130774 +if [ $? -ne 0 ]
130775 +then
130776 + exit 1
130777 +fi
130778 +
130779 +case "$plugincc" in
130780 + *"$1 CC"*)
130781 + echo "$1"
130782 + exit 0
130783 + ;;
130784 +
130785 + *"$2 CXX"*)
130786 + # the c++ compiler needs another test, see below
130787 + ;;
130788 +
130789 + *)
130790 + exit 1
130791 + ;;
130792 +esac
130793 +
130794 +# we need a c++ compiler that supports the designated initializer GNU extension
130795 +plugincc=$($2 -c -x c++ -std=gnu++98 - -fsyntax-only -I"${srctree}"/../tools/gcc -I"${gccplugins_dir}"/include 2>&1 <<EOF
130796 +#include "gcc-common.h"
130797 +class test {
130798 +public:
130799 + int test;
130800 +} test = {
130801 + .test = 1
130802 +};
130803 +EOF
130804 +)
130805 +
130806 +if [ $? -eq 0 ]
130807 +then
130808 + echo "$2"
130809 + exit 0
130810 +fi
130811 +exit 1
130812 diff --git a/scripts/headers_install.sh b/scripts/headers_install.sh
130813 index fdebd66..a349e33 100755
130814 --- a/scripts/headers_install.sh
130815 +++ b/scripts/headers_install.sh
130816 @@ -32,6 +32,7 @@ do
130817 FILE="$(basename "$i")"
130818 sed -r \
130819 -e 's/([ \t(])(__user|__force|__iomem)[ \t]/\1/g' \
130820 + -e 's/__intentional_overflow\([- \t,0-9]*\)//g' \
130821 -e 's/__attribute_const__([ \t]|$)/\1/g' \
130822 -e 's@^#include <linux/compiler.h>@@' \
130823 -e 's/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g' \
130824 diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
130825 index 8fa81e8..a9ac144 100644
130826 --- a/scripts/kallsyms.c
130827 +++ b/scripts/kallsyms.c
130828 @@ -89,7 +89,7 @@ static inline int is_arm_mapping_symbol(const char *str)
130829 }
130830
130831 static int check_symbol_range(const char *sym, unsigned long long addr,
130832 - struct addr_range *ranges, int entries)
130833 + struct addr_range *ranges, size_t entries)
130834 {
130835 size_t i;
130836 struct addr_range *ar;
130837 @@ -178,7 +178,7 @@ static int read_symbol(FILE *in, struct sym_entry *s)
130838 }
130839
130840 static int symbol_in_range(struct sym_entry *s, struct addr_range *ranges,
130841 - int entries)
130842 + size_t entries)
130843 {
130844 size_t i;
130845 struct addr_range *ar;
130846 diff --git a/scripts/kconfig/lkc.h b/scripts/kconfig/lkc.h
130847 index 91ca126..5f7cad6 100644
130848 --- a/scripts/kconfig/lkc.h
130849 +++ b/scripts/kconfig/lkc.h
130850 @@ -108,7 +108,8 @@ void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
130851 void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep);
130852 void menu_add_option(int token, char *arg);
130853 void menu_finalize(struct menu *parent);
130854 -void menu_set_type(int type);
130855 +enum symbol_type;
130856 +void menu_set_type(enum symbol_type type);
130857
130858 /* util.c */
130859 struct file *file_lookup(const char *name);
130860 @@ -123,7 +124,7 @@ struct gstr {
130861 * when max_width is not zero long lines in string s (if any) get
130862 * wrapped not to exceed the max_width value
130863 */
130864 - int max_width;
130865 + size_t max_width;
130866 };
130867 struct gstr str_new(void);
130868 void str_free(struct gstr *gs);
130869 diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
130870 index b05cc3d..72fb2a8 100644
130871 --- a/scripts/kconfig/menu.c
130872 +++ b/scripts/kconfig/menu.c
130873 @@ -109,7 +109,7 @@ void menu_add_dep(struct expr *dep)
130874 current_entry->dep = expr_alloc_and(current_entry->dep, menu_check_dep(dep));
130875 }
130876
130877 -void menu_set_type(int type)
130878 +void menu_set_type(enum symbol_type type)
130879 {
130880 struct symbol *sym = current_entry->sym;
130881
130882 diff --git a/scripts/kconfig/symbol.c b/scripts/kconfig/symbol.c
130883 index 25cf0c2..eb178ce 100644
130884 --- a/scripts/kconfig/symbol.c
130885 +++ b/scripts/kconfig/symbol.c
130886 @@ -956,7 +956,7 @@ const char *sym_escape_string_value(const char *in)
130887
130888 struct sym_match {
130889 struct symbol *sym;
130890 - off_t so, eo;
130891 + regoff_t so, eo;
130892 };
130893
130894 /* Compare matched symbols as thus:
130895 @@ -978,8 +978,8 @@ static int sym_rel_comp(const void *sym1, const void *sym2)
130896 * exactly; if this is the case, we can't decide which comes first,
130897 * and we fallback to sorting alphabetically.
130898 */
130899 - exact1 = (s1->eo - s1->so) == strlen(s1->sym->name);
130900 - exact2 = (s2->eo - s2->so) == strlen(s2->sym->name);
130901 + exact1 = (s1->eo - s1->so) == (long)strlen(s1->sym->name);
130902 + exact2 = (s2->eo - s2->so) == (long)strlen(s2->sym->name);
130903 if (exact1 && !exact2)
130904 return -1;
130905 if (!exact1 && exact2)
130906 diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh
130907 index ba6c34e..ea10bce 100755
130908 --- a/scripts/link-vmlinux.sh
130909 +++ b/scripts/link-vmlinux.sh
130910 @@ -179,7 +179,7 @@ else
130911 fi;
130912
130913 # final build of init/
130914 -${MAKE} -f "${srctree}/scripts/Makefile.build" obj=init
130915 +${MAKE} -f "${srctree}/scripts/Makefile.build" obj=init GCC_PLUGINS_CFLAGS="${GCC_PLUGINS_CFLAGS}" GCC_PLUGINS_AFLAGS="${GCC_PLUGINS_AFLAGS}"
130916
130917 kallsymso=""
130918 kallsyms_vmlinux=""
130919 diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
130920 index 5b96206..fc27edc 100644
130921 --- a/scripts/mod/file2alias.c
130922 +++ b/scripts/mod/file2alias.c
130923 @@ -156,7 +156,7 @@ static void device_id_check(const char *modname, const char *device_id,
130924 unsigned long size, unsigned long id_size,
130925 void *symval)
130926 {
130927 - int i;
130928 + unsigned int i;
130929
130930 if (size % id_size || size < id_size) {
130931 fatal("%s: sizeof(struct %s_device_id)=%lu is not a modulo "
130932 @@ -185,7 +185,7 @@ static void device_id_check(const char *modname, const char *device_id,
130933 /* USB is special because the bcdDevice can be matched against a numeric range */
130934 /* Looks like "usb:vNpNdNdcNdscNdpNicNiscNipNinN" */
130935 static void do_usb_entry(void *symval,
130936 - unsigned int bcdDevice_initial, int bcdDevice_initial_digits,
130937 + unsigned int bcdDevice_initial, unsigned int bcdDevice_initial_digits,
130938 unsigned char range_lo, unsigned char range_hi,
130939 unsigned char max, struct module *mod)
130940 {
130941 @@ -295,7 +295,7 @@ static void do_usb_entry_multi(void *symval, struct module *mod)
130942 {
130943 unsigned int devlo, devhi;
130944 unsigned char chi, clo, max;
130945 - int ndigits;
130946 + unsigned int ndigits;
130947
130948 DEF_FIELD(symval, usb_device_id, match_flags);
130949 DEF_FIELD(symval, usb_device_id, idVendor);
130950 @@ -576,7 +576,7 @@ static void do_pnp_device_entry(void *symval, unsigned long size,
130951 for (i = 0; i < count; i++) {
130952 DEF_FIELD_ADDR(symval + i*id_size, pnp_device_id, id);
130953 char acpi_id[sizeof(*id)];
130954 - int j;
130955 + unsigned int j;
130956
130957 buf_printf(&mod->dev_table_buf,
130958 "MODULE_ALIAS(\"pnp:d%s*\");\n", *id);
130959 @@ -605,7 +605,7 @@ static void do_pnp_card_entries(void *symval, unsigned long size,
130960
130961 for (j = 0; j < PNP_MAX_DEVICES; j++) {
130962 const char *id = (char *)(*devs)[j].id;
130963 - int i2, j2;
130964 + unsigned int i2, j2;
130965 int dup = 0;
130966
130967 if (!id[0])
130968 @@ -631,7 +631,7 @@ static void do_pnp_card_entries(void *symval, unsigned long size,
130969 /* add an individual alias for every device entry */
130970 if (!dup) {
130971 char acpi_id[PNP_ID_LEN];
130972 - int k;
130973 + unsigned int k;
130974
130975 buf_printf(&mod->dev_table_buf,
130976 "MODULE_ALIAS(\"pnp:d%s*\");\n", id);
130977 @@ -981,7 +981,7 @@ static void dmi_ascii_filter(char *d, const char *s)
130978 static int do_dmi_entry(const char *filename, void *symval,
130979 char *alias)
130980 {
130981 - int i, j;
130982 + unsigned int i, j;
130983 DEF_FIELD_ADDR(symval, dmi_system_id, matches);
130984 sprintf(alias, "dmi*");
130985
130986 diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
130987 index e080746..73f4e65 100644
130988 --- a/scripts/mod/modpost.c
130989 +++ b/scripts/mod/modpost.c
130990 @@ -37,6 +37,7 @@ static int vmlinux_section_warnings = 1;
130991 static int warn_unresolved = 0;
130992 /* How a symbol is exported */
130993 static int sec_mismatch_count = 0;
130994 +static int writable_fptr_count = 0;
130995 static int sec_mismatch_verbose = 1;
130996 static int sec_mismatch_fatal = 0;
130997 /* ignore missing files */
130998 @@ -946,6 +947,7 @@ enum mismatch {
130999 ANY_EXIT_TO_ANY_INIT,
131000 EXPORT_TO_INIT_EXIT,
131001 EXTABLE_TO_NON_TEXT,
131002 + DATA_TO_TEXT
131003 };
131004
131005 /**
131006 @@ -1072,6 +1074,12 @@ static const struct sectioncheck sectioncheck[] = {
131007 .good_tosec = {ALL_TEXT_SECTIONS , NULL},
131008 .mismatch = EXTABLE_TO_NON_TEXT,
131009 .handler = extable_mismatch_handler,
131010 +},
131011 +/* Do not reference code from writable data */
131012 +{
131013 + .fromsec = { DATA_SECTIONS, NULL },
131014 + .bad_tosec = { ALL_TEXT_SECTIONS, NULL },
131015 + .mismatch = DATA_TO_TEXT
131016 }
131017 };
131018
131019 @@ -1221,10 +1229,10 @@ static Elf_Sym *find_elf_symbol(struct elf_info *elf, Elf64_Sword addr,
131020 continue;
131021 if (ELF_ST_TYPE(sym->st_info) == STT_SECTION)
131022 continue;
131023 - if (sym->st_value == addr)
131024 - return sym;
131025 /* Find a symbol nearby - addr are maybe negative */
131026 d = sym->st_value - addr;
131027 + if (d == 0)
131028 + return sym;
131029 if (d < 0)
131030 d = addr - sym->st_value;
131031 if (d < distance) {
131032 @@ -1383,7 +1391,11 @@ static void report_sec_mismatch(const char *modname,
131033 char *prl_from;
131034 char *prl_to;
131035
131036 - sec_mismatch_count++;
131037 + if (mismatch->mismatch == DATA_TO_TEXT)
131038 + writable_fptr_count++;
131039 + else
131040 + sec_mismatch_count++;
131041 +
131042 if (!sec_mismatch_verbose)
131043 return;
131044
131045 @@ -1507,6 +1519,14 @@ static void report_sec_mismatch(const char *modname,
131046 fatal("There's a special handler for this mismatch type, "
131047 "we should never get here.");
131048 break;
131049 + case DATA_TO_TEXT:
131050 +#if 0
131051 + fprintf(stderr,
131052 + "The %s %s:%s references\n"
131053 + "the %s %s:%s%s\n",
131054 + from, fromsec, fromsym, to, tosec, tosym, to_p);
131055 +#endif
131056 + break;
131057 }
131058 fprintf(stderr, "\n");
131059 }
131060 @@ -1896,7 +1916,7 @@ static void section_rel(const char *modname, struct elf_info *elf,
131061 static void check_sec_ref(struct module *mod, const char *modname,
131062 struct elf_info *elf)
131063 {
131064 - int i;
131065 + unsigned int i;
131066 Elf_Shdr *sechdrs = elf->sechdrs;
131067
131068 /* Walk through all sections */
131069 @@ -2027,7 +2047,7 @@ void __attribute__((format(printf, 2, 3))) buf_printf(struct buffer *buf,
131070 va_end(ap);
131071 }
131072
131073 -void buf_write(struct buffer *buf, const char *s, int len)
131074 +void buf_write(struct buffer *buf, const char *s, unsigned int len)
131075 {
131076 if (buf->size - buf->pos < len) {
131077 buf->size += len + SZ;
131078 @@ -2257,7 +2277,7 @@ static void write_if_changed(struct buffer *b, const char *fname)
131079 if (fstat(fileno(file), &st) < 0)
131080 goto close_write;
131081
131082 - if (st.st_size != b->pos)
131083 + if (st.st_size != (off_t)b->pos)
131084 goto close_write;
131085
131086 tmp = NOFAIL(malloc(b->pos));
131087 @@ -2495,6 +2515,14 @@ int main(int argc, char **argv)
131088 "Set CONFIG_SECTION_MISMATCH_WARN_ONLY=y to allow them.\n");
131089 }
131090 }
131091 + if (writable_fptr_count) {
131092 + if (!sec_mismatch_verbose) {
131093 + warn("modpost: Found %d writable function pointer(s).\n"
131094 + "To see full details build your kernel with:\n"
131095 + "'make CONFIG_DEBUG_SECTION_MISMATCH=y'\n",
131096 + writable_fptr_count);
131097 + }
131098 + }
131099
131100 return err;
131101 }
131102 diff --git a/scripts/mod/modpost.h b/scripts/mod/modpost.h
131103 index 6a5e151..f2fbaf5 100644
131104 --- a/scripts/mod/modpost.h
131105 +++ b/scripts/mod/modpost.h
131106 @@ -98,15 +98,15 @@ void *do_nofail(void *ptr, const char *expr);
131107
131108 struct buffer {
131109 char *p;
131110 - int pos;
131111 - int size;
131112 + unsigned int pos;
131113 + unsigned int size;
131114 };
131115
131116 void __attribute__((format(printf, 2, 3)))
131117 buf_printf(struct buffer *buf, const char *fmt, ...);
131118
131119 void
131120 -buf_write(struct buffer *buf, const char *s, int len);
131121 +buf_write(struct buffer *buf, const char *s, unsigned int len);
131122
131123 struct module {
131124 struct module *next;
131125 diff --git a/scripts/mod/sumversion.c b/scripts/mod/sumversion.c
131126 index 944418d..15291e4 100644
131127 --- a/scripts/mod/sumversion.c
131128 +++ b/scripts/mod/sumversion.c
131129 @@ -470,7 +470,7 @@ static void write_version(const char *filename, const char *sum,
131130 goto out;
131131 }
131132
131133 - if (write(fd, sum, strlen(sum)+1) != strlen(sum)+1) {
131134 + if (write(fd, sum, strlen(sum)+1) != (ssize_t)strlen(sum)+1) {
131135 warn("writing sum in %s failed: %s\n",
131136 filename, strerror(errno));
131137 goto out;
131138 diff --git a/scripts/module-common.lds b/scripts/module-common.lds
131139 index 73a2c7d..df11b31 100644
131140 --- a/scripts/module-common.lds
131141 +++ b/scripts/module-common.lds
131142 @@ -6,6 +6,10 @@
131143 SECTIONS {
131144 /DISCARD/ : { *(.discard) }
131145
131146 + .rodata 0: {
131147 + *(.rodata) *(.rodata.*)
131148 + *(.data..read_only)
131149 + }
131150 __ksymtab 0 : { *(SORT(___ksymtab+*)) }
131151 __ksymtab_gpl 0 : { *(SORT(___ksymtab_gpl+*)) }
131152 __ksymtab_unused 0 : { *(SORT(___ksymtab_unused+*)) }
131153 diff --git a/scripts/package/Makefile b/scripts/package/Makefile
131154 index 1aca224..3c71eb0 100644
131155 --- a/scripts/package/Makefile
131156 +++ b/scripts/package/Makefile
131157 @@ -40,7 +40,7 @@ if test "$(objtree)" != "$(srctree)"; then \
131158 fi ; \
131159 $(srctree)/scripts/setlocalversion --save-scmversion; \
131160 ln -sf $(srctree) $(2); \
131161 -tar -cz $(RCS_TAR_IGNORE) -f $(2).tar.gz \
131162 +tar --owner=root --group=root -cz $(RCS_TAR_IGNORE) -f $(2).tar.gz \
131163 $(addprefix $(2)/,$(TAR_CONTENT) $(3)); \
131164 rm -f $(2) $(objtree)/.scmversion
131165
131166 diff --git a/scripts/package/builddeb b/scripts/package/builddeb
131167 index 6c3b038..54e0b5e 100755
131168 --- a/scripts/package/builddeb
131169 +++ b/scripts/package/builddeb
131170 @@ -326,6 +326,7 @@ fi
131171 (cd $srctree; find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform) >> "$objtree/debian/hdrsrcfiles"
131172 (cd $srctree; find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f) >> "$objtree/debian/hdrsrcfiles"
131173 (cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f) >> "$objtree/debian/hdrobjfiles"
131174 +(cd $objtree; find tools/gcc -name \*.so -o -name gcc-common.h) >> "$objtree/debian/hdrobjfiles"
131175 destdir=$kernel_headers_dir/usr/src/linux-headers-$version
131176 mkdir -p "$destdir"
131177 (cd $srctree; tar -c -f - -T -) < "$objtree/debian/hdrsrcfiles" | (cd $destdir; tar -xf -)
131178 diff --git a/scripts/package/mkspec b/scripts/package/mkspec
131179 index 71004da..3874acb 100755
131180 --- a/scripts/package/mkspec
131181 +++ b/scripts/package/mkspec
131182 @@ -120,29 +120,40 @@ echo 'rm -f $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE/{build,source}"
131183 echo "mkdir -p "'$RPM_BUILD_ROOT'"/usr/src/kernels/$KERNELRELEASE"
131184 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\""
131185 echo "tar "'$EXCLUDES'" -cf- . | (cd "'$RPM_BUILD_ROOT'"/usr/src/kernels/$KERNELRELEASE;tar xvf -)"
131186 -echo 'cd $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE"
131187 -echo "ln -sf /usr/src/kernels/$KERNELRELEASE build"
131188 -echo "ln -sf /usr/src/kernels/$KERNELRELEASE source"
131189 fi
131190
131191 echo ""
131192 echo "%clean"
131193 echo 'rm -rf $RPM_BUILD_ROOT'
131194 echo ""
131195 +echo "%pre"
131196 +echo 'chmod -f 0500 /boot'
131197 +echo 'if [ -d /lib/modules ]; then'
131198 +echo 'chmod -f 0500 /lib/modules'
131199 +echo 'fi'
131200 +echo 'if [ -d /lib32/modules ]; then'
131201 +echo 'chmod -f 0500 /lib32/modules'
131202 +echo 'fi'
131203 +echo 'if [ -d /lib64/modules ]; then'
131204 +echo 'chmod -f 0500 /lib64/modules'
131205 +echo 'fi'
131206 +echo ""
131207 +echo "%post devel"
131208 +echo "ln -sf /usr/src/kernels/$KERNELRELEASE /lib/modules/$KERNELRELEASE/build"
131209 +echo "ln -sf /usr/src/kernels/$KERNELRELEASE /lib/modules/$KERNELRELEASE/source"
131210 +echo ""
131211 echo "%post"
131212 -echo "if [ -x /sbin/installkernel -a -r /boot/vmlinuz-$KERNELRELEASE -a -r /boot/System.map-$KERNELRELEASE ]; then"
131213 -echo "cp /boot/vmlinuz-$KERNELRELEASE /boot/vmlinuz-$KERNELRELEASE-rpm"
131214 -echo "cp /boot/System.map-$KERNELRELEASE /boot/System.map-$KERNELRELEASE-rpm"
131215 -echo "rm -f /boot/vmlinuz-$KERNELRELEASE /boot/System.map-$KERNELRELEASE"
131216 -echo "/sbin/installkernel $KERNELRELEASE /boot/vmlinuz-$KERNELRELEASE-rpm /boot/System.map-$KERNELRELEASE-rpm"
131217 -echo "rm -f /boot/vmlinuz-$KERNELRELEASE-rpm /boot/System.map-$KERNELRELEASE-rpm"
131218 +echo "if [ -x /sbin/dracut ]; then"
131219 +echo '/sbin/new-kernel-pkg --dracut --mkinitrd --depmod --install --make-default '"$KERNELRELEASE"' || exit $?'
131220 +echo "else"
131221 +echo '/sbin/new-kernel-pkg --mkinitrd --depmod --install --make-default '"$KERNELRELEASE"' || exit $?'
131222 echo "fi"
131223 echo ""
131224 echo "%files"
131225 -echo '%defattr (-, root, root)'
131226 -echo "/lib/modules/$KERNELRELEASE"
131227 +echo '%defattr (400, root, root, 500)'
131228 echo "%exclude /lib/modules/$KERNELRELEASE/build"
131229 echo "%exclude /lib/modules/$KERNELRELEASE/source"
131230 +echo "/lib/modules/$KERNELRELEASE"
131231 echo "/lib/firmware/$KERNELRELEASE"
131232 echo "/boot/*"
131233 echo ""
131234 @@ -152,9 +163,11 @@ echo "/usr/include"
131235 echo ""
131236 if ! $PREBUILT; then
131237 echo "%files devel"
131238 -echo '%defattr (-, root, root)'
131239 +echo '%defattr (400, root, root, 500)'
131240 +echo "%dir /lib/modules/$KERNELRELEASE"
131241 echo "/usr/src/kernels/$KERNELRELEASE"
131242 -echo "/lib/modules/$KERNELRELEASE/build"
131243 -echo "/lib/modules/$KERNELRELEASE/source"
131244 +echo "%attr (500, root, root) /usr/src/kernels/$KERNELRELEASE/scripts/recordmcount"
131245 +echo "%attr (500, root, root) /usr/src/kernels/$KERNELRELEASE/scripts/basic/fixdep"
131246 +echo "%attr (500, root, root) /usr/src/kernels/$KERNELRELEASE/scripts/mod/modpost"
131247 echo ""
131248 fi
131249 diff --git a/scripts/pnmtologo.c b/scripts/pnmtologo.c
131250 index 4718d78..9220d58 100644
131251 --- a/scripts/pnmtologo.c
131252 +++ b/scripts/pnmtologo.c
131253 @@ -244,14 +244,14 @@ static void write_header(void)
131254 fprintf(out, " * Linux logo %s\n", logoname);
131255 fputs(" */\n\n", out);
131256 fputs("#include <linux/linux_logo.h>\n\n", out);
131257 - fprintf(out, "static unsigned char %s_data[] __initdata = {\n",
131258 + fprintf(out, "static unsigned char %s_data[] = {\n",
131259 logoname);
131260 }
131261
131262 static void write_footer(void)
131263 {
131264 fputs("\n};\n\n", out);
131265 - fprintf(out, "const struct linux_logo %s __initconst = {\n", logoname);
131266 + fprintf(out, "const struct linux_logo %s = {\n", logoname);
131267 fprintf(out, "\t.type\t\t= %s,\n", logo_types[logo_type]);
131268 fprintf(out, "\t.width\t\t= %d,\n", logo_width);
131269 fprintf(out, "\t.height\t\t= %d,\n", logo_height);
131270 @@ -381,7 +381,7 @@ static void write_logo_clut224(void)
131271 fputs("\n};\n\n", out);
131272
131273 /* write logo clut */
131274 - fprintf(out, "static unsigned char %s_clut[] __initdata = {\n",
131275 + fprintf(out, "static unsigned char %s_clut[] = {\n",
131276 logoname);
131277 write_hex_cnt = 0;
131278 for (i = 0; i < logo_clutsize; i++) {
131279 diff --git a/scripts/sortextable.h b/scripts/sortextable.h
131280 index ba87004..3f4852c 100644
131281 --- a/scripts/sortextable.h
131282 +++ b/scripts/sortextable.h
131283 @@ -108,9 +108,9 @@ do_func(Elf_Ehdr *ehdr, char const *const fname, table_sort_t custom_sort)
131284 const char *secstrtab;
131285 const char *strtab;
131286 char *extab_image;
131287 - int extab_index = 0;
131288 - int i;
131289 - int idx;
131290 + unsigned int extab_index = 0;
131291 + unsigned int i;
131292 + unsigned int idx;
131293 unsigned int num_sections;
131294 unsigned int secindex_strings;
131295
131296 diff --git a/scripts/tags.sh b/scripts/tags.sh
131297 index 2628890..1c2f5c6 100755
131298 --- a/scripts/tags.sh
131299 +++ b/scripts/tags.sh
131300 @@ -26,7 +26,7 @@ else
131301 fi
131302
131303 # ignore userspace tools
131304 -ignore="$ignore ( -path ${tree}tools ) -prune -o"
131305 +ignore="$ignore ( -path \"${tree}tools/[^g]*\" ) -prune -o"
131306
131307 # Find all available archs
131308 find_all_archs()
131309 diff --git a/security/Kconfig b/security/Kconfig
131310 index e452378..16eb80f 100644
131311 --- a/security/Kconfig
131312 +++ b/security/Kconfig
131313 @@ -4,6 +4,980 @@
131314
131315 menu "Security options"
131316
131317 +menu "Grsecurity"
131318 +
131319 + config ARCH_TRACK_EXEC_LIMIT
131320 + bool
131321 +
131322 + config PAX_KERNEXEC_PLUGIN
131323 + bool
131324 +
131325 + config PAX_PER_CPU_PGD
131326 + bool
131327 +
131328 + config TASK_SIZE_MAX_SHIFT
131329 + int
131330 + depends on X86_64
131331 + default 47 if !PAX_PER_CPU_PGD
131332 + default 42 if PAX_PER_CPU_PGD
131333 +
131334 + config PAX_ENABLE_PAE
131335 + bool
131336 + default y if (X86_32 && (MPENTIUM4 || MK8 || MPSC || MCORE2 || MATOM))
131337 +
131338 + config PAX_USERCOPY_SLABS
131339 + bool
131340 +
131341 +config GRKERNSEC
131342 + bool "Grsecurity"
131343 + select CRYPTO
131344 + select CRYPTO_SHA256
131345 + select PROC_FS
131346 + select STOP_MACHINE
131347 + select TTY
131348 + select DEBUG_KERNEL
131349 + select DEBUG_LIST
131350 + select MULTIUSER
131351 + help
131352 + If you say Y here, you will be able to configure many features
131353 + that will enhance the security of your system. It is highly
131354 + recommended that you say Y here and read through the help
131355 + for each option so that you fully understand the features and
131356 + can evaluate their usefulness for your machine.
131357 +
131358 +choice
131359 + prompt "Configuration Method"
131360 + depends on GRKERNSEC
131361 + default GRKERNSEC_CONFIG_CUSTOM
131362 + help
131363 +
131364 +config GRKERNSEC_CONFIG_AUTO
131365 + bool "Automatic"
131366 + help
131367 + If you choose this configuration method, you'll be able to answer a small
131368 + number of simple questions about how you plan to use this kernel.
131369 + The settings of grsecurity and PaX will be automatically configured for
131370 + the highest commonly-used settings within the provided constraints.
131371 +
131372 + If you require additional configuration, custom changes can still be made
131373 + from the "custom configuration" menu.
131374 +
131375 +config GRKERNSEC_CONFIG_CUSTOM
131376 + bool "Custom"
131377 + help
131378 + If you choose this configuration method, you'll be able to configure all
131379 + grsecurity and PaX settings manually. Via this method, no options are
131380 + automatically enabled.
131381 +
131382 + Take note that if menuconfig is exited with this configuration method
131383 + chosen, you will not be able to use the automatic configuration methods
131384 + without starting again with a kernel configuration with no grsecurity
131385 + or PaX options specified inside.
131386 +
131387 +endchoice
131388 +
131389 +choice
131390 + prompt "Usage Type"
131391 + depends on (GRKERNSEC && GRKERNSEC_CONFIG_AUTO)
131392 + default GRKERNSEC_CONFIG_SERVER
131393 + help
131394 +
131395 +config GRKERNSEC_CONFIG_SERVER
131396 + bool "Server"
131397 + help
131398 + Choose this option if you plan to use this kernel on a server.
131399 +
131400 +config GRKERNSEC_CONFIG_DESKTOP
131401 + bool "Desktop"
131402 + help
131403 + Choose this option if you plan to use this kernel on a desktop.
131404 +
131405 +endchoice
131406 +
131407 +choice
131408 + prompt "Virtualization Type"
131409 + depends on (GRKERNSEC && X86 && GRKERNSEC_CONFIG_AUTO)
131410 + default GRKERNSEC_CONFIG_VIRT_NONE
131411 + help
131412 +
131413 +config GRKERNSEC_CONFIG_VIRT_NONE
131414 + bool "None"
131415 + help
131416 + Choose this option if this kernel will be run on bare metal.
131417 +
131418 +config GRKERNSEC_CONFIG_VIRT_GUEST
131419 + bool "Guest"
131420 + help
131421 + Choose this option if this kernel will be run as a VM guest.
131422 +
131423 +config GRKERNSEC_CONFIG_VIRT_HOST
131424 + bool "Host"
131425 + help
131426 + Choose this option if this kernel will be run as a VM host.
131427 +
131428 +endchoice
131429 +
131430 +choice
131431 + prompt "Virtualization Hardware"
131432 + depends on (GRKERNSEC && X86 && GRKERNSEC_CONFIG_AUTO && (GRKERNSEC_CONFIG_VIRT_GUEST || GRKERNSEC_CONFIG_VIRT_HOST))
131433 + help
131434 +
131435 +config GRKERNSEC_CONFIG_VIRT_EPT
131436 + bool "EPT/RVI Processor Support"
131437 + depends on X86
131438 + help
131439 + Choose this option if your CPU supports the EPT or RVI features of 2nd-gen
131440 + hardware virtualization. This allows for additional kernel hardening protections
131441 + to operate without additional performance impact.
131442 +
131443 + To see if your Intel processor supports EPT, see:
131444 + http://ark.intel.com/Products/VirtualizationTechnology
131445 + (Most Core i3/5/7 support EPT)
131446 +
131447 + To see if your AMD processor supports RVI, see:
131448 + http://support.amd.com/us/kbarticles/Pages/GPU120AMDRVICPUsHyperVWin8.aspx
131449 +
131450 +config GRKERNSEC_CONFIG_VIRT_SOFT
131451 + bool "First-gen/No Hardware Virtualization"
131452 + help
131453 + Choose this option if you use an Atom/Pentium/Core 2 processor that either doesn't
131454 + support hardware virtualization or doesn't support the EPT/RVI extensions.
131455 +
131456 +endchoice
131457 +
131458 +choice
131459 + prompt "Virtualization Software"
131460 + depends on (GRKERNSEC && GRKERNSEC_CONFIG_AUTO && (GRKERNSEC_CONFIG_VIRT_GUEST || GRKERNSEC_CONFIG_VIRT_HOST))
131461 + help
131462 +
131463 +config GRKERNSEC_CONFIG_VIRT_XEN
131464 + bool "Xen"
131465 + help
131466 + Choose this option if this kernel is running as a Xen guest or host.
131467 +
131468 +config GRKERNSEC_CONFIG_VIRT_VMWARE
131469 + bool "VMWare"
131470 + help
131471 + Choose this option if this kernel is running as a VMWare guest or host.
131472 +
131473 +config GRKERNSEC_CONFIG_VIRT_KVM
131474 + bool "KVM"
131475 + help
131476 + Choose this option if this kernel is running as a KVM guest or host.
131477 +
131478 +config GRKERNSEC_CONFIG_VIRT_VIRTUALBOX
131479 + bool "VirtualBox"
131480 + help
131481 + Choose this option if this kernel is running as a VirtualBox guest or host.
131482 +
131483 +config GRKERNSEC_CONFIG_VIRT_HYPERV
131484 + bool "Hyper-V"
131485 + help
131486 + Choose this option if this kernel is running as a Hyper-V guest.
131487 +
131488 +endchoice
131489 +
131490 +choice
131491 + prompt "Required Priorities"
131492 + depends on (GRKERNSEC && GRKERNSEC_CONFIG_AUTO)
131493 + default GRKERNSEC_CONFIG_PRIORITY_PERF
131494 + help
131495 +
131496 +config GRKERNSEC_CONFIG_PRIORITY_PERF
131497 + bool "Performance"
131498 + help
131499 + Choose this option if performance is of highest priority for this deployment
131500 + of grsecurity. Features like UDEREF on a 64bit kernel, kernel stack clearing,
131501 + clearing of structures intended for userland, and freed memory sanitizing will
131502 + be disabled.
131503 +
131504 +config GRKERNSEC_CONFIG_PRIORITY_SECURITY
131505 + bool "Security"
131506 + help
131507 + Choose this option if security is of highest priority for this deployment of
131508 + grsecurity. UDEREF, kernel stack clearing, clearing of structures intended
131509 + for userland, and freed memory sanitizing will be enabled for this kernel.
131510 + In a worst-case scenario, these features can introduce a 20% performance hit
131511 + (UDEREF on x64 contributing half of this hit).
131512 +
131513 +endchoice
131514 +
131515 +menu "Default Special Groups"
131516 +depends on (GRKERNSEC && GRKERNSEC_CONFIG_AUTO)
131517 +
131518 +config GRKERNSEC_PROC_GID
131519 + int "GID exempted from /proc restrictions"
131520 + default 1001
131521 + help
131522 + Setting this GID determines which group will be exempted from
131523 + grsecurity's /proc restrictions, allowing users of the specified
131524 + group to view network statistics and the existence of other users'
131525 + processes on the system. This GID may also be chosen at boot time
131526 + via "grsec_proc_gid=" on the kernel commandline.
131527 +
131528 +config GRKERNSEC_TPE_UNTRUSTED_GID
131529 + int "GID for TPE-untrusted users"
131530 + depends on GRKERNSEC_CONFIG_SERVER && GRKERNSEC_TPE && !GRKERNSEC_TPE_INVERT
131531 + default 1005
131532 + help
131533 + Setting this GID determines which group untrusted users should
131534 + be added to. These users will be placed under grsecurity's Trusted Path
131535 + Execution mechanism, preventing them from executing their own binaries.
131536 + The users will only be able to execute binaries in directories owned and
131537 + writable only by the root user. If the sysctl option is enabled, a sysctl
131538 + option with name "tpe_gid" is created.
131539 +
131540 +config GRKERNSEC_TPE_TRUSTED_GID
131541 + int "GID for TPE-trusted users"
131542 + depends on GRKERNSEC_CONFIG_SERVER && GRKERNSEC_TPE && GRKERNSEC_TPE_INVERT
131543 + default 1005
131544 + help
131545 + Setting this GID determines what group TPE restrictions will be
131546 + *disabled* for. If the sysctl option is enabled, a sysctl option
131547 + with name "tpe_gid" is created.
131548 +
131549 +config GRKERNSEC_SYMLINKOWN_GID
131550 + int "GID for users with kernel-enforced SymlinksIfOwnerMatch"
131551 + depends on GRKERNSEC_CONFIG_SERVER
131552 + default 1006
131553 + help
131554 + Setting this GID determines what group kernel-enforced
131555 + SymlinksIfOwnerMatch will be enabled for. If the sysctl option
131556 + is enabled, a sysctl option with name "symlinkown_gid" is created.
131557 +
131558 +
131559 +endmenu
131560 +
131561 +menu "Customize Configuration"
131562 +depends on GRKERNSEC
131563 +
131564 +menu "PaX"
131565 +
131566 +config PAX
131567 + bool "Enable various PaX features"
131568 + default y if GRKERNSEC_CONFIG_AUTO
131569 + depends on GRKERNSEC && (ALPHA || ARM || AVR32 || IA64 || MIPS || PARISC || PPC || SPARC || X86)
131570 + help
131571 + This allows you to enable various PaX features. PaX adds
131572 + intrusion prevention mechanisms to the kernel that reduce
131573 + the risks posed by exploitable memory corruption bugs.
131574 +
131575 +menu "PaX Control"
131576 + depends on PAX
131577 +
131578 +config PAX_SOFTMODE
131579 + bool 'Support soft mode'
131580 + help
131581 + Enabling this option will allow you to run PaX in soft mode, that
131582 + is, PaX features will not be enforced by default, only on executables
131583 + marked explicitly. You must also enable PT_PAX_FLAGS or XATTR_PAX_FLAGS
131584 + support as they are the only way to mark executables for soft mode use.
131585 +
131586 + Soft mode can be activated by using the "pax_softmode=1" kernel command
131587 + line option on boot. Furthermore you can control various PaX features
131588 + at runtime via the entries in /proc/sys/kernel/pax.
131589 +
131590 +config PAX_EI_PAX
131591 + bool 'Use legacy ELF header marking'
131592 + default y if GRKERNSEC_CONFIG_AUTO
131593 + help
131594 + Enabling this option will allow you to control PaX features on
131595 + a per executable basis via the 'chpax' utility available at
131596 + http://pax.grsecurity.net/. The control flags will be read from
131597 + an otherwise reserved part of the ELF header. This marking has
131598 + numerous drawbacks (no support for soft-mode, toolchain does not
131599 + know about the non-standard use of the ELF header) therefore it
131600 + has been deprecated in favour of PT_PAX_FLAGS and XATTR_PAX_FLAGS
131601 + support.
131602 +
131603 + Note that if you enable PT_PAX_FLAGS or XATTR_PAX_FLAGS marking
131604 + support as well, they will override the legacy EI_PAX marks.
131605 +
131606 + If you enable none of the marking options then all applications
131607 + will run with PaX enabled on them by default.
131608 +
131609 +config PAX_PT_PAX_FLAGS
131610 + bool 'Use ELF program header marking'
131611 + default y if GRKERNSEC_CONFIG_AUTO
131612 + help
131613 + Enabling this option will allow you to control PaX features on
131614 + a per executable basis via the 'paxctl' utility available at
131615 + http://pax.grsecurity.net/. The control flags will be read from
131616 + a PaX specific ELF program header (PT_PAX_FLAGS). This marking
131617 + has the benefits of supporting both soft mode and being fully
131618 + integrated into the toolchain (the binutils patch is available
131619 + from http://pax.grsecurity.net).
131620 +
131621 + Note that if you enable the legacy EI_PAX marking support as well,
131622 + the EI_PAX marks will be overridden by the PT_PAX_FLAGS marks.
131623 +
131624 + If you enable both PT_PAX_FLAGS and XATTR_PAX_FLAGS support then you
131625 + must make sure that the marks are the same if a binary has both marks.
131626 +
131627 + If you enable none of the marking options then all applications
131628 + will run with PaX enabled on them by default.
131629 +
131630 +config PAX_XATTR_PAX_FLAGS
131631 + bool 'Use filesystem extended attributes marking'
131632 + default y if GRKERNSEC_CONFIG_AUTO
131633 + select CIFS_XATTR if CIFS
131634 + select EXT2_FS_XATTR if EXT2_FS
131635 + select EXT3_FS_XATTR if EXT3_FS
131636 + select F2FS_FS_XATTR if F2FS_FS
131637 + select JFFS2_FS_XATTR if JFFS2_FS
131638 + select REISERFS_FS_XATTR if REISERFS_FS
131639 + select SQUASHFS_XATTR if SQUASHFS
131640 + select TMPFS_XATTR if TMPFS
131641 + help
131642 + Enabling this option will allow you to control PaX features on
131643 + a per executable basis via the 'setfattr' utility. The control
131644 + flags will be read from the user.pax.flags extended attribute of
131645 + the file. This marking has the benefit of supporting binary-only
131646 + applications that self-check themselves (e.g., skype) and would
131647 + not tolerate chpax/paxctl changes. The main drawback is that
131648 + extended attributes are not supported by some filesystems (e.g.,
131649 + isofs, udf, vfat) so copying files through such filesystems will
131650 + lose the extended attributes and these PaX markings.
131651 +
131652 + Note that if you enable the legacy EI_PAX marking support as well,
131653 + the EI_PAX marks will be overridden by the XATTR_PAX_FLAGS marks.
131654 +
131655 + If you enable both PT_PAX_FLAGS and XATTR_PAX_FLAGS support then you
131656 + must make sure that the marks are the same if a binary has both marks.
131657 +
131658 + If you enable none of the marking options then all applications
131659 + will run with PaX enabled on them by default.
131660 +
131661 +choice
131662 + prompt 'MAC system integration'
131663 + default PAX_HAVE_ACL_FLAGS
131664 + help
131665 + Mandatory Access Control systems have the option of controlling
131666 + PaX flags on a per executable basis, choose the method supported
131667 + by your particular system.
131668 +
131669 + - "none": if your MAC system does not interact with PaX,
131670 + - "direct": if your MAC system defines pax_set_initial_flags() itself,
131671 + - "hook": if your MAC system uses the pax_set_initial_flags_func callback.
131672 +
131673 + NOTE: this option is for developers/integrators only.
131674 +
131675 + config PAX_NO_ACL_FLAGS
131676 + bool 'none'
131677 +
131678 + config PAX_HAVE_ACL_FLAGS
131679 + bool 'direct'
131680 +
131681 + config PAX_HOOK_ACL_FLAGS
131682 + bool 'hook'
131683 +endchoice
131684 +
131685 +endmenu
131686 +
131687 +menu "Non-executable pages"
131688 + depends on PAX
131689 +
131690 +config PAX_NOEXEC
131691 + bool "Enforce non-executable pages"
131692 + default y if GRKERNSEC_CONFIG_AUTO
131693 + depends on ALPHA || (ARM && (CPU_V6 || CPU_V6K || CPU_V7)) || IA64 || MIPS || PARISC || PPC || S390 || SPARC || X86
131694 + help
131695 + By design some architectures do not allow for protecting memory
131696 + pages against execution or even if they do, Linux does not make
131697 + use of this feature. In practice this means that if a page is
131698 + readable (such as the stack or heap) it is also executable.
131699 +
131700 + There is a well known exploit technique that makes use of this
131701 + fact and a common programming mistake where an attacker can
131702 + introduce code of his choice somewhere in the attacked program's
131703 + memory (typically the stack or the heap) and then execute it.
131704 +
131705 + If the attacked program was running with different (typically
131706 + higher) privileges than that of the attacker, then he can elevate
131707 + his own privilege level (e.g. get a root shell, write to files for
131708 + which he does not have write access to, etc).
131709 +
131710 + Enabling this option will let you choose from various features
131711 + that prevent the injection and execution of 'foreign' code in
131712 + a program.
131713 +
131714 + This will also break programs that rely on the old behaviour and
131715 + expect that dynamically allocated memory via the malloc() family
131716 + of functions is executable (which it is not). Notable examples
131717 + are the XFree86 4.x server, the java runtime and wine.
131718 +
131719 +config PAX_PAGEEXEC
131720 + bool "Paging based non-executable pages"
131721 + default y if GRKERNSEC_CONFIG_AUTO
131722 + 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)
131723 + select ARCH_TRACK_EXEC_LIMIT if X86_32
131724 + help
131725 + This implementation is based on the paging feature of the CPU.
131726 + On i386 without hardware non-executable bit support there is a
131727 + variable but usually low performance impact, however on Intel's
131728 + P4 core based CPUs it is very high so you should not enable this
131729 + for kernels meant to be used on such CPUs.
131730 +
131731 + On alpha, avr32, ia64, parisc, sparc, sparc64, x86_64 and i386
131732 + with hardware non-executable bit support there is no performance
131733 + impact, on ppc the impact is negligible.
131734 +
131735 + Note that several architectures require various emulations due to
131736 + badly designed userland ABIs, this will cause a performance impact
131737 + but will disappear as soon as userland is fixed. For example, ppc
131738 + userland MUST have been built with secure-plt by a recent toolchain.
131739 +
131740 +config PAX_SEGMEXEC
131741 + bool "Segmentation based non-executable pages"
131742 + default y if GRKERNSEC_CONFIG_AUTO
131743 + depends on PAX_NOEXEC && X86_32
131744 + help
131745 + This implementation is based on the segmentation feature of the
131746 + CPU and has a very small performance impact, however applications
131747 + will be limited to a 1.5 GB address space instead of the normal
131748 + 3 GB.
131749 +
131750 +config PAX_EMUTRAMP
131751 + bool "Emulate trampolines"
131752 + default y if PARISC || GRKERNSEC_CONFIG_AUTO
131753 + depends on (PAX_PAGEEXEC || PAX_SEGMEXEC) && (PARISC || X86)
131754 + help
131755 + There are some programs and libraries that for one reason or
131756 + another attempt to execute special small code snippets from
131757 + non-executable memory pages. Most notable examples are the
131758 + signal handler return code generated by the kernel itself and
131759 + the GCC trampolines.
131760 +
131761 + If you enabled CONFIG_PAX_PAGEEXEC or CONFIG_PAX_SEGMEXEC then
131762 + such programs will no longer work under your kernel.
131763 +
131764 + As a remedy you can say Y here and use the 'chpax' or 'paxctl'
131765 + utilities to enable trampoline emulation for the affected programs
131766 + yet still have the protection provided by the non-executable pages.
131767 +
131768 + On parisc you MUST enable this option and EMUSIGRT as well, otherwise
131769 + your system will not even boot.
131770 +
131771 + Alternatively you can say N here and use the 'chpax' or 'paxctl'
131772 + utilities to disable CONFIG_PAX_PAGEEXEC and CONFIG_PAX_SEGMEXEC
131773 + for the affected files.
131774 +
131775 + NOTE: enabling this feature *may* open up a loophole in the
131776 + protection provided by non-executable pages that an attacker
131777 + could abuse. Therefore the best solution is to not have any
131778 + files on your system that would require this option. This can
131779 + be achieved by not using libc5 (which relies on the kernel
131780 + signal handler return code) and not using or rewriting programs
131781 + that make use of the nested function implementation of GCC.
131782 + Skilled users can just fix GCC itself so that it implements
131783 + nested function calls in a way that does not interfere with PaX.
131784 +
131785 +config PAX_EMUSIGRT
131786 + bool "Automatically emulate sigreturn trampolines"
131787 + depends on PAX_EMUTRAMP && PARISC
131788 + default y
131789 + help
131790 + Enabling this option will have the kernel automatically detect
131791 + and emulate signal return trampolines executing on the stack
131792 + that would otherwise lead to task termination.
131793 +
131794 + This solution is intended as a temporary one for users with
131795 + legacy versions of libc (libc5, glibc 2.0, uClibc before 0.9.17,
131796 + Modula-3 runtime, etc) or executables linked to such, basically
131797 + everything that does not specify its own SA_RESTORER function in
131798 + normal executable memory like glibc 2.1+ does.
131799 +
131800 + On parisc you MUST enable this option, otherwise your system will
131801 + not even boot.
131802 +
131803 + NOTE: this feature cannot be disabled on a per executable basis
131804 + and since it *does* open up a loophole in the protection provided
131805 + by non-executable pages, the best solution is to not have any
131806 + files on your system that would require this option.
131807 +
131808 +config PAX_MPROTECT
131809 + bool "Restrict mprotect()"
131810 + default y if GRKERNSEC_CONFIG_AUTO
131811 + depends on (PAX_PAGEEXEC || PAX_SEGMEXEC)
131812 + help
131813 + Enabling this option will prevent programs from
131814 + - changing the executable status of memory pages that were
131815 + not originally created as executable,
131816 + - making read-only executable pages writable again,
131817 + - creating executable pages from anonymous memory,
131818 + - making read-only-after-relocations (RELRO) data pages writable again.
131819 +
131820 + You should say Y here to complete the protection provided by
131821 + the enforcement of non-executable pages.
131822 +
131823 + NOTE: you can use the 'chpax' or 'paxctl' utilities to control
131824 + this feature on a per file basis.
131825 +
131826 +config PAX_MPROTECT_COMPAT
131827 + bool "Use legacy/compat protection demoting (read help)"
131828 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_DESKTOP)
131829 + depends on PAX_MPROTECT
131830 + help
131831 + The current implementation of PAX_MPROTECT denies RWX allocations/mprotects
131832 + by sending the proper error code to the application. For some broken
131833 + userland, this can cause problems with Python or other applications. The
131834 + current implementation however allows for applications like clamav to
131835 + detect if JIT compilation/execution is allowed and to fall back gracefully
131836 + to an interpreter-based mode if it does not. While we encourage everyone
131837 + to use the current implementation as-is and push upstream to fix broken
131838 + userland (note that the RWX logging option can assist with this), in some
131839 + environments this may not be possible. Having to disable MPROTECT
131840 + completely on certain binaries reduces the security benefit of PaX,
131841 + so this option is provided for those environments to revert to the old
131842 + behavior.
131843 +
131844 +config PAX_ELFRELOCS
131845 + bool "Allow ELF text relocations (read help)"
131846 + depends on PAX_MPROTECT
131847 + default n
131848 + help
131849 + Non-executable pages and mprotect() restrictions are effective
131850 + in preventing the introduction of new executable code into an
131851 + attacked task's address space. There remain only two venues
131852 + for this kind of attack: if the attacker can execute already
131853 + existing code in the attacked task then he can either have it
131854 + create and mmap() a file containing his code or have it mmap()
131855 + an already existing ELF library that does not have position
131856 + independent code in it and use mprotect() on it to make it
131857 + writable and copy his code there. While protecting against
131858 + the former approach is beyond PaX, the latter can be prevented
131859 + by having only PIC ELF libraries on one's system (which do not
131860 + need to relocate their code). If you are sure this is your case,
131861 + as is the case with all modern Linux distributions, then leave
131862 + this option disabled. You should say 'n' here.
131863 +
131864 +config PAX_ETEXECRELOCS
131865 + bool "Allow ELF ET_EXEC text relocations"
131866 + depends on PAX_MPROTECT && (ALPHA || IA64 || PARISC)
131867 + select PAX_ELFRELOCS
131868 + default y
131869 + help
131870 + On some architectures there are incorrectly created applications
131871 + that require text relocations and would not work without enabling
131872 + this option. If you are an alpha, ia64 or parisc user, you should
131873 + enable this option and disable it once you have made sure that
131874 + none of your applications need it.
131875 +
131876 +config PAX_EMUPLT
131877 + bool "Automatically emulate ELF PLT"
131878 + depends on PAX_MPROTECT && (ALPHA || PARISC || SPARC)
131879 + default y
131880 + help
131881 + Enabling this option will have the kernel automatically detect
131882 + and emulate the Procedure Linkage Table entries in ELF files.
131883 + On some architectures such entries are in writable memory, and
131884 + become non-executable leading to task termination. Therefore
131885 + it is mandatory that you enable this option on alpha, parisc,
131886 + sparc and sparc64, otherwise your system would not even boot.
131887 +
131888 + NOTE: this feature *does* open up a loophole in the protection
131889 + provided by the non-executable pages, therefore the proper
131890 + solution is to modify the toolchain to produce a PLT that does
131891 + not need to be writable.
131892 +
131893 +config PAX_DLRESOLVE
131894 + bool 'Emulate old glibc resolver stub'
131895 + depends on PAX_EMUPLT && SPARC
131896 + default n
131897 + help
131898 + This option is needed if userland has an old glibc (before 2.4)
131899 + that puts a 'save' instruction into the runtime generated resolver
131900 + stub that needs special emulation.
131901 +
131902 +config PAX_KERNEXEC
131903 + bool "Enforce non-executable kernel pages"
131904 + 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))
131905 + depends on (X86 || (ARM && (CPU_V6 || CPU_V6K || CPU_V7) && !(ARM_LPAE && MODULES))) && !XEN
131906 + select PAX_PER_CPU_PGD if X86_64 || (X86_32 && X86_PAE)
131907 + select PAX_KERNEXEC_PLUGIN if X86_64
131908 + select ARM_KERNMEM_PERMS if ARM
131909 + help
131910 + This is the kernel land equivalent of PAGEEXEC and MPROTECT,
131911 + that is, enabling this option will make it harder to inject
131912 + and execute 'foreign' code in kernel memory itself.
131913 +
131914 + Note that on amd64, CONFIG_EFI enabled with "efi=old_map" on
131915 + the kernel command-line will result in an RWX physical map.
131916 +
131917 + Likewise, the EFI runtime services are necessarily mapped as
131918 + RWX. If CONFIG_EFI is enabled on an EFI-capable system, it
131919 + is recommended that you boot with "noefi" on the kernel
131920 + command-line if possible to eliminate the mapping.
131921 +
131922 +choice
131923 + prompt "Return Address Instrumentation Method"
131924 + default PAX_KERNEXEC_PLUGIN_METHOD_BTS
131925 + depends on PAX_KERNEXEC_PLUGIN
131926 + help
131927 + Select the method used to instrument function pointer dereferences.
131928 + Note that binary modules cannot be instrumented by this approach.
131929 +
131930 + Note that the implementation requires a gcc with plugin support,
131931 + i.e., gcc 4.5 or newer. You may need to install the supporting
131932 + headers explicitly in addition to the normal gcc package.
131933 +
131934 + config PAX_KERNEXEC_PLUGIN_METHOD_BTS
131935 + bool "bts"
131936 + help
131937 + This method is compatible with binary only modules but has
131938 + a higher runtime overhead.
131939 +
131940 + config PAX_KERNEXEC_PLUGIN_METHOD_OR
131941 + bool "or"
131942 + depends on !PARAVIRT
131943 + help
131944 + This method is incompatible with binary only modules but has
131945 + a lower runtime overhead.
131946 +endchoice
131947 +
131948 +config PAX_KERNEXEC_PLUGIN_METHOD
131949 + string
131950 + default "bts" if PAX_KERNEXEC_PLUGIN_METHOD_BTS
131951 + default "or" if PAX_KERNEXEC_PLUGIN_METHOD_OR
131952 + default ""
131953 +
131954 +config PAX_KERNEXEC_MODULE_TEXT
131955 + int "Minimum amount of memory reserved for module code"
131956 + default "8" if (!GRKERNSEC_CONFIG_AUTO || GRKERNSEC_CONFIG_SERVER)
131957 + default "12" if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_DESKTOP)
131958 + depends on PAX_KERNEXEC && X86_32
131959 + help
131960 + Due to implementation details the kernel must reserve a fixed
131961 + amount of memory for runtime allocated code (such as modules)
131962 + at compile time that cannot be changed at runtime. Here you
131963 + can specify the minimum amount in MB that will be reserved.
131964 + Due to the same implementation details this size will always
131965 + be rounded up to the next 2/4 MB boundary (depends on PAE) so
131966 + the actually available memory for runtime allocated code will
131967 + usually be more than this minimum.
131968 +
131969 + The default 4 MB should be enough for most users but if you have
131970 + an excessive number of modules (e.g., most distribution configs
131971 + compile many drivers as modules) or use huge modules such as
131972 + nvidia's kernel driver, you will need to adjust this amount.
131973 + A good rule of thumb is to look at your currently loaded kernel
131974 + modules and add up their sizes.
131975 +
131976 +endmenu
131977 +
131978 +menu "Address Space Layout Randomization"
131979 + depends on PAX
131980 +
131981 +config PAX_ASLR
131982 + bool "Address Space Layout Randomization"
131983 + default y if GRKERNSEC_CONFIG_AUTO
131984 + help
131985 + Many if not most exploit techniques rely on the knowledge of
131986 + certain addresses in the attacked program. The following options
131987 + will allow the kernel to apply a certain amount of randomization
131988 + to specific parts of the program thereby forcing an attacker to
131989 + guess them in most cases. Any failed guess will most likely crash
131990 + the attacked program which allows the kernel to detect such attempts
131991 + and react on them. PaX itself provides no reaction mechanisms,
131992 + instead it is strongly encouraged that you make use of grsecurity's
131993 + (http://www.grsecurity.net/) built-in crash detection features or
131994 + develop one yourself.
131995 +
131996 + By saying Y here you can choose to randomize the following areas:
131997 + - top of the task's kernel stack
131998 + - top of the task's userland stack
131999 + - base address for mmap() requests that do not specify one
132000 + (this includes all libraries)
132001 + - base address of the main executable
132002 +
132003 + It is strongly recommended to say Y here as address space layout
132004 + randomization has negligible impact on performance yet it provides
132005 + a very effective protection.
132006 +
132007 + NOTE: you can use the 'chpax' or 'paxctl' utilities to control
132008 + this feature on a per file basis.
132009 +
132010 +config PAX_RANDKSTACK
132011 + bool "Randomize kernel stack base"
132012 + default y if GRKERNSEC_CONFIG_AUTO && !(GRKERNSEC_CONFIG_VIRT_HOST && GRKERNSEC_CONFIG_VIRT_VIRTUALBOX)
132013 + depends on X86_TSC && X86
132014 + help
132015 + By saying Y here the kernel will randomize every task's kernel
132016 + stack on every system call. This will not only force an attacker
132017 + to guess it but also prevent him from making use of possible
132018 + leaked information about it.
132019 +
132020 + Since the kernel stack is a rather scarce resource, randomization
132021 + may cause unexpected stack overflows, therefore you should very
132022 + carefully test your system. Note that once enabled in the kernel
132023 + configuration, this feature cannot be disabled on a per file basis.
132024 +
132025 +config PAX_RANDUSTACK
132026 + bool
132027 +
132028 +config PAX_RANDMMAP
132029 + bool "Randomize user stack and mmap() bases"
132030 + default y if GRKERNSEC_CONFIG_AUTO
132031 + depends on PAX_ASLR
132032 + select PAX_RANDUSTACK
132033 + help
132034 + By saying Y here the kernel will randomize every task's userland
132035 + stack and use a randomized base address for mmap() requests that
132036 + do not specify one themselves.
132037 +
132038 + The stack randomization is done in two steps where the second
132039 + one may apply a big amount of shift to the top of the stack and
132040 + cause problems for programs that want to use lots of memory (more
132041 + than 2.5 GB if SEGMEXEC is not active, or 1.25 GB when it is).
132042 +
132043 + As a result of mmap randomization all dynamically loaded libraries
132044 + will appear at random addresses and therefore be harder to exploit
132045 + by a technique where an attacker attempts to execute library code
132046 + for his purposes (e.g. spawn a shell from an exploited program that
132047 + is running at an elevated privilege level).
132048 +
132049 + Furthermore, if a program is relinked as a dynamic ELF file, its
132050 + base address will be randomized as well, completing the full
132051 + randomization of the address space layout. Attacking such programs
132052 + becomes a guess game. You can find an example of doing this at
132053 + http://pax.grsecurity.net/et_dyn.tar.gz and practical samples at
132054 + http://www.grsecurity.net/grsec-gcc-specs.tar.gz .
132055 +
132056 + NOTE: you can use the 'chpax' or 'paxctl' utilities to control this
132057 + feature on a per file basis.
132058 +
132059 +endmenu
132060 +
132061 +menu "Miscellaneous hardening features"
132062 +
132063 +config PAX_MEMORY_SANITIZE
132064 + bool "Sanitize all freed memory"
132065 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_PRIORITY_SECURITY)
132066 + help
132067 + By saying Y here the kernel will erase memory pages and slab objects
132068 + as soon as they are freed. This in turn reduces the lifetime of data
132069 + stored in them, making it less likely that sensitive information such
132070 + as passwords, cryptographic secrets, etc stay in memory for too long.
132071 +
132072 + This is especially useful for programs whose runtime is short, long
132073 + lived processes and the kernel itself benefit from this as long as
132074 + they ensure timely freeing of memory that may hold sensitive
132075 + information.
132076 +
132077 + A nice side effect of the sanitization of slab objects is the
132078 + reduction of possible info leaks caused by padding bytes within the
132079 + leaky structures. Use-after-free bugs for structures containing
132080 + pointers can also be detected as dereferencing the sanitized pointer
132081 + will generate an access violation.
132082 +
132083 + The tradeoff is performance impact, on a single CPU system kernel
132084 + compilation sees a 3% slowdown, other systems and workloads may vary
132085 + and you are advised to test this feature on your expected workload
132086 + before deploying it.
132087 +
132088 + The slab sanitization feature excludes a few slab caches per default
132089 + for performance reasons. To extend the feature to cover those as
132090 + well, pass "pax_sanitize_slab=full" as kernel command line parameter.
132091 +
132092 + To reduce the performance penalty by sanitizing pages only, albeit
132093 + limiting the effectiveness of this feature at the same time, slab
132094 + sanitization can be disabled with the kernel command line parameter
132095 + "pax_sanitize_slab=off".
132096 +
132097 + Note that this feature does not protect data stored in live pages,
132098 + e.g., process memory swapped to disk may stay there for a long time.
132099 +
132100 +config PAX_MEMORY_STACKLEAK
132101 + bool "Sanitize kernel stack"
132102 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_PRIORITY_SECURITY)
132103 + depends on X86
132104 + help
132105 + By saying Y here the kernel will erase the kernel stack before it
132106 + returns from a system call. This in turn reduces the information
132107 + that a kernel stack leak bug can reveal.
132108 +
132109 + Note that such a bug can still leak information that was put on
132110 + the stack by the current system call (the one eventually triggering
132111 + the bug) but traces of earlier system calls on the kernel stack
132112 + cannot leak anymore.
132113 +
132114 + The tradeoff is performance impact: on a single CPU system kernel
132115 + compilation sees a 1% slowdown, other systems and workloads may vary
132116 + and you are advised to test this feature on your expected workload
132117 + before deploying it.
132118 +
132119 + Note that the full feature requires a gcc with plugin support,
132120 + i.e., gcc 4.5 or newer. You may need to install the supporting
132121 + headers explicitly in addition to the normal gcc package. Using
132122 + older gcc versions means that functions with large enough stack
132123 + frames may leave uninitialized memory behind that may be exposed
132124 + to a later syscall leaking the stack.
132125 +
132126 +config PAX_MEMORY_STRUCTLEAK
132127 + bool "Forcibly initialize local variables copied to userland"
132128 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_PRIORITY_SECURITY)
132129 + help
132130 + By saying Y here the kernel will zero initialize some local
132131 + variables that are going to be copied to userland. This in
132132 + turn prevents unintended information leakage from the kernel
132133 + stack should later code forget to explicitly set all parts of
132134 + the copied variable.
132135 +
132136 + The tradeoff is less performance impact than PAX_MEMORY_STACKLEAK
132137 + at a much smaller coverage.
132138 +
132139 + Note that the implementation requires a gcc with plugin support,
132140 + i.e., gcc 4.5 or newer. You may need to install the supporting
132141 + headers explicitly in addition to the normal gcc package.
132142 +
132143 +config PAX_MEMORY_UDEREF
132144 + bool "Prevent invalid userland pointer dereference"
132145 + 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)
132146 + depends on (X86 || (ARM && (CPU_V6 || CPU_V6K || CPU_V7) && !ARM_LPAE)) && !UML_X86 && !XEN
132147 + select PAX_PER_CPU_PGD if X86_64
132148 + help
132149 + By saying Y here the kernel will be prevented from dereferencing
132150 + userland pointers in contexts where the kernel expects only kernel
132151 + pointers. This is both a useful runtime debugging feature and a
132152 + security measure that prevents exploiting a class of kernel bugs.
132153 +
132154 + The tradeoff is that some virtualization solutions may experience
132155 + a huge slowdown and therefore you should not enable this feature
132156 + for kernels meant to run in such environments. Whether a given VM
132157 + solution is affected or not is best determined by simply trying it
132158 + out, the performance impact will be obvious right on boot as this
132159 + mechanism engages from very early on. A good rule of thumb is that
132160 + VMs running on CPUs without hardware virtualization support (i.e.,
132161 + the majority of IA-32 CPUs) will likely experience the slowdown.
132162 +
132163 + On X86_64 the kernel will make use of PCID support when available
132164 + (Intel's Westmere, Sandy Bridge, etc) for better security (default)
132165 + or performance impact. Pass pax_weakuderef on the kernel command
132166 + line to choose the latter.
132167 +
132168 +config PAX_REFCOUNT
132169 + bool "Prevent various kernel object reference counter overflows"
132170 + default y if GRKERNSEC_CONFIG_AUTO
132171 + depends on GRKERNSEC && ((ARM && (CPU_V6 || CPU_V6K || CPU_V7)) || MIPS || PPC || SPARC64 || X86)
132172 + help
132173 + By saying Y here the kernel will detect and prevent overflowing
132174 + various (but not all) kinds of object reference counters. Such
132175 + overflows can normally occur due to bugs only and are often, if
132176 + not always, exploitable.
132177 +
132178 + The tradeoff is that data structures protected by an overflowed
132179 + refcount will never be freed and therefore will leak memory. Note
132180 + that this leak also happens even without this protection but in
132181 + that case the overflow can eventually trigger the freeing of the
132182 + data structure while it is still being used elsewhere, resulting
132183 + in the exploitable situation that this feature prevents.
132184 +
132185 + Since this has a negligible performance impact, you should enable
132186 + this feature.
132187 +
132188 +config PAX_CONSTIFY_PLUGIN
132189 + bool "Automatically constify eligible structures"
132190 + default y
132191 + depends on !UML && PAX_KERNEXEC
132192 + help
132193 + By saying Y here the compiler will automatically constify a class
132194 + of types that contain only function pointers. This reduces the
132195 + kernel's attack surface and also produces a better memory layout.
132196 +
132197 + Note that the implementation requires a gcc with plugin support,
132198 + i.e., gcc 4.5 or newer. You may need to install the supporting
132199 + headers explicitly in addition to the normal gcc package.
132200 +
132201 + Note that if some code really has to modify constified variables
132202 + then the source code will have to be patched to allow it. Examples
132203 + can be found in PaX itself (the no_const attribute) and for some
132204 + out-of-tree modules at http://www.grsecurity.net/~paxguy1/ .
132205 +
132206 +config PAX_USERCOPY
132207 + bool "Harden heap object copies between kernel and userland"
132208 + default y if GRKERNSEC_CONFIG_AUTO
132209 + depends on ARM || IA64 || PPC || SPARC || X86
132210 + depends on GRKERNSEC && (SLAB || SLUB || SLOB)
132211 + select PAX_USERCOPY_SLABS
132212 + help
132213 + By saying Y here the kernel will enforce the size of heap objects
132214 + when they are copied in either direction between the kernel and
132215 + userland, even if only a part of the heap object is copied.
132216 +
132217 + Specifically, this checking prevents information leaking from the
132218 + kernel heap during kernel to userland copies (if the kernel heap
132219 + object is otherwise fully initialized) and prevents kernel heap
132220 + overflows during userland to kernel copies.
132221 +
132222 + Note that the current implementation provides the strictest bounds
132223 + checks for the SLUB allocator.
132224 +
132225 + Enabling this option also enables per-slab cache protection against
132226 + data in a given cache being copied into/out of via userland
132227 + accessors. Though the whitelist of regions will be reduced over
132228 + time, it notably protects important data structures like task structs.
132229 +
132230 + If frame pointers are enabled on x86, this option will also restrict
132231 + copies into and out of the kernel stack to local variables within a
132232 + single frame.
132233 +
132234 + Since this has a negligible performance impact, you should enable
132235 + this feature.
132236 +
132237 +config PAX_USERCOPY_DEBUG
132238 + bool
132239 + depends on X86 && PAX_USERCOPY
132240 + default n
132241 +
132242 +config PAX_SIZE_OVERFLOW
132243 + bool "Prevent various integer overflows in function size parameters"
132244 + default y if GRKERNSEC_CONFIG_AUTO
132245 + help
132246 + By saying Y here the kernel recomputes expressions of function
132247 + arguments marked by a size_overflow attribute with double integer
132248 + precision (DImode/TImode for 32/64 bit integer types).
132249 +
132250 + The recomputed argument is checked against TYPE_MAX and an event
132251 + is logged on overflow and the triggering process is killed.
132252 +
132253 + Homepage: https://github.com/ephox-gcc-plugins
132254 +
132255 + Note that the implementation requires a gcc with plugin support,
132256 + i.e., gcc 4.5 or newer. You may need to install the supporting
132257 + headers explicitly in addition to the normal gcc package.
132258 +
132259 +config PAX_LATENT_ENTROPY
132260 + bool "Generate some entropy during boot and runtime"
132261 + default y if GRKERNSEC_CONFIG_AUTO
132262 + help
132263 + By saying Y here the kernel will instrument some kernel code to
132264 + extract some entropy from both original and artificially created
132265 + program state. This will help especially embedded systems where
132266 + there is little 'natural' source of entropy normally. The cost
132267 + is some slowdown of the boot process and fork and irq processing.
132268 +
132269 + When pax_extra_latent_entropy is passed on the kernel command line,
132270 + entropy will be extracted from up to the first 4GB of RAM while the
132271 + runtime memory allocator is being initialized. This costs even more
132272 + slowdown of the boot process.
132273 +
132274 + Note that the implementation requires a gcc with plugin support,
132275 + i.e., gcc 4.5 or newer. You may need to install the supporting
132276 + headers explicitly in addition to the normal gcc package.
132277 +
132278 + Note that entropy extracted this way is not cryptographically
132279 + secure!
132280 +
132281 +endmenu
132282 +
132283 +endmenu
132284 +
132285 +source grsecurity/Kconfig
132286 +
132287 +endmenu
132288 +
132289 +endmenu
132290 +
132291 source security/keys/Kconfig
132292
132293 config SECURITY_DMESG_RESTRICT
132294 @@ -104,7 +1078,7 @@ config INTEL_TXT
132295 config LSM_MMAP_MIN_ADDR
132296 int "Low address space for LSM to protect from user allocation"
132297 depends on SECURITY && SECURITY_SELINUX
132298 - default 32768 if ARM || (ARM64 && COMPAT)
132299 + default 32768 if ALPHA || ARM || (ARM64 && COMPAT) || PARISC || SPARC32
132300 default 65536
132301 help
132302 This is the portion of low virtual memory which should be protected
132303 diff --git a/security/apparmor/file.c b/security/apparmor/file.c
132304 index 913f377..6e392d5 100644
132305 --- a/security/apparmor/file.c
132306 +++ b/security/apparmor/file.c
132307 @@ -348,8 +348,8 @@ static inline bool xindex_is_subset(u32 link, u32 target)
132308 int aa_path_link(struct aa_profile *profile, struct dentry *old_dentry,
132309 struct path *new_dir, struct dentry *new_dentry)
132310 {
132311 - struct path link = { new_dir->mnt, new_dentry };
132312 - struct path target = { new_dir->mnt, old_dentry };
132313 + struct path link = { .mnt = new_dir->mnt, .dentry = new_dentry };
132314 + struct path target = { .mnt = new_dir->mnt, .dentry = old_dentry };
132315 struct path_cond cond = {
132316 d_backing_inode(old_dentry)->i_uid,
132317 d_backing_inode(old_dentry)->i_mode
132318 diff --git a/security/apparmor/include/policy.h b/security/apparmor/include/policy.h
132319 index c28b0f2..3b9fee0 100644
132320 --- a/security/apparmor/include/policy.h
132321 +++ b/security/apparmor/include/policy.h
132322 @@ -134,7 +134,7 @@ struct aa_namespace {
132323 struct aa_ns_acct acct;
132324 struct aa_profile *unconfined;
132325 struct list_head sub_ns;
132326 - atomic_t uniq_null;
132327 + atomic_unchecked_t uniq_null;
132328 long uniq_id;
132329
132330 struct dentry *dents[AAFS_NS_SIZEOF];
132331 diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c
132332 index dec607c..2f291ad9 100644
132333 --- a/security/apparmor/lsm.c
132334 +++ b/security/apparmor/lsm.c
132335 @@ -176,7 +176,7 @@ static int common_perm_dir_dentry(int op, struct path *dir,
132336 struct dentry *dentry, u32 mask,
132337 struct path_cond *cond)
132338 {
132339 - struct path path = { dir->mnt, dentry };
132340 + struct path path = { .mnt = dir->mnt, .dentry = dentry };
132341
132342 return common_perm(op, &path, mask, cond);
132343 }
132344 @@ -193,7 +193,7 @@ static int common_perm_dir_dentry(int op, struct path *dir,
132345 static int common_perm_mnt_dentry(int op, struct vfsmount *mnt,
132346 struct dentry *dentry, u32 mask)
132347 {
132348 - struct path path = { mnt, dentry };
132349 + struct path path = { .mnt = mnt, .dentry = dentry };
132350 struct path_cond cond = { d_backing_inode(dentry)->i_uid,
132351 d_backing_inode(dentry)->i_mode
132352 };
132353 @@ -315,8 +315,8 @@ static int apparmor_path_rename(struct path *old_dir, struct dentry *old_dentry,
132354
132355 profile = aa_current_profile();
132356 if (!unconfined(profile)) {
132357 - struct path old_path = { old_dir->mnt, old_dentry };
132358 - struct path new_path = { new_dir->mnt, new_dentry };
132359 + struct path old_path = { .mnt = old_dir->mnt, .dentry = old_dentry };
132360 + struct path new_path = { .mnt = new_dir->mnt, .dentry = new_dentry };
132361 struct path_cond cond = { d_backing_inode(old_dentry)->i_uid,
132362 d_backing_inode(old_dentry)->i_mode
132363 };
132364 diff --git a/security/apparmor/policy.c b/security/apparmor/policy.c
132365 index 705c287..81257f1 100644
132366 --- a/security/apparmor/policy.c
132367 +++ b/security/apparmor/policy.c
132368 @@ -298,7 +298,7 @@ static struct aa_namespace *alloc_namespace(const char *prefix,
132369 /* ns and ns->unconfined share ns->unconfined refcount */
132370 ns->unconfined->ns = ns;
132371
132372 - atomic_set(&ns->uniq_null, 0);
132373 + atomic_set_unchecked(&ns->uniq_null, 0);
132374
132375 return ns;
132376
132377 @@ -689,7 +689,7 @@ struct aa_profile *aa_new_null_profile(struct aa_profile *parent, int hat)
132378 {
132379 struct aa_profile *profile = NULL;
132380 char *name;
132381 - int uniq = atomic_inc_return(&parent->ns->uniq_null);
132382 + int uniq = atomic_inc_return_unchecked(&parent->ns->uniq_null);
132383
132384 /* freed below */
132385 name = kmalloc(strlen(parent->base.hname) + 2 + 7 + 8, GFP_KERNEL);
132386 diff --git a/security/commoncap.c b/security/commoncap.c
132387 index 48071ed..b805e0f 100644
132388 --- a/security/commoncap.c
132389 +++ b/security/commoncap.c
132390 @@ -438,6 +438,32 @@ int get_vfs_caps_from_disk(const struct dentry *dentry, struct cpu_vfs_cap_data
132391 return 0;
132392 }
132393
132394 +/* returns:
132395 + 1 for suid privilege
132396 + 2 for sgid privilege
132397 + 3 for fscap privilege
132398 +*/
132399 +int is_privileged_binary(const struct dentry *dentry)
132400 +{
132401 + struct cpu_vfs_cap_data capdata;
132402 + struct inode *inode = dentry->d_inode;
132403 +
132404 + if (!inode || S_ISDIR(inode->i_mode))
132405 + return 0;
132406 +
132407 + if (inode->i_mode & S_ISUID)
132408 + return 1;
132409 + if ((inode->i_mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))
132410 + return 2;
132411 +
132412 + if (!get_vfs_caps_from_disk(dentry, &capdata)) {
132413 + if (!cap_isclear(capdata.inheritable) || !cap_isclear(capdata.permitted))
132414 + return 3;
132415 + }
132416 +
132417 + return 0;
132418 +}
132419 +
132420 /*
132421 * Attempt to get the on-exec apply capability sets for an executable file from
132422 * its xattrs and, if present, apply them to the proposed credentials being
132423 @@ -628,6 +654,9 @@ int cap_bprm_secureexec(struct linux_binprm *bprm)
132424 const struct cred *cred = current_cred();
132425 kuid_t root_uid = make_kuid(cred->user_ns, 0);
132426
132427 + if (gr_acl_enable_at_secure())
132428 + return 1;
132429 +
132430 if (!uid_eq(cred->uid, root_uid)) {
132431 if (bprm->cap_effective)
132432 return 1;
132433 diff --git a/security/integrity/ima/ima.h b/security/integrity/ima/ima.h
132434 index e2a60c3..2e41dd3 100644
132435 --- a/security/integrity/ima/ima.h
132436 +++ b/security/integrity/ima/ima.h
132437 @@ -125,8 +125,8 @@ int ima_init_template(void);
132438 extern spinlock_t ima_queue_lock;
132439
132440 struct ima_h_table {
132441 - atomic_long_t len; /* number of stored measurements in the list */
132442 - atomic_long_t violations;
132443 + atomic_long_unchecked_t len; /* number of stored measurements in the list */
132444 + atomic_long_unchecked_t violations;
132445 struct hlist_head queue[IMA_MEASURE_HTABLE_SIZE];
132446 };
132447 extern struct ima_h_table ima_htable;
132448 diff --git a/security/integrity/ima/ima_api.c b/security/integrity/ima/ima_api.c
132449 index 1d950fb..a8f4eab 100644
132450 --- a/security/integrity/ima/ima_api.c
132451 +++ b/security/integrity/ima/ima_api.c
132452 @@ -137,7 +137,7 @@ void ima_add_violation(struct file *file, const unsigned char *filename,
132453 int result;
132454
132455 /* can overflow, only indicator */
132456 - atomic_long_inc(&ima_htable.violations);
132457 + atomic_long_inc_unchecked(&ima_htable.violations);
132458
132459 result = ima_alloc_init_template(&event_data, &entry);
132460 if (result < 0) {
132461 diff --git a/security/integrity/ima/ima_fs.c b/security/integrity/ima/ima_fs.c
132462 index 816d175..20079ae 100644
132463 --- a/security/integrity/ima/ima_fs.c
132464 +++ b/security/integrity/ima/ima_fs.c
132465 @@ -28,12 +28,12 @@
132466 static int valid_policy = 1;
132467 #define TMPBUFLEN 12
132468 static ssize_t ima_show_htable_value(char __user *buf, size_t count,
132469 - loff_t *ppos, atomic_long_t *val)
132470 + loff_t *ppos, atomic_long_unchecked_t *val)
132471 {
132472 char tmpbuf[TMPBUFLEN];
132473 ssize_t len;
132474
132475 - len = scnprintf(tmpbuf, TMPBUFLEN, "%li\n", atomic_long_read(val));
132476 + len = scnprintf(tmpbuf, TMPBUFLEN, "%li\n", atomic_long_read_unchecked(val));
132477 return simple_read_from_buffer(buf, count, ppos, tmpbuf, len);
132478 }
132479
132480 diff --git a/security/integrity/ima/ima_queue.c b/security/integrity/ima/ima_queue.c
132481 index 552705d..9920f4fb 100644
132482 --- a/security/integrity/ima/ima_queue.c
132483 +++ b/security/integrity/ima/ima_queue.c
132484 @@ -83,7 +83,7 @@ static int ima_add_digest_entry(struct ima_template_entry *entry)
132485 INIT_LIST_HEAD(&qe->later);
132486 list_add_tail_rcu(&qe->later, &ima_measurements);
132487
132488 - atomic_long_inc(&ima_htable.len);
132489 + atomic_long_inc_unchecked(&ima_htable.len);
132490 key = ima_hash_key(entry->digest);
132491 hlist_add_head_rcu(&qe->hnext, &ima_htable.queue[key]);
132492 return 0;
132493 diff --git a/security/keys/internal.h b/security/keys/internal.h
132494 index 5105c2c..a5010e6 100644
132495 --- a/security/keys/internal.h
132496 +++ b/security/keys/internal.h
132497 @@ -90,12 +90,16 @@ extern void key_type_put(struct key_type *ktype);
132498
132499 extern int __key_link_begin(struct key *keyring,
132500 const struct keyring_index_key *index_key,
132501 - struct assoc_array_edit **_edit);
132502 + struct assoc_array_edit **_edit)
132503 + __acquires(&keyring->sem)
132504 + __acquires(&keyring_serialise_link_sem);
132505 extern int __key_link_check_live_key(struct key *keyring, struct key *key);
132506 extern void __key_link(struct key *key, struct assoc_array_edit **_edit);
132507 extern void __key_link_end(struct key *keyring,
132508 const struct keyring_index_key *index_key,
132509 - struct assoc_array_edit *edit);
132510 + struct assoc_array_edit *edit)
132511 + __releases(&keyring->sem)
132512 + __releases(&keyring_serialise_link_sem);
132513
132514 extern key_ref_t find_key_to_update(key_ref_t keyring_ref,
132515 const struct keyring_index_key *index_key);
132516 @@ -191,7 +195,7 @@ struct request_key_auth {
132517 void *callout_info;
132518 size_t callout_len;
132519 pid_t pid;
132520 -};
132521 +} __randomize_layout;
132522
132523 extern struct key_type key_type_request_key_auth;
132524 extern struct key *request_key_auth_new(struct key *target,
132525 diff --git a/security/keys/key.c b/security/keys/key.c
132526 index ab7997d..adba677 100644
132527 --- a/security/keys/key.c
132528 +++ b/security/keys/key.c
132529 @@ -283,7 +283,7 @@ struct key *key_alloc(struct key_type *type, const char *desc,
132530
132531 atomic_set(&key->usage, 1);
132532 init_rwsem(&key->sem);
132533 - lockdep_set_class(&key->sem, &type->lock_class);
132534 + lockdep_set_class(&key->sem, (struct lock_class_key *)&type->lock_class);
132535 key->index_key.type = type;
132536 key->user = user;
132537 key->quotalen = quotalen;
132538 @@ -1073,7 +1073,9 @@ int register_key_type(struct key_type *ktype)
132539 struct key_type *p;
132540 int ret;
132541
132542 - memset(&ktype->lock_class, 0, sizeof(ktype->lock_class));
132543 + pax_open_kernel();
132544 + memset((void *)&ktype->lock_class, 0, sizeof(ktype->lock_class));
132545 + pax_close_kernel();
132546
132547 ret = -EEXIST;
132548 down_write(&key_types_sem);
132549 @@ -1085,7 +1087,7 @@ int register_key_type(struct key_type *ktype)
132550 }
132551
132552 /* store the type */
132553 - list_add(&ktype->link, &key_types_list);
132554 + pax_list_add((struct list_head *)&ktype->link, &key_types_list);
132555
132556 pr_notice("Key type %s registered\n", ktype->name);
132557 ret = 0;
132558 @@ -1107,7 +1109,7 @@ EXPORT_SYMBOL(register_key_type);
132559 void unregister_key_type(struct key_type *ktype)
132560 {
132561 down_write(&key_types_sem);
132562 - list_del_init(&ktype->link);
132563 + pax_list_del_init((struct list_head *)&ktype->link);
132564 downgrade_write(&key_types_sem);
132565 key_gc_keytype(ktype);
132566 pr_notice("Key type %s unregistered\n", ktype->name);
132567 @@ -1125,10 +1127,10 @@ void __init key_init(void)
132568 0, SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL);
132569
132570 /* add the special key types */
132571 - list_add_tail(&key_type_keyring.link, &key_types_list);
132572 - list_add_tail(&key_type_dead.link, &key_types_list);
132573 - list_add_tail(&key_type_user.link, &key_types_list);
132574 - list_add_tail(&key_type_logon.link, &key_types_list);
132575 + pax_list_add_tail((struct list_head *)&key_type_keyring.link, &key_types_list);
132576 + pax_list_add_tail((struct list_head *)&key_type_dead.link, &key_types_list);
132577 + pax_list_add_tail((struct list_head *)&key_type_user.link, &key_types_list);
132578 + pax_list_add_tail((struct list_head *)&key_type_logon.link, &key_types_list);
132579
132580 /* record the root user tracking */
132581 rb_link_node(&root_key_user.node,
132582 diff --git a/security/keys/keyring.c b/security/keys/keyring.c
132583 index f931ccf..ed9cd36 100644
132584 --- a/security/keys/keyring.c
132585 +++ b/security/keys/keyring.c
132586 @@ -1071,8 +1071,6 @@ static int keyring_detect_cycle(struct key *A, struct key *B)
132587 int __key_link_begin(struct key *keyring,
132588 const struct keyring_index_key *index_key,
132589 struct assoc_array_edit **_edit)
132590 - __acquires(&keyring->sem)
132591 - __acquires(&keyring_serialise_link_sem)
132592 {
132593 struct assoc_array_edit *edit;
132594 int ret;
132595 @@ -1172,8 +1170,6 @@ void __key_link(struct key *key, struct assoc_array_edit **_edit)
132596 void __key_link_end(struct key *keyring,
132597 const struct keyring_index_key *index_key,
132598 struct assoc_array_edit *edit)
132599 - __releases(&keyring->sem)
132600 - __releases(&keyring_serialise_link_sem)
132601 {
132602 BUG_ON(index_key->type == NULL);
132603 kenter("%d,%s,", keyring->serial, index_key->type->name);
132604 diff --git a/security/min_addr.c b/security/min_addr.c
132605 index f728728..6457a0c 100644
132606 --- a/security/min_addr.c
132607 +++ b/security/min_addr.c
132608 @@ -14,6 +14,7 @@ unsigned long dac_mmap_min_addr = CONFIG_DEFAULT_MMAP_MIN_ADDR;
132609 */
132610 static void update_mmap_min_addr(void)
132611 {
132612 +#ifndef SPARC
132613 #ifdef CONFIG_LSM_MMAP_MIN_ADDR
132614 if (dac_mmap_min_addr > CONFIG_LSM_MMAP_MIN_ADDR)
132615 mmap_min_addr = dac_mmap_min_addr;
132616 @@ -22,6 +23,7 @@ static void update_mmap_min_addr(void)
132617 #else
132618 mmap_min_addr = dac_mmap_min_addr;
132619 #endif
132620 +#endif
132621 }
132622
132623 /*
132624 diff --git a/security/selinux/avc.c b/security/selinux/avc.c
132625 index e60c79d..41fb721 100644
132626 --- a/security/selinux/avc.c
132627 +++ b/security/selinux/avc.c
132628 @@ -71,7 +71,7 @@ struct avc_xperms_node {
132629 struct avc_cache {
132630 struct hlist_head slots[AVC_CACHE_SLOTS]; /* head for avc_node->list */
132631 spinlock_t slots_lock[AVC_CACHE_SLOTS]; /* lock for writes */
132632 - atomic_t lru_hint; /* LRU hint for reclaim scan */
132633 + atomic_unchecked_t lru_hint; /* LRU hint for reclaim scan */
132634 atomic_t active_nodes;
132635 u32 latest_notif; /* latest revocation notification */
132636 };
132637 @@ -183,7 +183,7 @@ void __init avc_init(void)
132638 spin_lock_init(&avc_cache.slots_lock[i]);
132639 }
132640 atomic_set(&avc_cache.active_nodes, 0);
132641 - atomic_set(&avc_cache.lru_hint, 0);
132642 + atomic_set_unchecked(&avc_cache.lru_hint, 0);
132643
132644 avc_node_cachep = kmem_cache_create("avc_node", sizeof(struct avc_node),
132645 0, SLAB_PANIC, NULL);
132646 @@ -521,7 +521,7 @@ static inline int avc_reclaim_node(void)
132647 spinlock_t *lock;
132648
132649 for (try = 0, ecx = 0; try < AVC_CACHE_SLOTS; try++) {
132650 - hvalue = atomic_inc_return(&avc_cache.lru_hint) & (AVC_CACHE_SLOTS - 1);
132651 + hvalue = atomic_inc_return_unchecked(&avc_cache.lru_hint) & (AVC_CACHE_SLOTS - 1);
132652 head = &avc_cache.slots[hvalue];
132653 lock = &avc_cache.slots_lock[hvalue];
132654
132655 diff --git a/security/selinux/include/xfrm.h b/security/selinux/include/xfrm.h
132656 index 1450f85..a91e0bc 100644
132657 --- a/security/selinux/include/xfrm.h
132658 +++ b/security/selinux/include/xfrm.h
132659 @@ -48,7 +48,7 @@ static inline void selinux_xfrm_notify_policyload(void)
132660
132661 rtnl_lock();
132662 for_each_net(net) {
132663 - atomic_inc(&net->xfrm.flow_cache_genid);
132664 + atomic_inc_unchecked(&net->xfrm.flow_cache_genid);
132665 rt_genid_bump_all(net);
132666 }
132667 rtnl_unlock();
132668 diff --git a/security/tomoyo/file.c b/security/tomoyo/file.c
132669 index 2367b10..a0c3c51 100644
132670 --- a/security/tomoyo/file.c
132671 +++ b/security/tomoyo/file.c
132672 @@ -692,7 +692,7 @@ int tomoyo_path_number_perm(const u8 type, struct path *path,
132673 {
132674 struct tomoyo_request_info r;
132675 struct tomoyo_obj_info obj = {
132676 - .path1 = *path,
132677 + .path1 = { .mnt = path->mnt, .dentry = path->dentry },
132678 };
132679 int error = -ENOMEM;
132680 struct tomoyo_path_info buf;
132681 @@ -740,7 +740,7 @@ int tomoyo_check_open_permission(struct tomoyo_domain_info *domain,
132682 struct tomoyo_path_info buf;
132683 struct tomoyo_request_info r;
132684 struct tomoyo_obj_info obj = {
132685 - .path1 = *path,
132686 + .path1 = { .mnt = path->mnt, .dentry = path->dentry },
132687 };
132688 int idx;
132689
132690 @@ -786,7 +786,7 @@ int tomoyo_path_perm(const u8 operation, const struct path *path, const char *ta
132691 {
132692 struct tomoyo_request_info r;
132693 struct tomoyo_obj_info obj = {
132694 - .path1 = *path,
132695 + .path1 = { .mnt = path->mnt, .dentry = path->dentry },
132696 };
132697 int error;
132698 struct tomoyo_path_info buf;
132699 @@ -843,7 +843,7 @@ int tomoyo_mkdev_perm(const u8 operation, struct path *path,
132700 {
132701 struct tomoyo_request_info r;
132702 struct tomoyo_obj_info obj = {
132703 - .path1 = *path,
132704 + .path1 = { .mnt = path->mnt, .dentry = path->dentry },
132705 };
132706 int error = -ENOMEM;
132707 struct tomoyo_path_info buf;
132708 @@ -890,8 +890,8 @@ int tomoyo_path2_perm(const u8 operation, struct path *path1,
132709 struct tomoyo_path_info buf2;
132710 struct tomoyo_request_info r;
132711 struct tomoyo_obj_info obj = {
132712 - .path1 = *path1,
132713 - .path2 = *path2,
132714 + .path1 = { .mnt = path1->mnt, .dentry = path1->dentry },
132715 + .path2 = { .mnt = path2->mnt, .dentry = path2->dentry }
132716 };
132717 int idx;
132718
132719 diff --git a/security/tomoyo/mount.c b/security/tomoyo/mount.c
132720 index 390c646..f2f8db3 100644
132721 --- a/security/tomoyo/mount.c
132722 +++ b/security/tomoyo/mount.c
132723 @@ -118,6 +118,10 @@ static int tomoyo_mount_acl(struct tomoyo_request_info *r,
132724 type == tomoyo_mounts[TOMOYO_MOUNT_MOVE]) {
132725 need_dev = -1; /* dev_name is a directory */
132726 } else {
132727 + if (!capable(CAP_SYS_ADMIN)) {
132728 + error = -EPERM;
132729 + goto out;
132730 + }
132731 fstype = get_fs_type(type);
132732 if (!fstype) {
132733 error = -ENODEV;
132734 diff --git a/security/tomoyo/tomoyo.c b/security/tomoyo/tomoyo.c
132735 index cbf3df4..22b11df 100644
132736 --- a/security/tomoyo/tomoyo.c
132737 +++ b/security/tomoyo/tomoyo.c
132738 @@ -165,7 +165,7 @@ static int tomoyo_path_truncate(struct path *path)
132739 */
132740 static int tomoyo_path_unlink(struct path *parent, struct dentry *dentry)
132741 {
132742 - struct path path = { parent->mnt, dentry };
132743 + struct path path = { .mnt = parent->mnt, .dentry = dentry };
132744 return tomoyo_path_perm(TOMOYO_TYPE_UNLINK, &path, NULL);
132745 }
132746
132747 @@ -181,7 +181,7 @@ static int tomoyo_path_unlink(struct path *parent, struct dentry *dentry)
132748 static int tomoyo_path_mkdir(struct path *parent, struct dentry *dentry,
132749 umode_t mode)
132750 {
132751 - struct path path = { parent->mnt, dentry };
132752 + struct path path = { .mnt = parent->mnt, .dentry = dentry };
132753 return tomoyo_path_number_perm(TOMOYO_TYPE_MKDIR, &path,
132754 mode & S_IALLUGO);
132755 }
132756 @@ -196,7 +196,7 @@ static int tomoyo_path_mkdir(struct path *parent, struct dentry *dentry,
132757 */
132758 static int tomoyo_path_rmdir(struct path *parent, struct dentry *dentry)
132759 {
132760 - struct path path = { parent->mnt, dentry };
132761 + struct path path = { .mnt = parent->mnt, .dentry = dentry };
132762 return tomoyo_path_perm(TOMOYO_TYPE_RMDIR, &path, NULL);
132763 }
132764
132765 @@ -212,7 +212,7 @@ static int tomoyo_path_rmdir(struct path *parent, struct dentry *dentry)
132766 static int tomoyo_path_symlink(struct path *parent, struct dentry *dentry,
132767 const char *old_name)
132768 {
132769 - struct path path = { parent->mnt, dentry };
132770 + struct path path = { .mnt = parent->mnt, .dentry = dentry };
132771 return tomoyo_path_perm(TOMOYO_TYPE_SYMLINK, &path, old_name);
132772 }
132773
132774 @@ -229,7 +229,7 @@ static int tomoyo_path_symlink(struct path *parent, struct dentry *dentry,
132775 static int tomoyo_path_mknod(struct path *parent, struct dentry *dentry,
132776 umode_t mode, unsigned int dev)
132777 {
132778 - struct path path = { parent->mnt, dentry };
132779 + struct path path = { .mnt = parent->mnt, .dentry = dentry };
132780 int type = TOMOYO_TYPE_CREATE;
132781 const unsigned int perm = mode & S_IALLUGO;
132782
132783 @@ -268,8 +268,8 @@ static int tomoyo_path_mknod(struct path *parent, struct dentry *dentry,
132784 static int tomoyo_path_link(struct dentry *old_dentry, struct path *new_dir,
132785 struct dentry *new_dentry)
132786 {
132787 - struct path path1 = { new_dir->mnt, old_dentry };
132788 - struct path path2 = { new_dir->mnt, new_dentry };
132789 + struct path path1 = { .mnt = new_dir->mnt, .dentry = old_dentry };
132790 + struct path path2 = { .mnt = new_dir->mnt, .dentry = new_dentry };
132791 return tomoyo_path2_perm(TOMOYO_TYPE_LINK, &path1, &path2);
132792 }
132793
132794 @@ -288,8 +288,8 @@ static int tomoyo_path_rename(struct path *old_parent,
132795 struct path *new_parent,
132796 struct dentry *new_dentry)
132797 {
132798 - struct path path1 = { old_parent->mnt, old_dentry };
132799 - struct path path2 = { new_parent->mnt, new_dentry };
132800 + struct path path1 = { .mnt = old_parent->mnt, .dentry = old_dentry };
132801 + struct path path2 = { .mnt = new_parent->mnt, .dentry = new_dentry };
132802 return tomoyo_path2_perm(TOMOYO_TYPE_RENAME, &path1, &path2);
132803 }
132804
132805 @@ -417,7 +417,7 @@ static int tomoyo_sb_mount(const char *dev_name, struct path *path,
132806 */
132807 static int tomoyo_sb_umount(struct vfsmount *mnt, int flags)
132808 {
132809 - struct path path = { mnt, mnt->mnt_root };
132810 + struct path path = { .mnt = mnt, .dentry = mnt->mnt_root };
132811 return tomoyo_path_perm(TOMOYO_TYPE_UMOUNT, &path, NULL);
132812 }
132813
132814 diff --git a/security/yama/Kconfig b/security/yama/Kconfig
132815 index 90c605e..bf3a29a 100644
132816 --- a/security/yama/Kconfig
132817 +++ b/security/yama/Kconfig
132818 @@ -1,6 +1,6 @@
132819 config SECURITY_YAMA
132820 bool "Yama support"
132821 - depends on SECURITY
132822 + depends on SECURITY && !GRKERNSEC
132823 default n
132824 help
132825 This selects Yama, which extends DAC support with additional
132826 diff --git a/security/yama/yama_lsm.c b/security/yama/yama_lsm.c
132827 index cb6ed10..fb00554 100644
132828 --- a/security/yama/yama_lsm.c
132829 +++ b/security/yama/yama_lsm.c
132830 @@ -357,7 +357,7 @@ static struct security_hook_list yama_hooks[] = {
132831 static int yama_dointvec_minmax(struct ctl_table *table, int write,
132832 void __user *buffer, size_t *lenp, loff_t *ppos)
132833 {
132834 - struct ctl_table table_copy;
132835 + ctl_table_no_const table_copy;
132836
132837 if (write && !capable(CAP_SYS_PTRACE))
132838 return -EPERM;
132839 diff --git a/sound/aoa/codecs/onyx.c b/sound/aoa/codecs/onyx.c
132840 index a04edff..6811b91 100644
132841 --- a/sound/aoa/codecs/onyx.c
132842 +++ b/sound/aoa/codecs/onyx.c
132843 @@ -54,7 +54,7 @@ struct onyx {
132844 spdif_locked:1,
132845 analog_locked:1,
132846 original_mute:2;
132847 - int open_count;
132848 + local_t open_count;
132849 struct codec_info *codec_info;
132850
132851 /* mutex serializes concurrent access to the device
132852 @@ -747,7 +747,7 @@ static int onyx_open(struct codec_info_item *cii,
132853 struct onyx *onyx = cii->codec_data;
132854
132855 mutex_lock(&onyx->mutex);
132856 - onyx->open_count++;
132857 + local_inc(&onyx->open_count);
132858 mutex_unlock(&onyx->mutex);
132859
132860 return 0;
132861 @@ -759,8 +759,7 @@ static int onyx_close(struct codec_info_item *cii,
132862 struct onyx *onyx = cii->codec_data;
132863
132864 mutex_lock(&onyx->mutex);
132865 - onyx->open_count--;
132866 - if (!onyx->open_count)
132867 + if (local_dec_and_test(&onyx->open_count))
132868 onyx->spdif_locked = onyx->analog_locked = 0;
132869 mutex_unlock(&onyx->mutex);
132870
132871 diff --git a/sound/aoa/codecs/onyx.h b/sound/aoa/codecs/onyx.h
132872 index ffd2025..df062c9 100644
132873 --- a/sound/aoa/codecs/onyx.h
132874 +++ b/sound/aoa/codecs/onyx.h
132875 @@ -11,6 +11,7 @@
132876 #include <linux/i2c.h>
132877 #include <asm/pmac_low_i2c.h>
132878 #include <asm/prom.h>
132879 +#include <asm/local.h>
132880
132881 /* PCM3052 register definitions */
132882
132883 diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c
132884 index 33e72c8..2b72441 100644
132885 --- a/sound/core/oss/pcm_oss.c
132886 +++ b/sound/core/oss/pcm_oss.c
132887 @@ -1193,10 +1193,10 @@ snd_pcm_sframes_t snd_pcm_oss_write3(struct snd_pcm_substream *substream, const
132888 if (in_kernel) {
132889 mm_segment_t fs;
132890 fs = snd_enter_user();
132891 - ret = snd_pcm_lib_write(substream, (void __force __user *)ptr, frames);
132892 + ret = snd_pcm_lib_write(substream, (void __force_user *)ptr, frames);
132893 snd_leave_user(fs);
132894 } else {
132895 - ret = snd_pcm_lib_write(substream, (void __force __user *)ptr, frames);
132896 + ret = snd_pcm_lib_write(substream, (void __force_user *)ptr, frames);
132897 }
132898 if (ret != -EPIPE && ret != -ESTRPIPE)
132899 break;
132900 @@ -1236,10 +1236,10 @@ snd_pcm_sframes_t snd_pcm_oss_read3(struct snd_pcm_substream *substream, char *p
132901 if (in_kernel) {
132902 mm_segment_t fs;
132903 fs = snd_enter_user();
132904 - ret = snd_pcm_lib_read(substream, (void __force __user *)ptr, frames);
132905 + ret = snd_pcm_lib_read(substream, (void __force_user *)ptr, frames);
132906 snd_leave_user(fs);
132907 } else {
132908 - ret = snd_pcm_lib_read(substream, (void __force __user *)ptr, frames);
132909 + ret = snd_pcm_lib_read(substream, (void __force_user *)ptr, frames);
132910 }
132911 if (ret == -EPIPE) {
132912 if (runtime->status->state == SNDRV_PCM_STATE_DRAINING) {
132913 @@ -1335,7 +1335,7 @@ static ssize_t snd_pcm_oss_write2(struct snd_pcm_substream *substream, const cha
132914 struct snd_pcm_plugin_channel *channels;
132915 size_t oss_frame_bytes = (runtime->oss.plugin_first->src_width * runtime->oss.plugin_first->src_format.channels) / 8;
132916 if (!in_kernel) {
132917 - if (copy_from_user(runtime->oss.buffer, (const char __force __user *)buf, bytes))
132918 + if (copy_from_user(runtime->oss.buffer, (const char __force_user *)buf, bytes))
132919 return -EFAULT;
132920 buf = runtime->oss.buffer;
132921 }
132922 @@ -1405,7 +1405,7 @@ static ssize_t snd_pcm_oss_write1(struct snd_pcm_substream *substream, const cha
132923 }
132924 } else {
132925 tmp = snd_pcm_oss_write2(substream,
132926 - (const char __force *)buf,
132927 + (const char __force_kernel *)buf,
132928 runtime->oss.period_bytes, 0);
132929 if (tmp <= 0)
132930 goto err;
132931 @@ -1431,7 +1431,7 @@ static ssize_t snd_pcm_oss_read2(struct snd_pcm_substream *substream, char *buf,
132932 struct snd_pcm_runtime *runtime = substream->runtime;
132933 snd_pcm_sframes_t frames, frames1;
132934 #ifdef CONFIG_SND_PCM_OSS_PLUGINS
132935 - char __user *final_dst = (char __force __user *)buf;
132936 + char __user *final_dst = (char __force_user *)buf;
132937 if (runtime->oss.plugin_first) {
132938 struct snd_pcm_plugin_channel *channels;
132939 size_t oss_frame_bytes = (runtime->oss.plugin_last->dst_width * runtime->oss.plugin_last->dst_format.channels) / 8;
132940 @@ -1493,7 +1493,7 @@ static ssize_t snd_pcm_oss_read1(struct snd_pcm_substream *substream, char __use
132941 xfer += tmp;
132942 runtime->oss.buffer_used -= tmp;
132943 } else {
132944 - tmp = snd_pcm_oss_read2(substream, (char __force *)buf,
132945 + tmp = snd_pcm_oss_read2(substream, (char __force_kernel *)buf,
132946 runtime->oss.period_bytes, 0);
132947 if (tmp <= 0)
132948 goto err;
132949 @@ -1662,7 +1662,7 @@ static int snd_pcm_oss_sync(struct snd_pcm_oss_file *pcm_oss_file)
132950 size1);
132951 size1 /= runtime->channels; /* frames */
132952 fs = snd_enter_user();
132953 - snd_pcm_lib_write(substream, (void __force __user *)runtime->oss.buffer, size1);
132954 + snd_pcm_lib_write(substream, (void __force_user *)runtime->oss.buffer, size1);
132955 snd_leave_user(fs);
132956 }
132957 } else if (runtime->access == SNDRV_PCM_ACCESS_RW_NONINTERLEAVED) {
132958 diff --git a/sound/core/pcm_compat.c b/sound/core/pcm_compat.c
132959 index 1f64ab0..26a7233 100644
132960 --- a/sound/core/pcm_compat.c
132961 +++ b/sound/core/pcm_compat.c
132962 @@ -31,7 +31,7 @@ static int snd_pcm_ioctl_delay_compat(struct snd_pcm_substream *substream,
132963 int err;
132964
132965 fs = snd_enter_user();
132966 - err = snd_pcm_delay(substream, &delay);
132967 + err = snd_pcm_delay(substream, (snd_pcm_sframes_t __force_user *)&delay);
132968 snd_leave_user(fs);
132969 if (err < 0)
132970 return err;
132971 diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
132972 index 4ba64fd..49be507 100644
132973 --- a/sound/core/pcm_native.c
132974 +++ b/sound/core/pcm_native.c
132975 @@ -3014,11 +3014,11 @@ int snd_pcm_kernel_ioctl(struct snd_pcm_substream *substream,
132976 switch (substream->stream) {
132977 case SNDRV_PCM_STREAM_PLAYBACK:
132978 result = snd_pcm_playback_ioctl1(NULL, substream, cmd,
132979 - (void __user *)arg);
132980 + (void __force_user *)arg);
132981 break;
132982 case SNDRV_PCM_STREAM_CAPTURE:
132983 result = snd_pcm_capture_ioctl1(NULL, substream, cmd,
132984 - (void __user *)arg);
132985 + (void __force_user *)arg);
132986 break;
132987 default:
132988 result = -EINVAL;
132989 diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c
132990 index 58e79e0..19751d1 100644
132991 --- a/sound/core/seq/seq_clientmgr.c
132992 +++ b/sound/core/seq/seq_clientmgr.c
132993 @@ -416,7 +416,7 @@ static ssize_t snd_seq_read(struct file *file, char __user *buf, size_t count,
132994 if (!client->accept_input || (fifo = client->data.user.fifo) == NULL)
132995 return -ENXIO;
132996
132997 - if (atomic_read(&fifo->overflow) > 0) {
132998 + if (atomic_read_unchecked(&fifo->overflow) > 0) {
132999 /* buffer overflow is detected */
133000 snd_seq_fifo_clear(fifo);
133001 /* return error code */
133002 @@ -446,7 +446,7 @@ static ssize_t snd_seq_read(struct file *file, char __user *buf, size_t count,
133003 count -= sizeof(struct snd_seq_event);
133004 buf += sizeof(struct snd_seq_event);
133005 err = snd_seq_expand_var_event(&cell->event, count,
133006 - (char __force *)buf, 0,
133007 + (char __force_kernel *)buf, 0,
133008 sizeof(struct snd_seq_event));
133009 if (err < 0)
133010 break;
133011 @@ -1062,13 +1062,13 @@ static ssize_t snd_seq_write(struct file *file, const char __user *buf,
133012 }
133013 /* set user space pointer */
133014 event.data.ext.len = extlen | SNDRV_SEQ_EXT_USRPTR;
133015 - event.data.ext.ptr = (char __force *)buf
133016 + event.data.ext.ptr = (char __force_kernel *)buf
133017 + sizeof(struct snd_seq_event);
133018 len += extlen; /* increment data length */
133019 } else {
133020 #ifdef CONFIG_COMPAT
133021 if (client->convert32 && snd_seq_ev_is_varusr(&event)) {
133022 - void *ptr = (void __force *)compat_ptr(event.data.raw32.d[1]);
133023 + void *ptr = (void __force_kernel *)compat_ptr(event.data.raw32.d[1]);
133024 event.data.ext.ptr = ptr;
133025 }
133026 #endif
133027 @@ -2423,7 +2423,7 @@ int snd_seq_kernel_client_ctl(int clientid, unsigned int cmd, void *arg)
133028 if (client == NULL)
133029 return -ENXIO;
133030 fs = snd_enter_user();
133031 - result = snd_seq_do_ioctl(client, cmd, (void __force __user *)arg);
133032 + result = snd_seq_do_ioctl(client, cmd, (void __force_user *)arg);
133033 snd_leave_user(fs);
133034 return result;
133035 }
133036 diff --git a/sound/core/seq/seq_compat.c b/sound/core/seq/seq_compat.c
133037 index 6517590..9905cee 100644
133038 --- a/sound/core/seq/seq_compat.c
133039 +++ b/sound/core/seq/seq_compat.c
133040 @@ -60,7 +60,7 @@ static int snd_seq_call_port_info_ioctl(struct snd_seq_client *client, unsigned
133041 data->kernel = NULL;
133042
133043 fs = snd_enter_user();
133044 - err = snd_seq_do_ioctl(client, cmd, data);
133045 + err = snd_seq_do_ioctl(client, cmd, (void __force_user *)data);
133046 snd_leave_user(fs);
133047 if (err < 0)
133048 goto error;
133049 diff --git a/sound/core/seq/seq_fifo.c b/sound/core/seq/seq_fifo.c
133050 index 1d5acbe..5f55223 100644
133051 --- a/sound/core/seq/seq_fifo.c
133052 +++ b/sound/core/seq/seq_fifo.c
133053 @@ -50,7 +50,7 @@ struct snd_seq_fifo *snd_seq_fifo_new(int poolsize)
133054 spin_lock_init(&f->lock);
133055 snd_use_lock_init(&f->use_lock);
133056 init_waitqueue_head(&f->input_sleep);
133057 - atomic_set(&f->overflow, 0);
133058 + atomic_set_unchecked(&f->overflow, 0);
133059
133060 f->head = NULL;
133061 f->tail = NULL;
133062 @@ -96,7 +96,7 @@ void snd_seq_fifo_clear(struct snd_seq_fifo *f)
133063 unsigned long flags;
133064
133065 /* clear overflow flag */
133066 - atomic_set(&f->overflow, 0);
133067 + atomic_set_unchecked(&f->overflow, 0);
133068
133069 snd_use_lock_sync(&f->use_lock);
133070 spin_lock_irqsave(&f->lock, flags);
133071 @@ -123,7 +123,7 @@ int snd_seq_fifo_event_in(struct snd_seq_fifo *f,
133072 err = snd_seq_event_dup(f->pool, event, &cell, 1, NULL); /* always non-blocking */
133073 if (err < 0) {
133074 if ((err == -ENOMEM) || (err == -EAGAIN))
133075 - atomic_inc(&f->overflow);
133076 + atomic_inc_unchecked(&f->overflow);
133077 snd_use_lock_free(&f->use_lock);
133078 return err;
133079 }
133080 diff --git a/sound/core/seq/seq_fifo.h b/sound/core/seq/seq_fifo.h
133081 index 062c446..a4b6f4c 100644
133082 --- a/sound/core/seq/seq_fifo.h
133083 +++ b/sound/core/seq/seq_fifo.h
133084 @@ -35,7 +35,7 @@ struct snd_seq_fifo {
133085 spinlock_t lock;
133086 snd_use_lock_t use_lock;
133087 wait_queue_head_t input_sleep;
133088 - atomic_t overflow;
133089 + atomic_unchecked_t overflow;
133090
133091 };
133092
133093 diff --git a/sound/core/seq/seq_memory.c b/sound/core/seq/seq_memory.c
133094 index c850345..71c5fd4 100644
133095 --- a/sound/core/seq/seq_memory.c
133096 +++ b/sound/core/seq/seq_memory.c
133097 @@ -87,7 +87,7 @@ int snd_seq_dump_var_event(const struct snd_seq_event *event,
133098
133099 if (event->data.ext.len & SNDRV_SEQ_EXT_USRPTR) {
133100 char buf[32];
133101 - char __user *curptr = (char __force __user *)event->data.ext.ptr;
133102 + char __user *curptr = (char __force_user *)event->data.ext.ptr;
133103 while (len > 0) {
133104 int size = sizeof(buf);
133105 if (len < size)
133106 @@ -158,7 +158,7 @@ int snd_seq_expand_var_event(const struct snd_seq_event *event, int count, char
133107 if (event->data.ext.len & SNDRV_SEQ_EXT_USRPTR) {
133108 if (! in_kernel)
133109 return -EINVAL;
133110 - if (copy_from_user(buf, (void __force __user *)event->data.ext.ptr, len))
133111 + if (copy_from_user(buf, (void __force_user *)event->data.ext.ptr, len))
133112 return -EFAULT;
133113 return newlen;
133114 }
133115 @@ -344,7 +344,7 @@ int snd_seq_event_dup(struct snd_seq_pool *pool, struct snd_seq_event *event,
133116 tmp->event = src->event;
133117 src = src->next;
133118 } else if (is_usrptr) {
133119 - if (copy_from_user(&tmp->event, (char __force __user *)buf, size)) {
133120 + if (copy_from_user(&tmp->event, (char __force_user *)buf, size)) {
133121 err = -EFAULT;
133122 goto __error;
133123 }
133124 diff --git a/sound/core/sound.c b/sound/core/sound.c
133125 index 175f9e4..3518d31 100644
133126 --- a/sound/core/sound.c
133127 +++ b/sound/core/sound.c
133128 @@ -86,7 +86,7 @@ static void snd_request_other(int minor)
133129 case SNDRV_MINOR_TIMER: str = "snd-timer"; break;
133130 default: return;
133131 }
133132 - request_module(str);
133133 + request_module("%s", str);
133134 }
133135
133136 #endif /* modular kernel */
133137 diff --git a/sound/drivers/mts64.c b/sound/drivers/mts64.c
133138 index 2a008a9..a1efb3f 100644
133139 --- a/sound/drivers/mts64.c
133140 +++ b/sound/drivers/mts64.c
133141 @@ -29,6 +29,7 @@
133142 #include <sound/initval.h>
133143 #include <sound/rawmidi.h>
133144 #include <sound/control.h>
133145 +#include <asm/local.h>
133146
133147 #define CARD_NAME "Miditerminal 4140"
133148 #define DRIVER_NAME "MTS64"
133149 @@ -67,7 +68,7 @@ struct mts64 {
133150 struct pardevice *pardev;
133151 int pardev_claimed;
133152
133153 - int open_count;
133154 + local_t open_count;
133155 int current_midi_output_port;
133156 int current_midi_input_port;
133157 u8 mode[MTS64_NUM_INPUT_PORTS];
133158 @@ -687,7 +688,7 @@ static int snd_mts64_rawmidi_open(struct snd_rawmidi_substream *substream)
133159 {
133160 struct mts64 *mts = substream->rmidi->private_data;
133161
133162 - if (mts->open_count == 0) {
133163 + if (local_read(&mts->open_count) == 0) {
133164 /* We don't need a spinlock here, because this is just called
133165 if the device has not been opened before.
133166 So there aren't any IRQs from the device */
133167 @@ -695,7 +696,7 @@ static int snd_mts64_rawmidi_open(struct snd_rawmidi_substream *substream)
133168
133169 msleep(50);
133170 }
133171 - ++(mts->open_count);
133172 + local_inc(&mts->open_count);
133173
133174 return 0;
133175 }
133176 @@ -705,8 +706,7 @@ static int snd_mts64_rawmidi_close(struct snd_rawmidi_substream *substream)
133177 struct mts64 *mts = substream->rmidi->private_data;
133178 unsigned long flags;
133179
133180 - --(mts->open_count);
133181 - if (mts->open_count == 0) {
133182 + if (local_dec_return(&mts->open_count) == 0) {
133183 /* We need the spinlock_irqsave here because we can still
133184 have IRQs at this point */
133185 spin_lock_irqsave(&mts->lock, flags);
133186 @@ -715,8 +715,8 @@ static int snd_mts64_rawmidi_close(struct snd_rawmidi_substream *substream)
133187
133188 msleep(500);
133189
133190 - } else if (mts->open_count < 0)
133191 - mts->open_count = 0;
133192 + } else if (local_read(&mts->open_count) < 0)
133193 + local_set(&mts->open_count, 0);
133194
133195 return 0;
133196 }
133197 diff --git a/sound/drivers/opl4/opl4_lib.c b/sound/drivers/opl4/opl4_lib.c
133198 index 89c7aa0..6d75e49 100644
133199 --- a/sound/drivers/opl4/opl4_lib.c
133200 +++ b/sound/drivers/opl4/opl4_lib.c
133201 @@ -29,7 +29,7 @@ MODULE_AUTHOR("Clemens Ladisch <clemens@ladisch.de>");
133202 MODULE_DESCRIPTION("OPL4 driver");
133203 MODULE_LICENSE("GPL");
133204
133205 -static void inline snd_opl4_wait(struct snd_opl4 *opl4)
133206 +static inline void snd_opl4_wait(struct snd_opl4 *opl4)
133207 {
133208 int timeout = 10;
133209 while ((inb(opl4->fm_port) & OPL4_STATUS_BUSY) && --timeout > 0)
133210 diff --git a/sound/drivers/portman2x4.c b/sound/drivers/portman2x4.c
133211 index 464385a..46ab3f6 100644
133212 --- a/sound/drivers/portman2x4.c
133213 +++ b/sound/drivers/portman2x4.c
133214 @@ -48,6 +48,7 @@
133215 #include <sound/initval.h>
133216 #include <sound/rawmidi.h>
133217 #include <sound/control.h>
133218 +#include <asm/local.h>
133219
133220 #define CARD_NAME "Portman 2x4"
133221 #define DRIVER_NAME "portman"
133222 @@ -85,7 +86,7 @@ struct portman {
133223 struct pardevice *pardev;
133224 int pardev_claimed;
133225
133226 - int open_count;
133227 + local_t open_count;
133228 int mode[PORTMAN_NUM_INPUT_PORTS];
133229 struct snd_rawmidi_substream *midi_input[PORTMAN_NUM_INPUT_PORTS];
133230 };
133231 diff --git a/sound/firewire/amdtp-am824.c b/sound/firewire/amdtp-am824.c
133232 index bebddc6..f5976be 100644
133233 --- a/sound/firewire/amdtp-am824.c
133234 +++ b/sound/firewire/amdtp-am824.c
133235 @@ -314,7 +314,7 @@ void amdtp_am824_midi_trigger(struct amdtp_stream *s, unsigned int port,
133236 struct amdtp_am824 *p = s->protocol;
133237
133238 if (port < p->midi_ports)
133239 - ACCESS_ONCE(p->midi[port]) = midi;
133240 + ACCESS_ONCE_RW(p->midi[port]) = midi;
133241 }
133242 EXPORT_SYMBOL_GPL(amdtp_am824_midi_trigger);
133243
133244 diff --git a/sound/firewire/amdtp-stream.c b/sound/firewire/amdtp-stream.c
133245 index ed29026..933d2ae 100644
133246 --- a/sound/firewire/amdtp-stream.c
133247 +++ b/sound/firewire/amdtp-stream.c
133248 @@ -344,7 +344,7 @@ static void update_pcm_pointers(struct amdtp_stream *s,
133249 ptr = s->pcm_buffer_pointer + frames;
133250 if (ptr >= pcm->runtime->buffer_size)
133251 ptr -= pcm->runtime->buffer_size;
133252 - ACCESS_ONCE(s->pcm_buffer_pointer) = ptr;
133253 + ACCESS_ONCE_RW(s->pcm_buffer_pointer) = ptr;
133254
133255 s->pcm_period_pointer += frames;
133256 if (s->pcm_period_pointer >= pcm->runtime->period_size) {
133257 @@ -811,7 +811,7 @@ EXPORT_SYMBOL(amdtp_stream_pcm_pointer);
133258 void amdtp_stream_update(struct amdtp_stream *s)
133259 {
133260 /* Precomputing. */
133261 - ACCESS_ONCE(s->source_node_id_field) =
133262 + ACCESS_ONCE_RW(s->source_node_id_field) =
133263 (fw_parent_device(s->unit)->card->node_id << CIP_SID_SHIFT) &
133264 CIP_SID_MASK;
133265 }
133266 diff --git a/sound/firewire/amdtp-stream.h b/sound/firewire/amdtp-stream.h
133267 index 8775704..8fea566 100644
133268 --- a/sound/firewire/amdtp-stream.h
133269 +++ b/sound/firewire/amdtp-stream.h
133270 @@ -215,7 +215,7 @@ static inline bool amdtp_stream_pcm_running(struct amdtp_stream *s)
133271 static inline void amdtp_stream_pcm_trigger(struct amdtp_stream *s,
133272 struct snd_pcm_substream *pcm)
133273 {
133274 - ACCESS_ONCE(s->pcm) = pcm;
133275 + ACCESS_ONCE_RW(s->pcm) = pcm;
133276 }
133277
133278 static inline bool cip_sfc_is_base_44100(enum cip_sfc sfc)
133279 diff --git a/sound/firewire/digi00x/amdtp-dot.c b/sound/firewire/digi00x/amdtp-dot.c
133280 index b02a5e8c..96ac8b5 100644
133281 --- a/sound/firewire/digi00x/amdtp-dot.c
133282 +++ b/sound/firewire/digi00x/amdtp-dot.c
133283 @@ -365,7 +365,7 @@ void amdtp_dot_midi_trigger(struct amdtp_stream *s, unsigned int port,
133284 struct amdtp_dot *p = s->protocol;
133285
133286 if (port < p->midi_ports)
133287 - ACCESS_ONCE(p->midi[port]) = midi;
133288 + ACCESS_ONCE_RW(p->midi[port]) = midi;
133289 }
133290
133291 static unsigned int process_tx_data_blocks(struct amdtp_stream *s,
133292 diff --git a/sound/firewire/isight.c b/sound/firewire/isight.c
133293 index 48d6dca..a0266c23 100644
133294 --- a/sound/firewire/isight.c
133295 +++ b/sound/firewire/isight.c
133296 @@ -96,7 +96,7 @@ static void isight_update_pointers(struct isight *isight, unsigned int count)
133297 ptr += count;
133298 if (ptr >= runtime->buffer_size)
133299 ptr -= runtime->buffer_size;
133300 - ACCESS_ONCE(isight->buffer_pointer) = ptr;
133301 + ACCESS_ONCE_RW(isight->buffer_pointer) = ptr;
133302
133303 isight->period_counter += count;
133304 if (isight->period_counter >= runtime->period_size) {
133305 @@ -293,7 +293,7 @@ static int isight_hw_params(struct snd_pcm_substream *substream,
133306 if (err < 0)
133307 return err;
133308
133309 - ACCESS_ONCE(isight->pcm_active) = true;
133310 + ACCESS_ONCE_RW(isight->pcm_active) = true;
133311
133312 return 0;
133313 }
133314 @@ -331,7 +331,7 @@ static int isight_hw_free(struct snd_pcm_substream *substream)
133315 {
133316 struct isight *isight = substream->private_data;
133317
133318 - ACCESS_ONCE(isight->pcm_active) = false;
133319 + ACCESS_ONCE_RW(isight->pcm_active) = false;
133320
133321 mutex_lock(&isight->mutex);
133322 isight_stop_streaming(isight);
133323 @@ -424,10 +424,10 @@ static int isight_trigger(struct snd_pcm_substream *substream, int cmd)
133324
133325 switch (cmd) {
133326 case SNDRV_PCM_TRIGGER_START:
133327 - ACCESS_ONCE(isight->pcm_running) = true;
133328 + ACCESS_ONCE_RW(isight->pcm_running) = true;
133329 break;
133330 case SNDRV_PCM_TRIGGER_STOP:
133331 - ACCESS_ONCE(isight->pcm_running) = false;
133332 + ACCESS_ONCE_RW(isight->pcm_running) = false;
133333 break;
133334 default:
133335 return -EINVAL;
133336 diff --git a/sound/firewire/scs1x.c b/sound/firewire/scs1x.c
133337 index 2dba848..c682aef 100644
133338 --- a/sound/firewire/scs1x.c
133339 +++ b/sound/firewire/scs1x.c
133340 @@ -74,7 +74,7 @@ static void scs_output_trigger(struct snd_rawmidi_substream *stream, int up)
133341 {
133342 struct scs *scs = stream->rmidi->private_data;
133343
133344 - ACCESS_ONCE(scs->output) = up ? stream : NULL;
133345 + ACCESS_ONCE_RW(scs->output) = up ? stream : NULL;
133346 if (up) {
133347 scs->output_idle = false;
133348 tasklet_schedule(&scs->tasklet);
133349 @@ -257,7 +257,7 @@ static void scs_input_trigger(struct snd_rawmidi_substream *stream, int up)
133350 {
133351 struct scs *scs = stream->rmidi->private_data;
133352
133353 - ACCESS_ONCE(scs->input) = up ? stream : NULL;
133354 + ACCESS_ONCE_RW(scs->input) = up ? stream : NULL;
133355 }
133356
133357 static void scs_input_escaped_byte(struct snd_rawmidi_substream *stream,
133358 @@ -473,8 +473,8 @@ static void scs_remove(struct fw_unit *unit)
133359
133360 snd_card_disconnect(scs->card);
133361
133362 - ACCESS_ONCE(scs->output) = NULL;
133363 - ACCESS_ONCE(scs->input) = NULL;
133364 + ACCESS_ONCE_RW(scs->output) = NULL;
133365 + ACCESS_ONCE_RW(scs->input) = NULL;
133366
133367 wait_event(scs->idle_wait, scs->output_idle);
133368
133369 diff --git a/sound/oss/sb_audio.c b/sound/oss/sb_audio.c
133370 index dc91072..d85a10a 100644
133371 --- a/sound/oss/sb_audio.c
133372 +++ b/sound/oss/sb_audio.c
133373 @@ -900,7 +900,7 @@ sb16_copy_from_user(int dev,
133374 buf16 = (signed short *)(localbuf + localoffs);
133375 while (c)
133376 {
133377 - locallen = (c >= LBUFCOPYSIZE ? LBUFCOPYSIZE : c);
133378 + locallen = ((unsigned)c >= LBUFCOPYSIZE ? LBUFCOPYSIZE : c);
133379 if (copy_from_user(lbuf8,
133380 userbuf+useroffs + p,
133381 locallen))
133382 diff --git a/sound/oss/swarm_cs4297a.c b/sound/oss/swarm_cs4297a.c
133383 index 213a416..aeab5c9 100644
133384 --- a/sound/oss/swarm_cs4297a.c
133385 +++ b/sound/oss/swarm_cs4297a.c
133386 @@ -2623,7 +2623,6 @@ static int __init cs4297a_init(void)
133387 {
133388 struct cs4297a_state *s;
133389 u32 pwr, id;
133390 - mm_segment_t fs;
133391 int rval;
133392 u64 cfg;
133393 int mdio_val;
133394 @@ -2709,22 +2708,23 @@ static int __init cs4297a_init(void)
133395 if (!rval) {
133396 char *sb1250_duart_present;
133397
133398 +#if 0
133399 + mm_segment_t fs;
133400 fs = get_fs();
133401 set_fs(KERNEL_DS);
133402 -#if 0
133403 val = SOUND_MASK_LINE;
133404 mixer_ioctl(s, SOUND_MIXER_WRITE_RECSRC, (unsigned long) &val);
133405 for (i = 0; i < ARRAY_SIZE(initvol); i++) {
133406 val = initvol[i].vol;
133407 mixer_ioctl(s, initvol[i].mixch, (unsigned long) &val);
133408 }
133409 + set_fs(fs);
133410 // cs4297a_write_ac97(s, 0x18, 0x0808);
133411 #else
133412 // cs4297a_write_ac97(s, 0x5e, 0x180);
133413 cs4297a_write_ac97(s, 0x02, 0x0808);
133414 cs4297a_write_ac97(s, 0x18, 0x0808);
133415 #endif
133416 - set_fs(fs);
133417
133418 list_add(&s->list, &cs4297a_devs);
133419
133420 diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
133421 index 8374188..f073778 100644
133422 --- a/sound/pci/hda/hda_codec.c
133423 +++ b/sound/pci/hda/hda_codec.c
133424 @@ -1743,7 +1743,7 @@ static int get_kctl_0dB_offset(struct hda_codec *codec,
133425 /* FIXME: set_fs() hack for obtaining user-space TLV data */
133426 mm_segment_t fs = get_fs();
133427 set_fs(get_ds());
133428 - if (!kctl->tlv.c(kctl, 0, sizeof(_tlv), _tlv))
133429 + if (!kctl->tlv.c(kctl, 0, sizeof(_tlv), (unsigned int __force_user *)_tlv))
133430 tlv = _tlv;
133431 set_fs(fs);
133432 } else if (kctl->vd[0].access & SNDRV_CTL_ELEM_ACCESS_TLV_READ)
133433 diff --git a/sound/pci/ymfpci/ymfpci.h b/sound/pci/ymfpci/ymfpci.h
133434 index 149d4cb..7784769 100644
133435 --- a/sound/pci/ymfpci/ymfpci.h
133436 +++ b/sound/pci/ymfpci/ymfpci.h
133437 @@ -358,7 +358,7 @@ struct snd_ymfpci {
133438 spinlock_t reg_lock;
133439 spinlock_t voice_lock;
133440 wait_queue_head_t interrupt_sleep;
133441 - atomic_t interrupt_sleep_count;
133442 + atomic_unchecked_t interrupt_sleep_count;
133443 struct snd_info_entry *proc_entry;
133444 const struct firmware *dsp_microcode;
133445 const struct firmware *controller_microcode;
133446 diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c
133447 index 4c26076..a13f370 100644
133448 --- a/sound/pci/ymfpci/ymfpci_main.c
133449 +++ b/sound/pci/ymfpci/ymfpci_main.c
133450 @@ -204,8 +204,8 @@ static void snd_ymfpci_hw_stop(struct snd_ymfpci *chip)
133451 if ((snd_ymfpci_readl(chip, YDSXGR_STATUS) & 2) == 0)
133452 break;
133453 }
133454 - if (atomic_read(&chip->interrupt_sleep_count)) {
133455 - atomic_set(&chip->interrupt_sleep_count, 0);
133456 + if (atomic_read_unchecked(&chip->interrupt_sleep_count)) {
133457 + atomic_set_unchecked(&chip->interrupt_sleep_count, 0);
133458 wake_up(&chip->interrupt_sleep);
133459 }
133460 __end:
133461 @@ -789,7 +789,7 @@ static void snd_ymfpci_irq_wait(struct snd_ymfpci *chip)
133462 continue;
133463 init_waitqueue_entry(&wait, current);
133464 add_wait_queue(&chip->interrupt_sleep, &wait);
133465 - atomic_inc(&chip->interrupt_sleep_count);
133466 + atomic_inc_unchecked(&chip->interrupt_sleep_count);
133467 schedule_timeout_uninterruptible(msecs_to_jiffies(50));
133468 remove_wait_queue(&chip->interrupt_sleep, &wait);
133469 }
133470 @@ -827,8 +827,8 @@ static irqreturn_t snd_ymfpci_interrupt(int irq, void *dev_id)
133471 snd_ymfpci_writel(chip, YDSXGR_MODE, mode);
133472 spin_unlock(&chip->reg_lock);
133473
133474 - if (atomic_read(&chip->interrupt_sleep_count)) {
133475 - atomic_set(&chip->interrupt_sleep_count, 0);
133476 + if (atomic_read_unchecked(&chip->interrupt_sleep_count)) {
133477 + atomic_set_unchecked(&chip->interrupt_sleep_count, 0);
133478 wake_up(&chip->interrupt_sleep);
133479 }
133480 }
133481 @@ -2384,7 +2384,7 @@ int snd_ymfpci_create(struct snd_card *card,
133482 spin_lock_init(&chip->reg_lock);
133483 spin_lock_init(&chip->voice_lock);
133484 init_waitqueue_head(&chip->interrupt_sleep);
133485 - atomic_set(&chip->interrupt_sleep_count, 0);
133486 + atomic_set_unchecked(&chip->interrupt_sleep_count, 0);
133487 chip->card = card;
133488 chip->pci = pci;
133489 chip->irq = -1;
133490 diff --git a/sound/soc/codecs/sti-sas.c b/sound/soc/codecs/sti-sas.c
133491 index 160d61a..10bfd63 100644
133492 --- a/sound/soc/codecs/sti-sas.c
133493 +++ b/sound/soc/codecs/sti-sas.c
133494 @@ -591,11 +591,13 @@ static int sti_sas_driver_probe(struct platform_device *pdev)
133495 sti_sas_dai[STI_SAS_DAI_ANALOG_OUT].ops = drvdata->dev_data->dac_ops;
133496
133497 /* Set dapms*/
133498 - sti_sas_driver.dapm_widgets = drvdata->dev_data->dapm_widgets;
133499 - sti_sas_driver.num_dapm_widgets = drvdata->dev_data->num_dapm_widgets;
133500 + pax_open_kernel();
133501 + *(const void **)&sti_sas_driver.dapm_widgets = drvdata->dev_data->dapm_widgets;
133502 + *(int *)&sti_sas_driver.num_dapm_widgets = drvdata->dev_data->num_dapm_widgets;
133503
133504 - sti_sas_driver.dapm_routes = drvdata->dev_data->dapm_routes;
133505 - sti_sas_driver.num_dapm_routes = drvdata->dev_data->num_dapm_routes;
133506 + *(const void **)&sti_sas_driver.dapm_routes = drvdata->dev_data->dapm_routes;
133507 + *(int *)&sti_sas_driver.num_dapm_routes = drvdata->dev_data->num_dapm_routes;
133508 + pax_close_kernel();
133509
133510 /* Store context */
133511 dev_set_drvdata(&pdev->dev, drvdata);
133512 diff --git a/sound/soc/intel/skylake/skl-sst-dsp.h b/sound/soc/intel/skylake/skl-sst-dsp.h
133513 index 6bfcef4..201ca47 100644
133514 --- a/sound/soc/intel/skylake/skl-sst-dsp.h
133515 +++ b/sound/soc/intel/skylake/skl-sst-dsp.h
133516 @@ -114,14 +114,14 @@ struct skl_dsp_fw_ops {
133517 int (*set_state_D0)(struct sst_dsp *ctx);
133518 int (*set_state_D3)(struct sst_dsp *ctx);
133519 unsigned int (*get_fw_errcode)(struct sst_dsp *ctx);
133520 -};
133521 +} __no_const;
133522
133523 struct skl_dsp_loader_ops {
133524 int (*alloc_dma_buf)(struct device *dev,
133525 struct snd_dma_buffer *dmab, size_t size);
133526 int (*free_dma_buf)(struct device *dev,
133527 struct snd_dma_buffer *dmab);
133528 -};
133529 +} __no_const;
133530
133531 void skl_cldma_process_intr(struct sst_dsp *ctx);
133532 void skl_cldma_int_disable(struct sst_dsp *ctx);
133533 diff --git a/sound/soc/soc-ac97.c b/sound/soc/soc-ac97.c
133534 index d40efc9..4dbd571 100644
133535 --- a/sound/soc/soc-ac97.c
133536 +++ b/sound/soc/soc-ac97.c
133537 @@ -291,8 +291,10 @@ int snd_soc_set_ac97_ops_of_reset(struct snd_ac97_bus_ops *ops,
133538 if (ret)
133539 return ret;
133540
133541 - ops->warm_reset = snd_soc_ac97_warm_reset;
133542 - ops->reset = snd_soc_ac97_reset;
133543 + pax_open_kernel();
133544 + *(void **)&ops->warm_reset = snd_soc_ac97_warm_reset;
133545 + *(void **)&ops->reset = snd_soc_ac97_reset;
133546 + pax_close_kernel();
133547
133548 snd_ac97_rst_cfg = cfg;
133549 return 0;
133550 diff --git a/sound/soc/xtensa/xtfpga-i2s.c b/sound/soc/xtensa/xtfpga-i2s.c
133551 index 8382ffa..86af7d0 100644
133552 --- a/sound/soc/xtensa/xtfpga-i2s.c
133553 +++ b/sound/soc/xtensa/xtfpga-i2s.c
133554 @@ -437,7 +437,7 @@ static int xtfpga_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
133555 case SNDRV_PCM_TRIGGER_START:
133556 case SNDRV_PCM_TRIGGER_RESUME:
133557 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
133558 - ACCESS_ONCE(i2s->tx_ptr) = 0;
133559 + ACCESS_ONCE_RW(i2s->tx_ptr) = 0;
133560 rcu_assign_pointer(i2s->tx_substream, substream);
133561 xtfpga_pcm_refill_fifo(i2s);
133562 break;
133563 diff --git a/sound/synth/emux/emux_seq.c b/sound/synth/emux/emux_seq.c
133564 index a020920..55579f6 100644
133565 --- a/sound/synth/emux/emux_seq.c
133566 +++ b/sound/synth/emux/emux_seq.c
133567 @@ -33,13 +33,13 @@ static int snd_emux_unuse(void *private_data, struct snd_seq_port_subscribe *inf
133568 * MIDI emulation operators
133569 */
133570 static struct snd_midi_op emux_ops = {
133571 - snd_emux_note_on,
133572 - snd_emux_note_off,
133573 - snd_emux_key_press,
133574 - snd_emux_terminate_note,
133575 - snd_emux_control,
133576 - snd_emux_nrpn,
133577 - snd_emux_sysex,
133578 + .note_on = snd_emux_note_on,
133579 + .note_off = snd_emux_note_off,
133580 + .key_press = snd_emux_key_press,
133581 + .note_terminate = snd_emux_terminate_note,
133582 + .control = snd_emux_control,
133583 + .nrpn = snd_emux_nrpn,
133584 + .sysex = snd_emux_sysex,
133585 };
133586
133587
133588 diff --git a/sound/usb/line6/driver.c b/sound/usb/line6/driver.c
133589 index 81b7da8..bb2676f 100644
133590 --- a/sound/usb/line6/driver.c
133591 +++ b/sound/usb/line6/driver.c
133592 @@ -307,7 +307,7 @@ int line6_read_data(struct usb_line6 *line6, unsigned address, void *data,
133593 {
133594 struct usb_device *usbdev = line6->usbdev;
133595 int ret;
133596 - unsigned char len;
133597 + unsigned char *plen;
133598 unsigned count;
133599
133600 if (address > 0xffff || datalen > 0xff)
133601 @@ -324,6 +324,10 @@ int line6_read_data(struct usb_line6 *line6, unsigned address, void *data,
133602 return ret;
133603 }
133604
133605 + plen = kmalloc(1, GFP_KERNEL);
133606 + if (plen == NULL)
133607 + return -ENOMEM;
133608 +
133609 /* Wait for data length. We'll get 0xff until length arrives. */
133610 for (count = 0; count < LINE6_READ_WRITE_MAX_RETRIES; count++) {
133611 mdelay(LINE6_READ_WRITE_STATUS_DELAY);
133612 @@ -331,30 +335,35 @@ int line6_read_data(struct usb_line6 *line6, unsigned address, void *data,
133613 ret = usb_control_msg(usbdev, usb_rcvctrlpipe(usbdev, 0), 0x67,
133614 USB_TYPE_VENDOR | USB_RECIP_DEVICE |
133615 USB_DIR_IN,
133616 - 0x0012, 0x0000, &len, 1,
133617 + 0x0012, 0x0000, plen, 1,
133618 LINE6_TIMEOUT * HZ);
133619 if (ret < 0) {
133620 dev_err(line6->ifcdev,
133621 "receive length failed (error %d)\n", ret);
133622 + kfree(plen);
133623 return ret;
133624 }
133625
133626 - if (len != 0xff)
133627 + if (*plen != 0xff)
133628 break;
133629 }
133630
133631 - if (len == 0xff) {
133632 + if (*plen == 0xff) {
133633 dev_err(line6->ifcdev, "read failed after %d retries\n",
133634 count);
133635 + kfree(plen);
133636 return -EIO;
133637 - } else if (len != datalen) {
133638 + } else if (*plen != datalen) {
133639 /* should be equal or something went wrong */
133640 dev_err(line6->ifcdev,
133641 "length mismatch (expected %d, got %d)\n",
133642 - (int)datalen, (int)len);
133643 + (int)datalen, (int)*plen);
133644 + kfree(plen);
133645 return -EIO;
133646 }
133647
133648 + kfree(plen);
133649 +
133650 /* receive the result: */
133651 ret = usb_control_msg(usbdev, usb_rcvctrlpipe(usbdev, 0), 0x67,
133652 USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
133653 @@ -378,7 +387,7 @@ int line6_write_data(struct usb_line6 *line6, unsigned address, void *data,
133654 {
133655 struct usb_device *usbdev = line6->usbdev;
133656 int ret;
133657 - unsigned char status;
133658 + unsigned char *status;
133659 int count;
133660
133661 if (address > 0xffff || datalen > 0xffff)
133662 @@ -395,6 +404,10 @@ int line6_write_data(struct usb_line6 *line6, unsigned address, void *data,
133663 return ret;
133664 }
133665
133666 + status = kmalloc(1, GFP_KERNEL);
133667 + if (status == NULL)
133668 + return -ENOMEM;
133669 +
133670 for (count = 0; count < LINE6_READ_WRITE_MAX_RETRIES; count++) {
133671 mdelay(LINE6_READ_WRITE_STATUS_DELAY);
133672
133673 @@ -403,27 +416,32 @@ int line6_write_data(struct usb_line6 *line6, unsigned address, void *data,
133674 USB_TYPE_VENDOR | USB_RECIP_DEVICE |
133675 USB_DIR_IN,
133676 0x0012, 0x0000,
133677 - &status, 1, LINE6_TIMEOUT * HZ);
133678 + status, 1, LINE6_TIMEOUT * HZ);
133679
133680 if (ret < 0) {
133681 dev_err(line6->ifcdev,
133682 "receiving status failed (error %d)\n", ret);
133683 + kfree(status);
133684 return ret;
133685 }
133686
133687 - if (status != 0xff)
133688 + if (*status != 0xff)
133689 break;
133690 }
133691
133692 - if (status == 0xff) {
133693 + if (*status == 0xff) {
133694 dev_err(line6->ifcdev, "write failed after %d retries\n",
133695 count);
133696 + kfree(status);
133697 return -EIO;
133698 - } else if (status != 0) {
133699 + } else if (*status != 0) {
133700 dev_err(line6->ifcdev, "write failed (error %d)\n", ret);
133701 + kfree(status);
133702 return -EIO;
133703 }
133704
133705 + kfree(status);
133706 +
133707 return 0;
133708 }
133709 EXPORT_SYMBOL_GPL(line6_write_data);
133710 diff --git a/sound/usb/line6/toneport.c b/sound/usb/line6/toneport.c
133711 index 6d4c50c..aa658c8 100644
133712 --- a/sound/usb/line6/toneport.c
133713 +++ b/sound/usb/line6/toneport.c
133714 @@ -367,13 +367,19 @@ static bool toneport_has_source_select(struct usb_line6_toneport *toneport)
133715 */
133716 static void toneport_setup(struct usb_line6_toneport *toneport)
133717 {
133718 - int ticks;
133719 + int *ticks;
133720 struct usb_line6 *line6 = &toneport->line6;
133721 struct usb_device *usbdev = line6->usbdev;
133722
133723 + ticks = kmalloc(sizeof(int), GFP_KERNEL);
133724 + if (ticks == NULL)
133725 + return;
133726 +
133727 /* sync time on device with host: */
133728 - ticks = (int)get_seconds();
133729 - line6_write_data(line6, 0x80c6, &ticks, 4);
133730 + *ticks = (int)get_seconds();
133731 + line6_write_data(line6, 0x80c6, ticks, sizeof(int));
133732 +
133733 + kfree(ticks);
133734
133735 /* enable device: */
133736 toneport_send_cmd(usbdev, 0x0301, 0x0000);
133737 diff --git a/tools/gcc/.gitignore b/tools/gcc/.gitignore
133738 new file mode 100644
133739 index 0000000..de92ed9
133740 --- /dev/null
133741 +++ b/tools/gcc/.gitignore
133742 @@ -0,0 +1 @@
133743 +randomize_layout_seed.h
133744 diff --git a/tools/gcc/Makefile b/tools/gcc/Makefile
133745 new file mode 100644
133746 index 0000000..4945d82
133747 --- /dev/null
133748 +++ b/tools/gcc/Makefile
133749 @@ -0,0 +1,54 @@
133750 +#CC := gcc
133751 +#PLUGIN_SOURCE_FILES := pax_plugin.c
133752 +#PLUGIN_OBJECT_FILES := $(patsubst %.c,%.o,$(PLUGIN_SOURCE_FILES))
133753 +GCCPLUGINS_DIR := $(shell $(CC) -print-file-name=plugin)
133754 +#CFLAGS += -I$(GCCPLUGINS_DIR)/include -fPIC -O2 -Wall -W -std=gnu99
133755 +
133756 +ifeq ($(PLUGINCC),$(HOSTCC))
133757 +HOSTLIBS := hostlibs
133758 +HOST_EXTRACFLAGS += -I$(GCCPLUGINS_DIR)/include -I$(src) -std=gnu99 -ggdb
133759 +export HOST_EXTRACFLAGS
133760 +else
133761 +HOSTLIBS := hostcxxlibs
133762 +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
133763 +export HOST_EXTRACXXFLAGS
133764 +endif
133765 +
133766 +export GCCPLUGINS_DIR HOSTLIBS
133767 +
133768 +$(HOSTLIBS)-$(CONFIG_PAX_CONSTIFY_PLUGIN) := constify_plugin.so
133769 +$(HOSTLIBS)-$(CONFIG_PAX_MEMORY_STACKLEAK) += stackleak_plugin.so
133770 +$(HOSTLIBS)-$(CONFIG_KALLOCSTAT_PLUGIN) += kallocstat_plugin.so
133771 +$(HOSTLIBS)-$(CONFIG_PAX_KERNEXEC_PLUGIN) += kernexec_plugin.so
133772 +$(HOSTLIBS)-$(CONFIG_CHECKER_PLUGIN) += checker_plugin.so
133773 +$(HOSTLIBS)-y += colorize_plugin.so
133774 +$(HOSTLIBS)-$(CONFIG_PAX_LATENT_ENTROPY) += latent_entropy_plugin.so
133775 +$(HOSTLIBS)-$(CONFIG_PAX_MEMORY_STRUCTLEAK) += structleak_plugin.so
133776 +$(HOSTLIBS)-y += initify_plugin.so
133777 +$(HOSTLIBS)-$(CONFIG_GRKERNSEC_RANDSTRUCT) += randomize_layout_plugin.so
133778 +
133779 +subdir-$(CONFIG_PAX_SIZE_OVERFLOW) := size_overflow_plugin
133780 +subdir- += size_overflow_plugin
133781 +
133782 +always := $($(HOSTLIBS)-y)
133783 +
133784 +constify_plugin-objs := constify_plugin.o
133785 +stackleak_plugin-objs := stackleak_plugin.o
133786 +kallocstat_plugin-objs := kallocstat_plugin.o
133787 +kernexec_plugin-objs := kernexec_plugin.o
133788 +checker_plugin-objs := checker_plugin.o
133789 +colorize_plugin-objs := colorize_plugin.o
133790 +latent_entropy_plugin-objs := latent_entropy_plugin.o
133791 +structleak_plugin-objs := structleak_plugin.o
133792 +initify_plugin-objs := initify_plugin.o
133793 +randomize_layout_plugin-objs := randomize_layout_plugin.o
133794 +
133795 +$(obj)/randomize_layout_plugin.o: $(objtree)/$(obj)/randomize_layout_seed.h
133796 +
133797 +quiet_cmd_create_randomize_layout_seed = GENSEED $@
133798 + cmd_create_randomize_layout_seed = \
133799 + $(CONFIG_SHELL) $(srctree)/$(src)/gen-random-seed.sh $@ $(objtree)/include/generated/randomize_layout_hash.h
133800 +$(objtree)/$(obj)/randomize_layout_seed.h: FORCE
133801 + $(call if_changed,create_randomize_layout_seed)
133802 +
133803 +targets += randomize_layout_seed.h randomize_layout_hash.h
133804 diff --git a/tools/gcc/checker_plugin.c b/tools/gcc/checker_plugin.c
133805 new file mode 100644
133806 index 0000000..efaf576
133807 --- /dev/null
133808 +++ b/tools/gcc/checker_plugin.c
133809 @@ -0,0 +1,496 @@
133810 +/*
133811 + * Copyright 2011-2016 by the PaX Team <pageexec@freemail.hu>
133812 + * Licensed under the GPL v2
133813 + *
133814 + * Note: the choice of the license means that the compilation process is
133815 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
133816 + * but for the kernel it doesn't matter since it doesn't link against
133817 + * any of the gcc libraries
133818 + *
133819 + * gcc plugin to implement various sparse (source code checker) features
133820 + *
133821 + * TODO:
133822 + * - define separate __iomem, __percpu and __rcu address spaces (lots of code to patch)
133823 + *
133824 + * BUGS:
133825 + * - none known
133826 + */
133827 +
133828 +#include "gcc-common.h"
133829 +
133830 +extern void c_register_addr_space (const char *str, addr_space_t as);
133831 +extern enum machine_mode default_addr_space_pointer_mode (addr_space_t);
133832 +extern enum machine_mode default_addr_space_address_mode (addr_space_t);
133833 +extern bool default_addr_space_valid_pointer_mode(enum machine_mode mode, addr_space_t as);
133834 +extern bool default_addr_space_legitimate_address_p(enum machine_mode mode, rtx mem, bool strict, addr_space_t as);
133835 +extern rtx default_addr_space_legitimize_address(rtx x, rtx oldx, enum machine_mode mode, addr_space_t as);
133836 +
133837 +int plugin_is_GPL_compatible;
133838 +
133839 +static struct plugin_info checker_plugin_info = {
133840 + .version = "201602181345",
133841 + .help = "user\tturn on user/kernel address space checking\n"
133842 + "context\tturn on locking context checking\n"
133843 +};
133844 +
133845 +#define ADDR_SPACE_KERNEL 0
133846 +#define ADDR_SPACE_FORCE_KERNEL 1
133847 +#define ADDR_SPACE_USER 2
133848 +#define ADDR_SPACE_FORCE_USER 3
133849 +#define ADDR_SPACE_IOMEM 0
133850 +#define ADDR_SPACE_FORCE_IOMEM 0
133851 +#define ADDR_SPACE_PERCPU 0
133852 +#define ADDR_SPACE_FORCE_PERCPU 0
133853 +#define ADDR_SPACE_RCU 0
133854 +#define ADDR_SPACE_FORCE_RCU 0
133855 +
133856 +static enum machine_mode checker_addr_space_pointer_mode(addr_space_t addrspace)
133857 +{
133858 + return default_addr_space_pointer_mode(ADDR_SPACE_GENERIC);
133859 +}
133860 +
133861 +static enum machine_mode checker_addr_space_address_mode(addr_space_t addrspace)
133862 +{
133863 + return default_addr_space_address_mode(ADDR_SPACE_GENERIC);
133864 +}
133865 +
133866 +static bool checker_addr_space_valid_pointer_mode(enum machine_mode mode, addr_space_t as)
133867 +{
133868 + return default_addr_space_valid_pointer_mode(mode, as);
133869 +}
133870 +
133871 +static bool checker_addr_space_legitimate_address_p(enum machine_mode mode, rtx mem, bool strict, addr_space_t as)
133872 +{
133873 + return default_addr_space_legitimate_address_p(mode, mem, strict, ADDR_SPACE_GENERIC);
133874 +}
133875 +
133876 +static rtx checker_addr_space_legitimize_address(rtx x, rtx oldx, enum machine_mode mode, addr_space_t as)
133877 +{
133878 + return default_addr_space_legitimize_address(x, oldx, mode, as);
133879 +}
133880 +
133881 +static bool checker_addr_space_subset_p(addr_space_t subset, addr_space_t superset)
133882 +{
133883 + if (subset == ADDR_SPACE_FORCE_KERNEL && superset == ADDR_SPACE_KERNEL)
133884 + return true;
133885 +
133886 + if (subset == ADDR_SPACE_FORCE_USER && superset == ADDR_SPACE_USER)
133887 + return true;
133888 +
133889 + if (subset == ADDR_SPACE_FORCE_IOMEM && superset == ADDR_SPACE_IOMEM)
133890 + return true;
133891 +
133892 + if (subset == ADDR_SPACE_KERNEL && superset == ADDR_SPACE_FORCE_USER)
133893 + return true;
133894 +
133895 + if (subset == ADDR_SPACE_KERNEL && superset == ADDR_SPACE_FORCE_IOMEM)
133896 + return true;
133897 +
133898 + if (subset == ADDR_SPACE_USER && superset == ADDR_SPACE_FORCE_KERNEL)
133899 + return true;
133900 +
133901 + if (subset == ADDR_SPACE_IOMEM && superset == ADDR_SPACE_FORCE_KERNEL)
133902 + return true;
133903 +
133904 + return subset == superset;
133905 +}
133906 +
133907 +static rtx checker_addr_space_convert(rtx op, tree from_type, tree to_type)
133908 +{
133909 +// addr_space_t from_as = TYPE_ADDR_SPACE(TREE_TYPE(from_type));
133910 +// addr_space_t to_as = TYPE_ADDR_SPACE(TREE_TYPE(to_type));
133911 +
133912 + return op;
133913 +}
133914 +
133915 +static void register_checker_address_spaces(void *event_data, void *data)
133916 +{
133917 + c_register_addr_space("__kernel", ADDR_SPACE_KERNEL);
133918 + c_register_addr_space("__force_kernel", ADDR_SPACE_FORCE_KERNEL);
133919 + c_register_addr_space("__user", ADDR_SPACE_USER);
133920 + c_register_addr_space("__force_user", ADDR_SPACE_FORCE_USER);
133921 +// c_register_addr_space("__iomem", ADDR_SPACE_IOMEM);
133922 +// c_register_addr_space("__force_iomem", ADDR_SPACE_FORCE_IOMEM);
133923 +// c_register_addr_space("__percpu", ADDR_SPACE_PERCPU);
133924 +// c_register_addr_space("__force_percpu", ADDR_SPACE_FORCE_PERCPU);
133925 +// c_register_addr_space("__rcu", ADDR_SPACE_RCU);
133926 +// c_register_addr_space("__force_rcu", ADDR_SPACE_FORCE_RCU);
133927 +
133928 + targetm.addr_space.pointer_mode = checker_addr_space_pointer_mode;
133929 + targetm.addr_space.address_mode = checker_addr_space_address_mode;
133930 + targetm.addr_space.valid_pointer_mode = checker_addr_space_valid_pointer_mode;
133931 + targetm.addr_space.legitimate_address_p = checker_addr_space_legitimate_address_p;
133932 +// targetm.addr_space.legitimize_address = checker_addr_space_legitimize_address;
133933 + targetm.addr_space.subset_p = checker_addr_space_subset_p;
133934 + targetm.addr_space.convert = checker_addr_space_convert;
133935 +}
133936 +
133937 +static bool split_context_attribute(tree args, tree *lock, tree *in, tree *out)
133938 +{
133939 + *in = TREE_VALUE(args);
133940 +
133941 + if (TREE_CODE(*in) != INTEGER_CST) {
133942 + *lock = *in;
133943 + args = TREE_CHAIN(args);
133944 + *in = TREE_VALUE(args);
133945 + } else
133946 + *lock = NULL_TREE;
133947 +
133948 + args = TREE_CHAIN(args);
133949 + if (*lock && !args)
133950 + return false;
133951 +
133952 + *out = TREE_VALUE(args);
133953 + return true;
133954 +}
133955 +
133956 +static tree handle_context_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
133957 +{
133958 + *no_add_attrs = true;
133959 + tree lock, in, out;
133960 +
133961 + if (TREE_CODE(*node) != FUNCTION_DECL) {
133962 + error("%qE attribute applies to functions only (%qD)", name, *node);
133963 + return NULL_TREE;
133964 + }
133965 +
133966 + if (!split_context_attribute(args, &lock, &in, &out)) {
133967 + error("%qE attribute needs two integers after the lock expression", name);
133968 + return NULL_TREE;
133969 + }
133970 +
133971 + if (TREE_CODE(in) != INTEGER_CST) {
133972 + error("the 'in' argument of the %qE attribute must be an integer (%qE)", name, in);
133973 + return NULL_TREE;
133974 + }
133975 +
133976 + if (TREE_CODE(out) != INTEGER_CST) {
133977 + error("the 'out' argument of the %qE attribute must be an integer (%qE)", name, out);
133978 + return NULL_TREE;
133979 + }
133980 +
133981 + *no_add_attrs = false;
133982 + return NULL_TREE;
133983 +}
133984 +
133985 +static struct attribute_spec context_attr = {
133986 + .name = "context",
133987 + .min_length = 2,
133988 + .max_length = 3,
133989 + .decl_required = true,
133990 + .type_required = false,
133991 + .function_type_required = false,
133992 + .handler = handle_context_attribute,
133993 +#if BUILDING_GCC_VERSION >= 4007
133994 + .affects_type_identity = true
133995 +#endif
133996 +};
133997 +
133998 +static void register_attributes(void *event_data, void *data)
133999 +{
134000 + register_attribute(&context_attr);
134001 +}
134002 +
134003 +static const char context_function[] = "__context__";
134004 +static GTY(()) tree context_function_decl;
134005 +
134006 +static const char context_error[] = "__context_error__";
134007 +static GTY(()) tree context_error_decl;
134008 +
134009 +static void context_start_unit(void __unused *gcc_data, void __unused *user_data)
134010 +{
134011 + tree fntype, attr;
134012 +
134013 + // void __context__(void *, int);
134014 + fntype = build_function_type_list(void_type_node, ptr_type_node, integer_type_node, NULL_TREE);
134015 + context_function_decl = build_fn_decl(context_function, fntype);
134016 +
134017 + TREE_PUBLIC(context_function_decl) = 1;
134018 + TREE_USED(context_function_decl) = 1;
134019 + DECL_EXTERNAL(context_function_decl) = 1;
134020 + DECL_ARTIFICIAL(context_function_decl) = 1;
134021 + DECL_PRESERVE_P(context_function_decl) = 1;
134022 +// TREE_NOTHROW(context_function_decl) = 1;
134023 +// DECL_UNINLINABLE(context_function_decl) = 1;
134024 + DECL_ASSEMBLER_NAME(context_function_decl); // for LTO
134025 + lang_hooks.decls.pushdecl(context_function_decl);
134026 +
134027 + // void __context_error__(const void *, int) __attribute__((error("context error")));
134028 + fntype = build_function_type_list(void_type_node, const_ptr_type_node, integer_type_node, NULL_TREE);
134029 + context_error_decl = build_fn_decl(context_error, fntype);
134030 +
134031 + TREE_PUBLIC(context_error_decl) = 1;
134032 + TREE_USED(context_error_decl) = 1;
134033 + DECL_EXTERNAL(context_error_decl) = 1;
134034 + DECL_ARTIFICIAL(context_error_decl) = 1;
134035 + DECL_PRESERVE_P(context_error_decl) = 1;
134036 +// TREE_NOTHROW(context_error_decl) = 1;
134037 +// DECL_UNINLINABLE(context_error_decl) = 1;
134038 + TREE_THIS_VOLATILE(context_error_decl) = 1;
134039 + DECL_ASSEMBLER_NAME(context_error_decl);
134040 +
134041 + attr = tree_cons(NULL, build_string(14, "context error"), NULL);
134042 + attr = tree_cons(get_identifier("error"), attr, NULL);
134043 + decl_attributes(&context_error_decl, attr, 0);
134044 +}
134045 +
134046 +static bool context_gate(void)
134047 +{
134048 + tree context_attr;
134049 +
134050 +return true;
134051 +
134052 + context_attr = lookup_attribute("context", DECL_ATTRIBUTES(current_function_decl));
134053 + return context_attr != NULL_TREE;
134054 +}
134055 +
134056 +static basic_block verify_context_before(gimple_stmt_iterator *gsi, tree context, tree inout, tree error)
134057 +{
134058 + gimple stmt;
134059 + basic_block cond_bb, join_bb, true_bb;
134060 + edge e;
134061 + location_t loc;
134062 + const char *file;
134063 + int line;
134064 + size_t len;
134065 + tree filename;
134066 +
134067 + stmt = gsi_stmt(*gsi);
134068 + if (gimple_has_location(stmt)) {
134069 + loc = gimple_location(stmt);
134070 + file = gimple_filename(stmt);
134071 + line = gimple_lineno(stmt);
134072 + } else {
134073 + loc = DECL_SOURCE_LOCATION(current_function_decl);
134074 + file = DECL_SOURCE_FILE(current_function_decl);
134075 + line = DECL_SOURCE_LINE(current_function_decl);
134076 + }
134077 + gcc_assert(file);
134078 +
134079 + // if (context != count) __context_error__(__FILE__, __LINE__);
134080 + stmt = gimple_build_cond(NE_EXPR, context, inout, NULL_TREE, NULL_TREE);
134081 + gimple_set_location(stmt, loc);
134082 + gsi_insert_before(gsi, stmt, GSI_NEW_STMT);
134083 +
134084 + cond_bb = gsi_bb(*gsi);
134085 + gcc_assert(!gsi_end_p(*gsi));
134086 + gcc_assert(stmt == gsi_stmt(*gsi));
134087 +
134088 + e = split_block(cond_bb, gsi_stmt(*gsi));
134089 + cond_bb = e->src;
134090 + join_bb = e->dest;
134091 + e->flags = EDGE_FALSE_VALUE;
134092 + e->probability = REG_BR_PROB_BASE;
134093 +
134094 + true_bb = create_empty_bb(EXIT_BLOCK_PTR_FOR_FN(cfun)->prev_bb);
134095 + make_edge(cond_bb, true_bb, EDGE_TRUE_VALUE);
134096 + make_edge(true_bb, join_bb, EDGE_FALLTHRU);
134097 +
134098 + set_immediate_dominator(CDI_DOMINATORS, true_bb, cond_bb);
134099 + set_immediate_dominator(CDI_DOMINATORS, join_bb, cond_bb);
134100 +
134101 + gcc_assert(cond_bb->loop_father == join_bb->loop_father);
134102 + add_bb_to_loop(true_bb, cond_bb->loop_father);
134103 +
134104 + // insert call to builtin_trap or __context_error__
134105 + *gsi = gsi_start_bb(true_bb);
134106 +
134107 +// stmt = gimple_build_call(builtin_decl_implicit(BUILT_IN_TRAP), 0);
134108 + len = strlen(file) + 1;
134109 + filename = build_string(len, file);
134110 + TREE_TYPE(filename) = build_array_type(unsigned_char_type_node, build_index_type(size_int(len)));
134111 + filename = build1(ADDR_EXPR, const_ptr_type_node, filename);
134112 + stmt = gimple_build_call(error, 2, filename, build_int_cst(NULL_TREE, line));
134113 + gimple_set_location(stmt, loc);
134114 + gsi_insert_after(gsi, stmt, GSI_CONTINUE_LINKING);
134115 +
134116 + *gsi = gsi_start_nondebug_bb(join_bb);
134117 + return join_bb;
134118 +}
134119 +
134120 +static void update_context(gimple_stmt_iterator *gsi, tree context, int diff)
134121 +{
134122 + gimple assign;
134123 + tree op;
134124 +
134125 + op = fold_build2_loc(UNKNOWN_LOCATION, PLUS_EXPR, integer_type_node, context, build_int_cst(integer_type_node, diff));
134126 + assign = gimple_build_assign(context, op);
134127 + gsi_insert_after(gsi, assign, GSI_NEW_STMT);
134128 + update_stmt(assign);
134129 +}
134130 +
134131 +static basic_block track_context(basic_block bb, tree context)
134132 +{
134133 + gimple_stmt_iterator gsi;
134134 + gimple assign;
134135 +
134136 + // adjust context according to the context information on any call stmt
134137 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
134138 + gimple stmt = gsi_stmt(gsi);
134139 + tree fndecl, context_attr;
134140 + tree lock, in, out;
134141 + int incount, outcount;
134142 +
134143 + if (!is_gimple_call(stmt))
134144 + continue;
134145 +
134146 + fndecl = gimple_call_fndecl(stmt);
134147 + if (!fndecl)
134148 + continue;
134149 +
134150 + if (fndecl == context_function_decl) {
134151 + unsigned int num_ops = gimple_num_ops(stmt);
134152 + int diff = tree_to_shwi(gimple_op(stmt, num_ops - 1));
134153 +
134154 + gcc_assert(diff);
134155 + update_context(&gsi, context, diff);
134156 + continue;
134157 + }
134158 +
134159 + context_attr = lookup_attribute("context", DECL_ATTRIBUTES(fndecl));
134160 + if (!context_attr)
134161 + continue;
134162 +
134163 + gcc_assert(split_context_attribute(TREE_VALUE(context_attr), &lock, &in, &out));
134164 + incount = tree_to_shwi(in);
134165 + outcount = tree_to_shwi(out);
134166 + bb = verify_context_before(&gsi, context, in, context_error_decl);
134167 + update_context(&gsi, context, outcount - incount);
134168 + }
134169 +
134170 + return bb;
134171 +}
134172 +
134173 +static bool bb_any_loop(basic_block bb)
134174 +{
134175 + return bb_loop_depth(bb) || (bb->flags & BB_IRREDUCIBLE_LOOP);
134176 +}
134177 +
134178 +static unsigned int context_execute(void)
134179 +{
134180 + basic_block bb;
134181 + gimple assign;
134182 + gimple_stmt_iterator gsi;
134183 + tree context_attr, context;
134184 + tree lock, in, out;
134185 +
134186 + loop_optimizer_init(LOOPS_NORMAL | LOOPS_HAVE_RECORDED_EXITS);
134187 + gcc_assert(current_loops);
134188 +
134189 + calculate_dominance_info(CDI_DOMINATORS);
134190 + calculate_dominance_info(CDI_POST_DOMINATORS);
134191 +
134192 + context_attr = lookup_attribute("context", DECL_ATTRIBUTES(current_function_decl));
134193 + if (context_attr) {
134194 + gcc_assert(split_context_attribute(TREE_VALUE(context_attr), &lock, &in, &out));
134195 + } else {
134196 + in = out = integer_zero_node;
134197 + }
134198 +
134199 + // 1. create local context variable
134200 + context = create_tmp_var(integer_type_node, "context");
134201 + add_referenced_var(context);
134202 + mark_sym_for_renaming(context);
134203 +
134204 + // 2. initialize local context variable
134205 + gcc_assert(single_succ_p(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
134206 + bb = single_succ(ENTRY_BLOCK_PTR_FOR_FN(cfun));
134207 + if (!single_pred_p(bb)) {
134208 + gcc_assert(bb_any_loop(bb));
134209 + split_edge(single_succ_edge(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
134210 + bb = single_succ(ENTRY_BLOCK_PTR_FOR_FN(cfun));
134211 + }
134212 + gsi = gsi_start_bb(bb);
134213 + assign = gimple_build_assign(context, in);
134214 + gsi_insert_before(&gsi, assign, GSI_NEW_STMT);
134215 + update_stmt(assign);
134216 +
134217 + // 3. instrument each BB to track the local context variable
134218 + FOR_EACH_BB_FN(bb, cfun) {
134219 + bb = track_context(bb, context);
134220 + }
134221 +
134222 + // 4. verify the local context variable against the expected state
134223 + if (EDGE_COUNT(EXIT_BLOCK_PTR_FOR_FN(cfun)->preds)) {
134224 + gcc_assert(single_pred_p(EXIT_BLOCK_PTR_FOR_FN(cfun)));
134225 + gsi = gsi_last_nondebug_bb(single_pred(EXIT_BLOCK_PTR_FOR_FN(cfun)));
134226 + verify_context_before(&gsi, context, out, context_error_decl);
134227 + }
134228 +
134229 + free_dominance_info(CDI_DOMINATORS);
134230 + free_dominance_info(CDI_POST_DOMINATORS);
134231 + loop_optimizer_finalize();
134232 + return 0;
134233 +}
134234 +
134235 +#define PASS_NAME context
134236 +#define PROPERTIES_REQUIRED PROP_gimple_leh | PROP_cfg
134237 +//#define TODO_FLAGS_START TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts
134238 +#define TODO_FLAGS_FINISH TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_verify_flow | TODO_update_ssa
134239 +#include "gcc-generate-gimple-pass.h"
134240 +
134241 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
134242 +{
134243 + const char * const plugin_name = plugin_info->base_name;
134244 + const int argc = plugin_info->argc;
134245 + const struct plugin_argument * const argv = plugin_info->argv;
134246 + int i;
134247 + bool enable_user, enable_context;
134248 + struct register_pass_info context_pass_info;
134249 +
134250 + static const struct ggc_root_tab gt_ggc_r_gt_checker[] = {
134251 + {
134252 + .base = &context_function_decl,
134253 + .nelt = 1,
134254 + .stride = sizeof(context_function_decl),
134255 + .cb = &gt_ggc_mx_tree_node,
134256 + .pchw = &gt_pch_nx_tree_node
134257 + },
134258 + {
134259 + .base = &context_error_decl,
134260 + .nelt = 1,
134261 + .stride = sizeof(context_error_decl),
134262 + .cb = &gt_ggc_mx_tree_node,
134263 + .pchw = &gt_pch_nx_tree_node
134264 + },
134265 + LAST_GGC_ROOT_TAB
134266 + };
134267 +
134268 + context_pass_info.pass = make_context_pass();
134269 +// context_pass_info.reference_pass_name = "ssa";
134270 + context_pass_info.reference_pass_name = "phiprop";
134271 + context_pass_info.ref_pass_instance_number = 1;
134272 + context_pass_info.pos_op = PASS_POS_INSERT_AFTER;
134273 +
134274 + if (!plugin_default_version_check(version, &gcc_version)) {
134275 + error(G_("incompatible gcc/plugin versions"));
134276 + return 1;
134277 + }
134278 +
134279 + register_callback(plugin_name, PLUGIN_INFO, NULL, &checker_plugin_info);
134280 +
134281 + enable_user = false;
134282 + enable_context = false;
134283 + for (i = 0; i < argc; ++i) {
134284 + if (!strcmp(argv[i].key, "user")) {
134285 + enable_user = true;
134286 + continue;
134287 + }
134288 + if (!strcmp(argv[i].key, "context")) {
134289 + enable_context = true;
134290 + continue;
134291 + }
134292 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
134293 + }
134294 +
134295 + if (enable_user)
134296 + register_callback(plugin_name, PLUGIN_PRAGMAS, register_checker_address_spaces, NULL);
134297 + if (enable_context) {
134298 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
134299 + register_callback(plugin_name, PLUGIN_START_UNIT, context_start_unit, NULL);
134300 + register_callback(plugin_name, PLUGIN_REGISTER_GGC_ROOTS, NULL, (void *)&gt_ggc_r_gt_checker);
134301 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &context_pass_info);
134302 + }
134303 +
134304 + return 0;
134305 +}
134306 diff --git a/tools/gcc/colorize_plugin.c b/tools/gcc/colorize_plugin.c
134307 new file mode 100644
134308 index 0000000..eec3fd1
134309 --- /dev/null
134310 +++ b/tools/gcc/colorize_plugin.c
134311 @@ -0,0 +1,162 @@
134312 +/*
134313 + * Copyright 2012-2016 by PaX Team <pageexec@freemail.hu>
134314 + * Licensed under the GPL v2
134315 + *
134316 + * Note: the choice of the license means that the compilation process is
134317 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
134318 + * but for the kernel it doesn't matter since it doesn't link against
134319 + * any of the gcc libraries
134320 + *
134321 + * gcc plugin to colorize diagnostic output
134322 + *
134323 + */
134324 +
134325 +#include "gcc-common.h"
134326 +
134327 +int plugin_is_GPL_compatible;
134328 +
134329 +static struct plugin_info colorize_plugin_info = {
134330 + .version = "201602181345",
134331 + .help = "color=[never|always|auto]\tdetermine when to colorize\n",
134332 +};
134333 +
134334 +#define GREEN "\033[32m\033[K"
134335 +#define LIGHTGREEN "\033[1;32m\033[K"
134336 +#define YELLOW "\033[33m\033[K"
134337 +#define LIGHTYELLOW "\033[1;33m\033[K"
134338 +#define RED "\033[31m\033[K"
134339 +#define LIGHTRED "\033[1;31m\033[K"
134340 +#define BLUE "\033[34m\033[K"
134341 +#define LIGHTBLUE "\033[1;34m\033[K"
134342 +#define BRIGHT "\033[1;m\033[K"
134343 +#define NORMAL "\033[m\033[K"
134344 +
134345 +static diagnostic_starter_fn old_starter;
134346 +static diagnostic_finalizer_fn old_finalizer;
134347 +
134348 +static void start_colorize(diagnostic_context *context, diagnostic_info *diagnostic)
134349 +{
134350 + const char *color;
134351 + char *newprefix;
134352 +
134353 + switch (diagnostic->kind) {
134354 + case DK_NOTE:
134355 + color = LIGHTBLUE;
134356 + break;
134357 +
134358 + case DK_PEDWARN:
134359 + case DK_WARNING:
134360 + color = LIGHTYELLOW;
134361 + break;
134362 +
134363 + case DK_ERROR:
134364 + case DK_FATAL:
134365 + case DK_ICE:
134366 + case DK_PERMERROR:
134367 + case DK_SORRY:
134368 + color = LIGHTRED;
134369 + break;
134370 +
134371 + default:
134372 + color = NORMAL;
134373 + }
134374 +
134375 + old_starter(context, diagnostic);
134376 + if (-1 == asprintf(&newprefix, "%s%s" NORMAL, color, context->printer->prefix))
134377 + return;
134378 + pp_destroy_prefix(context->printer);
134379 + pp_set_prefix(context->printer, newprefix);
134380 +}
134381 +
134382 +static void finalize_colorize(diagnostic_context *context, diagnostic_info *diagnostic)
134383 +{
134384 + old_finalizer(context, diagnostic);
134385 +}
134386 +
134387 +static void colorize_arm(void)
134388 +{
134389 + old_starter = diagnostic_starter(global_dc);
134390 + old_finalizer = diagnostic_finalizer(global_dc);
134391 +
134392 + diagnostic_starter(global_dc) = start_colorize;
134393 + diagnostic_finalizer(global_dc) = finalize_colorize;
134394 +}
134395 +
134396 +static unsigned int colorize_rearm_execute(void)
134397 +{
134398 + if (diagnostic_starter(global_dc) == start_colorize)
134399 + return 0;
134400 +
134401 + colorize_arm();
134402 + return 0;
134403 +}
134404 +
134405 +#define PASS_NAME colorize_rearm
134406 +#define NO_GATE
134407 +#include "gcc-generate-gimple-pass.h"
134408 +
134409 +static void colorize_start_unit(void *gcc_data, void *user_data)
134410 +{
134411 + colorize_arm();
134412 +}
134413 +
134414 +static bool should_colorize(void)
134415 +{
134416 +#if BUILDING_GCC_VERSION >= 4009
134417 + return false;
134418 +#else
134419 + char const *t = getenv("TERM");
134420 +
134421 + return t && strcmp(t, "dumb") && isatty(STDERR_FILENO);
134422 +#endif
134423 +}
134424 +
134425 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
134426 +{
134427 + const char * const plugin_name = plugin_info->base_name;
134428 + const int argc = plugin_info->argc;
134429 + const struct plugin_argument * const argv = plugin_info->argv;
134430 + int i;
134431 + struct register_pass_info colorize_rearm_pass_info;
134432 + bool colorize;
134433 +
134434 + colorize_rearm_pass_info.pass = make_colorize_rearm_pass();
134435 + colorize_rearm_pass_info.reference_pass_name = "*free_lang_data";
134436 + colorize_rearm_pass_info.ref_pass_instance_number = 1;
134437 + colorize_rearm_pass_info.pos_op = PASS_POS_INSERT_AFTER;
134438 +
134439 + if (!plugin_default_version_check(version, &gcc_version)) {
134440 + error(G_("incompatible gcc/plugin versions"));
134441 + return 1;
134442 + }
134443 +
134444 + register_callback(plugin_name, PLUGIN_INFO, NULL, &colorize_plugin_info);
134445 +
134446 + colorize = getenv("GCC_COLORS") ? should_colorize() : false;
134447 +
134448 + for (i = 0; i < argc; ++i) {
134449 + if (!strcmp(argv[i].key, "color")) {
134450 + if (!argv[i].value) {
134451 + error(G_("no value supplied for option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
134452 + continue;
134453 + }
134454 + if (!strcmp(argv[i].value, "always"))
134455 + colorize = true;
134456 + else if (!strcmp(argv[i].value, "never"))
134457 + colorize = false;
134458 + else if (!strcmp(argv[i].value, "auto"))
134459 + colorize = should_colorize();
134460 + else
134461 + error(G_("invalid option argument '-fplugin-arg-%s-%s=%s'"), plugin_name, argv[i].key, argv[i].value);
134462 + continue;
134463 + }
134464 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
134465 + }
134466 +
134467 + if (colorize) {
134468 + // TODO: parse GCC_COLORS as used by gcc 4.9+
134469 + register_callback(plugin_name, PLUGIN_START_UNIT, &colorize_start_unit, NULL);
134470 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &colorize_rearm_pass_info);
134471 + }
134472 + return 0;
134473 +}
134474 diff --git a/tools/gcc/constify_plugin.c b/tools/gcc/constify_plugin.c
134475 new file mode 100644
134476 index 0000000..b52a700
134477 --- /dev/null
134478 +++ b/tools/gcc/constify_plugin.c
134479 @@ -0,0 +1,521 @@
134480 +/*
134481 + * Copyright 2011 by Emese Revfy <re.emese@gmail.com>
134482 + * Copyright 2011-2016 by PaX Team <pageexec@freemail.hu>
134483 + * Licensed under the GPL v2, or (at your option) v3
134484 + *
134485 + * This gcc plugin constifies all structures which contain only function pointers or are explicitly marked for constification.
134486 + *
134487 + * Homepage:
134488 + * http://www.grsecurity.net/~ephox/const_plugin/
134489 + *
134490 + * Usage:
134491 + * $ gcc -I`gcc -print-file-name=plugin`/include -fPIC -shared -O2 -o constify_plugin.so constify_plugin.c
134492 + * $ gcc -fplugin=constify_plugin.so test.c -O2
134493 + */
134494 +
134495 +#include "gcc-common.h"
134496 +
134497 +// unused C type flag in all versions 4.5-6
134498 +#define TYPE_CONSTIFY_VISITED(TYPE) TYPE_LANG_FLAG_4(TYPE)
134499 +
134500 +int plugin_is_GPL_compatible;
134501 +
134502 +static bool constify = true;
134503 +
134504 +static struct plugin_info const_plugin_info = {
134505 + .version = "201602181345",
134506 + .help = "no-constify\tturn off constification\n",
134507 +};
134508 +
134509 +typedef struct {
134510 + bool has_fptr_field;
134511 + bool has_writable_field;
134512 + bool has_do_const_field;
134513 + bool has_no_const_field;
134514 +} constify_info;
134515 +
134516 +static const_tree get_field_type(const_tree field)
134517 +{
134518 + return strip_array_types(TREE_TYPE(field));
134519 +}
134520 +
134521 +static bool is_fptr(const_tree field)
134522 +{
134523 + const_tree ptr = get_field_type(field);
134524 +
134525 + if (TREE_CODE(ptr) != POINTER_TYPE)
134526 + return false;
134527 +
134528 + return TREE_CODE(TREE_TYPE(ptr)) == FUNCTION_TYPE;
134529 +}
134530 +
134531 +/*
134532 + * determine whether the given structure type meets the requirements for automatic constification,
134533 + * including the constification attributes on nested structure types
134534 + */
134535 +static void constifiable(const_tree node, constify_info *cinfo)
134536 +{
134537 + const_tree field;
134538 +
134539 + gcc_assert(TREE_CODE(node) == RECORD_TYPE || TREE_CODE(node) == UNION_TYPE);
134540 +
134541 + // e.g., pointer to structure fields while still constructing the structure type
134542 + if (TYPE_FIELDS(node) == NULL_TREE)
134543 + return;
134544 +
134545 + for (field = TYPE_FIELDS(node); field; field = TREE_CHAIN(field)) {
134546 + const_tree type = get_field_type(field);
134547 + enum tree_code code = TREE_CODE(type);
134548 +
134549 + if (node == type)
134550 + continue;
134551 +
134552 + if (is_fptr(field))
134553 + cinfo->has_fptr_field = true;
134554 + else if (code == RECORD_TYPE || code == UNION_TYPE) {
134555 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type)))
134556 + cinfo->has_do_const_field = true;
134557 + else if (lookup_attribute("no_const", TYPE_ATTRIBUTES(type)))
134558 + cinfo->has_no_const_field = true;
134559 + else
134560 + constifiable(type, cinfo);
134561 + } else if (!TREE_READONLY(field))
134562 + cinfo->has_writable_field = true;
134563 + }
134564 +}
134565 +
134566 +static bool constified(const_tree node)
134567 +{
134568 + constify_info cinfo = {
134569 + .has_fptr_field = false,
134570 + .has_writable_field = false,
134571 + .has_do_const_field = false,
134572 + .has_no_const_field = false
134573 + };
134574 +
134575 + gcc_assert(TREE_CODE(node) == RECORD_TYPE || TREE_CODE(node) == UNION_TYPE);
134576 +
134577 + if (lookup_attribute("no_const", TYPE_ATTRIBUTES(node))) {
134578 +// gcc_assert(!TYPE_READONLY(node));
134579 + return false;
134580 + }
134581 +
134582 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(node))) {
134583 + gcc_assert(TYPE_READONLY(node));
134584 + return true;
134585 + }
134586 +
134587 + constifiable(node, &cinfo);
134588 + if ((!cinfo.has_fptr_field || cinfo.has_writable_field || cinfo.has_no_const_field) && !cinfo.has_do_const_field)
134589 + return false;
134590 +
134591 + return TYPE_READONLY(node);
134592 +}
134593 +
134594 +static void deconstify_tree(tree node);
134595 +
134596 +static void deconstify_type(tree type)
134597 +{
134598 + tree field;
134599 +
134600 + gcc_assert(TREE_CODE(type) == RECORD_TYPE || TREE_CODE(type) == UNION_TYPE);
134601 +
134602 + for (field = TYPE_FIELDS(type); field; field = TREE_CHAIN(field)) {
134603 + const_tree fieldtype = get_field_type(field);
134604 +
134605 + // special case handling of simple ptr-to-same-array-type members
134606 + if (TREE_CODE(TREE_TYPE(field)) == POINTER_TYPE) {
134607 + tree ptrtype = TREE_TYPE(TREE_TYPE(field));
134608 +
134609 + if (TREE_TYPE(TREE_TYPE(field)) == type)
134610 + continue;
134611 + if (TREE_CODE(ptrtype) != RECORD_TYPE && TREE_CODE(ptrtype) != UNION_TYPE)
134612 + continue;
134613 + if (!constified(ptrtype))
134614 + continue;
134615 + if (TYPE_MAIN_VARIANT(ptrtype) == TYPE_MAIN_VARIANT(type)) {
134616 + TREE_TYPE(field) = copy_node(TREE_TYPE(field));
134617 + TREE_TYPE(TREE_TYPE(field)) = build_qualified_type(type, TYPE_QUALS(ptrtype) & ~TYPE_QUAL_CONST);
134618 + }
134619 + continue;
134620 + }
134621 + if (TREE_CODE(fieldtype) != RECORD_TYPE && TREE_CODE(fieldtype) != UNION_TYPE)
134622 + continue;
134623 + if (!constified(fieldtype))
134624 + continue;
134625 +
134626 + deconstify_tree(field);
134627 + TREE_READONLY(field) = 0;
134628 + }
134629 + TYPE_READONLY(type) = 0;
134630 + C_TYPE_FIELDS_READONLY(type) = 0;
134631 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type))) {
134632 + TYPE_ATTRIBUTES(type) = copy_list(TYPE_ATTRIBUTES(type));
134633 + TYPE_ATTRIBUTES(type) = remove_attribute("do_const", TYPE_ATTRIBUTES(type));
134634 + }
134635 +}
134636 +
134637 +static void deconstify_tree(tree node)
134638 +{
134639 + tree old_type, new_type, field;
134640 +
134641 + old_type = TREE_TYPE(node);
134642 + while (TREE_CODE(old_type) == ARRAY_TYPE && TREE_CODE(TREE_TYPE(old_type)) != ARRAY_TYPE) {
134643 + node = TREE_TYPE(node) = copy_node(old_type);
134644 + old_type = TREE_TYPE(old_type);
134645 + }
134646 +
134647 + gcc_assert(TREE_CODE(old_type) == RECORD_TYPE || TREE_CODE(old_type) == UNION_TYPE);
134648 + gcc_assert(TYPE_READONLY(old_type) && (TYPE_QUALS(old_type) & TYPE_QUAL_CONST));
134649 +
134650 + new_type = build_qualified_type(old_type, TYPE_QUALS(old_type) & ~TYPE_QUAL_CONST);
134651 + TYPE_FIELDS(new_type) = copy_list(TYPE_FIELDS(new_type));
134652 + for (field = TYPE_FIELDS(new_type); field; field = TREE_CHAIN(field))
134653 + DECL_FIELD_CONTEXT(field) = new_type;
134654 +
134655 + deconstify_type(new_type);
134656 +
134657 + TREE_TYPE(node) = new_type;
134658 +}
134659 +
134660 +static tree handle_no_const_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
134661 +{
134662 + tree type;
134663 + constify_info cinfo = {
134664 + .has_fptr_field = false,
134665 + .has_writable_field = false,
134666 + .has_do_const_field = false,
134667 + .has_no_const_field = false
134668 + };
134669 +
134670 + *no_add_attrs = true;
134671 + if (TREE_CODE(*node) == FUNCTION_DECL) {
134672 + error("%qE attribute does not apply to functions (%qF)", name, *node);
134673 + return NULL_TREE;
134674 + }
134675 +
134676 + if (TREE_CODE(*node) == PARM_DECL) {
134677 + error("%qE attribute does not apply to function parameters (%qD)", name, *node);
134678 + return NULL_TREE;
134679 + }
134680 +
134681 + if (TREE_CODE(*node) == VAR_DECL) {
134682 + error("%qE attribute does not apply to variables (%qD)", name, *node);
134683 + return NULL_TREE;
134684 + }
134685 +
134686 + if (TYPE_P(*node)) {
134687 + type = *node;
134688 + } else {
134689 + if (TREE_CODE(*node) != TYPE_DECL) {
134690 + error("%qE attribute does not apply to %qD (%qT)", name, *node, TREE_TYPE(*node));
134691 + return NULL_TREE;
134692 + }
134693 + type = TREE_TYPE(*node);
134694 + }
134695 +
134696 + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE) {
134697 + error("%qE attribute used on %qT applies to struct and union types only", name, type);
134698 + return NULL_TREE;
134699 + }
134700 +
134701 + if (lookup_attribute(IDENTIFIER_POINTER(name), TYPE_ATTRIBUTES(type))) {
134702 + error("%qE attribute is already applied to the type %qT", name, type);
134703 + return NULL_TREE;
134704 + }
134705 +
134706 + if (TYPE_P(*node)) {
134707 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type)))
134708 + error("%qE attribute used on type %qT is incompatible with 'do_const'", name, type);
134709 + else
134710 + *no_add_attrs = false;
134711 + return NULL_TREE;
134712 + }
134713 +
134714 + constifiable(type, &cinfo);
134715 + if ((cinfo.has_fptr_field && !cinfo.has_writable_field && !cinfo.has_no_const_field) || lookup_attribute("do_const", TYPE_ATTRIBUTES(type))) {
134716 + if (constify) {
134717 + if TYPE_P(*node)
134718 + deconstify_type(*node);
134719 + else
134720 + deconstify_tree(*node);
134721 + }
134722 + if (TYPE_P(*node))
134723 + TYPE_CONSTIFY_VISITED(*node) = 1;
134724 + else
134725 + TYPE_CONSTIFY_VISITED(TREE_TYPE(*node)) = 1;
134726 + return NULL_TREE;
134727 + }
134728 +
134729 + if (constify && TYPE_FIELDS(type))
134730 + error("%qE attribute used on type %qT that is not constified", name, type);
134731 + return NULL_TREE;
134732 +}
134733 +
134734 +static void constify_type(tree type)
134735 +{
134736 + TYPE_READONLY(type) = 1;
134737 + C_TYPE_FIELDS_READONLY(type) = 1;
134738 + TYPE_CONSTIFY_VISITED(type) = 1;
134739 +// TYPE_ATTRIBUTES(type) = copy_list(TYPE_ATTRIBUTES(type));
134740 +// TYPE_ATTRIBUTES(type) = tree_cons(get_identifier("do_const"), NULL_TREE, TYPE_ATTRIBUTES(type));
134741 +}
134742 +
134743 +static tree handle_do_const_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
134744 +{
134745 + *no_add_attrs = true;
134746 + if (!TYPE_P(*node)) {
134747 + error("%qE attribute applies to types only (%qD)", name, *node);
134748 + return NULL_TREE;
134749 + }
134750 +
134751 + if (TREE_CODE(*node) != RECORD_TYPE && TREE_CODE(*node) != UNION_TYPE) {
134752 + error("%qE attribute used on %qT applies to struct and union types only", name, *node);
134753 + return NULL_TREE;
134754 + }
134755 +
134756 + if (lookup_attribute(IDENTIFIER_POINTER(name), TYPE_ATTRIBUTES(*node))) {
134757 + error("%qE attribute used on %qT is already applied to the type", name, *node);
134758 + return NULL_TREE;
134759 + }
134760 +
134761 + if (lookup_attribute("no_const", TYPE_ATTRIBUTES(*node))) {
134762 + error("%qE attribute used on %qT is incompatible with 'no_const'", name, *node);
134763 + return NULL_TREE;
134764 + }
134765 +
134766 + *no_add_attrs = false;
134767 + return NULL_TREE;
134768 +}
134769 +
134770 +static struct attribute_spec no_const_attr = {
134771 + .name = "no_const",
134772 + .min_length = 0,
134773 + .max_length = 0,
134774 + .decl_required = false,
134775 + .type_required = false,
134776 + .function_type_required = false,
134777 + .handler = handle_no_const_attribute,
134778 +#if BUILDING_GCC_VERSION >= 4007
134779 + .affects_type_identity = true
134780 +#endif
134781 +};
134782 +
134783 +static struct attribute_spec do_const_attr = {
134784 + .name = "do_const",
134785 + .min_length = 0,
134786 + .max_length = 0,
134787 + .decl_required = false,
134788 + .type_required = false,
134789 + .function_type_required = false,
134790 + .handler = handle_do_const_attribute,
134791 +#if BUILDING_GCC_VERSION >= 4007
134792 + .affects_type_identity = true
134793 +#endif
134794 +};
134795 +
134796 +static void register_attributes(void *event_data, void *data)
134797 +{
134798 + register_attribute(&no_const_attr);
134799 + register_attribute(&do_const_attr);
134800 +}
134801 +
134802 +static void finish_type(void *event_data, void *data)
134803 +{
134804 + tree type = (tree)event_data;
134805 + constify_info cinfo = {
134806 + .has_fptr_field = false,
134807 + .has_writable_field = false,
134808 + .has_do_const_field = false,
134809 + .has_no_const_field = false
134810 + };
134811 +
134812 + if (type == NULL_TREE || type == error_mark_node)
134813 + return;
134814 +
134815 +#if BUILDING_GCC_VERSION >= 5000
134816 + if (TREE_CODE(type) == ENUMERAL_TYPE)
134817 + return;
134818 +#endif
134819 +
134820 + if (TYPE_FIELDS(type) == NULL_TREE || TYPE_CONSTIFY_VISITED(type))
134821 + return;
134822 +
134823 + constifiable(type, &cinfo);
134824 +
134825 + if (lookup_attribute("no_const", TYPE_ATTRIBUTES(type))) {
134826 + if ((cinfo.has_fptr_field && !cinfo.has_writable_field && !cinfo.has_no_const_field) || cinfo.has_do_const_field) {
134827 + deconstify_type(type);
134828 + TYPE_CONSTIFY_VISITED(type) = 1;
134829 + } else
134830 + error("'no_const' attribute used on type %qT that is not constified", type);
134831 + return;
134832 + }
134833 +
134834 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type))) {
134835 + if (!cinfo.has_writable_field && !cinfo.has_no_const_field) {
134836 + error("'do_const' attribute used on type %qT that is%sconstified", type, cinfo.has_fptr_field ? " " : " not ");
134837 + return;
134838 + }
134839 + constify_type(type);
134840 + return;
134841 + }
134842 +
134843 + if (cinfo.has_fptr_field && !cinfo.has_writable_field && !cinfo.has_no_const_field) {
134844 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type))) {
134845 + error("'do_const' attribute used on type %qT that is constified", type);
134846 + return;
134847 + }
134848 + constify_type(type);
134849 + return;
134850 + }
134851 +
134852 + deconstify_type(type);
134853 + TYPE_CONSTIFY_VISITED(type) = 1;
134854 +}
134855 +
134856 +static void check_global_variables(void *event_data, void *data)
134857 +{
134858 + varpool_node_ptr node;
134859 +
134860 + FOR_EACH_VARIABLE(node) {
134861 + tree var = NODE_DECL(node);
134862 + tree type = TREE_TYPE(var);
134863 +
134864 + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE)
134865 + continue;
134866 +
134867 + if (!TYPE_READONLY(type) || !C_TYPE_FIELDS_READONLY(type))
134868 + continue;
134869 +
134870 + if (!TYPE_CONSTIFY_VISITED(type))
134871 + continue;
134872 +
134873 + if (DECL_EXTERNAL(var))
134874 + continue;
134875 +
134876 + if (DECL_INITIAL(var))
134877 + continue;
134878 +
134879 + // this works around a gcc bug/feature where uninitialized globals
134880 + // are moved into the .bss section regardless of any constification
134881 + DECL_INITIAL(var) = build_constructor(type, NULL);
134882 +// inform(DECL_SOURCE_LOCATION(var), "constified variable %qE moved into .rodata", var);
134883 + }
134884 +}
134885 +
134886 +static unsigned int check_local_variables_execute(void)
134887 +{
134888 + unsigned int ret = 0;
134889 + tree var;
134890 +
134891 + unsigned int i;
134892 +
134893 + FOR_EACH_LOCAL_DECL(cfun, i, var) {
134894 + tree type = TREE_TYPE(var);
134895 +
134896 + gcc_assert(DECL_P(var));
134897 + if (is_global_var(var))
134898 + continue;
134899 +
134900 + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE)
134901 + continue;
134902 +
134903 + if (!TYPE_READONLY(type) || !C_TYPE_FIELDS_READONLY(type))
134904 + continue;
134905 +
134906 + if (!TYPE_CONSTIFY_VISITED(type))
134907 + continue;
134908 +
134909 + error_at(DECL_SOURCE_LOCATION(var), "constified variable %qE cannot be local", var);
134910 + ret = 1;
134911 + }
134912 + return ret;
134913 +}
134914 +
134915 +#define PASS_NAME check_local_variables
134916 +#define NO_GATE
134917 +#include "gcc-generate-gimple-pass.h"
134918 +
134919 +static struct {
134920 + const char *name;
134921 + const char *asm_op;
134922 +} sections[] = {
134923 + {".init.rodata", "\t.section\t.init.rodata,\"a\""},
134924 + {".ref.rodata", "\t.section\t.ref.rodata,\"a\""},
134925 + {".devinit.rodata", "\t.section\t.devinit.rodata,\"a\""},
134926 + {".devexit.rodata", "\t.section\t.devexit.rodata,\"a\""},
134927 + {".cpuinit.rodata", "\t.section\t.cpuinit.rodata,\"a\""},
134928 + {".cpuexit.rodata", "\t.section\t.cpuexit.rodata,\"a\""},
134929 + {".meminit.rodata", "\t.section\t.meminit.rodata,\"a\""},
134930 + {".memexit.rodata", "\t.section\t.memexit.rodata,\"a\""},
134931 + {".data..read_only", "\t.section\t.data..read_only,\"a\""},
134932 +};
134933 +
134934 +static unsigned int (*old_section_type_flags)(tree decl, const char *name, int reloc);
134935 +
134936 +static unsigned int constify_section_type_flags(tree decl, const char *name, int reloc)
134937 +{
134938 + size_t i;
134939 +
134940 + for (i = 0; i < ARRAY_SIZE(sections); i++)
134941 + if (!strcmp(sections[i].name, name))
134942 + return 0;
134943 + return old_section_type_flags(decl, name, reloc);
134944 +}
134945 +
134946 +static void constify_start_unit(void *gcc_data, void *user_data)
134947 +{
134948 +// size_t i;
134949 +
134950 +// for (i = 0; i < ARRAY_SIZE(sections); i++)
134951 +// sections[i].section = get_unnamed_section(0, output_section_asm_op, sections[i].asm_op);
134952 +// sections[i].section = get_section(sections[i].name, 0, NULL);
134953 +
134954 + old_section_type_flags = targetm.section_type_flags;
134955 + targetm.section_type_flags = constify_section_type_flags;
134956 +}
134957 +
134958 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
134959 +{
134960 + const char * const plugin_name = plugin_info->base_name;
134961 + const int argc = plugin_info->argc;
134962 + const struct plugin_argument * const argv = plugin_info->argv;
134963 + int i;
134964 +
134965 + struct register_pass_info check_local_variables_pass_info;
134966 +
134967 + check_local_variables_pass_info.pass = make_check_local_variables_pass();
134968 + check_local_variables_pass_info.reference_pass_name = "ssa";
134969 + check_local_variables_pass_info.ref_pass_instance_number = 1;
134970 + check_local_variables_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
134971 +
134972 + if (!plugin_default_version_check(version, &gcc_version)) {
134973 + error(G_("incompatible gcc/plugin versions"));
134974 + return 1;
134975 + }
134976 +
134977 + for (i = 0; i < argc; ++i) {
134978 + if (!(strcmp(argv[i].key, "no-constify"))) {
134979 + constify = false;
134980 + continue;
134981 + }
134982 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
134983 + }
134984 +
134985 + if (strncmp(lang_hooks.name, "GNU C", 5) && !strncmp(lang_hooks.name, "GNU C+", 6)) {
134986 + inform(UNKNOWN_LOCATION, G_("%s supports C only, not %s"), plugin_name, lang_hooks.name);
134987 + constify = false;
134988 + }
134989 +
134990 + register_callback(plugin_name, PLUGIN_INFO, NULL, &const_plugin_info);
134991 + if (constify) {
134992 + register_callback(plugin_name, PLUGIN_ALL_IPA_PASSES_START, check_global_variables, NULL);
134993 + register_callback(plugin_name, PLUGIN_FINISH_TYPE, finish_type, NULL);
134994 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &check_local_variables_pass_info);
134995 + register_callback(plugin_name, PLUGIN_START_UNIT, constify_start_unit, NULL);
134996 + }
134997 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
134998 +
134999 + return 0;
135000 +}
135001 diff --git a/tools/gcc/gcc-common.h b/tools/gcc/gcc-common.h
135002 new file mode 100644
135003 index 0000000..fbed673
135004 --- /dev/null
135005 +++ b/tools/gcc/gcc-common.h
135006 @@ -0,0 +1,858 @@
135007 +#ifndef GCC_COMMON_H_INCLUDED
135008 +#define GCC_COMMON_H_INCLUDED
135009 +
135010 +#include "bversion.h"
135011 +#if BUILDING_GCC_VERSION >= 6000
135012 +#include "gcc-plugin.h"
135013 +#else
135014 +#include "plugin.h"
135015 +#endif
135016 +#include "plugin-version.h"
135017 +#include "config.h"
135018 +#include "system.h"
135019 +#include "coretypes.h"
135020 +#include "tm.h"
135021 +#include "line-map.h"
135022 +#include "input.h"
135023 +#include "tree.h"
135024 +
135025 +#include "tree-inline.h"
135026 +#include "version.h"
135027 +#include "rtl.h"
135028 +#include "tm_p.h"
135029 +#include "flags.h"
135030 +//#include "insn-attr.h"
135031 +//#include "insn-config.h"
135032 +//#include "insn-flags.h"
135033 +#include "hard-reg-set.h"
135034 +//#include "recog.h"
135035 +#include "output.h"
135036 +#include "except.h"
135037 +#include "function.h"
135038 +#include "toplev.h"
135039 +//#include "expr.h"
135040 +#include "basic-block.h"
135041 +#include "intl.h"
135042 +#include "ggc.h"
135043 +//#include "regs.h"
135044 +#include "timevar.h"
135045 +
135046 +#include "params.h"
135047 +
135048 +#if BUILDING_GCC_VERSION <= 4009
135049 +#include "pointer-set.h"
135050 +#else
135051 +#include "hash-map.h"
135052 +#endif
135053 +
135054 +#include "emit-rtl.h"
135055 +//#include "reload.h"
135056 +//#include "ira.h"
135057 +//#include "dwarf2asm.h"
135058 +#include "debug.h"
135059 +#include "target.h"
135060 +#include "langhooks.h"
135061 +#include "cfgloop.h"
135062 +//#include "hosthooks.h"
135063 +#include "cgraph.h"
135064 +#include "opts.h"
135065 +//#include "coverage.h"
135066 +//#include "value-prof.h"
135067 +
135068 +#if BUILDING_GCC_VERSION == 4005
135069 +#include <sys/mman.h>
135070 +#endif
135071 +
135072 +#if BUILDING_GCC_VERSION >= 4007
135073 +#include "tree-pretty-print.h"
135074 +#include "gimple-pretty-print.h"
135075 +#endif
135076 +
135077 +#if BUILDING_GCC_VERSION >= 4006
135078 +//#include "c-tree.h"
135079 +//#include "cp/cp-tree.h"
135080 +#include "c-family/c-common.h"
135081 +#else
135082 +#include "c-common.h"
135083 +#endif
135084 +
135085 +#if BUILDING_GCC_VERSION <= 4008
135086 +#include "tree-flow.h"
135087 +#else
135088 +#include "tree-cfgcleanup.h"
135089 +#include "tree-ssa-operands.h"
135090 +#include "tree-into-ssa.h"
135091 +#endif
135092 +
135093 +#if BUILDING_GCC_VERSION >= 4008
135094 +#include "is-a.h"
135095 +#endif
135096 +
135097 +#include "diagnostic.h"
135098 +//#include "tree-diagnostic.h"
135099 +#include "tree-dump.h"
135100 +#include "tree-pass.h"
135101 +//#include "df.h"
135102 +#include "predict.h"
135103 +#include "ipa-utils.h"
135104 +
135105 +#if BUILDING_GCC_VERSION >= 4009
135106 +#include "attribs.h"
135107 +#include "varasm.h"
135108 +#include "stor-layout.h"
135109 +#include "internal-fn.h"
135110 +#include "gimple-expr.h"
135111 +#include "gimple-fold.h"
135112 +//#include "diagnostic-color.h"
135113 +#include "context.h"
135114 +#include "tree-ssa-alias.h"
135115 +#include "tree-ssa.h"
135116 +#include "stringpool.h"
135117 +#include "tree-ssanames.h"
135118 +#include "print-tree.h"
135119 +#include "tree-eh.h"
135120 +#include "stmt.h"
135121 +#include "gimplify.h"
135122 +#endif
135123 +
135124 +#include "gimple.h"
135125 +
135126 +#if BUILDING_GCC_VERSION >= 4009
135127 +#include "tree-ssa-operands.h"
135128 +#include "tree-phinodes.h"
135129 +#include "tree-cfg.h"
135130 +#include "gimple-iterator.h"
135131 +#include "gimple-ssa.h"
135132 +#include "ssa-iterators.h"
135133 +#endif
135134 +
135135 +//#include "lto/lto.h"
135136 +#if BUILDING_GCC_VERSION >= 4007
135137 +//#include "data-streamer.h"
135138 +#else
135139 +//#include "lto-streamer.h"
135140 +#endif
135141 +//#include "lto-compress.h"
135142 +#if BUILDING_GCC_VERSION >= 5000
135143 +//#include "lto-section-names.h"
135144 +#include "builtins.h"
135145 +#endif
135146 +
135147 +/* #include "expr.h" where are you... */
135148 +extern rtx emit_move_insn(rtx x, rtx y);
135149 +
135150 +/* missing from basic_block.h... */
135151 +extern void debug_dominance_info(enum cdi_direction dir);
135152 +extern void debug_dominance_tree(enum cdi_direction dir, basic_block root);
135153 +
135154 +#if BUILDING_GCC_VERSION == 4006
135155 +extern void debug_gimple_stmt(gimple);
135156 +extern void debug_gimple_seq(gimple_seq);
135157 +extern void print_gimple_seq(FILE *, gimple_seq, int, int);
135158 +extern void print_gimple_stmt(FILE *, gimple, int, int);
135159 +extern void print_gimple_expr(FILE *, gimple, int, int);
135160 +extern void dump_gimple_stmt(pretty_printer *, gimple, int, int);
135161 +#endif
135162 +
135163 +#define __unused __attribute__((__unused__))
135164 +
135165 +#define DECL_NAME_POINTER(node) IDENTIFIER_POINTER(DECL_NAME(node))
135166 +#define DECL_NAME_LENGTH(node) IDENTIFIER_LENGTH(DECL_NAME(node))
135167 +#define TYPE_NAME_POINTER(node) IDENTIFIER_POINTER(TYPE_NAME(node))
135168 +#define TYPE_NAME_LENGTH(node) IDENTIFIER_LENGTH(TYPE_NAME(node))
135169 +
135170 +/* should come from c-tree.h if only it were installed for gcc 4.5... */
135171 +#define C_TYPE_FIELDS_READONLY(TYPE) TREE_LANG_FLAG_1(TYPE)
135172 +
135173 +#if BUILDING_GCC_VERSION == 4005
135174 +#define FOR_EACH_LOCAL_DECL(FUN, I, D) \
135175 + for (tree vars = (FUN)->local_decls, (I) = 0; \
135176 + vars && ((D) = TREE_VALUE(vars)); \
135177 + vars = TREE_CHAIN(vars), (I)++)
135178 +#define DECL_CHAIN(NODE) (TREE_CHAIN(DECL_MINIMAL_CHECK(NODE)))
135179 +#define FOR_EACH_VEC_ELT(T, V, I, P) \
135180 + for (I = 0; VEC_iterate(T, (V), (I), (P)); ++(I))
135181 +#define TODO_rebuild_cgraph_edges 0
135182 +#define SCOPE_FILE_SCOPE_P(EXP) (!(EXP))
135183 +
135184 +#ifndef O_BINARY
135185 +#define O_BINARY 0
135186 +#endif
135187 +
135188 +typedef struct varpool_node *varpool_node_ptr;
135189 +
135190 +static inline bool gimple_call_builtin_p(gimple stmt, enum built_in_function code)
135191 +{
135192 + tree fndecl;
135193 +
135194 + if (!is_gimple_call(stmt))
135195 + return false;
135196 + fndecl = gimple_call_fndecl(stmt);
135197 + if (!fndecl || DECL_BUILT_IN_CLASS(fndecl) != BUILT_IN_NORMAL)
135198 + return false;
135199 +// print_node(stderr, "pax", fndecl, 4);
135200 + return DECL_FUNCTION_CODE(fndecl) == code;
135201 +}
135202 +
135203 +static inline bool is_simple_builtin(tree decl)
135204 +{
135205 + if (decl && DECL_BUILT_IN_CLASS(decl) != BUILT_IN_NORMAL)
135206 + return false;
135207 +
135208 + switch (DECL_FUNCTION_CODE(decl)) {
135209 + /* Builtins that expand to constants. */
135210 + case BUILT_IN_CONSTANT_P:
135211 + case BUILT_IN_EXPECT:
135212 + case BUILT_IN_OBJECT_SIZE:
135213 + case BUILT_IN_UNREACHABLE:
135214 + /* Simple register moves or loads from stack. */
135215 + case BUILT_IN_RETURN_ADDRESS:
135216 + case BUILT_IN_EXTRACT_RETURN_ADDR:
135217 + case BUILT_IN_FROB_RETURN_ADDR:
135218 + case BUILT_IN_RETURN:
135219 + case BUILT_IN_AGGREGATE_INCOMING_ADDRESS:
135220 + case BUILT_IN_FRAME_ADDRESS:
135221 + case BUILT_IN_VA_END:
135222 + case BUILT_IN_STACK_SAVE:
135223 + case BUILT_IN_STACK_RESTORE:
135224 + /* Exception state returns or moves registers around. */
135225 + case BUILT_IN_EH_FILTER:
135226 + case BUILT_IN_EH_POINTER:
135227 + case BUILT_IN_EH_COPY_VALUES:
135228 + return true;
135229 +
135230 + default:
135231 + return false;
135232 + }
135233 +}
135234 +
135235 +static inline void add_local_decl(struct function *fun, tree d)
135236 +{
135237 + gcc_assert(TREE_CODE(d) == VAR_DECL);
135238 + fun->local_decls = tree_cons(NULL_TREE, d, fun->local_decls);
135239 +}
135240 +#endif
135241 +
135242 +#if BUILDING_GCC_VERSION <= 4006
135243 +#define ANY_RETURN_P(rtx) (GET_CODE(rtx) == RETURN)
135244 +#define C_DECL_REGISTER(EXP) DECL_LANG_FLAG_4(EXP)
135245 +#define EDGE_PRESERVE 0ULL
135246 +#define HOST_WIDE_INT_PRINT_HEX_PURE "%" HOST_WIDE_INT_PRINT "x"
135247 +#define flag_fat_lto_objects true
135248 +
135249 +#define get_random_seed(noinit) ({ \
135250 + unsigned HOST_WIDE_INT seed; \
135251 + sscanf(get_random_seed(noinit), "%" HOST_WIDE_INT_PRINT "x", &seed); \
135252 + seed * seed; })
135253 +
135254 +#define int_const_binop(code, arg1, arg2) \
135255 + int_const_binop((code), (arg1), (arg2), 0)
135256 +
135257 +static inline bool gimple_clobber_p(gimple s __unused)
135258 +{
135259 + return false;
135260 +}
135261 +
135262 +static inline bool gimple_asm_clobbers_memory_p(const_gimple stmt)
135263 +{
135264 + unsigned i;
135265 +
135266 + for (i = 0; i < gimple_asm_nclobbers(stmt); i++) {
135267 + tree op = gimple_asm_clobber_op(stmt, i);
135268 +
135269 + if (!strcmp(TREE_STRING_POINTER(TREE_VALUE(op)), "memory"))
135270 + return true;
135271 + }
135272 +
135273 + return false;
135274 +}
135275 +
135276 +static inline tree builtin_decl_implicit(enum built_in_function fncode)
135277 +{
135278 + return implicit_built_in_decls[fncode];
135279 +}
135280 +
135281 +static inline int ipa_reverse_postorder(struct cgraph_node **order)
135282 +{
135283 + return cgraph_postorder(order);
135284 +}
135285 +
135286 +static inline struct cgraph_node *cgraph_create_node(tree decl)
135287 +{
135288 + return cgraph_node(decl);
135289 +}
135290 +
135291 +static inline struct cgraph_node *cgraph_get_create_node(tree decl)
135292 +{
135293 + struct cgraph_node *node = cgraph_get_node(decl);
135294 +
135295 + return node ? node : cgraph_node(decl);
135296 +}
135297 +
135298 +static inline bool cgraph_function_with_gimple_body_p(struct cgraph_node *node)
135299 +{
135300 + return node->analyzed && !node->thunk.thunk_p && !node->alias;
135301 +}
135302 +
135303 +static inline struct cgraph_node *cgraph_first_function_with_gimple_body(void)
135304 +{
135305 + struct cgraph_node *node;
135306 +
135307 + for (node = cgraph_nodes; node; node = node->next)
135308 + if (cgraph_function_with_gimple_body_p(node))
135309 + return node;
135310 + return NULL;
135311 +}
135312 +
135313 +static inline struct cgraph_node *cgraph_next_function_with_gimple_body(struct cgraph_node *node)
135314 +{
135315 + for (node = node->next; node; node = node->next)
135316 + if (cgraph_function_with_gimple_body_p(node))
135317 + return node;
135318 + return NULL;
135319 +}
135320 +
135321 +#define FOR_EACH_FUNCTION_WITH_GIMPLE_BODY(node) \
135322 + for ((node) = cgraph_first_function_with_gimple_body(); (node); \
135323 + (node) = cgraph_next_function_with_gimple_body(node))
135324 +
135325 +static inline void varpool_add_new_variable(tree decl)
135326 +{
135327 + varpool_finalize_decl(decl);
135328 +}
135329 +#endif
135330 +
135331 +#if BUILDING_GCC_VERSION <= 4007
135332 +#define FOR_EACH_FUNCTION(node) \
135333 + for (node = cgraph_nodes; node; node = node->next)
135334 +#define FOR_EACH_VARIABLE(node) \
135335 + for (node = varpool_nodes; node; node = node->next)
135336 +#define PROP_loops 0
135337 +#define NODE_SYMBOL(node) (node)
135338 +#define NODE_DECL(node) (node)->decl
135339 +#define INSN_LOCATION(INSN) RTL_LOCATION(INSN)
135340 +#define vNULL NULL
135341 +
135342 +static inline int bb_loop_depth(const_basic_block bb)
135343 +{
135344 + return bb->loop_father ? loop_depth(bb->loop_father) : 0;
135345 +}
135346 +
135347 +static inline bool gimple_store_p(gimple gs)
135348 +{
135349 + tree lhs = gimple_get_lhs(gs);
135350 +
135351 + return lhs && !is_gimple_reg(lhs);
135352 +}
135353 +
135354 +static inline void gimple_init_singleton(gimple g __unused)
135355 +{
135356 +}
135357 +#endif
135358 +
135359 +#if BUILDING_GCC_VERSION == 4007 || BUILDING_GCC_VERSION == 4008
135360 +static inline struct cgraph_node *cgraph_alias_target(struct cgraph_node *n)
135361 +{
135362 + return cgraph_alias_aliased_node(n);
135363 +}
135364 +#endif
135365 +
135366 +#if BUILDING_GCC_VERSION >= 4007 && BUILDING_GCC_VERSION <= 4009
135367 +#define cgraph_create_edge(caller, callee, call_stmt, count, freq, nest) \
135368 + cgraph_create_edge((caller), (callee), (call_stmt), (count), (freq))
135369 +#define cgraph_create_edge_including_clones(caller, callee, old_call_stmt, call_stmt, count, freq, nest, reason) \
135370 + cgraph_create_edge_including_clones((caller), (callee), (old_call_stmt), (call_stmt), (count), (freq), (reason))
135371 +#endif
135372 +
135373 +#if BUILDING_GCC_VERSION <= 4008
135374 +#define ENTRY_BLOCK_PTR_FOR_FN(FN) ENTRY_BLOCK_PTR_FOR_FUNCTION(FN)
135375 +#define EXIT_BLOCK_PTR_FOR_FN(FN) EXIT_BLOCK_PTR_FOR_FUNCTION(FN)
135376 +#define basic_block_info_for_fn(FN) ((FN)->cfg->x_basic_block_info)
135377 +#define n_basic_blocks_for_fn(FN) ((FN)->cfg->x_n_basic_blocks)
135378 +#define n_edges_for_fn(FN) ((FN)->cfg->x_n_edges)
135379 +#define last_basic_block_for_fn(FN) ((FN)->cfg->x_last_basic_block)
135380 +#define label_to_block_map_for_fn(FN) ((FN)->cfg->x_label_to_block_map)
135381 +#define profile_status_for_fn(FN) ((FN)->cfg->x_profile_status)
135382 +#define BASIC_BLOCK_FOR_FN(FN, N) BASIC_BLOCK_FOR_FUNCTION((FN), (N))
135383 +#define NODE_IMPLICIT_ALIAS(node) (node)->same_body_alias
135384 +#define VAR_P(NODE) (TREE_CODE(NODE) == VAR_DECL)
135385 +
135386 +static inline bool tree_fits_shwi_p(const_tree t)
135387 +{
135388 + if (t == NULL_TREE || TREE_CODE(t) != INTEGER_CST)
135389 + return false;
135390 +
135391 + if (TREE_INT_CST_HIGH(t) == 0 && (HOST_WIDE_INT)TREE_INT_CST_LOW(t) >= 0)
135392 + return true;
135393 +
135394 + if (TREE_INT_CST_HIGH(t) == -1 && (HOST_WIDE_INT)TREE_INT_CST_LOW(t) < 0 && !TYPE_UNSIGNED(TREE_TYPE(t)))
135395 + return true;
135396 +
135397 + return false;
135398 +}
135399 +
135400 +static inline bool tree_fits_uhwi_p(const_tree t)
135401 +{
135402 + if (t == NULL_TREE || TREE_CODE(t) != INTEGER_CST)
135403 + return false;
135404 +
135405 + return TREE_INT_CST_HIGH(t) == 0;
135406 +}
135407 +
135408 +static inline HOST_WIDE_INT tree_to_shwi(const_tree t)
135409 +{
135410 + gcc_assert(tree_fits_shwi_p(t));
135411 + return TREE_INT_CST_LOW(t);
135412 +}
135413 +
135414 +static inline unsigned HOST_WIDE_INT tree_to_uhwi(const_tree t)
135415 +{
135416 + gcc_assert(tree_fits_uhwi_p(t));
135417 + return TREE_INT_CST_LOW(t);
135418 +}
135419 +
135420 +static inline const char *get_tree_code_name(enum tree_code code)
135421 +{
135422 + gcc_assert(code < MAX_TREE_CODES);
135423 + return tree_code_name[code];
135424 +}
135425 +
135426 +#define ipa_remove_stmt_references(cnode, stmt)
135427 +
135428 +typedef union gimple_statement_d gasm;
135429 +typedef union gimple_statement_d gassign;
135430 +typedef union gimple_statement_d gcall;
135431 +typedef union gimple_statement_d gcond;
135432 +typedef union gimple_statement_d gdebug;
135433 +typedef union gimple_statement_d gphi;
135434 +typedef union gimple_statement_d greturn;
135435 +
135436 +static inline gasm *as_a_gasm(gimple stmt)
135437 +{
135438 + return stmt;
135439 +}
135440 +
135441 +static inline const gasm *as_a_const_gasm(const_gimple stmt)
135442 +{
135443 + return stmt;
135444 +}
135445 +
135446 +static inline gassign *as_a_gassign(gimple stmt)
135447 +{
135448 + return stmt;
135449 +}
135450 +
135451 +static inline const gassign *as_a_const_gassign(const_gimple stmt)
135452 +{
135453 + return stmt;
135454 +}
135455 +
135456 +static inline gcall *as_a_gcall(gimple stmt)
135457 +{
135458 + return stmt;
135459 +}
135460 +
135461 +static inline const gcall *as_a_const_gcall(const_gimple stmt)
135462 +{
135463 + return stmt;
135464 +}
135465 +
135466 +static inline gcond *as_a_gcond(gimple stmt)
135467 +{
135468 + return stmt;
135469 +}
135470 +
135471 +static inline const gcond *as_a_const_gcond(const_gimple stmt)
135472 +{
135473 + return stmt;
135474 +}
135475 +
135476 +static inline gdebug *as_a_gdebug(gimple stmt)
135477 +{
135478 + return stmt;
135479 +}
135480 +
135481 +static inline const gdebug *as_a_const_gdebug(const_gimple stmt)
135482 +{
135483 + return stmt;
135484 +}
135485 +
135486 +static inline gphi *as_a_gphi(gimple stmt)
135487 +{
135488 + return stmt;
135489 +}
135490 +
135491 +static inline const gphi *as_a_const_gphi(const_gimple stmt)
135492 +{
135493 + return stmt;
135494 +}
135495 +
135496 +static inline greturn *as_a_greturn(gimple stmt)
135497 +{
135498 + return stmt;
135499 +}
135500 +
135501 +static inline const greturn *as_a_const_greturn(const_gimple stmt)
135502 +{
135503 + return stmt;
135504 +}
135505 +#endif
135506 +
135507 +#if BUILDING_GCC_VERSION == 4008
135508 +#define NODE_SYMBOL(node) (&(node)->symbol)
135509 +#define NODE_DECL(node) (node)->symbol.decl
135510 +#endif
135511 +
135512 +#if BUILDING_GCC_VERSION >= 4008
135513 +#define add_referenced_var(var)
135514 +#define mark_sym_for_renaming(var)
135515 +#define varpool_mark_needed_node(node)
135516 +#define create_var_ann(var)
135517 +#define TODO_dump_func 0
135518 +#define TODO_dump_cgraph 0
135519 +#endif
135520 +
135521 +#if BUILDING_GCC_VERSION <= 4009
135522 +#define TODO_verify_il 0
135523 +#define AVAIL_INTERPOSABLE AVAIL_OVERWRITABLE
135524 +
135525 +#define section_name_prefix LTO_SECTION_NAME_PREFIX
135526 +#define fatal_error(loc, gmsgid, ...) fatal_error((gmsgid), __VA_ARGS__)
135527 +
135528 +typedef struct rtx_def rtx_insn;
135529 +
135530 +static inline void set_decl_section_name(tree node, const char *value)
135531 +{
135532 + if (value)
135533 + DECL_SECTION_NAME(node) = build_string(strlen(value) + 1, value);
135534 + else
135535 + DECL_SECTION_NAME(node) = NULL;
135536 +}
135537 +#endif
135538 +
135539 +#if BUILDING_GCC_VERSION == 4009
135540 +typedef struct gimple_statement_asm gasm;
135541 +typedef struct gimple_statement_base gassign;
135542 +typedef struct gimple_statement_call gcall;
135543 +typedef struct gimple_statement_base gcond;
135544 +typedef struct gimple_statement_base gdebug;
135545 +typedef struct gimple_statement_phi gphi;
135546 +typedef struct gimple_statement_base greturn;
135547 +
135548 +static inline gasm *as_a_gasm(gimple stmt)
135549 +{
135550 + return as_a<gasm>(stmt);
135551 +}
135552 +
135553 +static inline const gasm *as_a_const_gasm(const_gimple stmt)
135554 +{
135555 + return as_a<const gasm>(stmt);
135556 +}
135557 +
135558 +static inline gassign *as_a_gassign(gimple stmt)
135559 +{
135560 + return stmt;
135561 +}
135562 +
135563 +static inline const gassign *as_a_const_gassign(const_gimple stmt)
135564 +{
135565 + return stmt;
135566 +}
135567 +
135568 +static inline gcall *as_a_gcall(gimple stmt)
135569 +{
135570 + return as_a<gcall>(stmt);
135571 +}
135572 +
135573 +static inline const gcall *as_a_const_gcall(const_gimple stmt)
135574 +{
135575 + return as_a<const gcall>(stmt);
135576 +}
135577 +
135578 +static inline gcond *as_a_gcond(gimple stmt)
135579 +{
135580 + return stmt;
135581 +}
135582 +
135583 +static inline const gcond *as_a_const_gcond(const_gimple stmt)
135584 +{
135585 + return stmt;
135586 +}
135587 +
135588 +static inline gdebug *as_a_gdebug(gimple stmt)
135589 +{
135590 + return stmt;
135591 +}
135592 +
135593 +static inline const gdebug *as_a_const_gdebug(const_gimple stmt)
135594 +{
135595 + return stmt;
135596 +}
135597 +
135598 +static inline gphi *as_a_gphi(gimple stmt)
135599 +{
135600 + return as_a<gphi>(stmt);
135601 +}
135602 +
135603 +static inline const gphi *as_a_const_gphi(const_gimple stmt)
135604 +{
135605 + return as_a<const gphi>(stmt);
135606 +}
135607 +
135608 +static inline greturn *as_a_greturn(gimple stmt)
135609 +{
135610 + return stmt;
135611 +}
135612 +
135613 +static inline const greturn *as_a_const_greturn(const_gimple stmt)
135614 +{
135615 + return stmt;
135616 +}
135617 +#endif
135618 +
135619 +#if BUILDING_GCC_VERSION >= 4009
135620 +#define TODO_ggc_collect 0
135621 +#define NODE_SYMBOL(node) (node)
135622 +#define NODE_DECL(node) (node)->decl
135623 +#define cgraph_node_name(node) (node)->name()
135624 +#define NODE_IMPLICIT_ALIAS(node) (node)->cpp_implicit_alias
135625 +#endif
135626 +
135627 +#if BUILDING_GCC_VERSION >= 5000 && BUILDING_GCC_VERSION < 6000
135628 +/* gimple related */
135629 +template <>
135630 +template <>
135631 +inline bool is_a_helper<const gassign *>::test(const_gimple gs)
135632 +{
135633 + return gs->code == GIMPLE_ASSIGN;
135634 +}
135635 +#endif
135636 +
135637 +#if BUILDING_GCC_VERSION >= 5000
135638 +#define TODO_verify_ssa TODO_verify_il
135639 +#define TODO_verify_flow TODO_verify_il
135640 +#define TODO_verify_stmts TODO_verify_il
135641 +#define TODO_verify_rtl_sharing TODO_verify_il
135642 +
135643 +//#define TREE_INT_CST_HIGH(NODE) ({ TREE_INT_CST_EXT_NUNITS(NODE) > 1 ? (unsigned HOST_WIDE_INT)TREE_INT_CST_ELT(NODE, 1) : 0; })
135644 +
135645 +#define INSN_DELETED_P(insn) (insn)->deleted()
135646 +
135647 +/* symtab/cgraph related */
135648 +#define debug_cgraph_node(node) (node)->debug()
135649 +#define cgraph_get_node(decl) cgraph_node::get(decl)
135650 +#define cgraph_get_create_node(decl) cgraph_node::get_create(decl)
135651 +#define cgraph_create_node(decl) cgraph_node::create(decl)
135652 +#define cgraph_n_nodes symtab->cgraph_count
135653 +#define cgraph_max_uid symtab->cgraph_max_uid
135654 +#define varpool_get_node(decl) varpool_node::get(decl)
135655 +
135656 +#define cgraph_create_edge(caller, callee, call_stmt, count, freq, nest) \
135657 + (caller)->create_edge((callee), (call_stmt), (count), (freq))
135658 +#define cgraph_create_edge_including_clones(caller, callee, old_call_stmt, call_stmt, count, freq, nest, reason) \
135659 + (caller)->create_edge_including_clones((callee), (old_call_stmt), (call_stmt), (count), (freq), (reason))
135660 +
135661 +typedef struct cgraph_node *cgraph_node_ptr;
135662 +typedef struct cgraph_edge *cgraph_edge_p;
135663 +typedef struct varpool_node *varpool_node_ptr;
135664 +
135665 +static inline void change_decl_assembler_name(tree decl, tree name)
135666 +{
135667 + symtab->change_decl_assembler_name(decl, name);
135668 +}
135669 +
135670 +static inline void varpool_finalize_decl(tree decl)
135671 +{
135672 + varpool_node::finalize_decl(decl);
135673 +}
135674 +
135675 +static inline void varpool_add_new_variable(tree decl)
135676 +{
135677 + varpool_node::add(decl);
135678 +}
135679 +
135680 +static inline unsigned int rebuild_cgraph_edges(void)
135681 +{
135682 + return cgraph_edge::rebuild_edges();
135683 +}
135684 +
135685 +static inline cgraph_node_ptr cgraph_function_node(cgraph_node_ptr node, enum availability *availability)
135686 +{
135687 + return node->function_symbol(availability);
135688 +}
135689 +
135690 +static inline cgraph_node_ptr cgraph_function_or_thunk_node(cgraph_node_ptr node, enum availability *availability = NULL)
135691 +{
135692 + return node->ultimate_alias_target(availability);
135693 +}
135694 +
135695 +static inline bool cgraph_only_called_directly_p(cgraph_node_ptr node)
135696 +{
135697 + return node->only_called_directly_p();
135698 +}
135699 +
135700 +static inline enum availability cgraph_function_body_availability(cgraph_node_ptr node)
135701 +{
135702 + return node->get_availability();
135703 +}
135704 +
135705 +static inline cgraph_node_ptr cgraph_alias_target(cgraph_node_ptr node)
135706 +{
135707 + return node->get_alias_target();
135708 +}
135709 +
135710 +static inline struct cgraph_node_hook_list *cgraph_add_function_insertion_hook(cgraph_node_hook hook, void *data)
135711 +{
135712 + return symtab->add_cgraph_insertion_hook(hook, data);
135713 +}
135714 +
135715 +static inline void cgraph_remove_function_insertion_hook(struct cgraph_node_hook_list *entry)
135716 +{
135717 + symtab->remove_cgraph_insertion_hook(entry);
135718 +}
135719 +
135720 +static inline struct cgraph_node_hook_list *cgraph_add_node_removal_hook(cgraph_node_hook hook, void *data)
135721 +{
135722 + return symtab->add_cgraph_removal_hook(hook, data);
135723 +}
135724 +
135725 +static inline void cgraph_remove_node_removal_hook(struct cgraph_node_hook_list *entry)
135726 +{
135727 + symtab->remove_cgraph_removal_hook(entry);
135728 +}
135729 +
135730 +static inline struct cgraph_2node_hook_list *cgraph_add_node_duplication_hook(cgraph_2node_hook hook, void *data)
135731 +{
135732 + return symtab->add_cgraph_duplication_hook(hook, data);
135733 +}
135734 +
135735 +static inline void cgraph_remove_node_duplication_hook(struct cgraph_2node_hook_list *entry)
135736 +{
135737 + symtab->remove_cgraph_duplication_hook(entry);
135738 +}
135739 +
135740 +static inline void cgraph_call_node_duplication_hooks(cgraph_node_ptr node, cgraph_node_ptr node2)
135741 +{
135742 + symtab->call_cgraph_duplication_hooks(node, node2);
135743 +}
135744 +
135745 +static inline void cgraph_call_edge_duplication_hooks(cgraph_edge *cs1, cgraph_edge *cs2)
135746 +{
135747 + symtab->call_edge_duplication_hooks(cs1, cs2);
135748 +}
135749 +
135750 +#if BUILDING_GCC_VERSION >= 6000
135751 +typedef gimple *gimple_ptr;
135752 +typedef const gimple *const_gimple_ptr;
135753 +#define gimple gimple_ptr
135754 +#define const_gimple const_gimple_ptr
135755 +#undef CONST_CAST_GIMPLE
135756 +#define CONST_CAST_GIMPLE(X) CONST_CAST(gimple, (X))
135757 +#endif
135758 +
135759 +/* gimple related */
135760 +static inline gimple gimple_build_assign_with_ops(enum tree_code subcode, tree lhs, tree op1, tree op2 MEM_STAT_DECL)
135761 +{
135762 + return gimple_build_assign(lhs, subcode, op1, op2 PASS_MEM_STAT);
135763 +}
135764 +
135765 +template <>
135766 +template <>
135767 +inline bool is_a_helper<const greturn *>::test(const_gimple gs)
135768 +{
135769 + return gs->code == GIMPLE_RETURN;
135770 +}
135771 +
135772 +static inline gasm *as_a_gasm(gimple stmt)
135773 +{
135774 + return as_a<gasm *>(stmt);
135775 +}
135776 +
135777 +static inline const gasm *as_a_const_gasm(const_gimple stmt)
135778 +{
135779 + return as_a<const gasm *>(stmt);
135780 +}
135781 +
135782 +static inline gassign *as_a_gassign(gimple stmt)
135783 +{
135784 + return as_a<gassign *>(stmt);
135785 +}
135786 +
135787 +static inline const gassign *as_a_const_gassign(const_gimple stmt)
135788 +{
135789 + return as_a<const gassign *>(stmt);
135790 +}
135791 +
135792 +static inline gcall *as_a_gcall(gimple stmt)
135793 +{
135794 + return as_a<gcall *>(stmt);
135795 +}
135796 +
135797 +static inline const gcall *as_a_const_gcall(const_gimple stmt)
135798 +{
135799 + return as_a<const gcall *>(stmt);
135800 +}
135801 +
135802 +static inline gphi *as_a_gphi(gimple stmt)
135803 +{
135804 + return as_a<gphi *>(stmt);
135805 +}
135806 +
135807 +static inline const gphi *as_a_const_gphi(const_gimple stmt)
135808 +{
135809 + return as_a<const gphi *>(stmt);
135810 +}
135811 +
135812 +static inline greturn *as_a_greturn(gimple stmt)
135813 +{
135814 + return as_a<greturn *>(stmt);
135815 +}
135816 +
135817 +static inline const greturn *as_a_const_greturn(const_gimple stmt)
135818 +{
135819 + return as_a<const greturn *>(stmt);
135820 +}
135821 +
135822 +/* IPA/LTO related */
135823 +#define ipa_ref_list_referring_iterate(L, I, P) \
135824 + (L)->referring.iterate((I), &(P))
135825 +#define ipa_ref_list_reference_iterate(L, I, P) \
135826 + (L)->reference.iterate((I), &(P))
135827 +
135828 +static inline cgraph_node_ptr ipa_ref_referring_node(struct ipa_ref *ref)
135829 +{
135830 + return dyn_cast<cgraph_node_ptr>(ref->referring);
135831 +}
135832 +
135833 +static inline void ipa_remove_stmt_references(symtab_node *referring_node, gimple stmt)
135834 +{
135835 + referring_node->remove_stmt_references(stmt);
135836 +}
135837 +#endif
135838 +
135839 +#if BUILDING_GCC_VERSION < 6000
135840 +#define get_inner_reference(exp, pbitsize, pbitpos, poffset, pmode, punsignedp, preversep, pvolatilep, keep_aligning) \
135841 + get_inner_reference(exp, pbitsize, pbitpos, poffset, pmode, punsignedp, pvolatilep, keep_aligning)
135842 +#define gen_rtx_set(ARG0, ARG1) gen_rtx_SET(VOIDmode, (ARG0), (ARG1))
135843 +#endif
135844 +
135845 +#if BUILDING_GCC_VERSION >= 6000
135846 +#define gen_rtx_set(ARG0, ARG1) gen_rtx_SET((ARG0), (ARG1))
135847 +#endif
135848 +
135849 +#ifdef __cplusplus
135850 +static inline void debug_tree(const_tree t)
135851 +{
135852 + debug_tree(CONST_CAST_TREE(t));
135853 +}
135854 +
135855 +static inline void debug_gimple_stmt(const_gimple s)
135856 +{
135857 + debug_gimple_stmt(CONST_CAST_GIMPLE(s));
135858 +}
135859 +#else
135860 +#define debug_tree(t) debug_tree(CONST_CAST_TREE(t))
135861 +#define debug_gimple_stmt(s) debug_gimple_stmt(CONST_CAST_GIMPLE(s))
135862 +#endif
135863 +
135864 +#endif
135865 diff --git a/tools/gcc/gcc-generate-gimple-pass.h b/tools/gcc/gcc-generate-gimple-pass.h
135866 new file mode 100644
135867 index 0000000..0b081fe
135868 --- /dev/null
135869 +++ b/tools/gcc/gcc-generate-gimple-pass.h
135870 @@ -0,0 +1,175 @@
135871 +/*
135872 + * Generator for GIMPLE pass related boilerplate code/data
135873 + *
135874 + * Supports gcc 4.5-6
135875 + *
135876 + * Usage:
135877 + *
135878 + * 1. before inclusion define PASS_NAME
135879 + * 2. before inclusion define NO_* for unimplemented callbacks
135880 + * NO_GATE
135881 + * NO_EXECUTE
135882 + * 3. before inclusion define PROPERTIES_* and TODO_FLAGS_* to override
135883 + * the default 0 values
135884 + * 4. for convenience, all the above will be undefined after inclusion!
135885 + * 5. the only exported name is make_PASS_NAME_pass() to register with gcc
135886 + */
135887 +
135888 +#ifndef PASS_NAME
135889 +#error at least PASS_NAME must be defined
135890 +#else
135891 +#define __GCC_PLUGIN_STRINGIFY(n) #n
135892 +#define _GCC_PLUGIN_STRINGIFY(n) __GCC_PLUGIN_STRINGIFY(n)
135893 +#define _GCC_PLUGIN_CONCAT2(x, y) x ## y
135894 +#define _GCC_PLUGIN_CONCAT3(x, y, z) x ## y ## z
135895 +
135896 +#define __PASS_NAME_PASS_DATA(n) _GCC_PLUGIN_CONCAT2(n, _pass_data)
135897 +#define _PASS_NAME_PASS_DATA __PASS_NAME_PASS_DATA(PASS_NAME)
135898 +
135899 +#define __PASS_NAME_PASS(n) _GCC_PLUGIN_CONCAT2(n, _pass)
135900 +#define _PASS_NAME_PASS __PASS_NAME_PASS(PASS_NAME)
135901 +
135902 +#define _PASS_NAME_NAME _GCC_PLUGIN_STRINGIFY(PASS_NAME)
135903 +
135904 +#define __MAKE_PASS_NAME_PASS(n) _GCC_PLUGIN_CONCAT3(make_, n, _pass)
135905 +#define _MAKE_PASS_NAME_PASS __MAKE_PASS_NAME_PASS(PASS_NAME)
135906 +
135907 +#ifdef NO_GATE
135908 +#define _GATE NULL
135909 +#define _HAS_GATE false
135910 +#else
135911 +#define __GATE(n) _GCC_PLUGIN_CONCAT2(n, _gate)
135912 +#define _GATE __GATE(PASS_NAME)
135913 +#define _HAS_GATE true
135914 +#endif
135915 +
135916 +#ifdef NO_EXECUTE
135917 +#define _EXECUTE NULL
135918 +#define _HAS_EXECUTE false
135919 +#else
135920 +#define __EXECUTE(n) _GCC_PLUGIN_CONCAT2(n, _execute)
135921 +#define _EXECUTE __EXECUTE(PASS_NAME)
135922 +#define _HAS_EXECUTE true
135923 +#endif
135924 +
135925 +#ifndef PROPERTIES_REQUIRED
135926 +#define PROPERTIES_REQUIRED 0
135927 +#endif
135928 +
135929 +#ifndef PROPERTIES_PROVIDED
135930 +#define PROPERTIES_PROVIDED 0
135931 +#endif
135932 +
135933 +#ifndef PROPERTIES_DESTROYED
135934 +#define PROPERTIES_DESTROYED 0
135935 +#endif
135936 +
135937 +#ifndef TODO_FLAGS_START
135938 +#define TODO_FLAGS_START 0
135939 +#endif
135940 +
135941 +#ifndef TODO_FLAGS_FINISH
135942 +#define TODO_FLAGS_FINISH 0
135943 +#endif
135944 +
135945 +#if BUILDING_GCC_VERSION >= 4009
135946 +namespace {
135947 +static const pass_data _PASS_NAME_PASS_DATA = {
135948 +#else
135949 +static struct gimple_opt_pass _PASS_NAME_PASS = {
135950 + .pass = {
135951 +#endif
135952 + .type = GIMPLE_PASS,
135953 + .name = _PASS_NAME_NAME,
135954 +#if BUILDING_GCC_VERSION >= 4008
135955 + .optinfo_flags = OPTGROUP_NONE,
135956 +#endif
135957 +#if BUILDING_GCC_VERSION >= 5000
135958 +#elif BUILDING_GCC_VERSION == 4009
135959 + .has_gate = _HAS_GATE,
135960 + .has_execute = _HAS_EXECUTE,
135961 +#else
135962 + .gate = _GATE,
135963 + .execute = _EXECUTE,
135964 + .sub = NULL,
135965 + .next = NULL,
135966 + .static_pass_number = 0,
135967 +#endif
135968 + .tv_id = TV_NONE,
135969 + .properties_required = PROPERTIES_REQUIRED,
135970 + .properties_provided = PROPERTIES_PROVIDED,
135971 + .properties_destroyed = PROPERTIES_DESTROYED,
135972 + .todo_flags_start = TODO_FLAGS_START,
135973 + .todo_flags_finish = TODO_FLAGS_FINISH,
135974 +#if BUILDING_GCC_VERSION < 4009
135975 + }
135976 +#endif
135977 +};
135978 +
135979 +#if BUILDING_GCC_VERSION >= 4009
135980 +class _PASS_NAME_PASS : public gimple_opt_pass {
135981 +public:
135982 + _PASS_NAME_PASS() : gimple_opt_pass(_PASS_NAME_PASS_DATA, g) {}
135983 +
135984 +#ifndef NO_GATE
135985 +#if BUILDING_GCC_VERSION >= 5000
135986 + virtual bool gate(function *) { return _GATE(); }
135987 +#else
135988 + virtual bool gate(void) { return _GATE(); }
135989 +#endif
135990 +#endif
135991 +
135992 + virtual opt_pass *clone() { return new _PASS_NAME_PASS(); }
135993 +
135994 +#ifndef NO_EXECUTE
135995 +#if BUILDING_GCC_VERSION >= 5000
135996 + virtual unsigned int execute(function *) { return _EXECUTE(); }
135997 +#else
135998 + virtual unsigned int execute(void) { return _EXECUTE(); }
135999 +#endif
136000 +#endif
136001 +};
136002 +}
136003 +
136004 +opt_pass *_MAKE_PASS_NAME_PASS(void)
136005 +{
136006 + return new _PASS_NAME_PASS();
136007 +}
136008 +#else
136009 +struct opt_pass *_MAKE_PASS_NAME_PASS(void)
136010 +{
136011 + return &_PASS_NAME_PASS.pass;
136012 +}
136013 +#endif
136014 +
136015 +/* clean up user provided defines */
136016 +#undef PASS_NAME
136017 +#undef NO_GATE
136018 +#undef NO_EXECUTE
136019 +
136020 +#undef PROPERTIES_DESTROYED
136021 +#undef PROPERTIES_PROVIDED
136022 +#undef PROPERTIES_REQUIRED
136023 +#undef TODO_FLAGS_FINISH
136024 +#undef TODO_FLAGS_START
136025 +
136026 +/* clean up generated defines */
136027 +#undef _EXECUTE
136028 +#undef __EXECUTE
136029 +#undef _GATE
136030 +#undef __GATE
136031 +#undef _GCC_PLUGIN_CONCAT2
136032 +#undef _GCC_PLUGIN_CONCAT3
136033 +#undef _GCC_PLUGIN_STRINGIFY
136034 +#undef __GCC_PLUGIN_STRINGIFY
136035 +#undef _HAS_EXECUTE
136036 +#undef _HAS_GATE
136037 +#undef _MAKE_PASS_NAME_PASS
136038 +#undef __MAKE_PASS_NAME_PASS
136039 +#undef _PASS_NAME_NAME
136040 +#undef _PASS_NAME_PASS
136041 +#undef __PASS_NAME_PASS
136042 +#undef _PASS_NAME_PASS_DATA
136043 +#undef __PASS_NAME_PASS_DATA
136044 +
136045 +#endif /* PASS_NAME */
136046 diff --git a/tools/gcc/gcc-generate-ipa-pass.h b/tools/gcc/gcc-generate-ipa-pass.h
136047 new file mode 100644
136048 index 0000000..9bd926e
136049 --- /dev/null
136050 +++ b/tools/gcc/gcc-generate-ipa-pass.h
136051 @@ -0,0 +1,289 @@
136052 +/*
136053 + * Generator for IPA pass related boilerplate code/data
136054 + *
136055 + * Supports gcc 4.5-6
136056 + *
136057 + * Usage:
136058 + *
136059 + * 1. before inclusion define PASS_NAME
136060 + * 2. before inclusion define NO_* for unimplemented callbacks
136061 + * NO_GENERATE_SUMMARY
136062 + * NO_READ_SUMMARY
136063 + * NO_WRITE_SUMMARY
136064 + * NO_READ_OPTIMIZATION_SUMMARY
136065 + * NO_WRITE_OPTIMIZATION_SUMMARY
136066 + * NO_STMT_FIXUP
136067 + * NO_FUNCTION_TRANSFORM
136068 + * NO_VARIABLE_TRANSFORM
136069 + * NO_GATE
136070 + * NO_EXECUTE
136071 + * 3. before inclusion define PROPERTIES_* and *TODO_FLAGS_* to override
136072 + * the default 0 values
136073 + * 4. for convenience, all the above will be undefined after inclusion!
136074 + * 5. the only exported name is make_PASS_NAME_pass() to register with gcc
136075 + */
136076 +
136077 +#ifndef PASS_NAME
136078 +#error at least PASS_NAME must be defined
136079 +#else
136080 +#define __GCC_PLUGIN_STRINGIFY(n) #n
136081 +#define _GCC_PLUGIN_STRINGIFY(n) __GCC_PLUGIN_STRINGIFY(n)
136082 +#define _GCC_PLUGIN_CONCAT2(x, y) x ## y
136083 +#define _GCC_PLUGIN_CONCAT3(x, y, z) x ## y ## z
136084 +
136085 +#define __PASS_NAME_PASS_DATA(n) _GCC_PLUGIN_CONCAT2(n, _pass_data)
136086 +#define _PASS_NAME_PASS_DATA __PASS_NAME_PASS_DATA(PASS_NAME)
136087 +
136088 +#define __PASS_NAME_PASS(n) _GCC_PLUGIN_CONCAT2(n, _pass)
136089 +#define _PASS_NAME_PASS __PASS_NAME_PASS(PASS_NAME)
136090 +
136091 +#define _PASS_NAME_NAME _GCC_PLUGIN_STRINGIFY(PASS_NAME)
136092 +
136093 +#define __MAKE_PASS_NAME_PASS(n) _GCC_PLUGIN_CONCAT3(make_, n, _pass)
136094 +#define _MAKE_PASS_NAME_PASS __MAKE_PASS_NAME_PASS(PASS_NAME)
136095 +
136096 +#ifdef NO_GENERATE_SUMMARY
136097 +#define _GENERATE_SUMMARY NULL
136098 +#else
136099 +#define __GENERATE_SUMMARY(n) _GCC_PLUGIN_CONCAT2(n, _generate_summary)
136100 +#define _GENERATE_SUMMARY __GENERATE_SUMMARY(PASS_NAME)
136101 +#endif
136102 +
136103 +#ifdef NO_READ_SUMMARY
136104 +#define _READ_SUMMARY NULL
136105 +#else
136106 +#define __READ_SUMMARY(n) _GCC_PLUGIN_CONCAT2(n, _read_summary)
136107 +#define _READ_SUMMARY __READ_SUMMARY(PASS_NAME)
136108 +#endif
136109 +
136110 +#ifdef NO_WRITE_SUMMARY
136111 +#define _WRITE_SUMMARY NULL
136112 +#else
136113 +#define __WRITE_SUMMARY(n) _GCC_PLUGIN_CONCAT2(n, _write_summary)
136114 +#define _WRITE_SUMMARY __WRITE_SUMMARY(PASS_NAME)
136115 +#endif
136116 +
136117 +#ifdef NO_READ_OPTIMIZATION_SUMMARY
136118 +#define _READ_OPTIMIZATION_SUMMARY NULL
136119 +#else
136120 +#define __READ_OPTIMIZATION_SUMMARY(n) _GCC_PLUGIN_CONCAT2(n, _read_optimization_summary)
136121 +#define _READ_OPTIMIZATION_SUMMARY __READ_OPTIMIZATION_SUMMARY(PASS_NAME)
136122 +#endif
136123 +
136124 +#ifdef NO_WRITE_OPTIMIZATION_SUMMARY
136125 +#define _WRITE_OPTIMIZATION_SUMMARY NULL
136126 +#else
136127 +#define __WRITE_OPTIMIZATION_SUMMARY(n) _GCC_PLUGIN_CONCAT2(n, _write_optimization_summary)
136128 +#define _WRITE_OPTIMIZATION_SUMMARY __WRITE_OPTIMIZATION_SUMMARY(PASS_NAME)
136129 +#endif
136130 +
136131 +#ifdef NO_STMT_FIXUP
136132 +#define _STMT_FIXUP NULL
136133 +#else
136134 +#define __STMT_FIXUP(n) _GCC_PLUGIN_CONCAT2(n, _stmt_fixup)
136135 +#define _STMT_FIXUP __STMT_FIXUP(PASS_NAME)
136136 +#endif
136137 +
136138 +#ifdef NO_FUNCTION_TRANSFORM
136139 +#define _FUNCTION_TRANSFORM NULL
136140 +#else
136141 +#define __FUNCTION_TRANSFORM(n) _GCC_PLUGIN_CONCAT2(n, _function_transform)
136142 +#define _FUNCTION_TRANSFORM __FUNCTION_TRANSFORM(PASS_NAME)
136143 +#endif
136144 +
136145 +#ifdef NO_VARIABLE_TRANSFORM
136146 +#define _VARIABLE_TRANSFORM NULL
136147 +#else
136148 +#define __VARIABLE_TRANSFORM(n) _GCC_PLUGIN_CONCAT2(n, _variable_transform)
136149 +#define _VARIABLE_TRANSFORM __VARIABLE_TRANSFORM(PASS_NAME)
136150 +#endif
136151 +
136152 +#ifdef NO_GATE
136153 +#define _GATE NULL
136154 +#define _HAS_GATE false
136155 +#else
136156 +#define __GATE(n) _GCC_PLUGIN_CONCAT2(n, _gate)
136157 +#define _GATE __GATE(PASS_NAME)
136158 +#define _HAS_GATE true
136159 +#endif
136160 +
136161 +#ifdef NO_EXECUTE
136162 +#define _EXECUTE NULL
136163 +#define _HAS_EXECUTE false
136164 +#else
136165 +#define __EXECUTE(n) _GCC_PLUGIN_CONCAT2(n, _execute)
136166 +#define _EXECUTE __EXECUTE(PASS_NAME)
136167 +#define _HAS_EXECUTE true
136168 +#endif
136169 +
136170 +#ifndef PROPERTIES_REQUIRED
136171 +#define PROPERTIES_REQUIRED 0
136172 +#endif
136173 +
136174 +#ifndef PROPERTIES_PROVIDED
136175 +#define PROPERTIES_PROVIDED 0
136176 +#endif
136177 +
136178 +#ifndef PROPERTIES_DESTROYED
136179 +#define PROPERTIES_DESTROYED 0
136180 +#endif
136181 +
136182 +#ifndef TODO_FLAGS_START
136183 +#define TODO_FLAGS_START 0
136184 +#endif
136185 +
136186 +#ifndef TODO_FLAGS_FINISH
136187 +#define TODO_FLAGS_FINISH 0
136188 +#endif
136189 +
136190 +#ifndef FUNCTION_TRANSFORM_TODO_FLAGS_START
136191 +#define FUNCTION_TRANSFORM_TODO_FLAGS_START 0
136192 +#endif
136193 +
136194 +#if BUILDING_GCC_VERSION >= 4009
136195 +namespace {
136196 +static const pass_data _PASS_NAME_PASS_DATA = {
136197 +#else
136198 +static struct ipa_opt_pass_d _PASS_NAME_PASS = {
136199 + .pass = {
136200 +#endif
136201 + .type = IPA_PASS,
136202 + .name = _PASS_NAME_NAME,
136203 +#if BUILDING_GCC_VERSION >= 4008
136204 + .optinfo_flags = OPTGROUP_NONE,
136205 +#endif
136206 +#if BUILDING_GCC_VERSION >= 5000
136207 +#elif BUILDING_GCC_VERSION == 4009
136208 + .has_gate = _HAS_GATE,
136209 + .has_execute = _HAS_EXECUTE,
136210 +#else
136211 + .gate = _GATE,
136212 + .execute = _EXECUTE,
136213 + .sub = NULL,
136214 + .next = NULL,
136215 + .static_pass_number = 0,
136216 +#endif
136217 + .tv_id = TV_NONE,
136218 + .properties_required = PROPERTIES_REQUIRED,
136219 + .properties_provided = PROPERTIES_PROVIDED,
136220 + .properties_destroyed = PROPERTIES_DESTROYED,
136221 + .todo_flags_start = TODO_FLAGS_START,
136222 + .todo_flags_finish = TODO_FLAGS_FINISH,
136223 +#if BUILDING_GCC_VERSION < 4009
136224 + },
136225 + .generate_summary = _GENERATE_SUMMARY,
136226 + .write_summary = _WRITE_SUMMARY,
136227 + .read_summary = _READ_SUMMARY,
136228 +#if BUILDING_GCC_VERSION >= 4006
136229 + .write_optimization_summary = _WRITE_OPTIMIZATION_SUMMARY,
136230 + .read_optimization_summary = _READ_OPTIMIZATION_SUMMARY,
136231 +#endif
136232 + .stmt_fixup = _STMT_FIXUP,
136233 + .function_transform_todo_flags_start = FUNCTION_TRANSFORM_TODO_FLAGS_START,
136234 + .function_transform = _FUNCTION_TRANSFORM,
136235 + .variable_transform = _VARIABLE_TRANSFORM,
136236 +#endif
136237 +};
136238 +
136239 +#if BUILDING_GCC_VERSION >= 4009
136240 +class _PASS_NAME_PASS : public ipa_opt_pass_d {
136241 +public:
136242 + _PASS_NAME_PASS() : ipa_opt_pass_d(_PASS_NAME_PASS_DATA,
136243 + g,
136244 + _GENERATE_SUMMARY,
136245 + _WRITE_SUMMARY,
136246 + _READ_SUMMARY,
136247 + _WRITE_OPTIMIZATION_SUMMARY,
136248 + _READ_OPTIMIZATION_SUMMARY,
136249 + _STMT_FIXUP,
136250 + FUNCTION_TRANSFORM_TODO_FLAGS_START,
136251 + _FUNCTION_TRANSFORM,
136252 + _VARIABLE_TRANSFORM) {}
136253 +
136254 +#ifndef NO_GATE
136255 +#if BUILDING_GCC_VERSION >= 5000
136256 + virtual bool gate(function *) { return _GATE(); }
136257 +#else
136258 + virtual bool gate(void) { return _GATE(); }
136259 +#endif
136260 +#endif
136261 +
136262 + virtual opt_pass *clone() { return new _PASS_NAME_PASS(); }
136263 +
136264 +#ifndef NO_EXECUTE
136265 +#if BUILDING_GCC_VERSION >= 5000
136266 + virtual unsigned int execute(function *) { return _EXECUTE(); }
136267 +#else
136268 + virtual unsigned int execute(void) { return _EXECUTE(); }
136269 +#endif
136270 +#endif
136271 +};
136272 +}
136273 +
136274 +opt_pass *_MAKE_PASS_NAME_PASS(void)
136275 +{
136276 + return new _PASS_NAME_PASS();
136277 +}
136278 +#else
136279 +struct opt_pass *_MAKE_PASS_NAME_PASS(void)
136280 +{
136281 + return &_PASS_NAME_PASS.pass;
136282 +}
136283 +#endif
136284 +
136285 +/* clean up user provided defines */
136286 +#undef PASS_NAME
136287 +#undef NO_GENERATE_SUMMARY
136288 +#undef NO_WRITE_SUMMARY
136289 +#undef NO_READ_SUMMARY
136290 +#undef NO_WRITE_OPTIMIZATION_SUMMARY
136291 +#undef NO_READ_OPTIMIZATION_SUMMARY
136292 +#undef NO_STMT_FIXUP
136293 +#undef NO_FUNCTION_TRANSFORM
136294 +#undef NO_VARIABLE_TRANSFORM
136295 +#undef NO_GATE
136296 +#undef NO_EXECUTE
136297 +
136298 +#undef FUNCTION_TRANSFORM_TODO_FLAGS_START
136299 +#undef PROPERTIES_DESTROYED
136300 +#undef PROPERTIES_PROVIDED
136301 +#undef PROPERTIES_REQUIRED
136302 +#undef TODO_FLAGS_FINISH
136303 +#undef TODO_FLAGS_START
136304 +
136305 +/* clean up generated defines */
136306 +#undef _EXECUTE
136307 +#undef __EXECUTE
136308 +#undef _FUNCTION_TRANSFORM
136309 +#undef __FUNCTION_TRANSFORM
136310 +#undef _GATE
136311 +#undef __GATE
136312 +#undef _GCC_PLUGIN_CONCAT2
136313 +#undef _GCC_PLUGIN_CONCAT3
136314 +#undef _GCC_PLUGIN_STRINGIFY
136315 +#undef __GCC_PLUGIN_STRINGIFY
136316 +#undef _GENERATE_SUMMARY
136317 +#undef __GENERATE_SUMMARY
136318 +#undef _HAS_EXECUTE
136319 +#undef _HAS_GATE
136320 +#undef _MAKE_PASS_NAME_PASS
136321 +#undef __MAKE_PASS_NAME_PASS
136322 +#undef _PASS_NAME_NAME
136323 +#undef _PASS_NAME_PASS
136324 +#undef __PASS_NAME_PASS
136325 +#undef _PASS_NAME_PASS_DATA
136326 +#undef __PASS_NAME_PASS_DATA
136327 +#undef _READ_OPTIMIZATION_SUMMARY
136328 +#undef __READ_OPTIMIZATION_SUMMARY
136329 +#undef _READ_SUMMARY
136330 +#undef __READ_SUMMARY
136331 +#undef _STMT_FIXUP
136332 +#undef __STMT_FIXUP
136333 +#undef _VARIABLE_TRANSFORM
136334 +#undef __VARIABLE_TRANSFORM
136335 +#undef _WRITE_OPTIMIZATION_SUMMARY
136336 +#undef __WRITE_OPTIMIZATION_SUMMARY
136337 +#undef _WRITE_SUMMARY
136338 +#undef __WRITE_SUMMARY
136339 +
136340 +#endif /* PASS_NAME */
136341 diff --git a/tools/gcc/gcc-generate-rtl-pass.h b/tools/gcc/gcc-generate-rtl-pass.h
136342 new file mode 100644
136343 index 0000000..1dc67a5
136344 --- /dev/null
136345 +++ b/tools/gcc/gcc-generate-rtl-pass.h
136346 @@ -0,0 +1,175 @@
136347 +/*
136348 + * Generator for RTL pass related boilerplate code/data
136349 + *
136350 + * Supports gcc 4.5-6
136351 + *
136352 + * Usage:
136353 + *
136354 + * 1. before inclusion define PASS_NAME
136355 + * 2. before inclusion define NO_* for unimplemented callbacks
136356 + * NO_GATE
136357 + * NO_EXECUTE
136358 + * 3. before inclusion define PROPERTIES_* and TODO_FLAGS_* to override
136359 + * the default 0 values
136360 + * 4. for convenience, all the above will be undefined after inclusion!
136361 + * 5. the only exported name is make_PASS_NAME_pass() to register with gcc
136362 + */
136363 +
136364 +#ifndef PASS_NAME
136365 +#error at least PASS_NAME must be defined
136366 +#else
136367 +#define __GCC_PLUGIN_STRINGIFY(n) #n
136368 +#define _GCC_PLUGIN_STRINGIFY(n) __GCC_PLUGIN_STRINGIFY(n)
136369 +#define _GCC_PLUGIN_CONCAT2(x, y) x ## y
136370 +#define _GCC_PLUGIN_CONCAT3(x, y, z) x ## y ## z
136371 +
136372 +#define __PASS_NAME_PASS_DATA(n) _GCC_PLUGIN_CONCAT2(n, _pass_data)
136373 +#define _PASS_NAME_PASS_DATA __PASS_NAME_PASS_DATA(PASS_NAME)
136374 +
136375 +#define __PASS_NAME_PASS(n) _GCC_PLUGIN_CONCAT2(n, _pass)
136376 +#define _PASS_NAME_PASS __PASS_NAME_PASS(PASS_NAME)
136377 +
136378 +#define _PASS_NAME_NAME _GCC_PLUGIN_STRINGIFY(PASS_NAME)
136379 +
136380 +#define __MAKE_PASS_NAME_PASS(n) _GCC_PLUGIN_CONCAT3(make_, n, _pass)
136381 +#define _MAKE_PASS_NAME_PASS __MAKE_PASS_NAME_PASS(PASS_NAME)
136382 +
136383 +#ifdef NO_GATE
136384 +#define _GATE NULL
136385 +#define _HAS_GATE false
136386 +#else
136387 +#define __GATE(n) _GCC_PLUGIN_CONCAT2(n, _gate)
136388 +#define _GATE __GATE(PASS_NAME)
136389 +#define _HAS_GATE true
136390 +#endif
136391 +
136392 +#ifdef NO_EXECUTE
136393 +#define _EXECUTE NULL
136394 +#define _HAS_EXECUTE false
136395 +#else
136396 +#define __EXECUTE(n) _GCC_PLUGIN_CONCAT2(n, _execute)
136397 +#define _EXECUTE __EXECUTE(PASS_NAME)
136398 +#define _HAS_EXECUTE true
136399 +#endif
136400 +
136401 +#ifndef PROPERTIES_REQUIRED
136402 +#define PROPERTIES_REQUIRED 0
136403 +#endif
136404 +
136405 +#ifndef PROPERTIES_PROVIDED
136406 +#define PROPERTIES_PROVIDED 0
136407 +#endif
136408 +
136409 +#ifndef PROPERTIES_DESTROYED
136410 +#define PROPERTIES_DESTROYED 0
136411 +#endif
136412 +
136413 +#ifndef TODO_FLAGS_START
136414 +#define TODO_FLAGS_START 0
136415 +#endif
136416 +
136417 +#ifndef TODO_FLAGS_FINISH
136418 +#define TODO_FLAGS_FINISH 0
136419 +#endif
136420 +
136421 +#if BUILDING_GCC_VERSION >= 4009
136422 +namespace {
136423 +static const pass_data _PASS_NAME_PASS_DATA = {
136424 +#else
136425 +static struct rtl_opt_pass _PASS_NAME_PASS = {
136426 + .pass = {
136427 +#endif
136428 + .type = RTL_PASS,
136429 + .name = _PASS_NAME_NAME,
136430 +#if BUILDING_GCC_VERSION >= 4008
136431 + .optinfo_flags = OPTGROUP_NONE,
136432 +#endif
136433 +#if BUILDING_GCC_VERSION >= 5000
136434 +#elif BUILDING_GCC_VERSION == 4009
136435 + .has_gate = _HAS_GATE,
136436 + .has_execute = _HAS_EXECUTE,
136437 +#else
136438 + .gate = _GATE,
136439 + .execute = _EXECUTE,
136440 + .sub = NULL,
136441 + .next = NULL,
136442 + .static_pass_number = 0,
136443 +#endif
136444 + .tv_id = TV_NONE,
136445 + .properties_required = PROPERTIES_REQUIRED,
136446 + .properties_provided = PROPERTIES_PROVIDED,
136447 + .properties_destroyed = PROPERTIES_DESTROYED,
136448 + .todo_flags_start = TODO_FLAGS_START,
136449 + .todo_flags_finish = TODO_FLAGS_FINISH,
136450 +#if BUILDING_GCC_VERSION < 4009
136451 + }
136452 +#endif
136453 +};
136454 +
136455 +#if BUILDING_GCC_VERSION >= 4009
136456 +class _PASS_NAME_PASS : public rtl_opt_pass {
136457 +public:
136458 + _PASS_NAME_PASS() : rtl_opt_pass(_PASS_NAME_PASS_DATA, g) {}
136459 +
136460 +#ifndef NO_GATE
136461 +#if BUILDING_GCC_VERSION >= 5000
136462 + virtual bool gate(function *) { return _GATE(); }
136463 +#else
136464 + virtual bool gate(void) { return _GATE(); }
136465 +#endif
136466 +#endif
136467 +
136468 + virtual opt_pass *clone() { return new _PASS_NAME_PASS(); }
136469 +
136470 +#ifndef NO_EXECUTE
136471 +#if BUILDING_GCC_VERSION >= 5000
136472 + virtual unsigned int execute(function *) { return _EXECUTE(); }
136473 +#else
136474 + virtual unsigned int execute(void) { return _EXECUTE(); }
136475 +#endif
136476 +#endif
136477 +};
136478 +}
136479 +
136480 +opt_pass *_MAKE_PASS_NAME_PASS(void)
136481 +{
136482 + return new _PASS_NAME_PASS();
136483 +}
136484 +#else
136485 +struct opt_pass *_MAKE_PASS_NAME_PASS(void)
136486 +{
136487 + return &_PASS_NAME_PASS.pass;
136488 +}
136489 +#endif
136490 +
136491 +/* clean up user provided defines */
136492 +#undef PASS_NAME
136493 +#undef NO_GATE
136494 +#undef NO_EXECUTE
136495 +
136496 +#undef PROPERTIES_DESTROYED
136497 +#undef PROPERTIES_PROVIDED
136498 +#undef PROPERTIES_REQUIRED
136499 +#undef TODO_FLAGS_FINISH
136500 +#undef TODO_FLAGS_START
136501 +
136502 +/* clean up generated defines */
136503 +#undef _EXECUTE
136504 +#undef __EXECUTE
136505 +#undef _GATE
136506 +#undef __GATE
136507 +#undef _GCC_PLUGIN_CONCAT2
136508 +#undef _GCC_PLUGIN_CONCAT3
136509 +#undef _GCC_PLUGIN_STRINGIFY
136510 +#undef __GCC_PLUGIN_STRINGIFY
136511 +#undef _HAS_EXECUTE
136512 +#undef _HAS_GATE
136513 +#undef _MAKE_PASS_NAME_PASS
136514 +#undef __MAKE_PASS_NAME_PASS
136515 +#undef _PASS_NAME_NAME
136516 +#undef _PASS_NAME_PASS
136517 +#undef __PASS_NAME_PASS
136518 +#undef _PASS_NAME_PASS_DATA
136519 +#undef __PASS_NAME_PASS_DATA
136520 +
136521 +#endif /* PASS_NAME */
136522 diff --git a/tools/gcc/gcc-generate-simple_ipa-pass.h b/tools/gcc/gcc-generate-simple_ipa-pass.h
136523 new file mode 100644
136524 index 0000000..a27e2b3
136525 --- /dev/null
136526 +++ b/tools/gcc/gcc-generate-simple_ipa-pass.h
136527 @@ -0,0 +1,175 @@
136528 +/*
136529 + * Generator for SIMPLE_IPA pass related boilerplate code/data
136530 + *
136531 + * Supports gcc 4.5-6
136532 + *
136533 + * Usage:
136534 + *
136535 + * 1. before inclusion define PASS_NAME
136536 + * 2. before inclusion define NO_* for unimplemented callbacks
136537 + * NO_GATE
136538 + * NO_EXECUTE
136539 + * 3. before inclusion define PROPERTIES_* and TODO_FLAGS_* to override
136540 + * the default 0 values
136541 + * 4. for convenience, all the above will be undefined after inclusion!
136542 + * 5. the only exported name is make_PASS_NAME_pass() to register with gcc
136543 + */
136544 +
136545 +#ifndef PASS_NAME
136546 +#error at least PASS_NAME must be defined
136547 +#else
136548 +#define __GCC_PLUGIN_STRINGIFY(n) #n
136549 +#define _GCC_PLUGIN_STRINGIFY(n) __GCC_PLUGIN_STRINGIFY(n)
136550 +#define _GCC_PLUGIN_CONCAT2(x, y) x ## y
136551 +#define _GCC_PLUGIN_CONCAT3(x, y, z) x ## y ## z
136552 +
136553 +#define __PASS_NAME_PASS_DATA(n) _GCC_PLUGIN_CONCAT2(n, _pass_data)
136554 +#define _PASS_NAME_PASS_DATA __PASS_NAME_PASS_DATA(PASS_NAME)
136555 +
136556 +#define __PASS_NAME_PASS(n) _GCC_PLUGIN_CONCAT2(n, _pass)
136557 +#define _PASS_NAME_PASS __PASS_NAME_PASS(PASS_NAME)
136558 +
136559 +#define _PASS_NAME_NAME _GCC_PLUGIN_STRINGIFY(PASS_NAME)
136560 +
136561 +#define __MAKE_PASS_NAME_PASS(n) _GCC_PLUGIN_CONCAT3(make_, n, _pass)
136562 +#define _MAKE_PASS_NAME_PASS __MAKE_PASS_NAME_PASS(PASS_NAME)
136563 +
136564 +#ifdef NO_GATE
136565 +#define _GATE NULL
136566 +#define _HAS_GATE false
136567 +#else
136568 +#define __GATE(n) _GCC_PLUGIN_CONCAT2(n, _gate)
136569 +#define _GATE __GATE(PASS_NAME)
136570 +#define _HAS_GATE true
136571 +#endif
136572 +
136573 +#ifdef NO_EXECUTE
136574 +#define _EXECUTE NULL
136575 +#define _HAS_EXECUTE false
136576 +#else
136577 +#define __EXECUTE(n) _GCC_PLUGIN_CONCAT2(n, _execute)
136578 +#define _EXECUTE __EXECUTE(PASS_NAME)
136579 +#define _HAS_EXECUTE true
136580 +#endif
136581 +
136582 +#ifndef PROPERTIES_REQUIRED
136583 +#define PROPERTIES_REQUIRED 0
136584 +#endif
136585 +
136586 +#ifndef PROPERTIES_PROVIDED
136587 +#define PROPERTIES_PROVIDED 0
136588 +#endif
136589 +
136590 +#ifndef PROPERTIES_DESTROYED
136591 +#define PROPERTIES_DESTROYED 0
136592 +#endif
136593 +
136594 +#ifndef TODO_FLAGS_START
136595 +#define TODO_FLAGS_START 0
136596 +#endif
136597 +
136598 +#ifndef TODO_FLAGS_FINISH
136599 +#define TODO_FLAGS_FINISH 0
136600 +#endif
136601 +
136602 +#if BUILDING_GCC_VERSION >= 4009
136603 +namespace {
136604 +static const pass_data _PASS_NAME_PASS_DATA = {
136605 +#else
136606 +static struct simple_ipa_opt_pass _PASS_NAME_PASS = {
136607 + .pass = {
136608 +#endif
136609 + .type = SIMPLE_IPA_PASS,
136610 + .name = _PASS_NAME_NAME,
136611 +#if BUILDING_GCC_VERSION >= 4008
136612 + .optinfo_flags = OPTGROUP_NONE,
136613 +#endif
136614 +#if BUILDING_GCC_VERSION >= 5000
136615 +#elif BUILDING_GCC_VERSION == 4009
136616 + .has_gate = _HAS_GATE,
136617 + .has_execute = _HAS_EXECUTE,
136618 +#else
136619 + .gate = _GATE,
136620 + .execute = _EXECUTE,
136621 + .sub = NULL,
136622 + .next = NULL,
136623 + .static_pass_number = 0,
136624 +#endif
136625 + .tv_id = TV_NONE,
136626 + .properties_required = PROPERTIES_REQUIRED,
136627 + .properties_provided = PROPERTIES_PROVIDED,
136628 + .properties_destroyed = PROPERTIES_DESTROYED,
136629 + .todo_flags_start = TODO_FLAGS_START,
136630 + .todo_flags_finish = TODO_FLAGS_FINISH,
136631 +#if BUILDING_GCC_VERSION < 4009
136632 + }
136633 +#endif
136634 +};
136635 +
136636 +#if BUILDING_GCC_VERSION >= 4009
136637 +class _PASS_NAME_PASS : public simple_ipa_opt_pass {
136638 +public:
136639 + _PASS_NAME_PASS() : simple_ipa_opt_pass(_PASS_NAME_PASS_DATA, g) {}
136640 +
136641 +#ifndef NO_GATE
136642 +#if BUILDING_GCC_VERSION >= 5000
136643 + virtual bool gate(function *) { return _GATE(); }
136644 +#else
136645 + virtual bool gate(void) { return _GATE(); }
136646 +#endif
136647 +#endif
136648 +
136649 + virtual opt_pass *clone() { return new _PASS_NAME_PASS(); }
136650 +
136651 +#ifndef NO_EXECUTE
136652 +#if BUILDING_GCC_VERSION >= 5000
136653 + virtual unsigned int execute(function *) { return _EXECUTE(); }
136654 +#else
136655 + virtual unsigned int execute(void) { return _EXECUTE(); }
136656 +#endif
136657 +#endif
136658 +};
136659 +}
136660 +
136661 +opt_pass *_MAKE_PASS_NAME_PASS(void)
136662 +{
136663 + return new _PASS_NAME_PASS();
136664 +}
136665 +#else
136666 +struct opt_pass *_MAKE_PASS_NAME_PASS(void)
136667 +{
136668 + return &_PASS_NAME_PASS.pass;
136669 +}
136670 +#endif
136671 +
136672 +/* clean up user provided defines */
136673 +#undef PASS_NAME
136674 +#undef NO_GATE
136675 +#undef NO_EXECUTE
136676 +
136677 +#undef PROPERTIES_DESTROYED
136678 +#undef PROPERTIES_PROVIDED
136679 +#undef PROPERTIES_REQUIRED
136680 +#undef TODO_FLAGS_FINISH
136681 +#undef TODO_FLAGS_START
136682 +
136683 +/* clean up generated defines */
136684 +#undef _EXECUTE
136685 +#undef __EXECUTE
136686 +#undef _GATE
136687 +#undef __GATE
136688 +#undef _GCC_PLUGIN_CONCAT2
136689 +#undef _GCC_PLUGIN_CONCAT3
136690 +#undef _GCC_PLUGIN_STRINGIFY
136691 +#undef __GCC_PLUGIN_STRINGIFY
136692 +#undef _HAS_EXECUTE
136693 +#undef _HAS_GATE
136694 +#undef _MAKE_PASS_NAME_PASS
136695 +#undef __MAKE_PASS_NAME_PASS
136696 +#undef _PASS_NAME_NAME
136697 +#undef _PASS_NAME_PASS
136698 +#undef __PASS_NAME_PASS
136699 +#undef _PASS_NAME_PASS_DATA
136700 +#undef __PASS_NAME_PASS_DATA
136701 +
136702 +#endif /* PASS_NAME */
136703 diff --git a/tools/gcc/gen-random-seed.sh b/tools/gcc/gen-random-seed.sh
136704 new file mode 100644
136705 index 0000000..7514850
136706 --- /dev/null
136707 +++ b/tools/gcc/gen-random-seed.sh
136708 @@ -0,0 +1,8 @@
136709 +#!/bin/sh
136710 +
136711 +if [ ! -f "$1" ]; then
136712 + SEED=`od -A n -t x8 -N 32 /dev/urandom | tr -d ' \n'`
136713 + echo "const char *randstruct_seed = \"$SEED\";" > "$1"
136714 + HASH=`echo -n "$SEED" | sha256sum | cut -d" " -f1 | tr -d ' \n'`
136715 + echo "#define RANDSTRUCT_HASHED_SEED \"$HASH\"" > "$2"
136716 +fi
136717 diff --git a/tools/gcc/initify_plugin.c b/tools/gcc/initify_plugin.c
136718 new file mode 100644
136719 index 0000000..bf3eb6c
136720 --- /dev/null
136721 +++ b/tools/gcc/initify_plugin.c
136722 @@ -0,0 +1,536 @@
136723 +/*
136724 + * Copyright 2015-2016 by Emese Revfy <re.emese@gmail.com>
136725 + * Licensed under the GPL v2, or (at your option) v3
136726 + *
136727 + * Homepage:
136728 + * https://github.com/ephox-gcc-plugins/initify
136729 + *
136730 + * Move string constants (__func__ and function string arguments marked by the nocapture attribute)
136731 + * only referenced in __init/__exit functions to __initconst/__exitconst sections.
136732 + *
136733 + * Usage:
136734 + * $ make
136735 + * $ make run
136736 + */
136737 +
136738 +#include "gcc-common.h"
136739 +
136740 +int plugin_is_GPL_compatible;
136741 +
136742 +static struct plugin_info initify_plugin_info = {
136743 + .version = "20160306",
136744 + .help = "initify_plugin\n",
136745 +};
136746 +
136747 +/* nocapture attribute:
136748 + * * to mark nocapture function arguments. If used on a vararg argument it applies to all of them
136749 + * that have no other uses.
136750 + * * attribute value 0 is ignored to allow reusing print attribute arguments
136751 + */
136752 +static tree handle_nocapture_attribute(tree *node, tree __unused name, tree args, int __unused flags, bool *no_add_attrs)
136753 +{
136754 + tree orig_attr, arg;
136755 +
136756 + *no_add_attrs = true;
136757 + switch (TREE_CODE(*node)) {
136758 + case FUNCTION_DECL:
136759 + case FUNCTION_TYPE:
136760 + case METHOD_TYPE:
136761 + break;
136762 + case TYPE_DECL: {
136763 + const_tree fntype = TREE_TYPE(*node);
136764 +
136765 + if (TREE_CODE(fntype) == POINTER_TYPE)
136766 + fntype = TREE_TYPE(fntype);
136767 + if (TREE_CODE(fntype) == FUNCTION_TYPE || TREE_CODE(fntype) == METHOD_TYPE)
136768 + break;
136769 + // FALLTHROUGH
136770 + }
136771 + default:
136772 + debug_tree(*node);
136773 + error("%s: %qE attribute only applies to functions", __func__, name);
136774 + return NULL_TREE;
136775 + }
136776 +
136777 + for (arg = args; arg; arg = TREE_CHAIN(arg)) {
136778 + tree position = TREE_VALUE(arg);
136779 +
136780 + if (TREE_CODE(position) != INTEGER_CST) {
136781 + error("%qE parameter of the %qE attribute isn't an integer (fn: %qE)", position, name, *node);
136782 + return NULL_TREE;
136783 + }
136784 +
136785 + if (tree_int_cst_lt(position, integer_minus_one_node)) {
136786 + error("%qE parameter of the %qE attribute less than 0 (fn: %qE)", position, name, *node);
136787 + return NULL_TREE;
136788 + }
136789 + }
136790 +
136791 + orig_attr = lookup_attribute("nocapture", DECL_ATTRIBUTES(*node));
136792 + if (orig_attr)
136793 + chainon(TREE_VALUE(orig_attr), args);
136794 + else
136795 + *no_add_attrs = false;
136796 +
136797 + return NULL_TREE;
136798 +}
136799 +
136800 +static struct attribute_spec nocapture_attr = {
136801 + .name = "nocapture",
136802 + .min_length = 1,
136803 + .max_length = -1,
136804 + .decl_required = true,
136805 + .type_required = false,
136806 + .function_type_required = false,
136807 + .handler = handle_nocapture_attribute,
136808 +#if BUILDING_GCC_VERSION >= 4007
136809 + .affects_type_identity = false
136810 +#endif
136811 +};
136812 +
136813 +static void register_attributes(void __unused *event_data, void __unused *data)
136814 +{
136815 + register_attribute(&nocapture_attr);
136816 +}
136817 +
136818 +static const char *get_init_exit_section(const_tree decl)
136819 +{
136820 + const_tree section;
136821 + tree attr_value;
136822 +
136823 + section = lookup_attribute("section", DECL_ATTRIBUTES(decl));
136824 + if (!section)
136825 + return NULL;
136826 +
136827 + gcc_assert(TREE_VALUE(section));
136828 + for (attr_value = TREE_VALUE(section); attr_value; attr_value = TREE_CHAIN(attr_value)) {
136829 + const char *str = TREE_STRING_POINTER(TREE_VALUE(attr_value));
136830 +
136831 + if (!strncmp(str, ".init.", 6))
136832 + return str;
136833 + if (!strncmp(str, ".exit.", 6))
136834 + return str;
136835 + }
136836 +
136837 + return NULL;
136838 +}
136839 +
136840 +static tree get_string_cst(tree var)
136841 +{
136842 + if (var == NULL_TREE)
136843 + return NULL_TREE;
136844 +
136845 + if (TREE_CODE(var) == STRING_CST)
136846 + return var;
136847 +
136848 + switch (TREE_CODE_CLASS(TREE_CODE(var))) {
136849 + case tcc_expression:
136850 + case tcc_reference: {
136851 + int i;
136852 +
136853 + for (i = 0; i < TREE_OPERAND_LENGTH(var); i++) {
136854 + tree ret = get_string_cst(TREE_OPERAND(var, i));
136855 + if (ret != NULL_TREE)
136856 + return ret;
136857 + }
136858 + break;
136859 + }
136860 + default:
136861 + break;
136862 + }
136863 + return NULL_TREE;
136864 +}
136865 +
136866 +static bool set_init_exit_section(tree decl, bool initexit)
136867 +{
136868 + const char *str;
136869 +
136870 + gcc_assert(DECL_P(decl));
136871 +
136872 + str = get_init_exit_section(decl);
136873 + if (str)
136874 + return false;
136875 +
136876 + if (initexit)
136877 + set_decl_section_name(decl, ".init.rodata.str");
136878 + else
136879 + set_decl_section_name(decl, ".exit.rodata.str");
136880 + return true;
136881 +}
136882 +
136883 +static bool is_syscall(const_tree fn)
136884 +{
136885 + if (!strncmp(DECL_NAME_POINTER(fn), "sys_", 4))
136886 + return true;
136887 +
136888 + if (!strncmp(DECL_NAME_POINTER(fn), "sys32_", 6))
136889 + return true;
136890 +
136891 + if (!strncmp(DECL_NAME_POINTER(fn), "compat_sys_", 11))
136892 + return true;
136893 +
136894 + return false;
136895 +}
136896 +
136897 +static bool is_nocapture_param(const gcall *stmt, int fn_arg_count)
136898 +{
136899 + const_tree attr, attr_val;
136900 + int fntype_arg_len;
136901 + const_tree fndecl = gimple_call_fndecl(stmt);
136902 +
136903 + gcc_assert(DECL_ABSTRACT_ORIGIN(fndecl) == NULL_TREE);
136904 +
136905 + if (is_syscall(fndecl))
136906 + return true;
136907 +
136908 + fntype_arg_len = type_num_arguments(TREE_TYPE(fndecl));
136909 + attr = lookup_attribute("nocapture", DECL_ATTRIBUTES(fndecl));
136910 + if (attr == NULL_TREE)
136911 + return false;
136912 +
136913 + for (attr_val = TREE_VALUE(attr); attr_val; attr_val = TREE_CHAIN(attr_val)) {
136914 + int attr_arg_val = (int)tree_to_shwi(TREE_VALUE(attr_val));
136915 +
136916 + if (attr_arg_val == -1)
136917 + return true;
136918 + if (attr_arg_val == fn_arg_count)
136919 + return true;
136920 + if (attr_arg_val > fntype_arg_len && fn_arg_count >= attr_arg_val)
136921 + return true;
136922 + }
136923 +
136924 + return false;
136925 +}
136926 +
136927 +static bool is_same_vardecl(const_tree op, const_tree vardecl)
136928 +{
136929 + const_tree decl;
136930 +
136931 + if (op == vardecl)
136932 + return true;
136933 + if (TREE_CODE(op) == SSA_NAME)
136934 + decl = SSA_NAME_VAR(op);
136935 + else
136936 + decl = op;
136937 + if (decl == NULL_TREE || !DECL_P(decl))
136938 + return false;
136939 +
136940 + return DECL_NAME(decl) && !strcmp(DECL_NAME_POINTER(decl), DECL_NAME_POINTER(vardecl));
136941 +}
136942 +
136943 +static bool search_same_vardecl(const_tree value, const_tree vardecl)
136944 +{
136945 + int i;
136946 +
136947 + for (i = 0; i < TREE_OPERAND_LENGTH(value); i++) {
136948 + const_tree op = TREE_OPERAND(value, i);
136949 +
136950 + if (op == NULL_TREE)
136951 + continue;
136952 + if (is_same_vardecl(op, vardecl))
136953 + return true;
136954 + if (search_same_vardecl(op, vardecl))
136955 + return true;
136956 + }
136957 + return false;
136958 +}
136959 +
136960 +static bool check_constructor(const_tree constructor, const_tree vardecl)
136961 +{
136962 + unsigned HOST_WIDE_INT cnt __unused;
136963 + tree value;
136964 +
136965 + FOR_EACH_CONSTRUCTOR_VALUE(CONSTRUCTOR_ELTS(constructor), cnt, value) {
136966 + if (TREE_CODE(value) == CONSTRUCTOR)
136967 + return check_constructor(value, vardecl);
136968 + if (is_gimple_constant(value))
136969 + continue;
136970 +
136971 + gcc_assert(TREE_OPERAND_LENGTH(value) > 0);
136972 + if (search_same_vardecl(value, vardecl))
136973 + return true;
136974 + }
136975 + return false;
136976 +}
136977 +
136978 +static bool compare_ops(const_tree vardecl, tree op)
136979 +{
136980 + if (TREE_CODE(op) == TREE_LIST)
136981 + op = TREE_VALUE(op);
136982 + if (TREE_CODE(op) == SSA_NAME)
136983 + op = SSA_NAME_VAR(op);
136984 + if (op == NULL_TREE)
136985 + return false;
136986 +
136987 + switch (TREE_CODE_CLASS(TREE_CODE(op))) {
136988 + case tcc_declaration:
136989 + return is_same_vardecl(op, vardecl);
136990 + case tcc_exceptional:
136991 + return check_constructor(op, vardecl);
136992 + case tcc_constant:
136993 + case tcc_statement:
136994 + case tcc_comparison:
136995 + return false;
136996 + default:
136997 + break;
136998 + }
136999 +
137000 + gcc_assert(TREE_OPERAND_LENGTH(op) > 0);
137001 + return search_same_vardecl(op, vardecl);
137002 +}
137003 +
137004 +static bool search_capture_use(const_tree vardecl, gimple stmt)
137005 +{
137006 + unsigned int i;
137007 +
137008 + for (i = 0; i < gimple_num_ops(stmt); i++) {
137009 + unsigned int arg_count;
137010 + const_tree fndecl;
137011 + tree op = *(gimple_op_ptr(stmt, i));
137012 +
137013 + if (op == NULL_TREE)
137014 + continue;
137015 + if (is_gimple_constant(op))
137016 + continue;
137017 +
137018 + if (!compare_ops(vardecl, op))
137019 + continue;
137020 +
137021 + if (!is_gimple_call(stmt))
137022 + return true;
137023 +
137024 + // return, fndecl
137025 + gcc_assert(i >= 3);
137026 + arg_count = i - 2;
137027 + if (is_nocapture_param(as_a_const_gcall(stmt), (int)arg_count))
137028 + continue;
137029 +
137030 + fndecl = gimple_call_fndecl(stmt);
137031 + gcc_assert(fndecl != NULL_TREE);
137032 +// inform(gimple_location(stmt), "nocapture attribute is missing (fn: %E, arg: %u)\n", fndecl, arg_count);
137033 + return true;
137034 +
137035 + }
137036 + return false;
137037 +}
137038 +
137039 +static bool is_in_capture_init(const_tree vardecl)
137040 +{
137041 + unsigned int i __unused;
137042 + tree var;
137043 +
137044 + FOR_EACH_LOCAL_DECL(cfun, i, var) {
137045 + const_tree initial = DECL_INITIAL(var);
137046 +
137047 + if (DECL_EXTERNAL(var))
137048 + continue;
137049 + if (initial == NULL_TREE)
137050 + continue;
137051 + if (TREE_CODE(initial) != CONSTRUCTOR)
137052 + continue;
137053 +
137054 + gcc_assert(TREE_CODE(TREE_TYPE(var)) == RECORD_TYPE || DECL_P(var));
137055 + if (check_constructor(initial, vardecl))
137056 + return true;
137057 + }
137058 + return false;
137059 +}
137060 +
137061 +static bool has_capture_use_local_var(const_tree vardecl)
137062 +{
137063 + basic_block bb;
137064 +
137065 + if (is_in_capture_init(vardecl))
137066 + return true;
137067 +
137068 + FOR_EACH_BB_FN(bb, cfun) {
137069 + gimple_stmt_iterator gsi;
137070 +
137071 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
137072 + if (search_capture_use(vardecl, gsi_stmt(gsi)))
137073 + return true;
137074 + }
137075 + }
137076 +
137077 + return false;
137078 +}
137079 +
137080 +static void search_local_strs(bool initexit)
137081 +{
137082 + unsigned int i __unused;
137083 + tree var;
137084 +
137085 + FOR_EACH_LOCAL_DECL(cfun, i, var) {
137086 + tree str, init_val = DECL_INITIAL(var);
137087 +
137088 + if (init_val == NULL_TREE || init_val == error_mark_node)
137089 + continue;
137090 + // !!! str local vars
137091 + if (strcmp(DECL_NAME_POINTER(var), "__func__"))
137092 + continue;
137093 +
137094 + if (has_capture_use_local_var(var))
137095 + continue;
137096 +
137097 + str = get_string_cst(init_val);
137098 + gcc_assert(str);
137099 +
137100 + if (set_init_exit_section(var, initexit)) {
137101 +// inform(DECL_SOURCE_LOCATION(var), "initified local var: %s: %s", DECL_NAME_POINTER(current_function_decl), TREE_STRING_POINTER(str));
137102 + }
137103 + }
137104 +}
137105 +
137106 +static tree create_tmp_assign(gcall *stmt, unsigned int num)
137107 +{
137108 + tree str, decl, arg = gimple_call_arg(stmt, num);
137109 +
137110 + str = get_string_cst(arg);
137111 + decl = build_decl(DECL_SOURCE_LOCATION(current_function_decl), VAR_DECL, create_tmp_var_name("cicus"), TREE_TYPE(str));
137112 +
137113 + DECL_INITIAL(decl) = str;
137114 + DECL_CONTEXT(decl) = current_function_decl;
137115 + DECL_ARTIFICIAL(decl) = 1;
137116 +
137117 + TREE_STATIC(decl) = 1;
137118 + TREE_READONLY(decl) = 1;
137119 + TREE_ADDRESSABLE(decl) = 1;
137120 + TREE_USED(decl) = 1;
137121 +
137122 + add_referenced_var(decl);
137123 + add_local_decl(cfun, decl);
137124 +
137125 + varpool_add_new_variable(decl);
137126 + varpool_mark_needed_node(varpool_node(decl));
137127 +
137128 + DECL_CHAIN(decl) = BLOCK_VARS(DECL_INITIAL(current_function_decl));
137129 + BLOCK_VARS(DECL_INITIAL (current_function_decl)) = decl;
137130 +
137131 + decl = build_fold_addr_expr_loc(DECL_SOURCE_LOCATION(current_function_decl), decl);
137132 + gimple_call_set_arg(stmt, num, decl);
137133 + update_stmt(stmt);
137134 +
137135 + return TREE_OPERAND(decl, 0);
137136 +}
137137 +
137138 +static void search_str_param(gcall *stmt, bool initexit)
137139 +{
137140 + unsigned int num;
137141 +
137142 + for (num = 0; num < gimple_call_num_args(stmt); num++) {
137143 + tree var, str, arg = gimple_call_arg(stmt, num);
137144 +
137145 + str = get_string_cst(arg);
137146 + if (str == NULL_TREE)
137147 + continue;
137148 +
137149 + if (!is_nocapture_param(stmt, num + 1))
137150 + continue;
137151 +
137152 + var = create_tmp_assign(stmt, num);
137153 + if (set_init_exit_section(var, initexit)) {
137154 +// inform(gimple_location(stmt), "initified function arg: %E: [%E]", current_function_decl, str);
137155 + }
137156 + }
137157 +}
137158 +
137159 +static bool has_nocapture_param(const gcall *stmt)
137160 +{
137161 + const_tree attr, fndecl = gimple_call_fndecl(stmt);
137162 +
137163 + if (fndecl == NULL_TREE)
137164 + return false;
137165 +
137166 + if (is_syscall(fndecl))
137167 + return true;
137168 +
137169 + attr = lookup_attribute("nocapture", DECL_ATTRIBUTES(fndecl));
137170 + return attr != NULL_TREE;
137171 +}
137172 +
137173 +static void search_const_strs(bool initexit)
137174 +{
137175 + basic_block bb;
137176 +
137177 + FOR_EACH_BB_FN(bb, cfun) {
137178 + gimple_stmt_iterator gsi;
137179 +
137180 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
137181 + gcall *call_stmt;
137182 + gimple stmt = gsi_stmt(gsi);
137183 +
137184 + if (!is_gimple_call(stmt))
137185 + continue;
137186 +
137187 + call_stmt = as_a_gcall(stmt);
137188 + if (has_nocapture_param(call_stmt))
137189 + search_str_param(call_stmt, initexit);
137190 + }
137191 + }
137192 +}
137193 +
137194 +static unsigned int initify_execute(void)
137195 +{
137196 + bool initexit;
137197 + const char *section = get_init_exit_section(current_function_decl);
137198 +
137199 + if (!section)
137200 + return 0;
137201 +
137202 + initexit = !strncmp(section, ".init.", 6);
137203 + search_local_strs(initexit);
137204 + search_const_strs(initexit);
137205 +
137206 + return 0;
137207 +}
137208 +
137209 +#define PASS_NAME initify
137210 +
137211 +#define NO_GATE
137212 +#define 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
137213 +
137214 +#include "gcc-generate-gimple-pass.h"
137215 +
137216 +static unsigned int (*old_section_type_flags)(tree decl, const char *name, int reloc);
137217 +
137218 +static unsigned int initify_section_type_flags(tree decl, const char *name, int reloc)
137219 +{
137220 + if (!strcmp(name, ".init.rodata.str") || !strcmp(name, ".exit.rodata.str")) {
137221 + gcc_assert(TREE_CODE(decl) == VAR_DECL);
137222 + gcc_assert(DECL_INITIAL(decl));
137223 + gcc_assert(TREE_CODE(DECL_INITIAL(decl)) == STRING_CST);
137224 +
137225 + return 1 | SECTION_MERGE | SECTION_STRINGS;
137226 + }
137227 +
137228 + return old_section_type_flags(decl, name, reloc);
137229 +}
137230 +
137231 +static void initify_start_unit(void __unused *gcc_data, void __unused *user_data)
137232 +{
137233 + old_section_type_flags = targetm.section_type_flags;
137234 + targetm.section_type_flags = initify_section_type_flags;
137235 +}
137236 +
137237 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
137238 +{
137239 + const char * const plugin_name = plugin_info->base_name;
137240 + struct register_pass_info initify_pass_info;
137241 +
137242 + initify_pass_info.pass = make_initify_pass();
137243 + initify_pass_info.reference_pass_name = "nrv";
137244 + initify_pass_info.ref_pass_instance_number = 1;
137245 + initify_pass_info.pos_op = PASS_POS_INSERT_AFTER;
137246 +
137247 + if (!plugin_default_version_check(version, &gcc_version)) {
137248 + error(G_("incompatible gcc/plugin versions"));
137249 + return 1;
137250 + }
137251 +
137252 + register_callback(plugin_name, PLUGIN_INFO, NULL, &initify_plugin_info);
137253 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &initify_pass_info);
137254 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
137255 + register_callback(plugin_name, PLUGIN_START_UNIT, initify_start_unit, NULL);
137256 +
137257 + return 0;
137258 +}
137259 diff --git a/tools/gcc/kallocstat_plugin.c b/tools/gcc/kallocstat_plugin.c
137260 new file mode 100644
137261 index 0000000..30ecc9a
137262 --- /dev/null
137263 +++ b/tools/gcc/kallocstat_plugin.c
137264 @@ -0,0 +1,135 @@
137265 +/*
137266 + * Copyright 2011-2016 by the PaX Team <pageexec@freemail.hu>
137267 + * Licensed under the GPL v2
137268 + *
137269 + * Note: the choice of the license means that the compilation process is
137270 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
137271 + * but for the kernel it doesn't matter since it doesn't link against
137272 + * any of the gcc libraries
137273 + *
137274 + * gcc plugin to find the distribution of k*alloc sizes
137275 + *
137276 + * TODO:
137277 + *
137278 + * BUGS:
137279 + * - none known
137280 + */
137281 +
137282 +#include "gcc-common.h"
137283 +
137284 +int plugin_is_GPL_compatible;
137285 +
137286 +static struct plugin_info kallocstat_plugin_info = {
137287 + .version = "201602181345",
137288 + .help = NULL
137289 +};
137290 +
137291 +static const char * const kalloc_functions[] = {
137292 + "__kmalloc",
137293 + "kmalloc",
137294 + "kmalloc_large",
137295 + "kmalloc_node",
137296 + "kmalloc_order",
137297 + "kmalloc_order_trace",
137298 + "kmalloc_slab",
137299 + "kzalloc",
137300 + "kzalloc_node",
137301 +};
137302 +
137303 +static bool is_kalloc(const char *fnname)
137304 +{
137305 + size_t i;
137306 +
137307 + for (i = 0; i < ARRAY_SIZE(kalloc_functions); i++)
137308 + if (!strcmp(fnname, kalloc_functions[i]))
137309 + return true;
137310 + return false;
137311 +}
137312 +
137313 +static unsigned int kallocstat_execute(void)
137314 +{
137315 + basic_block bb;
137316 +
137317 + // 1. loop through BBs and GIMPLE statements
137318 + FOR_EACH_BB_FN(bb, cfun) {
137319 + gimple_stmt_iterator gsi;
137320 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
137321 + // gimple match:
137322 + tree fndecl, size;
137323 + gimple stmt;
137324 + const char *fnname;
137325 +
137326 + // is it a call
137327 + stmt = gsi_stmt(gsi);
137328 + if (!is_gimple_call(stmt))
137329 + continue;
137330 + fndecl = gimple_call_fndecl(stmt);
137331 + if (fndecl == NULL_TREE)
137332 + continue;
137333 + if (TREE_CODE(fndecl) != FUNCTION_DECL)
137334 + continue;
137335 +
137336 + // is it a call to k*alloc
137337 + fnname = DECL_NAME_POINTER(fndecl);
137338 + if (!is_kalloc(fnname))
137339 + continue;
137340 +
137341 + // is the size arg const or the result of a simple const assignment
137342 + size = gimple_call_arg(stmt, 0);
137343 + while (true) {
137344 + expanded_location xloc;
137345 + size_t size_val;
137346 +
137347 + if (TREE_CONSTANT(size)) {
137348 + xloc = expand_location(gimple_location(stmt));
137349 + if (!xloc.file)
137350 + xloc = expand_location(DECL_SOURCE_LOCATION(current_function_decl));
137351 + size_val = TREE_INT_CST_LOW(size);
137352 + fprintf(stderr, "kallocsize: %8zu %8zx %s %s:%u\n", size_val, size_val, fnname, xloc.file, xloc.line);
137353 + break;
137354 + }
137355 +
137356 + if (TREE_CODE(size) != SSA_NAME)
137357 + break;
137358 + stmt = SSA_NAME_DEF_STMT(size);
137359 +//debug_gimple_stmt(stmt);
137360 +//debug_tree(size);
137361 + if (!stmt || !is_gimple_assign(stmt))
137362 + break;
137363 + if (gimple_num_ops(stmt) != 2)
137364 + break;
137365 + size = gimple_assign_rhs1(stmt);
137366 + }
137367 +//print_gimple_stmt(stderr, call_stmt, 0, TDF_LINENO);
137368 +//debug_tree(gimple_call_fn(call_stmt));
137369 +//print_node(stderr, "pax", fndecl, 4);
137370 + }
137371 + }
137372 +
137373 + return 0;
137374 +}
137375 +
137376 +#define PASS_NAME kallocstat
137377 +#define NO_GATE
137378 +#include "gcc-generate-gimple-pass.h"
137379 +
137380 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
137381 +{
137382 + const char * const plugin_name = plugin_info->base_name;
137383 + struct register_pass_info kallocstat_pass_info;
137384 +
137385 + kallocstat_pass_info.pass = make_kallocstat_pass();
137386 + kallocstat_pass_info.reference_pass_name = "ssa";
137387 + kallocstat_pass_info.ref_pass_instance_number = 1;
137388 + kallocstat_pass_info.pos_op = PASS_POS_INSERT_AFTER;
137389 +
137390 + if (!plugin_default_version_check(version, &gcc_version)) {
137391 + error(G_("incompatible gcc/plugin versions"));
137392 + return 1;
137393 + }
137394 +
137395 + register_callback(plugin_name, PLUGIN_INFO, NULL, &kallocstat_plugin_info);
137396 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &kallocstat_pass_info);
137397 +
137398 + return 0;
137399 +}
137400 diff --git a/tools/gcc/kernexec_plugin.c b/tools/gcc/kernexec_plugin.c
137401 new file mode 100644
137402 index 0000000..5598420
137403 --- /dev/null
137404 +++ b/tools/gcc/kernexec_plugin.c
137405 @@ -0,0 +1,407 @@
137406 +/*
137407 + * Copyright 2011-2016 by the PaX Team <pageexec@freemail.hu>
137408 + * Licensed under the GPL v2
137409 + *
137410 + * Note: the choice of the license means that the compilation process is
137411 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
137412 + * but for the kernel it doesn't matter since it doesn't link against
137413 + * any of the gcc libraries
137414 + *
137415 + * gcc plugin to make KERNEXEC/amd64 almost as good as it is on i386
137416 + *
137417 + * TODO:
137418 + *
137419 + * BUGS:
137420 + * - none known
137421 + */
137422 +
137423 +#include "gcc-common.h"
137424 +
137425 +int plugin_is_GPL_compatible;
137426 +
137427 +static struct plugin_info kernexec_plugin_info = {
137428 + .version = "201602181345",
137429 + .help = "method=[bts|or]\tinstrumentation method\n"
137430 +};
137431 +
137432 +static void (*kernexec_instrument_fptr)(gimple_stmt_iterator *);
137433 +static void (*kernexec_instrument_retaddr)(rtx);
137434 +
137435 +/*
137436 + * add special KERNEXEC instrumentation: reload %r12 after it has been clobbered
137437 + */
137438 +static void kernexec_reload_fptr_mask(gimple_stmt_iterator *gsi)
137439 +{
137440 + gimple stmt;
137441 + gasm *asm_movabs_stmt;
137442 +
137443 + // build asm volatile("movabs $0x8000000000000000, %%r12\n\t" : : : );
137444 + stmt = gimple_build_asm_vec("movabs $0x8000000000000000, %%r12\n\t", NULL, NULL, NULL, NULL);
137445 + asm_movabs_stmt = as_a_gasm(stmt);
137446 + gimple_asm_set_volatile(asm_movabs_stmt, true);
137447 + gsi_insert_after(gsi, asm_movabs_stmt, GSI_CONTINUE_LINKING);
137448 + update_stmt(asm_movabs_stmt);
137449 +}
137450 +
137451 +/*
137452 + * find all asm() stmts that clobber r12 and add a reload of r12
137453 + */
137454 +static unsigned int kernexec_reload_execute(void)
137455 +{
137456 + basic_block bb;
137457 +
137458 + // 1. loop through BBs and GIMPLE statements
137459 + FOR_EACH_BB_FN(bb, cfun) {
137460 + gimple_stmt_iterator gsi;
137461 +
137462 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
137463 + // gimple match: __asm__ ("" : : : "r12");
137464 + gimple stmt;
137465 + gasm *asm_stmt;
137466 + size_t nclobbers;
137467 +
137468 + // is it an asm ...
137469 + stmt = gsi_stmt(gsi);
137470 + if (gimple_code(stmt) != GIMPLE_ASM)
137471 + continue;
137472 +
137473 + asm_stmt = as_a_gasm(stmt);
137474 +
137475 + // ... clobbering r12
137476 + nclobbers = gimple_asm_nclobbers(asm_stmt);
137477 + while (nclobbers--) {
137478 + tree op = gimple_asm_clobber_op(asm_stmt, nclobbers);
137479 + if (strcmp(TREE_STRING_POINTER(TREE_VALUE(op)), "r12"))
137480 + continue;
137481 + kernexec_reload_fptr_mask(&gsi);
137482 +//print_gimple_stmt(stderr, asm_stmt, 0, TDF_LINENO);
137483 + break;
137484 + }
137485 + }
137486 + }
137487 +
137488 + return 0;
137489 +}
137490 +
137491 +/*
137492 + * add special KERNEXEC instrumentation: force MSB of fptr to 1, which will produce
137493 + * a non-canonical address from a userland ptr and will just trigger a GPF on dereference
137494 + */
137495 +static void kernexec_instrument_fptr_bts(gimple_stmt_iterator *gsi)
137496 +{
137497 + gimple assign_intptr, assign_new_fptr;
137498 + gcall *call_stmt;
137499 + tree intptr, orptr, old_fptr, new_fptr, kernexec_mask;
137500 +
137501 + call_stmt = as_a_gcall(gsi_stmt(*gsi));
137502 + old_fptr = gimple_call_fn(call_stmt);
137503 +
137504 + // create temporary unsigned long variable used for bitops and cast fptr to it
137505 + intptr = create_tmp_var(long_unsigned_type_node, "kernexec_bts");
137506 + add_referenced_var(intptr);
137507 + intptr = make_ssa_name(intptr, NULL);
137508 + assign_intptr = gimple_build_assign(intptr, fold_convert(long_unsigned_type_node, old_fptr));
137509 + SSA_NAME_DEF_STMT(intptr) = assign_intptr;
137510 + gsi_insert_before(gsi, assign_intptr, GSI_SAME_STMT);
137511 + update_stmt(assign_intptr);
137512 +
137513 + // apply logical or to temporary unsigned long and bitmask
137514 + kernexec_mask = build_int_cstu(long_long_unsigned_type_node, 0x8000000000000000LL);
137515 +// kernexec_mask = build_int_cstu(long_long_unsigned_type_node, 0xffffffff80000000LL);
137516 + orptr = fold_build2(BIT_IOR_EXPR, long_long_unsigned_type_node, intptr, kernexec_mask);
137517 + intptr = make_ssa_name(SSA_NAME_VAR(intptr), NULL);
137518 + assign_intptr = gimple_build_assign(intptr, orptr);
137519 + SSA_NAME_DEF_STMT(intptr) = assign_intptr;
137520 + gsi_insert_before(gsi, assign_intptr, GSI_SAME_STMT);
137521 + update_stmt(assign_intptr);
137522 +
137523 + // cast temporary unsigned long back to a temporary fptr variable
137524 + new_fptr = create_tmp_var(TREE_TYPE(old_fptr), "kernexec_fptr");
137525 + add_referenced_var(new_fptr);
137526 + new_fptr = make_ssa_name(new_fptr, NULL);
137527 + assign_new_fptr = gimple_build_assign(new_fptr, fold_convert(TREE_TYPE(old_fptr), intptr));
137528 + SSA_NAME_DEF_STMT(new_fptr) = assign_new_fptr;
137529 + gsi_insert_before(gsi, assign_new_fptr, GSI_SAME_STMT);
137530 + update_stmt(assign_new_fptr);
137531 +
137532 + // replace call stmt fn with the new fptr
137533 + gimple_call_set_fn(call_stmt, new_fptr);
137534 + update_stmt(call_stmt);
137535 +}
137536 +
137537 +static void kernexec_instrument_fptr_or(gimple_stmt_iterator *gsi)
137538 +{
137539 + gimple stmt;
137540 + gasm *asm_or_stmt;
137541 + gcall *call_stmt;
137542 + tree old_fptr, new_fptr, input, output;
137543 +#if BUILDING_GCC_VERSION <= 4007
137544 + VEC(tree, gc) *inputs = NULL;
137545 + VEC(tree, gc) *outputs = NULL;
137546 +#else
137547 + vec<tree, va_gc> *inputs = NULL;
137548 + vec<tree, va_gc> *outputs = NULL;
137549 +#endif
137550 +
137551 + call_stmt = as_a_gcall(gsi_stmt(*gsi));
137552 + old_fptr = gimple_call_fn(call_stmt);
137553 +
137554 + // create temporary fptr variable
137555 + new_fptr = create_tmp_var(TREE_TYPE(old_fptr), "kernexec_or");
137556 + add_referenced_var(new_fptr);
137557 + new_fptr = make_ssa_name(new_fptr, NULL);
137558 +
137559 + // build asm volatile("orq %%r12, %0\n\t" : "=r"(new_fptr) : "0"(old_fptr));
137560 + input = build_tree_list(NULL_TREE, build_string(2, "0"));
137561 + input = chainon(NULL_TREE, build_tree_list(input, old_fptr));
137562 + output = build_tree_list(NULL_TREE, build_string(3, "=r"));
137563 + output = chainon(NULL_TREE, build_tree_list(output, new_fptr));
137564 +#if BUILDING_GCC_VERSION <= 4007
137565 + VEC_safe_push(tree, gc, inputs, input);
137566 + VEC_safe_push(tree, gc, outputs, output);
137567 +#else
137568 + vec_safe_push(inputs, input);
137569 + vec_safe_push(outputs, output);
137570 +#endif
137571 + stmt = gimple_build_asm_vec("orq %%r12, %0\n\t", inputs, outputs, NULL, NULL);
137572 + asm_or_stmt = as_a_gasm(stmt);
137573 + SSA_NAME_DEF_STMT(new_fptr) = asm_or_stmt;
137574 + gimple_asm_set_volatile(asm_or_stmt, true);
137575 + gsi_insert_before(gsi, asm_or_stmt, GSI_SAME_STMT);
137576 + update_stmt(asm_or_stmt);
137577 +
137578 + // replace call stmt fn with the new fptr
137579 + gimple_call_set_fn(call_stmt, new_fptr);
137580 + update_stmt(call_stmt);
137581 +}
137582 +
137583 +/*
137584 + * find all C level function pointer dereferences and forcibly set the highest bit of the pointer
137585 + */
137586 +static unsigned int kernexec_fptr_execute(void)
137587 +{
137588 + basic_block bb;
137589 +
137590 + // 1. loop through BBs and GIMPLE statements
137591 + FOR_EACH_BB_FN(bb, cfun) {
137592 + gimple_stmt_iterator gsi;
137593 +
137594 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
137595 + // gimple match: h_1 = get_fptr (); D.2709_3 = h_1 (x_2(D));
137596 + tree fn;
137597 + gimple stmt;
137598 + gcall *call_stmt;
137599 +
137600 + // is it a call ...
137601 + stmt = gsi_stmt(gsi);
137602 + if (!is_gimple_call(stmt))
137603 + continue;
137604 + call_stmt = as_a_gcall(stmt);
137605 + fn = gimple_call_fn(call_stmt);
137606 + if (!fn)
137607 + continue;
137608 + if (TREE_CODE(fn) == ADDR_EXPR)
137609 + continue;
137610 + if (TREE_CODE(fn) != SSA_NAME)
137611 + gcc_unreachable();
137612 +
137613 + // ... through a function pointer
137614 + if (SSA_NAME_VAR(fn) != NULL_TREE) {
137615 + fn = SSA_NAME_VAR(fn);
137616 + if (TREE_CODE(fn) != VAR_DECL && TREE_CODE(fn) != PARM_DECL) {
137617 + debug_tree(fn);
137618 + gcc_unreachable();
137619 + }
137620 + }
137621 + fn = TREE_TYPE(fn);
137622 + if (TREE_CODE(fn) != POINTER_TYPE)
137623 + continue;
137624 + fn = TREE_TYPE(fn);
137625 + if (TREE_CODE(fn) != FUNCTION_TYPE)
137626 + continue;
137627 +
137628 + kernexec_instrument_fptr(&gsi);
137629 +
137630 +//debug_tree(gimple_call_fn(call_stmt));
137631 +//print_gimple_stmt(stderr, call_stmt, 0, TDF_LINENO);
137632 + }
137633 + }
137634 +
137635 + return 0;
137636 +}
137637 +
137638 +// add special KERNEXEC instrumentation: btsq $63,(%rsp) just before retn
137639 +static void kernexec_instrument_retaddr_bts(rtx insn)
137640 +{
137641 + rtx btsq;
137642 + rtvec argvec, constraintvec, labelvec;
137643 +
137644 + // create asm volatile("btsq $63,(%%rsp)":::)
137645 + argvec = rtvec_alloc(0);
137646 + constraintvec = rtvec_alloc(0);
137647 + labelvec = rtvec_alloc(0);
137648 + btsq = gen_rtx_ASM_OPERANDS(VOIDmode, "btsq $63,(%%rsp)", empty_string, 0, argvec, constraintvec, labelvec, RTL_LOCATION(insn));
137649 + MEM_VOLATILE_P(btsq) = 1;
137650 +// RTX_FRAME_RELATED_P(btsq) = 1; // not for ASM_OPERANDS
137651 + emit_insn_before(btsq, insn);
137652 +}
137653 +
137654 +// add special KERNEXEC instrumentation: orq %r12,(%rsp) just before retn
137655 +static void kernexec_instrument_retaddr_or(rtx insn)
137656 +{
137657 + rtx orq;
137658 + rtvec argvec, constraintvec, labelvec;
137659 +
137660 + // create asm volatile("orq %%r12,(%%rsp)":::)
137661 + argvec = rtvec_alloc(0);
137662 + constraintvec = rtvec_alloc(0);
137663 + labelvec = rtvec_alloc(0);
137664 + orq = gen_rtx_ASM_OPERANDS(VOIDmode, "orq %%r12,(%%rsp)", empty_string, 0, argvec, constraintvec, labelvec, RTL_LOCATION(insn));
137665 + MEM_VOLATILE_P(orq) = 1;
137666 +// RTX_FRAME_RELATED_P(orq) = 1; // not for ASM_OPERANDS
137667 + emit_insn_before(orq, insn);
137668 +}
137669 +
137670 +/*
137671 + * find all asm level function returns and forcibly set the highest bit of the return address
137672 + */
137673 +static unsigned int kernexec_retaddr_execute(void)
137674 +{
137675 + rtx_insn *insn;
137676 +
137677 +// if (stack_realign_drap)
137678 +// inform(DECL_SOURCE_LOCATION(current_function_decl), "drap detected in %s\n", IDENTIFIER_POINTER(DECL_NAME(current_function_decl)));
137679 +
137680 + // 1. find function returns
137681 + for (insn = get_insns(); insn; insn = NEXT_INSN(insn)) {
137682 + // rtl match: (jump_insn 41 40 42 2 (return) fptr.c:42 634 {return_internal} (nil))
137683 + // (jump_insn 12 9 11 2 (parallel [ (return) (unspec [ (0) ] UNSPEC_REP) ]) fptr.c:46 635 {return_internal_long} (nil))
137684 + // (jump_insn 97 96 98 6 (simple_return) fptr.c:50 -1 (nil) -> simple_return)
137685 + rtx body;
137686 +
137687 + // is it a retn
137688 + if (!JUMP_P(insn))
137689 + continue;
137690 + body = PATTERN(insn);
137691 + if (GET_CODE(body) == PARALLEL)
137692 + body = XVECEXP(body, 0, 0);
137693 + if (!ANY_RETURN_P(body))
137694 + continue;
137695 + kernexec_instrument_retaddr(insn);
137696 + }
137697 +
137698 +// print_simple_rtl(stderr, get_insns());
137699 +// print_rtl(stderr, get_insns());
137700 +
137701 + return 0;
137702 +}
137703 +
137704 +static bool kernexec_cmodel_check(void)
137705 +{
137706 + tree section;
137707 +
137708 + if (ix86_cmodel != CM_KERNEL)
137709 + return false;
137710 +
137711 + section = lookup_attribute("section", DECL_ATTRIBUTES(current_function_decl));
137712 + if (!section || !TREE_VALUE(section))
137713 + return true;
137714 +
137715 + section = TREE_VALUE(TREE_VALUE(section));
137716 + if (strncmp(TREE_STRING_POINTER(section), ".vsyscall_", 10))
137717 + return true;
137718 +
137719 + return false;
137720 +}
137721 +
137722 +static bool kernexec_reload_gate(void)
137723 +{
137724 + return kernexec_cmodel_check();
137725 +}
137726 +
137727 +#define PASS_NAME kernexec_reload
137728 +#define TODO_FLAGS_FINISH TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa_no_phi
137729 +#include "gcc-generate-gimple-pass.h"
137730 +
137731 +static bool kernexec_fptr_gate(void)
137732 +{
137733 + return kernexec_cmodel_check();
137734 +}
137735 +
137736 +#define PASS_NAME kernexec_fptr
137737 +#define TODO_FLAGS_FINISH TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa_no_phi
137738 +#include "gcc-generate-gimple-pass.h"
137739 +
137740 +static bool kernexec_retaddr_gate(void)
137741 +{
137742 + return kernexec_cmodel_check();
137743 +}
137744 +
137745 +#define PASS_NAME kernexec_retaddr
137746 +#define TODO_FLAGS_FINISH TODO_dump_func | TODO_ggc_collect
137747 +#include "gcc-generate-rtl-pass.h"
137748 +
137749 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
137750 +{
137751 + const char * const plugin_name = plugin_info->base_name;
137752 + const int argc = plugin_info->argc;
137753 + const struct plugin_argument * const argv = plugin_info->argv;
137754 + int i;
137755 + struct register_pass_info kernexec_reload_pass_info;
137756 + struct register_pass_info kernexec_fptr_pass_info;
137757 + struct register_pass_info kernexec_retaddr_pass_info;
137758 +
137759 + kernexec_reload_pass_info.pass = make_kernexec_reload_pass();
137760 + kernexec_reload_pass_info.reference_pass_name = "ssa";
137761 + kernexec_reload_pass_info.ref_pass_instance_number = 1;
137762 + kernexec_reload_pass_info.pos_op = PASS_POS_INSERT_AFTER;
137763 +
137764 + kernexec_fptr_pass_info.pass = make_kernexec_fptr_pass();
137765 + kernexec_fptr_pass_info.reference_pass_name = "ssa";
137766 + kernexec_fptr_pass_info.ref_pass_instance_number = 1;
137767 + kernexec_fptr_pass_info.pos_op = PASS_POS_INSERT_AFTER;
137768 +
137769 + kernexec_retaddr_pass_info.pass = make_kernexec_retaddr_pass();
137770 + kernexec_retaddr_pass_info.reference_pass_name = "pro_and_epilogue";
137771 + kernexec_retaddr_pass_info.ref_pass_instance_number = 1;
137772 + kernexec_retaddr_pass_info.pos_op = PASS_POS_INSERT_AFTER;
137773 +
137774 + if (!plugin_default_version_check(version, &gcc_version)) {
137775 + error(G_("incompatible gcc/plugin versions"));
137776 + return 1;
137777 + }
137778 +
137779 + register_callback(plugin_name, PLUGIN_INFO, NULL, &kernexec_plugin_info);
137780 +
137781 + if (TARGET_64BIT == 0)
137782 + return 0;
137783 +
137784 + for (i = 0; i < argc; ++i) {
137785 + if (!strcmp(argv[i].key, "method")) {
137786 + if (!argv[i].value) {
137787 + error(G_("no value supplied for option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
137788 + continue;
137789 + }
137790 + if (!strcmp(argv[i].value, "bts")) {
137791 + kernexec_instrument_fptr = kernexec_instrument_fptr_bts;
137792 + kernexec_instrument_retaddr = kernexec_instrument_retaddr_bts;
137793 + } else if (!strcmp(argv[i].value, "or")) {
137794 + kernexec_instrument_fptr = kernexec_instrument_fptr_or;
137795 + kernexec_instrument_retaddr = kernexec_instrument_retaddr_or;
137796 + fix_register("r12", 1, 1);
137797 + } else
137798 + error(G_("invalid option argument '-fplugin-arg-%s-%s=%s'"), plugin_name, argv[i].key, argv[i].value);
137799 + continue;
137800 + }
137801 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
137802 + }
137803 + if (!kernexec_instrument_fptr || !kernexec_instrument_retaddr)
137804 + error(G_("no instrumentation method was selected via '-fplugin-arg-%s-method'"), plugin_name);
137805 +
137806 + if (kernexec_instrument_fptr == kernexec_instrument_fptr_or)
137807 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &kernexec_reload_pass_info);
137808 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &kernexec_fptr_pass_info);
137809 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &kernexec_retaddr_pass_info);
137810 +
137811 + return 0;
137812 +}
137813 diff --git a/tools/gcc/latent_entropy_plugin.c b/tools/gcc/latent_entropy_plugin.c
137814 new file mode 100644
137815 index 0000000..6fbcd39
137816 --- /dev/null
137817 +++ b/tools/gcc/latent_entropy_plugin.c
137818 @@ -0,0 +1,421 @@
137819 +/*
137820 + * Copyright 2012-2016 by the PaX Team <pageexec@freemail.hu>
137821 + * Licensed under the GPL v2
137822 + *
137823 + * Note: the choice of the license means that the compilation process is
137824 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
137825 + * but for the kernel it doesn't matter since it doesn't link against
137826 + * any of the gcc libraries
137827 + *
137828 + * gcc plugin to help generate a little bit of entropy from program state,
137829 + * used throughout the uptime of the kernel
137830 + *
137831 + * TODO:
137832 + * - add ipa pass to identify not explicitly marked candidate functions
137833 + * - mix in more program state (function arguments/return values, loop variables, etc)
137834 + * - more instrumentation control via attribute parameters
137835 + *
137836 + * BUGS:
137837 + * - none known
137838 + */
137839 +
137840 +#include "gcc-common.h"
137841 +
137842 +int plugin_is_GPL_compatible;
137843 +
137844 +static GTY(()) tree latent_entropy_decl;
137845 +
137846 +static struct plugin_info latent_entropy_plugin_info = {
137847 + .version = "201602181345",
137848 + .help = NULL
137849 +};
137850 +
137851 +static unsigned HOST_WIDE_INT seed;
137852 +static unsigned HOST_WIDE_INT get_random_const(void)
137853 +{
137854 + unsigned int i;
137855 + unsigned HOST_WIDE_INT ret = 0;
137856 +
137857 + for (i = 0; i < 8 * sizeof ret; i++) {
137858 + ret = (ret << 1) | (seed & 1);
137859 + seed >>= 1;
137860 + if (ret & 1)
137861 + seed ^= 0xD800000000000000ULL;
137862 + }
137863 +
137864 + return ret;
137865 +}
137866 +
137867 +static tree handle_latent_entropy_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
137868 +{
137869 + tree type;
137870 + unsigned long long mask;
137871 +#if BUILDING_GCC_VERSION <= 4007
137872 + VEC(constructor_elt, gc) *vals;
137873 +#else
137874 + vec<constructor_elt, va_gc> *vals;
137875 +#endif
137876 +
137877 + switch (TREE_CODE(*node)) {
137878 + default:
137879 + *no_add_attrs = true;
137880 + error("%qE attribute only applies to functions and variables", name);
137881 + break;
137882 +
137883 + case VAR_DECL:
137884 + if (DECL_INITIAL(*node)) {
137885 + *no_add_attrs = true;
137886 + error("variable %qD with %qE attribute must not be initialized", *node, name);
137887 + break;
137888 + }
137889 +
137890 + if (!TREE_STATIC(*node)) {
137891 + *no_add_attrs = true;
137892 + error("variable %qD with %qE attribute must not be local", *node, name);
137893 + break;
137894 + }
137895 +
137896 + type = TREE_TYPE(*node);
137897 + switch (TREE_CODE(type)) {
137898 + default:
137899 + *no_add_attrs = true;
137900 + 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);
137901 + break;
137902 +
137903 + case RECORD_TYPE: {
137904 + tree field;
137905 + unsigned int nelt = 0;
137906 +
137907 + for (field = TYPE_FIELDS(type); field; nelt++, field = TREE_CHAIN(field)) {
137908 + tree fieldtype;
137909 +
137910 + fieldtype = TREE_TYPE(field);
137911 + if (TREE_CODE(fieldtype) != INTEGER_TYPE) {
137912 + *no_add_attrs = true;
137913 + error("structure variable %qD with %qE attribute has a non-integer field %qE", *node, name, field);
137914 + break;
137915 + }
137916 + }
137917 +
137918 + if (field)
137919 + break;
137920 +
137921 +#if BUILDING_GCC_VERSION <= 4007
137922 + vals = VEC_alloc(constructor_elt, gc, nelt);
137923 +#else
137924 + vec_alloc(vals, nelt);
137925 +#endif
137926 +
137927 + for (field = TYPE_FIELDS(type); field; field = TREE_CHAIN(field)) {
137928 + tree fieldtype;
137929 +
137930 + fieldtype = TREE_TYPE(field);
137931 + mask = 1ULL << (TREE_INT_CST_LOW(TYPE_SIZE(fieldtype)) - 1);
137932 + mask = 2 * (mask - 1) + 1;
137933 +
137934 + if (TYPE_UNSIGNED(fieldtype))
137935 + CONSTRUCTOR_APPEND_ELT(vals, field, build_int_cstu(fieldtype, mask & get_random_const()));
137936 + else
137937 + CONSTRUCTOR_APPEND_ELT(vals, field, build_int_cst(fieldtype, mask & get_random_const()));
137938 + }
137939 +
137940 + DECL_INITIAL(*node) = build_constructor(type, vals);
137941 +//debug_tree(DECL_INITIAL(*node));
137942 + break;
137943 + }
137944 +
137945 + case INTEGER_TYPE:
137946 + mask = 1ULL << (TREE_INT_CST_LOW(TYPE_SIZE(type)) - 1);
137947 + mask = 2 * (mask - 1) + 1;
137948 +
137949 + if (TYPE_UNSIGNED(type))
137950 + DECL_INITIAL(*node) = build_int_cstu(type, mask & get_random_const());
137951 + else
137952 + DECL_INITIAL(*node) = build_int_cst(type, mask & get_random_const());
137953 + break;
137954 +
137955 + case ARRAY_TYPE: {
137956 + tree elt_type, array_size, elt_size;
137957 + unsigned int i, nelt;
137958 +
137959 + elt_type = TREE_TYPE(type);
137960 + elt_size = TYPE_SIZE_UNIT(TREE_TYPE(type));
137961 + array_size = TYPE_SIZE_UNIT(type);
137962 +
137963 + if (TREE_CODE(elt_type) != INTEGER_TYPE || !array_size || TREE_CODE(array_size) != INTEGER_CST) {
137964 + *no_add_attrs = true;
137965 + error("array variable %qD with %qE attribute must be a fixed length integer array type", *node, name);
137966 + break;
137967 + }
137968 +
137969 + nelt = TREE_INT_CST_LOW(array_size) / TREE_INT_CST_LOW(elt_size);
137970 +#if BUILDING_GCC_VERSION <= 4007
137971 + vals = VEC_alloc(constructor_elt, gc, nelt);
137972 +#else
137973 + vec_alloc(vals, nelt);
137974 +#endif
137975 +
137976 + mask = 1ULL << (TREE_INT_CST_LOW(TYPE_SIZE(elt_type)) - 1);
137977 + mask = 2 * (mask - 1) + 1;
137978 +
137979 + for (i = 0; i < nelt; i++)
137980 + if (TYPE_UNSIGNED(elt_type))
137981 + CONSTRUCTOR_APPEND_ELT(vals, size_int(i), build_int_cstu(elt_type, mask & get_random_const()));
137982 + else
137983 + CONSTRUCTOR_APPEND_ELT(vals, size_int(i), build_int_cst(elt_type, mask & get_random_const()));
137984 +
137985 + DECL_INITIAL(*node) = build_constructor(type, vals);
137986 +//debug_tree(DECL_INITIAL(*node));
137987 + break;
137988 + }
137989 + }
137990 + break;
137991 +
137992 + case FUNCTION_DECL:
137993 + break;
137994 + }
137995 +
137996 + return NULL_TREE;
137997 +}
137998 +
137999 +static struct attribute_spec latent_entropy_attr = {
138000 + .name = "latent_entropy",
138001 + .min_length = 0,
138002 + .max_length = 0,
138003 + .decl_required = true,
138004 + .type_required = false,
138005 + .function_type_required = false,
138006 + .handler = handle_latent_entropy_attribute,
138007 +#if BUILDING_GCC_VERSION >= 4007
138008 + .affects_type_identity = false
138009 +#endif
138010 +};
138011 +
138012 +static void register_attributes(void *event_data, void *data)
138013 +{
138014 + register_attribute(&latent_entropy_attr);
138015 +}
138016 +
138017 +static bool latent_entropy_gate(void)
138018 +{
138019 + // don't bother with noreturn functions for now
138020 + if (TREE_THIS_VOLATILE(current_function_decl))
138021 + return false;
138022 +
138023 + // gcc-4.5 doesn't discover some trivial noreturn functions
138024 + if (EDGE_COUNT(EXIT_BLOCK_PTR_FOR_FN(cfun)->preds) == 0)
138025 + return false;
138026 +
138027 + return lookup_attribute("latent_entropy", DECL_ATTRIBUTES(current_function_decl)) != NULL_TREE;
138028 +}
138029 +
138030 +static enum tree_code get_op(tree *rhs)
138031 +{
138032 + static enum tree_code op;
138033 + unsigned HOST_WIDE_INT random_const;
138034 +
138035 + random_const = get_random_const();
138036 +
138037 + switch (op) {
138038 + case BIT_XOR_EXPR:
138039 + op = PLUS_EXPR;
138040 + break;
138041 +
138042 + case PLUS_EXPR:
138043 + if (rhs) {
138044 + op = LROTATE_EXPR;
138045 + random_const &= HOST_BITS_PER_WIDE_INT - 1;
138046 + break;
138047 + }
138048 +
138049 + case LROTATE_EXPR:
138050 + default:
138051 + op = BIT_XOR_EXPR;
138052 + break;
138053 + }
138054 + if (rhs)
138055 + *rhs = build_int_cstu(unsigned_intDI_type_node, random_const);
138056 + return op;
138057 +}
138058 +
138059 +static void perturb_local_entropy(basic_block bb, tree local_entropy)
138060 +{
138061 + gimple_stmt_iterator gsi;
138062 + gimple assign;
138063 + tree addxorrol, rhs;
138064 + enum tree_code op;
138065 +
138066 + op = get_op(&rhs);
138067 + addxorrol = fold_build2_loc(UNKNOWN_LOCATION, op, unsigned_intDI_type_node, local_entropy, rhs);
138068 + assign = gimple_build_assign(local_entropy, addxorrol);
138069 + gsi = gsi_after_labels(bb);
138070 + gsi_insert_before(&gsi, assign, GSI_NEW_STMT);
138071 + update_stmt(assign);
138072 +//debug_bb(bb);
138073 +}
138074 +
138075 +static void perturb_latent_entropy(basic_block bb, tree rhs)
138076 +{
138077 + gimple_stmt_iterator gsi;
138078 + gimple assign;
138079 + tree addxorrol, temp;
138080 +
138081 + // 1. create temporary copy of latent_entropy
138082 + temp = create_tmp_var(unsigned_intDI_type_node, "temp_latent_entropy");
138083 + add_referenced_var(temp);
138084 +
138085 + // 2. read...
138086 + temp = make_ssa_name(temp, NULL);
138087 + assign = gimple_build_assign(temp, latent_entropy_decl);
138088 + SSA_NAME_DEF_STMT(temp) = assign;
138089 + add_referenced_var(latent_entropy_decl);
138090 + gsi = gsi_after_labels(bb);
138091 + gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
138092 + update_stmt(assign);
138093 +
138094 + // 3. ...modify...
138095 + addxorrol = fold_build2_loc(UNKNOWN_LOCATION, get_op(NULL), unsigned_intDI_type_node, temp, rhs);
138096 + temp = make_ssa_name(SSA_NAME_VAR(temp), NULL);
138097 + assign = gimple_build_assign(temp, addxorrol);
138098 + SSA_NAME_DEF_STMT(temp) = assign;
138099 + gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
138100 + update_stmt(assign);
138101 +
138102 + // 4. ...write latent_entropy
138103 + assign = gimple_build_assign(latent_entropy_decl, temp);
138104 + gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
138105 + update_stmt(assign);
138106 +}
138107 +
138108 +static unsigned int latent_entropy_execute(void)
138109 +{
138110 + basic_block bb;
138111 + gimple assign;
138112 + gimple_stmt_iterator gsi;
138113 + tree local_entropy;
138114 +
138115 + if (!latent_entropy_decl) {
138116 + varpool_node_ptr node;
138117 +
138118 + FOR_EACH_VARIABLE(node) {
138119 + tree var = NODE_DECL(node);
138120 +
138121 + if (DECL_NAME_LENGTH(var) < sizeof("latent_entropy") - 1)
138122 + continue;
138123 + if (strcmp(IDENTIFIER_POINTER(DECL_NAME(var)), "latent_entropy"))
138124 + continue;
138125 + latent_entropy_decl = var;
138126 +// debug_tree(var);
138127 + break;
138128 + }
138129 + if (!latent_entropy_decl) {
138130 +// debug_tree(current_function_decl);
138131 + return 0;
138132 + }
138133 + }
138134 +
138135 +//fprintf(stderr, "latent_entropy: %s\n", IDENTIFIER_POINTER(DECL_NAME(current_function_decl)));
138136 +
138137 + // 1. create local entropy variable
138138 + local_entropy = create_tmp_var(unsigned_intDI_type_node, "local_entropy");
138139 + add_referenced_var(local_entropy);
138140 + mark_sym_for_renaming(local_entropy);
138141 +
138142 + // 2. initialize local entropy variable
138143 + gcc_assert(single_succ_p(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
138144 + bb = single_succ(ENTRY_BLOCK_PTR_FOR_FN(cfun));
138145 + if (!single_pred_p(bb)) {
138146 +// gcc_assert(bb_loop_depth(bb) || (bb->flags & BB_IRREDUCIBLE_LOOP));
138147 + split_edge(single_succ_edge(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
138148 + gcc_assert(single_succ_p(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
138149 + bb = single_succ(ENTRY_BLOCK_PTR_FOR_FN(cfun));
138150 + }
138151 + gsi = gsi_after_labels(bb);
138152 +
138153 + assign = gimple_build_assign(local_entropy, build_int_cstu(unsigned_intDI_type_node, get_random_const()));
138154 +// gimple_set_location(assign, loc);
138155 + gsi_insert_before(&gsi, assign, GSI_NEW_STMT);
138156 + update_stmt(assign);
138157 +//debug_bb(bb);
138158 + bb = bb->next_bb;
138159 +
138160 + // 3. instrument each BB with an operation on the local entropy variable
138161 + while (bb != EXIT_BLOCK_PTR_FOR_FN(cfun)) {
138162 + perturb_local_entropy(bb, local_entropy);
138163 +//debug_bb(bb);
138164 + bb = bb->next_bb;
138165 + };
138166 +
138167 + // 4. mix local entropy into the global entropy variable
138168 + gcc_assert(single_pred_p(EXIT_BLOCK_PTR_FOR_FN(cfun)));
138169 + perturb_latent_entropy(single_pred(EXIT_BLOCK_PTR_FOR_FN(cfun)), local_entropy);
138170 +//debug_bb(single_pred(EXIT_BLOCK_PTR_FOR_FN(cfun)));
138171 + return 0;
138172 +}
138173 +
138174 +static void latent_entropy_start_unit(void *gcc_data, void *user_data)
138175 +{
138176 + tree latent_entropy_type;
138177 +
138178 + seed = get_random_seed(false);
138179 +
138180 + if (in_lto_p)
138181 + return;
138182 +
138183 + // extern volatile u64 latent_entropy
138184 + gcc_assert(TYPE_PRECISION(long_long_unsigned_type_node) == 64);
138185 + latent_entropy_type = build_qualified_type(long_long_unsigned_type_node, TYPE_QUALS(long_long_unsigned_type_node) | TYPE_QUAL_VOLATILE);
138186 + latent_entropy_decl = build_decl(UNKNOWN_LOCATION, VAR_DECL, get_identifier("latent_entropy"), latent_entropy_type);
138187 +
138188 + TREE_STATIC(latent_entropy_decl) = 1;
138189 + TREE_PUBLIC(latent_entropy_decl) = 1;
138190 + TREE_USED(latent_entropy_decl) = 1;
138191 + DECL_PRESERVE_P(latent_entropy_decl) = 1;
138192 + TREE_THIS_VOLATILE(latent_entropy_decl) = 1;
138193 + DECL_EXTERNAL(latent_entropy_decl) = 1;
138194 + DECL_ARTIFICIAL(latent_entropy_decl) = 1;
138195 + lang_hooks.decls.pushdecl(latent_entropy_decl);
138196 +// DECL_ASSEMBLER_NAME(latent_entropy_decl);
138197 +// varpool_finalize_decl(latent_entropy_decl);
138198 +// varpool_mark_needed_node(latent_entropy_decl);
138199 +}
138200 +
138201 +#define PASS_NAME latent_entropy
138202 +#define PROPERTIES_REQUIRED PROP_gimple_leh | PROP_cfg
138203 +//#define TODO_FLAGS_START TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts
138204 +#define TODO_FLAGS_FINISH TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_update_ssa
138205 +#include "gcc-generate-gimple-pass.h"
138206 +
138207 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
138208 +{
138209 + const char * const plugin_name = plugin_info->base_name;
138210 + struct register_pass_info latent_entropy_pass_info;
138211 +
138212 + latent_entropy_pass_info.pass = make_latent_entropy_pass();
138213 + latent_entropy_pass_info.reference_pass_name = "optimized";
138214 + latent_entropy_pass_info.ref_pass_instance_number = 1;
138215 + latent_entropy_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
138216 + static const struct ggc_root_tab gt_ggc_r_gt_latent_entropy[] = {
138217 + {
138218 + .base = &latent_entropy_decl,
138219 + .nelt = 1,
138220 + .stride = sizeof(latent_entropy_decl),
138221 + .cb = &gt_ggc_mx_tree_node,
138222 + .pchw = &gt_pch_nx_tree_node
138223 + },
138224 + LAST_GGC_ROOT_TAB
138225 + };
138226 +
138227 + if (!plugin_default_version_check(version, &gcc_version)) {
138228 + error(G_("incompatible gcc/plugin versions"));
138229 + return 1;
138230 + }
138231 +
138232 + register_callback(plugin_name, PLUGIN_INFO, NULL, &latent_entropy_plugin_info);
138233 + register_callback(plugin_name, PLUGIN_START_UNIT, &latent_entropy_start_unit, NULL);
138234 + register_callback(plugin_name, PLUGIN_REGISTER_GGC_ROOTS, NULL, (void *)&gt_ggc_r_gt_latent_entropy);
138235 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &latent_entropy_pass_info);
138236 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
138237 +
138238 + return 0;
138239 +}
138240 diff --git a/tools/gcc/randomize_layout_plugin.c b/tools/gcc/randomize_layout_plugin.c
138241 new file mode 100644
138242 index 0000000..ca6ce54
138243 --- /dev/null
138244 +++ b/tools/gcc/randomize_layout_plugin.c
138245 @@ -0,0 +1,879 @@
138246 +/*
138247 + * Copyright 2014,2015 by Open Source Security, Inc., Brad Spengler <spender@grsecurity.net>
138248 + * and PaX Team <pageexec@freemail.hu>
138249 + * Licensed under the GPL v2
138250 + *
138251 + * Usage:
138252 + * $ # for 4.5/4.6/C based 4.7
138253 + * $ 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
138254 + * $ # for C++ based 4.7/4.8+
138255 + * $ 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
138256 + * $ gcc -fplugin=./randomize_layout_plugin.so test.c -O2
138257 + */
138258 +
138259 +#include "gcc-common.h"
138260 +#include "randomize_layout_seed.h"
138261 +
138262 +#if BUILDING_GCC_MAJOR < 4 || (BUILDING_GCC_MAJOR == 4 && BUILDING_GCC_MINOR < 6) || \
138263 + (BUILDING_GCC_MAJOR == 4 && BUILDING_GCC_MINOR == 6 && BUILDING_GCC_PATCHLEVEL < 4)
138264 +#error "The RANDSTRUCT plugin requires GCC 4.6.4 or newer."
138265 +#endif
138266 +
138267 +#define ORIG_TYPE_NAME(node) \
138268 + (TYPE_NAME(TYPE_MAIN_VARIANT(node)) != NULL_TREE ? ((const unsigned char *)IDENTIFIER_POINTER(TYPE_NAME(TYPE_MAIN_VARIANT(node)))) : (const unsigned char *)"anonymous")
138269 +
138270 +int plugin_is_GPL_compatible;
138271 +
138272 +static int performance_mode;
138273 +
138274 +static struct plugin_info randomize_layout_plugin_info = {
138275 + .version = "201402201816",
138276 + .help = "disable\t\t\tdo not activate plugin\n"
138277 + "performance-mode\tenable cacheline-aware layout randomization\n"
138278 +};
138279 +
138280 +/* from old Linux dcache.h */
138281 +static inline unsigned long
138282 +partial_name_hash(unsigned long c, unsigned long prevhash)
138283 +{
138284 + return (prevhash + (c << 4) + (c >> 4)) * 11;
138285 +}
138286 +static inline unsigned int
138287 +name_hash(const unsigned char *name)
138288 +{
138289 + unsigned long hash = 0;
138290 + unsigned int len = strlen((const char *)name);
138291 + while (len--)
138292 + hash = partial_name_hash(*name++, hash);
138293 + return (unsigned int)hash;
138294 +}
138295 +
138296 +static tree handle_randomize_layout_attr(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
138297 +{
138298 + tree type;
138299 +
138300 + *no_add_attrs = true;
138301 + if (TREE_CODE(*node) == FUNCTION_DECL) {
138302 + error("%qE attribute does not apply to functions (%qF)", name, *node);
138303 + return NULL_TREE;
138304 + }
138305 +
138306 + if (TREE_CODE(*node) == PARM_DECL) {
138307 + error("%qE attribute does not apply to function parameters (%qD)", name, *node);
138308 + return NULL_TREE;
138309 + }
138310 +
138311 + if (TREE_CODE(*node) == VAR_DECL) {
138312 + error("%qE attribute does not apply to variables (%qD)", name, *node);
138313 + return NULL_TREE;
138314 + }
138315 +
138316 + if (TYPE_P(*node)) {
138317 + type = *node;
138318 + } else {
138319 + gcc_assert(TREE_CODE(*node) == TYPE_DECL);
138320 + type = TREE_TYPE(*node);
138321 + }
138322 +
138323 + if (TREE_CODE(type) != RECORD_TYPE) {
138324 + error("%qE attribute used on %qT applies to struct types only", name, type);
138325 + return NULL_TREE;
138326 + }
138327 +
138328 + if (lookup_attribute(IDENTIFIER_POINTER(name), TYPE_ATTRIBUTES(type))) {
138329 + error("%qE attribute is already applied to the type %qT", name, type);
138330 + return NULL_TREE;
138331 + }
138332 +
138333 + *no_add_attrs = false;
138334 +
138335 + return NULL_TREE;
138336 +}
138337 +
138338 +/* set on complete types that we don't need to inspect further at all */
138339 +static tree handle_randomize_considered_attr(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
138340 +{
138341 + *no_add_attrs = false;
138342 + return NULL_TREE;
138343 +}
138344 +
138345 +/*
138346 + * set on types that we've performed a shuffle on, to prevent re-shuffling
138347 + * this does not preclude us from inspecting its fields for potential shuffles
138348 + */
138349 +static tree handle_randomize_performed_attr(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
138350 +{
138351 + *no_add_attrs = false;
138352 + return NULL_TREE;
138353 +}
138354 +
138355 +/*
138356 + * 64bit variant of Bob Jenkins' public domain PRNG
138357 + * 256 bits of internal state
138358 + */
138359 +
138360 +typedef unsigned long long u64;
138361 +
138362 +typedef struct ranctx { u64 a; u64 b; u64 c; u64 d; } ranctx;
138363 +
138364 +#define rot(x,k) (((x)<<(k))|((x)>>(64-(k))))
138365 +static u64 ranval(ranctx *x) {
138366 + u64 e = x->a - rot(x->b, 7);
138367 + x->a = x->b ^ rot(x->c, 13);
138368 + x->b = x->c + rot(x->d, 37);
138369 + x->c = x->d + e;
138370 + x->d = e + x->a;
138371 + return x->d;
138372 +}
138373 +
138374 +static void raninit(ranctx *x, u64 *seed) {
138375 + int i;
138376 +
138377 + x->a = seed[0];
138378 + x->b = seed[1];
138379 + x->c = seed[2];
138380 + x->d = seed[3];
138381 +
138382 + for (i=0; i < 30; ++i)
138383 + (void)ranval(x);
138384 +}
138385 +
138386 +static u64 shuffle_seed[4];
138387 +
138388 +struct partition_group {
138389 + tree tree_start;
138390 + unsigned long start;
138391 + unsigned long length;
138392 +};
138393 +
138394 +static void partition_struct(tree *fields, unsigned long length, struct partition_group *size_groups, unsigned long *num_groups)
138395 +{
138396 + unsigned long i;
138397 + unsigned long accum_size = 0;
138398 + unsigned long accum_length = 0;
138399 + unsigned long group_idx = 0;
138400 +
138401 + gcc_assert(length < INT_MAX);
138402 +
138403 + memset(size_groups, 0, sizeof(struct partition_group) * length);
138404 +
138405 + for (i = 0; i < length; i++) {
138406 + if (size_groups[group_idx].tree_start == NULL_TREE) {
138407 + size_groups[group_idx].tree_start = fields[i];
138408 + size_groups[group_idx].start = i;
138409 + accum_length = 0;
138410 + accum_size = 0;
138411 + }
138412 + accum_size += (unsigned long)int_size_in_bytes(TREE_TYPE(fields[i]));
138413 + accum_length++;
138414 + if (accum_size >= 64) {
138415 + size_groups[group_idx].length = accum_length;
138416 + accum_length = 0;
138417 + group_idx++;
138418 + }
138419 + }
138420 +
138421 + if (size_groups[group_idx].tree_start != NULL_TREE &&
138422 + !size_groups[group_idx].length) {
138423 + size_groups[group_idx].length = accum_length;
138424 + group_idx++;
138425 + }
138426 +
138427 + *num_groups = group_idx;
138428 +}
138429 +
138430 +static void performance_shuffle(tree *newtree, unsigned long length, ranctx *prng_state)
138431 +{
138432 + unsigned long i, x;
138433 + struct partition_group size_group[length];
138434 + unsigned long num_groups = 0;
138435 + unsigned long randnum;
138436 +
138437 + partition_struct(newtree, length, (struct partition_group *)&size_group, &num_groups);
138438 + for (i = num_groups - 1; i > 0; i--) {
138439 + struct partition_group tmp;
138440 + randnum = ranval(prng_state) % (i + 1);
138441 + tmp = size_group[i];
138442 + size_group[i] = size_group[randnum];
138443 + size_group[randnum] = tmp;
138444 + }
138445 +
138446 + for (x = 0; x < num_groups; x++) {
138447 + for (i = size_group[x].start + size_group[x].length - 1; i > size_group[x].start; i--) {
138448 + tree tmp;
138449 + if (DECL_BIT_FIELD_TYPE(newtree[i]))
138450 + continue;
138451 + randnum = ranval(prng_state) % (i + 1);
138452 + // we could handle this case differently if desired
138453 + if (DECL_BIT_FIELD_TYPE(newtree[randnum]))
138454 + continue;
138455 + tmp = newtree[i];
138456 + newtree[i] = newtree[randnum];
138457 + newtree[randnum] = tmp;
138458 + }
138459 + }
138460 +}
138461 +
138462 +static void full_shuffle(tree *newtree, unsigned long length, ranctx *prng_state)
138463 +{
138464 + unsigned long i, randnum;
138465 +
138466 + for (i = length - 1; i > 0; i--) {
138467 + tree tmp;
138468 + randnum = ranval(prng_state) % (i + 1);
138469 + tmp = newtree[i];
138470 + newtree[i] = newtree[randnum];
138471 + newtree[randnum] = tmp;
138472 + }
138473 +}
138474 +
138475 +/* modern in-place Fisher-Yates shuffle */
138476 +static void shuffle(const_tree type, tree *newtree, unsigned long length)
138477 +{
138478 + unsigned long i;
138479 + u64 seed[4];
138480 + ranctx prng_state;
138481 + const unsigned char *structname;
138482 +
138483 + if (length == 0)
138484 + return;
138485 +
138486 + gcc_assert(TREE_CODE(type) == RECORD_TYPE);
138487 +
138488 + structname = ORIG_TYPE_NAME(type);
138489 +
138490 +#ifdef __DEBUG_PLUGIN
138491 + fprintf(stderr, "Shuffling struct %s %p\n", (const char *)structname, type);
138492 +#ifdef __DEBUG_VERBOSE
138493 + debug_tree((tree)type);
138494 +#endif
138495 +#endif
138496 +
138497 + for (i = 0; i < 4; i++) {
138498 + seed[i] = shuffle_seed[i];
138499 + seed[i] ^= name_hash(structname);
138500 + }
138501 +
138502 + raninit(&prng_state, (u64 *)&seed);
138503 +
138504 + if (performance_mode)
138505 + performance_shuffle(newtree, length, &prng_state);
138506 + else
138507 + full_shuffle(newtree, length, &prng_state);
138508 +}
138509 +
138510 +static bool is_flexible_array(const_tree field)
138511 +{
138512 + const_tree fieldtype;
138513 + const_tree typesize;
138514 + const_tree elemtype;
138515 + const_tree elemsize;
138516 +
138517 + fieldtype = TREE_TYPE(field);
138518 + typesize = TYPE_SIZE(fieldtype);
138519 +
138520 + if (TREE_CODE(fieldtype) != ARRAY_TYPE)
138521 + return false;
138522 +
138523 + elemtype = TREE_TYPE(fieldtype);
138524 + elemsize = TYPE_SIZE(elemtype);
138525 +
138526 + /* size of type is represented in bits */
138527 +
138528 + if (typesize == NULL_TREE && TYPE_DOMAIN(fieldtype) != NULL_TREE &&
138529 + TYPE_MAX_VALUE(TYPE_DOMAIN(fieldtype)) == NULL_TREE)
138530 + return true;
138531 +
138532 + if (typesize != NULL_TREE &&
138533 + (TREE_CONSTANT(typesize) && (!TREE_INT_CST_LOW(typesize) ||
138534 + TREE_INT_CST_LOW(typesize) == TREE_INT_CST_LOW(elemsize))))
138535 + return true;
138536 +
138537 + return false;
138538 +}
138539 +
138540 +static int relayout_struct(tree type)
138541 +{
138542 + unsigned long num_fields = (unsigned long)list_length(TYPE_FIELDS(type));
138543 + unsigned long shuffle_length = num_fields;
138544 + tree field;
138545 + tree newtree[num_fields];
138546 + unsigned long i;
138547 + tree list;
138548 + tree variant;
138549 + tree main_variant;
138550 + expanded_location xloc;
138551 +
138552 + if (TYPE_FIELDS(type) == NULL_TREE)
138553 + return 0;
138554 +
138555 + if (num_fields < 2)
138556 + return 0;
138557 +
138558 + gcc_assert(TREE_CODE(type) == RECORD_TYPE);
138559 +
138560 + gcc_assert(num_fields < INT_MAX);
138561 +
138562 + if (lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(type)) ||
138563 + lookup_attribute("no_randomize_layout", TYPE_ATTRIBUTES(TYPE_MAIN_VARIANT(type))))
138564 + return 0;
138565 +
138566 + /* Workaround for 3rd-party VirtualBox source that we can't modify ourselves */
138567 + if (!strcmp((const char *)ORIG_TYPE_NAME(type), "INTNETTRUNKFACTORY") ||
138568 + !strcmp((const char *)ORIG_TYPE_NAME(type), "RAWPCIFACTORY"))
138569 + return 0;
138570 +
138571 + /* throw out any structs in uapi */
138572 + xloc = expand_location(DECL_SOURCE_LOCATION(TYPE_FIELDS(type)));
138573 +
138574 + if (strstr(xloc.file, "/uapi/"))
138575 + error(G_("attempted to randomize userland API struct %s"), ORIG_TYPE_NAME(type));
138576 +
138577 + for (field = TYPE_FIELDS(type), i = 0; field; field = TREE_CHAIN(field), i++) {
138578 + gcc_assert(TREE_CODE(field) == FIELD_DECL);
138579 + newtree[i] = field;
138580 + }
138581 +
138582 + /*
138583 + * enforce that we don't randomize the layout of the last
138584 + * element of a struct if it's a 0 or 1-length array
138585 + * or a proper flexible array
138586 + */
138587 + if (is_flexible_array(newtree[num_fields - 1]))
138588 + shuffle_length--;
138589 +
138590 + shuffle(type, (tree *)newtree, shuffle_length);
138591 +
138592 + /*
138593 + * set up a bogus anonymous struct field designed to error out on unnamed struct initializers
138594 + * as gcc provides no other way to detect such code
138595 + */
138596 + list = make_node(FIELD_DECL);
138597 + TREE_CHAIN(list) = newtree[0];
138598 + TREE_TYPE(list) = void_type_node;
138599 + DECL_SIZE(list) = bitsize_zero_node;
138600 + DECL_NONADDRESSABLE_P(list) = 1;
138601 + DECL_FIELD_BIT_OFFSET(list) = bitsize_zero_node;
138602 + DECL_SIZE_UNIT(list) = size_zero_node;
138603 + DECL_FIELD_OFFSET(list) = size_zero_node;
138604 + DECL_CONTEXT(list) = type;
138605 + // to satisfy the constify plugin
138606 + TREE_READONLY(list) = 1;
138607 +
138608 + for (i = 0; i < num_fields - 1; i++)
138609 + TREE_CHAIN(newtree[i]) = newtree[i+1];
138610 + TREE_CHAIN(newtree[num_fields - 1]) = NULL_TREE;
138611 +
138612 + main_variant = TYPE_MAIN_VARIANT(type);
138613 + for (variant = main_variant; variant; variant = TYPE_NEXT_VARIANT(variant)) {
138614 + TYPE_FIELDS(variant) = list;
138615 + TYPE_ATTRIBUTES(variant) = copy_list(TYPE_ATTRIBUTES(variant));
138616 + TYPE_ATTRIBUTES(variant) = tree_cons(get_identifier("randomize_performed"), NULL_TREE, TYPE_ATTRIBUTES(variant));
138617 + }
138618 +
138619 + /*
138620 + * force a re-layout of the main variant
138621 + * the TYPE_SIZE for all variants will be recomputed
138622 + * by finalize_type_size()
138623 + */
138624 + TYPE_SIZE(main_variant) = NULL_TREE;
138625 + layout_type(main_variant);
138626 + gcc_assert(TYPE_SIZE(main_variant) != NULL_TREE);
138627 +
138628 + return 1;
138629 +}
138630 +
138631 +/* from constify plugin */
138632 +static const_tree get_field_type(const_tree field)
138633 +{
138634 + return strip_array_types(TREE_TYPE(field));
138635 +}
138636 +
138637 +/* from constify plugin */
138638 +static bool is_fptr(const_tree fieldtype)
138639 +{
138640 + if (TREE_CODE(fieldtype) != POINTER_TYPE)
138641 + return false;
138642 +
138643 + return TREE_CODE(TREE_TYPE(fieldtype)) == FUNCTION_TYPE;
138644 +}
138645 +
138646 +/* derived from constify plugin */
138647 +static int is_pure_ops_struct(const_tree node)
138648 +{
138649 + const_tree field;
138650 +
138651 + gcc_assert(TREE_CODE(node) == RECORD_TYPE || TREE_CODE(node) == UNION_TYPE);
138652 +
138653 + for (field = TYPE_FIELDS(node); field; field = TREE_CHAIN(field)) {
138654 + const_tree fieldtype = get_field_type(field);
138655 + enum tree_code code = TREE_CODE(fieldtype);
138656 +
138657 + if (node == fieldtype)
138658 + continue;
138659 +
138660 + if (!is_fptr(fieldtype))
138661 + return 0;
138662 +
138663 + if (code != RECORD_TYPE && code != UNION_TYPE)
138664 + continue;
138665 +
138666 + if (!is_pure_ops_struct(fieldtype))
138667 + return 0;
138668 + }
138669 +
138670 + return 1;
138671 +}
138672 +
138673 +static void randomize_type(tree type)
138674 +{
138675 + tree variant;
138676 +
138677 + gcc_assert(TREE_CODE(type) == RECORD_TYPE);
138678 +
138679 + if (lookup_attribute("randomize_considered", TYPE_ATTRIBUTES(type)))
138680 + return;
138681 +
138682 + if (lookup_attribute("randomize_layout", TYPE_ATTRIBUTES(TYPE_MAIN_VARIANT(type))) || is_pure_ops_struct(type))
138683 + relayout_struct(type);
138684 +
138685 + for (variant = TYPE_MAIN_VARIANT(type); variant; variant = TYPE_NEXT_VARIANT(variant)) {
138686 + TYPE_ATTRIBUTES(type) = copy_list(TYPE_ATTRIBUTES(type));
138687 + TYPE_ATTRIBUTES(type) = tree_cons(get_identifier("randomize_considered"), NULL_TREE, TYPE_ATTRIBUTES(type));
138688 + }
138689 +#ifdef __DEBUG_PLUGIN
138690 + fprintf(stderr, "Marking randomize_considered on struct %s\n", ORIG_TYPE_NAME(type));
138691 +#ifdef __DEBUG_VERBOSE
138692 + debug_tree(type);
138693 +#endif
138694 +#endif
138695 +}
138696 +
138697 +static void randomize_layout_finish_decl(void *event_data, void *data)
138698 +{
138699 + tree decl = (tree)event_data;
138700 + tree type;
138701 +
138702 + if (decl == NULL_TREE || decl == error_mark_node)
138703 + return;
138704 +
138705 + type = TREE_TYPE(decl);
138706 +
138707 + if (TREE_CODE(decl) != VAR_DECL)
138708 + return;
138709 +
138710 + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE)
138711 + return;
138712 +
138713 + if (!lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(type)))
138714 + return;
138715 +
138716 + relayout_decl(decl);
138717 +}
138718 +
138719 +static void finish_type(void *event_data, void *data)
138720 +{
138721 + tree type = (tree)event_data;
138722 +
138723 + if (type == NULL_TREE || type == error_mark_node)
138724 + return;
138725 +
138726 + if (TREE_CODE(type) != RECORD_TYPE)
138727 + return;
138728 +
138729 + if (TYPE_FIELDS(type) == NULL_TREE)
138730 + return;
138731 +
138732 + if (lookup_attribute("randomize_considered", TYPE_ATTRIBUTES(type)))
138733 + return;
138734 +
138735 +#ifdef __DEBUG_PLUGIN
138736 + fprintf(stderr, "Calling randomize_type on %s\n", ORIG_TYPE_NAME(type));
138737 +#endif
138738 +#ifdef __DEBUG_VERBOSE
138739 + debug_tree(type);
138740 +#endif
138741 + randomize_type(type);
138742 +
138743 + return;
138744 +}
138745 +
138746 +static struct attribute_spec randomize_layout_attr = {
138747 + .name = "randomize_layout",
138748 + // related to args
138749 + .min_length = 0,
138750 + .max_length = 0,
138751 + .decl_required = false,
138752 + // need type declaration
138753 + .type_required = true,
138754 + .function_type_required = false,
138755 + .handler = handle_randomize_layout_attr,
138756 +#if BUILDING_GCC_VERSION >= 4007
138757 + .affects_type_identity = true
138758 +#endif
138759 +};
138760 +
138761 +static struct attribute_spec no_randomize_layout_attr = {
138762 + .name = "no_randomize_layout",
138763 + // related to args
138764 + .min_length = 0,
138765 + .max_length = 0,
138766 + .decl_required = false,
138767 + // need type declaration
138768 + .type_required = true,
138769 + .function_type_required = false,
138770 + .handler = handle_randomize_layout_attr,
138771 +#if BUILDING_GCC_VERSION >= 4007
138772 + .affects_type_identity = true
138773 +#endif
138774 +};
138775 +
138776 +static struct attribute_spec randomize_considered_attr = {
138777 + .name = "randomize_considered",
138778 + // related to args
138779 + .min_length = 0,
138780 + .max_length = 0,
138781 + .decl_required = false,
138782 + // need type declaration
138783 + .type_required = true,
138784 + .function_type_required = false,
138785 + .handler = handle_randomize_considered_attr,
138786 +#if BUILDING_GCC_VERSION >= 4007
138787 + .affects_type_identity = false
138788 +#endif
138789 +};
138790 +
138791 +static struct attribute_spec randomize_performed_attr = {
138792 + .name = "randomize_performed",
138793 + // related to args
138794 + .min_length = 0,
138795 + .max_length = 0,
138796 + .decl_required = false,
138797 + // need type declaration
138798 + .type_required = true,
138799 + .function_type_required = false,
138800 + .handler = handle_randomize_performed_attr,
138801 +#if BUILDING_GCC_VERSION >= 4007
138802 + .affects_type_identity = false
138803 +#endif
138804 +};
138805 +
138806 +static void register_attributes(void *event_data, void *data)
138807 +{
138808 + register_attribute(&randomize_layout_attr);
138809 + register_attribute(&no_randomize_layout_attr);
138810 + register_attribute(&randomize_considered_attr);
138811 + register_attribute(&randomize_performed_attr);
138812 +}
138813 +
138814 +static void check_bad_casts_in_constructor(tree var, tree init)
138815 +{
138816 + unsigned HOST_WIDE_INT idx;
138817 + tree field, val;
138818 + tree field_type, val_type;
138819 +
138820 + FOR_EACH_CONSTRUCTOR_ELT(CONSTRUCTOR_ELTS(init), idx, field, val) {
138821 + if (TREE_CODE(val) == CONSTRUCTOR) {
138822 + check_bad_casts_in_constructor(var, val);
138823 + continue;
138824 + }
138825 +
138826 + /* pipacs' plugin creates franken-arrays that differ from those produced by
138827 + normal code which all have valid 'field' trees. work around this */
138828 + if (field == NULL_TREE)
138829 + continue;
138830 + field_type = TREE_TYPE(field);
138831 + val_type = TREE_TYPE(val);
138832 +
138833 + if (TREE_CODE(field_type) != POINTER_TYPE || TREE_CODE(val_type) != POINTER_TYPE)
138834 + continue;
138835 +
138836 + if (field_type == val_type)
138837 + continue;
138838 +
138839 + field_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(field_type))));
138840 + val_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(val_type))));
138841 +
138842 + if (field_type == void_type_node)
138843 + continue;
138844 + if (field_type == val_type)
138845 + continue;
138846 + if (TREE_CODE(val_type) != RECORD_TYPE)
138847 + continue;
138848 +
138849 + if (!lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(val_type)))
138850 + continue;
138851 + inform(DECL_SOURCE_LOCATION(var), "found mismatched struct pointer types: %qT and %qT\n", TYPE_MAIN_VARIANT(field_type), TYPE_MAIN_VARIANT(val_type));
138852 + }
138853 +}
138854 +
138855 +/* derived from the constify plugin */
138856 +static void check_global_variables(void *event_data, void *data)
138857 +{
138858 + struct varpool_node *node;
138859 + tree init;
138860 +
138861 + FOR_EACH_VARIABLE(node) {
138862 + tree var = NODE_DECL(node);
138863 + init = DECL_INITIAL(var);
138864 + if (init == NULL_TREE)
138865 + continue;
138866 +
138867 + if (TREE_CODE(init) != CONSTRUCTOR)
138868 + continue;
138869 +
138870 + check_bad_casts_in_constructor(var, init);
138871 + }
138872 +}
138873 +
138874 +static bool dominated_by_is_err(const_tree rhs, basic_block bb)
138875 +{
138876 + basic_block dom;
138877 + gimple dom_stmt;
138878 + gimple call_stmt;
138879 + const_tree dom_lhs;
138880 + const_tree poss_is_err_cond;
138881 + const_tree poss_is_err_func;
138882 + const_tree is_err_arg;
138883 +
138884 + dom = get_immediate_dominator(CDI_DOMINATORS, bb);
138885 + if (!dom)
138886 + return false;
138887 +
138888 + dom_stmt = last_stmt(dom);
138889 + if (!dom_stmt)
138890 + return false;
138891 +
138892 + if (gimple_code(dom_stmt) != GIMPLE_COND)
138893 + return false;
138894 +
138895 + if (gimple_cond_code(dom_stmt) != NE_EXPR)
138896 + return false;
138897 +
138898 + if (!integer_zerop(gimple_cond_rhs(dom_stmt)))
138899 + return false;
138900 +
138901 + poss_is_err_cond = gimple_cond_lhs(dom_stmt);
138902 +
138903 + if (TREE_CODE(poss_is_err_cond) != SSA_NAME)
138904 + return false;
138905 +
138906 + call_stmt = SSA_NAME_DEF_STMT(poss_is_err_cond);
138907 +
138908 + if (gimple_code(call_stmt) != GIMPLE_CALL)
138909 + return false;
138910 +
138911 + dom_lhs = gimple_get_lhs(call_stmt);
138912 + poss_is_err_func = gimple_call_fndecl(call_stmt);
138913 + if (!poss_is_err_func)
138914 + return false;
138915 + if (dom_lhs != poss_is_err_cond)
138916 + return false;
138917 + if (strcmp(DECL_NAME_POINTER(poss_is_err_func), "IS_ERR"))
138918 + return false;
138919 +
138920 + is_err_arg = gimple_call_arg(call_stmt, 0);
138921 + if (!is_err_arg)
138922 + return false;
138923 +
138924 + if (is_err_arg != rhs)
138925 + return false;
138926 +
138927 + return true;
138928 +}
138929 +
138930 +static void handle_local_var_initializers(void)
138931 +{
138932 + tree var;
138933 + unsigned int i;
138934 +
138935 + FOR_EACH_LOCAL_DECL(cfun, i, var) {
138936 + tree init = DECL_INITIAL(var);
138937 + if (!init)
138938 + continue;
138939 + if (TREE_CODE(init) != CONSTRUCTOR)
138940 + continue;
138941 + check_bad_casts_in_constructor(var, init);
138942 + }
138943 +}
138944 +
138945 +/*
138946 + * iterate over all statements to find "bad" casts:
138947 + * those where the address of the start of a structure is cast
138948 + * to a pointer of a structure of a different type, or a
138949 + * structure pointer type is cast to a different structure pointer type
138950 + */
138951 +static unsigned int find_bad_casts_execute(void)
138952 +{
138953 + basic_block bb;
138954 +
138955 + handle_local_var_initializers();
138956 +
138957 + FOR_EACH_BB_FN(bb, cfun) {
138958 + gimple_stmt_iterator gsi;
138959 +
138960 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
138961 + gimple stmt;
138962 + const_tree lhs;
138963 + const_tree lhs_type;
138964 + const_tree rhs1;
138965 + const_tree rhs_type;
138966 + const_tree ptr_lhs_type;
138967 + const_tree ptr_rhs_type;
138968 + const_tree op0;
138969 + const_tree op0_type;
138970 + enum tree_code rhs_code;
138971 +
138972 + stmt = gsi_stmt(gsi);
138973 +
138974 +#ifdef __DEBUG_PLUGIN
138975 +#ifdef __DEBUG_VERBOSE
138976 + debug_gimple_stmt(stmt);
138977 + debug_tree(gimple_get_lhs(stmt));
138978 +#endif
138979 +#endif
138980 +
138981 + if (gimple_code(stmt) != GIMPLE_ASSIGN)
138982 + continue;
138983 +
138984 +#ifdef __DEBUG_PLUGIN
138985 +#ifdef __DEBUG_VERBOSE
138986 + debug_tree(gimple_assign_rhs1(stmt));
138987 +#endif
138988 +#endif
138989 +
138990 + rhs_code = gimple_assign_rhs_code(stmt);
138991 +
138992 + if (rhs_code != ADDR_EXPR && rhs_code != SSA_NAME)
138993 + continue;
138994 +
138995 + lhs = gimple_get_lhs(stmt);
138996 + lhs_type = TREE_TYPE(lhs);
138997 + rhs1 = gimple_assign_rhs1(stmt);
138998 + rhs_type = TREE_TYPE(rhs1);
138999 +
139000 + if (TREE_CODE(rhs_type) != POINTER_TYPE ||
139001 + TREE_CODE(lhs_type) != POINTER_TYPE)
139002 + continue;
139003 +
139004 + ptr_lhs_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(lhs_type))));
139005 + ptr_rhs_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(rhs_type))));
139006 +
139007 + if (ptr_rhs_type == void_type_node)
139008 + continue;
139009 +
139010 + if (ptr_lhs_type == void_type_node)
139011 + continue;
139012 +
139013 + if (dominated_by_is_err(rhs1, bb))
139014 + continue;
139015 +
139016 + if (TREE_CODE(ptr_rhs_type) != RECORD_TYPE) {
139017 +#ifndef __DEBUG_PLUGIN
139018 + if (lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(ptr_lhs_type)))
139019 +#endif
139020 + inform(gimple_location(stmt), "found mismatched struct pointer types: %qT and %qT\n", ptr_lhs_type, ptr_rhs_type);
139021 + continue;
139022 + }
139023 +
139024 + if (rhs_code == SSA_NAME && ptr_lhs_type == ptr_rhs_type)
139025 + continue;
139026 +
139027 + if (rhs_code == ADDR_EXPR) {
139028 + op0 = TREE_OPERAND(rhs1, 0);
139029 +
139030 + if (op0 == NULL_TREE)
139031 + continue;
139032 +
139033 + if (TREE_CODE(op0) != VAR_DECL)
139034 + continue;
139035 +
139036 + op0_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(op0))));
139037 + if (op0_type == ptr_lhs_type)
139038 + continue;
139039 +
139040 +#ifndef __DEBUG_PLUGIN
139041 + if (lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(op0_type)))
139042 +#endif
139043 + inform(gimple_location(stmt), "found mismatched struct pointer types: %qT and %qT\n", ptr_lhs_type, op0_type);
139044 + } else {
139045 + const_tree ssa_name_var = SSA_NAME_VAR(rhs1);
139046 + /* skip bogus type casts introduced by container_of */
139047 + if (ssa_name_var != NULL_TREE && DECL_NAME(ssa_name_var) &&
139048 + !strcmp((const char *)DECL_NAME_POINTER(ssa_name_var), "__mptr"))
139049 + continue;
139050 +#ifndef __DEBUG_PLUGIN
139051 + if (lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(ptr_rhs_type)))
139052 +#endif
139053 + inform(gimple_location(stmt), "found mismatched struct pointer types: %qT and %qT\n", ptr_lhs_type, ptr_rhs_type);
139054 + }
139055 +
139056 + }
139057 + }
139058 + return 0;
139059 +}
139060 +
139061 +#define PASS_NAME find_bad_casts
139062 +#define NO_GATE
139063 +#define TODO_FLAGS_FINISH TODO_dump_func
139064 +#include "gcc-generate-gimple-pass.h"
139065 +
139066 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
139067 +{
139068 + int i;
139069 + const char * const plugin_name = plugin_info->base_name;
139070 + const int argc = plugin_info->argc;
139071 + const struct plugin_argument * const argv = plugin_info->argv;
139072 + bool enable = true;
139073 + int obtained_seed = 0;
139074 + struct register_pass_info find_bad_casts_pass_info;
139075 +
139076 + find_bad_casts_pass_info.pass = make_find_bad_casts_pass();
139077 + find_bad_casts_pass_info.reference_pass_name = "ssa";
139078 + find_bad_casts_pass_info.ref_pass_instance_number = 1;
139079 + find_bad_casts_pass_info.pos_op = PASS_POS_INSERT_AFTER;
139080 +
139081 + if (!plugin_default_version_check(version, &gcc_version)) {
139082 + error(G_("incompatible gcc/plugin versions"));
139083 + return 1;
139084 + }
139085 +
139086 + if (strncmp(lang_hooks.name, "GNU C", 5) && !strncmp(lang_hooks.name, "GNU C+", 6)) {
139087 + inform(UNKNOWN_LOCATION, G_("%s supports C only, not %s"), plugin_name, lang_hooks.name);
139088 + enable = false;
139089 + }
139090 +
139091 + for (i = 0; i < argc; ++i) {
139092 + if (!strcmp(argv[i].key, "disable")) {
139093 + enable = false;
139094 + continue;
139095 + }
139096 + if (!strcmp(argv[i].key, "performance-mode")) {
139097 + performance_mode = 1;
139098 + continue;
139099 + }
139100 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
139101 + }
139102 +
139103 + if (strlen(randstruct_seed) != 64) {
139104 + error(G_("invalid seed value supplied for %s plugin"), plugin_name);
139105 + return 1;
139106 + }
139107 + obtained_seed = sscanf(randstruct_seed, "%016llx%016llx%016llx%016llx",
139108 + &shuffle_seed[0], &shuffle_seed[1], &shuffle_seed[2], &shuffle_seed[3]);
139109 + if (obtained_seed != 4) {
139110 + error(G_("Invalid seed supplied for %s plugin"), plugin_name);
139111 + return 1;
139112 + }
139113 +
139114 + register_callback(plugin_name, PLUGIN_INFO, NULL, &randomize_layout_plugin_info);
139115 + if (enable) {
139116 + register_callback(plugin_name, PLUGIN_ALL_IPA_PASSES_START, check_global_variables, NULL);
139117 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &find_bad_casts_pass_info);
139118 + register_callback(plugin_name, PLUGIN_FINISH_TYPE, finish_type, NULL);
139119 + register_callback(plugin_name, PLUGIN_FINISH_DECL, randomize_layout_finish_decl, NULL);
139120 + }
139121 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
139122 +
139123 + return 0;
139124 +}
139125 diff --git a/tools/gcc/size_overflow_plugin/.gitignore b/tools/gcc/size_overflow_plugin/.gitignore
139126 new file mode 100644
139127 index 0000000..c4b24b9
139128 --- /dev/null
139129 +++ b/tools/gcc/size_overflow_plugin/.gitignore
139130 @@ -0,0 +1,3 @@
139131 +disable_size_overflow_hash.h
139132 +size_overflow_hash.h
139133 +size_overflow_hash_aux.h
139134 diff --git a/tools/gcc/size_overflow_plugin/Makefile b/tools/gcc/size_overflow_plugin/Makefile
139135 new file mode 100644
139136 index 0000000..f74d85a
139137 --- /dev/null
139138 +++ b/tools/gcc/size_overflow_plugin/Makefile
139139 @@ -0,0 +1,28 @@
139140 +HOST_EXTRACXXFLAGS += $(call hostcc-option, -fno-ipa-icf)
139141 +
139142 +$(HOSTLIBS)-$(CONFIG_PAX_SIZE_OVERFLOW) += size_overflow_plugin.so
139143 +always := $($(HOSTLIBS)-y)
139144 +
139145 +size_overflow_plugin-objs := $(patsubst $(srctree)/$(src)/%.c,%.o,$(wildcard $(srctree)/$(src)/*.c))
139146 +
139147 +$(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
139148 +
139149 +quiet_cmd_build_size_overflow_hash = GENHASH $@
139150 + cmd_build_size_overflow_hash = \
139151 + $(CONFIG_SHELL) $(srctree)/$(src)/generate_size_overflow_hash.sh -s size_overflow_hash -d $< -o $@
139152 +$(objtree)/$(obj)/size_overflow_hash.h: $(src)/size_overflow_hash.data FORCE
139153 + $(call if_changed,build_size_overflow_hash)
139154 +
139155 +quiet_cmd_build_size_overflow_hash_aux = GENHASH $@
139156 + cmd_build_size_overflow_hash_aux = \
139157 + $(CONFIG_SHELL) $(srctree)/$(src)/generate_size_overflow_hash.sh -s size_overflow_hash_aux -d $< -o $@
139158 +$(objtree)/$(obj)/size_overflow_hash_aux.h: $(src)/size_overflow_hash_aux.data FORCE
139159 + $(call if_changed,build_size_overflow_hash_aux)
139160 +
139161 +quiet_cmd_build_disable_size_overflow_hash = GENHASH $@
139162 + cmd_build_disable_size_overflow_hash = \
139163 + $(CONFIG_SHELL) $(srctree)/$(src)/generate_size_overflow_hash.sh -s disable_size_overflow_hash -d $< -o $@
139164 +$(objtree)/$(obj)/disable_size_overflow_hash.h: $(src)/disable_size_overflow_hash.data FORCE
139165 + $(call if_changed,build_disable_size_overflow_hash)
139166 +
139167 +targets += size_overflow_hash.h size_overflow_hash_aux.h disable_size_overflow_hash.h
139168 diff --git a/tools/gcc/size_overflow_plugin/disable_size_overflow_hash.data b/tools/gcc/size_overflow_plugin/disable_size_overflow_hash.data
139169 new file mode 100644
139170 index 0000000..f4a8606
139171 --- /dev/null
139172 +++ b/tools/gcc/size_overflow_plugin/disable_size_overflow_hash.data
139173 @@ -0,0 +1,12437 @@
139174 +disable_so_interrupt_pnode_gru_message_queue_desc_4 interrupt_pnode gru_message_queue_desc 0 4 NULL
139175 +disable_so_bch_btree_insert_fndecl_12 bch_btree_insert fndecl 0 12 NULL
139176 +disable_so_macvlan_sync_address_fndecl_22 macvlan_sync_address fndecl 0 22 NULL nohasharray
139177 +disable_so_sil_iowrite8_fndecl_22 sil_iowrite8 fndecl 3-2 22 &disable_so_macvlan_sync_address_fndecl_22
139178 +disable_so_addr_to_user_sctp_pf_23 addr_to_user sctp_pf 0 23 NULL nohasharray
139179 +disable_so_signalquality_rtl_stats_23 signalquality rtl_stats 0 23 &disable_so_addr_to_user_sctp_pf_23
139180 +disable_so_sem_otime_semid64_ds_29 sem_otime semid64_ds 0 29 NULL
139181 +disable_so_rec8b_ide_timing_33 rec8b ide_timing 0 33 NULL
139182 +disable_so_stime_task_struct_41 stime task_struct 0 41 NULL nohasharray
139183 +disable_so_ulist_rbtree_search_fndecl_41 ulist_rbtree_search fndecl 2 41 &disable_so_stime_task_struct_41
139184 +disable_so_pfuze100_set_ramp_delay_fndecl_52 pfuze100_set_ramp_delay fndecl 0-2 52 NULL
139185 +disable_so_make_sockaddr_fndecl_54 make_sockaddr fndecl 2 54 NULL
139186 +disable_so_mmap_min_addr_vardecl_56 mmap_min_addr vardecl 0 56 NULL nohasharray
139187 +disable_so_mwl8k_cmd_get_watchdog_bitmap_fndecl_56 mwl8k_cmd_get_watchdog_bitmap fndecl 0 56 &disable_so_mmap_min_addr_vardecl_56
139188 +disable_so_panel_power_down_delay_cdv_intel_dp_59 panel_power_down_delay cdv_intel_dp 0 59 NULL
139189 +disable_so_max_ref_div_radeon_pll_60 max_ref_div radeon_pll 0 60 NULL
139190 +disable_so_penirq_recheck_delay_usecs_ads7846_81 penirq_recheck_delay_usecs ads7846 0 81 NULL
139191 +disable_so_cobalt_query_dv_timings_fndecl_82 cobalt_query_dv_timings fndecl 0 82 NULL
139192 +disable_so_timeout_slgt_info_83 timeout slgt_info 0 83 NULL
139193 +disable_so_radio_syn_reserved_addr28_b43_nphy_channeltab_entry_rev3_92 radio_syn_reserved_addr28 b43_nphy_channeltab_entry_rev3 0 92 NULL
139194 +disable_so_vsc824x_ack_interrupt_fndecl_109 vsc824x_ack_interrupt fndecl 0 109 NULL
139195 +disable_so_scan_timing_sh_keysc_info_117 scan_timing sh_keysc_info 0 117 NULL
139196 +disable_so_cp_table_gpu_addr_radeon_rlc_124 cp_table_gpu_addr radeon_rlc 0 124 NULL
139197 +disable_so_mpihelp_mul_karatsuba_case_fndecl_125 mpihelp_mul_karatsuba_case fndecl 3-5 125 NULL nohasharray
139198 +disable_so_g84_cipher_object_ctor_fndecl_125 g84_cipher_object_ctor fndecl 0 125 &disable_so_mpihelp_mul_karatsuba_case_fndecl_125
139199 +disable_so_current_nat_addr_fndecl_130 current_nat_addr fndecl 0-2 130 NULL
139200 +disable_so_qla2x00_gid_pt_rsp_size_fndecl_134 qla2x00_gid_pt_rsp_size fndecl 0 134 NULL
139201 +disable_so_zd_check_signal_fndecl_139 zd_check_signal fndecl 0-2 139 NULL
139202 +disable_so_qlcnic_83xx_interrupt_test_fndecl_160 qlcnic_83xx_interrupt_test fndecl 0 160 NULL
139203 +disable_so_show_cpu_clock_sel_fndecl_161 show_cpu_clock_sel fndecl 0 161 NULL
139204 +disable_so_zd_usb_iowrite16v_async_fndecl_163 zd_usb_iowrite16v_async fndecl 3 163 NULL
139205 +disable_so_si_get_mclk_frequency_ratio_fndecl_169 si_get_mclk_frequency_ratio fndecl 0-1 169 NULL
139206 +disable_so_vactive_vblank_hi_detailed_pixel_timing_173 vactive_vblank_hi detailed_pixel_timing 0 173 NULL
139207 +disable_so_ecryptfs_hash_bits_vardecl_messaging_c_174 ecryptfs_hash_bits vardecl_messaging.c 0 174 NULL
139208 +disable_so_addr_efx_endpoint_page_189 addr efx_endpoint_page 0 189 NULL
139209 +disable_so_uptime_proc_open_fndecl_190 uptime_proc_open fndecl 0 190 NULL
139210 +disable_so_mtrr_tom2_vardecl_198 mtrr_tom2 vardecl 0 198 NULL
139211 +disable_so_addr_sh_eth_txdesc_201 addr sh_eth_txdesc 0 201 NULL
139212 +disable_so_ocfs2_info_handle_uuid_fndecl_202 ocfs2_info_handle_uuid fndecl 0 202 NULL
139213 +disable_so_nf_oaktrail_hdmi_clock_216 nf oaktrail_hdmi_clock 0 216 NULL
139214 +disable_so_cpufreq_p4_setdc_fndecl_226 cpufreq_p4_setdc fndecl 1-2 226 NULL
139215 +disable_so_ieee80211_aes_ccm_decrypt_fndecl_227 ieee80211_aes_ccm_decrypt fndecl 0-5-7 227 NULL
139216 +disable_so_l1oip_4bit_to_law_fndecl_247 l1oip_4bit_to_law fndecl 0-2 247 NULL
139217 +disable_so_tune_timeout_vardecl_radio_si470x_common_c_250 tune_timeout vardecl_radio-si470x-common.c 0 250 NULL
139218 +disable_so_ieee80211_aes_cmac_key_setup_fndecl_254 ieee80211_aes_cmac_key_setup fndecl 2 254 NULL
139219 +disable_so_padlock_sha1_finup_fndecl_258 padlock_sha1_finup fndecl 0 258 NULL
139220 +disable_so_iwl_dbgfs_interrupt_read_fndecl_261 iwl_dbgfs_interrupt_read fndecl 3-0 261 NULL
139221 +disable_so_c2_del_addr_fndecl_280 c2_del_addr fndecl 2-3 280 NULL
139222 +disable_so_get_systime_stmmac_hwtimestamp_281 get_systime stmmac_hwtimestamp 0 281 NULL
139223 +disable_so_xfrm_flowi_saddr_fndecl_287 xfrm_flowi_saddr fndecl 2 287 NULL
139224 +disable_so_lifetime_route_info_291 lifetime route_info 0 291 NULL
139225 +disable_so_mtime_cifs_unix_set_info_args_293 mtime cifs_unix_set_info_args 0 293 NULL
139226 +disable_so_sense_addr_mscp_296 sense_addr mscp 0 296 NULL
139227 +disable_so_module_addr_max_rx_vardecl_module_c_304 module_addr_max_rx vardecl_module.c 0 304 NULL
139228 +disable_so_cy8ctmg110_set_sleepmode_fndecl_309 cy8ctmg110_set_sleepmode fndecl 0 309 NULL
139229 +disable_so_signal_cck_phy_hdr_312 signal cck_phy_hdr 0 312 NULL
139230 +disable_so_i915_ring_freq_table_fndecl_313 i915_ring_freq_table fndecl 0 313 NULL
139231 +disable_so_vga16fb_clock_chip_fndecl_316 vga16fb_clock_chip fndecl 2 316 NULL
139232 +disable_so_abituguru_send_address_fndecl_319 abituguru_send_address fndecl 3 319 NULL
139233 +disable_so_err_hci_request_321 err hci_request 0 321 NULL
139234 +disable_so_timeout_sg_io_hdr_322 timeout sg_io_hdr 0 322 NULL
139235 +disable_so_crypto_aead_maxauthsize_fndecl_331 crypto_aead_maxauthsize fndecl 0 331 NULL
139236 +disable_so_gru_first_node_paddr_vardecl_x2apic_uv_x_c_335 gru_first_node_paddr vardecl_x2apic_uv_x.c 0 335 NULL
139237 +disable_so_bitmap_subset_fndecl_340 bitmap_subset fndecl 3 340 NULL
139238 +disable_so_intr_timer_vnic_fc_config_342 intr_timer vnic_fc_config 0 342 NULL
139239 +disable_so_abort_timeout_iscsi_session_343 abort_timeout iscsi_session 0 343 NULL
139240 +disable_so_crypto_authenc_esn_verify_fndecl_345 crypto_authenc_esn_verify fndecl 0 345 NULL
139241 +disable_so_dn_hash_dump_zone_fndecl_347 dn_hash_dump_zone fndecl 0 347 NULL
139242 +disable_so_new_center_freq_seg0_ieee80211_wide_bw_chansw_ie_350 new_center_freq_seg0 ieee80211_wide_bw_chansw_ie 0 350 NULL
139243 +disable_so_ata_probe_timeout_vardecl_libata_core_c_353 ata_probe_timeout vardecl_libata-core.c 0 353 NULL
139244 +disable_so_posix_cpu_clock_get_fndecl_354 posix_cpu_clock_get fndecl 1 354 NULL
139245 +disable_so_ivtv_msleep_timeout_fndecl_356 ivtv_msleep_timeout fndecl 1 356 NULL nohasharray
139246 +disable_so_wrmsrl_amd_safe_fndecl_356 wrmsrl_amd_safe fndecl 0 356 &disable_so_ivtv_msleep_timeout_fndecl_356
139247 +disable_so_bp_tss_segment_16_362 bp tss_segment_16 0 362 NULL
139248 +disable_so_btree_level_jset_372 btree_level jset 0 372 NULL
139249 +disable_so_addr_mlx5_wqe_data_seg_376 addr mlx5_wqe_data_seg 0 376 NULL
139250 +disable_so_pos_encryptor_desc_380 pos encryptor_desc 0 380 NULL
139251 +disable_so_des4_idmac_desc_64addr_382 des4 idmac_desc_64addr 0 382 NULL
139252 +disable_so_huptimer_isdn_net_local_s_386 huptimer isdn_net_local_s 0 386 NULL
139253 +disable_so_ali_settimer_fndecl_390 ali_settimer fndecl 1 390 NULL
139254 +disable_so_show_constraint_time_window_us_fndecl_393 show_constraint_time_window_us fndecl 0 393 NULL nohasharray
139255 +disable_so_queue_con_delay_fndecl_393 queue_con_delay fndecl 2 393 &disable_so_show_constraint_time_window_us_fndecl_393
139256 +disable_so_btrfs_insert_delayed_item_fndecl_394 btrfs_insert_delayed_item fndecl 0 394 NULL nohasharray
139257 +disable_so_reg_w_fndecl_394 reg_w fndecl 3 394 &disable_so_btrfs_insert_delayed_item_fndecl_394
139258 +disable_so_liquidio_ptp_adjfreq_fndecl_396 liquidio_ptp_adjfreq fndecl 2 396 NULL
139259 +disable_so_freq_dvbt_set_parameters_msg_404 freq dvbt_set_parameters_msg 0 404 NULL
139260 +disable_so_uid_btrfs_inode_item_419 uid btrfs_inode_item 0 419 NULL
139261 +disable_so_cuid_ipc64_perm_421 cuid ipc64_perm 0 421 NULL
139262 +disable_so_addr_nvkm_fb_tile_430 addr nvkm_fb_tile 0 430 NULL
139263 +disable_so_st_ctime_nsec_stat_435 st_ctime_nsec stat 0 435 NULL nohasharray
139264 +disable_so_end_seq_tcp_skb_cb_435 end_seq tcp_skb_cb 0 435 &disable_so_st_ctime_nsec_stat_435
139265 +disable_so_ttime_samples_cfq_ttime_442 ttime_samples cfq_ttime 0 442 NULL
139266 +disable_so_snd_timer_interrupt_fndecl_465 snd_timer_interrupt fndecl 2 465 NULL
139267 +disable_so_min_img_ir_timing_range_466 min img_ir_timing_range 0 466 NULL
139268 +disable_so_freq_wmi_cancel_remain_on_chnl_event_472 freq wmi_cancel_remain_on_chnl_event 0 472 NULL
139269 +disable_so_prism54_set_mac_address_fndecl_477 prism54_set_mac_address fndecl 0 477 NULL
139270 +disable_so_ccp_run_xts_aes_cmd_fndecl_481 ccp_run_xts_aes_cmd fndecl 0 481 NULL
139271 +disable_so_queue_time_cqm_rmid_entry_485 queue_time cqm_rmid_entry 0 485 NULL
139272 +disable_so_hpi_sample_clock_query_local_rate_fndecl_487 hpi_sample_clock_query_local_rate fndecl 1-0 487 NULL
139273 +disable_so_bcma_chipco_get_alp_clock_fndecl_488 bcma_chipco_get_alp_clock fndecl 0 488 NULL
139274 +disable_so_musb_read_txhubaddr_fndecl_495 musb_read_txhubaddr fndecl 2-0 495 NULL
139275 +disable_so_timestamp_discovery_state_508 timestamp discovery_state 0 508 NULL
139276 +disable_so_autosleep_show_fndecl_509 autosleep_show fndecl 0 509 NULL
139277 +disable_so_dx_major_hash_ocfs2_dx_entry_517 dx_major_hash ocfs2_dx_entry 0 517 NULL
139278 +disable_so_rhashtable_insert_slow_fndecl_525 rhashtable_insert_slow fndecl 0 525 NULL
139279 +disable_so_vaddr_page_fndecl_526 vaddr_page fndecl 0 526 NULL
139280 +disable_so_apei_check_mce_fndecl_561 apei_check_mce fndecl 0 561 NULL
139281 +disable_so_cifs_convert_address_fndecl_567 cifs_convert_address fndecl 3 567 NULL
139282 +disable_so_nla_put_be32_fndecl_572 nla_put_be32 fndecl 0-3 572 NULL
139283 +disable_so_dn_username2sockaddr_fndecl_573 dn_username2sockaddr fndecl 0-2 573 NULL
139284 +disable_so_compat_sys_timer_settime_fndecl_577 compat_sys_timer_settime fndecl 1 577 NULL
139285 +disable_so_hash_extent_data_ref_fndecl_581 hash_extent_data_ref fndecl 0-1-2-3 581 NULL
139286 +disable_so_addr_buffer1_cmd_desc_type0_591 addr_buffer1 cmd_desc_type0 0 591 NULL
139287 +disable_so_acpi_os_prepare_extended_sleep_fndecl_597 acpi_os_prepare_extended_sleep fndecl 0-2 597 NULL
139288 +disable_so_mdio_addr_port_info_608 mdio_addr port_info 0 608 NULL
139289 +disable_so_dl_runtime_dl_bandwidth_609 dl_runtime dl_bandwidth 0 609 NULL
139290 +disable_so_sense_addr_asc_scsiq_1_628 sense_addr asc_scsiq_1 0 628 NULL
139291 +disable_so_x86_cache_max_rmid_cpuinfo_x86_631 x86_cache_max_rmid cpuinfo_x86 0 631 NULL
139292 +disable_so_wm8978_set_dai_clkdiv_fndecl_638 wm8978_set_dai_clkdiv fndecl 3-0 638 NULL
139293 +disable_so_new_cpufreq_freqs_646 new cpufreq_freqs 0 646 NULL
139294 +disable_so_max_offchan_duration_iwl_tdls_channel_switch_timing_649 max_offchan_duration iwl_tdls_channel_switch_timing 0 649 NULL
139295 +disable_so_i_ctime_nsec_ocfs2_dinode_657 i_ctime_nsec ocfs2_dinode 0 657 NULL
139296 +disable_so_req_dma_addr_generic_pdu_resc_661 req_dma_addr generic_pdu_resc 0 661 NULL
139297 +disable_so_minor_hash_fname_673 minor_hash fname 0 673 NULL
139298 +disable_so_sprintf_temp_from_reg_fndecl_675 sprintf_temp_from_reg fndecl 0-3 675 NULL
139299 +disable_so_cpu_freq_to_power_fndecl_677 cpu_freq_to_power fndecl 0-2 677 NULL
139300 +disable_so_timbradio_vidioc_s_frequency_fndecl_688 timbradio_vidioc_s_frequency fndecl 0 688 NULL
139301 +disable_so_target_bfa_bsg_rport_scsi_addr_s_690 target bfa_bsg_rport_scsi_addr_s 0 690 NULL
139302 +disable_so_cs_addr_snd_ak4xxx_private_693 cs_addr snd_ak4xxx_private 0 693 NULL
139303 +disable_so_s3_set_pixclock_fndecl_694 s3_set_pixclock fndecl 2 694 NULL
139304 +disable_so_write_gracetime_fndecl_705 write_gracetime fndecl 0 705 NULL
139305 +disable_so_smack_task_getpgid_fndecl_708 smack_task_getpgid fndecl 0 708 NULL
139306 +disable_so_wl1251_acx_service_period_timeout_fndecl_709 wl1251_acx_service_period_timeout fndecl 0 709 NULL
139307 +disable_so_gid_ubifs_ino_node_712 gid ubifs_ino_node 0 712 NULL
139308 +disable_so___sony_nc_kbd_backlight_timeout_set_fndecl_713 __sony_nc_kbd_backlight_timeout_set fndecl 1 713 NULL
139309 +disable_so_watchdog_init_timeout_fndecl_721 watchdog_init_timeout fndecl 2 721 NULL
139310 +disable_so_led_on_time_adp8870_backlight_platform_data_723 led_on_time adp8870_backlight_platform_data 0 723 NULL
139311 +disable_so_txhubaddr_musb_csr_regs_727 txhubaddr musb_csr_regs 0 727 NULL
139312 +disable_so_flexonenand_addr_fndecl_731 flexonenand_addr fndecl 0-2 731 NULL
139313 +disable_so_scan_timestamp_local_info_733 scan_timestamp local_info 0 733 NULL
139314 +disable_so_brcmf_dongle_scantime_fndecl_735 brcmf_dongle_scantime fndecl 2-3-4-0 735 NULL
139315 +disable_so_pg_delay_d_vardecl_pktgen_c_748 pg_delay_d vardecl_pktgen.c 0 748 NULL
139316 +disable_so_current_sit_addr_fndecl_752 current_sit_addr fndecl 0-2 752 NULL
139317 +disable_so_mix_msr_src_node_conf_t_769 mix_msr src_node_conf_t 0 769 NULL
139318 +disable_so_sha1_mb_async_final_fndecl_780 sha1_mb_async_final fndecl 0 780 NULL
139319 +disable_so_dma_addr_ipw2100_rx_packet_785 dma_addr ipw2100_rx_packet 0 785 NULL
139320 +disable_so_addrHigh_lpfc_pde7_802 addrHigh lpfc_pde7 0 802 NULL
139321 +disable_so_frequency_cpufreq_frequency_table_805 frequency cpufreq_frequency_table 0 805 NULL
139322 +disable_so_timer_int_req_nes_device_806 timer_int_req nes_device 0 806 NULL
139323 +disable_so_if_freq_mxl5005s_config_819 if_freq mxl5005s_config 0 819 NULL
139324 +disable_so_radix_tree_lookup_fndecl_821 radix_tree_lookup fndecl 2 821 NULL
139325 +disable_so_subdivision_dma_buffparms_826 subdivision dma_buffparms 0 826 NULL
139326 +disable_so_HYPERVISOR_event_channel_op_fndecl_838 HYPERVISOR_event_channel_op fndecl 0 838 NULL
139327 +disable_so_dm_jiffies_to_msec64_fndecl_843 dm_jiffies_to_msec64 fndecl 1-0 843 NULL
139328 +disable_so_trim_bitmaps_fndecl_845 trim_bitmaps fndecl 0-3-4-5 845 NULL
139329 +disable_so_cg_spll_spread_spectrum_2_ni_clock_registers_846 cg_spll_spread_spectrum_2 ni_clock_registers 0 846 NULL
139330 +disable_so_xfs_btree_increment_fndecl_856 xfs_btree_increment fndecl 0 856 NULL nohasharray
139331 +disable_so_xfs_btree_ptr_offset_fndecl_856 xfs_btree_ptr_offset fndecl 0-2 856 &disable_so_xfs_btree_increment_fndecl_856
139332 +disable_so_put_unaligned_be32_fndecl_861 put_unaligned_be32 fndecl 1 861 NULL
139333 +disable_so_acpi_os_map_generic_address_fndecl_862 acpi_os_map_generic_address fndecl 0 862 NULL
139334 +disable_so_mpll_func_cntl_1_ci_clock_registers_864 mpll_func_cntl_1 ci_clock_registers 0 864 NULL
139335 +disable_so_buffer_warning_time_budget_870 buffer_warning_time budget 0 870 NULL
139336 +disable_so_imr_sourceaddr_ip_mreq_source_875 imr_sourceaddr ip_mreq_source 0 875 NULL
139337 +disable_so_msi2500_s_frequency_fndecl_879 msi2500_s_frequency fndecl 0 879 NULL
139338 +disable_so_tx_bd_haddr_hi_bnx2_tx_bd_881 tx_bd_haddr_hi bnx2_tx_bd 0 881 NULL
139339 +disable_so_wmi_addr_fndecl_882 wmi_addr fndecl 2 882 NULL
139340 +disable_so_rt6_info_hash_nhsfn_fndecl_886 rt6_info_hash_nhsfn fndecl 0-1 886 NULL
139341 +disable_so_snd_seq_oss_timer_stop_fndecl_904 snd_seq_oss_timer_stop fndecl 0 904 NULL
139342 +disable_so_addr_lo_rx_desc_909 addr_lo rx_desc 0 909 NULL
139343 +disable_so_bx_tss_segment_16_926 bx tss_segment_16 0 926 NULL
139344 +disable_so_inactive_time_station_info_927 inactive_time station_info 0 927 NULL
139345 +disable_so_last_reset_jiffies_iwl_rf_reset_931 last_reset_jiffies iwl_rf_reset 0 931 NULL
139346 +disable_so_shm_dtime_shmid64_ds_943 shm_dtime shmid64_ds 0 943 NULL
139347 +disable_so_autosleep_store_fndecl_949 autosleep_store fndecl 0-4 949 NULL nohasharray
139348 +disable_so_sit_base_addr_sit_info_949 sit_base_addr sit_info 0 949 &disable_so_autosleep_store_fndecl_949
139349 +disable_so_ageing_time_net_bridge_957 ageing_time net_bridge 0 957 NULL
139350 +disable_so_set_frequency_shifter_fndecl_959 set_frequency_shifter fndecl 0-2-3 959 NULL
139351 +disable_so_pci_bus_vardecl_bkm_a8_c_960 pci_bus vardecl_bkm_a8.c 0 960 NULL
139352 +disable_so_i_uid_ext2_inode_963 i_uid ext2_inode 0 963 NULL
139353 +disable_so_cpufreq_cpu_get_fndecl_965 cpufreq_cpu_get fndecl 1 965 NULL
139354 +disable_so_tsc_offset_vmcb_control_area_968 tsc_offset vmcb_control_area 0 968 NULL
139355 +disable_so_read_addr_qla8044_minidump_entry_rdmem_977 read_addr qla8044_minidump_entry_rdmem 0 977 NULL
139356 +disable_so_addr1_nphy_rf_control_override_rev2_978 addr1 nphy_rf_control_override_rev2 0 978 NULL
139357 +disable_so_qdisc_class_hash_fndecl_982 qdisc_class_hash fndecl 0-1-2 982 NULL
139358 +disable_so_crypto_register_ahash_fndecl_984 crypto_register_ahash fndecl 0 984 NULL
139359 +disable_so_addr_unlock2_cfi_private_989 addr_unlock2 cfi_private 0 989 NULL
139360 +disable_so_calc_baud_rate_divisor_fndecl_995 calc_baud_rate_divisor fndecl 2 995 NULL
139361 +disable_so_scsi_runtime_suspend_fndecl_1008 scsi_runtime_suspend fndecl 0 1008 NULL
139362 +disable_so_gran_sizek_var_mtrr_state_1012 gran_sizek var_mtrr_state 0 1012 NULL
139363 +disable_so_ax25_uid_info_open_fndecl_1028 ax25_uid_info_open fndecl 0 1028 NULL
139364 +disable_so_sh_mmcif_clock_control_fndecl_1029 sh_mmcif_clock_control fndecl 2 1029 NULL
139365 +disable_so_SYSC_setresgid_fndecl_1032 SYSC_setresgid fndecl 0 1032 NULL
139366 +disable_so_f1x_lookup_addr_in_dct_fndecl_1033 f1x_lookup_addr_in_dct fndecl 0-1-2-3 1033 NULL
139367 +disable_so_ufshcd_pci_runtime_suspend_fndecl_1044 ufshcd_pci_runtime_suspend fndecl 0 1044 NULL
139368 +disable_so_rme9652_set_interrupt_interval_fndecl_1049 rme9652_set_interrupt_interval fndecl 2 1049 NULL
139369 +disable_so_kgdb_validate_break_address_fndecl_1055 kgdb_validate_break_address fndecl 0 1055 NULL
139370 +disable_so_cp_mqd_base_addr_hi_hqd_registers_1058 cp_mqd_base_addr_hi hqd_registers 0 1058 NULL
139371 +disable_so_serial8250_get_divisor_fndecl_1063 serial8250_get_divisor fndecl 2-0 1063 NULL
139372 +disable_so_mpll_func_cntl_ci_clock_registers_1072 mpll_func_cntl ci_clock_registers 0 1072 NULL
139373 +disable_so_dma_addr_iser_tx_desc_1074 dma_addr iser_tx_desc 0 1074 NULL nohasharray
139374 +disable_so_fail_addr_erase_info_1074 fail_addr erase_info 0 1074 &disable_so_dma_addr_iser_tx_desc_1074
139375 +disable_so_timeout_static_key_deferred_1078 timeout static_key_deferred 0 1078 NULL
139376 +disable_so_uid_vardecl_initramfs_c_1083 uid vardecl_initramfs.c 0 1083 NULL
139377 +disable_so_amdgpu_mm_rreg_fndecl_1084 amdgpu_mm_rreg fndecl 0-2 1084 NULL
139378 +disable_so_hash_ip6_expire_fndecl_1088 hash_ip6_expire fndecl 4 1088 NULL
139379 +disable_so_addr_buffer4_cmd_desc_type0_1089 addr_buffer4 cmd_desc_type0 0 1089 NULL
139380 +disable_so__snd_hdac_read_parm_fndecl_1100 _snd_hdac_read_parm fndecl 3-2-0 1100 NULL
139381 +disable_so_mlx5_query_mad_ifc_gids_fndecl_1101 mlx5_query_mad_ifc_gids fndecl 0 1101 NULL
139382 +disable_so_dbgfs_prph_reg_addr_iwl_mvm_1102 dbgfs_prph_reg_addr iwl_mvm 0 1102 NULL
139383 +disable_so_cttimeout_default_fill_info_fndecl_1107 cttimeout_default_fill_info fndecl 4-3-6-0 1107 NULL
139384 +disable_so_expiry_time_cache_head_1108 expiry_time cache_head 0 1108 NULL
139385 +disable_so_dma_desc_set_addr_fndecl_1139 dma_desc_set_addr fndecl 3 1139 NULL
139386 +disable_so_addr_crb_addr_pair_1140 addr crb_addr_pair 0 1140 NULL
139387 +disable_so_sleep_dvb_tuner_ops_1155 sleep dvb_tuner_ops 0 1155 NULL
139388 +disable_so_info_for_irq_fndecl_1159 info_for_irq fndecl 1 1159 NULL
139389 +disable_so_mlx4_ib_find_real_gid_fndecl_1163 mlx4_ib_find_real_gid fndecl 2 1163 NULL
139390 +disable_so_timestamp_perf_cgroup_info_1168 timestamp perf_cgroup_info 0 1168 NULL
139391 +disable_so_mthca_QUERY_FW_fndecl_1176 mthca_QUERY_FW fndecl 0 1176 NULL
139392 +disable_so_fc_exch_set_addr_fndecl_1180 fc_exch_set_addr fndecl 2-3 1180 NULL
139393 +disable_so_rhashtable_rehash_chain_fndecl_1192 rhashtable_rehash_chain fndecl 2 1192 NULL
139394 +disable_so_own_addr_tipc_net_1206 own_addr tipc_net 0 1206 NULL
139395 +disable_so_ip6addrlbl_alloc_fndecl_1212 ip6addrlbl_alloc fndecl 4 1212 NULL
139396 +disable_so_nft_hash_init_fndecl_1216 nft_hash_init fndecl 0 1216 NULL
139397 +disable_so_max_freq_cpufreq_cpuinfo_1219 max_freq cpufreq_cpuinfo 0 1219 NULL
139398 +disable_so_spi_port_rcvhdr_tailaddr_ipath_base_info_1223 spi_port_rcvhdr_tailaddr ipath_base_info 0 1223 NULL
139399 +disable_so_ceph_vxattrcb_dir_rctime_fndecl_1240 ceph_vxattrcb_dir_rctime fndecl 3-0 1240 NULL
139400 +disable_so_cas_interrupt_fndecl_1242 cas_interrupt fndecl 1 1242 NULL nohasharray
139401 +disable_so_set_msr_hyperv_fndecl_1242 set_msr_hyperv fndecl 3 1242 &disable_so_cas_interrupt_fndecl_1242
139402 +disable_so_mmc_rescan_try_freq_fndecl_1249 mmc_rescan_try_freq fndecl 2 1249 NULL
139403 +disable_so_rtsx_pci_write_be32_fndecl_1251 rtsx_pci_write_be32 fndecl 2-3 1251 NULL
139404 +disable_so_sum_sleep_runtime_sched_statistics_1253 sum_sleep_runtime sched_statistics 0 1253 NULL
139405 +disable_so_flags_pt_regs_1254 flags pt_regs 0 1254 NULL
139406 +disable_so_bug10934_timer_txc43128_data_1290 bug10934_timer txc43128_data 0 1290 NULL nohasharray
139407 +disable_so_rq_size_log2_t3_wq_1290 rq_size_log2 t3_wq 0 1290 &disable_so_bug10934_timer_txc43128_data_1290
139408 +disable_so_do_sched_rt_period_timer_fndecl_1292 do_sched_rt_period_timer fndecl 2 1292 NULL
139409 +disable_so_db_dma_address_skd_special_context_1295 db_dma_address skd_special_context 0 1295 NULL
139410 +disable_so_time_stamp_hbq_dmabuf_1300 time_stamp hbq_dmabuf 0 1300 NULL
139411 +disable_so_print_vma_addr_fndecl_1312 print_vma_addr fndecl 2 1312 NULL
139412 +disable_so_max_acl_mac_addrs_wiphy_1316 max_acl_mac_addrs wiphy 0 1316 NULL
139413 +disable_so_shash_async_update_fndecl_1319 shash_async_update fndecl 0 1319 NULL
139414 +disable_so_programm_delay_vardecl_nandsim_c_1320 programm_delay vardecl_nandsim.c 0 1320 NULL
139415 +disable_so_stimescaled_task_struct_1330 stimescaled task_struct 0 1330 NULL nohasharray
139416 +disable_so_p_gma_clock_t_1330 p gma_clock_t 0 1330 &disable_so_stimescaled_task_struct_1330
139417 +disable_so_bitmap_bytes_fndecl_1338 bitmap_bytes fndecl 0-1-2 1338 NULL
139418 +disable_so_max8649_enable_time_fndecl_1340 max8649_enable_time fndecl 0 1340 NULL
139419 +disable_so_sg_set_timeout_fndecl_1360 sg_set_timeout fndecl 0 1360 NULL
139420 +disable_so_mrp_join_time_vardecl_mrp_c_1361 mrp_join_time vardecl_mrp.c 0 1361 NULL
139421 +disable_so_queue_address_queue_properties_1364 queue_address queue_properties 0 1364 NULL
139422 +disable_so_adfs_unix2adfs_time_fndecl_1365 adfs_unix2adfs_time fndecl 2 1365 NULL nohasharray
139423 +disable_so_start_rmt_timer2_fndecl_1365 start_rmt_timer2 fndecl 2 1365 &disable_so_adfs_unix2adfs_time_fndecl_1365
139424 +disable_so_qla2x00_gid_list_size_fndecl_1367 qla2x00_gid_list_size fndecl 0 1367 NULL nohasharray
139425 +disable_so_sr_get_phy_addr_fndecl_1367 sr_get_phy_addr fndecl 0 1367 &disable_so_qla2x00_gid_list_size_fndecl_1367
139426 +disable_so_rb_subtree_last_anon_vma_chain_1370 rb_subtree_last anon_vma_chain 0 1370 NULL
139427 +disable_so_snd_soc_runtime_activate_fndecl_1372 snd_soc_runtime_activate fndecl 2 1372 NULL nohasharray
139428 +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
139429 +disable_so_timer_elsa_hw_1375 timer elsa_hw 0 1375 NULL nohasharray
139430 +disable_so_sched_setscheduler_fndecl_1375 sched_setscheduler fndecl 2-0 1375 &disable_so_timer_elsa_hw_1375 nohasharray
139431 +disable_so_bitmap_check_fndecl_1375 bitmap_check fndecl 3 1375 &disable_so_sched_setscheduler_fndecl_1375
139432 +disable_so_pwr_wake_on_timer_exp_read_fndecl_1379 pwr_wake_on_timer_exp_read fndecl 3-0 1379 NULL
139433 +disable_so_prev_input_time_vardecl_sequencer_c_1380 prev_input_time vardecl_sequencer.c 0 1380 NULL
139434 +disable_so_mii_phy_addr_gem_1381 mii_phy_addr gem 0 1381 NULL
139435 +disable_so_snd_seq_queue_timer_set_tempo_fndecl_1388 snd_seq_queue_timer_set_tempo fndecl 1-2 1388 NULL
139436 +disable_so_efx_ef10_rx_enable_timestamping_fndecl_1394 efx_ef10_rx_enable_timestamping fndecl 0 1394 NULL
139437 +disable_so_xfrm_src_hash_fndecl_1398 xfrm_src_hash fndecl 0-4 1398 NULL
139438 +disable_so_set_pixclock_fndecl_1401 set_pixclock fndecl 2 1401 NULL
139439 +disable_so_start_dma_addr_vardecl_swiotlb_xen_c_1402 start_dma_addr vardecl_swiotlb-xen.c 0 1402 NULL
139440 +disable_so_pcm512x_set_dividers_fndecl_1412 pcm512x_set_dividers fndecl 0 1412 NULL
139441 +disable_so_frequency_tea5761_priv_1416 frequency tea5761_priv 0 1416 NULL
139442 +disable_so_ifa_flags_ifaddrmsg_1431 ifa_flags ifaddrmsg 0 1431 NULL
139443 +disable_so_last_queue_full_time_scsi_device_1432 last_queue_full_time scsi_device 0 1432 NULL
139444 +disable_so_dma_ops_reserve_addresses_fndecl_1438 dma_ops_reserve_addresses fndecl 2-3 1438 NULL
139445 +disable_so_reg_w_fndecl_1440 reg_w fndecl 4-0 1440 NULL
139446 +disable_so_tomoyo_check_inet_address_fndecl_1442 tomoyo_check_inet_address fndecl 0-2-3 1442 NULL
139447 +disable_so_is_oldclock_fndecl_1444 is_oldclock fndecl 1 1444 NULL
139448 +disable_so_width_latch_addr_flash_data_1448 width latch_addr_flash_data 0 1448 NULL
139449 +disable_so_tuner_address_ix2505v_config_1466 tuner_address ix2505v_config 0 1466 NULL
139450 +disable_so_alarm_setitimer_fndecl_1477 alarm_setitimer fndecl 1-0 1477 NULL
139451 +disable_so_enc28j60_rx_interrupt_fndecl_1478 enc28j60_rx_interrupt fndecl 0 1478 NULL
139452 +disable_so_i2c_address_xc4000_config_1488 i2c_address xc4000_config 0 1488 NULL
139453 +disable_so_dx_runtime_sc_1503 dx runtime_sc 0 1503 NULL
139454 +disable_so_tda827x_addr_tda8290_priv_1514 tda827x_addr tda8290_priv 0 1514 NULL
139455 +disable_so_addr_sym_tblmove_1540 addr sym_tblmove 0 1540 NULL
139456 +disable_so_cs_tss_segment_16_1560 cs tss_segment_16 0 1560 NULL
139457 +disable_so_demod_address_drxk_state_1562 demod_address drxk_state 0 1562 NULL
139458 +disable_so_enable_time_regulation_constraints_1573 enable_time regulation_constraints 0 1573 NULL nohasharray
139459 +disable_so_dma_addr_flexcop_usb_1573 dma_addr flexcop_usb 0 1573 &disable_so_enable_time_regulation_constraints_1573
139460 +disable_so_dma_addr_cas_page_1575 dma_addr cas_page 0 1575 NULL
139461 +disable_so_start_read_delay_c_1578 start_read delay_c 0 1578 NULL
139462 +disable_so_complete_crypto_async_request_1579 complete crypto_async_request 2 1579 NULL
139463 +disable_so_cycles_2_us_fndecl_1583 cycles_2_us fndecl 0-1 1583 NULL
139464 +disable_so_pd_timeout_vardecl_pd_c_1584 pd_timeout vardecl_pd.c 0 1584 NULL
139465 +disable_so_last_end_request_cfq_ttime_1591 last_end_request cfq_ttime 0 1591 NULL
139466 +disable_so_addr_sky2_rx_le_1593 addr sky2_rx_le 0 1593 NULL
139467 +disable_so_tick_raw_sched_clock_data_1597 tick_raw sched_clock_data 0 1597 NULL
139468 +disable_so_if_freq_khz_pll_tab_1599 if_freq_khz pll_tab 0 1599 NULL
139469 +disable_so_set_clock_info_fndecl_1600 set_clock_info fndecl 0 1600 NULL
139470 +disable_so_bs_delay_cx24113_state_1602 bs_delay cx24113_state 0 1602 NULL
139471 +disable_so_address_atto_physical_region_description_1608 address atto_physical_region_description 0 1608 NULL
139472 +disable_so_jiffies_force_qs_rcu_state_1611 jiffies_force_qs rcu_state 0 1611 NULL
139473 +disable_so_mpll_ad_func_cntl_si_clock_registers_1615 mpll_ad_func_cntl si_clock_registers 0 1615 NULL
139474 +disable_so___new_c_uuid_parms_from_attrs_fndecl_1628 __new_c_uuid_parms_from_attrs fndecl 0 1628 NULL
139475 +disable_so___btree_sort_fndecl_1629 __btree_sort fndecl 4 1629 NULL
139476 +disable_so_crypto_authenc_encrypt_done_fndecl_1634 crypto_authenc_encrypt_done fndecl 2 1634 NULL
139477 +disable_so_uhci_submit_interrupt_fndecl_1635 uhci_submit_interrupt fndecl 0 1635 NULL
139478 +disable_so_es_tss_segment_16_1639 es tss_segment_16 0 1639 NULL
139479 +disable_so_addrHigh_sge_ieee1212_1649 addrHigh sge_ieee1212 0 1649 NULL
139480 +disable_so_btree_insert_level_fndecl_1651 btree_insert_level fndecl 6 1651 NULL
139481 +disable_so_calc_gus_envelope_time_fndecl_1653 calc_gus_envelope_time fndecl 1-2-3-0 1653 NULL
139482 +disable_so_rhashtable_shrink_fndecl_1657 rhashtable_shrink fndecl 0 1657 NULL
139483 +disable_so_jiffies_next_msi2500_state_1659 jiffies_next msi2500_state 0 1659 NULL
139484 +disable_so_di_gid_dinode_1663 di_gid dinode 0 1663 NULL
139485 +disable_so_address_drm_radeon_surface_alloc_1665 address drm_radeon_surface_alloc 0 1665 NULL
139486 +disable_so_nsec_btrfs_ioctl_timespec_1668 nsec btrfs_ioctl_timespec 0 1668 NULL
139487 +disable_so_uptime_sysinfo_1669 uptime sysinfo 0 1669 NULL
139488 +disable_so_timeout_mgmt_cp_add_advertising_1685 timeout mgmt_cp_add_advertising 0 1685 NULL nohasharray
139489 +disable_so_systime_fndecl_1685 systime fndecl 0 1685 &disable_so_timeout_mgmt_cp_add_advertising_1685 nohasharray
139490 +disable_so_addr0_ulptx_sgl_1685 addr0 ulptx_sgl 0 1685 &disable_so_systime_fndecl_1685
139491 +disable_so_poll_timeout_irlap_cb_1688 poll_timeout irlap_cb 0 1688 NULL nohasharray
139492 +disable_so_tsc_irq_max8925_chip_1688 tsc_irq max8925_chip 0 1688 &disable_so_poll_timeout_irlap_cb_1688
139493 +disable_so_pbl_addr_t3_swrq_1691 pbl_addr t3_swrq 0 1691 NULL
139494 +disable_so_ar_addr_qlc_83xx_quad_entry_1699 ar_addr qlc_83xx_quad_entry 0 1699 NULL
139495 +disable_so_min_freq_softlimit_intel_gen6_power_mgmt_1704 min_freq_softlimit intel_gen6_power_mgmt 0 1704 NULL
139496 +disable_so_spkt_family_sockaddr_pkt_1712 spkt_family sockaddr_pkt 0 1712 NULL
139497 +disable_so_timeout_vardecl_w83877f_wdt_c_1721 timeout vardecl_w83877f_wdt.c 0 1721 NULL
139498 +disable_so_nfs_map_gid_to_group_fndecl_1724 nfs_map_gid_to_group fndecl 4-0 1724 NULL
139499 +disable_so_iram_offset_sst_addr_1727 iram_offset sst_addr 0 1727 NULL
139500 +disable_so_mp_lapic_addr_vardecl_1729 mp_lapic_addr vardecl 0 1729 NULL
139501 +disable_so_apei_write_mce_fndecl_1731 apei_write_mce fndecl 0 1731 NULL
139502 +disable_so_spectrum_stv0900_signal_info_1736 spectrum stv0900_signal_info 0 1736 NULL
139503 +disable_so_hash_ipmark6_expire_fndecl_1741 hash_ipmark6_expire fndecl 4 1741 NULL
139504 +disable_so_r100_mm_rreg_slow_fndecl_1751 r100_mm_rreg_slow fndecl 2-0 1751 NULL
139505 +disable_so_gntdev_ioctl_get_offset_for_vaddr_fndecl_1754 gntdev_ioctl_get_offset_for_vaddr fndecl 0 1754 NULL
139506 +disable_so_cm36651_write_int_time_fndecl_1774 cm36651_write_int_time fndecl 0 1774 NULL
139507 +disable_so_dp_clock_radeon_connector_atom_dig_1775 dp_clock radeon_connector_atom_dig 0 1775 NULL nohasharray
139508 +disable_so_am79c_ack_interrupt_fndecl_1775 am79c_ack_interrupt fndecl 0 1775 &disable_so_dp_clock_radeon_connector_atom_dig_1775
139509 +disable_so_phys_addr_qlcnic_host_tx_ring_1780 phys_addr qlcnic_host_tx_ring 0 1780 NULL nohasharray
139510 +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
139511 +disable_so_select_addr_1_qla83xx_minidump_entry_rdmux2_1790 select_addr_1 qla83xx_minidump_entry_rdmux2 0 1790 NULL
139512 +disable_so___padata_set_cpumasks_fndecl_1793 __padata_set_cpumasks fndecl 0 1793 NULL
139513 +disable_so_padlock_sha_init_fndecl_1815 padlock_sha_init fndecl 0 1815 NULL
139514 +disable_so_acpi_cpufreq_early_init_fndecl_1824 acpi_cpufreq_early_init fndecl 0 1824 NULL
139515 +disable_so_dst_addr_ioat_xor_descriptor_1835 dst_addr ioat_xor_descriptor 0 1835 NULL
139516 +disable_so_sadb_lifetime_bytes_sadb_lifetime_1836 sadb_lifetime_bytes sadb_lifetime 0 1836 NULL
139517 +disable_so_event_box_addr_wl1251_1839 event_box_addr wl1251 0 1839 NULL
139518 +disable_so_addr_ahci_sg_1848 addr ahci_sg 0 1848 NULL
139519 +disable_so_acct_timexpd_task_struct_1854 acct_timexpd task_struct 0 1854 NULL
139520 +disable_so_mkey_lease_timeout_ipath_ibdev_1856 mkey_lease_timeout ipath_ibdev 0 1856 NULL nohasharray
139521 +disable_so_paddr_idt77252_skb_prv_1856 paddr idt77252_skb_prv 0 1856 &disable_so_mkey_lease_timeout_ipath_ibdev_1856
139522 +disable_so_timeout_dmatest_params_1857 timeout dmatest_params 0 1857 NULL
139523 +disable_so_cipso_v4_bitmap_setbit_fndecl_1861 cipso_v4_bitmap_setbit fndecl 2 1861 NULL
139524 +disable_so_sun6i_spi_runtime_resume_fndecl_1869 sun6i_spi_runtime_resume fndecl 0 1869 NULL
139525 +disable_so_shash_ahash_update_fndecl_1877 shash_ahash_update fndecl 0 1877 NULL
139526 +disable_so_ss_family___kernel_sockaddr_storage_1886 ss_family __kernel_sockaddr_storage 0 1886 NULL
139527 +disable_so_swap_time_bloom_pair_1898 swap_time bloom_pair 0 1898 NULL nohasharray
139528 +disable_so_blank_time_dce6_wm_params_1898 blank_time dce6_wm_params 0 1898 &disable_so_swap_time_bloom_pair_1898
139529 +disable_so_btree_order_fndecl_1901 btree_order fndecl 0 1901 NULL
139530 +disable_so_sil_iowrite16_fndecl_1906 sil_iowrite16 fndecl 3-2 1906 NULL
139531 +disable_so_service_timer_period_i40e_pf_1923 service_timer_period i40e_pf 0 1923 NULL nohasharray
139532 +disable_so_address_acpi_resource_fixed_memory32_1923 address acpi_resource_fixed_memory32 0 1923 &disable_so_service_timer_period_i40e_pf_1923
139533 +disable_so_paddr_dw_spi_1926 paddr dw_spi 0 1926 NULL
139534 +disable_so___audit_sockaddr_fndecl_1929 __audit_sockaddr fndecl 1 1929 NULL
139535 +disable_so_ieee80211_aes_gcm_key_setup_encrypt_fndecl_1936 ieee80211_aes_gcm_key_setup_encrypt fndecl 2 1936 NULL
139536 +disable_so_mce_chrdev_open_fndecl_1937 mce_chrdev_open fndecl 0 1937 NULL
139537 +disable_so_shadow_reg_phy_addr_ql3_adapter_1940 shadow_reg_phy_addr ql3_adapter 0 1940 NULL
139538 +disable_so_dma_addr_t3_cq_1953 dma_addr t3_cq 0 1953 NULL
139539 +disable_so_crypto_pcbc_decrypt_inplace_fndecl_1957 crypto_pcbc_decrypt_inplace fndecl 0 1957 NULL
139540 +disable_so_sw_reset_and_clock_fndecl_1963 sw_reset_and_clock fndecl 0 1963 NULL
139541 +disable_so_wp_next_time_fndecl_1967 wp_next_time fndecl 0-1 1967 NULL
139542 +disable_so_timer_expires_dev_pm_info_1979 timer_expires dev_pm_info 0 1979 NULL
139543 +disable_so_dll_cntl_si_clock_registers_1988 dll_cntl si_clock_registers 0 1988 NULL
139544 +disable_so_sysctl_x25_clear_request_timeout_vardecl_2007 sysctl_x25_clear_request_timeout vardecl 0 2007 NULL
139545 +disable_so___skb_complete_tx_timestamp_fndecl_2011 __skb_complete_tx_timestamp fndecl 3 2011 NULL
139546 +disable_so_st_ctime_compat_stat_2020 st_ctime compat_stat 0 2020 NULL
139547 +disable_so_ns_nongc_ctime_the_nilfs_2021 ns_nongc_ctime the_nilfs 0 2021 NULL
139548 +disable_so_slave_address_cp2112_write_read_req_report_2022 slave_address cp2112_write_read_req_report 0 2022 NULL
139549 +disable_so_beacon_timeout_ms_show_fndecl_2029 beacon_timeout_ms_show fndecl 0 2029 NULL
139550 +disable_so_daddr_lap_cb_2033 daddr lap_cb 0 2033 NULL
139551 +disable_so_next_txd_phys_addr_mwl8k_tx_desc_2040 next_txd_phys_addr mwl8k_tx_desc 0 2040 NULL
139552 +disable_so_tps65910_rtc_set_time_fndecl_2042 tps65910_rtc_set_time fndecl 0 2042 NULL
139553 +disable_so_address_sg_list_2047 address sg_list 0 2047 NULL
139554 +disable_so_r62_val_fc2580_freq_regs_2052 r62_val fc2580_freq_regs 0 2052 NULL
139555 +disable_so_atomic64_cmpxchg_fndecl_2053 atomic64_cmpxchg fndecl 0-2-3 2053 NULL
139556 +disable_so_delay_cfg80211_coalesce_rules_2055 delay cfg80211_coalesce_rules 0 2055 NULL
139557 +disable_so_addrconf_sysctl_register_fndecl_2065 addrconf_sysctl_register fndecl 0 2065 NULL nohasharray
139558 +disable_so_max_timeout_watchdog_device_2065 max_timeout watchdog_device 0 2065 &disable_so_addrconf_sysctl_register_fndecl_2065
139559 +disable_so_gid_autofs_v5_packet_2071 gid autofs_v5_packet 0 2071 NULL
139560 +disable_so_ratio_t_rj54n1_clock_div_2081 ratio_t rj54n1_clock_div 0 2081 NULL
139561 +disable_so_compat_sys_signalfd4_fndecl_2082 compat_sys_signalfd4 fndecl 0-4 2082 NULL
139562 +disable_so_demod_address_ds3000_config_2084 demod_address ds3000_config 0 2084 NULL
139563 +disable_so_xfrm_flowi_addr_get_fndecl_2087 xfrm_flowi_addr_get fndecl 4 2087 NULL
139564 +disable_so_ts_delay_vardecl_ucb1400_ts_c_2088 ts_delay vardecl_ucb1400_ts.c 0 2088 NULL
139565 +disable_so_get_cpu_iowait_time_us_fndecl_2097 get_cpu_iowait_time_us fndecl 0-1 2097 NULL
139566 +disable_so_crypto_sha1_finup_fndecl_2101 crypto_sha1_finup fndecl 3 2101 NULL
139567 +disable_so_wlc_phy_chan2freq_nphy_fndecl_2103 wlc_phy_chan2freq_nphy fndecl 2 2103 NULL
139568 +disable_so_palmas_smps_set_ramp_delay_fndecl_2110 palmas_smps_set_ramp_delay fndecl 0 2110 NULL
139569 +disable_so_ncp_add_be32_fndecl_2114 ncp_add_be32 fndecl 2 2114 NULL
139570 +disable_so_fast_div_bias_ath_hw_antcomb_conf_2119 fast_div_bias ath_hw_antcomb_conf 0 2119 NULL
139571 +disable_so_memconsole_baseaddr_vardecl_memconsole_c_2130 memconsole_baseaddr vardecl_memconsole.c 0 2130 NULL
139572 +disable_so_max8907_rtc_read_time_fndecl_2134 max8907_rtc_read_time fndecl 0 2134 NULL
139573 +disable_so_cur_daddr_pktgen_dev_2141 cur_daddr pktgen_dev 0 2141 NULL
139574 +disable_so_mapped_loc_addr_nes_cm_listener_2153 mapped_loc_addr nes_cm_listener 0 2153 NULL
139575 +disable_so_index_ath_gen_timer_2154 index ath_gen_timer 0 2154 NULL
139576 +disable_so_brcms_c_duty_cycle_set_fndecl_2162 brcms_c_duty_cycle_set fndecl 2 2162 NULL
139577 +disable_so_rx_addr_happy_meal_rxd_2164 rx_addr happy_meal_rxd 0 2164 NULL
139578 +disable_so_cp_dma_addr_mscp_2187 cp_dma_addr mscp 0 2187 NULL
139579 +disable_so_address_hi_be_bus_address32_2192 address_hi be_bus_address32 0 2192 NULL nohasharray
139580 +disable_so_parse_sockaddr_pair_fndecl_2192 parse_sockaddr_pair fndecl 0-2 2192 &disable_so_address_hi_be_bus_address32_2192
139581 +disable_so_channel_sockaddr_mISDN_2193 channel sockaddr_mISDN 0 2193 NULL
139582 +disable_so_channel_time_mwl8k_priv_2196 channel_time mwl8k_priv 0 2196 NULL
139583 +disable_so_saddr_min_pktgen_dev_2198 saddr_min pktgen_dev 0 2198 NULL
139584 +disable_so_cirrus_set_start_address_fndecl_2201 cirrus_set_start_address fndecl 2 2201 NULL
139585 +disable_so_exp_time_rmc_entry_2203 exp_time rmc_entry 0 2203 NULL
139586 +disable_so_acpi_os_get_timer_fndecl_2213 acpi_os_get_timer fndecl 0 2213 NULL nohasharray
139587 +disable_so_to_addr_efx_memcpy_req_2213 to_addr efx_memcpy_req 0 2213 &disable_so_acpi_os_get_timer_fndecl_2213
139588 +disable_so_gather_bitmaps_fndecl_2219 gather_bitmaps fndecl 0 2219 NULL
139589 +disable_so_timeout_ms_rdma_ucm_resolve_ip_2231 timeout_ms rdma_ucm_resolve_ip 0 2231 NULL
139590 +disable_so_ui_birthtime_ufs2_inode_2238 ui_birthtime ufs2_inode 0 2238 NULL
139591 +disable_so_security_mmap_addr_fndecl_2241 security_mmap_addr fndecl 0-1 2241 NULL
139592 +disable_so_atl1c_hash_mc_addr_fndecl_2245 atl1c_hash_mc_addr fndecl 0 2245 NULL
139593 +disable_so_isl1208_i2c_read_time_fndecl_2247 isl1208_i2c_read_time fndecl 0 2247 NULL
139594 +disable_so_stats_reset_time_bfa_fcport_s_2251 stats_reset_time bfa_fcport_s 0 2251 NULL
139595 +disable_so_uid_mcontroller_2253 uid mcontroller 0 2253 NULL
139596 +disable_so_daddr_iriap_cb_2262 daddr iriap_cb 0 2262 NULL
139597 +disable_so_rtl2832_sdr_set_tuner_freq_fndecl_2267 rtl2832_sdr_set_tuner_freq fndecl 0 2267 NULL
139598 +disable_so_chipio_write_address_fndecl_2270 chipio_write_address fndecl 0-2 2270 NULL
139599 +disable_so_small_buf_q_phy_addr_ql3_adapter_2279 small_buf_q_phy_addr ql3_adapter 0 2279 NULL
139600 +disable_so_sys_utime_fndecl_2283 sys_utime fndecl 0 2283 NULL nohasharray
139601 +disable_so_muldiv32_fndecl_2283 muldiv32 fndecl 0-1-2-3 2283 &disable_so_sys_utime_fndecl_2283
139602 +disable_so_bd_list_addr_hi_bnx2i_nop_out_request_2284 bd_list_addr_hi bnx2i_nop_out_request 0 2284 NULL
139603 +disable_so_show_trans_timeout_fndecl_2286 show_trans_timeout fndecl 0 2286 NULL
139604 +disable_so_il4965_tx_queue_stop_scheduler_fndecl_2292 il4965_tx_queue_stop_scheduler fndecl 2 2292 NULL
139605 +disable_so_demod_address_ves1820_config_2298 demod_address ves1820_config 0 2298 NULL
139606 +disable_so_backlight_on_delay_cdv_intel_dp_2301 backlight_on_delay cdv_intel_dp 0 2301 NULL
139607 +disable_so_ip_vs_lblcr_hashkey_fndecl_2305 ip_vs_lblcr_hashkey fndecl 1 2305 NULL
139608 +disable_so_tulip_interrupt_fndecl_2323 tulip_interrupt fndecl 1 2323 NULL
139609 +disable_so_m_ts_clockk_strength_drxk_state_2324 m_ts_clockk_strength drxk_state 0 2324 NULL
139610 +disable_so_carl9170_debugfs_hw_iowrite32_write_fndecl_2330 carl9170_debugfs_hw_iowrite32_write fndecl 0-3 2330 NULL
139611 +disable_so_iclock_count_vardecl_clock_c_2334 iclock_count vardecl_clock.c 0 2334 NULL
139612 +disable_so_eop_gpu_addr_kernel_queue_2339 eop_gpu_addr kernel_queue 0 2339 NULL
139613 +disable_so___insert_inode_hash_fndecl_2341 __insert_inode_hash fndecl 2 2341 NULL
139614 +disable_so_lasttime_vardecl_serial_u16550_c_2348 lasttime vardecl_serial-u16550.c 0 2348 NULL
139615 +disable_so_custom_divisor_ftdi_private_2356 custom_divisor ftdi_private 0 2356 NULL nohasharray
139616 +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
139617 +disable_so_cdrom_get_random_writable_fndecl_2357 cdrom_get_random_writable fndecl 0 2357 NULL
139618 +disable_so_delay_vardecl_wm9713_c_2358 delay vardecl_wm9713.c 0 2358 NULL
139619 +disable_so_usc_enable_async_clock_fndecl_2361 usc_enable_async_clock fndecl 2 2361 NULL
139620 +disable_so___cpu_to_virtio64_fndecl_2365 __cpu_to_virtio64 fndecl 0-2 2365 NULL
139621 +disable_so_freq_offset_xc5000_priv_2385 freq_offset xc5000_priv 0 2385 NULL
139622 +disable_so_decompressed_size_regcache_lzo_ctx_2401 decompressed_size regcache_lzo_ctx 0 2401 NULL
139623 +disable_so_tps65910_sleepinit_fndecl_2406 tps65910_sleepinit fndecl 0 2406 NULL
139624 +disable_so_i2c_address_dib0090_config_2410 i2c_address dib0090_config 0 2410 NULL
139625 +disable_so_paddr_nes_fast_mr_wqe_pbl_2411 paddr nes_fast_mr_wqe_pbl 0 2411 NULL
139626 +disable_so_time_fcoe_fcf_2412 time fcoe_fcf 0 2412 NULL
139627 +disable_so_ndisc_addr_option_pad_fndecl_2413 ndisc_addr_option_pad fndecl 0 2413 NULL
139628 +disable_so_next_cpu_uv_rtc_timer_head_2424 next_cpu uv_rtc_timer_head 0 2424 NULL
139629 +disable_so_buffer_addr_fm10k_tx_desc_2425 buffer_addr fm10k_tx_desc 0 2425 NULL
139630 +disable_so_ahci_init_interrupts_fndecl_2426 ahci_init_interrupts fndecl 2-0 2426 NULL
139631 +disable_so_cp_interrupt_fndecl_2429 cp_interrupt fndecl 1 2429 NULL
139632 +disable_so_sha1_mb_update_fndecl_2431 sha1_mb_update fndecl 0 2431 NULL
139633 +disable_so_mii_bmsr1_bnx2_2432 mii_bmsr1 bnx2 0 2432 NULL
139634 +disable_so_i2c_addr_lnbp21_2433 i2c_addr lnbp21 0 2433 NULL
139635 +disable_so_dmadesc_set_addr_fndecl_2434 dmadesc_set_addr fndecl 3 2434 NULL
139636 +disable_so___irq_alloc_descs_fndecl_2452 __irq_alloc_descs fndecl 0-3-2-1-4 2452 NULL
139637 +disable_so_efx_ptp_process_times_fndecl_2453 efx_ptp_process_times fndecl 0 2453 NULL
139638 +disable_so_SiS_SetReg_fndecl_2455 SiS_SetReg fndecl 2-3-4 2455 NULL
139639 +disable_so_hashlimit_byte_cost_fndecl_2456 hashlimit_byte_cost fndecl 0-1 2456 NULL
139640 +disable_so_sd_mtime_stat_data_v1_2460 sd_mtime stat_data_v1 0 2460 NULL
139641 +disable_so_string_addr_inc_fndecl_2472 string_addr_inc fndecl 2 2472 NULL
139642 +disable_so_set_mc_hash_fndecl_2473 set_mc_hash fndecl 0 2473 NULL
139643 +disable_so_height_psb_intel_sdvo_preferred_input_timing_args_2479 height psb_intel_sdvo_preferred_input_timing_args 0 2479 NULL
139644 +disable_so_seq_netlbl_unlhsh_walk_arg_2483 seq netlbl_unlhsh_walk_arg 0 2483 NULL
139645 +disable_so_set_cpu_itimer_fndecl_2486 set_cpu_itimer fndecl 2 2486 NULL
139646 +disable_so_reqoff_crypto_authenc_ctx_2490 reqoff crypto_authenc_ctx 0 2490 NULL
139647 +disable_so_i_gid_ocfs2_dinode_2496 i_gid ocfs2_dinode 0 2496 NULL
139648 +disable_so_bind_mcastif_addr_fndecl_2497 bind_mcastif_addr fndecl 0 2497 NULL
139649 +disable_so_pm_runtime_put_autosuspend_fndecl_2498 pm_runtime_put_autosuspend fndecl 0 2498 NULL
139650 +disable_so_xfs_btree_insert_fndecl_2499 xfs_btree_insert fndecl 0 2499 NULL
139651 +disable_so_update_time_fndecl_2500 update_time fndecl 0 2500 NULL
139652 +disable_so_fill_mtrr_var_range_fndecl_2523 fill_mtrr_var_range fndecl 2-3-4-5 2523 NULL
139653 +disable_so_of_cpufreq_power_cooling_register_fndecl_2525 of_cpufreq_power_cooling_register fndecl 3 2525 NULL
139654 +disable_so_addr_genwqe_mem_2530 addr genwqe_mem 0 2530 NULL
139655 +disable_so_rtr_solicit_delay_ipv6_devconf_2532 rtr_solicit_delay ipv6_devconf 0 2532 NULL nohasharray
139656 +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
139657 +disable_so_vhost16_to_cpu_fndecl_2533 vhost16_to_cpu fndecl 0 2533 NULL
139658 +disable_so_clock_adj_k_clock_2534 clock_adj k_clock 1 2534 NULL
139659 +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
139660 +disable_so_clock_fc2580_config_2541 clock fc2580_config 0 2541 NULL
139661 +disable_so_sb_bitmaps_hpfs_sb_info_2542 sb_bitmaps hpfs_sb_info 0 2542 NULL
139662 +disable_so_devfreq_event_get_edev_by_phandle_fndecl_2550 devfreq_event_get_edev_by_phandle fndecl 2 2550 NULL
139663 +disable_so_reiserfs_allocate_list_bitmaps_fndecl_2551 reiserfs_allocate_list_bitmaps fndecl 3 2551 NULL
139664 +disable_so_nr_set_mac_address_fndecl_2555 nr_set_mac_address fndecl 0 2555 NULL
139665 +disable_so_SYSC_setuid_fndecl_2561 SYSC_setuid fndecl 0 2561 NULL
139666 +disable_so_shadow_ctx_time_perf_event_2574 shadow_ctx_time perf_event 0 2574 NULL nohasharray
139667 +disable_so_kernel_text_address_fndecl_2574 kernel_text_address fndecl 1 2574 &disable_so_shadow_ctx_time_perf_event_2574
139668 +disable_so_msb_bna_dma_addr_2580 msb bna_dma_addr 0 2580 NULL
139669 +disable_so_ipmi_get_my_address_fndecl_2581 ipmi_get_my_address fndecl 0 2581 NULL
139670 +disable_so_scan_sleep_millisecs_show_fndecl_2585 scan_sleep_millisecs_show fndecl 0 2585 NULL
139671 +disable_so_l2tp_scope_id_sockaddr_l2tpip6_2587 l2tp_scope_id sockaddr_l2tpip6 0 2587 NULL
139672 +disable_so_freq_to_idx_fndecl_2591 freq_to_idx fndecl 2 2591 NULL
139673 +disable_so_tps65910_set_ext_sleep_config_fndecl_2597 tps65910_set_ext_sleep_config fndecl 0-2 2597 NULL
139674 +disable_so_try_write_address_fndecl_2599 try_write_address fndecl 0 2599 NULL
139675 +disable_so_ifa_mask_in_ifaddr_2609 ifa_mask in_ifaddr 0 2609 NULL
139676 +disable_so_phys_addr_nx_host_tx_ring_2615 phys_addr nx_host_tx_ring 0 2615 NULL
139677 +disable_so_usb_wait_anchor_empty_timeout_fndecl_2618 usb_wait_anchor_empty_timeout fndecl 2-0 2618 NULL nohasharray
139678 +disable_so_p2_gma_clock_t_2618 p2 gma_clock_t 0 2618 &disable_so_usb_wait_anchor_empty_timeout_fndecl_2618 nohasharray
139679 +disable_so_cra_blocksize_crypto_alg_2618 cra_blocksize crypto_alg 0 2618 &disable_so_p2_gma_clock_t_2618
139680 +disable_so_b1_setinterrupt_fndecl_2626 b1_setinterrupt fndecl 1-2 2626 NULL
139681 +disable_so_flsh_addr_esas2r_flash_context_2628 flsh_addr esas2r_flash_context 0 2628 NULL
139682 +disable_so_bClockID_uac_clock_source_descriptor_2629 bClockID uac_clock_source_descriptor 0 2629 NULL
139683 +disable_so_free_dma_map_ops_2636 free dma_map_ops 4 2636 NULL
139684 +disable_so_apds990x_set_atime_fndecl_2647 apds990x_set_atime fndecl 2 2647 NULL
139685 +disable_so_jiffies_sdr_cap_vivid_dev_2650 jiffies_sdr_cap vivid_dev 0 2650 NULL
139686 +disable_so_rf_mux_ploy_r820t_freq_range_2652 rf_mux_ploy r820t_freq_range 0 2652 NULL nohasharray
139687 +disable_so_policy_hash_direct_fndecl_2652 policy_hash_direct fndecl 4 2652 &disable_so_rf_mux_ploy_r820t_freq_range_2652
139688 +disable_so_base_addr_sudmac_regs_2655 base_addr sudmac_regs 0 2655 NULL
139689 +disable_so_id_rdma_ucm_resolve_addr_2656 id rdma_ucm_resolve_addr 0 2656 NULL
139690 +disable_so_demod_address_stv0367_config_2659 demod_address stv0367_config 0 2659 NULL
139691 +disable_so_get_if_frequency_dvb_tuner_ops_2660 get_if_frequency dvb_tuner_ops 0 2660 NULL
139692 +disable_so_r_idx_addr_brcmf_pcie_ringbuf_2666 r_idx_addr brcmf_pcie_ringbuf 0 2666 NULL
139693 +disable_so_address_sisusb_packet_2668 address sisusb_packet 0 2668 NULL
139694 +disable_so_cia_min_keysize_cipher_alg_2682 cia_min_keysize cipher_alg 0 2682 NULL
139695 +disable_so_snd_timer_start_fndecl_2702 snd_timer_start fndecl 2-0 2702 NULL
139696 +disable_so_erst_exec_set_src_address_base_fndecl_2703 erst_exec_set_src_address_base fndecl 0 2703 NULL
139697 +disable_so_end_seq_tcp_sack_block_wire_2708 end_seq tcp_sack_block_wire 0 2708 NULL nohasharray
139698 +disable_so__abb5zes3_rtc_read_timer_fndecl_2708 _abb5zes3_rtc_read_timer fndecl 0 2708 &disable_so_end_seq_tcp_sack_block_wire_2708
139699 +disable_so_rn5t618_wdt_set_timeout_fndecl_2711 rn5t618_wdt_set_timeout fndecl 2-0 2711 NULL nohasharray
139700 +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
139701 +disable_so_hdelayx1_bttv_tvnorm_2714 hdelayx1 bttv_tvnorm 0 2714 NULL
139702 +disable_so_raw_interval_timekeeper_2728 raw_interval timekeeper 0 2728 NULL
139703 +disable_so___vxge_hw_ring_item_dma_addr_fndecl_2731 __vxge_hw_ring_item_dma_addr fndecl 0 2731 NULL
139704 +disable_so_mlx5_query_hca_vport_gid_fndecl_2744 mlx5_query_hca_vport_gid fndecl 0 2744 NULL
139705 +disable_so_period_ptr_atmel_runtime_data_2748 period_ptr atmel_runtime_data 0 2748 NULL
139706 +disable_so_buf_addr_lo_fcoe_bd_ctx_2755 buf_addr_lo fcoe_bd_ctx 0 2755 NULL nohasharray
139707 +disable_so_cycles_2_ns_fndecl_2755 cycles_2_ns fndecl 0-1 2755 &disable_so_buf_addr_lo_fcoe_bd_ctx_2755
139708 +disable_so_md5_parse_tcp_sock_af_ops_2765 md5_parse tcp_sock_af_ops 3-0 2765 NULL
139709 +disable_so_nbytes_ablkcipher_walk_2767 nbytes ablkcipher_walk 0 2767 NULL
139710 +disable_so_crypto_hash_setkey_fndecl_2770 crypto_hash_setkey fndecl 0-3 2770 NULL
139711 +disable_so_addr_gf100_gr_init_2776 addr gf100_gr_init 0 2776 NULL
139712 +disable_so_auth_hashbits_vardecl_auth_c_2783 auth_hashbits vardecl_auth.c 0 2783 NULL
139713 +disable_so_ipr_reset_start_timer_fndecl_2784 ipr_reset_start_timer fndecl 2 2784 NULL nohasharray
139714 +disable_so_tv_sec_compat_timeval_2784 tv_sec compat_timeval 0 2784 &disable_so_ipr_reset_start_timer_fndecl_2784 nohasharray
139715 +disable_so_addr_vring_desc_2784 addr vring_desc 0 2784 &disable_so_tv_sec_compat_timeval_2784
139716 +disable_so_addr_initio_host_2790 addr initio_host 0 2790 NULL
139717 +disable_so_i2c_addr_dib7000p_state_2791 i2c_addr dib7000p_state 0 2791 NULL
139718 +disable_so_trim_no_bitmap_fndecl_2799 trim_no_bitmap fndecl 0-3-4-5 2799 NULL nohasharray
139719 +disable_so_imp_msr_src_node_conf_t_2799 imp_msr src_node_conf_t 0 2799 &disable_so_trim_no_bitmap_fndecl_2799
139720 +disable_so_phys_addr_pch_udc_dev_2801 phys_addr pch_udc_dev 0 2801 NULL
139721 +disable_so_mpll_ss2_ci_clock_registers_2804 mpll_ss2 ci_clock_registers 0 2804 NULL
139722 +disable_so_mutex_lock_interruptible_fndecl_2810 mutex_lock_interruptible fndecl 0 2810 NULL
139723 +disable_so___btrfs_add_delayed_item_fndecl_2812 __btrfs_add_delayed_item fndecl 0 2812 NULL
139724 +disable_so_physaddr_map_node_2828 physaddr map_node 0 2828 NULL
139725 +disable_so_fault_mutex_hash_fndecl_2829 fault_mutex_hash fndecl 0-5-6 2829 NULL
139726 +disable_so_tsi721_imsg_interrupt_enable_fndecl_2832 tsi721_imsg_interrupt_enable fndecl 2-3 2832 NULL
139727 +disable_so_ocfs2_reserve_cluster_bitmap_bits_fndecl_2835 ocfs2_reserve_cluster_bitmap_bits fndecl 0 2835 NULL
139728 +disable_so_address_lcnphy_radio_regs_2840 address lcnphy_radio_regs 0 2840 NULL
139729 +disable_so_write_timeout_vardecl_at24_c_2843 write_timeout vardecl_at24.c 0 2843 NULL nohasharray
139730 +disable_so_rdma_bind_addr_fndecl_2843 rdma_bind_addr fndecl 0 2843 &disable_so_write_timeout_vardecl_at24_c_2843
139731 +disable_so_x86_schedule_events_fndecl_2848 x86_schedule_events fndecl 2 2848 NULL
139732 +disable_so_acpi_ut_status_exit_fndecl_2850 acpi_ut_status_exit fndecl 5 2850 NULL
139733 +disable_so_wlcore_read_hwaddr_fndecl_2853 wlcore_read_hwaddr fndecl 0-4 2853 NULL
139734 +disable_so_apicaddr_mpc_ioapic_2859 apicaddr mpc_ioapic 0 2859 NULL
139735 +disable_so_msec_dwell_time_host_cmd_ds_chan_rpt_req_2868 msec_dwell_time host_cmd_ds_chan_rpt_req 0 2868 NULL
139736 +disable_so_hpsa_find_cfg_addrs_fndecl_2876 hpsa_find_cfg_addrs fndecl 0 2876 NULL
139737 +disable_so_sched_clock_cpu_fndecl_2881 sched_clock_cpu fndecl 0-1 2881 NULL
139738 +disable_so_qs_itimelimit_fs_quota_stat_2888 qs_itimelimit fs_quota_stat 0 2888 NULL
139739 +disable_so_bitmap_set_pending_fndecl_2892 bitmap_set_pending fndecl 2 2892 NULL
139740 +disable_so_rt2x00debug_read_crypto_stats_fndecl_2894 rt2x00debug_read_crypto_stats fndecl 0-3 2894 NULL
139741 +disable_so_calibrate_tsc_x86_platform_ops_2895 calibrate_tsc x86_platform_ops 0 2895 NULL
139742 +disable_so_timeout_show_fndecl_2898 timeout_show fndecl 0 2898 NULL
139743 +disable_so_snd_hda_codec_read_fndecl_2913 snd_hda_codec_read fndecl 0-2-4-5 2913 NULL
139744 +disable_so___bitmap_size_fndecl_2921 __bitmap_size fndecl 0 2921 NULL
139745 +disable_so_snd_pcm_ioctl_delay_compat_fndecl_2923 snd_pcm_ioctl_delay_compat fndecl 0 2923 NULL nohasharray
139746 +disable_so_addr_abituguru_data_2923 addr abituguru_data 0 2923 &disable_so_snd_pcm_ioctl_delay_compat_fndecl_2923
139747 +disable_so_amdgpu_atombios_set_engine_dram_timings_fndecl_2927 amdgpu_atombios_set_engine_dram_timings fndecl 2-3 2927 NULL
139748 +disable_so_i2c_address_mt2060_config_2931 i2c_address mt2060_config 0 2931 NULL
139749 +disable_so_time_msdos_dir_entry_2939 time msdos_dir_entry 0 2939 NULL
139750 +disable_so_acpi_install_address_space_handler_fndecl_2940 acpi_install_address_space_handler fndecl 0-2 2940 NULL nohasharray
139751 +disable_so_addr_genwqe_reg_2940 addr genwqe_reg 0 2940 &disable_so_acpi_install_address_space_handler_fndecl_2940
139752 +disable_so_addr_max77693_reg_data_2945 addr max77693_reg_data 0 2945 NULL nohasharray
139753 +disable_so_addrconf_set_dstaddr_fndecl_2945 addrconf_set_dstaddr fndecl 0 2945 &disable_so_addr_max77693_reg_data_2945
139754 +disable_so_gcm_hash_init_done_fndecl_2957 gcm_hash_init_done fndecl 2 2957 NULL
139755 +disable_so_mwifiex_pcie_alloc_sleep_cookie_buf_fndecl_2961 mwifiex_pcie_alloc_sleep_cookie_buf fndecl 0 2961 NULL
139756 +disable_so_ip_list_gid_vardecl_xt_recent_c_2969 ip_list_gid vardecl_xt_recent.c 0 2969 NULL
139757 +disable_so_ieee80211_calculate_rx_timestamp_fndecl_2979 ieee80211_calculate_rx_timestamp fndecl 3-4-0 2979 NULL
139758 +disable_so_jiffies_at_last_reset_qla_statistics_2982 jiffies_at_last_reset qla_statistics 0 2982 NULL
139759 +disable_so_read_magic_time_fndecl_3002 read_magic_time fndecl 0 3002 NULL
139760 +disable_so_node_addr_mdc_hw_list_desc_3006 node_addr mdc_hw_list_desc 0 3006 NULL
139761 +disable_so_bitmap_clear_bits_fndecl_3008 bitmap_clear_bits fndecl 3-4 3008 NULL
139762 +disable_so_cipher_offset_icp_qat_fw_la_cipher_req_params_3009 cipher_offset icp_qat_fw_la_cipher_req_params 0 3009 NULL
139763 +disable_so_local_addr_c2wr_ep_listen_create_req_3021 local_addr c2wr_ep_listen_create_req 0 3021 NULL nohasharray
139764 +disable_so_bitmap_end_sync_fndecl_3021 bitmap_end_sync fndecl 2 3021 &disable_so_local_addr_c2wr_ep_listen_create_req_3021
139765 +disable_so___xfrm6_daddr_saddr_hash_fndecl_3024 __xfrm6_daddr_saddr_hash fndecl 0 3024 NULL
139766 +disable_so_port_name_fcgs_gidpn_req_s_3037 port_name fcgs_gidpn_req_s 0 3037 NULL
139767 +disable_so___pm_runtime_set_status_fndecl_3040 __pm_runtime_set_status fndecl 0 3040 NULL nohasharray
139768 +disable_so_inactivity_time_adxl34x_platform_data_3040 inactivity_time adxl34x_platform_data 0 3040 &disable_so___pm_runtime_set_status_fndecl_3040
139769 +disable_so_bm_dev_capacity_drbd_bitmap_3043 bm_dev_capacity drbd_bitmap 0 3043 NULL
139770 +disable_so_arp_hash_fndecl_3046 arp_hash fndecl 2 3046 NULL
139771 +disable_so_setkey_ablkcipher_alg_3056 setkey ablkcipher_alg 3 3056 NULL
139772 +disable_so_display_delay_s5p_mfc_ctx_3062 display_delay s5p_mfc_ctx 0 3062 NULL
139773 +disable_so_power_jiffies_hda_codec_3064 power_jiffies hda_codec 0 3064 NULL
139774 +disable_so_dw_mci_exynos_adjust_clock_fndecl_3069 dw_mci_exynos_adjust_clock fndecl 2 3069 NULL
139775 +disable_so_set_var_mtrr_msr_fndecl_3073 set_var_mtrr_msr fndecl 3 3073 NULL
139776 +disable_so_pm860x_rtc_read_time_fndecl_3079 pm860x_rtc_read_time fndecl 0 3079 NULL nohasharray
139777 +disable_so_buffer_haddr_rbd_3079 buffer_haddr rbd 0 3079 &disable_so_pm860x_rtc_read_time_fndecl_3079
139778 +disable_so_snd_usb_find_clock_source_fndecl_3080 snd_usb_find_clock_source fndecl 2 3080 NULL
139779 +disable_so_response_buffer_address_on_dsp_hpi_hw_obj_3083 response_buffer_address_on_dsp hpi_hw_obj 0 3083 NULL
139780 +disable_so_valid_mmap_phys_addr_range_fndecl_3090 valid_mmap_phys_addr_range fndecl 1-2 3090 NULL
139781 +disable_so_mc_addr_count_s2io_nic_3095 mc_addr_count s2io_nic 0 3095 NULL
139782 +disable_so_si4713_g_frequency_fndecl_3096 si4713_g_frequency fndecl 0 3096 NULL
139783 +disable_so_rtl_bb_delay_fndecl_3097 rtl_bb_delay fndecl 2-3 3097 NULL
139784 +disable_so_nla_put_u16_fndecl_3101 nla_put_u16 fndecl 3-0 3101 NULL
139785 +disable_so_enet_addr_rst_fndecl_3111 enet_addr_rst fndecl 1 3111 NULL
139786 +disable_so_xtime_interval_timekeeper_3116 xtime_interval timekeeper 0 3116 NULL
139787 +disable_so_atomic_set_prop_fndecl_3117 atomic_set_prop fndecl 4-0 3117 NULL
139788 +disable_so_read_timeout_vardecl_legousbtower_c_3118 read_timeout vardecl_legousbtower.c 0 3118 NULL nohasharray
139789 +disable_so_netmask_c2_netaddr_3118 netmask c2_netaddr 0 3118 &disable_so_read_timeout_vardecl_legousbtower_c_3118 nohasharray
139790 +disable_so_hashlo_smsc911x_data_3118 hashlo smsc911x_data 0 3118 &disable_so_netmask_c2_netaddr_3118 nohasharray
139791 +disable_so_q_hash_irda_queue_3118 q_hash irda_queue 0 3118 &disable_so_hashlo_smsc911x_data_3118
139792 +disable_so_rpc_get_timeout_fndecl_3124 rpc_get_timeout fndecl 0 3124 NULL
139793 +disable_so_ctime_fuse_attr_3128 ctime fuse_attr 0 3128 NULL
139794 +disable_so_dl_time_nfs4_delegation_3130 dl_time nfs4_delegation 0 3130 NULL
139795 +disable_so_tx_packet_ring_addr_acx_data_path_params_resp_3132 tx_packet_ring_addr acx_data_path_params_resp 0 3132 NULL
139796 +disable_so__div_round_fndecl_3134 _div_round fndecl 2-3-0 3134 NULL
139797 +disable_so_power_up_frequency_adf4350_platform_data_3140 power_up_frequency adf4350_platform_data 0 3140 NULL
139798 +disable_so_bytes_xfrm_lifetime_cur_3145 bytes xfrm_lifetime_cur 0 3145 NULL
139799 +disable_so_show_nguid_fndecl_3155 show_nguid fndecl 0 3155 NULL nohasharray
139800 +disable_so_svm_read_tsc_offset_fndecl_3155 svm_read_tsc_offset fndecl 0 3155 &disable_so_show_nguid_fndecl_3155
139801 +disable_so_shash_ahash_finup_fndecl_3156 shash_ahash_finup fndecl 0 3156 NULL
139802 +disable_so_adjtime_ptp_clock_info_3161 adjtime ptp_clock_info 2 3161 NULL
139803 +disable_so_read_addr___mux2_3162 read_addr __mux2 0 3162 NULL
139804 +disable_so_mem_type_mtrr_iter_3164 mem_type mtrr_iter 0 3164 NULL
139805 +disable_so_cg_spll_func_cntl_ni_clock_registers_3176 cg_spll_func_cntl ni_clock_registers 0 3176 NULL
139806 +disable_so_schedule_hrtimeout_range_clock_fndecl_3178 schedule_hrtimeout_range_clock fndecl 4-2 3178 NULL nohasharray
139807 +disable_so_bitmap_copy_fndecl_3178 bitmap_copy fndecl 3 3178 &disable_so_schedule_hrtimeout_range_clock_fndecl_3178
139808 +disable_so__is_valid_table_div_fndecl_3179 _is_valid_table_div fndecl 2 3179 NULL
139809 +disable_so_addr_2_qla83xx_minidump_entry_pollrdmwr_3183 addr_2 qla83xx_minidump_entry_pollrdmwr 0 3183 NULL
139810 +disable_so_via_clock_vardecl_via82cxxx_c_3195 via_clock vardecl_via82cxxx.c 0 3195 NULL
139811 +disable_so_timeout_reader_dev_3196 timeout reader_dev 0 3196 NULL
139812 +disable_so_delay_palmas_clk32k_desc_3198 delay palmas_clk32k_desc 0 3198 NULL nohasharray
139813 +disable_so_freq_if_hz_tda10048_state_3198 freq_if_hz tda10048_state 0 3198 &disable_so_delay_palmas_clk32k_desc_3198
139814 +disable_so_i2c_address_tda18218_config_3199 i2c_address tda18218_config 0 3199 NULL nohasharray
139815 +disable_so_bot_freq_region_info_3199 bot_freq region_info 0 3199 &disable_so_i2c_address_tda18218_config_3199
139816 +disable_so_sdr_adc_freq_vivid_dev_3202 sdr_adc_freq vivid_dev 0 3202 NULL
139817 +disable_so_wlc_phy_cal_perical_mphase_schedule_fndecl_3220 wlc_phy_cal_perical_mphase_schedule fndecl 2 3220 NULL
139818 +disable_so_uid_ceph_mds_reply_inode_3222 uid ceph_mds_reply_inode 0 3222 NULL nohasharray
139819 +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
139820 +disable_so_txq_addr_vf_pf_txq_params_3223 txq_addr vf_pf_txq_params 0 3223 NULL
139821 +disable_so_dma_addr_ksz_shared_mem_3226 dma_addr ksz_shared_mem 0 3226 NULL
139822 +disable_so_smb_timer_atl1_hw_3230 smb_timer atl1_hw 0 3230 NULL
139823 +disable_so_nilfs_btree_node_set_key_fndecl_3231 nilfs_btree_node_set_key fndecl 2-3 3231 NULL
139824 +disable_so_finish_output_interrupt_fndecl_3255 finish_output_interrupt fndecl 1 3255 NULL
139825 +disable_so_command_block_agent_address_sbp2_logical_unit_3261 command_block_agent_address sbp2_logical_unit 0 3261 NULL
139826 +disable_so_st21nfca_get_iso14443_3_uid_fndecl_3264 st21nfca_get_iso14443_3_uid fndecl 0 3264 NULL
139827 +disable_so_db_rec_addr_mlx5_qp_context_3265 db_rec_addr mlx5_qp_context 0 3265 NULL
139828 +disable_so_rssi_jiffies_mwifiex_auto_tdls_peer_3275 rssi_jiffies mwifiex_auto_tdls_peer 0 3275 NULL
139829 +disable_so_random_read_wakeup_bits_vardecl_random_c_3284 random_read_wakeup_bits vardecl_random.c 0 3284 NULL
139830 +disable_so_time_busy_survey_info_3291 time_busy survey_info 0 3291 NULL
139831 +disable_so_platform_pci_sleep_wake_fndecl_3293 platform_pci_sleep_wake fndecl 0 3293 NULL nohasharray
139832 +disable_so_walk_blocksize_blkcipher_walk_3293 walk_blocksize blkcipher_walk 0 3293 &disable_so_platform_pci_sleep_wake_fndecl_3293
139833 +disable_so_addr_kvm_shadow_walk_iterator_3297 addr kvm_shadow_walk_iterator 0 3297 NULL
139834 +disable_so_r6e_val_fc2580_freq_regs_3300 r6e_val fc2580_freq_regs 0 3300 NULL
139835 +disable_so_clock_speed_ov7670_info_3304 clock_speed ov7670_info 0 3304 NULL
139836 +disable_so_bank_base_effect_addr_snd_ymfpci_3311 bank_base_effect_addr snd_ymfpci 0 3311 NULL
139837 +disable_so_nfs_map_name_to_uid_fndecl_3313 nfs_map_name_to_uid fndecl 0-3 3313 NULL
139838 +disable_so_read_block_bitmap_fndecl_3319 read_block_bitmap fndecl 0-3-4 3319 NULL
139839 +disable_so_sis190_get_mac_addr_from_apc_fndecl_3325 sis190_get_mac_addr_from_apc fndecl 0 3325 NULL
139840 +disable_so_head_uvc_clock_3340 head uvc_clock 0 3340 NULL
139841 +disable_so_amd_clock_vardecl_amd74xx_c_3344 amd_clock vardecl_amd74xx.c 0 3344 NULL nohasharray
139842 +disable_so_host_cmds_addr_rtsx_pcr_3344 host_cmds_addr rtsx_pcr 0 3344 &disable_so_amd_clock_vardecl_amd74xx_c_3344
139843 +disable_so_xp_cpu_to_nasid_uv_fndecl_3353 xp_cpu_to_nasid_uv fndecl 0 3353 NULL
139844 +disable_so_last_join_time_local_info_3359 last_join_time local_info 0 3359 NULL
139845 +disable_so_tcf_hash_release_fndecl_3369 tcf_hash_release fndecl 0 3369 NULL
139846 +disable_so_carl9170_set_slot_time_fndecl_3372 carl9170_set_slot_time fndecl 0 3372 NULL
139847 +disable_so_mmc_schedule_delayed_work_fndecl_3376 mmc_schedule_delayed_work fndecl 2 3376 NULL
139848 +disable_so_m_mt9t112_pll_divider_3397 m mt9t112_pll_divider 0 3397 NULL nohasharray
139849 +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
139850 +disable_so_irlap_generate_rand_time_slot_fndecl_3415 irlap_generate_rand_time_slot fndecl 0-1-2 3415 NULL
139851 +disable_so_via_set_secondary_address_fndecl_3417 via_set_secondary_address fndecl 1 3417 NULL
139852 +disable_so___timekeeping_set_tai_offset_fndecl_3425 __timekeeping_set_tai_offset fndecl 2 3425 NULL
139853 +disable_so_apic_access_addr_vmcs12_3427 apic_access_addr vmcs12 0 3427 NULL
139854 +disable_so_prod_idx_addr_cqicb_3435 prod_idx_addr cqicb 0 3435 NULL
139855 +disable_so_uwb_rc_dev_addr_mgmt_fndecl_3445 uwb_rc_dev_addr_mgmt fndecl 0 3445 NULL
139856 +disable_so_sg_bus_addr_ScsiReqBlk_3447 sg_bus_addr ScsiReqBlk 0 3447 NULL
139857 +disable_so_i2c_addr_lgdt3306a_config_3452 i2c_addr lgdt3306a_config 0 3452 NULL
139858 +disable_so_sym_selectclock_fndecl_3453 sym_selectclock fndecl 2 3453 NULL
139859 +disable_so_timestamp_wl1251_rx_descriptor_3475 timestamp wl1251_rx_descriptor 0 3475 NULL
139860 +disable_so_hw_cons_phys_addr_qlcnic_host_tx_ring_3481 hw_cons_phys_addr qlcnic_host_tx_ring 0 3481 NULL
139861 +disable_so_last_jiffies_snd_timer_system_private_3482 last_jiffies snd_timer_system_private 0 3482 NULL
139862 +disable_so_r_min_rnr_timer_qib_qp_3487 r_min_rnr_timer qib_qp 0 3487 NULL
139863 +disable_so_ata_wait_register_fndecl_3494 ata_wait_register fndecl 0 3494 NULL
139864 +disable_so_time_adjust_vardecl_ntp_c_3504 time_adjust vardecl_ntp.c 0 3504 NULL
139865 +disable_so_cursor_addr_intel_crtc_3508 cursor_addr intel_crtc 0 3508 NULL
139866 +disable_so_trf7970a_pm_runtime_suspend_fndecl_3511 trf7970a_pm_runtime_suspend fndecl 0 3511 NULL
139867 +disable_so_oops_timestamp_vardecl_printk_c_3515 oops_timestamp vardecl_printk.c 0 3515 NULL
139868 +disable_so_data_blkaddr_dnode_of_data_3521 data_blkaddr dnode_of_data 0 3521 NULL
139869 +disable_so_SYSC_set_tid_address_fndecl_3523 SYSC_set_tid_address fndecl 0 3523 NULL
139870 +disable_so_ftdi_232am_baud_base_to_divisor_fndecl_3525 ftdi_232am_baud_base_to_divisor fndecl 0-1-2 3525 NULL nohasharray
139871 +disable_so_fll_ratio__fll_div_3525 fll_ratio _fll_div 0 3525 &disable_so_ftdi_232am_baud_base_to_divisor_fndecl_3525 nohasharray
139872 +disable_so_xpcs_reg_addr_write_fndecl_3525 xpcs_reg_addr_write fndecl 3-0 3525 &disable_so_fll_ratio__fll_div_3525
139873 +disable_so_init_crypto_ahash_3526 init crypto_ahash 0 3526 NULL
139874 +disable_so_sit_blkaddr_f2fs_super_block_3531 sit_blkaddr f2fs_super_block 0 3531 NULL
139875 +disable_so_uuid_io_fndecl_3533 uuid_io fndecl 2 3533 NULL
139876 +disable_so_bufs_dma_addr_slgt_info_3534 bufs_dma_addr slgt_info 0 3534 NULL
139877 +disable_so_cpumask_size_fndecl_3544 cpumask_size fndecl 0 3544 NULL
139878 +disable_so_ocfs2_load_local_quota_bitmaps_fndecl_3551 ocfs2_load_local_quota_bitmaps fndecl 0 3551 NULL
139879 +disable_so_ghash_mod_init_fndecl_3557 ghash_mod_init fndecl 0 3557 NULL
139880 +disable_so_ath5k_hw_init_beacon_timers_fndecl_3558 ath5k_hw_init_beacon_timers fndecl 2-3 3558 NULL
139881 +disable_so_addr_h_qla2xxx_fce_chain_3560 addr_h qla2xxx_fce_chain 0 3560 NULL
139882 +disable_so_acpi_pci_sleep_wake_fndecl_3562 acpi_pci_sleep_wake fndecl 0 3562 NULL
139883 +disable_so_sd_set_timing_fndecl_3566 sd_set_timing fndecl 0 3566 NULL
139884 +disable_so_hpt3x2n_pci_clock_fndecl_3568 hpt3x2n_pci_clock fndecl 0 3568 NULL
139885 +disable_so_ata_sff_busy_sleep_fndecl_3571 ata_sff_busy_sleep fndecl 2-3 3571 NULL
139886 +disable_so_min_freq_cpufreq_cpuinfo_3592 min_freq cpufreq_cpuinfo 0 3592 NULL
139887 +disable_so_ver_blank_start_via_display_timing_3593 ver_blank_start via_display_timing 0 3593 NULL
139888 +disable_so_last_tsc_khz_kvm_arch_3596 last_tsc_khz kvm_arch 0 3596 NULL
139889 +disable_so_addrconf_sysctl_stable_secret_fndecl_3602 addrconf_sysctl_stable_secret fndecl 0 3602 NULL
139890 +disable_so_rxq_addr_vf_pf_rxq_params_3624 rxq_addr vf_pf_rxq_params 0 3624 NULL
139891 +disable_so_go7007_usb_ezusb_write_interrupt_fndecl_3625 go7007_usb_ezusb_write_interrupt fndecl 3-2 3625 NULL
139892 +disable_so_zd_write_mac_addr_fndecl_3635 zd_write_mac_addr fndecl 0 3635 NULL
139893 +disable_so_rt2x00crypto_tx_insert_iv_fndecl_3640 rt2x00crypto_tx_insert_iv fndecl 2 3640 NULL
139894 +disable_so_lvb_imtime_packed_ocfs2_meta_lvb_3641 lvb_imtime_packed ocfs2_meta_lvb 0 3641 NULL
139895 +disable_so_base_address_acpi_srat_mem_affinity_3662 base_address acpi_srat_mem_affinity 0 3662 NULL
139896 +disable_so_time_ksz_counter_info_3667 time ksz_counter_info 0 3667 NULL
139897 +disable_so_phys_addr_qlcnic_host_sds_ring_3676 phys_addr qlcnic_host_sds_ring 0 3676 NULL
139898 +disable_so_addr_ipcm_cookie_3680 addr ipcm_cookie 0 3680 NULL
139899 +disable_so_timestamp_nfs4_renewdata_3698 timestamp nfs4_renewdata 0 3698 NULL
139900 +disable_so_ocfs2_find_subtree_root_fndecl_3700 ocfs2_find_subtree_root fndecl 0 3700 NULL
139901 +disable_so_azx_get_delay_from_lpib_fndecl_3703 azx_get_delay_from_lpib fndecl 0-3 3703 NULL
139902 +disable_so_ieee80211_frequency_to_channel_fndecl_3709 ieee80211_frequency_to_channel fndecl 0-1 3709 NULL
139903 +disable_so_rx8025_sysfs_show_clock_adjust_fndecl_3720 rx8025_sysfs_show_clock_adjust fndecl 0 3720 NULL nohasharray
139904 +disable_so_vtotal___fb_timings_3720 vtotal __fb_timings 0 3720 &disable_so_rx8025_sysfs_show_clock_adjust_fndecl_3720
139905 +disable_so_autofs4_compat_get_set_timeout_fndecl_3726 autofs4_compat_get_set_timeout fndecl 0 3726 NULL
139906 +disable_so_paddr_ath10k_mem_chunk_3729 paddr ath10k_mem_chunk 0 3729 NULL
139907 +disable_so_interrupt_serio_driver_3738 interrupt serio_driver 2 3738 NULL
139908 +disable_so_m2_gma_clock_t_3742 m2 gma_clock_t 0 3742 NULL
139909 +disable_so_n_mt9t112_pll_divider_3743 n mt9t112_pll_divider 0 3743 NULL
139910 +disable_so_gcm_hash_crypt_done_fndecl_3746 gcm_hash_crypt_done fndecl 2 3746 NULL
139911 +disable_so_addr_i915_wa_reg_3751 addr i915_wa_reg 0 3751 NULL
139912 +disable_so_r12_kvm_regs_3771 r12 kvm_regs 0 3771 NULL
139913 +disable_so_sw_addr_dsa_chip_data_3785 sw_addr dsa_chip_data 0 3785 NULL
139914 +disable_so_t_sec_xfs_ictimestamp_3790 t_sec xfs_ictimestamp 0 3790 NULL
139915 +disable_so_ext4_block_bitmap_csum_set_fndecl_3795 ext4_block_bitmap_csum_set fndecl 2 3795 NULL
139916 +disable_so_pud_page_vaddr_fndecl_3809 pud_page_vaddr fndecl 0 3809 NULL
139917 +disable_so_coalescing_timeout_bfi_enet_ib_cfg_3813 coalescing_timeout bfi_enet_ib_cfg 0 3813 NULL
139918 +disable_so_sg_list_dma_address_skd_command_header_3825 sg_list_dma_address skd_command_header 0 3825 NULL
139919 +disable_so_ax25_display_timer_fndecl_3831 ax25_display_timer fndecl 0 3831 NULL
139920 +disable_so_tsi721_imsg_interrupt_disable_fndecl_3835 tsi721_imsg_interrupt_disable fndecl 2-3 3835 NULL
139921 +disable_so_irlap_start_mbusy_timer_fndecl_3852 irlap_start_mbusy_timer fndecl 2 3852 NULL
139922 +disable_so_size_log2_iwch_create_cq_resp_3861 size_log2 iwch_create_cq_resp 0 3861 NULL
139923 +disable_so_cttimeout_get_timeout_fndecl_3867 cttimeout_get_timeout fndecl 0 3867 NULL
139924 +disable_so_ioadl_bus_addr_pmcraid_ioarcb_3871 ioadl_bus_addr pmcraid_ioarcb 0 3871 NULL
139925 +disable_so___clocksource_register_scale_fndecl_3879 __clocksource_register_scale fndecl 2-3-0 3879 NULL
139926 +disable_so_tx_lsndtime_ccid2_hc_tx_sock_3890 tx_lsndtime ccid2_hc_tx_sock 0 3890 NULL
139927 +disable_so_xfs_btree_new_root_fndecl_3895 xfs_btree_new_root fndecl 0 3895 NULL
139928 +disable_so_freq_p54_channel_entry_3897 freq p54_channel_entry 0 3897 NULL
139929 +disable_so_xen_poll_irq_timeout_fndecl_3900 xen_poll_irq_timeout fndecl 1-2 3900 NULL
139930 +disable_so_nilfs_btree_propagate_v_fndecl_3902 nilfs_btree_propagate_v fndecl 0 3902 NULL
139931 +disable_so_max8907_rtc_set_time_fndecl_3905 max8907_rtc_set_time fndecl 0 3905 NULL
139932 +disable_so_alps_command_mode_set_addr_fndecl_3910 alps_command_mode_set_addr fndecl 2 3910 NULL
139933 +disable_so_ltimer_val_vxge_hw_tim_intr_config_3911 ltimer_val vxge_hw_tim_intr_config 0 3911 NULL
139934 +disable_so_dqb_btime_v1_disk_dqblk_3914 dqb_btime v1_disk_dqblk 0 3914 NULL nohasharray
139935 +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
139936 +disable_so_ieee802154_hdr_push_addr_fndecl_3915 ieee802154_hdr_push_addr fndecl 0 3915 NULL
139937 +disable_so_blk_mq_init_bitmap_tags_fndecl_3929 blk_mq_init_bitmap_tags fndecl 2 3929 NULL
139938 +disable_so_mtimensec_fuse_attr_3937 mtimensec fuse_attr 0 3937 NULL
139939 +disable_so_cpu_clock_sample_group_fndecl_3939 cpu_clock_sample_group fndecl 1 3939 NULL
139940 +disable_so_min_bit_val_anatop_regulator_3947 min_bit_val anatop_regulator 0 3947 NULL
139941 +disable_so_warmup_time_sfb_sched_data_3959 warmup_time sfb_sched_data 0 3959 NULL
139942 +disable_so_zd_write_mac_addr_common_fndecl_3965 zd_write_mac_addr_common fndecl 0 3965 NULL
139943 +disable_so_ext2_valid_block_bitmap_fndecl_3966 ext2_valid_block_bitmap fndecl 3 3966 NULL
139944 +disable_so_ctnetlink_change_timeout_fndecl_3973 ctnetlink_change_timeout fndecl 0 3973 NULL
139945 +disable_so_root_nfs_parse_addr_fndecl_3974 root_nfs_parse_addr fndecl 0 3974 NULL
139946 +disable_so_zalloc_cpumask_var_fndecl_3979 zalloc_cpumask_var fndecl 2 3979 NULL
139947 +disable_so_sta_addr_hash_fndecl_3982 sta_addr_hash fndecl 0-3 3982 NULL
139948 +disable_so_address_ins_format3_3983 address ins_format3 0 3983 NULL
139949 +disable_so___nfsd4_write_time_fndecl_3999 __nfsd4_write_time fndecl 0 3999 NULL
139950 +disable_so_disc_start_time_esas2r_adapter_4010 disc_start_time esas2r_adapter 0 4010 NULL
139951 +disable_so_scroll_jiffies_magicmouse_sc_4034 scroll_jiffies magicmouse_sc 0 4034 NULL
139952 +disable_so_add_input_randomness_fndecl_4036 add_input_randomness fndecl 3-1-2 4036 NULL
139953 +disable_so_rc5t583_regulator_enable_time_fndecl_4047 rc5t583_regulator_enable_time fndecl 0 4047 NULL
139954 +disable_so_s_log2sharesize_adfs_sb_info_4052 s_log2sharesize adfs_sb_info 0 4052 NULL
139955 +disable_so___bitmap_or_fndecl_4055 __bitmap_or fndecl 4 4055 NULL
139956 +disable_so_clockevents_config_and_register_fndecl_4078 clockevents_config_and_register fndecl 2-3-4 4078 NULL
139957 +disable_so_db_addr_mlx5_ib_create_qp_4086 db_addr mlx5_ib_create_qp 0 4086 NULL
139958 +disable_so_t4_wr_mbox_meat_fndecl_4090 t4_wr_mbox_meat fndecl 0-2 4090 NULL
139959 +disable_so_debounce_time_lm8333_platform_data_4097 debounce_time lm8333_platform_data 0 4097 NULL
139960 +disable_so_di_atime_logfs_disk_inode_4115 di_atime logfs_disk_inode 0 4115 NULL
139961 +disable_so_slave_address_cp2112_read_req_report_4116 slave_address cp2112_read_req_report 0 4116 NULL
139962 +disable_so_sleep_functions_on_battery_store_fndecl_4126 sleep_functions_on_battery_store fndecl 0-4 4126 NULL
139963 +disable_so_neigh_rand_reach_time_fndecl_4142 neigh_rand_reach_time fndecl 0-1 4142 NULL
139964 +disable_so_fib_devindex_hashfn_fndecl_4150 fib_devindex_hashfn fndecl 0-1 4150 NULL
139965 +disable_so_compat_sys_clock_adjtime_fndecl_4152 compat_sys_clock_adjtime fndecl 1 4152 NULL nohasharray
139966 +disable_so_addr_sh_eth_rxdesc_4152 addr sh_eth_rxdesc 0 4152 &disable_so_compat_sys_clock_adjtime_fndecl_4152
139967 +disable_so_throttled_clock_task_time_cfs_rq_4161 throttled_clock_task_time cfs_rq 0 4161 NULL
139968 +disable_so_usb_set_lpm_timeout_fndecl_4163 usb_set_lpm_timeout fndecl 3 4163 NULL
139969 +disable_so_delay_multi_eq_delay_info_4167 delay_multi eq_delay_info 0 4167 NULL nohasharray
139970 +disable_so_reg_w_fndecl_4167 reg_w fndecl 2 4167 &disable_so_delay_multi_eq_delay_info_4167
139971 +disable_so_btree_migratepage_fndecl_4171 btree_migratepage fndecl 0 4171 NULL
139972 +disable_so_vpfe_set_sdr_addr_fndecl_4178 vpfe_set_sdr_addr fndecl 2 4178 NULL
139973 +disable_so_rx_beacon_signal_avg_station_info_4180 rx_beacon_signal_avg station_info 0 4180 NULL
139974 +disable_so_put_time_rxrpc_connection_4183 put_time rxrpc_connection 0 4183 NULL
139975 +disable_so_demod_address_nxt200x_config_4185 demod_address nxt200x_config 0 4185 NULL
139976 +disable_so_addr_lo_cmdQ_e_4186 addr_lo cmdQ_e 0 4186 NULL
139977 +disable_so_addr_lo_eth_tx_next_bd_4188 addr_lo eth_tx_next_bd 0 4188 NULL
139978 +disable_so_timeout_kbd_backlight_4193 timeout kbd_backlight 0 4193 NULL
139979 +disable_so_hw_ptr_buffer_jiffies_snd_pcm_runtime_4199 hw_ptr_buffer_jiffies snd_pcm_runtime 0 4199 NULL
139980 +disable_so_hash_walk_new_entry_fndecl_4203 hash_walk_new_entry fndecl 0 4203 NULL
139981 +disable_so_time_of_death_afs_server_4206 time_of_death afs_server 0 4206 NULL
139982 +disable_so_rtl2832_sdr_s_frequency_fndecl_4208 rtl2832_sdr_s_frequency fndecl 0 4208 NULL
139983 +disable_so_si476x_radio_g_frequency_fndecl_4218 si476x_radio_g_frequency fndecl 0 4218 NULL
139984 +disable_so_ahc_delay_fndecl_4220 ahc_delay fndecl 1 4220 NULL
139985 +disable_so_mounted_time_sit_info_4228 mounted_time sit_info 0 4228 NULL
139986 +disable_so_ahash_register_instance_fndecl_4229 ahash_register_instance fndecl 0 4229 NULL
139987 +disable_so_f_frequency_e4000_dev_4236 f_frequency e4000_dev 0 4236 NULL
139988 +disable_so_timekeeping_adjust_fndecl_4243 timekeeping_adjust fndecl 2 4243 NULL
139989 +disable_so_sis190_mac_addr_fndecl_4248 sis190_mac_addr fndecl 0 4248 NULL nohasharray
139990 +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
139991 +disable_so_xhci_enable_usb3_lpm_timeout_fndecl_4278 xhci_enable_usb3_lpm_timeout fndecl 0 4278 NULL
139992 +disable_so_address_be_bus_address64_4299 address be_bus_address64 0 4299 NULL
139993 +disable_so_freq_tef6862_state_4304 freq tef6862_state 0 4304 NULL
139994 +disable_so_aes_decrypt_interrupt_read_fndecl_4309 aes_decrypt_interrupt_read fndecl 3-0 4309 NULL
139995 +disable_so_lm3533_set_boost_freq_fndecl_4311 lm3533_set_boost_freq fndecl 0-2 4311 NULL
139996 +disable_so_adis16400_set_freq_fndecl_4314 adis16400_set_freq fndecl 0 4314 NULL
139997 +disable_so_vsync_offset_pulse_width_lo_detailed_pixel_timing_4318 vsync_offset_pulse_width_lo detailed_pixel_timing 0 4318 NULL
139998 +disable_so_time_atkbd_4320 time atkbd 0 4320 NULL nohasharray
139999 +disable_so_make_kuid_fndecl_4320 make_kuid fndecl 2 4320 &disable_so_time_atkbd_4320
140000 +disable_so_lookup_scsi3addr_fndecl_4332 lookup_scsi3addr fndecl 2-3-4 4332 NULL
140001 +disable_so_bf_buf_addr_ath_rxbuf_4337 bf_buf_addr ath_rxbuf 0 4337 NULL
140002 +disable_so_kbd_backlight_timeout_vardecl_sony_laptop_c_4340 kbd_backlight_timeout vardecl_sony-laptop.c 0 4340 NULL
140003 +disable_so_tomoyo_addprintf_fndecl_4352 tomoyo_addprintf fndecl 2 4352 NULL
140004 +disable_so_ab3100_get_register_interruptible_fndecl_4353 ab3100_get_register_interruptible fndecl 0 4353 NULL
140005 +disable_so_cpufreq_add_dev_interface_fndecl_4356 cpufreq_add_dev_interface fndecl 0 4356 NULL
140006 +disable_so_upper_addr_ufshcd_sg_entry_4364 upper_addr ufshcd_sg_entry 0 4364 NULL
140007 +disable_so_linear_address_kvm_translation_4366 linear_address kvm_translation 0 4366 NULL
140008 +disable_so_n_tty_receive_signal_char_fndecl_4373 n_tty_receive_signal_char fndecl 2 4373 NULL
140009 +disable_so_proc_uid_vardecl_airo_c_4387 proc_uid vardecl_airo.c 0 4387 NULL nohasharray
140010 +disable_so_dequeue_signal_fndecl_4387 dequeue_signal fndecl 0 4387 &disable_so_proc_uid_vardecl_airo_c_4387
140011 +disable_so_nilfs_btree_root_broken_fndecl_4403 nilfs_btree_root_broken fndecl 2 4403 NULL
140012 +disable_so_kstrtoll_from_user_fndecl_4415 kstrtoll_from_user fndecl 2 4415 NULL
140013 +disable_so_timestamp_fw_packet_4416 timestamp fw_packet 0 4416 NULL
140014 +disable_so_hhf_reset_timeout_hhf_sched_data_4417 hhf_reset_timeout hhf_sched_data 0 4417 NULL
140015 +disable_so_timeout_mpt3_ioctl_command_4422 timeout mpt3_ioctl_command 0 4422 NULL
140016 +disable_so_reg_write_fndecl_4433 reg_write fndecl 0-2-3 4433 NULL
140017 +disable_so_et0phyaddr_ssb_sprom_4448 et0phyaddr ssb_sprom 0 4448 NULL
140018 +disable_so_prev_steal_time_rq_4451 prev_steal_time rq 0 4451 NULL
140019 +disable_so_master_init_timer_mipi_config_4453 master_init_timer mipi_config 0 4453 NULL
140020 +disable_so_find_eth_addr_in_vpd_fndecl_4457 find_eth_addr_in_vpd fndecl 3 4457 NULL
140021 +disable_so_ccca_start_addr_snd_emu10k1_pcm_4459 ccca_start_addr snd_emu10k1_pcm 0 4459 NULL
140022 +disable_so_freq_offset_khz_vhf_dib0090_config_4461 freq_offset_khz_vhf dib0090_config 0 4461 NULL
140023 +disable_so_rxqueue_timer_velocity_opt_4470 rxqueue_timer velocity_opt 0 4470 NULL
140024 +disable_so_sysctl_rose_link_fail_timeout_vardecl_4477 sysctl_rose_link_fail_timeout vardecl 0 4477 NULL
140025 +disable_so_ablkcipher_walk_first_fndecl_4483 ablkcipher_walk_first fndecl 0 4483 NULL
140026 +disable_so_get_cached_alias_guid_fndecl_4490 get_cached_alias_guid fndecl 2-3 4490 NULL
140027 +disable_so_cfg80211_chandef_dfs_cac_time_fndecl_4493 cfg80211_chandef_dfs_cac_time fndecl 0 4493 NULL
140028 +disable_so_mclk_div2_cs42l56_private_4499 mclk_div2 cs42l56_private 0 4499 NULL
140029 +disable_so_snd_timer_user_ioctl_fndecl_4500 snd_timer_user_ioctl fndecl 0 4500 NULL nohasharray
140030 +disable_so_s5p_mfc_clock_on_fndecl_4500 s5p_mfc_clock_on fndecl 0 4500 &disable_so_snd_timer_user_ioctl_fndecl_4500
140031 +disable_so_boundary_snd_pcm_runtime_4504 boundary snd_pcm_runtime 0 4504 NULL nohasharray
140032 +disable_so_show_message_age_timer_fndecl_4504 show_message_age_timer fndecl 0 4504 &disable_so_boundary_snd_pcm_runtime_4504
140033 +disable_so_tn_smc_wreg_fndecl_4512 tn_smc_wreg fndecl 2-3 4512 NULL
140034 +disable_so_ip_perf_sample_data_4515 ip perf_sample_data 0 4515 NULL nohasharray
140035 +disable_so_intel_gpu_freq_fndecl_4515 intel_gpu_freq fndecl 0-2 4515 &disable_so_ip_perf_sample_data_4515
140036 +disable_so_clk_delay_mmc_host_4517 clk_delay mmc_host 0 4517 NULL
140037 +disable_so_addr_atiixp_modem_4521 addr atiixp_modem 0 4521 NULL
140038 +disable_so_rsp_dmaaddr_fw_scsi_write_wr_4522 rsp_dmaaddr fw_scsi_write_wr 0 4522 NULL
140039 +disable_so_last_sum_exec_runtime_task_struct_4531 last_sum_exec_runtime task_struct 0 4531 NULL
140040 +disable_so_buf_addr_mlx5_ib_create_qp_4533 buf_addr mlx5_ib_create_qp 0 4533 NULL
140041 +disable_so_set_h245_addr_fndecl_4538 set_h245_addr fndecl 2-4 4538 NULL
140042 +disable_so_sleep_reg_fan53555_device_info_4552 sleep_reg fan53555_device_info 0 4552 NULL
140043 +disable_so_freqmode__pll_div_4562 freqmode _pll_div 0 4562 NULL
140044 +disable_so_buffer_addr_i40e_tx_desc_4570 buffer_addr i40e_tx_desc 0 4570 NULL
140045 +disable_so_ctime_cifs_unix_set_info_args_4572 ctime cifs_unix_set_info_args 0 4572 NULL
140046 +disable_so_pci_bus_saa7164_dev_4576 pci_bus saa7164_dev 0 4576 NULL
140047 +disable_so_addr_vhost_log_4579 addr vhost_log 0 4579 NULL
140048 +disable_so_store_fan_div_fndecl_4585 store_fan_div fndecl 0-4 4585 NULL
140049 +disable_so_timeout__mgslpc_info_4586 timeout _mgslpc_info 0 4586 NULL
140050 +disable_so_posix_timer_add_fndecl_4591 posix_timer_add fndecl 0 4591 NULL
140051 +disable_so_system_timestamp_iwl_rx_phy_info_4592 system_timestamp iwl_rx_phy_info 0 4592 NULL
140052 +disable_so_guid_ib_dm_ioc_profile_4593 guid ib_dm_ioc_profile 0 4593 NULL
140053 +disable_so_qat_alg_ablkcipher_init_com_fndecl_4596 qat_alg_ablkcipher_init_com fndecl 5 4596 NULL
140054 +disable_so_irlan_client_start_kick_timer_fndecl_4618 irlan_client_start_kick_timer fndecl 2 4618 NULL
140055 +disable_so_kvm_apic_match_physical_addr_fndecl_4632 kvm_apic_match_physical_addr fndecl 2 4632 NULL
140056 +disable_so_task_fix_setuid_security_operations_4637 task_fix_setuid security_operations 0 4637 NULL
140057 +disable_so_nla_put_labels_fndecl_4639 nla_put_labels fndecl 3 4639 NULL
140058 +disable_so_xen_pcibk_guest_interrupt_fndecl_4644 xen_pcibk_guest_interrupt fndecl 1 4644 NULL
140059 +disable_so_phys_addr_qlcnic_fw_dump_4650 phys_addr qlcnic_fw_dump 0 4650 NULL
140060 +disable_so_daddr_ath5k_buf_4651 daddr ath5k_buf 0 4651 NULL
140061 +disable_so_phase_delay_atom_voltage_table_4655 phase_delay atom_voltage_table 0 4655 NULL
140062 +disable_so_nl80211_send_auth_timeout_fndecl_4657 nl80211_send_auth_timeout fndecl 4 4657 NULL
140063 +disable_so_af9013_statistics_signal_strength_fndecl_4658 af9013_statistics_signal_strength fndecl 0 4658 NULL
140064 +disable_so_kbd_led_timeout_store_fndecl_4659 kbd_led_timeout_store fndecl 0-4 4659 NULL
140065 +disable_so_byte_align_snd_pcm_runtime_4661 byte_align snd_pcm_runtime 0 4661 NULL
140066 +disable_so_stv0900_get_timing_offst_fndecl_4670 stv0900_get_timing_offst fndecl 0-2 4670 NULL
140067 +disable_so_clk_frequency_imx_sgtl5000_data_4671 clk_frequency imx_sgtl5000_data 0 4671 NULL
140068 +disable_so_sys_image_guid_ib_device_attr_4674 sys_image_guid ib_device_attr 0 4674 NULL
140069 +disable_so_timestamp_usec_rt2x00dump_hdr_4680 timestamp_usec rt2x00dump_hdr 0 4680 NULL
140070 +disable_so_ieee80211_aes_cmac_fndecl_4693 ieee80211_aes_cmac fndecl 4 4693 NULL
140071 +disable_so_hpi_handle_indexes_fndecl_4704 hpi_handle_indexes fndecl 1 4704 NULL
140072 +disable_so_runtime_suspend_mmc_bus_ops_4709 runtime_suspend mmc_bus_ops 0 4709 NULL
140073 +disable_so_i_atime_bfs_inode_4710 i_atime bfs_inode 0 4710 NULL
140074 +disable_so_tsf_timestamp_rx_ppdu_end_common_4717 tsf_timestamp rx_ppdu_end_common 0 4717 NULL
140075 +disable_so_register_blkdev_fndecl_4723 register_blkdev fndecl 0-1 4723 NULL
140076 +disable_so_clockevents_unbind_fndecl_4727 clockevents_unbind fndecl 2 4727 NULL
140077 +disable_so_dma_addr_vmxnet3_rx_buf_info_4730 dma_addr vmxnet3_rx_buf_info 0 4730 NULL
140078 +disable_so_ip_idents_reserve_fndecl_4731 ip_idents_reserve fndecl 0-1-2 4731 NULL
140079 +disable_so_atomic64_sub_and_test_fndecl_4733 atomic64_sub_and_test fndecl 1 4733 NULL nohasharray
140080 +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
140081 +disable_so_wakeup_total_time_show_fndecl_4745 wakeup_total_time_show fndecl 0 4745 NULL
140082 +disable_so_kv_get_sleep_divider_id_from_clock_fndecl_4756 kv_get_sleep_divider_id_from_clock fndecl 2 4756 NULL
140083 +disable_so_delay_fn_vardecl_delay_c_4772 delay_fn vardecl_delay.c 1 4772 NULL
140084 +disable_so_do_sched_cfs_period_timer_fndecl_4778 do_sched_cfs_period_timer fndecl 2 4778 NULL
140085 +disable_so_gid_index_mlx4_av_4786 gid_index mlx4_av 0 4786 NULL
140086 +disable_so_rq_addr_high_nes_qp_context_4796 rq_addr_high nes_qp_context 0 4796 NULL
140087 +disable_so_last_commit_jiffies_cache_4801 last_commit_jiffies cache 0 4801 NULL
140088 +disable_so_frequency_sst_hsw_audio_data_format_ipc_4811 frequency sst_hsw_audio_data_format_ipc 0 4811 NULL
140089 +disable_so_dev_sleep_time_cyapa_4825 dev_sleep_time cyapa 0 4825 NULL nohasharray
140090 +disable_so_si570_update_rfreq_fndecl_4825 si570_update_rfreq fndecl 0 4825 &disable_so_dev_sleep_time_cyapa_4825
140091 +disable_so_reply_dma_max_address_MPT2SAS_ADAPTER_4826 reply_dma_max_address MPT2SAS_ADAPTER 0 4826 NULL
140092 +disable_so_freq_nvkm_ram_data_4838 freq nvkm_ram_data 0 4838 NULL
140093 +disable_so_ata_timing_find_mode_fndecl_4841 ata_timing_find_mode fndecl 1 4841 NULL
140094 +disable_so_hci_bdaddr_list_del_fndecl_4856 hci_bdaddr_list_del fndecl 0 4856 NULL
140095 +disable_so_challenge_timestamp_vardecl_tcp_input_c_4859 challenge_timestamp vardecl_tcp_input.c 0 4859 NULL
140096 +disable_so_bar2_address_fndecl_4862 bar2_address fndecl 2 4862 NULL
140097 +disable_so_time_pardevice_4872 time pardevice 0 4872 NULL
140098 +disable_so_open_posix_clock_operations_4876 open posix_clock_operations 2 4876 NULL
140099 +disable_so_buf2_addr_xgmac_dma_desc_4877 buf2_addr xgmac_dma_desc 0 4877 NULL
140100 +disable_so_mixart_set_clock_fndecl_4878 mixart_set_clock fndecl 3 4878 NULL nohasharray
140101 +disable_so_adis16480_get_filter_freq_fndecl_4878 adis16480_get_filter_freq fndecl 0 4878 &disable_so_mixart_set_clock_fndecl_4878
140102 +disable_so_ssb_chipco_watchdog_get_max_timer_fndecl_4885 ssb_chipco_watchdog_get_max_timer fndecl 0 4885 NULL
140103 +disable_so_sys_timerfd_gettime_fndecl_4888 sys_timerfd_gettime fndecl 1 4888 NULL nohasharray
140104 +disable_so_regcache_rbtree_read_fndecl_4888 regcache_rbtree_read fndecl 2 4888 &disable_so_sys_timerfd_gettime_fndecl_4888
140105 +disable_so_reiserfs_read_bitmap_block_fndecl_4892 reiserfs_read_bitmap_block fndecl 2 4892 NULL
140106 +disable_so_mapaddr_bq_desc_4896 mapaddr bq_desc 0 4896 NULL
140107 +disable_so_sec_tomoyo_time_4898 sec tomoyo_time 0 4898 NULL
140108 +disable_so_nvkm_timer_wait_ne_fndecl_4904 nvkm_timer_wait_ne fndecl 3-5 4904 NULL
140109 +disable_so_ehash_locks_mask_inet_hashinfo_4906 ehash_locks_mask inet_hashinfo 0 4906 NULL
140110 +disable_so_split_scan_timeout_read_fndecl_4910 split_scan_timeout_read fndecl 3-0 4910 NULL
140111 +disable_so_rdmsr_safe_regs_on_cpu_fndecl_4918 rdmsr_safe_regs_on_cpu fndecl 0-1 4918 NULL
140112 +disable_so_data_addr_pmu_nvbios_pmuR_4930 data_addr_pmu nvbios_pmuR 0 4930 NULL
140113 +disable_so_fs_overflowgid_vardecl_4952 fs_overflowgid vardecl 0 4952 NULL
140114 +disable_so_crypto_authenc_esn_encrypt_done_fndecl_4953 crypto_authenc_esn_encrypt_done fndecl 2 4953 NULL
140115 +disable_so_addr_lo_sdhci_adma2_64_desc_4956 addr_lo sdhci_adma2_64_desc 0 4956 NULL
140116 +disable_so_hc_erase_timeout_mmc_ext_csd_4958 hc_erase_timeout mmc_ext_csd 0 4958 NULL nohasharray
140117 +disable_so_translation_offset_acpi_address64_attribute_4958 translation_offset acpi_address64_attribute 0 4958 &disable_so_hc_erase_timeout_mmc_ext_csd_4958
140118 +disable_so_address_acpi_object_region_4962 address acpi_object_region 0 4962 NULL
140119 +disable_so_nlmsvc_timeout_vardecl_4968 nlmsvc_timeout vardecl 0 4968 NULL
140120 +disable_so_icmpv6_time_netns_sysctl_ipv6_4971 icmpv6_time netns_sysctl_ipv6 0 4971 NULL
140121 +disable_so_rhashtable_walk_init_fndecl_4975 rhashtable_walk_init fndecl 0 4975 NULL
140122 +disable_so_tm_wday_rtc_time_4991 tm_wday rtc_time 0 4991 NULL
140123 +disable_so_pre_event_timeout_seq_oss_readq_4996 pre_event_timeout seq_oss_readq 0 4996 NULL
140124 +disable_so_m_sys_clock_freq_drxk_state_5005 m_sys_clock_freq drxk_state 0 5005 NULL
140125 +disable_so_btree_merge_fndecl_5007 btree_merge fndecl 4 5007 NULL
140126 +disable_so_addr_snd_dma_buffer_5022 addr snd_dma_buffer 0 5022 NULL
140127 +disable_so_mlx4_get_slave_num_gids_fndecl_5024 mlx4_get_slave_num_gids fndecl 0-2-3 5024 NULL
140128 +disable_so_time_nfc_llcp_sdp_tlv_5037 time nfc_llcp_sdp_tlv 0 5037 NULL
140129 +disable_so_hangcheck_tsc_margin_vardecl_hangcheck_timer_c_5043 hangcheck_tsc_margin vardecl_hangcheck-timer.c 0 5043 NULL
140130 +disable_so_fill_node_footer_blkaddr_fndecl_5053 fill_node_footer_blkaddr fndecl 2 5053 NULL
140131 +disable_so_sc_lseg_stime_nilfs_sc_info_5054 sc_lseg_stime nilfs_sc_info 0 5054 NULL
140132 +disable_so_kstrtou8_fndecl_5058 kstrtou8 fndecl 0 5058 NULL
140133 +disable_so_RF_SYN_pll_refdiv_chan_info_nphy_radio205x_5063 RF_SYN_pll_refdiv chan_info_nphy_radio205x 0 5063 NULL
140134 +disable_so_addr_lo_tx_desc_5065 addr_lo tx_desc 0 5065 NULL
140135 +disable_so_mos7840_calc_baud_rate_divisor_fndecl_5067 mos7840_calc_baud_rate_divisor fndecl 2 5067 NULL nohasharray
140136 +disable_so_addr_iwch_mm_entry_5067 addr iwch_mm_entry 0 5067 &disable_so_mos7840_calc_baud_rate_divisor_fndecl_5067
140137 +disable_so_freq_wmi_send_mgmt_cmd_5080 freq wmi_send_mgmt_cmd 0 5080 NULL
140138 +disable_so_wep_addr_key_count_read_fndecl_5085 wep_addr_key_count_read fndecl 3-0 5085 NULL
140139 +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
140140 +disable_so_udf_bitmap_new_block_fndecl_5093 udf_bitmap_new_block fndecl 0-4 5093 NULL
140141 +disable_so_ds1343_read_time_fndecl_5094 ds1343_read_time fndecl 0 5094 NULL nohasharray
140142 +disable_so_panel_blon_delay_radeon_encoder_lvds_5094 panel_blon_delay radeon_encoder_lvds 0 5094 &disable_so_ds1343_read_time_fndecl_5094
140143 +disable_so_hpi_cobranet_set_ip_address_fndecl_5106 hpi_cobranet_set_ip_address fndecl 1 5106 NULL
140144 +disable_so_rx_bidx_addr_bnx2_rx_ring_info_5107 rx_bidx_addr bnx2_rx_ring_info 0 5107 NULL nohasharray
140145 +disable_so_bitmap_andnot_fndecl_5107 bitmap_andnot fndecl 4 5107 &disable_so_rx_bidx_addr_bnx2_rx_ring_info_5107
140146 +disable_so_end_seq_illinois_5111 end_seq illinois 0 5111 NULL
140147 +disable_so_in_progress_block_addr_flchip_5114 in_progress_block_addr flchip 0 5114 NULL
140148 +disable_so_xmit_timestamp_cw1200_queue_item_5121 xmit_timestamp cw1200_queue_item 0 5121 NULL
140149 +disable_so_snd_ymfpci_timer_fndecl_5137 snd_ymfpci_timer fndecl 2-0 5137 NULL
140150 +disable_so_sysctl_rose_no_activity_timeout_vardecl_5143 sysctl_rose_no_activity_timeout vardecl 0 5143 NULL
140151 +disable_so_mtime_p9_wstat_5152 mtime p9_wstat 0 5152 NULL nohasharray
140152 +disable_so_addr_mvs_prd_5152 addr mvs_prd 0 5152 &disable_so_mtime_p9_wstat_5152
140153 +disable_so_pcan_usb_pro_set_bittiming_fndecl_5169 pcan_usb_pro_set_bittiming fndecl 0 5169 NULL
140154 +disable_so_phy_addr_e1000_hw_5196 phy_addr e1000_hw 0 5196 NULL
140155 +disable_so_cpufreq_p4_init_fndecl_5201 cpufreq_p4_init fndecl 0 5201 NULL
140156 +disable_so_iscsit_na_dataout_timeout_retries_fndecl_5205 iscsit_na_dataout_timeout_retries fndecl 0 5205 NULL
140157 +disable_so_ata_sff_queue_delayed_work_fndecl_5217 ata_sff_queue_delayed_work fndecl 2 5217 NULL
140158 +disable_so_post_div_atom_mpll_param_5225 post_div atom_mpll_param 0 5225 NULL
140159 +disable_so_cfg80211_wext_freq_fndecl_5229 cfg80211_wext_freq fndecl 0 5229 NULL
140160 +disable_so_poll_timer_vardecl_hfcmulti_c_5232 poll_timer vardecl_hfcmulti.c 0 5232 NULL
140161 +disable_so_antdiv_ctl1_modal_eep_4k_header_5248 antdiv_ctl1 modal_eep_4k_header 0 5248 NULL
140162 +disable_so_snd_efw_command_get_clock_source_fndecl_5253 snd_efw_command_get_clock_source fndecl 0 5253 NULL
140163 +disable_so_img_ir_free_timing_dynamic_fndecl_5255 img_ir_free_timing_dynamic fndecl 0-1 5255 NULL
140164 +disable_so_iscsi_nacl_attrib_store_dataout_timeout_retries_fndecl_5267 iscsi_nacl_attrib_store_dataout_timeout_retries fndecl 0-3 5267 NULL
140165 +disable_so_st_mtime_nsec_compat_stat_5268 st_mtime_nsec compat_stat 0 5268 NULL nohasharray
140166 +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
140167 +disable_so_selinux_task_setpgid_fndecl_5275 selinux_task_setpgid fndecl 0 5275 NULL
140168 +disable_so_target_addr_sg_entry_5281 target_addr sg_entry 0 5281 NULL nohasharray
140169 +disable_so_range_start_fixed_mtrr_segment_5281 range_start fixed_mtrr_segment 0 5281 &disable_so_target_addr_sg_entry_5281
140170 +disable_so_interrupt_offset_vnic_cq_5300 interrupt_offset vnic_cq 0 5300 NULL
140171 +disable_so_usb_calc_bus_time_fndecl_5306 usb_calc_bus_time fndecl 0-4-2 5306 NULL
140172 +disable_so_cypress_calculate_burst_time_fndecl_5314 cypress_calculate_burst_time fndecl 2-3-0 5314 NULL nohasharray
140173 +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
140174 +disable_so_nilfs_btree_assign_v_fndecl_5317 nilfs_btree_assign_v fndecl 0-5 5317 NULL
140175 +disable_so_seq_tipc_nl_msg_5321 seq tipc_nl_msg 0 5321 NULL
140176 +disable_so_dr_addr_qlc_83xx_quad_entry_5328 dr_addr qlc_83xx_quad_entry 0 5328 NULL
140177 +disable_so_lzo_decompress_fndecl_5329 lzo_decompress fndecl 3 5329 NULL
140178 +disable_so_get_phys_addr_esas2r_sg_context_5331 get_phys_addr esas2r_sg_context 0 5331 NULL
140179 +disable_so_i2c_udelay_vardecl_bttv_i2c_c_5339 i2c_udelay vardecl_bttv-i2c.c 0 5339 NULL
140180 +disable_so_msr_src_desc_5345 msr src_desc 0 5345 NULL
140181 +disable_so_put_time_rxrpc_transport_5355 put_time rxrpc_transport 0 5355 NULL
140182 +disable_so_mtrr_del_fndecl_5356 mtrr_del fndecl 2-3 5356 NULL
140183 +disable_so_d_itimer_fs_disk_quota_5358 d_itimer fs_disk_quota 0 5358 NULL
140184 +disable_so_buf_phy_addr_high_ql_rcv_buf_cb_5366 buf_phy_addr_high ql_rcv_buf_cb 0 5366 NULL
140185 +disable_so_cpufreq_get_cur_state_fndecl_5369 cpufreq_get_cur_state fndecl 1 5369 NULL
140186 +disable_so_hi_cfg_bridge_delay_drxj_data_5374 hi_cfg_bridge_delay drxj_data 0 5374 NULL
140187 +disable_so_btrfs_uuid_tree_lookup_fndecl_5376 btrfs_uuid_tree_lookup fndecl 0-3-4 5376 NULL
140188 +disable_so_ds1347_read_time_fndecl_5383 ds1347_read_time fndecl 0 5383 NULL nohasharray
140189 +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
140190 +disable_so_nvm_start_addr_code_entry_5390 nvm_start_addr code_entry 0 5390 NULL
140191 +disable_so_bna_tx_coalescing_timeo_set_fndecl_5397 bna_tx_coalescing_timeo_set fndecl 2 5397 NULL
140192 +disable_so_ptp_pch_adjtime_fndecl_5406 ptp_pch_adjtime fndecl 2 5406 NULL nohasharray
140193 +disable_so_setkey_blkcipher_tfm_5406 setkey blkcipher_tfm 0-3 5406 &disable_so_ptp_pch_adjtime_fndecl_5406
140194 +disable_so_poll_time_plat_max3100_5416 poll_time plat_max3100 0 5416 NULL
140195 +disable_so_xfrm_hash_free_fndecl_5437 xfrm_hash_free fndecl 2 5437 NULL
140196 +disable_so_sh_cmt_register_clockevent_fndecl_5438 sh_cmt_register_clockevent fndecl 0 5438 NULL
140197 +disable_so_wake_cnt_blk_mq_bitmap_tags_5442 wake_cnt blk_mq_bitmap_tags 0 5442 NULL
140198 +disable_so_ping_clear_saddr_fndecl_5445 ping_clear_saddr fndecl 2 5445 NULL
140199 +disable_so_address_dummy_5460 address dummy 0 5460 NULL
140200 +disable_so_rtl_signal_scale_mapping_fndecl_5462 rtl_signal_scale_mapping fndecl 0-2 5462 NULL
140201 +disable_so_nfs_cache_getent_timeout_vardecl_cache_lib_c_5468 nfs_cache_getent_timeout vardecl_cache_lib.c 0 5468 NULL
140202 +disable_so_wmi_addr_remap_fndecl_5469 wmi_addr_remap fndecl 0-1 5469 NULL
140203 +disable_so_hash_mem_fndecl_5475 hash_mem fndecl 2 5475 NULL
140204 +disable_so_mpll_ss1_ni_clock_registers_5476 mpll_ss1 ni_clock_registers 0 5476 NULL
140205 +disable_so_cg_spll_spread_spectrum_rv730_clock_registers_5480 cg_spll_spread_spectrum rv730_clock_registers 0 5480 NULL
140206 +disable_so_data_shared_msr_entry_5484 data shared_msr_entry 0 5484 NULL
140207 +disable_so_bitmap_count_page_fndecl_5494 bitmap_count_page fndecl 2 5494 NULL
140208 +disable_so_write_radio_reg_fndecl_5497 write_radio_reg fndecl 2-3 5497 NULL nohasharray
140209 +disable_so_skcipher_recvmsg_async_fndecl_5497 skcipher_recvmsg_async fndecl 0 5497 &disable_so_write_radio_reg_fndecl_5497
140210 +disable_so_i2c_address_stv6110_priv_5499 i2c_address stv6110_priv 0 5499 NULL
140211 +disable_so_sh_cmt_clocksource_enable_fndecl_5501 sh_cmt_clocksource_enable fndecl 0 5501 NULL
140212 +disable_so_effhash_fndecl_5510 effhash fndecl 0-1 5510 NULL
140213 +disable_so_kswapd_try_to_sleep_fndecl_5521 kswapd_try_to_sleep fndecl 2 5521 NULL
140214 +disable_so_oublock_signal_struct_5525 oublock signal_struct 0 5525 NULL
140215 +disable_so_intel_bios_ssc_frequency_fndecl_5528 intel_bios_ssc_frequency fndecl 0 5528 NULL
140216 +disable_so_ioasa_bus_addr_pmcraid_ioarcb_5540 ioasa_bus_addr pmcraid_ioarcb 0 5540 NULL
140217 +disable_so_addr_req_t_5548 addr req_t 0 5548 NULL
140218 +disable_so_xfs_btree_read_bufl_fndecl_5558 xfs_btree_read_bufl fndecl 0-3 5558 NULL
140219 +disable_so_csa_expire_time_mwifiex_private_5561 csa_expire_time mwifiex_private 0 5561 NULL
140220 +disable_so_hpi_cobranet_set_static_ip_address_fndecl_5564 hpi_cobranet_set_static_ip_address fndecl 1 5564 NULL
140221 +disable_so_crypto_sha256_update_fndecl_5571 crypto_sha256_update fndecl 3 5571 NULL
140222 +disable_so_pixclock_vardecl_matroxfb_base_c_5573 pixclock vardecl_matroxfb_base.c 0 5573 NULL
140223 +disable_so_crypto_inc_byte_fndecl_5578 crypto_inc_byte fndecl 2 5578 NULL
140224 +disable_so_duration_iwl_time_event_cmd_5595 duration iwl_time_event_cmd 0 5595 NULL
140225 +disable_so_ddcb_daddr_ddcb_queue_5599 ddcb_daddr ddcb_queue 0 5599 NULL
140226 +disable_so_sst_handle_vb_timer_fndecl_5602 sst_handle_vb_timer fndecl 0 5602 NULL
140227 +disable_so_comp_resp_timeout_reg_pch_phub_reg_5604 comp_resp_timeout_reg pch_phub_reg 0 5604 NULL
140228 +disable_so_sys_getegid_fndecl_5608 sys_getegid fndecl 0 5608 NULL
140229 +disable_so_st_gid___old_kernel_stat_5613 st_gid __old_kernel_stat 0 5613 NULL
140230 +disable_so_daddr_iphdr_5614 daddr iphdr 0 5614 NULL
140231 +disable_so_desc_set_buf_addr_and_size_fndecl_5618 desc_set_buf_addr_and_size fndecl 2-3 5618 NULL
140232 +disable_so_pch_udc_enable_ep_interrupts_fndecl_5624 pch_udc_enable_ep_interrupts fndecl 2 5624 NULL
140233 +disable_so_physaddr_brcmf_msgbuf_pktid_5642 physaddr brcmf_msgbuf_pktid 0 5642 NULL
140234 +disable_so_usb_timeout_vardecl_radio_si470x_usb_c_5648 usb_timeout vardecl_radio-si470x-usb.c 0 5648 NULL
140235 +disable_so_show_sys_image_guid_fndecl_5652 show_sys_image_guid fndecl 0 5652 NULL
140236 +disable_so_mtask_addr_beiscsi_io_task_5654 mtask_addr beiscsi_io_task 0 5654 NULL
140237 +disable_so_no_addr_gfs2_inum_host_5660 no_addr gfs2_inum_host 0 5660 NULL
140238 +disable_so___sw_hweight64_fndecl_5663 __sw_hweight64 fndecl 1-0 5663 NULL
140239 +disable_so_aca_tstamp_ifacaddr6_5678 aca_tstamp ifacaddr6 0 5678 NULL
140240 +disable_so_fill_in_addresses_op_x86_model_spec_5684 fill_in_addresses op_x86_model_spec 0 5684 NULL
140241 +disable_so_root_hfs_btree_5692 root hfs_btree 0 5692 NULL
140242 +disable_so_update_time_saa7164_histogram_bucket_5697 update_time saa7164_histogram_bucket 0 5697 NULL
140243 +disable_so_hw_ptr_base_snd_pcm_runtime_5698 hw_ptr_base snd_pcm_runtime 0 5698 NULL
140244 +disable_so_snd_emu10k1_timer_fndecl_5702 snd_emu10k1_timer fndecl 2-0 5702 NULL
140245 +disable_so_bmap_hash_id_fndecl_5706 bmap_hash_id fndecl 0-2 5706 NULL
140246 +disable_so_timeout_abs_ns_vcpu_set_singleshot_timer_5711 timeout_abs_ns vcpu_set_singleshot_timer 0 5711 NULL
140247 +disable_so_timestamp_discovery_t_5725 timestamp discovery_t 0 5725 NULL nohasharray
140248 +disable_so_uid_fuse_setattr_in_5725 uid fuse_setattr_in 0 5725 &disable_so_timestamp_discovery_t_5725 nohasharray
140249 +disable_so_SYSC_setreuid_fndecl_5725 SYSC_setreuid fndecl 0 5725 &disable_so_uid_fuse_setattr_in_5725
140250 +disable_so_r10_kvm_regs_5730 r10 kvm_regs 0 5730 NULL
140251 +disable_so_bulk_in_epaddr_sur40_state_5741 bulk_in_epaddr sur40_state 0 5741 NULL
140252 +disable_so_rt2x00lib_rxdone_read_signal_fndecl_5747 rt2x00lib_rxdone_read_signal fndecl 0 5747 NULL
140253 +disable_so_ti_tscadc_driver_init_fndecl_5771 ti_tscadc_driver_init fndecl 0 5771 NULL
140254 +disable_so_iowrite8_fndecl_5781 iowrite8 fndecl 1 5781 NULL
140255 +disable_so_mthca_resize_cq_fndecl_5782 mthca_resize_cq fndecl 0 5782 NULL
140256 +disable_so_lbs_host_sleep_write_fndecl_5783 lbs_host_sleep_write fndecl 0-3 5783 NULL
140257 +disable_so_addr_tx_buf_desc_5787 addr tx_buf_desc 0 5787 NULL
140258 +disable_so_tcn_timer_value___bridge_info_5789 tcn_timer_value __bridge_info 0 5789 NULL
140259 +disable_so_old_jiffies_ati_remote_5798 old_jiffies ati_remote 0 5798 NULL
140260 +disable_so_timeout_sched_poll_5810 timeout sched_poll 0 5810 NULL
140261 +disable_so_addr_doit_fndecl_5813 addr_doit fndecl 0 5813 NULL
140262 +disable_so_enic_dev_del_addr_fndecl_5814 enic_dev_del_addr fndecl 0 5814 NULL
140263 +disable_so_start_addr_gen_pool_chunk_5822 start_addr gen_pool_chunk 0 5822 NULL
140264 +disable_so_smsc75xx_enable_phy_wakeup_interrupts_fndecl_5824 smsc75xx_enable_phy_wakeup_interrupts fndecl 2-0 5824 NULL
140265 +disable_so_ieee802154_hdr_peek_addrs_fndecl_5825 ieee802154_hdr_peek_addrs fndecl 0 5825 NULL
140266 +disable_so_dsp_dram_offset_sst_addr_5830 dsp_dram_offset sst_addr 0 5830 NULL
140267 +disable_so_mwifiex_read_reg_fndecl_5832 mwifiex_read_reg fndecl 2 5832 NULL
140268 +disable_so_process_tgid_comm_proc_event_5834 process_tgid comm_proc_event 0 5834 NULL
140269 +disable_so_idedisk_read_native_max_address_fndecl_5836 idedisk_read_native_max_address fndecl 0 5836 NULL
140270 +disable_so_bus_time_fw_ohci_5838 bus_time fw_ohci 0 5838 NULL
140271 +disable_so_demod_address_nxt6000_config_5841 demod_address nxt6000_config 0 5841 NULL
140272 +disable_so_recover_timer_write_fndecl_5848 recover_timer_write fndecl 3-0 5848 NULL
140273 +disable_so_next_jiffies_tick_sched_5856 next_jiffies tick_sched 0 5856 NULL
140274 +disable_so_addr_asc_sg_list_5863 addr asc_sg_list 0 5863 NULL
140275 +disable_so_schedule_delayed_work_fndecl_5873 schedule_delayed_work fndecl 2 5873 NULL
140276 +disable_so_allow_utime_fat_mount_options_5877 allow_utime fat_mount_options 0 5877 NULL
140277 +disable_so_irlap_start_query_timer_fndecl_5881 irlap_start_query_timer fndecl 3-2 5881 NULL
140278 +disable_so_nent_kvm_cpuid2_5883 nent kvm_cpuid2 0 5883 NULL
140279 +disable_so_delay_pcm_irq_snd_emu10k1_5885 delay_pcm_irq snd_emu10k1 0 5885 NULL
140280 +disable_so_DAC1064_calcclock_fndecl_5888 DAC1064_calcclock fndecl 2-3 5888 NULL
140281 +disable_so_ep_address_ath6kl_usb_pipe_5905 ep_address ath6kl_usb_pipe 0 5905 NULL nohasharray
140282 +disable_so_set_bit_le_fndecl_5905 set_bit_le fndecl 1 5905 &disable_so_ep_address_ath6kl_usb_pipe_5905
140283 +disable_so_last_force_reset_jiffies_il_force_reset_5911 last_force_reset_jiffies il_force_reset 0 5911 NULL
140284 +disable_so_evclk_radeon_vce_clock_voltage_dependency_entry_5913 evclk radeon_vce_clock_voltage_dependency_entry 0 5913 NULL
140285 +disable_so_status_address_card_5915 status_address card 0 5915 NULL
140286 +disable_so_ifal_index_ifaddrlblmsg_5916 ifal_index ifaddrlblmsg 0 5916 NULL
140287 +disable_so_validate_add_page_mtrr_ops_5922 validate_add_page mtrr_ops 1-2 5922 NULL
140288 +disable_so_fm10k_ptp_adjtime_fndecl_5923 fm10k_ptp_adjtime fndecl 2 5923 NULL
140289 +disable_so_addrtype_ip6addrlbl_entry_5927 addrtype ip6addrlbl_entry 0 5927 NULL
140290 +disable_so_packet_life_time_ib_sa_path_rec_5929 packet_life_time ib_sa_path_rec 0 5929 NULL
140291 +disable_so_open_time_local_info_5930 open_time local_info 0 5930 NULL
140292 +disable_so_apply_time_iwl_time_event_cmd_5933 apply_time iwl_time_event_cmd 0 5933 NULL
140293 +disable_so_default_address_sc520_par_table_5941 default_address sc520_par_table 0 5941 NULL
140294 +disable_so_btrfs_hash_init_fndecl_5945 btrfs_hash_init fndecl 0 5945 NULL
140295 +disable_so_tsc_khz_ref_vardecl_tsc_c_5951 tsc_khz_ref vardecl_tsc.c 0 5951 NULL
140296 +disable_so_init_hrtimers_cpu_fndecl_5954 init_hrtimers_cpu fndecl 1 5954 NULL
140297 +disable_so_dma_address_scatterlist_5955 dma_address scatterlist 0 5955 NULL
140298 +disable_so_vsi_id_i40e_virtchnl_ether_addr_list_5963 vsi_id i40e_virtchnl_ether_addr_list 0 5963 NULL
140299 +disable_so_i_mtime_sysv_inode_5967 i_mtime sysv_inode 0 5967 NULL
140300 +disable_so_mult_clock_event_device_5973 mult clock_event_device 0 5973 NULL nohasharray
140301 +disable_so_schedule_internal_copy_fndecl_5973 schedule_internal_copy fndecl 2-3-4 5973 &disable_so_mult_clock_event_device_5973
140302 +disable_so_hash_netport6_expire_fndecl_5974 hash_netport6_expire fndecl 4 5974 NULL
140303 +disable_so_tap_time_vardecl_mousedev_c_5990 tap_time vardecl_mousedev.c 0 5990 NULL
140304 +disable_so_write_reg_fndecl_5992 write_reg fndecl 3 5992 NULL
140305 +disable_so_clk_divider_round_rate_fndecl_6000 clk_divider_round_rate fndecl 2-0 6000 NULL
140306 +disable_so_hor_sync_end_via_display_timing_6001 hor_sync_end via_display_timing 0 6001 NULL
140307 +disable_so_xe_name_hash_ocfs2_xattr_entry_6006 xe_name_hash ocfs2_xattr_entry 0 6006 NULL
140308 +disable_so_blkcipher_next_fast_fndecl_6013 blkcipher_next_fast fndecl 0 6013 NULL
140309 +disable_so_gcm_dec_hash_continue_fndecl_6014 gcm_dec_hash_continue fndecl 0 6014 NULL
140310 +disable_so_x_qxl_bitmap_6015 x qxl_bitmap 0 6015 NULL
140311 +disable_so__rtl92s_phy_calculate_bit_shift_fndecl_6019 _rtl92s_phy_calculate_bit_shift fndecl 0-1 6019 NULL
140312 +disable_so_snd_pcm_oss_get_odelay_fndecl_6033 snd_pcm_oss_get_odelay fndecl 0 6033 NULL
140313 +disable_so_remote_addr_c2wr_qp_connect_req_6036 remote_addr c2wr_qp_connect_req 0 6036 NULL
140314 +disable_so_set_time_rtc_class_ops_6037 set_time rtc_class_ops 0 6037 NULL
140315 +disable_so_kvm_lapic_set_vapic_addr_fndecl_6040 kvm_lapic_set_vapic_addr fndecl 2 6040 NULL
140316 +disable_so_netlink_hash_fndecl_6041 netlink_hash fndecl 0 6041 NULL
140317 +disable_so_delay_edac_device_ctl_info_6043 delay edac_device_ctl_info 0 6043 NULL
140318 +disable_so_hash_src_fndecl_6045 hash_src fndecl 0 6045 NULL
140319 +disable_so_addrconf_add_ifaddr_fndecl_6046 addrconf_add_ifaddr fndecl 0 6046 NULL
140320 +disable_so_abx500_get_register_interruptible_fndecl_6047 abx500_get_register_interruptible fndecl 0 6047 NULL
140321 +disable_so_uac_clock_source_is_valid_fndecl_6049 uac_clock_source_is_valid fndecl 2 6049 NULL
140322 +disable_so_max_keysize_crypto_report_cipher_6050 max_keysize crypto_report_cipher 0 6050 NULL
140323 +disable_so_hit_timestamp_hh_flow_state_6053 hit_timestamp hh_flow_state 0 6053 NULL
140324 +disable_so_crypto_fpu_setkey_fndecl_6067 crypto_fpu_setkey fndecl 0-3 6067 NULL
140325 +disable_so_ticks_snd_timer_instance_6068 ticks snd_timer_instance 0 6068 NULL nohasharray
140326 +disable_so_dev_mem_address_mlx4_cable_info_6068 dev_mem_address mlx4_cable_info 0 6068 &disable_so_ticks_snd_timer_instance_6068
140327 +disable_so_start_time_ieee80211_measurement_params_6073 start_time ieee80211_measurement_params 0 6073 NULL
140328 +disable_so_i_ino_timelimit_qc_info_6082 i_ino_timelimit qc_info 0 6082 NULL
140329 +disable_so_sll_ifindex_sockaddr_ll_6083 sll_ifindex sockaddr_ll 0 6083 NULL
140330 +disable_so_sleep_auth_read_fndecl_6084 sleep_auth_read fndecl 3-0 6084 NULL
140331 +disable_so_btrfs_run_delayed_refs_fndecl_6098 btrfs_run_delayed_refs fndecl 0 6098 NULL
140332 +disable_so_blocksize_crypto_report_aead_6103 blocksize crypto_report_aead 0 6103 NULL
140333 +disable_so_periods_snd_pcm_runtime_6104 periods snd_pcm_runtime 0 6104 NULL
140334 +disable_so_wait_for_completion_io_timeout_fndecl_6120 wait_for_completion_io_timeout fndecl 2-0 6120 NULL
140335 +disable_so_rsi_cmd52readbyte_fndecl_6123 rsi_cmd52readbyte fndecl 0-2 6123 NULL
140336 +disable_so_jiffies_io_6127 jiffies io 0 6127 NULL
140337 +disable_so_ac97_clock_vardecl_atiixp_c_6132 ac97_clock vardecl_atiixp.c 0 6132 NULL
140338 +disable_so_vmap_block_vaddr_fndecl_6152 vmap_block_vaddr fndecl 1-2 6152 NULL
140339 +disable_so_depth_blk_mq_bitmap_tags_6153 depth blk_mq_bitmap_tags 0 6153 NULL
140340 +disable_so_mul_vnic_intr_coal_timer_info_6154 mul vnic_intr_coal_timer_info 0 6154 NULL
140341 +disable_so_ctrl_freq_au0828_dev_6155 ctrl_freq au0828_dev 0 6155 NULL
140342 +disable_so_hrtimer_get_res_fndecl_6170 hrtimer_get_res fndecl 1 6170 NULL
140343 +disable_so_nlm_hash_address_fndecl_6174 nlm_hash_address fndecl 0 6174 NULL
140344 +disable_so_vaddr_vfio_iommu_type1_dma_map_6175 vaddr vfio_iommu_type1_dma_map 0 6175 NULL
140345 +disable_so_cpuidle_register_device_fndecl_6179 cpuidle_register_device fndecl 0 6179 NULL
140346 +disable_so_wl18xx_set_host_cfg_bitmap_fndecl_6180 wl18xx_set_host_cfg_bitmap fndecl 0 6180 NULL
140347 +disable_so_daddr_ircomm_tty_cb_6187 daddr ircomm_tty_cb 0 6187 NULL
140348 +disable_so_address_iio_chan_spec_6188 address iio_chan_spec 0 6188 NULL
140349 +disable_so_gem_interrupt_fndecl_6193 gem_interrupt fndecl 1 6193 NULL
140350 +disable_so_test_steal_space_from_bitmap_to_extent_fndecl_6197 test_steal_space_from_bitmap_to_extent fndecl 0 6197 NULL
140351 +disable_so_write8_async_rtl_io_6212 write8_async rtl_io 2-3 6212 NULL
140352 +disable_so_gpio_request_fndecl_6213 gpio_request fndecl 0-1 6213 NULL
140353 +disable_so_max_cmds_mthca_cmd_6222 max_cmds mthca_cmd 0 6222 NULL
140354 +disable_so_rhashtable_rehash_one_fndecl_6224 rhashtable_rehash_one fndecl 2 6224 NULL
140355 +disable_so_addr_hi_sli4_sge_6229 addr_hi sli4_sge 0 6229 NULL
140356 +disable_so_bnx2x_set_iscsi_eth_mac_addr_fndecl_6234 bnx2x_set_iscsi_eth_mac_addr fndecl 0 6234 NULL
140357 +disable_so___ipv6_addr_label_fndecl_6235 __ipv6_addr_label fndecl 3-4 6235 NULL
140358 +disable_so_chnl_freq_wil6210_rtap_6236 chnl_freq wil6210_rtap 0 6236 NULL
140359 +disable_so_mv88e6xxx_port_to_phy_addr_fndecl_6239 mv88e6xxx_port_to_phy_addr fndecl 0-2 6239 NULL
140360 +disable_so_phy_pm_runtime_get_sync_fndecl_6245 phy_pm_runtime_get_sync fndecl 0 6245 NULL
140361 +disable_so_kempld_wdt_set_pretimeout_fndecl_6258 kempld_wdt_set_pretimeout fndecl 2 6258 NULL
140362 +disable_so_sq_page_table_addr_lo_iscsi_kwqe_conn_offload1_6259 sq_page_table_addr_lo iscsi_kwqe_conn_offload1 0 6259 NULL
140363 +disable_so_async_chainiv_schedule_work_fndecl_6271 async_chainiv_schedule_work fndecl 0 6271 NULL
140364 +disable_so_bus_clock_khz_ocores_i2c_6290 bus_clock_khz ocores_i2c 0 6290 NULL
140365 +disable_so_cttimeout_default_get_fndecl_6297 cttimeout_default_get fndecl 0 6297 NULL
140366 +disable_so_show_pci_clock_sel_fndecl_6300 show_pci_clock_sel fndecl 0 6300 NULL nohasharray
140367 +disable_so_addr_w83627ehf_data_6300 addr w83627ehf_data 0 6300 &disable_so_show_pci_clock_sel_fndecl_6300
140368 +disable_so_base_addr_pmc_dev_6305 base_addr pmc_dev 0 6305 NULL
140369 +disable_so_max_post_div_radeon_pll_6315 max_post_div radeon_pll 0 6315 NULL
140370 +disable_so_mmc_sd_erase_timeout_fndecl_6317 mmc_sd_erase_timeout fndecl 0-3 6317 NULL
140371 +disable_so_get_time_sound_timer_operations_6318 get_time sound_timer_operations 0 6318 NULL
140372 +disable_so_runtime_reg_sch311x_pdev_data_6324 runtime_reg sch311x_pdev_data 0 6324 NULL
140373 +disable_so_hscx_interrupt_fndecl_6328 hscx_interrupt fndecl 2 6328 NULL
140374 +disable_so_hangcheck_margin_vardecl_hangcheck_timer_c_6346 hangcheck_margin vardecl_hangcheck-timer.c 0 6346 NULL nohasharray
140375 +disable_so___hrtimer_start_range_ns_fndecl_6346 __hrtimer_start_range_ns fndecl 3 6346 &disable_so_hangcheck_margin_vardecl_hangcheck_timer_c_6346
140376 +disable_so_force_addr_vardecl_i2c_ali15x3_c_6378 force_addr vardecl_i2c-ali15x3.c 0 6378 NULL
140377 +disable_so_usb_interrupt_msg_fndecl_6387 usb_interrupt_msg fndecl 4-2-6-0 6387 NULL
140378 +disable_so_bitmap_file_test_bit_fndecl_6390 bitmap_file_test_bit fndecl 2 6390 NULL
140379 +disable_so_access_delay_vardecl_nandsim_c_6394 access_delay vardecl_nandsim.c 0 6394 NULL
140380 +disable_so_snd_ice1712_interrupt_fndecl_6396 snd_ice1712_interrupt fndecl 1 6396 NULL
140381 +disable_so_i2c_addr_isl6421_6399 i2c_addr isl6421 0 6399 NULL
140382 +disable_so_sta_connected_time_read_fndecl_6408 sta_connected_time_read fndecl 3 6408 NULL
140383 +disable_so_dbg_uidn_show_fndecl_6415 dbg_uidn_show fndecl 3 6415 NULL
140384 +disable_so_timeout_fib6_gc_args_6417 timeout fib6_gc_args 0 6417 NULL
140385 +disable_so_max_pixelclock_v4l2_bt_timings_cap_6421 max_pixelclock v4l2_bt_timings_cap 0 6421 NULL nohasharray
140386 +disable_so_vlv_clock_fndecl_6421 vlv_clock fndecl 1 6421 &disable_so_max_pixelclock_v4l2_bt_timings_cap_6421
140387 +disable_so_hold_timer_value___port_info_6426 hold_timer_value __port_info 0 6426 NULL
140388 +disable_so_plllocktime_psb_s_6428 plllocktime psb_s 0 6428 NULL nohasharray
140389 +disable_so_channel2freq_lp_fndecl_6428 channel2freq_lp fndecl 0-1 6428 &disable_so_plllocktime_psb_s_6428
140390 +disable_so_base_addr_fpoint_info_6432 base_addr fpoint_info 0 6432 NULL
140391 +disable_so_paravirt_write_msr_fndecl_6445 paravirt_write_msr fndecl 0-1-2-3 6445 NULL
140392 +disable_so_bnx2x_eee_nvram_to_time_fndecl_6450 bnx2x_eee_nvram_to_time fndecl 1 6450 NULL
140393 +disable_so_dn_nl_deladdr_fndecl_6451 dn_nl_deladdr fndecl 0 6451 NULL
140394 +disable_so_mpll_ss_rv730_clock_registers_6456 mpll_ss rv730_clock_registers 0 6456 NULL nohasharray
140395 +disable_so_buffer_addr_atl1e_tpd_desc_6456 buffer_addr atl1e_tpd_desc 0 6456 &disable_so_mpll_ss_rv730_clock_registers_6456
140396 +disable_so_xfs_btree_lshift_fndecl_6459 xfs_btree_lshift fndecl 0 6459 NULL
140397 +disable_so_tomoyo_check_unix_address_fndecl_6464 tomoyo_check_unix_address fndecl 0-2 6464 NULL
140398 +disable_so_bitmap_pos_to_ord_fndecl_6476 bitmap_pos_to_ord fndecl 3-2 6476 NULL
140399 +disable_so_bql_set_hold_time_fndecl_6478 bql_set_hold_time fndecl 0-4 6478 NULL
140400 +disable_so_range_shift_fixed_mtrr_segment_6484 range_shift fixed_mtrr_segment 0 6484 NULL
140401 +disable_so___clocksource_update_freq_scale_fndecl_6485 __clocksource_update_freq_scale fndecl 2-3 6485 NULL
140402 +disable_so_freq_pmu1_plltab_entry_6497 freq pmu1_plltab_entry 0 6497 NULL
140403 +disable_so___btrfs_abort_transaction_fndecl_6516 __btrfs_abort_transaction fndecl 5 6516 NULL
140404 +disable_so_timeout_clks_mmc_data_6527 timeout_clks mmc_data 0 6527 NULL
140405 +disable_so_set_tss_addr_kvm_x86_ops_6529 set_tss_addr kvm_x86_ops 2 6529 NULL
140406 +disable_so_acpi_device_sleep_wake_fndecl_6537 acpi_device_sleep_wake fndecl 0-2-3 6537 NULL nohasharray
140407 +disable_so_rtsc_x2y_fndecl_6537 rtsc_x2y fndecl 0-2 6537 &disable_so_acpi_device_sleep_wake_fndecl_6537
140408 +disable_so_msr_saved_flags_uart_8250_port_6538 msr_saved_flags uart_8250_port 0 6538 NULL
140409 +disable_so_next_blk_mq_timeout_data_6556 next blk_mq_timeout_data 0 6556 NULL nohasharray
140410 +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
140411 +disable_so_ovs_flow_used_time_fndecl_6571 ovs_flow_used_time fndecl 1-0 6571 NULL
140412 +disable_so_orinoco_ioctl_setfreq_fndecl_6577 orinoco_ioctl_setfreq fndecl 0 6577 NULL
140413 +disable_so_hash_netport4_expire_fndecl_6582 hash_netport4_expire fndecl 4 6582 NULL
140414 +disable_so_rpwwn_bfa_bsg_rport_scsi_addr_s_6584 rpwwn bfa_bsg_rport_scsi_addr_s 0 6584 NULL
140415 +disable_so_gid_ncp_mount_data_v4_6586 gid ncp_mount_data_v4 0 6586 NULL
140416 +disable_so_set_input_clock_fndecl_6599 set_input_clock fndecl 0 6599 NULL
140417 +disable_so_mmap_bytes_snd_pcm_oss_runtime_6600 mmap_bytes snd_pcm_oss_runtime 0 6600 NULL
140418 +disable_so_do_sys_settimeofday_fndecl_6601 do_sys_settimeofday fndecl 0 6601 NULL
140419 +disable_so_tv_sec_ufs_timeval_6608 tv_sec ufs_timeval 0 6608 NULL
140420 +disable_so_tk_debug_sleep_time_open_fndecl_6625 tk_debug_sleep_time_open fndecl 0 6625 NULL
140421 +disable_so_bmg160_convert_freq_to_bit_fndecl_6628 bmg160_convert_freq_to_bit fndecl 0 6628 NULL
140422 +disable_so_sis_ata133_program_timings_fndecl_6633 sis_ata133_program_timings fndecl 2 6633 NULL
140423 +disable_so_timestamp_nvkm_alarm_6635 timestamp nvkm_alarm 0 6635 NULL nohasharray
140424 +disable_so_offset_crypto_hash_walk_6635 offset crypto_hash_walk 0 6635 &disable_so_timestamp_nvkm_alarm_6635
140425 +disable_so_ocfs2_rotate_subtree_left_fndecl_6641 ocfs2_rotate_subtree_left fndecl 0-5 6641 NULL
140426 +disable_so_vactive_lo_detailed_pixel_timing_6644 vactive_lo detailed_pixel_timing 0 6644 NULL
140427 +disable_so_givencrypt_ablkcipher_tfm_6647 givencrypt ablkcipher_tfm 0 6647 NULL
140428 +disable_so_fill_in_real_sgid_index_fndecl_6648 fill_in_real_sgid_index fndecl 2-3 6648 NULL
140429 +disable_so_i_gid_read_fndecl_6650 i_gid_read fndecl 0 6650 NULL
140430 +disable_so_uniq_time_smt_values_6653 uniq_time smt_values 0 6653 NULL nohasharray
140431 +disable_so_missvaddr_gru_tlb_fault_handle_6653 missvaddr gru_tlb_fault_handle 0 6653 &disable_so_uniq_time_smt_values_6653
140432 +disable_so_rq_timeout_request_queue_6657 rq_timeout request_queue 0 6657 NULL
140433 +disable_so_resp_bd_list_addr_hi_bnx2i_login_request_6658 resp_bd_list_addr_hi bnx2i_login_request 0 6658 NULL
140434 +disable_so_ebp_tss_segment_32_6659 ebp tss_segment_32 0 6659 NULL
140435 +disable_so_sha_complete_job_fndecl_6679 sha_complete_job fndecl 3 6679 NULL
140436 +disable_so_cursor_vram_addr_viafb_shared_6684 cursor_vram_addr viafb_shared 0 6684 NULL
140437 +disable_so_si_set_smc_sram_address_fndecl_6696 si_set_smc_sram_address fndecl 0-2 6696 NULL
140438 +disable_so_ocfs2_divide_leaf_refcount_block_fndecl_6709 ocfs2_divide_leaf_refcount_block fndecl 0 6709 NULL
140439 +disable_so_smp_base_set_mtrr_data_6722 smp_base set_mtrr_data 0 6722 NULL
140440 +disable_so_titsc_parse_dt_fndecl_6744 titsc_parse_dt fndecl 0 6744 NULL
140441 +disable_so_driver_timestamp_netxen_minidump_template_hdr_6745 driver_timestamp netxen_minidump_template_hdr 0 6745 NULL
140442 +disable_so_end_address_dmar_rmrr_unit_6748 end_address dmar_rmrr_unit 0 6748 NULL
140443 +disable_so_std_signal_mode_vivid_dev_6752 std_signal_mode vivid_dev 0 6752 NULL
140444 +disable_so_part_timeout_show_fndecl_6761 part_timeout_show fndecl 0 6761 NULL
140445 +disable_so_tx_coal_timer_stmmac_priv_6772 tx_coal_timer stmmac_priv 0 6772 NULL
140446 +disable_so_kvm_clock_read_fndecl_6779 kvm_clock_read fndecl 0 6779 NULL
140447 +disable_so_alarm_clock_get_fndecl_6780 alarm_clock_get fndecl 1 6780 NULL
140448 +disable_so_rcar_i2c_clock_calculate_fndecl_6789 rcar_i2c_clock_calculate fndecl 0 6789 NULL
140449 +disable_so_timeout_vardecl_sbc60xxwdt_c_6807 timeout vardecl_sbc60xxwdt.c 0 6807 NULL
140450 +disable_so_rp_uid_ubifs_sb_node_6810 rp_uid ubifs_sb_node 0 6810 NULL
140451 +disable_so_wm8940_set_dai_clkdiv_fndecl_6811 wm8940_set_dai_clkdiv fndecl 3-0 6811 NULL
140452 +disable_so_shift_clk_divider_6812 shift clk_divider 0 6812 NULL nohasharray
140453 +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
140454 +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
140455 +disable_so_io_profile_start_time_bfa_fcpim_s_6814 io_profile_start_time bfa_fcpim_s 0 6814 NULL
140456 +disable_so_tsc_timestamp_pvclock_vcpu_time_info_6819 tsc_timestamp pvclock_vcpu_time_info 0 6819 NULL
140457 +disable_so_paddr_ath10k_skb_rxcb_6820 paddr ath10k_skb_rxcb 0 6820 NULL
140458 +disable_so_src_addr_ioat_dma_descriptor_6823 src_addr ioat_dma_descriptor 0 6823 NULL
140459 +disable_so_ivsize_ablkcipher_tfm_6824 ivsize ablkcipher_tfm 0 6824 NULL
140460 +disable_so_p_val_aic32x4_rate_divs_6838 p_val aic32x4_rate_divs 0 6838 NULL nohasharray
140461 +disable_so_bit_putcs_unaligned_fndecl_6838 bit_putcs_unaligned fndecl 5-6-7-8 6838 &disable_so_p_val_aic32x4_rate_divs_6838
140462 +disable_so_iaddr2blockno_fndecl_6842 iaddr2blockno fndecl 0 6842 NULL nohasharray
140463 +disable_so_reserved_top_mlx4_bitmap_6842 reserved_top mlx4_bitmap 0 6842 &disable_so_iaddr2blockno_fndecl_6842
140464 +disable_so_address_acpi_object_processor_6844 address acpi_object_processor 0 6844 NULL nohasharray
140465 +disable_so_top_freq_region_info_6844 top_freq region_info 0 6844 &disable_so_address_acpi_object_processor_6844
140466 +disable_so_phys_addr_sge_txq_6851 phys_addr sge_txq 0 6851 NULL
140467 +disable_so_irq_find_mapping_fndecl_6855 irq_find_mapping fndecl 0-2 6855 NULL
140468 +disable_so_ipaddr_rds_ib_ipaddr_6865 ipaddr rds_ib_ipaddr 0 6865 NULL
140469 +disable_so_cdv_intel_clock_recovery_ok_fndecl_6866 cdv_intel_clock_recovery_ok fndecl 2 6866 NULL
140470 +disable_so_rmw_ath_ops_6869 rmw ath_ops 2-3-4 6869 NULL
140471 +disable_so_last_jiffies_ivtv_api_cache_6880 last_jiffies ivtv_api_cache 0 6880 NULL
140472 +disable_so_ui_atimensec_ufs2_inode_6881 ui_atimensec ufs2_inode 0 6881 NULL
140473 +disable_so_gether_get_host_addr_cdc_fndecl_6888 gether_get_host_addr_cdc fndecl 0 6888 NULL
140474 +disable_so_wmi_add_cipher_key_fndecl_6891 wmi_add_cipher_key fndecl 0-2-4 6891 NULL
140475 +disable_so_ppp_gidle_fndecl_6898 ppp_gidle fndecl 0-1 6898 NULL
140476 +disable_so_dialtimeout_isdn_net_local_s_6908 dialtimeout isdn_net_local_s 0 6908 NULL
140477 +disable_so_conf_printf2_fndecl_6910 conf_printf2 fndecl 2-4-5 6910 NULL
140478 +disable_so_pilot_stv0900_signal_info_6915 pilot stv0900_signal_info 0 6915 NULL
140479 +disable_so_size_log2_t3_wq_6928 size_log2 t3_wq 0 6928 NULL
140480 +disable_so_s35390a_set_datetime_fndecl_6935 s35390a_set_datetime fndecl 0 6935 NULL
140481 +disable_so_sys_setfsgid_fndecl_6945 sys_setfsgid fndecl 0-1 6945 NULL
140482 +disable_so_triflex_load_timing_fndecl_6946 triflex_load_timing fndecl 3 6946 NULL
140483 +disable_so_ps2mult_interrupt_fndecl_6951 ps2mult_interrupt fndecl 2 6951 NULL
140484 +disable_so_hpi_sample_clock_query_source_fndecl_6959 hpi_sample_clock_query_source fndecl 1-0 6959 NULL
140485 +disable_so_tseg2_max_can_bittiming_const_6963 tseg2_max can_bittiming_const 0 6963 NULL
140486 +disable_so_rec8b_ata_timing_6977 rec8b ata_timing 0 6977 NULL
140487 +disable_so_vactive___fb_timings_6978 vactive __fb_timings 0 6978 NULL
140488 +disable_so_mgid_index_mlx4_qp_path_6990 mgid_index mlx4_qp_path 0 6990 NULL
140489 +disable_so_log_start_addr_server_hdr_7000 log_start_addr server_hdr 0 7000 NULL
140490 +disable_so_t2timer_ax25_info_struct_7019 t2timer ax25_info_struct 0 7019 NULL
140491 +disable_so_start_address_mxt_object_7033 start_address mxt_object 0 7033 NULL
140492 +disable_so_cpufreq_add_dev_symlink_fndecl_7039 cpufreq_add_dev_symlink fndecl 0 7039 NULL
140493 +disable_so_fm10k_systime_read_fndecl_7040 fm10k_systime_read fndecl 0 7040 NULL
140494 +disable_so_dv_timings_signal_mode_vivid_dev_7046 dv_timings_signal_mode vivid_dev 0 7046 NULL
140495 +disable_so_set_expect_timeout_fndecl_7051 set_expect_timeout fndecl 2 7051 NULL
140496 +disable_so_ts_dev_2_peak_time_ref_7055 ts_dev_2 peak_time_ref 0 7055 NULL
140497 +disable_so_pci_lat_timer_tg3_7056 pci_lat_timer tg3 0 7056 NULL
140498 +disable_so_ioarcb_bus_addr_pmcraid_ioarcb_7057 ioarcb_bus_addr pmcraid_ioarcb 0 7057 NULL
140499 +disable_so_tbl_addr_ahci_cmd_hdr_7060 tbl_addr ahci_cmd_hdr 0 7060 NULL
140500 +disable_so_total_i915_address_space_7088 total i915_address_space 0 7088 NULL
140501 +disable_so_nfs_mountpoint_expiry_timeout_vardecl_7089 nfs_mountpoint_expiry_timeout vardecl 0 7089 NULL
140502 +disable_so_rx_control_addr_acx_data_path_params_resp_7090 rx_control_addr acx_data_path_params_resp 0 7090 NULL
140503 +disable_so_qs_btimelimit_fs_quota_stat_7091 qs_btimelimit fs_quota_stat 0 7091 NULL
140504 +disable_so_SYSC_semtimedop_fndecl_7096 SYSC_semtimedop fndecl 1-3 7096 NULL
140505 +disable_so_lm8323_pwm_show_time_fndecl_7100 lm8323_pwm_show_time fndecl 0 7100 NULL
140506 +disable_so_start_time_btrfs_transaction_7107 start_time btrfs_transaction 0 7107 NULL
140507 +disable_so_dma_bytes_snd_pcm_runtime_7108 dma_bytes snd_pcm_runtime 0 7108 NULL
140508 +disable_so_sr__coeff_div_7109 sr _coeff_div 0 7109 NULL
140509 +disable_so_assert_pio_clocks_7119 assert pio_clocks 0 7119 NULL
140510 +disable_so_sctp_bind_addr_copy_fndecl_7122 sctp_bind_addr_copy fndecl 0-5 7122 NULL
140511 +disable_so_irq_domain_get_irq_data_fndecl_7132 irq_domain_get_irq_data fndecl 2 7132 NULL
140512 +disable_so_cur_freq_intel_gen6_power_mgmt_7134 cur_freq intel_gen6_power_mgmt 0 7134 NULL nohasharray
140513 +disable_so_address_mask_fndecl_7134 address_mask fndecl 0-2 7134 &disable_so_cur_freq_intel_gen6_power_mgmt_7134
140514 +disable_so_timeout_md_thread_7138 timeout md_thread 0 7138 NULL
140515 +disable_so_nicvf_register_interrupts_fndecl_7143 nicvf_register_interrupts fndecl 0 7143 NULL
140516 +disable_so_logical_drive_info_dma_addr_ips_ha_7146 logical_drive_info_dma_addr ips_ha 0 7146 NULL
140517 +disable_so_ai_slowclk_freq_fndecl_7147 ai_slowclk_freq fndecl 0 7147 NULL
140518 +disable_so_addr_play_vals_7151 addr play_vals 0 7151 NULL
140519 +disable_so_enc_addr_low_ssp_ini_io_start_req_7153 enc_addr_low ssp_ini_io_start_req 0 7153 NULL
140520 +disable_so_dev_sockaddr_mISDN_7154 dev sockaddr_mISDN 0 7154 NULL
140521 +disable_so_scan_start_time_ath_ant_comb_7155 scan_start_time ath_ant_comb 0 7155 NULL nohasharray
140522 +disable_so_mcryptd_hash_final_fndecl_7155 mcryptd_hash_final fndecl 2 7155 &disable_so_scan_start_time_ath_ant_comb_7155
140523 +disable_so_ack_time_minstrel_rate_7156 ack_time minstrel_rate 0 7156 NULL
140524 +disable_so_start_time_fscache_retrieval_7166 start_time fscache_retrieval 0 7166 NULL
140525 +disable_so_timetosend_nes_timer_entry_7169 timetosend nes_timer_entry 0 7169 NULL
140526 +disable_so_autofs4_get_set_timeout_fndecl_7185 autofs4_get_set_timeout fndecl 0 7185 NULL
140527 +disable_so_list_voltage_regulator_ops_7194 list_voltage regulator_ops 0-2 7194 NULL
140528 +disable_so_round_jiffies_fndecl_7204 round_jiffies fndecl 0-1 7204 NULL nohasharray
140529 +disable_so_address_lo_be_bus_address32_7204 address_lo be_bus_address32 0 7204 &disable_so_round_jiffies_fndecl_7204
140530 +disable_so_efx_recycle_rx_pages_fndecl_7206 efx_recycle_rx_pages fndecl 3 7206 NULL
140531 +disable_so_ssb_chipco_watchdog_timer_set_fndecl_7210 ssb_chipco_watchdog_timer_set fndecl 2-0 7210 NULL
140532 +disable_so_ebitmap_netlbl_export_fndecl_7212 ebitmap_netlbl_export fndecl 0 7212 NULL
140533 +disable_so_charge_timeout_wm8350_charger_policy_7222 charge_timeout wm8350_charger_policy 0 7222 NULL
140534 +disable_so_tf_c_r820t_freq_range_7225 tf_c r820t_freq_range 0 7225 NULL
140535 +disable_so_hpi_read_words_le16_fndecl_7226 hpi_read_words_le16 fndecl 2-4 7226 NULL
140536 +disable_so_ip6addrlbl_newdel_fndecl_7230 ip6addrlbl_newdel fndecl 0 7230 NULL
140537 +disable_so_seq_default_timer_card_vardecl_7233 seq_default_timer_card vardecl 0 7233 NULL
140538 +disable_so_ip6_route_get_saddr_fndecl_7240 ip6_route_get_saddr fndecl 0 7240 NULL
140539 +disable_so_packet_timeout_vardecl_legousbtower_c_7247 packet_timeout vardecl_legousbtower.c 0 7247 NULL
140540 +disable_so_base_clockid_alarm_base_7253 base_clockid alarm_base 0 7253 NULL
140541 +disable_so_pll_time_modem_state_ser12_7269 pll_time modem_state_ser12 0 7269 NULL
140542 +disable_so_phyaddr_fe_priv_7272 phyaddr fe_priv 0 7272 NULL
140543 +disable_so_xfs_btree_copy_keys_fndecl_7274 xfs_btree_copy_keys fndecl 4 7274 NULL
140544 +disable_so_lzo_uncompress_fndecl_7276 lzo_uncompress fndecl 6 7276 NULL
140545 +disable_so_spc_assoc_id_sctp_paddr_change_7283 spc_assoc_id sctp_paddr_change 0 7283 NULL
140546 +disable_so_min_interrupt_out_interval_vardecl_ldusb_c_7293 min_interrupt_out_interval vardecl_ldusb.c 0 7293 NULL
140547 +disable_so_phys_addr_qlcnic_host_rds_ring_7298 phys_addr qlcnic_host_rds_ring 0 7298 NULL
140548 +disable_so_ethoc_interrupt_fndecl_7299 ethoc_interrupt fndecl 1 7299 NULL
140549 +disable_so_wintime_si_dyn_powertune_data_7305 wintime si_dyn_powertune_data 0 7305 NULL
140550 +disable_so_timestamp_cnic_context_7309 timestamp cnic_context 0 7309 NULL nohasharray
140551 +disable_so_rx8025_set_clock_adjust_fndecl_7309 rx8025_set_clock_adjust fndecl 2-0 7309 &disable_so_timestamp_cnic_context_7309
140552 +disable_so_read_mac_address_dvb_usb_device_properties_7321 read_mac_address dvb_usb_device_properties 0 7321 NULL
140553 +disable_so_pm_runtime_set_active_fndecl_7330 pm_runtime_set_active fndecl 0 7330 NULL
140554 +disable_so_snd_seq_oss_synth_addr_fndecl_7331 snd_seq_oss_synth_addr fndecl 0 7331 NULL
140555 +disable_so_netlbl_unlabel_addrinfo_get_fndecl_7332 netlbl_unlabel_addrinfo_get fndecl 0 7332 NULL nohasharray
140556 +disable_so_transport_type_sockaddr_rxrpc_7332 transport_type sockaddr_rxrpc 0 7332 &disable_so_netlbl_unlabel_addrinfo_get_fndecl_7332
140557 +disable_so_tx_control_addr_acx_data_path_params_resp_7345 tx_control_addr acx_data_path_params_resp 0 7345 NULL
140558 +disable_so_intel_runtime_suspend_fndecl_7354 intel_runtime_suspend fndecl 0 7354 NULL nohasharray
140559 +disable_so_arb_timeout_pca9541_7354 arb_timeout pca9541 0 7354 &disable_so_intel_runtime_suspend_fndecl_7354
140560 +disable_so_authenc_esn_geniv_ahash_done_fndecl_7357 authenc_esn_geniv_ahash_done fndecl 2 7357 NULL
140561 +disable_so_total_blkcipher_walk_7358 total blkcipher_walk 0 7358 NULL
140562 +disable_so_mtime_fuse_attr_7361 mtime fuse_attr 0 7361 NULL
140563 +disable_so_gtt_phys_addr__intel_private_7365 gtt_phys_addr _intel_private 0 7365 NULL
140564 +disable_so_btree_lookup_raw_fndecl_7367 btree_lookup_raw fndecl 0-2-7 7367 NULL
140565 +disable_so_show_imon_clock_fndecl_7376 show_imon_clock fndecl 0 7376 NULL
140566 +disable_so_acpi_cpufreq_guess_freq_fndecl_7383 acpi_cpufreq_guess_freq fndecl 0 7383 NULL
140567 +disable_so_pch_udc_ep_bit_set_fndecl_7386 pch_udc_ep_bit_set fndecl 3 7386 NULL
140568 +disable_so_tv_nsec_compat_timespec_7389 tv_nsec compat_timespec 0 7389 NULL
140569 +disable_so_try_msr_calibrate_tsc_fndecl_7392 try_msr_calibrate_tsc fndecl 0 7392 NULL
140570 +disable_so_msi001_s_frequency_fndecl_7396 msi001_s_frequency fndecl 0 7396 NULL
140571 +disable_so_lxt971_ack_interrupt_fndecl_7397 lxt971_ack_interrupt fndecl 0 7397 NULL nohasharray
140572 +disable_so_i40e_get_mac_addr_fndecl_7397 i40e_get_mac_addr fndecl 0 7397 &disable_so_lxt971_ack_interrupt_fndecl_7397
140573 +disable_so_conn_db_addr_lo_fcoe_kwqe_conn_offload2_7408 conn_db_addr_lo fcoe_kwqe_conn_offload2 0 7408 NULL
140574 +disable_so_spcp8x5_get_msr_fndecl_7409 spcp8x5_get_msr fndecl 0 7409 NULL
140575 +disable_so_signal_det_fndecl_7411 signal_det fndecl 2 7411 NULL
140576 +disable_so_vclk_fb_div_pll_ct_7423 vclk_fb_div pll_ct 0 7423 NULL
140577 +disable_so_crypto_ahash_final_fndecl_7433 crypto_ahash_final fndecl 0 7433 NULL
140578 +disable_so_vidioc_s_hw_freq_seek_fndecl_7439 vidioc_s_hw_freq_seek fndecl 0 7439 NULL
140579 +disable_so_aa_calc_profile_hash_fndecl_7443 aa_calc_profile_hash fndecl 0-4 7443 NULL
140580 +disable_so_count_sha1_state_7456 count sha1_state 0 7456 NULL
140581 +disable_so_full_name_hash_fndecl_7466 full_name_hash fndecl 0-2 7466 NULL
140582 +disable_so_serial8250_set_divisor_fndecl_7469 serial8250_set_divisor fndecl 4-3 7469 NULL
140583 +disable_so_add_hwgenerator_randomness_fndecl_7471 add_hwgenerator_randomness fndecl 2-3 7471 NULL
140584 +disable_so_xfs_btree_check_block_fndecl_7472 xfs_btree_check_block fndecl 0 7472 NULL
140585 +disable_so_f1x_get_norm_dct_addr_fndecl_7473 f1x_get_norm_dct_addr fndecl 0-3-5 7473 NULL
140586 +disable_so_timeout_tid_ampdu_rx_7484 timeout tid_ampdu_rx 0 7484 NULL
140587 +disable_so_uv_rtc_find_next_timer_fndecl_7494 uv_rtc_find_next_timer fndecl 2 7494 NULL
140588 +disable_so_mmc_erase_timeout_fndecl_7496 mmc_erase_timeout fndecl 0-3-2 7496 NULL
140589 +disable_so_interrupt_in_endpoint_edgeport_serial_7513 interrupt_in_endpoint edgeport_serial 0 7513 NULL
140590 +disable_so_start_asd_ha_addrspace_7515 start asd_ha_addrspace 0 7515 NULL
140591 +disable_so_ccp_register_aes_alg_fndecl_7517 ccp_register_aes_alg fndecl 0 7517 NULL
140592 +disable_so_addr_ptr_drm_i915_gem_mmap_7520 addr_ptr drm_i915_gem_mmap 0 7520 NULL
140593 +disable_so_ecryptfs_get_tfm_and_mutex_for_cipher_name_fndecl_7524 ecryptfs_get_tfm_and_mutex_for_cipher_name fndecl 0 7524 NULL
140594 +disable_so_async_schedule_fndecl_7528 async_schedule fndecl 0 7528 NULL nohasharray
140595 +disable_so_crypto_ctr_crypt_inplace_fndecl_7528 crypto_ctr_crypt_inplace fndecl 0 7528 &disable_so_async_schedule_fndecl_7528
140596 +disable_so_snd_mpu401_uart_interrupt_fndecl_7536 snd_mpu401_uart_interrupt fndecl 1 7536 NULL
140597 +disable_so_cfg_max_scsicmpl_time_lpfc_vport_7541 cfg_max_scsicmpl_time lpfc_vport 0 7541 NULL
140598 +disable_so_blkcipher_done_slow_fndecl_7555 blkcipher_done_slow fndecl 0-2 7555 NULL
140599 +disable_so_cg_spll_spread_spectrum_si_clock_registers_7557 cg_spll_spread_spectrum si_clock_registers 0 7557 NULL
140600 +disable_so_dev_addr_mv_udc_7559 dev_addr mv_udc 0 7559 NULL
140601 +disable_so___restart_timer_fndecl_7572 __restart_timer fndecl 2 7572 NULL
140602 +disable_so_phy_interrupt_fndecl_7576 phy_interrupt fndecl 1 7576 NULL
140603 +disable_so_pending_auth_reply_time_wl12xx_vif_7583 pending_auth_reply_time wl12xx_vif 0 7583 NULL
140604 +disable_so_kempld_wdt_set_stage_timeout_fndecl_7592 kempld_wdt_set_stage_timeout fndecl 3 7592 NULL
140605 +disable_so_mwifiex_ret_802_11_mac_address_fndecl_7598 mwifiex_ret_802_11_mac_address fndecl 0 7598 NULL
140606 +disable_so_ad799x_write_frequency_fndecl_7606 ad799x_write_frequency fndecl 0-4 7606 NULL
140607 +disable_so_htab_map_hash_fndecl_7622 htab_map_hash fndecl 0-2 7622 NULL
140608 +disable_so_smack_task_getscheduler_fndecl_7629 smack_task_getscheduler fndecl 0 7629 NULL
140609 +disable_so_atomic64_sub_fndecl_7638 atomic64_sub fndecl 1 7638 NULL
140610 +disable_so___mcheck_cpu_cap_init_fndecl_7640 __mcheck_cpu_cap_init fndecl 0 7640 NULL
140611 +disable_so_sq_dma_addr_nvme_queue_7641 sq_dma_addr nvme_queue 0 7641 NULL
140612 +disable_so_data_address_mscp_7645 data_address mscp 0 7645 NULL
140613 +disable_so_block_address_ms_param_register_7651 block_address ms_param_register 0 7651 NULL
140614 +disable_so___wait_on_bit_lock_fndecl_7653 __wait_on_bit_lock fndecl 0 7653 NULL
140615 +disable_so_dma_addr_qla2_sgx_7667 dma_addr qla2_sgx 0 7667 NULL
140616 +disable_so_ba1_addr_cs4281_7670 ba1_addr cs4281 0 7670 NULL
140617 +disable_so_addr_nv50_disp_mthd_list_7671 addr nv50_disp_mthd_list 0 7671 NULL
140618 +disable_so_address_stv090x_config_7672 address stv090x_config 0 7672 NULL
140619 +disable_so_addr_oxygen_7675 addr oxygen 0 7675 NULL
140620 +disable_so_mei_wd_ops_set_timeout_fndecl_7696 mei_wd_ops_set_timeout fndecl 2 7696 NULL
140621 +disable_so_clock_getres_k_clock_7708 clock_getres k_clock 1 7708 NULL
140622 +disable_so_hash_shift_neigh_hash_table_7714 hash_shift neigh_hash_table 0 7714 NULL
140623 +disable_so_pmu_fast_powerup_delay_fndecl_7721 pmu_fast_powerup_delay fndecl 0 7721 NULL
140624 +disable_so_dst_addr_rds_info_rdma_connection_7722 dst_addr rds_info_rdma_connection 0 7722 NULL
140625 +disable_so_period_timeriomem_rng_private_data_7730 period timeriomem_rng_private_data 0 7730 NULL
140626 +disable_so_ocfs2_flock_handle_signal_fndecl_7734 ocfs2_flock_handle_signal fndecl 0 7734 NULL
140627 +disable_so_seq_rds_info_message_7735 seq rds_info_message 0 7735 NULL
140628 +disable_so_base_addr_net_device_7745 base_addr net_device 0 7745 NULL
140629 +disable_so_sense_addr_fcpio_icmnd_16_7746 sense_addr fcpio_icmnd_16 0 7746 NULL
140630 +disable_so_clocks_calc_mult_shift_fndecl_7747 clocks_calc_mult_shift fndecl 3-4-5 7747 NULL
140631 +disable_so_monotonic_time_coarse_sec_vsyscall_gtod_data_7749 monotonic_time_coarse_sec vsyscall_gtod_data 0 7749 NULL
140632 +disable_so_remote_ca_guid_cm_timewait_info_7768 remote_ca_guid cm_timewait_info 0 7768 NULL
140633 +disable_so_tsf_timestamp_wmi_phyerr_7783 tsf_timestamp wmi_phyerr 0 7783 NULL
140634 +disable_so_fullbatt_vchk_jiffies_at_charger_manager_7786 fullbatt_vchk_jiffies_at charger_manager 0 7786 NULL
140635 +disable_so_st_mtime_nsec_p9_stat_dotl_7787 st_mtime_nsec p9_stat_dotl 0 7787 NULL
140636 +disable_so_hmac_sha256_fndecl_7789 hmac_sha256 fndecl 0-2-4 7789 NULL
140637 +disable_so_writeback_delay_fndecl_7808 writeback_delay fndecl 0-2 7808 NULL
140638 +disable_so_offset_ioctl_gntdev_get_offset_for_vaddr_7812 offset ioctl_gntdev_get_offset_for_vaddr 0 7812 NULL
140639 +disable_so_tuner_frequency_stv0288_state_7823 tuner_frequency stv0288_state 0 7823 NULL
140640 +disable_so_neigh_hash_grow_fndecl_7824 neigh_hash_grow fndecl 2 7824 NULL
140641 +disable_so_timeout_sh_mmcif_host_7836 timeout sh_mmcif_host 0 7836 NULL
140642 +disable_so_cpuid_eax_fndecl_7845 cpuid_eax fndecl 0 7845 NULL
140643 +disable_so_mclk_pwrmgt_cntl_si_clock_registers_7850 mclk_pwrmgt_cntl si_clock_registers 0 7850 NULL
140644 +disable_so_mgt_update_addr_fndecl_7857 mgt_update_addr fndecl 0 7857 NULL nohasharray
140645 +disable_so_regmap_bulk_read_fndecl_7857 regmap_bulk_read fndecl 4-0-2 7857 &disable_so_mgt_update_addr_fndecl_7857
140646 +disable_so_cpufreq_governor_init_fndecl_7864 cpufreq_governor_init fndecl 0 7864 NULL
140647 +disable_so_sync_freq_arizona_fll_7868 sync_freq arizona_fll 0 7868 NULL
140648 +disable_so_channel_switch_time_ath_chanctx_sched_7869 channel_switch_time ath_chanctx_sched 0 7869 NULL nohasharray
140649 +disable_so_isp1760_udc_set_address_fndecl_7869 isp1760_udc_set_address fndecl 2 7869 &disable_so_channel_switch_time_ath_chanctx_sched_7869
140650 +disable_so_n_hw_addrs_iwl_nvm_data_7872 n_hw_addrs iwl_nvm_data 0 7872 NULL
140651 +disable_so_rcu_jiffies_till_stall_check_fndecl_7874 rcu_jiffies_till_stall_check fndecl 0 7874 NULL
140652 +disable_so_seq_b43legacy_txstatus_7880 seq b43legacy_txstatus 0 7880 NULL
140653 +disable_so_hpi_tuner_query_frequency_fndecl_7881 hpi_tuner_query_frequency fndecl 0-1 7881 NULL
140654 +disable_so_data_address_descriptor_7886 data_address descriptor 0 7886 NULL
140655 +disable_so_mpll_dq_func_cntl_ci_clock_registers_7890 mpll_dq_func_cntl ci_clock_registers 0 7890 NULL
140656 +disable_so_hpfs_load_bitmap_directory_fndecl_7892 hpfs_load_bitmap_directory fndecl 2 7892 NULL
140657 +disable_so_hour_tomoyo_time_7893 hour tomoyo_time 0 7893 NULL
140658 +disable_so_dx_pt_regs_7894 dx pt_regs 0 7894 NULL
140659 +disable_so_mthca_SW2HW_EQ_fndecl_7906 mthca_SW2HW_EQ fndecl 3-0 7906 NULL
140660 +disable_so_megasas_start_timer_fndecl_7920 megasas_start_timer fndecl 4 7920 NULL
140661 +disable_so_Memhscx_interrupt_fndecl_7925 Memhscx_interrupt fndecl 2 7925 NULL
140662 +disable_so_ena_gpio_regulator_config_7927 ena_gpio regulator_config 0 7927 NULL
140663 +disable_so_tda827x_initial_sleep_fndecl_7929 tda827x_initial_sleep fndecl 0 7929 NULL
140664 +disable_so_hfrontporch_v4l2_bt_timings_7935 hfrontporch v4l2_bt_timings 0 7935 NULL
140665 +disable_so_xfrm_flowi_daddr_fndecl_7937 xfrm_flowi_daddr fndecl 2 7937 NULL
140666 +disable_so_fw_schedule_device_work_fndecl_7962 fw_schedule_device_work fndecl 2 7962 NULL
140667 +disable_so_xfs_btree_get_bufl_fndecl_7965 xfs_btree_get_bufl fndecl 3 7965 NULL
140668 +disable_so_cpu_to_macvtap16_fndecl_7976 cpu_to_macvtap16 fndecl 0-2 7976 NULL nohasharray
140669 +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
140670 +disable_so_first_port_bitmap_port_7981 first_port bitmap_port 0 7981 NULL
140671 +disable_so_compat_get_bitmap_fndecl_7984 compat_get_bitmap fndecl 0-3 7984 NULL
140672 +disable_so_dma_addr_iser_rx_desc_7996 dma_addr iser_rx_desc 0 7996 NULL
140673 +disable_so_channel2freq_a_fndecl_7997 channel2freq_a fndecl 0-1 7997 NULL
140674 +disable_so_card_snd_timer_info_8007 card snd_timer_info 0 8007 NULL nohasharray
140675 +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
140676 +disable_so_apanel_addr_vardecl_i2c_i801_c_8018 apanel_addr vardecl_i2c-i801.c 0 8018 NULL
140677 +disable_so_bcma_pmu_pll_clock_fndecl_8024 bcma_pmu_pll_clock fndecl 2-3-0 8024 NULL
140678 +disable_so_sha1_transform_asm_vardecl_sha1_ssse3_glue_c_8028 sha1_transform_asm vardecl_sha1_ssse3_glue.c 3 8028 NULL
140679 +disable_so_add_timer_randomness_fndecl_8030 add_timer_randomness fndecl 2 8030 NULL
140680 +disable_so_hash_mask_mesh_table_8031 hash_mask mesh_table 0 8031 NULL
140681 +disable_so_show_dgid_fndecl_8032 show_dgid fndecl 0 8032 NULL
140682 +disable_so_div_cfg_dib8000_config_8034 div_cfg dib8000_config 0 8034 NULL
140683 +disable_so_demod_address_l64781_config_8035 demod_address l64781_config 0 8035 NULL
140684 +disable_so_uid_cramfs_inode_8037 uid cramfs_inode 0 8037 NULL
140685 +disable_so_recover_timer_read_fndecl_8053 recover_timer_read fndecl 0 8053 NULL
140686 +disable_so_usb_sleep_music_show_fndecl_8055 usb_sleep_music_show fndecl 0 8055 NULL
140687 +disable_so_hw_ptr_interrupt_snd_pcm_runtime_8061 hw_ptr_interrupt snd_pcm_runtime 0 8061 NULL
140688 +disable_so_reset_delay_us_e1000_phy_info_8066 reset_delay_us e1000_phy_info 0 8066 NULL
140689 +disable_so_timeout_packet_command_8072 timeout packet_command 0 8072 NULL
140690 +disable_so_jiffies_a_sl811_8074 jiffies_a sl811 0 8074 NULL nohasharray
140691 +disable_so_idedisk_set_max_address_fndecl_8074 idedisk_set_max_address fndecl 0-2 8074 &disable_so_jiffies_a_sl811_8074
140692 +disable_so_base_addr_TAG_TW_Device_Extension_8076 base_addr TAG_TW_Device_Extension 0 8076 NULL
140693 +disable_so_gateway_cmd_addr_wil_fw_record_gateway_data4_8080 gateway_cmd_addr wil_fw_record_gateway_data4 0 8080 NULL
140694 +disable_so_snd_cmipci_interrupt_fndecl_8083 snd_cmipci_interrupt fndecl 1 8083 NULL
140695 +disable_so_ivsize_blkcipher_alg_8085 ivsize blkcipher_alg 0 8085 NULL
140696 +disable_so_mlx5e_add_eth_addr_rule_fndecl_8090 mlx5e_add_eth_addr_rule fndecl 0 8090 NULL
140697 +disable_so_sysctl_rose_call_request_timeout_vardecl_8095 sysctl_rose_call_request_timeout vardecl 0 8095 NULL nohasharray
140698 +disable_so_b43_phy_maskset_fndecl_8095 b43_phy_maskset fndecl 2-3-4 8095 &disable_so_sysctl_rose_call_request_timeout_vardecl_8095
140699 +disable_so_dma_addr_mraid_pci_blk_8116 dma_addr mraid_pci_blk 0 8116 NULL
140700 +disable_so___arch_hweight32_fndecl_8119 __arch_hweight32 fndecl 0-1 8119 NULL
140701 +disable_so_lvds_downclock_drm_i915_private_8128 lvds_downclock drm_i915_private 0 8128 NULL
140702 +disable_so_calgary_set_split_completion_timeout_fndecl_8129 calgary_set_split_completion_timeout fndecl 2 8129 NULL
140703 +disable_so_i_atime_minix2_inode_8131 i_atime minix2_inode 0 8131 NULL
140704 +disable_so_xclk_post_div_pll_ct_8137 xclk_post_div pll_ct 0 8137 NULL
140705 +disable_so_legacy_display_base_addr_radeon_crtc_8144 legacy_display_base_addr radeon_crtc 0 8144 NULL
140706 +disable_so_rv6xx_memory_clock_entry_set_reference_divider_fndecl_8149 rv6xx_memory_clock_entry_set_reference_divider fndecl 3 8149 NULL
140707 +disable_so_x86_phys_bits_cpuinfo_x86_8154 x86_phys_bits cpuinfo_x86 0 8154 NULL
140708 +disable_so_vmx_get_preemption_timer_value_fndecl_8155 vmx_get_preemption_timer_value fndecl 0 8155 NULL
140709 +disable_so_delayed_set_value_led_classdev_8162 delayed_set_value led_classdev 0 8162 NULL
140710 +disable_so_link_timeout_fe_priv_8170 link_timeout fe_priv 0 8170 NULL nohasharray
140711 +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
140712 +disable_so___jhash_nwords_fndecl_8180 __jhash_nwords fndecl 0-1-2-3 8180 NULL
140713 +disable_so_buffer_addr_e1000_rx_desc_8186 buffer_addr e1000_rx_desc 0 8186 NULL
140714 +disable_so_s_wtime_ext2_super_block_8189 s_wtime ext2_super_block 0 8189 NULL nohasharray
140715 +disable_so_sel_addr1___mux2_8189 sel_addr1 __mux2 0 8189 &disable_so_s_wtime_ext2_super_block_8189
140716 +disable_so_elan_smbus_sleep_control_fndecl_8190 elan_smbus_sleep_control fndecl 0 8190 NULL
140717 +disable_so_hscale_timing_8195 hscale timing 0 8195 NULL
140718 +disable_so_mem_addr_sms_data_download_8196 mem_addr sms_data_download 0 8196 NULL
140719 +disable_so_last_time2_intel_ilk_power_mgmt_8197 last_time2 intel_ilk_power_mgmt 0 8197 NULL
140720 +disable_so_end_point_addr_cx231xx_video_mode_8198 end_point_addr cx231xx_video_mode 0 8198 NULL
140721 +disable_so_cmx_delay_dsp_8202 cmx_delay dsp 0 8202 NULL
140722 +disable_so_inet6_rtm_deladdr_fndecl_8203 inet6_rtm_deladdr fndecl 0 8203 NULL
140723 +disable_so_local_ca_guid_cm_rep_msg_8210 local_ca_guid cm_rep_msg 0 8210 NULL
140724 +disable_so_address_r8a66597_device_8227 address r8a66597_device 0 8227 NULL
140725 +disable_so_idle_jiffies_tick_sched_8241 idle_jiffies tick_sched 0 8241 NULL nohasharray
140726 +disable_so_ver_addr_via_display_timing_8241 ver_addr via_display_timing 0 8241 &disable_so_idle_jiffies_tick_sched_8241
140727 +disable_so_addr_hamachi_desc_8244 addr hamachi_desc 0 8244 NULL nohasharray
140728 +disable_so_addr_snd_dmaengine_dai_dma_data_8244 addr snd_dmaengine_dai_dma_data 0 8244 &disable_so_addr_hamachi_desc_8244
140729 +disable_so_ip6addrlbl_add_fndecl_8251 ip6addrlbl_add fndecl 0-4 8251 NULL
140730 +disable_so_transtime_vim2m_ctx_8252 transtime vim2m_ctx 0 8252 NULL
140731 +disable_so_seq_prism2_frag_entry_8262 seq prism2_frag_entry 0 8262 NULL
140732 +disable_so_uid_args_requester_8263 uid args_requester 0 8263 NULL
140733 +disable_so_bfa_fcs_lport_ns_sm_gid_ft_retry_fndecl_8264 bfa_fcs_lport_ns_sm_gid_ft_retry fndecl 2 8264 NULL
140734 +disable_so_jffs2_lzo_decompress_fndecl_8274 jffs2_lzo_decompress fndecl 3 8274 NULL
140735 +disable_so_fb_start_aligned_physaddr_osd_info_8300 fb_start_aligned_physaddr osd_info 0 8300 NULL
140736 +disable_so_latch_addr_flash_driver_init_fndecl_8304 latch_addr_flash_driver_init fndecl 0 8304 NULL
140737 +disable_so_ab3100_rtc_read_time_fndecl_8312 ab3100_rtc_read_time fndecl 0 8312 NULL
140738 +disable_so_set_addr_fndecl_8318 set_addr fndecl 2-4-5 8318 NULL
140739 +disable_so_bit_width_acpi_pct_register_8319 bit_width acpi_pct_register 0 8319 NULL
140740 +disable_so_cpu_core_id_cpuinfo_x86_8323 cpu_core_id cpuinfo_x86 0 8323 NULL
140741 +disable_so_hash_rem_ccp_aes_cmac_req_ctx_8330 hash_rem ccp_aes_cmac_req_ctx 0 8330 NULL
140742 +disable_so_ps_timeout_wireless_dev_8334 ps_timeout wireless_dev 0 8334 NULL
140743 +disable_so_next_address_dma_ops_domain_8335 next_address dma_ops_domain 0 8335 NULL
140744 +disable_so_skcipher_pull_sgl_fndecl_8337 skcipher_pull_sgl fndecl 2 8337 NULL
140745 +disable_so_create_impulse_test_signal_fndecl_8361 create_impulse_test_signal fndecl 3 8361 NULL
140746 +disable_so_mod_timer_pending_fndecl_8362 mod_timer_pending fndecl 2-0 8362 NULL nohasharray
140747 +disable_so_ep0_trb_addr_dwc3_8362 ep0_trb_addr dwc3 0 8362 &disable_so_mod_timer_pending_fndecl_8362
140748 +disable_so_mtt_base_addr_h_mlx4_cq_context_8364 mtt_base_addr_h mlx4_cq_context 0 8364 NULL
140749 +disable_so_i2c_smbus_write_byte_data_fndecl_8369 i2c_smbus_write_byte_data fndecl 0-2-3 8369 NULL
140750 +disable_so_tpg_hscale_div_fndecl_8382 tpg_hscale_div fndecl 0-3 8382 NULL
140751 +disable_so_timestamp_bnx2i_endpoint_8390 timestamp bnx2i_endpoint 0 8390 NULL
140752 +disable_so_audit_backlog_wait_time_vardecl_audit_c_8393 audit_backlog_wait_time vardecl_audit.c 0 8393 NULL
140753 +disable_so_compat_put_timeval_fndecl_8394 compat_put_timeval fndecl 0 8394 NULL
140754 +disable_so_btree_remove128_fndecl_8408 btree_remove128 fndecl 2 8408 NULL
140755 +disable_so_pcxhr_hardware_timer_fndecl_8413 pcxhr_hardware_timer fndecl 0 8413 NULL
140756 +disable_so_ixgbe_atr_compute_sig_hash_82599_fndecl_8416 ixgbe_atr_compute_sig_hash_82599 fndecl 0 8416 NULL
140757 +disable_so_space_id_acpi_generic_address_8425 space_id acpi_generic_address 0 8425 NULL
140758 +disable_so_befs_btree_read_fndecl_8444 befs_btree_read fndecl 3 8444 NULL
140759 +disable_so_cttimeout_default_set_fndecl_8445 cttimeout_default_set fndecl 0 8445 NULL
140760 +disable_so_set_bdaddr_hci_dev_8450 set_bdaddr hci_dev 0 8450 NULL
140761 +disable_so_select_addr_qla82xx_md_entry_queue_8457 select_addr qla82xx_md_entry_queue 0 8457 NULL
140762 +disable_so_crypto_register_alg_fndecl_8460 crypto_register_alg fndecl 0 8460 NULL
140763 +disable_so_inet6_fill_ifmcaddr_fndecl_8465 inet6_fill_ifmcaddr fndecl 0-3-5 8465 NULL
140764 +disable_so_image_address_acpi_table_bgrt_8468 image_address acpi_table_bgrt 0 8468 NULL
140765 +disable_so_cmd_lock_addr_ulp_mem_io_8484 cmd_lock_addr ulp_mem_io 0 8484 NULL
140766 +disable_so_r600_engine_clock_entry_set_step_time_fndecl_8486 r600_engine_clock_entry_set_step_time fndecl 3 8486 NULL
140767 +disable_so_cxd2820r_sleep_t2_fndecl_8488 cxd2820r_sleep_t2 fndecl 0 8488 NULL
140768 +disable_so_si_get_cu_active_bitmap_fndecl_8498 si_get_cu_active_bitmap fndecl 0-2-3 8498 NULL
140769 +disable_so_clock_drxd_config_8500 clock drxd_config 0 8500 NULL nohasharray
140770 +disable_so_i2c_addr_zl10039_state_8500 i2c_addr zl10039_state 0 8500 &disable_so_clock_drxd_config_8500 nohasharray
140771 +disable_so_map_sg_dma_map_ops_8500 map_sg dma_map_ops 0-3 8500 &disable_so_i2c_addr_zl10039_state_8500
140772 +disable_so_addr_vt1211_data_8504 addr vt1211_data 0 8504 NULL
140773 +disable_so_vsync_pulse_width_lvds_dvo_timing_8520 vsync_pulse_width lvds_dvo_timing 0 8520 NULL
140774 +disable_so_set_frequency_fndecl_8523 set_frequency fndecl 0-3 8523 NULL
140775 +disable_so_lola_enable_clock_events_fndecl_8528 lola_enable_clock_events fndecl 0 8528 NULL
140776 +disable_so_pci_prepare_to_sleep_fndecl_8531 pci_prepare_to_sleep fndecl 0 8531 NULL
140777 +disable_so_valleyview_rps_max_freq_fndecl_8541 valleyview_rps_max_freq fndecl 0 8541 NULL
140778 +disable_so_wm8350_set_clkdiv_fndecl_8547 wm8350_set_clkdiv fndecl 3 8547 NULL
140779 +disable_so_scope_inet6_ifaddr_8569 scope inet6_ifaddr 0 8569 NULL
140780 +disable_so_hci_update_random_address_fndecl_8570 hci_update_random_address fndecl 0 8570 NULL nohasharray
140781 +disable_so_level_btrfs_delayed_extent_op_8570 level btrfs_delayed_extent_op 0 8570 &disable_so_hci_update_random_address_fndecl_8570
140782 +disable_so_p5_mt9t112_pll_divider_8582 p5 mt9t112_pll_divider 0 8582 NULL
140783 +disable_so_period_frames_snd_pcm_oss_runtime_8583 period_frames snd_pcm_oss_runtime 0 8583 NULL nohasharray
140784 +disable_so_sgtl5000_set_clock_fndecl_8583 sgtl5000_set_clock fndecl 2 8583 &disable_so_period_frames_snd_pcm_oss_runtime_8583
140785 +disable_so_ns_to_timespec_fndecl_8584 ns_to_timespec fndecl 1 8584 NULL
140786 +disable_so_mmc_test_random_perf_fndecl_8591 mmc_test_random_perf fndecl 0 8591 NULL
140787 +disable_so_ac_sleep_before_get_state_ms_vardecl_ac_c_8592 ac_sleep_before_get_state_ms vardecl_ac.c 0 8592 NULL
140788 +disable_so_s5h1420_getfreqoffset_fndecl_8597 s5h1420_getfreqoffset fndecl 0 8597 NULL
140789 +disable_so_pll_j_aic32x4_rate_divs_8598 pll_j aic32x4_rate_divs 0 8598 NULL
140790 +disable_so_freq_stb0899_params_8606 freq stb0899_params 0 8606 NULL
140791 +disable_so_vblank_hi_oaktrail_timing_info_8607 vblank_hi oaktrail_timing_info 0 8607 NULL
140792 +disable_so_subnet_timeout_ipath_ibdev_8613 subnet_timeout ipath_ibdev 0 8613 NULL nohasharray
140793 +disable_so_demod_address_or51211_config_8613 demod_address or51211_config 0 8613 &disable_so_subnet_timeout_ipath_ibdev_8613
140794 +disable_so___compat_put_timespec_fndecl_8625 __compat_put_timespec fndecl 0 8625 NULL
140795 +disable_so_sq_addr_hi_fcoe_kwqe_conn_offload1_8631 sq_addr_hi fcoe_kwqe_conn_offload1 0 8631 NULL
140796 +disable_so_compat_sock_get_timestamp_fndecl_8635 compat_sock_get_timestamp fndecl 0 8635 NULL
140797 +disable_so_next_sit_addr_fndecl_8639 next_sit_addr fndecl 0-2 8639 NULL
140798 +disable_so_update_mc_addr_fm10k_mac_ops_8643 update_mc_addr fm10k_mac_ops 4 8643 NULL
140799 +disable_so_img_ir_timing_range_convert_fndecl_8648 img_ir_timing_range_convert fndecl 3-4-5 8648 NULL
140800 +disable_so_adc_clock_ratio_dib0090_io_config_8649 adc_clock_ratio dib0090_io_config 0 8649 NULL
140801 +disable_so_regcache_rbtree_sync_fndecl_8655 regcache_rbtree_sync fndecl 0-2-3 8655 NULL
140802 +disable_so_nilfs_btree_gather_data_fndecl_8666 nilfs_btree_gather_data fndecl 0-4 8666 NULL
140803 +disable_so__scsih_get_sas_address_fndecl_8674 _scsih_get_sas_address fndecl 2 8674 NULL
140804 +disable_so_mul_u64_u32_shr_fndecl_8675 mul_u64_u32_shr fndecl 0-1-2-3 8675 NULL
140805 +disable_so_find_next_zero_bit_fndecl_8677 find_next_zero_bit fndecl 0-2-3 8677 NULL
140806 +disable_so_generic_set_freq_fndecl_8678 generic_set_freq fndecl 0-2 8678 NULL
140807 +disable_so_time_in_irq_usb_usbvision_8687 time_in_irq usb_usbvision 0 8687 NULL
140808 +disable_so_data_addr_asc_scsiq_1_8688 data_addr asc_scsiq_1 0 8688 NULL
140809 +disable_so_nl80211_parse_random_mac_fndecl_8702 nl80211_parse_random_mac fndecl 0 8702 NULL
140810 +disable_so_hpi_compander_set_attack_time_constant_fndecl_8705 hpi_compander_set_attack_time_constant fndecl 1-0 8705 NULL
140811 +disable_so_qla2x00_sns_gid_pt_fndecl_8706 qla2x00_sns_gid_pt fndecl 0 8706 NULL
140812 +disable_so_tipc_own_addr_fndecl_8707 tipc_own_addr fndecl 0 8707 NULL
140813 +disable_so_da9055_rtc_read_time_fndecl_8709 da9055_rtc_read_time fndecl 0 8709 NULL
140814 +disable_so_theta__fll_div_8710 theta _fll_div 0 8710 NULL nohasharray
140815 +disable_so_size_genwqe_bitstream_8710 size genwqe_bitstream 0 8710 &disable_so_theta__fll_div_8710
140816 +disable_so_cpu_to_virtio64_fndecl_8714 cpu_to_virtio64 fndecl 0-2 8714 NULL
140817 +disable_so_sleep_reg_bma180_part_info_8720 sleep_reg bma180_part_info 0 8720 NULL
140818 +disable_so_via_clock_init_fndecl_8721 via_clock_init fndecl 2 8721 NULL
140819 +disable_so_time_reftime_vardecl_ntp_c_8722 time_reftime vardecl_ntp.c 0 8722 NULL
140820 +disable_so_sysfs_set_reg_fndecl_8723 sysfs_set_reg fndecl 5 8723 NULL
140821 +disable_so_rport_del_timeout_vardecl_8725 rport_del_timeout vardecl 0 8725 NULL
140822 +disable_so_rb_subtree_gap_vm_area_struct_8729 rb_subtree_gap vm_area_struct 0 8729 NULL
140823 +disable_so_mipi_dsi_dcs_set_column_address_fndecl_8732 mipi_dsi_dcs_set_column_address fndecl 0 8732 NULL
140824 +disable_so_aes_encrypt_fail_read_fndecl_8737 aes_encrypt_fail_read fndecl 0-3 8737 NULL
140825 +disable_so_sumo_set_uvd_clock_fndecl_8742 sumo_set_uvd_clock fndecl 0-2-3-4 8742 NULL
140826 +disable_so_daddr_irlap_cb_8752 daddr irlap_cb 0 8752 NULL
140827 +disable_so_skcipher_sendpage_fndecl_8759 skcipher_sendpage fndecl 0-3-4-5 8759 NULL
140828 +disable_so_bitmap_store_fndecl_8764 bitmap_store fndecl 0-3 8764 NULL
140829 +disable_so_outdiv_arizona_fll_cfg_8765 outdiv arizona_fll_cfg 0 8765 NULL
140830 +disable_so_mce_start_timer_fndecl_8772 mce_start_timer fndecl 1 8772 NULL nohasharray
140831 +disable_so_kxcjk1013_runtime_resume_fndecl_8772 kxcjk1013_runtime_resume fndecl 0 8772 &disable_so_mce_start_timer_fndecl_8772
140832 +disable_so_p_addr_fw_desc_8777 p_addr fw_desc 0 8777 NULL
140833 +disable_so_count_uid_gid_extent_8799 count uid_gid_extent 0 8799 NULL
140834 +disable_so_ring_base_address_kfd_ioctl_create_queue_args_8811 ring_base_address kfd_ioctl_create_queue_args 0 8811 NULL
140835 +disable_so_start_addr_mlx5_mkey_seg_8817 start_addr mlx5_mkey_seg 0 8817 NULL
140836 +disable_so_ui_gid_ufs2_inode_8825 ui_gid ufs2_inode 0 8825 NULL
140837 +disable_so_addr_idx_tx_sw_desc_8827 addr_idx tx_sw_desc 0 8827 NULL
140838 +disable_so_cookie_init_timestamp_fndecl_8835 cookie_init_timestamp fndecl 0 8835 NULL
140839 +disable_so_f2fs_crypto_initialize_fndecl_8839 f2fs_crypto_initialize fndecl 0 8839 NULL
140840 +disable_so_timeout_ib_mad_send_wr_private_8841 timeout ib_mad_send_wr_private 0 8841 NULL nohasharray
140841 +disable_so_ddiv_gf100_clk_info_8841 ddiv gf100_clk_info 0 8841 &disable_so_timeout_ib_mad_send_wr_private_8841
140842 +disable_so_start_time_ieee80211_p2p_noa_desc_8844 start_time ieee80211_p2p_noa_desc 0 8844 NULL
140843 +disable_so__isl12057_rtc_read_time_fndecl_8850 _isl12057_rtc_read_time fndecl 0 8850 NULL
140844 +disable_so_read_addr_qla8xxx_minidump_entry_cache_8859 read_addr qla8xxx_minidump_entry_cache 0 8859 NULL
140845 +disable_so_b43legacy_get_txgain_freq_power_amp_fndecl_8866 b43legacy_get_txgain_freq_power_amp fndecl 0-1 8866 NULL
140846 +disable_so_ldelay_codel_vars_8872 ldelay codel_vars 0 8872 NULL
140847 +disable_so_mode_addr_ath_gen_timer_configuration_8875 mode_addr ath_gen_timer_configuration 0 8875 NULL
140848 +disable_so_move_addr_to_kernel_fndecl_8882 move_addr_to_kernel fndecl 0-2 8882 NULL
140849 +disable_so_last_time_cpufreq_stats_8891 last_time cpufreq_stats 0 8891 NULL
140850 +disable_so_di_uid_xfs_icdinode_8897 di_uid xfs_icdinode 0 8897 NULL
140851 +disable_so_g84_cipher_init_fndecl_8909 g84_cipher_init fndecl 0 8909 NULL
140852 +disable_so_slave_addr_intel_dvo_device_8910 slave_addr intel_dvo_device 0 8910 NULL
140853 +disable_so_avg_time_ide_tape_obj_8917 avg_time ide_tape_obj 0 8917 NULL
140854 +disable_so_ticks_timerfd_ctx_8928 ticks timerfd_ctx 0 8928 NULL
140855 +disable_so_st_atime_compat_stat_8936 st_atime compat_stat 0 8936 NULL
140856 +disable_so_addrconf_init_net_fndecl_8938 addrconf_init_net fndecl 0 8938 NULL
140857 +disable_so_qla4xxx_start_timer_fndecl_8945 qla4xxx_start_timer fndecl 3 8945 NULL
140858 +disable_so_crypto_blkcipher_decrypt_fndecl_8955 crypto_blkcipher_decrypt fndecl 0-4 8955 NULL
140859 +disable_so_guest_physical_address_vmcs12_8957 guest_physical_address vmcs12 0 8957 NULL
140860 +disable_so_acpi_lpss_runtime_resume_fndecl_8958 acpi_lpss_runtime_resume fndecl 0 8958 NULL nohasharray
140861 +disable_so_tegra_spi_runtime_resume_fndecl_8958 tegra_spi_runtime_resume fndecl 0 8958 &disable_so_acpi_lpss_runtime_resume_fndecl_8958
140862 +disable_so_runtime_resume_fndecl_8969 runtime_resume fndecl 0 8969 NULL
140863 +disable_so_hpi_tuner_set_hd_radio_signal_blend_fndecl_8970 hpi_tuner_set_hd_radio_signal_blend fndecl 0-1 8970 NULL
140864 +disable_so_wait_isoch_resource_delay_after_bus_reset_fndecl_8971 wait_isoch_resource_delay_after_bus_reset fndecl 0 8971 NULL
140865 +disable_so_end_fw_address_region_8972 end fw_address_region 0 8972 NULL
140866 +disable_so_sel_time_fcoe_ctlr_8977 sel_time fcoe_ctlr 0 8977 NULL
140867 +disable_so_unmap_addr_tso_state_8980 unmap_addr tso_state 0 8980 NULL
140868 +disable_so_v_freq_adv76xx_video_standards_8995 v_freq adv76xx_video_standards 0 8995 NULL
140869 +disable_so_p3_mt9t112_pll_divider_8996 p3 mt9t112_pll_divider 0 8996 NULL
140870 +disable_so_si476x_cmd_tune_seek_freq_fndecl_8997 si476x_cmd_tune_seek_freq fndecl 0-4-6 8997 NULL
140871 +disable_so_lzo1x_1_do_compress_fndecl_9000 lzo1x_1_do_compress fndecl 2 9000 NULL
140872 +disable_so_data_ramfuc_reg_9003 data ramfuc_reg 0 9003 NULL
140873 +disable_so_uid_drm_client_9005 uid drm_client 0 9005 NULL nohasharray
140874 +disable_so_size_pfn_var_mtrr_range_state_9005 size_pfn var_mtrr_range_state 0 9005 &disable_so_uid_drm_client_9005
140875 +disable_so_decode_attr_time_modify_fndecl_9006 decode_attr_time_modify fndecl 0 9006 NULL nohasharray
140876 +disable_so_last_jiffies_debug_vals_9006 last_jiffies debug_vals 0 9006 &disable_so_decode_attr_time_modify_fndecl_9006
140877 +disable_so_i2c_address_tua6100_priv_9007 i2c_address tua6100_priv 0 9007 NULL nohasharray
140878 +disable_so_end_mtrr_iter_9007 end mtrr_iter 0 9007 &disable_so_i2c_address_tua6100_priv_9007
140879 +disable_so_sin6_flowinfo_sockaddr_in6_9019 sin6_flowinfo sockaddr_in6 0 9019 NULL nohasharray
140880 +disable_so_device_destroy_fndecl_9019 device_destroy fndecl 2 9019 &disable_so_sin6_flowinfo_sockaddr_in6_9019
140881 +disable_so_si_tss_segment_16_9021 si tss_segment_16 0 9021 NULL
140882 +disable_so_parport_ieee1284_epp_write_addr_fndecl_9024 parport_ieee1284_epp_write_addr fndecl 0 9024 NULL
140883 +disable_so_esi_user_regs_struct32_9028 esi user_regs_struct32 0 9028 NULL
140884 +disable_so_clockevents_unbind_device_fndecl_9035 clockevents_unbind_device fndecl 2 9035 NULL nohasharray
140885 +disable_so_t1_interrupt_fndecl_9035 t1_interrupt fndecl 1 9035 &disable_so_clockevents_unbind_device_fndecl_9035 nohasharray
140886 +disable_so_randomize_stack_top_fndecl_9035 randomize_stack_top fndecl 0-1 9035 &disable_so_t1_interrupt_fndecl_9035
140887 +disable_so_mv88e6xxx_set_addr_direct_fndecl_9045 mv88e6xxx_set_addr_direct fndecl 0 9045 NULL
140888 +disable_so_phy_addr_cas_9051 phy_addr cas 0 9051 NULL
140889 +disable_so_usnic_transport_sock_get_addr_fndecl_9083 usnic_transport_sock_get_addr fndecl 0 9083 NULL
140890 +disable_so_debug_dma_free_coherent_fndecl_9087 debug_dma_free_coherent fndecl 4 9087 NULL nohasharray
140891 +disable_so_hashtab_insert_fndecl_9087 hashtab_insert fndecl 0 9087 &disable_so_debug_dma_free_coherent_fndecl_9087
140892 +disable_so_kblockd_schedule_delayed_work_on_fndecl_9095 kblockd_schedule_delayed_work_on fndecl 3-1 9095 NULL nohasharray
140893 +disable_so_lbs_host_sleep_cfg_fndecl_9095 lbs_host_sleep_cfg fndecl 0 9095 &disable_so_kblockd_schedule_delayed_work_on_fndecl_9095
140894 +disable_so_q_ctime_msg_queue_9100 q_ctime msg_queue 0 9100 NULL
140895 +disable_so_start_time_il_spectrum_cmd_9104 start_time il_spectrum_cmd 0 9104 NULL
140896 +disable_so_local_clock_fndecl_9106 local_clock fndecl 0 9106 NULL
140897 +disable_so_addr_xtsplit_9109 addr xtsplit 0 9109 NULL
140898 +disable_so_runtime_suspend_fndecl_9118 runtime_suspend fndecl 0 9118 NULL
140899 +disable_so_pch_src_uuid_lo_read_fndecl_9120 pch_src_uuid_lo_read fndecl 0 9120 NULL nohasharray
140900 +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
140901 +disable_so_addr1___pollrdmwr_9145 addr1 __pollrdmwr 0 9145 NULL
140902 +disable_so_iowrite16_rep_fndecl_9149 iowrite16_rep fndecl 3 9149 NULL
140903 +disable_so_rss_hash_result_eth_fast_path_rx_cqe_9151 rss_hash_result eth_fast_path_rx_cqe 0 9151 NULL
140904 +disable_so_ieee80211_fill_mesh_addresses_fndecl_9154 ieee80211_fill_mesh_addresses fndecl 0 9154 NULL
140905 +disable_so_dequeue_signal_lock_fndecl_9161 dequeue_signal_lock fndecl 0 9161 NULL
140906 +disable_so_min_tomoyo_time_9165 min tomoyo_time 0 9165 NULL
140907 +disable_so_hash_kernfs_node_9177 hash kernfs_node 0 9177 NULL
140908 +disable_so_get_subaddr_fndecl_9183 get_subaddr fndecl 0-3 9183 NULL
140909 +disable_so_tms_stime_tms_9187 tms_stime tms 0 9187 NULL
140910 +disable_so_shash_async_final_fndecl_9193 shash_async_final fndecl 0 9193 NULL
140911 +disable_so_sksg_dma_address_skd_request_context_9194 sksg_dma_address skd_request_context 0 9194 NULL
140912 +disable_so_rss_hash_val_rss_header_9205 rss_hash_val rss_header 0 9205 NULL
140913 +disable_so_actual_clock_mmc_host_9217 actual_clock mmc_host 0 9217 NULL
140914 +disable_so_xt_cluster_is_multicast_addr_fndecl_9218 xt_cluster_is_multicast_addr fndecl 2 9218 NULL
140915 +disable_so_ww_mutex_lock_interruptible_fndecl_9222 ww_mutex_lock_interruptible fndecl 0 9222 NULL
140916 +disable_so_twake_snd_pcm_runtime_9229 twake snd_pcm_runtime 0 9229 NULL
140917 +disable_so_read_file_bt_ant_diversity_fndecl_9236 read_file_bt_ant_diversity fndecl 0 9236 NULL
140918 +disable_so_tx_complete_addr_acx_data_path_params_resp_9246 tx_complete_addr acx_data_path_params_resp 0 9246 NULL
140919 +disable_so_pbn_div_drm_dp_mst_topology_mgr_9251 pbn_div drm_dp_mst_topology_mgr 0 9251 NULL
140920 +disable_so_num_address_p54_group_address_table_9258 num_address p54_group_address_table 0 9258 NULL
140921 +disable_so_ks108_set_xaddr_fndecl_9262 ks108_set_xaddr fndecl 2-3 9262 NULL
140922 +disable_so_xtal_freq_qm1d1c0042_config_9263 xtal_freq qm1d1c0042_config 0 9263 NULL
140923 +disable_so_lbs_host_sleep_read_fndecl_9270 lbs_host_sleep_read fndecl 3-0 9270 NULL
140924 +disable_so_fdiv_it913x_dev_9273 fdiv it913x_dev 0 9273 NULL nohasharray
140925 +disable_so_oom_score_adj_signal_struct_9273 oom_score_adj signal_struct 0 9273 &disable_so_fdiv_it913x_dev_9273
140926 +disable_so_compat_sys_mq_timedsend_fndecl_9287 compat_sys_mq_timedsend fndecl 3-1 9287 NULL
140927 +disable_so_snd_tea575x_val_to_freq_fndecl_9302 snd_tea575x_val_to_freq fndecl 0-2 9302 NULL
140928 +disable_so_addr_resolve_fndecl_9304 addr_resolve fndecl 0 9304 NULL
140929 +disable_so_address_mic_vqconfig_9306 address mic_vqconfig 0 9306 NULL nohasharray
140930 +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
140931 +disable_so_trace_clock_local_fndecl_9318 trace_clock_local fndecl 0 9318 NULL nohasharray
140932 +disable_so_proc_gid_map_write_fndecl_9318 proc_gid_map_write fndecl 0-3 9318 &disable_so_trace_clock_local_fndecl_9318
140933 +disable_so_discovery_timeout_mpath_info_9320 discovery_timeout mpath_info 0 9320 NULL
140934 +disable_so_xmit_timeout_nbd_device_9323 xmit_timeout nbd_device 0 9323 NULL
140935 +disable_so_timer_irq_vardecl_cs5535_clockevt_c_9326 timer_irq vardecl_cs5535-clockevt.c 0 9326 NULL
140936 +disable_so_kblockd_schedule_delayed_work_fndecl_9328 kblockd_schedule_delayed_work fndecl 2 9328 NULL
140937 +disable_so_utimes_common_fndecl_9330 utimes_common fndecl 0 9330 NULL
140938 +disable_so_di_gid_qnx4_inode_entry_9346 di_gid qnx4_inode_entry 0 9346 NULL nohasharray
140939 +disable_so_rpc_localaddr_fndecl_9346 rpc_localaddr fndecl 0 9346 &disable_so_di_gid_qnx4_inode_entry_9346
140940 +disable_so_ibits_pll_freq_tbl_9354 ibits pll_freq_tbl 0 9354 NULL
140941 +disable_so_addr_nct6683_data_9356 addr nct6683_data 0 9356 NULL
140942 +disable_so_l2_fhdr_hash_l2_fhdr_9360 l2_fhdr_hash l2_fhdr 0 9360 NULL
140943 +disable_so_hpfs_count_one_bitmap_fndecl_9362 hpfs_count_one_bitmap fndecl 0-2 9362 NULL
140944 +disable_so_ax25_uid_ioctl_fndecl_9367 ax25_uid_ioctl fndecl 0 9367 NULL
140945 +disable_so_last_rebuild_jiffies_inet_frags_9369 last_rebuild_jiffies inet_frags 0 9369 NULL
140946 +disable_so_hash_ipportnet6_expire_fndecl_9373 hash_ipportnet6_expire fndecl 4 9373 NULL
140947 +disable_so_uuid_count_mgmt_cp_start_service_discovery_9374 uuid_count mgmt_cp_start_service_discovery 0 9374 NULL
140948 +disable_so_ixgbe_set_vf_mac_addr_fndecl_9376 ixgbe_set_vf_mac_addr fndecl 3 9376 NULL
140949 +disable_so_addr_dma_desc_9383 addr dma_desc 0 9383 NULL
140950 +disable_so_ilk_get_aux_clock_divider_fndecl_9386 ilk_get_aux_clock_divider fndecl 0 9386 NULL
140951 +disable_so_host_bfa_bsg_rport_scsi_addr_s_9387 host bfa_bsg_rport_scsi_addr_s 0 9387 NULL
140952 +disable_so_xfs_btree_init_block_int_fndecl_9393 xfs_btree_init_block_int fndecl 3-7 9393 NULL
140953 +disable_so_dutycycle_pwm_voltages_9394 dutycycle pwm_voltages 0 9394 NULL
140954 +disable_so_max_timer_ms_ssb_chipcommon_9403 max_timer_ms ssb_chipcommon 0 9403 NULL
140955 +disable_so_demod_address_jdvbt90502_config_9412 demod_address jdvbt90502_config 0 9412 NULL nohasharray
140956 +disable_so_inet_dev_addr_type_fndecl_9412 inet_dev_addr_type fndecl 3 9412 &disable_so_demod_address_jdvbt90502_config_9412
140957 +disable_so_bit_offset_acpi_generic_address_9413 bit_offset acpi_generic_address 0 9413 NULL
140958 +disable_so_crypto_hash_update_fndecl_9415 crypto_hash_update fndecl 0-3 9415 NULL
140959 +disable_so_ftdi_2232h_baud_to_divisor_fndecl_9425 ftdi_2232h_baud_to_divisor fndecl 0-1 9425 NULL
140960 +disable_so_blk_post_runtime_resume_fndecl_9432 blk_post_runtime_resume fndecl 2 9432 NULL
140961 +disable_so_parent_btrfs_delayed_data_ref_9437 parent btrfs_delayed_data_ref 0 9437 NULL nohasharray
140962 +disable_so_netxen_get_interrupt_mode_fndecl_9437 netxen_get_interrupt_mode fndecl 0 9437 &disable_so_parent_btrfs_delayed_data_ref_9437
140963 +disable_so_entry_attr_timeout_fndecl_9441 entry_attr_timeout fndecl 0 9441 NULL
140964 +disable_so_wall_time_snsec_vsyscall_gtod_data_9445 wall_time_snsec vsyscall_gtod_data 0 9445 NULL
140965 +disable_so_atm_get_addr_fndecl_9446 atm_get_addr fndecl 3 9446 NULL
140966 +disable_so_address_efx_farch_register_test_9448 address efx_farch_register_test 0 9448 NULL
140967 +disable_so_rx_errors_net_device_stats_9453 rx_errors net_device_stats 0 9453 NULL
140968 +disable_so_crypto_sha1_update_fndecl_9455 crypto_sha1_update fndecl 3 9455 NULL
140969 +disable_so_bm_set_drbd_bitmap_9457 bm_set drbd_bitmap 0 9457 NULL
140970 +disable_so_mb86a16_write_fndecl_9462 mb86a16_write fndecl 3 9462 NULL
140971 +disable_so_cycle_delay_radeon_dpm_fan_9463 cycle_delay radeon_dpm_fan 0 9463 NULL
140972 +disable_so_value_vmx_msr_entry_9464 value vmx_msr_entry 0 9464 NULL
140973 +disable_so_io_bitmap_b_vmcs12_9472 io_bitmap_b vmcs12 0 9472 NULL
140974 +disable_so_brtime_id_seeprom_config_9474 brtime_id seeprom_config 0 9474 NULL
140975 +disable_so_frequency_stv0367ter_state_9481 frequency stv0367ter_state 0 9481 NULL
140976 +disable_so_ccp_aes_cmac_setkey_fndecl_9503 ccp_aes_cmac_setkey fndecl 0-3 9503 NULL
140977 +disable_so_tsc_ratio_vcpu_svm_9506 tsc_ratio vcpu_svm 0 9506 NULL
140978 +disable_so_crypto_cts_setkey_fndecl_9507 crypto_cts_setkey fndecl 0-3 9507 NULL
140979 +disable_so_clock_t_to_compat_clock_t_fndecl_9510 clock_t_to_compat_clock_t fndecl 1-0 9510 NULL
140980 +disable_so_xcan_err_interrupt_fndecl_9511 xcan_err_interrupt fndecl 2 9511 NULL nohasharray
140981 +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
140982 +disable_so_nilfs_btree_check_delete_fndecl_9514 nilfs_btree_check_delete fndecl 0 9514 NULL
140983 +disable_so_debug_dma_sync_single_for_device_fndecl_9517 debug_dma_sync_single_for_device fndecl 3-2 9517 NULL
140984 +disable_so_single_bit_error_correct_fndecl_9520 single_bit_error_correct fndecl 4 9520 NULL
140985 +disable_so_data_busaddr_ips_scb_9530 data_busaddr ips_scb 0 9530 NULL
140986 +disable_so_diversity_delay_dib8000_config_9533 diversity_delay dib8000_config 0 9533 NULL
140987 +disable_so_ems_usb_set_bittiming_fndecl_9537 ems_usb_set_bittiming fndecl 0 9537 NULL
140988 +disable_so_port_update_gid_work_9549 port update_gid_work 0 9549 NULL
140989 +disable_so_cryptomgr_schedule_test_fndecl_9550 cryptomgr_schedule_test fndecl 0 9550 NULL
140990 +disable_so_hpd_eop_gpu_addr_radeon_mec_9554 hpd_eop_gpu_addr radeon_mec 0 9554 NULL
140991 +disable_so_cluster_slot_bitmap_9571 cluster_slot bitmap 0 9571 NULL
140992 +disable_so_address_space_cmos_rtc_board_info_9586 address_space cmos_rtc_board_info 0 9586 NULL
140993 +disable_so_regcache_rbtree_set_register_fndecl_9588 regcache_rbtree_set_register fndecl 3-4 9588 NULL
140994 +disable_so_gen8_xcs_signal_fndecl_9591 gen8_xcs_signal fndecl 0-2 9591 NULL
140995 +disable_so_time_stamp_il_tx_queue_9592 time_stamp il_tx_queue 0 9592 NULL
140996 +disable_so_first_dev_address_fndecl_9599 first_dev_address fndecl 0-1 9599 NULL
140997 +disable_so_lpfc_max_scsicmpl_time_show_fndecl_9604 lpfc_max_scsicmpl_time_show fndecl 0 9604 NULL
140998 +disable_so_efx_ef10_get_sysclk_freq_fndecl_9605 efx_ef10_get_sysclk_freq fndecl 0 9605 NULL
140999 +disable_so_utime_signal_struct_9619 utime signal_struct 0 9619 NULL nohasharray
141000 +disable_so_connected_time_station_info_9619 connected_time station_info 0 9619 &disable_so_utime_signal_struct_9619
141001 +disable_so_elapsed_time_f2fs_checkpoint_9631 elapsed_time f2fs_checkpoint 0 9631 NULL
141002 +disable_so_read_addr_qla8044_minidump_entry_pollrd_9634 read_addr qla8044_minidump_entry_pollrd 0 9634 NULL
141003 +disable_so_time_stamp_sec_TAG_TW_Event_9639 time_stamp_sec TAG_TW_Event 0 9639 NULL
141004 +disable_so_blk_pre_runtime_suspend_fndecl_9640 blk_pre_runtime_suspend fndecl 0 9640 NULL
141005 +disable_so_ds_divider_index_sumo_pl_9644 ds_divider_index sumo_pl 0 9644 NULL
141006 +disable_so_out_of_line_wait_on_bit_timeout_fndecl_9648 out_of_line_wait_on_bit_timeout fndecl 5-0 9648 NULL
141007 +disable_so_sys_getuid16_fndecl_9653 sys_getuid16 fndecl 0 9653 NULL
141008 +disable_so_smc_interrupt_fndecl_9659 smc_interrupt fndecl 1 9659 NULL
141009 +disable_so_pld_clock_kempld_device_data_9670 pld_clock kempld_device_data 0 9670 NULL
141010 +disable_so_hello_time_show_fndecl_9675 hello_time_show fndecl 0 9675 NULL
141011 +disable_so_paddr_tsq_info_9680 paddr tsq_info 0 9680 NULL
141012 +disable_so_fifo_addr_fwnet_packet_task_9682 fifo_addr fwnet_packet_task 0 9682 NULL
141013 +disable_so_uaddr_ivtv_dma_page_info_9683 uaddr ivtv_dma_page_info 0 9683 NULL
141014 +disable_so_lp872x_regulator_enable_time_fndecl_9684 lp872x_regulator_enable_time fndecl 0 9684 NULL
141015 +disable_so_r67_val_fc2580_freq_regs_9685 r67_val fc2580_freq_regs 0 9685 NULL
141016 +disable_so_mclk_freq_rj54n1_pdata_9727 mclk_freq rj54n1_pdata 0 9727 NULL
141017 +disable_so_qdelay_pie_vars_9735 qdelay pie_vars 0 9735 NULL
141018 +disable_so_uncore_msr_fixed_ctl_fndecl_9740 uncore_msr_fixed_ctl fndecl 0 9740 NULL
141019 +disable_so_ifa_preferred_lft_in_ifaddr_9744 ifa_preferred_lft in_ifaddr 0 9744 NULL
141020 +disable_so_cpuid_device_create_fndecl_9746 cpuid_device_create fndecl 1 9746 NULL
141021 +disable_so_musb_write_rxhubaddr_fndecl_9750 musb_write_rxhubaddr fndecl 2-3 9750 NULL
141022 +disable_so_moddelay_soundfont_voice_parm_9752 moddelay soundfont_voice_parm 0 9752 NULL
141023 +disable_so_uwb_rc_mac_addr_setup_fndecl_9754 uwb_rc_mac_addr_setup fndecl 0 9754 NULL
141024 +disable_so_kv_convert_2bit_index_to_voltage_fndecl_9759 kv_convert_2bit_index_to_voltage fndecl 0-2 9759 NULL
141025 +disable_so_timeout_interval_bau_control_9762 timeout_interval bau_control 0 9762 NULL
141026 +disable_so_acpi_ut_check_address_range_fndecl_9782 acpi_ut_check_address_range fndecl 1-2-3 9782 NULL
141027 +disable_so_signal_rtl8187_priv_9785 signal rtl8187_priv 0 9785 NULL
141028 +disable_so_usb__coeff_div_9793 usb _coeff_div 0 9793 NULL
141029 +disable_so_dspaddr_offset_intel_crtc_9795 dspaddr_offset intel_crtc 0 9795 NULL
141030 +disable_so_demod_address_mt352_config_9806 demod_address mt352_config 0 9806 NULL
141031 +disable_so_ntfs_bitmap_set_bits_in_run_fndecl_9807 ntfs_bitmap_set_bits_in_run fndecl 2-3 9807 NULL
141032 +disable_so_vaddr_ioctl_gntdev_get_offset_for_vaddr_9810 vaddr ioctl_gntdev_get_offset_for_vaddr 0 9810 NULL
141033 +disable_so_mtime_fuse_setattr_in_9811 mtime fuse_setattr_in 0 9811 NULL nohasharray
141034 +disable_so_r10_pt_regs_9811 r10 pt_regs 0 9811 &disable_so_mtime_fuse_setattr_in_9811
141035 +disable_so_ath6kl_wmi_bmisstime_cmd_fndecl_9818 ath6kl_wmi_bmisstime_cmd fndecl 2-0 9818 NULL
141036 +disable_so_addr_lp55xx_reg_9819 addr lp55xx_reg 0 9819 NULL
141037 +disable_so_rq_pbl_addr_hi_fcoe_kwqe_conn_offload1_9838 rq_pbl_addr_hi fcoe_kwqe_conn_offload1 0 9838 NULL
141038 +disable_so___bitmap_shift_right_fndecl_9852 __bitmap_shift_right fndecl 3-4 9852 NULL
141039 +disable_so_set_ramp_delay_regulator_ops_9853 set_ramp_delay regulator_ops 0 9853 NULL
141040 +disable_so_delay_qla8044_reset_entry_hdr_9861 delay qla8044_reset_entry_hdr 0 9861 NULL
141041 +disable_so_dn_nl_dump_ifaddr_fndecl_9864 dn_nl_dump_ifaddr fndecl 0 9864 NULL
141042 +disable_so_cryptd_blkcipher_decrypt_enqueue_fndecl_9865 cryptd_blkcipher_decrypt_enqueue fndecl 0 9865 NULL
141043 +disable_so_dma_addr_vnic_rq_buf_9867 dma_addr vnic_rq_buf 0 9867 NULL
141044 +disable_so_atomic_pte_lookup_fndecl_9877 atomic_pte_lookup fndecl 2 9877 NULL
141045 +disable_so_init_freq_pt3_adap_config_9886 init_freq pt3_adap_config 0 9886 NULL nohasharray
141046 +disable_so_tq_can_bittiming_9886 tq can_bittiming 0 9886 &disable_so_init_freq_pt3_adap_config_9886
141047 +disable_so_base_addr_tg3_firmware_hdr_9887 base_addr tg3_firmware_hdr 0 9887 NULL
141048 +disable_so_execaddr_object_info_9888 execaddr object_info 0 9888 NULL
141049 +disable_so_freq_r3A_value_fndecl_9891 freq_r3A_value fndecl 0-1 9891 NULL
141050 +disable_so_xfs_btree_shift_ptrs_fndecl_9894 xfs_btree_shift_ptrs fndecl 4 9894 NULL
141051 +disable_so_rsp_producer_index_phy_addr_low_ql3_adapter_9895 rsp_producer_index_phy_addr_low ql3_adapter 0 9895 NULL
141052 +disable_so_n_voltages_regulator_desc_9911 n_voltages regulator_desc 0 9911 NULL
141053 +disable_so_reset_gid_table_fndecl_9912 reset_gid_table fndecl 2 9912 NULL
141054 +disable_so_dentist_vco_freq_trinity_sys_info_9922 dentist_vco_freq trinity_sys_info 0 9922 NULL
141055 +disable_so_mactime_linux_wlan_ng_cap_hdr_9926 mactime linux_wlan_ng_cap_hdr 0 9926 NULL nohasharray
141056 +disable_so_address_hi_ht_irq_msg_9926 address_hi ht_irq_msg 0 9926 &disable_so_mactime_linux_wlan_ng_cap_hdr_9926
141057 +disable_so_mdac_aic31xx_rate_divs_9931 mdac aic31xx_rate_divs 0 9931 NULL
141058 +disable_so_si2168_sleep_fndecl_9938 si2168_sleep fndecl 0 9938 NULL
141059 +disable_so_spp_assoc_id_sctp_paddrparams_9958 spp_assoc_id sctp_paddrparams 0 9958 NULL
141060 +disable_so_skcipher_wait_for_data_fndecl_9959 skcipher_wait_for_data fndecl 0 9959 NULL
141061 +disable_so_c_delay_target_disk_conf_9960 c_delay_target disk_conf 0 9960 NULL
141062 +disable_so_p1div_pmu1_plltab_entry_9962 p1div pmu1_plltab_entry 0 9962 NULL
141063 +disable_so_extract_clock_fndecl_9973 extract_clock fndecl 1-2-0 9973 NULL
141064 +disable_so_addr_hi_rx_desc_9978 addr_hi rx_desc 0 9978 NULL
141065 +disable_so_sin_family_sockaddr_in_9981 sin_family sockaddr_in 0 9981 NULL
141066 +disable_so_ticks_snd_timer_user_9987 ticks snd_timer_user 0 9987 NULL
141067 +disable_so_address_musb_9992 address musb 0 9992 NULL
141068 +disable_so_invalidate_guid_record_fndecl_9996 invalidate_guid_record fndecl 2 9996 NULL
141069 +disable_so_request_daddr_isci_request_10008 request_daddr isci_request 0 10008 NULL
141070 +disable_so_addr_sec_info_di_buf_entry_10016 addr_sec_info di_buf_entry 0 10016 NULL
141071 +disable_so_hash_netportnet4_expire_fndecl_10025 hash_netportnet4_expire fndecl 4 10025 NULL
141072 +disable_so_hid_time_value_fndecl_10028 hid_time_value fndecl 0 10028 NULL
141073 +disable_so_ts_jiffies_uwb_beca_e_10039 ts_jiffies uwb_beca_e 0 10039 NULL
141074 +disable_so_hpi_sample_clock_get_source_fndecl_10048 hpi_sample_clock_get_source fndecl 1-0 10048 NULL
141075 +disable_so_hfsplus_btree_open_fndecl_10055 hfsplus_btree_open fndecl 2 10055 NULL
141076 +disable_so_rx_drain_timeout_msecs_vardecl_10061 rx_drain_timeout_msecs vardecl 0 10061 NULL
141077 +disable_so_start_seq_tcp_sack_block_wire_10072 start_seq tcp_sack_block_wire 0 10072 NULL
141078 +disable_so_sha1_mb_finup_fndecl_10074 sha1_mb_finup fndecl 0 10074 NULL
141079 +disable_so_flow_get_skuid_fndecl_10095 flow_get_skuid fndecl 0 10095 NULL
141080 +disable_so_i_atime_ext4_inode_10096 i_atime ext4_inode 0 10096 NULL
141081 +disable_so_wd_timeout_iwl_txq_10106 wd_timeout iwl_txq 0 10106 NULL
141082 +disable_so_tx_lpi_timer_ethtool_eee_10108 tx_lpi_timer ethtool_eee 0 10108 NULL
141083 +disable_so_cpumask_clear_cpu_fndecl_10109 cpumask_clear_cpu fndecl 1 10109 NULL
141084 +disable_so_apply_time_iwl_hs20_roc_req_10117 apply_time iwl_hs20_roc_req 0 10117 NULL
141085 +disable_so_pos2min_hash_fndecl_10123 pos2min_hash fndecl 0-2 10123 NULL
141086 +disable_so_mode_mask_ath_gen_timer_configuration_10124 mode_mask ath_gen_timer_configuration 0 10124 NULL
141087 +disable_so_del_timer_sync_fndecl_10133 del_timer_sync fndecl 0 10133 NULL
141088 +disable_so_res_toss_time_dlm_rsb_10135 res_toss_time dlm_rsb 0 10135 NULL nohasharray
141089 +disable_so_vblank___fb_timings_10135 vblank __fb_timings 0 10135 &disable_so_res_toss_time_dlm_rsb_10135
141090 +disable_so_phase_seg1_can_bittiming_10141 phase_seg1 can_bittiming 0 10141 NULL
141091 +disable_so_fixed_mtrr_seg_end_range_index_fndecl_10143 fixed_mtrr_seg_end_range_index fndecl 0 10143 NULL
141092 +disable_so_xgene_enet_set_mac_address_fndecl_10148 xgene_enet_set_mac_address fndecl 0 10148 NULL
141093 +disable_so_rtl_rfreg_delay_fndecl_10149 rtl_rfreg_delay fndecl 3-5 10149 NULL
141094 +disable_so_channel_of_freq_fndecl_10152 channel_of_freq fndecl 0-1 10152 NULL nohasharray
141095 +disable_so_gpio_set_value_cansleep_fndecl_10152 gpio_set_value_cansleep fndecl 1-2 10152 &disable_so_channel_of_freq_fndecl_10152
141096 +disable_so_em_sti_clocksource_read_fndecl_10153 em_sti_clocksource_read fndecl 0 10153 NULL
141097 +disable_so_tc90522_sleep_fndecl_10162 tc90522_sleep fndecl 0 10162 NULL
141098 +disable_so_discovery_timeout_mesh_path_10170 discovery_timeout mesh_path 0 10170 NULL
141099 +disable_so_pcf8563_rtc_read_time_fndecl_10175 pcf8563_rtc_read_time fndecl 0 10175 NULL
141100 +disable_so_ixgb_mc_addr_list_update_fndecl_10187 ixgb_mc_addr_list_update fndecl 3 10187 NULL
141101 +disable_so_rng_gen_random_rng_tfm_10199 rng_gen_random rng_tfm 3-0 10199 NULL
141102 +disable_so_db_rec_addr_mlx4_qp_context_10204 db_rec_addr mlx4_qp_context 0 10204 NULL nohasharray
141103 +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
141104 +disable_so_pgid_coda_in_hdr_10212 pgid coda_in_hdr 0 10212 NULL
141105 +disable_so_xfs_btree_get_numrecs_fndecl_10214 xfs_btree_get_numrecs fndecl 0 10214 NULL
141106 +disable_so_txLifetime_ConfigRid_10224 txLifetime ConfigRid 0 10224 NULL
141107 +disable_so_active_time_dce8_wm_params_10231 active_time dce8_wm_params 0 10231 NULL
141108 +disable_so_spi_imx_clkdiv_1_fndecl_10237 spi_imx_clkdiv_1 fndecl 1-2 10237 NULL
141109 +disable_so_vlv_force_gfx_clock_fndecl_10238 vlv_force_gfx_clock fndecl 0 10238 NULL
141110 +disable_so_prism54_get_freq_fndecl_10256 prism54_get_freq fndecl 0 10256 NULL
141111 +disable_so_ath6kl_wmi_disctimeout_cmd_fndecl_10259 ath6kl_wmi_disctimeout_cmd fndecl 2-0 10259 NULL
141112 +disable_so_dma_addr_snd_pcm_runtime_10260 dma_addr snd_pcm_runtime 0 10260 NULL
141113 +disable_so_p7_mt9t112_pll_divider_10261 p7 mt9t112_pll_divider 0 10261 NULL
141114 +disable_so_start_pid_timer_list_10264 start_pid timer_list 0 10264 NULL
141115 +disable_so_gateway_ctrl_address_wil_fw_record_gateway_data_10268 gateway_ctrl_address wil_fw_record_gateway_data 0 10268 NULL
141116 +disable_so_btree_insert128_fndecl_10277 btree_insert128 fndecl 2-3-5 10277 NULL
141117 +disable_so_i_dtime_ext2_inode_info_10287 i_dtime ext2_inode_info 0 10287 NULL
141118 +disable_so_mcryptd_hash_init_fndecl_10290 mcryptd_hash_init fndecl 2 10290 NULL
141119 +disable_so_freq_bfa_diag_ledtest_s_10293 freq bfa_diag_ledtest_s 0 10293 NULL
141120 +disable_so_TSS_sha1_fndecl_10297 TSS_sha1 fndecl 2 10297 NULL
141121 +disable_so_ccp_aes_cmac_init_fndecl_10298 ccp_aes_cmac_init fndecl 0 10298 NULL
141122 +disable_so_fc_fcp_timer_set_fndecl_10312 fc_fcp_timer_set fndecl 2 10312 NULL
141123 +disable_so_blkcipher_walk_next_fndecl_10321 blkcipher_walk_next fndecl 0 10321 NULL
141124 +disable_so_pwm_clock_nvkm_therm_10336 pwm_clock nvkm_therm 2-0 10336 NULL nohasharray
141125 +disable_so_ecryptfs_code_for_cipher_string_fndecl_10336 ecryptfs_code_for_cipher_string fndecl 2 10336 &disable_so_pwm_clock_nvkm_therm_10336
141126 +disable_so_smc_wreg_amdgpu_device_10339 smc_wreg amdgpu_device 2-3 10339 NULL
141127 +disable_so_symlink_hash_fndecl_10341 symlink_hash fndecl 1 10341 NULL
141128 +disable_so_eax_smm_regs_10346 eax smm_regs 0 10346 NULL
141129 +disable_so_sctp_setsockopt_nodelay_fndecl_10349 sctp_setsockopt_nodelay fndecl 0-3 10349 NULL
141130 +disable_so_min_vdisktime_cfq_rb_root_10355 min_vdisktime cfq_rb_root 0 10355 NULL
141131 +disable_so_address_lo_msi_msg_10356 address_lo msi_msg 0 10356 NULL
141132 +disable_so_unmapped_addr_srp_map_state_10359 unmapped_addr srp_map_state 0 10359 NULL
141133 +disable_so_buff_addr_ixgb_tx_desc_10366 buff_addr ixgb_tx_desc 0 10366 NULL
141134 +disable_so_i_ctime_sysv_inode_10368 i_ctime sysv_inode 0 10368 NULL
141135 +disable_so_avg_signal_local_info_10389 avg_signal local_info 0 10389 NULL
141136 +disable_so_sctp_bind_addrs_to_raw_fndecl_10390 sctp_bind_addrs_to_raw fndecl 3 10390 NULL
141137 +disable_so_xfs_btree_reada_bufs_fndecl_10403 xfs_btree_reada_bufs fndecl 2-3-4 10403 NULL
141138 +disable_so_cx_tss_segment_16_10404 cx tss_segment_16 0 10404 NULL
141139 +disable_so_cryptd_hash_update_enqueue_fndecl_10406 cryptd_hash_update_enqueue fndecl 0 10406 NULL
141140 +disable_so_log2sharesize_adfs_discrecord_10408 log2sharesize adfs_discrecord 0 10408 NULL
141141 +disable_so_eqaddr_csio_eq_params_10412 eqaddr csio_eq_params 0 10412 NULL
141142 +disable_so_dad_probes_inet6_ifaddr_10417 dad_probes inet6_ifaddr 0 10417 NULL
141143 +disable_so_ath5k_iowrite32_fndecl_10429 ath5k_iowrite32 fndecl 2 10429 NULL
141144 +disable_so_timeout_proto_10448 timeout proto 0 10448 NULL
141145 +disable_so_recycle_rx_buf_fndecl_10456 recycle_rx_buf fndecl 3 10456 NULL
141146 +disable_so_zero_scatter_daddr_isci_request_10458 zero_scatter_daddr isci_request 0 10458 NULL nohasharray
141147 +disable_so_cryptd_hash_digest_enqueue_fndecl_10458 cryptd_hash_digest_enqueue fndecl 0 10458 &disable_so_zero_scatter_daddr_isci_request_10458
141148 +disable_so_snd_pcm_hw_rule_muldivk_fndecl_10469 snd_pcm_hw_rule_muldivk fndecl 0 10469 NULL
141149 +disable_so_nilfs_btree_assign_fndecl_10473 nilfs_btree_assign fndecl 0-3 10473 NULL
141150 +disable_so_base_addr_ce_space_unaligned_ath10k_ce_ring_10487 base_addr_ce_space_unaligned ath10k_ce_ring 0 10487 NULL
141151 +disable_so_bch_btree_map_leaf_nodes_fndecl_10499 bch_btree_map_leaf_nodes fndecl 0 10499 NULL
141152 +disable_so_periods_snd_pcm_oss_runtime_10500 periods snd_pcm_oss_runtime 0 10500 NULL
141153 +disable_so_uvc_video_clock_decode_fndecl_10502 uvc_video_clock_decode fndecl 4 10502 NULL
141154 +disable_so_t3timer_ax25_info_struct_10512 t3timer ax25_info_struct 0 10512 NULL
141155 +disable_so_sq_page_table_addr_hi_iscsi_kwqe_conn_offload1_10520 sq_page_table_addr_hi iscsi_kwqe_conn_offload1 0 10520 NULL
141156 +disable_so_phys_addr_nx_host_sds_ring_10525 phys_addr nx_host_sds_ring 0 10525 NULL nohasharray
141157 +disable_so_current_pixclock_sis_video_info_10525 current_pixclock sis_video_info 0 10525 &disable_so_phys_addr_nx_host_sds_ring_10525
141158 +disable_so_ccp_aes_crypt_fndecl_10531 ccp_aes_crypt fndecl 0 10531 NULL
141159 +disable_so_clock_speed_MGSL_PARAMS32_10537 clock_speed MGSL_PARAMS32 0 10537 NULL
141160 +disable_so_sense_paddr_gdth_cmndinfo_10539 sense_paddr gdth_cmndinfo 0 10539 NULL
141161 +disable_so_lasttime_batadv_bla_claim_10544 lasttime batadv_bla_claim 0 10544 NULL
141162 +disable_so_tv_sec_timespec_10551 tv_sec timespec 0 10551 NULL
141163 +disable_so_cmb_tx_timer_atl1_hw_10553 cmb_tx_timer atl1_hw 0 10553 NULL nohasharray
141164 +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
141165 +disable_so_xfs_btree_read_buf_block_fndecl_10555 xfs_btree_read_buf_block fndecl 0 10555 NULL
141166 +disable_so_hash_dx_hash_info_10563 hash dx_hash_info 0 10563 NULL
141167 +disable_so_be16_to_cpu_n_fndecl_10566 be16_to_cpu_n fndecl 3 10566 NULL nohasharray
141168 +disable_so_ip_vs_bind_scheduler_fndecl_10566 ip_vs_bind_scheduler fndecl 0 10566 &disable_so_be16_to_cpu_n_fndecl_10566
141169 +disable_so_di_ctime_gfs2_dinode_10570 di_ctime gfs2_dinode 0 10570 NULL
141170 +disable_so_adjust_tsc_offset_kvm_x86_ops_10575 adjust_tsc_offset kvm_x86_ops 2 10575 NULL
141171 +disable_so_num_timeout_request_sock_10577 num_timeout request_sock 0 10577 NULL
141172 +disable_so___const_udelay_fndecl_10578 __const_udelay fndecl 1 10578 NULL
141173 +disable_so_wsm_ba_timeout_indication_fndecl_10580 wsm_ba_timeout_indication fndecl 0 10580 NULL
141174 +disable_so_tsc_connect_fndecl_10581 tsc_connect fndecl 0 10581 NULL
141175 +disable_so_recover_ata_timing_10582 recover ata_timing 0 10582 NULL
141176 +disable_so_addr_sch56xx_watchdog_data_10589 addr sch56xx_watchdog_data 0 10589 NULL
141177 +disable_so_phys_proc_id_cpuinfo_x86_10590 phys_proc_id cpuinfo_x86 0 10590 NULL
141178 +disable_so_gtime_signal_struct_10597 gtime signal_struct 0 10597 NULL
141179 +disable_so_clk_radeon_clock_voltage_dependency_entry_10605 clk radeon_clock_voltage_dependency_entry 0 10605 NULL
141180 +disable_so___oprofile_hrtimer_stop_fndecl_10609 __oprofile_hrtimer_stop fndecl 1 10609 NULL
141181 +disable_so_psched_get_time_fndecl_10619 psched_get_time fndecl 0 10619 NULL
141182 +disable_so_min_sleep_time_f2fs_gc_kthread_10623 min_sleep_time f2fs_gc_kthread 0 10623 NULL
141183 +disable_so_runtime_cfs_bandwidth_10624 runtime cfs_bandwidth 0 10624 NULL
141184 +disable_so_parse_timing_property_fndecl_10626 parse_timing_property fndecl 0 10626 NULL
141185 +disable_so_scan_bitmap_block_fndecl_10627 scan_bitmap_block fndecl 0-2-4-6 10627 NULL
141186 +disable_so_e1000e_pm_runtime_resume_fndecl_10638 e1000e_pm_runtime_resume fndecl 0 10638 NULL
141187 +disable_so_spi_nor_read_dummy_cycles_fndecl_10639 spi_nor_read_dummy_cycles fndecl 0 10639 NULL nohasharray
141188 +disable_so_sha_finish_walk_fndecl_10639 sha_finish_walk fndecl 0 10639 &disable_so_spi_nor_read_dummy_cycles_fndecl_10639
141189 +disable_so_address_gsm_mux_10640 address gsm_mux 0 10640 NULL
141190 +disable_so__rtl92ee_phy_calculate_bit_shift_fndecl_10643 _rtl92ee_phy_calculate_bit_shift fndecl 0-1 10643 NULL
141191 +disable_so_lasttime_batadv_bla_backbone_gw_10651 lasttime batadv_bla_backbone_gw 0 10651 NULL
141192 +disable_so_addr___crb_10654 addr __crb 0 10654 NULL
141193 +disable_so_stv0297_set_tv_freq_fndecl_10665 stv0297_set_tv_freq fndecl 2 10665 NULL
141194 +disable_so_txlo_dma_addr_typhoon_10667 txlo_dma_addr typhoon 0 10667 NULL
141195 +disable_so_ip_vs_dh_hashkey_fndecl_10670 ip_vs_dh_hashkey fndecl 1 10670 NULL
141196 +disable_so_setup_clocks_ufs_hba_variant_ops_10681 setup_clocks ufs_hba_variant_ops 0 10681 NULL
141197 +disable_so_decode_attr_time_access_fndecl_10682 decode_attr_time_access fndecl 0 10682 NULL
141198 +disable_so_pci_back_from_sleep_fndecl_10685 pci_back_from_sleep fndecl 0 10685 NULL
141199 +disable_so_ath9k_hw_init_macaddr_fndecl_10686 ath9k_hw_init_macaddr fndecl 0 10686 NULL nohasharray
141200 +disable_so_dma_buffer_atmel_runtime_data_10686 dma_buffer atmel_runtime_data 0 10686 &disable_so_ath9k_hw_init_macaddr_fndecl_10686
141201 +disable_so_timer_resolution_snd_pcm_runtime_10688 timer_resolution snd_pcm_runtime 0 10688 NULL
141202 +disable_so_snd_pcm_hw_rule_mul_fndecl_10689 snd_pcm_hw_rule_mul fndecl 0 10689 NULL
141203 +disable_so_subdivision_snd_pcm_oss_runtime_10697 subdivision snd_pcm_oss_runtime 0 10697 NULL
141204 +disable_so_split_huge_page_address_fndecl_10699 split_huge_page_address fndecl 2 10699 NULL
141205 +disable_so_bound_dev_if_rdma_dev_addr_10707 bound_dev_if rdma_dev_addr 0 10707 NULL
141206 +disable_so_gyro_3d_adjust_channel_bit_mask_fndecl_10717 gyro_3d_adjust_channel_bit_mask fndecl 3 10717 NULL
141207 +disable_so_ahash_prepare_alg_fndecl_10721 ahash_prepare_alg fndecl 0 10721 NULL
141208 +disable_so_st_mtime_sec_p9_stat_dotl_10725 st_mtime_sec p9_stat_dotl 0 10725 NULL
141209 +disable_so_num_timings_display_timings_10728 num_timings display_timings 0 10728 NULL
141210 +disable_so_clock_rq_10733 clock rq 0 10733 NULL
141211 +disable_so_sys_signalfd_fndecl_10740 sys_signalfd fndecl 0 10740 NULL
141212 +disable_so_last_tick_time_esas2r_adapter_10742 last_tick_time esas2r_adapter 0 10742 NULL
141213 +disable_so_low_addr_msgbuf_buf_addr_10746 low_addr msgbuf_buf_addr 0 10746 NULL
141214 +disable_so_mlx4_ib_invalidate_all_guid_record_fndecl_10755 mlx4_ib_invalidate_all_guid_record fndecl 2 10755 NULL
141215 +disable_so_crypto_gcm_verify_fndecl_10762 crypto_gcm_verify fndecl 0 10762 NULL
141216 +disable_so_devt_from_partuuid_fndecl_10763 devt_from_partuuid fndecl 0 10763 NULL nohasharray
141217 +disable_so_demod_address_or51132_config_10763 demod_address or51132_config 0 10763 &disable_so_devt_from_partuuid_fndecl_10763
141218 +disable_so_rv770_program_interrupt_vectors_fndecl_10768 rv770_program_interrupt_vectors fndecl 0 10768 NULL
141219 +disable_so_i915_mutex_lock_interruptible_fndecl_10777 i915_mutex_lock_interruptible fndecl 0 10777 NULL
141220 +disable_so_addr_il3945_tfd_tb_10790 addr il3945_tfd_tb 0 10790 NULL
141221 +disable_so_pr_gid_elf_prpsinfo_10803 pr_gid elf_prpsinfo 0 10803 NULL
141222 +disable_so_ism2_runtime_sc_10805 ism2 runtime_sc 0 10805 NULL
141223 +disable_so_sumo_get_sleep_divider_id_from_clock_fndecl_10823 sumo_get_sleep_divider_id_from_clock fndecl 2-0 10823 NULL nohasharray
141224 +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
141225 +disable_so__mv88e6xxx_reg_write_fndecl_10825 _mv88e6xxx_reg_write fndecl 0-2-3-4 10825 NULL
141226 +disable_so_flush_timeout_ath_chanctx_10828 flush_timeout ath_chanctx 0 10828 NULL nohasharray
141227 +disable_so_rxaddr_starfire_rx_desc_10828 rxaddr starfire_rx_desc 0 10828 &disable_so_flush_timeout_ath_chanctx_10828 nohasharray
141228 +disable_so_nla_get_u64_fndecl_10828 nla_get_u64 fndecl 0 10828 &disable_so_rxaddr_starfire_rx_desc_10828
141229 +disable_so_r600_get_gpu_clock_counter_fndecl_10836 r600_get_gpu_clock_counter fndecl 0 10836 NULL
141230 +disable_so_sys_timer_settime_fndecl_10837 sys_timer_settime fndecl 1 10837 NULL
141231 +disable_so_cmp_next_hrtimer_event_fndecl_10846 cmp_next_hrtimer_event fndecl 0-1-2 10846 NULL
141232 +disable_so_ac97_clock_via82xx_10850 ac97_clock via82xx 0 10850 NULL
141233 +disable_so_ageing_timer_value___fdb_entry_10853 ageing_timer_value __fdb_entry 0 10853 NULL
141234 +disable_so_dv_timings_cap_v4l2_subdev_pad_ops_10860 dv_timings_cap v4l2_subdev_pad_ops 0 10860 NULL
141235 +disable_so_cpufreq_get_global_kobject_fndecl_10881 cpufreq_get_global_kobject fndecl 0 10881 NULL
141236 +disable_so_freq_ath5k_rate_pcal_info_10883 freq ath5k_rate_pcal_info 0 10883 NULL
141237 +disable_so_shm_ctime_shmid64_ds_10884 shm_ctime shmid64_ds 0 10884 NULL nohasharray
141238 +disable_so_mt2050_set_if_freq_fndecl_10884 mt2050_set_if_freq fndecl 2 10884 &disable_so_shm_ctime_shmid64_ds_10884
141239 +disable_so_d_itimer_xfs_disk_dquot_10893 d_itimer xfs_disk_dquot 0 10893 NULL nohasharray
141240 +disable_so_saddr_irda_sock_10893 saddr irda_sock 0 10893 &disable_so_d_itimer_xfs_disk_dquot_10893
141241 +disable_so_doorbell_preserve_vardecl_pcc_cpufreq_c_10898 doorbell_preserve vardecl_pcc-cpufreq.c 0 10898 NULL
141242 +disable_so_signal_nr_nvkm_perfdom_10899 signal_nr nvkm_perfdom 0 10899 NULL
141243 +disable_so_cg_spll_func_cntl_2_ni_clock_registers_10900 cg_spll_func_cntl_2 ni_clock_registers 0 10900 NULL
141244 +disable_so_ac_utime_acct_v3_10901 ac_utime acct_v3 0 10901 NULL
141245 +disable_so_mclk_prediv_cs42l56_private_10907 mclk_prediv cs42l56_private 0 10907 NULL
141246 +disable_so_SYSC_mq_timedreceive_fndecl_10921 SYSC_mq_timedreceive fndecl 1-3 10921 NULL
141247 +disable_so_vpm_write_address_fndecl_10930 vpm_write_address fndecl 2 10930 NULL
141248 +disable_so_i_iw_freq_10939 i iw_freq 0 10939 NULL nohasharray
141249 +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
141250 +disable_so_rv3029c2_i2c_read_time_fndecl_10942 rv3029c2_i2c_read_time fndecl 0 10942 NULL nohasharray
141251 +disable_so_txok_interrupt_mask_ath_hw_10942 txok_interrupt_mask ath_hw 0 10942 &disable_so_rv3029c2_i2c_read_time_fndecl_10942
141252 +disable_so_err_time_ip6_tnl_10945 err_time ip6_tnl 0 10945 NULL
141253 +disable_so_free_nodes_hfs_btree_10954 free_nodes hfs_btree 0 10954 NULL
141254 +disable_so_dwell_time_delta_per_probe_conf_sched_scan_settings_10955 dwell_time_delta_per_probe conf_sched_scan_settings 0 10955 NULL
141255 +disable_so_blkcipher_walk_virt_block_fndecl_10958 blkcipher_walk_virt_block fndecl 0-3 10958 NULL
141256 +disable_so_bnx2x_change_mac_addr_fndecl_10964 bnx2x_change_mac_addr fndecl 0 10964 NULL
141257 +disable_so_sh_tmu_clocksource_enable_fndecl_10968 sh_tmu_clocksource_enable fndecl 0 10968 NULL
141258 +disable_so_pdiv_b43_phy_lp_10974 pdiv b43_phy_lp 0 10974 NULL
141259 +disable_so_br2684_mac_addr_fndecl_10977 br2684_mac_addr fndecl 0 10977 NULL
141260 +disable_so___hrtimer_init_fndecl_10979 __hrtimer_init fndecl 2 10979 NULL
141261 +disable_so_cisco_timer_fndecl_10984 cisco_timer fndecl 1 10984 NULL
141262 +disable_so_desc_address_fndecl_10998 desc_address fndecl 2-3 10998 NULL
141263 +disable_so_padlock_sha256_update_nano_fndecl_11008 padlock_sha256_update_nano fndecl 3 11008 NULL
141264 +disable_so_end_addr_gen_pool_chunk_11013 end_addr gen_pool_chunk 0 11013 NULL
141265 +disable_so_bitmap_file_set_bit_fndecl_11015 bitmap_file_set_bit fndecl 2 11015 NULL
141266 +disable_so_em28xx_write_reg_fndecl_11020 em28xx_write_reg fndecl 2-0-3 11020 NULL
141267 +disable_so_ocfs2_info_freefrag_scan_bitmap_fndecl_11032 ocfs2_info_freefrag_scan_bitmap fndecl 0-3 11032 NULL
141268 +disable_so_xen_teardown_timer_fndecl_11036 xen_teardown_timer fndecl 1 11036 NULL
141269 +disable_so_get_physaddr_fm_api_fndecl_11037 get_physaddr_fm_api fndecl 0 11037 NULL
141270 +disable_so_nfs_direct_read_schedule_iovec_fndecl_11039 nfs_direct_read_schedule_iovec fndecl 0-3 11039 NULL
141271 +disable_so_ocfs2_group_bitmap_size_fndecl_11043 ocfs2_group_bitmap_size fndecl 0 11043 NULL
141272 +disable_so_hsw_pcm_runtime_suspend_fndecl_11046 hsw_pcm_runtime_suspend fndecl 0 11046 NULL
141273 +disable_so_bi_start_gfs2_bitmap_11049 bi_start gfs2_bitmap 0 11049 NULL
141274 +disable_so_src_addr_hi_dmae_command_11052 src_addr_hi dmae_command 0 11052 NULL
141275 +disable_so_lsb_bna_dma_addr_11059 lsb bna_dma_addr 0 11059 NULL
141276 +disable_so_cb_s5p_jpeg_addr_11062 cb s5p_jpeg_addr 0 11062 NULL
141277 +disable_so_plink_timeout_sta_info_11094 plink_timeout sta_info 0 11094 NULL
141278 +disable_so_crypto_blkcipher_set_iv_fndecl_11098 crypto_blkcipher_set_iv fndecl 3 11098 NULL
141279 +disable_so_custom_divisor_mxser_port_11109 custom_divisor mxser_port 0 11109 NULL
141280 +disable_so_raw_cell_paddr_idt77252_dev_11112 raw_cell_paddr idt77252_dev 0 11112 NULL
141281 +disable_so_acpi_lpss_runtime_suspend_fndecl_11116 acpi_lpss_runtime_suspend fndecl 0 11116 NULL nohasharray
141282 +disable_so_addr_creg_cmd_11116 addr creg_cmd 0 11116 &disable_so_acpi_lpss_runtime_suspend_fndecl_11116
141283 +disable_so_dev_type_rdma_dev_addr_11123 dev_type rdma_dev_addr 0 11123 NULL
141284 +disable_so_signal_hermes_rx_descriptor_11147 signal hermes_rx_descriptor 0 11147 NULL
141285 +disable_so_phys_addr_nx_host_rds_ring_11168 phys_addr nx_host_rds_ring 0 11168 NULL
141286 +disable_so_addr1_de_desc_11170 addr1 de_desc 0 11170 NULL nohasharray
141287 +disable_so_ci_populate_mc_reg_addresses_fndecl_11170 ci_populate_mc_reg_addresses fndecl 0 11170 &disable_so_addr1_de_desc_11170
141288 +disable_so_addr__ioeventfd_11180 addr _ioeventfd 0 11180 NULL
141289 +disable_so_vx_change_frequency_fndecl_11184 vx_change_frequency fndecl 0 11184 NULL
141290 +disable_so_unbind_from_irq_fndecl_11196 unbind_from_irq fndecl 1 11196 NULL
141291 +disable_so_wext_cipher2level_fndecl_11197 wext_cipher2level fndecl 1 11197 NULL
141292 +disable_so_demod_address_cx24117_priv_11199 demod_address cx24117_priv 0 11199 NULL
141293 +disable_so_local_pkt_addr_dle_11206 local_pkt_addr dle 0 11206 NULL
141294 +disable_so_timewarn_cs_write_fndecl_11208 timewarn_cs_write fndecl 3-0 11208 NULL nohasharray
141295 +disable_so_prescale__pll_div_11208 prescale _pll_div 0 11208 &disable_so_timewarn_cs_write_fndecl_11208
141296 +disable_so_i2400m_read_mac_addr_fndecl_11209 i2400m_read_mac_addr fndecl 0 11209 NULL
141297 +disable_so__drbd_bm_find_next_zero_fndecl_11228 _drbd_bm_find_next_zero fndecl 0-2 11228 NULL
141298 +disable_so_printfbuf_aac_init_11236 printfbuf aac_init 0 11236 NULL nohasharray
141299 +disable_so_crypto_ablkcipher_ctxsize_fndecl_11236 crypto_ablkcipher_ctxsize fndecl 0 11236 &disable_so_printfbuf_aac_init_11236
141300 +disable_so_k__pll_div_11239 k _pll_div 0 11239 NULL
141301 +disable_so_qdiv_ratio_skl_wrpll_params_11242 qdiv_ratio skl_wrpll_params 0 11242 NULL
141302 +disable_so_dma_addr___vxge_hw_fifo_txdl_priv_11244 dma_addr __vxge_hw_fifo_txdl_priv 0 11244 NULL
141303 +disable_so_urandom_read_fndecl_11245 urandom_read fndecl 0-3 11245 NULL
141304 +disable_so_crypto_notify_fndecl_11249 crypto_notify fndecl 1 11249 NULL
141305 +disable_so_sd_gid_stat_data_v1_11250 sd_gid stat_data_v1 0 11250 NULL
141306 +disable_so_xlog_find_cycle_start_fndecl_11263 xlog_find_cycle_start fndecl 0-3 11263 NULL
141307 +disable_so_unbind_from_irqhandler_fndecl_11274 unbind_from_irqhandler fndecl 1 11274 NULL
141308 +disable_so_ref_divider_panel_info_11279 ref_divider panel_info 0 11279 NULL nohasharray
141309 +disable_so_nfs_wait_bit_killable_fndecl_11279 nfs_wait_bit_killable fndecl 0 11279 &disable_so_ref_divider_panel_info_11279
141310 +disable_so_freq_p54_scan_head_11280 freq p54_scan_head 0 11280 NULL
141311 +disable_so_it_overrun_k_itimer_11284 it_overrun k_itimer 0 11284 NULL
141312 +disable_so_txbd_addr_lo_host_cmd_ds_pcie_details_11288 txbd_addr_lo host_cmd_ds_pcie_details 0 11288 NULL
141313 +disable_so_calc_baud_divisor_fndecl_11290 calc_baud_divisor fndecl 0-1 11290 NULL
141314 +disable_so_hash_net6_expire_fndecl_11296 hash_net6_expire fndecl 4 11296 NULL
141315 +disable_so_ax25_addr_build_fndecl_11299 ax25_addr_build fndecl 0 11299 NULL
141316 +disable_so_vnic_dev_del_addr_fndecl_11303 vnic_dev_del_addr fndecl 0 11303 NULL
141317 +disable_so_wrmsrl_safe_fndecl_11305 wrmsrl_safe fndecl 0-2 11305 NULL
141318 +disable_so_jiffies_last_vardecl_intel_powerclamp_c_11307 jiffies_last vardecl_intel_powerclamp.c 0 11307 NULL
141319 +disable_so_mmc_select_timing_fndecl_11311 mmc_select_timing fndecl 0 11311 NULL
141320 +disable_so_crypto_cbc_encrypt_inplace_fndecl_11315 crypto_cbc_encrypt_inplace fndecl 0 11315 NULL
141321 +disable_so_cma_translate_addr_fndecl_11326 cma_translate_addr fndecl 0 11326 NULL
141322 +disable_so_period_bytes_snd_pcm_oss_runtime_11332 period_bytes snd_pcm_oss_runtime 0 11332 NULL
141323 +disable_so_board_addr_ath6kl_hw_11334 board_addr ath6kl_hw 0 11334 NULL
141324 +disable_so_shash_ahash_mcryptd_digest_fndecl_11335 shash_ahash_mcryptd_digest fndecl 0 11335 NULL
141325 +disable_so_crypto_gcm_encrypt_fndecl_11338 crypto_gcm_encrypt fndecl 0 11338 NULL
141326 +disable_so_btrfs_wq_run_delayed_node_fndecl_11342 btrfs_wq_run_delayed_node fndecl 0 11342 NULL
141327 +disable_so_pch_udc_ep_bit_clr_fndecl_11345 pch_udc_ep_bit_clr fndecl 3 11345 NULL nohasharray
141328 +enable_so_rcv_tsecr_tcp_options_received_11345 rcv_tsecr tcp_options_received 0 11345 &disable_so_pch_udc_ep_bit_clr_fndecl_11345
141329 +disable_so_bin_uuid_fndecl_11348 bin_uuid fndecl 3-0 11348 NULL
141330 +disable_so_offset_to_bitmap_fndecl_11359 offset_to_bitmap fndecl 0-2 11359 NULL
141331 +disable_so_default_tv_freq_vardecl_pvrusb2_hdw_c_11362 default_tv_freq vardecl_pvrusb2-hdw.c 0 11362 NULL
141332 +disable_so_SiS_SetReg_fndecl_11366 SiS_SetReg fndecl 1-3 11366 NULL
141333 +disable_so_sec_btrfs_ioctl_timespec_11375 sec btrfs_ioctl_timespec 0 11375 NULL
141334 +disable_so_dn_nl_newaddr_fndecl_11380 dn_nl_newaddr fndecl 0 11380 NULL
141335 +disable_so_DAC1064_calcclock_fndecl_11385 DAC1064_calcclock fndecl 1-2 11385 NULL
141336 +disable_so_trinity_set_divider_value_fndecl_11387 trinity_set_divider_value fndecl 3 11387 NULL
141337 +disable_so_ac_utime_taskstats_11391 ac_utime taskstats 0 11391 NULL nohasharray
141338 +disable_so_zd_iowrite32_locked_fndecl_11391 zd_iowrite32_locked fndecl 0-2 11391 &disable_so_ac_utime_taskstats_11391
141339 +disable_so_crypto_rfc4309_setkey_fndecl_11398 crypto_rfc4309_setkey fndecl 0-3 11398 NULL
141340 +disable_so_lvb_igid_ocfs2_meta_lvb_11400 lvb_igid ocfs2_meta_lvb 0 11400 NULL nohasharray
141341 +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
141342 +disable_so_si_pmu_fast_pwrup_delay_fndecl_11409 si_pmu_fast_pwrup_delay fndecl 0 11409 NULL
141343 +disable_so_tps6586x_rtc_read_time_fndecl_11415 tps6586x_rtc_read_time fndecl 0 11415 NULL
141344 +disable_so_hash_rem_ccp_sha_req_ctx_11427 hash_rem ccp_sha_req_ctx 0 11427 NULL
141345 +disable_so_phys_addr_udc_11429 phys_addr udc 0 11429 NULL
141346 +disable_so_center_freq2_cfg80211_chan_def_11433 center_freq2 cfg80211_chan_def 0 11433 NULL
141347 +disable_so_lock_btree_op_11443 lock btree_op 0 11443 NULL
141348 +disable_so_freq_mt7601u_freq_cal_11461 freq mt7601u_freq_cal 0 11461 NULL
141349 +disable_so_pm860x_reg_write_fndecl_11462 pm860x_reg_write fndecl 0-2-3 11462 NULL
141350 +disable_so_crypto_hash_walk_first_fndecl_11464 crypto_hash_walk_first fndecl 0 11464 NULL
141351 +disable_so_mlx4_ib_init_alias_guid_work_fndecl_11465 mlx4_ib_init_alias_guid_work fndecl 2 11465 NULL
141352 +disable_so_uid_fuse_attr_11471 uid fuse_attr 0 11471 NULL nohasharray
141353 +disable_so_l2addrsize_fndecl_11471 l2addrsize fndecl 0 11471 &disable_so_uid_fuse_attr_11471
141354 +disable_so_snprintf_fndecl_11478 snprintf fndecl 0-2 11478 NULL
141355 +disable_so_ath9k_hw_set_ack_timeout_fndecl_11491 ath9k_hw_set_ack_timeout fndecl 2 11491 NULL
141356 +disable_so_eq_delay_to_mult_fndecl_11493 eq_delay_to_mult fndecl 0-1 11493 NULL
141357 +disable_so_bit_length_acpi_object_field_common_11503 bit_length acpi_object_field_common 0 11503 NULL
141358 +disable_so_di_mtime_qnx6_inode_entry_11506 di_mtime qnx6_inode_entry 0 11506 NULL
141359 +disable_so_prism54_set_freq_fndecl_11509 prism54_set_freq fndecl 0 11509 NULL
141360 +disable_so_resp_bd_list_addr_lo_bnx2i_text_request_11511 resp_bd_list_addr_lo bnx2i_text_request 0 11511 NULL
141361 +disable_so_gid_ipc64_perm_11519 gid ipc64_perm 0 11519 NULL
141362 +disable_so_offset_delta_bnx2x_func_set_timesync_params_11542 offset_delta bnx2x_func_set_timesync_params 0 11542 NULL
141363 +disable_so_local_clock_us_fndecl_11549 local_clock_us fndecl 0 11549 NULL
141364 +disable_so_seq_tnl_ptk_info_11554 seq tnl_ptk_info 0 11554 NULL
141365 +disable_so_carl9170_set_freq_cal_data_fndecl_11578 carl9170_set_freq_cal_data fndecl 0 11578 NULL
141366 +disable_so_pmcraid_enable_interrupts_fndecl_11580 pmcraid_enable_interrupts fndecl 2 11580 NULL nohasharray
141367 +disable_so_get_free_region_mtrr_ops_11580 get_free_region mtrr_ops 1-2 11580 &disable_so_pmcraid_enable_interrupts_fndecl_11580
141368 +disable_so_mclkdiv2_cs42l52_clk_para_11588 mclkdiv2 cs42l52_clk_para 0 11588 NULL
141369 +disable_so_secid_netlbl_unlhsh_addr6_11595 secid netlbl_unlhsh_addr6 0 11595 NULL
141370 +disable_so_opaque_hashval_fndecl_11605 opaque_hashval fndecl 2 11605 NULL
141371 +disable_so_bcma_chipco_watchdog_get_max_timer_fndecl_11606 bcma_chipco_watchdog_get_max_timer fndecl 0 11606 NULL
141372 +disable_so_security_settime_fndecl_11608 security_settime fndecl 0 11608 NULL
141373 +disable_so_hash_tomoyo_path_info_11611 hash tomoyo_path_info 0 11611 NULL
141374 +disable_so_sllc_family_sockaddr_llc_11612 sllc_family sockaddr_llc 0 11612 NULL
141375 +disable_so_get_physaddr_from_sgc_fndecl_11613 get_physaddr_from_sgc fndecl 0 11613 NULL
141376 +disable_so_compat_sock_get_timestampns_fndecl_11614 compat_sock_get_timestampns fndecl 0 11614 NULL
141377 +disable_so_div2_pll_div_11630 div2 pll_div 0 11630 NULL
141378 +disable_so_dot_gma_clock_t_11632 dot gma_clock_t 0 11632 NULL
141379 +disable_so_addr_smsc47b397_data_11633 addr smsc47b397_data 0 11633 NULL nohasharray
141380 +disable_so_cpufreq_power2state_fndecl_11633 cpufreq_power2state fndecl 3 11633 &disable_so_addr_smsc47b397_data_11633 nohasharray
141381 +disable_so_cia_setkey_cipher_alg_11633 cia_setkey cipher_alg 0-3 11633 &disable_so_cpufreq_power2state_fndecl_11633
141382 +disable_so_log2P_nvkm_pll_vals_11639 log2P nvkm_pll_vals 0 11639 NULL
141383 +disable_so_timeout_tipc_subscription_11656 timeout tipc_subscription 0 11656 NULL
141384 +disable_so_sem_addr_mm_dma_desc_11658 sem_addr mm_dma_desc 0 11658 NULL
141385 +disable_so_adis16334_get_freq_fndecl_11667 adis16334_get_freq fndecl 0 11667 NULL
141386 +disable_so_register_address_dif_settings_11668 register_address dif_settings 0 11668 NULL
141387 +disable_so_cpufreq_p4_get_frequency_fndecl_11672 cpufreq_p4_get_frequency fndecl 0 11672 NULL
141388 +disable_so_sysctl_tcp_keepalive_time_vardecl_11678 sysctl_tcp_keepalive_time vardecl 0 11678 NULL nohasharray
141389 +disable_so_paddr_rsq_info_11678 paddr rsq_info 0 11678 &disable_so_sysctl_tcp_keepalive_time_vardecl_11678
141390 +disable_so_gc_timer_show_fndecl_11691 gc_timer_show fndecl 0 11691 NULL
141391 +disable_so_udp6_portaddr_hash_fndecl_11698 udp6_portaddr_hash fndecl 0-3 11698 NULL
141392 +disable_so_ablkcipher_walk_done_fndecl_11708 ablkcipher_walk_done fndecl 0-3 11708 NULL
141393 +disable_so_ahci_exec_polled_cmd_fndecl_11713 ahci_exec_polled_cmd fndecl 6-2-5 11713 NULL
141394 +disable_so_fb_addr_drm_via_dmablit_11717 fb_addr drm_via_dmablit 0 11717 NULL
141395 +disable_so_pci_bus_cx23885_dev_11720 pci_bus cx23885_dev 0 11720 NULL
141396 +disable_so_spacing_v4l2_hw_freq_seek_11726 spacing v4l2_hw_freq_seek 0 11726 NULL
141397 +disable_so_ncp_obtain_mtime_fndecl_11732 ncp_obtain_mtime fndecl 0 11732 NULL
141398 +disable_so_timer_index_at_state_t_11751 timer_index at_state_t 0 11751 NULL nohasharray
141399 +disable_so_sctp_copy_laddrs_fndecl_11751 sctp_copy_laddrs fndecl 2-4 11751 &disable_so_timer_index_at_state_t_11751
141400 +disable_so_max_freq_omap_hsmmc_platform_data_11755 max_freq omap_hsmmc_platform_data 0 11755 NULL nohasharray
141401 +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
141402 +disable_so_iio_interrupt_trigger_driver_init_fndecl_11758 iio_interrupt_trigger_driver_init fndecl 0 11758 NULL nohasharray
141403 +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
141404 +disable_so_ps_upsd_timeouts_read_fndecl_11759 ps_upsd_timeouts_read fndecl 3-0 11759 NULL nohasharray
141405 +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
141406 +disable_so_nm_uid_nl_mmap_hdr_11761 nm_uid nl_mmap_hdr 0 11761 NULL
141407 +disable_so_s_wtime_ext3_super_block_11765 s_wtime ext3_super_block 0 11765 NULL
141408 +disable_so_gr_fhash_fndecl_11768 gr_fhash fndecl 1-2 11768 NULL
141409 +disable_so_orig_ax_pt_regs_11775 orig_ax pt_regs 0 11775 NULL
141410 +disable_so_validate_scan_freqs_fndecl_11781 validate_scan_freqs fndecl 0 11781 NULL
141411 +disable_so_sbq_addr_cqicb_11782 sbq_addr cqicb 0 11782 NULL nohasharray
141412 +disable_so_irq_i2c_client_11782 irq i2c_client 0 11782 &disable_so_sbq_addr_cqicb_11782
141413 +disable_so_ip_addr_rocker_neigh_tbl_entry_11785 ip_addr rocker_neigh_tbl_entry 0 11785 NULL
141414 +disable_so_timestamp_mwifiex_bssdescriptor_11788 timestamp mwifiex_bssdescriptor 0 11788 NULL
141415 +disable_so_bg_block_bitmap_ext3_group_desc_11791 bg_block_bitmap ext3_group_desc 0 11791 NULL
141416 +disable_so_crystal_freq_saa711x_state_11797 crystal_freq saa711x_state 0 11797 NULL
141417 +disable_so_dqb_itime_mem_dqblk_11799 dqb_itime mem_dqblk 0 11799 NULL nohasharray
141418 +disable_so_get_journal_hash_dev_fndecl_11799 get_journal_hash_dev fndecl 3 11799 &disable_so_dqb_itime_mem_dqblk_11799
141419 +disable_so_addr_domain_fndecl_11807 addr_domain fndecl 2 11807 NULL
141420 +disable_so_get_time_window_fndecl_11808 get_time_window fndecl 0 11808 NULL
141421 +disable_so_chargetime_isdn_net_local_s_11812 chargetime isdn_net_local_s 0 11812 NULL
141422 +disable_so_sched_clock_local_fndecl_11817 sched_clock_local fndecl 0 11817 NULL
141423 +disable_so_address_ehci_iso_stream_11822 address ehci_iso_stream 0 11822 NULL
141424 +disable_so_simple_strtoul_fndecl_11835 simple_strtoul fndecl 0 11835 NULL
141425 +disable_so_i9xx_get_aux_clock_divider_fndecl_11841 i9xx_get_aux_clock_divider fndecl 0 11841 NULL
141426 +disable_so_emulator_set_msr_fndecl_11853 emulator_set_msr fndecl 3 11853 NULL
141427 +disable_so_sst_module_runtime_alloc_blocks_fndecl_11854 sst_module_runtime_alloc_blocks fndecl 2-0 11854 NULL
141428 +disable_so_msr_sum_desc_11862 msr sum_desc 0 11862 NULL
141429 +disable_so_rs780_set_engine_clock_scaling_fndecl_11864 rs780_set_engine_clock_scaling fndecl 0 11864 NULL
141430 +disable_so_write_file_regidx_fndecl_11870 write_file_regidx fndecl 3 11870 NULL
141431 +disable_so_task_sched_runtime_fndecl_11884 task_sched_runtime fndecl 0 11884 NULL
141432 +disable_so_hash_dst_fndecl_11898 hash_dst fndecl 0 11898 NULL
141433 +disable_so_xtal_cap10p_r820t_freq_range_11904 xtal_cap10p r820t_freq_range 0 11904 NULL
141434 +disable_so_ath6kl_cfg80211_deepsleep_resume_fndecl_11915 ath6kl_cfg80211_deepsleep_resume fndecl 0 11915 NULL
141435 +disable_so_count_qce_sha_reqctx_11921 count qce_sha_reqctx 0 11921 NULL
141436 +disable_so_hashlimit_mt_init_fndecl_11925 hashlimit_mt_init fndecl 0 11925 NULL
141437 +disable_so_time_remaining_msec_TAG_TW_Lock_11931 time_remaining_msec TAG_TW_Lock 0 11931 NULL
141438 +disable_so_extcpu_mce_11945 extcpu mce 0 11945 NULL
141439 +disable_so_hci_bdaddr_list_add_fndecl_11954 hci_bdaddr_list_add fndecl 0 11954 NULL
141440 +disable_so_task_list_pbl_addr_hi_fcoe_kwqe_init1_11965 task_list_pbl_addr_hi fcoe_kwqe_init1 0 11965 NULL
141441 +disable_so_time_blocked_kvm_spinlock_stats_11970 time_blocked kvm_spinlock_stats 0 11970 NULL
141442 +disable_so_mapaddr_c2_element_11974 mapaddr c2_element 0 11974 NULL
141443 +disable_so_uwb_rc_mac_addr_show_fndecl_11979 uwb_rc_mac_addr_show fndecl 0 11979 NULL
141444 +disable_so_ccp_run_rsa_cmd_fndecl_11983 ccp_run_rsa_cmd fndecl 0 11983 NULL
141445 +disable_so_cc770_rtr_interrupt_fndecl_11989 cc770_rtr_interrupt fndecl 2 11989 NULL
141446 +disable_so_bitmap_create_fndecl_12000 bitmap_create fndecl 2 12000 NULL
141447 +disable_so_maximum_acpi_address64_attribute_12007 maximum acpi_address64_attribute 0 12007 NULL
141448 +disable_so_i2c_addr_stv090x_internal_12008 i2c_addr stv090x_internal 0 12008 NULL
141449 +disable_so_s_time_ptc_stats_12018 s_time ptc_stats 0 12018 NULL
141450 +disable_so_disc_timeout_hci_conn_12021 disc_timeout hci_conn 0 12021 NULL
141451 +disable_so_proc_dointvec_jiffies_fndecl_12024 proc_dointvec_jiffies fndecl 0 12024 NULL
141452 +disable_so_wm8350_wdt_set_timeout_fndecl_12039 wm8350_wdt_set_timeout fndecl 2-0 12039 NULL
141453 +disable_so_sys_geteuid16_fndecl_12045 sys_geteuid16 fndecl 0 12045 NULL
141454 +disable_so_parse_strtoull_fndecl_12065 parse_strtoull fndecl 0 12065 NULL
141455 +disable_so_bp_index_nilfs_btree_path_12067 bp_index nilfs_btree_path 0 12067 NULL
141456 +disable_so_max_signal_ieee80211_hw_12078 max_signal ieee80211_hw 0 12078 NULL
141457 +disable_so_rx_timeout_vardecl_men_z135_uart_c_12080 rx_timeout vardecl_men_z135_uart.c 0 12080 NULL
141458 +disable_so_sws_timer_config_nes_adapter_12081 sws_timer_config nes_adapter 0 12081 NULL
141459 +disable_so_ic_myaddr_vardecl_12088 ic_myaddr vardecl 0 12088 NULL
141460 +disable_so_bitmap_ord_to_pos_fndecl_12108 bitmap_ord_to_pos fndecl 3-0 12108 NULL
141461 +disable_so_debounce_jiffies_lp8727_chg_12115 debounce_jiffies lp8727_chg 0 12115 NULL
141462 +disable_so_hashval1_2_rx_pkt_hdr1_12125 hashval1_2 rx_pkt_hdr1 0 12125 NULL
141463 +disable_so_acpi_ut_divide_fndecl_12126 acpi_ut_divide fndecl 0-1-2 12126 NULL
141464 +disable_so_irst_store_wakeup_time_fndecl_12127 irst_store_wakeup_time fndecl 0-4 12127 NULL
141465 +disable_so_xfs_bmap_btree_to_extents_fndecl_12130 xfs_bmap_btree_to_extents fndecl 0 12130 NULL
141466 +disable_so_addrconf_notify_fndecl_12132 addrconf_notify fndecl 0 12132 NULL
141467 +disable_so_ath5k_beacon_update_timers_fndecl_12135 ath5k_beacon_update_timers fndecl 2 12135 NULL
141468 +disable_so_pid_pppol2tpv3in6_addr_12136 pid pppol2tpv3in6_addr 0 12136 NULL
141469 +disable_so__abb5zes3_rtc_set_timer_fndecl_12149 _abb5zes3_rtc_set_timer fndecl 0 12149 NULL
141470 +disable_so_remote_ca_guid_ib_cm_req_event_param_12150 remote_ca_guid ib_cm_req_event_param 0 12150 NULL
141471 +disable_so_grcan_reset_timer_fndecl_12158 grcan_reset_timer fndecl 2 12158 NULL
141472 +disable_so_sctp_sockaddr_af_fndecl_12166 sctp_sockaddr_af fndecl 3 12166 NULL
141473 +disable_so_di_ctime_efs_dinode_12170 di_ctime efs_dinode 0 12170 NULL
141474 +disable_so_bitmap_fill_fndecl_12173 bitmap_fill fndecl 2 12173 NULL
141475 +disable_so_clock_mga_i2c_chan_12185 clock mga_i2c_chan 0 12185 NULL
141476 +disable_so_physaddr_pau_fpdu_frag_12193 physaddr pau_fpdu_frag 0 12193 NULL
141477 +disable_so_adm9240_write_fan_div_fndecl_12196 adm9240_write_fan_div fndecl 3-2 12196 NULL
141478 +disable_so_addr_privcmd_mmapbatch_v2_12199 addr privcmd_mmapbatch_v2 0 12199 NULL
141479 +disable_so_start_freq_khz_ieee80211_freq_range_12202 start_freq_khz ieee80211_freq_range 0 12202 NULL nohasharray
141480 +disable_so_total_ablkcipher_walk_12202 total ablkcipher_walk 0 12202 &disable_so_start_freq_khz_ieee80211_freq_range_12202
141481 +disable_so_ktime_us_delta_fndecl_12204 ktime_us_delta fndecl 0 12204 NULL
141482 +disable_so_hmark_addr_mask_fndecl_12206 hmark_addr_mask fndecl 1 12206 NULL
141483 +disable_so_force_addr_vardecl_i2c_viapro_c_12216 force_addr vardecl_i2c-viapro.c 0 12216 NULL nohasharray
141484 +disable_so_next_hash_dir_private_info_12216 next_hash dir_private_info 0 12216 &disable_so_force_addr_vardecl_i2c_viapro_c_12216
141485 +disable_so_i40e_aq_mac_address_write_fndecl_12217 i40e_aq_mac_address_write fndecl 0 12217 NULL
141486 +disable_so_sys_set_tid_address_fndecl_12219 sys_set_tid_address fndecl 0 12219 NULL
141487 +disable_so_ebitmap_contains_fndecl_12231 ebitmap_contains fndecl 3 12231 NULL
141488 +disable_so_bfa_timer_begin_fndecl_12232 bfa_timer_begin fndecl 5 12232 NULL
141489 +disable_so_sst_hsw_dsp_runtime_resume_fndecl_12234 sst_hsw_dsp_runtime_resume fndecl 0 12234 NULL
141490 +disable_so_crypto_rfc4543_encrypt_fndecl_12243 crypto_rfc4543_encrypt fndecl 0 12243 NULL
141491 +disable_so_addr_ib_phys_buf_12245 addr ib_phys_buf 0 12245 NULL
141492 +disable_so_rhashtable_jhash2_fndecl_12249 rhashtable_jhash2 fndecl 0 12249 NULL
141493 +disable_so_highbit_ebitmap_12260 highbit ebitmap 0 12260 NULL
141494 +disable_so_btrfs_run_delayed_items_fndecl_12263 btrfs_run_delayed_items fndecl 0 12263 NULL
141495 +disable_so_security_task_setscheduler_fndecl_12267 security_task_setscheduler fndecl 0 12267 NULL
141496 +disable_so_sense_phys_addr_megasas_cmd_fusion_12272 sense_phys_addr megasas_cmd_fusion 0 12272 NULL
141497 +disable_so_devid_ptp_clock_12277 devid ptp_clock 0 12277 NULL
141498 +disable_so_pwwn_bfa_bsg_rport_scsi_addr_s_12278 pwwn bfa_bsg_rport_scsi_addr_s 0 12278 NULL nohasharray
141499 +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
141500 +disable_so_gid_ncp_mount_data_12282 gid ncp_mount_data 0 12282 NULL
141501 +disable_so_qla2x00_zio_timer_show_fndecl_12290 qla2x00_zio_timer_show fndecl 0 12290 NULL
141502 +disable_so_mlx4_hca_core_clock_update_fndecl_12300 mlx4_hca_core_clock_update fndecl 0 12300 NULL
141503 +disable_so_accel_3d_adjust_channel_bit_mask_fndecl_12308 accel_3d_adjust_channel_bit_mask fndecl 3 12308 NULL
141504 +disable_so_dtt200u_fe_sleep_fndecl_12311 dtt200u_fe_sleep fndecl 0 12311 NULL
141505 +disable_so_asix_read_phy_addr_fndecl_12320 asix_read_phy_addr fndecl 0 12320 NULL
141506 +disable_so_viafb_load_reg_fndecl_12323 viafb_load_reg fndecl 1 12323 NULL nohasharray
141507 +disable_so_bm_bits_drbd_bitmap_12323 bm_bits drbd_bitmap 0 12323 &disable_so_viafb_load_reg_fndecl_12323
141508 +disable_so_ixgbe_write_mc_addr_list_fndecl_12325 ixgbe_write_mc_addr_list fndecl 0 12325 NULL
141509 +disable_so_gid_max_xt_owner_match_info_12332 gid_max xt_owner_match_info 0 12332 NULL
141510 +disable_so_duty_cycle_pwm_device_12334 duty_cycle pwm_device 0 12334 NULL
141511 +disable_so_get_nohz_timer_target_fndecl_12336 get_nohz_timer_target fndecl 0 12336 NULL
141512 +disable_so_pte_encode_i915_address_space_12340 pte_encode i915_address_space 0-1 12340 NULL
141513 +disable_so_mdac_aic32x4_rate_divs_12367 mdac aic32x4_rate_divs 0 12367 NULL
141514 +disable_so_tipc_media_addr_printf_fndecl_12368 tipc_media_addr_printf fndecl 2 12368 NULL
141515 +disable_so_i_atime_ext3_inode_12370 i_atime ext3_inode 0 12370 NULL
141516 +disable_so_bitmap_ip_gc_test_fndecl_12372 bitmap_ip_gc_test fndecl 3 12372 NULL
141517 +disable_so_vlv_gpu_freq_div_fndecl_12377 vlv_gpu_freq_div fndecl 0 12377 NULL nohasharray
141518 +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
141519 +disable_so_schedule_hrtimeout_range_fndecl_12390 schedule_hrtimeout_range fndecl 2 12390 NULL
141520 +disable_so_btrfs_init_delayed_node_fndecl_12401 btrfs_init_delayed_node fndecl 3 12401 NULL
141521 +disable_so_connect_time_stamp_skd_device_12406 connect_time_stamp skd_device 0 12406 NULL
141522 +disable_so_gcm_hash_remain_fndecl_12408 gcm_hash_remain fndecl 0-2 12408 NULL
141523 +disable_so_kasprintf_fndecl_12414 kasprintf fndecl 1 12414 NULL
141524 +disable_so_iTCO_wdt_set_timeout_fndecl_12423 iTCO_wdt_set_timeout fndecl 2 12423 NULL
141525 +disable_so_queue_ixgbe_mac_addr_12436 queue ixgbe_mac_addr 0 12436 NULL
141526 +disable_so_i_atime_extra_ext4_inode_12438 i_atime_extra ext4_inode 0 12438 NULL
141527 +disable_so_bts_interrupt_threshold_debug_store_12439 bts_interrupt_threshold debug_store 0 12439 NULL
141528 +disable_so_erase_delay_vardecl_nandsim_c_12453 erase_delay vardecl_nandsim.c 0 12453 NULL
141529 +disable_so__rx_page_addr_iwl_host_cmd_12457 _rx_page_addr iwl_host_cmd 0 12457 NULL
141530 +disable_so_fandiv1_w83627ehf_data_12459 fandiv1 w83627ehf_data 0 12459 NULL
141531 +disable_so_affs_hash_name_fndecl_12465 affs_hash_name fndecl 0-3 12465 NULL
141532 +disable_so_timeout_tipc_subscr_12467 timeout tipc_subscr 0 12467 NULL
141533 +disable_so_decrypt_msdu_lib80211_crypto_ops_12475 decrypt_msdu lib80211_crypto_ops 3 12475 NULL
141534 +disable_so_ext4_read_block_bitmap_nowait_fndecl_12477 ext4_read_block_bitmap_nowait fndecl 2 12477 NULL
141535 +disable_so_i40e_rx_hash_fndecl_12482 i40e_rx_hash fndecl 0 12482 NULL
141536 +disable_so_padata_set_cpumasks_fndecl_12492 padata_set_cpumasks fndecl 0 12492 NULL
141537 +disable_so_dm_btree_empty_fndecl_12493 dm_btree_empty fndecl 0 12493 NULL
141538 +disable_so_nv_do_interrupt_fndecl_12501 nv_do_interrupt fndecl 2 12501 NULL
141539 +disable_so_max8997_set_voltage_buck_time_sel_fndecl_12503 max8997_set_voltage_buck_time_sel fndecl 0-2-3 12503 NULL
141540 +disable_so_div_factor_fine_fndecl_12505 div_factor_fine fndecl 0-1 12505 NULL
141541 +disable_so_r820t_sysfreq_sel_fndecl_12506 r820t_sysfreq_sel fndecl 0-2 12506 NULL
141542 +disable_so_msleep_xc2028_ctrl_12512 msleep xc2028_ctrl 0 12512 NULL nohasharray
141543 +disable_so_get_maxrecs_xfs_btree_ops_12512 get_maxrecs xfs_btree_ops 0 12512 &disable_so_msleep_xc2028_ctrl_12512
141544 +disable_so_test_rhashtable_fndecl_12513 test_rhashtable fndecl 0 12513 NULL
141545 +disable_so_i2c_address_mt2131_config_12514 i2c_address mt2131_config 0 12514 NULL
141546 +disable_so_rapl_compute_time_window_core_fndecl_12519 rapl_compute_time_window_core fndecl 0-2 12519 NULL
141547 +disable_so_mi1_wr_addr_fndecl_12527 mi1_wr_addr fndecl 0 12527 NULL nohasharray
141548 +disable_so_write_reg_fndecl_12527 write_reg fndecl 1 12527 &disable_so_mi1_wr_addr_fndecl_12527
141549 +disable_so_mce_adjust_timer_default_fndecl_12530 mce_adjust_timer_default fndecl 0-1 12530 NULL
141550 +disable_so_low_bkey_12536 low bkey 0 12536 NULL
141551 +disable_so_arcmsr_alloc_sysfs_attr_fndecl_12547 arcmsr_alloc_sysfs_attr fndecl 0 12547 NULL
141552 +disable_so_data_qxl_bitmap_12551 data qxl_bitmap 0 12551 NULL
141553 +disable_so_imsf_multiaddr_ip_msfilter_12556 imsf_multiaddr ip_msfilter 0 12556 NULL
141554 +disable_so_qa_indx_sdebug_hrtimer_12577 qa_indx sdebug_hrtimer 0 12577 NULL
141555 +disable_so_shash_compat_digest_fndecl_12579 shash_compat_digest fndecl 0-3 12579 NULL
141556 +disable_so_max8998_rtc_set_time_fndecl_12607 max8998_rtc_set_time fndecl 0 12607 NULL
141557 +disable_so_dib7000m_write_word_fndecl_12610 dib7000m_write_word fndecl 3 12610 NULL
141558 +disable_so_real_start_time_task_struct_12612 real_start_time task_struct 0 12612 NULL
141559 +disable_so_rhashtable_expand_fndecl_12634 rhashtable_expand fndecl 0 12634 NULL
141560 +disable_so_seq_cxgbi_skb_cb_12636 seq cxgbi_skb_cb 0 12636 NULL
141561 +disable_so_daddr_irnet_log_12640 daddr irnet_log 0 12640 NULL
141562 +disable_so_r8a66597_clock_enable_fndecl_12645 r8a66597_clock_enable fndecl 0 12645 NULL
141563 +disable_so_rsa_get_d_fndecl_12646 rsa_get_d fndecl 5 12646 NULL
141564 +disable_so_compat_sys_timer_gettime_fndecl_12649 compat_sys_timer_gettime fndecl 1 12649 NULL
141565 +disable_so_daddr_tcp4_pseudohdr_12650 daddr tcp4_pseudohdr 0 12650 NULL
141566 +disable_so_ccp_crypto_enqueue_cmd_fndecl_12657 ccp_crypto_enqueue_cmd fndecl 0 12657 NULL
141567 +disable_so_gm107_fan_pwm_clock_fndecl_12663 gm107_fan_pwm_clock fndecl 0 12663 NULL
141568 +disable_so_em_sti_clock_event_next_fndecl_12667 em_sti_clock_event_next fndecl 1 12667 NULL
141569 +disable_so___hash_conntrack_fndecl_12675 __hash_conntrack fndecl 0-3 12675 NULL
141570 +disable_so_nr_of_adrs_cmd_ds_mac_multicast_addr_12679 nr_of_adrs cmd_ds_mac_multicast_addr 0 12679 NULL
141571 +disable_so_mpihelp_mul_fndecl_12686 mpihelp_mul fndecl 3-5 12686 NULL
141572 +disable_so_retry_delay_timer_fcoe_fcp_rsp_payload_12692 retry_delay_timer fcoe_fcp_rsp_payload 0 12692 NULL
141573 +disable_so_b43_phy_write_fndecl_12694 b43_phy_write fndecl 2-3 12694 NULL
141574 +disable_so_ageing_time_tun_struct_12716 ageing_time tun_struct 0 12716 NULL nohasharray
141575 +disable_so_rx_delay_rk_priv_data_12716 rx_delay rk_priv_data 0 12716 &disable_so_ageing_time_tun_struct_12716
141576 +disable_so_dma_addr_rxbuff_ent_12717 dma_addr rxbuff_ent 0 12717 NULL
141577 +disable_so_swb_base_asd_ha_addrspace_12726 swb_base asd_ha_addrspace 0 12726 NULL
141578 +disable_so_set_voltage_time_sel_regulator_ops_12737 set_voltage_time_sel regulator_ops 0-2 12737 NULL nohasharray
141579 +disable_so_crypto_ecb_setkey_fndecl_12737 crypto_ecb_setkey fndecl 0-3 12737 &disable_so_set_voltage_time_sel_regulator_ops_12737
141580 +disable_so_width_clk_divider_12738 width clk_divider 0 12738 NULL
141581 +disable_so_mga_set_start_address_fndecl_12745 mga_set_start_address fndecl 2 12745 NULL
141582 +disable_so_last_timer_vardecl_tusb6010_c_12750 last_timer vardecl_tusb6010.c 0 12750 NULL
141583 +disable_so_jiffies_at_free_qla_tgt_cmd_12753 jiffies_at_free qla_tgt_cmd 0 12753 NULL nohasharray
141584 +disable_so_ufs_set_inode_uid_fndecl_12753 ufs_set_inode_uid fndecl 3 12753 &disable_so_jiffies_at_free_qla_tgt_cmd_12753
141585 +disable_so_ipv6_get_saddr_eval_fndecl_12754 ipv6_get_saddr_eval fndecl 0 12754 NULL
141586 +disable_so_bond_xmit_hash_fndecl_12757 bond_xmit_hash fndecl 0 12757 NULL
141587 +disable_so_freqm_snd_usb_endpoint_12761 freqm snd_usb_endpoint 0 12761 NULL
141588 +disable_so_mclkdiv_cs42l73_mclkx_div_12771 mclkdiv cs42l73_mclkx_div 0 12771 NULL
141589 +disable_so_slot_time_rtl8187_priv_12775 slot_time rtl8187_priv 0 12775 NULL
141590 +disable_so_mwifiex_auto_tdls_update_peer_signal_fndecl_12781 mwifiex_auto_tdls_update_peer_signal fndecl 3-4 12781 NULL
141591 +disable_so_channel_mwifiex_chan_freq_power_12794 channel mwifiex_chan_freq_power 0 12794 NULL
141592 +disable_so_pll_loopdiv_dib0090_io_config_12799 pll_loopdiv dib0090_io_config 0 12799 NULL nohasharray
141593 +disable_so_branch_addr_yellowfin_desc_12799 branch_addr yellowfin_desc 0 12799 &disable_so_pll_loopdiv_dib0090_io_config_12799
141594 +disable_so__kstrtoul_fndecl_12800 _kstrtoul fndecl 0 12800 NULL
141595 +disable_so_ns_to_timeval_fndecl_12804 ns_to_timeval fndecl 1 12804 NULL nohasharray
141596 +disable_so_enc_addr_high_sata_start_req_12804 enc_addr_high sata_start_req 0 12804 &disable_so_ns_to_timeval_fndecl_12804
141597 +disable_so_ftdi_232bm_baud_to_divisor_fndecl_12815 ftdi_232bm_baud_to_divisor fndecl 0-1 12815 NULL
141598 +disable_so_crypto_aead_setkey_fndecl_12818 crypto_aead_setkey fndecl 0-3 12818 NULL
141599 +disable_so_ufs_cpu_to_data_ptr_fndecl_12819 ufs_cpu_to_data_ptr fndecl 3 12819 NULL
141600 +disable_so_s35390a_rtc_read_time_fndecl_12823 s35390a_rtc_read_time fndecl 0 12823 NULL
141601 +disable_so_orinoco_ioctl_getfreq_fndecl_12824 orinoco_ioctl_getfreq fndecl 0 12824 NULL
141602 +disable_so_be_get_temp_freq_be_adapter_12832 be_get_temp_freq be_adapter 0 12832 NULL
141603 +disable_so_sha256_transform_asm_vardecl_sha256_ssse3_glue_c_12837 sha256_transform_asm vardecl_sha256_ssse3_glue.c 3 12837 NULL
141604 +disable_so_ubifs_leb_unmap_fndecl_12841 ubifs_leb_unmap fndecl 0-2 12841 NULL
141605 +disable_so_telclk_interrupt_vardecl_tlclk_c_12842 telclk_interrupt vardecl_tlclk.c 0 12842 NULL
141606 +disable_so_eax_tss_segment_32_12853 eax tss_segment_32 0 12853 NULL
141607 +disable_so_recover_ide_timing_12854 recover ide_timing 0 12854 NULL
141608 +disable_so_ima_calc_file_hash_fndecl_12858 ima_calc_file_hash fndecl 0 12858 NULL
141609 +disable_so_timestamp_inquiry_entry_12867 timestamp inquiry_entry 0 12867 NULL
141610 +disable_so_blk_post_runtime_suspend_fndecl_12869 blk_post_runtime_suspend fndecl 2 12869 NULL
141611 +disable_so_clocksource_register_khz_fndecl_12871 clocksource_register_khz fndecl 2 12871 NULL
141612 +disable_so___xfrm4_daddr_saddr_hash_fndecl_12875 __xfrm4_daddr_saddr_hash fndecl 0 12875 NULL
141613 +disable_so_calibrate_delay_converge_fndecl_12881 calibrate_delay_converge fndecl 0 12881 NULL
141614 +disable_so_cgroup_kn_set_ugid_fndecl_12885 cgroup_kn_set_ugid fndecl 0 12885 NULL
141615 +disable_so_bm_number_of_pages_drbd_bitmap_12889 bm_number_of_pages drbd_bitmap 0 12889 NULL
141616 +disable_so_blck_N_aic32x4_rate_divs_12896 blck_N aic32x4_rate_divs 0 12896 NULL
141617 +disable_so_delayacct_blkio_ticks_fndecl_12901 delayacct_blkio_ticks fndecl 0 12901 NULL
141618 +disable_so_sh_irda_set_timeout_fndecl_12902 sh_irda_set_timeout fndecl 2 12902 NULL
141619 +disable_so_bch_next_delay_fndecl_12906 bch_next_delay fndecl 0-2 12906 NULL
141620 +disable_so_address_lo_ht_irq_msg_12914 address_lo ht_irq_msg 0 12914 NULL
141621 +disable_so_cr_gsc_addr_12917 cr gsc_addr 0 12917 NULL nohasharray
141622 +disable_so_fmc_set_freq_fndecl_12917 fmc_set_freq fndecl 0-2 12917 &disable_so_cr_gsc_addr_12917
141623 +disable_so_s_wtime_nilfs_super_block_12947 s_wtime nilfs_super_block 0 12947 NULL
141624 +disable_so___pm_runtime_idle_fndecl_12950 __pm_runtime_idle fndecl 0 12950 NULL
141625 +disable_so_timeout_dvb_ca_slot_12955 timeout dvb_ca_slot 0 12955 NULL
141626 +disable_so_ktime_get_real_ns_fndecl_12957 ktime_get_real_ns fndecl 0 12957 NULL nohasharray
141627 +disable_so_read_temp_msr_fndecl_12957 read_temp_msr fndecl 0 12957 &disable_so_ktime_get_real_ns_fndecl_12957
141628 +disable_so_clock_get_k_clock_12965 clock_get k_clock 1 12965 NULL
141629 +disable_so_addr___cache_12967 addr __cache 0 12967 NULL
141630 +disable_so_dev_addr_mv_u3d_12969 dev_addr mv_u3d 0 12969 NULL
141631 +disable_so_xfrm6_input_addr_fndecl_12971 xfrm6_input_addr fndecl 4 12971 NULL
141632 +disable_so_rfcomm_dlc_set_timer_fndecl_12983 rfcomm_dlc_set_timer fndecl 2 12983 NULL
141633 +disable_so_short_addr_ieee802154_hw_addr_filt_12985 short_addr ieee802154_hw_addr_filt 0 12985 NULL
141634 +disable_so_base_addr_rdma_cq_setup_12989 base_addr rdma_cq_setup 0 12989 NULL
141635 +disable_so_rsp_q_phy_addr_ql3_adapter_12990 rsp_q_phy_addr ql3_adapter 0 12990 NULL
141636 +disable_so_cc770_status_interrupt_fndecl_12992 cc770_status_interrupt fndecl 0 12992 NULL
141637 +disable_so_tx_addr_uart_8250_dma_12997 tx_addr uart_8250_dma 0 12997 NULL
141638 +disable_so_cur_delay_intel_ilk_power_mgmt_13003 cur_delay intel_ilk_power_mgmt 0 13003 NULL
141639 +disable_so_gateway_cmd_addr_wil_fw_record_gateway_data_13008 gateway_cmd_addr wil_fw_record_gateway_data 0 13008 NULL
141640 +disable_so_wq_cpumask_show_fndecl_13018 wq_cpumask_show fndecl 0 13018 NULL
141641 +disable_so_hash_index_fndecl_13050 hash_index fndecl 0-1-2 13050 NULL
141642 +disable_so_qs6612_ack_interrupt_fndecl_13054 qs6612_ack_interrupt fndecl 0 13054 NULL
141643 +disable_so_dst_addr_ioat_dma_descriptor_13055 dst_addr ioat_dma_descriptor 0 13055 NULL
141644 +disable_so_qce_ablkcipher_encrypt_fndecl_13064 qce_ablkcipher_encrypt fndecl 0 13064 NULL
141645 +disable_so_cra_alignmask_crypto_alg_13076 cra_alignmask crypto_alg 0 13076 NULL
141646 +disable_so_rx_busy_ath_cycle_counters_13078 rx_busy ath_cycle_counters 0 13078 NULL
141647 +disable_so_dummy_hrtimer_pointer_fndecl_13080 dummy_hrtimer_pointer fndecl 0 13080 NULL nohasharray
141648 +disable_so_freq_carl9170_rf_init_13080 freq carl9170_rf_init 0 13080 &disable_so_dummy_hrtimer_pointer_fndecl_13080
141649 +disable_so_host_addr_mei_hbm_cl_cmd_13107 host_addr mei_hbm_cl_cmd 0 13107 NULL nohasharray
141650 +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
141651 +disable_so_da9063_rtc_read_time_fndecl_13117 da9063_rtc_read_time fndecl 0 13117 NULL
141652 +disable_so_ext4_validate_block_bitmap_fndecl_13120 ext4_validate_block_bitmap fndecl 3 13120 NULL
141653 +disable_so_adp8870_write_fndecl_13121 adp8870_write fndecl 0-2-3 13121 NULL
141654 +disable_so_clock_set_k_clock_13122 clock_set k_clock 1 13122 NULL nohasharray
141655 +disable_so_check_clock_fndecl_13122 check_clock fndecl 1 13122 &disable_so_clock_set_k_clock_13122
141656 +disable_so_addr_wil6210_mbox_ring_desc_13127 addr wil6210_mbox_ring_desc 0 13127 NULL
141657 +disable_so_stats_time_fnic_13131 stats_time fnic 0 13131 NULL
141658 +disable_so_brcms_add_timer_fndecl_13133 brcms_add_timer fndecl 2 13133 NULL
141659 +disable_so_r6a_val_fc2580_freq_regs_13136 r6a_val fc2580_freq_regs 0 13136 NULL
141660 +disable_so_enabled_otg_timer_bits_ci_hdrc_13140 enabled_otg_timer_bits ci_hdrc 0 13140 NULL
141661 +disable_so_atp867x_get_recover_clocks_shifted_fndecl_13150 atp867x_get_recover_clocks_shifted fndecl 0-1 13150 NULL
141662 +disable_so_timeout_nf_ct_gre_13156 timeout nf_ct_gre 0 13156 NULL
141663 +disable_so_snd_fm801_interrupt_fndecl_13162 snd_fm801_interrupt fndecl 1 13162 NULL
141664 +disable_so_afs_server_timeout_vardecl_server_c_13168 afs_server_timeout vardecl_server.c 0 13168 NULL
141665 +disable_so_wm8974_set_dai_clkdiv_fndecl_13171 wm8974_set_dai_clkdiv fndecl 3 13171 NULL
141666 +disable_so_ipw_send_adapter_address_fndecl_13183 ipw_send_adapter_address fndecl 0 13183 NULL
141667 +disable_so_crypto_fpu_encrypt_fndecl_13188 crypto_fpu_encrypt fndecl 0-4 13188 NULL
141668 +disable_so_blockno2iaddr_fndecl_13194 blockno2iaddr fndecl 2 13194 NULL
141669 +disable_so_s_addr_per_block_bits_ext2_sb_info_13196 s_addr_per_block_bits ext2_sb_info 0 13196 NULL
141670 +disable_so_mac_time_rtl8187_rx_hdr_13204 mac_time rtl8187_rx_hdr 0 13204 NULL
141671 +disable_so_efx_phc_gettime_fndecl_13210 efx_phc_gettime fndecl 0 13210 NULL nohasharray
141672 +disable_so_freq_fm_rx_13210 freq fm_rx 0 13210 &disable_so_efx_phc_gettime_fndecl_13210
141673 +disable_so_set_fan1_div_fndecl_13214 set_fan1_div fndecl 0-4 13214 NULL
141674 +disable_so_kstrtos16_from_user_fndecl_13215 kstrtos16_from_user fndecl 2 13215 NULL
141675 +disable_so_timer_int_req_nes_adapter_13220 timer_int_req nes_adapter 0 13220 NULL nohasharray
141676 +disable_so_raddr_rdma_iu_13220 raddr rdma_iu 0 13220 &disable_so_timer_int_req_nes_adapter_13220
141677 +disable_so_calibrate_delay_direct_fndecl_13221 calibrate_delay_direct fndecl 0 13221 NULL
141678 +disable_so_il_scan_cancel_timeout_fndecl_13227 il_scan_cancel_timeout fndecl 2 13227 NULL
141679 +disable_so_di_uid_gfs2_dinode_13234 di_uid gfs2_dinode 0 13234 NULL
141680 +disable_so_globaltxtimeout_ath_hw_13238 globaltxtimeout ath_hw 0 13238 NULL
141681 +disable_so_handle_new_msr_fndecl_13247 handle_new_msr fndecl 2 13247 NULL
141682 +disable_so_efx_ef10_get_mac_address_fndecl_13249 efx_ef10_get_mac_address fndecl 0 13249 NULL
141683 +disable_so_i_atime_exofs_fcb_13250 i_atime exofs_fcb 0 13250 NULL
141684 +disable_so_dwell_time_active_wmi_start_scan_arg_13251 dwell_time_active wmi_start_scan_arg 0 13251 NULL
141685 +disable_so_SYSC_signalfd_fndecl_13255 SYSC_signalfd fndecl 0 13255 NULL
141686 +disable_so_ipv4addr_iscsi_ipv4addr_13263 ipv4addr iscsi_ipv4addr 0 13263 NULL
141687 +disable_so_nilfs_btree_prepare_update_v_fndecl_13265 nilfs_btree_prepare_update_v fndecl 0 13265 NULL
141688 +disable_so_timer_in_use_max_nes_hw_tune_timer_13266 timer_in_use_max nes_hw_tune_timer 0 13266 NULL nohasharray
141689 +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
141690 +disable_so_xgmac_interrupt_fndecl_13268 xgmac_interrupt fndecl 1 13268 NULL
141691 +disable_so_radio_s_hw_freq_seek_fndecl_13308 radio_s_hw_freq_seek fndecl 0 13308 NULL nohasharray
141692 +disable_so_apei_read_mce_fndecl_13308 apei_read_mce fndecl 0 13308 &disable_so_radio_s_hw_freq_seek_fndecl_13308
141693 +disable_so_clear_tasks_mm_cpumask_fndecl_13309 clear_tasks_mm_cpumask fndecl 1 13309 NULL
141694 +disable_so_bmsr_e1000_phy_regs_13313 bmsr e1000_phy_regs 0 13313 NULL
141695 +disable_so_mcryptd_hash_digest_fndecl_13325 mcryptd_hash_digest fndecl 2 13325 NULL
141696 +disable_so_cpumask_set_cpu_fndecl_13326 cpumask_set_cpu fndecl 1 13326 NULL
141697 +disable_so_ipath_unmasktime_ipath_devdata_13342 ipath_unmasktime ipath_devdata 0 13342 NULL
141698 +disable_so_interruptjiffies_vardecl_floppy_c_13345 interruptjiffies vardecl_floppy.c 0 13345 NULL
141699 +disable_so_remove_from_bitmap_fndecl_13352 remove_from_bitmap fndecl 0 13352 NULL
141700 +disable_so_sst_wait_timeout_fndecl_13353 sst_wait_timeout fndecl 0 13353 NULL nohasharray
141701 +disable_so_last_timeout_arcnet_local_13353 last_timeout arcnet_local 0 13353 &disable_so_sst_wait_timeout_fndecl_13353 nohasharray
141702 +disable_so_cfg_table_bus_addr_pmcraid_instance_13353 cfg_table_bus_addr pmcraid_instance 0 13353 &disable_so_last_timeout_arcnet_local_13353
141703 +disable_so_mtime_vardecl_initramfs_c_13365 mtime vardecl_initramfs.c 0 13365 NULL
141704 +disable_so_ds3232_read_time_fndecl_13366 ds3232_read_time fndecl 0 13366 NULL nohasharray
141705 +disable_so_addr_bcma_device_13366 addr bcma_device 0 13366 &disable_so_ds3232_read_time_fndecl_13366
141706 +disable_so_dma_addr_drv_ctl_io_13371 dma_addr drv_ctl_io 0 13371 NULL
141707 +disable_so_crypto_check_alg_fndecl_13376 crypto_check_alg fndecl 0 13376 NULL
141708 +disable_so_drbd_adm_get_timeout_type_fndecl_13391 drbd_adm_get_timeout_type fndecl 0 13391 NULL
141709 +disable_so_hpi_silence_detector_set_delay_fndecl_13393 hpi_silence_detector_set_delay fndecl 0-1 13393 NULL
141710 +disable_so__get_table_div_fndecl_13398 _get_table_div fndecl 0-2 13398 NULL
141711 +disable_so_backtrace_address_fndecl_13401 backtrace_address fndecl 2 13401 NULL
141712 +disable_so_ax25_addr_parse_fndecl_13402 ax25_addr_parse fndecl 2 13402 NULL
141713 +disable_so_ath5k_hw_ani_get_listen_time_fndecl_13417 ath5k_hw_ani_get_listen_time fndecl 0 13417 NULL nohasharray
141714 +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
141715 +disable_so_cpufreq_stats_free_table_fndecl_13437 cpufreq_stats_free_table fndecl 1 13437 NULL
141716 +disable_so_eft_addr_l_qla2xxx_fw_dump_13450 eft_addr_l qla2xxx_fw_dump 0 13450 NULL
141717 +disable_so_cit_write_reg_fndecl_13451 cit_write_reg fndecl 2 13451 NULL
141718 +disable_so_chash_f2fs_inode_info_13456 chash f2fs_inode_info 0 13456 NULL
141719 +disable_so_vblank_lo_oaktrail_timing_info_13463 vblank_lo oaktrail_timing_info 0 13463 NULL
141720 +disable_so_rtl8139_interrupt_fndecl_13468 rtl8139_interrupt fndecl 1 13468 NULL
141721 +disable_so_start_time_dm_io_13470 start_time dm_io 0 13470 NULL
141722 +disable_so_mt2032_set_if_freq_fndecl_13473 mt2032_set_if_freq fndecl 2-3-4 13473 NULL
141723 +disable_so_demod_address_cx24110_config_13476 demod_address cx24110_config 0 13476 NULL
141724 +disable_so_atime_tcs3472_data_13482 atime tcs3472_data 0 13482 NULL
141725 +disable_so_div_ratio_fndecl_13491 div_ratio fndecl 0-2-1 13491 NULL
141726 +disable_so_seq_xfrm_state_walk_13498 seq xfrm_state_walk 0 13498 NULL
141727 +disable_so_qdisc_class_hash_init_fndecl_13502 qdisc_class_hash_init fndecl 0 13502 NULL
141728 +disable_so_sha256_generic_block_fn_fndecl_13506 sha256_generic_block_fn fndecl 3 13506 NULL
141729 +disable_so_find_first_bit_fndecl_13507 find_first_bit fndecl 0-2 13507 NULL
141730 +disable_so_idle_timeout_clip_vcc_13512 idle_timeout clip_vcc 0 13512 NULL nohasharray
141731 +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
141732 +disable_so_bond_time_in_interval_fndecl_13516 bond_time_in_interval fndecl 2 13516 NULL nohasharray
141733 +disable_so_nv04_timer_init_fndecl_13516 nv04_timer_init fndecl 0 13516 &disable_so_bond_time_in_interval_fndecl_13516
141734 +disable_so_paravirt_read_msr_fndecl_13526 paravirt_read_msr fndecl 0-1 13526 NULL
141735 +disable_so_dram_offset_sst_addr_13528 dram_offset sst_addr 0 13528 NULL
141736 +disable_so_em_sti_clocksource_enable_fndecl_13530 em_sti_clocksource_enable fndecl 0 13530 NULL
141737 +disable_so_timestamp_ieee80211_tdls_ch_sw_params_13545 timestamp ieee80211_tdls_ch_sw_params 0 13545 NULL
141738 +disable_so_post_divider_rv6xx_sclk_stepping_13551 post_divider rv6xx_sclk_stepping 0 13551 NULL nohasharray
141739 +disable_so_center_freq_ieee80211_channel_13551 center_freq ieee80211_channel 0 13551 &disable_so_post_divider_rv6xx_sclk_stepping_13551
141740 +disable_so_port_rcvhdrqtailaddr_phys_ipath_portdata_13553 port_rcvhdrqtailaddr_phys ipath_portdata 0 13553 NULL
141741 +disable_so_acpi_check_address_range_fndecl_13569 acpi_check_address_range fndecl 1-2-3 13569 NULL
141742 +disable_so_time_mt_init_fndecl_13576 time_mt_init fndecl 0 13576 NULL
141743 +disable_so_blkcipher_done_fast_fndecl_13584 blkcipher_done_fast fndecl 0-2 13584 NULL
141744 +disable_so_phys_addr_mpi_mem_13591 phys_addr mpi_mem 0 13591 NULL nohasharray
141745 +disable_so_timeout_p9_trans_rdma_13591 timeout p9_trans_rdma 0 13591 &disable_so_phys_addr_mpi_mem_13591 nohasharray
141746 +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
141747 +disable_so_c_can_set_bittiming_fndecl_13601 c_can_set_bittiming fndecl 0 13601 NULL
141748 +disable_so_crypto_ccm_module_init_fndecl_13609 crypto_ccm_module_init fndecl 0 13609 NULL
141749 +disable_so_addr_hi_eth_tx_next_bd_13611 addr_hi eth_tx_next_bd 0 13611 NULL
141750 +disable_so_addr_hi_cmdQ_e_13613 addr_hi cmdQ_e 0 13613 NULL
141751 +disable_so_min_keysize_crypto_report_cipher_13617 min_keysize crypto_report_cipher 0 13617 NULL
141752 +disable_so_seq_printf_with_thousands_grouping_fndecl_13628 seq_printf_with_thousands_grouping fndecl 2 13628 NULL
141753 +disable_so_cpuidle_init_fndecl_13639 cpuidle_init fndecl 0 13639 NULL
141754 +disable_so_period_ksz_timer_info_13641 period ksz_timer_info 0 13641 NULL
141755 +disable_so_vx_modify_board_clock_fndecl_13669 vx_modify_board_clock fndecl 0 13669 NULL
141756 +disable_so_cmd_box_addr_wl1251_13673 cmd_box_addr wl1251 0 13673 NULL
141757 +disable_so_demod_address_va1j5jf8007s_config_13675 demod_address va1j5jf8007s_config 0 13675 NULL
141758 +disable_so_timestamp_unavailable_nfs4_deviceid_node_13676 timestamp_unavailable nfs4_deviceid_node 0 13676 NULL nohasharray
141759 +disable_so_len_in_mceusb_dev_13676 len_in mceusb_dev 0 13676 &disable_so_timestamp_unavailable_nfs4_deviceid_node_13676
141760 +disable_so_di_uid_efs_dinode_13682 di_uid efs_dinode 0 13682 NULL
141761 +disable_so_aty_ld_le32_fndecl_13683 aty_ld_le32 fndecl 0 13683 NULL
141762 +disable_so_freqValRadio_pvr2_hdw_13684 freqValRadio pvr2_hdw 0 13684 NULL
141763 +disable_so_fd_pppol2tp_addr_13691 fd pppol2tp_addr 0 13691 NULL
141764 +disable_so_ver_total_via_display_timing_13695 ver_total via_display_timing 0 13695 NULL
141765 +disable_so_wait_on_bit_action_fndecl_13700 wait_on_bit_action fndecl 0 13700 NULL
141766 +disable_so_prandom_seed_state_fndecl_13705 prandom_seed_state fndecl 2 13705 NULL
141767 +disable_so_br_set_hello_time_fndecl_13706 br_set_hello_time fndecl 2-0 13706 NULL
141768 +disable_so_servaddr_vardecl_nfsroot_c_13709 servaddr vardecl_nfsroot.c 0 13709 NULL
141769 +disable_so_pci_bus_read_config_byte_fndecl_13716 pci_bus_read_config_byte fndecl 0-2-3 13716 NULL
141770 +disable_so_cipher_blocksize_blkcipher_walk_13719 cipher_blocksize blkcipher_walk 0 13719 NULL
141771 +disable_so_isdn_divert_read_fndecl_13720 isdn_divert_read fndecl 0 13720 NULL
141772 +disable_so_sys_getegid16_fndecl_13732 sys_getegid16 fndecl 0 13732 NULL
141773 +disable_so_turnaround_delay_fndecl_13736 turnaround_delay fndecl 2 13736 NULL nohasharray
141774 +disable_so_ft_min_img_ir_free_timing_13736 ft_min img_ir_free_timing 0 13736 &disable_so_turnaround_delay_fndecl_13736
141775 +disable_so_addr_1_qla8044_minidump_entry_rdmdio_13738 addr_1 qla8044_minidump_entry_rdmdio 0 13738 NULL nohasharray
141776 +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
141777 +disable_so_ext4fs_dirhash_fndecl_13754 ext4fs_dirhash fndecl 2 13754 NULL
141778 +disable_so_mpll_func_cntl_2_ci_clock_registers_13768 mpll_func_cntl_2 ci_clock_registers 0 13768 NULL
141779 +disable_so_update_ts_time_stats_fndecl_13777 update_ts_time_stats fndecl 1 13777 NULL
141780 +disable_so_adv_smbus_write_byte_data_fndecl_13784 adv_smbus_write_byte_data fndecl 0-3-2-4 13784 NULL
141781 +disable_so_tg3_nvram_read_be32_fndecl_13791 tg3_nvram_read_be32 fndecl 0-2 13791 NULL
141782 +disable_so_ftdi_232bm_baud_base_to_divisor_fndecl_13805 ftdi_232bm_baud_base_to_divisor fndecl 0-1-2 13805 NULL nohasharray
141783 +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
141784 +disable_so_mtimensec_fuse_setattr_in_13811 mtimensec fuse_setattr_in 0 13811 NULL
141785 +disable_so_stime_task_cputime_13814 stime task_cputime 0 13814 NULL
141786 +disable_so_update_rq_clock_task_fndecl_13818 update_rq_clock_task fndecl 2 13818 NULL
141787 +disable_so_first_pending_disptime_throtl_service_queue_13825 first_pending_disptime throtl_service_queue 0 13825 NULL
141788 +disable_so_zalloc_cpumask_var_node_fndecl_13830 zalloc_cpumask_var_node fndecl 2-3 13830 NULL
141789 +disable_so_s_last_error_time_ext4_super_block_13833 s_last_error_time ext4_super_block 0 13833 NULL
141790 +disable_so_ksz_start_timer_fndecl_13834 ksz_start_timer fndecl 2 13834 NULL nohasharray
141791 +disable_so_uwb_rc_mac_addr_get_fndecl_13834 uwb_rc_mac_addr_get fndecl 0 13834 &disable_so_ksz_start_timer_fndecl_13834
141792 +disable_so_last_jiffies_loopback_pcm_13838 last_jiffies loopback_pcm 0 13838 NULL
141793 +disable_so_devm_free_irq_fndecl_13839 devm_free_irq fndecl 2 13839 NULL
141794 +disable_so_wlcore_irq_locked_fndecl_13846 wlcore_irq_locked fndecl 0 13846 NULL
141795 +disable_so_hpet_reserve_platform_timers_fndecl_13848 hpet_reserve_platform_timers fndecl 1 13848 NULL
141796 +disable_so_drm_legacy_ctxbitmap_next_fndecl_13853 drm_legacy_ctxbitmap_next fndecl 0 13853 NULL
141797 +disable_so_addr_hi_sdhci_adma2_64_desc_13867 addr_hi sdhci_adma2_64_desc 0 13867 NULL nohasharray
141798 +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
141799 +disable_so_ktime_to_us_fndecl_13868 ktime_to_us fndecl 0 13868 NULL nohasharray
141800 +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
141801 +disable_so_smack_task_setpgid_fndecl_13869 smack_task_setpgid fndecl 0 13869 NULL
141802 +disable_so_payload_addr_vpdma_cfd_13876 payload_addr vpdma_cfd 0 13876 NULL
141803 +disable_so_chgfreq_cs42l73_platform_data_13884 chgfreq cs42l73_platform_data 0 13884 NULL
141804 +disable_so_interrupt_page_vmbus_channel_initiate_contact_13895 interrupt_page vmbus_channel_initiate_contact 0 13895 NULL
141805 +disable_so_ptrace_set_breakpoint_addr_fndecl_13901 ptrace_set_breakpoint_addr fndecl 0-2-3 13901 NULL nohasharray
141806 +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
141807 +disable_so_mcryptd_hash_setkey_fndecl_13926 mcryptd_hash_setkey fndecl 0-3 13926 NULL
141808 +disable_so_put_unaligned_be64_fndecl_13929 put_unaligned_be64 fndecl 1 13929 NULL
141809 +disable_so_voldelay_soundfont_voice_parm_13931 voldelay soundfont_voice_parm 0 13931 NULL
141810 +disable_so_addr_high_lancer_cmd_req_read_object_13932 addr_high lancer_cmd_req_read_object 0 13932 NULL
141811 +disable_so_src_addr_rds_info_rdma_connection_13938 src_addr rds_info_rdma_connection 0 13938 NULL
141812 +disable_so_rs780_force_fbdiv_fndecl_13945 rs780_force_fbdiv fndecl 2 13945 NULL
141813 +disable_so_xfs_btree_key_offset_fndecl_13946 xfs_btree_key_offset fndecl 0-2 13946 NULL nohasharray
141814 +disable_so_cryptd_hash_init_enqueue_fndecl_13946 cryptd_hash_init_enqueue fndecl 0 13946 &disable_so_xfs_btree_key_offset_fndecl_13946
141815 +disable_so_from_addr_param_sctp_af_13948 from_addr_param sctp_af 3 13948 NULL
141816 +disable_so_ept_walk_addr_generic_fndecl_13950 ept_walk_addr_generic fndecl 4-5 13950 NULL
141817 +disable_so_cpu_timer_list_iter_13954 cpu timer_list_iter 0 13954 NULL nohasharray
141818 +disable_so_iowrite16_fndecl_13954 iowrite16 fndecl 1 13954 &disable_so_cpu_timer_list_iter_13954
141819 +disable_so_do_utime_fndecl_13972 do_utime fndecl 2-0 13972 NULL
141820 +disable_so_base_addr_cx18_13974 base_addr cx18 0 13974 NULL
141821 +disable_so_rtpm_suspended_time_show_fndecl_13986 rtpm_suspended_time_show fndecl 0 13986 NULL
141822 +disable_so_ctime_fuse_setattr_in_13994 ctime fuse_setattr_in 0 13994 NULL
141823 +disable_so__rtl92ce_signal_scale_mapping_fndecl_14005 _rtl92ce_signal_scale_mapping fndecl 0-2 14005 NULL
141824 +disable_so_base_address_kvm_ioapic_14007 base_address kvm_ioapic 0 14007 NULL
141825 +disable_so_addr_hi_tx_desc_14014 addr_hi tx_desc 0 14014 NULL
141826 +disable_so_db_page_addr_ocrdma_create_cq_uresp_14016 db_page_addr ocrdma_create_cq_uresp 0 14016 NULL
141827 +disable_so_cur_cpufreq_policy_14023 cur cpufreq_policy 0 14023 NULL
141828 +disable_so_iommu_context_addr_fndecl_14032 iommu_context_addr fndecl 2-3 14032 NULL
141829 +disable_so_pll_i2c_address_dvb_pll_priv_14036 pll_i2c_address dvb_pll_priv 0 14036 NULL
141830 +disable_so_eth_mac_addr_fndecl_14045 eth_mac_addr fndecl 0 14045 NULL
141831 +disable_so_dce_v8_0_crtc_set_base_atomic_fndecl_14048 dce_v8_0_crtc_set_base_atomic fndecl 0 14048 NULL
141832 +disable_so_irq_to_desc_fndecl_14051 irq_to_desc fndecl 1 14051 NULL
141833 +disable_so_ept_identity_map_addr_kvm_arch_14060 ept_identity_map_addr kvm_arch 0 14060 NULL
141834 +disable_so_t1timer_ax25_info_struct_14071 t1timer ax25_info_struct 0 14071 NULL
141835 +disable_so_rxbd_addr_hi_host_cmd_ds_pcie_details_14073 rxbd_addr_hi host_cmd_ds_pcie_details 0 14073 NULL nohasharray
141836 +disable_so_nfsd4_decode_bitmap_fndecl_14073 nfsd4_decode_bitmap fndecl 0 14073 &disable_so_rxbd_addr_hi_host_cmd_ds_pcie_details_14073
141837 +disable_so_xfs_vn_update_time_fndecl_14075 xfs_vn_update_time fndecl 0 14075 NULL
141838 +disable_so_cpufreq_frequency_table_target_fndecl_14082 cpufreq_frequency_table_target fndecl 3 14082 NULL
141839 +disable_so_pll_j_aic31xx_rate_divs_14098 pll_j aic31xx_rate_divs 0 14098 NULL
141840 +disable_so_pirq_from_irq_fndecl_14110 pirq_from_irq fndecl 1 14110 NULL
141841 +disable_so_zforce_scan_frequency_fndecl_14111 zforce_scan_frequency fndecl 0 14111 NULL
141842 +disable_so_uv_bios_freq_base_fndecl_14114 uv_bios_freq_base fndecl 1 14114 NULL
141843 +disable_so_si2165_set_if_freq_shift_fndecl_14123 si2165_set_if_freq_shift fndecl 0-2 14123 NULL
141844 +disable_so___hw_addr_sync_fndecl_14136 __hw_addr_sync fndecl 0-3 14136 NULL
141845 +disable_so_y_qxl_bitmap_14153 y qxl_bitmap 0 14153 NULL
141846 +disable_so_crypto_aead_setauthsize_fndecl_14158 crypto_aead_setauthsize fndecl 2 14158 NULL
141847 +disable_so_r600_engine_clock_entry_set_post_divider_fndecl_14159 r600_engine_clock_entry_set_post_divider fndecl 3 14159 NULL
141848 +disable_so_onenand_buffer_address_fndecl_14162 onenand_buffer_address fndecl 0-2-3 14162 NULL
141849 +disable_so___xfrm_state_lookup_byaddr_fndecl_14170 __xfrm_state_lookup_byaddr fndecl 2-5-6 14170 NULL
141850 +disable_so_uwbd_evt_handle_rc_dev_addr_conflict_fndecl_14177 uwbd_evt_handle_rc_dev_addr_conflict fndecl 0 14177 NULL
141851 +disable_so_mpt_add_sge_64bit_1078_fndecl_14179 mpt_add_sge_64bit_1078 fndecl 2-3 14179 NULL
141852 +disable_so_exynos4_jpeg_set_dec_bitstream_size_fndecl_14180 exynos4_jpeg_set_dec_bitstream_size fndecl 2 14180 NULL
141853 +disable_so_bg_block_bitmap_hi_ext4_group_desc_14201 bg_block_bitmap_hi ext4_group_desc 0 14201 NULL
141854 +disable_so_msecs_to_jiffies_fndecl_14205 msecs_to_jiffies fndecl 0-1 14205 NULL
141855 +disable_so_wait_on_page_bit_killable_timeout_fndecl_14212 wait_on_page_bit_killable_timeout fndecl 3-0 14212 NULL
141856 +disable_so_xfrm_state_addr_check_fndecl_14213 xfrm_state_addr_check fndecl 4 14213 NULL
141857 +disable_so_addr_sil24_sge_14214 addr sil24_sge 0 14214 NULL
141858 +disable_so_t2_hash_tbl_addr_lo_fcoe_kwqe_init2_14217 t2_hash_tbl_addr_lo fcoe_kwqe_init2 0 14217 NULL
141859 +disable_so_custom_divisor_uart_port_14227 custom_divisor uart_port 0 14227 NULL
141860 +disable_so_mclk_freq_s3fb_info_14228 mclk_freq s3fb_info 0 14228 NULL
141861 +disable_so_crypto_rfc4106_decrypt_fndecl_14233 crypto_rfc4106_decrypt fndecl 0 14233 NULL
141862 +disable_so_phy_addr_b44_14235 phy_addr b44 0 14235 NULL
141863 +disable_so_gpiochip_set_chained_irqchip_fndecl_14248 gpiochip_set_chained_irqchip fndecl 3 14248 NULL
141864 +disable_so_pci_bus_address_fndecl_14252 pci_bus_address fndecl 0 14252 NULL
141865 +disable_so_sleep_functions_on_battery_show_fndecl_14253 sleep_functions_on_battery_show fndecl 0 14253 NULL nohasharray
141866 +disable_so_to_hash_fndecl_14253 to_hash fndecl 0-1 14253 &disable_so_sleep_functions_on_battery_show_fndecl_14253
141867 +disable_so_ghash_async_init_fndecl_14257 ghash_async_init fndecl 0 14257 NULL
141868 +disable_so_port_down_timeout_vnic_fc_config_14262 port_down_timeout vnic_fc_config 0 14262 NULL
141869 +disable_so_master_timeout_vardecl_nf_conntrack_amanda_c_14266 master_timeout vardecl_nf_conntrack_amanda.c 0 14266 NULL
141870 +disable_so_register_address_increment_fndecl_14270 register_address_increment fndecl 2-3 14270 NULL
141871 +disable_so_ultra_settings_chipset_bus_clock_list_entry_14273 ultra_settings chipset_bus_clock_list_entry 0 14273 NULL
141872 +disable_so_do_timer_fndecl_14291 do_timer fndecl 1 14291 NULL nohasharray
141873 +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
141874 +disable_so_ndi_latency_timer_vardecl_ftdi_sio_c_14293 ndi_latency_timer vardecl_ftdi_sio.c 0 14293 NULL
141875 +disable_so_gateway_addr_addr_wil_fw_record_gateway_data4_14300 gateway_addr_addr wil_fw_record_gateway_data4 0 14300 NULL
141876 +disable_so_rxrpc_validate_address_fndecl_14303 rxrpc_validate_address fndecl 0-3 14303 NULL
141877 +disable_so_function_num_atto_csmi_get_pci_bus_addr_14307 function_num atto_csmi_get_pci_bus_addr 0 14307 NULL
141878 +disable_so_packet_timeout_jiffies_lego_usb_tower_14311 packet_timeout_jiffies lego_usb_tower 0 14311 NULL
141879 +disable_so_caller_uid_ceph_mds_request_head_14323 caller_uid ceph_mds_request_head 0 14323 NULL
141880 +disable_so_e1000_get_phy_addr_for_bm_page_fndecl_14324 e1000_get_phy_addr_for_bm_page fndecl 0-1-2 14324 NULL
141881 +disable_so_buf_base_addr_c67x00_hcd_14328 buf_base_addr c67x00_hcd 0 14328 NULL nohasharray
141882 +disable_so_hactive_hi_lvds_dvo_timing_14328 hactive_hi lvds_dvo_timing 0 14328 &disable_so_buf_base_addr_c67x00_hcd_14328
141883 +disable_so_addr_nv4e_i2c_port_14334 addr nv4e_i2c_port 0 14334 NULL
141884 +disable_so_ncp_add_be16_fndecl_14337 ncp_add_be16 fndecl 2 14337 NULL
141885 +disable_so_paddr_mm_dmapool_14345 paddr mm_dmapool 0 14345 NULL
141886 +disable_so_disc_wait_time_esas2r_adapter_14347 disc_wait_time esas2r_adapter 0 14347 NULL
141887 +disable_so_sgidx_scsi_ctrl_blk_14351 sgidx scsi_ctrl_blk 0 14351 NULL
141888 +disable_so_compute_split_timeout_timestamp_fndecl_14357 compute_split_timeout_timestamp fndecl 0-2 14357 NULL
141889 +disable_so_sin_port_sockaddr_in_14374 sin_port sockaddr_in 0 14374 NULL
141890 +disable_so_ci_get_mclk_frequency_ratio_fndecl_14375 ci_get_mclk_frequency_ratio fndecl 0-1 14375 NULL nohasharray
141891 +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
141892 +disable_so_stv0367cab_get_derot_freq_fndecl_14379 stv0367cab_get_derot_freq fndecl 0-2 14379 NULL
141893 +disable_so_line_time_radeon_crtc_14380 line_time radeon_crtc 0 14380 NULL
141894 +disable_so_src_data_addr_icp_qat_fw_comn_req_mid_14391 src_data_addr icp_qat_fw_comn_req_mid 0 14391 NULL
141895 +disable_so_dev_addr_cx231xx_i2c_xfer_data_14403 dev_addr cx231xx_i2c_xfer_data 0 14403 NULL
141896 +disable_so_card_snd_timer_info32_14407 card snd_timer_info32 0 14407 NULL nohasharray
141897 +disable_so_authenc_esn_verify_ahash_done_fndecl_14407 authenc_esn_verify_ahash_done fndecl 2 14407 &disable_so_card_snd_timer_info32_14407
141898 +disable_so_compat_put_timespec_fndecl_14416 compat_put_timespec fndecl 0 14416 NULL
141899 +disable_so_nct6775_write_fan_div_fndecl_14421 nct6775_write_fan_div fndecl 2 14421 NULL
141900 +disable_so_compat_sys_settimeofday_fndecl_14431 compat_sys_settimeofday fndecl 0 14431 NULL
141901 +disable_so_irlmp_start_idle_timer_fndecl_14433 irlmp_start_idle_timer fndecl 2 14433 NULL
141902 +disable_so_min_flt_signal_struct_14436 min_flt signal_struct 0 14436 NULL
141903 +disable_so___release_region_fndecl_14448 __release_region fndecl 2-3 14448 NULL
141904 +disable_so_dccp_time_wait_fndecl_14450 dccp_time_wait fndecl 3-2 14450 NULL nohasharray
141905 +disable_so_rt_mutex_timed_futex_lock_fndecl_14450 rt_mutex_timed_futex_lock fndecl 0 14450 &disable_so_dccp_time_wait_fndecl_14450
141906 +disable_so_div1_pll_div_14458 div1 pll_div 0 14458 NULL
141907 +disable_so_timestamp_ata_ering_entry_14485 timestamp ata_ering_entry 0 14485 NULL
141908 +disable_so_mod_delayed_work_on_fndecl_14497 mod_delayed_work_on fndecl 1-4 14497 NULL
141909 +disable_so_dma_addr_rx_14500 dma_addr rx 0 14500 NULL nohasharray
141910 +disable_so__rtl92de_signal_scale_mapping_fndecl_14500 _rtl92de_signal_scale_mapping fndecl 0-2 14500 &disable_so_dma_addr_rx_14500
141911 +disable_so_cp_hqd_pq_rptr_report_addr_hi_hqd_registers_14512 cp_hqd_pq_rptr_report_addr_hi hqd_registers 0 14512 NULL
141912 +disable_so_snd_emu1010_internal_clock_info_fndecl_14514 snd_emu1010_internal_clock_info fndecl 0 14514 NULL
141913 +disable_so_nicvf_queue_reg_write_fndecl_14519 nicvf_queue_reg_write fndecl 3-4 14519 NULL
141914 +disable_so_icsk_user_timeout_inet_connection_sock_14528 icsk_user_timeout inet_connection_sock 0 14528 NULL
141915 +disable_so_gcm_hash_assoc_remain_continue_fndecl_14530 gcm_hash_assoc_remain_continue fndecl 0 14530 NULL
141916 +disable_so_get_max_engine_clock_in_mhz_fndecl_14540 get_max_engine_clock_in_mhz fndecl 0 14540 NULL
141917 +disable_so_port_snd_seq_addr_14543 port snd_seq_addr 0 14543 NULL
141918 +disable_so_nouveau_pmops_runtime_resume_fndecl_14545 nouveau_pmops_runtime_resume fndecl 0 14545 NULL
141919 +disable_so_timeout_vardecl_nf_conntrack_netbios_ns_c_14547 timeout vardecl_nf_conntrack_netbios_ns.c 0 14547 NULL
141920 +disable_so_cik_get_gpu_clock_counter_fndecl_14557 cik_get_gpu_clock_counter fndecl 0 14557 NULL
141921 +disable_so_addrconf_fixup_forwarding_fndecl_14567 addrconf_fixup_forwarding fndecl 0-3 14567 NULL
141922 +disable_so_batadv_nc_hash_choose_fndecl_14575 batadv_nc_hash_choose fndecl 0-2 14575 NULL
141923 +disable_so_pbl_addr_iwch_reg_user_mr_resp_14576 pbl_addr iwch_reg_user_mr_resp 0 14576 NULL
141924 +disable_so_m48t59_rtc_read_time_fndecl_14585 m48t59_rtc_read_time fndecl 0 14585 NULL
141925 +disable_so_read_tsc_fndecl_14589 read_tsc fndecl 0 14589 NULL
141926 +disable_so_rtsc_min_fndecl_14591 rtsc_min fndecl 3-4 14591 NULL
141927 +disable_so_bank_addr_snd_ymfpci_voice_14595 bank_addr snd_ymfpci_voice 0 14595 NULL
141928 +disable_so_hpi_bitstream_get_activity_fndecl_14606 hpi_bitstream_get_activity fndecl 0 14606 NULL
141929 +disable_so_prandom_seed_early_fndecl_14613 prandom_seed_early fndecl 2 14613 NULL
141930 +disable_so_cmd_cons_dma_addr_qlcnic_hostrq_tx_ctx_14615 cmd_cons_dma_addr qlcnic_hostrq_tx_ctx 0 14615 NULL
141931 +disable_so_shash_async_import_fndecl_14618 shash_async_import fndecl 0 14618 NULL
141932 +disable_so_osc_clock_freq_drx_common_attr_14640 osc_clock_freq drx_common_attr 0 14640 NULL
141933 +disable_so_freq_ath5k_edge_power_14657 freq ath5k_edge_power 0 14657 NULL
141934 +disable_so_td_addr_c67x00_td_14658 td_addr c67x00_td 0 14658 NULL
141935 +disable_so_dma_addr_whc_std_14663 dma_addr whc_std 0 14663 NULL nohasharray
141936 +disable_so_elfcorehdr_addr_vardecl_14663 elfcorehdr_addr vardecl 0 14663 &disable_so_dma_addr_whc_std_14663
141937 +disable_so_ene_set_reg_addr_fndecl_14666 ene_set_reg_addr fndecl 2 14666 NULL
141938 +disable_so_fbk_divider_panel_info_14668 fbk_divider panel_info 0 14668 NULL
141939 +disable_so_bytes_snd_pcm_oss_runtime_14669 bytes snd_pcm_oss_runtime 0 14669 NULL
141940 +disable_so_vadc_hw_settle_time_from_dt_fndecl_14670 vadc_hw_settle_time_from_dt fndecl 0-1 14670 NULL
141941 +disable_so_crypto842_mod_init_fndecl_14677 crypto842_mod_init fndecl 0 14677 NULL
141942 +disable_so_max77693_set_timeout_fndecl_14678 max77693_set_timeout fndecl 2 14678 NULL
141943 +disable_so_mtt_base_addr_h_mlx4_qp_context_14690 mtt_base_addr_h mlx4_qp_context 0 14690 NULL
141944 +disable_so_mtt_base_addr_l_mlx4_srq_context_14691 mtt_base_addr_l mlx4_srq_context 0 14691 NULL
141945 +disable_so_fib_info_hash_size_vardecl_fib_semantics_c_14699 fib_info_hash_size vardecl_fib_semantics.c 0 14699 NULL
141946 +disable_so___addr_hash_fndecl_14702 __addr_hash fndecl 0-3-4 14702 NULL
141947 +disable_so_rise_time_lp8788_bl_config_14703 rise_time lp8788_bl_config 0 14703 NULL
141948 +disable_so_ebitmap_start_positive_fndecl_14708 ebitmap_start_positive fndecl 0 14708 NULL
141949 +disable_so_ssb_chipco_watchdog_timer_set_wdt_fndecl_14712 ssb_chipco_watchdog_timer_set_wdt fndecl 2-0 14712 NULL
141950 +disable_so_saddr_ipq_14715 saddr ipq 0 14715 NULL
141951 +disable_so_il4965_math_div_round_fndecl_14717 il4965_math_div_round fndecl 1-2 14717 NULL
141952 +disable_so_dac_mmap_min_addr_vardecl_14725 dac_mmap_min_addr vardecl 0 14725 NULL
141953 +disable_so_show_sas_end_dev_initiator_response_timeout_fndecl_14730 show_sas_end_dev_initiator_response_timeout fndecl 0 14730 NULL
141954 +disable_so_md5_mod_init_fndecl_14761 md5_mod_init fndecl 0 14761 NULL
141955 +disable_so_lasttime_htcp_14766 lasttime htcp 0 14766 NULL
141956 +disable_so_cac_time_ms_mwifiex_radar_params_14775 cac_time_ms mwifiex_radar_params 0 14775 NULL
141957 +disable_so_rs5c348_rtc_set_time_fndecl_14776 rs5c348_rtc_set_time fndecl 0 14776 NULL
141958 +disable_so_o2net_sc_queue_delayed_work_fndecl_14778 o2net_sc_queue_delayed_work fndecl 3 14778 NULL
141959 +disable_so_phonet_address_del_fndecl_14787 phonet_address_del fndecl 0 14787 NULL
141960 +disable_so_efx_phc_adjtime_fndecl_14790 efx_phc_adjtime fndecl 0 14790 NULL
141961 +disable_so_lzo_compress_pages_fndecl_14806 lzo_compress_pages fndecl 3-4 14806 NULL
141962 +disable_so_chv_gpu_freq_fndecl_14811 chv_gpu_freq fndecl 0-2 14811 NULL nohasharray
141963 +disable_so_nbytes_blkcipher_walk_14811 nbytes blkcipher_walk 0 14811 &disable_so_chv_gpu_freq_fndecl_14811
141964 +disable_so_addr___mem_14815 addr __mem 0 14815 NULL
141965 +disable_so___cpufreq_governor_fndecl_14821 __cpufreq_governor fndecl 0 14821 NULL nohasharray
141966 +disable_so_hash_lo_smsc95xx_priv_14821 hash_lo smsc95xx_priv 0 14821 &disable_so___cpufreq_governor_fndecl_14821
141967 +disable_so_naddr_ipath_user_sdma_pkt_14830 naddr ipath_user_sdma_pkt 0 14830 NULL
141968 +disable_so_address_pci_mmcfg_region_14831 address pci_mmcfg_region 0 14831 NULL
141969 +disable_so_crypto_ecb_module_init_fndecl_14834 crypto_ecb_module_init fndecl 0 14834 NULL
141970 +disable_so_last_host_tsc_kvm_vcpu_arch_14836 last_host_tsc kvm_vcpu_arch 0 14836 NULL
141971 +disable_so_eir_has_uuids_fndecl_14845 eir_has_uuids fndecl 2 14845 NULL
141972 +disable_so_b_addr_xfer_desc_buffer_14849 b_addr xfer_desc_buffer 0 14849 NULL
141973 +disable_so_xtal_freq_mxl5005s_config_14852 xtal_freq mxl5005s_config 0 14852 NULL
141974 +disable_so_pvclock_tsc_khz_fndecl_14859 pvclock_tsc_khz fndecl 0 14859 NULL
141975 +disable_so_isl1208_rtc_interrupt_fndecl_14861 isl1208_rtc_interrupt fndecl 0 14861 NULL
141976 +disable_so_dwell_time_passive_wmi_start_scan_arg_14866 dwell_time_passive wmi_start_scan_arg 0 14866 NULL
141977 +disable_so_writeout_period_time_vardecl_page_writeback_c_14870 writeout_period_time vardecl_page-writeback.c 0 14870 NULL
141978 +disable_so_valid_mtrr_type_fndecl_14883 valid_mtrr_type fndecl 1 14883 NULL
141979 +disable_so_dev_idx_sockaddr_nfc_llcp_14893 dev_idx sockaddr_nfc_llcp 0 14893 NULL
141980 +disable_so_addr_nv50_disp_mthd_chan_14896 addr nv50_disp_mthd_chan 0 14896 NULL
141981 +disable_so_ts_paddr_end_ath_hw_14898 ts_paddr_end ath_hw 0 14898 NULL
141982 +disable_so_get_urb_to_r8a66597_addr_fndecl_14901 get_urb_to_r8a66597_addr fndecl 0 14901 NULL
141983 +disable_so_remote_ref_time_lp_14915 remote_ref_time lp 0 14915 NULL
141984 +disable_so_bitmap_id_iscsi_conn_14920 bitmap_id iscsi_conn 0 14920 NULL
141985 +disable_so_root_btrfs_delayed_data_ref_14922 root btrfs_delayed_data_ref 0 14922 NULL
141986 +disable_so_c67x00_ll_read_mem_le16_fndecl_14937 c67x00_ll_read_mem_le16 fndecl 2-4 14937 NULL
141987 +disable_so_addr_sz_picolcd_data_14956 addr_sz picolcd_data 0 14956 NULL
141988 +disable_so_xhci_calculate_intel_u1_timeout_fndecl_14959 xhci_calculate_intel_u1_timeout fndecl 0 14959 NULL
141989 +disable_so_crypto_init_shash_ops_fndecl_14968 crypto_init_shash_ops fndecl 0 14968 NULL
141990 +disable_so_cputime_to_compat_timeval_fndecl_14969 cputime_to_compat_timeval fndecl 1 14969 NULL nohasharray
141991 +disable_so_cpufreq_set_cur_state_fndecl_14969 cpufreq_set_cur_state fndecl 1 14969 &disable_so_cputime_to_compat_timeval_fndecl_14969
141992 +disable_so_start_time_flakey_c_14970 start_time flakey_c 0 14970 NULL
141993 +disable_so_snd_asihpi_sampleclock_add_fndecl_14973 snd_asihpi_sampleclock_add fndecl 0 14973 NULL
141994 +disable_so_addr_sky2_tx_le_14974 addr sky2_tx_le 0 14974 NULL
141995 +disable_so_mcfg_addr_acpi_pci_root_14978 mcfg_addr acpi_pci_root 0 14978 NULL
141996 +disable_so_cryptd_hash_import_fndecl_14985 cryptd_hash_import fndecl 0 14985 NULL
141997 +disable_so_cac_start_time_wireless_dev_14998 cac_start_time wireless_dev 0 14998 NULL
141998 +disable_so_inaddr_any_override_acl_subject_label_15014 inaddr_any_override acl_subject_label 0 15014 NULL
141999 +disable_so_dma_addr_cmdQ_ce_15023 dma_addr cmdQ_ce 0 15023 NULL nohasharray
142000 +disable_so_affs_init_bitmap_fndecl_15023 affs_init_bitmap fndecl 0 15023 &disable_so_dma_addr_cmdQ_ce_15023
142001 +disable_so_select_addr_qla8xxx_minidump_entry_mux_15025 select_addr qla8xxx_minidump_entry_mux 0 15025 NULL
142002 +disable_so_frequency_cx24113_state_15031 frequency cx24113_state 0 15031 NULL
142003 +disable_so_port0_phy_addr_falcon_nvconfig_board_v2_15034 port0_phy_addr falcon_nvconfig_board_v2 0 15034 NULL
142004 +disable_so_snd_dice_transaction_get_clock_source_fndecl_15041 snd_dice_transaction_get_clock_source fndecl 0 15041 NULL
142005 +disable_so_valid_time_prefix_cacheinfo_15043 valid_time prefix_cacheinfo 0 15043 NULL
142006 +disable_so_acpi_get_cpuid_fndecl_15055 acpi_get_cpuid fndecl 0-3 15055 NULL
142007 +disable_so_faddr_rds_info_message_15057 faddr rds_info_message 0 15057 NULL
142008 +disable_so_hsync_pulse_width_lo_oaktrail_timing_info_15059 hsync_pulse_width_lo oaktrail_timing_info 0 15059 NULL
142009 +disable_so_mthca_WRITE_MTT_fndecl_15060 mthca_WRITE_MTT fndecl 0-3 15060 NULL
142010 +disable_so_ath9k_iowrite32_fndecl_15073 ath9k_iowrite32 fndecl 2 15073 NULL
142011 +disable_so_uid_max_xt_owner_match_info_15077 uid_max xt_owner_match_info 0 15077 NULL
142012 +disable_so_addr_low_mcp_kreq_ether_recv_15081 addr_low mcp_kreq_ether_recv 0 15081 NULL
142013 +disable_so_gem_get_device_address_fndecl_15093 gem_get_device_address fndecl 0 15093 NULL
142014 +disable_so_s5m8767_rtc_set_time_reg_fndecl_15094 s5m8767_rtc_set_time_reg fndecl 0 15094 NULL
142015 +disable_so_host_side_addr_fit_sg_descriptor_15098 host_side_addr fit_sg_descriptor 0 15098 NULL
142016 +disable_so_gtt_start_gpu_addr_kfd_dev_15100 gtt_start_gpu_addr kfd_dev 0 15100 NULL
142017 +disable_so_device_timestamp_ieee80211_rx_status_15103 device_timestamp ieee80211_rx_status 0 15103 NULL
142018 +disable_so_tcp_fastopen_reset_cipher_fndecl_15116 tcp_fastopen_reset_cipher fndecl 2 15116 NULL
142019 +disable_so_acpi_leave_sleep_state_prep_fndecl_15121 acpi_leave_sleep_state_prep fndecl 0-1 15121 NULL
142020 +disable_so_suspend_freq_cpufreq_policy_15133 suspend_freq cpufreq_policy 0 15133 NULL
142021 +disable_so___usb_control_msg_fndecl_15142 __usb_control_msg fndecl 8-2-9-5-0-4-6-3 15142 NULL
142022 +disable_so_sin6_scope_id_sockaddr_in6_15151 sin6_scope_id sockaddr_in6 0 15151 NULL
142023 +disable_so_ufshcd_devfreq_target_fndecl_15152 ufshcd_devfreq_target fndecl 0 15152 NULL
142024 +disable_so_dma_addr_wbsd_host_15158 dma_addr wbsd_host 0 15158 NULL
142025 +disable_so_timer_in_use_old_nes_hw_tune_timer_15174 timer_in_use_old nes_hw_tune_timer 0 15174 NULL
142026 +disable_so_mce_log_therm_throt_event_fndecl_15178 mce_log_therm_throt_event fndecl 1 15178 NULL nohasharray
142027 +disable_so_mce_write_fndecl_15178 mce_write fndecl 3-0 15178 &disable_so_mce_log_therm_throt_event_fndecl_15178
142028 +disable_so_expires_cpu_timer_list_15182 expires cpu_timer_list 0 15182 NULL
142029 +disable_so_address_drm_dp_aux_msg_15184 address drm_dp_aux_msg 0 15184 NULL
142030 +disable_so_eip_tss_segment_32_15186 eip tss_segment_32 0 15186 NULL
142031 +disable_so_snd_als4000_interrupt_fndecl_15191 snd_als4000_interrupt fndecl 1 15191 NULL nohasharray
142032 +disable_so_pcf2123_rtc_read_time_fndecl_15191 pcf2123_rtc_read_time fndecl 0 15191 &disable_so_snd_als4000_interrupt_fndecl_15191
142033 +disable_so_rcx_kvm_regs_15192 rcx kvm_regs 0 15192 NULL
142034 +disable_so_dma_addr_s_rxd_os_15193 dma_addr s_rxd_os 0 15193 NULL
142035 +disable_so_retrans_time_ifla_cacheinfo_15201 retrans_time ifla_cacheinfo 0 15201 NULL
142036 +disable_so_cxd2820r_sleep_t_fndecl_15204 cxd2820r_sleep_t fndecl 0 15204 NULL
142037 +disable_so_bcma_core_pcie2_war_delay_perst_enab_fndecl_15208 bcma_core_pcie2_war_delay_perst_enab fndecl 0 15208 NULL
142038 +disable_so_btrfs_delayed_inode_reserve_metadata_fndecl_15215 btrfs_delayed_inode_reserve_metadata fndecl 0 15215 NULL
142039 +disable_so___iowrite64_copy_fndecl_15216 __iowrite64_copy fndecl 3 15216 NULL nohasharray
142040 +disable_so_ext3fs_dirhash_fndecl_15216 ext3fs_dirhash fndecl 2 15216 &disable_so___iowrite64_copy_fndecl_15216
142041 +disable_so_nilfs_btree_propagate_fndecl_15225 nilfs_btree_propagate fndecl 0 15225 NULL
142042 +disable_so_sha256_ssse3_update_fndecl_15226 sha256_ssse3_update fndecl 3 15226 NULL
142043 +disable_so_target_addr_i2400m_bootrom_header_15227 target_addr i2400m_bootrom_header 0 15227 NULL
142044 +disable_so_ip_vs_addr_equal_fndecl_15229 ip_vs_addr_equal fndecl 1 15229 NULL
142045 +disable_so_matroxfb_PLL_calcclock_fndecl_15230 matroxfb_PLL_calcclock fndecl 2-3-0 15230 NULL
142046 +disable_so_int_timeout_msb_data_15245 int_timeout msb_data 0 15245 NULL nohasharray
142047 +disable_so_check_quotactl_permission_fndecl_15245 check_quotactl_permission fndecl 4-0-3-2 15245 &disable_so_int_timeout_msb_data_15245
142048 +disable_so_expires_crash_uid_15248 expires crash_uid 0 15248 NULL
142049 +disable_so_mul_n_basecase_fndecl_15258 mul_n_basecase fndecl 4 15258 NULL
142050 +disable_so_crypto_xcbc_digest_update_fndecl_15259 crypto_xcbc_digest_update fndecl 3 15259 NULL
142051 +disable_so_first_jiffies_ati_remote_15260 first_jiffies ati_remote 0 15260 NULL
142052 +disable_so___get_hash_thresh_fndecl_15268 __get_hash_thresh fndecl 2 15268 NULL
142053 +disable_so_isoc_in_endpointaddr_au0828_dev_15269 isoc_in_endpointaddr au0828_dev 0 15269 NULL
142054 +disable_so_crypto_ctxsize_fndecl_15285 crypto_ctxsize fndecl 0 15285 NULL
142055 +disable_so_max_rx_ip_addr_qlcnic_info_15295 max_rx_ip_addr qlcnic_info 0 15295 NULL nohasharray
142056 +disable_so_mtrr_add_fndecl_15295 mtrr_add fndecl 1-2 15295 &disable_so_max_rx_ip_addr_qlcnic_info_15295
142057 +disable_so_plugged_delay_bau_control_15298 plugged_delay bau_control 0 15298 NULL
142058 +disable_so_skcipher_async_cb_fndecl_15303 skcipher_async_cb fndecl 2 15303 NULL
142059 +disable_so_bytes_bitmap_storage_15310 bytes bitmap_storage 0 15310 NULL
142060 +disable_so_xhci_calculate_u1_timeout_fndecl_15314 xhci_calculate_u1_timeout fndecl 0 15314 NULL nohasharray
142061 +disable_so_sym_getpciclock_fndecl_15314 sym_getpciclock fndecl 0 15314 &disable_so_xhci_calculate_u1_timeout_fndecl_15314 nohasharray
142062 +disable_so_major_hash_ocfs2_dx_hinfo_15314 major_hash ocfs2_dx_hinfo 0 15314 &disable_so_sym_getpciclock_fndecl_15314
142063 +disable_so_ns_delay_scale_fndecl_15317 ns_delay_scale fndecl 4 15317 NULL
142064 +disable_so_addr_atiixp_dma_desc_15333 addr atiixp_dma_desc 0 15333 NULL
142065 +disable_so_logicalBlockNum_kernel_lb_addr_15336 logicalBlockNum kernel_lb_addr 0 15336 NULL
142066 +disable_so_last_rx_timestamp_i40e_ring_15342 last_rx_timestamp i40e_ring 0 15342 NULL
142067 +disable_so_ifa_index_ifaddrmsg_15348 ifa_index ifaddrmsg 0 15348 NULL
142068 +disable_so_timing_reg_mtk_i2c_15349 timing_reg mtk_i2c 0 15349 NULL
142069 +disable_so_msr_srcimp_desc_15353 msr srcimp_desc 0 15353 NULL
142070 +disable_so_r2c_val_fc2580_freq_regs_15359 r2c_val fc2580_freq_regs 0 15359 NULL
142071 +disable_so_xfer_udelay_nci_spi_15364 xfer_udelay nci_spi 0 15364 NULL
142072 +disable_so_hash_key_type_and_desc_fndecl_15370 hash_key_type_and_desc fndecl 0 15370 NULL
142073 +disable_so_set_window_latch_addr_flash_info_15372 set_window latch_addr_flash_info 1 15372 NULL
142074 +disable_so_host_addr_ipw2100_bd_15376 host_addr ipw2100_bd 0 15376 NULL
142075 +disable_so_eeprom_addr_state_15380 eeprom_addr state 0 15380 NULL
142076 +disable_so_sys_mq_timedreceive_fndecl_15392 sys_mq_timedreceive fndecl 1-3 15392 NULL
142077 +disable_so_ghash_async_update_fndecl_15422 ghash_async_update fndecl 0 15422 NULL
142078 +disable_so___send_signal_fndecl_15424 __send_signal fndecl 0-1 15424 NULL
142079 +disable_so_edi_user_regs_struct32_15430 edi user_regs_struct32 0 15430 NULL
142080 +disable_so_perf_cpu_time_max_percent_handler_fndecl_15448 perf_cpu_time_max_percent_handler fndecl 0 15448 NULL
142081 +disable_so_phy_register_fixup_for_uid_fndecl_15449 phy_register_fixup_for_uid fndecl 0 15449 NULL
142082 +disable_so_vpd_address_write_fndecl_15453 vpd_address_write fndecl 0-2-3 15453 NULL
142083 +disable_so_schedule_timeout_killable_fndecl_15458 schedule_timeout_killable fndecl 1-0 15458 NULL
142084 +disable_so_a21_wdt_set_timeout_fndecl_15463 a21_wdt_set_timeout fndecl 2 15463 NULL
142085 +disable_so_reg_val_pll_div_15464 reg_val pll_div 0 15464 NULL
142086 +disable_so_adjfreq_ptp_clock_info_15468 adjfreq ptp_clock_info 2 15468 NULL
142087 +disable_so___nlm_hash_addr6_fndecl_15486 __nlm_hash_addr6 fndecl 0 15486 NULL
142088 +disable_so_addr_sgentry_15489 addr sgentry 0 15489 NULL
142089 +disable_so_psb_sgx_interrupt_fndecl_15502 psb_sgx_interrupt fndecl 2-3 15502 NULL
142090 +disable_so_clk_divider_recalc_rate_fndecl_15503 clk_divider_recalc_rate fndecl 2-0 15503 NULL
142091 +disable_so_xferq_addr_hi_fcoe_kwqe_conn_offload2_15506 xferq_addr_hi fcoe_kwqe_conn_offload2 0 15506 NULL
142092 +disable_so_enable_usb3_lpm_timeout_hc_driver_15513 enable_usb3_lpm_timeout hc_driver 0 15513 NULL
142093 +disable_so_i2c_addr_lg2160_config_15521 i2c_addr lg2160_config 0 15521 NULL
142094 +disable_so_timeout_ms_nvme_passthru_cmd_15526 timeout_ms nvme_passthru_cmd 0 15526 NULL
142095 +disable_so_vm_cr_msr_nested_state_15529 vm_cr_msr nested_state 0 15529 NULL
142096 +disable_so_ocfs2_xattr_find_divide_pos_fndecl_15532 ocfs2_xattr_find_divide_pos fndecl 0 15532 NULL
142097 +disable_so_async_schedule_domain_fndecl_15534 async_schedule_domain fndecl 0 15534 NULL
142098 +disable_so_last_cqm_event_signal_ieee80211_if_managed_15539 last_cqm_event_signal ieee80211_if_managed 0 15539 NULL
142099 +disable_so_aic79xx_seltime_vardecl_aic79xx_osm_c_15542 aic79xx_seltime vardecl_aic79xx_osm.c 0 15542 NULL
142100 +disable_so_hrtimer_interval_ms_pmu_15546 hrtimer_interval_ms pmu 0 15546 NULL
142101 +disable_so_address_hi_msi_msg_15552 address_hi msi_msg 0 15552 NULL
142102 +disable_so_test_and_clear_bit_le_fndecl_15554 test_and_clear_bit_le fndecl 1 15554 NULL
142103 +disable_so_snd_echo_clock_source_put_fndecl_15557 snd_echo_clock_source_put fndecl 0 15557 NULL
142104 +disable_so_wait_for_completion_interruptible_timeout_fndecl_15561 wait_for_completion_interruptible_timeout fndecl 0-2 15561 NULL
142105 +disable_so_recover_width_atiixp_ide_timing_15562 recover_width atiixp_ide_timing 0 15562 NULL
142106 +disable_so_start_int_poll_timer_fndecl_15566 start_int_poll_timer fndecl 2 15566 NULL
142107 +disable_so_runtime_error_dev_pm_info_15567 runtime_error dev_pm_info 0 15567 NULL
142108 +disable_so_rdmsrl_on_cpu_fndecl_15568 rdmsrl_on_cpu fndecl 0-1 15568 NULL
142109 +disable_so_test_ahash_cycles_fndecl_15585 test_ahash_cycles fndecl 0-3 15585 NULL
142110 +disable_so_freq_hz_xc5000_priv_15586 freq_hz xc5000_priv 0 15586 NULL
142111 +disable_so_timeout_d_tpm_vendor_specific_15591 timeout_d tpm_vendor_specific 0 15591 NULL nohasharray
142112 +disable_so_laddr_rds_info_connection_15591 laddr rds_info_connection 0 15591 &disable_so_timeout_d_tpm_vendor_specific_15591
142113 +disable_so_be_get_rss_hash_opts_fndecl_15601 be_get_rss_hash_opts fndecl 0 15601 NULL
142114 +disable_so_shadow_addr_kvm_shadow_walk_iterator_15604 shadow_addr kvm_shadow_walk_iterator 0 15604 NULL
142115 +disable_so_hactive_lo_detailed_pixel_timing_15606 hactive_lo detailed_pixel_timing 0 15606 NULL
142116 +disable_so_SYSC_getpgid_fndecl_15618 SYSC_getpgid fndecl 0-1 15618 NULL
142117 +disable_so_inet_dump_ifaddr_fndecl_15621 inet_dump_ifaddr fndecl 0 15621 NULL
142118 +disable_so_sjw_t_pucan_timing_slow_15625 sjw_t pucan_timing_slow 0 15625 NULL
142119 +disable_so_slave_id_snd_timer_instance_15628 slave_id snd_timer_instance 0 15628 NULL nohasharray
142120 +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
142121 +disable_so_cmin_flt_signal_struct_15630 cmin_flt signal_struct 0 15630 NULL
142122 +disable_so_sg_busaddr_ips_scb_15639 sg_busaddr ips_scb 0 15639 NULL
142123 +disable_so_rq_timeout_rpc_rqst_15640 rq_timeout rpc_rqst 0 15640 NULL
142124 +disable_so_hpi_bitstream_set_data_polarity_fndecl_15646 hpi_bitstream_set_data_polarity fndecl 0-1 15646 NULL
142125 +disable_so_bs_rdiv_cx24113_state_15647 bs_rdiv cx24113_state 0 15647 NULL
142126 +disable_so_addr_lo_sli4_sge_15650 addr_lo sli4_sge 0 15650 NULL
142127 +disable_so_sctp_getsockopt_primary_addr_fndecl_15660 sctp_getsockopt_primary_addr fndecl 0 15660 NULL
142128 +disable_so_chip_uptime_esas2r_adapter_15661 chip_uptime esas2r_adapter 0 15661 NULL
142129 +disable_so_rx_statistics_jiffies_iwl_priv_15670 rx_statistics_jiffies iwl_priv 0 15670 NULL
142130 +disable_so_ablkcipher_walk_phys_fndecl_15671 ablkcipher_walk_phys fndecl 0 15671 NULL
142131 +disable_so_test_bitmaps_and_extents_fndecl_15676 test_bitmaps_and_extents fndecl 0 15676 NULL
142132 +disable_so_cur_rx_coal_timeval_vnic_cq_15695 cur_rx_coal_timeval vnic_cq 0 15695 NULL
142133 +disable_so_ds_addr_bus_dma_segment_15697 ds_addr bus_dma_segment 0 15697 NULL
142134 +disable_so_hrtimer_forward_fndecl_15719 hrtimer_forward fndecl 0 15719 NULL
142135 +disable_so_pmc_sleep_tmr_open_fndecl_15722 pmc_sleep_tmr_open fndecl 0 15722 NULL
142136 +disable_so_ovol_updated_control_runtime_15730 ovol_updated control_runtime 0 15730 NULL
142137 +disable_so___btrfs_run_delayed_refs_fndecl_15751 __btrfs_run_delayed_refs fndecl 0 15751 NULL
142138 +disable_so_at803x_ack_interrupt_fndecl_15758 at803x_ack_interrupt fndecl 0 15758 NULL
142139 +disable_so_phy_addr_bnx2_15762 phy_addr bnx2 0 15762 NULL
142140 +disable_so_acpi_os_sleep_fndecl_15766 acpi_os_sleep fndecl 1 15766 NULL
142141 +disable_so_mceusb_dev_driver_init_fndecl_15775 mceusb_dev_driver_init fndecl 0 15775 NULL
142142 +disable_so_iowrite32be_fndecl_15786 iowrite32be fndecl 1 15786 NULL
142143 +disable_so_rp1_freq_intel_gen6_power_mgmt_15787 rp1_freq intel_gen6_power_mgmt 0 15787 NULL
142144 +disable_so_mapped_rem_addr_nes_cm_info_15788 mapped_rem_addr nes_cm_info 0 15788 NULL
142145 +disable_so_bulkin_endpoint_addr_rsi_91x_usbdev_15790 bulkin_endpoint_addr rsi_91x_usbdev 0 15790 NULL
142146 +disable_so_connected_addr_rds_info_socket_15792 connected_addr rds_info_socket 0 15792 NULL
142147 +disable_so_usc_enable_aux_clock_fndecl_15795 usc_enable_aux_clock fndecl 2 15795 NULL
142148 +disable_so_add_delayed_tree_ref_fndecl_15797 add_delayed_tree_ref fndecl 11-5-6-7-8-9 15797 NULL
142149 +disable_so_wow_intr_before_sleep_ath_softc_15802 wow_intr_before_sleep ath_softc 0 15802 NULL
142150 +disable_so_rgb_time_bd2802_led_platform_data_15808 rgb_time bd2802_led_platform_data 0 15808 NULL
142151 +disable_so_intel_sdvo_get_slave_addr_fndecl_15818 intel_sdvo_get_slave_addr fndecl 0 15818 NULL
142152 +disable_so_tsc_start_vardecl_tsc_c_15853 tsc_start vardecl_tsc.c 0 15853 NULL
142153 +disable_so_get_cycle_time_fndecl_15861 get_cycle_time fndecl 0 15861 NULL
142154 +disable_so_cookie_dmaengine_pcm_runtime_data_15862 cookie dmaengine_pcm_runtime_data 0 15862 NULL nohasharray
142155 +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
142156 +disable_so_vactive_timing_15863 vactive timing 0 15863 NULL
142157 +disable_so_management_agent_address_sbp2_target_15871 management_agent_address sbp2_target 0 15871 NULL
142158 +disable_so_i2c_check_addr_busy_fndecl_15889 i2c_check_addr_busy fndecl 2 15889 NULL
142159 +disable_so_db_rec_addr_mlx4_cq_context_15890 db_rec_addr mlx4_cq_context 0 15890 NULL
142160 +disable_so_addr_wil_memio_block_15893 addr wil_memio_block 0 15893 NULL
142161 +disable_so_interrupt_out_size_usb_serial_port_15896 interrupt_out_size usb_serial_port 0 15896 NULL
142162 +disable_so_wait_for_completion_killable_fndecl_15899 wait_for_completion_killable fndecl 0 15899 NULL
142163 +disable_so_m48t35_read_time_fndecl_15900 m48t35_read_time fndecl 0 15900 NULL
142164 +disable_so_ath9k_btcoex_handle_interrupt_fndecl_15912 ath9k_btcoex_handle_interrupt fndecl 2 15912 NULL
142165 +disable_so_get_key_lib80211_crypto_ops_15916 get_key lib80211_crypto_ops 0-2 15916 NULL
142166 +disable_so_tw_sport_inet_timewait_sock_15928 tw_sport inet_timewait_sock 0 15928 NULL
142167 +disable_so_crypto_xor_byte_fndecl_15934 crypto_xor_byte fndecl 3 15934 NULL
142168 +disable_so_nilfs_btree_promote_key_fndecl_15935 nilfs_btree_promote_key fndecl 4 15935 NULL
142169 +disable_so_irq_set_chip_data_fndecl_15945 irq_set_chip_data fndecl 1 15945 NULL
142170 +disable_so_retransmits_timed_out_fndecl_15952 retransmits_timed_out fndecl 3 15952 NULL
142171 +disable_so_titsc_config_wires_fndecl_15953 titsc_config_wires fndecl 0 15953 NULL
142172 +disable_so_cpufreq_quick_get_max_fndecl_15956 cpufreq_quick_get_max fndecl 0-1 15956 NULL
142173 +disable_so_verify_ptp_clock_info_15963 verify ptp_clock_info 4 15963 NULL
142174 +disable_so_gid_ceph_mds_caps_15966 gid ceph_mds_caps 0 15966 NULL
142175 +disable_so_mlx4_ib_update_cache_on_guid_change_fndecl_15969 mlx4_ib_update_cache_on_guid_change fndecl 2-3 15969 NULL
142176 +disable_so_musb_write_txfunaddr_fndecl_15974 musb_write_txfunaddr fndecl 2-3 15974 NULL
142177 +disable_so_acpi_ut_add_address_range_fndecl_16007 acpi_ut_add_address_range fndecl 1-2-3-0 16007 NULL
142178 +disable_so_dma_addr_rsxx_dma_16020 dma_addr rsxx_dma 0 16020 NULL
142179 +disable_so_setup_acpi_object_addr_handler_16031 setup acpi_object_addr_handler 0 16031 NULL
142180 +disable_so_idletimer_tg_init_fndecl_16041 idletimer_tg_init fndecl 0 16041 NULL
142181 +disable_so_msdu_paddr_htt_mgmt_tx_desc_16042 msdu_paddr htt_mgmt_tx_desc 0 16042 NULL
142182 +disable_so_radeon_atombios_parse_pplib_non_clock_info_fndecl_16044 radeon_atombios_parse_pplib_non_clock_info fndecl 2 16044 NULL
142183 +disable_so_scale_stime_fndecl_16047 scale_stime fndecl 1-2-3-0 16047 NULL
142184 +disable_so_wl12xx_enable_interrupts_fndecl_16057 wl12xx_enable_interrupts fndecl 0 16057 NULL
142185 +disable_so_paddr_persistent_ram_zone_16058 paddr persistent_ram_zone 0 16058 NULL
142186 +disable_so_get_dst_timing_fndecl_16070 get_dst_timing fndecl 0 16070 NULL
142187 +disable_so_max_init_timeo_sctp_association_16072 max_init_timeo sctp_association 0 16072 NULL
142188 +disable_so_update_gid_table_fndecl_16082 update_gid_table fndecl 2 16082 NULL
142189 +disable_so_dma_addr_xilly_mapping_16083 dma_addr xilly_mapping 0 16083 NULL
142190 +disable_so_bt_wait_time_ath_btcoex_16086 bt_wait_time ath_btcoex 0 16086 NULL
142191 +disable_so_cfg80211_rx_unexpected_4addr_frame_fndecl_16088 cfg80211_rx_unexpected_4addr_frame fndecl 3 16088 NULL
142192 +disable_so_ip6_rt_gc_timeout_netns_sysctl_ipv6_16090 ip6_rt_gc_timeout netns_sysctl_ipv6 0 16090 NULL nohasharray
142193 +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
142194 +disable_so_wimax_addr_scnprint_fndecl_16095 wimax_addr_scnprint fndecl 4 16095 NULL
142195 +disable_so_airspy_s_frequency_fndecl_16098 airspy_s_frequency fndecl 0 16098 NULL
142196 +disable_so_crypto_blkcipher_ctxsize_fndecl_16105 crypto_blkcipher_ctxsize fndecl 0 16105 NULL
142197 +disable_so_blk_addr_f2fs_io_info_16107 blk_addr f2fs_io_info 0 16107 NULL
142198 +disable_so_div_r0_pll_values_16109 div_r0 pll_values 0 16109 NULL
142199 +disable_so_slack_hold_time_dql_16111 slack_hold_time dql 0 16111 NULL
142200 +disable_so_iscsi_tpg_attrib_show_netif_timeout_fndecl_16119 iscsi_tpg_attrib_show_netif_timeout fndecl 0 16119 NULL
142201 +disable_so_crypto_inc_fndecl_16125 crypto_inc fndecl 2 16125 NULL
142202 +disable_so_dualwatch_jiffies_ivtv_16137 dualwatch_jiffies ivtv 0 16137 NULL nohasharray
142203 +disable_so_enable_irq_fndecl_16137 enable_irq fndecl 1 16137 &disable_so_dualwatch_jiffies_ivtv_16137
142204 +disable_so_alb_set_mac_address_fndecl_16150 alb_set_mac_address fndecl 0 16150 NULL
142205 +disable_so_do_sigtimedwait_fndecl_16152 do_sigtimedwait fndecl 0 16152 NULL
142206 +disable_so_sys_timerfd_create_fndecl_16155 sys_timerfd_create fndecl 2-1 16155 NULL
142207 +disable_so_xen_smp_send_reschedule_fndecl_16161 xen_smp_send_reschedule fndecl 1 16161 NULL nohasharray
142208 +disable_so_addrHigh_ulp_bde64_16161 addrHigh ulp_bde64 0 16161 &disable_so_xen_smp_send_reschedule_fndecl_16161
142209 +disable_so_storm_memset_spq_addr_fndecl_16172 storm_memset_spq_addr fndecl 2-3 16172 NULL
142210 +disable_so_inactivity_timeout_cfhsi_config_16173 inactivity_timeout cfhsi_config 0 16173 NULL nohasharray
142211 +disable_so_iwl_eeprom_query_addr_fndecl_16173 iwl_eeprom_query_addr fndecl 2-3 16173 &disable_so_inactivity_timeout_cfhsi_config_16173
142212 +disable_so_nmsrs_kvm_msr_list_16175 nmsrs kvm_msr_list 0 16175 NULL
142213 +disable_so_count_radeon_vce_clock_voltage_dependency_table_16180 count radeon_vce_clock_voltage_dependency_table 0 16180 NULL
142214 +disable_so_qla4_83xx_wr_reg_indirect_fndecl_16184 qla4_83xx_wr_reg_indirect fndecl 2-3 16184 NULL
142215 +disable_so_show_src_clock_fndecl_16195 show_src_clock fndecl 0 16195 NULL
142216 +disable_so_timeout_ncp_lock_ioctl_16196 timeout ncp_lock_ioctl 0 16196 NULL
142217 +disable_so_sctp_getsockopt_local_addrs_fndecl_16201 sctp_getsockopt_local_addrs fndecl 2 16201 NULL nohasharray
142218 +disable_so_wusb_set_dev_addr_fndecl_16201 wusb_set_dev_addr fndecl 3 16201 &disable_so_sctp_getsockopt_local_addrs_fndecl_16201
142219 +disable_so_ageing_time___bridge_info_16213 ageing_time __bridge_info 0 16213 NULL
142220 +disable_so_bd_list_addr_hi_bnx2i_login_request_16219 bd_list_addr_hi bnx2i_login_request 0 16219 NULL
142221 +disable_so_btrfs_delete_delayed_items_fndecl_16220 btrfs_delete_delayed_items fndecl 0 16220 NULL nohasharray
142222 +disable_so_sethdraddr_fndecl_16220 sethdraddr fndecl 0 16220 &disable_so_btrfs_delete_delayed_items_fndecl_16220
142223 +disable_so_ci_i2c_addr_netup_ci_state_16240 ci_i2c_addr netup_ci_state 0 16240 NULL
142224 +disable_so_hi_phys_addr_16280 hi phys_addr 0 16280 NULL
142225 +disable_so___chk_range_not_ok_fndecl_16282 __chk_range_not_ok fndecl 1-2 16282 NULL
142226 +disable_so_ocfs2_add_clusters_in_btree_fndecl_16283 ocfs2_add_clusters_in_btree fndecl 0-4 16283 NULL
142227 +disable_so_prev_task_link_tss_segment_32_16296 prev_task_link tss_segment_32 0 16296 NULL
142228 +disable_so_ad1889_load_adc_interrupt_count_fndecl_16303 ad1889_load_adc_interrupt_count fndecl 2 16303 NULL
142229 +disable_so_cp_mqd_base_addr_lo_cik_mqd_16307 cp_mqd_base_addr_lo cik_mqd 0 16307 NULL
142230 +disable_so_led_on_time_adp5520_leds_platform_data_16308 led_on_time adp5520_leds_platform_data 0 16308 NULL
142231 +disable_so_dma_addr_adf_etr_ring_data_16309 dma_addr adf_etr_ring_data 0 16309 NULL
142232 +disable_so_demod_address_s921_config_16312 demod_address s921_config 0 16312 NULL
142233 +disable_so_valid_lft_inet6_ifaddr_16318 valid_lft inet6_ifaddr 0 16318 NULL
142234 +disable_so_addr_boom_rx_desc_16324 addr boom_rx_desc 0 16324 NULL
142235 +disable_so_ghash_async_digest_fndecl_16326 ghash_async_digest fndecl 0 16326 NULL
142236 +disable_so_i_atime_f2fs_inode_16339 i_atime f2fs_inode 0 16339 NULL
142237 +disable_so_update_bus_time_fndecl_16343 update_bus_time fndecl 0 16343 NULL
142238 +disable_so_addr_st_register_16344 addr st_register 0 16344 NULL nohasharray
142239 +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
142240 +disable_so_pll_prediv_dibx000_bandwidth_config_16345 pll_prediv dibx000_bandwidth_config 0 16345 NULL
142241 +disable_so_delay_kbd_repeat_16363 delay kbd_repeat 0 16363 NULL
142242 +disable_so_rproc_elf_get_boot_addr_fndecl_16372 rproc_elf_get_boot_addr fndecl 0 16372 NULL
142243 +disable_so_f2fs_dentry_hash_fndecl_16378 f2fs_dentry_hash fndecl 0 16378 NULL
142244 +disable_so_alarm_nvkm_timer_16388 alarm nvkm_timer 2 16388 NULL
142245 +disable_so_snd_seq_oss_timer_continue_fndecl_16406 snd_seq_oss_timer_continue fndecl 0 16406 NULL
142246 +disable_so_p1_mt9t112_pll_divider_16434 p1 mt9t112_pll_divider 0 16434 NULL
142247 +disable_so_unmap_sg_dma_map_ops_16437 unmap_sg dma_map_ops 3 16437 NULL
142248 +disable_so_ccp_aes_rfc3686_encrypt_fndecl_16455 ccp_aes_rfc3686_encrypt fndecl 0 16455 NULL
142249 +disable_so_bad_dma_addr_vardecl_amd_gart_64_c_16460 bad_dma_addr vardecl_amd_gart_64.c 0 16460 NULL
142250 +disable_so_ath6kl_sdio_set_cmd53_arg_fndecl_16468 ath6kl_sdio_set_cmd53_arg fndecl 3-7 16468 NULL
142251 +disable_so_list_phy_addr_list_info_hold_16469 list_phy_addr list_info_hold 0 16469 NULL
142252 +disable_so_jack_detect_delay_max98095_pdata_16483 jack_detect_delay max98095_pdata 0 16483 NULL
142253 +disable_so_bcma_erom_get_addr_desc_fndecl_16484 bcma_erom_get_addr_desc fndecl 0 16484 NULL nohasharray
142254 +disable_so_fib_info_hash_free_fndecl_16484 fib_info_hash_free fndecl 2 16484 &disable_so_bcma_erom_get_addr_desc_fndecl_16484
142255 +disable_so_frequency_xc2028_data_16487 frequency xc2028_data 0 16487 NULL
142256 +disable_so_acpi_hw_extended_sleep_fndecl_16503 acpi_hw_extended_sleep fndecl 0 16503 NULL
142257 +disable_so_lxt970_ack_interrupt_fndecl_16507 lxt970_ack_interrupt fndecl 0 16507 NULL nohasharray
142258 +disable_so_debug_dma_map_page_fndecl_16507 debug_dma_map_page fndecl 3-6-4 16507 &disable_so_lxt970_ack_interrupt_fndecl_16507
142259 +disable_so_freq_hi_jiffies_od_cpu_dbs_info_s_16514 freq_hi_jiffies od_cpu_dbs_info_s 0 16514 NULL
142260 +disable_so_address_u132_respond_16518 address u132_respond 0 16518 NULL
142261 +disable_so_tegra_spi_transfer_delay_fndecl_16528 tegra_spi_transfer_delay fndecl 1 16528 NULL
142262 +disable_so_cdb_phyaddr_hi32_AdapterControlBlock_16537 cdb_phyaddr_hi32 AdapterControlBlock 0 16537 NULL
142263 +disable_so_copied_seq_cxgbi_sock_16540 copied_seq cxgbi_sock 0 16540 NULL
142264 +disable_so_src_addr_lo_dmae_command_16542 src_addr_lo dmae_command 0 16542 NULL
142265 +disable_so_addr_lo_eth_tx_bd_16543 addr_lo eth_tx_bd 0 16543 NULL
142266 +disable_so_ccp_aes_cmac_digest_fndecl_16547 ccp_aes_cmac_digest fndecl 0 16547 NULL
142267 +disable_so_ip_pt_regs_16548 ip pt_regs 0 16548 NULL
142268 +disable_so_sleep_vol_cache_fan53555_device_info_16553 sleep_vol_cache fan53555_device_info 0 16553 NULL
142269 +disable_so_hblank_hi_oaktrail_timing_info_16559 hblank_hi oaktrail_timing_info 0 16559 NULL
142270 +disable_so_qla2x00_get_async_timeout_fndecl_16577 qla2x00_get_async_timeout fndecl 0 16577 NULL
142271 +disable_so___bitmap_andnot_fndecl_16578 __bitmap_andnot fndecl 4 16578 NULL
142272 +disable_so_hfreq_fb_cvt_data_16579 hfreq fb_cvt_data 0 16579 NULL
142273 +disable_so_tseg1_pucan_timing_slow_16580 tseg1 pucan_timing_slow 0 16580 NULL
142274 +disable_so_freq_rfmon_header_16593 freq rfmon_header 0 16593 NULL
142275 +disable_so_load_block_bitmap_fndecl_16597 load_block_bitmap fndecl 0-3 16597 NULL
142276 +disable_so_flush_timer_il_lq_sta_16606 flush_timer il_lq_sta 0 16606 NULL
142277 +disable_so_ieee80211_channel_to_frequency_fndecl_16619 ieee80211_channel_to_frequency fndecl 0-1 16619 NULL
142278 +disable_so_log_guest_addr_vhost_vring_addr_16627 log_guest_addr vhost_vring_addr 0 16627 NULL nohasharray
142279 +disable_so_cpumask_first_fndecl_16627 cpumask_first fndecl 0 16627 &disable_so_log_guest_addr_vhost_vring_addr_16627
142280 +disable_so_sctp_addr_id2transport_fndecl_16639 sctp_addr_id2transport fndecl 3 16639 NULL
142281 +disable_so_dx_context_paddr_sst_hsw_16656 dx_context_paddr sst_hsw 0 16656 NULL
142282 +disable_so_demod_address_au8522_config_16665 demod_address au8522_config 0 16665 NULL
142283 +disable_so_acpi_device_uid_show_fndecl_16681 acpi_device_uid_show fndecl 0 16681 NULL nohasharray
142284 +disable_so_sys_setresuid16_fndecl_16681 sys_setresuid16 fndecl 0-1-2-3 16681 &disable_so_acpi_device_uid_show_fndecl_16681
142285 +disable_so_crypto_rfc4106_encrypt_fndecl_16683 crypto_rfc4106_encrypt fndecl 0 16683 NULL
142286 +disable_so_field_bit_length_acpi_create_field_info_16693 field_bit_length acpi_create_field_info 0 16693 NULL nohasharray
142287 +disable_so_insert_revoke_hash_fndecl_16693 insert_revoke_hash fndecl 0-2 16693 &disable_so_field_bit_length_acpi_create_field_info_16693
142288 +disable_so_target_cpufreq_driver_16704 target cpufreq_driver 2 16704 NULL
142289 +disable_so_vm_mmap_pgoff_fndecl_16712 vm_mmap_pgoff fndecl 0-2-4-5-6 16712 NULL
142290 +disable_so_time_kvm_vcpu_arch_16718 time kvm_vcpu_arch 0 16718 NULL
142291 +disable_so_mark_bitmap_end_fndecl_16723 mark_bitmap_end fndecl 1-2 16723 NULL
142292 +disable_so_edi_tss_segment_32_16727 edi tss_segment_32 0 16727 NULL
142293 +disable_so_native_calibrate_tsc_fndecl_16735 native_calibrate_tsc fndecl 0 16735 NULL
142294 +disable_so_buf_phy_addr_low_ql_rcv_buf_cb_16742 buf_phy_addr_low ql_rcv_buf_cb 0 16742 NULL
142295 +disable_so_mv88e6131_port_to_phy_addr_fndecl_16751 mv88e6131_port_to_phy_addr fndecl 0-2 16751 NULL
142296 +disable_so_vpd_cap_addr_pci_params_16752 vpd_cap_addr pci_params 0 16752 NULL nohasharray
142297 +disable_so_qce_ablkcipher_decrypt_fndecl_16752 qce_ablkcipher_decrypt fndecl 0 16752 &disable_so_vpd_cap_addr_pci_params_16752
142298 +disable_so_guest_interruptibility_info_vmcs12_16754 guest_interruptibility_info vmcs12 0 16754 NULL
142299 +disable_so_dma_ops_alloc_addresses_fndecl_16763 dma_ops_alloc_addresses fndecl 0-3-4-5 16763 NULL
142300 +disable_so_base_io_addr_cx25821_dev_16770 base_io_addr cx25821_dev 0 16770 NULL
142301 +disable_so_w1_delay_parm_vardecl_w1_io_c_16771 w1_delay_parm vardecl_w1_io.c 0 16771 NULL
142302 +disable_so_devm_kasprintf_fndecl_16792 devm_kasprintf fndecl 2 16792 NULL nohasharray
142303 +disable_so_crypto_rfc4309_setauthsize_fndecl_16792 crypto_rfc4309_setauthsize fndecl 2 16792 &disable_so_devm_kasprintf_fndecl_16792
142304 +disable_so_blp_qat_crypto_request_buffs_16801 blp qat_crypto_request_buffs 0 16801 NULL
142305 +disable_so_crypto_enqueue_request_fndecl_16802 crypto_enqueue_request fndecl 0 16802 NULL
142306 +disable_so_si2165_sleep_fndecl_16803 si2165_sleep fndecl 0 16803 NULL
142307 +disable_so_count_radeon_uvd_clock_voltage_dependency_table_16804 count radeon_uvd_clock_voltage_dependency_table 0 16804 NULL
142308 +disable_so_addr_low_viafb_vx855_dma_descr_16813 addr_low viafb_vx855_dma_descr 0 16813 NULL
142309 +disable_so_shash_async_digest_fndecl_16817 shash_async_digest fndecl 0 16817 NULL
142310 +disable_so_ip_apei_exec_context_16824 ip apei_exec_context 0 16824 NULL nohasharray
142311 +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
142312 +disable_so_xfs_btree_delete_fndecl_16843 xfs_btree_delete fndecl 0 16843 NULL
142313 +disable_so_round_jiffies_up_fndecl_16844 round_jiffies_up fndecl 1-0 16844 NULL
142314 +disable_so___add_delayed_refs_fndecl_16846 __add_delayed_refs fndecl 0-5 16846 NULL
142315 +disable_so_tv_sec_xfs_bstime_16848 tv_sec xfs_bstime 0 16848 NULL
142316 +disable_so_lsize_mtrr_value_16850 lsize mtrr_value 0 16850 NULL
142317 +disable_so_demod_address_stv0288_config_16852 demod_address stv0288_config 0 16852 NULL
142318 +disable_so_efi_lookup_mapped_addr_fndecl_16854 efi_lookup_mapped_addr fndecl 1 16854 NULL
142319 +disable_so_schedule_timeout_fndecl_16856 schedule_timeout fndecl 0-1 16856 NULL
142320 +disable_so_ceph_aes_decrypt2_fndecl_16857 ceph_aes_decrypt2 fndecl 2-8 16857 NULL
142321 +disable_so_da9055_wdt_set_timeout_fndecl_16860 da9055_wdt_set_timeout fndecl 2-0 16860 NULL
142322 +disable_so_erst_dma_addr_xhci_erst_16864 erst_dma_addr xhci_erst 0 16864 NULL
142323 +disable_so_prefered_lft_inet6_ifaddr_16873 prefered_lft inet6_ifaddr 0 16873 NULL
142324 +disable_so_ti_tsc_driver_init_fndecl_16883 ti_tsc_driver_init fndecl 0 16883 NULL
142325 +disable_so_dataout_timeout_iscsi_node_attrib_16884 dataout_timeout iscsi_node_attrib 0 16884 NULL
142326 +disable_so___rtc_read_time_fndecl_16890 __rtc_read_time fndecl 0 16890 NULL nohasharray
142327 +disable_so_tn_smc_rreg_fndecl_16890 tn_smc_rreg fndecl 0-2 16890 &disable_so___rtc_read_time_fndecl_16890
142328 +disable_so_lpage_dma_addr_genwqe_sgl_16893 lpage_dma_addr genwqe_sgl 0 16893 NULL
142329 +disable_so_schedule_on_each_cpu_fndecl_16903 schedule_on_each_cpu fndecl 0 16903 NULL nohasharray
142330 +disable_so_print_dropped_signal_fndecl_16903 print_dropped_signal fndecl 1 16903 &disable_so_schedule_on_each_cpu_fndecl_16903
142331 +disable_so_pctv452e_read_mac_address_fndecl_16904 pctv452e_read_mac_address fndecl 0 16904 NULL
142332 +disable_so_regcache_lzo_get_blkindex_fndecl_16910 regcache_lzo_get_blkindex fndecl 0-2 16910 NULL
142333 +disable_so_login_timeout_qla_hw_data_16911 login_timeout qla_hw_data 0 16911 NULL
142334 +disable_so_bitmap_find_free_region_fndecl_16912 bitmap_find_free_region fndecl 0-2-3 16912 NULL
142335 +disable_so_bit_reverse_mpeg_output_fndecl_16915 bit_reverse_mpeg_output fndecl 0 16915 NULL
142336 +disable_so_da9063_wdt_set_timeout_fndecl_16916 da9063_wdt_set_timeout fndecl 2-0 16916 NULL
142337 +disable_so_pci_bus_insert_busn_res_fndecl_16923 pci_bus_insert_busn_res fndecl 3-2 16923 NULL
142338 +disable_so_port_mlx4_next_alias_guid_work_16924 port mlx4_next_alias_guid_work 0 16924 NULL
142339 +disable_so_port_guid_nodeinfo_16928 port_guid nodeinfo 0 16928 NULL
142340 +disable_so_transition_latency_cpufreq_cpuinfo_16939 transition_latency cpufreq_cpuinfo 0 16939 NULL
142341 +disable_so_si476x_core_cmd_fm_phase_div_status_fndecl_16940 si476x_core_cmd_fm_phase_div_status fndecl 0 16940 NULL nohasharray
142342 +disable_so_convert_hwaddr_wlcore_ops_16940 convert_hwaddr wlcore_ops 0 16940 &disable_so_si476x_core_cmd_fm_phase_div_status_fndecl_16940
142343 +disable_so_tps80031_rtc_set_time_fndecl_16950 tps80031_rtc_set_time fndecl 0 16950 NULL
142344 +disable_so_select_addr_qla8044_minidump_entry_mux_16956 select_addr qla8044_minidump_entry_mux 0 16956 NULL
142345 +disable_so_hr222_get_external_clock_fndecl_16966 hr222_get_external_clock fndecl 0 16966 NULL
142346 +disable_so_evm_calc_hash_fndecl_16971 evm_calc_hash fndecl 0-4 16971 NULL
142347 +disable_so_ima_maxorder_vardecl_ima_crypto_c_16973 ima_maxorder vardecl_ima_crypto.c 0 16973 NULL
142348 +disable_so_delay_sh_keysc_info_16974 delay sh_keysc_info 0 16974 NULL
142349 +disable_so_sample_point_can_bittiming_16980 sample_point can_bittiming 0 16980 NULL
142350 +disable_so_ipmi_set_timeout_fndecl_16982 ipmi_set_timeout fndecl 0 16982 NULL
142351 +disable_so_address_SG32ENTRY_16984 address SG32ENTRY 0 16984 NULL
142352 +disable_so_mlx4_ib_guid_port_init_fndecl_16985 mlx4_ib_guid_port_init fndecl 2 16985 NULL
142353 +disable_so_ma901radio_set_freq_fndecl_16989 ma901radio_set_freq fndecl 0-2 16989 NULL
142354 +disable_so_i_ctime_f2fs_inode_17005 i_ctime f2fs_inode 0 17005 NULL
142355 +disable_so_pa_rxrf_lna2_freq_tune_chan_info_2064_lcnphy_17009 pa_rxrf_lna2_freq_tune chan_info_2064_lcnphy 0 17009 NULL
142356 +disable_so_vhost_add_used_and_signal_n_fndecl_17013 vhost_add_used_and_signal_n fndecl 4 17013 NULL
142357 +disable_so_fragshift_snd_pcm_oss_runtime_17015 fragshift snd_pcm_oss_runtime 0 17015 NULL
142358 +disable_so_sci_rx_interrupt_fndecl_17016 sci_rx_interrupt fndecl 1 17016 NULL
142359 +disable_so_wakeup_last_time_show_fndecl_17020 wakeup_last_time_show fndecl 0 17020 NULL
142360 +disable_so_from_addr_efx_memcpy_req_17021 from_addr efx_memcpy_req 0 17021 NULL
142361 +disable_so_tcp_timer_core_clk_divisor_nes_adapter_17033 tcp_timer_core_clk_divisor nes_adapter 0 17033 NULL
142362 +disable_so_reconnect_delay_srp_rport_17034 reconnect_delay srp_rport 0 17034 NULL
142363 +disable_so_clock_frequency_s3c_camif_sensor_info_17035 clock_frequency s3c_camif_sensor_info 0 17035 NULL
142364 +disable_so_copy_to_user_kmaddress_fndecl_17049 copy_to_user_kmaddress fndecl 0 17049 NULL
142365 +disable_so_il_send_rxon_timing_fndecl_17051 il_send_rxon_timing fndecl 0 17051 NULL
142366 +disable_so_system_time_pvclock_vcpu_time_info_17061 system_time pvclock_vcpu_time_info 0 17061 NULL
142367 +disable_so_ds3234_read_time_fndecl_17062 ds3234_read_time fndecl 0 17062 NULL
142368 +disable_so_dat_addr_batadv_orig_node_17063 dat_addr batadv_orig_node 0 17063 NULL
142369 +disable_so_master_cycle_now_kvm_arch_17072 master_cycle_now kvm_arch 0 17072 NULL
142370 +disable_so_netxen_decode_crb_addr_fndecl_17076 netxen_decode_crb_addr fndecl 0-1 17076 NULL
142371 +disable_so_pwm1_freq_lm63_data_17083 pwm1_freq lm63_data 0 17083 NULL
142372 +disable_so_leddc_on_time_ssb_sprom_17089 leddc_on_time ssb_sprom 0 17089 NULL
142373 +disable_so_timer_offset_tg3_17106 timer_offset tg3 0 17106 NULL
142374 +disable_so_rcvhdrqtailaddr_phys_qib_ctxtdata_17108 rcvhdrqtailaddr_phys qib_ctxtdata 0 17108 NULL nohasharray
142375 +disable_so_next_signal_fndecl_17108 next_signal fndecl 0 17108 &disable_so_rcvhdrqtailaddr_phys_qib_ctxtdata_17108
142376 +disable_so_ptp_write_host_time_efx_nic_type_17118 ptp_write_host_time efx_nic_type 2 17118 NULL
142377 +disable_so_isl12057_rtc_set_time_fndecl_17119 isl12057_rtc_set_time fndecl 0 17119 NULL
142378 +disable_so_p4_mt9t112_pll_divider_17123 p4 mt9t112_pll_divider 0 17123 NULL
142379 +disable_so___sk_mem_schedule_fndecl_17130 __sk_mem_schedule fndecl 2 17130 NULL
142380 +disable_so_do_sched_setscheduler_fndecl_17133 do_sched_setscheduler fndecl 2-1-0 17133 NULL
142381 +disable_so_demod_address_s5h1420_config_17152 demod_address s5h1420_config 0 17152 NULL
142382 +disable_so_stats_reset_time_fnic_17155 stats_reset_time fnic 0 17155 NULL nohasharray
142383 +disable_so_buffer_addr_hi_iscsi_bd_17155 buffer_addr_hi iscsi_bd 0 17155 &disable_so_stats_reset_time_fnic_17155 nohasharray
142384 +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
142385 +disable_so_bit_cursor_fndecl_17158 bit_cursor fndecl 4-5-6 17158 NULL
142386 +disable_so_nv50_fan_pwm_clock_fndecl_17168 nv50_fan_pwm_clock fndecl 0 17168 NULL
142387 +disable_so_s_def_resuid_ext2_super_block_17174 s_def_resuid ext2_super_block 0 17174 NULL
142388 +disable_so_delay_until_ipoib_mcast_17176 delay_until ipoib_mcast 0 17176 NULL
142389 +disable_so_command_addr_acpi_ec_17177 command_addr acpi_ec 0 17177 NULL
142390 +disable_so_set_freq_adis16400_chip_info_17183 set_freq adis16400_chip_info 0 17183 NULL
142391 +disable_so_fd_pppol2tpin6_addr_17186 fd pppol2tpin6_addr 0 17186 NULL
142392 +disable_so_genwqe_set_interrupt_capability_fndecl_17191 genwqe_set_interrupt_capability fndecl 2-0 17191 NULL
142393 +disable_so_random_frame_ehci_hcd_17194 random_frame ehci_hcd 0 17194 NULL nohasharray
142394 +disable_so_ctrl_req_addr_dwc3_17194 ctrl_req_addr dwc3 0 17194 &disable_so_random_frame_ehci_hcd_17194
142395 +disable_so_xhci_disable_usb3_lpm_timeout_fndecl_17199 xhci_disable_usb3_lpm_timeout fndecl 0 17199 NULL
142396 +disable_so_sp_dma_addr_hostdata_17202 sp_dma_addr hostdata 0 17202 NULL nohasharray
142397 +disable_so_drbg_hash_hashgen_fndecl_17202 drbg_hash_hashgen fndecl 0-3 17202 &disable_so_sp_dma_addr_hostdata_17202
142398 +disable_so_demod_address_mt312_config_17203 demod_address mt312_config 0 17203 NULL
142399 +disable_so_buf_count_ccp_sha_req_ctx_17205 buf_count ccp_sha_req_ctx 0 17205 NULL
142400 +disable_so_atiixp_set_pio_timing_fndecl_17209 atiixp_set_pio_timing fndecl 3 17209 NULL
142401 +disable_so_tpm2_get_random_fndecl_17212 tpm2_get_random fndecl 0-3 17212 NULL
142402 +disable_so_offset_btrfs_key_17213 offset btrfs_key 0 17213 NULL
142403 +disable_so_dccps_timestamp_time_dccp_sock_17214 dccps_timestamp_time dccp_sock 0 17214 NULL
142404 +disable_so_this_tsc_write_kvm_vcpu_arch_17221 this_tsc_write kvm_vcpu_arch 0 17221 NULL
142405 +disable_so_cpufreq_driver_target_fndecl_17222 cpufreq_driver_target fndecl 2 17222 NULL
142406 +disable_so_prev_task_link_tss_segment_16_17224 prev_task_link tss_segment_16 0 17224 NULL
142407 +disable_so_sc92031_interrupt_fndecl_17226 sc92031_interrupt fndecl 1 17226 NULL nohasharray
142408 +disable_so_daddr_irnet_socket_17226 daddr irnet_socket 0 17226 &disable_so_sc92031_interrupt_fndecl_17226 nohasharray
142409 +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
142410 +disable_so_iffreq_tuner_params_17241 iffreq tuner_params 0 17241 NULL
142411 +disable_so_erase_time_flchip_17257 erase_time flchip 0 17257 NULL
142412 +disable_so_lp8788_is_valid_buck_addr_fndecl_17271 lp8788_is_valid_buck_addr fndecl 1 17271 NULL nohasharray
142413 +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
142414 +disable_so_pci_timedia_setup_fndecl_17276 pci_timedia_setup fndecl 4 17276 NULL
142415 +disable_so_security_task_setpgid_fndecl_17277 security_task_setpgid fndecl 2 17277 NULL
142416 +disable_so_ref_div_pll_info_17279 ref_div pll_info 0 17279 NULL nohasharray
142417 +disable_so_ifr6_ifindex_in6_ifreq_17279 ifr6_ifindex in6_ifreq 0 17279 &disable_so_ref_div_pll_info_17279
142418 +disable_so_nm_gid_nl_mmap_hdr_17280 nm_gid nl_mmap_hdr 0 17280 NULL
142419 +disable_so_account_system_time_fndecl_17285 account_system_time fndecl 3-4 17285 NULL nohasharray
142420 +disable_so_ptrace_signal_fndecl_17285 ptrace_signal fndecl 0-1 17285 &disable_so_account_system_time_fndecl_17285
142421 +disable_so_cm36651_read_int_time_fndecl_17287 cm36651_read_int_time fndecl 0 17287 NULL
142422 +disable_so_calculate_destination_timeout_fndecl_17288 calculate_destination_timeout fndecl 0 17288 NULL
142423 +disable_so_hsync_pulse_width_lo_detailed_pixel_timing_17297 hsync_pulse_width_lo detailed_pixel_timing 0 17297 NULL
142424 +disable_so_pci_pm_runtime_suspend_fndecl_17299 pci_pm_runtime_suspend fndecl 0 17299 NULL
142425 +disable_so_ifindex_ip6addrlbl_entry_17305 ifindex ip6addrlbl_entry 0 17305 NULL
142426 +disable_so_lookup_enclosing_address_handler_fndecl_17312 lookup_enclosing_address_handler fndecl 3 17312 NULL
142427 +disable_so_addrconf_mod_rs_timer_fndecl_17333 addrconf_mod_rs_timer fndecl 2 17333 NULL nohasharray
142428 +disable_so_dma_addr_tse_buffer_17333 dma_addr tse_buffer 0 17333 &disable_so_addrconf_mod_rs_timer_fndecl_17333
142429 +disable_so_mod_timer_pinned_fndecl_17334 mod_timer_pinned fndecl 2-0 17334 NULL
142430 +disable_so_cpufreq_power_cooling_register_fndecl_17338 cpufreq_power_cooling_register fndecl 2 17338 NULL
142431 +disable_so_bytenr_btrfs_delayed_ref_node_17344 bytenr btrfs_delayed_ref_node 0 17344 NULL
142432 +disable_so_genwqe_debugfs_queue_working_time_open_fndecl_17354 genwqe_debugfs_queue_working_time_open fndecl 0 17354 NULL
142433 +disable_so_poll_select_set_timeout_fndecl_17361 poll_select_set_timeout fndecl 2-3 17361 NULL nohasharray
142434 +disable_so_dma_addr_efx_buffer_17361 dma_addr efx_buffer 0 17361 &disable_so_poll_select_set_timeout_fndecl_17361
142435 +disable_so_loc_addr_nes_cm_node_17375 loc_addr nes_cm_node 0 17375 NULL
142436 +disable_so_sdev_show_eh_timeout_fndecl_17386 sdev_show_eh_timeout fndecl 0 17386 NULL
142437 +disable_so_isl1208_i2c_set_time_fndecl_17398 isl1208_i2c_set_time fndecl 0 17398 NULL
142438 +disable_so_lx_interrupt_handle_async_events_fndecl_17400 lx_interrupt_handle_async_events fndecl 0 17400 NULL
142439 +disable_so_phys_addr_pmem_device_17405 phys_addr pmem_device 0 17405 NULL
142440 +disable_so___cpufreq_remove_dev_prepare_fndecl_17414 __cpufreq_remove_dev_prepare fndecl 0 17414 NULL
142441 +disable_so_readpage_address_space_operations_17426 readpage address_space_operations 0 17426 NULL
142442 +disable_so_last_tdls_pkt_time_sta_info_17439 last_tdls_pkt_time sta_info 0 17439 NULL
142443 +disable_so_bfa_fcs_rport_set_del_timeout_fndecl_17442 bfa_fcs_rport_set_del_timeout fndecl 1 17442 NULL nohasharray
142444 +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
142445 +disable_so_clockevents_update_freq_fndecl_17446 clockevents_update_freq fndecl 2 17446 NULL
142446 +disable_so_dev_addr_init_fndecl_17450 dev_addr_init fndecl 0 17450 NULL
142447 +disable_so_div_clk_fixed_factor_17451 div clk_fixed_factor 0 17451 NULL
142448 +disable_so_t2_ptr_hash_tbl_addr_hi_fcoe_kwqe_init2_17457 t2_ptr_hash_tbl_addr_hi fcoe_kwqe_init2 0 17457 NULL
142449 +disable_so_i_unsignaled_bytes_rds_iw_connection_17462 i_unsignaled_bytes rds_iw_connection 0 17462 NULL
142450 +disable_so_calc_pmtimer_ref_fndecl_17467 calc_pmtimer_ref fndecl 0-2-3-1 17467 NULL
142451 +disable_so_mb_dma_address_skd_fitmsg_context_17468 mb_dma_address skd_fitmsg_context 0 17468 NULL
142452 +disable_so_bd_list_addr_hi_bnx2i_cmd_request_17469 bd_list_addr_hi bnx2i_cmd_request 0 17469 NULL
142453 +disable_so_schedule_iso_resource_fndecl_17474 schedule_iso_resource fndecl 2 17474 NULL
142454 +disable_so_select_addr_qla83xx_minidump_entry_pollrd_17476 select_addr qla83xx_minidump_entry_pollrd 0 17476 NULL
142455 +disable_so_ipv4_daddr_nf_bridge_info_17490 ipv4_daddr nf_bridge_info 0 17490 NULL
142456 +disable_so_fifo_delay_map_brcmf_fws_info_17499 fifo_delay_map brcmf_fws_info 0 17499 NULL
142457 +disable_so_cpumask_next_and_fndecl_17511 cpumask_next_and fndecl 1-0 17511 NULL
142458 +disable_so_crypto_ctr_crypt_fndecl_17512 crypto_ctr_crypt fndecl 0-4 17512 NULL
142459 +disable_so_current_frequency_or51132_state_17519 current_frequency or51132_state 0 17519 NULL
142460 +disable_so_clocks_calc_max_nsecs_fndecl_17521 clocks_calc_max_nsecs fndecl 1-2-3-4-0 17521 NULL
142461 +disable_so_brcmf_get_next_free_bsscfgidx_fndecl_17528 brcmf_get_next_free_bsscfgidx fndecl 0 17528 NULL
142462 +disable_so_ide_dma_timeout_retry_fndecl_17531 ide_dma_timeout_retry fndecl 2 17531 NULL
142463 +disable_so_radeon_legacy_get_engine_clock_fndecl_17536 radeon_legacy_get_engine_clock fndecl 0 17536 NULL
142464 +disable_so_longcal_timer_ath_ani_17540 longcal_timer ath_ani 0 17540 NULL
142465 +disable_so_beacon_init_val_il_rxon_time_cmd_17543 beacon_init_val il_rxon_time_cmd 0 17543 NULL
142466 +disable_so_bcma_pmu_xtalfreq_fndecl_17556 bcma_pmu_xtalfreq fndecl 0 17556 NULL
142467 +disable_so_hdelay_timing_17557 hdelay timing 0 17557 NULL
142468 +disable_so_ticks_snd_seq_timer_17559 ticks snd_seq_timer 0 17559 NULL nohasharray
142469 +disable_so_coublock_signal_struct_17559 coublock signal_struct 0 17559 &disable_so_ticks_snd_seq_timer_17559
142470 +disable_so_snd_timer_dev_register_fndecl_17565 snd_timer_dev_register fndecl 0 17565 NULL
142471 +disable_so_wait_on_bit_lock_action_fndecl_17576 wait_on_bit_lock_action fndecl 0 17576 NULL
142472 +disable_so_node_guid_nodeinfo_17589 node_guid nodeinfo 0 17589 NULL
142473 +disable_so_packet_filter_bitmap_kaweth_device_17590 packet_filter_bitmap kaweth_device 0 17590 NULL
142474 +disable_so_erase_timeout_sd_ssr_17594 erase_timeout sd_ssr 0 17594 NULL
142475 +disable_so_ratio_r_rj54n1_clock_div_17609 ratio_r rj54n1_clock_div 0 17609 NULL
142476 +disable_so_clock_info_cmd_complete_fndecl_17616 clock_info_cmd_complete fndecl 0 17616 NULL
142477 +disable_so_cir_addr_nvt_dev_17619 cir_addr nvt_dev 0 17619 NULL
142478 +disable_so_plink_timeout_mesh_config_17621 plink_timeout mesh_config 0 17621 NULL
142479 +disable_so_numaddr_mwl8k_cmd_mac_multicast_adr_17633 numaddr mwl8k_cmd_mac_multicast_adr 0 17633 NULL
142480 +enable_so_last_used_idx_vringh_17635 last_used_idx vringh 0 17635 NULL nohasharray
142481 +disable_so_addr_nvbios_extdev_func_17635 addr nvbios_extdev_func 0 17635 &enable_so_last_used_idx_vringh_17635 nohasharray
142482 +disable_so_xfs_btree_set_numrecs_fndecl_17635 xfs_btree_set_numrecs fndecl 2 17635 &disable_so_addr_nvbios_extdev_func_17635
142483 +disable_so_pll_clkdiv_adau1701_17652 pll_clkdiv adau1701 0 17652 NULL
142484 +disable_so_btree_insert_raw_fndecl_17655 btree_insert_raw fndecl 0-2 17655 NULL
142485 +disable_so_svm_adjust_tsc_offset_fndecl_17663 svm_adjust_tsc_offset fndecl 2 17663 NULL
142486 +disable_so_mpll_ss2_ni_clock_registers_17677 mpll_ss2 ni_clock_registers 0 17677 NULL
142487 +disable_so_seq_zoran_sync_17679 seq zoran_sync 0 17679 NULL
142488 +disable_so_frequency_drv2667_data_17686 frequency drv2667_data 0 17686 NULL
142489 +disable_so_ieee80211_if_fmt_beacon_timeout_fndecl_17690 ieee80211_if_fmt_beacon_timeout fndecl 0-3 17690 NULL
142490 +disable_so_switch_time_iwl5000_channel_switch_cmd_17709 switch_time iwl5000_channel_switch_cmd 0 17709 NULL
142491 +disable_so_paging64_walk_addr_generic_fndecl_17719 paging64_walk_addr_generic fndecl 4-5 17719 NULL
142492 +disable_so_hw_usb_set_address_fndecl_17723 hw_usb_set_address fndecl 2 17723 NULL
142493 +disable_so_sysrq_reset_downtime_ms_vardecl_sysrq_c_17734 sysrq_reset_downtime_ms vardecl_sysrq.c 0 17734 NULL
142494 +disable_so_ttime_mean_cfq_ttime_17742 ttime_mean cfq_ttime 0 17742 NULL nohasharray
142495 +disable_so_cpufreq_add_dev_fndecl_17742 cpufreq_add_dev fndecl 0 17742 &disable_so_ttime_mean_cfq_ttime_17742
142496 +disable_so_int_poll_timeout_fndecl_17745 int_poll_timeout fndecl 1 17745 NULL
142497 +disable_so_pmdown_time_snd_soc_pcm_runtime_17753 pmdown_time snd_soc_pcm_runtime 0 17753 NULL
142498 +disable_so_i_dtime_ocfs2_dinode_17762 i_dtime ocfs2_dinode 0 17762 NULL
142499 +disable_so_stk1160_write_reg_fndecl_17777 stk1160_write_reg fndecl 0-2-3 17777 NULL
142500 +disable_so_wlcore_save_freed_pkts_addr_fndecl_17778 wlcore_save_freed_pkts_addr fndecl 3 17778 NULL
142501 +disable_so_sys_getuid_fndecl_17783 sys_getuid fndecl 0 17783 NULL
142502 +disable_so_ath5k_hw_set_ack_timeout_fndecl_17785 ath5k_hw_set_ack_timeout fndecl 2 17785 NULL
142503 +disable_so_vfio_intx_set_signal_fndecl_17806 vfio_intx_set_signal fndecl 0 17806 NULL
142504 +disable_so_hash_dst_fndecl_17815 hash_dst fndecl 0-2-3 17815 NULL
142505 +disable_so_ci_set_smc_sram_address_fndecl_17817 ci_set_smc_sram_address fndecl 0-2 17817 NULL
142506 +disable_so_ax_pt_regs_17818 ax pt_regs 0 17818 NULL
142507 +disable_so_gf110_fan_pwm_clock_fndecl_17824 gf110_fan_pwm_clock fndecl 0 17824 NULL nohasharray
142508 +disable_so_txdescmem_busaddr_altera_tse_private_17824 txdescmem_busaddr altera_tse_private 0 17824 &disable_so_gf110_fan_pwm_clock_fndecl_17824
142509 +disable_so_shash_digest_unaligned_fndecl_17828 shash_digest_unaligned fndecl 0-3 17828 NULL
142510 +disable_so_crypto_user_rcv_msg_fndecl_17830 crypto_user_rcv_msg fndecl 0 17830 NULL
142511 +disable_so_hfsplus_bnode_findhash_fndecl_17834 hfsplus_bnode_findhash fndecl 2 17834 NULL
142512 +disable_so_hactive_lo_oaktrail_timing_info_17844 hactive_lo oaktrail_timing_info 0 17844 NULL
142513 +disable_so_paddr_eni_skb_prv_17847 paddr eni_skb_prv 0 17847 NULL nohasharray
142514 +disable_so_proc_disconnectsignal_fndecl_17847 proc_disconnectsignal fndecl 0 17847 &disable_so_paddr_eni_skb_prv_17847
142515 +disable_so_msec_bts_action_delay_17848 msec bts_action_delay 0 17848 NULL
142516 +disable_so_start_fixed_mtrr_segment_17854 start fixed_mtrr_segment 0 17854 NULL
142517 +disable_so_addr_mlx4_wqe_data_seg_17863 addr mlx4_wqe_data_seg 0 17863 NULL
142518 +disable_so_vhost32_to_cpu_fndecl_17870 vhost32_to_cpu fndecl 0-2 17870 NULL
142519 +disable_so_wl1273_fm_get_freq_fndecl_17876 wl1273_fm_get_freq fndecl 0 17876 NULL
142520 +disable_so_sumo_set_divider_value_fndecl_17879 sumo_set_divider_value fndecl 3-2 17879 NULL
142521 +disable_so_dev_stc_uvc_clock_sample_17886 dev_stc uvc_clock_sample 0 17886 NULL
142522 +disable_so_xfs_bmap_extents_to_btree_fndecl_17888 xfs_bmap_extents_to_btree fndecl 0 17888 NULL nohasharray
142523 +disable_so_sha1_ssse3_finup_fndecl_17888 sha1_ssse3_finup fndecl 3 17888 &disable_so_xfs_bmap_extents_to_btree_fndecl_17888
142524 +disable_so_address_threshold_block_17898 address threshold_block 0 17898 NULL
142525 +disable_so_timeout_vardecl_w83793_c_17902 timeout vardecl_w83793.c 0 17902 NULL
142526 +disable_so_bitmap_port_gc_test_fndecl_17905 bitmap_port_gc_test fndecl 3 17905 NULL
142527 +disable_so_efx_ef10_filter_hash_fndecl_17915 efx_ef10_filter_hash fndecl 0 17915 NULL
142528 +disable_so_i40evf_init_interrupt_scheme_fndecl_17922 i40evf_init_interrupt_scheme fndecl 0 17922 NULL
142529 +disable_so_get_descriptor_addr_fndecl_17925 get_descriptor_addr fndecl 0 17925 NULL
142530 +disable_so_fll_loop_gain__fll_div_17926 fll_loop_gain _fll_div 0 17926 NULL
142531 +disable_so_timestamp_nfs_pgio_header_17936 timestamp nfs_pgio_header 0 17936 NULL
142532 +disable_so_axp20x_set_dcdc_freq_fndecl_17938 axp20x_set_dcdc_freq fndecl 0-2 17938 NULL
142533 +disable_so_fc2580_s_frequency_fndecl_17946 fc2580_s_frequency fndecl 0 17946 NULL
142534 +disable_so_cxd2820r_sleep_fndecl_17948 cxd2820r_sleep fndecl 0 17948 NULL
142535 +disable_so_shash_update_unaligned_fndecl_17955 shash_update_unaligned fndecl 0-3 17955 NULL
142536 +disable_so_queue_snd_seq_queue_timer_17961 queue snd_seq_queue_timer 0 17961 NULL nohasharray
142537 +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
142538 +disable_so_pcc_cpufreq_probe_fndecl_17966 pcc_cpufreq_probe fndecl 0 17966 NULL nohasharray
142539 +disable_so_rsa_extract_mpi_fndecl_17966 rsa_extract_mpi fndecl 5 17966 &disable_so_pcc_cpufreq_probe_fndecl_17966
142540 +disable_so_rxrpc_resend_timeout_vardecl_17967 rxrpc_resend_timeout vardecl 0 17967 NULL nohasharray
142541 +disable_so_cxd2820r_sleep_c_fndecl_17967 cxd2820r_sleep_c fndecl 0 17967 &disable_so_rxrpc_resend_timeout_vardecl_17967
142542 +disable_so_ab3100_get_register_page_interruptible_fndecl_17972 ab3100_get_register_page_interruptible fndecl 0 17972 NULL
142543 +disable_so_perf_event_time_fndecl_17980 perf_event_time fndecl 0 17980 NULL nohasharray
142544 +disable_so_crypto_ahash_update_fndecl_17980 crypto_ahash_update fndecl 0 17980 &disable_so_perf_event_time_fndecl_17980
142545 +disable_so_palmas_clear_interrupts_fndecl_17987 palmas_clear_interrupts fndecl 0 17987 NULL
142546 +disable_so_timeout_vardecl_nf_conntrack_snmp_c_17991 timeout vardecl_nf_conntrack_snmp.c 0 17991 NULL
142547 +disable_so_addr_lo_eth_rx_sge_17992 addr_lo eth_rx_sge 0 17992 NULL
142548 +disable_so_cryptd_hash_update_fndecl_17997 cryptd_hash_update fndecl 2 17997 NULL
142549 +disable_so_crypto_authenc_esn_setkey_fndecl_18010 crypto_authenc_esn_setkey fndecl 0 18010 NULL
142550 +disable_so_uwb_rc_mac_addr_store_fndecl_18016 uwb_rc_mac_addr_store fndecl 0-4 18016 NULL
142551 +disable_so_netlbl_unlhsh_hash_fndecl_18024 netlbl_unlhsh_hash fndecl 0-1 18024 NULL
142552 +disable_so_min_delta_ns_clock_event_device_18031 min_delta_ns clock_event_device 0 18031 NULL
142553 +disable_so_ali_timeout_bits_vardecl_alim1535_wdt_c_18033 ali_timeout_bits vardecl_alim1535_wdt.c 0 18033 NULL
142554 +disable_so_sci_mpxed_interrupt_fndecl_18035 sci_mpxed_interrupt fndecl 1 18035 NULL
142555 +disable_so_time_freq_vardecl_ntp_c_18036 time_freq vardecl_ntp.c 0 18036 NULL
142556 +disable_so_be_cmd_page_addrs_prepare_fndecl_18059 be_cmd_page_addrs_prepare fndecl 2 18059 NULL
142557 +disable_so_base_addr_brcmf_pcie_console_18075 base_addr brcmf_pcie_console 0 18075 NULL
142558 +disable_so_seq_cn_msg_18076 seq cn_msg 0 18076 NULL
142559 +disable_so_packet_time_ipw_ibss_seq_18079 packet_time ipw_ibss_seq 0 18079 NULL
142560 +disable_so_atomic_set_property_drm_connector_funcs_18088 atomic_set_property drm_connector_funcs 0-4 18088 NULL
142561 +disable_so_ts_jiffies_uwb_event_18092 ts_jiffies uwb_event 0 18092 NULL nohasharray
142562 +disable_so_xc_set_rf_frequency_fndecl_18092 xc_set_rf_frequency fndecl 0-2 18092 &disable_so_ts_jiffies_uwb_event_18092
142563 +disable_so_beacon_time_tsf_bits_il_hw_params_18095 beacon_time_tsf_bits il_hw_params 0 18095 NULL
142564 +disable_so_restore_freq_cpufreq_policy_18098 restore_freq cpufreq_policy 0 18098 NULL
142565 +disable_so_link_check_timeout_ixgbe_adapter_18101 link_check_timeout ixgbe_adapter 0 18101 NULL
142566 +disable_so_zd_iowrite32_fndecl_18117 zd_iowrite32 fndecl 0-3 18117 NULL nohasharray
142567 +disable_so_block_bitmap_ext3_new_group_data_18117 block_bitmap ext3_new_group_data 0 18117 &disable_so_zd_iowrite32_fndecl_18117
142568 +disable_so_radeon_fence_schedule_check_fndecl_18136 radeon_fence_schedule_check fndecl 2 18136 NULL
142569 +disable_so_ed_schedule_fndecl_18142 ed_schedule fndecl 0 18142 NULL
142570 +disable_so_pci_clock_ctrl_tg3_18144 pci_clock_ctrl tg3 0 18144 NULL
142571 +disable_so_start_i915_address_space_18152 start i915_address_space 0 18152 NULL
142572 +disable_so_reg_w_fndecl_18159 reg_w fndecl 2 18159 NULL
142573 +disable_so_xfrm_get_saddr_fndecl_18161 xfrm_get_saddr fndecl 4 18161 NULL
142574 +disable_so_src_addr_rcar_dmac_xfer_chunk_18165 src_addr rcar_dmac_xfer_chunk 0 18165 NULL
142575 +disable_so_chip_init_time_esas2r_adapter_18169 chip_init_time esas2r_adapter 0 18169 NULL
142576 +disable_so___btree_submit_bio_done_fndecl_18170 __btree_submit_bio_done fndecl 0-2 18170 NULL
142577 +disable_so_pick_local_ipaddrs_fndecl_18171 pick_local_ipaddrs fndecl 0 18171 NULL
142578 +disable_so_host_sof_uvc_clock_sample_18177 host_sof uvc_clock_sample 0 18177 NULL
142579 +disable_so_ratio_op_rj54n1_clock_div_18180 ratio_op rj54n1_clock_div 0 18180 NULL
142580 +disable_so_dm_btree_remove_leaves_fndecl_18182 dm_btree_remove_leaves fndecl 0-2-4 18182 NULL
142581 +disable_so_rfcomm_session_set_timer_fndecl_18183 rfcomm_session_set_timer fndecl 2 18183 NULL
142582 +disable_so_i_gid_ext2_inode_18187 i_gid ext2_inode 0 18187 NULL
142583 +disable_so_tipc_tlv_sprintf_fndecl_18203 tipc_tlv_sprintf fndecl 0 18203 NULL
142584 +disable_so_usbnet_get_ethernet_addr_fndecl_18204 usbnet_get_ethernet_addr fndecl 0 18204 NULL
142585 +disable_so_faddr_drm_i915_error_ring_18209 faddr drm_i915_error_ring 0 18209 NULL
142586 +disable_so_nla_put_ipaddr4_fndecl_18214 nla_put_ipaddr4 fndecl 0 18214 NULL
142587 +disable_so_ring_dma_addr_netdev_private_18216 ring_dma_addr netdev_private 0 18216 NULL
142588 +disable_so_fc_gid_ft_build_fndecl_18221 fc_gid_ft_build fndecl 0-3 18221 NULL
142589 +disable_so_base_hi_mtrr_var_range_18224 base_hi mtrr_var_range 0 18224 NULL nohasharray
142590 +disable_so_mISDNisac_irq_fndecl_18224 mISDNisac_irq fndecl 2 18224 &disable_so_base_hi_mtrr_var_range_18224
142591 +disable_so_no_bit_error_verify_fndecl_18225 no_bit_error_verify fndecl 4 18225 NULL
142592 +disable_so_account_guest_time_fndecl_18233 account_guest_time fndecl 2-3 18233 NULL
142593 +disable_so_show_port_gid_idx_fndecl_18237 show_port_gid_idx fndecl 0 18237 NULL
142594 +disable_so_ath9k_hw_set_cts_timeout_fndecl_18239 ath9k_hw_set_cts_timeout fndecl 2 18239 NULL
142595 +disable_so_sctp_raw_to_bind_addrs_fndecl_18240 sctp_raw_to_bind_addrs fndecl 0-3-4-5 18240 NULL
142596 +disable_so_format_snd_pcm_oss_runtime_18246 format snd_pcm_oss_runtime 0 18246 NULL
142597 +disable_so_ring_base_address_kfd_ioctl_update_queue_args_18252 ring_base_address kfd_ioctl_update_queue_args 0 18252 NULL
142598 +disable_so_best_dsc_rw_freq_ide_tape_obj_18253 best_dsc_rw_freq ide_tape_obj 0 18253 NULL
142599 +disable_so_mlx4_ib_set_default_gid_fndecl_18263 mlx4_ib_set_default_gid fndecl 3 18263 NULL
142600 +disable_so_msrpm_base_pa_vmcb_control_area_18266 msrpm_base_pa vmcb_control_area 0 18266 NULL
142601 +disable_so_macb_reg_writel_macb_18287 macb_reg_writel macb 3 18287 NULL
142602 +disable_so_btrfs_inode_delayed_dir_index_count_fndecl_18292 btrfs_inode_delayed_dir_index_count fndecl 0 18292 NULL
142603 +disable_so_rounded_hashtable_size_fndecl_18305 rounded_hashtable_size fndecl 0 18305 NULL
142604 +disable_so_kv_calculate_ds_divider_fndecl_18314 kv_calculate_ds_divider fndecl 0 18314 NULL
142605 +disable_so_srom_address_fndecl_18316 srom_address fndecl 2 18316 NULL
142606 +disable_so_min_keysize_blkcipher_alg_18320 min_keysize blkcipher_alg 0 18320 NULL
142607 +disable_so_sd_atime_stat_data_v1_18328 sd_atime stat_data_v1 0 18328 NULL nohasharray
142608 +disable_so_last_valid_interrupt_tsc2005_18328 last_valid_interrupt tsc2005 0 18328 &disable_so_sd_atime_stat_data_v1_18328
142609 +disable_so_divider_sm501_clock_18331 divider sm501_clock 0 18331 NULL
142610 +disable_so_dwell_time_dfs_conf_sched_scan_settings_18333 dwell_time_dfs conf_sched_scan_settings 0 18333 NULL
142611 +disable_so_synaptics_i2c_reschedule_work_fndecl_18336 synaptics_i2c_reschedule_work fndecl 2 18336 NULL
142612 +disable_so_active_time_dce6_wm_params_18344 active_time dce6_wm_params 0 18344 NULL
142613 +disable_so_shpchp_poll_time_vardecl_18356 shpchp_poll_time vardecl 0 18356 NULL
142614 +disable_so_qat_alg_ablkcipher_init_sessions_fndecl_18359 qat_alg_ablkcipher_init_sessions fndecl 3 18359 NULL
142615 +disable_so_next_blkaddr_node_footer_18360 next_blkaddr node_footer 0 18360 NULL
142616 +disable_so_r9701_set_datetime_fndecl_18365 r9701_set_datetime fndecl 0 18365 NULL
142617 +disable_so_global_default_cipher_key_size_ecryptfs_mount_crypt_stat_18369 global_default_cipher_key_size ecryptfs_mount_crypt_stat 0 18369 NULL
142618 +disable_so_read_tsc_offset_kvm_x86_ops_18374 read_tsc_offset kvm_x86_ops 0 18374 NULL
142619 +disable_so_chunkshift_bitmap_counts_18388 chunkshift bitmap_counts 0 18388 NULL
142620 +disable_so_daddr_i915_page_table_entry_18391 daddr i915_page_table_entry 0 18391 NULL
142621 +disable_so_set_addr_filters_fndecl_18395 set_addr_filters fndecl 0 18395 NULL nohasharray
142622 +disable_so_writepages_address_space_operations_18395 writepages address_space_operations 0 18395 &disable_so_set_addr_filters_fndecl_18395
142623 +disable_so_ablkcipher_next_fast_fndecl_18397 ablkcipher_next_fast fndecl 0 18397 NULL
142624 +disable_so_local_ref_time_lp_18398 local_ref_time lp 0 18398 NULL
142625 +disable_so_size__cpuid4_info_regs_18403 size _cpuid4_info_regs 0 18403 NULL
142626 +disable_so_st_atime_sec_p9_stat_dotl_18404 st_atime_sec p9_stat_dotl 0 18404 NULL nohasharray
142627 +disable_so_hackrf_s_frequency_fndecl_18404 hackrf_s_frequency fndecl 0 18404 &disable_so_st_atime_sec_p9_stat_dotl_18404
142628 +disable_so_ext4_inode_bitmap_fndecl_18405 ext4_inode_bitmap fndecl 0 18405 NULL
142629 +disable_so_crypto_sha256_finup_fndecl_18406 crypto_sha256_finup fndecl 3 18406 NULL
142630 +disable_so_timeout_ip_vs_sync_v4_18416 timeout ip_vs_sync_v4 0 18416 NULL nohasharray
142631 +disable_so_nla_put_hwaddr_fndecl_18416 nla_put_hwaddr fndecl 0 18416 &disable_so_timeout_ip_vs_sync_v4_18416
142632 +disable_so_tasklet_hrtimer_init_fndecl_18423 tasklet_hrtimer_init fndecl 3 18423 NULL
142633 +disable_so_ieee80211_if_fmt_path_refresh_time_fndecl_18427 ieee80211_if_fmt_path_refresh_time fndecl 0-3 18427 NULL
142634 +disable_so_address_high_b43_dmadesc64_18431 address_high b43_dmadesc64 0 18431 NULL
142635 +disable_so_wd_timeout_mei_device_18432 wd_timeout mei_device 0 18432 NULL
142636 +disable_so_bitmap_fold_fndecl_18439 bitmap_fold fndecl 4 18439 NULL
142637 +disable_so_dma_addr_freelQ_ce_18441 dma_addr freelQ_ce 0 18441 NULL
142638 +disable_so_demod_address_cx24117_config_18444 demod_address cx24117_config 0 18444 NULL
142639 +disable_so_rs5c372_get_datetime_fndecl_18451 rs5c372_get_datetime fndecl 0 18451 NULL
142640 +disable_so_diolan_set_clock_synch_fndecl_18461 diolan_set_clock_synch fndecl 0 18461 NULL nohasharray
142641 +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
142642 +disable_so_mac_addr_low_nes_adapter_18465 mac_addr_low nes_adapter 0 18465 NULL nohasharray
142643 +enable_so_get_next_ino_fndecl_18465 get_next_ino fndecl 0 18465 &disable_so_mac_addr_low_nes_adapter_18465
142644 +disable_so_sci_interrupt_acpi_table_fadt_18467 sci_interrupt acpi_table_fadt 0 18467 NULL
142645 +disable_so_mii_bmsr_bnx2_18468 mii_bmsr bnx2 0 18468 NULL
142646 +disable_so_qla4xxx_fw_timestamp_show_fndecl_18474 qla4xxx_fw_timestamp_show fndecl 0 18474 NULL
142647 +disable_so_viafb_fill_crtc_timing_fndecl_18476 viafb_fill_crtc_timing fndecl 2-3 18476 NULL
142648 +disable_so_sysctl_max_tw_buckets_inet_timewait_death_row_18487 sysctl_max_tw_buckets inet_timewait_death_row 0 18487 NULL
142649 +disable_so_hfdiv_dib0090_pll_18489 hfdiv dib0090_pll 0 18489 NULL
142650 +disable_so_demod_address_si21xx_config_18490 demod_address si21xx_config 0 18490 NULL
142651 +disable_so_sbp_tpg_attrib_show_max_reconnect_timeout_fndecl_18494 sbp_tpg_attrib_show_max_reconnect_timeout fndecl 0 18494 NULL
142652 +disable_so_cciss_find_cfg_addrs_fndecl_18500 cciss_find_cfg_addrs fndecl 0 18500 NULL
142653 +disable_so_sdo_runtime_resume_fndecl_18516 sdo_runtime_resume fndecl 0 18516 NULL
142654 +disable_so_available_uuids_show_fndecl_18518 available_uuids_show fndecl 0 18518 NULL
142655 +disable_so_mtrr_open_fndecl_18521 mtrr_open fndecl 0 18521 NULL
142656 +disable_so_r_min_rnr_timer_ipath_qp_18527 r_min_rnr_timer ipath_qp 0 18527 NULL
142657 +disable_so_fixed_mtrr_addr_seg_to_range_index_fndecl_18537 fixed_mtrr_addr_seg_to_range_index fndecl 1-0 18537 NULL
142658 +disable_so_timeout_floppy_drive_params_18540 timeout floppy_drive_params 0 18540 NULL
142659 +disable_so_show_cpu_clock_fndecl_18546 show_cpu_clock fndecl 0 18546 NULL
142660 +disable_so_inet6_fill_ifacaddr_fndecl_18549 inet6_fill_ifacaddr fndecl 0-3-5 18549 NULL
142661 +disable_so_physical_address_kvm_translation_18550 physical_address kvm_translation 0 18550 NULL
142662 +disable_so_kvm_mtrr_set_msr_fndecl_18553 kvm_mtrr_set_msr fndecl 3 18553 NULL
142663 +disable_so_dccp_timestamp_fndecl_18560 dccp_timestamp fndecl 0 18560 NULL
142664 +disable_so_frequency_analog_parameters_18561 frequency analog_parameters 0 18561 NULL
142665 +disable_so_resp_bd_list_addr_lo_bnx2i_login_request_18562 resp_bd_list_addr_lo bnx2i_login_request 0 18562 NULL
142666 +disable_so_pixels_1_gpu_addr_mga_cursor_18572 pixels_1_gpu_addr mga_cursor 0 18572 NULL
142667 +disable_so_compat_sys_stime_fndecl_18574 compat_sys_stime fndecl 0 18574 NULL
142668 +disable_so_timestamp_fwd_flush_batadv_priv_nc_18585 timestamp_fwd_flush batadv_priv_nc 0 18585 NULL nohasharray
142669 +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
142670 +disable_so_sleep_cookie_pbase_pcie_service_card_18597 sleep_cookie_pbase pcie_service_card 0 18597 NULL
142671 +disable_so_sm_set_bitmap_fndecl_18598 sm_set_bitmap fndecl 2 18598 NULL
142672 +disable_so_lr_timeout_ext4_li_request_18599 lr_timeout ext4_li_request 0 18599 NULL
142673 +disable_so_start_time_bfa_diag_dport_subtest_result_s_18621 start_time bfa_diag_dport_subtest_result_s 0 18621 NULL
142674 +disable_so_ieee80211_aes_gmac_key_setup_fndecl_18626 ieee80211_aes_gmac_key_setup fndecl 2 18626 NULL
142675 +disable_so_code_addr_pmu_nvbios_pmuR_18630 code_addr_pmu nvbios_pmuR 0 18630 NULL
142676 +disable_so_btree_write_alias_fndecl_18631 btree_write_alias fndecl 0 18631 NULL
142677 +disable_so_level_btrfs_delayed_tree_ref_18632 level btrfs_delayed_tree_ref 0 18632 NULL
142678 +disable_so_bch_strtoull_h_fndecl_18633 bch_strtoull_h fndecl 0 18633 NULL
142679 +disable_so_resolution_snd_timer_status_18636 resolution snd_timer_status 0 18636 NULL
142680 +disable_so_crypto_module_init_fndecl_18640 crypto_module_init fndecl 0 18640 NULL
142681 +disable_so_mic_to_dma_addr_fndecl_18642 mic_to_dma_addr fndecl 0-2 18642 NULL
142682 +disable_so_nonblocking_wait_time_shtc1_data_18656 nonblocking_wait_time shtc1_data 0 18656 NULL
142683 +disable_so___remove_suid_fndecl_18657 __remove_suid fndecl 0 18657 NULL
142684 +disable_so_bootime_st_sensor_settings_18658 bootime st_sensor_settings 0 18658 NULL
142685 +disable_so_total_ref_mod_btrfs_delayed_ref_head_18666 total_ref_mod btrfs_delayed_ref_head 0 18666 NULL
142686 +disable_so_is_noncanonical_address_fndecl_18677 is_noncanonical_address fndecl 1 18677 NULL
142687 +disable_so_xcan_set_bittiming_fndecl_18678 xcan_set_bittiming fndecl 0 18678 NULL
142688 +disable_so_ipmi_set_my_address_fndecl_18680 ipmi_set_my_address fndecl 0 18680 NULL
142689 +disable_so_pixels_2_gpu_addr_mga_cursor_18686 pixels_2_gpu_addr mga_cursor 0 18686 NULL
142690 +disable_so_adjust_tsc_offset_guest_fndecl_18708 adjust_tsc_offset_guest fndecl 2 18708 NULL
142691 +disable_so_meson_spifc_runtime_resume_fndecl_18709 meson_spifc_runtime_resume fndecl 0 18709 NULL
142692 +disable_so_mclk_pwrmgt_cntl_rv770_clock_registers_18711 mclk_pwrmgt_cntl rv770_clock_registers 0 18711 NULL
142693 +disable_so_avgidle_cbq_class_18722 avgidle cbq_class 0 18722 NULL
142694 +disable_so_nla_nest_end_fndecl_18729 nla_nest_end fndecl 0 18729 NULL
142695 +disable_so_suspend_time_il_scan_cmd_18736 suspend_time il_scan_cmd 0 18736 NULL
142696 +disable_so_jiffies_to_timespec_fndecl_18737 jiffies_to_timespec fndecl 1 18737 NULL
142697 +disable_so___uwb_addr_print_fndecl_18746 __uwb_addr_print fndecl 0 18746 NULL
142698 +disable_so_apicid_set_error_type_with_address_18747 apicid set_error_type_with_address 0 18747 NULL
142699 +disable_so_reachable_time_ifla_cacheinfo_18748 reachable_time ifla_cacheinfo 0 18748 NULL
142700 +disable_so_mxl111sf_write_reg_fndecl_18752 mxl111sf_write_reg fndecl 0 18752 NULL
142701 +disable_so_img_ir_timing_preprocess_fndecl_18766 img_ir_timing_preprocess fndecl 2 18766 NULL
142702 +disable_so_aosr_aic31xx_rate_divs_18787 aosr aic31xx_rate_divs 0 18787 NULL
142703 +disable_so_led_set_flash_timeout_fndecl_18793 led_set_flash_timeout fndecl 2 18793 NULL
142704 +disable_so_proc_dointvec_userhz_jiffies_fndecl_18794 proc_dointvec_userhz_jiffies fndecl 0 18794 NULL
142705 +disable_so_return_address_stack_frame_18797 return_address stack_frame 0 18797 NULL
142706 +disable_so_perf_set_shadow_time_fndecl_18814 perf_set_shadow_time fndecl 3 18814 NULL nohasharray
142707 +disable_so_start_time_mem_ctl_info_18814 start_time mem_ctl_info 0 18814 &disable_so_perf_set_shadow_time_fndecl_18814
142708 +disable_so_out_of_int_time_mmc_ext_csd_18824 out_of_int_time mmc_ext_csd 0 18824 NULL
142709 +disable_so_tmr_subdevice_snd_timer_18828 tmr_subdevice snd_timer 0 18828 NULL
142710 +disable_so_xgmac_reg_addr_read_fndecl_18829 xgmac_reg_addr_read fndecl 3-0 18829 NULL
142711 +disable_so_iscsi_nacl_attrib_show_dataout_timeout_retries_fndecl_18834 iscsi_nacl_attrib_show_dataout_timeout_retries fndecl 0 18834 NULL
142712 +disable_so_ip_hash_net4_elem_18835 ip hash_net4_elem 0 18835 NULL
142713 +disable_so_gid_ucred_18846 gid ucred 0 18846 NULL
142714 +disable_so_r44_val_fc2580_freq_regs_18847 r44_val fc2580_freq_regs 0 18847 NULL
142715 +disable_so_fotg210_set_dev_addr_fndecl_18854 fotg210_set_dev_addr fndecl 2 18854 NULL
142716 +disable_so_mac_time_hostap_80211_rx_status_18865 mac_time hostap_80211_rx_status 0 18865 NULL
142717 +disable_so___smsc95xx_write_reg_fndecl_18876 __smsc95xx_write_reg fndecl 0-2-3 18876 NULL
142718 +disable_so_svm_write_tsc_offset_fndecl_18879 svm_write_tsc_offset fndecl 2 18879 NULL
142719 +disable_so_max8997_rtc_read_time_fndecl_18881 max8997_rtc_read_time fndecl 0 18881 NULL nohasharray
142720 +disable_so_prev_tsc_cpudata_18881 prev_tsc cpudata 0 18881 &disable_so_max8997_rtc_read_time_fndecl_18881
142721 +disable_so_padlock_sha1_update_nano_fndecl_18884 padlock_sha1_update_nano fndecl 3 18884 NULL
142722 +disable_so_sysctl_rose_restart_request_timeout_vardecl_18885 sysctl_rose_restart_request_timeout vardecl 0 18885 NULL
142723 +disable_so_sysctl_aarp_expiry_time_vardecl_18891 sysctl_aarp_expiry_time vardecl 0 18891 NULL
142724 +disable_so_crypto_register_pcomp_fndecl_18915 crypto_register_pcomp fndecl 0 18915 NULL
142725 +disable_so_ata_timing_cycle2mode_fndecl_18918 ata_timing_cycle2mode fndecl 0 18918 NULL
142726 +disable_so_proc_dointvec_ms_jiffies_fndecl_18925 proc_dointvec_ms_jiffies fndecl 0 18925 NULL
142727 +disable_so_busaddr_vlsi_irda_dev_18931 busaddr vlsi_irda_dev 0 18931 NULL
142728 +disable_so_rx_coalescing_timeo_bna_ccb_18934 rx_coalescing_timeo bna_ccb 0 18934 NULL
142729 +disable_so_tx_ring_dma_addr_pcnet32_private_18936 tx_ring_dma_addr pcnet32_private 0 18936 NULL
142730 +disable_so_netlbl_unlhsh_add_addr6_fndecl_18945 netlbl_unlhsh_add_addr6 fndecl 4-0 18945 NULL nohasharray
142731 +disable_so_libipw_channel_to_freq_fndecl_18945 libipw_channel_to_freq fndecl 0-2 18945 &disable_so_netlbl_unlhsh_add_addr6_fndecl_18945
142732 +disable_so_oo_time_nfs4_openowner_18954 oo_time nfs4_openowner 0 18954 NULL
142733 +disable_so_rht_key_hashfn_fndecl_18957 rht_key_hashfn fndecl 0 18957 NULL
142734 +disable_so_query_id_mlx4_alias_guid_work_context_18958 query_id mlx4_alias_guid_work_context 0 18958 NULL nohasharray
142735 +disable_so_address_rq_enet_desc_18958 address rq_enet_desc 0 18958 &disable_so_query_id_mlx4_alias_guid_work_context_18958
142736 +disable_so_scan_bitmap_fndecl_18963 scan_bitmap fndecl 0-3-5-7 18963 NULL
142737 +disable_so_btrfs_item_key_to_cpu_fndecl_18966 btrfs_item_key_to_cpu fndecl 3 18966 NULL
142738 +disable_so_store_fan_time_fndecl_18972 store_fan_time fndecl 0-4 18972 NULL
142739 +disable_so_hash_conntrack_fndecl_18974 hash_conntrack fndecl 0 18974 NULL
142740 +disable_so_lsndtime_tcp_sock_18975 lsndtime tcp_sock 0 18975 NULL
142741 +disable_so_ratio_tg_rj54n1_clock_div_18979 ratio_tg rj54n1_clock_div 0 18979 NULL
142742 +disable_so_freq_lo_od_cpu_dbs_info_s_18987 freq_lo od_cpu_dbs_info_s 0 18987 NULL
142743 +disable_so_usnic_uiom_interval_tree_compute_subtree_last_fndecl_18989 usnic_uiom_interval_tree_compute_subtree_last fndecl 0 18989 NULL
142744 +disable_so_cg_spll_spread_spectrum_rv770_clock_registers_19000 cg_spll_spread_spectrum rv770_clock_registers 0 19000 NULL
142745 +disable_so_ps_poll_ps_poll_timeouts_read_fndecl_19005 ps_poll_ps_poll_timeouts_read fndecl 3 19005 NULL
142746 +disable_so_addr_low_sata_start_req_19006 addr_low sata_start_req 0 19006 NULL
142747 +disable_so_seq_rxrpc_header_19018 seq rxrpc_header 0 19018 NULL
142748 +disable_so_bs_uid_xfs_bstat_19023 bs_uid xfs_bstat 0 19023 NULL
142749 +disable_so_cmb_rx_timer_atl1_hw_19025 cmb_rx_timer atl1_hw 0 19025 NULL
142750 +disable_so_timestamp_batadv_nc_packet_19027 timestamp batadv_nc_packet 0 19027 NULL
142751 +disable_so_addr_high_ssp_ini_io_start_req_19029 addr_high ssp_ini_io_start_req 0 19029 NULL
142752 +disable_so_n_addresses_rxk5_key_19030 n_addresses rxk5_key 0 19030 NULL
142753 +disable_so_ccp_crypto_enqueue_request_fndecl_19035 ccp_crypto_enqueue_request fndecl 0 19035 NULL
142754 +disable_so_timeout_mxser_port_19037 timeout mxser_port 0 19037 NULL
142755 +disable_so_xfs_btree_rec_addr_fndecl_19048 xfs_btree_rec_addr fndecl 2 19048 NULL
142756 +disable_so_sz_qat_crypto_request_buffs_19050 sz qat_crypto_request_buffs 0 19050 NULL
142757 +disable_so_start_field_bit_offset_acpi_object_field_common_19052 start_field_bit_offset acpi_object_field_common 0 19052 NULL
142758 +disable_so_compat_sys_timer_create_fndecl_19053 compat_sys_timer_create fndecl 1 19053 NULL
142759 +disable_so_ioctl_busaddr_ips_ha_19067 ioctl_busaddr ips_ha 0 19067 NULL
142760 +disable_so_crypto_rng_reset_fndecl_19075 crypto_rng_reset fndecl 3 19075 NULL
142761 +disable_so_alignmask_crypto_hash_walk_19078 alignmask crypto_hash_walk 0 19078 NULL
142762 +disable_so_dst_addr_hi_dmae_command_19086 dst_addr_hi dmae_command 0 19086 NULL
142763 +disable_so_tx_time_us_qlcnic_nic_intr_coalesce_19089 tx_time_us qlcnic_nic_intr_coalesce 0 19089 NULL
142764 +disable_so_sctp_getsockopt_peer_addr_info_fndecl_19099 sctp_getsockopt_peer_addr_info fndecl 0 19099 NULL
142765 +disable_so_ack_interrupt_mbus_hw_ops_19100 ack_interrupt mbus_hw_ops 2 19100 NULL
142766 +disable_so_fm_tx_set_freq_fndecl_19116 fm_tx_set_freq fndecl 0-2 19116 NULL
142767 +disable_so_time_stabiliz_dibx000_agc_config_19117 time_stabiliz dibx000_agc_config 0 19117 NULL
142768 +disable_so_m_session_timeout_ceph_mdsmap_19122 m_session_timeout ceph_mdsmap 0 19122 NULL nohasharray
142769 +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
142770 +disable_so_cfg80211_set_cipher_pairwise_fndecl_19124 cfg80211_set_cipher_pairwise fndecl 2 19124 NULL
142771 +disable_so_addr_low_bufq_addr_element_19128 addr_low bufq_addr_element 0 19128 NULL
142772 +disable_so__random_read_fndecl_19137 _random_read fndecl 0-1-3 19137 NULL
142773 +disable_so_data_timeout_ns_mmc_ioc_cmd_19142 data_timeout_ns mmc_ioc_cmd 0 19142 NULL
142774 +disable_so_sys_timer_getoverrun_fndecl_19145 sys_timer_getoverrun fndecl 1-0 19145 NULL
142775 +disable_so_force_static_address_read_fndecl_19149 force_static_address_read fndecl 3-0 19149 NULL
142776 +disable_so_timeout_vardecl_alim7101_wdt_c_19153 timeout vardecl_alim7101_wdt.c 0 19153 NULL
142777 +disable_so_get_msr_x86_emulate_ops_19170 get_msr x86_emulate_ops 2 19170 NULL
142778 +disable_so_freeze_timeout_msecs_vardecl_19173 freeze_timeout_msecs vardecl 0 19173 NULL
142779 +disable_so_time_mid_afs_uuid_19174 time_mid afs_uuid 0 19174 NULL
142780 +disable_so_do_signal_stop_fndecl_19193 do_signal_stop fndecl 1 19193 NULL
142781 +disable_so_xtime_update_fndecl_19206 xtime_update fndecl 1 19206 NULL
142782 +disable_so_sd_uid_stat_data_19209 sd_uid stat_data 0 19209 NULL
142783 +disable_so_conn_schedule_ip_vs_protocol_19210 conn_schedule ip_vs_protocol 1 19210 NULL
142784 +disable_so_ocfs2_dx_dir_name_hash_fndecl_19211 ocfs2_dx_dir_name_hash fndecl 3 19211 NULL
142785 +disable_so_posix_clock_register_fndecl_19213 posix_clock_register fndecl 2-0 19213 NULL
142786 +disable_so_ctnl_timeout_parse_policy_fndecl_19218 ctnl_timeout_parse_policy fndecl 0 19218 NULL
142787 +disable_so_get_parent_r8a66597_address_fndecl_19219 get_parent_r8a66597_address fndecl 0 19219 NULL
142788 +disable_so_ath5k_hw_htoclock_fndecl_19227 ath5k_hw_htoclock fndecl 2-0 19227 NULL
142789 +disable_so_cport_addr_nm256_19228 cport_addr nm256 0 19228 NULL
142790 +disable_so_mt2032_compute_freq_fndecl_19230 mt2032_compute_freq fndecl 2-3-4 19230 NULL
142791 +disable_so_prox_adjust_channel_bit_mask_fndecl_19253 prox_adjust_channel_bit_mask fndecl 3 19253 NULL
142792 +disable_so_base_addr_vnic_dev_ring_19264 base_addr vnic_dev_ring 0 19264 NULL
142793 +disable_so_authenc_geniv_ahash_update_done_fndecl_19273 authenc_geniv_ahash_update_done fndecl 2 19273 NULL
142794 +disable_so_ath6kl_cfg80211_host_sleep_fndecl_19284 ath6kl_cfg80211_host_sleep fndecl 0 19284 NULL
142795 +disable_so_keyring_detect_cycle_fndecl_19294 keyring_detect_cycle fndecl 0 19294 NULL
142796 +disable_so_bus_addr_img_hash_dev_19301 bus_addr img_hash_dev 0 19301 NULL
142797 +disable_so_nv04_timer_fini_fndecl_19314 nv04_timer_fini fndecl 0 19314 NULL
142798 +disable_so_sysctl_x25_restart_request_timeout_vardecl_19317 sysctl_x25_restart_request_timeout vardecl 0 19317 NULL
142799 +disable_so_timer_in_use_nes_hw_tune_timer_19327 timer_in_use nes_hw_tune_timer 0 19327 NULL
142800 +disable_so_misdn_add_timer_fndecl_19332 misdn_add_timer fndecl 2-0 19332 NULL
142801 +disable_so_timeout_vardecl_rn5t618_wdt_c_19337 timeout vardecl_rn5t618_wdt.c 0 19337 NULL
142802 +disable_so_err_addr_bfa_diag_memtest_result_19350 err_addr bfa_diag_memtest_result 0 19350 NULL
142803 +disable_so_jfs_strtoUCS_fndecl_19357 jfs_strtoUCS fndecl 3-0 19357 NULL
142804 +disable_so_addr_to_vsyscall_nr_fndecl_19368 addr_to_vsyscall_nr fndecl 0-1 19368 NULL
142805 +disable_so_small_buf_phy_addr_high_ql3_adapter_19371 small_buf_phy_addr_high ql3_adapter 0 19371 NULL
142806 +disable_so_micd_bias_start_time_arizona_pdata_19379 micd_bias_start_time arizona_pdata 0 19379 NULL
142807 +disable_so_current_frequency_s5h1411_state_19382 current_frequency s5h1411_state 0 19382 NULL
142808 +disable_so_silence_threshold_snd_pcm_runtime_19384 silence_threshold snd_pcm_runtime 0 19384 NULL
142809 +disable_so_pid_pppol2tpv3_addr_19385 pid pppol2tpv3_addr 0 19385 NULL
142810 +disable_so_wm8960_set_dai_clkdiv_fndecl_19392 wm8960_set_dai_clkdiv fndecl 3 19392 NULL
142811 +disable_so_drm_modeset_lock_interruptible_fndecl_19397 drm_modeset_lock_interruptible fndecl 0 19397 NULL
142812 +disable_so_isdn_divert_open_fndecl_19417 isdn_divert_open fndecl 0 19417 NULL
142813 +disable_so_uwb_rc_dev_addr_set_fndecl_19418 uwb_rc_dev_addr_set fndecl 0 19418 NULL
142814 +disable_so_frames_v4l2_timecode_19427 frames v4l2_timecode 0 19427 NULL
142815 +disable_so_bw_time_stamp_backing_dev_info_19428 bw_time_stamp backing_dev_info 0 19428 NULL
142816 +disable_so_nes_create_sockaddr_fndecl_19431 nes_create_sockaddr fndecl 1-2 19431 NULL
142817 +disable_so_s_uuid_hash_ocfs2_super_block_19432 s_uuid_hash ocfs2_super_block 0 19432 NULL
142818 +disable_so_paging64_walk_addr_fndecl_19436 paging64_walk_addr fndecl 3-4 19436 NULL
142819 +disable_so_snd_sonicvibes_interrupt_fndecl_19437 snd_sonicvibes_interrupt fndecl 1 19437 NULL
142820 +disable_so_width_psb_intel_sdvo_preferred_input_timing_args_19438 width psb_intel_sdvo_preferred_input_timing_args 0 19438 NULL
142821 +disable_so_padlock_sha256_final_fndecl_19450 padlock_sha256_final fndecl 0 19450 NULL
142822 +disable_so_period_time_bau_control_19451 period_time bau_control 0 19451 NULL
142823 +disable_so_timestamp_nfs4_closedata_19455 timestamp nfs4_closedata 0 19455 NULL
142824 +disable_so_crypto_fpu_init_fndecl_19461 crypto_fpu_init fndecl 0 19461 NULL
142825 +disable_so_sysctl_x25_reset_request_timeout_vardecl_19463 sysctl_x25_reset_request_timeout vardecl 0 19463 NULL nohasharray
142826 +disable_so_start_write_delay_c_19463 start_write delay_c 0 19463 &disable_so_sysctl_x25_reset_request_timeout_vardecl_19463
142827 +disable_so_calc_div_fndecl_19469 calc_div fndecl 0-4-3 19469 NULL
142828 +disable_so_log2bpmb_adfs_discrecord_19475 log2bpmb adfs_discrecord 0 19475 NULL
142829 +disable_so_sys_pkt_addr_dle_19487 sys_pkt_addr dle 0 19487 NULL
142830 +disable_so_igb_set_vf_mac_addr_fndecl_19490 igb_set_vf_mac_addr fndecl 3 19490 NULL
142831 +disable_so_ipaddr_atm_mpoa_qos_19492 ipaddr atm_mpoa_qos 0 19492 NULL
142832 +disable_so_start_addr_ms_system_item_19495 start_addr ms_system_item 0 19495 NULL
142833 +disable_so_nmi_timer_start_cpu_fndecl_19509 nmi_timer_start_cpu fndecl 1-0 19509 NULL
142834 +disable_so_rv3029c2_i2c_set_time_fndecl_19511 rv3029c2_i2c_set_time fndecl 0 19511 NULL
142835 +disable_so_trinity_get_valid_engine_clock_fndecl_19516 trinity_get_valid_engine_clock fndecl 0 19516 NULL
142836 +disable_so_add_addr_fndecl_19518 add_addr fndecl 3-4 19518 NULL nohasharray
142837 +disable_so_hash_extent_data_ref_item_fndecl_19518 hash_extent_data_ref_item fndecl 0 19518 &disable_so_add_addr_fndecl_19518
142838 +disable_so_prev_hw_ptr_period_snd_pcm_oss_runtime_19519 prev_hw_ptr_period snd_pcm_oss_runtime 0 19519 NULL
142839 +disable_so_eqaddr_fw_ri_res_sqrq_19526 eqaddr fw_ri_res_sqrq 0 19526 NULL
142840 +disable_so_tms_stime_compat_tms_19527 tms_stime compat_tms 0 19527 NULL
142841 +disable_so_period_addr_ath_gen_timer_configuration_19529 period_addr ath_gen_timer_configuration 0 19529 NULL
142842 +disable_so_sp_tss_segment_16_19536 sp tss_segment_16 0 19536 NULL nohasharray
142843 +disable_so_nrpages_address_space_19536 nrpages address_space 0 19536 &disable_so_sp_tss_segment_16_19536
142844 +disable_so_fb_cvt_pixclock_fndecl_19545 fb_cvt_pixclock fndecl 0 19545 NULL
142845 +disable_so_ipv6_addr_hash_fndecl_19554 ipv6_addr_hash fndecl 0 19554 NULL
142846 +disable_so_fnhe_daddr_fib_nh_exception_19556 fnhe_daddr fib_nh_exception 0 19556 NULL
142847 +disable_so_cir_addr_fintek_dev_19561 cir_addr fintek_dev 0 19561 NULL
142848 +disable_so_saddr_max_pktgen_dev_19567 saddr_max pktgen_dev 0 19567 NULL
142849 +disable_so_check_nnp_nosuid_fndecl_19568 check_nnp_nosuid fndecl 0 19568 NULL
142850 +disable_so_write_phy_reg_fndecl_19585 write_phy_reg fndecl 0-2-3 19585 NULL
142851 +disable_so_garp_join_time_vardecl_garp_c_19597 garp_join_time vardecl_garp.c 0 19597 NULL
142852 +disable_so_signalfd_dequeue_fndecl_19602 signalfd_dequeue fndecl 0-3 19602 NULL
142853 +disable_so_write8_comm_runtime_19603 write8 comm_runtime 4 19603 NULL
142854 +disable_so_sys_semtimedop_fndecl_19605 sys_semtimedop fndecl 1-3-0 19605 NULL
142855 +disable_so_xenvif_rx_queue_timeout_fndecl_19613 xenvif_rx_queue_timeout fndecl 0 19613 NULL
142856 +disable_so_local_cm_response_timeout_ib_cm_req_param_19614 local_cm_response_timeout ib_cm_req_param 0 19614 NULL nohasharray
142857 +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
142858 +disable_so_xtal_cap0p_r820t_freq_range_19614 xtal_cap0p r820t_freq_range 0 19614 &disable_so_ath9k_hw_gen_timer_start_fndecl_19614
142859 +disable_so_time_fmeter_19622 time fmeter 0 19622 NULL
142860 +disable_so_mce_timer_kick_fndecl_19627 mce_timer_kick fndecl 1 19627 NULL
142861 +disable_so_freqn_usb_stream_kernel_19628 freqn usb_stream_kernel 0 19628 NULL
142862 +disable_so_cg_spll_spread_spectrum_2_ci_clock_registers_19639 cg_spll_spread_spectrum_2 ci_clock_registers 0 19639 NULL
142863 +disable_so_ltr501_als_read_samp_freq_fndecl_19642 ltr501_als_read_samp_freq fndecl 0 19642 NULL
142864 +disable_so_addr_snd_sg_page_19645 addr snd_sg_page 0 19645 NULL nohasharray
142865 +disable_so_xfs_btree_kill_root_fndecl_19645 xfs_btree_kill_root fndecl 0 19645 &disable_so_addr_snd_sg_page_19645
142866 +disable_so_xc_get_signal_level_fndecl_19649 xc_get_signal_level fndecl 0 19649 NULL
142867 +disable_so_rx8581_get_datetime_fndecl_19650 rx8581_get_datetime fndecl 0 19650 NULL
142868 +disable_so_mdiv_gk104_clk_info_19653 mdiv gk104_clk_info 0 19653 NULL
142869 +disable_so_c_faddr_rds_connection_19664 c_faddr rds_connection 0 19664 NULL
142870 +disable_so_afs_mntpt_expiry_timeout_vardecl_mntpt_c_19666 afs_mntpt_expiry_timeout vardecl_mntpt.c 0 19666 NULL nohasharray
142871 +disable_so___queue_delayed_work_fndecl_19666 __queue_delayed_work fndecl 1-4 19666 &disable_so_afs_mntpt_expiry_timeout_vardecl_mntpt_c_19666
142872 +disable_so_store_risetime_fndecl_19668 store_risetime fndecl 4-0 19668 NULL
142873 +disable_so_div_r1_pll_values_19670 div_r1 pll_values 0 19670 NULL
142874 +disable_so_tstamp_inet6_ifaddr_19680 tstamp inet6_ifaddr 0 19680 NULL
142875 +disable_so_get_bt_addr_fndecl_19687 get_bt_addr fndecl 0 19687 NULL
142876 +disable_so_clocksource_register_hz_fndecl_19688 clocksource_register_hz fndecl 2 19688 NULL
142877 +disable_so_ceph_mdsmap_get_random_mds_fndecl_19695 ceph_mdsmap_get_random_mds fndecl 0 19695 NULL
142878 +disable_so_addr_qla82xx_md_entry_crb_19696 addr qla82xx_md_entry_crb 0 19696 NULL
142879 +disable_so_frequency_itd1000_state_19704 frequency itd1000_state 0 19704 NULL
142880 +disable_so_parent_tgid_fork_proc_event_19713 parent_tgid fork_proc_event 0 19713 NULL
142881 +disable_so_i_uid_ocfs2_dinode_19720 i_uid ocfs2_dinode 0 19720 NULL
142882 +disable_so_mx2_camera_clock_start_fndecl_19722 mx2_camera_clock_start fndecl 0 19722 NULL
142883 +disable_so_crypto_ccm_decrypt_fndecl_19728 crypto_ccm_decrypt fndecl 0 19728 NULL
142884 +disable_so_seq_put_decimal_ull_fndecl_19739 seq_put_decimal_ull fndecl 3 19739 NULL
142885 +disable_so_capture_source_addr_snd_card_saa7134_19740 capture_source_addr snd_card_saa7134 0 19740 NULL
142886 +disable_so_write_reg_fndecl_19743 write_reg fndecl 0-3 19743 NULL
142887 +disable_so_ndac_aic32x4_rate_divs_19748 ndac aic32x4_rate_divs 0 19748 NULL
142888 +disable_so_hpi_sample_clock_set_source_fndecl_19753 hpi_sample_clock_set_source fndecl 1-0 19753 NULL
142889 +disable_so_address_ipr_ioadl_desc_19756 address ipr_ioadl_desc 0 19756 NULL
142890 +disable_so_curr_hash_dir_private_info_19760 curr_hash dir_private_info 0 19760 NULL
142891 +disable_so_ccp_register_sha_alg_fndecl_19771 ccp_register_sha_alg fndecl 0 19771 NULL
142892 +disable_so_addr_set_port_fndecl_19776 addr_set_port fndecl 2 19776 NULL
142893 +disable_so_gpu_id_kfd_ioctl_get_clock_counters_args_19784 gpu_id kfd_ioctl_get_clock_counters_args 0 19784 NULL
142894 +disable_so_seq_cpl_rx_data_ddp_norss_19788 seq cpl_rx_data_ddp_norss 0 19788 NULL nohasharray
142895 +disable_so_cherryview_rps_max_freq_fndecl_19788 cherryview_rps_max_freq fndecl 0 19788 &disable_so_seq_cpl_rx_data_ddp_norss_19788
142896 +disable_so_inet6_dump_addr_fndecl_19792 inet6_dump_addr fndecl 0 19792 NULL
142897 +disable_so_pixelclock_videomode_19794 pixelclock videomode 0 19794 NULL
142898 +disable_so_hbackporch_v4l2_bt_timings_19806 hbackporch v4l2_bt_timings 0 19806 NULL
142899 +disable_so_dy_runtime_sc_19824 dy runtime_sc 0 19824 NULL nohasharray
142900 +disable_so_dm_btree_insert_fndecl_19824 dm_btree_insert fndecl 0-2 19824 &disable_so_dy_runtime_sc_19824
142901 +disable_so_cpufreq_generic_get_fndecl_19829 cpufreq_generic_get fndecl 0-1 19829 NULL
142902 +disable_so_outdiv_fll_factors_19836 outdiv fll_factors 0 19836 NULL
142903 +disable_so_scd_base_addr_il_priv_19840 scd_base_addr il_priv 0 19840 NULL
142904 +disable_so_acpi_ut_short_divide_fndecl_19845 acpi_ut_short_divide fndecl 1 19845 NULL
142905 +disable_so_timewarn_cs_read_fndecl_19849 timewarn_cs_read fndecl 0 19849 NULL
142906 +disable_so_freq_wmi_rx_action_event_19864 freq wmi_rx_action_event 0 19864 NULL
142907 +disable_so_eeprom_indirect_address_fndecl_19868 eeprom_indirect_address fndecl 0-2-3 19868 NULL
142908 +disable_so_core_clock_nes_adapter_19875 core_clock nes_adapter 0 19875 NULL
142909 +disable_so_ecx_v86_regs_19877 ecx v86_regs 0 19877 NULL
142910 +disable_so_base_clock_show_fndecl_19894 base_clock_show fndecl 0 19894 NULL
142911 +disable_so_jiffies_next_rtl2832_sdr_dev_19897 jiffies_next rtl2832_sdr_dev 0 19897 NULL
142912 +disable_so_process_tgid_exit_proc_event_19898 process_tgid exit_proc_event 0 19898 NULL
142913 +disable_so_n_cipher_suites_wiphy_19902 n_cipher_suites wiphy 0 19902 NULL
142914 +disable_so_fsl_asrc_cal_asrck_divisor_fndecl_19905 fsl_asrc_cal_asrck_divisor fndecl 0-2 19905 NULL
142915 +disable_so_ntimer_qs_tp_params_19910 ntimer_qs tp_params 0 19910 NULL
142916 +disable_so_rf_freq_off_mt7601u_eeprom_params_19920 rf_freq_off mt7601u_eeprom_params 0 19920 NULL
142917 +disable_so_ip_hash_netport4_elem_19921 ip hash_netport4_elem 0 19921 NULL
142918 +disable_so_cnid_hfs_btree_19924 cnid hfs_btree 0 19924 NULL
142919 +disable_so_vblank_lo_detailed_pixel_timing_19925 vblank_lo detailed_pixel_timing 0 19925 NULL
142920 +disable_so_addr_i2c_client_19929 addr i2c_client 0 19929 NULL
142921 +disable_so_addr_nv50_i2c_port_19931 addr nv50_i2c_port 0 19931 NULL
142922 +disable_so_epp_write_addr_parport_operations_19935 epp_write_addr parport_operations 0-3 19935 NULL
142923 +disable_so_ds_last_time_o2hb_disk_slot_19938 ds_last_time o2hb_disk_slot 0 19938 NULL
142924 +disable_so_local_addr_rds_info_tcp_socket_19943 local_addr rds_info_tcp_socket 0 19943 NULL
142925 +disable_so_i_ctime_ext3_inode_19948 i_ctime ext3_inode 0 19948 NULL
142926 +disable_so_maven_set_reg_fndecl_19961 maven_set_reg fndecl 3 19961 NULL
142927 +disable_so_maven_find_exact_clocks_fndecl_19977 maven_find_exact_clocks fndecl 1-2 19977 NULL
142928 +disable_so_tda826x_sleep_fndecl_19981 tda826x_sleep fndecl 0 19981 NULL
142929 +disable_so_rate_snd_pcm_runtime_19986 rate snd_pcm_runtime 0 19986 NULL
142930 +disable_so___pm_runtime_suspend_fndecl_19989 __pm_runtime_suspend fndecl 0 19989 NULL
142931 +disable_so_time_tx_survey_info_19997 time_tx survey_info 0 19997 NULL
142932 +disable_so_rt_time_rt_rq_20001 rt_time rt_rq 0 20001 NULL
142933 +disable_so_message_buffer_address_on_dsp_hpi_hw_obj_20007 message_buffer_address_on_dsp hpi_hw_obj 0 20007 NULL nohasharray
142934 +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
142935 +disable_so_xfs_btree_init_block_fndecl_20025 xfs_btree_init_block fndecl 6 20025 NULL
142936 +disable_so_ds1347_set_time_fndecl_20026 ds1347_set_time fndecl 0 20026 NULL
142937 +disable_so_cyapa_start_runtime_fndecl_20033 cyapa_start_runtime fndecl 0 20033 NULL
142938 +disable_so_mvumi_map_pci_addr_fndecl_20039 mvumi_map_pci_addr fndecl 0 20039 NULL
142939 +disable_so_vpd_paddr_low_lpfc_mbx_read_rev_20047 vpd_paddr_low lpfc_mbx_read_rev 0 20047 NULL
142940 +disable_so_di_atime_qnx4_inode_entry_20056 di_atime qnx4_inode_entry 0 20056 NULL nohasharray
142941 +disable_so_cgid_ipc64_perm_20056 cgid ipc64_perm 0 20056 &disable_so_di_atime_qnx4_inode_entry_20056
142942 +disable_so_bb_watchdog_timeout_ms_ath_hw_20060 bb_watchdog_timeout_ms ath_hw 0 20060 NULL
142943 +disable_so_des5_idmac_desc_64addr_20062 des5 idmac_desc_64addr 0 20062 NULL
142944 +disable_so_buf_addr_mlx5_ib_resize_cq_20068 buf_addr mlx5_ib_resize_cq 0 20068 NULL
142945 +disable_so_is_partially_uptodate_address_space_operations_20075 is_partially_uptodate address_space_operations 2-3 20075 NULL
142946 +disable_so_mask_kvm_mtrr_range_20079 mask kvm_mtrr_range 0 20079 NULL
142947 +disable_so_st_ctime___old_kernel_stat_20080 st_ctime __old_kernel_stat 0 20080 NULL
142948 +disable_so_i_ctime_exofs_fcb_20092 i_ctime exofs_fcb 0 20092 NULL
142949 +disable_so_drbg_kcapi_random_fndecl_20112 drbg_kcapi_random fndecl 3-0 20112 NULL
142950 +disable_so_gid_fuse_in_header_20113 gid fuse_in_header 0 20113 NULL
142951 +disable_so_proto_xfrm_usersa_id_20137 proto xfrm_usersa_id 0 20137 NULL
142952 +disable_so_nsec_timecounter_20144 nsec timecounter 0 20144 NULL nohasharray
142953 +disable_so_kvm_set_shared_msr_fndecl_20144 kvm_set_shared_msr fndecl 2 20144 &disable_so_nsec_timecounter_20144
142954 +disable_so___xfrm4_addr_hash_fndecl_20148 __xfrm4_addr_hash fndecl 0 20148 NULL
142955 +disable_so_hpet_address_vardecl_20150 hpet_address vardecl 0 20150 NULL
142956 +disable_so_next_buf_addr_c67x00_hcd_20169 next_buf_addr c67x00_hcd 0 20169 NULL
142957 +disable_so_urg_seq_tcp_sock_20171 urg_seq tcp_sock 0 20171 NULL
142958 +disable_so_uid_crash_uid_20189 uid crash_uid 0 20189 NULL
142959 +disable_so_force_addr_vardecl_i2c_sis5595_c_20194 force_addr vardecl_i2c-sis5595.c 0 20194 NULL
142960 +disable_so_get_random_bytes_fndecl_20208 get_random_bytes fndecl 2 20208 NULL
142961 +disable_so_end_pci_bus_region_20220 end pci_bus_region 0 20220 NULL
142962 +disable_so_ptp_devt_vardecl_ptp_clock_c_20222 ptp_devt vardecl_ptp_clock.c 0 20222 NULL
142963 +disable_so_rp5c01_read_time_fndecl_20225 rp5c01_read_time fndecl 0 20225 NULL
142964 +disable_so_scsi_inq_timeout_vardecl_scsi_scan_c_20228 scsi_inq_timeout vardecl_scsi_scan.c 0 20228 NULL
142965 +disable_so_crypto_report_alg_fndecl_20233 crypto_report_alg fndecl 0 20233 NULL
142966 +disable_so_cache_flush_timeout_vardecl_ms_block_c_20240 cache_flush_timeout vardecl_ms_block.c 0 20240 NULL nohasharray
142967 +disable_so_freq_to_note_fndecl_20240 freq_to_note fndecl 0-1 20240 &disable_so_cache_flush_timeout_vardecl_ms_block_c_20240
142968 +disable_so_sdhci_runtime_pm_put_fndecl_20243 sdhci_runtime_pm_put fndecl 0 20243 NULL nohasharray
142969 +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
142970 +disable_so_blkaddr_fsync_inode_entry_20244 blkaddr fsync_inode_entry 0 20244 NULL
142971 +disable_so_refb_r_div_ad9523_platform_data_20245 refb_r_div ad9523_platform_data 0 20245 NULL nohasharray
142972 +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
142973 +disable_so_buf_count_ccp_aes_cmac_req_ctx_20252 buf_count ccp_aes_cmac_req_ctx 0 20252 NULL
142974 +disable_so_nfs4_proc_get_lease_time_fndecl_20254 nfs4_proc_get_lease_time fndecl 0 20254 NULL nohasharray
142975 +disable_so_dma_addr_enet_cb_20254 dma_addr enet_cb 0 20254 &disable_so_nfs4_proc_get_lease_time_fndecl_20254
142976 +disable_so_eax_user_regs_struct32_20260 eax user_regs_struct32 0 20260 NULL
142977 +disable_so_freq_wmi_remain_on_chnl_cmd_20271 freq wmi_remain_on_chnl_cmd 0 20271 NULL
142978 +disable_so_esp_tss_segment_32_20300 esp tss_segment_32 0 20300 NULL
142979 +disable_so_hash_netportnet6_expire_fndecl_20301 hash_netportnet6_expire fndecl 4 20301 NULL
142980 +disable_so_dma_buffer_sst_module_runtime_context_20307 dma_buffer sst_module_runtime_context 0 20307 NULL nohasharray
142981 +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
142982 +disable_so_nosnoop_pbladdr_fw_ri_tpte_20317 nosnoop_pbladdr fw_ri_tpte 0 20317 NULL
142983 +disable_so_sir_addr_sockaddr_irda_20319 sir_addr sockaddr_irda 0 20319 NULL
142984 +disable_so_iter_div_u64_rem_fndecl_20326 iter_div_u64_rem fndecl 0 20326 NULL
142985 +disable_so_ps2_adjust_timeout_fndecl_20329 ps2_adjust_timeout fndecl 0-3-2 20329 NULL nohasharray
142986 +disable_so_ztime_trackpoint_data_20329 ztime trackpoint_data 0 20329 &disable_so_ps2_adjust_timeout_fndecl_20329
142987 +disable_so_ui_uid_ufs2_inode_20330 ui_uid ufs2_inode 0 20330 NULL nohasharray
142988 +disable_so_stb6000_sleep_fndecl_20330 stb6000_sleep fndecl 0 20330 &disable_so_ui_uid_ufs2_inode_20330
142989 +disable_so_gfs2_bit_search_fndecl_20331 gfs2_bit_search fndecl 0-2 20331 NULL
142990 +disable_so_ccp_run_aes_cmac_cmd_fndecl_20335 ccp_run_aes_cmac_cmd fndecl 0 20335 NULL
142991 +disable_so_compat_sys_clock_gettime_fndecl_20336 compat_sys_clock_gettime fndecl 1 20336 NULL
142992 +disable_so_div_fc2580_pll_20347 div fc2580_pll 0 20347 NULL
142993 +disable_so_xfrm_spi_hash_fndecl_20353 xfrm_spi_hash fndecl 0-3-4-5 20353 NULL
142994 +disable_so_compute_duty_cycle_fndecl_20356 compute_duty_cycle fndecl 0-2 20356 NULL
142995 +disable_so_pmcraid_read_interrupts_fndecl_20362 pmcraid_read_interrupts fndecl 0 20362 NULL
142996 +disable_so_receive_bitmap_fndecl_20365 receive_bitmap fndecl 0 20365 NULL
142997 +disable_so_ccycle_esp_20366 ccycle esp 0 20366 NULL
142998 +disable_so_rspi_wait_for_interrupt_fndecl_20368 rspi_wait_for_interrupt fndecl 3-0 20368 NULL
142999 +disable_so_bitmap_startwrite_fndecl_20371 bitmap_startwrite fndecl 2-3 20371 NULL
143000 +disable_so_crypto_rfc4543_decrypt_fndecl_20376 crypto_rfc4543_decrypt fndecl 0 20376 NULL
143001 +disable_so_acpi_os_signal_fndecl_20378 acpi_os_signal fndecl 0 20378 NULL
143002 +disable_so_interrupt_type___vxge_hw_fifo_20379 interrupt_type __vxge_hw_fifo 0 20379 NULL
143003 +disable_so_address_lo_lpfc_rqe_20386 address_lo lpfc_rqe 0 20386 NULL
143004 +disable_so_addr_rsxx_reg_access_20389 addr rsxx_reg_access 0 20389 NULL
143005 +disable_so_vpm_read_address_fndecl_20399 vpm_read_address fndecl 0 20399 NULL
143006 +disable_so_block_addr_f2fs_nat_entry_20409 block_addr f2fs_nat_entry 0 20409 NULL
143007 +disable_so_backlight_duty_cycle_psb_intel_mode_device_20421 backlight_duty_cycle psb_intel_mode_device 0 20421 NULL
143008 +disable_so_skd_start_timer_fndecl_20432 skd_start_timer fndecl 0 20432 NULL
143009 +disable_so_cmd64x_program_timings_fndecl_20435 cmd64x_program_timings fndecl 2 20435 NULL
143010 +disable_so_chgfreq_cs42l52_platform_data_20448 chgfreq cs42l52_platform_data 0 20448 NULL
143011 +disable_so_tvaudio_sleep_fndecl_20455 tvaudio_sleep fndecl 2 20455 NULL
143012 +disable_so_simplefb_clocks_init_fndecl_20466 simplefb_clocks_init fndecl 0 20466 NULL
143013 +disable_so_last_time_stats_20477 last time_stats 0 20477 NULL
143014 +disable_so_min_freq_intel_gen6_power_mgmt_20480 min_freq intel_gen6_power_mgmt 0 20480 NULL
143015 +disable_so_il_dbgfs_interrupt_read_fndecl_20484 il_dbgfs_interrupt_read fndecl 3-0 20484 NULL
143016 +disable_so_final_timeout_irlap_cb_20486 final_timeout irlap_cb 0 20486 NULL
143017 +disable_so_sec_btrfs_timespec_20492 sec btrfs_timespec 0 20492 NULL
143018 +disable_so_bitmap_prepare_for_write_fndecl_20495 bitmap_prepare_for_write fndecl 3 20495 NULL
143019 +disable_so_cg_spll_func_cntl_3_ni_clock_registers_20497 cg_spll_func_cntl_3 ni_clock_registers 0 20497 NULL
143020 +disable_so_pch_udc_disable_interrupts_fndecl_20502 pch_udc_disable_interrupts fndecl 2 20502 NULL
143021 +disable_so_i_mtime_bfs_inode_20503 i_mtime bfs_inode 0 20503 NULL
143022 +disable_so_timeout_nft_dynset_20509 timeout nft_dynset 0 20509 NULL
143023 +disable_so_ni_populate_memory_timing_parameters_fndecl_20513 ni_populate_memory_timing_parameters fndecl 0 20513 NULL
143024 +disable_so_scnprintf_fndecl_20531 scnprintf fndecl 0-2 20531 NULL nohasharray
143025 +disable_so_select_addr_qla8xxx_minidump_entry_queue_20531 select_addr qla8xxx_minidump_entry_queue 0 20531 &disable_so_scnprintf_fndecl_20531
143026 +disable_so___ww_mutex_lock_interruptible_slowpath_fndecl_20533 __ww_mutex_lock_interruptible_slowpath fndecl 0 20533 NULL
143027 +disable_so_compute_subtree_max_end_fndecl_20536 compute_subtree_max_end fndecl 0 20536 NULL
143028 +disable_so_wlc_lcnphy_qdiv_roundup_fndecl_20539 wlc_lcnphy_qdiv_roundup fndecl 0-2-1 20539 NULL
143029 +disable_so_value_ieee80211_timeout_interval_ie_20540 value ieee80211_timeout_interval_ie 0 20540 NULL
143030 +disable_so_skb_put_le32_fndecl_20551 skb_put_le32 fndecl 2 20551 NULL
143031 +disable_so_get_setup_data_paddr_fndecl_20558 get_setup_data_paddr fndecl 0 20558 NULL
143032 +disable_so_i_mtime_nilfs_inode_20563 i_mtime nilfs_inode 0 20563 NULL
143033 +disable_so_cipher_key_params_20564 cipher key_params 0 20564 NULL
143034 +disable_so_iscsit_na_random_datain_pdu_offsets_fndecl_20565 iscsit_na_random_datain_pdu_offsets fndecl 0 20565 NULL
143035 +disable_so_delay_mult_qib_pportdata_20567 delay_mult qib_pportdata 0 20567 NULL
143036 +disable_so_pm_timer_block_acpi_table_fadt_20569 pm_timer_block acpi_table_fadt 0 20569 NULL
143037 +disable_so_addr_data_si_sm_io_20586 addr_data si_sm_io 0 20586 NULL nohasharray
143038 +disable_so_sib_flowinfo_sockaddr_ib_20586 sib_flowinfo sockaddr_ib 0 20586 &disable_so_addr_data_si_sm_io_20586
143039 +disable_so_dll_cntl_rv770_clock_registers_20601 dll_cntl rv770_clock_registers 0 20601 NULL nohasharray
143040 +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
143041 +disable_so_ndtc_hash_mask_ndt_config_20603 ndtc_hash_mask ndt_config 0 20603 NULL
143042 +disable_so_borrow_defer_timestamp_brcmf_fws_info_20615 borrow_defer_timestamp brcmf_fws_info 0 20615 NULL
143043 +disable_so_wakeup_max_time_show_fndecl_20622 wakeup_max_time_show fndecl 0 20622 NULL
143044 +disable_so_tw_flowlabel_inet_timewait_sock_20634 tw_flowlabel inet_timewait_sock 0 20634 NULL
143045 +disable_so_ib_baseaddr_l_mvumi_hs_page4_20645 ib_baseaddr_l mvumi_hs_page4 0 20645 NULL
143046 +disable_so_shash_register_instance_fndecl_20652 shash_register_instance fndecl 0 20652 NULL
143047 +disable_so_snd_usb_clock_find_source_fndecl_20655 snd_usb_clock_find_source fndecl 0-2 20655 NULL
143048 +disable_so_g_dv_timings_v4l2_subdev_video_ops_20656 g_dv_timings v4l2_subdev_video_ops 0 20656 NULL
143049 +disable_so_radio_addr_em28xx_board_20659 radio_addr em28xx_board 0 20659 NULL
143050 +disable_so_cx24117_sleep_fndecl_20661 cx24117_sleep fndecl 0 20661 NULL
143051 +disable_so_run_one_delayed_ref_fndecl_20668 run_one_delayed_ref fndecl 0 20668 NULL nohasharray
143052 +disable_so_saddr_ircomm_info_20668 saddr ircomm_info 0 20668 &disable_so_run_one_delayed_ref_fndecl_20668
143053 +disable_so_i2c_addr_req_t_20671 i2c_addr req_t 0 20671 NULL
143054 +disable_so_mcryptd_hash_import_fndecl_20673 mcryptd_hash_import fndecl 0 20673 NULL
143055 +disable_so_ath10k_reg_addr_read_fndecl_20675 ath10k_reg_addr_read fndecl 3-0 20675 NULL nohasharray
143056 +disable_so_frequency_stepsize_dvb_frontend_info_20675 frequency_stepsize dvb_frontend_info 0 20675 &disable_so_ath10k_reg_addr_read_fndecl_20675
143057 +disable_so_latency_timer_show_fndecl_20676 latency_timer_show fndecl 0 20676 NULL nohasharray
143058 +disable_so_total_bytes_transferred_snd_compr_runtime_20676 total_bytes_transferred snd_compr_runtime 0 20676 &disable_so_latency_timer_show_fndecl_20676
143059 +disable_so_control_addr_qla8xxx_minidump_entry_cache_20678 control_addr qla8xxx_minidump_entry_cache 0 20678 NULL
143060 +disable_so_timeout_i2c_algo_bit_data_20687 timeout i2c_algo_bit_data 0 20687 NULL
143061 +disable_so_lookup_address_fndecl_20689 lookup_address fndecl 1 20689 NULL
143062 +disable_so_pcf8523_rtc_read_time_fndecl_20690 pcf8523_rtc_read_time fndecl 0 20690 NULL
143063 +disable_so_freq_nvbios_cstepX_20695 freq nvbios_cstepX 0 20695 NULL
143064 +disable_so_seq_virtio_gpu_fence_20701 seq virtio_gpu_fence 0 20701 NULL
143065 +disable_so_ftime_qlcnic_filter_20707 ftime qlcnic_filter 0 20707 NULL nohasharray
143066 +disable_so_myri10ge_rss_hash_vardecl_myri10ge_c_20707 myri10ge_rss_hash vardecl_myri10ge.c 0 20707 &disable_so_ftime_qlcnic_filter_20707
143067 +disable_so_mwifiex_cmd_802_11_mac_address_fndecl_20714 mwifiex_cmd_802_11_mac_address fndecl 0 20714 NULL
143068 +disable_so_typeAndTimezone_timestamp_20722 typeAndTimezone timestamp 0 20722 NULL
143069 +disable_so_btrfs_delayed_update_inode_fndecl_20726 btrfs_delayed_update_inode fndecl 0 20726 NULL
143070 +disable_so_dsc_timeout_ide_tape_obj_20727 dsc_timeout ide_tape_obj 0 20727 NULL
143071 +disable_so_stb0899_dvbs2_set_carr_freq_fndecl_20730 stb0899_dvbs2_set_carr_freq fndecl 2-3 20730 NULL
143072 +disable_so_wl1271_acx_service_period_timeout_fndecl_20736 wl1271_acx_service_period_timeout fndecl 0 20736 NULL
143073 +disable_so_am335x_tsc_se_clr_fndecl_20745 am335x_tsc_se_clr fndecl 2 20745 NULL
143074 +disable_so_node_guid_ib_node_info_20750 node_guid ib_node_info 0 20750 NULL nohasharray
143075 +disable_so_rsxx_addr8_to_laddr_fndecl_20750 rsxx_addr8_to_laddr fndecl 0-1 20750 &disable_so_node_guid_ib_node_info_20750
143076 +disable_so_nilfs_btree_propagate_p_fndecl_20757 nilfs_btree_propagate_p fndecl 0 20757 NULL
143077 +disable_so_read_file_antenna_diversity_fndecl_20758 read_file_antenna_diversity fndecl 0 20758 NULL
143078 +disable_so_dev_pm_opp_find_freq_exact_fndecl_20768 dev_pm_opp_find_freq_exact fndecl 2 20768 NULL
143079 +disable_so_mpll_dq_func_cntl_ni_clock_registers_20779 mpll_dq_func_cntl ni_clock_registers 0 20779 NULL
143080 +disable_so_print_time_fndecl_20783 print_time fndecl 1-0 20783 NULL
143081 +disable_so_store_fan_stop_time_fndecl_20785 store_fan_stop_time fndecl 0-4 20785 NULL nohasharray
143082 +disable_so_gpu_addr_r600_vram_scratch_20785 gpu_addr r600_vram_scratch 0 20785 &disable_so_store_fan_stop_time_fndecl_20785
143083 +disable_so_s5m8767_set_voltage_time_sel_fndecl_20788 s5m8767_set_voltage_time_sel fndecl 0-2-3 20788 NULL nohasharray
143084 +disable_so_addr_kvm_async_pf_20788 addr kvm_async_pf 0 20788 &disable_so_s5m8767_set_voltage_time_sel_fndecl_20788
143085 +disable_so_rxLifetime_ConfigRid_20793 rxLifetime ConfigRid 0 20793 NULL
143086 +disable_so_downdelay_bond_params_20794 downdelay bond_params 0 20794 NULL
143087 +disable_so_dma_address_info_20796 dma address_info 0 20796 NULL
143088 +disable_so_write16_async_rtl_io_20799 write16_async rtl_io 2-3 20799 NULL
143089 +disable_so_sec_2_cycles_fndecl_20803 sec_2_cycles fndecl 0-1 20803 NULL
143090 +disable_so_nsec_base_pvclock_gtod_data_20804 nsec_base pvclock_gtod_data 0 20804 NULL
143091 +disable_so_ndo_set_mac_address_net_device_ops_20806 ndo_set_mac_address net_device_ops 0 20806 NULL
143092 +disable_so_crypto_dump_report_fndecl_20811 crypto_dump_report fndecl 0 20811 NULL
143093 +disable_so_ttime_total_cfq_ttime_20813 ttime_total cfq_ttime 0 20813 NULL
143094 +disable_so_freq_chan_info_2064_lcnphy_20814 freq chan_info_2064_lcnphy 0 20814 NULL
143095 +disable_so_msleep_fndecl_20815 msleep fndecl 1 20815 NULL nohasharray
143096 +disable_so_freq_hz_xc4000_priv_20815 freq_hz xc4000_priv 0 20815 &disable_so_msleep_fndecl_20815
143097 +disable_so_t4_set_params_nosleep_fndecl_20819 t4_set_params_nosleep fndecl 0-2-3-4 20819 NULL
143098 +disable_so_get_next_timer_interrupt_fndecl_20832 get_next_timer_interrupt fndecl 0-1 20832 NULL
143099 +disable_so_vol_bit_width_anatop_regulator_20852 vol_bit_width anatop_regulator 0 20852 NULL
143100 +disable_so_VSyncStart_xtimings_20858 VSyncStart xtimings 0 20858 NULL
143101 +disable_so_calibrate_delay_is_known_fndecl_20859 calibrate_delay_is_known fndecl 0 20859 NULL
143102 +disable_so_handling_delay_adc_jack_data_20874 handling_delay adc_jack_data 0 20874 NULL
143103 +disable_so_fm3130_get_time_fndecl_20875 fm3130_get_time fndecl 0 20875 NULL
143104 +disable_so_addr_hi_mv_sg_20880 addr_hi mv_sg 0 20880 NULL
143105 +disable_so_print_time_fndecl_20896 print_time fndecl 1 20896 NULL nohasharray
143106 +disable_so_ini_jiffies_tm6000_dmaqueue_20896 ini_jiffies tm6000_dmaqueue 0 20896 &disable_so_print_time_fndecl_20896
143107 +disable_so_timeout_carl9170_tx_info_20900 timeout carl9170_tx_info 0 20900 NULL
143108 +disable_so_phys_addr_t4_sq_20908 phys_addr t4_sq 0 20908 NULL
143109 +disable_so_ns_2_cycles_fndecl_20913 ns_2_cycles fndecl 0-1 20913 NULL
143110 +disable_so_number_fndecl_20920 number fndecl 3 20920 NULL
143111 +disable_so_n_wm8978_pll_div_20930 n wm8978_pll_div 0 20930 NULL
143112 +disable_so_snd_es1938_interrupt_fndecl_20934 snd_es1938_interrupt fndecl 1 20934 NULL
143113 +disable_so___ilog2_u64_fndecl_20935 __ilog2_u64 fndecl 0-1 20935 NULL
143114 +disable_so_acpi_target_sleep_state_vardecl_sleep_c_20940 acpi_target_sleep_state vardecl_sleep.c 0 20940 NULL
143115 +disable_so_wq_cpumask_store_fndecl_20950 wq_cpumask_store fndecl 0-4 20950 NULL
143116 +disable_so_bmc150_accel_get_startup_times_fndecl_20957 bmc150_accel_get_startup_times fndecl 0 20957 NULL
143117 +disable_so_antdiv_ctl2_modal_eep_4k_header_20958 antdiv_ctl2 modal_eep_4k_header 0 20958 NULL
143118 +disable_so_rc_keydown_notimeout_fndecl_20964 rc_keydown_notimeout fndecl 4-3 20964 NULL
143119 +disable_so_inet6_fill_ifaddr_fndecl_20965 inet6_fill_ifaddr fndecl 0-3-5 20965 NULL
143120 +disable_so_hca_core_clock_mlx4_caps_20972 hca_core_clock mlx4_caps 0 20972 NULL
143121 +disable_so_netxen_set_interrupt_mode_fndecl_20973 netxen_set_interrupt_mode fndecl 2 20973 NULL
143122 +disable_so_slottime_sixpack_20976 slottime sixpack 0 20976 NULL
143123 +disable_so_mpll_ad_func_cntl_rv770_clock_registers_20978 mpll_ad_func_cntl rv770_clock_registers 0 20978 NULL
143124 +disable_so_uhash_entries_vardecl_udp_c_20980 uhash_entries vardecl_udp.c 0 20980 NULL
143125 +disable_so_s2mps11_regulator_set_voltage_time_sel_fndecl_20983 s2mps11_regulator_set_voltage_time_sel fndecl 0-2-3 20983 NULL
143126 +disable_so_mlx4_ib_query_gid_fndecl_20997 mlx4_ib_query_gid fndecl 0-2-3 20997 NULL
143127 +disable_so_ep_timeout_secs_vardecl_iwch_cm_c_20999 ep_timeout_secs vardecl_iwch_cm.c 0 20999 NULL nohasharray
143128 +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
143129 +disable_so_vddc_radeon_clock_and_voltage_limits_21012 vddc radeon_clock_and_voltage_limits 0 21012 NULL
143130 +disable_so_spu_sleep_ds_device_21015 spu_sleep ds_device 0 21015 NULL
143131 +disable_so_dqb_btime_if_dqblk_21019 dqb_btime if_dqblk 0 21019 NULL
143132 +disable_so_sg_frame_phys_addr_megasas_cmd_fusion_21025 sg_frame_phys_addr megasas_cmd_fusion 0 21025 NULL
143133 +disable_so_radeon_crtc_set_base_atomic_fndecl_21027 radeon_crtc_set_base_atomic fndecl 0-3-4 21027 NULL
143134 +disable_so_i40e_get_san_mac_addr_fndecl_21029 i40e_get_san_mac_addr fndecl 0 21029 NULL
143135 +disable_so_regmap_del_irq_chip_fndecl_21031 regmap_del_irq_chip fndecl 1 21031 NULL
143136 +disable_so_res_hash_dlm_rsb_21034 res_hash dlm_rsb 0 21034 NULL
143137 +disable_so_early_acpi_parse_madt_lapic_addr_ovr_fndecl_21041 early_acpi_parse_madt_lapic_addr_ovr fndecl 0 21041 NULL
143138 +disable_so_tw_tos_inet_timewait_sock_21047 tw_tos inet_timewait_sock 0 21047 NULL
143139 +disable_so_cfg80211_get_chans_dfs_cac_time_fndecl_21052 cfg80211_get_chans_dfs_cac_time fndecl 0-2-3 21052 NULL
143140 +disable_so_random_tipc_net_21055 random tipc_net 0 21055 NULL
143141 +disable_so_tag_reg_addr_qla8xxx_minidump_entry_cache_21058 tag_reg_addr qla8xxx_minidump_entry_cache 0 21058 NULL
143142 +disable_so_m1_gma_clock_t_21062 m1 gma_clock_t 0 21062 NULL
143143 +disable_so_cutime_signal_struct_21069 cutime signal_struct 0 21069 NULL
143144 +disable_so_frac_pos_dummy_systimer_pcm_21070 frac_pos dummy_systimer_pcm 0 21070 NULL
143145 +disable_so_mmc_sdio_runtime_resume_fndecl_21078 mmc_sdio_runtime_resume fndecl 0 21078 NULL
143146 +disable_so_last_write_time_smb_com_query_information_rsp_21093 last_write_time smb_com_query_information_rsp 0 21093 NULL
143147 +disable_so_ssb_sdio_set_sbaddr_window_fndecl_21116 ssb_sdio_set_sbaddr_window fndecl 0-2 21116 NULL
143148 +disable_so_apei_clear_mce_fndecl_21119 apei_clear_mce fndecl 0 21119 NULL
143149 +disable_so_pnfs_layoutget_retry_bit_wait_fndecl_21127 pnfs_layoutget_retry_bit_wait fndecl 0 21127 NULL
143150 +disable_so_rq_page_table_addr_lo_iscsi_kwqe_conn_offload2_21144 rq_page_table_addr_lo iscsi_kwqe_conn_offload2 0 21144 NULL
143151 +disable_so_addrconf_sysctl_forward_fndecl_21146 addrconf_sysctl_forward fndecl 0 21146 NULL
143152 +disable_so_bcma_pmu_get_bus_clock_fndecl_21147 bcma_pmu_get_bus_clock fndecl 0 21147 NULL nohasharray
143153 +disable_so_address_acpi_generic_address_21147 address acpi_generic_address 0 21147 &disable_so_bcma_pmu_get_bus_clock_fndecl_21147
143154 +disable_so_phys_addr__DMABUFFERENTRY_21149 phys_addr _DMABUFFERENTRY 0 21149 NULL
143155 +disable_so_phy_addr_bnx2x_port_21152 phy_addr bnx2x_port 0 21152 NULL
143156 +disable_so_demod_address_va1j5jf8007t_config_21154 demod_address va1j5jf8007t_config 0 21154 NULL
143157 +disable_so_mgt_orb_timeout_sbp2_target_21164 mgt_orb_timeout sbp2_target 0 21164 NULL
143158 +disable_so_io_addr_blogic_probeinfo_21171 io_addr blogic_probeinfo 0 21171 NULL
143159 +disable_so_stag_c2_data_addr_21185 stag c2_data_addr 0 21185 NULL
143160 +disable_so_idle_timeout_set_fndecl_21189 idle_timeout_set fndecl 2 21189 NULL nohasharray
143161 +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
143162 +disable_so_poll_schedule_timeout_fndecl_21195 poll_schedule_timeout fndecl 4 21195 NULL
143163 +disable_so_fb_cvt_ideal_duty_cycle_fndecl_21197 fb_cvt_ideal_duty_cycle fndecl 0 21197 NULL
143164 +disable_so_dwell_time_brcmf_fil_af_params_le_21198 dwell_time brcmf_fil_af_params_le 0 21198 NULL
143165 +disable_so_pciehp_poll_time_vardecl_21204 pciehp_poll_time vardecl 0 21204 NULL
143166 +disable_so_sha1_base_do_update_fndecl_21207 sha1_base_do_update fndecl 3 21207 NULL
143167 +disable_so_arizona_runtime_suspend_fndecl_21209 arizona_runtime_suspend fndecl 0 21209 NULL nohasharray
143168 +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
143169 +disable_so_xc_get_frequency_error_fndecl_21217 xc_get_frequency_error fndecl 0 21217 NULL
143170 +disable_so_phys_addr_megasas_sge_skinny_21220 phys_addr megasas_sge_skinny 0 21220 NULL
143171 +disable_so_i2c_addr_radeon_router_21224 i2c_addr radeon_router 0 21224 NULL
143172 +disable_so_invalidatepage_address_space_operations_21227 invalidatepage address_space_operations 2-3 21227 NULL
143173 +disable_so_usb_free_coherent_fndecl_21239 usb_free_coherent fndecl 2-4 21239 NULL
143174 +disable_so_ci_populate_memory_timing_parameters_fndecl_21251 ci_populate_memory_timing_parameters fndecl 0-2-3 21251 NULL
143175 +disable_so_compat_sys_semtimedop_fndecl_21253 compat_sys_semtimedop fndecl 3-1-0 21253 NULL
143176 +disable_so_blkcipher_walk_done_fndecl_21256 blkcipher_walk_done fndecl 0-3 21256 NULL
143177 +disable_so_iscsi_tpg_attrib_store_login_timeout_fndecl_21278 iscsi_tpg_attrib_store_login_timeout fndecl 0-3 21278 NULL
143178 +disable_so_tuner_address_mt2063_config_21279 tuner_address mt2063_config 0 21279 NULL
143179 +disable_so_register_refined_jiffies_fndecl_21283 register_refined_jiffies fndecl 1 21283 NULL
143180 +disable_so_debug_dma_unmap_sg_fndecl_21286 debug_dma_unmap_sg fndecl 3 21286 NULL
143181 +disable_so_of_do_get_timings_fndecl_21294 of_do_get_timings fndecl 0 21294 NULL
143182 +disable_so_mtrr_file_del_fndecl_21306 mtrr_file_del fndecl 1-2 21306 NULL
143183 +disable_so_set_timeout_watchdog_ops_21311 set_timeout watchdog_ops 2-0 21311 NULL
143184 +disable_so_ipv6_addr_prefix_fndecl_21318 ipv6_addr_prefix fndecl 3 21318 NULL
143185 +disable_so_ath6kl_disconnect_timeout_read_fndecl_21329 ath6kl_disconnect_timeout_read fndecl 3-0 21329 NULL
143186 +disable_so_tx_duty_cycle_cck_brcms_c_info_21336 tx_duty_cycle_cck brcms_c_info 0 21336 NULL
143187 +disable_so_pentium3_get_frequency_fndecl_21339 pentium3_get_frequency fndecl 0 21339 NULL
143188 +disable_so_ldr_img_ir_timing_regvals_21340 ldr img_ir_timing_regvals 0 21340 NULL
143189 +disable_so_extended_cpuid_level_cpuinfo_x86_21354 extended_cpuid_level cpuinfo_x86 0 21354 NULL
143190 +disable_so_btrfs_dev_replace_time_started_fndecl_21355 btrfs_dev_replace_time_started fndecl 0 21355 NULL
143191 +disable_so_sys_getrandom_fndecl_21357 sys_getrandom fndecl 3-0-2 21357 NULL
143192 +disable_so_bit_offset_bm_xfer_ctx_21370 bit_offset bm_xfer_ctx 0 21370 NULL
143193 +disable_so_dtime_inet_peer_21374 dtime inet_peer 0 21374 NULL
143194 +disable_so_ac_btime_acct_v3_21378 ac_btime acct_v3 0 21378 NULL nohasharray
143195 +disable_so_ccp_aes_cmac_final_fndecl_21378 ccp_aes_cmac_final fndecl 0 21378 &disable_so_ac_btime_acct_v3_21378
143196 +disable_so_clock_sdhci_host_21381 clock sdhci_host 0 21381 NULL
143197 +disable_so_check_delayed_ref_fndecl_21388 check_delayed_ref fndecl 0-4-5-6 21388 NULL
143198 +disable_so_ath_gen_timer_alloc_fndecl_21393 ath_gen_timer_alloc fndecl 5 21393 NULL
143199 +disable_so_irq_address_info_21405 irq address_info 0 21405 NULL
143200 +disable_so_mpll_ad_func_cntl_2_rv770_clock_registers_21412 mpll_ad_func_cntl_2 rv770_clock_registers 0 21412 NULL
143201 +disable_so_sctp_copy_one_addr_fndecl_21416 sctp_copy_one_addr fndecl 0-5 21416 NULL
143202 +disable_so_high_mcp_dma_addr_21433 high mcp_dma_addr 0 21433 NULL
143203 +disable_so_volt_change_delay_si_ulv_param_21442 volt_change_delay si_ulv_param 0 21442 NULL
143204 +disable_so_msr_bitmap_vmcs12_21445 msr_bitmap vmcs12 0 21445 NULL
143205 +disable_so_setauthsize_crypto_aead_21450 setauthsize crypto_aead 2 21450 NULL
143206 +disable_so_next_txpwr_check_time_b43_phy_21453 next_txpwr_check_time b43_phy 0 21453 NULL
143207 +disable_so_nl80211_send_assoc_timeout_fndecl_21464 nl80211_send_assoc_timeout fndecl 4 21464 NULL nohasharray
143208 +disable_so_i_no_addr_gfs2_inode_21464 i_no_addr gfs2_inode 0 21464 &disable_so_nl80211_send_assoc_timeout_fndecl_21464
143209 +disable_so_indirect_dma_addr_srp_request_21474 indirect_dma_addr srp_request 0 21474 NULL
143210 +disable_so_btrfs_uuid_iter_rem_fndecl_21476 btrfs_uuid_iter_rem fndecl 0-3-4 21476 NULL
143211 +disable_so_addr_op_msr_21481 addr op_msr 0 21481 NULL
143212 +disable_so_sysctl_x25_call_request_timeout_vardecl_21486 sysctl_x25_call_request_timeout vardecl 0 21486 NULL
143213 +disable_so_guard_time_trf7970a_21487 guard_time trf7970a 0 21487 NULL
143214 +disable_so_mclk_div_mcam_camera_21501 mclk_div mcam_camera 0 21501 NULL
143215 +disable_so_cpu_to_fs16_fndecl_21502 cpu_to_fs16 fndecl 0-2 21502 NULL
143216 +disable_so_dma_addr_dma_mapping_21503 dma_addr dma_mapping 0 21503 NULL
143217 +disable_so_extra_buf1_address_ene_device_21504 extra_buf1_address ene_device 0 21504 NULL
143218 +disable_so_last_completion_time_lpfc_hba_21515 last_completion_time lpfc_hba 0 21515 NULL
143219 +disable_so_il_add_beacon_time_fndecl_21519 il_add_beacon_time fndecl 0-4-3-2 21519 NULL
143220 +disable_so_stats_reset_time_bfa_port_s_21525 stats_reset_time bfa_port_s 0 21525 NULL
143221 +disable_so_rptr_gpu_addr_kernel_queue_21535 rptr_gpu_addr kernel_queue 0 21535 NULL nohasharray
143222 +disable_so_ceph_crypto_init_fndecl_21535 ceph_crypto_init fndecl 0 21535 &disable_so_rptr_gpu_addr_kernel_queue_21535
143223 +disable_so_out_of_line_wait_on_bit_lock_fndecl_21538 out_of_line_wait_on_bit_lock fndecl 0 21538 NULL
143224 +disable_so_demod_address_s5h1409_config_21550 demod_address s5h1409_config 0 21550 NULL
143225 +disable_so_bmsr_cphy_21556 bmsr cphy 0 21556 NULL
143226 +disable_so_small_buf_phy_addr_low_ql3_adapter_21561 small_buf_phy_addr_low ql3_adapter 0 21561 NULL
143227 +disable_so_bitmap_start_sync_fndecl_21564 bitmap_start_sync fndecl 2-4 21564 NULL
143228 +disable_so_last_frequency_mb86a20s_state_21569 last_frequency mb86a20s_state 0 21569 NULL
143229 +disable_so_addr_hi_st_ss_sgitem_21571 addr_hi st_ss_sgitem 0 21571 NULL
143230 +disable_so_last_dev_address_fndecl_21603 last_dev_address fndecl 0-1 21603 NULL
143231 +disable_so_account_user_time_fndecl_21611 account_user_time fndecl 2-3 21611 NULL
143232 +disable_so_mdiv_nvkm_domain_21612 mdiv nvkm_domain 0 21612 NULL
143233 +disable_so_mclk_div_wm8804_priv_21616 mclk_div wm8804_priv 0 21616 NULL
143234 +disable_so_dclk___fb_timings_21625 dclk __fb_timings 0 21625 NULL
143235 +disable_so_ts_jiffies_xpc_rsvd_page_21630 ts_jiffies xpc_rsvd_page 0 21630 NULL
143236 +disable_so_wlcore_translate_addr_fndecl_21631 wlcore_translate_addr fndecl 0-2 21631 NULL
143237 +disable_so_clock_mult_par_info_21633 clock_mult par_info 0 21633 NULL
143238 +disable_so_timeout_mgmt_cp_set_discoverable_21656 timeout mgmt_cp_set_discoverable 0 21656 NULL
143239 +disable_so_timeout_jiffies_jmb38x_ms_host_21666 timeout_jiffies jmb38x_ms_host 0 21666 NULL
143240 +disable_so_ax88179_set_mac_addr_fndecl_21668 ax88179_set_mac_addr fndecl 0 21668 NULL
143241 +disable_so_signalfd_copyinfo_fndecl_21691 signalfd_copyinfo fndecl 0 21691 NULL
143242 +disable_so_crypto_cbc_setkey_fndecl_21695 crypto_cbc_setkey fndecl 0-3 21695 NULL
143243 +disable_so_pm_freeze_timeout_show_fndecl_21696 pm_freeze_timeout_show fndecl 0 21696 NULL
143244 +disable_so_ip_clock_khz_ocores_i2c_21700 ip_clock_khz ocores_i2c 0 21700 NULL
143245 +disable_so_HDSPM_bit2freq_fndecl_21701 HDSPM_bit2freq fndecl 0 21701 NULL
143246 +disable_so_qdelay_old_pie_vars_21717 qdelay_old pie_vars 0 21717 NULL
143247 +disable_so_pixel_clock_max_soc_camera_sense_21728 pixel_clock_max soc_camera_sense 0 21728 NULL
143248 +disable_so_hash_max_net_bridge_21732 hash_max net_bridge 0 21732 NULL
143249 +disable_so_hashfn_fndecl_21739 hashfn fndecl 0 21739 NULL
143250 +disable_so_default_gfx_clock_sst_spec_21741 default_gfx_clock sst_spec 0 21741 NULL
143251 +disable_so_snd_seq_oss_timer_ioctl_fndecl_21751 snd_seq_oss_timer_ioctl fndecl 0 21751 NULL
143252 +disable_so_addr1_dir_table_slot_21753 addr1 dir_table_slot 0 21753 NULL
143253 +disable_so_ieee80211_extend_absent_time_fndecl_21756 ieee80211_extend_absent_time fndecl 2 21756 NULL
143254 +disable_so_sumo_set_ds_dividers_fndecl_21757 sumo_set_ds_dividers fndecl 2-3 21757 NULL
143255 +disable_so_fm_rx_set_freq_fndecl_21763 fm_rx_set_freq fndecl 0-2 21763 NULL
143256 +disable_so_end_phys_addr_qxl_memslot_21767 end_phys_addr qxl_memslot 0 21767 NULL
143257 +disable_so_phys_addr_megasas_sge64_21771 phys_addr megasas_sge64 0 21771 NULL
143258 +disable_so_evtchn_from_irq_fndecl_21772 evtchn_from_irq fndecl 1-0 21772 NULL
143259 +disable_so_addr_pch_gbe_phy_info_21776 addr pch_gbe_phy_info 0 21776 NULL
143260 +disable_so_jiffies_vid_out_vivid_dev_21777 jiffies_vid_out vivid_dev 0 21777 NULL
143261 +disable_so_slottime_ath_hw_21784 slottime ath_hw 0 21784 NULL
143262 +disable_so_ath6kl_wmi_set_host_sleep_mode_cmd_fndecl_21804 ath6kl_wmi_set_host_sleep_mode_cmd fndecl 0-2 21804 NULL
143263 +disable_so_iwl_dbgfs_current_sleep_command_read_fndecl_21810 iwl_dbgfs_current_sleep_command_read fndecl 3-0 21810 NULL
143264 +disable_so_ioctl_sound_timer_operations_21820 ioctl sound_timer_operations 0 21820 NULL
143265 +disable_so_i_atime_sysv_inode_21822 i_atime sysv_inode 0 21822 NULL
143266 +disable_so_rx_ring_dma_addr_amd8111e_priv_21826 rx_ring_dma_addr amd8111e_priv 0 21826 NULL
143267 +disable_so_hundredsOfMicroseconds_timestamp_21834 hundredsOfMicroseconds timestamp 0 21834 NULL
143268 +disable_so_ei_interrupt_fndecl_21846 ei_interrupt fndecl 1 21846 NULL
143269 +disable_so_address_wq_enet_desc_21854 address wq_enet_desc 0 21854 NULL
143270 +disable_so_avivo_get_fb_ref_div_fndecl_21857 avivo_get_fb_ref_div fndecl 3-5 21857 NULL
143271 +disable_so_ac_btime_taskstats_21864 ac_btime taskstats 0 21864 NULL
143272 +disable_so_reg_base_addr_dmar_drhd_unit_21865 reg_base_addr dmar_drhd_unit 0 21865 NULL
143273 +disable_so_svm_scale_tsc_fndecl_21868 svm_scale_tsc fndecl 0-2 21868 NULL
143274 +disable_so_m88rs6000t_sleep_fndecl_21874 m88rs6000t_sleep fndecl 0 21874 NULL
143275 +disable_so_bt_priority_time_ath_btcoex_21878 bt_priority_time ath_btcoex 0 21878 NULL
143276 +disable_so_radeon_legacy_get_memory_clock_fndecl_21881 radeon_legacy_get_memory_clock fndecl 0 21881 NULL
143277 +disable_so_drbg_cpu_to_be32_fndecl_21882 drbg_cpu_to_be32 fndecl 1 21882 NULL
143278 +disable_so_hpi_sample_clock_get_sample_rate_fndecl_21888 hpi_sample_clock_get_sample_rate fndecl 1-0 21888 NULL
143279 +disable_so_refdiv_radeon_atom_ss_21889 refdiv radeon_atom_ss 0 21889 NULL
143280 +disable_so_e_d_tov_timer_val_fcoe_kwqe_conn_offload4_21894 e_d_tov_timer_val fcoe_kwqe_conn_offload4 0 21894 NULL
143281 +disable_so_efx_ef10_rx_disable_timestamping_fndecl_21895 efx_ef10_rx_disable_timestamping fndecl 0 21895 NULL
143282 +disable_so_microseconds_timestamp_21897 microseconds timestamp 0 21897 NULL nohasharray
143283 +disable_so_hashbin_find_fndecl_21897 hashbin_find fndecl 2 21897 &disable_so_microseconds_timestamp_21897
143284 +disable_so_uid_audit_sig_info_21901 uid audit_sig_info 0 21901 NULL
143285 +disable_so_scb_busaddr_ips_scb_21906 scb_busaddr ips_scb 0 21906 NULL
143286 +disable_so_uvc_clock_param_get_fndecl_21908 uvc_clock_param_get fndecl 0 21908 NULL
143287 +disable_so_ali_program_timings_fndecl_21912 ali_program_timings fndecl 4 21912 NULL
143288 +disable_so_rx8025_get_time_fndecl_21924 rx8025_get_time fndecl 0 21924 NULL
143289 +disable_so_rx_addr_uart_8250_dma_21929 rx_addr uart_8250_dma 0 21929 NULL
143290 +disable_so_i2c_addr_sensor_s_21935 i2c_addr sensor_s 0 21935 NULL
143291 +disable_so_interrupt_m66592_21937 interrupt m66592 0 21937 NULL
143292 +disable_so_btintel_check_bdaddr_fndecl_21945 btintel_check_bdaddr fndecl 0 21945 NULL
143293 +disable_so_re_timeout_dummy_hcd_21947 re_timeout dummy_hcd 0 21947 NULL nohasharray
143294 +disable_so_mmc_runtime_suspend_fndecl_21947 mmc_runtime_suspend fndecl 0 21947 &disable_so_re_timeout_dummy_hcd_21947
143295 +disable_so_prb_resp_timeout_brcms_c_info_21953 prb_resp_timeout brcms_c_info 0 21953 NULL
143296 +disable_so_pcf8563_set_datetime_fndecl_21960 pcf8563_set_datetime fndecl 0 21960 NULL nohasharray
143297 +disable_so_addr_low_vring_dma_addr_21960 addr_low vring_dma_addr 0 21960 &disable_so_pcf8563_set_datetime_fndecl_21960
143298 +disable_so_key_schedule_gc_fndecl_21977 key_schedule_gc fndecl 1 21977 NULL
143299 +disable_so_max_freq_softlimit_intel_gen6_power_mgmt_21980 max_freq_softlimit intel_gen6_power_mgmt 0 21980 NULL
143300 +disable_so_sctp_v6_inaddr_any_fndecl_21991 sctp_v6_inaddr_any fndecl 2 21991 NULL
143301 +disable_so_bitmap_get_counter_fndecl_22004 bitmap_get_counter fndecl 2 22004 NULL
143302 +disable_so_id_cpufreq_cooling_device_22010 id cpufreq_cooling_device 0 22010 NULL
143303 +disable_so_efx_phc_adjfreq_fndecl_22013 efx_phc_adjfreq fndecl 0 22013 NULL
143304 +disable_so_i9xx_clock_fndecl_22015 i9xx_clock fndecl 1 22015 NULL
143305 +disable_so_backlight_off_delay_intel_dp_22022 backlight_off_delay intel_dp 0 22022 NULL
143306 +disable_so_adjust_tsc_offset_host_fndecl_22031 adjust_tsc_offset_host fndecl 2 22031 NULL
143307 +disable_so_ocfs2_inode_lock_atime_fndecl_22032 ocfs2_inode_lock_atime fndecl 0 22032 NULL
143308 +disable_so_last_timeout_jiffies_smi_info_22035 last_timeout_jiffies smi_info 0 22035 NULL
143309 +disable_so_dnet_addr_type_fndecl_22038 dnet_addr_type fndecl 1 22038 NULL
143310 +disable_so_qce_ablkcipher_crypt_fndecl_22054 qce_ablkcipher_crypt fndecl 0 22054 NULL
143311 +disable_so_move_addr_to_user_fndecl_22055 move_addr_to_user fndecl 2-0 22055 NULL
143312 +disable_so_qce_cpu_to_be32p_array_fndecl_22057 qce_cpu_to_be32p_array fndecl 3 22057 NULL
143313 +disable_so_rsp_kvm_regs_22061 rsp kvm_regs 0 22061 NULL
143314 +disable_so_sst_hsw_runtime_module_create_fndecl_22070 sst_hsw_runtime_module_create fndecl 3-2 22070 NULL
143315 +disable_so_paddr_ctlr_info_22072 paddr ctlr_info 0 22072 NULL
143316 +disable_so_net2272_get_ep_by_addr_fndecl_22073 net2272_get_ep_by_addr fndecl 2 22073 NULL
143317 +disable_so_nilfs_btree_node_get_ptr_fndecl_22076 nilfs_btree_node_get_ptr fndecl 0-2 22076 NULL
143318 +disable_so_signal_avg_station_info_22078 signal_avg station_info 0 22078 NULL
143319 +disable_so_hdmi_runtime_resume_fndecl_22080 hdmi_runtime_resume fndecl 0 22080 NULL
143320 +disable_so_nla_padlen_fndecl_22096 nla_padlen fndecl 1-0 22096 NULL
143321 +disable_so_sof_offset_uvc_clock_22104 sof_offset uvc_clock 0 22104 NULL
143322 +disable_so_current_frequency_au8522_state_22105 current_frequency au8522_state 0 22105 NULL
143323 +disable_so_vdelay_timing_22106 vdelay timing 0 22106 NULL
143324 +disable_so_abx500_get_register_page_interruptible_fndecl_22107 abx500_get_register_page_interruptible fndecl 0 22107 NULL
143325 +disable_so_xc_set_IF_frequency_fndecl_22111 xc_set_IF_frequency fndecl 0-2 22111 NULL
143326 +disable_so_curr_minor_hash_dir_private_info_22113 curr_minor_hash dir_private_info 0 22113 NULL
143327 +disable_so_ipg_find_phyaddr_fndecl_22117 ipg_find_phyaddr fndecl 0 22117 NULL
143328 +disable_so_dwell_time_passive_conf_sched_scan_settings_22127 dwell_time_passive conf_sched_scan_settings 0 22127 NULL
143329 +disable_so_ontime_snd_emux_voice_22136 ontime snd_emux_voice 0 22136 NULL
143330 +disable_so_queue_info_new_phys_addr_hi_megasas_init_frame_22147 queue_info_new_phys_addr_hi megasas_init_frame 0 22147 NULL
143331 +disable_so_demod_address_tda10048_config_22153 demod_address tda10048_config 0 22153 NULL
143332 +disable_so_timestamp_data_baddr_pmcraid_instance_22154 timestamp_data_baddr pmcraid_instance 0 22154 NULL
143333 +disable_so_qce_setup_regs_ablkcipher_fndecl_22163 qce_setup_regs_ablkcipher fndecl 0-2 22163 NULL
143334 +disable_so_cpu_index_cpuinfo_x86_22166 cpu_index cpuinfo_x86 0 22166 NULL nohasharray
143335 +disable_so_cache_timeout_vardecl_sm_ftl_c_22166 cache_timeout vardecl_sm_ftl.c 0 22166 &disable_so_cpu_index_cpuinfo_x86_22166
143336 +disable_so_ls_scan_time_dlm_ls_22170 ls_scan_time dlm_ls 0 22170 NULL
143337 +disable_so_overflowgid_vardecl_22177 overflowgid vardecl 0 22177 NULL
143338 +disable_so_timeout_uart_port_22187 timeout uart_port 0 22187 NULL
143339 +disable_so_ctime_nilfs_segsum_info_22193 ctime nilfs_segsum_info 0 22193 NULL
143340 +disable_so___cpu_to_virtio32_fndecl_22198 __cpu_to_virtio32 fndecl 0-2 22198 NULL
143341 +disable_so___page_check_address_fndecl_22199 __page_check_address fndecl 3 22199 NULL
143342 +disable_so_frequency_khz_m88rs6000t_dev_22206 frequency_khz m88rs6000t_dev 0 22206 NULL
143343 +disable_so_fm10k_update_mc_addr_vf_fndecl_22212 fm10k_update_mc_addr_vf fndecl 4 22212 NULL
143344 +disable_so_xfs_daddr_to_agno_fndecl_22214 xfs_daddr_to_agno fndecl 0-2 22214 NULL
143345 +disable_so_addr_radeon_bo_va_22216 addr radeon_bo_va 0 22216 NULL
143346 +disable_so_iwl_dbgfs_sleep_level_override_read_fndecl_22221 iwl_dbgfs_sleep_level_override_read fndecl 3-0 22221 NULL
143347 +disable_so_write_seq_cxgbi_sock_22223 write_seq cxgbi_sock 0 22223 NULL
143348 +disable_so_jiffies_init_s_stats_22227 jiffies_init s_stats 0 22227 NULL
143349 +disable_so_addr_1_qla83xx_minidump_entry_pollrdmwr_22235 addr_1 qla83xx_minidump_entry_pollrdmwr 0 22235 NULL
143350 +disable_so_boomerang_interrupt_fndecl_22238 boomerang_interrupt fndecl 1 22238 NULL
143351 +disable_so_start_addr_prism2_download_data_22240 start_addr prism2_download_data 0 22240 NULL
143352 +disable_so_addr_fixed_phy_22243 addr fixed_phy 0 22243 NULL
143353 +disable_so_parenttime_ictimesync_data_22250 parenttime ictimesync_data 0 22250 NULL
143354 +disable_so_tidvaddr_ipath_tid_info_22251 tidvaddr ipath_tid_info 0 22251 NULL
143355 +disable_so_ip_vs_sh_hashkey_fndecl_22252 ip_vs_sh_hashkey fndecl 1 22252 NULL
143356 +disable_so_m41t94_set_time_fndecl_22256 m41t94_set_time fndecl 0 22256 NULL
143357 +disable_so___bitmap_and_fndecl_22259 __bitmap_and fndecl 4 22259 NULL
143358 +disable_so_read_addr_qla82xx_md_entry_rdrom_22262 read_addr qla82xx_md_entry_rdrom 0 22262 NULL
143359 +disable_so_crypto_authenc_esn_iverify_fndecl_22263 crypto_authenc_esn_iverify fndecl 0-3 22263 NULL
143360 +disable_so_udelay_ixgbe_mbx_info_22275 udelay ixgbe_mbx_info 0 22275 NULL
143361 +disable_so_addr_init_tab_22277 addr init_tab 0 22277 NULL nohasharray
143362 +disable_so_cpufreq_cpu_get_raw_fndecl_22277 cpufreq_cpu_get_raw fndecl 1 22277 &disable_so_addr_init_tab_22277
143363 +disable_so_show_orig_dgid_fndecl_22281 show_orig_dgid fndecl 0 22281 NULL
143364 +disable_so_tua6100_sleep_fndecl_22289 tua6100_sleep fndecl 0 22289 NULL
143365 +disable_so_crypto_memneq_fndecl_22293 crypto_memneq fndecl 3 22293 NULL
143366 +disable_so_next_gid_index_mthca_mgm_22295 next_gid_index mthca_mgm 0 22295 NULL
143367 +disable_so__abb5zes3_rtc_read_time_fndecl_22302 _abb5zes3_rtc_read_time fndecl 0 22302 NULL nohasharray
143368 +disable_so_free_block_xfs_btree_ops_22302 free_block xfs_btree_ops 0 22302 &disable_so__abb5zes3_rtc_read_time_fndecl_22302
143369 +disable_so_cn_vprintf_fndecl_22303 cn_vprintf fndecl 0 22303 NULL nohasharray
143370 +disable_so_ixgbe_read_reg_fndecl_22303 ixgbe_read_reg fndecl 0-2 22303 &disable_so_cn_vprintf_fndecl_22303
143371 +disable_so_utime_mddev_22314 utime mddev 0 22314 NULL
143372 +disable_so_set_node_addr_fndecl_22329 set_node_addr fndecl 3 22329 NULL
143373 +disable_so_start_group_wait_time_cfqg_stats_22330 start_group_wait_time cfqg_stats 0 22330 NULL
143374 +disable_so_addrLow_ulp_bde64_22341 addrLow ulp_bde64 0 22341 NULL
143375 +disable_so_mr_get_mtt_addr_fndecl_22342 mr_get_mtt_addr fndecl 0 22342 NULL
143376 +disable_so_auto_deep_sleep_timeout_lbs_private_22358 auto_deep_sleep_timeout lbs_private 0 22358 NULL
143377 +disable_so_daddr_min_pktgen_dev_22362 daddr_min pktgen_dev 0 22362 NULL
143378 +disable_so_tusb_set_clock_source_fndecl_22365 tusb_set_clock_source fndecl 2 22365 NULL
143379 +disable_so_ocfs2_rotate_subtree_right_fndecl_22369 ocfs2_rotate_subtree_right fndecl 0-5 22369 NULL
143380 +disable_so_timestamp_nfs4_unlockdata_22375 timestamp nfs4_unlockdata 0 22375 NULL
143381 +disable_so_time_perf_event_context_22379 time perf_event_context 0 22379 NULL
143382 +disable_so_max8998_set_voltage_buck_time_sel_fndecl_22384 max8998_set_voltage_buck_time_sel fndecl 0-2-3 22384 NULL
143383 +disable_so_to_increment_rpc_timeout_22408 to_increment rpc_timeout 0 22408 NULL
143384 +disable_so_pci_addr_islpci_membuf_22412 pci_addr islpci_membuf 0 22412 NULL
143385 +disable_so_gf_div_fndecl_22416 gf_div fndecl 0-2-3 22416 NULL
143386 +disable_so_timeout_us_drm_vmw_fence_wait_arg_22421 timeout_us drm_vmw_fence_wait_arg 0 22421 NULL
143387 +disable_so_sd_ctime_stat_data_22425 sd_ctime stat_data 0 22425 NULL nohasharray
143388 +disable_so_runtime_reg_sch311x_gpio_block_22425 runtime_reg sch311x_gpio_block 0 22425 &disable_so_sd_ctime_stat_data_22425 nohasharray
143389 +disable_so_crypto_authenc_iverify_fndecl_22425 crypto_authenc_iverify fndecl 0-3 22425 &disable_so_runtime_reg_sch311x_gpio_block_22425
143390 +disable_so_port_guid_ib_node_info_22427 port_guid ib_node_info 0 22427 NULL
143391 +disable_so_ring_iowrite32options_fndecl_22428 ring_iowrite32options fndecl 2 22428 NULL
143392 +disable_so_period_ptr_snd_pcm_oss_runtime_22430 period_ptr snd_pcm_oss_runtime 0 22430 NULL
143393 +disable_so_ac_stimescaled_taskstats_22436 ac_stimescaled taskstats 0 22436 NULL
143394 +disable_so_slave_address_acpi_resource_i2c_serialbus_22453 slave_address acpi_resource_i2c_serialbus 0 22453 NULL
143395 +disable_so_dma_addr1_flexcop_dma_22481 dma_addr1 flexcop_dma 0 22481 NULL
143396 +disable_so_r11_kvm_regs_22488 r11 kvm_regs 0 22488 NULL
143397 +disable_so_lookup_overlapping_address_handler_fndecl_22494 lookup_overlapping_address_handler fndecl 2-3 22494 NULL
143398 +disable_so_throttled_clock_task_cfs_rq_22505 throttled_clock_task cfs_rq 0 22505 NULL
143399 +disable_so_bulletin_addr_vfpf_acquire_tlv_22506 bulletin_addr vfpf_acquire_tlv 0 22506 NULL
143400 +disable_so_buffer_bytes_snd_pcm_oss_runtime_22509 buffer_bytes snd_pcm_oss_runtime 0 22509 NULL
143401 +disable_so_cryptd_hash_enqueue_fndecl_22511 cryptd_hash_enqueue fndecl 0 22511 NULL
143402 +disable_so_set_msr_hyperv_pw_fndecl_22514 set_msr_hyperv_pw fndecl 3 22514 NULL
143403 +disable_so_am335x_tsc_se_set_cache_fndecl_22522 am335x_tsc_se_set_cache fndecl 2 22522 NULL
143404 +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
143405 +disable_so_stride_qxl_bitmap_22527 stride qxl_bitmap 0 22527 NULL
143406 +disable_so_enable_time_regulator_ops_22541 enable_time regulator_ops 0 22541 NULL
143407 +disable_so_usb_port_runtime_resume_fndecl_22542 usb_port_runtime_resume fndecl 0 22542 NULL
143408 +disable_so_i_time_minix_inode_22559 i_time minix_inode 0 22559 NULL
143409 +disable_so_rpc_uaddr2sockaddr_fndecl_22573 rpc_uaddr2sockaddr fndecl 0-3 22573 NULL
143410 +disable_so_runtime_show_fndecl_22581 runtime_show fndecl 0 22581 NULL
143411 +disable_so__sched_setscheduler_fndecl_22589 _sched_setscheduler fndecl 0-2 22589 NULL
143412 +disable_so_ahc_outb_fndecl_22592 ahc_outb fndecl 2-3 22592 NULL
143413 +disable_so_tcp_fin_timeout_ip_vs_timeout_user_22596 tcp_fin_timeout ip_vs_timeout_user 0 22596 NULL
143414 +disable_so_channels_snd_pcm_oss_runtime_22629 channels snd_pcm_oss_runtime 0 22629 NULL
143415 +disable_so_ivsize_blkcipher_walk_22638 ivsize blkcipher_walk 0 22638 NULL
143416 +disable_so_xpcs_reg_addr_read_fndecl_22646 xpcs_reg_addr_read fndecl 3-0 22646 NULL
143417 +disable_so_ea_segmented_address_22657 ea segmented_address 0 22657 NULL
143418 +disable_so_rxhash_bnx2x_agg_info_22658 rxhash bnx2x_agg_info 0 22658 NULL
143419 +disable_so_get_timer_interval_fndecl_22661 get_timer_interval fndecl 0-2 22661 NULL
143420 +disable_so_clock_psb_intel_sdvo_preferred_input_timing_args_22671 clock psb_intel_sdvo_preferred_input_timing_args 0 22671 NULL
143421 +disable_so_nft_hash_obj_fndecl_22673 nft_hash_obj fndecl 0-2 22673 NULL
143422 +disable_so_ber_jiffies_stats_dib8000_state_22674 ber_jiffies_stats dib8000_state 0 22674 NULL
143423 +disable_so_sleep_ms_rtl_ps_ctl_22681 sleep_ms rtl_ps_ctl 0 22681 NULL
143424 +disable_so_addr_hi_eth_tx_start_bd_22685 addr_hi eth_tx_start_bd 0 22685 NULL
143425 +disable_so_lasttime_sym_shcb_22688 lasttime sym_shcb 0 22688 NULL
143426 +disable_so_cttimeout_init_fndecl_22691 cttimeout_init fndecl 0 22691 NULL
143427 +disable_so_crypto_authenc_encrypt_fndecl_22693 crypto_authenc_encrypt fndecl 0 22693 NULL
143428 +disable_so_kernfs_name_hash_fndecl_22704 kernfs_name_hash fndecl 0 22704 NULL
143429 +disable_so_msleep_interruptible_fndecl_22713 msleep_interruptible fndecl 1-0 22713 NULL
143430 +disable_so_compq_addr_lo_addr_ctrl_blk_22728 compq_addr_lo addr_ctrl_blk 0 22728 NULL
143431 +disable_so_dib7000p_get_time_us_fndecl_22737 dib7000p_get_time_us fndecl 0 22737 NULL
143432 +disable_so_src_addr_dma_slave_config_22748 src_addr dma_slave_config 0 22748 NULL
143433 +disable_so_userspace_addr_kvm_memory_slot_22749 userspace_addr kvm_memory_slot 0 22749 NULL
143434 +disable_so_addr6_resolve_fndecl_22753 addr6_resolve fndecl 0 22753 NULL
143435 +disable_so_sst_pm_runtime_put_fndecl_22759 sst_pm_runtime_put fndecl 0 22759 NULL
143436 +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
143437 +disable_so_d_time_dentry_22767 d_time dentry 0 22767 NULL
143438 +disable_so_mtd_to_docg4_address_fndecl_22769 mtd_to_docg4_address fndecl 0-1-2 22769 NULL
143439 +disable_so_cycle_counter_tag_capidtmf_recv_state_22771 cycle_counter tag_capidtmf_recv_state 0 22771 NULL
143440 +disable_so_lp872x_select_buck_vout_addr_fndecl_22790 lp872x_select_buck_vout_addr fndecl 0-2 22790 NULL
143441 +disable_so_base_mbox_addr_blogic_extmbox_req_22802 base_mbox_addr blogic_extmbox_req 0 22802 NULL nohasharray
143442 +disable_so_no_addr_gfs2_inum_22802 no_addr gfs2_inum 0 22802 &disable_so_base_mbox_addr_blogic_extmbox_req_22802
143443 +disable_so_debug_dma_map_sg_fndecl_22804 debug_dma_map_sg fndecl 3-4 22804 NULL
143444 +disable_so___cpuidle_register_driver_fndecl_22806 __cpuidle_register_driver fndecl 0 22806 NULL
143445 +disable_so_vhost64_to_cpu_fndecl_22807 vhost64_to_cpu fndecl 0 22807 NULL
143446 +disable_so_start_address_acpi_address_range_22816 start_address acpi_address_range 0 22816 NULL
143447 +disable_so_mce_request_packet_fndecl_22818 mce_request_packet fndecl 3 22818 NULL
143448 +disable_so_bad_std_timing_fndecl_22827 bad_std_timing fndecl 1 22827 NULL
143449 +disable_so_swap_cluster_schedule_discard_fndecl_22833 swap_cluster_schedule_discard fndecl 2 22833 NULL
143450 +disable_so_palmas_rtc_set_time_fndecl_22849 palmas_rtc_set_time fndecl 0 22849 NULL
143451 +disable_so___arch_hweight8_fndecl_22850 __arch_hweight8 fndecl 0-1 22850 NULL
143452 +disable_so_store_risefalltime_fndecl_22854 store_risefalltime fndecl 5-0-4 22854 NULL
143453 +disable_so_qlcnic_83xx_get_mac_address_fndecl_22858 qlcnic_83xx_get_mac_address fndecl 0 22858 NULL
143454 +disable_so_vnic_dev_get_mac_addr_fndecl_22860 vnic_dev_get_mac_addr fndecl 0 22860 NULL
143455 +disable_so_hash_id_hh_flow_state_22864 hash_id hh_flow_state 0 22864 NULL
143456 +disable_so_runtime_suspend_dev_pm_ops_22871 runtime_suspend dev_pm_ops 0 22871 NULL nohasharray
143457 +disable_so_objectid_btrfs_key_22871 objectid btrfs_key 0 22871 &disable_so_runtime_suspend_dev_pm_ops_22871
143458 +disable_so_bitmap_parse_fndecl_22876 bitmap_parse fndecl 0-2-4 22876 NULL
143459 +disable_so_avg_delay_fndecl_22883 avg_delay fndecl 0 22883 NULL nohasharray
143460 +disable_so_mce_threshold_block_init_fndecl_22883 mce_threshold_block_init fndecl 2 22883 &disable_so_avg_delay_fndecl_22883
143461 +disable_so_pdeath_signal_task_struct_22884 pdeath_signal task_struct 0 22884 NULL
143462 +disable_so_bits_per_word_blk_mq_bitmap_tags_22896 bits_per_word blk_mq_bitmap_tags 0 22896 NULL
143463 +disable_so_saddr_irda_device_info_22915 saddr irda_device_info 0 22915 NULL
143464 +disable_so_frm_extra_delay_vardecl_isar_c_22927 frm_extra_delay vardecl_isar.c 0 22927 NULL
143465 +disable_so_lbs_set_host_sleep_fndecl_22932 lbs_set_host_sleep fndecl 0 22932 NULL
143466 +disable_so_orinoco_ioctl_setfreq_fndecl_22934 orinoco_ioctl_setfreq fndecl 0 22934 NULL
143467 +disable_so_bit_bitstream_cursor_22959 bit bitstream_cursor 0 22959 NULL
143468 +disable_so_cifs_strtoUTF16_fndecl_22967 cifs_strtoUTF16 fndecl 0-3 22967 NULL
143469 +disable_so_rbx_kvm_regs_22975 rbx kvm_regs 0 22975 NULL
143470 +disable_so_runtime_resume_dev_pm_ops_22976 runtime_resume dev_pm_ops 0 22976 NULL
143471 +disable_so_address_ioaccel2_sg_element_22986 address ioaccel2_sg_element 0 22986 NULL
143472 +disable_so_frags_paddr_htt_data_tx_desc_22993 frags_paddr htt_data_tx_desc 0 22993 NULL
143473 +disable_so_ss_ctime_nilfs_sustat_23015 ss_ctime nilfs_sustat 0 23015 NULL
143474 +disable_so_radeon_atom_set_ac_timing_fndecl_23020 radeon_atom_set_ac_timing fndecl 2 23020 NULL
143475 +disable_so_b43legacy_interrupt_ack_fndecl_23025 b43legacy_interrupt_ack fndecl 2 23025 NULL
143476 +disable_so_i_atime_nsec_f2fs_inode_23028 i_atime_nsec f2fs_inode 0 23028 NULL
143477 +disable_so_addr_wil_fw_record_fill_23039 addr wil_fw_record_fill 0 23039 NULL
143478 +disable_so_cyc2ns_offset_cyc2ns_data_23042 cyc2ns_offset cyc2ns_data 0 23042 NULL
143479 +disable_so_panel_power_cycle_delay_cdv_intel_dp_23045 panel_power_cycle_delay cdv_intel_dp 0 23045 NULL
143480 +disable_so_crypto_rfc4543_copy_src_to_dst_fndecl_23047 crypto_rfc4543_copy_src_to_dst fndecl 0 23047 NULL
143481 +disable_so_pte_pfn_to_mfn_fndecl_23066 pte_pfn_to_mfn fndecl 1-0 23066 NULL
143482 +disable_so_hpll_freq_drm_i915_private_23074 hpll_freq drm_i915_private 0 23074 NULL
143483 +disable_so_ly_base_addr_c67x00_td_23082 ly_base_addr c67x00_td 0 23082 NULL
143484 +disable_so_num_bits_alps_bitmap_point_23084 num_bits alps_bitmap_point 0 23084 NULL
143485 +disable_so_ip6addrlbl_dump_fndecl_23085 ip6addrlbl_dump fndecl 0 23085 NULL
143486 +disable_so_sc_seg_ctime_nilfs_sc_info_23088 sc_seg_ctime nilfs_sc_info 0 23088 NULL
143487 +disable_so_rxbd_addr_lo_host_cmd_ds_pcie_details_23092 rxbd_addr_lo host_cmd_ds_pcie_details 0 23092 NULL
143488 +disable_so_addrconf_init_fndecl_23107 addrconf_init fndecl 0 23107 NULL
143489 +disable_so_regcache_lzo_read_fndecl_23109 regcache_lzo_read fndecl 0-2 23109 NULL
143490 +disable_so_mac_addr_high_nes_adapter_23110 mac_addr_high nes_adapter 0 23110 NULL nohasharray
143491 +disable_so_gf100_fifo_engidx_fndecl_23110 gf100_fifo_engidx fndecl 0 23110 &disable_so_mac_addr_high_nes_adapter_23110
143492 +disable_so_busy_timeout_mmc_command_23112 busy_timeout mmc_command 0 23112 NULL
143493 +disable_so_expired_tscdeadline_kvm_timer_23113 expired_tscdeadline kvm_timer 0 23113 NULL nohasharray
143494 +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
143495 +disable_so_mmc_mmc_erase_timeout_fndecl_23122 mmc_mmc_erase_timeout fndecl 0-3-2 23122 NULL
143496 +disable_so_bq32k_rtc_read_time_fndecl_23124 bq32k_rtc_read_time fndecl 0 23124 NULL
143497 +disable_so_mtt_base_addr_h_mlx4_eq_context_23127 mtt_base_addr_h mlx4_eq_context 0 23127 NULL
143498 +disable_so_sack_timeout_netns_sctp_23134 sack_timeout netns_sctp 0 23134 NULL
143499 +disable_so_addr_hw_breakpoint_23137 addr hw_breakpoint 0 23137 NULL
143500 +disable_so_port_sctp_bind_addr_23142 port sctp_bind_addr 0 23142 NULL
143501 +disable_so_rpa_timeout_set_fndecl_23145 rpa_timeout_set fndecl 2 23145 NULL nohasharray
143502 +disable_so_mthca_SW2HW_MPT_fndecl_23145 mthca_SW2HW_MPT fndecl 0-3 23145 &disable_so_rpa_timeout_set_fndecl_23145 nohasharray
143503 +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
143504 +disable_so_eof_gid_xfs_fs_eofblocks_23146 eof_gid xfs_fs_eofblocks 0 23146 NULL
143505 +disable_so_ccp_aes_decrypt_fndecl_23149 ccp_aes_decrypt fndecl 0 23149 NULL
143506 +disable_so_idle_timeout_hci_dev_23160 idle_timeout hci_dev 0 23160 NULL
143507 +disable_so_radeon_atom_set_memory_clock_fndecl_23164 radeon_atom_set_memory_clock fndecl 2 23164 NULL
143508 +disable_so_k_pll_div_23168 k pll_div 0 23168 NULL
143509 +disable_so_ebitmap_node_clr_bit_fndecl_23171 ebitmap_node_clr_bit fndecl 2 23171 NULL
143510 +disable_so_rt_runtime_rt_schedulable_data_23172 rt_runtime rt_schedulable_data 0 23172 NULL
143511 +disable_so_reply_dma_min_address_MPT2SAS_ADAPTER_23181 reply_dma_min_address MPT2SAS_ADAPTER 0 23181 NULL
143512 +disable_so_tsc_shift_pvclock_vcpu_time_info_23184 tsc_shift pvclock_vcpu_time_info 0 23184 NULL
143513 +disable_so_vlan_dev_set_mac_address_fndecl_23188 vlan_dev_set_mac_address fndecl 0 23188 NULL
143514 +disable_so_mpll_ss1_ci_clock_registers_23197 mpll_ss1 ci_clock_registers 0 23197 NULL
143515 +disable_so_addr_cmd_complete_fndecl_23200 addr_cmd_complete fndecl 0 23200 NULL
143516 +disable_so_cpu_clock_fndecl_23205 cpu_clock fndecl 1-0 23205 NULL
143517 +disable_so_prescale_pll_div_23215 prescale pll_div 0 23215 NULL
143518 +disable_so_sel_addr2___mux2_23216 sel_addr2 __mux2 0 23216 NULL
143519 +disable_so_usb_sleep_charge_store_fndecl_23232 usb_sleep_charge_store fndecl 0-4 23232 NULL
143520 +disable_so_bmc150_accel_set_interrupt_fndecl_23235 bmc150_accel_set_interrupt fndecl 0 23235 NULL
143521 +disable_so_netlbl_af4list_audit_addr_fndecl_23240 netlbl_af4list_audit_addr fndecl 4-5 23240 NULL
143522 +disable_so_max_freq_intel_gen6_power_mgmt_23243 max_freq intel_gen6_power_mgmt 0 23243 NULL
143523 +disable_so_i_ctime_ext4_inode_23246 i_ctime ext4_inode 0 23246 NULL
143524 +disable_so_sel_read_avc_hash_stats_fndecl_23251 sel_read_avc_hash_stats fndecl 0-3 23251 NULL
143525 +disable_so_wlc_phy_get_chan_freq_range_nphy_fndecl_23253 wlc_phy_get_chan_freq_range_nphy fndecl 2 23253 NULL
143526 +disable_so_trinity_convert_did_to_freq_fndecl_23254 trinity_convert_did_to_freq fndecl 0-2 23254 NULL
143527 +disable_so_nopin_timeout_iscsi_node_attrib_23262 nopin_timeout iscsi_node_attrib 0 23262 NULL
143528 +disable_so_blk_rq_timeout_fndecl_23263 blk_rq_timeout fndecl 0-1 23263 NULL
143529 +disable_so_dmfe_interrupt_fndecl_23265 dmfe_interrupt fndecl 1 23265 NULL
143530 +disable_so_crypto_rng_generate_fndecl_23266 crypto_rng_generate fndecl 0-5 23266 NULL
143531 +disable_so_ebitmap_read_fndecl_23268 ebitmap_read fndecl 0 23268 NULL
143532 +disable_so_loops_per_jiffy_cpuinfo_x86_23277 loops_per_jiffy cpuinfo_x86 0 23277 NULL
143533 +disable_so_T7_address_mxt_data_23282 T7_address mxt_data 0 23282 NULL
143534 +disable_so_turn_around_timeout_mipi_config_23283 turn_around_timeout mipi_config 0 23283 NULL
143535 +disable_so_crypto_report_one_fndecl_23300 crypto_report_one fndecl 0 23300 NULL
143536 +disable_so_io_base_addr_pch_spi_data_23302 io_base_addr pch_spi_data 0 23302 NULL
143537 +disable_so___ww_mutex_lock_interruptible_fndecl_23308 __ww_mutex_lock_interruptible fndecl 0 23308 NULL
143538 +disable_so_get_bitmap_file_fndecl_23317 get_bitmap_file fndecl 0 23317 NULL
143539 +disable_so_address_hi_lpfc_rqe_23318 address_hi lpfc_rqe 0 23318 NULL
143540 +disable_so_iscsit_na_nopin_response_timeout_fndecl_23323 iscsit_na_nopin_response_timeout fndecl 2-0 23323 NULL
143541 +disable_so_omap1_spi100k_runtime_resume_fndecl_23325 omap1_spi100k_runtime_resume fndecl 0 23325 NULL
143542 +disable_so_snd_timer_global_register_fndecl_23326 snd_timer_global_register fndecl 0 23326 NULL
143543 +disable_so_to_initval_rpc_timeout_23329 to_initval rpc_timeout 0 23329 NULL
143544 +disable_so_bd_list_addr_hi_bnx2i_text_request_23342 bd_list_addr_hi bnx2i_text_request 0 23342 NULL
143545 +disable_so_i2c_addr_a8293_config_23348 i2c_addr a8293_config 0 23348 NULL
143546 +disable_so_range_sizek_var_mtrr_state_23353 range_sizek var_mtrr_state 0 23353 NULL
143547 +disable_so_total_time_running_perf_event_23362 total_time_running perf_event 0 23362 NULL
143548 +disable_so_vdi_gid_vxfs_inode_info_23369 vdi_gid vxfs_inode_info 0 23369 NULL
143549 +disable_so_attrtimeo_timestamp_nfs_inode_23391 attrtimeo_timestamp nfs_inode 0 23391 NULL
143550 +disable_so_si476x_core_cmd_fm_tune_freq_a10_fndecl_23406 si476x_core_cmd_fm_tune_freq_a10 fndecl 0 23406 NULL
143551 +disable_so_sensor_addr_sd_23409 sensor_addr sd 0 23409 NULL
143552 +disable_so_run_delayed_extent_op_fndecl_23414 run_delayed_extent_op fndecl 0 23414 NULL
143553 +disable_so_PXDaddress_fndecl_23420 PXDaddress fndecl 2 23420 NULL
143554 +disable_so_timeout_addr_req_23421 timeout addr_req 0 23421 NULL
143555 +disable_so_tx_pwr_last_recalc_freq_b43_phy_n_23433 tx_pwr_last_recalc_freq b43_phy_n 0 23433 NULL
143556 +disable_so_iscsit_na_nopin_timeout_fndecl_23436 iscsit_na_nopin_timeout fndecl 2-0 23436 NULL
143557 +disable_so_set_tsc_khz_kvm_x86_ops_23439 set_tsc_khz kvm_x86_ops 2 23439 NULL
143558 +disable_so_eee_timer_vardecl_stmmac_main_c_23447 eee_timer vardecl_stmmac_main.c 0 23447 NULL
143559 +disable_so_ndac_aic31xx_rate_divs_23456 ndac aic31xx_rate_divs 0 23456 NULL nohasharray
143560 +disable_so_r27_val_fc2580_freq_regs_23456 r27_val fc2580_freq_regs 0 23456 &disable_so_ndac_aic31xx_rate_divs_23456
143561 +disable_so_ports_timeout_uhci_hcd_23457 ports_timeout uhci_hcd 0 23457 NULL
143562 +disable_so_fw_load_addr_cas_23459 fw_load_addr cas 0 23459 NULL
143563 +disable_so_enic_dev_add_addr_fndecl_23465 enic_dev_add_addr fndecl 0 23465 NULL
143564 +disable_so_hpet_num_timers_vardecl_hpet_c_23468 hpet_num_timers vardecl_hpet.c 0 23468 NULL
143565 +disable_so_protocol_tomoyo_addr_info_23473 protocol tomoyo_addr_info 0 23473 NULL
143566 +disable_so_sys_clock_settime_fndecl_23475 sys_clock_settime fndecl 1 23475 NULL
143567 +disable_so_pch_uart_hal_enable_interrupt_fndecl_23482 pch_uart_hal_enable_interrupt fndecl 2 23482 NULL
143568 +disable_so_start_addr_snd_emu10k1_pcm_23487 start_addr snd_emu10k1_pcm 0 23487 NULL
143569 +disable_so___bitmap_xor_fndecl_23490 __bitmap_xor fndecl 4 23490 NULL
143570 +disable_so_dst_addr_beiscsi_endpoint_23495 dst_addr beiscsi_endpoint 0 23495 NULL
143571 +disable_so_mask_hi_mtrr_var_range_23508 mask_hi mtrr_var_range 0 23508 NULL
143572 +disable_so_max_mlx4_bitmap_23521 max mlx4_bitmap 0 23521 NULL
143573 +disable_so_bitmap_ip_do_list_fndecl_23527 bitmap_ip_do_list fndecl 0 23527 NULL
143574 +disable_so_radio_freq_tuner_23529 radio_freq tuner 0 23529 NULL
143575 +disable_so_timeout_idletimer_tg_info_23534 timeout idletimer_tg_info 0 23534 NULL
143576 +disable_so_end_jiffies_iwl_mvm_time_event_data_23536 end_jiffies iwl_mvm_time_event_data 0 23536 NULL
143577 +disable_so_try_read_address_fndecl_23550 try_read_address fndecl 0-2 23550 NULL
143578 +disable_so_cpufreq_stats_create_table_fndecl_23554 cpufreq_stats_create_table fndecl 1 23554 NULL
143579 +disable_so_div2__pll_div_23561 div2 _pll_div 0 23561 NULL
143580 +disable_so_hpi_sample_clock_set_local_rate_fndecl_23570 hpi_sample_clock_set_local_rate fndecl 1-0 23570 NULL
143581 +disable_so_sctp_assoc_set_bind_addr_from_ep_fndecl_23572 sctp_assoc_set_bind_addr_from_ep fndecl 0-3 23572 NULL
143582 +disable_so_hscb_busaddr_scb_data_23574 hscb_busaddr scb_data 0 23574 NULL
143583 +disable_so_shadow_msr_edgeport_port_23577 shadow_msr edgeport_port 0 23577 NULL
143584 +disable_so_gcm_hash_fndecl_23580 gcm_hash fndecl 0 23580 NULL
143585 +disable_so_kvm_send_hwpoison_signal_fndecl_23581 kvm_send_hwpoison_signal fndecl 1 23581 NULL
143586 +disable_so_spu_reg_delay_if_spi_card_23584 spu_reg_delay if_spi_card 0 23584 NULL
143587 +disable_so_inet_rtm_deladdr_fndecl_23589 inet_rtm_deladdr fndecl 0 23589 NULL
143588 +disable_so_sm2_runtime_sc_23590 sm2 runtime_sc 0 23590 NULL
143589 +disable_so_cpumask_parselist_user_fndecl_23592 cpumask_parselist_user fndecl 0-2 23592 NULL
143590 +disable_so_clock_cooling_get_frequency_fndecl_23598 clock_cooling_get_frequency fndecl 0 23598 NULL
143591 +disable_so_nilfs_btree_last_key_fndecl_23599 nilfs_btree_last_key fndecl 0 23599 NULL
143592 +disable_so_address_map_r8a66597_23613 address_map r8a66597 0 23613 NULL
143593 +disable_so_closest_timer_fndecl_23617 closest_timer fndecl 2 23617 NULL
143594 +disable_so_delay_radeon_atom_ss_23618 delay radeon_atom_ss 0 23618 NULL
143595 +disable_so_no_addr_gfs2_skip_data_23619 no_addr gfs2_skip_data 0 23619 NULL nohasharray
143596 +disable_so_bloutp_qat_crypto_request_buffs_23619 bloutp qat_crypto_request_buffs 0 23619 &disable_so_no_addr_gfs2_skip_data_23619
143597 +disable_so_i2s_runtime_resume_fndecl_23625 i2s_runtime_resume fndecl 0 23625 NULL nohasharray
143598 +disable_so_mtime_seg_entry_23625 mtime seg_entry 0 23625 &disable_so_i2s_runtime_resume_fndecl_23625
143599 +disable_so_atime_apds990x_chip_23626 atime apds990x_chip 0 23626 NULL
143600 +disable_so_irq_domain_free_irqs_fndecl_23634 irq_domain_free_irqs fndecl 1-2 23634 NULL
143601 +disable_so_gru_last_node_paddr_vardecl_x2apic_uv_x_c_23641 gru_last_node_paddr vardecl_x2apic_uv_x.c 0 23641 NULL
143602 +disable_so_tss_addr_kvm_arch_23642 tss_addr kvm_arch 0 23642 NULL
143603 +disable_so_rv3029c2_rtc_read_time_fndecl_23644 rv3029c2_rtc_read_time fndecl 0 23644 NULL
143604 +disable_so___round_jiffies_fndecl_23650 __round_jiffies fndecl 2-1-0 23650 NULL
143605 +disable_so_fixed_mtrr_seg_unit_range_index_fndecl_23657 fixed_mtrr_seg_unit_range_index fndecl 2-0 23657 NULL
143606 +disable_so_timeriomem_rng_driver_init_fndecl_23666 timeriomem_rng_driver_init fndecl 0 23666 NULL
143607 +disable_so_read_status_jiffies_af9013_state_23669 read_status_jiffies af9013_state 0 23669 NULL
143608 +disable_so_st_gid_compat_stat_23673 st_gid compat_stat 0 23673 NULL nohasharray
143609 +disable_so_addr_snic_sg_desc_23673 addr snic_sg_desc 0 23673 &disable_so_st_gid_compat_stat_23673
143610 +disable_so_boottime_get_fndecl_23679 boottime_get fndecl 0 23679 NULL
143611 +disable_so_sctp_v4_inaddr_any_fndecl_23681 sctp_v4_inaddr_any fndecl 2 23681 NULL
143612 +disable_so_posix_cpu_clock_get_task_fndecl_23683 posix_cpu_clock_get_task fndecl 2 23683 NULL nohasharray
143613 +disable_so_gpio_free_fndecl_23683 gpio_free fndecl 1 23683 &disable_so_posix_cpu_clock_get_task_fndecl_23683
143614 +disable_so_ebitmap_cpy_fndecl_23688 ebitmap_cpy fndecl 0 23688 NULL
143615 +disable_so___bitmap_parselist_fndecl_23689 __bitmap_parselist fndecl 0-2-5 23689 NULL
143616 +disable_so_wlcore_hw_interrupt_notify_fndecl_23695 wlcore_hw_interrupt_notify fndecl 0 23695 NULL
143617 +disable_so_schedule_zero_fndecl_23702 schedule_zero fndecl 2-3 23702 NULL nohasharray
143618 +disable_so_mtt_addr_mlx4_mpt_entry_23702 mtt_addr mlx4_mpt_entry 0 23702 &disable_so_schedule_zero_fndecl_23702
143619 +disable_so_adis16400_get_freq_fndecl_23703 adis16400_get_freq fndecl 0 23703 NULL
143620 +disable_so_interrupt_out_endpoint_size_ld_usb_23705 interrupt_out_endpoint_size ld_usb 0 23705 NULL
143621 +disable_so_mac_time_libipw_rx_stats_23706 mac_time libipw_rx_stats 0 23706 NULL nohasharray
143622 +disable_so___ipv6_addr_diff_fndecl_23706 __ipv6_addr_diff fndecl 0 23706 &disable_so_mac_time_libipw_rx_stats_23706
143623 +disable_so_delay_snd_pcm_status_23708 delay snd_pcm_status 0 23708 NULL
143624 +disable_so_oprofile_set_timeout_fndecl_23715 oprofile_set_timeout fndecl 1-0 23715 NULL
143625 +disable_so_fll_fratio__fll_div_23723 fll_fratio _fll_div 0 23723 NULL
143626 +disable_so___uac_clock_find_source_fndecl_23728 __uac_clock_find_source fndecl 0-2 23728 NULL
143627 +disable_so_acpi_pci_root_get_mcfg_addr_fndecl_23731 acpi_pci_root_get_mcfg_addr fndecl 0 23731 NULL
143628 +disable_so_snd_hda_codec_write_fndecl_23746 snd_hda_codec_write fndecl 0-5-4-2 23746 NULL
143629 +disable_so_local_ipaddr_nes_vnic_23747 local_ipaddr nes_vnic 0 23747 NULL
143630 +disable_so_frequency_stv0900_signal_info_23753 frequency stv0900_signal_info 0 23753 NULL
143631 +disable_so_ic_addrservaddr_vardecl_23754 ic_addrservaddr vardecl 0 23754 NULL
143632 +disable_so_next_hrtimer_event_fusbh200_hcd_23756 next_hrtimer_event fusbh200_hcd 0 23756 NULL
143633 +disable_so_speedstep_get_frequency_fndecl_23758 speedstep_get_frequency fndecl 0 23758 NULL
143634 +disable_so_lpe_base_sst_addr_23776 lpe_base sst_addr 0 23776 NULL
143635 +disable_so_saddr_flowidn_23780 saddr flowidn 0 23780 NULL
143636 +disable_so_uwb_rc_dev_addr_get_fndecl_23783 uwb_rc_dev_addr_get fndecl 0 23783 NULL
143637 +disable_so_qla2x00_start_timer_fndecl_23784 qla2x00_start_timer fndecl 3 23784 NULL
143638 +disable_so_pcan_usb_fd_set_bittiming_slow_fndecl_23790 pcan_usb_fd_set_bittiming_slow fndecl 0 23790 NULL
143639 +disable_so_crypto_rfc4543_setauthsize_fndecl_23801 crypto_rfc4543_setauthsize fndecl 2 23801 NULL
143640 +disable_so_drbd_send_uuids_skip_initial_sync_fndecl_23802 drbd_send_uuids_skip_initial_sync fndecl 0 23802 NULL
143641 +disable_so_si476x_phase_diversity_mode_to_idx_fndecl_23804 si476x_phase_diversity_mode_to_idx fndecl 0 23804 NULL
143642 +disable_so_ci_program_memory_timing_parameters_fndecl_23805 ci_program_memory_timing_parameters fndecl 0 23805 NULL
143643 +disable_so_show_ioc_guid_fndecl_23810 show_ioc_guid fndecl 0 23810 NULL
143644 +disable_so_gpiod_get_raw_value_cansleep_fndecl_23812 gpiod_get_raw_value_cansleep fndecl 0 23812 NULL
143645 +disable_so_cpu_to_fs64_fndecl_23816 cpu_to_fs64 fndecl 0-2 23816 NULL
143646 +disable_so_tomoyo_convert_time_fndecl_23823 tomoyo_convert_time fndecl 1 23823 NULL
143647 +disable_so_ufshcd_runtime_resume_fndecl_23824 ufshcd_runtime_resume fndecl 0 23824 NULL
143648 +disable_so_ext4_block_bitmap_csum_verify_fndecl_23826 ext4_block_bitmap_csum_verify fndecl 2 23826 NULL
143649 +disable_so_hash_hi_smsc95xx_priv_23835 hash_hi smsc95xx_priv 0 23835 NULL
143650 +disable_so_pm_autosleep_init_fndecl_23847 pm_autosleep_init fndecl 0 23847 NULL
143651 +disable_so_mpu_timer_init_fndecl_23854 mpu_timer_init fndecl 1 23854 NULL
143652 +disable_so_bg_block_bitmap_ext2_group_desc_23861 bg_block_bitmap ext2_group_desc 0 23861 NULL
143653 +disable_so_mlx4_en_config_port_scheduler_fndecl_23868 mlx4_en_config_port_scheduler fndecl 0 23868 NULL
143654 +disable_so_pixelclock_for_modeset_radeon_connector_23870 pixelclock_for_modeset radeon_connector 0 23870 NULL
143655 +disable_so_ocfs2_remove_btree_range_fndecl_23874 ocfs2_remove_btree_range fndecl 0-3-4-5-8 23874 NULL
143656 +disable_so_crypto_authenc_setkey_fndecl_23875 crypto_authenc_setkey fndecl 0 23875 NULL
143657 +disable_so_vdiv_mcp77_clk_priv_23881 vdiv mcp77_clk_priv 0 23881 NULL
143658 +disable_so_xfs_da_hashname_fndecl_23895 xfs_da_hashname fndecl 2 23895 NULL
143659 +disable_so_sky2_rx_hash_fndecl_23905 sky2_rx_hash fndecl 2 23905 NULL
143660 +disable_so_pci_revert_fw_address_fndecl_23911 pci_revert_fw_address fndecl 3-4 23911 NULL
143661 +disable_so_gru_chiplet_cpu_to_mmr_fndecl_23914 gru_chiplet_cpu_to_mmr fndecl 2 23914 NULL nohasharray
143662 +disable_so_htotal___fb_timings_23914 htotal __fb_timings 0 23914 &disable_so_gru_chiplet_cpu_to_mmr_fndecl_23914
143663 +disable_so_coalescing_timeo_bna_tx_config_23917 coalescing_timeo bna_tx_config 0 23917 NULL
143664 +disable_so_block_size_ccp_sha_def_23920 block_size ccp_sha_def 0 23920 NULL
143665 +disable_so_chunk_sizek_mtrr_cleanup_result_23928 chunk_sizek mtrr_cleanup_result 0 23928 NULL
143666 +disable_so_cpufreq_register_driver_fndecl_23933 cpufreq_register_driver fndecl 0 23933 NULL
143667 +disable_so_requested_freq_cs_cpu_dbs_info_s_23941 requested_freq cs_cpu_dbs_info_s 0 23941 NULL
143668 +disable_so_ath9k_hw_setslottime_fndecl_23946 ath9k_hw_setslottime fndecl 2 23946 NULL
143669 +disable_so_clock_man_fndecl_23950 clock_man fndecl 2 23950 NULL
143670 +disable_so_dma2_address_info_23953 dma2 address_info 0 23953 NULL
143671 +disable_so_crypto_ctr_crypt_segment_fndecl_23955 crypto_ctr_crypt_segment fndecl 0 23955 NULL
143672 +disable_so_be_set_rss_hash_opts_fndecl_23960 be_set_rss_hash_opts fndecl 0 23960 NULL
143673 +disable_so_src_low_addr_mvumi_dyn_list_entry_23961 src_low_addr mvumi_dyn_list_entry 0 23961 NULL
143674 +disable_so_fm_v4l2_vidioc_s_hw_freq_seek_fndecl_23963 fm_v4l2_vidioc_s_hw_freq_seek fndecl 0 23963 NULL
143675 +disable_so_tmr_start_sound_lowlev_timer_23966 tmr_start sound_lowlev_timer 1 23966 NULL
143676 +disable_so_task_clock_event_update_fndecl_23968 task_clock_event_update fndecl 2 23968 NULL
143677 +disable_so_i_mtime_minix2_inode_23986 i_mtime minix2_inode 0 23986 NULL
143678 +disable_so_time_offset_wl1271_23987 time_offset wl1271 0 23987 NULL
143679 +disable_so_src_nents_qce_sha_reqctx_24004 src_nents qce_sha_reqctx 0 24004 NULL
143680 +disable_so_elements_bitmap_ipmac_24013 elements bitmap_ipmac 0 24013 NULL
143681 +disable_so_aggregation_timeout_cfhsi_config_24023 aggregation_timeout cfhsi_config 0 24023 NULL
143682 +disable_so_write_interrupt_go7007_hpi_ops_24025 write_interrupt go7007_hpi_ops 3 24025 NULL
143683 +disable_so_data_timer_list_24031 data timer_list 0 24031 NULL
143684 +disable_so_reference_freq_radeon_pll_24034 reference_freq radeon_pll 0 24034 NULL
143685 +disable_so_smi_mod_timer_fndecl_24037 smi_mod_timer fndecl 2 24037 NULL
143686 +disable_so_sha1_mb_async_digest_fndecl_24067 sha1_mb_async_digest fndecl 0 24067 NULL
143687 +disable_so_drv2667_set_waveform_freq_fndecl_24071 drv2667_set_waveform_freq fndecl 0 24071 NULL
143688 +disable_so_ath6kl_disconnect_timeout_write_fndecl_24073 ath6kl_disconnect_timeout_write fndecl 3-0 24073 NULL nohasharray
143689 +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
143690 +disable_so_hi_cfg_timing_div_drxd_state_24076 hi_cfg_timing_div drxd_state 0 24076 NULL nohasharray
143691 +disable_so_addr_gf100_grctx_24076 addr gf100_grctx 0 24076 &disable_so_hi_cfg_timing_div_drxd_state_24076
143692 +disable_so_expected_sys_clock_freq_drxd_state_24078 expected_sys_clock_freq drxd_state 0 24078 NULL
143693 +disable_so_img_ir_symbol_timing_fndecl_24080 img_ir_symbol_timing fndecl 0-2-3-4-5 24080 NULL
143694 +disable_so_nr_uuids_cache_set_24084 nr_uuids cache_set 0 24084 NULL nohasharray
143695 +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
143696 +disable_so_radeon_atom_get_clock_dividers_fndecl_24091 radeon_atom_get_clock_dividers fndecl 2-0-3 24091 NULL
143697 +disable_so_rx_pg_bidx_addr_bnx2_rx_ring_info_24100 rx_pg_bidx_addr bnx2_rx_ring_info 0 24100 NULL
143698 +disable_so_pty_signal_fndecl_24107 pty_signal fndecl 2 24107 NULL
143699 +disable_so_laddr_rsxx_dma_24112 laddr rsxx_dma 0 24112 NULL
143700 +disable_so_position_ct_timer_instance_24114 position ct_timer_instance 0 24114 NULL
143701 +disable_so_btrfs_create_uuid_tree_fndecl_24124 btrfs_create_uuid_tree fndecl 0 24124 NULL
143702 +disable_so_version_ethtool_regs_24128 version ethtool_regs 0 24128 NULL
143703 +disable_so_usleep_range_fndecl_24129 usleep_range fndecl 1-2 24129 NULL
143704 +disable_so_pdc_detect_pll_input_clock_fndecl_24132 pdc_detect_pll_input_clock fndecl 0 24132 NULL
143705 +disable_so_dn_ifaddr_notify_fndecl_24133 dn_ifaddr_notify fndecl 1 24133 NULL
143706 +disable_so_sis_ata133_program_udma_timings_fndecl_24137 sis_ata133_program_udma_timings fndecl 2 24137 NULL
143707 +disable_so_fll_fratio_fll_div_24138 fll_fratio fll_div 0 24138 NULL
143708 +disable_so_switch_addr_tda827x_config_24144 switch_addr tda827x_config 0 24144 NULL
143709 +disable_so_scan_timeout_airo_info_24146 scan_timeout airo_info 0 24146 NULL nohasharray
143710 +disable_so_tps6586x_rtc_set_time_fndecl_24146 tps6586x_rtc_set_time fndecl 0 24146 &disable_so_scan_timeout_airo_info_24146
143711 +disable_so_ip101a_g_ack_interrupt_fndecl_24147 ip101a_g_ack_interrupt fndecl 0 24147 NULL
143712 +disable_so_clock_speed__MGSL_PARAMS_24149 clock_speed _MGSL_PARAMS 0 24149 NULL nohasharray
143713 +disable_so_esi_tss_segment_32_24149 esi tss_segment_32 0 24149 &disable_so_clock_speed__MGSL_PARAMS_24149
143714 +disable_so_sync_size_bitmap_super_s_24170 sync_size bitmap_super_s 0 24170 NULL
143715 +disable_so_hwirq_irq_data_24172 hwirq irq_data 0 24172 NULL
143716 +disable_so_brcm_fet_ack_interrupt_fndecl_24181 brcm_fet_ack_interrupt fndecl 0 24181 NULL
143717 +disable_so_min_delta_ticks_clock_event_device_24191 min_delta_ticks clock_event_device 0 24191 NULL
143718 +disable_so_device_snd_timer_id_24197 device snd_timer_id 0 24197 NULL
143719 +disable_so_xcan_tx_interrupt_fndecl_24200 xcan_tx_interrupt fndecl 2 24200 NULL
143720 +disable_so_dmabuf_timeout_fndecl_24205 dmabuf_timeout fndecl 0 24205 NULL
143721 +disable_so_pm_runtime_get_sync_fndecl_24206 pm_runtime_get_sync fndecl 0 24206 NULL
143722 +disable_so_vdso_addr_fndecl_24212 vdso_addr fndecl 1-2 24212 NULL
143723 +disable_so___subtree_last_usnic_uiom_interval_node_24213 __subtree_last usnic_uiom_interval_node 0 24213 NULL
143724 +disable_so_read_mac_addr_pch_gbe_functions_24216 read_mac_addr pch_gbe_functions 0 24216 NULL
143725 +disable_so_get_option_gid_fndecl_24218 get_option_gid fndecl 0 24218 NULL
143726 +disable_so_decode_freq_dst_state_24221 decode_freq dst_state 0 24221 NULL
143727 +disable_so_nilfs_btree_prepare_delete_fndecl_24237 nilfs_btree_prepare_delete fndecl 0 24237 NULL
143728 +disable_so_start_time_s2io_nic_24242 start_time s2io_nic 0 24242 NULL
143729 +disable_so_tv_vsync_delay_nv04_crtc_reg_24261 tv_vsync_delay nv04_crtc_reg 0 24261 NULL
143730 +disable_so_sq_addr_low_nes_qp_context_24263 sq_addr_low nes_qp_context 0 24263 NULL
143731 +disable_so_jiffies_next_airspy_24265 jiffies_next airspy 0 24265 NULL
143732 +disable_so_show_node_guid_fndecl_24266 show_node_guid fndecl 0 24266 NULL
143733 +disable_so_new_addr_tcf_nat_24272 new_addr tcf_nat 0 24272 NULL nohasharray
143734 +disable_so_dt_cpufreq_probe_fndecl_24272 dt_cpufreq_probe fndecl 0 24272 &disable_so_new_addr_tcf_nat_24272
143735 +disable_so_src_freq_tbl_24280 src freq_tbl 0 24280 NULL
143736 +disable_so_tps51632_dcdc_set_ramp_delay_fndecl_24291 tps51632_dcdc_set_ramp_delay fndecl 0-2 24291 NULL
143737 +disable_so_resolution_num_snd_timer_gstatus_24293 resolution_num snd_timer_gstatus 0 24293 NULL
143738 +disable_so_delay_usecs_spi_transfer_24301 delay_usecs spi_transfer 0 24301 NULL
143739 +disable_so_curfreq_dsbr100_device_24314 curfreq dsbr100_device 0 24314 NULL
143740 +disable_so_mlx4_set_admin_guid_fndecl_24342 mlx4_set_admin_guid fndecl 3-4 24342 NULL
143741 +disable_so__get_table_maxdiv_fndecl_24353 _get_table_maxdiv fndecl 0 24353 NULL
143742 +disable_so_fb_div_scale_rv6xx_power_info_24360 fb_div_scale rv6xx_power_info 0 24360 NULL
143743 +disable_so_fb_get_hfreq_fndecl_24369 fb_get_hfreq fndecl 0-1-2 24369 NULL
143744 +disable_so_mmp_time_mmp_struct_24373 mmp_time mmp_struct 0 24373 NULL
143745 +disable_so_timestamp_mwifiex_fixed_bcn_param_24375 timestamp mwifiex_fixed_bcn_param 0 24375 NULL
143746 +disable_so_s2mpu02_set_ramp_delay_fndecl_24379 s2mpu02_set_ramp_delay fndecl 0 24379 NULL
143747 +disable_so_last_fail_time_iscsi_login_stats_24381 last_fail_time iscsi_login_stats 0 24381 NULL
143748 +disable_so_bus_addr_vnic_res_24386 bus_addr vnic_res 0 24386 NULL
143749 +disable_so_i40e_ptp_adjtime_fndecl_24400 i40e_ptp_adjtime fndecl 2 24400 NULL
143750 +disable_so_msr_ct_atc_24401 msr ct_atc 0 24401 NULL
143751 +disable_so_pvr2_hdw_get_cur_freq_fndecl_24402 pvr2_hdw_get_cur_freq fndecl 0 24402 NULL
143752 +disable_so_time_ubifs_znode_24419 time ubifs_znode 0 24419 NULL
143753 +disable_so_ssp_get_clk_div_fndecl_24428 ssp_get_clk_div fndecl 0-2 24428 NULL
143754 +disable_so_sem_otime_sem_24429 sem_otime sem 0 24429 NULL
143755 +disable_so_mrst_lvds_clock_fndecl_24433 mrst_lvds_clock fndecl 1 24433 NULL
143756 +disable_so_ccp_aes_setkey_fndecl_24438 ccp_aes_setkey fndecl 3 24438 NULL
143757 +disable_so_log2_page_size_mlx5_mkey_seg_24441 log2_page_size mlx5_mkey_seg 0 24441 NULL
143758 +disable_so_qtimer_val_fndecl_24449 qtimer_val fndecl 0 24449 NULL
143759 +disable_so_sum_exec_runtime_sched_entity_24453 sum_exec_runtime sched_entity 0 24453 NULL
143760 +disable_so_ehash_mask_inet_hashinfo_24457 ehash_mask inet_hashinfo 0 24457 NULL
143761 +disable_so_bd_list_addr_hi_bnx2i_tmf_request_24461 bd_list_addr_hi bnx2i_tmf_request 0 24461 NULL
143762 +disable_so_qce_ahash_register_fndecl_24475 qce_ahash_register fndecl 0 24475 NULL
143763 +disable_so_acpi_leave_sleep_state_fndecl_24476 acpi_leave_sleep_state fndecl 0-1 24476 NULL
143764 +disable_so_last_can_queue_ramp_up_time_fc_fcp_internal_24477 last_can_queue_ramp_up_time fc_fcp_internal 0 24477 NULL
143765 +disable_so_mtrr_gran_size_vardecl_cleanup_c_24487 mtrr_gran_size vardecl_cleanup.c 0 24487 NULL
143766 +disable_so_tef6862_s_frequency_fndecl_24490 tef6862_s_frequency fndecl 0 24490 NULL
143767 +disable_so_update_uc_addr_fm10k_mac_ops_24492 update_uc_addr fm10k_mac_ops 4 24492 NULL
143768 +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
143769 +disable_so_read_div_fndecl_24524 read_div fndecl 0-2-3-4 24524 NULL
143770 +disable_so_sctp_setsockopt_peer_addr_params_fndecl_24525 sctp_setsockopt_peer_addr_params fndecl 3-0 24525 NULL
143771 +disable_so_dev_addr_dma_debug_entry_24528 dev_addr dma_debug_entry 0 24528 NULL
143772 +disable_so_txurn_interrupt_mask_ath_hw_24529 txurn_interrupt_mask ath_hw 0 24529 NULL
143773 +disable_so_reg_w_fndecl_24535 reg_w fndecl 2-3 24535 NULL
143774 +disable_so_fs_csaddr_ufs_super_block_first_24537 fs_csaddr ufs_super_block_first 0 24537 NULL nohasharray
143775 +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
143776 +disable_so_af_tx_sent_jiffies_brcmf_p2p_info_24540 af_tx_sent_jiffies brcmf_p2p_info 0 24540 NULL
143777 +disable_so_timekeeping_max_deferment_fndecl_24546 timekeeping_max_deferment fndecl 0 24546 NULL
143778 +disable_so_poly_cipherpad_fndecl_24550 poly_cipherpad fndecl 0 24550 NULL
143779 +disable_so_aosr_aic32x4_rate_divs_24551 aosr aic32x4_rate_divs 0 24551 NULL
143780 +disable_so_dir_band_bitmap_hpfs_super_block_24552 dir_band_bitmap hpfs_super_block 0 24552 NULL
143781 +disable_so_confq_first_pbe_addr_hi_fcoe_kwqe_conn_offload3_24566 confq_first_pbe_addr_hi fcoe_kwqe_conn_offload3 0 24566 NULL
143782 +disable_so_console_addr_brcmf_sdio_24567 console_addr brcmf_sdio 0 24567 NULL
143783 +disable_so_cis820x_ack_interrupt_fndecl_24585 cis820x_ack_interrupt fndecl 0 24585 NULL
143784 +disable_so_proc_loginuid_read_fndecl_24604 proc_loginuid_read fndecl 3-0 24604 NULL
143785 +disable_so_schedule_nes_timer_fndecl_24613 schedule_nes_timer fndecl 0 24613 NULL
143786 +disable_so_base_freq_patch_info_24622 base_freq patch_info 0 24622 NULL
143787 +disable_so_acpi_hw_sleep_dispatch_fndecl_24627 acpi_hw_sleep_dispatch fndecl 0-1 24627 NULL
143788 +disable_so_busaddr_cciss_scsi_cmd_stack_elem_t_24629 busaddr cciss_scsi_cmd_stack_elem_t 0 24629 NULL
143789 +disable_so_hscb_busaddr_hardware_scb_24633 hscb_busaddr hardware_scb 0 24633 NULL
143790 +disable_so_scsi_reset_delay_adveep_38C0800_config_24634 scsi_reset_delay adveep_38C0800_config 0 24634 NULL
143791 +disable_so_mclk_fb_div_pll_ct_24641 mclk_fb_div pll_ct 0 24641 NULL
143792 +disable_so_writeback_index_address_space_24643 writeback_index address_space 0 24643 NULL
143793 +disable_so_ieee80211_aes_cmac_256_fndecl_24647 ieee80211_aes_cmac_256 fndecl 4 24647 NULL
143794 +disable_so_i915_gem_object_set_to_cpu_domain_fndecl_24650 i915_gem_object_set_to_cpu_domain fndecl 0 24650 NULL
143795 +disable_so_i2c_addr_sd_24651 i2c_addr sd 0 24651 NULL
143796 +disable_so_next_jiffies_vardecl_ksz884x_c_24672 next_jiffies vardecl_ksz884x.c 0 24672 NULL
143797 +disable_so_sclk_frequency_sumo_sclk_voltage_mapping_entry_24676 sclk_frequency sumo_sclk_voltage_mapping_entry 0 24676 NULL
143798 +disable_so_eop_buffer_address_kfd_ioctl_create_queue_args_24677 eop_buffer_address kfd_ioctl_create_queue_args 0 24677 NULL
143799 +disable_so_cyc2ns_mul_cyc2ns_data_24698 cyc2ns_mul cyc2ns_data 0 24698 NULL
143800 +disable_so_task_getscheduler_security_operations_24701 task_getscheduler security_operations 0 24701 NULL
143801 +disable_so_bitmap_search_next_usable_block_fndecl_24705 bitmap_search_next_usable_block fndecl 0-1-3 24705 NULL
143802 +disable_so_gfn_to_memslot_dirty_bitmap_fndecl_24710 gfn_to_memslot_dirty_bitmap fndecl 2 24710 NULL
143803 +disable_so_type_acpi_signal_fatal_info_24717 type acpi_signal_fatal_info 0 24717 NULL
143804 +disable_so_interrupt_mod_interval_vardecl_24721 interrupt_mod_interval vardecl 0 24721 NULL
143805 +disable_so_crypto_authenc_esn_givencrypt_fndecl_24722 crypto_authenc_esn_givencrypt fndecl 0 24722 NULL
143806 +disable_so_atl1e_hash_mc_addr_fndecl_24728 atl1e_hash_mc_addr fndecl 0 24728 NULL
143807 +disable_so_digest_size_ccp_sha_def_24730 digest_size ccp_sha_def 0 24730 NULL
143808 +disable_so_sysfs_show_current_clocksources_fndecl_24748 sysfs_show_current_clocksources fndecl 0 24748 NULL
143809 +disable_so_timeout_ip_set_ext_24754 timeout ip_set_ext 0 24754 NULL
143810 +disable_so_freqmode_pll_div_24757 freqmode pll_div 0 24757 NULL
143811 +disable_so_mvs_write_port_cfg_addr_fndecl_24758 mvs_write_port_cfg_addr fndecl 3 24758 NULL nohasharray
143812 +disable_so_vactive_lo_oaktrail_timing_info_24758 vactive_lo oaktrail_timing_info 0 24758 &disable_so_mvs_write_port_cfg_addr_fndecl_24758
143813 +disable_so_cs42xx8_runtime_resume_fndecl_24764 cs42xx8_runtime_resume fndecl 0 24764 NULL
143814 +disable_so_snd_pcm_hw_rule_div_fndecl_24768 snd_pcm_hw_rule_div fndecl 0 24768 NULL
143815 +disable_so_drbg_hash_process_addtl_fndecl_24773 drbg_hash_process_addtl fndecl 0 24773 NULL
143816 +disable_so__lookup_address_cpa_fndecl_24780 _lookup_address_cpa fndecl 2 24780 NULL
143817 +disable_so_time_stamp_iwl_traffic_load_24795 time_stamp iwl_traffic_load 0 24795 NULL
143818 +disable_so_remote_cm_response_timeout_ib_cm_req_event_param_24800 remote_cm_response_timeout ib_cm_req_event_param 0 24800 NULL
143819 +disable_so_busaddr_nes_rskb_cb_24803 busaddr nes_rskb_cb 0 24803 NULL nohasharray
143820 +disable_so_setkey_ablkcipher_tfm_24803 setkey ablkcipher_tfm 0-3 24803 &disable_so_busaddr_nes_rskb_cb_24803
143821 +disable_so_acpi_sleep_prepare_fndecl_24809 acpi_sleep_prepare fndecl 1 24809 NULL
143822 +disable_so_max98090_find_divisor_fndecl_24832 max98090_find_divisor fndecl 0-2 24832 NULL
143823 +disable_so_panel_digon_delay_radeon_encoder_lvds_24833 panel_digon_delay radeon_encoder_lvds 0 24833 NULL
143824 +disable_so_qp_dma_addr_t3_rdma_init_attr_24843 qp_dma_addr t3_rdma_init_attr 0 24843 NULL
143825 +disable_so_interval_tree_compute_subtree_last_fndecl_24849 interval_tree_compute_subtree_last fndecl 0 24849 NULL
143826 +disable_so_queue_info_new_phys_addr_lo_megasas_init_frame_24856 queue_info_new_phys_addr_lo megasas_init_frame 0 24856 NULL
143827 +disable_so_mipi_dsi_dcs_enter_sleep_mode_fndecl_24857 mipi_dsi_dcs_enter_sleep_mode fndecl 0 24857 NULL
143828 +disable_so_ring_iowrite64desc_fndecl_24858 ring_iowrite64desc fndecl 2 24858 NULL nohasharray
143829 +disable_so_regcache_rbtree_lookup_fndecl_24858 regcache_rbtree_lookup fndecl 2 24858 &disable_so_ring_iowrite64desc_fndecl_24858
143830 +disable_so_rx_timeout_sci_port_24883 rx_timeout sci_port 0 24883 NULL nohasharray
143831 +disable_so_add_atomic_switch_msr_fndecl_24883 add_atomic_switch_msr fndecl 3-4 24883 &disable_so_rx_timeout_sci_port_24883
143832 +disable_so_xfs_btree_del_cursor_fndecl_24886 xfs_btree_del_cursor fndecl 2 24886 NULL
143833 +disable_so_dsp_time_last_pcxhr_mgr_24894 dsp_time_last pcxhr_mgr 0 24894 NULL
143834 +disable_so_addr_carm_msg_allocbuf_24908 addr carm_msg_allocbuf 0 24908 NULL
143835 +disable_so_max_gids_mthca_dev_lim_24911 max_gids mthca_dev_lim 0 24911 NULL nohasharray
143836 +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
143837 +disable_so_last_jiffies_vardecl_isdn_net_c_24918 last_jiffies vardecl_isdn_net.c 0 24918 NULL
143838 +disable_so_pci_bus_cx88_core_24932 pci_bus cx88_core 0 24932 NULL
143839 +disable_so_devm_gpio_request_one_fndecl_24938 devm_gpio_request_one fndecl 0-2 24938 NULL
143840 +disable_so_launder_page_address_space_operations_24942 launder_page address_space_operations 0 24942 NULL
143841 +disable_so_enh_desc_get_timestamp_fndecl_24946 enh_desc_get_timestamp fndecl 0 24946 NULL
143842 +disable_so___pci_bus_find_cap_start_fndecl_24949 __pci_bus_find_cap_start fndecl 0-2 24949 NULL
143843 +disable_so_prepare_signal_fndecl_24954 prepare_signal fndecl 1 24954 NULL
143844 +disable_so_il_vfrontporch_v4l2_bt_timings_24960 il_vfrontporch v4l2_bt_timings 0 24960 NULL
143845 +disable_so_ide_pio_cycle_time_fndecl_24963 ide_pio_cycle_time fndecl 2-0 24963 NULL
143846 +disable_so_demod_address_tda10086_config_24966 demod_address tda10086_config 0 24966 NULL nohasharray
143847 +disable_so_ath5k_check_timer_win_fndecl_24966 ath5k_check_timer_win fndecl 1-2 24966 &disable_so_demod_address_tda10086_config_24966
143848 +disable_so_pentium_core_get_frequency_fndecl_24968 pentium_core_get_frequency fndecl 0 24968 NULL
143849 +disable_so_freqerr_chk_fndecl_24974 freqerr_chk fndecl 0-2-3 24974 NULL
143850 +disable_so_tgt_reset_timeout_iscsi_session_24977 tgt_reset_timeout iscsi_session 0 24977 NULL
143851 +disable_so_gpiod_set_raw_value_cansleep_fndecl_24979 gpiod_set_raw_value_cansleep fndecl 2 24979 NULL
143852 +disable_so_write_addr_fndecl_24985 write_addr fndecl 2 24985 NULL
143853 +disable_so_mcs7830_set_mac_address_fndecl_24986 mcs7830_set_mac_address fndecl 0 24986 NULL
143854 +disable_so_multiaddr_ip_mc_list_24989 multiaddr ip_mc_list 0 24989 NULL
143855 +disable_so_shash_ahash_digest_fndecl_24990 shash_ahash_digest fndecl 0 24990 NULL
143856 +disable_so_unlock_timer_adp5589_kpad_platform_data_24993 unlock_timer adp5589_kpad_platform_data 0 24993 NULL
143857 +disable_so_connect_timeout_vsock_sock_25001 connect_timeout vsock_sock 0 25001 NULL
143858 +disable_so_m_addr_rds_cong_map_25013 m_addr rds_cong_map 0 25013 NULL
143859 +disable_so_flash_addr_esas2r_ioctlfs_command_25014 flash_addr esas2r_ioctlfs_command 0 25014 NULL
143860 +disable_so_da9052_rtc_read_time_fndecl_25015 da9052_rtc_read_time fndecl 0 25015 NULL
143861 +disable_so_cpu_to_vhost32_fndecl_25031 cpu_to_vhost32 fndecl 0-2 25031 NULL
143862 +disable_so_vxlan_nla_put_addr_fndecl_25037 vxlan_nla_put_addr fndecl 0 25037 NULL
143863 +disable_so_hello_timer_value___bridge_info_25048 hello_timer_value __bridge_info 0 25048 NULL
143864 +disable_so_steer_res_gid_25050 steer res_gid 0 25050 NULL
143865 +disable_so_average_frequency_time_stats_25055 average_frequency time_stats 0 25055 NULL
143866 +disable_so_sense_busaddr_scb_data_25056 sense_busaddr scb_data 0 25056 NULL
143867 +disable_so_rx_stall_timeout_msecs_vardecl_25059 rx_stall_timeout_msecs vardecl 0 25059 NULL
143868 +disable_so_bypclk_div_dibx000_bandwidth_config_25065 bypclk_div dibx000_bandwidth_config 0 25065 NULL
143869 +disable_so_drm_dp_clock_recovery_ok_fndecl_25083 drm_dp_clock_recovery_ok fndecl 2 25083 NULL
143870 +disable_so_get_min_clock_sdhci_ops_25084 get_min_clock sdhci_ops 0 25084 NULL
143871 +disable_so_port_ka_time_fcoe_ctlr_25085 port_ka_time fcoe_ctlr 0 25085 NULL
143872 +disable_so_btrfs_set_token_timespec_nsec_fndecl_25090 btrfs_set_token_timespec_nsec fndecl 3 25090 NULL
143873 +disable_so_tx_bd_haddr_lo_bnx2_tx_bd_25100 tx_bd_haddr_lo bnx2_tx_bd 0 25100 NULL
143874 +disable_so_pwm_freq_div_dib7000p_config_25102 pwm_freq_div dib7000p_config 0 25102 NULL
143875 +disable_so_x86_pmu_config_addr_fndecl_25103 x86_pmu_config_addr fndecl 0-1 25103 NULL
143876 +disable_so_address_TAG_TW_SG_Entry_25109 address TAG_TW_SG_Entry 0 25109 NULL
143877 +disable_so_cfg_base_smsc_chip_address_25125 cfg_base smsc_chip_address 0 25125 NULL
143878 +disable_so_snd_iprintf_fndecl_25126 snd_iprintf fndecl 0 25126 NULL
143879 +disable_so_sony_nc_kbd_backlight_timeout_show_fndecl_25134 sony_nc_kbd_backlight_timeout_show fndecl 0 25134 NULL
143880 +disable_so___hw_addr_create_ex_fndecl_25138 __hw_addr_create_ex fndecl 3 25138 NULL
143881 +disable_so_sdev_show_timeout_fndecl_25140 sdev_show_timeout fndecl 0 25140 NULL
143882 +disable_so_valleyview_rps_guar_freq_fndecl_25141 valleyview_rps_guar_freq fndecl 0 25141 NULL
143883 +disable_so_msg_addr_lo_vf_pf_event_data_25142 msg_addr_lo vf_pf_event_data 0 25142 NULL nohasharray
143884 +disable_so_hfreq___fb_timings_25142 hfreq __fb_timings 0 25142 &disable_so_msg_addr_lo_vf_pf_event_data_25142
143885 +disable_so_select_addr_2_qla83xx_minidump_entry_rdmux2_25145 select_addr_2 qla83xx_minidump_entry_rdmux2 0 25145 NULL
143886 +disable_so_ctrl_addr_palmas_regs_info_25149 ctrl_addr palmas_regs_info 0 25149 NULL
143887 +disable_so_gid_affs_tail_25153 gid affs_tail 0 25153 NULL
143888 +disable_so_recv_timeout_iscsi_conn_25159 recv_timeout iscsi_conn 0 25159 NULL
143889 +disable_so_decode_attr_lease_time_fndecl_25160 decode_attr_lease_time fndecl 0 25160 NULL
143890 +disable_so_log10times100_fndecl_25175 log10times100 fndecl 0-1 25175 NULL
143891 +disable_so_crypto_register_shashes_fndecl_25178 crypto_register_shashes fndecl 0 25178 NULL
143892 +disable_so_sh_cmt_clock_event_next_fndecl_25183 sh_cmt_clock_event_next fndecl 1 25183 NULL
143893 +disable_so_update_mctime_fndecl_25185 update_mctime fndecl 0 25185 NULL
143894 +disable_so_snd_hdspm_info_clock_source_fndecl_25189 snd_hdspm_info_clock_source fndecl 0 25189 NULL
143895 +disable_so_ds1390_read_time_fndecl_25191 ds1390_read_time fndecl 0 25191 NULL
143896 +disable_so_crypto_gcm_setkey_fndecl_25197 crypto_gcm_setkey fndecl 0-3 25197 NULL
143897 +disable_so_atomic_read_file_fndecl_25200 atomic_read_file fndecl 3-0 25200 NULL
143898 +disable_so_i_ctime_minix2_inode_25213 i_ctime minix2_inode 0 25213 NULL
143899 +disable_so_account_fndecl_25224 account fndecl 0-4-2 25224 NULL
143900 +disable_so_bestclock_fndecl_25226 bestclock fndecl 1 25226 NULL
143901 +disable_so_regcache_rbtree_insert_to_block_fndecl_25230 regcache_rbtree_insert_to_block fndecl 3-4-5-6 25230 NULL
143902 +disable_so_pentiumM_get_frequency_fndecl_25231 pentiumM_get_frequency fndecl 0 25231 NULL
143903 +disable_so_model_mceusb_dev_25234 model mceusb_dev 0 25234 NULL
143904 +disable_so_sk_rcvtimeo_sock_25235 sk_rcvtimeo sock 0 25235 NULL
143905 +disable_so_atomic_long_add_fndecl_25245 atomic_long_add fndecl 1 25245 NULL
143906 +disable_so_tw_rcv_wnd_tcp_timewait_sock_25247 tw_rcv_wnd tcp_timewait_sock 0 25247 NULL
143907 +disable_so_vga_switcheroo_runtime_resume_fndecl_25258 vga_switcheroo_runtime_resume fndecl 0 25258 NULL nohasharray
143908 +disable_so_swp_freq_calcuation_fndecl_25258 swp_freq_calcuation fndecl 0-10-8-9 25258 &disable_so_vga_switcheroo_runtime_resume_fndecl_25258
143909 +disable_so_sys_setresuid_fndecl_25263 sys_setresuid fndecl 0-1-2-3 25263 NULL
143910 +disable_so_va_gid_coda_vattr_25267 va_gid coda_vattr 0 25267 NULL
143911 +disable_so_adis16136_set_freq_fndecl_25268 adis16136_set_freq fndecl 0 25268 NULL
143912 +disable_so_sha1_ssse3_update_fndecl_25270 sha1_ssse3_update fndecl 3 25270 NULL
143913 +disable_so_data_addr_rx_ring_info_25277 data_addr rx_ring_info 0 25277 NULL
143914 +disable_so_in_n_analog_pcm_runtime_25285 in_n_analog pcm_runtime 0 25285 NULL
143915 +disable_so_active_ide_timing_25290 active ide_timing 0 25290 NULL
143916 +disable_so_max_img_ir_timing_range_25312 max img_ir_timing_range 0 25312 NULL
143917 +disable_so_sisusb_setidxreg_fndecl_25313 sisusb_setidxreg fndecl 0-2-3-4 25313 NULL
143918 +disable_so_rss_hash_cq_enet_rq_desc_25315 rss_hash cq_enet_rq_desc 0 25315 NULL
143919 +disable_so_sdhci_pltfm_clk_get_max_clock_fndecl_25319 sdhci_pltfm_clk_get_max_clock fndecl 0 25319 NULL
143920 +disable_so_be_cmd_mac_addr_query_fndecl_25342 be_cmd_mac_addr_query fndecl 0 25342 NULL
143921 +disable_so_st_atime_nsec_compat_stat_25348 st_atime_nsec compat_stat 0 25348 NULL
143922 +disable_so_blkcipher_walk_virt_fndecl_25350 blkcipher_walk_virt fndecl 0 25350 NULL
143923 +disable_so_ata_sff_interrupt_fndecl_25352 ata_sff_interrupt fndecl 1 25352 NULL
143924 +disable_so_vdisktime_cfq_group_25353 vdisktime cfq_group 0 25353 NULL
143925 +disable_so_sctp_apply_peer_addr_params_fndecl_25357 sctp_apply_peer_addr_params fndecl 0 25357 NULL
143926 +disable_so_hpi_sample_clock_get_local_rate_lock_fndecl_25364 hpi_sample_clock_get_local_rate_lock fndecl 1-0 25364 NULL
143927 +disable_so_sticks_snd_timer_25366 sticks snd_timer 0 25366 NULL
143928 +disable_so_segv_uid_gr_arg_25373 segv_uid gr_arg 0 25373 NULL
143929 +disable_so_signal_rate_plcp_signal_rate_lookup_25377 signal_rate plcp_signal_rate_lookup 0 25377 NULL
143930 +disable_so_timeout_jiffies_tifm_sd_25387 timeout_jiffies tifm_sd 0 25387 NULL
143931 +disable_so_fence_gpu_addr_kernel_queue_25394 fence_gpu_addr kernel_queue 0 25394 NULL
143932 +disable_so_pch_udc_enable_interrupts_fndecl_25405 pch_udc_enable_interrupts fndecl 2 25405 NULL
143933 +disable_so_addr_hi_eth_rx_sge_25407 addr_hi eth_rx_sge 0 25407 NULL
143934 +disable_so_flushtimeout_nfulnl_instance_25409 flushtimeout nfulnl_instance 0 25409 NULL
143935 +disable_so_ti12xx_untie_interrupts_fndecl_25411 ti12xx_untie_interrupts fndecl 2 25411 NULL
143936 +disable_so_dma_addr_t4_cq_25412 dma_addr t4_cq 0 25412 NULL
143937 +disable_so_task_list_pbl_addr_lo_fcoe_kwqe_init1_25414 task_list_pbl_addr_lo fcoe_kwqe_init1 0 25414 NULL
143938 +disable_so_conntrack_addrcmp_fndecl_25418 conntrack_addrcmp fndecl 4 25418 NULL
143939 +disable_so_datablock_addr_fndecl_25424 datablock_addr fndecl 0-2 25424 NULL
143940 +disable_so_intel_sdvo_create_preferred_input_timing_fndecl_25428 intel_sdvo_create_preferred_input_timing fndecl 3-4 25428 NULL
143941 +disable_so_return_address_stack_frame_ia32_25439 return_address stack_frame_ia32 0 25439 NULL
143942 +disable_so_tmds_chip_slave_addr_tmds_chip_information_25446 tmds_chip_slave_addr tmds_chip_information 0 25446 NULL
143943 +disable_so_releasepage_address_space_operations_25450 releasepage address_space_operations 2 25450 NULL
143944 +disable_so_sys_setgid_fndecl_25470 sys_setgid fndecl 0-1 25470 NULL nohasharray
143945 +disable_so_random_address_open_fndecl_25470 random_address_open fndecl 0 25470 &disable_so_sys_setgid_fndecl_25470
143946 +disable_so_creation_time_se_device_25474 creation_time se_device 0 25474 NULL
143947 +disable_so_addr_qla8xxx_minidump_entry_crb_25475 addr qla8xxx_minidump_entry_crb 0 25475 NULL
143948 +disable_so_wrmsr_safe_on_cpu_fndecl_25481 wrmsr_safe_on_cpu fndecl 0-1 25481 NULL
143949 +disable_so_htc_addr_ath6kl_mbox_info_25495 htc_addr ath6kl_mbox_info 0 25495 NULL
143950 +disable_so_crypto_shash_export_fndecl_25501 crypto_shash_export fndecl 0 25501 NULL
143951 +disable_so_pm_runtime_autosuspend_expiration_fndecl_25503 pm_runtime_autosuspend_expiration fndecl 0 25503 NULL
143952 +disable_so_fib_info_update_nh_saddr_fndecl_25504 fib_info_update_nh_saddr fndecl 0 25504 NULL
143953 +disable_so_ac_uid_taskstats_25506 ac_uid taskstats 0 25506 NULL
143954 +disable_so_bufaddr_epic_rx_desc_25507 bufaddr epic_rx_desc 0 25507 NULL
143955 +disable_so_process_tgid_id_proc_event_25512 process_tgid id_proc_event 0 25512 NULL
143956 +disable_so_si5351_msynth_params_address_fndecl_25517 si5351_msynth_params_address fndecl 0-1 25517 NULL
143957 +disable_so_btrfs_dev_replace_time_stopped_fndecl_25538 btrfs_dev_replace_time_stopped fndecl 0 25538 NULL
143958 +disable_so___irq_set_handler_fndecl_25547 __irq_set_handler fndecl 1 25547 NULL
143959 +disable_so_next_addr_ath_gen_timer_configuration_25559 next_addr ath_gen_timer_configuration 0 25559 NULL
143960 +disable_so_timeout_request_25561 timeout request 0 25561 NULL
143961 +disable_so_rx_bd_haddr_hi_bnx2_rx_bd_25562 rx_bd_haddr_hi bnx2_rx_bd 0 25562 NULL nohasharray
143962 +disable_so_jhash_1word_fndecl_25562 jhash_1word fndecl 0-1 25562 &disable_so_rx_bd_haddr_hi_bnx2_rx_bd_25562
143963 +disable_so_freq_ref_fll_factors_25565 freq_ref fll_factors 0 25565 NULL
143964 +disable_so_compat_sys_mq_timedreceive_fndecl_25566 compat_sys_mq_timedreceive fndecl 1-3 25566 NULL
143965 +disable_so_scl_falling_time_dw_i2c_dev_25576 scl_falling_time dw_i2c_dev 0 25576 NULL
143966 +disable_so_maj_flt_signal_struct_25583 maj_flt signal_struct 0 25583 NULL
143967 +disable_so_irq_set_chip_and_handler_name_fndecl_25596 irq_set_chip_and_handler_name fndecl 1 25596 NULL
143968 +disable_so_timeout_ms_ib_mad_send_buf_25607 timeout_ms ib_mad_send_buf 0 25607 NULL
143969 +disable_so_qs_itimelimit_fs_quota_statv_25612 qs_itimelimit fs_quota_statv 0 25612 NULL nohasharray
143970 +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
143971 +disable_so_o2hb_heartbeat_timeout_ms_o2net_handshake_25614 o2hb_heartbeat_timeout_ms o2net_handshake 0 25614 NULL
143972 +disable_so_sampling_time_acpi_power_meter_capabilities_25620 sampling_time acpi_power_meter_capabilities 0 25620 NULL
143973 +disable_so_C_SYSC_signalfd_fndecl_25641 C_SYSC_signalfd fndecl 0 25641 NULL
143974 +disable_so_dpp_page_addr_lo_ocrdma_alloc_pd_uresp_25645 dpp_page_addr_lo ocrdma_alloc_pd_uresp 0 25645 NULL
143975 +disable_so_memclock_pm2fb_par_25648 memclock pm2fb_par 0 25648 NULL
143976 +disable_so_hca_core_clock_mlx4_init_hca_param_25649 hca_core_clock mlx4_init_hca_param 0 25649 NULL
143977 +disable_so_hash_fndecl_25655 hash fndecl 0-2 25655 NULL
143978 +disable_so_get_scr_cfg_addr_fndecl_25659 get_scr_cfg_addr fndecl 0-2 25659 NULL
143979 +disable_so_brp_can_bittiming_25672 brp can_bittiming 0 25672 NULL
143980 +disable_so_hash_tcindex_data_25674 hash tcindex_data 0 25674 NULL
143981 +disable_so_store_pwm_auto_spinup_time_fndecl_25686 store_pwm_auto_spinup_time fndecl 0-4 25686 NULL nohasharray
143982 +disable_so_wm5100_runtime_resume_fndecl_25686 wm5100_runtime_resume fndecl 0 25686 &disable_so_store_pwm_auto_spinup_time_fndecl_25686
143983 +disable_so_cbc_aes_decrypt_fndecl_25690 cbc_aes_decrypt fndecl 0-4 25690 NULL
143984 +disable_so_find_vma_fndecl_25710 find_vma fndecl 2 25710 NULL
143985 +disable_so_set_register_interruptible_fndecl_25711 set_register_interruptible fndecl 0 25711 NULL
143986 +disable_so_last_beacon_timestamp_atmel_private_25714 last_beacon_timestamp atmel_private 0 25714 NULL
143987 +disable_so_print_uuid_item_fndecl_25720 print_uuid_item fndecl 2-3 25720 NULL nohasharray
143988 +disable_so_intel_pxfreq_fndecl_25720 intel_pxfreq fndecl 0-1 25720 &disable_so_print_uuid_item_fndecl_25720
143989 +disable_so___mlx4_ib_query_gid_fndecl_25733 __mlx4_ib_query_gid fndecl 0-2-3 25733 NULL
143990 +disable_so_crypto_pcbc_setkey_fndecl_25734 crypto_pcbc_setkey fndecl 0-3 25734 NULL
143991 +disable_so_iClockSource_uac_clock_source_descriptor_25741 iClockSource uac_clock_source_descriptor 0 25741 NULL
143992 +disable_so_madc_aic32x4_rate_divs_25746 madc aic32x4_rate_divs 0 25746 NULL nohasharray
143993 +disable_so_test_and_set_bit_le_fndecl_25746 test_and_set_bit_le fndecl 1 25746 &disable_so_madc_aic32x4_rate_divs_25746
143994 +disable_so_init_acpi_pm_clocksource_fndecl_25751 init_acpi_pm_clocksource fndecl 0 25751 NULL
143995 +disable_so_bit_width_io_addr_25761 bit_width io_addr 0 25761 NULL nohasharray
143996 +disable_so_shash_async_finup_fndecl_25761 shash_async_finup fndecl 0 25761 &disable_so_bit_width_io_addr_25761
143997 +disable_so_i_mtime_extra_ext4_inode_25766 i_mtime_extra ext4_inode 0 25766 NULL
143998 +disable_so_suid_ban_expires_user_struct_25778 suid_ban_expires user_struct 0 25778 NULL
143999 +disable_so_sys_timer_delete_fndecl_25781 sys_timer_delete fndecl 1 25781 NULL
144000 +disable_so_write16_b43_bus_dev_25800 write16 b43_bus_dev 3 25800 NULL
144001 +disable_so_pci_bus_clock_list_fndecl_25811 pci_bus_clock_list fndecl 0-1 25811 NULL
144002 +disable_so_pll_freq_adau_25818 pll_freq adau 0 25818 NULL
144003 +disable_so_kvm_get_lapic_tscdeadline_msr_fndecl_25821 kvm_get_lapic_tscdeadline_msr fndecl 0 25821 NULL
144004 +disable_so_power_off_longtime_mmc_ext_csd_25827 power_off_longtime mmc_ext_csd 0 25827 NULL
144005 +disable_so_mcryptd_hash_digest_enqueue_fndecl_25830 mcryptd_hash_digest_enqueue fndecl 0 25830 NULL
144006 +disable_so_bch_btree_node_get_fndecl_25837 bch_btree_node_get fndecl 4 25837 NULL
144007 +disable_so_sa_timeout_mmc_ext_csd_25842 sa_timeout mmc_ext_csd 0 25842 NULL
144008 +disable_so_rc5t583_rtc_set_time_fndecl_25844 rc5t583_rtc_set_time fndecl 0 25844 NULL
144009 +disable_so_pll2_ndiv_b_cnt_ad9523_platform_data_25849 pll2_ndiv_b_cnt ad9523_platform_data 0 25849 NULL
144010 +disable_so_xfs_btree_kill_iroot_fndecl_25851 xfs_btree_kill_iroot fndecl 0 25851 NULL
144011 +disable_so_freq_offset_xc4000_priv_25852 freq_offset xc4000_priv 0 25852 NULL
144012 +disable_so_orig_eax_user_regs_struct32_25853 orig_eax user_regs_struct32 0 25853 NULL
144013 +disable_so_i_mtime_ext4_inode_25857 i_mtime ext4_inode 0 25857 NULL nohasharray
144014 +disable_so_hash_ipportnet4_expire_fndecl_25857 hash_ipportnet4_expire fndecl 4 25857 &disable_so_i_mtime_ext4_inode_25857
144015 +disable_so_max_keysize_blkcipher_alg_25859 max_keysize blkcipher_alg 0 25859 NULL
144016 +disable_so__kstrtol_fndecl_25860 _kstrtol fndecl 0 25860 NULL nohasharray
144017 +disable_so_reqsize_crypto_aead_25860 reqsize crypto_aead 0 25860 &disable_so__kstrtol_fndecl_25860
144018 +disable_so_group_exit_code_signal_struct_25863 group_exit_code signal_struct 0 25863 NULL
144019 +disable_so_i2c_address_qt1010_config_25866 i2c_address qt1010_config 0 25866 NULL
144020 +disable_so_musb_bulk_nak_timeout_fndecl_25876 musb_bulk_nak_timeout fndecl 3 25876 NULL
144021 +disable_so_rangehigh_v4l2_hw_freq_seek_25892 rangehigh v4l2_hw_freq_seek 0 25892 NULL
144022 +disable_so_xferaddr_mbox_out_25904 xferaddr mbox_out 0 25904 NULL
144023 +disable_so_address_mode_snd_emu10k1_25917 address_mode snd_emu10k1 0 25917 NULL
144024 +disable_so_ac_uid_acct_v3_25928 ac_uid acct_v3 0 25928 NULL
144025 +disable_so_show_cpumask_fndecl_25949 show_cpumask fndecl 0 25949 NULL
144026 +disable_so_x86_max_cores_cpuinfo_x86_25950 x86_max_cores cpuinfo_x86 0 25950 NULL
144027 +disable_so_nr_mtrr_spare_reg_vardecl_cleanup_c_25954 nr_mtrr_spare_reg vardecl_cleanup.c 0 25954 NULL
144028 +disable_so_fib_info_hash_move_fndecl_25959 fib_info_hash_move fndecl 3 25959 NULL
144029 +disable_so_rst_timer_val_intel_dsi_25967 rst_timer_val intel_dsi 0 25967 NULL
144030 +disable_so_backlog_wait_time_audit_status_25971 backlog_wait_time audit_status 0 25971 NULL
144031 +disable_so_gid_h_misc_25975 gid h_misc 0 25975 NULL
144032 +disable_so_wm8962_runtime_resume_fndecl_25981 wm8962_runtime_resume fndecl 0 25981 NULL
144033 +disable_so_ip_vs_rs_hashkey_fndecl_25992 ip_vs_rs_hashkey fndecl 1 25992 NULL
144034 +disable_so_sbp_tpg_attrib_store_max_reconnect_timeout_fndecl_25997 sbp_tpg_attrib_store_max_reconnect_timeout fndecl 0-3 25997 NULL
144035 +disable_so_hpwdt_time_left_fndecl_25998 hpwdt_time_left fndecl 0 25998 NULL
144036 +disable_so_mtrr_calc_range_state_fndecl_26002 mtrr_calc_range_state fndecl 3-4-2-1 26002 NULL
144037 +disable_so_tipc_addr_scope_fndecl_26006 tipc_addr_scope fndecl 0 26006 NULL
144038 +disable_so_rdmsr_safe_regs_fndecl_26012 rdmsr_safe_regs fndecl 0 26012 NULL
144039 +disable_so_kvm_inject_realmode_interrupt_fndecl_26018 kvm_inject_realmode_interrupt fndecl 2 26018 NULL
144040 +disable_so_addr_ethoc_bd_26021 addr ethoc_bd 0 26021 NULL
144041 +disable_so_marvell_ack_interrupt_fndecl_26036 marvell_ack_interrupt fndecl 0 26036 NULL
144042 +disable_so_link_check_timeout_igb_adapter_26037 link_check_timeout igb_adapter 0 26037 NULL nohasharray
144043 +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
144044 +disable_so_t2_ptr_hash_tbl_addr_lo_fcoe_kwqe_init2_26039 t2_ptr_hash_tbl_addr_lo fcoe_kwqe_init2 0 26039 NULL
144045 +disable_so_interrupt_out_interval_ld_usb_26046 interrupt_out_interval ld_usb 0 26046 NULL
144046 +disable_so_bs_gid_xfs_bstat_26053 bs_gid xfs_bstat 0 26053 NULL
144047 +disable_so_wm8900_set_dai_clkdiv_fndecl_26074 wm8900_set_dai_clkdiv fndecl 3 26074 NULL
144048 +disable_so_setkey_blkcipher_alg_26078 setkey blkcipher_alg 3 26078 NULL
144049 +disable_so_ixgbevf_init_interrupt_scheme_fndecl_26085 ixgbevf_init_interrupt_scheme fndecl 0 26085 NULL
144050 +disable_so___sw_hweight32_fndecl_26088 __sw_hweight32 fndecl 1-0 26088 NULL nohasharray
144051 +disable_so_addr_hi_eth_tx_bd_26088 addr_hi eth_tx_bd 0 26088 &disable_so___sw_hweight32_fndecl_26088 nohasharray
144052 +disable_so_hashval2_1_rx_pkt_hdr1_26088 hashval2_1 rx_pkt_hdr1 0 26088 &disable_so_addr_hi_eth_tx_bd_26088
144053 +disable_so_debounce_time_snd_soc_jack_gpio_26097 debounce_time snd_soc_jack_gpio 0 26097 NULL
144054 +disable_so_ath6kl_wmi_pstream_timeout_event_rx_fndecl_26100 ath6kl_wmi_pstream_timeout_event_rx fndecl 3 26100 NULL
144055 +disable_so_fl0addr_fw_iq_cmd_26103 fl0addr fw_iq_cmd 0 26103 NULL
144056 +disable_so___acpi_os_prepare_extended_sleep_vardecl_osl_c_26106 __acpi_os_prepare_extended_sleep vardecl_osl.c 2 26106 NULL
144057 +disable_so_atomic_check_drm_mode_config_funcs_26109 atomic_check drm_mode_config_funcs 0 26109 NULL
144058 +disable_so_st_mtime_stat_26114 st_mtime stat 0 26114 NULL
144059 +disable_so_cx23885_set_freq_fndecl_26129 cx23885_set_freq fndecl 0 26129 NULL
144060 +disable_so_img_ir_timings_convert_fndecl_26132 img_ir_timings_convert fndecl 3-4 26132 NULL
144061 +disable_so_generic_update_time_fndecl_26133 generic_update_time fndecl 0 26133 NULL
144062 +disable_so_cpu_to_virtio32_fndecl_26151 cpu_to_virtio32 fndecl 0-2 26151 NULL
144063 +disable_so_dp_dma_addr_mic_device_26153 dp_dma_addr mic_device 0 26153 NULL
144064 +disable_so_mask_clocksource_26154 mask clocksource 0 26154 NULL
144065 +disable_so_bit_rate_hpi_msg_format_26167 bit_rate hpi_msg_format 0 26167 NULL
144066 +disable_so_set_bitmap_file_fndecl_26171 set_bitmap_file fndecl 0-2 26171 NULL
144067 +disable_so_show_fast_charge_timer_fndecl_26172 show_fast_charge_timer fndecl 0 26172 NULL
144068 +disable_so_rt_spc_timelimit_qc_type_state_26186 rt_spc_timelimit qc_type_state 0 26186 NULL
144069 +disable_so_HYPERVISOR_physdev_op_fndecl_26192 HYPERVISOR_physdev_op fndecl 0 26192 NULL
144070 +disable_so_sci_br_interrupt_fndecl_26202 sci_br_interrupt fndecl 1 26202 NULL
144071 +disable_so_bitmap_ipmac_do_list_fndecl_26203 bitmap_ipmac_do_list fndecl 4 26203 NULL
144072 +disable_so_kxcjk1013_setup_any_motion_interrupt_fndecl_26214 kxcjk1013_setup_any_motion_interrupt fndecl 0 26214 NULL
144073 +disable_so_io_request_phys_addr_megasas_cmd_fusion_26240 io_request_phys_addr megasas_cmd_fusion 0 26240 NULL
144074 +disable_so_compute_unit_id_cpuinfo_x86_26241 compute_unit_id cpuinfo_x86 0 26241 NULL
144075 +disable_so_dynpm_action_timeout_radeon_pm_26257 dynpm_action_timeout radeon_pm 0 26257 NULL
144076 +disable_so_lookup_address_in_pgd_fndecl_26268 lookup_address_in_pgd fndecl 2 26268 NULL
144077 +disable_so_addr_prism2_download_data_area_26275 addr prism2_download_data_area 0 26275 NULL
144078 +disable_so_channels_snd_pcm_runtime_26297 channels snd_pcm_runtime 0 26297 NULL
144079 +disable_so_iamthif_timer_mei_device_26298 iamthif_timer mei_device 0 26298 NULL nohasharray
144080 +disable_so_simple_strtol_fndecl_26298 simple_strtol fndecl 0 26298 &disable_so_iamthif_timer_mei_device_26298
144081 +disable_so_rose_set_mac_address_fndecl_26302 rose_set_mac_address fndecl 0 26302 NULL
144082 +disable_so_sq_addr_lo_fcoe_kwqe_conn_offload1_26303 sq_addr_lo fcoe_kwqe_conn_offload1 0 26303 NULL
144083 +disable_so_m88ds3103_sleep_fndecl_26315 m88ds3103_sleep fndecl 0 26315 NULL
144084 +disable_so_ping_timeo_net_conf_26316 ping_timeo net_conf 0 26316 NULL nohasharray
144085 +disable_so_parent_btrfs_delayed_tree_ref_26316 parent btrfs_delayed_tree_ref 0 26316 &disable_so_ping_timeo_net_conf_26316
144086 +disable_so_esd_timeout_ms_tsc2005_platform_data_26333 esd_timeout_ms tsc2005_platform_data 0 26333 NULL
144087 +disable_so_addr_change_member_26339 addr change_member 0 26339 NULL
144088 +disable_so_mvs_show_interrupt_coalescing_fndecl_26346 mvs_show_interrupt_coalescing fndecl 0 26346 NULL
144089 +disable_so_hashkey_raw_ip_vs_pe_26355 hashkey_raw ip_vs_pe 0 26355 NULL
144090 +disable_so_skl_compute_linetime_wm_fndecl_26358 skl_compute_linetime_wm fndecl 0 26358 NULL
144091 +disable_so_radeon_pmops_runtime_resume_fndecl_26363 radeon_pmops_runtime_resume fndecl 0 26363 NULL
144092 +disable_so_op_remote_addr_rm_rdma_op_26364 op_remote_addr rm_rdma_op 0 26364 NULL
144093 +disable_so_yura_hash_fndecl_26368 yura_hash fndecl 2 26368 NULL
144094 +disable_so_blocksize_qce_ablkcipher_def_26370 blocksize qce_ablkcipher_def 0 26370 NULL
144095 +disable_so_phys_efi_set_virtual_address_map_fndecl_26380 phys_efi_set_virtual_address_map fndecl 1-2 26380 NULL
144096 +disable_so_sfi_lapic_addr_vardecl_sfi_c_26384 sfi_lapic_addr vardecl_sfi.c 0 26384 NULL
144097 +disable_so_ebp_user_regs_struct32_26386 ebp user_regs_struct32 0 26386 NULL
144098 +disable_so_total_time_enabled_perf_event_26387 total_time_enabled perf_event 0 26387 NULL nohasharray
144099 +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
144100 +disable_so_write32_b43_bus_dev_26402 write32 b43_bus_dev 3 26402 NULL
144101 +disable_so_seq_default_timer_device_vardecl_26404 seq_default_timer_device vardecl 0 26404 NULL
144102 +disable_so_address_xfs_dir2_leaf_entry_26411 address xfs_dir2_leaf_entry 0 26411 NULL
144103 +disable_so_regmap_irq_get_virq_fndecl_26413 regmap_irq_get_virq fndecl 2-0 26413 NULL
144104 +disable_so_msr_ia32_feature_control_nested_vmx_26415 msr_ia32_feature_control nested_vmx 0 26415 NULL
144105 +disable_so_last_load_cpufreq_cooling_device_26418 last_load cpufreq_cooling_device 0 26418 NULL
144106 +disable_so_blank_time_dce8_wm_params_26421 blank_time dce8_wm_params 0 26421 NULL
144107 +disable_so_start_time_rsxx_bio_meta_26424 start_time rsxx_bio_meta 0 26424 NULL
144108 +disable_so_ima_calc_file_hash_atfm_fndecl_26437 ima_calc_file_hash_atfm fndecl 0 26437 NULL
144109 +disable_so_range_to_mtrr_fndecl_26447 range_to_mtrr fndecl 2-3 26447 NULL
144110 +disable_so_sm_addr_ns_dev_26449 sm_addr ns_dev 0 26449 NULL
144111 +disable_so_uartlite_outle32_fndecl_26455 uartlite_outle32 fndecl 1 26455 NULL
144112 +disable_so___arch_hweight64_fndecl_26456 __arch_hweight64 fndecl 0-1 26456 NULL nohasharray
144113 +disable_so_rsa_parse_key_fndecl_26456 rsa_parse_key fndecl 3 26456 &disable_so___arch_hweight64_fndecl_26456
144114 +disable_so_data_addr_ide_io_ports_26461 data_addr ide_io_ports 0 26461 NULL
144115 +disable_so_mce_adjust_timer_vardecl_mce_c_26462 mce_adjust_timer vardecl_mce.c 0-1 26462 NULL
144116 +disable_so_tv_sec_ceph_timespec_26463 tv_sec ceph_timespec 0 26463 NULL
144117 +disable_so_val_v4l2_dbg_register_26470 val v4l2_dbg_register 0 26470 NULL
144118 +disable_so_jiffies_read_fndecl_26480 jiffies_read fndecl 0 26480 NULL
144119 +disable_so_compat_sys_clock_settime_fndecl_26491 compat_sys_clock_settime fndecl 1 26491 NULL
144120 +disable_so_i2c_addr_tda827x_priv_26495 i2c_addr tda827x_priv 0 26495 NULL
144121 +disable_so_snd_trident_interrupt_fndecl_26498 snd_trident_interrupt fndecl 1 26498 NULL
144122 +disable_so_mce_flush_rx_buffer_fndecl_26515 mce_flush_rx_buffer fndecl 2 26515 NULL
144123 +disable_so_ufshcd_runtime_suspend_fndecl_26519 ufshcd_runtime_suspend fndecl 0 26519 NULL
144124 +disable_so___down_timeout_fndecl_26530 __down_timeout fndecl 2-0 26530 NULL nohasharray
144125 +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
144126 +disable_so_ppll_ref_div_radeon_regs_26531 ppll_ref_div radeon_regs 0 26531 NULL
144127 +disable_so_fs_overflowuid_vardecl_26541 fs_overflowuid vardecl 0 26541 NULL
144128 +disable_so_ceph_str_hash_rjenkins_fndecl_26542 ceph_str_hash_rjenkins fndecl 0-2 26542 NULL
144129 +disable_so_threshold_low_nes_hw_tune_timer_26544 threshold_low nes_hw_tune_timer 0 26544 NULL
144130 +disable_so_addressPXD_fndecl_26546 addressPXD fndecl 0 26546 NULL
144131 +disable_so_get_cpu_idle_time_us_fndecl_26547 get_cpu_idle_time_us fndecl 0-1 26547 NULL
144132 +disable_so_x86_pmu_event_addr_fndecl_26551 x86_pmu_event_addr fndecl 0-1 26551 NULL
144133 +disable_so_da9055_rtc_set_time_fndecl_26553 da9055_rtc_set_time fndecl 0 26553 NULL nohasharray
144134 +disable_so_address_hi_ips_enh_sglist_26553 address_hi ips_enh_sglist 0 26553 &disable_so_da9055_rtc_set_time_fndecl_26553
144135 +disable_so_cpufreq_quick_get_fndecl_26559 cpufreq_quick_get fndecl 0-1 26559 NULL nohasharray
144136 +disable_so_ieee80211_aes_gcm_encrypt_fndecl_26559 ieee80211_aes_gcm_encrypt fndecl 5 26559 &disable_so_cpufreq_quick_get_fndecl_26559
144137 +disable_so_bug17190_timer_qt202x_phy_data_26561 bug17190_timer qt202x_phy_data 0 26561 NULL nohasharray
144138 +disable_so_efx_farch_filter_hash_fndecl_26561 efx_farch_filter_hash fndecl 0-1 26561 &disable_so_bug17190_timer_qt202x_phy_data_26561
144139 +disable_so_timestamp_beacon_format_26566 timestamp beacon_format 0 26566 NULL
144140 +disable_so_postscale__pll_div_26568 postscale _pll_div 0 26568 NULL
144141 +disable_so_next_nat_addr_fndecl_26576 next_nat_addr fndecl 0-2 26576 NULL
144142 +disable_so_shdwreg_addr_hi_addr_ctrl_blk_26592 shdwreg_addr_hi addr_ctrl_blk 0 26592 NULL
144143 +disable_so_xfs_btree_insrec_fndecl_26593 xfs_btree_insrec fndecl 0 26593 NULL
144144 +disable_so_sci_tx_interrupt_fndecl_26595 sci_tx_interrupt fndecl 1 26595 NULL nohasharray
144145 +disable_so_add_delayed_ref_head_fndecl_26595 add_delayed_ref_head fndecl 4-5 26595 &disable_so_sci_tx_interrupt_fndecl_26595
144146 +disable_so_tegra_wdt_set_timeout_fndecl_26597 tegra_wdt_set_timeout fndecl 2 26597 NULL
144147 +disable_so_base_addr_dmi_ipmi_data_26600 base_addr dmi_ipmi_data 0 26600 NULL nohasharray
144148 +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
144149 +disable_so_pll_post_div_radeon_crtc_26608 pll_post_div radeon_crtc 0 26608 NULL
144150 +disable_so_sdio_enable_4bit_bus_fndecl_26617 sdio_enable_4bit_bus fndecl 0 26617 NULL
144151 +disable_so_jiffies_to_usecs_fndecl_26625 jiffies_to_usecs fndecl 0-1 26625 NULL
144152 +disable_so_i_mtime_nsec_ocfs2_dinode_26627 i_mtime_nsec ocfs2_dinode 0 26627 NULL
144153 +disable_so_set_var_mtrr_fndecl_26628 set_var_mtrr fndecl 2-3 26628 NULL
144154 +disable_so_usec_2_cycles_fndecl_26641 usec_2_cycles fndecl 0-1 26641 NULL
144155 +disable_so_inq_data_baddr_pmcraid_instance_26646 inq_data_baddr pmcraid_instance 0 26646 NULL
144156 +disable_so_re_timeout_vhci_hcd_26649 re_timeout vhci_hcd 0 26649 NULL
144157 +disable_so_timer_buf_periods_pcxhr_stream_26650 timer_buf_periods pcxhr_stream 0 26650 NULL
144158 +disable_so_lease_break_time_vardecl_26659 lease_break_time vardecl 0 26659 NULL
144159 +disable_so_first_frag_time_libipw_frag_entry_26673 first_frag_time libipw_frag_entry 0 26673 NULL
144160 +disable_so_send_timer_event_fndecl_26675 send_timer_event fndecl 0 26675 NULL
144161 +disable_so_timestamp_lo_mlx4_ts_cqe_26678 timestamp_lo mlx4_ts_cqe 0 26678 NULL nohasharray
144162 +disable_so_twl_rtc_read_time_fndecl_26678 twl_rtc_read_time fndecl 0 26678 &disable_so_timestamp_lo_mlx4_ts_cqe_26678
144163 +disable_so_prism54_get_freq_fndecl_26679 prism54_get_freq fndecl 0 26679 NULL
144164 +disable_so_signal_quality_wireless_stats_26683 signal_quality wireless_stats 0 26683 NULL
144165 +disable_so_serial8250_request_rsa_resource_fndecl_26695 serial8250_request_rsa_resource fndecl 0 26695 NULL
144166 +disable_so_crypto_ahash_init_fndecl_26697 crypto_ahash_init fndecl 0 26697 NULL
144167 +disable_so_i8xx_clock_fndecl_26699 i8xx_clock fndecl 1 26699 NULL
144168 +disable_so_crypto_alg_extsize_fndecl_26720 crypto_alg_extsize fndecl 0 26720 NULL
144169 +disable_so_get_iowait_time_fndecl_26723 get_iowait_time fndecl 1-0 26723 NULL
144170 +disable_so_wl1271_acx_init_rx_interrupt_fndecl_26727 wl1271_acx_init_rx_interrupt fndecl 0 26727 NULL
144171 +disable_so_check_intr_schedule_fndecl_26728 check_intr_schedule fndecl 2-3 26728 NULL
144172 +disable_so_cobalt_s_dv_timings_fndecl_26730 cobalt_s_dv_timings fndecl 0 26730 NULL
144173 +disable_so_resolution_snd_timer_instance_26747 resolution snd_timer_instance 0 26747 NULL
144174 +disable_so_gf100_vm_addr_fndecl_26753 gf100_vm_addr fndecl 0-2-3-4 26753 NULL
144175 +disable_so_nilfs_btree_convert_and_insert_fndecl_26755 nilfs_btree_convert_and_insert fndecl 0-2-6 26755 NULL
144176 +disable_so_xlog_find_verify_cycle_fndecl_26760 xlog_find_verify_cycle fndecl 0-2-3 26760 NULL
144177 +disable_so_base_address_kvm_lapic_26767 base_address kvm_lapic 0 26767 NULL
144178 +disable_so_unmap_page_dma_map_ops_26774 unmap_page dma_map_ops 2-3 26774 NULL nohasharray
144179 +disable_so_modcode_stv0900_signal_info_26774 modcode stv0900_signal_info 0 26774 &disable_so_unmap_page_dma_map_ops_26774
144180 +disable_so_mthca_cmd_wait_fndecl_26776 mthca_cmd_wait fndecl 0-2 26776 NULL nohasharray
144181 +disable_so_tun2_maddress_stv0900_init_params_26776 tun2_maddress stv0900_init_params 0 26776 &disable_so_mthca_cmd_wait_fndecl_26776
144182 +disable_so_simple_sleep_fndecl_26802 simple_sleep fndecl 0 26802 NULL
144183 +disable_so_tv_sec_timestruc_t_26805 tv_sec timestruc_t 0 26805 NULL
144184 +disable_so_get_vblank_timestamp_drm_driver_26807 get_vblank_timestamp drm_driver 2 26807 NULL
144185 +disable_so_dsbr100_setfreq_fndecl_26808 dsbr100_setfreq fndecl 0-2 26808 NULL
144186 +disable_so_base_addr_unaligned_vnic_dev_ring_26813 base_addr_unaligned vnic_dev_ring 0 26813 NULL
144187 +disable_so_addr_ib_mw_bind_info_26826 addr ib_mw_bind_info 0 26826 NULL
144188 +disable_so_cpuidle_add_interface_fndecl_26838 cpuidle_add_interface fndecl 0 26838 NULL nohasharray
144189 +disable_so_addr4_resolve_fndecl_26838 addr4_resolve fndecl 0 26838 &disable_so_cpuidle_add_interface_fndecl_26838
144190 +disable_so_rdmsrl_safe_on_cpu_fndecl_26843 rdmsrl_safe_on_cpu fndecl 0-1 26843 NULL
144191 +disable_so_random_read_fndecl_26852 random_read fndecl 0-3 26852 NULL
144192 +disable_so_reachable_time_ra_msg_26853 reachable_time ra_msg 0 26853 NULL
144193 +disable_so_mutex_lock_interruptible_nested_fndecl_26858 mutex_lock_interruptible_nested fndecl 0 26858 NULL
144194 +disable_so_erase_time_max_flchip_26863 erase_time_max flchip 0 26863 NULL
144195 +disable_so_cpufreq_frequency_table_get_index_fndecl_26865 cpufreq_frequency_table_get_index fndecl 2 26865 NULL
144196 +disable_so_efficient_freq_intel_gen6_power_mgmt_26867 efficient_freq intel_gen6_power_mgmt 0 26867 NULL
144197 +disable_so_sysctl_sched_rt_runtime_vardecl_26872 sysctl_sched_rt_runtime vardecl 0 26872 NULL
144198 +disable_so_time_ncp_cache_head_26879 time ncp_cache_head 0 26879 NULL
144199 +disable_so_qdisc_class_hash_free_fndecl_26882 qdisc_class_hash_free fndecl 2 26882 NULL
144200 +disable_so_cpu_cpuidle_device_26895 cpu cpuidle_device 0 26895 NULL
144201 +disable_so_mod_phy_reg_fndecl_26899 mod_phy_reg fndecl 2-3-4 26899 NULL
144202 +disable_so_vb2_dma_contig_plane_dma_addr_fndecl_26900 vb2_dma_contig_plane_dma_addr fndecl 0 26900 NULL
144203 +disable_so_btree_split_beneath_fndecl_26901 btree_split_beneath fndecl 0 26901 NULL
144204 +disable_so_timestamp_desc_tbl_t_26905 timestamp desc_tbl_t 0 26905 NULL
144205 +disable_so_addr_bit_set_fndecl_26910 addr_bit_set fndecl 0-2 26910 NULL nohasharray
144206 +disable_so_snd_soc_write_fndecl_26910 snd_soc_write fndecl 0-2-3 26910 &disable_so_addr_bit_set_fndecl_26910 nohasharray
144207 +disable_so_timing_legacy_data_26910 timing legacy_data 0 26910 &disable_so_snd_soc_write_fndecl_26910
144208 +disable_so_nsleep_k_clock_26913 nsleep k_clock 1 26913 NULL
144209 +disable_so_sys_stime_fndecl_26915 sys_stime fndecl 0 26915 NULL
144210 +disable_so_sjw_max_can_bittiming_const_26917 sjw_max can_bittiming_const 0 26917 NULL nohasharray
144211 +disable_so_cbc_aes_encrypt_fndecl_26917 cbc_aes_encrypt fndecl 0-4 26917 &disable_so_sjw_max_can_bittiming_const_26917
144212 +disable_so_get_debugctlmsr_fndecl_26918 get_debugctlmsr fndecl 0 26918 NULL
144213 +disable_so_xfs_btree_delrec_fndecl_26919 xfs_btree_delrec fndecl 0 26919 NULL
144214 +disable_so_hr222_sub_set_clock_fndecl_26925 hr222_sub_set_clock fndecl 2-0 26925 NULL
144215 +disable_so_dd_desc_paddr_ath_descdma_26927 dd_desc_paddr ath_descdma 0 26927 NULL
144216 +disable_so_shift_clock_event_device_26934 shift clock_event_device 0 26934 NULL
144217 +disable_so_rx_bseq_addr_bnx2_rx_ring_info_26936 rx_bseq_addr bnx2_rx_ring_info 0 26936 NULL
144218 +disable_so_brcms_c_calc_ba_time_fndecl_26948 brcms_c_calc_ba_time fndecl 0-2 26948 NULL
144219 +disable_so_rcv_buffer_time_stamp_lpfc_vport_26952 rcv_buffer_time_stamp lpfc_vport 0 26952 NULL
144220 +disable_so_min_post_div_radeon_pll_26958 min_post_div radeon_pll 0 26958 NULL
144221 +disable_so_mcryptd_hash_finup_enqueue_fndecl_26959 mcryptd_hash_finup_enqueue fndecl 0 26959 NULL
144222 +disable_so_ip_TransportAddress_ipAddress_26969 ip TransportAddress_ipAddress 0 26969 NULL
144223 +disable_so_addr_fritzcard_26973 addr fritzcard 0 26973 NULL nohasharray
144224 +disable_so_ata_read_native_max_address_fndecl_26973 ata_read_native_max_address fndecl 0 26973 &disable_so_addr_fritzcard_26973
144225 +disable_so_ktime_get_real_seconds_fndecl_26974 ktime_get_real_seconds fndecl 0 26974 NULL nohasharray
144226 +disable_so_i_crtime_extra_ext4_inode_26974 i_crtime_extra ext4_inode 0 26974 &disable_so_ktime_get_real_seconds_fndecl_26974
144227 +disable_so_kern_addr_valid_fndecl_26978 kern_addr_valid fndecl 1 26978 NULL
144228 +disable_so_rtimer_val_vxge_hw_tim_intr_config_26991 rtimer_val vxge_hw_tim_intr_config 0 26991 NULL
144229 +disable_so_timestamp_agere_ext_scan_info_26993 timestamp agere_ext_scan_info 0 26993 NULL
144230 +disable_so_ps_ring_physaddr_rx_ring_26997 ps_ring_physaddr rx_ring 0 26997 NULL
144231 +disable_so_set_bit_in_list_bitmap_fndecl_26998 set_bit_in_list_bitmap fndecl 2 26998 NULL
144232 +disable_so_gid_index_mlx4_eth_av_27005 gid_index mlx4_eth_av 0 27005 NULL
144233 +disable_so_sender_euid_binder_transaction_data_27019 sender_euid binder_transaction_data 0 27019 NULL
144234 +disable_so_sctp_setsockopt_peer_primary_addr_fndecl_27027 sctp_setsockopt_peer_primary_addr fndecl 3-0 27027 NULL
144235 +disable_so_sysctl_x25_ack_holdback_timeout_vardecl_27031 sysctl_x25_ack_holdback_timeout vardecl 0 27031 NULL
144236 +disable_so_blkcipher_next_copy_fndecl_27033 blkcipher_next_copy fndecl 0 27033 NULL
144237 +disable_so_cg_spll_func_cntl_4_si_clock_registers_27036 cg_spll_func_cntl_4 si_clock_registers 0 27036 NULL
144238 +disable_so_mthca_buddy_alloc_fndecl_27037 mthca_buddy_alloc fndecl 2-0 27037 NULL
144239 +disable_so_seq_tcp_skb_cb_27054 seq tcp_skb_cb 0 27054 NULL
144240 +disable_so_s_bitmap_maxbytes_ext4_sb_info_27055 s_bitmap_maxbytes ext4_sb_info 0 27055 NULL
144241 +disable_so_addr_off_bfa_fru_s_27061 addr_off bfa_fru_s 0 27061 NULL
144242 +disable_so_dataserver_timeo_vardecl_filelayoutdev_c_27062 dataserver_timeo vardecl_filelayoutdev.c 0 27062 NULL
144243 +disable_so_demod_address_stv0900_config_27065 demod_address stv0900_config 0 27065 NULL
144244 +disable_so_kvm_apic_match_logical_addr_fndecl_27077 kvm_apic_match_logical_addr fndecl 2 27077 NULL
144245 +disable_so_expires_cpu_itimer_27081 expires cpu_itimer 0 27081 NULL nohasharray
144246 +disable_so_request_any_context_irq_fndecl_27081 request_any_context_irq fndecl 0-1 27081 &disable_so_expires_cpu_itimer_27081
144247 +disable_so_timeout_vardecl_kempld_wdt_c_27085 timeout vardecl_kempld_wdt.c 0 27085 NULL
144248 +disable_so_buffer_addr_rx_free_desc_27090 buffer_addr rx_free_desc 0 27090 NULL
144249 +disable_so_vx_set_clock_fndecl_27093 vx_set_clock fndecl 2 27093 NULL
144250 +disable_so_br_set_forward_delay_fndecl_27097 br_set_forward_delay fndecl 0 27097 NULL
144251 +disable_so_hash_net4_expire_fndecl_27108 hash_net4_expire fndecl 4 27108 NULL
144252 +disable_so_stv0900_get_freq_auto_fndecl_27111 stv0900_get_freq_auto fndecl 0 27111 NULL
144253 +disable_so_wait_for_common_fndecl_27112 wait_for_common fndecl 3 27112 NULL
144254 +disable_so_nfs4_schedule_migration_recovery_fndecl_27114 nfs4_schedule_migration_recovery fndecl 0 27114 NULL
144255 +disable_so_d_rt_spc_timer_qc_dqblk_27117 d_rt_spc_timer qc_dqblk 0 27117 NULL
144256 +disable_so_btree_insert64_fndecl_27118 btree_insert64 fndecl 2-4 27118 NULL
144257 +disable_so_addrconf_mod_dad_work_fndecl_27128 addrconf_mod_dad_work fndecl 2 27128 NULL
144258 +disable_so_coalescing_timeo_bna_rx_config_27130 coalescing_timeo bna_rx_config 0 27130 NULL nohasharray
144259 +disable_so_addr_page_to_node_27130 addr page_to_node 0 27130 &disable_so_coalescing_timeo_bna_rx_config_27130
144260 +disable_so_st_atime_nsec_p9_stat_dotl_27131 st_atime_nsec p9_stat_dotl 0 27131 NULL
144261 +disable_so_myri10ge_intr_coal_delay_vardecl_myri10ge_c_27141 myri10ge_intr_coal_delay vardecl_myri10ge.c 0 27141 NULL
144262 +disable_so_hash_shift_deflate_state_27146 hash_shift deflate_state 0 27146 NULL
144263 +disable_so_palmas_rtc_read_time_fndecl_27149 palmas_rtc_read_time fndecl 0 27149 NULL
144264 +disable_so___atomic_add_ifless_fndecl_27155 __atomic_add_ifless fndecl 3 27155 NULL
144265 +disable_so_iscsi_conn_get_addr_param_fndecl_27170 iscsi_conn_get_addr_param fndecl 0 27170 NULL
144266 +disable_so___clocksource_update_freq_hz_fndecl_27171 __clocksource_update_freq_hz fndecl 2 27171 NULL
144267 +disable_so_id_sst_module_runtime_27177 id sst_module_runtime 0 27177 NULL
144268 +disable_so_crypto_xcbc_digest_setkey_fndecl_27185 crypto_xcbc_digest_setkey fndecl 0-3 27185 NULL
144269 +disable_so_enic_set_mac_addr_fndecl_27188 enic_set_mac_addr fndecl 0 27188 NULL
144270 +disable_so_expires_timer_list_27202 expires timer_list 0 27202 NULL
144271 +disable_so_compute_subtree_last_fndecl_27204 compute_subtree_last fndecl 0 27204 NULL
144272 +disable_so_qla4_82xx_decode_crb_addr_fndecl_27209 qla4_82xx_decode_crb_addr fndecl 0-1 27209 NULL
144273 +disable_so_debugtimer_vardecl_floppy_c_27217 debugtimer vardecl_floppy.c 0 27217 NULL
144274 +disable_so_time_offset_perf_event_mmap_page_27223 time_offset perf_event_mmap_page 0 27223 NULL
144275 +disable_so___ufshcd_setup_clocks_fndecl_27227 __ufshcd_setup_clocks fndecl 0 27227 NULL
144276 +disable_so_ccallback_snd_timer_instance_27233 ccallback snd_timer_instance 4 27233 NULL
144277 +disable_so_cpufreq_p4_get_fndecl_27237 cpufreq_p4_get fndecl 1 27237 NULL
144278 +disable_so_bd_phy_addr_wcn36xx_dxe_ctl_27253 bd_phy_addr wcn36xx_dxe_ctl 0 27253 NULL
144279 +disable_so___xfrm_dst_hash_fndecl_27263 __xfrm_dst_hash fndecl 0-3-4-5 27263 NULL
144280 +disable_so_mcp795_read_time_fndecl_27267 mcp795_read_time fndecl 0 27267 NULL
144281 +disable_so_base_mtrr_sentry_27271 base mtrr_sentry 0 27271 NULL
144282 +disable_so_proc_do_large_bitmap_fndecl_27272 proc_do_large_bitmap fndecl 0 27272 NULL
144283 +disable_so_stv0367cab_get_adc_freq_fndecl_27274 stv0367cab_get_adc_freq fndecl 0-2 27274 NULL
144284 +disable_so_gpadc_page_addr_pm80x_subchip_27284 gpadc_page_addr pm80x_subchip 0 27284 NULL
144285 +disable_so_udf_count_free_bitmap_fndecl_27294 udf_count_free_bitmap fndecl 0 27294 NULL
144286 +disable_so_timestamp_ieee80211_channel_switch_27297 timestamp ieee80211_channel_switch 0 27297 NULL
144287 +disable_so_fd_flush_timestamp_i40e_pf_27298 fd_flush_timestamp i40e_pf 0 27298 NULL nohasharray
144288 +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
144289 +disable_so_past_time_fndecl_27299 past_time fndecl 1 27299 NULL
144290 +disable_so_status_hci_rp_read_bd_addr_27307 status hci_rp_read_bd_addr 0 27307 NULL
144291 +disable_so_demod_address_lgs8gxx_config_27311 demod_address lgs8gxx_config 0 27311 NULL
144292 +disable_so_clock_offset_mlx4_fw_27318 clock_offset mlx4_fw 0 27318 NULL
144293 +disable_so_native_sched_clock_fndecl_27322 native_sched_clock fndecl 0 27322 NULL
144294 +disable_so_preferred_time_prefix_cacheinfo_27329 preferred_time prefix_cacheinfo 0 27329 NULL nohasharray
144295 +disable_so_srq_get_mtt_addr_fndecl_27329 srq_get_mtt_addr fndecl 0 27329 &disable_so_preferred_time_prefix_cacheinfo_27329
144296 +disable_so_di_pt_regs_27336 di pt_regs 0 27336 NULL
144297 +disable_so_buf1_addr_xgmac_dma_desc_27344 buf1_addr xgmac_dma_desc 0 27344 NULL
144298 +disable_so_timer_mask_ath_gen_timer_table_27351 timer_mask ath_gen_timer_table 0 27351 NULL
144299 +disable_so_max_frags_iwl_time_event_cmd_27357 max_frags iwl_time_event_cmd 0 27357 NULL nohasharray
144300 +disable_so_wd_last_clocksource_27357 wd_last clocksource 0 27357 &disable_so_max_frags_iwl_time_event_cmd_27357
144301 +disable_so_sermouse_interrupt_fndecl_27361 sermouse_interrupt fndecl 2 27361 NULL
144302 +disable_so_tm_mday_rtc_time_27369 tm_mday rtc_time 0 27369 NULL
144303 +disable_so_opad_count_ccp_sha_ctx_27374 opad_count ccp_sha_ctx 0 27374 NULL
144304 +disable_so_keyed_hash_fndecl_27379 keyed_hash fndecl 0-2 27379 NULL
144305 +disable_so_addr_d11init_27383 addr d11init 0 27383 NULL
144306 +disable_so_test_bit_le_fndecl_27392 test_bit_le fndecl 1 27392 NULL
144307 +disable_so_i2c_bit_add_bus_fndecl_27395 i2c_bit_add_bus fndecl 0 27395 NULL
144308 +disable_so_xhci_calculate_u2_timeout_fndecl_27406 xhci_calculate_u2_timeout fndecl 0 27406 NULL
144309 +disable_so_sym_getclock_fndecl_27414 sym_getclock fndecl 2 27414 NULL
144310 +disable_so_pat_x_mtrr_type_fndecl_27415 pat_x_mtrr_type fndecl 1-2 27415 NULL
144311 +disable_so_val_addr_core1_nphy_rf_control_override_rev7_27422 val_addr_core1 nphy_rf_control_override_rev7 0 27422 NULL nohasharray
144312 +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
144313 +disable_so_ratio_o_rj54n1_clock_div_27431 ratio_o rj54n1_clock_div 0 27431 NULL nohasharray
144314 +disable_so_pr_uid_elf_prpsinfo_27431 pr_uid elf_prpsinfo 0 27431 &disable_so_ratio_o_rj54n1_clock_div_27431
144315 +disable_so_nla_get_be64_fndecl_27433 nla_get_be64 fndecl 0 27433 NULL
144316 +disable_so_encryptor_fndecl_27450 encryptor fndecl 0 27450 NULL
144317 +disable_so_hsync_offset_lo_oaktrail_timing_info_27455 hsync_offset_lo oaktrail_timing_info 0 27455 NULL
144318 +disable_so_store_scaling_max_freq_fndecl_27459 store_scaling_max_freq fndecl 0-3 27459 NULL
144319 +disable_so_addrLow_lpfc_pde7_27462 addrLow lpfc_pde7 0 27462 NULL
144320 +disable_so_ql_get_mac_addr_reg_fndecl_27466 ql_get_mac_addr_reg fndecl 0 27466 NULL
144321 +disable_so_r600_engine_clock_entry_set_feedback_divider_fndecl_27467 r600_engine_clock_entry_set_feedback_divider fndecl 3 27467 NULL
144322 +disable_so_queue_timestamp_cw1200_queue_item_27470 queue_timestamp cw1200_queue_item 0 27470 NULL nohasharray
144323 +disable_so_timing_event_fndecl_27470 timing_event fndecl 0 27470 &disable_so_queue_timestamp_cw1200_queue_item_27470
144324 +disable_so_seg0_blkaddr_f2fs_sm_info_27483 seg0_blkaddr f2fs_sm_info 0 27483 NULL nohasharray
144325 +disable_so_shash_async_init_fndecl_27483 shash_async_init fndecl 0 27483 &disable_so_seg0_blkaddr_f2fs_sm_info_27483
144326 +disable_so_esas2r_buffered_ioctl_addr_vardecl_27487 esas2r_buffered_ioctl_addr vardecl 0 27487 NULL
144327 +disable_so_buffer_write_time_max_flchip_27491 buffer_write_time_max flchip 0 27491 NULL
144328 +disable_so_reg_data_clock_eeprom_93cx6_27496 reg_data_clock eeprom_93cx6 0 27496 NULL
144329 +disable_so_ieee80211_if_read_min_discovery_timeout_fndecl_27497 ieee80211_if_read_min_discovery_timeout fndecl 3-0 27497 NULL nohasharray
144330 +disable_so_address_pmcraid_ioadl_desc_27497 address pmcraid_ioadl_desc 0 27497 &disable_so_ieee80211_if_read_min_discovery_timeout_fndecl_27497
144331 +disable_so_host_perf_guest_switch_msr_27498 host perf_guest_switch_msr 0 27498 NULL
144332 +disable_so_dummy_buffer_addr_hi_iscsi_kwqe_init1_27499 dummy_buffer_addr_hi iscsi_kwqe_init1 0 27499 NULL
144333 +disable_so__rtl88e_phy_calculate_bit_shift_fndecl_27500 _rtl88e_phy_calculate_bit_shift fndecl 0-1 27500 NULL
144334 +disable_so_mceusb_dev_printdata_fndecl_27502 mceusb_dev_printdata fndecl 4 27502 NULL
144335 +disable_so_sk_sndtimeo_sock_27506 sk_sndtimeo sock 0 27506 NULL
144336 +disable_so_oprofile_timer_init_fndecl_27514 oprofile_timer_init fndecl 0 27514 NULL
144337 +disable_so_st_atime___old_kernel_stat_27516 st_atime __old_kernel_stat 0 27516 NULL
144338 +disable_so_hpi_sample_clock_set_local_rate_lock_fndecl_27517 hpi_sample_clock_set_local_rate_lock fndecl 1-0 27517 NULL
144339 +disable_so_addr_perf_sample_data_27520 addr perf_sample_data 0 27520 NULL
144340 +disable_so_curr_dbg_uidn_show_fndecl_27524 curr_dbg_uidn_show fndecl 3 27524 NULL
144341 +disable_so_crypto_register_template_fndecl_27525 crypto_register_template fndecl 0 27525 NULL
144342 +disable_so_process_tgid_sid_proc_event_27544 process_tgid sid_proc_event 0 27544 NULL
144343 +disable_so_fandiv2_nct6775_data_27558 fandiv2 nct6775_data 0 27558 NULL
144344 +disable_so_delay_time_bridge_mcast_other_query_27560 delay_time bridge_mcast_other_query 0 27560 NULL
144345 +disable_so_addr_hi_acard_sg_27563 addr_hi acard_sg 0 27563 NULL
144346 +disable_so_address_tlan_buffer_27580 address tlan_buffer 0 27580 NULL
144347 +disable_so_rdma_addr_find_smac_by_sgid_fndecl_27591 rdma_addr_find_smac_by_sgid fndecl 0 27591 NULL
144348 +disable_so_addrconf_add_linklocal_fndecl_27592 addrconf_add_linklocal fndecl 3 27592 NULL
144349 +disable_so_fb_delay_gt215_clk_info_27603 fb_delay gt215_clk_info 0 27603 NULL
144350 +disable_so_ss_nongc_ctime_nilfs_sustat_27619 ss_nongc_ctime nilfs_sustat 0 27619 NULL
144351 +disable_so_shash_ahash_mcryptd_final_fndecl_27624 shash_ahash_mcryptd_final fndecl 0 27624 NULL
144352 +disable_so_iwl_set_hw_address_family_8000_fndecl_27628 iwl_set_hw_address_family_8000 fndecl 6-7 27628 NULL
144353 +disable_so_dm_delay_init_fndecl_27635 dm_delay_init fndecl 0 27635 NULL
144354 +disable_so_seq_tcphdr_27638 seq tcphdr 0 27638 NULL
144355 +disable_so_cbq_undelay_prio_fndecl_27641 cbq_undelay_prio fndecl 0-3 27641 NULL
144356 +disable_so_sst_module_runtime_save_fndecl_27642 sst_module_runtime_save fndecl 0 27642 NULL
144357 +disable_so_crypto_pcbc_module_init_fndecl_27648 crypto_pcbc_module_init fndecl 0 27648 NULL
144358 +disable_so_freq_prev_cpu_data_t_27649 freq_prev cpu_data_t 0 27649 NULL
144359 +disable_so_status_mce_27652 status mce 0 27652 NULL
144360 +disable_so_buff_addr_ixgb_rx_desc_27660 buff_addr ixgb_rx_desc 0 27660 NULL
144361 +disable_so_phy_addr_mii_phy_27664 phy_addr mii_phy 0 27664 NULL
144362 +disable_so_demod_address_lgdt330x_config_27668 demod_address lgdt330x_config 0 27668 NULL
144363 +disable_so__next_div_fndecl_27679 _next_div fndecl 0-2 27679 NULL
144364 +disable_so_rtc_timer_enqueue_fndecl_27693 rtc_timer_enqueue fndecl 0 27693 NULL nohasharray
144365 +disable_so_addr_phy_device_27693 addr phy_device 0 27693 &disable_so_rtc_timer_enqueue_fndecl_27693
144366 +disable_so_timer_multiplier_tg3_27703 timer_multiplier tg3 0 27703 NULL
144367 +disable_so_address_acpi_table_madt_27705 address acpi_table_madt 0 27705 NULL
144368 +disable_so_saddr_flowi4_27709 saddr flowi4 0 27709 NULL
144369 +disable_so_acpi_tb_select_address_fndecl_27710 acpi_tb_select_address fndecl 0-2-3 27710 NULL
144370 +disable_so_wl18xx_acx_ap_sleep_fndecl_27719 wl18xx_acx_ap_sleep fndecl 0 27719 NULL
144371 +disable_so_sleep_start_sched_statistics_27721 sleep_start sched_statistics 0 27721 NULL nohasharray
144372 +disable_so_inj_addr_set_fndecl_27721 inj_addr_set fndecl 2 27721 &disable_so_sleep_start_sched_statistics_27721
144373 +disable_so_addr_fw_page_27728 addr fw_page 0 27728 NULL
144374 +disable_so_time_stamp_e1000_tx_buffer_27729 time_stamp e1000_tx_buffer 0 27729 NULL
144375 +disable_so_ata_internal_cmd_timed_out_fndecl_27734 ata_internal_cmd_timed_out fndecl 2 27734 NULL
144376 +disable_so_sleep_ide_drive_s_27745 sleep ide_drive_s 0 27745 NULL
144377 +disable_so_platform_clock_control_fndecl_27752 platform_clock_control fndecl 0 27752 NULL
144378 +disable_so_tick_timex_27769 tick timex 0 27769 NULL
144379 +disable_so__is_best_div_fndecl_27772 _is_best_div fndecl 1-2-3 27772 NULL
144380 +disable_so_update_cpumask_fndecl_27776 update_cpumask fndecl 0 27776 NULL
144381 +disable_so_mxser_get_msr_fndecl_27778 mxser_get_msr fndecl 3 27778 NULL
144382 +disable_so_btree_insert32_fndecl_27786 btree_insert32 fndecl 2-4 27786 NULL
144383 +disable_so_ccp_do_sha_update_fndecl_27787 ccp_do_sha_update fndecl 0-2 27787 NULL
144384 +disable_so_complete_crypto_gcm_ghash_ctx_27789 complete crypto_gcm_ghash_ctx 0 27789 NULL
144385 +disable_so_cryptoloop_transfer_fndecl_27794 cryptoloop_transfer fndecl 0-4-6-7 27794 NULL
144386 +disable_so_max_reconnect_timeout_sbp_tport_27795 max_reconnect_timeout sbp_tport 0 27795 NULL
144387 +disable_so_drxj_dap_write_reg16_fndecl_27796 drxj_dap_write_reg16 fndecl 0-3 27796 NULL
144388 +disable_so_i_crtime_ext4_inode_27803 i_crtime ext4_inode 0 27803 NULL
144389 +disable_so_bridge_ctl_pci_bus_27806 bridge_ctl pci_bus 0 27806 NULL
144390 +disable_so_sas_unregister_devs_sas_addr_fndecl_27808 sas_unregister_devs_sas_addr fndecl 2 27808 NULL
144391 +disable_so_move_to_next_stateful_cpuid_entry_fndecl_27817 move_to_next_stateful_cpuid_entry fndecl 0-2 27817 NULL
144392 +disable_so_delay_pktgen_dev_27827 delay pktgen_dev 0 27827 NULL
144393 +disable_so_ipath_physaddr_ipath_devdata_27830 ipath_physaddr ipath_devdata 0 27830 NULL
144394 +disable_so_rh_timer_musb_27835 rh_timer musb 0 27835 NULL
144395 +disable_so_spinfo_cwnd_sctp_paddrinfo_27841 spinfo_cwnd sctp_paddrinfo 0 27841 NULL
144396 +disable_so_prism54_set_freq_fndecl_27858 prism54_set_freq fndecl 0 27858 NULL
144397 +disable_so_host_addr_mei_msg_hdr_27859 host_addr mei_msg_hdr 0 27859 NULL
144398 +disable_so_xr17v35x_get_divisor_fndecl_27860 xr17v35x_get_divisor fndecl 0-2 27860 NULL
144399 +disable_so_run_delayed_data_ref_fndecl_27870 run_delayed_data_ref fndecl 0 27870 NULL
144400 +disable_so_args_addr_pmu_nvbios_pmuR_27871 args_addr_pmu nvbios_pmuR 0 27871 NULL
144401 +disable_so_nr_of_multicastmacaddr_lbtf_private_27872 nr_of_multicastmacaddr lbtf_private 0 27872 NULL
144402 +disable_so_cfg80211_mgd_wext_siwfreq_fndecl_27873 cfg80211_mgd_wext_siwfreq fndecl 0 27873 NULL
144403 +disable_so_get_ftdi_divisor_fndecl_27883 get_ftdi_divisor fndecl 0 27883 NULL nohasharray
144404 +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
144405 +disable_so_acpi_gbl_sleep_type_a_vardecl_27893 acpi_gbl_sleep_type_a vardecl 0 27893 NULL
144406 +disable_so_addr_ahc_dma_seg_27896 addr ahc_dma_seg 0 27896 NULL
144407 +disable_so_est_timer_fndecl_27898 est_timer fndecl 1 27898 NULL
144408 +disable_so_phonet_address_add_fndecl_27900 phonet_address_add fndecl 0-2 27900 NULL
144409 +disable_so_uhci_sprint_schedule_fndecl_27905 uhci_sprint_schedule fndecl 0 27905 NULL
144410 +disable_so_cpufreq_generic_init_fndecl_27911 cpufreq_generic_init fndecl 3 27911 NULL
144411 +disable_so_brcms_c_calc_frame_time_fndecl_27915 brcms_c_calc_frame_time fndecl 0-4-2 27915 NULL
144412 +disable_so_max_pixel_clock_matrox_fb_info_27917 max_pixel_clock matrox_fb_info 0 27917 NULL
144413 +disable_so_cfg80211_get_end_freq_fndecl_27923 cfg80211_get_end_freq fndecl 0-1-2 27923 NULL
144414 +disable_so_tv_usec_timeval_27924 tv_usec timeval 0 27924 NULL nohasharray
144415 +disable_so_bootloader_addr_mxt_data_27924 bootloader_addr mxt_data 0 27924 &disable_so_tv_usec_timeval_27924
144416 +disable_so_scope_ipv6_saddr_dst_27930 scope ipv6_saddr_dst 0 27930 NULL
144417 +disable_so_skcipher_recvmsg_sync_fndecl_27933 skcipher_recvmsg_sync fndecl 0 27933 NULL
144418 +disable_so_nf_ct_free_hashtable_fndecl_27936 nf_ct_free_hashtable fndecl 2 27936 NULL
144419 +disable_so_addr_netlbl_af4list_27939 addr netlbl_af4list 0 27939 NULL
144420 +disable_so_idgen_delay_netns_sysctl_ipv6_27941 idgen_delay netns_sysctl_ipv6 0 27941 NULL
144421 +disable_so_time_low_afs_uuid_27956 time_low afs_uuid 0 27956 NULL
144422 +disable_so_set_tv_freq_fndecl_27970 set_tv_freq fndecl 2 27970 NULL
144423 +disable_so_average_duration_time_stats_27971 average_duration time_stats 0 27971 NULL
144424 +disable_so_multicast_num_addrs__mace_private_27974 multicast_num_addrs _mace_private 0 27974 NULL
144425 +disable_so_ghash_pclmulqdqni_mod_init_fndecl_27975 ghash_pclmulqdqni_mod_init fndecl 0 27975 NULL
144426 +disable_so_gs_gru_base_paddr_gru_state_27988 gs_gru_base_paddr gru_state 0 27988 NULL nohasharray
144427 +disable_so_paging32_walk_addr_fndecl_27988 paging32_walk_addr fndecl 3-4 27988 &disable_so_gs_gru_base_paddr_gru_state_27988
144428 +disable_so_musb_read_rxfunaddr_fndecl_27990 musb_read_rxfunaddr fndecl 2-0 27990 NULL
144429 +disable_so_kstrtoint_fndecl_27993 kstrtoint fndecl 0 27993 NULL
144430 +disable_so_rv770_encode_yclk_post_div_fndecl_27996 rv770_encode_yclk_post_div fndecl 0-1 27996 NULL
144431 +disable_so_di_uid_qnx6_inode_entry_28014 di_uid qnx6_inode_entry 0 28014 NULL
144432 +disable_so_sctp_verify_addr_fndecl_28018 sctp_verify_addr fndecl 0-3 28018 NULL
144433 +disable_so_timeout_ieee80211_mgd_assoc_data_28022 timeout ieee80211_mgd_assoc_data 0 28022 NULL
144434 +disable_so_nadc_aic31xx_rate_divs_28025 nadc aic31xx_rate_divs 0 28025 NULL
144435 +disable_so_address_end_unity_map_entry_28028 address_end unity_map_entry 0 28028 NULL
144436 +disable_so_ring_pt_address_sst_hsw_ipc_stream_ring_28034 ring_pt_address sst_hsw_ipc_stream_ring 0 28034 NULL
144437 +disable_so_rx_hashtbl_used_head_alb_bond_info_28035 rx_hashtbl_used_head alb_bond_info 0 28035 NULL
144438 +disable_so_reset_time_vardecl_cs_c_28036 reset_time vardecl_cs.c 0 28036 NULL
144439 +disable_so_slicer_line_delay_cx18_av_state_28042 slicer_line_delay cx18_av_state 0 28042 NULL
144440 +disable_so_addr1_unlock_addr_28045 addr1 unlock_addr 0 28045 NULL
144441 +disable_so_timestamp_ath6kl_fwlog_slot_28050 timestamp ath6kl_fwlog_slot 0 28050 NULL
144442 +disable_so_max8925_rtc_set_time_fndecl_28052 max8925_rtc_set_time fndecl 0 28052 NULL
144443 +disable_so_hblank_lo_lvds_dvo_timing_28054 hblank_lo lvds_dvo_timing 0 28054 NULL
144444 +disable_so_total_bytes_available_snd_compr_runtime_28061 total_bytes_available snd_compr_runtime 0 28061 NULL
144445 +disable_so_start_jiffies_dm_cache_migration_28062 start_jiffies dm_cache_migration 0 28062 NULL
144446 +disable_so_fm10k_read_systime_pf_fndecl_28063 fm10k_read_systime_pf fndecl 0 28063 NULL
144447 +disable_so_time_stopped_btrfs_dev_replace_28065 time_stopped btrfs_dev_replace 0 28065 NULL
144448 +disable_so_total_time_devfreq_dev_status_28070 total_time devfreq_dev_status 0 28070 NULL
144449 +disable_so_congested_cycles_vardecl_tlb_uv_c_28074 congested_cycles vardecl_tlb_uv.c 0 28074 NULL
144450 +disable_so_db_addr_mlx4_ib_create_cq_28077 db_addr mlx4_ib_create_cq 0 28077 NULL
144451 +disable_so_ipaddr_atmmpc_ioc_28080 ipaddr atmmpc_ioc 0 28080 NULL
144452 +disable_so_drm_modeset_backoff_interruptible_fndecl_28087 drm_modeset_backoff_interruptible fndecl 0 28087 NULL
144453 +disable_so_pcr_address_fndecl_28088 pcr_address fndecl 0 28088 NULL
144454 +disable_so_fill_stats_for_tgid_fndecl_28092 fill_stats_for_tgid fndecl 0-1 28092 NULL
144455 +disable_so_ep0_set_address_fndecl_28094 ep0_set_address fndecl 0 28094 NULL
144456 +disable_so_vdi_uid_vxfs_inode_info_28097 vdi_uid vxfs_inode_info 0 28097 NULL
144457 +disable_so_cryptd_hash_final_fndecl_28098 cryptd_hash_final fndecl 2 28098 NULL
144458 +disable_so_sysctl_aevent_etime_netns_xfrm_28099 sysctl_aevent_etime netns_xfrm 0 28099 NULL
144459 +disable_so_nilfs_segctor_last_seg_write_time_secs_show_fndecl_28103 nilfs_segctor_last_seg_write_time_secs_show fndecl 0 28103 NULL
144460 +disable_so_toshiba_usb_sleep_charge_set_fndecl_28108 toshiba_usb_sleep_charge_set fndecl 0 28108 NULL
144461 +disable_so_r63_val_fc2580_freq_regs_28120 r63_val fc2580_freq_regs 0 28120 NULL
144462 +disable_so_myri10ge_read_mac_addr_fndecl_28129 myri10ge_read_mac_addr fndecl 0 28129 NULL
144463 +disable_so_stv090x_get_feclock_fndecl_28130 stv090x_get_feclock fndecl 0 28130 NULL
144464 +disable_so_m_blkbit_log_xfs_mount_28131 m_blkbit_log xfs_mount 0 28131 NULL
144465 +disable_so_duration_iwl_mvm_time_event_data_28140 duration iwl_mvm_time_event_data 0 28140 NULL
144466 +disable_so_compute_tsc_offset_kvm_x86_ops_28149 compute_tsc_offset kvm_x86_ops 0-2 28149 NULL
144467 +disable_so_sys_clock_freq_drxd_state_28176 sys_clock_freq drxd_state 0 28176 NULL
144468 +disable_so_addrLow_sge_ieee1212_28181 addrLow sge_ieee1212 0 28181 NULL
144469 +disable_so_ctnetlink_timestamp_size_fndecl_28183 ctnetlink_timestamp_size fndecl 0 28183 NULL
144470 +disable_so_ahash_def_finup_fndecl_28189 ahash_def_finup fndecl 0 28189 NULL
144471 +disable_so_hw_ptr_jiffies_snd_pcm_runtime_28200 hw_ptr_jiffies snd_pcm_runtime 0 28200 NULL
144472 +disable_so_tmr_device_snd_timer_28205 tmr_device snd_timer 0 28205 NULL
144473 +disable_so_kycr2_delay_sh_keysc_info_28217 kycr2_delay sh_keysc_info 0 28217 NULL
144474 +disable_so_timestamp_nfs4_opendata_28221 timestamp nfs4_opendata 0 28221 NULL
144475 +disable_so_mb_find_next_zero_bit_fndecl_28223 mb_find_next_zero_bit fndecl 0-2-3 28223 NULL
144476 +disable_so_nbytes_orig_qce_sha_reqctx_28228 nbytes_orig qce_sha_reqctx 0 28228 NULL
144477 +disable_so_code_addr_nvbios_pmuR_28229 code_addr nvbios_pmuR 0 28229 NULL
144478 +disable_so_clock_pad_drive_dib0070_config_28232 clock_pad_drive dib0070_config 0 28232 NULL nohasharray
144479 +disable_so_ringid_wmi_bcast_vring_cfg_28232 ringid wmi_bcast_vring_cfg 0 28232 &disable_so_clock_pad_drive_dib0070_config_28232
144480 +disable_so_centiseconds_timestamp_28239 centiseconds timestamp 0 28239 NULL nohasharray
144481 +disable_so_psb_vdc_interrupt_fndecl_28239 psb_vdc_interrupt fndecl 2 28239 &disable_so_centiseconds_timestamp_28239
144482 +disable_so_freqshift_snd_usb_endpoint_28255 freqshift snd_usb_endpoint 0 28255 NULL
144483 +disable_so_drm_vblank_count_and_time_fndecl_28263 drm_vblank_count_and_time fndecl 2 28263 NULL
144484 +disable_so_cr_s5p_jpeg_addr_28264 cr s5p_jpeg_addr 0 28264 NULL
144485 +disable_so_adis16136_get_freq_fndecl_28268 adis16136_get_freq fndecl 0 28268 NULL nohasharray
144486 +disable_so_cpu_to_tun16_fndecl_28268 cpu_to_tun16 fndecl 0-2 28268 &disable_so_adis16136_get_freq_fndecl_28268
144487 +disable_so_index_msr_data_28269 index msr_data 0 28269 NULL
144488 +disable_so_clock_realtek_pci_sdmmc_28276 clock realtek_pci_sdmmc 0 28276 NULL
144489 +disable_so_div_q0_pll_values_28280 div_q0 pll_values 0 28280 NULL
144490 +disable_so_fall_time_lp8788_bl_config_28282 fall_time lp8788_bl_config 0 28282 NULL
144491 +disable_so_producer_index_phys_addr_lo_megasas_init_queue_info_28289 producer_index_phys_addr_lo megasas_init_queue_info 0 28289 NULL
144492 +disable_so_hash_ipport4_expire_fndecl_28290 hash_ipport4_expire fndecl 4 28290 NULL
144493 +disable_so_ifa_valid_lft_in_ifaddr_28292 ifa_valid_lft in_ifaddr 0 28292 NULL nohasharray
144494 +disable_so_test_ahash_jiffies_digest_fndecl_28292 test_ahash_jiffies_digest fndecl 0 28292 &disable_so_ifa_valid_lft_in_ifaddr_28292
144495 +disable_so_bitmap_parselist_fndecl_28296 bitmap_parselist fndecl 0-3 28296 NULL
144496 +disable_so_st_uid_stat_28301 st_uid stat 0 28301 NULL
144497 +disable_so_default_powersave_bias_vardecl_cpufreq_ondemand_c_28302 default_powersave_bias vardecl_cpufreq_ondemand.c 0 28302 NULL
144498 +disable_so__simple_hash_fndecl_28307 _simple_hash fndecl 0 28307 NULL
144499 +disable_so_sys_setfsuid_fndecl_28311 sys_setfsuid fndecl 0-1 28311 NULL
144500 +disable_so_buf_addr_mlx4_ib_resize_cq_28313 buf_addr mlx4_ib_resize_cq 0 28313 NULL nohasharray
144501 +disable_so_netxen_config_ipaddr_fndecl_28313 netxen_config_ipaddr fndecl 2 28313 &disable_so_buf_addr_mlx4_ib_resize_cq_28313 nohasharray
144502 +disable_so_set_32bit_tls_fndecl_28313 set_32bit_tls fndecl 3 28313 &disable_so_netxen_config_ipaddr_fndecl_28313
144503 +disable_so_init_systime_stmmac_hwtimestamp_28315 init_systime stmmac_hwtimestamp 2-3 28315 NULL
144504 +disable_so_bf_daddr_ath_buf_28317 bf_daddr ath_buf 0 28317 NULL nohasharray
144505 +disable_so_xfs_btree_readahead_ptr_fndecl_28317 xfs_btree_readahead_ptr fndecl 3 28317 &disable_so_bf_daddr_ath_buf_28317
144506 +disable_so__is_valid_div_fndecl_28320 _is_valid_div fndecl 2 28320 NULL
144507 +disable_so_loop_id_2100_gid_list_info_28327 loop_id_2100 gid_list_info 0 28327 NULL nohasharray
144508 +disable_so_hi_regpair_28327 hi regpair 0 28327 &disable_so_loop_id_2100_gid_list_info_28327
144509 +disable_so_dst_addr_rcar_dmac_xfer_chunk_28333 dst_addr rcar_dmac_xfer_chunk 0 28333 NULL
144510 +disable_so_svm_msrpm_offset_fndecl_28343 svm_msrpm_offset fndecl 0-1 28343 NULL
144511 +disable_so_dma_free_attrs_fndecl_28349 dma_free_attrs fndecl 2-4 28349 NULL
144512 +disable_so_gc_psx_delay_vardecl_gamecon_c_28354 gc_psx_delay vardecl_gamecon.c 0 28354 NULL
144513 +disable_so_di_mtime_nsec_gfs2_dinode_28356 di_mtime_nsec gfs2_dinode 0 28356 NULL
144514 +disable_so_panel_post_divider_radeon_encoder_lvds_28360 panel_post_divider radeon_encoder_lvds 0 28360 NULL
144515 +disable_so_cpu_rt_runtime_write_fndecl_28375 cpu_rt_runtime_write fndecl 3-0 28375 NULL nohasharray
144516 +disable_so_hrtimer_nanosleep_fndecl_28375 hrtimer_nanosleep fndecl 4 28375 &disable_so_cpu_rt_runtime_write_fndecl_28375
144517 +disable_so_addr_yellowfin_desc_28380 addr yellowfin_desc 0 28380 NULL
144518 +disable_so_time_count_mptsas_target_reset_event_28383 time_count mptsas_target_reset_event 0 28383 NULL nohasharray
144519 +disable_so_pos2maj_hash_fndecl_28383 pos2maj_hash fndecl 0-2 28383 &disable_so_time_count_mptsas_target_reset_event_28383
144520 +disable_so_chv_freq_opcode_fndecl_28386 chv_freq_opcode fndecl 0-2 28386 NULL
144521 +disable_so_nsecs_to_jiffies_fndecl_28394 nsecs_to_jiffies fndecl 0-1 28394 NULL
144522 +disable_so_qpn_hash_fndecl_28400 qpn_hash fndecl 0-2 28400 NULL
144523 +disable_so_seltime_b_ahc_softc_28409 seltime_b ahc_softc 0 28409 NULL
144524 +disable_so_ast_set_start_address_crt1_fndecl_28414 ast_set_start_address_crt1 fndecl 2 28414 NULL
144525 +disable_so_tseg2_pucan_timing_fast_28420 tseg2 pucan_timing_fast 0 28420 NULL
144526 +disable_so_tlv_put_uuid_fndecl_28427 tlv_put_uuid fndecl 0 28427 NULL
144527 +disable_so_cur_tsc_write_kvm_arch_28444 cur_tsc_write kvm_arch 0 28444 NULL
144528 +disable_so_addr_2_qla8044_minidump_entry_rdmdio_28446 addr_2 qla8044_minidump_entry_rdmdio 0 28446 NULL
144529 +disable_so_ft_img_ir_timing_regvals_28448 ft img_ir_timing_regvals 0 28448 NULL
144530 +disable_so_blk_queue_rq_timeout_fndecl_28452 blk_queue_rq_timeout fndecl 2 28452 NULL
144531 +disable_so_pch_udc_read_device_interrupts_fndecl_28463 pch_udc_read_device_interrupts fndecl 0 28463 NULL
144532 +disable_so_spidev_sync_fndecl_28473 spidev_sync fndecl 0 28473 NULL
144533 +disable_so_mvs_store_interrupt_coalescing_fndecl_28474 mvs_store_interrupt_coalescing fndecl 0-4 28474 NULL
144534 +disable_so_div_up_fndecl_28477 div_up fndecl 0-1-2 28477 NULL
144535 +disable_so_iwlagn_hw_valid_rtc_data_addr_fndecl_28480 iwlagn_hw_valid_rtc_data_addr fndecl 1 28480 NULL
144536 +disable_so_ixgbe_init_interrupt_scheme_fndecl_28488 ixgbe_init_interrupt_scheme fndecl 0 28488 NULL
144537 +disable_so_next_hrtimer_event_ehci_hcd_28494 next_hrtimer_event ehci_hcd 0 28494 NULL
144538 +disable_so_show_hold_timer_fndecl_28495 show_hold_timer fndecl 0 28495 NULL
144539 +disable_so_linetime_intel_pipe_wm_28496 linetime intel_pipe_wm 0 28496 NULL
144540 +disable_so_rcq_addr_vf_pf_rxq_params_28504 rcq_addr vf_pf_rxq_params 0 28504 NULL
144541 +disable_so_paddr_ath10k_hif_sg_item_28509 paddr ath10k_hif_sg_item 0 28509 NULL
144542 +disable_so_ocfs2_clear_bit_unaligned_fndecl_28520 ocfs2_clear_bit_unaligned fndecl 1 28520 NULL
144543 +disable_so_interrupt_notify_wlcore_ops_28523 interrupt_notify wlcore_ops 0 28523 NULL
144544 +disable_so_r_direct_hash_ceph_mds_request_28525 r_direct_hash ceph_mds_request 0 28525 NULL
144545 +disable_so_i_ctime_omfs_inode_28528 i_ctime omfs_inode 0 28528 NULL
144546 +disable_so_sas_request_addr_fndecl_28536 sas_request_addr fndecl 0 28536 NULL
144547 +disable_so_bnx2x_send_reset_timesync_ramrod_fndecl_28537 bnx2x_send_reset_timesync_ramrod fndecl 0 28537 NULL
144548 +disable_so_prev_sum_exec_runtime_sched_entity_28542 prev_sum_exec_runtime sched_entity 0 28542 NULL nohasharray
144549 +disable_so_reg_w1_fndecl_28542 reg_w1 fndecl 2-3 28542 &disable_so_prev_sum_exec_runtime_sched_entity_28542
144550 +disable_so_addr_wil_memio_28545 addr wil_memio 0 28545 NULL
144551 +disable_so_drm_get_last_vbltimestamp_fndecl_28555 drm_get_last_vbltimestamp fndecl 2 28555 NULL nohasharray
144552 +disable_so_decryptor_fndecl_28555 decryptor fndecl 0 28555 &disable_so_drm_get_last_vbltimestamp_fndecl_28555
144553 +disable_so_mcryptd_hash_enqueue_fndecl_28559 mcryptd_hash_enqueue fndecl 0 28559 NULL
144554 +disable_so_i_ctime_nilfs_inode_28572 i_ctime nilfs_inode 0 28572 NULL
144555 +disable_so_ablkcipher_request_complete_fndecl_28578 ablkcipher_request_complete fndecl 2 28578 NULL
144556 +disable_so_quark_x1000_get_clk_div_fndecl_28592 quark_x1000_get_clk_div fndecl 0-1 28592 NULL
144557 +disable_so_myri10ge_update_mac_address_fndecl_28593 myri10ge_update_mac_address fndecl 0 28593 NULL
144558 +disable_so_crypto_authenc_decrypt_fndecl_28596 crypto_authenc_decrypt fndecl 0 28596 NULL
144559 +disable_so_addr_starfire_tx_desc_2_28603 addr starfire_tx_desc_2 0 28603 NULL
144560 +disable_so___rhashtable_insert_fast_fndecl_28605 __rhashtable_insert_fast fndecl 0 28605 NULL
144561 +disable_so_addr_cp_desc_28611 addr cp_desc 0 28611 NULL
144562 +disable_so_ic_pause_timer_mtip_port_28612 ic_pause_timer mtip_port 0 28612 NULL nohasharray
144563 +disable_so_bitmap_checkfree_fndecl_28612 bitmap_checkfree fndecl 2 28612 &disable_so_ic_pause_timer_mtip_port_28612
144564 +disable_so_ac_utimescaled_taskstats_28613 ac_utimescaled taskstats 0 28613 NULL
144565 +disable_so___subtree_last_umem_odp_node_28630 __subtree_last umem_odp_node 0 28630 NULL
144566 +disable_so_i_ctime_bfs_inode_28632 i_ctime bfs_inode 0 28632 NULL
144567 +disable_so_s_def_resgid_ext4_super_block_28638 s_def_resgid ext4_super_block 0 28638 NULL
144568 +disable_so_addr_alert_data_28639 addr alert_data 0 28639 NULL
144569 +disable_so_p_vaddr_elf32_phdr_28641 p_vaddr elf32_phdr 0 28641 NULL
144570 +disable_so_kv_set_divider_value_fndecl_28644 kv_set_divider_value fndecl 3-0 28644 NULL
144571 +disable_so_bitmap_clear_fndecl_28646 bitmap_clear fndecl 2-3 28646 NULL
144572 +disable_so_uartlite_inle32_fndecl_28652 uartlite_inle32 fndecl 0 28652 NULL
144573 +disable_so_kvm_hv_vapic_msr_write_fndecl_28670 kvm_hv_vapic_msr_write fndecl 3 28670 NULL
144574 +disable_so_sgl_addr_fcpio_icmnd_16_28672 sgl_addr fcpio_icmnd_16 0 28672 NULL
144575 +disable_so_timestamp_bfa_trc_s_28675 timestamp bfa_trc_s 0 28675 NULL
144576 +disable_so_xbofs_delay_irda_skb_cb_28676 xbofs_delay irda_skb_cb 0 28676 NULL
144577 +disable_so_hpfs_map_bitmap_fndecl_28681 hpfs_map_bitmap fndecl 2 28681 NULL
144578 +disable_so_tz_minuteswest_timezone_28688 tz_minuteswest timezone 0 28688 NULL
144579 +disable_so_pc_clock_settime_fndecl_28698 pc_clock_settime fndecl 1 28698 NULL
144580 +disable_so_orinoco_hw_get_freq_fndecl_28700 orinoco_hw_get_freq fndecl 0 28700 NULL
144581 +disable_so_phys_addr_megasas_sge32_28701 phys_addr megasas_sge32 0 28701 NULL
144582 +disable_so_tusb_otg_ints_fndecl_28728 tusb_otg_ints fndecl 2 28728 NULL
144583 +disable_so_dynamic_ps_forced_timeout_ieee80211_local_28729 dynamic_ps_forced_timeout ieee80211_local 0 28729 NULL
144584 +disable_so_atomic_notifier_call_chain_fndecl_28732 atomic_notifier_call_chain fndecl 0-2 28732 NULL
144585 +disable_so_time_ext_busy_survey_info_28734 time_ext_busy survey_info 0 28734 NULL
144586 +disable_so___audit_signal_info_fndecl_28736 __audit_signal_info fndecl 0-1 28736 NULL
144587 +disable_so_SYSC_mq_timedsend_fndecl_28740 SYSC_mq_timedsend fndecl 1-3 28740 NULL
144588 +disable_so_gss_krb5_aes_decrypt_fndecl_28742 gss_krb5_aes_decrypt fndecl 0-2 28742 NULL
144589 +disable_so_sys_clock_getres_fndecl_28754 sys_clock_getres fndecl 1 28754 NULL
144590 +disable_so_addr_max8997_muic_reg_data_28757 addr max8997_muic_reg_data 0 28757 NULL
144591 +disable_so_address_floppy_fdc_state_28762 address floppy_fdc_state 0 28762 NULL
144592 +disable_so_btrfs_uuid_tree_add_fndecl_28765 btrfs_uuid_tree_add fndecl 0-4-5 28765 NULL
144593 +disable_so_default_radio_freq_vardecl_pvrusb2_hdw_c_28767 default_radio_freq vardecl_pvrusb2-hdw.c 0 28767 NULL
144594 +disable_so_ac_stime_pacct_struct_28773 ac_stime pacct_struct 0 28773 NULL
144595 +disable_so___btree_submit_bio_start_fndecl_28775 __btree_submit_bio_start fndecl 0 28775 NULL
144596 +disable_so_add_new_bitmap_fndecl_28783 add_new_bitmap fndecl 3 28783 NULL
144597 +disable_so_cinblock_signal_struct_28789 cinblock signal_struct 0 28789 NULL
144598 +disable_so_bd_list_addr_hi_bnx2i_logout_request_28791 bd_list_addr_hi bnx2i_logout_request 0 28791 NULL
144599 +disable_so_tv_freq_bttv_28796 tv_freq bttv 0 28796 NULL
144600 +disable_so___btrfs_run_delayed_items_fndecl_28804 __btrfs_run_delayed_items fndecl 0-3 28804 NULL nohasharray
144601 +disable_so_dst_addr_dma_slave_config_28804 dst_addr dma_slave_config 0 28804 &disable_so___btrfs_run_delayed_items_fndecl_28804
144602 +disable_so_xfs_bitmap_empty_fndecl_28805 xfs_bitmap_empty fndecl 2 28805 NULL
144603 +disable_so_btrfs_alloc_delayed_item_fndecl_28813 btrfs_alloc_delayed_item fndecl 1 28813 NULL
144604 +disable_so_virtio32_to_cpu_fndecl_28839 virtio32_to_cpu fndecl 0-2 28839 NULL
144605 +disable_so_random_frame_fusbh200_hcd_28840 random_frame fusbh200_hcd 0 28840 NULL
144606 +disable_so_wl1273_fm_set_tx_freq_fndecl_28841 wl1273_fm_set_tx_freq fndecl 2 28841 NULL nohasharray
144607 +disable_so_rip_kvm_regs_28841 rip kvm_regs 0 28841 &disable_so_wl1273_fm_set_tx_freq_fndecl_28841
144608 +disable_so_last_capture_dmaaddr_es1938_28843 last_capture_dmaaddr es1938 0 28843 NULL
144609 +disable_so_mic_is_system_addr_fndecl_28851 mic_is_system_addr fndecl 2 28851 NULL
144610 +disable_so_sst_module_runtime_new_fndecl_28861 sst_module_runtime_new fndecl 2 28861 NULL
144611 +disable_so_nat_blkaddr_f2fs_nm_info_28862 nat_blkaddr f2fs_nm_info 0 28862 NULL
144612 +disable_so_ustrtoul_fndecl_28866 ustrtoul fndecl 0 28866 NULL
144613 +disable_so_tomoyo_write_log2_fndecl_28871 tomoyo_write_log2 fndecl 2 28871 NULL
144614 +disable_so_rate_snd_pcm_oss_runtime_28878 rate snd_pcm_oss_runtime 0 28878 NULL
144615 +disable_so_cl_idle_timeout_ms_o2nm_cluster_28885 cl_idle_timeout_ms o2nm_cluster 0 28885 NULL
144616 +disable_so_pc_clock_adjtime_fndecl_28892 pc_clock_adjtime fndecl 1 28892 NULL
144617 +disable_so_mmc_power_cycle_fndecl_28894 mmc_power_cycle fndecl 2 28894 NULL
144618 +disable_so_cpufreq_get_fndecl_28896 cpufreq_get fndecl 0-1 28896 NULL
144619 +disable_so_ci_get_sleep_divider_id_from_clock_fndecl_28898 ci_get_sleep_divider_id_from_clock fndecl 2 28898 NULL
144620 +disable_so_mmio_writel_intel_uncore_funcs_28903 mmio_writel intel_uncore_funcs 2-3 28903 NULL
144621 +disable_so_cpufreq_stats_init_fndecl_28912 cpufreq_stats_init fndecl 0 28912 NULL
144622 +disable_so_sbp_tpg_attrib_store_mgt_orb_timeout_fndecl_28914 sbp_tpg_attrib_store_mgt_orb_timeout fndecl 0-3 28914 NULL
144623 +disable_so___virtio16_to_cpu_fndecl_28917 __virtio16_to_cpu fndecl 0-2 28917 NULL
144624 +disable_so___pm_runtime_resume_fndecl_28918 __pm_runtime_resume fndecl 0 28918 NULL
144625 +disable_so_task_setpgid_security_operations_28939 task_setpgid security_operations 2 28939 NULL
144626 +disable_so_perf_event_set_clock_fndecl_28941 perf_event_set_clock fndecl 0 28941 NULL
144627 +disable_so_sci_er_interrupt_fndecl_28944 sci_er_interrupt fndecl 1 28944 NULL
144628 +disable_so_mmc_sdio_get_max_clock_fndecl_28945 mmc_sdio_get_max_clock fndecl 0 28945 NULL
144629 +disable_so_dma_addr_cmdQ_28949 dma_addr cmdQ 0 28949 NULL
144630 +disable_so_s_def_resuid_ext3_super_block_28958 s_def_resuid ext3_super_block 0 28958 NULL
144631 +disable_so_init_timer_cpu_fndecl_28961 init_timer_cpu fndecl 2 28961 NULL
144632 +disable_so_sst_hsw_dsp_runtime_suspend_fndecl_28962 sst_hsw_dsp_runtime_suspend fndecl 0 28962 NULL nohasharray
144633 +disable_so_mem_busaddr_ahd_platform_data_28962 mem_busaddr ahd_platform_data 0 28962 &disable_so_sst_hsw_dsp_runtime_suspend_fndecl_28962
144634 +disable_so_xen_setup_timer_fndecl_28968 xen_setup_timer fndecl 1 28968 NULL
144635 +disable_so_vx_clock_mode_info_fndecl_28969 vx_clock_mode_info fndecl 0 28969 NULL
144636 +disable_so_clk_frequency_csis_state_28987 clk_frequency csis_state 0 28987 NULL
144637 +disable_so_cma_clear_bitmap_fndecl_28991 cma_clear_bitmap fndecl 2-3 28991 NULL
144638 +disable_so_tg3_nvram_phys_addr_fndecl_28993 tg3_nvram_phys_addr fndecl 0-2 28993 NULL
144639 +disable_so_ufshcd_init_clocks_fndecl_28995 ufshcd_init_clocks fndecl 0 28995 NULL nohasharray
144640 +disable_so_ima_init_crypto_fndecl_28995 ima_init_crypto fndecl 0 28995 &disable_so_ufshcd_init_clocks_fndecl_28995
144641 +disable_so_i2c_address_ts2020_priv_29002 i2c_address ts2020_priv 0 29002 NULL
144642 +disable_so_gf_mul_fndecl_29007 gf_mul fndecl 0-3 29007 NULL
144643 +disable_so_sys_geteuid_fndecl_29013 sys_geteuid fndecl 0 29013 NULL
144644 +disable_so_do_one_acipher_op_fndecl_29014 do_one_acipher_op fndecl 0-2 29014 NULL
144645 +disable_so_ssb_pmu_get_alp_clock_clk0_fndecl_29019 ssb_pmu_get_alp_clock_clk0 fndecl 0 29019 NULL
144646 +disable_so_addr_ib_sge_29021 addr ib_sge 0 29021 NULL
144647 +disable_so_rdi_kvm_regs_29022 rdi kvm_regs 0 29022 NULL
144648 +disable_so_dma_subdivide_fndecl_29027 dma_subdivide fndecl 3-0 29027 NULL
144649 +disable_so_nilfs_superblock_sb_write_time_secs_show_fndecl_29044 nilfs_superblock_sb_write_time_secs_show fndecl 0 29044 NULL
144650 +disable_so_mlx4_ib_init_gid_table_fndecl_29049 mlx4_ib_init_gid_table fndecl 0 29049 NULL
144651 +disable_so_xfs_bmap_add_attrfork_btree_fndecl_29052 xfs_bmap_add_attrfork_btree fndecl 0 29052 NULL
144652 +disable_so_pcf2123_rtc_set_time_fndecl_29057 pcf2123_rtc_set_time fndecl 0 29057 NULL
144653 +disable_so_vactive_hi_oaktrail_timing_info_29063 vactive_hi oaktrail_timing_info 0 29063 NULL
144654 +disable_so_xfs_btree_lookup_fndecl_29066 xfs_btree_lookup fndecl 0 29066 NULL
144655 +disable_so_si476x_core_cmd_fm_tune_freq_a20_fndecl_29072 si476x_core_cmd_fm_tune_freq_a20 fndecl 0 29072 NULL
144656 +disable_so_hcd_pci_runtime_resume_fndecl_29073 hcd_pci_runtime_resume fndecl 0 29073 NULL
144657 +disable_so_switch_time_wl12xx_cmd_channel_switch_29074 switch_time wl12xx_cmd_channel_switch 0 29074 NULL
144658 +disable_so_ata_internal_cmd_timeout_fndecl_29075 ata_internal_cmd_timeout fndecl 0-2 29075 NULL nohasharray
144659 +disable_so_hash_shift_flow_cache_29075 hash_shift flow_cache 0 29075 &disable_so_ata_internal_cmd_timeout_fndecl_29075
144660 +disable_so_timeout_sg_io_v4_29079 timeout sg_io_v4 0 29079 NULL
144661 +disable_so___btrfs_add_delayed_insertion_item_fndecl_29083 __btrfs_add_delayed_insertion_item fndecl 0 29083 NULL
144662 +disable_so_bn_nchildren_nilfs_btree_node_29084 bn_nchildren nilfs_btree_node 0 29084 NULL
144663 +disable_so_jiffies_vardecl_29085 jiffies vardecl 0 29085 NULL
144664 +disable_so_frag_count_ct_timer_instance_29091 frag_count ct_timer_instance 0 29091 NULL
144665 +disable_so_ref_start_vardecl_tsc_c_29097 ref_start vardecl_tsc.c 0 29097 NULL
144666 +disable_so_timeout_ms_cm_id_private_29104 timeout_ms cm_id_private 0 29104 NULL
144667 +disable_so_nfulnl_set_timeout_fndecl_29106 nfulnl_set_timeout fndecl 2 29106 NULL nohasharray
144668 +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
144669 +disable_so_i_mtime_exofs_fcb_29107 i_mtime exofs_fcb 0 29107 NULL
144670 +disable_so_ss_pt_regs_29109 ss pt_regs 0 29109 NULL
144671 +disable_so_ivsize_ablkcipher_alg_29115 ivsize ablkcipher_alg 0 29115 NULL
144672 +disable_so_signal_strength_rx_status_29125 signal_strength rx_status 0 29125 NULL
144673 +disable_so_radio_rx_freq_vivid_dev_29126 radio_rx_freq vivid_dev 0 29126 NULL
144674 +disable_so_io_virtual_address_ib_pool_fmr_29135 io_virtual_address ib_pool_fmr 0 29135 NULL
144675 +disable_so_addr_low_mcp_kreq_ether_send_29138 addr_low mcp_kreq_ether_send 0 29138 NULL
144676 +disable_so_pad_bits_bitstream_29149 pad_bits bitstream 0 29149 NULL
144677 +disable_so_clockdiv_sd_29154 clockdiv sd 0 29154 NULL
144678 +disable_so_retu_wdt_set_timeout_fndecl_29155 retu_wdt_set_timeout fndecl 2-0 29155 NULL nohasharray
144679 +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
144680 +disable_so_set_ip_addr_fndecl_29159 set_ip_addr fndecl 4 29159 NULL nohasharray
144681 +disable_so_hsync_offset_hi_oaktrail_timing_info_29159 hsync_offset_hi oaktrail_timing_info 0 29159 &disable_so_set_ip_addr_fndecl_29159
144682 +disable_so_valid_phys_addr_range_fndecl_29163 valid_phys_addr_range fndecl 2 29163 NULL
144683 +disable_so_hsw_compute_linetime_wm_fndecl_29166 hsw_compute_linetime_wm fndecl 0 29166 NULL
144684 +disable_so_set_frontend_jiffies_af9013_state_29174 set_frontend_jiffies af9013_state 0 29174 NULL
144685 +disable_so_max_schedule_delay_balloon_stats_29176 max_schedule_delay balloon_stats 0 29176 NULL
144686 +disable_so_matroxfb_mavenclock_fndecl_29182 matroxfb_mavenclock fndecl 2-3 29182 NULL
144687 +disable_so_rrq_stop_time_lpfc_node_rrq_29187 rrq_stop_time lpfc_node_rrq 0 29187 NULL
144688 +disable_so_can_ifindex_sockaddr_can_29188 can_ifindex sockaddr_can 0 29188 NULL
144689 +disable_so_time_hi_and_version_afs_uuid_29192 time_hi_and_version afs_uuid 0 29192 NULL
144690 +disable_so_inode_bitmap_ext4_new_group_data_29195 inode_bitmap ext4_new_group_data 0 29195 NULL
144691 +disable_so_madc_aic31xx_rate_divs_29206 madc aic31xx_rate_divs 0 29206 NULL
144692 +disable_so_i_mtime_ext3_inode_29219 i_mtime ext3_inode 0 29219 NULL
144693 +disable_so_ccp_aes_cmac_finup_fndecl_29220 ccp_aes_cmac_finup fndecl 0 29220 NULL
144694 +disable_so_listen_time_ath5k_ani_state_29228 listen_time ath5k_ani_state 0 29228 NULL
144695 +disable_so_di_mtime_gfs2_dinode_29230 di_mtime gfs2_dinode 0 29230 NULL nohasharray
144696 +disable_so_snd_pcm_hw_rule_mulkdiv_fndecl_29230 snd_pcm_hw_rule_mulkdiv fndecl 0 29230 &disable_so_di_mtime_gfs2_dinode_29230
144697 +disable_so_qlcnic_get_ioaddr_fndecl_29235 qlcnic_get_ioaddr fndecl 2 29235 NULL
144698 +disable_so_si476x_radio_s_hw_freq_seek_fndecl_29237 si476x_radio_s_hw_freq_seek fndecl 0 29237 NULL
144699 +disable_so_SiS_SetRegANDOR_fndecl_29240 SiS_SetRegANDOR fndecl 2-3-5-4 29240 NULL
144700 +disable_so_dev_wait_time_esas2r_sas_nvram_29244 dev_wait_time esas2r_sas_nvram 0 29244 NULL
144701 +disable_so_b44_recycle_rx_fndecl_29255 b44_recycle_rx fndecl 2-3 29255 NULL
144702 +disable_so_max_state_devfreq_dev_profile_29257 max_state devfreq_dev_profile 0 29257 NULL
144703 +disable_so_freq_std_sccnxp_chip_29265 freq_std sccnxp_chip 0 29265 NULL nohasharray
144704 +disable_so___ipv6_addr_diff32_fndecl_29265 __ipv6_addr_diff32 fndecl 0 29265 &disable_so_freq_std_sccnxp_chip_29265
144705 +disable_so_kvm_max_guest_tsc_khz_vardecl_29276 kvm_max_guest_tsc_khz vardecl 0 29276 NULL
144706 +disable_so_ioaddr_velocity_info_29278 ioaddr velocity_info 0 29278 NULL
144707 +disable_so_last_rx_time_xenvif_queue_29307 last_rx_time xenvif_queue 0 29307 NULL
144708 +disable_so_expires_timeriomem_rng_private_data_29310 expires timeriomem_rng_private_data 0 29310 NULL nohasharray
144709 +disable_so_dev_sound_lowlev_timer_29310 dev sound_lowlev_timer 0 29310 &disable_so_expires_timeriomem_rng_private_data_29310
144710 +disable_so_btrfs_set_inode_gid_fndecl_29338 btrfs_set_inode_gid fndecl 3 29338 NULL
144711 +disable_so_i2c_clock_speed_i2c_pca9564_pf_platform_data_29345 i2c_clock_speed i2c_pca9564_pf_platform_data 0 29345 NULL nohasharray
144712 +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
144713 +disable_so_adav80x_set_adc_clock_fndecl_29348 adav80x_set_adc_clock fndecl 2 29348 NULL
144714 +disable_so_mod_size_ccp_rsa_op_29350 mod_size ccp_rsa_op 0 29350 NULL
144715 +disable_so_iscsit_na_random_r2t_offsets_fndecl_29363 iscsit_na_random_r2t_offsets fndecl 0 29363 NULL nohasharray
144716 +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
144717 +disable_so_smsc75xx_set_mac_address_fndecl_29364 smsc75xx_set_mac_address fndecl 0 29364 NULL
144718 +disable_so_m88rs6000t_set_pll_freq_fndecl_29365 m88rs6000t_set_pll_freq fndecl 0-2 29365 NULL
144719 +disable_so_scaled_div_fndecl_29370 scaled_div fndecl 0-1-2 29370 NULL
144720 +disable_so_rtsc_y2x_fndecl_29372 rtsc_y2x fndecl 0-2 29372 NULL
144721 +disable_so_uart_update_timeout_fndecl_29380 uart_update_timeout fndecl 3-2 29380 NULL
144722 +disable_so_dbuf_addr_ath6kl_dbglog_hdr_29381 dbuf_addr ath6kl_dbglog_hdr 0 29381 NULL
144723 +disable_so_sample_rate_div_inv_mpu6050_reg_map_29386 sample_rate_div inv_mpu6050_reg_map 0 29386 NULL nohasharray
144724 +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
144725 +disable_so_nla_parse_nested_fndecl_29395 nla_parse_nested fndecl 2-0 29395 NULL
144726 +disable_so___sched_setscheduler_fndecl_29397 __sched_setscheduler fndecl 0 29397 NULL
144727 +disable_so_add_atomic_switch_msr_special_fndecl_29400 add_atomic_switch_msr_special fndecl 6-7 29400 NULL
144728 +disable_so___xfrm_spi_hash_fndecl_29403 __xfrm_spi_hash fndecl 0-2-3-4-5 29403 NULL
144729 +disable_so_ceph_decode_pgid_fndecl_29407 ceph_decode_pgid fndecl 0 29407 NULL
144730 +disable_so_loc_addr_nes_cm_info_29413 loc_addr nes_cm_info 0 29413 NULL
144731 +disable_so_kxcjk1013_convert_freq_to_bit_fndecl_29417 kxcjk1013_convert_freq_to_bit fndecl 0 29417 NULL
144732 +disable_so_exec_clock_cfs_rq_29423 exec_clock cfs_rq 0 29423 NULL
144733 +disable_so_irst_show_wakeup_time_fndecl_29431 irst_show_wakeup_time fndecl 0 29431 NULL nohasharray
144734 +disable_so_macb_interrupt_fndecl_29431 macb_interrupt fndecl 1 29431 &disable_so_irst_show_wakeup_time_fndecl_29431
144735 +disable_so_crypto_register_notifier_fndecl_29432 crypto_register_notifier fndecl 0 29432 NULL nohasharray
144736 +disable_so_shash_compat_setkey_fndecl_29432 shash_compat_setkey fndecl 0-3 29432 &disable_so_crypto_register_notifier_fndecl_29432
144737 +disable_so_pwm_freq_div_dib8000_config_29434 pwm_freq_div dib8000_config 0 29434 NULL
144738 +disable_so_ds1305_set_time_fndecl_29436 ds1305_set_time fndecl 0 29436 NULL
144739 +disable_so_add_sctp_bind_addr_fndecl_29438 add_sctp_bind_addr fndecl 0-3 29438 NULL
144740 +disable_so___virtio32_to_cpu_fndecl_29440 __virtio32_to_cpu fndecl 0-2 29440 NULL
144741 +disable_so_phonet_address_lookup_fndecl_29442 phonet_address_lookup fndecl 2 29442 NULL
144742 +disable_so_max_timeout_rc_dev_29444 max_timeout rc_dev 0 29444 NULL
144743 +disable_so_address_lo_ips_enh_sglist_29453 address_lo ips_enh_sglist 0 29453 NULL
144744 +disable_so_cdrom_is_random_writable_fndecl_29454 cdrom_is_random_writable fndecl 0 29454 NULL
144745 +disable_so_devblksize_log2_squashfs_sb_info_29455 devblksize_log2 squashfs_sb_info 0 29455 NULL
144746 +disable_so_ps_pspoll_timeouts_read_fndecl_29459 ps_pspoll_timeouts_read fndecl 3-0 29459 NULL
144747 +disable_so_kvm_apic_has_interrupt_fndecl_29462 kvm_apic_has_interrupt fndecl 0 29462 NULL
144748 +disable_so_max6902_read_time_fndecl_29464 max6902_read_time fndecl 0 29464 NULL
144749 +disable_so_get_bit_address_fndecl_29473 get_bit_address fndecl 2 29473 NULL
144750 +disable_so_last_sample_time_vardecl_smscoreapi_c_29477 last_sample_time vardecl_smscoreapi.c 0 29477 NULL nohasharray
144751 +disable_so_btree_readahead_hook_fndecl_29477 btree_readahead_hook fndecl 3-4 29477 &disable_so_last_sample_time_vardecl_smscoreapi_c_29477
144752 +disable_so_final_crypto_ahash_29478 final crypto_ahash 0 29478 NULL
144753 +disable_so_sum_sched_runtime_signal_struct_29480 sum_sched_runtime signal_struct 0 29480 NULL
144754 +disable_so_status_addr_req_29482 status addr_req 0 29482 NULL
144755 +disable_so_micd_dbtime_arizona_pdata_29495 micd_dbtime arizona_pdata 0 29495 NULL
144756 +disable_so_tqi_burst_time_ath5k_txq_info_29499 tqi_burst_time ath5k_txq_info 0 29499 NULL
144757 +disable_so_rs5c372_rtc_read_time_fndecl_29505 rs5c372_rtc_read_time fndecl 0 29505 NULL
144758 +disable_so_pi_write_regr_fndecl_29517 pi_write_regr fndecl 4 29517 NULL
144759 +disable_so_used_cells_ti_tscadc_dev_29522 used_cells ti_tscadc_dev 0 29522 NULL
144760 +disable_so_delay_to_eeprom_index_fndecl_29523 delay_to_eeprom_index fndecl 1 29523 NULL
144761 +disable_so_devfreq_event_get_edev_count_fndecl_29524 devfreq_event_get_edev_count fndecl 0 29524 NULL
144762 +disable_so_pci_enable_msix_range_fndecl_29535 pci_enable_msix_range fndecl 0-4-3 29535 NULL
144763 +disable_so_last_stats_time_ocrdma_dev_29544 last_stats_time ocrdma_dev 0 29544 NULL
144764 +disable_so_sb_c_bitmap_hpfs_sb_info_29558 sb_c_bitmap hpfs_sb_info 0 29558 NULL
144765 +disable_so_submit_time_us_bbio_29575 submit_time_us bbio 0 29575 NULL
144766 +disable_so_bitmap_remap_fndecl_29578 bitmap_remap fndecl 5 29578 NULL
144767 +disable_so_ath_force_no_ir_freq_fndecl_29580 ath_force_no_ir_freq fndecl 2 29580 NULL
144768 +disable_so_time_slice_start_ieee80211_sta_tx_tspec_29586 time_slice_start ieee80211_sta_tx_tspec 0 29586 NULL
144769 +disable_so_mlx4_get_roce_gid_from_slave_fndecl_29587 mlx4_get_roce_gid_from_slave fndecl 2-3 29587 NULL
144770 +disable_so_signalfd_read_fndecl_29589 signalfd_read fndecl 0 29589 NULL
144771 +disable_so_iscsi_nacl_attrib_show_random_datain_seq_offsets_fndecl_29602 iscsi_nacl_attrib_show_random_datain_seq_offsets fndecl 0 29602 NULL
144772 +disable_so_it913x_sleep_fndecl_29615 it913x_sleep fndecl 0 29615 NULL
144773 +disable_so_phy_addr_external_netdev_private_29618 phy_addr_external netdev_private 0 29618 NULL
144774 +disable_so_ssb_clockspeed_fndecl_29627 ssb_clockspeed fndecl 0 29627 NULL
144775 +disable_so_tx_int_delay_e1000_adapter_29628 tx_int_delay e1000_adapter 0 29628 NULL
144776 +disable_so_qlcnic_83xx_idc_check_timeout_fndecl_29633 qlcnic_83xx_idc_check_timeout fndecl 0 29633 NULL
144777 +disable_so_tegra_wdt_get_timeleft_fndecl_29649 tegra_wdt_get_timeleft fndecl 0 29649 NULL
144778 +disable_so_get_intermediate_cpufreq_driver_29653 get_intermediate cpufreq_driver 0 29653 NULL
144779 +disable_so_lpfc_debugfs_start_time_vardecl_lpfc_debugfs_c_29655 lpfc_debugfs_start_time vardecl_lpfc_debugfs.c 0 29655 NULL
144780 +disable_so_check_addr_fndecl_29658 check_addr fndecl 3-4 29658 NULL
144781 +disable_so_irlap_start_poll_timer_fndecl_29663 irlap_start_poll_timer fndecl 2 29663 NULL nohasharray
144782 +disable_so_mlx5_query_node_guid_fndecl_29663 mlx5_query_node_guid fndecl 0 29663 &disable_so_irlap_start_poll_timer_fndecl_29663
144783 +disable_so_read_addr_qla8044_minidump_entry_rdrom_29676 read_addr qla8044_minidump_entry_rdrom 0 29676 NULL nohasharray
144784 +disable_so_to_addr_param_sctp_af_29676 to_addr_param sctp_af 0 29676 &disable_so_read_addr_qla8044_minidump_entry_rdrom_29676
144785 +disable_so_buf_addr_mlx4_ib_create_cq_29678 buf_addr mlx4_ib_create_cq 0 29678 NULL
144786 +disable_so_forward_delay_timer_value___port_info_29680 forward_delay_timer_value __port_info 0 29680 NULL
144787 +disable_so_packet_life_time_ib_sa_mcmember_rec_29682 packet_life_time ib_sa_mcmember_rec 0 29682 NULL
144788 +disable_so_batadv_hash_dat_fndecl_29684 batadv_hash_dat fndecl 0-2 29684 NULL
144789 +disable_so_qxl_bo_physical_address_fndecl_29696 qxl_bo_physical_address fndecl 0-3 29696 NULL
144790 +disable_so_hspi_status_check_timeout_fndecl_29712 hspi_status_check_timeout fndecl 0 29712 NULL
144791 +disable_so_nes_addr_resolve_neigh_fndecl_29717 nes_addr_resolve_neigh fndecl 0-2-3 29717 NULL
144792 +disable_so_hash2pos_fndecl_29725 hash2pos fndecl 0-2-3 29725 NULL
144793 +disable_so_bcma_chipco_watchdog_timer_set_fndecl_29730 bcma_chipco_watchdog_timer_set fndecl 2-0 29730 NULL
144794 +disable_so_hor_addr_via_display_timing_29736 hor_addr via_display_timing 0 29736 NULL
144795 +disable_so_ceph_str_hash_fndecl_29742 ceph_str_hash fndecl 0-3 29742 NULL
144796 +disable_so_qla2x00_gid_pt_fndecl_29752 qla2x00_gid_pt fndecl 0 29752 NULL nohasharray
144797 +disable_so_ocfs2_xattr_name_hash_fndecl_29752 ocfs2_xattr_name_hash fndecl 0-3 29752 &disable_so_qla2x00_gid_pt_fndecl_29752
144798 +disable_so_kstrtouint_from_user_fndecl_29755 kstrtouint_from_user fndecl 0-2 29755 NULL
144799 +disable_so_get_timeout_clock_sdhci_ops_29760 get_timeout_clock sdhci_ops 0 29760 NULL nohasharray
144800 +disable_so_curfreq_raremono_device_29760 curfreq raremono_device 0 29760 &disable_so_get_timeout_clock_sdhci_ops_29760
144801 +disable_so_send_time_batadv_forw_packet_29762 send_time batadv_forw_packet 0 29762 NULL
144802 +disable_so_ms_brcms_timer_29763 ms brcms_timer 0 29763 NULL nohasharray
144803 +disable_so_lp872x_get_timestep_usec_fndecl_29763 lp872x_get_timestep_usec fndecl 0 29763 &disable_so_ms_brcms_timer_29763
144804 +disable_so_bmap_address_space_operations_29766 bmap address_space_operations 2 29766 NULL
144805 +disable_so_ds1390_set_time_fndecl_29768 ds1390_set_time fndecl 0 29768 NULL
144806 +disable_so_release_jiffies_dvb_frontend_private_29775 release_jiffies dvb_frontend_private 0 29775 NULL
144807 +disable_so_hsw_pcm_runtime_resume_fndecl_29777 hsw_pcm_runtime_resume fndecl 0 29777 NULL
144808 +disable_so_pcan_usb_set_bittiming_fndecl_29781 pcan_usb_set_bittiming fndecl 0 29781 NULL
144809 +disable_so_pmcraid_disable_interrupts_fndecl_29788 pmcraid_disable_interrupts fndecl 2 29788 NULL
144810 +disable_so_bit_line_usb_fifo_29792 bit_line usb_fifo 0 29792 NULL
144811 +disable_so_hash_name_fndecl_29814 hash_name fndecl 0 29814 NULL
144812 +disable_so_t4vf_set_addr_hash_fndecl_29821 t4vf_set_addr_hash fndecl 0-2 29821 NULL
144813 +disable_so_bit_length_acpi_object_region_field_29824 bit_length acpi_object_region_field 0 29824 NULL
144814 +disable_so_native_read_tsc_fndecl_29825 native_read_tsc fndecl 0 29825 NULL
144815 +disable_so_sha256_base_do_update_fndecl_29849 sha256_base_do_update fndecl 3 29849 NULL
144816 +disable_so_timeout_ip_vs_conn_29852 timeout ip_vs_conn 0 29852 NULL
144817 +disable_so_conn_db_addr_hi_fcoe_kwqe_conn_offload2_29864 conn_db_addr_hi fcoe_kwqe_conn_offload2 0 29864 NULL
144818 +disable_so_timeout_type_timeout_parms_29877 timeout_type timeout_parms 0 29877 NULL
144819 +disable_so_arch_apei_filter_addr_vardecl_29884 arch_apei_filter_addr vardecl 0 29884 NULL
144820 +disable_so_crypto_shash_import_fndecl_29885 crypto_shash_import fndecl 0 29885 NULL
144821 +disable_so_ktime_get_ns_fndecl_29890 ktime_get_ns fndecl 0 29890 NULL
144822 +disable_so_store_scaling_min_freq_fndecl_29892 store_scaling_min_freq fndecl 0-3 29892 NULL
144823 +disable_so_nfsd_map_name_to_uid_fndecl_29920 nfsd_map_name_to_uid fndecl 0 29920 NULL
144824 +disable_so_min_interrupt_in_interval_vardecl_ldusb_c_29924 min_interrupt_in_interval vardecl_ldusb.c 0 29924 NULL
144825 +disable_so_cdv_intel_clock_fndecl_29931 cdv_intel_clock fndecl 1 29931 NULL
144826 +disable_so_di_mtime_efs_dinode_29934 di_mtime efs_dinode 0 29934 NULL nohasharray
144827 +disable_so_hpet_freq_vardecl_hpet_c_29934 hpet_freq vardecl_hpet.c 0 29934 &disable_so_di_mtime_efs_dinode_29934
144828 +disable_so_shash_async_setkey_fndecl_29939 shash_async_setkey fndecl 0-3 29939 NULL
144829 +disable_so_qs_btimelimit_fs_quota_statv_29943 qs_btimelimit fs_quota_statv 0 29943 NULL
144830 +disable_so_addr_mpr121_init_register_29945 addr mpr121_init_register 0 29945 NULL
144831 +disable_so_pixelclock_v4l2_bt_timings_29967 pixelclock v4l2_bt_timings 0 29967 NULL
144832 +disable_so_spi_imx_clkdiv_2_fndecl_29968 spi_imx_clkdiv_2 fndecl 1-2 29968 NULL
144833 +disable_so_ed_uuid_drbd_device_29970 ed_uuid drbd_device 0 29970 NULL
144834 +disable_so_timestamp_nfs_release_lockowner_data_29972 timestamp nfs_release_lockowner_data 0 29972 NULL
144835 +disable_so_smp_send_reschedule_smp_ops_29981 smp_send_reschedule smp_ops 1 29981 NULL
144836 +disable_so_lm3533_led_delay_set_fndecl_29984 lm3533_led_delay_set fndecl 0-2 29984 NULL
144837 +disable_so_rx_errors_rtnl_link_stats64_29988 rx_errors rtnl_link_stats64 0 29988 NULL
144838 +disable_so_fm10k_read_reg_fndecl_29989 fm10k_read_reg fndecl 0-2 29989 NULL
144839 +disable_so_timeout_jiffies_tifm_ms_29995 timeout_jiffies tifm_ms 0 29995 NULL nohasharray
144840 +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
144841 +disable_so_wait_on_bit_lock_fndecl_30009 wait_on_bit_lock fndecl 0 30009 NULL
144842 +disable_so_rx8025_get_clock_adjust_fndecl_30011 rx8025_get_clock_adjust fndecl 0 30011 NULL
144843 +disable_so_sem_ctime_sem_array_30014 sem_ctime sem_array 0 30014 NULL
144844 +disable_so_sleep_mask_bma180_part_info_30016 sleep_mask bma180_part_info 0 30016 NULL
144845 +disable_so_demod_address_zl10353_config_30017 demod_address zl10353_config 0 30017 NULL
144846 +disable_so_msr_amixer_desc_30027 msr amixer_desc 0 30027 NULL
144847 +disable_so_diolan_usb_transfer_fndecl_30033 diolan_usb_transfer fndecl 0 30033 NULL
144848 +disable_so_mlx4_get_slave_from_roce_gid_fndecl_30035 mlx4_get_slave_from_roce_gid fndecl 2 30035 NULL
144849 +disable_so_or51211_read_signal_strength_fndecl_30044 or51211_read_signal_strength fndecl 0 30044 NULL
144850 +disable_so_panel_power_up_delay_intel_dp_30048 panel_power_up_delay intel_dp 0 30048 NULL
144851 +disable_so_bit_bmove_fndecl_30057 bit_bmove fndecl 3-4-5-6-7-8 30057 NULL
144852 +disable_so_posix_cpu_clock_getres_fndecl_30065 posix_cpu_clock_getres fndecl 1 30065 NULL
144853 +disable_so_ktime_divns_fndecl_30067 ktime_divns fndecl 0-2 30067 NULL
144854 +disable_so_vsync_offset_hi_oaktrail_timing_info_30079 vsync_offset_hi oaktrail_timing_info 0 30079 NULL
144855 +disable_so_msr_host_kernel_gs_base_vcpu_vmx_30082 msr_host_kernel_gs_base vcpu_vmx 0 30082 NULL
144856 +disable_so_r6d_val_fc2580_freq_regs_30084 r6d_val fc2580_freq_regs 0 30084 NULL
144857 +disable_so_qlcnic_pci_get_crb_addr_2M_fndecl_30093 qlcnic_pci_get_crb_addr_2M fndecl 2 30093 NULL
144858 +disable_so_btrfs_commit_inode_delayed_items_fndecl_30109 btrfs_commit_inode_delayed_items fndecl 0 30109 NULL
144859 +disable_so_usec_delay_e1000_mbx_info_30132 usec_delay e1000_mbx_info 0 30132 NULL
144860 +disable_so_inet6_rtm_getaddr_fndecl_30136 inet6_rtm_getaddr fndecl 0 30136 NULL
144861 +disable_so_busaddr_reply_queue_buffer_30140 busaddr reply_queue_buffer 0 30140 NULL
144862 +disable_so_show_pwm_auto_spinup_time_fndecl_30149 show_pwm_auto_spinup_time fndecl 0 30149 NULL
144863 +disable_so_addr_rds_iovec_30161 addr rds_iovec 0 30161 NULL
144864 +disable_so___nlm_hash_addr4_fndecl_30164 __nlm_hash_addr4 fndecl 0 30164 NULL
144865 +disable_so_ctime_cs_msdos_dir_entry_30167 ctime_cs msdos_dir_entry 0 30167 NULL
144866 +disable_so_next_otg_timer_ci_hdrc_30174 next_otg_timer ci_hdrc 0 30174 NULL
144867 +disable_so_select_addr_qla82xx_md_entry_mux_30183 select_addr qla82xx_md_entry_mux 0 30183 NULL
144868 +disable_so_qi_itimelimit_xfs_quotainfo_30196 qi_itimelimit xfs_quotainfo 0 30196 NULL
144869 +disable_so_iowrite32_fndecl_30197 iowrite32 fndecl 1 30197 NULL
144870 +disable_so_hash_ipportip6_expire_fndecl_30205 hash_ipportip6_expire fndecl 4 30205 NULL
144871 +disable_so_argument_acpi_signal_fatal_info_30208 argument acpi_signal_fatal_info 0 30208 NULL
144872 +disable_so_btree_write_cache_pages_fndecl_30231 btree_write_cache_pages fndecl 0 30231 NULL
144873 +disable_so_clock_audioformat_30236 clock audioformat 0 30236 NULL
144874 +disable_so_to_retries_rpc_timeout_30265 to_retries rpc_timeout 0 30265 NULL
144875 +disable_so_last_moder_jiffies_mlx4_en_priv_30269 last_moder_jiffies mlx4_en_priv 0 30269 NULL nohasharray
144876 +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
144877 +disable_so_start_empty_time_cfqg_stats_30276 start_empty_time cfqg_stats 0 30276 NULL nohasharray
144878 +disable_so_i2c_addr_dib7000m_state_30276 i2c_addr dib7000m_state 0 30276 &disable_so_start_empty_time_cfqg_stats_30276
144879 +disable_so_ext_phy_addr_amd8111e_priv_30286 ext_phy_addr amd8111e_priv 0 30286 NULL
144880 +disable_so___account_cfs_rq_runtime_fndecl_30291 __account_cfs_rq_runtime fndecl 2 30291 NULL
144881 +disable_so_snd_pcm_delay_fndecl_30298 snd_pcm_delay fndecl 0 30298 NULL
144882 +disable_so_lpfc_cr_delay_store_fndecl_30310 lpfc_cr_delay_store fndecl 0 30310 NULL
144883 +disable_so_uartlite_outbe32_fndecl_30324 uartlite_outbe32 fndecl 1 30324 NULL
144884 +disable_so_intel_runtime_resume_fndecl_30334 intel_runtime_resume fndecl 0 30334 NULL
144885 +disable_so_hv_tsc_page_kvm_arch_30336 hv_tsc_page kvm_arch 0 30336 NULL
144886 +disable_so_snprintf_int_array_fndecl_30344 snprintf_int_array fndecl 2 30344 NULL
144887 +disable_so___hw_addr_sync_one_fndecl_30350 __hw_addr_sync_one fndecl 0-3 30350 NULL
144888 +disable_so_tuner_addr_em28xx_board_30367 tuner_addr em28xx_board 0 30367 NULL
144889 +disable_so_stat_params_addr_hi_fcoe_kwqe_stat_30370 stat_params_addr_hi fcoe_kwqe_stat 0 30370 NULL
144890 +disable_so_tv_hsync_delay2_nv04_crtc_reg_30375 tv_hsync_delay2 nv04_crtc_reg 0 30375 NULL
144891 +disable_so_wlc_phy_table_addr_fndecl_30378 wlc_phy_table_addr fndecl 2-3-4-5-6 30378 NULL
144892 +disable_so_rsa_setkey_fndecl_30386 rsa_setkey fndecl 3 30386 NULL
144893 +disable_so_bcma_pmu_get_alp_clock_fndecl_30397 bcma_pmu_get_alp_clock fndecl 0 30397 NULL
144894 +disable_so_timeout_nft_set_30398 timeout nft_set 0 30398 NULL
144895 +disable_so_cm_create_timewait_info_fndecl_30403 cm_create_timewait_info fndecl 1 30403 NULL
144896 +disable_so_start_time_bfa_diag_dport_result_s_30404 start_time bfa_diag_dport_result_s 0 30404 NULL
144897 +disable_so_fw_schedule_bm_work_fndecl_30422 fw_schedule_bm_work fndecl 2 30422 NULL
144898 +disable_so_xs_get_random_port_fndecl_30424 xs_get_random_port fndecl 0 30424 NULL
144899 +disable_so_ba0_addr_snd_cs46xx_30426 ba0_addr snd_cs46xx 0 30426 NULL
144900 +disable_so_rx_interframe_timeout_wil6210_priv_30430 rx_interframe_timeout wil6210_priv 0 30430 NULL
144901 +disable_so_xfs_uuid_mount_fndecl_30439 xfs_uuid_mount fndecl 0 30439 NULL nohasharray
144902 +disable_so_avtab_hash_fndecl_30439 avtab_hash fndecl 0-2 30439 &disable_so_xfs_uuid_mount_fndecl_30439
144903 +disable_so_snd_seq_queue_timer_close_fndecl_30450 snd_seq_queue_timer_close fndecl 1 30450 NULL nohasharray
144904 +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
144905 +disable_so_powerdown_delay_divider_sta350_platform_data_30459 powerdown_delay_divider sta350_platform_data 0 30459 NULL nohasharray
144906 +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
144907 +disable_so__regulator_get_enable_time_fndecl_30467 _regulator_get_enable_time fndecl 0 30467 NULL
144908 +disable_so_hpet_set_alarm_time_fndecl_30469 hpet_set_alarm_time fndecl 3-2-1 30469 NULL
144909 +disable_so_ctime_nsec_ubifs_ino_node_30480 ctime_nsec ubifs_ino_node 0 30480 NULL
144910 +disable_so_ocfb_writereg_fndecl_30484 ocfb_writereg fndecl 3 30484 NULL
144911 +disable_so_i2c_smbus_read_word_data_fndecl_30505 i2c_smbus_read_word_data fndecl 0-2 30505 NULL nohasharray
144912 +disable_so_r13_kvm_regs_30505 r13 kvm_regs 0 30505 &disable_so_i2c_smbus_read_word_data_fndecl_30505
144913 +disable_so_cb_gsc_addr_30507 cb gsc_addr 0 30507 NULL
144914 +disable_so_freq_mwifiex_chan_freq_power_30518 freq mwifiex_chan_freq_power 0 30518 NULL
144915 +disable_so_fflp_hash_clear_fndecl_30528 fflp_hash_clear fndecl 0 30528 NULL
144916 +disable_so_time_stamp_ixgb_buffer_30530 time_stamp ixgb_buffer 0 30530 NULL
144917 +disable_so_lbs_sleepparams_read_fndecl_30539 lbs_sleepparams_read fndecl 3-0 30539 NULL
144918 +disable_so_extract_freq_fndecl_30555 extract_freq fndecl 0-1 30555 NULL
144919 +disable_so_ndiv_int_pmu1_plltab_entry_30559 ndiv_int pmu1_plltab_entry 0 30559 NULL
144920 +disable_so_u1_timeout_store_fndecl_30569 u1_timeout_store fndecl 0-4 30569 NULL
144921 +disable_so_queue_working_time_show_fndecl_30574 queue_working_time_show fndecl 0 30574 NULL
144922 +disable_so_addr_atiixp_30579 addr atiixp 0 30579 NULL
144923 +disable_so_c67x00_ll_write_mem_le16_fndecl_30584 c67x00_ll_write_mem_le16 fndecl 2-4 30584 NULL
144924 +disable_so_demod_address_atbm8830_config_30586 demod_address atbm8830_config 0 30586 NULL
144925 +disable_so_crypto_hash_digest_fndecl_30590 crypto_hash_digest fndecl 0-3 30590 NULL
144926 +disable_so_addr_filter__MGSL_PARAMS_30592 addr_filter _MGSL_PARAMS 0 30592 NULL
144927 +disable_so_clock_khz_dib0070_config_30609 clock_khz dib0070_config 0 30609 NULL
144928 +disable_so_sha1_mb_final_fndecl_30610 sha1_mb_final fndecl 0 30610 NULL
144929 +disable_so_tw_rcv_nxt_tcp_timewait_sock_30612 tw_rcv_nxt tcp_timewait_sock 0 30612 NULL
144930 +disable_so_xtal_freq_stb0899_config_30613 xtal_freq stb0899_config 0 30613 NULL
144931 +disable_so_di_ctime_qnx6_inode_entry_30614 di_ctime qnx6_inode_entry 0 30614 NULL
144932 +disable_so_start_time_lpfc_scsi_buf_30621 start_time lpfc_scsi_buf 0 30621 NULL
144933 +disable_so_xfs_btree_log_keys_fndecl_30625 xfs_btree_log_keys fndecl 3-4 30625 NULL
144934 +disable_so_pcpu_chunk_addr_fndecl_30628 pcpu_chunk_addr fndecl 0-2-3 30628 NULL
144935 +disable_so_day_timestamp_30633 day timestamp 0 30633 NULL
144936 +disable_so_rds_cong_from_addr_fndecl_30634 rds_cong_from_addr fndecl 1 30634 NULL
144937 +disable_so_tx_dma_addr_smsc9420_pdata_30649 tx_dma_addr smsc9420_pdata 0 30649 NULL
144938 +disable_so_xact_addr_filt_port_info_30664 xact_addr_filt port_info 0 30664 NULL
144939 +disable_so_slot_time_rtl8180_priv_30669 slot_time rtl8180_priv 0 30669 NULL
144940 +disable_so_store_guid_fndecl_30675 store_guid fndecl 0 30675 NULL
144941 +disable_so_input_addr_to_csrow_fndecl_30677 input_addr_to_csrow fndecl 0-2 30677 NULL
144942 +disable_so_sq_read_base_addr_a1_btmrvl_sdio_card_reg_30692 sq_read_base_addr_a1 btmrvl_sdio_card_reg 0 30692 NULL
144943 +disable_so_fq_codel_hash_fndecl_30698 fq_codel_hash fndecl 0 30698 NULL
144944 +disable_so_btrfs_add_delayed_extent_op_fndecl_30699 btrfs_add_delayed_extent_op fndecl 0-3-4 30699 NULL
144945 +disable_so_enabled_hrtimer_events_fotg210_hcd_30705 enabled_hrtimer_events fotg210_hcd 0 30705 NULL
144946 +disable_so_shift_sm501_clock_30710 shift sm501_clock 0 30710 NULL
144947 +disable_so_tov_in_jiffies_tpacket_kbdq_core_30716 tov_in_jiffies tpacket_kbdq_core 0 30716 NULL nohasharray
144948 +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
144949 +disable_so_fill_addr_fndecl_30730 fill_addr fndecl 0-3-4-6 30730 NULL
144950 +disable_so_policy_hash_bysel_fndecl_30767 policy_hash_bysel fndecl 3 30767 NULL
144951 +disable_so_flags_to_set_btrfs_delayed_extent_op_30771 flags_to_set btrfs_delayed_extent_op 0 30771 NULL
144952 +disable_so_blk_mq_alloc_bitmap_fndecl_30774 blk_mq_alloc_bitmap fndecl 2 30774 NULL
144953 +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
144954 +disable_so_pm_runtime_get_fndecl_30787 pm_runtime_get fndecl 0 30787 NULL
144955 +disable_so_dln2_spi_runtime_suspend_fndecl_30789 dln2_spi_runtime_suspend fndecl 0 30789 NULL
144956 +disable_so_rq_page_table_addr_hi_iscsi_kwqe_conn_offload2_30790 rq_page_table_addr_hi iscsi_kwqe_conn_offload2 0 30790 NULL
144957 +disable_so_crypto_authenc_esn_decrypt_fndecl_30793 crypto_authenc_esn_decrypt fndecl 0 30793 NULL
144958 +disable_so_brcmf_cfg80211_wait_vif_event_timeout_fndecl_30794 brcmf_cfg80211_wait_vif_event_timeout fndecl 3-0 30794 NULL
144959 +disable_so_sctp_getsockopt_nodelay_fndecl_30795 sctp_getsockopt_nodelay fndecl 0 30795 NULL nohasharray
144960 +disable_so_sll_pkttype_sockaddr_ll_30795 sll_pkttype sockaddr_ll 0 30795 &disable_so_sctp_getsockopt_nodelay_fndecl_30795
144961 +disable_so_txfunaddr_musb_csr_regs_30797 txfunaddr musb_csr_regs 0 30797 NULL
144962 +disable_so_hash_phys_wd719x_30798 hash_phys wd719x 0 30798 NULL
144963 +disable_so_io_base_address_info_30800 io_base address_info 0 30800 NULL
144964 +disable_so_dummy_buffer_addr_lo_iscsi_kwqe_init1_30804 dummy_buffer_addr_lo iscsi_kwqe_init1 0 30804 NULL
144965 +disable_so_root_btrfs_delayed_tree_ref_30811 root btrfs_delayed_tree_ref 0 30811 NULL nohasharray
144966 +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
144967 +disable_so_mmc_test_random_write_perf_fndecl_30814 mmc_test_random_write_perf fndecl 0 30814 NULL
144968 +disable_so_block_num_ib_sa_guidinfo_rec_30816 block_num ib_sa_guidinfo_rec 0 30816 NULL
144969 +disable_so_decode_attr_time_metadata_fndecl_30823 decode_attr_time_metadata fndecl 0 30823 NULL nohasharray
144970 +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
144971 +disable_so_first_frag_time_ieee80211_fragment_entry_30835 first_frag_time ieee80211_fragment_entry 0 30835 NULL nohasharray
144972 +disable_so_ccp_crypto_success_fndecl_30835 ccp_crypto_success fndecl 1 30835 &disable_so_first_frag_time_ieee80211_fragment_entry_30835 nohasharray
144973 +disable_so_recent_entry_hash4_fndecl_30835 recent_entry_hash4 fndecl 0 30835 &disable_so_ccp_crypto_success_fndecl_30835
144974 +disable_so_rp0_freq_intel_gen6_power_mgmt_30837 rp0_freq intel_gen6_power_mgmt 0 30837 NULL
144975 +disable_so_dm_btree_walk_fndecl_30840 dm_btree_walk fndecl 0-2 30840 NULL
144976 +disable_so_hid_descriptor_address_i2c_hid_platform_data_30846 hid_descriptor_address i2c_hid_platform_data 0 30846 NULL
144977 +disable_so_address_acpi_mcfg_allocation_30855 address acpi_mcfg_allocation 0 30855 NULL
144978 +disable_so_hpfs_truncate_btree_fndecl_30857 hpfs_truncate_btree fndecl 2-4 30857 NULL
144979 +disable_so_timestamp_transaction_30860 timestamp transaction 0 30860 NULL
144980 +disable_so_crypto_pcbc_encrypt_inplace_fndecl_30862 crypto_pcbc_encrypt_inplace fndecl 0 30862 NULL
144981 +disable_so_part_time_mmc_ext_csd_30871 part_time mmc_ext_csd 0 30871 NULL
144982 +disable_so_vpd_paddr_high_lpfc_mbx_read_rev_30896 vpd_paddr_high lpfc_mbx_read_rev 0 30896 NULL
144983 +disable_so_addr_nvkm_fifo_chan_30902 addr nvkm_fifo_chan 0 30902 NULL
144984 +disable_so_crypto_register_algs_fndecl_30905 crypto_register_algs fndecl 0 30905 NULL nohasharray
144985 +disable_so_dhash_entries_vardecl_dcache_c_30905 dhash_entries vardecl_dcache.c 0 30905 &disable_so_crypto_register_algs_fndecl_30905
144986 +disable_so_bank_base_capture_addr_snd_ymfpci_30915 bank_base_capture_addr snd_ymfpci 0 30915 NULL
144987 +disable_so_t2_hash_tbl_addr_hi_fcoe_kwqe_init2_30918 t2_hash_tbl_addr_hi fcoe_kwqe_init2 0 30918 NULL nohasharray
144988 +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
144989 +disable_so_cpufreq_set_fndecl_30921 cpufreq_set fndecl 2 30921 NULL
144990 +disable_so_phys_addr_sge_fl_30927 phys_addr sge_fl 0 30927 NULL
144991 +disable_so_brcms_c_calc_ack_time_fndecl_30936 brcms_c_calc_ack_time fndecl 0-2 30936 NULL
144992 +disable_so_limit_gma_clock_funcs_30938 limit gma_clock_funcs 2 30938 NULL nohasharray
144993 +disable_so_xenbus_printf_fndecl_30938 xenbus_printf fndecl 0 30938 &disable_so_limit_gma_clock_funcs_30938
144994 +disable_so_qlcnic_decode_crb_addr_fndecl_30939 qlcnic_decode_crb_addr fndecl 0-1 30939 NULL
144995 +disable_so_last_sleep_jiffies_rtl_ps_ctl_30947 last_sleep_jiffies rtl_ps_ctl 0 30947 NULL nohasharray
144996 +disable_so___virtio64_to_cpu_fndecl_30947 __virtio64_to_cpu fndecl 0 30947 &disable_so_last_sleep_jiffies_rtl_ps_ctl_30947
144997 +disable_so_do_one_ahash_op_fndecl_30974 do_one_ahash_op fndecl 0-2 30974 NULL
144998 +disable_so_dev_bus_addr_gnttab_map_grant_ref_30975 dev_bus_addr gnttab_map_grant_ref 0 30975 NULL
144999 +disable_so_sctp_getsockopt_delayed_ack_fndecl_30979 sctp_getsockopt_delayed_ack fndecl 2-0 30979 NULL
145000 +disable_so_mclk_div_cfb_info_30983 mclk_div cfb_info 0 30983 NULL
145001 +disable_so_HYPERVISOR_update_va_mapping_fndecl_30985 HYPERVISOR_update_va_mapping fndecl 1 30985 NULL
145002 +disable_so_xfrm_addr_any_fndecl_30992 xfrm_addr_any fndecl 2 30992 NULL
145003 +disable_so_cyapa_gen5_deep_sleep_fndecl_30993 cyapa_gen5_deep_sleep fndecl 0 30993 NULL
145004 +disable_so_addr_unlock1_cfi_private_30996 addr_unlock1 cfi_private 0 30996 NULL
145005 +disable_so_adc_cell_ti_tscadc_dev_31010 adc_cell ti_tscadc_dev 0 31010 NULL
145006 +disable_so_vpe_runtime_get_fndecl_31015 vpe_runtime_get fndecl 0 31015 NULL
145007 +disable_so_crypto_cts_module_init_fndecl_31019 crypto_cts_module_init fndecl 0 31019 NULL
145008 +disable_so_show_fan_stop_time_fndecl_31023 show_fan_stop_time fndecl 0 31023 NULL
145009 +disable_so_addr_bnx2_fw_file_section_31025 addr bnx2_fw_file_section 0 31025 NULL
145010 +disable_so_seg_addr_xhci_erst_entry_31037 seg_addr xhci_erst_entry 0 31037 NULL
145011 +disable_so_fb_get_hblank_by_hfreq_fndecl_31039 fb_get_hblank_by_hfreq fndecl 0-1-2 31039 NULL
145012 +disable_so_addr_hif_scatter_req_31042 addr hif_scatter_req 0 31042 NULL
145013 +disable_so_sg_page_iter_dma_address_fndecl_31047 sg_page_iter_dma_address fndecl 0 31047 NULL
145014 +disable_so_btrfsic_block_hashtable_lookup_fndecl_31074 btrfsic_block_hashtable_lookup fndecl 2 31074 NULL
145015 +disable_so_tm6000_set_reg_fndecl_31090 tm6000_set_reg fndecl 0-3-4 31090 NULL
145016 +disable_so_sense_buf_phys_addr_lo_megasas_io_frame_31098 sense_buf_phys_addr_lo megasas_io_frame 0 31098 NULL
145017 +disable_so_batadv_iv_ogm_emit_send_time_fndecl_31100 batadv_iv_ogm_emit_send_time fndecl 0 31100 NULL
145018 +disable_so_pcf8563_rtc_set_time_fndecl_31101 pcf8563_rtc_set_time fndecl 0 31101 NULL
145019 +disable_so_s_extPosition_udf_bitmap_31104 s_extPosition udf_bitmap 0 31104 NULL
145020 +disable_so_base_io_addr__hp_host_info_31105 base_io_addr _hp_host_info 0 31105 NULL
145021 +disable_so_tsi721_omsg_interrupt_disable_fndecl_31108 tsi721_omsg_interrupt_disable fndecl 3-2 31108 NULL
145022 +disable_so_ac_etime_acct_v3_31115 ac_etime acct_v3 0 31115 NULL
145023 +disable_so_io_bitmap_a_vmcs12_31120 io_bitmap_a vmcs12 0 31120 NULL
145024 +disable_so_vddci_radeon_clock_and_voltage_limits_31124 vddci radeon_clock_and_voltage_limits 0 31124 NULL
145025 +disable_so_format_snd_pcm_runtime_31130 format snd_pcm_runtime 0 31130 NULL
145026 +disable_so_ds3232_set_time_fndecl_31132 ds3232_set_time fndecl 0 31132 NULL
145027 +disable_so_mlx4_bitmap_init_fndecl_31138 mlx4_bitmap_init fndecl 0-2-3-4-5 31138 NULL
145028 +disable_so_nfs4_xdr_dec_get_lease_time_fndecl_31141 nfs4_xdr_dec_get_lease_time fndecl 0 31141 NULL
145029 +disable_so_active_ata_timing_31146 active ata_timing 0 31146 NULL
145030 +disable_so_cpuidle_register_driver_fndecl_31155 cpuidle_register_driver fndecl 0 31155 NULL
145031 +disable_so_sha1_ssse3_mod_init_fndecl_31158 sha1_ssse3_mod_init fndecl 0 31158 NULL
145032 +disable_so_trust_timeout_wusbhc_31165 trust_timeout wusbhc 0 31165 NULL
145033 +disable_so___crypto_memneq_generic_fndecl_31174 __crypto_memneq_generic fndecl 3 31174 NULL
145034 +disable_so_hash_ipportip4_expire_fndecl_31188 hash_ipportip4_expire fndecl 4 31188 NULL
145035 +disable_so_timestamp_sniffed_purge_batadv_priv_nc_31190 timestamp_sniffed_purge batadv_priv_nc 0 31190 NULL
145036 +disable_so_i915_min_freq_get_fndecl_31193 i915_min_freq_get fndecl 0 31193 NULL
145037 +disable_so_max_scan_time_wmi_start_scan_arg_31206 max_scan_time wmi_start_scan_arg 0 31206 NULL nohasharray
145038 +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
145039 +disable_so_adis16136_read_frequency_fndecl_31213 adis16136_read_frequency fndecl 0 31213 NULL
145040 +disable_so_dce_v11_0_crtc_set_base_atomic_fndecl_31215 dce_v11_0_crtc_set_base_atomic fndecl 0 31215 NULL
145041 +disable_so_clock2alarm_fndecl_31223 clock2alarm fndecl 1 31223 NULL
145042 +disable_so_timeout_wait_bit_key_31247 timeout wait_bit_key 0 31247 NULL
145043 +disable_so_time_offset_fat_mount_options_31254 time_offset fat_mount_options 0 31254 NULL
145044 +disable_so_max3421_set_address_fndecl_31258 max3421_set_address fndecl 3 31258 NULL
145045 +disable_so_tick_gtod_sched_clock_data_31262 tick_gtod sched_clock_data 0 31262 NULL
145046 +disable_so_freq_usb_usbvision_31263 freq usb_usbvision 0 31263 NULL
145047 +disable_so_address_high_sbp2_target_31266 address_high sbp2_target 0 31266 NULL nohasharray
145048 +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
145049 +disable_so_rx8581_rtc_read_time_fndecl_31271 rx8581_rtc_read_time fndecl 0 31271 NULL
145050 +disable_so_address_acpi_madt_io_apic_31284 address acpi_madt_io_apic 0 31284 NULL
145051 +disable_so_qce_setup_regs_ahash_fndecl_31290 qce_setup_regs_ahash fndecl 0 31290 NULL
145052 +disable_so_freq_offset_khz_uhf_dib0070_config_31304 freq_offset_khz_uhf dib0070_config 0 31304 NULL
145053 +disable_so_dmaaddr_lanai_buffer_31308 dmaaddr lanai_buffer 0 31308 NULL
145054 +disable_so_selinux_mmap_addr_fndecl_31313 selinux_mmap_addr fndecl 0 31313 NULL
145055 +disable_so_wt_timeout_st21nfcb_se_info_31334 wt_timeout st21nfcb_se_info 0 31334 NULL
145056 +disable_so_baseaddr_h_mvumi_sgl_31335 baseaddr_h mvumi_sgl 0 31335 NULL
145057 +disable_so_mmc_send_relative_addr_fndecl_31338 mmc_send_relative_addr fndecl 0 31338 NULL nohasharray
145058 +disable_so_ufs_bitmap_search_fndecl_31338 ufs_bitmap_search fndecl 0-3-4 31338 &disable_so_mmc_send_relative_addr_fndecl_31338 nohasharray
145059 +disable_so_cur_tsc_offset_kvm_arch_31338 cur_tsc_offset kvm_arch 0 31338 &disable_so_ufs_bitmap_search_fndecl_31338
145060 +disable_so_xfs_btree_check_lptr_fndecl_31339 xfs_btree_check_lptr fndecl 0 31339 NULL
145061 +disable_so_dynamic_ps_timeout_read_fndecl_31341 dynamic_ps_timeout_read fndecl 3-0 31341 NULL
145062 +disable_so_ret_ccp_crypto_cmd_31344 ret ccp_crypto_cmd 0 31344 NULL
145063 +disable_so_physical_mem_addr_wl1251_31345 physical_mem_addr wl1251 0 31345 NULL
145064 +disable_so_schedule_work_on_fndecl_31361 schedule_work_on fndecl 1 31361 NULL
145065 +disable_so_es_tss_segment_32_31367 es tss_segment_32 0 31367 NULL
145066 +disable_so_link_schedule_user_fndecl_31379 link_schedule_user fndecl 0 31379 NULL
145067 +disable_so_vsock_addr_cast_fndecl_31386 vsock_addr_cast fndecl 2 31386 NULL
145068 +disable_so_debug_dma_sync_single_for_cpu_fndecl_31387 debug_dma_sync_single_for_cpu fndecl 3-2 31387 NULL
145069 +disable_so_num_bytes_btrfs_delayed_ref_node_31390 num_bytes btrfs_delayed_ref_node 0 31390 NULL
145070 +disable_so_clockevents_config_fndecl_31391 clockevents_config fndecl 2 31391 NULL nohasharray
145071 +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
145072 +disable_so_kstrtol_from_user_fndecl_31403 kstrtol_from_user fndecl 0-2 31403 NULL
145073 +disable_so_req_timeout_ppp_31406 req_timeout ppp 0 31406 NULL
145074 +disable_so_recvsignalpower_rtl_stats_31407 recvsignalpower rtl_stats 0 31407 NULL
145075 +disable_so_gr_log_signal_fndecl_31408 gr_log_signal fndecl 1 31408 NULL
145076 +disable_so_round_jiffies_up_relative_fndecl_31409 round_jiffies_up_relative fndecl 1-0 31409 NULL
145077 +disable_so_nr_cs5535_mfgpt_timer_31410 nr cs5535_mfgpt_timer 0 31410 NULL
145078 +disable_so_af9005_fe_read_signal_strength_fndecl_31416 af9005_fe_read_signal_strength fndecl 0 31416 NULL nohasharray
145079 +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
145080 +disable_so_usnic_uiom_interval_tree_subtree_search_fndecl_31422 usnic_uiom_interval_tree_subtree_search fndecl 2-3 31422 NULL nohasharray
145081 +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
145082 +disable_so_rxrpc_max_call_lifetime_vardecl_31433 rxrpc_max_call_lifetime vardecl 0 31433 NULL nohasharray
145083 +disable_so_di_gid_logfs_disk_inode_31433 di_gid logfs_disk_inode 0 31433 &disable_so_rxrpc_max_call_lifetime_vardecl_31433
145084 +disable_so_ds1374_wdt_settimeout_fndecl_31434 ds1374_wdt_settimeout fndecl 1-0 31434 NULL
145085 +disable_so_tei_sockaddr_mISDN_31438 tei sockaddr_mISDN 0 31438 NULL
145086 +disable_so_bs_sleepduration_ath9k_beacon_state_31443 bs_sleepduration ath9k_beacon_state 0 31443 NULL
145087 +disable_so_pci_bus_write_config_word_fndecl_31447 pci_bus_write_config_word fndecl 0-2-3-4 31447 NULL
145088 +disable_so_cra_ctxsize_crypto_alg_31451 cra_ctxsize crypto_alg 0 31451 NULL
145089 +disable_so_dmable_fw_paddr_sst_fw_31454 dmable_fw_paddr sst_fw 0 31454 NULL
145090 +disable_so_nsec_btrfs_timespec_31463 nsec btrfs_timespec 0 31463 NULL nohasharray
145091 +disable_so_set_timeout_fndecl_31463 set_timeout fndecl 2-0 31463 &disable_so_nsec_btrfs_timespec_31463
145092 +disable_so_ima_calc_field_array_hash_tfm_fndecl_31467 ima_calc_field_array_hash_tfm fndecl 0-3 31467 NULL
145093 +disable_so_bond_eth_hash_fndecl_31472 bond_eth_hash fndecl 0 31472 NULL
145094 +disable_so_task_setscheduler_security_operations_31479 task_setscheduler security_operations 0 31479 NULL
145095 +disable_so_cs_tss_segment_32_31480 cs tss_segment_32 0 31480 NULL
145096 +disable_so_intr_gen_timer_thresh_ath_hw_31491 intr_gen_timer_thresh ath_hw 0 31491 NULL nohasharray
145097 +disable_so_nilfs_btree_find_near_fndecl_31491 nilfs_btree_find_near fndecl 0 31491 &disable_so_intr_gen_timer_thresh_ath_hw_31491
145098 +disable_so_sta_last_ack_signal_read_fndecl_31492 sta_last_ack_signal_read fndecl 3 31492 NULL
145099 +disable_so___uwb_dev_addr_assigned_fndecl_31493 __uwb_dev_addr_assigned fndecl 0 31493 NULL
145100 +disable_so_uuid_show_fndecl_31494 uuid_show fndecl 0 31494 NULL
145101 +disable_so_elan_sleep_fndecl_31502 elan_sleep fndecl 0 31502 NULL
145102 +disable_so_setkey_crypto_aead_31507 setkey crypto_aead 0-3 31507 NULL
145103 +disable_so_ebitmap_netlbl_import_fndecl_31508 ebitmap_netlbl_import fndecl 0 31508 NULL
145104 +disable_so_ccp_aes_rfc3686_decrypt_fndecl_31513 ccp_aes_rfc3686_decrypt fndecl 0 31513 NULL
145105 +disable_so_timeout_map_r8a66597_31517 timeout_map r8a66597 0 31517 NULL
145106 +disable_so_vga_switcheroo_runtime_resume_hdmi_audio_fndecl_31521 vga_switcheroo_runtime_resume_hdmi_audio fndecl 0 31521 NULL nohasharray
145107 +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
145108 +disable_so_hashbin_insert_fndecl_31527 hashbin_insert fndecl 3 31527 NULL
145109 +disable_so_reset_jiffies_fw_card_31535 reset_jiffies fw_card 0 31535 NULL
145110 +disable_so_addr_gk20a_instmem_priv_31544 addr gk20a_instmem_priv 0 31544 NULL
145111 +disable_so_vringh32_to_cpu_fndecl_31546 vringh32_to_cpu fndecl 0-2 31546 NULL
145112 +disable_so_qat_hash_alg_qat_alg_aead_ctx_31550 qat_hash_alg qat_alg_aead_ctx 0 31550 NULL
145113 +disable_so_timeout_move_vardecl_ch_c_31551 timeout_move vardecl_ch.c 0 31551 NULL
145114 +disable_so_iowrite8_rep_fndecl_31565 iowrite8_rep fndecl 3 31565 NULL
145115 +disable_so_omfs_hash_fndecl_31572 omfs_hash fndecl 0-3 31572 NULL
145116 +disable_so_ltc3589_set_ramp_delay_fndecl_31580 ltc3589_set_ramp_delay fndecl 0 31580 NULL
145117 +disable_so_wants_signal_fndecl_31583 wants_signal fndecl 1 31583 NULL
145118 +disable_so_set_sig_addr_fndecl_31588 set_sig_addr fndecl 4 31588 NULL
145119 +disable_so_udelay_i2c_algo_bit_data_31597 udelay i2c_algo_bit_data 0 31597 NULL
145120 +disable_so_wlapi_add_timer_fndecl_31598 wlapi_add_timer fndecl 2 31598 NULL
145121 +disable_so_gid_min_xt_owner_match_info_31604 gid_min xt_owner_match_info 0 31604 NULL
145122 +disable_so_mmap_addr_security_operations_31609 mmap_addr security_operations 0-1 31609 NULL
145123 +disable_so_cache_time_vardecl_battery_c_31620 cache_time vardecl_battery.c 0 31620 NULL
145124 +disable_so_idletimer_tg_checkentry_fndecl_31633 idletimer_tg_checkentry fndecl 0 31633 NULL
145125 +disable_so_sha256_ssse3_finup_fndecl_31637 sha256_ssse3_finup fndecl 3 31637 NULL
145126 +disable_so_f1x_translate_sysaddr_to_cs_fndecl_31647 f1x_translate_sysaddr_to_cs fndecl 0-2 31647 NULL
145127 +disable_so_partial_name_hash_fndecl_31651 partial_name_hash fndecl 0-1-2 31651 NULL
145128 +disable_so_edx_v86_regs_31655 edx v86_regs 0 31655 NULL
145129 +disable_so_kdb_printf_fndecl_31658 kdb_printf fndecl 0 31658 NULL
145130 +disable_so_voltage_response_time_radeon_dpm_31671 voltage_response_time radeon_dpm 0 31671 NULL
145131 +disable_so_ufshcd_pci_runtime_resume_fndecl_31682 ufshcd_pci_runtime_resume fndecl 0 31682 NULL
145132 +disable_so_trace_clock_jiffies_fndecl_31684 trace_clock_jiffies fndecl 0 31684 NULL
145133 +disable_so_crypto_rfc4543_crypt_fndecl_31691 crypto_rfc4543_crypt fndecl 0 31691 NULL
145134 +disable_so_qp_bitmap_ntb_transport_ctx_31692 qp_bitmap ntb_transport_ctx 0 31692 NULL
145135 +disable_so_mclk_radeon_clock_and_voltage_limits_31701 mclk radeon_clock_and_voltage_limits 0 31701 NULL
145136 +disable_so_hash_dev_block_bits_dm_verity_31709 hash_dev_block_bits dm_verity 0 31709 NULL
145137 +disable_so_crypto_gcm_init_crypt_fndecl_31718 crypto_gcm_init_crypt fndecl 2 31718 NULL
145138 +disable_so_addr_ahd_dma_seg_31719 addr ahd_dma_seg 0 31719 NULL
145139 +disable_so_rx_frame_ath_cycle_counters_31739 rx_frame ath_cycle_counters 0 31739 NULL
145140 +disable_so_nadc_aic32x4_rate_divs_31741 nadc aic32x4_rate_divs 0 31741 NULL
145141 +disable_so_gpu_addr_r600_ih_31749 gpu_addr r600_ih 0 31749 NULL
145142 +disable_so_acpi_ex_system_do_sleep_fndecl_31750 acpi_ex_system_do_sleep fndecl 0-1 31750 NULL
145143 +disable_so_bigdirindaddr_adfs_bigdirentry_31757 bigdirindaddr adfs_bigdirentry 0 31757 NULL
145144 +disable_so_vm_entry_msr_load_addr_vmcs12_31781 vm_entry_msr_load_addr vmcs12 0 31781 NULL
145145 +disable_so_qce_ahash_async_req_handle_fndecl_31785 qce_ahash_async_req_handle fndecl 0 31785 NULL
145146 +disable_so_ecryptfs_calculate_md5_fndecl_31787 ecryptfs_calculate_md5 fndecl 0-4 31787 NULL
145147 +disable_so_pixclock_fb_var_screeninfo_31790 pixclock fb_var_screeninfo 0 31790 NULL
145148 +disable_so_from_kgid_munged_fndecl_31791 from_kgid_munged fndecl 0 31791 NULL
145149 +disable_so_memsize_bitmap_ipmac_31792 memsize bitmap_ipmac 0 31792 NULL
145150 +disable_so_ctxsize_crypto_type_31795 ctxsize crypto_type 0 31795 NULL
145151 +disable_so_fpage_dma_addr_genwqe_sgl_31796 fpage_dma_addr genwqe_sgl 0 31796 NULL
145152 +disable_so_qib_hol_timeout_ms_vardecl_qib_tx_c_31801 qib_hol_timeout_ms vardecl_qib_tx.c 0 31801 NULL
145153 +disable_so_ping_timeout_iscsi_conn_31802 ping_timeout iscsi_conn 0 31802 NULL
145154 +disable_so_rpcauth_key_timeout_notify_fndecl_31805 rpcauth_key_timeout_notify fndecl 0 31805 NULL
145155 +disable_so_snd_timer_open_fndecl_31807 snd_timer_open fndecl 4 31807 NULL
145156 +disable_so_it_overrun_last_k_itimer_31814 it_overrun_last k_itimer 0 31814 NULL
145157 +disable_so_mapaddr_rocker_dma_ring_info_31819 mapaddr rocker_dma_ring_info 0 31819 NULL
145158 +disable_so_disarm_req_delay_fndecl_31821 disarm_req_delay fndecl 0 31821 NULL
145159 +disable_so_bus_addr_mvumi_res_31827 bus_addr mvumi_res 0 31827 NULL nohasharray
145160 +disable_so_dev_sas_addr_mvs_phy_31827 dev_sas_addr mvs_phy 0 31827 &disable_so_bus_addr_mvumi_res_31827 nohasharray
145161 +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
145162 +disable_so_lzo1x_decompress_safe_fndecl_31834 lzo1x_decompress_safe fndecl 2 31834 NULL
145163 +disable_so_spte_is_bit_cleared_fndecl_31843 spte_is_bit_cleared fndecl 2-3 31843 NULL
145164 +disable_so_mclk_radeon_pm_clock_info_31848 mclk radeon_pm_clock_info 0 31848 NULL
145165 +disable_so_timer_expires_wakeup_source_31849 timer_expires wakeup_source 0 31849 NULL
145166 +disable_so_si_populate_memory_timing_parameters_fndecl_31852 si_populate_memory_timing_parameters fndecl 0 31852 NULL
145167 +disable_so_offset_timex_31854 offset timex 0 31854 NULL
145168 +disable_so_tuner_addr_tvcard_31862 tuner_addr tvcard 0 31862 NULL
145169 +disable_so_mask_and_set_register_interruptible_fndecl_31871 mask_and_set_register_interruptible fndecl 0 31871 NULL
145170 +disable_so_generic_set_freq_fndecl_31881 generic_set_freq fndecl 0-2-3 31881 NULL
145171 +disable_so_quota_iwl_time_quota_data_31890 quota iwl_time_quota_data 0 31890 NULL
145172 +disable_so_timer_set_at_tlan_priv_31902 timer_set_at tlan_priv 0 31902 NULL
145173 +disable_so_update_time_ds2760_device_info_31906 update_time ds2760_device_info 0 31906 NULL
145174 +disable_so_qlcnic_83xx_wrt_reg_indirect_fndecl_31907 qlcnic_83xx_wrt_reg_indirect fndecl 2-3 31907 NULL
145175 +disable_so_nmi_timer_setup_fndecl_31908 nmi_timer_setup fndecl 0 31908 NULL
145176 +disable_so_period_size_atmel_runtime_data_31909 period_size atmel_runtime_data 0 31909 NULL
145177 +disable_so_spi_pioavailaddr_qib_base_info_31911 spi_pioavailaddr qib_base_info 0 31911 NULL
145178 +disable_so_err_msr_info_31913 err msr_info 0 31913 NULL
145179 +disable_so_pcan_usb_fd_set_clock_domain_fndecl_31920 pcan_usb_fd_set_clock_domain fndecl 0 31920 NULL
145180 +disable_so_i_ipmi_set_timeout_fndecl_31922 i_ipmi_set_timeout fndecl 0 31922 NULL
145181 +disable_so_tw_ts_offset_tcp_timewait_sock_31933 tw_ts_offset tcp_timewait_sock 0 31933 NULL
145182 +disable_so_shash_setkey_unaligned_fndecl_31935 shash_setkey_unaligned fndecl 3 31935 NULL
145183 +disable_so_kempld_wdt_get_timeout_fndecl_31937 kempld_wdt_get_timeout fndecl 0 31937 NULL
145184 +disable_so_addr___mux_31940 addr __mux 0 31940 NULL
145185 +disable_so_clk_divider_bestdiv_fndecl_31941 clk_divider_bestdiv fndecl 2-0-5 31941 NULL
145186 +disable_so_bm_words_drbd_bitmap_31943 bm_words drbd_bitmap 0 31943 NULL
145187 +disable_so_timeout_show_fndecl_31957 timeout_show fndecl 0 31957 NULL
145188 +disable_so_snd_hdsp_info_system_clock_mode_fndecl_31974 snd_hdsp_info_system_clock_mode fndecl 0 31974 NULL
145189 +disable_so_time_wrap_offset_vivid_dev_31985 time_wrap_offset vivid_dev 0 31985 NULL
145190 +disable_so_addr_iwl_fw_dbg_reg_op_31986 addr iwl_fw_dbg_reg_op 0 31986 NULL
145191 +disable_so_xclk_ref_div_pll_ct_31987 xclk_ref_div pll_ct 0 31987 NULL
145192 +disable_so_rd32_nvkm_ofuncs_31990 rd32 nvkm_ofuncs 0-2 31990 NULL
145193 +disable_so_addr_sis5595_data_32006 addr sis5595_data 0 32006 NULL
145194 +disable_so_demod_address_cx22702_config_32010 demod_address cx22702_config 0 32010 NULL
145195 +disable_so_hashlimit_init_dst_fndecl_32011 hashlimit_init_dst fndecl 4 32011 NULL
145196 +disable_so_cx24113_set_frequency_fndecl_32013 cx24113_set_frequency fndecl 2 32013 NULL
145197 +disable_so_bq2415x_sysfs_set_timer_fndecl_32020 bq2415x_sysfs_set_timer fndecl 0-4 32020 NULL
145198 +disable_so___find_rev_next_zero_bit_fndecl_32028 __find_rev_next_zero_bit fndecl 0-2-3 32028 NULL
145199 +disable_so_ahd_outb_fndecl_32029 ahd_outb fndecl 2-3 32029 NULL
145200 +disable_so_pfn_to_mfn_frame_list_list_arch_shared_info_32030 pfn_to_mfn_frame_list_list arch_shared_info 0 32030 NULL
145201 +disable_so_viafb_set_vclock_fndecl_32033 viafb_set_vclock fndecl 1 32033 NULL
145202 +disable_so_paddr_csio_dma_buf_32035 paddr csio_dma_buf 0 32035 NULL
145203 +disable_so_tw_ts_recent_stamp_tcp_timewait_sock_32042 tw_ts_recent_stamp tcp_timewait_sock 0 32042 NULL
145204 +disable_so_rangetr_hash_fndecl_32045 rangetr_hash fndecl 0 32045 NULL
145205 +disable_so_vsyn_off_hdmi_timings_32055 vsyn_off hdmi_timings 0 32055 NULL
145206 +disable_so_fnic_dev_mac_addr_fndecl_32057 fnic_dev_mac_addr fndecl 0 32057 NULL nohasharray
145207 +disable_so_s921_read_signal_strength_fndecl_32057 s921_read_signal_strength fndecl 0 32057 &disable_so_fnic_dev_mac_addr_fndecl_32057
145208 +disable_so_iscsit_ta_login_timeout_fndecl_32061 iscsit_ta_login_timeout fndecl 0 32061 NULL
145209 +disable_so_btrfs_delayed_ref_init_fndecl_32064 btrfs_delayed_ref_init fndecl 0 32064 NULL
145210 +disable_so_clk_register_divider_fndecl_32066 clk_register_divider fndecl 7-6 32066 NULL
145211 +disable_so_compat_sys_timerfd_settime_fndecl_32068 compat_sys_timerfd_settime fndecl 1 32068 NULL
145212 +disable_so_last_tsc_write_kvm_arch_32069 last_tsc_write kvm_arch 0 32069 NULL
145213 +disable_so_timeout_mraid_mmadp_32081 timeout mraid_mmadp 0 32081 NULL
145214 +disable_so_selinux_task_getscheduler_fndecl_32087 selinux_task_getscheduler fndecl 0 32087 NULL
145215 +disable_so_handle_slaves_guid_change_fndecl_32090 handle_slaves_guid_change fndecl 2-3 32090 NULL
145216 +disable_so_r68_val_fc2580_freq_regs_32091 r68_val fc2580_freq_regs 0 32091 NULL
145217 +disable_so_cx23885_set_frequency_fndecl_32119 cx23885_set_frequency fndecl 0 32119 NULL
145218 +disable_so_freqn_snd_usb_endpoint_32123 freqn snd_usb_endpoint 0 32123 NULL
145219 +disable_so_prandom_bytes_fndecl_32129 prandom_bytes fndecl 2 32129 NULL nohasharray
145220 +disable_so_tfmsize_crypto_type_32129 tfmsize crypto_type 0 32129 &disable_so_prandom_bytes_fndecl_32129
145221 +disable_so_freq_ar9170_calibration_target_power_legacy_32133 freq ar9170_calibration_target_power_legacy 0 32133 NULL nohasharray
145222 +disable_so_addr_buffer_state_32133 addr buffer_state 0 32133 &disable_so_freq_ar9170_calibration_target_power_legacy_32133
145223 +enable_so_max_rate_idx_ieee80211_tx_rate_control_32134 max_rate_idx ieee80211_tx_rate_control 0 32134 NULL nohasharray
145224 +disable_so_btree_invalidatepage_fndecl_32134 btree_invalidatepage fndecl 2 32134 &enable_so_max_rate_idx_ieee80211_tx_rate_control_32134
145225 +disable_so_hfs_bnode_findhash_fndecl_32138 hfs_bnode_findhash fndecl 2 32138 NULL
145226 +disable_so_symhash_fndecl_32144 symhash fndecl 0 32144 NULL
145227 +disable_so_ahc_print_register_fndecl_32148 ahc_print_register fndecl 5 32148 NULL
145228 +disable_so_rq_majortimeo_rpc_rqst_32158 rq_majortimeo rpc_rqst 0 32158 NULL
145229 +disable_so_ber_jiffies_stats_dib7000p_state_32159 ber_jiffies_stats dib7000p_state 0 32159 NULL
145230 +disable_so_i_mtime_f2fs_inode_32162 i_mtime f2fs_inode 0 32162 NULL
145231 +disable_so_addr_cistpl_checksum_t_32163 addr cistpl_checksum_t 0 32163 NULL
145232 +disable_so_n_fll_div_32168 n fll_div 0 32168 NULL
145233 +disable_so_advance_jiffies_uhci_qh_32179 advance_jiffies uhci_qh 0 32179 NULL
145234 +disable_so_query_dv_timings_last_vivid_dev_32182 query_dv_timings_last vivid_dev 0 32182 NULL
145235 +disable_so_mlx4_reset_roce_gids_fndecl_32207 mlx4_reset_roce_gids fndecl 2 32207 NULL
145236 +disable_so_addr_rec_vals_32208 addr rec_vals 0 32208 NULL
145237 +disable_so_chunks_bitmap_counts_32213 chunks bitmap_counts 0 32213 NULL
145238 +disable_so_irq_create_mapping_fndecl_32230 irq_create_mapping fndecl 0-2 32230 NULL
145239 +disable_so_addr_lo_eth_tx_start_bd_32234 addr_lo eth_tx_start_bd 0 32234 NULL
145240 +disable_so_radeon_irq_kms_sw_irq_get_delayed_fndecl_32235 radeon_irq_kms_sw_irq_get_delayed fndecl 2 32235 NULL
145241 +disable_so_irlap_start_slot_timer_fndecl_32236 irlap_start_slot_timer fndecl 2 32236 NULL
145242 +disable_so_get_timeout_fndecl_32254 get_timeout fndecl 0 32254 NULL
145243 +disable_so_smk_open_netlbladdr_fndecl_32279 smk_open_netlbladdr fndecl 0 32279 NULL
145244 +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
145245 +disable_so_freq_stb0899_internal_32287 freq stb0899_internal 0 32287 NULL
145246 +disable_so_crypto_cmac_digest_update_fndecl_32293 crypto_cmac_digest_update fndecl 3 32293 NULL
145247 +disable_so_sirf_usp_pcm_runtime_resume_fndecl_32303 sirf_usp_pcm_runtime_resume fndecl 0 32303 NULL
145248 +disable_so_show_state_time_fndecl_32307 show_state_time fndecl 0 32307 NULL
145249 +disable_so_max_freq_dw_spi_32310 max_freq dw_spi 0 32310 NULL
145250 +disable_so_msg_stime_msqid64_ds_32312 msg_stime msqid64_ds 0 32312 NULL
145251 +disable_so_xtalfreq_brcms_phy_32317 xtalfreq brcms_phy 0 32317 NULL
145252 +disable_so_cpu_to_be32_array_fndecl_32318 cpu_to_be32_array fndecl 3 32318 NULL
145253 +disable_so_addr_tuner_setup_32321 addr tuner_setup 0 32321 NULL
145254 +disable_so_schedule_timeout_interruptible_fndecl_32331 schedule_timeout_interruptible fndecl 0-1 32331 NULL
145255 +disable_so_shm16read_addr_next_b43_dfsentry_32334 shm16read_addr_next b43_dfsentry 0 32334 NULL
145256 +disable_so_ver_sync_start_via_display_timing_32337 ver_sync_start via_display_timing 0 32337 NULL
145257 +disable_so_ath9k_hw_synth_delay_fndecl_32339 ath9k_hw_synth_delay fndecl 3 32339 NULL
145258 +disable_so_sys_setpgid_fndecl_32340 sys_setpgid fndecl 1-2 32340 NULL
145259 +disable_so_mmc_test_random_read_perf_fndecl_32342 mmc_test_random_read_perf fndecl 0 32342 NULL nohasharray
145260 +disable_so_addrmax_vxlan_dev_32342 addrmax vxlan_dev 0 32342 &disable_so_mmc_test_random_read_perf_fndecl_32342
145261 +disable_so_interrupt_in_interval_ld_usb_32353 interrupt_in_interval ld_usb 0 32353 NULL
145262 +disable_so_mlx4_ib_slave_alias_guid_event_fndecl_32363 mlx4_ib_slave_alias_guid_event fndecl 2-3 32363 NULL
145263 +disable_so_usb_addr_u132_udev_32366 usb_addr u132_udev 0 32366 NULL
145264 +disable_so_account_shared_subtree_fndecl_32369 account_shared_subtree fndecl 4-5 32369 NULL
145265 +disable_so_process_tgid_exec_proc_event_32371 process_tgid exec_proc_event 0 32371 NULL
145266 +disable_so_resp_bd_list_addr_hi_bnx2i_text_request_32375 resp_bd_list_addr_hi bnx2i_text_request 0 32375 NULL nohasharray
145267 +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
145268 +disable_so_last_ave_beacon_signal_ieee80211_if_managed_32405 last_ave_beacon_signal ieee80211_if_managed 0 32405 NULL
145269 +disable_so_vml_nearest_clock_fndecl_32407 vml_nearest_clock fndecl 1-0 32407 NULL
145270 +disable_so_silence_start_snd_pcm_runtime_32410 silence_start snd_pcm_runtime 0 32410 NULL
145271 +disable_so_setfreq_fndecl_32411 setfreq fndecl 2 32411 NULL
145272 +disable_so_nent_kvm_cpuid_32413 nent kvm_cpuid 0 32413 NULL
145273 +disable_so_try_to_del_timer_sync_fndecl_32416 try_to_del_timer_sync fndecl 0 32416 NULL
145274 +disable_so_rtc_timer_start_fndecl_32417 rtc_timer_start fndecl 0 32417 NULL nohasharray
145275 +disable_so_get_cur_freq_fndecl_32417 get_cur_freq fndecl 1 32417 &disable_so_rtc_timer_start_fndecl_32417
145276 +disable_so_rf_set_freq_ath_hw_private_ops_32419 rf_set_freq ath_hw_private_ops 0 32419 NULL
145277 +disable_so_buffer_addr_pch_gbe_rx_desc_32427 buffer_addr pch_gbe_rx_desc 0 32427 NULL
145278 +disable_so_ath_chanctx_setup_timer_fndecl_32434 ath_chanctx_setup_timer fndecl 2 32434 NULL nohasharray
145279 +disable_so_top_mlx4_bitmap_32434 top mlx4_bitmap 0 32434 &disable_so_ath_chanctx_setup_timer_fndecl_32434
145280 +disable_so_addr_acl_ip_label_32438 addr acl_ip_label 0 32438 NULL nohasharray
145281 +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
145282 +disable_so_dn_sockaddr2username_fndecl_32446 dn_sockaddr2username fndecl 0 32446 NULL
145283 +disable_so_lasttime_vardecl_xfs_buf_item_c_32457 lasttime vardecl_xfs_buf_item.c 0 32457 NULL
145284 +disable_so___btrfs_add_delayed_deletion_item_fndecl_32458 __btrfs_add_delayed_deletion_item fndecl 0 32458 NULL
145285 +disable_so_pm_autosleep_lock_fndecl_32459 pm_autosleep_lock fndecl 0 32459 NULL
145286 +disable_so_bitmap_storage_alloc_fndecl_32460 bitmap_storage_alloc fndecl 2-4 32460 NULL nohasharray
145287 +disable_so_num_emulated_msrs_vardecl_x86_c_32460 num_emulated_msrs vardecl_x86.c 0 32460 &disable_so_bitmap_storage_alloc_fndecl_32460
145288 +disable_so_C_SYSC_signalfd4_fndecl_32461 C_SYSC_signalfd4 fndecl 0-4 32461 NULL nohasharray
145289 +disable_so_io_ctl_read_bitmap_fndecl_32461 io_ctl_read_bitmap fndecl 0 32461 &disable_so_C_SYSC_signalfd4_fndecl_32461
145290 +disable_so_address_u132_addr_32463 address u132_addr 0 32463 NULL
145291 +disable_so_att_dev_sas_addr_mvs_phy_32465 att_dev_sas_addr mvs_phy 0 32465 NULL
145292 +disable_so_next_status_checked_time_sp2_32472 next_status_checked_time sp2 0 32472 NULL
145293 +disable_so_address_i2400m_poke_table_32473 address i2400m_poke_table 0 32473 NULL
145294 +disable_so_time_slice_sched_rt_entity_32475 time_slice sched_rt_entity 0 32475 NULL nohasharray
145295 +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
145296 +disable_so_br_multicast_update_query_timer_fndecl_32479 br_multicast_update_query_timer fndecl 3 32479 NULL
145297 +disable_so_rpa_timeout_hci_dev_32482 rpa_timeout hci_dev 0 32482 NULL
145298 +disable_so_retry_delay_timestamp_bnx2fc_rport_32484 retry_delay_timestamp bnx2fc_rport 0 32484 NULL
145299 +disable_so_ext4_mark_bitmap_end_fndecl_32489 ext4_mark_bitmap_end fndecl 1-2 32489 NULL
145300 +disable_so_hw_start_time_ieee80211_roc_work_32492 hw_start_time ieee80211_roc_work 0 32492 NULL
145301 +disable_so_enq_busaddr_ips_ha_32493 enq_busaddr ips_ha 0 32493 NULL
145302 +disable_so_xfs_btree_rshift_fndecl_32496 xfs_btree_rshift fndecl 0 32496 NULL
145303 +disable_so_reqsize_ablkcipher_tfm_32500 reqsize ablkcipher_tfm 0 32500 NULL
145304 +disable_so_checkani_timer_ath_ani_32510 checkani_timer ath_ani 0 32510 NULL
145305 +disable_so_refdiv_cx24113_state_32517 refdiv cx24113_state 0 32517 NULL
145306 +disable_so_clock_divn_sym_hcb_32524 clock_divn sym_hcb 0 32524 NULL nohasharray
145307 +disable_so_delay_qla4_83xx_reset_entry_hdr_32524 delay qla4_83xx_reset_entry_hdr 0 32524 &disable_so_clock_divn_sym_hcb_32524
145308 +disable_so_write_bitmap_entries_fndecl_32527 write_bitmap_entries fndecl 0 32527 NULL
145309 +disable_so_next_timer_tvec_base_32537 next_timer tvec_base 0 32537 NULL nohasharray
145310 +disable_so_daddr_irlan_cb_32537 daddr irlan_cb 0 32537 &disable_so_next_timer_tvec_base_32537
145311 +disable_so_demod_address_dib3000_config_32538 demod_address dib3000_config 0 32538 NULL
145312 +disable_so_bc_blocklog_xfs_btree_cur_32544 bc_blocklog xfs_btree_cur 0 32544 NULL
145313 +disable_so_delay_rts_before_send_serial_rs485_32545 delay_rts_before_send serial_rs485 0 32545 NULL
145314 +disable_so___skb_tx_hash_fndecl_32547 __skb_tx_hash fndecl 0-3 32547 NULL
145315 +disable_so_get_mac_address_qlcnic_hardware_ops_32567 get_mac_address qlcnic_hardware_ops 3 32567 NULL
145316 +disable_so_cpu_clock_sample_fndecl_32583 cpu_clock_sample fndecl 1 32583 NULL
145317 +disable_so_n__fll_div_32585 n _fll_div 0 32585 NULL
145318 +disable_so_addr_l_qla2xxx_fce_chain_32589 addr_l qla2xxx_fce_chain 0 32589 NULL
145319 +disable_so___bitmap_weight_fndecl_32591 __bitmap_weight fndecl 0-2 32591 NULL
145320 +disable_so_cac_time_ms_wireless_dev_32596 cac_time_ms wireless_dev 0 32596 NULL
145321 +disable_so_spi_pioavailaddr_ipath_base_info_32598 spi_pioavailaddr ipath_base_info 0 32598 NULL
145322 +disable_so_timestamp_carm_msg_sync_time_32600 timestamp carm_msg_sync_time 0 32600 NULL
145323 +disable_so_kstrtoint_from_user_fndecl_32601 kstrtoint_from_user fndecl 2-0 32601 NULL
145324 +disable_so_rtc_read_time_fndecl_32605 rtc_read_time fndecl 0 32605 NULL
145325 +disable_so_intel_fuzzy_clock_check_fndecl_32608 intel_fuzzy_clock_check fndecl 1-2 32608 NULL
145326 +disable_so_beacon_interval_iwl_rxon_time_cmd_32609 beacon_interval iwl_rxon_time_cmd 0 32609 NULL nohasharray
145327 +disable_so_ac_etime_taskstats_32609 ac_etime taskstats 0 32609 &disable_so_beacon_interval_iwl_rxon_time_cmd_32609
145328 +disable_so_pcie_sbdf_set_error_type_with_address_32610 pcie_sbdf set_error_type_with_address 0 32610 NULL nohasharray
145329 +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
145330 +disable_so_table_instance_rehash_fndecl_32621 table_instance_rehash fndecl 2 32621 NULL
145331 +disable_so_btrfs_timespec_nsec_fndecl_32628 btrfs_timespec_nsec fndecl 0 32628 NULL
145332 +disable_so_pll2_r2_div_ad9523_platform_data_32641 pll2_r2_div ad9523_platform_data 0 32641 NULL
145333 +disable_so_ahash_op_unaligned_fndecl_32645 ahash_op_unaligned fndecl 0 32645 NULL
145334 +disable_so_pm3fb_calculate_clock_fndecl_32653 pm3fb_calculate_clock fndecl 1 32653 NULL
145335 +disable_so___load_block_bitmap_fndecl_32655 __load_block_bitmap fndecl 0-3 32655 NULL
145336 +disable_so_timeout_blk_mq_tag_set_32657 timeout blk_mq_tag_set 0 32657 NULL
145337 +disable_so_rangelow_v4l2_frequency_band_32670 rangelow v4l2_frequency_band 0 32670 NULL
145338 +disable_so_crypto_rng_get_bytes_fndecl_32675 crypto_rng_get_bytes fndecl 0-3 32675 NULL
145339 +disable_so_ns_ctime_the_nilfs_32681 ns_ctime the_nilfs 0 32681 NULL
145340 +disable_so_m41t80_sysfs_show_sqwfreq_fndecl_32683 m41t80_sysfs_show_sqwfreq fndecl 0 32683 NULL
145341 +disable_so_level_irq_udelay_cyttsp4_core_platform_data_32688 level_irq_udelay cyttsp4_core_platform_data 0 32688 NULL nohasharray
145342 +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
145343 +disable_so_e4000_sleep_fndecl_32694 e4000_sleep fndecl 0 32694 NULL
145344 +disable_so_snd_riptide_interrupt_fndecl_32696 snd_riptide_interrupt fndecl 1 32696 NULL nohasharray
145345 +disable_so_max_spi_freq_wm0010_priv_32696 max_spi_freq wm0010_priv 0 32696 &disable_so_snd_riptide_interrupt_fndecl_32696
145346 +disable_so_s_mtime_ext4_super_block_32699 s_mtime ext4_super_block 0 32699 NULL
145347 +disable_so_dma_addr_dm1105_dev_32704 dma_addr dm1105_dev 0 32704 NULL
145348 +disable_so_vmx_preemption_timer_value_vmcs12_32707 vmx_preemption_timer_value vmcs12 0 32707 NULL nohasharray
145349 +disable_so_uid_fileEntry_32707 uid fileEntry 0 32707 &disable_so_vmx_preemption_timer_value_vmcs12_32707
145350 +disable_so_saffirepro_both_clk_freq_get_fndecl_32709 saffirepro_both_clk_freq_get fndecl 0 32709 NULL
145351 +disable_so_cx231xx_s_frequency_fndecl_32713 cx231xx_s_frequency fndecl 0 32713 NULL
145352 +disable_so_sys_getgid_fndecl_32720 sys_getgid fndecl 0 32720 NULL
145353 +disable_so_tuner_address_zl10036_config_32733 tuner_address zl10036_config 0 32733 NULL
145354 +disable_so_max_medium_access_timeouts_store_fndecl_32735 max_medium_access_timeouts_store fndecl 0-4 32735 NULL
145355 +disable_so_cyapa_sleep_time_to_pwr_cmd_fndecl_32740 cyapa_sleep_time_to_pwr_cmd fndecl 0-1 32740 NULL
145356 +disable_so_s5m_rtc_read_time_fndecl_32755 s5m_rtc_read_time fndecl 0 32755 NULL
145357 +disable_so_i2c_read_le16_fndecl_32758 i2c_read_le16 fndecl 0 32758 NULL
145358 +disable_so_sysctl_rose_ack_hold_back_timeout_vardecl_32768 sysctl_rose_ack_hold_back_timeout vardecl 0 32768 NULL
145359 +disable_so_pentium4_get_frequency_fndecl_32777 pentium4_get_frequency fndecl 0 32777 NULL
145360 +disable_so_divider_phase_ad9523_channel_spec_32779 divider_phase ad9523_channel_spec 0 32779 NULL
145361 +disable_so_s_nr_groups_udf_bitmap_32784 s_nr_groups udf_bitmap 0 32784 NULL
145362 +disable_so_acpi_dev_runtime_resume_fndecl_32787 acpi_dev_runtime_resume fndecl 0 32787 NULL
145363 +disable_so_posted_intr_desc_addr_vmcs12_32788 posted_intr_desc_addr vmcs12 0 32788 NULL
145364 +disable_so_acpi_enter_sleep_state_fndecl_32791 acpi_enter_sleep_state fndecl 0-1 32791 NULL
145365 +disable_so_lola_init_clock_widget_fndecl_32800 lola_init_clock_widget fndecl 0 32800 NULL
145366 +disable_so_blocksize_ablkcipher_walk_32810 blocksize ablkcipher_walk 0 32810 NULL
145367 +disable_so_ctime_msdos_dir_entry_32811 ctime msdos_dir_entry 0 32811 NULL
145368 +disable_so_hpi_tuner_get_frequency_fndecl_32813 hpi_tuner_get_frequency fndecl 0-1 32813 NULL
145369 +disable_so_rhashtable_lookup_insert_fast_fndecl_32820 rhashtable_lookup_insert_fast fndecl 0 32820 NULL
145370 +disable_so_sync_freq_max8952_platform_data_32822 sync_freq max8952_platform_data 0 32822 NULL
145371 +disable_so_timeout_rc_dev_32826 timeout rc_dev 0 32826 NULL
145372 +disable_so_to_c2_data_addr_32827 to c2_data_addr 0 32827 NULL
145373 +disable_so_il4965_tfd_tb_get_addr_fndecl_32833 il4965_tfd_tb_get_addr fndecl 0 32833 NULL
145374 +disable_so_ctnl_timeout_dump_fndecl_32835 ctnl_timeout_dump fndecl 0 32835 NULL nohasharray
145375 +disable_so_nouveau_pmops_runtime_suspend_fndecl_32835 nouveau_pmops_runtime_suspend fndecl 0 32835 &disable_so_ctnl_timeout_dump_fndecl_32835
145376 +disable_so_kvm_get_apic_interrupt_fndecl_32843 kvm_get_apic_interrupt fndecl 0 32843 NULL
145377 +disable_so_do_bit_flips_fndecl_32848 do_bit_flips fndecl 2 32848 NULL
145378 +disable_so_bitmap_xor_fndecl_32858 bitmap_xor fndecl 4 32858 NULL
145379 +disable_so_vdelay_bttv_tvnorm_32863 vdelay bttv_tvnorm 0 32863 NULL
145380 +disable_so_rt_dbmsignal_ipw_rt_hdr_32871 rt_dbmsignal ipw_rt_hdr 0 32871 NULL
145381 +disable_so_rtc_set_ntp_time_fndecl_32881 rtc_set_ntp_time fndecl 0 32881 NULL
145382 +disable_so_hash_conntrack_raw_fndecl_32882 hash_conntrack_raw fndecl 0 32882 NULL
145383 +disable_so_find_mc_by_sys_addr_fndecl_32888 find_mc_by_sys_addr fndecl 2 32888 NULL
145384 +disable_so_low_mcp_dma_addr_32890 low mcp_dma_addr 0 32890 NULL
145385 +disable_so_rds_cmsg_atomic_fndecl_32895 rds_cmsg_atomic fndecl 0 32895 NULL
145386 +disable_so___hw_addr_add_ex_fndecl_32899 __hw_addr_add_ex fndecl 0-3 32899 NULL
145387 +disable_so_xfs_btree_decrement_fndecl_32925 xfs_btree_decrement fndecl 0 32925 NULL
145388 +disable_so_nilfs_btree_prepare_propagate_v_fndecl_32937 nilfs_btree_prepare_propagate_v fndecl 0 32937 NULL
145389 +disable_so_m41t80_rtc_read_time_fndecl_32947 m41t80_rtc_read_time fndecl 0 32947 NULL
145390 +disable_so_address_ci_hdrc_32962 address ci_hdrc 0 32962 NULL
145391 +disable_so_tua9001_sleep_fndecl_32966 tua9001_sleep fndecl 0 32966 NULL
145392 +disable_so_pm_generic_runtime_resume_fndecl_32968 pm_generic_runtime_resume fndecl 0 32968 NULL
145393 +disable_so_dma_addr_chunk_32969 dma_addr chunk 0 32969 NULL
145394 +disable_so_dm_attr_uuid_show_fndecl_32981 dm_attr_uuid_show fndecl 0 32981 NULL
145395 +disable_so_ac_stime_acct_v3_32985 ac_stime acct_v3 0 32985 NULL
145396 +disable_so_int_freq_r820t_priv_32987 int_freq r820t_priv 0 32987 NULL
145397 +disable_so_r8_pt_regs_32990 r8 pt_regs 0 32990 NULL
145398 +disable_so_address_TAG_TW_SG_Entry_ISO_32992 address TAG_TW_SG_Entry_ISO 0 32992 NULL
145399 +disable_so_segment0_blkaddr_f2fs_super_block_32995 segment0_blkaddr f2fs_super_block 0 32995 NULL
145400 +disable_so_time_of_death_afs_vlocation_32996 time_of_death afs_vlocation 0 32996 NULL
145401 +disable_so_addrm_unknown_feature_attrs_fndecl_33000 addrm_unknown_feature_attrs fndecl 0 33000 NULL
145402 +disable_so_monotonic_time_sec_vsyscall_gtod_data_33004 monotonic_time_sec vsyscall_gtod_data 0 33004 NULL
145403 +disable_so_tv_hsync_delay_nv04_crtc_reg_33012 tv_hsync_delay nv04_crtc_reg 0 33012 NULL
145404 +disable_so_neigh_proc_base_reachable_time_fndecl_33013 neigh_proc_base_reachable_time fndecl 0 33013 NULL
145405 +disable_so_ocfs2_unlink_subtree_fndecl_33022 ocfs2_unlink_subtree fndecl 5 33022 NULL
145406 +disable_so_poll_time_max3100_port_33028 poll_time max3100_port 0 33028 NULL
145407 +disable_so_compat_sys_time_fndecl_33034 compat_sys_time fndecl 0 33034 NULL nohasharray
145408 +disable_so_m_osc_clock_freq_drxk_state_33034 m_osc_clock_freq drxk_state 0 33034 &disable_so_compat_sys_time_fndecl_33034
145409 +disable_so_dev_addr_mmc_test_area_33044 dev_addr mmc_test_area 0 33044 NULL
145410 +disable_so_ntp_tick_timekeeper_33046 ntp_tick timekeeper 0 33046 NULL
145411 +disable_so_day_tomoyo_time_33064 day tomoyo_time 0 33064 NULL
145412 +disable_so_wait_time_stamp_lpfc_bsg_event_33070 wait_time_stamp lpfc_bsg_event 0 33070 NULL
145413 +disable_so_vblank_hi_lvds_dvo_timing_33077 vblank_hi lvds_dvo_timing 0 33077 NULL
145414 +disable_so_cycle_last_timecounter_33078 cycle_last timecounter 0 33078 NULL
145415 +disable_so_ql_write_page0_reg_fndecl_33082 ql_write_page0_reg fndecl 3 33082 NULL
145416 +disable_so_dma_addr_mic_smpt_33090 dma_addr mic_smpt 0 33090 NULL
145417 +disable_so_torture_random_fndecl_33096 torture_random fndecl 0 33096 NULL
145418 +disable_so_collect_signal_fndecl_33097 collect_signal fndecl 1 33097 NULL
145419 +disable_so_free_count_reiserfs_bitmap_info_33099 free_count reiserfs_bitmap_info 0 33099 NULL
145420 +disable_so_sys_clock_gettime_fndecl_33100 sys_clock_gettime fndecl 1 33100 NULL
145421 +disable_so_word_write_time_max_flchip_33105 word_write_time_max flchip 0 33105 NULL nohasharray
145422 +disable_so_y_gsc_addr_33105 y gsc_addr 0 33105 &disable_so_word_write_time_max_flchip_33105
145423 +disable_so_prdaddr_atp_id_33111 prdaddr atp_id 0 33111 NULL nohasharray
145424 +disable_so_intel_fdi_link_freq_fndecl_33111 intel_fdi_link_freq fndecl 0 33111 &disable_so_prdaddr_atp_id_33111
145425 +disable_so_soft_use_expires_seconds_xfrm_lifetime_cfg_33115 soft_use_expires_seconds xfrm_lifetime_cfg 0 33115 NULL
145426 +disable_so_strtobool_fndecl_33116 strtobool fndecl 0 33116 NULL
145427 +disable_so_smsc95xx_hash_fndecl_33122 smsc95xx_hash fndecl 0 33122 NULL
145428 +disable_so_mce_device_create_fndecl_33128 mce_device_create fndecl 1-0 33128 NULL
145429 +disable_so_ip6addrlbl_net_init_fndecl_33129 ip6addrlbl_net_init fndecl 0 33129 NULL
145430 +disable_so_brcms_b_set_addrmatch_fndecl_33130 brcms_b_set_addrmatch fndecl 2 33130 NULL
145431 +disable_so_tracer_tgid_ptrace_proc_event_33131 tracer_tgid ptrace_proc_event 0 33131 NULL
145432 +disable_so_pretimeout_vardecl_kempld_wdt_c_33137 pretimeout vardecl_kempld_wdt.c 0 33137 NULL
145433 +disable_so_o2net_set_usertimeout_fndecl_33145 o2net_set_usertimeout fndecl 0 33145 NULL nohasharray
145434 +disable_so_cryptd_blkcipher_encrypt_enqueue_fndecl_33145 cryptd_blkcipher_encrypt_enqueue fndecl 0 33145 &disable_so_o2net_set_usertimeout_fndecl_33145
145435 +disable_so_q_stime_msg_queue_33150 q_stime msg_queue 0 33150 NULL
145436 +disable_so_cursor_cache_gpu_addr_ast_private_33160 cursor_cache_gpu_addr ast_private 0 33160 NULL
145437 +disable_so_clockid_to_kclock_fndecl_33163 clockid_to_kclock fndecl 1 33163 NULL
145438 +disable_so_address_ipr_ioadl64_desc_33170 address ipr_ioadl64_desc 0 33170 NULL
145439 +disable_so_wl1271_acx_sleep_auth_fndecl_33172 wl1271_acx_sleep_auth fndecl 0 33172 NULL nohasharray
145440 +disable_so_addr_mii_phy_33172 addr mii_phy 0 33172 &disable_so_wl1271_acx_sleep_auth_fndecl_33172
145441 +disable_so_cr_camif_addr_33181 cr camif_addr 0 33181 NULL
145442 +disable_so___bch_btree_mark_key_fndecl_33194 __bch_btree_mark_key fndecl 2 33194 NULL
145443 +disable_so_mem_addr_m3_list_33199 mem_addr m3_list 0 33199 NULL
145444 +disable_so_start_time_tx_traffic_info_33206 start_time tx_traffic_info 0 33206 NULL
145445 +disable_so_crypto_aead_decrypt_fndecl_33207 crypto_aead_decrypt fndecl 0 33207 NULL
145446 +disable_so_i_mtime_ext2_inode_33209 i_mtime ext2_inode 0 33209 NULL
145447 +disable_so_mei_me_pm_runtime_resume_fndecl_33216 mei_me_pm_runtime_resume fndecl 0 33216 NULL
145448 +disable_so_irq_free_descs_fndecl_33218 irq_free_descs fndecl 1-2 33218 NULL
145449 +disable_so_tune_freq_si476x_radio_ops_33229 tune_freq si476x_radio_ops 0 33229 NULL
145450 +disable_so_increase_address_space_fndecl_33247 increase_address_space fndecl 2 33247 NULL
145451 +disable_so_ps_timeout_vardecl_pseudo_h_33252 ps_timeout vardecl_pseudo.h 0 33252 NULL
145452 +disable_so_init_jiffies_clocksource_fndecl_33253 init_jiffies_clocksource fndecl 0 33253 NULL
145453 +disable_so_do_cpu_nanosleep_fndecl_33255 do_cpu_nanosleep fndecl 1 33255 NULL
145454 +disable_so_efi_thunk_set_virtual_address_map_fndecl_33273 efi_thunk_set_virtual_address_map fndecl 2-3 33273 NULL
145455 +disable_so_ring_physaddr_fbr_lookup_33275 ring_physaddr fbr_lookup 0 33275 NULL
145456 +disable_so_wakeup_prevent_sleep_time_show_fndecl_33280 wakeup_prevent_sleep_time_show fndecl 0 33280 NULL nohasharray
145457 +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
145458 +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
145459 +disable_so_ccp_aes_rfc3686_setkey_fndecl_33280 ccp_aes_rfc3686_setkey fndecl 3 33280 &disable_so_rsdt_physical_address_acpi_table_rsdp_33280
145460 +disable_so_jiffies_to_clock_t_fndecl_33285 jiffies_to_clock_t fndecl 0-1 33285 NULL
145461 +disable_so_gpu_addr_radeon_ib_33291 gpu_addr radeon_ib 0 33291 NULL
145462 +disable_so_crypto_rfc4106_setkey_fndecl_33297 crypto_rfc4106_setkey fndecl 0-3 33297 NULL
145463 +disable_so_crypto_rfc4309_encrypt_fndecl_33306 crypto_rfc4309_encrypt fndecl 0 33306 NULL
145464 +disable_so_xhci_calculate_lpm_timeout_fndecl_33310 xhci_calculate_lpm_timeout fndecl 0 33310 NULL
145465 +disable_so_addr_high_mcp_kreq_ether_send_33319 addr_high mcp_kreq_ether_send 0 33319 NULL
145466 +disable_so_calc_divisor_fndecl_33333 calc_divisor fndecl 0 33333 NULL
145467 +disable_so_i2c_address_dib0070_config_33334 i2c_address dib0070_config 0 33334 NULL
145468 +disable_so_alloc_sleep_millisecs_show_fndecl_33339 alloc_sleep_millisecs_show fndecl 0 33339 NULL nohasharray
145469 +disable_so_hpi_tuner_set_frequency_fndecl_33339 hpi_tuner_set_frequency fndecl 0-1 33339 &disable_so_alloc_sleep_millisecs_show_fndecl_33339
145470 +disable_so_sysctl_aarp_tick_time_vardecl_33343 sysctl_aarp_tick_time vardecl 0 33343 NULL
145471 +disable_so_stv0367cab_set_derot_freq_fndecl_33348 stv0367cab_set_derot_freq fndecl 0-2-3 33348 NULL
145472 +disable_so_pkt_phys_addr_mwl8k_tx_desc_33350 pkt_phys_addr mwl8k_tx_desc 0 33350 NULL
145473 +disable_so_addr_low_lancer_cmd_req_write_object_33351 addr_low lancer_cmd_req_write_object 0 33351 NULL
145474 +disable_so_posix_timer_id_signal_struct_33352 posix_timer_id signal_struct 0 33352 NULL
145475 +disable_so_s_mtime_ext2_super_block_33353 s_mtime ext2_super_block 0 33353 NULL
145476 +disable_so_freq_wmi_remain_on_chnl_event_33368 freq wmi_remain_on_chnl_event 0 33368 NULL
145477 +disable_so_token_time_sfb_sched_data_33369 token_time sfb_sched_data 0 33369 NULL nohasharray
145478 +disable_so_kvmclock_offset_kvm_arch_33369 kvmclock_offset kvm_arch 0 33369 &disable_so_token_time_sfb_sched_data_33369
145479 +disable_so_pipelines_addr_device_queue_manager_33373 pipelines_addr device_queue_manager 0 33373 NULL
145480 +disable_so_nilfs_btree_prepare_convert_and_insert_fndecl_33375 nilfs_btree_prepare_convert_and_insert fndecl 0-2 33375 NULL
145481 +disable_so_hash_netnet6_expire_fndecl_33396 hash_netnet6_expire fndecl 4 33396 NULL
145482 +disable_so_ticks_snd_timer_hardware_33398 ticks snd_timer_hardware 0 33398 NULL nohasharray
145483 +disable_so_pci_bus_max_busnr_fndecl_33398 pci_bus_max_busnr fndecl 0 33398 &disable_so_ticks_snd_timer_hardware_33398
145484 +disable_so_start_time_search_33410 start_time search 0 33410 NULL
145485 +disable_so_flip_addr_intel_overlay_33431 flip_addr intel_overlay 0 33431 NULL
145486 +disable_so_sync_single_for_cpu_dma_map_ops_33433 sync_single_for_cpu dma_map_ops 2-3 33433 NULL
145487 +disable_so_di_ctime_logfs_disk_inode_33435 di_ctime logfs_disk_inode 0 33435 NULL
145488 +disable_so_ocfs2_divide_xattr_bucket_fndecl_33455 ocfs2_divide_xattr_bucket fndecl 0 33455 NULL
145489 +disable_so_sbp_tpg_attrib_show_mgt_orb_timeout_fndecl_33467 sbp_tpg_attrib_show_mgt_orb_timeout fndecl 0 33467 NULL
145490 +disable_so_btrfs_set_free_space_bitmaps_fndecl_33481 btrfs_set_free_space_bitmaps fndecl 3 33481 NULL
145491 +disable_so_demod_address_stv0299_config_33483 demod_address stv0299_config 0 33483 NULL
145492 +disable_so_lbs_sleepparams_write_fndecl_33488 lbs_sleepparams_write fndecl 0-3 33488 NULL
145493 +disable_so_start_time_edac_device_ctl_info_33489 start_time edac_device_ctl_info 0 33489 NULL
145494 +disable_so_addr_f71805f_data_33493 addr f71805f_data 0 33493 NULL
145495 +disable_so_mcgcap_mce_33500 mcgcap mce 0 33500 NULL
145496 +disable_so___smp_spurious_interrupt_fndecl_33501 __smp_spurious_interrupt fndecl 1 33501 NULL
145497 +disable_so_acpi_pad_rrtime_show_fndecl_33511 acpi_pad_rrtime_show fndecl 0 33511 NULL
145498 +disable_so_crypto_ctr_module_init_fndecl_33512 crypto_ctr_module_init fndecl 0 33512 NULL
145499 +disable_so_dtim_time_iwl_mac_data_sta_33519 dtim_time iwl_mac_data_sta 0 33519 NULL
145500 +disable_so_start_signal_voltage_switch_mmc_host_ops_33520 start_signal_voltage_switch mmc_host_ops 0 33520 NULL
145501 +disable_so_ui_atime_ufs2_inode_33541 ui_atime ufs2_inode 0 33541 NULL nohasharray
145502 +disable_so_pll_prediv_dib0090_io_config_33541 pll_prediv dib0090_io_config 0 33541 &disable_so_ui_atime_ufs2_inode_33541
145503 +disable_so_synchronize_irq_fndecl_33551 synchronize_irq fndecl 1 33551 NULL
145504 +disable_so_addrconf_disable_ipv6_fndecl_33555 addrconf_disable_ipv6 fndecl 0 33555 NULL
145505 +disable_so_addr_RxDesc_33558 addr RxDesc 0 33558 NULL
145506 +disable_so_rtc_irq_set_freq_fndecl_33559 rtc_irq_set_freq fndecl 0 33559 NULL
145507 +disable_so_md4_mod_init_fndecl_33560 md4_mod_init fndecl 0 33560 NULL
145508 +disable_so_addr_1_qla8044_minidump_entry_pollwr_33561 addr_1 qla8044_minidump_entry_pollwr 0 33561 NULL
145509 +disable_so_decnet_address_vardecl_33562 decnet_address vardecl 0 33562 NULL
145510 +disable_so_tx_bseq_addr_bnx2_tx_ring_info_33563 tx_bseq_addr bnx2_tx_ring_info 0 33563 NULL
145511 +disable_so_clock_sched_clock_data_33565 clock sched_clock_data 0 33565 NULL
145512 +disable_so_va_uid_coda_vattr_33569 va_uid coda_vattr 0 33569 NULL
145513 +disable_so_timeout_RioCommand_33570 timeout RioCommand 0 33570 NULL
145514 +disable_so_ramp_time_pcf50633_bl_platform_data_33574 ramp_time pcf50633_bl_platform_data 0 33574 NULL
145515 +disable_so_bitmap_init_from_disk_fndecl_33575 bitmap_init_from_disk fndecl 2 33575 NULL
145516 +disable_so_startaddr_banshee_reg_33580 startaddr banshee_reg 0 33580 NULL
145517 +disable_so_intel_pipe_to_cpu_transcoder_fndecl_33581 intel_pipe_to_cpu_transcoder fndecl 0-2 33581 NULL nohasharray
145518 +disable_so_ctl_addr_ide_io_ports_33581 ctl_addr ide_io_ports 0 33581 &disable_so_intel_pipe_to_cpu_transcoder_fndecl_33581
145519 +disable_so_ext4_read_inode_bitmap_fndecl_33583 ext4_read_inode_bitmap fndecl 2 33583 NULL
145520 +disable_so_ims_pcu_ofn_bit_store_fndecl_33597 ims_pcu_ofn_bit_store fndecl 0-4 33597 NULL
145521 +disable_so___bitmap_clear_bits_fndecl_33603 __bitmap_clear_bits fndecl 3-4 33603 NULL
145522 +disable_so_cg_spll_spread_spectrum_2_rv730_clock_registers_33607 cg_spll_spread_spectrum_2 rv730_clock_registers 0 33607 NULL
145523 +disable_so_cs5535_mfgpt_alloc_timer_fndecl_33609 cs5535_mfgpt_alloc_timer fndecl 1 33609 NULL
145524 +disable_so_to_maxval_rpc_timeout_33618 to_maxval rpc_timeout 0 33618 NULL nohasharray
145525 +disable_so_freq_freq_tbl_33618 freq freq_tbl 0 33618 &disable_so_to_maxval_rpc_timeout_33618
145526 +disable_so_hpi_sample_clock_set_auto_fndecl_33619 hpi_sample_clock_set_auto fndecl 1-0 33619 NULL
145527 +disable_so_addr_lo_freelQ_e_33620 addr_lo freelQ_e 0 33620 NULL
145528 +disable_so_addr_via686a_data_33627 addr via686a_data 0 33627 NULL
145529 +disable_so_seq_time_vardecl_33630 seq_time vardecl 0 33630 NULL
145530 +disable_so_tgid_task_struct_33635 tgid task_struct 0 33635 NULL nohasharray
145531 +disable_so_index_addr_read_data_fndecl_33635 index_addr_read_data fndecl 2 33635 &disable_so_tgid_task_struct_33635
145532 +disable_so_random_fasync_fndecl_33642 random_fasync fndecl 1 33642 NULL
145533 +disable_so_snd_usb_mixer_interrupt_v2_fndecl_33643 snd_usb_mixer_interrupt_v2 fndecl 3 33643 NULL
145534 +disable_so_vq_vram_addr_viafb_shared_33653 vq_vram_addr viafb_shared 0 33653 NULL
145535 +disable_so_key_index_wmi_add_cipher_key_cmd_33662 key_index wmi_add_cipher_key_cmd 0 33662 NULL
145536 +disable_so_tpu_pwm_timer_start_fndecl_33663 tpu_pwm_timer_start fndecl 0 33663 NULL
145537 +disable_so_interrupt_in_interval_lego_usb_tower_33664 interrupt_in_interval lego_usb_tower 0 33664 NULL
145538 +disable_so_pr_gid_compat_elf_prpsinfo_33667 pr_gid compat_elf_prpsinfo 0 33667 NULL
145539 +disable_so_sinit_max_init_timeo_sctp_initmsg_33681 sinit_max_init_timeo sctp_initmsg 0 33681 NULL
145540 +disable_so_sdev_store_eh_timeout_fndecl_33688 sdev_store_eh_timeout fndecl 0-4 33688 NULL
145541 +disable_so_uid_ceph_mds_caps_33696 uid ceph_mds_caps 0 33696 NULL
145542 +disable_so_min_timeout_rc_dev_33699 min_timeout rc_dev 0 33699 NULL
145543 +disable_so_addr_alx_rfd_33711 addr alx_rfd 0 33711 NULL
145544 +disable_so_pwm_divisor_max77693_haptic_33724 pwm_divisor max77693_haptic 0 33724 NULL
145545 +disable_so_cb710_mmc_select_clock_divider_fndecl_33732 cb710_mmc_select_clock_divider fndecl 2 33732 NULL
145546 +disable_so_service_timer_previous_i40e_pf_33743 service_timer_previous i40e_pf 0 33743 NULL
145547 +disable_so_btree_gc_count_keys_fndecl_33745 btree_gc_count_keys fndecl 0 33745 NULL
145548 +disable_so_max_usec_vnic_intr_coal_timer_info_33753 max_usec vnic_intr_coal_timer_info 0 33753 NULL
145549 +disable_so_force_hpet_address_vardecl_33758 force_hpet_address vardecl 0 33758 NULL
145550 +disable_so_fl_addr_fib_result_nl_33759 fl_addr fib_result_nl 0 33759 NULL
145551 +disable_so_cx231xx_i2c_recv_bytes_with_saddr_fndecl_33773 cx231xx_i2c_recv_bytes_with_saddr fndecl 0 33773 NULL
145552 +disable_so_cursor_addr_radeon_crtc_33776 cursor_addr radeon_crtc 0 33776 NULL
145553 +disable_so_btrfs_update_time_fndecl_33780 btrfs_update_time fndecl 0 33780 NULL
145554 +disable_so_from_kuid_munged_fndecl_33783 from_kuid_munged fndecl 0 33783 NULL
145555 +disable_so_irda_discover_daddr_and_lsap_sel_fndecl_33786 irda_discover_daddr_and_lsap_sel fndecl 0 33786 NULL
145556 +disable_so_efx_probe_interrupts_fndecl_33793 efx_probe_interrupts fndecl 0 33793 NULL
145557 +disable_so_custom_divisor_cyclades_port_33795 custom_divisor cyclades_port 0 33795 NULL
145558 +disable_so_uli526x_interrupt_fndecl_33800 uli526x_interrupt fndecl 1 33800 NULL
145559 +disable_so_ocrdma_add_stat_fndecl_33807 ocrdma_add_stat fndecl 0 33807 NULL
145560 +disable_so_btrfs_set_token_inode_uid_fndecl_33810 btrfs_set_token_inode_uid fndecl 3 33810 NULL
145561 +disable_so_iowrite32_rep_fndecl_33813 iowrite32_rep fndecl 3 33813 NULL
145562 +disable_so_sys_setresgid_fndecl_33818 sys_setresgid fndecl 0-1-2-3 33818 NULL
145563 +disable_so_radeon_dp_get_dp_link_clock_fndecl_33823 radeon_dp_get_dp_link_clock fndecl 0-3 33823 NULL
145564 +disable_so_timeout__synclinkmp_info_33838 timeout _synclinkmp_info 0 33838 NULL
145565 +disable_so_phys_addr_esas2r_mem_desc_33844 phys_addr esas2r_mem_desc 0 33844 NULL
145566 +disable_so_cpufreq_register_notifier_fndecl_33845 cpufreq_register_notifier fndecl 0 33845 NULL
145567 +disable_so_ufx_reg_write_fndecl_33849 ufx_reg_write fndecl 3 33849 NULL
145568 +disable_so_kstrtou8_from_user_fndecl_33852 kstrtou8_from_user fndecl 0-2 33852 NULL
145569 +disable_so_hpi_sample_clock_get_local_rate_fndecl_33857 hpi_sample_clock_get_local_rate fndecl 1-0 33857 NULL
145570 +disable_so_hor_sync_start_via_display_timing_33861 hor_sync_start via_display_timing 0 33861 NULL
145571 +disable_so_seq_netlbl_domhsh_walk_arg_33872 seq netlbl_domhsh_walk_arg 0 33872 NULL
145572 +disable_so_wrmsrl_on_cpu_fndecl_33873 wrmsrl_on_cpu fndecl 0-1 33873 NULL
145573 +disable_so_cpu_to_vringh32_fndecl_33880 cpu_to_vringh32 fndecl 0-2 33880 NULL
145574 +disable_so_ni_do_program_memory_timing_parameters_fndecl_33886 ni_do_program_memory_timing_parameters fndecl 0 33886 NULL
145575 +disable_so_comp_addr_hi_dmae_command_33889 comp_addr_hi dmae_command 0 33889 NULL
145576 +disable_so_wl18xx_acx_interrupt_notify_config_fndecl_33899 wl18xx_acx_interrupt_notify_config fndecl 0 33899 NULL
145577 +disable_so_creation_time_iscsi_session_33906 creation_time iscsi_session 0 33906 NULL nohasharray
145578 +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
145579 +disable_so_bnx2x_get_rxhash_fndecl_33906 bnx2x_get_rxhash fndecl 0 33906 &disable_so_via_clock_vardecl_pata_via_c_33906
145580 +disable_so_mmio_readl_intel_uncore_funcs_33910 mmio_readl intel_uncore_funcs 0-2 33910 NULL
145581 +disable_so_refresh_time_e1000_fc_info_33911 refresh_time e1000_fc_info 0 33911 NULL
145582 +disable_so_hash_fname_33923 hash fname 0 33923 NULL
145583 +disable_so_sysctl_netrom_transport_timeout_vardecl_33929 sysctl_netrom_transport_timeout vardecl 0 33929 NULL
145584 +disable_so_cg_spll_func_cntl_si_clock_registers_33932 cg_spll_func_cntl si_clock_registers 0 33932 NULL
145585 +disable_so_img_ir_free_timing_fndecl_33939 img_ir_free_timing fndecl 0-2 33939 NULL
145586 +disable_so_max_tsc_khz_vardecl_x86_c_33942 max_tsc_khz vardecl_x86.c 0 33942 NULL
145587 +disable_so_timeout_a_tpm_vendor_specific_33951 timeout_a tpm_vendor_specific 0 33951 NULL
145588 +disable_so_generic_cmd6_time_mmc_ext_csd_33957 generic_cmd6_time mmc_ext_csd 0 33957 NULL
145589 +disable_so_subnet_timeout_qib_ibport_33973 subnet_timeout qib_ibport 0 33973 NULL nohasharray
145590 +disable_so_ring_iowrite16desc_fndecl_33973 ring_iowrite16desc fndecl 2 33973 &disable_so_subnet_timeout_qib_ibport_33973 nohasharray
145591 +disable_so_freq_tiny_spi_33973 freq tiny_spi 0 33973 &disable_so_ring_iowrite16desc_fndecl_33973
145592 +disable_so_ip6addrlbl_del_fndecl_33977 ip6addrlbl_del fndecl 0-4 33977 NULL
145593 +disable_so_btree_readpage_fndecl_33979 btree_readpage fndecl 0 33979 NULL
145594 +disable_so_ifa_broadcast_in_ifaddr_33999 ifa_broadcast in_ifaddr 0 33999 NULL
145595 +disable_so___cpuidle_register_device_fndecl_34012 __cpuidle_register_device fndecl 0 34012 NULL
145596 +disable_so_hpfs_prefetch_bitmap_fndecl_34014 hpfs_prefetch_bitmap fndecl 2 34014 NULL
145597 +disable_so_cur_freq_lbtf_private_34017 cur_freq lbtf_private 0 34017 NULL
145598 +disable_so_pxa2xx_ssp_get_clk_div_fndecl_34021 pxa2xx_ssp_get_clk_div fndecl 0-3 34021 NULL
145599 +disable_so_data_addr_acpi_ec_34022 data_addr acpi_ec 0 34022 NULL
145600 +disable_so_sdev_runtime_resume_fndecl_34033 sdev_runtime_resume fndecl 0 34033 NULL nohasharray
145601 +disable_so_get_aux_clock_divider_intel_dp_34033 get_aux_clock_divider intel_dp 0 34033 &disable_so_sdev_runtime_resume_fndecl_34033
145602 +disable_so_proc_tgid_io_accounting_fndecl_34034 proc_tgid_io_accounting fndecl 0 34034 NULL
145603 +disable_so_long_timeout_scsi_tape_34043 long_timeout scsi_tape 0 34043 NULL
145604 +disable_so_crypto_authenc_esn_givencrypt_done_fndecl_34047 crypto_authenc_esn_givencrypt_done fndecl 2 34047 NULL
145605 +disable_so_addr_wil_fw_data_dwrite_34059 addr wil_fw_data_dwrite 0 34059 NULL
145606 +disable_so_shash_prepare_alg_fndecl_34073 shash_prepare_alg fndecl 0 34073 NULL
145607 +disable_so_ccp_register_aes_algs_fndecl_34079 ccp_register_aes_algs fndecl 0 34079 NULL
145608 +disable_so_addr_mwifiex_dma_mapping_34088 addr mwifiex_dma_mapping 0 34088 NULL
145609 +disable_so_signal_level_hfa384x_comms_quality_34089 signal_level hfa384x_comms_quality 0 34089 NULL
145610 +disable_so_per_jiffies_stats_dib7000p_state_34090 per_jiffies_stats dib7000p_state 0 34090 NULL nohasharray
145611 +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
145612 +disable_so_rt_mutex_timed_lock_fndecl_34096 rt_mutex_timed_lock fndecl 0 34096 NULL
145613 +disable_so_addr_i2c_device_34103 addr i2c_device 0 34103 NULL
145614 +disable_so_run_nmi_sleep_test_fndecl_34107 run_nmi_sleep_test fndecl 1 34107 NULL
145615 +disable_so_distribute_cfs_runtime_fndecl_34121 distribute_cfs_runtime fndecl 0-2-3 34121 NULL
145616 +disable_so_iscsi_nacl_attrib_store_nopin_response_timeout_fndecl_34124 iscsi_nacl_attrib_store_nopin_response_timeout fndecl 0-3 34124 NULL
145617 +disable_so_bi_len_gfs2_bitmap_34126 bi_len gfs2_bitmap 0 34126 NULL
145618 +disable_so_qdiv_mode_skl_wrpll_params_34127 qdiv_mode skl_wrpll_params 0 34127 NULL
145619 +disable_so_cpuidle_enable_device_fndecl_34132 cpuidle_enable_device fndecl 0 34132 NULL
145620 +disable_so_timer_slack_ns_task_struct_34139 timer_slack_ns task_struct 0 34139 NULL
145621 +disable_so_mic_max_system_addr_fndecl_34141 mic_max_system_addr fndecl 0 34141 NULL nohasharray
145622 +disable_so_ima_calc_file_shash_fndecl_34141 ima_calc_file_shash fndecl 0 34141 &disable_so_mic_max_system_addr_fndecl_34141
145623 +disable_so_lm3533_led_get_hw_delay_fndecl_34142 lm3533_led_get_hw_delay fndecl 0 34142 NULL
145624 +disable_so_nd_ipv4_address_o2nm_node_34144 nd_ipv4_address o2nm_node 0 34144 NULL
145625 +disable_so_r28_val_fc2580_freq_regs_34150 r28_val fc2580_freq_regs 0 34150 NULL
145626 +disable_so_musb_read_txfunaddr_fndecl_34175 musb_read_txfunaddr fndecl 2-0 34175 NULL
145627 +disable_so_offset_addr_pch_udc_ep_34177 offset_addr pch_udc_ep 0 34177 NULL
145628 +disable_so_stv0900_get_carr_freq_fndecl_34190 stv0900_get_carr_freq fndecl 0-2 34190 NULL
145629 +disable_so_base_addr_user_desc_34191 base_addr user_desc 0 34191 NULL
145630 +disable_so_hi_cfg_timing_div_drxj_data_34197 hi_cfg_timing_div drxj_data 0 34197 NULL
145631 +disable_so_sha1_mb_async_finup_fndecl_34207 sha1_mb_async_finup fndecl 0 34207 NULL
145632 +disable_so_hpi_outstream_set_time_scale_fndecl_34210 hpi_outstream_set_time_scale fndecl 1-0 34210 NULL
145633 +disable_so_keyup_jiffies_rc_dev_34213 keyup_jiffies rc_dev 0 34213 NULL
145634 +disable_so_inet_sk_reselect_saddr_fndecl_34214 inet_sk_reselect_saddr fndecl 0 34214 NULL
145635 +disable_so_cm_ack_timeout_fndecl_34216 cm_ack_timeout fndecl 0-1-2 34216 NULL nohasharray
145636 +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
145637 +disable_so_nsec_to_clock_t_fndecl_34222 nsec_to_clock_t fndecl 0-1 34222 NULL
145638 +disable_so_pch_systime_write_fndecl_34223 pch_systime_write fndecl 2 34223 NULL
145639 +disable_so_addr_uio_mem_34242 addr uio_mem 0 34242 NULL
145640 +disable_so_xfs_btree_split_fndecl_34248 xfs_btree_split fndecl 0 34248 NULL
145641 +disable_so_address_acpi_pct_register_34258 address acpi_pct_register 0 34258 NULL
145642 +disable_so_ci_otg_fsm_add_timer_fndecl_34261 ci_otg_fsm_add_timer fndecl 2 34261 NULL
145643 +disable_so_snd_timer_resolution_fndecl_34272 snd_timer_resolution fndecl 0 34272 NULL
145644 +disable_so_delay_rts_after_send_serial_rs485_34273 delay_rts_after_send serial_rs485 0 34273 NULL nohasharray
145645 +disable_so_set_msr_interception_fndecl_34273 set_msr_interception fndecl 2 34273 &disable_so_delay_rts_after_send_serial_rs485_34273
145646 +disable_so_qla4xxx_fw_ext_timestamp_show_fndecl_34274 qla4xxx_fw_ext_timestamp_show fndecl 0 34274 NULL
145647 +disable_so_hash_ipport6_expire_fndecl_34286 hash_ipport6_expire fndecl 4 34286 NULL
145648 +disable_so_da9063_rtc_set_time_fndecl_34291 da9063_rtc_set_time fndecl 0 34291 NULL nohasharray
145649 +disable_so_early_cpu_to_node_fndecl_34291 early_cpu_to_node fndecl 0 34291 &disable_so_da9063_rtc_set_time_fndecl_34291
145650 +disable_so_port_io_addr_34293 port io_addr 0 34293 NULL
145651 +disable_so_nilfs_palloc_bitmap_blkoff_fndecl_34306 nilfs_palloc_bitmap_blkoff fndecl 0-2 34306 NULL
145652 +disable_so_last_delaylps_stamp_jiffies_rtl_ps_ctl_34320 last_delaylps_stamp_jiffies rtl_ps_ctl 0 34320 NULL nohasharray
145653 +disable_so_tunedfreq_s5h1420_state_34320 tunedfreq s5h1420_state 0 34320 &disable_so_last_delaylps_stamp_jiffies_rtl_ps_ctl_34320
145654 +disable_so_rd16_nvkm_ofuncs_34339 rd16 nvkm_ofuncs 0-2 34339 NULL
145655 +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
145656 +disable_so_eeprom_delay_ipw_priv_34346 eeprom_delay ipw_priv 0 34346 NULL nohasharray
145657 +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
145658 +disable_so_intr_timer_type_vnic_fc_config_34351 intr_timer_type vnic_fc_config 0 34351 NULL
145659 +disable_so_skcipher_null_crypt_fndecl_34354 skcipher_null_crypt fndecl 0-4 34354 NULL
145660 +disable_so_ac_stime_taskstats_34355 ac_stime taskstats 0 34355 NULL
145661 +disable_so_set_bit_to_user_fndecl_34358 set_bit_to_user fndecl 0 34358 NULL
145662 +disable_so_sip_timeout_vardecl_nf_conntrack_sip_c_34365 sip_timeout vardecl_nf_conntrack_sip.c 0 34365 NULL
145663 +disable_so_map_addr_fndecl_34371 map_addr fndecl 2-3-6-7 34371 NULL
145664 +disable_so_rds_sysctl_reconnect_min_jiffies_vardecl_34380 rds_sysctl_reconnect_min_jiffies vardecl 0 34380 NULL
145665 +disable_so_note_interrupt_fndecl_34381 note_interrupt fndecl 1 34381 NULL
145666 +disable_so_addr_nv50_sync_34383 addr nv50_sync 0 34383 NULL
145667 +disable_so_clock_gate_dis2_vlv_s0ix_state_34384 clock_gate_dis2 vlv_s0ix_state 0 34384 NULL
145668 +disable_so_sctp_add_bind_addr_fndecl_34385 sctp_add_bind_addr fndecl 4 34385 NULL nohasharray
145669 +disable_so_crypto_comp_decompress_fndecl_34385 crypto_comp_decompress fndecl 3 34385 &disable_so_sctp_add_bind_addr_fndecl_34385
145670 +disable_so_s5h1409_sleep_fndecl_34392 s5h1409_sleep fndecl 2 34392 NULL
145671 +disable_so_i2c_address_mt2266_config_34394 i2c_address mt2266_config 0 34394 NULL
145672 +disable_so_ext4_inode_bitmap_csum_verify_fndecl_34396 ext4_inode_bitmap_csum_verify fndecl 2-5 34396 NULL
145673 +disable_so_blocksize_crypto_report_cipher_34404 blocksize crypto_report_cipher 0 34404 NULL
145674 +disable_so_min_dwell_time_active_conf_scan_settings_34406 min_dwell_time_active conf_scan_settings 0 34406 NULL
145675 +disable_so_sec_ptp_clock_time_34411 sec ptp_clock_time 0 34411 NULL nohasharray
145676 +disable_so_vxlan_nla_get_addr_fndecl_34411 vxlan_nla_get_addr fndecl 0 34411 &disable_so_sec_ptp_clock_time_34411
145677 +disable_so_psb_intel_sdvo_create_preferred_input_timing_fndecl_34416 psb_intel_sdvo_create_preferred_input_timing fndecl 3-4 34416 NULL
145678 +disable_so_decode_attr_bitmap_fndecl_34420 decode_attr_bitmap fndecl 0 34420 NULL
145679 +disable_so_address_acpi_mem_space_context_34426 address acpi_mem_space_context 0 34426 NULL
145680 +disable_so_netlbl_domhsh_hash_fndecl_34442 netlbl_domhsh_hash fndecl 0 34442 NULL
145681 +disable_so_bdbar_addr_ichdev_34446 bdbar_addr ichdev 0 34446 NULL
145682 +disable_so_ksm_thread_sleep_millisecs_vardecl_ksm_c_34451 ksm_thread_sleep_millisecs vardecl_ksm.c 0 34451 NULL
145683 +disable_so_signal_ieee80211_rx_status_34458 signal ieee80211_rx_status 0 34458 NULL
145684 +disable_so_dma_addr_cxio_hal_ctrl_qp_34469 dma_addr cxio_hal_ctrl_qp 0 34469 NULL
145685 +disable_so_ata_lookup_timeout_table_fndecl_34470 ata_lookup_timeout_table fndecl 1 34470 NULL
145686 +disable_so_sk_rmem_schedule_fndecl_34476 sk_rmem_schedule fndecl 3 34476 NULL
145687 +disable_so_end_seq_tcp_sack_block_34486 end_seq tcp_sack_block 0 34486 NULL
145688 +disable_so_min_delay_intel_ilk_power_mgmt_34505 min_delay intel_ilk_power_mgmt 0 34505 NULL
145689 +disable_so_sol_time_fcoe_ctlr_34513 sol_time fcoe_ctlr 0 34513 NULL
145690 +disable_so_spu_set_interrupt_mode_fndecl_34518 spu_set_interrupt_mode fndecl 0 34518 NULL
145691 +disable_so_stmmac_interrupt_fndecl_34535 stmmac_interrupt fndecl 1 34535 NULL
145692 +disable_so_sin6_family_sockaddr_in6_34544 sin6_family sockaddr_in6 0 34544 NULL
145693 +disable_so_mem_addr__drm_via_descriptor_34550 mem_addr _drm_via_descriptor 0 34550 NULL
145694 +disable_so_root_server_addr_vardecl_34556 root_server_addr vardecl 0 34556 NULL
145695 +disable_so_pfkey_sadb_addr2xfrm_addr_fndecl_34565 pfkey_sadb_addr2xfrm_addr fndecl 0 34565 NULL
145696 +disable_so_map_sip_addr_fndecl_34566 map_sip_addr fndecl 2-3 34566 NULL
145697 +disable_so_path_refresh_time_mesh_config_34567 path_refresh_time mesh_config 0 34567 NULL nohasharray
145698 +disable_so_ccp_register_sha_algs_fndecl_34567 ccp_register_sha_algs fndecl 0 34567 &disable_so_path_refresh_time_mesh_config_34567
145699 +disable_so_max_tx_power_mwifiex_chan_freq_power_34571 max_tx_power mwifiex_chan_freq_power 0 34571 NULL
145700 +disable_so_last_mlx4_bitmap_34590 last mlx4_bitmap 0 34590 NULL
145701 +disable_so_alloc_cpumask_var_fndecl_34599 alloc_cpumask_var fndecl 2 34599 NULL
145702 +disable_so_addr_macb_dma_desc_34600 addr macb_dma_desc 0 34600 NULL
145703 +disable_so_eee_timer_vardecl_sxgbe_main_c_34602 eee_timer vardecl_sxgbe_main.c 0 34602 NULL nohasharray
145704 +disable_so_rdx_kvm_regs_34602 rdx kvm_regs 0 34602 &disable_so_eee_timer_vardecl_sxgbe_main_c_34602
145705 +disable_so_rsi_kvm_regs_34605 rsi kvm_regs 0 34605 NULL
145706 +disable_so_task_tgid_nr_ns_fndecl_34623 task_tgid_nr_ns fndecl 0 34623 NULL
145707 +disable_so_saddr_irnet_log_34630 saddr irnet_log 0 34630 NULL
145708 +disable_so_timestart_edc_34631 timestart edc 0 34631 NULL
145709 +disable_so_saddr_tcp4_pseudohdr_34636 saddr tcp4_pseudohdr 0 34636 NULL
145710 +disable_so_ab3100_mask_and_set_register_interruptible_fndecl_34643 ab3100_mask_and_set_register_interruptible fndecl 0 34643 NULL
145711 +disable_so_hsave_msr_nested_state_34651 hsave_msr nested_state 0 34651 NULL
145712 +disable_so_schedule_timeout_uninterruptible_fndecl_34670 schedule_timeout_uninterruptible fndecl 1-0 34670 NULL
145713 +disable_so_addr_tuner_i2c_props_34671 addr tuner_i2c_props 0 34671 NULL
145714 +disable_so_hash_ip4_expire_fndecl_34676 hash_ip4_expire fndecl 4 34676 NULL
145715 +disable_so_rxfunaddr_musb_csr_regs_34678 rxfunaddr musb_csr_regs 0 34678 NULL
145716 +disable_so_timer_intv_tipc_link_req_34680 timer_intv tipc_link_req 0 34680 NULL
145717 +disable_so_mounted_uid_ncp_fs_info_34684 mounted_uid ncp_fs_info 0 34684 NULL
145718 +disable_so_crypto_ablkcipher_setkey_fndecl_34685 crypto_ablkcipher_setkey fndecl 0-3 34685 NULL
145719 +disable_so_pm_qos_update_request_timeout_fndecl_34688 pm_qos_update_request_timeout fndecl 3-2 34688 NULL
145720 +disable_so_max_interrupt_work_vardecl_starfire_c_34691 max_interrupt_work vardecl_starfire.c 0 34691 NULL nohasharray
145721 +disable_so_register_dnaddr_notifier_fndecl_34691 register_dnaddr_notifier fndecl 0 34691 &disable_so_max_interrupt_work_vardecl_starfire_c_34691
145722 +disable_so_incr_cpu_timer_list_34693 incr cpu_timer_list 0 34693 NULL
145723 +disable_so_crypto_pcbc_decrypt_segment_fndecl_34695 crypto_pcbc_decrypt_segment fndecl 0 34695 NULL
145724 +disable_so_sgid_index_ib_global_route_34700 sgid_index ib_global_route 0 34700 NULL
145725 +disable_so_min_mtime_sit_info_34717 min_mtime sit_info 0 34717 NULL nohasharray
145726 +disable_so_panel_power_down_delay_intel_dp_34717 panel_power_down_delay intel_dp 0 34717 &disable_so_min_mtime_sit_info_34717
145727 +disable_so_i_hash_shift_vardecl_inode_c_34719 i_hash_shift vardecl_inode.c 0 34719 NULL
145728 +disable_so_wusb_trust_timeout_show_fndecl_34721 wusb_trust_timeout_show fndecl 0 34721 NULL nohasharray
145729 +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
145730 +disable_so_time_ntlmv2_resp_34723 time ntlmv2_resp 0 34723 NULL
145731 +disable_so_cache_time_vardecl_sbs_c_34731 cache_time vardecl_sbs.c 0 34731 NULL
145732 +disable_so_calc_eng_mem_clock_fndecl_34737 calc_eng_mem_clock fndecl 2-0 34737 NULL
145733 +disable_so_rx_time_us_qlcnic_nic_intr_coalesce_34739 rx_time_us qlcnic_nic_intr_coalesce 0 34739 NULL
145734 +disable_so_di_mtime_qnx4_inode_entry_34740 di_mtime qnx4_inode_entry 0 34740 NULL
145735 +disable_so_ts_paddr_start_ath_hw_34743 ts_paddr_start ath_hw 0 34743 NULL
145736 +disable_so_smsc95xx_enable_phy_wakeup_interrupts_fndecl_34747 smsc95xx_enable_phy_wakeup_interrupts fndecl 0-2 34747 NULL
145737 +disable_so_ccp_sha_finup_fndecl_34752 ccp_sha_finup fndecl 0 34752 NULL
145738 +disable_so_sdr_fm_freq_vivid_dev_34755 sdr_fm_freq vivid_dev 0 34755 NULL
145739 +disable_so_out_n_analog_pcm_runtime_34756 out_n_analog pcm_runtime 0 34756 NULL
145740 +disable_so_dmaaddr_net2280_dma_34761 dmaaddr net2280_dma 0 34761 NULL
145741 +disable_so_wl12xx_tx_delayed_compl_fndecl_34763 wl12xx_tx_delayed_compl fndecl 0 34763 NULL
145742 +disable_so_uv_rtc_set_timer_fndecl_34765 uv_rtc_set_timer fndecl 1 34765 NULL
145743 +disable_so_switch_start_time_ath_chanctx_sched_34766 switch_start_time ath_chanctx_sched 0 34766 NULL
145744 +disable_so_xhci_calculate_intel_u2_timeout_fndecl_34769 xhci_calculate_intel_u2_timeout fndecl 0 34769 NULL
145745 +disable_so_addrconf_get_prefix_route_fndecl_34770 addrconf_get_prefix_route fndecl 2 34770 NULL nohasharray
145746 +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
145747 +disable_so_ts_total_peak_time_ref_34800 ts_total peak_time_ref 0 34800 NULL nohasharray
145748 +disable_so_airtime_link_metric_get_fndecl_34800 airtime_link_metric_get fndecl 0 34800 &disable_so_ts_total_peak_time_ref_34800
145749 +disable_so_btrfsic_block_link_hashtable_lookup_fndecl_34807 btrfsic_block_link_hashtable_lookup fndecl 2-4 34807 NULL
145750 +disable_so_posix_cpu_nsleep_fndecl_34821 posix_cpu_nsleep fndecl 1 34821 NULL
145751 +disable_so_phys_addr_kvm_coalesced_mmio_34828 phys_addr kvm_coalesced_mmio 0 34828 NULL
145752 +disable_so_baddr_sym_m_vtob_34832 baddr sym_m_vtob 0 34832 NULL
145753 +disable_so_tp_set_timers_fndecl_34836 tp_set_timers fndecl 2 34836 NULL nohasharray
145754 +disable_so_clock_t_to_jiffies_fndecl_34836 clock_t_to_jiffies fndecl 0-1 34836 &disable_so_tp_set_timers_fndecl_34836
145755 +disable_so_bq2415x_sysfs_show_timer_fndecl_34838 bq2415x_sysfs_show_timer fndecl 0 34838 NULL
145756 +disable_so_compat_sys_utimensat_fndecl_34845 compat_sys_utimensat fndecl 1-0 34845 NULL
145757 +disable_so_be64_to_timespec_fndecl_34857 be64_to_timespec fndecl 1 34857 NULL
145758 +disable_so_bus_addr_drm_ati_pcigart_info_34860 bus_addr drm_ati_pcigart_info 0 34860 NULL
145759 +disable_so_rt2x00crypto_rx_insert_iv_fndecl_34864 rt2x00crypto_rx_insert_iv fndecl 2 34864 NULL
145760 +disable_so___mmc_set_clock_fndecl_34870 __mmc_set_clock fndecl 2 34870 NULL
145761 +disable_so_node_random_fndecl_34871 node_random fndecl 0 34871 NULL
145762 +disable_so_timer_endnode_hello_message_34875 timer endnode_hello_message 0 34875 NULL
145763 +disable_so_drbg_hash_df_fndecl_34876 drbg_hash_df fndecl 0-3 34876 NULL
145764 +disable_so_xfs_btree_shift_keys_fndecl_34880 xfs_btree_shift_keys fndecl 4 34880 NULL
145765 +disable_so_check_freqs_fndecl_34886 check_freqs fndecl 2 34886 NULL
145766 +disable_so_zd_iowrite16_fndecl_34890 zd_iowrite16 fndecl 0 34890 NULL
145767 +disable_so_timespec_to_be64_fndecl_34898 timespec_to_be64 fndecl 0 34898 NULL
145768 +disable_so_random_frame_fotg210_hcd_34908 random_frame fotg210_hcd 0 34908 NULL
145769 +disable_so___addrconf_sysctl_register_fndecl_34918 __addrconf_sysctl_register fndecl 0 34918 NULL
145770 +disable_so_addr_sge_fl_34923 addr sge_fl 0 34923 NULL
145771 +disable_so_irq_timeout_read_fndecl_34926 irq_timeout_read fndecl 3-0 34926 NULL
145772 +disable_so_show_interrupt_enable_fndecl_34935 show_interrupt_enable fndecl 0 34935 NULL
145773 +disable_so_sctp_getsockopt_paddr_thresholds_fndecl_34938 sctp_getsockopt_paddr_thresholds fndecl 0 34938 NULL
145774 +disable_so_nilfs_superblock_sb_write_time_show_fndecl_34943 nilfs_superblock_sb_write_time_show fndecl 0 34943 NULL
145775 +disable_so_emac_addr_bnx2x_mac_vals_34948 emac_addr bnx2x_mac_vals 0 34948 NULL
145776 +disable_so_fs_tss_segment_32_34954 fs tss_segment_32 0 34954 NULL
145777 +disable_so_twl6030_interrupt_mask_fndecl_34960 twl6030_interrupt_mask fndecl 2-0 34960 NULL
145778 +disable_so_tda18271_sleep_fndecl_34961 tda18271_sleep fndecl 0 34961 NULL
145779 +disable_so_smack_task_setscheduler_fndecl_34976 smack_task_setscheduler fndecl 0 34976 NULL
145780 +disable_so_rp_ts_jiffies_xpc_activate_mq_msghdr_uv_34992 rp_ts_jiffies xpc_activate_mq_msghdr_uv 0 34992 NULL
145781 +disable_so_p_vaddr_elf64_phdr_34996 p_vaddr elf64_phdr 0 34996 NULL
145782 +disable_so_ath9k_hw_rf_set_freq_fndecl_35000 ath9k_hw_rf_set_freq fndecl 0 35000 NULL
145783 +disable_so_regulator_set_voltage_time_sel_fndecl_35005 regulator_set_voltage_time_sel fndecl 2-3-0 35005 NULL
145784 +disable_so_read_addr_stride___cache_35010 read_addr_stride __cache 0 35010 NULL
145785 +disable_so_get_slave_base_gid_ix_fndecl_35011 get_slave_base_gid_ix fndecl 0-2-3 35011 NULL
145786 +disable_so_sccb_reg_write_fndecl_35015 sccb_reg_write fndecl 2-3 35015 NULL
145787 +disable_so_fsl_pwm_calculate_period_cycles_fndecl_35019 fsl_pwm_calculate_period_cycles fndecl 0-2 35019 NULL nohasharray
145788 +disable_so_dn_hash_sock_fndecl_35019 dn_hash_sock fndecl 0 35019 &disable_so_fsl_pwm_calculate_period_cycles_fndecl_35019
145789 +disable_so_lp8788_rtc_set_time_fndecl_35021 lp8788_rtc_set_time fndecl 0 35021 NULL
145790 +disable_so_qos_ctl_libipw_hdr_3addrqos_35024 qos_ctl libipw_hdr_3addrqos 0 35024 NULL
145791 +disable_so_clk_divider_set_rate_fndecl_35029 clk_divider_set_rate fndecl 2-3 35029 NULL
145792 +disable_so_et1phyaddr_ssb_sprom_35034 et1phyaddr ssb_sprom 0 35034 NULL
145793 +disable_so_tg3_hwclock_to_timestamp_fndecl_35038 tg3_hwclock_to_timestamp fndecl 2 35038 NULL
145794 +disable_so_cipso_v4_bitmap_walk_fndecl_35041 cipso_v4_bitmap_walk fndecl 0-3 35041 NULL
145795 +disable_so_wmi_set_mac_address_fndecl_35043 wmi_set_mac_address fndecl 0 35043 NULL
145796 +disable_so_hpi_cobranet_get_macaddress_fndecl_35048 hpi_cobranet_get_macaddress fndecl 1 35048 NULL
145797 +disable_so_rds_sysctl_reconnect_max_jiffies_vardecl_35052 rds_sysctl_reconnect_max_jiffies vardecl 0 35052 NULL
145798 +disable_so_bg_inode_bitmap_ext2_group_desc_35053 bg_inode_bitmap ext2_group_desc 0 35053 NULL
145799 +disable_so_jiffies_u132_endp_35057 jiffies u132_endp 0 35057 NULL
145800 +disable_so_vivid_sdr_s_frequency_fndecl_35060 vivid_sdr_s_frequency fndecl 0 35060 NULL nohasharray
145801 +disable_so_bnx2x_rearm_latch_signal_fndecl_35060 bnx2x_rearm_latch_signal fndecl 2 35060 &disable_so_vivid_sdr_s_frequency_fndecl_35060
145802 +disable_so_SYSC_signalfd4_fndecl_35061 SYSC_signalfd4 fndecl 4 35061 NULL
145803 +disable_so_qp_get_mtt_addr_fndecl_35062 qp_get_mtt_addr fndecl 0 35062 NULL nohasharray
145804 +disable_so_put_dec_fndecl_35062 put_dec fndecl 2 35062 &disable_so_qp_get_mtt_addr_fndecl_35062
145805 +disable_so_time_perf_cgroup_info_35063 time perf_cgroup_info 0 35063 NULL
145806 +disable_so_xattr_datum_hashkey_fndecl_35065 xattr_datum_hashkey fndecl 4 35065 NULL
145807 +disable_so_fandiv1_nct6775_data_35066 fandiv1 nct6775_data 0 35066 NULL
145808 +disable_so_backbias_response_time_radeon_dpm_35069 backbias_response_time radeon_dpm 0 35069 NULL
145809 +disable_so_wrmsrl_safe_on_cpu_fndecl_35071 wrmsrl_safe_on_cpu fndecl 0-1 35071 NULL
145810 +disable_so_update_time_vardecl_page_writeback_c_35083 update_time vardecl_page-writeback.c 0 35083 NULL
145811 +disable_so_fifo_copy_timeout_rtl8139_private_35085 fifo_copy_timeout rtl8139_private 0 35085 NULL
145812 +disable_so_kstrtou16_from_user_fndecl_35089 kstrtou16_from_user fndecl 2 35089 NULL
145813 +disable_so_atomic_check_drm_crtc_helper_funcs_35115 atomic_check drm_crtc_helper_funcs 0 35115 NULL
145814 +disable_so_sprintf_fndecl_35121 sprintf fndecl 0 35121 NULL
145815 +disable_so_ipv6_add_addr_fndecl_35131 ipv6_add_addr fndecl 4-5-7-8-6 35131 NULL
145816 +disable_so_free_irq_fndecl_35135 free_irq fndecl 1 35135 NULL
145817 +disable_so_inet_addr_onlink_fndecl_35142 inet_addr_onlink fndecl 2-3 35142 NULL
145818 +disable_so_dbg_snprintf_key_fndecl_35144 dbg_snprintf_key fndecl 4 35144 NULL
145819 +disable_so_compute_guest_tsc_fndecl_35147 compute_guest_tsc fndecl 0 35147 NULL
145820 +disable_so_ieee80211_crypto_ccmp_decrypt_fndecl_35154 ieee80211_crypto_ccmp_decrypt fndecl 2 35154 NULL
145821 +disable_so_start_time_task_struct_35158 start_time task_struct 0 35158 NULL
145822 +disable_so__da9063_wdt_set_timeout_fndecl_35161 _da9063_wdt_set_timeout fndecl 2-0 35161 NULL
145823 +disable_so_hard_add_expires_seconds_xfrm_lifetime_cfg_35162 hard_add_expires_seconds xfrm_lifetime_cfg 0 35162 NULL
145824 +disable_so_page_address_ms_param_register_35167 page_address ms_param_register 0 35167 NULL nohasharray
145825 +disable_so_rsaddr_irnet_socket_35167 rsaddr irnet_socket 0 35167 &disable_so_page_address_ms_param_register_35167
145826 +disable_so_acpi_os_remove_interrupt_handler_fndecl_35171 acpi_os_remove_interrupt_handler fndecl 1 35171 NULL
145827 +disable_so_hash_mac4_expire_fndecl_35179 hash_mac4_expire fndecl 4 35179 NULL
145828 +disable_so_wd_timeout_irlap_cb_35189 wd_timeout irlap_cb 0 35189 NULL
145829 +disable_so_bitmap_set_memory_bits_fndecl_35200 bitmap_set_memory_bits fndecl 2 35200 NULL
145830 +disable_so_o2nm_cluster_attr_idle_timeout_ms_read_fndecl_35219 o2nm_cluster_attr_idle_timeout_ms_read fndecl 0 35219 NULL
145831 +disable_so_set_clock_sdhci_ops_35233 set_clock sdhci_ops 2 35233 NULL
145832 +disable_so_dib3000mc_set_timing_fndecl_35234 dib3000mc_set_timing fndecl 2-3 35234 NULL
145833 +disable_so_ui_ctimensec_ufs2_inode_35235 ui_ctimensec ufs2_inode 0 35235 NULL nohasharray
145834 +disable_so_timerfd_fget_fndecl_35235 timerfd_fget fndecl 1 35235 &disable_so_ui_ctimensec_ufs2_inode_35235
145835 +disable_so_fat_time_fat2unix_fndecl_35238 fat_time_fat2unix fndecl 5-4-3 35238 NULL nohasharray
145836 +disable_so_c_reconnect_jiffies_rds_connection_35238 c_reconnect_jiffies rds_connection 0 35238 &disable_so_fat_time_fat2unix_fndecl_35238
145837 +disable_so_link_transition_jiffies_cas_35242 link_transition_jiffies cas 0 35242 NULL
145838 +disable_so_nested_vmx_load_msr_fndecl_35245 nested_vmx_load_msr fndecl 2 35245 NULL
145839 +disable_so_freqmax_snd_usb_endpoint_35248 freqmax snd_usb_endpoint 0 35248 NULL
145840 +disable_so___ocfs2_write_remove_suid_fndecl_35250 __ocfs2_write_remove_suid fndecl 0 35250 NULL
145841 +disable_so_si_parse_pplib_clock_info_fndecl_35257 si_parse_pplib_clock_info fndecl 3 35257 NULL
145842 +disable_so_nfs_init_timeout_values_fndecl_35265 nfs_init_timeout_values fndecl 3-4-2 35265 NULL
145843 +disable_so_pm_generic_runtime_suspend_fndecl_35268 pm_generic_runtime_suspend fndecl 0 35268 NULL
145844 +disable_so_err_time_ip_tunnel_35271 err_time ip_tunnel 0 35271 NULL
145845 +disable_so_addr_1_qla8044_minidump_entry_pollrdmwr_35274 addr_1 qla8044_minidump_entry_pollrdmwr 0 35274 NULL
145846 +disable_so_simple_strtoull_fndecl_35278 simple_strtoull fndecl 0 35278 NULL
145847 +disable_so_jiffies_to_wait_irctl_35279 jiffies_to_wait irctl 0 35279 NULL
145848 +disable_so_delay_loop_fndecl_35280 delay_loop fndecl 1 35280 NULL
145849 +disable_so_lbs_set_deep_sleep_fndecl_35287 lbs_set_deep_sleep fndecl 0 35287 NULL nohasharray
145850 +disable_so_log_start_addr_client_hdr_35287 log_start_addr client_hdr 0 35287 &disable_so_lbs_set_deep_sleep_fndecl_35287
145851 +disable_so_max_sleep_period_ieee80211_conf_35289 max_sleep_period ieee80211_conf 0 35289 NULL
145852 +disable_so_default_mclk_radeon_clock_35306 default_mclk radeon_clock 0 35306 NULL nohasharray
145853 +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
145854 +disable_so_sctp_setsockopt_primary_addr_fndecl_35330 sctp_setsockopt_primary_addr fndecl 3-0 35330 NULL
145855 +disable_so_sys_setreuid_fndecl_35338 sys_setreuid fndecl 0-1-2 35338 NULL
145856 +disable_so_tailbuf_paddr_gr_ep_35341 tailbuf_paddr gr_ep 0 35341 NULL
145857 +disable_so_hpi_write_words_le16_fndecl_35350 hpi_write_words_le16 fndecl 2-4 35350 NULL
145858 +disable_so_kvm_set_irq_fndecl_35352 kvm_set_irq fndecl 3-2 35352 NULL
145859 +disable_so_rq_pbl_addr_lo_fcoe_kwqe_conn_offload1_35353 rq_pbl_addr_lo fcoe_kwqe_conn_offload1 0 35353 NULL
145860 +disable_so_trim_timeout_mmc_ext_csd_35357 trim_timeout mmc_ext_csd 0 35357 NULL
145861 +disable_so_alps_get_bitmap_points_fndecl_35358 alps_get_bitmap_points fndecl 1 35358 NULL nohasharray
145862 +disable_so_nilfs_btree_node_init_fndecl_35358 nilfs_btree_node_init fndecl 4 35358 &disable_so_alps_get_bitmap_points_fndecl_35358
145863 +disable_so_fl_break_time_file_lock_35359 fl_break_time file_lock 0 35359 NULL
145864 +disable_so_read_addr_qla82xx_md_entry_cache_35362 read_addr qla82xx_md_entry_cache 0 35362 NULL
145865 +disable_so_maddr_xmaddr_35364 maddr xmaddr 0 35364 NULL
145866 +disable_so_timeout_per_command_vscsiif_request_35368 timeout_per_command vscsiif_request 0 35368 NULL
145867 +disable_so_fuse_read_interrupt_fndecl_35386 fuse_read_interrupt fndecl 3-0 35386 NULL
145868 +disable_so_vsock_addr_init_fndecl_35395 vsock_addr_init fndecl 2 35395 NULL
145869 +disable_so_khugepaged_alloc_sleep_millisecs_vardecl_huge_memory_c_35404 khugepaged_alloc_sleep_millisecs vardecl_huge_memory.c 0 35404 NULL
145870 +disable_so_crypto_ahash_setkey_fndecl_35405 crypto_ahash_setkey fndecl 0-3 35405 NULL
145871 +disable_so_en_addr1_nphy_rf_control_override_rev3_35419 en_addr1 nphy_rf_control_override_rev3 0 35419 NULL
145872 +disable_so_rds_ib_update_ipaddr_fndecl_35431 rds_ib_update_ipaddr fndecl 0-2 35431 NULL
145873 +disable_so_address_atto_vda_sge_35432 address atto_vda_sge 0 35432 NULL
145874 +disable_so_w1_process_command_addremove_fndecl_35438 w1_process_command_addremove fndecl 0 35438 NULL
145875 +disable_so_smp_cmd_pairing_random_fndecl_35441 smp_cmd_pairing_random fndecl 0 35441 NULL
145876 +disable_so_crypto_gcm_module_init_fndecl_35446 crypto_gcm_module_init fndecl 0 35446 NULL
145877 +disable_so_ath5k_hw_get_default_slottime_fndecl_35448 ath5k_hw_get_default_slottime fndecl 0 35448 NULL
145878 +disable_so_ac_gid_acct_v3_35461 ac_gid acct_v3 0 35461 NULL nohasharray
145879 +disable_so_bitmap_checkpage_fndecl_35461 bitmap_checkpage fndecl 2 35461 &disable_so_ac_gid_acct_v3_35461
145880 +disable_so_bitmap_blkno_ocfs2_super_35475 bitmap_blkno ocfs2_super 0 35475 NULL
145881 +disable_so_rate_dummy_systimer_pcm_35487 rate dummy_systimer_pcm 0 35487 NULL
145882 +disable_so_moder_time_mlx4_en_cq_35496 moder_time mlx4_en_cq 0 35496 NULL
145883 +disable_so_orion_spi_runtime_resume_fndecl_35506 orion_spi_runtime_resume fndecl 0 35506 NULL
145884 +disable_so_monotonic_time_snsec_vsyscall_gtod_data_35513 monotonic_time_snsec vsyscall_gtod_data 0 35513 NULL
145885 +disable_so_mceusb_process_ir_data_fndecl_35515 mceusb_process_ir_data fndecl 2 35515 NULL
145886 +disable_so_dst_set_freq_fndecl_35516 dst_set_freq fndecl 2 35516 NULL
145887 +disable_so_rtl8139_weird_interrupt_fndecl_35523 rtl8139_weird_interrupt fndecl 4-5 35523 NULL
145888 +disable_so_irlmp_start_discovery_timer_fndecl_35529 irlmp_start_discovery_timer fndecl 2 35529 NULL
145889 +disable_so_address_SGentry_35534 address SGentry 0 35534 NULL
145890 +disable_so_src_clk_freq_msdc_host_35541 src_clk_freq msdc_host 0 35541 NULL
145891 +disable_so_SYSC_signal_fndecl_35543 SYSC_signal fndecl 1 35543 NULL
145892 +disable_so_current_frequency_lgdt3306a_state_35547 current_frequency lgdt3306a_state 0 35547 NULL
145893 +disable_so_i_rt_spc_timelimit_qc_info_35555 i_rt_spc_timelimit qc_info 0 35555 NULL
145894 +disable_so_host_kvm_shared_msr_values_35560 host kvm_shared_msr_values 0 35560 NULL
145895 +disable_so_mapped_loc_addr_nes_cm_info_35561 mapped_loc_addr nes_cm_info 0 35561 NULL
145896 +disable_so_ath6kl_set_addrwin_reg_fndecl_35566 ath6kl_set_addrwin_reg fndecl 0-2 35566 NULL
145897 +disable_so_output_sleep_fndecl_35570 output_sleep fndecl 1 35570 NULL
145898 +disable_so_aes_decrypt_fail_read_fndecl_35596 aes_decrypt_fail_read fndecl 0-3 35596 NULL
145899 +disable_so_hw_timeout_redrat3_dev_35597 hw_timeout redrat3_dev 0 35597 NULL
145900 +disable_so_cx231xx_set_analog_freq_fndecl_35598 cx231xx_set_analog_freq fndecl 2 35598 NULL
145901 +disable_so_sctp_conn_schedule_fndecl_35608 sctp_conn_schedule fndecl 1 35608 NULL
145902 +disable_so_runtime_suspend_sleep_time_cyapa_35610 runtime_suspend_sleep_time cyapa 0 35610 NULL
145903 +disable_so_debug_dma_unmap_page_fndecl_35623 debug_dma_unmap_page fndecl 3-2 35623 NULL
145904 +disable_so_timecounter_read_fndecl_35625 timecounter_read fndecl 0 35625 NULL
145905 +disable_so_clock_mmc_ios_35630 clock mmc_ios 0 35630 NULL
145906 +disable_so_pretimeout_kempld_wdt_data_35641 pretimeout kempld_wdt_data 0 35641 NULL
145907 +disable_so_time_show_fndecl_35660 time_show fndecl 0 35660 NULL
145908 +disable_so_div3_pll_div_35668 div3 pll_div 0 35668 NULL
145909 +disable_so_btree_get_extent_fndecl_35670 btree_get_extent fndecl 4-5 35670 NULL
145910 +disable_so_paddr_ath10k_skb_cb_35676 paddr ath10k_skb_cb 0 35676 NULL
145911 +disable_so_pci_bus_mraid_hba_info_35677 pci_bus mraid_hba_info 0 35677 NULL
145912 +disable_so_m41t80_get_datetime_fndecl_35678 m41t80_get_datetime fndecl 0 35678 NULL
145913 +disable_so_sh_tmu_clock_event_next_fndecl_35683 sh_tmu_clock_event_next fndecl 1 35683 NULL
145914 +disable_so_randomize_range_fndecl_35684 randomize_range fndecl 1-2-3-0 35684 NULL
145915 +disable_so_complete_signal_fndecl_35696 complete_signal fndecl 1 35696 NULL
145916 +disable_so_nft_hash_insert_fndecl_35701 nft_hash_insert fndecl 0 35701 NULL
145917 +disable_so_kvm_vm_ioctl_set_tss_addr_fndecl_35702 kvm_vm_ioctl_set_tss_addr fndecl 2 35702 NULL
145918 +disable_so_si2165_adjust_pll_divl_fndecl_35704 si2165_adjust_pll_divl fndecl 0 35704 NULL
145919 +disable_so_addr_l_xfer_desc_35720 addr_l xfer_desc 0 35720 NULL
145920 +disable_so_m_hash_dlm_message_35721 m_hash dlm_message 0 35721 NULL
145921 +disable_so_end_freq_khz_ieee80211_freq_range_35730 end_freq_khz ieee80211_freq_range 0 35730 NULL
145922 +disable_so_start_addr_vpdma_dtd_35734 start_addr vpdma_dtd 0 35734 NULL
145923 +disable_so_red_calc_qavg_from_idle_time_fndecl_35745 red_calc_qavg_from_idle_time fndecl 0 35745 NULL
145924 +disable_so_cg_spll_spread_spectrum_2_si_clock_registers_35754 cg_spll_spread_spectrum_2 si_clock_registers 0 35754 NULL
145925 +disable_so_l2tp_flowinfo_sockaddr_l2tpip6_35758 l2tp_flowinfo sockaddr_l2tpip6 0 35758 NULL nohasharray
145926 +disable_so_sk_txhash_sock_35758 sk_txhash sock 0 35758 &disable_so_l2tp_flowinfo_sockaddr_l2tpip6_35758
145927 +disable_so_get_mac_address_efx_nic_type_35761 get_mac_address efx_nic_type 0 35761 NULL
145928 +disable_so_crypto_aead_alg_ivsize_fndecl_35777 crypto_aead_alg_ivsize fndecl 0 35777 NULL
145929 +disable_so_vga_switcheroo_runtime_suspend_fndecl_35778 vga_switcheroo_runtime_suspend fndecl 0 35778 NULL
145930 +disable_so_sm_lookup_bitmap_fndecl_35780 sm_lookup_bitmap fndecl 2 35780 NULL
145931 +disable_so_r6040_interrupt_fndecl_35784 r6040_interrupt fndecl 1 35784 NULL
145932 +disable_so_timer_installed_vardecl_ad1848_c_35808 timer_installed vardecl_ad1848.c 0 35808 NULL
145933 +disable_so_addr_to_kill_35815 addr to_kill 0 35815 NULL
145934 +disable_so_postsleep_max_us_mmc_ioc_cmd_35817 postsleep_max_us mmc_ioc_cmd 0 35817 NULL
145935 +disable_so_calc_hash_fndecl_35821 calc_hash fndecl 0-3 35821 NULL
145936 +disable_so_testscript_addr_ath6kl_hw_35825 testscript_addr ath6kl_hw 0 35825 NULL
145937 +disable_so_dma_addr_cpcs_trailer_desc_35826 dma_addr cpcs_trailer_desc 0 35826 NULL nohasharray
145938 +disable_so_nr_threads_signal_struct_35826 nr_threads signal_struct 0 35826 &disable_so_dma_addr_cpcs_trailer_desc_35826
145939 +disable_so_iwl_mvm_schedule_csa_period_fndecl_35828 iwl_mvm_schedule_csa_period fndecl 3-4-0 35828 NULL
145940 +disable_so_nfs4_schedule_stateid_recovery_fndecl_35861 nfs4_schedule_stateid_recovery fndecl 0 35861 NULL
145941 +disable_so_timeout_last_ncp_server_35864 timeout_last ncp_server 0 35864 NULL
145942 +disable_so_send_utimes_fndecl_35871 send_utimes fndecl 3-0-2 35871 NULL nohasharray
145943 +disable_so_remote_rp_ts_jiffies_xpc_partition_35871 remote_rp_ts_jiffies xpc_partition 0 35871 &disable_so_send_utimes_fndecl_35871
145944 +disable_so_current_frequency_lgdt3305_state_35902 current_frequency lgdt3305_state 0 35902 NULL
145945 +disable_so_dram_addr_to_input_addr_fndecl_35905 dram_addr_to_input_addr fndecl 0-2 35905 NULL nohasharray
145946 +disable_so_ifa_local_dn_ifaddr_35905 ifa_local dn_ifaddr 0 35905 &disable_so_dram_addr_to_input_addr_fndecl_35905
145947 +disable_so_proc_uid_map_write_fndecl_35919 proc_uid_map_write fndecl 0-3 35919 NULL
145948 +disable_so_snd_timer_user_fasync_fndecl_35926 snd_timer_user_fasync fndecl 1 35926 NULL nohasharray
145949 +disable_so_ecb_aes_encrypt_fndecl_35926 ecb_aes_encrypt fndecl 0-4 35926 &disable_so_snd_timer_user_fasync_fndecl_35926
145950 +disable_so_st_ctime_sec_p9_stat_dotl_35932 st_ctime_sec p9_stat_dotl 0 35932 NULL
145951 +disable_so_cg_spll_func_cntl_rv730_clock_registers_35937 cg_spll_func_cntl rv730_clock_registers 0 35937 NULL
145952 +disable_so_phy_addr_niu_35946 phy_addr niu 0 35946 NULL
145953 +disable_so_curr_freq_ufs_clk_info_35949 curr_freq ufs_clk_info 0 35949 NULL
145954 +disable_so_ac_gid_taskstats_35951 ac_gid taskstats 0 35951 NULL
145955 +disable_so_addr_hi_eth_rx_bd_35955 addr_hi eth_rx_bd 0 35955 NULL nohasharray
145956 +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
145957 +disable_so_crypto_cmac_digest_setkey_fndecl_35967 crypto_cmac_digest_setkey fndecl 0-3 35967 NULL
145958 +disable_so_abort_mfi_phys_addr_hi_megasas_abort_frame_35969 abort_mfi_phys_addr_hi megasas_abort_frame 0 35969 NULL
145959 +disable_so_pch_can_bit_set_fndecl_35970 pch_can_bit_set fndecl 2 35970 NULL
145960 +disable_so_kvasprintf_fndecl_35976 kvasprintf fndecl 1 35976 NULL
145961 +disable_so___bitmap_parse_fndecl_35977 __bitmap_parse fndecl 0-2-5 35977 NULL
145962 +disable_so_nct6775_select_fan_div_fndecl_35983 nct6775_select_fan_div fndecl 3-4 35983 NULL
145963 +disable_so_ip_hash_ip4_elem_35987 ip hash_ip4_elem 0 35987 NULL
145964 +disable_so_nct6775_write_fan_div_common_fndecl_35989 nct6775_write_fan_div_common fndecl 2 35989 NULL nohasharray
145965 +disable_so_get_mtime_fndecl_35989 get_mtime fndecl 0 35989 &disable_so_nct6775_write_fan_div_common_fndecl_35989
145966 +disable_so_sctp_getsockopt_peer_addr_params_fndecl_35998 sctp_getsockopt_peer_addr_params fndecl 0 35998 NULL
145967 +disable_so_tuner_frequency_stv0299_state_35999 tuner_frequency stv0299_state 0 35999 NULL
145968 +disable_so_sinfo_timetolive_sctp_sndrcvinfo_36000 sinfo_timetolive sctp_sndrcvinfo 0 36000 NULL
145969 +disable_so_h_start_jiffies_jbd2_journal_handle_36008 h_start_jiffies jbd2_journal_handle 0 36008 NULL nohasharray
145970 +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
145971 +disable_so_uv_local_mmr_address_fndecl_36009 uv_local_mmr_address fndecl 1 36009 NULL
145972 +disable_so_adxl34x_autosleep_show_fndecl_36014 adxl34x_autosleep_show fndecl 0 36014 NULL
145973 +disable_so_tst_addr_ns_dev_36023 tst_addr ns_dev 0 36023 NULL
145974 +disable_so_addr_acard_sg_36025 addr acard_sg 0 36025 NULL
145975 +disable_so_pcxhr_sub_get_external_clock_fndecl_36041 pcxhr_sub_get_external_clock fndecl 0 36041 NULL
145976 +disable_so_address_fault_36043 address fault 0 36043 NULL
145977 +disable_so_s35390a_rtc_set_time_fndecl_36048 s35390a_rtc_set_time fndecl 0 36048 NULL nohasharray
145978 +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
145979 +disable_so_mmd_addr_reg_val_36052 mmd_addr reg_val 0 36052 NULL
145980 +disable_so_ips_flashbusaddr_vardecl_ips_c_36053 ips_flashbusaddr vardecl_ips.c 0 36053 NULL
145981 +disable_so_i_spc_timelimit_qc_info_36081 i_spc_timelimit qc_info 0 36081 NULL
145982 +disable_so_st_gid_stat_36085 st_gid stat 0 36085 NULL
145983 +disable_so_acpi_ev_address_space_dispatch_fndecl_36089 acpi_ev_address_space_dispatch fndecl 0-4-5 36089 NULL
145984 +disable_so_mpll_ad_func_cntl_2_ni_clock_registers_36093 mpll_ad_func_cntl_2 ni_clock_registers 0 36093 NULL
145985 +disable_so_i_atime_ocfs2_dinode_36099 i_atime ocfs2_dinode 0 36099 NULL
145986 +disable_so_setup_timer_IRQ0_pin_fndecl_36100 setup_timer_IRQ0_pin fndecl 3-2 36100 NULL
145987 +disable_so_error_info_addr_mvm_alive_resp_36103 error_info_addr mvm_alive_resp 0 36103 NULL nohasharray
145988 +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
145989 +disable_so_kstrtoull_fndecl_36106 kstrtoull fndecl 0 36106 NULL
145990 +disable_so_fax_head_line_time_fndecl_36108 fax_head_line_time fndecl 0 36108 NULL
145991 +disable_so_rtl8152_set_mac_address_fndecl_36112 rtl8152_set_mac_address fndecl 0 36112 NULL
145992 +disable_so_t_sleep_cycle_at86rf2xx_chip_data_36118 t_sleep_cycle at86rf2xx_chip_data 0 36118 NULL
145993 +disable_so_no_quota_btrfs_delayed_ref_node_36121 no_quota btrfs_delayed_ref_node 0 36121 NULL nohasharray
145994 +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
145995 +disable_so_shutdown_time_vardecl_torture_c_36136 shutdown_time vardecl_torture.c 0 36136 NULL nohasharray
145996 +disable_so_i40e_init_interrupt_scheme_fndecl_36136 i40e_init_interrupt_scheme fndecl 0 36136 &disable_so_shutdown_time_vardecl_torture_c_36136
145997 +disable_so_ath5k_hw_clocktoh_fndecl_36137 ath5k_hw_clocktoh fndecl 0-2 36137 NULL
145998 +disable_so_addr_off_bfa_flash_s_36155 addr_off bfa_flash_s 0 36155 NULL
145999 +disable_so_mlx4_bitmap_free_fndecl_36158 mlx4_bitmap_free fndecl 2 36158 NULL
146000 +disable_so_setup_cluster_no_bitmap_fndecl_36163 setup_cluster_no_bitmap fndecl 4-5-6-7 36163 NULL
146001 +disable_so_last_queue_full_time_bfad_itnim_s_36172 last_queue_full_time bfad_itnim_s 0 36172 NULL
146002 +disable_so_do_cpuid_ent_fndecl_36174 do_cpuid_ent fndecl 5 36174 NULL
146003 +disable_so_lzo_compress_fndecl_36177 lzo_compress fndecl 3 36177 NULL
146004 +disable_so_set_radio_freq_fndecl_36200 set_radio_freq fndecl 2 36200 NULL
146005 +disable_so_get_random_bytes_arch_fndecl_36201 get_random_bytes_arch fndecl 2 36201 NULL
146006 +disable_so_netlbl_unlhsh_add_addr4_fndecl_36206 netlbl_unlhsh_add_addr4 fndecl 4-0 36206 NULL
146007 +disable_so_assert_file_addr_sdpcm_shared_36210 assert_file_addr sdpcm_shared 0 36210 NULL
146008 +disable_so_timestamp_rxdone_entry_desc_36213 timestamp rxdone_entry_desc 0 36213 NULL
146009 +disable_so_interrupts_open_fndecl_36230 interrupts_open fndecl 0 36230 NULL
146010 +disable_so_nhash_jffs2_full_dirent_36231 nhash jffs2_full_dirent 0 36231 NULL
146011 +disable_so_max_level_cpufreq_cooling_device_36241 max_level cpufreq_cooling_device 0 36241 NULL
146012 +disable_so_ovl_set_timestamps_fndecl_36245 ovl_set_timestamps fndecl 0 36245 NULL
146013 +disable_so_evtchn_interrupt_fndecl_36255 evtchn_interrupt fndecl 1 36255 NULL
146014 +disable_so_timeout_ip_vs_service_36264 timeout ip_vs_service 0 36264 NULL
146015 +disable_so_dwell_time_dfs_conf_scan_settings_36271 dwell_time_dfs conf_scan_settings 0 36271 NULL
146016 +disable_so_drbd_send_uuids_fndecl_36274 drbd_send_uuids fndecl 0 36274 NULL
146017 +disable_so_bd_list_addr_lo_bnx2i_logout_request_36277 bd_list_addr_lo bnx2i_logout_request 0 36277 NULL
146018 +disable_so_rds_ib_add_ipaddr_fndecl_36278 rds_ib_add_ipaddr fndecl 2 36278 NULL nohasharray
146019 +disable_so_nilfs_btree_assign_gc_fndecl_36278 nilfs_btree_assign_gc fndecl 0-3 36278 &disable_so_rds_ib_add_ipaddr_fndecl_36278
146020 +disable_so_last_post_time_vardecl_hv_balloon_c_36289 last_post_time vardecl_hv_balloon.c 0 36289 NULL
146021 +disable_so_skb_physaddr_macb_36295 skb_physaddr macb 0 36295 NULL
146022 +disable_so_dq_hash_bits_vardecl_dquot_c_36296 dq_hash_bits vardecl_dquot.c 0 36296 NULL
146023 +disable_so_rpfilter_get_saddr_fndecl_36300 rpfilter_get_saddr fndecl 0-1 36300 NULL
146024 +disable_so_sys_setregid16_fndecl_36302 sys_setregid16 fndecl 0-1-2 36302 NULL
146025 +disable_so_f_frequency_fc2580_dev_36307 f_frequency fc2580_dev 0 36307 NULL
146026 +disable_so_address_r8a66597_td_36315 address r8a66597_td 0 36315 NULL
146027 +disable_so_address_acpi_madt_local_apic_override_36325 address acpi_madt_local_apic_override 0 36325 NULL nohasharray
146028 +disable_so_num_addresses_i40e_aqc_macvlan_36325 num_addresses i40e_aqc_macvlan 0 36325 &disable_so_address_acpi_madt_local_apic_override_36325
146029 +disable_so_cache_time_vardecl_ds2760_battery_c_36329 cache_time vardecl_ds2760_battery.c 0 36329 NULL
146030 +disable_so_ext_start_addr_hi_i740fb_par_36335 ext_start_addr_hi i740fb_par 0 36335 NULL
146031 +disable_so_mlx4_get_slave_node_guid_fndecl_36336 mlx4_get_slave_node_guid fndecl 2 36336 NULL
146032 +disable_so_reg_delay_fndecl_36338 reg_delay fndecl 5 36338 NULL
146033 +disable_so_dev_addr_del_fndecl_36356 dev_addr_del fndecl 0 36356 NULL
146034 +disable_so_address_low_b43_dmadesc64_36370 address_low b43_dmadesc64 0 36370 NULL
146035 +disable_so_cpuid_seek_fndecl_36372 cpuid_seek fndecl 0-2 36372 NULL
146036 +disable_so_mhash_entries_vardecl_namespace_c_36377 mhash_entries vardecl_namespace.c 0 36377 NULL
146037 +disable_so_btree_grow_fndecl_36388 btree_grow fndecl 3 36388 NULL
146038 +disable_so_ie6xx_wdt_set_timeout_fndecl_36389 ie6xx_wdt_set_timeout fndecl 2 36389 NULL
146039 +disable_so_cq_page_table_addr_hi_iscsi_kwqe_conn_offload1_36403 cq_page_table_addr_hi iscsi_kwqe_conn_offload1 0 36403 NULL
146040 +disable_so_phys_addr_ntb_mw_36409 phys_addr ntb_mw 0 36409 NULL
146041 +disable_so_tsl2563_write_interrupt_config_fndecl_36415 tsl2563_write_interrupt_config fndecl 0 36415 NULL
146042 +disable_so_bitmap_bitremap_fndecl_36419 bitmap_bitremap fndecl 4-0-1 36419 NULL
146043 +disable_so_cryptd_hash_final_enqueue_fndecl_36420 cryptd_hash_final_enqueue fndecl 0 36420 NULL
146044 +disable_so_addr_azx_rb_36425 addr azx_rb 0 36425 NULL
146045 +disable_so_discov_timeout_hci_dev_36432 discov_timeout hci_dev 0 36432 NULL
146046 +disable_so_interrupt_event_ixgbe_adapter_36433 interrupt_event ixgbe_adapter 0 36433 NULL
146047 +disable_so_hpi_bitstream_set_clock_edge_fndecl_36438 hpi_bitstream_set_clock_edge fndecl 1-0 36438 NULL
146048 +disable_so_atime_fuse_setattr_in_36441 atime fuse_setattr_in 0 36441 NULL
146049 +disable_so_family_xfrm_usersa_info_36443 family xfrm_usersa_info 0 36443 NULL
146050 +disable_so_wlc_phy_channel2freq_fndecl_36444 wlc_phy_channel2freq fndecl 1 36444 NULL
146051 +disable_so_max_delay_intel_ilk_power_mgmt_36447 max_delay intel_ilk_power_mgmt 0 36447 NULL
146052 +disable_so_sys_setregid_fndecl_36457 sys_setregid fndecl 0-1-2 36457 NULL
146053 +disable_so_mpll_dq_func_cntl_rv770_clock_registers_36466 mpll_dq_func_cntl rv770_clock_registers 0 36466 NULL
146054 +disable_so_shortcal_timer_ath_ani_36468 shortcal_timer ath_ani 0 36468 NULL
146055 +disable_so_check_config_address_fndecl_36471 check_config_address fndecl 4 36471 NULL nohasharray
146056 +disable_so_db_addr_mlx5_ib_create_srq_36471 db_addr mlx5_ib_create_srq 0 36471 &disable_so_check_config_address_fndecl_36471
146057 +disable_so_sysctl_rose_reset_request_timeout_vardecl_36479 sysctl_rose_reset_request_timeout vardecl 0 36479 NULL
146058 +disable_so_address_mspro_attr_entry_36482 address mspro_attr_entry 0 36482 NULL
146059 +disable_so_min_discovery_timeout_mesh_config_36485 min_discovery_timeout mesh_config 0 36485 NULL
146060 +disable_so_bitmap_il_ht_agg_36487 bitmap il_ht_agg 0 36487 NULL
146061 +disable_so_crypto_ecb_crypt_fndecl_36489 crypto_ecb_crypt fndecl 0 36489 NULL
146062 +disable_so_address_arch_hw_breakpoint_36491 address arch_hw_breakpoint 0 36491 NULL
146063 +disable_so_flush_timer_iwl_lq_sta_36505 flush_timer iwl_lq_sta 0 36505 NULL
146064 +disable_so_demod_address_sp8870_config_36507 demod_address sp8870_config 0 36507 NULL
146065 +disable_so_hashbin_remove_fndecl_36512 hashbin_remove fndecl 2 36512 NULL
146066 +disable_so_mpll_ad_func_cntl_ni_clock_registers_36523 mpll_ad_func_cntl ni_clock_registers 0 36523 NULL
146067 +disable_so_timeout_usbdevfs_bulktransfer_36525 timeout usbdevfs_bulktransfer 0 36525 NULL
146068 +disable_so_ctl_freq_cx231xx_36526 ctl_freq cx231xx 0 36526 NULL
146069 +disable_so_last_isr_time_misc_stats_36527 last_isr_time misc_stats 0 36527 NULL
146070 +disable_so_mlx4_gen_guid_change_eqe_fndecl_36529 mlx4_gen_guid_change_eqe fndecl 0-2-3 36529 NULL
146071 +disable_so_addr_e1000_phy_info_36530 addr e1000_phy_info 0 36530 NULL nohasharray
146072 +disable_so_misc_mce_36530 misc mce 0 36530 &disable_so_addr_e1000_phy_info_36530
146073 +disable_so_align_addr_sdhci_host_36535 align_addr sdhci_host 0 36535 NULL
146074 +disable_so_gran_sizek_mtrr_cleanup_result_36538 gran_sizek mtrr_cleanup_result 0 36538 NULL
146075 +disable_so_mcryptd_hash_export_fndecl_36554 mcryptd_hash_export fndecl 0 36554 NULL
146076 +disable_so_snd_opl3_timer_new_fndecl_36558 snd_opl3_timer_new fndecl 0-3-2 36558 NULL
146077 +disable_so_alarmtimer_rtc_interface_setup_fndecl_36561 alarmtimer_rtc_interface_setup fndecl 0 36561 NULL
146078 +disable_so_mb86a20s_read_signal_strength_fndecl_36562 mb86a20s_read_signal_strength fndecl 0 36562 NULL
146079 +disable_so_devm_request_threaded_irq_fndecl_36564 devm_request_threaded_irq fndecl 0-2-5 36564 NULL
146080 +disable_so_VDisplay_xtimings_36585 VDisplay xtimings 0 36585 NULL
146081 +disable_so_delay_usec_e1000_eeprom_info_36611 delay_usec e1000_eeprom_info 0 36611 NULL
146082 +disable_so_enabled_hrtimer_events_fusbh200_hcd_36613 enabled_hrtimer_events fusbh200_hcd 0 36613 NULL nohasharray
146083 +disable_so_myaddr_sym_hcb_36613 myaddr sym_hcb 0 36613 &disable_so_enabled_hrtimer_events_fusbh200_hcd_36613
146084 +disable_so_bmc150_accel_runtime_resume_fndecl_36616 bmc150_accel_runtime_resume fndecl 0 36616 NULL nohasharray
146085 +disable_so_frequency_tuner_simple_priv_36616 frequency tuner_simple_priv 0 36616 &disable_so_bmc150_accel_runtime_resume_fndecl_36616
146086 +disable_so_dll_cntl_ni_clock_registers_36640 dll_cntl ni_clock_registers 0 36640 NULL
146087 +disable_so_phys_addr_high_qlcnic_tx_mbx_36646 phys_addr_high qlcnic_tx_mbx 0 36646 NULL
146088 +disable_so_ntfs_bitmap_set_run_fndecl_36647 ntfs_bitmap_set_run fndecl 2-3 36647 NULL
146089 +disable_so_hfs_btree_open_fndecl_36648 hfs_btree_open fndecl 2 36648 NULL
146090 +disable_so_radio_tea5777_set_freq_fndecl_36650 radio_tea5777_set_freq fndecl 0 36650 NULL
146091 +disable_so_default_timeout_cyclades_port_36652 default_timeout cyclades_port 0 36652 NULL
146092 +disable_so_trinity_get_sleep_divider_id_from_clock_fndecl_36654 trinity_get_sleep_divider_id_from_clock fndecl 2 36654 NULL
146093 +disable_so_timeout_osst_tape_36656 timeout osst_tape 0 36656 NULL
146094 +disable_so_sda_falling_time_dw_i2c_dev_36665 sda_falling_time dw_i2c_dev 0 36665 NULL
146095 +disable_so_libipw_freq_to_channel_fndecl_36675 libipw_freq_to_channel fndecl 0-2 36675 NULL
146096 +disable_so_el3_interrupt_fndecl_36679 el3_interrupt fndecl 1 36679 NULL
146097 +disable_so_cg_spll_func_cntl_3_rv770_clock_registers_36680 cg_spll_func_cntl_3 rv770_clock_registers 0 36680 NULL
146098 +disable_so_resp_dma_addr_generic_pdu_resc_36683 resp_dma_addr generic_pdu_resc 0 36683 NULL
146099 +disable_so_store_imon_clock_fndecl_36685 store_imon_clock fndecl 0-4 36685 NULL
146100 +disable_so_kdbgetaddrarg_fndecl_36689 kdbgetaddrarg fndecl 0 36689 NULL
146101 +disable_so_ahash_def_finup_done1_fndecl_36695 ahash_def_finup_done1 fndecl 2 36695 NULL
146102 +disable_so_backlight_on_delay_intel_dp_36699 backlight_on_delay intel_dp 0 36699 NULL
146103 +disable_so_daddr_ipq_36701 daddr ipq 0 36701 NULL
146104 +disable_so_sha512_generic_mod_init_fndecl_36702 sha512_generic_mod_init fndecl 0 36702 NULL
146105 +disable_so_HYPERVISOR_dom0_op_fndecl_36705 HYPERVISOR_dom0_op fndecl 0 36705 NULL
146106 +disable_so_pll_ref_div_pll_ct_36716 pll_ref_div pll_ct 0 36716 NULL
146107 +disable_so_timecounter_cyc2time_fndecl_36723 timecounter_cyc2time fndecl 0-2 36723 NULL
146108 +disable_so_hello_time___bridge_info_36726 hello_time __bridge_info 0 36726 NULL
146109 +disable_so___clockevents_update_freq_fndecl_36730 __clockevents_update_freq fndecl 2 36730 NULL
146110 +disable_so_lvds_ssc_freq_intel_vbt_data_36732 lvds_ssc_freq intel_vbt_data 0 36732 NULL
146111 +disable_so_mlx4_bitmap_alloc_range_fndecl_36733 mlx4_bitmap_alloc_range fndecl 0-2-3 36733 NULL
146112 +disable_so_hmark_hash_fndecl_36743 hmark_hash fndecl 0 36743 NULL
146113 +disable_so_atimensec_fuse_attr_36765 atimensec fuse_attr 0 36765 NULL
146114 +disable_so_sys_getgid16_fndecl_36779 sys_getgid16 fndecl 0 36779 NULL
146115 +disable_so_hash_32_fndecl_36780 hash_32 fndecl 0-3 36780 NULL
146116 +disable_so_di_gid_qnx6_inode_entry_36804 di_gid qnx6_inode_entry 0 36804 NULL nohasharray
146117 +disable_so_jhash_fndecl_36804 jhash fndecl 0-2-3 36804 &disable_so_di_gid_qnx6_inode_entry_36804
146118 +disable_so_last_time1_intel_ilk_power_mgmt_36819 last_time1 intel_ilk_power_mgmt 0 36819 NULL
146119 +disable_so_xen_clocksource_get_cycles_fndecl_36821 xen_clocksource_get_cycles fndecl 0 36821 NULL
146120 +disable_so_address_show_fndecl_36822 address_show fndecl 0 36822 NULL
146121 +disable_so_next_desc_addr_mm_dma_desc_36825 next_desc_addr mm_dma_desc 0 36825 NULL
146122 +disable_so_update_time_acpi_battery_36827 update_time acpi_battery 0 36827 NULL
146123 +disable_so_nla_put_le16_fndecl_36829 nla_put_le16 fndecl 0-3 36829 NULL
146124 +disable_so_sense_buf_phys_addr_hi_megasas_pthru_frame_36842 sense_buf_phys_addr_hi megasas_pthru_frame 0 36842 NULL
146125 +disable_so_vkdb_printf_fndecl_36847 vkdb_printf fndecl 0 36847 NULL
146126 +disable_so_cpu_to_fs32_fndecl_36849 cpu_to_fs32 fndecl 0-2 36849 NULL
146127 +disable_so_mxl301rf_sleep_fndecl_36864 mxl301rf_sleep fndecl 0 36864 NULL
146128 +disable_so_nfqueue_hash_fndecl_36865 nfqueue_hash fndecl 0-2-3-4 36865 NULL
146129 +disable_so_irq_set_irq_wake_fndecl_36876 irq_set_irq_wake fndecl 0-1 36876 NULL
146130 +disable_so_topology_change_timer_value___bridge_info_36878 topology_change_timer_value __bridge_info 0 36878 NULL
146131 +disable_so_settle_time_sym_shcb_36880 settle_time sym_shcb 0 36880 NULL
146132 +disable_so_mei_wd_set_start_timeout_fndecl_36890 mei_wd_set_start_timeout fndecl 2 36890 NULL
146133 +disable_so_inet6_dump_ifaddr_fndecl_36895 inet6_dump_ifaddr fndecl 0 36895 NULL
146134 +disable_so_sh_msiof_get_delay_bit_fndecl_36896 sh_msiof_get_delay_bit fndecl 0-1 36896 NULL
146135 +disable_so_pwm_uptime_w83793_data_36909 pwm_uptime w83793_data 0 36909 NULL nohasharray
146136 +disable_so_zd_iowrite32a_locked_fndecl_36909 zd_iowrite32a_locked fndecl 0-3 36909 &disable_so_pwm_uptime_w83793_data_36909
146137 +disable_so_usb_runtime_suspend_fndecl_36911 usb_runtime_suspend fndecl 0 36911 NULL
146138 +disable_so_buf_addr_mlx5_ib_create_srq_36916 buf_addr mlx5_ib_create_srq 0 36916 NULL
146139 +disable_so_sbp2_pointer_to_addr_fndecl_36918 sbp2_pointer_to_addr fndecl 0 36918 NULL
146140 +disable_so_start_pcm_timer0_fndecl_36921 start_pcm_timer0 fndecl 2 36921 NULL
146141 +disable_so_timestamp_il3945_rx_frame_end_36930 timestamp il3945_rx_frame_end 0 36930 NULL
146142 +disable_so_nilfs_btree_node_broken_fndecl_36936 nilfs_btree_node_broken fndecl 2-3 36936 NULL
146143 +disable_so_wm8991_set_dai_clkdiv_fndecl_36938 wm8991_set_dai_clkdiv fndecl 3 36938 NULL
146144 +disable_so_timeout_ieee80211_mgd_auth_data_36943 timeout ieee80211_mgd_auth_data 0 36943 NULL
146145 +disable_so_i2c_address_itd1000_config_36949 i2c_address itd1000_config 0 36949 NULL
146146 +disable_so_nla_put_be16_fndecl_36955 nla_put_be16 fndecl 0-3 36955 NULL
146147 +disable_so_dma_addr_bcm_sysport_cb_36958 dma_addr bcm_sysport_cb 0 36958 NULL
146148 +disable_so_timeout_trf7970a_36959 timeout trf7970a 0 36959 NULL nohasharray
146149 +disable_so_s35390a_get_datetime_fndecl_36959 s35390a_get_datetime fndecl 0 36959 &disable_so_timeout_trf7970a_36959
146150 +disable_so_spn_dev_sockaddr_pn_36960 spn_dev sockaddr_pn 0 36960 NULL
146151 +disable_so_dpp_page_addr_hi_ocrdma_alloc_pd_uresp_36964 dpp_page_addr_hi ocrdma_alloc_pd_uresp 0 36964 NULL
146152 +disable_so_tv_sec_compat_timespec_36965 tv_sec compat_timespec 0 36965 NULL
146153 +disable_so_get_dclk_freq_fndecl_36970 get_dclk_freq fndecl 0 36970 NULL
146154 +disable_so_intlog2_fndecl_36975 intlog2 fndecl 0-1 36975 NULL
146155 +disable_so_psb_intel_clock_fndecl_36993 psb_intel_clock fndecl 1 36993 NULL
146156 +disable_so_i_uid_write_fndecl_36996 i_uid_write fndecl 2 36996 NULL
146157 +disable_so_addr_st_sgitem_37005 addr st_sgitem 0 37005 NULL
146158 +disable_so_do_usleep_range_fndecl_37008 do_usleep_range fndecl 1-2 37008 NULL
146159 +disable_so_insert_entries_i915_address_space_37011 insert_entries i915_address_space 3 37011 NULL
146160 +disable_so_ext4_init_inode_bitmap_fndecl_37017 ext4_init_inode_bitmap fndecl 0-3 37017 NULL
146161 +disable_so_sp_pt_regs_37018 sp pt_regs 0 37018 NULL
146162 +disable_so_addr_gsm_dlci_37020 addr gsm_dlci 0 37020 NULL
146163 +disable_so_lbq_addr_cqicb_37033 lbq_addr cqicb 0 37033 NULL
146164 +disable_so_stv090x_get_car_freq_fndecl_37041 stv090x_get_car_freq fndecl 0-2 37041 NULL
146165 +disable_so_resp_sas_sha_m_spg_fndecl_37046 resp_sas_sha_m_spg fndecl 0 37046 NULL
146166 +disable_so_cyc2ns_shift_cyc2ns_data_37055 cyc2ns_shift cyc2ns_data 0 37055 NULL
146167 +disable_so_max8997_muic_set_debounce_time_fndecl_37057 max8997_muic_set_debounce_time fndecl 2-0 37057 NULL
146168 +disable_so_tms_cutime_compat_tms_37072 tms_cutime compat_tms 0 37072 NULL
146169 +disable_so_u2_timeout_store_fndecl_37082 u2_timeout_store fndecl 0-4 37082 NULL
146170 +disable_so_addr2_unlock_addr_37100 addr2 unlock_addr 0 37100 NULL
146171 +disable_so_pch_gbe_hal_read_mac_addr_fndecl_37101 pch_gbe_hal_read_mac_addr fndecl 0 37101 NULL
146172 +disable_so_blkcipher_next_slow_fndecl_37102 blkcipher_next_slow fndecl 3-4 37102 NULL
146173 +disable_so_addr_ata_bmdma_prd_37108 addr ata_bmdma_prd 0 37108 NULL
146174 +disable_so_nl80211_valid_4addr_fndecl_37115 nl80211_valid_4addr fndecl 0-4 37115 NULL
146175 +disable_so_dlm_lockres_hash_fndecl_37119 dlm_lockres_hash fndecl 2 37119 NULL
146176 +disable_so_uid_ipc64_perm_37121 uid ipc64_perm 0 37121 NULL
146177 +disable_so_paddr_gr_dma_desc_37127 paddr gr_dma_desc 0 37127 NULL
146178 +disable_so_max_cb_time_fndecl_37133 max_cb_time fndecl 0 37133 NULL
146179 +disable_so_smt_get_time_fndecl_37135 smt_get_time fndecl 0 37135 NULL
146180 +disable_so_div_q1_pll_values_37147 div_q1 pll_values 0 37147 NULL
146181 +disable_so_ufshcd_setup_clocks_fndecl_37162 ufshcd_setup_clocks fndecl 0 37162 NULL
146182 +disable_so_gid_fuse_attr_37169 gid fuse_attr 0 37169 NULL
146183 +disable_so_smsc75xx_hash_fndecl_37173 smsc75xx_hash fndecl 0 37173 NULL
146184 +disable_so_crypto_skcipher_givencrypt_fndecl_37175 crypto_skcipher_givencrypt fndecl 0 37175 NULL
146185 +disable_so_ip_vs_set_timeout_fndecl_37183 ip_vs_set_timeout fndecl 0 37183 NULL
146186 +disable_so_pci_bus_cx25821_dev_37185 pci_bus cx25821_dev 0 37185 NULL
146187 +disable_so_b43_set_slot_time_fndecl_37196 b43_set_slot_time fndecl 2 37196 NULL
146188 +disable_so_af9013_sleep_fndecl_37201 af9013_sleep fndecl 0 37201 NULL
146189 +disable_so_sock_check_timeo_net_conf_37210 sock_check_timeo net_conf 0 37210 NULL
146190 +disable_so_tms_utime_tms_37217 tms_utime tms 0 37217 NULL
146191 +disable_so_lx_interrupt_request_new_buffer_fndecl_37218 lx_interrupt_request_new_buffer fndecl 0 37218 NULL
146192 +disable_so_cryptomgr_notify_fndecl_37232 cryptomgr_notify fndecl 0 37232 NULL
146193 +disable_so_wm831x_wdt_set_timeout_fndecl_37238 wm831x_wdt_set_timeout fndecl 2-0 37238 NULL
146194 +disable_so_qh_schedule_fndecl_37247 qh_schedule fndecl 0 37247 NULL
146195 +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
146196 +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
146197 +disable_so_fq_rehash_fndecl_37274 fq_rehash fndecl 3-5 37274 NULL
146198 +disable_so_set_addr_dsa_switch_driver_37276 set_addr dsa_switch_driver 0 37276 NULL
146199 +disable_so_tv_sec_timeval_37284 tv_sec timeval 0 37284 NULL
146200 +disable_so_timestamp_nfs4_lockdata_37285 timestamp nfs4_lockdata 0 37285 NULL
146201 +disable_so_ccp_register_aes_xts_alg_fndecl_37292 ccp_register_aes_xts_alg fndecl 0 37292 NULL
146202 +disable_so_ssb_chipco_timing_init_fndecl_37295 ssb_chipco_timing_init fndecl 2 37295 NULL
146203 +disable_so_atime_sec_ubifs_ino_node_37298 atime_sec ubifs_ino_node 0 37298 NULL
146204 +disable_so_sel_addr___queue_37305 sel_addr __queue 0 37305 NULL
146205 +disable_so_nla_put_shortaddr_fndecl_37306 nla_put_shortaddr fndecl 0 37306 NULL
146206 +disable_so_snd_pcm_sgbuf_get_addr_fndecl_37310 snd_pcm_sgbuf_get_addr fndecl 0-2 37310 NULL
146207 +disable_so_qla2x00_program_flash_address_fndecl_37312 qla2x00_program_flash_address fndecl 2 37312 NULL
146208 +disable_so_linetime_skl_pipe_wm_37317 linetime skl_pipe_wm 0 37317 NULL
146209 +disable_so_d_time_ptc_stats_37320 d_time ptc_stats 0 37320 NULL nohasharray
146210 +disable_so_dst_slave_addr_rcar_dmac_chan_37320 dst_slave_addr rcar_dmac_chan 0 37320 &disable_so_d_time_ptc_stats_37320
146211 +disable_so_edx_tss_segment_32_37322 edx tss_segment_32 0 37322 NULL
146212 +disable_so_time_stamp_ixgbevf_tx_buffer_37332 time_stamp ixgbevf_tx_buffer 0 37332 NULL
146213 +disable_so_dccpor_elapsed_time_dccp_options_received_37349 dccpor_elapsed_time dccp_options_received 0 37349 NULL nohasharray
146214 +disable_so_rhine_interrupt_fndecl_37349 rhine_interrupt fndecl 1 37349 &disable_so_dccpor_elapsed_time_dccp_options_received_37349
146215 +disable_so_cpufreq_get_policy_fndecl_37351 cpufreq_get_policy fndecl 0-2 37351 NULL
146216 +disable_so_blocksize_ccp_aes_def_37352 blocksize ccp_aes_def 0 37352 NULL
146217 +disable_so_disengage_timeout_xpc_partition_37353 disengage_timeout xpc_partition 0 37353 NULL
146218 +disable_so_nilfs_btree_lookup_contig_fndecl_37360 nilfs_btree_lookup_contig fndecl 0-2 37360 NULL
146219 +disable_so_timeo_rpc_rtt_37368 timeo rpc_rtt 0 37368 NULL
146220 +disable_so_calc_divisor_fndecl_37379 calc_divisor fndecl 0-1 37379 NULL
146221 +disable_so_uid_ncp_mount_data_37380 uid ncp_mount_data 0 37380 NULL nohasharray
146222 +disable_so_ip_vs_conn_hashkey_conn_fndecl_37380 ip_vs_conn_hashkey_conn fndecl 0 37380 &disable_so_uid_ncp_mount_data_37380
146223 +disable_so_clock_delay_adv7511_link_config_37390 clock_delay adv7511_link_config 0 37390 NULL nohasharray
146224 +disable_so_mtrr_check_fndecl_37390 mtrr_check fndecl 1-2 37390 &disable_so_clock_delay_adv7511_link_config_37390
146225 +disable_so_tuner_addr_cx231xx_37393 tuner_addr cx231xx 0 37393 NULL
146226 +disable_so_minute_timestamp_37395 minute timestamp 0 37395 NULL
146227 +disable_so_mthca_mr_alloc_fndecl_37397 mthca_mr_alloc fndecl 5-0-2-3 37397 NULL
146228 +disable_so_cx24123_int_log2_fndecl_37405 cx24123_int_log2 fndecl 0-2 37405 NULL
146229 +disable_so_s_def_resgid_ext2_super_block_37420 s_def_resgid ext2_super_block 0 37420 NULL nohasharray
146230 +disable_so_fast_pwrup_delay_ssb_chipcommon_37420 fast_pwrup_delay ssb_chipcommon 0 37420 &disable_so_s_def_resgid_ext2_super_block_37420
146231 +disable_so_nfs_key_timeout_notify_fndecl_37423 nfs_key_timeout_notify fndecl 0 37423 NULL nohasharray
146232 +disable_so_netxen_schedule_work_fndecl_37423 netxen_schedule_work fndecl 3 37423 &disable_so_nfs_key_timeout_notify_fndecl_37423
146233 +disable_so_rx8025_sysfs_store_clock_adjust_fndecl_37426 rx8025_sysfs_store_clock_adjust fndecl 0-4 37426 NULL
146234 +disable_so_port_mlx4_alias_guid_work_context_37428 port mlx4_alias_guid_work_context 0 37428 NULL
146235 +disable_so_lpfc_max_scsicmpl_time_set_fndecl_37433 lpfc_max_scsicmpl_time_set fndecl 2 37433 NULL
146236 +disable_so_mld_ifc_start_timer_fndecl_37436 mld_ifc_start_timer fndecl 2 37436 NULL
146237 +disable_so_guest_phys_addr_vhost_memory_region_37438 guest_phys_addr vhost_memory_region 0 37438 NULL nohasharray
146238 +disable_so_tun1_maddress_stv0900_init_params_37438 tun1_maddress stv0900_init_params 0 37438 &disable_so_guest_phys_addr_vhost_memory_region_37438
146239 +disable_so_i2c_addr_m88ds3103_config_37446 i2c_addr m88ds3103_config 0 37446 NULL
146240 +disable_so_hd_phys_address_hpet_data_37448 hd_phys_address hpet_data 0 37448 NULL
146241 +disable_so_ip_addr_c2_netaddr_37452 ip_addr c2_netaddr 0 37452 NULL
146242 +disable_so_acpi_map_cpuid_fndecl_37455 acpi_map_cpuid fndecl 0-1-2 37455 NULL
146243 +disable_so_regcache_lzo_block_count_fndecl_37459 regcache_lzo_block_count fndecl 0 37459 NULL
146244 +disable_so_iwl_dbgfs_interrupt_write_fndecl_37470 iwl_dbgfs_interrupt_write fndecl 0-3 37470 NULL
146245 +disable_so_freq_timex_37471 freq timex 0 37471 NULL
146246 +disable_so_gk104_fifo_engidx_fndecl_37472 gk104_fifo_engidx fndecl 0 37472 NULL
146247 +disable_so_ocfs2_write_remove_suid_fndecl_37473 ocfs2_write_remove_suid fndecl 0 37473 NULL
146248 +disable_so_zd_iowrite16a_locked_fndecl_37478 zd_iowrite16a_locked fndecl 0 37478 NULL
146249 +disable_so_base_clock_slgt_info_37486 base_clock slgt_info 0 37486 NULL
146250 +disable_so_onenand_addr_fndecl_37493 onenand_addr fndecl 0-2 37493 NULL
146251 +disable_so_bitmap_shift_right_fndecl_37507 bitmap_shift_right fndecl 3-4 37507 NULL
146252 +disable_so_phys_addr_netxen_recv_context_37520 phys_addr netxen_recv_context 0 37520 NULL
146253 +disable_so_dma_addr_vmxnet3_tx_buf_info_37524 dma_addr vmxnet3_tx_buf_info 0 37524 NULL
146254 +disable_so_start_time_fnic_io_req_37530 start_time fnic_io_req 0 37530 NULL
146255 +disable_so_hash_val_rss_header_37536 hash_val rss_header 0 37536 NULL
146256 +disable_so_dev_addr_bdc_37537 dev_addr bdc 0 37537 NULL
146257 +disable_so_cobalt_enum_dv_timings_fndecl_37539 cobalt_enum_dv_timings fndecl 0 37539 NULL
146258 +disable_so_timestamp_cw1200_link_entry_37549 timestamp cw1200_link_entry 0 37549 NULL
146259 +disable_so_c_resolution_snd_timer_hardware_37556 c_resolution snd_timer_hardware 0 37556 NULL
146260 +disable_so_dummy_systimer_pointer_fndecl_37562 dummy_systimer_pointer fndecl 0 37562 NULL
146261 +disable_so_cir_wake_addr_nvt_dev_37577 cir_wake_addr nvt_dev 0 37577 NULL
146262 +disable_so_clients_bit_vector_mac_configuration_entry_37582 clients_bit_vector mac_configuration_entry 0 37582 NULL
146263 +disable_so___round_jiffies_up_fndecl_37586 __round_jiffies_up fndecl 2-1-0 37586 NULL
146264 +disable_so_xfs_btree_updkey_fndecl_37592 xfs_btree_updkey fndecl 0 37592 NULL
146265 +disable_so_r6b_val_fc2580_freq_regs_37593 r6b_val fc2580_freq_regs 0 37593 NULL
146266 +disable_so_audit_backlog_wait_time_master_vardecl_audit_c_37596 audit_backlog_wait_time_master vardecl_audit.c 0 37596 NULL
146267 +disable_so_hhf_arrays_reset_timestamp_hhf_sched_data_37598 hhf_arrays_reset_timestamp hhf_sched_data 0 37598 NULL
146268 +disable_so_rate_den_snd_pcm_runtime_37607 rate_den snd_pcm_runtime 0 37607 NULL
146269 +disable_so_vdi_mtime_vxfs_inode_info_37613 vdi_mtime vxfs_inode_info 0 37613 NULL
146270 +disable_so_tx_bufs_dma_addr_sc92031_priv_37616 tx_bufs_dma_addr sc92031_priv 0 37616 NULL
146271 +disable_so_brcmf_msgbuf_schedule_txdata_fndecl_37619 brcmf_msgbuf_schedule_txdata fndecl 2 37619 NULL
146272 +disable_so_pvr2_hdw_set_cur_freq_fndecl_37630 pvr2_hdw_set_cur_freq fndecl 2 37630 NULL
146273 +disable_so_pixclock_fb_cvt_data_37637 pixclock fb_cvt_data 0 37637 NULL
146274 +disable_so_ieee80211_if_read_beacon_timeout_fndecl_37639 ieee80211_if_read_beacon_timeout fndecl 3-0 37639 NULL
146275 +disable_so_ds1374_read_time_fndecl_37640 ds1374_read_time fndecl 0 37640 NULL
146276 +disable_so_addr_handler_fndecl_37652 addr_handler fndecl 1 37652 NULL
146277 +disable_so_v_radeon_clock_voltage_dependency_entry_37656 v radeon_clock_voltage_dependency_entry 0 37656 NULL
146278 +disable_so_bma150_set_high_g_interrupt_fndecl_37662 bma150_set_high_g_interrupt fndecl 4-5-3-0 37662 NULL
146279 +disable_so_SYSC_setresuid_fndecl_37663 SYSC_setresuid fndecl 0 37663 NULL
146280 +disable_so_sht15_interrupt_fired_fndecl_37668 sht15_interrupt_fired fndecl 1 37668 NULL
146281 +disable_so_munge_address_falcon_spi_device_37671 munge_address falcon_spi_device 0 37671 NULL
146282 +disable_so___hw_addr_unsync_fndecl_37673 __hw_addr_unsync fndecl 3 37673 NULL
146283 +disable_so_uv_mmtimer_femtoperiod_vardecl_uv_mmtimer_c_37680 uv_mmtimer_femtoperiod vardecl_uv_mmtimer.c 0 37680 NULL
146284 +disable_so_phy_addr_pxa168_eth_private_37687 phy_addr pxa168_eth_private 0 37687 NULL
146285 +disable_so_pch_udc_read_ep_interrupts_fndecl_37692 pch_udc_read_ep_interrupts fndecl 0 37692 NULL
146286 +disable_so_en_addr0_nphy_rf_control_override_rev3_37699 en_addr0 nphy_rf_control_override_rev3 0 37699 NULL
146287 +disable_so_sense_phys_addr_megasas_cmd_37718 sense_phys_addr megasas_cmd 0 37718 NULL
146288 +disable_so_dsc_poll_freq_ide_tape_obj_37730 dsc_poll_freq ide_tape_obj 0 37730 NULL
146289 +disable_so_no_gc_sleep_time_f2fs_gc_kthread_37736 no_gc_sleep_time f2fs_gc_kthread 0 37736 NULL
146290 +disable_so_b_addr_dma_data_buffer_37749 b_addr dma_data_buffer 0 37749 NULL
146291 +disable_so_test_hash_jiffies_fndecl_37757 test_hash_jiffies fndecl 4 37757 NULL
146292 +disable_so_bufptr_addr_nm256_stream_37759 bufptr_addr nm256_stream 0 37759 NULL nohasharray
146293 +disable_so_gcm_hash_crypt_continue_fndecl_37759 gcm_hash_crypt_continue fndecl 0 37759 &disable_so_bufptr_addr_nm256_stream_37759
146294 +disable_so_get_semotime_fndecl_37761 get_semotime fndecl 0 37761 NULL
146295 +disable_so_ds_tss_segment_32_37770 ds tss_segment_32 0 37770 NULL nohasharray
146296 +disable_so_ccp_run_aes_cmd_fndecl_37770 ccp_run_aes_cmd fndecl 0 37770 &disable_so_ds_tss_segment_32_37770
146297 +disable_so_sys_signal_fndecl_37776 sys_signal fndecl 1 37776 NULL
146298 +disable_so_jiffies_till_next_fqs_vardecl_tree_c_37778 jiffies_till_next_fqs vardecl_tree.c 0 37778 NULL
146299 +disable_so_col_scan_delay_us_matrix_keypad_platform_data_37789 col_scan_delay_us matrix_keypad_platform_data 0 37789 NULL
146300 +disable_so_small_buf_phy_addr_ql3_adapter_37791 small_buf_phy_addr ql3_adapter 0 37791 NULL
146301 +disable_so_bitmap_intersects_fndecl_37795 bitmap_intersects fndecl 3 37795 NULL
146302 +disable_so_clock_panel_info_37807 clock panel_info 0 37807 NULL
146303 +disable_so_unix_gid_hash_fndecl_37822 unix_gid_hash fndecl 0 37822 NULL
146304 +disable_so_btrfs_inode_uid_fndecl_37823 btrfs_inode_uid fndecl 0 37823 NULL
146305 +disable_so_snd_usb_find_clock_multiplier_fndecl_37825 snd_usb_find_clock_multiplier fndecl 2 37825 NULL nohasharray
146306 +disable_so_queue_show_random_fndecl_37825 queue_show_random fndecl 0 37825 &disable_so_snd_usb_find_clock_multiplier_fndecl_37825
146307 +disable_so_intr_gen_timer_trigger_ath_hw_37826 intr_gen_timer_trigger ath_hw 0 37826 NULL
146308 +disable_so_mvs_interrupt_fndecl_37840 mvs_interrupt fndecl 1 37840 NULL
146309 +disable_so_aic7xxx_seltime_vardecl_aic7xxx_osm_c_37841 aic7xxx_seltime vardecl_aic7xxx_osm.c 0 37841 NULL
146310 +disable_so_baud_uartdiv_baycom_state_37846 baud_uartdiv baycom_state 0 37846 NULL
146311 +disable_so_ac97_clock_vardecl_intel8x0m_c_37848 ac97_clock vardecl_intel8x0m.c 0 37848 NULL nohasharray
146312 +disable_so_rtl818x_iowrite8_idx_fndecl_37848 rtl818x_iowrite8_idx fndecl 3 37848 &disable_so_ac97_clock_vardecl_intel8x0m_c_37848
146313 +disable_so_io_addr_kcq_info_37850 io_addr kcq_info 0 37850 NULL
146314 +disable_so_last_signal_sta_info_37865 last_signal sta_info 0 37865 NULL
146315 +disable_so_dccpor_timestamp_echo_dccp_options_received_37875 dccpor_timestamp_echo dccp_options_received 0 37875 NULL
146316 +disable_so_ccp_aes_cmac_update_fndecl_37894 ccp_aes_cmac_update fndecl 0 37894 NULL
146317 +disable_so_chip_delay_nand_chip_37901 chip_delay nand_chip 0 37901 NULL
146318 +disable_so_saddr_irlap_cb_37910 saddr irlap_cb 0 37910 NULL
146319 +disable_so_disk_timeout_disk_conf_37918 disk_timeout disk_conf 0 37918 NULL
146320 +disable_so_show_time_in_state_fndecl_37923 show_time_in_state fndecl 0 37923 NULL
146321 +disable_so_snd_timer_user_pause_fndecl_37928 snd_timer_user_pause fndecl 0 37928 NULL
146322 +disable_so_is_valid_rtc_data_addr_il_ops_37930 is_valid_rtc_data_addr il_ops 1 37930 NULL
146323 +disable_so_wl18xx_enable_interrupts_fndecl_37937 wl18xx_enable_interrupts fndecl 0 37937 NULL nohasharray
146324 +disable_so_nested_vmx_store_msr_fndecl_37937 nested_vmx_store_msr fndecl 2 37937 &disable_so_wl18xx_enable_interrupts_fndecl_37937
146325 +disable_so_last_ack_time_misc_stats_37946 last_ack_time misc_stats 0 37946 NULL
146326 +disable_so_vblank_lo_lvds_dvo_timing_37949 vblank_lo lvds_dvo_timing 0 37949 NULL
146327 +disable_so_ath6kl_get_hi_item_addr_fndecl_37951 ath6kl_get_hi_item_addr fndecl 0-2 37951 NULL
146328 +disable_so_bitmap_word_used_fndecl_37955 bitmap_word_used fndecl 2 37955 NULL
146329 +disable_so_process_tgid_coredump_proc_event_37962 process_tgid coredump_proc_event 0 37962 NULL
146330 +disable_so_device_addr_net2280_tx_hdr_37967 device_addr net2280_tx_hdr 0 37967 NULL nohasharray
146331 +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
146332 +disable_so_read_l1_tsc_kvm_x86_ops_37977 read_l1_tsc kvm_x86_ops 0-2 37977 NULL
146333 +disable_so_ipqhashfn_fndecl_37983 ipqhashfn fndecl 1-4 37983 NULL
146334 +disable_so_divider_get_val_fndecl_37994 divider_get_val fndecl 1-2-4-0 37994 NULL
146335 +disable_so_rfc4106_set_hash_subkey_fndecl_37995 rfc4106_set_hash_subkey fndecl 3 37995 NULL
146336 +disable_so_intel_overlay_recover_from_interrupt_fndecl_37996 intel_overlay_recover_from_interrupt fndecl 0 37996 NULL
146337 +disable_so_demod_address_tda10023_config_37998 demod_address tda10023_config 0 37998 NULL nohasharray
146338 +disable_so_addrconf_del_ifaddr_fndecl_37998 addrconf_del_ifaddr fndecl 0 37998 &disable_so_demod_address_tda10023_config_37998
146339 +disable_so_clear_bit_unlock_fndecl_38002 clear_bit_unlock fndecl 1 38002 NULL
146340 +disable_so_mactime_ieee80211_rx_status_38004 mactime ieee80211_rx_status 0 38004 NULL
146341 +disable_so_conn_info_timestamp_hci_conn_38005 conn_info_timestamp hci_conn 0 38005 NULL
146342 +disable_so_il_vsync_v4l2_bt_timings_38013 il_vsync v4l2_bt_timings 0 38013 NULL
146343 +disable_so_bch_strtouint_h_fndecl_38016 bch_strtouint_h fndecl 0 38016 NULL
146344 +disable_so_crypto_ccm_encrypt_fndecl_38019 crypto_ccm_encrypt fndecl 0 38019 NULL
146345 +disable_so_beacon_timeout_ms_vardecl_38026 beacon_timeout_ms vardecl 0 38026 NULL
146346 +disable_so_ima_calc_field_array_hash_fndecl_38044 ima_calc_field_array_hash fndecl 0-3 38044 NULL
146347 +disable_so_mISDN_clock_update_fndecl_38046 mISDN_clock_update fndecl 2 38046 NULL
146348 +disable_so_rv6xx_memory_clock_entry_set_post_divider_fndecl_38049 rv6xx_memory_clock_entry_set_post_divider fndecl 3 38049 NULL nohasharray
146349 +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
146350 +disable_so_bcma_pmu_get_cpu_clock_fndecl_38056 bcma_pmu_get_cpu_clock fndecl 0 38056 NULL
146351 +disable_so_mei_irq_write_handler_fndecl_38063 mei_irq_write_handler fndecl 0 38063 NULL
146352 +disable_so_follow_huge_addr_fndecl_38066 follow_huge_addr fndecl 2 38066 NULL
146353 +disable_so_wait_for_completion_timeout_fndecl_38078 wait_for_completion_timeout fndecl 0-2 38078 NULL
146354 +disable_so_wm8961_set_clkdiv_fndecl_38080 wm8961_set_clkdiv fndecl 3 38080 NULL
146355 +disable_so_process_tgid_ptrace_proc_event_38081 process_tgid ptrace_proc_event 0 38081 NULL
146356 +disable_so_blocknr_disk_bitmap_header_38088 blocknr disk_bitmap_header 0 38088 NULL
146357 +disable_so_index_cnt_btrfs_delayed_node_38090 index_cnt btrfs_delayed_node 0 38090 NULL
146358 +disable_so_bq32k_rtc_set_time_fndecl_38091 bq32k_rtc_set_time fndecl 0 38091 NULL nohasharray
146359 +disable_so_apei_map_generic_address_fndecl_38091 apei_map_generic_address fndecl 0 38091 &disable_so_bq32k_rtc_set_time_fndecl_38091
146360 +disable_so_xfs_iformat_btree_fndecl_38096 xfs_iformat_btree fndecl 0 38096 NULL
146361 +disable_so_inet6_rtm_newaddr_fndecl_38099 inet6_rtm_newaddr fndecl 0 38099 NULL
146362 +disable_so_tuner_set_frequency_stv090x_config_38105 tuner_set_frequency stv090x_config 2 38105 NULL
146363 +disable_so_atomic_notifier_chain_register_fndecl_38114 atomic_notifier_chain_register fndecl 0 38114 NULL
146364 +disable_so_timeout_parms_to_skb_fndecl_38116 timeout_parms_to_skb fndecl 0 38116 NULL
146365 +disable_so_key_idx_off_ieee80211_cipher_scheme_38117 key_idx_off ieee80211_cipher_scheme 0 38117 NULL
146366 +disable_so_qla2x00_zio_timer_store_fndecl_38118 qla2x00_zio_timer_store fndecl 0 38118 NULL
146367 +disable_so_pch_udc_write_ep_interrupts_fndecl_38129 pch_udc_write_ep_interrupts fndecl 2 38129 NULL
146368 +disable_so_ipv4addr_cxgbi_hba_38131 ipv4addr cxgbi_hba 0 38131 NULL
146369 +disable_so_ep0_bounce_addr_dwc3_38133 ep0_bounce_addr dwc3 0 38133 NULL
146370 +disable_so_br_ip_hash_fndecl_38135 br_ip_hash fndecl 0 38135 NULL
146371 +disable_so_signal_to_av_fndecl_38146 signal_to_av fndecl 0 38146 NULL nohasharray
146372 +disable_so_ext4_init_block_bitmap_fndecl_38146 ext4_init_block_bitmap fndecl 3 38146 &disable_so_signal_to_av_fndecl_38146
146373 +disable_so_mapped_physical_address_acpi_mem_space_context_38147 mapped_physical_address acpi_mem_space_context 0 38147 NULL
146374 +disable_so_uptime_dn_dev_38149 uptime dn_dev 0 38149 NULL nohasharray
146375 +disable_so_btrfs_name_hash_fndecl_38149 btrfs_name_hash fndecl 0-2 38149 &disable_so_uptime_dn_dev_38149
146376 +disable_so_snd_timer_pause_fndecl_38159 snd_timer_pause fndecl 0 38159 NULL
146377 +disable_so_flash_addr_atto_vda_flash_req_38165 flash_addr atto_vda_flash_req 0 38165 NULL
146378 +disable_so_bfa_fcs_lport_ns_sm_sending_gid_ft_fndecl_38173 bfa_fcs_lport_ns_sm_sending_gid_ft fndecl 2 38173 NULL
146379 +disable_so_nla_put_flag_fndecl_38183 nla_put_flag fndecl 0 38183 NULL
146380 +disable_so_fll_freq_in_wm8350_data_38185 fll_freq_in wm8350_data 0 38185 NULL
146381 +disable_so_softdog_set_timeout_fndecl_38187 softdog_set_timeout fndecl 2 38187 NULL
146382 +disable_so_i_uid_sysv_inode_38197 i_uid sysv_inode 0 38197 NULL
146383 +disable_so_start_time_wl1271_tx_hw_descr_38213 start_time wl1271_tx_hw_descr 0 38213 NULL
146384 +disable_so_address_callback_fw_address_handler_38224 address_callback fw_address_handler 6-9 38224 NULL
146385 +disable_so_last_rsrc_error_time_lpfc_hba_38225 last_rsrc_error_time lpfc_hba 0 38225 NULL
146386 +disable_so_val_addr1_nphy_rf_control_override_rev3_38228 val_addr1 nphy_rf_control_override_rev3 0 38228 NULL
146387 +disable_so_ipr_transop_timeout_vardecl_ipr_c_38231 ipr_transop_timeout vardecl_ipr.c 0 38231 NULL
146388 +disable_so_disk_events_poll_jiffies_fndecl_38233 disk_events_poll_jiffies fndecl 0 38233 NULL
146389 +disable_so_s2mps11_set_ramp_delay_fndecl_38236 s2mps11_set_ramp_delay fndecl 0 38236 NULL
146390 +disable_so_rdb_BlockBytes_RigidDiskBlock_38238 rdb_BlockBytes RigidDiskBlock 0 38238 NULL
146391 +disable_so_bitmap_equal_fndecl_38239 bitmap_equal fndecl 3 38239 NULL
146392 +disable_so_drm_mm_init_fndecl_38240 drm_mm_init fndecl 2-3 38240 NULL nohasharray
146393 +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
146394 +disable_so_cg_spll_spread_spectrum_ni_clock_registers_38241 cg_spll_spread_spectrum ni_clock_registers 0 38241 NULL
146395 +disable_so_byt_gpu_freq_fndecl_38243 byt_gpu_freq fndecl 0-2 38243 NULL
146396 +disable_so_hhf_evict_timeout_hhf_sched_data_38244 hhf_evict_timeout hhf_sched_data 0 38244 NULL
146397 +disable_so_addr_unmap_notify_38247 addr unmap_notify 0 38247 NULL
146398 +disable_so_xfs_btree_reada_bufl_fndecl_38248 xfs_btree_reada_bufl fndecl 2-3 38248 NULL
146399 +disable_so_ip_vs_conn_hashkey_param_fndecl_38257 ip_vs_conn_hashkey_param fndecl 0 38257 NULL
146400 +disable_so_prev_steal_time_rq_rq_38260 prev_steal_time_rq rq 0 38260 NULL
146401 +disable_so_mapaddr_map_list_38266 mapaddr map_list 0 38266 NULL
146402 +disable_so_reqoff_crypto_authenc_esn_ctx_38268 reqoff crypto_authenc_esn_ctx 0 38268 NULL
146403 +disable_so_ui_mtimensec_ufs2_inode_38278 ui_mtimensec ufs2_inode 0 38278 NULL
146404 +disable_so_scbbaddr_ahc_pci_softc_38281 scbbaddr ahc_pci_softc 0 38281 NULL
146405 +disable_so_demod_address_dst_config_38283 demod_address dst_config 0 38283 NULL
146406 +disable_so_pcc_cpufreq_init_fndecl_38287 pcc_cpufreq_init fndecl 0 38287 NULL
146407 +disable_so_channel_divider_ad9523_channel_spec_38291 channel_divider ad9523_channel_spec 0 38291 NULL
146408 +disable_so_time_in_ghes_estatus_cache_38306 time_in ghes_estatus_cache 0 38306 NULL
146409 +disable_so_time_stamp_i40e_tx_buffer_38313 time_stamp i40e_tx_buffer 0 38313 NULL
146410 +disable_so_show_signal_msg_fndecl_38336 show_signal_msg fndecl 3 38336 NULL
146411 +disable_so_cma_bitmap_aligned_offset_fndecl_38343 cma_bitmap_aligned_offset fndecl 0-2 38343 NULL
146412 +disable_so_digi_set_modem_signals_fndecl_38348 digi_set_modem_signals fndecl 0 38348 NULL
146413 +disable_so_sum_blk_addr_fndecl_38356 sum_blk_addr fndecl 0-2-3 38356 NULL
146414 +disable_so_gcm_hash_assoc_done_fndecl_38360 gcm_hash_assoc_done fndecl 2 38360 NULL
146415 +disable_so_dma_headwb_addr_i40e_virtchnl_txq_info_38365 dma_headwb_addr i40e_virtchnl_txq_info 0 38365 NULL
146416 +disable_so_cpu_cpufreq_policy_38366 cpu cpufreq_policy 0 38366 NULL nohasharray
146417 +disable_so_shash_descsize_dm_verity_38366 shash_descsize dm_verity 0 38366 &disable_so_cpu_cpufreq_policy_38366
146418 +disable_so_sleep_cookie_addr_lo_host_cmd_ds_pcie_details_38370 sleep_cookie_addr_lo host_cmd_ds_pcie_details 0 38370 NULL
146419 +disable_so_bch_btree_keys_u64s_remaining_fndecl_38373 bch_btree_keys_u64s_remaining fndecl 0 38373 NULL
146420 +disable_so_timeout_lp_struct_38387 timeout lp_struct 0 38387 NULL
146421 +disable_so_x1205_set_datetime_fndecl_38391 x1205_set_datetime fndecl 4 38391 NULL
146422 +disable_so_dma_addr_rxd_info_38410 dma_addr rxd_info 0 38410 NULL
146423 +disable_so_copy_signaled_event_data_fndecl_38425 copy_signaled_event_data fndecl 1 38425 NULL
146424 +disable_so_bcn_addr_carl9170_bcn_ctrl_cmd_38429 bcn_addr carl9170_bcn_ctrl_cmd 0 38429 NULL
146425 +disable_so_rproc_vq_interrupt_fndecl_38432 rproc_vq_interrupt fndecl 2 38432 NULL
146426 +disable_so_div_clk_div_table_38447 div clk_div_table 0 38447 NULL
146427 +disable_so_seq_default_timer_resolution_vardecl_38451 seq_default_timer_resolution vardecl 0 38451 NULL
146428 +disable_so_dma_ops_free_addresses_fndecl_38461 dma_ops_free_addresses fndecl 2-3 38461 NULL
146429 +disable_so_time_zero_xfs_mru_cache_38463 time_zero xfs_mru_cache 0 38463 NULL
146430 +disable_so_timeAdj_TCP_Server_Info_38464 timeAdj TCP_Server_Info 0 38464 NULL
146431 +disable_so_curr_kvm_shared_msr_values_38468 curr kvm_shared_msr_values 0 38468 NULL
146432 +disable_so_vhost_add_used_and_signal_fndecl_38469 vhost_add_used_and_signal fndecl 4-3 38469 NULL
146433 +disable_so_mclk_pwrmgt_cntl_ni_clock_registers_38478 mclk_pwrmgt_cntl ni_clock_registers 0 38478 NULL
146434 +disable_so_srp_reconnect_delay_vardecl_ib_srp_c_38484 srp_reconnect_delay vardecl_ib_srp.c 0 38484 NULL
146435 +disable_so_i2c_clk_divider_au0828_board_38485 i2c_clk_divider au0828_board 0 38485 NULL
146436 +disable_so_ark_set_pixclock_fndecl_38501 ark_set_pixclock fndecl 2 38501 NULL
146437 +disable_so_use_time_xfrm_lifetime_cur_38505 use_time xfrm_lifetime_cur 0 38505 NULL nohasharray
146438 +disable_so_musb_advance_schedule_fndecl_38505 musb_advance_schedule fndecl 4 38505 &disable_so_use_time_xfrm_lifetime_cur_38505
146439 +disable_so_spinfo_mtu_sctp_paddrinfo_38516 spinfo_mtu sctp_paddrinfo 0 38516 NULL
146440 +disable_so_sample_freq_tda10048_state_38521 sample_freq tda10048_state 0 38521 NULL
146441 +disable_so_mapping_level_dirty_bitmap_fndecl_38527 mapping_level_dirty_bitmap fndecl 2 38527 NULL
146442 +disable_so_rx_ring_dma_addr_sc92031_priv_38536 rx_ring_dma_addr sc92031_priv 0 38536 NULL
146443 +disable_so___ipv6_addr_type_fndecl_38537 __ipv6_addr_type fndecl 0 38537 NULL
146444 +disable_so_cstamp_inet6_ifaddr_38541 cstamp inet6_ifaddr 0 38541 NULL
146445 +disable_so_arch_randomize_brk_fndecl_38542 arch_randomize_brk fndecl 0 38542 NULL
146446 +disable_so_imon_mce_key_lookup_fndecl_38543 imon_mce_key_lookup fndecl 0-2 38543 NULL
146447 +disable_so_amdgpu_mm_wreg_fndecl_38550 amdgpu_mm_wreg fndecl 2-3 38550 NULL
146448 +disable_so_mgid_index_mthca_qp_path_38553 mgid_index mthca_qp_path 0 38553 NULL
146449 +disable_so_i_gid_bfs_inode_38565 i_gid bfs_inode 0 38565 NULL
146450 +disable_so_tx_delayed_compl_wlcore_ops_38572 tx_delayed_compl wlcore_ops 0 38572 NULL
146451 +disable_so_split_scan_timeout_write_fndecl_38579 split_scan_timeout_write fndecl 3-0 38579 NULL
146452 +disable_so_xfs_btree_change_owner_fndecl_38586 xfs_btree_change_owner fndecl 0-2 38586 NULL
146453 +disable_so_hash_sendmsg_fndecl_38588 hash_sendmsg fndecl 0 38588 NULL
146454 +disable_so_read_inode_bitmap_fndecl_38589 read_inode_bitmap fndecl 2 38589 NULL
146455 +disable_so_before_ctime_sec_nfsd4_change_info_38591 before_ctime_sec nfsd4_change_info 0 38591 NULL
146456 +disable_so_sys_clock_freq_drx_common_attr_38599 sys_clock_freq drx_common_attr 0 38599 NULL
146457 +disable_so_kvm_x2apic_msr_write_fndecl_38601 kvm_x2apic_msr_write fndecl 3 38601 NULL
146458 +disable_so_stored_addr_lo_amd_iommu_38609 stored_addr_lo amd_iommu 0 38609 NULL
146459 +disable_so_udp_port_udp_media_addr_38613 udp_port udp_media_addr 0 38613 NULL
146460 +disable_so_hashmask_Qdisc_class_hash_38621 hashmask Qdisc_class_hash 0 38621 NULL
146461 +disable_so_i_gid_nilfs_inode_38625 i_gid nilfs_inode 0 38625 NULL
146462 +disable_so__freq_tbl_determine_rate_fndecl_38627 _freq_tbl_determine_rate fndecl 0 38627 NULL
146463 +disable_so_n__pll_div_38634 n _pll_div 0 38634 NULL
146464 +disable_so_security_task_getpgid_fndecl_38635 security_task_getpgid fndecl 0 38635 NULL
146465 +disable_so_dmsr_eg20t_port_38638 dmsr eg20t_port 0 38638 NULL
146466 +disable_so_e4000_s_frequency_fndecl_38648 e4000_s_frequency fndecl 0 38648 NULL
146467 +disable_so_timestamp_iwl_rx_phy_res_38650 timestamp iwl_rx_phy_res 0 38650 NULL
146468 +disable_so_set_freq_fndecl_38651 set_freq fndecl 2 38651 NULL
146469 +disable_so_technisat_usb2_set_led_timer_fndecl_38654 technisat_usb2_set_led_timer fndecl 3-2 38654 NULL
146470 +disable_so_mthca_query_gid_fndecl_38656 mthca_query_gid fndecl 2-3 38656 NULL
146471 +disable_so_mpihelp_addmul_1_fndecl_38658 mpihelp_addmul_1 fndecl 3 38658 NULL
146472 +disable_so_press_adjust_channel_bit_mask_fndecl_38661 press_adjust_channel_bit_mask fndecl 3 38661 NULL
146473 +disable_so_vdi_ctime_vxfs_inode_info_38664 vdi_ctime vxfs_inode_info 0 38664 NULL
146474 +disable_so_afs_vlocation_update_timeout_vardecl_vlocation_c_38669 afs_vlocation_update_timeout vardecl_vlocation.c 0 38669 NULL nohasharray
146475 +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
146476 +disable_so_rhashtable_check_elasticity_fndecl_38676 rhashtable_check_elasticity fndecl 3 38676 NULL
146477 +disable_so_addr_bus_sg_simple_element_38677 addr_bus sg_simple_element 0 38677 NULL
146478 +disable_so_pcxhr_get_external_clock_fndecl_38682 pcxhr_get_external_clock fndecl 0 38682 NULL
146479 +disable_so_ahd_timer_reset_fndecl_38702 ahd_timer_reset fndecl 2 38702 NULL nohasharray
146480 +disable_so_nr_uninterruptible_rq_38702 nr_uninterruptible rq 0 38702 &disable_so_ahd_timer_reset_fndecl_38702
146481 +disable_so_dp_saddr_rds_ib_connect_private_38707 dp_saddr rds_ib_connect_private 0 38707 NULL
146482 +disable_so_dsp_spl_jiffies_vardecl_38710 dsp_spl_jiffies vardecl 0 38710 NULL
146483 +disable_so_mtrr_lookup_init_fndecl_38724 mtrr_lookup_init fndecl 4-3 38724 NULL
146484 +disable_so_qdisc_watchdog_schedule_fndecl_38729 qdisc_watchdog_schedule fndecl 2 38729 NULL
146485 +disable_so_authenc_esn_verify_ahash_update_done_fndecl_38734 authenc_esn_verify_ahash_update_done fndecl 2 38734 NULL
146486 +disable_so_hactive_hi_oaktrail_timing_info_38738 hactive_hi oaktrail_timing_info 0 38738 NULL
146487 +disable_so_i2c_address_xc5000_config_38739 i2c_address xc5000_config 0 38739 NULL
146488 +disable_so_address_fw_hdr_38754 address fw_hdr 0 38754 NULL
146489 +disable_so_radio_addr_saa7134_dev_38765 radio_addr saa7134_dev 0 38765 NULL
146490 +disable_so_i2c_address_max2165_config_38766 i2c_address max2165_config 0 38766 NULL nohasharray
146491 +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
146492 +disable_so_fan1_div_amc6821_data_38770 fan1_div amc6821_data 0 38770 NULL
146493 +disable_so_sd_blocks_per_bitmap_gfs2_sbd_38771 sd_blocks_per_bitmap gfs2_sbd 0 38771 NULL
146494 +disable_so_cryptd_hash_finup_fndecl_38778 cryptd_hash_finup fndecl 2 38778 NULL
146495 +disable_so_mnamehash_dlm_master_list_entry_38791 mnamehash dlm_master_list_entry 0 38791 NULL
146496 +disable_so_compat_sys_clock_nanosleep_fndecl_38793 compat_sys_clock_nanosleep fndecl 1 38793 NULL
146497 +disable_so_minutes_v4l2_timecode_38804 minutes v4l2_timecode 0 38804 NULL
146498 +disable_so_mtrr_type_lookup_variable_fndecl_38806 mtrr_type_lookup_variable fndecl 1-2 38806 NULL
146499 +disable_so_pch_uart_hal_disable_interrupt_fndecl_38820 pch_uart_hal_disable_interrupt fndecl 2 38820 NULL nohasharray
146500 +disable_so_addr_azx_38820 addr azx 0 38820 &disable_so_pch_uart_hal_disable_interrupt_fndecl_38820
146501 +disable_so_num_addresses_at24_data_38822 num_addresses at24_data 0 38822 NULL
146502 +disable_so_delay_reg_anatop_regulator_38823 delay_reg anatop_regulator 0 38823 NULL
146503 +disable_so_table_addr_radeon_gart_38825 table_addr radeon_gart 0 38825 NULL
146504 +disable_so_random_ioctl_fndecl_38846 random_ioctl fndecl 0 38846 NULL
146505 +disable_so_iwl_count_chain_bitmap_fndecl_38847 iwl_count_chain_bitmap fndecl 0-1 38847 NULL
146506 +disable_so_phy_pm_runtime_get_fndecl_38865 phy_pm_runtime_get fndecl 0 38865 NULL
146507 +disable_so_interrupt_level_mask_kszphy_type_38870 interrupt_level_mask kszphy_type 0 38870 NULL nohasharray
146508 +disable_so_r25_val_fc2580_freq_regs_38870 r25_val fc2580_freq_regs 0 38870 &disable_so_interrupt_level_mask_kszphy_type_38870
146509 +disable_so_cc770_tx_interrupt_fndecl_38879 cc770_tx_interrupt fndecl 2 38879 NULL
146510 +disable_so_rq_first_pbe_addr_lo_fcoe_kwqe_conn_offload1_38880 rq_first_pbe_addr_lo fcoe_kwqe_conn_offload1 0 38880 NULL
146511 +disable_so_hpi_compander_get_attack_time_constant_fndecl_38881 hpi_compander_get_attack_time_constant fndecl 1-0 38881 NULL
146512 +disable_so_get_clock_info_fndecl_38883 get_clock_info fndecl 4-0 38883 NULL
146513 +disable_so_ieee80211_aes_gmac_fndecl_38891 ieee80211_aes_gmac fndecl 5 38891 NULL
146514 +disable_so_port_mlx4_sriov_alias_guid_port_rec_det_38897 port mlx4_sriov_alias_guid_port_rec_det 0 38897 NULL
146515 +disable_so_fd_pppol2tpv3_addr_38898 fd pppol2tpv3_addr 0 38898 NULL nohasharray
146516 +disable_so_bcm3510_set_freq_fndecl_38898 bcm3510_set_freq fndecl 2 38898 &disable_so_fd_pppol2tpv3_addr_38898
146517 +disable_so_irq_dispose_mapping_fndecl_38902 irq_dispose_mapping fndecl 1 38902 NULL
146518 +disable_so_crypto_ccm_decrypt_done_fndecl_38904 crypto_ccm_decrypt_done fndecl 2 38904 NULL
146519 +disable_so_cw1200_queue_get_xmit_timestamp_fndecl_38907 cw1200_queue_get_xmit_timestamp fndecl 3 38907 NULL nohasharray
146520 +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
146521 +disable_so_check_num_extents_and_bitmaps_fndecl_38927 check_num_extents_and_bitmaps fndecl 0 38927 NULL
146522 +disable_so_timekeeping_get_tai_offset_fndecl_38933 timekeeping_get_tai_offset fndecl 0 38933 NULL nohasharray
146523 +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
146524 +disable_so_mlx4_get_base_gid_ix_fndecl_38938 mlx4_get_base_gid_ix fndecl 0-2-3 38938 NULL
146525 +disable_so_default_i2c_addr_dib7000p_config_38941 default_i2c_addr dib7000p_config 0 38941 NULL
146526 +disable_so_nilfs_btree_get_next_key_fndecl_38942 nilfs_btree_get_next_key fndecl 0 38942 NULL
146527 +disable_so_eoc_delay_ns_cc10001_adc_device_38943 eoc_delay_ns cc10001_adc_device 0 38943 NULL
146528 +disable_so_get_clock_desc_fndecl_38944 get_clock_desc fndecl 1 38944 NULL
146529 +disable_so_hdsp_set_interrupt_interval_fndecl_38947 hdsp_set_interrupt_interval fndecl 2 38947 NULL
146530 +disable_so_sysctl_sched_time_avg_vardecl_38969 sysctl_sched_time_avg vardecl 0 38969 NULL
146531 +disable_so_vivid_radio_s_frequency_fndecl_38975 vivid_radio_s_frequency fndecl 0 38975 NULL
146532 +disable_so_sha1_pad_fndecl_38979 sha1_pad fndecl 0-2 38979 NULL
146533 +disable_so_hash_mask_deflate_state_38981 hash_mask deflate_state 0 38981 NULL
146534 +disable_so_pos_dmaengine_pcm_runtime_data_38984 pos dmaengine_pcm_runtime_data 0 38984 NULL
146535 +disable_so_set_dma_addr_fndecl_38989 set_dma_addr fndecl 1-2 38989 NULL
146536 +disable_so_caller_gid_ceph_mds_request_head_38991 caller_gid ceph_mds_request_head 0 38991 NULL
146537 +disable_so_bf_paddr_ath_mci_buf_38995 bf_paddr ath_mci_buf 0 38995 NULL
146538 +disable_so_x86_setup_var_mtrrs_fndecl_39006 x86_setup_var_mtrrs fndecl 4-3-2 39006 NULL nohasharray
146539 +disable_so_uv_global_mmr64_address_fndecl_39006 uv_global_mmr64_address fndecl 1 39006 &disable_so_x86_setup_var_mtrrs_fndecl_39006
146540 +disable_so_interrupt_out_interval_lego_usb_tower_39007 interrupt_out_interval lego_usb_tower 0 39007 NULL
146541 +disable_so_di_uid_logfs_disk_inode_39011 di_uid logfs_disk_inode 0 39011 NULL
146542 +disable_so_cfag12864b_address_fndecl_39018 cfag12864b_address fndecl 1 39018 NULL
146543 +disable_so_dmaaddr_b43legacy_dmadesc_meta_39023 dmaaddr b43legacy_dmadesc_meta 0 39023 NULL
146544 +disable_so_dce_v10_0_crtc_set_base_atomic_fndecl_39025 dce_v10_0_crtc_set_base_atomic fndecl 0 39025 NULL
146545 +disable_so_dst_addr_l_wcn36xx_dxe_desc_39037 dst_addr_l wcn36xx_dxe_desc 0 39037 NULL
146546 +disable_so_show_fan_div_fndecl_39039 show_fan_div fndecl 0 39039 NULL
146547 +disable_so_set_timer_slack_fndecl_39051 set_timer_slack fndecl 2 39051 NULL
146548 +disable_so_seq_xfrm_usersa_info_39054 seq xfrm_usersa_info 0 39054 NULL
146549 +disable_so_freq_wmi_send_action_cmd_39065 freq wmi_send_action_cmd 0 39065 NULL
146550 +disable_so_addr_ksz_hw_desc_39069 addr ksz_hw_desc 0 39069 NULL
146551 +disable_so_fll_refclk_div__fll_div_39071 fll_refclk_div _fll_div 0 39071 NULL
146552 +disable_so_atime_nsec_ubifs_ino_node_39079 atime_nsec ubifs_ino_node 0 39079 NULL
146553 +disable_so_p2m_jiffies_solo_dev_39094 p2m_jiffies solo_dev 0 39094 NULL
146554 +disable_so_cl_time_nfs4_client_39095 cl_time nfs4_client 0 39095 NULL
146555 +disable_so_addr_inet_cork_39099 addr inet_cork 0 39099 NULL nohasharray
146556 +disable_so_get_cur_freq_on_cpu_fndecl_39099 get_cur_freq_on_cpu fndecl 0 39099 &disable_so_addr_inet_cork_39099
146557 +disable_so_addr_radeon_dummy_page_39105 addr radeon_dummy_page 0 39105 NULL
146558 +disable_so_dmar_set_interrupt_fndecl_39106 dmar_set_interrupt fndecl 0 39106 NULL
146559 +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
146560 +disable_so_atomic_set_property_drm_plane_funcs_39123 atomic_set_property drm_plane_funcs 0-4 39123 NULL nohasharray
146561 +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
146562 +disable_so_div_sync_wait_dib7000p_state_39125 div_sync_wait dib7000p_state 0 39125 NULL nohasharray
146563 +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
146564 +disable_so_regcache_rbtree_write_fndecl_39126 regcache_rbtree_write fndecl 2-3 39126 NULL
146565 +disable_so_boot_addr_nvbios_pmuR_39136 boot_addr nvbios_pmuR 0 39136 NULL
146566 +disable_so_slack_timer_list_39142 slack timer_list 0 39142 NULL
146567 +disable_so_qat_alg_ablkcipher_decrypt_fndecl_39147 qat_alg_ablkcipher_decrypt fndecl 0 39147 NULL
146568 +disable_so_security_task_fix_setuid_fndecl_39149 security_task_fix_setuid fndecl 0 39149 NULL
146569 +disable_so_result_xfs_btree_split_args_39161 result xfs_btree_split_args 0 39161 NULL
146570 +disable_so_max_medium_access_timeouts_show_fndecl_39174 max_medium_access_timeouts_show fndecl 0 39174 NULL
146571 +disable_so_rx_rx_timeout_wa_read_fndecl_39183 rx_rx_timeout_wa_read fndecl 3 39183 NULL nohasharray
146572 +disable_so_store_falltime_fndecl_39183 store_falltime fndecl 4-0 39183 &disable_so_rx_rx_timeout_wa_read_fndecl_39183
146573 +disable_so_n_gma_clock_t_39192 n gma_clock_t 0 39192 NULL
146574 +disable_so_phy_addr_wcn36xx_dxe_mem_pool_39193 phy_addr wcn36xx_dxe_mem_pool 0 39193 NULL
146575 +disable_so_r6c_val_fc2580_freq_regs_39202 r6c_val fc2580_freq_regs 0 39202 NULL
146576 +disable_so_adis16480_get_freq_fndecl_39205 adis16480_get_freq fndecl 0 39205 NULL
146577 +disable_so_stv0367_get_tuner_freq_fndecl_39210 stv0367_get_tuner_freq fndecl 0 39210 NULL
146578 +disable_so_loadtime_init_fndecl_39230 loadtime_init fndecl 0 39230 NULL
146579 +disable_so_vcc_timeout_period_lec_priv_39232 vcc_timeout_period lec_priv 0 39232 NULL nohasharray
146580 +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
146581 +disable_so_rxhubaddr_musb_csr_regs_39234 rxhubaddr musb_csr_regs 0 39234 NULL
146582 +disable_so_igb_init_interrupt_scheme_fndecl_39237 igb_init_interrupt_scheme fndecl 0 39237 NULL
146583 +disable_so_decrypt_mpdu_lib80211_crypto_ops_39245 decrypt_mpdu lib80211_crypto_ops 2 39245 NULL
146584 +disable_so_enc_cd_paddr_qat_alg_ablkcipher_ctx_39246 enc_cd_paddr qat_alg_ablkcipher_ctx 0 39246 NULL
146585 +disable_so_ax_tss_segment_16_39248 ax tss_segment_16 0 39248 NULL
146586 +disable_so___crypto_memneq_fndecl_39251 __crypto_memneq fndecl 3 39251 NULL
146587 +disable_so_core_freq_drm_psb_private_39252 core_freq drm_psb_private 0 39252 NULL
146588 +disable_so_i_gid_minix_inode_39253 i_gid minix_inode 0 39253 NULL
146589 +disable_so_sllc_arphrd_sockaddr_llc_39261 sllc_arphrd sockaddr_llc 0 39261 NULL
146590 +disable_so_bind_virq_for_mce_fndecl_39266 bind_virq_for_mce fndecl 0 39266 NULL
146591 +disable_so_poll_timeout_hwif_s_39267 poll_timeout hwif_s 0 39267 NULL
146592 +disable_so_cik_set_uvd_clock_fndecl_39276 cik_set_uvd_clock fndecl 2-0 39276 NULL
146593 +disable_so_watchdog_get_timeleft_fndecl_39280 watchdog_get_timeleft fndecl 0 39280 NULL
146594 +disable_so_pti_addr_pti_dev_39288 pti_addr pti_dev 0 39288 NULL
146595 +disable_so_last_guest_tsc_kvm_vcpu_arch_39290 last_guest_tsc kvm_vcpu_arch 0 39290 NULL
146596 +disable_so_crypto_cts_encrypt_fndecl_39299 crypto_cts_encrypt fndecl 0-4 39299 NULL
146597 +disable_so_set_timer_mode_fndecl_39306 set_timer_mode fndecl 1 39306 NULL
146598 +disable_so_vref_delay_usecs_ads7846_39307 vref_delay_usecs ads7846 0 39307 NULL nohasharray
146599 +disable_so_signal_rxdone_entry_desc_39307 signal rxdone_entry_desc 0 39307 &disable_so_vref_delay_usecs_ads7846_39307
146600 +disable_so_kr_rcvhdrtailaddr_ipath_kregs_39311 kr_rcvhdrtailaddr ipath_kregs 0 39311 NULL
146601 +disable_so_cyapa_pwr_cmd_to_sleep_time_fndecl_39315 cyapa_pwr_cmd_to_sleep_time fndecl 0-1 39315 NULL nohasharray
146602 +disable_so_sleep_time_packet_data_39315 sleep_time packet_data 0 39315 &disable_so_cyapa_pwr_cmd_to_sleep_time_fndecl_39315 nohasharray
146603 +disable_so_sdhci_runtime_pm_get_fndecl_39315 sdhci_runtime_pm_get fndecl 0 39315 &disable_so_sleep_time_packet_data_39315
146604 +disable_so___request_region_fndecl_39330 __request_region fndecl 3-2-5 39330 NULL
146605 +disable_so_hash_next_entry_39332 hash_next entry 0 39332 NULL
146606 +disable_so_timeout_dmx_sct_filter_params_39333 timeout dmx_sct_filter_params 0 39333 NULL
146607 +disable_so_dma_in_mceusb_dev_39335 dma_in mceusb_dev 0 39335 NULL
146608 +disable_so_address_acpi_resource_fixed_io_39338 address acpi_resource_fixed_io 0 39338 NULL
146609 +disable_so_adjusted_clock_radeon_crtc_39340 adjusted_clock radeon_crtc 0 39340 NULL
146610 +disable_so_busaddr_drm_dma_handle_39348 busaddr drm_dma_handle 0 39348 NULL
146611 +disable_so_gid_ok_fndecl_39349 gid_ok fndecl 3 39349 NULL
146612 +disable_so_sched_clock_remote_fndecl_39352 sched_clock_remote fndecl 0 39352 NULL
146613 +disable_so_i_ctime_extra_ext4_inode_39365 i_ctime_extra ext4_inode 0 39365 NULL
146614 +disable_so_mISDN_inittimer_fndecl_39396 mISDN_inittimer fndecl 0 39396 NULL
146615 +disable_so_status_addr_efx_vf_39401 status_addr efx_vf 0 39401 NULL nohasharray
146616 +disable_so_freq_ieee80211_rx_status_39401 freq ieee80211_rx_status 0 39401 &disable_so_status_addr_efx_vf_39401
146617 +disable_so_validate_acl_mac_addrs_fndecl_39406 validate_acl_mac_addrs fndecl 0 39406 NULL nohasharray
146618 +disable_so_encrypt_mpdu_lib80211_crypto_ops_39406 encrypt_mpdu lib80211_crypto_ops 2 39406 &disable_so_validate_acl_mac_addrs_fndecl_39406
146619 +disable_so_max_idle_ns_clocksource_39415 max_idle_ns clocksource 0 39415 NULL
146620 +disable_so_sys_setreuid16_fndecl_39425 sys_setreuid16 fndecl 0-1-2 39425 NULL
146621 +disable_so_typhoon_start_runtime_fndecl_39437 typhoon_start_runtime fndecl 0 39437 NULL nohasharray
146622 +disable_so_frequency_dtv_frontend_properties_39437 frequency dtv_frontend_properties 0 39437 &disable_so_typhoon_start_runtime_fndecl_39437
146623 +disable_so_addr_init_table_39442 addr init_table 0 39442 NULL
146624 +disable_so_gru_end_paddr_vardecl_x2apic_uv_x_c_39443 gru_end_paddr vardecl_x2apic_uv_x.c 0 39443 NULL
146625 +disable_so_irq_timeout_write_fndecl_39445 irq_timeout_write fndecl 3-0 39445 NULL
146626 +disable_so_uwb_rc_mac_addr_set_fndecl_39450 uwb_rc_mac_addr_set fndecl 0 39450 NULL
146627 +disable_so_ext4_es_find_delayed_extent_range_fndecl_39461 ext4_es_find_delayed_extent_range fndecl 2-3 39461 NULL
146628 +disable_so_conn_timeout_hci_conn_39470 conn_timeout hci_conn 0 39470 NULL nohasharray
146629 +disable_so_compat_sys_rt_sigtimedwait_fndecl_39470 compat_sys_rt_sigtimedwait fndecl 0 39470 &disable_so_conn_timeout_hci_conn_39470
146630 +disable_so_snd_usb_pcm_delay_fndecl_39473 snd_usb_pcm_delay fndecl 0-2 39473 NULL nohasharray
146631 +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
146632 +disable_so_sz_out_qat_crypto_request_buffs_39477 sz_out qat_crypto_request_buffs 0 39477 NULL
146633 +disable_so_tx_abs_int_delay_e1000_adapter_39481 tx_abs_int_delay e1000_adapter 0 39481 NULL
146634 +disable_so_nilfs_btree_node_delete_fndecl_39483 nilfs_btree_node_delete fndecl 2 39483 NULL
146635 +disable_so_timeout_write_fndecl_39484 timeout_write fndecl 3-0 39484 NULL
146636 +disable_so_ac97_clock_vardecl_intel8x0_c_39489 ac97_clock vardecl_intel8x0.c 0 39489 NULL
146637 +disable_so_get_clock_info_fndecl_39492 get_clock_info fndecl 0 39492 NULL
146638 +disable_so_buf_paddr_uioc_39504 buf_paddr uioc 0 39504 NULL
146639 +disable_so_mpll_ss2_rv770_clock_registers_39508 mpll_ss2 rv770_clock_registers 0 39508 NULL
146640 +disable_so_fc_exch_timer_set_fndecl_39511 fc_exch_timer_set fndecl 2 39511 NULL
146641 +disable_so_stv0900_write_reg_fndecl_39517 stv0900_write_reg fndecl 2-3 39517 NULL
146642 +disable_so_divf_ide_proc_devset_39528 divf ide_proc_devset 0 39528 NULL
146643 +disable_so_wm_adsp_create_region_fndecl_39536 wm_adsp_create_region fndecl 2 39536 NULL
146644 +disable_so_pl2303_encode_baud_rate_divisor_fndecl_39544 pl2303_encode_baud_rate_divisor fndecl 0-2 39544 NULL
146645 +disable_so_mlx4_put_slave_node_guid_fndecl_39546 mlx4_put_slave_node_guid fndecl 3 39546 NULL
146646 +disable_so_sgl_addr_lo_fw_flash_Update_req_39547 sgl_addr_lo fw_flash_Update_req 0 39547 NULL
146647 +disable_so_m41t93_set_time_fndecl_39562 m41t93_set_time fndecl 0 39562 NULL
146648 +disable_so_width_intel_sdvo_preferred_input_timing_args_39563 width intel_sdvo_preferred_input_timing_args 0 39563 NULL
146649 +disable_so_RF_SYN_reserved_addr29_chan_info_nphy_radio205x_39569 RF_SYN_reserved_addr29 chan_info_nphy_radio205x 0 39569 NULL
146650 +disable_so_delay_vardecl_wm9712_c_39574 delay vardecl_wm9712.c 0 39574 NULL
146651 +disable_so_usb_sleep_charge_show_fndecl_39578 usb_sleep_charge_show fndecl 0 39578 NULL
146652 +disable_so_cpu_to_virtio16_fndecl_39582 cpu_to_virtio16 fndecl 0-2 39582 NULL
146653 +disable_so_e1000e_init_rx_addrs_fndecl_39608 e1000e_init_rx_addrs fndecl 2 39608 NULL
146654 +disable_so_wss_random_offset_tpg_draw_params_39616 wss_random_offset tpg_draw_params 0 39616 NULL
146655 +disable_so_ib_qib_sys_image_guid_vardecl_39617 ib_qib_sys_image_guid vardecl 0 39617 NULL
146656 +disable_so_m_gma_clock_t_39618 m gma_clock_t 0 39618 NULL
146657 +disable_so_nilfs_btree_node_move_right_fndecl_39627 nilfs_btree_node_move_right fndecl 3 39627 NULL
146658 +disable_so_max14577_muic_set_debounce_time_fndecl_39632 max14577_muic_set_debounce_time fndecl 2-0 39632 NULL nohasharray
146659 +disable_so_shash_compat_final_fndecl_39632 shash_compat_final fndecl 0 39632 &disable_so_max14577_muic_set_debounce_time_fndecl_39632
146660 +disable_so_tx_coal_timer_sxgbe_tx_queue_39639 tx_coal_timer sxgbe_tx_queue 0 39639 NULL
146661 +disable_so_antsignal_rx_radiotap_hdr_39653 antsignal rx_radiotap_hdr 0 39653 NULL
146662 +disable_so_vaddr_gru_dump_context_header_39663 vaddr gru_dump_context_header 0 39663 NULL
146663 +disable_so_cap_task_setscheduler_fndecl_39664 cap_task_setscheduler fndecl 0 39664 NULL
146664 +disable_so_bt_inq_page_start_time_bt_coexist_8723_39665 bt_inq_page_start_time bt_coexist_8723 0 39665 NULL
146665 +disable_so_last_beacon_signal_ieee80211_if_managed_39670 last_beacon_signal ieee80211_if_managed 0 39670 NULL
146666 +disable_so_ni_ipv4_address_dlm_node_info_39675 ni_ipv4_address dlm_node_info 0 39675 NULL
146667 +disable_so_i_gid_minix2_inode_39680 i_gid minix2_inode 0 39680 NULL
146668 +disable_so_mx51_ecspi_clkdiv_fndecl_39681 mx51_ecspi_clkdiv fndecl 1-2-0 39681 NULL
146669 +disable_so_mld_dad_start_timer_fndecl_39685 mld_dad_start_timer fndecl 2 39685 NULL
146670 +disable_so_fm10k_read_systime_vf_fndecl_39687 fm10k_read_systime_vf fndecl 0 39687 NULL
146671 +disable_so_cp_hqd_pq_wptr_poll_addr_hi_hqd_registers_39692 cp_hqd_pq_wptr_poll_addr_hi hqd_registers 0 39692 NULL
146672 +disable_so_i2c_smbus_read_byte_data_fndecl_39698 i2c_smbus_read_byte_data fndecl 0-2 39698 NULL
146673 +disable_so_abort_mfi_phys_addr_lo_megasas_abort_frame_39699 abort_mfi_phys_addr_lo megasas_abort_frame 0 39699 NULL
146674 +disable_so_sclk_radeon_pm_clock_info_39706 sclk radeon_pm_clock_info 0 39706 NULL
146675 +disable_so_dma_addr_pch_udc_dev_39708 dma_addr pch_udc_dev 0 39708 NULL
146676 +disable_so_word_write_time_flchip_39711 word_write_time flchip 0 39711 NULL nohasharray
146677 +disable_so_acpi_dev_runtime_suspend_fndecl_39711 acpi_dev_runtime_suspend fndecl 0 39711 &disable_so_word_write_time_flchip_39711
146678 +disable_so_poll_time_us_sccnxp_pdata_39712 poll_time_us sccnxp_pdata 0 39712 NULL
146679 +disable_so_div2_wm8978_pll_div_39713 div2 wm8978_pll_div 0 39713 NULL nohasharray
146680 +disable_so_ssb_chipco_alp_clock_fndecl_39713 ssb_chipco_alp_clock fndecl 0 39713 &disable_so_div2_wm8978_pll_div_39713
146681 +disable_so_chan_get_sndtimeo_cb_fndecl_39717 chan_get_sndtimeo_cb fndecl 0 39717 NULL nohasharray
146682 +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
146683 +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
146684 +disable_so___ew32_fndecl_39722 __ew32 fndecl 2-3 39722 NULL
146685 +disable_so_schedule_sequence_fndecl_39726 schedule_sequence fndecl 3 39726 NULL
146686 +disable_so_bitmap_cond_end_sync_fndecl_39734 bitmap_cond_end_sync fndecl 2 39734 NULL
146687 +disable_so_mc13xxx_rtc_read_time_fndecl_39742 mc13xxx_rtc_read_time fndecl 0 39742 NULL
146688 +disable_so_time_out_ncp_mount_data_kernel_39747 time_out ncp_mount_data_kernel 0 39747 NULL
146689 +disable_so_address_khugepaged_scan_39752 address khugepaged_scan 0 39752 NULL
146690 +disable_so_ab3100_set_register_interruptible_fndecl_39767 ab3100_set_register_interruptible fndecl 0 39767 NULL
146691 +disable_so_ixgbe_write_uc_addr_list_fndecl_39773 ixgbe_write_uc_addr_list fndecl 2 39773 NULL
146692 +disable_so_i2c_udelay_vardecl_cx88_i2c_c_39777 i2c_udelay vardecl_cx88-i2c.c 0 39777 NULL
146693 +disable_so_pm_test_delay_vardecl_suspend_c_39779 pm_test_delay vardecl_suspend.c 0 39779 NULL
146694 +disable_so___mt7601u_phy_freq_cal_fndecl_39782 __mt7601u_phy_freq_cal fndecl 3 39782 NULL
146695 +disable_so_s2mpa01_regulator_set_voltage_time_sel_fndecl_39788 s2mpa01_regulator_set_voltage_time_sel fndecl 0-2-3 39788 NULL
146696 +disable_so_mlx4_get_admin_guid_fndecl_39797 mlx4_get_admin_guid fndecl 2-3 39797 NULL
146697 +disable_so_enic_dev_intr_coal_timer_info_fndecl_39803 enic_dev_intr_coal_timer_info fndecl 0 39803 NULL
146698 +disable_so_freq_can_clock_39804 freq can_clock 0 39804 NULL
146699 +disable_so_ktime_set_fndecl_39816 ktime_set fndecl 1-2 39816 NULL
146700 +disable_so_bitmap_set_fndecl_39820 bitmap_set fndecl 2-3 39820 NULL
146701 +disable_so_ttm_bo_delayed_delete_fndecl_39822 ttm_bo_delayed_delete fndecl 0 39822 NULL nohasharray
146702 +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
146703 +disable_so_ipw_set_random_seed_fndecl_39834 ipw_set_random_seed fndecl 0 39834 NULL
146704 +disable_so_tpm2_gen_interrupt_fndecl_39854 tpm2_gen_interrupt fndecl 0 39854 NULL
146705 +disable_so_addr_sch5627_data_39866 addr sch5627_data 0 39866 NULL
146706 +disable_so_governor_cpufreq_governor_39867 governor cpufreq_governor 0 39867 NULL
146707 +disable_so_jhash_3words_fndecl_39870 jhash_3words fndecl 0-1-3 39870 NULL
146708 +disable_so_lvb_iatime_packed_ocfs2_meta_lvb_39885 lvb_iatime_packed ocfs2_meta_lvb 0 39885 NULL
146709 +disable_so_delay_zl6100_data_39886 delay zl6100_data 0 39886 NULL
146710 +disable_so_nla_put_string_fndecl_39892 nla_put_string fndecl 0 39892 NULL
146711 +disable_so_ctime_mddev_39904 ctime mddev 0 39904 NULL
146712 +disable_so_set_output_clock_fndecl_39910 set_output_clock fndecl 0 39910 NULL
146713 +disable_so_clear_bit_le_fndecl_39918 clear_bit_le fndecl 1 39918 NULL
146714 +disable_so_target_burst_mode_freq_mipi_config_39926 target_burst_mode_freq mipi_config 0 39926 NULL
146715 +disable_so_host_addr_gnttab_map_grant_ref_39935 host_addr gnttab_map_grant_ref 0 39935 NULL
146716 +disable_so_esd_timeout_tsc2005_39938 esd_timeout tsc2005 0 39938 NULL
146717 +disable_so_nr_parts_latch_addr_flash_data_39945 nr_parts latch_addr_flash_data 0 39945 NULL
146718 +disable_so_efx_test_interrupts_fndecl_39946 efx_test_interrupts fndecl 0 39946 NULL
146719 +disable_so_ds1685_rtc_read_time_fndecl_39947 ds1685_rtc_read_time fndecl 0 39947 NULL nohasharray
146720 +disable_so_ctxbitmap_gru_tlb_global_handle_39947 ctxbitmap gru_tlb_global_handle 0 39947 &disable_so_ds1685_rtc_read_time_fndecl_39947
146721 +disable_so_si_program_memory_timing_parameters_fndecl_39954 si_program_memory_timing_parameters fndecl 0 39954 NULL
146722 +disable_so___mce_read_apei_fndecl_39956 __mce_read_apei fndecl 0 39956 NULL
146723 +disable_so_xtime_nsec_tk_read_base_39961 xtime_nsec tk_read_base 0 39961 NULL
146724 +disable_so_plldiv_clk_coeff_39962 plldiv clk_coeff 0 39962 NULL
146725 +disable_so_iscsi_nacl_attrib_show_random_r2t_offsets_fndecl_39965 iscsi_nacl_attrib_show_random_r2t_offsets fndecl 0 39965 NULL
146726 +disable_so_crtc_clock_drm_display_mode_39969 crtc_clock drm_display_mode 0 39969 NULL
146727 +disable_so_qat_alg_ablkcipher_encrypt_fndecl_40005 qat_alg_ablkcipher_encrypt fndecl 0 40005 NULL
146728 +disable_so_dib7000p_write_word_fndecl_40007 dib7000p_write_word fndecl 2-3 40007 NULL
146729 +disable_so_crypto_register_shash_fndecl_40011 crypto_register_shash fndecl 0 40011 NULL
146730 +disable_so_acpi_os_signal_semaphore_fndecl_40013 acpi_os_signal_semaphore fndecl 0 40013 NULL
146731 +disable_so_w1_delay_fndecl_40014 w1_delay fndecl 1 40014 NULL
146732 +disable_so_tda10071_sleep_fndecl_40017 tda10071_sleep fndecl 0 40017 NULL
146733 +disable_so_blkcipher_walk_phys_fndecl_40019 blkcipher_walk_phys fndecl 0 40019 NULL
146734 +disable_so_aes_cmac_fndecl_40025 aes_cmac fndecl 0-4 40025 NULL
146735 +disable_so_dwell_time_passive_conf_scan_settings_40029 dwell_time_passive conf_scan_settings 0 40029 NULL nohasharray
146736 +disable_so_freq_wmi_channel_arg_40029 freq wmi_channel_arg 0 40029 &disable_so_dwell_time_passive_conf_scan_settings_40029
146737 +disable_so_ip_tss_segment_16_40046 ip tss_segment_16 0 40046 NULL
146738 +disable_so_recent_entry_hash6_fndecl_40053 recent_entry_hash6 fndecl 0 40053 NULL
146739 +disable_so_pci_addr_mm_dma_desc_40056 pci_addr mm_dma_desc 0 40056 NULL
146740 +disable_so_mwifiex_get_random_ba_threshold_fndecl_40074 mwifiex_get_random_ba_threshold fndecl 0 40074 NULL nohasharray
146741 +disable_so_ccp_aes_xts_decrypt_fndecl_40074 ccp_aes_xts_decrypt fndecl 0 40074 &disable_so_mwifiex_get_random_ba_threshold_fndecl_40074
146742 +disable_so_nilfs_btree_delete_fndecl_40077 nilfs_btree_delete fndecl 0-2 40077 NULL
146743 +disable_so_db_page_addr_ocrdma_create_qp_uresp_40086 db_page_addr ocrdma_create_qp_uresp 0 40086 NULL
146744 +disable_so_bitmap_empty_fndecl_40098 bitmap_empty fndecl 2 40098 NULL
146745 +disable_so_crypto_aes_expand_key_fndecl_40101 crypto_aes_expand_key fndecl 0-3 40101 NULL
146746 +disable_so_sclk_radeon_clock_and_voltage_limits_40103 sclk radeon_clock_and_voltage_limits 0 40103 NULL
146747 +disable_so_daddr_irda_sock_40107 daddr irda_sock 0 40107 NULL
146748 +disable_so_efx_phc_settime_fndecl_40110 efx_phc_settime fndecl 0 40110 NULL nohasharray
146749 +disable_so_w1_gpio_write_bit_val_fndecl_40110 w1_gpio_write_bit_val fndecl 2 40110 &disable_so_efx_phc_settime_fndecl_40110
146750 +disable_so_memsize_bitmap_port_40111 memsize bitmap_port 0 40111 NULL
146751 +disable_so_freq_channel_detector_40125 freq channel_detector 0 40125 NULL
146752 +disable_so_bitmap_port_do_list_fndecl_40145 bitmap_port_do_list fndecl 0 40145 NULL
146753 +disable_so_mcs7830_hif_set_mac_address_fndecl_40149 mcs7830_hif_set_mac_address fndecl 0 40149 NULL
146754 +disable_so_musb_write_rxfunaddr_fndecl_40150 musb_write_rxfunaddr fndecl 2-3 40150 NULL
146755 +disable_so_ioaddr_set_address_info_40154 ioaddr set_address_info 0 40154 NULL nohasharray
146756 +disable_so_mmap_kvaddr_fndecl_40154 mmap_kvaddr fndecl 0-2-4 40154 &disable_so_ioaddr_set_address_info_40154
146757 +disable_so_hr_timeout_ms_o2hb_region_40157 hr_timeout_ms o2hb_region 0 40157 NULL
146758 +disable_so_startbit_ebitmap_node_40162 startbit ebitmap_node 0 40162 NULL
146759 +disable_so_phys_addr_sfi_apic_table_entry_40169 phys_addr sfi_apic_table_entry 0 40169 NULL
146760 +disable_so_hw_settle_time_vadc_channel_prop_40184 hw_settle_time vadc_channel_prop 0 40184 NULL
146761 +disable_so_pio_address_scsi_qla_host_40189 pio_address scsi_qla_host 0 40189 NULL
146762 +disable_so_iffreq_dvb_pll_desc_40199 iffreq dvb_pll_desc 0 40199 NULL nohasharray
146763 +disable_so_cobalt_g_dv_timings_fndecl_40199 cobalt_g_dv_timings fndecl 0 40199 &disable_so_iffreq_dvb_pll_desc_40199
146764 +disable_so_to_addr_conv_fndecl_40204 to_addr_conv fndecl 3 40204 NULL
146765 +disable_so_fm10k_update_uc_addr_vf_fndecl_40219 fm10k_update_uc_addr_vf fndecl 4 40219 NULL
146766 +disable_so_empress_addr_saa7134_board_40236 empress_addr saa7134_board 0 40236 NULL
146767 +disable_so_lm3533_led_delay_on_set_fndecl_40245 lm3533_led_delay_on_set fndecl 0 40245 NULL
146768 +disable_so_cryptd_hash_digest_fndecl_40277 cryptd_hash_digest fndecl 2 40277 NULL
146769 +disable_so_p2m_timeouts_show_fndecl_40284 p2m_timeouts_show fndecl 0 40284 NULL
146770 +disable_so_decrypt_blkcipher_tfm_40300 decrypt blkcipher_tfm 0-4 40300 NULL
146771 +disable_so_freq_radio_tea5777_40301 freq radio_tea5777 0 40301 NULL
146772 +disable_so_height_v4l2_bt_timings_40304 height v4l2_bt_timings 0 40304 NULL
146773 +disable_so_set_channels_control_runtime_40305 set_channels control_runtime 0 40305 NULL
146774 +disable_so_mpll_ss1_si_clock_registers_40320 mpll_ss1 si_clock_registers 0 40320 NULL
146775 +disable_so_address_drm_radeon_surface_free_40326 address drm_radeon_surface_free 0 40326 NULL
146776 +disable_so_scopedist_ipv6_saddr_score_40339 scopedist ipv6_saddr_score 0 40339 NULL
146777 +disable_so_eeprom_addr_pvr2_hdw_40343 eeprom_addr pvr2_hdw 0 40343 NULL
146778 +disable_so_phys_addr_low_qlcnic_tx_mbx_40351 phys_addr_low qlcnic_tx_mbx 0 40351 NULL
146779 +disable_so_i_ctime_nsec_nilfs_inode_40368 i_ctime_nsec nilfs_inode 0 40368 NULL
146780 +disable_so_crypto_set_driver_name_fndecl_40369 crypto_set_driver_name fndecl 0 40369 NULL
146781 +disable_so_gid_args_requester_40377 gid args_requester 0 40377 NULL
146782 +disable_so_ds1343_set_time_fndecl_40381 ds1343_set_time fndecl 0 40381 NULL nohasharray
146783 +disable_so_p2_mt9t112_pll_divider_40381 p2 mt9t112_pll_divider 0 40381 &disable_so_ds1343_set_time_fndecl_40381
146784 +disable_so_get_phys_to_machine_fndecl_40384 get_phys_to_machine fndecl 0-1 40384 NULL
146785 +disable_so_irlmp_start_watchdog_timer_fndecl_40386 irlmp_start_watchdog_timer fndecl 2 40386 NULL
146786 +disable_so_it_id_k_itimer_40394 it_id k_itimer 0 40394 NULL
146787 +disable_so_proc_gid_vardecl_airo_c_40395 proc_gid vardecl_airo.c 0 40395 NULL
146788 +disable_so_vf_addr_lo_bnx2x_vf_mbx_40423 vf_addr_lo bnx2x_vf_mbx 0 40423 NULL
146789 +disable_so_hsw_get_aux_clock_divider_fndecl_40428 hsw_get_aux_clock_divider fndecl 0 40428 NULL
146790 +disable_so_uid_coda_in_hdr_40430 uid coda_in_hdr 0 40430 NULL
146791 +disable_so_il4965_sta_modify_sleep_tx_count_fndecl_40431 il4965_sta_modify_sleep_tx_count fndecl 2 40431 NULL
146792 +disable_so_op_nmi_timer_init_fndecl_40444 op_nmi_timer_init fndecl 0 40444 NULL
146793 +disable_so_reply_dma_min_address_MPT3SAS_ADAPTER_40450 reply_dma_min_address MPT3SAS_ADAPTER 0 40450 NULL
146794 +disable_so_clock_elmer0_board_info_40451 clock_elmer0 board_info 0 40451 NULL
146795 +disable_so_drift_time_trackpoint_data_40460 drift_time trackpoint_data 0 40460 NULL
146796 +disable_so_tpm_get_random_fndecl_40461 tpm_get_random fndecl 0-3 40461 NULL
146797 +disable_so_HDisplay_xtimings_40462 HDisplay xtimings 0 40462 NULL
146798 +disable_so_addr_desc_frag_40463 addr desc_frag 0 40463 NULL
146799 +disable_so___scrub_mark_bitmap_fndecl_40465 __scrub_mark_bitmap fndecl 3-4 40465 NULL
146800 +disable_so_da9063_wdt_timeout_to_sel_fndecl_40469 da9063_wdt_timeout_to_sel fndecl 0-1 40469 NULL
146801 +disable_so_hactive___fb_timings_40471 hactive __fb_timings 0 40471 NULL
146802 +disable_so_next_blkaddr_of_node_fndecl_40477 next_blkaddr_of_node fndecl 0 40477 NULL
146803 +disable_so_gk20a_timer_init_fndecl_40478 gk20a_timer_init fndecl 0 40478 NULL
146804 +disable_so_saa7164_i2caddr_to_unitid_fndecl_40486 saa7164_i2caddr_to_unitid fndecl 2 40486 NULL
146805 +disable_so___hw_addr_unsync_one_fndecl_40488 __hw_addr_unsync_one fndecl 4 40488 NULL
146806 +disable_so_uncore_msr_box_offset_fndecl_40489 uncore_msr_box_offset fndecl 0 40489 NULL
146807 +disable_so_kgdbdbgp_wait_time_vardecl_ehci_dbgp_c_40510 kgdbdbgp_wait_time vardecl_ehci-dbgp.c 0 40510 NULL
146808 +disable_so_sys_time_fndecl_40516 sys_time fndecl 0 40516 NULL
146809 +disable_so_addrconf_sysctl_proxy_ndp_fndecl_40521 addrconf_sysctl_proxy_ndp fndecl 0 40521 NULL
146810 +disable_so_jiffies_64_vardecl_40530 jiffies_64 vardecl 0 40530 NULL
146811 +disable_so_time_fcoe_rport_40540 time fcoe_rport 0 40540 NULL nohasharray
146812 +disable_so_i_time_fuse_inode_40540 i_time fuse_inode 0 40540 &disable_so_time_fcoe_rport_40540
146813 +disable_so_fllclk_div__fll_div_40542 fllclk_div _fll_div 0 40542 NULL
146814 +disable_so_mmc_sleep_fndecl_40550 mmc_sleep fndecl 0 40550 NULL
146815 +disable_so_swap_activate_address_space_operations_40556 swap_activate address_space_operations 0 40556 NULL
146816 +disable_so_snd_timer_reschedule_fndecl_40558 snd_timer_reschedule fndecl 2 40558 NULL
146817 +disable_so_register_inetaddr_notifier_fndecl_40563 register_inetaddr_notifier fndecl 0 40563 NULL nohasharray
146818 +disable_so_shash_async_export_fndecl_40563 shash_async_export fndecl 0 40563 &disable_so_register_inetaddr_notifier_fndecl_40563
146819 +disable_so_tx_duty_cycle_ene_device_40568 tx_duty_cycle ene_device 0 40568 NULL
146820 +disable_so_delay_cfg80211_sched_scan_request_40582 delay cfg80211_sched_scan_request 0 40582 NULL
146821 +disable_so_sctp_copy_local_addr_list_fndecl_40597 sctp_copy_local_addr_list fndecl 0-4 40597 NULL
146822 +disable_so_can_clock_plx_pci_card_info_40599 can_clock plx_pci_card_info 0 40599 NULL
146823 +disable_so_last_semaphore_signal_addr_amdgpu_ring_40601 last_semaphore_signal_addr amdgpu_ring 0 40601 NULL
146824 +disable_so_slave_addr_radeon_encoder_ext_tmds_40618 slave_addr radeon_encoder_ext_tmds 0 40618 NULL
146825 +disable_so_lrg_buf_q_phy_addr_ql3_adapter_40620 lrg_buf_q_phy_addr ql3_adapter 0 40620 NULL
146826 +disable_so_slave_addr_sdvo_device_mapping_40627 slave_addr sdvo_device_mapping 0 40627 NULL
146827 +disable_so_raddr_fw_ldst_mdio_40629 raddr fw_ldst_mdio 0 40629 NULL
146828 +disable_so_soc_dpcm_runtime_update_fndecl_40639 soc_dpcm_runtime_update fndecl 0 40639 NULL
146829 +disable_so_md_timestamp_netxen_minidump_40640 md_timestamp netxen_minidump 0 40640 NULL
146830 +disable_so_freq_magnitude_fndecl_40641 freq_magnitude fndecl 0-2-3 40641 NULL
146831 +disable_so_asd_write_reg_addr_fndecl_40648 asd_write_reg_addr fndecl 2-3 40648 NULL
146832 +disable_so_ndiv_frac_pmu1_plltab_entry_40664 ndiv_frac pmu1_plltab_entry 0 40664 NULL
146833 +disable_so___percpu_counter_add_fndecl_40667 __percpu_counter_add fndecl 2 40667 NULL
146834 +disable_so_r600_set_mpll_lock_time_fndecl_40677 r600_set_mpll_lock_time fndecl 2 40677 NULL
146835 +disable_so_m_daddr_rds_message_40687 m_daddr rds_message 0 40687 NULL
146836 +disable_so_tbl_addr_hi_ahci_cmd_hdr_40697 tbl_addr_hi ahci_cmd_hdr 0 40697 NULL
146837 +disable_so___cfq_update_io_thinktime_fndecl_40698 __cfq_update_io_thinktime fndecl 2 40698 NULL
146838 +disable_so_sense_addr_snic_icmnd_40701 sense_addr snic_icmnd 0 40701 NULL
146839 +disable_so_addr_mlx5e_sq_dma_40707 addr mlx5e_sq_dma 0 40707 NULL
146840 +disable_so_lp872x_is_valid_buck_addr_fndecl_40709 lp872x_is_valid_buck_addr fndecl 1 40709 NULL
146841 +disable_so_dma_addr_respQ_40711 dma_addr respQ 0 40711 NULL
146842 +disable_so_mclkdiv_cs4265_clk_para_40714 mclkdiv cs4265_clk_para 0 40714 NULL
146843 +disable_so_sh_tmu_clocksource_read_fndecl_40723 sh_tmu_clocksource_read fndecl 0 40723 NULL nohasharray
146844 +disable_so_mthca_cmd_poll_fndecl_40723 mthca_cmd_poll fndecl 0-2 40723 &disable_so_sh_tmu_clocksource_read_fndecl_40723
146845 +disable_so_radio_si4713_s_frequency_fndecl_40725 radio_si4713_s_frequency fndecl 0 40725 NULL
146846 +disable_so_onecputick_vardecl_posix_cpu_timers_c_40726 onecputick vardecl_posix-cpu-timers.c 0 40726 NULL
146847 +disable_so_v_freq_adv7842_video_standards_40728 v_freq adv7842_video_standards 0 40728 NULL
146848 +disable_so___ip6addrlbl_del_fndecl_40742 __ip6addrlbl_del fndecl 0-4 40742 NULL
146849 +disable_so_encrypt_msdu_lib80211_crypto_ops_40743 encrypt_msdu lib80211_crypto_ops 2 40743 NULL
146850 +disable_so_rolloff_stv0900_signal_info_40745 rolloff stv0900_signal_info 0 40745 NULL
146851 +disable_so_pci_finish_runtime_suspend_fndecl_40755 pci_finish_runtime_suspend fndecl 0 40755 NULL
146852 +disable_so_tcp_sacktag_walk_fndecl_40756 tcp_sacktag_walk fndecl 6-5 40756 NULL
146853 +disable_so_vnic_dev_add_addr_fndecl_40765 vnic_dev_add_addr fndecl 0 40765 NULL
146854 +disable_so_zd_usb_iowrite16v_fndecl_40771 zd_usb_iowrite16v fndecl 3-0 40771 NULL nohasharray
146855 +disable_so_frequency_mb86a16_state_40771 frequency mb86a16_state 0 40771 &disable_so_zd_usb_iowrite16v_fndecl_40771
146856 +disable_so_clk_ref_div_fll_div_40776 clk_ref_div fll_div 0 40776 NULL
146857 +disable_so_lifetime_write_kbytes_show_fndecl_40777 lifetime_write_kbytes_show fndecl 0 40777 NULL nohasharray
146858 +disable_so_smp_send_reschedule_fndecl_40777 smp_send_reschedule fndecl 1 40777 &disable_so_lifetime_write_kbytes_show_fndecl_40777
146859 +disable_so_crypto_ccm_auth_fndecl_40795 crypto_ccm_auth fndecl 0-3 40795 NULL
146860 +disable_so_get_option_uid_fndecl_40799 get_option_uid fndecl 0 40799 NULL
146861 +disable_so_be_mac_addr_set_fndecl_40804 be_mac_addr_set fndecl 0 40804 NULL
146862 +disable_so_frac_timecounter_40806 frac timecounter 0 40806 NULL
146863 +disable_so_pid_pppol2tpin6_addr_40809 pid pppol2tpin6_addr 0 40809 NULL
146864 +disable_so_i40e_vc_del_mac_addr_msg_fndecl_40824 i40e_vc_del_mac_addr_msg fndecl 0-3 40824 NULL nohasharray
146865 +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
146866 +disable_so_ahd_delay_fndecl_40826 ahd_delay fndecl 1 40826 NULL
146867 +disable_so_read_addr___queue_40832 read_addr __queue 0 40832 NULL
146868 +disable_so_ring_iowrite32desc_fndecl_40836 ring_iowrite32desc fndecl 2 40836 NULL
146869 +disable_so_mma8452_get_samp_freq_index_fndecl_40841 mma8452_get_samp_freq_index fndecl 0-2-3 40841 NULL
146870 +disable_so_nouveau_bo_wr32_fndecl_40847 nouveau_bo_wr32 fndecl 2-3 40847 NULL
146871 +disable_so_drm_object_attach_property_fndecl_40853 drm_object_attach_property fndecl 3 40853 NULL
146872 +disable_so_sched_rr_timeslice_vardecl_40858 sched_rr_timeslice vardecl 0 40858 NULL
146873 +disable_so_hash_recvmsg_fndecl_40871 hash_recvmsg fndecl 0-3 40871 NULL
146874 +disable_so_timeradd_entry_fndecl_40873 timeradd_entry fndecl 0-3 40873 NULL
146875 +disable_so_pages_per_bnode_hfs_btree_40875 pages_per_bnode hfs_btree 0 40875 NULL
146876 +disable_so_ubifs_destroy_tnc_subtree_fndecl_40878 ubifs_destroy_tnc_subtree fndecl 0 40878 NULL
146877 +disable_so_add_uuid_fndecl_40884 add_uuid fndecl 4 40884 NULL nohasharray
146878 +disable_so_make_checksum_hmac_md5_fndecl_40884 make_checksum_hmac_md5 fndecl 3-5 40884 &disable_so_add_uuid_fndecl_40884
146879 +disable_so_sync_bmp_nbits_regcache_lzo_ctx_40890 sync_bmp_nbits regcache_lzo_ctx 0 40890 NULL
146880 +disable_so_crypto_fpu_decrypt_fndecl_40907 crypto_fpu_decrypt fndecl 0-4 40907 NULL
146881 +disable_so_qce_ahash_final_fndecl_40916 qce_ahash_final fndecl 0 40916 NULL
146882 +disable_so_auto_stop_time_uhci_hcd_40917 auto_stop_time uhci_hcd 0 40917 NULL
146883 +disable_so_sys_rt_sigtimedwait_fndecl_40920 sys_rt_sigtimedwait fndecl 0 40920 NULL
146884 +disable_so_dec_cd_paddr_qat_alg_ablkcipher_ctx_40923 dec_cd_paddr qat_alg_ablkcipher_ctx 0 40923 NULL nohasharray
146885 +disable_so_i2cdev_check_addr_fndecl_40923 i2cdev_check_addr fndecl 2 40923 &disable_so_dec_cd_paddr_qat_alg_ablkcipher_ctx_40923
146886 +disable_so_inode_bitmap_ext3_new_group_data_40928 inode_bitmap ext3_new_group_data 0 40928 NULL
146887 +disable_so_inet_select_addr_fndecl_40940 inet_select_addr fndecl 0-2-3 40940 NULL nohasharray
146888 +disable_so_curfreq_keene_device_40940 curfreq keene_device 0 40940 &disable_so_inet_select_addr_fndecl_40940
146889 +disable_so_w83627ehf_write_fan_div_common_fndecl_40945 w83627ehf_write_fan_div_common fndecl 3 40945 NULL
146890 +disable_so_req_addr_efx_vf_40947 req_addr efx_vf 0 40947 NULL
146891 +disable_so_get_crandom_fndecl_40951 get_crandom fndecl 0 40951 NULL
146892 +disable_so_authenc_esn_geniv_ahash_update_done2_fndecl_40965 authenc_esn_geniv_ahash_update_done2 fndecl 2 40965 NULL
146893 +disable_so_bt3c_address_fndecl_40975 bt3c_address fndecl 1 40975 NULL
146894 +disable_so_tx_bidx_addr_bnx2_tx_ring_info_40977 tx_bidx_addr bnx2_tx_ring_info 0 40977 NULL
146895 +disable_so_cs5520_set_timings_fndecl_40978 cs5520_set_timings fndecl 3 40978 NULL
146896 +disable_so_addrLow_ULP_BDL_40980 addrLow ULP_BDL 0 40980 NULL
146897 +disable_so_last_wakeup_time_rtl_ps_ctl_40987 last_wakeup_time rtl_ps_ctl 0 40987 NULL
146898 +disable_so_kstrtos8_fndecl_40989 kstrtos8 fndecl 0 40989 NULL nohasharray
146899 +disable_so_drbg_hash_generate_fndecl_40989 drbg_hash_generate fndecl 0-3 40989 &disable_so_kstrtos8_fndecl_40989
146900 +disable_so_vaddr_get_pfn_fndecl_40993 vaddr_get_pfn fndecl 0-1 40993 NULL
146901 +disable_so_s_def_resgid_ext3_super_block_40996 s_def_resgid ext3_super_block 0 40996 NULL
146902 +disable_so_sr_nongc_ctime_nilfs_super_root_40997 sr_nongc_ctime nilfs_super_root 0 40997 NULL
146903 +disable_so_rsp_producer_index_phy_addr_high_ql3_adapter_40998 rsp_producer_index_phy_addr_high ql3_adapter 0 40998 NULL
146904 +disable_so_per_jiffies_stats_dib8000_state_40999 per_jiffies_stats dib8000_state 0 40999 NULL
146905 +disable_so_cobalt_dv_timings_cap_fndecl_41001 cobalt_dv_timings_cap fndecl 0 41001 NULL
146906 +disable_so_encrypt_blkcipher_tfm_41013 encrypt blkcipher_tfm 0-4 41013 NULL
146907 +disable_so_max_dwell_time_active_conf_scan_settings_41024 max_dwell_time_active conf_scan_settings 0 41024 NULL
146908 +disable_so_gpu_addr_radeon_fence_driver_41046 gpu_addr radeon_fence_driver 0 41046 NULL
146909 +disable_so_read_cache_jiffies_nfs_inode_41071 read_cache_jiffies nfs_inode 0 41071 NULL
146910 +disable_so_curfreq_ma901radio_device_41079 curfreq ma901radio_device 0 41079 NULL
146911 +disable_so_show_constraint_max_time_window_us_fndecl_41080 show_constraint_max_time_window_us fndecl 0 41080 NULL
146912 +disable_so_acpi_tables_addr_vardecl_osl_c_41081 acpi_tables_addr vardecl_osl.c 0 41081 NULL
146913 +disable_so_gdth_delay_fndecl_41096 gdth_delay fndecl 1 41096 NULL
146914 +disable_so_wq_calc_node_cpumask_fndecl_41102 wq_calc_node_cpumask fndecl 2 41102 NULL
146915 +disable_so_qp_bitmap_free_ntb_transport_ctx_41105 qp_bitmap_free ntb_transport_ctx 0 41105 NULL
146916 +disable_so_show_admin_alias_guid_fndecl_41106 show_admin_alias_guid fndecl 0 41106 NULL
146917 +disable_so_freq_vardecl_mxb_c_41108 freq vardecl_mxb.c 0 41108 NULL
146918 +disable_so_vx_set_internal_clock_fndecl_41114 vx_set_internal_clock fndecl 2 41114 NULL
146919 +disable_so_jiffies_at_alloc_qla_tgt_cmd_41119 jiffies_at_alloc qla_tgt_cmd 0 41119 NULL
146920 +disable_so_timestamp_ath9k_htc_tx_ctl_41124 timestamp ath9k_htc_tx_ctl 0 41124 NULL
146921 +disable_so_ib_baseaddr_h_mvumi_hs_page4_41130 ib_baseaddr_h mvumi_hs_page4 0 41130 NULL
146922 +disable_so_cherryview_rps_guar_freq_fndecl_41132 cherryview_rps_guar_freq fndecl 0 41132 NULL
146923 +disable_so_time_survey_info_41134 time survey_info 0 41134 NULL
146924 +disable_so_child_tgid_fork_proc_event_41148 child_tgid fork_proc_event 0 41148 NULL
146925 +disable_so_companion_addr_pm860x_platform_data_41156 companion_addr pm860x_platform_data 0 41156 NULL
146926 +disable_so_lgdt330x_read_signal_strength_fndecl_41159 lgdt330x_read_signal_strength fndecl 0 41159 NULL
146927 +disable_so_genwqe_curr_dbg_uid1_show_fndecl_41164 genwqe_curr_dbg_uid1_show fndecl 0 41164 NULL
146928 +disable_so_addr_nct6775_data_41165 addr nct6775_data 0 41165 NULL
146929 +disable_so_assoc_id_sctp_getaddrs_41169 assoc_id sctp_getaddrs 0 41169 NULL
146930 +disable_so_set_addr_fndecl_41173 set_addr fndecl 2 41173 NULL
146931 +disable_so_fairness_timeout_fairness_vars_per_port_41174 fairness_timeout fairness_vars_per_port 0 41174 NULL
146932 +disable_so_acpi_os_install_interrupt_handler_fndecl_41179 acpi_os_install_interrupt_handler fndecl 1 41179 NULL
146933 +disable_so_ref_freq_vardecl_tsc_c_41183 ref_freq vardecl_tsc.c 0 41183 NULL
146934 +disable_so_latest_ip_addr_eg_cache_entry_41198 latest_ip_addr eg_cache_entry 0 41198 NULL
146935 +disable_so_long_timeout_osst_tape_41205 long_timeout osst_tape 0 41205 NULL
146936 +disable_so_dma_addr_mcam_dma_desc_41206 dma_addr mcam_dma_desc 0 41206 NULL
146937 +disable_so_address_lower_scu_sgl_element_41221 address_lower scu_sgl_element 0 41221 NULL
146938 +disable_so_paravirt_read_tsc_fndecl_41239 paravirt_read_tsc fndecl 0 41239 NULL
146939 +disable_so_posix_clock_realtime_set_fndecl_41245 posix_clock_realtime_set fndecl 0 41245 NULL
146940 +disable_so_phys_addr_netxen_dummy_dma_41248 phys_addr netxen_dummy_dma 0 41248 NULL
146941 +disable_so_addr_port_fndecl_41249 addr_port fndecl 0 41249 NULL nohasharray
146942 +disable_so_ip_vs_svc_hashkey_fndecl_41249 ip_vs_svc_hashkey fndecl 2-3 41249 &disable_so_addr_port_fndecl_41249
146943 +disable_so_kstrtoul_from_user_fndecl_41258 kstrtoul_from_user fndecl 0-2 41258 NULL
146944 +disable_so_xfrm_state_lookup_byaddr_fndecl_41260 xfrm_state_lookup_byaddr fndecl 2-5-6 41260 NULL
146945 +disable_so_ns_sbwtime_the_nilfs_41268 ns_sbwtime the_nilfs 0 41268 NULL
146946 +disable_so_max_delta_ns_clock_event_device_41269 max_delta_ns clock_event_device 0 41269 NULL
146947 +disable_so_mcryptd_hash_init_enqueue_fndecl_41273 mcryptd_hash_init_enqueue fndecl 0 41273 NULL
146948 +disable_so_enic_set_mac_address_dynamic_fndecl_41279 enic_set_mac_address_dynamic fndecl 0 41279 NULL
146949 +disable_so_igb_ptp_adjtime_i210_fndecl_41280 igb_ptp_adjtime_i210 fndecl 2 41280 NULL
146950 +disable_so_timestamp_cper_record_header_41286 timestamp cper_record_header 0 41286 NULL
146951 +disable_so_mtt_base_addr_l_mlx4_cq_context_41294 mtt_base_addr_l mlx4_cq_context 0 41294 NULL
146952 +disable_so_base_lo_mtrr_var_range_41296 base_lo mtrr_var_range 0 41296 NULL
146953 +disable_so_ucma_query_gid_fndecl_41299 ucma_query_gid fndecl 3 41299 NULL
146954 +disable_so_ioat_dma_setup_interrupts_fndecl_41304 ioat_dma_setup_interrupts fndecl 0 41304 NULL
146955 +disable_so_cmaj_flt_signal_struct_41306 cmaj_flt signal_struct 0 41306 NULL
146956 +disable_so_wlc_phy_ant_rxdiv_set_fndecl_41312 wlc_phy_ant_rxdiv_set fndecl 2 41312 NULL
146957 +disable_so_ata_timing_compute_fndecl_41314 ata_timing_compute fndecl 2 41314 NULL
146958 +disable_so_jiffies_resched_rcu_state_41320 jiffies_resched rcu_state 0 41320 NULL
146959 +disable_so_cc770_rx_interrupt_fndecl_41322 cc770_rx_interrupt fndecl 2 41322 NULL
146960 +disable_so_configure_clock_fndecl_41329 configure_clock fndecl 0 41329 NULL
146961 +disable_so_timeout_ip_set_41331 timeout ip_set 0 41331 NULL
146962 +disable_so_dcbnl_getperm_hwaddr_fndecl_41338 dcbnl_getperm_hwaddr fndecl 0 41338 NULL
146963 +disable_so_cfg80211_set_cipher_group_fndecl_41343 cfg80211_set_cipher_group fndecl 2 41343 NULL
146964 +disable_so_time_ipr_trace_entry_41350 time ipr_trace_entry 0 41350 NULL
146965 +disable_so_csize_lattime_ahc_pci_softc_41352 csize_lattime ahc_pci_softc 0 41352 NULL
146966 +disable_so_bind_to_cpu_evtchn_ops_41358 bind_to_cpu evtchn_ops 2 41358 NULL
146967 +disable_so_init_lib80211_crypto_ops_41363 init lib80211_crypto_ops 1 41363 NULL
146968 +disable_so_xhci_get_timeout_no_hub_lpm_fndecl_41382 xhci_get_timeout_no_hub_lpm fndecl 0 41382 NULL
146969 +disable_so_ast_set_index_reg_mask_fndecl_41386 ast_set_index_reg_mask fndecl 5 41386 NULL nohasharray
146970 +disable_so_iwl_send_rxon_timing_fndecl_41386 iwl_send_rxon_timing fndecl 0 41386 &disable_so_ast_set_index_reg_mask_fndecl_41386
146971 +disable_so_last_can_queue_ramp_down_time_fc_fcp_internal_41400 last_can_queue_ramp_down_time fc_fcp_internal 0 41400 NULL
146972 +disable_so_bClockID_uac_clock_selector_descriptor_41403 bClockID uac_clock_selector_descriptor 0 41403 NULL
146973 +disable_so_sys_setuid_fndecl_41415 sys_setuid fndecl 0-1 41415 NULL
146974 +disable_so_i2c_address_tda826x_priv_41421 i2c_address tda826x_priv 0 41421 NULL
146975 +disable_so_dma_addr_efx_rx_buffer_41422 dma_addr efx_rx_buffer 0 41422 NULL
146976 +disable_so_retrans_timeout_l2cap_chan_41431 retrans_timeout l2cap_chan 0 41431 NULL
146977 +disable_so_musb_read_rxhubaddr_fndecl_41435 musb_read_rxhubaddr fndecl 2-0 41435 NULL
146978 +disable_so_pll_reference_div_radeon_crtc_41437 pll_reference_div radeon_crtc 0 41437 NULL
146979 +disable_so_macvlan_set_mac_address_fndecl_41439 macvlan_set_mac_address fndecl 0 41439 NULL
146980 +disable_so_i_uid_read_fndecl_41443 i_uid_read fndecl 0 41443 NULL
146981 +disable_so_hpi_silence_detector_get_delay_fndecl_41450 hpi_silence_detector_get_delay fndecl 0-1 41450 NULL
146982 +disable_so__div_round_up_fndecl_41453 _div_round_up fndecl 0-3-2 41453 NULL
146983 +disable_so_br_timer_value_fndecl_41454 br_timer_value fndecl 0 41454 NULL
146984 +disable_so_compat_sys_utimes_fndecl_41459 compat_sys_utimes fndecl 0 41459 NULL
146985 +disable_so_tx_duty_cycle_ofdm_brcms_c_info_41464 tx_duty_cycle_ofdm brcms_c_info 0 41464 NULL
146986 +disable_so_crypto_authenc_verify_fndecl_41468 crypto_authenc_verify fndecl 0 41468 NULL
146987 +disable_so_signalQuality_StatusRid_41475 signalQuality StatusRid 0 41475 NULL
146988 +disable_so_storvsc_timeout_vardecl_storvsc_drv_c_41479 storvsc_timeout vardecl_storvsc_drv.c 0 41479 NULL
146989 +disable_so_sctp_v6_from_addr_param_fndecl_41480 sctp_v6_from_addr_param fndecl 3-4 41480 NULL
146990 +disable_so_xfs_btree_check_ptr_fndecl_41490 xfs_btree_check_ptr fndecl 3-0 41490 NULL
146991 +disable_so___anon_vma_interval_tree_compute_subtree_last_fndecl_41494 __anon_vma_interval_tree_compute_subtree_last fndecl 0 41494 NULL
146992 +disable_so_drive_jiffies_skd_device_41506 drive_jiffies skd_device 0 41506 NULL
146993 +disable_so_last_dock_time_dock_station_41508 last_dock_time dock_station 0 41508 NULL
146994 +disable_so_common_nsleep_fndecl_41534 common_nsleep fndecl 1 41534 NULL
146995 +disable_so_sun4i_spi_runtime_resume_fndecl_41538 sun4i_spi_runtime_resume fndecl 0 41538 NULL
146996 +disable_so_src_nents_qce_cipher_reqctx_41541 src_nents qce_cipher_reqctx 0 41541 NULL
146997 +disable_so_daddr_irda_ias_set_41547 daddr irda_ias_set 0 41547 NULL
146998 +disable_so_cpufreq_frequency_get_table_fndecl_41548 cpufreq_frequency_get_table fndecl 1 41548 NULL
146999 +disable_so_bd_list_addr_lo_bnx2i_tmf_request_41551 bd_list_addr_lo bnx2i_tmf_request 0 41551 NULL
147000 +disable_so_mkey_lease_timeout_qib_ibport_41552 mkey_lease_timeout qib_ibport 0 41552 NULL
147001 +disable_so_dma_addr_efx_rx_page_state_41558 dma_addr efx_rx_page_state 0 41558 NULL
147002 +disable_so_igb_runtime_resume_fndecl_41565 igb_runtime_resume fndecl 0 41565 NULL
147003 +disable_so_wait_on_page_bit_killable_fndecl_41573 wait_on_page_bit_killable fndecl 0 41573 NULL
147004 +disable_so_time_js_event_41583 time js_event 0 41583 NULL nohasharray
147005 +disable_so_lzo_mod_init_fndecl_41583 lzo_mod_init fndecl 0 41583 &disable_so_time_js_event_41583
147006 +disable_so_cg_spll_func_cntl_2_si_clock_registers_41584 cg_spll_func_cntl_2 si_clock_registers 0 41584 NULL
147007 +disable_so_swa_base_asd_ha_addrspace_41593 swa_base asd_ha_addrspace 0 41593 NULL
147008 +disable_so_flow_get_skgid_fndecl_41594 flow_get_skgid fndecl 0 41594 NULL nohasharray
147009 +disable_so_fib_sync_down_addr_fndecl_41594 fib_sync_down_addr fndecl 2 41594 &disable_so_flow_get_skgid_fndecl_41594
147010 +disable_so_fl0addr_csio_iq_params_41595 fl0addr csio_iq_params 0 41595 NULL
147011 +disable_so_cpufreq_stat_notifier_policy_fndecl_41604 cpufreq_stat_notifier_policy fndecl 0 41604 NULL nohasharray
147012 +disable_so_hash_by_src_fndecl_41604 hash_by_src fndecl 0 41604 &disable_so_cpufreq_stat_notifier_policy_fndecl_41604
147013 +disable_so_read_nvkm_timer_41609 read nvkm_timer 0 41609 NULL
147014 +disable_so_shm32read_addr_next_b43_dfsentry_41611 shm32read_addr_next b43_dfsentry 0 41611 NULL
147015 +disable_so_lo_regpair_41616 lo regpair 0 41616 NULL
147016 +disable_so_addr_netdev_desc_41619 addr netdev_desc 0 41619 NULL
147017 +disable_so_ndesc_get_timestamp_fndecl_41626 ndesc_get_timestamp fndecl 0 41626 NULL
147018 +disable_so_gid_cramfs_inode_41627 gid cramfs_inode 0 41627 NULL
147019 +disable_so___sw_hweight8_fndecl_41629 __sw_hweight8 fndecl 1-0 41629 NULL
147020 +disable_so_kvm_mtrr_get_guest_memory_type_fndecl_41633 kvm_mtrr_get_guest_memory_type fndecl 2-0 41633 NULL
147021 +disable_so___xfrm6_addr_hash_fndecl_41637 __xfrm6_addr_hash fndecl 0 41637 NULL
147022 +disable_so_phys_reg_addr_slgt_info_41642 phys_reg_addr slgt_info 0 41642 NULL
147023 +disable_so_il_dbgfs_wd_timeout_write_fndecl_41643 il_dbgfs_wd_timeout_write fndecl 3 41643 NULL
147024 +disable_so_count_sha256_state_41648 count sha256_state 0 41648 NULL
147025 +disable_so_ironlake_check_encoder_dotclock_fndecl_41660 ironlake_check_encoder_dotclock fndecl 2 41660 NULL
147026 +disable_so_af9015_eeprom_hash_fndecl_41666 af9015_eeprom_hash fndecl 0 41666 NULL
147027 +disable_so_intel_dotclock_calculate_fndecl_41668 intel_dotclock_calculate fndecl 1-0 41668 NULL
147028 +disable_so_rdmsrl_amd_safe_fndecl_41672 rdmsrl_amd_safe fndecl 0 41672 NULL
147029 +disable_so_crypto_ablkcipher_encrypt_fndecl_41682 crypto_ablkcipher_encrypt fndecl 0 41682 NULL
147030 +disable_so_bcma_pmu_pll_clock_bcm4706_fndecl_41683 bcma_pmu_pll_clock_bcm4706 fndecl 0-2 41683 NULL
147031 +disable_so_regmap_write_fndecl_41685 regmap_write fndecl 0-2-3 41685 NULL
147032 +disable_so_setup_APIC_mce_threshold_fndecl_41686 setup_APIC_mce_threshold fndecl 0-1-2 41686 NULL
147033 +disable_so_copy_signal_fndecl_41687 copy_signal fndecl 1 41687 NULL
147034 +disable_so_dma_addr_dw_spi_41693 dma_addr dw_spi 0 41693 NULL
147035 +disable_so_leave_oper_channel_time_ieee80211_local_41701 leave_oper_channel_time ieee80211_local 0 41701 NULL
147036 +disable_so_bit_putcs_fndecl_41704 bit_putcs fndecl 4-5-6-7-8 41704 NULL
147037 +disable_so_nbpf_runtime_resume_fndecl_41706 nbpf_runtime_resume fndecl 0 41706 NULL
147038 +disable_so_force_addr_vardecl_vt8231_c_41714 force_addr vardecl_vt8231.c 0 41714 NULL
147039 +disable_so_radio_syn_pll_refdiv_b43_nphy_channeltab_entry_rev3_41738 radio_syn_pll_refdiv b43_nphy_channeltab_entry_rev3 0 41738 NULL
147040 +disable_so_epoch_time_atto_vda_cfg_init_41739 epoch_time atto_vda_cfg_init 0 41739 NULL
147041 +disable_so_node_size_shift_hfs_btree_41753 node_size_shift hfs_btree 0 41753 NULL
147042 +disable_so_gfx_addr_intel_hw_status_page_41756 gfx_addr intel_hw_status_page 0 41756 NULL
147043 +disable_so_mtrr_trim_uncached_memory_fndecl_41757 mtrr_trim_uncached_memory fndecl 1 41757 NULL
147044 +disable_so_start_idle_time_cfqg_stats_41767 start_idle_time cfqg_stats 0 41767 NULL
147045 +disable_so_receive_bitmap_plain_fndecl_41772 receive_bitmap_plain fndecl 0-2 41772 NULL
147046 +disable_so___set_port_dev_addr_fndecl_41787 __set_port_dev_addr fndecl 0 41787 NULL
147047 +disable_so_max_delta_ticks_clock_event_device_41796 max_delta_ticks clock_event_device 0 41796 NULL
147048 +disable_so_register_ip_vs_scheduler_fndecl_41797 register_ip_vs_scheduler fndecl 0 41797 NULL
147049 +disable_so_lcd_pixclock_atyfb_par_41804 lcd_pixclock atyfb_par 0 41804 NULL
147050 +disable_so_mwl8k_cmd_set_mac_addr_fndecl_41809 mwl8k_cmd_set_mac_addr fndecl 0 41809 NULL
147051 +disable_so_mktime64_fndecl_41810 mktime64 fndecl 0-6-5-4-3-2-1 41810 NULL
147052 +disable_so_brcmf_pcie_buscore_prep_addr_fndecl_41821 brcmf_pcie_buscore_prep_addr fndecl 0-2 41821 NULL
147053 +disable_so_s_bitmap_ino_omfs_sb_info_41835 s_bitmap_ino omfs_sb_info 0 41835 NULL
147054 +disable_so_tlan_handle_interrupt_fndecl_41866 tlan_handle_interrupt fndecl 1 41866 NULL
147055 +disable_so_crypto_authenc_esn_genicv_fndecl_41873 crypto_authenc_esn_genicv fndecl 0 41873 NULL
147056 +disable_so_bfad_iocmd_rport_get_addr_fndecl_41879 bfad_iocmd_rport_get_addr fndecl 0 41879 NULL
147057 +disable_so_xhci_del_comp_mod_timer_fndecl_41881 xhci_del_comp_mod_timer fndecl 3 41881 NULL
147058 +disable_so_raddr_c2wr_ae_connection_request_41889 raddr c2wr_ae_connection_request 0 41889 NULL
147059 +disable_so_btrfs_run_delayed_items_nr_fndecl_41895 btrfs_run_delayed_items_nr fndecl 0-3 41895 NULL nohasharray
147060 +disable_so_isac_interrupt_fndecl_41895 isac_interrupt fndecl 2 41895 &disable_so_btrfs_run_delayed_items_nr_fndecl_41895
147061 +disable_so_address_b43_dmadesc32_41900 address b43_dmadesc32 0 41900 NULL
147062 +disable_so_i_gid_ext4_inode_41907 i_gid ext4_inode 0 41907 NULL
147063 +disable_so_sil24_exec_polled_cmd_fndecl_41911 sil24_exec_polled_cmd fndecl 2 41911 NULL
147064 +disable_so_cp_hqd_pq_rptr_report_addr_hqd_registers_41912 cp_hqd_pq_rptr_report_addr hqd_registers 0 41912 NULL
147065 +disable_so_uuid_hash_ocfs2_super_41922 uuid_hash ocfs2_super 0 41922 NULL
147066 +disable_so_connect_time_usb_device_41926 connect_time usb_device 0 41926 NULL
147067 +disable_so_hard_byte_limit_xfrm_lifetime_cfg_41928 hard_byte_limit xfrm_lifetime_cfg 0 41928 NULL nohasharray
147068 +disable_so_q_rtime_msg_queue_41928 q_rtime msg_queue 0 41928 &disable_so_hard_byte_limit_xfrm_lifetime_cfg_41928 nohasharray
147069 +disable_so_saddr_iphdr_41928 saddr iphdr 0 41928 &disable_so_q_rtime_msg_queue_41928
147070 +disable_so_nfs4_schedule_session_recovery_fndecl_41930 nfs4_schedule_session_recovery fndecl 2 41930 NULL
147071 +disable_so_desc_card_addr_qla8044_minidump_entry_rdmem_pex_dma_41937 desc_card_addr qla8044_minidump_entry_rdmem_pex_dma 0 41937 NULL
147072 +disable_so_freq_ar9170_calibration_target_power_ht_41939 freq ar9170_calibration_target_power_ht 0 41939 NULL
147073 +disable_so_ino_timelimit_qc_type_state_41942 ino_timelimit qc_type_state 0 41942 NULL
147074 +disable_so_ifa_local_in_ifaddr_41951 ifa_local in_ifaddr 0 41951 NULL
147075 +disable_so_seq_radeon_fence_41952 seq radeon_fence 0 41952 NULL
147076 +disable_so_mmc_interrupt_hpi_fndecl_41967 mmc_interrupt_hpi fndecl 0 41967 NULL
147077 +disable_so_addr_nvbios_xpio_41977 addr nvbios_xpio 0 41977 NULL
147078 +disable_so_mlx4_test_interrupts_fndecl_41979 mlx4_test_interrupts fndecl 0 41979 NULL
147079 +disable_so_alps_process_bitmap_fndecl_41983 alps_process_bitmap fndecl 0 41983 NULL
147080 +disable_so_enter_deep_sleep_lbs_private_41984 enter_deep_sleep lbs_private 0 41984 NULL
147081 +disable_so_freq_detected_vx_core_41987 freq_detected vx_core 0 41987 NULL
147082 +disable_so_sig_ksignal_41988 sig ksignal 0 41988 NULL
147083 +disable_so_kvm_clock_get_cycles_fndecl_41992 kvm_clock_get_cycles fndecl 0 41992 NULL
147084 +disable_so_mthca_setup_hca_fndecl_41999 mthca_setup_hca fndecl 0 41999 NULL
147085 +disable_so_ipath_led_override_timeoff_ipath_devdata_42003 ipath_led_override_timeoff ipath_devdata 0 42003 NULL nohasharray
147086 +disable_so_authenc_geniv_ahash_done_fndecl_42003 authenc_geniv_ahash_done fndecl 2 42003 &disable_so_ipath_led_override_timeoff_ipath_devdata_42003
147087 +disable_so_cxgb4vf_set_mac_addr_fndecl_42004 cxgb4vf_set_mac_addr fndecl 0 42004 NULL
147088 +disable_so_poly_cipher_fndecl_42005 poly_cipher fndecl 0 42005 NULL
147089 +disable_so_lfo2delay_soundfont_voice_parm_42007 lfo2delay soundfont_voice_parm 0 42007 NULL
147090 +disable_so_cik_get_cu_active_bitmap_fndecl_42010 cik_get_cu_active_bitmap fndecl 0-2-3 42010 NULL
147091 +disable_so_get_max_clock_sdhci_ops_42015 get_max_clock sdhci_ops 0 42015 NULL
147092 +disable_so_svm_read_l1_tsc_fndecl_42018 svm_read_l1_tsc fndecl 0-2 42018 NULL
147093 +disable_so_dccp_feat_signal_nn_change_fndecl_42022 dccp_feat_signal_nn_change fndecl 3 42022 NULL
147094 +disable_so_e1000_test_msi_interrupt_fndecl_42028 e1000_test_msi_interrupt fndecl 0 42028 NULL
147095 +disable_so_uv_rtc_setup_clock_fndecl_42030 uv_rtc_setup_clock fndecl 0 42030 NULL
147096 +disable_so_rsa_get_e_fndecl_42032 rsa_get_e fndecl 5 42032 NULL
147097 +disable_so_set_h225_addr_fndecl_42039 set_h225_addr fndecl 2-4 42039 NULL
147098 +disable_so_next_hrtimer_event_fotg210_hcd_42040 next_hrtimer_event fotg210_hcd 0 42040 NULL
147099 +disable_so_baseaddr_m48t35_priv_42042 baseaddr m48t35_priv 0 42042 NULL
147100 +disable_so_src_high_addr_mvumi_dyn_list_entry_42046 src_high_addr mvumi_dyn_list_entry 0 42046 NULL
147101 +disable_so_address_x86_exception_42048 address x86_exception 0 42048 NULL nohasharray
147102 +disable_so_adis16480_set_freq_fndecl_42048 adis16480_set_freq fndecl 0 42048 &disable_so_address_x86_exception_42048
147103 +disable_so_skcipher_recvmsg_fndecl_42050 skcipher_recvmsg fndecl 0 42050 NULL
147104 +disable_so_uid_ncp_mount_data_v4_42052 uid ncp_mount_data_v4 0 42052 NULL
147105 +disable_so_guid_qib_pportdata_42064 guid qib_pportdata 0 42064 NULL
147106 +disable_so_usb_find_address_fndecl_42069 usb_find_address fndecl 0 42069 NULL
147107 +disable_so_crypto_comp_compress_fndecl_42075 crypto_comp_compress fndecl 3 42075 NULL
147108 +disable_so_xcan_state_interrupt_fndecl_42076 xcan_state_interrupt fndecl 2 42076 NULL
147109 +disable_so_xfs_dir2_leaf_search_hash_fndecl_42097 xfs_dir2_leaf_search_hash fndecl 0 42097 NULL
147110 +disable_so_rtl8169_interrupt_fndecl_42115 rtl8169_interrupt fndecl 1 42115 NULL
147111 +disable_so_ip_list_uid_vardecl_xt_recent_c_42144 ip_list_uid vardecl_xt_recent.c 0 42144 NULL
147112 +disable_so_request_sound_timer_fndecl_42149 request_sound_timer fndecl 1 42149 NULL nohasharray
147113 +disable_so_sof_search_timeout_stb0899_config_42149 sof_search_timeout stb0899_config 0 42149 &disable_so_request_sound_timer_fndecl_42149
147114 +disable_so_uvc_timeout_param_vardecl_42158 uvc_timeout_param vardecl 0 42158 NULL
147115 +disable_so_stv0900_get_mclk_freq_fndecl_42161 stv0900_get_mclk_freq fndecl 0-2 42161 NULL
147116 +disable_so_pch_systime_read_fndecl_42169 pch_systime_read fndecl 0 42169 NULL
147117 +disable_so_accumulate_16bit_val_fndecl_42178 accumulate_16bit_val fndecl 2 42178 NULL
147118 +disable_so_cryptd_blkcipher_enqueue_fndecl_42182 cryptd_blkcipher_enqueue fndecl 0 42182 NULL
147119 +disable_so_sjw_can_bittiming_42187 sjw can_bittiming 0 42187 NULL
147120 +disable_so_vortex_interrupt_fndecl_42189 vortex_interrupt fndecl 1 42189 NULL
147121 +disable_so_ar_addr_qla4_83xx_quad_entry_42190 ar_addr qla4_83xx_quad_entry 0 42190 NULL
147122 +disable_so_sctp_v4_from_addr_param_fndecl_42197 sctp_v4_from_addr_param fndecl 3 42197 NULL
147123 +disable_so_sda_hold_time_dw_i2c_dev_42198 sda_hold_time dw_i2c_dev 0 42198 NULL
147124 +disable_so_proc_doulongvec_ms_jiffies_minmax_fndecl_42211 proc_doulongvec_ms_jiffies_minmax fndecl 0 42211 NULL
147125 +disable_so_monitor_timeout_l2cap_chan_42212 monitor_timeout l2cap_chan 0 42212 NULL
147126 +disable_so_sys_setfsuid16_fndecl_42222 sys_setfsuid16 fndecl 0-1 42222 NULL
147127 +disable_so_rrd_ret_timer_atl1_hw_42226 rrd_ret_timer atl1_hw 0 42226 NULL nohasharray
147128 +disable_so__get_table_mindiv_fndecl_42226 _get_table_mindiv fndecl 0 42226 &disable_so_rrd_ret_timer_atl1_hw_42226
147129 +disable_so_ext4_block_bitmap_set_fndecl_42228 ext4_block_bitmap_set fndecl 3 42228 NULL
147130 +disable_so_select_timeout_pca9541_42231 select_timeout pca9541 0 42231 NULL
147131 +disable_so_id_and_color_iwl_time_event_cmd_42237 id_and_color iwl_time_event_cmd 0 42237 NULL
147132 +disable_so_map_id_down_fndecl_42241 map_id_down fndecl 0-2 42241 NULL
147133 +disable_so_usb_sleep_music_store_fndecl_42245 usb_sleep_music_store fndecl 0-4 42245 NULL
147134 +disable_so_ath6kl_sdio_func0_cmd52_wr_byte_fndecl_42251 ath6kl_sdio_func0_cmd52_wr_byte fndecl 0 42251 NULL
147135 +disable_so_bitmap_and_fndecl_42267 bitmap_and fndecl 4 42267 NULL
147136 +disable_so_tx_frame_ath_cycle_counters_42275 tx_frame ath_cycle_counters 0 42275 NULL
147137 +disable_so_hasht_dcb_output_42279 hasht dcb_output 0 42279 NULL
147138 +disable_so_xfs_btree_key_addr_fndecl_42282 xfs_btree_key_addr fndecl 2 42282 NULL
147139 +disable_so_lpfc_max_scsicmpl_time_store_fndecl_42289 lpfc_max_scsicmpl_time_store fndecl 0 42289 NULL
147140 +disable_so_ltr501_ps_write_samp_freq_fndecl_42298 ltr501_ps_write_samp_freq fndecl 0 42298 NULL
147141 +disable_so_time_zero_perf_event_mmap_page_42309 time_zero perf_event_mmap_page 0 42309 NULL nohasharray
147142 +disable_so_dmatest_random_fndecl_42309 dmatest_random fndecl 0 42309 &disable_so_time_zero_perf_event_mmap_page_42309
147143 +disable_so_sm_addr_sm501_mem_42315 sm_addr sm501_mem 0 42315 NULL
147144 +disable_so_snd_rme32_info_clockmode_control_fndecl_42323 snd_rme32_info_clockmode_control fndecl 0 42323 NULL
147145 +disable_so_max8997_rtc_set_time_fndecl_42326 max8997_rtc_set_time fndecl 0 42326 NULL nohasharray
147146 +disable_so_freq_ath6kl_mgmt_buff_42326 freq ath6kl_mgmt_buff 0 42326 &disable_so_max8997_rtc_set_time_fndecl_42326
147147 +disable_so_clk_register_divider_table_fndecl_42329 clk_register_divider_table fndecl 7-6 42329 NULL
147148 +disable_so_guid_indexes_mlx4_sriov_alias_guid_info_rec_det_42332 guid_indexes mlx4_sriov_alias_guid_info_rec_det 0 42332 NULL
147149 +disable_so_addr_cis_cache_entry_42335 addr cis_cache_entry 0 42335 NULL
147150 +disable_so_dma_addr_bnad_tx_vector_42337 dma_addr bnad_tx_vector 0 42337 NULL
147151 +disable_so_mgid_index_mlx5_qp_path_42339 mgid_index mlx5_qp_path 0 42339 NULL
147152 +disable_so_tcm_base_address_brcmf_pcie_shared_info_42357 tcm_base_address brcmf_pcie_shared_info 0 42357 NULL
147153 +disable_so_mod_timer_fndecl_42361 mod_timer fndecl 2-0 42361 NULL
147154 +disable_so_srpt_service_guid_vardecl_ib_srpt_c_42363 srpt_service_guid vardecl_ib_srpt.c 0 42363 NULL
147155 +disable_so_qat_alg_ablkcipher_init_enc_fndecl_42373 qat_alg_ablkcipher_init_enc fndecl 4 42373 NULL
147156 +disable_so_mdiv_gf100_clk_info_42375 mdiv gf100_clk_info 0 42375 NULL
147157 +disable_so__ubh_find_next_zero_bit__fndecl_42379 _ubh_find_next_zero_bit_ fndecl 0-3-4-5 42379 NULL
147158 +disable_so_tv_nsec_timespec_42383 tv_nsec timespec 0 42383 NULL
147159 +disable_so_last_timestamp_iso_context_42389 last_timestamp iso_context 0 42389 NULL
147160 +disable_so_iqaddr_fw_ri_res_cq_42408 iqaddr fw_ri_res_cq 0 42408 NULL
147161 +disable_so_proc_loginuid_write_fndecl_42419 proc_loginuid_write fndecl 3 42419 NULL
147162 +disable_so_mpeg_output_clock_rate_drxj_data_42421 mpeg_output_clock_rate drxj_data 0 42421 NULL
147163 +disable_so_fref_clock_ratio_dib0090_config_42426 fref_clock_ratio dib0090_config 0 42426 NULL
147164 +disable_so_virtnet_set_mac_address_fndecl_42429 virtnet_set_mac_address fndecl 0 42429 NULL
147165 +disable_so_panel_pwr_delay_radeon_encoder_atom_dig_42430 panel_pwr_delay radeon_encoder_atom_dig 0 42430 NULL
147166 +disable_so_timeo_nfs_parsed_mount_data_42431 timeo nfs_parsed_mount_data 0 42431 NULL
147167 +disable_so_correction_snd_timer_system_private_42446 correction snd_timer_system_private 0 42446 NULL
147168 +disable_so_intr_timer_usec_vnic_enet_config_42448 intr_timer_usec vnic_enet_config 0 42448 NULL
147169 +disable_so_id_mISDNtimer_42453 id mISDNtimer 0 42453 NULL
147170 +disable_so_i2c_algo_dp_aux_address_fndecl_42460 i2c_algo_dp_aux_address fndecl 2 42460 NULL
147171 +disable_so__register_divider_fndecl_42464 _register_divider fndecl 7-6 42464 NULL
147172 +disable_so_max8998_rtc_read_time_fndecl_42466 max8998_rtc_read_time fndecl 0 42466 NULL
147173 +disable_so_sctp_setsockopt_paddr_thresholds_fndecl_42474 sctp_setsockopt_paddr_thresholds fndecl 3-0 42474 NULL nohasharray
147174 +disable_so_stv0900_get_tuner_freq_fndecl_42474 stv0900_get_tuner_freq fndecl 0 42474 &disable_so_sctp_setsockopt_paddr_thresholds_fndecl_42474
147175 +disable_so_rt2x00crypto_tx_overhead_fndecl_42475 rt2x00crypto_tx_overhead fndecl 0 42475 NULL
147176 +disable_so_lm3533_led_delay_off_set_fndecl_42481 lm3533_led_delay_off_set fndecl 0 42481 NULL
147177 +disable_so_time_blocked_xen_spinlock_stats_42482 time_blocked xen_spinlock_stats 0 42482 NULL
147178 +disable_so_nat_ver_bitmap_bytesize_f2fs_checkpoint_42483 nat_ver_bitmap_bytesize f2fs_checkpoint 0 42483 NULL
147179 +disable_so_reg_write_fndecl_42487 reg_write fndecl 0 42487 NULL
147180 +disable_so_btrfs_insert_delayed_dir_index_fndecl_42491 btrfs_insert_delayed_dir_index fndecl 0-4-7-8 42491 NULL
147181 +disable_so_r53_val_fc2580_freq_regs_42497 r53_val fc2580_freq_regs 0 42497 NULL
147182 +disable_so_txerr_interrupt_mask_ath_hw_42499 txerr_interrupt_mask ath_hw 0 42499 NULL
147183 +disable_so_avail_max_snd_pcm_runtime_42523 avail_max snd_pcm_runtime 0 42523 NULL nohasharray
147184 +disable_so_ibx_display_interrupt_update_fndecl_42523 ibx_display_interrupt_update fndecl 3-2 42523 &disable_so_avail_max_snd_pcm_runtime_42523
147185 +disable_so_addr_hi_freelQ_e_42531 addr_hi freelQ_e 0 42531 NULL
147186 +disable_so_wrmsr_safe_regs_on_cpu_fndecl_42539 wrmsr_safe_regs_on_cpu fndecl 0-1 42539 NULL
147187 +disable_so_initial_apicid_cpuinfo_x86_42542 initial_apicid cpuinfo_x86 0 42542 NULL
147188 +disable_so_rx_ring_dma_addr_pcnet32_private_42551 rx_ring_dma_addr pcnet32_private 0 42551 NULL
147189 +disable_so_max_sleep_time_f2fs_gc_kthread_42557 max_sleep_time f2fs_gc_kthread 0 42557 NULL nohasharray
147190 +disable_so_addr_high_vring_dma_addr_42557 addr_high vring_dma_addr 0 42557 &disable_so_max_sleep_time_f2fs_gc_kthread_42557
147191 +disable_so_db_rec_addr_mlx4_srq_context_42559 db_rec_addr mlx4_srq_context 0 42559 NULL
147192 +disable_so_mmc_clock_opt_set_fndecl_42561 mmc_clock_opt_set fndecl 2 42561 NULL
147193 +disable_so_sys_setgid16_fndecl_42562 sys_setgid16 fndecl 0-1 42562 NULL
147194 +disable_so_command_width_atiixp_ide_timing_42566 command_width atiixp_ide_timing 0 42566 NULL
147195 +disable_so_cgroup_addrm_files_fndecl_42568 cgroup_addrm_files fndecl 0 42568 NULL
147196 +disable_so_nla_put_via_fndecl_42571 nla_put_via fndecl 4 42571 NULL
147197 +disable_so_flow_get_rxhash_fndecl_42572 flow_get_rxhash fndecl 0 42572 NULL
147198 +disable_so_ves1820_set_tv_freq_fndecl_42581 ves1820_set_tv_freq fndecl 2 42581 NULL
147199 +disable_so_clk_calc_subtree_fndecl_42586 clk_calc_subtree fndecl 2-4 42586 NULL
147200 +disable_so_demod_address_stb0899_config_42587 demod_address stb0899_config 0 42587 NULL
147201 +disable_so_thash_entries_vardecl_tcp_c_42589 thash_entries vardecl_tcp.c 0 42589 NULL
147202 +disable_so_clock_freq_ushc_data_42599 clock_freq ushc_data 0 42599 NULL
147203 +disable_so_VSyncEnd_xtimings_42606 VSyncEnd xtimings 0 42606 NULL
147204 +disable_so_hv_need_to_signal_fndecl_42615 hv_need_to_signal fndecl 1 42615 NULL
147205 +disable_so_rsa_get_n_fndecl_42620 rsa_get_n fndecl 5 42620 NULL
147206 +disable_so_pci_bus_write_config_dword_fndecl_42624 pci_bus_write_config_dword fndecl 0-2-3-4 42624 NULL
147207 +disable_so_gen_pool_virt_to_phys_fndecl_42628 gen_pool_virt_to_phys fndecl 2-0 42628 NULL
147208 +disable_so_brcmf_sdiod_addrprep_fndecl_42643 brcmf_sdiod_addrprep fndecl 0 42643 NULL
147209 +disable_so_mpt_loadtime_max_sectors_vardecl_mptsas_c_42653 mpt_loadtime_max_sectors vardecl_mptsas.c 0 42653 NULL
147210 +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
147211 +disable_so_rx_antdiv_shared_phy_42665 rx_antdiv shared_phy 0 42665 NULL
147212 +disable_so_uart_get_attr_custom_divisor_fndecl_42667 uart_get_attr_custom_divisor fndecl 0 42667 NULL nohasharray
147213 +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
147214 +disable_so_dib0090_write_reg_fndecl_42668 dib0090_write_reg fndecl 3 42668 NULL nohasharray
147215 +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
147216 +disable_so_bs_freqcnt_cx24113_state_42672 bs_freqcnt cx24113_state 0 42672 NULL
147217 +disable_so_netlbl_unlhsh_remove_addr6_fndecl_42673 netlbl_unlhsh_remove_addr6 fndecl 0 42673 NULL
147218 +disable_so_authenc_esn_verify_ahash_update_done2_fndecl_42674 authenc_esn_verify_ahash_update_done2 fndecl 2 42674 NULL
147219 +disable_so_last_time_megasas_instance_42679 last_time megasas_instance 0 42679 NULL
147220 +disable_so_hashval1_1_rx_pkt_hdr1_42687 hashval1_1 rx_pkt_hdr1 0 42687 NULL
147221 +disable_so_nilfs_btree_do_lookup_fndecl_42696 nilfs_btree_do_lookup fndecl 0-3 42696 NULL
147222 +disable_so_ip_vs_create_timeout_table_fndecl_42701 ip_vs_create_timeout_table fndecl 2 42701 NULL
147223 +disable_so_mesh_table_hash_fndecl_42703 mesh_table_hash fndecl 0 42703 NULL
147224 +disable_so_divide_fndecl_42710 divide fndecl 1 42710 NULL
147225 +disable_so_nilfs_btree_node_insert_fndecl_42712 nilfs_btree_node_insert fndecl 2-3 42712 NULL
147226 +disable_so_set_div_fndecl_42720 set_div fndecl 0-4 42720 NULL
147227 +disable_so_current_uuid_show_fndecl_42727 current_uuid_show fndecl 0 42727 NULL nohasharray
147228 +disable_so_nfs4_decode_mp_ds_addr_fndecl_42727 nfs4_decode_mp_ds_addr fndecl 3 42727 &disable_so_current_uuid_show_fndecl_42727
147229 +disable_so_remove_uuid_fndecl_42730 remove_uuid fndecl 0-4 42730 NULL
147230 +disable_so_bd_list_addr_lo_bnx2i_text_request_42732 bd_list_addr_lo bnx2i_text_request 0 42732 NULL
147231 +disable_so_pch_gbe_mac_mc_addr_list_update_fndecl_42738 pch_gbe_mac_mc_addr_list_update fndecl 4 42738 NULL
147232 +disable_so_tbl_addr_brcms_phy_42754 tbl_addr brcms_phy 0 42754 NULL
147233 +disable_so_addr_sch5636_data_42756 addr sch5636_data 0 42756 NULL
147234 +disable_so_hpfa_freq_cs42l56_platform_data_42759 hpfa_freq cs42l56_platform_data 0 42759 NULL
147235 +disable_so_fanout_demux_hash_fndecl_42764 fanout_demux_hash fndecl 0-3 42764 NULL
147236 +disable_so_cxgb_set_mac_addr_fndecl_42780 cxgb_set_mac_addr fndecl 0 42780 NULL
147237 +disable_so_dn_addr2asc_fndecl_42781 dn_addr2asc fndecl 1 42781 NULL
147238 +disable_so_mt9t031_runtime_resume_fndecl_42782 mt9t031_runtime_resume fndecl 0 42782 NULL
147239 +disable_so_nla_put_le64_fndecl_42786 nla_put_le64 fndecl 0 42786 NULL
147240 +disable_so_dell_rbu_dmaaddr_vardecl_dell_rbu_c_42794 dell_rbu_dmaaddr vardecl_dell_rbu.c 0 42794 NULL
147241 +disable_so_ocfs2_update_inode_atime_fndecl_42799 ocfs2_update_inode_atime fndecl 0 42799 NULL nohasharray
147242 +disable_so_pfkey_sockaddr_fill_fndecl_42799 pfkey_sockaddr_fill fndecl 2-4 42799 &disable_so_ocfs2_update_inode_atime_fndecl_42799
147243 +disable_so_vga_get_interruptible_fndecl_42803 vga_get_interruptible fndecl 0 42803 NULL
147244 +disable_so_lookup_pmd_address_fndecl_42804 lookup_pmd_address fndecl 1 42804 NULL
147245 +disable_so_i40e_set_rss_hash_opt_fndecl_42810 i40e_set_rss_hash_opt fndecl 0 42810 NULL
147246 +disable_so_from_kuid_fndecl_42812 from_kuid fndecl 0 42812 NULL
147247 +disable_so_resolution_snd_timer_gstatus_42814 resolution snd_timer_gstatus 0 42814 NULL
147248 +disable_so_demod_address_cx22700_config_42828 demod_address cx22700_config 0 42828 NULL
147249 +disable_so_mpu_start_timer_fndecl_42840 mpu_start_timer fndecl 1 42840 NULL nohasharray
147250 +disable_so_end_point_addr_cx231xx_audio_42840 end_point_addr cx231xx_audio 0 42840 &disable_so_mpu_start_timer_fndecl_42840
147251 +disable_so_hpwdt_change_timer_fndecl_42850 hpwdt_change_timer fndecl 1 42850 NULL nohasharray
147252 +disable_so_host_addr_hw_cmd_42850 host_addr hw_cmd 0 42850 &disable_so_hpwdt_change_timer_fndecl_42850
147253 +disable_so_update_gid_fndecl_42874 update_gid fndecl 3 42874 NULL
147254 +disable_so_read_div_fndecl_42880 read_div fndecl 0 42880 NULL nohasharray
147255 +disable_so_SYSC_setpgid_fndecl_42880 SYSC_setpgid fndecl 1-2 42880 &disable_so_read_div_fndecl_42880
147256 +disable_so_exptime_mpath_info_42881 exptime mpath_info 0 42881 NULL
147257 +disable_so_count_netdev_hw_addr_list_42886 count netdev_hw_addr_list 0 42886 NULL
147258 +disable_so___sel_hash_fndecl_42890 __sel_hash fndecl 0-2-3 42890 NULL
147259 +disable_so_cipher_rt2x00lib_crypto_42894 cipher rt2x00lib_crypto 0 42894 NULL
147260 +disable_so___dequeue_signal_fndecl_42904 __dequeue_signal fndecl 0 42904 NULL
147261 +disable_so_uid_dpot_data_42905 uid dpot_data 0 42905 NULL
147262 +disable_so_tc_index_bitmap_bits_asd_seq_data_42910 tc_index_bitmap_bits asd_seq_data 0 42910 NULL
147263 +disable_so_ablkcipher_copy_iv_fndecl_42911 ablkcipher_copy_iv fndecl 3 42911 NULL
147264 +disable_so_pci_pm_runtime_resume_fndecl_42917 pci_pm_runtime_resume fndecl 0 42917 NULL
147265 +disable_so_default_sclk_radeon_clock_42919 default_sclk radeon_clock 0 42919 NULL
147266 +disable_so_register_inet6addr_notifier_fndecl_42932 register_inet6addr_notifier fndecl 0 42932 NULL nohasharray
147267 +disable_so_e1000_rx_hash_fndecl_42932 e1000_rx_hash fndecl 2 42932 &disable_so_register_inet6addr_notifier_fndecl_42932
147268 +disable_so_isl1208_rtc_set_time_fndecl_42933 isl1208_rtc_set_time fndecl 0 42933 NULL nohasharray
147269 +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
147270 +disable_so_host_addr_io_accel1_cmd_42933 host_addr io_accel1_cmd 0 42933 &disable_so_ringid_wmi_vring_ba_en_cmd_42933
147271 +disable_so_uwb_rc_dev_addr_assign_fndecl_42936 uwb_rc_dev_addr_assign fndecl 0 42936 NULL
147272 +disable_so_address_vme_bus_error_42937 address vme_bus_error 0 42937 NULL nohasharray
147273 +disable_so_cma_bind_addr_fndecl_42937 cma_bind_addr fndecl 0 42937 &disable_so_address_vme_bus_error_42937
147274 +disable_so_cyapa_gen5_set_interval_time_fndecl_42941 cyapa_gen5_set_interval_time fndecl 0-3 42941 NULL
147275 +disable_so_ecx_tss_segment_32_42952 ecx tss_segment_32 0 42952 NULL
147276 +disable_so_percentage_divider_radeon_atom_ss_42955 percentage_divider radeon_atom_ss 0 42955 NULL
147277 +disable_so_timeout_sg_fd_42956 timeout sg_fd 0 42956 NULL
147278 +disable_so_ftdi_2232h_baud_base_to_divisor_fndecl_42957 ftdi_2232h_baud_base_to_divisor fndecl 0-1-2 42957 NULL
147279 +disable_so_mcryptd_hash_update_fndecl_42959 mcryptd_hash_update fndecl 2 42959 NULL
147280 +disable_so_iqaddr_csio_iq_params_42960 iqaddr csio_iq_params 0 42960 NULL
147281 +disable_so_head_wb_addr_i40e_hmc_obj_txq_42977 head_wb_addr i40e_hmc_obj_txq 0 42977 NULL nohasharray
147282 +disable_so_written_btree_42977 written btree 0 42977 &disable_so_head_wb_addr_i40e_hmc_obj_txq_42977
147283 +disable_so___btrfs_update_delayed_inode_fndecl_42987 __btrfs_update_delayed_inode fndecl 0 42987 NULL
147284 +disable_so_af9005_fe_sleep_fndecl_42988 af9005_fe_sleep fndecl 0 42988 NULL nohasharray
147285 +disable_so_counter_address_p4_counter_binding_42988 counter_address p4_counter_binding 0 42988 &disable_so_af9005_fe_sleep_fndecl_42988
147286 +disable_so_alt_timeout_ib_qp_attr_42989 alt_timeout ib_qp_attr 0 42989 NULL
147287 +disable_so_db_record_addr_mlx5_cq_context_43002 db_record_addr mlx5_cq_context 0 43002 NULL nohasharray
147288 +disable_so_rhashtable_insert_rehash_fndecl_43002 rhashtable_insert_rehash fndecl 0 43002 &disable_so_db_record_addr_mlx5_cq_context_43002
147289 +disable_so_zd1201_set_mac_address_fndecl_43003 zd1201_set_mac_address fndecl 0 43003 NULL
147290 +disable_so_scs_init_hss_address_fndecl_43016 scs_init_hss_address fndecl 0 43016 NULL
147291 +disable_so_hash_fndecl_43020 hash fndecl 0 43020 NULL
147292 +disable_so_hpi_tuner_get_hd_radio_signal_blend_fndecl_43025 hpi_tuner_get_hd_radio_signal_blend fndecl 0-1 43025 NULL
147293 +disable_so_rt_runtime_rt_rq_43033 rt_runtime rt_rq 0 43033 NULL
147294 +disable_so_dbi_bw_timer_mipi_config_43043 dbi_bw_timer mipi_config 0 43043 NULL
147295 +disable_so_bch_btree_op_init_fndecl_43045 bch_btree_op_init fndecl 2 43045 NULL
147296 +disable_so_ctl_mce_bank_43048 ctl mce_bank 0 43048 NULL
147297 +disable_so_io_addr_ips_ha_43051 io_addr ips_ha 0 43051 NULL
147298 +disable_so_ucode_beacon_time_iwl_priv_43063 ucode_beacon_time iwl_priv 0 43063 NULL
147299 +disable_so_fast_clip_ctrl_delay_s_cfg_agc_43064 fast_clip_ctrl_delay s_cfg_agc 0 43064 NULL
147300 +disable_so_read_interrupt_status_fndecl_43075 read_interrupt_status fndecl 0 43075 NULL
147301 +disable_so_suspend_time_nv04_timer_priv_43078 suspend_time nv04_timer_priv 0 43078 NULL
147302 +disable_so_nl80211_send_mlme_timeout_fndecl_43081 nl80211_send_mlme_timeout fndecl 5 43081 NULL
147303 +disable_so_xfs_uuid_table_size_vardecl_xfs_mount_c_43090 xfs_uuid_table_size vardecl_xfs_mount.c 0 43090 NULL
147304 +disable_so_bitmap_allocate_region_fndecl_43093 bitmap_allocate_region fndecl 2-3 43093 NULL
147305 +disable_so_timeouts_show_fndecl_43114 timeouts_show fndecl 0 43114 NULL
147306 +disable_so_lm8323_pwm_store_time_fndecl_43123 lm8323_pwm_store_time fndecl 0 43123 NULL nohasharray
147307 +disable_so_crypto_register_instance_fndecl_43123 crypto_register_instance fndecl 0 43123 &disable_so_lm8323_pwm_store_time_fndecl_43123
147308 +disable_so_acpi_map_vaddr_lookup_fndecl_43126 acpi_map_vaddr_lookup fndecl 1-2 43126 NULL nohasharray
147309 +disable_so_bitclk_freq_fsl_ssi_private_43126 bitclk_freq fsl_ssi_private 0 43126 &disable_so_acpi_map_vaddr_lookup_fndecl_43126
147310 +disable_so_retranscount_nes_timer_entry_43129 retranscount nes_timer_entry 0 43129 NULL
147311 +disable_so_driver_timestamp_qla8044_minidump_template_hdr_43138 driver_timestamp qla8044_minidump_template_hdr 0 43138 NULL
147312 +disable_so_rtl8187_iowrite_async_fndecl_43147 rtl8187_iowrite_async fndecl 4-2 43147 NULL
147313 +disable_so_gcm_hash_crypt_remain_continue_fndecl_43164 gcm_hash_crypt_remain_continue fndecl 0 43164 NULL
147314 +disable_so_timeout_usbdevfs_ctrltransfer_43171 timeout usbdevfs_ctrltransfer 0 43171 NULL
147315 +disable_so_addr_snd_ac97_43179 addr snd_ac97 0 43179 NULL
147316 +disable_so_snd_timer_user_start_fndecl_43188 snd_timer_user_start fndecl 0 43188 NULL
147317 +disable_so_div_f0_pll_values_43197 div_f0 pll_values 0 43197 NULL
147318 +disable_so_tx_watchdog_timeout_conf_tx_settings_43198 tx_watchdog_timeout conf_tx_settings 0 43198 NULL
147319 +disable_so_demod_address_stv0297_config_43206 demod_address stv0297_config 0 43206 NULL nohasharray
147320 +disable_so_stv090x_write_reg_fndecl_43206 stv090x_write_reg fndecl 3-0 43206 &disable_so_demod_address_stv0297_config_43206
147321 +disable_so_atomic64_sub_return_fndecl_43214 atomic64_sub_return fndecl 0-1 43214 NULL
147322 +disable_so_select_addr_2_qla8044_minidump_entry_rdmux2_43220 select_addr_2 qla8044_minidump_entry_rdmux2 0 43220 NULL
147323 +disable_so_pixel_clock_radeon_encoder_43221 pixel_clock radeon_encoder 0 43221 NULL
147324 +disable_so_rdmsr_safe_on_cpu_fndecl_43222 rdmsr_safe_on_cpu fndecl 0-1 43222 NULL
147325 +disable_so_adav80x_set_dac_clock_fndecl_43226 adav80x_set_dac_clock fndecl 2 43226 NULL
147326 +disable_so_rc5t583_rtc_read_time_fndecl_43238 rc5t583_rtc_read_time fndecl 0 43238 NULL nohasharray
147327 +disable_so_bitmap_zero_fndecl_43238 bitmap_zero fndecl 2 43238 &disable_so_rc5t583_rtc_read_time_fndecl_43238
147328 +disable_so_vid_from_reg_fndecl_43258 vid_from_reg fndecl 0-1 43258 NULL
147329 +disable_so_page_dp83640_clock_43262 page dp83640_clock 0 43262 NULL
147330 +disable_so_mthca_SW2HW_SRQ_fndecl_43263 mthca_SW2HW_SRQ fndecl 0-3 43263 NULL
147331 +disable_so_tea5777_freq_to_v4l2_freq_fndecl_43267 tea5777_freq_to_v4l2_freq fndecl 0-2 43267 NULL
147332 +disable_so_addr_lo_eth_rx_bd_43268 addr_lo eth_rx_bd 0 43268 NULL
147333 +disable_so_timeout_nf_conntrack_expect_policy_43269 timeout nf_conntrack_expect_policy 0 43269 NULL
147334 +disable_so_read_addr___mux_43284 read_addr __mux 0 43284 NULL
147335 +disable_so_start_address___osdv2_cdb_addr_len_43285 start_address __osdv2_cdb_addr_len 0 43285 NULL
147336 +disable_so_frac_bot_pll_div_43287 frac_bot pll_div 0 43287 NULL
147337 +disable_so_batadv_bitmap_shift_left_fndecl_43296 batadv_bitmap_shift_left fndecl 2 43296 NULL
147338 +disable_so_btrfs_timespec_sec_fndecl_43304 btrfs_timespec_sec fndecl 0 43304 NULL
147339 +disable_so_atime_cifs_unix_set_info_args_43311 atime cifs_unix_set_info_args 0 43311 NULL
147340 +disable_so_id_bitmap_port_adt_elem_43312 id bitmap_port_adt_elem 0 43312 NULL
147341 +disable_so_hsize_std_timing_43315 hsize std_timing 0 43315 NULL
147342 +disable_so_addr_wusb_dev_43323 addr wusb_dev 0 43323 NULL
147343 +disable_so_dma_addr_zynqmp_qspi_43329 dma_addr zynqmp_qspi 0 43329 NULL
147344 +disable_so_flash_timeout_max77693_sub_led_43338 flash_timeout max77693_sub_led 0 43338 NULL nohasharray
147345 +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
147346 +disable_so_cypress_get_mclk_frequency_ratio_fndecl_43339 cypress_get_mclk_frequency_ratio fndecl 0-2 43339 NULL
147347 +disable_so_running_clock_fndecl_43341 running_clock fndecl 0 43341 NULL
147348 +disable_so_snd_echo_clock_source_info_fndecl_43348 snd_echo_clock_source_info fndecl 0 43348 NULL
147349 +disable_so_random_id_operand_ib_cm_43350 random_id_operand ib_cm 0 43350 NULL
147350 +disable_so_il3945_build_tx_cmd_hwcrypto_fndecl_43368 il3945_build_tx_cmd_hwcrypto fndecl 5 43368 NULL
147351 +disable_so_regcache_lzo_decompress_cache_block_fndecl_43370 regcache_lzo_decompress_cache_block fndecl 0 43370 NULL
147352 +disable_so_rv6xx_memory_clock_entry_set_feedback_divider_fndecl_43374 rv6xx_memory_clock_entry_set_feedback_divider fndecl 3 43374 NULL
147353 +disable_so_timer_expires_rts51x_chip_43381 timer_expires rts51x_chip 0 43381 NULL
147354 +disable_so_bond_alb_set_mac_address_fndecl_43392 bond_alb_set_mac_address fndecl 0 43392 NULL
147355 +disable_so_write_leasetime_fndecl_43394 write_leasetime fndecl 0 43394 NULL
147356 +disable_so_ftdi_232am_baud_to_divisor_fndecl_43399 ftdi_232am_baud_to_divisor fndecl 0-1 43399 NULL
147357 +disable_so_jiffies_be_aic_obj_43400 jiffies be_aic_obj 0 43400 NULL
147358 +disable_so_timer_jiffies_tvec_base_43403 timer_jiffies tvec_base 0 43403 NULL
147359 +disable_so___ip6addrlbl_add_fndecl_43404 __ip6addrlbl_add fndecl 0 43404 NULL
147360 +disable_so_sd_ctime_stat_data_v1_43407 sd_ctime stat_data_v1 0 43407 NULL
147361 +disable_so_check_timers_list_fndecl_43411 check_timers_list fndecl 0-3 43411 NULL
147362 +disable_so_addr2_dir_table_slot_43416 addr2 dir_table_slot 0 43416 NULL
147363 +disable_so_bch_btree_map_nodes_fndecl_43426 bch_btree_map_nodes fndecl 0 43426 NULL
147364 +disable_so_burst_bclkdiv_tlv320dac33_priv_43428 burst_bclkdiv tlv320dac33_priv 0 43428 NULL
147365 +disable_so_cx24116_read_signal_strength_fndecl_43436 cx24116_read_signal_strength fndecl 0 43436 NULL
147366 +disable_so_xferq_addr_lo_fcoe_kwqe_conn_offload2_43439 xferq_addr_lo fcoe_kwqe_conn_offload2 0 43439 NULL
147367 +disable_so_timeout_bfa_timer_s_43448 timeout bfa_timer_s 0 43448 NULL
147368 +disable_so_ocfs2_wait_for_mask_interruptible_fndecl_43456 ocfs2_wait_for_mask_interruptible fndecl 0 43456 NULL
147369 +disable_so_stream_timeout_nf_ct_gre_43468 stream_timeout nf_ct_gre 0 43468 NULL
147370 +disable_so_sample_div_st_rc_device_43474 sample_div st_rc_device 0 43474 NULL
147371 +disable_so_crypto_shash_finup_fndecl_43475 crypto_shash_finup fndecl 0-3 43475 NULL
147372 +disable_so_current_frequency_lg216x_state_43480 current_frequency lg216x_state 0 43480 NULL
147373 +disable_so_error_sha1_hash_ctx_43486 error sha1_hash_ctx 0 43486 NULL
147374 +disable_so_link_up_time_swStat_43487 link_up_time swStat 0 43487 NULL
147375 +disable_so_qce_ablkcipher_setkey_fndecl_43494 qce_ablkcipher_setkey fndecl 0-3 43494 NULL
147376 +disable_so_timeout_msec_TAG_TW_Lock_43496 timeout_msec TAG_TW_Lock 0 43496 NULL
147377 +disable_so_mcs7830_hif_get_mac_address_fndecl_43507 mcs7830_hif_get_mac_address fndecl 0 43507 NULL
147378 +disable_so_show_fan_time_fndecl_43512 show_fan_time fndecl 0 43512 NULL
147379 +disable_so_x25_display_timer_fndecl_43519 x25_display_timer fndecl 0 43519 NULL
147380 +disable_so_address_m920x_inits_43524 address m920x_inits 0 43524 NULL
147381 +disable_so_msr_extra_reg_43525 msr extra_reg 0 43525 NULL
147382 +disable_so_hashm_nv50_disp_mthd_v1_43528 hashm nv50_disp_mthd_v1 0 43528 NULL
147383 +disable_so_get_dvbt_signal_to_noise_fndecl_43531 get_dvbt_signal_to_noise fndecl 0 43531 NULL
147384 +disable_so_snd_seq_oss_timer_start_fndecl_43533 snd_seq_oss_timer_start fndecl 0 43533 NULL
147385 +disable_so_ath5k_hw_register_timeout_fndecl_43537 ath5k_hw_register_timeout fndecl 0-3-4 43537 NULL
147386 +disable_so_slave_addr_intel_sdvo_43549 slave_addr intel_sdvo 0 43549 NULL
147387 +disable_so_buf_addr_rocker_desc_43555 buf_addr rocker_desc 0 43555 NULL
147388 +disable_so_bCSourceID_uac_clock_multiplier_descriptor_43558 bCSourceID uac_clock_multiplier_descriptor 0 43558 NULL nohasharray
147389 +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
147390 +disable_so_nla_put_u8_fndecl_43558 nla_put_u8 fndecl 0-3 43558 &disable_so_scsi_reset_delay_adveep_38C1600_config_43558
147391 +disable_so_udp4_portaddr_hash_fndecl_43560 udp4_portaddr_hash fndecl 0-2-3 43560 NULL
147392 +disable_so_port_clock_intel_crtc_state_43564 port_clock intel_crtc_state 0 43564 NULL
147393 +disable_so_cpufreq_update_policy_fndecl_43580 cpufreq_update_policy fndecl 0-1 43580 NULL nohasharray
147394 +disable_so_crypto_rfc4106_setauthsize_fndecl_43580 crypto_rfc4106_setauthsize fndecl 2 43580 &disable_so_cpufreq_update_policy_fndecl_43580
147395 +disable_so_pm_schedule_suspend_fndecl_43585 pm_schedule_suspend fndecl 2-0 43585 NULL
147396 +disable_so_HSyncStart_xtimings_43588 HSyncStart xtimings 0 43588 NULL
147397 +disable_so_write_seq_tcp_sock_43590 write_seq tcp_sock 0 43590 NULL
147398 +disable_so_orion_spi_50mhz_ac_timing_erratum_fndecl_43600 orion_spi_50mhz_ac_timing_erratum fndecl 2 43600 NULL
147399 +disable_so_set_clock_vml_sys_43602 set_clock vml_sys 2 43602 NULL
147400 +disable_so_sample_to_timespec_fndecl_43603 sample_to_timespec fndecl 2-1 43603 NULL
147401 +disable_so_ib_find_gid_fndecl_43614 ib_find_gid fndecl 0 43614 NULL
147402 +disable_so_ath9k_hw_set_sifs_time_fndecl_43616 ath9k_hw_set_sifs_time fndecl 2 43616 NULL
147403 +disable_so_snd_als4000_set_addr_fndecl_43620 snd_als4000_set_addr fndecl 1 43620 NULL
147404 +disable_so_dma_addr_as102_dev_t_43627 dma_addr as102_dev_t 0 43627 NULL
147405 +disable_so_gcm_hash_crypt_remain_done_fndecl_43636 gcm_hash_crypt_remain_done fndecl 2 43636 NULL
147406 +disable_so_msm6242_read_time_fndecl_43640 msm6242_read_time fndecl 0 43640 NULL
147407 +disable_so_last_tick_timer_local_info_43641 last_tick_timer local_info 0 43641 NULL
147408 +disable_so_guid_show_fndecl_43648 guid_show fndecl 0 43648 NULL
147409 +disable_so_key_set_timeout_fndecl_43649 key_set_timeout fndecl 2 43649 NULL
147410 +disable_so_abx80x_rtc_read_time_fndecl_43656 abx80x_rtc_read_time fndecl 0 43656 NULL
147411 +disable_so_freq_wmi_ch_info_ev_arg_43659 freq wmi_ch_info_ev_arg 0 43659 NULL
147412 +disable_so___delayacct_blkio_ticks_fndecl_43660 __delayacct_blkio_ticks fndecl 0 43660 NULL
147413 +disable_so_base_dwell_time_conf_sched_scan_settings_43662 base_dwell_time conf_sched_scan_settings 0 43662 NULL
147414 +disable_so_ps_upsd_max_sptime_read_fndecl_43665 ps_upsd_max_sptime_read fndecl 3-0 43665 NULL
147415 +disable_so_sis190_get_mac_addr_fndecl_43671 sis190_get_mac_addr fndecl 0 43671 NULL
147416 +disable_so_pll_loopdiv_dibx090p_best_adc_43673 pll_loopdiv dibx090p_best_adc 0 43673 NULL
147417 +disable_so_first_uid_gid_extent_43687 first uid_gid_extent 0 43687 NULL
147418 +disable_so_des2_idmac_desc_64addr_43704 des2 idmac_desc_64addr 0 43704 NULL
147419 +disable_so_irq_get_irq_data_fndecl_43708 irq_get_irq_data fndecl 1 43708 NULL
147420 +disable_so_mask_mlx4_bitmap_43716 mask mlx4_bitmap 0 43716 NULL
147421 +disable_so_time_stamp_ixgbe_tx_buffer_43717 time_stamp ixgbe_tx_buffer 0 43717 NULL
147422 +disable_so_tx_frequency_wl1273_device_43727 tx_frequency wl1273_device 0 43727 NULL
147423 +disable_so_divider_round_rate_fndecl_43731 divider_round_rate fndecl 2-0-5 43731 NULL
147424 +disable_so_delay_bfa_iocfc_intr_attr_s_43734 delay bfa_iocfc_intr_attr_s 0 43734 NULL
147425 +disable_so_dccp_elapsed_time_len_fndecl_43735 dccp_elapsed_time_len fndecl 0 43735 NULL
147426 +disable_so_uwb_rc_addr_set_fndecl_43736 uwb_rc_addr_set fndecl 0 43736 NULL
147427 +disable_so_add_delayed_data_ref_fndecl_43738 add_delayed_data_ref fndecl 10-12-5-6-7-8-9 43738 NULL
147428 +disable_so_double_bit_error_detect_fndecl_43740 double_bit_error_detect fndecl 4 43740 NULL
147429 +disable_so_pc_clock_gettime_fndecl_43750 pc_clock_gettime fndecl 1 43750 NULL
147430 +disable_so_ts_tgid_owner_gru_thread_state_43760 ts_tgid_owner gru_thread_state 0 43760 NULL
147431 +disable_so_hpet_set_periodic_freq_fndecl_43764 hpet_set_periodic_freq fndecl 1 43764 NULL
147432 +disable_so___vmw_piter_sg_addr_fndecl_43770 __vmw_piter_sg_addr fndecl 0 43770 NULL
147433 +disable_so_ipmi_validate_addr_fndecl_43771 ipmi_validate_addr fndecl 2 43771 NULL
147434 +disable_so_delay_fb_deferred_io_43773 delay fb_deferred_io 0 43773 NULL
147435 +disable_so_fixed_mtrr_addr_to_seg_fndecl_43774 fixed_mtrr_addr_to_seg fndecl 1 43774 NULL nohasharray
147436 +disable_so___bitmap_equal_fndecl_43774 __bitmap_equal fndecl 3 43774 &disable_so_fixed_mtrr_addr_to_seg_fndecl_43774
147437 +disable_so_igb_check_for_bit_pf_fndecl_43775 igb_check_for_bit_pf fndecl 2 43775 NULL
147438 +disable_so_led_override_timeoff_qib_pportdata_43779 led_override_timeoff qib_pportdata 0 43779 NULL
147439 +disable_so_wd_timeout_il_cfg_43781 wd_timeout il_cfg 0 43781 NULL
147440 +disable_so_addr_kvm_io_range_43786 addr kvm_io_range 0 43786 NULL
147441 +disable_so_sleep_millisecs_show_fndecl_43792 sleep_millisecs_show fndecl 0 43792 NULL
147442 +disable_so_rpc_set_queue_timer_fndecl_43797 rpc_set_queue_timer fndecl 2 43797 NULL
147443 +disable_so_ksz9031_center_flp_timing_fndecl_43804 ksz9031_center_flp_timing fndecl 0 43804 NULL
147444 +disable_so_kstrtoull_from_user_fndecl_43809 kstrtoull_from_user fndecl 2 43809 NULL
147445 +disable_so_numa_get_avg_runtime_fndecl_43810 numa_get_avg_runtime fndecl 0 43810 NULL
147446 +disable_so_max77693_led_flash_timeout_set_fndecl_43811 max77693_led_flash_timeout_set fndecl 2 43811 NULL
147447 +disable_so_mlx4_reset_roce_port_gids_fndecl_43816 mlx4_reset_roce_port_gids fndecl 0-2-3 43816 NULL
147448 +disable_so_interrupt_level_vardecl_fdomain_c_43820 interrupt_level vardecl_fdomain.c 0 43820 NULL nohasharray
147449 +disable_so_crypto_ahash_finup_fndecl_43820 crypto_ahash_finup fndecl 0 43820 &disable_so_interrupt_level_vardecl_fdomain_c_43820
147450 +disable_so_block_bitmap_ext4_new_group_data_43822 block_bitmap ext4_new_group_data 0 43822 NULL
147451 +disable_so_timer_stats_update_stats_fndecl_43829 timer_stats_update_stats fndecl 2 43829 NULL
147452 +disable_so___nilfs_btree_get_block_fndecl_43845 __nilfs_btree_get_block fndecl 0-2 43845 NULL
147453 +disable_so_wait_on_bit_lock_io_fndecl_43852 wait_on_bit_lock_io fndecl 0 43852 NULL
147454 +disable_so_authenc_esn_geniv_ahash_update_done_fndecl_43855 authenc_esn_geniv_ahash_update_done fndecl 2 43855 NULL
147455 +disable_so_pre_event_timeout_vardecl_sequencer_c_43856 pre_event_timeout vardecl_sequencer.c 0 43856 NULL nohasharray
147456 +disable_so_last_rx_time_net_local_43856 last_rx_time net_local 0 43856 &disable_so_pre_event_timeout_vardecl_sequencer_c_43856
147457 +disable_so_run_delayed_tree_ref_fndecl_43857 run_delayed_tree_ref fndecl 0 43857 NULL
147458 +disable_so_radio_addr_saa7134_board_43862 radio_addr saa7134_board 0 43862 NULL
147459 +disable_so_hor_total_via_display_timing_43866 hor_total via_display_timing 0 43866 NULL
147460 +disable_so_mem_addr_pch_dma_desc_regs_43867 mem_addr pch_dma_desc_regs 0 43867 NULL
147461 +disable_so_addr_Vmxnet3_TxDesc_43868 addr Vmxnet3_TxDesc 0 43868 NULL
147462 +disable_so_set_ras_addr_fndecl_43869 set_ras_addr fndecl 4 43869 NULL
147463 +disable_so_cpuidle_register_fndecl_43887 cpuidle_register fndecl 0 43887 NULL
147464 +disable_so_start_seq_tcp_sack_block_43898 start_seq tcp_sack_block 0 43898 NULL
147465 +disable_so_seq_default_timer_subdevice_vardecl_43912 seq_default_timer_subdevice vardecl 0 43912 NULL
147466 +disable_so_pci_bus_update_busn_res_end_fndecl_43918 pci_bus_update_busn_res_end fndecl 2-0 43918 NULL
147467 +disable_so_qdisc_watchdog_schedule_ns_fndecl_43926 qdisc_watchdog_schedule_ns fndecl 2 43926 NULL
147468 +disable_so_sys_timer_create_fndecl_43937 sys_timer_create fndecl 1 43937 NULL
147469 +disable_so_atmel_spi_runtime_resume_fndecl_43938 atmel_spi_runtime_resume fndecl 0 43938 NULL nohasharray
147470 +disable_so_zd1201_set_freq_fndecl_43938 zd1201_set_freq fndecl 0 43938 &disable_so_atmel_spi_runtime_resume_fndecl_43938
147471 +disable_so_gid_fuse_setattr_in_43939 gid fuse_setattr_in 0 43939 NULL
147472 +disable_so_bit_putcs_aligned_fndecl_43966 bit_putcs_aligned fndecl 5-6-7-8 43966 NULL
147473 +disable_so_log_mc_hash_sz_mlx4_init_hca_param_43973 log_mc_hash_sz mlx4_init_hca_param 0 43973 NULL
147474 +disable_so_igb_write_8bit_ctrl_reg_fndecl_43984 igb_write_8bit_ctrl_reg fndecl 2 43984 NULL
147475 +disable_so_r50_val_fc2580_freq_regs_43992 r50_val fc2580_freq_regs 0 43992 NULL
147476 +disable_so_ccp_aes_xts_encrypt_fndecl_43996 ccp_aes_xts_encrypt fndecl 0 43996 NULL
147477 +disable_so_tty_unregister_device_fndecl_44000 tty_unregister_device fndecl 2 44000 NULL
147478 +disable_so_bus_addr_vnic_dev_bar_44006 bus_addr vnic_dev_bar 0 44006 NULL
147479 +disable_so_pcf8523_rtc_set_time_fndecl_44007 pcf8523_rtc_set_time fndecl 0 44007 NULL
147480 +disable_so_dq_hash_mask_vardecl_dquot_c_44015 dq_hash_mask vardecl_dquot.c 0 44015 NULL
147481 +disable_so_device_addr_lm87_tx_hdr_44016 device_addr lm87_tx_hdr 0 44016 NULL
147482 +disable_so__kstrtoull_fndecl_44018 _kstrtoull fndecl 0 44018 NULL
147483 +disable_so_brcmf_sdiod_set_sbaddr_window_fndecl_44019 brcmf_sdiod_set_sbaddr_window fndecl 0-2 44019 NULL
147484 +disable_so_drbd_adm_new_c_uuid_fndecl_44035 drbd_adm_new_c_uuid fndecl 0 44035 NULL
147485 +disable_so_signal_hostap_80211_rx_status_44041 signal hostap_80211_rx_status 0 44041 NULL
147486 +disable_so_enqueue_time_codel_skb_cb_44046 enqueue_time codel_skb_cb 0 44046 NULL
147487 +disable_so_conv_clk_and_div_n_pcr_ops_44049 conv_clk_and_div_n pcr_ops 0-1 44049 NULL
147488 +disable_so_ep93xx_spi_calc_divisors_fndecl_44051 ep93xx_spi_calc_divisors fndecl 0-2 44051 NULL
147489 +disable_so_j_trans_start_time_reiserfs_journal_44058 j_trans_start_time reiserfs_journal 0 44058 NULL
147490 +disable_so_cvt_kvaddr_fndecl_44079 cvt_kvaddr fndecl 0 44079 NULL
147491 +disable_so_tm_mon_rtc_time_44080 tm_mon rtc_time 0 44080 NULL
147492 +disable_so_uart_get_divisor_fndecl_44085 uart_get_divisor fndecl 0-2 44085 NULL
147493 +disable_so_spn_obj_sockaddr_pn_44086 spn_obj sockaddr_pn 0 44086 NULL
147494 +disable_so_cur_start_addr_sisusb_usb_data_44091 cur_start_addr sisusb_usb_data 0 44091 NULL nohasharray
147495 +disable_so___vma_address_fndecl_44091 __vma_address fndecl 0 44091 &disable_so_cur_start_addr_sisusb_usb_data_44091
147496 +disable_so_read_systime_fm10k_mac_ops_44092 read_systime fm10k_mac_ops 0 44092 NULL
147497 +disable_so_nfsd_map_name_to_gid_fndecl_44096 nfsd_map_name_to_gid fndecl 0 44096 NULL
147498 +disable_so_mthca_cmd_box_fndecl_44108 mthca_cmd_box fndecl 7-0-2-4-3 44108 NULL nohasharray
147499 +disable_so_chv_clock_fndecl_44108 chv_clock fndecl 1 44108 &disable_so_mthca_cmd_box_fndecl_44108
147500 +disable_so_ironlake_pch_transcoder_set_timings_fndecl_44115 ironlake_pch_transcoder_set_timings fndecl 2 44115 NULL
147501 +disable_so___br_ip4_hash_fndecl_44134 __br_ip4_hash fndecl 0 44134 NULL
147502 +disable_so_divider_recalc_rate_fndecl_44140 divider_recalc_rate fndecl 3-0-2 44140 NULL nohasharray
147503 +disable_so_reg_id_res_gid_44140 reg_id res_gid 0 44140 &disable_so_divider_recalc_rate_fndecl_44140
147504 +disable_so_dev_rst_time_qlcnic_adapter_44150 dev_rst_time qlcnic_adapter 0 44150 NULL
147505 +disable_so_nsec_ptp_clock_time_44160 nsec ptp_clock_time 0 44160 NULL
147506 +disable_so_node_count_hfs_btree_44162 node_count hfs_btree 0 44162 NULL
147507 +disable_so_iscsit_na_dataout_timeout_fndecl_44167 iscsit_na_dataout_timeout fndecl 2-0 44167 NULL nohasharray
147508 +disable_so_idletimer_ax25_info_struct_44167 idletimer ax25_info_struct 0 44167 &disable_so_iscsit_na_dataout_timeout_fndecl_44167
147509 +disable_so_btrfs_delayed_qgroup_accounting_fndecl_44171 btrfs_delayed_qgroup_accounting fndecl 0 44171 NULL
147510 +disable_so_t4_wr_mbox_timeout_fndecl_44177 t4_wr_mbox_timeout fndecl 2 44177 NULL
147511 +disable_so_db_addr_mlx4_ib_create_qp_44182 db_addr mlx4_ib_create_qp 0 44182 NULL nohasharray
147512 +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
147513 +disable_so_ipath_pkt_delay_fndecl_44185 ipath_pkt_delay fndecl 0-1-2-3 44185 NULL nohasharray
147514 +disable_so_cycle_state_xhci_ring_44185 cycle_state xhci_ring 0 44185 &disable_so_ipath_pkt_delay_fndecl_44185
147515 +disable_so_phys_dma_addr_r852_device_44187 phys_dma_addr r852_device 0 44187 NULL
147516 +disable_so_nopin_response_timeout_iscsi_node_attrib_44188 nopin_response_timeout iscsi_node_attrib 0 44188 NULL
147517 +disable_so_lkey_mthca_resize_cq_44197 lkey mthca_resize_cq 0 44197 NULL
147518 +disable_so_rx_timeout_netdev_private_44200 rx_timeout netdev_private 0 44200 NULL
147519 +disable_so_naddr_qib_user_sdma_pkt_44203 naddr qib_user_sdma_pkt 0 44203 NULL
147520 +disable_so_block_to_cpu_fndecl_44212 block_to_cpu fndecl 0 44212 NULL
147521 +disable_so_read_tail_n_tty_data_44226 read_tail n_tty_data 0 44226 NULL
147522 +disable_so_bssidx_rt2x00lib_crypto_44239 bssidx rt2x00lib_crypto 0 44239 NULL
147523 +disable_so_number_pci_bus_44243 number pci_bus 0 44243 NULL
147524 +disable_so_watchdog_timeout_w83793_data_44253 watchdog_timeout w83793_data 0 44253 NULL
147525 +disable_so_cz_clock_intel_rps_ei_44276 cz_clock intel_rps_ei 0 44276 NULL
147526 +disable_so_proc_gid_map_open_fndecl_44293 proc_gid_map_open fndecl 0 44293 NULL
147527 +disable_so_r2d_val_fc2580_freq_regs_44295 r2d_val fc2580_freq_regs 0 44295 NULL
147528 +disable_so_wm8510_set_dai_clkdiv_fndecl_44299 wm8510_set_dai_clkdiv fndecl 3 44299 NULL
147529 +disable_so_otime_jfs_inode_info_44300 otime jfs_inode_info 0 44300 NULL
147530 +disable_so_rss_hash_be_rx_compl_info_44306 rss_hash be_rx_compl_info 0 44306 NULL
147531 +disable_so_radio_tx_freq_vivid_dev_44308 radio_tx_freq vivid_dev 0 44308 NULL
147532 +disable_so_smbhash_fndecl_44311 smbhash fndecl 0 44311 NULL
147533 +disable_so_nla_put_in6_addr_fndecl_44317 nla_put_in6_addr fndecl 0 44317 NULL
147534 +disable_so_fll_ref_freq__fll_div_44318 fll_ref_freq _fll_div 0 44318 NULL
147535 +disable_so_prandom_bytes_state_fndecl_44332 prandom_bytes_state fndecl 3 44332 NULL
147536 +disable_so_base_dma_addr_srp_map_state_44343 base_dma_addr srp_map_state 0 44343 NULL
147537 +disable_so_addr_intel_plane_error_state_44366 addr intel_plane_error_state 0 44366 NULL
147538 +disable_so_start_addr_acpi_memory_info_44372 start_addr acpi_memory_info 0 44372 NULL
147539 +disable_so_bitmap_cpg_ocfs2_super_44373 bitmap_cpg ocfs2_super 0 44373 NULL
147540 +disable_so_interval_zd_usb_interrupt_44381 interval zd_usb_interrupt 0 44381 NULL
147541 +disable_so_neigh_proc_dointvec_ms_jiffies_fndecl_44384 neigh_proc_dointvec_ms_jiffies fndecl 0 44384 NULL
147542 +disable_so_fsl_esai_divisor_cal_fndecl_44386 fsl_esai_divisor_cal fndecl 5-3 44386 NULL
147543 +disable_so_sync_single_for_device_dma_map_ops_44393 sync_single_for_device dma_map_ops 2-3 44393 NULL
147544 +disable_so_cl_lease_time_nfs_client_44400 cl_lease_time nfs_client 0 44400 NULL
147545 +disable_so_asd_get_user_sas_addr_fndecl_44401 asd_get_user_sas_addr fndecl 0 44401 NULL
147546 +disable_so_ss_tss_segment_16_44415 ss tss_segment_16 0 44415 NULL
147547 +disable_so_ave_beacon_signal_ieee80211_if_managed_44440 ave_beacon_signal ieee80211_if_managed 0 44440 NULL
147548 +disable_so_smsc911x_hash_fndecl_44443 smsc911x_hash fndecl 0 44443 NULL
147549 +disable_so_flow_hash_from_keys_fndecl_44444 flow_hash_from_keys fndecl 0 44444 NULL
147550 +disable_so_addr_vt8231_data_44455 addr vt8231_data 0 44455 NULL
147551 +disable_so_drm_fixp_mul_fndecl_44461 drm_fixp_mul fndecl 0-1-2 44461 NULL
147552 +disable_so_bind_evtchn_to_cpu_fndecl_44464 bind_evtchn_to_cpu fndecl 2-1 44464 NULL
147553 +disable_so_rdma_set_reuseaddr_fndecl_44469 rdma_set_reuseaddr fndecl 0 44469 NULL
147554 +disable_so_vx_calc_clock_from_freq_fndecl_44479 vx_calc_clock_from_freq fndecl 0-2 44479 NULL
147555 +disable_so_rs_conn_addr_rds_sock_44482 rs_conn_addr rds_sock 0 44482 NULL
147556 +disable_so_decode_attr_time_delta_fndecl_44484 decode_attr_time_delta fndecl 0 44484 NULL nohasharray
147557 +disable_so_xfs_btree_get_bufs_fndecl_44484 xfs_btree_get_bufs fndecl 3-4 44484 &disable_so_decode_attr_time_delta_fndecl_44484
147558 +disable_so_zd_chip_set_multicast_hash_fndecl_44491 zd_chip_set_multicast_hash fndecl 0 44491 NULL
147559 +disable_so_write32_async_rtl_io_44499 write32_async rtl_io 2-3 44499 NULL
147560 +disable_so_tcf_hashinfo_init_fndecl_44504 tcf_hashinfo_init fndecl 2 44504 NULL
147561 +disable_so_buffer_addr_atl1c_rx_free_desc_44505 buffer_addr atl1c_rx_free_desc 0 44505 NULL
147562 +disable_so_rqq_addr_hi_addr_ctrl_blk_44511 rqq_addr_hi addr_ctrl_blk 0 44511 NULL
147563 +disable_so_max_pll_spi_speed_pll_clock_map_44513 max_pll_spi_speed pll_clock_map 0 44513 NULL
147564 +disable_so_read_addr_qla8xxx_minidump_entry_mux_44516 read_addr qla8xxx_minidump_entry_mux 0 44516 NULL
147565 +disable_so_abx500_set_register_interruptible_fndecl_44521 abx500_set_register_interruptible fndecl 0-4 44521 NULL
147566 +disable_so_range_startk_var_mtrr_state_44530 range_startk var_mtrr_state 0 44530 NULL
147567 +disable_so_dev_idx_sockaddr_nfc_44533 dev_idx sockaddr_nfc 0 44533 NULL
147568 +disable_so_query_dv_timings_vivid_dev_44543 query_dv_timings vivid_dev 0 44543 NULL
147569 +disable_so_saddr_ircomm_tty_cb_44557 saddr ircomm_tty_cb 0 44557 NULL
147570 +disable_so_schedule_delay_balloon_stats_44561 schedule_delay balloon_stats 0 44561 NULL
147571 +disable_so___start_cp_addr_fndecl_44569 __start_cp_addr fndecl 0 44569 NULL
147572 +disable_so_m41t94_read_time_fndecl_44577 m41t94_read_time fndecl 0 44577 NULL
147573 +disable_so_set_pte_vaddr_fndecl_44586 set_pte_vaddr fndecl 1 44586 NULL
147574 +disable_so_sctp_getsockopt_peer_addrs_fndecl_44593 sctp_getsockopt_peer_addrs fndecl 0 44593 NULL
147575 +disable_so_lu_reset_timeout_iscsi_session_44595 lu_reset_timeout iscsi_session 0 44595 NULL
147576 +disable_so_jade_interrupt_fndecl_44602 jade_interrupt fndecl 2 44602 NULL nohasharray
147577 +disable_so_ebx_smm_regs_44602 ebx smm_regs 0 44602 &disable_so_jade_interrupt_fndecl_44602 nohasharray
147578 +disable_so_nilfs_btree_prepare_insert_fndecl_44602 nilfs_btree_prepare_insert fndecl 0-4 44602 &disable_so_ebx_smm_regs_44602
147579 +disable_so_pcf50633_rtc_read_time_fndecl_44606 pcf50633_rtc_read_time fndecl 0 44606 NULL
147580 +disable_so_active_time_evergreen_wm_params_44608 active_time evergreen_wm_params 0 44608 NULL
147581 +disable_so_flags_inet6_ifaddr_44611 flags inet6_ifaddr 0 44611 NULL
147582 +disable_so_sioaddr_watchdog_data_44614 sioaddr watchdog_data 0 44614 NULL
147583 +disable_so_sense_addr_adv_scsi_req_q_44624 sense_addr adv_scsi_req_q 0 44624 NULL
147584 +disable_so_maxfrags_snd_pcm_oss_runtime_44625 maxfrags snd_pcm_oss_runtime 0 44625 NULL
147585 +disable_so_settle_delay_usecs_ads7846_platform_data_44627 settle_delay_usecs ads7846_platform_data 0 44627 NULL
147586 +disable_so_get_random_int_fndecl_44628 get_random_int fndecl 0 44628 NULL
147587 +disable_so_ahash_def_finup_finish1_fndecl_44631 ahash_def_finup_finish1 fndecl 0-2 44631 NULL
147588 +disable_so_calib_time_b43_lo_calib_44633 calib_time b43_lo_calib 0 44633 NULL
147589 +disable_so_timespec_to_jiffies_fndecl_44642 timespec_to_jiffies fndecl 0 44642 NULL
147590 +disable_so_secid_netlbl_unlhsh_addr4_44654 secid netlbl_unlhsh_addr4 0 44654 NULL
147591 +disable_so_tcp_init_nondata_skb_fndecl_44656 tcp_init_nondata_skb fndecl 2 44656 NULL
147592 +disable_so_time_start_nfs_fattr_44666 time_start nfs_fattr 0 44666 NULL
147593 +disable_so_nilfs_dev_uuid_show_fndecl_44683 nilfs_dev_uuid_show fndecl 0 44683 NULL
147594 +disable_so_prctl_get_tid_address_fndecl_44684 prctl_get_tid_address fndecl 0 44684 NULL
147595 +disable_so_rq_addr_t3_wq_44688 rq_addr t3_wq 0 44688 NULL
147596 +disable_so_lpfc_max_scsicmpl_time_vardecl_lpfc_attr_c_44694 lpfc_max_scsicmpl_time vardecl_lpfc_attr.c 0 44694 NULL
147597 +disable_so_show_guid_fndecl_44695 show_guid fndecl 0 44695 NULL
147598 +disable_so_rsi_cmd52writebyte_fndecl_44700 rsi_cmd52writebyte fndecl 0-2-3 44700 NULL
147599 +disable_so_rx_rx_timeout_read_fndecl_44710 rx_rx_timeout_read fndecl 3 44710 NULL
147600 +disable_so_fw_localtime_wl_fw_status_44711 fw_localtime wl_fw_status 0 44711 NULL
147601 +disable_so_sm501_calc_clock_fndecl_44717 sm501_calc_clock fndecl 1-4 44717 NULL
147602 +disable_so_address_radio_20xx_regs_44719 address radio_20xx_regs 0 44719 NULL
147603 +disable_so_round_jiffies_common_fndecl_44723 round_jiffies_common fndecl 0-2-1 44723 NULL
147604 +disable_so_offtime_cbq_class_44730 offtime cbq_class 0 44730 NULL
147605 +disable_so_cur_clock_rtsx_pcr_44731 cur_clock rtsx_pcr 0 44731 NULL
147606 +disable_so_cik_set_uvd_clocks_fndecl_44739 cik_set_uvd_clocks fndecl 3-2-0 44739 NULL
147607 +disable_so_write_reg_sja1000_priv_44741 write_reg sja1000_priv 3 44741 NULL
147608 +disable_so_leaf_tail_hfs_btree_44745 leaf_tail hfs_btree 0 44745 NULL
147609 +disable_so_ui_ctime_ufs2_inode_44748 ui_ctime ufs2_inode 0 44748 NULL nohasharray
147610 +disable_so_addr_it87_data_44748 addr it87_data 0 44748 &disable_so_ui_ctime_ufs2_inode_44748
147611 +disable_so_add_time_xfrm_lifetime_cur_44766 add_time xfrm_lifetime_cur 0 44766 NULL
147612 +disable_so_genwqe_debugfs_curr_dbg_uid1_open_fndecl_44769 genwqe_debugfs_curr_dbg_uid1_open fndecl 0 44769 NULL
147613 +disable_so_espibug_timeout_sge_44778 espibug_timeout sge 0 44778 NULL
147614 +disable_so_buffer_addr_pch_gbe_tx_desc_44790 buffer_addr pch_gbe_tx_desc 0 44790 NULL
147615 +disable_so_crypto_shash_init_fndecl_44815 crypto_shash_init fndecl 0 44815 NULL
147616 +disable_so_get_evtchn_to_irq_fndecl_44824 get_evtchn_to_irq fndecl 0-1 44824 NULL nohasharray
147617 +disable_so_jhash2_fndecl_44824 jhash2 fndecl 0-2-3 44824 &disable_so_get_evtchn_to_irq_fndecl_44824
147618 +disable_so_s_mtime_nilfs_super_block_44839 s_mtime nilfs_super_block 0 44839 NULL
147619 +disable_so_nilfs_segctor_last_nongc_write_time_show_fndecl_44843 nilfs_segctor_last_nongc_write_time_show fndecl 0 44843 NULL
147620 +disable_so_usec_delay_ixgbe_mbx_info_44850 usec_delay ixgbe_mbx_info 0 44850 NULL
147621 +disable_so_ecryptfs_cipher_code_to_string_fndecl_44859 ecryptfs_cipher_code_to_string fndecl 0 44859 NULL
147622 +disable_so_ieee802154_hdr_get_addr_fndecl_44863 ieee802154_hdr_get_addr fndecl 0 44863 NULL
147623 +disable_so_ecp_write_addr_parport_operations_44867 ecp_write_addr parport_operations 0 44867 NULL
147624 +disable_so_mtrr_add_page_fndecl_44881 mtrr_add_page fndecl 1-2 44881 NULL
147625 +disable_so_snd_via686_interrupt_fndecl_44897 snd_via686_interrupt fndecl 1 44897 NULL nohasharray
147626 +disable_so_minor_hash_dx_hash_info_44897 minor_hash dx_hash_info 0 44897 &disable_so_snd_via686_interrupt_fndecl_44897
147627 +disable_so_i2c_addr_dmi_onboard_device_info_44901 i2c_addr dmi_onboard_device_info 0 44901 NULL
147628 +disable_so_tcp_conn_schedule_fndecl_44909 tcp_conn_schedule fndecl 1 44909 NULL nohasharray
147629 +disable_so_udelay_fm10k_mbx_info_44909 udelay fm10k_mbx_info 0 44909 &disable_so_tcp_conn_schedule_fndecl_44909
147630 +disable_so_c_timestamp_svc_cacherep_44918 c_timestamp svc_cacherep 0 44918 NULL
147631 +disable_so_timeout_mpt2_ioctl_command_44920 timeout mpt2_ioctl_command 0 44920 NULL
147632 +disable_so_sk_lingertime_sock_44923 sk_lingertime sock 0 44923 NULL
147633 +disable_so_latency_timer_hpp_type0_44929 latency_timer hpp_type0 0 44929 NULL
147634 +disable_so_mtime_squashfs_base_inode_44930 mtime squashfs_base_inode 0 44930 NULL
147635 +disable_so_rpc_peeraddr_fndecl_44940 rpc_peeraddr fndecl 0-3 44940 NULL
147636 +disable_so_dsap_sockaddr_nfc_llcp_44945 dsap sockaddr_nfc_llcp 0 44945 NULL
147637 +disable_so_shash_ahash_mcryptd_finup_fndecl_44946 shash_ahash_mcryptd_finup fndecl 0 44946 NULL
147638 +disable_so_SiS_SetRegANDOR_fndecl_44947 SiS_SetRegANDOR fndecl 1-2-3-4 44947 NULL
147639 +disable_so_cpu_timer_sample_group_fndecl_44962 cpu_timer_sample_group fndecl 1 44962 NULL
147640 +disable_so_key_timeout_rpc_authops_44963 key_timeout rpc_authops 0 44963 NULL
147641 +disable_so_proc_uid_map_open_fndecl_44967 proc_uid_map_open fndecl 0 44967 NULL
147642 +disable_so_spp_pathmtu_sctp_paddrparams_44974 spp_pathmtu sctp_paddrparams 0 44974 NULL
147643 +disable_so_b43_radio_write_fndecl_44980 b43_radio_write fndecl 3 44980 NULL
147644 +disable_so_level_btree_44981 level btree 0 44981 NULL
147645 +disable_so_shift_clocksource_44992 shift clocksource 0 44992 NULL
147646 +disable_so_mount_timeout_ceph_options_44999 mount_timeout ceph_options 0 44999 NULL
147647 +disable_so_igmp_start_timer_fndecl_45000 igmp_start_timer fndecl 2 45000 NULL
147648 +disable_so_force_addr_vardecl_via686a_c_45006 force_addr vardecl_via686a.c 0 45006 NULL
147649 +disable_so_ahash_wait_fndecl_45017 ahash_wait fndecl 0-1 45017 NULL
147650 +disable_so_acpi_pm_device_sleep_wake_fndecl_45036 acpi_pm_device_sleep_wake fndecl 0 45036 NULL
147651 +disable_so_palette_qxl_bitmap_45040 palette qxl_bitmap 0 45040 NULL
147652 +disable_so_subdevice_snd_timer_id_45046 subdevice snd_timer_id 0 45046 NULL
147653 +disable_so_demod_address_sp887x_config_45051 demod_address sp887x_config 0 45051 NULL
147654 +disable_so_end_address_acpi_address_range_45053 end_address acpi_address_range 0 45053 NULL
147655 +disable_so_fm_rx_get_band_freq_range_fndecl_45055 fm_rx_get_band_freq_range fndecl 0 45055 NULL
147656 +disable_so_tcp_time_wait_fndecl_45056 tcp_time_wait fndecl 3-2 45056 NULL nohasharray
147657 +disable_so_mlx4_ib_gen_node_guid_fndecl_45056 mlx4_ib_gen_node_guid fndecl 0 45056 &disable_so_tcp_time_wait_fndecl_45056
147658 +disable_so_gpio_get_value_cansleep_fndecl_45065 gpio_get_value_cansleep fndecl 0-1 45065 NULL
147659 +disable_so_max6900_i2c_read_time_fndecl_45069 max6900_i2c_read_time fndecl 0 45069 NULL
147660 +disable_so_sys_futimesat_fndecl_45070 sys_futimesat fndecl 1 45070 NULL
147661 +disable_so_genwqe_debugfs_prev_dbg_uid2_open_fndecl_45072 genwqe_debugfs_prev_dbg_uid2_open fndecl 0 45072 NULL
147662 +disable_so_cmd_attr_register_cpumask_fndecl_45074 cmd_attr_register_cpumask fndecl 0 45074 NULL
147663 +disable_so_hdspm_get_aes_sample_rate_fndecl_45076 hdspm_get_aes_sample_rate fndecl 2 45076 NULL
147664 +disable_so_set_magic_time_fndecl_45079 set_magic_time fndecl 3-2-1 45079 NULL
147665 +disable_so_pci_bus_alloc_from_region_fndecl_45084 pci_bus_alloc_from_region fndecl 5-3-4 45084 NULL
147666 +disable_so_set_pending_timer_val_fndecl_45111 set_pending_timer_val fndecl 2 45111 NULL
147667 +disable_so_i_ctime_nsec_f2fs_inode_45121 i_ctime_nsec f2fs_inode 0 45121 NULL nohasharray
147668 +disable_so_s_mtime_ext3_super_block_45121 s_mtime ext3_super_block 0 45121 &disable_so_i_ctime_nsec_f2fs_inode_45121
147669 +disable_so_inet_csk_reset_keepalive_timer_fndecl_45127 inet_csk_reset_keepalive_timer fndecl 2 45127 NULL
147670 +disable_so_x25_addr_ntoa_fndecl_45136 x25_addr_ntoa fndecl 0 45136 NULL
147671 +disable_so_ltimeout_ia_vcc_45137 ltimeout ia_vcc 0 45137 NULL
147672 +disable_so_high_addr_msgbuf_buf_addr_45142 high_addr msgbuf_buf_addr 0 45142 NULL
147673 +disable_so_pit_calibrate_tsc_fndecl_45149 pit_calibrate_tsc fndecl 0-2 45149 NULL
147674 +disable_so_fw_dma_addr_sproc_45154 fw_dma_addr sproc 0 45154 NULL
147675 +disable_so_addr_lola_bar_45160 addr lola_bar 0 45160 NULL
147676 +disable_so_set_normalized_timespec_fndecl_45161 set_normalized_timespec fndecl 2-3 45161 NULL
147677 +disable_so_lp8788_show_eoc_time_fndecl_45162 lp8788_show_eoc_time fndecl 0 45162 NULL
147678 +disable_so_set_ageing_time_fndecl_45172 set_ageing_time fndecl 2 45172 NULL
147679 +disable_so_address_radio_regs_45181 address radio_regs 0 45181 NULL
147680 +disable_so_do_set_sock_timeout_fndecl_45197 do_set_sock_timeout fndecl 0-5 45197 NULL
147681 +disable_so_bootaddr_mic_device_45198 bootaddr mic_device 0 45198 NULL
147682 +disable_so_ext4_max_bitmap_size_fndecl_45201 ext4_max_bitmap_size fndecl 0-1 45201 NULL
147683 +disable_so_rapl_compute_time_window_atom_fndecl_45202 rapl_compute_time_window_atom fndecl 0-2 45202 NULL
147684 +disable_so_di_atime_nsec_gfs2_dinode_45214 di_atime_nsec gfs2_dinode 0 45214 NULL
147685 +disable_so_watchdog_get_timeout_fndecl_45215 watchdog_get_timeout fndecl 0 45215 NULL
147686 +disable_so_undertime_tc_cbq_xstats_45217 undertime tc_cbq_xstats 0 45217 NULL
147687 +disable_so_trace_clock_fndecl_45219 trace_clock fndecl 0 45219 NULL
147688 +disable_so_usb_bulk_msg_fndecl_45230 usb_bulk_msg fndecl 0-4-2-6 45230 NULL
147689 +disable_so_clock_es1968_45231 clock es1968 0 45231 NULL
147690 +disable_so_fillvaddr_gru_tlb_fault_handle_45245 fillvaddr gru_tlb_fault_handle 0 45245 NULL
147691 +disable_so_blocksize_crypto_report_blkcipher_45248 blocksize crypto_report_blkcipher 0 45248 NULL
147692 +disable_so_cdc_ncm_store_tx_timer_usecs_fndecl_45252 cdc_ncm_store_tx_timer_usecs fndecl 0-4 45252 NULL
147693 +disable_so_uv_nmi_loop_delay_vardecl_uv_nmi_c_45253 uv_nmi_loop_delay vardecl_uv_nmi.c 0 45253 NULL
147694 +disable_so_default_timer_slack_ns_task_struct_45261 default_timer_slack_ns task_struct 0 45261 NULL
147695 +disable_so_tsc_offset_adjustment_kvm_vcpu_arch_45263 tsc_offset_adjustment kvm_vcpu_arch 0 45263 NULL
147696 +disable_so_bf_buf_addr_ath_buf_45279 bf_buf_addr ath_buf 0 45279 NULL
147697 +disable_so_xen_clocksource_read_fndecl_45285 xen_clocksource_read fndecl 0 45285 NULL
147698 +disable_so_iscsi_nacl_attrib_store_dataout_timeout_fndecl_45292 iscsi_nacl_attrib_store_dataout_timeout fndecl 0-3 45292 NULL
147699 +disable_so_r8_kvm_regs_45295 r8 kvm_regs 0 45295 NULL
147700 +disable_so_w1_master_attribute_show_timeout_fndecl_45297 w1_master_attribute_show_timeout fndecl 0 45297 NULL
147701 +disable_so_uuid_show_fallback_fndecl_45299 uuid_show_fallback fndecl 0 45299 NULL
147702 +disable_so_nv04_timer_read_fndecl_45300 nv04_timer_read fndecl 0 45300 NULL
147703 +disable_so_write_port_cfg_addr_mvs_dispatch_45302 write_port_cfg_addr mvs_dispatch 2 45302 NULL
147704 +disable_so_ixgbevf_check_for_bit_vf_fndecl_45303 ixgbevf_check_for_bit_vf fndecl 2 45303 NULL
147705 +disable_so_radio_syn_reserved_addr29_b43_nphy_channeltab_entry_rev3_45310 radio_syn_reserved_addr29 b43_nphy_channeltab_entry_rev3 0 45310 NULL
147706 +disable_so_blkcipher_walk_first_fndecl_45312 blkcipher_walk_first fndecl 0 45312 NULL
147707 +disable_so_add_interrupt_randomness_fndecl_45315 add_interrupt_randomness fndecl 1-2 45315 NULL
147708 +disable_so_lg2160_set_spi_clock_fndecl_45319 lg2160_set_spi_clock fndecl 0 45319 NULL
147709 +disable_so_scaled_div32_fndecl_45321 scaled_div32 fndecl 0-1-2 45321 NULL
147710 +disable_so_spkt_protocol_sockaddr_pkt_45330 spkt_protocol sockaddr_pkt 0 45330 NULL
147711 +disable_so_drain_timeout_xenvif_45332 drain_timeout xenvif 0 45332 NULL
147712 +disable_so_sysctl_tcp_fin_timeout_vardecl_45335 sysctl_tcp_fin_timeout vardecl 0 45335 NULL
147713 +disable_so_dlm_dump_rsb_hash_fndecl_45352 dlm_dump_rsb_hash fndecl 2 45352 NULL
147714 +disable_so_get_idle_time_fndecl_45358 get_idle_time fndecl 1-0 45358 NULL
147715 +disable_so_demod_address_ves1x93_config_45359 demod_address ves1x93_config 0 45359 NULL
147716 +disable_so_hid_sensor_write_samp_freq_value_fndecl_45374 hid_sensor_write_samp_freq_value fndecl 2-3 45374 NULL
147717 +disable_so_tuner_addr_saa7134_dev_45377 tuner_addr saa7134_dev 0 45377 NULL
147718 +disable_so_index_ptp_clock_45382 index ptp_clock 0 45382 NULL
147719 +disable_so_rbd_dev_v2_header_onetime_fndecl_45386 rbd_dev_v2_header_onetime fndecl 0 45386 NULL
147720 +disable_so_xfs_btree_make_block_unfull_fndecl_45388 xfs_btree_make_block_unfull fndecl 3-0 45388 NULL
147721 +disable_so_crypto_shash_setkey_fndecl_45392 crypto_shash_setkey fndecl 0-3 45392 NULL
147722 +disable_so_seq_devkmsg_user_45410 seq devkmsg_user 0 45410 NULL
147723 +disable_so_ad799x_read_frequency_fndecl_45414 ad799x_read_frequency fndecl 0 45414 NULL
147724 +disable_so_gid_ceph_mds_reply_inode_45416 gid ceph_mds_reply_inode 0 45416 NULL
147725 +disable_so_zl10036_set_frequency_fndecl_45420 zl10036_set_frequency fndecl 2 45420 NULL
147726 +disable_so_backlight_duty_cycle_drm_psb_private_45424 backlight_duty_cycle drm_psb_private 0 45424 NULL
147727 +disable_so_devm_kvasprintf_fndecl_45431 devm_kvasprintf fndecl 2 45431 NULL
147728 +disable_so_nvif_object_wr_fndecl_45438 nvif_object_wr fndecl 4-3 45438 NULL
147729 +disable_so_expires_rpc_timer_45444 expires rpc_timer 0 45444 NULL
147730 +disable_so_resource_address_pmcraid_config_table_entry_45452 resource_address pmcraid_config_table_entry 0 45452 NULL nohasharray
147731 +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
147732 +disable_so_dev_addr_c67x00_td_45452 dev_addr c67x00_td 0 45452 &disable_so_timer_active_bfa_fcdiag_qtest_s_45452
147733 +disable_so_asd_write_reg_word_fndecl_45465 asd_write_reg_word fndecl 2-3 45465 NULL
147734 +disable_so_time_started_btrfs_dev_replace_45480 time_started btrfs_dev_replace 0 45480 NULL
147735 +disable_so_btrfs_add_delayed_tree_ref_fndecl_45481 btrfs_add_delayed_tree_ref fndecl 0-10-3-4-5-6-7 45481 NULL
147736 +disable_so_i2c_addr_fc2580_config_45482 i2c_addr fc2580_config 0 45482 NULL
147737 +disable_so_device_missing_delay__MPT_ADAPTER_45485 device_missing_delay _MPT_ADAPTER 0 45485 NULL
147738 +disable_so_pdiv_skl_wrpll_params_45498 pdiv skl_wrpll_params 0 45498 NULL
147739 +disable_so_fast_RR_timeout_irlap_cb_45499 fast_RR_timeout irlap_cb 0 45499 NULL
147740 +disable_so_usb_control_msg_fndecl_45507 usb_control_msg fndecl 8-0-2-9-5-4-6-3 45507 NULL
147741 +disable_so_cpu_to_vhost16_fndecl_45510 cpu_to_vhost16 fndecl 2 45510 NULL
147742 +disable_so_vma_interval_tree_compute_subtree_last_fndecl_45515 vma_interval_tree_compute_subtree_last fndecl 0 45515 NULL
147743 +disable_so_paddr_mwifiex_evt_buf_desc_45527 paddr mwifiex_evt_buf_desc 0 45527 NULL nohasharray
147744 +disable_so_saddr_lap_cb_45527 saddr lap_cb 0 45527 &disable_so_paddr_mwifiex_evt_buf_desc_45527
147745 +disable_so_nilfs_btree_find_target_v_fndecl_45528 nilfs_btree_find_target_v fndecl 0-3 45528 NULL
147746 +disable_so_pagf_btreeblks_xfs_perag_45534 pagf_btreeblks xfs_perag 0 45534 NULL
147747 +disable_so_reestablish_timeout_rpc_xprt_45538 reestablish_timeout rpc_xprt 0 45538 NULL
147748 +disable_so_show_falltime_fndecl_45545 show_falltime fndecl 0 45545 NULL
147749 +disable_so_tl_time_tcon_link_45553 tl_time tcon_link 0 45553 NULL nohasharray
147750 +disable_so_address_ips_sglist_45553 address ips_sglist 0 45553 &disable_so_tl_time_tcon_link_45553
147751 +disable_so_phy_address_bcmgenet_platform_data_45558 phy_address bcmgenet_platform_data 0 45558 NULL
147752 +disable_so_seq_kern_ipc_perm_45559 seq kern_ipc_perm 0 45559 NULL
147753 +disable_so_verify_cpufreq_driver_45564 verify cpufreq_driver 0 45564 NULL
147754 +disable_so_mcp795_set_time_fndecl_45573 mcp795_set_time fndecl 0 45573 NULL
147755 +disable_so_sw_beacon_response_time_ath9k_ops_config_45576 sw_beacon_response_time ath9k_ops_config 0 45576 NULL
147756 +disable_so_postsleep_min_us_mmc_ioc_cmd_45584 postsleep_min_us mmc_ioc_cmd 0 45584 NULL
147757 +disable_so_write_reg_c_can_priv_45594 write_reg c_can_priv 3 45594 NULL
147758 +disable_so_first_frag_time_prism2_frag_entry_45596 first_frag_time prism2_frag_entry 0 45596 NULL
147759 +disable_so_rsa_init_fndecl_45605 rsa_init fndecl 0 45605 NULL
147760 +disable_so_laddr_c2wr_ae_active_connect_results_45607 laddr c2wr_ae_active_connect_results 0 45607 NULL nohasharray
147761 +disable_so_base_kvm_mtrr_range_45607 base kvm_mtrr_range 0 45607 &disable_so_laddr_c2wr_ae_active_connect_results_45607
147762 +disable_so_readfreq_si476x_rsq_status_report_45610 readfreq si476x_rsq_status_report 0 45610 NULL
147763 +disable_so_gss_krb5_aes_encrypt_fndecl_45613 gss_krb5_aes_encrypt fndecl 0-2 45613 NULL
147764 +disable_so_igmp_ifc_start_timer_fndecl_45616 igmp_ifc_start_timer fndecl 2 45616 NULL
147765 +disable_so_usb_addr_u132_endp_45622 usb_addr u132_endp 0 45622 NULL
147766 +disable_so_manage_tempaddrs_fndecl_45628 manage_tempaddrs fndecl 3-4-6 45628 NULL
147767 +disable_so_win_mask_latch_addr_flash_info_45634 win_mask latch_addr_flash_info 0 45634 NULL
147768 +disable_so_tx_delay_rk_priv_data_45645 tx_delay rk_priv_data 0 45645 NULL
147769 +disable_so_addr_high_viafb_vx855_dma_descr_45656 addr_high viafb_vx855_dma_descr 0 45656 NULL
147770 +disable_so_snd_asihpi_tuner_freq_info_fndecl_45664 snd_asihpi_tuner_freq_info fndecl 0 45664 NULL
147771 +disable_so_spt_assoc_id_sctp_paddrthlds_45665 spt_assoc_id sctp_paddrthlds 0 45665 NULL
147772 +disable_so_xtfpga_i2s_runtime_resume_fndecl_45670 xtfpga_i2s_runtime_resume fndecl 0 45670 NULL
147773 +disable_so_T44_address_mxt_data_45677 T44_address mxt_data 0 45677 NULL
147774 +disable_so_crypto_cbc_encrypt_fndecl_45683 crypto_cbc_encrypt fndecl 0-4 45683 NULL
147775 +disable_so_clockrate_ath_common_45695 clockrate ath_common 0 45695 NULL
147776 +disable_so_wakeup_timer_p54_common_45703 wakeup_timer p54_common 0 45703 NULL
147777 +disable_so_regulator_set_voltage_time_fndecl_45707 regulator_set_voltage_time fndecl 0 45707 NULL
147778 +disable_so_i2c_addr_isl6405_45720 i2c_addr isl6405 0 45720 NULL
147779 +disable_so_allocate_va_range_i915_address_space_45728 allocate_va_range i915_address_space 2-3 45728 NULL
147780 +disable_so_lx_interrupt_test_ack_fndecl_45736 lx_interrupt_test_ack fndecl 0 45736 NULL
147781 +disable_so_set_msr_mce_fndecl_45738 set_msr_mce fndecl 3 45738 NULL
147782 +disable_so_ircomm_tty_start_watchdog_timer_fndecl_45741 ircomm_tty_start_watchdog_timer fndecl 2 45741 NULL
147783 +disable_so_mount_time_nfs_server_45742 mount_time nfs_server 0 45742 NULL
147784 +disable_so_padata_cpu_hash_fndecl_45743 padata_cpu_hash fndecl 0 45743 NULL
147785 +disable_so_mtime_sec_ubifs_ino_node_45747 mtime_sec ubifs_ino_node 0 45747 NULL nohasharray
147786 +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
147787 +disable_so_set_static_address_fndecl_45752 set_static_address fndecl 0 45752 NULL
147788 +disable_so_cmos_interrupt_fndecl_45753 cmos_interrupt fndecl 1 45753 NULL
147789 +disable_so_addr_buffer_rcv_desc_45761 addr_buffer rcv_desc 0 45761 NULL
147790 +disable_so_leddc_off_time_ssb_sprom_45764 leddc_off_time ssb_sprom 0 45764 NULL
147791 +disable_so_ext4_page_crypto_fndecl_45770 ext4_page_crypto fndecl 4 45770 NULL
147792 +disable_so_dqb_itime_if_dqblk_45773 dqb_itime if_dqblk 0 45773 NULL
147793 +disable_so_addr_nvme_user_io_45777 addr nvme_user_io 0 45777 NULL
147794 +disable_so_split_timeout_jiffies_fw_card_45779 split_timeout_jiffies fw_card 0 45779 NULL
147795 +disable_so_buf_addr_mlx4_ib_create_qp_45781 buf_addr mlx4_ib_create_qp 0 45781 NULL
147796 +disable_so_dax_get_addr_fndecl_45788 dax_get_addr fndecl 0-3 45788 NULL
147797 +disable_so_select_addr_qla8044_minidump_entry_pollrd_45815 select_addr qla8044_minidump_entry_pollrd 0 45815 NULL nohasharray
147798 +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
147799 +disable_so_hwt_wait_time_fndecl_45826 hwt_wait_time fndecl 2 45826 NULL
147800 +disable_so_j_timestamp_reiserfs_journal_list_45839 j_timestamp reiserfs_journal_list 0 45839 NULL
147801 +disable_so_kxcjk1013_setup_new_data_interrupt_fndecl_45841 kxcjk1013_setup_new_data_interrupt fndecl 0 45841 NULL
147802 +disable_so_c2_add_addr_fndecl_45842 c2_add_addr fndecl 2-3 45842 NULL
147803 +disable_so_saddr_ip_tunnel_dst_45850 saddr ip_tunnel_dst 0 45850 NULL
147804 +disable_so_timeout_cdrom_generic_command_45854 timeout cdrom_generic_command 0 45854 NULL
147805 +disable_so_tdm_delay_aic3x_priv_45859 tdm_delay aic3x_priv 0 45859 NULL
147806 +disable_so_toshiba_usb_sleep_charge_get_fndecl_45863 toshiba_usb_sleep_charge_get fndecl 0 45863 NULL
147807 +disable_so_acpi_subsys_runtime_resume_fndecl_45871 acpi_subsys_runtime_resume fndecl 0 45871 NULL
147808 +disable_so_azx_command_addr_fndecl_45877 azx_command_addr fndecl 0-1 45877 NULL
147809 +disable_so_node_guid_ib_device_45878 node_guid ib_device 0 45878 NULL
147810 +disable_so_time_unit_rapl_package_45880 time_unit rapl_package 0 45880 NULL
147811 +disable_so_bw_timer_intel_dsi_45883 bw_timer intel_dsi 0 45883 NULL nohasharray
147812 +disable_so_sys_signalfd4_fndecl_45883 sys_signalfd4 fndecl 4 45883 &disable_so_bw_timer_intel_dsi_45883
147813 +disable_so_addr_st_ss_sgitem_45905 addr st_ss_sgitem 0 45905 NULL
147814 +disable_so_setlightfreq_fndecl_45914 setlightfreq fndecl 2 45914 NULL
147815 +disable_so_sis_ata33_program_udma_timings_fndecl_45916 sis_ata33_program_udma_timings fndecl 2 45916 NULL nohasharray
147816 +disable_so_str2hashbuf_fndecl_45916 str2hashbuf fndecl 2 45916 &disable_so_sis_ata33_program_udma_timings_fndecl_45916
147817 +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
147818 +disable_so_dbm_antsignal_hostap_radiotap_rx_45933 dbm_antsignal hostap_radiotap_rx 0 45933 NULL
147819 +disable_so_time_s5m_rtc_reg_config_45934 time s5m_rtc_reg_config 0 45934 NULL
147820 +disable_so_gro_flush_timeout_show_fndecl_45944 gro_flush_timeout_show fndecl 0 45944 NULL
147821 +disable_so_suid_dumpable_vardecl_45948 suid_dumpable vardecl 0 45948 NULL
147822 +disable_so_sel_addr___pollrd_45957 sel_addr __pollrd 0 45957 NULL
147823 +disable_so_st_atime_nsec_stat_45960 st_atime_nsec stat 0 45960 NULL
147824 +disable_so_mb862xx_i2c_do_address_fndecl_45962 mb862xx_i2c_do_address fndecl 2 45962 NULL nohasharray
147825 +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
147826 +disable_so_last_rx_signal_sta_info_45967 last_rx_signal sta_info 0 45967 NULL
147827 +disable_so_current_frequency_lgdt330x_state_45968 current_frequency lgdt330x_state 0 45968 NULL
147828 +disable_so_gpu_addr_radeon_semaphore_45975 gpu_addr radeon_semaphore 0 45975 NULL
147829 +disable_so_hello_time_net_bridge_45982 hello_time net_bridge 0 45982 NULL
147830 +disable_so_suspend_time_ipw2100_priv_45995 suspend_time ipw2100_priv 0 45995 NULL
147831 +disable_so_mtime_nsec_ubifs_ino_node_46001 mtime_nsec ubifs_ino_node 0 46001 NULL
147832 +disable_so_group_cipher_suite_atmel_private_46009 group_cipher_suite atmel_private 0 46009 NULL
147833 +disable_so_fw_hash_fndecl_46017 fw_hash fndecl 0-1 46017 NULL
147834 +disable_so_dualwatch_jiffies_cx18_46022 dualwatch_jiffies cx18 0 46022 NULL nohasharray
147835 +disable_so_ufs_set_inode_gid_fndecl_46022 ufs_set_inode_gid fndecl 3 46022 &disable_so_dualwatch_jiffies_cx18_46022
147836 +disable_so_hw_ptr_snd_rawmidi_runtime_46024 hw_ptr snd_rawmidi_runtime 0 46024 NULL
147837 +disable_so_erst_exec_set_dst_address_base_fndecl_46025 erst_exec_set_dst_address_base fndecl 0 46025 NULL
147838 +disable_so_port_expander_addr_mxl111sf_state_46026 port_expander_addr mxl111sf_state 0 46026 NULL
147839 +disable_so_tea5764_set_freq_fndecl_46030 tea5764_set_freq fndecl 2 46030 NULL
147840 +disable_so_timestamp_nfs4_delegreturndata_46035 timestamp nfs4_delegreturndata 0 46035 NULL
147841 +disable_so_crypto_blkcipher_encrypt_fndecl_46038 crypto_blkcipher_encrypt fndecl 0-4 46038 NULL
147842 +disable_so_sd_set_timing_fndecl_46047 sd_set_timing fndecl 0 46047 NULL
147843 +disable_so_eflags_user_regs_struct32_46056 eflags user_regs_struct32 0 46056 NULL nohasharray
147844 +disable_so_set_wqe_64bit_value_fndecl_46056 set_wqe_64bit_value fndecl 3 46056 &disable_so_eflags_user_regs_struct32_46056
147845 +disable_so_crypto_cbc_encrypt_segment_fndecl_46064 crypto_cbc_encrypt_segment fndecl 0 46064 NULL
147846 +disable_so_f_bavail_kstatfs_46066 f_bavail kstatfs 0 46066 NULL
147847 +disable_so_inet6_dump_ifacaddr_fndecl_46071 inet6_dump_ifacaddr fndecl 0 46071 NULL
147848 +disable_so_dma_addr_ipw_rx_mem_buffer_46073 dma_addr ipw_rx_mem_buffer 0 46073 NULL
147849 +disable_so_rfkill_last_scheduled_vardecl_input_c_46074 rfkill_last_scheduled vardecl_input.c 0 46074 NULL
147850 +disable_so_dma_addr_ntb_transport_mw_46085 dma_addr ntb_transport_mw 0 46085 NULL
147851 +disable_so_qce_ahash_init_fndecl_46087 qce_ahash_init fndecl 0 46087 NULL
147852 +disable_so_lambda_fll_div_46091 lambda fll_div 0 46091 NULL
147853 +disable_so_amd_iommu_enable_interrupts_fndecl_46110 amd_iommu_enable_interrupts fndecl 0 46110 NULL
147854 +disable_so_pineview_clock_fndecl_46122 pineview_clock fndecl 1 46122 NULL
147855 +disable_so_aes_set_key_common_fndecl_46123 aes_set_key_common fndecl 0-4 46123 NULL
147856 +disable_so_max_dwell_time_active_long_conf_scan_settings_46124 max_dwell_time_active_long conf_scan_settings 0 46124 NULL nohasharray
147857 +disable_so_clock_khz_sym_hcb_46124 clock_khz sym_hcb 0 46124 &disable_so_max_dwell_time_active_long_conf_scan_settings_46124
147858 +disable_so_mrp_periodic_time_vardecl_mrp_c_46127 mrp_periodic_time vardecl_mrp.c 0 46127 NULL
147859 +disable_so_mlx5_query_hca_vport_node_guid_fndecl_46128 mlx5_query_hca_vport_node_guid fndecl 0 46128 NULL
147860 +disable_so_xfs_kgid_to_gid_fndecl_46136 xfs_kgid_to_gid fndecl 0 46136 NULL
147861 +disable_so_ata_msleep_fndecl_46137 ata_msleep fndecl 2 46137 NULL
147862 +disable_so_ccp_sha_init_fndecl_46144 ccp_sha_init fndecl 0 46144 NULL
147863 +disable_so___mv88e6xxx_write_addr_fndecl_46145 __mv88e6xxx_write_addr fndecl 0 46145 NULL
147864 +disable_so_wdt_set_time_fndecl_46151 wdt_set_time fndecl 1-0 46151 NULL
147865 +disable_so_first_above_time_codel_vars_46152 first_above_time codel_vars 0 46152 NULL
147866 +disable_so_extclk_freq_max8649_platform_data_46157 extclk_freq max8649_platform_data 0 46157 NULL
147867 +disable_so_init_clocksource_sysfs_fndecl_46161 init_clocksource_sysfs fndecl 0 46161 NULL
147868 +disable_so_escape_clk_div_intel_dsi_46167 escape_clk_div intel_dsi 0 46167 NULL
147869 +disable_so_l2cap_sock_get_sndtimeo_cb_fndecl_46168 l2cap_sock_get_sndtimeo_cb fndecl 0 46168 NULL
147870 +disable_so_ebx_tss_segment_32_46181 ebx tss_segment_32 0 46181 NULL
147871 +disable_so_freq_in_rule_band_fndecl_46182 freq_in_rule_band fndecl 2 46182 NULL
147872 +disable_so_get_signal_to_noise_fndecl_46189 get_signal_to_noise fndecl 0 46189 NULL
147873 +disable_so_bitmap_parse_user_fndecl_46193 bitmap_parse_user fndecl 0-2-4 46193 NULL
147874 +disable_so_queue_delayed_work_fndecl_46205 queue_delayed_work fndecl 3 46205 NULL
147875 +disable_so_phy_addr_adf_admin_comms_46206 phy_addr adf_admin_comms 0 46206 NULL nohasharray
147876 +disable_so_hblank_lo_detailed_pixel_timing_46206 hblank_lo detailed_pixel_timing 0 46206 &disable_so_phy_addr_adf_admin_comms_46206
147877 +disable_so_delay_time_NvRamType_46210 delay_time NvRamType 0 46210 NULL
147878 +disable_so_subtree_max_end_memtype_46217 subtree_max_end memtype 0 46217 NULL
147879 +disable_so_i_gid_ext3_inode_46225 i_gid ext3_inode 0 46225 NULL
147880 +disable_so_dma_addr_rx_sw_desc_46234 dma_addr rx_sw_desc 0 46234 NULL
147881 +disable_so_smsc_phy_ack_interrupt_fndecl_46236 smsc_phy_ack_interrupt fndecl 0 46236 NULL
147882 +disable_so_crypto_ctr_setkey_fndecl_46238 crypto_ctr_setkey fndecl 0-3 46238 NULL
147883 +disable_so_ap_beacon_time_iwl_mvm_vif_46241 ap_beacon_time iwl_mvm_vif 0 46241 NULL
147884 +disable_so_phy_addr_base_niu_phy_template_46243 phy_addr_base niu_phy_template 0 46243 NULL
147885 +disable_so_dev_getbyhwaddr_rcu_fndecl_46248 dev_getbyhwaddr_rcu fndecl 2 46248 NULL
147886 +disable_so_delay_time_vardecl_pcnet_cs_c_46250 delay_time vardecl_pcnet_cs.c 0 46250 NULL
147887 +disable_so_from_hash_fndecl_46264 from_hash fndecl 0-1 46264 NULL
147888 +disable_so_lapic_timer_frequency_vardecl_46265 lapic_timer_frequency vardecl 0 46265 NULL
147889 +disable_so_cs35l32_runtime_resume_fndecl_46274 cs35l32_runtime_resume fndecl 0 46274 NULL
147890 +disable_so_clock_high_l3_pins_46276 clock_high l3_pins 0 46276 NULL
147891 +disable_so_snd_opl3_timer2_init_fndecl_46281 snd_opl3_timer2_init fndecl 0-2 46281 NULL
147892 +disable_so_demod_address_mb86a16_config_46282 demod_address mb86a16_config 0 46282 NULL
147893 +disable_so_atime_fuse_attr_46283 atime fuse_attr 0 46283 NULL
147894 +disable_so_blink_time_wm831x_status_46292 blink_time wm831x_status 0 46292 NULL
147895 +disable_so_dm_btree_insert_notify_fndecl_46297 dm_btree_insert_notify fndecl 0-2 46297 NULL
147896 +disable_so__rtl92c_signal_scale_mapping_fndecl_46298 _rtl92c_signal_scale_mapping fndecl 0-2 46298 NULL
147897 +disable_so_usb_port_runtime_suspend_fndecl_46299 usb_port_runtime_suspend fndecl 0 46299 NULL
147898 +disable_so___bitmap_start_sync_fndecl_46300 __bitmap_start_sync fndecl 2-4 46300 NULL
147899 +disable_so_ep_timeout_secs_vardecl_cm_c_46302 ep_timeout_secs vardecl_cm.c 0 46302 NULL
147900 +disable_so_prop_seg_can_bittiming_46312 prop_seg can_bittiming 0 46312 NULL
147901 +disable_so_signalstrength_rtl_stats_46320 signalstrength rtl_stats 0 46320 NULL
147902 +disable_so_xpc_hb_check_timeout_vardecl_xpc_main_c_46327 xpc_hb_check_timeout vardecl_xpc_main.c 0 46327 NULL
147903 +disable_so_creation_time_se_dev_entry_46338 creation_time se_dev_entry 0 46338 NULL
147904 +disable_so_ene_set_tx_duty_cycle_fndecl_46344 ene_set_tx_duty_cycle fndecl 2 46344 NULL
147905 +disable_so_atimensec_fuse_setattr_in_46351 atimensec fuse_setattr_in 0 46351 NULL
147906 +disable_so_ip_mce_46362 ip mce 0 46362 NULL
147907 +disable_so_ntfs_bitmap_clear_run_fndecl_46364 ntfs_bitmap_clear_run fndecl 2-3 46364 NULL
147908 +disable_so_ds1286_read_time_fndecl_46365 ds1286_read_time fndecl 0 46365 NULL
147909 +disable_so_sd_uid_stat_data_v1_46367 sd_uid stat_data_v1 0 46367 NULL
147910 +disable_so_bfa_fcs_lport_ns_sm_gid_ft_fndecl_46369 bfa_fcs_lport_ns_sm_gid_ft fndecl 2 46369 NULL
147911 +disable_so_address_usb_ep_46374 address usb_ep 0 46374 NULL
147912 +disable_so_txctl_measured_time_b43_txpower_lo_control_46377 txctl_measured_time b43_txpower_lo_control 0 46377 NULL
147913 +disable_so_gru_start_paddr_vardecl_46378 gru_start_paddr vardecl 0 46378 NULL
147914 +disable_so_second_timestamp_46379 second timestamp 0 46379 NULL
147915 +disable_so_code_acpi_signal_fatal_info_46389 code acpi_signal_fatal_info 0 46389 NULL
147916 +disable_so_cpu_hrtimer_cpu_base_46390 cpu hrtimer_cpu_base 0 46390 NULL
147917 +disable_so_bcma_chipco_watchdog_timer_set_wdt_fndecl_46396 bcma_chipco_watchdog_timer_set_wdt fndecl 2-0 46396 NULL
147918 +disable_so_check_intr_schedule_fndecl_46403 check_intr_schedule fndecl 2-3-0 46403 NULL
147919 +disable_so_start_mtrr_iter_46427 start mtrr_iter 0 46427 NULL
147920 +disable_so_cp_hqd_pq_wptr_poll_addr_hqd_registers_46430 cp_hqd_pq_wptr_poll_addr hqd_registers 0 46430 NULL
147921 +disable_so_irlap_start_final_timer_fndecl_46431 irlap_start_final_timer fndecl 2 46431 NULL
147922 +disable_so_tuner_pll_address_budget_ci_46436 tuner_pll_address budget_ci 0 46436 NULL
147923 +disable_so_mmc35240_get_samp_freq_index_fndecl_46439 mmc35240_get_samp_freq_index fndecl 0 46439 NULL
147924 +disable_so_addr_qat_alg_buf_46445 addr qat_alg_buf 0 46445 NULL
147925 +disable_so_set_ifa_lifetime_fndecl_46447 set_ifa_lifetime fndecl 3-2 46447 NULL
147926 +disable_so_crypto_authenc_module_init_fndecl_46455 crypto_authenc_module_init fndecl 0 46455 NULL
147927 +disable_so_start_fw_address_region_46456 start fw_address_region 0 46456 NULL
147928 +disable_so_snd_seq_queue_timer_open_fndecl_46460 snd_seq_queue_timer_open fndecl 1 46460 NULL
147929 +disable_so_rt_mutex_lock_interruptible_fndecl_46473 rt_mutex_lock_interruptible fndecl 0 46473 NULL
147930 +disable_so_link_set_timer_fndecl_46475 link_set_timer fndecl 2 46475 NULL
147931 +disable_so_pci_bus_check_dev_fndecl_46486 pci_bus_check_dev fndecl 2 46486 NULL
147932 +disable_so_header_dma_addr_tso_state_46489 header_dma_addr tso_state 0 46489 NULL
147933 +disable_so_get_frequency_dvb_tuner_ops_46496 get_frequency dvb_tuner_ops 0 46496 NULL
147934 +disable_so_eth_prepare_mac_addr_change_fndecl_46501 eth_prepare_mac_addr_change fndecl 0 46501 NULL
147935 +disable_so_nfs_direct_write_schedule_iovec_fndecl_46504 nfs_direct_write_schedule_iovec fndecl 0-3 46504 NULL
147936 +disable_so_sib_sid_mask_sockaddr_ib_46511 sib_sid_mask sockaddr_ib 0 46511 NULL
147937 +disable_so_gc_upcall_timestamp_gss_cred_46522 gc_upcall_timestamp gss_cred 0 46522 NULL
147938 +disable_so_zd_iowrite32a_fndecl_46529 zd_iowrite32a fndecl 0-3 46529 NULL
147939 +disable_so_btrfs_delayed_item_reserve_metadata_fndecl_46535 btrfs_delayed_item_reserve_metadata fndecl 0 46535 NULL
147940 +disable_so_qi_btimelimit_xfs_quotainfo_46536 qi_btimelimit xfs_quotainfo 0 46536 NULL
147941 +disable_so_tick_do_timer_cpu_vardecl_46549 tick_do_timer_cpu vardecl 0 46549 NULL
147942 +disable_so_dma_addr_rsxx_cs_buffer_46558 dma_addr rsxx_cs_buffer 0 46558 NULL
147943 +disable_so_niu_set_hash_opts_fndecl_46560 niu_set_hash_opts fndecl 0 46560 NULL
147944 +disable_so_ext_start_addr_i740fb_par_46564 ext_start_addr i740fb_par 0 46564 NULL nohasharray
147945 +disable_so_s5h1420_setfreqoffset_fndecl_46564 s5h1420_setfreqoffset fndecl 2 46564 &disable_so_ext_start_addr_i740fb_par_46564
147946 +disable_so_find_first_zero_bit_fndecl_46567 find_first_zero_bit fndecl 0-2 46567 NULL
147947 +disable_so_ahd_print_register_fndecl_46568 ahd_print_register fndecl 5 46568 NULL
147948 +disable_so_uid_autofs_v5_packet_46569 uid autofs_v5_packet 0 46569 NULL nohasharray
147949 +disable_so_btrfs_find_delayed_ref_head_fndecl_46569 btrfs_find_delayed_ref_head fndecl 2 46569 &disable_so_uid_autofs_v5_packet_46569
147950 +disable_so_beacon_time_stamp_iwl_rx_phy_res_46571 beacon_time_stamp iwl_rx_phy_res 0 46571 NULL
147951 +disable_so_file_update_time_fndecl_46572 file_update_time fndecl 0 46572 NULL nohasharray
147952 +disable_so_mlx4_bitmap_avail_fndecl_46572 mlx4_bitmap_avail fndecl 0 46572 &disable_so_file_update_time_fndecl_46572
147953 +disable_so_lbase_mtrr_value_46577 lbase mtrr_value 0 46577 NULL
147954 +disable_so_frame_bits_snd_pcm_runtime_46580 frame_bits snd_pcm_runtime 0 46580 NULL
147955 +disable_so_mtrr_write_fndecl_46581 mtrr_write fndecl 3 46581 NULL
147956 +disable_so_dm_btree_find_key_fndecl_46584 dm_btree_find_key fndecl 0-2 46584 NULL
147957 +disable_so_timekeeping_set_tai_offset_fndecl_46587 timekeeping_set_tai_offset fndecl 1 46587 NULL
147958 +disable_so_di_tss_segment_16_46594 di tss_segment_16 0 46594 NULL
147959 +disable_so_tda10071_read_signal_strength_fndecl_46598 tda10071_read_signal_strength fndecl 0 46598 NULL
147960 +disable_so___ipv6_addr_diff64_fndecl_46599 __ipv6_addr_diff64 fndecl 0 46599 NULL
147961 +disable_so_ieee80211_runtime_change_iftype_fndecl_46603 ieee80211_runtime_change_iftype fndecl 0 46603 NULL
147962 +disable_so_get_cpu_idle_time_fndecl_46620 get_cpu_idle_time fndecl 1-0 46620 NULL
147963 +disable_so_max6900_i2c_set_time_fndecl_46626 max6900_i2c_set_time fndecl 0 46626 NULL nohasharray
147964 +disable_so_sha1_ctx_mgr_submit_fndecl_46626 sha1_ctx_mgr_submit fndecl 4 46626 &disable_so_max6900_i2c_set_time_fndecl_46626
147965 +disable_so_effective_len_mlx4_bitmap_46628 effective_len mlx4_bitmap 0 46628 NULL
147966 +disable_so_hours_v4l2_timecode_46630 hours v4l2_timecode 0 46630 NULL
147967 +disable_so_vivid_video_s_frequency_fndecl_46635 vivid_video_s_frequency fndecl 0 46635 NULL
147968 +disable_so_rtpm_active_time_show_fndecl_46638 rtpm_active_time_show fndecl 0 46638 NULL
147969 +disable_so___hw_addr_del_fndecl_46652 __hw_addr_del fndecl 0-3 46652 NULL
147970 +disable_so_lp8788_select_buck_vout_addr_fndecl_46658 lp8788_select_buck_vout_addr fndecl 0-2 46658 NULL
147971 +disable_so___flow_hash_from_keys_fndecl_46659 __flow_hash_from_keys fndecl 0 46659 NULL
147972 +disable_so_addrconf_prefix_route_fndecl_46665 addrconf_prefix_route fndecl 2 46665 NULL
147973 +disable_so_bmg160_runtime_resume_fndecl_46671 bmg160_runtime_resume fndecl 0 46671 NULL
147974 +disable_so_msg_ctime_msqid64_ds_46672 msg_ctime msqid64_ds 0 46672 NULL
147975 +disable_so_pvclock_scale_delta_fndecl_46676 pvclock_scale_delta fndecl 0 46676 NULL
147976 +disable_so_rtsx_usb_switch_clock_fndecl_46677 rtsx_usb_switch_clock fndecl 3-2-0 46677 NULL
147977 +disable_so_kstrtouint_fndecl_46682 kstrtouint fndecl 0 46682 NULL
147978 +disable_so_read_addr_qla82xx_md_entry_queue_46684 read_addr qla82xx_md_entry_queue 0 46684 NULL
147979 +disable_so_depth_blk_align_bitmap_46713 depth blk_align_bitmap 0 46713 NULL
147980 +disable_so_sysctl_aarp_resolve_time_vardecl_46714 sysctl_aarp_resolve_time vardecl 0 46714 NULL nohasharray
147981 +disable_so_zd_iowrite16_locked_fndecl_46714 zd_iowrite16_locked fndecl 0 46714 &disable_so_sysctl_aarp_resolve_time_vardecl_46714
147982 +disable_so_rio_addr_tsi721_tx_desc_46721 rio_addr tsi721_tx_desc 0 46721 NULL
147983 +disable_so_addr_mv_sg_46722 addr mv_sg 0 46722 NULL
147984 +disable_so_plat_get_static_power_cpufreq_cooling_device_46723 plat_get_static_power cpufreq_cooling_device 3 46723 NULL
147985 +disable_so_ebitmap_get_bit_fndecl_46726 ebitmap_get_bit fndecl 2 46726 NULL
147986 +disable_so_st_mtime_compat_stat_46734 st_mtime compat_stat 0 46734 NULL
147987 +disable_so_fw_core_add_address_handler_fndecl_46736 fw_core_add_address_handler fndecl 0 46736 NULL
147988 +disable_so_spc_timelimit_qc_type_state_46739 spc_timelimit qc_type_state 0 46739 NULL
147989 +disable_so_tcp_v4_md5_hash_pseudoheader_fndecl_46749 tcp_v4_md5_hash_pseudoheader fndecl 4 46749 NULL
147990 +disable_so_bfa_get_log_time_fndecl_46750 bfa_get_log_time fndecl 0 46750 NULL
147991 +disable_so_ghash_async_final_fndecl_46752 ghash_async_final fndecl 0 46752 NULL
147992 +disable_so_sadb_address_proto_sadb_address_46755 sadb_address_proto sadb_address 0 46755 NULL
147993 +disable_so_hard_use_expires_seconds_xfrm_lifetime_cfg_46763 hard_use_expires_seconds xfrm_lifetime_cfg 0 46763 NULL nohasharray
147994 +disable_so_addrtype_mt_init_fndecl_46763 addrtype_mt_init fndecl 0 46763 &disable_so_hard_use_expires_seconds_xfrm_lifetime_cfg_46763
147995 +disable_so_ipv6_addr_label_init_fndecl_46770 ipv6_addr_label_init fndecl 0 46770 NULL
147996 +disable_so_nbytes_ccp_sha_req_ctx_46772 nbytes ccp_sha_req_ctx 0 46772 NULL
147997 +disable_so_dr_addr_qla4_83xx_quad_entry_46781 dr_addr qla4_83xx_quad_entry 0 46781 NULL
147998 +disable_so_s_csaddr_ufs_sb_private_info_46789 s_csaddr ufs_sb_private_info 0 46789 NULL
147999 +disable_so_ubi_eba_atomic_leb_change_fndecl_46792 ubi_eba_atomic_leb_change fndecl 0 46792 NULL
148000 +disable_so_qce_crypto_driver_init_fndecl_46810 qce_crypto_driver_init fndecl 0 46810 NULL
148001 +disable_so_uuid_tree_generation_btrfs_super_block_46815 uuid_tree_generation btrfs_super_block 0 46815 NULL
148002 +disable_so_panel_pwr_delay_radeon_encoder_lvds_46816 panel_pwr_delay radeon_encoder_lvds 0 46816 NULL
148003 +disable_so_lambda__fll_div_46826 lambda _fll_div 0 46826 NULL
148004 +disable_so_pre_div__pll_div_46827 pre_div _pll_div 0 46827 NULL
148005 +disable_so_paging32_walk_addr_generic_fndecl_46828 paging32_walk_addr_generic fndecl 4-5 46828 NULL
148006 +disable_so_timeout_brcmf_btcoex_info_46840 timeout brcmf_btcoex_info 0 46840 NULL
148007 +disable_so_toshiba_sleep_functions_status_set_fndecl_46848 toshiba_sleep_functions_status_set fndecl 0 46848 NULL
148008 +disable_so_i_gid_exofs_fcb_46849 i_gid exofs_fcb 0 46849 NULL
148009 +disable_so_mounted_uid_compat_ncp_fs_info_v2_46851 mounted_uid compat_ncp_fs_info_v2 0 46851 NULL
148010 +disable_so_ecryptfs_process_key_cipher_fndecl_46863 ecryptfs_process_key_cipher fndecl 0 46863 NULL
148011 +disable_so_tuner_address_stb6100_config_46865 tuner_address stb6100_config 0 46865 NULL
148012 +disable_so_clk_div_ti_tscadc_dev_46872 clk_div ti_tscadc_dev 0 46872 NULL
148013 +disable_so_last_change_time_lpfc_nodelist_46878 last_change_time lpfc_nodelist 0 46878 NULL
148014 +disable_so_addr_mthca_catas_err_46893 addr mthca_catas_err 0 46893 NULL
148015 +disable_so_card_snd_timer_ginfo_46895 card snd_timer_ginfo 0 46895 NULL
148016 +disable_so_svm_set_tsc_khz_fndecl_46900 svm_set_tsc_khz fndecl 2 46900 NULL
148017 +disable_so_buffer_addr_atl1c_tpd_desc_46908 buffer_addr atl1c_tpd_desc 0 46908 NULL
148018 +disable_so_last_expires_snd_timer_system_private_46917 last_expires snd_timer_system_private 0 46917 NULL
148019 +disable_so___arch_hweight16_fndecl_46932 __arch_hweight16 fndecl 0-1 46932 NULL
148020 +disable_so_clockevent_delta2ns_fndecl_46934 clockevent_delta2ns fndecl 1-0 46934 NULL
148021 +disable_so_addr_PVSCSISGElement_46942 addr PVSCSISGElement 0 46942 NULL nohasharray
148022 +disable_so_bg_inode_bitmap_hi_ext4_group_desc_46942 bg_inode_bitmap_hi ext4_group_desc 0 46942 &disable_so_addr_PVSCSISGElement_46942
148023 +disable_so_ai_clkctl_fast_pwrup_delay_fndecl_46950 ai_clkctl_fast_pwrup_delay fndecl 0 46950 NULL
148024 +disable_so_demod_address_mb86a20s_config_46954 demod_address mb86a20s_config 0 46954 NULL
148025 +disable_so_ebitmap_set_bit_fndecl_46955 ebitmap_set_bit fndecl 0-2 46955 NULL
148026 +disable_so_set_eth_addr_fndecl_46958 set_eth_addr fndecl 0 46958 NULL
148027 +disable_so_ghash_async_setkey_fndecl_46962 ghash_async_setkey fndecl 0-3 46962 NULL
148028 +disable_so_hid_time_platform_driver_init_fndecl_46963 hid_time_platform_driver_init fndecl 0 46963 NULL
148029 +disable_so_ad9523_set_clock_provider_fndecl_46979 ad9523_set_clock_provider fndecl 2-0-3 46979 NULL
148030 +disable_so_pbl_addr_tpt_attributes_46980 pbl_addr tpt_attributes 0 46980 NULL
148031 +disable_so_ts_dev_1_peak_time_ref_46981 ts_dev_1 peak_time_ref 0 46981 NULL
148032 +disable_so_buff_phy_addr_amd8111e_rx_dr_46984 buff_phy_addr amd8111e_rx_dr 0 46984 NULL
148033 +disable_so_scan_index_timestamp_iio_dev_46989 scan_index_timestamp iio_dev 0 46989 NULL
148034 +disable_so_ceph_str_hash_linux_fndecl_46991 ceph_str_hash_linux fndecl 0-2 46991 NULL
148035 +disable_so_compq_addr_hi_addr_ctrl_blk_46993 compq_addr_hi addr_ctrl_blk 0 46993 NULL
148036 +disable_so_ctime_sec_ubifs_ino_node_46994 ctime_sec ubifs_ino_node 0 46994 NULL
148037 +disable_so_ring_addr_fe_priv_46998 ring_addr fe_priv 0 46998 NULL
148038 +disable_so_scratch_addr_dwc3_47001 scratch_addr dwc3 0 47001 NULL
148039 +disable_so_be_vf_eth_addr_config_fndecl_47005 be_vf_eth_addr_config fndecl 0 47005 NULL
148040 +disable_so_timeout_pardevice_47010 timeout pardevice 0 47010 NULL
148041 +disable_so_crypto_aes_set_key_fndecl_47018 crypto_aes_set_key fndecl 3 47018 NULL
148042 +disable_so_esp_cur_dma_addr_fndecl_47025 esp_cur_dma_addr fndecl 0 47025 NULL
148043 +disable_so_ba1_addr_snd_cs46xx_47035 ba1_addr snd_cs46xx 0 47035 NULL
148044 +disable_so_decode_bitmap_c_fndecl_47038 decode_bitmap_c fndecl 0-4 47038 NULL
148045 +disable_so_NCR5380_set_timer_fndecl_47039 NCR5380_set_timer fndecl 2 47039 NULL
148046 +disable_so_schedule_copy_fndecl_47040 schedule_copy fndecl 2-4-5-8 47040 NULL
148047 +disable_so_ipath_sdma_abort_jiffies_ipath_devdata_47057 ipath_sdma_abort_jiffies ipath_devdata 0 47057 NULL nohasharray
148048 +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
148049 +disable_so_address_acpi_dmar_hardware_unit_47065 address acpi_dmar_hardware_unit 0 47065 NULL
148050 +disable_so_try_address_fndecl_47083 try_address fndecl 2-3 47083 NULL
148051 +disable_so_mclk_freq_codec_priv_47084 mclk_freq codec_priv 0 47084 NULL
148052 +disable_so_diva_os_get_pci_bus_fndecl_47095 diva_os_get_pci_bus fndecl 0 47095 NULL
148053 +disable_so_shm_atime_shmid64_ds_47100 shm_atime shmid64_ds 0 47100 NULL
148054 +disable_so_tag_reg_addr_qla8044_minidump_entry_cache_47106 tag_reg_addr qla8044_minidump_entry_cache 0 47106 NULL
148055 +disable_so_timestamp_hi_mlx4_ts_cqe_47113 timestamp_hi mlx4_ts_cqe 0 47113 NULL nohasharray
148056 +disable_so_pcap_rtc_read_time_fndecl_47113 pcap_rtc_read_time fndecl 0 47113 &disable_so_timestamp_hi_mlx4_ts_cqe_47113
148057 +disable_so_xircom_interrupt_fndecl_47114 xircom_interrupt fndecl 1 47114 NULL
148058 +disable_so_atombios_crtc_set_base_atomic_fndecl_47122 atombios_crtc_set_base_atomic fndecl 0-3-4 47122 NULL
148059 +disable_so_ath5k_eeprom_init_11a_pcal_freq_fndecl_47134 ath5k_eeprom_init_11a_pcal_freq fndecl 0 47134 NULL
148060 +disable_so_tcs3472_show_int_time_available_fndecl_47135 tcs3472_show_int_time_available fndecl 0 47135 NULL
148061 +disable_so_freq_cx88_core_47137 freq cx88_core 0 47137 NULL
148062 +disable_so_gen6_signal_fndecl_47138 gen6_signal fndecl 0-2 47138 NULL
148063 +disable_so_wlc_lcnphy_rx_signal_power_fndecl_47140 wlc_lcnphy_rx_signal_power fndecl 0 47140 NULL
148064 +disable_so_sq_size_log2_t3_wq_47146 sq_size_log2 t3_wq 0 47146 NULL
148065 +disable_so_rht_head_hashfn_fndecl_47148 rht_head_hashfn fndecl 0 47148 NULL
148066 +disable_so_core_frequency_acpi_processor_px_47149 core_frequency acpi_processor_px 0 47149 NULL
148067 +disable_so_nilfs_btree_do_lookup_last_fndecl_47151 nilfs_btree_do_lookup_last fndecl 0 47151 NULL
148068 +disable_so_last_intr_timestamp_ctlr_info_47154 last_intr_timestamp ctlr_info 0 47154 NULL
148069 +disable_so_curr_freq_rt2x00_dev_47156 curr_freq rt2x00_dev 0 47156 NULL
148070 +disable_so_uid_cf_mod_47160 uid cf_mod 0 47160 NULL
148071 +disable_so_rem_mceusb_dev_47168 rem mceusb_dev 0 47168 NULL
148072 +disable_so_lpphy_qdiv_roundup_fndecl_47185 lpphy_qdiv_roundup fndecl 0-2-1 47185 NULL
148073 +disable_so_start_phys_addr_qxl_memslot_47196 start_phys_addr qxl_memslot 0 47196 NULL
148074 +disable_so_update_ia32_tsc_adjust_msr_fndecl_47211 update_ia32_tsc_adjust_msr fndecl 2 47211 NULL
148075 +disable_so_radeon_atom_set_engine_clock_fndecl_47215 radeon_atom_set_engine_clock fndecl 2 47215 NULL
148076 +disable_so_mtt_base_addr_l_mlx4_qp_context_47232 mtt_base_addr_l mlx4_qp_context 0 47232 NULL
148077 +disable_so_mtt_base_addr_h_mlx4_srq_context_47233 mtt_base_addr_h mlx4_srq_context 0 47233 NULL
148078 +disable_so_init_cpufreq_driver_47242 init cpufreq_driver 0 47242 NULL
148079 +disable_so_gpio_nsleep_auok190x_board_47243 gpio_nsleep auok190x_board 0 47243 NULL
148080 +disable_so_il4965_count_chain_bitmap_fndecl_47252 il4965_count_chain_bitmap fndecl 0-1 47252 NULL
148081 +disable_so_fl_downgrade_time_file_lock_47257 fl_downgrade_time file_lock 0 47257 NULL
148082 +disable_so_get_low_record_time_index_fndecl_47259 get_low_record_time_index fndecl 2 47259 NULL
148083 +disable_so_efx_ptp_get_timestamp_corrections_fndecl_47266 efx_ptp_get_timestamp_corrections fndecl 0 47266 NULL nohasharray
148084 +disable_so_hactive_timing_47266 hactive timing 0 47266 &disable_so_efx_ptp_get_timestamp_corrections_fndecl_47266
148085 +disable_so_feedback_divider_aty128_pll_47275 feedback_divider aty128_pll 0 47275 NULL
148086 +disable_so_daddr_max_pktgen_dev_47293 daddr_max pktgen_dev 0 47293 NULL
148087 +disable_so_addr_ce_desc_47294 addr ce_desc 0 47294 NULL
148088 +disable_so_val_addr0_nphy_rf_control_override_rev3_47315 val_addr0 nphy_rf_control_override_rev3 0 47315 NULL
148089 +disable_so_SYSC_time_fndecl_47318 SYSC_time fndecl 0 47318 NULL
148090 +disable_so_device_addr_hw_cmd_47322 device_addr hw_cmd 0 47322 NULL
148091 +disable_so_cryptd_hash_init_fndecl_47329 cryptd_hash_init fndecl 2 47329 NULL
148092 +disable_so_hpfs_add_sector_to_btree_fndecl_47344 hpfs_add_sector_to_btree fndecl 0-2-4 47344 NULL
148093 +disable_so_vref_delay_usecs_ad7877_47346 vref_delay_usecs ad7877 0 47346 NULL
148094 +disable_so_jiftime_fndecl_47359 jiftime fndecl 2 47359 NULL
148095 +disable_so_year_timestamp_47377 year timestamp 0 47377 NULL
148096 +disable_so_rt_runtime_rt_bandwidth_47380 rt_runtime rt_bandwidth 0 47380 NULL
148097 +disable_so_team_port_set_orig_dev_addr_fndecl_47381 team_port_set_orig_dev_addr fndecl 0 47381 NULL
148098 +disable_so_ldt_selector_tss_segment_32_47382 ldt_selector tss_segment_32 0 47382 NULL
148099 +disable_so_atomic_check_drm_plane_helper_funcs_47383 atomic_check drm_plane_helper_funcs 0 47383 NULL
148100 +disable_so_ath9k_hw_set_global_txtimeout_fndecl_47387 ath9k_hw_set_global_txtimeout fndecl 2 47387 NULL
148101 +disable_so_crypto_blkcipher_setkey_fndecl_47393 crypto_blkcipher_setkey fndecl 0-3 47393 NULL
148102 +disable_so_signal_libipw_rx_stats_47394 signal libipw_rx_stats 0 47394 NULL
148103 +disable_so_wm831x_rtc_readtime_fndecl_47406 wm831x_rtc_readtime fndecl 0 47406 NULL nohasharray
148104 +disable_so_reg_write_fndecl_47406 reg_write fndecl 2 47406 &disable_so_wm831x_rtc_readtime_fndecl_47406
148105 +disable_so_rx_int_delay_e1000_adapter_47412 rx_int_delay e1000_adapter 0 47412 NULL
148106 +disable_so_watchdog_timeo_net_device_47415 watchdog_timeo net_device 0 47415 NULL
148107 +disable_so_m_hi_cfg_bridge_delay_drxk_state_47416 m_hi_cfg_bridge_delay drxk_state 0 47416 NULL
148108 +disable_so_xfs_btree_get_rec_fndecl_47417 xfs_btree_get_rec fndecl 0 47417 NULL
148109 +disable_so_del_timer_fndecl_47421 del_timer fndecl 0 47421 NULL
148110 +disable_so_cq_dma_addr_nvme_queue_47424 cq_dma_addr nvme_queue 0 47424 NULL nohasharray
148111 +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
148112 +disable_so_printk_timed_ratelimit_fndecl_47432 printk_timed_ratelimit fndecl 2 47432 NULL
148113 +disable_so_addr_high_bufq_addr_element_47437 addr_high bufq_addr_element 0 47437 NULL
148114 +disable_so_snd_seq_oss_timer_tempo_fndecl_47444 snd_seq_oss_timer_tempo fndecl 0 47444 NULL
148115 +disable_so_radeon_atom_get_memory_pll_dividers_fndecl_47447 radeon_atom_get_memory_pll_dividers fndecl 0-2 47447 NULL
148116 +disable_so_vdi_atime_vxfs_inode_info_47463 vdi_atime vxfs_inode_info 0 47463 NULL nohasharray
148117 +disable_so_timestamp_iwl_priv_47463 timestamp iwl_priv 0 47463 &disable_so_vdi_atime_vxfs_inode_info_47463
148118 +disable_so_ts_steal_jiffies_gru_thread_state_47477 ts_steal_jiffies gru_thread_state 0 47477 NULL
148119 +disable_so_brcms_c_set_addrmatch_fndecl_47479 brcms_c_set_addrmatch fndecl 2 47479 NULL
148120 +disable_so_cia_max_keysize_cipher_alg_47480 cia_max_keysize cipher_alg 0 47480 NULL
148121 +disable_so_inet_addr_type_fndecl_47499 inet_addr_type fndecl 2 47499 NULL
148122 +disable_so_sd_atime_stat_data_47502 sd_atime stat_data 0 47502 NULL
148123 +disable_so_tcf_hash_create_fndecl_47512 tcf_hash_create fndecl 0-4 47512 NULL
148124 +disable_so_addr_low_ssp_ini_io_start_req_47520 addr_low ssp_ini_io_start_req 0 47520 NULL nohasharray
148125 +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
148126 +disable_so___xfrm4_dpref_spref_hash_fndecl_47524 __xfrm4_dpref_spref_hash fndecl 0 47524 NULL
148127 +disable_so_error_info_addr_mvm_alive_resp_ver2_47529 error_info_addr mvm_alive_resp_ver2 0 47529 NULL
148128 +disable_so_idle_freq_intel_gen6_power_mgmt_47531 idle_freq intel_gen6_power_mgmt 0 47531 NULL
148129 +disable_so_regidx_ath9k_debug_47533 regidx ath9k_debug 0 47533 NULL
148130 +disable_so___delay_fndecl_47535 __delay fndecl 1 47535 NULL
148131 +disable_so_gid_vardecl_initramfs_c_47557 gid vardecl_initramfs.c 0 47557 NULL
148132 +disable_so_channel_freq_wmi_scan_ev_arg_47561 channel_freq wmi_scan_ev_arg 0 47561 NULL nohasharray
148133 +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
148134 +disable_so_addr_high_sata_start_req_47563 addr_high sata_start_req 0 47563 NULL nohasharray
148135 +disable_so_addr_pages_devres_47563 addr pages_devres 0 47563 &disable_so_addr_high_sata_start_req_47563
148136 +disable_so_min_align_snd_pcm_runtime_47579 min_align snd_pcm_runtime 0 47579 NULL nohasharray
148137 +disable_so_dev_set_mac_address_fndecl_47579 dev_set_mac_address fndecl 0 47579 &disable_so_min_align_snd_pcm_runtime_47579
148138 +disable_so_sip_sprintf_addr_port_fndecl_47581 sip_sprintf_addr_port fndecl 0-4 47581 NULL
148139 +disable_so_physical_addr_cper_sec_mem_err_47582 physical_addr cper_sec_mem_err 0 47582 NULL nohasharray
148140 +disable_so_log2taps_oslec_state_47582 log2taps oslec_state 0 47582 &disable_so_physical_addr_cper_sec_mem_err_47582
148141 +disable_so_rehash_time_sfb_sched_data_47586 rehash_time sfb_sched_data 0 47586 NULL nohasharray
148142 +disable_so_x25_parse_address_block_fndecl_47586 x25_parse_address_block fndecl 0 47586 &disable_so_rehash_time_sfb_sched_data_47586
148143 +disable_so_write_reg_fndecl_47589 write_reg fndecl 3-2 47589 NULL
148144 +disable_so_buffer_addr_tx_packet_desc_47592 buffer_addr tx_packet_desc 0 47592 NULL
148145 +disable_so_xfs_iomap_write_delay_fndecl_47595 xfs_iomap_write_delay fndecl 0-2-3 47595 NULL
148146 +disable_so_valleyview_rps_min_freq_fndecl_47598 valleyview_rps_min_freq fndecl 0 47598 NULL
148147 +disable_so_eft_addr_h_qla2xxx_fw_dump_47600 eft_addr_h qla2xxx_fw_dump 0 47600 NULL
148148 +disable_so_tms_cstime_tms_47604 tms_cstime tms 0 47604 NULL nohasharray
148149 +disable_so_btrfs_node_key_to_cpu_fndecl_47604 btrfs_node_key_to_cpu fndecl 3 47604 &disable_so_tms_cstime_tms_47604
148150 +disable_so_base_reg_regcache_rbtree_node_47612 base_reg regcache_rbtree_node 0 47612 NULL
148151 +disable_so_bd_list_addr_lo_bnx2i_cmd_request_47615 bd_list_addr_lo bnx2i_cmd_request 0 47615 NULL
148152 +disable_so_ltr501_ps_read_samp_freq_fndecl_47616 ltr501_ps_read_samp_freq fndecl 0 47616 NULL
148153 +disable_so_freq_pulse_event_47630 freq pulse_event 0 47630 NULL
148154 +disable_so_ixgbe_set_rss_hash_opt_fndecl_47632 ixgbe_set_rss_hash_opt fndecl 0 47632 NULL
148155 +disable_so_timeout_vardecl_hvc_console_c_47646 timeout vardecl_hvc_console.c 0 47646 NULL
148156 +disable_so_buffer_addr_e1000_tx_desc_47648 buffer_addr e1000_tx_desc 0 47648 NULL
148157 +disable_so_keyctl_set_timeout_fndecl_47649 keyctl_set_timeout fndecl 2-1-0 47649 NULL
148158 +disable_so_cfg80211_wext_siwfreq_fndecl_47653 cfg80211_wext_siwfreq fndecl 0 47653 NULL
148159 +disable_so_dw_wdt_time_left_fndecl_47654 dw_wdt_time_left fndecl 0 47654 NULL
148160 +disable_so_tstep_addr_palmas_regs_info_47657 tstep_addr palmas_regs_info 0 47657 NULL
148161 +disable_so_frac_period_rest_dummy_systimer_pcm_47674 frac_period_rest dummy_systimer_pcm 0 47674 NULL
148162 +disable_so_fill_bitmap_rle_bits_fndecl_47678 fill_bitmap_rle_bits fndecl 0 47678 NULL
148163 +disable_so_set_timebase_fndecl_47679 set_timebase fndecl 1 47679 NULL
148164 +disable_so_i2c_addr_tua9001_config_47682 i2c_addr tua9001_config 0 47682 NULL
148165 +disable_so_time_scan_survey_info_47684 time_scan survey_info 0 47684 NULL
148166 +disable_so_lzo_decompress_fndecl_47694 lzo_decompress fndecl 2 47694 NULL
148167 +disable_so_hsync_pulse_width_lvds_dvo_timing_47698 hsync_pulse_width lvds_dvo_timing 0 47698 NULL
148168 +disable_so_bdc_address_device_fndecl_47704 bdc_address_device fndecl 0-2 47704 NULL
148169 +disable_so_base_addr_ivtv_47705 base_addr ivtv 0 47705 NULL
148170 +disable_so_clock_start_soc_camera_host_ops_47707 clock_start soc_camera_host_ops 0 47707 NULL
148171 +disable_so_enum_dv_timings_v4l2_subdev_pad_ops_47708 enum_dv_timings v4l2_subdev_pad_ops 0 47708 NULL nohasharray
148172 +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
148173 +disable_so_rv740_get_mclk_frequency_ratio_fndecl_47715 rv740_get_mclk_frequency_ratio fndecl 0-1 47715 NULL
148174 +disable_so_lola_set_clock_fndecl_47716 lola_set_clock fndecl 0 47716 NULL
148175 +disable_so_hid_rtc_read_time_fndecl_47725 hid_rtc_read_time fndecl 0 47725 NULL
148176 +disable_so_ext4_update_other_inodes_time_fndecl_47730 ext4_update_other_inodes_time fndecl 2 47730 NULL
148177 +disable_so_uartlite_inbe32_fndecl_47739 uartlite_inbe32 fndecl 0 47739 NULL
148178 +disable_so_tm_yday_rtc_time_47740 tm_yday rtc_time 0 47740 NULL
148179 +disable_so_snd_azf3328_timer_fndecl_47746 snd_azf3328_timer fndecl 0-2 47746 NULL
148180 +disable_so_pci_bus_atto_channel_info_47747 pci_bus atto_channel_info 0 47747 NULL
148181 +disable_so_control_addr_qla8044_minidump_entry_cache_47750 control_addr qla8044_minidump_entry_cache 0 47750 NULL
148182 +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
148183 +disable_so_tx_ring_dma_addr_amd8111e_priv_47757 tx_ring_dma_addr amd8111e_priv 0 47757 NULL
148184 +disable_so_frac_period_size_dummy_systimer_pcm_47758 frac_period_size dummy_systimer_pcm 0 47758 NULL
148185 +disable_so_inet6_addr_add_fndecl_47759 inet6_addr_add fndecl 0-2-5-7-8-6 47759 NULL
148186 +disable_so_initial_descriptor_timeout_vardecl_hub_c_47763 initial_descriptor_timeout vardecl_hub.c 0 47763 NULL
148187 +disable_so_nbytes_ccp_aes_cmac_req_ctx_47773 nbytes ccp_aes_cmac_req_ctx 0 47773 NULL
148188 +disable_so_account_idle_time_fndecl_47777 account_idle_time fndecl 1 47777 NULL
148189 +disable_so_ip_addr_nes_arp_entry_47790 ip_addr nes_arp_entry 0 47790 NULL
148190 +disable_so_sha1_generic_mod_init_fndecl_47800 sha1_generic_mod_init fndecl 0 47800 NULL
148191 +disable_so_nla_validate_nested_fndecl_47801 nla_validate_nested fndecl 2-0 47801 NULL
148192 +disable_so_enable_refdiv_dibx000_bandwidth_config_47815 enable_refdiv dibx000_bandwidth_config 0 47815 NULL
148193 +disable_so_demod_address_cx24123_config_47819 demod_address cx24123_config 0 47819 NULL
148194 +disable_so_alloc_usb_address_fndecl_47822 alloc_usb_address fndecl 0 47822 NULL
148195 +disable_so_compat_sys_signalfd_fndecl_47830 compat_sys_signalfd fndecl 0 47830 NULL
148196 +disable_so_silence_filled_snd_pcm_runtime_47852 silence_filled snd_pcm_runtime 0 47852 NULL nohasharray
148197 +disable_so_demod_addr_tm6000_core_47852 demod_addr tm6000_core 0 47852 &disable_so_silence_filled_snd_pcm_runtime_47852
148198 +disable_so___net_get_random_once_fndecl_47854 __net_get_random_once fndecl 2 47854 NULL
148199 +disable_so_add_device_randomness_fndecl_47860 add_device_randomness fndecl 2 47860 NULL nohasharray
148200 +disable_so_put_dec_trunc8_fndecl_47860 put_dec_trunc8 fndecl 2 47860 &disable_so_add_device_randomness_fndecl_47860
148201 +disable_so___ntfs_bitmap_set_bits_in_run_fndecl_47864 __ntfs_bitmap_set_bits_in_run fndecl 2-3 47864 NULL
148202 +disable_so_qce_ahash_digest_fndecl_47873 qce_ahash_digest fndecl 0 47873 NULL
148203 +disable_so_i_gid_f2fs_inode_47888 i_gid f2fs_inode 0 47888 NULL
148204 +disable_so_currentfreq_s921_state_47895 currentfreq s921_state 0 47895 NULL
148205 +disable_so_dma_ring_addr_i40e_virtchnl_rxq_info_47897 dma_ring_addr i40e_virtchnl_rxq_info 0 47897 NULL
148206 +disable_so_qla82xx_decode_crb_addr_fndecl_47901 qla82xx_decode_crb_addr fndecl 0-1 47901 NULL
148207 +disable_so_xtal_cap20p_r820t_freq_range_47903 xtal_cap20p r820t_freq_range 0 47903 NULL
148208 +disable_so_drbd_uuid_dump_fndecl_47904 drbd_uuid_dump fndecl 4 47904 NULL
148209 +disable_so_host_addr_gnttab_unmap_grant_ref_47911 host_addr gnttab_unmap_grant_ref 0 47911 NULL
148210 +disable_so_crypto_ccm_setkey_fndecl_47913 crypto_ccm_setkey fndecl 0-3 47913 NULL
148211 +disable_so_ipath_sdma_abort_intr_timeout_ipath_devdata_47922 ipath_sdma_abort_intr_timeout ipath_devdata 0 47922 NULL
148212 +disable_so_think_time_usb_tt_47928 think_time usb_tt 0 47928 NULL
148213 +disable_so_vaddr_ib_reth_47929 vaddr ib_reth 0 47929 NULL
148214 +disable_so_num_clock_sources_echoaudio_47930 num_clock_sources echoaudio 0 47930 NULL nohasharray
148215 +disable_so_shutdwn_delay_cs42l73_private_47930 shutdwn_delay cs42l73_private 0 47930 &disable_so_num_clock_sources_echoaudio_47930
148216 +disable_so_count_bitmaps_fndecl_47942 count_bitmaps fndecl 0 47942 NULL
148217 +disable_so_crypto_aead_ivsize_fndecl_47945 crypto_aead_ivsize fndecl 0 47945 NULL
148218 +disable_so_rs5c348_rtc_read_time_fndecl_47948 rs5c348_rtc_read_time fndecl 0 47948 NULL
148219 +disable_so_kvm_set_lapic_tscdeadline_msr_fndecl_47952 kvm_set_lapic_tscdeadline_msr fndecl 2 47952 NULL
148220 +disable_so_ext4_inode_bitmap_set_fndecl_47957 ext4_inode_bitmap_set fndecl 3 47957 NULL
148221 +disable_so_sysctl_llc2_busy_timeout_vardecl_47965 sysctl_llc2_busy_timeout vardecl 0 47965 NULL
148222 +disable_so_atl2_hash_mc_addr_fndecl_47966 atl2_hash_mc_addr fndecl 0 47966 NULL
148223 +disable_so_wm97xx_reg_write_fndecl_47973 wm97xx_reg_write fndecl 3-2 47973 NULL
148224 +disable_so_isci_setup_interrupts_fndecl_47977 isci_setup_interrupts fndecl 0 47977 NULL
148225 +disable_so_hdmi_mode_alternate_clock_fndecl_47981 hdmi_mode_alternate_clock fndecl 0 47981 NULL
148226 +disable_so_xhci_address_device_fndecl_47987 xhci_address_device fndecl 0 47987 NULL
148227 +disable_so_snd_timer_start1_fndecl_47992 snd_timer_start1 fndecl 3-0 47992 NULL
148228 +disable_so_timing_setup_fndecl_48002 timing_setup fndecl 3-4 48002 NULL
148229 +disable_so_clk_freq_g762_platform_data_48004 clk_freq g762_platform_data 0 48004 NULL
148230 +disable_so_sh_addralign_elf64_shdr_48012 sh_addralign elf64_shdr 0 48012 NULL nohasharray
148231 +disable_so_crypto_aead_reqsize_fndecl_48012 crypto_aead_reqsize fndecl 0 48012 &disable_so_sh_addralign_elf64_shdr_48012
148232 +disable_so_qlcnic_82xx_get_mac_address_fndecl_48015 qlcnic_82xx_get_mac_address fndecl 0 48015 NULL
148233 +disable_so_frequency_dvb_pll_priv_48016 frequency dvb_pll_priv 0 48016 NULL
148234 +disable_so_i915_min_freq_set_fndecl_48019 i915_min_freq_set fndecl 2-0 48019 NULL
148235 +disable_so_slave_addr_psb_intel_sdvo_48022 slave_addr psb_intel_sdvo 0 48022 NULL
148236 +disable_so_si_get_ddr3_mclk_frequency_ratio_fndecl_48025 si_get_ddr3_mclk_frequency_ratio fndecl 0-1 48025 NULL
148237 +disable_so_lgdt3306a_fe_sleep_fndecl_48026 lgdt3306a_fe_sleep fndecl 0 48026 NULL
148238 +disable_so_ctnl_timeout_fill_info_fndecl_48030 ctnl_timeout_fill_info fndecl 3-5-0-2 48030 NULL
148239 +disable_so_r69_val_fc2580_freq_regs_48037 r69_val fc2580_freq_regs 0 48037 NULL nohasharray
148240 +disable_so_btree_lookup32_fndecl_48037 btree_lookup32 fndecl 2 48037 &disable_so_r69_val_fc2580_freq_regs_48037
148241 +disable_so_reservation_object_wait_timeout_rcu_fndecl_48039 reservation_object_wait_timeout_rcu fndecl 0-4 48039 NULL
148242 +disable_so_utimescaled_task_struct_48041 utimescaled task_struct 0 48041 NULL
148243 +disable_so_hrtimer_init_fndecl_48048 hrtimer_init fndecl 2 48048 NULL
148244 +disable_so_regmap_bulk_write_fndecl_48058 regmap_bulk_write fndecl 0-2-4 48058 NULL
148245 +disable_so_rt_saddr_dn_route_48062 rt_saddr dn_route 0 48062 NULL
148246 +disable_so_ring_interrupt_index_fndecl_48065 ring_interrupt_index fndecl 0 48065 NULL nohasharray
148247 +disable_so_dclk_freq_i7core_pvt_48065 dclk_freq i7core_pvt 0 48065 &disable_so_ring_interrupt_index_fndecl_48065
148248 +disable_so_di_atime_gfs2_dinode_48066 di_atime gfs2_dinode 0 48066 NULL
148249 +disable_so_be32_add_cpu_fndecl_48069 be32_add_cpu fndecl 2 48069 NULL
148250 +disable_so_keepalive_time_tcp_sock_48076 keepalive_time tcp_sock 0 48076 NULL nohasharray
148251 +disable_so_mptscsih_get_tm_timeout_fndecl_48076 mptscsih_get_tm_timeout fndecl 0 48076 &disable_so_keepalive_time_tcp_sock_48076
148252 +disable_so_set_channel_address_fndecl_48079 set_channel_address fndecl 2-3 48079 NULL
148253 +disable_so_clock_vardecl_max6650_c_48080 clock vardecl_max6650.c 0 48080 NULL
148254 +disable_so_mapped_loc_addr_nes_cm_node_48083 mapped_loc_addr nes_cm_node 0 48083 NULL
148255 +disable_so___br_ip6_hash_fndecl_48084 __br_ip6_hash fndecl 0 48084 NULL
148256 +disable_so_si4713_tx_tune_freq_fndecl_48092 si4713_tx_tune_freq fndecl 0-2 48092 NULL
148257 +disable_so_wait_for_completion_killable_timeout_fndecl_48103 wait_for_completion_killable_timeout fndecl 2-0 48103 NULL
148258 +disable_so_lpfc_max_scsicmpl_time_init_fndecl_48110 lpfc_max_scsicmpl_time_init fndecl 2 48110 NULL
148259 +disable_so_lib80211_register_crypto_ops_fndecl_48112 lib80211_register_crypto_ops fndecl 0 48112 NULL
148260 +disable_so_get_error_address_fndecl_48129 get_error_address fndecl 0 48129 NULL nohasharray
148261 +disable_so_sfreq_sst_byt_pcm_params_48129 sfreq sst_byt_pcm_params 0 48129 &disable_so_get_error_address_fndecl_48129
148262 +disable_so_vsync_off_lvds_dvo_timing_48134 vsync_off lvds_dvo_timing 0 48134 NULL
148263 +disable_so_transop_timeout_ipr_ioa_cfg_48141 transop_timeout ipr_ioa_cfg 0 48141 NULL
148264 +disable_so_addrconf_prefix_rcv_fndecl_48148 addrconf_prefix_rcv fndecl 3 48148 NULL
148265 +disable_so_copied_seq_tcp_sock_48149 copied_seq tcp_sock 0 48149 NULL
148266 +disable_so_pm_autosleep_set_state_fndecl_48154 pm_autosleep_set_state fndecl 0 48154 NULL
148267 +disable_so_mlx4_en_read_clock_fndecl_48159 mlx4_en_read_clock fndecl 0 48159 NULL
148268 +disable_so_ipmi_request_settime_fndecl_48166 ipmi_request_settime fndecl 0 48166 NULL
148269 +disable_so_atime_p9_wstat_48170 atime p9_wstat 0 48170 NULL
148270 +disable_so_sys_mq_timedsend_fndecl_48174 sys_mq_timedsend fndecl 3-1 48174 NULL
148271 +disable_so_td_base_addr_c67x00_hcd_48184 td_base_addr c67x00_hcd 0 48184 NULL
148272 +disable_so_mca_tstamp_ifmcaddr6_48186 mca_tstamp ifmcaddr6 0 48186 NULL
148273 +disable_so_tobe_rx_coal_timeval_vnic_cq_48199 tobe_rx_coal_timeval vnic_cq 0 48199 NULL nohasharray
148274 +disable_so_read_msr_fndecl_48199 read_msr fndecl 0 48199 &disable_so_tobe_rx_coal_timeval_vnic_cq_48199
148275 +disable_so_main_blkaddr_f2fs_sm_info_48201 main_blkaddr f2fs_sm_info 0 48201 NULL
148276 +disable_so_doorbell_physical_address_kgd2kfd_shared_resources_48202 doorbell_physical_address kgd2kfd_shared_resources 0 48202 NULL
148277 +disable_so_aa_fs_seq_hash_open_fndecl_48204 aa_fs_seq_hash_open fndecl 0 48204 NULL
148278 +disable_so_skcipher_all_sg_nents_fndecl_48207 skcipher_all_sg_nents fndecl 0 48207 NULL
148279 +disable_so_addr_r10dev_48214 addr r10dev 0 48214 NULL
148280 +disable_so_btc_set_ulv_dram_timing_fndecl_48216 btc_set_ulv_dram_timing fndecl 0 48216 NULL
148281 +disable_so_gid_btrfs_inode_item_48221 gid btrfs_inode_item 0 48221 NULL
148282 +disable_so_time_offset_vardecl_ntp_c_48224 time_offset vardecl_ntp.c 0 48224 NULL
148283 +disable_so_bitmaps_hpfs_super_block_48227 bitmaps hpfs_super_block 0 48227 NULL
148284 +disable_so_tpg_hdiv_fndecl_48235 tpg_hdiv fndecl 0-3 48235 NULL
148285 +disable_so_nextmsg_time_vardecl_ipath_intr_c_48236 nextmsg_time vardecl_ipath_intr.c 0 48236 NULL
148286 +disable_so_src_bitmap_qxl_copy_48243 src_bitmap qxl_copy 0 48243 NULL nohasharray
148287 +disable_so_btree_split_sibling_fndecl_48243 btree_split_sibling fndecl 0-3 48243 &disable_so_src_bitmap_qxl_copy_48243
148288 +disable_so_sm1_runtime_sc_48251 sm1 runtime_sc 0 48251 NULL nohasharray
148289 +disable_so_r6f_val_fc2580_freq_regs_48251 r6f_val fc2580_freq_regs 0 48251 &disable_so_sm1_runtime_sc_48251
148290 +disable_so_dp_daddr_rds_iw_connect_private_48258 dp_daddr rds_iw_connect_private 0 48258 NULL nohasharray
148291 +disable_so_ceph_dentry_hash_fndecl_48258 ceph_dentry_hash fndecl 0 48258 &disable_so_dp_daddr_rds_iw_connect_private_48258
148292 +disable_so_tm_delta_smt_timer_48263 tm_delta smt_timer 0 48263 NULL nohasharray
148293 +disable_so_enabled_hrtimer_events_ehci_hcd_48263 enabled_hrtimer_events ehci_hcd 0 48263 &disable_so_tm_delta_smt_timer_48263
148294 +disable_so_clock_task_rq_48277 clock_task rq 0 48277 NULL
148295 +disable_so_ui_mtime_ufs2_inode_48286 ui_mtime ufs2_inode 0 48286 NULL
148296 +disable_so_sumo_parse_pplib_clock_info_fndecl_48288 sumo_parse_pplib_clock_info fndecl 3 48288 NULL
148297 +disable_so_crypto_shash_final_fndecl_48296 crypto_shash_final fndecl 0 48296 NULL
148298 +disable_so_tproxy_handle_time_wait4_fndecl_48305 tproxy_handle_time_wait4 fndecl 2-3 48305 NULL
148299 +disable_so_timeout_pg_48333 timeout pg 0 48333 NULL
148300 +disable_so_set_next_event_clock_event_device_48353 set_next_event clock_event_device 1 48353 NULL
148301 +disable_so_VCOdivider_cx24123_bandselect_val_48358 VCOdivider cx24123_bandselect_val 0 48358 NULL
148302 +disable_so_pch_mac_start_address_pch_phub_reg_48361 pch_mac_start_address pch_phub_reg 0 48361 NULL nohasharray
148303 +disable_so_dib8000_write_word_fndecl_48361 dib8000_write_word fndecl 2-3 48361 &disable_so_pch_mac_start_address_pch_phub_reg_48361
148304 +disable_so_skcipher_wait_for_wmem_fndecl_48362 skcipher_wait_for_wmem fndecl 0-2 48362 NULL
148305 +disable_so_num_mc_addrs_ixgb_hw_48363 num_mc_addrs ixgb_hw 0 48363 NULL
148306 +disable_so_timeout_net_conf_48365 timeout net_conf 0 48365 NULL
148307 +disable_so_last_awake_jiffies_rtl_ps_ctl_48378 last_awake_jiffies rtl_ps_ctl 0 48378 NULL
148308 +disable_so_mphash_entries_vardecl_namespace_c_48379 mphash_entries vardecl_namespace.c 0 48379 NULL
148309 +disable_so_dbs_freq_increase_fndecl_48380 dbs_freq_increase fndecl 2 48380 NULL nohasharray
148310 +disable_so_crypto_register_rngs_fndecl_48380 crypto_register_rngs fndecl 0 48380 &disable_so_dbs_freq_increase_fndecl_48380
148311 +disable_so_lgdt3306a_read_signal_strength_fndecl_48382 lgdt3306a_read_signal_strength fndecl 0 48382 NULL
148312 +disable_so_di_atime_efs_dinode_48386 di_atime efs_dinode 0 48386 NULL
148313 +disable_so_iscsi_nacl_attrib_show_nopin_timeout_fndecl_48391 iscsi_nacl_attrib_show_nopin_timeout fndecl 0 48391 NULL
148314 +disable_so_update_streaming_control_runtime_48422 update_streaming control_runtime 0 48422 NULL
148315 +disable_so_setpolicy_cpufreq_driver_48433 setpolicy cpufreq_driver 0 48433 NULL
148316 +disable_so_clockid_timerfd_ctx_48442 clockid timerfd_ctx 0 48442 NULL
148317 +disable_so_set_bau_on_time_bau_control_48444 set_bau_on_time bau_control 0 48444 NULL nohasharray
148318 +disable_so_vclk_post_div_pll_ct_48444 vclk_post_div pll_ct 0 48444 &disable_so_set_bau_on_time_bau_control_48444
148319 +disable_so_test_acipher_jiffies_fndecl_48452 test_acipher_jiffies fndecl 0 48452 NULL
148320 +disable_so_radio_syn_reserved_addr27_b43_nphy_channeltab_entry_rev3_48453 radio_syn_reserved_addr27 b43_nphy_channeltab_entry_rev3 0 48453 NULL
148321 +disable_so_fan_timer_f75375_data_48461 fan_timer f75375_data 0 48461 NULL nohasharray
148322 +disable_so_address_ksm_scan_48461 address ksm_scan 0 48461 &disable_so_fan_timer_f75375_data_48461
148323 +disable_so_elements_bitmap_port_48466 elements bitmap_port 0 48466 NULL
148324 +disable_so_zd_chip_read_mac_addr_fw_fndecl_48469 zd_chip_read_mac_addr_fw fndecl 0 48469 NULL
148325 +disable_so___round_jiffies_up_relative_fndecl_48487 __round_jiffies_up_relative fndecl 2-1-0 48487 NULL
148326 +disable_so_gfs2_disk_hash_fndecl_48491 gfs2_disk_hash fndecl 2 48491 NULL
148327 +disable_so_max6900_rtc_read_time_fndecl_48493 max6900_rtc_read_time fndecl 0 48493 NULL nohasharray
148328 +disable_so_bsscfgidx_brcmf_mbss_ssid_le_48493 bsscfgidx brcmf_mbss_ssid_le 0 48493 &disable_so_max6900_rtc_read_time_fndecl_48493
148329 +disable_so_kvm_set_tsc_khz_fndecl_48520 kvm_set_tsc_khz fndecl 2 48520 NULL
148330 +disable_so_rx8025_set_time_fndecl_48524 rx8025_set_time fndecl 0 48524 NULL
148331 +disable_so_usbvision_stream_interrupt_fndecl_48527 usbvision_stream_interrupt fndecl 0 48527 NULL nohasharray
148332 +disable_so_ip_vs_lblc_hashkey_fndecl_48527 ip_vs_lblc_hashkey fndecl 1 48527 &disable_so_usbvision_stream_interrupt_fndecl_48527
148333 +disable_so_timeout_cm_av_48528 timeout cm_av 0 48528 NULL nohasharray
148334 +disable_so_ww_mutex_lock_slow_interruptible_fndecl_48528 ww_mutex_lock_slow_interruptible fndecl 0 48528 &disable_so_timeout_cm_av_48528
148335 +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
148336 +disable_so_blk_addr_node_info_48545 blk_addr node_info 0 48545 NULL
148337 +disable_so_SYSC_sched_getscheduler_fndecl_48547 SYSC_sched_getscheduler fndecl 0-1 48547 NULL
148338 +disable_so_i915_max_freq_get_fndecl_48551 i915_max_freq_get fndecl 0 48551 NULL
148339 +disable_so_min_dwell_time_active_long_conf_scan_settings_48560 min_dwell_time_active_long conf_scan_settings 0 48560 NULL nohasharray
148340 +disable_so_set_memclock_fndecl_48560 set_memclock fndecl 2 48560 &disable_so_min_dwell_time_active_long_conf_scan_settings_48560
148341 +disable_so_ext4_get_bitmap_fndecl_48566 ext4_get_bitmap fndecl 2 48566 NULL
148342 +disable_so_read_addr___pollrd_48572 read_addr __pollrd 0 48572 NULL
148343 +disable_so_cn_esc_printf_fndecl_48573 cn_esc_printf fndecl 0 48573 NULL
148344 +disable_so_osd_keepalive_timeout_ceph_options_48576 osd_keepalive_timeout ceph_options 0 48576 NULL nohasharray
148345 +disable_so_freq_cea_sad_48576 freq cea_sad 0 48576 &disable_so_osd_keepalive_timeout_ceph_options_48576
148346 +disable_so_rp_down_timeout_vlv_s0ix_state_48583 rp_down_timeout vlv_s0ix_state 0 48583 NULL
148347 +disable_so_x86_coreid_bits_cpuinfo_x86_48589 x86_coreid_bits cpuinfo_x86 0 48589 NULL nohasharray
148348 +disable_so_radeon_fence_seq_signaled_fndecl_48589 radeon_fence_seq_signaled fndecl 3 48589 &disable_so_x86_coreid_bits_cpuinfo_x86_48589
148349 +disable_so_timeval_to_jiffies_fndecl_48593 timeval_to_jiffies fndecl 0 48593 NULL
148350 +disable_so_addr_hash_fndecl_48596 addr_hash fndecl 0-2-3 48596 NULL
148351 +disable_so_frame_timestamp_iwl_tdls_channel_switch_timing_48601 frame_timestamp iwl_tdls_channel_switch_timing 0 48601 NULL
148352 +disable_so_post_divider_pll_18818_48604 post_divider pll_18818 0 48604 NULL
148353 +disable_so_mapaddr_ql_rcv_buf_cb_48606 mapaddr ql_rcv_buf_cb 0 48606 NULL
148354 +disable_so_get_tsc_mode_fndecl_48608 get_tsc_mode fndecl 0-1 48608 NULL
148355 +disable_so_parse_nl_saddr_fndecl_48609 parse_nl_saddr fndecl 0 48609 NULL
148356 +disable_so_il_dbgfs_interrupt_write_fndecl_48612 il_dbgfs_interrupt_write fndecl 0-3 48612 NULL
148357 +disable_so_timer_ticks_snd_ymfpci_48615 timer_ticks snd_ymfpci 0 48615 NULL
148358 +disable_so_pause_time_e1000_fc_info_48619 pause_time e1000_fc_info 0 48619 NULL
148359 +disable_so_curspataddr_banshee_reg_48622 curspataddr banshee_reg 0 48622 NULL
148360 +disable_so_sysctl_discovery_timeout_vardecl_48636 sysctl_discovery_timeout vardecl 0 48636 NULL
148361 +disable_so_pch_opt_rom_start_address_pch_phub_reg_48637 pch_opt_rom_start_address pch_phub_reg 0 48637 NULL
148362 +disable_so_ocfs2_test_bg_bit_allocatable_fndecl_48640 ocfs2_test_bg_bit_allocatable fndecl 2 48640 NULL nohasharray
148363 +disable_so_bit_count_syscon_gpio_data_48640 bit_count syscon_gpio_data 0 48640 &disable_so_ocfs2_test_bg_bit_allocatable_fndecl_48640
148364 +disable_so_st_uid_compat_stat_48641 st_uid compat_stat 0 48641 NULL
148365 +disable_so_zd1201_get_freq_fndecl_48656 zd1201_get_freq fndecl 0 48656 NULL nohasharray
148366 +disable_so_set_key_lib80211_crypto_ops_48656 set_key lib80211_crypto_ops 2 48656 &disable_so_zd1201_get_freq_fndecl_48656
148367 +disable_so_padata_set_cpumask_fndecl_48659 padata_set_cpumask fndecl 0 48659 NULL
148368 +disable_so_addrconf_sysctl_mtu_fndecl_48662 addrconf_sysctl_mtu fndecl 0 48662 NULL
148369 +disable_so_elapsed_time_sit_info_48663 elapsed_time sit_info 0 48663 NULL
148370 +disable_so_irq_uart_port_48670 irq uart_port 0 48670 NULL
148371 +disable_so_timeout_ib_qp_attr_48674 timeout ib_qp_attr 0 48674 NULL
148372 +disable_so_read_addr_mdc_hw_list_desc_48675 read_addr mdc_hw_list_desc 0 48675 NULL
148373 +disable_so_xfs_btree_update_fndecl_48676 xfs_btree_update fndecl 0 48676 NULL
148374 +disable_so_phy_pm_runtime_put_sync_fndecl_48680 phy_pm_runtime_put_sync fndecl 0 48680 NULL
148375 +disable_so_pcc_cpufreq_target_fndecl_48684 pcc_cpufreq_target fndecl 2 48684 NULL
148376 +disable_so_call_timer_fn_fndecl_48686 call_timer_fn fndecl 3 48686 NULL
148377 +disable_so_xfs_bmap_add_extent_delay_real_fndecl_48692 xfs_bmap_add_extent_delay_real fndecl 0 48692 NULL
148378 +disable_so_bdi_position_ratio_fndecl_48698 bdi_position_ratio fndecl 0-2-3-4-5-6 48698 NULL
148379 +disable_so_rcq_np_addr_vf_pf_rxq_params_48718 rcq_np_addr vf_pf_rxq_params 0 48718 NULL
148380 +disable_so_rp_gid_ubifs_sb_node_48723 rp_gid ubifs_sb_node 0 48723 NULL
148381 +disable_so_phys_addr_gen_pool_chunk_48730 phys_addr gen_pool_chunk 0 48730 NULL
148382 +disable_so_addr_qla8044_minidump_entry_crb_48734 addr qla8044_minidump_entry_crb 0 48734 NULL
148383 +disable_so_mt7601u_wr_fndecl_48735 mt7601u_wr fndecl 3-2 48735 NULL nohasharray
148384 +disable_so_cpufreq_policy_restore_fndecl_48735 cpufreq_policy_restore fndecl 1 48735 &disable_so_mt7601u_wr_fndecl_48735
148385 +disable_so_cpuid_read_fndecl_48739 cpuid_read fndecl 0 48739 NULL
148386 +disable_so_be_cmd_modify_eq_delay_fndecl_48751 be_cmd_modify_eq_delay fndecl 0 48751 NULL
148387 +disable_so_time_shift_perf_event_mmap_page_48757 time_shift perf_event_mmap_page 0 48757 NULL
148388 +disable_so_i_ctime_ext2_inode_48758 i_ctime ext2_inode 0 48758 NULL nohasharray
148389 +disable_so_ide_timing_find_mode_fndecl_48758 ide_timing_find_mode fndecl 1 48758 &disable_so_i_ctime_ext2_inode_48758
148390 +disable_so_err_crypto_gcm_setkey_result_48768 err crypto_gcm_setkey_result 0 48768 NULL
148391 +disable_so_baddr_videobuf_buffer_48769 baddr videobuf_buffer 0 48769 NULL
148392 +disable_so_sys_utimes_fndecl_48778 sys_utimes fndecl 0 48778 NULL
148393 +disable_so_kstrtos8_from_user_fndecl_48783 kstrtos8_from_user fndecl 2 48783 NULL
148394 +disable_so_regmap_raw_read_fndecl_48789 regmap_raw_read fndecl 4-0-2 48789 NULL
148395 +disable_so_map_sysaddr_to_csrow_low_ops_48803 map_sysaddr_to_csrow low_ops 2 48803 NULL
148396 +disable_so_tg3_get_device_address_fndecl_48809 tg3_get_device_address fndecl 0 48809 NULL
148397 +disable_so_mfgid_sz_cyttsp4_cydata_48812 mfgid_sz cyttsp4_cydata 0 48812 NULL
148398 +disable_so_mceusb_cmd_datasize_fndecl_48817 mceusb_cmd_datasize fndecl 0 48817 NULL
148399 +disable_so_tv_freq_vivid_dev_48830 tv_freq vivid_dev 0 48830 NULL
148400 +disable_so_timecounter_init_fndecl_48837 timecounter_init fndecl 3 48837 NULL
148401 +disable_so_udf_bitmap_free_blocks_fndecl_48841 udf_bitmap_free_blocks fndecl 4-5 48841 NULL
148402 +disable_so__snd_timer_stop_fndecl_48842 _snd_timer_stop fndecl 0 48842 NULL
148403 +disable_so_hash_bits_deflate_state_48850 hash_bits deflate_state 0 48850 NULL
148404 +disable_so_if_freq_mb86a20s_state_48853 if_freq mb86a20s_state 0 48853 NULL
148405 +disable_so_ieee80211_aes_ccm_encrypt_fndecl_48857 ieee80211_aes_ccm_encrypt fndecl 5-7 48857 NULL
148406 +disable_so_msec20_to_jiffies_vardecl_enc28j60_c_48860 msec20_to_jiffies vardecl_enc28j60.c 0 48860 NULL
148407 +disable_so_mmc_sd_get_max_clock_fndecl_48866 mmc_sd_get_max_clock fndecl 0 48866 NULL
148408 +disable_so_s_def_resuid_ext4_super_block_48868 s_def_resuid ext4_super_block 0 48868 NULL
148409 +disable_so_get_physaddr_fs_api_fndecl_48871 get_physaddr_fs_api fndecl 0 48871 NULL
148410 +disable_so_selinux_task_setscheduler_fndecl_48872 selinux_task_setscheduler fndecl 0 48872 NULL
148411 +disable_so_snd_timer_new_fndecl_48873 snd_timer_new fndecl 0 48873 NULL
148412 +disable_so_register_write_rt2800_ops_48876 register_write rt2800_ops 2-3 48876 NULL
148413 +disable_so_client_snd_seq_addr_48879 client snd_seq_addr 0 48879 NULL
148414 +disable_so_saddr_iriap_cb_48880 saddr iriap_cb 0 48880 NULL
148415 +disable_so_error_cpu_itimer_48884 error cpu_itimer 0 48884 NULL
148416 +disable_so_buffer_write_time_flchip_48888 buffer_write_time flchip 0 48888 NULL
148417 +disable_so_valleyview_rps_rpe_freq_fndecl_48901 valleyview_rps_rpe_freq fndecl 0 48901 NULL
148418 +disable_so_bmg160_setup_any_motion_interrupt_fndecl_48906 bmg160_setup_any_motion_interrupt fndecl 0 48906 NULL
148419 +disable_so_min_timing_entry_48911 min timing_entry 0 48911 NULL
148420 +disable_so_tx_coalescing_timeo_bnad_48916 tx_coalescing_timeo bnad 0 48916 NULL
148421 +disable_so___clockevents_try_unbind_fndecl_48918 __clockevents_try_unbind fndecl 2 48918 NULL
148422 +disable_so_cyapa_get_wait_time_for_pwr_cmd_fndecl_48920 cyapa_get_wait_time_for_pwr_cmd fndecl 0-1 48920 NULL
148423 +disable_so_uid_ubifs_ino_node_48950 uid ubifs_ino_node 0 48950 NULL nohasharray
148424 +disable_so_missing_pages_bitmap_counts_48950 missing_pages bitmap_counts 0 48950 &disable_so_uid_ubifs_ino_node_48950
148425 +disable_so_snd_es1968_interrupt_fndecl_48965 snd_es1968_interrupt fndecl 1 48965 NULL
148426 +disable_so_img_ir_symbol_timing_preprocess_fndecl_48967 img_ir_symbol_timing_preprocess fndecl 2 48967 NULL
148427 +disable_so_cryptomgr_init_fndecl_48976 cryptomgr_init fndecl 0 48976 NULL
148428 +disable_so_sync_offset_clockdrift_max_ieee80211_if_mesh_48977 sync_offset_clockdrift_max ieee80211_if_mesh 0 48977 NULL nohasharray
148429 +disable_so_br_mac_hash_fndecl_48977 br_mac_hash fndecl 2 48977 &disable_so_sync_offset_clockdrift_max_ieee80211_if_mesh_48977
148430 +disable_so_rt_daddr_dn_route_48981 rt_daddr dn_route 0 48981 NULL
148431 +disable_so_acpi_get_sleep_type_data_fndecl_48985 acpi_get_sleep_type_data fndecl 0-1 48985 NULL nohasharray
148432 +disable_so_nilfs_btree_mark_fndecl_48985 nilfs_btree_mark fndecl 0-2 48985 &disable_so_acpi_get_sleep_type_data_fndecl_48985
148433 +disable_so_led_on_time_adp8860_backlight_platform_data_48994 led_on_time adp8860_backlight_platform_data 0 48994 NULL nohasharray
148434 +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
148435 +disable_so_max_duration_time_stats_48998 max_duration time_stats 0 48998 NULL
148436 +disable_so_update_debugctlmsr_fndecl_49008 update_debugctlmsr fndecl 1 49008 NULL
148437 +disable_so_default_dclk_div_ssd1307fb_deviceinfo_49014 default_dclk_div ssd1307fb_deviceinfo 0 49014 NULL
148438 +disable_so_bound_addr_rds_info_socket_49019 bound_addr rds_info_socket 0 49019 NULL
148439 +disable_so_output_mute_control_runtime_49021 output_mute control_runtime 0 49021 NULL
148440 +disable_so_btree_csum_one_bio_fndecl_49026 btree_csum_one_bio fndecl 0 49026 NULL
148441 +disable_so_xfs_btree_ptr_addr_fndecl_49031 xfs_btree_ptr_addr fndecl 2 49031 NULL
148442 +disable_so_qs_rtbtimelimit_fs_quota_statv_49033 qs_rtbtimelimit fs_quota_statv 0 49033 NULL
148443 +disable_so_min_cpufreq_policy_49035 min cpufreq_policy 0 49035 NULL nohasharray
148444 +disable_so_semaphore_wait_to_signaller_ring_fndecl_49035 semaphore_wait_to_signaller_ring fndecl 3 49035 &disable_so_min_cpufreq_policy_49035
148445 +disable_so_intr_coal_delay_myri10ge_priv_49037 intr_coal_delay myri10ge_priv 0 49037 NULL
148446 +disable_so_set_public_address_fndecl_49049 set_public_address fndecl 0 49049 NULL
148447 +disable_so_rtc_tm_to_time64_fndecl_49056 rtc_tm_to_time64 fndecl 0 49056 NULL
148448 +disable_so_ext4_block_bitmap_fndecl_49058 ext4_block_bitmap fndecl 0 49058 NULL
148449 +disable_so_nft_hash_key_fndecl_49062 nft_hash_key fndecl 0-2 49062 NULL
148450 +disable_so_dma_addr_cb_49079 dma_addr cb 0 49079 NULL nohasharray
148451 +disable_so_inet6_addr_modify_fndecl_49079 inet6_addr_modify fndecl 0-3-4-2 49079 &disable_so_dma_addr_cb_49079
148452 +disable_so_rhashtable_walk_start_fndecl_49080 rhashtable_walk_start fndecl 0 49080 NULL
148453 +disable_so_sctp_transport_timeout_fndecl_49094 sctp_transport_timeout fndecl 0 49094 NULL
148454 +disable_so_hfdiv_dib0070_tuning_49097 hfdiv dib0070_tuning 0 49097 NULL
148455 +disable_so_u132_hcd_interrupt_recv_fndecl_49098 u132_hcd_interrupt_recv fndecl 5 49098 NULL
148456 +disable_so_test_ahash_jiffies_fndecl_49109 test_ahash_jiffies fndecl 0-3 49109 NULL
148457 +disable_so_result_scsi_cmnd_49113 result scsi_cmnd 0 49113 NULL nohasharray
148458 +disable_so_codel_get_time_fndecl_49113 codel_get_time fndecl 0 49113 &disable_so_result_scsi_cmnd_49113
148459 +disable_so_mce_async_out_fndecl_49115 mce_async_out fndecl 3 49115 NULL
148460 +disable_so_reg_write_fndecl_49116 reg_write fndecl 2-3 49116 NULL nohasharray
148461 +disable_so_hash_htab_elem_49116 hash htab_elem 0 49116 &disable_so_reg_write_fndecl_49116
148462 +disable_so_interrupt_r8a66597_49118 interrupt r8a66597 0 49118 NULL
148463 +disable_so_start_threshold_snd_pcm_runtime_49130 start_threshold snd_pcm_runtime 0 49130 NULL
148464 +disable_so_mt9m111_reg_write_fndecl_49148 mt9m111_reg_write fndecl 0-2-3 49148 NULL
148465 +disable_so_ci_otg_add_timer_fndecl_49151 ci_otg_add_timer fndecl 2 49151 NULL
148466 +disable_so_refa_r_div_ad9523_platform_data_49157 refa_r_div ad9523_platform_data 0 49157 NULL
148467 +disable_so_paddr_setup_data_node_49166 paddr setup_data_node 0 49166 NULL
148468 +disable_so_vactive_lo_lvds_dvo_timing_49180 vactive_lo lvds_dvo_timing 0 49180 NULL
148469 +disable_so_init_dma_addr_pcnet32_private_49182 init_dma_addr pcnet32_private 0 49182 NULL
148470 +disable_so_sh_dmae_runtime_resume_fndecl_49185 sh_dmae_runtime_resume fndecl 0 49185 NULL
148471 +disable_so_timeout_tid_ampdu_tx_49186 timeout tid_ampdu_tx 0 49186 NULL nohasharray
148472 +disable_so_read_peer_guid_fndecl_49186 read_peer_guid fndecl 0 49186 &disable_so_timeout_tid_ampdu_tx_49186
148473 +disable_so_if_freq_tda18271_std_map_item_49207 if_freq tda18271_std_map_item 0 49207 NULL nohasharray
148474 +disable_so_sd_hash_ptrs_gfs2_sbd_49207 sd_hash_ptrs gfs2_sbd 0 49207 &disable_so_if_freq_tda18271_std_map_item_49207
148475 +disable_so_dma_addr_t4_sq_49217 dma_addr t4_sq 0 49217 NULL
148476 +disable_so_suspend_sleep_time_cyapa_49219 suspend_sleep_time cyapa 0 49219 NULL
148477 +disable_so_mtime_nsec_p9_iattr_dotl_49224 mtime_nsec p9_iattr_dotl 0 49224 NULL nohasharray
148478 +disable_so_schedule_external_copy_fndecl_49224 schedule_external_copy fndecl 2-3 49224 &disable_so_mtime_nsec_p9_iattr_dotl_49224
148479 +disable_so_clockevents_init_sysfs_fndecl_49238 clockevents_init_sysfs fndecl 0 49238 NULL
148480 +disable_so_bus_settle_time_blogic_drvr_options_49241 bus_settle_time blogic_drvr_options 0 49241 NULL
148481 +disable_so_nf_ct_timeout_ext_add_fndecl_49245 nf_ct_timeout_ext_add fndecl 3 49245 NULL
148482 +disable_so_wm8350_rtc_readtime_fndecl_49258 wm8350_rtc_readtime fndecl 0 49258 NULL
148483 +disable_so_wm8753_set_dai_clkdiv_fndecl_49259 wm8753_set_dai_clkdiv fndecl 3 49259 NULL nohasharray
148484 +disable_so_di_gid_xfs_icdinode_49259 di_gid xfs_icdinode 0 49259 &disable_so_wm8753_set_dai_clkdiv_fndecl_49259
148485 +disable_so_acpi_lapic_addr_vardecl_boot_c_49264 acpi_lapic_addr vardecl_boot.c 0 49264 NULL
148486 +disable_so_ifa_tstamp_in_ifaddr_49266 ifa_tstamp in_ifaddr 0 49266 NULL
148487 +disable_so_tboot_addr_boot_params_49267 tboot_addr boot_params 0 49267 NULL
148488 +disable_so_rt5677_dsp_mode_i2c_write_addr_fndecl_49301 rt5677_dsp_mode_i2c_write_addr fndecl 0-2-3-4 49301 NULL
148489 +disable_so_il_vbackporch_v4l2_bt_timings_49302 il_vbackporch v4l2_bt_timings 0 49302 NULL
148490 +disable_so_jiffies_64_to_clock_t_fndecl_49307 jiffies_64_to_clock_t fndecl 0-1 49307 NULL nohasharray
148491 +disable_so_crypto_ahash_extsize_fndecl_49307 crypto_ahash_extsize fndecl 0 49307 &disable_so_jiffies_64_to_clock_t_fndecl_49307
148492 +disable_so_disptime_throtl_grp_49308 disptime throtl_grp 0 49308 NULL
148493 +disable_so_k_fll_div_49317 k fll_div 0 49317 NULL
148494 +disable_so_last_time_bictcp_49322 last_time bictcp 0 49322 NULL
148495 +disable_so_qm1d1c0042_sleep_fndecl_49326 qm1d1c0042_sleep fndecl 0 49326 NULL
148496 +disable_so_crypto_register_aeads_fndecl_49338 crypto_register_aeads fndecl 0 49338 NULL nohasharray
148497 +disable_so_gcm_hash_init_continue_fndecl_49338 gcm_hash_init_continue fndecl 0 49338 &disable_so_crypto_register_aeads_fndecl_49338
148498 +disable_so_rds_ib_laddr_check_fndecl_49343 rds_ib_laddr_check fndecl 0-1 49343 NULL
148499 +disable_so_rv6xx_convert_clock_to_stepping_fndecl_49345 rv6xx_convert_clock_to_stepping fndecl 2-0 49345 NULL
148500 +disable_so_io_addr_uhci_hcd_49351 io_addr uhci_hcd 0 49351 NULL
148501 +disable_so_mcryptd_hash_update_enqueue_fndecl_49367 mcryptd_hash_update_enqueue fndecl 0 49367 NULL
148502 +disable_so_dll_cntl_ci_clock_registers_49369 dll_cntl ci_clock_registers 0 49369 NULL
148503 +disable_so_d_btimer_fs_disk_quota_49376 d_btimer fs_disk_quota 0 49376 NULL nohasharray
148504 +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
148505 +disable_so_s_addr_in_addr_49376 s_addr in_addr 0 49376 &disable_so_uv_nmi_initial_delay_vardecl_uv_nmi_c_49376
148506 +disable_so_addrlow_dma64desc_49384 addrlow dma64desc 0 49384 NULL
148507 +disable_so_tcn_timer_show_fndecl_49401 tcn_timer_show fndecl 0 49401 NULL
148508 +disable_so_query_gid_ib_device_49415 query_gid ib_device 0-2-3 49415 NULL nohasharray
148509 +disable_so_physaddr_qib_devdata_49415 physaddr qib_devdata 0 49415 &disable_so_query_gid_ib_device_49415
148510 +disable_so_descsize_crypto_shash_49421 descsize crypto_shash 0 49421 NULL
148511 +disable_so_gatt_bus_addr_agp_bridge_data_49422 gatt_bus_addr agp_bridge_data 0 49422 NULL
148512 +disable_so_confq_pbl_base_addr_lo_fcoe_kwqe_conn_offload4_49427 confq_pbl_base_addr_lo fcoe_kwqe_conn_offload4 0 49427 NULL
148513 +disable_so_fm_v4l2_vidioc_s_freq_fndecl_49444 fm_v4l2_vidioc_s_freq fndecl 0 49444 NULL
148514 +disable_so_tidvaddr_qib_tid_info_49445 tidvaddr qib_tid_info 0 49445 NULL
148515 +disable_so_hpi_cobranet_get_ip_address_fndecl_49449 hpi_cobranet_get_ip_address fndecl 1 49449 NULL
148516 +disable_so_nla_put_s32_fndecl_49455 nla_put_s32 fndecl 0-3 49455 NULL
148517 +disable_so_saa711x_s_clock_freq_fndecl_49457 saa711x_s_clock_freq fndecl 2 49457 NULL
148518 +disable_so_timestamp_mwl8k_tx_desc_49459 timestamp mwl8k_tx_desc 0 49459 NULL
148519 +disable_so___xfrm6_dpref_spref_hash_fndecl_49463 __xfrm6_dpref_spref_hash fndecl 0 49463 NULL
148520 +disable_so_dn_hash_fndecl_49465 dn_hash fndecl 0-1-2 49465 NULL
148521 +disable_so_x_runtime_sc_49473 x runtime_sc 0 49473 NULL
148522 +disable_so_sgl_pg1_addr_hi_sgl_page_pairs_49474 sgl_pg1_addr_hi sgl_page_pairs 0 49474 NULL
148523 +disable_so_mtime_sec_p9_iattr_dotl_49482 mtime_sec p9_iattr_dotl 0 49482 NULL
148524 +disable_so_mpll_ad_func_cntl_ci_clock_registers_49490 mpll_ad_func_cntl ci_clock_registers 0 49490 NULL nohasharray
148525 +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
148526 +disable_so_i2c_write_le16_fndecl_49491 i2c_write_le16 fndecl 0 49491 NULL nohasharray
148527 +disable_so_svm_compute_tsc_offset_fndecl_49491 svm_compute_tsc_offset fndecl 0-2 49491 &disable_so_i2c_write_le16_fndecl_49491
148528 +disable_so_d_rtbtimer_xfs_disk_dquot_49495 d_rtbtimer xfs_disk_dquot 0 49495 NULL
148529 +disable_so_parport_set_timeout_fndecl_49497 parport_set_timeout fndecl 2-0 49497 NULL
148530 +disable_so_radelay_esp_49498 radelay esp 0 49498 NULL
148531 +disable_so_addr_i2c_board_info_49507 addr i2c_board_info 0 49507 NULL
148532 +disable_so_adma_addr_sdhci_host_49508 adma_addr sdhci_host 0 49508 NULL
148533 +disable_so_rq_addr_t3_rdma_init_wr_49515 rq_addr t3_rdma_init_wr 0 49515 NULL
148534 +disable_so_runtime_remaining_cfs_rq_49516 runtime_remaining cfs_rq 0 49516 NULL
148535 +disable_so_dreq_timestamp_time_dccp_request_sock_49520 dreq_timestamp_time dccp_request_sock 0 49520 NULL
148536 +disable_so_regmap_add_irq_chip_fndecl_49529 regmap_add_irq_chip fndecl 4-0-2-3 49529 NULL
148537 +disable_so_drm_fixp_div_fndecl_49535 drm_fixp_div fndecl 0-1-2 49535 NULL
148538 +disable_so_ar_addr_qla8044_quad_entry_49543 ar_addr qla8044_quad_entry 0 49543 NULL
148539 +disable_so_regcache_lzo_compress_cache_block_fndecl_49544 regcache_lzo_compress_cache_block fndecl 0 49544 NULL
148540 +disable_so___subtree_last_interval_tree_node_49547 __subtree_last interval_tree_node 0 49547 NULL
148541 +disable_so_pll1_feedback_div_ad9523_platform_data_49550 pll1_feedback_div ad9523_platform_data 0 49550 NULL nohasharray
148542 +disable_so_uncore_get_attr_cpumask_fndecl_49550 uncore_get_attr_cpumask fndecl 0 49550 &disable_so_pll1_feedback_div_ad9523_platform_data_49550
148543 +disable_so_read_clocksource_49555 read clocksource 0 49555 NULL
148544 +disable_so_hash_sk_buff_49561 hash sk_buff 0 49561 NULL
148545 +disable_so_I_T_nexus_loss_timeout_sas_end_device_49562 I_T_nexus_loss_timeout sas_end_device 0 49562 NULL nohasharray
148546 +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
148547 +disable_so_alarm_clock_getres_fndecl_49575 alarm_clock_getres fndecl 1 49575 NULL
148548 +disable_so_regcache_lzo_get_blkpos_fndecl_49577 regcache_lzo_get_blkpos fndecl 0-2 49577 NULL
148549 +disable_so_atyfb_get_pixclock_fndecl_49582 atyfb_get_pixclock fndecl 0 49582 NULL
148550 +disable_so_mclkdiv_pll_div_49594 mclkdiv pll_div 0 49594 NULL
148551 +disable_so_frame_phys_addr_megasas_cmd_49601 frame_phys_addr megasas_cmd 0 49601 NULL nohasharray
148552 +disable_so_ccp_sha_digest_fndecl_49601 ccp_sha_digest fndecl 0 49601 &disable_so_frame_phys_addr_megasas_cmd_49601
148553 +disable_so_si476x_core_cmd_am_tune_freq_a10_fndecl_49610 si476x_core_cmd_am_tune_freq_a10 fndecl 0 49610 NULL
148554 +disable_so_sctp_setsockopt_delayed_ack_fndecl_49618 sctp_setsockopt_delayed_ack fndecl 3-0 49618 NULL
148555 +disable_so_gpu_addr_radeon_ring_49632 gpu_addr radeon_ring 0 49632 NULL
148556 +disable_so_uac_clock_selector_get_val_fndecl_49639 uac_clock_selector_get_val fndecl 0-2 49639 NULL nohasharray
148557 +disable_so_osc_clock_freq_drxd_state_49639 osc_clock_freq drxd_state 0 49639 &disable_so_uac_clock_selector_get_val_fndecl_49639
148558 +disable_so_addr_rx_desc_49640 addr rx_desc 0 49640 NULL
148559 +disable_so_r600_engine_clock_entry_set_reference_divider_fndecl_49644 r600_engine_clock_entry_set_reference_divider fndecl 3 49644 NULL
148560 +disable_so_set_fan_div_fndecl_49645 set_fan_div fndecl 0-4 49645 NULL nohasharray
148561 +disable_so_intermediate_freq_drx_common_attr_49645 intermediate_freq drx_common_attr 0 49645 &disable_so_set_fan_div_fndecl_49645
148562 +disable_so_wr32_nvkm_ofuncs_49648 wr32 nvkm_ofuncs 2-3 49648 NULL
148563 +disable_so__rtl8821ae_phy_calculate_bit_shift_fndecl_49649 _rtl8821ae_phy_calculate_bit_shift fndecl 0-1 49649 NULL
148564 +disable_so_cpufreq_governor_start_fndecl_49658 cpufreq_governor_start fndecl 0 49658 NULL
148565 +disable_so_mcgstatus_mce_49682 mcgstatus mce 0 49682 NULL
148566 +disable_so_bitmap_size_f2fs_nm_info_49684 bitmap_size f2fs_nm_info 0 49684 NULL
148567 +disable_so_SYSC_setgid_fndecl_49688 SYSC_setgid fndecl 0 49688 NULL
148568 +disable_so_dx_tss_segment_16_49692 dx tss_segment_16 0 49692 NULL
148569 +disable_so_tg3_test_interrupt_fndecl_49694 tg3_test_interrupt fndecl 0 49694 NULL
148570 +disable_so_rv6xx_compute_count_for_delay_fndecl_49697 rv6xx_compute_count_for_delay fndecl 0-2-3 49697 NULL
148571 +disable_so_read_time_mei_cl_cb_49706 read_time mei_cl_cb 0 49706 NULL
148572 +disable_so_addrconf_forward_change_fndecl_49711 addrconf_forward_change fndecl 2 49711 NULL
148573 +disable_so_cx24113_writereg_fndecl_49714 cx24113_writereg fndecl 0-3 49714 NULL
148574 +disable_so_demod_address_tda1004x_config_49721 demod_address tda1004x_config 0 49721 NULL
148575 +disable_so_device_timestamp_ieee80211_channel_switch_49722 device_timestamp ieee80211_channel_switch 0 49722 NULL
148576 +disable_so_gid_fileEntry_49725 gid fileEntry 0 49725 NULL
148577 +disable_so_dma_addr_clx2_queue_49729 dma_addr clx2_queue 0 49729 NULL
148578 +disable_so_extsize_crypto_type_49730 extsize crypto_type 0 49730 NULL
148579 +disable_so_k__fll_div_49732 k _fll_div 0 49732 NULL
148580 +disable_so_sumo_set_ss_dividers_fndecl_49747 sumo_set_ss_dividers fndecl 2-3 49747 NULL
148581 +disable_so_i2c_clock_i2c_algo_pca_data_49751 i2c_clock i2c_algo_pca_data 0 49751 NULL nohasharray
148582 +disable_so_skb_get_hash_perturb_fndecl_49751 skb_get_hash_perturb fndecl 0 49751 &disable_so_i2c_clock_i2c_algo_pca_data_49751
148583 +disable_so_expire_llc_timer_49752 expire llc_timer 0 49752 NULL
148584 +disable_so_rdma_copy_addr_fndecl_49754 rdma_copy_addr fndecl 0 49754 NULL
148585 +disable_so_hblank___fb_timings_49755 hblank __fb_timings 0 49755 NULL
148586 +disable_so_stripe_count_nfs4_file_layout_dsaddr_49758 stripe_count nfs4_file_layout_dsaddr 0 49758 NULL
148587 +disable_so_inet_rtm_newaddr_fndecl_49766 inet_rtm_newaddr fndecl 0 49766 NULL nohasharray
148588 +disable_so_generic_handle_irq_fndecl_49766 generic_handle_irq fndecl 1 49766 &disable_so_inet_rtm_newaddr_fndecl_49766
148589 +disable_so_parport_ieee1284_ecp_write_addr_fndecl_49769 parport_ieee1284_ecp_write_addr fndecl 0 49769 NULL
148590 +disable_so_dl_runtime_sched_dl_entity_49775 dl_runtime sched_dl_entity 0 49775 NULL
148591 +disable_so_cur_saddr_pktgen_dev_49776 cur_saddr pktgen_dev 0 49776 NULL
148592 +disable_so_nf_ct_expect_dst_hash_fndecl_49778 nf_ct_expect_dst_hash fndecl 0 49778 NULL
148593 +disable_so_compat_sys_times_fndecl_49783 compat_sys_times fndecl 0 49783 NULL nohasharray
148594 +disable_so___bitmap_shift_left_fndecl_49783 __bitmap_shift_left fndecl 3-4 49783 &disable_so_compat_sys_times_fndecl_49783
148595 +disable_so_sq_addr_high_nes_qp_context_49784 sq_addr_high nes_qp_context 0 49784 NULL
148596 +disable_so_phy_address_ethtool_cmd_49790 phy_address ethtool_cmd 0 49790 NULL
148597 +disable_so_intr_timer_type_vnic_enet_config_49793 intr_timer_type vnic_enet_config 0 49793 NULL
148598 +disable_so_end_time_bfa_diag_dport_result_s_49798 end_time bfa_diag_dport_result_s 0 49798 NULL
148599 +disable_so_prot_addr_saa7146_video_dma_49808 prot_addr saa7146_video_dma 0 49808 NULL
148600 +disable_so_p2m_timeout_show_fndecl_49814 p2m_timeout_show fndecl 0 49814 NULL
148601 +disable_so_pr_uid_compat_elf_prpsinfo_49815 pr_uid compat_elf_prpsinfo 0 49815 NULL
148602 +disable_so_pch_udc_disable_ep_interrupts_fndecl_49816 pch_udc_disable_ep_interrupts fndecl 2 49816 NULL
148603 +disable_so_bd_list_addr_lo_bnx2i_login_request_49817 bd_list_addr_lo bnx2i_login_request 0 49817 NULL
148604 +disable_so_nsec_pvclock_wall_clock_49833 nsec pvclock_wall_clock 0 49833 NULL
148605 +disable_so_bss_lose_timeout_conf_conn_settings_49850 bss_lose_timeout conf_conn_settings 0 49850 NULL
148606 +disable_so_snd_opl3_timer1_init_fndecl_49852 snd_opl3_timer1_init fndecl 0-2 49852 NULL
148607 +disable_so_data_crb_addr_pair_49859 data crb_addr_pair 0 49859 NULL
148608 +disable_so_txeol_interrupt_mask_ath_hw_49864 txeol_interrupt_mask ath_hw 0 49864 NULL
148609 +disable_so_ctrl_freq_set_fndecl_49865 ctrl_freq_set fndecl 3 49865 NULL
148610 +disable_so_freq_pda_iq_autocal_entry_49869 freq pda_iq_autocal_entry 0 49869 NULL
148611 +disable_so_kempld_wdt_set_timeout_fndecl_49893 kempld_wdt_set_timeout fndecl 2 49893 NULL
148612 +disable_so_nilfs_btree_node_set_ptr_fndecl_49897 nilfs_btree_node_set_ptr fndecl 2-3 49897 NULL
148613 +disable_so_time_to_val_fndecl_49902 time_to_val fndecl 0-4-2-3 49902 NULL
148614 +disable_so_capture_timestamp_qla27xx_fwdt_template_49904 capture_timestamp qla27xx_fwdt_template 0 49904 NULL nohasharray
148615 +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
148616 +disable_so_set_spdif_clock_snd_ice1712_49905 set_spdif_clock snd_ice1712 2 49905 NULL
148617 +disable_so_nmi_evntsel_msr_to_bit_fndecl_49906 nmi_evntsel_msr_to_bit fndecl 0-1 49906 NULL
148618 +disable_so_get_ipv6_addr_fndecl_49909 get_ipv6_addr fndecl 2 49909 NULL
148619 +disable_so_bitstream_cursor_advance_fndecl_49911 bitstream_cursor_advance fndecl 2 49911 NULL
148620 +disable_so_trap_addr_sdpcm_shared_49924 trap_addr sdpcm_shared 0 49924 NULL
148621 +disable_so_show_port_gid_fndecl_49927 show_port_gid fndecl 0 49927 NULL
148622 +disable_so_ib_sa_guid_info_rec_query_fndecl_49928 ib_sa_guid_info_rec_query fndecl 0-3-5-7-8 49928 NULL
148623 +disable_so_mtrr_type_lookup_fndecl_49929 mtrr_type_lookup fndecl 1-2 49929 NULL
148624 +disable_so_persistent_offset_sst_module_runtime_49933 persistent_offset sst_module_runtime 0 49933 NULL
148625 +disable_so_lvb_ictime_packed_ocfs2_meta_lvb_49940 lvb_ictime_packed ocfs2_meta_lvb 0 49940 NULL
148626 +disable_so_boost_freq_lm3533_platform_data_49943 boost_freq lm3533_platform_data 0 49943 NULL
148627 +disable_so_inet_twsk_schedule_fndecl_49946 inet_twsk_schedule fndecl 2 49946 NULL
148628 +disable_so_host_time_adj_time_work_49952 host_time adj_time_work 0 49952 NULL
148629 +disable_so_b43_dma_address_fndecl_49953 b43_dma_address fndecl 0-2 49953 NULL
148630 +disable_so_max_delay_iwl_time_event_cmd_49957 max_delay iwl_time_event_cmd 0 49957 NULL
148631 +disable_so_shash_final_unaligned_fndecl_49961 shash_final_unaligned fndecl 0 49961 NULL
148632 +disable_so_mpll_func_cntl_si_clock_registers_49965 mpll_func_cntl si_clock_registers 0 49965 NULL
148633 +disable_so_nfsd4_write_time_fndecl_49969 nfsd4_write_time fndecl 0 49969 NULL
148634 +disable_so_ds1374_set_time_fndecl_49975 ds1374_set_time fndecl 0 49975 NULL
148635 +disable_so_batadv_hash_new_fndecl_49976 batadv_hash_new fndecl 1 49976 NULL
148636 +disable_so_timeout_i2c_adapter_49981 timeout i2c_adapter 0 49981 NULL nohasharray
148637 +disable_so_delay_radeon_voltage_49981 delay radeon_voltage 0 49981 &disable_so_timeout_i2c_adapter_49981 nohasharray
148638 +disable_so___cpufreq_stats_create_table_fndecl_49981 __cpufreq_stats_create_table fndecl 0 49981 &disable_so_delay_radeon_voltage_49981
148639 +disable_so_op_x86_virt_to_phys_fndecl_49986 op_x86_virt_to_phys fndecl 0-1 49986 NULL nohasharray
148640 +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
148641 +disable_so_dib7000p_get_internal_freq_fndecl_49987 dib7000p_get_internal_freq fndecl 0 49987 NULL nohasharray
148642 +disable_so_msr_daio_desc_49987 msr daio_desc 0 49987 &disable_so_dib7000p_get_internal_freq_fndecl_49987
148643 +disable_so_RF_SYN_reserved_addr28_chan_info_nphy_radio205x_49990 RF_SYN_reserved_addr28 chan_info_nphy_radio205x 0 49990 NULL
148644 +disable_so_timer_vardecl_iphase_c_49991 timer vardecl_iphase.c 0 49991 NULL
148645 +disable_so_typhoon_sleep_fndecl_49999 typhoon_sleep fndecl 0-2 49999 NULL
148646 +disable_so_confq_first_pbe_addr_lo_fcoe_kwqe_conn_offload3_50012 confq_first_pbe_addr_lo fcoe_kwqe_conn_offload3 0 50012 NULL
148647 +disable_so__rtl92d_phy_calculate_bit_shift_fndecl_50016 _rtl92d_phy_calculate_bit_shift fndecl 0-1 50016 NULL
148648 +disable_so_ds1307_set_time_fndecl_50017 ds1307_set_time fndecl 0 50017 NULL
148649 +disable_so_dma_addr__DMABUFFERENTRY_50032 dma_addr _DMABUFFERENTRY 0 50032 NULL
148650 +disable_so_payload_addr_isp1760_qtd_50045 payload_addr isp1760_qtd 0 50045 NULL
148651 +disable_so_crypto_pcbc_encrypt_fndecl_50054 crypto_pcbc_encrypt fndecl 0-4 50054 NULL
148652 +disable_so_tcp_shift_skb_data_fndecl_50056 tcp_shift_skb_data fndecl 5-4 50056 NULL
148653 +disable_so_reference_div_radeon_pll_50062 reference_div radeon_pll 0 50062 NULL
148654 +disable_so_io_addr_blogic_adapter_50066 io_addr blogic_adapter 0 50066 NULL
148655 +disable_so_bfs_paprd_timestamp_ath_buf_state_50090 bfs_paprd_timestamp ath_buf_state 0 50090 NULL
148656 +disable_so_address_bau_msg_payload_50110 address bau_msg_payload 0 50110 NULL
148657 +disable_so_scsi_reset_delay_adveep_3550_config_50118 scsi_reset_delay adveep_3550_config 0 50118 NULL
148658 +disable_so_start_bit_alps_bitmap_point_50119 start_bit alps_bitmap_point 0 50119 NULL
148659 +disable_so_i_atime_ext2_inode_50120 i_atime ext2_inode 0 50120 NULL nohasharray
148660 +disable_so_link_down_time_swStat_50120 link_down_time swStat 0 50120 &disable_so_i_atime_ext2_inode_50120
148661 +disable_so_sys_timerfd_settime_fndecl_50127 sys_timerfd_settime fndecl 1 50127 NULL nohasharray
148662 +disable_so_t1timer_lapb_parms_struct_50127 t1timer lapb_parms_struct 0 50127 &disable_so_sys_timerfd_settime_fndecl_50127
148663 +disable_so_lp8755_buck_enable_time_fndecl_50128 lp8755_buck_enable_time fndecl 0 50128 NULL
148664 +disable_so_hash_v4_fndecl_50129 hash_v4 fndecl 0 50129 NULL
148665 +disable_so_btree_lookup128_fndecl_50132 btree_lookup128 fndecl 3 50132 NULL
148666 +disable_so_data_msr_data_50133 data msr_data 0 50133 NULL
148667 +disable_so_max_freq_ufs_clk_info_50134 max_freq ufs_clk_info 0 50134 NULL
148668 +disable_so_carl9170_debugfs_tx_ampdu_scheduler_read_fndecl_50136 carl9170_debugfs_tx_ampdu_scheduler_read fndecl 3 50136 NULL nohasharray
148669 +disable_so_write32_tg3_50136 write32 tg3 3 50136 &disable_so_carl9170_debugfs_tx_ampdu_scheduler_read_fndecl_50136
148670 +disable_so_vm_addr_fndecl_50143 vm_addr fndecl 0-2-3-4 50143 NULL
148671 +disable_so_mmc_sd_runtime_suspend_fndecl_50164 mmc_sd_runtime_suspend fndecl 0 50164 NULL
148672 +disable_so_msr_pcap_chip_50171 msr pcap_chip 0 50171 NULL
148673 +disable_so_ptp_clock_index_fndecl_50179 ptp_clock_index fndecl 0 50179 NULL nohasharray
148674 +disable_so_str2hashbuf_signed_fndecl_50179 str2hashbuf_signed fndecl 2 50179 &disable_so_ptp_clock_index_fndecl_50179
148675 +disable_so_dapm_clock_event_fndecl_50184 dapm_clock_event fndecl 0 50184 NULL nohasharray
148676 +disable_so_skcipher_null_givdecrypt_fndecl_50184 skcipher_null_givdecrypt fndecl 0 50184 &disable_so_dapm_clock_event_fndecl_50184
148677 +disable_so_nlm_timeout_vardecl_svc_c_50197 nlm_timeout vardecl_svc.c 0 50197 NULL
148678 +disable_so_st_mtime_nsec_stat_50200 st_mtime_nsec stat 0 50200 NULL
148679 +disable_so_haddr_tpd_haddr_50202 haddr tpd_haddr 0 50202 NULL
148680 +disable_so_cx24116_sleep_fndecl_50204 cx24116_sleep fndecl 0 50204 NULL
148681 +disable_so_printframe_fndecl_50210 printframe fndecl 3 50210 NULL nohasharray
148682 +disable_so_pch_udc_write_device_interrupts_fndecl_50210 pch_udc_write_device_interrupts fndecl 2 50210 &disable_so_printframe_fndecl_50210
148683 +disable_so_measure_12bit_voltage_fndecl_50211 measure_12bit_voltage fndecl 0-2 50211 NULL
148684 +disable_so_mcheck_init_device_fndecl_50223 mcheck_init_device fndecl 0 50223 NULL
148685 +disable_so_igb_init_rx_addrs_fndecl_50228 igb_init_rx_addrs fndecl 2 50228 NULL
148686 +disable_so_s11_img_ir_timing_regvals_50232 s11 img_ir_timing_regvals 0 50232 NULL
148687 +disable_so_paddr_mwifiex_pcie_buf_desc_50236 paddr mwifiex_pcie_buf_desc 0 50236 NULL
148688 +disable_so_rdma_resolve_addr_fndecl_50240 rdma_resolve_addr fndecl 0 50240 NULL
148689 +disable_so_mlx4_ib_notify_slaves_on_guid_change_fndecl_50248 mlx4_ib_notify_slaves_on_guid_change fndecl 2-3 50248 NULL
148690 +disable_so_si476x_core_cmd_am_tune_freq_a20_fndecl_50250 si476x_core_cmd_am_tune_freq_a20 fndecl 0 50250 NULL
148691 +disable_so_addr_lo_dma_address_50252 addr_lo dma_address 0 50252 NULL
148692 +disable_so_scsi_runtime_resume_fndecl_50254 scsi_runtime_resume fndecl 0 50254 NULL
148693 +disable_so_pkt_rbtree_find_fndecl_50259 pkt_rbtree_find fndecl 2 50259 NULL
148694 +disable_so_p_div_aic31xx_priv_50261 p_div aic31xx_priv 0 50261 NULL
148695 +disable_so_da9052_rtc_set_time_fndecl_50269 da9052_rtc_set_time fndecl 0 50269 NULL
148696 +disable_so_read_addr_qla4_83xx_minidump_entry_rdmem_pex_dma_50271 read_addr qla4_83xx_minidump_entry_rdmem_pex_dma 0 50271 NULL
148697 +disable_so_timeout_jiffies_qib_qp_50276 timeout_jiffies qib_qp 0 50276 NULL
148698 +disable_so_tmr_restart_sound_lowlev_timer_50278 tmr_restart sound_lowlev_timer 1 50278 NULL
148699 +disable_so_irq_domain_free_irqs_common_fndecl_50279 irq_domain_free_irqs_common fndecl 2-3 50279 NULL nohasharray
148700 +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
148701 +disable_so_eop_ring_buffer_address_queue_properties_50280 eop_ring_buffer_address queue_properties 0 50280 NULL
148702 +disable_so_bna_rx_coalescing_timeo_set_fndecl_50282 bna_rx_coalescing_timeo_set fndecl 2 50282 NULL
148703 +disable_so_shash_compat_update_fndecl_50285 shash_compat_update fndecl 0-3 50285 NULL
148704 +disable_so_get_physaddr_buffered_ioctl_fndecl_50286 get_physaddr_buffered_ioctl fndecl 0 50286 NULL
148705 +disable_so_snd_hrtimer_init_fndecl_50291 snd_hrtimer_init fndecl 0 50291 NULL
148706 +disable_so_cpuidle_add_state_sysfs_fndecl_50292 cpuidle_add_state_sysfs fndecl 0 50292 NULL
148707 +disable_so_bitmap_set_bits_fndecl_50299 bitmap_set_bits fndecl 3-4 50299 NULL
148708 +disable_so_cur_sge_off_fcoe_mul_sges_ctx_50300 cur_sge_off fcoe_mul_sges_ctx 0 50300 NULL
148709 +disable_so_mpll_func_cntl_1_si_clock_registers_50301 mpll_func_cntl_1 si_clock_registers 0 50301 NULL
148710 +disable_so_genwqe_debugfs_curr_dbg_uid0_open_fndecl_50304 genwqe_debugfs_curr_dbg_uid0_open fndecl 0 50304 NULL
148711 +disable_so_tx_interframe_timeout_wil6210_priv_50305 tx_interframe_timeout wil6210_priv 0 50305 NULL
148712 +disable_so_pending_csums_btrfs_delayed_ref_root_50311 pending_csums btrfs_delayed_ref_root 0 50311 NULL
148713 +disable_so_addr_count_blogic_adapter_50326 addr_count blogic_adapter 0 50326 NULL
148714 +disable_so_cpufreq_out_of_sync_fndecl_50327 cpufreq_out_of_sync fndecl 2 50327 NULL nohasharray
148715 +disable_so_typ_timing_entry_50327 typ timing_entry 0 50327 &disable_so_cpufreq_out_of_sync_fndecl_50327
148716 +disable_so_used_skcipher_ctx_50342 used skcipher_ctx 0 50342 NULL
148717 +disable_so_iscsit_create_random_array_fndecl_50360 iscsit_create_random_array fndecl 2 50360 NULL
148718 +disable_so_current_frequency_s5h1409_state_50366 current_frequency s5h1409_state 0 50366 NULL
148719 +disable_so_cb_camif_addr_50371 cb camif_addr 0 50371 NULL
148720 +disable_so_prepare_kswapd_sleep_fndecl_50377 prepare_kswapd_sleep fndecl 2-3 50377 NULL
148721 +disable_so___tcf_hash_release_fndecl_50380 __tcf_hash_release fndecl 0 50380 NULL
148722 +disable_so_ntfs_bitmap_clear_bit_fndecl_50382 ntfs_bitmap_clear_bit fndecl 2 50382 NULL
148723 +disable_so_tg3_ptp_adjtime_fndecl_50384 tg3_ptp_adjtime fndecl 2 50384 NULL
148724 +disable_so_xfs_btree_copy_recs_fndecl_50385 xfs_btree_copy_recs fndecl 4 50385 NULL
148725 +disable_so___cpufreq_get_fndecl_50397 __cpufreq_get fndecl 0 50397 NULL
148726 +disable_so_rtl821x_ack_interrupt_fndecl_50399 rtl821x_ack_interrupt fndecl 0 50399 NULL
148727 +disable_so_ss_divider_index_sumo_pl_50401 ss_divider_index sumo_pl 0 50401 NULL
148728 +disable_so_igb_runtime_suspend_fndecl_50408 igb_runtime_suspend fndecl 0 50408 NULL nohasharray
148729 +disable_so_hash_ipmark4_expire_fndecl_50408 hash_ipmark4_expire fndecl 4 50408 &disable_so_igb_runtime_suspend_fndecl_50408
148730 +disable_so_addr_TxDesc_50413 addr TxDesc 0 50413 NULL
148731 +disable_so_xfs_btree_dup_cursor_fndecl_50417 xfs_btree_dup_cursor fndecl 0 50417 NULL
148732 +disable_so_channel2freq_bg_fndecl_50421 channel2freq_bg fndecl 0-1 50421 NULL
148733 +disable_so_freq_lo_jiffies_od_cpu_dbs_info_s_50424 freq_lo_jiffies od_cpu_dbs_info_s 0 50424 NULL
148734 +disable_so_time_cifsInodeInfo_50431 time cifsInodeInfo 0 50431 NULL
148735 +disable_so_tps65910_rtc_read_time_fndecl_50446 tps65910_rtc_read_time fndecl 0 50446 NULL
148736 +disable_so_freq_wmi_p2p_rx_probe_req_event_50455 freq wmi_p2p_rx_probe_req_event 0 50455 NULL
148737 +disable_so_ifa_cstamp_in_ifaddr_50464 ifa_cstamp in_ifaddr 0 50464 NULL
148738 +disable_so_reg_ds1685_rtc_time_regs_50466 reg ds1685_rtc_time_regs 0 50466 NULL
148739 +disable_so_n_freq_tbl_50468 n freq_tbl 0 50468 NULL
148740 +disable_so_hash_code_f2fs_dir_entry_50474 hash_code f2fs_dir_entry 0 50474 NULL
148741 +disable_so_link_check_timeout_i40e_pf_50476 link_check_timeout i40e_pf 0 50476 NULL
148742 +disable_so_addr_lo_eth_rx_cqe_next_page_50479 addr_lo eth_rx_cqe_next_page 0 50479 NULL
148743 +disable_so_sr_timestamp_nfs4_sequence_res_50481 sr_timestamp nfs4_sequence_res 0 50481 NULL nohasharray
148744 +disable_so_cpumask_parse_fndecl_50481 cpumask_parse fndecl 0 50481 &disable_so_sr_timestamp_nfs4_sequence_res_50481
148745 +disable_so_set_pte_vaddr_pud_fndecl_50497 set_pte_vaddr_pud fndecl 2 50497 NULL
148746 +disable_so_pa_rxrf_lna1_freq_tune_chan_info_2064_lcnphy_50502 pa_rxrf_lna1_freq_tune chan_info_2064_lcnphy 0 50502 NULL
148747 +disable_so_uv_global_gru_mmr_address_fndecl_50507 uv_global_gru_mmr_address fndecl 0-1-2 50507 NULL
148748 +disable_so_address_desc_ptr_50509 address desc_ptr 0 50509 NULL
148749 +disable_so_crypto_aead_alg_maxauthsize_fndecl_50510 crypto_aead_alg_maxauthsize fndecl 0 50510 NULL
148750 +disable_so_pci_get_interrupt_pin_fndecl_50512 pci_get_interrupt_pin fndecl 0 50512 NULL
148751 +disable_so_addr_assign_type_show_fndecl_50513 addr_assign_type_show fndecl 0 50513 NULL
148752 +disable_so_frequency_si4713_device_50518 frequency si4713_device 0 50518 NULL
148753 +disable_so__iommu_cpumask_show_fndecl_50522 _iommu_cpumask_show fndecl 0 50522 NULL
148754 +disable_so_mma9551_runtime_resume_fndecl_50531 mma9551_runtime_resume fndecl 0 50531 NULL
148755 +disable_so_mvs_set_sas_addr_fndecl_50535 mvs_set_sas_addr fndecl 2-5 50535 NULL
148756 +disable_so_rv3029c2_rtc_set_time_fndecl_50537 rv3029c2_rtc_set_time fndecl 0 50537 NULL nohasharray
148757 +disable_so__zd_iowrite32v_async_locked_fndecl_50537 _zd_iowrite32v_async_locked fndecl 3-0 50537 &disable_so_rv3029c2_rtc_set_time_fndecl_50537
148758 +disable_so_demod_addr_m88rs2000_config_50543 demod_addr m88rs2000_config 0 50543 NULL
148759 +disable_so_mv88e6xxx_set_addr_indirect_fndecl_50547 mv88e6xxx_set_addr_indirect fndecl 0 50547 NULL nohasharray
148760 +disable_so_bind_evtchn_to_irqhandler_fndecl_50547 bind_evtchn_to_irqhandler fndecl 0-1 50547 &disable_so_mv88e6xxx_set_addr_indirect_fndecl_50547
148761 +disable_so_twl6030_interrupt_unmask_fndecl_50550 twl6030_interrupt_unmask fndecl 2-0 50550 NULL
148762 +disable_so_recovery_pio_clocks_50551 recovery pio_clocks 0 50551 NULL
148763 +disable_so_lp8788_rtc_read_time_fndecl_50573 lp8788_rtc_read_time fndecl 0 50573 NULL nohasharray
148764 +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
148765 +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
148766 +disable_so_beacon_timeout_ieee80211_if_managed_50580 beacon_timeout ieee80211_if_managed 0 50580 NULL
148767 +disable_so_mag3110_get_samp_freq_index_fndecl_50581 mag3110_get_samp_freq_index fndecl 0 50581 NULL
148768 +disable_so_sock_get_timestamp_fndecl_50582 sock_get_timestamp fndecl 0 50582 NULL
148769 +disable_so_addr_low_lancer_cmd_req_read_object_50585 addr_low lancer_cmd_req_read_object 0 50585 NULL
148770 +disable_so_regcache_lzo_write_fndecl_50595 regcache_lzo_write fndecl 0-2-3 50595 NULL
148771 +disable_so_enable_time_regulator_desc_50604 enable_time regulator_desc 0 50604 NULL
148772 +disable_so___cpufreq_driver_target_fndecl_50610 __cpufreq_driver_target fndecl 2 50610 NULL
148773 +disable_so_mt_ctxbitmap_gru_mm_tracker_50612 mt_ctxbitmap gru_mm_tracker 0 50612 NULL
148774 +disable_so_compat_sys_futimesat_fndecl_50617 compat_sys_futimesat fndecl 1-0 50617 NULL
148775 +disable_so_bind_timeout_rpc_xprt_50622 bind_timeout rpc_xprt 0 50622 NULL
148776 +disable_so_wait_conversion_complete_interrupt_fndecl_50628 wait_conversion_complete_interrupt fndecl 0 50628 NULL
148777 +disable_so_minimum_acpi_address64_attribute_50631 minimum acpi_address64_attribute 0 50631 NULL
148778 +disable_so_radix_tree_delete_fndecl_50632 radix_tree_delete fndecl 2 50632 NULL
148779 +disable_so_snd_timer_user_stop_fndecl_50656 snd_timer_user_stop fndecl 0 50656 NULL
148780 +disable_so_m_hi_cfg_timing_div_drxk_state_50665 m_hi_cfg_timing_div drxk_state 0 50665 NULL
148781 +disable_so_r_timeout_ceph_mds_request_50669 r_timeout ceph_mds_request 0 50669 NULL
148782 +disable_so_snd_timer_continue_fndecl_50670 snd_timer_continue fndecl 0 50670 NULL
148783 +disable_so_dwc3_ep0_set_isoch_delay_fndecl_50672 dwc3_ep0_set_isoch_delay fndecl 0 50672 NULL
148784 +disable_so_btree_submit_bio_hook_fndecl_50677 btree_submit_bio_hook fndecl 0-2-6 50677 NULL
148785 +disable_so_start_pid_hrtimer_50687 start_pid hrtimer 0 50687 NULL
148786 +disable_so_deliver_posted_interrupt_kvm_x86_ops_50698 deliver_posted_interrupt kvm_x86_ops 2 50698 NULL
148787 +disable_so_pwm_divisor_max8997_haptic_50704 pwm_divisor max8997_haptic 0 50704 NULL
148788 +disable_so_dma_addr_iwl_queue_50725 dma_addr iwl_queue 0 50725 NULL
148789 +disable_so_di_uid_qnx4_inode_entry_50728 di_uid qnx4_inode_entry 0 50728 NULL
148790 +disable_so_nfs_idmap_cache_timeout_vardecl_50733 nfs_idmap_cache_timeout vardecl 0 50733 NULL
148791 +disable_so_carl9170_set_beacon_timers_fndecl_50741 carl9170_set_beacon_timers fndecl 0 50741 NULL
148792 +disable_so_msg_addr_hi_vf_pf_event_data_50756 msg_addr_hi vf_pf_event_data 0 50756 NULL
148793 +disable_so_jiffies_vid_cap_vivid_dev_50760 jiffies_vid_cap vivid_dev 0 50760 NULL
148794 +disable_so_addr_amdgpu_dummy_page_50765 addr amdgpu_dummy_page 0 50765 NULL
148795 +disable_so_img_i2c_raw_atomic_delay_handler_fndecl_50779 img_i2c_raw_atomic_delay_handler fndecl 0 50779 NULL
148796 +disable_so_dst_addr_filter_ipv4_5tuple_50793 dst_addr filter_ipv4_5tuple 0 50793 NULL
148797 +disable_so_remote_ca_guid_ib_cm_rep_event_param_50795 remote_ca_guid ib_cm_rep_event_param 0 50795 NULL nohasharray
148798 +disable_so_ioaddr_physical_voice_info_50795 ioaddr physical_voice_info 0 50795 &disable_so_remote_ca_guid_ib_cm_rep_event_param_50795
148799 +disable_so_xfs_btree_log_recs_fndecl_50800 xfs_btree_log_recs fndecl 3-4 50800 NULL
148800 +disable_so_iwl_sta_modify_sleep_tx_count_fndecl_50811 iwl_sta_modify_sleep_tx_count fndecl 2 50811 NULL nohasharray
148801 +disable_so_ldt_tss_segment_16_50811 ldt tss_segment_16 0 50811 &disable_so_iwl_sta_modify_sleep_tx_count_fndecl_50811
148802 +disable_so_adxl34x_autosleep_store_fndecl_50816 adxl34x_autosleep_store fndecl 0-4 50816 NULL
148803 +disable_so_io_schedule_timeout_fndecl_50822 io_schedule_timeout fndecl 1-0 50822 NULL
148804 +disable_so_addr_pm8001_prd_50827 addr pm8001_prd 0 50827 NULL
148805 +disable_so_hfsplus_btree_write_fndecl_50829 hfsplus_btree_write fndecl 0 50829 NULL
148806 +disable_so_jfs_strfromUCS_le_fndecl_50830 jfs_strfromUCS_le fndecl 0-3 50830 NULL
148807 +disable_so_dmaaddr_b43_dmadesc_meta_50842 dmaaddr b43_dmadesc_meta 0 50842 NULL
148808 +disable_so_eh_timeout_scsi_device_50843 eh_timeout scsi_device 0 50843 NULL
148809 +disable_so_max_buffer_time_batadv_priv_nc_50848 max_buffer_time batadv_priv_nc 0 50848 NULL
148810 +disable_so_mask_timecounter_50851 mask timecounter 0 50851 NULL
148811 +disable_so_i2c_addr_cx24113_config_50855 i2c_addr cx24113_config 0 50855 NULL
148812 +disable_so_clock_khz_ocores_i2c_platform_data_50856 clock_khz ocores_i2c_platform_data 0 50856 NULL nohasharray
148813 +disable_so_i2c_addr_i2c_device_addr_50856 i2c_addr i2c_device_addr 0 50856 &disable_so_clock_khz_ocores_i2c_platform_data_50856
148814 +disable_so_lp_rx_timeout_intel_dsi_50859 lp_rx_timeout intel_dsi 0 50859 NULL nohasharray
148815 +disable_so_crypto_authenc_givencrypt_done_fndecl_50859 crypto_authenc_givencrypt_done fndecl 2 50859 &disable_so_lp_rx_timeout_intel_dsi_50859
148816 +disable_so_origninator_host_cmd_ds_11n_batimeout_50866 origninator host_cmd_ds_11n_batimeout 0 50866 NULL
148817 +disable_so_ip_vs_conn_hashkey_fndecl_50872 ip_vs_conn_hashkey fndecl 0-2-3 50872 NULL
148818 +disable_so_twa_aen_sync_time_fndecl_50875 twa_aen_sync_time fndecl 2 50875 NULL
148819 +disable_so_cachedaddr_irda_sock_50876 cachedaddr irda_sock 0 50876 NULL
148820 +disable_so_carl9170_find_freq_idx_fndecl_50881 carl9170_find_freq_idx fndecl 3 50881 NULL
148821 +disable_so___next_timer_interrupt_fndecl_50887 __next_timer_interrupt fndecl 0 50887 NULL
148822 +disable_so_reg_addr_reg_val_50891 reg_addr reg_val 0 50891 NULL
148823 +disable_so_dma_ring_addr_i40e_virtchnl_txq_info_50900 dma_ring_addr i40e_virtchnl_txq_info 0 50900 NULL
148824 +disable_so_interval_tree_subtree_search_fndecl_50901 interval_tree_subtree_search fndecl 2-3 50901 NULL
148825 +disable_so_xfs_btree_log_ptrs_fndecl_50906 xfs_btree_log_ptrs fndecl 3-4 50906 NULL
148826 +disable_so_dib8000_get_time_us_fndecl_50908 dib8000_get_time_us fndecl 0 50908 NULL
148827 +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
148828 +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
148829 +disable_so_v_radeon_vce_clock_voltage_dependency_entry_50914 v radeon_vce_clock_voltage_dependency_entry 0 50914 NULL
148830 +disable_so_authenc_verify_ahash_update_done_fndecl_50918 authenc_verify_ahash_update_done fndecl 2 50918 NULL
148831 +disable_so___get_order_fndecl_50924 __get_order fndecl 0-1 50924 NULL
148832 +disable_so_ahash_complete_fndecl_50926 ahash_complete fndecl 2 50926 NULL
148833 +disable_so_aes_encrypt_interrupt_read_fndecl_50940 aes_encrypt_interrupt_read fndecl 3-0 50940 NULL
148834 +disable_so_m_freq_tbl_50942 m freq_tbl 0 50942 NULL
148835 +disable_so_faddr_ptd_50953 faddr ptd 0 50953 NULL
148836 +disable_so_ceph_mdsmap_get_addr_fndecl_50967 ceph_mdsmap_get_addr fndecl 2 50967 NULL
148837 +disable_so_cma_bitmap_aligned_mask_fndecl_50977 cma_bitmap_aligned_mask fndecl 0-2 50977 NULL
148838 +disable_so_iscsi_tpg_attrib_show_login_timeout_fndecl_50979 iscsi_tpg_attrib_show_login_timeout fndecl 0 50979 NULL
148839 +disable_so_send_set_imon_clock_fndecl_50982 send_set_imon_clock fndecl 0 50982 NULL
148840 +disable_so_inet_saddr_inet_sock_50990 inet_saddr inet_sock 0 50990 NULL
148841 +disable_so_qlcnic_get_mac_address_fndecl_50991 qlcnic_get_mac_address fndecl 3 50991 NULL
148842 +disable_so_afs_get_MAC_address_fndecl_50999 afs_get_MAC_address fndecl 0 50999 NULL
148843 +disable_so_timestamp_batadv_frag_table_entry_51002 timestamp batadv_frag_table_entry 0 51002 NULL nohasharray
148844 +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
148845 +disable_so_phy_addr_tg3_51010 phy_addr tg3 0 51010 NULL
148846 +disable_so_vmx_set_tss_addr_fndecl_51020 vmx_set_tss_addr fndecl 0-2 51020 NULL
148847 +disable_so_dialed_frequency_ptp_clock_51022 dialed_frequency ptp_clock 0 51022 NULL nohasharray
148848 +disable_so_get_std_timing_fndecl_51022 get_std_timing fndecl 0 51022 &disable_so_dialed_frequency_ptp_clock_51022
148849 +disable_so_hdspm_get_pll_freq_fndecl_51023 hdspm_get_pll_freq fndecl 0 51023 NULL
148850 +disable_so_sb_timeshift_hpfs_sb_info_51027 sb_timeshift hpfs_sb_info 0 51027 NULL
148851 +disable_so_ob_baseaddr_l_mvumi_hs_page4_51028 ob_baseaddr_l mvumi_hs_page4 0 51028 NULL
148852 +disable_so_tw_snd_nxt_tcp_timewait_sock_51035 tw_snd_nxt tcp_timewait_sock 0 51035 NULL
148853 +disable_so_buffer_used_snd_pcm_oss_runtime_51041 buffer_used snd_pcm_oss_runtime 0 51041 NULL
148854 +disable_so_read_addr_qla8xxx_minidump_entry_queue_51046 read_addr qla8xxx_minidump_entry_queue 0 51046 NULL
148855 +disable_so_address_vardecl_it8712f_wdt_c_51057 address vardecl_it8712f_wdt.c 0 51057 NULL
148856 +disable_so_kr_rcvhdraddr_ipath_kregs_51063 kr_rcvhdraddr ipath_kregs 0 51063 NULL
148857 +disable_so_wlcore_hw_ap_sleep_fndecl_51069 wlcore_hw_ap_sleep fndecl 0 51069 NULL
148858 +disable_so_vnic_dev_intr_coal_timer_info_fndecl_51076 vnic_dev_intr_coal_timer_info fndecl 0 51076 NULL
148859 +disable_so_table2_addr_ipw2100_ordinals_51081 table2_addr ipw2100_ordinals 0 51081 NULL
148860 +disable_so_addr_bnx2x_phy_51087 addr bnx2x_phy 0 51087 NULL
148861 +disable_so_xfs_btree_copy_ptrs_fndecl_51093 xfs_btree_copy_ptrs fndecl 4 51093 NULL
148862 +disable_so_core_frequency_transition_fndecl_51097 core_frequency_transition fndecl 2 51097 NULL
148863 +disable_so_msr_ioctl_fndecl_51103 msr_ioctl fndecl 0 51103 NULL
148864 +disable_so_split_timeout_hi_fw_card_51105 split_timeout_hi fw_card 0 51105 NULL
148865 +disable_so_msg_bits_ccp_sha_req_ctx_51106 msg_bits ccp_sha_req_ctx 0 51106 NULL
148866 +disable_so_page_order_btree_keys_51110 page_order btree_keys 0 51110 NULL
148867 +disable_so_pvclock_gtod_register_notifier_fndecl_51113 pvclock_gtod_register_notifier fndecl 0 51113 NULL
148868 +disable_so_cfg80211_ibss_wext_siwfreq_fndecl_51119 cfg80211_ibss_wext_siwfreq fndecl 0 51119 NULL
148869 +disable_so_pan_id_ieee802154_hw_addr_filt_51121 pan_id ieee802154_hw_addr_filt 0 51121 NULL
148870 +disable_so_alignmask_blkcipher_walk_51130 alignmask blkcipher_walk 0 51130 NULL
148871 +disable_so_i2c_master_send_fndecl_51152 i2c_master_send fndecl 3-0 51152 NULL
148872 +disable_so_skcipher_null_givencrypt_fndecl_51153 skcipher_null_givencrypt fndecl 0 51153 NULL
148873 +disable_so_hr_last_timeout_start_o2hb_region_51155 hr_last_timeout_start o2hb_region 0 51155 NULL
148874 +disable_so_cycles_ath_cycle_counters_51156 cycles ath_cycle_counters 0 51156 NULL
148875 +disable_so_notify_remote_via_irq_fndecl_51164 notify_remote_via_irq fndecl 1 51164 NULL
148876 +disable_so_onenand_block_address_fndecl_51167 onenand_block_address fndecl 0-2 51167 NULL
148877 +disable_so_ctimensec_fuse_setattr_in_51177 ctimensec fuse_setattr_in 0 51177 NULL
148878 +disable_so_exp_time_mesh_path_51180 exp_time mesh_path 0 51180 NULL
148879 +disable_so_tcp_try_rmem_schedule_fndecl_51194 tcp_try_rmem_schedule fndecl 3 51194 NULL
148880 +disable_so_avail_mlx4_bitmap_51198 avail mlx4_bitmap 0 51198 NULL
148881 +disable_so_s2mpa01_set_ramp_delay_fndecl_51200 s2mpa01_set_ramp_delay fndecl 0 51200 NULL
148882 +disable_so_addr_e820entry_51224 addr e820entry 0 51224 NULL
148883 +disable_so_rx_dma_addr_smsc9420_pdata_51225 rx_dma_addr smsc9420_pdata 0 51225 NULL
148884 +disable_so_trf7970a_pm_runtime_resume_fndecl_51233 trf7970a_pm_runtime_resume fndecl 0 51233 NULL
148885 +disable_so_pfkey_sockaddr_extract_fndecl_51238 pfkey_sockaddr_extract fndecl 0 51238 NULL
148886 +disable_so_clock_snd_ac97_bus_51245 clock snd_ac97_bus 0 51245 NULL
148887 +disable_so_mtime_dir_entry_51261 mtime dir_entry 0 51261 NULL
148888 +disable_so_address_upper_scu_sgl_element_51271 address_upper scu_sgl_element 0 51271 NULL
148889 +disable_so_resolution_vardecl_hrtimer_c_51279 resolution vardecl_hrtimer.c 0 51279 NULL nohasharray
148890 +disable_so_r600_dpm_get_vblank_time_fndecl_51279 r600_dpm_get_vblank_time fndecl 0 51279 &disable_so_resolution_vardecl_hrtimer_c_51279
148891 +disable_so___ndelay_fndecl_51287 __ndelay fndecl 1 51287 NULL
148892 +disable_so_hashbin_lock_find_fndecl_51294 hashbin_lock_find fndecl 2 51294 NULL
148893 +disable_so_snd_es1968_apu_set_freq_fndecl_51295 snd_es1968_apu_set_freq fndecl 3 51295 NULL
148894 +disable_so_lvb_iuid_ocfs2_meta_lvb_51297 lvb_iuid ocfs2_meta_lvb 0 51297 NULL
148895 +disable_so_usb2_lpm_l1_timeout_show_fndecl_51308 usb2_lpm_l1_timeout_show fndecl 0 51308 NULL
148896 +disable_so_addrHigh_ULP_BDL_51312 addrHigh ULP_BDL 0 51312 NULL
148897 +disable_so_alarm_timer_nsleep_fndecl_51313 alarm_timer_nsleep fndecl 1 51313 NULL nohasharray
148898 +disable_so_cpufreq_get_max_state_fndecl_51313 cpufreq_get_max_state fndecl 1 51313 &disable_so_alarm_timer_nsleep_fndecl_51313
148899 +disable_so_addr_buffer2_cmd_desc_type0_51316 addr_buffer2 cmd_desc_type0 0 51316 NULL
148900 +disable_so___mlx4_cmd_fndecl_51319 __mlx4_cmd fndecl 0-2-5 51319 NULL
148901 +disable_so_addr_nvif_ioctl_rd_v0_51321 addr nvif_ioctl_rd_v0 0 51321 NULL
148902 +disable_so_register_write_lock_rt2800_ops_51323 register_write_lock rt2800_ops 3 51323 NULL
148903 +disable_so_addr_host_sg_desc_51324 addr host_sg_desc 0 51324 NULL
148904 +disable_so_swc_base_addr_vardecl_pc87413_wdt_c_51328 swc_base_addr vardecl_pc87413_wdt.c 0 51328 NULL
148905 +disable_so_myri10ge_set_mac_address_fndecl_51332 myri10ge_set_mac_address fndecl 0 51332 NULL
148906 +disable_so_xt_ct_set_timeout_fndecl_51333 xt_ct_set_timeout fndecl 0 51333 NULL
148907 +disable_so_crypto_ahash_digest_fndecl_51343 crypto_ahash_digest fndecl 0 51343 NULL
148908 +disable_so_calculate_next_time_fndecl_51345 calculate_next_time fndecl 0 51345 NULL
148909 +disable_so_from_kgid_fndecl_51359 from_kgid fndecl 0 51359 NULL
148910 +disable_so_dm9161_ack_interrupt_fndecl_51361 dm9161_ack_interrupt fndecl 0 51361 NULL nohasharray
148911 +disable_so_write_addr_mdc_hw_list_desc_51361 write_addr mdc_hw_list_desc 0 51361 &disable_so_dm9161_ack_interrupt_fndecl_51361
148912 +disable_so_clock_kvm_clock_data_51363 clock kvm_clock_data 0 51363 NULL
148913 +disable_so_sapi_sockaddr_mISDN_51369 sapi sockaddr_mISDN 0 51369 NULL
148914 +disable_so_act8b_ide_timing_51373 act8b ide_timing 0 51373 NULL
148915 +disable_so_driver_data_cpufreq_frequency_table_51376 driver_data cpufreq_frequency_table 0 51376 NULL
148916 +disable_so_timeout_clk_sdhci_host_51378 timeout_clk sdhci_host 0 51378 NULL
148917 +disable_so_ref_div_rv7xx_power_info_51381 ref_div rv7xx_power_info 0 51381 NULL
148918 +disable_so_event_jiffies_atkbd_51387 event_jiffies atkbd 0 51387 NULL
148919 +disable_so_addr_kvm_coalesced_mmio_zone_51392 addr kvm_coalesced_mmio_zone 0 51392 NULL
148920 +disable_so_print_fatal_signal_fndecl_51397 print_fatal_signal fndecl 1 51397 NULL
148921 +disable_so_de_media_interrupt_fndecl_51410 de_media_interrupt fndecl 2 51410 NULL nohasharray
148922 +disable_so_cryptomgr_schedule_probe_fndecl_51410 cryptomgr_schedule_probe fndecl 0 51410 &disable_so_de_media_interrupt_fndecl_51410
148923 +disable_so_ql_set_mac_addr_reg_fndecl_51414 ql_set_mac_addr_reg fndecl 0-4 51414 NULL
148924 +disable_so_iscsi_stat_sess_show_attr_conn_timeout_errors_fndecl_51417 iscsi_stat_sess_show_attr_conn_timeout_errors fndecl 0 51417 NULL
148925 +disable_so_read_addr_qla8044_minidump_entry_cache_51419 read_addr qla8044_minidump_entry_cache 0 51419 NULL
148926 +disable_so_clk_freq_khz_pll_tab_51420 clk_freq_khz pll_tab 0 51420 NULL
148927 +disable_so_pll_d_aic32x4_rate_divs_51425 pll_d aic32x4_rate_divs 0 51425 NULL
148928 +disable_so_T6_address_mxt_data_51429 T6_address mxt_data 0 51429 NULL
148929 +disable_so_q_addr_ioat_pq_descriptor_51439 q_addr ioat_pq_descriptor 0 51439 NULL
148930 +disable_so_imx_phy_crbit_assert_fndecl_51461 imx_phy_crbit_assert fndecl 0 51461 NULL
148931 +disable_so_soc_camera_clock_start_fndecl_51464 soc_camera_clock_start fndecl 0 51464 NULL
148932 +disable_so_after_ctime_nsec_nfsd4_change_info_51470 after_ctime_nsec nfsd4_change_info 0 51470 NULL
148933 +disable_so_free_fall_time_adxl34x_platform_data_51477 free_fall_time adxl34x_platform_data 0 51477 NULL
148934 +disable_so_new_c_uuid_parms_from_attrs_fndecl_51480 new_c_uuid_parms_from_attrs fndecl 0 51480 NULL
148935 +disable_so_addr_high_mcp_kreq_ether_recv_51484 addr_high mcp_kreq_ether_recv 0 51484 NULL
148936 +disable_so_min_freq_ufs_clk_info_51485 min_freq ufs_clk_info 0 51485 NULL
148937 +disable_so_force_addr_vardecl_sis5595_c_51490 force_addr vardecl_sis5595.c 0 51490 NULL
148938 +disable_so_byt_freq_opcode_fndecl_51497 byt_freq_opcode fndecl 0-2 51497 NULL
148939 +disable_so_vco_gma_clock_t_51506 vco gma_clock_t 0 51506 NULL
148940 +disable_so_saddr_irlan_cb_51519 saddr irlan_cb 0 51519 NULL
148941 +disable_so_r14_kvm_regs_51526 r14 kvm_regs 0 51526 NULL
148942 +disable_so_sys_image_guid_ib_device_modify_51537 sys_image_guid ib_device_modify 0 51537 NULL
148943 +disable_so_abx500_mask_and_set_register_interruptible_fndecl_51542 abx500_mask_and_set_register_interruptible fndecl 0-5 51542 NULL
148944 +disable_so_show_constraint_min_time_window_us_fndecl_51544 show_constraint_min_time_window_us fndecl 0 51544 NULL
148945 +disable_so_phys_addr_sge_rspq_51550 phys_addr sge_rspq 0 51550 NULL
148946 +disable_so_tw_substate_inet_timewait_sock_51564 tw_substate inet_timewait_sock 0 51564 NULL
148947 +disable_so_ebx_user_regs_struct32_51572 ebx user_regs_struct32 0 51572 NULL
148948 +disable_so_snd_azf3328_interrupt_fndecl_51583 snd_azf3328_interrupt fndecl 1 51583 NULL
148949 +disable_so_wl1251_acx_rx_msdu_life_time_fndecl_51591 wl1251_acx_rx_msdu_life_time fndecl 0 51591 NULL
148950 +disable_so_grh_gid_fl_mlx5_av_51610 grh_gid_fl mlx5_av 0 51610 NULL
148951 +disable_so_space_id_acpi_object_addr_handler_51611 space_id acpi_object_addr_handler 0 51611 NULL
148952 +disable_so_pick_local_ip6addrs_fndecl_51615 pick_local_ip6addrs fndecl 0 51615 NULL
148953 +disable_so_nmi_perfctr_msr_to_bit_fndecl_51618 nmi_perfctr_msr_to_bit fndecl 0-1 51618 NULL
148954 +disable_so_dcc_timeout_vardecl_nf_conntrack_irc_c_51622 dcc_timeout vardecl_nf_conntrack_irc.c 0 51622 NULL
148955 +disable_so_ath9k_hw_fbin2freq_fndecl_51628 ath9k_hw_fbin2freq fndecl 0-1 51628 NULL
148956 +disable_so_audit_signal_info_fndecl_51630 audit_signal_info fndecl 0-1 51630 NULL
148957 +disable_so_sirdev_schedule_request_fndecl_51632 sirdev_schedule_request fndecl 3-0 51632 NULL
148958 +disable_so_stb0899_write_s2reg_fndecl_51642 stb0899_write_s2reg fndecl 5-0 51642 NULL nohasharray
148959 +disable_so_sha512_ssse3_mod_init_fndecl_51642 sha512_ssse3_mod_init fndecl 0 51642 &disable_so_stb0899_write_s2reg_fndecl_51642
148960 +disable_so_get_bitmap_fndecl_51645 get_bitmap fndecl 0-2 51645 NULL
148961 +disable_so_total_bitmaps_btrfs_free_space_ctl_51648 total_bitmaps btrfs_free_space_ctl 0 51648 NULL
148962 +disable_so_sk_wmem_schedule_fndecl_51651 sk_wmem_schedule fndecl 2 51651 NULL
148963 +disable_so_btree_readpage_end_io_hook_fndecl_51654 btree_readpage_end_io_hook fndecl 0 51654 NULL
148964 +disable_so_delay_pi_adapter_51655 delay pi_adapter 0 51655 NULL
148965 +disable_so_snd_pcm_new_fndecl_51660 snd_pcm_new fndecl 0-3-4-5 51660 NULL
148966 +disable_so_soft_add_expires_seconds_xfrm_lifetime_cfg_51674 soft_add_expires_seconds xfrm_lifetime_cfg 0 51674 NULL
148967 +disable_so_ib_query_gid_fndecl_51677 ib_query_gid fndecl 0-2-3 51677 NULL
148968 +disable_so_m_hi_cfg_timeout_drxk_state_51689 m_hi_cfg_timeout drxk_state 0 51689 NULL
148969 +disable_so_mma9553_runtime_resume_fndecl_51690 mma9553_runtime_resume fndecl 0 51690 NULL
148970 +disable_so_phy_pm_runtime_put_fndecl_51692 phy_pm_runtime_put fndecl 0 51692 NULL
148971 +disable_so_cdclk_freq_drm_i915_private_51693 cdclk_freq drm_i915_private 0 51693 NULL
148972 +disable_so__get_div_fndecl_51696 _get_div fndecl 2-0 51696 NULL
148973 +disable_so_sit_ver_bitmap_bytesize_f2fs_checkpoint_51697 sit_ver_bitmap_bytesize f2fs_checkpoint 0 51697 NULL
148974 +disable_so_seq_framebuf_51700 seq framebuf 0 51700 NULL nohasharray
148975 +disable_so_tsc_drv_init_fndecl_51700 tsc_drv_init fndecl 0 51700 &disable_so_seq_framebuf_51700
148976 +disable_so_lower_first_uid_gid_extent_51714 lower_first uid_gid_extent 0 51714 NULL
148977 +disable_so_acpi_enter_sleep_state_prep_fndecl_51716 acpi_enter_sleep_state_prep fndecl 0-1 51716 NULL
148978 +disable_so_set_data_timeout_fndecl_51718 set_data_timeout fndecl 2-3 51718 NULL
148979 +disable_so_suspend_test_start_time_vardecl_suspend_test_c_51720 suspend_test_start_time vardecl_suspend_test.c 0 51720 NULL
148980 +disable_so_phy_addr_uli526x_board_info_51722 phy_addr uli526x_board_info 0 51722 NULL
148981 +disable_so_vdelay_bttv_geometry_51725 vdelay bttv_geometry 0 51725 NULL
148982 +disable_so_rv6xx_find_memory_clock_with_highest_vco_fndecl_51726 rv6xx_find_memory_clock_with_highest_vco fndecl 2-3 51726 NULL
148983 +disable_so_blocksize_crypto_report_hash_51730 blocksize crypto_report_hash 0 51730 NULL
148984 +disable_so_set_param_timeout_fndecl_51735 set_param_timeout fndecl 0 51735 NULL
148985 +disable_so_iowrite16be_fndecl_51739 iowrite16be fndecl 1 51739 NULL
148986 +disable_so_lvds_chip_slave_addr_lvds_chip_information_51750 lvds_chip_slave_addr lvds_chip_information 0 51750 NULL
148987 +disable_so_xhci_queue_address_device_fndecl_51755 xhci_queue_address_device fndecl 0-3-4 51755 NULL
148988 +disable_so_rx_abs_int_delay_e1000_adapter_51763 rx_abs_int_delay e1000_adapter 0 51763 NULL
148989 +disable_so_ext4_wait_block_bitmap_fndecl_51764 ext4_wait_block_bitmap fndecl 2 51764 NULL
148990 +disable_so_tid_host_cmd_ds_11n_batimeout_51772 tid host_cmd_ds_11n_batimeout 0 51772 NULL
148991 +disable_so_mpll_ss1_rv770_clock_registers_51773 mpll_ss1 rv770_clock_registers 0 51773 NULL
148992 +disable_so_xpc_disengage_timelimit_vardecl_51789 xpc_disengage_timelimit vardecl 0 51789 NULL
148993 +disable_so_current_dispclk_radeon_clock_51795 current_dispclk radeon_clock 0 51795 NULL
148994 +disable_so_mclk_sm501_clock_51799 mclk sm501_clock 0 51799 NULL
148995 +disable_so_frequency_mixart_clock_properties_51800 frequency mixart_clock_properties 0 51800 NULL nohasharray
148996 +disable_so_freq_p54_rssi_db_entry_51800 freq p54_rssi_db_entry 0 51800 &disable_so_frequency_mixart_clock_properties_51800
148997 +disable_so_display_delay_enable_s5p_mfc_ctx_51814 display_delay_enable s5p_mfc_ctx 0 51814 NULL
148998 +disable_so_phys_to_virt_fndecl_51830 phys_to_virt fndecl 1 51830 NULL
148999 +disable_so___lock_timer_fndecl_51836 __lock_timer fndecl 1 51836 NULL
149000 +disable_so_gid_index_mthca_av_51840 gid_index mthca_av 0 51840 NULL
149001 +disable_so_physical_address_smbios_cru64_info_51854 physical_address smbios_cru64_info 0 51854 NULL
149002 +disable_so_sleep_em28xx_reg_seq_51857 sleep em28xx_reg_seq 0 51857 NULL
149003 +disable_so_current_frequency_or51211_state_51860 current_frequency or51211_state 0 51860 NULL
149004 +disable_so_timer_trig_init_fndecl_51865 timer_trig_init fndecl 0 51865 NULL
149005 +disable_so___posix_timers_find_fndecl_51867 __posix_timers_find fndecl 3 51867 NULL
149006 +disable_so_xattr_hash_fndecl_51881 xattr_hash fndecl 2 51881 NULL
149007 +disable_so_ntfs_bitmap_set_bit_fndecl_51888 ntfs_bitmap_set_bit fndecl 2 51888 NULL
149008 +disable_so_hp_ntimer_hpets_51897 hp_ntimer hpets 0 51897 NULL
149009 +disable_so_crypto_blkcipher_decrypt_iv_fndecl_51901 crypto_blkcipher_decrypt_iv fndecl 0-4 51901 NULL
149010 +disable_so_emitted_jiffies_drm_i915_gem_request_51929 emitted_jiffies drm_i915_gem_request 0 51929 NULL
149011 +disable_so_PageAddress__MPI2_CONFIG_REQUEST_51930 PageAddress _MPI2_CONFIG_REQUEST 0 51930 NULL
149012 +disable_so_mlx4_read_clock_fndecl_51933 mlx4_read_clock fndecl 0 51933 NULL
149013 +disable_so_plh_retry_timestamp_pnfs_layout_hdr_51936 plh_retry_timestamp pnfs_layout_hdr 0 51936 NULL nohasharray
149014 +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
149015 +disable_so_padlock_sha256_finup_fndecl_51938 padlock_sha256_finup fndecl 0 51938 NULL
149016 +disable_so_delay_usec_e1000_nvm_info_51943 delay_usec e1000_nvm_info 0 51943 NULL
149017 +disable_so_guest_phys_addr_kvm_userspace_memory_region_51947 guest_phys_addr kvm_userspace_memory_region 0 51947 NULL
149018 +disable_so_addr_drm_radeon_gem_userptr_51948 addr drm_radeon_gem_userptr 0 51948 NULL
149019 +disable_so__regulator_enable_delay_fndecl_51949 _regulator_enable_delay fndecl 1 51949 NULL
149020 +disable_so_grp_time_xfs_mru_cache_51952 grp_time xfs_mru_cache 0 51952 NULL
149021 +disable_so_clock_realtek_pci_ms_51953 clock realtek_pci_ms 0 51953 NULL
149022 +disable_so_sm_ll_lookup_bitmap_fndecl_51973 sm_ll_lookup_bitmap fndecl 0-2 51973 NULL
149023 +disable_so_sa_family_sockaddr_51986 sa_family sockaddr 0 51986 NULL
149024 +disable_so_i_dtime_ext3_inode_info_51992 i_dtime ext3_inode_info 0 51992 NULL
149025 +disable_so_bitmap_ipmac_gc_test_fndecl_51993 bitmap_ipmac_gc_test fndecl 3 51993 NULL
149026 +disable_so_ocfs2_change_ctime_fndecl_52000 ocfs2_change_ctime fndecl 0 52000 NULL
149027 +disable_so_sadb_lifetime_usetime_sadb_lifetime_52005 sadb_lifetime_usetime sadb_lifetime 0 52005 NULL
149028 +disable_so_sysctl_lap_keepalive_time_vardecl_52006 sysctl_lap_keepalive_time vardecl 0 52006 NULL nohasharray
149029 +disable_so_address_u132_command_52006 address u132_command 0 52006 &disable_so_sysctl_lap_keepalive_time_vardecl_52006
149030 +disable_so_txdesc_interrupt_mask_ath_hw_52011 txdesc_interrupt_mask ath_hw 0 52011 NULL
149031 +disable_so_rebind_irq_to_cpu_fndecl_52013 rebind_irq_to_cpu fndecl 1-2 52013 NULL
149032 +disable_so_gid_numa_group_52023 gid numa_group 0 52023 NULL
149033 +disable_so_cpuidle_add_sysfs_fndecl_52026 cpuidle_add_sysfs fndecl 0 52026 NULL
149034 +disable_so_selinux_task_getpgid_fndecl_52032 selinux_task_getpgid fndecl 0 52032 NULL
149035 +disable_so_demod_address_cx24116_config_52035 demod_address cx24116_config 0 52035 NULL
149036 +disable_so_sched_group_set_rt_runtime_fndecl_52036 sched_group_set_rt_runtime fndecl 2-0 52036 NULL
149037 +disable_so_ntp_error_timekeeper_52044 ntp_error timekeeper 0 52044 NULL
149038 +disable_so_sys_addr_to_dram_addr_fndecl_52052 sys_addr_to_dram_addr fndecl 0-2 52052 NULL
149039 +disable_so_shared_data_busaddr_ahc_softc_52059 shared_data_busaddr ahc_softc 0 52059 NULL
149040 +disable_so_gl_demote_time_gfs2_glock_52068 gl_demote_time gfs2_glock 0 52068 NULL
149041 +disable_so_m41t93_get_time_fndecl_52075 m41t93_get_time fndecl 0 52075 NULL
149042 +disable_so_reg_val_coeff_clk_div_52082 reg_val coeff_clk_div 0 52082 NULL
149043 +disable_so_dap_fcgs_gidpn_resp_s_52084 dap fcgs_gidpn_resp_s 0 52084 NULL
149044 +disable_so_kbd_backlight_timeout_show_fndecl_52086 kbd_backlight_timeout_show fndecl 0 52086 NULL
149045 +disable_so_ifa_address_in_ifaddr_52095 ifa_address in_ifaddr 0 52095 NULL
149046 +disable_so_mmc_set_clock_fndecl_52096 mmc_set_clock fndecl 2 52096 NULL
149047 +disable_so_constant_timex_52100 constant timex 0 52100 NULL
149048 +disable_so_rds_ib_remove_ipaddr_fndecl_52103 rds_ib_remove_ipaddr fndecl 2 52103 NULL
149049 +disable_so_adf4350_set_freq_fndecl_52106 adf4350_set_freq fndecl 0-2 52106 NULL
149050 +disable_so_max_mtime_sit_info_52107 max_mtime sit_info 0 52107 NULL
149051 +disable_so_retry_delay_timestamp_fc_port_52109 retry_delay_timestamp fc_port 0 52109 NULL
149052 +disable_so_sha256_ssse3_mod_init_fndecl_52112 sha256_ssse3_mod_init fndecl 0 52112 NULL
149053 +disable_so_nilfs_btree_init_fndecl_52115 nilfs_btree_init fndecl 0 52115 NULL
149054 +disable_so_baseaddr_ds1685_priv_52117 baseaddr ds1685_priv 0 52117 NULL
149055 +disable_so_vga_get_uninterruptible_fndecl_52134 vga_get_uninterruptible fndecl 0 52134 NULL
149056 +disable_so_gr_handle_signal_fndecl_52137 gr_handle_signal fndecl 2 52137 NULL
149057 +disable_so_sample_bits_snd_pcm_runtime_52138 sample_bits snd_pcm_runtime 0 52138 NULL
149058 +disable_so_make_kgid_fndecl_52149 make_kgid fndecl 2 52149 NULL
149059 +disable_so_skcipher_sendmsg_fndecl_52153 skcipher_sendmsg fndecl 0-3 52153 NULL
149060 +disable_so_base_addr_ce_space_ath10k_ce_ring_52154 base_addr_ce_space ath10k_ce_ring 0 52154 NULL
149061 +disable_so_msr_guest_kernel_gs_base_vcpu_vmx_52157 msr_guest_kernel_gs_base vcpu_vmx 0 52157 NULL
149062 +disable_so_mpll_func_cntl_rv730_clock_registers_52160 mpll_func_cntl rv730_clock_registers 0 52160 NULL
149063 +disable_so_system_time_xenpf_settime_52164 system_time xenpf_settime 0 52164 NULL
149064 +disable_so_ddiv_gk104_clk_info_52171 ddiv gk104_clk_info 0 52171 NULL
149065 +disable_so_detect_pll_input_clock_fndecl_52172 detect_pll_input_clock fndecl 1-0 52172 NULL
149066 +disable_so_mpll_dq_func_cntl_2_ni_clock_registers_52173 mpll_dq_func_cntl_2 ni_clock_registers 0 52173 NULL
149067 +disable_so_opmode_delay_picolcd_data_52176 opmode_delay picolcd_data 0 52176 NULL
149068 +disable_so_get_display_clock_speed_drm_i915_display_funcs_52177 get_display_clock_speed drm_i915_display_funcs 0 52177 NULL
149069 +disable_so_addr_lp8788_chg_param_52185 addr lp8788_chg_param 0 52185 NULL
149070 +disable_so_beacon_interval_il_rxon_time_cmd_52191 beacon_interval il_rxon_time_cmd 0 52191 NULL
149071 +disable_so_threshold_high_nes_hw_tune_timer_52193 threshold_high nes_hw_tune_timer 0 52193 NULL
149072 +disable_so_timeout_ms_rdma_ucm_resolve_route_52203 timeout_ms rdma_ucm_resolve_route 0 52203 NULL
149073 +disable_so___mmc_set_signal_voltage_fndecl_52208 __mmc_set_signal_voltage fndecl 0 52208 NULL
149074 +disable_so_jhash_2words_fndecl_52211 jhash_2words fndecl 0-1-2 52211 NULL
149075 +disable_so_suspend_time_iwl_scan_cmd_52218 suspend_time iwl_scan_cmd 0 52218 NULL
149076 +disable_so_sha1_mb_async_update_fndecl_52220 sha1_mb_async_update fndecl 0 52220 NULL
149077 +disable_so_sleep_cx231xx_reg_seq_52228 sleep cx231xx_reg_seq 0 52228 NULL
149078 +disable_so_select_addr_1_qla8044_minidump_entry_rdmux2_52243 select_addr_1 qla8044_minidump_entry_rdmux2 0 52243 NULL nohasharray
149079 +disable_so_SYSC_setregid_fndecl_52243 SYSC_setregid fndecl 0 52243 &disable_so_select_addr_1_qla8044_minidump_entry_rdmux2_52243
149080 +disable_so_snd_pcm_timer_resolution_fndecl_52247 snd_pcm_timer_resolution fndecl 0 52247 NULL
149081 +disable_so_s_hash_function_reiserfs_sb_info_52248 s_hash_function reiserfs_sb_info 0-2 52248 NULL
149082 +disable_so_read_addr_qla8044_minidump_entry_rdmux2_52249 read_addr qla8044_minidump_entry_rdmux2 0 52249 NULL
149083 +disable_so_comp_addr_lo_dmae_command_52260 comp_addr_lo dmae_command 0 52260 NULL
149084 +disable_so_tsl2563_read_interrupt_config_fndecl_52267 tsl2563_read_interrupt_config fndecl 0 52267 NULL
149085 +disable_so_mlx4_ib_init_alias_guid_service_fndecl_52269 mlx4_ib_init_alias_guid_service fndecl 0 52269 NULL
149086 +disable_so_pvr2_hdw_get_eeprom_addr_fndecl_52271 pvr2_hdw_get_eeprom_addr fndecl 0 52271 NULL
149087 +disable_so_coalescing_timeo_bna_ib_52276 coalescing_timeo bna_ib 0 52276 NULL
149088 +disable_so_sll_protocol_sockaddr_ll_52284 sll_protocol sockaddr_ll 0 52284 NULL nohasharray
149089 +disable_so_cmd64x_set_timing_fndecl_52284 cmd64x_set_timing fndecl 3 52284 &disable_so_sll_protocol_sockaddr_ll_52284
149090 +disable_so_entrytime_batadv_bcast_duplist_entry_52297 entrytime batadv_bcast_duplist_entry 0 52297 NULL
149091 +disable_so_cumul_ack_westwood_52298 cumul_ack westwood 0 52298 NULL
149092 +disable_so_r2b_val_fc2580_freq_regs_52299 r2b_val fc2580_freq_regs 0 52299 NULL
149093 +disable_so_btree_remove32_fndecl_52302 btree_remove32 fndecl 2 52302 NULL
149094 +disable_so_btrfs_insert_delayed_items_fndecl_52308 btrfs_insert_delayed_items fndecl 0 52308 NULL
149095 +disable_so_bios_limit_cpufreq_driver_52312 bios_limit cpufreq_driver 1 52312 NULL
149096 +disable_so___nf_conntrack_hash_insert_fndecl_52323 __nf_conntrack_hash_insert fndecl 2-3 52323 NULL
149097 +disable_so_rapl_get_attr_cpumask_fndecl_52324 rapl_get_attr_cpumask fndecl 0 52324 NULL
149098 +disable_so_frequency_dst_state_52328 frequency dst_state 0 52328 NULL
149099 +disable_so_status_fifo_addr_sbp_login_descriptor_52353 status_fifo_addr sbp_login_descriptor 0 52353 NULL
149100 +disable_so_musb_write_txhubaddr_fndecl_52354 musb_write_txhubaddr fndecl 2-3 52354 NULL
149101 +disable_so_cx18_msleep_timeout_fndecl_52356 cx18_msleep_timeout fndecl 1 52356 NULL
149102 +disable_so_input_event_fndecl_52364 input_event fndecl 3-4 52364 NULL
149103 +disable_so_timeout_ip_vs_sync_v6_52374 timeout ip_vs_sync_v6 0 52374 NULL
149104 +disable_so_wait_on_bit_io_fndecl_52381 wait_on_bit_io fndecl 0 52381 NULL
149105 +disable_so_mthca_mr_alloc_notrans_fndecl_52385 mthca_mr_alloc_notrans fndecl 0-2 52385 NULL
149106 +disable_so_pwm_divisor_nvbios_perf_fan_52386 pwm_divisor nvbios_perf_fan 0 52386 NULL nohasharray
149107 +disable_so_iscsi_ipv4addr_port_info_52386 iscsi_ipv4addr port_info 0 52386 &disable_so_pwm_divisor_nvbios_perf_fan_52386
149108 +disable_so_dpp_unmapped_addr_be_dev_info_52388 dpp_unmapped_addr be_dev_info 0 52388 NULL nohasharray
149109 +disable_so_request_threaded_irq_fndecl_52388 request_threaded_irq fndecl 0-1-4 52388 &disable_so_dpp_unmapped_addr_be_dev_info_52388
149110 +disable_so_g84_cipher_ctor_fndecl_52389 g84_cipher_ctor fndecl 0 52389 NULL
149111 +disable_so_time_constant_vardecl_ntp_c_52392 time_constant vardecl_ntp.c 0 52392 NULL nohasharray
149112 +disable_so_sis_ata100_program_timings_fndecl_52392 sis_ata100_program_timings fndecl 2 52392 &disable_so_time_constant_vardecl_ntp_c_52392
149113 +disable_so_hbqaddrHigh_config_hbq_var_52395 hbqaddrHigh config_hbq_var 0 52395 NULL
149114 +disable_so_objectid_btrfs_delayed_data_ref_52398 objectid btrfs_delayed_data_ref 0 52398 NULL
149115 +disable_so_btrfs_schedule_bio_fndecl_52412 btrfs_schedule_bio fndecl 3 52412 NULL
149116 +disable_so_wm8804_set_clkdiv_fndecl_52423 wm8804_set_clkdiv fndecl 3 52423 NULL
149117 +disable_so_tm_year_rtc_time_52437 tm_year rtc_time 0 52437 NULL
149118 +disable_so_message_age_timer_value___port_info_52442 message_age_timer_value __port_info 0 52442 NULL nohasharray
149119 +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
149120 +disable_so_time_stamp_pch_gbe_buffer_52453 time_stamp pch_gbe_buffer 0 52453 NULL
149121 +disable_so_fsl_pwm_calculate_cycles_fndecl_52454 fsl_pwm_calculate_cycles fndecl 0-2 52454 NULL
149122 +disable_so_default_timetolive_sctp_association_52455 default_timetolive sctp_association 0 52455 NULL
149123 +disable_so_xc2028_sleep_fndecl_52469 xc2028_sleep fndecl 0 52469 NULL
149124 +disable_so_regulator_map_voltage_linear_fndecl_52488 regulator_map_voltage_linear fndecl 0-2-3 52488 NULL
149125 +disable_so_nsecs_to_jiffies64_fndecl_52497 nsecs_to_jiffies64 fndecl 0-1 52497 NULL
149126 +disable_so_pm_runtime_resume_fndecl_52501 pm_runtime_resume fndecl 0 52501 NULL
149127 +disable_so_stop_threshold_snd_pcm_runtime_52503 stop_threshold snd_pcm_runtime 0 52503 NULL
149128 +disable_so_il_get_passive_dwell_time_fndecl_52511 il_get_passive_dwell_time fndecl 0 52511 NULL nohasharray
149129 +disable_so_show_src_clock_sel_fndecl_52511 show_src_clock_sel fndecl 0 52511 &disable_so_il_get_passive_dwell_time_fndecl_52511
149130 +disable_so_mxl111sf_frontend_attach_atsc_mh_fndecl_52518 mxl111sf_frontend_attach_atsc_mh fndecl 0 52518 NULL
149131 +disable_so_gcm_hash_assoc_continue_fndecl_52527 gcm_hash_assoc_continue fndecl 0 52527 NULL
149132 +disable_so_time_next_packet_fq_flow_52535 time_next_packet fq_flow 0 52535 NULL nohasharray
149133 +disable_so_exit_deep_sleep_lbs_private_52535 exit_deep_sleep lbs_private 0 52535 &disable_so_time_next_packet_fq_flow_52535
149134 +disable_so_page_check_address_pmd_fndecl_52537 page_check_address_pmd fndecl 3 52537 NULL
149135 +disable_so_stime_signal_struct_52540 stime signal_struct 0 52540 NULL nohasharray
149136 +disable_so_hblank_lo_oaktrail_timing_info_52540 hblank_lo oaktrail_timing_info 0 52540 &disable_so_stime_signal_struct_52540
149137 +disable_so_sgl_pg1_addr_lo_sgl_page_pairs_52550 sgl_pg1_addr_lo sgl_page_pairs 0 52550 NULL
149138 +disable_so_tx_timeout_last_recovery_i40e_pf_52564 tx_timeout_last_recovery i40e_pf 0 52564 NULL nohasharray
149139 +disable_so_clock_name_show_fndecl_52564 clock_name_show fndecl 0 52564 &disable_so_tx_timeout_last_recovery_i40e_pf_52564
149140 +disable_so_c67x00_sched_start_scheduler_fndecl_52570 c67x00_sched_start_scheduler fndecl 0 52570 NULL
149141 +disable_so_acpi_sleep_tts_switch_fndecl_52575 acpi_sleep_tts_switch fndecl 1 52575 NULL
149142 +disable_so_addr0_nphy_rf_control_override_rev2_52577 addr0 nphy_rf_control_override_rev2 0 52577 NULL
149143 +disable_so_tv_nsec_xfs_bstime_52584 tv_nsec xfs_bstime 0 52584 NULL
149144 +disable_so_xfs_btree_check_sptr_fndecl_52587 xfs_btree_check_sptr fndecl 0 52587 NULL
149145 +disable_so_get_vmx_mem_address_fndecl_52590 get_vmx_mem_address fndecl 3 52590 NULL
149146 +disable_so_suspend_time_il3945_scan_cmd_52601 suspend_time il3945_scan_cmd 0 52601 NULL nohasharray
149147 +disable_so_ahash_def_finup_finish2_fndecl_52601 ahash_def_finup_finish2 fndecl 2 52601 &disable_so_suspend_time_il3945_scan_cmd_52601
149148 +disable_so_si4713_s_frequency_fndecl_52608 si4713_s_frequency fndecl 0 52608 NULL
149149 +disable_so_icsk_timeout_inet_connection_sock_52623 icsk_timeout inet_connection_sock 0 52623 NULL
149150 +disable_so____skb_get_hash_fndecl_52630 ___skb_get_hash fndecl 0 52630 NULL
149151 +disable_so_dn_nl_fill_ifaddr_fndecl_52641 dn_nl_fill_ifaddr fndecl 0-3-5 52641 NULL
149152 +disable_so_physical_reg_addr_wl1251_52646 physical_reg_addr wl1251 0 52646 NULL
149153 +disable_so_setup_ata_timing_52661 setup ata_timing 0 52661 NULL
149154 +disable_so_delay_tc_pie_xstats_52665 delay tc_pie_xstats 0 52665 NULL
149155 +disable_so_sys_utimensat_fndecl_52666 sys_utimensat fndecl 1 52666 NULL
149156 +disable_so_ringid_wmi_vring_cfg_52670 ringid wmi_vring_cfg 0 52670 NULL
149157 +disable_so_cmd_timeout_ms_mmc_ioc_cmd_52681 cmd_timeout_ms mmc_ioc_cmd 0 52681 NULL
149158 +disable_so_fr_timer_fndecl_52687 fr_timer fndecl 1 52687 NULL
149159 +disable_so_if_sdio_enter_deep_sleep_fndecl_52688 if_sdio_enter_deep_sleep fndecl 0 52688 NULL
149160 +disable_so_set_rate_control_runtime_52697 set_rate control_runtime 0 52697 NULL
149161 +disable_so_req_consumer_index_phy_addr_low_ql3_adapter_52703 req_consumer_index_phy_addr_low ql3_adapter 0 52703 NULL
149162 +disable_so_addr_max17042_reg_data_52712 addr max17042_reg_data 0 52712 NULL
149163 +disable_so_cit_get_clock_div_fndecl_52713 cit_get_clock_div fndecl 0 52713 NULL nohasharray
149164 +disable_so_mpll_ss2_si_clock_registers_52713 mpll_ss2 si_clock_registers 0 52713 &disable_so_cit_get_clock_div_fndecl_52713
149165 +disable_so_addr_pt1_table_52714 addr pt1_table 0 52714 NULL
149166 +disable_so_ds1742_rtc_read_time_fndecl_52716 ds1742_rtc_read_time fndecl 0 52716 NULL nohasharray
149167 +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
149168 +disable_so_ide_get_lba_addr_fndecl_52722 ide_get_lba_addr fndecl 0 52722 NULL
149169 +disable_so_msi_addr_drm_psb_private_52725 msi_addr drm_psb_private 0 52725 NULL
149170 +disable_so_migratepage_address_space_operations_52735 migratepage address_space_operations 0 52735 NULL
149171 +disable_so_apicid_cpuinfo_x86_52743 apicid cpuinfo_x86 0 52743 NULL
149172 +disable_so_ageing_time_show_fndecl_52746 ageing_time_show fndecl 0 52746 NULL
149173 +disable_so___hw_addr_add_fndecl_52752 __hw_addr_add fndecl 0-3 52752 NULL
149174 +disable_so_addr_end_vardecl_init_64_c_52755 addr_end vardecl_init_64.c 0 52755 NULL
149175 +disable_so_cmd_box_addr_wl1271_52756 cmd_box_addr wl1271 0 52756 NULL
149176 +disable_so_crypto_cipher_setkey_fndecl_52762 crypto_cipher_setkey fndecl 0-3 52762 NULL
149177 +disable_so_wmi_del_cipher_key_fndecl_52767 wmi_del_cipher_key fndecl 0 52767 NULL
149178 +disable_so_ptp_dp83640_adjtime_fndecl_52770 ptp_dp83640_adjtime fndecl 2 52770 NULL nohasharray
149179 +disable_so___hw_addr_del_ex_fndecl_52770 __hw_addr_del_ex fndecl 0-3 52770 &disable_so_ptp_dp83640_adjtime_fndecl_52770
149180 +disable_so_reiserfs_init_bitmap_cache_fndecl_52773 reiserfs_init_bitmap_cache fndecl 0 52773 NULL
149181 +disable_so_time_to_jiffies_fndecl_52778 time_to_jiffies fndecl 1-2-0 52778 NULL nohasharray
149182 +disable_so_cleanup_addr_jit_context_52778 cleanup_addr jit_context 0 52778 &disable_so_time_to_jiffies_fndecl_52778 nohasharray
149183 +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
149184 +disable_so_sxgbe_rx_interrupt_fndecl_52784 sxgbe_rx_interrupt fndecl 1 52784 NULL
149185 +disable_so_twl_rtc_set_time_fndecl_52785 twl_rtc_set_time fndecl 0 52785 NULL
149186 +disable_so_mwifiex_set_aes_key_v2_fndecl_52787 mwifiex_set_aes_key_v2 fndecl 0 52787 NULL
149187 +disable_so_start_address_rtl2832_reg_entry_52792 start_address rtl2832_reg_entry 0 52792 NULL nohasharray
149188 +disable_so_encrypt_crypto_aead_52792 encrypt crypto_aead 0 52792 &disable_so_start_address_rtl2832_reg_entry_52792
149189 +disable_so_dynamic_ps_timeout_write_fndecl_52802 dynamic_ps_timeout_write fndecl 3-0 52802 NULL
149190 +disable_so_sge_addr_vf_pf_rxq_params_52803 sge_addr vf_pf_rxq_params 0 52803 NULL
149191 +disable_so_rtc_time64_to_tm_fndecl_52820 rtc_time64_to_tm fndecl 1 52820 NULL
149192 +disable_so_fwnet_hwaddr_fifo_fndecl_52824 fwnet_hwaddr_fifo fndecl 0 52824 NULL
149193 +disable_so_clock_khz_dib0090_io_config_52827 clock_khz dib0090_io_config 0 52827 NULL
149194 +disable_so_tuner_frequency_m88rs2000_state_52828 tuner_frequency m88rs2000_state 0 52828 NULL
149195 +disable_so_twl4030_wdt_set_timeout_fndecl_52829 twl4030_wdt_set_timeout fndecl 2 52829 NULL
149196 +disable_so_min_vruntime_cfs_rq_52838 min_vruntime cfs_rq 0 52838 NULL
149197 +disable_so_nv04_timer_alarm_fndecl_52840 nv04_timer_alarm fndecl 2 52840 NULL
149198 +disable_so_sched_runtime_sched_attr_52849 sched_runtime sched_attr 0 52849 NULL
149199 +disable_so_seq_netlink_callback_52857 seq netlink_callback 0 52857 NULL
149200 +disable_so_addr_hi_tg3_tx_buffer_desc_52858 addr_hi tg3_tx_buffer_desc 0 52858 NULL
149201 +disable_so_dev_addr_add_fndecl_52865 dev_addr_add fndecl 0 52865 NULL
149202 +disable_so_mxt_lookup_bootloader_address_fndecl_52874 mxt_lookup_bootloader_address fndecl 0 52874 NULL
149203 +disable_so_rhashtable_init_fndecl_52886 rhashtable_init fndecl 0 52886 NULL
149204 +disable_so_log_unit_to_scsi3addr_fndecl_52888 log_unit_to_scsi3addr fndecl 3 52888 NULL
149205 +disable_so_warmup_time_tc_sfb_qopt_52893 warmup_time tc_sfb_qopt 0 52893 NULL
149206 +disable_so_acpi_ex_system_signal_event_fndecl_52910 acpi_ex_system_signal_event fndecl 0 52910 NULL
149207 +disable_so_ccp_aes_rfc3686_crypt_fndecl_52911 ccp_aes_rfc3686_crypt fndecl 0 52911 NULL
149208 +disable_so_bf_daddr_ath_rxbuf_52915 bf_daddr ath_rxbuf 0 52915 NULL
149209 +disable_so_addr_aac_entry_52921 addr aac_entry 0 52921 NULL
149210 +disable_so_slack_start_time_dql_52922 slack_start_time dql 0 52922 NULL
149211 +disable_so_mma8452_set_hp_filter_frequency_fndecl_52927 mma8452_set_hp_filter_frequency fndecl 0-2-3 52927 NULL
149212 +disable_so_dqb_btime_mem_dqblk_52929 dqb_btime mem_dqblk 0 52929 NULL
149213 +disable_so_mthca_cmd_fndecl_52930 mthca_cmd fndecl 0-2-3 52930 NULL
149214 +disable_so_signal_nr_nvkm_specdom_52941 signal_nr nvkm_specdom 0 52941 NULL
149215 +disable_so_bitmap_find_next_zero_area_fndecl_52944 bitmap_find_next_zero_area fndecl 0-2-3-4-5 52944 NULL
149216 +disable_so_host_addr_p54p_desc_52948 host_addr p54p_desc 0 52948 NULL
149217 +disable_so_signal_strength_wireless_stats_52949 signal_strength wireless_stats 0 52949 NULL
149218 +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
149219 +disable_so_base_time_dummy_systimer_pcm_52952 base_time dummy_systimer_pcm 0 52952 NULL
149220 +disable_so_setkey_crypto_ahash_52959 setkey crypto_ahash 0-3 52959 NULL
149221 +disable_so_sll_hatype_sockaddr_ll_52974 sll_hatype sockaddr_ll 0 52974 NULL
149222 +disable_so_ktime_get_raw_fast_ns_fndecl_52986 ktime_get_raw_fast_ns fndecl 0 52986 NULL
149223 +disable_so_tv_freq_tuner_52988 tv_freq tuner 0 52988 NULL
149224 +disable_so_cifs_ci_hash_fndecl_52999 cifs_ci_hash fndecl 0 52999 NULL
149225 +disable_so_last_jiffies_rtc_plat_data_53004 last_jiffies rtc_plat_data 0 53004 NULL
149226 +disable_so_base_addr_eisa_device_53008 base_addr eisa_device 0 53008 NULL
149227 +disable_so_vbaddr_drm_savage_common_state_53015 vbaddr drm_savage_common_state 0 53015 NULL
149228 +disable_so_cal_timeout_at86rf230_local_53017 cal_timeout at86rf230_local 0 53017 NULL
149229 +disable_so_alarmtimer_init_fndecl_53028 alarmtimer_init fndecl 0 53028 NULL
149230 +disable_so_compat_sys_timerfd_gettime_fndecl_53031 compat_sys_timerfd_gettime fndecl 1 53031 NULL
149231 +disable_so_gpu_addr_radeon_vce_53033 gpu_addr radeon_vce 0 53033 NULL
149232 +disable_so_valleyview_get_display_clock_speed_fndecl_53041 valleyview_get_display_clock_speed fndecl 0 53041 NULL
149233 +disable_so__base_interrupt_fndecl_53046 _base_interrupt fndecl 1 53046 NULL
149234 +disable_so_qtail_snd_timer_user_53048 qtail snd_timer_user 0 53048 NULL
149235 +disable_so_max14577_set_fast_charge_timer_fndecl_53049 max14577_set_fast_charge_timer fndecl 2-0 53049 NULL nohasharray
149236 +disable_so_addr_mce_53049 addr mce 0 53049 &disable_so_max14577_set_fast_charge_timer_fndecl_53049
149237 +disable_so_find_next_bit_fndecl_53053 find_next_bit fndecl 0-2-3 53053 NULL
149238 +disable_so_sci_apc_agent_start_timer_fndecl_53055 sci_apc_agent_start_timer fndecl 2 53055 NULL
149239 +disable_so_padlock_sha_update_fndecl_53061 padlock_sha_update fndecl 0-3 53061 NULL
149240 +disable_so_soft_byte_limit_xfrm_lifetime_cfg_53071 soft_byte_limit xfrm_lifetime_cfg 0 53071 NULL
149241 +disable_so_addr_ahd_dma64_seg_53072 addr ahd_dma64_seg 0 53072 NULL
149242 +disable_so_address_bus_request_53084 address bus_request 0 53084 NULL
149243 +disable_so_xfs_btree_dec_cursor_fndecl_53087 xfs_btree_dec_cursor fndecl 0 53087 NULL
149244 +disable_so_gro_flush_timeout_store_fndecl_53088 gro_flush_timeout_store fndecl 4-0 53088 NULL
149245 +disable_so_handle_nested_irq_fndecl_53092 handle_nested_irq fndecl 1 53092 NULL
149246 +disable_so_hi_cfg_bridge_delay_drxd_state_53095 hi_cfg_bridge_delay drxd_state 0 53095 NULL nohasharray
149247 +disable_so___scale_tsc_fndecl_53095 __scale_tsc fndecl 0-1-2 53095 &disable_so_hi_cfg_bridge_delay_drxd_state_53095
149248 +disable_so_bitmap_dirty_bits_fndecl_53100 bitmap_dirty_bits fndecl 2 53100 NULL
149249 +disable_so_ufs_data_ptr_to_cpu_fndecl_53104 ufs_data_ptr_to_cpu fndecl 0 53104 NULL
149250 +disable_so_i_mtime_ocfs2_dinode_53106 i_mtime ocfs2_dinode 0 53106 NULL
149251 +disable_so_raddr_c2wr_ae_active_connect_results_53114 raddr c2wr_ae_active_connect_results 0 53114 NULL
149252 +disable_so_freerunning_timer_show_fndecl_53117 freerunning_timer_show fndecl 0 53117 NULL
149253 +disable_so_get_est_timing_fndecl_53119 get_est_timing fndecl 0 53119 NULL
149254 +disable_so_irq_clock_event_device_53122 irq clock_event_device 0 53122 NULL nohasharray
149255 +disable_so_address_iio_dev_attr_53122 address iio_dev_attr 0 53122 &disable_so_irq_clock_event_device_53122
149256 +disable_so__get_maxdiv_fndecl_53128 _get_maxdiv fndecl 0-2 53128 NULL
149257 +disable_so_boot_time_nfsd_net_53147 boot_time nfsd_net 0 53147 NULL
149258 +disable_so_fl_init_hashtable_fndecl_53150 fl_init_hashtable fndecl 0 53150 NULL
149259 +disable_so_nh_saddr_fib_nh_53152 nh_saddr fib_nh 0 53152 NULL
149260 +disable_so_direct_IO_address_space_operations_53153 direct_IO address_space_operations 0-3 53153 NULL
149261 +disable_so_db_addr_mlx5_ib_create_cq_53177 db_addr mlx5_ib_create_cq 0 53177 NULL nohasharray
149262 +disable_so_page_address_in_vma_fndecl_53177 page_address_in_vma fndecl 0 53177 &disable_so_db_addr_mlx5_ib_create_cq_53177
149263 +disable_so_current_freq_av7110_53182 current_freq av7110 0 53182 NULL
149264 +disable_so_wdt_set_timeout_fndecl_53183 wdt_set_timeout fndecl 2 53183 NULL
149265 +disable_so_uid_min_xt_owner_match_info_53195 uid_min xt_owner_match_info 0 53195 NULL
149266 +disable_so_clear_range_i915_address_space_53198 clear_range i915_address_space 2-3 53198 NULL nohasharray
149267 +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
149268 +disable_so_timestamp_il_priv_53208 timestamp il_priv 0 53208 NULL
149269 +disable_so_nbytes_ablkcipher_request_53222 nbytes ablkcipher_request 0 53222 NULL
149270 +disable_so_bitmap_size_sit_info_53224 bitmap_size sit_info 0 53224 NULL
149271 +disable_so_minlen_img_ir_free_timing_53227 minlen img_ir_free_timing 0 53227 NULL
149272 +disable_so_btrfs_alloc_from_bitmap_fndecl_53249 btrfs_alloc_from_bitmap fndecl 0-4-5 53249 NULL
149273 +disable_so_micd_timeout_arizona_extcon_info_53253 micd_timeout arizona_extcon_info 0 53253 NULL
149274 +disable_so_mipi_dsi_dcs_exit_sleep_mode_fndecl_53255 mipi_dsi_dcs_exit_sleep_mode fndecl 0 53255 NULL
149275 +disable_so_btc_find_valid_clock_fndecl_53267 btc_find_valid_clock fndecl 0-3-2 53267 NULL nohasharray
149276 +disable_so_cnsmr_idx_addr_wqicb_53267 cnsmr_idx_addr wqicb 0 53267 &disable_so_btc_find_valid_clock_fndecl_53267
149277 +disable_so_cg_spll_func_cntl_3_rv730_clock_registers_53272 cg_spll_func_cntl_3 rv730_clock_registers 0 53272 NULL
149278 +disable_so_switch_time_il4965_channel_switch_cmd_53281 switch_time il4965_channel_switch_cmd 0 53281 NULL
149279 +disable_so_mic_x100_ack_interrupt_fndecl_53283 mic_x100_ack_interrupt fndecl 0 53283 NULL nohasharray
149280 +disable_so_bitmap_set_ll_fndecl_53283 bitmap_set_ll fndecl 0-2-3 53283 &disable_so_mic_x100_ack_interrupt_fndecl_53283
149281 +disable_so_ci_otg_del_timer_fndecl_53284 ci_otg_del_timer fndecl 2 53284 NULL
149282 +disable_so_elapsed_jiffies_msecs_fndecl_53288 elapsed_jiffies_msecs fndecl 0 53288 NULL
149283 +disable_so_neigh_add_timer_fndecl_53296 neigh_add_timer fndecl 2 53296 NULL
149284 +disable_so_chunk_sizek_var_mtrr_state_53302 chunk_sizek var_mtrr_state 0 53302 NULL
149285 +disable_so_set_flexbg_block_bitmap_fndecl_53307 set_flexbg_block_bitmap fndecl 0-4-5 53307 NULL
149286 +disable_so_tw_rcv_wscale_inet_timewait_sock_53312 tw_rcv_wscale inet_timewait_sock 0 53312 NULL
149287 +disable_so_ablkcipher_walk_next_fndecl_53328 ablkcipher_walk_next fndecl 0 53328 NULL
149288 +disable_so_xen_mce_chrdev_open_fndecl_53331 xen_mce_chrdev_open fndecl 0 53331 NULL
149289 +disable_so_be16_add_cpu_fndecl_53336 be16_add_cpu fndecl 2 53336 NULL
149290 +disable_so_write_end_address_space_operations_53339 write_end address_space_operations 0-3-4-5 53339 NULL
149291 +disable_so_kobj_cpu_cpufreq_policy_53349 kobj_cpu cpufreq_policy 0 53349 NULL
149292 +disable_so_cticks_snd_timer_instance_53353 cticks snd_timer_instance 0 53353 NULL
149293 +disable_so_bus_num_atto_csmi_get_pci_bus_addr_53363 bus_num atto_csmi_get_pci_bus_addr 0 53363 NULL
149294 +disable_so_wall_time_sec_vsyscall_gtod_data_53364 wall_time_sec vsyscall_gtod_data 0 53364 NULL
149295 +disable_so_vfrontporch_v4l2_bt_timings_53369 vfrontporch v4l2_bt_timings 0 53369 NULL
149296 +disable_so_dataset_patch_addr_ath6kl_hw_53371 dataset_patch_addr ath6kl_hw 0 53371 NULL
149297 +disable_so___bitmap_subset_fndecl_53372 __bitmap_subset fndecl 3 53372 NULL
149298 +disable_so_sii9234_runtime_resume_fndecl_53375 sii9234_runtime_resume fndecl 0 53375 NULL
149299 +disable_so_ccp_crypto_init_fndecl_53377 ccp_crypto_init fndecl 0 53377 NULL
149300 +disable_so_inaddr_usnic_fwd_dev_53382 inaddr usnic_fwd_dev 0 53382 NULL
149301 +disable_so_ndo_validate_addr_net_device_ops_53392 ndo_validate_addr net_device_ops 0 53392 NULL nohasharray
149302 +disable_so_valid_msr_intercept_fndecl_53392 valid_msr_intercept fndecl 1 53392 &disable_so_ndo_validate_addr_net_device_ops_53392
149303 +disable_so_ept_walk_addr_fndecl_53393 ept_walk_addr fndecl 3-4 53393 NULL
149304 +disable_so_dma_alloc_attrs_fndecl_53394 dma_alloc_attrs fndecl 2-4 53394 NULL
149305 +disable_so_btrfs_delayed_inode_init_fndecl_53395 btrfs_delayed_inode_init fndecl 0 53395 NULL
149306 +disable_so_atomic_stats_read_fndecl_53399 atomic_stats_read fndecl 3-0 53399 NULL
149307 +disable_so_src_slave_addr_rcar_dmac_chan_53400 src_slave_addr rcar_dmac_chan 0 53400 NULL
149308 +disable_so_sys_guid_ib_node_info_53401 sys_guid ib_node_info 0 53401 NULL
149309 +disable_so_freqValTelevision_pvr2_hdw_53403 freqValTelevision pvr2_hdw 0 53403 NULL
149310 +disable_so_quotad_check_timeo_fndecl_53409 quotad_check_timeo fndecl 4 53409 NULL
149311 +disable_so_smp_size_set_mtrr_data_53411 smp_size set_mtrr_data 0 53411 NULL
149312 +disable_so_addr_wil_fw_data_gw_53417 addr wil_fw_data_gw 0 53417 NULL
149313 +disable_so_irlap_start_wd_timer_fndecl_53423 irlap_start_wd_timer fndecl 2 53423 NULL
149314 +disable_so_nla_put_u32_fndecl_53424 nla_put_u32 fndecl 0-3 53424 NULL
149315 +disable_so_ucode_start_addr_smc_firmware_header_v1_0_53438 ucode_start_addr smc_firmware_header_v1_0 0 53438 NULL
149316 +disable_so_dma_addr_tso_state_53442 dma_addr tso_state 0 53442 NULL
149317 +disable_so___down_common_fndecl_53444 __down_common fndecl 2 53444 NULL
149318 +disable_so_bma180_set_sleep_state_fndecl_53447 bma180_set_sleep_state fndecl 0 53447 NULL
149319 +disable_so_reqsize_crypto_ahash_53448 reqsize crypto_ahash 0 53448 NULL
149320 +disable_so_qs_rtbtimelimit_fs_quota_stat_53453 qs_rtbtimelimit fs_quota_stat 0 53453 NULL
149321 +disable_so_mmc_set_relative_addr_fndecl_53454 mmc_set_relative_addr fndecl 0 53454 NULL
149322 +disable_so_genwqe_debugfs_jtimer_open_fndecl_53455 genwqe_debugfs_jtimer_open fndecl 0 53455 NULL
149323 +disable_so_xruns_snd_rawmidi_runtime_53458 xruns snd_rawmidi_runtime 0 53458 NULL
149324 +disable_so_cpumask_local_spread_fndecl_53460 cpumask_local_spread fndecl 0-1-2 53460 NULL
149325 +disable_so_peer_addr_rds_info_tcp_socket_53463 peer_addr rds_info_tcp_socket 0 53463 NULL
149326 +disable_so_do_set_fan_div_fndecl_53464 do_set_fan_div fndecl 0 53464 NULL
149327 +disable_so_nfs_map_uid_to_name_fndecl_53467 nfs_map_uid_to_name fndecl 4-0 53467 NULL
149328 +disable_so_handle_drm_vmw_fence_signaled_arg_53472 handle drm_vmw_fence_signaled_arg 0 53472 NULL
149329 +disable_so_guest_perf_guest_switch_msr_53477 guest perf_guest_switch_msr 0 53477 NULL
149330 +disable_so_encrypt_blkcipher_alg_53493 encrypt blkcipher_alg 4 53493 NULL
149331 +disable_so_tmr_disable_sound_lowlev_timer_53495 tmr_disable sound_lowlev_timer 1 53495 NULL nohasharray
149332 +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
149333 +disable_so_conversion_time_smm665_data_53516 conversion_time smm665_data 0 53516 NULL
149334 +disable_so_iscsi_tpg_attrib_store_netif_timeout_fndecl_53517 iscsi_tpg_attrib_store_netif_timeout fndecl 0-3 53517 NULL
149335 +disable_so_address_ib_umem_53524 address ib_umem 0 53524 NULL
149336 +disable_so_di_gid_gfs2_dinode_53528 di_gid gfs2_dinode 0 53528 NULL
149337 +disable_so_mem_busaddr_ahc_platform_data_53533 mem_busaddr ahc_platform_data 0 53533 NULL nohasharray
149338 +disable_so_sg_list_busaddr_scb_53533 sg_list_busaddr scb 0 53533 &disable_so_mem_busaddr_ahc_platform_data_53533
149339 +disable_so_vactive_hi_lvds_dvo_timing_53549 vactive_hi lvds_dvo_timing 0 53549 NULL
149340 +disable_so_block_dma_addr_rx_block_info_53550 block_dma_addr rx_block_info 0 53550 NULL
149341 +disable_so_st_ctime_nsec_compat_stat_53567 st_ctime_nsec compat_stat 0 53567 NULL
149342 +disable_so_storm_memset_hc_timeout_fndecl_53596 storm_memset_hc_timeout fndecl 2-3-5 53596 NULL
149343 +disable_so_vapic_addr_kvm_lapic_53599 vapic_addr kvm_lapic 0 53599 NULL
149344 +disable_so_schedule_irq_fndecl_53600 schedule_irq fndecl 2 53600 NULL
149345 +disable_so_smp_cmd_ident_addr_info_fndecl_53602 smp_cmd_ident_addr_info fndecl 0 53602 NULL
149346 +disable_so_rsp_dmaaddr_fw_scsi_cmd_wr_53609 rsp_dmaaddr fw_scsi_cmd_wr 0 53609 NULL
149347 +disable_so_device_addr_p54p_desc_53612 device_addr p54p_desc 0 53612 NULL nohasharray
149348 +disable_so_wm8350_reg_write_fndecl_53612 wm8350_reg_write fndecl 2-3-0 53612 &disable_so_device_addr_p54p_desc_53612
149349 +disable_so_ringid_wil_back_tx_53620 ringid wil_back_tx 0 53620 NULL nohasharray
149350 +disable_so_ahd_resolve_seqaddr_fndecl_53620 ahd_resolve_seqaddr fndecl 0-2 53620 &disable_so_ringid_wil_back_tx_53620
149351 +disable_so_sleep_control_elan_transport_ops_53622 sleep_control elan_transport_ops 0 53622 NULL
149352 +disable_so_btrfs_set_token_inode_gid_fndecl_53628 btrfs_set_token_inode_gid fndecl 3 53628 NULL
149353 +disable_so_format_gro_flush_timeout_fndecl_53638 format_gro_flush_timeout fndecl 0 53638 NULL
149354 +disable_so_one_bits_word_at_a_time_53641 one_bits word_at_a_time 0 53641 NULL
149355 +disable_so_i2c_addr_xc2028_config_53658 i2c_addr xc2028_config 0 53658 NULL
149356 +disable_so_ss_tss_segment_32_53663 ss tss_segment_32 0 53663 NULL
149357 +disable_so_backlight_off_delay_cdv_intel_dp_53664 backlight_off_delay cdv_intel_dp 0 53664 NULL
149358 +disable_so_genwqe_debugfs_prev_dbg_uid1_open_fndecl_53665 genwqe_debugfs_prev_dbg_uid1_open fndecl 0 53665 NULL
149359 +disable_so_mult_clocksource_53667 mult clocksource 0 53667 NULL nohasharray
149360 +disable_so_parse_nl_addr_fndecl_53667 parse_nl_addr fndecl 0 53667 &disable_so_mult_clocksource_53667
149361 +disable_so_irq_parport_53669 irq parport 0 53669 NULL
149362 +disable_so_apparmor_hash_size_vardecl_crypto_c_53670 apparmor_hash_size vardecl_crypto.c 0 53670 NULL
149363 +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
149364 +disable_so_si_do_program_memory_timing_parameters_fndecl_53672 si_do_program_memory_timing_parameters fndecl 0 53672 NULL
149365 +disable_so_addr_tx_desc_53676 addr tx_desc 0 53676 NULL
149366 +disable_so_put_unaligned_be16_fndecl_53677 put_unaligned_be16 fndecl 1 53677 NULL
149367 +disable_so_family_xfrm_usersa_id_53678 family xfrm_usersa_id 0 53678 NULL
149368 +disable_so_bcm54xx_ack_interrupt_fndecl_53685 bcm54xx_ack_interrupt fndecl 0 53685 NULL nohasharray
149369 +disable_so_svga_check_timings_fndecl_53685 svga_check_timings fndecl 3 53685 &disable_so_bcm54xx_ack_interrupt_fndecl_53685
149370 +disable_so_i40e_vc_add_mac_addr_msg_fndecl_53688 i40e_vc_add_mac_addr_msg fndecl 0-3 53688 NULL
149371 +disable_so_addr_mvfrey_inlist_entry_53690 addr mvfrey_inlist_entry 0 53690 NULL
149372 +disable_so_pch_src_uuid_hi_read_fndecl_53692 pch_src_uuid_hi_read fndecl 0 53692 NULL
149373 +disable_so___bitmap_intersects_fndecl_53698 __bitmap_intersects fndecl 3 53698 NULL
149374 +disable_so_atomic_open_fndecl_53702 atomic_open fndecl 0 53702 NULL
149375 +disable_so_address_dsp_scb_descriptor_53708 address dsp_scb_descriptor 0 53708 NULL
149376 +disable_so_timestamp_il_rx_phy_res_53714 timestamp il_rx_phy_res 0 53714 NULL
149377 +disable_so_start_time_edac_pci_ctl_info_53715 start_time edac_pci_ctl_info 0 53715 NULL
149378 +disable_so_show_forward_delay_timer_fndecl_53717 show_forward_delay_timer fndecl 0 53717 NULL nohasharray
149379 +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
149380 +disable_so_memory_address_range_set_error_type_with_address_53722 memory_address_range set_error_type_with_address 0 53722 NULL
149381 +disable_so_sm501_find_clock_fndecl_53729 sm501_find_clock fndecl 3-0 53729 NULL
149382 +disable_so___round_jiffies_relative_fndecl_53743 __round_jiffies_relative fndecl 2-0-1 53743 NULL
149383 +disable_so_ccp_aes_xts_crypt_fndecl_53745 ccp_aes_xts_crypt fndecl 0 53745 NULL
149384 +disable_so_buf_addr_mlx5_ib_create_cq_53754 buf_addr mlx5_ib_create_cq 0 53754 NULL
149385 +disable_so_i_gid_sysv_inode_53757 i_gid sysv_inode 0 53757 NULL
149386 +disable_so_address_fm10k_fault_53764 address fm10k_fault 0 53764 NULL
149387 +disable_so_ntb_set_mw_addr_fndecl_53775 ntb_set_mw_addr fndecl 3 53775 NULL
149388 +disable_so_rx_bd_haddr_lo_bnx2_rx_bd_53781 rx_bd_haddr_lo bnx2_rx_bd 0 53781 NULL
149389 +disable_so_set_rfreg_rtl_hal_ops_53782 set_rfreg rtl_hal_ops 3-5 53782 NULL
149390 +disable_so_kstrtoll_fndecl_53783 kstrtoll fndecl 0 53783 NULL
149391 +disable_so_btrfs_set_token_64_fndecl_53792 btrfs_set_token_64 fndecl 3-4 53792 NULL
149392 +disable_so_clock_dw_mci_slot_53801 clock dw_mci_slot 0 53801 NULL nohasharray
149393 +disable_so_i_uid_nilfs_inode_53801 i_uid nilfs_inode 0 53801 &disable_so_clock_dw_mci_slot_53801
149394 +disable_so_packet_len_2_sched_time_fndecl_53809 packet_len_2_sched_time fndecl 0-1 53809 NULL
149395 +disable_so_calc_div_fndecl_53821 calc_div fndecl 0-1 53821 NULL
149396 +disable_so_rsvd_pbl_addr_tpt_entry_53834 rsvd_pbl_addr tpt_entry 0 53834 NULL nohasharray
149397 +disable_so_dsc_rw_frequency_idetape_config_53834 dsc_rw_frequency idetape_config 0 53834 &disable_so_rsvd_pbl_addr_tpt_entry_53834
149398 +disable_so_ahc_get_sense_bufaddr_fndecl_53837 ahc_get_sense_bufaddr fndecl 0 53837 NULL
149399 +disable_so_jiffies_at_alloc_scsi_cmnd_53839 jiffies_at_alloc scsi_cmnd 0 53839 NULL
149400 +disable_so_sense_addr_orc_scb_53841 sense_addr orc_scb 0 53841 NULL
149401 +disable_so_stall_timeout_xenvif_53851 stall_timeout xenvif 0 53851 NULL
149402 +disable_so_tlv_put_btrfs_timespec_fndecl_53854 tlv_put_btrfs_timespec fndecl 0 53854 NULL
149403 +disable_so_nfsd4_decode_time_fndecl_53864 nfsd4_decode_time fndecl 0 53864 NULL
149404 +disable_so_threshold_target_nes_hw_tune_timer_53868 threshold_target nes_hw_tune_timer 0 53868 NULL
149405 +disable_so_i_uid_bfs_inode_53869 i_uid bfs_inode 0 53869 NULL
149406 +disable_so_vidioc_query_dv_timings_fndecl_53872 vidioc_query_dv_timings fndecl 0 53872 NULL
149407 +disable_so_rtl2832_sleep_fndecl_53873 rtl2832_sleep fndecl 0 53873 NULL
149408 +disable_so_snd_soc_update_bits_fndecl_53881 snd_soc_update_bits fndecl 0-2-4-3 53881 NULL
149409 +disable_so_sched_clock_fndecl_53886 sched_clock fndecl 0 53886 NULL
149410 +disable_so_ps_poll_upsd_timeouts_read_fndecl_53888 ps_poll_upsd_timeouts_read fndecl 3 53888 NULL
149411 +disable_so_pmdown_time_set_fndecl_53891 pmdown_time_set fndecl 0-4 53891 NULL
149412 +disable_so_sync_endtime_ip_vs_conn_53903 sync_endtime ip_vs_conn 0 53903 NULL
149413 +disable_so_timeout_c_tpm_vendor_specific_53905 timeout_c tpm_vendor_specific 0 53905 NULL
149414 +disable_so_i2c_address_mxl5005s_config_53906 i2c_address mxl5005s_config 0 53906 NULL
149415 +disable_so_bin_dn_node_address_fndecl_53909 bin_dn_node_address fndecl 0 53909 NULL
149416 +disable_so_i2c_addr_dib3000mc_state_53912 i2c_addr dib3000mc_state 0 53912 NULL
149417 +disable_so_musb_schedule_fndecl_53920 musb_schedule fndecl 3-0 53920 NULL
149418 +disable_so_card_addr_pcmcia_device_53921 card_addr pcmcia_device 0 53921 NULL
149419 +disable_so_freq_si476x_tune_freq_args_53927 freq si476x_tune_freq_args 0 53927 NULL
149420 +disable_so_xfrm_dst_hash_transfer_fndecl_53935 xfrm_dst_hash_transfer fndecl 4 53935 NULL
149421 +disable_so_fs_time_ufs_super_block_first_53936 fs_time ufs_super_block_first 0 53936 NULL
149422 +disable_so_buffer_addr_ath6kl_dbglog_buf_53947 buffer_addr ath6kl_dbglog_buf 0 53947 NULL
149423 +disable_so_drbd_send_bitmap_fndecl_53952 drbd_send_bitmap fndecl 0 53952 NULL
149424 +disable_so_xfs_kuid_to_uid_fndecl_53958 xfs_kuid_to_uid fndecl 0 53958 NULL
149425 +disable_so_addr_off_bfa_flash_53970 addr_off bfa_flash 0 53970 NULL
149426 +disable_so_string_langid_usb_device_53974 string_langid usb_device 0 53974 NULL
149427 +disable_so_src_addr_qla4_83xx_pex_dma_descriptor_53995 src_addr qla4_83xx_pex_dma_descriptor 0 53995 NULL
149428 +disable_so_crc32_pclmul_mod_init_fndecl_53996 crc32_pclmul_mod_init fndecl 0 53996 NULL
149429 +disable_so_range_to_mtrr_with_hole_fndecl_53998 range_to_mtrr_with_hole fndecl 0-2-3 53998 NULL
149430 +disable_so_cpu_cpufreq_freqs_54025 cpu cpufreq_freqs 0 54025 NULL
149431 +disable_so_read_addr_qla83xx_minidump_entry_pollrd_54033 read_addr qla83xx_minidump_entry_pollrd 0 54033 NULL
149432 +disable_so_wall_time_coarse_nsec_vsyscall_gtod_data_54044 wall_time_coarse_nsec vsyscall_gtod_data 0 54044 NULL
149433 +disable_so_HTotal_xtimings_54045 HTotal xtimings 0 54045 NULL
149434 +disable_so_hpi_cobranet_get_static_ip_address_fndecl_54046 hpi_cobranet_get_static_ip_address fndecl 1 54046 NULL
149435 +disable_so_device_reset_timer_mipi_config_54052 device_reset_timer mipi_config 0 54052 NULL
149436 +disable_so_myri10ge_watchdog_timeout_vardecl_myri10ge_c_54061 myri10ge_watchdog_timeout vardecl_myri10ge.c 0 54061 NULL
149437 +disable_so_slope_div_nvbios_therm_sensor_54063 slope_div nvbios_therm_sensor 0 54063 NULL
149438 +disable_so_cg_spll_func_cntl_rv770_clock_registers_54065 cg_spll_func_cntl rv770_clock_registers 0 54065 NULL
149439 +disable_so_custom_divisor_serial_struct_54066 custom_divisor serial_struct 0 54066 NULL
149440 +disable_so_cq_get_mtt_addr_fndecl_54071 cq_get_mtt_addr fndecl 0 54071 NULL
149441 +disable_so_stack_maxrandom_size_fndecl_54078 stack_maxrandom_size fndecl 0 54078 NULL
149442 +disable_so_ktime_get_mono_fast_ns_fndecl_54083 ktime_get_mono_fast_ns fndecl 0 54083 NULL
149443 +disable_so_reachable_time_neigh_parms_54094 reachable_time neigh_parms 0 54094 NULL
149444 +disable_so_hid_time_parse_report_fndecl_54114 hid_time_parse_report fndecl 0 54114 NULL
149445 +disable_so_baddr0_gru_instruction_54117 baddr0 gru_instruction 0 54117 NULL
149446 +disable_so_time_in_queue_disk_stats_54131 time_in_queue disk_stats 0 54131 NULL
149447 +disable_so_smsc95xx_set_mac_address_fndecl_54135 smsc95xx_set_mac_address fndecl 0 54135 NULL
149448 +disable_so_sysctl_numa_balancing_scan_delay_vardecl_54140 sysctl_numa_balancing_scan_delay vardecl 0 54140 NULL nohasharray
149449 +disable_so_tun16_to_cpu_fndecl_54140 tun16_to_cpu fndecl 0-2 54140 &disable_so_sysctl_numa_balancing_scan_delay_vardecl_54140
149450 +disable_so_addr_2_qla8044_minidump_entry_pollrdmwr_54142 addr_2 qla8044_minidump_entry_pollrdmwr 0 54142 NULL
149451 +disable_so___xfrm6_pref_hash_fndecl_54144 __xfrm6_pref_hash fndecl 0 54144 NULL
149452 +disable_so_sm501_select_clock_fndecl_54146 sm501_select_clock fndecl 1-0 54146 NULL
149453 +disable_so_x86_acpi_enter_sleep_state_fndecl_54149 x86_acpi_enter_sleep_state fndecl 0-1 54149 NULL
149454 +disable_so_ips_fix_ffdc_time_fndecl_54151 ips_fix_ffdc_time fndecl 3 54151 NULL
149455 +disable_so_set_var_mtrr_range_fndecl_54160 set_var_mtrr_range fndecl 2-3 54160 NULL nohasharray
149456 +disable_so_bi_blocks_gfs2_bitmap_54160 bi_blocks gfs2_bitmap 0 54160 &disable_so_set_var_mtrr_range_fndecl_54160
149457 +disable_so_ath10k_recalc_rtscts_prot_fndecl_54161 ath10k_recalc_rtscts_prot fndecl 0 54161 NULL
149458 +disable_so_i915_frequency_info_fndecl_54168 i915_frequency_info fndecl 0 54168 NULL
149459 +disable_so_store_fast_charge_timer_fndecl_54173 store_fast_charge_timer fndecl 0-4 54173 NULL
149460 +disable_so_compat_put_bitmap_fndecl_54182 compat_put_bitmap fndecl 0-3 54182 NULL
149461 +disable_so_cccr_address_p4_counter_binding_54184 cccr_address p4_counter_binding 0 54184 NULL
149462 +disable_so_extra_buf2_address_ene_device_54188 extra_buf2_address ene_device 0 54188 NULL
149463 +disable_so_gr_insert_uid_fndecl_54189 gr_insert_uid fndecl 2 54189 NULL
149464 +disable_so_addr_wil_fw_record_data_54198 addr wil_fw_record_data 0 54198 NULL
149465 +disable_so_hash_mask_dm_exception_table_54212 hash_mask dm_exception_table 0 54212 NULL
149466 +disable_so_cir_addr_ite_dev_54217 cir_addr ite_dev 0 54217 NULL
149467 +disable_so_end_fixed_mtrr_segment_54218 end fixed_mtrr_segment 0 54218 NULL
149468 +disable_so_timer_in_use_min_nes_hw_tune_timer_54220 timer_in_use_min nes_hw_tune_timer 0 54220 NULL
149469 +disable_so_act8b_ata_timing_54221 act8b ata_timing 0 54221 NULL
149470 +disable_so_psmouse_interrupt_fndecl_54222 psmouse_interrupt fndecl 2 54222 NULL
149471 +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
149472 +disable_so__freq_tbl_determine_rate_fndecl_54245 _freq_tbl_determine_rate fndecl 0 54245 NULL
149473 +disable_so_tm_hour_rtc_time_54254 tm_hour rtc_time 0 54254 NULL
149474 +disable_so_efx_nic_init_interrupt_fndecl_54259 efx_nic_init_interrupt fndecl 0 54259 NULL
149475 +disable_so_dr_addr_qla8044_quad_entry_54260 dr_addr qla8044_quad_entry 0 54260 NULL
149476 +disable_so_integer_pll_div_54261 integer pll_div 0 54261 NULL nohasharray
149477 +disable_so_buf_addr_brcmf_pcie_console_54261 buf_addr brcmf_pcie_console 0 54261 &disable_so_integer_pll_div_54261
149478 +disable_so_fandiv2_w83627ehf_data_54263 fandiv2 w83627ehf_data 0 54263 NULL
149479 +disable_so_gf_numsrc_group_filter_54274 gf_numsrc group_filter 0 54274 NULL
149480 +disable_so_adis_write_reg_fndecl_54282 adis_write_reg fndecl 0 54282 NULL
149481 +disable_so_last_commit_jiffies_pool_54290 last_commit_jiffies pool 0 54290 NULL nohasharray
149482 +disable_so_btree_cache_used_cache_set_54290 btree_cache_used cache_set 0 54290 &disable_so_last_commit_jiffies_pool_54290
149483 +disable_so_hid_time_probe_fndecl_54292 hid_time_probe fndecl 0 54292 NULL
149484 +disable_so_cgroup_subtree_control_write_fndecl_54294 cgroup_subtree_control_write fndecl 0-3 54294 NULL
149485 +disable_so_hpt3x2n_set_clock_fndecl_54295 hpt3x2n_set_clock fndecl 2 54295 NULL
149486 +disable_so_timestamp_nfs4_layoutget_args_54296 timestamp nfs4_layoutget_args 0 54296 NULL
149487 +disable_so_mic_setup_interrupts_fndecl_54300 mic_setup_interrupts fndecl 0 54300 NULL
149488 +disable_so_imsf_numsrc_ip_msfilter_54312 imsf_numsrc ip_msfilter 0 54312 NULL
149489 +disable_so_dma_addr_solos_skb_cb_54324 dma_addr solos_skb_cb 0 54324 NULL
149490 +disable_so_irq_domain_set_info_fndecl_54334 irq_domain_set_info fndecl 3-2 54334 NULL
149491 +disable_so_ks108_set_yaddr_fndecl_54335 ks108_set_yaddr fndecl 2-3 54335 NULL
149492 +disable_so_lfo1delay_soundfont_voice_parm_54350 lfo1delay soundfont_voice_parm 0 54350 NULL
149493 +disable_so_netxen_get_ioaddr_fndecl_54354 netxen_get_ioaddr fndecl 2 54354 NULL
149494 +disable_so_addrs_per_inode_fndecl_54364 addrs_per_inode fndecl 0 54364 NULL
149495 +disable_so_msr_rsc_54369 msr rsc 0 54369 NULL
149496 +disable_so_busaddr_CommandList_54370 busaddr CommandList 0 54370 NULL
149497 +disable_so_paddr_mwifiex_pfu_buf_desc_54374 paddr mwifiex_pfu_buf_desc 0 54374 NULL
149498 +disable_so_ieee80211_aes_key_setup_encrypt_fndecl_54383 ieee80211_aes_key_setup_encrypt fndecl 2-3 54383 NULL
149499 +disable_so_cpumask_parse_user_fndecl_54390 cpumask_parse_user fndecl 0-2 54390 NULL
149500 +disable_so_ack_signal_zd_mac_54391 ack_signal zd_mac 0 54391 NULL
149501 +disable_so_addr_lp855x_rom_data_54408 addr lp855x_rom_data 0 54408 NULL
149502 +disable_so_ar9003_mci_wait_for_interrupt_fndecl_54411 ar9003_mci_wait_for_interrupt fndecl 2-3 54411 NULL
149503 +disable_so_enable_timeout_sdio_func_54417 enable_timeout sdio_func 0 54417 NULL
149504 +disable_so_overrun_time_n_tty_data_54426 overrun_time n_tty_data 0 54426 NULL
149505 +disable_so_seq_netlbl_cipsov4_doiwalk_arg_54427 seq netlbl_cipsov4_doiwalk_arg 0 54427 NULL
149506 +disable_so_addr_hi_ocrdma_sge_54434 addr_hi ocrdma_sge 0 54434 NULL
149507 +disable_so_lcq_addr_hi_fcoe_kwqe_conn_offload4_54436 lcq_addr_hi fcoe_kwqe_conn_offload4 0 54436 NULL
149508 +disable_so_avc_ca_get_time_date_fndecl_54437 avc_ca_get_time_date fndecl 0 54437 NULL
149509 +disable_so_msg_rtime_msqid64_ds_54442 msg_rtime msqid64_ds 0 54442 NULL
149510 +disable_so_delay_vardecl_wm9705_c_54454 delay vardecl_wm9705.c 0 54454 NULL
149511 +disable_so_hpi_set_address_fndecl_54461 hpi_set_address fndecl 2 54461 NULL
149512 +disable_so_seq_nft_ctx_54462 seq nft_ctx 0 54462 NULL
149513 +disable_so_dm_btree_remove_fndecl_54463 dm_btree_remove fndecl 0-2 54463 NULL
149514 +disable_so_stv0297_set_initialdemodfreq_fndecl_54465 stv0297_set_initialdemodfreq fndecl 2 54465 NULL
149515 +disable_so_shdwreg_addr_lo_addr_ctrl_blk_54466 shdwreg_addr_lo addr_ctrl_blk 0 54466 NULL
149516 +disable_so_i2c_dev_addr_au0828_rc_54470 i2c_dev_addr au0828_rc 0 54470 NULL
149517 +disable_so_sha256_generic_mod_init_fndecl_54474 sha256_generic_mod_init fndecl 0 54474 NULL
149518 +disable_so_kdiv_skl_wrpll_params_54475 kdiv skl_wrpll_params 0 54475 NULL
149519 +disable_so_ocfs2_divide_xattr_cluster_fndecl_54477 ocfs2_divide_xattr_cluster fndecl 0 54477 NULL
149520 +disable_so_addr_gsm_msg_54481 addr gsm_msg 0 54481 NULL
149521 +disable_so_select_delay_floppy_drive_params_54487 select_delay floppy_drive_params 0 54487 NULL
149522 +disable_so_dm_btree_find_highest_key_fndecl_54489 dm_btree_find_highest_key fndecl 0-2 54489 NULL
149523 +disable_so_last_retry_addr_kvm_vcpu_arch_54492 last_retry_addr kvm_vcpu_arch 0 54492 NULL
149524 +disable_so_default_delay_pi_protocol_54493 default_delay pi_protocol 0 54493 NULL
149525 +disable_so_dummy_dma_page_physical_address_r592_device_54497 dummy_dma_page_physical_address r592_device 0 54497 NULL
149526 +disable_so_drbg_hash_update_fndecl_54501 drbg_hash_update fndecl 0 54501 NULL
149527 +disable_so_cryptd_blkcipher_setkey_fndecl_54506 cryptd_blkcipher_setkey fndecl 0-3 54506 NULL
149528 +disable_so_mounted_uid_ncp_fs_info_v2_54511 mounted_uid ncp_fs_info_v2 0 54511 NULL
149529 +disable_so_htc_ext_addr_ath6kl_mbox_info_54517 htc_ext_addr ath6kl_mbox_info 0 54517 NULL
149530 +disable_so_xen_pmd_val_fndecl_54519 xen_pmd_val fndecl 0 54519 NULL
149531 +disable_so_incr_cpu_itimer_54530 incr cpu_itimer 0 54530 NULL
149532 +disable_so_fw_blob_dest_addr_pn544_i2c_phy_54532 fw_blob_dest_addr pn544_i2c_phy 0 54532 NULL
149533 +disable_so_ip_addr_nx_ip_list_54540 ip_addr nx_ip_list 0 54540 NULL
149534 +disable_so_test_ahash_cycles_digest_fndecl_54541 test_ahash_cycles_digest fndecl 0 54541 NULL
149535 +disable_so_tegra_sflash_runtime_resume_fndecl_54543 tegra_sflash_runtime_resume fndecl 0 54543 NULL
149536 +disable_so_start_addr_qlcnic_flt_entry_54564 start_addr qlcnic_flt_entry 0 54564 NULL
149537 +disable_so_addr_lo_tg3_rx_buffer_desc_54565 addr_lo tg3_rx_buffer_desc 0 54565 NULL
149538 +disable_so_btrfs_free_space_bitmaps_fndecl_54566 btrfs_free_space_bitmaps fndecl 0 54566 NULL nohasharray
149539 +disable_so_crypto_rfc4309_decrypt_fndecl_54566 crypto_rfc4309_decrypt fndecl 0 54566 &disable_so_btrfs_free_space_bitmaps_fndecl_54566
149540 +disable_so_crypto_ahash_op_fndecl_54569 crypto_ahash_op fndecl 0 54569 NULL
149541 +disable_so_rbt_ib_umem_compute_subtree_last_fndecl_54589 rbt_ib_umem_compute_subtree_last fndecl 0 54589 NULL
149542 +disable_so_ap_sleep_wlcore_ops_54591 ap_sleep wlcore_ops 0 54591 NULL
149543 +disable_so_get_freq_adis16400_chip_info_54596 get_freq adis16400_chip_info 0 54596 NULL
149544 +disable_so_entries_dmaaddr_snd_trident_tlb_54601 entries_dmaaddr snd_trident_tlb 0 54601 NULL
149545 +disable_so_hwrqaddr_fw_ri_init_54619 hwrqaddr fw_ri_init 0 54619 NULL
149546 +disable_so_rs_user_addr_rds_sock_54620 rs_user_addr rds_sock 0 54620 NULL
149547 +disable_so_snd_timer_global_new_fndecl_54623 snd_timer_global_new fndecl 2-0 54623 NULL
149548 +disable_so_rsi_setclock_fndecl_54628 rsi_setclock fndecl 2 54628 NULL
149549 +disable_so_addr_ct_vm_block_54632 addr ct_vm_block 0 54632 NULL
149550 +disable_so_read_addr_qla8044_minidump_entry_mux_54633 read_addr qla8044_minidump_entry_mux 0 54633 NULL
149551 +disable_so_queue_delayed_work_on_fndecl_54644 queue_delayed_work_on fndecl 1-4 54644 NULL
149552 +disable_so_arcmsr_adjust_disk_queue_depth_fndecl_54647 arcmsr_adjust_disk_queue_depth fndecl 0-2 54647 NULL
149553 +disable_so_mpihelp_mul_1_fndecl_54658 mpihelp_mul_1 fndecl 3 54658 NULL
149554 +disable_so_bitmap_ipmac_do_add_fndecl_54672 bitmap_ipmac_do_add fndecl 4 54672 NULL
149555 +disable_so_paddr_fsl_asrc_54677 paddr fsl_asrc 0 54677 NULL
149556 +disable_so_sil_iowrite32_fndecl_54679 sil_iowrite32 fndecl 3-2 54679 NULL
149557 +disable_so_adv_smbus_write_byte_data_fndecl_54684 adv_smbus_write_byte_data fndecl 2-3-0 54684 NULL
149558 +disable_so_delay_snd_pcm_runtime_54685 delay snd_pcm_runtime 0 54685 NULL
149559 +disable_so_cp_blkaddr_f2fs_super_block_54690 cp_blkaddr f2fs_super_block 0 54690 NULL
149560 +disable_so_schedule_erase_fndecl_54695 schedule_erase fndecl 4-3 54695 NULL
149561 +disable_so_mesh_set_short_slot_time_fndecl_54696 mesh_set_short_slot_time fndecl 0 54696 NULL
149562 +disable_so_pll2_ndiv_a_cnt_ad9523_platform_data_54701 pll2_ndiv_a_cnt ad9523_platform_data 0 54701 NULL
149563 +disable_so_dirtytime_expire_interval_vardecl_54714 dirtytime_expire_interval vardecl 0 54714 NULL nohasharray
149564 +disable_so_cdv_intel_crtc_clock_get_fndecl_54714 cdv_intel_crtc_clock_get fndecl 0 54714 &disable_so_dirtytime_expire_interval_vardecl_54714
149565 +disable_so_timeout_vardecl_w83627hf_wdt_c_54716 timeout vardecl_w83627hf_wdt.c 0 54716 NULL
149566 +disable_so_ccp_addr_hi_fndecl_54724 ccp_addr_hi fndecl 0 54724 NULL nohasharray
149567 +disable_so_usnic_fwd_add_ipaddr_fndecl_54724 usnic_fwd_add_ipaddr fndecl 2 54724 &disable_so_ccp_addr_hi_fndecl_54724
149568 +disable_so_encrypt_ablkcipher_tfm_54728 encrypt ablkcipher_tfm 0 54728 NULL
149569 +disable_so_dp83640_ack_interrupt_fndecl_54729 dp83640_ack_interrupt fndecl 0 54729 NULL
149570 +disable_so_crypto_pcbc_decrypt_fndecl_54732 crypto_pcbc_decrypt fndecl 0-4 54732 NULL
149571 +disable_so_jackdetect_debounce_time_adau1761_platform_data_54736 jackdetect_debounce_time adau1761_platform_data 0 54736 NULL
149572 +disable_so_ism1_runtime_sc_54739 ism1 runtime_sc 0 54739 NULL
149573 +disable_so___hw_addr_sync_multiple_fndecl_54744 __hw_addr_sync_multiple fndecl 0-3 54744 NULL nohasharray
149574 +disable_so_irq_modify_status_fndecl_54744 irq_modify_status fndecl 1 54744 &disable_so___hw_addr_sync_multiple_fndecl_54744
149575 +disable_so_vfreq_aspect_std_timing_54751 vfreq_aspect std_timing 0 54751 NULL
149576 +disable_so_sd_gid_stat_data_54756 sd_gid stat_data 0 54756 NULL
149577 +disable_so_buffer_addr_m3_dma_54757 buffer_addr m3_dma 0 54757 NULL
149578 +disable_so_driver_timestamp_qla4_8xxx_minidump_template_hdr_54761 driver_timestamp qla4_8xxx_minidump_template_hdr 0 54761 NULL
149579 +disable_so_bitmap_root_ll_disk_54791 bitmap_root ll_disk 0 54791 NULL
149580 +disable_so_addr_to_sbp2_pointer_fndecl_54805 addr_to_sbp2_pointer fndecl 1 54805 NULL
149581 +disable_so_i2c_addr_af9013_config_54806 i2c_addr af9013_config 0 54806 NULL
149582 +disable_so_runtime_sched_dl_entity_54815 runtime sched_dl_entity 0 54815 NULL
149583 +disable_so_signal_rtl8187_rx_hdr_54828 signal rtl8187_rx_hdr 0 54828 NULL
149584 +disable_so_gid_list_dma_qla_hw_data_54829 gid_list_dma qla_hw_data 0 54829 NULL
149585 +disable_so_tsi721_omsg_interrupt_enable_fndecl_54831 tsi721_omsg_interrupt_enable fndecl 3-2 54831 NULL
149586 +disable_so_nsec_pps_ktime_54835 nsec pps_ktime 0 54835 NULL
149587 +disable_so_timeout_xfrm_policy_queue_54847 timeout xfrm_policy_queue 0 54847 NULL
149588 +disable_so_uid_used_vardecl_gracl_segv_c_54850 uid_used vardecl_gracl_segv.c 0 54850 NULL
149589 +disable_so_regmap_update_bits_fndecl_54855 regmap_update_bits fndecl 0-2-4-3 54855 NULL
149590 +disable_so_next_status_checked_time_netup_ci_state_54858 next_status_checked_time netup_ci_state 0 54858 NULL
149591 +disable_so_dma_addr_s_txd_os_54860 dma_addr s_txd_os 0 54860 NULL
149592 +disable_so_tms_cstime_compat_tms_54864 tms_cstime compat_tms 0 54864 NULL
149593 +disable_so_reply_dma_max_address_MPT3SAS_ADAPTER_54869 reply_dma_max_address MPT3SAS_ADAPTER 0 54869 NULL
149594 +disable_so_tsc_read_refs_fndecl_54873 tsc_read_refs fndecl 0 54873 NULL
149595 +disable_so_tpm_get_timeouts_fndecl_54878 tpm_get_timeouts fndecl 0 54878 NULL
149596 +disable_so_dn_hash_dump_bucket_fndecl_54884 dn_hash_dump_bucket fndecl 0 54884 NULL
149597 +disable_so_queue_timeout_fndecl_54887 queue_timeout fndecl 2 54887 NULL
149598 +disable_so_T5_address_mxt_data_54888 T5_address mxt_data 0 54888 NULL
149599 +disable_so_arizona_runtime_resume_fndecl_54897 arizona_runtime_resume fndecl 0 54897 NULL
149600 +disable_so_udp_timeout_ip_vs_timeout_user_54908 udp_timeout ip_vs_timeout_user 0 54908 NULL
149601 +disable_so_idiag_uid_inet_diag_msg_54913 idiag_uid inet_diag_msg 0 54913 NULL nohasharray
149602 +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
149603 +disable_so_aty_st_le32_fndecl_54925 aty_st_le32 fndecl 2 54925 NULL
149604 +disable_so_saffirepro_both_clk_freq_set_fndecl_54935 saffirepro_both_clk_freq_set fndecl 0 54935 NULL
149605 +disable_so_mcryptd_hash_finup_fndecl_54940 mcryptd_hash_finup fndecl 2 54940 NULL
149606 +disable_so_nla_put_be64_fndecl_54942 nla_put_be64 fndecl 0 54942 NULL
149607 +disable_so_delay_qlc_83xx_entry_hdr_54949 delay qlc_83xx_entry_hdr 0 54949 NULL
149608 +disable_so_dac33_dai_delay_fndecl_54952 dac33_dai_delay fndecl 0 54952 NULL nohasharray
149609 +disable_so_dmaaddr_cafe_priv_54952 dmaaddr cafe_priv 0 54952 &disable_so_dac33_dai_delay_fndecl_54952
149610 +disable_so_addr_hda_codec_54956 addr hda_codec 0 54956 NULL
149611 +disable_so_dummy_buffer_addr_lo_fcoe_kwqe_init1_54962 dummy_buffer_addr_lo fcoe_kwqe_init1 0 54962 NULL nohasharray
149612 +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
149613 +disable_so_default_timetolive_sctp_sock_54963 default_timetolive sctp_sock 0 54963 NULL
149614 +disable_so_test_acipher_cycles_fndecl_54972 test_acipher_cycles fndecl 0 54972 NULL
149615 +disable_so_last_jiffies_tick_sched_54974 last_jiffies tick_sched 0 54974 NULL
149616 +disable_so_offset_btrfs_delayed_data_ref_54980 offset btrfs_delayed_data_ref 0 54980 NULL
149617 +disable_so_toshiba_usb_sleep_music_set_fndecl_54986 toshiba_usb_sleep_music_set fndecl 0 54986 NULL
149618 +disable_so_addr_start_vardecl_init_64_c_54989 addr_start vardecl_init_64.c 0 54989 NULL
149619 +disable_so_seq_xfrm_user_acquire_54990 seq xfrm_user_acquire 0 54990 NULL
149620 +disable_so_setup_ide_timing_54997 setup ide_timing 0 54997 NULL
149621 +disable_so_dirtytime_interval_handler_fndecl_54998 dirtytime_interval_handler fndecl 0 54998 NULL
149622 +disable_so_last_heartbeat_timestamp_ctlr_info_55000 last_heartbeat_timestamp ctlr_info 0 55000 NULL
149623 +disable_so_bond_set_mac_address_fndecl_55006 bond_set_mac_address fndecl 0 55006 NULL
149624 +disable_so_curfreq_amradio_device_55017 curfreq amradio_device 0 55017 NULL
149625 +disable_so_time_mult_perf_event_mmap_page_55031 time_mult perf_event_mmap_page 0 55031 NULL nohasharray
149626 +disable_so___i2c_bit_add_bus_fndecl_55031 __i2c_bit_add_bus fndecl 0 55031 &disable_so_time_mult_perf_event_mmap_page_55031
149627 +disable_so_addr_f71882fg_data_55035 addr f71882fg_data 0 55035 NULL
149628 +disable_so_time_stamp_igb_tx_buffer_55041 time_stamp igb_tx_buffer 0 55041 NULL
149629 +disable_so_fsl_spdif_txclk_caldiv_fndecl_55042 fsl_spdif_txclk_caldiv fndecl 3-0 55042 NULL
149630 +disable_so_wall_time_coarse_sec_vsyscall_gtod_data_55048 wall_time_coarse_sec vsyscall_gtod_data 0 55048 NULL nohasharray
149631 +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
149632 +disable_so_enic_set_mac_address_fndecl_55049 enic_set_mac_address fndecl 0 55049 NULL
149633 +disable_so_bitmap_shift_left_fndecl_55055 bitmap_shift_left fndecl 3-4 55055 NULL
149634 +disable_so_uea_set_bulk_timeout_fndecl_55059 uea_set_bulk_timeout fndecl 2 55059 NULL
149635 +disable_so_xfs_btree_check_lblock_fndecl_55062 xfs_btree_check_lblock fndecl 0 55062 NULL
149636 +disable_so_addr_num_sctp_getaddrs_old_55065 addr_num sctp_getaddrs_old 0 55065 NULL
149637 +disable_so_random_ri_fndecl_55094 random_ri fndecl 0 55094 NULL
149638 +disable_so_rhashtable_insert_fast_fndecl_55105 rhashtable_insert_fast fndecl 0 55105 NULL
149639 +disable_so_val_nla_map_55108 val nla_map 0 55108 NULL
149640 +disable_so_sis_program_timings_fndecl_55111 sis_program_timings fndecl 2 55111 NULL
149641 +disable_so_crypto_authenc_esn_module_init_fndecl_55112 crypto_authenc_esn_module_init fndecl 0 55112 NULL
149642 +disable_so_open_d_r820t_freq_range_55124 open_d r820t_freq_range 0 55124 NULL
149643 +disable_so_b43legacy_set_slot_time_fndecl_55128 b43legacy_set_slot_time fndecl 2 55128 NULL nohasharray
149644 +disable_so_rowaddr_fndecl_55128 rowaddr fndecl 2 55128 &disable_so_b43legacy_set_slot_time_fndecl_55128 nohasharray
149645 +disable_so_iscsit_do_crypto_hash_sg_fndecl_55128 iscsit_do_crypto_hash_sg fndecl 4-5 55128 &disable_so_rowaddr_fndecl_55128 nohasharray
149646 +disable_so_padlock_sha1_final_fndecl_55128 padlock_sha1_final fndecl 0 55128 &disable_so_iscsit_do_crypto_hash_sg_fndecl_55128
149647 +disable_so_st_ctime_stat_55144 st_ctime stat 0 55144 NULL
149648 +disable_so_bma150_set_low_g_interrupt_fndecl_55166 bma150_set_low_g_interrupt fndecl 4-5-3-0 55166 NULL
149649 +disable_so_atomic_commit_drm_mode_config_funcs_55169 atomic_commit drm_mode_config_funcs 0 55169 NULL
149650 +disable_so_timeout_ns_mmc_data_55170 timeout_ns mmc_data 0 55170 NULL
149651 +disable_so_rq_addr_low_nes_qp_context_55197 rq_addr_low nes_qp_context 0 55197 NULL
149652 +disable_so_gaintime_tsl2563_gainlevel_coeff_55201 gaintime tsl2563_gainlevel_coeff 0 55201 NULL
149653 +disable_so_attr_timeout_fndecl_55204 attr_timeout fndecl 0 55204 NULL
149654 +disable_so_tx_addr_happy_meal_txd_55205 tx_addr happy_meal_txd 0 55205 NULL nohasharray
149655 +disable_so_hsync_v4l2_bt_timings_55205 hsync v4l2_bt_timings 0 55205 &disable_so_tx_addr_happy_meal_txd_55205
149656 +disable_so_decode_bitmap_fndecl_55218 decode_bitmap fndecl 0 55218 NULL
149657 +disable_so_p1_gma_clock_t_55221 p1 gma_clock_t 0 55221 NULL
149658 +disable_so_bitrate_can_bittiming_55225 bitrate can_bittiming 0 55225 NULL
149659 +disable_so_tqi_ready_time_ath5k_txq_info_55226 tqi_ready_time ath5k_txq_info 0 55226 NULL
149660 +disable_so_msr_seek_fndecl_55235 msr_seek fndecl 0-2 55235 NULL
149661 +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
149662 +disable_so_ac97_clock_vardecl_via82xx_c_55242 ac97_clock vardecl_via82xx.c 0 55242 NULL
149663 +disable_so_si2157_sleep_fndecl_55246 si2157_sleep fndecl 0 55246 NULL
149664 +disable_so_max8925_rtc_read_time_fndecl_55254 max8925_rtc_read_time fndecl 0 55254 NULL
149665 +disable_so_di_gid_efs_dinode_55256 di_gid efs_dinode 0 55256 NULL
149666 +disable_so_elan_i2c_sleep_control_fndecl_55264 elan_i2c_sleep_control fndecl 0 55264 NULL
149667 +disable_so_freq_reg_info_regd_fndecl_55266 freq_reg_info_regd fndecl 2 55266 NULL
149668 +disable_so_int_coalescing_timer_ahd_softc_55267 int_coalescing_timer ahd_softc 0 55267 NULL
149669 +disable_so_grsec_alert_wtime_vardecl_55279 grsec_alert_wtime vardecl 0 55279 NULL
149670 +disable_so_btrfs_inode_gid_fndecl_55281 btrfs_inode_gid fndecl 0 55281 NULL
149671 +disable_so_ebitmap_node_set_bit_fndecl_55285 ebitmap_node_set_bit fndecl 2 55285 NULL
149672 +disable_so_gpu_addr_kfd_mem_obj_55286 gpu_addr kfd_mem_obj 0 55286 NULL
149673 +disable_so_smp_random_fndecl_55288 smp_random fndecl 0 55288 NULL
149674 +disable_so_start_rmt_timer1_fndecl_55290 start_rmt_timer1 fndecl 2 55290 NULL
149675 +disable_so_cit_setkey_cipher_tfm_55304 cit_setkey cipher_tfm 0-3 55304 NULL
149676 +disable_so_grpfreq_pca963x_chipdef_55310 grpfreq pca963x_chipdef 0 55310 NULL
149677 +disable_so_mb_dma_address_skd_special_context_55312 mb_dma_address skd_special_context 0 55312 NULL
149678 +disable_so_t4_fwaddrspace_write_fndecl_55313 t4_fwaddrspace_write fndecl 0-2 55313 NULL
149679 +disable_so_num_msrs_to_save_vardecl_x86_c_55317 num_msrs_to_save vardecl_x86.c 0 55317 NULL
149680 +disable_so_cdc_ncm_show_tx_timer_usecs_fndecl_55319 cdc_ncm_show_tx_timer_usecs fndecl 0 55319 NULL
149681 +disable_so_sum_exec_runtime_task_cputime_55320 sum_exec_runtime task_cputime 0 55320 NULL
149682 +disable_so_crypto_hash_final_fndecl_55327 crypto_hash_final fndecl 0 55327 NULL
149683 +disable_so___irq_domain_add_fndecl_55334 __irq_domain_add fndecl 2-3 55334 NULL
149684 +disable_so_end_addr_p54_tx_info_55335 end_addr p54_tx_info 0 55335 NULL
149685 +disable_so_pre_div_pll__55336 pre_div pll_ 0 55336 NULL nohasharray
149686 +disable_so_als_adjust_channel_bit_mask_fndecl_55336 als_adjust_channel_bit_mask fndecl 3 55336 &disable_so_pre_div_pll__55336
149687 +disable_so_write_timeout_cdrom_info_55346 write_timeout cdrom_info 0 55346 NULL nohasharray
149688 +disable_so_crypto_ecb_decrypt_fndecl_55346 crypto_ecb_decrypt fndecl 0-4 55346 &disable_so_write_timeout_cdrom_info_55346
149689 +disable_so_audit_set_backlog_wait_time_fndecl_55349 audit_set_backlog_wait_time fndecl 1-0 55349 NULL
149690 +disable_so_show_risefalltime_fndecl_55351 show_risefalltime fndecl 4-0 55351 NULL
149691 +disable_so_ahash_def_finup_done2_fndecl_55353 ahash_def_finup_done2 fndecl 2 55353 NULL
149692 +disable_so_dm_btree_lookup_fndecl_55361 dm_btree_lookup fndecl 0-2 55361 NULL
149693 +disable_so_drm_prime_sg_to_page_addr_arrays_fndecl_55369 drm_prime_sg_to_page_addr_arrays fndecl 4 55369 NULL
149694 +disable_so_real_clock_atom_clock_dividers_55377 real_clock atom_clock_dividers 0 55377 NULL
149695 +disable_so_div_f1_pll_values_55378 div_f1 pll_values 0 55378 NULL
149696 +disable_so_pci_address_hpt_iopsg_55384 pci_address hpt_iopsg 0 55384 NULL
149697 +disable_so_inode_id_btrfs_delayed_node_55390 inode_id btrfs_delayed_node 0 55390 NULL
149698 +disable_so_write32_bcma_host_ops_55392 write32 bcma_host_ops 3 55392 NULL
149699 +disable_so_freq_libipw_channel_55395 freq libipw_channel 0 55395 NULL nohasharray
149700 +disable_so_maxlen_img_ir_free_timing_55395 maxlen img_ir_free_timing 0 55395 &disable_so_freq_libipw_channel_55395
149701 +disable_so_tgid_autofs_wait_queue_55396 tgid autofs_wait_queue 0 55396 NULL
149702 +disable_so_init_latch_addr_flash_data_55405 init latch_addr_flash_data 2 55405 NULL
149703 +disable_so_di_ctime_nsec_gfs2_dinode_55408 di_ctime_nsec gfs2_dinode 0 55408 NULL nohasharray
149704 +disable_so_hdspm_round_frequency_fndecl_55408 hdspm_round_frequency fndecl 0-1 55408 &disable_so_di_ctime_nsec_gfs2_dinode_55408
149705 +disable_so_time_expires_NCR5380_hostdata_55415 time_expires NCR5380_hostdata 0 55415 NULL
149706 +disable_so___cpu_to_virtio16_fndecl_55418 __cpu_to_virtio16 fndecl 0-2 55418 NULL
149707 +disable_so_ktime_get_seconds_fndecl_55426 ktime_get_seconds fndecl 0 55426 NULL
149708 +disable_so_start_pci_bus_region_55432 start pci_bus_region 0 55432 NULL
149709 +disable_so_uid_h_misc_55433 uid h_misc 0 55433 NULL
149710 +disable_so_clock_drm_display_mode_55440 clock drm_display_mode 0 55440 NULL
149711 +disable_so_show_pci_clock_fndecl_55445 show_pci_clock fndecl 0 55445 NULL
149712 +disable_so_locks_mul_rhashtable_params_55448 locks_mul rhashtable_params 0 55448 NULL
149713 +disable_so_ds2404_read_time_fndecl_55458 ds2404_read_time fndecl 0 55458 NULL
149714 +disable_so_freq_reg_info_fndecl_55465 freq_reg_info fndecl 2 55465 NULL
149715 +disable_so_buffer_addr_nm256_55469 buffer_addr nm256 0 55469 NULL
149716 +disable_so_gr_find_uid_fndecl_55479 gr_find_uid fndecl 0-1 55479 NULL
149717 +disable_so_crypto_report_fndecl_55482 crypto_report fndecl 0 55482 NULL
149718 +disable_so_si470x_set_freq_fndecl_55487 si470x_set_freq fndecl 2 55487 NULL
149719 +disable_so_addr_nvif_ioctl_wr_v0_55489 addr nvif_ioctl_wr_v0 0 55489 NULL
149720 +disable_so_vruntime_sched_entity_55490 vruntime sched_entity 0 55490 NULL nohasharray
149721 +disable_so_hdelay_bttv_geometry_55490 hdelay bttv_geometry 0 55490 &disable_so_vruntime_sched_entity_55490 nohasharray
149722 +disable_so_btrfs_bitmap_cluster_fndecl_55490 btrfs_bitmap_cluster fndecl 4-5-6-7 55490 &disable_so_hdelay_bttv_geometry_55490
149723 +disable_so_height_intel_sdvo_preferred_input_timing_args_55498 height intel_sdvo_preferred_input_timing_args 0 55498 NULL
149724 +disable_so_bosr__coeff_div_55501 bosr _coeff_div 0 55501 NULL
149725 +disable_so_logical_address_ms_extra_data_register_55503 logical_address ms_extra_data_register 0 55503 NULL
149726 +disable_so_last_timeout_iscsi_task_55509 last_timeout iscsi_task 0 55509 NULL
149727 +disable_so_ip_vs_addr_set_fndecl_55530 ip_vs_addr_set fndecl 1 55530 NULL
149728 +disable_so_cg_spll_func_cntl_3_si_clock_registers_55541 cg_spll_func_cntl_3 si_clock_registers 0 55541 NULL nohasharray
149729 +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
149730 +disable_so_desc_card_addr___mem_55541 desc_card_addr __mem 0 55541 &disable_so_pwr_delay_panel_info_55541
149731 +disable_so_read_addr_qla8xxx_minidump_entry_rdmem_55551 read_addr qla8xxx_minidump_entry_rdmem 0 55551 NULL nohasharray
149732 +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
149733 +disable_so_timing_hpt_clock_55565 timing hpt_clock 0 55565 NULL
149734 +disable_so_kvm_get_tsc_khz_fndecl_55570 kvm_get_tsc_khz fndecl 0 55570 NULL
149735 +disable_so_demod_address_tda8083_config_55572 demod_address tda8083_config 0 55572 NULL
149736 +disable_so_ql_set_mac_addr_fndecl_55574 ql_set_mac_addr fndecl 0 55574 NULL
149737 +disable_so_lzo1x_1_compress_fndecl_55575 lzo1x_1_compress fndecl 2 55575 NULL
149738 +disable_so_psb_intel_sdvo_get_slave_addr_fndecl_55586 psb_intel_sdvo_get_slave_addr fndecl 0 55586 NULL
149739 +disable_so_tseg1_max_can_bittiming_const_55596 tseg1_max can_bittiming_const 0 55596 NULL
149740 +disable_so_cap_mmap_addr_fndecl_55598 cap_mmap_addr fndecl 0 55598 NULL nohasharray
149741 +disable_so_i_saddr_rds_incoming_55598 i_saddr rds_incoming 0 55598 &disable_so_cap_mmap_addr_fndecl_55598
149742 +disable_so_scan_cycle_time_adp5589_kpad_platform_data_55611 scan_cycle_time adp5589_kpad_platform_data 0 55611 NULL
149743 +disable_so_timeout_usb3_lpm_parameters_55617 timeout usb3_lpm_parameters 0 55617 NULL
149744 +disable_so_dma_addr0_flexcop_dma_55619 dma_addr0 flexcop_dma 0 55619 NULL nohasharray
149745 +disable_so_pci_bus_alloc_resource_fndecl_55619 pci_bus_alloc_resource fndecl 5-3-4 55619 &disable_so_dma_addr0_flexcop_dma_55619
149746 +disable_so_drm_legacy_ctxbitmap_free_fndecl_55620 drm_legacy_ctxbitmap_free fndecl 2 55620 NULL
149747 +disable_so_dp_saddr_rds_iw_connect_private_55621 dp_saddr rds_iw_connect_private 0 55621 NULL
149748 +disable_so_get_fan1_div_fndecl_55629 get_fan1_div fndecl 0 55629 NULL
149749 +disable_so_cfg_rrq_xri_bitmap_sz_lpfc_hba_55637 cfg_rrq_xri_bitmap_sz lpfc_hba 0 55637 NULL
149750 +disable_so_timeout_ms_rdma_ucm_resolve_addr_55643 timeout_ms rdma_ucm_resolve_addr 0 55643 NULL
149751 +disable_so_elv_rqhash_find_fndecl_55656 elv_rqhash_find fndecl 2 55656 NULL
149752 +disable_so_addrconf_sysctl_disable_fndecl_55663 addrconf_sysctl_disable fndecl 0 55663 NULL
149753 +disable_so_cx24117_read_signal_strength_fndecl_55668 cx24117_read_signal_strength fndecl 0 55668 NULL
149754 +disable_so_table2_addr_ipw_priv_55672 table2_addr ipw_priv 0 55672 NULL
149755 +disable_so_lock_time_drm_lock_data_55680 lock_time drm_lock_data 0 55680 NULL
149756 +disable_so_timeout_init_vardecl_ch_c_55683 timeout_init vardecl_ch.c 0 55683 NULL
149757 +disable_so_btrfs_uuid_tree_rem_fndecl_55691 btrfs_uuid_tree_rem fndecl 0-4-5 55691 NULL
149758 +disable_so_n_cipher_schemes_ieee80211_hw_55692 n_cipher_schemes ieee80211_hw 0 55692 NULL
149759 +disable_so_wcid_rt2x00lib_crypto_55695 wcid rt2x00lib_crypto 0 55695 NULL
149760 +disable_so_beiscsi_get_macaddr_fndecl_55699 beiscsi_get_macaddr fndecl 0 55699 NULL
149761 +disable_so_fdb_delete_by_addr_fndecl_55704 fdb_delete_by_addr fndecl 3 55704 NULL
149762 +disable_so_hpi_compander_get_decay_time_constant_fndecl_55715 hpi_compander_get_decay_time_constant fndecl 1-0 55715 NULL
149763 +disable_so_pcc_get_freq_fndecl_55717 pcc_get_freq fndecl 0 55717 NULL
149764 +disable_so_mca_cstamp_ifmcaddr6_55724 mca_cstamp ifmcaddr6 0 55724 NULL
149765 +disable_so_seltime_ahd_softc_55725 seltime ahd_softc 0 55725 NULL nohasharray
149766 +disable_so_addr_2_qla8044_minidump_entry_pollwr_55725 addr_2 qla8044_minidump_entry_pollwr 0 55725 &disable_so_seltime_ahd_softc_55725
149767 +disable_so_vm_exit_msr_load_addr_vmcs12_55733 vm_exit_msr_load_addr vmcs12 0 55733 NULL
149768 +disable_so_mclk_pwrmgt_cntl_ci_clock_registers_55735 mclk_pwrmgt_cntl ci_clock_registers 0 55735 NULL
149769 +disable_so_gcm_hash_update_fndecl_55740 gcm_hash_update fndecl 0-4 55740 NULL
149770 +disable_so_ab3100_set_test_register_interruptible_fndecl_55741 ab3100_set_test_register_interruptible fndecl 0 55741 NULL
149771 +disable_so_ieee802154_hdr_get_addrs_fndecl_55743 ieee802154_hdr_get_addrs fndecl 0 55743 NULL
149772 +disable_so_devfreq_userspace_handler_fndecl_55748 devfreq_userspace_handler fndecl 0 55748 NULL
149773 +disable_so_host_sg_tbl_addr_rtsx_pcr_55750 host_sg_tbl_addr rtsx_pcr 0 55750 NULL
149774 +disable_so_crypto_hash_walk_first_compat_fndecl_55757 crypto_hash_walk_first_compat fndecl 0-4 55757 NULL
149775 +disable_so_mpll_dq_func_cntl_si_clock_registers_55759 mpll_dq_func_cntl si_clock_registers 0 55759 NULL
149776 +disable_so_check_gran_clock_compatibility_fndecl_55761 check_gran_clock_compatibility fndecl 2 55761 NULL
149777 +disable_so_watchdog_set_timeout_fndecl_55765 watchdog_set_timeout fndecl 2-0 55765 NULL
149778 +disable_so_c_laddr_rds_connection_55766 c_laddr rds_connection 0 55766 NULL
149779 +disable_so_slot_timeout_irlap_cb_55778 slot_timeout irlap_cb 0 55778 NULL
149780 +disable_so_timer_quantum_ns_efx_nic_55779 timer_quantum_ns efx_nic 0 55779 NULL
149781 +disable_so_me_addr_hbm_props_request_55786 me_addr hbm_props_request 0 55786 NULL
149782 +disable_so_snd_timer_user_continue_fndecl_55796 snd_timer_user_continue fndecl 0 55796 NULL
149783 +disable_so_last_rx_timestamp_ixgbe_adapter_55801 last_rx_timestamp ixgbe_adapter 0 55801 NULL
149784 +disable_so_di_mtime_logfs_disk_inode_55807 di_mtime logfs_disk_inode 0 55807 NULL
149785 +disable_so_mxr_runtime_resume_fndecl_55814 mxr_runtime_resume fndecl 0 55814 NULL
149786 +disable_so_write_tsc_offset_kvm_x86_ops_55825 write_tsc_offset kvm_x86_ops 2 55825 NULL
149787 +disable_so_suspended_jiffies_dev_pm_info_55833 suspended_jiffies dev_pm_info 0 55833 NULL
149788 +disable_so_daddr_flowi4_55835 daddr flowi4 0 55835 NULL
149789 +disable_so_arcmsr_Read_iop_rqbuffer_data_fndecl_55838 arcmsr_Read_iop_rqbuffer_data fndecl 0 55838 NULL
149790 +disable_so_ac_utime_pacct_struct_55849 ac_utime pacct_struct 0 55849 NULL
149791 +disable_so_si476x_radio_s_frequency_fndecl_55854 si476x_radio_s_frequency fndecl 0 55854 NULL
149792 +disable_so_tg3_nvram_logical_addr_fndecl_55858 tg3_nvram_logical_addr fndecl 0-2 55858 NULL
149793 +disable_so_last_delay_mult_qib_chippport_specific_55859 last_delay_mult qib_chippport_specific 0 55859 NULL nohasharray
149794 +disable_so_addr_offset_x86_pmu_55859 addr_offset x86_pmu 0-1 55859 &disable_so_last_delay_mult_qib_chippport_specific_55859
149795 +disable_so_nvkm_timer_alarm_fndecl_55870 nvkm_timer_alarm fndecl 2 55870 NULL
149796 +disable_so_num_mc_addrs_ixgbe_addr_filter_info_55888 num_mc_addrs ixgbe_addr_filter_info 0 55888 NULL
149797 +disable_so_snd_interval_muldivk_fndecl_55894 snd_interval_muldivk fndecl 3 55894 NULL
149798 +disable_so_read_time_rtc_class_ops_55898 read_time rtc_class_ops 0 55898 NULL
149799 +disable_so_timeouts_size_ip_vs_app_55902 timeouts_size ip_vs_app 0 55902 NULL
149800 +disable_so_mwifiex_process_sleep_confirm_resp_fndecl_55909 mwifiex_process_sleep_confirm_resp fndecl 3 55909 NULL
149801 +disable_so_sleep_auth_write_fndecl_55911 sleep_auth_write fndecl 0-3 55911 NULL
149802 +disable_so_addr_hi_pm4_query_status_55924 addr_hi pm4_query_status 0 55924 NULL
149803 +disable_so_rpc_anyaddr_fndecl_55925 rpc_anyaddr fndecl 0-1 55925 NULL
149804 +disable_so_fence_gpu_addr_device_queue_manager_55932 fence_gpu_addr device_queue_manager 0 55932 NULL
149805 +disable_so_send_guid_cmd_fndecl_55933 send_guid_cmd fndecl 0 55933 NULL
149806 +disable_so_next_id_mISDNtimerdev_55935 next_id mISDNtimerdev 0 55935 NULL
149807 +disable_so_ref_freq_arizona_fll_55939 ref_freq arizona_fll 0 55939 NULL
149808 +disable_so_find_prop_handlers_by_hash_fndecl_55957 find_prop_handlers_by_hash fndecl 1 55957 NULL
149809 +disable_so_cg_spll_spread_spectrum_ci_clock_registers_55960 cg_spll_spread_spectrum ci_clock_registers 0 55960 NULL
149810 +disable_so___xfrm_src_hash_fndecl_55965 __xfrm_src_hash fndecl 0-3-4 55965 NULL
149811 +disable_so_tps80031_rtc_read_time_fndecl_55978 tps80031_rtc_read_time fndecl 0 55978 NULL
149812 +disable_so_dvb_pll_sleep_fndecl_55979 dvb_pll_sleep fndecl 0 55979 NULL
149813 +disable_so_lose_cover_sizek_mtrr_cleanup_result_55990 lose_cover_sizek mtrr_cleanup_result 0 55990 NULL
149814 +disable_so_wil_ioc_addr_fndecl_55992 wil_ioc_addr fndecl 2-3 55992 NULL
149815 +disable_so_ste10Xp_ack_interrupt_fndecl_55999 ste10Xp_ack_interrupt fndecl 0 55999 NULL
149816 +disable_so_btc_skip_blacklist_clocks_fndecl_56010 btc_skip_blacklist_clocks fndecl 2-3 56010 NULL
149817 +disable_so_sleep_mask_palmas_clk32k_desc_56015 sleep_mask palmas_clk32k_desc 0 56015 NULL
149818 +disable_so_cs_pt_regs_56018 cs pt_regs 0 56018 NULL nohasharray
149819 +disable_so_vmcs_writel_fndecl_56018 vmcs_writel fndecl 2 56018 &disable_so_cs_pt_regs_56018
149820 +disable_so_i_mtime_nsec_f2fs_inode_56019 i_mtime_nsec f2fs_inode 0 56019 NULL
149821 +disable_so_ecx_user_regs_struct32_56025 ecx user_regs_struct32 0 56025 NULL
149822 +disable_so_k8_map_sysaddr_to_csrow_fndecl_56032 k8_map_sysaddr_to_csrow fndecl 2 56032 NULL
149823 +disable_so_max_busy_timeout_mmc_host_56037 max_busy_timeout mmc_host 0 56037 NULL
149824 +disable_so_snd_tea575x_get_freq_fndecl_56045 snd_tea575x_get_freq fndecl 0 56045 NULL
149825 +disable_so_timer_interval_r8a66597_pipe_info_56047 timer_interval r8a66597_pipe_info 0 56047 NULL nohasharray
149826 +disable_so_wc_ct_timer_56047 wc ct_timer 0 56047 &disable_so_timer_interval_r8a66597_pipe_info_56047
149827 +disable_so_gs_tss_segment_32_56052 gs tss_segment_32 0 56052 NULL
149828 +disable_so_bg_inode_bitmap_lo_ext4_group_desc_56060 bg_inode_bitmap_lo ext4_group_desc 0 56060 NULL
149829 +disable_so_debounce_jiffies_gpio_extcon_data_56062 debounce_jiffies gpio_extcon_data 0 56062 NULL
149830 +disable_so_timestamp_perf_event_context_56076 timestamp perf_event_context 0 56076 NULL
149831 +disable_so_s10_img_ir_timing_regvals_56082 s10 img_ir_timing_regvals 0 56082 NULL
149832 +disable_so_addr_nv50_instmem_priv_56092 addr nv50_instmem_priv 0 56092 NULL
149833 +disable_so_stock_freq_vardecl_p4_clockmod_c_56103 stock_freq vardecl_p4-clockmod.c 0 56103 NULL
149834 +disable_so_nfs4_xdr_dec_get_lease_time_fndecl_56110 nfs4_xdr_dec_get_lease_time fndecl 0 56110 NULL
149835 +disable_so_dclk_div_ssd1307fb_par_56111 dclk_div ssd1307fb_par 0 56111 NULL
149836 +disable_so_ad1889_load_wave_interrupt_count_fndecl_56114 ad1889_load_wave_interrupt_count fndecl 2 56114 NULL
149837 +disable_so_tm_sec_rtc_time_56120 tm_sec rtc_time 0 56120 NULL
149838 +disable_so_setsck_fndecl_56125 setsck fndecl 2 56125 NULL
149839 +disable_so_acpi_ut_remove_address_range_fndecl_56141 acpi_ut_remove_address_range fndecl 1 56141 NULL
149840 +disable_so_ssa_blkaddr_f2fs_sm_info_56145 ssa_blkaddr f2fs_sm_info 0 56145 NULL
149841 +disable_so_ack_time_rtl8180_priv_56151 ack_time rtl8180_priv 0 56151 NULL
149842 +disable_so_updelay_bond_params_56155 updelay bond_params 0 56155 NULL
149843 +disable_so_pch_can_bit_clear_fndecl_56156 pch_can_bit_clear fndecl 2 56156 NULL
149844 +disable_so_i2c_addr_si2165_config_56160 i2c_addr si2165_config 0 56160 NULL
149845 +disable_so_gen8_rcs_signal_fndecl_56195 gen8_rcs_signal fndecl 0-2 56195 NULL
149846 +disable_so_bmg160_setup_new_data_interrupt_fndecl_56196 bmg160_setup_new_data_interrupt fndecl 0 56196 NULL
149847 +disable_so_addrhigh_dma64desc_56199 addrhigh dma64desc 0 56199 NULL
149848 +disable_so_kvm_get_time_scale_fndecl_56201 kvm_get_time_scale fndecl 1 56201 NULL
149849 +disable_so_post_divider_atom_clock_dividers_56220 post_divider atom_clock_dividers 0 56220 NULL
149850 +disable_so_max6900_rtc_set_time_fndecl_56236 max6900_rtc_set_time fndecl 0 56236 NULL
149851 +disable_so_crypto_rfc3686_setkey_fndecl_56237 crypto_rfc3686_setkey fndecl 0-3 56237 NULL
149852 +disable_so_mtt_base_addr_l_mlx4_eq_context_56245 mtt_base_addr_l mlx4_eq_context 0 56245 NULL nohasharray
149853 +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
149854 +disable_so_lbs_cmd_802_11_sleep_params_fndecl_56246 lbs_cmd_802_11_sleep_params fndecl 0 56246 NULL
149855 +disable_so_verity_hash_at_level_fndecl_56248 verity_hash_at_level fndecl 2 56248 NULL
149856 +disable_so_sk_reset_timer_fndecl_56251 sk_reset_timer fndecl 3 56251 NULL
149857 +disable_so_skcipher_sndbuf_fndecl_56255 skcipher_sndbuf fndecl 0 56255 NULL
149858 +disable_so_st_ctime_nsec_p9_stat_dotl_56256 st_ctime_nsec p9_stat_dotl 0 56256 NULL nohasharray
149859 +disable_so_r29_val_fc2580_freq_regs_56256 r29_val fc2580_freq_regs 0 56256 &disable_so_st_ctime_nsec_p9_stat_dotl_56256
149860 +disable_so_qmi_wwan_mac_addr_fndecl_56258 qmi_wwan_mac_addr fndecl 0 56258 NULL
149861 +disable_so_cik_set_vce_clocks_fndecl_56266 cik_set_vce_clocks fndecl 3-0 56266 NULL nohasharray
149862 +disable_so_bitmap_copy_from_slot_fndecl_56266 bitmap_copy_from_slot fndecl 0-2 56266 &disable_so_cik_set_vce_clocks_fndecl_56266
149863 +disable_so_delay_mult_ipath_devdata_56277 delay_mult ipath_devdata 0 56277 NULL
149864 +disable_so_esas2r_disc_get_phys_addr_fndecl_56278 esas2r_disc_get_phys_addr fndecl 0 56278 NULL
149865 +disable_so_sst_module_runtime_get_from_id_fndecl_56286 sst_module_runtime_get_from_id fndecl 2 56286 NULL
149866 +disable_so_freq_req_adf4350_state_56294 freq_req adf4350_state 0 56294 NULL
149867 +disable_so_max_bandwidth_khz_ieee80211_freq_range_56300 max_bandwidth_khz ieee80211_freq_range 0 56300 NULL
149868 +disable_so_faddr_rds_info_connection_56313 faddr rds_info_connection 0 56313 NULL
149869 +disable_so_pcm_delay_pcm_stream_info_56329 pcm_delay pcm_stream_info 0 56329 NULL nohasharray
149870 +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
149871 +disable_so_show_sgid_fndecl_56331 show_sgid fndecl 0 56331 NULL
149872 +disable_so_sumo_get_valid_engine_clock_fndecl_56332 sumo_get_valid_engine_clock fndecl 0 56332 NULL
149873 +disable_so_bitmap_resize_fndecl_56333 bitmap_resize fndecl 0-2 56333 NULL
149874 +disable_so_get_cpufreq_driver_56334 get cpufreq_driver 0-1 56334 NULL
149875 +disable_so_cg_spll_spread_spectrum_2_rv770_clock_registers_56343 cg_spll_spread_spectrum_2 rv770_clock_registers 0 56343 NULL
149876 +disable_so_dsa_slave_set_mac_address_fndecl_56363 dsa_slave_set_mac_address fndecl 0 56363 NULL nohasharray
149877 +disable_so_log2secsize_adfs_discrecord_56363 log2secsize adfs_discrecord 0 56363 &disable_so_dsa_slave_set_mac_address_fndecl_56363 nohasharray
149878 +enable_so_i_ino_xfs_inode_56363 i_ino xfs_inode 0 56363 &disable_so_log2secsize_adfs_discrecord_56363
149879 +disable_so_offset_bit_entry_56370 offset bit_entry 0 56370 NULL
149880 +disable_so_serio_interrupt_fndecl_56371 serio_interrupt fndecl 2 56371 NULL
149881 +disable_so_nla_put_s8_fndecl_56378 nla_put_s8 fndecl 0 56378 NULL
149882 +disable_so_max_timing_entry_56381 max timing_entry 0 56381 NULL
149883 +disable_so_clk_div_chip_data_56404 clk_div chip_data 0 56404 NULL
149884 +disable_so_index_addr_fndecl_56405 index_addr fndecl 2-3 56405 NULL
149885 +disable_so_sysctl_tipc_named_timeout_vardecl_56406 sysctl_tipc_named_timeout vardecl 0 56406 NULL nohasharray
149886 +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
149887 +disable_so_pwm_freq_to_reg_fndecl_56419 pwm_freq_to_reg fndecl 0-1 56419 NULL
149888 +disable_so_compaq_ioaddr_vardecl_3c59x_c_56423 compaq_ioaddr vardecl_3c59x.c 0 56423 NULL
149889 +disable_so_nv04_timer_ctor_fndecl_56428 nv04_timer_ctor fndecl 0 56428 NULL
149890 +disable_so_last_jiffies_dm_kcopyd_throttle_56429 last_jiffies dm_kcopyd_throttle 0 56429 NULL
149891 +disable_so_prev_xfer_time_if_spi_card_56430 prev_xfer_time if_spi_card 0 56430 NULL
149892 +disable_so_cpufreq_governor_dbs_fndecl_56433 cpufreq_governor_dbs fndecl 0 56433 NULL
149893 +disable_so_align_vdso_addr_fndecl_56438 align_vdso_addr fndecl 0-1 56438 NULL
149894 +disable_so_addresshigh_SG64ENTRY_56440 addresshigh SG64ENTRY 0 56440 NULL
149895 +disable_so_freq_nvbios_M0205T_56458 freq nvbios_M0205T 0 56458 NULL
149896 +disable_so_hfs_bnode_hash_fndecl_56462 hfs_bnode_hash fndecl 0-1 56462 NULL
149897 +disable_so_address_rmap_item_56465 address rmap_item 0 56465 NULL
149898 +disable_so_tseg1_pucan_timing_fast_56466 tseg1 pucan_timing_fast 0 56466 NULL
149899 +disable_so_read_reg_qlcnic_hardware_ops_56470 read_reg qlcnic_hardware_ops 0-2 56470 NULL
149900 +disable_so_ba0_addr_cs4281_56471 ba0_addr cs4281 0 56471 NULL
149901 +disable_so_seltime_ahc_softc_56482 seltime ahc_softc 0 56482 NULL
149902 +disable_so_preferred_resolution_snd_seq_timer_56486 preferred_resolution snd_seq_timer 0 56486 NULL
149903 +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
149904 +disable_so_compat_sys_utime_fndecl_56499 compat_sys_utime fndecl 0 56499 NULL
149905 +disable_so_max_cpufreq_policy_56505 max cpufreq_policy 0 56505 NULL
149906 +disable_so_gpm_addr_ath9k_hw_mci_56507 gpm_addr ath9k_hw_mci 0 56507 NULL
149907 +disable_so_local_cm_response_timeout_ib_cm_req_event_param_56527 local_cm_response_timeout ib_cm_req_event_param 0 56527 NULL
149908 +disable_so_di_ctime_qnx4_inode_entry_56528 di_ctime qnx4_inode_entry 0 56528 NULL
149909 +disable_so_check_object_size_fndecl_56537 check_object_size fndecl 2 56537 NULL
149910 +disable_so_netlbl_unlhsh_remove_addr4_fndecl_56540 netlbl_unlhsh_remove_addr4 fndecl 0 56540 NULL
149911 +disable_so_pio_address_qla_hw_data_56550 pio_address qla_hw_data 0 56550 NULL
149912 +disable_so_clockdelay_te_vardecl_hfcmulti_c_56569 clockdelay_te vardecl_hfcmulti.c 0 56569 NULL
149913 +disable_so_cfg80211_get_start_freq_fndecl_56579 cfg80211_get_start_freq fndecl 0-1-2 56579 NULL
149914 +disable_so_crypto_info_open_fndecl_56585 crypto_info_open fndecl 0 56585 NULL
149915 +disable_so_iio_interrupt_trigger_probe_fndecl_56586 iio_interrupt_trigger_probe fndecl 0 56586 NULL
149916 +disable_so_csize_lattime_ahd_suspend_pci_state_56599 csize_lattime ahd_suspend_pci_state 0 56599 NULL
149917 +disable_so_pcxhr_get_clock_reg_fndecl_56600 pcxhr_get_clock_reg fndecl 2-0 56600 NULL
149918 +disable_so_ib_find_cached_gid_fndecl_56608 ib_find_cached_gid fndecl 0 56608 NULL
149919 +disable_so_btree_node_write_endio_fndecl_56609 btree_node_write_endio fndecl 2 56609 NULL
149920 +disable_so_rxdescmem_busaddr_altera_tse_private_56610 rxdescmem_busaddr altera_tse_private 0 56610 NULL
149921 +disable_so_pwm_downtime_w83793_data_56624 pwm_downtime w83793_data 0 56624 NULL
149922 +disable_so_nl80211_crypto_settings_fndecl_56625 nl80211_crypto_settings fndecl 0 56625 NULL
149923 +disable_so_freq_pmu0_plltab_entry_56630 freq pmu0_plltab_entry 0 56630 NULL
149924 +disable_so_get_register_page_interruptible_fndecl_56634 get_register_page_interruptible fndecl 0 56634 NULL
149925 +disable_so_time_rx_survey_info_56644 time_rx survey_info 0 56644 NULL
149926 +disable_so_isp1362_write_diraddr_fndecl_56658 isp1362_write_diraddr fndecl 2-3 56658 NULL
149927 +disable_so_utime_task_cputime_56665 utime task_cputime 0 56665 NULL
149928 +disable_so_blogic_add_probeaddr_isa_fndecl_56669 blogic_add_probeaddr_isa fndecl 1 56669 NULL
149929 +disable_so_memsize_bitmap_ip_56671 memsize bitmap_ip 0 56671 NULL
149930 +disable_so_ssb_pmu_get_alp_clock_fndecl_56673 ssb_pmu_get_alp_clock fndecl 0 56673 NULL nohasharray
149931 +disable_so_crypto_xor_fndecl_56673 crypto_xor fndecl 3 56673 &disable_so_ssb_pmu_get_alp_clock_fndecl_56673
149932 +disable_so_addr_wqicb_56680 addr wqicb 0 56680 NULL
149933 +disable_so_post_div_atom_clock_dividers_56686 post_div atom_clock_dividers 0 56686 NULL
149934 +disable_so_local_ca_guid_cm_req_msg_56691 local_ca_guid cm_req_msg 0 56691 NULL
149935 +disable_so_ath5k_hw_check_beacon_timers_fndecl_56701 ath5k_hw_check_beacon_timers fndecl 2 56701 NULL
149936 +disable_so_resultjiffies_vardecl_floppy_c_56702 resultjiffies vardecl_floppy.c 0 56702 NULL
149937 +disable_so_snd_tea575x_s_hw_freq_seek_fndecl_56703 snd_tea575x_s_hw_freq_seek fndecl 0 56703 NULL
149938 +disable_so_ir_clock_mhz_vardecl_tm6000_input_c_56706 ir_clock_mhz vardecl_tm6000-input.c 0 56706 NULL
149939 +disable_so_mei_me_pm_runtime_suspend_fndecl_56711 mei_me_pm_runtime_suspend fndecl 0 56711 NULL
149940 +disable_so_deftype_kvm_mtrr_56712 deftype kvm_mtrr 0 56712 NULL
149941 +disable_so_base_addr_phys__adpt_hba_56713 base_addr_phys _adpt_hba 0 56713 NULL
149942 +disable_so_addr_nvkm_instobj_56715 addr nvkm_instobj 0 56715 NULL
149943 +disable_so_do_wait_for_common_fndecl_56721 do_wait_for_common fndecl 4 56721 NULL
149944 +disable_so_i_uid_minix_inode_56733 i_uid minix_inode 0 56733 NULL
149945 +disable_so_addr_nvkm_engctx_56734 addr nvkm_engctx 0 56734 NULL nohasharray
149946 +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
149947 +disable_so_bp_pt_regs_56736 bp pt_regs 0 56736 NULL
149948 +disable_so_hor_blank_end_via_display_timing_56738 hor_blank_end via_display_timing 0 56738 NULL
149949 +disable_so_panel_power_cycle_delay_intel_dp_56739 panel_power_cycle_delay intel_dp 0 56739 NULL
149950 +disable_so_dib8000_sleep_fndecl_56740 dib8000_sleep fndecl 0 56740 NULL
149951 +disable_so_ext4_valid_block_bitmap_fndecl_56749 ext4_valid_block_bitmap fndecl 0-3 56749 NULL
149952 +disable_so_func_bit_map_vif_list_event_data_56753 func_bit_map vif_list_event_data 0 56753 NULL
149953 +disable_so_netxen_nic_set_mcast_addr_fndecl_56754 netxen_nic_set_mcast_addr fndecl 2 56754 NULL
149954 +disable_so_wrmsr_on_cpu_fndecl_56757 wrmsr_on_cpu fndecl 0-1-3-4 56757 NULL
149955 +disable_so_rmap_recycle_fndecl_56761 rmap_recycle fndecl 3 56761 NULL
149956 +disable_so_cyapa_gen5_get_interval_time_fndecl_56783 cyapa_gen5_get_interval_time fndecl 0 56783 NULL nohasharray
149957 +disable_so_laddr_rds_info_message_56783 laddr rds_info_message 0 56783 &disable_so_cyapa_gen5_get_interval_time_fndecl_56783
149958 +disable_so_btrfs_set_inode_uid_fndecl_56785 btrfs_set_inode_uid fndecl 3 56785 NULL
149959 +disable_so_wl1251_acx_group_address_tbl_fndecl_56786 wl1251_acx_group_address_tbl fndecl 0 56786 NULL
149960 +disable_so_idletimer_tg_show_fndecl_56792 idletimer_tg_show fndecl 0 56792 NULL
149961 +disable_so_ofdmtab_addr_b43_phy_g_56793 ofdmtab_addr b43_phy_g 0 56793 NULL
149962 +disable_so_count_radeon_clock_voltage_dependency_table_56794 count radeon_clock_voltage_dependency_table 0 56794 NULL
149963 +disable_so_nla_put_in_addr_fndecl_56802 nla_put_in_addr fndecl 0 56802 NULL
149964 +disable_so_br_multicast_set_hash_max_fndecl_56807 br_multicast_set_hash_max fndecl 0-2 56807 NULL
149965 +disable_so_runtime_expires_cfs_rq_56808 runtime_expires cfs_rq 0 56808 NULL nohasharray
149966 +disable_so_write_file_bt_ant_diversity_fndecl_56808 write_file_bt_ant_diversity fndecl 0 56808 &disable_so_runtime_expires_cfs_rq_56808
149967 +disable_so_sisfb_post_xgi_setclocks_fndecl_56821 sisfb_post_xgi_setclocks fndecl 2 56821 NULL
149968 +disable_so_ipath_signal_procs_fndecl_56823 ipath_signal_procs fndecl 2 56823 NULL
149969 +disable_so_seqtimer_scaling_vardecl_azt3328_c_56829 seqtimer_scaling vardecl_azt3328.c 0 56829 NULL
149970 +disable_so_bar_bus_addr_usnic_ib_create_qp_resp_56831 bar_bus_addr usnic_ib_create_qp_resp 0 56831 NULL
149971 +disable_so_fib_laddr_hashfn_fndecl_56832 fib_laddr_hashfn fndecl 0-1 56832 NULL
149972 +disable_so_qlcnic_82xx_sre_macaddr_change_fndecl_56836 qlcnic_82xx_sre_macaddr_change fndecl 0 56836 NULL
149973 +disable_so_dm_btree_find_lowest_key_fndecl_56845 dm_btree_find_lowest_key fndecl 0-2 56845 NULL
149974 +disable_so_get_fan_div_fndecl_56857 get_fan_div fndecl 0 56857 NULL
149975 +disable_so_neigh_proc_dointvec_jiffies_fndecl_56860 neigh_proc_dointvec_jiffies fndecl 0 56860 NULL
149976 +disable_so_last_delay_snd_usb_substream_56861 last_delay snd_usb_substream 0 56861 NULL
149977 +disable_so_memory_address_set_error_type_with_address_56863 memory_address set_error_type_with_address 0 56863 NULL
149978 +disable_so_seq_b43_txstatus_56873 seq b43_txstatus 0 56873 NULL
149979 +disable_so_phonet_address_notify_fndecl_56877 phonet_address_notify fndecl 1-3 56877 NULL
149980 +disable_so_msp_sleep_fndecl_56878 msp_sleep fndecl 2 56878 NULL nohasharray
149981 +disable_so_ltr501_match_samp_freq_fndecl_56878 ltr501_match_samp_freq fndecl 0 56878 &disable_so_msp_sleep_fndecl_56878
149982 +disable_so_signalled_used_vhost_virtqueue_56881 signalled_used vhost_virtqueue 0 56881 NULL
149983 +disable_so_titsc_probe_fndecl_56883 titsc_probe fndecl 0 56883 NULL
149984 +disable_so_xfs_btree_check_sblock_fndecl_56897 xfs_btree_check_sblock fndecl 0 56897 NULL
149985 +disable_so_jiffies_next_hackrf_dev_56900 jiffies_next hackrf_dev 0 56900 NULL
149986 +disable_so_bpf_get_prandom_u32_fndecl_56904 bpf_get_prandom_u32 fndecl 0 56904 NULL
149987 +disable_so_rt_lifetime_icmpv6_nd_ra_56907 rt_lifetime icmpv6_nd_ra 0 56907 NULL
149988 +disable_so_base_addr_ufshcd_sg_entry_56924 base_addr ufshcd_sg_entry 0 56924 NULL
149989 +disable_so_crypto_gcm_decrypt_fndecl_56932 crypto_gcm_decrypt fndecl 0 56932 NULL
149990 +disable_so_pll_d_aic31xx_rate_divs_56933 pll_d aic31xx_rate_divs 0 56933 NULL
149991 +disable_so_mc_arb_burst_time_SMC_SIslands_MCArbDramTimingRegisterSet_56938 mc_arb_burst_time SMC_SIslands_MCArbDramTimingRegisterSet 0 56938 NULL
149992 +disable_so_hfc_jiffies_vardecl_hfcpci_c_56949 hfc_jiffies vardecl_hfcpci.c 0 56949 NULL
149993 +disable_so_pm_timeout_orinoco_private_56953 pm_timeout orinoco_private 0 56953 NULL
149994 +disable_so_cpu_delayed_work_56959 cpu delayed_work 0 56959 NULL
149995 +disable_so_sys_sched_setscheduler_fndecl_56964 sys_sched_setscheduler fndecl 2-1-0 56964 NULL
149996 +disable_so_ucode_beacon_time_il_priv_56968 ucode_beacon_time il_priv 0 56968 NULL
149997 +disable_so_ntsc_tvdac_adj_radeon_encoder_tv_dac_56984 ntsc_tvdac_adj radeon_encoder_tv_dac 0 56984 NULL
149998 +disable_so_hbqaddrLow_config_hbq_var_56996 hbqaddrLow config_hbq_var 0 56996 NULL
149999 +disable_so_hpios_delay_micro_seconds_fndecl_57000 hpios_delay_micro_seconds fndecl 1 57000 NULL
150000 +disable_so_pwm_freq_nvbios_therm_fan_57021 pwm_freq nvbios_therm_fan 0 57021 NULL
150001 +disable_so_cycle_interval_timekeeper_57030 cycle_interval timekeeper 0 57030 NULL
150002 +disable_so_qce_ablkcipher_register_fndecl_57031 qce_ablkcipher_register fndecl 0 57031 NULL
150003 +disable_so_posix_cpu_clock_set_fndecl_57033 posix_cpu_clock_set fndecl 1 57033 NULL
150004 +disable_so_ac97_clock_via82xx_modem_57034 ac97_clock via82xx_modem 0 57034 NULL
150005 +disable_so_ip_set_get_ipaddr4_fndecl_57035 ip_set_get_ipaddr4 fndecl 0 57035 NULL
150006 +disable_so_mmap_min_addr_handler_fndecl_57042 mmap_min_addr_handler fndecl 0 57042 NULL
150007 +disable_so___mutex_lock_interruptible_slowpath_fndecl_57044 __mutex_lock_interruptible_slowpath fndecl 0 57044 NULL
150008 +disable_so_round_jiffies_relative_fndecl_57045 round_jiffies_relative fndecl 0-1 57045 NULL
150009 +disable_so_addr2___pollrdmwr_57048 addr2 __pollrdmwr 0 57048 NULL
150010 +disable_so_opmode_ioaddr_mxser_port_57052 opmode_ioaddr mxser_port 0 57052 NULL nohasharray
150011 +disable_so_xfrm_hash_transfer_fndecl_57052 xfrm_hash_transfer fndecl 5 57052 &disable_so_opmode_ioaddr_mxser_port_57052
150012 +disable_so_hpi_sample_clock_query_source_index_fndecl_57055 hpi_sample_clock_query_source_index fndecl 1-0 57055 NULL
150013 +disable_so_bitmap_full_fndecl_57072 bitmap_full fndecl 2 57072 NULL
150014 +disable_so_cmd_attr_deregister_cpumask_fndecl_57077 cmd_attr_deregister_cpumask fndecl 0 57077 NULL
150015 +disable_so_hashtab_create_fndecl_57082 hashtab_create fndecl 3 57082 NULL
150016 +disable_so_laddr_c2wr_ae_connection_request_57084 laddr c2wr_ae_connection_request 0 57084 NULL
150017 +disable_so_alarmtimer_suspend_fndecl_57099 alarmtimer_suspend fndecl 0 57099 NULL
150018 +disable_so___cpufreq_cooling_register_fndecl_57101 __cpufreq_cooling_register fndecl 3 57101 NULL
150019 +disable_so_fll_clk_ref_div__fll_div_57104 fll_clk_ref_div _fll_div 0 57104 NULL
150020 +disable_so_tsc_to_system_mul_pvclock_vcpu_time_info_57110 tsc_to_system_mul pvclock_vcpu_time_info 0 57110 NULL nohasharray
150021 +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
150022 +disable_so_d_spc_timer_qc_dqblk_57112 d_spc_timer qc_dqblk 0 57112 NULL
150023 +disable_so_ntp_error_shift_timekeeper_57130 ntp_error_shift timekeeper 0 57130 NULL
150024 +disable_so_tuner_addr_cx88_board_57133 tuner_addr cx88_board 0 57133 NULL
150025 +disable_so_width_v4l2_bt_timings_57137 width v4l2_bt_timings 0 57137 NULL
150026 +disable_so_function_timer_list_57140 function timer_list 1 57140 NULL
150027 +disable_so_tuner_address_ts2020_config_57154 tuner_address ts2020_config 0 57154 NULL
150028 +disable_so_sm501_set_clock_fndecl_57155 sm501_set_clock fndecl 3-0 57155 NULL
150029 +disable_so_addrlimit_qib_user_sdma_pkt_57160 addrlimit qib_user_sdma_pkt 0 57160 NULL
150030 +disable_so_read_file_regidx_fndecl_57161 read_file_regidx fndecl 3-0 57161 NULL
150031 +disable_so_slot_time_rt2x00lib_erp_57170 slot_time rt2x00lib_erp 0 57170 NULL
150032 +disable_so_bx_pt_regs_57172 bx pt_regs 0 57172 NULL
150033 +disable_so_ssb_pmu_get_controlclock_fndecl_57187 ssb_pmu_get_controlclock fndecl 0 57187 NULL
150034 +disable_so_inet_fill_ifaddr_fndecl_57209 inet_fill_ifaddr fndecl 0-3-5 57209 NULL
150035 +disable_so_mem_addr_vardecl_debugfs_c_57210 mem_addr vardecl_debugfs.c 0 57210 NULL
150036 +disable_so_iwl_static_sleep_cmd_fndecl_57211 iwl_static_sleep_cmd fndecl 4 57211 NULL
150037 +disable_so_frequency_khz_ts2020_priv_57218 frequency_khz ts2020_priv 0 57218 NULL
150038 +disable_so_hashm_dcb_output_57225 hashm dcb_output 0 57225 NULL
150039 +disable_so_show_risetime_fndecl_57236 show_risetime fndecl 0 57236 NULL
150040 +disable_so_iscsi_nacl_attrib_store_random_r2t_offsets_fndecl_57241 iscsi_nacl_attrib_store_random_r2t_offsets fndecl 0-3 57241 NULL
150041 +disable_so_hash_netiface6_expire_fndecl_57246 hash_netiface6_expire fndecl 4 57246 NULL
150042 +disable_so_delayed_ack_bictcp_57249 delayed_ack bictcp 0 57249 NULL
150043 +disable_so_addr_he_ioctl_reg_57251 addr he_ioctl_reg 0 57251 NULL
150044 +disable_so_crystalfreq_ssb_chipcommon_pmu_57260 crystalfreq ssb_chipcommon_pmu 0 57260 NULL
150045 +disable_so_i_dtime_ext4_inode_info_57265 i_dtime ext4_inode_info 0 57265 NULL
150046 +disable_so_qlcnic_schedule_work_fndecl_57272 qlcnic_schedule_work fndecl 3 57272 NULL
150047 +disable_so_uid_affs_tail_57279 uid affs_tail 0 57279 NULL nohasharray
150048 +disable_so_delay_slave_57279 delay slave 0 57279 &disable_so_uid_affs_tail_57279 nohasharray
150049 +disable_so_pwm_freq_to_reg_627hf_fndecl_57279 pwm_freq_to_reg_627hf fndecl 0 57279 &disable_so_delay_slave_57279
150050 +disable_so_sock_set_timeout_fndecl_57281 sock_set_timeout fndecl 0-3 57281 NULL
150051 +disable_so_phys_addr_fndecl_57284 phys_addr fndecl 0 57284 NULL
150052 +disable_so_i_uid_minix2_inode_57288 i_uid minix2_inode 0 57288 NULL
150053 +disable_so_hash_netnet4_expire_fndecl_57295 hash_netnet4_expire fndecl 4 57295 NULL
150054 +disable_so_mtrr_file_add_fndecl_57296 mtrr_file_add fndecl 1-2 57296 NULL
150055 +disable_so_rd_addr_gfs2_rgrpd_57301 rd_addr gfs2_rgrpd 0 57301 NULL
150056 +disable_so_elf_map_fndecl_57308 elf_map fndecl 0-2-4-5 57308 NULL
150057 +disable_so_frame_len_stv0900_signal_info_57310 frame_len stv0900_signal_info 0 57310 NULL nohasharray
150058 +disable_so_crypto_pcbc_encrypt_segment_fndecl_57310 crypto_pcbc_encrypt_segment fndecl 0 57310 &disable_so_frame_len_stv0900_signal_info_57310
150059 +disable_so_xs_init_anyaddr_fndecl_57311 xs_init_anyaddr fndecl 1 57311 NULL
150060 +disable_so_ahash_setkey_unaligned_fndecl_57314 ahash_setkey_unaligned fndecl 3 57314 NULL
150061 +disable_so_active_time_lm8333_platform_data_57318 active_time lm8333_platform_data 0 57318 NULL
150062 +disable_so_snd_timer_start_slave_fndecl_57320 snd_timer_start_slave fndecl 0 57320 NULL
150063 +disable_so_dma_addr_pluto_57323 dma_addr pluto 0 57323 NULL nohasharray
150064 +disable_so_bitmap_print_to_pagebuf_fndecl_57323 bitmap_print_to_pagebuf fndecl 4 57323 &disable_so_dma_addr_pluto_57323
150065 +disable_so_sgl_pg0_addr_hi_sgl_page_pairs_57333 sgl_pg0_addr_hi sgl_page_pairs 0 57333 NULL
150066 +disable_so_scd_base_addr_iwl_trans_pcie_57336 scd_base_addr iwl_trans_pcie 0 57336 NULL
150067 +disable_so_vfio_msi_set_vector_signal_fndecl_57339 vfio_msi_set_vector_signal fndecl 0-2 57339 NULL
150068 +disable_so_sfq_hash_fndecl_57343 sfq_hash fndecl 0 57343 NULL
150069 +disable_so_security_task_getscheduler_fndecl_57345 security_task_getscheduler fndecl 0 57345 NULL
150070 +disable_so_xfrm_idx_hash_transfer_fndecl_57346 xfrm_idx_hash_transfer fndecl 3 57346 NULL
150071 +disable_so_hblank_hi_lvds_dvo_timing_57349 hblank_hi lvds_dvo_timing 0 57349 NULL
150072 +disable_so_try_cancel_split_timeout_fndecl_57358 try_cancel_split_timeout fndecl 0 57358 NULL
150073 +disable_so_node_read_cpumask_fndecl_57363 node_read_cpumask fndecl 0 57363 NULL
150074 +disable_so_module_addr_max_rw_vardecl_module_c_57377 module_addr_max_rw vardecl_module.c 0 57377 NULL
150075 +disable_so_timecounter_read_delta_fndecl_57378 timecounter_read_delta fndecl 0 57378 NULL
150076 +disable_so_addr_hi_ahci_sg_57386 addr_hi ahci_sg 0 57386 NULL
150077 +disable_so_rpi_paddr_lo_lpfc_mbx_post_hdr_tmpl_57387 rpi_paddr_lo lpfc_mbx_post_hdr_tmpl 0 57387 NULL
150078 +disable_so_read_signal_strength_dvb_frontend_ops_57393 read_signal_strength dvb_frontend_ops 0 57393 NULL nohasharray
150079 +disable_so_aes_init_fndecl_57393 aes_init fndecl 0 57393 &disable_so_read_signal_strength_dvb_frontend_ops_57393
150080 +disable_so_iscsi_stat_instance_show_attr_disc_time_fndecl_57397 iscsi_stat_instance_show_attr_disc_time fndecl 0 57397 NULL nohasharray
150081 +disable_so_inblock_signal_struct_57397 inblock signal_struct 0 57397 &disable_so_iscsi_stat_instance_show_attr_disc_time_fndecl_57397
150082 +disable_so_ks0108_address_fndecl_57399 ks0108_address fndecl 1 57399 NULL
150083 +disable_so_set_mtrr_fndecl_57402 set_mtrr fndecl 2-3 57402 NULL
150084 +disable_so___hw_addr_del_entry_fndecl_57405 __hw_addr_del_entry fndecl 0 57405 NULL
150085 +disable_so_adis16136_write_frequency_fndecl_57414 adis16136_write_frequency fndecl 0-4 57414 NULL
150086 +disable_so_addr_hi_eth_rx_cqe_next_page_57432 addr_hi eth_rx_cqe_next_page 0 57432 NULL
150087 +disable_so_vp_iowrite64_twopart_fndecl_57440 vp_iowrite64_twopart fndecl 1 57440 NULL
150088 +disable_so_demod_i2c_addr_tda10071_config_57445 demod_i2c_addr tda10071_config 0 57445 NULL
150089 +disable_so___mcheck_cpu_mce_banks_init_fndecl_57446 __mcheck_cpu_mce_banks_init fndecl 0 57446 NULL
150090 +disable_so_reference_freq_amdgpu_pll_57451 reference_freq amdgpu_pll 0 57451 NULL
150091 +disable_so_default_dispclk_radeon_clock_57469 default_dispclk radeon_clock 0 57469 NULL
150092 +disable_so_dma_pool_free_fndecl_57472 dma_pool_free fndecl 3 57472 NULL
150093 +disable_so_ds1307_get_time_fndecl_57477 ds1307_get_time fndecl 0 57477 NULL
150094 +disable_so_addr_ch_mem_range_57497 addr ch_mem_range 0 57497 NULL
150095 +disable_so_ip_hash_netiface4_elem_57501 ip hash_netiface4_elem 0 57501 NULL
150096 +disable_so_dt_cpufreq_platdrv_init_fndecl_57502 dt_cpufreq_platdrv_init fndecl 0 57502 NULL
150097 +disable_so_fuse_flush_times_fndecl_57514 fuse_flush_times fndecl 0 57514 NULL
150098 +disable_so_nl_pid_sockaddr_nl_57515 nl_pid sockaddr_nl 0 57515 NULL
150099 +disable_so_plane_vaddr_fndecl_57531 plane_vaddr fndecl 5 57531 NULL
150100 +disable_so_addr_nv_adma_prd_57534 addr nv_adma_prd 0 57534 NULL
150101 +disable_so_task_tgid_vnr_fndecl_57539 task_tgid_vnr fndecl 0 57539 NULL
150102 +disable_so_get_register_interruptible_fndecl_57541 get_register_interruptible fndecl 0 57541 NULL
150103 +disable_so_spi_rcvhdr_tailaddr_ipath_base_info_57542 spi_rcvhdr_tailaddr ipath_base_info 0 57542 NULL
150104 +disable_so_ath9k_hw_clear_queue_interrupts_fndecl_57543 ath9k_hw_clear_queue_interrupts fndecl 2 57543 NULL
150105 +disable_so_cl_recover_timer_dlm_cluster_57553 cl_recover_timer dlm_cluster 0 57553 NULL nohasharray
150106 +disable_so_boot_addr_pmu_nvbios_pmuR_57553 boot_addr_pmu nvbios_pmuR 0 57553 &disable_so_cl_recover_timer_dlm_cluster_57553 nohasharray
150107 +disable_so___mod_timer_fndecl_57553 __mod_timer fndecl 2 57553 &disable_so_boot_addr_pmu_nvbios_pmuR_57553
150108 +disable_so_hpfb_freq_cs42l56_platform_data_57565 hpfb_freq cs42l56_platform_data 0 57565 NULL nohasharray
150109 +disable_so_i915_max_freq_set_fndecl_57565 i915_max_freq_set fndecl 2-0 57565 &disable_so_hpfb_freq_cs42l56_platform_data_57565
150110 +disable_so_frequency_v4l2_frequency_57580 frequency v4l2_frequency 0 57580 NULL
150111 +disable_so_time_mce_57593 time mce 0 57593 NULL
150112 +disable_so_addr_abituguru3_data_57605 addr abituguru3_data 0 57605 NULL
150113 +disable_so_bitmap_onto_fndecl_57611 bitmap_onto fndecl 4 57611 NULL
150114 +disable_so_rx4581_get_datetime_fndecl_57612 rx4581_get_datetime fndecl 0 57612 NULL
150115 +disable_so_rem_addr_nes_cm_info_57615 rem_addr nes_cm_info 0 57615 NULL
150116 +disable_so_lease_time_nfs_fsinfo_57627 lease_time nfs_fsinfo 0 57627 NULL
150117 +disable_so_hash_tbl_pbl_addr_hi_fcoe_kwqe_init2_57631 hash_tbl_pbl_addr_hi fcoe_kwqe_init2 0 57631 NULL
150118 +disable_so_pci_addr_blogic_probeinfo_57646 pci_addr blogic_probeinfo 0 57646 NULL
150119 +disable_so_intel_gpio_runtime_idle_fndecl_57650 intel_gpio_runtime_idle fndecl 0 57650 NULL
150120 +disable_so_clock_div_par_info_57652 clock_div par_info 0 57652 NULL
150121 +disable_so_overflowuid_vardecl_57653 overflowuid vardecl 0 57653 NULL
150122 +disable_so_start_time_request_57657 start_time request 0 57657 NULL nohasharray
150123 +disable_so_wil_freq_seq_open_fndecl_57657 wil_freq_seq_open fndecl 0 57657 &disable_so_start_time_request_57657 nohasharray
150124 +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
150125 +disable_so_addr_hi_dma_address_57659 addr_hi dma_address 0 57659 NULL
150126 +disable_so_wm2200_runtime_resume_fndecl_57661 wm2200_runtime_resume fndecl 0 57661 NULL nohasharray
150127 +disable_so_w_idx_addr_brcmf_pcie_ringbuf_57661 w_idx_addr brcmf_pcie_ringbuf 0 57661 &disable_so_wm2200_runtime_resume_fndecl_57661
150128 +disable_so_timeout_us_vardecl_tlb_uv_c_57666 timeout_us vardecl_tlb_uv.c 0 57666 NULL
150129 +disable_so_fence_wait_timeout_fndecl_57667 fence_wait_timeout fndecl 0-3 57667 NULL nohasharray
150130 +disable_so_signal_cfg80211_bss_57667 signal cfg80211_bss 0 57667 &disable_so_fence_wait_timeout_fndecl_57667
150131 +disable_so_admin_timeout_vardecl_nvme_core_c_57668 admin_timeout vardecl_nvme-core.c 0 57668 NULL
150132 +disable_so_next_gid_index_mlx4_mgm_57670 next_gid_index mlx4_mgm 0 57670 NULL
150133 +disable_so_sdn_objnamel_sockaddr_dn_57674 sdn_objnamel sockaddr_dn 0 57674 NULL
150134 +disable_so_diolan_set_clock_synch_timeout_fndecl_57678 diolan_set_clock_synch_timeout fndecl 0 57678 NULL
150135 +disable_so_pioaddr_rhine_private_57682 pioaddr rhine_private 0 57682 NULL nohasharray
150136 +disable_so_or51132_read_signal_strength_fndecl_57682 or51132_read_signal_strength fndecl 0 57682 &disable_so_pioaddr_rhine_private_57682
150137 +disable_so_np_oaktrail_hdmi_clock_57683 np oaktrail_hdmi_clock 0 57683 NULL
150138 +disable_so_laddr_check_rds_transport_57695 laddr_check rds_transport 1 57695 NULL
150139 +disable_so_pause_time_ixgbe_fc_info_57702 pause_time ixgbe_fc_info 0 57702 NULL
150140 +disable_so_img_spfi_runtime_resume_fndecl_57703 img_spfi_runtime_resume fndecl 0 57703 NULL
150141 +disable_so_y_runtime_sc_57719 y runtime_sc 0 57719 NULL nohasharray
150142 +disable_so_tscdeadline_kvm_timer_57719 tscdeadline kvm_timer 0 57719 &disable_so_y_runtime_sc_57719
150143 +disable_so_dmaaddr_avmcard_dmabuf_57720 dmaaddr avmcard_dmabuf 0 57720 NULL nohasharray
150144 +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
150145 +disable_so_xgene_rtc_read_time_fndecl_57728 xgene_rtc_read_time fndecl 0 57728 NULL
150146 +disable_so_dma_addr_vnic_wq_buf_57732 dma_addr vnic_wq_buf 0 57732 NULL
150147 +disable_so_E_md4hash_fndecl_57735 E_md4hash fndecl 0 57735 NULL
150148 +disable_so_azx_timecounter_init_fndecl_57762 azx_timecounter_init fndecl 3 57762 NULL
150149 +disable_so_pcibios_save_fw_addr_fndecl_57765 pcibios_save_fw_addr fndecl 3 57765 NULL nohasharray
150150 +disable_so_hash_setkey_fndecl_57765 hash_setkey fndecl 0-3 57765 &disable_so_pcibios_save_fw_addr_fndecl_57765
150151 +disable_so_dlm_master_hash_fndecl_57794 dlm_master_hash fndecl 2 57794 NULL
150152 +disable_so_bitmap_or_fndecl_57806 bitmap_or fndecl 4 57806 NULL
150153 +disable_so_iso_stream_schedule_fndecl_57815 iso_stream_schedule fndecl 0 57815 NULL nohasharray
150154 +disable_so_crypto_register_rng_fndecl_57815 crypto_register_rng fndecl 0 57815 &disable_so_iso_stream_schedule_fndecl_57815
150155 +disable_so_authenc_verify_ahash_done_fndecl_57820 authenc_verify_ahash_done fndecl 2 57820 NULL
150156 +disable_so___timespec_to_jiffies_fndecl_57822 __timespec_to_jiffies fndecl 0-2-1 57822 NULL
150157 +disable_so_sys_addr_to_csrow_fndecl_57824 sys_addr_to_csrow fndecl 0-2 57824 NULL
150158 +disable_so_req_q_phy_addr_ql3_adapter_57830 req_q_phy_addr ql3_adapter 0 57830 NULL
150159 +disable_so_htod_mb_data_addr_brcmf_pcie_shared_info_57843 htod_mb_data_addr brcmf_pcie_shared_info 0 57843 NULL
150160 +disable_so_xfs_btree_rec_offset_fndecl_57864 xfs_btree_rec_offset fndecl 0-2 57864 NULL
150161 +disable_so_write_phy_reg_fndecl_57868 write_phy_reg fndecl 3-2 57868 NULL
150162 +disable_so_bg_block_bitmap_lo_ext4_group_desc_57870 bg_block_bitmap_lo ext4_group_desc 0 57870 NULL
150163 +disable_so_s_wtime_ext4_super_block_57871 s_wtime ext4_super_block 0 57871 NULL
150164 +disable_so_bridge_hello_time_net_bridge_57884 bridge_hello_time net_bridge 0 57884 NULL
150165 +disable_so_gpu_addr_radeon_wb_57894 gpu_addr radeon_wb 0 57894 NULL
150166 +disable_so_addr_vxge_hw_mempool_dma_57895 addr vxge_hw_mempool_dma 0 57895 NULL nohasharray
150167 +disable_so_command_setecptiming_fndecl_57895 command_setecptiming fndecl 0 57895 &disable_so_addr_vxge_hw_mempool_dma_57895
150168 +disable_so_kbd_led_timeout_show_fndecl_57896 kbd_led_timeout_show fndecl 0 57896 NULL
150169 +disable_so_ceph_aes_encrypt2_fndecl_57897 ceph_aes_encrypt2 fndecl 2-6-8 57897 NULL
150170 +disable_so_mask_lo_mtrr_var_range_57901 mask_lo mtrr_var_range 0 57901 NULL
150171 +disable_so_family_xfrm_kmaddress_57907 family xfrm_kmaddress 0 57907 NULL
150172 +disable_so_ks0108_delay_vardecl_ks0108_c_57914 ks0108_delay vardecl_ks0108.c 0 57914 NULL
150173 +disable_so_mtime_server_afs_file_status_57920 mtime_server afs_file_status 0 57920 NULL
150174 +disable_so_base_guid_qib_devdata_57924 base_guid qib_devdata 0 57924 NULL
150175 +disable_so_btrfs_delete_delayed_insertion_item_fndecl_57926 btrfs_delete_delayed_insertion_item fndecl 0 57926 NULL
150176 +disable_so_atime_sec_p9_iattr_dotl_57931 atime_sec p9_iattr_dotl 0 57931 NULL
150177 +disable_so_io_bitmap_max_thread_struct_57932 io_bitmap_max thread_struct 0 57932 NULL
150178 +disable_so_cpu_has_cpufreq_fndecl_57939 cpu_has_cpufreq fndecl 1 57939 NULL
150179 +disable_so_discov_interleaved_timeout_hci_dev_57944 discov_interleaved_timeout hci_dev 0 57944 NULL
150180 +disable_so_batadv_orig_hash_del_if_fndecl_57951 batadv_orig_hash_del_if fndecl 2 57951 NULL
150181 +disable_so_vapic_addr_kvm_vapic_addr_57958 vapic_addr kvm_vapic_addr 0 57958 NULL
150182 +disable_so_qce_ahash_update_fndecl_57959 qce_ahash_update fndecl 0 57959 NULL
150183 +disable_so_work_base_addr_snd_ymfpci_57965 work_base_addr snd_ymfpci 0 57965 NULL
150184 +disable_so_enable_cpuidle_governor_57967 enable cpuidle_governor 0 57967 NULL
150185 +disable_so_hash_write_fndecl_57980 hash_write fndecl 0 57980 NULL
150186 +disable_so_addr_cs5535audio_dma_desc_57981 addr cs5535audio_dma_desc 0 57981 NULL nohasharray
150187 +disable_so_wdt_set_timeout_fndecl_57981 wdt_set_timeout fndecl 0 57981 &disable_so_addr_cs5535audio_dma_desc_57981
150188 +disable_so_memaddr_velocity_info_57982 memaddr velocity_info 0 57982 NULL
150189 +disable_so_uuids_open_fndecl_57986 uuids_open fndecl 0 57986 NULL
150190 +disable_so_p6_mt9t112_pll_divider_58006 p6 mt9t112_pll_divider 0 58006 NULL
150191 +disable_so_buffer_addr_lo_iscsi_bd_58012 buffer_addr_lo iscsi_bd 0 58012 NULL
150192 +disable_so_piix_set_timings_fndecl_58017 piix_set_timings fndecl 3 58017 NULL
150193 +disable_so_rqt_hwaddr_t4_rq_58021 rqt_hwaddr t4_rq 0 58021 NULL
150194 +disable_so_fc_gidpn_build_fndecl_58022 fc_gidpn_build fndecl 0-3-5 58022 NULL nohasharray
150195 +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
150196 +disable_so_sdev_runtime_suspend_fndecl_58023 sdev_runtime_suspend fndecl 0 58023 NULL
150197 +disable_so_check_msr_fndecl_58027 check_msr fndecl 2 58027 NULL
150198 +disable_so_init_addr_pmu_nvbios_pmuR_58030 init_addr_pmu nvbios_pmuR 0 58030 NULL
150199 +disable_so_read_addr_qla82xx_md_entry_mux_58034 read_addr qla82xx_md_entry_mux 0 58034 NULL
150200 +disable_so_vclk_post_div_real_pll_ct_58036 vclk_post_div_real pll_ct 0 58036 NULL
150201 +disable_so_mv88e6060_set_addr_fndecl_58039 mv88e6060_set_addr fndecl 0 58039 NULL
150202 +disable_so_skb_tx_hash_fndecl_58044 skb_tx_hash fndecl 0 58044 NULL
150203 +disable_so_kvm_mtrr_valid_fndecl_58049 kvm_mtrr_valid fndecl 3 58049 NULL
150204 +disable_so_enic_dev_del_station_addr_fndecl_58050 enic_dev_del_station_addr fndecl 0 58050 NULL
150205 +disable_so_divisor_flow_filter_58055 divisor flow_filter 0 58055 NULL nohasharray
150206 +disable_so_sg_addr_orc_scb_58055 sg_addr orc_scb 0 58055 &disable_so_divisor_flow_filter_58055
150207 +disable_so_read_addr_qla8xxx_minidump_entry_rdrom_58060 read_addr qla8xxx_minidump_entry_rdrom 0 58060 NULL
150208 +disable_so_op2_value_baddr1_gru_instruction_58062 op2_value_baddr1 gru_instruction 0 58062 NULL
150209 +disable_so_wait_table_hash_nr_entries_zone_58067 wait_table_hash_nr_entries zone 0 58067 NULL
150210 +disable_so_write_delay_adis_data_58068 write_delay adis_data 0 58068 NULL
150211 +disable_so_paging64_walk_addr_nested_fndecl_58079 paging64_walk_addr_nested fndecl 3-4 58079 NULL
150212 +disable_so_pm860x_rtc_set_time_fndecl_58084 pm860x_rtc_set_time fndecl 0 58084 NULL nohasharray
150213 +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
150214 +disable_so_regvalue__coeff_div_58086 regvalue _coeff_div 0 58086 NULL
150215 +disable_so_ext_addr_solo_p2m_desc_58103 ext_addr solo_p2m_desc 0 58103 NULL
150216 +disable_so_vclk_radeon_uvd_clock_voltage_dependency_entry_58107 vclk radeon_uvd_clock_voltage_dependency_entry 0 58107 NULL
150217 +disable_so_freq_ath5k_chan_pcal_info_58109 freq ath5k_chan_pcal_info 0 58109 NULL
150218 +disable_so_d_ino_timer_qc_dqblk_58112 d_ino_timer qc_dqblk 0 58112 NULL nohasharray
150219 +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
150220 +disable_so_src_addr_low_qlcnic_pex_dma_descriptor_58115 src_addr_low qlcnic_pex_dma_descriptor 0 58115 NULL
150221 +disable_so_dvb_buf_tscnt_vardecl_cx88_dvb_c_58119 dvb_buf_tscnt vardecl_cx88-dvb.c 0 58119 NULL
150222 +disable_so_aes_encrypt_packets_read_fndecl_58121 aes_encrypt_packets_read fndecl 0-3 58121 NULL
150223 +disable_so_cq_dma_address_skd_device_58128 cq_dma_address skd_device 0 58128 NULL
150224 +disable_so_mtrr_type_lookup_fixed_fndecl_58157 mtrr_type_lookup_fixed fndecl 1 58157 NULL
150225 +disable_so_start_rmt_timer0_fndecl_58158 start_rmt_timer0 fndecl 2 58158 NULL nohasharray
150226 +disable_so_pneigh_hash_fndecl_58158 pneigh_hash fndecl 2 58158 &disable_so_start_rmt_timer0_fndecl_58158
150227 +disable_so_spi_rcvhdr_tailaddr_qib_base_info_58167 spi_rcvhdr_tailaddr qib_base_info 0 58167 NULL
150228 +disable_so_high_bkey_58171 high bkey 0 58171 NULL
150229 +disable_so_remove_journal_hash_fndecl_58179 remove_journal_hash fndecl 4 58179 NULL
150230 +disable_so_snd_sgbuf_get_addr_fndecl_58188 snd_sgbuf_get_addr fndecl 0-2 58188 NULL
150231 +disable_so_get_cpu_topology_fndecl_58189 get_cpu_topology fndecl 1 58189 NULL
150232 +disable_so_mwl8k_cmd_update_mac_addr_fndecl_58193 mwl8k_cmd_update_mac_addr fndecl 0 58193 NULL
150233 +disable_so_i_mode_inode_58204 i_mode inode 0 58204 NULL
150234 +disable_so_qla4xxx_fw_uptime_show_fndecl_58212 qla4xxx_fw_uptime_show fndecl 0 58212 NULL
150235 +disable_so_ct_xfitimer_irq_rearm_fndecl_58216 ct_xfitimer_irq_rearm fndecl 2 58216 NULL
150236 +disable_so_r820t_set_analog_freq_fndecl_58223 r820t_set_analog_freq fndecl 0 58223 NULL
150237 +disable_so_devlink_sound_timer_operations_58261 devlink sound_timer_operations 0 58261 NULL
150238 +disable_so_lx_dsp_get_clock_frequency_fndecl_58263 lx_dsp_get_clock_frequency fndecl 0 58263 NULL
150239 +disable_so_qdr_dfe_time_qib_chippport_specific_58265 qdr_dfe_time qib_chippport_specific 0 58265 NULL
150240 +disable_so_boottime_set_fndecl_58270 boottime_set fndecl 0 58270 NULL
150241 +disable_so_unhandled_signal_fndecl_58272 unhandled_signal fndecl 2 58272 NULL
150242 +disable_so_nested_vmx_check_msr_switch_fndecl_58274 nested_vmx_check_msr_switch fndecl 2-3 58274 NULL
150243 +disable_so_atomic_counters_read_fndecl_58280 atomic_counters_read fndecl 3-0 58280 NULL
150244 +disable_so_read_delay_adis_data_58281 read_delay adis_data 0 58281 NULL
150245 +disable_so_rsi_sdio_set_cmd52_arg_fndecl_58288 rsi_sdio_set_cmd52_arg fndecl 0-2-3-4-5 58288 NULL
150246 +disable_so_ipv6_dev_get_saddr_fndecl_58290 ipv6_dev_get_saddr fndecl 0 58290 NULL
150247 +disable_so_futex_atomic_cmpxchg_inatomic_fndecl_58294 futex_atomic_cmpxchg_inatomic fndecl 4 58294 NULL
150248 +disable_so_gcm_hash_assoc_remain_done_fndecl_58296 gcm_hash_assoc_remain_done fndecl 2 58296 NULL
150249 +disable_so_regmap_update_bits_async_fndecl_58298 regmap_update_bits_async fndecl 2-4-3-0 58298 NULL
150250 +disable_so_dialwait_timer_isdn_net_local_s_58300 dialwait_timer isdn_net_local_s 0 58300 NULL
150251 +disable_so_addr_mISDNchannel_58316 addr mISDNchannel 0 58316 NULL
150252 +disable_so_incr_error_cpu_itimer_58327 incr_error cpu_itimer 0 58327 NULL
150253 +disable_so_tai_offset_timekeeper_58331 tai_offset timekeeper 0 58331 NULL
150254 +disable_so_mce_rdmsrl_fndecl_58332 mce_rdmsrl fndecl 0 58332 NULL
150255 +disable_so_start_ecm_timer_fndecl_58359 start_ecm_timer fndecl 2 58359 NULL
150256 +disable_so_autoconfig_read_divisor_id_fndecl_58367 autoconfig_read_divisor_id fndecl 0 58367 NULL
150257 +disable_so_x86_get_mtrr_mem_range_fndecl_58379 x86_get_mtrr_mem_range fndecl 3-4-2-0 58379 NULL
150258 +disable_so_mpc_ioapic_addr_fndecl_58384 mpc_ioapic_addr fndecl 0 58384 NULL
150259 +disable_so_addr_type_ipv6_saddr_score_58395 addr_type ipv6_saddr_score 0 58395 NULL
150260 +disable_so_setfreq_i_fndecl_58400 setfreq_i fndecl 2 58400 NULL
150261 +disable_so_tcp_md5_hash_skb_data_fndecl_58401 tcp_md5_hash_skb_data fndecl 3 58401 NULL
150262 +disable_so_aca_cstamp_ifacaddr6_58402 aca_cstamp ifacaddr6 0 58402 NULL
150263 +disable_so_old_cpufreq_freqs_58403 old cpufreq_freqs 0 58403 NULL
150264 +disable_so_jiffies_to_timeval_fndecl_58407 jiffies_to_timeval fndecl 1 58407 NULL
150265 +disable_so_vnic_dev_set_mac_addr_fndecl_58408 vnic_dev_set_mac_addr fndecl 0 58408 NULL
150266 +disable_so_sadb_lifetime_addtime_sadb_lifetime_58416 sadb_lifetime_addtime sadb_lifetime 0 58416 NULL
150267 +disable_so_addr_smsc47m1_data_58419 addr smsc47m1_data 0 58419 NULL
150268 +disable_so_clk_freq_g762_data_58420 clk_freq g762_data 0 58420 NULL
150269 +disable_so_khugepaged_scan_sleep_millisecs_vardecl_huge_memory_c_58427 khugepaged_scan_sleep_millisecs vardecl_huge_memory.c 0 58427 NULL nohasharray
150270 +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
150271 +disable_so_max_addr_dmar_domain_58431 max_addr dmar_domain 0 58431 NULL
150272 +disable_so_snd_ice1712_pro_internal_clock_default_info_fndecl_58437 snd_ice1712_pro_internal_clock_default_info fndecl 0 58437 NULL nohasharray
150273 +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
150274 +disable_so_bnx2fc_cmd_timer_set_fndecl_58441 bnx2fc_cmd_timer_set fndecl 2 58441 NULL
150275 +disable_so_do_settimeofday64_fndecl_58445 do_settimeofday64 fndecl 0 58445 NULL
150276 +disable_so_uv_mmtimer_ioctl_fndecl_58452 uv_mmtimer_ioctl fndecl 0 58452 NULL
150277 +disable_so_r61_val_fc2580_freq_regs_58455 r61_val fc2580_freq_regs 0 58455 NULL
150278 +disable_so_epp_read_addr_parport_operations_58468 epp_read_addr parport_operations 0-3 58468 NULL
150279 +disable_so_audio_config_hdmi_pixel_clock_fndecl_58471 audio_config_hdmi_pixel_clock fndecl 0 58471 NULL
150280 +disable_so_bufaddr_epic_tx_desc_58478 bufaddr epic_tx_desc 0 58478 NULL nohasharray
150281 +disable_so_qlcnic_sre_macaddr_change_fndecl_58478 qlcnic_sre_macaddr_change fndecl 0 58478 &disable_so_bufaddr_epic_tx_desc_58478
150282 +disable_so_gtime_task_struct_58480 gtime task_struct 0 58480 NULL nohasharray
150283 +disable_so_dma_addr_vpdma_buf_58480 dma_addr vpdma_buf 0 58480 &disable_so_gtime_task_struct_58480
150284 +disable_so_div_sync_wait_dib7000m_state_58486 div_sync_wait dib7000m_state 0 58486 NULL
150285 +disable_so_long_press_time_val_palmas_pwron_config_58497 long_press_time_val palmas_pwron_config 0 58497 NULL
150286 +disable_so_primary_pci_bus_58515 primary pci_bus 0 58515 NULL
150287 +disable_so_clk_frequency_imx_wm8962_data_58525 clk_frequency imx_wm8962_data 0 58525 NULL
150288 +disable_so_ieee80211_if_fmt_min_discovery_timeout_fndecl_58528 ieee80211_if_fmt_min_discovery_timeout fndecl 0-3 58528 NULL
150289 +disable_so_vidioc_s_frequency_fndecl_58543 vidioc_s_frequency fndecl 0 58543 NULL
150290 +disable_so_bitstream_put_bits_fndecl_58552 bitstream_put_bits fndecl 0-3 58552 NULL
150291 +disable_so_rbp_kvm_regs_58553 rbp kvm_regs 0 58553 NULL
150292 +disable_so_dosr_aic32x4_rate_divs_58555 dosr aic32x4_rate_divs 0 58555 NULL
150293 +disable_so_vscnprintf_fndecl_58558 vscnprintf fndecl 0-2 58558 NULL
150294 +disable_so_static_address_open_fndecl_58572 static_address_open fndecl 0 58572 NULL
150295 +disable_so_sysctl_rose_clear_request_timeout_vardecl_58580 sysctl_rose_clear_request_timeout vardecl 0 58580 NULL
150296 +disable_so_di_uid_dinode_58581 di_uid dinode 0 58581 NULL
150297 +disable_so_crypto_cts_decrypt_fndecl_58584 crypto_cts_decrypt fndecl 0-4 58584 NULL
150298 +disable_so_igu_base_addr_bnx2x_58589 igu_base_addr bnx2x 0 58589 NULL
150299 +disable_so_ifa_address_dn_ifaddr_58593 ifa_address dn_ifaddr 0 58593 NULL
150300 +disable_so_p54_get_band_from_freq_fndecl_58594 p54_get_band_from_freq fndecl 1 58594 NULL
150301 +disable_so_csk_ddp_setup_pgidx_cxgbi_device_58611 csk_ddp_setup_pgidx cxgbi_device 2 58611 NULL
150302 +disable_so_ref_mod_btrfs_delayed_ref_node_58614 ref_mod btrfs_delayed_ref_node 0 58614 NULL
150303 +disable_so_gr_remove_uid_fndecl_58619 gr_remove_uid fndecl 1 58619 NULL
150304 +disable_so_i2c_address_fc0012_config_58626 i2c_address fc0012_config 0 58626 NULL nohasharray
150305 +disable_so_ablkcipher_done_slow_fndecl_58626 ablkcipher_done_slow fndecl 0-2 58626 &disable_so_i2c_address_fc0012_config_58626
150306 +disable_so_address_b43legacy_dmadesc32_58627 address b43legacy_dmadesc32 0 58627 NULL
150307 +disable_so_di_atime_qnx6_inode_entry_58654 di_atime qnx6_inode_entry 0 58654 NULL nohasharray
150308 +disable_so_hactive_lo_lvds_dvo_timing_58654 hactive_lo lvds_dvo_timing 0 58654 &disable_so_di_atime_qnx6_inode_entry_58654
150309 +disable_so_ack_seq_tcp_skb_cb_58657 ack_seq tcp_skb_cb 0 58657 NULL
150310 +disable_so_matroxfb_PLL_mavenclock_fndecl_58658 matroxfb_PLL_mavenclock fndecl 3-4 58658 NULL nohasharray
150311 +disable_so_assert_exp_addr_sdpcm_shared_58658 assert_exp_addr sdpcm_shared 0 58658 &disable_so_matroxfb_PLL_mavenclock_fndecl_58658
150312 +disable_so_pre_div_freq_tbl_58661 pre_div freq_tbl 0 58661 NULL
150313 +disable_so_alsa_timer_init_fndecl_58667 alsa_timer_init fndecl 0 58667 NULL
150314 +disable_so_alloc_cpumask_var_node_fndecl_58668 alloc_cpumask_var_node fndecl 2-3 58668 NULL
150315 +disable_so_genwqe_debugfs_curr_dbg_uid2_open_fndecl_58673 genwqe_debugfs_curr_dbg_uid2_open fndecl 0 58673 NULL
150316 +disable_so_pixclock_fb_videomode_58678 pixclock fb_videomode 0 58678 NULL
150317 +disable_so_h_addr_reg_musb_qh_58681 h_addr_reg musb_qh 0 58681 NULL
150318 +disable_so_timeout_cyclades_port_58683 timeout cyclades_port 0 58683 NULL
150319 +disable_so_cxio_init_resource_fifo_random_fndecl_58684 cxio_init_resource_fifo_random fndecl 3 58684 NULL
150320 +disable_so_dib8000_get_timeout_fndecl_58702 dib8000_get_timeout fndecl 2-0 58702 NULL nohasharray
150321 +disable_so_xfs_btree_get_buf_block_fndecl_58702 xfs_btree_get_buf_block fndecl 0 58702 &disable_so_dib8000_get_timeout_fndecl_58702
150322 +disable_so_apds9300_write_interrupt_config_fndecl_58703 apds9300_write_interrupt_config fndecl 0 58703 NULL
150323 +disable_so_ath9k_hw_computetxtime_fndecl_58711 ath9k_hw_computetxtime fndecl 0-3-4-5 58711 NULL
150324 +disable_so_bus_address_drm_buf_58716 bus_address drm_buf 0 58716 NULL
150325 +disable_so_nr_irqs_vardecl_58723 nr_irqs vardecl 0 58723 NULL nohasharray
150326 +disable_so_hashbin_find_next_fndecl_58723 hashbin_find_next fndecl 2 58723 &disable_so_nr_irqs_vardecl_58723
150327 +disable_so_snd_usb_find_clock_selector_fndecl_58728 snd_usb_find_clock_selector fndecl 2 58728 NULL
150328 +disable_so_radio_freq_bttv_58729 radio_freq bttv 0 58729 NULL
150329 +disable_so_xc_set_signal_source_fndecl_58733 xc_set_signal_source fndecl 0 58733 NULL
150330 +disable_so_doorbell_write_vardecl_pcc_cpufreq_c_58745 doorbell_write vardecl_pcc-cpufreq.c 0 58745 NULL
150331 +disable_so_cpu_clock_counter_kfd_ioctl_get_clock_counters_args_58758 cpu_clock_counter kfd_ioctl_get_clock_counters_args 0 58758 NULL
150332 +disable_so_btrfs_set_dev_replace_time_started_fndecl_58761 btrfs_set_dev_replace_time_started fndecl 3 58761 NULL
150333 +disable_so_i_hash_mask_vardecl_inode_c_58762 i_hash_mask vardecl_inode.c 0 58762 NULL
150334 +disable_so_gr_set_address_fndecl_58765 gr_set_address fndecl 2 58765 NULL
150335 +disable_so_perfect_tx_time_minstrel_rate_58766 perfect_tx_time minstrel_rate 0 58766 NULL
150336 +disable_so_min_ref_div_radeon_pll_58768 min_ref_div radeon_pll 0 58768 NULL
150337 +disable_so_demod_address_ec100_config_58771 demod_address ec100_config 0 58771 NULL
150338 +disable_so_phys_addr_vm_struct_58777 phys_addr vm_struct 0 58777 NULL
150339 +disable_so_addr_ramfuc_reg_58780 addr ramfuc_reg 0 58780 NULL nohasharray
150340 +disable_so_start_addr_p54_tx_info_58780 start_addr p54_tx_info 0 58780 &disable_so_addr_ramfuc_reg_58780
150341 +disable_so_interrupt_mask_oxygen_58792 interrupt_mask oxygen 0 58792 NULL
150342 +disable_so_time_to_tm_fndecl_58793 time_to_tm fndecl 2-1 58793 NULL
150343 +disable_so_irq_pci_dev_58794 irq pci_dev 0 58794 NULL
150344 +disable_so_reg_write_fndecl_58795 reg_write fndecl 0-2-3-4 58795 NULL
150345 +disable_so_eof_uid_xfs_fs_eofblocks_58796 eof_uid xfs_fs_eofblocks 0 58796 NULL
150346 +disable_so_s_dv_timings_v4l2_subdev_video_ops_58798 s_dv_timings v4l2_subdev_video_ops 0 58798 NULL
150347 +disable_so_iscsit_do_crypto_hash_buf_fndecl_58805 iscsit_do_crypto_hash_buf fndecl 3-4 58805 NULL
150348 +disable_so_ablkcipher_next_slow_fndecl_58809 ablkcipher_next_slow fndecl 3-4 58809 NULL
150349 +disable_so_set_process_cpu_timer_fndecl_58820 set_process_cpu_timer fndecl 2 58820 NULL
150350 +disable_so_btbcm_check_bdaddr_fndecl_58825 btbcm_check_bdaddr fndecl 0 58825 NULL
150351 +disable_so_seek_timeout_vardecl_radio_si470x_common_c_58832 seek_timeout vardecl_radio-si470x-common.c 0 58832 NULL
150352 +disable_so_rhashtable_rehash_attach_fndecl_58833 rhashtable_rehash_attach fndecl 0 58833 NULL
150353 +disable_so_read_posix_clock_operations_58837 read posix_clock_operations 2 58837 NULL
150354 +disable_so_atomic_open_inode_operations_58838 atomic_open inode_operations 4-5 58838 NULL nohasharray
150355 +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
150356 +disable_so_timeout_cmd_bidir_58846 timeout cmd_bidir 0 58846 NULL
150357 +disable_so_bank_mce_58847 bank mce 0 58847 NULL
150358 +disable_so_hw_ptr_wrap_snd_pcm_runtime_58849 hw_ptr_wrap snd_pcm_runtime 0 58849 NULL
150359 +disable_so_batadv_iv_ogm_fwd_send_time_fndecl_58851 batadv_iv_ogm_fwd_send_time fndecl 0 58851 NULL
150360 +disable_so_lrg_buf_q_alloc_phy_addr_ql3_adapter_58856 lrg_buf_q_alloc_phy_addr ql3_adapter 0 58856 NULL
150361 +disable_so_avc_get_hash_stats_fndecl_58860 avc_get_hash_stats fndecl 0 58860 NULL
150362 +disable_so_do_utimes_fndecl_58870 do_utimes fndecl 0-1 58870 NULL
150363 +disable_so_get_max_timeout_count_sdhci_ops_58875 get_max_timeout_count sdhci_ops 0 58875 NULL
150364 +disable_so_sys_setuid16_fndecl_58881 sys_setuid16 fndecl 0-1 58881 NULL
150365 +disable_so_pq_gpu_addr_kernel_queue_58891 pq_gpu_addr kernel_queue 0 58891 NULL
150366 +disable_so_suspend_time_ipw_priv_58911 suspend_time ipw_priv 0 58911 NULL
150367 +disable_so_Ti3026_calcclock_fndecl_58917 Ti3026_calcclock fndecl 2-3-0 58917 NULL
150368 +disable_so_virtual_reg_addr_wl1251_58918 virtual_reg_addr wl1251 0 58918 NULL
150369 +disable_so_timeout_read_fndecl_58936 timeout_read fndecl 3 58936 NULL
150370 +disable_so_bank_base_playback_addr_snd_ymfpci_58940 bank_base_playback_addr snd_ymfpci 0 58940 NULL
150371 +disable_so_sunkbd_interrupt_fndecl_58943 sunkbd_interrupt fndecl 2 58943 NULL
150372 +disable_so_cpufreq_add_policy_cpu_fndecl_58948 cpufreq_add_policy_cpu fndecl 0-2 58948 NULL
150373 +disable_so_vfreq___fb_timings_58967 vfreq __fb_timings 0 58967 NULL
150374 +disable_so___fdget_fndecl_58975 __fdget fndecl 1 58975 NULL
150375 +disable_so_log_addr_vhost_virtqueue_58983 log_addr vhost_virtqueue 0 58983 NULL
150376 +disable_so_start_addr_bnx2_mips_fw_file_entry_58985 start_addr bnx2_mips_fw_file_entry 0 58985 NULL
150377 +disable_so_wt_timeout_st21nfca_se_info_58988 wt_timeout st21nfca_se_info 0 58988 NULL
150378 +disable_so_sg_physaddr_sg_map_node_59010 sg_physaddr sg_map_node 0 59010 NULL
150379 +disable_so_hsync_pulse_width_hi_oaktrail_timing_info_59019 hsync_pulse_width_hi oaktrail_timing_info 0 59019 NULL
150380 +disable_so_cx88_set_freq_fndecl_59030 cx88_set_freq fndecl 0 59030 NULL
150381 +disable_so_daddr_ircomm_info_59034 daddr ircomm_info 0 59034 NULL
150382 +disable_so_iscsit_ta_netif_timeout_fndecl_59038 iscsit_ta_netif_timeout fndecl 0 59038 NULL
150383 +disable_so_frequency_stv090x_state_59044 frequency stv090x_state 0 59044 NULL
150384 +disable_so_slave_address_cp2112_write_req_report_59049 slave_address cp2112_write_req_report 0 59049 NULL
150385 +disable_so_ipath_hol_timeout_ms_vardecl_ipath_driver_c_59051 ipath_hol_timeout_ms vardecl_ipath_driver.c 0 59051 NULL
150386 +disable_so_acpi_throttling_wrmsr_fndecl_59058 acpi_throttling_wrmsr fndecl 1 59058 NULL
150387 +disable_so_acpi_cpufreq_init_fndecl_59061 acpi_cpufreq_init fndecl 0 59061 NULL
150388 +disable_so_evtbd_addr_hi_host_cmd_ds_pcie_details_59067 evtbd_addr_hi host_cmd_ds_pcie_details 0 59067 NULL
150389 +disable_so_addr_lo_dma_desc_59074 addr_lo dma_desc 0 59074 NULL
150390 +disable_so_xen_mce_chrdev_read_fndecl_59076 xen_mce_chrdev_read fndecl 0 59076 NULL
150391 +disable_so_addr_max8998_reg_dump_59086 addr max8998_reg_dump 0 59086 NULL
150392 +disable_so_card_snd_timer_id_59096 card snd_timer_id 0 59096 NULL
150393 +disable_so_addr_qib_sdma_txreq_59099 addr qib_sdma_txreq 0 59099 NULL
150394 +disable_so_rx_coalescing_timeo_bnad_59109 rx_coalescing_timeo bnad 0 59109 NULL
150395 +disable_so_dm_btree_del_fndecl_59119 dm_btree_del fndecl 0-2 59119 NULL
150396 +disable_so_topology_change_timer_show_fndecl_59122 topology_change_timer_show fndecl 0 59122 NULL
150397 +disable_so_ip_vs_addr_copy_fndecl_59129 ip_vs_addr_copy fndecl 1 59129 NULL
150398 +disable_so_i2c_address_cxd2820r_config_59130 i2c_address cxd2820r_config 0 59130 NULL
150399 +disable_so_panel_ref_divider_radeon_encoder_lvds_59134 panel_ref_divider radeon_encoder_lvds 0 59134 NULL nohasharray
150400 +disable_so_clock_lvds_dvo_timing_59134 clock lvds_dvo_timing 0 59134 &disable_so_panel_ref_divider_radeon_encoder_lvds_59134
150401 +disable_so_skcipher_setkey_fndecl_59135 skcipher_setkey fndecl 0-3 59135 NULL
150402 +disable_so_pcxhr_clock_type_info_fndecl_59137 pcxhr_clock_type_info fndecl 0 59137 NULL
150403 +disable_so_ccp_sha_setkey_fndecl_59138 ccp_sha_setkey fndecl 3 59138 NULL
150404 +disable_so_xfs_btree_shift_recs_fndecl_59139 xfs_btree_shift_recs fndecl 4 59139 NULL
150405 +disable_so_irq_set_chip_fndecl_59141 irq_set_chip fndecl 1 59141 NULL
150406 +disable_so_prech_timeout_midi_parms_59145 prech_timeout midi_parms 0 59145 NULL
150407 +disable_so_ecryptfs_message_wait_timeout_vardecl_59150 ecryptfs_message_wait_timeout vardecl 0 59150 NULL
150408 +disable_so_max_time_dib3000mc_config_59165 max_time dib3000mc_config 0 59165 NULL
150409 +disable_so_freq_snd_tea575x_59172 freq snd_tea575x 0 59172 NULL nohasharray
150410 +disable_so_hactive_hblank_hi_detailed_pixel_timing_59172 hactive_hblank_hi detailed_pixel_timing 0 59172 &disable_so_freq_snd_tea575x_59172
150411 +disable_so_last_port_bitmap_port_59176 last_port bitmap_port 0 59176 NULL
150412 +disable_so_svm_cid_sockaddr_vm_59186 svm_cid sockaddr_vm 0 59186 NULL
150413 +disable_so_divisor_tc_u_hnode_59196 divisor tc_u_hnode 0 59196 NULL
150414 +disable_so_address_r8a66597_pipe_info_59198 address r8a66597_pipe_info 0 59198 NULL
150415 +disable_so_val_addr_core0_nphy_rf_control_override_rev7_59213 val_addr_core0 nphy_rf_control_override_rev7 0 59213 NULL
150416 +disable_so_hv_signal_event_fndecl_59215 hv_signal_event fndecl 0 59215 NULL
150417 +disable_so_rv740_get_decoded_reference_divider_fndecl_59216 rv740_get_decoded_reference_divider fndecl 0-1 59216 NULL
150418 +disable_so_ecb_aes_decrypt_fndecl_59224 ecb_aes_decrypt fndecl 0-4 59224 NULL
150419 +disable_so_b44_interrupt_fndecl_59225 b44_interrupt fndecl 1 59225 NULL
150420 +disable_so_cpufreq_sysfs_create_file_fndecl_59228 cpufreq_sysfs_create_file fndecl 0 59228 NULL
150421 +disable_so_err_msr_regs_info_59233 err msr_regs_info 0 59233 NULL
150422 +disable_so_hci_dev_sockaddr_hci_59237 hci_dev sockaddr_hci 0 59237 NULL
150423 +disable_so_paddr_scq_info_59242 paddr scq_info 0 59242 NULL
150424 +disable_so_saddr_dat_cx231xx_i2c_xfer_data_59247 saddr_dat cx231xx_i2c_xfer_data 0 59247 NULL
150425 +disable_so_hash_cnt_ccp_aes_cmac_req_ctx_59249 hash_cnt ccp_aes_cmac_req_ctx 0 59249 NULL
150426 +disable_so_read_addr___cache_59255 read_addr __cache 0 59255 NULL
150427 +disable_so_freq_wmi_p2p_probe_response_cmd_59256 freq wmi_p2p_probe_response_cmd 0 59256 NULL
150428 +disable_so_ack_seq_tcphdr_59257 ack_seq tcphdr 0 59257 NULL
150429 +disable_so_i_uid_ext4_inode_59259 i_uid ext4_inode 0 59259 NULL
150430 +disable_so_prandom_seed_fndecl_59265 prandom_seed fndecl 1 59265 NULL nohasharray
150431 +disable_so_table1_addr_ipw_priv_59265 table1_addr ipw_priv 0 59265 &disable_so_prandom_seed_fndecl_59265
150432 +disable_so_set_mtrr_ops_59267 set mtrr_ops 2-3 59267 NULL
150433 +disable_so_signal_adm8211_tx_hdr_59276 signal adm8211_tx_hdr 0 59276 NULL
150434 +disable_so_n_pll_div_59277 n pll_div 0 59277 NULL
150435 +disable_so_burst_time_pie_vars_59278 burst_time pie_vars 0 59278 NULL
150436 +disable_so_atp867x_get_active_clocks_shifted_fndecl_59292 atp867x_get_active_clocks_shifted fndecl 0-2 59292 NULL
150437 +disable_so_hello_timer_show_fndecl_59304 hello_timer_show fndecl 0 59304 NULL
150438 +disable_so_pc_timeout_ubifs_debug_info_59317 pc_timeout ubifs_debug_info 0 59317 NULL
150439 +disable_so_reg_se_cache_ti_tscadc_dev_59318 reg_se_cache ti_tscadc_dev 0 59318 NULL
150440 +disable_so_hv_init_clockevent_device_fndecl_59324 hv_init_clockevent_device fndecl 2 59324 NULL nohasharray
150441 +disable_so_error_async_delayed_refs_59324 error async_delayed_refs 0 59324 &disable_so_hv_init_clockevent_device_fndecl_59324
150442 +disable_so_query_dv_timings_v4l2_subdev_video_ops_59327 query_dv_timings v4l2_subdev_video_ops 0 59327 NULL
150443 +disable_so_pwr_vec_read_time_b43_txpower_lo_control_59329 pwr_vec_read_time b43_txpower_lo_control 0 59329 NULL
150444 +disable_so_proc_do_uuid_fndecl_59345 proc_do_uuid fndecl 0 59345 NULL
150445 +disable_so_nilfs_segctor_last_seg_write_time_show_fndecl_59356 nilfs_segctor_last_seg_write_time_show fndecl 0 59356 NULL nohasharray
150446 +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
150447 +disable_so_usb_start_wait_urb_fndecl_59365 usb_start_wait_urb fndecl 0 59365 NULL
150448 +disable_so_cpuid_xenpf_cpu_ol_59386 cpuid xenpf_cpu_ol 0 59386 NULL
150449 +disable_so_mem_addr_ips_ha_59397 mem_addr ips_ha 0 59397 NULL
150450 +disable_so_ip6addrlbl_fill_fndecl_59401 ip6addrlbl_fill fndecl 0-4-6 59401 NULL
150451 +disable_so_cq_addr_lo_fcoe_kwqe_conn_offload2_59405 cq_addr_lo fcoe_kwqe_conn_offload2 0 59405 NULL
150452 +disable_so_l_pll_freq_tbl_59406 l pll_freq_tbl 0 59406 NULL
150453 +disable_so_sgid_idx_ocrdma_qp_59415 sgid_idx ocrdma_qp 0 59415 NULL
150454 +disable_so_i2c_bit_add_numbered_bus_fndecl_59416 i2c_bit_add_numbered_bus fndecl 0 59416 NULL
150455 +disable_so_trb_addr_lo_mv_u3d_ep_context_59424 trb_addr_lo mv_u3d_ep_context 0 59424 NULL
150456 +disable_so_shash_compat_init_fndecl_59445 shash_compat_init fndecl 0 59445 NULL
150457 +disable_so_currentfreq_cx24123_state_59448 currentfreq cx24123_state 0 59448 NULL
150458 +disable_so_neigh_proc_dointvec_userhz_jiffies_fndecl_59453 neigh_proc_dointvec_userhz_jiffies fndecl 0 59453 NULL
150459 +disable_so_panel_fb_divider_radeon_encoder_lvds_59458 panel_fb_divider radeon_encoder_lvds 0 59458 NULL nohasharray
150460 +disable_so_sec_pvclock_wall_clock_59458 sec pvclock_wall_clock 0 59458 &disable_so_panel_fb_divider_radeon_encoder_lvds_59458
150461 +disable_so_wl18xx_acx_host_if_cfg_bitmap_fndecl_59465 wl18xx_acx_host_if_cfg_bitmap fndecl 0 59465 NULL
150462 +disable_so_addr_erase_info_59472 addr erase_info 0 59472 NULL nohasharray
150463 +disable_so_ath9k_hw_addrxbuf_edma_fndecl_59472 ath9k_hw_addrxbuf_edma fndecl 2 59472 &disable_so_addr_erase_info_59472
150464 +disable_so_hour_timestamp_59476 hour timestamp 0 59476 NULL
150465 +disable_so_check_cpu_itimer_fndecl_59478 check_cpu_itimer fndecl 5-4 59478 NULL
150466 +disable_so_flush_time_cache_detail_59492 flush_time cache_detail 0 59492 NULL
150467 +disable_so_error0_timeout_si_sm_data_59495 error0_timeout si_sm_data 0 59495 NULL
150468 +disable_so_sampling_freq_mixart_stream_param_desc_59502 sampling_freq mixart_stream_param_desc 0 59502 NULL
150469 +disable_so_enc_addr_low_sata_start_req_59503 enc_addr_low sata_start_req 0 59503 NULL
150470 +disable_so_hash_unix_address_59504 hash unix_address 0 59504 NULL nohasharray
150471 +disable_so_ufs_get_inode_uid_fndecl_59504 ufs_get_inode_uid fndecl 0 59504 &disable_so_hash_unix_address_59504
150472 +disable_so_demod_address_tda1002x_config_59516 demod_address tda1002x_config 0 59516 NULL
150473 +disable_so_getaddr_dumpit_fndecl_59518 getaddr_dumpit fndecl 0 59518 NULL
150474 +disable_so_tg3_interrupt_fndecl_59519 tg3_interrupt fndecl 1 59519 NULL
150475 +disable_so_utime_task_struct_59526 utime task_struct 0 59526 NULL
150476 +disable_so_decrypt_ablkcipher_tfm_59537 decrypt ablkcipher_tfm 0 59537 NULL
150477 +disable_so_dma_addr_bnad_rx_vector_59551 dma_addr bnad_rx_vector 0 59551 NULL
150478 +disable_so_vram_addr_viafb_par_59552 vram_addr viafb_par 0 59552 NULL
150479 +disable_so_s00_img_ir_timing_regvals_59579 s00 img_ir_timing_regvals 0 59579 NULL
150480 +disable_so_pci_swizzle_interrupt_pin_fndecl_59580 pci_swizzle_interrupt_pin fndecl 0-2 59580 NULL
150481 +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
150482 +disable_so_time_next_delayed_flow_fq_sched_data_59598 time_next_delayed_flow fq_sched_data 0 59598 NULL
150483 +disable_so_signal_ttm_lock_59613 signal ttm_lock 0 59613 NULL
150484 +disable_so_trap_timeout_qib_ibport_59624 trap_timeout qib_ibport 0 59624 NULL
150485 +disable_so_hash_sendpage_fndecl_59633 hash_sendpage fndecl 0-3-4 59633 NULL
150486 +disable_so_address_i2c_algo_dp_aux_data_59643 address i2c_algo_dp_aux_data 0 59643 NULL
150487 +disable_so_baddr_pmcraid_hostrcb_59651 baddr pmcraid_hostrcb 0 59651 NULL
150488 +disable_so_jiffies_drm_i915_error_request_59653 jiffies drm_i915_error_request 0 59653 NULL
150489 +disable_so_niu_enable_interrupts_fndecl_59655 niu_enable_interrupts fndecl 0 59655 NULL nohasharray
150490 +disable_so_addr_nvkm_gpuobj_59655 addr nvkm_gpuobj 0 59655 &disable_so_niu_enable_interrupts_fndecl_59655
150491 +disable_so_irlap_start_backoff_timer_fndecl_59668 irlap_start_backoff_timer fndecl 2 59668 NULL
150492 +disable_so_cs_chp_time_transaction_chp_stats_s_59671 cs_chp_time transaction_chp_stats_s 0 59671 NULL nohasharray
150493 +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
150494 +disable_so_start_time_bfa_ioim_s_59693 start_time bfa_ioim_s 0 59693 NULL nohasharray
150495 +disable_so_nilfs_btree_assign_p_fndecl_59693 nilfs_btree_assign_p fndecl 0-5 59693 &disable_so_start_time_bfa_ioim_s_59693
150496 +disable_so_pid_pppol2tp_addr_59696 pid pppol2tp_addr 0 59696 NULL
150497 +disable_so_paging32_walk_addr_nested_fndecl_59706 paging32_walk_addr_nested fndecl 3-4 59706 NULL
150498 +disable_so_set_timer_tick_hw_59707 set_timer_tick hw 2 59707 NULL
150499 +disable_so_irq_domain_alloc_irqs_parent_fndecl_59718 irq_domain_alloc_irqs_parent fndecl 2-3-0 59718 NULL
150500 +disable_so_pcf8583_rtc_read_time_fndecl_59722 pcf8583_rtc_read_time fndecl 0 59722 NULL
150501 +disable_so_i_rx_jiffies_rds_incoming_59727 i_rx_jiffies rds_incoming 0 59727 NULL
150502 +disable_so_addr_pt1_buffer_59731 addr pt1_buffer 0 59731 NULL
150503 +disable_so_od_cpufreq_governor_dbs_fndecl_59745 od_cpufreq_governor_dbs fndecl 0 59745 NULL
150504 +disable_so_atmel_set_mac_address_fndecl_59747 atmel_set_mac_address fndecl 0 59747 NULL nohasharray
150505 +disable_so_ioaddr_mxser_port_59747 ioaddr mxser_port 0 59747 &disable_so_atmel_set_mac_address_fndecl_59747
150506 +disable_so_kvm_mtrr_check_gfn_range_consistency_fndecl_59759 kvm_mtrr_check_gfn_range_consistency fndecl 3-2 59759 NULL
150507 +disable_so_mul_n_fndecl_59766 mul_n fndecl 4 59766 NULL
150508 +disable_so_mlx4_bitmap_alloc_fndecl_59767 mlx4_bitmap_alloc fndecl 0 59767 NULL
150509 +disable_so_device_num_atto_csmi_get_pci_bus_addr_59770 device_num atto_csmi_get_pci_bus_addr 0 59770 NULL
150510 +disable_so_ksz_init_timer_fndecl_59771 ksz_init_timer fndecl 2 59771 NULL
150511 +disable_so_signr_usbdevfs_disconnectsignal_59774 signr usbdevfs_disconnectsignal 0 59774 NULL
150512 +disable_so_hash_netiface4_expire_fndecl_59777 hash_netiface4_expire fndecl 4 59777 NULL
150513 +disable_so_timeoutValue_RAID_CONTEXT_59780 timeoutValue RAID_CONTEXT 0 59780 NULL
150514 +disable_so_vsync_pulse_width_hi_oaktrail_timing_info_59785 vsync_pulse_width_hi oaktrail_timing_info 0 59785 NULL
150515 +disable_so_macvtap16_to_cpu_fndecl_59790 macvtap16_to_cpu fndecl 0-2 59790 NULL
150516 +disable_so_ns_ack_interrupt_fndecl_59791 ns_ack_interrupt fndecl 0 59791 NULL
150517 +disable_so_btrfs_commit_inode_delayed_inode_fndecl_59792 btrfs_commit_inode_delayed_inode fndecl 0 59792 NULL
150518 +disable_so_lg_addr_ns_dev_59797 lg_addr ns_dev 0 59797 NULL
150519 +disable_so_nr_divisor_sym_chip_59803 nr_divisor sym_chip 0 59803 NULL
150520 +disable_so_cpu_power_to_freq_fndecl_59806 cpu_power_to_freq fndecl 2 59806 NULL nohasharray
150521 +disable_so_hash_sfq_slot_59806 hash sfq_slot 0 59806 &disable_so_cpu_power_to_freq_fndecl_59806
150522 +disable_so_netvsc_set_mac_addr_fndecl_59822 netvsc_set_mac_addr fndecl 0 59822 NULL
150523 +disable_so_kxcjk1013_get_startup_times_fndecl_59827 kxcjk1013_get_startup_times fndecl 0 59827 NULL nohasharray
150524 +disable_so_bitmap_ipmac_do_test_fndecl_59827 bitmap_ipmac_do_test fndecl 3 59827 &disable_so_kxcjk1013_get_startup_times_fndecl_59827
150525 +disable_so_decnet_time_wait_vardecl_59833 decnet_time_wait vardecl 0 59833 NULL
150526 +disable_so_delay_multiplier_be_set_eqd_59834 delay_multiplier be_set_eqd 0 59834 NULL
150527 +disable_so_asr_get_base_address_fndecl_59835 asr_get_base_address fndecl 0 59835 NULL
150528 +disable_so_timeout_nouveau_fence_59837 timeout nouveau_fence 0 59837 NULL
150529 +disable_so_m_pll_freq_tbl_59838 m pll_freq_tbl 0 59838 NULL
150530 +disable_so_tea5764_get_freq_fndecl_59848 tea5764_get_freq fndecl 0 59848 NULL
150531 +disable_so_seq_km_event_59849 seq km_event 0 59849 NULL nohasharray
150532 +disable_so_dst_addr_lo_dmae_command_59849 dst_addr_lo dmae_command 0 59849 &disable_so_seq_km_event_59849
150533 +disable_so_get_ep_by_addr_fndecl_59856 get_ep_by_addr fndecl 2 59856 NULL
150534 +disable_so_txbd_addr_hi_host_cmd_ds_pcie_details_59885 txbd_addr_hi host_cmd_ds_pcie_details 0 59885 NULL
150535 +disable_so_hash_v6_fndecl_59887 hash_v6 fndecl 0 59887 NULL
150536 +disable_so_sst_module_runtime_restore_fndecl_59893 sst_module_runtime_restore fndecl 0 59893 NULL
150537 +disable_so_pvclock_clocksource_read_fndecl_59895 pvclock_clocksource_read fndecl 0 59895 NULL nohasharray
150538 +disable_so_hdspm_set_interrupt_interval_fndecl_59895 hdspm_set_interrupt_interval fndecl 2-0 59895 &disable_so_pvclock_clocksource_read_fndecl_59895
150539 +disable_so_i2c_addr_r820t_config_59896 i2c_addr r820t_config 0 59896 NULL
150540 +disable_so_i2400m_check_mac_addr_fndecl_59899 i2400m_check_mac_addr fndecl 0 59899 NULL
150541 +disable_so_get_uuid_export_operations_59904 get_uuid export_operations 0 59904 NULL
150542 +disable_so_last_tx_jiffies_fmdev_59908 last_tx_jiffies fmdev 0 59908 NULL nohasharray
150543 +disable_so_delay_use_vardecl_usb_c_59908 delay_use vardecl_usb.c 0 59908 &disable_so_last_tx_jiffies_fmdev_59908
150544 +disable_so_show_telclock_version_fndecl_59913 show_telclock_version fndecl 0 59913 NULL
150545 +disable_so_flush_time_il3945_rs_sta_59914 flush_time il3945_rs_sta 0 59914 NULL
150546 +disable_so_sip_sprintf_addr_fndecl_59915 sip_sprintf_addr fndecl 0 59915 NULL
150547 +disable_so_lola_set_clock_index_fndecl_59921 lola_set_clock_index fndecl 0 59921 NULL nohasharray
150548 +disable_so_addr_stv0900_reg_59921 addr stv0900_reg 0 59921 &disable_so_lola_set_clock_index_fndecl_59921
150549 +disable_so_vsnprintf_fndecl_59932 vsnprintf fndecl 0-2 59932 NULL
150550 +disable_so_nfs4_delay_fndecl_59938 nfs4_delay fndecl 0 59938 NULL nohasharray
150551 +disable_so___bch_btree_map_nodes_fndecl_59938 __bch_btree_map_nodes fndecl 0 59938 &disable_so_nfs4_delay_fndecl_59938
150552 +disable_so_freq_before_jump_fm_rx_59940 freq_before_jump fm_rx 0 59940 NULL
150553 +disable_so_vt8623_set_pixclock_fndecl_59944 vt8623_set_pixclock fndecl 2 59944 NULL
150554 +disable_so_seq_ieee80211_fragment_entry_59945 seq ieee80211_fragment_entry 0 59945 NULL
150555 +disable_so_map_nr_blk_mq_bitmap_tags_59947 map_nr blk_mq_bitmap_tags 0 59947 NULL nohasharray
150556 +disable_so_r5_hash_fndecl_59947 r5_hash fndecl 2 59947 &disable_so_map_nr_blk_mq_bitmap_tags_59947
150557 +disable_so_s_first_error_time_ext4_super_block_59952 s_first_error_time ext4_super_block 0 59952 NULL
150558 +disable_so_crypto_ablkcipher_decrypt_fndecl_59964 crypto_ablkcipher_decrypt fndecl 0 59964 NULL
150559 +disable_so_i_gid_write_fndecl_59978 i_gid_write fndecl 2 59978 NULL
150560 +disable_so_dst_nents_qce_cipher_reqctx_59989 dst_nents qce_cipher_reqctx 0 59989 NULL
150561 +disable_so_addr_nvme_passthru_cmd_59990 addr nvme_passthru_cmd 0 59990 NULL
150562 +disable_so_vsprintf_fndecl_59994 vsprintf fndecl 0 59994 NULL
150563 +disable_so_desc_daddr_ath5k_hw_59995 desc_daddr ath5k_hw 0 59995 NULL
150564 +disable_so_n_pll_freq_tbl_60004 n pll_freq_tbl 0 60004 NULL
150565 +disable_so_ufshcd_parse_clock_info_fndecl_60006 ufshcd_parse_clock_info fndecl 0 60006 NULL
150566 +disable_so_max_timer_ms_bcm47xx_wdt_60015 max_timer_ms bcm47xx_wdt 0 60015 NULL
150567 +disable_so_add_monitor_signal_fndecl_60038 add_monitor_signal fndecl 4 60038 NULL
150568 +disable_so_check_matrix_bitmap_fndecl_60054 check_matrix_bitmap fndecl 0-2-3-4 60054 NULL
150569 +disable_so_bitmap_file_clear_bit_fndecl_60061 bitmap_file_clear_bit fndecl 2 60061 NULL nohasharray
150570 +disable_so_nvkm_ramht_hash_fndecl_60061 nvkm_ramht_hash fndecl 0-2-3 60061 &disable_so_bitmap_file_clear_bit_fndecl_60061
150571 +disable_so_radeon_ib_schedule_fndecl_60075 radeon_ib_schedule fndecl 0 60075 NULL
150572 +disable_so_sleep_cookie_addr_hi_host_cmd_ds_pcie_details_60083 sleep_cookie_addr_hi host_cmd_ds_pcie_details 0 60083 NULL
150573 +disable_so_crypto_cbc_decrypt_fndecl_60087 crypto_cbc_decrypt fndecl 0-4 60087 NULL
150574 +disable_so_calc_mode_timings_fndecl_60088 calc_mode_timings fndecl 1-2-3 60088 NULL
150575 +disable_so_jiffies_till_first_fqs_vardecl_tree_c_60090 jiffies_till_first_fqs vardecl_tree.c 0 60090 NULL
150576 +disable_so_reorder_timeout_l2tp_session_60091 reorder_timeout l2tp_session 0 60091 NULL
150577 +disable_so_ieee80211_get_noa_absent_time_fndecl_60093 ieee80211_get_noa_absent_time fndecl 0-2 60093 NULL
150578 +disable_so_vsync_offset_lo_oaktrail_timing_info_60096 vsync_offset_lo oaktrail_timing_info 0 60096 NULL
150579 +disable_so_daddr_flowidn_60098 daddr flowidn 0 60098 NULL
150580 +disable_so_mwifiex_set_mac_address_fndecl_60110 mwifiex_set_mac_address fndecl 0 60110 NULL
150581 +disable_so_xgbe_get_tstamp_time_fndecl_60114 xgbe_get_tstamp_time fndecl 0 60114 NULL
150582 +disable_so_end_seq_bictcp_60116 end_seq bictcp 0 60116 NULL
150583 +disable_so_rv770_calculate_fractional_mpll_feedback_divider_fndecl_60119 rv770_calculate_fractional_mpll_feedback_divider fndecl 1-2 60119 NULL nohasharray
150584 +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
150585 +disable_so_radeon_vm_bo_set_addr_fndecl_60122 radeon_vm_bo_set_addr fndecl 3-0 60122 NULL
150586 +disable_so_reload_jiffies_iwl_priv_60123 reload_jiffies iwl_priv 0 60123 NULL
150587 +disable_so_shdntimer_max17042_config_data_60124 shdntimer max17042_config_data 0 60124 NULL nohasharray
150588 +disable_so_timestamp_lec_arp_table_60124 timestamp lec_arp_table 0 60124 &disable_so_shdntimer_max17042_config_data_60124
150589 +disable_so_reg_duty_cycle_pm860x_backlight_data_60125 reg_duty_cycle pm860x_backlight_data 0 60125 NULL
150590 +disable_so_buff_phy_addr_amd8111e_tx_dr_60126 buff_phy_addr amd8111e_tx_dr 0 60126 NULL
150591 +disable_so_nilfs_btree_seek_key_fndecl_60131 nilfs_btree_seek_key fndecl 0-2 60131 NULL
150592 +disable_so_local_addr_mm_dma_desc_60141 local_addr mm_dma_desc 0 60141 NULL
150593 +disable_so_cmd_attr_tgid_fndecl_60158 cmd_attr_tgid fndecl 0 60158 NULL
150594 +disable_so_read_addr_qla8044_minidump_entry_queue_60166 read_addr qla8044_minidump_entry_queue 0 60166 NULL
150595 +disable_so_snd_soc_runtime_deactivate_fndecl_60170 snd_soc_runtime_deactivate fndecl 2 60170 NULL
150596 +disable_so_addr_lo_tg3_tx_buffer_desc_60173 addr_lo tg3_tx_buffer_desc 0 60173 NULL
150597 +disable_so_addr_c4iw_mm_entry_60182 addr c4iw_mm_entry 0 60182 NULL
150598 +disable_so_gid_index_ib_user_mad_hdr_60188 gid_index ib_user_mad_hdr 0 60188 NULL
150599 +disable_so_div_vnic_intr_coal_timer_info_60192 div vnic_intr_coal_timer_info 0 60192 NULL
150600 +disable_so_udf_bitmap_prealloc_blocks_fndecl_60195 udf_bitmap_prealloc_blocks fndecl 0-4-5 60195 NULL
150601 +disable_so_i_atime_nsec_ocfs2_dinode_60196 i_atime_nsec ocfs2_dinode 0 60196 NULL
150602 +disable_so_addr_buffer3_cmd_desc_type0_60201 addr_buffer3 cmd_desc_type0 0 60201 NULL
150603 +disable_so_mac_time_rtl8187b_rx_hdr_60213 mac_time rtl8187b_rx_hdr 0 60213 NULL
150604 +disable_so_regmap_read_fndecl_60217 regmap_read fndecl 0-2 60217 NULL
150605 +disable_so_oprofile_time_slice_vardecl_60220 oprofile_time_slice vardecl 0 60220 NULL
150606 +disable_so_monotonic_time_coarse_nsec_vsyscall_gtod_data_60224 monotonic_time_coarse_nsec vsyscall_gtod_data 0 60224 NULL
150607 +disable_so_toshiba_usb_sleep_music_get_fndecl_60227 toshiba_usb_sleep_music_get fndecl 0 60227 NULL
150608 +disable_so_msr_read_fndecl_60228 msr_read fndecl 0 60228 NULL
150609 +disable_so_via_set_primary_address_fndecl_60230 via_set_primary_address fndecl 1 60230 NULL
150610 +disable_so_hpfs_stop_cycles_fndecl_60236 hpfs_stop_cycles fndecl 2 60236 NULL
150611 +disable_so_cpumask_any_but_fndecl_60246 cpumask_any_but fndecl 0-2 60246 NULL
150612 +disable_so_hash_cnt_ccp_sha_req_ctx_60248 hash_cnt ccp_sha_req_ctx 0 60248 NULL
150613 +disable_so_atime_nsec_p9_iattr_dotl_60254 atime_nsec p9_iattr_dotl 0 60254 NULL
150614 +disable_so___ilog2_u32_fndecl_60257 __ilog2_u32 fndecl 0-1 60257 NULL
150615 +disable_so_it_clock_k_itimer_60276 it_clock k_itimer 0 60276 NULL
150616 +disable_so_stats_addr_vfpf_init_tlv_60282 stats_addr vfpf_init_tlv 0 60282 NULL
150617 +disable_so_zd1201_set_freq_fndecl_60293 zd1201_set_freq fndecl 0 60293 NULL
150618 +disable_so_freq_sc18is602_60297 freq sc18is602 0 60297 NULL
150619 +disable_so_imr_multiaddr_ip_mreq_source_60300 imr_multiaddr ip_mreq_source 0 60300 NULL
150620 +disable_so_skbaddr_ath5k_buf_60306 skbaddr ath5k_buf 0 60306 NULL
150621 +disable_so_bus_addr_sg_el_60307 bus_addr sg_el 0 60307 NULL
150622 +disable_so_iwl_add_beacon_time_fndecl_60324 iwl_add_beacon_time fndecl 0-4-3-2 60324 NULL
150623 +disable_so_regcache_lzo_sync_fndecl_60330 regcache_lzo_sync fndecl 0 60330 NULL
150624 +disable_so___mlx4_find_zone_by_uid_unique_fndecl_60331 __mlx4_find_zone_by_uid_unique fndecl 2 60331 NULL nohasharray
150625 +disable_so_ucma_query_addr_fndecl_60331 ucma_query_addr fndecl 3 60331 &disable_so___mlx4_find_zone_by_uid_unique_fndecl_60331
150626 +disable_so_nilfs_btree_commit_insert_fndecl_60335 nilfs_btree_commit_insert fndecl 4 60335 NULL
150627 +disable_so_rbtree_open_fndecl_60337 rbtree_open fndecl 0 60337 NULL
150628 +disable_so_addr_off_bfa_phy_s_60341 addr_off bfa_phy_s 0 60341 NULL
150629 +disable_so_rj54n1_set_clock_fndecl_60342 rj54n1_set_clock fndecl 0 60342 NULL nohasharray
150630 +disable_so___udelay_fndecl_60342 __udelay fndecl 1 60342 &disable_so_rj54n1_set_clock_fndecl_60342
150631 +disable_so_sysctl_llc2_p_timeout_vardecl_60348 sysctl_llc2_p_timeout vardecl 0 60348 NULL
150632 +disable_so_dwc3_ep0_set_address_fndecl_60355 dwc3_ep0_set_address fndecl 0 60355 NULL
150633 +disable_so_nla_put_msecs_fndecl_60358 nla_put_msecs fndecl 0 60358 NULL
150634 +disable_so_div_factor_fndecl_60362 div_factor fndecl 0-1 60362 NULL
150635 +disable_so_sense_busaddr_scb_60364 sense_busaddr scb 0 60364 NULL
150636 +disable_so_ufshcd_pltfrm_runtime_resume_fndecl_60367 ufshcd_pltfrm_runtime_resume fndecl 0 60367 NULL
150637 +disable_so_pixel_clock_vbe_crtc_ib_60373 pixel_clock vbe_crtc_ib 0 60373 NULL
150638 +disable_so_erst_timedout_fndecl_60378 erst_timedout fndecl 2 60378 NULL
150639 +disable_so_crypto_ecb_encrypt_fndecl_60388 crypto_ecb_encrypt fndecl 0-4 60388 NULL
150640 +disable_so_rtsx_resv_buf_addr_rtsx_pcr_60399 rtsx_resv_buf_addr rtsx_pcr 0 60399 NULL
150641 +disable_so_i2c_address_mc44s803_config_60409 i2c_address mc44s803_config 0 60409 NULL
150642 +disable_so_ath_hw_get_listen_time_fndecl_60410 ath_hw_get_listen_time fndecl 0 60410 NULL
150643 +disable_so_rpc_sockaddr2uaddr_fndecl_60418 rpc_sockaddr2uaddr fndecl 2 60418 NULL
150644 +disable_so_sys_setresgid16_fndecl_60419 sys_setresgid16 fndecl 0-1-2-3 60419 NULL
150645 +disable_so_mc_addr_inet_sock_60425 mc_addr inet_sock 0 60425 NULL
150646 +disable_so_txqueue_timer_velocity_opt_60430 txqueue_timer velocity_opt 0 60430 NULL
150647 +disable_so_set_mtrr_from_inactive_cpu_fndecl_60437 set_mtrr_from_inactive_cpu fndecl 2-3 60437 NULL
150648 +disable_so_i915_interrupt_info_fndecl_60441 i915_interrupt_info fndecl 0 60441 NULL
150649 +disable_so_bmiss_timeout_ath_beacon_config_60451 bmiss_timeout ath_beacon_config 0 60451 NULL
150650 +disable_so_callback_addr_req_60459 callback addr_req 1 60459 NULL
150651 +disable_so_vmx_compute_tsc_offset_fndecl_60461 vmx_compute_tsc_offset fndecl 0-2 60461 NULL
150652 +disable_so_ncpus_uv_rtc_timer_head_60462 ncpus uv_rtc_timer_head 0 60462 NULL
150653 +disable_so_passed_seqno_drm_vmw_fence_signaled_arg_60464 passed_seqno drm_vmw_fence_signaled_arg 0 60464 NULL
150654 +disable_so_send_signal_fndecl_60468 send_signal fndecl 0-1 60468 NULL
150655 +disable_so_isl1208_rtc_read_time_fndecl_60479 isl1208_rtc_read_time fndecl 0 60479 NULL
150656 +disable_so_cbs_dma_addr_nic_60500 cbs_dma_addr nic 0 60500 NULL
150657 +disable_so_mpihelp_divrem_fndecl_60501 mpihelp_divrem fndecl 6-0-4 60501 NULL
150658 +disable_so_branch_address_descriptor_60510 branch_address descriptor 0 60510 NULL
150659 +disable_so_hash_lock_index_stripe_head_60512 hash_lock_index stripe_head 0 60512 NULL
150660 +disable_so_brl_timeout_vardecl_keyboard_c_60524 brl_timeout vardecl_keyboard.c 0 60524 NULL
150661 +disable_so_chip_addr_dsp_image_seg_60530 chip_addr dsp_image_seg 0 60530 NULL
150662 +disable_so_test_hash_cycles_fndecl_60535 test_hash_cycles fndecl 4 60535 NULL
150663 +disable_so_dma_addr_srr_60537 dma_addr srr 0 60537 NULL
150664 +disable_so_spinfo_assoc_id_sctp_paddrinfo_60539 spinfo_assoc_id sctp_paddrinfo 0 60539 NULL
150665 +disable_so_nvkm_timer_wait_eq_fndecl_60542 nvkm_timer_wait_eq fndecl 3-4-5 60542 NULL
150666 +disable_so_eq_get_mtt_addr_fndecl_60544 eq_get_mtt_addr fndecl 0 60544 NULL
150667 +disable_so_cq_page_table_addr_lo_iscsi_kwqe_conn_offload1_60567 cq_page_table_addr_lo iscsi_kwqe_conn_offload1 0 60567 NULL
150668 +disable_so_tk_timeout_rpc_task_60572 tk_timeout rpc_task 0 60572 NULL
150669 +disable_so_cn_printf_fndecl_60575 cn_printf fndecl 0 60575 NULL nohasharray
150670 +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
150671 +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
150672 +disable_so___xfs_btree_split_fndecl_60576 __xfs_btree_split fndecl 0 60576 NULL
150673 +disable_so_lun_atto_csmi_get_dev_addr_60579 lun atto_csmi_get_dev_addr 0 60579 NULL
150674 +disable_so_xfs_btree_block_change_owner_fndecl_60599 xfs_btree_block_change_owner fndecl 0-3 60599 NULL
150675 +disable_so_k_wm8978_pll_div_60623 k wm8978_pll_div 0 60623 NULL
150676 +disable_so_saved_clock_vardecl_cr_pll_c_60624 saved_clock vardecl_cr_pll.c 0 60624 NULL
150677 +disable_so_mapaddr_tx_ring_info_60630 mapaddr tx_ring_info 0 60630 NULL nohasharray
150678 +disable_so_derot_freq_stb0899_internal_60630 derot_freq stb0899_internal 0 60630 &disable_so_mapaddr_tx_ring_info_60630
150679 +disable_so_edx_user_regs_struct32_60635 edx user_regs_struct32 0 60635 NULL
150680 +disable_so_cgtime_signal_struct_60641 cgtime signal_struct 0 60641 NULL
150681 +disable_so_ide_timing_compute_fndecl_60642 ide_timing_compute fndecl 2 60642 NULL
150682 +disable_so_btree_read_extent_buffer_pages_fndecl_60645 btree_read_extent_buffer_pages fndecl 0-4 60645 NULL
150683 +disable_so_sys_sched_getscheduler_fndecl_60650 sys_sched_getscheduler fndecl 1-0 60650 NULL
150684 +disable_so_hpi_compander_set_decay_time_constant_fndecl_60651 hpi_compander_set_decay_time_constant fndecl 1-0 60651 NULL
150685 +disable_so_uwb_rc_addr_get_fndecl_60653 uwb_rc_addr_get fndecl 0 60653 NULL
150686 +disable_so_max_chan_time_wsm_scan_ch_60669 max_chan_time wsm_scan_ch 0 60669 NULL
150687 +disable_so_ci_otg_fsm_del_timer_fndecl_60676 ci_otg_fsm_del_timer fndecl 2 60676 NULL
150688 +disable_so_clockdelay_nt_vardecl_hfcmulti_c_60678 clockdelay_nt vardecl_hfcmulti.c 0 60678 NULL
150689 +disable_so_hsync_off_lo_lvds_dvo_timing_60681 hsync_off_lo lvds_dvo_timing 0 60681 NULL
150690 +disable_so_leaf_head_hfs_btree_60686 leaf_head hfs_btree 0 60686 NULL
150691 +disable_so_signal_user32_60695 signal user32 0 60695 NULL
150692 +disable_so_timeout_netns_frags_60708 timeout netns_frags 0 60708 NULL
150693 +disable_so_time_to_send_netem_skb_cb_60711 time_to_send netem_skb_cb 0 60711 NULL nohasharray
150694 +disable_so_ref_div_atom_clock_dividers_60711 ref_div atom_clock_dividers 0 60711 &disable_so_time_to_send_netem_skb_cb_60711
150695 +disable_so_dev_sof_uvc_clock_sample_60716 dev_sof uvc_clock_sample 0 60716 NULL
150696 +disable_so_addr_reg_musb_qh_60718 addr_reg musb_qh 0 60718 NULL nohasharray
150697 +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
150698 +disable_so_reg_clock_sx150x_789_pri_60721 reg_clock sx150x_789_pri 0 60721 NULL
150699 +disable_so___parse_nl_addr_fndecl_60734 __parse_nl_addr fndecl 0 60734 NULL
150700 +disable_so_frequency_zl10036_state_60737 frequency zl10036_state 0 60737 NULL
150701 +disable_so_acpi_sleep_state_supported_fndecl_60743 acpi_sleep_state_supported fndecl 1 60743 NULL
150702 +disable_so_put_dec_full8_fndecl_60744 put_dec_full8 fndecl 2 60744 NULL
150703 +disable_so_atkbd_interrupt_fndecl_60746 atkbd_interrupt fndecl 2 60746 NULL
150704 +disable_so_signal_station_info_60755 signal station_info 0 60755 NULL
150705 +disable_so_r15_kvm_regs_60757 r15 kvm_regs 0 60757 NULL
150706 +disable_so_tx_dma_addr_sh_msiof_spi_priv_60773 tx_dma_addr sh_msiof_spi_priv 0 60773 NULL
150707 +disable_so_handler_acpi_object_addr_handler_60775 handler acpi_object_addr_handler 0-2-3 60775 NULL nohasharray
150708 +disable_so_sctp_bind_addr_init_fndecl_60775 sctp_bind_addr_init fndecl 2 60775 &disable_so_handler_acpi_object_addr_handler_60775
150709 +disable_so_hfsplus_calc_btree_clump_size_fndecl_60777 hfsplus_calc_btree_clump_size fndecl 0-1-2-3 60777 NULL
150710 +disable_so_xc2028_set_analog_freq_fndecl_60787 xc2028_set_analog_freq fndecl 0 60787 NULL
150711 +disable_so_reg_w_val_fndecl_60792 reg_w_val fndecl 2-3 60792 NULL
150712 +disable_so_mlx4_mtt_addr_fndecl_60804 mlx4_mtt_addr fndecl 0 60804 NULL
150713 +disable_so_kstrtos16_fndecl_60808 kstrtos16 fndecl 0 60808 NULL
150714 +disable_so_demod_address_bcm3510_config_60810 demod_address bcm3510_config 0 60810 NULL
150715 +disable_so_xt_addr_cmp_fndecl_60817 xt_addr_cmp fndecl 4 60817 NULL
150716 +disable_so_kstrtou16_fndecl_60828 kstrtou16 fndecl 0 60828 NULL
150717 +disable_so_crypto_cbc_decrypt_segment_fndecl_60829 crypto_cbc_decrypt_segment fndecl 0 60829 NULL
150718 +disable_so_cs_last_clocksource_60836 cs_last clocksource 0 60836 NULL
150719 +disable_so_decrypt_blkcipher_alg_60844 decrypt blkcipher_alg 4 60844 NULL
150720 +disable_so_demod_address_drxd_config_60850 demod_address drxd_config 0 60850 NULL
150721 +disable_so_rs_bound_addr_rds_sock_60851 rs_bound_addr rds_sock 0 60851 NULL
150722 +disable_so_pcxhr_sub_set_clock_fndecl_60853 pcxhr_sub_set_clock fndecl 2-0 60853 NULL nohasharray
150723 +disable_so_inet6_dump_ifmcaddr_fndecl_60853 inet6_dump_ifmcaddr fndecl 0 60853 &disable_so_pcxhr_sub_set_clock_fndecl_60853
150724 +disable_so_mpll_ref_div_rv6xx_power_info_60865 mpll_ref_div rv6xx_power_info 0 60865 NULL
150725 +disable_so_clk_mul_sdhci_host_60866 clk_mul sdhci_host 0 60866 NULL
150726 +disable_so_cryptd_hash_finup_enqueue_fndecl_60873 cryptd_hash_finup_enqueue fndecl 0 60873 NULL
150727 +disable_so_pc87360_autodiv_fndecl_60877 pc87360_autodiv fndecl 2 60877 NULL nohasharray
150728 +disable_so_si_get_gpu_clock_counter_fndecl_60877 si_get_gpu_clock_counter fndecl 0 60877 &disable_so_pc87360_autodiv_fndecl_60877
150729 +disable_so_dma_addr___vxge_hw_blockpool_entry_60895 dma_addr __vxge_hw_blockpool_entry 0 60895 NULL
150730 +disable_so_write32_ssb_bus_ops_60906 write32 ssb_bus_ops 3 60906 NULL
150731 +disable_so_bfa_fcs_lport_ns_process_gidft_pids_fndecl_60914 bfa_fcs_lport_ns_process_gidft_pids fndecl 3 60914 NULL
150732 +disable_so_hash_walk_next_fndecl_60955 hash_walk_next fndecl 0 60955 NULL
150733 +disable_so_tm_min_rtc_time_60965 tm_min rtc_time 0 60965 NULL
150734 +disable_so_m48t86_rtc_read_time_fndecl_60966 m48t86_rtc_read_time fndecl 0 60966 NULL
150735 +disable_so_alloc_gen8_temp_bitmaps_fndecl_60972 alloc_gen8_temp_bitmaps fndecl 0 60972 NULL
150736 +disable_so_max_dwell_time_delta_conf_sched_scan_settings_60976 max_dwell_time_delta conf_sched_scan_settings 0 60976 NULL
150737 +disable_so_src_addr_filter_ipv4_5tuple_60977 src_addr filter_ipv4_5tuple 0 60977 NULL nohasharray
150738 +disable_so_intel_freq_opcode_fndecl_60977 intel_freq_opcode fndecl 0-2 60977 &disable_so_src_addr_filter_ipv4_5tuple_60977
150739 +disable_so_btree_pages_cache_set_60979 btree_pages cache_set 0 60979 NULL
150740 +disable_so_pop_time_snd_soc_card_60984 pop_time snd_soc_card 0 60984 NULL
150741 +disable_so_v4l2_i2c_subdev_addr_fndecl_60994 v4l2_i2c_subdev_addr fndecl 0 60994 NULL
150742 +disable_so_find_and_set_predefined_video_timings_fndecl_61004 find_and_set_predefined_video_timings fndecl 2 61004 NULL
150743 +disable_so_bus_ipr_res_addr_61007 bus ipr_res_addr 0 61007 NULL
150744 +disable_so_t2timer_lapb_parms_struct_61011 t2timer lapb_parms_struct 0 61011 NULL nohasharray
150745 +disable_so_size_log2_t3_cq_61011 size_log2 t3_cq 0 61011 &disable_so_t2timer_lapb_parms_struct_61011
150746 +disable_so_virtual_apic_page_addr_vmcs12_61020 virtual_apic_page_addr vmcs12 0 61020 NULL
150747 +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
150748 +disable_so_first_time_batadv_tt_roam_node_61055 first_time batadv_tt_roam_node 0 61055 NULL
150749 +disable_so_blank_time_evergreen_wm_params_61058 blank_time evergreen_wm_params 0 61058 NULL
150750 +disable_so_crypto_hash_walk_done_fndecl_61061 crypto_hash_walk_done fndecl 0-2 61061 NULL
150751 +disable_so_qi_rtbtimelimit_xfs_quotainfo_61067 qi_rtbtimelimit xfs_quotainfo 0 61067 NULL
150752 +disable_so_dma_addr_freelQ_61069 dma_addr freelQ 0 61069 NULL
150753 +disable_so_gateway_value_addr_wil_fw_record_gateway_data_61071 gateway_value_addr wil_fw_record_gateway_data 0 61071 NULL
150754 +disable_so_ndisc_opt_addr_space_fndecl_61076 ndisc_opt_addr_space fndecl 0 61076 NULL nohasharray
150755 +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
150756 +disable_so_wl1251_translate_reg_addr_fndecl_61077 wl1251_translate_reg_addr fndecl 0-2 61077 NULL
150757 +disable_so_irq_set_handler_data_fndecl_61096 irq_set_handler_data fndecl 1 61096 NULL nohasharray
150758 +disable_so_be64_add_cpu_fndecl_61096 be64_add_cpu fndecl 2 61096 &disable_so_irq_set_handler_data_fndecl_61096
150759 +disable_so_find_first_extent_bit_state_fndecl_61098 find_first_extent_bit_state fndecl 2 61098 NULL
150760 +disable_so_confirm_addr_indev_fndecl_61106 confirm_addr_indev fndecl 0 61106 NULL
150761 +disable_so_ci_otg_init_timers_fndecl_61122 ci_otg_init_timers fndecl 0 61122 NULL
150762 +disable_so_rangehigh_v4l2_frequency_band_61125 rangehigh v4l2_frequency_band 0 61125 NULL
150763 +disable_so_rdb_PartitionList_RigidDiskBlock_61126 rdb_PartitionList RigidDiskBlock 0 61126 NULL
150764 +disable_so_qat_alg_ablkcipher_setkey_fndecl_61127 qat_alg_ablkcipher_setkey fndecl 3 61127 NULL
150765 +disable_so_ath6kl_cfg80211_deepsleep_suspend_fndecl_61128 ath6kl_cfg80211_deepsleep_suspend fndecl 0 61128 NULL
150766 +disable_so_phase_seg2_can_bittiming_61132 phase_seg2 can_bittiming 0 61132 NULL
150767 +disable_so_mii_address_fndecl_61157 mii_address fndecl 1-2 61157 NULL
150768 +disable_so_dent_key_init_hash_fndecl_61159 dent_key_init_hash fndecl 3-4 61159 NULL
150769 +disable_so__drbd_send_uuids_fndecl_61164 _drbd_send_uuids fndecl 0 61164 NULL
150770 +disable_so_addr_gf100_gr_mmio_61167 addr gf100_gr_mmio 0 61167 NULL
150771 +disable_so_xfrm_dst_hash_fndecl_61174 xfrm_dst_hash fndecl 0-4-5 61174 NULL
150772 +disable_so_i2c_smbus_read_i2c_block_data_fndecl_61176 i2c_smbus_read_i2c_block_data fndecl 0-2-3 61176 NULL
150773 +disable_so_mthca_HW2SW_SRQ_fndecl_61199 mthca_HW2SW_SRQ fndecl 0-3 61199 NULL
150774 +disable_so_bit_fields_len_ocrdma_srq_61200 bit_fields_len ocrdma_srq 0 61200 NULL
150775 +disable_so_cpuidle_add_device_sysfs_fndecl_61204 cpuidle_add_device_sysfs fndecl 0 61204 NULL
150776 +disable_so_avail_snd_rawmidi_runtime_61205 avail snd_rawmidi_runtime 0 61205 NULL
150777 +disable_so_fib_info_hashfn_fndecl_61213 fib_info_hashfn fndecl 0 61213 NULL
150778 +disable_so_zd_usb_iowrite16v_async_end_fndecl_61215 zd_usb_iowrite16v_async_end fndecl 0 61215 NULL nohasharray
150779 +disable_so_shash_ahash_mcryptd_update_fndecl_61215 shash_ahash_mcryptd_update fndecl 0 61215 &disable_so_zd_usb_iowrite16v_async_end_fndecl_61215
150780 +disable_so_buf_addr_mlx4_ib_create_srq_61216 buf_addr mlx4_ib_create_srq 0 61216 NULL
150781 +disable_so_post_divider_panel_info_61220 post_divider panel_info 0 61220 NULL
150782 +disable_so_wrmsr_safe_regs_fndecl_61235 wrmsr_safe_regs fndecl 0 61235 NULL
150783 +disable_so_get_stats_jiffies_smsdvb_client_t_61240 get_stats_jiffies smsdvb_client_t 0 61240 NULL
150784 +disable_so_ebitmap_next_positive_fndecl_61248 ebitmap_next_positive fndecl 0-3 61248 NULL
150785 +disable_so_ieee80211_aes_gcm_decrypt_fndecl_61254 ieee80211_aes_gcm_decrypt fndecl 0-5 61254 NULL
150786 +disable_so_sprintf_string_fndecl_61260 sprintf_string fndecl 0 61260 NULL nohasharray
150787 +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
150788 +disable_so_be32_to_cpu_array_fndecl_61277 be32_to_cpu_array fndecl 3 61277 NULL
150789 +disable_so_ds_tss_segment_16_61290 ds tss_segment_16 0 61290 NULL
150790 +disable_so_start_delay_ns_cc10001_adc_device_61303 start_delay_ns cc10001_adc_device 0 61303 NULL
150791 +disable_so_data_addr_nvbios_pmuR_61307 data_addr nvbios_pmuR 0 61307 NULL
150792 +disable_so_time_stamp_il_traffic_load_61308 time_stamp il_traffic_load 0 61308 NULL nohasharray
150793 +disable_so_crypto_ccm_encrypt_done_fndecl_61308 crypto_ccm_encrypt_done fndecl 2 61308 &disable_so_time_stamp_il_traffic_load_61308
150794 +disable_so_max_pixclock_tdfx_par_61310 max_pixclock tdfx_par 0 61310 NULL
150795 +disable_so_nilfs_btree_node_get_key_fndecl_61317 nilfs_btree_node_get_key fndecl 0-2 61317 NULL
150796 +disable_so_sk_forced_wmem_schedule_fndecl_61322 sk_forced_wmem_schedule fndecl 2 61322 NULL
150797 +disable_so_rxhash_tun_flow_entry_61325 rxhash tun_flow_entry 0 61325 NULL
150798 +disable_so___spin_time_accum_fndecl_61328 __spin_time_accum fndecl 1 61328 NULL
150799 +disable_so_iscsi_nacl_attrib_store_nopin_timeout_fndecl_61329 iscsi_nacl_attrib_store_nopin_timeout fndecl 0-3 61329 NULL
150800 +disable_so_dqb_itime_v1_disk_dqblk_61340 dqb_itime v1_disk_dqblk 0 61340 NULL nohasharray
150801 +disable_so_rds_iw_laddr_check_fndecl_61340 rds_iw_laddr_check fndecl 0-1 61340 &disable_so_dqb_itime_v1_disk_dqblk_61340
150802 +disable_so_pcibios_retrieve_fw_addr_fndecl_61341 pcibios_retrieve_fw_addr fndecl 0-2 61341 NULL
150803 +disable_so_iwl_scan_cancel_timeout_fndecl_61342 iwl_scan_cancel_timeout fndecl 2 61342 NULL
150804 +disable_so_m41t80_sysfs_set_sqwfreq_fndecl_61345 m41t80_sysfs_set_sqwfreq fndecl 0-4 61345 NULL
150805 +disable_so_atl1_hash_mc_addr_fndecl_61348 atl1_hash_mc_addr fndecl 0 61348 NULL
150806 +disable_so_daddr_irda_device_info_61349 daddr irda_device_info 0 61349 NULL
150807 +disable_so_read_addr_qla82xx_md_entry_rdmem_61354 read_addr qla82xx_md_entry_rdmem 0 61354 NULL
150808 +disable_so_wm8990_set_dai_clkdiv_fndecl_61357 wm8990_set_dai_clkdiv fndecl 3 61357 NULL
150809 +disable_so_btrfs_delete_delayed_dir_index_fndecl_61358 btrfs_delete_delayed_dir_index fndecl 0-4 61358 NULL
150810 +disable_so_disable_irq_fndecl_61372 disable_irq fndecl 1 61372 NULL
150811 +disable_so_parport_ieee1284_epp_read_addr_fndecl_61382 parport_ieee1284_epp_read_addr fndecl 0 61382 NULL nohasharray
150812 +disable_so_num_to_str_fndecl_61382 num_to_str fndecl 0-3-2 61382 &disable_so_parport_ieee1284_epp_read_addr_fndecl_61382
150813 +disable_so_period_timeriomem_rng_data_61395 period timeriomem_rng_data 0 61395 NULL
150814 +disable_so_crypto_gcm_setkey_done_fndecl_61396 crypto_gcm_setkey_done fndecl 2 61396 NULL
150815 +disable_so_ocfs2_journal_addressable_fndecl_61399 ocfs2_journal_addressable fndecl 0 61399 NULL
150816 +disable_so_smsdvb_read_signal_strength_fndecl_61408 smsdvb_read_signal_strength fndecl 0 61408 NULL
150817 +disable_so_flash_busaddr_ips_ha_61415 flash_busaddr ips_ha 0 61415 NULL
150818 +disable_so_enable_time_us_tps_info_61417 enable_time_us tps_info 0 61417 NULL
150819 +disable_so_mtrr_chunk_size_vardecl_cleanup_c_61418 mtrr_chunk_size vardecl_cleanup.c 0 61418 NULL
150820 +disable_so_show_dock_uid_fndecl_61419 show_dock_uid fndecl 0 61419 NULL
150821 +disable_so_get_pageblock_bitmap_fndecl_61435 get_pageblock_bitmap fndecl 2 61435 NULL
150822 +disable_so_s5p_jpeg_runtime_resume_fndecl_61449 s5p_jpeg_runtime_resume fndecl 0 61449 NULL nohasharray
150823 +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
150824 +disable_so_rsp_dmaaddr_fw_fcoe_els_ct_wr_61457 rsp_dmaaddr fw_fcoe_els_ct_wr 0 61457 NULL
150825 +disable_so_pcsp_timer_update_fndecl_61473 pcsp_timer_update fndecl 0 61473 NULL
150826 +disable_so_i8042_start_time_vardecl_i8042_h_61479 i8042_start_time vardecl_i8042.h 0 61479 NULL nohasharray
150827 +disable_so_insert_into_bitmap_fndecl_61479 insert_into_bitmap fndecl 0 61479 &disable_so_i8042_start_time_vardecl_i8042_h_61479
150828 +disable_so_xclkmaxrasdelay_pll_ct_61489 xclkmaxrasdelay pll_ct 0 61489 NULL
150829 +disable_so_ioa_cb_bus_addr_pmcraid_cmd_61490 ioa_cb_bus_addr pmcraid_cmd 0 61490 NULL
150830 +disable_so_sis_ata16_program_timings_fndecl_61491 sis_ata16_program_timings fndecl 2 61491 NULL
150831 +disable_so_read_addr_stride___queue_61493 read_addr_stride __queue 0 61493 NULL
150832 +disable_so_w1_timeout_vardecl_w1_c_61497 w1_timeout vardecl_w1.c 0 61497 NULL nohasharray
150833 +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
150834 +disable_so_split_timeout_lo_fw_card_61499 split_timeout_lo fw_card 0 61499 NULL
150835 +disable_so_nla_find_fndecl_61508 nla_find fndecl 2 61508 NULL
150836 +disable_so_timer_period_frag_pcxhr_stream_61512 timer_period_frag pcxhr_stream 0 61512 NULL
150837 +disable_so_addr_hi_tg3_rx_buffer_desc_61522 addr_hi tg3_rx_buffer_desc 0 61522 NULL
150838 +disable_so_i_uid_ext3_inode_61529 i_uid ext3_inode 0 61529 NULL nohasharray
150839 +disable_so_r30_val_fc2580_freq_regs_61529 r30_val fc2580_freq_regs 0 61529 &disable_so_i_uid_ext3_inode_61529
150840 +disable_so_i_delayed_blks_xfs_inode_61540 i_delayed_blks xfs_inode 0 61540 NULL nohasharray
150841 +disable_so_aes_set_key_fndecl_61540 aes_set_key fndecl 0-3 61540 &disable_so_i_delayed_blks_xfs_inode_61540
150842 +disable_so_loc_addr_nes_cm_listener_61541 loc_addr nes_cm_listener 0 61541 NULL
150843 +disable_so_addr_w6692_hw_61546 addr w6692_hw 0 61546 NULL
150844 +disable_so_mvs_write_port_vsr_addr_fndecl_61549 mvs_write_port_vsr_addr fndecl 3 61549 NULL
150845 +disable_so_s_addr_per_block_bits_ext3_sb_info_61550 s_addr_per_block_bits ext3_sb_info 0 61550 NULL
150846 +disable_so_o2net_set_nodelay_fndecl_61551 o2net_set_nodelay fndecl 0 61551 NULL
150847 +disable_so_mlx5_ib_query_gid_fndecl_61553 mlx5_ib_query_gid fndecl 2-3 61553 NULL
150848 +disable_so_pdl_paddr_hp100_ring_61561 pdl_paddr hp100_ring 0 61561 NULL
150849 +disable_so_pci_bus_read_dev_vendor_id_fndecl_61562 pci_bus_read_dev_vendor_id fndecl 2 61562 NULL
150850 +disable_so_fs16_to_cpu_fndecl_61568 fs16_to_cpu fndecl 0-2 61568 NULL
150851 +disable_so_prandom_u32_state_fndecl_61582 prandom_u32_state fndecl 0 61582 NULL
150852 +disable_so_high_bits_word_at_a_time_61595 high_bits word_at_a_time 0 61595 NULL
150853 +disable_so_broadsheet_spiflash_op_on_address_fndecl_61596 broadsheet_spiflash_op_on_address fndecl 0-2-3 61596 NULL
150854 +disable_so_device_create_fndecl_61600 device_create fndecl 3 61600 NULL
150855 +disable_so_mce_wrmsrl_fndecl_61602 mce_wrmsrl fndecl 2 61602 NULL
150856 +disable_so_jiffies_to_msecs_fndecl_61603 jiffies_to_msecs fndecl 0-1 61603 NULL
150857 +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
150858 +disable_so_remote_cm_response_timeout_ib_cm_req_param_61617 remote_cm_response_timeout ib_cm_req_param 0 61617 NULL
150859 +disable_so_i_ctime_ocfs2_dinode_61629 i_ctime ocfs2_dinode 0 61629 NULL
150860 +disable_so_uac_clock_selector_set_val_fndecl_61640 uac_clock_selector_set_val fndecl 2-0 61640 NULL
150861 +disable_so_throtl_schedule_pending_timer_fndecl_61645 throtl_schedule_pending_timer fndecl 2 61645 NULL
150862 +disable_so_t_nsec_xfs_ictimestamp_61648 t_nsec xfs_ictimestamp 0 61648 NULL
150863 +disable_so_hashbits_rpc_cred_cache_61651 hashbits rpc_cred_cache 0 61651 NULL
150864 +disable_so_iscsi_nacl_attrib_show_nopin_response_timeout_fndecl_61655 iscsi_nacl_attrib_show_nopin_response_timeout fndecl 0 61655 NULL
150865 +disable_so_address_SG64ENTRY_61656 address SG64ENTRY 0 61656 NULL
150866 +disable_so_cputime_advance_fndecl_61661 cputime_advance fndecl 2 61661 NULL
150867 +disable_so_ts_delay_pressure_vardecl_ucb1400_ts_c_61663 ts_delay_pressure vardecl_ucb1400_ts.c 0 61663 NULL
150868 +disable_so_mapaddr_skge_element_61673 mapaddr skge_element 0 61673 NULL
150869 +disable_so_resetcal_timer_ath_ani_61692 resetcal_timer ath_ani 0 61692 NULL
150870 +disable_so_btrfs_check_uuid_tree_entry_fndecl_61694 btrfs_check_uuid_tree_entry fndecl 4 61694 NULL
150871 +disable_so_tuner_addr_tm6000_core_61695 tuner_addr tm6000_core 0 61695 NULL
150872 +disable_so_last_msgtime_vardecl_ide_io_c_61702 last_msgtime vardecl_ide-io.c 0 61702 NULL
150873 +disable_so_hpi_sample_clock_get_auto_fndecl_61704 hpi_sample_clock_get_auto fndecl 1-0 61704 NULL
150874 +disable_so_ext4_find_delayed_extent_fndecl_61709 ext4_find_delayed_extent fndecl 0 61709 NULL
150875 +disable_so_freq_offset_khz_uhf_dib0090_config_61716 freq_offset_khz_uhf dib0090_config 0 61716 NULL
150876 +disable_so_sha1_generic_block_fn_fndecl_61724 sha1_generic_block_fn fndecl 3 61724 NULL
150877 +disable_so_xc4000_get_signal_fndecl_61727 xc4000_get_signal fndecl 0 61727 NULL
150878 +disable_so_vf_addr_hi_bnx2x_vf_mbx_61734 vf_addr_hi bnx2x_vf_mbx 0 61734 NULL nohasharray
150879 +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
150880 +disable_so_pcxhr_update_timer_pos_fndecl_61736 pcxhr_update_timer_pos fndecl 3 61736 NULL nohasharray
150881 +disable_so_adis16480_set_filter_freq_fndecl_61736 adis16480_set_filter_freq fndecl 0 61736 &disable_so_pcxhr_update_timer_pos_fndecl_61736 nohasharray
150882 +disable_so_xfs_daddr_to_agbno_fndecl_61736 xfs_daddr_to_agbno fndecl 0-2 61736 &disable_so_adis16480_set_filter_freq_fndecl_61736
150883 +disable_so_stb0899_calc_derot_time_fndecl_61753 stb0899_calc_derot_time fndecl 0-1 61753 NULL nohasharray
150884 +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
150885 +disable_so_ssb_calc_clock_rate_fndecl_61754 ssb_calc_clock_rate fndecl 0-3-2 61754 NULL nohasharray
150886 +disable_so_seq_amdgpu_fence_61754 seq amdgpu_fence 0 61754 &disable_so_ssb_calc_clock_rate_fndecl_61754
150887 +disable_so_disable_irq_nosync_fndecl_61758 disable_irq_nosync fndecl 1 61758 NULL
150888 +disable_so_nft_dump_register_fndecl_61766 nft_dump_register fndecl 0 61766 NULL
150889 +disable_so_file_remove_suid_fndecl_61769 file_remove_suid fndecl 0 61769 NULL
150890 +disable_so_ltr501_als_write_samp_freq_fndecl_61771 ltr501_als_write_samp_freq fndecl 0 61771 NULL
150891 +disable_so_pixclock_my_timming_61772 pixclock my_timming 0 61772 NULL
150892 +disable_so_rtl818x_iowrite8_fndecl_61778 rtl818x_iowrite8 fndecl 3 61778 NULL
150893 +disable_so_bql_show_hold_time_fndecl_61783 bql_show_hold_time fndecl 0 61783 NULL
150894 +disable_so_db_addr_mlx4_ib_create_srq_61795 db_addr mlx4_ib_create_srq 0 61795 NULL
150895 +disable_so_lgdt3306a_sleep_fndecl_61796 lgdt3306a_sleep fndecl 0 61796 NULL
150896 +disable_so_cpuid_nent_kvm_vcpu_arch_61798 cpuid_nent kvm_vcpu_arch 0 61798 NULL
150897 +disable_so_addr_hdac_device_61804 addr hdac_device 0 61804 NULL
150898 +disable_so_center_freq_stb0899_internal_61821 center_freq stb0899_internal 0 61821 NULL
150899 +disable_so_addr_cqicb_61823 addr cqicb 0 61823 NULL
150900 +disable_so_oprofile_hrtimer_setup_fndecl_61824 oprofile_hrtimer_setup fndecl 0 61824 NULL
150901 +disable_so_tvaudio_addr_em28xx_board_61828 tvaudio_addr em28xx_board 0 61828 NULL
150902 +disable_so__ocrdma_pd_mgr_get_bitmap_fndecl_61833 _ocrdma_pd_mgr_get_bitmap fndecl 0 61833 NULL
150903 +disable_so_rd08_nvkm_ofuncs_61836 rd08 nvkm_ofuncs 0-2 61836 NULL
150904 +disable_so_clipped_freq_cpufreq_cooling_device_61837 clipped_freq cpufreq_cooling_device 0 61837 NULL
150905 +disable_so_config_addend_stmmac_hwtimestamp_61840 config_addend stmmac_hwtimestamp 2 61840 NULL
150906 +disable_so_crypto_authenc_givencrypt_fndecl_61841 crypto_authenc_givencrypt fndecl 0 61841 NULL
150907 +disable_so_freq_table_get_index_fndecl_61842 freq_table_get_index fndecl 2 61842 NULL
150908 +disable_so_qla2x00_issue_iocb_timeout_fndecl_61848 qla2x00_issue_iocb_timeout fndecl 0-3-5 61848 NULL
150909 +disable_so_afs_vlocation_timeout_vardecl_vlocation_c_61850 afs_vlocation_timeout vardecl_vlocation.c 0 61850 NULL
150910 +disable_so_dev_addr__drm_via_descriptor_61860 dev_addr _drm_via_descriptor 0 61860 NULL
150911 +disable_so_inet_confirm_addr_fndecl_61869 inet_confirm_addr fndecl 0 61869 NULL nohasharray
150912 +enable_so__eip_x86_emulate_ctxt_61869 _eip x86_emulate_ctxt 0 61869 &disable_so_inet_confirm_addr_fndecl_61869
150913 +disable_so_ethtool_get_perm_addr_fndecl_61870 ethtool_get_perm_addr fndecl 0 61870 NULL
150914 +disable_so_sctp_ulpevent_make_peer_addr_change_fndecl_61876 sctp_ulpevent_make_peer_addr_change fndecl 6 61876 NULL nohasharray
150915 +disable_so_calc_lanman_hash_fndecl_61876 calc_lanman_hash fndecl 0 61876 &disable_so_sctp_ulpevent_make_peer_addr_change_fndecl_61876
150916 +disable_so_init_blkcipher_desc_fndecl_61877 init_blkcipher_desc fndecl 0-3-5 61877 NULL
150917 +disable_so_address_acpi_pci_routing_table_61886 address acpi_pci_routing_table 0 61886 NULL
150918 +disable_so_tx_tone_freq_b43_phy_lp_61888 tx_tone_freq b43_phy_lp 0 61888 NULL
150919 +disable_so___ip6addrlbl_match_fndecl_61894 __ip6addrlbl_match fndecl 4-5 61894 NULL
150920 +disable_so_irq_domain_free_irqs_top_fndecl_61898 irq_domain_free_irqs_top fndecl 2-3 61898 NULL
150921 +disable_so_freq_tm6000_core_61902 freq tm6000_core 0 61902 NULL
150922 +disable_so_addr_lo_ocrdma_sge_61909 addr_lo ocrdma_sge 0 61909 NULL
150923 +disable_so_ctlr_ka_time_fcoe_ctlr_61922 ctlr_ka_time fcoe_ctlr 0 61922 NULL
150924 +disable_so_mcryptd_hash_final_enqueue_fndecl_61941 mcryptd_hash_final_enqueue fndecl 0 61941 NULL
150925 +disable_so_dn_match_addr_fndecl_61944 dn_match_addr fndecl 1 61944 NULL
150926 +disable_so_mac_time_b43legacy_rxhdr_fw3_61952 mac_time b43legacy_rxhdr_fw3 0 61952 NULL nohasharray
150927 +disable_so_force_static_address_write_fndecl_61952 force_static_address_write fndecl 3 61952 &disable_so_mac_time_b43legacy_rxhdr_fw3_61952
150928 +disable_so_delay_adp5588_kpad_61963 delay adp5588_kpad 0 61963 NULL
150929 +disable_so_cg_time_ufs_cylinder_group_61969 cg_time ufs_cylinder_group 0 61969 NULL
150930 +disable_so_pll_freq_ene_device_61971 pll_freq ene_device 0 61971 NULL
150931 +disable_so_iscsit_na_random_datain_seq_offsets_fndecl_61975 iscsit_na_random_datain_seq_offsets fndecl 0 61975 NULL
150932 +disable_so_addr_dme1737_data_61978 addr dme1737_data 0 61978 NULL
150933 +disable_so_crypto_probing_notify_fndecl_61991 crypto_probing_notify fndecl 0-1 61991 NULL
150934 +disable_so_offset_fw_address_handler_61992 offset fw_address_handler 0 61992 NULL
150935 +disable_so_vsel_addr_palmas_regs_info_61997 vsel_addr palmas_regs_info 0 61997 NULL
150936 +disable_so_last_time_ecne_reduced_sctp_transport_61998 last_time_ecne_reduced sctp_transport 0 61998 NULL
150937 +disable_so_units_sprintf_fndecl_62002 units_sprintf fndecl 0 62002 NULL
150938 +disable_so_gpu_addr_radeon_uvd_62004 gpu_addr radeon_uvd 0 62004 NULL
150939 +disable_so_adc_freq_stmpe_touch_62006 adc_freq stmpe_touch 0 62006 NULL
150940 +disable_so_dosr_aic31xx_rate_divs_62015 dosr aic31xx_rate_divs 0 62015 NULL
150941 +disable_so_tsc_khz_vardecl_62031 tsc_khz vardecl 0 62031 NULL
150942 +disable_so_accounting_timestamp_dev_pm_info_62040 accounting_timestamp dev_pm_info 0 62040 NULL nohasharray
150943 +disable_so_sensor_addr_mcam_camera_62040 sensor_addr mcam_camera 0 62040 &disable_so_accounting_timestamp_dev_pm_info_62040
150944 +disable_so___sw_hweight16_fndecl_62046 __sw_hweight16 fndecl 1-0 62046 NULL
150945 +disable_so_st_atime_stat_62052 st_atime stat 0 62052 NULL nohasharray
150946 +disable_so_dsi_pll_div_dsi_mnp_62052 dsi_pll_div dsi_mnp 0 62052 &disable_so_st_atime_stat_62052
150947 +disable_so_ath5k_hw_write_ofdm_timings_fndecl_62063 ath5k_hw_write_ofdm_timings fndecl 0 62063 NULL
150948 +disable_so_addr_dn_neigh_62067 addr dn_neigh 0 62067 NULL
150949 +disable_so_small_buf_q_alloc_phy_addr_ql3_adapter_62071 small_buf_q_alloc_phy_addr ql3_adapter 0 62071 NULL
150950 +disable_so_in6_dump_addrs_fndecl_62073 in6_dump_addrs fndecl 0 62073 NULL nohasharray
150951 +disable_so_toggle_hw_mce_inject_fndecl_62073 toggle_hw_mce_inject fndecl 0-1 62073 &disable_so_in6_dump_addrs_fndecl_62073
150952 +disable_so_addr_mthca_data_seg_62083 addr mthca_data_seg 0 62083 NULL
150953 +disable_so_err_interrupt_orion_mdio_dev_62099 err_interrupt orion_mdio_dev 0 62099 NULL
150954 +disable_so_callback_snd_timer_instance_62100 callback snd_timer_instance 2-3 62100 NULL
150955 +disable_so_acc_jiffies_ati_remote_62109 acc_jiffies ati_remote 0 62109 NULL
150956 +disable_so_regcache_rbtree_drop_fndecl_62111 regcache_rbtree_drop fndecl 2-3 62111 NULL
150957 +disable_so_post_div_radeon_pll_62120 post_div radeon_pll 0 62120 NULL
150958 +disable_so_local_addr_rds_atomic_args_62123 local_addr rds_atomic_args 0 62123 NULL
150959 +disable_so_rds_tcp_laddr_check_fndecl_62131 rds_tcp_laddr_check fndecl 1 62131 NULL
150960 +disable_so_sock_get_timestampns_fndecl_62145 sock_get_timestampns fndecl 0 62145 NULL
150961 +disable_so_beacon_time_stamp_il_rx_phy_res_62147 beacon_time_stamp il_rx_phy_res 0 62147 NULL
150962 +disable_so_panel_power_up_delay_cdv_intel_dp_62150 panel_power_up_delay cdv_intel_dp 0 62150 NULL
150963 +disable_so_dma_addr_solo_p2m_desc_62151 dma_addr solo_p2m_desc 0 62151 NULL
150964 +disable_so_hangcheck_tick_vardecl_hangcheck_timer_c_62154 hangcheck_tick vardecl_hangcheck-timer.c 0 62154 NULL nohasharray
150965 +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
150966 +disable_so_xhci_call_host_update_timeout_for_endpoint_fndecl_62155 xhci_call_host_update_timeout_for_endpoint fndecl 0 62155 NULL
150967 +disable_so_read_block_bitmap_fndecl_62158 read_block_bitmap fndecl 2 62158 NULL
150968 +disable_so_ceph_aes_decrypt_fndecl_62159 ceph_aes_decrypt fndecl 2-6 62159 NULL
150969 +disable_so_mpll_func_cntl_2_si_clock_registers_62165 mpll_func_cntl_2 si_clock_registers 0 62165 NULL
150970 +disable_so_s01_img_ir_timing_regvals_62168 s01 img_ir_timing_regvals 0 62168 NULL
150971 +disable_so_xmit_hashtype_vardecl_bond_main_c_62175 xmit_hashtype vardecl_bond_main.c 0 62175 NULL
150972 +disable_so_seconds_v4l2_timecode_62177 seconds v4l2_timecode 0 62177 NULL
150973 +disable_so_dma_addr_t3_wq_62178 dma_addr t3_wq 0 62178 NULL
150974 +disable_so_cryptd_hash_export_fndecl_62185 cryptd_hash_export fndecl 0 62185 NULL
150975 +disable_so_get_qam_signal_to_noise_fndecl_62191 get_qam_signal_to_noise fndecl 0 62191 NULL
150976 +disable_so_dp_daddr_rds_ib_connect_private_62196 dp_daddr rds_ib_connect_private 0 62196 NULL
150977 +disable_so_max77693_muic_set_debounce_time_fndecl_62200 max77693_muic_set_debounce_time fndecl 0-2 62200 NULL
150978 +disable_so_bch_time_stats_update_fndecl_62214 bch_time_stats_update fndecl 2 62214 NULL
150979 +disable_so_t4_set_addr_hash_fndecl_62216 t4_set_addr_hash fndecl 0-2-3 62216 NULL
150980 +disable_so_proc_disconnectsignal_compat_fndecl_62217 proc_disconnectsignal_compat fndecl 0 62217 NULL
150981 +disable_so_rtsx_pci_switch_clock_fndecl_62219 rtsx_pci_switch_clock fndecl 2-0 62219 NULL
150982 +disable_so_addr_chip_data_62229 addr chip_data 0 62229 NULL
150983 +disable_so_timer_abs_periods_pcxhr_stream_62230 timer_abs_periods pcxhr_stream 0 62230 NULL
150984 +disable_so_tty_ldisc_lock_pair_timeout_fndecl_62232 tty_ldisc_lock_pair_timeout fndecl 3 62232 NULL
150985 +disable_so_fd_pppol2tpv3in6_addr_62243 fd pppol2tpv3in6_addr 0 62243 NULL
150986 +disable_so_hrtimer_start_range_ns_fndecl_62253 hrtimer_start_range_ns fndecl 3 62253 NULL
150987 +disable_so_r9_kvm_regs_62259 r9 kvm_regs 0 62259 NULL
150988 +disable_so_supported_addrs_sctp_pf_62261 supported_addrs sctp_pf 0 62261 NULL
150989 +disable_so_xfs_bmapi_delay_fndecl_62277 xfs_bmapi_delay fndecl 0-2-3 62277 NULL
150990 +disable_so_tseg2_pucan_timing_slow_62290 tseg2 pucan_timing_slow 0 62290 NULL
150991 +disable_so_mtime_ncp_cache_head_62294 mtime ncp_cache_head 0 62294 NULL
150992 +disable_so_get_ramp_delay_fndecl_62302 get_ramp_delay fndecl 0 62302 NULL
150993 +disable_so_decrypt_crypto_aead_62305 decrypt crypto_aead 0 62305 NULL
150994 +disable_so_paddr_mmd_fw_ldst_mdio_62306 paddr_mmd fw_ldst_mdio 0 62306 NULL
150995 +disable_so_start_address___osdv1_cdb_addr_len_62309 start_address __osdv1_cdb_addr_len 0 62309 NULL
150996 +disable_so_freq_as10x_tune_args_62312 freq as10x_tune_args 0 62312 NULL
150997 +disable_so_timestamp_low_rtl_stats_62314 timestamp_low rtl_stats 0 62314 NULL
150998 +disable_so_uid_fuse_in_header_62319 uid fuse_in_header 0 62319 NULL
150999 +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
151000 +disable_so_argidx_mc_buffer_62320 argidx mc_buffer 0 62320 &disable_so_bfa_fcs_rport_del_timeout_vardecl_bfa_fcs_rport_c_62320
151001 +disable_so_ci_recover_timer_dlm_config_info_62321 ci_recover_timer dlm_config_info 0 62321 NULL nohasharray
151002 +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
151003 +disable_so_ci_get_ddr3_mclk_frequency_ratio_fndecl_62335 ci_get_ddr3_mclk_frequency_ratio fndecl 0-1 62335 NULL
151004 +disable_so_addr_flags_ec_params_i2c_passthru_msg_62337 addr_flags ec_params_i2c_passthru_msg 0 62337 NULL
151005 +disable_so_mISDN_clock_get_fndecl_62339 mISDN_clock_get fndecl 0 62339 NULL nohasharray
151006 +disable_so_beacon_paddr_ath10k_vif_62339 beacon_paddr ath10k_vif 0 62339 &disable_so_mISDN_clock_get_fndecl_62339 nohasharray
151007 +disable_so_tda10023_writereg_fndecl_62339 tda10023_writereg fndecl 3 62339 &disable_so_beacon_paddr_ath10k_vif_62339
151008 +disable_so___iowrite32_copy_fndecl_62342 __iowrite32_copy fndecl 3 62342 NULL
151009 +disable_so_bit_offset_acpi_pct_register_62348 bit_offset acpi_pct_register 0 62348 NULL
151010 +disable_so_ccp_aes_encrypt_fndecl_62350 ccp_aes_encrypt fndecl 0 62350 NULL
151011 +disable_so_crypto_cbc_module_init_fndecl_62352 crypto_cbc_module_init fndecl 0 62352 NULL
151012 +disable_so_decode_attr_time_fndecl_62359 decode_attr_time fndecl 0 62359 NULL
151013 +disable_so_btrfs_set_dev_replace_time_stopped_fndecl_62364 btrfs_set_dev_replace_time_stopped fndecl 3 62364 NULL
151014 +disable_so_i2c_addr_stv0900_internal_62365 i2c_addr stv0900_internal 0 62365 NULL
151015 +disable_so_sys_setfsgid16_fndecl_62369 sys_setfsgid16 fndecl 0-1 62369 NULL
151016 +disable_so__zd_iowrite32v_locked_fndecl_62374 _zd_iowrite32v_locked fndecl 3-0 62374 NULL nohasharray
151017 +disable_so_C_SYSC_semtimedop_fndecl_62374 C_SYSC_semtimedop fndecl 0-1-3 62374 &disable_so__zd_iowrite32v_locked_fndecl_62374
151018 +disable_so_native_mode_display_timings_62375 native_mode display_timings 0 62375 NULL
151019 +disable_so_wm8400_set_dai_clkdiv_fndecl_62376 wm8400_set_dai_clkdiv fndecl 3 62376 NULL
151020 +disable_so_phy_fixed_addr_vardecl_fixed_phy_c_62380 phy_fixed_addr vardecl_fixed_phy.c 0 62380 NULL
151021 +disable_so_lo_phys_addr_62383 lo phys_addr 0 62383 NULL
151022 +disable_so_schedule_resp_fndecl_62394 schedule_resp fndecl 4-3 62394 NULL
151023 +disable_so_tw_ts_recent_tcp_timewait_sock_62395 tw_ts_recent tcp_timewait_sock 0 62395 NULL
151024 +disable_so_bus_addr_videobuf_dmabuf_62402 bus_addr videobuf_dmabuf 0 62402 NULL
151025 +disable_so_i_uid_exofs_fcb_62409 i_uid exofs_fcb 0 62409 NULL
151026 +disable_so_pc_clock_getres_fndecl_62422 pc_clock_getres fndecl 1 62422 NULL
151027 +disable_so_lock_addr_ulp_mem_io_62424 lock_addr ulp_mem_io 0 62424 NULL
151028 +disable_so___set_radio_freq_fndecl_62425 __set_radio_freq fndecl 2 62425 NULL
151029 +disable_so_ath5k_hw_set_cts_timeout_fndecl_62429 ath5k_hw_set_cts_timeout fndecl 2 62429 NULL
151030 +disable_so_ni_program_memory_timing_parameters_fndecl_62435 ni_program_memory_timing_parameters fndecl 0 62435 NULL
151031 +disable_so_stv6110_set_frequency_fndecl_62438 stv6110_set_frequency fndecl 2 62438 NULL
151032 +disable_so_padata_index_to_cpu_fndecl_62451 padata_index_to_cpu fndecl 0-2 62451 NULL
151033 +disable_so_btree_insert_fndecl_62456 btree_insert fndecl 5 62456 NULL
151034 +disable_so_time_hfa384x_rx_frame_62462 time hfa384x_rx_frame 0 62462 NULL
151035 +disable_so_qat_alg_ablkcipher_init_dec_fndecl_62464 qat_alg_ablkcipher_init_dec fndecl 4 62464 NULL
151036 +disable_so_addr_mcp23s08_62465 addr mcp23s08 0 62465 NULL
151037 +disable_so_faddr_ip_options_62466 faddr ip_options 0 62466 NULL nohasharray
151038 +disable_so_ufs_get_inode_gid_fndecl_62466 ufs_get_inode_gid fndecl 0 62466 &disable_so_faddr_ip_options_62466
151039 +disable_so_min_rnr_timer_ib_qp_attr_62467 min_rnr_timer ib_qp_attr 0 62467 NULL
151040 +disable_so_update_timestamp_of_queue_fndecl_62482 update_timestamp_of_queue fndecl 2 62482 NULL
151041 +disable_so_center_freq1_cfg80211_chan_def_62486 center_freq1 cfg80211_chan_def 0 62486 NULL
151042 +disable_so_watchdog_set_timeout_fndecl_62487 watchdog_set_timeout fndecl 0 62487 NULL
151043 +disable_so_bitmap_parselist_user_fndecl_62492 bitmap_parselist_user fndecl 0-2-4 62492 NULL
151044 +disable_so_tuner_address_tda1004x_config_62514 tuner_address tda1004x_config 0 62514 NULL
151045 +disable_so_src_addr_l_wcn36xx_dxe_desc_62516 src_addr_l wcn36xx_dxe_desc 0 62516 NULL
151046 +disable_so_loadaddr_object_info_62521 loadaddr object_info 0 62521 NULL
151047 +disable_so_store_cpumask_fndecl_62525 store_cpumask fndecl 4-0 62525 NULL
151048 +disable_so_sysctl_llc2_rej_timeout_vardecl_62533 sysctl_llc2_rej_timeout vardecl 0 62533 NULL nohasharray
151049 +disable_so_symbol_rate_stv0900_signal_info_62533 symbol_rate stv0900_signal_info 0 62533 &disable_so_sysctl_llc2_rej_timeout_vardecl_62533
151050 +disable_so_get_pending_timer_val_fndecl_62535 get_pending_timer_val fndecl 0-1 62535 NULL
151051 +disable_so_acpi_tb_init_generic_address_fndecl_62545 acpi_tb_init_generic_address fndecl 2-3-4 62545 NULL
151052 +disable_so_laddr_xt_tproxy_target_info_62546 laddr xt_tproxy_target_info 0 62546 NULL
151053 +disable_so_bitmaps_btrfs_io_ctl_62547 bitmaps btrfs_io_ctl 0 62547 NULL
151054 +disable_so_phy_tx_tone_freq_brcms_phy_62552 phy_tx_tone_freq brcms_phy 0 62552 NULL
151055 +disable_so_rdaddr_irnet_socket_62558 rdaddr irnet_socket 0 62558 NULL
151056 +disable_so_uid_ucred_62560 uid ucred 0 62560 NULL
151057 +disable_so_mod_delayed_work_fndecl_62563 mod_delayed_work fndecl 3 62563 NULL
151058 +disable_so_base_pfn_var_mtrr_range_state_62564 base_pfn var_mtrr_range_state 0 62564 NULL
151059 +disable_so_cx_pt_regs_62574 cx pt_regs 0 62574 NULL
151060 +disable_so_cpuid_device_destroy_fndecl_62575 cpuid_device_destroy fndecl 1 62575 NULL
151061 +disable_so_pm_print_times_show_fndecl_62583 pm_print_times_show fndecl 0 62583 NULL
151062 +disable_so_blkaddr_discard_entry_62585 blkaddr discard_entry 0 62585 NULL
151063 +disable_so_wl1271_acx_group_address_tbl_fndecl_62591 wl1271_acx_group_address_tbl fndecl 0 62591 NULL nohasharray
151064 +disable_so_rangelow_v4l2_hw_freq_seek_62591 rangelow v4l2_hw_freq_seek 0 62591 &disable_so_wl1271_acx_group_address_tbl_fndecl_62591
151065 +disable_so_crc32_le_fndecl_62601 crc32_le fndecl 0-1-3 62601 NULL
151066 +disable_so_freq_cx23885_dev_62605 freq cx23885_dev 0 62605 NULL
151067 +disable_so_sysctl_netrom_transport_no_activity_timeout_vardecl_62608 sysctl_netrom_transport_no_activity_timeout vardecl 0 62608 NULL
151068 +disable_so_xfs_btree_new_iroot_fndecl_62611 xfs_btree_new_iroot fndecl 0 62611 NULL
151069 +disable_so_tproxy_handle_time_wait6_fndecl_62612 tproxy_handle_time_wait6 fndecl 3-2 62612 NULL
151070 +disable_so_sys_getpgid_fndecl_62613 sys_getpgid fndecl 0-1 62613 NULL
151071 +disable_so_next_td_addr_c67x00_hcd_62615 next_td_addr c67x00_hcd 0 62615 NULL
151072 +disable_so_hdspm_aes_sync_check_fndecl_62629 hdspm_aes_sync_check fndecl 2 62629 NULL
151073 +disable_so_ebitmap_node_get_bit_fndecl_62633 ebitmap_node_get_bit fndecl 2 62633 NULL
151074 +disable_so_nilfs_palloc_get_bitmap_block_fndecl_62635 nilfs_palloc_get_bitmap_block fndecl 0-2 62635 NULL
151075 +disable_so_spll_ref_div_rv6xx_power_info_62638 spll_ref_div rv6xx_power_info 0 62638 NULL nohasharray
151076 +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
151077 +disable_so_swc_base_asd_ha_addrspace_62642 swc_base asd_ha_addrspace 0 62642 NULL nohasharray
151078 +disable_so__abb5zes3_rtc_update_timer_fndecl_62642 _abb5zes3_rtc_update_timer fndecl 0 62642 &disable_so_swc_base_asd_ha_addrspace_62642
151079 +disable_so_cgcdiv_saa711x_state_62643 cgcdiv saa711x_state 0 62643 NULL
151080 +disable_so_igmp_mod_timer_fndecl_62656 igmp_mod_timer fndecl 2 62656 NULL
151081 +disable_so_write16_comm_runtime_62657 write16 comm_runtime 0 62657 NULL
151082 +disable_so_sib_sid_sockaddr_ib_62658 sib_sid sockaddr_ib 0 62658 NULL
151083 +disable_so_srx_service_sockaddr_rxrpc_62661 srx_service sockaddr_rxrpc 0 62661 NULL
151084 +disable_so_sh_cmt_clocksource_read_fndecl_62671 sh_cmt_clocksource_read fndecl 0 62671 NULL
151085 +disable_so_freq_saa7164_port_62674 freq saa7164_port 0 62674 NULL
151086 +disable_so_nilfs_btree_node_lookup_fndecl_62675 nilfs_btree_node_lookup fndecl 2 62675 NULL
151087 +disable_so_addr_1_qla8044_minidump_entry_rddfe_62676 addr_1 qla8044_minidump_entry_rddfe 0 62676 NULL
151088 +disable_so_rtl_udelay_fndecl_62677 rtl_udelay fndecl 1 62677 NULL nohasharray
151089 +disable_so_VTotal_xtimings_62677 VTotal xtimings 0 62677 &disable_so_rtl_udelay_fndecl_62677
151090 +disable_so_ib_get_cached_gid_fndecl_62698 ib_get_cached_gid fndecl 2-3 62698 NULL
151091 +disable_so_dvb_frontend_sleep_until_fndecl_62701 dvb_frontend_sleep_until fndecl 2 62701 NULL
151092 +disable_so_i2c_address_stv6110_config_62706 i2c_address stv6110_config 0 62706 NULL
151093 +disable_so_address_ihex_record_62713 address ihex_record 0 62713 NULL
151094 +disable_so_next_rptr_gpu_addr_radeon_ring_62716 next_rptr_gpu_addr radeon_ring 0 62716 NULL
151095 +disable_so_wusb_trust_timeout_store_fndecl_62719 wusb_trust_timeout_store fndecl 0-4 62719 NULL
151096 +disable_so_add_bytes_to_bitmap_fndecl_62721 add_bytes_to_bitmap fndecl 0-3-4 62721 NULL
151097 +disable_so_set_ethernet_addr_fndecl_62733 set_ethernet_addr fndecl 0 62733 NULL
151098 +disable_so_nmsrs_kvm_msrs_62744 nmsrs kvm_msrs 0 62744 NULL
151099 +disable_so_ant_div_control_ar9300_BaseExtension_1_62759 ant_div_control ar9300_BaseExtension_1 0 62759 NULL
151100 +disable_so_padlock_sha_import_fndecl_62760 padlock_sha_import fndecl 0 62760 NULL
151101 +disable_so_do_timerfd_settime_fndecl_62764 do_timerfd_settime fndecl 1 62764 NULL nohasharray
151102 +disable_so_phy_addr_netdev_private_62764 phy_addr netdev_private 0 62764 &disable_so_do_timerfd_settime_fndecl_62764
151103 +disable_so_bd_list_addr_lo_bnx2i_nop_out_request_62766 bd_list_addr_lo bnx2i_nop_out_request 0 62766 NULL
151104 +disable_so_get_sndtimeo_l2cap_ops_62767 get_sndtimeo l2cap_ops 0 62767 NULL
151105 +disable_so_active_jiffies_dev_pm_info_62774 active_jiffies dev_pm_info 0 62774 NULL
151106 +disable_so_r5f_val_fc2580_freq_regs_62778 r5f_val fc2580_freq_regs 0 62778 NULL
151107 +disable_so_ac97_clock_vardecl_via82xx_modem_c_62781 ac97_clock vardecl_via82xx_modem.c 0 62781 NULL
151108 +disable_so_after_ctime_sec_nfsd4_change_info_62785 after_ctime_sec nfsd4_change_info 0 62785 NULL
151109 +disable_so_vma_compute_subtree_gap_fndecl_62794 vma_compute_subtree_gap fndecl 0 62794 NULL
151110 +disable_so_fll_freq_out_wm8350_data_62801 fll_freq_out wm8350_data 0 62801 NULL
151111 +disable_so_nfs_map_group_to_gid_fndecl_62809 nfs_map_group_to_gid fndecl 0-3 62809 NULL
151112 +disable_so_saddr_irnet_socket_62828 saddr irnet_socket 0 62828 NULL
151113 +disable_so_fixed_mtrr_range_end_addr_fndecl_62835 fixed_mtrr_range_end_addr fndecl 2-0 62835 NULL
151114 +disable_so_sis_program_udma_timings_fndecl_62837 sis_program_udma_timings fndecl 2 62837 NULL
151115 +disable_so_timeout_lpfc_scsi_buf_62845 timeout lpfc_scsi_buf 0 62845 NULL
151116 +disable_so_brp_inc_can_bittiming_const_62858 brp_inc can_bittiming_const 0 62858 NULL
151117 +disable_so_timer_counter_tg3_62864 timer_counter tg3 0 62864 NULL
151118 +disable_so_slave_addr_psb_intel_i2c_chan_62869 slave_addr psb_intel_i2c_chan 0 62869 NULL
151119 +disable_so_mapaddr_rocker_desc_info_62870 mapaddr rocker_desc_info 0 62870 NULL
151120 +disable_so_cid_addr_drv_ctl_io_62879 cid_addr drv_ctl_io 0 62879 NULL
151121 +disable_so_ifreq_dibx000_bandwidth_config_62891 ifreq dibx000_bandwidth_config 0 62891 NULL
151122 +disable_so_m_iw_freq_62894 m iw_freq 0 62894 NULL
151123 +disable_so___nci_request_fndecl_62899 __nci_request fndecl 0 62899 NULL
151124 +disable_so_tuner_addr_cx23885_dev_62908 tuner_addr cx23885_dev 0 62908 NULL
151125 +disable_so_acpi_remove_address_space_handler_fndecl_62916 acpi_remove_address_space_handler fndecl 0-2 62916 NULL
151126 +disable_so_vma_address_fndecl_62917 vma_address fndecl 0 62917 NULL
151127 +disable_so_cg_spll_func_cntl_2_rv770_clock_registers_62925 cg_spll_func_cntl_2 rv770_clock_registers 0 62925 NULL
151128 +disable_so_clear_state_gpu_addr_radeon_rlc_62934 clear_state_gpu_addr radeon_rlc 0 62934 NULL
151129 +disable_so_timeout__x_config_parms_62944 timeout _x_config_parms 0 62944 NULL
151130 +disable_so_vbackporch_v4l2_bt_timings_62951 vbackporch v4l2_bt_timings 0 62951 NULL
151131 +disable_so_crypto_rfc4543_setkey_fndecl_62960 crypto_rfc4543_setkey fndecl 0-3 62960 NULL
151132 +disable_so_xc_get_hsync_freq_fndecl_62961 xc_get_hsync_freq fndecl 0 62961 NULL
151133 +disable_so_run_delayed_start_btrfs_delayed_ref_root_62962 run_delayed_start btrfs_delayed_ref_root 0 62962 NULL nohasharray
151134 +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
151135 +disable_so_frac_top_pll_div_62988 frac_top pll_div 0 62988 NULL nohasharray
151136 +disable_so_busaddr__CommandList_struct_62988 busaddr _CommandList_struct 0 62988 &disable_so_frac_top_pll_div_62988
151137 +disable_so_buffer_paddr_ghes_62992 buffer_paddr ghes 0 62992 NULL
151138 +disable_so_be32_to_cpu_n_fndecl_62994 be32_to_cpu_n fndecl 3 62994 NULL
151139 +disable_so_ccp_sha_update_fndecl_63000 ccp_sha_update fndecl 0 63000 NULL
151140 +disable_so_chipco_pctl_clockfreqlimit_fndecl_63008 chipco_pctl_clockfreqlimit fndecl 0 63008 NULL
151141 +disable_so_sys_gettimeofday_fndecl_63009 sys_gettimeofday fndecl 0 63009 NULL
151142 +disable_so_ext4_read_block_bitmap_fndecl_63029 ext4_read_block_bitmap fndecl 2 63029 NULL
151143 +disable_so_sis900_interrupt_fndecl_63044 sis900_interrupt fndecl 1 63044 NULL
151144 +disable_so_tv_usec_compat_timeval_63056 tv_usec compat_timeval 0 63056 NULL
151145 +disable_so_timeout_ct_entry_24xx_63060 timeout ct_entry_24xx 0 63060 NULL
151146 +disable_so_ib_reset_mad_timeout_fndecl_63061 ib_reset_mad_timeout fndecl 2 63061 NULL
151147 +disable_so_register_lapic_address_fndecl_63066 register_lapic_address fndecl 1 63066 NULL
151148 +disable_so_sgl_dma_addr_genwqe_sgl_63082 sgl_dma_addr genwqe_sgl 0 63082 NULL
151149 +disable_so_nf_conntrack_hash_rnd_vardecl_63088 nf_conntrack_hash_rnd vardecl 0 63088 NULL
151150 +disable_so_snd_emu10k1_ptr_write_fndecl_63094 snd_emu10k1_ptr_write fndecl 2-3-4 63094 NULL
151151 +disable_so_index_svm_direct_access_msrs_63098 index svm_direct_access_msrs 0 63098 NULL
151152 +disable_so_crypto_authenc_genicv_fndecl_63111 crypto_authenc_genicv fndecl 0 63111 NULL
151153 +disable_so_pcf50633_rtc_set_time_fndecl_63123 pcf50633_rtc_set_time fndecl 0 63123 NULL
151154 +disable_so_hsyn_pol_hdmi_timings_63136 hsyn_pol hdmi_timings 0 63136 NULL
151155 +disable_so_ri_addr_gfs2_rindex_63138 ri_addr gfs2_rindex 0 63138 NULL
151156 +disable_so_nr_oaktrail_hdmi_clock_63155 nr oaktrail_hdmi_clock 0 63155 NULL nohasharray
151157 +disable_so_dma_addr_nic_63155 dma_addr nic 0 63155 &disable_so_nr_oaktrail_hdmi_clock_63155
151158 +disable_so_dlm_hash2nodeid_fndecl_63162 dlm_hash2nodeid fndecl 2 63162 NULL
151159 +disable_so_efx_enable_interrupts_fndecl_63163 efx_enable_interrupts fndecl 0 63163 NULL nohasharray
151160 +disable_so_freq_offset_rt2x00_dev_63163 freq_offset rt2x00_dev 0 63163 &disable_so_efx_enable_interrupts_fndecl_63163
151161 +disable_so_dma_addr_il_queue_63172 dma_addr il_queue 0 63172 NULL
151162 +disable_so_buf_addr_hi_fcoe_bd_ctx_63176 buf_addr_hi fcoe_bd_ctx 0 63176 NULL
151163 +disable_so_i2c_addr_lgdt3305_config_63179 i2c_addr lgdt3305_config 0 63179 NULL nohasharray
151164 +disable_so_sched_addr_ath9k_hw_mci_63179 sched_addr ath9k_hw_mci 0 63179 &disable_so_i2c_addr_lgdt3305_config_63179
151165 +disable_so_mic_x100_get_boot_addr_fndecl_63190 mic_x100_get_boot_addr fndecl 0 63190 NULL
151166 +disable_so_i2c_clock_period_ivtv_options_63202 i2c_clock_period ivtv_options 0 63202 NULL
151167 +disable_so_f2fs_init_crypto_fndecl_63218 f2fs_init_crypto fndecl 0 63218 NULL
151168 +disable_so_snd_ymfpci_interrupt_fndecl_63224 snd_ymfpci_interrupt fndecl 1 63224 NULL
151169 +disable_so_set_tsc_mode_fndecl_63231 set_tsc_mode fndecl 0-1 63231 NULL
151170 +disable_so_update_crypto_ahash_63235 update crypto_ahash 0 63235 NULL
151171 +disable_so_base_freq_stv0297_state_63242 base_freq stv0297_state 0 63242 NULL
151172 +disable_so_mounted_uid_ncp_mount_data_63250 mounted_uid ncp_mount_data 0 63250 NULL
151173 +disable_so_wall_clock_kvm_arch_63252 wall_clock kvm_arch 0 63252 NULL nohasharray
151174 +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
151175 +disable_so_r100_mm_wreg_slow_fndecl_63255 r100_mm_wreg_slow fndecl 2-3 63255 NULL
151176 +disable_so_ocrdma_query_gid_fndecl_63259 ocrdma_query_gid fndecl 0-3 63259 NULL
151177 +disable_so_sha1_mb_async_init_fndecl_63263 sha1_mb_async_init fndecl 0 63263 NULL
151178 +disable_so_i_mtime_nsec_nilfs_inode_63266 i_mtime_nsec nilfs_inode 0 63266 NULL
151179 +disable_so_s_pkt_delay_ipath_qp_63270 s_pkt_delay ipath_qp 0 63270 NULL
151180 +disable_so_ecryptfs_read_update_atime_fndecl_63272 ecryptfs_read_update_atime fndecl 0 63272 NULL
151181 +disable_so_seq_auto_out_pin_63274 seq auto_out_pin 0 63274 NULL
151182 +disable_so_pmdown_time_show_fndecl_63283 pmdown_time_show fndecl 0 63283 NULL
151183 +disable_so_pwm_freq_div_dib7000m_config_63285 pwm_freq_div dib7000m_config 0 63285 NULL
151184 +disable_so_bit_width_acpi_generic_address_63286 bit_width acpi_generic_address 0 63286 NULL
151185 +disable_so_addr_sg_entry_63287 addr sg_entry 0 63287 NULL
151186 +disable_so_ocfs2_pack_timespec_fndecl_63293 ocfs2_pack_timespec fndecl 0 63293 NULL
151187 +disable_so_ipv6_addr_label_fndecl_63298 ipv6_addr_label fndecl 3-4 63298 NULL
151188 +disable_so_chgfreq_cs42l56_platform_data_63299 chgfreq cs42l56_platform_data 0 63299 NULL
151189 +disable_so_sco_sock_set_timer_fndecl_63304 sco_sock_set_timer fndecl 2 63304 NULL nohasharray
151190 +disable_so_skb_get_hash_fndecl_63304 skb_get_hash fndecl 0 63304 &disable_so_sco_sock_set_timer_fndecl_63304
151191 +disable_so_timeout_tsk_mgmt_entry_63307 timeout tsk_mgmt_entry 0 63307 NULL
151192 +disable_so_sysctl_slot_timeout_vardecl_63317 sysctl_slot_timeout vardecl 0 63317 NULL
151193 +disable_so_set_sadb_address_fndecl_63320 set_sadb_address fndecl 2 63320 NULL
151194 +disable_so_handle_frequent_errors_fndecl_63324 handle_frequent_errors fndecl 4 63324 NULL
151195 +disable_so_last_ramp_up_time_bfad_itnim_s_63328 last_ramp_up_time bfad_itnim_s 0 63328 NULL
151196 +disable_so_timeout_vardecl_xen_wdt_c_63339 timeout vardecl_xen_wdt.c 0 63339 NULL nohasharray
151197 +disable_so_padlock_sha_export_fndecl_63339 padlock_sha_export fndecl 0 63339 &disable_so_timeout_vardecl_xen_wdt_c_63339
151198 +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
151199 +disable_so_uv_cpu_to_pnode_fndecl_63343 uv_cpu_to_pnode fndecl 0 63343 NULL
151200 +disable_so_gsc_runtime_resume_fndecl_63355 gsc_runtime_resume fndecl 0 63355 NULL
151201 +disable_so_pci_bus_find_capability_fndecl_63357 pci_bus_find_capability fndecl 0-2 63357 NULL
151202 +disable_so_addr_af9013_reg_bit_63363 addr af9013_reg_bit 0 63363 NULL
151203 +disable_so_ath5k_eeprom_bin2freq_fndecl_63364 ath5k_eeprom_bin2freq fndecl 0-2 63364 NULL
151204 +disable_so_sd_mtime_stat_data_63370 sd_mtime stat_data 0 63370 NULL
151205 +disable_so_next_hscb_busaddr_hardware_scb_63375 next_hscb_busaddr hardware_scb 0 63375 NULL nohasharray
151206 +disable_so_cpufreq_set_policy_fndecl_63375 cpufreq_set_policy fndecl 0 63375 &disable_so_next_hscb_busaddr_hardware_scb_63375
151207 +disable_so_cache_tsc_vardecl_max8925_core_c_63377 cache_tsc vardecl_max8925-core.c 0 63377 NULL
151208 +disable_so_xtime_remainder_timekeeper_63380 xtime_remainder timekeeper 0 63380 NULL
151209 +disable_so_st_uid___old_kernel_stat_63381 st_uid __old_kernel_stat 0 63381 NULL
151210 +disable_so_timeout_b_tpm_vendor_specific_63382 timeout_b tpm_vendor_specific 0 63382 NULL
151211 +disable_so_vol_bit_shift_anatop_regulator_63384 vol_bit_shift anatop_regulator 0 63384 NULL
151212 +disable_so_msr_offset_intel_uncore_type_63385 msr_offset intel_uncore_type 0 63385 NULL
151213 +disable_so_random_write_fndecl_63387 random_write fndecl 0-3 63387 NULL
151214 +disable_so_bcma_chipco_watchdog_timer_set_ms_wdt_fndecl_63389 bcma_chipco_watchdog_timer_set_ms_wdt fndecl 2-0 63389 NULL
151215 +disable_so__div_round_closest_fndecl_63400 _div_round_closest fndecl 0-3-2 63400 NULL
151216 +disable_so_acpi_ut_strtoul64_fndecl_63410 acpi_ut_strtoul64 fndecl 0 63410 NULL
151217 +disable_so_alarm_time_xgene_rtc_dev_63411 alarm_time xgene_rtc_dev 0 63411 NULL nohasharray
151218 +disable_so_dynamic_ps_timeout_ieee80211_conf_63411 dynamic_ps_timeout ieee80211_conf 0 63411 &disable_so_alarm_time_xgene_rtc_dev_63411 nohasharray
151219 +disable_so_split_timeout_cycles_fw_card_63411 split_timeout_cycles fw_card 0 63411 &disable_so_dynamic_ps_timeout_ieee80211_conf_63411
151220 +disable_so_bitstream_get_bits_fndecl_63423 bitstream_get_bits fndecl 0-3 63423 NULL
151221 +disable_so_tw_timeout_inet_timewait_sock_63424 tw_timeout inet_timewait_sock 0 63424 NULL
151222 +disable_so_drbg_kcapi_hash_fndecl_63433 drbg_kcapi_hash fndecl 0 63433 NULL
151223 +disable_so_wait_for_completion_interruptible_fndecl_63448 wait_for_completion_interruptible fndecl 0 63448 NULL
151224 +disable_so_sys_clock_nanosleep_fndecl_63449 sys_clock_nanosleep fndecl 1 63449 NULL
151225 +disable_so_nouveau_hw_get_clock_fndecl_63456 nouveau_hw_get_clock fndecl 0-2 63456 NULL
151226 +disable_so_nilfs_btree_propagate_gc_fndecl_63460 nilfs_btree_propagate_gc fndecl 0 63460 NULL
151227 +disable_so_crypto_xcbc_module_init_fndecl_63471 crypto_xcbc_module_init fndecl 0 63471 NULL
151228 +disable_so_amradio_set_freq_fndecl_63479 amradio_set_freq fndecl 0-2 63479 NULL
151229 +disable_so_task_getpgid_security_operations_63489 task_getpgid security_operations 0 63489 NULL nohasharray
151230 +disable_so_crypto_register_akcipher_fndecl_63489 crypto_register_akcipher fndecl 0 63489 &disable_so_task_getpgid_security_operations_63489
151231 +disable_so_netxen_nic_map_indirect_address_128M_fndecl_63490 netxen_nic_map_indirect_address_128M fndecl 2 63490 NULL
151232 +disable_so_vnic_intr_coalescing_timer_set_fndecl_63494 vnic_intr_coalescing_timer_set fndecl 2 63494 NULL
151233 +disable_so_chipset_settings_chipset_bus_clock_list_entry_63497 chipset_settings chipset_bus_clock_list_entry 0 63497 NULL
151234 +disable_so_new_cycle_state_xhci_dequeue_state_63499 new_cycle_state xhci_dequeue_state 0 63499 NULL
151235 +disable_so_radeon_legacy_set_engine_clock_fndecl_63512 radeon_legacy_set_engine_clock fndecl 2 63512 NULL
151236 +disable_so_addr___ctrl_63513 addr __ctrl 0 63513 NULL
151237 +disable_so_asix_get_phy_addr_fndecl_63534 asix_get_phy_addr fndecl 0 63534 NULL
151238 +disable_so_time_in_queue_dm_stat_percpu_63541 time_in_queue dm_stat_percpu 0 63541 NULL
151239 +disable_so_ufshcd_pltfrm_runtime_suspend_fndecl_63543 ufshcd_pltfrm_runtime_suspend fndecl 0 63543 NULL
151240 +disable_so_spu_port_delay_if_spi_card_63548 spu_port_delay if_spi_card 0 63548 NULL nohasharray
151241 +disable_so_cs_cpufreq_governor_dbs_fndecl_63548 cs_cpufreq_governor_dbs fndecl 0 63548 &disable_so_spu_port_delay_if_spi_card_63548
151242 +disable_so_type_ceph_crypto_key_63565 type ceph_crypto_key 0 63565 NULL
151243 +disable_so_bus_settle_time_blogic_adapter_63575 bus_settle_time blogic_adapter 0 63575 NULL
151244 +disable_so_ref_divider_aty128_constants_63576 ref_divider aty128_constants 0 63576 NULL
151245 +disable_so_remote_qpn_cm_timewait_info_63581 remote_qpn cm_timewait_info 0 63581 NULL
151246 +disable_so_boot_time_fc_lport_63585 boot_time fc_lport 0 63585 NULL
151247 +disable_so_imx_phy_reg_addressing_fndecl_63588 imx_phy_reg_addressing fndecl 0 63588 NULL
151248 +disable_so_irq_set_irq_type_fndecl_63590 irq_set_irq_type fndecl 2-1 63590 NULL
151249 +disable_so_appl_ptr_snd_rawmidi_runtime_63609 appl_ptr snd_rawmidi_runtime 0 63609 NULL
151250 +disable_so_snd_hdac_regmap_write_raw_fndecl_63613 snd_hdac_regmap_write_raw fndecl 0-3-2 63613 NULL
151251 +disable_so_control_addr_qla82xx_md_entry_cache_63615 control_addr qla82xx_md_entry_cache 0 63615 NULL
151252 +disable_so_nla_put_ipaddr6_fndecl_63618 nla_put_ipaddr6 fndecl 0 63618 NULL
151253 +disable_so_da9052_wdt_set_timeout_fndecl_63621 da9052_wdt_set_timeout fndecl 2-0 63621 NULL
151254 +disable_so_cstime_signal_struct_63629 cstime signal_struct 0 63629 NULL
151255 +disable_so_dm_region_hash_create_fndecl_63649 dm_region_hash_create fndecl 5-8-9 63649 NULL
151256 +disable_so_krng_get_random_fndecl_63655 krng_get_random fndecl 3 63655 NULL
151257 +disable_so_r9701_get_datetime_fndecl_63665 r9701_get_datetime fndecl 0 63665 NULL
151258 +disable_so_crypto_rfc3686_crypt_fndecl_63668 crypto_rfc3686_crypt fndecl 0 63668 NULL
151259 +disable_so_xen_late_init_mcelog_fndecl_63669 xen_late_init_mcelog fndecl 0 63669 NULL
151260 +disable_so_prot_res_gid_63673 prot res_gid 0 63673 NULL
151261 +disable_so_ext3_valid_block_bitmap_fndecl_63688 ext3_valid_block_bitmap fndecl 3 63688 NULL
151262 +disable_so_smt_timer_start_fndecl_63691 smt_timer_start fndecl 3 63691 NULL nohasharray
151263 +disable_so_port_tomoyo_inet_addr_info_63691 port tomoyo_inet_addr_info 0 63691 &disable_so_smt_timer_start_fndecl_63691
151264 +disable_so_generic_check_addressable_fndecl_63696 generic_check_addressable fndecl 1-2 63696 NULL nohasharray
151265 +disable_so___check_object_size_fndecl_63696 __check_object_size fndecl 2 63696 &disable_so_generic_check_addressable_fndecl_63696
151266 +disable_so_r820t_sleep_fndecl_63717 r820t_sleep fndecl 0 63717 NULL
151267 +disable_so_lgdt3305_read_signal_strength_fndecl_63720 lgdt3305_read_signal_strength fndecl 0 63720 NULL
151268 +disable_so_wl1251_acx_sleep_auth_fndecl_63727 wl1251_acx_sleep_auth fndecl 0 63727 NULL
151269 +disable_so_clk_out_div_ts2020_priv_63728 clk_out_div ts2020_priv 0 63728 NULL
151270 +disable_so_sys_clock_adjtime_fndecl_63736 sys_clock_adjtime fndecl 1 63736 NULL
151271 +disable_so_radio_addr_cx88_board_63745 radio_addr cx88_board 0 63745 NULL
151272 +disable_so_input_print_bitmap_fndecl_63755 input_print_bitmap fndecl 0-2 63755 NULL
151273 +disable_so_memstick_set_rw_addr_fndecl_63757 memstick_set_rw_addr fndecl 0 63757 NULL
151274 +disable_so_simple_strtoll_fndecl_63758 simple_strtoll fndecl 0 63758 NULL
151275 +disable_so___mv88e6xxx_read_addr_fndecl_63766 __mv88e6xxx_read_addr fndecl 0 63766 NULL
151276 +disable_so_nf_conntrack_timeout_init_fndecl_63771 nf_conntrack_timeout_init fndecl 0 63771 NULL
151277 +disable_so_ob_baseaddr_h_mvumi_hs_page4_63775 ob_baseaddr_h mvumi_hs_page4 0 63775 NULL
151278 +disable_so_stored_addr_hi_amd_iommu_63784 stored_addr_hi amd_iommu 0 63784 NULL
151279 +disable_so_HSyncEnd_xtimings_63785 HSyncEnd xtimings 0 63785 NULL
151280 +disable_so_addr_h_xfer_desc_63789 addr_h xfer_desc 0 63789 NULL
151281 +disable_so_i2c_address_stb6000_priv_63790 i2c_address stb6000_priv 0 63790 NULL
151282 +disable_so_runtime_expires_cfs_bandwidth_63800 runtime_expires cfs_bandwidth 0 63800 NULL
151283 +disable_so_account_steal_time_fndecl_63806 account_steal_time fndecl 1 63806 NULL
151284 +disable_so_sleep_max_sched_statistics_63826 sleep_max sched_statistics 0 63826 NULL
151285 +disable_so_usecs_to_jiffies_fndecl_63832 usecs_to_jiffies fndecl 0-1 63832 NULL
151286 +disable_so_dsp_iram_offset_sst_addr_63833 dsp_iram_offset sst_addr 0 63833 NULL
151287 +disable_so_central_freq_skl_wrpll_params_63836 central_freq skl_wrpll_params 0 63836 NULL
151288 +disable_so_bitmap_release_region_fndecl_63837 bitmap_release_region fndecl 2-3 63837 NULL
151289 +disable_so_dx_hack_hash_signed_fndecl_63847 dx_hack_hash_signed fndecl 0-2 63847 NULL
151290 +disable_so_qhead_snd_timer_user_63855 qhead snd_timer_user 0 63855 NULL
151291 +disable_so_table1_addr_ipw2100_ordinals_63856 table1_addr ipw2100_ordinals 0 63856 NULL
151292 +disable_so_dec_cd_paddr_qat_alg_aead_ctx_63860 dec_cd_paddr qat_alg_aead_ctx 0 63860 NULL
151293 +disable_so_ppll_div_3_radeon_regs_63862 ppll_div_3 radeon_regs 0 63862 NULL
151294 +disable_so_sys_addr_to_input_addr_fndecl_63863 sys_addr_to_input_addr fndecl 0-2 63863 NULL
151295 +disable_so_dma_rx_timeout_lpuart_port_63878 dma_rx_timeout lpuart_port 0 63878 NULL
151296 +disable_so_dma_addr_t4_rq_63886 dma_addr t4_rq 0 63886 NULL
151297 +disable_so_radeon_semaphore_emit_signal_fndecl_63895 radeon_semaphore_emit_signal fndecl 2 63895 NULL
151298 +disable_so_probe_timeout_ieee80211_if_managed_63910 probe_timeout ieee80211_if_managed 0 63910 NULL
151299 +disable_so_mthca_MAD_IFC_fndecl_63923 mthca_MAD_IFC fndecl 4-0 63923 NULL
151300 +disable_so_get_strength_time_mb86a20s_state_63926 get_strength_time mb86a20s_state 0 63926 NULL
151301 +disable_so_rx_frequency_wl1273_device_63933 rx_frequency wl1273_device 0 63933 NULL nohasharray
151302 +disable_so_arcmsr_module_init_fndecl_63933 arcmsr_module_init fndecl 0 63933 &disable_so_rx_frequency_wl1273_device_63933
151303 +disable_so_timeout_vardecl_alim1535_wdt_c_63935 timeout vardecl_alim1535_wdt.c 0 63935 NULL
151304 +disable_so_query_dv_timings_size_vivid_dev_63943 query_dv_timings_size vivid_dev 0 63943 NULL
151305 +disable_so_nf_nat_sdp_addr_fndecl_63949 nf_nat_sdp_addr fndecl 2-3 63949 NULL
151306 +disable_so_shash_finup_unaligned_fndecl_63955 shash_finup_unaligned fndecl 0-3 63955 NULL
151307 +disable_so_rdmsr_on_cpu_fndecl_63956 rdmsr_on_cpu fndecl 0-1 63956 NULL
151308 +disable_so_qlge_set_mac_address_fndecl_63968 qlge_set_mac_address fndecl 0 63968 NULL
151309 +disable_so_config_ipaddr_qlcnic_nic_template_63973 config_ipaddr qlcnic_nic_template 2 63973 NULL
151310 +disable_so_timer_enable_snd_opl3_63986 timer_enable snd_opl3 0 63986 NULL
151311 +disable_so_virtio16_to_cpu_fndecl_63994 virtio16_to_cpu fndecl 0-2 63994 NULL
151312 +disable_so_ecryptfs_init_crypto_fndecl_63995 ecryptfs_init_crypto fndecl 0 63995 NULL
151313 +disable_so_address_ccp_dma_info_64001 address ccp_dma_info 0 64001 NULL
151314 +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
151315 +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
151316 +disable_so_settime_security_operations_64006 settime security_operations 0 64006 NULL nohasharray
151317 +disable_so_SYSC_timerfd_create_fndecl_64006 SYSC_timerfd_create fndecl 2 64006 &disable_so_settime_security_operations_64006
151318 +disable_so_cryptd_hash_setkey_fndecl_64014 cryptd_hash_setkey fndecl 0-3 64014 NULL
151319 +disable_so_irq_net_device_64015 irq net_device 0 64015 NULL
151320 +disable_so_sysfs_show_available_clocksources_fndecl_64024 sysfs_show_available_clocksources fndecl 0 64024 NULL
151321 +disable_so_s_frequency_v4l2_subdev_tuner_ops_64037 s_frequency v4l2_subdev_tuner_ops 0 64037 NULL
151322 +disable_so_tcp_v6_md5_hash_pseudoheader_fndecl_64051 tcp_v6_md5_hash_pseudoheader fndecl 4 64051 NULL
151323 +disable_so_ieee80211_queue_delayed_work_fndecl_64056 ieee80211_queue_delayed_work fndecl 3 64056 NULL
151324 +disable_so_rtc_set_time_fndecl_64057 rtc_set_time fndecl 0 64057 NULL
151325 +disable_so_addr_i2c_msg_64074 addr i2c_msg 0 64074 NULL
151326 +disable_so_cea_mode_alternate_clock_fndecl_64078 cea_mode_alternate_clock fndecl 0 64078 NULL
151327 +disable_so_cfreq_esp_64080 cfreq esp 0 64080 NULL
151328 +disable_so___irq_get_desc_lock_fndecl_64081 __irq_get_desc_lock fndecl 1 64081 NULL
151329 +disable_so_pticks_snd_timer_instance_64084 pticks snd_timer_instance 0 64084 NULL
151330 +disable_so_ip6addrlbl_get_fndecl_64092 ip6addrlbl_get fndecl 0 64092 NULL nohasharray
151331 +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
151332 +disable_so_nilfs_btree_commit_convert_and_insert_fndecl_64095 nilfs_btree_commit_convert_and_insert fndecl 2-6 64095 NULL
151333 +disable_so_prandom_u32_fndecl_64118 prandom_u32 fndecl 0 64118 NULL
151334 +disable_so_mask_ds1685_rtc_time_regs_64121 mask ds1685_rtc_time_regs 0 64121 NULL
151335 +disable_so_ic_servaddr_vardecl_64122 ic_servaddr vardecl 0 64122 NULL
151336 +disable_so_hashval2_0_rx_pkt_hdr1_64124 hashval2_0 rx_pkt_hdr1 0 64124 NULL
151337 +disable_so_xfrm_addr_equal_fndecl_64155 xfrm_addr_equal fndecl 3 64155 NULL
151338 +disable_so_cq_addr_hi_fcoe_kwqe_conn_offload2_64157 cq_addr_hi fcoe_kwqe_conn_offload2 0 64157 NULL
151339 +disable_so_rq_tmo_jiffies_srp_target_port_64158 rq_tmo_jiffies srp_target_port 0 64158 NULL
151340 +disable_so_xen_sysfs_uuid_init_fndecl_64160 xen_sysfs_uuid_init fndecl 0 64160 NULL
151341 +disable_so___dm_stat_init_temporary_percpu_totals_fndecl_64162 __dm_stat_init_temporary_percpu_totals fndecl 3 64162 NULL
151342 +disable_so_pcxhr_set_clock_fndecl_64184 pcxhr_set_clock fndecl 2-0 64184 NULL
151343 +disable_so_bitmap_endwrite_fndecl_64188 bitmap_endwrite fndecl 2-3 64188 NULL
151344 +disable_so_pages_bitmap_counts_64197 pages bitmap_counts 0 64197 NULL
151345 +disable_so_base_address_dmar_rmrr_unit_64199 base_address dmar_rmrr_unit 0 64199 NULL
151346 +disable_so_udp_conn_schedule_fndecl_64203 udp_conn_schedule fndecl 1 64203 NULL
151347 +disable_so_max_timebase_img_pwm_soc_data_64210 max_timebase img_pwm_soc_data 0 64210 NULL
151348 +disable_so_cycles_at_suspend_vardecl_timekeeping_c_64211 cycles_at_suspend vardecl_timekeeping.c 0 64211 NULL nohasharray
151349 +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
151350 +disable_so_addr_psb_pipe_64215 addr psb_pipe 0 64215 NULL
151351 +disable_so_acpi_subsys_runtime_suspend_fndecl_64232 acpi_subsys_runtime_suspend fndecl 0 64232 NULL
151352 +disable_so_pci_bus_read_config_word_fndecl_64248 pci_bus_read_config_word fndecl 0-2-3 64248 NULL
151353 +disable_so_last_rx_timestamp_igb_adapter_64249 last_rx_timestamp igb_adapter 0 64249 NULL
151354 +disable_so_snd_timer_user_ioctl_compat_fndecl_64250 snd_timer_user_ioctl_compat fndecl 0 64250 NULL
151355 +disable_so_tag_reg_addr_qla82xx_md_entry_cache_64251 tag_reg_addr qla82xx_md_entry_cache 0 64251 NULL
151356 +disable_so_cond_wait_interruptible_timeout_irqrestore_fndecl_64253 cond_wait_interruptible_timeout_irqrestore fndecl 2-0 64253 NULL
151357 +disable_so_signr_usbdevfs_disconnectsignal32_64254 signr usbdevfs_disconnectsignal32 0 64254 NULL
151358 +disable_so_inet6_addr_del_fndecl_64255 inet6_addr_del fndecl 0-2-5-3 64255 NULL
151359 +disable_so_pci_quatech_clock_fndecl_64264 pci_quatech_clock fndecl 0 64264 NULL nohasharray
151360 +disable_so_crypto_null_mod_init_fndecl_64264 crypto_null_mod_init fndecl 0 64264 &disable_so_pci_quatech_clock_fndecl_64264
151361 +disable_so_kvm_write_wall_clock_fndecl_64267 kvm_write_wall_clock fndecl 2 64267 NULL
151362 +disable_so_smk_write_netlbladdr_fndecl_64270 smk_write_netlbladdr fndecl 3 64270 NULL
151363 +disable_so_iscsi_nacl_attrib_show_dataout_timeout_fndecl_64272 iscsi_nacl_attrib_show_dataout_timeout fndecl 0 64272 NULL
151364 +disable_so_sched_setscheduler_nocheck_fndecl_64274 sched_setscheduler_nocheck fndecl 2-0 64274 NULL
151365 +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
151366 +disable_so_dx_hack_hash_unsigned_fndecl_64277 dx_hack_hash_unsigned fndecl 0-2 64277 NULL
151367 +disable_so_xsdt_physical_address_acpi_table_rsdp_64302 xsdt_physical_address acpi_table_rsdp 0 64302 NULL
151368 +disable_so_timeout_watchdog_device_64303 timeout watchdog_device 0 64303 NULL
151369 +disable_so_crypto_shash_digest_fndecl_64307 crypto_shash_digest fndecl 0-3 64307 NULL
151370 +disable_so_jiffies_ati_remote2_64334 jiffies ati_remote2 0 64334 NULL
151371 +disable_so_target_stat_scsi_lu_show_attr_creation_time_fndecl_64336 target_stat_scsi_lu_show_attr_creation_time fndecl 0 64336 NULL
151372 +disable_so_intel_increase_pllclock_fndecl_64342 intel_increase_pllclock fndecl 2 64342 NULL
151373 +disable_so_wm8350_rtc_settime_fndecl_64353 wm8350_rtc_settime fndecl 0 64353 NULL
151374 +disable_so_saa711x_s_crystal_freq_fndecl_64358 saa711x_s_crystal_freq fndecl 2 64358 NULL
151375 +disable_so_get_div_fndecl_64359 get_div fndecl 0 64359 NULL
151376 +disable_so_dln2_spi_runtime_resume_fndecl_64364 dln2_spi_runtime_resume fndecl 0 64364 NULL
151377 +disable_so_register_address_fndecl_64366 register_address fndecl 0-2 64366 NULL
151378 +disable_so_ipath_guid_ipath_devdata_64367 ipath_guid ipath_devdata 0 64367 NULL
151379 +disable_so_dma_address_edgeport_port_64376 dma_address edgeport_port 0 64376 NULL
151380 +disable_so_tlb_rd_addr_vlv_s0ix_state_64377 tlb_rd_addr vlv_s0ix_state 0 64377 NULL
151381 +disable_so_br_mdb_rehash_fndecl_64384 br_mdb_rehash fndecl 2 64384 NULL
151382 +disable_so_irq_ti_tscadc_dev_64390 irq ti_tscadc_dev 0 64390 NULL
151383 +disable_so_rh_hash_fndecl_64392 rh_hash fndecl 0-2 64392 NULL
151384 +disable_so_addr_Vmxnet3_RxDesc_64395 addr Vmxnet3_RxDesc 0 64395 NULL
151385 +disable_so_wptr_gpu_addr_kernel_queue_64396 wptr_gpu_addr kernel_queue 0 64396 NULL
151386 +disable_so__regmap_raw_write_fndecl_64399 _regmap_raw_write fndecl 2-4-0 64399 NULL
151387 +disable_so_crypto_ahash_walk_first_fndecl_64405 crypto_ahash_walk_first fndecl 0 64405 NULL
151388 +disable_so_host_start_efx_ptp_timeset_64407 host_start efx_ptp_timeset 0 64407 NULL
151389 +disable_so___compat_put_timeval_fndecl_64422 __compat_put_timeval fndecl 0 64422 NULL nohasharray
151390 +disable_so_img_ir_timings_preprocess_fndecl_64422 img_ir_timings_preprocess fndecl 2 64422 &disable_so___compat_put_timeval_fndecl_64422
151391 +disable_so_addr_sst_byt_address_info_64439 addr sst_byt_address_info 0 64439 NULL nohasharray
151392 +disable_so_hashhi_smsc911x_data_64439 hashhi smsc911x_data 0 64439 &disable_so_addr_sst_byt_address_info_64439
151393 +disable_so_do_set_clk_freq_fndecl_64447 do_set_clk_freq fndecl 2 64447 NULL
151394 +disable_so_sctp_bind_addr_dup_fndecl_64448 sctp_bind_addr_dup fndecl 3 64448 NULL
151395 +disable_so_rtsc_init_fndecl_64458 rtsc_init fndecl 3-4 64458 NULL
151396 +disable_so_bg_inode_bitmap_ext3_group_desc_64471 bg_inode_bitmap ext3_group_desc 0 64471 NULL
151397 +disable_so_qla8044_wr_reg_indirect_fndecl_64475 qla8044_wr_reg_indirect fndecl 2-3 64475 NULL
151398 +disable_so_switch_time_wl18xx_cmd_channel_switch_64491 switch_time wl18xx_cmd_channel_switch 0 64491 NULL
151399 +disable_so_address_acpi_table_desc_64497 address acpi_table_desc 0 64497 NULL
151400 +disable_so_loading_timeout_vardecl_firmware_class_c_64498 loading_timeout vardecl_firmware_class.c 0 64498 NULL nohasharray
151401 +disable_so_ceph_aes_encrypt_fndecl_64498 ceph_aes_encrypt fndecl 2-6 64498 &disable_so_loading_timeout_vardecl_firmware_class_c_64498
151402 +disable_so_xfrm_state_addr_cmp_fndecl_64504 xfrm_state_addr_cmp fndecl 3 64504 NULL
151403 +disable_so_gc_timer_value___bridge_info_64506 gc_timer_value __bridge_info 0 64506 NULL
151404 +disable_so_x25_addr_aton_fndecl_64507 x25_addr_aton fndecl 0 64507 NULL
151405 +disable_so_nci_request_fndecl_64508 nci_request fndecl 0-4 64508 NULL
151406 +disable_so_ufs_get_de_namlen_fndecl_64510 ufs_get_de_namlen fndecl 0 64510 NULL
151407 +disable_so_crypto_blkcipher_encrypt_iv_fndecl_64517 crypto_blkcipher_encrypt_iv fndecl 0-4 64517 NULL
151408 +disable_so_bfa_fcs_lport_ns_gid_ft_response_fndecl_64527 bfa_fcs_lport_ns_gid_ft_response fndecl 4-5-6 64527 NULL
151409 +disable_so_memtype_devlog_memaddr16_devlog_fw_devlog_cmd_64529 memtype_devlog_memaddr16_devlog fw_devlog_cmd 0 64529 NULL
151410 +disable_so_osc_clock_deviation_drxd_state_64533 osc_clock_deviation drxd_state 0 64533 NULL
151411 +disable_so_mwl8k_cmd_del_mac_addr_fndecl_64540 mwl8k_cmd_del_mac_addr fndecl 0 64540 NULL
151412 +disable_so_sysctl_llc2_ack_timeout_vardecl_64541 sysctl_llc2_ack_timeout vardecl 0 64541 NULL
151413 +disable_so_dm_hash_init_fndecl_64547 dm_hash_init fndecl 0 64547 NULL
151414 +disable_so_setup_cluster_bitmap_fndecl_64549 setup_cluster_bitmap fndecl 4-5-6-7 64549 NULL
151415 +disable_so_regcache_rbtree_get_register_fndecl_64551 regcache_rbtree_get_register fndecl 0-3 64551 NULL
151416 +disable_so_seq_put_decimal_ll_fndecl_64554 seq_put_decimal_ll fndecl 3 64554 NULL
151417 +disable_so_do_timerfd_gettime_fndecl_64594 do_timerfd_gettime fndecl 1 64594 NULL
151418 +disable_so_ctrl_addr___cache_64596 ctrl_addr __cache 0 64596 NULL
151419 +disable_so_writepage_address_space_operations_64597 writepage address_space_operations 0 64597 NULL
151420 +disable_so_hcd_pci_runtime_suspend_fndecl_64602 hcd_pci_runtime_suspend fndecl 0 64602 NULL
151421 +disable_so_maxadj_clocksource_64615 maxadj clocksource 0 64615 NULL nohasharray
151422 +disable_so_delay_lms283gf05_seq_64615 delay lms283gf05_seq 0 64615 &disable_so_maxadj_clocksource_64615
151423 +disable_so_stv0900_get_lock_timeout_fndecl_64620 stv0900_get_lock_timeout fndecl 3 64620 NULL
151424 +disable_so_clk_div_tifm_sd_64621 clk_div tifm_sd 0 64621 NULL
151425 +disable_so_sleep_dvb_frontend_ops_64644 sleep dvb_frontend_ops 0 64644 NULL
151426 +disable_so_tuner_addr_au0828_board_64647 tuner_addr au0828_board 0 64647 NULL
151427 +disable_so_ds1305_get_time_fndecl_64652 ds1305_get_time fndecl 0 64652 NULL
151428 +disable_so_efx_soft_enable_interrupts_fndecl_64659 efx_soft_enable_interrupts fndecl 0 64659 NULL
151429 +disable_so_elements_bitmap_ip_64674 elements bitmap_ip 0 64674 NULL
151430 +disable_so_pcf8563_get_datetime_fndecl_64678 pcf8563_get_datetime fndecl 0 64678 NULL
151431 +disable_so_buf_dma_addr_slgt_desc_64694 buf_dma_addr slgt_desc 0 64694 NULL
151432 +disable_so_twl_aen_sync_time_fndecl_64703 twl_aen_sync_time fndecl 2 64703 NULL
151433 +disable_so_exit_signal_task_struct_64705 exit_signal task_struct 0 64705 NULL
151434 +disable_so_wm8804_runtime_resume_fndecl_64707 wm8804_runtime_resume fndecl 0 64707 NULL
151435 +disable_so_adis16334_set_freq_fndecl_64712 adis16334_set_freq fndecl 0 64712 NULL
151436 +disable_so_menf21bmc_wdt_settimeout_fndecl_64721 menf21bmc_wdt_settimeout fndecl 2-0 64721 NULL
151437 +disable_so_sec_pps_ktime_64728 sec pps_ktime 0 64728 NULL nohasharray
151438 +disable_so_virtual_tsc_khz_kvm_vcpu_arch_64728 virtual_tsc_khz kvm_vcpu_arch 0 64728 &disable_so_sec_pps_ktime_64728
151439 +disable_so_set_timeout_fndecl_64741 set_timeout fndecl 1 64741 NULL
151440 +disable_so_posix_timer_by_id_fndecl_64744 posix_timer_by_id fndecl 1 64744 NULL
151441 +disable_so_sclk_fb_div_pll_ct_64751 sclk_fb_div pll_ct 0 64751 NULL nohasharray
151442 +disable_so_add_msr_offset_fndecl_64751 add_msr_offset fndecl 1 64751 &disable_so_sclk_fb_div_pll_ct_64751
151443 +disable_so_il_get_active_dwell_time_fndecl_64753 il_get_active_dwell_time fndecl 0-3 64753 NULL
151444 +disable_so_crypto_cbc_decrypt_inplace_fndecl_64755 crypto_cbc_decrypt_inplace fndecl 0 64755 NULL
151445 +disable_so_undertime_cbq_class_64773 undertime cbq_class 0 64773 NULL nohasharray
151446 +disable_so_beacon_time_iwl_mac_data_ap_64773 beacon_time iwl_mac_data_ap 0 64773 &disable_so_undertime_cbq_class_64773
151447 +disable_so_gpio_to_desc_fndecl_64785 gpio_to_desc fndecl 1 64785 NULL nohasharray
151448 +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
151449 +disable_so_cherryview_rps_rpe_freq_fndecl_64792 cherryview_rps_rpe_freq fndecl 0 64792 NULL
151450 +disable_so_phys_addr_matrox_device_64795 phys_addr matrox_device 0 64795 NULL
151451 +disable_so_iwl_mvm_time_event_send_add_fndecl_64805 iwl_mvm_time_event_send_add fndecl 0 64805 NULL nohasharray
151452 +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
151453 +disable_so_hub_set_address_fndecl_64806 hub_set_address fndecl 2 64806 NULL
151454 +disable_so_tegra_slink_runtime_resume_fndecl_64822 tegra_slink_runtime_resume fndecl 0 64822 NULL
151455 +disable_so_head_hashfn_fndecl_64825 head_hashfn fndecl 0 64825 NULL
151456 +disable_so_time_queue_snd_seq_client_port_64827 time_queue snd_seq_client_port 0 64827 NULL
151457 +disable_so_bitmap_clear_ll_fndecl_64837 bitmap_clear_ll fndecl 0-2-3 64837 NULL
151458 +disable_so_dma_beacon_response_time_ath9k_ops_config_64844 dma_beacon_response_time ath9k_ops_config 0 64844 NULL
151459 +disable_so_aic_cal_start_time_ath9k_hw_aic_64848 aic_cal_start_time ath9k_hw_aic 0 64848 NULL
151460 +disable_so_dram_freq_ast2300_dram_param_64872 dram_freq ast2300_dram_param 0 64872 NULL
151461 +disable_so_uv_rtc_unset_timer_fndecl_64879 uv_rtc_unset_timer fndecl 1 64879 NULL
151462 +disable_so_xclkpagefaultdelay_pll_ct_64883 xclkpagefaultdelay pll_ct 0 64883 NULL
151463 +disable_so_ipvs_mt_addrcmp_fndecl_64884 ipvs_mt_addrcmp fndecl 4 64884 NULL
151464 +disable_so_base_addr_adf_bar_64885 base_addr adf_bar 0 64885 NULL
151465 +disable_so_ctimensec_fuse_attr_64891 ctimensec fuse_attr 0 64891 NULL
151466 +disable_so_ims_pcu_ofn_bit_show_fndecl_64893 ims_pcu_ofn_bit_show fndecl 0 64893 NULL
151467 +disable_so_regvalue__pll_div_64897 regvalue _pll_div 0 64897 NULL
151468 +disable_so_mode_ata_timing_64902 mode ata_timing 0 64902 NULL
151469 +disable_so_size_mtrr_sentry_64908 size mtrr_sentry 0 64908 NULL
151470 +disable_so_i2c_addr_dibx000_i2c_master_64923 i2c_addr dibx000_i2c_master 0 64923 NULL
151471 +disable_so_go7007_usb_read_interrupt_fndecl_64943 go7007_usb_read_interrupt fndecl 0 64943 NULL
151472 +disable_so_db_page_addr_ocrdma_create_srq_uresp_64946 db_page_addr ocrdma_create_srq_uresp 0 64946 NULL
151473 +disable_so_resolution_snd_timer_hardware_64953 resolution snd_timer_hardware 0 64953 NULL
151474 +disable_so___virt_addr_valid_fndecl_64955 __virt_addr_valid fndecl 1 64955 NULL
151475 +disable_so_nilfs_btree_insert_fndecl_64974 nilfs_btree_insert fndecl 0-2 64974 NULL
151476 +disable_so_nearest_clock_vml_sys_64980 nearest_clock vml_sys 2-0 64980 NULL
151477 +disable_so_crypto_cmac_module_init_fndecl_64981 crypto_cmac_module_init fndecl 0 64981 NULL
151478 +disable_so_cx23885_set_freq_via_ops_fndecl_64991 cx23885_set_freq_via_ops fndecl 0 64991 NULL
151479 +disable_so_hfdiv_code_dib0090_pll_64992 hfdiv_code dib0090_pll 0 64992 NULL
151480 +disable_so_phonet_address_get_fndecl_65002 phonet_address_get fndecl 0-2 65002 NULL
151481 +disable_so_xtime_sec_timekeeper_65003 xtime_sec timekeeper 0 65003 NULL
151482 +disable_so_fll_outdiv__fll_div_65007 fll_outdiv _fll_div 0 65007 NULL
151483 +disable_so_spi_max_frequency_ti_qspi_65008 spi_max_frequency ti_qspi 0 65008 NULL
151484 +disable_so_switch_time_iwl6000_channel_switch_cmd_65010 switch_time iwl6000_channel_switch_cmd 0 65010 NULL
151485 +disable_so_timeout_usdhi6_host_65012 timeout usdhi6_host 0 65012 NULL nohasharray
151486 +disable_so_dirtied_time_when_inode_65012 dirtied_time_when inode 0 65012 &disable_so_timeout_usdhi6_host_65012
151487 +disable_so_sys_settimeofday_fndecl_65021 sys_settimeofday fndecl 0 65021 NULL
151488 +disable_so_dummy_clock_read_fndecl_65029 dummy_clock_read fndecl 0 65029 NULL
151489 +disable_so_bitmap_load_fndecl_65032 bitmap_load fndecl 0 65032 NULL
151490 +disable_so_crypto_register_aead_fndecl_65065 crypto_register_aead fndecl 0 65065 NULL
151491 +disable_so_clock_frequency_sc18is602_platform_data_65066 clock_frequency sc18is602_platform_data 0 65066 NULL
151492 +disable_so_zd1201_get_freq_fndecl_65079 zd1201_get_freq fndecl 0 65079 NULL
151493 +disable_so_test_bitmaps_fndecl_65080 test_bitmaps fndecl 0 65080 NULL
151494 +disable_so_before_ctime_nsec_nfsd4_change_info_65085 before_ctime_nsec nfsd4_change_info 0 65085 NULL
151495 +disable_so_evtbd_addr_lo_host_cmd_ds_pcie_details_65086 evtbd_addr_lo host_cmd_ds_pcie_details 0 65086 NULL
151496 +disable_so_cursor_addr_gma_crtc_65091 cursor_addr gma_crtc 0 65091 NULL
151497 +disable_so_atomic_set_property_drm_crtc_funcs_65096 atomic_set_property drm_crtc_funcs 0-4 65096 NULL
151498 +disable_so_add_timer_on_fndecl_65097 add_timer_on fndecl 2 65097 NULL
151499 +disable_so_ccp_sha_final_fndecl_65104 ccp_sha_final fndecl 0 65104 NULL
151500 +disable_so_ip_vs_dbg_addr_fndecl_65105 ip_vs_dbg_addr fndecl 1 65105 NULL
151501 +disable_so_gl_hold_time_gfs2_glock_65107 gl_hold_time gfs2_glock 0 65107 NULL
151502 +disable_so_crypto_shash_update_fndecl_65113 crypto_shash_update fndecl 0-3 65113 NULL
151503 +disable_so_sleep_wake_pci_platform_pm_ops_65121 sleep_wake pci_platform_pm_ops 0 65121 NULL
151504 +disable_so_snd_hdsp_info_clock_source_fndecl_65123 snd_hdsp_info_clock_source fndecl 0 65123 NULL
151505 +disable_so_trace_clock_global_fndecl_65145 trace_clock_global fndecl 0 65145 NULL
151506 +disable_so_timestamp_iwl_rx_phy_info_65153 timestamp iwl_rx_phy_info 0 65153 NULL
151507 +disable_so_d_btimer_xfs_disk_dquot_65155 d_btimer xfs_disk_dquot 0 65155 NULL
151508 +disable_so_mthca_mr_alloc_phys_fndecl_65161 mthca_mr_alloc_phys fndecl 7-5-2-4-0 65161 NULL
151509 +disable_so_var_to_timing_fndecl_65170 var_to_timing fndecl 2-3 65170 NULL
151510 +disable_so_p2div_pmu1_plltab_entry_65173 p2div pmu1_plltab_entry 0 65173 NULL nohasharray
151511 +disable_so_kszphy_ack_interrupt_fndecl_65173 kszphy_ack_interrupt fndecl 0 65173 &disable_so_p2div_pmu1_plltab_entry_65173
151512 +disable_so_timeout_mgsl_struct_65176 timeout mgsl_struct 0 65176 NULL nohasharray
151513 +disable_so_amd_uncore_attr_show_cpumask_fndecl_65176 amd_uncore_attr_show_cpumask fndecl 0 65176 &disable_so_timeout_mgsl_struct_65176
151514 +disable_so_padata_register_cpumask_notifier_fndecl_65178 padata_register_cpumask_notifier fndecl 0 65178 NULL
151515 +disable_so_bit_clear_fndecl_65181 bit_clear fndecl 3-4-5-6 65181 NULL
151516 +disable_so_addr_wil_fw_data_gw4_65184 addr wil_fw_data_gw4 0 65184 NULL
151517 +disable_so_phy_addr_skge_hw_65197 phy_addr skge_hw 0 65197 NULL
151518 +disable_so_xen_cpuid_xenpf_pcpuinfo_65200 xen_cpuid xenpf_pcpuinfo 0 65200 NULL
151519 +disable_so_vsync_v4l2_bt_timings_65208 vsync v4l2_bt_timings 0 65208 NULL nohasharray
151520 +disable_so_vmcb_msrpm_nested_state_65208 vmcb_msrpm nested_state 0 65208 &disable_so_vsync_v4l2_bt_timings_65208
151521 +disable_so_determine_event_timeout_rsi_hw_65216 determine_event_timeout rsi_hw 0 65216 NULL
151522 +disable_so_rax_kvm_regs_65218 rax kvm_regs 0 65218 NULL
151523 +disable_so_tms_utime_compat_tms_65221 tms_utime compat_tms 0 65221 NULL
151524 +disable_so_ip_vs_ftp_get_addrport_fndecl_65224 ip_vs_ftp_get_addrport fndecl 4 65224 NULL
151525 +disable_so_dclk_radeon_uvd_clock_voltage_dependency_entry_65235 dclk radeon_uvd_clock_voltage_dependency_entry 0 65235 NULL
151526 +disable_so_sin6_port_sockaddr_in6_65238 sin6_port sockaddr_in6 0 65238 NULL
151527 +disable_so_mtrr_del_page_fndecl_65239 mtrr_del_page fndecl 2-3 65239 NULL
151528 +disable_so_timestamp_sec_rt2x00dump_hdr_65245 timestamp_sec rt2x00dump_hdr 0 65245 NULL
151529 +disable_so_snd_interval_mulkdiv_fndecl_65264 snd_interval_mulkdiv fndecl 2 65264 NULL
151530 +disable_so_ktime_sec_timekeeper_65270 ktime_sec timekeeper 0 65270 NULL nohasharray
151531 +disable_so_pid_fcgs_gidft_resp_s_65270 pid fcgs_gidft_resp_s 0 65270 &disable_so_ktime_sec_timekeeper_65270
151532 +disable_so_mmc_set_signal_voltage_fndecl_65277 mmc_set_signal_voltage fndecl 0-3 65277 NULL
151533 +disable_so_addr_lo_pm4_query_status_65283 addr_lo pm4_query_status 0 65283 NULL
151534 +disable_so_wep_interrupt_read_fndecl_65287 wep_interrupt_read fndecl 3-0 65287 NULL
151535 +disable_so_timeout_qib_qp_65289 timeout qib_qp 0 65289 NULL
151536 +disable_so_cpuid_edx_fndecl_65291 cpuid_edx fndecl 0 65291 NULL
151537 +disable_so_q2_addr_high_nes_qp_context_65298 q2_addr_high nes_qp_context 0 65298 NULL
151538 +disable_so_addr_f7188x_sio_65304 addr f7188x_sio 0 65304 NULL
151539 +disable_so_st_mtime___old_kernel_stat_65306 st_mtime __old_kernel_stat 0 65306 NULL
151540 +disable_so_radeon_fence_wait_seq_timeout_fndecl_65307 radeon_fence_wait_seq_timeout fndecl 4-0 65307 NULL
151541 +disable_so_runtime_suspend_power_mode_cyapa_65317 runtime_suspend_power_mode cyapa 0 65317 NULL
151542 +disable_so_ieee80211_crypto_ccmp_encrypt_fndecl_65319 ieee80211_crypto_ccmp_encrypt fndecl 2 65319 NULL
151543 +disable_so_bbaddr_drm_i915_error_ring_65323 bbaddr drm_i915_error_ring 0 65323 NULL
151544 +disable_so_nmi_timer_stop_cpu_fndecl_65325 nmi_timer_stop_cpu fndecl 1 65325 NULL
151545 +disable_so_crypto_aead_encrypt_fndecl_65326 crypto_aead_encrypt fndecl 0 65326 NULL
151546 +disable_so_d_rtbtimer_fs_disk_quota_65332 d_rtbtimer fs_disk_quota 0 65332 NULL
151547 +disable_so_si_calculate_cac_wintime_fndecl_65336 si_calculate_cac_wintime fndecl 0 65336 NULL
151548 +disable_so_baseaddr_l_mvumi_sgl_65375 baseaddr_l mvumi_sgl 0 65375 NULL
151549 +disable_so_current_flash_timeout_max77693_led_device_65379 current_flash_timeout max77693_led_device 0 65379 NULL
151550 +disable_so_shunt_div_ina2xx_config_65385 shunt_div ina2xx_config 0 65385 NULL
151551 +disable_so_waiting_set_timer_fndecl_65387 waiting_set_timer fndecl 2 65387 NULL
151552 +disable_so_tms_cutime_tms_65396 tms_cutime tms 0 65396 NULL
151553 +disable_so_wl1271_acx_rx_msdu_life_time_fndecl_65398 wl1271_acx_rx_msdu_life_time fndecl 0 65398 NULL
151554 +disable_so_phy_addr_ax88172a_private_65403 phy_addr ax88172a_private 0 65403 NULL
151555 +disable_so_vm_exit_msr_store_addr_vmcs12_65409 vm_exit_msr_store_addr vmcs12 0 65409 NULL
151556 +disable_so_reorder_timeout_l2tp_session_cfg_65412 reorder_timeout l2tp_session_cfg 0 65412 NULL nohasharray
151557 +disable_so_bit_spin_lock_fndecl_65412 bit_spin_lock fndecl 1 65412 &disable_so_reorder_timeout_l2tp_session_cfg_65412
151558 +disable_so_data_address_mspro_param_register_65413 data_address mspro_param_register 0 65413 NULL
151559 +disable_so_addr_hwsq_reg_65417 addr hwsq_reg 0 65417 NULL
151560 +disable_so_nla_put_u64_fndecl_65419 nla_put_u64 fndecl 3-0 65419 NULL
151561 +disable_so_dma_addr_vb2_dc_buf_65420 dma_addr vb2_dc_buf 0 65420 NULL
151562 +disable_so_snd_timer_stop_fndecl_65441 snd_timer_stop fndecl 0 65441 NULL
151563 +disable_so_down_timeout_fndecl_65445 down_timeout fndecl 2-0 65445 NULL
151564 +disable_so_sys_timer_gettime_fndecl_65465 sys_timer_gettime fndecl 1 65465 NULL
151565 +disable_so_pnp_printf_fndecl_65468 pnp_printf fndecl 0 65468 NULL
151566 +disable_so_write_reg_cc770_priv_65479 write_reg cc770_priv 3 65479 NULL
151567 +disable_so_create_time_stateowner_id_65480 create_time stateowner_id 0 65480 NULL
151568 +disable_so_q2_addr_low_nes_qp_context_65481 q2_addr_low nes_qp_context 0 65481 NULL
151569 +disable_so_nvme_io_timeout_vardecl_65489 nvme_io_timeout vardecl 0 65489 NULL nohasharray
151570 +disable_so_index_nilfs_btree_readahead_info_65489 index nilfs_btree_readahead_info 0 65489 &disable_so_nvme_io_timeout_vardecl_65489
151571 +disable_so_i_uid_f2fs_inode_65496 i_uid f2fs_inode 0 65496 NULL
151572 +disable_so_enc_cd_paddr_qat_alg_aead_ctx_65505 enc_cd_paddr qat_alg_aead_ctx 0 65505 NULL
151573 +disable_so_s5m_rtc_set_time_fndecl_65518 s5m_rtc_set_time fndecl 0 65518 NULL
151574 +disable_so_addr_w83627hf_data_65526 addr w83627hf_data 0 65526 NULL
151575 +disable_so_si_pt_regs_65527 si pt_regs 0 65527 NULL
151576 +enable_so_rts_threshold_wiphy_15170 rts_threshold wiphy 0 15170 NULL
151577 +enable_so_value_iw_param_65472 value iw_param 0 65472 NULL
151578 +enable_so_value_acpi_object_integer_44755 value acpi_object_integer 0 44755 NULL
151579 +enable_so_idx_ieee80211_tx_rate_64646 idx ieee80211_tx_rate 0 64646 NULL
151580 +enable_so_rs_get_adjacent_rate_fndecl_28334 rs_get_adjacent_rate fndecl 0-2 28334 NULL
151581 +enable_so_index_rs_rate_53 index rs_rate 0 53 NULL
151582 +enable_so_l1_xfs_bmbt_rec_host_22094 l1 xfs_bmbt_rec_host 0 22094 NULL
151583 +enable_so_l0_xfs_bmbt_rec_host_34805 l0 xfs_bmbt_rec_host 0 34805 NULL
151584 +enable_so_max_scsi_cmds_megasas_instance_35835 max_scsi_cmds megasas_instance 0 35835 NULL
151585 +enable_so_throttlequeuedepth_megasas_instance_42316 throttlequeuedepth megasas_instance 0 42316 NULL
151586 +enable_so_max_fw_cmds_megasas_instance_53309 max_fw_cmds megasas_instance 0 53309 NULL
151587 +enable_so_max_num_sge_megasas_instance_55755 max_num_sge megasas_instance 0 55755 NULL
151588 +enable_so_max_sectors_per_req_megasas_instance_56408 max_sectors_per_req megasas_instance 0 56408 NULL
151589 +enable_so_max_mfi_cmds_megasas_instance_19731 max_mfi_cmds megasas_instance 0 19731 NULL
151590 +enable_so_read_fw_status_reg_megasas_instance_template_13572 read_fw_status_reg megasas_instance_template 0 13572 NULL
151591 +enable_so_eip_x86_emulate_ctxt_12354 eip x86_emulate_ctxt 0 12354 NULL
151592 +enable_so_next_rip_x86_instruction_info_56868 next_rip x86_instruction_info 0 56868 NULL
151593 +enable_so_exit_int_info_vmcb_control_area_18357 exit_int_info vmcb_control_area 0 18357 NULL
151594 +enable_so_exit_info_1_vmcb_control_area_20200 exit_info_1 vmcb_control_area 0 20200 NULL
151595 +enable_so_event_inj_vmcb_control_area_23434 event_inj vmcb_control_area 0 23434 NULL
151596 +enable_so_iopm_base_pa_vmcb_control_area_57998 iopm_base_pa vmcb_control_area 0 57998 NULL
151597 +enable_so_i_size_lo_ext4_inode_40153 i_size_lo ext4_inode 0 40153 NULL
151598 +enable_so_i_size_high_ext4_inode_18545 i_size_high ext4_inode 0 18545 NULL
151599 +enable_so_nr_kvm_queued_interrupt_34927 nr kvm_queued_interrupt 0 34927 NULL
151600 +enable_so_last_used_idx_vhost_virtqueue_40059 last_used_idx vhost_virtqueue 0 40059 NULL
151601 +enable_so___load_segment_descriptor_fndecl_30833 __load_segment_descriptor fndecl 2-4 30833 NULL
151602 +enable_so_resource_size_38580 resource_size nvkm_device_func 0 38580 NULL
151603 +enable_so_rate_n_flags_iwlagn_tx_resp_63401 rate_n_flags iwlagn_tx_resp 0 63401 NULL
151604 +enable_so_iwlagn_hwrate_to_mac80211_idx_fndecl_57485 iwlagn_hwrate_to_mac80211_idx fndecl 0-1 57485 NULL
151605 +enable_so_rate_n_flags_iwl_rx_phy_info_45542 rate_n_flags iwl_rx_phy_info 0 45542 NULL
151606 +enable_so_deh_location_reiserfs_de_head_7682 deh_location reiserfs_de_head 0 7682 NULL
151607 +enable_so_deh_offset_reiserfs_de_head_42314 deh_offset reiserfs_de_head 0 42314 NULL
151608 +enable_so_dsack_tcp_options_received_27706 dsack tcp_options_received 0 27706 NULL
151609 +enable_so_inbufBits_bunzip_data_13788 inbufBits bunzip_data 0 13788 NULL
151610 +enable_so_i_ino_inode_8428 i_ino inode 0 8428 NULL
151611 diff --git a/tools/gcc/size_overflow_plugin/generate_size_overflow_hash.sh b/tools/gcc/size_overflow_plugin/generate_size_overflow_hash.sh
151612 new file mode 100644
151613 index 0000000..be9724d
151614 --- /dev/null
151615 +++ b/tools/gcc/size_overflow_plugin/generate_size_overflow_hash.sh
151616 @@ -0,0 +1,103 @@
151617 +#!/bin/bash
151618 +
151619 +# This script generates the hash table (size_overflow_hash.h) for the size_overflow gcc plugin (size_overflow_plugin.c).
151620 +
151621 +header1="size_overflow_hash.h"
151622 +database="size_overflow_hash.data"
151623 +n=65536
151624 +hashtable_name="size_overflow_hash"
151625 +
151626 +usage() {
151627 +cat <<EOF
151628 +usage: $0 options
151629 +OPTIONS:
151630 + -h|--help help
151631 + -o header file
151632 + -d database file
151633 + -n hash array size
151634 + -s name of the hash table
151635 +EOF
151636 + return 0
151637 +}
151638 +
151639 +while true
151640 +do
151641 + case "$1" in
151642 + -h|--help) usage && exit 0;;
151643 + -n) n=$2; shift 2;;
151644 + -o) header1="$2"; shift 2;;
151645 + -d) database="$2"; shift 2;;
151646 + -s) hashtable_name="$2"; shift 2;;
151647 + --) shift 1; break ;;
151648 + *) break ;;
151649 + esac
151650 +done
151651 +
151652 +create_defines() {
151653 + for i in `seq 0 31`
151654 + do
151655 + echo -e "#define PARAM"$i" (1U << "$i")" >> "$header1"
151656 + done
151657 + echo >> "$header1"
151658 +}
151659 +
151660 +create_structs() {
151661 + rm -f "$header1"
151662 +
151663 + create_defines
151664 +
151665 + cat "$database" | while read data
151666 + do
151667 + data_array=($data)
151668 + struct_hash_name="${data_array[0]}"
151669 + funcn="${data_array[1]}"
151670 + context="${data_array[2]}"
151671 + params="${data_array[3]}"
151672 + next="${data_array[5]}"
151673 +
151674 + echo "const struct size_overflow_hash $struct_hash_name = {" >> "$header1"
151675 +
151676 + echo -e "\t.next\t= $next,\n\t.name\t= \"$funcn\",\n\t.context\t= \"$context\"," >> "$header1"
151677 + echo -en "\t.param\t= " >> "$header1"
151678 + line=
151679 + for param_num in ${params//-/ };
151680 + do
151681 + line="${line}PARAM"$param_num"|"
151682 + done
151683 +
151684 + echo -e "${line%?},\n};\n" >> "$header1"
151685 + done
151686 +}
151687 +
151688 +create_headers() {
151689 + echo "const struct size_overflow_hash * const $hashtable_name[$n] = {" >> "$header1"
151690 +}
151691 +
151692 +create_array_elements() {
151693 + index=0
151694 + grep -v "nohasharray" $database | sort -n -k 5 | while read data
151695 + do
151696 + data_array=($data)
151697 + i="${data_array[4]}"
151698 + hash="${data_array[0]}"
151699 + while [[ $index -lt $i ]]
151700 + do
151701 + echo -e "\t["$index"]\t= NULL," >> "$header1"
151702 + index=$(($index + 1))
151703 + done
151704 + index=$(($index + 1))
151705 + echo -e "\t["$i"]\t= &"$hash"," >> "$header1"
151706 + done
151707 + echo '};' >> $header1
151708 +}
151709 +
151710 +size_overflow_plugin_dir=`dirname $header1`
151711 +if [ "$size_overflow_plugin_dir" != '.' ]; then
151712 + mkdir -p "$size_overflow_plugin_dir" 2> /dev/null
151713 +fi
151714 +
151715 +create_structs
151716 +create_headers
151717 +create_array_elements
151718 +
151719 +exit 0
151720 diff --git a/tools/gcc/size_overflow_plugin/insert_size_overflow_asm.c b/tools/gcc/size_overflow_plugin/insert_size_overflow_asm.c
151721 new file mode 100644
151722 index 0000000..5aabc22
151723 --- /dev/null
151724 +++ b/tools/gcc/size_overflow_plugin/insert_size_overflow_asm.c
151725 @@ -0,0 +1,369 @@
151726 +/*
151727 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
151728 + * Licensed under the GPL v2, or (at your option) v3
151729 + *
151730 + * Homepage:
151731 + * https://github.com/ephox-gcc-plugins/size_overflow
151732 + *
151733 + * Documentation:
151734 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
151735 + *
151736 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
151737 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
151738 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
151739 + *
151740 + * Usage:
151741 + * $ make
151742 + * $ make run
151743 + */
151744 +
151745 +#include "size_overflow.h"
151746 +
151747 +// Data for the size_overflow asm stmt
151748 +struct asm_data {
151749 + // call or return stmt with our attributes
151750 + gimple target_stmt;
151751 + // def_stmt of the marked arg
151752 + gimple def_stmt;
151753 + // size_overflow asm rhs
151754 + tree input;
151755 + // the output (lhs) of the size_overflow asm is the marked arg
151756 + tree output;
151757 + // marked arg number (0 for return values)
151758 + unsigned int argnum;
151759 + // intentional mark type
151760 + enum intentional_mark intentional_mark;
151761 +};
151762 +
151763 +static void __unused print_asm_data(struct asm_data *asm_data)
151764 +{
151765 + fprintf(stderr, "-----------------------\nprint_asm_data:\n");
151766 +
151767 + fprintf(stderr, "def_stmt\n");
151768 + debug_gimple_stmt(asm_data->def_stmt);
151769 + fprintf(stderr, "target_stmt\n");
151770 + debug_gimple_stmt(asm_data->target_stmt);
151771 + fprintf(stderr, "output\n");
151772 + debug_tree(asm_data->output);
151773 + fprintf(stderr, "input\n");
151774 + debug_tree(asm_data->input);
151775 +}
151776 +
151777 +static const char *convert_mark_to_str(enum intentional_mark mark)
151778 +{
151779 + switch (mark) {
151780 + case MARK_NO:
151781 + return OK_ASM_STR;
151782 + case MARK_YES:
151783 + return YES_ASM_STR;
151784 + case MARK_END_INTENTIONAL:
151785 + return END_INTENTIONAL_ASM_STR;
151786 + case MARK_TURN_OFF:
151787 + return TURN_OFF_ASM_STR;
151788 + }
151789 + gcc_unreachable();
151790 +}
151791 +
151792 +static char *create_asm_comment(struct asm_data *asm_data, const char *mark_str)
151793 +{
151794 + const char *fn_name;
151795 + char *asm_comment;
151796 + unsigned int len;
151797 +
151798 + if (gimple_code(asm_data->target_stmt) == GIMPLE_RETURN)
151799 + fn_name = DECL_NAME_POINTER(current_function_decl);
151800 + else
151801 + fn_name = DECL_NAME_POINTER(gimple_call_fndecl(asm_data->target_stmt));
151802 +
151803 + len = asprintf(&asm_comment, "%s %s %u", mark_str, fn_name, asm_data->argnum);
151804 + gcc_assert(len > 0);
151805 +
151806 + return asm_comment;
151807 +}
151808 +
151809 +#if BUILDING_GCC_VERSION <= 4007
151810 +static VEC(tree, gc) *create_asm_io_list(tree string, tree io)
151811 +#else
151812 +static vec<tree, va_gc> *create_asm_io_list(tree string, tree io)
151813 +#endif
151814 +{
151815 + tree list;
151816 +#if BUILDING_GCC_VERSION <= 4007
151817 + VEC(tree, gc) *vec_list = NULL;
151818 +#else
151819 + vec<tree, va_gc> *vec_list = NULL;
151820 +#endif
151821 +
151822 + list = build_tree_list(NULL_TREE, string);
151823 + list = chainon(NULL_TREE, build_tree_list(list, io));
151824 +#if BUILDING_GCC_VERSION <= 4007
151825 + VEC_safe_push(tree, gc, vec_list, list);
151826 +#else
151827 + vec_safe_push(vec_list, list);
151828 +#endif
151829 + return vec_list;
151830 +}
151831 +
151832 +static void create_so_asm_stmt(struct asm_data *asm_data)
151833 +{
151834 + char *asm_comment;
151835 + const char *mark_str;
151836 + gasm *asm_stmt;
151837 + gimple_stmt_iterator gsi;
151838 + tree str_input, str_output;
151839 +#if BUILDING_GCC_VERSION <= 4007
151840 + VEC(tree, gc) *input = NULL, *output = NULL;
151841 +#else
151842 + vec<tree, va_gc> *input = NULL, *output = NULL;
151843 +#endif
151844 +
151845 + mark_str = convert_mark_to_str(asm_data->intentional_mark);
151846 + asm_comment = create_asm_comment(asm_data, mark_str);
151847 +
151848 + str_input = build_string(2, "0");
151849 + input = create_asm_io_list(str_input, asm_data->input);
151850 + str_output = build_string(4, "=rm");
151851 + output = create_asm_io_list(str_output, asm_data->output);
151852 +
151853 + asm_stmt = as_a_gasm(gimple_build_asm_vec(asm_comment, input, output, NULL, NULL));
151854 + gimple_asm_set_volatile(asm_stmt, true);
151855 +
151856 + gsi = gsi_for_stmt(asm_data->def_stmt);
151857 + gsi_insert_after(&gsi, asm_stmt, GSI_NEW_STMT);
151858 +
151859 + SSA_NAME_DEF_STMT(asm_data->output) = asm_stmt;
151860 +
151861 + free(asm_comment);
151862 +}
151863 +
151864 +static void check_size_overflow_asm(struct asm_data *asm_data)
151865 +{
151866 + enum intentional_mark old_intentional_mark = get_so_asm_type(asm_data->def_stmt);
151867 +
151868 + if (old_intentional_mark == asm_data->intentional_mark)
151869 + return;
151870 + if (asm_data->intentional_mark == MARK_NO)
151871 + return;
151872 +
151873 + print_intentional_mark(old_intentional_mark);
151874 + print_intentional_mark(asm_data->intentional_mark);
151875 + gcc_unreachable();
151876 +}
151877 +
151878 +static tree get_so_asm_output(struct asm_data *asm_data)
151879 +{
151880 + gimple stmt = asm_data->target_stmt;
151881 + unsigned int argnum = asm_data->argnum;
151882 +
151883 + switch (gimple_code(stmt)) {
151884 + case GIMPLE_RETURN:
151885 + gcc_assert(argnum == 0);
151886 + return gimple_return_retval(as_a_greturn(stmt));
151887 + case GIMPLE_CALL:
151888 + gcc_assert(argnum != 0);
151889 + gcc_assert(gimple_call_num_args(stmt) >= argnum);
151890 + return gimple_call_arg(stmt, argnum - 1);
151891 + default:
151892 + debug_gimple_stmt(stmt);
151893 + gcc_unreachable();
151894 + }
151895 +}
151896 +
151897 +static tree get_so_asm_input(struct asm_data *asm_data)
151898 +{
151899 + gassign *assign;
151900 + tree output_type, new_var;
151901 + gimple_stmt_iterator gsi;
151902 +
151903 + output_type = TREE_TYPE(asm_data->output);
151904 + new_var = create_new_var(output_type);
151905 +
151906 + assign = gimple_build_assign(new_var, asm_data->output);
151907 + gimple_assign_set_lhs(assign, make_ssa_name(new_var, assign));
151908 +
151909 + gsi = gsi_for_stmt(asm_data->target_stmt);
151910 + gsi_insert_before(&gsi, assign, GSI_NEW_STMT);
151911 +
151912 + asm_data->def_stmt = assign;
151913 +
151914 + new_var = create_new_var(output_type);
151915 + asm_data->output = make_ssa_name(new_var, asm_data->target_stmt);
151916 +
151917 + return gimple_assign_lhs(assign);
151918 +}
151919 +
151920 +static void set_so_asm_input_target_stmt(struct asm_data *asm_data)
151921 +{
151922 + switch (gimple_code(asm_data->target_stmt)) {
151923 + case GIMPLE_CALL:
151924 + gimple_call_set_arg(asm_data->target_stmt, asm_data->argnum - 1, asm_data->output);
151925 + break;
151926 + case GIMPLE_RETURN:
151927 + gimple_return_set_retval(as_a_greturn(asm_data->target_stmt), asm_data->output);
151928 + break;
151929 + default:
151930 + debug_gimple_stmt(asm_data->target_stmt);
151931 + gcc_unreachable();
151932 + }
151933 +
151934 + update_stmt(asm_data->def_stmt);
151935 +}
151936 +
151937 +/* This is the gimple part of searching for a missing size_overflow attribute. If the intentional_overflow attribute type
151938 + * is of the right kind create the appropriate size_overflow asm stmts:
151939 + * __asm__("# size_overflow MARK_END_INTENTIONAL" : =rm" D.3344_8 : "0" cicus.4_16);
151940 + * __asm__("# size_overflow MARK_NO" : =rm" cicus.4_16 : "0" size_1(D));
151941 + */
151942 +static void __insert_size_overflow_asm(gimple stmt, unsigned int argnum, enum intentional_mark intentional_mark)
151943 +{
151944 + struct asm_data asm_data;
151945 +
151946 + asm_data.target_stmt = stmt;
151947 + asm_data.argnum = argnum;
151948 + asm_data.intentional_mark = intentional_mark;
151949 +
151950 + asm_data.output = get_so_asm_output(&asm_data);
151951 + if (asm_data.output == NULL_TREE)
151952 + return;
151953 + if (is_gimple_constant(asm_data.output))
151954 + return;
151955 + if (skip_types(asm_data.output))
151956 + return;
151957 +
151958 + asm_data.def_stmt = get_def_stmt(asm_data.output);
151959 + if (is_size_overflow_asm(asm_data.def_stmt)) {
151960 + check_size_overflow_asm(&asm_data);
151961 + return;
151962 + }
151963 +
151964 + asm_data.input = get_so_asm_input(&asm_data);
151965 +
151966 + create_so_asm_stmt(&asm_data);
151967 + set_so_asm_input_target_stmt(&asm_data);
151968 +
151969 + update_stmt(asm_data.def_stmt);
151970 + update_stmt(asm_data.target_stmt);
151971 +}
151972 +
151973 +// Determine the correct arg index and arg and insert the asm stmt to mark the stmt.
151974 +static void insert_so_asm_by_so_attr(gimple stmt, unsigned int orig_argnum)
151975 +{
151976 + if (orig_argnum == 0 && gimple_code(stmt) == GIMPLE_RETURN) {
151977 + __insert_size_overflow_asm(stmt, 0, MARK_NO);
151978 + return;
151979 + }
151980 +
151981 + if (orig_argnum != 0 && gimple_code(stmt) == GIMPLE_CALL)
151982 + __insert_size_overflow_asm(stmt, orig_argnum, MARK_NO);
151983 +}
151984 +
151985 +// If a function arg or the return value is marked by the size_overflow attribute then set its index in the array.
151986 +static void set_argnum_attribute(const_tree attr, bool *argnums)
151987 +{
151988 + unsigned int argnum;
151989 + tree attr_value;
151990 +
151991 + gcc_assert(attr);
151992 + for (attr_value = TREE_VALUE(attr); attr_value; attr_value = TREE_CHAIN(attr_value)) {
151993 + argnum = (unsigned int)tree_to_uhwi(TREE_VALUE(attr_value));
151994 + argnums[argnum] = true;
151995 + }
151996 +}
151997 +
151998 +// Check whether the arguments are marked by the size_overflow attribute.
151999 +static void search_interesting_so_args(tree fndecl, bool *argnums)
152000 +{
152001 + const_tree attr;
152002 +
152003 + attr = get_attribute("size_overflow", fndecl);
152004 + if (attr)
152005 + set_argnum_attribute(attr, argnums);
152006 +}
152007 +
152008 +static enum intentional_mark handle_intentional_attr(gimple stmt, unsigned int argnum)
152009 +{
152010 + const_tree fndecl;
152011 + enum intentional_mark mark;
152012 +
152013 + mark = check_intentional_attribute(stmt, argnum);
152014 + if (mark == MARK_NO)
152015 + return MARK_NO;
152016 + if (gimple_code(stmt) == GIMPLE_RETURN)
152017 + fndecl = current_function_decl;
152018 + else
152019 + fndecl = gimple_call_fndecl(stmt);
152020 + if (fndecl == NULL_TREE && !get_size_overflow_hash_entry_tree(fndecl, argnum, DISABLE_SIZE_OVERFLOW))
152021 + return MARK_NO;
152022 + __insert_size_overflow_asm(stmt, argnum, mark);
152023 + return mark;
152024 +}
152025 +
152026 +static void handle_size_overflow_attr_ret(greturn *stmt)
152027 +{
152028 + enum intentional_mark mark;
152029 + bool orig_argnums[MAX_PARAM + 1] = {false};
152030 +
152031 + search_interesting_so_args(get_orig_fndecl(current_function_decl), (bool *) &orig_argnums);
152032 +
152033 + mark = handle_intentional_attr(stmt, 0);
152034 + if (mark == MARK_NO && orig_argnums[0])
152035 + insert_so_asm_by_so_attr(stmt, 0);
152036 +}
152037 +
152038 +// If the argument(s) of the callee function are marked by an attribute then mark the call stmt with an asm stmt
152039 +static void handle_size_overflow_attr_call(gcall *stmt)
152040 +{
152041 + tree fndecl;
152042 + unsigned int argnum;
152043 + bool orig_argnums[MAX_PARAM + 1] = {false};
152044 +
152045 + fndecl = get_interesting_orig_fndecl_from_stmt(stmt);
152046 + if (fndecl == NULL_TREE)
152047 + return;
152048 + if (DECL_BUILT_IN(fndecl))
152049 + return;
152050 +
152051 + search_interesting_so_args(fndecl, (bool *) &orig_argnums);
152052 +
152053 + for (argnum = 1; argnum <= gimple_call_num_args(stmt); argnum++) {
152054 + enum intentional_mark mark = handle_intentional_attr(stmt, argnum);
152055 +
152056 + if (mark == MARK_NO && !is_vararg(fndecl, argnum) && orig_argnums[argnum])
152057 + insert_so_asm_by_so_attr(stmt, argnum);
152058 + }
152059 +}
152060 +
152061 +// Iterate over all the stmts and search for call stmts and mark them if they have size_overflow attribute
152062 +static unsigned int insert_size_overflow_asm_execute(void)
152063 +{
152064 + basic_block bb;
152065 +
152066 + FOR_EACH_BB_FN(bb, cfun) {
152067 + gimple_stmt_iterator gsi;
152068 +
152069 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
152070 + gimple stmt = gsi_stmt(gsi);
152071 +
152072 + if (is_gimple_call(stmt))
152073 + handle_size_overflow_attr_call(as_a_gcall(stmt));
152074 + else if (gimple_code(stmt) == GIMPLE_RETURN)
152075 + handle_size_overflow_attr_ret(as_a_greturn(stmt));
152076 + }
152077 + }
152078 + return 0;
152079 +}
152080 +
152081 +/*
152082 + * A lot of functions get inlined before the ipa passes so after the build_ssa gimple pass
152083 + * this pass inserts asm stmts to mark the interesting args
152084 + * that the ipa pass will detect and insert the size overflow checks for.
152085 + */
152086 +
152087 +#define PASS_NAME insert_size_overflow_asm
152088 +
152089 +#define NO_GATE
152090 +
152091 +#define PROPERTIES_REQUIRED PROP_cfg
152092 +#define 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
152093 +
152094 +#include "gcc-generate-gimple-pass.h"
152095 diff --git a/tools/gcc/size_overflow_plugin/intentional_overflow.c b/tools/gcc/size_overflow_plugin/intentional_overflow.c
152096 new file mode 100644
152097 index 0000000..9f9bcd6
152098 --- /dev/null
152099 +++ b/tools/gcc/size_overflow_plugin/intentional_overflow.c
152100 @@ -0,0 +1,1118 @@
152101 +/*
152102 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
152103 + * Licensed under the GPL v2, or (at your option) v3
152104 + *
152105 + * Homepage:
152106 + * https://github.com/ephox-gcc-plugins/size_overflow
152107 + *
152108 + * Documentation:
152109 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
152110 + *
152111 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
152112 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
152113 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
152114 + *
152115 + * Usage:
152116 + * $ make
152117 + * $ make run
152118 + */
152119 +
152120 +#include "size_overflow.h"
152121 +
152122 +static enum intentional_mark walk_use_def(gimple_set *visited, const_tree lhs);
152123 +
152124 +static const char *get_asm_string(const gasm *stmt)
152125 +{
152126 + if (stmt)
152127 + return gimple_asm_string(stmt);
152128 + return NULL;
152129 +}
152130 +
152131 +tree get_size_overflow_asm_input(const gasm *stmt)
152132 +{
152133 + gcc_assert(gimple_asm_ninputs(stmt) != 0);
152134 + return TREE_VALUE(gimple_asm_input_op(stmt, 0));
152135 +}
152136 +
152137 +bool is_size_overflow_insert_check_asm(const gasm *stmt)
152138 +{
152139 + const char *str;
152140 +
152141 + if (!is_size_overflow_asm(stmt))
152142 + return false;
152143 +
152144 + str = get_asm_string(stmt);
152145 + if (!str)
152146 + return false;
152147 + return !strncmp(str, OK_ASM_STR, sizeof(OK_ASM_STR) - 1);
152148 +}
152149 +
152150 +bool is_size_overflow_asm(const_gimple stmt)
152151 +{
152152 + const char *str;
152153 +
152154 + if (!stmt)
152155 + return false;
152156 + if (gimple_code(stmt) != GIMPLE_ASM)
152157 + return false;
152158 +
152159 + str = get_asm_string(as_a_const_gasm(stmt));
152160 + if (!str)
152161 + return false;
152162 + return !strncmp(str, SO_ASM_STR, sizeof(SO_ASM_STR) - 1);
152163 +}
152164 +
152165 +static bool is_size_overflow_intentional_asm_turn_off(const gasm *stmt)
152166 +{
152167 + const char *str;
152168 +
152169 + if (!is_size_overflow_asm(stmt))
152170 + return false;
152171 +
152172 + str = get_asm_string(stmt);
152173 + if (!str)
152174 + return false;
152175 + return !strncmp(str, TURN_OFF_ASM_STR, sizeof(TURN_OFF_ASM_STR) - 1);
152176 +}
152177 +
152178 +static bool is_size_overflow_intentional_asm_end(const gasm *stmt)
152179 +{
152180 + const char *str;
152181 +
152182 + if (!is_size_overflow_asm(stmt))
152183 + return false;
152184 +
152185 + str = get_asm_string(stmt);
152186 + if (!str)
152187 + return false;
152188 + return !strncmp(str, END_INTENTIONAL_ASM_STR, sizeof(END_INTENTIONAL_ASM_STR) - 1);
152189 +}
152190 +
152191 +/* Get the param of the intentional_overflow attribute.
152192 + * * 0: MARK_END_INTENTIONAL
152193 + * * 1..MAX_PARAM: MARK_YES
152194 + * * -1: MARK_TURN_OFF
152195 + */
152196 +static tree get_attribute_param(const_tree decl)
152197 +{
152198 + const_tree attr;
152199 +
152200 + if (decl == NULL_TREE)
152201 + return NULL_TREE;
152202 +
152203 + attr = get_attribute("intentional_overflow", decl);
152204 + if (attr)
152205 + return TREE_VALUE(attr);
152206 + return NULL_TREE;
152207 +}
152208 +
152209 +// MARK_TURN_OFF
152210 +static bool is_turn_off_intentional_attr(const_tree decl)
152211 +{
152212 + const_tree param_head;
152213 +
152214 + param_head = get_attribute_param(decl);
152215 + if (param_head == NULL_TREE)
152216 + return false;
152217 +
152218 + if (tree_to_shwi(TREE_VALUE(param_head)) == -1)
152219 + return true;
152220 + return false;
152221 +}
152222 +
152223 +// MARK_END_INTENTIONAL
152224 +static bool is_end_intentional_intentional_attr(const_tree decl)
152225 +{
152226 + const_tree param_head;
152227 +
152228 + param_head = get_attribute_param(decl);
152229 + if (param_head == NULL_TREE)
152230 + return false;
152231 +
152232 + if (tree_to_shwi(TREE_VALUE(param_head)) == 0)
152233 + return true;
152234 + return false;
152235 +}
152236 +
152237 +// MARK_YES
152238 +static bool is_yes_intentional_attr(const_tree decl, unsigned int argnum)
152239 +{
152240 + tree param, param_head;
152241 +
152242 + if (argnum == 0)
152243 + return false;
152244 +
152245 + param_head = get_attribute_param(decl);
152246 + for (param = param_head; param; param = TREE_CHAIN(param)) {
152247 + int argval = tree_to_shwi(TREE_VALUE(param));
152248 +
152249 + if (argval <= 0)
152250 + continue;
152251 + if (argnum == (unsigned int)argval)
152252 + return true;
152253 + }
152254 + return false;
152255 +}
152256 +
152257 +static void print_missing_intentional(enum intentional_mark callee_attr, enum intentional_mark caller_attr, const_tree decl, unsigned int argnum)
152258 +{
152259 + const struct size_overflow_hash *hash;
152260 +// location_t loc;
152261 +
152262 + if (caller_attr == MARK_NO || caller_attr == MARK_END_INTENTIONAL || caller_attr == MARK_TURN_OFF)
152263 + return;
152264 +
152265 + if (callee_attr == MARK_END_INTENTIONAL || callee_attr == MARK_YES)
152266 + return;
152267 +
152268 + hash = get_size_overflow_hash_entry_tree(decl, argnum, SIZE_OVERFLOW);
152269 + if (!hash)
152270 + return;
152271 +
152272 +// !!!
152273 +// loc = DECL_SOURCE_LOCATION(decl);
152274 +// inform(loc, "The intentional_overflow attribute is missing from +%s+%u+", DECL_NAME_POINTER(decl), argnum);
152275 +}
152276 +
152277 +// Get the field decl of a component ref for intentional_overflow checking
152278 +static const_tree search_field_decl(const_tree comp_ref)
152279 +{
152280 + const_tree field = NULL_TREE;
152281 + unsigned int i, len = TREE_OPERAND_LENGTH(comp_ref);
152282 +
152283 + for (i = 0; i < len; i++) {
152284 + field = TREE_OPERAND(comp_ref, i);
152285 + if (TREE_CODE(field) == FIELD_DECL)
152286 + break;
152287 + }
152288 + gcc_assert(TREE_CODE(field) == FIELD_DECL);
152289 + return field;
152290 +}
152291 +
152292 +/* Get the type of the intentional_overflow attribute of a node
152293 + * * MARK_TURN_OFF
152294 + * * MARK_YES
152295 + * * MARK_NO
152296 + * * MARK_END_INTENTIONAL
152297 + */
152298 +enum intentional_mark get_intentional_attr_type(const_tree node)
152299 +{
152300 + const_tree cur_decl;
152301 +
152302 + if (node == NULL_TREE)
152303 + return MARK_NO;
152304 +
152305 + switch (TREE_CODE(node)) {
152306 + case COMPONENT_REF:
152307 + cur_decl = search_field_decl(node);
152308 + if (is_turn_off_intentional_attr(cur_decl))
152309 + return MARK_TURN_OFF;
152310 + if (is_end_intentional_intentional_attr(cur_decl))
152311 + return MARK_YES;
152312 + break;
152313 + case PARM_DECL: {
152314 + unsigned int argnum;
152315 +
152316 + cur_decl = get_orig_fndecl(current_function_decl);
152317 + argnum = find_arg_number_tree(node, cur_decl);
152318 + if (argnum == CANNOT_FIND_ARG)
152319 + return MARK_NO;
152320 + if (is_yes_intentional_attr(cur_decl, argnum))
152321 + return MARK_YES;
152322 + if (is_end_intentional_intentional_attr(cur_decl))
152323 + return MARK_END_INTENTIONAL;
152324 + break;
152325 + }
152326 + case FUNCTION_DECL: {
152327 + const_tree fndecl = get_orig_fndecl(node);
152328 +
152329 + if (is_turn_off_intentional_attr(fndecl))
152330 + return MARK_TURN_OFF;
152331 + if (is_end_intentional_intentional_attr(fndecl))
152332 + return MARK_END_INTENTIONAL;
152333 + break;
152334 + }
152335 + case FIELD_DECL:
152336 + case VAR_DECL:
152337 + if (is_end_intentional_intentional_attr(node))
152338 + return MARK_END_INTENTIONAL;
152339 + if (is_turn_off_intentional_attr(node))
152340 + return MARK_TURN_OFF;
152341 + default:
152342 + break;
152343 + }
152344 + return MARK_NO;
152345 +}
152346 +
152347 +static enum intentional_mark walk_use_def_phi(gimple_set *visited, const_tree result)
152348 +{
152349 + enum intentional_mark mark = MARK_NO;
152350 + gphi *phi = as_a_gphi(get_def_stmt(result));
152351 + unsigned int i, n = gimple_phi_num_args(phi);
152352 +
152353 + pointer_set_insert(visited, phi);
152354 + for (i = 0; i < n; i++) {
152355 + tree arg = gimple_phi_arg_def(phi, i);
152356 +
152357 + mark = walk_use_def(visited, arg);
152358 + if (mark != MARK_NO)
152359 + return mark;
152360 + }
152361 +
152362 + return mark;
152363 +}
152364 +
152365 +static enum intentional_mark walk_use_def_binary(gimple_set *visited, const_tree lhs)
152366 +{
152367 + enum intentional_mark mark;
152368 + tree rhs1, rhs2;
152369 + gassign *def_stmt = as_a_gassign(get_def_stmt(lhs));
152370 +
152371 + rhs1 = gimple_assign_rhs1(def_stmt);
152372 + rhs2 = gimple_assign_rhs2(def_stmt);
152373 +
152374 + mark = walk_use_def(visited, rhs1);
152375 + if (mark == MARK_NO)
152376 + return walk_use_def(visited, rhs2);
152377 + return mark;
152378 +}
152379 +
152380 +enum intentional_mark get_so_asm_type(const_gimple stmt)
152381 +{
152382 + const gasm *asm_stmt;
152383 +
152384 + if (!stmt)
152385 + return MARK_NO;
152386 + if (!is_size_overflow_asm(stmt))
152387 + return MARK_NO;
152388 +
152389 + asm_stmt = as_a_const_gasm(stmt);
152390 + if (is_size_overflow_insert_check_asm(asm_stmt))
152391 + return MARK_NO;
152392 + if (is_size_overflow_intentional_asm_turn_off(asm_stmt))
152393 + return MARK_TURN_OFF;
152394 + if (is_size_overflow_intentional_asm_end(asm_stmt))
152395 + return MARK_END_INTENTIONAL;
152396 + return MARK_YES;
152397 +}
152398 +
152399 +static enum intentional_mark walk_use_def(gimple_set *visited, const_tree lhs)
152400 +{
152401 + const_gimple def_stmt;
152402 +
152403 + if (TREE_CODE(lhs) != SSA_NAME)
152404 + return get_intentional_attr_type(lhs);
152405 +
152406 + def_stmt = get_def_stmt(lhs);
152407 + gcc_assert(def_stmt);
152408 +
152409 + if (pointer_set_insert(visited, def_stmt))
152410 + return MARK_NO;
152411 +
152412 + switch (gimple_code(def_stmt)) {
152413 + case GIMPLE_CALL:
152414 + case GIMPLE_RETURN:
152415 + return MARK_NO;
152416 + case GIMPLE_NOP:
152417 + return walk_use_def(visited, SSA_NAME_VAR(lhs));
152418 + case GIMPLE_ASM:
152419 + return get_so_asm_type(as_a_const_gasm(def_stmt));
152420 + case GIMPLE_PHI:
152421 + return walk_use_def_phi(visited, lhs);
152422 + case GIMPLE_ASSIGN:
152423 + switch (gimple_num_ops(def_stmt)) {
152424 + case 2:
152425 + return walk_use_def(visited, gimple_assign_rhs1(def_stmt));
152426 + case 3:
152427 + return walk_use_def_binary(visited, lhs);
152428 + }
152429 + default:
152430 + debug_gimple_stmt((gimple)def_stmt);
152431 + error("%s: unknown gimple code", __func__);
152432 + gcc_unreachable();
152433 + }
152434 +}
152435 +
152436 +enum intentional_mark check_intentional_size_overflow_asm_and_attribute(const_tree var)
152437 +{
152438 + enum intentional_mark mark;
152439 + gimple_set *visited;
152440 +
152441 + if (is_turn_off_intentional_attr(get_orig_fndecl(current_function_decl)))
152442 + return MARK_TURN_OFF;
152443 +
152444 + visited = pointer_set_create();
152445 + mark = walk_use_def(visited, var);
152446 + pointer_set_destroy(visited);
152447 +
152448 + return mark;
152449 +}
152450 +
152451 +/* Search intentional_overflow attribute on caller and on callee too.
152452 + * -1 / MARK_TURN_OFF: means that overflow checking is turned off inside the function and
152453 + * parameters aren't tracked backwards.
152454 + * 1..31 / MARK_YES: e.g., 4 means that overflow checking is turned off on the fourth parameter inside
152455 + * the function.
152456 + * 0 / MARK_END_INTENTIONAL: means that overflow checking is turned off on all the parameters of the function
152457 + * in all callers (on a structure field means that overflow checking is turned off
152458 + * in all expressions involving the given field).
152459 + */
152460 +enum intentional_mark check_intentional_attribute(const_gimple stmt, unsigned int argnum)
152461 +{
152462 + enum intentional_mark caller_mark, callee_mark;
152463 + const_tree fndecl, orig_cur_fndecl, arg;
152464 +
152465 + orig_cur_fndecl = get_orig_fndecl(current_function_decl);
152466 +
152467 + // handle MARK_TURN_OFF early on the caller
152468 + if (is_turn_off_intentional_attr(orig_cur_fndecl))
152469 + return MARK_TURN_OFF;
152470 + // handle MARK_END_INTENTIONAL on the caller
152471 + if (is_end_intentional_intentional_attr(orig_cur_fndecl))
152472 + return MARK_END_INTENTIONAL;
152473 +
152474 + switch (gimple_code(stmt)) {
152475 + case GIMPLE_RETURN:
152476 + gcc_assert(argnum == 0);
152477 + // for now ignore other intentional attribute types on returns
152478 + return MARK_NO;
152479 + case GIMPLE_CALL:
152480 + gcc_assert(argnum != 0);
152481 + gcc_assert(argnum <= gimple_call_num_args(stmt));
152482 + arg = gimple_call_arg(stmt, argnum - 1);
152483 + break;
152484 + default:
152485 + debug_gimple_stmt((gimple)stmt);
152486 + gcc_unreachable();
152487 + }
152488 +
152489 + // XXX ideiglenesen 0-nal a fuggvenyen belul is ki van kapcsolva a dupolas, eddig igy mukodott a doksi ellenere
152490 + if (is_end_intentional_intentional_attr(orig_cur_fndecl))
152491 + return MARK_END_INTENTIONAL;
152492 +
152493 + fndecl = get_interesting_orig_fndecl_from_stmt(as_a_const_gcall(stmt));
152494 + // handle MARK_TURN_OFF on the callee
152495 + if (is_turn_off_intentional_attr(fndecl))
152496 + return MARK_TURN_OFF;
152497 + // find a defining marked caller argument or struct field for arg
152498 + caller_mark = check_intentional_size_overflow_asm_and_attribute(arg);
152499 +
152500 + // did we find a marked struct field?
152501 + if (caller_mark == MARK_TURN_OFF)
152502 + return MARK_TURN_OFF;
152503 +
152504 + // handle MARK_END_INTENTIONAL on the callee
152505 + if (is_end_intentional_intentional_attr(fndecl))
152506 + callee_mark = MARK_END_INTENTIONAL;
152507 + // is it a marked callee parameter?
152508 + else if (is_yes_intentional_attr(fndecl, argnum))
152509 + callee_mark = MARK_YES;
152510 + else
152511 + callee_mark = MARK_NO;
152512 +
152513 + // no intentional attribute found
152514 + if (callee_mark == MARK_NO && caller_mark == MARK_NO)
152515 + return MARK_NO;
152516 +
152517 + // MARK_YES is meaningful only on the caller
152518 + if (caller_mark == MARK_NO && callee_mark == MARK_YES)
152519 + return MARK_NO;
152520 +
152521 + // we found a code region where we don't want to duplicate
152522 + if (caller_mark == MARK_YES && callee_mark == MARK_END_INTENTIONAL)
152523 + return MARK_END_INTENTIONAL;
152524 +
152525 + // ignore the intentional attribute on the callee if we didn't find a marked defining argument or struct field
152526 + if (caller_mark == MARK_NO && callee_mark == MARK_END_INTENTIONAL)
152527 + return MARK_NO;
152528 +
152529 + // the callee is missing the intentional attribute (MARK_YES or MARK_END_INTENTIONAL)
152530 + if (caller_mark == MARK_YES) {
152531 + print_missing_intentional(callee_mark, caller_mark, fndecl, argnum);
152532 + return MARK_YES;
152533 + }
152534 +
152535 + fprintf(stderr, "caller: %s callee: %s\n", DECL_NAME_POINTER(orig_cur_fndecl), DECL_NAME_POINTER(fndecl));
152536 + debug_gimple_stmt((gimple)stmt);
152537 + print_intentional_mark(caller_mark);
152538 + print_intentional_mark(callee_mark);
152539 + gcc_unreachable();
152540 +}
152541 +
152542 +bool is_a_cast_and_const_overflow(const_tree no_const_rhs)
152543 +{
152544 + const_tree rhs1, lhs, rhs1_type, lhs_type;
152545 + enum machine_mode lhs_mode, rhs_mode;
152546 + gimple def_stmt = get_def_stmt(no_const_rhs);
152547 +
152548 + if (!def_stmt || !gimple_assign_cast_p(def_stmt))
152549 + return false;
152550 +
152551 + rhs1 = gimple_assign_rhs1(def_stmt);
152552 + lhs = gimple_assign_lhs(def_stmt);
152553 + rhs1_type = TREE_TYPE(rhs1);
152554 + lhs_type = TREE_TYPE(lhs);
152555 + rhs_mode = TYPE_MODE(rhs1_type);
152556 + lhs_mode = TYPE_MODE(lhs_type);
152557 + if (TYPE_UNSIGNED(lhs_type) == TYPE_UNSIGNED(rhs1_type) || lhs_mode != rhs_mode)
152558 + return false;
152559 +
152560 + return true;
152561 +}
152562 +
152563 +static unsigned int uses_num(tree node)
152564 +{
152565 + imm_use_iterator imm_iter;
152566 + use_operand_p use_p;
152567 + unsigned int num = 0;
152568 +
152569 + FOR_EACH_IMM_USE_FAST(use_p, imm_iter, node) {
152570 + gimple use_stmt = USE_STMT(use_p);
152571 +
152572 + if (use_stmt == NULL)
152573 + return num;
152574 + if (is_gimple_debug(use_stmt))
152575 + continue;
152576 + if (gimple_assign_cast_p(use_stmt) && is_size_overflow_type(gimple_assign_lhs(use_stmt)))
152577 + continue;
152578 + num++;
152579 + }
152580 + return num;
152581 +}
152582 +
152583 +static bool no_uses(tree node)
152584 +{
152585 + return !uses_num(node);
152586 +}
152587 +
152588 +// 3.8.5 mm/page-writeback.c __ilog2_u64(): ret, uint + uintmax; uint -> int; int max
152589 +bool is_const_plus_unsigned_signed_truncation(const_tree lhs)
152590 +{
152591 + tree rhs1, lhs_type, rhs_type, rhs2, not_const_rhs;
152592 + gimple def_stmt = get_def_stmt(lhs);
152593 +
152594 + if (!def_stmt || !gimple_assign_cast_p(def_stmt))
152595 + return false;
152596 +
152597 + rhs1 = gimple_assign_rhs1(def_stmt);
152598 + rhs_type = TREE_TYPE(rhs1);
152599 + lhs_type = TREE_TYPE(lhs);
152600 + if (TYPE_UNSIGNED(lhs_type) || !TYPE_UNSIGNED(rhs_type))
152601 + return false;
152602 + if (TYPE_MODE(lhs_type) != TYPE_MODE(rhs_type))
152603 + return false;
152604 +
152605 + def_stmt = get_def_stmt(rhs1);
152606 + if (!def_stmt || !is_gimple_assign(def_stmt) || gimple_num_ops(def_stmt) != 3)
152607 + return false;
152608 +
152609 + if (gimple_assign_rhs_code(def_stmt) != PLUS_EXPR)
152610 + return false;
152611 +
152612 + rhs1 = gimple_assign_rhs1(def_stmt);
152613 + rhs2 = gimple_assign_rhs2(def_stmt);
152614 + if (!is_gimple_constant(rhs1) && !is_gimple_constant(rhs2))
152615 + return false;
152616 +
152617 + if (is_gimple_constant(rhs2))
152618 + not_const_rhs = rhs1;
152619 + else
152620 + not_const_rhs = rhs2;
152621 +
152622 + return no_uses(not_const_rhs);
152623 +}
152624 +
152625 +static bool is_lt_signed_type_max(const_tree rhs)
152626 +{
152627 + const_tree new_type, type_max, type = TREE_TYPE(rhs);
152628 +
152629 + if (!TYPE_UNSIGNED(type))
152630 + return true;
152631 +
152632 + switch (TYPE_MODE(type)) {
152633 + case QImode:
152634 + new_type = intQI_type_node;
152635 + break;
152636 + case HImode:
152637 + new_type = intHI_type_node;
152638 + break;
152639 + case SImode:
152640 + new_type = intSI_type_node;
152641 + break;
152642 + case DImode:
152643 + new_type = intDI_type_node;
152644 + break;
152645 + default:
152646 + debug_tree(type);
152647 + gcc_unreachable();
152648 + }
152649 +
152650 + type_max = TYPE_MAX_VALUE(new_type);
152651 + if (!tree_int_cst_lt(type_max, rhs))
152652 + return true;
152653 +
152654 + return false;
152655 +}
152656 +
152657 +static bool is_gt_zero(const_tree rhs)
152658 +{
152659 + const_tree type = TREE_TYPE(rhs);
152660 +
152661 + if (TYPE_UNSIGNED(type))
152662 + return true;
152663 +
152664 + if (!tree_int_cst_lt(rhs, integer_zero_node))
152665 + return true;
152666 +
152667 + return false;
152668 +}
152669 +
152670 +bool is_a_constant_overflow(const gassign *stmt, const_tree rhs)
152671 +{
152672 + if (gimple_assign_rhs_code(stmt) == MIN_EXPR)
152673 + return false;
152674 + if (!is_gimple_constant(rhs))
152675 + return false;
152676 +
152677 + // if the const is between 0 and the max value of the signed type of the same bitsize then there is no intentional overflow
152678 + if (is_lt_signed_type_max(rhs) && is_gt_zero(rhs))
152679 + return false;
152680 +
152681 + return true;
152682 +}
152683 +
152684 +static tree change_assign_rhs(struct visited *visited, gassign *stmt, const_tree orig_rhs, tree new_rhs)
152685 +{
152686 + const_gimple assign;
152687 + gimple_stmt_iterator gsi = gsi_for_stmt(stmt);
152688 + tree origtype = TREE_TYPE(orig_rhs);
152689 +
152690 + assign = build_cast_stmt(visited, origtype, new_rhs, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false);
152691 + pointer_set_insert(visited->my_stmts, assign);
152692 + return get_lhs(assign);
152693 +}
152694 +
152695 +tree handle_intentional_overflow(struct visited *visited, interesting_stmts_t expand_from, bool check_overflow, gassign *stmt, tree change_rhs, tree new_rhs2)
152696 +{
152697 + tree new_rhs, orig_rhs;
152698 + void (*gimple_assign_set_rhs)(gimple, tree);
152699 + tree rhs1 = gimple_assign_rhs1(stmt);
152700 + tree rhs2 = gimple_assign_rhs2(stmt);
152701 + tree lhs = gimple_assign_lhs(stmt);
152702 +
152703 + if (!check_overflow)
152704 + return create_assign(visited, stmt, lhs, AFTER_STMT);
152705 +
152706 + if (change_rhs == NULL_TREE)
152707 + return create_assign(visited, stmt, lhs, AFTER_STMT);
152708 +
152709 + if (new_rhs2 == NULL_TREE) {
152710 + orig_rhs = rhs1;
152711 + gimple_assign_set_rhs = &gimple_assign_set_rhs1;
152712 + } else {
152713 + orig_rhs = rhs2;
152714 + gimple_assign_set_rhs = &gimple_assign_set_rhs2;
152715 + }
152716 +
152717 + check_size_overflow(expand_from, stmt, TREE_TYPE(change_rhs), change_rhs, orig_rhs, BEFORE_STMT);
152718 +
152719 + new_rhs = change_assign_rhs(visited, stmt, orig_rhs, change_rhs);
152720 + gimple_assign_set_rhs(stmt, new_rhs);
152721 + update_stmt(stmt);
152722 +
152723 + return create_assign(visited, stmt, lhs, AFTER_STMT);
152724 +}
152725 +
152726 +static bool is_subtraction_special(struct visited *visited, const gassign *stmt)
152727 +{
152728 + gimple rhs1_def_stmt, rhs2_def_stmt;
152729 + const_tree rhs1_def_stmt_rhs1, rhs2_def_stmt_rhs1, rhs1_def_stmt_lhs, rhs2_def_stmt_lhs;
152730 + enum machine_mode rhs1_def_stmt_rhs1_mode, rhs2_def_stmt_rhs1_mode, rhs1_def_stmt_lhs_mode, rhs2_def_stmt_lhs_mode;
152731 + const_tree rhs1 = gimple_assign_rhs1(stmt);
152732 + const_tree rhs2 = gimple_assign_rhs2(stmt);
152733 +
152734 + if (is_gimple_constant(rhs1) || is_gimple_constant(rhs2))
152735 + return false;
152736 +
152737 + if (gimple_assign_rhs_code(stmt) != MINUS_EXPR)
152738 + return false;
152739 +
152740 + gcc_assert(TREE_CODE(rhs1) == SSA_NAME && TREE_CODE(rhs2) == SSA_NAME);
152741 +
152742 + rhs1_def_stmt = get_def_stmt(rhs1);
152743 + rhs2_def_stmt = get_def_stmt(rhs2);
152744 + if (!gimple_assign_cast_p(rhs1_def_stmt) || !gimple_assign_cast_p(rhs2_def_stmt))
152745 + return false;
152746 +
152747 + rhs1_def_stmt_rhs1 = gimple_assign_rhs1(rhs1_def_stmt);
152748 + rhs2_def_stmt_rhs1 = gimple_assign_rhs1(rhs2_def_stmt);
152749 + rhs1_def_stmt_lhs = gimple_assign_lhs(rhs1_def_stmt);
152750 + rhs2_def_stmt_lhs = gimple_assign_lhs(rhs2_def_stmt);
152751 + rhs1_def_stmt_rhs1_mode = TYPE_MODE(TREE_TYPE(rhs1_def_stmt_rhs1));
152752 + rhs2_def_stmt_rhs1_mode = TYPE_MODE(TREE_TYPE(rhs2_def_stmt_rhs1));
152753 + rhs1_def_stmt_lhs_mode = TYPE_MODE(TREE_TYPE(rhs1_def_stmt_lhs));
152754 + rhs2_def_stmt_lhs_mode = TYPE_MODE(TREE_TYPE(rhs2_def_stmt_lhs));
152755 + if (GET_MODE_BITSIZE(rhs1_def_stmt_rhs1_mode) <= GET_MODE_BITSIZE(rhs1_def_stmt_lhs_mode))
152756 + return false;
152757 + if (GET_MODE_BITSIZE(rhs2_def_stmt_rhs1_mode) <= GET_MODE_BITSIZE(rhs2_def_stmt_lhs_mode))
152758 + return false;
152759 +
152760 + pointer_set_insert(visited->no_cast_check, rhs1_def_stmt);
152761 + pointer_set_insert(visited->no_cast_check, rhs2_def_stmt);
152762 + return true;
152763 +}
152764 +
152765 +static gassign *create_binary_assign(struct visited *visited, enum tree_code code, gassign *stmt, tree rhs1, tree rhs2)
152766 +{
152767 + gassign *assign;
152768 + gimple_stmt_iterator gsi = gsi_for_stmt(stmt);
152769 + tree type = TREE_TYPE(rhs1);
152770 + tree lhs = create_new_var(type);
152771 +
152772 + gcc_assert(types_compatible_p(type, TREE_TYPE(rhs2)));
152773 + assign = as_a_gassign(gimple_build_assign_with_ops(code, lhs, rhs1, rhs2));
152774 + gimple_assign_set_lhs(assign, make_ssa_name(lhs, assign));
152775 +
152776 + gsi_insert_before(&gsi, assign, GSI_NEW_STMT);
152777 + update_stmt(assign);
152778 + pointer_set_insert(visited->my_stmts, assign);
152779 + return assign;
152780 +}
152781 +
152782 +static tree cast_to_TI_type(struct visited *visited, gassign *stmt, tree node)
152783 +{
152784 + gimple_stmt_iterator gsi;
152785 + const_gimple cast_stmt;
152786 + tree type = TREE_TYPE(node);
152787 +
152788 + if (types_compatible_p(type, intTI_type_node))
152789 + return node;
152790 +
152791 + gsi = gsi_for_stmt(stmt);
152792 + cast_stmt = build_cast_stmt(visited, intTI_type_node, node, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false);
152793 + pointer_set_insert(visited->my_stmts, cast_stmt);
152794 + return get_lhs(cast_stmt);
152795 +}
152796 +
152797 +static tree get_def_stmt_rhs(struct visited *visited, const_tree var)
152798 +{
152799 + tree rhs1, def_stmt_rhs1;
152800 + gimple rhs1_def_stmt, def_stmt_rhs1_def_stmt, def_stmt;
152801 +
152802 + def_stmt = get_def_stmt(var);
152803 + if (!gimple_assign_cast_p(def_stmt))
152804 + return NULL_TREE;
152805 + gcc_assert(gimple_code(def_stmt) != GIMPLE_NOP && pointer_set_contains(visited->my_stmts, def_stmt) && gimple_assign_cast_p(def_stmt));
152806 +
152807 + rhs1 = gimple_assign_rhs1(def_stmt);
152808 + rhs1_def_stmt = get_def_stmt(rhs1);
152809 + if (!gimple_assign_cast_p(rhs1_def_stmt))
152810 + return rhs1;
152811 +
152812 + def_stmt_rhs1 = gimple_assign_rhs1(rhs1_def_stmt);
152813 + def_stmt_rhs1_def_stmt = get_def_stmt(def_stmt_rhs1);
152814 +
152815 + switch (gimple_code(def_stmt_rhs1_def_stmt)) {
152816 + case GIMPLE_CALL:
152817 + case GIMPLE_NOP:
152818 + case GIMPLE_ASM:
152819 + case GIMPLE_PHI:
152820 + return def_stmt_rhs1;
152821 + case GIMPLE_ASSIGN:
152822 + return rhs1;
152823 + default:
152824 + debug_gimple_stmt(def_stmt_rhs1_def_stmt);
152825 + gcc_unreachable();
152826 + }
152827 +}
152828 +
152829 +tree handle_integer_truncation(struct visited *visited, interesting_stmts_t expand_from, const_tree lhs)
152830 +{
152831 + tree new_rhs1, new_rhs2;
152832 + tree new_rhs1_def_stmt_rhs1, new_rhs2_def_stmt_rhs1, new_lhs;
152833 + gassign *assign, *stmt = as_a_gassign(get_def_stmt(lhs));
152834 + tree rhs1 = gimple_assign_rhs1(stmt);
152835 + tree rhs2 = gimple_assign_rhs2(stmt);
152836 +
152837 + if (!is_subtraction_special(visited, stmt))
152838 + return NULL_TREE;
152839 +
152840 + new_rhs1 = expand(visited, expand_from, rhs1);
152841 + new_rhs2 = expand(visited, expand_from, rhs2);
152842 +
152843 + new_rhs1_def_stmt_rhs1 = get_def_stmt_rhs(visited, new_rhs1);
152844 + new_rhs2_def_stmt_rhs1 = get_def_stmt_rhs(visited, new_rhs2);
152845 +
152846 + if (new_rhs1_def_stmt_rhs1 == NULL_TREE || new_rhs2_def_stmt_rhs1 == NULL_TREE)
152847 + return NULL_TREE;
152848 +
152849 + if (!types_compatible_p(TREE_TYPE(new_rhs1_def_stmt_rhs1), TREE_TYPE(new_rhs2_def_stmt_rhs1))) {
152850 + new_rhs1_def_stmt_rhs1 = cast_to_TI_type(visited, stmt, new_rhs1_def_stmt_rhs1);
152851 + new_rhs2_def_stmt_rhs1 = cast_to_TI_type(visited, stmt, new_rhs2_def_stmt_rhs1);
152852 + }
152853 +
152854 + assign = create_binary_assign(visited, MINUS_EXPR, stmt, new_rhs1_def_stmt_rhs1, new_rhs2_def_stmt_rhs1);
152855 + new_lhs = gimple_assign_lhs(assign);
152856 + check_size_overflow(expand_from, assign, TREE_TYPE(new_lhs), new_lhs, rhs1, AFTER_STMT);
152857 +
152858 + return dup_assign(visited, stmt, lhs, new_rhs1, new_rhs2, NULL_TREE);
152859 +}
152860 +
152861 +bool is_a_neg_overflow(const gassign *stmt, const_tree rhs)
152862 +{
152863 + const_gimple def_stmt;
152864 +
152865 + if (TREE_CODE(rhs) != SSA_NAME)
152866 + return false;
152867 +
152868 + if (gimple_assign_rhs_code(stmt) != PLUS_EXPR)
152869 + return false;
152870 +
152871 + def_stmt = get_def_stmt(rhs);
152872 + if (!is_gimple_assign(def_stmt) || gimple_assign_rhs_code(def_stmt) != BIT_NOT_EXPR)
152873 + return false;
152874 +
152875 + return true;
152876 +}
152877 +
152878 +/* e.g., drivers/acpi/acpica/utids.c acpi_ut_execute_CID()
152879 + * ((count - 1) * sizeof(struct acpi_pnp_dee_id_list) -> (count + fffffff) * 16
152880 + * fffffff * 16 > signed max -> truncate
152881 + */
152882 +static bool look_for_mult_and_add(const_gimple stmt)
152883 +{
152884 + const_tree res;
152885 + tree rhs1, rhs2, def_rhs1, def_rhs2, const_rhs, def_const_rhs;
152886 + const_gimple def_stmt;
152887 +
152888 + if (!stmt || gimple_code(stmt) == GIMPLE_NOP)
152889 + return false;
152890 + if (!is_gimple_assign(stmt))
152891 + return false;
152892 + if (gimple_assign_rhs_code(stmt) != MULT_EXPR)
152893 + return false;
152894 +
152895 + rhs1 = gimple_assign_rhs1(stmt);
152896 + rhs2 = gimple_assign_rhs2(stmt);
152897 + if (is_gimple_constant(rhs1)) {
152898 + const_rhs = rhs1;
152899 + def_stmt = get_def_stmt(rhs2);
152900 + } else if (is_gimple_constant(rhs2)) {
152901 + const_rhs = rhs2;
152902 + def_stmt = get_def_stmt(rhs1);
152903 + } else
152904 + return false;
152905 +
152906 + if (!is_gimple_assign(def_stmt))
152907 + return false;
152908 +
152909 + if (gimple_assign_rhs_code(def_stmt) != PLUS_EXPR && gimple_assign_rhs_code(def_stmt) != MINUS_EXPR)
152910 + return false;
152911 +
152912 + def_rhs1 = gimple_assign_rhs1(def_stmt);
152913 + def_rhs2 = gimple_assign_rhs2(def_stmt);
152914 + if (is_gimple_constant(def_rhs1))
152915 + def_const_rhs = def_rhs1;
152916 + else if (is_gimple_constant(def_rhs2))
152917 + def_const_rhs = def_rhs2;
152918 + else
152919 + return false;
152920 +
152921 + res = fold_binary_loc(gimple_location(def_stmt), MULT_EXPR, TREE_TYPE(const_rhs), const_rhs, def_const_rhs);
152922 + if (is_lt_signed_type_max(res) && is_gt_zero(res))
152923 + return false;
152924 + return true;
152925 +}
152926 +
152927 +enum intentional_overflow_type add_mul_intentional_overflow(const gassign *stmt)
152928 +{
152929 + const_gimple def_stmt_1, def_stmt_2;
152930 + const_tree rhs1, rhs2;
152931 + bool add_mul_rhs1, add_mul_rhs2;
152932 +
152933 + rhs1 = gimple_assign_rhs1(stmt);
152934 + def_stmt_1 = get_def_stmt(rhs1);
152935 + add_mul_rhs1 = look_for_mult_and_add(def_stmt_1);
152936 +
152937 + rhs2 = gimple_assign_rhs2(stmt);
152938 + def_stmt_2 = get_def_stmt(rhs2);
152939 + add_mul_rhs2 = look_for_mult_and_add(def_stmt_2);
152940 +
152941 + if (add_mul_rhs1)
152942 + return RHS1_INTENTIONAL_OVERFLOW;
152943 + if (add_mul_rhs2)
152944 + return RHS2_INTENTIONAL_OVERFLOW;
152945 + return NO_INTENTIONAL_OVERFLOW;
152946 +}
152947 +
152948 +static gassign *get_dup_stmt(struct visited *visited, gassign *stmt)
152949 +{
152950 + gassign *my_stmt;
152951 + gimple_stmt_iterator gsi = gsi_for_stmt(stmt);
152952 +
152953 + gsi_next(&gsi);
152954 + my_stmt = as_a_gassign(gsi_stmt(gsi));
152955 +
152956 + gcc_assert(pointer_set_contains(visited->my_stmts, my_stmt));
152957 + if (gimple_assign_cast_p(stmt) && gimple_assign_cast_p(my_stmt))
152958 + return my_stmt;
152959 +
152960 + if (gimple_assign_rhs_code(stmt) != gimple_assign_rhs_code(my_stmt)) {
152961 + fprintf(stderr, "%s != %s\n", get_tree_code_name(gimple_assign_rhs_code(stmt)), get_tree_code_name(gimple_assign_rhs_code(my_stmt)));
152962 + debug_gimple_stmt(stmt);
152963 + debug_gimple_stmt(my_stmt);
152964 + gcc_unreachable();
152965 + }
152966 +
152967 + return my_stmt;
152968 +}
152969 +
152970 +/* unsigned type -> unary or binary assign (rhs1 or rhs2 is constant)
152971 + * unsigned type cast to signed type, unsigned type: no more uses
152972 + * e.g., lib/vsprintf.c:simple_strtol()
152973 + * _10 = (unsigned long int) _9
152974 + * _11 = -_10;
152975 + * _12 = (long int) _11; (_11_ no more uses)
152976 + */
152977 +static bool is_call_or_cast(gimple stmt)
152978 +{
152979 + return gimple_assign_cast_p(stmt) || is_gimple_call(stmt);
152980 +}
152981 +
152982 +static bool is_unsigned_cast_or_call_def_stmt(const_tree node)
152983 +{
152984 + const_tree rhs;
152985 + gimple def_stmt;
152986 +
152987 + if (node == NULL_TREE)
152988 + return true;
152989 + if (is_gimple_constant(node))
152990 + return true;
152991 +
152992 + def_stmt = get_def_stmt(node);
152993 + if (!def_stmt)
152994 + return false;
152995 +
152996 + if (is_call_or_cast(def_stmt))
152997 + return true;
152998 +
152999 + if (!is_gimple_assign(def_stmt) || gimple_num_ops(def_stmt) != 2)
153000 + return false;
153001 + rhs = gimple_assign_rhs1(def_stmt);
153002 + def_stmt = get_def_stmt(rhs);
153003 + if (!def_stmt)
153004 + return false;
153005 + return is_call_or_cast(def_stmt);
153006 +}
153007 +
153008 +void unsigned_signed_cast_intentional_overflow(struct visited *visited, gassign *stmt)
153009 +{
153010 + unsigned int use_num;
153011 + gassign *so_stmt;
153012 + const_gimple def_stmt;
153013 + const_tree rhs1, rhs2;
153014 + tree rhs = gimple_assign_rhs1(stmt);
153015 + tree lhs_type = TREE_TYPE(gimple_assign_lhs(stmt));
153016 + const_tree rhs_type = TREE_TYPE(rhs);
153017 +
153018 + if (!(TYPE_UNSIGNED(rhs_type) && !TYPE_UNSIGNED(lhs_type)))
153019 + return;
153020 + if (GET_MODE_BITSIZE(TYPE_MODE(rhs_type)) != GET_MODE_BITSIZE(TYPE_MODE(lhs_type)))
153021 + return;
153022 + use_num = uses_num(rhs);
153023 + if (use_num != 1)
153024 + return;
153025 +
153026 + def_stmt = get_def_stmt(rhs);
153027 + if (!def_stmt)
153028 + return;
153029 + if (!is_gimple_assign(def_stmt))
153030 + return;
153031 +
153032 + rhs1 = gimple_assign_rhs1(def_stmt);
153033 + if (!is_unsigned_cast_or_call_def_stmt(rhs1))
153034 + return;
153035 +
153036 + rhs2 = gimple_assign_rhs2(def_stmt);
153037 + if (!is_unsigned_cast_or_call_def_stmt(rhs2))
153038 + return;
153039 + if (gimple_num_ops(def_stmt) == 3 && !is_gimple_constant(rhs1) && !is_gimple_constant(rhs2))
153040 + return;
153041 +
153042 + so_stmt = get_dup_stmt(visited, stmt);
153043 + create_up_and_down_cast(visited, so_stmt, lhs_type, gimple_assign_rhs1(so_stmt));
153044 +}
153045 +
153046 +/* gcc intentional overflow
153047 + * e.g., skb_set_network_header(), skb_set_mac_header()
153048 + * -, int offset + u16 network_header
153049 + * offset = -x->props.header_len
153050 + * skb->network_header += offset;
153051 + *
153052 + * SSA
153053 + * _141 = -_140;
153054 + * _154 = (short unsigned int) _141;
153055 + * _155 = (size_overflow_type_SI) _154;
153056 + * _156 = _154 + _155; // 2x
153057 + * _157 = (short unsigned int) _156;
153058 + */
153059 +static bool is_short_cast_neg(const_tree rhs)
153060 +{
153061 + const_tree cast_rhs;
153062 + const_gimple neg_stmt;
153063 + gimple neg_cast_stmt, cast_stmt = get_def_stmt(rhs);
153064 +
153065 + if (!cast_stmt || !gimple_assign_cast_p(cast_stmt))
153066 + return false;
153067 +
153068 + cast_rhs = gimple_assign_rhs1(cast_stmt);
153069 + if (GET_MODE_BITSIZE(TYPE_MODE(TREE_TYPE(cast_rhs))) >= GET_MODE_BITSIZE(TYPE_MODE(TREE_TYPE(rhs))))
153070 + return false;
153071 +
153072 + neg_cast_stmt = get_def_stmt(cast_rhs);
153073 + if (!neg_cast_stmt || !gimple_assign_cast_p(neg_cast_stmt))
153074 + return false;
153075 +
153076 + neg_stmt = get_def_stmt(gimple_assign_rhs1(neg_cast_stmt));
153077 + if (!neg_stmt || !is_gimple_assign(neg_stmt))
153078 + return false;
153079 + return gimple_assign_rhs_code(neg_stmt) == NEGATE_EXPR;
153080 +}
153081 +
153082 +static bool check_add_stmt(const_tree node)
153083 +{
153084 + const_gimple add_stmt;
153085 + const_tree add_rhs1, add_rhs2;
153086 +
153087 + if (node == NULL_TREE)
153088 + return false;
153089 +
153090 + add_stmt = get_def_stmt(node);
153091 + if (!add_stmt || !is_gimple_assign(add_stmt) || gimple_assign_rhs_code(add_stmt) != PLUS_EXPR)
153092 + return false;
153093 +
153094 + add_rhs1 = gimple_assign_rhs1(add_stmt);
153095 + add_rhs2 = gimple_assign_rhs2(add_stmt);
153096 + return is_short_cast_neg(add_rhs1) || is_short_cast_neg(add_rhs2);
153097 +}
153098 +
153099 +bool neg_short_add_intentional_overflow(gassign *unary_stmt)
153100 +{
153101 + const_tree rhs1, add_rhs1, add_rhs2, cast_rhs;
153102 + gimple cast_stmt;
153103 + const_gimple add_stmt;
153104 +
153105 + rhs1 = gimple_assign_rhs1(unary_stmt);
153106 +
153107 + cast_stmt = get_def_stmt(rhs1);
153108 + if (!cast_stmt || !gimple_assign_cast_p(cast_stmt))
153109 + return false;
153110 + cast_rhs = gimple_assign_rhs1(cast_stmt);
153111 + if (GET_MODE_BITSIZE(TYPE_MODE(TREE_TYPE(cast_rhs))) <= GET_MODE_BITSIZE(TYPE_MODE(TREE_TYPE(rhs1))))
153112 + return false;
153113 +
153114 + // one or two plus expressions
153115 + if (check_add_stmt(cast_rhs))
153116 + return true;
153117 +
153118 + add_stmt = get_def_stmt(cast_rhs);
153119 + if (!add_stmt || !is_gimple_assign(add_stmt))
153120 + return false;
153121 + add_rhs1 = gimple_assign_rhs1(add_stmt);
153122 + if (check_add_stmt(add_rhs1))
153123 + return true;
153124 + add_rhs2 = gimple_assign_rhs2(add_stmt);
153125 + return check_add_stmt(add_rhs2);
153126 +}
153127 +
153128 +/* True:
153129 + * _25 = (<unnamed-unsigned:1>) _24;
153130 + * r_5(D)->stereo = _25;
153131 + */
153132 +bool is_bitfield_unnamed_cast(const_tree decl, gassign *assign)
153133 +{
153134 + const_tree rhs, type;
153135 + gimple def_stmt;
153136 +
153137 + if (TREE_CODE(decl) != FIELD_DECL)
153138 + return false;
153139 + if (!DECL_BIT_FIELD_TYPE(decl))
153140 + return false;
153141 + if (gimple_num_ops(assign) != 2)
153142 + return false;
153143 +
153144 + rhs = gimple_assign_rhs1(assign);
153145 + if (is_gimple_constant(rhs))
153146 + return false;
153147 + type = TREE_TYPE(rhs);
153148 + if (TREE_CODE(type) == BOOLEAN_TYPE)
153149 + return false;
153150 +
153151 + def_stmt = get_def_stmt(rhs);
153152 + if (!gimple_assign_cast_p(def_stmt))
153153 + return false;
153154 + return TYPE_PRECISION(type) < CHAR_TYPE_SIZE;
153155 +}
153156 +
153157 +static bool is_mult_const(const_tree lhs)
153158 +{
153159 + const_gimple def_stmt;
153160 + const_tree rhs1, rhs2;
153161 +
153162 + def_stmt = get_def_stmt(lhs);
153163 + if (!def_stmt || !is_gimple_assign(def_stmt) || gimple_assign_rhs_code(def_stmt) != MULT_EXPR)
153164 + return false;
153165 +
153166 + rhs1 = gimple_assign_rhs1(def_stmt);
153167 + rhs2 = gimple_assign_rhs2(def_stmt);
153168 + if (is_gimple_constant(rhs1))
153169 + return !is_lt_signed_type_max(rhs1);
153170 + else if (is_gimple_constant(rhs2))
153171 + return !is_lt_signed_type_max(rhs2);
153172 + return false;
153173 +}
153174 +
153175 +/* True:
153176 + * fs/cifs/file.c cifs_write_from_iter()
153177 + * u32 = u64 - (u64 - constant) * constant
153178 + * wdata->tailsz = cur_len - (nr_pages - 1) * PAGE_SIZE;
153179 + *
153180 + * _51 = _50 * 4294963200;
153181 + * _52 = _49 + _51;
153182 + * _53 = _52 + 4096;
153183 + */
153184 +
153185 +bool uconst_neg_intentional_overflow(const gassign *stmt)
153186 +{
153187 + const_gimple def_stmt;
153188 + const_tree noconst_rhs;
153189 + tree rhs1, rhs2;
153190 +
153191 + // _53 = _52 + const;
153192 + if (gimple_assign_rhs_code(stmt) != PLUS_EXPR)
153193 + return false;
153194 + rhs1 = gimple_assign_rhs1(stmt);
153195 + rhs2 = gimple_assign_rhs2(stmt);
153196 + if (is_gimple_constant(rhs1))
153197 + noconst_rhs = rhs2;
153198 + else if (is_gimple_constant(rhs2))
153199 + noconst_rhs = rhs1;
153200 + else
153201 + return false;
153202 + def_stmt = get_def_stmt(noconst_rhs);
153203 +
153204 + // _52 = _49 + _51;
153205 + if (!def_stmt)
153206 + return false;
153207 + if (!is_gimple_assign(def_stmt))
153208 + return false;
153209 + if (gimple_assign_rhs_code(def_stmt) != PLUS_EXPR)
153210 + return false;
153211 + rhs1 = gimple_assign_rhs1(def_stmt);
153212 + rhs2 = gimple_assign_rhs2(def_stmt);
153213 + if (is_gimple_constant(rhs1) || is_gimple_constant(rhs2))
153214 + return false;
153215 +
153216 + // _51 = _50 * gt signed type max;
153217 + return is_mult_const(rhs1) || is_mult_const(rhs2);
153218 +}
153219 diff --git a/tools/gcc/size_overflow_plugin/remove_unnecessary_dup.c b/tools/gcc/size_overflow_plugin/remove_unnecessary_dup.c
153220 new file mode 100644
153221 index 0000000..5622b51
153222 --- /dev/null
153223 +++ b/tools/gcc/size_overflow_plugin/remove_unnecessary_dup.c
153224 @@ -0,0 +1,137 @@
153225 +/*
153226 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
153227 + * Licensed under the GPL v2, or (at your option) v3
153228 + *
153229 + * Homepage:
153230 + * https://github.com/ephox-gcc-plugins/size_overflow
153231 + *
153232 + * Documentation:
153233 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
153234 + *
153235 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
153236 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
153237 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
153238 + *
153239 + * Usage:
153240 + * $ make
153241 + * $ make run
153242 + */
153243 +
153244 +#include "size_overflow.h"
153245 +
153246 +bool skip_expr_on_double_type(const gassign *stmt)
153247 +{
153248 + enum tree_code code = gimple_assign_rhs_code(stmt);
153249 +
153250 + switch (code) {
153251 + case RSHIFT_EXPR:
153252 + case TRUNC_DIV_EXPR:
153253 + case CEIL_DIV_EXPR:
153254 + case FLOOR_DIV_EXPR:
153255 + case ROUND_DIV_EXPR:
153256 + case EXACT_DIV_EXPR:
153257 + case RDIV_EXPR:
153258 + case TRUNC_MOD_EXPR:
153259 + case CEIL_MOD_EXPR:
153260 + case FLOOR_MOD_EXPR:
153261 + case ROUND_MOD_EXPR:
153262 + return true;
153263 + default:
153264 + return false;
153265 + }
153266 +}
153267 +
153268 +void create_up_and_down_cast(struct visited *visited, gassign *use_stmt, tree orig_type, tree rhs)
153269 +{
153270 + const_tree orig_rhs1;
153271 + tree down_lhs, new_lhs, dup_type = TREE_TYPE(rhs);
153272 + const_gimple down_cast, up_cast;
153273 + gimple_stmt_iterator gsi = gsi_for_stmt(use_stmt);
153274 +
153275 + down_cast = build_cast_stmt(visited, orig_type, rhs, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false);
153276 + down_lhs = get_lhs(down_cast);
153277 +
153278 + gsi = gsi_for_stmt(use_stmt);
153279 + up_cast = build_cast_stmt(visited, dup_type, down_lhs, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false);
153280 + new_lhs = get_lhs(up_cast);
153281 +
153282 + orig_rhs1 = gimple_assign_rhs1(use_stmt);
153283 + if (operand_equal_p(orig_rhs1, rhs, 0))
153284 + gimple_assign_set_rhs1(use_stmt, new_lhs);
153285 + else
153286 + gimple_assign_set_rhs2(use_stmt, new_lhs);
153287 + update_stmt(use_stmt);
153288 +
153289 + pointer_set_insert(visited->my_stmts, up_cast);
153290 + pointer_set_insert(visited->my_stmts, down_cast);
153291 + pointer_set_insert(visited->skip_expr_casts, up_cast);
153292 + pointer_set_insert(visited->skip_expr_casts, down_cast);
153293 +}
153294 +
153295 +static tree get_proper_unsigned_half_type(const_tree node)
153296 +{
153297 + tree new_type, type;
153298 +
153299 + gcc_assert(is_size_overflow_type(node));
153300 +
153301 + type = TREE_TYPE(node);
153302 + switch (TYPE_MODE(type)) {
153303 + case HImode:
153304 + new_type = unsigned_intQI_type_node;
153305 + break;
153306 + case SImode:
153307 + new_type = unsigned_intHI_type_node;
153308 + break;
153309 + case DImode:
153310 + new_type = unsigned_intSI_type_node;
153311 + break;
153312 + case TImode:
153313 + new_type = unsigned_intDI_type_node;
153314 + break;
153315 + default:
153316 + gcc_unreachable();
153317 + }
153318 +
153319 + if (TYPE_QUALS(type) != 0)
153320 + return build_qualified_type(new_type, TYPE_QUALS(type));
153321 + return new_type;
153322 +}
153323 +
153324 +static void insert_cast_rhs(struct visited *visited, gassign *stmt, tree rhs)
153325 +{
153326 + tree type;
153327 +
153328 + if (rhs == NULL_TREE)
153329 + return;
153330 + if (!is_size_overflow_type(rhs))
153331 + return;
153332 +
153333 + type = get_proper_unsigned_half_type(rhs);
153334 + if (is_gimple_constant(rhs))
153335 + return;
153336 + create_up_and_down_cast(visited, stmt, type, rhs);
153337 +}
153338 +
153339 +static void insert_cast(struct visited *visited, gassign *stmt, tree rhs)
153340 +{
153341 + if (LONG_TYPE_SIZE == GET_MODE_BITSIZE(SImode) && !is_size_overflow_type(rhs))
153342 + return;
153343 + gcc_assert(is_size_overflow_type(rhs));
153344 + insert_cast_rhs(visited, stmt, rhs);
153345 +}
153346 +
153347 +void insert_cast_expr(struct visited *visited, gassign *stmt, enum intentional_overflow_type type)
153348 +{
153349 + tree rhs1, rhs2;
153350 +
153351 + if (type == NO_INTENTIONAL_OVERFLOW || type == RHS1_INTENTIONAL_OVERFLOW) {
153352 + rhs1 = gimple_assign_rhs1(stmt);
153353 + insert_cast(visited, stmt, rhs1);
153354 + }
153355 +
153356 + if (type == NO_INTENTIONAL_OVERFLOW || type == RHS2_INTENTIONAL_OVERFLOW) {
153357 + rhs2 = gimple_assign_rhs2(stmt);
153358 + insert_cast(visited, stmt, rhs2);
153359 + }
153360 +}
153361 +
153362 diff --git a/tools/gcc/size_overflow_plugin/size_overflow.h b/tools/gcc/size_overflow_plugin/size_overflow.h
153363 new file mode 100644
153364 index 0000000..b7f66f7
153365 --- /dev/null
153366 +++ b/tools/gcc/size_overflow_plugin/size_overflow.h
153367 @@ -0,0 +1,329 @@
153368 +#ifndef SIZE_OVERFLOW_H
153369 +#define SIZE_OVERFLOW_H
153370 +
153371 +#define CREATE_NEW_VAR NULL_TREE
153372 +#define MAX_PARAM 31
153373 +#define CANNOT_FIND_ARG 32
153374 +#define NONE_ARGNUM 32
153375 +
153376 +#define BEFORE_STMT true
153377 +#define AFTER_STMT false
153378 +
153379 +#define TURN_OFF_ASM_STR "# size_overflow MARK_TURN_OFF "
153380 +#define YES_ASM_STR "# size_overflow MARK_YES "
153381 +#define END_INTENTIONAL_ASM_STR "# size_overflow MARK_END_INTENTIONAL "
153382 +#define SO_ASM_STR "# size_overflow "
153383 +#define OK_ASM_STR "# size_overflow MARK_NO"
153384 +
153385 +#define FUNCTION_PTR_P(node) \
153386 + (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))
153387 +
153388 +#define CODES_LIMIT 32
153389 +
153390 +#define GLOBAL_NIFN_LEN 65536
153391 +#define NO_HASH 65537
153392 +
153393 +#define SIZE_OVERFLOW true
153394 +#define DISABLE_SIZE_OVERFLOW false
153395 +
153396 +#include "gcc-common.h"
153397 +
153398 +#include <string.h>
153399 +#include <limits.h>
153400 +
153401 +enum intentional_mark {
153402 + MARK_NO, MARK_YES, MARK_END_INTENTIONAL, MARK_TURN_OFF
153403 +};
153404 +
153405 +enum intentional_overflow_type {
153406 + NO_INTENTIONAL_OVERFLOW, RHS1_INTENTIONAL_OVERFLOW, RHS2_INTENTIONAL_OVERFLOW
153407 +};
153408 +
153409 +enum size_overflow_mark {
153410 + NO_SO_MARK, YES_SO_MARK, ASM_STMT_SO_MARK
153411 +};
153412 +
153413 +struct decl_hash {
153414 + size_t tree_codes_len;
153415 + unsigned char tree_codes[CODES_LIMIT];
153416 + const_tree decl;
153417 + const char *context;
153418 + unsigned int hash;
153419 + const char *fn_name;
153420 +};
153421 +
153422 +struct next_interesting_function;
153423 +typedef struct next_interesting_function * next_interesting_function_t;
153424 +
153425 +struct interesting_stmts;
153426 +typedef struct interesting_stmts * interesting_stmts_t;
153427 +
153428 +// Store data associated with the next_interesting_function_t entry
153429 +struct fn_raw_data
153430 +{
153431 + const char *decl_str;
153432 + tree decl;
153433 + const char *context;
153434 + unsigned int hash;
153435 + unsigned int num;
153436 + enum size_overflow_mark marked;
153437 +};
153438 +
153439 +#if BUILDING_GCC_VERSION <= 4007
153440 +DEF_VEC_P(next_interesting_function_t);
153441 +DEF_VEC_ALLOC_P(next_interesting_function_t, heap);
153442 +#endif
153443 +
153444 +#if BUILDING_GCC_VERSION >= 5000
153445 +typedef struct hash_set<const_gimple> gimple_set;
153446 +
153447 +static inline bool pointer_set_insert(gimple_set *visited, const_gimple stmt)
153448 +{
153449 + return visited->add(stmt);
153450 +}
153451 +
153452 +static inline bool pointer_set_contains(gimple_set *visited, const_gimple stmt)
153453 +{
153454 + return visited->contains(stmt);
153455 +}
153456 +
153457 +static inline gimple_set* pointer_set_create(void)
153458 +{
153459 + return new hash_set<const_gimple>;
153460 +}
153461 +
153462 +static inline void pointer_set_destroy(gimple_set *visited)
153463 +{
153464 + delete visited;
153465 +}
153466 +
153467 +typedef struct hash_set<next_interesting_function_t> next_interesting_function_set;
153468 +
153469 +static inline bool pointer_set_insert(next_interesting_function_set *visited, next_interesting_function_t node)
153470 +{
153471 + return visited->add(node);
153472 +}
153473 +
153474 +static inline bool pointer_set_contains(next_interesting_function_set *visited, next_interesting_function_t node)
153475 +{
153476 + return visited->contains(node);
153477 +}
153478 +
153479 +static inline next_interesting_function_set *next_interesting_function_pointer_set_create(void)
153480 +{
153481 + return new hash_set<next_interesting_function_t>;
153482 +}
153483 +
153484 +static inline void pointer_set_destroy(next_interesting_function_set *visited)
153485 +{
153486 + delete visited;
153487 +}
153488 +#else
153489 +typedef struct pointer_set_t gimple_set;
153490 +typedef struct pointer_set_t next_interesting_function_set;
153491 +
153492 +static inline next_interesting_function_set *next_interesting_function_pointer_set_create(void)
153493 +{
153494 + return pointer_set_create();
153495 +}
153496 +#endif
153497 +
153498 +struct visited {
153499 + gimple_set *stmts;
153500 + gimple_set *my_stmts;
153501 + gimple_set *skip_expr_casts;
153502 + gimple_set *no_cast_check;
153503 +};
153504 +
153505 +/*
153506 + * * children: callers with data flow into the integer parameter of decl
153507 + * * decl_name: name of the function or the field
153508 + * * context: the containing type name for a function pointer (or "fielddecl" if the type has no name), otherwise either "vardecl" or "fndecl"
153509 + * * hash: hash num of the function
153510 + * * num: parameter number (1-31) or return value (0)
153511 + * * marked: determines whether to duplicate stmts and/or look for missing hashtable entries
153512 + * * orig_next_node: pointer to the originally cloned function
153513 + */
153514 +
153515 +struct next_interesting_function {
153516 + next_interesting_function_t next;
153517 +#if BUILDING_GCC_VERSION <= 4007
153518 + VEC(next_interesting_function_t, heap) *children;
153519 +#else
153520 + vec<next_interesting_function_t, va_heap, vl_embed> *children;
153521 +#endif
153522 + const char *decl_name;
153523 + const char *context;
153524 + unsigned int hash;
153525 + unsigned int num;
153526 + enum size_overflow_mark marked;
153527 + next_interesting_function_t orig_next_node;
153528 +};
153529 +
153530 +// size_overflow_plugin.c
153531 +extern tree report_size_overflow_decl;
153532 +extern tree size_overflow_type_HI;
153533 +extern tree size_overflow_type_SI;
153534 +extern tree size_overflow_type_DI;
153535 +extern tree size_overflow_type_TI;
153536 +
153537 +
153538 +// size_overflow_plugin_hash.c
153539 +struct size_overflow_hash {
153540 + const struct size_overflow_hash * const next;
153541 + const char * const name;
153542 + const char * const context;
153543 + const unsigned int param;
153544 +};
153545 +
153546 +extern const char *get_orig_decl_name(const_tree decl);
153547 +extern bool is_size_overflow_asm(const_gimple stmt);
153548 +extern void print_missing_function(next_interesting_function_t node);
153549 +extern const struct size_overflow_hash *get_size_overflow_hash_entry_tree(const_tree fndecl, unsigned int argnum, bool hash_table);
153550 +extern unsigned int find_arg_number_tree(const_tree arg, const_tree func);
153551 +extern unsigned int get_decl_hash(const_tree decl, const char *decl_name);
153552 +extern const struct size_overflow_hash *get_size_overflow_hash_entry(unsigned int hash, const char *decl_name, const char *context, unsigned int argnum);
153553 +
153554 +
153555 +// intentional_overflow.c
153556 +extern enum intentional_mark get_intentional_attr_type(const_tree node);
153557 +extern tree get_size_overflow_asm_input(const gasm *stmt);
153558 +extern enum intentional_mark check_intentional_size_overflow_asm_and_attribute(const_tree var);
153559 +extern bool is_size_overflow_insert_check_asm(const gasm *stmt);
153560 +extern enum intentional_mark check_intentional_attribute(const_gimple stmt, unsigned int argnum);
153561 +extern enum intentional_mark get_so_asm_type(const_gimple stmt);
153562 +extern const_tree get_attribute(const char* attr_name, const_tree decl);
153563 +extern bool is_a_cast_and_const_overflow(const_tree no_const_rhs);
153564 +extern bool is_const_plus_unsigned_signed_truncation(const_tree lhs);
153565 +extern bool is_a_constant_overflow(const gassign *stmt, const_tree rhs);
153566 +extern tree handle_intentional_overflow(struct visited *visited, interesting_stmts_t expand_from, bool check_overflow, gassign *stmt, tree change_rhs, tree new_rhs2);
153567 +extern tree handle_integer_truncation(struct visited *visited, interesting_stmts_t expand_from, const_tree lhs);
153568 +extern bool is_a_neg_overflow(const gassign *stmt, const_tree rhs);
153569 +extern enum intentional_overflow_type add_mul_intentional_overflow(const gassign *stmt);
153570 +extern void unsigned_signed_cast_intentional_overflow(struct visited *visited, gassign *stmt);
153571 +extern bool neg_short_add_intentional_overflow(gassign *stmt);
153572 +extern bool is_bitfield_unnamed_cast(const_tree decl, gassign *assign);
153573 +extern bool uconst_neg_intentional_overflow(const gassign *stmt);
153574 +
153575 +
153576 +// insert_size_overflow_asm.c
153577 +#if BUILDING_GCC_VERSION >= 4009
153578 +extern opt_pass *make_insert_size_overflow_asm_pass(void);
153579 +#else
153580 +extern struct opt_pass *make_insert_size_overflow_asm_pass(void);
153581 +#endif
153582 +extern bool search_interesting_args(tree fndecl, bool *argnums);
153583 +
153584 +
153585 +// size_overflow_misc.c
153586 +extern bool is_vararg(const_tree fn, unsigned int num);
153587 +extern tree get_ref_field(const_tree ref);
153588 +extern unsigned int get_correct_argnum_fndecl(const_tree fndecl, const_tree correct_argnum_of_fndecl, unsigned int num);
153589 +extern const char *get_type_name_from_field(const_tree field_decl);
153590 +extern void set_dominance_info(void);
153591 +extern void unset_dominance_info(void);
153592 +extern tree get_interesting_orig_fndecl_from_stmt(const gcall *stmt);
153593 +extern tree get_orig_fndecl(const_tree clone_fndecl);
153594 +extern unsigned int get_correct_argnum(const_tree decl, const_tree correct_argnum_of_decl, unsigned int argnum);
153595 +extern bool is_valid_cgraph_node(struct cgraph_node *node);
153596 +extern void set_current_function_decl(tree fndecl);
153597 +extern void unset_current_function_decl(void);
153598 +extern gimple get_def_stmt(const_tree node);
153599 +extern tree create_new_var(tree type);
153600 +extern gimple build_cast_stmt(struct visited *visited, tree dst_type, tree rhs, tree lhs, gimple_stmt_iterator *gsi, bool before, bool force);
153601 +extern bool skip_types(const_tree var);
153602 +extern tree cast_a_tree(tree type, tree var);
153603 +extern bool is_size_overflow_type(const_tree var);
153604 +extern bool made_by_compiler(const_tree decl);
153605 +extern gimple get_fnptr_def_stmt(const_tree fn_ptr);
153606 +extern tree get_lhs(const_gimple stmt);
153607 +
153608 +
153609 +// size_overflow_transform.c
153610 +struct interesting_stmts {
153611 + struct interesting_stmts *next;
153612 + next_interesting_function_t next_node;
153613 + gimple first_stmt;
153614 + tree orig_node;
153615 + unsigned int num;
153616 +};
153617 +
153618 +extern unsigned int size_overflow_function_transform(struct cgraph_node *node);
153619 +extern tree handle_fnptr_assign(const_gimple stmt);
153620 +
153621 +
153622 +// size_overflow_transform_core.c
153623 +extern tree cast_to_new_size_overflow_type(struct visited *visited, gimple stmt, tree rhs, tree size_overflow_type, bool before);
153624 +extern tree get_size_overflow_type(struct visited *visited, const_gimple stmt, const_tree node);
153625 +extern tree expand(struct visited *visited, interesting_stmts_t expand_from, tree lhs);
153626 +extern void check_size_overflow(interesting_stmts_t expand_from, gimple stmt, tree size_overflow_type, tree cast_rhs, tree rhs, bool before);
153627 +extern tree dup_assign(struct visited *visited, gassign *oldstmt, const_tree node, tree rhs1, tree rhs2, tree __unused rhs3);
153628 +extern tree create_assign(struct visited *visited, gimple oldstmt, tree rhs1, bool before);
153629 +
153630 +
153631 +// remove_unnecessary_dup.c
153632 +extern struct opt_pass *make_remove_unnecessary_dup_pass(void);
153633 +extern void insert_cast_expr(struct visited *visited, gassign *stmt, enum intentional_overflow_type type);
153634 +extern bool skip_expr_on_double_type(const gassign *stmt);
153635 +extern void create_up_and_down_cast(struct visited *visited, gassign *use_stmt, tree orig_type, tree rhs);
153636 +
153637 +
153638 +// size_overflow_ipa.c
153639 +struct walk_use_def_data {
153640 + next_interesting_function_t parent;
153641 + next_interesting_function_t next_cnodes_head;
153642 + gimple_set *visited;
153643 +};
153644 +
153645 +extern const char* get_decl_context(const_tree decl);
153646 +extern void add_to_global_next_interesting_function(next_interesting_function_t new_entry);
153647 +extern bool has_next_interesting_function_vec(next_interesting_function_t target, next_interesting_function_t next_node);
153648 +extern void push_child(next_interesting_function_t parent, next_interesting_function_t child);
153649 +extern struct cgraph_node *get_cnode(const_tree fndecl);
153650 +extern next_interesting_function_t global_next_interesting_function[GLOBAL_NIFN_LEN];
153651 +extern next_interesting_function_t get_global_next_interesting_function_entry(struct fn_raw_data *raw_data);
153652 +extern next_interesting_function_t get_global_next_interesting_function_entry_with_hash(struct fn_raw_data *raw_data);
153653 +extern void size_overflow_register_hooks(void);
153654 +#if BUILDING_GCC_VERSION >= 4009
153655 +extern opt_pass *make_size_overflow_pass(void);
153656 +#else
153657 +extern struct opt_pass *make_size_overflow_pass(void);
153658 +#endif
153659 +extern void size_overflow_node_removal_hook(struct cgraph_node *node, void *data);
153660 +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);
153661 +extern next_interesting_function_t create_new_next_interesting_decl(struct fn_raw_data *raw_data, next_interesting_function_t orig_next_node);
153662 +extern next_interesting_function_t create_new_next_interesting_entry(struct fn_raw_data *raw_data, next_interesting_function_t orig_next_node);
153663 +
153664 +
153665 +// size_overflow_lto.c
153666 +extern void size_overflow_read_summary(void);
153667 +extern void size_overflow_read_optimization_summary(void);
153668 +#if BUILDING_GCC_VERSION >= 4008
153669 +extern void size_overflow_write_summary(void);
153670 +extern void size_overflow_write_optimization_summary(void);
153671 +#elif BUILDING_GCC_VERSION >= 4006
153672 +extern void size_overflow_write_summary(cgraph_node_set set, varpool_node_set vset);
153673 +extern void size_overflow_write_optimization_summary(cgraph_node_set set, varpool_node_set vset);
153674 +#else
153675 +extern void size_overflow_write_summary(cgraph_node_set set);
153676 +extern void size_overflow_write_optimization_summary(cgraph_node_set set);
153677 +#endif
153678 +
153679 +// size_overflow_fnptrs.c
153680 +extern void handle_function_ptr_ret(struct walk_use_def_data *use_def_data, const_tree fn_ptr);
153681 +extern void check_local_variables(next_interesting_function_t next_node);
153682 +extern void check_global_variables(next_interesting_function_t cur_global);
153683 +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);
153684 +
153685 +
153686 +// size_overflow_debug.c
153687 +extern void __unused print_intentional_mark(enum intentional_mark mark);
153688 +extern unsigned int __unused size_overflow_dump_function(FILE *file, struct cgraph_node *node);
153689 +extern void __unused print_next_interesting_functions_chain(next_interesting_function_t head, bool only_this);
153690 +extern void __unused print_global_next_interesting_functions(void);
153691 +extern void __unused print_children_chain_list(next_interesting_function_t next_node);
153692 +extern void __unused print_all_next_node_children_chain_list(next_interesting_function_t next_node);
153693 +extern const char * __unused print_so_mark_name(enum size_overflow_mark mark);
153694 +extern const char * __unused print_intentional_mark_name(enum intentional_mark mark);
153695 +
153696 +#endif
153697 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_debug.c b/tools/gcc/size_overflow_plugin/size_overflow_debug.c
153698 new file mode 100644
153699 index 0000000..fc58e16
153700 --- /dev/null
153701 +++ b/tools/gcc/size_overflow_plugin/size_overflow_debug.c
153702 @@ -0,0 +1,194 @@
153703 +/*
153704 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
153705 + * Licensed under the GPL v2, or (at your option) v3
153706 + *
153707 + * Homepage:
153708 + * https://github.com/ephox-gcc-plugins/size_overflow
153709 + *
153710 + * Documentation:
153711 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
153712 + *
153713 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
153714 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
153715 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
153716 + *
153717 + * Usage:
153718 + * $ make
153719 + * $ make run
153720 + */
153721 +
153722 +#include "size_overflow.h"
153723 +
153724 +void __unused print_intentional_mark(enum intentional_mark mark)
153725 +{
153726 + fprintf(stderr, "intentional mark: ");
153727 + switch (mark) {
153728 + case MARK_NO:
153729 + fprintf(stderr, "mark_no\n");
153730 + break;
153731 + case MARK_YES:
153732 + fprintf(stderr, "mark_yes\n");
153733 + break;
153734 + case MARK_TURN_OFF:
153735 + fprintf(stderr, "mark_turn_off\n");
153736 + break;
153737 + case MARK_END_INTENTIONAL:
153738 + fprintf(stderr, "mark_end_intentional\n");
153739 + break;
153740 + }
153741 +}
153742 +
153743 +unsigned int __unused size_overflow_dump_function(FILE *file, struct cgraph_node *node)
153744 +{
153745 + basic_block bb;
153746 +
153747 + fprintf(file, "dump_function function_name: %s\n", cgraph_node_name(node));
153748 +
153749 + fprintf(file, "\nstmts:\n");
153750 + FOR_EACH_BB_FN(bb, DECL_STRUCT_FUNCTION(NODE_DECL(node))) {
153751 + gimple_stmt_iterator si;
153752 +
153753 + fprintf(file, "<bb %u>:\n", bb->index);
153754 + for (si = gsi_start_phis(bb); !gsi_end_p(si); gsi_next(&si))
153755 + print_gimple_stmt(file, gsi_stmt(si), 0, TDF_VOPS|TDF_MEMSYMS);
153756 + for (si = gsi_start_bb(bb); !gsi_end_p(si); gsi_next(&si))
153757 + print_gimple_stmt(file, gsi_stmt(si), 0, TDF_VOPS|TDF_MEMSYMS);
153758 + fprintf(file, "\n");
153759 + }
153760 +
153761 + fprintf(file, "---------------------------------\n");
153762 +
153763 + return 0;
153764 +}
153765 +
153766 +static void __unused print_next_interesting_function(next_interesting_function_t node)
153767 +{
153768 + unsigned int i, children_len;
153769 + next_interesting_function_t cur;
153770 +
153771 + if (!node)
153772 + return;
153773 +
153774 +#if BUILDING_GCC_VERSION <= 4007
153775 + if (VEC_empty(next_interesting_function_t, node->children))
153776 + children_len = 0;
153777 + else
153778 + children_len = VEC_length(next_interesting_function_t, node->children);
153779 +#else
153780 + children_len = vec_safe_length(node->children);
153781 +#endif
153782 +
153783 + fprintf(stderr, "print_next_interesting_function: ptr: %p, ", node);
153784 + fprintf(stderr, "decl_name: %s, ", node->decl_name);
153785 +
153786 + fprintf(stderr, "num: %u marked: %s context: %s children len: %u\n", node->num, print_so_mark_name(node->marked), node->context, children_len);
153787 +#if BUILDING_GCC_VERSION <= 4007
153788 + if (VEC_empty(next_interesting_function_t, node->children))
153789 + return;
153790 + FOR_EACH_VEC_ELT(next_interesting_function_t, node->children, i, cur) {
153791 +#else
153792 + FOR_EACH_VEC_SAFE_ELT(node->children, i, cur) {
153793 +#endif
153794 + 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);
153795 + }
153796 +}
153797 +
153798 +// Dump the full next_interesting_function_t list for parsing by print_dependecy.py
153799 +void __unused print_next_interesting_functions_chain(next_interesting_function_t head, bool only_this)
153800 +{
153801 + next_interesting_function_t cur;
153802 + unsigned int len;
153803 +
153804 + fprintf(stderr, "----------------------\nnext_interesting_function_t head: %p\n", head);
153805 + for (cur = head, len = 0; cur; cur = cur->next, len++) {
153806 + fprintf(stderr, "%u. ", len + 1);
153807 + print_next_interesting_function(cur);
153808 +
153809 + fprintf(stderr, "+++++ has orig node: %p +++++\n", cur->orig_next_node);
153810 + print_next_interesting_function(cur->orig_next_node);
153811 +
153812 + if (only_this)
153813 + break;
153814 + }
153815 +
153816 + fprintf(stderr, "len: %u\n----------------------\n\n\n", len + 1);
153817 +}
153818 +
153819 +void __unused print_global_next_interesting_functions(void)
153820 +{
153821 + unsigned int i;
153822 +
153823 + fprintf(stderr, "----------------------\nprint_global_next_interesting_functions:\n----------------------\n");
153824 + for (i = 0; i < GLOBAL_NIFN_LEN; i++) {
153825 + if (!global_next_interesting_function[i])
153826 + continue;
153827 + fprintf(stderr, "hash: %u\n", i);
153828 + print_next_interesting_functions_chain(global_next_interesting_function[i], false);
153829 + }
153830 + fprintf(stderr, "----------------------\n\n");
153831 +}
153832 +
153833 +// Dump the information related to the specified next_interesting_function_t for parsing by print_dependecy.py
153834 +void __unused print_children_chain_list(next_interesting_function_t next_node)
153835 +{
153836 + next_interesting_function_t cur;
153837 + unsigned int i;
153838 +
153839 +#if BUILDING_GCC_VERSION <= 4007
153840 + if (VEC_empty(next_interesting_function_t, next_node->children))
153841 + return;
153842 + FOR_EACH_VEC_ELT(next_interesting_function_t, next_node->children, i, cur) {
153843 +#else
153844 + FOR_EACH_VEC_SAFE_ELT(next_node->children, i, cur) {
153845 +#endif
153846 + 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);
153847 + print_children_chain_list(cur);
153848 + }
153849 +}
153850 +
153851 +void __unused print_all_next_node_children_chain_list(next_interesting_function_t head)
153852 +{
153853 + next_interesting_function_t cur;
153854 +
153855 + for (cur = head; cur; cur = cur->next) {
153856 +#if BUILDING_GCC_VERSION <= 4007
153857 + if (VEC_empty(next_interesting_function_t, cur->children))
153858 +#else
153859 + if (vec_safe_length(cur->children) == 0)
153860 +#endif
153861 + continue;
153862 + fprintf(stderr, "############ START ############\n");
153863 + print_children_chain_list(cur);
153864 + fprintf(stderr, "############ END ############\n");
153865 + }
153866 +}
153867 +
153868 +const char * __unused print_intentional_mark_name(enum intentional_mark mark)
153869 +{
153870 + switch(mark) {
153871 + case MARK_NO:
153872 + return "mark no";
153873 + case MARK_YES:
153874 + return "mark yes";
153875 + case MARK_END_INTENTIONAL:
153876 + return "mark end intetional";
153877 + case MARK_TURN_OFF:
153878 + return "mark turn off";
153879 + }
153880 +
153881 + gcc_unreachable();
153882 +}
153883 +
153884 +const char * __unused print_so_mark_name(enum size_overflow_mark mark)
153885 +{
153886 + switch(mark) {
153887 + case ASM_STMT_SO_MARK:
153888 + return "asm_stmt_so_mark";
153889 + case YES_SO_MARK:
153890 + return "yes_so_mark";
153891 + case NO_SO_MARK:
153892 + return "no_so_mark";
153893 + }
153894 +
153895 + gcc_unreachable();
153896 +}
153897 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_hash.data b/tools/gcc/size_overflow_plugin/size_overflow_hash.data
153898 new file mode 100644
153899 index 0000000..3702ccea
153900 --- /dev/null
153901 +++ b/tools/gcc/size_overflow_plugin/size_overflow_hash.data
153902 @@ -0,0 +1,21512 @@
153903 +enable_so_recv_ctrl_pipe_us_data_0 recv_ctrl_pipe us_data 0 0 NULL
153904 +enable_so___earlyonly_bootmem_alloc_fndecl_3 __earlyonly_bootmem_alloc fndecl 2-3-4 3 NULL
153905 +enable_so_v9fs_xattr_get_acl_fndecl_4 v9fs_xattr_get_acl fndecl 5 4 NULL
153906 +enable_so_size_ttm_mem_reg_8 size ttm_mem_reg 0 8 NULL
153907 +enable_so_char2uni_nls_table_12 char2uni nls_table 0 12 NULL
153908 +enable_so_nrbufs_pipe_inode_info_13 nrbufs pipe_inode_info 0 13 NULL nohasharray
153909 +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
153910 +enable_so_payload_len_ipv6hdr_16 payload_len ipv6hdr 0 16 NULL
153911 +enable_so_NumPhys__EVENT_DATA_SAS_EXPANDER_STATUS_CHANGE_17 NumPhys _EVENT_DATA_SAS_EXPANDER_STATUS_CHANGE 0 17 NULL
153912 +enable_so_pci_mem_start_qed_dev_info_18 pci_mem_start qed_dev_info 0 18 NULL
153913 +enable_so_max_name_len_fndecl_19 max_name_len fndecl 0 19 NULL nohasharray
153914 +enable_so_kfd_wait_on_events_fndecl_19 kfd_wait_on_events fndecl 2 19 &enable_so_max_name_len_fndecl_19
153915 +enable_so_ext4_seek_data_fndecl_21 ext4_seek_data fndecl 2 21 NULL
153916 +enable_so_dma_buf_sz_sxgbe_priv_data_24 dma_buf_sz sxgbe_priv_data 0 24 NULL nohasharray
153917 +enable_so_max_cache_pages_snd_emu10k1_24 max_cache_pages snd_emu10k1 0 24 &enable_so_dma_buf_sz_sxgbe_priv_data_24
153918 +enable_so_T9_reportid_max_mxt_data_25 T9_reportid_max mxt_data 0 25 NULL
153919 +enable_so_max_frags_vxge_hw_fifo_config_26 max_frags vxge_hw_fifo_config 0 26 NULL
153920 +enable_so_ocfs2_xattr_get_clusters_fndecl_34 ocfs2_xattr_get_clusters fndecl 0 34 NULL nohasharray
153921 +enable_so_ath10k_core_create_fndecl_34 ath10k_core_create fndecl 1 34 &enable_so_ocfs2_xattr_get_clusters_fndecl_34
153922 +enable_so_total_drm_buf_35 total drm_buf 0 35 NULL
153923 +enable_so_sis5595_device_add_fndecl_39 sis5595_device_add fndecl 1 39 NULL
153924 +enable_so_mc_vram_size_amdgpu_mc_45 mc_vram_size amdgpu_mc 0 45 NULL
153925 +enable_so_pattern_len_tcf_em_text_57 pattern_len tcf_em_text 0 57 NULL nohasharray
153926 +enable_so_p54_init_common_fndecl_57 p54_init_common fndecl 1 57 &enable_so_pattern_len_tcf_em_text_57
153927 +enable_so_rx_desc_count_i40evf_adapter_62 rx_desc_count i40evf_adapter 0 62 NULL nohasharray
153928 +enable_so_bin_to_hex_dup_fndecl_62 bin_to_hex_dup fndecl 2 62 &enable_so_rx_desc_count_i40evf_adapter_62
153929 +enable_so_len_nf_ct_ext_63 len nf_ct_ext 0 63 NULL
153930 +enable_so_sl811_hc_init_fndecl_66 sl811_hc_init fndecl 2-3 66 NULL
153931 +enable_so_cipso_v4_delopt_fndecl_67 cipso_v4_delopt fndecl 0 67 NULL
153932 +enable_so_npages_mlx5_pages_req_70 npages mlx5_pages_req 0 70 NULL
153933 +enable_so_mtt_seg_size_mthca_limits_72 mtt_seg_size mthca_limits 0 72 NULL
153934 +enable_so_iov_iter_get_pages_alloc_fndecl_76 iov_iter_get_pages_alloc fndecl 0-3 76 NULL
153935 +enable_so_iwch_reject_cr_fndecl_78 iwch_reject_cr fndecl 3 78 NULL
153936 +enable_so_data_size_data_queue_85 data_size data_queue 0 85 NULL
153937 +enable_so_ceph_dir_llseek_fndecl_99 ceph_dir_llseek fndecl 2 99 NULL
153938 +enable_so_erase_size_flash_info_100 erase_size flash_info 0 100 NULL
153939 +enable_so_ncp_do_request_fndecl_102 ncp_do_request fndecl 2-4-0 102 NULL
153940 +enable_so_fi_blkno_ocfs2_find_inode_args_104 fi_blkno ocfs2_find_inode_args 0 104 NULL
153941 +enable_so_phase_snd_usb_endpoint_106 phase snd_usb_endpoint 0 106 NULL
153942 +enable_so_kvm_read_guest_fndecl_107 kvm_read_guest fndecl 2-4 107 NULL
153943 +enable_so_add_new_gdb_meta_bg_fndecl_116 add_new_gdb_meta_bg fndecl 3 116 NULL
153944 +enable_so_buffer_min_vardecl_floppy_c_117 buffer_min vardecl_floppy.c 0 117 NULL
153945 +enable_so_needed_tailroom_net_device_118 needed_tailroom net_device 0 118 NULL
153946 +enable_so_send_remove_xattr_fndecl_122 send_remove_xattr fndecl 4 122 NULL
153947 +enable_so_ipath_reg_phys_mr_fndecl_125 ipath_reg_phys_mr fndecl 3 125 NULL
153948 +enable_so_in_ep_rtl_usb_128 in_ep rtl_usb 0 128 NULL nohasharray
153949 +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
153950 +enable_so_xfs_dir_removename_fndecl_133 xfs_dir_removename fndecl 7 133 NULL
153951 +enable_so_cifs_setxattr_fndecl_134 cifs_setxattr fndecl 4 134 NULL
153952 +enable_so_nr_pages_dma_mapping_136 nr_pages dma_mapping 0 136 NULL
153953 +enable_so_data_offset_netup_dma_139 data_offset netup_dma 0 139 NULL nohasharray
153954 +enable_so_len_io_failure_record_139 len io_failure_record 0 139 &enable_so_data_offset_netup_dma_139
153955 +enable_so_n_mac_vlan_filters_vfpf_set_q_filters_tlv_142 n_mac_vlan_filters vfpf_set_q_filters_tlv 0 142 NULL nohasharray
153956 +enable_so_qib_alloc_mr_fndecl_142 qib_alloc_mr fndecl 3 142 &enable_so_n_mac_vlan_filters_vfpf_set_q_filters_tlv_142
153957 +enable_so_leaf_move_items_fndecl_145 leaf_move_items fndecl 4 145 NULL
153958 +enable_so_ir_context_support_fw_ohci_147 ir_context_support fw_ohci 0 147 NULL
153959 +enable_so_jffs2_nfs_get_inode_fndecl_152 jffs2_nfs_get_inode fndecl 2 152 NULL
153960 +enable_so_uvc_endpoint_max_bpi_fndecl_155 uvc_endpoint_max_bpi fndecl 0 155 NULL
153961 +enable_so_ext4_ext_remove_space_fndecl_170 ext4_ext_remove_space fndecl 2-3 170 NULL
153962 +enable_so_acl_len_nfs_getaclres_171 acl_len nfs_getaclres 0 171 NULL
153963 +enable_so_vfs_write_fndecl_176 vfs_write fndecl 3-0 176 NULL
153964 +enable_so_ufx_read_edid_fndecl_184 ufx_read_edid fndecl 0 184 NULL
153965 +enable_so_ci_get_data_fndecl_185 ci_get_data fndecl 3 185 NULL
153966 +enable_so_length_sl811h_ep_186 length sl811h_ep 0 186 NULL
153967 +enable_so_sddr55_write_data_fndecl_188 sddr55_write_data fndecl 4-3 188 NULL
153968 +enable_so_mptctl_do_fw_download_fndecl_190 mptctl_do_fw_download fndecl 3 190 NULL
153969 +enable_so_traffic_class_ib_sa_path_rec_191 traffic_class ib_sa_path_rec 0 191 NULL
153970 +enable_so_brcmf_iovar_data_set_fndecl_192 brcmf_iovar_data_set fndecl 4 192 NULL
153971 +enable_so_give_pages_fndecl_198 give_pages fndecl 3 198 NULL
153972 +enable_so_sys_pwrite64_fndecl_206 sys_pwrite64 fndecl 3 206 NULL
153973 +enable_so_xfs_zero_file_space_fndecl_211 xfs_zero_file_space fndecl 2-3 211 NULL nohasharray
153974 +enable_so_bn_shadow_fndecl_211 bn_shadow fndecl 2 211 &enable_so_xfs_zero_file_space_fndecl_211
153975 +enable_so_cxgb_alloc_mem_fndecl_212 cxgb_alloc_mem fndecl 1 212 NULL
153976 +enable_so_copies_r10conf_216 copies r10conf 0 216 NULL
153977 +enable_so_optrom_size_qla_hw_data_230 optrom_size qla_hw_data 0 230 NULL
153978 +enable_so_pvid_ocrdma_dev_231 pvid ocrdma_dev 0 231 NULL nohasharray
153979 +enable_so_afs_cell_alloc_fndecl_231 afs_cell_alloc fndecl 2 231 &enable_so_pvid_ocrdma_dev_231
153980 +enable_so_ad9523_write_fndecl_233 ad9523_write fndecl 2 233 NULL
153981 +enable_so_ocfs2_mark_extent_refcounted_fndecl_240 ocfs2_mark_extent_refcounted fndecl 6-4 240 NULL
153982 +enable_so_musb_readw_vardecl_241 musb_readw vardecl 0 241 NULL
153983 +enable_so_sysv_inode_by_name_fndecl_242 sysv_inode_by_name fndecl 0 242 NULL
153984 +enable_so_offset_nvkm_vma_248 offset nvkm_vma 0 248 NULL
153985 +enable_so_amdgpu_vm_directory_size_fndecl_249 amdgpu_vm_directory_size fndecl 0 249 NULL
153986 +enable_so_ixgbevf_change_mtu_fndecl_251 ixgbevf_change_mtu fndecl 2 251 NULL nohasharray
153987 +enable_so_pclk_limit_ov6650_251 pclk_limit ov6650 0 251 &enable_so_ixgbevf_change_mtu_fndecl_251 nohasharray
153988 +enable_so_saved_skb_len_nfc_digital_dev_251 saved_skb_len nfc_digital_dev 0 251 &enable_so_pclk_limit_ov6650_251
153989 +enable_so_minimum_acpi_address32_attribute_256 minimum acpi_address32_attribute 0 256 NULL
153990 +enable_so_venus_symlink_fndecl_257 venus_symlink fndecl 6-4 257 NULL
153991 +enable_so_l2cap_parse_conf_req_fndecl_260 l2cap_parse_conf_req fndecl 0 260 NULL
153992 +enable_so_scsiback_max_buffer_pages_vardecl_xen_scsiback_c_263 scsiback_max_buffer_pages vardecl_xen-scsiback.c 0 263 NULL nohasharray
153993 +enable_so_lf_entries_gfs2_leaf_263 lf_entries gfs2_leaf 0 263 &enable_so_scsiback_max_buffer_pages_vardecl_xen_scsiback_c_263
153994 +enable_so_max_can_queue_fc_fcp_internal_270 max_can_queue fc_fcp_internal 0 270 NULL
153995 +enable_so_dbg_leb_change_fndecl_272 dbg_leb_change fndecl 4 272 NULL
153996 +enable_so_tcp_current_mss_fndecl_275 tcp_current_mss fndecl 0 275 NULL
153997 +enable_so_vmbus_sendpacket_multipagebuffer_fndecl_276 vmbus_sendpacket_multipagebuffer fndecl 4 276 NULL
153998 +enable_so_es_lblk_extent_status_280 es_lblk extent_status 0 280 NULL
153999 +enable_so_read_snd_midi_event_282 read snd_midi_event 0 282 NULL
154000 +enable_so_bytesperline_sh_veu_vfmt_288 bytesperline sh_veu_vfmt 0 288 NULL nohasharray
154001 +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
154002 +enable_so_islpci_mgt_transaction_fndecl_297 islpci_mgt_transaction fndecl 5 297 NULL
154003 +enable_so__alloc_cdb_cont_fndecl_298 _alloc_cdb_cont fndecl 2 298 NULL
154004 +enable_so_xfs_qm_dqread_fndecl_302 xfs_qm_dqread fndecl 2 302 NULL nohasharray
154005 +enable_so_num_targets_dm_table_302 num_targets dm_table 0 302 &enable_so_xfs_qm_dqread_fndecl_302
154006 +enable_so_xfpregs_get_fndecl_305 xfpregs_get fndecl 4 305 NULL
154007 +enable_so_cfpkt_create_pfx_fndecl_313 cfpkt_create_pfx fndecl 2 313 NULL
154008 +enable_so_MaxBufferSize_negotiate_rsp_314 MaxBufferSize negotiate_rsp 0 314 NULL nohasharray
154009 +enable_so_ip_num_acl_subject_label_314 ip_num acl_subject_label 0 314 &enable_so_MaxBufferSize_negotiate_rsp_314
154010 +enable_so_name_len_jffs2_raw_xattr_318 name_len jffs2_raw_xattr 0 318 NULL
154011 +enable_so_num_alt_usb_usbvision_328 num_alt usb_usbvision 0 328 NULL
154012 +enable_so_start_fb_cmap_user_333 start fb_cmap_user 0 333 NULL
154013 +enable_so_block_size_se_dev_attrib_334 block_size se_dev_attrib 0 334 NULL
154014 +enable_so_done_status_atmel_spi_338 done_status atmel_spi 0 338 NULL
154015 +enable_so_udl_submit_urb_fndecl_353 udl_submit_urb fndecl 3 353 NULL
154016 +enable_so_tx_idx_bchannel_355 tx_idx bchannel 0 355 NULL
154017 +enable_so_alt_port_mthca_qp_358 alt_port mthca_qp 0 358 NULL
154018 +enable_so_bNumConfigurations_usb_device_descriptor_360 bNumConfigurations usb_device_descriptor 0 360 NULL
154019 +enable_so_link_buf_size_dvb_ca_slot_365 link_buf_size dvb_ca_slot 0 365 NULL
154020 +enable_so_length_st21nfca_atr_req_366 length st21nfca_atr_req 0 366 NULL
154021 +enable_so_setup_ctxt_fndecl_374 setup_ctxt fndecl 2 374 NULL nohasharray
154022 +enable_so_intel_soc_dts_iosf_init_fndecl_374 intel_soc_dts_iosf_init fndecl 2 374 &enable_so_setup_ctxt_fndecl_374
154023 +enable_so___i2400mu_send_barker_fndecl_375 __i2400mu_send_barker fndecl 3 375 NULL
154024 +enable_so_cx18_read_fndecl_384 cx18_read fndecl 3 384 NULL
154025 +enable_so_duplex_tg3_link_config_395 duplex tg3_link_config 0 395 NULL
154026 +enable_so_keyspan_pda_write_fndecl_398 keyspan_pda_write fndecl 4 398 NULL
154027 +enable_so_cyberjack_write_fndecl_399 cyberjack_write fndecl 4 399 NULL
154028 +enable_so_mlxsw_cmd_mbox_query_aq_cap_max_num_eqs_get_fndecl_402 mlxsw_cmd_mbox_query_aq_cap_max_num_eqs_get fndecl 0 402 NULL
154029 +enable_so_ext_clk_freq_hz_smiapp_pll_409 ext_clk_freq_hz smiapp_pll 0 409 NULL nohasharray
154030 +enable_so_result_iscsi_bsg_reply_409 result iscsi_bsg_reply 0 409 &enable_so_ext_clk_freq_hz_smiapp_pll_409
154031 +enable_so_fcp_resid_bnx2fc_cmd_412 fcp_resid bnx2fc_cmd 0 412 NULL
154032 +enable_so_base_cbuf_417 base cbuf 0 417 NULL
154033 +enable_so_mp_config_acpi_gsi_fndecl_419 mp_config_acpi_gsi fndecl 2 419 NULL
154034 +enable_so_fat_short2uni_fndecl_423 fat_short2uni fndecl 0 423 NULL
154035 +enable_so_vol_reg_size_tas571x_chip_426 vol_reg_size tas571x_chip 0 426 NULL
154036 +enable_so_status_netdev_desc_430 status netdev_desc 0 430 NULL
154037 +enable_so_twsk_obj_size_timewait_sock_ops_433 twsk_obj_size timewait_sock_ops 0 433 NULL
154038 +enable_so_hfs_file_fsync_fndecl_434 hfs_file_fsync fndecl 2-3 434 NULL
154039 +enable_so_rx_buf_sz_rhine_private_435 rx_buf_sz rhine_private 0 435 NULL
154040 +enable_so_id_alias_prop_438 id alias_prop 0 438 NULL
154041 +enable_so_get_conn_info_fndecl_440 get_conn_info fndecl 4 440 NULL
154042 +enable_so_intr_count_ql_adapter_442 intr_count ql_adapter 0 442 NULL
154043 +enable_so_challenge_len_ieee802_11_elems_444 challenge_len ieee802_11_elems 0 444 NULL
154044 +enable_so_cem_build_path_fndecl_451 cem_build_path fndecl 0 451 NULL
154045 +enable_so_width_g2d_frame_453 width g2d_frame 0 453 NULL
154046 +enable_so___kfifo_max_r_fndecl_459 __kfifo_max_r fndecl 0-1-2 459 NULL nohasharray
154047 +enable_so_root_entry_lctp_fndecl_459 root_entry_lctp fndecl 0 459 &enable_so___kfifo_max_r_fndecl_459
154048 +enable_so_e_shnum_elf64_hdr_461 e_shnum elf64_hdr 0 461 NULL
154049 +enable_so_udf_load_logicalvol_fndecl_471 udf_load_logicalvol fndecl 2 471 NULL nohasharray
154050 +enable_so_rx_rx_dropped_frame_read_fndecl_471 rx_rx_dropped_frame_read fndecl 3 471 &enable_so_udf_load_logicalvol_fndecl_471
154051 +enable_so_make_checksum_v2_fndecl_475 make_checksum_v2 fndecl 3-5 475 NULL
154052 +enable_so_map_write_fndecl_480 map_write fndecl 3 480 NULL
154053 +enable_so_diva_alloc_dma_map_fndecl_485 diva_alloc_dma_map fndecl 2 485 NULL
154054 +enable_so_ext_start_xfs_extent_486 ext_start xfs_extent 0 486 NULL
154055 +enable_so_consumed_sg_mapping_iter_487 consumed sg_mapping_iter 0 487 NULL
154056 +enable_so_nr_local_rds_rdma_args_488 nr_local rds_rdma_args 0 488 NULL
154057 +enable_so_sp2_read_i2c_fndecl_489 sp2_read_i2c fndecl 4 489 NULL
154058 +enable_so_rx_path_reset_read_fndecl_490 rx_path_reset_read fndecl 3 490 NULL
154059 +enable_so_edid_store_fndecl_491 edid_store fndecl 6 491 NULL
154060 +enable_so_sndbuf_size_net_conf_498 sndbuf_size net_conf 0 498 NULL
154061 +enable_so_max_seg_sz_mmc_test_area_502 max_seg_sz mmc_test_area 0 502 NULL nohasharray
154062 +enable_so_security_inode_getxattr_fndecl_502 security_inode_getxattr fndecl 0 502 &enable_so_max_seg_sz_mmc_test_area_502 nohasharray
154063 +enable_so_ll_mtu_ipw_hardware_502 ll_mtu ipw_hardware 0 502 &enable_so_security_inode_getxattr_fndecl_502
154064 +enable_so_num_virtio_mmio_vq_info_503 num virtio_mmio_vq_info 0 503 NULL
154065 +enable_so_wa_xfer_status_to_errno_fndecl_506 wa_xfer_status_to_errno fndecl 0 506 NULL
154066 +enable_so_hlen_ip6_tnl_510 hlen ip6_tnl 0 510 NULL
154067 +enable_so_si476x_radio_read_acf_blob_fndecl_515 si476x_radio_read_acf_blob fndecl 3 515 NULL
154068 +enable_so_length_qib_sge_516 length qib_sge 0 516 NULL
154069 +enable_so_gfn_guest_walkerEPT_517 gfn guest_walkerEPT 0 517 NULL
154070 +enable_so_dig_rate_snd_bt87x_board_522 dig_rate snd_bt87x_board 0 522 NULL
154071 +enable_so_grow_gnttab_list_fndecl_523 grow_gnttab_list fndecl 1 523 NULL
154072 +enable_so_videobuf_read_zerocopy_fndecl_546 videobuf_read_zerocopy fndecl 3 546 NULL
154073 +enable_so_iscsi_add_hdr_fndecl_551 iscsi_add_hdr fndecl 2 551 NULL
154074 +enable_so_leaf_paste_in_buffer_fndecl_552 leaf_paste_in_buffer fndecl 4 552 NULL nohasharray
154075 +enable_so_names_count_tomoyo_condition_552 names_count tomoyo_condition 0 552 &enable_so_leaf_paste_in_buffer_fndecl_552
154076 +enable_so_behind_page_count_r1bio_557 behind_page_count r1bio 0 557 NULL
154077 +enable_so_cmd_amdkfd_ioctl_desc_560 cmd amdkfd_ioctl_desc 0 560 NULL
154078 +enable_so_kzalloc_node_fndecl_563 kzalloc_node fndecl 1 563 NULL
154079 +enable_so_idma64_prep_slave_sg_fndecl_565 idma64_prep_slave_sg fndecl 3 565 NULL
154080 +enable_so_btrfs_item_size_nr_fndecl_572 btrfs_item_size_nr fndecl 0 572 NULL
154081 +enable_so_cfi_read_pri_fndecl_573 cfi_read_pri fndecl 3 573 NULL
154082 +enable_so_disk_secno_bplus_leaf_node_574 disk_secno bplus_leaf_node 0 574 NULL
154083 +enable_so_maxfrsize_bfa_port_cfg_s_576 maxfrsize bfa_port_cfg_s 0 576 NULL
154084 +enable_so_paging64_init_context_common_fndecl_577 paging64_init_context_common fndecl 3 577 NULL nohasharray
154085 +enable_so_ext4_swap_extents_fndecl_577 ext4_swap_extents fndecl 6-0-5-4 577 &enable_so_paging64_init_context_common_fndecl_577
154086 +enable_so_blk_update_bidi_request_fndecl_588 blk_update_bidi_request fndecl 3-4-2 588 NULL
154087 +enable_so_drm_property_create_bitmask_fndecl_591 drm_property_create_bitmask fndecl 6 591 NULL
154088 +enable_so_log_mc_entry_sz_mlx4_init_hca_param_595 log_mc_entry_sz mlx4_init_hca_param 0 595 NULL
154089 +enable_so_xmit_head_mgsl_struct_596 xmit_head mgsl_struct 0 596 NULL
154090 +enable_so_max_send_sge_ib_qp_cap_601 max_send_sge ib_qp_cap 0 601 NULL
154091 +enable_so_nr_groups_pcpu_alloc_info_602 nr_groups pcpu_alloc_info 0 602 NULL
154092 +enable_so_lcm_not_zero_fndecl_603 lcm_not_zero fndecl 2-0-1 603 NULL nohasharray
154093 +enable_so_xfs_bmapi_read_fndecl_603 xfs_bmapi_read fndecl 3-2 603 &enable_so_lcm_not_zero_fndecl_603 nohasharray
154094 +enable_so_sock_xmit_fndecl_603 sock_xmit fndecl 4 603 &enable_so_xfs_bmapi_read_fndecl_603
154095 +enable_so_FormattedSize_erase_unit_header_t_604 FormattedSize erase_unit_header_t 0 604 NULL nohasharray
154096 +enable_so_populate_msi_sysfs_fndecl_604 populate_msi_sysfs fndecl 0 604 &enable_so_FormattedSize_erase_unit_header_t_604
154097 +enable_so_getxattr_fndecl_605 getxattr fndecl 4 605 NULL nohasharray
154098 +enable_so_pvr2_v4l2_ioctl_fndecl_605 pvr2_v4l2_ioctl fndecl 2 605 &enable_so_getxattr_fndecl_605
154099 +enable_so_copy_and_ioctl_fndecl_609 copy_and_ioctl fndecl 4 609 NULL
154100 +enable_so_ftrace_size_ramoops_context_610 ftrace_size ramoops_context 0 610 NULL
154101 +enable_so_ixgbe_alloc_q_vector_fndecl_612 ixgbe_alloc_q_vector fndecl 4-6 612 NULL
154102 +enable_so_num_queue_pairs_i40e_virtchnl_vf_resource_613 num_queue_pairs i40e_virtchnl_vf_resource 0 613 NULL
154103 +enable_so_virt_end_dm_thin_new_mapping_616 virt_end dm_thin_new_mapping 0 616 NULL
154104 +enable_so_maxsize_tm6000_endpoint_618 maxsize tm6000_endpoint 0 618 NULL
154105 +enable_so_smk_user_access_fndecl_619 smk_user_access fndecl 3 619 NULL
154106 +enable_so_nvme_trans_log_supp_pages_fndecl_625 nvme_trans_log_supp_pages fndecl 3 625 NULL
154107 +enable_so_xenbus_file_read_fndecl_632 xenbus_file_read fndecl 3 632 NULL
154108 +enable_so_bfad_iocmd_port_disable_fndecl_633 bfad_iocmd_port_disable fndecl 0 633 NULL
154109 +enable_so_b43_debugfs_read_fndecl_634 b43_debugfs_read fndecl 3 634 NULL
154110 +enable_so_priv_size_mlxsw_driver_636 priv_size mlxsw_driver 0 636 NULL
154111 +enable_so_ieee80211_rx_mgmt_beacon_fndecl_637 ieee80211_rx_mgmt_beacon fndecl 3 637 NULL
154112 +enable_so_msg_len_dvb_diseqc_master_cmd_643 msg_len dvb_diseqc_master_cmd 0 643 NULL nohasharray
154113 +enable_so_d1_vring_rx_mac_643 d1 vring_rx_mac 0 643 &enable_so_msg_len_dvb_diseqc_master_cmd_643
154114 +enable_so_ocrdma_get_pbl_info_fndecl_644 ocrdma_get_pbl_info fndecl 3 644 NULL
154115 +enable_so_size_si_sm_handlers_648 size si_sm_handlers 0 648 NULL
154116 +enable_so_fat_sync_bhs_fndecl_655 fat_sync_bhs fndecl 0 655 NULL nohasharray
154117 +enable_so_tcp_try_undo_partial_fndecl_655 tcp_try_undo_partial fndecl 2 655 &enable_so_fat_sync_bhs_fndecl_655
154118 +enable_so_header_length_irda_usb_cb_657 header_length irda_usb_cb 0 657 NULL
154119 +enable_so_bfad_iocmd_debug_ctl_fndecl_658 bfad_iocmd_debug_ctl fndecl 0 658 NULL
154120 +enable_so_rtsx_usb_read_ppbuf_fndecl_659 rtsx_usb_read_ppbuf fndecl 3-0 659 NULL nohasharray
154121 +enable_so_nchannels_fs_dev_659 nchannels fs_dev 0 659 &enable_so_rtsx_usb_read_ppbuf_fndecl_659
154122 +enable_so_start_async_extent_663 start async_extent 0 663 NULL
154123 +enable_so_tx_max_size_cxgbi_device_664 tx_max_size cxgbi_device 0 664 NULL nohasharray
154124 +enable_so_evdev_do_ioctl_fndecl_664 evdev_do_ioctl fndecl 2-0 664 &enable_so_tx_max_size_cxgbi_device_664
154125 +enable_so_cw_cursor_fndecl_666 cw_cursor fndecl 4 666 NULL
154126 +enable_so___push_leaf_left_fndecl_667 __push_leaf_left fndecl 8 667 NULL
154127 +enable_so_dccph_seq2_dccp_hdr_669 dccph_seq2 dccp_hdr 0 669 NULL
154128 +enable_so_lbs_highsnr_write_fndecl_671 lbs_highsnr_write fndecl 3 671 NULL
154129 +enable_so_skb_size_nx_host_rds_ring_672 skb_size nx_host_rds_ring 0 672 NULL
154130 +enable_so_bond_change_mtu_fndecl_674 bond_change_mtu fndecl 2 674 NULL
154131 +enable_so_mac_len_sk_buff_676 mac_len sk_buff 0 676 NULL
154132 +enable_so_mbox_offset_sst_res_info_678 mbox_offset sst_res_info 0 678 NULL
154133 +enable_so_page_order_sg_scatter_hold_679 page_order sg_scatter_hold 0 679 NULL
154134 +enable_so_get_eeprom_len_ethtool_ops_686 get_eeprom_len ethtool_ops 0 686 NULL
154135 +enable_so_follow_page_pte_fndecl_687 follow_page_pte fndecl 2 687 NULL
154136 +enable_so_mchip_get_frame_fndecl_692 mchip_get_frame fndecl 0 692 NULL
154137 +enable_so_ttm_page_pool_free_fndecl_693 ttm_page_pool_free fndecl 2 693 NULL
154138 +enable_so_handle_pte_fault_fndecl_694 handle_pte_fault fndecl 3 694 NULL nohasharray
154139 +enable_so_paylen_newwin_ib_rmpp_hdr_694 paylen_newwin ib_rmpp_hdr 0 694 &enable_so_handle_pte_fault_fndecl_694
154140 +enable_so_size_pstore_private_696 size pstore_private 0 696 NULL nohasharray
154141 +enable_so_read_file_spec_scan_ctl_fndecl_696 read_file_spec_scan_ctl fndecl 3 696 &enable_so_size_pstore_private_696
154142 +enable_so_dut_mode_read_fndecl_698 dut_mode_read fndecl 3 698 NULL
154143 +enable_so_mthca_process_mad_fndecl_707 mthca_process_mad fndecl 3 707 NULL
154144 +enable_so_flush_end_io_fndecl_708 flush_end_io fndecl 2 708 NULL
154145 +enable_so_sig_size_s3fwrn5_fw_info_719 sig_size s3fwrn5_fw_info 0 719 NULL
154146 +enable_so_request_key_with_auxdata_fndecl_720 request_key_with_auxdata fndecl 4 720 NULL
154147 +enable_so_xfs_buf_get_map_fndecl_729 xfs_buf_get_map fndecl 3 729 NULL
154148 +enable_so_qib_ib_rcv_fndecl_734 qib_ib_rcv fndecl 4 734 NULL
154149 +enable_so_tsi148_alloc_resource_fndecl_736 tsi148_alloc_resource fndecl 2 736 NULL
154150 +enable_so_write_cache_pages_fndecl_737 write_cache_pages fndecl 0 737 NULL
154151 +enable_so_count_TxFifo_750 count TxFifo 0 750 NULL
154152 +enable_so_add_falloc_range_fndecl_751 add_falloc_range fndecl 2 751 NULL
154153 +enable_so_DataBufsSize_snd_korg1212_758 DataBufsSize snd_korg1212 0 758 NULL
154154 +enable_so_ilf_len_xfs_inode_log_format_759 ilf_len xfs_inode_log_format 0 759 NULL
154155 +enable_so_tda8083_readregs_fndecl_764 tda8083_readregs fndecl 4 764 NULL nohasharray
154156 +enable_so_controller_code_mspro_sys_info_764 controller_code mspro_sys_info 0 764 &enable_so_tda8083_readregs_fndecl_764
154157 +enable_so_iwl_trans_alloc_fndecl_767 iwl_trans_alloc fndecl 5-1 767 NULL
154158 +enable_so_len_vnic_dev_bar_768 len vnic_dev_bar 0 768 NULL
154159 +enable_so_vb2_fop_read_fndecl_771 vb2_fop_read fndecl 3 771 NULL
154160 +enable_so_truncate_one_csum_fndecl_777 truncate_one_csum fndecl 4-5 777 NULL
154161 +enable_so_num_virtio_pci_vq_info_778 num virtio_pci_vq_info 0 778 NULL
154162 +enable_so_gem_change_mtu_fndecl_785 gem_change_mtu fndecl 2 785 NULL
154163 +enable_so___fdt_scan_reserved_mem_fndecl_789 __fdt_scan_reserved_mem fndecl 1 789 NULL
154164 +enable_so_prepare_reply_buffer_fndecl_793 prepare_reply_buffer fndecl 4-3-5 793 NULL
154165 +enable_so_extent_direct_795 extent direct 0 795 NULL
154166 +enable_so_height_qxl_head_799 height qxl_head 0 799 NULL
154167 +enable_so_pci_iomap_range_fndecl_809 pci_iomap_range fndecl 4-3 809 NULL
154168 +enable_so_sdp1length__SpiCfgData_813 sdp1length _SpiCfgData 0 813 NULL
154169 +enable_so_niqflint_niq_fw_pfvf_cmd_814 niqflint_niq fw_pfvf_cmd 0 814 NULL
154170 +enable_so_request_key_auth_read_fndecl_830 request_key_auth_read fndecl 3 830 NULL
154171 +enable_so_pipeline_post_proc_swi_read_fndecl_831 pipeline_post_proc_swi_read fndecl 3 831 NULL
154172 +enable_so_SyS_sethostname_fndecl_837 SyS_sethostname fndecl 2 837 NULL
154173 +enable_so_mdata_ofsh_cyttsp4_sysinfo_data_844 mdata_ofsh cyttsp4_sysinfo_data 0 844 NULL
154174 +enable_so_s_inopb_ufs_sb_private_info_849 s_inopb ufs_sb_private_info 0 849 NULL
154175 +enable_so_irnet_ctrl_write_fndecl_856 irnet_ctrl_write fndecl 3 856 NULL
154176 +enable_so_rsi_copy_to_card_fndecl_858 rsi_copy_to_card fndecl 3 858 NULL nohasharray
154177 +enable_so_nilfs_inode_by_name_fndecl_858 nilfs_inode_by_name fndecl 0 858 &enable_so_rsi_copy_to_card_fndecl_858
154178 +enable_so_unix_seqpacket_recvmsg_fndecl_861 unix_seqpacket_recvmsg fndecl 3 861 NULL
154179 +enable_so_qi_dqperchunk_xfs_quotainfo_863 qi_dqperchunk xfs_quotainfo 0 863 NULL
154180 +enable_so_adu_read_fndecl_866 adu_read fndecl 3 866 NULL
154181 +enable_so_safe_prepare_write_buffer_fndecl_872 safe_prepare_write_buffer fndecl 3 872 NULL
154182 +enable_so_field_count_audit_rule_data_886 field_count audit_rule_data 0 886 NULL
154183 +enable_so_octeon_read_device_mem64_fndecl_892 octeon_read_device_mem64 fndecl 0 892 NULL
154184 +enable_so_orinoco_change_mtu_fndecl_895 orinoco_change_mtu fndecl 2 895 NULL nohasharray
154185 +enable_so_forw_xfs_attr3_icleaf_hdr_895 forw xfs_attr3_icleaf_hdr 0 895 &enable_so_orinoco_change_mtu_fndecl_895
154186 +enable_so_p_srate_f_uac2_opts_896 p_srate f_uac2_opts 0 896 NULL
154187 +enable_so_vm_normal_page_fndecl_897 vm_normal_page fndecl 2 897 NULL
154188 +enable_so_rdma_copy_tail_fndecl_898 rdma_copy_tail fndecl 3 898 NULL nohasharray
154189 +enable_so_cpu_mask_len_res_opts_898 cpu_mask_len res_opts 0 898 &enable_so_rdma_copy_tail_fndecl_898
154190 +enable_so_user_bs_factor_ide_tape_obj_906 user_bs_factor ide_tape_obj 0 906 NULL
154191 +enable_so_good_bytes_nfs_pgio_header_909 good_bytes nfs_pgio_header 0 909 NULL nohasharray
154192 +enable_so_tcpprobe_sprint_fndecl_909 tcpprobe_sprint fndecl 0 909 &enable_so_good_bytes_nfs_pgio_header_909
154193 +enable_so_num_channels_wmi_start_scan_cmd_915 num_channels wmi_start_scan_cmd 0 915 NULL
154194 +enable_so_set_args_iw_priv_args_916 set_args iw_priv_args 0 916 NULL
154195 +enable_so_max_reply_bytes_mpt3_ioctl_command_918 max_reply_bytes mpt3_ioctl_command 0 918 NULL
154196 +enable_so_post_fifo_size__adpt_hba_919 post_fifo_size _adpt_hba 0 919 NULL
154197 +enable_so_status_word_gem_rxd_925 status_word gem_rxd 0 925 NULL nohasharray
154198 +enable_so_video_hsize_solo_dev_925 video_hsize solo_dev 0 925 &enable_so_status_word_gem_rxd_925
154199 +enable_so_isofs_bread_fndecl_929 isofs_bread fndecl 2 929 NULL
154200 +enable_so_xpnet_dev_change_mtu_fndecl_932 xpnet_dev_change_mtu fndecl 2 932 NULL
154201 +enable_so_nfrags_pkt_gl_937 nfrags pkt_gl 0 937 NULL
154202 +enable_so_icmp_len_batadv_socket_packet_944 icmp_len batadv_socket_packet 0 944 NULL
154203 +enable_so_pcpu_embed_first_chunk_fndecl_947 pcpu_embed_first_chunk fndecl 3-2-1 947 NULL nohasharray
154204 +enable_so_mei_amthif_read_fndecl_947 mei_amthif_read fndecl 4 947 &enable_so_pcpu_embed_first_chunk_fndecl_947
154205 +enable_so_pci_num_vf_fndecl_952 pci_num_vf fndecl 0 952 NULL
154206 +enable_so_ssid_len_wireless_dev_954 ssid_len wireless_dev 0 954 NULL
154207 +enable_so_length_ndis_80211_bssid_ex_955 length ndis_80211_bssid_ex 0 955 NULL
154208 +enable_so_sel_read_bool_fndecl_959 sel_read_bool fndecl 3 959 NULL
154209 +enable_so_size_wl3501_md_ind_961 size wl3501_md_ind 0 961 NULL
154210 +enable_so_compat_sys_preadv64_fndecl_968 compat_sys_preadv64 fndecl 3 968 NULL
154211 +enable_so_avc_tuner_tuneqpsk_fndecl_978 avc_tuner_tuneqpsk fndecl 0 978 NULL
154212 +enable_so_em28xx_alloc_urbs_fndecl_983 em28xx_alloc_urbs fndecl 5-6-4 983 NULL nohasharray
154213 +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
154214 +enable_so_nd_integrity_init_fndecl_985 nd_integrity_init fndecl 2 985 NULL nohasharray
154215 +enable_so_sm501_create_subio_fndecl_985 sm501_create_subio fndecl 4-3 985 &enable_so_nd_integrity_init_fndecl_985
154216 +enable_so_esp6_get_mtu_fndecl_987 esp6_get_mtu fndecl 0-2 987 NULL
154217 +enable_so_total_blocks_hfsplus_fork_raw_988 total_blocks hfsplus_fork_raw 0 988 NULL
154218 +enable_so_acc_userl_accessdata_dn_989 acc_userl accessdata_dn 0 989 NULL
154219 +enable_so_unlock_extent_fndecl_990 unlock_extent fndecl 2-3 990 NULL
154220 +enable_so_gtt_size_amdgpu_mc_994 gtt_size amdgpu_mc 0 994 NULL
154221 +enable_so_ContainerSwitchEntries_aac_get_container_count_resp_1001 ContainerSwitchEntries aac_get_container_count_resp 0 1001 NULL
154222 +enable_so_reserve_metadata_bytes_fndecl_1002 reserve_metadata_bytes fndecl 0 1002 NULL
154223 +enable_so_cpu_count_MPT3SAS_ADAPTER_1003 cpu_count MPT3SAS_ADAPTER 0 1003 NULL
154224 +enable_so_xfs_dir3_leafn_read_fndecl_1004 xfs_dir3_leafn_read fndecl 3 1004 NULL
154225 +enable_so_ath6kl_add_bss_if_needed_fndecl_1006 ath6kl_add_bss_if_needed fndecl 6 1006 NULL
154226 +enable_so___dm_get_module_param_fndecl_1008 __dm_get_module_param fndecl 2-3-0 1008 NULL
154227 +enable_so_assoc_req_len_wmi_connect_event_1014 assoc_req_len wmi_connect_event 0 1014 NULL
154228 +enable_so_de_hash_gfs2_dirent_1015 de_hash gfs2_dirent 0 1015 NULL
154229 +enable_so_s_last_cno_nilfs_super_block_1016 s_last_cno nilfs_super_block 0 1016 NULL
154230 +enable_so_i2c_smbus_check_pec_fndecl_1018 i2c_smbus_check_pec fndecl 0 1018 NULL
154231 +enable_so_offset_kmem_cache_1021 offset kmem_cache 0 1021 NULL
154232 +enable_so_nvram_size_chip_desc_1022 nvram_size chip_desc 0 1022 NULL
154233 +enable_so_len_wcn36xx_hal_msg_header_1023 len wcn36xx_hal_msg_header 0 1023 NULL
154234 +enable_so_dlm_len_mt76_fw_header_1030 dlm_len mt76_fw_header 0 1030 NULL
154235 +enable_so_pci_scan_single_device_fndecl_1034 pci_scan_single_device fndecl 2 1034 NULL
154236 +enable_so_wq_ecount_lpfc_sli4_hba_1039 wq_ecount lpfc_sli4_hba 0 1039 NULL
154237 +enable_so_page_shift_mlx5_buf_1041 page_shift mlx5_buf 0 1041 NULL nohasharray
154238 +enable_so_jffs2_iget_fndecl_1041 jffs2_iget fndecl 2 1041 &enable_so_page_shift_mlx5_buf_1041 nohasharray
154239 +enable_so_ssb_admatch_size_fndecl_1041 ssb_admatch_size fndecl 0-1 1041 &enable_so_jffs2_iget_fndecl_1041
154240 +enable_so_iv_len_txentry_desc_1042 iv_len txentry_desc 0 1042 NULL nohasharray
154241 +enable_so_address_length_acpi_resource_fixed_io_1042 address_length acpi_resource_fixed_io 0 1042 &enable_so_iv_len_txentry_desc_1042
154242 +enable_so_vnic_dev_get_res_count_fndecl_1044 vnic_dev_get_res_count fndecl 0 1044 NULL
154243 +enable_so_read_data_done_iscsi_datain_req_1049 read_data_done iscsi_datain_req 0 1049 NULL nohasharray
154244 +enable_so_registers_gen_74x164_chip_1049 registers gen_74x164_chip 0 1049 &enable_so_read_data_done_iscsi_datain_req_1049
154245 +enable_so_bfad_iocmd_iocfc_set_intr_fndecl_1050 bfad_iocmd_iocfc_set_intr fndecl 0 1050 NULL
154246 +enable_so_m5602_urb_complete_fndecl_1052 m5602_urb_complete fndecl 3 1052 NULL
154247 +enable_so_rocker_dma_test_offset_fndecl_1055 rocker_dma_test_offset fndecl 3 1055 NULL
154248 +enable_so_nentries_ebt_replace_1059 nentries ebt_replace 0 1059 NULL
154249 +enable_so_ch_r_tail_jsm_channel_1063 ch_r_tail jsm_channel 0 1063 NULL
154250 +enable_so_data_ep_set_params_fndecl_1064 data_ep_set_params fndecl 3-4 1064 NULL
154251 +enable_so_cw_clear_fndecl_1066 cw_clear fndecl 5-3-4-6 1066 NULL
154252 +enable_so_len_left_brcmf_sdio_hdrinfo_1067 len_left brcmf_sdio_hdrinfo 0 1067 NULL
154253 +enable_so_i_dno_hpfs_inode_info_1070 i_dno hpfs_inode_info 0 1070 NULL nohasharray
154254 +enable_so_line__mgslpc_info_1070 line _mgslpc_info 0 1070 &enable_so_i_dno_hpfs_inode_info_1070
154255 +enable_so_num_min_snd_ratden_1071 num_min snd_ratden 0 1071 NULL
154256 +enable_so_private_data_len_iw_cm_conn_param_1076 private_data_len iw_cm_conn_param 0 1076 NULL
154257 +enable_so_enable_clk_ops_1078 enable clk_ops 0 1078 NULL
154258 +enable_so_rq_wqe_count_mlx5_ib_create_qp_1079 rq_wqe_count mlx5_ib_create_qp 0 1079 NULL
154259 +enable_so_ReadEEProm_fndecl_1081 ReadEEProm fndecl 3 1081 NULL
154260 +enable_so_inum_ns_common_1087 inum ns_common 0 1087 NULL
154261 +enable_so_max_srq_sz_mthca_dev_lim_1088 max_srq_sz mthca_dev_lim 0 1088 NULL
154262 +enable_so_libipw_classify_fndecl_1089 libipw_classify fndecl 0 1089 NULL
154263 +enable_so_data_start_msdos_sb_info_1100 data_start msdos_sb_info 0 1100 NULL
154264 +enable_so_num_counters_compat_ebt_replace_1102 num_counters compat_ebt_replace 0 1102 NULL
154265 +enable_so_b_cnt_mon_reader_bin_1106 b_cnt mon_reader_bin 0 1106 NULL
154266 +enable_so_rx_ring_count_e1000_adapter_1107 rx_ring_count e1000_adapter 0 1107 NULL
154267 +enable_so_cmd_sg_entries_vardecl_ib_srp_c_1108 cmd_sg_entries vardecl_ib_srp.c 0 1108 NULL
154268 +enable_so_ResponseDataLength__MPI2_SMP_PASSTHROUGH_REPLY_1113 ResponseDataLength _MPI2_SMP_PASSTHROUGH_REPLY 0 1113 NULL
154269 +enable_so_io_free_memtype_fndecl_1116 io_free_memtype fndecl 1-2 1116 NULL
154270 +enable_so_create_attr_set_fndecl_1118 create_attr_set fndecl 1 1118 NULL
154271 +enable_so_rxkad_decrypt_ticket_fndecl_1120 rxkad_decrypt_ticket fndecl 3 1120 NULL
154272 +enable_so_mdc800_device_read_fndecl_1123 mdc800_device_read fndecl 3 1123 NULL
154273 +enable_so_ctl_in_pipe_brcmf_usbdev_info_1124 ctl_in_pipe brcmf_usbdev_info 0 1124 NULL
154274 +enable_so_ion_handle_test_kernel_fndecl_1127 ion_handle_test_kernel fndecl 3-4 1127 NULL
154275 +enable_so_forw_xfs_dir3_icleaf_hdr_1136 forw xfs_dir3_icleaf_hdr 0 1136 NULL
154276 +enable_so_log_num_mlx4_resource_1137 log_num mlx4_resource 0 1137 NULL
154277 +enable_so_port_num_ib_mad_port_private_1140 port_num ib_mad_port_private 0 1140 NULL
154278 +enable_so_usblp_new_writeurb_fndecl_1149 usblp_new_writeurb fndecl 2 1149 NULL nohasharray
154279 +enable_so_p54spi_spi_read_fndecl_1149 p54spi_spi_read fndecl 4 1149 &enable_so_usblp_new_writeurb_fndecl_1149
154280 +enable_so_offset_mirror_1150 offset mirror 0 1150 NULL
154281 +enable_so_hw_max_sectors_se_dev_attrib_1152 hw_max_sectors se_dev_attrib 0 1152 NULL
154282 +enable_so_ntfs_rl_vcn_to_lcn_fndecl_1155 ntfs_rl_vcn_to_lcn fndecl 0-2 1155 NULL
154283 +enable_so_cbuf_data_fndecl_1158 cbuf_data fndecl 0 1158 NULL
154284 +enable_so_xstateregs_set_fndecl_1159 xstateregs_set fndecl 4 1159 NULL
154285 +enable_so_sysctl_tcp_max_reordering_vardecl_1161 sysctl_tcp_max_reordering vardecl 0 1161 NULL
154286 +enable_so_rtsx_usb_write_ppbuf_fndecl_1165 rtsx_usb_write_ppbuf fndecl 3-0 1165 NULL
154287 +enable_so_sg_len_mmc_data_1168 sg_len mmc_data 0 1168 NULL nohasharray
154288 +enable_so_nfs4_acl_bytes_fndecl_1168 nfs4_acl_bytes fndecl 0-1 1168 &enable_so_sg_len_mmc_data_1168
154289 +enable_so_flow_label_ib_global_route_1172 flow_label ib_global_route 0 1172 NULL
154290 +enable_so___set_xattr_fndecl_1176 __set_xattr fndecl 5-3 1176 NULL
154291 +enable_so_br_vlan_add_fndecl_1177 br_vlan_add fndecl 2 1177 NULL
154292 +enable_so_resp_disconnect_pg_fndecl_1178 resp_disconnect_pg fndecl 0 1178 NULL
154293 +enable_so_nr_push_drm_nouveau_gem_pushbuf_1184 nr_push drm_nouveau_gem_pushbuf 0 1184 NULL
154294 +enable_so_mxr_mplane_fill_fndecl_1189 mxr_mplane_fill fndecl 3-4 1189 NULL
154295 +enable_so_vme_get_size_fndecl_1191 vme_get_size fndecl 0 1191 NULL
154296 +enable_so_tx_frag_key_not_found_read_fndecl_1192 tx_frag_key_not_found_read fndecl 3 1192 NULL
154297 +enable_so_probe_resp_len_cfg80211_beacon_data_1195 probe_resp_len cfg80211_beacon_data 0 1195 NULL
154298 +enable_so_rdmarc_per_qp_mlx4_profile_1197 rdmarc_per_qp mlx4_profile 0 1197 NULL
154299 +enable_so_nfs4_get_security_label_fndecl_1201 nfs4_get_security_label fndecl 3 1201 NULL nohasharray
154300 +enable_so_rx_sdu_size_tsap_cb_1201 rx_sdu_size tsap_cb 0 1201 &enable_so_nfs4_get_security_label_fndecl_1201
154301 +enable_so_pvscsi_ring_pages_vardecl_vmw_pvscsi_c_1202 pvscsi_ring_pages vardecl_vmw_pvscsi.c 0 1202 NULL
154302 +enable_so_scsi_log_dump_sense_fndecl_1206 scsi_log_dump_sense fndecl 5 1206 NULL
154303 +enable_so_pcpu_mem_zalloc_fndecl_1207 pcpu_mem_zalloc fndecl 1 1207 NULL
154304 +enable_so_max_sge_mvumi_hba_1213 max_sge mvumi_hba 0 1213 NULL
154305 +enable_so_logfs_segment_write_compress_fndecl_1214 logfs_segment_write_compress fndecl 5 1214 NULL
154306 +enable_so_max_transfer_bytes_storvsc_device_1221 max_transfer_bytes storvsc_device 0 1221 NULL
154307 +enable_so_tcp_synack_options_fndecl_1222 tcp_synack_options fndecl 0 1222 NULL nohasharray
154308 +enable_so_max_pkt_size_au0828_dev_1222 max_pkt_size au0828_dev 0 1222 &enable_so_tcp_synack_options_fndecl_1222
154309 +enable_so_segno_curseg_info_1223 segno curseg_info 0 1223 NULL
154310 +enable_so_pfkey_sendmsg_fndecl_1225 pfkey_sendmsg fndecl 3 1225 NULL
154311 +enable_so_i_sblock_bfs_inode_info_1228 i_sblock bfs_inode_info 0 1228 NULL
154312 +enable_so_cached_dev_cache_miss_fndecl_1232 cached_dev_cache_miss fndecl 4 1232 NULL
154313 +enable_so_pte_hole_mm_walk_1233 pte_hole mm_walk 0 1233 NULL
154314 +enable_so_prev_chunk_sectors_r5conf_1237 prev_chunk_sectors r5conf 0 1237 NULL
154315 +enable_so_elf_headers_sz_kimage_arch_1238 elf_headers_sz kimage_arch 0 1238 NULL
154316 +enable_so_buffer_dma_zd_usb_interrupt_1239 buffer_dma zd_usb_interrupt 0 1239 NULL
154317 +enable_so_remote_settings_file_write_fndecl_1240 remote_settings_file_write fndecl 3 1240 NULL
154318 +enable_so_dlc_leaf_msg_log_message_1244 dlc leaf_msg_log_message 0 1244 NULL
154319 +enable_so_get_tdp_level_kvm_x86_ops_1250 get_tdp_level kvm_x86_ops 0 1250 NULL nohasharray
154320 +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
154321 +enable_so_max_vports_lpfc_hba_1253 max_vports lpfc_hba 0 1253 NULL
154322 +enable_so_find_highest_prio_tid_fndecl_1254 find_highest_prio_tid fndecl 0 1254 NULL
154323 +enable_so_num_slaves_mlx4_dev_1258 num_slaves mlx4_dev 0 1258 NULL
154324 +enable_so_alloc32_mon_bin_get32_1260 alloc32 mon_bin_get32 0 1260 NULL
154325 +enable_so_nfs_readdir_xdr_filler_fndecl_1265 nfs_readdir_xdr_filler fndecl 0 1265 NULL
154326 +enable_so_nlmsg_len_nlmsghdr_1272 nlmsg_len nlmsghdr 0 1272 NULL
154327 +enable_so_viafb_dvp0_proc_write_fndecl_1276 viafb_dvp0_proc_write fndecl 3 1276 NULL
154328 +enable_so___lbtf_cmd_async_fndecl_1280 __lbtf_cmd_async fndecl 4 1280 NULL nohasharray
154329 +enable_so_sst_fill_and_send_cmd_fndecl_1280 sst_fill_and_send_cmd fndecl 7 1280 &enable_so___lbtf_cmd_async_fndecl_1280
154330 +enable_so_ocfs2_read_extent_block_fndecl_1285 ocfs2_read_extent_block fndecl 0-2 1285 NULL
154331 +enable_so_agp_alloc_page_array_fndecl_1289 agp_alloc_page_array fndecl 1 1289 NULL
154332 +enable_so_fw_epd_frame_1293 fw epd_frame 0 1293 NULL
154333 +enable_so_local_port_mlx4_ptys_reg_1294 local_port mlx4_ptys_reg 0 1294 NULL
154334 +enable_so_prv_size_override_lpss_device_desc_1301 prv_size_override lpss_device_desc 0 1301 NULL
154335 +enable_so_wMaxControlMessage_usb_cdc_mbim_desc_1308 wMaxControlMessage usb_cdc_mbim_desc 0 1308 NULL
154336 +enable_so_vmw_kms_stdu_surface_dirty_fndecl_1310 vmw_kms_stdu_surface_dirty fndecl 8 1310 NULL
154337 +enable_so_txhdr_len_mlxsw_driver_1313 txhdr_len mlxsw_driver 0 1313 NULL nohasharray
154338 +enable_so_number_snd_pcm_substream_1313 number snd_pcm_substream 0 1313 &enable_so_txhdr_len_mlxsw_driver_1313 nohasharray
154339 +enable_so_curr_resync_mddev_1313 curr_resync mddev 0 1313 &enable_so_number_snd_pcm_substream_1313
154340 +enable_so_vd_cbr_au_count_gru_vma_data_1314 vd_cbr_au_count gru_vma_data 0 1314 NULL
154341 +enable_so_read_kernfs_ops_1325 read kernfs_ops 0 1325 NULL
154342 +enable_so_win_size_async_state_1326 win_size async_state 0 1326 NULL
154343 +enable_so_flctl_cmdfunc_fndecl_1333 flctl_cmdfunc fndecl 3 1333 NULL
154344 +enable_so_ufs_alloc_lastblock_fndecl_1339 ufs_alloc_lastblock fndecl 2 1339 NULL
154345 +enable_so_fat_parse_short_fndecl_1348 fat_parse_short fndecl 0 1348 NULL
154346 +enable_so_ipr_number_of_msix_vardecl_ipr_c_1349 ipr_number_of_msix vardecl_ipr.c 0 1349 NULL
154347 +enable_so_current_limit_memblock_1350 current_limit memblock 0 1350 NULL
154348 +enable_so_ccp_set_dm_area_fndecl_1351 ccp_set_dm_area fndecl 4 1351 NULL
154349 +enable_so_MemReadHSCX_fndecl_1364 MemReadHSCX fndecl 0 1364 NULL
154350 +enable_so_len_btrfs_ordered_sum_1365 len btrfs_ordered_sum 0 1365 NULL nohasharray
154351 +enable_so_max_num_of_queues_per_device_vardecl_1365 max_num_of_queues_per_device vardecl 0 1365 &enable_so_len_btrfs_ordered_sum_1365
154352 +enable_so_page_offset_hnae_desc_cb_1366 page_offset hnae_desc_cb 0 1366 NULL nohasharray
154353 +enable_so_tx_ring_count_xgbe_prv_data_1366 tx_ring_count xgbe_prv_data 0 1366 &enable_so_page_offset_hnae_desc_cb_1366
154354 +enable_so_len_orinoco_scan_data_1370 len orinoco_scan_data 0 1370 NULL nohasharray
154355 +enable_so_dlen_hci_sco_hdr_1370 dlen hci_sco_hdr 0 1370 &enable_so_len_orinoco_scan_data_1370
154356 +enable_so_cfs_expr_list_values_fndecl_1371 cfs_expr_list_values fndecl 0 1371 NULL
154357 +enable_so_v_total_aty128_crtc_1375 v_total aty128_crtc 0 1375 NULL
154358 +enable_so_reiserfs_get_block_fndecl_1379 reiserfs_get_block fndecl 2 1379 NULL
154359 +enable_so_w_drm_vmw_rect_1383 w drm_vmw_rect 0 1383 NULL
154360 +enable_so_ieee80211_probereq_get_fndecl_1384 ieee80211_probereq_get fndecl 5-4 1384 NULL
154361 +enable_so_vlen_nfsd3_writeargs_1388 vlen nfsd3_writeargs 0 1388 NULL
154362 +enable_so_smsc911x_rx_get_rxstatus_fndecl_1389 smsc911x_rx_get_rxstatus fndecl 0 1389 NULL
154363 +enable_so_stepped_offset_skb_seq_state_1395 stepped_offset skb_seq_state 0 1395 NULL
154364 +enable_so_sctp_setsockopt_connectx_old_fndecl_1396 sctp_setsockopt_connectx_old fndecl 3 1396 NULL
154365 +enable_so_len_wsm_hdr_1398 len wsm_hdr 0 1398 NULL
154366 +enable_so_dev_size_amd_flash_info_1399 dev_size amd_flash_info 0 1399 NULL
154367 +enable_so_usb_transport_fail_vub300_mmc_host_1403 usb_transport_fail vub300_mmc_host 0 1403 NULL
154368 +enable_so_cmd_size_scsi_host_template_1404 cmd_size scsi_host_template 0 1404 NULL
154369 +enable_so_wl1271_rx_filter_get_fields_size_fndecl_1405 wl1271_rx_filter_get_fields_size fndecl 0 1405 NULL
154370 +enable_so_num_hsi_port_1406 num hsi_port 0 1406 NULL
154371 +enable_so_ec_hdr_alsize_ubi_device_1411 ec_hdr_alsize ubi_device 0 1411 NULL
154372 +enable_so_ubifs_leb_write_fndecl_1412 ubifs_leb_write fndecl 5-4 1412 NULL nohasharray
154373 +enable_so_num_rx_bds_bcmgenet_priv_1412 num_rx_bds bcmgenet_priv 0 1412 &enable_so_ubifs_leb_write_fndecl_1412
154374 +enable_so_copy_pages_to_kvecs_fndecl_1417 copy_pages_to_kvecs fndecl 0 1417 NULL
154375 +enable_so_fill_gap_fndecl_1418 fill_gap fndecl 4-3 1418 NULL
154376 +enable_so_qlcnic_83xx_sysfs_flash_write_handler_fndecl_1419 qlcnic_83xx_sysfs_flash_write_handler fndecl 6 1419 NULL
154377 +enable_so_ocfs2_get_block_fndecl_1420 ocfs2_get_block fndecl 2 1420 NULL
154378 +enable_so_wpa_ie_len_orinoco_private_1421 wpa_ie_len orinoco_private 0 1421 NULL nohasharray
154379 +enable_so_reg_umr_fndecl_1421 reg_umr fndecl 3-5 1421 &enable_so_wpa_ie_len_orinoco_private_1421
154380 +enable_so_bch_dump_read_fndecl_1422 bch_dump_read fndecl 3 1422 NULL
154381 +enable_so_tnc_insert_fndecl_1431 tnc_insert fndecl 4 1431 NULL
154382 +enable_so_idma64_alloc_desc_fndecl_1433 idma64_alloc_desc fndecl 1 1433 NULL
154383 +enable_so_relocation_count_drm_i915_gem_exec_object2_1435 relocation_count drm_i915_gem_exec_object2 0 1435 NULL
154384 +enable_so_rdev_num_s2mps11_info_1439 rdev_num s2mps11_info 0 1439 NULL
154385 +enable_so_alloc_libipw_fndecl_1447 alloc_libipw fndecl 1 1447 NULL
154386 +enable_so_size_ip_vs_sync_mesg_1448 size ip_vs_sync_mesg 0 1448 NULL
154387 +enable_so_memcg_update_list_lru_node_fndecl_1454 memcg_update_list_lru_node fndecl 3 1454 NULL
154388 +enable_so_sys_ppoll_fndecl_1459 sys_ppoll fndecl 2 1459 NULL
154389 +enable_so_size_fw_sec_1464 size fw_sec 0 1464 NULL
154390 +enable_so_net_header_len_sctp_af_1467 net_header_len sctp_af 0 1467 NULL
154391 +enable_so_btrfs_del_inode_ref_in_log_fndecl_1471 btrfs_del_inode_ref_in_log fndecl 4 1471 NULL
154392 +enable_so_ceph_decode_32_fndecl_1473 ceph_decode_32 fndecl 0 1473 NULL
154393 +enable_so_xenbus_map_ring_valloc_pv_fndecl_1474 xenbus_map_ring_valloc_pv fndecl 3 1474 NULL
154394 +enable_so_ax25_output_fndecl_1475 ax25_output fndecl 2 1475 NULL
154395 +enable_so_pbus_size_io_fndecl_1478 pbus_size_io fndecl 2 1478 NULL
154396 +enable_so_nfs3_proc_symlink_fndecl_1479 nfs3_proc_symlink fndecl 4 1479 NULL
154397 +enable_so_iscsi_sw_tcp_send_data_prep_fndecl_1485 iscsi_sw_tcp_send_data_prep fndecl 5-4 1485 NULL
154398 +enable_so_irq_base_max8925_chip_1487 irq_base max8925_chip 0 1487 NULL
154399 +enable_so_free_xenballooned_pages_fndecl_1490 free_xenballooned_pages fndecl 1 1490 NULL nohasharray
154400 +enable_so_ecryptfs_write_metadata_to_contents_fndecl_1490 ecryptfs_write_metadata_to_contents fndecl 3 1490 &enable_so_free_xenballooned_pages_fndecl_1490
154401 +enable_so_de4x5_alloc_rx_buff_fndecl_1491 de4x5_alloc_rx_buff fndecl 3 1491 NULL
154402 +enable_so_n_channels_ieee80211_supported_band_1494 n_channels ieee80211_supported_band 0 1494 NULL
154403 +enable_so_blocks_count_ext4_new_group_data_1496 blocks_count ext4_new_group_data 0 1496 NULL
154404 +enable_so_ezusb_program_fndecl_1497 ezusb_program fndecl 3-4 1497 NULL
154405 +enable_so_qnq_vid_be_adapter_1499 qnq_vid be_adapter 0 1499 NULL nohasharray
154406 +enable_so_ext4_mpage_readpages_fndecl_1499 ext4_mpage_readpages fndecl 4 1499 &enable_so_qnq_vid_be_adapter_1499
154407 +enable_so_num_step_snd_ratden_1500 num_step snd_ratden 0 1500 NULL nohasharray
154408 +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
154409 +enable_so_uvc_video_decode_start_fndecl_1505 uvc_video_decode_start fndecl 0 1505 NULL
154410 +enable_so_bo_info_size_drm_amdgpu_bo_list_in_1510 bo_info_size drm_amdgpu_bo_list_in 0 1510 NULL
154411 +enable_so_dma_data_req_size_ivtv_1512 dma_data_req_size ivtv 0 1512 NULL
154412 +enable_so_initiate_new_session_fndecl_1514 initiate_new_session fndecl 6 1514 NULL nohasharray
154413 +enable_so___break_lease_fndecl_1514 __break_lease fndecl 0 1514 &enable_so_initiate_new_session_fndecl_1514
154414 +enable_so_sk_sndbuf_sock_1516 sk_sndbuf sock 0 1516 NULL
154415 +enable_so_shmem_file_setup_fndecl_1517 shmem_file_setup fndecl 2 1517 NULL
154416 +enable_so_buf_size_mlx4_ib_qp_1529 buf_size mlx4_ib_qp 0 1529 NULL nohasharray
154417 +enable_so_qlcnic_sriov_init_fndecl_1529 qlcnic_sriov_init fndecl 2 1529 &enable_so_buf_size_mlx4_ib_qp_1529
154418 +enable_so_eth_header_fndecl_1531 eth_header fndecl 3-6 1531 NULL
154419 +enable_so_max_rqe_ocrdma_dev_attr_1534 max_rqe ocrdma_dev_attr 0 1534 NULL
154420 +enable_so_grcan_allocate_dma_buffers_fndecl_1535 grcan_allocate_dma_buffers fndecl 2-3 1535 NULL
154421 +enable_so_readlink_inode_operations_1540 readlink inode_operations 0 1540 NULL
154422 +enable_so___es_remove_extent_fndecl_1544 __es_remove_extent fndecl 0-3-2 1544 NULL
154423 +enable_so___aa_kvmalloc_fndecl_1547 __aa_kvmalloc fndecl 1 1547 NULL
154424 +enable_so_max_gs_mlx4_srq_1550 max_gs mlx4_srq 0 1550 NULL
154425 +enable_so_beg_hdmi_pulse_1552 beg hdmi_pulse 0 1552 NULL
154426 +enable_so_rq_end_io_target_type_1559 rq_end_io target_type 0 1559 NULL
154427 +enable_so_gru_preload_tlb_fndecl_1562 gru_preload_tlb fndecl 7-4 1562 NULL
154428 +enable_so_prio_read_fndecl_1564 prio_read fndecl 2 1564 NULL
154429 +enable_so_i2cdev_write_fndecl_1565 i2cdev_write fndecl 3 1565 NULL
154430 +enable_so_libcfs_kvzalloc_fndecl_1568 libcfs_kvzalloc fndecl 1 1568 NULL
154431 +enable_so_alignment_acpi_resource_io_1569 alignment acpi_resource_io 0 1569 NULL nohasharray
154432 +enable_so_page_readlink_fndecl_1569 page_readlink fndecl 3 1569 &enable_so_alignment_acpi_resource_io_1569
154433 +enable_so_kmem_zalloc_large_fndecl_1572 kmem_zalloc_large fndecl 1 1572 NULL
154434 +enable_so_size_drm_qxl_alloc_1578 size drm_qxl_alloc 0 1578 NULL
154435 +enable_so_ndesc_srp_map_state_1582 ndesc srp_map_state 0 1582 NULL
154436 +enable_so_vb2_dvb_register_adapter_fndecl_1588 vb2_dvb_register_adapter fndecl 0 1588 NULL
154437 +enable_so_error_error_frame_non_ctrl_read_fndecl_1589 error_error_frame_non_ctrl_read fndecl 3 1589 NULL
154438 +enable_so_process_hot_add_fndecl_1590 process_hot_add fndecl 3 1590 NULL
154439 +enable_so_sector_clone_info_1593 sector clone_info 0 1593 NULL
154440 +enable_so_length_cpc_can_msg_1600 length cpc_can_msg 0 1600 NULL nohasharray
154441 +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
154442 +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
154443 +enable_so_block_size_c2port_ops_1610 block_size c2port_ops 0 1610 NULL
154444 +enable_so_pppoe_sendmsg_fndecl_1612 pppoe_sendmsg fndecl 3 1612 NULL
154445 +enable_so_skl_get_module_param_size_fndecl_1615 skl_get_module_param_size fndecl 0 1615 NULL
154446 +enable_so_tsout_exchange_fndecl_1621 tsout_exchange fndecl 3 1621 NULL
154447 +enable_so_rawv6_send_hdrinc_fndecl_1625 rawv6_send_hdrinc fndecl 3 1625 NULL nohasharray
154448 +enable_so_max_frame_size_usb_usbvision_1625 max_frame_size usb_usbvision 0 1625 &enable_so_rawv6_send_hdrinc_fndecl_1625
154449 +enable_so_dt_num_devices_exofs_device_table_1626 dt_num_devices exofs_device_table 0 1626 NULL
154450 +enable_so_size_bin_attribute_1632 size bin_attribute 0 1632 NULL
154451 +enable_so_num_fw_rsc_vdev_vring_1645 num fw_rsc_vdev_vring 0 1645 NULL
154452 +enable_so_cblock_policy_result_1648 cblock policy_result 0 1648 NULL
154453 +enable_so_kobil_write_fndecl_1651 kobil_write fndecl 4 1651 NULL
154454 +enable_so_st_set_pages_fndecl_1655 st_set_pages fndecl 3 1655 NULL
154455 +enable_so_copied_rpc_pipe_msg_1658 copied rpc_pipe_msg 0 1658 NULL
154456 +enable_so_ib_register_mad_snoop_fndecl_1663 ib_register_mad_snoop fndecl 2 1663 NULL
154457 +enable_so_rds_tcp_sendmsg_fndecl_1668 rds_tcp_sendmsg fndecl 3 1668 NULL
154458 +enable_so_num_clips_drm_vmw_present_arg_1671 num_clips drm_vmw_present_arg 0 1671 NULL nohasharray
154459 +enable_so_pci_brcm_trumanage_setup_fndecl_1671 pci_brcm_trumanage_setup fndecl 4 1671 &enable_so_num_clips_drm_vmw_present_arg_1671
154460 +enable_so_bfad_iocmd_ratelim_speed_fndecl_1674 bfad_iocmd_ratelim_speed fndecl 0 1674 NULL nohasharray
154461 +enable_so_hidraw_send_report_fndecl_1674 hidraw_send_report fndecl 3 1674 &enable_so_bfad_iocmd_ratelim_speed_fndecl_1674
154462 +enable_so_vzalloc_node_fndecl_1683 vzalloc_node fndecl 1 1683 NULL
154463 +enable_so_rsrc_len_usb_hcd_1686 rsrc_len usb_hcd 0 1686 NULL
154464 +enable_so_file_size_squashfs_ldir_inode_1687 file_size squashfs_ldir_inode 0 1687 NULL
154465 +enable_so_remain_bytes_asc_q_done_info_1696 remain_bytes asc_q_done_info 0 1696 NULL
154466 +enable_so_size_grcan_dma_buffer_1702 size grcan_dma_buffer 0 1702 NULL
154467 +enable_so_divasa_remap_pci_bar_fndecl_1710 divasa_remap_pci_bar fndecl 4-3 1710 NULL nohasharray
154468 +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
154469 +enable_so_setup_msi_irqs_x86_msi_ops_1710 setup_msi_irqs x86_msi_ops 0 1710 &enable_so_get_cap_size_qlcnic_hardware_ops_1710 nohasharray
154470 +enable_so_linear_conf_fndecl_1710 linear_conf fndecl 2 1710 &enable_so_setup_msi_irqs_x86_msi_ops_1710
154471 +enable_so_ext4_getblk_fndecl_1720 ext4_getblk fndecl 3 1720 NULL
154472 +enable_so_yres_drm_cmdline_mode_1722 yres drm_cmdline_mode 0 1722 NULL
154473 +enable_so_qtd_fill_fndecl_1725 qtd_fill fndecl 4-5-2-0-3 1725 NULL
154474 +enable_so_submit_io_fndecl_1726 submit_io fndecl 3 1726 NULL
154475 +enable_so_ts_num_ids_nfsd4_test_stateid_1732 ts_num_ids nfsd4_test_stateid 0 1732 NULL nohasharray
154476 +enable_so_devm_iio_device_alloc_fndecl_1732 devm_iio_device_alloc fndecl 2 1732 &enable_so_ts_num_ids_nfsd4_test_stateid_1732
154477 +enable_so_state_hmask_netns_xfrm_1733 state_hmask netns_xfrm 0 1733 NULL
154478 +enable_so___gfn_to_hva_many_fndecl_1735 __gfn_to_hva_many fndecl 0-2 1735 NULL
154479 +enable_so_l4_hdr_size_vmxnet3_tx_ctx_1737 l4_hdr_size vmxnet3_tx_ctx 0 1737 NULL
154480 +enable_so_userspace_do_request_fndecl_1738 userspace_do_request fndecl 5 1738 NULL
154481 +enable_so_pci_omegapci_setup_fndecl_1740 pci_omegapci_setup fndecl 4 1740 NULL nohasharray
154482 +enable_so_size_nhlt_specific_cfg_1740 size nhlt_specific_cfg 0 1740 &enable_so_pci_omegapci_setup_fndecl_1740
154483 +enable_so_ad_sd_write_reg_fndecl_1743 ad_sd_write_reg fndecl 3 1743 NULL nohasharray
154484 +enable_so_nr_packets_saa7134_ts_1743 nr_packets saa7134_ts 0 1743 &enable_so_ad_sd_write_reg_fndecl_1743
154485 +enable_so_compat_filldir_fndecl_1746 compat_filldir fndecl 3 1746 NULL
154486 +enable_so_sectorsize_btrfs_root_1747 sectorsize btrfs_root 0 1747 NULL
154487 +enable_so_si4713_send_command_fndecl_1750 si4713_send_command fndecl 6 1750 NULL
154488 +enable_so_copy_module_from_user_fndecl_1751 copy_module_from_user fndecl 2 1751 NULL
154489 +enable_so_hugetlbfs_fallocate_fndecl_1752 hugetlbfs_fallocate fndecl 3-4 1752 NULL
154490 +enable_so_it_context_mask_fw_ohci_1753 it_context_mask fw_ohci 0 1753 NULL
154491 +enable_so_ext4_remove_blocks_fndecl_1754 ext4_remove_blocks fndecl 5 1754 NULL nohasharray
154492 +enable_so_st_nci_hci_dm_field_generator_fndecl_1754 st_nci_hci_dm_field_generator fndecl 3 1754 &enable_so_ext4_remove_blocks_fndecl_1754
154493 +enable_so_len_pda_custom_wrapper_1757 len pda_custom_wrapper 0 1757 NULL nohasharray
154494 +enable_so_lustre_acl_xattr_merge2ext_fndecl_1757 lustre_acl_xattr_merge2ext fndecl 2 1757 &enable_so_len_pda_custom_wrapper_1757
154495 +enable_so_offset_scrub_nocow_inode_1762 offset scrub_nocow_inode 0 1762 NULL
154496 +enable_so_ima_show_measurements_count_fndecl_1763 ima_show_measurements_count fndecl 3 1763 NULL
154497 +enable_so___es_insert_extent_fndecl_1764 __es_insert_extent fndecl 0 1764 NULL
154498 +enable_so_size_intel_rotation_info_1772 size intel_rotation_info 0 1772 NULL
154499 +enable_so_eqe_size_mlx4_caps_1775 eqe_size mlx4_caps 0 1775 NULL
154500 +enable_so_key_length_mwifiex_wep_key_1784 key_length mwifiex_wep_key 0 1784 NULL
154501 +enable_so___of_translate_address_fndecl_1786 __of_translate_address fndecl 0 1786 NULL
154502 +enable_so_port_pd_mlx4_av_1788 port_pd mlx4_av 0 1788 NULL
154503 +enable_so_pitch_radeonfb_info_1792 pitch radeonfb_info 0 1792 NULL
154504 +enable_so_reiserfs_add_entry_fndecl_1797 reiserfs_add_entry fndecl 4 1797 NULL
154505 +enable_so_vub300_usb_bulk_msg_fndecl_1799 vub300_usb_bulk_msg fndecl 4-2 1799 NULL nohasharray
154506 +enable_so_security_inode_killpriv_fndecl_1799 security_inode_killpriv fndecl 0 1799 &enable_so_vub300_usb_bulk_msg_fndecl_1799
154507 +enable_so_wl1273_fm_write_data_fndecl_1803 wl1273_fm_write_data fndecl 3 1803 NULL
154508 +enable_so_num_mtt_segs_mthca_limits_1806 num_mtt_segs mthca_limits 0 1806 NULL
154509 +enable_so_dataInSize_mpt_ioctl_command_1808 dataInSize mpt_ioctl_command 0 1808 NULL
154510 +enable_so_udl_gem_alloc_object_fndecl_1811 udl_gem_alloc_object fndecl 2 1811 NULL
154511 +enable_so___hugepage_set_anon_rmap_fndecl_1814 __hugepage_set_anon_rmap fndecl 3 1814 NULL nohasharray
154512 +enable_so_sv_nrpools_svc_serv_1814 sv_nrpools svc_serv 0 1814 &enable_so___hugepage_set_anon_rmap_fndecl_1814
154513 +enable_so_fuse_dir_ioctl_fndecl_1818 fuse_dir_ioctl fndecl 2 1818 NULL
154514 +enable_so_bufsize_saa7134_dmasound_1821 bufsize saa7134_dmasound 0 1821 NULL
154515 +enable_so_lleft_ext4_allocation_request_1823 lleft ext4_allocation_request 0 1823 NULL nohasharray
154516 +enable_so_s_size_qib_qp_1823 s_size qib_qp 0 1823 &enable_so_lleft_ext4_allocation_request_1823
154517 +enable_so_num_vectors_e1000_adapter_1827 num_vectors e1000_adapter 0 1827 NULL
154518 +enable_so___add_prelim_ref_fndecl_1828 __add_prelim_ref fndecl 6-5-2 1828 NULL
154519 +enable_so_ntfs_ucstonls_fndecl_1834 ntfs_ucstonls fndecl 3-5 1834 NULL
154520 +enable_so_kvm_mmu_gva_to_gpa_write_fndecl_1840 kvm_mmu_gva_to_gpa_write fndecl 0 1840 NULL
154521 +enable_so_walk_system_ram_range_fndecl_1842 walk_system_ram_range fndecl 2-1 1842 NULL
154522 +enable_so_check_free_sectors_fndecl_1843 check_free_sectors fndecl 2 1843 NULL
154523 +enable_so_vm_map_ram_fndecl_1845 vm_map_ram fndecl 2 1845 NULL
154524 +enable_so_device_slot_1847 device slot 0 1847 NULL
154525 +enable_so_ncpus_xen_mc_physcpuinfo_1849 ncpus xen_mc_physcpuinfo 0 1849 NULL
154526 +enable_so_qla4_82xx_pci_mem_read_2M_fndecl_1850 qla4_82xx_pci_mem_read_2M fndecl 2 1850 NULL
154527 +enable_so_maximum_cx88_ctrl_1852 maximum cx88_ctrl 0 1852 NULL
154528 +enable_so_isr_tx_procs_read_fndecl_1855 isr_tx_procs_read fndecl 3 1855 NULL
154529 +enable_so_drm_mode_create_tv_properties_fndecl_1857 drm_mode_create_tv_properties fndecl 2 1857 NULL
154530 +enable_so_dm_write_async_fndecl_1859 dm_write_async fndecl 3 1859 NULL
154531 +enable_so_da9150_write_qif_fndecl_1872 da9150_write_qif fndecl 3 1872 NULL
154532 +enable_so_rxq_req_tg3_1873 rxq_req tg3 0 1873 NULL
154533 +enable_so_nl80211_send_rx_auth_fndecl_1876 nl80211_send_rx_auth fndecl 4 1876 NULL nohasharray
154534 +enable_so_bset_tree_bytes_fndecl_1876 bset_tree_bytes fndecl 0 1876 &enable_so_nl80211_send_rx_auth_fndecl_1876
154535 +enable_so_mwl8k_cmd_set_beacon_fndecl_1877 mwl8k_cmd_set_beacon fndecl 4 1877 NULL
154536 +enable_so_sisusb_bulkin_msg_fndecl_1878 sisusb_bulkin_msg fndecl 4-2 1878 NULL nohasharray
154537 +enable_so_buf_size_cx18_stream_1878 buf_size cx18_stream 0 1878 &enable_so_sisusb_bulkin_msg_fndecl_1878
154538 +enable_so_num_vmdq_vsis_i40e_pf_1882 num_vmdq_vsis i40e_pf 0 1882 NULL
154539 +enable_so___clear_user_fndecl_1885 __clear_user fndecl 0 1885 NULL
154540 +enable_so_vmxnet3_get_hdr_len_fndecl_1891 vmxnet3_get_hdr_len fndecl 0 1891 NULL
154541 +enable_so_read_file_ani_fndecl_1898 read_file_ani fndecl 3 1898 NULL
154542 +enable_so_cq_ecount_lpfc_sli4_hba_1907 cq_ecount lpfc_sli4_hba 0 1907 NULL
154543 +enable_so_ca91cx42_master_set_fndecl_1913 ca91cx42_master_set fndecl 4 1913 NULL
154544 +enable_so_mpi_alloc_limb_space_fndecl_1925 mpi_alloc_limb_space fndecl 1 1925 NULL
154545 +enable_so_fix_unclean_leb_fndecl_1927 fix_unclean_leb fndecl 3 1927 NULL
154546 +enable_so_bfad_iocmd_fcport_disable_fndecl_1932 bfad_iocmd_fcport_disable fndecl 0 1932 NULL
154547 +enable_so_convert_ip_to_linear_fndecl_1933 convert_ip_to_linear fndecl 0 1933 NULL
154548 +enable_so_send_cap_msg_fndecl_1934 send_cap_msg fndecl 13 1934 NULL
154549 +enable_so_length_usnic_uiom_reg_1937 length usnic_uiom_reg 0 1937 NULL
154550 +enable_so_usblp_write_fndecl_1945 usblp_write fndecl 3 1945 NULL
154551 +enable_so_sd_init_fndecl_1946 sd_init fndecl 0 1946 NULL
154552 +enable_so_sv_resid_sym_ccb_1947 sv_resid sym_ccb 0 1947 NULL
154553 +enable_so_ieee80211_get_mesh_hdrlen_fndecl_1948 ieee80211_get_mesh_hdrlen fndecl 0 1948 NULL
154554 +enable_so_gss_pipe_downcall_fndecl_1949 gss_pipe_downcall fndecl 3 1949 NULL
154555 +enable_so_num_adcs_cs42xx8_driver_data_1953 num_adcs cs42xx8_driver_data 0 1953 NULL
154556 +enable_so_mcryptd_alloc_instance_fndecl_1958 mcryptd_alloc_instance fndecl 2-3 1958 NULL
154557 +enable_so___kmalloc_fndecl_1964 __kmalloc fndecl 1 1964 NULL
154558 +enable_so_xlog_get_bp_fndecl_1966 xlog_get_bp fndecl 2 1966 NULL
154559 +enable_so_tty_buffer_request_room_fndecl_1967 tty_buffer_request_room fndecl 0-2 1967 NULL
154560 +enable_so_to_dio_submit_1977 to dio_submit 0 1977 NULL nohasharray
154561 +enable_so_partitionLength_partitionDesc_1977 partitionLength partitionDesc 0 1977 &enable_so_to_dio_submit_1977
154562 +enable_so_tipc_sendmcast_fndecl_1981 tipc_sendmcast fndecl 4 1981 NULL nohasharray
154563 +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
154564 +enable_so_i5k_find_amb_registers_fndecl_1986 i5k_find_amb_registers fndecl 2 1986 NULL
154565 +enable_so_total_memory_vbe_ib_1999 total_memory vbe_ib 0 1999 NULL
154566 +enable_so_idx_len_tg3_rx_buffer_desc_2006 idx_len tg3_rx_buffer_desc 0 2006 NULL
154567 +enable_so_alauda_read_block_fndecl_2008 alauda_read_block fndecl 4 2008 NULL
154568 +enable_so_ipv6_skip_exthdr_fndecl_2016 ipv6_skip_exthdr fndecl 0-2 2016 NULL
154569 +enable_so_madvise_vma_fndecl_2019 madvise_vma fndecl 4-3 2019 NULL
154570 +enable_so_complicated_alloc_urb_fndecl_2022 complicated_alloc_urb fndecl 3-2 2022 NULL nohasharray
154571 +enable_so_ec_i2c_count_message_fndecl_2022 ec_i2c_count_message fndecl 0-2 2022 &enable_so_complicated_alloc_urb_fndecl_2022 nohasharray
154572 +enable_so_doc_probe_fndecl_2022 doc_probe fndecl 1 2022 &enable_so_ec_i2c_count_message_fndecl_2022
154573 +enable_so_vga_vram_base_vardecl_vgacon_c_2024 vga_vram_base vardecl_vgacon.c 0 2024 NULL
154574 +enable_so_max_write_fuse_conn_2028 max_write fuse_conn 0 2028 NULL
154575 +enable_so_process_adv_report_fndecl_2030 process_adv_report fndecl 9 2030 NULL
154576 +enable_so_ib_umem_odp_map_dma_single_page_fndecl_2040 ib_umem_odp_map_dma_single_page fndecl 0 2040 NULL
154577 +enable_so_gss_encrypt_xdr_buf_fndecl_2050 gss_encrypt_xdr_buf fndecl 3 2050 NULL
154578 +enable_so_set_sock_size_fndecl_2051 set_sock_size fndecl 3 2051 NULL
154579 +enable_so_xfs_da_grow_inode_int_fndecl_2058 xfs_da_grow_inode_int fndecl 3 2058 NULL
154580 +enable_so_wdt87xx_i2c_xfer_fndecl_2059 wdt87xx_i2c_xfer fndecl 3-5 2059 NULL nohasharray
154581 +enable_so_getgain_fndecl_2059 getgain fndecl 0 2059 &enable_so_wdt87xx_i2c_xfer_fndecl_2059 nohasharray
154582 +enable_so_rt2x00queue_remove_l2pad_fndecl_2059 rt2x00queue_remove_l2pad fndecl 2 2059 &enable_so_getgain_fndecl_2059
154583 +enable_so_receive_n_bytes_fndecl_2063 receive_n_bytes fndecl 3 2063 NULL
154584 +enable_so_val_bytes_regmap_format_2064 val_bytes regmap_format 0 2064 NULL
154585 +enable_so_usbat_flash_read_data_fndecl_2065 usbat_flash_read_data fndecl 4 2065 NULL
154586 +enable_so_ide_dump_status_fndecl_2068 ide_dump_status fndecl 0 2068 NULL
154587 +enable_so_total_copied_iscsi_segment_2071 total_copied iscsi_segment 0 2071 NULL
154588 +enable_so_dvb_generic_ioctl_fndecl_2081 dvb_generic_ioctl fndecl 2 2081 NULL
154589 +enable_so_mei_io_cb_alloc_buf_fndecl_2088 mei_io_cb_alloc_buf fndecl 2-0 2088 NULL
154590 +enable_so___kernel_write_fndecl_2090 __kernel_write fndecl 3-0 2090 NULL
154591 +enable_so_rxd_size_bdx_priv_2091 rxd_size bdx_priv 0 2091 NULL
154592 +enable_so_sensor_xres_em28xx_v4l2_2095 sensor_xres em28xx_v4l2 0 2095 NULL
154593 +enable_so_size_nfs_fattr_2101 size nfs_fattr 0 2101 NULL
154594 +enable_so_min_odd_fndecl_2105 min_odd fndecl 0-1-2 2105 NULL
154595 +enable_so_namelen_extended_attribute_2109 namelen extended_attribute 0 2109 NULL
154596 +enable_so_dlen_nft_immediate_expr_2110 dlen nft_immediate_expr 0 2110 NULL
154597 +enable_so_max_pkt_payload_len_nci_conn_info_2111 max_pkt_payload_len nci_conn_info 0 2111 NULL
154598 +enable_so_oom_adj_read_fndecl_2116 oom_adj_read fndecl 3 2116 NULL
154599 +enable_so_ecryptfs_truncate_fndecl_2118 ecryptfs_truncate fndecl 2 2118 NULL
154600 +enable_so_snd_timer_user_gstatus_fndecl_2121 snd_timer_user_gstatus fndecl 0 2121 NULL
154601 +enable_so_untrack_pfn_fndecl_2124 untrack_pfn fndecl 3 2124 NULL
154602 +enable_so_mt76_ampdu_action_fndecl_2126 mt76_ampdu_action fndecl 5 2126 NULL
154603 +enable_so_gen_unique_name_fndecl_2127 gen_unique_name fndecl 0 2127 NULL
154604 +enable_so_sector_size_nd_blk_device_2130 sector_size nd_blk_device 0 2130 NULL
154605 +enable_so_dce_v10_0_afmt_update_ACR_fndecl_2133 dce_v10_0_afmt_update_ACR fndecl 2 2133 NULL
154606 +enable_so_hdrs_min_io_size_ubi_device_2134 hdrs_min_io_size ubi_device 0 2134 NULL
154607 +enable_so_offset_resp_ies_ndis_80211_assoc_info_2135 offset_resp_ies ndis_80211_assoc_info 0 2135 NULL
154608 +enable_so_req_lim_srp_rdma_ch_2136 req_lim srp_rdma_ch 0 2136 NULL
154609 +enable_so_count_skge_ring_2140 count skge_ring 0 2140 NULL
154610 +enable_so_dma_len_srp_map_state_2141 dma_len srp_map_state 0 2141 NULL nohasharray
154611 +enable_so_smb_init_fndecl_2141 smb_init fndecl 2 2141 &enable_so_dma_len_srp_map_state_2141 nohasharray
154612 +enable_so_connection_length_spar_controlvm_parameters_header_2141 connection_length spar_controlvm_parameters_header 0 2141 &enable_so_smb_init_fndecl_2141
154613 +enable_so_capacity_p9_fcall_2144 capacity p9_fcall 0 2144 NULL
154614 +enable_so_sisusbcon_bmove_fndecl_2146 sisusbcon_bmove fndecl 7-5-6 2146 NULL
154615 +enable_so_multi_ios_hda_gen_spec_2147 multi_ios hda_gen_spec 0 2147 NULL
154616 +enable_so_ioc_len_obd_ioctl_hdr_2148 ioc_len obd_ioctl_hdr 0 2148 NULL
154617 +enable_so_mpc_new_length_vardecl_mpparse_c_2163 mpc_new_length vardecl_mpparse.c 0 2163 NULL nohasharray
154618 +enable_so_block_size__drive_info_struct_2163 block_size _drive_info_struct 0 2163 &enable_so_mpc_new_length_vardecl_mpparse_c_2163
154619 +enable_so___kfifo_dma_out_prepare_fndecl_2165 __kfifo_dma_out_prepare fndecl 4 2165 NULL
154620 +enable_so_read_size_perf_event_2173 read_size perf_event 0 2173 NULL
154621 +enable_so_ext4_setup_next_flex_gd_fndecl_2174 ext4_setup_next_flex_gd fndecl 4 2174 NULL
154622 +enable_so_qsfp_1_read_fndecl_2184 qsfp_1_read fndecl 3 2184 NULL
154623 +enable_so_rate_max_audioformat_2186 rate_max audioformat 0 2186 NULL nohasharray
154624 +enable_so_max_txsz_ulp_iscsi_info_2186 max_txsz ulp_iscsi_info 0 2186 &enable_so_rate_max_audioformat_2186
154625 +enable_so_bus_bm_cmd_send_i2400m_2189 bus_bm_cmd_send i2400m 0 2189 NULL
154626 +enable_so_ast_ttm_tt_create_fndecl_2190 ast_ttm_tt_create fndecl 2 2190 NULL
154627 +enable_so_qp_handle_buf_size_vmci_ctx_notify_recv_info_2191 qp_handle_buf_size vmci_ctx_notify_recv_info 0 2191 NULL
154628 +enable_so_ldlm_lock_create_fndecl_2195 ldlm_lock_create fndecl 7 2195 NULL
154629 +enable_so___btrfs_direct_write_fndecl_2197 __btrfs_direct_write fndecl 3 2197 NULL
154630 +enable_so_max_header_size_irlan_provider_cb_2198 max_header_size irlan_provider_cb 0 2198 NULL
154631 +enable_so_h_proto_ethhdr_2199 h_proto ethhdr 0 2199 NULL
154632 +enable_so_s_blocks_per_group_ext4_sb_info_2201 s_blocks_per_group ext4_sb_info 0 2201 NULL
154633 +enable_so_offs_v_fimc_frame_2215 offs_v fimc_frame 0 2215 NULL
154634 +enable_so_valuelen_xfs_attr_inactive_list_2216 valuelen xfs_attr_inactive_list 0 2216 NULL
154635 +enable_so_npads_smiapp_subdev_2220 npads smiapp_subdev 0 2220 NULL
154636 +enable_so_DH_length_eg_ctrl_info_2234 DH_length eg_ctrl_info 0 2234 NULL
154637 +enable_so_read_saa7146_use_ops_2236 read saa7146_use_ops 0 2236 NULL
154638 +enable_so_nfs_proc_readdir_fndecl_2240 nfs_proc_readdir fndecl 5 2240 NULL
154639 +enable_so_lpsn_qib_swqe_2241 lpsn qib_swqe 0 2241 NULL
154640 +enable_so_macb_change_mtu_fndecl_2242 macb_change_mtu fndecl 2 2242 NULL
154641 +enable_so_s_mb_group_prealloc_ext4_sb_info_2246 s_mb_group_prealloc ext4_sb_info 0 2246 NULL
154642 +enable_so_d_reclen_ufs_dir_entry_2247 d_reclen ufs_dir_entry 0 2247 NULL
154643 +enable_so_SYSC_prctl_fndecl_2255 SYSC_prctl fndecl 4 2255 NULL
154644 +enable_so_omfs_get_block_fndecl_2262 omfs_get_block fndecl 2 2262 NULL
154645 +enable_so_big_oops_buf_sz_vardecl_platform_c_2265 big_oops_buf_sz vardecl_platform.c 0 2265 NULL
154646 +enable_so___mmc_switch_fndecl_2268 __mmc_switch fndecl 0 2268 NULL
154647 +enable_so_compat_rw_copy_check_uvector_fndecl_2274 compat_rw_copy_check_uvector fndecl 0-3 2274 NULL nohasharray
154648 +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
154649 +enable_so_transport_init_se_cmd_fndecl_2277 transport_init_se_cmd fndecl 4 2277 NULL
154650 +enable_so_num_touchids_mxt_data_2284 num_touchids mxt_data 0 2284 NULL
154651 +enable_so_write_phy_fndecl_2290 write_phy fndecl 3 2290 NULL
154652 +enable_so_scrub_extent_fndecl_2293 scrub_extent fndecl 3-2-9-4 2293 NULL
154653 +enable_so_proc_sched_autogroup_set_nice_fndecl_2296 proc_sched_autogroup_set_nice fndecl 2 2296 NULL
154654 +enable_so_bulk_out_endpointAddr_usb_lcd_2303 bulk_out_endpointAddr usb_lcd 0 2303 NULL
154655 +enable_so_sensf_res_len_nfc_target_2304 sensf_res_len nfc_target 0 2304 NULL
154656 +enable_so_isdn_net_header_fndecl_2308 isdn_net_header fndecl 3-6 2308 NULL
154657 +enable_so_af9033_wr_regs_fndecl_2314 af9033_wr_regs fndecl 4 2314 NULL nohasharray
154658 +enable_so_read_pointer_st_buffer_2314 read_pointer st_buffer 0 2314 &enable_so_af9033_wr_regs_fndecl_2314
154659 +enable_so_clipcount_v4l2_window_2316 clipcount v4l2_window 0 2316 NULL
154660 +enable_so_ieee80211_tdls_prep_mgmt_packet_fndecl_2320 ieee80211_tdls_prep_mgmt_packet fndecl 10 2320 NULL
154661 +enable_so_mmc_alloc_sg_fndecl_2323 mmc_alloc_sg fndecl 1 2323 NULL
154662 +enable_so_i915_gem_object_create_from_data_fndecl_2325 i915_gem_object_create_from_data fndecl 3 2325 NULL
154663 +enable_so_sl_vid_mlx4_cqe_2328 sl_vid mlx4_cqe 0 2328 NULL
154664 +enable_so_sendmsg_proto_ops_2329 sendmsg proto_ops 0 2329 NULL
154665 +enable_so_qp_num_ib_cm_rep_param_2338 qp_num ib_cm_rep_param 0 2338 NULL nohasharray
154666 +enable_so_size_debugfs_blob_wrapper_2338 size debugfs_blob_wrapper 0 2338 &enable_so_qp_num_ib_cm_rep_param_2338
154667 +enable_so_gfx_partition_size_amdgpu_gds_asic_info_2339 gfx_partition_size amdgpu_gds_asic_info 0 2339 NULL
154668 +enable_so_memsz_kexec_segment_2340 memsz kexec_segment 0 2340 NULL nohasharray
154669 +enable_so_rx_rx_beacon_early_term_read_fndecl_2340 rx_rx_beacon_early_term_read fndecl 3 2340 &enable_so_memsz_kexec_segment_2340
154670 +enable_so_sg_copy_to_buffer_fndecl_2349 sg_copy_to_buffer fndecl 4 2349 NULL
154671 +enable_so_cipso_v4_map_cat_enum_hton_fndecl_2359 cipso_v4_map_cat_enum_hton fndecl 0 2359 NULL
154672 +enable_so_fat_ioctl_filldir_fndecl_2360 fat_ioctl_filldir fndecl 3 2360 NULL
154673 +enable_so_ReplUnitNum_nftl_uci0_2366 ReplUnitNum nftl_uci0 0 2366 NULL
154674 +enable_so_count_brcmf_pno_scanresults_le_2373 count brcmf_pno_scanresults_le 0 2373 NULL nohasharray
154675 +enable_so_packet_size_st5481_in_2373 packet_size st5481_in 0 2373 &enable_so_count_brcmf_pno_scanresults_le_2373
154676 +enable_so_cache_block_lba_msb_data_2385 cache_block_lba msb_data 0 2385 NULL
154677 +enable_so_tx_buffer_size_peak_usb_adapter_2386 tx_buffer_size peak_usb_adapter 0 2386 NULL nohasharray
154678 +enable_so_batadv_tt_local_client_is_roaming_fndecl_2386 batadv_tt_local_client_is_roaming fndecl 3 2386 &enable_so_tx_buffer_size_peak_usb_adapter_2386
154679 +enable_so_va_address_drm_amdgpu_gem_va_2389 va_address drm_amdgpu_gem_va 0 2389 NULL nohasharray
154680 +enable_so_pcifront_rescan_root_fndecl_2389 pcifront_rescan_root fndecl 3 2389 &enable_so_va_address_drm_amdgpu_gem_va_2389
154681 +enable_so_check_and_mark_free_block_fndecl_2391 check_and_mark_free_block fndecl 2 2391 NULL
154682 +enable_so_xlog_do_recovery_pass_fndecl_2401 xlog_do_recovery_pass fndecl 3 2401 NULL
154683 +enable_so_asd_get_cmdctx_size_fndecl_2408 asd_get_cmdctx_size fndecl 0 2408 NULL
154684 +enable_so_pci_cardbus_resource_alignment_fndecl_2410 pci_cardbus_resource_alignment fndecl 0 2410 NULL
154685 +enable_so___jfs_getxattr_fndecl_2412 __jfs_getxattr fndecl 0 2412 NULL
154686 +enable_so_cfi_intelext_write_buffers_fndecl_2417 cfi_intelext_write_buffers fndecl 3 2417 NULL nohasharray
154687 +enable_so_rspq_size_qset_params_2417 rspq_size qset_params 0 2417 &enable_so_cfi_intelext_write_buffers_fndecl_2417
154688 +enable_so_get_count_dm_space_map_2419 get_count dm_space_map 0 2419 NULL
154689 +enable_so_ocfs2_acl_from_xattr_fndecl_2423 ocfs2_acl_from_xattr fndecl 2 2423 NULL
154690 +enable_so_omtu_l2cap_chan_2424 omtu l2cap_chan 0 2424 NULL
154691 +enable_so_smtcfb_write_fndecl_2433 smtcfb_write fndecl 3 2433 NULL
154692 +enable_so_ib_umem_copy_from_fndecl_2435 ib_umem_copy_from fndecl 3-4 2435 NULL
154693 +enable_so_bcm3510_writebytes_fndecl_2436 bcm3510_writebytes fndecl 4 2436 NULL
154694 +enable_so_mtip_submit_request_fndecl_2437 mtip_submit_request fndecl 0 2437 NULL
154695 +enable_so_init_asiliant_fndecl_2438 init_asiliant fndecl 2 2438 NULL
154696 +enable_so_carl9170_rx_copy_data_fndecl_2443 carl9170_rx_copy_data fndecl 2 2443 NULL
154697 +enable_so_key_len_key_params_2447 key_len key_params 0 2447 NULL
154698 +enable_so_ocfs2_lock_refcount_allocators_fndecl_2461 ocfs2_lock_refcount_allocators fndecl 3-2 2461 NULL nohasharray
154699 +enable_so_fb_base_bochs_device_2461 fb_base bochs_device 0 2461 &enable_so_ocfs2_lock_refcount_allocators_fndecl_2461 nohasharray
154700 +enable_so_rsize_p9_conn_2461 rsize p9_conn 0 2461 &enable_so_fb_base_bochs_device_2461
154701 +enable_so_tomoyo_read_control_fndecl_2465 tomoyo_read_control fndecl 3 2465 NULL
154702 +enable_so_regmap_register_patch_fndecl_2466 regmap_register_patch fndecl 3 2466 NULL
154703 +enable_so_proc_maps_open_fndecl_2468 proc_maps_open fndecl 4 2468 NULL nohasharray
154704 +enable_so_rtllib_alloc_txb_fndecl_2468 rtllib_alloc_txb fndecl 1 2468 &enable_so_proc_maps_open_fndecl_2468
154705 +enable_so_maxpacket_usb_ep_2473 maxpacket usb_ep 0 2473 NULL
154706 +enable_so_ixgb_change_mtu_fndecl_2482 ixgb_change_mtu fndecl 2 2482 NULL
154707 +enable_so_num_vf_en_nicpf_2486 num_vf_en nicpf 0 2486 NULL
154708 +enable_so_tcp_sacktag_one_fndecl_2487 tcp_sacktag_one fndecl 7 2487 NULL
154709 +enable_so_ocfs2_xattr_get_nolock_fndecl_2493 ocfs2_xattr_get_nolock fndecl 0 2493 NULL
154710 +enable_so_btrfs_find_all_leafs_fndecl_2499 btrfs_find_all_leafs fndecl 3 2499 NULL
154711 +enable_so_hard_mtu_lan78xx_net_2507 hard_mtu lan78xx_net 0 2507 NULL
154712 +enable_so_size_arpt_replace_2509 size arpt_replace 0 2509 NULL
154713 +enable_so_unmap_alignment_scsi_disk_2514 unmap_alignment scsi_disk 0 2514 NULL
154714 +enable_so_evdev_ioctl_handler_fndecl_2522 evdev_ioctl_handler fndecl 2 2522 NULL
154715 +enable_so_usbpn_set_mtu_fndecl_2527 usbpn_set_mtu fndecl 2 2527 NULL
154716 +enable_so_vfio_unpin_pages_fndecl_2528 vfio_unpin_pages fndecl 0 2528 NULL
154717 +enable_so___nf_nat_mangle_tcp_packet_fndecl_2531 __nf_nat_mangle_tcp_packet fndecl 6-8 2531 NULL
154718 +enable_so_should_remove_suid_fndecl_2532 should_remove_suid fndecl 0 2532 NULL
154719 +enable_so_ocfs2_direct_IO_extend_no_holes_fndecl_2534 ocfs2_direct_IO_extend_no_holes fndecl 3 2534 NULL
154720 +enable_so_l2down_create_fndecl_2536 l2down_create fndecl 4 2536 NULL
154721 +enable_so_mthca_alloc_init_fndecl_2537 mthca_alloc_init fndecl 3-2 2537 NULL
154722 +enable_so_tcp_shifted_skb_fndecl_2543 tcp_shifted_skb fndecl 4 2543 NULL
154723 +enable_so___wa_seg_submit_fndecl_2547 __wa_seg_submit fndecl 0 2547 NULL nohasharray
154724 +enable_so_lprocfs_wr_import_fndecl_2547 lprocfs_wr_import fndecl 3 2547 &enable_so___wa_seg_submit_fndecl_2547
154725 +enable_so___kmem_cache_alias_fndecl_2551 __kmem_cache_alias fndecl 3-2 2551 NULL
154726 +enable_so_vm_brk_fndecl_2552 vm_brk fndecl 1-2 2552 NULL
154727 +enable_so_dma_maxpq_fndecl_2555 dma_maxpq fndecl 0 2555 NULL
154728 +enable_so_off_fuse_dirent_2561 off fuse_dirent 0 2561 NULL
154729 +enable_so_active_duplex_niu_link_config_2566 active_duplex niu_link_config 0 2566 NULL
154730 +enable_so_hdsp_external_sample_rate_fndecl_2568 hdsp_external_sample_rate fndecl 0 2568 NULL
154731 +enable_so_extend_brk_fndecl_2574 extend_brk fndecl 2-1 2574 NULL
154732 +enable_so___tun_chr_ioctl_fndecl_2575 __tun_chr_ioctl fndecl 4 2575 NULL
154733 +enable_so_aio_offset_iocb_2576 aio_offset iocb 0 2576 NULL nohasharray
154734 +enable_so_skb_checksum_trimmed_fndecl_2576 skb_checksum_trimmed fndecl 2 2576 &enable_so_aio_offset_iocb_2576
154735 +enable_so_len_patch_info_2583 len patch_info 0 2583 NULL
154736 +enable_so_nr_pages_scif_pinned_pages_2586 nr_pages scif_pinned_pages 0 2586 NULL
154737 +enable_so_page_cache_tree_insert_fndecl_2600 page_cache_tree_insert fndecl 0 2600 NULL nohasharray
154738 +enable_so_get_memory_block_size_fndecl_2600 get_memory_block_size fndecl 0 2600 &enable_so_page_cache_tree_insert_fndecl_2600
154739 +enable_so_maxfrsize_bfa_fcs_rport_s_2601 maxfrsize bfa_fcs_rport_s 0 2601 NULL
154740 +enable_so_mesh_table_alloc_fndecl_2610 mesh_table_alloc fndecl 1 2610 NULL
154741 +enable_so_ld_active_tgt_count_lov_desc_2613 ld_active_tgt_count lov_desc 0 2613 NULL
154742 +enable_so_dst_maxburst_dma_slave_config_2619 dst_maxburst dma_slave_config 0 2619 NULL
154743 +enable_so_len_whc_std_2626 len whc_std 0 2626 NULL
154744 +enable_so_ptn3460_read_bytes_fndecl_2627 ptn3460_read_bytes fndecl 4 2627 NULL
154745 +enable_so_snd_soc_params_to_frame_size_fndecl_2630 snd_soc_params_to_frame_size fndecl 0 2630 NULL nohasharray
154746 +enable_so_total_vm_mm_struct_2630 total_vm mm_struct 0 2630 &enable_so_snd_soc_params_to_frame_size_fndecl_2630
154747 +enable_so_radeon_vram_location_fndecl_2634 radeon_vram_location fndecl 3 2634 NULL
154748 +enable_so_bop_lookup_contig_nilfs_bmap_operations_2637 bop_lookup_contig nilfs_bmap_operations 0 2637 NULL
154749 +enable_so_regmap_spi_gather_write_fndecl_2639 regmap_spi_gather_write fndecl 3-5 2639 NULL
154750 +enable_so_num_cpu_pages_amdgpu_gart_2640 num_cpu_pages amdgpu_gart 0 2640 NULL
154751 +enable_so_rx_bufshift_rtl_stats_2641 rx_bufshift rtl_stats 0 2641 NULL
154752 +enable_so_sys_read_fndecl_2644 sys_read fndecl 3 2644 NULL
154753 +enable_so_bitmap_cond_end_sync_fndecl_2649 bitmap_cond_end_sync fndecl 2 2649 NULL
154754 +enable_so_max_low_pfn_mapped_vardecl_2650 max_low_pfn_mapped vardecl 0 2650 NULL
154755 +enable_so_pktgen_alloc_skb_fndecl_2658 pktgen_alloc_skb fndecl 3 2658 NULL nohasharray
154756 +enable_so_resync_max_mddev_2658 resync_max mddev 0 2658 &enable_so_pktgen_alloc_skb_fndecl_2658
154757 +enable_so_alloc_large_system_hash_fndecl_2660 alloc_large_system_hash fndecl 2 2660 NULL
154758 +enable_so_dlen_hci_acl_hdr_2672 dlen hci_acl_hdr 0 2672 NULL nohasharray
154759 +enable_so_evdev_ioctl_fndecl_2672 evdev_ioctl fndecl 2 2672 &enable_so_dlen_hci_acl_hdr_2672
154760 +enable_so_ee_block_ext4_extent_2673 ee_block ext4_extent 0 2673 NULL
154761 +enable_so_scif_user_recv_fndecl_2675 scif_user_recv fndecl 3 2675 NULL nohasharray
154762 +enable_so_bbt_erase_shift_bbm_info_2675 bbt_erase_shift bbm_info 0 2675 &enable_so_scif_user_recv_fndecl_2675
154763 +enable_so_TmpDcm_zoran_jpg_settings_2679 TmpDcm zoran_jpg_settings 0 2679 NULL
154764 +enable_so_mad_len_ib_mad_recv_wc_2683 mad_len ib_mad_recv_wc 0 2683 NULL
154765 +enable_so_logo_lines_vardecl_fbcon_c_2685 logo_lines vardecl_fbcon.c 0 2685 NULL
154766 +enable_so_queue_reply_fndecl_2691 queue_reply fndecl 3 2691 NULL
154767 +enable_so_pkt_finish_packet_fndecl_2701 pkt_finish_packet fndecl 2 2701 NULL
154768 +enable_so_crash_shrink_memory_fndecl_2706 crash_shrink_memory fndecl 1 2706 NULL
154769 +enable_so_src_len_ccp_sha_engine_2711 src_len ccp_sha_engine 0 2711 NULL nohasharray
154770 +enable_so_zoran_write_fndecl_2711 zoran_write fndecl 3 2711 &enable_so_src_len_ccp_sha_engine_2711
154771 +enable_so_u132_hcd_bulk_output_sent_fndecl_2715 u132_hcd_bulk_output_sent fndecl 4 2715 NULL
154772 +enable_so_mt7601u_usb_alloc_buf_fndecl_2716 mt7601u_usb_alloc_buf fndecl 2 2716 NULL
154773 +enable_so_bytesused_v4l2_buffer_2717 bytesused v4l2_buffer 0 2717 NULL
154774 +enable_so_handle_received_packet_fndecl_2730 handle_received_packet fndecl 3 2730 NULL
154775 +enable_so_get_res_add_size_fndecl_2740 get_res_add_size fndecl 0 2740 NULL
154776 +enable_so_iov_iter_get_pages_fndecl_2747 iov_iter_get_pages fndecl 0-4-3 2747 NULL
154777 +enable_so_mem_vardecl_applicom_c_2753 mem vardecl_applicom.c 0 2753 NULL
154778 +enable_so_rfcomm_send_test_fndecl_2760 rfcomm_send_test fndecl 4 2760 NULL nohasharray
154779 +enable_so_cache_write_procfs_fndecl_2760 cache_write_procfs fndecl 3 2760 &enable_so_rfcomm_send_test_fndecl_2760
154780 +enable_so_qib_user_sdma_alloc_header_fndecl_2761 qib_user_sdma_alloc_header fndecl 2 2761 NULL
154781 +enable_so_ecryptfs_write_fndecl_2763 ecryptfs_write fndecl 4-3 2763 NULL
154782 +enable_so_qnx6_match_fndecl_2766 qnx6_match fndecl 0 2766 NULL
154783 +enable_so_u_ssize_user32_2770 u_ssize user32 0 2770 NULL
154784 +enable_so_ieee80211_alloc_hw_nm_fndecl_2774 ieee80211_alloc_hw_nm fndecl 1 2774 NULL
154785 +enable_so_batadv_check_unicast_packet_fndecl_2775 batadv_check_unicast_packet fndecl 3 2775 NULL nohasharray
154786 +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
154787 +enable_so_num_bo_handles_drm_virtgpu_execbuffer_2779 num_bo_handles drm_virtgpu_execbuffer 0 2779 NULL
154788 +enable_so_uhci_result_common_fndecl_2788 uhci_result_common fndecl 0 2788 NULL
154789 +enable_so_pkcs7_sig_note_skid_fndecl_2795 pkcs7_sig_note_skid fndecl 5 2795 NULL
154790 +enable_so_iobase_vardecl_l440gx_c_2797 iobase vardecl_l440gx.c 0 2797 NULL
154791 +enable_so_sb_inodelog_xfs_sb_2799 sb_inodelog xfs_sb 0 2799 NULL
154792 +enable_so_st21nfca_hci_se_io_fndecl_2800 st21nfca_hci_se_io fndecl 4 2800 NULL nohasharray
154793 +enable_so_mp_find_ioapic_pin_fndecl_2800 mp_find_ioapic_pin fndecl 0-2 2800 &enable_so_st21nfca_hci_se_io_fndecl_2800
154794 +enable_so_put_chars_fndecl_2801 put_chars fndecl 3 2801 NULL
154795 +enable_so_bytesused_vb2_plane_2804 bytesused vb2_plane 0 2804 NULL
154796 +enable_so_usb_stor_set_xfer_buf_fndecl_2809 usb_stor_set_xfer_buf fndecl 2 2809 NULL
154797 +enable_so_num_active_queues_i40evf_adapter_2813 num_active_queues i40evf_adapter 0 2813 NULL
154798 +enable_so_num_cnic_queues_bnx2x_2816 num_cnic_queues bnx2x 0 2816 NULL
154799 +enable_so_lo_offset_loop_device_2817 lo_offset loop_device 0 2817 NULL
154800 +enable_so__sp2d_min_pg_fndecl_2819 _sp2d_min_pg fndecl 0 2819 NULL
154801 +enable_so_rtsx_pci_dma_map_sg_fndecl_2820 rtsx_pci_dma_map_sg fndecl 0 2820 NULL
154802 +enable_so_VerDcm_zoran_jpg_settings_2823 VerDcm zoran_jpg_settings 0 2823 NULL
154803 +enable_so_btrfs_get_16_fndecl_2836 btrfs_get_16 fndecl 0 2836 NULL
154804 +enable_so_ureg_align_qib_devdata_2841 ureg_align qib_devdata 0 2841 NULL
154805 +enable_so_max_data_size_ath6kl_bmi_2842 max_data_size ath6kl_bmi 0 2842 NULL
154806 +enable_so_dccm2_len_iwl_cfg_2852 dccm2_len iwl_cfg 0 2852 NULL
154807 +enable_so_phys_size_hfs_inode_info_2856 phys_size hfs_inode_info 0 2856 NULL nohasharray
154808 +enable_so_bit_offset_nvmem_cell_2856 bit_offset nvmem_cell 0 2856 &enable_so_phys_size_hfs_inode_info_2856
154809 +enable_so_btrfs_reloc_clone_csums_fndecl_2862 btrfs_reloc_clone_csums fndecl 3-2 2862 NULL
154810 +enable_so_q_depth_nvme_dev_2866 q_depth nvme_dev 0 2866 NULL nohasharray
154811 +enable_so_zd_usb_read_fw_fndecl_2866 zd_usb_read_fw fndecl 4 2866 &enable_so_q_depth_nvme_dev_2866
154812 +enable_so_max_sst_algo_control_2868 max sst_algo_control 0 2868 NULL
154813 +enable_so_secondary_bin_size_drm_mga_dma_bootstrap_2869 secondary_bin_size drm_mga_dma_bootstrap 0 2869 NULL nohasharray
154814 +enable_so_sys_recvfrom_fndecl_2869 sys_recvfrom fndecl 3 2869 &enable_so_secondary_bin_size_drm_mga_dma_bootstrap_2869
154815 +enable_so_cmodio_id_vardecl_janz_cmodio_c_2872 cmodio_id vardecl_janz-cmodio.c 0 2872 NULL
154816 +enable_so_drm_gem_object_init_fndecl_2882 drm_gem_object_init fndecl 3 2882 NULL nohasharray
154817 +enable_so_sg_init_one_fndecl_2882 sg_init_one fndecl 3 2882 &enable_so_drm_gem_object_init_fndecl_2882
154818 +enable_so_qlcnic_sriov_pf_enable_fndecl_2884 qlcnic_sriov_pf_enable fndecl 2 2884 NULL
154819 +enable_so_n_notifiers_vmci_ctx_2889 n_notifiers vmci_ctx 0 2889 NULL
154820 +enable_so_ieee80211_tdls_add_chan_switch_resp_ies_fndecl_2892 ieee80211_tdls_add_chan_switch_resp_ies fndecl 7 2892 NULL nohasharray
154821 +enable_so_pca953x_setup_gpio_fndecl_2892 pca953x_setup_gpio fndecl 2 2892 &enable_so_ieee80211_tdls_add_chan_switch_resp_ies_fndecl_2892
154822 +enable_so_set_max_cos_est_fndecl_2893 set_max_cos_est fndecl 0 2893 NULL
154823 +enable_so_prl_count_ip_tunnel_2900 prl_count ip_tunnel 0 2900 NULL
154824 +enable_so_xfs_bmapi_reserve_delalloc_fndecl_2901 xfs_bmapi_reserve_delalloc fndecl 2 2901 NULL nohasharray
154825 +enable_so_nf_ct_seq_adjust_fndecl_2901 nf_ct_seq_adjust fndecl 4 2901 &enable_so_xfs_bmapi_reserve_delalloc_fndecl_2901
154826 +enable_so_mem_rw_fndecl_2902 mem_rw fndecl 3 2902 NULL
154827 +enable_so_tx_max_out_p_vardecl_mptlan_c_2906 tx_max_out_p vardecl_mptlan.c 0 2906 NULL
154828 +enable_so_chroma_size_s5p_mfc_ctx_2911 chroma_size s5p_mfc_ctx 0 2911 NULL
154829 +enable_so_length_usbhs_pkt_2912 length usbhs_pkt 0 2912 NULL
154830 +enable_so_tda1004x_do_upload_fndecl_2916 tda1004x_do_upload fndecl 3 2916 NULL
154831 +enable_so_discard_swap_cluster_fndecl_2926 discard_swap_cluster fndecl 3-2 2926 NULL
154832 +enable_so_rx_buf_size_octeon_nic_if_config_2928 rx_buf_size octeon_nic_if_config 0 2928 NULL nohasharray
154833 +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
154834 +enable_so_rx_num_pgs_tp_params_2929 rx_num_pgs tp_params 0 2929 NULL
154835 +enable_so_tx_cnt_isac_2931 tx_cnt isac 0 2931 NULL nohasharray
154836 +enable_so_pno_blkpg_partition_2931 pno blkpg_partition 0 2931 &enable_so_tx_cnt_isac_2931
154837 +enable_so_fnic_fc_trace_max_pages_vardecl_2932 fnic_fc_trace_max_pages vardecl 0 2932 NULL
154838 +enable_so_tx_ring_count_ixgbevf_adapter_2933 tx_ring_count ixgbevf_adapter 0 2933 NULL
154839 +enable_so_qed_int_get_num_sbs_fndecl_2936 qed_int_get_num_sbs fndecl 0 2936 NULL
154840 +enable_so_max_ndp_size_cdc_ncm_ctx_2942 max_ndp_size cdc_ncm_ctx 0 2942 NULL
154841 +enable_so_sys_remap_file_pages_fndecl_2943 sys_remap_file_pages fndecl 2-4-1 2943 NULL
154842 +enable_so_devm_ioremap_wc_fndecl_2945 devm_ioremap_wc fndecl 3-2 2945 NULL
154843 +enable_so_HorDcm_zoran_jpg_settings_2947 HorDcm zoran_jpg_settings 0 2947 NULL nohasharray
154844 +enable_so_tx_idx_dchannel_2947 tx_idx dchannel 0 2947 &enable_so_HorDcm_zoran_jpg_settings_2947
154845 +enable_so_cydata_ofs_cyttsp4_sysinfo_ofs_2952 cydata_ofs cyttsp4_sysinfo_ofs 0 2952 NULL
154846 +enable_so_alloc_blksz_hfsplus_sb_info_2955 alloc_blksz hfsplus_sb_info 0 2955 NULL
154847 +enable_so___kfifo_alloc_fndecl_2958 __kfifo_alloc fndecl 3 2958 NULL
154848 +enable_so_info_len_ib_ucm_event_2963 info_len ib_ucm_event 0 2963 NULL
154849 +enable_so_s_ipg_ufs_sb_private_info_2965 s_ipg ufs_sb_private_info 0 2965 NULL
154850 +enable_so_SyS_sched_setaffinity_fndecl_2967 SyS_sched_setaffinity fndecl 2 2967 NULL
154851 +enable_so_do_tcp_sendpages_fndecl_2968 do_tcp_sendpages fndecl 4-3 2968 NULL
154852 +enable_so_pn533_dep_link_up_fndecl_2969 pn533_dep_link_up fndecl 5 2969 NULL
154853 +enable_so_qp_table_size_qib_ibdev_2970 qp_table_size qib_ibdev 0 2970 NULL
154854 +enable_so_align_ip_set_ext_type_2975 align ip_set_ext_type 0 2975 NULL
154855 +enable_so_mrp_pdu_append_vecattr_hdr_fndecl_2982 mrp_pdu_append_vecattr_hdr fndecl 3 2982 NULL
154856 +enable_so_origin_write_extent_fndecl_2983 origin_write_extent fndecl 2 2983 NULL
154857 +enable_so_reiserfs_cut_from_item_fndecl_2988 reiserfs_cut_from_item fndecl 6 2988 NULL nohasharray
154858 +enable_so_h_align_bdisp_fmt_2988 h_align bdisp_fmt 0 2988 &enable_so_reiserfs_cut_from_item_fndecl_2988
154859 +enable_so_iscsi_start_cid_cnic_local_2995 iscsi_start_cid cnic_local 0 2995 NULL
154860 +enable_so_offset_fuse_notify_retrieve_out_2999 offset fuse_notify_retrieve_out 0 2999 NULL
154861 +enable_so_hdr_len_iscsi_task_3003 hdr_len iscsi_task 0 3003 NULL
154862 +enable_so_do_sync_mmap_readahead_fndecl_3008 do_sync_mmap_readahead fndecl 4 3008 NULL
154863 +enable_so_rdma_build_arg_xdr_fndecl_3012 rdma_build_arg_xdr fndecl 3 3012 NULL
154864 +enable_so_mem_write_fndecl_3019 mem_write fndecl 3 3019 NULL
154865 +enable_so_bpw_len_pch_spi_data_3026 bpw_len pch_spi_data 0 3026 NULL
154866 +enable_so_de_rec_len_gfs2_dirent_3029 de_rec_len gfs2_dirent 0 3029 NULL
154867 +enable_so_of_fdt_match_fndecl_3030 of_fdt_match fndecl 2 3030 NULL
154868 +enable_so_mdio_write_mdio_if_info_3033 mdio_write mdio_if_info 0 3033 NULL nohasharray
154869 +enable_so_dual_channel_active_fndecl_3033 dual_channel_active fndecl 0 3033 &enable_so_mdio_write_mdio_if_info_3033
154870 +enable_so_num_hwfns_qed_dev_3034 num_hwfns qed_dev 0 3034 NULL
154871 +enable_so_fat_compat_ioctl_filldir_fndecl_3037 fat_compat_ioctl_filldir fndecl 3 3037 NULL
154872 +enable_so_xfs_bulkstat_grab_ichunk_fndecl_3041 xfs_bulkstat_grab_ichunk fndecl 2 3041 NULL
154873 +enable_so_add_res_tree_fndecl_3044 add_res_tree fndecl 7 3044 NULL
154874 +enable_so_ping_common_sendmsg_fndecl_3046 ping_common_sendmsg fndecl 5 3046 NULL
154875 +enable_so_at25_ee_write_fndecl_3050 at25_ee_write fndecl 4-3 3050 NULL
154876 +enable_so_skb_seq_read_fndecl_3054 skb_seq_read fndecl 0-1 3054 NULL
154877 +enable_so_size_ecryptfs_cache_info_3056 size ecryptfs_cache_info 0 3056 NULL
154878 +enable_so_prepare_to_wait_event_fndecl_3060 prepare_to_wait_event fndecl 0 3060 NULL
154879 +enable_so_dst_addr_width_dma_slave_config_3068 dst_addr_width dma_slave_config 0 3068 NULL nohasharray
154880 +enable_so_ntfs_map_runlist_fndecl_3068 ntfs_map_runlist fndecl 2 3068 &enable_so_dst_addr_width_dma_slave_config_3068
154881 +enable_so_compat_process_vm_rw_fndecl_3069 compat_process_vm_rw fndecl 5-3 3069 NULL
154882 +enable_so_punch_hole_fndecl_3070 punch_hole fndecl 2-3 3070 NULL
154883 +enable_so_hbuf_max_len_mei_hw_ops_3071 hbuf_max_len mei_hw_ops 0 3071 NULL
154884 +enable_so_height_au0828_dev_3073 height au0828_dev 0 3073 NULL
154885 +enable_so_sg_addr_size__MPT_ADAPTER_3079 sg_addr_size _MPT_ADAPTER 0 3079 NULL
154886 +enable_so_brcmf_p2p_escan_fndecl_3080 brcmf_p2p_escan fndecl 2 3080 NULL
154887 +enable_so_cluster_next_swap_info_struct_3087 cluster_next swap_info_struct 0 3087 NULL
154888 +enable_so_total_h_mt9t031_3088 total_h mt9t031 0 3088 NULL
154889 +enable_so_npages_mthca_db_table_3090 npages mthca_db_table 0 3090 NULL nohasharray
154890 +enable_so_ad7280_write_fndecl_3090 ad7280_write fndecl 0 3090 &enable_so_npages_mthca_db_table_3090
154891 +enable_so_fb_prepare_logo_fndecl_3092 fb_prepare_logo fndecl 0 3092 NULL
154892 +enable_so_loopstart_soundfont_sample_info_3093 loopstart soundfont_sample_info 0 3093 NULL
154893 +enable_so_gtt_mappable_entries__intel_private_3099 gtt_mappable_entries _intel_private 0 3099 NULL
154894 +enable_so_vol_cdev_direct_write_fndecl_3100 vol_cdev_direct_write fndecl 3 3100 NULL
154895 +enable_so_rx_pkt_map_sz_tg3_3106 rx_pkt_map_sz tg3 0 3106 NULL
154896 +enable_so_mt76_init_sband_fndecl_3112 mt76_init_sband fndecl 4-6 3112 NULL
154897 +enable_so_fb_alloc_cmap_gfp_fndecl_3115 fb_alloc_cmap_gfp fndecl 2 3115 NULL
154898 +enable_so_ipip6_tunnel_change_mtu_fndecl_3119 ipip6_tunnel_change_mtu fndecl 2 3119 NULL nohasharray
154899 +enable_so_blk_rq_map_user_fndecl_3119 blk_rq_map_user fndecl 5 3119 &enable_so_ipip6_tunnel_change_mtu_fndecl_3119 nohasharray
154900 +enable_so_compat_filldir64_fndecl_3119 compat_filldir64 fndecl 3 3119 &enable_so_blk_rq_map_user_fndecl_3119 nohasharray
154901 +enable_so_controller_function_ms_boot_attr_info_3119 controller_function ms_boot_attr_info 0 3119 &enable_so_compat_filldir64_fndecl_3119
154902 +enable_so_status_whc_qhead_3133 status whc_qhead 0 3133 NULL
154903 +enable_so_ext4_block_zero_page_range_fndecl_3135 ext4_block_zero_page_range fndecl 3 3135 NULL
154904 +enable_so_strndup_user_fndecl_3136 strndup_user fndecl 2 3136 NULL
154905 +enable_so_brcmf_usb_dlstart_fndecl_3138 brcmf_usb_dlstart fndecl 3 3138 NULL
154906 +enable_so_fotg210_urb_done_fndecl_3144 fotg210_urb_done fndecl 3 3144 NULL
154907 +enable_so_tx_room_keyspan_pda_private_3146 tx_room keyspan_pda_private 0 3146 NULL
154908 +enable_so_usbhs_read_fndecl_3148 usbhs_read fndecl 0 3148 NULL nohasharray
154909 +enable_so_fragment_length_zd_usb_rx_3148 fragment_length zd_usb_rx 0 3148 &enable_so_usbhs_read_fndecl_3148 nohasharray
154910 +enable_so_nilfs_scan_dsync_log_fndecl_3148 nilfs_scan_dsync_log fndecl 2 3148 &enable_so_fragment_length_zd_usb_rx_3148
154911 +enable_so_iseg_base_mlx5_core_dev_3151 iseg_base mlx5_core_dev 0 3151 NULL
154912 +enable_so_udf_get_last_session_fndecl_3152 udf_get_last_session fndecl 0 3152 NULL
154913 +enable_so_mmio_size_drm_mga_private_3160 mmio_size drm_mga_private 0 3160 NULL
154914 +enable_so_prealloc_size_ich_pcm_table_3162 prealloc_size ich_pcm_table 0 3162 NULL nohasharray
154915 +enable_so_sys_sendto_fndecl_3162 sys_sendto fndecl 6-3 3162 &enable_so_prealloc_size_ich_pcm_table_3162
154916 +enable_so_send_ext_msg_udp_fndecl_3163 send_ext_msg_udp fndecl 3 3163 NULL
154917 +enable_so_cfv_alloc_and_copy_skb_fndecl_3167 cfv_alloc_and_copy_skb fndecl 4 3167 NULL nohasharray
154918 +enable_so_logfs_is_valid_block_fndecl_3167 logfs_is_valid_block fndecl 3 3167 &enable_so_cfv_alloc_and_copy_skb_fndecl_3167
154919 +enable_so_bytes_per_pixel_vivid_dev_3174 bytes_per_pixel vivid_dev 0 3174 NULL
154920 +enable_so_fill_elf_header_fndecl_3182 fill_elf_header fndecl 2 3182 NULL
154921 +enable_so_wl1271_format_buffer_fndecl_3185 wl1271_format_buffer fndecl 2 3185 NULL
154922 +enable_so_keyspan_write_fndecl_3189 keyspan_write fndecl 4 3189 NULL
154923 +enable_so_min_io_size_ubi_device_3191 min_io_size ubi_device 0 3191 NULL nohasharray
154924 +enable_so_uvc_alloc_entity_fndecl_3191 uvc_alloc_entity fndecl 3-4 3191 &enable_so_min_io_size_ubi_device_3191
154925 +enable_so_nvme_trans_supported_vpd_pages_fndecl_3196 nvme_trans_supported_vpd_pages fndecl 4 3196 NULL
154926 +enable_so_mspi_apply_cpu_mode_quirks_fndecl_3197 mspi_apply_cpu_mode_quirks fndecl 0-4 3197 NULL
154927 +enable_so_p9_tag_alloc_fndecl_3198 p9_tag_alloc fndecl 3 3198 NULL nohasharray
154928 +enable_so_lcd_hblank_len_atyfb_par_3198 lcd_hblank_len atyfb_par 0 3198 &enable_so_p9_tag_alloc_fndecl_3198
154929 +enable_so_import_iovec_fndecl_3201 import_iovec fndecl 3 3201 NULL
154930 +enable_so_chunk_size_mdu_array_info_s_3205 chunk_size mdu_array_info_s 0 3205 NULL
154931 +enable_so_cfs_cpt_table_create_fndecl_3207 cfs_cpt_table_create fndecl 1 3207 NULL
154932 +enable_so_sisusb_send_packet_fndecl_3208 sisusb_send_packet fndecl 2 3208 NULL
154933 +enable_so_usbvision_set_output_fndecl_3216 usbvision_set_output fndecl 2-3 3216 NULL
154934 +enable_so_rx_buffer_len_ixgb_adapter_3217 rx_buffer_len ixgb_adapter 0 3217 NULL nohasharray
154935 +enable_so_cw1200_sdio_memcpy_fromio_fndecl_3217 cw1200_sdio_memcpy_fromio fndecl 4 3217 &enable_so_rx_buffer_len_ixgb_adapter_3217
154936 +enable_so_nportcntrs_hfi1_devdata_3218 nportcntrs hfi1_devdata 0 3218 NULL
154937 +enable_so_h_len_logfs_journal_header_3222 h_len logfs_journal_header 0 3222 NULL
154938 +enable_so_bfad_iocmd_cee_get_stats_fndecl_3228 bfad_iocmd_cee_get_stats fndecl 0 3228 NULL
154939 +enable_so_mad_size_ib_mad_private_3230 mad_size ib_mad_private 0 3230 NULL
154940 +enable_so_command_setexposure_fndecl_3231 command_setexposure fndecl 0 3231 NULL
154941 +enable_so_sq_num_entries_c4iw_qp_attributes_3234 sq_num_entries c4iw_qp_attributes 0 3234 NULL
154942 +enable_so_lbs_rdbbp_write_fndecl_3237 lbs_rdbbp_write fndecl 3 3237 NULL
154943 +enable_so_inlen_ib_udata_3242 inlen ib_udata 0 3242 NULL nohasharray
154944 +enable_so_expect_class_max_nf_conntrack_helper_3242 expect_class_max nf_conntrack_helper 0 3242 &enable_so_inlen_ib_udata_3242
154945 +enable_so_max_wqe_ocrdma_dev_attr_3246 max_wqe ocrdma_dev_attr 0 3246 NULL
154946 +enable_so_of_property_match_string_fndecl_3250 of_property_match_string fndecl 0 3250 NULL
154947 +enable_so_shmem_kernel_file_setup_fndecl_3251 shmem_kernel_file_setup fndecl 2 3251 NULL
154948 +enable_so_rx_buf_size_bnxt_3254 rx_buf_size bnxt 0 3254 NULL
154949 +enable_so_vfio_msi_enable_fndecl_3257 vfio_msi_enable fndecl 2 3257 NULL
154950 +enable_so_sbc_check_prot_fndecl_3258 sbc_check_prot fndecl 4 3258 NULL
154951 +enable_so_taglen_cb_compound_hdr_res_3259 taglen cb_compound_hdr_res 0 3259 NULL
154952 +enable_so_imx_pcm_dma_init_fndecl_3260 imx_pcm_dma_init fndecl 2 3260 NULL nohasharray
154953 +enable_so_compat_sys_readv_fndecl_3260 compat_sys_readv fndecl 3 3260 &enable_so_imx_pcm_dma_init_fndecl_3260
154954 +enable_so_rx_rx_phy_hdr_read_fndecl_3269 rx_rx_phy_hdr_read fndecl 3 3269 NULL
154955 +enable_so_vub300_response_error_fndecl_3270 vub300_response_error fndecl 0 3270 NULL
154956 +enable_so_altera_set_ir_post_fndecl_3271 altera_set_ir_post fndecl 2 3271 NULL
154957 +enable_so_rsxx_cram_read_fndecl_3278 rsxx_cram_read fndecl 3 3278 NULL
154958 +enable_so_error_mmc_data_3279 error mmc_data 0 3279 NULL
154959 +enable_so_doff_tcphdr_3280 doff tcphdr 0 3280 NULL nohasharray
154960 +enable_so_ds1305_nvram_read_fndecl_3280 ds1305_nvram_read fndecl 6 3280 &enable_so_doff_tcphdr_3280
154961 +enable_so_ms_write_bytes_fndecl_3282 ms_write_bytes fndecl 0 3282 NULL
154962 +enable_so_stolen_base_drm_psb_private_3285 stolen_base drm_psb_private 0 3285 NULL nohasharray
154963 +enable_so_cfg80211_rx_assoc_resp_fndecl_3285 cfg80211_rx_assoc_resp fndecl 4 3285 &enable_so_stolen_base_drm_psb_private_3285
154964 +enable_so_htable_bits_fndecl_3286 htable_bits fndecl 0 3286 NULL
154965 +enable_so_check_eofblocks_fl_fndecl_3293 check_eofblocks_fl fndecl 0 3293 NULL
154966 +enable_so_iov_count_iscsi_data_count_3301 iov_count iscsi_data_count 0 3301 NULL
154967 +enable_so_rds_page_remainder_alloc_fndecl_3303 rds_page_remainder_alloc fndecl 2 3303 NULL
154968 +enable_so_alg_setsockopt_fndecl_3306 alg_setsockopt fndecl 5 3306 NULL
154969 +enable_so_transfer_size_zr364xx_pipeinfo_3312 transfer_size zr364xx_pipeinfo 0 3312 NULL
154970 +enable_so_sdmabufcnt_qib_chip_specific_3319 sdmabufcnt qib_chip_specific 0 3319 NULL
154971 +enable_so_snd_rme9652_playback_copy_fndecl_3321 snd_rme9652_playback_copy fndecl 5 3321 NULL
154972 +enable_so_bulk_out_ep_irda_usb_cb_3322 bulk_out_ep irda_usb_cb 0 3322 NULL
154973 +enable_so_lock_extent_bits_fndecl_3328 lock_extent_bits fndecl 3-2 3328 NULL
154974 +enable_so_length_ima_digest_data_3329 length ima_digest_data 0 3329 NULL
154975 +enable_so_hidraw_report_event_fndecl_3332 hidraw_report_event fndecl 3 3332 NULL
154976 +enable_so_i_xattr_loc_ocfs2_dinode_3335 i_xattr_loc ocfs2_dinode 0 3335 NULL
154977 +enable_so_amdtp_dot_set_parameters_fndecl_3341 amdtp_dot_set_parameters fndecl 3 3341 NULL
154978 +enable_so_base_drm_agp_head_3348 base drm_agp_head 0 3348 NULL nohasharray
154979 +enable_so_curchunk_hdrlen_drm_dp_sideband_msg_rx_3348 curchunk_hdrlen drm_dp_sideband_msg_rx 0 3348 &enable_so_base_drm_agp_head_3348
154980 +enable_so_smi_get_fwd_port_fndecl_3349 smi_get_fwd_port fndecl 0 3349 NULL nohasharray
154981 +enable_so_memcg_update_list_lru_fndecl_3349 memcg_update_list_lru fndecl 3 3349 &enable_so_smi_get_fwd_port_fndecl_3349
154982 +enable_so_ext4_finish_convert_inline_dir_fndecl_3350 ext4_finish_convert_inline_dir fndecl 5 3350 NULL
154983 +enable_so_pgt_bits_nvkm_mmu_func_3353 pgt_bits nvkm_mmu_func 0 3353 NULL nohasharray
154984 +enable_so_max_bands_multiq_sched_data_3353 max_bands multiq_sched_data 0 3353 &enable_so_pgt_bits_nvkm_mmu_func_3353
154985 +enable_so_sysctl_nr_open_vardecl_3355 sysctl_nr_open vardecl 0 3355 NULL
154986 +enable_so_logfs_uncompress_fndecl_3359 logfs_uncompress fndecl 3-4 3359 NULL
154987 +enable_so___process_changed_new_xattr_fndecl_3360 __process_changed_new_xattr fndecl 6-4 3360 NULL
154988 +enable_so_essidlen_zd1201_3366 essidlen zd1201 0 3366 NULL
154989 +enable_so_frame_size_stk_camera_3367 frame_size stk_camera 0 3367 NULL
154990 +enable_so_amd_create_gatt_pages_fndecl_3370 amd_create_gatt_pages fndecl 1 3370 NULL
154991 +enable_so_xfs_dir3_leaf_get_buf_fndecl_3380 xfs_dir3_leaf_get_buf fndecl 2 3380 NULL
154992 +enable_so_phys_hw_bank_3381 phys hw_bank 0 3381 NULL
154993 +enable_so_blk_add_request_payload_fndecl_3382 blk_add_request_payload fndecl 3 3382 NULL
154994 +enable_so_nvdimm_set_config_data_fndecl_3384 nvdimm_set_config_data fndecl 4 3384 NULL
154995 +enable_so_pgoff_vm_fault_3385 pgoff vm_fault 0 3385 NULL nohasharray
154996 +enable_so_drbd_bm_resize_fndecl_3385 drbd_bm_resize fndecl 2 3385 &enable_so_pgoff_vm_fault_3385
154997 +enable_so_xfs_iext_realloc_direct_fndecl_3386 xfs_iext_realloc_direct fndecl 2 3386 NULL
154998 +enable_so_beacon_ie_len_wmi_connect_event_3388 beacon_ie_len wmi_connect_event 0 3388 NULL nohasharray
154999 +enable_so_rport_priv_size_fc_lport_3388 rport_priv_size fc_lport 0 3388 &enable_so_beacon_ie_len_wmi_connect_event_3388
155000 +enable_so_xz_dec_lzma2_reset_fndecl_3390 xz_dec_lzma2_reset fndecl 2 3390 NULL
155001 +enable_so_max_frame_size_nes_vnic_3395 max_frame_size nes_vnic 0 3395 NULL nohasharray
155002 +enable_so_st_nci_hci_dm_get_data_fndecl_3395 st_nci_hci_dm_get_data fndecl 3 3395 &enable_so_max_frame_size_nes_vnic_3395
155003 +enable_so_num_paths_rdma_route_3407 num_paths rdma_route 0 3407 NULL
155004 +enable_so_pos_in_item_treepath_3409 pos_in_item treepath 0 3409 NULL
155005 +enable_so_minLen_group_data_3411 minLen group_data 0 3411 NULL
155006 +enable_so_scsi_report_opcode_fndecl_3412 scsi_report_opcode fndecl 3 3412 NULL
155007 +enable_so_mtu_tipc_link_entry_3415 mtu tipc_link_entry 0 3415 NULL
155008 +enable_so_venus_create_fndecl_3416 venus_create fndecl 4 3416 NULL
155009 +enable_so_opts1_RxDesc_3421 opts1 RxDesc 0 3421 NULL
155010 +enable_so___gunzip_fndecl_3422 __gunzip fndecl 2-6 3422 NULL
155011 +enable_so_rlim_cur_rlimit_3431 rlim_cur rlimit 0 3431 NULL nohasharray
155012 +enable_so_set_secure_conn_fndecl_3431 set_secure_conn fndecl 4 3431 &enable_so_rlim_cur_rlimit_3431
155013 +enable_so_drv_cp_harray_to_user_fndecl_3434 drv_cp_harray_to_user fndecl 0 3434 NULL nohasharray
155014 +enable_so_sync_timeline_create_fndecl_3434 sync_timeline_create fndecl 2 3434 &enable_so_drv_cp_harray_to_user_fndecl_3434
155015 +enable_so_udf_getblk_fndecl_3436 udf_getblk fndecl 2 3436 NULL
155016 +enable_so_len_nft_bitwise_3441 len nft_bitwise 0 3441 NULL nohasharray
155017 +enable_so_command_setcolourbalance_fndecl_3441 command_setcolourbalance fndecl 0 3441 &enable_so_len_nft_bitwise_3441
155018 +enable_so_uc_inSize_upc_req_3444 uc_inSize upc_req 0 3444 NULL
155019 +enable_so_rpipe_check_aim_fndecl_3456 rpipe_check_aim fndecl 0 3456 NULL nohasharray
155020 +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
155021 +enable_so_s_itb_per_group_ext4_sb_info_3459 s_itb_per_group ext4_sb_info 0 3459 NULL
155022 +enable_so_adfs_dir_read_fndecl_3464 adfs_dir_read fndecl 2 3464 NULL
155023 +enable_so_vm_stat_account_fndecl_3465 vm_stat_account fndecl 4 3465 NULL
155024 +enable_so_intel_th_populate_fndecl_3473 intel_th_populate fndecl 4 3473 NULL
155025 +enable_so_ngpios_chv_community_3476 ngpios chv_community 0 3476 NULL
155026 +enable_so_qib_qsfp_write_fndecl_3477 qib_qsfp_write fndecl 2-4-0 3477 NULL
155027 +enable_so_namelen_xfs_dir2_sf_entry_3481 namelen xfs_dir2_sf_entry 0 3481 NULL nohasharray
155028 +enable_so_chip_send_contexts_hfi1_devdata_3481 chip_send_contexts hfi1_devdata 0 3481 &enable_so_namelen_xfs_dir2_sf_entry_3481
155029 +enable_so_zlib_tr_flush_block_fndecl_3485 zlib_tr_flush_block fndecl 3 3485 NULL
155030 +enable_so_xfer_len_nvme_trans_io_cdb_3486 xfer_len nvme_trans_io_cdb 0 3486 NULL
155031 +enable_so_alt_traffic_class_cm_req_msg_3489 alt_traffic_class cm_req_msg 0 3489 NULL
155032 +enable_so_rx_buf_size__mgslpc_info_3490 rx_buf_size _mgslpc_info 0 3490 NULL
155033 +enable_so_from_dio_submit_3494 from dio_submit 0 3494 NULL
155034 +enable_so_snd_pcm_oss_prepare_fndecl_3506 snd_pcm_oss_prepare fndecl 0 3506 NULL
155035 +enable_so_kfifo_copy_to_user_fndecl_3509 kfifo_copy_to_user fndecl 3-4-0 3509 NULL nohasharray
155036 +enable_so_hs_bkt_bits_cfs_hash_3509 hs_bkt_bits cfs_hash 0 3509 &enable_so_kfifo_copy_to_user_fndecl_3509
155037 +enable_so_gru_vtop_fndecl_3522 gru_vtop fndecl 2 3522 NULL
155038 +enable_so_cipso_v4_gentag_rng_fndecl_3532 cipso_v4_gentag_rng fndecl 0 3532 NULL
155039 +enable_so_cl_out_max_entry_size_mvumi_hs_page1_3540 cl_out_max_entry_size mvumi_hs_page1 0 3540 NULL
155040 +enable_so_snd_hdsp_playback_copy_fndecl_3543 snd_hdsp_playback_copy fndecl 5 3543 NULL
155041 +enable_so_get_user_page_nowait_fndecl_3545 get_user_page_nowait fndecl 3 3545 NULL nohasharray
155042 +enable_so_dvb_dmxdev_buffer_read_fndecl_3545 dvb_dmxdev_buffer_read fndecl 4-0 3545 &enable_so_get_user_page_nowait_fndecl_3545
155043 +enable_so_window_size_deflate_state_3549 window_size deflate_state 0 3549 NULL
155044 +enable_so_mult_count_ide_drive_s_3550 mult_count ide_drive_s 0 3550 NULL
155045 +enable_so_ocfs2_read_xattr_bucket_fndecl_3553 ocfs2_read_xattr_bucket fndecl 0-2 3553 NULL
155046 +enable_so_sg_copy_from_buffer_fndecl_3557 sg_copy_from_buffer fndecl 0-4 3557 NULL
155047 +enable_so_security_context_to_sid_force_fndecl_3559 security_context_to_sid_force fndecl 2 3559 NULL
155048 +enable_so_snd_timer_user_ginfo_fndecl_3565 snd_timer_user_ginfo fndecl 0 3565 NULL
155049 +enable_so_mt2063_write_fndecl_3567 mt2063_write fndecl 4 3567 NULL
155050 +enable_so_page_cache_sync_readahead_fndecl_3569 page_cache_sync_readahead fndecl 4 3569 NULL
155051 +enable_so_encode_diropargs3_fndecl_3574 encode_diropargs3 fndecl 4 3574 NULL
155052 +enable_so__snd_pcm_new_fndecl_3575 _snd_pcm_new fndecl 4-5 3575 NULL
155053 +enable_so_template_size_qla27xx_fwdt_template_3576 template_size qla27xx_fwdt_template 0 3576 NULL
155054 +enable_so_len_capiloaddatapart_3577 len capiloaddatapart 0 3577 NULL
155055 +enable_so_pcpu_page_first_chunk_fndecl_3579 pcpu_page_first_chunk fndecl 1 3579 NULL
155056 +enable_so_asq_buf_size_i40e_adminq_info_3582 asq_buf_size i40e_adminq_info 0 3582 NULL
155057 +enable_so_ddr_av_base_mthca_av_table_3589 ddr_av_base mthca_av_table 0 3589 NULL
155058 +enable_so_ip_vs_icmp_xmit_fndecl_3590 ip_vs_icmp_xmit fndecl 4 3590 NULL nohasharray
155059 +enable_so_npads_xtpg_device_3590 npads xtpg_device 0 3590 &enable_so_ip_vs_icmp_xmit_fndecl_3590
155060 +enable_so_buf_size_i1480_3593 buf_size i1480 0 3593 NULL
155061 +enable_so_brcmf_chip_tcm_rambase_fndecl_3599 brcmf_chip_tcm_rambase fndecl 0 3599 NULL
155062 +enable_so_e820_update_range_fndecl_3600 e820_update_range fndecl 1-2 3600 NULL
155063 +enable_so_cdns_uart_get_port_fndecl_3601 cdns_uart_get_port fndecl 1 3601 NULL
155064 +enable_so_xdr_extend_head_fndecl_3606 xdr_extend_head fndecl 3 3606 NULL
155065 +enable_so_engine_len_viafb_dev_3608 engine_len viafb_dev 0 3608 NULL
155066 +enable_so_ss_out_channels_hdsp_3619 ss_out_channels hdsp 0 3619 NULL nohasharray
155067 +enable_so_drm_universal_plane_init_fndecl_3619 drm_universal_plane_init fndecl 6 3619 &enable_so_ss_out_channels_hdsp_3619
155068 +enable_so_ns_blocksize_the_nilfs_3624 ns_blocksize the_nilfs 0 3624 NULL nohasharray
155069 +enable_so_bytes_btrfs_dio_private_3624 bytes btrfs_dio_private 0 3624 &enable_so_ns_blocksize_the_nilfs_3624 nohasharray
155070 +enable_so_do_msg_fill_fndecl_3624 do_msg_fill fndecl 3 3624 &enable_so_bytes_btrfs_dio_private_3624
155071 +enable_so_offline_pages_fndecl_3625 offline_pages fndecl 1-2 3625 NULL
155072 +enable_so_tail_timestamp_event_queue_3626 tail timestamp_event_queue 0 3626 NULL
155073 +enable_so_add_res_range_fndecl_3629 add_res_range fndecl 4 3629 NULL
155074 +enable_so_cbuf_eat_fndecl_3631 cbuf_eat fndecl 2 3631 NULL
155075 +enable_so_cfg80211_inform_bss_frame_data_fndecl_3632 cfg80211_inform_bss_frame_data fndecl 4 3632 NULL
155076 +enable_so_sl_ib_ah_attr_3633 sl ib_ah_attr 0 3633 NULL
155077 +enable_so_vmci_transport_queue_pair_alloc_fndecl_3639 vmci_transport_queue_pair_alloc fndecl 4-3 3639 NULL nohasharray
155078 +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
155079 +enable_so_t_blocknr_high_journal_block_tag_s_3648 t_blocknr_high journal_block_tag_s 0 3648 NULL
155080 +enable_so_s_desc_size_ext4_sb_info_3652 s_desc_size ext4_sb_info 0 3652 NULL
155081 +enable_so_pci_id_imc_uncore_pci_dev_3656 pci_id imc_uncore_pci_dev 0 3656 NULL
155082 +enable_so_parport_ieee1284_ecp_read_data_fndecl_3660 parport_ieee1284_ecp_read_data fndecl 0 3660 NULL nohasharray
155083 +enable_so_c_plan_ahead_disk_conf_3660 c_plan_ahead disk_conf 0 3660 &enable_so_parport_ieee1284_ecp_read_data_fndecl_3660
155084 +enable_so_im_len_xfs_imap_3661 im_len xfs_imap 0 3661 NULL nohasharray
155085 +enable_so_ext2_get_blocks_fndecl_3661 ext2_get_blocks fndecl 0 3661 &enable_so_im_len_xfs_imap_3661
155086 +enable_so_arch_reserve_mem_area_fndecl_3662 arch_reserve_mem_area fndecl 2 3662 NULL
155087 +enable_so_aper_base_amdgpu_mc_3664 aper_base amdgpu_mc 0 3664 NULL
155088 +enable_so_child_cnt_ubifs_znode_3667 child_cnt ubifs_znode 0 3667 NULL
155089 +enable_so_bio_find_or_create_slab_fndecl_3671 bio_find_or_create_slab fndecl 1 3671 NULL
155090 +enable_so_pcpu_chunk_struct_size_vardecl_percpu_c_3673 pcpu_chunk_struct_size vardecl_percpu.c 0 3673 NULL
155091 +enable_so_interfaces_count_ffs_data_3677 interfaces_count ffs_data 0 3677 NULL
155092 +enable_so_alloc_orinocodev_fndecl_3688 alloc_orinocodev fndecl 1 3688 NULL
155093 +enable_so_len_mic_mw_3689 len mic_mw 0 3689 NULL
155094 +enable_so_ath10k_wmi_tlv_op_gen_vdev_sta_uapsd_fndecl_3692 ath10k_wmi_tlv_op_gen_vdev_sta_uapsd fndecl 5 3692 NULL
155095 +enable_so_read_file_bool_bmps_fndecl_3699 read_file_bool_bmps fndecl 3 3699 NULL
155096 +enable_so_srp_max_rsp_size_srpt_port_attrib_3700 srp_max_rsp_size srpt_port_attrib 0 3700 NULL
155097 +enable_so_vmw_cmdbuf_space_pool_fndecl_3702 vmw_cmdbuf_space_pool fndecl 3 3702 NULL nohasharray
155098 +enable_so_get_urb_error_fndecl_3702 get_urb_error fndecl 0 3702 &enable_so_vmw_cmdbuf_space_pool_fndecl_3702
155099 +enable_so_vlan_netdev_private_3705 vlan netdev_private 0 3705 NULL
155100 +enable_so_ip_getsockopt_fndecl_3711 ip_getsockopt fndecl 0 3711 NULL
155101 +enable_so_len_sctp_auth_bytes_3715 len sctp_auth_bytes 0 3715 NULL
155102 +enable_so_byte_len_ib_wc_3716 byte_len ib_wc 0 3716 NULL
155103 +enable_so_len_amp_assoc_3724 len amp_assoc 0 3724 NULL
155104 +enable_so___v4l2_ctrl_modify_range_fndecl_3726 __v4l2_ctrl_modify_range fndecl 3-2-5 3726 NULL
155105 +enable_so_SYSC_rt_sigpending_fndecl_3728 SYSC_rt_sigpending fndecl 2 3728 NULL
155106 +enable_so_mcs_wrap_fir_skb_fndecl_3729 mcs_wrap_fir_skb fndecl 0 3729 NULL nohasharray
155107 +enable_so_split_leaf_fndecl_3729 split_leaf fndecl 0 3729 &enable_so_mcs_wrap_fir_skb_fndecl_3729
155108 +enable_so_video_ioctl2_fndecl_3735 video_ioctl2 fndecl 2 3735 NULL
155109 +enable_so_ecryptfs_message_buf_len_vardecl_3736 ecryptfs_message_buf_len vardecl 0 3736 NULL
155110 +enable_so_insert_ptr_fndecl_3737 insert_ptr fndecl 6 3737 NULL
155111 +enable_so_intel_th_msc_read_fndecl_3740 intel_th_msc_read fndecl 3 3740 NULL
155112 +enable_so_entries_p54_cal_database_3741 entries p54_cal_database 0 3741 NULL
155113 +enable_so_error_null_frame_tx_start_read_fndecl_3750 error_null_frame_tx_start_read fndecl 3 3750 NULL
155114 +enable_so_nr_reserved_tags_blk_mq_tags_3751 nr_reserved_tags blk_mq_tags 0 3751 NULL
155115 +enable_so_e_value_size_f2fs_xattr_entry_3755 e_value_size f2fs_xattr_entry 0 3755 NULL
155116 +enable_so_private_value_sbmix_elem_3773 private_value sbmix_elem 0 3773 NULL
155117 +enable_so_size_m48t35_priv_3775 size m48t35_priv 0 3775 NULL
155118 +enable_so_tblsize_snd_sg_buf_3776 tblsize snd_sg_buf 0 3776 NULL
155119 +enable_so_ag_shift_befs_sb_info_3778 ag_shift befs_sb_info 0 3778 NULL nohasharray
155120 +enable_so_num_returned_bytes_fit_completion_entry_v1_3778 num_returned_bytes fit_completion_entry_v1 0 3778 &enable_so_ag_shift_befs_sb_info_3778
155121 +enable_so_fl_starve_thres_sge_3779 fl_starve_thres sge 0 3779 NULL
155122 +enable_so_rnt_rc_sl_fl_ocrdma_qp_params_3780 rnt_rc_sl_fl ocrdma_qp_params 0 3780 NULL
155123 +enable_so_next_fn_fndecl_3785 next_fn fndecl 0-3 3785 NULL
155124 +enable_so_rx_status_len_ath9k_hw_capabilities_3793 rx_status_len ath9k_hw_capabilities 0 3793 NULL
155125 +enable_so_buflen_audit_krule_3796 buflen audit_krule 0 3796 NULL
155126 +enable_so_concat_writev_fndecl_3800 concat_writev fndecl 4 3800 NULL
155127 +enable_so_extend_netdev_table_fndecl_3806 extend_netdev_table fndecl 0 3806 NULL
155128 +enable_so_nfc_hci_send_event_fndecl_3807 nfc_hci_send_event fndecl 5 3807 NULL
155129 +enable_so_ch_list_len_scan_attr_3809 ch_list_len scan_attr 0 3809 NULL nohasharray
155130 +enable_so_nextLineNumber_vardecl_rocket_c_3809 nextLineNumber vardecl_rocket.c 0 3809 &enable_so_ch_list_len_scan_attr_3809
155131 +enable_so_ip_last_used_group_ocfs2_inode_info_3814 ip_last_used_group ocfs2_inode_info 0 3814 NULL
155132 +enable_so_e_cpos_ocfs2_extent_rec_3815 e_cpos ocfs2_extent_rec 0 3815 NULL
155133 +enable_so_dccp_recvmsg_fndecl_3819 dccp_recvmsg fndecl 3 3819 NULL nohasharray
155134 +enable_so_fnic_trace_debugfs_lseek_fndecl_3819 fnic_trace_debugfs_lseek fndecl 2 3819 &enable_so_dccp_recvmsg_fndecl_3819
155135 +enable_so_force_bredr_smp_write_fndecl_3821 force_bredr_smp_write fndecl 3 3821 NULL
155136 +enable_so_offset32_cm_req_msg_3827 offset32 cm_req_msg 0 3827 NULL
155137 +enable_so_bits_per_word_spi_device_3828 bits_per_word spi_device 0 3828 NULL
155138 +enable_so_mei_nfc_send_fndecl_3830 mei_nfc_send fndecl 3 3830 NULL
155139 +enable_so_num_counters_ipt_replace_3837 num_counters ipt_replace 0 3837 NULL
155140 +enable_so_error_btrfs_end_io_wq_3838 error btrfs_end_io_wq 0 3838 NULL
155141 +enable_so_find_end_of_node_fndecl_3843 find_end_of_node fndecl 0-3-1-2 3843 NULL
155142 +enable_so_bg_inode_table_hi_ext4_group_desc_3844 bg_inode_table_hi ext4_group_desc 0 3844 NULL
155143 +enable_so_btrfs_dirty_pages_fndecl_3848 btrfs_dirty_pages fndecl 6-5 3848 NULL
155144 +enable_so_bfad_iocmd_fcpim_get_del_itn_stats_fndecl_3853 bfad_iocmd_fcpim_get_del_itn_stats fndecl 0 3853 NULL
155145 +enable_so_qib_verbs_send_fndecl_3860 qib_verbs_send fndecl 5-3 3860 NULL
155146 +enable_so_ocfs2_free_clusters_fndecl_3866 ocfs2_free_clusters fndecl 4 3866 NULL
155147 +enable_so_minlen_fstrim_range_3870 minlen fstrim_range 0 3870 NULL
155148 +enable_so_size_of_priv_dvb_usb_adapter_fe_properties_3875 size_of_priv dvb_usb_adapter_fe_properties 0 3875 NULL
155149 +enable_so_lbs_threshold_read_fndecl_3877 lbs_threshold_read fndecl 5 3877 NULL
155150 +enable_so_console_size_ramoops_context_3884 console_size ramoops_context 0 3884 NULL
155151 +enable_so_s_num_blocks_omfs_sb_info_3888 s_num_blocks omfs_sb_info 0 3888 NULL
155152 +enable_so_fs_div_hfs_sb_info_3890 fs_div hfs_sb_info 0 3890 NULL
155153 +enable_so_btrfs_inode_ref_name_len_fndecl_3891 btrfs_inode_ref_name_len fndecl 0 3891 NULL
155154 +enable_so_snd_pcm_lib_preallocate_pages_fndecl_3892 snd_pcm_lib_preallocate_pages fndecl 4 3892 NULL nohasharray
155155 +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
155156 +enable_so_arch_gnttab_init_fndecl_3893 arch_gnttab_init fndecl 1 3893 NULL
155157 +enable_so_rootdir_empty_fndecl_3895 rootdir_empty fndecl 2 3895 NULL
155158 +enable_so_xfs_extent_busy_trim_fndecl_3898 xfs_extent_busy_trim fndecl 3-2 3898 NULL
155159 +enable_so_gfs2_meta_wipe_fndecl_3900 gfs2_meta_wipe fndecl 2 3900 NULL
155160 +enable_so_get_enc_strm_size_s5p_mfc_hw_ops_3906 get_enc_strm_size s5p_mfc_hw_ops 0 3906 NULL
155161 +enable_so_endpoint_usb_data_stream_properties_3909 endpoint usb_data_stream_properties 0 3909 NULL
155162 +enable_so_event_calibration_read_fndecl_3912 event_calibration_read fndecl 3 3912 NULL
155163 +enable_so_mlx4_en_set_vf_vlan_fndecl_3917 mlx4_en_set_vf_vlan fndecl 4 3917 NULL
155164 +enable_so_proc_fault_inject_write_fndecl_3921 proc_fault_inject_write fndecl 3 3921 NULL
155165 +enable_so_mp_map_gsi_to_irq_fndecl_3923 mp_map_gsi_to_irq fndecl 1 3923 NULL
155166 +enable_so_acpi_data_prop_read_fndecl_3925 acpi_data_prop_read fndecl 0 3925 NULL
155167 +enable_so_virtio_gpu_get_capsets_fndecl_3928 virtio_gpu_get_capsets fndecl 2 3928 NULL
155168 +enable_so_cfpkt_set_prio_fndecl_3935 cfpkt_set_prio fndecl 2 3935 NULL
155169 +enable_so_unix_dgram_sendmsg_fndecl_3944 unix_dgram_sendmsg fndecl 3 3944 NULL
155170 +enable_so_ath6kl_send_go_probe_resp_fndecl_3946 ath6kl_send_go_probe_resp fndecl 3 3946 NULL
155171 +enable_so__efx_mcdi_rpc_async_fndecl_3948 _efx_mcdi_rpc_async fndecl 4-5 3948 NULL
155172 +enable_so_atalk_recvmsg_fndecl_3950 atalk_recvmsg fndecl 3 3950 NULL
155173 +enable_so_mem_end_pci_params_3955 mem_end pci_params 0 3955 NULL
155174 +enable_so_backup_src_sz_kimage_arch_3957 backup_src_sz kimage_arch 0 3957 NULL nohasharray
155175 +enable_so_resync_min_mddev_3957 resync_min mddev 0 3957 &enable_so_backup_src_sz_kimage_arch_3957
155176 +enable_so_data_out_res_cnt_srp_rsp_3959 data_out_res_cnt srp_rsp 0 3959 NULL
155177 +enable_so_make_le_item_head_fndecl_3961 make_le_item_head fndecl 6-4-5 3961 NULL
155178 +enable_so_parse_header_ops_3963 parse header_ops 0 3963 NULL
155179 +enable_so_hpfs_de_as_down_as_possible_fndecl_3967 hpfs_de_as_down_as_possible fndecl 0-2 3967 NULL
155180 +enable_so_dgram_sendmsg_fndecl_3972 dgram_sendmsg fndecl 3 3972 NULL
155181 +enable_so_wrbs_per_cxn_hba_parameters_3974 wrbs_per_cxn hba_parameters 0 3974 NULL
155182 +enable_so_num_entries_aper_size_info_lvl2_3983 num_entries aper_size_info_lvl2 0 3983 NULL
155183 +enable_so_max_ti_iu_len_srp_rdma_ch_3984 max_ti_iu_len srp_rdma_ch 0 3984 NULL
155184 +enable_so_num_pages_ttm_mem_reg_3986 num_pages ttm_mem_reg 0 3986 NULL nohasharray
155185 +enable_so_nv50_chan_create_fndecl_3986 nv50_chan_create fndecl 6 3986 &enable_so_num_pages_ttm_mem_reg_3986
155186 +enable_so_i2400m_rx_trace_fndecl_3988 i2400m_rx_trace fndecl 3 3988 NULL
155187 +enable_so_tp_len_tpacket2_hdr_3990 tp_len tpacket2_hdr 0 3990 NULL nohasharray
155188 +enable_so___acpi_register_gsi_vardecl_3990 __acpi_register_gsi vardecl 0 3990 &enable_so_tp_len_tpacket2_hdr_3990
155189 +enable_so_rfcomm_sock_recvmsg_fndecl_3992 rfcomm_sock_recvmsg fndecl 3 3992 NULL
155190 +enable_so_opt_nflen_ipv6_txoptions_3998 opt_nflen ipv6_txoptions 0 3998 NULL nohasharray
155191 +enable_so_len_be_queue_info_3998 len be_queue_info 0 3998 &enable_so_opt_nflen_ipv6_txoptions_3998
155192 +enable_so_buffer_bytes_max_snd_pcm_hardware_4001 buffer_bytes_max snd_pcm_hardware 0 4001 NULL
155193 +enable_so_id_hfsplus_cat_file_4005 id hfsplus_cat_file 0 4005 NULL
155194 +enable_so_t4_init_clip_tbl_fndecl_4007 t4_init_clip_tbl fndecl 1-2 4007 NULL nohasharray
155195 +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
155196 +enable_so_rx_data_max_size_sst_generic_ipc_4011 rx_data_max_size sst_generic_ipc 0 4011 NULL
155197 +enable_so_bioset_create_nobvec_fndecl_4015 bioset_create_nobvec fndecl 2-1 4015 NULL
155198 +enable_so_f1_id_amd64_family_type_4017 f1_id amd64_family_type 0 4017 NULL
155199 +enable_so_rtl2830_regmap_gather_write_fndecl_4018 rtl2830_regmap_gather_write fndecl 5 4018 NULL
155200 +enable_so_alloc_pg_vec_fndecl_4020 alloc_pg_vec fndecl 3 4020 NULL
155201 +enable_so_b_size_mon_reader_bin_4021 b_size mon_reader_bin 0 4021 NULL
155202 +enable_so_j_start_reiserfs_journal_list_4030 j_start reiserfs_journal_list 0 4030 NULL
155203 +enable_so_length_usb_request_4031 length usb_request 0 4031 NULL
155204 +enable_so_rx_buf_sz_netdev_private_4035 rx_buf_sz netdev_private 0 4035 NULL
155205 +enable_so_MsgLength__MSG_EVENT_NOTIFY_REPLY_4038 MsgLength _MSG_EVENT_NOTIFY_REPLY 0 4038 NULL
155206 +enable_so_brcmf_sdio_txpkt_hdalign_fndecl_4040 brcmf_sdio_txpkt_hdalign fndecl 0 4040 NULL nohasharray
155207 +enable_so_do_cow_fault_fndecl_4040 do_cow_fault fndecl 3-5 4040 &enable_so_brcmf_sdio_txpkt_hdalign_fndecl_4040
155208 +enable_so_user_mss_tcp_options_received_4043 user_mss tcp_options_received 0 4043 NULL nohasharray
155209 +enable_so_ipc_rcu_alloc_fndecl_4043 ipc_rcu_alloc fndecl 1 4043 &enable_so_user_mss_tcp_options_received_4043
155210 +enable_so_scsi_execute_req_flags_fndecl_4044 scsi_execute_req_flags fndecl 5 4044 NULL
155211 +enable_so_tx_data_count_hso_serial_4046 tx_data_count hso_serial 0 4046 NULL
155212 +enable_so_prepare_header_fndecl_4047 prepare_header fndecl 5-0 4047 NULL
155213 +enable_so_ssid_len_cfg80211_connect_params_4052 ssid_len cfg80211_connect_params 0 4052 NULL
155214 +enable_so_m5mols_read_u32_fndecl_4057 m5mols_read_u32 fndecl 2 4057 NULL
155215 +enable_so_cx18_v4l2_read_fndecl_4063 cx18_v4l2_read fndecl 3 4063 NULL
155216 +enable_so_isoc_packet_size_usb_usbvision_4066 isoc_packet_size usb_usbvision 0 4066 NULL
155217 +enable_so_cfg80211_notify_new_peer_candidate_fndecl_4073 cfg80211_notify_new_peer_candidate fndecl 4 4073 NULL
155218 +enable_so_iscsi_max_snd_data_seg_len_dev_db_entry_4074 iscsi_max_snd_data_seg_len dev_db_entry 0 4074 NULL
155219 +enable_so_do_validate_mem_fndecl_4075 do_validate_mem fndecl 3-2 4075 NULL nohasharray
155220 +enable_so_input_ff_create_fndecl_4075 input_ff_create fndecl 2 4075 &enable_so_do_validate_mem_fndecl_4075
155221 +enable_so_ring_overflow_per_user_data_4076 ring_overflow per_user_data 0 4076 NULL
155222 +enable_so_mlx4_en_get_num_flows_fndecl_4078 mlx4_en_get_num_flows fndecl 0 4078 NULL
155223 +enable_so_IOCRequestFrameSize_mpt3sas_facts_4079 IOCRequestFrameSize mpt3sas_facts 0 4079 NULL
155224 +enable_so_bfad_iocmd_ioc_get_info_fndecl_4081 bfad_iocmd_ioc_get_info fndecl 0 4081 NULL
155225 +enable_so_kvm_vcpu_read_guest_page_fndecl_4083 kvm_vcpu_read_guest_page fndecl 2-5 4083 NULL nohasharray
155226 +enable_so___set_extent_bit_fndecl_4083 __set_extent_bit fndecl 0-3-2 4083 &enable_so_kvm_vcpu_read_guest_page_fndecl_4083
155227 +enable_so_n_drm_r128_depth_4085 n drm_r128_depth 0 4085 NULL
155228 +enable_so_skb_copy_and_csum_datagram_fndecl_4086 skb_copy_and_csum_datagram fndecl 4-2 4086 NULL
155229 +enable_so__ocfs2_free_clusters_fndecl_4087 _ocfs2_free_clusters fndecl 4 4087 NULL
155230 +enable_so_base_intel_initial_plane_config_4088 base intel_initial_plane_config 0 4088 NULL
155231 +enable_so_num_pipes_intel_device_info_4092 num_pipes intel_device_info 0 4092 NULL
155232 +enable_so_sca_keylength_sctp_authkey_4095 sca_keylength sctp_authkey 0 4095 NULL
155233 +enable_so_m1_xgene_enet_raw_desc_4097 m1 xgene_enet_raw_desc 0 4097 NULL
155234 +enable_so_ae_res_sd_4099 ae_res sd 0 4099 NULL
155235 +enable_so_ext4_fname_encrypted_size_fndecl_4100 ext4_fname_encrypted_size fndecl 0-2 4100 NULL
155236 +enable_so_size_dt_strings_fdt_header_4102 size_dt_strings fdt_header 0 4102 NULL
155237 +enable_so_special_ixgb_rx_desc_4107 special ixgb_rx_desc 0 4107 NULL nohasharray
155238 +enable_so_nbuttons_tca6416_keys_platform_data_4107 nbuttons tca6416_keys_platform_data 0 4107 &enable_so_special_ixgb_rx_desc_4107
155239 +enable_so_blkno_xfs_da_args_4112 blkno xfs_da_args 0 4112 NULL
155240 +enable_so_vringh_iov_pull_kern_fndecl_4115 vringh_iov_pull_kern fndecl 3 4115 NULL
155241 +enable_so_read_reg_fndecl_4120 read_reg fndecl 0 4120 NULL
155242 +enable_so_jffs2_acl_from_medium_fndecl_4129 jffs2_acl_from_medium fndecl 2 4129 NULL
155243 +enable_so_ocfs2_read_group_descriptor_fndecl_4136 ocfs2_read_group_descriptor fndecl 3 4136 NULL
155244 +enable_so_ssid_len_mwifiex_802_11_ssid_4139 ssid_len mwifiex_802_11_ssid 0 4139 NULL
155245 +enable_so_size_badblocks_4142 size badblocks 0 4142 NULL
155246 +enable_so_interleave_cfi_private_4153 interleave cfi_private 0 4153 NULL
155247 +enable_so_ocfs2_readpages_fndecl_4156 ocfs2_readpages fndecl 4 4156 NULL nohasharray
155248 +enable_so_num_msix_vec_be_adapter_4156 num_msix_vec be_adapter 0 4156 &enable_so_ocfs2_readpages_fndecl_4156
155249 +enable_so_batadv_tt_local_add_fndecl_4159 batadv_tt_local_add fndecl 3 4159 NULL
155250 +enable_so_epp_write_data_parport_operations_4176 epp_write_data parport_operations 0 4176 NULL nohasharray
155251 +enable_so_tool_spadfn_read_fndecl_4176 tool_spadfn_read fndecl 3 4176 &enable_so_epp_write_data_parport_operations_4176
155252 +enable_so_max_rx_urb_irda_usb_cb_4182 max_rx_urb irda_usb_cb 0 4182 NULL
155253 +enable_so_saa7146_vmalloc_build_pgtable_fndecl_4183 saa7146_vmalloc_build_pgtable fndecl 2 4183 NULL
155254 +enable_so_team_change_mtu_fndecl_4186 team_change_mtu fndecl 2 4186 NULL
155255 +enable_so_stm_char_write_fndecl_4195 stm_char_write fndecl 3 4195 NULL nohasharray
155256 +enable_so_irda_setsockopt_fndecl_4195 irda_setsockopt fndecl 5 4195 &enable_so_stm_char_write_fndecl_4195
155257 +enable_so_wBeaconInfoLength_uwb_rc_evt_beacon_WUSB_0100_4200 wBeaconInfoLength uwb_rc_evt_beacon_WUSB_0100 0 4200 NULL
155258 +enable_so_bd_dev_block_device_4202 bd_dev block_device 0 4202 NULL
155259 +enable_so_vfs_getxattr_fndecl_4203 vfs_getxattr fndecl 0 4203 NULL
155260 +enable_so_sample_bits_snd_soc_dai_4206 sample_bits snd_soc_dai 0 4206 NULL nohasharray
155261 +enable_so_parent___prelim_ref_4206 parent __prelim_ref 0 4206 &enable_so_sample_bits_snd_soc_dai_4206
155262 +enable_so_rx_page_order_il_hw_params_4208 rx_page_order il_hw_params 0 4208 NULL
155263 +enable_so_rx_pkt_offset_rxpd_4210 rx_pkt_offset rxpd 0 4210 NULL
155264 +enable_so_max_vectors_i40e_virtchnl_vf_resource_4213 max_vectors i40e_virtchnl_vf_resource 0 4213 NULL
155265 +enable_so_ext2_setsize_fndecl_4215 ext2_setsize fndecl 2 4215 NULL nohasharray
155266 +enable_so_nci_hci_set_param_fndecl_4215 nci_hci_set_param fndecl 5 4215 &enable_so_ext2_setsize_fndecl_4215
155267 +enable_so_proc_stats_rid_open_fndecl_4219 proc_stats_rid_open fndecl 0 4219 NULL
155268 +enable_so_store_pending_adv_report_fndecl_4222 store_pending_adv_report fndecl 7 4222 NULL
155269 +enable_so_nilfs_segbuf_map_fndecl_4225 nilfs_segbuf_map fndecl 3-2 4225 NULL nohasharray
155270 +enable_so_dlm_lock_fndecl_4225 dlm_lock fndecl 6 4225 &enable_so_nilfs_segbuf_map_fndecl_4225
155271 +enable_so___nla_put_fndecl_4226 __nla_put fndecl 3 4226 NULL
155272 +enable_so_len_bpf_prog_4232 len bpf_prog 0 4232 NULL
155273 +enable_so_data_len_nci_data_4237 data_len nci_data 0 4237 NULL
155274 +enable_so_ip6gre_err_fndecl_4238 ip6gre_err fndecl 5-6 4238 NULL
155275 +enable_so_alloc_size_debug_buffer_4240 alloc_size debug_buffer 0 4240 NULL
155276 +enable_so_subpage_sft_mtd_info_4249 subpage_sft mtd_info 0 4249 NULL
155277 +enable_so_ieee80211_mesh_rx_mgmt_action_fndecl_4250 ieee80211_mesh_rx_mgmt_action fndecl 3 4250 NULL nohasharray
155278 +enable_so_duplex_ethtool_cmd_4250 duplex ethtool_cmd 0 4250 &enable_so_ieee80211_mesh_rx_mgmt_action_fndecl_4250
155279 +enable_so_cfg80211_mlme_register_mgmt_fndecl_4255 cfg80211_mlme_register_mgmt fndecl 5 4255 NULL
155280 +enable_so_free_pages_num_vardecl_xen_scsiback_c_4257 free_pages_num vardecl_xen-scsiback.c 0 4257 NULL
155281 +enable_so_fb_y_vmw_fb_par_4260 fb_y vmw_fb_par 0 4260 NULL
155282 +enable_so_user_width_soc_camera_device_4262 user_width soc_camera_device 0 4262 NULL
155283 +enable_so_ntids_tid_info_4263 ntids tid_info 0 4263 NULL
155284 +enable_so_nilfs_gccache_submit_read_node_fndecl_4267 nilfs_gccache_submit_read_node fndecl 2-3 4267 NULL
155285 +enable_so_qlcnic_sysfs_read_pci_config_fndecl_4270 qlcnic_sysfs_read_pci_config fndecl 6 4270 NULL nohasharray
155286 +enable_so_xgbe_init_ring_fndecl_4270 xgbe_init_ring fndecl 3 4270 &enable_so_qlcnic_sysfs_read_pci_config_fndecl_4270
155287 +enable_so_ide_set_pio_fndecl_4272 ide_set_pio fndecl 2 4272 NULL
155288 +enable_so_mp_map_pin_to_irq_fndecl_4276 mp_map_pin_to_irq fndecl 1 4276 NULL
155289 +enable_so_fuse_ioctl_copy_user_fndecl_4279 fuse_ioctl_copy_user fndecl 4-3 4279 NULL
155290 +enable_so_rx_packet_len_nci_uart_4280 rx_packet_len nci_uart 0 4280 NULL
155291 +enable_so_mrp_request_join_fndecl_4281 mrp_request_join fndecl 4 4281 NULL
155292 +enable_so_ib_qib_lkey_table_size_vardecl_4282 ib_qib_lkey_table_size vardecl 0 4282 NULL
155293 +enable_so_gfs2_getbuf_fndecl_4283 gfs2_getbuf fndecl 2 4283 NULL
155294 +enable_so_route_mtu_cached_xfrm_dst_4288 route_mtu_cached xfrm_dst 0 4288 NULL nohasharray
155295 +enable_so_mangle_name_fndecl_4288 mangle_name fndecl 0 4288 &enable_so_route_mtu_cached_xfrm_dst_4288
155296 +enable_so_connector_count_drm_fb_helper_4290 connector_count drm_fb_helper 0 4290 NULL
155297 +enable_so_h_next_leaf_blk_ocfs2_extent_block_4292 h_next_leaf_blk ocfs2_extent_block 0 4292 NULL
155298 +enable_so___add_section_fndecl_4296 __add_section fndecl 3 4296 NULL
155299 +enable_so_cgroup_task_count_fndecl_4297 cgroup_task_count fndecl 0 4297 NULL
155300 +enable_so_maxpacket_musb_qh_4303 maxpacket musb_qh 0 4303 NULL
155301 +enable_so_rx_frm_len_mask_macb_4310 rx_frm_len_mask macb 0 4310 NULL
155302 +enable_so_raid56_alloc_missing_rbio_fndecl_4316 raid56_alloc_missing_rbio fndecl 4 4316 NULL
155303 +enable_so_ps_upsd_max_apturn_read_fndecl_4317 ps_upsd_max_apturn_read fndecl 3 4317 NULL
155304 +enable_so_bufsize_i2c_hid_4318 bufsize i2c_hid 0 4318 NULL
155305 +enable_so_bfad_iocmd_rport_get_stats_fndecl_4323 bfad_iocmd_rport_get_stats fndecl 0 4323 NULL
155306 +enable_so_old_chunk_dm_exception_4333 old_chunk dm_exception 0 4333 NULL
155307 +enable_so_ax25_send_frame_fndecl_4335 ax25_send_frame fndecl 2 4335 NULL
155308 +enable_so_length_rbd_obj_request_4337 length rbd_obj_request 0 4337 NULL
155309 +enable_so_stripe_len_btrfs_raid_bio_4340 stripe_len btrfs_raid_bio 0 4340 NULL
155310 +enable_so_v4l2_ctrl_new_fndecl_4341 v4l2_ctrl_new fndecl 8-7-10-12 4341 NULL
155311 +enable_so_key_len_neigh_table_4347 key_len neigh_table 0 4347 NULL
155312 +enable_so_scrbuf_size_sisusb_usb_data_4350 scrbuf_size sisusb_usb_data 0 4350 NULL
155313 +enable_so_len_mwifiex_ds_misc_gen_ie_4351 len mwifiex_ds_misc_gen_ie 0 4351 NULL
155314 +enable_so_musb_giveback_fndecl_4352 musb_giveback fndecl 3 4352 NULL
155315 +enable_so_o_size_x509_parse_context_4358 o_size x509_parse_context 0 4358 NULL
155316 +enable_so_max_sg_segs_vardecl_osst_c_4365 max_sg_segs vardecl_osst.c 0 4365 NULL
155317 +enable_so_snd_emu10k1_synth_alloc_fndecl_4366 snd_emu10k1_synth_alloc fndecl 2 4366 NULL
155318 +enable_so_isdn_tty_edit_at_fndecl_4376 isdn_tty_edit_at fndecl 0 4376 NULL nohasharray
155319 +enable_so_nilfs_sufile_resize_fndecl_4376 nilfs_sufile_resize fndecl 2 4376 &enable_so_isdn_tty_edit_at_fndecl_4376
155320 +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
155321 +enable_so_ts_packet_size_cx8802_dev_4383 ts_packet_size cx8802_dev 0 4383 NULL nohasharray
155322 +enable_so_dir_entries_msdos_sb_info_4383 dir_entries msdos_sb_info 0 4383 &enable_so_ts_packet_size_cx8802_dev_4383
155323 +enable_so_ext4_add_new_descs_fndecl_4390 ext4_add_new_descs fndecl 3 4390 NULL
155324 +enable_so_err_vlan_tg3_rx_buffer_desc_4391 err_vlan tg3_rx_buffer_desc 0 4391 NULL
155325 +enable_so_diReadSpecial_fndecl_4393 diReadSpecial fndecl 2 4393 NULL
155326 +enable_so_ivtv_udma_setup_fndecl_4395 ivtv_udma_setup fndecl 4 4395 NULL
155327 +enable_so_mgag200_bo_create_fndecl_4398 mgag200_bo_create fndecl 2 4398 NULL
155328 +enable_so_skb_realloc_headroom_fndecl_4399 skb_realloc_headroom fndecl 2 4399 NULL
155329 +enable_so_leadin_ignore_xpnet_message_4402 leadin_ignore xpnet_message 0 4402 NULL nohasharray
155330 +enable_so_segment_length_sbp_page_table_entry_4402 segment_length sbp_page_table_entry 0 4402 &enable_so_leadin_ignore_xpnet_message_4402
155331 +enable_so_page_ofs__ntfs_inode_4407 page_ofs _ntfs_inode 0 4407 NULL
155332 +enable_so_new_bytenr_backref_node_4416 new_bytenr backref_node 0 4416 NULL
155333 +enable_so___alloc_block_fndecl_4419 __alloc_block fndecl 2 4419 NULL nohasharray
155334 +enable_so_nfc_llcp_build_tlv_fndecl_4419 nfc_llcp_build_tlv fndecl 3 4419 &enable_so___alloc_block_fndecl_4419
155335 +enable_so_early_init_dt_scan_memory_fndecl_4420 early_init_dt_scan_memory fndecl 1 4420 NULL
155336 +enable_so_batadv_tvlv_container_register_fndecl_4435 batadv_tvlv_container_register fndecl 5 4435 NULL
155337 +enable_so_batadv_bla_update_own_backbone_gw_fndecl_4436 batadv_bla_update_own_backbone_gw fndecl 3 4436 NULL nohasharray
155338 +enable_so_jfs_fsync_fndecl_4436 jfs_fsync fndecl 2-3 4436 &enable_so_batadv_bla_update_own_backbone_gw_fndecl_4436
155339 +enable_so_f2fs_add_inline_entry_fndecl_4438 f2fs_add_inline_entry fndecl 4 4438 NULL
155340 +enable_so_bRefresh_usb_endpoint_descriptor_4444 bRefresh usb_endpoint_descriptor 0 4444 NULL
155341 +enable_so_number_mdu_disk_info_s_4445 number mdu_disk_info_s 0 4445 NULL
155342 +enable_so_width_simplefb_params_4449 width simplefb_params 0 4449 NULL
155343 +enable_so_nfsd_read_fndecl_4451 nfsd_read fndecl 3-5 4451 NULL
155344 +enable_so_ieee80211_key_alloc_fndecl_4452 ieee80211_key_alloc fndecl 3 4452 NULL
155345 +enable_so_compress_raw_buf_fndecl_4453 compress_raw_buf fndecl 0 4453 NULL
155346 +enable_so_n_comedi_insn_4458 n comedi_insn 0 4458 NULL
155347 +enable_so_bm_status_read_fndecl_4460 bm_status_read fndecl 3 4460 NULL
155348 +enable_so_sftid_base_tid_info_4462 sftid_base tid_info 0 4462 NULL
155349 +enable_so_fifo_size_fritz_bcs_4463 fifo_size fritz_bcs 0 4463 NULL
155350 +enable_so_gunzip_fndecl_4465 gunzip fndecl 2 4465 NULL
155351 +enable_so_kernel_read_fndecl_4468 kernel_read fndecl 4-0 4468 NULL
155352 +enable_so_rx_ring_size_altera_tse_private_4470 rx_ring_size altera_tse_private 0 4470 NULL
155353 +enable_so_sddr09_read22_fndecl_4476 sddr09_read22 fndecl 4-3-6 4476 NULL
155354 +enable_so_ocfs2_control_message_fndecl_4479 ocfs2_control_message fndecl 3 4479 NULL
155355 +enable_so_hdmi_create_eld_ctl_fndecl_4485 hdmi_create_eld_ctl fndecl 2 4485 NULL
155356 +enable_so_hdr_len_l2tp_session_4486 hdr_len l2tp_session 0 4486 NULL nohasharray
155357 +enable_so_fragments_squashfs_super_block_4486 fragments squashfs_super_block 0 4486 &enable_so_hdr_len_l2tp_session_4486
155358 +enable_so_fw_size_amdgpu_firmware_4488 fw_size amdgpu_firmware 0 4488 NULL
155359 +enable_so_fallocate_chunk_fndecl_4489 fallocate_chunk fndecl 3 4489 NULL
155360 +enable_so_alt_pkey_index_ib_qp_attr_4502 alt_pkey_index ib_qp_attr 0 4502 NULL
155361 +enable_so_load_xattr_datum_fndecl_4505 load_xattr_datum fndecl 0 4505 NULL
155362 +enable_so___mei_cl_recv_fndecl_4519 __mei_cl_recv fndecl 0-3 4519 NULL
155363 +enable_so_nfs3_proc_readdir_fndecl_4544 nfs3_proc_readdir fndecl 5 4544 NULL
155364 +enable_so_BlocksPerUnit_partition_t_4545 BlocksPerUnit partition_t 0 4545 NULL
155365 +enable_so_uhci_giveback_urb_fndecl_4547 uhci_giveback_urb fndecl 4 4547 NULL
155366 +enable_so_data_size_cz_buffer_entry_4548 data_size cz_buffer_entry 0 4548 NULL
155367 +enable_so_nr_chans_solo_dev_4552 nr_chans solo_dev 0 4552 NULL
155368 +enable_so_data_len_o2net_msg_4553 data_len o2net_msg 0 4553 NULL
155369 +enable_so_acpi_read_slow_fndecl_4554 acpi_read_slow fndecl 3-2 4554 NULL
155370 +enable_so_hwcursor_size_sis_video_info_4560 hwcursor_size sis_video_info 0 4560 NULL
155371 +enable_so_channels_snd_korg1212_4562 channels snd_korg1212 0 4562 NULL
155372 +enable_so_usbvision_rvmalloc_fndecl_4564 usbvision_rvmalloc fndecl 1 4564 NULL
155373 +enable_so_word1_pkt_stat_desc_4565 word1 pkt_stat_desc 0 4565 NULL
155374 +enable_so_LoadBitmap_fndecl_4569 LoadBitmap fndecl 2 4569 NULL
155375 +enable_so_far_copies_geom_4570 far_copies geom 0 4570 NULL
155376 +enable_so_dlen_nft_set_4577 dlen nft_set 0 4577 NULL
155377 +enable_so_rx_buf_sz_gem_4593 rx_buf_sz gem 0 4593 NULL nohasharray
155378 +enable_so_cxd2841er_read_regs_fndecl_4593 cxd2841er_read_regs fndecl 5 4593 &enable_so_rx_buf_sz_gem_4593
155379 +enable_so_fdt_nop_node_fndecl_4595 fdt_nop_node fndecl 2 4595 NULL
155380 +enable_so_bio_detain_fndecl_4601 bio_detain fndecl 2 4601 NULL
155381 +enable_so_header_size_partition_4606 header_size partition 0 4606 NULL
155382 +enable_so_btrfs_del_inode_extref_fndecl_4607 btrfs_del_inode_extref fndecl 4 4607 NULL
155383 +enable_so_max_event_log_size_iwl_base_params_4612 max_event_log_size iwl_base_params 0 4612 NULL
155384 +enable_so_sxgbe_change_mtu_fndecl_4613 sxgbe_change_mtu fndecl 2 4613 NULL
155385 +enable_so_tm6000_i2c_send_regs_fndecl_4617 tm6000_i2c_send_regs fndecl 5 4617 NULL
155386 +enable_so_mbox_test_message_write_fndecl_4627 mbox_test_message_write fndecl 3 4627 NULL
155387 +enable_so_cksumlength_gss_krb5_enctype_4630 cksumlength gss_krb5_enctype 0 4630 NULL
155388 +enable_so_tcam_size_mc5_4631 tcam_size mc5 0 4631 NULL
155389 +enable_so_total_bytes__osd_req_data_segment_4634 total_bytes _osd_req_data_segment 0 4634 NULL
155390 +enable_so_setup_efi_state_fndecl_4639 setup_efi_state fndecl 4-5-2-3 4639 NULL
155391 +enable_so_irq_nvecs_bnx2_4644 irq_nvecs bnx2 0 4644 NULL
155392 +enable_so_read_eeprom_bytes_fndecl_4649 read_eeprom_bytes fndecl 4 4649 NULL
155393 +enable_so_size_simple_transaction_argresp_4650 size simple_transaction_argresp 0 4650 NULL
155394 +enable_so_valence_hfsplus_cat_folder_4655 valence hfsplus_cat_folder 0 4655 NULL
155395 +enable_so_buffer_size_smsusb_device_t_4667 buffer_size smsusb_device_t 0 4667 NULL
155396 +enable_so_overridesize_vardecl_nandsim_c_4668 overridesize vardecl_nandsim.c 0 4668 NULL
155397 +enable_so_r10_sync_page_io_fndecl_4672 r10_sync_page_io fndecl 3-2 4672 NULL
155398 +enable_so_bcache_major_vardecl_super_c_4677 bcache_major vardecl_super.c 0 4677 NULL
155399 +enable_so_bytenr_btrfs_ordered_sum_4679 bytenr btrfs_ordered_sum 0 4679 NULL
155400 +enable_so_dm_get_reserved_bio_based_ios_fndecl_4680 dm_get_reserved_bio_based_ios fndecl 0 4680 NULL
155401 +enable_so_l1_dirbase_vardecl_acpi_extlog_c_4681 l1_dirbase vardecl_acpi_extlog.c 0 4681 NULL
155402 +enable_so__rtl92s_get_h2c_cmdlen_fndecl_4683 _rtl92s_get_h2c_cmdlen fndecl 0 4683 NULL
155403 +enable_so_rspResId_fcp_rsp_4685 rspResId fcp_rsp 0 4685 NULL
155404 +enable_so_snd_pcm_hw_param_near_fndecl_4691 snd_pcm_hw_param_near fndecl 4 4691 NULL
155405 +enable_so_optlen_ip_options_4698 optlen ip_options 0 4698 NULL nohasharray
155406 +enable_so_send_section_cnt_netvsc_device_4698 send_section_cnt netvsc_device 0 4698 &enable_so_optlen_ip_options_4698
155407 +enable_so_btrfs_header_nritems_fndecl_4699 btrfs_header_nritems fndecl 0 4699 NULL
155408 +enable_so_bpf_func_bpf_prog_4701 bpf_func bpf_prog 0 4701 NULL
155409 +enable_so_iwl_parse_nvm_mcc_info_fndecl_4702 iwl_parse_nvm_mcc_info fndecl 3 4702 NULL
155410 +enable_so_xdr_decode_word_fndecl_4707 xdr_decode_word fndecl 2 4707 NULL
155411 +enable_so_gfs2_glock_nq_m_fndecl_4712 gfs2_glock_nq_m fndecl 1 4712 NULL
155412 +enable_so_nr_hw_queues_blk_mq_tag_set_4713 nr_hw_queues blk_mq_tag_set 0 4713 NULL
155413 +enable_so_count_user_sgentry64_4714 count user_sgentry64 0 4714 NULL
155414 +enable_so_hpfs_ea_remove_fndecl_4717 hpfs_ea_remove fndecl 4-2 4717 NULL
155415 +enable_so_snd_cs4281_BA1_read_fndecl_4720 snd_cs4281_BA1_read fndecl 5 4720 NULL
155416 +enable_so_sp_bb_data_fc_els_csp_4721 sp_bb_data fc_els_csp 0 4721 NULL
155417 +enable_so_tx_tx_burst_programmed_read_fndecl_4723 tx_tx_burst_programmed_read fndecl 3 4723 NULL
155418 +enable_so_next_page_mpage_da_data_4726 next_page mpage_da_data 0 4726 NULL
155419 +enable_so_displacement_bts_phys_4728 displacement bts_phys 0 4728 NULL
155420 +enable_so_net2272_read_packet_fndecl_4735 net2272_read_packet fndecl 4 4735 NULL
155421 +enable_so_qla82xx_pci_mem_read_direct_fndecl_4739 qla82xx_pci_mem_read_direct fndecl 2 4739 NULL
155422 +enable_so_smk_set_cipso_fndecl_4744 smk_set_cipso fndecl 3 4744 NULL
155423 +enable_so_num_srq_mthca_profile_4747 num_srq mthca_profile 0 4747 NULL
155424 +enable_so_netlbl_catmap_setrng_fndecl_4749 netlbl_catmap_setrng fndecl 2 4749 NULL
155425 +enable_so_offline_isolated_pages_fndecl_4750 offline_isolated_pages fndecl 1-2 4750 NULL
155426 +enable_so_format_count_drm_plane_4754 format_count drm_plane 0 4754 NULL
155427 +enable_so_maxpacket_sl811h_ep_4755 maxpacket sl811h_ep 0 4755 NULL
155428 +enable_so_igbvf_receive_skb_fndecl_4757 igbvf_receive_skb fndecl 5 4757 NULL
155429 +enable_so_read_reg_cc770_priv_4760 read_reg cc770_priv 0 4760 NULL
155430 +enable_so_responder_resources_ib_cm_req_param_4766 responder_resources ib_cm_req_param 0 4766 NULL
155431 +enable_so_map_sz_cyttsp4_sysinfo_ofs_4769 map_sz cyttsp4_sysinfo_ofs 0 4769 NULL
155432 +enable_so_acpi_rs_set_resource_source_fndecl_4776 acpi_rs_set_resource_source fndecl 0-2 4776 NULL
155433 +enable_so_length_property_4777 length property 0 4777 NULL
155434 +enable_so_stride_snd_usb_endpoint_4779 stride snd_usb_endpoint 0 4779 NULL
155435 +enable_so_max_tfr_mmc_test_area_4780 max_tfr mmc_test_area 0 4780 NULL nohasharray
155436 +enable_so_qed_ilt_cli_blk_fill_fndecl_4780 qed_ilt_cli_blk_fill fndecl 4-5 4780 &enable_so_max_tfr_mmc_test_area_4780
155437 +enable_so_crtc_vsync_start_drm_display_mode_4785 crtc_vsync_start drm_display_mode 0 4785 NULL nohasharray
155438 +enable_so_n_channels_cfg80211_scan_request_4785 n_channels cfg80211_scan_request 0 4785 &enable_so_crtc_vsync_start_drm_display_mode_4785
155439 +enable_so_img_height_s5p_mfc_ctx_4793 img_height s5p_mfc_ctx 0 4793 NULL
155440 +enable_so___kfifo_from_user_fndecl_4796 __kfifo_from_user fndecl 3 4796 NULL nohasharray
155441 +enable_so_SyS_get_mempolicy_fndecl_4796 SyS_get_mempolicy fndecl 3 4796 &enable_so___kfifo_from_user_fndecl_4796
155442 +enable_so_fmc_send_cmd_fndecl_4800 fmc_send_cmd fndecl 0-5 4800 NULL
155443 +enable_so_set_indirect_ea_fndecl_4810 set_indirect_ea fndecl 5-3 4810 NULL
155444 +enable_so_INFTL_deleteblock_fndecl_4811 INFTL_deleteblock fndecl 2 4811 NULL
155445 +enable_so_length_reiserfs_security_handle_4813 length reiserfs_security_handle 0 4813 NULL
155446 +enable_so_buffer_size_ide_tape_obj_4815 buffer_size ide_tape_obj 0 4815 NULL
155447 +enable_so_drm_mode_vrefresh_fndecl_4817 drm_mode_vrefresh fndecl 0 4817 NULL
155448 +enable_so_ov534_reg_read_fndecl_4820 ov534_reg_read fndecl 0 4820 NULL
155449 +enable_so_ext4_dir_llseek_fndecl_4826 ext4_dir_llseek fndecl 2 4826 NULL
155450 +enable_so_new_orphans_ubifs_info_4827 new_orphans ubifs_info 0 4827 NULL
155451 +enable_so_i2c_read_fndecl_4828 i2c_read fndecl 4-6 4828 NULL nohasharray
155452 +enable_so_find_skb_fndecl_4828 find_skb fndecl 3 4828 &enable_so_i2c_read_fndecl_4828 nohasharray
155453 +enable_so_period_bytes_snd_card_asihpi_pcm_4828 period_bytes snd_card_asihpi_pcm 0 4828 &enable_so_find_skb_fndecl_4828
155454 +enable_so_nelems_cciss_scsi_cmd_stack_t_4829 nelems cciss_scsi_cmd_stack_t 0 4829 NULL
155455 +enable_so_alloc_dummy_extent_buffer_fndecl_4832 alloc_dummy_extent_buffer fndecl 2 4832 NULL
155456 +enable_so_axi_dmac_alloc_desc_fndecl_4833 axi_dmac_alloc_desc fndecl 1 4833 NULL
155457 +enable_so_read_buf_fndecl_4838 read_buf fndecl 2 4838 NULL
155458 +enable_so_compat_ipv6_setsockopt_fndecl_4839 compat_ipv6_setsockopt fndecl 5 4839 NULL
155459 +enable_so_bio_trim_fndecl_4843 bio_trim fndecl 2-3 4843 NULL
155460 +enable_so_start_service_discovery_fndecl_4846 start_service_discovery fndecl 4 4846 NULL
155461 +enable_so_btrfs_get_32_fndecl_4847 btrfs_get_32 fndecl 0 4847 NULL
155462 +enable_so_hash_size_cache_detail_4852 hash_size cache_detail 0 4852 NULL
155463 +enable_so_iommu_bit_gk20a_instmem_4857 iommu_bit gk20a_instmem 0 4857 NULL nohasharray
155464 +enable_so_start__iohandle_4857 start _iohandle 0 4857 &enable_so_iommu_bit_gk20a_instmem_4857
155465 +enable_so_do_ipv6_getsockopt_fndecl_4859 do_ipv6_getsockopt fndecl 0 4859 NULL
155466 +enable_so_max_tgts_snic_fw_info_4861 max_tgts snic_fw_info 0 4861 NULL
155467 +enable_so_encode_path_fndecl_4865 encode_path fndecl 3 4865 NULL nohasharray
155468 +enable_so_attach_hdlc_protocol_fndecl_4865 attach_hdlc_protocol fndecl 3 4865 &enable_so_encode_path_fndecl_4865
155469 +enable_so_s_desc_per_block_ext4_sb_info_4867 s_desc_per_block ext4_sb_info 0 4867 NULL nohasharray
155470 +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
155471 +enable_so_i40e_reserve_msix_vectors_fndecl_4870 i40e_reserve_msix_vectors fndecl 0 4870 NULL nohasharray
155472 +enable_so_mlx5_ib_alloc_mr_fndecl_4870 mlx5_ib_alloc_mr fndecl 3 4870 &enable_so_i40e_reserve_msix_vectors_fndecl_4870
155473 +enable_so_i_lenEAttr_udf_inode_info_4872 i_lenEAttr udf_inode_info 0 4872 NULL nohasharray
155474 +enable_so_find_overflow_devnum_fndecl_4872 find_overflow_devnum fndecl 0 4872 &enable_so_i_lenEAttr_udf_inode_info_4872
155475 +enable_so_out_args_qlcnic_mailbox_metadata_4881 out_args qlcnic_mailbox_metadata 0 4881 NULL
155476 +enable_so_op_remote_addr_rm_atomic_op_4890 op_remote_addr rm_atomic_op 0 4890 NULL
155477 +enable_so_mlx4_get_eqs_per_port_fndecl_4892 mlx4_get_eqs_per_port fndecl 0 4892 NULL
155478 +enable_so_snd_interval_refine_min_fndecl_4894 snd_interval_refine_min fndecl 2 4894 NULL nohasharray
155479 +enable_so_sc_datablk_cnt_nilfs_sc_info_4894 sc_datablk_cnt nilfs_sc_info 0 4894 &enable_so_snd_interval_refine_min_fndecl_4894 nohasharray
155480 +enable_so_credits_send_context_info_4894 credits send_context_info 0 4894 &enable_so_sc_datablk_cnt_nilfs_sc_info_4894
155481 +enable_so_head_circ_buf_4897 head circ_buf 0 4897 NULL
155482 +enable_so_wMaxSegmentSize_usb_cdc_ether_desc_4898 wMaxSegmentSize usb_cdc_ether_desc 0 4898 NULL nohasharray
155483 +enable_so_refdiv_arizona_fll_cfg_4898 refdiv arizona_fll_cfg 0 4898 &enable_so_wMaxSegmentSize_usb_cdc_ether_desc_4898
155484 +enable_so_upper_size_to_lower_size_fndecl_4899 upper_size_to_lower_size fndecl 0-2 4899 NULL
155485 +enable_so_need_tx_headroom_prism2_helper_functions_4902 need_tx_headroom prism2_helper_functions 0 4902 NULL
155486 +enable_so_SYSC_fgetxattr_fndecl_4904 SYSC_fgetxattr fndecl 4 4904 NULL
155487 +enable_so_diva_um_idi_read_fndecl_4912 diva_um_idi_read fndecl 0 4912 NULL
155488 +enable_so_tree_mod_log_eb_move_fndecl_4920 tree_mod_log_eb_move fndecl 5 4920 NULL
155489 +enable_so_inofreefwd_iag_4921 inofreefwd iag 0 4921 NULL
155490 +enable_so_leaf_copy_items_fndecl_4923 leaf_copy_items fndecl 5 4923 NULL
155491 +enable_so_ui_size_ubifs_inode_4934 ui_size ubifs_inode 0 4934 NULL
155492 +enable_so_bpp_drm_mode_fb_cmd_4936 bpp drm_mode_fb_cmd 0 4936 NULL
155493 +enable_so_clear_extent_bits_fndecl_4939 clear_extent_bits fndecl 2-3 4939 NULL
155494 +enable_so_update_tind_extent_range_fndecl_4950 update_tind_extent_range fndecl 3 4950 NULL nohasharray
155495 +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
155496 +enable_so_read_tape_fndecl_4950 read_tape fndecl 2 4950 &enable_so_mlx5_ib_db_map_user_fndecl_4950
155497 +enable_so_clear_extent_uptodate_fndecl_4952 clear_extent_uptodate fndecl 2-3 4952 NULL
155498 +enable_so_myri10ge_get_txrx_fndecl_4953 myri10ge_get_txrx fndecl 2 4953 NULL
155499 +enable_so_fuse_conn_limit_read_fndecl_4967 fuse_conn_limit_read fndecl 3 4967 NULL
155500 +enable_so_team_options_register_fndecl_4968 team_options_register fndecl 3 4968 NULL
155501 +enable_so_radeon_align_pitch_fndecl_4969 radeon_align_pitch fndecl 0-2 4969 NULL
155502 +enable_so_read_len_t4_swsqe_4971 read_len t4_swsqe 0 4971 NULL nohasharray
155503 +enable_so_reiserfs_dir_fsync_fndecl_4971 reiserfs_dir_fsync fndecl 2-3 4971 &enable_so_read_len_t4_swsqe_4971
155504 +enable_so_len_htc_record_hdr_4978 len htc_record_hdr 0 4978 NULL
155505 +enable_so_t_data_nents_se_cmd_4981 t_data_nents se_cmd 0 4981 NULL nohasharray
155506 +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
155507 +enable_so_btrfs_pin_extent_for_log_replay_fndecl_4982 btrfs_pin_extent_for_log_replay fndecl 3-2 4982 NULL
155508 +enable_so_buffer_size_most_channel_config_4986 buffer_size most_channel_config 0 4986 NULL
155509 +enable_so_scif_send_fndecl_4988 scif_send fndecl 3 4988 NULL
155510 +enable_so_phy_duplex_pxa168_eth_private_4990 phy_duplex pxa168_eth_private 0 4990 NULL
155511 +enable_so_stripe_unit_ore_layout_4991 stripe_unit ore_layout 0 4991 NULL
155512 +enable_so___mt7601u_dma_fw_fndecl_4994 __mt7601u_dma_fw fndecl 4 4994 NULL
155513 +enable_so_kmem_cache_create_fndecl_5007 kmem_cache_create fndecl 2-3 5007 NULL
155514 +enable_so_read_int_fndecl_5009 read_int fndecl 0 5009 NULL nohasharray
155515 +enable_so_tx_tx_retry_per_rate_read_fndecl_5009 tx_tx_retry_per_rate_read fndecl 3 5009 &enable_so_read_int_fndecl_5009
155516 +enable_so_numEntries__ATOM_PPLIB_SAMClk_Voltage_Limit_Table_5010 numEntries _ATOM_PPLIB_SAMClk_Voltage_Limit_Table 0 5010 NULL
155517 +enable_so_xfs_qm_dqget_fndecl_5012 xfs_qm_dqget fndecl 3 5012 NULL nohasharray
155518 +enable_so_o2net_send_message_fndecl_5012 o2net_send_message fndecl 4 5012 &enable_so_xfs_qm_dqget_fndecl_5012 nohasharray
155519 +enable_so_mgmt_limited_event_fndecl_5012 mgmt_limited_event fndecl 4 5012 &enable_so_o2net_send_message_fndecl_5012
155520 +enable_so_xenvif_gop_skb_fndecl_5015 xenvif_gop_skb fndecl 0 5015 NULL
155521 +enable_so_info1_htt_rx_indication_hdr_5016 info1 htt_rx_indication_hdr 0 5016 NULL
155522 +enable_so_bulk_in_size_usb_idmouse_5017 bulk_in_size usb_idmouse 0 5017 NULL
155523 +enable_so_hard_header_len_net_device_5025 hard_header_len net_device 0 5025 NULL
155524 +enable_so_ubifs_unpack_bits_fndecl_5033 ubifs_unpack_bits fndecl 0-3 5033 NULL
155525 +enable_so_nr_pages_firmware_buf_5039 nr_pages firmware_buf 0 5039 NULL
155526 +enable_so_device_tg3_dev_id_5042 device tg3_dev_id 0 5042 NULL nohasharray
155527 +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
155528 +enable_so_ldebugfs_fid_write_common_fndecl_5049 ldebugfs_fid_write_common fndecl 2 5049 NULL
155529 +enable_so_jffs2_fsync_fndecl_5052 jffs2_fsync fndecl 2-3 5052 NULL
155530 +enable_so_index_squashfs_dir_index_5053 index squashfs_dir_index 0 5053 NULL
155531 +enable_so_rcvidx_IsdnCardState_5055 rcvidx IsdnCardState 0 5055 NULL nohasharray
155532 +enable_so_compress_raw_buf_fndecl_5055 compress_raw_buf fndecl 0 5055 &enable_so_rcvidx_IsdnCardState_5055
155533 +enable_so_offset_SVGAGuestPtr_5056 offset SVGAGuestPtr 0 5056 NULL
155534 +enable_so_ext4_llseek_fndecl_5060 ext4_llseek fndecl 2 5060 NULL
155535 +enable_so_kvm_vcpu_gfn_to_pfn_atomic_fndecl_5062 kvm_vcpu_gfn_to_pfn_atomic fndecl 2 5062 NULL
155536 +enable_so_port_mlx4_ib_demux_ctx_5063 port mlx4_ib_demux_ctx 0 5063 NULL
155537 +enable_so_len_BufferControl_5068 len BufferControl 0 5068 NULL
155538 +enable_so_size_compat_arpt_replace_5071 size compat_arpt_replace 0 5071 NULL
155539 +enable_so_ie_len_cfg80211_scan_request_5073 ie_len cfg80211_scan_request 0 5073 NULL
155540 +enable_so_tomoyo_commit_ok_fndecl_5076 tomoyo_commit_ok fndecl 2 5076 NULL
155541 +enable_so_read_flush_pipefs_fndecl_5080 read_flush_pipefs fndecl 3 5080 NULL
155542 +enable_so_domain_a_len_ccp_ecc_point_math_5093 domain_a_len ccp_ecc_point_math 0 5093 NULL
155543 +enable_so___radix_tree_create_fndecl_5102 __radix_tree_create fndecl 0 5102 NULL
155544 +enable_so_default_file_splice_write_fndecl_5103 default_file_splice_write fndecl 4 5103 NULL
155545 +enable_so_efi_get_runtime_map_desc_size_fndecl_5111 efi_get_runtime_map_desc_size fndecl 0 5111 NULL
155546 +enable_so_bfad_iocmd_fcpim_cfg_lunmask_fndecl_5112 bfad_iocmd_fcpim_cfg_lunmask fndecl 0 5112 NULL nohasharray
155547 +enable_so_mem_eni_dev_5112 mem eni_dev 0 5112 &enable_so_bfad_iocmd_fcpim_cfg_lunmask_fndecl_5112
155548 +enable_so_num_banks_adf_hw_device_data_5115 num_banks adf_hw_device_data 0 5115 NULL
155549 +enable_so_spi_bits_per_word_cw1200_platform_data_spi_5117 spi_bits_per_word cw1200_platform_data_spi 0 5117 NULL nohasharray
155550 +enable_so___link_buffer_fndecl_5117 __link_buffer fndecl 2 5117 &enable_so_spi_bits_per_word_cw1200_platform_data_spi_5117
155551 +enable_so_num_gpio_tc3589x_5118 num_gpio tc3589x 0 5118 NULL
155552 +enable_so_replay_log_leb_fndecl_5123 replay_log_leb fndecl 3 5123 NULL
155553 +enable_so_ocfs2_trim_extent_fndecl_5124 ocfs2_trim_extent fndecl 4-3-0 5124 NULL
155554 +enable_so_ceph_alloc_page_vector_fndecl_5125 ceph_alloc_page_vector fndecl 1 5125 NULL
155555 +enable_so_ccp_init_sg_workarea_fndecl_5128 ccp_init_sg_workarea fndecl 4 5128 NULL
155556 +enable_so_fuse_dev_splice_write_fndecl_5131 fuse_dev_splice_write fndecl 4 5131 NULL
155557 +enable_so_nfs4_init_callback_netid_fndecl_5134 nfs4_init_callback_netid fndecl 0 5134 NULL
155558 +enable_so_rate_num_snd_pcm_hw_params_5135 rate_num snd_pcm_hw_params 0 5135 NULL
155559 +enable_so_rlen_si2157_cmd_5138 rlen si2157_cmd 0 5138 NULL nohasharray
155560 +enable_so_channel_count_il_priv_5138 channel_count il_priv 0 5138 &enable_so_rlen_si2157_cmd_5138
155561 +enable_so_fnic_stats_debugfs_read_fndecl_5139 fnic_stats_debugfs_read fndecl 3 5139 NULL
155562 +enable_so_echo_client_prep_commit_fndecl_5142 echo_client_prep_commit fndecl 8 5142 NULL
155563 +enable_so_csio_scsi_eqsize_vardecl_5146 csio_scsi_eqsize vardecl 0 5146 NULL
155564 +enable_so_ocfs2_iget_fndecl_5154 ocfs2_iget fndecl 2 5154 NULL
155565 +enable_so_total_in_z_stream_s_5155 total_in z_stream_s 0 5155 NULL
155566 +enable_so_stv0297_readregs_fndecl_5156 stv0297_readregs fndecl 4 5156 NULL
155567 +enable_so_o2hb_debug_create_fndecl_5163 o2hb_debug_create fndecl 4 5163 NULL
155568 +enable_so_tx_hdr_len_p54_common_5164 tx_hdr_len p54_common 0 5164 NULL nohasharray
155569 +enable_so_wep_packets_read_fndecl_5164 wep_packets_read fndecl 3 5164 &enable_so_tx_hdr_len_p54_common_5164
155570 +enable_so_indices_ixgbe_ring_feature_5170 indices ixgbe_ring_feature 0 5170 NULL
155571 +enable_so_nfs4_xattr_get_nfs4_label_fndecl_5177 nfs4_xattr_get_nfs4_label fndecl 5 5177 NULL nohasharray
155572 +enable_so_batadv_tt_local_remove_fndecl_5177 batadv_tt_local_remove fndecl 3 5177 &enable_so_nfs4_xattr_get_nfs4_label_fndecl_5177
155573 +enable_so_ext4_es_insert_extent_fndecl_5178 ext4_es_insert_extent fndecl 0-3-2 5178 NULL nohasharray
155574 +enable_so_len_bts_file_action_5178 len bts_file_action 0 5178 &enable_so_ext4_es_insert_extent_fndecl_5178
155575 +enable_so_lpfc_issue_ct_rsp_fndecl_5182 lpfc_issue_ct_rsp fndecl 6 5182 NULL
155576 +enable_so_port_mlx5_ib_qp_5186 port mlx5_ib_qp 0 5186 NULL
155577 +enable_so_inofree_iagctl_5194 inofree iagctl 0 5194 NULL
155578 +enable_so_SyS_lsetxattr_fndecl_5195 SyS_lsetxattr fndecl 4 5195 NULL
155579 +enable_so_size_drm_amdgpu_gem_userptr_5196 size drm_amdgpu_gem_userptr 0 5196 NULL
155580 +enable_so_hidp_raw_request_fndecl_5198 hidp_raw_request fndecl 4 5198 NULL
155581 +enable_so_nr_nvkm_fifo_5199 nr nvkm_fifo 0 5199 NULL nohasharray
155582 +enable_so_alloc_fcdev_fndecl_5199 alloc_fcdev fndecl 1 5199 &enable_so_nr_nvkm_fifo_5199
155583 +enable_so_port_num_rdma_cm_id_5206 port_num rdma_cm_id 0 5206 NULL
155584 +enable_so_vtbl_size_ubi_device_5209 vtbl_size ubi_device 0 5209 NULL
155585 +enable_so_snd_midi_event_encode_fndecl_5210 snd_midi_event_encode fndecl 0 5210 NULL
155586 +enable_so_hugetlb_entry_mm_walk_5211 hugetlb_entry mm_walk 0 5211 NULL
155587 +enable_so_drm_gem_private_object_init_fndecl_5217 drm_gem_private_object_init fndecl 3 5217 NULL
155588 +enable_so_phys_ichxrom_window_5221 phys ichxrom_window 0 5221 NULL
155589 +enable_so_mmc_test_broken_transfer_fndecl_5224 mmc_test_broken_transfer fndecl 3-2 5224 NULL
155590 +enable_so_sq905_read_data_fndecl_5229 sq905_read_data fndecl 0 5229 NULL
155591 +enable_so_madvise_hwpoison_fndecl_5231 madvise_hwpoison fndecl 2 5231 NULL
155592 +enable_so_rx_tpa_end_cmp_misc_v1_rx_tpa_end_cmp_5235 rx_tpa_end_cmp_misc_v1 rx_tpa_end_cmp 0 5235 NULL
155593 +enable_so_nr_extents__ntfs_inode_5242 nr_extents _ntfs_inode 0 5242 NULL
155594 +enable_so_nf_reject_iphdr_put_fndecl_5243 nf_reject_iphdr_put fndecl 3 5243 NULL nohasharray
155595 +enable_so___scif_pin_pages_fndecl_5243 __scif_pin_pages fndecl 2 5243 &enable_so_nf_reject_iphdr_put_fndecl_5243
155596 +enable_so_feednum_dvb_demux_5252 feednum dvb_demux 0 5252 NULL
155597 +enable_so_fdt_next_subnode_fndecl_5258 fdt_next_subnode fndecl 2 5258 NULL
155598 +enable_so_len_fstrim_range_5265 len fstrim_range 0 5265 NULL
155599 +enable_so_h_total_aty128_crtc_5275 h_total aty128_crtc 0 5275 NULL nohasharray
155600 +enable_so_sys_modify_ldt_fndecl_5275 sys_modify_ldt fndecl 3 5275 &enable_so_h_total_aty128_crtc_5275
155601 +enable_so_upload_data_fndecl_5277 upload_data fndecl 2 5277 NULL nohasharray
155602 +enable_so_fi_extents_max_fiemap_extent_info_5277 fi_extents_max fiemap_extent_info 0 5277 &enable_so_upload_data_fndecl_5277
155603 +enable_so_xlog_find_verify_log_record_fndecl_5285 xlog_find_verify_log_record fndecl 2 5285 NULL
155604 +enable_so_count_mpc8xxx_spi_5287 count mpc8xxx_spi 0 5287 NULL
155605 +enable_so_dma_offset_freelQ_5299 dma_offset freelQ 0 5299 NULL nohasharray
155606 +enable_so_lpt_hght_ubifs_info_5299 lpt_hght ubifs_info 0 5299 &enable_so_dma_offset_freelQ_5299
155607 +enable_so_drm_ht_create_fndecl_5302 drm_ht_create fndecl 2 5302 NULL
155608 +enable_so_tx_nr_rings_bnxt_5306 tx_nr_rings bnxt 0 5306 NULL
155609 +enable_so_error_ide_atapi_pc_5308 error ide_atapi_pc 0 5308 NULL
155610 +enable_so_sctp_setsockopt_events_fndecl_5309 sctp_setsockopt_events fndecl 3 5309 NULL
155611 +enable_so_thermal_tx_stop_read_fndecl_5310 thermal_tx_stop_read fndecl 3 5310 NULL
155612 +enable_so_beep_amp_alc_spec_5315 beep_amp alc_spec 0 5315 NULL
155613 +enable_so_devm_mdiobus_alloc_size_fndecl_5317 devm_mdiobus_alloc_size fndecl 2 5317 NULL
155614 +enable_so_matchsize_xt_match_5320 matchsize xt_match 0 5320 NULL
155615 +enable_so____alloc_bootmem_node_fndecl_5329 ___alloc_bootmem_node fndecl 3-2-4-5 5329 NULL
155616 +enable_so_get_cramfs_inode_fndecl_5332 get_cramfs_inode fndecl 3 5332 NULL
155617 +enable_so_jfs_quota_read_fndecl_5341 jfs_quota_read fndecl 5 5341 NULL
155618 +enable_so_comedi_isadma_alloc_fndecl_5342 comedi_isadma_alloc fndecl 2 5342 NULL
155619 +enable_so_get_cr3_kvm_mmu_5347 get_cr3 kvm_mmu 0 5347 NULL
155620 +enable_so_data_count_iscsi_task_5350 data_count iscsi_task 0 5350 NULL
155621 +enable_so_brcmf_usb_send_ctl_fndecl_5357 brcmf_usb_send_ctl fndecl 3 5357 NULL
155622 +enable_so_read_user_buf_avail_tomoyo_io_buffer_5361 read_user_buf_avail tomoyo_io_buffer 0 5361 NULL
155623 +enable_so_ceph_setxattr_fndecl_5362 ceph_setxattr fndecl 4 5362 NULL
155624 +enable_so_michael_mic_fndecl_5363 michael_mic fndecl 5 5363 NULL
155625 +enable_so_nfs4_proc_readdir_fndecl_5367 nfs4_proc_readdir fndecl 5 5367 NULL
155626 +enable_so_scif_prog_signal_fndecl_5368 scif_prog_signal fndecl 2 5368 NULL
155627 +enable_so_xfs_buf_read_uncached_fndecl_5369 xfs_buf_read_uncached fndecl 2-3 5369 NULL
155628 +enable_so_mangle_packet_fndecl_5371 mangle_packet fndecl 2-7-9 5371 NULL
155629 +enable_so_hfsplus_free_extents_fndecl_5372 hfsplus_free_extents fndecl 4 5372 NULL nohasharray
155630 +enable_so_ieee80211_rx_mgmt_disassoc_fndecl_5372 ieee80211_rx_mgmt_disassoc fndecl 3 5372 &enable_so_hfsplus_free_extents_fndecl_5372
155631 +enable_so_mwifiex_write_data_to_card_fndecl_5375 mwifiex_write_data_to_card fndecl 3 5375 NULL
155632 +enable_so_max_header_size_irlan_client_cb_5378 max_header_size irlan_client_cb 0 5378 NULL nohasharray
155633 +enable_so_block_size_squashfs_sb_info_5378 block_size squashfs_sb_info 0 5378 &enable_so_max_header_size_irlan_client_cb_5378
155634 +enable_so_skbprio_ip_set_ext_5381 skbprio ip_set_ext 0 5381 NULL nohasharray
155635 +enable_so_flash_dev_cache_miss_fndecl_5381 flash_dev_cache_miss fndecl 4 5381 &enable_so_skbprio_ip_set_ext_5381
155636 +enable_so_regset_tls_set_fndecl_5384 regset_tls_set fndecl 4 5384 NULL
155637 +enable_so_fuse_perform_write_fndecl_5386 fuse_perform_write fndecl 4-0 5386 NULL
155638 +enable_so_max_gen_clk_probe_fndecl_5389 max_gen_clk_probe fndecl 5 5389 NULL
155639 +enable_so_check_iommu_size_fndecl_5390 check_iommu_size fndecl 0-2-1 5390 NULL
155640 +enable_so_pcibios_window_alignment_fndecl_5391 pcibios_window_alignment fndecl 0 5391 NULL
155641 +enable_so_error_thin_bio_list_fndecl_5394 error_thin_bio_list fndecl 3 5394 NULL nohasharray
155642 +enable_so_iscsi_create_flashnode_sess_fndecl_5394 iscsi_create_flashnode_sess fndecl 4 5394 &enable_so_error_thin_bio_list_fndecl_5394
155643 +enable_so_snd_hda_get_connections_fndecl_5398 snd_hda_get_connections fndecl 0 5398 NULL
155644 +enable_so_len_iw_mgmt_info_element_5411 len iw_mgmt_info_element 0 5411 NULL
155645 +enable_so_udpv6_setsockopt_fndecl_5412 udpv6_setsockopt fndecl 5 5412 NULL
155646 +enable_so_session_key_encryption_key_bytes_ecryptfs_password_5413 session_key_encryption_key_bytes ecryptfs_password 0 5413 NULL
155647 +enable_so_value_xen_pci_op_5416 value xen_pci_op 0 5416 NULL
155648 +enable_so_allocmin_nilfs_sufile_info_5418 allocmin nilfs_sufile_info 0 5418 NULL
155649 +enable_so_nilfs_sufile_truncate_range_fndecl_5423 nilfs_sufile_truncate_range fndecl 3-2 5423 NULL nohasharray
155650 +enable_so_ino_ncp_entry_info_5423 ino ncp_entry_info 0 5423 &enable_so_nilfs_sufile_truncate_range_fndecl_5423 nohasharray
155651 +enable_so_reg_size_intel_iommu_5423 reg_size intel_iommu 0 5423 &enable_so_ino_ncp_entry_info_5423
155652 +enable_so_port_mad_size_fndecl_5434 port_mad_size fndecl 0 5434 NULL
155653 +enable_so_sigmadsp_read_i2c_fndecl_5435 sigmadsp_read_i2c fndecl 4 5435 NULL
155654 +enable_so_size_drm_radeon_gem_create_5440 size drm_radeon_gem_create 0 5440 NULL
155655 +enable_so_vlen_nfsd_writeargs_5461 vlen nfsd_writeargs 0 5461 NULL
155656 +enable_so_btrfs_fiemap_fndecl_5462 btrfs_fiemap fndecl 4-3 5462 NULL
155657 +enable_so_acpi_register_gsi_ioapic_fndecl_5477 acpi_register_gsi_ioapic fndecl 2 5477 NULL
155658 +enable_so_max_pkeys_mthca_dev_lim_5481 max_pkeys mthca_dev_lim 0 5481 NULL
155659 +enable_so_efs_find_entry_fndecl_5485 efs_find_entry fndecl 0 5485 NULL
155660 +enable_so_valuelen_xfs_attr_sf_entry_5490 valuelen xfs_attr_sf_entry 0 5490 NULL
155661 +enable_so_block_isofs_fid_5500 block isofs_fid 0 5500 NULL nohasharray
155662 +enable_so_seq_copy_in_user_fndecl_5500 seq_copy_in_user fndecl 3 5500 &enable_so_block_isofs_fid_5500
155663 +enable_so_s_fpb_ufs_sb_private_info_5504 s_fpb ufs_sb_private_info 0 5504 NULL
155664 +enable_so_f_width_camif_frame_5509 f_width camif_frame 0 5509 NULL
155665 +enable_so___tipc_sendmsg_fndecl_5510 __tipc_sendmsg fndecl 3 5510 NULL nohasharray
155666 +enable_so_pn_socket_create_fndecl_5510 pn_socket_create fndecl 3 5510 &enable_so___tipc_sendmsg_fndecl_5510
155667 +enable_so_vmw_execbuf_submit_cmdbuf_fndecl_5516 vmw_execbuf_submit_cmdbuf fndecl 3 5516 NULL
155668 +enable_so_nsrcs_igmpv3_query_5520 nsrcs igmpv3_query 0 5520 NULL
155669 +enable_so_smk_write_rules_list_fndecl_5526 smk_write_rules_list fndecl 3 5526 NULL
155670 +enable_so_line_slgt_info_5527 line slgt_info 0 5527 NULL
155671 +enable_so_ceph_tcp_sendpage_fndecl_5531 ceph_tcp_sendpage fndecl 0-4 5531 NULL
155672 +enable_so_mlx4_set_path_fndecl_5532 mlx4_set_path fndecl 6 5532 NULL nohasharray
155673 +enable_so_debug_output_fndecl_5532 debug_output fndecl 3 5532 &enable_so_mlx4_set_path_fndecl_5532 nohasharray
155674 +enable_so_tool_dbfn_read_fndecl_5532 tool_dbfn_read fndecl 3 5532 &enable_so_debug_output_fndecl_5532
155675 +enable_so_sq_cnt_queue_set_5538 sq_cnt queue_set 0 5538 NULL nohasharray
155676 +enable_so_batadv_arp_get_type_fndecl_5538 batadv_arp_get_type fndecl 3 5538 &enable_so_sq_cnt_queue_set_5538
155677 +enable_so_vector_acpi_hest_notify_5540 vector acpi_hest_notify 0 5540 NULL
155678 +enable_so_xfs_dqcheck_fndecl_5545 xfs_dqcheck fndecl 3 5545 NULL
155679 +enable_so_logical_ext4_allocation_request_5548 logical ext4_allocation_request 0 5548 NULL nohasharray
155680 +enable_so_mlx5_create_flow_table_fndecl_5548 mlx5_create_flow_table fndecl 4 5548 &enable_so_logical_ext4_allocation_request_5548
155681 +enable_so___netdev_alloc_skb_fndecl_5552 __netdev_alloc_skb fndecl 2 5552 NULL
155682 +enable_so_hpfs_search_hotfix_map_fndecl_5559 hpfs_search_hotfix_map fndecl 0-2 5559 NULL
155683 +enable_so_filemap_fdatawait_range_fndecl_5563 filemap_fdatawait_range fndecl 0 5563 NULL nohasharray
155684 +enable_so_slabinfo_write_fndecl_5563 slabinfo_write fndecl 3 5563 &enable_so_filemap_fdatawait_range_fndecl_5563
155685 +enable_so_nfs41_maxread_overhead_vardecl_5564 nfs41_maxread_overhead vardecl 0 5564 NULL
155686 +enable_so_iowarrior_write_fndecl_5567 iowarrior_write fndecl 3 5567 NULL
155687 +enable_so_ihl_xfrm_mode_skb_cb_5571 ihl xfrm_mode_skb_cb 0 5571 NULL nohasharray
155688 +enable_so_session_udf_options_5571 session udf_options 0 5571 &enable_so_ihl_xfrm_mode_skb_cb_5571
155689 +enable_so___dev_set_mtu_fndecl_5572 __dev_set_mtu fndecl 2 5572 NULL
155690 +enable_so_nblocks_range2trim_5574 nblocks range2trim 0 5574 NULL
155691 +enable_so_target_check_max_data_sg_nents_fndecl_5575 target_check_max_data_sg_nents fndecl 3 5575 NULL
155692 +enable_so_i2c_read_eeprom_fndecl_5583 i2c_read_eeprom fndecl 5 5583 NULL
155693 +enable_so_nfqnl_get_sk_secctx_fndecl_5586 nfqnl_get_sk_secctx fndecl 0 5586 NULL nohasharray
155694 +enable_so_from_buffer_fndecl_5586 from_buffer fndecl 3 5586 &enable_so_nfqnl_get_sk_secctx_fndecl_5586
155695 +enable_so_fdt_path_offset_fndecl_5591 fdt_path_offset fndecl 0 5591 NULL
155696 +enable_so_bg_itable_unused_lo_ext4_group_desc_5594 bg_itable_unused_lo ext4_group_desc 0 5594 NULL
155697 +enable_so_num_scanouts_virtio_gpu_device_5598 num_scanouts virtio_gpu_device 0 5598 NULL
155698 +enable_so_memory_map_bottom_up_fndecl_5599 memory_map_bottom_up fndecl 1-2 5599 NULL nohasharray
155699 +enable_so_size_sched_attr_5599 size sched_attr 0 5599 &enable_so_memory_map_bottom_up_fndecl_5599
155700 +enable_so_nftl_write_fndecl_5605 nftl_write fndecl 2 5605 NULL
155701 +enable_so_pbl_base_rdma_info_5607 pbl_base rdma_info 0 5607 NULL
155702 +enable_so_snd_pcm_oss_write3_fndecl_5618 snd_pcm_oss_write3 fndecl 0 5618 NULL
155703 +enable_so_odata_dma_usb_xpad_5619 odata_dma usb_xpad 0 5619 NULL
155704 +enable_so_shmem_fallocate_fndecl_5621 shmem_fallocate fndecl 3-4 5621 NULL
155705 +enable_so_xfs_iext_insert_fndecl_5624 xfs_iext_insert fndecl 3 5624 NULL
155706 +enable_so_c_irotor_ufs_cg_private_info_5628 c_irotor ufs_cg_private_info 0 5628 NULL nohasharray
155707 +enable_so_gtt_end_radeon_mc_5628 gtt_end radeon_mc 0 5628 &enable_so_c_irotor_ufs_cg_private_info_5628
155708 +enable_so_max_sectors_ide_port_info_5629 max_sectors ide_port_info 0 5629 NULL
155709 +enable_so_id_iio_dev_5631 id iio_dev 0 5631 NULL
155710 +enable_so_wbcir_tx_fndecl_5632 wbcir_tx fndecl 3 5632 NULL
155711 +enable_so_screen_width_vardecl_hyperv_fb_c_5635 screen_width vardecl_hyperv_fb.c 0 5635 NULL nohasharray
155712 +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
155713 +enable_so_dev_counters_read_fndecl_5635 dev_counters_read fndecl 3 5635 &enable_so_platform_mmio_alloc_vardecl_platform_pci_c_5635
155714 +enable_so_num_counters_compat_ip6t_replace_5636 num_counters compat_ip6t_replace 0 5636 NULL
155715 +enable_so_udpv6_recvmsg_fndecl_5638 udpv6_recvmsg fndecl 3 5638 NULL
155716 +enable_so_ring_buffer_size_vardecl_ldusb_c_5645 ring_buffer_size vardecl_ldusb.c 0 5645 NULL
155717 +enable_so_efi_memdesc_size_efi_info_5654 efi_memdesc_size efi_info 0 5654 NULL nohasharray
155718 +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
155719 +enable_so___spi_map_msg_fndecl_5657 __spi_map_msg fndecl 0 5657 NULL nohasharray
155720 +enable_so_dev_id_pci_id_descr_5657 dev_id pci_id_descr 0 5657 &enable_so___spi_map_msg_fndecl_5657
155721 +enable_so_vmw_kms_stdu_dma_fndecl_5659 vmw_kms_stdu_dma fndecl 7 5659 NULL
155722 +enable_so_isert_put_login_tx_fndecl_5660 isert_put_login_tx fndecl 3 5660 NULL
155723 +enable_so_block_mask_htc_target_5671 block_mask htc_target 0 5671 NULL
155724 +enable_so_sgl_read_to_frags_fndecl_5672 sgl_read_to_frags fndecl 3-2 5672 NULL
155725 +enable_so_mtu_ppp_channel_5679 mtu ppp_channel 0 5679 NULL nohasharray
155726 +enable_so_blklen_regcache_rbtree_node_5679 blklen regcache_rbtree_node 0 5679 &enable_so_mtu_ppp_channel_5679 nohasharray
155727 +enable_so_ucma_query_fndecl_5679 ucma_query fndecl 4 5679 &enable_so_blklen_regcache_rbtree_node_5679
155728 +enable_so_ext4_es_alloc_extent_fndecl_5681 ext4_es_alloc_extent fndecl 2-3 5681 NULL
155729 +enable_so_bio_alloc_mddev_fndecl_5685 bio_alloc_mddev fndecl 2 5685 NULL
155730 +enable_so_mmc_hs200_to_hs400_fndecl_5686 mmc_hs200_to_hs400 fndecl 0 5686 NULL
155731 +enable_so_lbtf_cmd_async_fndecl_5691 lbtf_cmd_async fndecl 4 5691 NULL
155732 +enable_so_totsize_xfs_attr_sf_hdr_5692 totsize xfs_attr_sf_hdr 0 5692 NULL
155733 +enable_so_s_blocks_count_ext2_super_block_5695 s_blocks_count ext2_super_block 0 5695 NULL
155734 +enable_so_write_bytes_to_xdr_buf_fndecl_5702 write_bytes_to_xdr_buf fndecl 4-2 5702 NULL
155735 +enable_so_cfg80211_rx_unprot_mlme_mgmt_fndecl_5707 cfg80211_rx_unprot_mlme_mgmt fndecl 3 5707 NULL nohasharray
155736 +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
155737 +enable_so_virtnet_change_mtu_fndecl_5709 virtnet_change_mtu fndecl 2 5709 NULL
155738 +enable_so_zm_wmfw_adsp1_alg_hdr_5710 zm wmfw_adsp1_alg_hdr 0 5710 NULL
155739 +enable_so_raw_send_hdrinc_fndecl_5711 raw_send_hdrinc fndecl 4 5711 NULL
155740 +enable_so_sys_fcntl_fndecl_5712 sys_fcntl fndecl 3 5712 NULL
155741 +enable_so_in_attr_len_ore_io_state_5713 in_attr_len ore_io_state 0 5713 NULL
155742 +enable_so_vt_hdr_vxfs_typed_5715 vt_hdr vxfs_typed 0 5715 NULL
155743 +enable_so_hfsplus_get_block_fndecl_5725 hfsplus_get_block fndecl 2 5725 NULL
155744 +enable_so_max_order_mlx4_buddy_5738 max_order mlx4_buddy 0 5738 NULL
155745 +enable_so_max_phys_sect_nvm_dev_ops_5745 max_phys_sect nvm_dev_ops 0 5745 NULL
155746 +enable_so_scrbuf_sisusb_usb_data_5749 scrbuf sisusb_usb_data 0 5749 NULL
155747 +enable_so_event_tx_stuck_read_fndecl_5754 event_tx_stuck_read fndecl 3 5754 NULL
155748 +enable_so_skb_checksum_maybe_trim_fndecl_5755 skb_checksum_maybe_trim fndecl 2 5755 NULL
155749 +enable_so_nci_prop_cmd_fndecl_5756 nci_prop_cmd fndecl 3 5756 NULL
155750 +enable_so_s_journal_inum_ext4_super_block_5759 s_journal_inum ext4_super_block 0 5759 NULL
155751 +enable_so_setup_extent_mapping_fndecl_5768 setup_extent_mapping fndecl 3-2-4 5768 NULL
155752 +enable_so_xfs_map_at_offset_fndecl_5785 xfs_map_at_offset fndecl 4 5785 NULL
155753 +enable_so_console_size_ramoops_platform_data_5786 console_size ramoops_platform_data 0 5786 NULL
155754 +enable_so_mc_handle_file_pte_fndecl_5787 mc_handle_file_pte fndecl 2 5787 NULL
155755 +enable_so_bq32k_read_fndecl_5789 bq32k_read fndecl 4 5789 NULL
155756 +enable_so_pci_mem_start_vardecl_5790 pci_mem_start vardecl 0 5790 NULL
155757 +enable_so_p9_check_zc_errors_fndecl_5806 p9_check_zc_errors fndecl 4 5806 NULL
155758 +enable_so_usb_ftdi_elan_edset_output_fndecl_5808 usb_ftdi_elan_edset_output fndecl 0 5808 NULL
155759 +enable_so_ubifs_recover_size_accum_fndecl_5809 ubifs_recover_size_accum fndecl 4 5809 NULL nohasharray
155760 +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
155761 +enable_so_length_uwb_ie_hdr_5811 length uwb_ie_hdr 0 5811 NULL nohasharray
155762 +enable_so_firmware_data_write_fndecl_5811 firmware_data_write fndecl 6-5 5811 &enable_so_length_uwb_ie_hdr_5811 nohasharray
155763 +enable_so_prefetch_len_ath10k_htt_5811 prefetch_len ath10k_htt 0 5811 &enable_so_firmware_data_write_fndecl_5811
155764 +enable_so_ncp_read_bounce_fndecl_5812 ncp_read_bounce fndecl 8 5812 NULL
155765 +enable_so_fc_dl_fcp_cmnd_5817 fc_dl fcp_cmnd 0 5817 NULL
155766 +enable_so_compr_flush_fndecl_5826 compr_flush fndecl 2 5826 NULL
155767 +enable_so_hid_hw_raw_request_fndecl_5827 hid_hw_raw_request fndecl 0 5827 NULL
155768 +enable_so_zlib_decompress_biovec_fndecl_5829 zlib_decompress_biovec fndecl 6 5829 NULL
155769 +enable_so_dvbdmx_write_fndecl_5836 dvbdmx_write fndecl 3 5836 NULL
155770 +enable_so_start_uffdio_range_5837 start uffdio_range 0 5837 NULL nohasharray
155771 +enable_so_synproxy_options_size_fndecl_5837 synproxy_options_size fndecl 0 5837 &enable_so_start_uffdio_range_5837
155772 +enable_so_interpret_user_input_fndecl_5842 interpret_user_input fndecl 2 5842 NULL
155773 +enable_so_transferred_vardecl_shuttle_usbat_c_5845 transferred vardecl_shuttle_usbat.c 0 5845 NULL
155774 +enable_so_sync_fill_pt_info_fndecl_5846 sync_fill_pt_info fndecl 0 5846 NULL
155775 +enable_so_get_n_events_by_type_fndecl_5850 get_n_events_by_type fndecl 0 5850 NULL
155776 +enable_so_sound_insert_unit_fndecl_5861 sound_insert_unit fndecl 3-4 5861 NULL
155777 +enable_so_SyS_sched_getaffinity_fndecl_5863 SyS_sched_getaffinity fndecl 2 5863 NULL
155778 +enable_so_len_hv_mpb_array_5864 len hv_mpb_array 0 5864 NULL
155779 +enable_so_um_size_bcm5974_config_5867 um_size bcm5974_config 0 5867 NULL
155780 +enable_so_e1000_receive_skb_fndecl_5875 e1000_receive_skb fndecl 5 5875 NULL
155781 +enable_so_sq_db_page_mthca_create_qp_5878 sq_db_page mthca_create_qp 0 5878 NULL nohasharray
155782 +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
155783 +enable_so_rb_page_offset_nicvf_5878 rb_page_offset nicvf 0 5878 &enable_so_get_rx_status_altera_dmaops_5878
155784 +enable_so_read_len_t3_swsq_5880 read_len t3_swsq 0 5880 NULL
155785 +enable_so_xfs_qm_vop_dqalloc_fndecl_5887 xfs_qm_vop_dqalloc fndecl 2-3-4 5887 NULL nohasharray
155786 +enable_so_cydata_ofsh_cyttsp4_sysinfo_data_5887 cydata_ofsh cyttsp4_sysinfo_data 0 5887 &enable_so_xfs_qm_vop_dqalloc_fndecl_5887
155787 +enable_so_max_sg_count_hpt_iop_request_get_config_5890 max_sg_count hpt_iop_request_get_config 0 5890 NULL
155788 +enable_so_force_max_req_size_vardecl_vub300_c_5891 force_max_req_size vardecl_vub300.c 0 5891 NULL
155789 +enable_so_dma_common_pages_remap_fndecl_5893 dma_common_pages_remap fndecl 2 5893 NULL
155790 +enable_so_size_squashfs_dir_entry_5896 size squashfs_dir_entry 0 5896 NULL
155791 +enable_so___nla_reserve_fndecl_5901 __nla_reserve fndecl 3 5901 NULL
155792 +enable_so_alloc_rx_slot_fndecl_5908 alloc_rx_slot fndecl 0 5908 NULL
155793 +enable_so_sctp_tsnmap_num_gabs_fndecl_5915 sctp_tsnmap_num_gabs fndecl 0 5915 NULL
155794 +enable_so_grec_nsrcs_igmpv3_grec_5916 grec_nsrcs igmpv3_grec 0 5916 NULL
155795 +enable_so_buffer_len_async_pdu_handle_5928 buffer_len async_pdu_handle 0 5928 NULL
155796 +enable_so_resp_caching_pg_fndecl_5930 resp_caching_pg fndecl 0 5930 NULL
155797 +enable_so_ocfs2_reflink_xattr_buckets_fndecl_5931 ocfs2_reflink_xattr_buckets fndecl 7 5931 NULL
155798 +enable_so_layout_in_gaps_fndecl_5933 layout_in_gaps fndecl 2 5933 NULL
155799 +enable_so_intel_gtt_unmap_memory_fndecl_5935 intel_gtt_unmap_memory fndecl 2 5935 NULL
155800 +enable_so_num_of_paging_blk_iwl_mvm_5936 num_of_paging_blk iwl_mvm 0 5936 NULL
155801 +enable_so_max_attributes_pmbus_data_5939 max_attributes pmbus_data 0 5939 NULL
155802 +enable_so_ide_config_drive_speed_fndecl_5940 ide_config_drive_speed fndecl 2 5940 NULL
155803 +enable_so_gfn_to_pfn_atomic_fndecl_5942 gfn_to_pfn_atomic fndecl 2 5942 NULL
155804 +enable_so_buffer_blocks_osst_buffer_5944 buffer_blocks osst_buffer 0 5944 NULL
155805 +enable_so_max_header_size_irda_sock_5950 max_header_size irda_sock 0 5950 NULL
155806 +enable_so_height_tm6000_fh_5952 height tm6000_fh 0 5952 NULL
155807 +enable_so_count_w6692B_hw_5953 count w6692B_hw 0 5953 NULL
155808 +enable_so_len_ias_value_5959 len ias_value 0 5959 NULL
155809 +enable_so_tx_hdrlen_brcmf_sdio_5961 tx_hdrlen brcmf_sdio 0 5961 NULL
155810 +enable_so_write_alias_journal_fndecl_5962 write_alias_journal fndecl 2 5962 NULL
155811 +enable_so_viafb_second_size_vardecl_viafbdev_c_5965 viafb_second_size vardecl_viafbdev.c 0 5965 NULL
155812 +enable_so_allocmax_nilfs_sufile_info_5969 allocmax nilfs_sufile_info 0 5969 NULL
155813 +enable_so_f2fs_setxattr_fndecl_5975 f2fs_setxattr fndecl 5 5975 NULL
155814 +enable_so_do_rc_ack_fndecl_5983 do_rc_ack fndecl 3 5983 NULL nohasharray
155815 +enable_so_nfsd4_encode_dirent_fndecl_5983 nfsd4_encode_dirent fndecl 3 5983 &enable_so_do_rc_ack_fndecl_5983
155816 +enable_so_create_gpadl_header_fndecl_5995 create_gpadl_header fndecl 2 5995 NULL
155817 +enable_so_acpi_install_table_fndecl_6000 acpi_install_table fndecl 1 6000 NULL nohasharray
155818 +enable_so_revalidate_fndecl_6000 revalidate fndecl 2 6000 &enable_so_acpi_install_table_fndecl_6000 nohasharray
155819 +enable_so_snd_hdac_read_parm_uncached_fndecl_6000 snd_hdac_read_parm_uncached fndecl 0 6000 &enable_so_revalidate_fndecl_6000
155820 +enable_so_clk_recalc_fndecl_6001 clk_recalc fndecl 0-2 6001 NULL
155821 +enable_so_drm_fb_helper_init_fndecl_6007 drm_fb_helper_init fndecl 3-4 6007 NULL nohasharray
155822 +enable_so_map_words_netvsc_device_6007 map_words netvsc_device 0 6007 &enable_so_drm_fb_helper_init_fndecl_6007
155823 +enable_so_afs_vnode_store_data_fndecl_6011 afs_vnode_store_data fndecl 4-5 6011 NULL
155824 +enable_so_mmc_send_status_fndecl_6013 mmc_send_status fndecl 0 6013 NULL nohasharray
155825 +enable_so_orig_sg_segs_osst_buffer_6013 orig_sg_segs osst_buffer 0 6013 &enable_so_mmc_send_status_fndecl_6013
155826 +enable_so_sys_process_vm_readv_fndecl_6017 sys_process_vm_readv fndecl 3-5 6017 NULL nohasharray
155827 +enable_so_brcmf_usbdev_qinit_fndecl_6017 brcmf_usbdev_qinit fndecl 2 6017 &enable_so_sys_process_vm_readv_fndecl_6017
155828 +enable_so_max_discard_sectors_queue_limits_6023 max_discard_sectors queue_limits 0 6023 NULL
155829 +enable_so_wqe_cnt_mlx5_ib_wq_6024 wqe_cnt mlx5_ib_wq 0 6024 NULL nohasharray
155830 +enable_so_bfad_iocmd_porglog_get_fndecl_6024 bfad_iocmd_porglog_get fndecl 0 6024 &enable_so_wqe_cnt_mlx5_ib_wq_6024
155831 +enable_so_icv_trunc_len_ah_data_6025 icv_trunc_len ah_data 0 6025 NULL nohasharray
155832 +enable_so_flags_rtl8180_rx_desc_6025 flags rtl8180_rx_desc 0 6025 &enable_so_icv_trunc_len_ah_data_6025
155833 +enable_so_xlog_bwrite_fndecl_6028 xlog_bwrite fndecl 2 6028 NULL
155834 +enable_so_msix_map_region_fndecl_6035 msix_map_region fndecl 2 6035 NULL
155835 +enable_so_ceph_create_snap_context_fndecl_6041 ceph_create_snap_context fndecl 1 6041 NULL
155836 +enable_so_cmipci_sb_reg_decode_fndecl_6048 cmipci_sb_reg_decode fndecl 2 6048 NULL
155837 +enable_so_n_ssids_cfg80211_scan_request_6049 n_ssids cfg80211_scan_request 0 6049 NULL
155838 +enable_so_scif_rb_space_fndecl_6052 scif_rb_space fndecl 0 6052 NULL
155839 +enable_so_dmi_len_vardecl_dmi_scan_c_6054 dmi_len vardecl_dmi_scan.c 0 6054 NULL nohasharray
155840 +enable_so_ext4_inode_table_fndecl_6054 ext4_inode_table fndecl 0 6054 &enable_so_dmi_len_vardecl_dmi_scan_c_6054
155841 +enable_so_map_base_tpm_inf_dev_6056 map_base tpm_inf_dev 0 6056 NULL
155842 +enable_so_spu_base_info_size_ipath_user_info_6059 spu_base_info_size ipath_user_info 0 6059 NULL
155843 +enable_so_scsi_debug_dev_size_mb_vardecl_scsi_debug_c_6060 scsi_debug_dev_size_mb vardecl_scsi_debug.c 0 6060 NULL
155844 +enable_so_count_vardecl_speedtest_c_6069 count vardecl_speedtest.c 0 6069 NULL
155845 +enable_so_cifs_readv_from_socket_fndecl_6070 cifs_readv_from_socket fndecl 0-4-3 6070 NULL
155846 +enable_so_length_hci_ev_le_advertising_info_6074 length hci_ev_le_advertising_info 0 6074 NULL
155847 +enable_so_elog_len_extlog_l1_head_6075 elog_len extlog_l1_head 0 6075 NULL
155848 +enable_so_sector_size_s3fwrn5_fw_info_6081 sector_size s3fwrn5_fw_info 0 6081 NULL nohasharray
155849 +enable_so_ioctx_alloc_fndecl_6081 ioctx_alloc fndecl 1 6081 &enable_so_sector_size_s3fwrn5_fw_info_6081
155850 +enable_so_nd_blk_do_bvec_fndecl_6085 nd_blk_do_bvec fndecl 0 6085 NULL
155851 +enable_so_remote_miu_nfc_llcp_sock_6088 remote_miu nfc_llcp_sock 0 6088 NULL nohasharray
155852 +enable_so_pcifront_scan_root_fndecl_6088 pcifront_scan_root fndecl 3 6088 &enable_so_remote_miu_nfc_llcp_sock_6088
155853 +enable_so_channel_num_ad9523_channel_spec_6095 channel_num ad9523_channel_spec 0 6095 NULL
155854 +enable_so___gfs2_xattr_set_fndecl_6098 __gfs2_xattr_set fndecl 4 6098 NULL
155855 +enable_so_sdmmc_execute_tuning_fndecl_6102 sdmmc_execute_tuning fndecl 2 6102 NULL
155856 +enable_so_alloc_irdadev_fndecl_6103 alloc_irdadev fndecl 1 6103 NULL
155857 +enable_so_rate_min_snd_pcm_hardware_6109 rate_min snd_pcm_hardware 0 6109 NULL nohasharray
155858 +enable_so_blkdev_issue_discard_fndecl_6109 blkdev_issue_discard fndecl 0-3-2 6109 &enable_so_rate_min_snd_pcm_hardware_6109
155859 +enable_so_resid_scsi_data_buffer_6113 resid scsi_data_buffer 0 6113 NULL
155860 +enable_so_ilf_blkno_xfs_inode_log_format_6118 ilf_blkno xfs_inode_log_format 0 6118 NULL nohasharray
155861 +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
155862 +enable_so_hblank_panel_info_6122 hblank panel_info 0 6122 NULL
155863 +enable_so_pwc_get_fps_Kiara_fndecl_6127 pwc_get_fps_Kiara fndecl 0 6127 NULL
155864 +enable_so_smk_write_access2_fndecl_6129 smk_write_access2 fndecl 3 6129 NULL
155865 +enable_so_buf_count_slgt_desc_6140 buf_count slgt_desc 0 6140 NULL
155866 +enable_so_max_gs_mlx5_ib_wq_6148 max_gs mlx5_ib_wq 0 6148 NULL
155867 +enable_so_pwr_enable_ps_read_fndecl_6149 pwr_enable_ps_read fndecl 3 6149 NULL nohasharray
155868 +enable_so_bytes_per_sector_mspro_devinfo_6149 bytes_per_sector mspro_devinfo 0 6149 &enable_so_pwr_enable_ps_read_fndecl_6149
155869 +enable_so_fts_ieee80211_device_6153 fts ieee80211_device 0 6153 NULL
155870 +enable_so_name_len_f2fs_dir_entry_6154 name_len f2fs_dir_entry 0 6154 NULL
155871 +enable_so_gfn_to_pfn_memslot_fndecl_6158 gfn_to_pfn_memslot fndecl 2 6158 NULL
155872 +enable_so_buf_size_rte_log_le_6160 buf_size rte_log_le 0 6160 NULL nohasharray
155873 +enable_so_udf_read_tagged_fndecl_6160 udf_read_tagged fndecl 2 6160 &enable_so_buf_size_rte_log_le_6160
155874 +enable_so_kernel_write_fndecl_6162 kernel_write fndecl 3-0 6162 NULL
155875 +enable_so_rcl_nrefcalls_referring_call_list_6169 rcl_nrefcalls referring_call_list 0 6169 NULL
155876 +enable_so_dsp_tone_hw_message_fndecl_6173 dsp_tone_hw_message fndecl 3 6173 NULL
155877 +enable_so_m_agirotor_xfs_mount_6177 m_agirotor xfs_mount 0 6177 NULL
155878 +enable_so_fs_descs_count_ffs_data_6179 fs_descs_count ffs_data 0 6179 NULL
155879 +enable_so_sensor_write_regs_fndecl_6181 sensor_write_regs fndecl 0 6181 NULL
155880 +enable_so_arizona_calc_fratio_fndecl_6185 arizona_calc_fratio fndecl 0 6185 NULL
155881 +enable_so_start_mtd_oob_buf64_6198 start mtd_oob_buf64 0 6198 NULL
155882 +enable_so_venus_rename_fndecl_6200 venus_rename fndecl 4-5 6200 NULL
155883 +enable_so___send_write_same_fndecl_6201 __send_write_same fndecl 0 6201 NULL
155884 +enable_so_height_linux_logo_6207 height linux_logo 0 6207 NULL nohasharray
155885 +enable_so_digi_write_oob_command_fndecl_6207 digi_write_oob_command fndecl 3 6207 &enable_so_height_linux_logo_6207
155886 +enable_so_mmc_spi_readtoken_fndecl_6208 mmc_spi_readtoken fndecl 0 6208 NULL
155887 +enable_so_index_lola_stream_6210 index lola_stream 0 6210 NULL nohasharray
155888 +enable_so_dac_channels_pcm_oxygen_model_6210 dac_channels_pcm oxygen_model 0 6210 &enable_so_index_lola_stream_6210
155889 +enable_so_bnxt_calc_nr_ring_pages_fndecl_6213 bnxt_calc_nr_ring_pages fndecl 0-2-1 6213 NULL
155890 +enable_so_val_bits_regmap_config_6218 val_bits regmap_config 0 6218 NULL
155891 +enable_so_sc_ssid_len_wl18xx_event_mailbox_6223 sc_ssid_len wl18xx_event_mailbox 0 6223 NULL
155892 +enable_so_exofs_read_lookup_dev_table_fndecl_6230 exofs_read_lookup_dev_table fndecl 3 6230 NULL
155893 +enable_so_bytenr_backref_node_6238 bytenr backref_node 0 6238 NULL
155894 +enable_so_setup_sgl_fndecl_6242 setup_sgl fndecl 4-5 6242 NULL
155895 +enable_so_ag_xfs_fstrm_item_6243 ag xfs_fstrm_item 0 6243 NULL
155896 +enable_so_mode_offset_pktcdvd_device_6248 mode_offset pktcdvd_device 0 6248 NULL
155897 +enable_so_rxq_cnt_tg3_6249 rxq_cnt tg3 0 6249 NULL
155898 +enable_so_ubifs_leb_change_fndecl_6254 ubifs_leb_change fndecl 4 6254 NULL
155899 +enable_so_send_mbox_fndecl_6260 send_mbox fndecl 4 6260 NULL
155900 +enable_so_brcmf_usb_attach_fndecl_6261 brcmf_usb_attach fndecl 2-3 6261 NULL
155901 +enable_so_blkno_xfs_bmalloca_6265 blkno xfs_bmalloca 0 6265 NULL nohasharray
155902 +enable_so_bNumInterfaces_usb_config_descriptor_6265 bNumInterfaces usb_config_descriptor 0 6265 &enable_so_blkno_xfs_bmalloca_6265
155903 +enable_so_xs_setup_xprt_fndecl_6266 xs_setup_xprt fndecl 3-2 6266 NULL
155904 +enable_so_size_drm_vmw_alloc_dmabuf_req_6273 size drm_vmw_alloc_dmabuf_req 0 6273 NULL
155905 +enable_so_vb2_dma_sg_get_userptr_fndecl_6274 vb2_dma_sg_get_userptr fndecl 2-3 6274 NULL
155906 +enable_so_sb_nextnum_nilfs_segment_buffer_6275 sb_nextnum nilfs_segment_buffer 0 6275 NULL
155907 +enable_so_dm_cell_error_fndecl_6277 dm_cell_error fndecl 3 6277 NULL nohasharray
155908 +enable_so_command_setsensorfps_fndecl_6277 command_setsensorfps fndecl 0 6277 &enable_so_dm_cell_error_fndecl_6277
155909 +enable_so_nrealwriters_stress_lock_torture_cxt_6279 nrealwriters_stress lock_torture_cxt 0 6279 NULL
155910 +enable_so_copy_out_args_fndecl_6283 copy_out_args fndecl 3 6283 NULL
155911 +enable_so_regmap_i2c_gather_write_fndecl_6284 regmap_i2c_gather_write fndecl 3-5 6284 NULL nohasharray
155912 +enable_so_data_len_op_arr_write_6284 data_len op_arr_write 0 6284 &enable_so_regmap_i2c_gather_write_fndecl_6284
155913 +enable_so_gnet_stats_copy_app_fndecl_6286 gnet_stats_copy_app fndecl 3 6286 NULL
155914 +enable_so__snd_pcm_lib_alloc_vmalloc_buffer_fndecl_6287 _snd_pcm_lib_alloc_vmalloc_buffer fndecl 2 6287 NULL
155915 +enable_so_hOver_plus_panel_info_6297 hOver_plus panel_info 0 6297 NULL
155916 +enable_so_lpuart_copy_rx_to_tty_fndecl_6298 lpuart_copy_rx_to_tty fndecl 3 6298 NULL
155917 +enable_so_sn9c2028_command_fndecl_6307 sn9c2028_command fndecl 0 6307 NULL
155918 +enable_so_em28xx_audio_ep_packet_size_fndecl_6311 em28xx_audio_ep_packet_size fndecl 0 6311 NULL
155919 +enable_so_shadow_fetch_fndecl_6315 shadow_fetch fndecl 3 6315 NULL
155920 +enable_so_sectors_r1bio_6323 sectors r1bio 0 6323 NULL
155921 +enable_so_len_ethtool_gstrings_6325 len ethtool_gstrings 0 6325 NULL
155922 +enable_so_totalhigh_sysinfo_6327 totalhigh sysinfo 0 6327 NULL nohasharray
155923 +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
155924 +enable_so_cipso_v4_gentag_rbm_fndecl_6335 cipso_v4_gentag_rbm fndecl 0 6335 NULL nohasharray
155925 +enable_so_raid5_build_block_fndecl_6335 raid5_build_block fndecl 2 6335 &enable_so_cipso_v4_gentag_rbm_fndecl_6335 nohasharray
155926 +enable_so_asd_get_devctx_size_fndecl_6335 asd_get_devctx_size fndecl 0 6335 &enable_so_raid5_build_block_fndecl_6335
155927 +enable_so_ray_cs_essid_proc_write_fndecl_6336 ray_cs_essid_proc_write fndecl 3 6336 NULL
155928 +enable_so_virtio_cread32_fndecl_6338 virtio_cread32 fndecl 0 6338 NULL
155929 +enable_so_h_max_out_saa7146_standard_6339 h_max_out saa7146_standard 0 6339 NULL
155930 +enable_so_orinoco_set_key_fndecl_6341 orinoco_set_key fndecl 5-7 6341 NULL nohasharray
155931 +enable_so_i40e_align_l2obj_base_fndecl_6341 i40e_align_l2obj_base fndecl 1-0 6341 &enable_so_orinoco_set_key_fndecl_6341
155932 +enable_so_n_o_ps_usb_stream_kernel_6346 n_o_ps usb_stream_kernel 0 6346 NULL
155933 +enable_so_wbuf_ofs_jffs2_sb_info_6347 wbuf_ofs jffs2_sb_info 0 6347 NULL nohasharray
155934 +enable_so_init_per_cpu_fndecl_6347 init_per_cpu fndecl 1 6347 &enable_so_wbuf_ofs_jffs2_sb_info_6347
155935 +enable_so_hsmmc_command_incomplete_fndecl_6348 hsmmc_command_incomplete fndecl 2 6348 NULL
155936 +enable_so_compat_sys_pwritev_fndecl_6349 compat_sys_pwritev fndecl 3 6349 NULL nohasharray
155937 +enable_so_flags_fcoe_fcf_6349 flags fcoe_fcf 0 6349 &enable_so_compat_sys_pwritev_fndecl_6349
155938 +enable_so_data_pad_ubi_vid_hdr_6352 data_pad ubi_vid_hdr 0 6352 NULL nohasharray
155939 +enable_so_chipid_to_nrcores_fndecl_6352 chipid_to_nrcores fndecl 0 6352 &enable_so_data_pad_ubi_vid_hdr_6352
155940 +enable_so_pci_mmconfig_insert_fndecl_6353 pci_mmconfig_insert fndecl 3-4-5 6353 NULL
155941 +enable_so_logfs_iget_fndecl_6356 logfs_iget fndecl 2 6356 NULL
155942 +enable_so_lrf_body_len_nfsd4_layoutreturn_6359 lrf_body_len nfsd4_layoutreturn 0 6359 NULL
155943 +enable_so_len_p54_rx_data_6362 len p54_rx_data 0 6362 NULL
155944 +enable_so_sisusb_send_bulk_msg_fndecl_6363 sisusb_send_bulk_msg fndecl 3-2 6363 NULL
155945 +enable_so_alloc_sja1000dev_fndecl_6367 alloc_sja1000dev fndecl 1 6367 NULL
155946 +enable_so_fdt_parent_offset_fndecl_6368 fdt_parent_offset fndecl 0 6368 NULL
155947 +enable_so_elants_i2c_execute_command_fndecl_6371 elants_i2c_execute_command fndecl 3-5 6371 NULL nohasharray
155948 +enable_so_recover_head_fndecl_6371 recover_head fndecl 3 6371 &enable_so_elants_i2c_execute_command_fndecl_6371
155949 +enable_so_dev_pm_opp_get_opp_count_fndecl_6372 dev_pm_opp_get_opp_count fndecl 0 6372 NULL
155950 +enable_so_command_p_header80_6374 command p_header80 0 6374 NULL
155951 +enable_so_xfs_buf_associate_memory_fndecl_6376 xfs_buf_associate_memory fndecl 3 6376 NULL
155952 +enable_so_cur_inode_size_send_ctx_6380 cur_inode_size send_ctx 0 6380 NULL nohasharray
155953 +enable_so_blkfactor_dio_submit_6380 blkfactor dio_submit 0 6380 &enable_so_cur_inode_size_send_ctx_6380
155954 +enable_so_tail_hid_debug_list_6381 tail hid_debug_list 0 6381 NULL
155955 +enable_so_xfs_rtallocate_extent_near_fndecl_6383 xfs_rtallocate_extent_near fndecl 3-5-9 6383 NULL
155956 +enable_so_snd_info_entry_llseek_fndecl_6384 snd_info_entry_llseek fndecl 2 6384 NULL
155957 +enable_so_partition_sched_domains_fndecl_6386 partition_sched_domains fndecl 1 6386 NULL
155958 +enable_so_wps_probe_req_ie_len_mlme_priv_6393 wps_probe_req_ie_len mlme_priv 0 6393 NULL
155959 +enable_so_max_agbno_xfs_alloc_arg_6395 max_agbno xfs_alloc_arg 0 6395 NULL nohasharray
155960 +enable_so_totalreserve_pages_vardecl_6395 totalreserve_pages vardecl 0 6395 &enable_so_max_agbno_xfs_alloc_arg_6395
155961 +enable_so_i_file_acl_ext2_inode_info_6396 i_file_acl ext2_inode_info 0 6396 NULL
155962 +enable_so_srpt_post_send_fndecl_6405 srpt_post_send fndecl 3 6405 NULL nohasharray
155963 +enable_so_compat_sys_ppoll_fndecl_6405 compat_sys_ppoll fndecl 2 6405 &enable_so_srpt_post_send_fndecl_6405
155964 +enable_so_alloc_blocks_hfs_inode_info_6406 alloc_blocks hfs_inode_info 0 6406 NULL
155965 +enable_so_brcmf_chip_sysmem_ramsize_fndecl_6407 brcmf_chip_sysmem_ramsize fndecl 0 6407 NULL
155966 +enable_so_copy_from_iter_fndecl_6410 copy_from_iter fndecl 2-0 6410 NULL
155967 +enable_so_fwnet_change_mtu_fndecl_6424 fwnet_change_mtu fndecl 2 6424 NULL nohasharray
155968 +enable_so_x509_note_serial_fndecl_6424 x509_note_serial fndecl 5 6424 &enable_so_fwnet_change_mtu_fndecl_6424
155969 +enable_so_de_entrylen_reiserfs_dir_entry_6426 de_entrylen reiserfs_dir_entry 0 6426 NULL
155970 +enable_so_dib9000_write16_attr_fndecl_6428 dib9000_write16_attr fndecl 4 6428 NULL
155971 +enable_so_sys_brk_fndecl_6435 sys_brk fndecl 1 6435 NULL
155972 +enable_so_skd_end_request_fndecl_6438 skd_end_request fndecl 3 6438 NULL
155973 +enable_so_parse_dcb20_entry_fndecl_6440 parse_dcb20_entry fndecl 3 6440 NULL
155974 +enable_so_user_base_qib_mregion_6443 user_base qib_mregion 0 6443 NULL
155975 +enable_so_max_packet_sz_tx_musb_hw_ep_6448 max_packet_sz_tx musb_hw_ep 0 6448 NULL
155976 +enable_so_snd_hammerfall_get_buffer_fndecl_6450 snd_hammerfall_get_buffer fndecl 3 6450 NULL
155977 +enable_so_qib_init_pportdata_fndecl_6452 qib_init_pportdata fndecl 4 6452 NULL
155978 +enable_so_out_epnum_usb_gadget_6453 out_epnum usb_gadget 0 6453 NULL
155979 +enable_so_iov_iter_advance_fndecl_6457 iov_iter_advance fndecl 2 6457 NULL
155980 +enable_so_xtTruncate_fndecl_6468 xtTruncate fndecl 3 6468 NULL
155981 +enable_so_dm_end_request_fndecl_6471 dm_end_request fndecl 2 6471 NULL
155982 +enable_so_add_endpoint_hc_driver_6482 add_endpoint hc_driver 0 6482 NULL
155983 +enable_so_dx_fb_image_6483 dx fb_image 0 6483 NULL
155984 +enable_so_usb_device_lseek_fndecl_6485 usb_device_lseek fndecl 2 6485 NULL
155985 +enable_so_datasize_vub300_mmc_host_6490 datasize vub300_mmc_host 0 6490 NULL nohasharray
155986 +enable_so_beep_amp_ad198x_spec_6490 beep_amp ad198x_spec 0 6490 &enable_so_datasize_vub300_mmc_host_6490 nohasharray
155987 +enable_so_probe_kernel_write_fndecl_6490 probe_kernel_write fndecl 3 6490 &enable_so_beep_amp_ad198x_spec_6490
155988 +enable_so_curr_dma_words_tegra_spi_data_6500 curr_dma_words tegra_spi_data 0 6500 NULL
155989 +enable_so_new_offset_mdp_superblock_1_6501 new_offset mdp_superblock_1 0 6501 NULL
155990 +enable_so_f_read_cntrs_qib_devdata_6502 f_read_cntrs qib_devdata 0 6502 NULL
155991 +enable_so_inc_remap_and_issue_cell_fndecl_6505 inc_remap_and_issue_cell fndecl 3 6505 NULL
155992 +enable_so_hugetlb_file_setup_fndecl_6506 hugetlb_file_setup fndecl 2 6506 NULL
155993 +enable_so_vfs_setpos_fndecl_6511 vfs_setpos fndecl 2 6511 NULL
155994 +enable_so_base_size_aac_dev_6512 base_size aac_dev 0 6512 NULL
155995 +enable_so_l2_fhdr_vlan_tag_l2_fhdr_6516 l2_fhdr_vlan_tag l2_fhdr 0 6516 NULL
155996 +enable_so_lbs_highrssi_write_fndecl_6520 lbs_highrssi_write fndecl 3 6520 NULL
155997 +enable_so___get_data_block_fndecl_6521 __get_data_block fndecl 2 6521 NULL
155998 +enable_so_copy_page_from_iter_fndecl_6523 copy_page_from_iter fndecl 0-3 6523 NULL
155999 +enable_so_sector_start_dm_target_spec_6526 sector_start dm_target_spec 0 6526 NULL
156000 +enable_so_copy_from_user_fndecl_6532 copy_from_user fndecl 0-3 6532 NULL
156001 +enable_so_resp_err_recov_pg_fndecl_6533 resp_err_recov_pg fndecl 0 6533 NULL nohasharray
156002 +enable_so_bytes_cifs_readdata_6533 bytes cifs_readdata 0 6533 &enable_so_resp_err_recov_pg_fndecl_6533
156003 +enable_so_size_ubifs_wbuf_6537 size ubifs_wbuf 0 6537 NULL
156004 +enable_so_tx_ring_size_vmxnet3_adapter_6541 tx_ring_size vmxnet3_adapter 0 6541 NULL
156005 +enable_so_fe_logical_ext4_free_extent_6542 fe_logical ext4_free_extent 0 6542 NULL
156006 +enable_so_max_vfs_vardecl_igb_main_c_6547 max_vfs vardecl_igb_main.c 0 6547 NULL
156007 +enable_so_pcm_snd_bebob_stream_formation_6548 pcm snd_bebob_stream_formation 0 6548 NULL nohasharray
156008 +enable_so_count_ixgb_desc_ring_6548 count ixgb_desc_ring 0 6548 &enable_so_pcm_snd_bebob_stream_formation_6548
156009 +enable_so_xlog_do_log_recovery_fndecl_6557 xlog_do_log_recovery fndecl 3 6557 NULL
156010 +enable_so_active_duplex_tg3_link_config_6559 active_duplex tg3_link_config 0 6559 NULL
156011 +enable_so_verity_verify_io_fndecl_6564 verity_verify_io fndecl 0 6564 NULL
156012 +enable_so_vlan_tpid_ovs_action_push_vlan_6565 vlan_tpid ovs_action_push_vlan 0 6565 NULL
156013 +enable_so_sddr09_read21_fndecl_6568 sddr09_read21 fndecl 4-3-6 6568 NULL nohasharray
156014 +enable_so_neigh_hash_alloc_fndecl_6568 neigh_hash_alloc fndecl 1 6568 &enable_so_sddr09_read21_fndecl_6568
156015 +enable_so_acpi_ut_create_package_object_fndecl_6569 acpi_ut_create_package_object fndecl 1 6569 NULL
156016 +enable_so_ath6kl_wmi_connect_cmd_fndecl_6571 ath6kl_wmi_connect_cmd fndecl 2-10 6571 NULL nohasharray
156017 +enable_so_command_setcolourparams_fndecl_6571 command_setcolourparams fndecl 0 6571 &enable_so_ath6kl_wmi_connect_cmd_fndecl_6571
156018 +enable_so_rts51x_write_mem_fndecl_6573 rts51x_write_mem fndecl 4 6573 NULL
156019 +enable_so_log_num_qps_mlx4_init_hca_param_6574 log_num_qps mlx4_init_hca_param 0 6574 NULL
156020 +enable_so_mptctl_do_mpt_command_fndecl_6578 mptctl_do_mpt_command fndecl 0 6578 NULL
156021 +enable_so_gcd_fndecl_6579 gcd fndecl 0-2-1 6579 NULL
156022 +enable_so_argc_tomoyo_condition_6587 argc tomoyo_condition 0 6587 NULL
156023 +enable_so_wil_write_file_rxon_fndecl_6590 wil_write_file_rxon fndecl 3 6590 NULL
156024 +enable_so_capture_frlog_rme96_6593 capture_frlog rme96 0 6593 NULL
156025 +enable_so_bfad_iocmd_vport_clr_stats_fndecl_6597 bfad_iocmd_vport_clr_stats fndecl 0 6597 NULL
156026 +enable_so_pci_get_device_fndecl_6606 pci_get_device fndecl 2 6606 NULL
156027 +enable_so_dma_map_page_fndecl_6607 dma_map_page fndecl 0 6607 NULL
156028 +enable_so_irda_sendmsg_ultra_fndecl_6612 irda_sendmsg_ultra fndecl 3 6612 NULL nohasharray
156029 +enable_so_osst_execute_fndecl_6612 osst_execute fndecl 6-3-7 6612 &enable_so_irda_sendmsg_ultra_fndecl_6612
156030 +enable_so_size_synthhid_msg_hdr_6615 size synthhid_msg_hdr 0 6615 NULL nohasharray
156031 +enable_so_num_large_buffers_ql3_adapter_6615 num_large_buffers ql3_adapter 0 6615 &enable_so_size_synthhid_msg_hdr_6615
156032 +enable_so_length_v4l2_mbus_frame_desc_entry_6616 length v4l2_mbus_frame_desc_entry 0 6616 NULL
156033 +enable_so_ocfs2_mark_extent_written_fndecl_6620 ocfs2_mark_extent_written fndecl 6-4 6620 NULL
156034 +enable_so_ath_recv_fndecl_6621 ath_recv fndecl 3 6621 NULL
156035 +enable_so_num_outputs_drm_vmw_update_layout_arg_6623 num_outputs drm_vmw_update_layout_arg 0 6623 NULL
156036 +enable_so_hw_queue_depth_vardecl_null_blk_c_6624 hw_queue_depth vardecl_null_blk.c 0 6624 NULL
156037 +enable_so_cifs_setsize_fndecl_6630 cifs_setsize fndecl 2 6630 NULL nohasharray
156038 +enable_so_copy_for_split_fndecl_6630 copy_for_split fndecl 7-8 6630 &enable_so_cifs_setsize_fndecl_6630
156039 +enable_so_sample_rate_echoaudio_6631 sample_rate echoaudio 0 6631 NULL
156040 +enable_so_integrity_read_file_fndecl_6633 integrity_read_file fndecl 0 6633 NULL nohasharray
156041 +enable_so_buf_size_mlx4_en_rx_ring_6633 buf_size mlx4_en_rx_ring 0 6633 &enable_so_integrity_read_file_fndecl_6633
156042 +enable_so_SYSC_migrate_pages_fndecl_6634 SYSC_migrate_pages fndecl 2 6634 NULL
156043 +enable_so_packet_setsockopt_fndecl_6637 packet_setsockopt fndecl 5 6637 NULL
156044 +enable_so_xmit_count_modem_info_6639 xmit_count modem_info 0 6639 NULL
156045 +enable_so_bpp_xvip_video_format_6640 bpp xvip_video_format 0 6640 NULL
156046 +enable_so_irlan_provider_connect_indication_fndecl_6644 irlan_provider_connect_indication fndecl 5 6644 NULL
156047 +enable_so_local_payload_max_nfc_digital_dev_6651 local_payload_max nfc_digital_dev 0 6651 NULL nohasharray
156048 +enable_so_set_number_fndecl_6651 set_number fndecl 2 6651 &enable_so_local_payload_max_nfc_digital_dev_6651
156049 +enable_so_length_acpi_namestring_info_6654 length acpi_namestring_info 0 6654 NULL
156050 +enable_so_async_error_osd_request_6658 async_error osd_request 0 6658 NULL
156051 +enable_so_persistent_commit_merge_fndecl_6660 persistent_commit_merge fndecl 2 6660 NULL
156052 +enable_so_nilfs_segment_list_add_fndecl_6665 nilfs_segment_list_add fndecl 2 6665 NULL
156053 +enable_so_orinoco_add_extscan_result_fndecl_6668 orinoco_add_extscan_result fndecl 3 6668 NULL nohasharray
156054 +enable_so_io_reserve_memtype_fndecl_6668 io_reserve_memtype fndecl 1-2 6668 &enable_so_orinoco_add_extscan_result_fndecl_6668
156055 +enable_so_img_imem_size_fw_hdr_6675 img_imem_size fw_hdr 0 6675 NULL nohasharray
156056 +enable_so_pccard_store_cis_fndecl_6675 pccard_store_cis fndecl 6 6675 &enable_so_img_imem_size_fw_hdr_6675
156057 +enable_so_compatsize_xt_match_6677 compatsize xt_match 0 6677 NULL
156058 +enable_so_present_pages_zone_6685 present_pages zone 0 6685 NULL
156059 +enable_so_ac_2order_ext4_allocation_context_6690 ac_2order ext4_allocation_context 0 6690 NULL
156060 +enable_so_param_ssp_completion_resp_6691 param ssp_completion_resp 0 6691 NULL
156061 +enable_so_esize___kfifo_6692 esize __kfifo 0 6692 NULL nohasharray
156062 +enable_so_drop_endpoint_hc_driver_6692 drop_endpoint hc_driver 0 6692 &enable_so_esize___kfifo_6692
156063 +enable_so_max_recvmsg_len_netlink_sock_6699 max_recvmsg_len netlink_sock 0 6699 NULL
156064 +enable_so_nroots_rs_control_6706 nroots rs_control 0 6706 NULL nohasharray
156065 +enable_so_gsm_control_message_fndecl_6706 gsm_control_message fndecl 4 6706 &enable_so_nroots_rs_control_6706
156066 +enable_so_do_ipv6_setsockopt_fndecl_6708 do_ipv6_setsockopt fndecl 5-0 6708 NULL nohasharray
156067 +enable_so_length_p_header80_6708 length p_header80 0 6708 &enable_so_do_ipv6_setsockopt_fndecl_6708
156068 +enable_so_raw_recvmsg_fndecl_6710 raw_recvmsg fndecl 3 6710 NULL
156069 +enable_so_sample_rate_mixart_mgr_6716 sample_rate mixart_mgr 0 6716 NULL
156070 +enable_so_ssb_sdio_block_read_fndecl_6721 ssb_sdio_block_read fndecl 3 6721 NULL
156071 +enable_so_qdisc_class_hash_alloc_fndecl_6725 qdisc_class_hash_alloc fndecl 1 6725 NULL
156072 +enable_so_ieee_il_rate_info_6732 ieee il_rate_info 0 6732 NULL
156073 +enable_so_iova_mlx5_core_mr_6733 iova mlx5_core_mr 0 6733 NULL
156074 +enable_so_pagesize_sddr09_card_info_6735 pagesize sddr09_card_info 0 6735 NULL
156075 +enable_so_gnttab_alloc_grant_references_fndecl_6739 gnttab_alloc_grant_references fndecl 1 6739 NULL
156076 +enable_so_num_vectors_qed_int_param_6741 num_vectors qed_int_param 0 6741 NULL
156077 +enable_so__read_and_match_data_map_fndecl_6747 _read_and_match_data_map fndecl 2 6747 NULL
156078 +enable_so_rfcomm_sock_setsockopt_fndecl_6749 rfcomm_sock_setsockopt fndecl 5 6749 NULL
156079 +enable_so_before_xfs_da_node_entry_6750 before xfs_da_node_entry 0 6750 NULL
156080 +enable_so_bfad_iocmd_diag_queuetest_fndecl_6752 bfad_iocmd_diag_queuetest fndecl 0 6752 NULL
156081 +enable_so_alloc_size__osd_req_data_segment_6757 alloc_size _osd_req_data_segment 0 6757 NULL
156082 +enable_so_um_idi_write_fndecl_6758 um_idi_write fndecl 3 6758 NULL
156083 +enable_so_tun_opts_len_sw_flow_key_6759 tun_opts_len sw_flow_key 0 6759 NULL
156084 +enable_so_rbd_obj_request_submit_fndecl_6760 rbd_obj_request_submit fndecl 0 6760 NULL
156085 +enable_so_ocfs2_direct_IO_fndecl_6762 ocfs2_direct_IO fndecl 3 6762 NULL
156086 +enable_so_al_stripe_size_resize_parms_6766 al_stripe_size resize_parms 0 6766 NULL
156087 +enable_so_start_mtd_oob_buf_6767 start mtd_oob_buf 0 6767 NULL
156088 +enable_so_rx_pkt_ram_iadev_priv_6768 rx_pkt_ram iadev_priv 0 6768 NULL nohasharray
156089 +enable_so_gfs2_alloc_sort_buffer_fndecl_6768 gfs2_alloc_sort_buffer fndecl 1 6768 &enable_so_rx_pkt_ram_iadev_priv_6768
156090 +enable_so_sg_tablesize_Scsi_Host_6769 sg_tablesize Scsi_Host 0 6769 NULL
156091 +enable_so_alloc_ring_fndecl_6773 alloc_ring fndecl 2-4 6773 NULL
156092 +enable_so_dn_recvmsg_fndecl_6774 dn_recvmsg fndecl 3 6774 NULL
156093 +enable_so_ext4_readpages_fndecl_6776 ext4_readpages fndecl 4 6776 NULL
156094 +enable_so_asn_1_decode_fndecl_6777 asn_1_decode fndecl 0 6777 NULL nohasharray
156095 +enable_so_max_vals_input_dev_6777 max_vals input_dev 0 6777 &enable_so_asn_1_decode_fndecl_6777
156096 +enable_so_bio_phys_segments_fndecl_6778 bio_phys_segments fndecl 0 6778 NULL
156097 +enable_so_mmc_send_bus_test_fndecl_6782 mmc_send_bus_test fndecl 4-3 6782 NULL
156098 +enable_so_ecryptfs_send_message_fndecl_6785 ecryptfs_send_message fndecl 2 6785 NULL
156099 +enable_so_alloc_and_copy_string_fndecl_6786 alloc_and_copy_string fndecl 2 6786 NULL
156100 +enable_so_bio_integrity_advance_fndecl_6791 bio_integrity_advance fndecl 2 6791 NULL
156101 +enable_so_st21nfca_im_send_atr_req_fndecl_6792 st21nfca_im_send_atr_req fndecl 3 6792 NULL
156102 +enable_so_length_nbpf_desc_6795 length nbpf_desc 0 6795 NULL
156103 +enable_so_xfs_da_shrink_inode_fndecl_6796 xfs_da_shrink_inode fndecl 2 6796 NULL
156104 +enable_so_pop_tx_fndecl_6799 pop_tx fndecl 2 6799 NULL
156105 +enable_so_bankwidth_map_info_6800 bankwidth map_info 0 6800 NULL
156106 +enable_so_pfn_mlx4_uar_6801 pfn mlx4_uar 0 6801 NULL
156107 +enable_so_ctrl_dma_acm_6806 ctrl_dma acm 0 6806 NULL
156108 +enable_so_ip6ip6_err_fndecl_6807 ip6ip6_err fndecl 5 6807 NULL
156109 +enable_so_nfc_digital_allocate_device_fndecl_6810 nfc_digital_allocate_device fndecl 4 6810 NULL
156110 +enable_so_csio_mem_read_fndecl_6812 csio_mem_read fndecl 3 6812 NULL
156111 +enable_so_debugfs_write_file_bool_fndecl_6814 debugfs_write_file_bool fndecl 3 6814 NULL
156112 +enable_so_tx_pipe_at76_priv_6815 tx_pipe at76_priv 0 6815 NULL
156113 +enable_so_pwr_power_save_off_read_fndecl_6816 pwr_power_save_off_read fndecl 3 6816 NULL
156114 +enable_so_minor_miscdevice_6818 minor miscdevice 0 6818 NULL
156115 +enable_so_hs_rehash_bits_cfs_hash_6820 hs_rehash_bits cfs_hash 0 6820 NULL
156116 +enable_so_bfs_iget_fndecl_6821 bfs_iget fndecl 2 6821 NULL
156117 +enable_so_xlbd_reserve_minors_fndecl_6830 xlbd_reserve_minors fndecl 2-1 6830 NULL
156118 +enable_so_centre_vertically_fndecl_6833 centre_vertically fndecl 2 6833 NULL
156119 +enable_so_xfs_dialloc_ag_finobt_near_fndecl_6835 xfs_dialloc_ag_finobt_near fndecl 1 6835 NULL
156120 +enable_so_copy_page_to_iter_fndecl_6842 copy_page_to_iter fndecl 0-3 6842 NULL
156121 +enable_so_lcd_proc_write_fndecl_6844 lcd_proc_write fndecl 3 6844 NULL
156122 +enable_so_intel_framebuffer_size_for_mode_fndecl_6849 intel_framebuffer_size_for_mode fndecl 0-2 6849 NULL nohasharray
156123 +enable_so___ceph_getxattr_fndecl_6849 __ceph_getxattr fndecl 0 6849 &enable_so_intel_framebuffer_size_for_mode_fndecl_6849
156124 +enable_so_hpfs_file_fsync_fndecl_6851 hpfs_file_fsync fndecl 2-3 6851 NULL
156125 +enable_so_kclist_add_private_fndecl_6853 kclist_add_private fndecl 1-2 6853 NULL
156126 +enable_so_bg_channels_libipw_geo_6854 bg_channels libipw_geo 0 6854 NULL
156127 +enable_so_ci_role_write_fndecl_6855 ci_role_write fndecl 3 6855 NULL
156128 +enable_so_hdlc_empty_fifo_fndecl_6862 hdlc_empty_fifo fndecl 2 6862 NULL
156129 +enable_so_qib_user_sdma_num_pages_fndecl_6864 qib_user_sdma_num_pages fndecl 0 6864 NULL
156130 +enable_so_buffer_kbs_vardecl_st_c_6866 buffer_kbs vardecl_st.c 0 6866 NULL
156131 +enable_so_size_vb2_fileio_buf_6875 size vb2_fileio_buf 0 6875 NULL nohasharray
156132 +enable_so_offset_amp_assoc_6875 offset amp_assoc 0 6875 &enable_so_size_vb2_fileio_buf_6875
156133 +enable_so_xres_fb_videomode_6878 xres fb_videomode 0 6878 NULL
156134 +enable_so_rxbufferhandle_kaweth_device_6883 rxbufferhandle kaweth_device 0 6883 NULL
156135 +enable_so___kfifo_in_r_fndecl_6892 __kfifo_in_r fndecl 4-3 6892 NULL nohasharray
156136 +enable_so_jffs2_zlib_decompress_fndecl_6892 jffs2_zlib_decompress fndecl 3-4 6892 &enable_so___kfifo_in_r_fndecl_6892
156137 +enable_so_hpfs_bplus_lookup_fndecl_6896 hpfs_bplus_lookup fndecl 0-4 6896 NULL nohasharray
156138 +enable_so_index_mlx5_uar_6896 index mlx5_uar 0 6896 &enable_so_hpfs_bplus_lookup_fndecl_6896
156139 +enable_so_link_duplex_e1000_adapter_6902 link_duplex e1000_adapter 0 6902 NULL
156140 +enable_so_jfs_quota_write_fndecl_6903 jfs_quota_write fndecl 5 6903 NULL
156141 +enable_so_offset_clone_root_6907 offset clone_root 0 6907 NULL nohasharray
156142 +enable_so_write_inflate_state_6907 write inflate_state 0 6907 &enable_so_offset_clone_root_6907
156143 +enable_so_table_size_radeon_gart_6911 table_size radeon_gart 0 6911 NULL
156144 +enable_so_pwr_sleep_time_count_read_fndecl_6914 pwr_sleep_time_count_read fndecl 3 6914 NULL
156145 +enable_so_error_dm_io_6915 error dm_io 0 6915 NULL
156146 +enable_so_maxbufsize__isdn_driver_6917 maxbufsize _isdn_driver 0 6917 NULL
156147 +enable_so_drm_gtf_mode_complex_fndecl_6918 drm_gtf_mode_complex fndecl 3-2-4-7-9-10-8 6918 NULL
156148 +enable_so_jfs_nfs_get_inode_fndecl_6925 jfs_nfs_get_inode fndecl 2 6925 NULL
156149 +enable_so_buflen_packet_command_6926 buflen packet_command 0 6926 NULL
156150 +enable_so_multi_src_desc_6933 multi src_desc 0 6933 NULL
156151 +enable_so_nvram_pagesize_tg3_6938 nvram_pagesize tg3 0 6938 NULL
156152 +enable_so_nbytes_ide_cmd_6945 nbytes ide_cmd 0 6945 NULL
156153 +enable_so_enic_rxcopybreak_fndecl_6960 enic_rxcopybreak fndecl 4 6960 NULL
156154 +enable_so_af9013_write_ofsm_regs_fndecl_6965 af9013_write_ofsm_regs fndecl 4 6965 NULL
156155 +enable_so_ufs_free_blocks_fndecl_6968 ufs_free_blocks fndecl 3-2 6968 NULL nohasharray
156156 +enable_so_tlv_put_u64_fndecl_6968 tlv_put_u64 fndecl 0 6968 &enable_so_ufs_free_blocks_fndecl_6968
156157 +enable_so_odm_group_width_pnfs_osd_data_map_6977 odm_group_width pnfs_osd_data_map 0 6977 NULL
156158 +enable_so_mq_msg_max_ipc_namespace_6978 mq_msg_max ipc_namespace 0 6978 NULL
156159 +enable_so_pvr2_v4l2_read_fndecl_6981 pvr2_v4l2_read fndecl 3 6981 NULL
156160 +enable_so_async_set_registers_fndecl_6987 async_set_registers fndecl 3 6987 NULL
156161 +enable_so_log_start_r5l_log_6989 log_start r5l_log 0 6989 NULL
156162 +enable_so_mappable_base_i915_gtt_6993 mappable_base i915_gtt 0 6993 NULL
156163 +enable_so_sq_spare_wqes_mlx4_ib_qp_6994 sq_spare_wqes mlx4_ib_qp 0 6994 NULL
156164 +enable_so_bits_from_user_fndecl_6996 bits_from_user fndecl 2-3 6996 NULL
156165 +enable_so_smk_write_cipso_fndecl_6998 smk_write_cipso fndecl 3 6998 NULL
156166 +enable_so_rx_agg_nr_pages_bnxt_7000 rx_agg_nr_pages bnxt 0 7000 NULL
156167 +enable_so_gnttab_max_grant_frames_fndecl_7002 gnttab_max_grant_frames fndecl 0 7002 NULL
156168 +enable_so_ft_data_ro_fcp_txrdy_7005 ft_data_ro fcp_txrdy 0 7005 NULL
156169 +enable_so_p_start_nilfs_period_7008 p_start nilfs_period 0 7008 NULL nohasharray
156170 +enable_so___posix_lock_file_fndecl_7008 __posix_lock_file fndecl 0 7008 &enable_so_p_start_nilfs_period_7008
156171 +enable_so_num_rss_qede_dev_7011 num_rss qede_dev 0 7011 NULL
156172 +enable_so_s_groups_count_ext4_sb_info_7012 s_groups_count ext4_sb_info 0 7012 NULL
156173 +enable_so_ocfs2_cache_cluster_dealloc_fndecl_7016 ocfs2_cache_cluster_dealloc fndecl 3-2 7016 NULL
156174 +enable_so_attr_bytes_osdv2_attributes_list_element_7018 attr_bytes osdv2_attributes_list_element 0 7018 NULL
156175 +enable_so_channels_snd_pcm_plugin_format_7026 channels snd_pcm_plugin_format 0 7026 NULL
156176 +enable_so_ip_tun_to_nlattr_fndecl_7028 ip_tun_to_nlattr fndecl 4 7028 NULL
156177 +enable_so_virtio_gpu_alloc_object_fndecl_7030 virtio_gpu_alloc_object fndecl 2 7030 NULL
156178 +enable_so_h_sync_strt_wid_crtc_7033 h_sync_strt_wid crtc 0 7033 NULL
156179 +enable_so_fat_short2lower_uni_fndecl_7036 fat_short2lower_uni fndecl 0 7036 NULL
156180 +enable_so_mq_msg_default_ipc_namespace_7041 mq_msg_default ipc_namespace 0 7041 NULL nohasharray
156181 +enable_so_fpregs_get_fndecl_7041 fpregs_get fndecl 4 7041 &enable_so_mq_msg_default_ipc_namespace_7041
156182 +enable_so_n_krcv_queues_hfi1_devdata_7042 n_krcv_queues hfi1_devdata 0 7042 NULL
156183 +enable_so_fp_msix_cnt_qed_int_params_7045 fp_msix_cnt qed_int_params 0 7045 NULL
156184 +enable_so_kvm_read_guest_page_fndecl_7049 kvm_read_guest_page fndecl 2-5 7049 NULL
156185 +enable_so_iforce_send_packet_fndecl_7050 iforce_send_packet fndecl 2 7050 NULL
156186 +enable_so_srq_entry_sz_mlx4_dev_cap_7052 srq_entry_sz mlx4_dev_cap 0 7052 NULL
156187 +enable_so_SYSC_pselect6_fndecl_7055 SYSC_pselect6 fndecl 1 7055 NULL
156188 +enable_so_packet_size_usbatm_channel_7056 packet_size usbatm_channel 0 7056 NULL
156189 +enable_so___btrfs_drop_extents_fndecl_7058 __btrfs_drop_extents fndecl 6-5 7058 NULL
156190 +enable_so_cryptd_alloc_instance_fndecl_7059 cryptd_alloc_instance fndecl 3-2 7059 NULL
156191 +enable_so_dccph_doff_dccp_hdr_7060 dccph_doff dccp_hdr 0 7060 NULL nohasharray
156192 +enable_so_ddebug_proc_write_fndecl_7060 ddebug_proc_write fndecl 3 7060 &enable_so_dccph_doff_dccp_hdr_7060
156193 +enable_so_total_VFs_pci_sriov_7061 total_VFs pci_sriov 0 7061 NULL
156194 +enable_so_i_dir_start_lookup_ext4_inode_info_7062 i_dir_start_lookup ext4_inode_info 0 7062 NULL
156195 +enable_so_core_tpg_set_initiator_node_queue_depth_fndecl_7063 core_tpg_set_initiator_node_queue_depth fndecl 3 7063 NULL
156196 +enable_so_jt_size_gfx_firmware_header_v1_0_7064 jt_size gfx_firmware_header_v1_0 0 7064 NULL
156197 +enable_so_zisofs_fill_pages_fndecl_7066 zisofs_fill_pages fndecl 3 7066 NULL
156198 +enable_so_lua_sysfs_read_fndecl_7069 lua_sysfs_read fndecl 6 7069 NULL
156199 +enable_so_msdc_tune_response_fndecl_7073 msdc_tune_response fndecl 2 7073 NULL
156200 +enable_so_command_hdac_bus_ops_7079 command hdac_bus_ops 0 7079 NULL
156201 +enable_so_pref_height_vmw_display_unit_7089 pref_height vmw_display_unit 0 7089 NULL
156202 +enable_so_rx_pending_sky2_port_7090 rx_pending sky2_port 0 7090 NULL
156203 +enable_so_get_vm_area_fndecl_7091 get_vm_area fndecl 1 7091 NULL
156204 +enable_so_dma_mt7601u_dma_buf_7098 dma mt7601u_dma_buf 0 7098 NULL
156205 +enable_so_rtl8139_change_mtu_fndecl_7099 rtl8139_change_mtu fndecl 2 7099 NULL
156206 +enable_so_nvkm_fifo_chan_ctor_fndecl_7101 nvkm_fifo_chan_ctor fndecl 11 7101 NULL nohasharray
156207 +enable_so_mpi_alloc_fndecl_7101 mpi_alloc fndecl 1 7101 &enable_so_nvkm_fifo_chan_ctor_fndecl_7101
156208 +enable_so_paging32_gpte_to_gfn_lvl_fndecl_7104 paging32_gpte_to_gfn_lvl fndecl 0-2-1 7104 NULL nohasharray
156209 +enable_so_scan_ies_len_ieee80211_local_7104 scan_ies_len ieee80211_local 0 7104 &enable_so_paging32_gpte_to_gfn_lvl_fndecl_7104
156210 +enable_so_nfsd4_encode_readv_fndecl_7110 nfsd4_encode_readv fndecl 4 7110 NULL
156211 +enable_so_intel_fbc_calculate_cfb_size_fndecl_7116 intel_fbc_calculate_cfb_size fndecl 0 7116 NULL
156212 +enable_so_rsxx_dma_queue_bio_fndecl_7118 rsxx_dma_queue_bio fndecl 0 7118 NULL
156213 +enable_so_wil_tid_ampdu_rx_alloc_fndecl_7119 wil_tid_ampdu_rx_alloc fndecl 2 7119 NULL
156214 +enable_so_alloc_pv_object_fndecl_7121 alloc_pv_object fndecl 3 7121 NULL
156215 +enable_so_ftrace_size_ramoops_platform_data_7124 ftrace_size ramoops_platform_data 0 7124 NULL
156216 +enable_so_report_size_hid_global_7127 report_size hid_global 0 7127 NULL nohasharray
156217 +enable_so_dfs_file_read_fndecl_7127 dfs_file_read fndecl 3 7127 &enable_so_report_size_hid_global_7127
156218 +enable_so_link_chain_affs_tail_7131 link_chain affs_tail 0 7131 NULL nohasharray
156219 +enable_so_acpi_rs_set_resource_length_fndecl_7131 acpi_rs_set_resource_length fndecl 1 7131 &enable_so_link_chain_affs_tail_7131 nohasharray
156220 +enable_so_svc_getnl_fndecl_7131 svc_getnl fndecl 0 7131 &enable_so_acpi_rs_set_resource_length_fndecl_7131
156221 +enable_so_nstids_tid_info_7139 nstids tid_info 0 7139 NULL
156222 +enable_so_vc_origin_vc_data_7148 vc_origin vc_data 0 7148 NULL
156223 +enable_so_ea_secno_fnode_7151 ea_secno fnode 0 7151 NULL nohasharray
156224 +enable_so_privsize_nft_set_ops_7151 privsize nft_set_ops 0 7151 &enable_so_ea_secno_fnode_7151
156225 +enable_so_nv50_disp_new__fndecl_7152 nv50_disp_new_ fndecl 4 7152 NULL
156226 +enable_so_newblocks_xfs_growfs_rt_7154 newblocks xfs_growfs_rt 0 7154 NULL
156227 +enable_so_selinux_inode_setsecurity_fndecl_7159 selinux_inode_setsecurity fndecl 4 7159 NULL
156228 +enable_so_num_packets_st5481_in_7161 num_packets st5481_in 0 7161 NULL
156229 +enable_so___add_to_page_cache_locked_fndecl_7168 __add_to_page_cache_locked fndecl 0 7168 NULL
156230 +enable_so_setup_sg_fndecl_7174 setup_sg fndecl 3 7174 NULL
156231 +enable_so_get_rxfh_key_size_ethtool_ops_7178 get_rxfh_key_size ethtool_ops 0 7178 NULL
156232 +enable_so_ax88179_write_cmd_async_fndecl_7180 ax88179_write_cmd_async fndecl 5 7180 NULL
156233 +enable_so_vdisplay_moderec_7183 vdisplay moderec 0 7183 NULL nohasharray
156234 +enable_so_mfd_add_devices_fndecl_7183 mfd_add_devices fndecl 6-2-4 7183 &enable_so_vdisplay_moderec_7183
156235 +enable_so_ino_node_footer_7185 ino node_footer 0 7185 NULL
156236 +enable_so_acc_accl_accessdata_dn_7186 acc_accl accessdata_dn 0 7186 NULL
156237 +enable_so_btrfs_get_token_32_fndecl_7192 btrfs_get_token_32 fndecl 0 7192 NULL nohasharray
156238 +enable_so___shmem_file_setup_fndecl_7192 __shmem_file_setup fndecl 2 7192 &enable_so_btrfs_get_token_32_fndecl_7192 nohasharray
156239 +enable_so_vc_rows_vc_data_7192 vc_rows vc_data 0 7192 &enable_so___shmem_file_setup_fndecl_7192 nohasharray
156240 +enable_so_ic_size_xlog_in_core_7192 ic_size xlog_in_core 0 7192 &enable_so_vc_rows_vc_data_7192 nohasharray
156241 +enable_so_remote_addr_ib_atomic_wr_7192 remote_addr ib_atomic_wr 0 7192 &enable_so_ic_size_xlog_in_core_7192
156242 +enable_so_mmc_calc_max_discard_fndecl_7198 mmc_calc_max_discard fndecl 0 7198 NULL
156243 +enable_so_z_incomp_fndecl_7201 z_incomp fndecl 3 7201 NULL
156244 +enable_so_length_pnfs_layout_range_7207 length pnfs_layout_range 0 7207 NULL nohasharray
156245 +enable_so_ide_init_port_fndecl_7207 ide_init_port fndecl 2 7207 &enable_so_length_pnfs_layout_range_7207
156246 +enable_so___wa_populate_dto_urb_fndecl_7208 __wa_populate_dto_urb fndecl 4-3 7208 NULL
156247 +enable_so_size_srp_iu_7210 size srp_iu 0 7210 NULL nohasharray
156248 +enable_so_drbd_drain_block_fndecl_7210 drbd_drain_block fndecl 2 7210 &enable_so_size_srp_iu_7210
156249 +enable_so_rivafb_do_maximize_fndecl_7212 rivafb_do_maximize fndecl 3-4 7212 NULL nohasharray
156250 +enable_so_eq_ecount_lpfc_sli4_hba_7212 eq_ecount lpfc_sli4_hba 0 7212 &enable_so_rivafb_do_maximize_fndecl_7212
156251 +enable_so_max_id_Scsi_Host_7217 max_id Scsi_Host 0 7217 NULL
156252 +enable_so_num_chipselect_spi_gpio_platform_data_7218 num_chipselect spi_gpio_platform_data 0 7218 NULL
156253 +enable_so_bfad_iocmd_qos_get_attr_fndecl_7226 bfad_iocmd_qos_get_attr fndecl 0 7226 NULL
156254 +enable_so_fdt_node_depth_fndecl_7240 fdt_node_depth fndecl 0 7240 NULL nohasharray
156255 +enable_so_s_mb_last_group_ext4_sb_info_7240 s_mb_last_group ext4_sb_info 0 7240 &enable_so_fdt_node_depth_fndecl_7240
156256 +enable_so_xfs_attr3_leaf_create_fndecl_7243 xfs_attr3_leaf_create fndecl 2 7243 NULL
156257 +enable_so_len_session_key_7253 len session_key 0 7253 NULL
156258 +enable_so_ddcb_max_ddcb_queue_7260 ddcb_max ddcb_queue 0 7260 NULL
156259 +enable_so_bpp_cobalt_stream_7263 bpp cobalt_stream 0 7263 NULL
156260 +enable_so_iscsi_recv_pdu_fndecl_7264 iscsi_recv_pdu fndecl 4 7264 NULL
156261 +enable_so_xlog_bread_fndecl_7272 xlog_bread fndecl 2 7272 NULL
156262 +enable_so_vc_saved_x_vc_data_7275 vc_saved_x vc_data 0 7275 NULL
156263 +enable_so_data_size_rxkad_level1_hdr_7278 data_size rxkad_level1_hdr 0 7278 NULL nohasharray
156264 +enable_so_num_asq_entries_i40e_adminq_info_7278 num_asq_entries i40e_adminq_info 0 7278 &enable_so_data_size_rxkad_level1_hdr_7278
156265 +enable_so_hsync_psb_pipe_7286 hsync psb_pipe 0 7286 NULL
156266 +enable_so_fc_plogi_acc_build_fndecl_7291 fc_plogi_acc_build fndecl 8 7291 NULL
156267 +enable_so_trailer_len_dst_entry_7294 trailer_len dst_entry 0 7294 NULL nohasharray
156268 +enable_so_pci_default_setup_fndecl_7294 pci_default_setup fndecl 4 7294 &enable_so_trailer_len_dst_entry_7294
156269 +enable_so_cmd_size_vmw_view_7295 cmd_size vmw_view 0 7295 NULL nohasharray
156270 +enable_so_mlx4_ib_send_to_wire_fndecl_7295 mlx4_ib_send_to_wire fndecl 3 7295 &enable_so_cmd_size_vmw_view_7295 nohasharray
156271 +enable_so_ubifs_update_one_lp_fndecl_7295 ubifs_update_one_lp fndecl 3 7295 &enable_so_mlx4_ib_send_to_wire_fndecl_7295 nohasharray
156272 +enable_so___copy_to_user_swizzled_fndecl_7295 __copy_to_user_swizzled fndecl 3-4 7295 &enable_so_ubifs_update_one_lp_fndecl_7295
156273 +enable_so_next_send_psn_mlx4_qp_context_7298 next_send_psn mlx4_qp_context 0 7298 NULL
156274 +enable_so_height_vpe_q_data_7303 height vpe_q_data 0 7303 NULL
156275 +enable_so_fdt_setprop_inplace_fndecl_7306 fdt_setprop_inplace fndecl 2 7306 NULL
156276 +enable_so_value_apei_exec_context_7318 value apei_exec_context 0 7318 NULL
156277 +enable_so_fdir_filter_count_ixgbe_adapter_7322 fdir_filter_count ixgbe_adapter 0 7322 NULL nohasharray
156278 +enable_so_add_frontend_dmx_demux_7322 add_frontend dmx_demux 0 7322 &enable_so_fdir_filter_count_ixgbe_adapter_7322
156279 +enable_so_bus_num_dw_pci_controller_7324 bus_num dw_pci_controller 0 7324 NULL
156280 +enable_so_len_f2fs_encrypted_symlink_data_7327 len f2fs_encrypted_symlink_data 0 7327 NULL
156281 +enable_so_wsize_inflate_state_7329 wsize inflate_state 0 7329 NULL
156282 +enable_so_control_cnt_pvr2_hdw_7335 control_cnt pvr2_hdw 0 7335 NULL
156283 +enable_so_drm_malloc_ab_fndecl_7340 drm_malloc_ab fndecl 1-2 7340 NULL
156284 +enable_so_pvr2_i2c_read_fndecl_7344 pvr2_i2c_read fndecl 4-6 7344 NULL
156285 +enable_so_jpegqual_s2255_vc_7351 jpegqual s2255_vc 0 7351 NULL nohasharray
156286 +enable_so_btusb_recv_intr_fndecl_7351 btusb_recv_intr fndecl 3 7351 &enable_so_jpegqual_s2255_vc_7351 nohasharray
156287 +enable_so_get_server_iovec_fndecl_7351 get_server_iovec fndecl 2 7351 &enable_so_btusb_recv_intr_fndecl_7351
156288 +enable_so_mesh_fwd_csa_frame_fndecl_7353 mesh_fwd_csa_frame fndecl 3 7353 NULL nohasharray
156289 +enable_so_calc_sq_size_fndecl_7353 calc_sq_size fndecl 0 7353 &enable_so_mesh_fwd_csa_frame_fndecl_7353
156290 +enable_so_mcp251x_spi_trans_fndecl_7356 mcp251x_spi_trans fndecl 2 7356 NULL
156291 +enable_so_dm_vcalloc_fndecl_7357 dm_vcalloc fndecl 2-1 7357 NULL
156292 +enable_so_sys_fadvise64_fndecl_7365 sys_fadvise64 fndecl 2-3 7365 NULL
156293 +enable_so_hfsplus_min_io_size_fndecl_7368 hfsplus_min_io_size fndecl 0 7368 NULL
156294 +enable_so_check_left_item_operations_7369 check_left item_operations 0 7369 NULL
156295 +enable_so_e_value_size_ext2_xattr_entry_7373 e_value_size ext2_xattr_entry 0 7373 NULL
156296 +enable_so_bufsize_pstore_info_7375 bufsize pstore_info 0 7375 NULL
156297 +enable_so_shmem_swapin_fndecl_7376 shmem_swapin fndecl 4 7376 NULL nohasharray
156298 +enable_so_scsi_mode_sense_fndecl_7376 scsi_mode_sense fndecl 5 7376 &enable_so_shmem_swapin_fndecl_7376
156299 +enable_so_c67x00_create_td_fndecl_7377 c67x00_create_td fndecl 4 7377 NULL
156300 +enable_so_fs_ablocks_hfs_sb_info_7381 fs_ablocks hfs_sb_info 0 7381 NULL
156301 +enable_so_amd8111e_change_mtu_fndecl_7389 amd8111e_change_mtu fndecl 2 7389 NULL
156302 +enable_so_packetsize__rbu_data_7390 packetsize _rbu_data 0 7390 NULL
156303 +enable_so_v_tot_disp_crtc_7400 v_tot_disp crtc 0 7400 NULL
156304 +enable_so_ext4_ext_zeroout_fndecl_7404 ext4_ext_zeroout fndecl 0 7404 NULL
156305 +enable_so_fw_sent_bcm203x_data_7405 fw_sent bcm203x_data 0 7405 NULL
156306 +enable_so___ip_append_data_fndecl_7411 __ip_append_data fndecl 9-8 7411 NULL
156307 +enable_so_default_value_cx88_ctrl_7412 default_value cx88_ctrl 0 7412 NULL
156308 +enable_so_htotal_psb_pipe_7415 htotal psb_pipe 0 7415 NULL nohasharray
156309 +enable_so_xfs_dialloc_ag_fndecl_7415 xfs_dialloc_ag fndecl 3 7415 &enable_so_htotal_psb_pipe_7415 nohasharray
156310 +enable_so_block_ack_param_set_host_cmd_ds_11n_addba_req_7415 block_ack_param_set host_cmd_ds_11n_addba_req 0 7415 &enable_so_xfs_dialloc_ag_fndecl_7415
156311 +enable_so_st_write_fndecl_7417 st_write fndecl 3 7417 NULL
156312 +enable_so_xfs_iget_fndecl_7419 xfs_iget fndecl 3 7419 NULL nohasharray
156313 +enable_so_alloc_idx_lebs_fndecl_7419 alloc_idx_lebs fndecl 2 7419 &enable_so_xfs_iget_fndecl_7419
156314 +enable_so___kfifo_peek_n_fndecl_7422 __kfifo_peek_n fndecl 0 7422 NULL
156315 +enable_so_mirror_sd_gl860_7430 mirror sd_gl860 0 7430 NULL
156316 +enable_so_residue_dma_tx_state_7432 residue dma_tx_state 0 7432 NULL nohasharray
156317 +enable_so_hdrsize_genl_family_7432 hdrsize genl_family 0 7432 &enable_so_residue_dma_tx_state_7432
156318 +enable_so_xfs_file_fsync_fndecl_7433 xfs_file_fsync fndecl 2-3 7433 NULL
156319 +enable_so_iio_device_add_event_fndecl_7439 iio_device_add_event fndecl 0 7439 NULL
156320 +enable_so_data_len_sk_buff_7447 data_len sk_buff 0 7447 NULL
156321 +enable_so_shdma_prep_memcpy_fndecl_7451 shdma_prep_memcpy fndecl 4-3 7451 NULL nohasharray
156322 +enable_so_stat_st_vardecl_drv_c_7451 stat_st vardecl_drv.c 0 7451 &enable_so_shdma_prep_memcpy_fndecl_7451
156323 +enable_so_drVBMSt_hfs_mdb_7456 drVBMSt hfs_mdb 0 7456 NULL
156324 +enable_so_size_vmci_handle_arr_7457 size vmci_handle_arr 0 7457 NULL
156325 +enable_so_len_sk_buff_7460 len sk_buff 0 7460 NULL
156326 +enable_so_hpfs_alloc_sector_fndecl_7462 hpfs_alloc_sector fndecl 0-4-3-2 7462 NULL
156327 +enable_so_t_blocknr_journal_block_tag_s_7464 t_blocknr journal_block_tag_s 0 7464 NULL
156328 +enable_so_num_present_cpu_lpfc_sli4_hba_7465 num_present_cpu lpfc_sli4_hba 0 7465 NULL nohasharray
156329 +enable_so_cmdline_store_fndecl_7465 cmdline_store fndecl 4 7465 &enable_so_num_present_cpu_lpfc_sli4_hba_7465
156330 +enable_so_Length__SECURITY_BUFFER_7467 Length _SECURITY_BUFFER 0 7467 NULL
156331 +enable_so_buffer_dma_ehci_qtd_7468 buffer_dma ehci_qtd 0 7468 NULL nohasharray
156332 +enable_so_minors_gigaset_driver_7468 minors gigaset_driver 0 7468 &enable_so_buffer_dma_ehci_qtd_7468
156333 +enable_so_block_to_sectors_fndecl_7472 block_to_sectors fndecl 0-2 7472 NULL
156334 +enable_so_devmem_is_allowed_fndecl_7475 devmem_is_allowed fndecl 1 7475 NULL
156335 +enable_so_status_c67x00_urb_priv_7480 status c67x00_urb_priv 0 7480 NULL
156336 +enable_so_rxrpc_server_keyring_fndecl_7484 rxrpc_server_keyring fndecl 3 7484 NULL
156337 +enable_so_f_width_fimc_frame_7488 f_width fimc_frame 0 7488 NULL nohasharray
156338 +enable_so_req_capsule_get_size_fndecl_7488 req_capsule_get_size fndecl 0 7488 &enable_so_f_width_fimc_frame_7488
156339 +enable_so_s_log_block_size_ext2_super_block_7490 s_log_block_size ext2_super_block 0 7490 NULL
156340 +enable_so_cookie_rds_atomic_args_7495 cookie rds_atomic_args 0 7495 NULL
156341 +enable_so_can_nice_fndecl_7498 can_nice fndecl 2 7498 NULL
156342 +enable_so_ri_lsegs_start_nilfs_recovery_info_7501 ri_lsegs_start nilfs_recovery_info 0 7501 NULL
156343 +enable_so_calculate_inocache_hashsize_fndecl_7506 calculate_inocache_hashsize fndecl 0-1 7506 NULL
156344 +enable_so_btrfs_truncate_inode_items_fndecl_7511 btrfs_truncate_inode_items fndecl 4 7511 NULL
156345 +enable_so_alloc_disk_node_fndecl_7513 alloc_disk_node fndecl 1 7513 NULL
156346 +enable_so_netlink_change_ngroups_fndecl_7514 netlink_change_ngroups fndecl 2 7514 NULL
156347 +enable_so_src_len_akcipher_request_7526 src_len akcipher_request 0 7526 NULL
156348 +enable_so_xfs_iomap_eof_want_preallocate_fndecl_7527 xfs_iomap_eof_want_preallocate fndecl 4-3 7527 NULL
156349 +enable_so_cfg_hba_queue_depth_lpfc_hba_7534 cfg_hba_queue_depth lpfc_hba 0 7534 NULL
156350 +enable_so_delta_mmap_mm_struct_7536 delta_mmap mm_struct 0 7536 NULL
156351 +enable_so_length_ndis_80211_ssid_7537 length ndis_80211_ssid 0 7537 NULL
156352 +enable_so_size_hpi_response_header_7541 size hpi_response_header 0 7541 NULL
156353 +enable_so_hd_nirqs_hpet_data_7558 hd_nirqs hpet_data 0 7558 NULL
156354 +enable_so_raid10_resize_fndecl_7562 raid10_resize fndecl 2 7562 NULL
156355 +enable_so_acpi_copy_property_array_u8_fndecl_7565 acpi_copy_property_array_u8 fndecl 0 7565 NULL nohasharray
156356 +enable_so_max_channels_snd_pcm_chmap_7565 max_channels snd_pcm_chmap 0 7565 &enable_so_acpi_copy_property_array_u8_fndecl_7565
156357 +enable_so_duplicateIXtree_fndecl_7568 duplicateIXtree fndecl 3-2 7568 NULL
156358 +enable_so_len_cpl_rx_data_7570 len cpl_rx_data 0 7570 NULL
156359 +enable_so_wqe_fcoe_cqe_7572 wqe fcoe_cqe 0 7572 NULL
156360 +enable_so_rtsx_usb_send_cmd_fndecl_7578 rtsx_usb_send_cmd fndecl 0 7578 NULL
156361 +enable_so_byte_count_mlx5_wqe_data_seg_7581 byte_count mlx5_wqe_data_seg 0 7581 NULL
156362 +enable_so_mISDN_sock_sendmsg_fndecl_7584 mISDN_sock_sendmsg fndecl 3 7584 NULL nohasharray
156363 +enable_so_tcp_manip_pkt_fndecl_7584 tcp_manip_pkt fndecl 4 7584 &enable_so_mISDN_sock_sendmsg_fndecl_7584
156364 +enable_so_tuple_size_blk_integrity_7585 tuple_size blk_integrity 0 7585 NULL
156365 +enable_so_count_ivtvfb_dma_frame_7586 count ivtvfb_dma_frame 0 7586 NULL
156366 +enable_so_length_sctp_chunkhdr_7587 length sctp_chunkhdr 0 7587 NULL
156367 +enable_so_ftdi_elan_edset_input_fndecl_7588 ftdi_elan_edset_input fndecl 0 7588 NULL
156368 +enable_so_scan_index_iio_chan_spec_7597 scan_index iio_chan_spec 0 7597 NULL
156369 +enable_so_q_blkno_xfs_dquot_7601 q_blkno xfs_dquot 0 7601 NULL
156370 +enable_so_pathmtu_sctp_transport_7603 pathmtu sctp_transport 0 7603 NULL
156371 +enable_so_fuse_listxattr_fndecl_7605 fuse_listxattr fndecl 3 7605 NULL
156372 +enable_so_pzl_urb_dequeue_fndecl_7607 pzl_urb_dequeue fndecl 3 7607 NULL
156373 +enable_so___reserved_mem_check_root_fndecl_7611 __reserved_mem_check_root fndecl 1 7611 NULL
156374 +enable_so_rcvidx_w6692B_hw_7613 rcvidx w6692B_hw 0 7613 NULL nohasharray
156375 +enable_so_wFormatVersion_ms_bootblock_header_7613 wFormatVersion ms_bootblock_header 0 7613 &enable_so_rcvidx_w6692B_hw_7613
156376 +enable_so_id_hid_report_7618 id hid_report 0 7618 NULL
156377 +enable_so_drm_fb_helper_fill_var_fndecl_7619 drm_fb_helper_fill_var fndecl 4-3 7619 NULL
156378 +enable_so_physical_scrub_page_7621 physical scrub_page 0 7621 NULL
156379 +enable_so_block_udf_vds_record_7623 block udf_vds_record 0 7623 NULL
156380 +enable_so_ocfs2_free_suballoc_bits_fndecl_7627 ocfs2_free_suballoc_bits fndecl 5 7627 NULL
156381 +enable_so_agp_allocate_memory_wrap_fndecl_7635 agp_allocate_memory_wrap fndecl 1 7635 NULL
156382 +enable_so_virt_to_scatterlist_fndecl_7637 virt_to_scatterlist fndecl 2 7637 NULL
156383 +enable_so_read_cable_det_adv76xx_chip_info_7641 read_cable_det adv76xx_chip_info 0 7641 NULL
156384 +enable_so_num_sge_ib_uverbs_recv_wr_7647 num_sge ib_uverbs_recv_wr 0 7647 NULL
156385 +enable_so_xpt_remotelen_svc_xprt_7655 xpt_remotelen svc_xprt 0 7655 NULL
156386 +enable_so_s_fsize_ufs_sb_private_info_7659 s_fsize ufs_sb_private_info 0 7659 NULL nohasharray
156387 +enable_so_maxwritelen_proc_data_7659 maxwritelen proc_data 0 7659 &enable_so_s_fsize_ufs_sb_private_info_7659
156388 +enable_so_brcmf_proto_bcdc_txdata_fndecl_7662 brcmf_proto_bcdc_txdata fndecl 3 7662 NULL
156389 +enable_so_to_perf_branch_entry_7663 to perf_branch_entry 0 7663 NULL
156390 +enable_so_compat_SyS_migrate_pages_fndecl_7673 compat_SyS_migrate_pages fndecl 2 7673 NULL
156391 +enable_so_rds_sendmsg_fndecl_7675 rds_sendmsg fndecl 3 7675 NULL
156392 +enable_so_nfsd_max_blksize_vardecl_7678 nfsd_max_blksize vardecl 0 7678 NULL
156393 +enable_so_shmem_read_mapping_page_gfp_fndecl_7681 shmem_read_mapping_page_gfp fndecl 2 7681 NULL
156394 +enable_so_UniStrnlen_fndecl_7682 UniStrnlen fndecl 0 7682 NULL
156395 +enable_so_pm860x_page_bulk_read_fndecl_7685 pm860x_page_bulk_read fndecl 3 7685 NULL nohasharray
156396 +enable_so_l1oip_socket_send_fndecl_7685 l1oip_socket_send fndecl 7 7685 &enable_so_pm860x_page_bulk_read_fndecl_7685
156397 +enable_so_ipoib_dev_init_fndecl_7687 ipoib_dev_init fndecl 3 7687 NULL nohasharray
156398 +enable_so_cfg80211_sme_get_conn_ies_fndecl_7687 cfg80211_sme_get_conn_ies fndecl 3 7687 &enable_so_ipoib_dev_init_fndecl_7687
156399 +enable_so_num_gpios_stmpe_7689 num_gpios stmpe 0 7689 NULL
156400 +enable_so_ext2_xattr_trusted_set_fndecl_7693 ext2_xattr_trusted_set fndecl 5 7693 NULL nohasharray
156401 +enable_so_di_extsize_xfs_icdinode_7693 di_extsize xfs_icdinode 0 7693 &enable_so_ext2_xattr_trusted_set_fndecl_7693
156402 +enable_so_n_tty_receive_buf_real_raw_fndecl_7696 n_tty_receive_buf_real_raw fndecl 4 7696 NULL
156403 +enable_so_record_length_cper_record_header_7697 record_length cper_record_header 0 7697 NULL
156404 +enable_so_mxt_upload_cfg_mem_fndecl_7702 mxt_upload_cfg_mem fndecl 4 7702 NULL
156405 +enable_so_hdr_len_virtio_net_hdr_7704 hdr_len virtio_net_hdr 0 7704 NULL nohasharray
156406 +enable_so_rf_cpos_ocfs2_refcount_block_7704 rf_cpos ocfs2_refcount_block 0 7704 &enable_so_hdr_len_virtio_net_hdr_7704 nohasharray
156407 +enable_so_befs_nls2utf_fndecl_7704 befs_nls2utf fndecl 3 7704 &enable_so_rf_cpos_ocfs2_refcount_block_7704
156408 +enable_so_tx_tx_start_templates_read_fndecl_7711 tx_tx_start_templates_read fndecl 3 7711 NULL nohasharray
156409 +enable_so_fd_vfid_fip_fab_desc_7711 fd_vfid fip_fab_desc 0 7711 &enable_so_tx_tx_start_templates_read_fndecl_7711
156410 +enable_so_stride_pci_sriov_7712 stride pci_sriov 0 7712 NULL
156411 +enable_so_i915_gem_get_gtt_size_fndecl_7714 i915_gem_get_gtt_size fndecl 0-2 7714 NULL
156412 +enable_so_controller_number_ms_boot_attr_info_7716 controller_number ms_boot_attr_info 0 7716 NULL
156413 +enable_so_sess_alloc_buffer_fndecl_7728 sess_alloc_buffer fndecl 2 7728 NULL
156414 +enable_so_ceph_pool_perm_check_fndecl_7729 ceph_pool_perm_check fndecl 0 7729 NULL nohasharray
156415 +enable_so_if_ipx_offset_ipx_interface_7729 if_ipx_offset ipx_interface 0 7729 &enable_so_ceph_pool_perm_check_fndecl_7729
156416 +enable_so_get_num_rx_queues_rtnl_link_ops_7733 get_num_rx_queues rtnl_link_ops 0 7733 NULL
156417 +enable_so_access_remote_vm_fndecl_7734 access_remote_vm fndecl 4-0-2 7734 NULL nohasharray
156418 +enable_so_iwl_dbgfs_txfifo_flush_write_fndecl_7734 iwl_dbgfs_txfifo_flush_write fndecl 3 7734 &enable_so_access_remote_vm_fndecl_7734
156419 +enable_so_iscsit_find_cmd_from_itt_or_dump_fndecl_7737 iscsit_find_cmd_from_itt_or_dump fndecl 3 7737 NULL nohasharray
156420 +enable_so_driver_state_read_fndecl_7737 driver_state_read fndecl 3 7737 &enable_so_iscsit_find_cmd_from_itt_or_dump_fndecl_7737
156421 +enable_so_vxres_aty128_crtc_7753 vxres aty128_crtc 0 7753 NULL
156422 +enable_so_ide_get_best_pio_mode_fndecl_7756 ide_get_best_pio_mode fndecl 0-2-3 7756 NULL nohasharray
156423 +enable_so_mlx4_enable_sriov_fndecl_7756 mlx4_enable_sriov fndecl 4-3 7756 &enable_so_ide_get_best_pio_mode_fndecl_7756 nohasharray
156424 +enable_so_max_eq_lpfc_max_cfg_param_7756 max_eq lpfc_max_cfg_param 0 7756 &enable_so_mlx4_enable_sriov_fndecl_7756
156425 +enable_so_xfs_dir2_free_read_fndecl_7759 xfs_dir2_free_read fndecl 3 7759 NULL
156426 +enable_so_ext4_fname_crypto_alloc_buffer_fndecl_7767 ext4_fname_crypto_alloc_buffer fndecl 2 7767 NULL
156427 +enable_so_pps_devt_vardecl_pps_c_7772 pps_devt vardecl_pps.c 0 7772 NULL
156428 +enable_so_ocfs2_get_suballoc_slot_bit_fndecl_7773 ocfs2_get_suballoc_slot_bit fndecl 2 7773 NULL
156429 +enable_so_t_data_nents_orig_se_cmd_7775 t_data_nents_orig se_cmd 0 7775 NULL
156430 +enable_so_split_mem_range_fndecl_7776 split_mem_range fndecl 4-3 7776 NULL
156431 +enable_so_record_one_subtree_extent_fndecl_7780 record_one_subtree_extent fndecl 3-0 7780 NULL nohasharray
156432 +enable_so_mode_size_cyttsp4_sysinfo_ofs_7780 mode_size cyttsp4_sysinfo_ofs 0 7780 &enable_so_record_one_subtree_extent_fndecl_7780
156433 +enable_so_alloc_ep_fndecl_7782 alloc_ep fndecl 1 7782 NULL
156434 +enable_so_mmu_private_affs_inode_info_7785 mmu_private affs_inode_info 0 7785 NULL nohasharray
156435 +enable_so_pkt_len_rx_desc_7785 pkt_len rx_desc 0 7785 &enable_so_mmu_private_affs_inode_info_7785
156436 +enable_so_st_do_scsi_fndecl_7789 st_do_scsi fndecl 4 7789 NULL
156437 +enable_so_qxl_framebuffer_surface_dirty_fndecl_7791 qxl_framebuffer_surface_dirty fndecl 6 7791 NULL nohasharray
156438 +enable_so_pg_read_fndecl_7791 pg_read fndecl 3 7791 &enable_so_qxl_framebuffer_surface_dirty_fndecl_7791
156439 +enable_so_inode_getblk_fndecl_7794 inode_getblk fndecl 2-0 7794 NULL
156440 +enable_so___clk_speculate_rates_fndecl_7795 __clk_speculate_rates fndecl 2 7795 NULL
156441 +enable_so_remove_advertising_fndecl_7798 remove_advertising fndecl 4 7798 NULL
156442 +enable_so_qnx4_get_block_fndecl_7810 qnx4_get_block fndecl 2 7810 NULL
156443 +enable_so_cciss_max_sectors_ctlr_info_7811 cciss_max_sectors ctlr_info 0 7811 NULL nohasharray
156444 +enable_so_len_nfs_diropargs_7811 len nfs_diropargs 0 7811 &enable_so_cciss_max_sectors_ctlr_info_7811
156445 +enable_so_plen_hci_event_hdr_7815 plen hci_event_hdr 0 7815 NULL
156446 +enable_so_mb_cache_create_fndecl_7816 mb_cache_create fndecl 2 7816 NULL
156447 +enable_so_node_ino_num_f2fs_sb_info_7818 node_ino_num f2fs_sb_info 0 7818 NULL
156448 +enable_so_length_scsi_mode_data_7819 length scsi_mode_data 0 7819 NULL
156449 +enable_so_id_avail_ipack_device_7822 id_avail ipack_device 0 7822 NULL
156450 +enable_so_n_stats_ethtool_stats_7823 n_stats ethtool_stats 0 7823 NULL
156451 +enable_so_get_pipe_fndecl_7825 get_pipe fndecl 0-2 7825 NULL
156452 +enable_so_nabs_joydev_7827 nabs joydev 0 7827 NULL
156453 +enable_so_x1_virtio_gpu_framebuffer_7830 x1 virtio_gpu_framebuffer 0 7830 NULL
156454 +enable_so_rtpref_nfs_fsinfo_7835 rtpref nfs_fsinfo 0 7835 NULL
156455 +enable_so_nonstatic_find_mem_region_fndecl_7838 nonstatic_find_mem_region fndecl 1-2 7838 NULL
156456 +enable_so_sys_truncate_fndecl_7846 sys_truncate fndecl 2 7846 NULL
156457 +enable_so_bestcount_xfs_dir2_leaf_tail_7847 bestcount xfs_dir2_leaf_tail 0 7847 NULL
156458 +enable_so_sl_datalen_nfsd4_slot_7859 sl_datalen nfsd4_slot 0 7859 NULL
156459 +enable_so_wqe_shift_mlx4_ib_wq_7860 wqe_shift mlx4_ib_wq 0 7860 NULL
156460 +enable_so_offset_iscsi_data_7862 offset iscsi_data 0 7862 NULL
156461 +enable_so_n_vifs_ath10k_mac_change_chanctx_arg_7864 n_vifs ath10k_mac_change_chanctx_arg 0 7864 NULL
156462 +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
156463 +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
156464 +enable_so_cyapa_i2c_read_fndecl_7870 cyapa_i2c_read fndecl 3 7870 NULL
156465 +enable_so_image_sectors_s3fwrn5_fw_image_7871 image_sectors s3fwrn5_fw_image 0 7871 NULL
156466 +enable_so_mapped_vram_mb862xxfb_par_7872 mapped_vram mb862xxfb_par 0 7872 NULL
156467 +enable_so_iscsi_tcp_dgst_header_fndecl_7878 iscsi_tcp_dgst_header fndecl 3 7878 NULL
156468 +enable_so_used_snd_ctl_elem_list_7883 used snd_ctl_elem_list 0 7883 NULL
156469 +enable_so_rxstatus_epic_rx_desc_7884 rxstatus epic_rx_desc 0 7884 NULL nohasharray
156470 +enable_so_sd_read_data_fndecl_7884 sd_read_data fndecl 3-0 7884 &enable_so_rxstatus_epic_rx_desc_7884 nohasharray
156471 +enable_so_freecom_readdata_fndecl_7884 freecom_readdata fndecl 3-4 7884 &enable_so_sd_read_data_fndecl_7884
156472 +enable_so_ath6kl_wmi_send_mgmt_cmd_fndecl_7888 ath6kl_wmi_send_mgmt_cmd fndecl 7-2 7888 NULL
156473 +enable_so_i2400m_unknown_barker_fndecl_7903 i2400m_unknown_barker fndecl 3 7903 NULL
156474 +enable_so_vdi_size_vxfs_inode_info_7906 vdi_size vxfs_inode_info 0 7906 NULL nohasharray
156475 +enable_so_ath6kl_wmi_info_req_cmd_fndecl_7906 ath6kl_wmi_info_req_cmd fndecl 2 7906 &enable_so_vdi_size_vxfs_inode_info_7906
156476 +enable_so_mode_id_vbe_mode_ib_7913 mode_id vbe_mode_ib 0 7913 NULL
156477 +enable_so_depth_s5p_jpeg_fmt_7914 depth s5p_jpeg_fmt 0 7914 NULL
156478 +enable_so_rx_ring_size_vmxnet3_adapter_7917 rx_ring_size vmxnet3_adapter 0 7917 NULL
156479 +enable_so_ccw_bmove_fndecl_7918 ccw_bmove fndecl 5-7-3-8-6-4 7918 NULL nohasharray
156480 +enable_so_remote_addr_ib_rdma_wr_7918 remote_addr ib_rdma_wr 0 7918 &enable_so_ccw_bmove_fndecl_7918
156481 +enable_so_uvesafb_setpalette_fndecl_7922 uvesafb_setpalette fndecl 2 7922 NULL
156482 +enable_so_raid5_size_fndecl_7933 raid5_size fndecl 0-3-2 7933 NULL
156483 +enable_so_jp_journal_size_journal_params_7943 jp_journal_size journal_params 0 7943 NULL
156484 +enable_so_psb_unlocked_ioctl_fndecl_7949 psb_unlocked_ioctl fndecl 2 7949 NULL
156485 +enable_so_num_sdma_hfi1_devdata_7951 num_sdma hfi1_devdata 0 7951 NULL
156486 +enable_so_jme_change_mtu_fndecl_7964 jme_change_mtu fndecl 2 7964 NULL nohasharray
156487 +enable_so_sd_start_fndecl_7964 sd_start fndecl 0 7964 &enable_so_jme_change_mtu_fndecl_7964
156488 +enable_so_squashfs_read_table_fndecl_7970 squashfs_read_table fndecl 3 7970 NULL nohasharray
156489 +enable_so_ticket_len_rxk5_key_7970 ticket_len rxk5_key 0 7970 &enable_so_squashfs_read_table_fndecl_7970
156490 +enable_so__sp2d_alloc_fndecl_7971 _sp2d_alloc fndecl 1-3-2 7971 NULL
156491 +enable_so_peb_count_ubi_device_7987 peb_count ubi_device 0 7987 NULL
156492 +enable_so_initrd_end_vardecl_7989 initrd_end vardecl 0 7989 NULL
156493 +enable_so_ip_append_data_fndecl_7997 ip_append_data fndecl 6-5 7997 NULL
156494 +enable_so_encode_opaque_fixed_fndecl_8013 encode_opaque_fixed fndecl 3 8013 NULL nohasharray
156495 +enable_so_ocfs2_read_quota_phys_block_fndecl_8013 ocfs2_read_quota_phys_block fndecl 2 8013 &enable_so_encode_opaque_fixed_fndecl_8013 nohasharray
156496 +enable_so_find_resource_fndecl_8013 find_resource fndecl 3 8013 &enable_so_ocfs2_read_quota_phys_block_fndecl_8013
156497 +enable_so_max_mtu_mlx4_en_priv_8015 max_mtu mlx4_en_priv 0 8015 NULL
156498 +enable_so_svcxdr_dupstr_fndecl_8016 svcxdr_dupstr fndecl 3 8016 NULL
156499 +enable_so_keyctl_instantiate_key_iov_fndecl_8026 keyctl_instantiate_key_iov fndecl 3 8026 NULL
156500 +enable_so_period_size_snd_pcm_runtime_8027 period_size snd_pcm_runtime 0 8027 NULL
156501 +enable_so_length_e1000_rx_desc_8032 length e1000_rx_desc 0 8032 NULL
156502 +enable_so_mcast_mtu_ipoib_dev_priv_8033 mcast_mtu ipoib_dev_priv 0 8033 NULL
156503 +enable_so_gtt_base_align_radeon_mc_8035 gtt_base_align radeon_mc 0 8035 NULL
156504 +enable_so_vbi_width_au0828_dev_8038 vbi_width au0828_dev 0 8038 NULL
156505 +enable_so_size_nvkm_fifo_chan_8052 size nvkm_fifo_chan 0 8052 NULL
156506 +enable_so_ieee80211_tdls_build_mgmt_packet_data_fndecl_8053 ieee80211_tdls_build_mgmt_packet_data fndecl 8 8053 NULL
156507 +enable_so_cb710_check_event_fndecl_8054 cb710_check_event fndecl 0 8054 NULL nohasharray
156508 +enable_so_memmap_entry_callback_fndecl_8054 memmap_entry_callback fndecl 1-2 8054 &enable_so_cb710_check_event_fndecl_8054
156509 +enable_so_pd_handles_sz_MPT3SAS_ADAPTER_8057 pd_handles_sz MPT3SAS_ADAPTER 0 8057 NULL
156510 +enable_so_mmio_megabytes_vmbus_channel_offer_8058 mmio_megabytes vmbus_channel_offer 0 8058 NULL nohasharray
156511 +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
156512 +enable_so_ceph_read_dir_fndecl_8062 ceph_read_dir fndecl 3 8062 NULL
156513 +enable_so_btrfs_unlink_inode_fndecl_8064 btrfs_unlink_inode fndecl 6 8064 NULL
156514 +enable_so_vlan_dev_vlan_proto_fndecl_8077 vlan_dev_vlan_proto fndecl 0 8077 NULL
156515 +enable_so_savage_map_video_fndecl_8078 savage_map_video fndecl 2 8078 NULL
156516 +enable_so_encode_string_fndecl_8079 encode_string fndecl 2 8079 NULL
156517 +enable_so_copy_counters_to_user_fndecl_8080 copy_counters_to_user fndecl 5 8080 NULL
156518 +enable_so_out_pipe_usbtest_dev_8085 out_pipe usbtest_dev 0 8085 NULL
156519 +enable_so_length_packet_8086 length packet 0 8086 NULL
156520 +enable_so_lpt_lnum_bits_ubifs_info_8094 lpt_lnum_bits ubifs_info 0 8094 NULL
156521 +enable_so_ali1535_smba_vardecl_i2c_ali1535_c_8095 ali1535_smba vardecl_i2c-ali1535.c 0 8095 NULL
156522 +enable_so_sd_complete_frame_fndecl_8096 sd_complete_frame fndecl 3 8096 NULL
156523 +enable_so_dvb_dvr_read_fndecl_8098 dvb_dvr_read fndecl 3 8098 NULL nohasharray
156524 +enable_so_batchcount_kmem_cache_8098 batchcount kmem_cache 0 8098 &enable_so_dvb_dvr_read_fndecl_8098
156525 +enable_so_sddr55_read_data_fndecl_8099 sddr55_read_data fndecl 4-3 8099 NULL nohasharray
156526 +enable_so_error_num_frame_cts_nul_flid_read_fndecl_8099 error_num_frame_cts_nul_flid_read fndecl 3 8099 &enable_so_sddr55_read_data_fndecl_8099
156527 +enable_so_rx_cmp_meta_data_rx_cmp_ext_8103 rx_cmp_meta_data rx_cmp_ext 0 8103 NULL nohasharray
156528 +enable_so_simple_transaction_read_fndecl_8103 simple_transaction_read fndecl 3 8103 &enable_so_rx_cmp_meta_data_rx_cmp_ext_8103
156529 +enable_so_ext4_end_io_dio_fndecl_8107 ext4_end_io_dio fndecl 2-3 8107 NULL
156530 +enable_so_tgt_count_blogic_adapter_8109 tgt_count blogic_adapter 0 8109 NULL
156531 +enable_so_acpi_ut_get_resource_header_length_fndecl_8110 acpi_ut_get_resource_header_length fndecl 0 8110 NULL
156532 +enable_so_speed_channel_8113 speed channel 0 8113 NULL
156533 +enable_so_up_dnode_8116 up dnode 0 8116 NULL
156534 +enable_so___copy_user_nocache_fndecl_8122 __copy_user_nocache fndecl 0 8122 NULL
156535 +enable_so_m_pblk_f2fs_map_blocks_8129 m_pblk f2fs_map_blocks 0 8129 NULL
156536 +enable_so_jffs2_scan_inode_node_fndecl_8132 jffs2_scan_inode_node fndecl 4 8132 NULL
156537 +enable_so_cfg_size_pci_dev_8134 cfg_size pci_dev 0 8134 NULL
156538 +enable_so_wpa_ie_len_libipw_network_8137 wpa_ie_len libipw_network 0 8137 NULL nohasharray
156539 +enable_so_write_mem_fndecl_8137 write_mem fndecl 3 8137 &enable_so_wpa_ie_len_libipw_network_8137 nohasharray
156540 +enable_so_ucNumDPMLevels__ATOM_PPLIB_STATE_V2_8137 ucNumDPMLevels _ATOM_PPLIB_STATE_V2 0 8137 &enable_so_write_mem_fndecl_8137
156541 +enable_so_max_xmit_dlength_iscsi_conn_8139 max_xmit_dlength iscsi_conn 0 8139 NULL nohasharray
156542 +enable_so_nct6683_find_fndecl_8139 nct6683_find fndecl 0 8139 &enable_so_max_xmit_dlength_iscsi_conn_8139
156543 +enable_so_iic_tpm_write_long_fndecl_8143 iic_tpm_write_long fndecl 3 8143 NULL
156544 +enable_so_hfsplus_add_extent_fndecl_8150 hfsplus_add_extent fndecl 4-3 8150 NULL nohasharray
156545 +enable_so_entry_length_fndecl_8150 entry_length fndecl 0 8150 &enable_so_hfsplus_add_extent_fndecl_8150
156546 +enable_so_sys_preadv_fndecl_8159 sys_preadv fndecl 3 8159 NULL
156547 +enable_so_hr_start_block_o2hb_region_8162 hr_start_block o2hb_region 0 8162 NULL
156548 +enable_so_num_custom_params_pinctrl_desc_8163 num_custom_params pinctrl_desc 0 8163 NULL nohasharray
156549 +enable_so_fuse_direct_IO_fndecl_8163 fuse_direct_IO fndecl 3 8163 &enable_so_num_custom_params_pinctrl_desc_8163
156550 +enable_so_devnum_denali_nand_info_8164 devnum denali_nand_info 0 8164 NULL nohasharray
156551 +enable_so_read_len_ddb_flashio_8164 read_len ddb_flashio 0 8164 &enable_so_devnum_denali_nand_info_8164
156552 +enable_so_ubifs_scanned_corruption_fndecl_8170 ubifs_scanned_corruption fndecl 3 8170 NULL
156553 +enable_so_tx_ring_count_igb_adapter_8171 tx_ring_count igb_adapter 0 8171 NULL
156554 +enable_so_jumpshot_write_data_fndecl_8172 jumpshot_write_data fndecl 4 8172 NULL
156555 +enable_so_blksz_mmc_data_8174 blksz mmc_data 0 8174 NULL
156556 +enable_so_avail_ubifs_wbuf_8176 avail ubifs_wbuf 0 8176 NULL
156557 +enable_so_pdu_read_fndecl_8183 pdu_read fndecl 3 8183 NULL
156558 +enable_so_nsftids_tid_info_8187 nsftids tid_info 0 8187 NULL
156559 +enable_so_brcms_c_get_header_len_fndecl_8189 brcms_c_get_header_len fndecl 0 8189 NULL
156560 +enable_so_resource_alignment_fndecl_8199 resource_alignment fndecl 0 8199 NULL
156561 +enable_so_tx_ring_count_fm10k_intfc_8210 tx_ring_count fm10k_intfc 0 8210 NULL
156562 +enable_so_mmap_size_kioctx_8213 mmap_size kioctx 0 8213 NULL
156563 +enable_so_clear_extent_bit_fndecl_8215 clear_extent_bit fndecl 2-3 8215 NULL nohasharray
156564 +enable_so_pci_scan_bus_fndecl_8215 pci_scan_bus fndecl 1 8215 &enable_so_clear_extent_bit_fndecl_8215
156565 +enable_so_be_f_offset_pnfs_block_extent_8222 be_f_offset pnfs_block_extent 0 8222 NULL
156566 +enable_so_eeprom_size_iwl_base_params_8231 eeprom_size iwl_base_params 0 8231 NULL
156567 +enable_so_ir_freecount_xfs_inobt_rec_incore_8237 ir_freecount xfs_inobt_rec_incore 0 8237 NULL
156568 +enable_so_SYSC_llistxattr_fndecl_8238 SYSC_llistxattr fndecl 3 8238 NULL
156569 +enable_so_dump_data_bytes_fndecl_8240 dump_data_bytes fndecl 3 8240 NULL
156570 +enable_so_ocfs2_remove_extent_fndecl_8243 ocfs2_remove_extent fndecl 4-3 8243 NULL
156571 +enable_so_stk_read_fndecl_8245 stk_read fndecl 3 8245 NULL
156572 +enable_so_num_tasks_per_conn_iscsi_kwqe_init1_8249 num_tasks_per_conn iscsi_kwqe_init1 0 8249 NULL
156573 +enable_so_sys_sched_setaffinity_fndecl_8253 sys_sched_setaffinity fndecl 2 8253 NULL
156574 +enable_so_vmw_cursor_update_dmabuf_fndecl_8254 vmw_cursor_update_dmabuf fndecl 4-3 8254 NULL
156575 +enable_so_default_erasesize_fndecl_8255 default_erasesize fndecl 0 8255 NULL
156576 +enable_so_num_alloc_vsi_i40e_pf_8259 num_alloc_vsi i40e_pf 0 8259 NULL
156577 +enable_so_datablkcnt_capi_register_params_8263 datablkcnt capi_register_params 0 8263 NULL
156578 +enable_so_cow_file_range_inline_fndecl_8264 cow_file_range_inline fndecl 4-3 8264 NULL
156579 +enable_so_datablklen_capi_register_params_8275 datablklen capi_register_params 0 8275 NULL nohasharray
156580 +enable_so_proc_scsi_devinfo_write_fndecl_8275 proc_scsi_devinfo_write fndecl 3 8275 &enable_so_datablklen_capi_register_params_8275
156581 +enable_so_cdc_ncm_check_tx_max_fndecl_8278 cdc_ncm_check_tx_max fndecl 0-2 8278 NULL
156582 +enable_so_msg_len_rndis_message_8281 msg_len rndis_message 0 8281 NULL
156583 +enable_so___sg_free_table_fndecl_8283 __sg_free_table fndecl 2 8283 NULL
156584 +enable_so_tail_len_cfg80211_beacon_data_8293 tail_len cfg80211_beacon_data 0 8293 NULL
156585 +enable_so_ns_blocks_per_segment_the_nilfs_8295 ns_blocks_per_segment the_nilfs 0 8295 NULL
156586 +enable_so_c_data_len_pvr2_ioread_8300 c_data_len pvr2_ioread 0 8300 NULL
156587 +enable_so_ath6kl_fwlog_read_fndecl_8310 ath6kl_fwlog_read fndecl 3 8310 NULL
156588 +enable_so_ipath_rcvtidcnt_ipath_devdata_8311 ipath_rcvtidcnt ipath_devdata 0 8311 NULL
156589 +enable_so_wil_read_file_recovery_fndecl_8315 wil_read_file_recovery fndecl 3 8315 NULL
156590 +enable_so_max_data_size_ircomm_tty_cb_8316 max_data_size ircomm_tty_cb 0 8316 NULL nohasharray
156591 +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
156592 +enable_so_offset12_cm_rep_msg_8317 offset12 cm_rep_msg 0 8317 NULL
156593 +enable_so_depth_vim2m_fmt_8319 depth vim2m_fmt 0 8319 NULL nohasharray
156594 +enable_so_msg_len_drm_dp_sideband_msg_hdr_8319 msg_len drm_dp_sideband_msg_hdr 0 8319 &enable_so_depth_vim2m_fmt_8319
156595 +enable_so_sv_max_payload_svc_serv_8322 sv_max_payload svc_serv 0 8322 NULL
156596 +enable_so_vga_video_font_height_vardecl_vgacon_c_8324 vga_video_font_height vardecl_vgacon.c 0 8324 NULL
156597 +enable_so_i2c_wr_fndecl_8325 i2c_wr fndecl 4 8325 NULL
156598 +enable_so_xfs_bmap_longest_free_extent_fndecl_8327 xfs_bmap_longest_free_extent fndecl 2 8327 NULL
156599 +enable_so_vhci_urb_dequeue_fndecl_8333 vhci_urb_dequeue fndecl 3 8333 NULL
156600 +enable_so_sec_per_lun_nvm_dev_8335 sec_per_lun nvm_dev 0 8335 NULL
156601 +enable_so_early_init_dt_check_for_initrd_fndecl_8345 early_init_dt_check_for_initrd fndecl 1 8345 NULL
156602 +enable_so_disks_stripe_head_8349 disks stripe_head 0 8349 NULL
156603 +enable_so_ch_do_scsi_fndecl_8353 ch_do_scsi fndecl 5 8353 NULL nohasharray
156604 +enable_so_req_pay_size_qlcnic_bc_trans_8353 req_pay_size qlcnic_bc_trans 0 8353 &enable_so_ch_do_scsi_fndecl_8353
156605 +enable_so_rx_size_i2400mu_8374 rx_size i2400mu 0 8374 NULL nohasharray
156606 +enable_so_venus_link_fndecl_8374 venus_link fndecl 5 8374 &enable_so_rx_size_i2400mu_8374
156607 +enable_so_height_deinterlace_q_data_8376 height deinterlace_q_data 0 8376 NULL nohasharray
156608 +enable_so_afs_lookup_filldir_fndecl_8376 afs_lookup_filldir fndecl 5 8376 &enable_so_height_deinterlace_q_data_8376 nohasharray
156609 +enable_so_sctp_ssn_next_fndecl_8376 sctp_ssn_next fndecl 0 8376 &enable_so_afs_lookup_filldir_fndecl_8376
156610 +enable_so_do_writepages_fndecl_8382 do_writepages fndecl 0 8382 NULL
156611 +enable_so_current_read_offset_scif_rb_8387 current_read_offset scif_rb 0 8387 NULL
156612 +enable_so_riva_get_cmap_len_fndecl_8393 riva_get_cmap_len fndecl 0 8393 NULL
156613 +enable_so_sent_iscsi_r2t_info_8394 sent iscsi_r2t_info 0 8394 NULL nohasharray
156614 +enable_so_depth_tc_sfq_qopt_v1_8394 depth tc_sfq_qopt_v1 0 8394 &enable_so_sent_iscsi_r2t_info_8394
156615 +enable_so_ceph_pagelist_append_fndecl_8397 ceph_pagelist_append fndecl 3 8397 NULL
156616 +enable_so_wusb_ccm_mac_fndecl_8404 wusb_ccm_mac fndecl 7 8404 NULL
156617 +enable_so_del_ptr_fndecl_8406 del_ptr fndecl 4 8406 NULL
156618 +enable_so_pkt_size_data_cmd_8407 pkt_size data_cmd 0 8407 NULL
156619 +enable_so_length_ipw_tx_packet_8408 length ipw_tx_packet 0 8408 NULL
156620 +enable_so_bitrate_snd_at73c213_8409 bitrate snd_at73c213 0 8409 NULL
156621 +enable_so_wNdpOutPayloadRemainder_usb_cdc_ncm_ntb_parameters_8415 wNdpOutPayloadRemainder usb_cdc_ncm_ntb_parameters 0 8415 NULL
156622 +enable_so_ring_blocks_vxge_hw_ring_config_8417 ring_blocks vxge_hw_ring_config 0 8417 NULL nohasharray
156623 +enable_so_lbs_lowrssi_read_fndecl_8417 lbs_lowrssi_read fndecl 3 8417 &enable_so_ring_blocks_vxge_hw_ring_config_8417
156624 +enable_so_rtsx_pci_dma_transfer_fndecl_8439 rtsx_pci_dma_transfer fndecl 0 8439 NULL
156625 +enable_so_block_dm_buffer_8440 block dm_buffer 0 8440 NULL
156626 +enable_so_offset_l2tp_session_8443 offset l2tp_session 0 8443 NULL
156627 +enable_so_bfad_iocmd_flash_read_part_fndecl_8446 bfad_iocmd_flash_read_part fndecl 0 8446 NULL nohasharray
156628 +enable_so_frame_size_tlan_list_8446 frame_size tlan_list 0 8446 &enable_so_bfad_iocmd_flash_read_part_fndecl_8446
156629 +enable_so_ql_process_mac_split_rx_intr_fndecl_8452 ql_process_mac_split_rx_intr fndecl 4 8452 NULL nohasharray
156630 +enable_so_len_scifioctl_msg_8452 len scifioctl_msg 0 8452 &enable_so_ql_process_mac_split_rx_intr_fndecl_8452
156631 +enable_so_SyS_lsetxattr_fndecl_8453 SyS_lsetxattr fndecl 4 8453 NULL
156632 +enable_so_parport_pc_probe_port_fndecl_8454 parport_pc_probe_port fndecl 1 8454 NULL
156633 +enable_so_extra_bytes_asc_q_done_info_8460 extra_bytes asc_q_done_info 0 8460 NULL
156634 +enable_so_sg_off_isert_data_buf_8466 sg_off isert_data_buf 0 8466 NULL
156635 +enable_so_free_enic_rfs_flw_tbl_8469 free enic_rfs_flw_tbl 0 8469 NULL
156636 +enable_so_drm_gem_create_mmap_offset_size_fndecl_8471 drm_gem_create_mmap_offset_size fndecl 2 8471 NULL nohasharray
156637 +enable_so_shmem_truncate_range_fndecl_8471 shmem_truncate_range fndecl 2-3 8471 &enable_so_drm_gem_create_mmap_offset_size_fndecl_8471
156638 +enable_so_lbytes_tree_balance_8472 lbytes tree_balance 0 8472 NULL
156639 +enable_so_bpp_plane0_bdisp_fmt_8473 bpp_plane0 bdisp_fmt 0 8473 NULL
156640 +enable_so_snd_seq_device_new_fndecl_8474 snd_seq_device_new fndecl 4 8474 NULL
156641 +enable_so_screen_size_fb_info_8480 screen_size fb_info 0 8480 NULL
156642 +enable_so_length_btrfs_bio_stripe_8481 length btrfs_bio_stripe 0 8481 NULL
156643 +enable_so_i915_gem_get_gtt_alignment_fndecl_8484 i915_gem_get_gtt_alignment fndecl 2 8484 NULL
156644 +enable_so_max_feed_count_dvb_usb_fe_adapter_8487 max_feed_count dvb_usb_fe_adapter 0 8487 NULL
156645 +enable_so_ecryptfs_send_message_locked_fndecl_8490 ecryptfs_send_message_locked fndecl 2 8490 NULL
156646 +enable_so_get_count_order_fndecl_8491 get_count_order fndecl 0 8491 NULL
156647 +enable_so_data_size_ipmi_smi_msg_8493 data_size ipmi_smi_msg 0 8493 NULL
156648 +enable_so_data_write_fndecl_8494 data_write fndecl 3 8494 NULL
156649 +enable_so_isr_rx_procs_read_fndecl_8495 isr_rx_procs_read fndecl 3 8495 NULL
156650 +enable_so_vmw_gmr2_bind_fndecl_8503 vmw_gmr2_bind fndecl 3 8503 NULL
156651 +enable_so_id_da903x_subdev_info_8507 id da903x_subdev_info 0 8507 NULL
156652 +enable_so_usblp_cache_device_id_string_fndecl_8509 usblp_cache_device_id_string fndecl 0 8509 NULL
156653 +enable_so_dy_fb_copyarea_8510 dy fb_copyarea 0 8510 NULL
156654 +enable_so_num_processors_vardecl_8512 num_processors vardecl 0 8512 NULL
156655 +enable_so_st_nci_hci_dm_direct_load_fndecl_8517 st_nci_hci_dm_direct_load fndecl 3 8517 NULL
156656 +enable_so_follows_u132_command_8527 follows u132_command 0 8527 NULL
156657 +enable_so_alloc_blksz_shift_hfsplus_sb_info_8530 alloc_blksz_shift hfsplus_sb_info 0 8530 NULL
156658 +enable_so_strnlen_user_fndecl_8532 strnlen_user fndecl 0-2 8532 NULL
156659 +enable_so_rtsx_usb_write_register_fndecl_8533 rtsx_usb_write_register fndecl 0 8533 NULL
156660 +enable_so_r5l_recovery_flush_one_stripe_fndecl_8538 r5l_recovery_flush_one_stripe fndecl 3 8538 NULL
156661 +enable_so_overlay_out_left_vivid_dev_8540 overlay_out_left vivid_dev 0 8540 NULL
156662 +enable_so_logfs_seek_data_fndecl_8541 logfs_seek_data fndecl 2-0 8541 NULL nohasharray
156663 +enable_so_limit_kmem_cache_8541 limit kmem_cache 0 8541 &enable_so_logfs_seek_data_fndecl_8541
156664 +enable_so_num_gfx_vgastate_8542 num_gfx vgastate 0 8542 NULL
156665 +enable_so_fuse_dir_fsync_fndecl_8543 fuse_dir_fsync fndecl 2-3 8543 NULL
156666 +enable_so_sysminor_aoedev_8549 sysminor aoedev 0 8549 NULL
156667 +enable_so_vfront_porch_videomode_8550 vfront_porch videomode 0 8550 NULL nohasharray
156668 +enable_so_memsize_vardecl_tridentfb_c_8550 memsize vardecl_tridentfb.c 0 8550 &enable_so_vfront_porch_videomode_8550
156669 +enable_so_mailbox_add_intel_sst_drv_8554 mailbox_add intel_sst_drv 0 8554 NULL
156670 +enable_so_caps_size_skl_specific_cfg_8559 caps_size skl_specific_cfg 0 8559 NULL
156671 +enable_so_SyS_ppoll_fndecl_8572 SyS_ppoll fndecl 2 8572 NULL
156672 +enable_so_clone_bio_fndecl_8573 clone_bio fndecl 3-4 8573 NULL
156673 +enable_so_len_vmxnet3_rx_buf_info_8575 len vmxnet3_rx_buf_info 0 8575 NULL nohasharray
156674 +enable_so_mlx5_ib_update_mtt_fndecl_8575 mlx5_ib_update_mtt fndecl 3-2 8575 &enable_so_len_vmxnet3_rx_buf_info_8575
156675 +enable_so_num_module_param_attrs_8584 num module_param_attrs 0 8584 NULL
156676 +enable_so_max_request_size_brcmf_sdio_dev_8586 max_request_size brcmf_sdio_dev 0 8586 NULL
156677 +enable_so_ddb_output_write_fndecl_8589 ddb_output_write fndecl 3-0 8589 NULL
156678 +enable_so_height_efifb_dmi_info_8596 height efifb_dmi_info 0 8596 NULL nohasharray
156679 +enable_so_gss_unwrap_kerberos_v2_fndecl_8596 gss_unwrap_kerberos_v2 fndecl 2 8596 &enable_so_height_efifb_dmi_info_8596
156680 +enable_so_iwl_dbgfs_disable_ht40_write_fndecl_8599 iwl_dbgfs_disable_ht40_write fndecl 3 8599 NULL
156681 +enable_so_drm_mode_crtc_set_gamma_size_fndecl_8602 drm_mode_crtc_set_gamma_size fndecl 2 8602 NULL
156682 +enable_so_dvb_ringbuffer_free_fndecl_8603 dvb_ringbuffer_free fndecl 0 8603 NULL
156683 +enable_so_size_hw_bank_8604 size hw_bank 0 8604 NULL
156684 +enable_so_uar_scratch_entry_sz_mthca_dev_lim_8606 uar_scratch_entry_sz mthca_dev_lim 0 8606 NULL
156685 +enable_so_seq_buf_commit_fndecl_8608 seq_buf_commit fndecl 2 8608 NULL
156686 +enable_so_irq_spi_device_8610 irq spi_device 0 8610 NULL
156687 +enable_so_kmem_alloc_fndecl_8611 kmem_alloc fndecl 1 8611 NULL
156688 +enable_so_rbd_img_obj_request_submit_fndecl_8613 rbd_img_obj_request_submit fndecl 0 8613 NULL
156689 +enable_so_transfer_size_fndecl_8623 transfer_size fndecl 0-1-2-3 8623 NULL
156690 +enable_so_xattr_permission_fndecl_8624 xattr_permission fndecl 0 8624 NULL
156691 +enable_so_new_dir_fndecl_8636 new_dir fndecl 3 8636 NULL
156692 +enable_so_num_tx_rings_p_up_mlx4_en_priv_8640 num_tx_rings_p_up mlx4_en_priv 0 8640 NULL
156693 +enable_so_in_height_sh_vou_geometry_8644 in_height sh_vou_geometry 0 8644 NULL
156694 +enable_so_block_size_cache_args_8648 block_size cache_args 0 8648 NULL
156695 +enable_so_e_value_offs_ext4_xattr_entry_8650 e_value_offs ext4_xattr_entry 0 8650 NULL
156696 +enable_so_xfs_bmap_worst_indlen_fndecl_8651 xfs_bmap_worst_indlen fndecl 0 8651 NULL
156697 +enable_so_mr_len_rpcrdma_mr_seg_8652 mr_len rpcrdma_mr_seg 0 8652 NULL nohasharray
156698 +enable_so_truncate_size_ceph_mds_reply_inode_8652 truncate_size ceph_mds_reply_inode 0 8652 &enable_so_mr_len_rpcrdma_mr_seg_8652
156699 +enable_so_copy_from_user_toio_fndecl_8653 copy_from_user_toio fndecl 3 8653 NULL
156700 +enable_so_vmcore_size_vardecl_vmcore_c_8660 vmcore_size vardecl_vmcore.c 0 8660 NULL
156701 +enable_so_read_mem_fndecl_8661 read_mem fndecl 3 8661 NULL
156702 +enable_so_SYSC_sethostname_fndecl_8663 SYSC_sethostname fndecl 2 8663 NULL
156703 +enable_so_vbi_end_bttv_8666 vbi_end bttv 0 8666 NULL
156704 +enable_so_ext4_zero_range_fndecl_8667 ext4_zero_range fndecl 2-3 8667 NULL
156705 +enable_so_reserve_pfn_range_fndecl_8670 reserve_pfn_range fndecl 1-2 8670 NULL
156706 +enable_so_vb2_write_fndecl_8671 vb2_write fndecl 3 8671 NULL
156707 +enable_so_len_ipath_diag_xpkt_8673 len ipath_diag_xpkt 0 8673 NULL
156708 +enable_so_write_data_done_iscsi_cmd_8676 write_data_done iscsi_cmd 0 8676 NULL
156709 +enable_so_aml_offset_acpi_rsconvert_info_8678 aml_offset acpi_rsconvert_info 0 8678 NULL
156710 +enable_so_status_whc_urb_8685 status whc_urb 0 8685 NULL
156711 +enable_so_end_data_prctl_mm_map_8687 end_data prctl_mm_map 0 8687 NULL
156712 +enable_so_mtd_add_partition_fndecl_8688 mtd_add_partition fndecl 3 8688 NULL
156713 +enable_so_env_start_mm_struct_8690 env_start mm_struct 0 8690 NULL nohasharray
156714 +enable_so_bfad_iocmd_qos_set_bw_fndecl_8690 bfad_iocmd_qos_set_bw fndecl 0 8690 &enable_so_env_start_mm_struct_8690
156715 +enable_so_mpeglines_vardecl_cx231xx_417_c_8691 mpeglines vardecl_cx231xx-417.c 0 8691 NULL nohasharray
156716 +enable_so_b_out_mon_reader_bin_8691 b_out mon_reader_bin 0 8691 &enable_so_mpeglines_vardecl_cx231xx_417_c_8691
156717 +enable_so_blk_mq_update_nr_requests_fndecl_8694 blk_mq_update_nr_requests fndecl 2 8694 NULL
156718 +enable_so_bfad_iocmd_cee_attr_fndecl_8696 bfad_iocmd_cee_attr fndecl 0 8696 NULL nohasharray
156719 +enable_so_NumEraseUnits_erase_unit_header_t_8696 NumEraseUnits erase_unit_header_t 0 8696 &enable_so_bfad_iocmd_cee_attr_fndecl_8696
156720 +enable_so_ebcnt_vardecl_readtest_c_8699 ebcnt vardecl_readtest.c 0 8699 NULL
156721 +enable_so_iblock_execute_rw_fndecl_8701 iblock_execute_rw fndecl 3 8701 NULL
156722 +enable_so_ilo_read_fndecl_8704 ilo_read fndecl 3 8704 NULL
156723 +enable_so_hpfs_prefetch_sectors_fndecl_8708 hpfs_prefetch_sectors fndecl 2 8708 NULL
156724 +enable_so_rx_buf_sz_sh_eth_private_8709 rx_buf_sz sh_eth_private 0 8709 NULL nohasharray
156725 +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
156726 +enable_so_out_ptr_mdc800_data_8709 out_ptr mdc800_data 0 8709 &enable_so_max_unmap_blocks_scsi_disk_8709
156727 +enable_so_key_len_host_if_wep_attr_8712 key_len host_if_wep_attr 0 8712 NULL
156728 +enable_so_ieee80211_send_auth_fndecl_8716 ieee80211_send_auth fndecl 6 8716 NULL
156729 +enable_so_inode_number_squashfs_dir_header_8723 inode_number squashfs_dir_header 0 8723 NULL
156730 +enable_so_iram_end_intel_sst_drv_8725 iram_end intel_sst_drv 0 8725 NULL
156731 +enable_so_qsfp_read_fndecl_8729 qsfp_read fndecl 2-4-0 8729 NULL
156732 +enable_so_read_hdlc_status_fritz_adapter_8730 read_hdlc_status fritz_adapter 0 8730 NULL nohasharray
156733 +enable_so_disconnect_fndecl_8730 disconnect fndecl 4 8730 &enable_so_read_hdlc_status_fritz_adapter_8730 nohasharray
156734 +enable_so_ip_set_elem_len_fndecl_8730 ip_set_elem_len fndecl 0-4-3 8730 &enable_so_disconnect_fndecl_8730
156735 +enable_so_ext_param_page_length_nand_onfi_params_8736 ext_param_page_length nand_onfi_params 0 8736 NULL
156736 +enable_so___blockdev_direct_IO_fndecl_8738 __blockdev_direct_IO fndecl 5-0 8738 NULL nohasharray
156737 +enable_so_ipgre_header_fndecl_8738 ipgre_header fndecl 3 8738 &enable_so___blockdev_direct_IO_fndecl_8738
156738 +enable_so_size_kmem_cache_8740 size kmem_cache 0 8740 NULL
156739 +enable_so_osc_iocontrol_fndecl_8742 osc_iocontrol fndecl 3 8742 NULL
156740 +enable_so_fd_execute_unmap_fndecl_8745 fd_execute_unmap fndecl 3-2 8745 NULL
156741 +enable_so_perf_ustack_task_size_fndecl_8746 perf_ustack_task_size fndecl 0 8746 NULL
156742 +enable_so_bits_per_pixel_smiapp_pll_8747 bits_per_pixel smiapp_pll 0 8747 NULL
156743 +enable_so_max_epid_fjes_hw_8751 max_epid fjes_hw 0 8751 NULL
156744 +enable_so_btrfs_double_extent_lock_fndecl_8752 btrfs_double_extent_lock fndecl 5-4-2 8752 NULL
156745 +enable_so__netlbl_catmap_getnode_fndecl_8754 _netlbl_catmap_getnode fndecl 2 8754 NULL
156746 +enable_so_my_skb_align_fndecl_8755 my_skb_align fndecl 2 8755 NULL
156747 +enable_so_snd_pcm_hw_param_set_fndecl_8761 snd_pcm_hw_param_set fndecl 4 8761 NULL
156748 +enable_so_length_acpi_nfit_system_address_8762 length acpi_nfit_system_address 0 8762 NULL
156749 +enable_so_max_swap_info_struct_8767 max swap_info_struct 0 8767 NULL
156750 +enable_so_read_file_beacon_fndecl_8768 read_file_beacon fndecl 3 8768 NULL
156751 +enable_so_amdtp_stream_set_parameters_fndecl_8769 amdtp_stream_set_parameters fndecl 3 8769 NULL
156752 +enable_so_gfs2_adjust_quota_fndecl_8777 gfs2_adjust_quota fndecl 2 8777 NULL
156753 +enable_so_data_dma_powermate_device_8783 data_dma powermate_device 0 8783 NULL
156754 +enable_so_rx_tr_cfv_info_8786 rx_tr cfv_info 0 8786 NULL nohasharray
156755 +enable_so___pg_advance_sg_page_iter_8786 __pg_advance sg_page_iter 0 8786 &enable_so_rx_tr_cfv_info_8786
156756 +enable_so_nfs_setup_write_request_fndecl_8793 nfs_setup_write_request fndecl 3-4 8793 NULL
156757 +enable_so_lcd_vblank_len_atyfb_par_8796 lcd_vblank_len atyfb_par 0 8796 NULL
156758 +enable_so_logic_start_scrub_parity_8798 logic_start scrub_parity 0 8798 NULL
156759 +enable_so_write_ext_msg_fndecl_8804 write_ext_msg fndecl 3 8804 NULL
156760 +enable_so_amdgpu_gart_size_vardecl_8805 amdgpu_gart_size vardecl 0 8805 NULL
156761 +enable_so_info3_wmi_data_hdr_8808 info3 wmi_data_hdr 0 8808 NULL
156762 +enable_so_cfg80211_roamed_fndecl_8811 cfg80211_roamed fndecl 5-7 8811 NULL
156763 +enable_so_nilfs_cpfile_get_checkpoint_fndecl_8812 nilfs_cpfile_get_checkpoint fndecl 2 8812 NULL
156764 +enable_so_ieee80211_hdrlen_fndecl_8814 ieee80211_hdrlen fndecl 0 8814 NULL nohasharray
156765 +enable_so_batadv_tt_global_add_fndecl_8814 batadv_tt_global_add fndecl 4 8814 &enable_so_ieee80211_hdrlen_fndecl_8814
156766 +enable_so_dma_alloc_pages_fndecl_8819 dma_alloc_pages fndecl 3 8819 NULL nohasharray
156767 +enable_so_sys_set_mempolicy_fndecl_8819 sys_set_mempolicy fndecl 3 8819 &enable_so_dma_alloc_pages_fndecl_8819
156768 +enable_so_dma_buf_mmap_fndecl_8825 dma_buf_mmap fndecl 3 8825 NULL
156769 +enable_so_buflow_ring_desc_ex_8829 buflow ring_desc_ex 0 8829 NULL
156770 +enable_so_vsync_len_videomode_8830 vsync_len videomode 0 8830 NULL
156771 +enable_so_wm5110_set_fll_fndecl_8841 wm5110_set_fll fndecl 5 8841 NULL
156772 +enable_so_iscsi_tcp_segment_recv_fndecl_8845 iscsi_tcp_segment_recv fndecl 4-0 8845 NULL
156773 +enable_so_max_packet_size_ftdi_private_8847 max_packet_size ftdi_private 0 8847 NULL
156774 +enable_so_ibufsize_sisusb_usb_data_8851 ibufsize sisusb_usb_data 0 8851 NULL
156775 +enable_so_blkno2_xfs_da_args_8858 blkno2 xfs_da_args 0 8858 NULL
156776 +enable_so_pci_xr17v35x_setup_fndecl_8861 pci_xr17v35x_setup fndecl 4 8861 NULL nohasharray
156777 +enable_so_generic_readlink_fndecl_8861 generic_readlink fndecl 3 8861 &enable_so_pci_xr17v35x_setup_fndecl_8861
156778 +enable_so_alloc_extent_buffer_fndecl_8862 alloc_extent_buffer fndecl 2 8862 NULL
156779 +enable_so_dm_set_target_max_io_len_fndecl_8872 dm_set_target_max_io_len fndecl 2 8872 NULL
156780 +enable_so___memblock_free_early_fndecl_8876 __memblock_free_early fndecl 2-1 8876 NULL
156781 +enable_so_jfs_readpages_fndecl_8877 jfs_readpages fndecl 4 8877 NULL
156782 +enable_so_root_entry_uctp_fndecl_8878 root_entry_uctp fndecl 0 8878 NULL
156783 +enable_so_icsk_ext_hdr_len_inet_connection_sock_8885 icsk_ext_hdr_len inet_connection_sock 0 8885 NULL
156784 +enable_so_playback_frlog_rme32_8891 playback_frlog rme32 0 8891 NULL
156785 +enable_so_via_lock_rate_fndecl_8895 via_lock_rate fndecl 2 8895 NULL nohasharray
156786 +enable_so_sl_tclass_flowlabel_mthca_av_8895 sl_tclass_flowlabel mthca_av 0 8895 &enable_so_via_lock_rate_fndecl_8895
156787 +enable_so_batps_powernow_k8_data_8899 batps powernow_k8_data 0 8899 NULL
156788 +enable_so_byt_serial_setup_fndecl_8903 byt_serial_setup fndecl 4 8903 NULL nohasharray
156789 +enable_so_pages_squashfs_cache_8903 pages squashfs_cache 0 8903 &enable_so_byt_serial_setup_fndecl_8903
156790 +enable_so_a_data_exec_8906 a_data exec 0 8906 NULL nohasharray
156791 +enable_so_bits_per_pixel_fb_var_screeninfo_8906 bits_per_pixel fb_var_screeninfo 0 8906 &enable_so_a_data_exec_8906
156792 +enable_so_fll_factors_fndecl_8907 fll_factors fndecl 2-3 8907 NULL
156793 +enable_so__xfs_buf_get_pages_fndecl_8920 _xfs_buf_get_pages fndecl 2 8920 NULL
156794 +enable_so_data_size_mdp_superblock_1_8925 data_size mdp_superblock_1 0 8925 NULL nohasharray
156795 +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
156796 +enable_so_fip_flags_fip_header_8926 fip_flags fip_header 0 8926 NULL
156797 +enable_so_nbufread_gspca_dev_8934 nbufread gspca_dev 0 8934 NULL
156798 +enable_so_begin_cmd_fndecl_8941 begin_cmd fndecl 0 8941 NULL
156799 +enable_so_i40e_pci_sriov_enable_fndecl_8949 i40e_pci_sriov_enable fndecl 2 8949 NULL nohasharray
156800 +enable_so_mon_mgmt_tx_fndecl_8949 mon_mgmt_tx fndecl 3 8949 &enable_so_i40e_pci_sriov_enable_fndecl_8949
156801 +enable_so_tree_root_btrfs_root_backup_8950 tree_root btrfs_root_backup 0 8950 NULL
156802 +enable_so_get_arg_page_fndecl_8953 get_arg_page fndecl 2 8953 NULL
156803 +enable_so_rx_metadata_offset_brcmf_msgbuf_8954 rx_metadata_offset brcmf_msgbuf 0 8954 NULL
156804 +enable_so_videobuf_mmap_setup_fndecl_8956 videobuf_mmap_setup fndecl 3 8956 NULL nohasharray
156805 +enable_so_nfrags_pktgen_dev_8956 nfrags pktgen_dev 0 8956 &enable_so_videobuf_mmap_setup_fndecl_8956 nohasharray
156806 +enable_so_stats_read_ul_fndecl_8956 stats_read_ul fndecl 3 8956 &enable_so_nfrags_pktgen_dev_8956
156807 +enable_so_pkt_align_fndecl_8963 pkt_align fndecl 2-3 8963 NULL
156808 +enable_so_fromlen_nfs_symlinkargs_8967 fromlen nfs_symlinkargs 0 8967 NULL
156809 +enable_so_wm8776_field_set_fndecl_8970 wm8776_field_set fndecl 2 8970 NULL
156810 +enable_so_area_length_dmi_system_event_log_8974 area_length dmi_system_event_log 0 8974 NULL
156811 +enable_so_n_bch_control_8979 n bch_control 0 8979 NULL
156812 +enable_so_batadv_bla_rx_fndecl_8980 batadv_bla_rx fndecl 3 8980 NULL
156813 +enable_so_fanout_ubifs_info_8981 fanout ubifs_info 0 8981 NULL
156814 +enable_so_ocfs2_xattr_find_entry_fndecl_8983 ocfs2_xattr_find_entry fndecl 0 8983 NULL
156815 +enable_so_link_duplex_netxen_adapter_8988 link_duplex netxen_adapter 0 8988 NULL
156816 +enable_so_block_begin_dm_cell_key_8992 block_begin dm_cell_key 0 8992 NULL
156817 +enable_so_plip_hard_header_cache_fndecl_8995 plip_hard_header_cache fndecl 3 8995 NULL
156818 +enable_so_vmalloc_user_fndecl_8999 vmalloc_user fndecl 1 8999 NULL
156819 +enable_so_SyS_select_fndecl_9004 SyS_select fndecl 1 9004 NULL
156820 +enable_so_scatterwalk_map_and_copy_fndecl_9005 scatterwalk_map_and_copy fndecl 3 9005 NULL
156821 +enable_so_ib_process_mad_fndecl_9006 ib_process_mad fndecl 3 9006 NULL
156822 +enable_so_vb2_dvb_register_frontend_fndecl_9015 vb2_dvb_register_frontend fndecl 0 9015 NULL
156823 +enable_so_add_dts_thermal_zone_fndecl_9019 add_dts_thermal_zone fndecl 4 9019 NULL
156824 +enable_so_pcan_usb_decode_data_fndecl_9023 pcan_usb_decode_data fndecl 2 9023 NULL nohasharray
156825 +enable_so_bfad_iocmd_diag_dport_show_fndecl_9023 bfad_iocmd_diag_dport_show fndecl 0 9023 &enable_so_pcan_usb_decode_data_fndecl_9023
156826 +enable_so_xen_del_extra_mem_fndecl_9024 xen_del_extra_mem fndecl 2-1 9024 NULL nohasharray
156827 +enable_so_cdrom_read_cd_fndecl_9024 cdrom_read_cd fndecl 5-4 9024 &enable_so_xen_del_extra_mem_fndecl_9024
156828 +enable_so_report_desc_size_mousevsc_dev_9027 report_desc_size mousevsc_dev 0 9027 NULL
156829 +enable_so_nextread_isowbuf_t_9028 nextread isowbuf_t 0 9028 NULL nohasharray
156830 +enable_so_offset_gro_remcsum_9028 offset gro_remcsum 0 9028 &enable_so_nextread_isowbuf_t_9028
156831 +enable_so_t4_alloc_mem_fndecl_9029 t4_alloc_mem fndecl 1 9029 NULL
156832 +enable_so_wDescriptorLength_hid_class_descriptor_9030 wDescriptorLength hid_class_descriptor 0 9030 NULL nohasharray
156833 +enable_so_id_port_9030 id port 0 9030 &enable_so_wDescriptorLength_hid_class_descriptor_9030
156834 +enable_so_svc_create_pooled_fndecl_9043 svc_create_pooled fndecl 2 9043 NULL
156835 +enable_so_raid_disks_geom_9044 raid_disks geom 0 9044 NULL
156836 +enable_so_ath6kl_wmi_delete_pstream_cmd_fndecl_9048 ath6kl_wmi_delete_pstream_cmd fndecl 2 9048 NULL
156837 +enable_so__drbd_bm_find_next_fndecl_9063 _drbd_bm_find_next fndecl 2-0 9063 NULL nohasharray
156838 +enable_so_keys_bset_9063 keys bset 0 9063 &enable_so__drbd_bm_find_next_fndecl_9063 nohasharray
156839 +enable_so_tx_buf_sz_iadev_priv_9063 tx_buf_sz iadev_priv 0 9063 &enable_so_keys_bset_9063 nohasharray
156840 +enable_so_send_mpa_reply_fndecl_9063 send_mpa_reply fndecl 3 9063 &enable_so_tx_buf_sz_iadev_priv_9063 nohasharray
156841 +enable_so_error_rx_cmplt_db_overflow_cnt_read_fndecl_9063 error_rx_cmplt_db_overflow_cnt_read fndecl 3 9063 &enable_so_send_mpa_reply_fndecl_9063
156842 +enable_so_logical_maximum_hid_field_9067 logical_maximum hid_field 0 9067 NULL
156843 +enable_so_buflen_compat_xfs_fsop_attrlist_handlereq_9071 buflen compat_xfs_fsop_attrlist_handlereq 0 9071 NULL
156844 +enable_so_current_sg_offset_msb_data_9075 current_sg_offset msb_data 0 9075 NULL
156845 +enable_so_nilfs_dat_read_fndecl_9076 nilfs_dat_read fndecl 2 9076 NULL nohasharray
156846 +enable_so_uniqueid_cifsInodeInfo_9076 uniqueid cifsInodeInfo 0 9076 &enable_so_nilfs_dat_read_fndecl_9076
156847 +enable_so_advertised_mtu_tipc_link_9077 advertised_mtu tipc_link 0 9077 NULL
156848 +enable_so_out_int_pipe_usbtest_dev_9078 out_int_pipe usbtest_dev 0 9078 NULL nohasharray
156849 +enable_so_bfad_iocmd_fcpim_throttle_query_fndecl_9078 bfad_iocmd_fcpim_throttle_query fndecl 0 9078 &enable_so_out_int_pipe_usbtest_dev_9078 nohasharray
156850 +enable_so_dispatch_ioctl_fndecl_9078 dispatch_ioctl fndecl 2 9078 &enable_so_bfad_iocmd_fcpim_throttle_query_fndecl_9078
156851 +enable_so_count_afs_call_9081 count afs_call 0 9081 NULL nohasharray
156852 +enable_so_sel_read_initcon_fndecl_9081 sel_read_initcon fndecl 3 9081 &enable_so_count_afs_call_9081
156853 +enable_so_start_brk_mm_struct_9085 start_brk mm_struct 0 9085 NULL
156854 +enable_so_inet_create_fndecl_9087 inet_create fndecl 3 9087 NULL nohasharray
156855 +enable_so_optlen_rdma_ucm_set_option_9087 optlen rdma_ucm_set_option 0 9087 &enable_so_inet_create_fndecl_9087
156856 +enable_so_event_count_Fsm_9088 event_count Fsm 0 9088 NULL
156857 +enable_so_width_fb_fillrect_9090 width fb_fillrect 0 9090 NULL nohasharray
156858 +enable_so_sizeimage_bdisp_frame_9090 sizeimage bdisp_frame 0 9090 &enable_so_width_fb_fillrect_9090
156859 +enable_so_xfs_iext_add_indirect_multi_fndecl_9091 xfs_iext_add_indirect_multi fndecl 3-4 9091 NULL
156860 +enable_so_vmci_qp_alloc_fndecl_9094 vmci_qp_alloc fndecl 5-3 9094 NULL
156861 +enable_so_limit_parsed_partitions_9099 limit parsed_partitions 0 9099 NULL
156862 +enable_so_logical_id_i40e_aqc_list_capabilities_element_resp_9102 logical_id i40e_aqc_list_capabilities_element_resp 0 9102 NULL
156863 +enable_so_keylen_ieee80211_key_conf_9103 keylen ieee80211_key_conf 0 9103 NULL
156864 +enable_so_fragment_size_cfrfml_9106 fragment_size cfrfml 0 9106 NULL nohasharray
156865 +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
156866 +enable_so_x38_channel_num_vardecl_x38_edac_c_9109 x38_channel_num vardecl_x38_edac.c 0 9109 NULL
156867 +enable_so_pvr2_stream_set_buffer_count_fndecl_9116 pvr2_stream_set_buffer_count fndecl 2 9116 NULL
156868 +enable_so_qla4_82xx_pci_mem_write_2M_fndecl_9117 qla4_82xx_pci_mem_write_2M fndecl 2 9117 NULL
156869 +enable_so_numEntries__ATOM_PPLIB_VCE_Clock_Voltage_Limit_Table_9118 numEntries _ATOM_PPLIB_VCE_Clock_Voltage_Limit_Table 0 9118 NULL
156870 +enable_so_break_ksm_fndecl_9124 break_ksm fndecl 2 9124 NULL
156871 +enable_so_skl_substream_alloc_pages_fndecl_9125 skl_substream_alloc_pages fndecl 3 9125 NULL
156872 +enable_so_reiserfs_direct_IO_fndecl_9131 reiserfs_direct_IO fndecl 3 9131 NULL
156873 +enable_so_neigh_priv_len_net_device_9133 neigh_priv_len net_device 0 9133 NULL
156874 +enable_so_rx_buf_sz_vardecl_r8169_c_9136 rx_buf_sz vardecl_r8169.c 0 9136 NULL
156875 +enable_so_read_buffer_length_adu_device_9140 read_buffer_length adu_device 0 9140 NULL
156876 +enable_so_cdce925_pll_round_rate_fndecl_9145 cdce925_pll_round_rate fndecl 2 9145 NULL
156877 +enable_so_size_ip6t_replace_9148 size ip6t_replace 0 9148 NULL
156878 +enable_so_p1_max_aptina_pll_limits_9149 p1_max aptina_pll_limits 0 9149 NULL
156879 +enable_so_cifs_uncached_read_into_pages_fndecl_9150 cifs_uncached_read_into_pages fndecl 3 9150 NULL
156880 +enable_so_ext_capab_len_station_parameters_9152 ext_capab_len station_parameters 0 9152 NULL
156881 +enable_so_fill_readbuf_fndecl_9155 fill_readbuf fndecl 3 9155 NULL
156882 +enable_so_depth_saa7134_format_9167 depth saa7134_format 0 9167 NULL nohasharray
156883 +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
156884 +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
156885 +enable_so_ib_qib_max_sges_vardecl_9168 ib_qib_max_sges vardecl 0 9168 NULL
156886 +enable_so_channels_ua101_stream_9173 channels ua101_stream 0 9173 NULL
156887 +enable_so_alloc_queue_pairs_i40e_vsi_9174 alloc_queue_pairs i40e_vsi 0 9174 NULL
156888 +enable_so_offset_hv_multipage_buffer_9175 offset hv_multipage_buffer 0 9175 NULL
156889 +enable_so___ext4_handle_dirty_super_fndecl_9177 __ext4_handle_dirty_super fndecl 0 9177 NULL nohasharray
156890 +enable_so_hid_input_report_fndecl_9177 hid_input_report fndecl 4 9177 &enable_so___ext4_handle_dirty_super_fndecl_9177
156891 +enable_so_b_size_buffer_head_9178 b_size buffer_head 0 9178 NULL
156892 +enable_so_max_vfio_pci_fill_info_9182 max vfio_pci_fill_info 0 9182 NULL
156893 +enable_so_form_cm_frame_fndecl_9184 form_cm_frame fndecl 4-6 9184 NULL
156894 +enable_so_device_sis_chipset_9193 device sis_chipset 0 9193 NULL
156895 +enable_so_stb0899_write_regs_fndecl_9197 stb0899_write_regs fndecl 4 9197 NULL
156896 +enable_so_buflen_xfs_fsop_attrlist_handlereq_9199 buflen xfs_fsop_attrlist_handlereq 0 9199 NULL
156897 +enable_so_efx_rx_packet_fndecl_9200 efx_rx_packet fndecl 4-3 9200 NULL
156898 +enable_so_byte_per_page_nand_onfi_params_9202 byte_per_page nand_onfi_params 0 9202 NULL
156899 +enable_so_tx_max_datagrams_cdc_ncm_ctx_9206 tx_max_datagrams cdc_ncm_ctx 0 9206 NULL nohasharray
156900 +enable_so_proto_tun_pi_9206 proto tun_pi 0 9206 &enable_so_tx_max_datagrams_cdc_ncm_ctx_9206 nohasharray
156901 +enable_so_max_pages_ib_fmr_attr_9206 max_pages ib_fmr_attr 0 9206 &enable_so_proto_tun_pi_9206
156902 +enable_so_hw_token_ehci_qh_hw_9208 hw_token ehci_qh_hw 0 9208 NULL
156903 +enable_so_file_id_object_info_9209 file_id object_info 0 9209 NULL
156904 +enable_so_mesh_rx_path_sel_frame_fndecl_9210 mesh_rx_path_sel_frame fndecl 3 9210 NULL
156905 +enable_so_sae_data_len_cfg80211_auth_request_9212 sae_data_len cfg80211_auth_request 0 9212 NULL
156906 +enable_so_ide_driver_proc_write_fndecl_9214 ide_driver_proc_write fndecl 3 9214 NULL
156907 +enable_so_zram_meta_alloc_fndecl_9221 zram_meta_alloc fndecl 2 9221 NULL
156908 +enable_so_pcicfg_size_sst_pdata_9222 pcicfg_size sst_pdata 0 9222 NULL
156909 +enable_so_ext4_create_inline_data_fndecl_9231 ext4_create_inline_data fndecl 3 9231 NULL
156910 +enable_so_supported_rates_len_station_parameters_9235 supported_rates_len station_parameters 0 9235 NULL
156911 +enable_so_i2400mu_rx_size_grow_fndecl_9246 i2400mu_rx_size_grow fndecl 0 9246 NULL
156912 +enable_so_vram_start_vml_info_9251 vram_start vml_info 0 9251 NULL nohasharray
156913 +enable_so_phys_pmd_init_fndecl_9251 phys_pmd_init fndecl 0-2-3 9251 &enable_so_vram_start_vml_info_9251
156914 +enable_so_n_sbufs_stk_camera_9256 n_sbufs stk_camera 0 9256 NULL
156915 +enable_so_sk_priority_sock_9258 sk_priority sock 0 9258 NULL
156916 +enable_so_alloc_order_ioatdma_chan_9262 alloc_order ioatdma_chan 0 9262 NULL
156917 +enable_so_buffer_size_snd_rawmidi_runtime_9267 buffer_size snd_rawmidi_runtime 0 9267 NULL
156918 +enable_so_acpi_ns_build_normalized_path_fndecl_9269 acpi_ns_build_normalized_path fndecl 0 9269 NULL
156919 +enable_so_wl1251_sdio_write_fndecl_9274 wl1251_sdio_write fndecl 4 9274 NULL
156920 +enable_so_ResponseDataLength__MSG_SMP_PASSTHROUGH_REPLY_9278 ResponseDataLength _MSG_SMP_PASSTHROUGH_REPLY 0 9278 NULL
156921 +enable_so_nr_pages_start_info_9283 nr_pages start_info 0 9283 NULL nohasharray
156922 +enable_so_regmap_encx24j600_write_fndecl_9283 regmap_encx24j600_write fndecl 3 9283 &enable_so_nr_pages_start_info_9283
156923 +enable_so_lbs_failcount_read_fndecl_9284 lbs_failcount_read fndecl 3 9284 NULL
156924 +enable_so_offset_ivtv_dma_page_info_9286 offset ivtv_dma_page_info 0 9286 NULL
156925 +enable_so_rx_cmd_ep_usb_card_rec_9290 rx_cmd_ep usb_card_rec 0 9290 NULL nohasharray
156926 +enable_so_buffer_bytes_st_buffer_9290 buffer_bytes st_buffer 0 9290 &enable_so_rx_cmd_ep_usb_card_rec_9290 nohasharray
156927 +enable_so_get_ramsize_brcmf_bus_ops_9290 get_ramsize brcmf_bus_ops 0 9290 &enable_so_buffer_bytes_st_buffer_9290 nohasharray
156928 +enable_so_format_reserved_ms_boot_header_9290 format_reserved ms_boot_header 0 9290 &enable_so_get_ramsize_brcmf_bus_ops_9290
156929 +enable_so_cxd2820r_wr_regs_fndecl_9307 cxd2820r_wr_regs fndecl 4 9307 NULL
156930 +enable_so_sys_splice_fndecl_9308 sys_splice fndecl 5 9308 NULL
156931 +enable_so_sctp_setsockopt_context_fndecl_9312 sctp_setsockopt_context fndecl 3 9312 NULL
156932 +enable_so_fcoe_conn_context_id_fcoe_kcqe_9316 fcoe_conn_context_id fcoe_kcqe 0 9316 NULL
156933 +enable_so_find_mergeable_fndecl_9318 find_mergeable fndecl 2 9318 NULL
156934 +enable_so_size_dt_struct_fdt_header_9319 size_dt_struct fdt_header 0 9319 NULL
156935 +enable_so_in_packet_size_pcm_runtime_9321 in_packet_size pcm_runtime 0 9321 NULL
156936 +enable_so_pages_in_io_dio_submit_9326 pages_in_io dio_submit 0 9326 NULL
156937 +enable_so__wm8994_set_fll_fndecl_9332 _wm8994_set_fll fndecl 4-5 9332 NULL nohasharray
156938 +enable_so_sys_mincore_fndecl_9332 sys_mincore fndecl 1-2 9332 &enable_so__wm8994_set_fll_fndecl_9332
156939 +enable_so_rbuf_fill_count_slgt_info_9335 rbuf_fill_count slgt_info 0 9335 NULL
156940 +enable_so_ttm_bo_ioremap_fndecl_9337 ttm_bo_ioremap fndecl 3-2 9337 NULL
156941 +enable_so_htree_dirblock_to_tree_fndecl_9339 htree_dirblock_to_tree fndecl 3 9339 NULL
156942 +enable_so_di_size_xfs_icdinode_9350 di_size xfs_icdinode 0 9350 NULL
156943 +enable_so_tse_init_rx_buffer_fndecl_9354 tse_init_rx_buffer fndecl 3 9354 NULL
156944 +enable_so_offset_ore_io_state_9357 offset ore_io_state 0 9357 NULL
156945 +enable_so_stv6110x_write_regs_fndecl_9359 stv6110x_write_regs fndecl 4 9359 NULL
156946 +enable_so_qib_qp_rcv_fndecl_9365 qib_qp_rcv fndecl 5 9365 NULL
156947 +enable_so_compat_sys_get_mempolicy_fndecl_9366 compat_sys_get_mempolicy fndecl 4-3 9366 NULL
156948 +enable_so_mt2060_writeregs_fndecl_9371 mt2060_writeregs fndecl 3 9371 NULL nohasharray
156949 +enable_so_depth_read_fndecl_9371 depth_read fndecl 3 9371 &enable_so_mt2060_writeregs_fndecl_9371
156950 +enable_so_le_adv_data_len_hci_conn_9377 le_adv_data_len hci_conn 0 9377 NULL
156951 +enable_so_mss_clamp_tcp_options_received_9378 mss_clamp tcp_options_received 0 9378 NULL
156952 +enable_so_fix_priv_head_fndecl_9385 fix_priv_head fndecl 2 9385 NULL
156953 +enable_so_nr_uart_driver_9391 nr uart_driver 0 9391 NULL
156954 +enable_so_dr_pre_altera_jtag_9393 dr_pre altera_jtag 0 9393 NULL
156955 +enable_so_ubifs_tnc_add_nm_fndecl_9397 ubifs_tnc_add_nm fndecl 4-5 9397 NULL
156956 +enable_so_sr_bg_blkno_ocfs2_suballoc_result_9401 sr_bg_blkno ocfs2_suballoc_result 0 9401 NULL
156957 +enable_so_caif_seqpkt_recvmsg_fndecl_9402 caif_seqpkt_recvmsg fndecl 3 9402 NULL
156958 +enable_so_exclude_mem_range_fndecl_9404 exclude_mem_range fndecl 2-3 9404 NULL
156959 +enable_so_blk_queue_physical_block_size_fndecl_9410 blk_queue_physical_block_size fndecl 2 9410 NULL
156960 +enable_so_data_start_dm_ioctl_9412 data_start dm_ioctl 0 9412 NULL
156961 +enable_so_return_size_drm_amdgpu_info_9414 return_size drm_amdgpu_info 0 9414 NULL
156962 +enable_so_acpi_ex_system_memory_space_handler_fndecl_9419 acpi_ex_system_memory_space_handler fndecl 2 9419 NULL
156963 +enable_so_r592_read_fifo_pio_fndecl_9421 r592_read_fifo_pio fndecl 3 9421 NULL nohasharray
156964 +enable_so_rocker_dma_ring_create_fndecl_9421 rocker_dma_ring_create fndecl 3 9421 &enable_so_r592_read_fifo_pio_fndecl_9421
156965 +enable_so_dlen_garp_attr_9422 dlen garp_attr 0 9422 NULL
156966 +enable_so_dgap_config_get_num_prts_fndecl_9435 dgap_config_get_num_prts fndecl 0 9435 NULL
156967 +enable_so_ext4_restore_inline_data_fndecl_9436 ext4_restore_inline_data fndecl 5 9436 NULL
156968 +enable_so_height_stk1160_9446 height stk1160 0 9446 NULL
156969 +enable_so_evdev_get_mask_fndecl_9457 evdev_get_mask fndecl 4 9457 NULL
156970 +enable_so_mtdchar_readoob_fndecl_9459 mtdchar_readoob fndecl 4-3 9459 NULL
156971 +enable_so_si21_writeregs_fndecl_9460 si21_writeregs fndecl 4 9460 NULL
156972 +enable_so_async_wrap_skb_fndecl_9465 async_wrap_skb fndecl 0 9465 NULL
156973 +enable_so_kvm_mmu_page_fault_fndecl_9470 kvm_mmu_page_fault fndecl 2 9470 NULL
156974 +enable_so_vmf_insert_pfn_pmd_fndecl_9481 vmf_insert_pfn_pmd fndecl 4 9481 NULL
156975 +enable_so_height_cobalt_stream_9490 height cobalt_stream 0 9490 NULL nohasharray
156976 +enable_so_lbs_debugfs_read_fndecl_9490 lbs_debugfs_read fndecl 3 9490 &enable_so_height_cobalt_stream_9490
156977 +enable_so_qnx6_long_match_fndecl_9502 qnx6_long_match fndecl 0 9502 NULL
156978 +enable_so_bpp_mcam_format_struct_9503 bpp mcam_format_struct 0 9503 NULL
156979 +enable_so_maxdev_vardecl_slcan_c_9507 maxdev vardecl_slcan.c 0 9507 NULL
156980 +enable_so_zlib_updatewindow_fndecl_9508 zlib_updatewindow fndecl 2 9508 NULL
156981 +enable_so_fillonedir_fndecl_9511 fillonedir fndecl 3 9511 NULL
156982 +enable_so_s_clustersize_bits_ocfs2_super_block_9516 s_clustersize_bits ocfs2_super_block 0 9516 NULL nohasharray
156983 +enable_so_zero_disk_area_fndecl_9516 zero_disk_area fndecl 2 9516 &enable_so_s_clustersize_bits_ocfs2_super_block_9516
156984 +enable_so_pcm512x_find_sck_fndecl_9522 pcm512x_find_sck fndecl 0 9522 NULL
156985 +enable_so_kdb_max_commands_vardecl_kdb_main_c_9529 kdb_max_commands vardecl_kdb_main.c 0 9529 NULL
156986 +enable_so_cap_width_usbtv_norm_params_9538 cap_width usbtv_norm_params 0 9538 NULL
156987 +enable_so_nilfs_mdt_forget_block_fndecl_9543 nilfs_mdt_forget_block fndecl 2 9543 NULL
156988 +enable_so_smk_read_doi_fndecl_9550 smk_read_doi fndecl 3 9550 NULL
156989 +enable_so___bio_alloc_fndecl_9552 __bio_alloc fndecl 2-3 9552 NULL
156990 +enable_so_rt2x00queue_insert_l2pad_fndecl_9553 rt2x00queue_insert_l2pad fndecl 2 9553 NULL
156991 +enable_so_display_byte_stride_vivid_dev_9554 display_byte_stride vivid_dev 0 9554 NULL
156992 +enable_so_rx_skb_reserve_vardecl_he_c_9559 rx_skb_reserve vardecl_he.c 0 9559 NULL
156993 +enable_so_glocont_endpoint_keyspan_device_details_9560 glocont_endpoint keyspan_device_details 0 9560 NULL
156994 +enable_so_vlan_alloc_res_fndecl_9561 vlan_alloc_res fndecl 7 9561 NULL
156995 +enable_so_p9_client_statsize_fndecl_9568 p9_client_statsize fndecl 0 9568 NULL
156996 +enable_so_page_order_cas_9572 page_order cas 0 9572 NULL nohasharray
156997 +enable_so_pwr_sleep_time_avg_read_fndecl_9572 pwr_sleep_time_avg_read fndecl 3 9572 &enable_so_page_order_cas_9572
156998 +enable_so_width_drm_mode_create_dumb_9575 width drm_mode_create_dumb 0 9575 NULL
156999 +enable_so_sctp_setsockopt_auth_chunk_fndecl_9576 sctp_setsockopt_auth_chunk fndecl 3 9576 NULL
157000 +enable_so_mpage_add_bh_to_extent_fndecl_9577 mpage_add_bh_to_extent fndecl 2 9577 NULL
157001 +enable_so_mode_buf_len_udl_device_9578 mode_buf_len udl_device 0 9578 NULL nohasharray
157002 +enable_so_of_gpio_named_count_fndecl_9578 of_gpio_named_count fndecl 0 9578 &enable_so_mode_buf_len_udl_device_9578
157003 +enable_so_cfg80211_rx_mgmt_fndecl_9583 cfg80211_rx_mgmt fndecl 5 9583 NULL
157004 +enable_so_crtc_vblank_start_drm_display_mode_9587 crtc_vblank_start drm_display_mode 0 9587 NULL
157005 +enable_so_dn_create_fndecl_9590 dn_create fndecl 3 9590 NULL
157006 +enable_so_wm5102_set_fll_fndecl_9596 wm5102_set_fll fndecl 5 9596 NULL nohasharray
157007 +enable_so_get_kobj_path_length_fndecl_9596 get_kobj_path_length fndecl 0 9596 &enable_so_wm5102_set_fll_fndecl_9596
157008 +enable_so_torch_max_current_as3645a_platform_data_9597 torch_max_current as3645a_platform_data 0 9597 NULL
157009 +enable_so_writerids_fndecl_9601 writerids fndecl 0 9601 NULL
157010 +enable_so_ileb_len_ubifs_info_9607 ileb_len ubifs_info 0 9607 NULL
157011 +enable_so_skd_max_pass_thru_vardecl_skd_main_c_9608 skd_max_pass_thru vardecl_skd_main.c 0 9608 NULL
157012 +enable_so_acpi_copy_property_array_u16_fndecl_9618 acpi_copy_property_array_u16 fndecl 0 9618 NULL
157013 +enable_so_free_bg_ocfs2_cached_block_free_9619 free_bg ocfs2_cached_block_free 0 9619 NULL
157014 +enable_so_size_scif_rb_9622 size scif_rb 0 9622 NULL
157015 +enable_so_blk_end_request_err_fndecl_9623 blk_end_request_err fndecl 2 9623 NULL
157016 +enable_so_hpfs_ea_write_fndecl_9626 hpfs_ea_write fndecl 5-4-2 9626 NULL
157017 +enable_so_num_fcxps_vardecl_9630 num_fcxps vardecl 0 9630 NULL
157018 +enable_so_ubifs_wbuf_seek_nolock_fndecl_9634 ubifs_wbuf_seek_nolock fndecl 3 9634 NULL
157019 +enable_so_fc_host_post_vendor_event_fndecl_9636 fc_host_post_vendor_event fndecl 3 9636 NULL
157020 +enable_so_copy_to_iter_fndecl_9638 copy_to_iter fndecl 0-2 9638 NULL
157021 +enable_so_fd_do_prot_unmap_fndecl_9639 fd_do_prot_unmap fndecl 3 9639 NULL
157022 +enable_so_batadv_handle_announce_fndecl_9642 batadv_handle_announce fndecl 4 9642 NULL
157023 +enable_so_num_nodes_hdac_device_9647 num_nodes hdac_device 0 9647 NULL
157024 +enable_so_dma_tx_size_stmmac_priv_9653 dma_tx_size stmmac_priv 0 9653 NULL
157025 +enable_so_height_drm_vmw_size_9654 height drm_vmw_size 0 9654 NULL nohasharray
157026 +enable_so_dict_size_lzma_header_9654 dict_size lzma_header 0 9654 &enable_so_height_drm_vmw_size_9654
157027 +enable_so_x509_akid_note_name_fndecl_9656 x509_akid_note_name fndecl 5 9656 NULL
157028 +enable_so_wm8400_register_regulator_fndecl_9660 wm8400_register_regulator fndecl 2 9660 NULL
157029 +enable_so_hugetlb_cow_fndecl_9665 hugetlb_cow fndecl 3 9665 NULL
157030 +enable_so_usnic_debugfs_buildinfo_read_fndecl_9667 usnic_debugfs_buildinfo_read fndecl 3 9667 NULL
157031 +enable_so_hr_slots_per_page_o2hb_region_9668 hr_slots_per_page o2hb_region 0 9668 NULL
157032 +enable_so_PCI_Address_DAC960_Controller_9669 PCI_Address DAC960_Controller 0 9669 NULL
157033 +enable_so_sctp_setsockopt_rtoinfo_fndecl_9678 sctp_setsockopt_rtoinfo fndecl 3 9678 NULL
157034 +enable_so_xen_blkif_max_ring_order_vardecl_xen_blkfront_c_9681 xen_blkif_max_ring_order vardecl_xen-blkfront.c 0 9681 NULL
157035 +enable_so_length_hpfs_dirent_9682 length hpfs_dirent 0 9682 NULL
157036 +enable_so_plip_hard_header_fndecl_9684 plip_hard_header fndecl 3-6 9684 NULL nohasharray
157037 +enable_so_scrub_pages_for_parity_fndecl_9684 scrub_pages_for_parity fndecl 3-2-4 9684 &enable_so_plip_hard_header_fndecl_9684
157038 +enable_so_osd_req_decode_sense_full_fndecl_9685 osd_req_decode_sense_full fndecl 0 9685 NULL
157039 +enable_so_s3fwrn5_fw_prep_msg_fndecl_9686 s3fwrn5_fw_prep_msg fndecl 6 9686 NULL nohasharray
157040 +enable_so_di_height_logfs_disk_inode_9686 di_height logfs_disk_inode 0 9686 &enable_so_s3fwrn5_fw_prep_msg_fndecl_9686 nohasharray
157041 +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
157042 +enable_so_ba_param_set_wmi_rcp_addba_req_event_9687 ba_param_set wmi_rcp_addba_req_event 0 9687 NULL
157043 +enable_so_xresstep_svga_fb_format_9690 xresstep svga_fb_format 0 9690 NULL
157044 +enable_so_max_num_pmkids_wiphy_9691 max_num_pmkids wiphy 0 9691 NULL
157045 +enable_so_fill_from_dev_buffer_fndecl_9695 fill_from_dev_buffer fndecl 3 9695 NULL
157046 +enable_so_adp5589_build_gpiomap_fndecl_9697 adp5589_build_gpiomap fndecl 0 9697 NULL
157047 +enable_so__fdt_resize_property_fndecl_9703 _fdt_resize_property fndecl 2-4 9703 NULL
157048 +enable_so_GnrlAsyncInfoReceived_fndecl_9704 GnrlAsyncInfoReceived fndecl 2 9704 NULL nohasharray
157049 +enable_so_srp_add_port_fndecl_9704 srp_add_port fndecl 2 9704 &enable_so_GnrlAsyncInfoReceived_fndecl_9704 nohasharray
157050 +enable_so_phys_addr_ntb_transport_mw_9704 phys_addr ntb_transport_mw 0 9704 &enable_so_srp_add_port_fndecl_9704
157051 +enable_so_payload_len_cfg80211_wowlan_tcp_9706 payload_len cfg80211_wowlan_tcp 0 9706 NULL nohasharray
157052 +enable_so_tty_insert_flip_string_flags_fndecl_9706 tty_insert_flip_string_flags fndecl 4 9706 &enable_so_payload_len_cfg80211_wowlan_tcp_9706
157053 +enable_so_sr_write_async_fndecl_9707 sr_write_async fndecl 3 9707 NULL
157054 +enable_so_affs_direct_IO_fndecl_9712 affs_direct_IO fndecl 3 9712 NULL
157055 +enable_so_xprt_rdma_max_inline_write_vardecl_transport_c_9715 xprt_rdma_max_inline_write vardecl_transport.c 0 9715 NULL
157056 +enable_so_page_size_dataflash_9722 page_size dataflash 0 9722 NULL nohasharray
157057 +enable_so_tx_ringsz_alx_priv_9722 tx_ringsz alx_priv 0 9722 &enable_so_page_size_dataflash_9722
157058 +enable_so_ieee80211_build_preq_ies_band_fndecl_9724 ieee80211_build_preq_ies_band fndecl 0 9724 NULL nohasharray
157059 +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 nohasharray
157060 +enable_so_setup_port_fndecl_9724 setup_port fndecl 5-4 9724 &enable_so_start_bidx_of_node_fndecl_9724
157061 +enable_so_mask_myri10ge_tx_buf_9725 mask myri10ge_tx_buf 0 9725 NULL
157062 +enable_so_vicam_control_msg_fndecl_9727 vicam_control_msg fndecl 0 9727 NULL
157063 +enable_so_midi_out_ports_snd_efw_9740 midi_out_ports snd_efw 0 9740 NULL
157064 +enable_so_qsfp_2_read_fndecl_9744 qsfp_2_read fndecl 3 9744 NULL
157065 +enable_so_blkdev_fsync_fndecl_9745 blkdev_fsync fndecl 2-3 9745 NULL
157066 +enable_so_bnx2x_mcast_handle_current_cmd_fndecl_9747 bnx2x_mcast_handle_current_cmd fndecl 0 9747 NULL
157067 +enable_so___alloc_bootmem_fndecl_9753 __alloc_bootmem fndecl 2-1-3 9753 NULL
157068 +enable_so_hbuf_free_slots_mei_hw_ops_9760 hbuf_free_slots mei_hw_ops 0 9760 NULL
157069 +enable_so_hidraw_write_fndecl_9763 hidraw_write fndecl 3 9763 NULL nohasharray
157070 +enable_so_buffer_length_floppy_raw_cmd_9763 buffer_length floppy_raw_cmd 0 9763 &enable_so_hidraw_write_fndecl_9763
157071 +enable_so_index_sdio_uart_port_9769 index sdio_uart_port 0 9769 NULL
157072 +enable_so_stat_ethoc_bd_9775 stat ethoc_bd 0 9775 NULL nohasharray
157073 +enable_so_dvb_ringbuffer_write_fndecl_9775 dvb_ringbuffer_write fndecl 3-0 9775 &enable_so_stat_ethoc_bd_9775
157074 +enable_so_vmlfb_alloc_vram_area_fndecl_9776 vmlfb_alloc_vram_area fndecl 2 9776 NULL
157075 +enable_so_ctl_dev_e752x_dev_info_9777 ctl_dev e752x_dev_info 0 9777 NULL
157076 +enable_so_encap_hlen_ip_tunnel_9779 encap_hlen ip_tunnel 0 9779 NULL nohasharray
157077 +enable_so_mlxsw_pci_queue_group_init_fndecl_9779 mlxsw_pci_queue_group_init fndecl 4 9779 &enable_so_encap_hlen_ip_tunnel_9779
157078 +enable_so_tool_mask_read_fndecl_9780 tool_mask_read fndecl 3 9780 NULL
157079 +enable_so_highest_inum_ubifs_info_9785 highest_inum ubifs_info 0 9785 NULL
157080 +enable_so_valuelen_xfs_da_args_9786 valuelen xfs_da_args 0 9786 NULL
157081 +enable_so_irda_recvmsg_dgram_fndecl_9788 irda_recvmsg_dgram fndecl 3 9788 NULL
157082 +enable_so_tx_frag_tkip_called_read_fndecl_9796 tx_frag_tkip_called_read fndecl 3 9796 NULL
157083 +enable_so_vci_atm_vcc_9797 vci atm_vcc 0 9797 NULL
157084 +enable_so_aper_base_agp_kern_info_9798 aper_base agp_kern_info 0 9798 NULL
157085 +enable_so_irlan_insert_array_param_fndecl_9800 irlan_insert_array_param fndecl 4 9800 NULL
157086 +enable_so_get_max_inline_xattr_value_size_fndecl_9801 get_max_inline_xattr_value_size fndecl 0 9801 NULL
157087 +enable_so_rq_callsize_rpc_rqst_9803 rq_callsize rpc_rqst 0 9803 NULL
157088 +enable_so_osst_write_fndecl_9806 osst_write fndecl 3 9806 NULL
157089 +enable_so_in_size_ViceIoctl_9808 in_size ViceIoctl 0 9808 NULL nohasharray
157090 +enable_so_usbvision_read_fndecl_9808 usbvision_read fndecl 3 9808 &enable_so_in_size_ViceIoctl_9808
157091 +enable_so_num_private_args_iw_handler_def_9810 num_private_args iw_handler_def 0 9810 NULL
157092 +enable_so_update_backref_node_fndecl_9811 update_backref_node fndecl 3 9811 NULL
157093 +enable_so_pathmtu_sctp_association_9815 pathmtu sctp_association 0 9815 NULL
157094 +enable_so_brcmf_proto_bcdc_hdrpush_fndecl_9818 brcmf_proto_bcdc_hdrpush fndecl 3 9818 NULL nohasharray
157095 +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
157096 +enable_so_pref_erase_mmc_card_9824 pref_erase mmc_card 0 9824 NULL
157097 +enable_so_flags_rtl8187se_rx_desc_9826 flags rtl8187se_rx_desc 0 9826 NULL
157098 +enable_so_list_bytes_osdv1_attributes_list_header_9829 list_bytes osdv1_attributes_list_header 0 9829 NULL
157099 +enable_so_section_count_f2fs_super_block_9832 section_count f2fs_super_block 0 9832 NULL
157100 +enable_so_v9fs_xattr_handler_get_fndecl_9833 v9fs_xattr_handler_get fndecl 5 9833 NULL
157101 +enable_so_sectors_r10bio_9834 sectors r10bio 0 9834 NULL
157102 +enable_so_msc_buffer_contig_alloc_fndecl_9835 msc_buffer_contig_alloc fndecl 2 9835 NULL
157103 +enable_so_msg_length_sms_msg_hdr_9842 msg_length sms_msg_hdr 0 9842 NULL
157104 +enable_so_mlx4_ib_demux_mad_fndecl_9843 mlx4_ib_demux_mad fndecl 2 9843 NULL nohasharray
157105 +enable_so_snd_compr_get_avail_fndecl_9843 snd_compr_get_avail fndecl 0 9843 &enable_so_mlx4_ib_demux_mad_fndecl_9843
157106 +enable_so_complete_read_super_fndecl_9844 complete_read_super fndecl 3 9844 NULL
157107 +enable_so_vlanTag_rx_desc_9847 vlanTag rx_desc 0 9847 NULL
157108 +enable_so_bi_residual_count_iscsi_scsi_rsp_9850 bi_residual_count iscsi_scsi_rsp 0 9850 NULL
157109 +enable_so_pg_count_agp_allocate_9853 pg_count agp_allocate 0 9853 NULL
157110 +enable_so_data_size_virtio_gpu_vbuffer_9856 data_size virtio_gpu_vbuffer 0 9856 NULL
157111 +enable_so_caif_create_fndecl_9857 caif_create fndecl 3 9857 NULL
157112 +enable_so_vlan_id_rlb_client_info_9858 vlan_id rlb_client_info 0 9858 NULL
157113 +enable_so_read_fiforeg_fndecl_9859 read_fiforeg fndecl 2 9859 NULL nohasharray
157114 +enable_so_nr_of_buckets_v4l2_ctrl_handler_9859 nr_of_buckets v4l2_ctrl_handler 0 9859 &enable_so_read_fiforeg_fndecl_9859
157115 +enable_so_videobuf_read_one_fndecl_9862 videobuf_read_one fndecl 3 9862 NULL
157116 +enable_so_get_img_height_s5p_mfc_hw_ops_9869 get_img_height s5p_mfc_hw_ops 0 9869 NULL
157117 +enable_so_arvo_sysfs_read_fndecl_9874 arvo_sysfs_read fndecl 6 9874 NULL
157118 +enable_so_xfs_seek_hole_data_fndecl_9883 xfs_seek_hole_data fndecl 2 9883 NULL
157119 +enable_so_v4l_nbufs_vardecl_9889 v4l_nbufs vardecl 0 9889 NULL
157120 +enable_so_copy_from_user_nmi_fndecl_9899 copy_from_user_nmi fndecl 3 9899 NULL
157121 +enable_so_ovfx2_pkt_scan_fndecl_9901 ovfx2_pkt_scan fndecl 3 9901 NULL nohasharray
157122 +enable_so_begin_entry_alloc_9901 begin entry_alloc 0 9901 &enable_so_ovfx2_pkt_scan_fndecl_9901
157123 +enable_so_tx_ring_size_sky2_port_9902 tx_ring_size sky2_port 0 9902 NULL
157124 +enable_so_nkeys_tc_u32_sel_9905 nkeys tc_u32_sel 0 9905 NULL
157125 +enable_so_legacy_count_vardecl_pty_c_9908 legacy_count vardecl_pty.c 0 9908 NULL
157126 +enable_so_prism54_wpa_bss_ie_add_fndecl_9910 prism54_wpa_bss_ie_add fndecl 4 9910 NULL
157127 +enable_so_stat_ddb_output_9913 stat ddb_output 0 9913 NULL
157128 +enable_so_alloc_event_waiters_fndecl_9914 alloc_event_waiters fndecl 1 9914 NULL
157129 +enable_so_ep_in_ksdazzle_cb_9917 ep_in ksdazzle_cb 0 9917 NULL
157130 +enable_so___ceph_do_getattr_fndecl_9918 __ceph_do_getattr fndecl 0 9918 NULL
157131 +enable_so_vbe_modes_cnt_uvesafb_par_9928 vbe_modes_cnt uvesafb_par 0 9928 NULL
157132 +enable_so_audit_log_n_string_fndecl_9930 audit_log_n_string fndecl 3 9930 NULL
157133 +enable_so_len_load_info_9931 len load_info 0 9931 NULL
157134 +enable_so_num_wsm_set_tx_rate_retry_policy_9933 num wsm_set_tx_rate_retry_policy 0 9933 NULL
157135 +enable_so_max_ptlrpcds_vardecl_ptlrpcd_c_9939 max_ptlrpcds vardecl_ptlrpcd.c 0 9939 NULL
157136 +enable_so_wb_pgbase_nfs_page_9940 wb_pgbase nfs_page 0 9940 NULL nohasharray
157137 +enable_so_object_name_len_ncp_objectname_ioctl_9940 object_name_len ncp_objectname_ioctl 0 9940 &enable_so_wb_pgbase_nfs_page_9940
157138 +enable_so_forced_ps_read_fndecl_9942 forced_ps_read fndecl 3 9942 NULL
157139 +enable_so_client_set_fmt_fndecl_9946 client_set_fmt fndecl 4-5 9946 NULL
157140 +enable_so_buffer_len_bnad_debug_info_9948 buffer_len bnad_debug_info 0 9948 NULL
157141 +enable_so_error_dm_crypt_io_9949 error dm_crypt_io 0 9949 NULL
157142 +enable_so_ath6kl_wmi_send_probe_response_cmd_fndecl_9955 ath6kl_wmi_send_probe_response_cmd fndecl 6-2 9955 NULL
157143 +enable_so_utf16s_to_utf8s_fndecl_9956 utf16s_to_utf8s fndecl 0 9956 NULL
157144 +enable_so_build_request_ceph_auth_client_ops_9960 build_request ceph_auth_client_ops 0 9960 NULL
157145 +enable_so_xfs_difree_inobt_fndecl_9961 xfs_difree_inobt fndecl 4 9961 NULL
157146 +enable_so_shmem_pwrite_slow_fndecl_9966 shmem_pwrite_slow fndecl 2-3 9966 NULL
157147 +enable_so_rt2x00dev_extra_tx_headroom_fndecl_9971 rt2x00dev_extra_tx_headroom fndecl 0 9971 NULL
157148 +enable_so_pg_vec_len_netlink_ring_9980 pg_vec_len netlink_ring 0 9980 NULL
157149 +enable_so_count_tun_filter_9984 count tun_filter 0 9984 NULL
157150 +enable_so_start_extent_buffer_9986 start extent_buffer 0 9986 NULL
157151 +enable_so_map_sg_ib_dma_mapping_ops_9988 map_sg ib_dma_mapping_ops 0 9988 NULL
157152 +enable_so_hugepage_add_anon_rmap_fndecl_9989 hugepage_add_anon_rmap fndecl 3 9989 NULL
157153 +enable_so_nilfs_insert_inode_locked_fndecl_9991 nilfs_insert_inode_locked fndecl 3 9991 NULL
157154 +enable_so_dm_rh_region_to_sector_fndecl_9992 dm_rh_region_to_sector fndecl 0-2 9992 NULL
157155 +enable_so_sample_bits_twl4030_priv_10002 sample_bits twl4030_priv 0 10002 NULL
157156 +enable_so_rpcrdma_inline_fixup_fndecl_10007 rpcrdma_inline_fixup fndecl 3 10007 NULL
157157 +enable_so_setifbcnt_fndecl_10012 setifbcnt fndecl 3 10012 NULL
157158 +enable_so__create_sg_bios_fndecl_10015 _create_sg_bios fndecl 4 10015 NULL
157159 +enable_so_tx_bytes_imx_port_10019 tx_bytes imx_port 0 10019 NULL
157160 +enable_so_nouveau_sgdma_create_ttm_fndecl_10022 nouveau_sgdma_create_ttm fndecl 2 10022 NULL
157161 +enable_so_ov_position_drbd_device_10027 ov_position drbd_device 0 10027 NULL
157162 +enable_so_skb_append_datato_frags_fndecl_10028 skb_append_datato_frags fndecl 5 10028 NULL
157163 +enable_so_add_dataflash_otp_fndecl_10031 add_dataflash_otp fndecl 4-3 10031 NULL
157164 +enable_so___cookie_v6_check_fndecl_10035 __cookie_v6_check fndecl 0 10035 NULL
157165 +enable_so_get_img_width_s5p_mfc_hw_ops_10036 get_img_width s5p_mfc_hw_ops 0 10036 NULL
157166 +enable_so_mwifiex_send_tdls_action_frame_fndecl_10044 mwifiex_send_tdls_action_frame fndecl 7 10044 NULL
157167 +enable_so_block_count_hfsplus_extent_10045 block_count hfsplus_extent 0 10045 NULL
157168 +enable_so_sisusbcon_scroll_fndecl_10048 sisusbcon_scroll fndecl 5-2-3 10048 NULL
157169 +enable_so_send_buf_size_netvsc_device_10051 send_buf_size netvsc_device 0 10051 NULL
157170 +enable_so_ath6kl_wmi_powermode_cmd_fndecl_10052 ath6kl_wmi_powermode_cmd fndecl 2 10052 NULL
157171 +enable_so_usbat_write_blocks_fndecl_10053 usbat_write_blocks fndecl 3-4 10053 NULL nohasharray
157172 +enable_so_command_file_write_fndecl_10053 command_file_write fndecl 3 10053 &enable_so_usbat_write_blocks_fndecl_10053
157173 +enable_so_musb_urb_dequeue_fndecl_10056 musb_urb_dequeue fndecl 3 10056 NULL
157174 +enable_so_dm_bufio_prefetch_fndecl_10057 dm_bufio_prefetch fndecl 2 10057 NULL
157175 +enable_so_bio_detain_range_fndecl_10064 bio_detain_range fndecl 2-3 10064 NULL
157176 +enable_so_rx_buf_sz_sis190_private_10068 rx_buf_sz sis190_private 0 10068 NULL nohasharray
157177 +enable_so_uvc_simplify_fraction_fndecl_10068 uvc_simplify_fraction fndecl 3 10068 &enable_so_rx_buf_sz_sis190_private_10068
157178 +enable_so_max_pages_fuse_req_10069 max_pages fuse_req 0 10069 NULL
157179 +enable_so_qpn_ib_ucm_rep_10073 qpn ib_ucm_rep 0 10073 NULL
157180 +enable_so_sg_size_octnic_gather_10076 sg_size octnic_gather 0 10076 NULL
157181 +enable_so_ocfs2_refcount_xattr_tree_rec_fndecl_10077 ocfs2_refcount_xattr_tree_rec fndecl 3 10077 NULL
157182 +enable_so_read_csr_fndecl_10078 read_csr fndecl 0 10078 NULL
157183 +enable_so_height_virtio_gpu_rect_10085 height virtio_gpu_rect 0 10085 NULL
157184 +enable_so_ssb_admatch_base_fndecl_10086 ssb_admatch_base fndecl 0-1 10086 NULL
157185 +enable_so___send_changing_extent_only_fndecl_10090 __send_changing_extent_only fndecl 0 10090 NULL
157186 +enable_so_outlen_write_fndecl_10093 outlen_write fndecl 3 10093 NULL
157187 +enable_so_msix_num_bnad_10096 msix_num bnad 0 10096 NULL
157188 +enable_so_em28xx_init_usb_xfer_fndecl_10106 em28xx_init_usb_xfer fndecl 5-6-4 10106 NULL
157189 +enable_so_finish_wqe_fndecl_10107 finish_wqe fndecl 3 10107 NULL nohasharray
157190 +enable_so__regmap_raw_multi_reg_write_fndecl_10107 _regmap_raw_multi_reg_write fndecl 3 10107 &enable_so_finish_wqe_fndecl_10107
157191 +enable_so_req_sz__MPT_ADAPTER_10113 req_sz _MPT_ADAPTER 0 10113 NULL
157192 +enable_so_tfms_count_crypt_config_10114 tfms_count crypt_config 0 10114 NULL
157193 +enable_so_uvc_video_encode_data_fndecl_10117 uvc_video_encode_data fndecl 0-4 10117 NULL nohasharray
157194 +enable_so_total_len_extlog_l1_head_10117 total_len extlog_l1_head 0 10117 &enable_so_uvc_video_encode_data_fndecl_10117
157195 +enable_so_pxa2xx_spi_get_port_id_fndecl_10119 pxa2xx_spi_get_port_id fndecl 0 10119 NULL
157196 +enable_so_len_pda_entry_10121 len pda_entry 0 10121 NULL nohasharray
157197 +enable_so_netlbl_mgmt_add_common_fndecl_10121 netlbl_mgmt_add_common fndecl 0 10121 &enable_so_len_pda_entry_10121
157198 +enable_so_MaxBlocksPerCommand_DAC960_Controller_10124 MaxBlocksPerCommand DAC960_Controller 0 10124 NULL nohasharray
157199 +enable_so_data_dma_usbtouch_usb_10124 data_dma usbtouch_usb 0 10124 &enable_so_MaxBlocksPerCommand_DAC960_Controller_10124
157200 +enable_so_max_hw_sectors_nvme_dev_10127 max_hw_sectors nvme_dev 0 10127 NULL nohasharray
157201 +enable_so_parent_overlap_rbd_device_10127 parent_overlap rbd_device 0 10127 &enable_so_max_hw_sectors_nvme_dev_10127
157202 +enable_so_max_bu_buf_len_ubifs_info_10130 max_bu_buf_len ubifs_info 0 10130 NULL
157203 +enable_so_ieee80211_rx_mgmt_auth_fndecl_10133 ieee80211_rx_mgmt_auth fndecl 3 10133 NULL
157204 +enable_so_num_inbound_streams_sctp_inithdr_10138 num_inbound_streams sctp_inithdr 0 10138 NULL
157205 +enable_so_qlcnic_83xx_diag_alloc_res_fndecl_10139 qlcnic_83xx_diag_alloc_res fndecl 3 10139 NULL
157206 +enable_so_xprt_rdma_allocate_fndecl_10143 xprt_rdma_allocate fndecl 2 10143 NULL
157207 +enable_so_ns_cno_the_nilfs_10144 ns_cno the_nilfs 0 10144 NULL nohasharray
157208 +enable_so_sg_segs_osst_buffer_10144 sg_segs osst_buffer 0 10144 &enable_so_ns_cno_the_nilfs_10144
157209 +enable_so_ldebugfs_fid_space_seq_write_fndecl_10152 ldebugfs_fid_space_seq_write fndecl 3 10152 NULL
157210 +enable_so_udp_tun_rx_dst_fndecl_10154 udp_tun_rx_dst fndecl 4-5 10154 NULL
157211 +enable_so__sp2d_max_pg_fndecl_10157 _sp2d_max_pg fndecl 0 10157 NULL
157212 +enable_so_host_int_add_ptk_fndecl_10158 host_int_add_ptk fndecl 3 10158 NULL
157213 +enable_so_usnic_vnic_res_spec_update_fndecl_10169 usnic_vnic_res_spec_update fndecl 3 10169 NULL
157214 +enable_so_error_block_length_acpi_hest_generic_10170 error_block_length acpi_hest_generic 0 10170 NULL
157215 +enable_so_cluster_size_msdos_sb_info_10172 cluster_size msdos_sb_info 0 10172 NULL
157216 +enable_so_s_inopf_ufs_sb_private_info_10174 s_inopf ufs_sb_private_info 0 10174 NULL nohasharray
157217 +enable_so_substream_count_snd_rawmidi_str_10174 substream_count snd_rawmidi_str 0 10174 &enable_so_s_inopf_ufs_sb_private_info_10174
157218 +enable_so_acpi_sci_ioapic_setup_fndecl_10182 acpi_sci_ioapic_setup fndecl 1-4 10182 NULL
157219 +enable_so_read_buffer_size_vardecl_legousbtower_c_10184 read_buffer_size vardecl_legousbtower.c 0 10184 NULL
157220 +enable_so_transport_alloc_session_tags_fndecl_10186 transport_alloc_session_tags fndecl 3-2 10186 NULL
157221 +enable_so_xfrm6_init_path_fndecl_10187 xfrm6_init_path fndecl 3 10187 NULL
157222 +enable_so_size_erst_erange_10188 size erst_erange 0 10188 NULL
157223 +enable_so_opera1_xilinx_rw_fndecl_10190 opera1_xilinx_rw fndecl 5 10190 NULL
157224 +enable_so_PagesPerBlock_ms_lib_ctrl_10191 PagesPerBlock ms_lib_ctrl 0 10191 NULL
157225 +enable_so_tx_buf_size_mwifiex_adapter_10198 tx_buf_size mwifiex_adapter 0 10198 NULL
157226 +enable_so_old_log_size_persistent_ram_zone_10215 old_log_size persistent_ram_zone 0 10215 NULL
157227 +enable_so___ext4_journal_get_write_access_fndecl_10217 __ext4_journal_get_write_access fndecl 0 10217 NULL nohasharray
157228 +enable_so_smb_init_no_reconnect_fndecl_10217 smb_init_no_reconnect fndecl 2 10217 &enable_so___ext4_journal_get_write_access_fndecl_10217
157229 +enable_so_wil_addba_rx_request_fndecl_10219 wil_addba_rx_request fndecl 4 10219 NULL
157230 +enable_so_rds_message_map_pages_fndecl_10220 rds_message_map_pages fndecl 2 10220 NULL
157231 +enable_so_ext4_xattr_set_handle_fndecl_10221 ext4_xattr_set_handle fndecl 6 10221 NULL
157232 +enable_so_alg_setkey_fndecl_10222 alg_setkey fndecl 3 10222 NULL
157233 +enable_so_next_id_hfs_sb_info_10229 next_id hfs_sb_info 0 10229 NULL
157234 +enable_so_qlcnic_set_sds_ring_count_fndecl_10232 qlcnic_set_sds_ring_count fndecl 2 10232 NULL
157235 +enable_so_input_get_new_minor_fndecl_10235 input_get_new_minor fndecl 0 10235 NULL
157236 +enable_so_iio_devt_vardecl_industrialio_core_c_10237 iio_devt vardecl_industrialio-core.c 0 10237 NULL nohasharray
157237 +enable_so_req_pages_pvscsi_adapter_10237 req_pages pvscsi_adapter 0 10237 &enable_so_iio_devt_vardecl_industrialio_core_c_10237
157238 +enable_so_dio_get_pages_alloc_fndecl_10238 dio_get_pages_alloc fndecl 2 10238 NULL nohasharray
157239 +enable_so_uarc_size_mthca_uar_table_10238 uarc_size mthca_uar_table 0 10238 &enable_so_dio_get_pages_alloc_fndecl_10238
157240 +enable_so_bv_len_bio_vec_10239 bv_len bio_vec 0 10239 NULL nohasharray
157241 +enable_so_do_fcntl_fndecl_10239 do_fcntl fndecl 3 10239 &enable_so_bv_len_bio_vec_10239
157242 +enable_so_q1_depth_bna_rx_config_10241 q1_depth bna_rx_config 0 10241 NULL
157243 +enable_so_smallpageshift_sddr55_card_info_10244 smallpageshift sddr55_card_info 0 10244 NULL
157244 +enable_so_residual_data_len_ipr_ioasa_hdr_10247 residual_data_len ipr_ioasa_hdr 0 10247 NULL
157245 +enable_so_irias_add_octseq_attrib_fndecl_10252 irias_add_octseq_attrib fndecl 4 10252 NULL nohasharray
157246 +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
157247 +enable_so_filelayout_get_dense_offset_fndecl_10253 filelayout_get_dense_offset fndecl 0 10253 NULL
157248 +enable_so_agg_buf_sz_vardecl_r8152_c_10254 agg_buf_sz vardecl_r8152.c 0 10254 NULL nohasharray
157249 +enable_so_vxlan6_xmit_skb_fndecl_10254 vxlan6_xmit_skb fndecl 11 10254 &enable_so_agg_buf_sz_vardecl_r8152_c_10254
157250 +enable_so_nilfs_sufile_do_scrap_fndecl_10257 nilfs_sufile_do_scrap fndecl 2 10257 NULL
157251 +enable_so_iscsi_sw_tcp_send_hdr_prep_fndecl_10261 iscsi_sw_tcp_send_hdr_prep fndecl 3 10261 NULL
157252 +enable_so_sdebug_store_sectors_vardecl_scsi_debug_c_10267 sdebug_store_sectors vardecl_scsi_debug.c 0 10267 NULL
157253 +enable_so_jffs2_scan_dirent_node_fndecl_10268 jffs2_scan_dirent_node fndecl 4 10268 NULL
157254 +enable_so_dn_sendmsg_fndecl_10269 dn_sendmsg fndecl 3 10269 NULL
157255 +enable_so_rxd_process_rxd_ops_10271 rxd_process rxd_ops 0 10271 NULL
157256 +enable_so_vmci_host_setup_notify_fndecl_10273 vmci_host_setup_notify fndecl 2 10273 NULL
157257 +enable_so_vmw_resource_buf_alloc_fndecl_10284 vmw_resource_buf_alloc fndecl 0 10284 NULL
157258 +enable_so_o_width_g2d_frame_10291 o_width g2d_frame 0 10291 NULL
157259 +enable_so_num_vfs_i40e_hw_capabilities_10302 num_vfs i40e_hw_capabilities 0 10302 NULL
157260 +enable_so_bfad_iocmd_fcport_reset_stats_fndecl_10304 bfad_iocmd_fcport_reset_stats fndecl 0 10304 NULL nohasharray
157261 +enable_so_ieee80211_tdls_add_chan_switch_req_ies_fndecl_10304 ieee80211_tdls_add_chan_switch_req_ies fndecl 6 10304 &enable_so_bfad_iocmd_fcport_reset_stats_fndecl_10304
157262 +enable_so_tlen_sdma_txreq_10305 tlen sdma_txreq 0 10305 NULL
157263 +enable_so_scsi_vpd_inquiry_fndecl_10315 scsi_vpd_inquiry fndecl 4-0 10315 NULL
157264 +enable_so_num_mnt_opts_security_mnt_opts_10327 num_mnt_opts security_mnt_opts 0 10327 NULL
157265 +enable_so_blk_stack_limits_fndecl_10332 blk_stack_limits fndecl 3 10332 NULL
157266 +enable_so_xfs_get_blocks_dax_fault_fndecl_10335 xfs_get_blocks_dax_fault fndecl 2 10335 NULL nohasharray
157267 +enable_so_dev_mem_write_fndecl_10335 dev_mem_write fndecl 3 10335 &enable_so_xfs_get_blocks_dax_fault_fndecl_10335
157268 +enable_so_down_bplus_internal_node_10336 down bplus_internal_node 0 10336 NULL
157269 +enable_so_boot_max_nr_grant_frames_vardecl_grant_table_c_10337 boot_max_nr_grant_frames vardecl_grant-table.c 0 10337 NULL
157270 +enable_so_len_xdr_buf_10338 len xdr_buf 0 10338 NULL
157271 +enable_so_sector_size_btt_10339 sector_size btt 0 10339 NULL
157272 +enable_so_edid_blocks_vivid_dev_10341 edid_blocks vivid_dev 0 10341 NULL
157273 +enable_so_cids_per_blk_cnic_local_10342 cids_per_blk cnic_local 0 10342 NULL
157274 +enable_so_nr_possible_cpus_uv_blade_info_10350 nr_possible_cpus uv_blade_info 0 10350 NULL
157275 +enable_so_s_no_blocks_logfs_super_10354 s_no_blocks logfs_super 0 10354 NULL
157276 +enable_so___pci_request_selected_regions_fndecl_10361 __pci_request_selected_regions fndecl 0 10361 NULL
157277 +enable_so_num_mgms_mlx4_caps_10367 num_mgms mlx4_caps 0 10367 NULL
157278 +enable_so_rx_filter_data_filter_read_fndecl_10369 rx_filter_data_filter_read fndecl 3 10369 NULL
157279 +enable_so_len_mt7601u_dma_buf_10376 len mt7601u_dma_buf 0 10376 NULL nohasharray
157280 +enable_so_ssid_len_libipw_network_10376 ssid_len libipw_network 0 10376 &enable_so_len_mt7601u_dma_buf_10376
157281 +enable_so_decomp_windowBits_zlib_ctx_10381 decomp_windowBits zlib_ctx 0 10381 NULL
157282 +enable_so_mc_saved_count_mc_saved_data_10384 mc_saved_count mc_saved_data 0 10384 NULL
157283 +enable_so_size_synthvid_msg_hdr_10391 size synthvid_msg_hdr 0 10391 NULL
157284 +enable_so_arg_ax25_ctl_struct_10392 arg ax25_ctl_struct 0 10392 NULL nohasharray
157285 +enable_so_cxgbi_ddp_reserve_fndecl_10392 cxgbi_ddp_reserve fndecl 4 10392 &enable_so_arg_ax25_ctl_struct_10392
157286 +enable_so_iomem_base_myri10ge_priv_10393 iomem_base myri10ge_priv 0 10393 NULL
157287 +enable_so_max_beb_per1024_mtd_dev_param_10395 max_beb_per1024 mtd_dev_param 0 10395 NULL
157288 +enable_so_link_freq_smiapp_pll_10397 link_freq smiapp_pll 0 10397 NULL
157289 +enable_so_tg3_run_loopback_fndecl_10398 tg3_run_loopback fndecl 2 10398 NULL
157290 +enable_so_snd_midi_channel_init_set_fndecl_10399 snd_midi_channel_init_set fndecl 1 10399 NULL
157291 +enable_so_ihead_offs_ubifs_info_10400 ihead_offs ubifs_info 0 10400 NULL
157292 +enable_so_length_p_header95_10401 length p_header95 0 10401 NULL
157293 +enable_so_romfs_blk_strnlen_fndecl_10402 romfs_blk_strnlen fndecl 3-2-0 10402 NULL
157294 +enable_so_num_data_channels_st_sensor_data_10404 num_data_channels st_sensor_data 0 10404 NULL
157295 +enable_so_vlan_proto_bond_vlan_tag_10405 vlan_proto bond_vlan_tag 0 10405 NULL nohasharray
157296 +enable_so__osd_req_sizeof_alist_header_fndecl_10405 _osd_req_sizeof_alist_header fndecl 0 10405 &enable_so_vlan_proto_bond_vlan_tag_10405 nohasharray
157297 +enable_so_num_vss_cfgs_wm8994_pdata_10405 num_vss_cfgs wm8994_pdata 0 10405 &enable_so__osd_req_sizeof_alist_header_fndecl_10405
157298 +enable_so_zap_vma_ptes_fndecl_10406 zap_vma_ptes fndecl 3-2 10406 NULL
157299 +enable_so_u_memcpya_fndecl_10408 u_memcpya fndecl 2-3 10408 NULL
157300 +enable_so_addr_page_req_dsc_10411 addr page_req_dsc 0 10411 NULL
157301 +enable_so_off_xtsplit_10412 off xtsplit 0 10412 NULL
157302 +enable_so_max_ctrl_size_ims_pcu_10413 max_ctrl_size ims_pcu 0 10413 NULL
157303 +enable_so_nent_mlx4_eq_10414 nent mlx4_eq 0 10414 NULL
157304 +enable_so_size_xt_table_info_10415 size xt_table_info 0 10415 NULL
157305 +enable_so_xfs_iget_cache_miss_fndecl_10416 xfs_iget_cache_miss fndecl 4 10416 NULL
157306 +enable_so_spi_async_locked_fndecl_10422 spi_async_locked fndecl 0 10422 NULL
157307 +enable_so_flip_sd_gl860_10437 flip sd_gl860 0 10437 NULL nohasharray
157308 +enable_so_byte_count_iwl_rx_mpdu_res_start_10437 byte_count iwl_rx_mpdu_res_start 0 10437 &enable_so_flip_sd_gl860_10437
157309 +enable_so_alloc_switch_ctx_fndecl_10438 alloc_switch_ctx fndecl 3-2 10438 NULL
157310 +enable_so_radeon_gem_object_create_fndecl_10441 radeon_gem_object_create fndecl 2 10441 NULL
157311 +enable_so_expand_inode_data_fndecl_10442 expand_inode_data fndecl 2-3 10442 NULL
157312 +enable_so_NumberOfPhyBlock_ms_lib_ctrl_10443 NumberOfPhyBlock ms_lib_ctrl 0 10443 NULL
157313 +enable_so_wrfilled_cyberjack_private_10444 wrfilled cyberjack_private 0 10444 NULL
157314 +enable_so_p9dirent_read_fndecl_10450 p9dirent_read fndecl 3-0 10450 NULL
157315 +enable_so_ext4_write_inline_data_end_fndecl_10452 ext4_write_inline_data_end fndecl 0-4 10452 NULL
157316 +enable_so_page_shift_nand_chip_10453 page_shift nand_chip 0 10453 NULL
157317 +enable_so_length_acpi_mem_space_context_10460 length acpi_mem_space_context 0 10460 NULL
157318 +enable_so_vxlan_change_mtu_fndecl_10464 vxlan_change_mtu fndecl 2 10464 NULL nohasharray
157319 +enable_so___btt_map_write_fndecl_10464 __btt_map_write fndecl 0 10464 &enable_so_vxlan_change_mtu_fndecl_10464
157320 +enable_so_wNdpOutDivisor_usb_cdc_ncm_ntb_parameters_10467 wNdpOutDivisor usb_cdc_ncm_ntb_parameters 0 10467 NULL
157321 +enable_so___genwqe_readq_fndecl_10470 __genwqe_readq fndecl 0 10470 NULL
157322 +enable_so_usblp_ioctl_fndecl_10472 usblp_ioctl fndecl 2 10472 NULL
157323 +enable_so_nfsd4_get_drc_mem_fndecl_10473 nfsd4_get_drc_mem fndecl 0 10473 NULL
157324 +enable_so_devnum_usb_device_10474 devnum usb_device 0 10474 NULL
157325 +enable_so_signature_mspro_attribute_10483 signature mspro_attribute 0 10483 NULL
157326 +enable_so_num_pqs_qed_qm_info_10488 num_pqs qed_qm_info 0 10488 NULL
157327 +enable_so_out_min_chans_snd_card_asihpi_10490 out_min_chans snd_card_asihpi 0 10490 NULL nohasharray
157328 +enable_so_avc_tuner_dsd_dvb_c_fndecl_10490 avc_tuner_dsd_dvb_c fndecl 0 10490 &enable_so_out_min_chans_snd_card_asihpi_10490
157329 +enable_so_nbpf_prep_memcpy_fndecl_10492 nbpf_prep_memcpy fndecl 4 10492 NULL
157330 +enable_so_msb_cache_read_fndecl_10494 msb_cache_read fndecl 0-5-2 10494 NULL
157331 +enable_so_ext4_ext_direct_IO_fndecl_10503 ext4_ext_direct_IO fndecl 3 10503 NULL nohasharray
157332 +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
157333 +enable_so_cidlen_he_rbrq_10504 cidlen he_rbrq 0 10504 NULL
157334 +enable_so_nouveau_channel_prep_fndecl_10506 nouveau_channel_prep fndecl 3 10506 NULL
157335 +enable_so_cr_namelen_nfsd4_create_10516 cr_namelen nfsd4_create 0 10516 NULL
157336 +enable_so_dma_burst_size_chip_data_10519 dma_burst_size chip_data 0 10519 NULL nohasharray
157337 +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
157338 +enable_so_posix_acl_from_xattr_fndecl_10527 posix_acl_from_xattr fndecl 3 10527 NULL nohasharray
157339 +enable_so_sd_alloc_ctl_entry_fndecl_10527 sd_alloc_ctl_entry fndecl 1 10527 &enable_so_posix_acl_from_xattr_fndecl_10527
157340 +enable_so_stride_cobalt_stream_10537 stride cobalt_stream 0 10537 NULL
157341 +enable_so_cros_ec_prepare_tx_fndecl_10539 cros_ec_prepare_tx fndecl 0 10539 NULL
157342 +enable_so_logical_scrub_page_10540 logical scrub_page 0 10540 NULL nohasharray
157343 +enable_so_touchscreen_set_params_fndecl_10540 touchscreen_set_params fndecl 3 10540 &enable_so_logical_scrub_page_10540
157344 +enable_so_xen_set_callback_via_fndecl_10541 xen_set_callback_via fndecl 1 10541 NULL
157345 +enable_so_y_skip_top_mt9m001_10547 y_skip_top mt9m001 0 10547 NULL nohasharray
157346 +enable_so_isofs_get_last_session_fndecl_10547 isofs_get_last_session fndecl 0 10547 &enable_so_y_skip_top_mt9m001_10547
157347 +enable_so_read_cis_cache_fndecl_10548 read_cis_cache fndecl 4 10548 NULL
157348 +enable_so_nv_change_mtu_fndecl_10551 nv_change_mtu fndecl 2 10551 NULL
157349 +enable_so_wm_adsp_read_algs_fndecl_10552 wm_adsp_read_algs fndecl 4 10552 NULL
157350 +enable_so_new_leaf_fndecl_10553 new_leaf fndecl 3 10553 NULL
157351 +enable_so_id_hsi_controller_10557 id hsi_controller 0 10557 NULL
157352 +enable_so_tcf_csum_ipv6_icmp_fndecl_10562 tcf_csum_ipv6_icmp fndecl 3 10562 NULL
157353 +enable_so_bfad_iocmd_sfp_speed_fndecl_10563 bfad_iocmd_sfp_speed fndecl 0 10563 NULL
157354 +enable_so_lpfc_present_cpu_vardecl_10567 lpfc_present_cpu vardecl 0 10567 NULL
157355 +enable_so_num_send_contexts_hfi1_devdata_10569 num_send_contexts hfi1_devdata 0 10569 NULL
157356 +enable_so_sector_p_data_10572 sector p_data 0 10572 NULL
157357 +enable_so_cnt_rsxx_reg_access_10573 cnt rsxx_reg_access 0 10573 NULL
157358 +enable_so_sb_bsize_shift_gfs2_sb_host_10575 sb_bsize_shift gfs2_sb_host 0 10575 NULL nohasharray
157359 +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
157360 +enable_so_initialized_size__ntfs_inode_10576 initialized_size _ntfs_inode 0 10576 NULL
157361 +enable_so_resource_addr_nvkm_device_func_10582 resource_addr nvkm_device_func 0 10582 NULL nohasharray
157362 +enable_so_fuse_fsync_fndecl_10582 fuse_fsync fndecl 2-3 10582 &enable_so_resource_addr_nvkm_device_func_10582
157363 +enable_so_buf_idx_mei_cl_cb_10585 buf_idx mei_cl_cb 0 10585 NULL nohasharray
157364 +enable_so_vmw_compat_shader_add_fndecl_10585 vmw_compat_shader_add fndecl 6 10585 &enable_so_buf_idx_mei_cl_cb_10585
157365 +enable_so_pcmcia_make_resource_fndecl_10591 pcmcia_make_resource fndecl 2-1 10591 NULL
157366 +enable_so_wcn36xx_smd_send_and_wait_fndecl_10595 wcn36xx_smd_send_and_wait fndecl 2 10595 NULL
157367 +enable_so_size_ib_uverbs_flow_attr_10597 size ib_uverbs_flow_attr 0 10597 NULL
157368 +enable_so_max_frame_size_atl1_hw_10601 max_frame_size atl1_hw 0 10601 NULL nohasharray
157369 +enable_so_bfad_iocmd_ioc_get_fwstats_fndecl_10601 bfad_iocmd_ioc_get_fwstats fndecl 0 10601 &enable_so_max_frame_size_atl1_hw_10601
157370 +enable_so_num_amd_northbridge_info_10604 num amd_northbridge_info 0 10604 NULL
157371 +enable_so_uremainder64_st_cmdstatus_10606 uremainder64 st_cmdstatus 0 10606 NULL
157372 +enable_so_inst_size_il4965_firmware_pieces_10607 inst_size il4965_firmware_pieces 0 10607 NULL
157373 +enable_so_rq_depth_p9_rdma_opts_10608 rq_depth p9_rdma_opts 0 10608 NULL nohasharray
157374 +enable_so_index_vardecl_mtpav_c_10608 index vardecl_mtpav.c 0 10608 &enable_so_rq_depth_p9_rdma_opts_10608
157375 +enable_so_brightness_sd_gl860_10611 brightness sd_gl860 0 10611 NULL
157376 +enable_so_ext4_trim_all_free_fndecl_10621 ext4_trim_all_free fndecl 0-4-2 10621 NULL
157377 +enable_so___probe_kernel_write_fndecl_10625 __probe_kernel_write fndecl 3 10625 NULL
157378 +enable_so_rx_queues_nicvf_10628 rx_queues nicvf 0 10628 NULL
157379 +enable_so_pkt_alignment_factor_rndis_initialize_complete_10633 pkt_alignment_factor rndis_initialize_complete 0 10633 NULL
157380 +enable_so_pgbase_nfs_pgio_args_10636 pgbase nfs_pgio_args 0 10636 NULL
157381 +enable_so_tcp_sendpage_fndecl_10646 tcp_sendpage fndecl 4-3 10646 NULL
157382 +enable_so_smk_write_relabel_self_fndecl_10657 smk_write_relabel_self fndecl 3 10657 NULL
157383 +enable_so_memory_size_vhost_memory_region_10658 memory_size vhost_memory_region 0 10658 NULL
157384 +enable_so_tlv_put_fndecl_10659 tlv_put fndecl 4-0 10659 NULL
157385 +enable_so_start_mtd_oob_buf32_10664 start mtd_oob_buf32 0 10664 NULL
157386 +enable_so_len_ahd_dma_seg_10667 len ahd_dma_seg 0 10667 NULL
157387 +enable_so_radeon_ttm_tt_create_fndecl_10672 radeon_ttm_tt_create fndecl 2 10672 NULL
157388 +enable_so_mmc_test_simple_transfer_fndecl_10675 mmc_test_simple_transfer fndecl 6-5-3 10675 NULL
157389 +enable_so_cdce925_pll_find_rate_fndecl_10678 cdce925_pll_find_rate fndecl 2-1 10678 NULL
157390 +enable_so_xfs_rtfind_forw_fndecl_10681 xfs_rtfind_forw fndecl 3 10681 NULL nohasharray
157391 +enable_so_word_size_e1000_nvm_info_10681 word_size e1000_nvm_info 0 10681 &enable_so_xfs_rtfind_forw_fndecl_10681
157392 +enable_so_tlen_sc18is602_10682 tlen sc18is602 0 10682 NULL
157393 +enable_so_sb_bsize_gfs2_sb_host_10683 sb_bsize gfs2_sb_host 0 10683 NULL
157394 +enable_so_ipv6_setsockopt_fndecl_10684 ipv6_setsockopt fndecl 5 10684 NULL
157395 +enable_so_extract_icmp6_fields_fndecl_10685 extract_icmp6_fields fndecl 2 10685 NULL nohasharray
157396 +enable_so_write_file_bool_bmps_fndecl_10685 write_file_bool_bmps fndecl 3 10685 &enable_so_extract_icmp6_fields_fndecl_10685
157397 +enable_so_num_frames_usb_usbvision_10687 num_frames usb_usbvision 0 10687 NULL
157398 +enable_so_alauda_read_block_raw_fndecl_10688 alauda_read_block_raw fndecl 4 10688 NULL
157399 +enable_so_rx_ba_win_size_conf_ht_setting_10692 rx_ba_win_size conf_ht_setting 0 10692 NULL
157400 +enable_so_gigaset_initbcs_fndecl_10693 gigaset_initbcs fndecl 3 10693 NULL
157401 +enable_so_lov_ost_pool_extend_fndecl_10697 lov_ost_pool_extend fndecl 2 10697 NULL
157402 +enable_so_afs_write_begin_fndecl_10704 afs_write_begin fndecl 3-4 10704 NULL
157403 +enable_so_ft_burst_len_fcp_txrdy_10705 ft_burst_len fcp_txrdy 0 10705 NULL
157404 +enable_so_xfs_alloc_read_agf_fndecl_10710 xfs_alloc_read_agf fndecl 3 10710 NULL
157405 +enable_so_iio_set_bytes_per_datum_kfifo_fndecl_10712 iio_set_bytes_per_datum_kfifo fndecl 2 10712 NULL
157406 +enable_so_bfad_iocmd_diag_fwping_fndecl_10717 bfad_iocmd_diag_fwping fndecl 0 10717 NULL
157407 +enable_so_set_le_key_k_offset_fndecl_10721 set_le_key_k_offset fndecl 3 10721 NULL
157408 +enable_so___btrfs_getxattr_fndecl_10728 __btrfs_getxattr fndecl 0 10728 NULL nohasharray
157409 +enable_so_ipv6_recv_error_fndecl_10728 ipv6_recv_error fndecl 3 10728 &enable_so___btrfs_getxattr_fndecl_10728 nohasharray
157410 +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
157411 +enable_so_xen_p2m_size_vardecl_10730 xen_p2m_size vardecl 0 10730 NULL
157412 +enable_so_iomem_reg_shift_serial_struct_10733 iomem_reg_shift serial_struct 0 10733 NULL
157413 +enable_so_ntp_fltr_count_bnxt_10734 ntp_fltr_count bnxt 0 10734 NULL
157414 +enable_so_write_file_queue_fndecl_10737 write_file_queue fndecl 3 10737 NULL
157415 +enable_so_sb_dirblklog_xfs_sb_10738 sb_dirblklog xfs_sb 0 10738 NULL
157416 +enable_so___memblock_find_range_bottom_up_fndecl_10739 __memblock_find_range_bottom_up fndecl 0-4-1-2 10739 NULL
157417 +enable_so_x_offset_mxr_crop_10741 x_offset mxr_crop 0 10741 NULL
157418 +enable_so_max_bytes_per_io_se_dev_attrib_10744 max_bytes_per_io se_dev_attrib 0 10744 NULL
157419 +enable_so_BufSizeShift_qinfo_chip_10746 BufSizeShift qinfo_chip 0 10746 NULL nohasharray
157420 +enable_so_page_errors_dio_10746 page_errors dio 0 10746 &enable_so_BufSizeShift_qinfo_chip_10746
157421 +enable_so_next_blkoff_curseg_info_10751 next_blkoff curseg_info 0 10751 NULL
157422 +enable_so_NumEraseRegions_cfi_ident_10753 NumEraseRegions cfi_ident 0 10753 NULL
157423 +enable_so_write_head_fndecl_10754 write_head fndecl 4 10754 NULL
157424 +enable_so_adu_write_fndecl_10756 adu_write fndecl 3 10756 NULL
157425 +enable_so_data_start_dm_verity_10759 data_start dm_verity 0 10759 NULL
157426 +enable_so_new_chunk_core_exception_10765 new_chunk core_exception 0 10765 NULL
157427 +enable_so_batadv_send_tt_request_fndecl_10766 batadv_send_tt_request fndecl 5 10766 NULL
157428 +enable_so_ocrdma_reg_user_mr_fndecl_10777 ocrdma_reg_user_mr fndecl 2-3 10777 NULL
157429 +enable_so_amdgpu_ttm_tt_create_fndecl_10779 amdgpu_ttm_tt_create fndecl 2 10779 NULL
157430 +enable_so_setexposure_fndecl_10781 setexposure fndecl 0 10781 NULL
157431 +enable_so_iptunnel_xmit_fndecl_10787 iptunnel_xmit fndecl 6 10787 NULL
157432 +enable_so_soc_camera_calc_client_output_fndecl_10789 soc_camera_calc_client_output fndecl 6 10789 NULL
157433 +enable_so_pnode_sz_ubifs_info_10791 pnode_sz ubifs_info 0 10791 NULL nohasharray
157434 +enable_so_ea_write_fndecl_10791 ea_write fndecl 3 10791 &enable_so_pnode_sz_ubifs_info_10791
157435 +enable_so_read32_brcmf_buscore_ops_10795 read32 brcmf_buscore_ops 0 10795 NULL
157436 +enable_so_set_config_fndecl_10797 set_config fndecl 0 10797 NULL
157437 +enable_so_num_events_kfd_ioctl_wait_events_args_10811 num_events kfd_ioctl_wait_events_args 0 10811 NULL nohasharray
157438 +enable_so_rtgt_cnt_snic_disc_10811 rtgt_cnt snic_disc 0 10811 &enable_so_num_events_kfd_ioctl_wait_events_args_10811
157439 +enable_so_ssb_sdio_block_write_fndecl_10815 ssb_sdio_block_write fndecl 3 10815 NULL nohasharray
157440 +enable_so_num_rxd_netxen_adapter_10815 num_rxd netxen_adapter 0 10815 &enable_so_ssb_sdio_block_write_fndecl_10815
157441 +enable_so_add_regulator_linked_fndecl_10819 add_regulator_linked fndecl 1 10819 NULL
157442 +enable_so_batadv_dat_snoop_incoming_arp_request_fndecl_10823 batadv_dat_snoop_incoming_arp_request fndecl 3 10823 NULL
157443 +enable_so_read_reg_ipac_hw_10828 read_reg ipac_hw 0 10828 NULL
157444 +enable_so_gart_end_crash_elf_data_10833 gart_end crash_elf_data 0 10833 NULL nohasharray
157445 +enable_so_num_mpt_mthca_profile_10833 num_mpt mthca_profile 0 10833 &enable_so_gart_end_crash_elf_data_10833
157446 +enable_so_rsrc_start_usb_hcd_10839 rsrc_start usb_hcd 0 10839 NULL
157447 +enable_so_do_generic_file_read_fndecl_10842 do_generic_file_read fndecl 0-4 10842 NULL
157448 +enable_so_get_cmdline_fndecl_10847 get_cmdline fndecl 3 10847 NULL
157449 +enable_so_dma_last_offset_ivtv_stream_10849 dma_last_offset ivtv_stream 0 10849 NULL
157450 +enable_so_set_le_fndecl_10854 set_le fndecl 4 10854 NULL nohasharray
157451 +enable_so_rndis_add_response_fndecl_10854 rndis_add_response fndecl 2 10854 &enable_so_set_le_fndecl_10854
157452 +enable_so_v_size_nilfs_argv_10857 v_size nilfs_argv 0 10857 NULL
157453 +enable_so_h_stk_size_10859 h stk_size 0 10859 NULL
157454 +enable_so_size_fuse_notify_retrieve_out_10862 size fuse_notify_retrieve_out 0 10862 NULL
157455 +enable_so_disk_expand_part_tbl_fndecl_10866 disk_expand_part_tbl fndecl 2 10866 NULL
157456 +enable_so_command_p_header95_10867 command p_header95 0 10867 NULL
157457 +enable_so_ezusb_fill_req_fndecl_10868 ezusb_fill_req fndecl 0-2 10868 NULL nohasharray
157458 +enable_so_ts_packet_count_cx23885_tsport_10868 ts_packet_count cx23885_tsport 0 10868 &enable_so_ezusb_fill_req_fndecl_10868
157459 +enable_so_p9stat_read_fndecl_10869 p9stat_read fndecl 3 10869 NULL
157460 +enable_so_spi_xmit_fndecl_10874 spi_xmit fndecl 3 10874 NULL
157461 +enable_so_pci_mmconfig_alloc_fndecl_10875 pci_mmconfig_alloc fndecl 2-3-4 10875 NULL
157462 +enable_so_w9968cf_pkt_scan_fndecl_10878 w9968cf_pkt_scan fndecl 3 10878 NULL
157463 +enable_so_sgl_map_user_pages_fndecl_10881 sgl_map_user_pages fndecl 3-2 10881 NULL
157464 +enable_so_num_streams_lola_pcm_10882 num_streams lola_pcm 0 10882 NULL
157465 +enable_so_run_apei_exec_ins_type_10886 run apei_exec_ins_type 0 10886 NULL
157466 +enable_so_drv_tss_rings_qlcnic_adapter_10887 drv_tss_rings qlcnic_adapter 0 10887 NULL
157467 +enable_so_spu_write_fndecl_10889 spu_write fndecl 4 10889 NULL
157468 +enable_so_ocfs2_reflink_xattr_rec_fndecl_10890 ocfs2_reflink_xattr_rec fndecl 3 10890 NULL
157469 +enable_so_max_sge_per_wr_iwch_rnic_attributes_10892 max_sge_per_wr iwch_rnic_attributes 0 10892 NULL
157470 +enable_so_ecryptfs_lower_header_size_fndecl_10894 ecryptfs_lower_header_size fndecl 0 10894 NULL
157471 +enable_so_slot_device_offset_controller_10895 slot_device_offset controller 0 10895 NULL
157472 +enable_so_i2c_hid_get_report_length_fndecl_10901 i2c_hid_get_report_length fndecl 0 10901 NULL nohasharray
157473 +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
157474 +enable_so_udf_read_ptagged_fndecl_10905 udf_read_ptagged fndecl 3 10905 NULL
157475 +enable_so_vfio_lock_acct_fndecl_10907 vfio_lock_acct fndecl 1 10907 NULL
157476 +enable_so_SyS_listxattr_fndecl_10916 SyS_listxattr fndecl 3 10916 NULL
157477 +enable_so_data_len_rndis_packet_10918 data_len rndis_packet 0 10918 NULL nohasharray
157478 +enable_so_compat_sys_msgsnd_fndecl_10918 compat_sys_msgsnd fndecl 3 10918 &enable_so_data_len_rndis_packet_10918
157479 +enable_so_isdn_audio_adpcm2xlaw_fndecl_10927 isdn_audio_adpcm2xlaw fndecl 0 10927 NULL
157480 +enable_so_ieee802154_max_payload_fndecl_10928 ieee802154_max_payload fndecl 0 10928 NULL
157481 +enable_so_ud_bmove_fndecl_10929 ud_bmove fndecl 8-6-4-7-5-3 10929 NULL
157482 +enable_so_dma_acm_rb_10934 dma acm_rb 0 10934 NULL
157483 +enable_so_l_offset_lbuf_10935 l_offset lbuf 0 10935 NULL
157484 +enable_so_compat_raw_setsockopt_fndecl_10937 compat_raw_setsockopt fndecl 5 10937 NULL
157485 +enable_so_bmp_len_xfrm_replay_state_esn_10945 bmp_len xfrm_replay_state_esn 0 10945 NULL
157486 +enable_so_max_i2c_msg_len_r820t_config_10951 max_i2c_msg_len r820t_config 0 10951 NULL nohasharray
157487 +enable_so_acc_passl_accessdata_dn_10951 acc_passl accessdata_dn 0 10951 &enable_so_max_i2c_msg_len_r820t_config_10951
157488 +enable_so_num_lan_qps_i40e_pf_10953 num_lan_qps i40e_pf 0 10953 NULL
157489 +enable_so_iov_iter_init_fndecl_10954 iov_iter_init fndecl 5-4 10954 NULL
157490 +enable_so_dest_offset_btrfs_ioctl_clone_range_args_10960 dest_offset btrfs_ioctl_clone_range_args 0 10960 NULL
157491 +enable_so_drm_fb_helper_fill_fix_fndecl_10963 drm_fb_helper_fill_fix fndecl 2 10963 NULL
157492 +enable_so_brd_alloc_fndecl_10964 brd_alloc fndecl 1 10964 NULL
157493 +enable_so_jffs2_flash_read_fndecl_10968 jffs2_flash_read fndecl 0 10968 NULL
157494 +enable_so_agp_remap_fndecl_10970 agp_remap fndecl 2 10970 NULL
157495 +enable_so_sys_ftruncate_fndecl_10972 sys_ftruncate fndecl 2 10972 NULL
157496 +enable_so_encrypted_key_size_ecryptfs_session_key_10978 encrypted_key_size ecryptfs_session_key 0 10978 NULL nohasharray
157497 +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
157498 +enable_so_ssid_len_wl1271_scan_10981 ssid_len wl1271_scan 0 10981 NULL
157499 +enable_so_lbs_wrbbp_write_fndecl_10987 lbs_wrbbp_write fndecl 3 10987 NULL
157500 +enable_so_l2cap_build_conf_rsp_fndecl_10988 l2cap_build_conf_rsp fndecl 0 10988 NULL
157501 +enable_so_msize_vardecl_pmc551_c_10989 msize vardecl_pmc551.c 0 10989 NULL nohasharray
157502 +enable_so_vxfs_blkiget_fndecl_10989 vxfs_blkiget fndecl 3-2 10989 &enable_so_msize_vardecl_pmc551_c_10989
157503 +enable_so_height_v4l2_rect_10995 height v4l2_rect 0 10995 NULL
157504 +enable_so_punit_size2_intel_pmc_ipc_dev_10998 punit_size2 intel_pmc_ipc_dev 0 10998 NULL
157505 +enable_so_l2nbperpage_jfs_sb_info_11000 l2nbperpage jfs_sb_info 0 11000 NULL
157506 +enable_so_dccp_setsockopt_ccid_fndecl_11006 dccp_setsockopt_ccid fndecl 4 11006 NULL
157507 +enable_so_drm_gtf2_m_fndecl_11007 drm_gtf2_m fndecl 0 11007 NULL
157508 +enable_so_SyS_semop_fndecl_11008 SyS_semop fndecl 3 11008 NULL
157509 +enable_so_height_v4l2_pix_format_mplane_11015 height v4l2_pix_format_mplane 0 11015 NULL
157510 +enable_so_xferred_ScsiReqBlk_11017 xferred ScsiReqBlk 0 11017 NULL
157511 +enable_so_target_cmd_size_check_fndecl_11019 target_cmd_size_check fndecl 2 11019 NULL
157512 +enable_so_rx_pkt_pad_sge_11020 rx_pkt_pad sge 0 11020 NULL
157513 +enable_so_len_hif_scatter_req_11022 len hif_scatter_req 0 11022 NULL
157514 +enable_so_error_bio_batch_11023 error bio_batch 0 11023 NULL
157515 +enable_so_register_virtio_driver_fndecl_11025 register_virtio_driver fndecl 0 11025 NULL
157516 +enable_so_preallocate_pcm_pages_fndecl_11026 preallocate_pcm_pages fndecl 2 11026 NULL
157517 +enable_so_count_vfio_irq_set_11027 count vfio_irq_set 0 11027 NULL
157518 +enable_so_drm_dp_sideband_msg_build_fndecl_11028 drm_dp_sideband_msg_build fndecl 3 11028 NULL
157519 +enable_so_len_nfs3_mknodargs_11030 len nfs3_mknodargs 0 11030 NULL
157520 +enable_so_snd_ac97_pcm_assign_fndecl_11033 snd_ac97_pcm_assign fndecl 2 11033 NULL
157521 +enable_so_sectors_per_block_pool_11035 sectors_per_block pool 0 11035 NULL nohasharray
157522 +enable_so_audio_outs_vx_core_11035 audio_outs vx_core 0 11035 &enable_so_sectors_per_block_pool_11035
157523 +enable_so_ep_msg_in_peak_usb_device_11036 ep_msg_in peak_usb_device 0 11036 NULL nohasharray
157524 +enable_so_namelen_xfs_dir2_data_entry_11036 namelen xfs_dir2_data_entry 0 11036 &enable_so_ep_msg_in_peak_usb_device_11036
157525 +enable_so_iic_tpm_write_fndecl_11039 iic_tpm_write fndecl 3 11039 NULL
157526 +enable_so_DataTransferLength_DAC960_V2_UserCommand_11040 DataTransferLength DAC960_V2_UserCommand 0 11040 NULL
157527 +enable_so_xlog_write_log_records_fndecl_11042 xlog_write_log_records fndecl 4-3 11042 NULL
157528 +enable_so_isr_pci_pm_read_fndecl_11052 isr_pci_pm_read fndecl 3 11052 NULL
157529 +enable_so_va_size_coda_vattr_11053 va_size coda_vattr 0 11053 NULL
157530 +enable_so_drbd_send_drequest_fndecl_11057 drbd_send_drequest fndecl 3-4 11057 NULL
157531 +enable_so_do_mlock_fndecl_11062 do_mlock fndecl 1-2 11062 NULL
157532 +enable_so_default_rds_buf_vardecl_fmdrv_common_c_11072 default_rds_buf vardecl_fmdrv_common.c 0 11072 NULL
157533 +enable_so_i2c_writebytes_fndecl_11073 i2c_writebytes fndecl 4 11073 NULL
157534 +enable_so_ib_agent_port_open_fndecl_11074 ib_agent_port_open fndecl 2 11074 NULL
157535 +enable_so_pipeline_sec_frag_swi_read_fndecl_11077 pipeline_sec_frag_swi_read fndecl 3 11077 NULL
157536 +enable_so_entry_fat_entry_11079 entry fat_entry 0 11079 NULL
157537 +enable_so_irda_sendmsg_dgram_fndecl_11080 irda_sendmsg_dgram fndecl 3 11080 NULL
157538 +enable_so_tx_load_dma_buffer_fndecl_11082 tx_load_dma_buffer fndecl 3 11082 NULL
157539 +enable_so_compat_readv_fndecl_11090 compat_readv fndecl 3 11090 NULL
157540 +enable_so_snd_pcm_new_internal_fndecl_11091 snd_pcm_new_internal fndecl 4-5 11091 NULL
157541 +enable_so_read_bytes_sh_flctl_11094 read_bytes sh_flctl 0 11094 NULL
157542 +enable_so_do_brk_fndecl_11101 do_brk fndecl 1-2 11101 NULL
157543 +enable_so_acpi_processor_power_verify_fndecl_11105 acpi_processor_power_verify fndecl 0 11105 NULL
157544 +enable_so___getblk_gfp_fndecl_11107 __getblk_gfp fndecl 3-2 11107 NULL nohasharray
157545 +enable_so_ext4_acl_from_disk_fndecl_11107 ext4_acl_from_disk fndecl 2 11107 &enable_so___getblk_gfp_fndecl_11107
157546 +enable_so_wm9081_set_sysclk_fndecl_11108 wm9081_set_sysclk fndecl 4 11108 NULL nohasharray
157547 +enable_so_wTotalBlockNumber_ms_bootblock_sysinf_11108 wTotalBlockNumber ms_bootblock_sysinf 0 11108 &enable_so_wm9081_set_sysclk_fndecl_11108
157548 +enable_so_addr_last_netup_dma_11114 addr_last netup_dma 0 11114 NULL
157549 +enable_so_hpfs_ea_read_fndecl_11118 hpfs_ea_read fndecl 5-4-2 11118 NULL
157550 +enable_so__fdt_splice_string_fndecl_11123 _fdt_splice_string fndecl 2 11123 NULL
157551 +enable_so_whitebal_sd_gl860_11124 whitebal sd_gl860 0 11124 NULL
157552 +enable_so_n_channels_iwl_mcc_update_resp_11128 n_channels iwl_mcc_update_resp 0 11128 NULL
157553 +enable_so___vmalloc_node_flags_fndecl_11139 __vmalloc_node_flags fndecl 1 11139 NULL
157554 +enable_so_num__cdrp_cmd_11142 num _cdrp_cmd 0 11142 NULL
157555 +enable_so_pageshift_nand_flash_dev_11144 pageshift nand_flash_dev 0 11144 NULL
157556 +enable_so_queue_depth_nullb_queue_11148 queue_depth nullb_queue 0 11148 NULL
157557 +enable_so_max_voices_snd_emux_11150 max_voices snd_emux 0 11150 NULL
157558 +enable_so_generic_ptrace_pokedata_fndecl_11153 generic_ptrace_pokedata fndecl 2 11153 NULL
157559 +enable_so_o2nm_this_node_fndecl_11157 o2nm_this_node fndecl 0 11157 NULL
157560 +enable_so_resource_from_user_fndecl_11158 resource_from_user fndecl 3 11158 NULL
157561 +enable_so_batadv_bla_add_claim_fndecl_11159 batadv_bla_add_claim fndecl 3 11159 NULL
157562 +enable_so_tclass_mlx5_av_11167 tclass mlx5_av 0 11167 NULL
157563 +enable_so_rmtvaluelen2_xfs_da_args_11168 rmtvaluelen2 xfs_da_args 0 11168 NULL
157564 +enable_so_FlNum_hfs_cat_file_11169 FlNum hfs_cat_file 0 11169 NULL nohasharray
157565 +enable_so_drv_rss_rings_qlcnic_adapter_11169 drv_rss_rings qlcnic_adapter 0 11169 &enable_so_FlNum_hfs_cat_file_11169
157566 +enable_so_max_supported_extcon_dev_11172 max_supported extcon_dev 0 11172 NULL
157567 +enable_so_udf_tread_fndecl_11173 udf_tread fndecl 2 11173 NULL
157568 +enable_so_payload_len_fc_bsg_buffer_11175 payload_len fc_bsg_buffer 0 11175 NULL
157569 +enable_so_c4iw_init_resource_fndecl_11178 c4iw_init_resource fndecl 2-3 11178 NULL
157570 +enable_so_jp_journal_1st_block_journal_params_11180 jp_journal_1st_block journal_params 0 11180 NULL
157571 +enable_so_ilo_major_vardecl_hpilo_c_11181 ilo_major vardecl_hpilo.c 0 11181 NULL
157572 +enable_so_xtInsert_fndecl_11182 xtInsert fndecl 5-4 11182 NULL
157573 +enable_so_resp_len_pn533_cmd_11192 resp_len pn533_cmd 0 11192 NULL nohasharray
157574 +enable_so_sys_get_mempolicy_fndecl_11192 sys_get_mempolicy fndecl 4-3 11192 &enable_so_resp_len_pn533_cmd_11192
157575 +enable_so_resid_virtio_scsi_cmd_resp_11193 resid virtio_scsi_cmd_resp 0 11193 NULL
157576 +enable_so_nr_pins_timbgpio_platform_data_11195 nr_pins timbgpio_platform_data 0 11195 NULL
157577 +enable_so_mangle_sdp_packet_fndecl_11198 mangle_sdp_packet fndecl 2-10 11198 NULL
157578 +enable_so_snoop_send_pio_handler_fndecl_11203 snoop_send_pio_handler fndecl 3 11203 NULL
157579 +enable_so_vb2_fop_write_fndecl_11207 vb2_fop_write fndecl 3 11207 NULL
157580 +enable_so_wipers_mcp4531_cfg_11208 wipers mcp4531_cfg 0 11208 NULL
157581 +enable_so_used_bytes_ubi_volume_info_11209 used_bytes ubi_volume_info 0 11209 NULL
157582 +enable_so_mq_create_fndecl_11210 mq_create fndecl 1 11210 NULL nohasharray
157583 +enable_so_lstcon_session_info_fndecl_11210 lstcon_session_info fndecl 6 11210 &enable_so_mq_create_fndecl_11210
157584 +enable_so_tx_tx_template_prepared_read_fndecl_11211 tx_tx_template_prepared_read fndecl 3 11211 NULL
157585 +enable_so_vid_end_switchdev_obj_port_vlan_11218 vid_end switchdev_obj_port_vlan 0 11218 NULL
157586 +enable_so_num_encoder_drm_mode_config_11220 num_encoder drm_mode_config 0 11220 NULL
157587 +enable_so_max_flash_intensity_adp1653_platform_data_11225 max_flash_intensity adp1653_platform_data 0 11225 NULL
157588 +enable_so_bcd2000_dump_buffer_fndecl_11234 bcd2000_dump_buffer fndecl 3 11234 NULL
157589 +enable_so_hdr_len_ieee80211_cipher_scheme_11241 hdr_len ieee80211_cipher_scheme 0 11241 NULL
157590 +enable_so_enable_write_fndecl_11243 enable_write fndecl 3 11243 NULL
157591 +enable_so_tx_tx_template_programmed_read_fndecl_11246 tx_tx_template_programmed_read fndecl 3 11246 NULL
157592 +enable_so_nfsd_get_default_max_blksize_fndecl_11251 nfsd_get_default_max_blksize fndecl 0 11251 NULL
157593 +enable_so_ds1305_nvram_write_fndecl_11267 ds1305_nvram_write fndecl 6 11267 NULL
157594 +enable_so_hactive_videomode_11268 hactive videomode 0 11268 NULL nohasharray
157595 +enable_so_ubi_leb_read_sg_fndecl_11268 ubi_leb_read_sg fndecl 0 11268 &enable_so_hactive_videomode_11268
157596 +enable_so_btcx_align_fndecl_11269 btcx_align fndecl 4 11269 NULL
157597 +enable_so_snd_midi_event_encode_byte_fndecl_11281 snd_midi_event_encode_byte fndecl 0 11281 NULL
157598 +enable_so_btrfs_set_prop_fndecl_11284 btrfs_set_prop fndecl 4 11284 NULL
157599 +enable_so_exynos4_jpeg_get_output_buffer_size_fndecl_11286 exynos4_jpeg_get_output_buffer_size fndecl 0-3 11286 NULL
157600 +enable_so_push_rx_fndecl_11288 push_rx fndecl 3 11288 NULL
157601 +enable_so_snd_efw_resp_buf_size_vardecl_11291 snd_efw_resp_buf_size vardecl 0 11291 NULL
157602 +enable_so_mxuport_prepare_write_buffer_fndecl_11292 mxuport_prepare_write_buffer fndecl 3 11292 NULL
157603 +enable_so_alloc_test_extent_buffer_fndecl_11293 alloc_test_extent_buffer fndecl 2 11293 NULL
157604 +enable_so_newkey_nilfs_btnode_chkey_ctxt_11296 newkey nilfs_btnode_chkey_ctxt 0 11296 NULL
157605 +enable_so_max_pkt_size_stk1160_11297 max_pkt_size stk1160 0 11297 NULL
157606 +enable_so_wqe_shift_mthca_wq_11298 wqe_shift mthca_wq 0 11298 NULL
157607 +enable_so_remap_pfn_range_fndecl_11299 remap_pfn_range fndecl 3-4 11299 NULL
157608 +enable_so_data_len_ssif_info_11317 data_len ssif_info 0 11317 NULL
157609 +enable_so_buf_len_mwifiex_sdio_mpa_tx_11323 buf_len mwifiex_sdio_mpa_tx 0 11323 NULL
157610 +enable_so_len_brcmf_vndr_dcmd_hdr_11327 len brcmf_vndr_dcmd_hdr 0 11327 NULL nohasharray
157611 +enable_so_alloc_sched_domains_fndecl_11327 alloc_sched_domains fndecl 1 11327 &enable_so_len_brcmf_vndr_dcmd_hdr_11327
157612 +enable_so_back_xfs_da_blkinfo_11330 back xfs_da_blkinfo 0 11330 NULL
157613 +enable_so_page_size_ib_umem_11335 page_size ib_umem 0 11335 NULL
157614 +enable_so_out_len_tso_state_11337 out_len tso_state 0 11337 NULL
157615 +enable_so_charcount_console_font_11338 charcount console_font 0 11338 NULL
157616 +enable_so_command_p_header100_11343 command p_header100 0 11343 NULL
157617 +enable_so_s_sbbase_ufs_sb_private_info_11344 s_sbbase ufs_sb_private_info 0 11344 NULL
157618 +enable_so_hci_sock_setsockopt_fndecl_11346 hci_sock_setsockopt fndecl 5 11346 NULL
157619 +enable_so_update_devnum_fndecl_11348 update_devnum fndecl 2 11348 NULL
157620 +enable_so_buffer_length_usbdevfs_urb_11350 buffer_length usbdevfs_urb 0 11350 NULL
157621 +enable_so_nilfs_cpfile_delete_checkpoints_fndecl_11352 nilfs_cpfile_delete_checkpoints fndecl 2-3 11352 NULL
157622 +enable_so_vlanid_full_rx_done_desc_11354 vlanid full_rx_done_desc 0 11354 NULL
157623 +enable_so_n_pfns_xen_memory_region_11357 n_pfns xen_memory_region 0 11357 NULL
157624 +enable_so_fd_execute_rw_fndecl_11359 fd_execute_rw fndecl 3 11359 NULL
157625 +enable_so_amdgpu_gem_object_create_fndecl_11366 amdgpu_gem_object_create fndecl 2 11366 NULL nohasharray
157626 +enable_so_clkrc_div_ov965x_interval_11366 clkrc_div ov965x_interval 0 11366 &enable_so_amdgpu_gem_object_create_fndecl_11366
157627 +enable_so_tso_fragment_fndecl_11369 tso_fragment fndecl 3 11369 NULL
157628 +enable_so_build_dpcd_write_fndecl_11376 build_dpcd_write fndecl 4 11376 NULL
157629 +enable_so_xz_dec_init_fndecl_11382 xz_dec_init fndecl 2 11382 NULL
157630 +enable_so_sync_io_fndecl_11385 sync_io fndecl 0 11385 NULL
157631 +enable_so_max_tchs_cyttsp4_opcfg_11393 max_tchs cyttsp4_opcfg 0 11393 NULL nohasharray
157632 +enable_so_sctp_getsockopt_assoc_stats_fndecl_11393 sctp_getsockopt_assoc_stats fndecl 2 11393 &enable_so_max_tchs_cyttsp4_opcfg_11393
157633 +enable_so_txs_vardecl_ambassador_c_11398 txs vardecl_ambassador.c 0 11398 NULL
157634 +enable_so_setup_data_setup_header_11411 setup_data setup_header 0 11411 NULL
157635 +enable_so_in_args_qlcnic_mailbox_metadata_11413 in_args qlcnic_mailbox_metadata 0 11413 NULL
157636 +enable_so_iso_packets_buffer_init_fndecl_11414 iso_packets_buffer_init fndecl 3-4 11414 NULL
157637 +enable_so_cnt_qib_ctxtdata_11417 cnt qib_ctxtdata 0 11417 NULL
157638 +enable_so_smt_build_frame_fndecl_11428 smt_build_frame fndecl 4 11428 NULL
157639 +enable_so_isdn_ppp_write_fndecl_11430 isdn_ppp_write fndecl 4 11430 NULL
157640 +enable_so_rxBytesRemaining_edgeport_serial_11436 rxBytesRemaining edgeport_serial 0 11436 NULL nohasharray
157641 +enable_so_rule_cnt_ethtool_rxnfc_11436 rule_cnt ethtool_rxnfc 0 11436 &enable_so_rxBytesRemaining_edgeport_serial_11436
157642 +enable_so_acpi_node_prop_read_fndecl_11442 acpi_node_prop_read fndecl 0 11442 NULL
157643 +enable_so_llsec_do_decrypt_auth_fndecl_11445 llsec_do_decrypt_auth fndecl 0 11445 NULL
157644 +enable_so_ccp_init_dm_workarea_fndecl_11450 ccp_init_dm_workarea fndecl 3 11450 NULL
157645 +enable_so___compat_sys_preadv64_fndecl_11452 __compat_sys_preadv64 fndecl 3 11452 NULL
157646 +enable_so_proc_scsi_write_fndecl_11461 proc_scsi_write fndecl 3 11461 NULL
157647 +enable_so_reshape_ring_fndecl_11464 reshape_ring fndecl 2 11464 NULL
157648 +enable_so_len_cq_rsp_desc_11465 len_cq rsp_desc 0 11465 NULL
157649 +enable_so_NFTL_findfreeblock_fndecl_11466 NFTL_findfreeblock fndecl 0 11466 NULL
157650 +enable_so_lower_margin_fb_var_screeninfo_11469 lower_margin fb_var_screeninfo 0 11469 NULL
157651 +enable_so_id_header_size_perf_event_11470 id_header_size perf_event 0 11470 NULL
157652 +enable_so_sdhci_execute_tuning_fndecl_11471 sdhci_execute_tuning fndecl 2 11471 NULL
157653 +enable_so_ieee80211_send_bar_fndecl_11472 ieee80211_send_bar fndecl 3 11472 NULL
157654 +enable_so_hsync_len_videomode_11474 hsync_len videomode 0 11474 NULL
157655 +enable_so_iov_shorten_fndecl_11481 iov_shorten fndecl 3 11481 NULL nohasharray
157656 +enable_so_c_cpos_ocfs2_write_cluster_desc_11481 c_cpos ocfs2_write_cluster_desc 0 11481 &enable_so_iov_shorten_fndecl_11481
157657 +enable_so_num_crtc_drm_mode_config_11484 num_crtc drm_mode_config 0 11484 NULL
157658 +enable_so_count_e1000_ring_11491 count e1000_ring 0 11491 NULL
157659 +enable_so_get_ablock_fndecl_11495 get_ablock fndecl 2 11495 NULL nohasharray
157660 +enable_so_length_RioCommand_11495 length RioCommand 0 11495 &enable_so_get_ablock_fndecl_11495
157661 +enable_so_batadv_max_header_len_fndecl_11496 batadv_max_header_len fndecl 0 11496 NULL
157662 +enable_so_qcaspi_write_burst_fndecl_11497 qcaspi_write_burst fndecl 3 11497 NULL
157663 +enable_so_prepare_write_buffer_usb_serial_driver_11498 prepare_write_buffer usb_serial_driver 0 11498 NULL
157664 +enable_so_context_struct_to_string_fndecl_11502 context_struct_to_string fndecl 0 11502 NULL
157665 +enable_so_w_cpos_ocfs2_write_ctxt_11503 w_cpos ocfs2_write_ctxt 0 11503 NULL
157666 +enable_so_period_bytes_max_snd_pcm_hardware_11507 period_bytes_max snd_pcm_hardware 0 11507 NULL
157667 +enable_so_virtio_read_fndecl_11512 virtio_read fndecl 3 11512 NULL
157668 +enable_so_adau1701_register_size_fndecl_11523 adau1701_register_size fndecl 0 11523 NULL
157669 +enable_so_kvm_mmu_get_page_fndecl_11527 kvm_mmu_get_page fndecl 2 11527 NULL
157670 +enable_so_ccw_putcs_fndecl_11532 ccw_putcs fndecl 4-5-6 11532 NULL
157671 +enable_so_llcp_add_tlv_fndecl_11542 llcp_add_tlv fndecl 3 11542 NULL
157672 +enable_so_max_transfer_size_s2255_pipeinfo_11546 max_transfer_size s2255_pipeinfo 0 11546 NULL
157673 +enable_so_screen_height_vardecl_hyperv_fb_c_11550 screen_height vardecl_hyperv_fb.c 0 11550 NULL
157674 +enable_so_spi_sync_locked_fndecl_11557 spi_sync_locked fndecl 0 11557 NULL
157675 +enable_so_dm_startbit_adfs_discmap_11559 dm_startbit adfs_discmap 0 11559 NULL
157676 +enable_so_drm_plane_init_fndecl_11560 drm_plane_init fndecl 6 11560 NULL
157677 +enable_so_avail_in_z_stream_s_11562 avail_in z_stream_s 0 11562 NULL
157678 +enable_so_dataxfer_length_hpt_iop_request_scsi_command_11566 dataxfer_length hpt_iop_request_scsi_command 0 11566 NULL
157679 +enable_so_rec_len_nilfs_dir_entry_11567 rec_len nilfs_dir_entry 0 11567 NULL
157680 +enable_so_balance_level_fndecl_11568 balance_level fndecl 0 11568 NULL
157681 +enable_so_cur_transfer_size_s2255_pipeinfo_11571 cur_transfer_size s2255_pipeinfo 0 11571 NULL nohasharray
157682 +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
157683 +enable_so_find_compression_threshold_fndecl_11575 find_compression_threshold fndecl 3 11575 NULL nohasharray
157684 +enable_so___ocfs2_add_entry_fndecl_11575 __ocfs2_add_entry fndecl 4 11575 &enable_so_find_compression_threshold_fndecl_11575
157685 +enable_so_ram_header_offset_qxl_rom_11576 ram_header_offset qxl_rom 0 11576 NULL
157686 +enable_so_brcmf_fil_iovar_data_get_fndecl_11579 brcmf_fil_iovar_data_get fndecl 4 11579 NULL
157687 +enable_so_update_memcg_params_fndecl_11583 update_memcg_params fndecl 2 11583 NULL
157688 +enable_so_pwc_get_fps_fndecl_11588 pwc_get_fps fndecl 0 11588 NULL nohasharray
157689 +enable_so_next_index_jfs_inode_info_11588 next_index jfs_inode_info 0 11588 &enable_so_pwc_get_fps_fndecl_11588
157690 +enable_so_rpc_pipe_generic_upcall_fndecl_11597 rpc_pipe_generic_upcall fndecl 4 11597 NULL
157691 +enable_so_add_advertising_fndecl_11602 add_advertising fndecl 4 11602 NULL
157692 +enable_so_prev_free_msdos_sb_info_11603 prev_free msdos_sb_info 0 11603 NULL nohasharray
157693 +enable_so_spi_execute_fndecl_11603 spi_execute fndecl 5 11603 &enable_so_prev_free_msdos_sb_info_11603 nohasharray
157694 +enable_so_slave_num_vardecl_shdma_base_c_11603 slave_num vardecl_shdma-base.c 0 11603 &enable_so_spi_execute_fndecl_11603
157695 +enable_so_send_reply_fndecl_11610 send_reply fndecl 7 11610 NULL nohasharray
157696 +enable_so_desc_num_hnae_ring_11610 desc_num hnae_ring 0 11610 &enable_so_send_reply_fndecl_11610
157697 +enable_so_batadv_tt_hash_find_fndecl_11619 batadv_tt_hash_find fndecl 3 11619 NULL
157698 +enable_so_word1_atl1e_recv_ret_status_11620 word1 atl1e_recv_ret_status 0 11620 NULL
157699 +enable_so_btrfs_add_ordered_extent_dio_fndecl_11621 btrfs_add_ordered_extent_dio fndecl 4-2-5-3 11621 NULL
157700 +enable_so_dataLen_PVSCSIRingCmpDesc_11627 dataLen PVSCSIRingCmpDesc 0 11627 NULL
157701 +enable_so_acpi_register_ioapic_fndecl_11630 acpi_register_ioapic fndecl 3 11630 NULL
157702 +enable_so_posix_acl_init_fndecl_11632 posix_acl_init fndecl 2 11632 NULL nohasharray
157703 +enable_so_dtl1_write_fndecl_11632 dtl1_write fndecl 0 11632 &enable_so_posix_acl_init_fndecl_11632 nohasharray
157704 +enable_so_peek_head_len_fndecl_11632 peek_head_len fndecl 0 11632 &enable_so_dtl1_write_fndecl_11632
157705 +enable_so_num_mon_ceph_options_11640 num_mon ceph_options 0 11640 NULL
157706 +enable_so_ceph_sync_direct_write_fndecl_11641 ceph_sync_direct_write fndecl 0-3 11641 NULL
157707 +enable_so_vmw_execbuf_process_fndecl_11642 vmw_execbuf_process fndecl 5 11642 NULL
157708 +enable_so_ath6kl_get_num_reg_fndecl_11647 ath6kl_get_num_reg fndecl 0 11647 NULL
157709 +enable_so_bulk_size_cam_11663 bulk_size cam 0 11663 NULL
157710 +enable_so___setup_root_fndecl_11664 __setup_root fndecl 2-1 11664 NULL nohasharray
157711 +enable_so_num_snd_ratnum_11664 num snd_ratnum 0 11664 &enable_so___setup_root_fndecl_11664 nohasharray
157712 +enable_so_lpfc_sli4_bsg_set_internal_loopback_fndecl_11664 lpfc_sli4_bsg_set_internal_loopback fndecl 0 11664 &enable_so_num_snd_ratnum_11664
157713 +enable_so_sel_write_member_fndecl_11667 sel_write_member fndecl 3 11667 NULL
157714 +enable_so_align_pnp_mem_11669 align pnp_mem 0 11669 NULL
157715 +enable_so___btrfs_find_all_roots_fndecl_11682 __btrfs_find_all_roots fndecl 3 11682 NULL nohasharray
157716 +enable_so_vp_request_msix_vectors_fndecl_11682 vp_request_msix_vectors fndecl 2 11682 &enable_so___btrfs_find_all_roots_fndecl_11682
157717 +enable_so_i915_stolen_to_physical_fndecl_11685 i915_stolen_to_physical fndecl 0 11685 NULL nohasharray
157718 +enable_so_erasesize_mtd_erase_region_info_11685 erasesize mtd_erase_region_info 0 11685 &enable_so_i915_stolen_to_physical_fndecl_11685
157719 +enable_so_data_len_b43legacy_dfs_file_11690 data_len b43legacy_dfs_file 0 11690 NULL
157720 +enable_so_fill_note_info_fndecl_11692 fill_note_info fndecl 2 11692 NULL
157721 +enable_so_tx_tail_len_pn533_frame_ops_11694 tx_tail_len pn533_frame_ops 0 11694 NULL
157722 +enable_so_stride_efifb_dmi_info_11695 stride efifb_dmi_info 0 11695 NULL
157723 +enable_so_num_rates_wmi_rate_set_arg_11696 num_rates wmi_rate_set_arg 0 11696 NULL
157724 +enable_so_kernel_tree_alloc_fndecl_11698 kernel_tree_alloc fndecl 1 11698 NULL
157725 +enable_so_shared_mic_nid_ca0132_spec_11702 shared_mic_nid ca0132_spec 0 11702 NULL
157726 +enable_so___vma_reservation_common_fndecl_11707 __vma_reservation_common fndecl 3 11707 NULL
157727 +enable_so_phys_lcr_base__synclinkmp_info_11713 phys_lcr_base _synclinkmp_info 0 11713 NULL
157728 +enable_so_sizeof_partition_entry__gpt_header_11718 sizeof_partition_entry _gpt_header 0 11718 NULL
157729 +enable_so_ipv6_renew_options_fndecl_11728 ipv6_renew_options fndecl 5 11728 NULL
157730 +enable_so_ov511_pkt_scan_fndecl_11737 ov511_pkt_scan fndecl 3 11737 NULL
157731 +enable_so_num_clocks_cam_clk_provider_11741 num_clocks cam_clk_provider 0 11741 NULL
157732 +enable_so_gart_pin_size_radeon_device_11745 gart_pin_size radeon_device 0 11745 NULL
157733 +enable_so_symlink_size_squashfs_symlink_inode_11747 symlink_size squashfs_symlink_inode 0 11747 NULL
157734 +enable_so_log_num_cqs_mlx4_init_hca_param_11748 log_num_cqs mlx4_init_hca_param 0 11748 NULL
157735 +enable_so_lba_shift_nvme_ns_11763 lba_shift nvme_ns 0 11763 NULL nohasharray
157736 +enable_so_count_nfs_pgio_res_11763 count nfs_pgio_res 0 11763 &enable_so_lba_shift_nvme_ns_11763
157737 +enable_so_num_mtt_mthca_profile_11767 num_mtt mthca_profile 0 11767 NULL
157738 +enable_so_length_acpi_dmar_header_11768 length acpi_dmar_header 0 11768 NULL
157739 +enable_so_grow_buffers_fndecl_11774 grow_buffers fndecl 3-2 11774 NULL
157740 +enable_so_pci_scan_child_bus_fndecl_11784 pci_scan_child_bus fndecl 0 11784 NULL
157741 +enable_so_svc_pool_map_init_percpu_fndecl_11792 svc_pool_map_init_percpu fndecl 0 11792 NULL nohasharray
157742 +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
157743 +enable_so_find_vqs_virtio_config_ops_11797 find_vqs virtio_config_ops 0 11797 NULL
157744 +enable_so_p9_client_prepare_req_fndecl_11803 p9_client_prepare_req fndecl 3 11803 NULL
157745 +enable_so___kmalloc_node_fndecl_11804 __kmalloc_node fndecl 1 11804 NULL
157746 +enable_so_depth_cx23885_fmt_11806 depth cx23885_fmt 0 11806 NULL
157747 +enable_so_num_resources_nd_namespace_blk_11815 num_resources nd_namespace_blk 0 11815 NULL nohasharray
157748 +enable_so_max_hw_sectors_queue_limits_11815 max_hw_sectors queue_limits 0 11815 &enable_so_num_resources_nd_namespace_blk_11815
157749 +enable_so_SyS_flistxattr_fndecl_11825 SyS_flistxattr fndecl 3 11825 NULL
157750 +enable_so_bufflen_alua_dh_data_11826 bufflen alua_dh_data 0 11826 NULL
157751 +enable_so_be_change_mtu_fndecl_11828 be_change_mtu fndecl 2 11828 NULL
157752 +enable_so_acpi_allocate_root_table_fndecl_11829 acpi_allocate_root_table fndecl 1 11829 NULL
157753 +enable_so_length_TAG_TW_SG_Entry_ISO_11846 length TAG_TW_SG_Entry_ISO 0 11846 NULL
157754 +enable_so_mic_vringh_copy_fndecl_11848 mic_vringh_copy fndecl 4 11848 NULL
157755 +enable_so_num_crtc_mga_device_11851 num_crtc mga_device 0 11851 NULL
157756 +enable_so_number_of_packets_urb_11853 number_of_packets urb 0 11853 NULL nohasharray
157757 +enable_so_add_to_page_cache_lru_fndecl_11853 add_to_page_cache_lru fndecl 0 11853 &enable_so_number_of_packets_urb_11853
157758 +enable_so_sg_tablesize_srp_target_port_11858 sg_tablesize srp_target_port 0 11858 NULL
157759 +enable_so_frame_rate_sd_11862 frame_rate sd 0 11862 NULL
157760 +enable_so_s_nsegments_nilfs_super_block_11865 s_nsegments nilfs_super_block 0 11865 NULL
157761 +enable_so_wr_host_buf_pos_xilly_channel_11866 wr_host_buf_pos xilly_channel 0 11866 NULL
157762 +enable_so_heads_ssfdcr_record_11869 heads ssfdcr_record 0 11869 NULL
157763 +enable_so_u8ssidlen_hidden_net_info_11872 u8ssidlen hidden_net_info 0 11872 NULL
157764 +enable_so_domain_child_num_acl_role_label_11875 domain_child_num acl_role_label 0 11875 NULL
157765 +enable_so_dm_btree_lookup_next_fndecl_11876 dm_btree_lookup_next fndecl 2-0 11876 NULL
157766 +enable_so_idetape_queue_rw_tail_fndecl_11881 idetape_queue_rw_tail fndecl 3 11881 NULL
157767 +enable_so_leaf_dealloc_fndecl_11885 leaf_dealloc fndecl 4-3 11885 NULL nohasharray
157768 +enable_so_alloc_empty_pages_fndecl_11885 alloc_empty_pages fndecl 2 11885 &enable_so_leaf_dealloc_fndecl_11885 nohasharray
157769 +enable_so_bochs_dispi_read_fndecl_11885 bochs_dispi_read fndecl 0 11885 &enable_so_alloc_empty_pages_fndecl_11885
157770 +enable_so_f_width_gsc_frame_11886 f_width gsc_frame 0 11886 NULL
157771 +enable_so_num_channels_iw_scan_req_11889 num_channels iw_scan_req 0 11889 NULL
157772 +enable_so_vfs_read_fndecl_11892 vfs_read fndecl 3-0 11892 NULL nohasharray
157773 +enable_so_chap_string_to_hex_fndecl_11892 chap_string_to_hex fndecl 0-3 11892 &enable_so_vfs_read_fndecl_11892
157774 +enable_so_llcp_tlv16_fndecl_11893 llcp_tlv16 fndecl 0 11893 NULL
157775 +enable_so_flaglen_ring_desc_ex_11894 flaglen ring_desc_ex 0 11894 NULL
157776 +enable_so_set_brk_fndecl_11900 set_brk fndecl 1-2 11900 NULL
157777 +enable_so_libipw_change_mtu_fndecl_11901 libipw_change_mtu fndecl 2 11901 NULL
157778 +enable_so_fw_dump_size_scsi_qla_host_11903 fw_dump_size scsi_qla_host 0 11903 NULL
157779 +enable_so_iwl_dbgfs_missed_beacon_write_fndecl_11905 iwl_dbgfs_missed_beacon_write fndecl 3 11905 NULL
157780 +enable_so_num_dma_mlx5e_tx_skb_cb_11911 num_dma mlx5e_tx_skb_cb 0 11911 NULL nohasharray
157781 +enable_so_snd_device_new_fndecl_11911 snd_device_new fndecl 0 11911 &enable_so_num_dma_mlx5e_tx_skb_cb_11911
157782 +enable_so_dio_set_defer_completion_fndecl_11916 dio_set_defer_completion fndecl 0 11916 NULL
157783 +enable_so_residual_length_atto_vda_scsi_rsp_11918 residual_length atto_vda_scsi_rsp 0 11918 NULL
157784 +enable_so_lbs_lowsnr_read_fndecl_11920 lbs_lowsnr_read fndecl 3 11920 NULL
157785 +enable_so_p9_fd_read_fndecl_11921 p9_fd_read fndecl 3-0 11921 NULL
157786 +enable_so_kvm_read_guest_virt_system_fndecl_11922 kvm_read_guest_virt_system fndecl 4-2 11922 NULL
157787 +enable_so_tx_buffer_count_hso_serial_11927 tx_buffer_count hso_serial 0 11927 NULL
157788 +enable_so_orig_start_move_extent_11928 orig_start move_extent 0 11928 NULL
157789 +enable_so_length_p_header100_11933 length p_header100 0 11933 NULL
157790 +enable_so_ext4_move_extents_fndecl_11935 ext4_move_extents fndecl 5-3-4 11935 NULL
157791 +enable_so_alloc_low_pages_fndecl_11940 alloc_low_pages fndecl 1 11940 NULL
157792 +enable_so_mss_request_sock_11943 mss request_sock 0 11943 NULL
157793 +enable_so_spi_write_fndecl_11948 spi_write fndecl 0 11948 NULL
157794 +enable_so_choose_data_offset_fndecl_11950 choose_data_offset fndecl 0 11950 NULL
157795 +enable_so_bpp_bdisp_fmt_11954 bpp bdisp_fmt 0 11954 NULL
157796 +enable_so_mmc_send_tuning_fndecl_11955 mmc_send_tuning fndecl 2 11955 NULL
157797 +enable_so_qla4_82xx_pci_set_window_fndecl_11958 qla4_82xx_pci_set_window fndecl 0-2 11958 NULL
157798 +enable_so_osc_cached_mb_seq_write_fndecl_11961 osc_cached_mb_seq_write fndecl 3 11961 NULL
157799 +enable_so_fdt_subnode_offset_namelen_fndecl_11971 fdt_subnode_offset_namelen fndecl 2-0 11971 NULL
157800 +enable_so_bsg_major_vardecl_bsg_c_11972 bsg_major vardecl_bsg.c 0 11972 NULL
157801 +enable_so_sctp_make_abort_user_fndecl_11973 sctp_make_abort_user fndecl 3 11973 NULL nohasharray
157802 +enable_so_spmi_controller_alloc_fndecl_11973 spmi_controller_alloc fndecl 2 11973 &enable_so_sctp_make_abort_user_fndecl_11973
157803 +enable_so_pcpu_nr_groups_vardecl_percpu_c_11974 pcpu_nr_groups vardecl_percpu.c 0 11974 NULL
157804 +enable_so_ath10k_htt_rx_crypto_param_len_fndecl_11982 ath10k_htt_rx_crypto_param_len fndecl 0 11982 NULL
157805 +enable_so_total_mapping_size_fndecl_11985 total_mapping_size fndecl 0 11985 NULL
157806 +enable_so_ssp_create_msg_fndecl_11986 ssp_create_msg fndecl 2 11986 NULL
157807 +enable_so_tx_frag_cache_hit_read_fndecl_11988 tx_frag_cache_hit_read fndecl 3 11988 NULL
157808 +enable_so_host_int_setup_multicast_filter_fndecl_11989 host_int_setup_multicast_filter fndecl 3 11989 NULL
157809 +enable_so_x_size_mms114_platform_data_11991 x_size mms114_platform_data 0 11991 NULL
157810 +enable_so_virtualUnits_INFTLPartition_11994 virtualUnits INFTLPartition 0 11994 NULL
157811 +enable_so_rx_buffer_size_peak_usb_adapter_11997 rx_buffer_size peak_usb_adapter 0 11997 NULL
157812 +enable_so_ib_umad_init_port_fndecl_12004 ib_umad_init_port fndecl 2 12004 NULL
157813 +enable_so_error_data_insert_op_12006 error data_insert_op 0 12006 NULL
157814 +enable_so___btrfs_setxattr_fndecl_12010 __btrfs_setxattr fndecl 5 12010 NULL
157815 +enable_so___nlmsg_put_fndecl_12014 __nlmsg_put fndecl 5 12014 NULL nohasharray
157816 +enable_so_lustre_posix_acl_xattr_2ext_fndecl_12014 lustre_posix_acl_xattr_2ext fndecl 2 12014 &enable_so___nlmsg_put_fndecl_12014
157817 +enable_so_acl_cnt_xfs_acl_12016 acl_cnt xfs_acl 0 12016 NULL
157818 +enable_so_rfcomm_sock_sendmsg_fndecl_12022 rfcomm_sock_sendmsg fndecl 3 12022 NULL nohasharray
157819 +enable_so_br_send_bpdu_fndecl_12022 br_send_bpdu fndecl 3 12022 &enable_so_rfcomm_sock_sendmsg_fndecl_12022
157820 +enable_so_yres_fb_var_screeninfo_12023 yres fb_var_screeninfo 0 12023 NULL
157821 +enable_so_xfs_dir2_sf_addname_easy_fndecl_12024 xfs_dir2_sf_addname_easy fndecl 4 12024 NULL
157822 +enable_so_sisusb_write_mem_bulk_fndecl_12029 sisusb_write_mem_bulk fndecl 4 12029 NULL
157823 +enable_so_alloc_group_attrs_fndecl_12032 alloc_group_attrs fndecl 3 12032 NULL nohasharray
157824 +enable_so_wusb_prf_256_fndecl_12032 wusb_prf_256 fndecl 7 12032 &enable_so_alloc_group_attrs_fndecl_12032
157825 +enable_so_drm_property_create_enum_fndecl_12034 drm_property_create_enum fndecl 5 12034 NULL
157826 +enable_so_comedi_alloc_subdevices_fndecl_12036 comedi_alloc_subdevices fndecl 2 12036 NULL
157827 +enable_so_scsi_cmds_max_iscsi_session_12037 scsi_cmds_max iscsi_session 0 12037 NULL
157828 +enable_so_rf_suballoc_bit_ocfs2_refcount_block_12038 rf_suballoc_bit ocfs2_refcount_block 0 12038 NULL
157829 +enable_so___mm_populate_fndecl_12039 __mm_populate fndecl 2-1 12039 NULL
157830 +enable_so_regsize_si_sm_io_12043 regsize si_sm_io 0 12043 NULL
157831 +enable_so_batadv_bla_send_claim_fndecl_12045 batadv_bla_send_claim fndecl 3 12045 NULL
157832 +enable_so_physical_btrfs_bio_stripe_12047 physical btrfs_bio_stripe 0 12047 NULL
157833 +enable_so_len_brcmf_sdio_hdrinfo_12048 len brcmf_sdio_hdrinfo 0 12048 NULL nohasharray
157834 +enable_so_order_ipr_sglist_12048 order ipr_sglist 0 12048 &enable_so_len_brcmf_sdio_hdrinfo_12048
157835 +enable_so_ata_exec_internal_fndecl_12059 ata_exec_internal fndecl 6 12059 NULL
157836 +enable_so_l1oip_law_to_4bit_fndecl_12061 l1oip_law_to_4bit fndecl 0 12061 NULL
157837 +enable_so_devm_ioremap_fndecl_12064 devm_ioremap fndecl 3-2 12064 NULL nohasharray
157838 +enable_so_bufsize_st5481_in_12064 bufsize st5481_in 0 12064 &enable_so_devm_ioremap_fndecl_12064
157839 +enable_so_drbd_send_ov_request_fndecl_12066 drbd_send_ov_request fndecl 2-3 12066 NULL
157840 +enable_so_recover_peb_fndecl_12069 recover_peb fndecl 7-6 12069 NULL
157841 +enable_so_rw_verify_area_fndecl_12072 rw_verify_area fndecl 0-4 12072 NULL nohasharray
157842 +enable_so_count_afs_permits_12072 count afs_permits 0 12072 &enable_so_rw_verify_area_fndecl_12072
157843 +enable_so_evdev_handle_get_val_fndecl_12073 evdev_handle_get_val fndecl 5-6-0 12073 NULL nohasharray
157844 +enable_so_lirc_register_driver_fndecl_12073 lirc_register_driver fndecl 0 12073 &enable_so_evdev_handle_get_val_fndecl_12073
157845 +enable_so_ttm_pool_update_free_locked_fndecl_12074 ttm_pool_update_free_locked fndecl 2 12074 NULL
157846 +enable_so_cirrus_bo_create_fndecl_12083 cirrus_bo_create fndecl 2 12083 NULL
157847 +enable_so_d_size_size_entry_12084 d_size size_entry 0 12084 NULL
157848 +enable_so_nr_relocs_drm_nouveau_gem_pushbuf_12085 nr_relocs drm_nouveau_gem_pushbuf 0 12085 NULL
157849 +enable_so_nvme_trans_copy_from_user_fndecl_12088 nvme_trans_copy_from_user fndecl 3 12088 NULL
157850 +enable_so_security_socket_recvmsg_fndecl_12091 security_socket_recvmsg fndecl 0 12091 NULL
157851 +enable_so_nla_len_nlattr_12092 nla_len nlattr 0 12092 NULL
157852 +enable_so_n_posix_ace_state_array_12096 n posix_ace_state_array 0 12096 NULL
157853 +enable_so_pad_size_asd_flash_de_12100 pad_size asd_flash_de 0 12100 NULL
157854 +enable_so_mirror_array_cnt_nfs4_ff_layout_segment_12109 mirror_array_cnt nfs4_ff_layout_segment 0 12109 NULL
157855 +enable_so_length_framebuf_12110 length framebuf 0 12110 NULL nohasharray
157856 +enable_so_prism2_set_genericelement_fndecl_12110 prism2_set_genericelement fndecl 3 12110 &enable_so_length_framebuf_12110
157857 +enable_so_security_context_to_sid_core_fndecl_12115 security_context_to_sid_core fndecl 2 12115 NULL
157858 +enable_so_get_num_tx_queues_rtnl_link_ops_12119 get_num_tx_queues rtnl_link_ops 0 12119 NULL
157859 +enable_so_super_1_rdev_size_change_fndecl_12120 super_1_rdev_size_change fndecl 2 12120 NULL
157860 +enable_so_key_size_ccp_rsa_engine_12126 key_size ccp_rsa_engine 0 12126 NULL
157861 +enable_so_ProgRegShift_cfi_intelext_programming_regioninfo_12129 ProgRegShift cfi_intelext_programming_regioninfo 0 12129 NULL
157862 +enable_so_ext4_fiemap_fndecl_12131 ext4_fiemap fndecl 4-3 12131 NULL
157863 +enable_so_metablock_size_btrfsic_state_12137 metablock_size btrfsic_state 0 12137 NULL
157864 +enable_so_writeset_alloc_fndecl_12139 writeset_alloc fndecl 2 12139 NULL
157865 +enable_so_mempool_resize_fndecl_12140 mempool_resize fndecl 2 12140 NULL
157866 +enable_so_gfs2_rgrp_send_discards_fndecl_12149 gfs2_rgrp_send_discards fndecl 2 12149 NULL
157867 +enable_so_ql_is_link_full_dup_fndecl_12152 ql_is_link_full_dup fndecl 0 12152 NULL
157868 +enable_so_find_block_fndecl_12156 find_block fndecl 0-3 12156 NULL
157869 +enable_so_ip_vs_receive_fndecl_12161 ip_vs_receive fndecl 3 12161 NULL
157870 +enable_so_set_page_fndecl_12165 set_page fndecl 0 12165 NULL
157871 +enable_so___alloc_ei_netdev_fndecl_12169 __alloc_ei_netdev fndecl 1 12169 NULL
157872 +enable_so_index_cosm_device_12170 index cosm_device 0 12170 NULL
157873 +enable_so___fuse_get_req_fndecl_12176 __fuse_get_req fndecl 2 12176 NULL
157874 +enable_so_brcmf_sdio_tx_ctrlframe_fndecl_12177 brcmf_sdio_tx_ctrlframe fndecl 3 12177 NULL nohasharray
157875 +enable_so_num_ch_nvm_id_group_12177 num_ch nvm_id_group 0 12177 &enable_so_brcmf_sdio_tx_ctrlframe_fndecl_12177
157876 +enable_so_bulk_in_size_sur40_state_12178 bulk_in_size sur40_state 0 12178 NULL
157877 +enable_so_rx_count_rx_header_12180 rx_count rx_header 0 12180 NULL
157878 +enable_so_default_file_splice_read_fndecl_12182 default_file_splice_read fndecl 4 12182 NULL
157879 +enable_so_nci_conn_max_data_pkt_payload_size_fndecl_12183 nci_conn_max_data_pkt_payload_size fndecl 0 12183 NULL
157880 +enable_so_lprocfs_write_helper_fndecl_12184 lprocfs_write_helper fndecl 2 12184 NULL
157881 +enable_so_se_callback_addr_len_nfsd4_setclientid_12186 se_callback_addr_len nfsd4_setclientid 0 12186 NULL
157882 +enable_so_alignment_acpi_resource_memory24_12188 alignment acpi_resource_memory24 0 12188 NULL
157883 +enable_so_max_qp_sz_mlx4_dev_cap_12189 max_qp_sz mlx4_dev_cap 0 12189 NULL
157884 +enable_so_lpfc_bsg_diag_mode_enter_fndecl_12200 lpfc_bsg_diag_mode_enter fndecl 0 12200 NULL
157885 +enable_so_handle_gk20a_instobj_dma_12206 handle gk20a_instobj_dma 0 12206 NULL
157886 +enable_so_lmc_crcSize_lmc___softc_12208 lmc_crcSize lmc___softc 0 12208 NULL
157887 +enable_so_length_cifs_io_parms_12209 length cifs_io_parms 0 12209 NULL nohasharray
157888 +enable_so_l2cap_sock_setsockopt_old_fndecl_12209 l2cap_sock_setsockopt_old fndecl 4 12209 &enable_so_length_cifs_io_parms_12209
157889 +enable_so_vmci_transport_set_min_buffer_size_fndecl_12216 vmci_transport_set_min_buffer_size fndecl 2 12216 NULL
157890 +enable_so_hci_sock_sendmsg_fndecl_12231 hci_sock_sendmsg fndecl 3 12231 NULL
157891 +enable_so_virtscsi_kick_cmd_fndecl_12237 virtscsi_kick_cmd fndecl 3-4 12237 NULL
157892 +enable_so_btrfs_alloc_data_chunk_ondemand_fndecl_12238 btrfs_alloc_data_chunk_ondemand fndecl 0 12238 NULL
157893 +enable_so_generic_file_llseek_size_fndecl_12242 generic_file_llseek_size fndecl 2-5 12242 NULL
157894 +enable_so_synproxy_tstamp_adjust_fndecl_12243 synproxy_tstamp_adjust fndecl 2 12243 NULL
157895 +enable_so_tipc_bearer_mtu_fndecl_12247 tipc_bearer_mtu fndecl 0 12247 NULL
157896 +enable_so_max_pkt_size_em28xx_usb_bufs_12248 max_pkt_size em28xx_usb_bufs 0 12248 NULL
157897 +enable_so_write_block_fndecl_12253 write_block fndecl 3 12253 NULL
157898 +enable_so_hpfs_map_fnode_fndecl_12255 hpfs_map_fnode fndecl 2 12255 NULL
157899 +enable_so_unique_len_drm_master_12259 unique_len drm_master 0 12259 NULL
157900 +enable_so_zs_size_classes_vardecl_zsmalloc_c_12260 zs_size_classes vardecl_zsmalloc.c 0 12260 NULL
157901 +enable_so_endpoint_snd_usX2Y_substream_12267 endpoint snd_usX2Y_substream 0 12267 NULL
157902 +enable_so_mempool_create_fndecl_12270 mempool_create fndecl 1 12270 NULL
157903 +enable_so_cur_page_len_dio_submit_12271 cur_page_len dio_submit 0 12271 NULL
157904 +enable_so_rsi_issue_sdiocommand_fndecl_12282 rsi_issue_sdiocommand fndecl 2 12282 NULL
157905 +enable_so_handle_fcp_fndecl_12283 handle_fcp fndecl 9 12283 NULL
157906 +enable_so_capacity_sddr09_card_info_12286 capacity sddr09_card_info 0 12286 NULL
157907 +enable_so_sb_sectsize_xfs_sb_12294 sb_sectsize xfs_sb 0 12294 NULL
157908 +enable_so_bm_find_next_fndecl_12298 bm_find_next fndecl 0-2 12298 NULL
157909 +enable_so_size_btrfs_ioctl_logical_ino_args_12299 size btrfs_ioctl_logical_ino_args 0 12299 NULL
157910 +enable_so_max_y_fb_monspecs_12303 max_y fb_monspecs 0 12303 NULL
157911 +enable_so_nb_blocks_NFTLrecord_12306 nb_blocks NFTLrecord 0 12306 NULL
157912 +enable_so_hr_blocks_o2hb_region_12318 hr_blocks o2hb_region 0 12318 NULL nohasharray
157913 +enable_so_mthca_max_data_size_fndecl_12318 mthca_max_data_size fndecl 0-3 12318 &enable_so_hr_blocks_o2hb_region_12318
157914 +enable_so_length_sg_mapping_iter_12324 length sg_mapping_iter 0 12324 NULL nohasharray
157915 +enable_so_sctp_make_abort_violation_fndecl_12324 sctp_make_abort_violation fndecl 4 12324 &enable_so_length_sg_mapping_iter_12324
157916 +enable_so_ubifs_change_lp_fndecl_12325 ubifs_change_lp fndecl 3 12325 NULL
157917 +enable_so_no_of_triplet_mwifiex_802_11d_domain_reg_12326 no_of_triplet mwifiex_802_11d_domain_reg 0 12326 NULL
157918 +enable_so_s_log_block_size_nilfs_super_block_12332 s_log_block_size nilfs_super_block 0 12332 NULL
157919 +enable_so_read_regr_pi_protocol_12333 read_regr pi_protocol 0 12333 NULL
157920 +enable_so_status_w840_rx_desc_12335 status w840_rx_desc 0 12335 NULL nohasharray
157921 +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
157922 +enable_so_out_usbnet_12337 out usbnet 0 12337 NULL
157923 +enable_so_bank_size_stub_chip_12338 bank_size stub_chip 0 12338 NULL
157924 +enable_so_base_shift_iwl_fw_dbg_dest_tlv_12341 base_shift iwl_fw_dbg_dest_tlv 0 12341 NULL
157925 +enable_so_dccps_iss_dccp_sock_12346 dccps_iss dccp_sock 0 12346 NULL
157926 +enable_so_max_buf_size_tegra_slink_data_12348 max_buf_size tegra_slink_data 0 12348 NULL
157927 +enable_so_ocfs2_symlink_get_block_fndecl_12352 ocfs2_symlink_get_block fndecl 2 12352 NULL
157928 +enable_so_td_done_fndecl_12358 td_done fndecl 0 12358 NULL
157929 +enable_so_limit_scaled_size_lock_fndecl_12359 limit_scaled_size_lock fndecl 5-6 12359 NULL nohasharray
157930 +enable_so_igb_pci_sriov_configure_fndecl_12359 igb_pci_sriov_configure fndecl 2 12359 &enable_so_limit_scaled_size_lock_fndecl_12359
157931 +enable_so_ioremap_uc_fndecl_12363 ioremap_uc fndecl 2-1 12363 NULL
157932 +enable_so_xb_blkno_ocfs2_xattr_block_12365 xb_blkno ocfs2_xattr_block 0 12365 NULL
157933 +enable_so_num_subdevs_v4l2_async_notifier_12368 num_subdevs v4l2_async_notifier 0 12368 NULL
157934 +enable_so_compat_SyS_set_mempolicy_fndecl_12372 compat_SyS_set_mempolicy fndecl 3 12372 NULL
157935 +enable_so_i_entries_gfs2_inode_12374 i_entries gfs2_inode 0 12374 NULL
157936 +enable_so_mic_rx_pkts_read_fndecl_12375 mic_rx_pkts_read fndecl 3 12375 NULL
157937 +enable_so_iscsi_segment_seek_sg_fndecl_12378 iscsi_segment_seek_sg fndecl 5-4 12378 NULL nohasharray
157938 +enable_so_pci_enable_device_flags_fndecl_12378 pci_enable_device_flags fndecl 0 12378 &enable_so_iscsi_segment_seek_sg_fndecl_12378
157939 +enable_so_rx_prefix_size_efx_nic_12381 rx_prefix_size efx_nic 0 12381 NULL
157940 +enable_so_if_usb_host_to_card_fndecl_12384 if_usb_host_to_card fndecl 4 12384 NULL nohasharray
157941 +enable_so_serial8250_port_size_fndecl_12384 serial8250_port_size fndecl 0 12384 &enable_so_if_usb_host_to_card_fndecl_12384
157942 +enable_so_get_packet_pg_fndecl_12388 get_packet_pg fndecl 4 12388 NULL
157943 +enable_so_stb6100_write_reg_range_fndecl_12391 stb6100_write_reg_range fndecl 4 12391 NULL nohasharray
157944 +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
157945 +enable_so_data_segment_bytes_gru_create_context_req_12392 data_segment_bytes gru_create_context_req 0 12392 NULL
157946 +enable_so_num_ufbufs_vardecl_12394 num_ufbufs vardecl 0 12394 NULL
157947 +enable_so_memory_block_action_fndecl_12395 memory_block_action fndecl 1 12395 NULL
157948 +enable_so_alloc_one_pg_vec_page_fndecl_12396 alloc_one_pg_vec_page fndecl 1 12396 NULL
157949 +enable_so_buffer_size_zoran_buffer_col_12398 buffer_size zoran_buffer_col 0 12398 NULL
157950 +enable_so_powercap_register_zone_fndecl_12399 powercap_register_zone fndecl 6 12399 NULL
157951 +enable_so_ieee802154_alloc_hw_fndecl_12400 ieee802154_alloc_hw fndecl 1 12400 NULL
157952 +enable_so_acl_len_nfs_setaclargs_12402 acl_len nfs_setaclargs 0 12402 NULL
157953 +enable_so_length_iw_point_12404 length iw_point 0 12404 NULL
157954 +enable_so_reg_read_fndecl_12405 reg_read fndecl 4 12405 NULL
157955 +enable_so_snd_rawmidi_write_fndecl_12411 snd_rawmidi_write fndecl 3 12411 NULL
157956 +enable_so_p9_fd_write_fndecl_12417 p9_fd_write fndecl 3-0 12417 NULL
157957 +enable_so_read_reg_xcan_priv_12419 read_reg xcan_priv 0 12419 NULL nohasharray
157958 +enable_so_dccp_insert_fn_opt_fndecl_12419 dccp_insert_fn_opt fndecl 5 12419 &enable_so_read_reg_xcan_priv_12419
157959 +enable_so_cx231xx_init_vbi_isoc_fndecl_12422 cx231xx_init_vbi_isoc fndecl 4-2-3 12422 NULL
157960 +enable_so_init_rs_non_canonical_fndecl_12424 init_rs_non_canonical fndecl 5-1 12424 NULL
157961 +enable_so_len_SL_component_12428 len SL_component 0 12428 NULL
157962 +enable_so_ext4_quota_read_fndecl_12429 ext4_quota_read fndecl 5 12429 NULL nohasharray
157963 +enable_so_add_pid_filter_fndecl_12429 add_pid_filter fndecl 0 12429 &enable_so_ext4_quota_read_fndecl_12429
157964 +enable_so_pkey_tbl_len_ib_port_attr_12434 pkey_tbl_len ib_port_attr 0 12434 NULL
157965 +enable_so_hcd_priv_size_hc_driver_12440 hcd_priv_size hc_driver 0 12440 NULL
157966 +enable_so_informationLength_fileEntry_12442 informationLength fileEntry 0 12442 NULL nohasharray
157967 +enable_so_sctp_setsockopt_maxburst_fndecl_12442 sctp_setsockopt_maxburst fndecl 3 12442 &enable_so_informationLength_fileEntry_12442
157968 +enable_so_divisor_tc_sfq_qopt_12444 divisor tc_sfq_qopt 0 12444 NULL
157969 +enable_so_ie_len_cfg80211_connect_params_12446 ie_len cfg80211_connect_params 0 12446 NULL
157970 +enable_so_u132_endp_urb_dequeue_fndecl_12447 u132_endp_urb_dequeue fndecl 4 12447 NULL nohasharray
157971 +enable_so_ceph_sync_write_fndecl_12447 ceph_sync_write fndecl 0-3 12447 &enable_so_u132_endp_urb_dequeue_fndecl_12447
157972 +enable_so_acpi_gsb_i2c_write_bytes_fndecl_12449 acpi_gsb_i2c_write_bytes fndecl 4 12449 NULL nohasharray
157973 +enable_so_GetRecvByte_fndecl_12449 GetRecvByte fndecl 0 12449 &enable_so_acpi_gsb_i2c_write_bytes_fndecl_12449 nohasharray
157974 +enable_so_length_iwl_wipan_noa_attribute_12449 length iwl_wipan_noa_attribute 0 12449 &enable_so_GetRecvByte_fndecl_12449
157975 +enable_so_len_qlcnic_flt_header_12450 len qlcnic_flt_header 0 12450 NULL
157976 +enable_so_rx_padding_usbatm_driver_12455 rx_padding usbatm_driver 0 12455 NULL
157977 +enable_so_platform_get_irq_fndecl_12459 platform_get_irq fndecl 0 12459 NULL
157978 +enable_so_keyspan_setup_urb_fndecl_12461 keyspan_setup_urb fndecl 6-3-2 12461 NULL
157979 +enable_so_num_cq_mthca_profile_12463 num_cq mthca_profile 0 12463 NULL
157980 +enable_so_tp_block_nr_tpacket_req_12465 tp_block_nr tpacket_req 0 12465 NULL
157981 +enable_so_tx_frag_bad_mblk_num_read_fndecl_12467 tx_frag_bad_mblk_num_read fndecl 3 12467 NULL
157982 +enable_so_num_leds_pca9532_chip_info_12471 num_leds pca9532_chip_info 0 12471 NULL
157983 +enable_so_rx_defrag_need_defrag_read_fndecl_12486 rx_defrag_need_defrag_read fndecl 3 12486 NULL
157984 +enable_so_lock_extent_fndecl_12493 lock_extent fndecl 3-2 12493 NULL
157985 +enable_so_vgacon_adjust_height_fndecl_12495 vgacon_adjust_height fndecl 2 12495 NULL nohasharray
157986 +enable_so_ih_item_len_item_head_12495 ih_item_len item_head 0 12495 &enable_so_vgacon_adjust_height_fndecl_12495 nohasharray
157987 +enable_so_acpi_tb_install_standard_table_fndecl_12495 acpi_tb_install_standard_table fndecl 1 12495 &enable_so_ih_item_len_item_head_12495
157988 +enable_so_blk_update_nr_requests_fndecl_12497 blk_update_nr_requests fndecl 2 12497 NULL
157989 +enable_so_map_off_xfs_dir2_leaf_map_info_12499 map_off xfs_dir2_leaf_map_info 0 12499 NULL
157990 +enable_so_dccp_feat_valid_nn_length_fndecl_12500 dccp_feat_valid_nn_length fndecl 0 12500 NULL
157991 +enable_so_response_length_be_cmd_resp_hdr_12501 response_length be_cmd_resp_hdr 0 12501 NULL nohasharray
157992 +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
157993 +enable_so_stream_next_buffer_fndecl_12502 stream_next_buffer fndecl 0 12502 NULL
157994 +enable_so_nclips_saa7134_dev_12507 nclips saa7134_dev 0 12507 NULL
157995 +enable_so_brcmf_chip_tcm_ramsize_fndecl_12513 brcmf_chip_tcm_ramsize fndecl 0 12513 NULL
157996 +enable_so_madvise_dontneed_fndecl_12517 madvise_dontneed fndecl 3-4 12517 NULL
157997 +enable_so_alloc_skb_with_frags_fndecl_12518 alloc_skb_with_frags fndecl 2 12518 NULL nohasharray
157998 +enable_so_num_pointers_whc_std_12518 num_pointers whc_std 0 12518 &enable_so_alloc_skb_with_frags_fndecl_12518
157999 +enable_so_video_read_fndecl_12519 video_read fndecl 3 12519 NULL
158000 +enable_so_snd_midi_channel_alloc_set_fndecl_12522 snd_midi_channel_alloc_set fndecl 1 12522 NULL
158001 +enable_so_index_mtd_info_12524 index mtd_info 0 12524 NULL
158002 +enable_so_al_tr_number_to_on_disk_sector_fndecl_12526 al_tr_number_to_on_disk_sector fndecl 0 12526 NULL
158003 +enable_so_depth_fb_image_12530 depth fb_image 0 12530 NULL
158004 +enable_so_lpc_sch_populate_cell_fndecl_12532 lpc_sch_populate_cell fndecl 5-4-6 12532 NULL
158005 +enable_so_write_isowbuf_t_12533 write isowbuf_t 0 12533 NULL
158006 +enable_so_m25p80_read_reg_fndecl_12535 m25p80_read_reg fndecl 4 12535 NULL
158007 +enable_so_learn_buffer_user_len_vardecl_gracl_learn_c_12538 learn_buffer_user_len vardecl_gracl_learn.c 0 12538 NULL
158008 +enable_so_mlxsw_cmd_mbox_query_aq_cap_max_num_cqs_get_fndecl_12540 mlxsw_cmd_mbox_query_aq_cap_max_num_cqs_get fndecl 0 12540 NULL
158009 +enable_so_sd_tuning_rx_cmd_fndecl_12543 sd_tuning_rx_cmd fndecl 2 12543 NULL
158010 +enable_so_cdrom_read_cdda_old_fndecl_12547 cdrom_read_cdda_old fndecl 4 12547 NULL
158011 +enable_so_qword_get_fndecl_12549 qword_get fndecl 0 12549 NULL
158012 +enable_so_recv_dless_read_fndecl_12554 recv_dless_read fndecl 4 12554 NULL nohasharray
158013 +enable_so_hfi1_alloc_mr_fndecl_12554 hfi1_alloc_mr fndecl 3 12554 &enable_so_recv_dless_read_fndecl_12554
158014 +enable_so_h_size_xlog_rec_header_12561 h_size xlog_rec_header 0 12561 NULL
158015 +enable_so_qnx6_readpages_fndecl_12570 qnx6_readpages fndecl 4 12570 NULL
158016 +enable_so_read8_sync_rtl_io_12571 read8_sync rtl_io 0 12571 NULL
158017 +enable_so_address_length_acpi_resource_memory32_12576 address_length acpi_resource_memory32 0 12576 NULL
158018 +enable_so_fs_path_add_from_extent_buffer_fndecl_12581 fs_path_add_from_extent_buffer fndecl 0-4 12581 NULL
158019 +enable_so_rate_den_snd_pcm_hw_params_12586 rate_den snd_pcm_hw_params 0 12586 NULL
158020 +enable_so_raid_disk_md_rdev_12590 raid_disk md_rdev 0 12590 NULL nohasharray
158021 +enable_so_acpi_tb_acquire_temp_table_fndecl_12590 acpi_tb_acquire_temp_table fndecl 2 12590 &enable_so_raid_disk_md_rdev_12590
158022 +enable_so_pt1_nr_tables_vardecl_pt1_c_12591 pt1_nr_tables vardecl_pt1.c 0 12591 NULL
158023 +enable_so_pci_scan_root_bus_msi_fndecl_12593 pci_scan_root_bus_msi fndecl 2 12593 NULL
158024 +enable_so_pn544_hci_probe_fndecl_12594 pn544_hci_probe fndecl 6-4 12594 NULL
158025 +enable_so_min_sys_clk_div_smiapp_pll_branch_limits_12595 min_sys_clk_div smiapp_pll_branch_limits 0 12595 NULL
158026 +enable_so_dev_rsize_hid_device_12597 dev_rsize hid_device 0 12597 NULL
158027 +enable_so_sx_fb_copyarea_12600 sx fb_copyarea 0 12600 NULL
158028 +enable_so_wqe_sz_mlx5e_rq_12601 wqe_sz mlx5e_rq 0 12601 NULL
158029 +enable_so_blk_limits_io_opt_fndecl_12606 blk_limits_io_opt fndecl 2 12606 NULL
158030 +enable_so_rt_priority_task_struct_12608 rt_priority task_struct 0 12608 NULL nohasharray
158031 +enable_so_allocate_snoop_packet_fndecl_12608 allocate_snoop_packet fndecl 1-2-3 12608 &enable_so_rt_priority_task_struct_12608
158032 +enable_so_depth_g2d_fmt_12611 depth g2d_fmt 0 12611 NULL
158033 +enable_so_num_bank_bcm_kona_gpio_12612 num_bank bcm_kona_gpio 0 12612 NULL
158034 +enable_so_a4t_cs_init_fndecl_12613 a4t_cs_init fndecl 3 12613 NULL
158035 +enable_so_pty_vivid_rds_gen_12619 pty vivid_rds_gen 0 12619 NULL
158036 +enable_so_evm_write_key_fndecl_12624 evm_write_key fndecl 3 12624 NULL
158037 +enable_so_maxpacket_r8a66597_td_12628 maxpacket r8a66597_td 0 12628 NULL
158038 +enable_so_length_wep_key_12635 length wep_key 0 12635 NULL
158039 +enable_so_xfs_dir2_block_sfsize_fndecl_12636 xfs_dir2_block_sfsize fndecl 0 12636 NULL
158040 +enable_so_pattern_len_cfg80211_pkt_pattern_12639 pattern_len cfg80211_pkt_pattern 0 12639 NULL
158041 +enable_so_current_count_sectors_vardecl_floppy_c_12647 current_count_sectors vardecl_floppy.c 0 12647 NULL nohasharray
158042 +enable_so_size_of_pci_range_12647 size of_pci_range 0 12647 &enable_so_current_count_sectors_vardecl_floppy_c_12647
158043 +enable_so_local_nentries_xpc_openclose_args_12648 local_nentries xpc_openclose_args 0 12648 NULL
158044 +enable_so_kcalloc_fndecl_12649 kcalloc fndecl 1-2 12649 NULL
158045 +enable_so_fdir_pf_active_filters_i40e_pf_12654 fdir_pf_active_filters i40e_pf 0 12654 NULL
158046 +enable_so_sl_encaps_fndecl_12658 sl_encaps fndecl 3 12658 NULL
158047 +enable_so_get_index_fndecl_12660 get_index fndecl 0 12660 NULL
158048 +enable_so_linear_hugepage_index_fndecl_12664 linear_hugepage_index fndecl 0-2 12664 NULL
158049 +enable_so_sg_offset_iscsi_segment_12667 sg_offset iscsi_segment 0 12667 NULL
158050 +enable_so_num_aces_cifs_acl_12670 num_aces cifs_acl 0 12670 NULL
158051 +enable_so_beacon_buf_size_mwifiex_bssdescriptor_12674 beacon_buf_size mwifiex_bssdescriptor 0 12674 NULL nohasharray
158052 +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
158053 +enable_so_doorbell_base_kfd_dev_12677 doorbell_base kfd_dev 0 12677 NULL
158054 +enable_so_eeec_entry_sz_mthca_dev_lim_12679 eeec_entry_sz mthca_dev_lim 0 12679 NULL
158055 +enable_so_HST_kyrofb_info_12685 HST kyrofb_info 0 12685 NULL
158056 +enable_so_src_height_tpg_data_12686 src_height tpg_data 0 12686 NULL
158057 +enable_so_ttm_object_file_init_fndecl_12687 ttm_object_file_init fndecl 2 12687 NULL
158058 +enable_so_ns_nsegments_the_nilfs_12690 ns_nsegments the_nilfs 0 12690 NULL
158059 +enable_so_transport_init_session_tags_fndecl_12691 transport_init_session_tags fndecl 2-1 12691 NULL
158060 +enable_so_buf_size_mlx4_en_cq_12695 buf_size mlx4_en_cq 0 12695 NULL
158061 +enable_so_dn_neigh_elist_fndecl_12712 dn_neigh_elist fndecl 0 12712 NULL
158062 +enable_so_mdio_phys_octeon_mdiobus_12713 mdio_phys octeon_mdiobus 0 12713 NULL nohasharray
158063 +enable_so_fld_debugfs_hash_seq_write_fndecl_12713 fld_debugfs_hash_seq_write fndecl 3 12713 &enable_so_mdio_phys_octeon_mdiobus_12713
158064 +enable_so_total_len_ocrdma_hdr_wqe_12714 total_len ocrdma_hdr_wqe 0 12714 NULL nohasharray
158065 +enable_so_sys_listxattr_fndecl_12714 sys_listxattr fndecl 3 12714 &enable_so_total_len_ocrdma_hdr_wqe_12714
158066 +enable_so_ss_in_channels_hdsp_12726 ss_in_channels hdsp 0 12726 NULL
158067 +enable_so_start_brk_prctl_mm_map_12729 start_brk prctl_mm_map 0 12729 NULL
158068 +enable_so_btrfs_truncate_item_fndecl_12731 btrfs_truncate_item fndecl 3 12731 NULL
158069 +enable_so_xfs_iomap_write_direct_fndecl_12733 xfs_iomap_write_direct fndecl 2 12733 NULL
158070 +enable_so_read_profile_fndecl_12736 read_profile fndecl 3 12736 NULL
158071 +enable_so_count_nfsd3_readres_12745 count nfsd3_readres 0 12745 NULL
158072 +enable_so_aead_assoclen_aead_ctx_12755 aead_assoclen aead_ctx 0 12755 NULL nohasharray
158073 +enable_so_nfsd4_encode_splice_read_fndecl_12755 nfsd4_encode_splice_read fndecl 4 12755 &enable_so_aead_assoclen_aead_ctx_12755
158074 +enable_so_reserve_memtype_fndecl_12762 reserve_memtype fndecl 1-2 12762 NULL
158075 +enable_so_num_unit_element_struct_12767 num unit_element_struct 0 12767 NULL
158076 +enable_so_wl1251_sdio_read_fndecl_12773 wl1251_sdio_read fndecl 4 12773 NULL
158077 +enable_so_driver_add_groups_fndecl_12778 driver_add_groups fndecl 0 12778 NULL
158078 +enable_so_height_mxr_block_12780 height mxr_block 0 12780 NULL
158079 +enable_so_rx_max_pg_ring_bnx2_12789 rx_max_pg_ring bnx2 0 12789 NULL
158080 +enable_so_sb_fseg_start_nilfs_segment_buffer_12802 sb_fseg_start nilfs_segment_buffer 0 12802 NULL
158081 +enable_so_mpage_readpages_fndecl_12807 mpage_readpages fndecl 3 12807 NULL
158082 +enable_so_object_num_mxt_info_12810 object_num mxt_info 0 12810 NULL
158083 +enable_so_hint_events_per_packet_input_dev_12818 hint_events_per_packet input_dev 0 12818 NULL nohasharray
158084 +enable_so_subdev_ioctl_fndecl_12818 subdev_ioctl fndecl 2 12818 &enable_so_hint_events_per_packet_input_dev_12818
158085 +enable_so_xen_pirq_from_irq_fndecl_12820 xen_pirq_from_irq fndecl 0 12820 NULL
158086 +enable_so___videobuf_mmap_setup_fndecl_12822 __videobuf_mmap_setup fndecl 0-3 12822 NULL
158087 +enable_so_ksocknal_alloc_tx_fndecl_12825 ksocknal_alloc_tx fndecl 2 12825 NULL
158088 +enable_so_falcon_spi_device_init_fndecl_12835 falcon_spi_device_init fndecl 4 12835 NULL
158089 +enable_so_xfs_rtfind_back_fndecl_12849 xfs_rtfind_back fndecl 3 12849 NULL
158090 +enable_so_sbs_setup_fndecl_12851 sbs_setup fndecl 4 12851 NULL
158091 +enable_so_rx_buffer_size_macb_12864 rx_buffer_size macb 0 12864 NULL
158092 +enable_so_snd_interval_refine_max_fndecl_12865 snd_interval_refine_max fndecl 2 12865 NULL
158093 +enable_so_frameoffset_b43legacy_dmaring_12869 frameoffset b43legacy_dmaring 0 12869 NULL
158094 +enable_so_max_ddbs_hw_profile_12873 max_ddbs hw_profile 0 12873 NULL
158095 +enable_so_tcp_remove_reno_sacks_fndecl_12874 tcp_remove_reno_sacks fndecl 2 12874 NULL
158096 +enable_so_rx_buf_size_qede_rx_queue_12878 rx_buf_size qede_rx_queue 0 12878 NULL
158097 +enable_so_length_i2c_hid_cmd_12879 length i2c_hid_cmd 0 12879 NULL
158098 +enable_so_response_length_ib_uverbs_ex_create_cq_resp_12889 response_length ib_uverbs_ex_create_cq_resp 0 12889 NULL
158099 +enable_so_udp_uncompress_fndecl_12890 udp_uncompress fndecl 2 12890 NULL
158100 +enable_so_max_response_pages_fndecl_12895 max_response_pages fndecl 0 12895 NULL
158101 +enable_so_offset_ceph_dentry_info_12896 offset ceph_dentry_info 0 12896 NULL
158102 +enable_so_early_init_dt_alloc_memory_arch_fndecl_12899 early_init_dt_alloc_memory_arch fndecl 2-1 12899 NULL
158103 +enable_so_tool_db_read_fndecl_12902 tool_db_read fndecl 3 12902 NULL
158104 +enable_so_ccw_cursor_fndecl_12903 ccw_cursor fndecl 4 12903 NULL
158105 +enable_so_capinc_tty_write_fndecl_12904 capinc_tty_write fndecl 3 12904 NULL
158106 +enable_so_add_children_fndecl_12906 add_children fndecl 2 12906 NULL
158107 +enable_so_max_reportid_mxt_data_12917 max_reportid mxt_data 0 12917 NULL
158108 +enable_so_gsm_stuff_frame_fndecl_12918 gsm_stuff_frame fndecl 0 12918 NULL
158109 +enable_so_m_lblk_ext4_map_blocks_12920 m_lblk ext4_map_blocks 0 12920 NULL
158110 +enable_so_nilfs_sufile_delete_segment_usage_block_fndecl_12921 nilfs_sufile_delete_segment_usage_block fndecl 2 12921 NULL
158111 +enable_so_qs_out_channels_hdspm_12922 qs_out_channels hdspm 0 12922 NULL
158112 +enable_so_idetape_mtioctop_fndecl_12923 idetape_mtioctop fndecl 3 12923 NULL
158113 +enable_so_sh_irda_init_iobuf_fndecl_12924 sh_irda_init_iobuf fndecl 2 12924 NULL
158114 +enable_so_ath6kl_wmi_disconnect_cmd_fndecl_12926 ath6kl_wmi_disconnect_cmd fndecl 2 12926 NULL
158115 +enable_so_of_fdt_limit_memory_fndecl_12932 of_fdt_limit_memory fndecl 1 12932 NULL nohasharray
158116 +enable_so_obufsize_sisusb_usb_data_12932 obufsize sisusb_usb_data 0 12932 &enable_so_of_fdt_limit_memory_fndecl_12932 nohasharray
158117 +enable_so_mangle_content_len_fndecl_12932 mangle_content_len fndecl 2 12932 &enable_so_obufsize_sisusb_usb_data_12932 nohasharray
158118 +enable_so_asymmetric_verify_fndecl_12932 asymmetric_verify fndecl 3 12932 &enable_so_mangle_content_len_fndecl_12932
158119 +enable_so_ext4_split_extent_at_fndecl_12936 ext4_split_extent_at fndecl 4 12936 NULL
158120 +enable_so_vlan_id_vlan_dev_priv_12939 vlan_id vlan_dev_priv 0 12939 NULL
158121 +enable_so_xlog_clear_stale_blocks_fndecl_12940 xlog_clear_stale_blocks fndecl 2 12940 NULL
158122 +enable_so_phys_pud_init_fndecl_12941 phys_pud_init fndecl 0-2-3 12941 NULL
158123 +enable_so_gfs2_meta_indirect_buffer_fndecl_12942 gfs2_meta_indirect_buffer fndecl 3 12942 NULL
158124 +enable_so_run_delalloc_range_fndecl_12946 run_delalloc_range fndecl 3-4 12946 NULL nohasharray
158125 +enable_so_aio_read_events_fndecl_12946 aio_read_events fndecl 3 12946 &enable_so_run_delalloc_range_fndecl_12946 nohasharray
158126 +enable_so_mptctl_getiocinfo_fndecl_12946 mptctl_getiocinfo fndecl 2 12946 &enable_so_aio_read_events_fndecl_12946
158127 +enable_so_get_rate_snd_ice1712_12947 get_rate snd_ice1712 0 12947 NULL nohasharray
158128 +enable_so_sel_read_policycap_fndecl_12947 sel_read_policycap fndecl 3 12947 &enable_so_get_rate_snd_ice1712_12947
158129 +enable_so_st_nci_se_io_fndecl_12948 st_nci_se_io fndecl 4 12948 NULL
158130 +enable_so_nr_segments_blkif_request_rw_12950 nr_segments blkif_request_rw 0 12950 NULL
158131 +enable_so_b43legacy_debugfs_write_fndecl_12959 b43legacy_debugfs_write fndecl 3 12959 NULL
158132 +enable_so_vm_start_vm_area_struct_12960 vm_start vm_area_struct 0 12960 NULL
158133 +enable_so_data_pipe_mts_transfer_context_12962 data_pipe mts_transfer_context 0 12962 NULL
158134 +enable_so_apei_exec_ctx_set_input_fndecl_12968 apei_exec_ctx_set_input fndecl 2 12968 NULL
158135 +enable_so_initiator_length_spar_controlvm_parameters_header_12973 initiator_length spar_controlvm_parameters_header 0 12973 NULL
158136 +enable_so_clone_update_extent_map_fndecl_12984 clone_update_extent_map fndecl 4-5 12984 NULL nohasharray
158137 +enable_so_newwin_mad_rmpp_recv_12984 newwin mad_rmpp_recv 0 12984 &enable_so_clone_update_extent_map_fndecl_12984
158138 +enable_so_num_outbound_streams_sctp_inithdr_12987 num_outbound_streams sctp_inithdr 0 12987 NULL
158139 +enable_so_rohm_i2c_burst_read_fndecl_12996 rohm_i2c_burst_read fndecl 4 12996 NULL
158140 +enable_so_xdr_reserve_space_fndecl_12997 xdr_reserve_space fndecl 2 12997 NULL
158141 +enable_so_end_file_extent_cluster_13001 end file_extent_cluster 0 13001 NULL
158142 +enable_so_pm3fb_size_memory_fndecl_13002 pm3fb_size_memory fndecl 0 13002 NULL
158143 +enable_so_mcp795_rtcc_write_fndecl_13014 mcp795_rtcc_write fndecl 4 13014 NULL nohasharray
158144 +enable_so_gfs2_fsync_fndecl_13014 gfs2_fsync fndecl 2-3 13014 &enable_so_mcp795_rtcc_write_fndecl_13014
158145 +enable_so_sg_alloc_table_from_pages_fndecl_13015 sg_alloc_table_from_pages fndecl 5-4 13015 NULL nohasharray
158146 +enable_so_kfifo_unused_fndecl_13015 kfifo_unused fndecl 0 13015 &enable_so_sg_alloc_table_from_pages_fndecl_13015
158147 +enable_so_arg_end_mm_struct_13016 arg_end mm_struct 0 13016 NULL
158148 +enable_so_mp_override_legacy_irq_fndecl_13017 mp_override_legacy_irq fndecl 1-4 13017 NULL
158149 +enable_so_rpcrdma_alloc_regbuf_fndecl_13018 rpcrdma_alloc_regbuf fndecl 2 13018 NULL
158150 +enable_so_snd_nm256_capture_copy_fndecl_13021 snd_nm256_capture_copy fndecl 5 13021 NULL
158151 +enable_so_do_mbind_fndecl_13022 do_mbind fndecl 2-1 13022 NULL
158152 +enable_so_format_supported_num_intel_sdvo_connector_13024 format_supported_num intel_sdvo_connector 0 13024 NULL
158153 +enable_so___free_memory_core_fndecl_13029 __free_memory_core fndecl 0-1-2 13029 NULL
158154 +enable_so_blk_queue_resize_tags_fndecl_13037 blk_queue_resize_tags fndecl 2 13037 NULL
158155 +enable_so_copy_align_dma_device_13054 copy_align dma_device 0 13054 NULL
158156 +enable_so_p9_fcall_alloc_fndecl_13055 p9_fcall_alloc fndecl 1 13055 NULL nohasharray
158157 +enable_so_sco_sock_recvmsg_fndecl_13055 sco_sock_recvmsg fndecl 3 13055 &enable_so_p9_fcall_alloc_fndecl_13055
158158 +enable_so_hfront_porch_videomode_13056 hfront_porch videomode 0 13056 NULL
158159 +enable_so_calib_calib_count_read_fndecl_13060 calib_calib_count_read fndecl 3 13060 NULL
158160 +enable_so_p_offset_elf64_phdr_13061 p_offset elf64_phdr 0 13061 NULL
158161 +enable_so_xfs_bunmapi_fndecl_13063 xfs_bunmapi fndecl 3-4 13063 NULL
158162 +enable_so___ocfs2_dx_dir_leaf_insert_fndecl_13066 __ocfs2_dx_dir_leaf_insert fndecl 4 13066 NULL
158163 +enable_so_read_disk_sb_fndecl_13071 read_disk_sb fndecl 2 13071 NULL
158164 +enable_so_drAlBlkSiz_hfs_mdb_13072 drAlBlkSiz hfs_mdb 0 13072 NULL nohasharray
158165 +enable_so_amd756_ioport_vardecl_i2c_amd756_c_13072 amd756_ioport vardecl_i2c-amd756.c 0 13072 &enable_so_drAlBlkSiz_hfs_mdb_13072
158166 +enable_so_first_p2m_pfn_start_info_13081 first_p2m_pfn start_info 0 13081 NULL
158167 +enable_so_envc_tomoyo_condition_13082 envc tomoyo_condition 0 13082 NULL
158168 +enable_so_c4iw_reject_cr_fndecl_13085 c4iw_reject_cr fndecl 3 13085 NULL
158169 +enable_so_vread_fndecl_13086 vread fndecl 3-0 13086 NULL
158170 +enable_so_hard_mtu_usbnet_13093 hard_mtu usbnet 0 13093 NULL nohasharray
158171 +enable_so_vrambase_sisusb_usb_data_13093 vrambase sisusb_usb_data 0 13093 &enable_so_hard_mtu_usbnet_13093 nohasharray
158172 +enable_so_cursg_ofs_ide_cmd_13093 cursg_ofs ide_cmd 0 13093 &enable_so_vrambase_sisusb_usb_data_13093 nohasharray
158173 +enable_so_thermal_zone_device_register_fndecl_13093 thermal_zone_device_register fndecl 2 13093 &enable_so_cursg_ofs_ide_cmd_13093
158174 +enable_so_set_wep_key_fndecl_13094 set_wep_key fndecl 4 13094 NULL
158175 +enable_so___exclude_logged_extent_fndecl_13095 __exclude_logged_extent fndecl 3-2 13095 NULL
158176 +enable_so_end_data_mm_struct_13099 end_data mm_struct 0 13099 NULL
158177 +enable_so_ext4_xattr_security_set_fndecl_13101 ext4_xattr_security_set fndecl 5 13101 NULL
158178 +enable_so_ocfs2_cow_sync_writeback_fndecl_13102 ocfs2_cow_sync_writeback fndecl 3-4 13102 NULL nohasharray
158179 +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
158180 +enable_so___qp_memcpy_from_queue_fndecl_13103 __qp_memcpy_from_queue fndecl 4-3 13103 NULL nohasharray
158181 +enable_so_sctp_tsnmap_skip_fndecl_13103 sctp_tsnmap_skip fndecl 2 13103 &enable_so___qp_memcpy_from_queue_fndecl_13103
158182 +enable_so_cx24117_readregN_fndecl_13105 cx24117_readregN fndecl 4 13105 NULL
158183 +enable_so_num_qp_mlx4_profile_13106 num_qp mlx4_profile 0 13106 NULL
158184 +enable_so_di_size_efs_dinode_13109 di_size efs_dinode 0 13109 NULL
158185 +enable_so_au_verfsize_rpc_auth_13110 au_verfsize rpc_auth 0 13110 NULL
158186 +enable_so_DecodeMatrix_fndecl_13117 DecodeMatrix fndecl 0 13117 NULL nohasharray
158187 +enable_so_wIELength_uwb_rc_evt_drp_WUSB_0100_13117 wIELength uwb_rc_evt_drp_WUSB_0100 0 13117 &enable_so_DecodeMatrix_fndecl_13117
158188 +enable_so_sys_setpriority_fndecl_13132 sys_setpriority fndecl 3 13132 NULL
158189 +enable_so_source_pad_adv76xx_state_13133 source_pad adv76xx_state 0 13133 NULL
158190 +enable_so_c4iw_wr_log_size_order_vardecl_device_c_13134 c4iw_wr_log_size_order vardecl_device.c 0 13134 NULL
158191 +enable_so_line6_alloc_sysex_buffer_fndecl_13138 line6_alloc_sysex_buffer fndecl 4 13138 NULL
158192 +enable_so_genwqe_sriov_configure_fndecl_13139 genwqe_sriov_configure fndecl 2 13139 NULL
158193 +enable_so_mousedev_reserve_minor_fndecl_13143 mousedev_reserve_minor fndecl 0 13143 NULL
158194 +enable_so_viafb_bpp_vardecl_viafbdev_c_13145 viafb_bpp vardecl_viafbdev.c 0 13145 NULL
158195 +enable_so_max_response_packet_size_ec_response_get_protocol_info_13148 max_response_packet_size ec_response_get_protocol_info 0 13148 NULL
158196 +enable_so_key_affs_ext_key_13149 key affs_ext_key 0 13149 NULL
158197 +enable_so_calc_available_memory_size_fndecl_13151 calc_available_memory_size fndecl 0 13151 NULL
158198 +enable_so_len_mtd_write_req_13154 len mtd_write_req 0 13154 NULL nohasharray
158199 +enable_so_EraseUnitSize_erase_unit_header_t_13154 EraseUnitSize erase_unit_header_t 0 13154 &enable_so_len_mtd_write_req_13154
158200 +enable_so_num_pg_nvm_id_group_13160 num_pg nvm_id_group 0 13160 NULL
158201 +enable_so_inline_xattr_size_fndecl_13166 inline_xattr_size fndecl 0 13166 NULL
158202 +enable_so_hpfs_add_to_dnode_fndecl_13167 hpfs_add_to_dnode fndecl 4-2 13167 NULL
158203 +enable_so_len_rsv_13186 len rsv 0 13186 NULL nohasharray
158204 +enable_so_nouveau_compat_ioctl_fndecl_13186 nouveau_compat_ioctl fndecl 2 13186 &enable_so_len_rsv_13186
158205 +enable_so_blocksize_f2fs_sb_info_13191 blocksize f2fs_sb_info 0 13191 NULL
158206 +enable_so_bsg_setup_queue_fndecl_13194 bsg_setup_queue fndecl 5 13194 NULL
158207 +enable_so_generic_access_phys_fndecl_13197 generic_access_phys fndecl 2-4 13197 NULL
158208 +enable_so_snd_pcm_oss_read_fndecl_13198 snd_pcm_oss_read fndecl 3 13198 NULL
158209 +enable_so_SyS_ppoll_fndecl_13201 SyS_ppoll fndecl 2 13201 NULL
158210 +enable_so_dma_map_sg_attrs_fndecl_13202 dma_map_sg_attrs fndecl 0 13202 NULL
158211 +enable_so_num_channels_sh_cmt_device_13209 num_channels sh_cmt_device 0 13209 NULL
158212 +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
158213 +enable_so_height_usbtv_13217 height usbtv 0 13217 NULL nohasharray
158214 +enable_so_bm_entry_write_fndecl_13217 bm_entry_write fndecl 3 13217 &enable_so_height_usbtv_13217
158215 +enable_so_create_boot_cache_fndecl_13218 create_boot_cache fndecl 3 13218 NULL
158216 +enable_so_total_xfer_len_sas_task_13219 total_xfer_len sas_task 0 13219 NULL
158217 +enable_so_ath5k_common_padpos_fndecl_13221 ath5k_common_padpos fndecl 0 13221 NULL
158218 +enable_so_tcp_copy_to_iovec_fndecl_13227 tcp_copy_to_iovec fndecl 3 13227 NULL
158219 +enable_so_len_hi_sigma_action_13229 len_hi sigma_action 0 13229 NULL
158220 +enable_so_filldir64_fndecl_13232 filldir64 fndecl 3 13232 NULL
158221 +enable_so_mtdram_init_device_fndecl_13236 mtdram_init_device fndecl 3 13236 NULL
158222 +enable_so_ipxitf_alloc_fndecl_13238 ipxitf_alloc fndecl 6 13238 NULL
158223 +enable_so_max_mthca_wq_13240 max mthca_wq 0 13240 NULL
158224 +enable_so_update_sge_fndecl_13245 update_sge fndecl 2 13245 NULL
158225 +enable_so_sq_psn_ib_qp_attr_13249 sq_psn ib_qp_attr 0 13249 NULL nohasharray
158226 +enable_so_batadv_handle_tt_response_fndecl_13249 batadv_handle_tt_response fndecl 4 13249 &enable_so_sq_psn_ib_qp_attr_13249
158227 +enable_so_dst_base_apei_exec_context_13252 dst_base apei_exec_context 0 13252 NULL
158228 +enable_so_maxsize_p9_trans_module_13254 maxsize p9_trans_module 0 13254 NULL
158229 +enable_so_pid_filter_count_dvb_usb_adapter_properties_13258 pid_filter_count dvb_usb_adapter_properties 0 13258 NULL
158230 +enable_so_blocklen_bytes_drbg_core_13259 blocklen_bytes drbg_core 0 13259 NULL nohasharray
158231 +enable_so_maxid_scif_info_13259 maxid scif_info 0 13259 &enable_so_blocklen_bytes_drbg_core_13259
158232 +enable_so_rsp_pay_size_qlcnic_bc_trans_13274 rsp_pay_size qlcnic_bc_trans 0 13274 NULL nohasharray
158233 +enable_so_rx_len_acpi_ipmi_msg_13274 rx_len acpi_ipmi_msg 0 13274 &enable_so_rsp_pay_size_qlcnic_bc_trans_13274
158234 +enable_so_xfs_iomap_write_unwritten_fndecl_13278 xfs_iomap_write_unwritten fndecl 3-2 13278 NULL
158235 +enable_so_status_usb_iso_packet_descriptor_13287 status usb_iso_packet_descriptor 0 13287 NULL
158236 +enable_so_num_bytes_sigma_fw_chunk_control_13289 num_bytes sigma_fw_chunk_control 0 13289 NULL
158237 +enable_so_compress_file_range_fndecl_13295 compress_file_range fndecl 3-4 13295 NULL
158238 +enable_so_ioc_plen1_libcfs_ioctl_data_13297 ioc_plen1 libcfs_ioctl_data 0 13297 NULL
158239 +enable_so_dlmfs_file_read_fndecl_13298 dlmfs_file_read fndecl 3 13298 NULL
158240 +enable_so_sys_writev_fndecl_13299 sys_writev fndecl 3 13299 NULL
158241 +enable_so_alloc_page_buffers_fndecl_13304 alloc_page_buffers fndecl 2 13304 NULL
158242 +enable_so_tx_frag_cache_miss_read_fndecl_13305 tx_frag_cache_miss_read fndecl 3 13305 NULL
158243 +enable_so_rxkad_secure_packet_auth_fndecl_13307 rxkad_secure_packet_auth fndecl 3 13307 NULL
158244 +enable_so_list_bytes_osdv2_attributes_list_header_13311 list_bytes osdv2_attributes_list_header 0 13311 NULL
158245 +enable_so_tool_db_write_fndecl_13312 tool_db_write fndecl 3 13312 NULL
158246 +enable_so_token_size_iw_ioctl_description_13319 token_size iw_ioctl_description 0 13319 NULL nohasharray
158247 +enable_so_req_len_snic_req_info_13319 req_len snic_req_info 0 13319 &enable_so_token_size_iw_ioctl_description_13319
158248 +enable_so_slhc_uncompress_fndecl_13322 slhc_uncompress fndecl 0-3 13322 NULL
158249 +enable_so_skb_zerocopy_headlen_fndecl_13325 skb_zerocopy_headlen fndecl 0 13325 NULL
158250 +enable_so_msi_check_msi_domain_ops_13329 msi_check msi_domain_ops 0 13329 NULL
158251 +enable_so_csum_and_copy_from_iter_fndecl_13338 csum_and_copy_from_iter fndecl 2 13338 NULL
158252 +enable_so_copy_buffer_fndecl_13339 copy_buffer fndecl 1-2-3 13339 NULL
158253 +enable_so_brcmf_usb_dl_cmd_fndecl_13344 brcmf_usb_dl_cmd fndecl 4 13344 NULL
158254 +enable_so_x25_asy_change_mtu_fndecl_13347 x25_asy_change_mtu fndecl 2 13347 NULL
158255 +enable_so_pwr_ps_enter_read_fndecl_13348 pwr_ps_enter_read fndecl 3 13348 NULL nohasharray
158256 +enable_so_sctp_setsockopt_adaptation_layer_fndecl_13348 sctp_setsockopt_adaptation_layer fndecl 3 13348 &enable_so_pwr_ps_enter_read_fndecl_13348
158257 +enable_so_compat_mtw_from_user_fndecl_13351 compat_mtw_from_user fndecl 0 13351 NULL
158258 +enable_so_hecubafb_write_fndecl_13357 hecubafb_write fndecl 3 13357 NULL
158259 +enable_so_carl9170_handle_mpdu_fndecl_13359 carl9170_handle_mpdu fndecl 3 13359 NULL
158260 +enable_so_hhf_zalloc_fndecl_13363 hhf_zalloc fndecl 1 13363 NULL
158261 +enable_so_unit_mddev_13365 unit mddev 0 13365 NULL
158262 +enable_so_ihl_iphdr_13367 ihl iphdr 0 13367 NULL nohasharray
158263 +enable_so_cfg80211_process_auth_fndecl_13367 cfg80211_process_auth fndecl 3 13367 &enable_so_ihl_iphdr_13367
158264 +enable_so_sd_size_stat_data_13368 sd_size stat_data 0 13368 NULL
158265 +enable_so_ep_response_mts_desc_13372 ep_response mts_desc 0 13372 NULL
158266 +enable_so_num_pages_ttm_tt_13376 num_pages ttm_tt 0 13376 NULL nohasharray
158267 +enable_so_error_error_frame_during_protection_read_fndecl_13376 error_error_frame_during_protection_read fndecl 3 13376 &enable_so_num_pages_ttm_tt_13376
158268 +enable_so_ds_in_channels_hdspm_13382 ds_in_channels hdspm 0 13382 NULL nohasharray
158269 +enable_so_T5_msg_size_mxt_data_13382 T5_msg_size mxt_data 0 13382 &enable_so_ds_in_channels_hdspm_13382
158270 +enable_so_max_width_sh_mobile_ceu_dev_13387 max_width sh_mobile_ceu_dev 0 13387 NULL nohasharray
158271 +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
158272 +enable_so_off_dt_strings_fdt_header_13388 off_dt_strings fdt_header 0 13388 NULL nohasharray
158273 +enable_so_chunk_size_lirc_buffer_13388 chunk_size lirc_buffer 0 13388 &enable_so_off_dt_strings_fdt_header_13388
158274 +enable_so_beep_amp_conexant_spec_13390 beep_amp conexant_spec 0 13390 NULL
158275 +enable_so_ic_offset_xlog_in_core_13393 ic_offset xlog_in_core 0 13393 NULL nohasharray
158276 +enable_so_cmdsts__BufferDesc_13393 cmdsts _BufferDesc 0 13393 &enable_so_ic_offset_xlog_in_core_13393 nohasharray
158277 +enable_so_max_sets_vardecl_ip_set_core_c_13393 max_sets vardecl_ip_set_core.c 0 13393 &enable_so_cmdsts__BufferDesc_13393
158278 +enable_so_memblock_add_fndecl_13394 memblock_add fndecl 1-2 13394 NULL
158279 +enable_so_nfs42_fallocate_fndecl_13396 nfs42_fallocate fndecl 3-4 13396 NULL
158280 +enable_so_mp_payload_len_fcoe_mp_rsp_union_13397 mp_payload_len fcoe_mp_rsp_union 0 13397 NULL nohasharray
158281 +enable_so_i_size_write_fndecl_13397 i_size_write fndecl 2 13397 &enable_so_mp_payload_len_fcoe_mp_rsp_union_13397
158282 +enable_so_microread_probe_fndecl_13400 microread_probe fndecl 6-4 13400 NULL nohasharray
158283 +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
158284 +enable_so_rmmio_base_cirrus_device_13402 rmmio_base cirrus_device 0 13402 NULL
158285 +enable_so_nfs_proc_readlink_fndecl_13404 nfs_proc_readlink fndecl 4-3 13404 NULL
158286 +enable_so_shrink_slab_fndecl_13407 shrink_slab fndecl 5-4 13407 NULL
158287 +enable_so_subdevices_count_snd_rawmidi_info_13408 subdevices_count snd_rawmidi_info 0 13408 NULL
158288 +enable_so_rate_adav80x_13411 rate adav80x 0 13411 NULL
158289 +enable_so_extra_len_request_13419 extra_len request 0 13419 NULL
158290 +enable_so_i2c_smbus_xfer_fndecl_13421 i2c_smbus_xfer fndecl 0 13421 NULL
158291 +enable_so_nrealreaders_stress_lock_torture_cxt_13422 nrealreaders_stress lock_torture_cxt 0 13422 NULL
158292 +enable_so_tx_headroom_ieee80211_local_13423 tx_headroom ieee80211_local 0 13423 NULL
158293 +enable_so_do_direct_IO_fndecl_13424 do_direct_IO fndecl 0 13424 NULL
158294 +enable_so_di_nblocks_xfs_icdinode_13426 di_nblocks xfs_icdinode 0 13426 NULL
158295 +enable_so_tb_path_alloc_fndecl_13427 tb_path_alloc fndecl 2 13427 NULL
158296 +enable_so_get_origin_minimum_chunksize_fndecl_13432 get_origin_minimum_chunksize fndecl 0 13432 NULL
158297 +enable_so_usbdev_lseek_fndecl_13441 usbdev_lseek fndecl 2 13441 NULL
158298 +enable_so_promote_fndecl_13442 promote fndecl 4-3 13442 NULL
158299 +enable_so_kvm_read_guest_phys_system_fndecl_13445 kvm_read_guest_phys_system fndecl 2-4 13445 NULL
158300 +enable_so_nports_adapter_params_13446 nports adapter_params 0 13446 NULL
158301 +enable_so_drvinfo_sz_rtl8xxxu_rx_desc_13448 drvinfo_sz rtl8xxxu_rx_desc 0 13448 NULL
158302 +enable_so_fill_read_buf_fndecl_13455 fill_read_buf fndecl 0-2 13455 NULL
158303 +enable_so_me_start_ocfs2_move_extents_13461 me_start ocfs2_move_extents 0 13461 NULL nohasharray
158304 +enable_so_max_eq_mlx4_func_cap_13461 max_eq mlx4_func_cap 0 13461 &enable_so_me_start_ocfs2_move_extents_13461
158305 +enable_so_flaglen_ring_desc_13468 flaglen ring_desc 0 13468 NULL
158306 +enable_so_ufs_alloc_fragments_fndecl_13472 ufs_alloc_fragments fndecl 2-0-3 13472 NULL nohasharray
158307 +enable_so_handle_mm_fault_fndecl_13472 handle_mm_fault fndecl 3 13472 &enable_so_ufs_alloc_fragments_fndecl_13472 nohasharray
158308 +enable_so_snd_ctl_new_fndecl_13472 snd_ctl_new fndecl 2 13472 &enable_so_handle_mm_fault_fndecl_13472
158309 +enable_so_height_bttv_fh_13473 height bttv_fh 0 13473 NULL
158310 +enable_so_multipath_end_bh_io_fndecl_13474 multipath_end_bh_io fndecl 2 13474 NULL
158311 +enable_so_req_ie_length_ndis_80211_assoc_info_13477 req_ie_length ndis_80211_assoc_info 0 13477 NULL nohasharray
158312 +enable_so___videobuf_alloc_vb_fndecl_13477 __videobuf_alloc_vb fndecl 1 13477 &enable_so_req_ie_length_ndis_80211_assoc_info_13477
158313 +enable_so_devfn_slot_13478 devfn slot 0 13478 NULL
158314 +enable_so_ext4_convert_unwritten_extents_fndecl_13483 ext4_convert_unwritten_extents fndecl 3-4 13483 NULL
158315 +enable_so_size_jffs2_full_dnode_13487 size jffs2_full_dnode 0 13487 NULL
158316 +enable_so_sk_datalen_svc_sock_13490 sk_datalen svc_sock 0 13490 NULL nohasharray
158317 +enable_so_i_section_size_iso_inode_info_13490 i_section_size iso_inode_info 0 13490 &enable_so_sk_datalen_svc_sock_13490
158318 +enable_so_curchunk_len_drm_dp_sideband_msg_rx_13501 curchunk_len drm_dp_sideband_msg_rx 0 13501 NULL
158319 +enable_so_sendpage_proto_ops_13505 sendpage proto_ops 0 13505 NULL nohasharray
158320 +enable_so_hwtstamp_ioctl_fndecl_13505 hwtstamp_ioctl fndecl 0 13505 &enable_so_sendpage_proto_ops_13505
158321 +enable_so_scif_vreadfrom_fndecl_13516 scif_vreadfrom fndecl 4-3 13516 NULL
158322 +enable_so_max_channels_cmipci_13517 max_channels cmipci 0 13517 NULL nohasharray
158323 +enable_so_len_unix_address_13517 len unix_address 0 13517 &enable_so_max_channels_cmipci_13517
158324 +enable_so_max_out_size_ims_pcu_13527 max_out_size ims_pcu 0 13527 NULL
158325 +enable_so_av_buf_head_dccp_ackvec_13528 av_buf_head dccp_ackvec 0 13528 NULL nohasharray
158326 +enable_so_alloc_fdmem_fndecl_13528 alloc_fdmem fndecl 1 13528 &enable_so_av_buf_head_dccp_ackvec_13528
158327 +enable_so_ppp_print_buffer_fndecl_13530 ppp_print_buffer fndecl 3 13530 NULL
158328 +enable_so_max_ws_blocks_scsi_disk_13533 max_ws_blocks scsi_disk 0 13533 NULL
158329 +enable_so_find_rsb_nodir_fndecl_13537 find_rsb_nodir fndecl 3 13537 NULL
158330 +enable_so_hfi1_snoop_write_fndecl_13544 hfi1_snoop_write fndecl 3 13544 NULL
158331 +enable_so_p_filesz_elf64_phdr_13545 p_filesz elf64_phdr 0 13545 NULL
158332 +enable_so_len_prism2_download_data_area_13551 len prism2_download_data_area 0 13551 NULL
158333 +enable_so_nes_reg_user_mr_fndecl_13553 nes_reg_user_mr fndecl 2-3 13553 NULL nohasharray
158334 +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
158335 +enable_so_context_id_fcoe_kwqe_conn_destroy_13555 context_id fcoe_kwqe_conn_destroy 0 13555 NULL
158336 +enable_so___devcgroup_inode_permission_fndecl_13559 __devcgroup_inode_permission fndecl 0 13559 NULL nohasharray
158337 +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
158338 +enable_so_buf_len_vp702x_device_state_13562 buf_len vp702x_device_state 0 13562 NULL
158339 +enable_so_capture_periodsize_rme96_13564 capture_periodsize rme96 0 13564 NULL
158340 +enable_so_trusted_set_fndecl_13568 trusted_set fndecl 5 13568 NULL nohasharray
158341 +enable_so_init_currently_empty_zone_fndecl_13568 init_currently_empty_zone fndecl 2 13568 &enable_so_trusted_set_fndecl_13568
158342 +enable_so_edt_ft5x06_ts_readwrite_fndecl_13570 edt_ft5x06_ts_readwrite fndecl 2-4 13570 NULL
158343 +enable_so_avc_tuner_dsd_dvb_t_fndecl_13571 avc_tuner_dsd_dvb_t fndecl 0 13571 NULL
158344 +enable_so_pitch_drm_mode_create_dumb_13574 pitch drm_mode_create_dumb 0 13574 NULL nohasharray
158345 +enable_so_amdtp_stream_get_max_payload_fndecl_13574 amdtp_stream_get_max_payload fndecl 0 13574 &enable_so_pitch_drm_mode_create_dumb_13574
158346 +enable_so_irq_alloc_generic_chip_fndecl_13577 irq_alloc_generic_chip fndecl 2 13577 NULL
158347 +enable_so_fd_do_prot_fill_fndecl_13583 fd_do_prot_fill fndecl 5-3 13583 NULL
158348 +enable_so_pwr_fix_tsf_ps_read_fndecl_13584 pwr_fix_tsf_ps_read fndecl 3 13584 NULL
158349 +enable_so_ring_size_r600_ih_13586 ring_size r600_ih 0 13586 NULL
158350 +enable_so_lines_nvkm_gpio_func_13593 lines nvkm_gpio_func 0 13593 NULL
158351 +enable_so_video_v_start_saa7134_tvnorm_13594 video_v_start saa7134_tvnorm 0 13594 NULL nohasharray
158352 +enable_so___skb_flow_dissect_fndecl_13594 __skb_flow_dissect fndecl 6 13594 &enable_so_video_v_start_saa7134_tvnorm_13594
158353 +enable_so_pxa168_eth_change_mtu_fndecl_13596 pxa168_eth_change_mtu fndecl 2 13596 NULL nohasharray
158354 +enable_so_sysctl_wmem_default_vardecl_13596 sysctl_wmem_default vardecl 0 13596 &enable_so_pxa168_eth_change_mtu_fndecl_13596
158355 +enable_so_fb_x_vmw_fb_par_13597 fb_x vmw_fb_par 0 13597 NULL
158356 +enable_so_size_drm_mm_node_13605 size drm_mm_node 0 13605 NULL
158357 +enable_so_flowinfo_read_fndecl_13608 flowinfo_read fndecl 3 13608 NULL
158358 +enable_so_id_pcap_subdev_13609 id pcap_subdev 0 13609 NULL
158359 +enable_so_cipso_v4_map_cat_rbm_hton_fndecl_13611 cipso_v4_map_cat_rbm_hton fndecl 0 13611 NULL nohasharray
158360 +enable_so_size_sm501_mem_13611 size sm501_mem 0 13611 &enable_so_cipso_v4_map_cat_rbm_hton_fndecl_13611
158361 +enable_so_nvoices_snd_seq_oss_reg_13613 nvoices snd_seq_oss_reg 0 13613 NULL
158362 +enable_so_us122l_start_fndecl_13617 us122l_start fndecl 2-3 13617 NULL
158363 +enable_so_softback_top_vardecl_fbcon_c_13621 softback_top vardecl_fbcon.c 0 13621 NULL nohasharray
158364 +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
158365 +enable_so_desc_size_efi_memory_map_13622 desc_size efi_memory_map 0 13622 NULL nohasharray
158366 +enable_so_usb_reset_device_fndecl_13622 usb_reset_device fndecl 0 13622 &enable_so_desc_size_efi_memory_map_13622
158367 +enable_so_ws_col_winsize_13628 ws_col winsize 0 13628 NULL
158368 +enable_so_num_mgms_mthca_limits_13629 num_mgms mthca_limits 0 13629 NULL
158369 +enable_so_x1_drm_clip_rect_13637 x1 drm_clip_rect 0 13637 NULL nohasharray
158370 +enable_so_max_dpcd_transaction_bytes_drm_dp_mst_topology_mgr_13637 max_dpcd_transaction_bytes drm_dp_mst_topology_mgr 0 13637 &enable_so_x1_drm_clip_rect_13637
158371 +enable_so_xenbus_map_ring_valloc_hvm_fndecl_13638 xenbus_map_ring_valloc_hvm fndecl 3 13638 NULL nohasharray
158372 +enable_so_entry_mpls_label_13638 entry mpls_label 0 13638 &enable_so_xenbus_map_ring_valloc_hvm_fndecl_13638
158373 +enable_so_nbytes_ata_queued_cmd_13642 nbytes ata_queued_cmd 0 13642 NULL
158374 +enable_so_nilfs_compute_checksum_fndecl_13643 nilfs_compute_checksum fndecl 6 13643 NULL nohasharray
158375 +enable_so_npools_svc_pool_map_13643 npools svc_pool_map 0 13643 &enable_so_nilfs_compute_checksum_fndecl_13643
158376 +enable_so_number_mdp_device_descriptor_s_13645 number mdp_device_descriptor_s 0 13645 NULL
158377 +enable_so_totalsize_fdt_header_13649 totalsize fdt_header 0 13649 NULL
158378 +enable_so_unicast_mac_count_be_nic_res_desc_13650 unicast_mac_count be_nic_res_desc 0 13650 NULL
158379 +enable_so_page_len_xdr_buf_13652 page_len xdr_buf 0 13652 NULL
158380 +enable_so_buffer_pos_vardecl_event_buffer_c_13658 buffer_pos vardecl_event_buffer.c 0 13658 NULL
158381 +enable_so_width_s2255_vc_13661 width s2255_vc 0 13661 NULL
158382 +enable_so_fdt_node_offset_by_prop_value_fndecl_13670 fdt_node_offset_by_prop_value fndecl 2 13670 NULL
158383 +enable_so_qpn_ib_ucm_req_13672 qpn ib_ucm_req 0 13672 NULL
158384 +enable_so_length_rbd_img_request_13674 length rbd_img_request 0 13674 NULL
158385 +enable_so_vsync_psb_pipe_13675 vsync psb_pipe 0 13675 NULL
158386 +enable_so_fixup_pmc551_fndecl_13679 fixup_pmc551 fndecl 0 13679 NULL
158387 +enable_so_nfc_hci_send_cmd_async_fndecl_13680 nfc_hci_send_cmd_async fndecl 5 13680 NULL
158388 +enable_so_receive_big_fndecl_13686 receive_big fndecl 5 13686 NULL
158389 +enable_so_writing_osst_buffer_13689 writing osst_buffer 0 13689 NULL
158390 +enable_so_w_align_bdisp_fmt_13694 w_align bdisp_fmt 0 13694 NULL
158391 +enable_so_hpfs_free_sectors_fndecl_13696 hpfs_free_sectors fndecl 3 13696 NULL
158392 +enable_so_skb_size_qlcnic_host_rds_ring_13698 skb_size qlcnic_host_rds_ring 0 13698 NULL
158393 +enable_so_resize_platform_label_table_fndecl_13711 resize_platform_label_table fndecl 2 13711 NULL
158394 +enable_so_bos_desc_fndecl_13715 bos_desc fndecl 0 13715 NULL
158395 +enable_so_valuelen_lo_extended_attribute_13722 valuelen_lo extended_attribute 0 13722 NULL
158396 +enable_so_payload_len_pptp_gre_header_13724 payload_len pptp_gre_header 0 13724 NULL
158397 +enable_so_wsm_buf_reserve_fndecl_13730 wsm_buf_reserve fndecl 2 13730 NULL
158398 +enable_so_ocfs2_xattr_security_set_fndecl_13732 ocfs2_xattr_security_set fndecl 5 13732 NULL
158399 +enable_so_channels_max_snd_soc_pcm_stream_13737 channels_max snd_soc_pcm_stream 0 13737 NULL nohasharray
158400 +enable_so_bfad_iocmd_adapter_cfg_mode_fndecl_13737 bfad_iocmd_adapter_cfg_mode fndecl 0 13737 &enable_so_channels_max_snd_soc_pcm_stream_13737 nohasharray
158401 +enable_so_mfd_add_device_fndecl_13737 mfd_add_device fndecl 6-2 13737 &enable_so_bfad_iocmd_adapter_cfg_mode_fndecl_13737
158402 +enable_so_shdma_prep_dma_cyclic_fndecl_13739 shdma_prep_dma_cyclic fndecl 4-2-3 13739 NULL
158403 +enable_so_nr_segments_vscsiif_request_13741 nr_segments vscsiif_request 0 13741 NULL nohasharray
158404 +enable_so_pof_write_buffer_fndecl_13741 pof_write_buffer fndecl 0 13741 &enable_so_nr_segments_vscsiif_request_13741
158405 +enable_so_len_tcf_em_nbyte_13742 len tcf_em_nbyte 0 13742 NULL
158406 +enable_so_cipso_v4_genopt_fndecl_13743 cipso_v4_genopt fndecl 0 13743 NULL nohasharray
158407 +enable_so_write_pipe_ezusb_priv_13743 write_pipe ezusb_priv 0 13743 &enable_so_cipso_v4_genopt_fndecl_13743 nohasharray
158408 +enable_so_regmap_ibt_write_fndecl_13743 regmap_ibt_write fndecl 3 13743 &enable_so_write_pipe_ezusb_priv_13743
158409 +enable_so_level_guest_walker32_13749 level guest_walker32 0 13749 NULL
158410 +enable_so_qlcnic_alloc_sds_rings_fndecl_13752 qlcnic_alloc_sds_rings fndecl 2 13752 NULL
158411 +enable_so_compat_sys_recv_fndecl_13753 compat_sys_recv fndecl 3 13753 NULL
158412 +enable_so_length_core_conn_create_data_13754 length core_conn_create_data 0 13754 NULL nohasharray
158413 +enable_so_numrx_velocity_opt_13754 numrx velocity_opt 0 13754 &enable_so_length_core_conn_create_data_13754
158414 +enable_so_i_pino_f2fs_inode_13756 i_pino f2fs_inode 0 13756 NULL
158415 +enable_so_slgt_compat_ioctl_fndecl_13761 slgt_compat_ioctl fndecl 3 13761 NULL nohasharray
158416 +enable_so_xfs_alloc_pagf_init_fndecl_13761 xfs_alloc_pagf_init fndecl 3 13761 &enable_so_slgt_compat_ioctl_fndecl_13761
158417 +enable_so_encrypt_headroom_ieee80211_sub_if_data_13764 encrypt_headroom ieee80211_sub_if_data 0 13764 NULL
158418 +enable_so_ar5523_cmd_read_fndecl_13766 ar5523_cmd_read fndecl 4 13766 NULL
158419 +enable_so_len_nci_set_config_param_13768 len nci_set_config_param 0 13768 NULL
158420 +enable_so_ecryptfs_miscdev_write_fndecl_13772 ecryptfs_miscdev_write fndecl 3 13772 NULL
158421 +enable_so_get_audio_sampling_rate_fndecl_13774 get_audio_sampling_rate fndecl 0 13774 NULL
158422 +enable_so_do_tcp_rcv_fndecl_13775 do_tcp_rcv fndecl 3 13775 NULL
158423 +enable_so_check_extent_to_block_fndecl_13780 check_extent_to_block fndecl 2-3 13780 NULL
158424 +enable_so_ue_size_asd_bios_chim_struct_13782 ue_size asd_bios_chim_struct 0 13782 NULL
158425 +enable_so_usbhs_dma_calc_received_size_fndecl_13783 usbhs_dma_calc_received_size fndecl 0-3 13783 NULL
158426 +enable_so_build_data_key_fndecl_13784 build_data_key fndecl 2 13784 NULL
158427 +enable_so_iwl_trans_read_mem32_fndecl_13786 iwl_trans_read_mem32 fndecl 0 13786 NULL
158428 +enable_so_ept_get_level1_sp_gpa_fndecl_13788 ept_get_level1_sp_gpa fndecl 0 13788 NULL
158429 +enable_so_smk_write_load_fndecl_13790 smk_write_load fndecl 3 13790 NULL
158430 +enable_so_num_channels_xilly_endpoint_13791 num_channels xilly_endpoint 0 13791 NULL
158431 +enable_so_tipc_conn_sendmsg_fndecl_13792 tipc_conn_sendmsg fndecl 5 13792 NULL
158432 +enable_so_reply_sz__MPT_ADAPTER_13794 reply_sz _MPT_ADAPTER 0 13794 NULL
158433 +enable_so_num_fcoe_msix_i40e_pf_13802 num_fcoe_msix i40e_pf 0 13802 NULL
158434 +enable_so_ath6kl_create_qos_write_fndecl_13804 ath6kl_create_qos_write fndecl 3 13804 NULL
158435 +enable_so_gx_frame_buffer_size_fndecl_13808 gx_frame_buffer_size fndecl 0 13808 NULL
158436 +enable_so_fifo_size_sram_channel_13811 fifo_size sram_channel 0 13811 NULL
158437 +enable_so_shared_kmem_cache_13812 shared kmem_cache 0 13812 NULL
158438 +enable_so_fifo_depth_fsl_ssi_private_13814 fifo_depth fsl_ssi_private 0 13814 NULL
158439 +enable_so_den_min_snd_ratnum_13815 den_min snd_ratnum 0 13815 NULL
158440 +enable_so_rt6i_nfheader_len_rt6_info_13820 rt6i_nfheader_len rt6_info 0 13820 NULL
158441 +enable_so_phys_pte_init_fndecl_13824 phys_pte_init fndecl 0-2-3 13824 NULL nohasharray
158442 +enable_so_seq_read_fndecl_13824 seq_read fndecl 3 13824 &enable_so_phys_pte_init_fndecl_13824
158443 +enable_so_brcmf_sdio_firmware_callback_fndecl_13829 brcmf_sdio_firmware_callback fndecl 4 13829 NULL
158444 +enable_so_ib_dma_map_sg_fndecl_13830 ib_dma_map_sg fndecl 0 13830 NULL
158445 +enable_so_vmem_size_bnxt_ring_struct_13831 vmem_size bnxt_ring_struct 0 13831 NULL
158446 +enable_so_logical_offset_btrfs_dio_private_13833 logical_offset btrfs_dio_private 0 13833 NULL
158447 +enable_so_acpi_os_get_root_pointer_fndecl_13835 acpi_os_get_root_pointer fndecl 0 13835 NULL
158448 +enable_so_cypress_write_fndecl_13836 cypress_write fndecl 4 13836 NULL
158449 +enable_so_ceph_fallocate_fndecl_13837 ceph_fallocate fndecl 4-3 13837 NULL
158450 +enable_so_nr_vecs_biovec_slab_13838 nr_vecs biovec_slab 0 13838 NULL
158451 +enable_so_init_memory_mapping_fndecl_13840 init_memory_mapping fndecl 0-2-1 13840 NULL
158452 +enable_so_resize_user_fndecl_13857 resize_user fndecl 3 13857 NULL nohasharray
158453 +enable_so_bfad_iocmd_ioc_disable_fndecl_13857 bfad_iocmd_ioc_disable fndecl 0 13857 &enable_so_resize_user_fndecl_13857
158454 +enable_so_sddr09_read_data_fndecl_13860 sddr09_read_data fndecl 3-2 13860 NULL
158455 +enable_so_starting_offset_mpt3_diag_read_buffer_13869 starting_offset mpt3_diag_read_buffer 0 13869 NULL
158456 +enable_so_of_flat_dt_match_fndecl_13870 of_flat_dt_match fndecl 1 13870 NULL
158457 +enable_so_pack_sg_list_fndecl_13874 pack_sg_list fndecl 5 13874 NULL
158458 +enable_so_front_len_ceph_msg_header_13876 front_len ceph_msg_header 0 13876 NULL
158459 +enable_so_gfs2_add_jextent_fndecl_13879 gfs2_add_jextent fndecl 2-3 13879 NULL
158460 +enable_so_analog_ep_bulk_em28xx_13880 analog_ep_bulk em28xx 0 13880 NULL
158461 +enable_so_layers_idr_13889 layers idr 0 13889 NULL
158462 +enable_so___btt_log_write_fndecl_13893 __btt_log_write fndecl 0 13893 NULL
158463 +enable_so_cblock_per_bio_data_13894 cblock per_bio_data 0 13894 NULL
158464 +enable_so_s_ncg_ufs_sb_private_info_13899 s_ncg ufs_sb_private_info 0 13899 NULL nohasharray
158465 +enable_so_rlen_cm4000_dev_13899 rlen cm4000_dev 0 13899 &enable_so_s_ncg_ufs_sb_private_info_13899
158466 +enable_so_hold_inflate_state_13902 hold inflate_state 0 13902 NULL
158467 +enable_so_ep93xx_spi_chip_setup_fndecl_13909 ep93xx_spi_chip_setup fndecl 0 13909 NULL
158468 +enable_so_size_qlcnic_83xx_dump_template_hdr_13912 size qlcnic_83xx_dump_template_hdr 0 13912 NULL
158469 +enable_so_pio_base_qib_ctxtdata_13913 pio_base qib_ctxtdata 0 13913 NULL
158470 +enable_so_wm_coeff_parse_int_fndecl_13918 wm_coeff_parse_int fndecl 0 13918 NULL
158471 +enable_so_ipr_max_devs_vardecl_ipr_c_13921 ipr_max_devs vardecl_ipr.c 0 13921 NULL nohasharray
158472 +enable_so_trips_thermal_zone_device_13921 trips thermal_zone_device 0 13921 &enable_so_ipr_max_devs_vardecl_ipr_c_13921
158473 +enable_so_vt_block_vxfs_typed_13924 vt_block vxfs_typed 0 13924 NULL
158474 +enable_so_garmin_read_process_fndecl_13926 garmin_read_process fndecl 3 13926 NULL
158475 +enable_so_unix_stream_read_actor_fndecl_13931 unix_stream_read_actor fndecl 2-3 13931 NULL
158476 +enable_so_s_firstdatazone_minix_sb_info_13932 s_firstdatazone minix_sb_info 0 13932 NULL
158477 +enable_so_hcd_buffer_alloc_fndecl_13940 hcd_buffer_alloc fndecl 2 13940 NULL
158478 +enable_so_img_IMEM_size_fw_hdr_13961 img_IMEM_size fw_hdr 0 13961 NULL
158479 +enable_so_start_ubifs_bud_13964 start ubifs_bud 0 13964 NULL
158480 +enable_so_u132_hcd_configure_input_recv_fndecl_13969 u132_hcd_configure_input_recv fndecl 4 13969 NULL
158481 +enable_so_nla_append_fndecl_13971 nla_append fndecl 2 13971 NULL
158482 +enable_so_ib_copy_to_udata_fndecl_13974 ib_copy_to_udata fndecl 3 13974 NULL
158483 +enable_so_yres_panel_info_13976 yres panel_info 0 13976 NULL
158484 +enable_so_fill_user_buffer_vb2_buf_ops_13979 fill_user_buffer vb2_buf_ops 0 13979 NULL
158485 +enable_so_e_phnum_elf32_hdr_13980 e_phnum elf32_hdr 0 13980 NULL
158486 +enable_so_isdn_tty_handleDLEdown_fndecl_13981 isdn_tty_handleDLEdown fndecl 0 13981 NULL
158487 +enable_so_SyS_fgetxattr_fndecl_13984 SyS_fgetxattr fndecl 4 13984 NULL
158488 +enable_so_syslog_partial_vardecl_printk_c_13985 syslog_partial vardecl_printk.c 0 13985 NULL
158489 +enable_so_rd_size_uhid_device_13986 rd_size uhid_device 0 13986 NULL
158490 +enable_so_libipw_alloc_txb_fndecl_13992 libipw_alloc_txb fndecl 3-2-1 13992 NULL
158491 +enable_so_size_urb_list_13995 size urb_list 0 13995 NULL
158492 +enable_so_i2400mu_notification_grok_fndecl_13997 i2400mu_notification_grok fndecl 3 13997 NULL
158493 +enable_so_pnp_add_io_resource_fndecl_14000 pnp_add_io_resource fndecl 3-2 14000 NULL
158494 +enable_so_n_grants_vscsibk_pend_14001 n_grants vscsibk_pend 0 14001 NULL
158495 +enable_so_blkno_xfs_da_state_blk_14003 blkno xfs_da_state_blk 0 14003 NULL nohasharray
158496 +enable_so_i_len_xfs_log_iovec_14003 i_len xfs_log_iovec 0 14003 &enable_so_blkno_xfs_da_state_blk_14003 nohasharray
158497 +enable_so_nilfs_read_super_root_block_fndecl_14003 nilfs_read_super_root_block fndecl 2 14003 &enable_so_i_len_xfs_log_iovec_14003 nohasharray
158498 +enable_so_wanted_disk_byte___prelim_ref_14003 wanted_disk_byte __prelim_ref 0 14003 &enable_so_nilfs_read_super_root_block_fndecl_14003
158499 +enable_so_buffer_top_vardecl_nm256_c_14008 buffer_top vardecl_nm256.c 0 14008 NULL
158500 +enable_so_n_phy_mvs_chip_info_14009 n_phy mvs_chip_info 0 14009 NULL
158501 +enable_so_ino_logfs_transaction_14011 ino logfs_transaction 0 14011 NULL nohasharray
158502 +enable_so_batadv_socket_add_packet_fndecl_14011 batadv_socket_add_packet fndecl 3 14011 &enable_so_ino_logfs_transaction_14011
158503 +enable_so_e820_update_range_saved_fndecl_14017 e820_update_range_saved fndecl 1-2 14017 NULL
158504 +enable_so_btrfs_find_create_tree_block_fndecl_14018 btrfs_find_create_tree_block fndecl 2 14018 NULL
158505 +enable_so_nct6775_find_fndecl_14019 nct6775_find fndecl 0 14019 NULL
158506 +enable_so_security_enabled_ieee802154_hdr_fc_14024 security_enabled ieee802154_hdr_fc 0 14024 NULL
158507 +enable_so_sensor_framerate_go7007_14025 sensor_framerate go7007 0 14025 NULL
158508 +enable_so_seg_rmpp_size_ib_mad_send_buf_14037 seg_rmpp_size ib_mad_send_buf 0 14037 NULL
158509 +enable_so_mst_offs_ubifs_info_14045 mst_offs ubifs_info 0 14045 NULL
158510 +enable_so_rate_ib_sa_path_rec_14046 rate ib_sa_path_rec 0 14046 NULL nohasharray
158511 +enable_so_descriptors_per_page__drm_via_sg_info_14046 descriptors_per_page _drm_via_sg_info 0 14046 &enable_so_rate_ib_sa_path_rec_14046
158512 +enable_so_zlib_deflateInit2_fndecl_14048 zlib_deflateInit2 fndecl 5-4 14048 NULL
158513 +enable_so_nr_perf_callchain_entry_14049 nr perf_callchain_entry 0 14049 NULL
158514 +enable_so_xdr_shift_buf_fndecl_14055 xdr_shift_buf fndecl 2 14055 NULL nohasharray
158515 +enable_so_drbd_recv_fndecl_14055 drbd_recv fndecl 3-0 14055 &enable_so_xdr_shift_buf_fndecl_14055 nohasharray
158516 +enable_so_C_SYSC_mbind_fndecl_14055 C_SYSC_mbind fndecl 5 14055 &enable_so_drbd_recv_fndecl_14055
158517 +enable_so_add_new_gdb_fndecl_14056 add_new_gdb fndecl 3 14056 NULL nohasharray
158518 +enable_so_nr_ring_pages_blkfront_info_14056 nr_ring_pages blkfront_info 0 14056 &enable_so_add_new_gdb_fndecl_14056
158519 +enable_so_ocfs2_xattr_ibody_get_fndecl_14057 ocfs2_xattr_ibody_get fndecl 0 14057 NULL nohasharray
158520 +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
158521 +enable_so_read_flush_procfs_fndecl_14057 read_flush_procfs fndecl 3 14057 &enable_so_nl80211_send_connect_result_fndecl_14057
158522 +enable_so_btrfs_fallocate_fndecl_14060 btrfs_fallocate fndecl 3-4 14060 NULL
158523 +enable_so_mgmt_device_connected_fndecl_14065 mgmt_device_connected fndecl 5 14065 NULL nohasharray
158524 +enable_so_entry_number_user_desc_14065 entry_number user_desc 0 14065 &enable_so_mgmt_device_connected_fndecl_14065
158525 +enable_so_cyttsp_spi_write_block_data_fndecl_14068 cyttsp_spi_write_block_data fndecl 4 14068 NULL
158526 +enable_so_error_async_submit_bio_14075 error async_submit_bio 0 14075 NULL
158527 +enable_so_end_switchdev_vlan_dump_14086 end switchdev_vlan_dump 0 14086 NULL
158528 +enable_so_regmap_ibt_gather_write_fndecl_14087 regmap_ibt_gather_write fndecl 5 14087 NULL
158529 +enable_so_sh_msiof_dma_once_fndecl_14090 sh_msiof_dma_once fndecl 4 14090 NULL nohasharray
158530 +enable_so_filemark_cnt_os_aux_s_14090 filemark_cnt os_aux_s 0 14090 &enable_so_sh_msiof_dma_once_fndecl_14090
158531 +enable_so_phantom_major_vardecl_phantom_c_14093 phantom_major vardecl_phantom.c 0 14093 NULL
158532 +enable_so_snd_compr_calc_avail_fndecl_14094 snd_compr_calc_avail fndecl 0 14094 NULL
158533 +enable_so___ext4_handle_dirty_metadata_fndecl_14098 __ext4_handle_dirty_metadata fndecl 0 14098 NULL
158534 +enable_so_data_len_vscsibk_pend_14106 data_len vscsibk_pend 0 14106 NULL
158535 +enable_so_gue_gro_remcsum_fndecl_14109 gue_gro_remcsum fndecl 5-2 14109 NULL nohasharray
158536 +enable_so_wil_write_file_wmi_fndecl_14109 wil_write_file_wmi fndecl 3 14109 &enable_so_gue_gro_remcsum_fndecl_14109
158537 +enable_so_alt_port_mlx4_ib_qp_14114 alt_port mlx4_ib_qp 0 14114 NULL nohasharray
158538 +enable_so_elem_size_xdr_array2_desc_14114 elem_size xdr_array2_desc 0 14114 &enable_so_alt_port_mlx4_ib_qp_14114
158539 +enable_so_hfs_direct_IO_fndecl_14120 hfs_direct_IO fndecl 3 14120 NULL
158540 +enable_so_data_count_iscsi_r2t_info_14122 data_count iscsi_r2t_info 0 14122 NULL
158541 +enable_so_adaption_gsm_dlci_14123 adaption gsm_dlci 0 14123 NULL
158542 +enable_so_size_mlx4_en_rx_ring_14125 size mlx4_en_rx_ring 0 14125 NULL
158543 +enable_so_efd_count_ext4_free_data_14128 efd_count ext4_free_data 0 14128 NULL
158544 +enable_so_i2400m_net_rx_fndecl_14129 i2400m_net_rx fndecl 5 14129 NULL
158545 +enable_so_size_uhid_input2_req_14140 size uhid_input2_req 0 14140 NULL
158546 +enable_so_cros_ec_spi_receive_packet_fndecl_14142 cros_ec_spi_receive_packet fndecl 2 14142 NULL
158547 +enable_so_dqi_entry_size_qtree_mem_dqinfo_14150 dqi_entry_size qtree_mem_dqinfo 0 14150 NULL
158548 +enable_so_short_len_fat_ioctl_filldir_callback_14151 short_len fat_ioctl_filldir_callback 0 14151 NULL
158549 +enable_so_page_size_at24_platform_data_14152 page_size at24_platform_data 0 14152 NULL
158550 +enable_so_svcxdr_tmpalloc_fndecl_14154 svcxdr_tmpalloc fndecl 2 14154 NULL nohasharray
158551 +enable_so_write_kmem_fndecl_14154 write_kmem fndecl 3 14154 &enable_so_svcxdr_tmpalloc_fndecl_14154
158552 +enable_so_range_min_regmap_range_node_14166 range_min regmap_range_node 0 14166 NULL
158553 +enable_so_ocfs2_read_blocks_sync_fndecl_14169 ocfs2_read_blocks_sync fndecl 2 14169 NULL
158554 +enable_so_cmd_len_scsi_cmnd_14171 cmd_len scsi_cmnd 0 14171 NULL
158555 +enable_so_ath6kl_wmi_sync_point_fndecl_14172 ath6kl_wmi_sync_point fndecl 2 14172 NULL
158556 +enable_so_len_hermes_idstring_14173 len hermes_idstring 0 14173 NULL
158557 +enable_so_brcmf_usb_recv_ctl_fndecl_14174 brcmf_usb_recv_ctl fndecl 3 14174 NULL
158558 +enable_so___conn_send_command_fndecl_14180 __conn_send_command fndecl 6-4 14180 NULL
158559 +enable_so_curr_tx_buf_size_mwifiex_adapter_14186 curr_tx_buf_size mwifiex_adapter 0 14186 NULL
158560 +enable_so_cfpkt_add_trail_fndecl_14191 cfpkt_add_trail fndecl 3 14191 NULL
158561 +enable_so_rxrpc_request_key_fndecl_14192 rxrpc_request_key fndecl 3 14192 NULL
158562 +enable_so_uvc_fraction_to_interval_fndecl_14194 uvc_fraction_to_interval fndecl 0-2-1 14194 NULL
158563 +enable_so_offset_iscsi_datain_14195 offset iscsi_datain 0 14195 NULL
158564 +enable_so_middle_len_ceph_msg_header_14196 middle_len ceph_msg_header 0 14196 NULL
158565 +enable_so_len_hv_multipage_buffer_14208 len hv_multipage_buffer 0 14208 NULL nohasharray
158566 +enable_so_get_rx_fifo_content_fndecl_14208 get_rx_fifo_content fndecl 0 14208 &enable_so_len_hv_multipage_buffer_14208
158567 +enable_so_remote_qpn_qib_qp_14212 remote_qpn qib_qp 0 14212 NULL
158568 +enable_so_cmd_bounce_size_vmw_sw_context_14217 cmd_bounce_size vmw_sw_context 0 14217 NULL
158569 +enable_so_num_gsm_mux_14221 num gsm_mux 0 14221 NULL
158570 +enable_so_e1000_copybreak_fndecl_14223 e1000_copybreak fndecl 3 14223 NULL
158571 +enable_so_hpfs_remove_dtree_fndecl_14224 hpfs_remove_dtree fndecl 2 14224 NULL
158572 +enable_so_hw_token_fotg210_qtd_14233 hw_token fotg210_qtd 0 14233 NULL
158573 +enable_so_comedi_alloc_devpriv_fndecl_14235 comedi_alloc_devpriv fndecl 2 14235 NULL
158574 +enable_so_usb_submit_urb_fndecl_14237 usb_submit_urb fndecl 0 14237 NULL
158575 +enable_so_next_send_psn_mlx5_qp_context_14239 next_send_psn mlx5_qp_context 0 14239 NULL
158576 +enable_so_create_lease_size_smb_version_values_14240 create_lease_size smb_version_values 0 14240 NULL
158577 +enable_so_backup_load_addr_kimage_arch_14243 backup_load_addr kimage_arch 0 14243 NULL nohasharray
158578 +enable_so_ath6kl_wmi_test_cmd_fndecl_14243 ath6kl_wmi_test_cmd fndecl 3 14243 &enable_so_backup_load_addr_kimage_arch_14243 nohasharray
158579 +enable_so_virtqueue_add_inbuf_fndecl_14243 virtqueue_add_inbuf fndecl 3 14243 &enable_so_ath6kl_wmi_test_cmd_fndecl_14243
158580 +enable_so_write_buf_fndecl_14247 write_buf fndecl 3-0 14247 NULL nohasharray
158581 +enable_so_vid_batadv_tt_common_entry_14247 vid batadv_tt_common_entry 0 14247 &enable_so_write_buf_fndecl_14247
158582 +enable_so_cy8ctmg110_read_regs_fndecl_14259 cy8ctmg110_read_regs fndecl 3 14259 NULL nohasharray
158583 +enable_so_octeon_allocate_device_mem_fndecl_14259 octeon_allocate_device_mem fndecl 2 14259 &enable_so_cy8ctmg110_read_regs_fndecl_14259 nohasharray
158584 +enable_so___wmi_send_fndecl_14259 __wmi_send fndecl 4 14259 &enable_so_octeon_allocate_device_mem_fndecl_14259
158585 +enable_so_nr_blocks_msc_window_14262 nr_blocks msc_window 0 14262 NULL
158586 +enable_so_size_drm_scatter_gather_14264 size drm_scatter_gather 0 14264 NULL
158587 +enable_so_copy_from_buf_fndecl_14271 copy_from_buf fndecl 2-4 14271 NULL
158588 +enable_so_afs_cell_create_fndecl_14273 afs_cell_create fndecl 2 14273 NULL
158589 +enable_so_nilfs_sufile_block_get_segment_usage_fndecl_14278 nilfs_sufile_block_get_segment_usage fndecl 2 14278 NULL
158590 +enable_so_transfer_spi_master_14283 transfer spi_master 0 14283 NULL nohasharray
158591 +enable_so_rds_iw_ring_resize_fndecl_14283 rds_iw_ring_resize fndecl 2 14283 &enable_so_transfer_spi_master_14283
158592 +enable_so_pmtu_qib_qp_14287 pmtu qib_qp 0 14287 NULL nohasharray
158593 +enable_so_qpn_ds_mlx5_wqe_ctrl_seg_14287 qpn_ds mlx5_wqe_ctrl_seg 0 14287 &enable_so_pmtu_qib_qp_14287
158594 +enable_so_req_lim_delta_srp_aer_req_14289 req_lim_delta srp_aer_req 0 14289 NULL
158595 +enable_so_blk_insert_cloned_request_fndecl_14291 blk_insert_cloned_request fndecl 0 14291 NULL
158596 +enable_so_snd_pcm_oss_write2_fndecl_14295 snd_pcm_oss_write2 fndecl 3-0 14295 NULL
158597 +enable_so_yscroll_display_14301 yscroll display 0 14301 NULL
158598 +enable_so_size_ldt_struct_14303 size ldt_struct 0 14303 NULL
158599 +enable_so_outdiv_fll_div_14312 outdiv fll_div 0 14312 NULL
158600 +enable_so_scif_p2p_setsg_fndecl_14314 scif_p2p_setsg fndecl 2-3 14314 NULL
158601 +enable_so_iwl_dbgfs_csr_write_fndecl_14320 iwl_dbgfs_csr_write fndecl 3 14320 NULL
158602 +enable_so_nilfs_ilookup_fndecl_14324 nilfs_ilookup fndecl 3 14324 NULL
158603 +enable_so_gfn_kvm_mmu_page_14326 gfn kvm_mmu_page 0 14326 NULL
158604 +enable_so_pcbit_stat_fndecl_14327 pcbit_stat fndecl 2 14327 NULL
158605 +enable_so_ath6kl_wmi_ap_profile_commit_fndecl_14329 ath6kl_wmi_ap_profile_commit fndecl 2 14329 NULL
158606 +enable_so_data_offset_md_rdev_14330 data_offset md_rdev 0 14330 NULL
158607 +enable_so_pasid_limit_vardecl_kfd_pasid_c_14334 pasid_limit vardecl_kfd_pasid.c 0 14334 NULL
158608 +enable_so_fdt_getprop_namelen_fndecl_14339 fdt_getprop_namelen fndecl 2 14339 NULL nohasharray
158609 +enable_so_mask_myri10ge_rx_buf_14339 mask myri10ge_rx_buf 0 14339 &enable_so_fdt_getprop_namelen_fndecl_14339
158610 +enable_so_carl9170_cmd_callback_fndecl_14341 carl9170_cmd_callback fndecl 2 14341 NULL
158611 +enable_so_loop_start_patch_info_14350 loop_start patch_info 0 14350 NULL
158612 +enable_so_vnet_hdr_sz_macvtap_queue_14351 vnet_hdr_sz macvtap_queue 0 14351 NULL nohasharray
158613 +enable_so_ath6kl_regread_read_fndecl_14351 ath6kl_regread_read fndecl 3 14351 &enable_so_vnet_hdr_sz_macvtap_queue_14351
158614 +enable_so_do_sys_truncate_fndecl_14355 do_sys_truncate fndecl 2 14355 NULL
158615 +enable_so_current_committed_pstore_14356 current_committed pstore 0 14356 NULL
158616 +enable_so_start_section_nr_memory_block_14358 start_section_nr memory_block 0 14358 NULL
158617 +enable_so_blkno_attrlist_cursor_kern_14361 blkno attrlist_cursor_kern 0 14361 NULL
158618 +enable_so_num_vqs_virtio_blk_14363 num_vqs virtio_blk 0 14363 NULL
158619 +enable_so_size_set_mib_buffer_14366 size set_mib_buffer 0 14366 NULL
158620 +enable_so_do_jffs2_setxattr_fndecl_14373 do_jffs2_setxattr fndecl 5 14373 NULL nohasharray
158621 +enable_so_dm_bufio_get_fndecl_14373 dm_bufio_get fndecl 2 14373 &enable_so_do_jffs2_setxattr_fndecl_14373 nohasharray
158622 +enable_so_max_tokens_iw_ioctl_description_14373 max_tokens iw_ioctl_description 0 14373 &enable_so_dm_bufio_get_fndecl_14373
158623 +enable_so_nvme_trans_mode_page_create_fndecl_14375 nvme_trans_mode_page_create fndecl 7-4 14375 NULL
158624 +enable_so_length_scsiif_request_segment_14376 length scsiif_request_segment 0 14376 NULL
158625 +enable_so_start_extent_map_14377 start extent_map 0 14377 NULL
158626 +enable_so_tclass_flow_ocrdma_grh_14379 tclass_flow ocrdma_grh 0 14379 NULL
158627 +enable_so_num_phys__sas_node_14384 num_phys _sas_node 0 14384 NULL
158628 +enable_so_blks_per_lun_nvm_dev_14387 blks_per_lun nvm_dev 0 14387 NULL nohasharray
158629 +enable_so_word15_lpfc_mbx_read_config_14387 word15 lpfc_mbx_read_config 0 14387 &enable_so_blks_per_lun_nvm_dev_14387
158630 +enable_so_dma_in_iguanair_14391 dma_in iguanair 0 14391 NULL
158631 +enable_so_sisusbcon_scroll_area_fndecl_14392 sisusbcon_scroll_area fndecl 3-4 14392 NULL
158632 +enable_so_run_delalloc_nocow_fndecl_14395 run_delalloc_nocow fndecl 3-4 14395 NULL
158633 +enable_so_smp_snoop_fndecl_14400 smp_snoop fndecl 2 14400 NULL
158634 +enable_so_ssize_usbat_info_14405 ssize usbat_info 0 14405 NULL
158635 +enable_so_jffs2_add_physical_node_ref_fndecl_14406 jffs2_add_physical_node_ref fndecl 3-2 14406 NULL
158636 +enable_so_vmcb_iopm_nested_state_14411 vmcb_iopm nested_state 0 14411 NULL nohasharray
158637 +enable_so_dma_error_r592_device_14411 dma_error r592_device 0 14411 &enable_so_vmcb_iopm_nested_state_14411
158638 +enable_so_crtc_hblank_start_drm_display_mode_14412 crtc_hblank_start drm_display_mode 0 14412 NULL nohasharray
158639 +enable_so_min_snd_interval_14412 min snd_interval 0 14412 &enable_so_crtc_hblank_start_drm_display_mode_14412 nohasharray
158640 +enable_so_rl_space_gfs2_rgrp_list_14412 rl_space gfs2_rgrp_list 0 14412 &enable_so_min_snd_interval_14412
158641 +enable_so_num_channels_hsi_config_14414 num_channels hsi_config 0 14414 NULL
158642 +enable_so_bigdirlen_adfs_bigdirentry_14420 bigdirlen adfs_bigdirentry 0 14420 NULL
158643 +enable_so_snd_es1938_capture_copy_fndecl_14425 snd_es1938_capture_copy fndecl 5 14425 NULL
158644 +enable_so_xlog_recover_process_one_iunlink_fndecl_14426 xlog_recover_process_one_iunlink fndecl 3-0-2 14426 NULL
158645 +enable_so_up_cfg80211_dscp_exception_14433 up cfg80211_dscp_exception 0 14433 NULL
158646 +enable_so_offset_brcmf_vndr_dcmd_hdr_14440 offset brcmf_vndr_dcmd_hdr 0 14440 NULL
158647 +enable_so_fimc_adjust_mplane_format_fndecl_14442 fimc_adjust_mplane_format fndecl 3-2 14442 NULL
158648 +enable_so_wrt_pass_cntr_osst_tape_14444 wrt_pass_cntr osst_tape 0 14444 NULL
158649 +enable_so_flush_fndecl_14454 flush fndecl 2 14454 NULL
158650 +enable_so_size_dictionary_14455 size dictionary 0 14455 NULL
158651 +enable_so_residual_data_length_pmcraid_ioasa_14459 residual_data_length pmcraid_ioasa 0 14459 NULL
158652 +enable_so__regmap_multi_reg_write_fndecl_14460 _regmap_multi_reg_write fndecl 3 14460 NULL nohasharray
158653 +enable_so_ravb_hwtstamp_set_fndecl_14460 ravb_hwtstamp_set fndecl 0 14460 &enable_so__regmap_multi_reg_write_fndecl_14460
158654 +enable_so_skb_to_sgvec_nomark_fndecl_14461 skb_to_sgvec_nomark fndecl 4-3 14461 NULL
158655 +enable_so_data_inp_ep_vub300_mmc_host_14468 data_inp_ep vub300_mmc_host 0 14468 NULL nohasharray
158656 +enable_so_cfs_hash_create_fndecl_14468 cfs_hash_create fndecl 4-2-5 14468 &enable_so_data_inp_ep_vub300_mmc_host_14468
158657 +enable_so_sel_end_vardecl_selection_c_14469 sel_end vardecl_selection.c 0 14469 NULL
158658 +enable_so_ntfs_sync_mft_mirror_fndecl_14470 ntfs_sync_mft_mirror fndecl 2 14470 NULL
158659 +enable_so_lpfc_sli_probe_sriov_nr_virtfn_fndecl_14471 lpfc_sli_probe_sriov_nr_virtfn fndecl 2 14471 NULL
158660 +enable_so_num_chn_netvsc_device_14475 num_chn netvsc_device 0 14475 NULL nohasharray
158661 +enable_so_rdmarc_entry_sz_mlx4_dev_cap_14475 rdmarc_entry_sz mlx4_dev_cap 0 14475 &enable_so_num_chn_netvsc_device_14475
158662 +enable_so_groups_netlink_table_14476 groups netlink_table 0 14476 NULL
158663 +enable_so_t1_change_mtu_fndecl_14478 t1_change_mtu fndecl 2 14478 NULL
158664 +enable_so_len_nci_cmd_param_14480 len nci_cmd_param 0 14480 NULL
158665 +enable_so_udp_setsockopt_fndecl_14482 udp_setsockopt fndecl 5 14482 NULL
158666 +enable_so_rx_unit_if_sdio_card_14483 rx_unit if_sdio_card 0 14483 NULL nohasharray
158667 +enable_so_compressed_smiapp_csi_data_format_14483 compressed smiapp_csi_data_format 0 14483 &enable_so_rx_unit_if_sdio_card_14483 nohasharray
158668 +enable_so_qos_mlx4_vf_immed_vlan_work_14483 qos mlx4_vf_immed_vlan_work 0 14483 &enable_so_compressed_smiapp_csi_data_format_14483
158669 +enable_so_ntfs_perform_write_fndecl_14496 ntfs_perform_write fndecl 3-0 14496 NULL
158670 +enable_so_btrfs_lookup_bio_sums_dio_fndecl_14498 btrfs_lookup_bio_sums_dio fndecl 4 14498 NULL
158671 +enable_so_gsm_control_send_fndecl_14499 gsm_control_send fndecl 4 14499 NULL
158672 +enable_so_bfad_iocmd_fcport_enable_fndecl_14500 bfad_iocmd_fcport_enable fndecl 0 14500 NULL nohasharray
158673 +enable_so_free_area_init_node_fndecl_14500 free_area_init_node fndecl 3 14500 &enable_so_bfad_iocmd_fcport_enable_fndecl_14500
158674 +enable_so_selinux_inode_post_setxattr_fndecl_14502 selinux_inode_post_setxattr fndecl 4 14502 NULL
158675 +enable_so_num_vq_mic_device_desc_14503 num_vq mic_device_desc 0 14503 NULL
158676 +enable_so_bnad_q_num_adjust_fndecl_14512 bnad_q_num_adjust fndecl 2 14512 NULL
158677 +enable_so_end_code_mm_struct_14519 end_code mm_struct 0 14519 NULL
158678 +enable_so_volume_p_header100_14528 volume p_header100 0 14528 NULL
158679 +enable_so_memcg_update_all_list_lrus_fndecl_14532 memcg_update_all_list_lrus fndecl 1 14532 NULL
158680 +enable_so_viafb_second_offset_vardecl_viafbdev_c_14533 viafb_second_offset vardecl_viafbdev.c 0 14533 NULL
158681 +enable_so_size_ichxrom_window_14540 size ichxrom_window 0 14540 NULL
158682 +enable_so_len_extent_info_14542 len extent_info 0 14542 NULL
158683 +enable_so_ieee80211_get_hdrlen_from_skb_fndecl_14543 ieee80211_get_hdrlen_from_skb fndecl 0 14543 NULL
158684 +enable_so_ctrl_set_croph_fndecl_14545 ctrl_set_croph fndecl 3 14545 NULL nohasharray
158685 +enable_so_density_scsi_tape_14545 density scsi_tape 0 14545 &enable_so_ctrl_set_croph_fndecl_14545 nohasharray
158686 +enable_so_word17_lpfc_mbx_read_config_14545 word17 lpfc_mbx_read_config 0 14545 &enable_so_density_scsi_tape_14545
158687 +enable_so_snd_ftu_create_effect_switch_fndecl_14546 snd_ftu_create_effect_switch fndecl 3-2 14546 NULL
158688 +enable_so_lsave_cnt_ubifs_info_14547 lsave_cnt ubifs_info 0 14547 NULL
158689 +enable_so_len_btrfsic_block_data_ctx_14548 len btrfsic_block_data_ctx 0 14548 NULL
158690 +enable_so___alloc_memory_core_early_fndecl_14550 __alloc_memory_core_early fndecl 3-2-4-5 14550 NULL nohasharray
158691 +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
158692 +enable_so_rn_snamelen_nfsd4_rename_14552 rn_snamelen nfsd4_rename 0 14552 NULL
158693 +enable_so_pri_wm_latency_write_fndecl_14556 pri_wm_latency_write fndecl 3 14556 NULL
158694 +enable_so_keyctl_update_key_fndecl_14558 keyctl_update_key fndecl 3 14558 NULL
158695 +enable_so_carm_handle_array_info_fndecl_14563 carm_handle_array_info fndecl 4 14563 NULL
158696 +enable_so_set_ep_max_packet_size_fndecl_14569 set_ep_max_packet_size fndecl 3 14569 NULL
158697 +enable_so_data_sector_size_mmc_ext_csd_14571 data_sector_size mmc_ext_csd 0 14571 NULL
158698 +enable_so_buffer_size_ncp_server_14574 buffer_size ncp_server 0 14574 NULL
158699 +enable_so_acpi_io_base_intel_pmc_ipc_dev_14580 acpi_io_base intel_pmc_ipc_dev 0 14580 NULL
158700 +enable_so_btrfs_wait_ordered_range_fndecl_14581 btrfs_wait_ordered_range fndecl 2-3 14581 NULL
158701 +enable_so_cur_pos_tegra_slink_data_14583 cur_pos tegra_slink_data 0 14583 NULL
158702 +enable_so_mic_x100_load_command_line_fndecl_14585 mic_x100_load_command_line fndecl 0 14585 NULL
158703 +enable_so_be_length_pnfs_block_extent_14586 be_length pnfs_block_extent 0 14586 NULL
158704 +enable_so_fs_firstcg_efs_super_14587 fs_firstcg efs_super 0 14587 NULL
158705 +enable_so_channel_spacing_adf4350_platform_data_14594 channel_spacing adf4350_platform_data 0 14594 NULL
158706 +enable_so_link_pipe_fndecl_14595 link_pipe fndecl 3 14595 NULL
158707 +enable_so_static_start_pccard_mem_map_14601 static_start pccard_mem_map 0 14601 NULL
158708 +enable_so_nes_netdev_change_mtu_fndecl_14604 nes_netdev_change_mtu fndecl 2 14604 NULL
158709 +enable_so___get_user_pages_fndecl_14607 __get_user_pages fndecl 0-3 14607 NULL nohasharray
158710 +enable_so_befs_utf2nls_fndecl_14607 befs_utf2nls fndecl 3 14607 &enable_so___get_user_pages_fndecl_14607
158711 +enable_so_skb_split_fndecl_14609 skb_split fndecl 3 14609 NULL nohasharray
158712 +enable_so_mqd_size_aligned_kfd_device_info_14609 mqd_size_aligned kfd_device_info 0 14609 &enable_so_skb_split_fndecl_14609
158713 +enable_so_alb_send_lp_vid_fndecl_14613 alb_send_lp_vid fndecl 4-3 14613 NULL
158714 +enable_so_recv_bulk_pipe_us_data_14615 recv_bulk_pipe us_data 0 14615 NULL nohasharray
158715 +enable_so_max_sge_isert_conn_14615 max_sge isert_conn 0 14615 &enable_so_recv_bulk_pipe_us_data_14615
158716 +enable_so_ddp_ppod_write_idata_fndecl_14617 ddp_ppod_write_idata fndecl 5 14617 NULL
158717 +enable_so_node_scif_dev_14623 node scif_dev 0 14623 NULL
158718 +enable_so_vmw_execbuf_cmdbuf_fndecl_14639 vmw_execbuf_cmdbuf fndecl 4 14639 NULL
158719 +enable_so_length_comedi_lrange_14641 length comedi_lrange 0 14641 NULL
158720 +enable_so_SSIDsize_bss_info_14644 SSIDsize bss_info 0 14644 NULL
158721 +enable_so_dln2_gpio_get_pin_count_fndecl_14646 dln2_gpio_get_pin_count fndecl 0 14646 NULL
158722 +enable_so_endpoint_usbdevfs_urb_14649 endpoint usbdevfs_urb 0 14649 NULL
158723 +enable_so_write_dst_fndecl_14653 write_dst fndecl 3 14653 NULL nohasharray
158724 +enable_so_get_sb_block_fndecl_14653 get_sb_block fndecl 0 14653 &enable_so_write_dst_fndecl_14653
158725 +enable_so_wNdpOutAlignment_usb_cdc_ncm_ntb_parameters_14656 wNdpOutAlignment usb_cdc_ncm_ntb_parameters 0 14656 NULL
158726 +enable_so_ep_usbip_header_basic_14659 ep usbip_header_basic 0 14659 NULL
158727 +enable_so_interval_solo_enc_dev_14661 interval solo_enc_dev 0 14661 NULL
158728 +enable_so___btrfs_qgroup_release_data_fndecl_14664 __btrfs_qgroup_release_data fndecl 2-3 14664 NULL
158729 +enable_so_ext2_try_to_allocate_fndecl_14672 ext2_try_to_allocate fndecl 0-4 14672 NULL
158730 +enable_so_sg_tablesize_usb_bus_14673 sg_tablesize usb_bus 0 14673 NULL
158731 +enable_so_di_anextents_xfs_dinode_14674 di_anextents xfs_dinode 0 14674 NULL
158732 +enable_so_aircable_prepare_write_buffer_fndecl_14678 aircable_prepare_write_buffer fndecl 3 14678 NULL
158733 +enable_so_file_size_squashfs_reg_inode_14679 file_size squashfs_reg_inode 0 14679 NULL
158734 +enable_so_x86_virt_bits_cpuinfo_x86_14680 x86_virt_bits cpuinfo_x86 0 14680 NULL
158735 +enable_so_mtu_vnic_devcmd_notify_14682 mtu vnic_devcmd_notify 0 14682 NULL
158736 +enable_so_rx_queue_entry_next_fndecl_14688 rx_queue_entry_next fndecl 0 14688 NULL nohasharray
158737 +enable_so_stream_sctp_datahdr_14688 stream sctp_datahdr 0 14688 &enable_so_rx_queue_entry_next_fndecl_14688
158738 +enable_so_ibmasm_new_command_fndecl_14689 ibmasm_new_command fndecl 2 14689 NULL
158739 +enable_so_max_srq_sge_ib_device_attr_14690 max_srq_sge ib_device_attr 0 14690 NULL
158740 +enable_so_rx_filter_mc_filter_read_fndecl_14691 rx_filter_mc_filter_read fndecl 3 14691 NULL
158741 +enable_so_smt_fill_path_fndecl_14692 smt_fill_path fndecl 0 14692 NULL
158742 +enable_so_ttm_tt_init_fndecl_14694 ttm_tt_init fndecl 3 14694 NULL
158743 +enable_so_num_sizes_vmw_surface_14695 num_sizes vmw_surface 0 14695 NULL
158744 +enable_so_sq_depth_p9_rdma_opts_14698 sq_depth p9_rdma_opts 0 14698 NULL nohasharray
158745 +enable_so_count_ctxt_eager_bufs_14698 count ctxt_eager_bufs 0 14698 &enable_so_sq_depth_p9_rdma_opts_14698
158746 +enable_so___alloc_bootmem_low_node_fndecl_14701 __alloc_bootmem_low_node fndecl 3-2-4 14701 NULL nohasharray
158747 +enable_so_sel_write_context_fndecl_14701 sel_write_context fndecl 3 14701 &enable_so___alloc_bootmem_low_node_fndecl_14701
158748 +enable_so_set_extent_new_fndecl_14709 set_extent_new fndecl 3-2 14709 NULL
158749 +enable_so_AdapterFibsSize_aac_init_14712 AdapterFibsSize aac_init 0 14712 NULL
158750 +enable_so_jffs2_trusted_setxattr_fndecl_14716 jffs2_trusted_setxattr fndecl 5 14716 NULL
158751 +enable_so_ftop_swregs_state_14719 ftop swregs_state 0 14719 NULL
158752 +enable_so_cxgbi_device_portmap_create_fndecl_14720 cxgbi_device_portmap_create fndecl 3 14720 NULL
158753 +enable_so_mmc_spi_data_do_fndecl_14728 mmc_spi_data_do fndecl 4 14728 NULL
158754 +enable_so_get_enc_dpb_count_s5p_mfc_hw_ops_14729 get_enc_dpb_count s5p_mfc_hw_ops 0 14729 NULL
158755 +enable_so_or51132_writebuf_fndecl_14730 or51132_writebuf fndecl 3 14730 NULL
158756 +enable_so_hdrlen_ppp_file_14734 hdrlen ppp_file 0 14734 NULL nohasharray
158757 +enable_so_ath9k_htc_rx_msg_fndecl_14734 ath9k_htc_rx_msg fndecl 3 14734 &enable_so_hdrlen_ppp_file_14734
158758 +enable_so_ext2_find_near_fndecl_14741 ext2_find_near fndecl 0 14741 NULL nohasharray
158759 +enable_so_channels_usb_mixer_elem_info_14741 channels usb_mixer_elem_info 0 14741 &enable_so_ext2_find_near_fndecl_14741
158760 +enable_so_mcs_unwrap_fir_fndecl_14742 mcs_unwrap_fir fndecl 3 14742 NULL
158761 +enable_so_cifs_read_from_socket_fndecl_14743 cifs_read_from_socket fndecl 0-3 14743 NULL
158762 +enable_so_mlx4_alloc_icm_coherent_fndecl_14745 mlx4_alloc_icm_coherent fndecl 3 14745 NULL
158763 +enable_so_ivtvfb_prep_frame_fndecl_14770 ivtvfb_prep_frame fndecl 5 14770 NULL
158764 +enable_so_fdt_nop_property_fndecl_14776 fdt_nop_property fndecl 2 14776 NULL
158765 +enable_so_size_snd_seq_pool_14782 size snd_seq_pool 0 14782 NULL
158766 +enable_so_dev_cmd_headroom_iwl_trans_14787 dev_cmd_headroom iwl_trans 0 14787 NULL nohasharray
158767 +enable_so_block_start_deflate_state_14787 block_start deflate_state 0 14787 &enable_so_dev_cmd_headroom_iwl_trans_14787
158768 +enable_so_td_fill_fndecl_14788 td_fill fndecl 3 14788 NULL
158769 +enable_so_brcmf_sdio_verifymemory_fndecl_14795 brcmf_sdio_verifymemory fndecl 4-2 14795 NULL nohasharray
158770 +enable_so_realloc_buffer_fndecl_14795 realloc_buffer fndecl 2 14795 &enable_so_brcmf_sdio_verifymemory_fndecl_14795
158771 +enable_so_mthca_map_user_db_fndecl_14796 mthca_map_user_db fndecl 5 14796 NULL
158772 +enable_so_event_rx_pool_read_fndecl_14803 event_rx_pool_read fndecl 3 14803 NULL
158773 +enable_so_sg_read_fndecl_14804 sg_read fndecl 3 14804 NULL
158774 +enable_so_sb_max_fwd_alloc_hpfs_sb_info_14807 sb_max_fwd_alloc hpfs_sb_info 0 14807 NULL
158775 +enable_so_nr_sectors_fat_floppy_defaults_14809 nr_sectors fat_floppy_defaults 0 14809 NULL
158776 +enable_so_wm8998_set_fll_fndecl_14815 wm8998_set_fll fndecl 5 14815 NULL
158777 +enable_so_read_fn_xusb_udc_14819 read_fn xusb_udc 0 14819 NULL
158778 +enable_so_fout_arizona_fll_14821 fout arizona_fll 0 14821 NULL
158779 +enable_so_wDescriptorLength_hid_descriptor_14825 wDescriptorLength hid_descriptor 0 14825 NULL
158780 +enable_so_tg3_change_mtu_fndecl_14826 tg3_change_mtu fndecl 2 14826 NULL
158781 +enable_so_mlxsw_sx_flood_init_fndecl_14827 mlxsw_sx_flood_init fndecl 0 14827 NULL
158782 +enable_so_parport_read_fndecl_14828 parport_read fndecl 0 14828 NULL
158783 +enable_so_residual_length_response_14830 residual_length response 0 14830 NULL
158784 +enable_so_sis5595_base_vardecl_i2c_sis5595_c_14832 sis5595_base vardecl_i2c-sis5595.c 0 14832 NULL
158785 +enable_so_shift_arg_pages_fndecl_14835 shift_arg_pages fndecl 2 14835 NULL nohasharray
158786 +enable_so_pwr_missing_bcns_read_fndecl_14835 pwr_missing_bcns_read fndecl 3 14835 &enable_so_shift_arg_pages_fndecl_14835
158787 +enable_so_map_len_ssfdcr_record_14843 map_len ssfdcr_record 0 14843 NULL
158788 +enable_so_h_s5p_jpeg_q_data_14846 h s5p_jpeg_q_data 0 14846 NULL
158789 +enable_so_vram_contig_size_vml_info_14851 vram_contig_size vml_info 0 14851 NULL
158790 +enable_so_sample_rate_max_lola_14860 sample_rate_max lola 0 14860 NULL
158791 +enable_so_channels_cea_sad_14862 channels cea_sad 0 14862 NULL
158792 +enable_so_iwl_pcie_alloc_fw_monitor_fndecl_14872 iwl_pcie_alloc_fw_monitor fndecl 2 14872 NULL
158793 +enable_so_threads_mask_netns_ipvs_14873 threads_mask netns_ipvs 0 14873 NULL
158794 +enable_so_inocache_hashsize_jffs2_sb_info_14875 inocache_hashsize jffs2_sb_info 0 14875 NULL
158795 +enable_so_submit_queues_vardecl_null_blk_c_14881 submit_queues vardecl_null_blk.c 0 14881 NULL
158796 +enable_so_pg_first_page_collect_14888 pg_first page_collect 0 14888 NULL
158797 +enable_so___vb2_get_done_vb_fndecl_14889 __vb2_get_done_vb fndecl 0 14889 NULL
158798 +enable_so_invalidate_inode_pages2_range_fndecl_14896 invalidate_inode_pages2_range fndecl 0-3 14896 NULL
158799 +enable_so_ebcnt_vardecl_pagetest_c_14897 ebcnt vardecl_pagetest.c 0 14897 NULL
158800 +enable_so_crtc_vsync_end_drm_display_mode_14898 crtc_vsync_end drm_display_mode 0 14898 NULL
158801 +enable_so_extent_clear_unlock_delalloc_fndecl_14899 extent_clear_unlock_delalloc fndecl 2-3 14899 NULL nohasharray
158802 +enable_so_nkeys_tc_pedit_sel_14899 nkeys tc_pedit_sel 0 14899 &enable_so_extent_clear_unlock_delalloc_fndecl_14899
158803 +enable_so_len_move_extent_14902 len move_extent 0 14902 NULL
158804 +enable_so_ntty_write_fndecl_14903 ntty_write fndecl 3 14903 NULL
158805 +enable_so_vringh_init_user_fndecl_14905 vringh_init_user fndecl 3 14905 NULL
158806 +enable_so_max_height_vsp1_rwpf_14907 max_height vsp1_rwpf 0 14907 NULL nohasharray
158807 +enable_so_firmware_store_fndecl_14907 firmware_store fndecl 4 14907 &enable_so_max_height_vsp1_rwpf_14907
158808 +enable_so_entry_size_neigh_table_14911 entry_size neigh_table 0 14911 NULL
158809 +enable_so_in_pipe_usbtest_dev_14914 in_pipe usbtest_dev 0 14914 NULL
158810 +enable_so_add_device_fndecl_14915 add_device fndecl 4 14915 NULL
158811 +enable_so_fdt_path_offset_namelen_fndecl_14918 fdt_path_offset_namelen fndecl 0 14918 NULL
158812 +enable_so_num_mic_vqconfig_14919 num mic_vqconfig 0 14919 NULL
158813 +enable_so_tx_fifo_size_sh_msiof_spi_priv_14926 tx_fifo_size sh_msiof_spi_priv 0 14926 NULL nohasharray
158814 +enable_so_tower_read_fndecl_14926 tower_read fndecl 3 14926 &enable_so_tx_fifo_size_sh_msiof_spi_priv_14926
158815 +enable_so_e1000_frag_len_fndecl_14930 e1000_frag_len fndecl 0 14930 NULL
158816 +enable_so_at25_bin_read_fndecl_14936 at25_bin_read fndecl 5-6 14936 NULL
158817 +enable_so_get_allocated_memblock_reserved_regions_info_fndecl_14938 get_allocated_memblock_reserved_regions_info fndecl 0 14938 NULL nohasharray
158818 +enable_so_pagemap_read_fndecl_14938 pagemap_read fndecl 3 14938 &enable_so_get_allocated_memblock_reserved_regions_info_fndecl_14938
158819 +enable_so_decrypted_datalen_encrypted_key_payload_14939 decrypted_datalen encrypted_key_payload 0 14939 NULL
158820 +enable_so_len_hif_scatter_item_14940 len hif_scatter_item 0 14940 NULL
158821 +enable_so_ib_alloc_device_fndecl_14944 ib_alloc_device fndecl 1 14944 NULL
158822 +enable_so_dump_smb_fndecl_14947 dump_smb fndecl 2 14947 NULL
158823 +enable_so_tailout_ignore_xpnet_message_14949 tailout_ignore xpnet_message 0 14949 NULL
158824 +enable_so_ulong_write_file_fndecl_14950 ulong_write_file fndecl 3 14950 NULL
158825 +enable_so_msi_verify_entries_fndecl_14953 msi_verify_entries fndecl 0 14953 NULL nohasharray
158826 +enable_so_dvb_ca_en50221_io_ioctl_fndecl_14953 dvb_ca_en50221_io_ioctl fndecl 2 14953 &enable_so_msi_verify_entries_fndecl_14953
158827 +enable_so_osst_max_sg_segs_vardecl_osst_c_14954 osst_max_sg_segs vardecl_osst.c 0 14954 NULL
158828 +enable_so_smiapp_write_no_quirk_fndecl_14958 smiapp_write_no_quirk fndecl 2 14958 NULL
158829 +enable_so_dvb_net_eth_type_trans_fndecl_14972 dvb_net_eth_type_trans fndecl 0 14972 NULL
158830 +enable_so_bop_lookup_nilfs_bmap_operations_14977 bop_lookup nilfs_bmap_operations 0 14977 NULL
158831 +enable_so_l2cap_build_conf_req_fndecl_14978 l2cap_build_conf_req fndecl 0 14978 NULL
158832 +enable_so_romfs_iget_fndecl_14980 romfs_iget fndecl 2 14980 NULL
158833 +enable_so_fuse_read_update_size_fndecl_14982 fuse_read_update_size fndecl 2 14982 NULL
158834 +enable_so_icv_len_ieee80211_key_conf_14983 icv_len ieee80211_key_conf 0 14983 NULL nohasharray
158835 +enable_so_canon_head_n_tty_data_14983 canon_head n_tty_data 0 14983 &enable_so_icv_len_ieee80211_key_conf_14983
158836 +enable_so_alloc_ep_req_fndecl_14986 alloc_ep_req fndecl 3-2 14986 NULL
158837 +enable_so_device_config_dma_device_14988 device_config dma_device 0 14988 NULL
158838 +enable_so_uhid_char_write_fndecl_14997 uhid_char_write fndecl 3 14997 NULL
158839 +enable_so_read_vmcore_fndecl_14998 read_vmcore fndecl 3 14998 NULL
158840 +enable_so_tx_len_atmel_uart_port_15000 tx_len atmel_uart_port 0 15000 NULL nohasharray
158841 +enable_so_vfio_pci_set_msi_trigger_fndecl_15000 vfio_pci_set_msi_trigger fndecl 4-3 15000 &enable_so_tx_len_atmel_uart_port_15000
158842 +enable_so_drbd_bm_words_fndecl_15003 drbd_bm_words fndecl 0 15003 NULL nohasharray
158843 +enable_so_length_sge_ieee1212_15003 length sge_ieee1212 0 15003 &enable_so_drbd_bm_words_fndecl_15003
158844 +enable_so_alloc_gtt_mem_fndecl_15005 alloc_gtt_mem fndecl 2 15005 NULL
158845 +enable_so_ib_init_ah_from_mcmember_fndecl_15006 ib_init_ah_from_mcmember fndecl 2 15006 NULL nohasharray
158846 +enable_so_discard_mtd_blktrans_ops_15006 discard mtd_blktrans_ops 0 15006 &enable_so_ib_init_ah_from_mcmember_fndecl_15006
158847 +enable_so___vhost_add_used_n_fndecl_15017 __vhost_add_used_n fndecl 3 15017 NULL
158848 +enable_so_all_tables_size_vardecl_osl_c_15020 all_tables_size vardecl_osl.c 0 15020 NULL nohasharray
158849 +enable_so_buffers_ivtv_stream_15020 buffers ivtv_stream 0 15020 &enable_so_all_tables_size_vardecl_osl_c_15020
158850 +enable_so_macvtap_do_read_fndecl_15021 macvtap_do_read fndecl 0 15021 NULL
158851 +enable_so_SyS_rt_sigpending_fndecl_15033 SyS_rt_sigpending fndecl 2 15033 NULL
158852 +enable_so_saddr_fsl_edma_hw_tcd_15034 saddr fsl_edma_hw_tcd 0 15034 NULL
158853 +enable_so_d_id_xfs_disk_dquot_15039 d_id xfs_disk_dquot 0 15039 NULL nohasharray
158854 +enable_so_num_rar_entries_ixgbe_mac_info_15039 num_rar_entries ixgbe_mac_info 0 15039 &enable_so_d_id_xfs_disk_dquot_15039
158855 +enable_so_rts51x_read_mem_fndecl_15042 rts51x_read_mem fndecl 4 15042 NULL nohasharray
158856 +enable_so_mpeglines_vardecl_cx23885_417_c_15042 mpeglines vardecl_cx23885-417.c 0 15042 &enable_so_rts51x_read_mem_fndecl_15042 nohasharray
158857 +enable_so_partitionStartingLocation_partitionDesc_15042 partitionStartingLocation partitionDesc 0 15042 &enable_so_mpeglines_vardecl_cx23885_417_c_15042
158858 +enable_so_dec_pending_fndecl_15045 dec_pending fndecl 2 15045 NULL nohasharray
158859 +enable_so_fou_recv_pull_fndecl_15045 fou_recv_pull fndecl 2 15045 &enable_so_dec_pending_fndecl_15045 nohasharray
158860 +enable_so_num_user_pages_fndecl_15045 num_user_pages fndecl 0 15045 &enable_so_fou_recv_pull_fndecl_15045
158861 +enable_so_xfs_trans_free_extent_fndecl_15048 xfs_trans_free_extent fndecl 3-4 15048 NULL
158862 +enable_so_max_io_len_dm_target_15053 max_io_len dm_target 0 15053 NULL
158863 +enable_so_handle_event_fsnotify_ops_15054 handle_event fsnotify_ops 0 15054 NULL nohasharray
158864 +enable_so_buf_len_htc_packet_15054 buf_len htc_packet 0 15054 &enable_so_handle_event_fsnotify_ops_15054
158865 +enable_so_sc_netid_len_nfs4_setclientid_15059 sc_netid_len nfs4_setclientid 0 15059 NULL
158866 +enable_so_height_cx2341x_handler_15060 height cx2341x_handler 0 15060 NULL
158867 +enable_so_dump_eeprom_eeprom_ops_15062 dump_eeprom eeprom_ops 0 15062 NULL
158868 +enable_so_oblocks_per_dblock_fndecl_15063 oblocks_per_dblock fndecl 0 15063 NULL
158869 +enable_so_num_widgets_snd_soc_dapm_widget_list_15064 num_widgets snd_soc_dapm_widget_list 0 15064 NULL
158870 +enable_so_vid_hdr_alsize_ubi_device_15065 vid_hdr_alsize ubi_device 0 15065 NULL
158871 +enable_so_ctrlbuf_dma_usbhid_device_15067 ctrlbuf_dma usbhid_device 0 15067 NULL nohasharray
158872 +enable_so_lpt_offs_bits_ubifs_info_15067 lpt_offs_bits ubifs_info 0 15067 &enable_so_ctrlbuf_dma_usbhid_device_15067
158873 +enable_so_write_len_ddb_flashio_15069 write_len ddb_flashio 0 15069 NULL
158874 +enable_so_saturation_sd_gl860_15076 saturation sd_gl860 0 15076 NULL
158875 +enable_so_xfs_rtcheck_range_fndecl_15077 xfs_rtcheck_range fndecl 3 15077 NULL
158876 +enable_so_bm_words_bm_xfer_ctx_15081 bm_words bm_xfer_ctx 0 15081 NULL
158877 +enable_so_start_send_fndecl_15083 start_send fndecl 3 15083 NULL
158878 +enable_so_offs_ubifs_ref_node_15088 offs ubifs_ref_node 0 15088 NULL
158879 +enable_so_cirrusfb_get_memsize_fndecl_15094 cirrusfb_get_memsize fndecl 0 15094 NULL nohasharray
158880 +enable_so_ia32_arch_ptrace_fndecl_15094 ia32_arch_ptrace fndecl 3 15094 &enable_so_cirrusfb_get_memsize_fndecl_15094
158881 +enable_so_drm_mm_insert_node_in_range_generic_fndecl_15103 drm_mm_insert_node_in_range_generic fndecl 3 15103 NULL
158882 +enable_so_usbat_read_blocks_fndecl_15109 usbat_read_blocks fndecl 3-4 15109 NULL
158883 +enable_so_split_nodes_size_interleave_fndecl_15116 split_nodes_size_interleave fndecl 3-4-5 15116 NULL
158884 +enable_so_ubifs_tnc_replace_fndecl_15122 ubifs_tnc_replace fndecl 7-6 15122 NULL
158885 +enable_so_read_sb_page_fndecl_15124 read_sb_page fndecl 5-4-2 15124 NULL
158886 +enable_so_macvlan_change_mtu_fndecl_15125 macvlan_change_mtu fndecl 2 15125 NULL nohasharray
158887 +enable_so_ebcnt_vardecl_stresstest_c_15125 ebcnt vardecl_stresstest.c 0 15125 &enable_so_macvlan_change_mtu_fndecl_15125
158888 +enable_so_first_offset_afs_call_15128 first_offset afs_call 0 15128 NULL
158889 +enable_so_bytes_rds_iovec_15133 bytes rds_iovec 0 15133 NULL
158890 +enable_so_ath6kl_roam_table_read_fndecl_15141 ath6kl_roam_table_read fndecl 3 15141 NULL
158891 +enable_so_copy_oldmem_page_fndecl_15143 copy_oldmem_page fndecl 1-3 15143 NULL
158892 +enable_so_mid_get_vbt_data_r1_fndecl_15145 mid_get_vbt_data_r1 fndecl 2 15145 NULL
158893 +enable_so_elem_size_snd_array_15155 elem_size snd_array 0 15155 NULL nohasharray
158894 +enable_so_chaoskey_read_fndecl_15155 chaoskey_read fndecl 3 15155 &enable_so_elem_size_snd_array_15155
158895 +enable_so_i_disk_sec_hpfs_inode_info_15165 i_disk_sec hpfs_inode_info 0 15165 NULL
158896 +enable_so_ovl_dir_llseek_fndecl_15169 ovl_dir_llseek fndecl 2 15169 NULL
158897 +enable_so_xfs_idata_realloc_fndecl_15172 xfs_idata_realloc fndecl 2 15172 NULL nohasharray
158898 +enable_so_frontswap_curr_pages_fndecl_15172 frontswap_curr_pages fndecl 0 15172 &enable_so_xfs_idata_realloc_fndecl_15172
158899 +enable_so_si_namelen_nfsd4_secinfo_15174 si_namelen nfsd4_secinfo 0 15174 NULL
158900 +enable_so_perform_sglist_fndecl_15184 perform_sglist fndecl 3-6 15184 NULL
158901 +enable_so_nr_pages_videobuf_dmabuf_15190 nr_pages videobuf_dmabuf 0 15190 NULL nohasharray
158902 +enable_so_walk_hugetlb_range_fndecl_15190 walk_hugetlb_range fndecl 0 15190 &enable_so_nr_pages_videobuf_dmabuf_15190
158903 +enable_so_sg_len_mmc_test_area_15192 sg_len mmc_test_area 0 15192 NULL
158904 +enable_so_ucStateEntrySize__ATOM_PPLIB_POWERPLAYTABLE_15196 ucStateEntrySize _ATOM_PPLIB_POWERPLAYTABLE 0 15196 NULL
158905 +enable_so_p9_client_write_fndecl_15200 p9_client_write fndecl 0 15200 NULL
158906 +enable_so_size_nforce2_smbus_15203 size nforce2_smbus 0 15203 NULL
158907 +enable_so_top_qxl_urect_15205 top qxl_urect 0 15205 NULL
158908 +enable_so_simple_setattr_fndecl_15209 simple_setattr fndecl 0 15209 NULL nohasharray
158909 +enable_so_nlm_end_grace_read_fndecl_15209 nlm_end_grace_read fndecl 3 15209 &enable_so_simple_setattr_fndecl_15209
158910 +enable_so_gso_max_size_net_device_15213 gso_max_size net_device 0 15213 NULL
158911 +enable_so_sge_control_sge_params_15216 sge_control sge_params 0 15216 NULL
158912 +enable_so_vals_size_ceph_inode_xattrs_info_15217 vals_size ceph_inode_xattrs_info 0 15217 NULL
158913 +enable_so_len_policydb_15230 len policydb 0 15230 NULL
158914 +enable_so_sisusb_bulkout_msg_fndecl_15233 sisusb_bulkout_msg fndecl 5-3 15233 NULL nohasharray
158915 +enable_so_hfsplus_ext_lastblock_fndecl_15233 hfsplus_ext_lastblock fndecl 0 15233 &enable_so_sisusb_bulkout_msg_fndecl_15233
158916 +enable_so_genwqe_ffdc_buff_size_fndecl_15236 genwqe_ffdc_buff_size fndecl 0 15236 NULL
158917 +enable_so_surface_width_drm_fb_helper_surface_size_15237 surface_width drm_fb_helper_surface_size 0 15237 NULL
158918 +enable_so_len_sock_fprog_15239 len sock_fprog 0 15239 NULL
158919 +enable_so_do_setxattr_fndecl_15243 do_setxattr fndecl 5 15243 NULL
158920 +enable_so_protocol_hdlc_header_15245 protocol hdlc_header 0 15245 NULL
158921 +enable_so_result_wa_seg_15248 result wa_seg 0 15248 NULL nohasharray
158922 +enable_so_ide_cdrom_register_fndecl_15248 ide_cdrom_register fndecl 2 15248 &enable_so_result_wa_seg_15248
158923 +enable_so_sb_rextsize_xfs_sb_15250 sb_rextsize xfs_sb 0 15250 NULL
158924 +enable_so_ecryptfs_read_lower_page_segment_fndecl_15255 ecryptfs_read_lower_page_segment fndecl 4 15255 NULL
158925 +enable_so_rmsg_size_hv_netvsc_packet_15256 rmsg_size hv_netvsc_packet 0 15256 NULL
158926 +enable_so_dm_block_location_fndecl_15260 dm_block_location fndecl 0 15260 NULL nohasharray
158927 +enable_so_current_credit_fndecl_15260 current_credit fndecl 0 15260 &enable_so_dm_block_location_fndecl_15260 nohasharray
158928 +enable_so_msb_mark_page_bad_fndecl_15260 msb_mark_page_bad fndecl 2 15260 &enable_so_current_credit_fndecl_15260
158929 +enable_so_num_tx_queues_net_device_15263 num_tx_queues net_device 0 15263 NULL
158930 +enable_so_writequeue_entry_complete_fndecl_15264 writequeue_entry_complete fndecl 2 15264 NULL
158931 +enable_so_qce_import_common_fndecl_15267 qce_import_common fndecl 2 15267 NULL
158932 +enable_so_la_peer_max_bio_size_meta_data_on_disk_15270 la_peer_max_bio_size meta_data_on_disk 0 15270 NULL
158933 +enable_so_mdio_read_mdio_if_info_15272 mdio_read mdio_if_info 0 15272 NULL
158934 +enable_so_recursive_scan_fndecl_15275 recursive_scan fndecl 5 15275 NULL
158935 +enable_so_nsect_ide_taskfile_15283 nsect ide_taskfile 0 15283 NULL
158936 +enable_so_srp_max_req_size_vardecl_ib_srpt_c_15291 srp_max_req_size vardecl_ib_srpt.c 0 15291 NULL nohasharray
158937 +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
158938 +enable_so_cx24120_writeregs_fndecl_15295 cx24120_writeregs fndecl 4 15295 NULL
158939 +enable_so_len_logfs_object_header_15296 len logfs_object_header 0 15296 NULL
158940 +enable_so_pwr_wake_on_host_read_fndecl_15298 pwr_wake_on_host_read fndecl 3 15298 NULL
158941 +enable_so_residual_virtio_scsi_inhdr_15299 residual virtio_scsi_inhdr 0 15299 NULL
158942 +enable_so_scd_size_idt77252_dev_15300 scd_size idt77252_dev 0 15300 NULL nohasharray
158943 +enable_so_tidmapcnt_hfi1_ctxtdata_15300 tidmapcnt hfi1_ctxtdata 0 15300 &enable_so_scd_size_idt77252_dev_15300
158944 +enable_so___sg_alloc_table_fndecl_15308 __sg_alloc_table fndecl 0-2-3 15308 NULL
158945 +enable_so_snic_hex_dump_fndecl_15315 snic_hex_dump fndecl 3 15315 NULL
158946 +enable_so_residual_count_iscsi_data_rsp_15317 residual_count iscsi_data_rsp 0 15317 NULL
158947 +enable_so_snd_pcm_plug_client_channels_buf_fndecl_15318 snd_pcm_plug_client_channels_buf fndecl 0-3 15318 NULL
158948 +enable_so_hpfs_dir_lseek_fndecl_15324 hpfs_dir_lseek fndecl 2 15324 NULL nohasharray
158949 +enable_so_h_vlan_proto_vlan_ethhdr_15324 h_vlan_proto vlan_ethhdr 0 15324 &enable_so_hpfs_dir_lseek_fndecl_15324
158950 +enable_so_ehci_urb_dequeue_fndecl_15333 ehci_urb_dequeue fndecl 3 15333 NULL
158951 +enable_so_dup_to_netobj_fndecl_15336 dup_to_netobj fndecl 3 15336 NULL
158952 +enable_so_cifs_readdata_alloc_fndecl_15339 cifs_readdata_alloc fndecl 1 15339 NULL
158953 +enable_so_min_io_size_ubifs_info_15340 min_io_size ubifs_info 0 15340 NULL
158954 +enable_so_iser_alloc_fmr_pool_fndecl_15341 iser_alloc_fmr_pool fndecl 3 15341 NULL
158955 +enable_so_sc18is602_txrx_fndecl_15346 sc18is602_txrx fndecl 0 15346 NULL
158956 +enable_so_check_can_nocow_fndecl_15347 check_can_nocow fndecl 2 15347 NULL
158957 +enable_so_efx_rx_mk_skb_fndecl_15349 efx_rx_mk_skb fndecl 5-3 15349 NULL
158958 +enable_so_s_cluster_bits_ext4_sb_info_15353 s_cluster_bits ext4_sb_info 0 15353 NULL
158959 +enable_so_nfs_file_direct_read_fndecl_15359 nfs_file_direct_read fndecl 3 15359 NULL
158960 +enable_so_seq_len_key_params_15366 seq_len key_params 0 15366 NULL
158961 +enable_so_num_total_plane_drm_mode_config_15377 num_total_plane drm_mode_config 0 15377 NULL
158962 +enable_so_size_affs_tail_15386 size affs_tail 0 15386 NULL
158963 +enable_so_size_mtd_info_15393 size mtd_info 0 15393 NULL
158964 +enable_so_rds_ib_ring_init_fndecl_15404 rds_ib_ring_init fndecl 2 15404 NULL
158965 +enable_so_udf_bread_fndecl_15411 udf_bread fndecl 2 15411 NULL
158966 +enable_so_pnp_alloc_fndecl_15414 pnp_alloc fndecl 1 15414 NULL
158967 +enable_so_setup_buffering_fndecl_15419 setup_buffering fndecl 3 15419 NULL
158968 +enable_so_logical_reada_extent_15426 logical reada_extent 0 15426 NULL
158969 +enable_so_pwc_set_video_mode_fndecl_15427 pwc_set_video_mode fndecl 5 15427 NULL
158970 +enable_so_size_cmd_header_15429 size cmd_header 0 15429 NULL
158971 +enable_so_ddr_base_intel_sst_drv_15431 ddr_base intel_sst_drv 0 15431 NULL
158972 +enable_so_ati_remote_sendpacket_fndecl_15435 ati_remote_sendpacket fndecl 2 15435 NULL
158973 +enable_so_max_vpi_lpfc_hba_15442 max_vpi lpfc_hba 0 15442 NULL
158974 +enable_so_eeprom_93xx46_bin_read_fndecl_15447 eeprom_93xx46_bin_read fndecl 6 15447 NULL
158975 +enable_so_callout_len_request_key_auth_15448 callout_len request_key_auth 0 15448 NULL nohasharray
158976 +enable_so_smk_write_net6addr_fndecl_15448 smk_write_net6addr fndecl 3 15448 &enable_so_callout_len_request_key_auth_15448
158977 +enable_so_code_page_dir_hpfs_spare_block_15449 code_page_dir hpfs_spare_block 0 15449 NULL
158978 +enable_so_wdm_create_fndecl_15456 wdm_create fndecl 3 15456 NULL
158979 +enable_so_rtsx_pci_write_ppbuf_fndecl_15464 rtsx_pci_write_ppbuf fndecl 0 15464 NULL
158980 +enable_so_octeon_setup_iq_fndecl_15466 octeon_setup_iq fndecl 3 15466 NULL
158981 +enable_so_regmap_spi_write_fndecl_15476 regmap_spi_write fndecl 3 15476 NULL
158982 +enable_so_mmio_len_fb_fix_screeninfo_15477 mmio_len fb_fix_screeninfo 0 15477 NULL
158983 +enable_so_priv_size_iscsit_transport_15489 priv_size iscsit_transport 0 15489 NULL
158984 +enable_so_nf_nat_sdp_port_fndecl_15490 nf_nat_sdp_port fndecl 2-7 15490 NULL
158985 +enable_so_old_oblock_policy_result_15494 old_oblock policy_result 0 15494 NULL
158986 +enable_so_cached_start_hfs_inode_info_15502 cached_start hfs_inode_info 0 15502 NULL
158987 +enable_so_sys_rt_sigpending_fndecl_15506 sys_rt_sigpending fndecl 2 15506 NULL
158988 +enable_so_size_videobuf_buffer_15508 size videobuf_buffer 0 15508 NULL
158989 +enable_so_gfs2_fallocate_fndecl_15515 gfs2_fallocate fndecl 4-3 15515 NULL
158990 +enable_so_max_pkt_size_cx231xx_video_mode_15531 max_pkt_size cx231xx_video_mode 0 15531 NULL
158991 +enable_so_pci_siig_setup_fndecl_15532 pci_siig_setup fndecl 4 15532 NULL
158992 +enable_so_wl1273_fm_get_tx_ctune_fndecl_15534 wl1273_fm_get_tx_ctune fndecl 0 15534 NULL
158993 +enable_so_space_bits_ubifs_info_15538 space_bits ubifs_info 0 15538 NULL
158994 +enable_so_hi_priority_depth_MPT3SAS_ADAPTER_15543 hi_priority_depth MPT3SAS_ADAPTER 0 15543 NULL
158995 +enable_so_genwqe_user_vmap_fndecl_15544 genwqe_user_vmap fndecl 4 15544 NULL
158996 +enable_so_index_btframe_15545 index btframe 0 15545 NULL
158997 +enable_so_data_length_mts_transfer_context_15546 data_length mts_transfer_context 0 15546 NULL
158998 +enable_so_map_size_drm_amdgpu_gem_va_15550 map_size drm_amdgpu_gem_va 0 15550 NULL
158999 +enable_so_lowpan_xmit_fragment_fndecl_15552 lowpan_xmit_fragment fndecl 4-6 15552 NULL
159000 +enable_so_ep_in_kingsun_cb_15553 ep_in kingsun_cb 0 15553 NULL
159001 +enable_so_diff_usnic_uiom_reg_15554 diff usnic_uiom_reg 0 15554 NULL
159002 +enable_so_video_buffer_size_vivid_dev_15556 video_buffer_size vivid_dev 0 15556 NULL
159003 +enable_so_node_start_pfn_pglist_data_15561 node_start_pfn pglist_data 0 15561 NULL
159004 +enable_so_num_sge_ib_send_wr_15565 num_sge ib_send_wr 0 15565 NULL
159005 +enable_so_swiotlb_late_init_with_tbl_fndecl_15566 swiotlb_late_init_with_tbl fndecl 2 15566 NULL nohasharray
159006 +enable_so_push_frame_fndecl_15566 push_frame fndecl 2 15566 &enable_so_swiotlb_late_init_with_tbl_fndecl_15566
159007 +enable_so_s_map2blk_adfs_sb_info_15569 s_map2blk adfs_sb_info 0 15569 NULL
159008 +enable_so_acpi20_efi_15582 acpi20 efi 0 15582 NULL
159009 +enable_so_NumTransferUnits_erase_unit_header_t_15585 NumTransferUnits erase_unit_header_t 0 15585 NULL
159010 +enable_so___split_and_process_non_flush_fndecl_15587 __split_and_process_non_flush fndecl 0 15587 NULL nohasharray
159011 +enable_so_SYSC_listxattr_fndecl_15587 SYSC_listxattr fndecl 3 15587 &enable_so___split_and_process_non_flush_fndecl_15587
159012 +enable_so_tx_ring_count_ixgbe_adapter_15595 tx_ring_count ixgbe_adapter 0 15595 NULL
159013 +enable_so_memsz_fifo_15603 memsz fifo 0 15603 NULL
159014 +enable_so_len_nfs3_createargs_15604 len nfs3_createargs 0 15604 NULL
159015 +enable_so_gs_buf_alloc_fndecl_15608 gs_buf_alloc fndecl 2 15608 NULL
159016 +enable_so_do_add_page_to_bio_fndecl_15612 do_add_page_to_bio fndecl 10-4-2 15612 NULL
159017 +enable_so_udf_compute_nr_groups_fndecl_15617 udf_compute_nr_groups fndecl 0 15617 NULL
159018 +enable_so_num_edbs_asd_seq_data_15621 num_edbs asd_seq_data 0 15621 NULL
159019 +enable_so_ch_r_head_jsm_channel_15625 ch_r_head jsm_channel 0 15625 NULL
159020 +enable_so_drm_addmap_core_fndecl_15627 drm_addmap_core fndecl 3-2 15627 NULL nohasharray
159021 +enable_so_nents_sg_table_15627 nents sg_table 0 15627 &enable_so_drm_addmap_core_fndecl_15627
159022 +enable_so_i915_error_state_buf_init_fndecl_15630 i915_error_state_buf_init fndecl 3 15630 NULL
159023 +enable_so_mcs_wrap_mir_skb_fndecl_15633 mcs_wrap_mir_skb fndecl 0 15633 NULL
159024 +enable_so_netlbl_domhsh_init_fndecl_15635 netlbl_domhsh_init fndecl 1 15635 NULL
159025 +enable_so_end_bttv_vbi_fmt_15637 end bttv_vbi_fmt 0 15637 NULL nohasharray
159026 +enable_so_SyS_pselect6_fndecl_15637 SyS_pselect6 fndecl 1 15637 &enable_so_end_bttv_vbi_fmt_15637
159027 +enable_so_dma_in_redrat3_dev_15639 dma_in redrat3_dev 0 15639 NULL
159028 +enable_so_akid_raw_issuer_size_x509_parse_context_15651 akid_raw_issuer_size x509_parse_context 0 15651 NULL
159029 +enable_so_read_bytes_from_xdr_buf_fndecl_15654 read_bytes_from_xdr_buf fndecl 4-2 15654 NULL nohasharray
159030 +enable_so_mapped_vram_radeonfb_info_15654 mapped_vram radeonfb_info 0 15654 &enable_so_read_bytes_from_xdr_buf_fndecl_15654 nohasharray
159031 +enable_so_extra_msdu_prefix_len_lib80211_crypto_ops_15654 extra_msdu_prefix_len lib80211_crypto_ops 0 15654 &enable_so_mapped_vram_radeonfb_info_15654
159032 +enable_so_kvm_pv_enable_async_pf_fndecl_15662 kvm_pv_enable_async_pf fndecl 2 15662 NULL
159033 +enable_so_sb_rblocks_xfs_sb_15668 sb_rblocks xfs_sb 0 15668 NULL
159034 +enable_so_SyS_poll_fndecl_15679 SyS_poll fndecl 2 15679 NULL
159035 +enable_so_wsize_p9_conn_15686 wsize p9_conn 0 15686 NULL
159036 +enable_so_total_bnx2x_sriov_15692 total bnx2x_sriov 0 15692 NULL
159037 +enable_so_num_bytes_sigmadsp_control_15699 num_bytes sigmadsp_control 0 15699 NULL
159038 +enable_so_iov_len_kvec_15702 iov_len kvec 0 15702 NULL nohasharray
159039 +enable_so_context_alloc_fndecl_15702 context_alloc fndecl 3 15702 &enable_so_iov_len_kvec_15702
159040 +enable_so_blk_rq_err_bytes_fndecl_15705 blk_rq_err_bytes fndecl 0 15705 NULL
159041 +enable_so_numa_scan_offset_mm_struct_15710 numa_scan_offset mm_struct 0 15710 NULL
159042 +enable_so_btrfs_chunk_sub_stripes_fndecl_15711 btrfs_chunk_sub_stripes fndecl 0 15711 NULL
159043 +enable_so_ib_umem_page_count_fndecl_15714 ib_umem_page_count fndecl 0 15714 NULL
159044 +enable_so_name_len_nilfs_dir_entry_15715 name_len nilfs_dir_entry 0 15715 NULL
159045 +enable_so_user_size_drm_i915_gem_userptr_15716 user_size drm_i915_gem_userptr 0 15716 NULL
159046 +enable_so_di_xblk_qnx4_inode_entry_15719 di_xblk qnx4_inode_entry 0 15719 NULL
159047 +enable_so_new_tape_buffer_fndecl_15721 new_tape_buffer fndecl 3 15721 NULL
159048 +enable_so_datafab_write_data_fndecl_15723 datafab_write_data fndecl 4 15723 NULL
159049 +enable_so_fdt_set_name_fndecl_15724 fdt_set_name fndecl 2 15724 NULL
159050 +enable_so_n_window_iwl_queue_15731 n_window iwl_queue 0 15731 NULL
159051 +enable_so_setup_boot_parameters_fndecl_15734 setup_boot_parameters fndecl 5-6-3-4 15734 NULL
159052 +enable_so_amdtp_am824_set_parameters_fndecl_15737 amdtp_am824_set_parameters fndecl 4-3 15737 NULL
159053 +enable_so_lcd_height_atyfb_par_15743 lcd_height atyfb_par 0 15743 NULL
159054 +enable_so_num_locks_dlm_migratable_lockres_15745 num_locks dlm_migratable_lockres 0 15745 NULL
159055 +enable_so_hotfix_map_hpfs_spare_block_15748 hotfix_map hpfs_spare_block 0 15748 NULL
159056 +enable_so_remote_miu_nfc_llcp_local_15749 remote_miu nfc_llcp_local 0 15749 NULL
159057 +enable_so_st_int_ioctl_fndecl_15750 st_int_ioctl fndecl 3 15750 NULL nohasharray
159058 +enable_so_base_nr_i2c_mux_reg_platform_data_15750 base_nr i2c_mux_reg_platform_data 0 15750 &enable_so_st_int_ioctl_fndecl_15750
159059 +enable_so_ip_tunnel_change_mtu_fndecl_15752 ip_tunnel_change_mtu fndecl 2 15752 NULL
159060 +enable_so_transfer_done_snd_usb_substream_15753 transfer_done snd_usb_substream 0 15753 NULL
159061 +enable_so_xres__sisbios_mode_15754 xres _sisbios_mode 0 15754 NULL
159062 +enable_so_bfad_iocmd_ioc_reset_stats_fndecl_15763 bfad_iocmd_ioc_reset_stats fndecl 0 15763 NULL
159063 +enable_so_niu_change_mtu_fndecl_15765 niu_change_mtu fndecl 2 15765 NULL
159064 +enable_so_header_read_sd_15767 header_read sd 0 15767 NULL
159065 +enable_so_mc13xxx_spi_write_fndecl_15768 mc13xxx_spi_write fndecl 3 15768 NULL
159066 +enable_so_irttp_connect_confirm_fndecl_15769 irttp_connect_confirm fndecl 4-5 15769 NULL
159067 +enable_so_tx_put__synclinkmp_info_15770 tx_put _synclinkmp_info 0 15770 NULL
159068 +enable_so_btrfs_create_qgroup_fndecl_15772 btrfs_create_qgroup fndecl 3 15772 NULL
159069 +enable_so_size_order_mesh_table_15774 size_order mesh_table 0 15774 NULL
159070 +enable_so_kgdb_hex2mem_fndecl_15776 kgdb_hex2mem fndecl 3 15776 NULL
159071 +enable_so_rdma_read_chunk_lcl_fndecl_15778 rdma_read_chunk_lcl fndecl 7-8 15778 NULL nohasharray
159072 +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
159073 +enable_so_xfs_bmap_split_extent_at_fndecl_15780 xfs_bmap_split_extent_at fndecl 3 15780 NULL
159074 +enable_so_PacketLength_wa_xfer_packet_status_len_hwaiso_15781 PacketLength wa_xfer_packet_status_len_hwaiso 0 15781 NULL
159075 +enable_so_vde_ast_vbios_enhtable_15784 vde ast_vbios_enhtable 0 15784 NULL
159076 +enable_so_maxports_dgnc_board_15787 maxports dgnc_board 0 15787 NULL
159077 +enable_so_count_nfs4_readdir_arg_15790 count nfs4_readdir_arg 0 15790 NULL
159078 +enable_so_simple_attr_read_fndecl_15793 simple_attr_read fndecl 3 15793 NULL
159079 +enable_so_region_size_dm_region_hash_15798 region_size dm_region_hash 0 15798 NULL
159080 +enable_so_fi_ndatablk_nilfs_finfo_15799 fi_ndatablk nilfs_finfo 0 15799 NULL
159081 +enable_so_ath_rxbuf_alloc_fndecl_15802 ath_rxbuf_alloc fndecl 2 15802 NULL
159082 +enable_so_btintel_secure_send_fndecl_15805 btintel_secure_send fndecl 3 15805 NULL
159083 +enable_so_datablob_hmac_verify_fndecl_15809 datablob_hmac_verify fndecl 4 15809 NULL
159084 +enable_so_cache_read_fndecl_15813 cache_read fndecl 3 15813 NULL
159085 +enable_so_length_idma64_desc_15822 length idma64_desc 0 15822 NULL
159086 +enable_so_user_regset_copyout_fndecl_15823 user_regset_copyout fndecl 7 15823 NULL
159087 +enable_so_rsssize_pkd_fw_vi_cmd_15824 rsssize_pkd fw_vi_cmd 0 15824 NULL
159088 +enable_so_word13_lpfc_mbx_read_config_15832 word13 lpfc_mbx_read_config 0 15832 NULL
159089 +enable_so_ocfs2_read_blocks_fndecl_15834 ocfs2_read_blocks fndecl 0-2 15834 NULL
159090 +enable_so_skb_make_writable_fndecl_15836 skb_make_writable fndecl 2 15836 NULL
159091 +enable_so_rx_num_pg_ch_pm_15838 rx_num_pg ch_pm 0 15838 NULL
159092 +enable_so_block_llseek_fndecl_15846 block_llseek fndecl 2 15846 NULL nohasharray
159093 +enable_so_irq_set_msi_desc_fndecl_15846 irq_set_msi_desc fndecl 1 15846 &enable_so_block_llseek_fndecl_15846
159094 +enable_so_msg_print_ext_body_fndecl_15847 msg_print_ext_body fndecl 0 15847 NULL
159095 +enable_so_pnp_register_mem_resource_fndecl_15849 pnp_register_mem_resource fndecl 6-3-5 15849 NULL
159096 +enable_so_net2272_read_fndecl_15850 net2272_read fndecl 0 15850 NULL
159097 +enable_so_sb_set_blocksize_fndecl_15860 sb_set_blocksize fndecl 2-0 15860 NULL
159098 +enable_so_kvm_read_guest_virt_helper_fndecl_15863 kvm_read_guest_virt_helper fndecl 3-1 15863 NULL
159099 +enable_so_period_bytes_min_snd_pcm_hardware_15864 period_bytes_min snd_pcm_hardware 0 15864 NULL
159100 +enable_so_mlx4_valid_vf_state_change_fndecl_15876 mlx4_valid_vf_state_change fndecl 5 15876 NULL nohasharray
159101 +enable_so_o2net_send_tcp_msg_fndecl_15876 o2net_send_tcp_msg fndecl 4-3 15876 &enable_so_mlx4_valid_vf_state_change_fndecl_15876
159102 +enable_so_sel_read_mls_fndecl_15882 sel_read_mls fndecl 3 15882 NULL
159103 +enable_so_unix_mkname_fndecl_15883 unix_mkname fndecl 0-2 15883 NULL
159104 +enable_so_ie_len_cfg80211_auth_request_15886 ie_len cfg80211_auth_request 0 15886 NULL nohasharray
159105 +enable_so_dp_init_fndecl_15886 dp_init fndecl 0 15886 &enable_so_ie_len_cfg80211_auth_request_15886
159106 +enable_so_dump_align_fndecl_15890 dump_align fndecl 2 15890 NULL
159107 +enable_so_sn9c2028_read1_fndecl_15891 sn9c2028_read1 fndecl 0 15891 NULL
159108 +enable_so_num_fitmsg_context_skd_device_15897 num_fitmsg_context skd_device 0 15897 NULL
159109 +enable_so_num_pds_mthca_limits_15899 num_pds mthca_limits 0 15899 NULL nohasharray
159110 +enable_so_size_drm_i915_error_state_buf_15899 size drm_i915_error_state_buf 0 15899 &enable_so_num_pds_mthca_limits_15899
159111 +enable_so_cpia_usb_transferCmd_fndecl_15901 cpia_usb_transferCmd fndecl 0 15901 NULL
159112 +enable_so_usb_alloc_dev_fndecl_15902 usb_alloc_dev fndecl 3 15902 NULL
159113 +enable_so_dir_info_len_ceph_file_info_15905 dir_info_len ceph_file_info 0 15905 NULL nohasharray
159114 +enable_so_flags_v4l2_ioctl_info_15905 flags v4l2_ioctl_info 0 15905 &enable_so_dir_info_len_ceph_file_info_15905
159115 +enable_so_status_pch_udc_data_dma_desc_15911 status pch_udc_data_dma_desc 0 15911 NULL
159116 +enable_so_smiapp_write_fndecl_15913 smiapp_write fndecl 2 15913 NULL
159117 +enable_so_vsp1_entity_init_fndecl_15916 vsp1_entity_init fndecl 3 15916 NULL
159118 +enable_so_rh_queue_status_fndecl_15921 rh_queue_status fndecl 0 15921 NULL
159119 +enable_so_group_width_ore_layout_15927 group_width ore_layout 0 15927 NULL
159120 +enable_so_command_setyuvtresh_fndecl_15933 command_setyuvtresh fndecl 0 15933 NULL
159121 +enable_so_v4l2_m2m_dqbuf_fndecl_15936 v4l2_m2m_dqbuf fndecl 0 15936 NULL
159122 +enable_so_npages_gssx_arg_accept_sec_context_15939 npages gssx_arg_accept_sec_context 0 15939 NULL
159123 +enable_so_netlink_sendmsg_fndecl_15943 netlink_sendmsg fndecl 3 15943 NULL
159124 +enable_so_rstatus_usblp_15945 rstatus usblp 0 15945 NULL
159125 +enable_so_hw_scan_ies_bufsize_ieee80211_local_15949 hw_scan_ies_bufsize ieee80211_local 0 15949 NULL
159126 +enable_so_xfs_ialloc_pagi_init_fndecl_15952 xfs_ialloc_pagi_init fndecl 3 15952 NULL
159127 +enable_so_mcp795_rtcc_read_fndecl_15956 mcp795_rtcc_read fndecl 4 15956 NULL
159128 +enable_so_nr_rtc_mem_15958 nr rtc_mem 0 15958 NULL nohasharray
159129 +enable_so_ebt_buf_add_pad_fndecl_15958 ebt_buf_add_pad fndecl 0 15958 &enable_so_nr_rtc_mem_15958
159130 +enable_so_data_dma_usb_acecad_15962 data_dma usb_acecad 0 15962 NULL
159131 +enable_so_splice_pipe_to_pipe_fndecl_15964 splice_pipe_to_pipe fndecl 3 15964 NULL
159132 +enable_so_scif_off_to_dma_addr_fndecl_15965 scif_off_to_dma_addr fndecl 0-2 15965 NULL
159133 +enable_so_brcmf_bus_add_txhdrlen_fndecl_15969 brcmf_bus_add_txhdrlen fndecl 2 15969 NULL
159134 +enable_so_ath6kl_wmi_beginscan_cmd_fndecl_15973 ath6kl_wmi_beginscan_cmd fndecl 8-2 15973 NULL
159135 +enable_so_first_burst_iscsi_session_15974 first_burst iscsi_session 0 15974 NULL
159136 +enable_so_mmc_test_area_io_fndecl_15982 mmc_test_area_io fndecl 2 15982 NULL
159137 +enable_so_nb_blocks_INFTLrecord_15986 nb_blocks INFTLrecord 0 15986 NULL
159138 +enable_so_data_len_usb_req_15991 data_len usb_req 0 15991 NULL
159139 +enable_so_nilfs_cpfile_get_blkoff_fndecl_15997 nilfs_cpfile_get_blkoff fndecl 0-2 15997 NULL
159140 +enable_so_num_mem_chunks_ath10k_wmi_16005 num_mem_chunks ath10k_wmi 0 16005 NULL
159141 +enable_so_last_offset_inode_defrag_16007 last_offset inode_defrag 0 16007 NULL
159142 +enable_so_fiv_s5k5baf_16012 fiv s5k5baf 0 16012 NULL
159143 +enable_so_ivtv_buf_copy_from_user_fndecl_16013 ivtv_buf_copy_from_user fndecl 4 16013 NULL
159144 +enable_so_gk20a_instobj_new_fndecl_16015 gk20a_instobj_new fndecl 2 16015 NULL
159145 +enable_so_num_stripes_map_lookup_16016 num_stripes map_lookup 0 16016 NULL
159146 +enable_so_payload_len_bsg_buffer_16019 payload_len bsg_buffer 0 16019 NULL
159147 +enable_so_bo_size_drm_amdgpu_gem_create_in_16025 bo_size drm_amdgpu_gem_create_in 0 16025 NULL nohasharray
159148 +enable_so_xhci_urb_dequeue_fndecl_16025 xhci_urb_dequeue fndecl 3 16025 &enable_so_bo_size_drm_amdgpu_gem_create_in_16025 nohasharray
159149 +enable_so_jfs_truncate_nolock_fndecl_16025 jfs_truncate_nolock fndecl 2 16025 &enable_so_xhci_urb_dequeue_fndecl_16025
159150 +enable_so_len_brcmf_tlv_16031 len brcmf_tlv 0 16031 NULL
159151 +enable_so_sb_permission_fndecl_16032 sb_permission fndecl 0 16032 NULL
159152 +enable_so_ct_atc_create_fndecl_16033 ct_atc_create fndecl 3 16033 NULL nohasharray
159153 +enable_so_channels_max_hda_pcm_stream_16033 channels_max hda_pcm_stream 0 16033 &enable_so_ct_atc_create_fndecl_16033
159154 +enable_so_vmw_kms_sou_do_dmabuf_dirty_fndecl_16036 vmw_kms_sou_do_dmabuf_dirty fndecl 4 16036 NULL
159155 +enable_so_count_connectors_drm_mode_crtc_16038 count_connectors drm_mode_crtc 0 16038 NULL
159156 +enable_so_nsec_seg_buf_16050 nsec seg_buf 0 16050 NULL nohasharray
159157 +enable_so_snd_pcm_plugin_build_fndecl_16050 snd_pcm_plugin_build fndecl 5 16050 &enable_so_nsec_seg_buf_16050
159158 +enable_so_nouveau_bo_new_fndecl_16051 nouveau_bo_new fndecl 2 16051 NULL
159159 +enable_so_len_ahc_dma_seg_16052 len ahc_dma_seg 0 16052 NULL
159160 +enable_so_n_insns_comedi_insnlist_16056 n_insns comedi_insnlist 0 16056 NULL
159161 +enable_so_ts_packet_size_cx231xx_tsport_16063 ts_packet_size cx231xx_tsport 0 16063 NULL
159162 +enable_so_pgsize_vardecl_pagetest_c_16065 pgsize vardecl_pagetest.c 0 16065 NULL
159163 +enable_so_compat_sys_sendfile64_fndecl_16066 compat_sys_sendfile64 fndecl 4 16066 NULL nohasharray
159164 +enable_so_set_parameters_fndecl_16066 set_parameters fndecl 8-7 16066 &enable_so_compat_sys_sendfile64_fndecl_16066
159165 +enable_so_do_swap_page_fndecl_16068 do_swap_page fndecl 3 16068 NULL
159166 +enable_so_max_rxd_qlcnic_adapter_16074 max_rxd qlcnic_adapter 0 16074 NULL
159167 +enable_so_mgag200_ttm_tt_create_fndecl_16093 mgag200_ttm_tt_create fndecl 2 16093 NULL
159168 +enable_so_pci_add_resource_offset_fndecl_16095 pci_add_resource_offset fndecl 3 16095 NULL
159169 +enable_so_w_mode_size_16096 w mode_size 0 16096 NULL
159170 +enable_so_param_len_mgmt_pending_cmd_16099 param_len mgmt_pending_cmd 0 16099 NULL
159171 +enable_so_grow_dev_page_fndecl_16100 grow_dev_page fndecl 4-5-3 16100 NULL
159172 +enable_so_find_extend_vma_fndecl_16110 find_extend_vma fndecl 2 16110 NULL
159173 +enable_so_brcmf_usb_dl_send_bulk_fndecl_16113 brcmf_usb_dl_send_bulk fndecl 3 16113 NULL nohasharray
159174 +enable_so_xillybus_llseek_fndecl_16113 xillybus_llseek fndecl 2 16113 &enable_so_brcmf_usb_dl_send_bulk_fndecl_16113
159175 +enable_so_tx_bytes_queued_ipw_tty_16114 tx_bytes_queued ipw_tty 0 16114 NULL
159176 +enable_so_logfs_cleanse_block_fndecl_16119 logfs_cleanse_block fndecl 3 16119 NULL
159177 +enable_so_bfad_iocmd_fruvpd_update_fndecl_16121 bfad_iocmd_fruvpd_update fndecl 0 16121 NULL
159178 +enable_so_snd_rawmidi_kernel_write_fndecl_16129 snd_rawmidi_kernel_write fndecl 3 16129 NULL
159179 +enable_so_agi_seqno_xfs_agi_16130 agi_seqno xfs_agi 0 16130 NULL
159180 +enable_so_vf_count_efx_nic_16134 vf_count efx_nic 0 16134 NULL
159181 +enable_so_hci_req_add_ev_fndecl_16136 hci_req_add_ev fndecl 3 16136 NULL
159182 +enable_so_port_length_c67x00_td_16141 port_length c67x00_td 0 16141 NULL nohasharray
159183 +enable_so_fanout_set_data_ebpf_fndecl_16141 fanout_set_data_ebpf fndecl 3 16141 &enable_so_port_length_c67x00_td_16141
159184 +enable_so_samples_per_line_v4l2_vbi_format_16148 samples_per_line v4l2_vbi_format 0 16148 NULL
159185 +enable_so_vlan_tag_eth_fast_path_rx_reg_cqe_16155 vlan_tag eth_fast_path_rx_reg_cqe 0 16155 NULL
159186 +enable_so_max_packet_length_mv_dqh_16157 max_packet_length mv_dqh 0 16157 NULL
159187 +enable_so_beep_amp_via_spec_16168 beep_amp via_spec 0 16168 NULL
159188 +enable_so_read_for_csum_fndecl_16170 read_for_csum fndecl 3-2 16170 NULL
159189 +enable_so_reiserfs_commit_write_fndecl_16171 reiserfs_commit_write fndecl 4 16171 NULL
159190 +enable_so_ath6kl_wmi_set_keepalive_cmd_fndecl_16174 ath6kl_wmi_set_keepalive_cmd fndecl 2 16174 NULL
159191 +enable_so_rxrpc_recvmsg_fndecl_16178 rxrpc_recvmsg fndecl 3 16178 NULL
159192 +enable_so_board_span_myri10ge_priv_16182 board_span myri10ge_priv 0 16182 NULL nohasharray
159193 +enable_so_minor_lirc_driver_16182 minor lirc_driver 0 16182 &enable_so_board_span_myri10ge_priv_16182
159194 +enable_so_pathlen_nfs_symlinkargs_16183 pathlen nfs_symlinkargs 0 16183 NULL
159195 +enable_so_width_drm_mode_fb_cmd2_16185 width drm_mode_fb_cmd2 0 16185 NULL
159196 +enable_so_ib_uverbs_alloc_pd_fndecl_16189 ib_uverbs_alloc_pd fndecl 4 16189 NULL
159197 +enable_so_h_input_res_16191 h input_res 0 16191 NULL
159198 +enable_so_vid_hdr_offs_mtd_dev_param_16199 vid_hdr_offs mtd_dev_param 0 16199 NULL
159199 +enable_so_osdname_len_osd_dev_info_16203 osdname_len osd_dev_info 0 16203 NULL
159200 +enable_so_ipath_init_qp_table_fndecl_16220 ipath_init_qp_table fndecl 2 16220 NULL
159201 +enable_so_blksize_mtd_blktrans_ops_16221 blksize mtd_blktrans_ops 0 16221 NULL nohasharray
159202 +enable_so_rose_create_fndecl_16221 rose_create fndecl 3 16221 &enable_so_blksize_mtd_blktrans_ops_16221 nohasharray
159203 +enable_so_sys_fgetxattr_fndecl_16221 sys_fgetxattr fndecl 4 16221 &enable_so_rose_create_fndecl_16221
159204 +enable_so_mmio_vardecl_via_wdt_c_16227 mmio vardecl_via_wdt.c 0 16227 NULL
159205 +enable_so_m_in_maxlevels_xfs_mount_16231 m_in_maxlevels xfs_mount 0 16231 NULL nohasharray
159206 +enable_so_bfad_iocmd_port_reset_stats_fndecl_16231 bfad_iocmd_port_reset_stats fndecl 0 16231 &enable_so_m_in_maxlevels_xfs_mount_16231
159207 +enable_so_operand_1_len_ccp_ecc_modular_math_16234 operand_1_len ccp_ecc_modular_math 0 16234 NULL
159208 +enable_so_ks8851_rdreg32_fndecl_16240 ks8851_rdreg32 fndecl 0 16240 NULL
159209 +enable_so_len_wmi_p2p_rx_probe_req_event_16241 len wmi_p2p_rx_probe_req_event 0 16241 NULL
159210 +enable_so_used_count_pvr2_buffer_16246 used_count pvr2_buffer 0 16246 NULL
159211 +enable_so_num_tbps___thermal_zone_16249 num_tbps __thermal_zone 0 16249 NULL
159212 +enable_so_nilfs_iget_locked_fndecl_16250 nilfs_iget_locked fndecl 3 16250 NULL
159213 +enable_so_offs_ubifs_scan_node_16253 offs ubifs_scan_node 0 16253 NULL
159214 +enable_so_xfs_getbmapx_fix_eof_hole_fndecl_16255 xfs_getbmapx_fix_eof_hole fndecl 5 16255 NULL
159215 +enable_so_mon_stat_read_fndecl_16261 mon_stat_read fndecl 3 16261 NULL
159216 +enable_so_num_desc__drm_via_sg_info_16262 num_desc _drm_via_sg_info 0 16262 NULL
159217 +enable_so_length_scsi_data_buffer_16267 length scsi_data_buffer 0 16267 NULL
159218 +enable_so_s_fpg_ufs_sb_private_info_16269 s_fpg ufs_sb_private_info 0 16269 NULL
159219 +enable_so_s_inodes_per_group_ext2_sb_info_16273 s_inodes_per_group ext2_sb_info 0 16273 NULL
159220 +enable_so__max_length_ieee80211_radiotap_iterator_16274 _max_length ieee80211_radiotap_iterator 0 16274 NULL
159221 +enable_so_obj_len_fndecl_16275 obj_len fndecl 0 16275 NULL
159222 +enable_so_mmio_size_sis_video_info_16284 mmio_size sis_video_info 0 16284 NULL
159223 +enable_so_find_ibft_region_fndecl_16285 find_ibft_region fndecl 0 16285 NULL
159224 +enable_so_dvbdev_get_free_adapter_num_fndecl_16292 dvbdev_get_free_adapter_num fndecl 0 16292 NULL
159225 +enable_so_bits_inflate_state_16300 bits inflate_state 0 16300 NULL
159226 +enable_so_vfs_writev_fndecl_16301 vfs_writev fndecl 3 16301 NULL
159227 +enable_so_crypto_alloc_instance2_fndecl_16302 crypto_alloc_instance2 fndecl 3 16302 NULL
159228 +enable_so_isdn_tty_countDLE_fndecl_16304 isdn_tty_countDLE fndecl 0 16304 NULL
159229 +enable_so_brcmf_sdiod_txglomsz_vardecl_bcmsdh_c_16306 brcmf_sdiod_txglomsz vardecl_bcmsdh.c 0 16306 NULL
159230 +enable_so_len_ieee80211_vendor_radiotap_16308 len ieee80211_vendor_radiotap 0 16308 NULL
159231 +enable_so_aac_fib_send_fndecl_16315 aac_fib_send fndecl 3 16315 NULL
159232 +enable_so_memblock_mark_mirror_fndecl_16321 memblock_mark_mirror fndecl 2-1 16321 NULL
159233 +enable_so_major_tty_driver_16323 major tty_driver 0 16323 NULL
159234 +enable_so_AscGetMaxDmaCount_fndecl_16326 AscGetMaxDmaCount fndecl 0 16326 NULL
159235 +enable_so_jent_zalloc_fndecl_16331 jent_zalloc fndecl 1 16331 NULL
159236 +enable_so_fdt_bus_default_count_cells_fndecl_16340 fdt_bus_default_count_cells fndecl 2 16340 NULL
159237 +enable_so_l2tp_session_create_fndecl_16341 l2tp_session_create fndecl 1 16341 NULL
159238 +enable_so_sys_dup2_fndecl_16343 sys_dup2 fndecl 2 16343 NULL nohasharray
159239 +enable_so_max_vfs_be_resources_16343 max_vfs be_resources 0 16343 &enable_so_sys_dup2_fndecl_16343
159240 +enable_so_set_record_extent_bits_fndecl_16345 set_record_extent_bits fndecl 0-3-2 16345 NULL
159241 +enable_so_fuse_dir_compat_ioctl_fndecl_16346 fuse_dir_compat_ioctl fndecl 2 16346 NULL
159242 +enable_so_channels_snd_emu10k1_fx8010_pcm_16368 channels snd_emu10k1_fx8010_pcm 0 16368 NULL
159243 +enable_so_udf_get_pblock_virt15_fndecl_16373 udf_get_pblock_virt15 fndecl 4 16373 NULL
159244 +enable_so_help_fndecl_16375 help fndecl 3-5 16375 NULL
159245 +enable_so_len_iwl_mvm_dump_desc_16383 len iwl_mvm_dump_desc 0 16383 NULL
159246 +enable_so_zd_mac_preinit_hw_fndecl_16386 zd_mac_preinit_hw fndecl 0 16386 NULL
159247 +enable_so_sr_set_blocklength_fndecl_16390 sr_set_blocklength fndecl 2 16390 NULL
159248 +enable_so_dsize_ip_set_16391 dsize ip_set 0 16391 NULL
159249 +enable_so_max_nr_frames_gnttab_query_size_16393 max_nr_frames gnttab_query_size 0 16393 NULL
159250 +enable_so_set_pio_mode_fndecl_16395 set_pio_mode fndecl 2 16395 NULL nohasharray
159251 +enable_so_ip_options_get_alloc_fndecl_16395 ip_options_get_alloc fndecl 1 16395 &enable_so_set_pio_mode_fndecl_16395 nohasharray
159252 +enable_so_pci_map_page_fndecl_16395 pci_map_page fndecl 0 16395 &enable_so_ip_options_get_alloc_fndecl_16395
159253 +enable_so_SYSC_setgroups_fndecl_16397 SYSC_setgroups fndecl 1 16397 NULL
159254 +enable_so___logfs_seek_data_fndecl_16398 __logfs_seek_data fndecl 2-0 16398 NULL
159255 +enable_so_usbat_execute_command_fndecl_16400 usbat_execute_command fndecl 3 16400 NULL
159256 +enable_so_compress_sliced_buf_fndecl_16402 compress_sliced_buf fndecl 0-2 16402 NULL
159257 +enable_so_statelen_drbg_core_16405 statelen drbg_core 0 16405 NULL
159258 +enable_so_omap_hsmmc_setup_dma_transfer_fndecl_16407 omap_hsmmc_setup_dma_transfer fndecl 0 16407 NULL
159259 +enable_so_controller_number_mspro_sys_info_16408 controller_number mspro_sys_info 0 16408 NULL
159260 +enable_so_romfs_dev_read_fndecl_16412 romfs_dev_read fndecl 2-4 16412 NULL
159261 +enable_so_bcnt_aoeif_16414 bcnt aoeif 0 16414 NULL
159262 +enable_so_n_sectors_hpfs_super_block_16421 n_sectors hpfs_super_block 0 16421 NULL
159263 +enable_so_bNrInPins_uac_selector_unit_descriptor_16423 bNrInPins uac_selector_unit_descriptor 0 16423 NULL
159264 +enable_so_gem_allocate_guc_obj_fndecl_16428 gem_allocate_guc_obj fndecl 2 16428 NULL
159265 +enable_so_numa_emulation_fndecl_16441 numa_emulation fndecl 2 16441 NULL
159266 +enable_so_ep_in_usbtest_info_16442 ep_in usbtest_info 0 16442 NULL
159267 +enable_so_batadv_bla_answer_request_fndecl_16443 batadv_bla_answer_request fndecl 3 16443 NULL nohasharray
159268 +enable_so_pcmcia_irq_pcmcia_socket_16443 pcmcia_irq pcmcia_socket 0 16443 &enable_so_batadv_bla_answer_request_fndecl_16443
159269 +enable_so_ReadHSCX_fndecl_16444 ReadHSCX fndecl 0 16444 NULL nohasharray
159270 +enable_so_garp_request_join_fndecl_16444 garp_request_join fndecl 4 16444 &enable_so_ReadHSCX_fndecl_16444
159271 +enable_so_mpu3050_xyz_read_reg_fndecl_16445 mpu3050_xyz_read_reg fndecl 3 16445 NULL
159272 +enable_so_endp_in_zd1201_16446 endp_in zd1201 0 16446 NULL
159273 +enable_so_frame_size_au0828_dev_16447 frame_size au0828_dev 0 16447 NULL
159274 +enable_so_wp_page_copy_fndecl_16450 wp_page_copy fndecl 3 16450 NULL
159275 +enable_so_sdhci_alloc_host_fndecl_16454 sdhci_alloc_host fndecl 2 16454 NULL
159276 +enable_so_sec_per_pg_nvm_dev_16472 sec_per_pg nvm_dev 0 16472 NULL
159277 +enable_so_prism2_change_mtu_fndecl_16473 prism2_change_mtu fndecl 2 16473 NULL
159278 +enable_so_m_sectbb_log_xfs_mount_16477 m_sectbb_log xfs_mount 0 16477 NULL nohasharray
159279 +enable_so_nfs_proc_symlink_fndecl_16477 nfs_proc_symlink fndecl 4 16477 &enable_so_m_sectbb_log_xfs_mount_16477
159280 +enable_so_nilfs_iget_fndecl_16478 nilfs_iget fndecl 3 16478 NULL
159281 +enable_so_nvme_nvm_get_bb_tbl_fndecl_16482 nvme_nvm_get_bb_tbl fndecl 3 16482 NULL
159282 +enable_so_msg_count_amd8111e_rx_dr_16493 msg_count amd8111e_rx_dr 0 16493 NULL
159283 +enable_so_fc_plogi_x_build_fndecl_16495 fc_plogi_x_build fndecl 8 16495 NULL
159284 +enable_so_blksz_fw_dl_mwifiex_pcie_device_16498 blksz_fw_dl mwifiex_pcie_device 0 16498 NULL nohasharray
159285 +enable_so_ttm_page_alloc_init_fndecl_16498 ttm_page_alloc_init fndecl 2 16498 &enable_so_blksz_fw_dl_mwifiex_pcie_device_16498
159286 +enable_so_max_srq_wqes_mthca_limits_16499 max_srq_wqes mthca_limits 0 16499 NULL
159287 +enable_so_stride_simplefb_platform_data_16503 stride simplefb_platform_data 0 16503 NULL
159288 +enable_so_crypt_alloc_buffer_fndecl_16511 crypt_alloc_buffer fndecl 2 16511 NULL
159289 +enable_so_cfs_cpt_num_estimate_fndecl_16512 cfs_cpt_num_estimate fndecl 0 16512 NULL
159290 +enable_so_blocks_available_dio_submit_16522 blocks_available dio_submit 0 16522 NULL
159291 +enable_so_xb_suballoc_loc_ocfs2_xattr_block_16523 xb_suballoc_loc ocfs2_xattr_block 0 16523 NULL
159292 +enable_so_io_throttle_count_vnic_snic_config_16529 io_throttle_count vnic_snic_config 0 16529 NULL
159293 +enable_so_comm_size_perf_comm_event_16533 comm_size perf_comm_event 0 16533 NULL
159294 +enable_so_lpt_lebs_ubifs_info_16535 lpt_lebs ubifs_info 0 16535 NULL
159295 +enable_so_smk_read_mapped_fndecl_16537 smk_read_mapped fndecl 3 16537 NULL
159296 +enable_so_tmds_register_read_bytes_fndecl_16541 tmds_register_read_bytes fndecl 3 16541 NULL
159297 +enable_so_MaxSimpleVolumes_aac_get_container_count_resp_16542 MaxSimpleVolumes aac_get_container_count_resp 0 16542 NULL
159298 +enable_so_mlxsw_sp_port_change_mtu_fndecl_16550 mlxsw_sp_port_change_mtu fndecl 2 16550 NULL
159299 +enable_so_max_mthca_srq_16551 max mthca_srq 0 16551 NULL
159300 +enable_so_max_srq_sz_mlx4_dev_cap_16554 max_srq_sz mlx4_dev_cap 0 16554 NULL
159301 +enable_so_groups_alloc_fndecl_16557 groups_alloc fndecl 1 16557 NULL
159302 +enable_so_result_wa_xfer_16568 result wa_xfer 0 16568 NULL
159303 +enable_so_cramfs_uncompress_block_fndecl_16569 cramfs_uncompress_block fndecl 4-2 16569 NULL
159304 +enable_so___mei_cl_send_fndecl_16571 __mei_cl_send fndecl 3 16571 NULL
159305 +enable_so_n_barrier_cbs_vardecl_rcutorture_c_16575 n_barrier_cbs vardecl_rcutorture.c 0 16575 NULL
159306 +enable_so_nfs4_xattr_set_nfs4_label_fndecl_16581 nfs4_xattr_set_nfs4_label fndecl 5 16581 NULL nohasharray
159307 +enable_so_descriptor_elements_timb_dma_platform_data_channel_16581 descriptor_elements timb_dma_platform_data_channel 0 16581 &enable_so_nfs4_xattr_set_nfs4_label_fndecl_16581
159308 +enable_so_n_phy_pm8001_chip_info_16585 n_phy pm8001_chip_info 0 16585 NULL
159309 +enable_so_len_atmel_priv_ioctl_16592 len atmel_priv_ioctl 0 16592 NULL
159310 +enable_so_ino_logfs_block_16599 ino logfs_block 0 16599 NULL
159311 +enable_so_send_to_group_fndecl_16600 send_to_group fndecl 0 16600 NULL
159312 +enable_so_ext4_group_extend_fndecl_16613 ext4_group_extend fndecl 3 16613 NULL
159313 +enable_so_coda_upcall_fndecl_16614 coda_upcall fndecl 2 16614 NULL
159314 +enable_so_agf_freeblks_xfs_agf_16620 agf_freeblks xfs_agf 0 16620 NULL
159315 +enable_so_ceph_fsync_fndecl_16625 ceph_fsync fndecl 2-3 16625 NULL
159316 +enable_so_len_t4_cqe_16627 len t4_cqe 0 16627 NULL
159317 +enable_so_ext_tree_remove_fndecl_16629 ext_tree_remove fndecl 3-4 16629 NULL nohasharray
159318 +enable_so_uc_outSize_upc_req_16629 uc_outSize upc_req 0 16629 &enable_so_ext_tree_remove_fndecl_16629
159319 +enable_so_crtc_hsync_start_drm_display_mode_16643 crtc_hsync_start drm_display_mode 0 16643 NULL
159320 +enable_so_svc_pool_map_init_pernode_fndecl_16648 svc_pool_map_init_pernode fndecl 0 16648 NULL
159321 +enable_so_nfc_hci_allocate_device_fndecl_16649 nfc_hci_allocate_device fndecl 8-6 16649 NULL
159322 +enable_so_wpa_ie_len_mwifiex_private_16651 wpa_ie_len mwifiex_private 0 16651 NULL
159323 +enable_so_notify_uva_vmci_set_notify_info_16655 notify_uva vmci_set_notify_info 0 16655 NULL
159324 +enable_so_rxHeader1_edgeport_serial_16658 rxHeader1 edgeport_serial 0 16658 NULL
159325 +enable_so_core_alua_write_tpg_metadata_fndecl_16659 core_alua_write_tpg_metadata fndecl 3 16659 NULL
159326 +enable_so_li_total_channels_vardecl_16663 li_total_channels vardecl 0 16663 NULL
159327 +enable_so_frag_off_frag_hdr_16668 frag_off frag_hdr 0 16668 NULL
159328 +enable_so_memblock_remove_fndecl_16669 memblock_remove fndecl 2-1 16669 NULL
159329 +enable_so_y_size_mms114_platform_data_16671 y_size mms114_platform_data 0 16671 NULL
159330 +enable_so_drNxtCNID_hfs_mdb_16673 drNxtCNID hfs_mdb 0 16673 NULL
159331 +enable_so_of_dma_match_channel_fndecl_16675 of_dma_match_channel fndecl 3 16675 NULL
159332 +enable_so_ext_mem_k_screen_info_16677 ext_mem_k screen_info 0 16677 NULL nohasharray
159333 +enable_so_dlfb_get_edid_fndecl_16677 dlfb_get_edid fndecl 0 16677 &enable_so_ext_mem_k_screen_info_16677
159334 +enable_so_hue_sd_gl860_16686 hue sd_gl860 0 16686 NULL
159335 +enable_so___alloc_objio_seg_fndecl_16688 __alloc_objio_seg fndecl 1 16688 NULL nohasharray
159336 +enable_so_cons_read_buffer_16688 cons read_buffer 0 16688 &enable_so___alloc_objio_seg_fndecl_16688
159337 +enable_so_jffs2_scan_xref_node_fndecl_16692 jffs2_scan_xref_node fndecl 4 16692 NULL
159338 +enable_so_batadv_check_unicast_ttvn_fndecl_16693 batadv_check_unicast_ttvn fndecl 3 16693 NULL
159339 +enable_so_efx_ef10_pci_sriov_enable_fndecl_16694 efx_ef10_pci_sriov_enable fndecl 2 16694 NULL
159340 +enable_so_llcp_tlv_miux_fndecl_16699 llcp_tlv_miux fndecl 0 16699 NULL
159341 +enable_so_ad714x_spi_read_fndecl_16700 ad714x_spi_read fndecl 4 16700 NULL
159342 +enable_so_tlv_buf_len_mwifiex_scan_cmd_config_16702 tlv_buf_len mwifiex_scan_cmd_config 0 16702 NULL
159343 +enable_so_hdlc_loop_fndecl_16708 hdlc_loop fndecl 0 16708 NULL
159344 +enable_so_vm_mmap_pgoff_fndecl_16712 vm_mmap_pgoff fndecl 3 16712 NULL
159345 +enable_so_ntargets_ips_ha_16718 ntargets ips_ha 0 16718 NULL
159346 +enable_so_pcm_buf_host_rw_ofs_snd_card_asihpi_pcm_16719 pcm_buf_host_rw_ofs snd_card_asihpi_pcm 0 16719 NULL
159347 +enable_so_opcfg_ofsl_cyttsp4_sysinfo_data_16723 opcfg_ofsl cyttsp4_sysinfo_data 0 16723 NULL
159348 +enable_so_multi_io_quirk_mmc_host_ops_16729 multi_io_quirk mmc_host_ops 0 16729 NULL
159349 +enable_so_fat_length_fat_boot_sector_16730 fat_length fat_boot_sector 0 16730 NULL
159350 +enable_so_width_qxl_head_16734 width qxl_head 0 16734 NULL
159351 +enable_so_nchannels_twl6030_gpadc_platform_data_16736 nchannels twl6030_gpadc_platform_data 0 16736 NULL
159352 +enable_so_rx_rate_rx_frames_per_rates_read_fndecl_16737 rx_rate_rx_frames_per_rates_read fndecl 3 16737 NULL nohasharray
159353 +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
159354 +enable_so_kimage_alloc_init_fndecl_16737 kimage_alloc_init fndecl 3 16737 &enable_so_udf_add_extendedattr_fndecl_16737
159355 +enable_so_r_root_dir_omfs_root_block_16742 r_root_dir omfs_root_block 0 16742 NULL
159356 +enable_so_blockshift_sddr55_card_info_16749 blockshift sddr55_card_info 0 16749 NULL
159357 +enable_so_lib80211_wep_encrypt_fndecl_16752 lib80211_wep_encrypt fndecl 2 16752 NULL
159358 +enable_so_skb_pull_rcsum_fndecl_16757 skb_pull_rcsum fndecl 2 16757 NULL
159359 +enable_so_discard_next_dnode_fndecl_16758 discard_next_dnode fndecl 2 16758 NULL
159360 +enable_so___vfs_write_fndecl_16765 __vfs_write fndecl 0-3 16765 NULL
159361 +enable_so___blk_end_request_all_fndecl_16766 __blk_end_request_all fndecl 2 16766 NULL
159362 +enable_so_cluster_vardecl_pd_c_16770 cluster vardecl_pd.c 0 16770 NULL nohasharray
159363 +enable_so_num_q_csio_wrm_16770 num_q csio_wrm 0 16770 &enable_so_cluster_vardecl_pd_c_16770
159364 +enable_so_cfg80211_classify8021d_fndecl_16771 cfg80211_classify8021d fndecl 0 16771 NULL
159365 +enable_so_key_len_iw_encode_ext_16773 key_len iw_encode_ext 0 16773 NULL
159366 +enable_so_len_f2fs_str_16776 len f2fs_str 0 16776 NULL
159367 +enable_so_security_inode_need_killpriv_fndecl_16777 security_inode_need_killpriv fndecl 0 16777 NULL
159368 +enable_so_csio_fcoe_rnodes_vardecl_16778 csio_fcoe_rnodes vardecl 0 16778 NULL
159369 +enable_so_qxl_draw_opaque_fb_fndecl_16781 qxl_draw_opaque_fb fndecl 2 16781 NULL
159370 +enable_so_u132_hcd_giveback_urb_fndecl_16783 u132_hcd_giveback_urb fndecl 4 16783 NULL nohasharray
159371 +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
159372 +enable_so_max_iu_len_srp_target_port_16784 max_iu_len srp_target_port 0 16784 NULL nohasharray
159373 +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
159374 +enable_so_num_pfns_virtio_balloon_16784 num_pfns virtio_balloon 0 16784 &enable_so_iscsit_build_text_rsp_fndecl_16784
159375 +enable_so_get_string_fndecl_16789 get_string fndecl 0 16789 NULL
159376 +enable_so_batch_shrinker_16806 batch shrinker 0 16806 NULL
159377 +enable_so_spu_subctxt_cnt_qib_user_info_16810 spu_subctxt_cnt qib_user_info 0 16810 NULL nohasharray
159378 +enable_so_iscsit_map_iovec_fndecl_16810 iscsit_map_iovec fndecl 4-3-0 16810 &enable_so_spu_subctxt_cnt_qib_user_info_16810
159379 +enable_so_diva_xdi_read_fndecl_16814 diva_xdi_read fndecl 0 16814 NULL
159380 +enable_so_csecs_nvm_id_group_16817 csecs nvm_id_group 0 16817 NULL
159381 +enable_so_offset_btrfs_disk_key_16819 offset btrfs_disk_key 0 16819 NULL
159382 +enable_so_hfs_cat_build_record_fndecl_16823 hfs_cat_build_record fndecl 2 16823 NULL nohasharray
159383 +enable_so_vxlan_gro_remcsum_fndecl_16823 vxlan_gro_remcsum fndecl 5-4-2 16823 &enable_so_hfs_cat_build_record_fndecl_16823
159384 +enable_so_count_range_bits_fndecl_16830 count_range_bits fndecl 0-3 16830 NULL
159385 +enable_so_audit_send_reply_fndecl_16835 audit_send_reply fndecl 7 16835 NULL
159386 +enable_so_nr_p2m_frames_start_info_16837 nr_p2m_frames start_info 0 16837 NULL
159387 +enable_so_alignment_ubi_mkvol_req_16842 alignment ubi_mkvol_req 0 16842 NULL nohasharray
159388 +enable_so_execute_tuning_mmc_host_ops_16842 execute_tuning mmc_host_ops 0 16842 &enable_so_alignment_ubi_mkvol_req_16842 nohasharray
159389 +enable_so_esrt_data_size_vardecl_esrt_c_16842 esrt_data_size vardecl_esrt.c 0 16842 &enable_so_execute_tuning_mmc_host_ops_16842
159390 +enable_so_tx_headroom_nfc_digital_dev_16844 tx_headroom nfc_digital_dev 0 16844 NULL
159391 +enable_so_ccp_do_cmac_update_fndecl_16848 ccp_do_cmac_update fndecl 2 16848 NULL
159392 +enable_so_base_jfs_log_16858 base jfs_log 0 16858 NULL
159393 +enable_so_radeon_bo_create_fndecl_16863 radeon_bo_create fndecl 2 16863 NULL
159394 +enable_so_no_channels_ltr501_chip_info_16866 no_channels ltr501_chip_info 0 16866 NULL nohasharray
159395 +enable_so_cnic_alloc_new_id_fndecl_16866 cnic_alloc_new_id fndecl 0 16866 &enable_so_no_channels_ltr501_chip_info_16866
159396 +enable_so_drm_property_create_blob_fndecl_16869 drm_property_create_blob fndecl 2 16869 NULL
159397 +enable_so_len_snd_fw_async_midi_port_16875 len snd_fw_async_midi_port 0 16875 NULL
159398 +enable_so_size_nvs_page_16880 size nvs_page 0 16880 NULL
159399 +enable_so_cik_get_csb_size_fndecl_16882 cik_get_csb_size fndecl 0 16882 NULL
159400 +enable_so__ore_add_stripe_unit_fndecl_16884 _ore_add_stripe_unit fndecl 3-6 16884 NULL nohasharray
159401 +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
159402 +enable_so_from_offset_xt_string_info_16886 from_offset xt_string_info 0 16886 NULL nohasharray
159403 +enable_so_dma_buf_size_ddb_output_16886 dma_buf_size ddb_output 0 16886 &enable_so_from_offset_xt_string_info_16886
159404 +enable_so_sl_change_mtu_fndecl_16887 sl_change_mtu fndecl 2 16887 NULL
159405 +enable_so_register_sound_special_device_fndecl_16891 register_sound_special_device fndecl 2 16891 NULL
159406 +enable_so_buf_sz_ath10k_pci_pipe_16896 buf_sz ath10k_pci_pipe 0 16896 NULL
159407 +enable_so_ncbflooders_vardecl_rcutorture_c_16899 ncbflooders vardecl_rcutorture.c 0 16899 NULL
159408 +enable_so_smk_write_load_self_fndecl_16901 smk_write_load_self fndecl 3 16901 NULL
159409 +enable_so_cqe_size_mlx4_caps_16902 cqe_size mlx4_caps 0 16902 NULL
159410 +enable_so_integrity_digsig_verify_fndecl_16903 integrity_digsig_verify fndecl 3 16903 NULL
159411 +enable_so_target_unpopulated_balloon_stats_16907 target_unpopulated balloon_stats 0 16907 NULL nohasharray
159412 +enable_so_msi2500_ctrl_msg_fndecl_16907 msi2500_ctrl_msg fndecl 0 16907 &enable_so_target_unpopulated_balloon_stats_16907
159413 +enable_so_n_ai_urbs_usbduxsigma_private_16912 n_ai_urbs usbduxsigma_private 0 16912 NULL
159414 +enable_so_tx_ring_order_vardecl_main_c_16915 tx_ring_order vardecl_main.c 0 16915 NULL
159415 +enable_so_fsnotify_fndecl_16916 fsnotify fndecl 0 16916 NULL nohasharray
159416 +enable_so_idx_mxser_board_16916 idx mxser_board 0 16916 &enable_so_fsnotify_fndecl_16916
159417 +enable_so_geneve_build_header_fndecl_16917 geneve_build_header fndecl 4 16917 NULL
159418 +enable_so_bpf_program_num_elem_xt_bpf_info_16920 bpf_program_num_elem xt_bpf_info 0 16920 NULL
159419 +enable_so_cont_size_rock_state_16925 cont_size rock_state 0 16925 NULL
159420 +enable_so_snd_rawmidi_transmit_fndecl_16928 snd_rawmidi_transmit fndecl 0-3 16928 NULL
159421 +enable_so_rocker_group_l2_fan_out_fndecl_16932 rocker_group_l2_fan_out fndecl 4 16932 NULL
159422 +enable_so_sys_mbind_fndecl_16933 sys_mbind fndecl 2-1-5 16933 NULL
159423 +enable_so_size_intel_ringbuffer_16937 size intel_ringbuffer 0 16937 NULL
159424 +enable_so_len_t3_cqe_16946 len t3_cqe 0 16946 NULL
159425 +enable_so_vidioc_dqbuf_fndecl_16948 vidioc_dqbuf fndecl 0 16948 NULL
159426 +enable_so_ath10k_wmi_alloc_skb_fndecl_16949 ath10k_wmi_alloc_skb fndecl 2 16949 NULL nohasharray
159427 +enable_so_rrpc_map_page_fndecl_16949 rrpc_map_page fndecl 2 16949 &enable_so_ath10k_wmi_alloc_skb_fndecl_16949
159428 +enable_so_len_pcan_usb_pro_rxmsg_16950 len pcan_usb_pro_rxmsg 0 16950 NULL
159429 +enable_so_intel_framebuffer_pitch_for_width_fndecl_16956 intel_framebuffer_pitch_for_width fndecl 0-2-1 16956 NULL
159430 +enable_so_admin_mtu_ipoib_dev_priv_16960 admin_mtu ipoib_dev_priv 0 16960 NULL
159431 +enable_so_vcs_read_fndecl_16962 vcs_read fndecl 3 16962 NULL
159432 +enable_so_call_id_rxrpc_call_16964 call_id rxrpc_call 0 16964 NULL
159433 +enable_so_minor_oss_minor_dev_16965 minor oss_minor_dev 0 16965 NULL
159434 +enable_so_cifs_sync_write_fndecl_16972 cifs_sync_write fndecl 6 16972 NULL
159435 +enable_so_fat_reserved_fat_bios_param_block_16977 fat_reserved fat_bios_param_block 0 16977 NULL
159436 +enable_so_virtio_gpu_alloc_cmd_fndecl_16978 virtio_gpu_alloc_cmd fndecl 3 16978 NULL
159437 +enable_so_size_drm_vmw_shader_create_arg_16979 size drm_vmw_shader_create_arg 0 16979 NULL
159438 +enable_so_inquiry_len_scsi_device_16981 inquiry_len scsi_device 0 16981 NULL nohasharray
159439 +enable_so_num_tx_queues_ixgbe_adapter_16981 num_tx_queues ixgbe_adapter 0 16981 &enable_so_inquiry_len_scsi_device_16981
159440 +enable_so_zlib_uncompress_fndecl_16988 zlib_uncompress fndecl 6-5 16988 NULL
159441 +enable_so_tt3650_ci_msg_locked_fndecl_16990 tt3650_ci_msg_locked fndecl 4 16990 NULL
159442 +enable_so_iser_rcv_completion_fndecl_16995 iser_rcv_completion fndecl 2 16995 NULL nohasharray
159443 +enable_so_src_base_apei_exec_context_16995 src_base apei_exec_context 0 16995 &enable_so_iser_rcv_completion_fndecl_16995
159444 +enable_so_endp_out2_zd1201_16998 endp_out2 zd1201 0 16998 NULL
159445 +enable_so_be_fill_vf_res_template_fndecl_16999 be_fill_vf_res_template fndecl 3 16999 NULL
159446 +enable_so_cifs_min_rcv_vardecl_17001 cifs_min_rcv vardecl 0 17001 NULL
159447 +enable_so_xfs_dir_replace_fndecl_17002 xfs_dir_replace fndecl 7 17002 NULL
159448 +enable_so_offset_ipw_tx_packet_17004 offset ipw_tx_packet 0 17004 NULL
159449 +enable_so_id_rtc_device_17005 id rtc_device 0 17005 NULL
159450 +enable_so_snd_hdac_bus_exec_verb_fndecl_17009 snd_hdac_bus_exec_verb fndecl 0 17009 NULL
159451 +enable_so_consumed_unix_skb_parms_17012 consumed unix_skb_parms 0 17012 NULL nohasharray
159452 +enable_so_len_sh_eth_rxdesc_17012 len sh_eth_rxdesc 0 17012 &enable_so_consumed_unix_skb_parms_17012
159453 +enable_so_ds_segment_shift_logfs_disk_super_17013 ds_segment_shift logfs_disk_super 0 17013 NULL
159454 +enable_so_u132_hcd_abandon_urb_fndecl_17016 u132_hcd_abandon_urb fndecl 4 17016 NULL
159455 +enable_so_num_pads_media_entity_17022 num_pads media_entity 0 17022 NULL
159456 +enable_so_ext4_mb_load_buddy_fndecl_17030 ext4_mb_load_buddy fndecl 2-0 17030 NULL
159457 +enable_so_ast_get_vram_info_fndecl_17034 ast_get_vram_info fndecl 0 17034 NULL nohasharray
159458 +enable_so_rx_buf_len_i40e_ring_17034 rx_buf_len i40e_ring 0 17034 &enable_so_ast_get_vram_info_fndecl_17034
159459 +enable_so_hw_context_size_drm_i915_private_17036 hw_context_size drm_i915_private 0 17036 NULL
159460 +enable_so_inuse_kmem_cache_17038 inuse kmem_cache 0 17038 NULL
159461 +enable_so_reiserfs_sync_file_fndecl_17045 reiserfs_sync_file fndecl 2-3 17045 NULL
159462 +enable_so_alloc_targets_fndecl_17049 alloc_targets fndecl 2 17049 NULL nohasharray
159463 +enable_so_qla4xxx_post_ping_evt_work_fndecl_17049 qla4xxx_post_ping_evt_work fndecl 4 17049 &enable_so_alloc_targets_fndecl_17049
159464 +enable_so_spi_write_then_read_fndecl_17050 spi_write_then_read fndecl 3-5 17050 NULL
159465 +enable_so_ext4_ext_map_blocks_fndecl_17053 ext4_ext_map_blocks fndecl 0 17053 NULL nohasharray
159466 +enable_so_max_sge_rds_ib_device_17053 max_sge rds_ib_device 0 17053 &enable_so_ext4_ext_map_blocks_fndecl_17053
159467 +enable_so_xstate_size_vardecl_17054 xstate_size vardecl 0 17054 NULL
159468 +enable_so_command_setcompressiontarget_fndecl_17055 command_setcompressiontarget fndecl 0 17055 NULL
159469 +enable_so_ufx_submit_urb_fndecl_17065 ufx_submit_urb fndecl 3 17065 NULL
159470 +enable_so_venus_lookup_fndecl_17066 venus_lookup fndecl 4 17066 NULL
159471 +enable_so___scsi_error_from_host_byte_fndecl_17069 __scsi_error_from_host_byte fndecl 0 17069 NULL nohasharray
159472 +enable_so_number_of_packets_usbip_header_cmd_submit_17069 number_of_packets usbip_header_cmd_submit 0 17069 &enable_so___scsi_error_from_host_byte_fndecl_17069
159473 +enable_so_vmbus_sendpacket_pagebuffer_ctl_fndecl_17076 vmbus_sendpacket_pagebuffer_ctl fndecl 5 17076 NULL
159474 +enable_so_offset_xen_netif_tx_request_17081 offset xen_netif_tx_request 0 17081 NULL
159475 +enable_so_rsp_que_len_qla_hw_data_17082 rsp_que_len qla_hw_data 0 17082 NULL nohasharray
159476 +enable_so_ax88179_read_cmd_fndecl_17082 ax88179_read_cmd fndecl 5 17082 &enable_so_rsp_que_len_qla_hw_data_17082 nohasharray
159477 +enable_so_packet_len_sdma_txreq_17082 packet_len sdma_txreq 0 17082 &enable_so_ax88179_read_cmd_fndecl_17082
159478 +enable_so_ccp_prepare_data_fndecl_17091 ccp_prepare_data fndecl 4 17091 NULL
159479 +enable_so_xfs_file_fallocate_fndecl_17093 xfs_file_fallocate fndecl 3-4 17093 NULL
159480 +enable_so_obfuscate_tx_buffer_fndecl_17095 obfuscate_tx_buffer fndecl 0-2 17095 NULL
159481 +enable_so_tx_tx_stop_read_fndecl_17096 tx_tx_stop_read fndecl 3 17096 NULL
159482 +enable_so_size_ipack_region_17100 size ipack_region 0 17100 NULL nohasharray
159483 +enable_so_phys_base_fore200e_17100 phys_base fore200e 0 17100 &enable_so_size_ipack_region_17100
159484 +enable_so_nr_voices_seq_oss_synth_17102 nr_voices seq_oss_synth 0 17102 NULL
159485 +enable_so_cx18_queue_get_mdl_fndecl_17103 cx18_queue_get_mdl fndecl 3 17103 NULL
159486 +enable_so_len_st_fifo_entry_17104 len st_fifo_entry 0 17104 NULL nohasharray
159487 +enable_so_ro_step_fndecl_17104 ro_step fndecl 2 17104 &enable_so_len_st_fifo_entry_17104 nohasharray
159488 +enable_so_dlm_user_request_fndecl_17104 dlm_user_request fndecl 6 17104 &enable_so_ro_step_fndecl_17104
159489 +enable_so_sdio_readsb_fndecl_17108 sdio_readsb fndecl 4 17108 NULL
159490 +enable_so_count_stframe_17112 count stframe 0 17112 NULL
159491 +enable_so_minors_gendisk_17113 minors gendisk 0 17113 NULL
159492 +enable_so_zoneshift_alauda_media_info_17115 zoneshift alauda_media_info 0 17115 NULL
159493 +enable_so_xfs_iomap_prealloc_size_fndecl_17118 xfs_iomap_prealloc_size fndecl 3 17118 NULL
159494 +enable_so_sample_rate_pcxhr_mgr_17120 sample_rate pcxhr_mgr 0 17120 NULL
159495 +enable_so_mlx4_en_activate_tx_ring_fndecl_17126 mlx4_en_activate_tx_ring fndecl 4 17126 NULL
159496 +enable_so_in___kfifo_17131 in __kfifo 0 17131 NULL nohasharray
159497 +enable_so_hci_sock_recvmsg_fndecl_17131 hci_sock_recvmsg fndecl 3 17131 &enable_so_in___kfifo_17131
159498 +enable_so_nilfs_sufile_do_set_error_fndecl_17133 nilfs_sufile_do_set_error fndecl 2 17133 NULL
159499 +enable_so_fsl_edma_desc_residue_fndecl_17134 fsl_edma_desc_residue fndecl 0 17134 NULL
159500 +enable_so_lnet_ipif_enumerate_fndecl_17135 lnet_ipif_enumerate fndecl 0 17135 NULL
159501 +enable_so_dccp_send_sync_fndecl_17137 dccp_send_sync fndecl 2 17137 NULL nohasharray
159502 +enable_so_irq_stmpe_variant_block_17137 irq stmpe_variant_block 0 17137 &enable_so_dccp_send_sync_fndecl_17137
159503 +enable_so_blockSize_ms_lib_ctrl_17144 blockSize ms_lib_ctrl 0 17144 NULL
159504 +enable_so_irq_dma_yealink_dev_17149 irq_dma yealink_dev 0 17149 NULL
159505 +enable_so_mr_page_mask_srp_device_17151 mr_page_mask srp_device 0 17151 NULL nohasharray
159506 +enable_so_size_buf_image_desc_17151 size_buf image_desc 0 17151 &enable_so_mr_page_mask_srp_device_17151
159507 +enable_so_bfad_iocmd_tfru_write_fndecl_17162 bfad_iocmd_tfru_write fndecl 0 17162 NULL
159508 +enable_so_unmap_region_fndecl_17166 unmap_region fndecl 1 17166 NULL nohasharray
159509 +enable_so_len_read_buffer_17166 len read_buffer 0 17166 &enable_so_unmap_region_fndecl_17166
159510 +enable_so_x86_clflush_size_cpuinfo_x86_17167 x86_clflush_size cpuinfo_x86 0 17167 NULL
159511 +enable_so_di_next_unlinked_xfs_dinode_17169 di_next_unlinked xfs_dinode 0 17169 NULL
159512 +enable_so_mcp251x_hw_tx_frame_fndecl_17170 mcp251x_hw_tx_frame fndecl 3 17170 NULL
159513 +enable_so_skb_copy_expand_fndecl_17174 skb_copy_expand fndecl 2 17174 NULL nohasharray
159514 +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
159515 +enable_so_mtu_vnic_enet_config_17176 mtu vnic_enet_config 0 17176 NULL nohasharray
159516 +enable_so_ip_options_get_finish_fndecl_17176 ip_options_get_finish fndecl 4 17176 &enable_so_mtu_vnic_enet_config_17176
159517 +enable_so_start_block_swap_extent_17179 start_block swap_extent 0 17179 NULL nohasharray
159518 +enable_so_bfad_iocmd_qos_get_stats_fndecl_17179 bfad_iocmd_qos_get_stats fndecl 0 17179 &enable_so_start_block_swap_extent_17179
159519 +enable_so_offset_rbuf_info_17181 offset rbuf_info 0 17181 NULL
159520 +enable_so_luma_size_s5p_mfc_ctx_17182 luma_size s5p_mfc_ctx 0 17182 NULL
159521 +enable_so_pci_raw_set_power_state_fndecl_17186 pci_raw_set_power_state fndecl 0 17186 NULL
159522 +enable_so_sys_pread64_fndecl_17210 sys_pread64 fndecl 3 17210 NULL
159523 +enable_so_type_to_neq_fw_pfvf_cmd_17213 type_to_neq fw_pfvf_cmd 0 17213 NULL
159524 +enable_so_logical_blk_num_osst_tape_17216 logical_blk_num osst_tape 0 17216 NULL
159525 +enable_so_roff_scifioctl_fence_signal_17218 roff scifioctl_fence_signal 0 17218 NULL
159526 +enable_so_ud_clear_fndecl_17219 ud_clear fndecl 6-4-5-3 17219 NULL nohasharray
159527 +enable_so_srp_map_finish_fmr_fndecl_17219 srp_map_finish_fmr fndecl 0 17219 &enable_so_ud_clear_fndecl_17219
159528 +enable_so_eth_type_trans_fndecl_17226 eth_type_trans fndecl 0 17226 NULL
159529 +enable_so_vsync_start_drm_display_mode_17229 vsync_start drm_display_mode 0 17229 NULL
159530 +enable_so_ioread32be_fndecl_17230 ioread32be fndecl 0 17230 NULL
159531 +enable_so___btrfs_add_ordered_extent_fndecl_17234 __btrfs_add_ordered_extent fndecl 4-2-5-3 17234 NULL
159532 +enable_so_vxge_device_register_fndecl_17243 vxge_device_register fndecl 4 17243 NULL nohasharray
159533 +enable_so_alloc_isa_irq_from_domain_fndecl_17243 alloc_isa_irq_from_domain fndecl 2 17243 &enable_so_vxge_device_register_fndecl_17243
159534 +enable_so_relocated_ramdisk_vardecl_17246 relocated_ramdisk vardecl 0 17246 NULL
159535 +enable_so_get_pdptr_kvm_mmu_17247 get_pdptr kvm_mmu 0 17247 NULL
159536 +enable_so_count_acpi_object_package_17250 count acpi_object_package 0 17250 NULL
159537 +enable_so_diva_os_copy_from_user_fndecl_17251 diva_os_copy_from_user fndecl 4 17251 NULL
159538 +enable_so_htc_proc_trailer_fndecl_17252 htc_proc_trailer fndecl 3 17252 NULL nohasharray
159539 +enable_so_len_spi_ioc_transfer_17252 len spi_ioc_transfer 0 17252 &enable_so_htc_proc_trailer_fndecl_17252
159540 +enable_so_bm_resync_fo_drbd_device_17253 bm_resync_fo drbd_device 0 17253 NULL nohasharray
159541 +enable_so_LastFreeEUN_INFTLrecord_17253 LastFreeEUN INFTLrecord 0 17253 &enable_so_bm_resync_fo_drbd_device_17253
159542 +enable_so_sctp_v6_err_fndecl_17257 sctp_v6_err fndecl 5-6 17257 NULL nohasharray
159543 +enable_so_num_vfs_be_adapter_17257 num_vfs be_adapter 0 17257 &enable_so_sctp_v6_err_fndecl_17257
159544 +enable_so_tegra_spi_start_transfer_one_fndecl_17260 tegra_spi_start_transfer_one fndecl 0 17260 NULL
159545 +enable_so_page_to_skb_fndecl_17261 page_to_skb fndecl 5-4-6 17261 NULL
159546 +enable_so_line_uart_port_17263 line uart_port 0 17263 NULL
159547 +enable_so_fat_sec_per_clus_fat_bios_param_block_17264 fat_sec_per_clus fat_bios_param_block 0 17264 NULL
159548 +enable_so_subpgsize_vardecl_subpagetest_c_17265 subpgsize vardecl_subpagetest.c 0 17265 NULL
159549 +enable_so_rbd_img_obj_parent_read_full_fndecl_17267 rbd_img_obj_parent_read_full fndecl 0 17267 NULL nohasharray
159550 +enable_so_alloc_candev_fndecl_17267 alloc_candev fndecl 2-1 17267 &enable_so_rbd_img_obj_parent_read_full_fndecl_17267
159551 +enable_so_bnx2_rx_skb_fndecl_17272 bnx2_rx_skb fndecl 5-4 17272 NULL nohasharray
159552 +enable_so_dfs_global_file_read_fndecl_17272 dfs_global_file_read fndecl 3 17272 &enable_so_bnx2_rx_skb_fndecl_17272 nohasharray
159553 +enable_so_offs_nand_bbt_descr_17272 offs nand_bbt_descr 0 17272 &enable_so_dfs_global_file_read_fndecl_17272
159554 +enable_so_w_stk_size_17273 w stk_size 0 17273 NULL nohasharray
159555 +enable_so_size_msdos_dir_entry_17273 size msdos_dir_entry 0 17273 &enable_so_w_stk_size_17273
159556 +enable_so_bnx2_nvram_write_fndecl_17277 bnx2_nvram_write fndecl 2-4 17277 NULL
159557 +enable_so_seq_buf_alloc_fndecl_17287 seq_buf_alloc fndecl 1 17287 NULL
159558 +enable_so_desired_speed_ide_drive_s_17293 desired_speed ide_drive_s 0 17293 NULL
159559 +enable_so_rtl8821ae_c2h_packet_handler_fndecl_17297 rtl8821ae_c2h_packet_handler fndecl 3 17297 NULL
159560 +enable_so_sup_segnum_nilfs_suinfo_update_17298 sup_segnum nilfs_suinfo_update 0 17298 NULL
159561 +enable_so_div_round_integer_fndecl_17300 div_round_integer fndecl 0-2-1 17300 NULL
159562 +enable_so_read_reg_sja1000_priv_17306 read_reg sja1000_priv 0 17306 NULL
159563 +enable_so_bytes_per_scan_line_vbe_mode_ib_17308 bytes_per_scan_line vbe_mode_ib 0 17308 NULL
159564 +enable_so_dlen_isdn_ppp_resetparams_17312 dlen isdn_ppp_resetparams 0 17312 NULL
159565 +enable_so_cfs_trace_dump_debug_buffer_usrstr_fndecl_17318 cfs_trace_dump_debug_buffer_usrstr fndecl 2 17318 NULL
159566 +enable_so_rpcrdma_create_chunks_fndecl_17322 rpcrdma_create_chunks fndecl 0 17322 NULL
159567 +enable_so___add_pages_fndecl_17323 __add_pages fndecl 3 17323 NULL
159568 +enable_so_top_mthca_alloc_17324 top mthca_alloc 0 17324 NULL nohasharray
159569 +enable_so_fw_memory_size_qla_hw_data_17324 fw_memory_size qla_hw_data 0 17324 &enable_so_top_mthca_alloc_17324
159570 +enable_so_blockmask_sddr09_card_info_17325 blockmask sddr09_card_info 0 17325 NULL
159571 +enable_so_mru_ipw_network_17329 mru ipw_network 0 17329 NULL
159572 +enable_so_reserved_eqs_mlx4_caps_17333 reserved_eqs mlx4_caps 0 17333 NULL
159573 +enable_so_freeblk_xfs_da_geometry_17334 freeblk xfs_da_geometry 0 17334 NULL
159574 +enable_so_dev_count_kvm_io_bus_17340 dev_count kvm_io_bus 0 17340 NULL
159575 +enable_so_MaxBuses__MSG_IOC_FACTS_REPLY_17350 MaxBuses _MSG_IOC_FACTS_REPLY 0 17350 NULL
159576 +enable_so_dvb_dmxdev_read_sec_fndecl_17351 dvb_dmxdev_read_sec fndecl 4 17351 NULL
159577 +enable_so_xfs_trans_get_efi_fndecl_17353 xfs_trans_get_efi fndecl 2 17353 NULL nohasharray
159578 +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
159579 +enable_so_tipc_alloc_entry_fndecl_17360 tipc_alloc_entry fndecl 2 17360 NULL
159580 +enable_so_udf_tgetblk_fndecl_17362 udf_tgetblk fndecl 2 17362 NULL nohasharray
159581 +enable_so_cxgb4i_max_connect_vardecl_cxgb4i_c_17362 cxgb4i_max_connect vardecl_cxgb4i.c 0 17362 &enable_so_udf_tgetblk_fndecl_17362
159582 +enable_so_fdt_translate_one_fndecl_17363 fdt_translate_one fndecl 2 17363 NULL
159583 +enable_so_config_desc_fndecl_17365 config_desc fndecl 0 17365 NULL
159584 +enable_so_extra_inflate_state_17367 extra inflate_state 0 17367 NULL
159585 +enable_so_nilfs_sufile_mark_dirty_fndecl_17370 nilfs_sufile_mark_dirty fndecl 2 17370 NULL nohasharray
159586 +enable_so_pn533_set_configuration_fndecl_17370 pn533_set_configuration fndecl 4 17370 &enable_so_nilfs_sufile_mark_dirty_fndecl_17370 nohasharray
159587 +enable_so_num_txd_qlcnic_adapter_17370 num_txd qlcnic_adapter 0 17370 &enable_so_pn533_set_configuration_fndecl_17370
159588 +enable_so_name_len_vardecl_initramfs_c_17373 name_len vardecl_initramfs.c 0 17373 NULL
159589 +enable_so_acl_len_nfs_getaclargs_17378 acl_len nfs_getaclargs 0 17378 NULL
159590 +enable_so_vram_total_vardecl_uvesafb_c_17381 vram_total vardecl_uvesafb.c 0 17381 NULL
159591 +enable_so_scatt_size_eata_info_17383 scatt_size eata_info 0 17383 NULL
159592 +enable_so_hw_hdr_len_cardstate_17385 hw_hdr_len cardstate 0 17385 NULL
159593 +enable_so_ata_read_log_page_fndecl_17386 ata_read_log_page fndecl 5 17386 NULL
159594 +enable_so_f_hidg_write_fndecl_17391 f_hidg_write fndecl 3 17391 NULL
159595 +enable_so_raw_issuer_size_pkcs7_parse_context_17399 raw_issuer_size pkcs7_parse_context 0 17399 NULL
159596 +enable_so_lines_ak881x_17403 lines ak881x 0 17403 NULL
159597 +enable_so_snd_hda_create_spdif_in_ctls_fndecl_17414 snd_hda_create_spdif_in_ctls fndecl 2 17414 NULL
159598 +enable_so_posix_acl_fix_xattr_userns_fndecl_17415 posix_acl_fix_xattr_userns fndecl 4 17415 NULL
159599 +enable_so_dlm_master_lookup_fndecl_17417 dlm_master_lookup fndecl 4 17417 NULL
159600 +enable_so_ufx_setup_modes_fndecl_17419 ufx_setup_modes fndecl 4 17419 NULL
159601 +enable_so_l2up_create_fndecl_17421 l2up_create fndecl 3 17421 NULL
159602 +enable_so_keys_jset_17429 keys jset 0 17429 NULL
159603 +enable_so_btrfs_cmp_data_prepare_fndecl_17436 btrfs_cmp_data_prepare fndecl 5 17436 NULL
159604 +enable_so_gsmld_receive_buf_fndecl_17440 gsmld_receive_buf fndecl 4 17440 NULL
159605 +enable_so_dd_fcvport_size_fc_function_template_17449 dd_fcvport_size fc_function_template 0 17449 NULL
159606 +enable_so_reply_size_ncp_server_17456 reply_size ncp_server 0 17456 NULL
159607 +enable_so_bufsz_kexec_segment_17458 bufsz kexec_segment 0 17458 NULL
159608 +enable_so___alloc_bootmem_node_nopanic_fndecl_17459 __alloc_bootmem_node_nopanic fndecl 3-2-4 17459 NULL
159609 +enable_so_bits_bgpio_chip_17461 bits bgpio_chip 0 17461 NULL
159610 +enable_so_custom_sig_size_s3fwrn5_fw_image_17467 custom_sig_size s3fwrn5_fw_image 0 17467 NULL nohasharray
159611 +enable_so_t4_cfg_pfvf_fndecl_17467 t4_cfg_pfvf fndecl 8-7-13-10-9-5-12-11-6-15-14 17467 &enable_so_custom_sig_size_s3fwrn5_fw_image_17467
159612 +enable_so_cipso_v4_map_lvl_hton_fndecl_17481 cipso_v4_map_lvl_hton fndecl 0 17481 NULL
159613 +enable_so_sddr09_write_inplace_fndecl_17484 sddr09_write_inplace fndecl 4-3-6 17484 NULL nohasharray
159614 +enable_so_replace_fd_fndecl_17484 replace_fd fndecl 1 17484 &enable_so_sddr09_write_inplace_fndecl_17484
159615 +enable_so_e_block_mb_cache_entry_17485 e_block mb_cache_entry 0 17485 NULL
159616 +enable_so_mlx4_ib_reg_user_mr_fndecl_17492 mlx4_ib_reg_user_mr fndecl 2-3 17492 NULL
159617 +enable_so_qp_memcpy_from_queue_fndecl_17500 qp_memcpy_from_queue fndecl 5-4 17500 NULL
159618 +enable_so_user_buffer_offset_binder_proc_17508 user_buffer_offset binder_proc 0 17508 NULL
159619 +enable_so_invalidate_fndecl_17509 invalidate fndecl 4-3 17509 NULL
159620 +enable_so_brcmf_fil_iovar_data_set_fndecl_17512 brcmf_fil_iovar_data_set fndecl 4 17512 NULL
159621 +enable_so_read_dst_fndecl_17513 read_dst fndecl 3 17513 NULL nohasharray
159622 +enable_so_npages_free_dma_pool_17513 npages_free dma_pool 0 17513 &enable_so_read_dst_fndecl_17513
159623 +enable_so_dvb_dmxdev_init_fndecl_17523 dvb_dmxdev_init fndecl 0 17523 NULL
159624 +enable_so_id_rtsx_pcr_17526 id rtsx_pcr 0 17526 NULL
159625 +enable_so_ext4_iget_fndecl_17527 ext4_iget fndecl 2 17527 NULL
159626 +enable_so_mei_read_fndecl_17528 mei_read fndecl 3 17528 NULL
159627 +enable_so_max3421_urb_dequeue_fndecl_17530 max3421_urb_dequeue fndecl 3 17530 NULL
159628 +enable_so_offset_icmp_bxm_17531 offset icmp_bxm 0 17531 NULL
159629 +enable_so_start_nilfs_write_info_17534 start nilfs_write_info 0 17534 NULL
159630 +enable_so_next_romfs_inode_17535 next romfs_inode 0 17535 NULL
159631 +enable_so_encode_nfspath3_fndecl_17536 encode_nfspath3 fndecl 3 17536 NULL nohasharray
159632 +enable_so_rndis_set_oid_fndecl_17536 rndis_set_oid fndecl 4 17536 &enable_so_encode_nfspath3_fndecl_17536
159633 +enable_so_how_many_channels_fndecl_17540 how_many_channels fndecl 0 17540 NULL
159634 +enable_so_num_pln_nvm_id_group_17542 num_pln nvm_id_group 0 17542 NULL nohasharray
159635 +enable_so_wdm_read_fndecl_17542 wdm_read fndecl 3 17542 &enable_so_num_pln_nvm_id_group_17542
159636 +enable_so_fb_alloc_cmap_fndecl_17545 fb_alloc_cmap fndecl 2 17545 NULL
159637 +enable_so_root_cluster_msdos_sb_info_17547 root_cluster msdos_sb_info 0 17547 NULL
159638 +enable_so_mlx4_en_rx_skb_fndecl_17554 mlx4_en_rx_skb fndecl 4 17554 NULL
159639 +enable_so_mchip_comp_read_frame_fndecl_17555 mchip_comp_read_frame fndecl 0-1 17555 NULL
159640 +enable_so_ufs_truncate_fndecl_17556 ufs_truncate fndecl 2 17556 NULL
159641 +enable_so_channels_cardstate_17560 channels cardstate 0 17560 NULL
159642 +enable_so_qcaspi_read_legacy_fndecl_17563 qcaspi_read_legacy fndecl 3 17563 NULL
159643 +enable_so_lcd_vsync_len_atyfb_par_17565 lcd_vsync_len atyfb_par 0 17565 NULL
159644 +enable_so_stack_size_ahd_softc_17574 stack_size ahd_softc 0 17574 NULL
159645 +enable_so_wMaxPacketSize_usb_rpipe_descriptor_17578 wMaxPacketSize usb_rpipe_descriptor 0 17578 NULL
159646 +enable_so_sb_fs_size_hpfs_sb_info_17581 sb_fs_size hpfs_sb_info 0 17581 NULL
159647 +enable_so_SyS_semtimedop_fndecl_17584 SyS_semtimedop fndecl 3 17584 NULL
159648 +enable_so_opcode_mmc_command_17586 opcode mmc_command 0 17586 NULL
159649 +enable_so_bfad_iocmd_itnim_get_iostats_fndecl_17592 bfad_iocmd_itnim_get_iostats fndecl 0 17592 NULL
159650 +enable_so_fdt_delprop_fndecl_17595 fdt_delprop fndecl 2 17595 NULL
159651 +enable_so_reg_bytes_regmap_format_17598 reg_bytes regmap_format 0 17598 NULL
159652 +enable_so_disk_num_bytes_btrfs_file_extent_item_17599 disk_num_bytes btrfs_file_extent_item 0 17599 NULL
159653 +enable_so_qlf_len_xfs_dq_logformat_17603 qlf_len xfs_dq_logformat 0 17603 NULL nohasharray
159654 +enable_so_ent_bread_fatent_operations_17603 ent_bread fatent_operations 0 17603 &enable_so_qlf_len_xfs_dq_logformat_17603
159655 +enable_so_isoc_ep_stk_camera_17604 isoc_ep stk_camera 0 17604 NULL
159656 +enable_so_nr_planes_nvm_dev_17609 nr_planes nvm_dev 0 17609 NULL
159657 +enable_so_tl_retry_count_srp_target_port_17624 tl_retry_count srp_target_port 0 17624 NULL
159658 +enable_so_min_alloc_order_gen_pool_17628 min_alloc_order gen_pool 0 17628 NULL
159659 +enable_so_ctxts_extrabuf_qib_devdata_17634 ctxts_extrabuf qib_devdata 0 17634 NULL
159660 +enable_so_video_linelength_sis_video_info_17642 video_linelength sis_video_info 0 17642 NULL
159661 +enable_so_wl12xx_sdio_raw_read_fndecl_17648 wl12xx_sdio_raw_read fndecl 4 17648 NULL
159662 +enable_so_buf_len_ceph_none_authorizer_17652 buf_len ceph_none_authorizer 0 17652 NULL nohasharray
159663 +enable_so_dvb_dmx_init_fndecl_17652 dvb_dmx_init fndecl 0 17652 &enable_so_buf_len_ceph_none_authorizer_17652
159664 +enable_so_size_mem_array_17655 size mem_array 0 17655 NULL
159665 +enable_so_snd_wscale_tcp_options_received_17658 snd_wscale tcp_options_received 0 17658 NULL
159666 +enable_so_size_scsi_host_sg_pool_17661 size scsi_host_sg_pool 0 17661 NULL nohasharray
159667 +enable_so_batadv_tt_add_temporary_global_entry_fndecl_17661 batadv_tt_add_temporary_global_entry fndecl 4 17661 &enable_so_size_scsi_host_sg_pool_17661
159668 +enable_so_stereo_cmipci_sb_reg_17667 stereo cmipci_sb_reg 0 17667 NULL
159669 +enable_so_maybe_insert_hole_fndecl_17668 maybe_insert_hole fndecl 4-3 17668 NULL
159670 +enable_so_f2fs_update_extent_cache_range_fndecl_17671 f2fs_update_extent_cache_range fndecl 4-2-3 17671 NULL
159671 +enable_so_vdma_mem_alloc_fndecl_17672 vdma_mem_alloc fndecl 1 17672 NULL
159672 +enable_so_wl1251_cmd_template_set_fndecl_17679 wl1251_cmd_template_set fndecl 4 17679 NULL
159673 +enable_so_memory_block_size_probed_vardecl_init_64_c_17683 memory_block_size_probed vardecl_init_64.c 0 17683 NULL nohasharray
159674 +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
159675 +enable_so_iov_misc_count_iscsi_cmd_17684 iov_misc_count iscsi_cmd 0 17684 NULL nohasharray
159676 +enable_so_NFTL_formatblock_fndecl_17684 NFTL_formatblock fndecl 2 17684 &enable_so_iov_misc_count_iscsi_cmd_17684
159677 +enable_so_private_data_size_mpa_message_17685 private_data_size mpa_message 0 17685 NULL
159678 +enable_so_maxfrsize_bfa_bsg_port_cfg_maxfrsize_s_17688 maxfrsize bfa_bsg_port_cfg_maxfrsize_s 0 17688 NULL
159679 +enable_so_ivtv_copy_buf_to_user_fndecl_17692 ivtv_copy_buf_to_user fndecl 4 17692 NULL
159680 +enable_so_opcfg_ofs_cyttsp4_sysinfo_ofs_17693 opcfg_ofs cyttsp4_sysinfo_ofs 0 17693 NULL
159681 +enable_so_bytes_left_ccp_sg_workarea_17701 bytes_left ccp_sg_workarea 0 17701 NULL
159682 +enable_so__snd_pcm_hw_param_max_fndecl_17702 _snd_pcm_hw_param_max fndecl 3 17702 NULL
159683 +enable_so_rx_dma_buf_sz_altera_tse_private_17708 rx_dma_buf_sz altera_tse_private 0 17708 NULL
159684 +enable_so_u132_urb_dequeue_fndecl_17714 u132_urb_dequeue fndecl 3 17714 NULL
159685 +enable_so_csio_wr_alloc_q_fndecl_17717 csio_wr_alloc_q fndecl 3-2-6 17717 NULL nohasharray
159686 +enable_so_SyS_setgroups_fndecl_17717 SyS_setgroups fndecl 1 17717 &enable_so_csio_wr_alloc_q_fndecl_17717
159687 +enable_so_rx_max_ring_bnx2_17721 rx_max_ring bnx2 0 17721 NULL
159688 +enable_so_r592_transfer_fifo_pio_fndecl_17724 r592_transfer_fifo_pio fndecl 0 17724 NULL nohasharray
159689 +enable_so_st21nfca_hci_probe_fndecl_17724 st21nfca_hci_probe fndecl 6-4 17724 &enable_so_r592_transfer_fifo_pio_fndecl_17724
159690 +enable_so_snd_efw_command_get_phys_meters_fndecl_17725 snd_efw_command_get_phys_meters fndecl 3 17725 NULL
159691 +enable_so_qp_host_get_user_memory_fndecl_17726 qp_host_get_user_memory fndecl 1-2 17726 NULL
159692 +enable_so_nilfs_cpfile_delete_checkpoint_fndecl_17728 nilfs_cpfile_delete_checkpoint fndecl 2 17728 NULL
159693 +enable_so_xdr_write_pages_fndecl_17729 xdr_write_pages fndecl 4-3 17729 NULL
159694 +enable_so_minor_video_device_17733 minor video_device 0 17733 NULL
159695 +enable_so_ios_per_ctrl_hba_parameters_17734 ios_per_ctrl hba_parameters 0 17734 NULL
159696 +enable_so_mqueue_read_file_fndecl_17735 mqueue_read_file fndecl 3 17735 NULL
159697 +enable_so_f_hidg_read_fndecl_17741 f_hidg_read fndecl 3 17741 NULL
159698 +enable_so_num_desc_blocks_fndecl_17744 num_desc_blocks fndecl 0-2 17744 NULL
159699 +enable_so_set_le_ih_k_offset_fndecl_17745 set_le_ih_k_offset fndecl 2 17745 NULL
159700 +enable_so_pkg_len_hanwang_features_17749 pkg_len hanwang_features 0 17749 NULL nohasharray
159701 +enable_so_sock_no_sendpage_fndecl_17749 sock_no_sendpage fndecl 0-4 17749 &enable_so_pkg_len_hanwang_features_17749
159702 +enable_so_sector_size_scsi_device_17750 sector_size scsi_device 0 17750 NULL
159703 +enable_so_cmd_per_lun_Scsi_Host_17757 cmd_per_lun Scsi_Host 0 17757 NULL
159704 +enable_so_g_token_size_fndecl_17759 g_token_size fndecl 0-2 17759 NULL nohasharray
159705 +enable_so_actual_length_spi_message_17759 actual_length spi_message 0 17759 &enable_so_g_token_size_fndecl_17759
159706 +enable_so_max_queues_fm10k_mac_info_17760 max_queues fm10k_mac_info 0 17760 NULL
159707 +enable_so_read_hwrng_17766 read hwrng 0 17766 NULL
159708 +enable_so_of_gpio_count_fndecl_17773 of_gpio_count fndecl 0 17773 NULL
159709 +enable_so_fbcon_prepare_logo_fndecl_17781 fbcon_prepare_logo fndecl 4-5 17781 NULL
159710 +enable_so___e820_update_range_fndecl_17791 __e820_update_range fndecl 2-3 17791 NULL
159711 +enable_so_usX2Y_audio_stream_new_fndecl_17792 usX2Y_audio_stream_new fndecl 2-3 17792 NULL nohasharray
159712 +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
159713 +enable_so_nf_nat_ipv6_manip_pkt_fndecl_17794 nf_nat_ipv6_manip_pkt fndecl 2 17794 NULL
159714 +enable_so_number_of_blocks_ms_boot_attr_info_17802 number_of_blocks ms_boot_attr_info 0 17802 NULL
159715 +enable_so_read_cam_control_dvb_ca_en50221_17812 read_cam_control dvb_ca_en50221 0 17812 NULL
159716 +enable_so_sr_read_cd_fndecl_17813 sr_read_cd fndecl 5 17813 NULL
159717 +enable_so_list_size_acpi_pnp_device_id_list_17814 list_size acpi_pnp_device_id_list 0 17814 NULL
159718 +enable_so_b_page_count_xfs_buf_17815 b_page_count xfs_buf 0 17815 NULL nohasharray
159719 +enable_so_acpi_unregister_gsi_ioapic_fndecl_17815 acpi_unregister_gsi_ioapic fndecl 1 17815 &enable_so_b_page_count_xfs_buf_17815
159720 +enable_so_posix_acl_fix_xattr_to_user_fndecl_17816 posix_acl_fix_xattr_to_user fndecl 2 17816 NULL
159721 +enable_so_snd_hda_override_conn_list_fndecl_17817 snd_hda_override_conn_list fndecl 3 17817 NULL nohasharray
159722 +enable_so_xenbus_file_write_fndecl_17817 xenbus_file_write fndecl 3 17817 &enable_so_snd_hda_override_conn_list_fndecl_17817
159723 +enable_so_tx_tx_start_null_frame_read_fndecl_17818 tx_tx_start_null_frame_read fndecl 3 17818 NULL
159724 +enable_so_ib_map_mr_sg_fndecl_17821 ib_map_mr_sg fndecl 0 17821 NULL
159725 +enable_so_i_blkbits_inode_17823 i_blkbits inode 0 17823 NULL
159726 +enable_so_tipc_recvmsg_fndecl_17825 tipc_recvmsg fndecl 3 17825 NULL
159727 +enable_so_SyS_mincore_fndecl_17834 SyS_mincore fndecl 1-2 17834 NULL
159728 +enable_so_qlcnic_sriov_alloc_bc_msg_fndecl_17846 qlcnic_sriov_alloc_bc_msg fndecl 2 17846 NULL
159729 +enable_so_mid_get_vbt_data_r10_fndecl_17847 mid_get_vbt_data_r10 fndecl 2 17847 NULL
159730 +enable_so_xenvif_count_requests_fndecl_17849 xenvif_count_requests fndecl 0 17849 NULL
159731 +enable_so_cifs_lockv_fndecl_17853 cifs_lockv fndecl 6-5 17853 NULL
159732 +enable_so_discard_alignment_queue_limits_17856 discard_alignment queue_limits 0 17856 NULL
159733 +enable_so_preferred_minor_md_rdev_17857 preferred_minor md_rdev 0 17857 NULL
159734 +enable_so_current_table_count_acpi_table_list_17862 current_table_count acpi_table_list 0 17862 NULL
159735 +enable_so_bip_vcnt_bio_integrity_payload_17865 bip_vcnt bio_integrity_payload 0 17865 NULL
159736 +enable_so_host_int_get_assoc_res_info_fndecl_17869 host_int_get_assoc_res_info fndecl 3 17869 NULL
159737 +enable_so_len_hfi1_cmd_17873 len hfi1_cmd 0 17873 NULL
159738 +enable_so_fuse_get_req_for_background_fndecl_17874 fuse_get_req_for_background fndecl 2 17874 NULL nohasharray
159739 +enable_so_used_ebs_ubi_fm_volhdr_17874 used_ebs ubi_fm_volhdr 0 17874 &enable_so_fuse_get_req_for_background_fndecl_17874 nohasharray
159740 +enable_so_secondary_tail_adu_device_17874 secondary_tail adu_device 0 17874 &enable_so_used_ebs_ubi_fm_volhdr_17874
159741 +enable_so_ucs2_strnlen_fndecl_17877 ucs2_strnlen fndecl 0 17877 NULL
159742 +enable_so_max_pkt_size_au0828_usb_isoc_ctl_17891 max_pkt_size au0828_usb_isoc_ctl 0 17891 NULL
159743 +enable_so_del_ba_param_set_host_cmd_ds_11n_delba_17899 del_ba_param_set host_cmd_ds_11n_delba 0 17899 NULL
159744 +enable_so_s_firstinodezone_sysv_sb_info_17901 s_firstinodezone sysv_sb_info 0 17901 NULL
159745 +enable_so_used_aead_ctx_17910 used aead_ctx 0 17910 NULL
159746 +enable_so_leb_start_ubifs_info_17911 leb_start ubifs_info 0 17911 NULL nohasharray
159747 +enable_so_arch_gnttab_valloc_fndecl_17911 arch_gnttab_valloc fndecl 2 17911 &enable_so_leb_start_ubifs_info_17911
159748 +enable_so_fd_size_fip_size_desc_17912 fd_size fip_size_desc 0 17912 NULL nohasharray
159749 +enable_so_msb_write_block_fndecl_17912 msb_write_block fndecl 0-5-2-3 17912 &enable_so_fd_size_fip_size_desc_17912
159750 +enable_so_osd_req_read_sg_kern_fndecl_17913 osd_req_read_sg_kern fndecl 5 17913 NULL nohasharray
159751 +enable_so_sync_fence_alloc_fndecl_17913 sync_fence_alloc fndecl 1 17913 &enable_so_osd_req_read_sg_kern_fndecl_17913
159752 +enable_so_rx_agg_cmp_len_flags_type_rx_agg_cmp_17914 rx_agg_cmp_len_flags_type rx_agg_cmp 0 17914 NULL nohasharray
159753 +enable_so_sg_pcopy_to_buffer_fndecl_17914 sg_pcopy_to_buffer fndecl 5-4 17914 &enable_so_rx_agg_cmp_len_flags_type_rx_agg_cmp_17914
159754 +enable_so_translate_compat_table_fndecl_17917 translate_compat_table fndecl 7 17917 NULL
159755 +enable_so_ipath_verbs_send_dma_fndecl_17922 ipath_verbs_send_dma fndecl 6 17922 NULL
159756 +enable_so_br_blockcount_xfs_bmbt_irec_17931 br_blockcount xfs_bmbt_irec 0 17931 NULL
159757 +enable_so___kfifo_dma_in_finish_r_fndecl_17938 __kfifo_dma_in_finish_r fndecl 3-2 17938 NULL
159758 +enable_so_mmio_base_sis_video_info_17941 mmio_base sis_video_info 0 17941 NULL
159759 +enable_so___vxge_hw_mempool_create_fndecl_17944 __vxge_hw_mempool_create fndecl 3-2-6-4 17944 NULL
159760 +enable_so_rtl2830_regmap_read_fndecl_17947 rtl2830_regmap_read fndecl 3-5 17947 NULL
159761 +enable_so_vb2_internal_dqbuf_fndecl_17949 vb2_internal_dqbuf fndecl 0 17949 NULL nohasharray
159762 +enable_so_cache_do_downcall_fndecl_17949 cache_do_downcall fndecl 3 17949 &enable_so_vb2_internal_dqbuf_fndecl_17949
159763 +enable_so_ath6kl_wmi_data_sync_send_fndecl_17951 ath6kl_wmi_data_sync_send fndecl 4 17951 NULL
159764 +enable_so_videobuf_dma_init_kernel_fndecl_17952 videobuf_dma_init_kernel fndecl 3 17952 NULL
159765 +enable_so_dm_io_fndecl_17953 dm_io fndecl 0 17953 NULL nohasharray
159766 +enable_so_ieee80211_tx_radiotap_len_fndecl_17953 ieee80211_tx_radiotap_len fndecl 0 17953 &enable_so_dm_io_fndecl_17953
159767 +enable_so_pch_uart_hal_read_fndecl_17954 pch_uart_hal_read fndecl 0 17954 NULL
159768 +enable_so_n_special_skd_device_17960 n_special skd_device 0 17960 NULL
159769 +enable_so_pkt_align_netvsc_device_17961 pkt_align netvsc_device 0 17961 NULL
159770 +enable_so_scan_async_group_fndecl_17964 scan_async_group fndecl 3 17964 NULL
159771 +enable_so_do_tee_fndecl_17969 do_tee fndecl 3 17969 NULL
159772 +enable_so_qsfp_cks_fndecl_17970 qsfp_cks fndecl 2-0 17970 NULL
159773 +enable_so_ab3100_get_register_page_interruptible_fndecl_17972 ab3100_get_register_page_interruptible fndecl 4 17972 NULL
159774 +enable_so_qpn_mlx5_core_qp_17975 qpn mlx5_core_qp 0 17975 NULL
159775 +enable_so_length_ore_io_state_17977 length ore_io_state 0 17977 NULL
159776 +enable_so_nilfs_set_last_segment_fndecl_17983 nilfs_set_last_segment fndecl 2-4 17983 NULL
159777 +enable_so_data3_sisusb_command_17984 data3 sisusb_command 0 17984 NULL nohasharray
159778 +enable_so_pci_addr_of_pci_range_17984 pci_addr of_pci_range 0 17984 &enable_so_data3_sisusb_command_17984
159779 +enable_so_vector_msix_entry_17987 vector msix_entry 0 17987 NULL nohasharray
159780 +enable_so_count_mlxsw_pci_queue_17987 count mlxsw_pci_queue 0 17987 &enable_so_vector_msix_entry_17987
159781 +enable_so_channels_tiadc_device_17992 channels tiadc_device 0 17992 NULL
159782 +enable_so_fill_inquiry_response_fndecl_17994 fill_inquiry_response fndecl 3 17994 NULL
159783 +enable_so_cipso_v4_gentag_enum_fndecl_17997 cipso_v4_gentag_enum fndecl 0 17997 NULL
159784 +enable_so_get_context_size_fndecl_17999 get_context_size fndecl 0 17999 NULL
159785 +enable_so_order_per_bit_cma_18000 order_per_bit cma 0 18000 NULL
159786 +enable_so_target_xcopy_read_source_fndecl_18003 target_xcopy_read_source fndecl 5 18003 NULL
159787 +enable_so_data_xfer_length_aac_srb_reply_18012 data_xfer_length aac_srb_reply 0 18012 NULL nohasharray
159788 +enable_so_size_aper_size_info_8_18012 size aper_size_info_8 0 18012 &enable_so_data_xfer_length_aac_srb_reply_18012
159789 +enable_so_request_key_async_fndecl_18013 request_key_async fndecl 4 18013 NULL
159790 +enable_so_rx_frag_size_vardecl_be_main_c_18017 rx_frag_size vardecl_be_main.c 0 18017 NULL
159791 +enable_so_raid56_parity_recover_fndecl_18019 raid56_parity_recover fndecl 0-4 18019 NULL
159792 +enable_so_wimax_msg_fndecl_18021 wimax_msg fndecl 4 18021 NULL
159793 +enable_so_cmdlog_vardecl_ipw2200_c_18024 cmdlog vardecl_ipw2200.c 0 18024 NULL
159794 +enable_so_sl811h_urb_dequeue_fndecl_18025 sl811h_urb_dequeue fndecl 3 18025 NULL nohasharray
159795 +enable_so_condc_tomoyo_condition_18025 condc tomoyo_condition 0 18025 &enable_so_sl811h_urb_dequeue_fndecl_18025
159796 +enable_so_rawv6_recvmsg_fndecl_18026 rawv6_recvmsg fndecl 3 18026 NULL nohasharray
159797 +enable_so_ceph_kvmalloc_fndecl_18026 ceph_kvmalloc fndecl 1 18026 &enable_so_rawv6_recvmsg_fndecl_18026
159798 +enable_so_mq_msgsize_max_ipc_namespace_18027 mq_msgsize_max ipc_namespace 0 18027 NULL nohasharray
159799 +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
159800 +enable_so_splice_read_file_operations_18028 splice_read file_operations 0 18028 NULL
159801 +enable_so_start_data_mm_struct_18029 start_data mm_struct 0 18029 NULL
159802 +enable_so_fip_dl_len_fip_header_18032 fip_dl_len fip_header 0 18032 NULL
159803 +enable_so_fi_ino_nilfs_finfo_18034 fi_ino nilfs_finfo 0 18034 NULL
159804 +enable_so_copy_items_fndecl_18039 copy_items fndecl 7 18039 NULL
159805 +enable_so_virtio_gpu_cmd_transfer_to_host_2d_fndecl_18040 virtio_gpu_cmd_transfer_to_host_2d fndecl 5-4 18040 NULL
159806 +enable_so_read_device_fndecl_18043 read_device fndecl 3 18043 NULL
159807 +enable_so_ld_usb_write_fndecl_18045 ld_usb_write fndecl 3 18045 NULL
159808 +enable_so_len_ib_ucm_private_data_18046 len ib_ucm_private_data 0 18046 NULL
159809 +enable_so_xfer_len_iscsi_seq_18047 xfer_len iscsi_seq 0 18047 NULL
159810 +enable_so_sctp_make_op_error_fndecl_18050 sctp_make_op_error fndecl 5-6 18050 NULL
159811 +enable_so_ts_packet_size_cx23885_tsport_18052 ts_packet_size cx23885_tsport 0 18052 NULL
159812 +enable_so_sll_halen_sockaddr_ll_18063 sll_halen sockaddr_ll 0 18063 NULL
159813 +enable_so_ipath_get_base_info_fndecl_18064 ipath_get_base_info fndecl 3 18064 NULL
159814 +enable_so_beacon_interval_read_fndecl_18080 beacon_interval_read fndecl 3 18080 NULL
159815 +enable_so_req_ie_len_brcmf_cfg80211_connect_info_18083 req_ie_len brcmf_cfg80211_connect_info 0 18083 NULL nohasharray
159816 +enable_so_add_wpa_key_fndecl_18083 add_wpa_key fndecl 3 18083 &enable_so_req_ie_len_brcmf_cfg80211_connect_info_18083
159817 +enable_so__osdv2_req_encode_common_fndecl_18086 _osdv2_req_encode_common fndecl 2 18086 NULL
159818 +enable_so_bits_per_pixel_drm_framebuffer_18087 bits_per_pixel drm_framebuffer 0 18087 NULL
159819 +enable_so_di_nextents_xfs_icdinode_18090 di_nextents xfs_icdinode 0 18090 NULL
159820 +enable_so_bfad_iocmd_ioc_fw_sig_inv_fndecl_18091 bfad_iocmd_ioc_fw_sig_inv fndecl 0 18091 NULL
159821 +enable_so_inode2sd_fndecl_18094 inode2sd fndecl 3 18094 NULL
159822 +enable_so_thermal_irq_thr_high_read_fndecl_18102 thermal_irq_thr_high_read fndecl 3 18102 NULL
159823 +enable_so_btrfs_qgroup_reserve_data_fndecl_18109 btrfs_qgroup_reserve_data fndecl 0-3-2 18109 NULL
159824 +enable_so_do_async_mmap_readahead_fndecl_18112 do_async_mmap_readahead fndecl 5 18112 NULL nohasharray
159825 +enable_so_readcount_usblp_18112 readcount usblp 0 18112 &enable_so_do_async_mmap_readahead_fndecl_18112
159826 +enable_so_addr_width_fsl_edma_slave_config_18115 addr_width fsl_edma_slave_config 0 18115 NULL
159827 +enable_so_befs_read_datastream_fndecl_18116 befs_read_datastream fndecl 3 18116 NULL
159828 +enable_so_mod_len_ccp_ecc_engine_18119 mod_len ccp_ecc_engine 0 18119 NULL nohasharray
159829 +enable_so_index_vardecl_ali5451_c_18119 index vardecl_ali5451.c 0 18119 &enable_so_mod_len_ccp_ecc_engine_18119
159830 +enable_so_send_mpa_reject_fndecl_18124 send_mpa_reject fndecl 3 18124 NULL
159831 +enable_so_ring_prod_per_user_data_18125 ring_prod per_user_data 0 18125 NULL
159832 +enable_so_bnx2x_num_queues_vardecl_18126 bnx2x_num_queues vardecl 0 18126 NULL
159833 +enable_so_qed_unzip_data_fndecl_18128 qed_unzip_data fndecl 4-2 18128 NULL nohasharray
159834 +enable_so_pipeline_enc_rx_stat_fifo_int_read_fndecl_18128 pipeline_enc_rx_stat_fifo_int_read fndecl 3 18128 &enable_so_qed_unzip_data_fndecl_18128
159835 +enable_so_tlb_preload_count_gru_create_context_req_18130 tlb_preload_count gru_create_context_req 0 18130 NULL nohasharray
159836 +enable_so_reshape_request_fndecl_18130 reshape_request fndecl 2 18130 &enable_so_tlb_preload_count_gru_create_context_req_18130
159837 +enable_so_fs_start_hfs_sb_info_18132 fs_start hfs_sb_info 0 18132 NULL
159838 +enable_so_num_ddr_avs_mthca_av_table_18139 num_ddr_avs mthca_av_table 0 18139 NULL
159839 +enable_so_byte_cnt_rx_desc_18142 byte_cnt rx_desc 0 18142 NULL
159840 +enable_so_i_iget5_block_iso_inode_info_18143 i_iget5_block iso_inode_info 0 18143 NULL
159841 +enable_so_mtu_net_device_18148 mtu net_device 0 18148 NULL nohasharray
159842 +enable_so_softback_in_vardecl_fbcon_c_18148 softback_in vardecl_fbcon.c 0 18148 &enable_so_mtu_net_device_18148
159843 +enable_so_read_word_onenand_chip_18150 read_word onenand_chip 0 18150 NULL
159844 +enable_so_bmv_length_getbmapx_18151 bmv_length getbmapx 0 18151 NULL
159845 +enable_so_nfs_dreq_bytes_left_fndecl_18154 nfs_dreq_bytes_left fndecl 0 18154 NULL
159846 +enable_so_acpi_rs_get_resource_source_fndecl_18168 acpi_rs_get_resource_source fndecl 0 18168 NULL
159847 +enable_so_qlcnic_enable_msix_fndecl_18171 qlcnic_enable_msix fndecl 2 18171 NULL
159848 +enable_so_iscsi_sw_tcp_pdu_init_fndecl_18173 iscsi_sw_tcp_pdu_init fndecl 3-2 18173 NULL
159849 +enable_so_num_gpu_pages_radeon_gart_18177 num_gpu_pages radeon_gart 0 18177 NULL
159850 +enable_so_ide_read_error_fndecl_18180 ide_read_error fndecl 0 18180 NULL nohasharray
159851 +enable_so_ocfs2_test_suballoc_bit_fndecl_18180 ocfs2_test_suballoc_bit fndecl 6-5-4 18180 &enable_so_ide_read_error_fndecl_18180 nohasharray
159852 +enable_so_process_rcvd_data_fndecl_18180 process_rcvd_data fndecl 3 18180 &enable_so_ocfs2_test_suballoc_bit_fndecl_18180
159853 +enable_so_offset_pktcdvd_device_18183 offset pktcdvd_device 0 18183 NULL
159854 +enable_so_hdac_ext_dma_alloc_pages_fndecl_18184 hdac_ext_dma_alloc_pages fndecl 3 18184 NULL
159855 +enable_so_aac_srcv_ioremap_fndecl_18192 aac_srcv_ioremap fndecl 2 18192 NULL
159856 +enable_so_natsemi_change_mtu_fndecl_18207 natsemi_change_mtu fndecl 2 18207 NULL
159857 +enable_so_sd_head_align_brcmfmac_sdio_platform_data_18210 sd_head_align brcmfmac_sdio_platform_data 0 18210 NULL
159858 +enable_so_ibmpex_query_sensor_count_fndecl_18214 ibmpex_query_sensor_count fndecl 0 18214 NULL nohasharray
159859 +enable_so_fw_size_intel_dmc_header_18214 fw_size intel_dmc_header 0 18214 &enable_so_ibmpex_query_sensor_count_fndecl_18214
159860 +enable_so_mpeg_read_fndecl_18215 mpeg_read fndecl 3 18215 NULL
159861 +enable_so_check_clk_sync_fndecl_18222 check_clk_sync fndecl 2 18222 NULL
159862 +enable_so_xmit_cnt_mgsl_struct_18223 xmit_cnt mgsl_struct 0 18223 NULL
159863 +enable_so_ql_process_mac_rx_skb_fndecl_18226 ql_process_mac_rx_skb fndecl 5-4 18226 NULL
159864 +enable_so_rx_buf_size_bnx2_18228 rx_buf_size bnx2 0 18228 NULL
159865 +enable_so_ps_pspoll_max_apturn_read_fndecl_18232 ps_pspoll_max_apturn_read fndecl 3 18232 NULL
159866 +enable_so_nvkm_fifo_ctor_fndecl_18233 nvkm_fifo_ctor fndecl 4 18233 NULL
159867 +enable_so_btrfs_lookup_csums_range_fndecl_18235 btrfs_lookup_csums_range fndecl 3-2 18235 NULL
159868 +enable_so_vol_id_ubi_volume_18238 vol_id ubi_volume 0 18238 NULL
159869 +enable_so_ocfs2_insert_extent_fndecl_18242 ocfs2_insert_extent fndecl 4-3 18242 NULL
159870 +enable_so_payload_size_vmci_datagram_18243 payload_size vmci_datagram 0 18243 NULL
159871 +enable_so_scif_writeto_fndecl_18246 scif_writeto fndecl 2-4-3 18246 NULL
159872 +enable_so_next_free_transient_c_18248 next_free transient_c 0 18248 NULL
159873 +enable_so_vid_batadv_bla_claim_18249 vid batadv_bla_claim 0 18249 NULL nohasharray
159874 +enable_so_hfi1_reg_phys_mr_fndecl_18249 hfi1_reg_phys_mr fndecl 3 18249 &enable_so_vid_batadv_bla_claim_18249
159875 +enable_so_inet_recv_error_fndecl_18251 inet_recv_error fndecl 3 18251 NULL
159876 +enable_so_rxf_size_bdx_priv_18260 rxf_size bdx_priv 0 18260 NULL
159877 +enable_so_posix_acl_xattr_count_fndecl_18262 posix_acl_xattr_count fndecl 1-0 18262 NULL
159878 +enable_so_video_proc_write_fndecl_18263 video_proc_write fndecl 3 18263 NULL
159879 +enable_so_rds_rdma_pages_fndecl_18268 rds_rdma_pages fndecl 0 18268 NULL
159880 +enable_so_end_extent_state_18270 end extent_state 0 18270 NULL
159881 +enable_so_sfi_check_table_fndecl_18279 sfi_check_table fndecl 1 18279 NULL
159882 +enable_so__nfs4_get_security_label_fndecl_18285 _nfs4_get_security_label fndecl 3 18285 NULL
159883 +enable_so_scif_create_window_fndecl_18291 scif_create_window fndecl 3-2 18291 NULL
159884 +enable_so_tda18218_rd_regs_fndecl_18293 tda18218_rd_regs fndecl 4-2 18293 NULL
159885 +enable_so_i915_parse_cmds_fndecl_18295 i915_parse_cmds fndecl 4-5 18295 NULL
159886 +enable_so_index_sg_device_18304 index sg_device 0 18304 NULL
159887 +enable_so_ocfs2_calc_refcount_meta_credits_fndecl_18305 ocfs2_calc_refcount_meta_credits fndecl 5-4 18305 NULL
159888 +enable_so_essid_len_iw_scan_req_18306 essid_len iw_scan_req 0 18306 NULL
159889 +enable_so_add_pfn_range_mapped_fndecl_18307 add_pfn_range_mapped fndecl 2-1 18307 NULL
159890 +enable_so_twl4030_init_irq_fndecl_18308 twl4030_init_irq fndecl 0 18308 NULL
159891 +enable_so_zone_spanned_pages_in_node_fndecl_18320 zone_spanned_pages_in_node fndecl 0-3-4 18320 NULL
159892 +enable_so_rpipes_wahc_18323 rpipes wahc 0 18323 NULL
159893 +enable_so_e820_end_of_low_ram_pfn_fndecl_18324 e820_end_of_low_ram_pfn fndecl 0 18324 NULL
159894 +enable_so_bfad_iocmd_fcpim_throttle_set_fndecl_18326 bfad_iocmd_fcpim_throttle_set fndecl 0 18326 NULL nohasharray
159895 +enable_so_radeon_sa_bo_manager_init_fndecl_18326 radeon_sa_bo_manager_init fndecl 3 18326 &enable_so_bfad_iocmd_fcpim_throttle_set_fndecl_18326
159896 +enable_so_hdlcdrv_register_fndecl_18331 hdlcdrv_register fndecl 2 18331 NULL
159897 +enable_so_tx_tx_done_data_read_fndecl_18332 tx_tx_done_data_read fndecl 3 18332 NULL nohasharray
159898 +enable_so_taps_oslec_state_18332 taps oslec_state 0 18332 &enable_so_tx_tx_done_data_read_fndecl_18332
159899 +enable_so_m_blockmask_xfs_mount_18334 m_blockmask xfs_mount 0 18334 NULL
159900 +enable_so_blk_alloc_flush_queue_fndecl_18340 blk_alloc_flush_queue fndecl 3 18340 NULL
159901 +enable_so_calc_pages_for_fndecl_18341 calc_pages_for fndecl 0-2-1 18341 NULL
159902 +enable_so_mon_bin_read_fndecl_18346 mon_bin_read fndecl 3 18346 NULL
159903 +enable_so_nsm_get_handle_fndecl_18347 nsm_get_handle fndecl 5 18347 NULL
159904 +enable_so_snd_cs4281_BA0_read_fndecl_18348 snd_cs4281_BA0_read fndecl 5 18348 NULL
159905 +enable_so_xfs_da_reada_buf_fndecl_18349 xfs_da_reada_buf fndecl 2 18349 NULL
159906 +enable_so_mb_cache_entry_insert_fndecl_18350 mb_cache_entry_insert fndecl 3 18350 NULL
159907 +enable_so_rfcomm_send_frame_fndecl_18352 rfcomm_send_frame fndecl 3 18352 NULL
159908 +enable_so_mgsl_load_tx_dma_buffer_fndecl_18355 mgsl_load_tx_dma_buffer fndecl 3 18355 NULL
159909 +enable_so_vm_pgoff_vm_area_struct_18357 vm_pgoff vm_area_struct 0 18357 NULL nohasharray
159910 +enable_so_elfnotes_sz_vardecl_vmcore_c_18357 elfnotes_sz vardecl_vmcore.c 0 18357 &enable_so_vm_pgoff_vm_area_struct_18357
159911 +enable_so_lbs_rdrf_write_fndecl_18361 lbs_rdrf_write fndecl 3 18361 NULL
159912 +enable_so_ascii2desc_fndecl_18370 ascii2desc fndecl 0-3 18370 NULL
159913 +enable_so_ecryptfs_write_lower_fndecl_18373 ecryptfs_write_lower fndecl 4 18373 NULL
159914 +enable_so_extent_write_locked_range_fndecl_18375 extent_write_locked_range fndecl 3-4 18375 NULL nohasharray
159915 +enable_so_perf_output_sample_ustack_fndecl_18375 perf_output_sample_ustack fndecl 2 18375 &enable_so_extent_write_locked_range_fndecl_18375
159916 +enable_so_len_btrfs_ordered_extent_18377 len btrfs_ordered_extent 0 18377 NULL
159917 +enable_so_n_bssids_wmi_start_scan_arg_18378 n_bssids wmi_start_scan_arg 0 18378 NULL
159918 +enable_so_rss_size_port_info_18379 rss_size port_info 0 18379 NULL
159919 +enable_so_o_width_fimc_frame_18380 o_width fimc_frame 0 18380 NULL nohasharray
159920 +enable_so_dio_complete_fndecl_18380 dio_complete fndecl 0-2-3 18380 &enable_so_o_width_fimc_frame_18380
159921 +enable_so_xfs_rtany_summary_fndecl_18384 xfs_rtany_summary fndecl 5-3 18384 NULL
159922 +enable_so_reply_payload_rcv_len_fc_bsg_reply_18392 reply_payload_rcv_len fc_bsg_reply 0 18392 NULL
159923 +enable_so_spc_modesense_blockdesc_fndecl_18397 spc_modesense_blockdesc fndecl 0 18397 NULL
159924 +enable_so_vid_batadv_bla_backbone_gw_18402 vid batadv_bla_backbone_gw 0 18402 NULL
159925 +enable_so_veth_change_mtu_fndecl_18405 veth_change_mtu fndecl 2 18405 NULL nohasharray
159926 +enable_so_lo_offset_loop_info64_18405 lo_offset loop_info64 0 18405 &enable_so_veth_change_mtu_fndecl_18405
159927 +enable_so_max_psize_uac2_rtd_params_18407 max_psize uac2_rtd_params 0 18407 NULL
159928 +enable_so_proc_sessionid_read_fndecl_18412 proc_sessionid_read fndecl 3 18412 NULL nohasharray
159929 +enable_so_acm_alloc_minor_fndecl_18412 acm_alloc_minor fndecl 0 18412 &enable_so_proc_sessionid_read_fndecl_18412
159930 +enable_so_bNrChannels_uac2_as_header_descriptor_18413 bNrChannels uac2_as_header_descriptor 0 18413 NULL
159931 +enable_so_ath6kl_wmi_ap_set_mlme_fndecl_18414 ath6kl_wmi_ap_set_mlme fndecl 2 18414 NULL
159932 +enable_so_CommandStatus__ErrorInfo_struct_18416 CommandStatus _ErrorInfo_struct 0 18416 NULL
159933 +enable_so_bpl_sh_vou_fmt_18422 bpl sh_vou_fmt 0 18422 NULL
159934 +enable_so_raw_seticmpfilter_fndecl_18427 raw_seticmpfilter fndecl 3 18427 NULL
159935 +enable_so_vlan_proto_vlan_dev_priv_18429 vlan_proto vlan_dev_priv 0 18429 NULL
159936 +enable_so_dlmfs_file_write_fndecl_18431 dlmfs_file_write fndecl 3 18431 NULL nohasharray
159937 +enable_so_hlen_hfi1_packet_18431 hlen hfi1_packet 0 18431 &enable_so_dlmfs_file_write_fndecl_18431
159938 +enable_so_fb_find_mode_fndecl_18438 fb_find_mode fndecl 7 18438 NULL
159939 +enable_so_device_pci_device_id_18441 device pci_device_id 0 18441 NULL
159940 +enable_so_recommended_prio_be_adapter_18442 recommended_prio be_adapter 0 18442 NULL
159941 +enable_so_count_iov_iter_18447 count iov_iter 0 18447 NULL
159942 +enable_so_data_len_hfa384x_tx_frame_18449 data_len hfa384x_tx_frame 0 18449 NULL nohasharray
159943 +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
159944 +enable_so_copy_range_nfulnl_instance_18460 copy_range nfulnl_instance 0 18460 NULL nohasharray
159945 +enable_so_error_bar_retry_read_fndecl_18460 error_bar_retry_read fndecl 3 18460 &enable_so_copy_range_nfulnl_instance_18460
159946 +enable_so_bsize_jfs_sb_info_18477 bsize jfs_sb_info 0 18477 NULL
159947 +enable_so_xfs_free_extent_fndecl_18480 xfs_free_extent fndecl 2-3 18480 NULL
159948 +enable_so_exynos4_jpeg_get_stream_size_fndecl_18485 exynos4_jpeg_get_stream_size fndecl 0 18485 NULL nohasharray
159949 +enable_so_ring_buffer_size_netup_dma_18485 ring_buffer_size netup_dma 0 18485 &enable_so_exynos4_jpeg_get_stream_size_fndecl_18485
159950 +enable_so_mdata_ofsl_cyttsp4_sysinfo_data_18486 mdata_ofsl cyttsp4_sysinfo_data 0 18486 NULL
159951 +enable_so_mddev_find_fndecl_18492 mddev_find fndecl 1 18492 NULL
159952 +enable_so_xfs_efd_init_fndecl_18500 xfs_efd_init fndecl 3 18500 NULL
159953 +enable_so_sfi_map_table_fndecl_18501 sfi_map_table fndecl 1 18501 NULL
159954 +enable_so_wil_pmc_read_fndecl_18503 wil_pmc_read fndecl 3 18503 NULL
159955 +enable_so_vxfs_getfsh_fndecl_18506 vxfs_getfsh fndecl 2 18506 NULL
159956 +enable_so_kernfs_fop_write_fndecl_18508 kernfs_fop_write fndecl 3 18508 NULL
159957 +enable_so_chspc_adf4350_state_18514 chspc adf4350_state 0 18514 NULL
159958 +enable_so_scat_entries_hif_scatter_req_18522 scat_entries hif_scatter_req 0 18522 NULL nohasharray
159959 +enable_so_iwl_queue_init_fndecl_18522 iwl_queue_init fndecl 2 18522 &enable_so_scat_entries_hif_scatter_req_18522
159960 +enable_so_ttm_bo_init_fndecl_18524 ttm_bo_init fndecl 3 18524 NULL
159961 +enable_so_tty_write_fndecl_18533 tty_write fndecl 3 18533 NULL
159962 +enable_so_bfad_iocmd_fcpim_lunmask_query_fndecl_18536 bfad_iocmd_fcpim_lunmask_query fndecl 0 18536 NULL
159963 +enable_so_tomoyo_update_domain_fndecl_18537 tomoyo_update_domain fndecl 2 18537 NULL
159964 +enable_so_progress_kcopyd_job_18540 progress kcopyd_job 0 18540 NULL
159965 +enable_so_sect_floppy_struct_18543 sect floppy_struct 0 18543 NULL
159966 +enable_so_ubi_leb_write_fndecl_18549 ubi_leb_write fndecl 5-4 18549 NULL
159967 +enable_so_xfs_efi_init_fndecl_18551 xfs_efi_init fndecl 2 18551 NULL
159968 +enable_so_kvm_hv_set_msr_pw_fndecl_18553 kvm_hv_set_msr_pw fndecl 3 18553 NULL nohasharray
159969 +enable_so_inodes_squashfs_sb_info_18553 inodes squashfs_sb_info 0 18553 &enable_so_kvm_hv_set_msr_pw_fndecl_18553 nohasharray
159970 +enable_so_pci_enable_msix_exact_fndecl_18553 pci_enable_msix_exact fndecl 0 18553 &enable_so_inodes_squashfs_sb_info_18553
159971 +enable_so_ucode_size_bytes_common_firmware_header_18554 ucode_size_bytes common_firmware_header 0 18554 NULL nohasharray
159972 +enable_so_single_sz_msc_18554 single_sz msc 0 18554 &enable_so_ucode_size_bytes_common_firmware_header_18554
159973 +enable_so_memblock_reserve_fndecl_18556 memblock_reserve fndecl 1-2 18556 NULL
159974 +enable_so_cifs_security_flags_proc_write_fndecl_18559 cifs_security_flags_proc_write fndecl 3 18559 NULL
159975 +enable_so_riva_get_memlen_fndecl_18562 riva_get_memlen fndecl 0 18562 NULL
159976 +enable_so_change_protection_fndecl_18568 change_protection fndecl 3-2 18568 NULL
159977 +enable_so___max_nr_grant_frames_fndecl_18578 __max_nr_grant_frames fndecl 0 18578 NULL
159978 +enable_so_index_xtsplit_18586 index xtsplit 0 18586 NULL
159979 +enable_so_spidev_message_fndecl_18589 spidev_message fndecl 3 18589 NULL
159980 +enable_so_omfs_fill_chain_fndecl_18591 omfs_fill_chain fndecl 3 18591 NULL
159981 +enable_so_le_readq_fndecl_18598 le_readq fndecl 0 18598 NULL
159982 +enable_so_brcmu_pkt_buf_get_skb_fndecl_18599 brcmu_pkt_buf_get_skb fndecl 1 18599 NULL
159983 +enable_so_extLocation_extent_ad_18601 extLocation extent_ad 0 18601 NULL
159984 +enable_so_m25p80_write_fndecl_18603 m25p80_write fndecl 3 18603 NULL
159985 +enable_so_logfs_write_je_buf_fndecl_18606 logfs_write_je_buf fndecl 4 18606 NULL nohasharray
159986 +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
159987 +enable_so_size_uhid_input_req_18611 size uhid_input_req 0 18611 NULL
159988 +enable_so_befs_get_block_fndecl_18612 befs_get_block fndecl 2 18612 NULL
159989 +enable_so_dstpos_isdnhdlc_vars_18616 dstpos isdnhdlc_vars 0 18616 NULL nohasharray
159990 +enable_so_iwl_pcie_txq_init_fndecl_18616 iwl_pcie_txq_init fndecl 3 18616 &enable_so_dstpos_isdnhdlc_vars_18616
159991 +enable_so_ks8995_registers_write_fndecl_18618 ks8995_registers_write fndecl 6 18618 NULL
159992 +enable_so_ctxt_qib_ctxtdata_18626 ctxt qib_ctxtdata 0 18626 NULL
159993 +enable_so_sec_per_clus_fat_boot_sector_18633 sec_per_clus fat_boot_sector 0 18633 NULL
159994 +enable_so_store_bss_info_fndecl_18643 store_bss_info fndecl 7 18643 NULL
159995 +enable_so_fir16_create_fndecl_18645 fir16_create fndecl 3 18645 NULL
159996 +enable_so_rbd_parent_request_create_fndecl_18646 rbd_parent_request_create fndecl 2-3 18646 NULL
159997 +enable_so_speaker_outs_auto_pin_cfg_18648 speaker_outs auto_pin_cfg 0 18648 NULL
159998 +enable_so_ax25_sendmsg_fndecl_18649 ax25_sendmsg fndecl 3 18649 NULL
159999 +enable_so_bioset_create_fndecl_18655 bioset_create fndecl 2-1 18655 NULL
160000 +enable_so_ext2_xattr_set_fndecl_18656 ext2_xattr_set fndecl 5 18656 NULL nohasharray
160001 +enable_so_MaxDevices__MSG_IOC_FACTS_REPLY_18656 MaxDevices _MSG_IOC_FACTS_REPLY 0 18656 &enable_so_ext2_xattr_set_fndecl_18656
160002 +enable_so_compat_copy_entries_fndecl_18658 compat_copy_entries fndecl 0 18658 NULL
160003 +enable_so_length_vb2_plane_18662 length vb2_plane 0 18662 NULL
160004 +enable_so_gfs2_unstuffer_page_fndecl_18663 gfs2_unstuffer_page fndecl 3 18663 NULL
160005 +enable_so_num_ccells_per_conn_iscsi_kwqe_init1_18665 num_ccells_per_conn iscsi_kwqe_init1 0 18665 NULL nohasharray
160006 +enable_so_SYSC_init_module_fndecl_18665 SYSC_init_module fndecl 2 18665 &enable_so_num_ccells_per_conn_iscsi_kwqe_init1_18665
160007 +enable_so_nilfs_move_2nd_super_fndecl_18666 nilfs_move_2nd_super fndecl 2 18666 NULL
160008 +enable_so_iterate_extent_inodes_fndecl_18668 iterate_extent_inodes fndecl 2 18668 NULL
160009 +enable_so_len_xdr_netobj_18672 len xdr_netobj 0 18672 NULL
160010 +enable_so_ies_len_scan_attr_18673 ies_len scan_attr 0 18673 NULL
160011 +enable_so_pn_recvmsg_fndecl_18676 pn_recvmsg fndecl 3 18676 NULL
160012 +enable_so_ldm_frag_add_fndecl_18680 ldm_frag_add fndecl 2 18680 NULL
160013 +enable_so_used_chaoskey_18682 used chaoskey 0 18682 NULL nohasharray
160014 +enable_so_ocd_max_easize_obd_connect_data_18682 ocd_max_easize obd_connect_data 0 18682 &enable_so_used_chaoskey_18682
160015 +enable_so_domain_pci_sysdata_18686 domain pci_sysdata 0 18686 NULL
160016 +enable_so_i2c_wr_max_cx24120_config_18687 i2c_wr_max cx24120_config 0 18687 NULL
160017 +enable_so_num_tc_net_device_18703 num_tc net_device 0 18703 NULL
160018 +enable_so_size_rxdone_entry_desc_18704 size rxdone_entry_desc 0 18704 NULL
160019 +enable_so_den_step_snd_ratnum_18705 den_step snd_ratnum 0 18705 NULL nohasharray
160020 +enable_so_num_dup_tsns_sctp_tsnmap_18705 num_dup_tsns sctp_tsnmap 0 18705 &enable_so_den_step_snd_ratnum_18705
160021 +enable_so_ent_get_fatent_operations_18715 ent_get fatent_operations 0 18715 NULL
160022 +enable_so_read_reg_isar_hw_18717 read_reg isar_hw 0 18717 NULL
160023 +enable_so_feature_len_mic_device_desc_18719 feature_len mic_device_desc 0 18719 NULL
160024 +enable_so___az6007_write_fndecl_18721 __az6007_write fndecl 6 18721 NULL
160025 +enable_so_max_pkeys_ib_device_attr_18722 max_pkeys ib_device_attr 0 18722 NULL
160026 +enable_so_trf7970a_read_cont_fndecl_18728 trf7970a_read_cont fndecl 4 18728 NULL
160027 +enable_so_ioapic_copy_alloc_attr_fndecl_18729 ioapic_copy_alloc_attr fndecl 3 18729 NULL
160028 +enable_so_acpi_pcc_get_sqty_fndecl_18731 acpi_pcc_get_sqty fndecl 0 18731 NULL
160029 +enable_so_sfi_map_memory_fndecl_18732 sfi_map_memory fndecl 2-1 18732 NULL
160030 +enable_so_sinit_num_ostreams_sctp_cookie_18733 sinit_num_ostreams sctp_cookie 0 18733 NULL
160031 +enable_so_pkcs7_sig_note_serial_fndecl_18735 pkcs7_sig_note_serial fndecl 5 18735 NULL
160032 +enable_so_rdb_per_qp_mthca_profile_18738 rdb_per_qp mthca_profile 0 18738 NULL
160033 +enable_so_bulk_out_ipheth_device_18739 bulk_out ipheth_device 0 18739 NULL
160034 +enable_so_o2net_recv_tcp_msg_fndecl_18741 o2net_recv_tcp_msg fndecl 3-0 18741 NULL
160035 +enable_so_count_configs_fndecl_18742 count_configs fndecl 0 18742 NULL
160036 +enable_so_max_sges_ocrdma_qp_hwq_info_18746 max_sges ocrdma_qp_hwq_info 0 18746 NULL
160037 +enable_so_seq_end_offset_iscsi_cmd_18748 seq_end_offset iscsi_cmd 0 18748 NULL
160038 +enable_so_max_in_size_ims_pcu_18752 max_in_size ims_pcu 0 18752 NULL
160039 +enable_so___ocfs2_error_fndecl_18758 __ocfs2_error fndecl 0 18758 NULL
160040 +enable_so_pipe_set_size_fndecl_18759 pipe_set_size fndecl 2 18759 NULL
160041 +enable_so_intel_tile_height_fndecl_18764 intel_tile_height fndecl 0 18764 NULL nohasharray
160042 +enable_so_i_pos_msdos_inode_info_18764 i_pos msdos_inode_info 0 18764 &enable_so_intel_tile_height_fndecl_18764
160043 +enable_so_ppp_cp_parse_cr_fndecl_18765 ppp_cp_parse_cr fndecl 4-2 18765 NULL
160044 +enable_so_xdr_get_next_encode_buffer_fndecl_18770 xdr_get_next_encode_buffer fndecl 2 18770 NULL nohasharray
160045 +enable_so_adjust_memory_fndecl_18770 adjust_memory fndecl 3-4 18770 &enable_so_xdr_get_next_encode_buffer_fndecl_18770
160046 +enable_so_data_len_ieee80211_mgd_auth_data_18778 data_len ieee80211_mgd_auth_data 0 18778 NULL
160047 +enable_so_nvif_device_init_fndecl_18779 nvif_device_init fndecl 5 18779 NULL
160048 +enable_so_cur_len_drm_dp_sideband_msg_tx_18787 cur_len drm_dp_sideband_msg_tx 0 18787 NULL
160049 +enable_so_mcopy_atomic_fndecl_18790 mcopy_atomic fndecl 2 18790 NULL
160050 +enable_so_isdn_ppp_skb_push_fndecl_18791 isdn_ppp_skb_push fndecl 2 18791 NULL
160051 +enable_so_sctp_abort_pkt_new_fndecl_18794 sctp_abort_pkt_new fndecl 6 18794 NULL
160052 +enable_so_max_low_pfn_vardecl_18798 max_low_pfn vardecl 0 18798 NULL
160053 +enable_so_readbuffers_v4l2_captureparm_18801 readbuffers v4l2_captureparm 0 18801 NULL
160054 +enable_so_dwc2_hcd_urb_alloc_fndecl_18802 dwc2_hcd_urb_alloc fndecl 2 18802 NULL
160055 +enable_so_rd_length_gfs2_rgrpd_18804 rd_length gfs2_rgrpd 0 18804 NULL
160056 +enable_so_md_capture_size_netxen_minidump_18805 md_capture_size netxen_minidump 0 18805 NULL
160057 +enable_so___irq_domain_alloc_irqs_fndecl_18810 __irq_domain_alloc_irqs fndecl 0-2 18810 NULL
160058 +enable_so_ath6kl_debug_roam_tbl_event_fndecl_18811 ath6kl_debug_roam_tbl_event fndecl 3 18811 NULL
160059 +enable_so_ssb_ioremap_fndecl_18815 ssb_ioremap fndecl 2 18815 NULL
160060 +enable_so_length_xfs_extent_busy_18817 length xfs_extent_busy 0 18817 NULL
160061 +enable_so_gfn_to_hva_memslot_fndecl_18818 gfn_to_hva_memslot fndecl 2 18818 NULL
160062 +enable_so_tx_cnt_IsdnCardState_18819 tx_cnt IsdnCardState 0 18819 NULL
160063 +enable_so_dvb_ringbuffer_write_user_fndecl_18821 dvb_ringbuffer_write_user fndecl 3 18821 NULL
160064 +enable_so_shmem_seek_hole_data_fndecl_18824 shmem_seek_hole_data fndecl 0-2-3 18824 NULL
160065 +enable_so_p_memsz_elf32_phdr_18830 p_memsz elf32_phdr 0 18830 NULL nohasharray
160066 +enable_so_clk_num_clk_onecell_data_18830 clk_num clk_onecell_data 0 18830 &enable_so_p_memsz_elf32_phdr_18830
160067 +enable_so_num_entries_compat_ipt_replace_18835 num_entries compat_ipt_replace 0 18835 NULL
160068 +enable_so_xfs_inobt_insert_rec_fndecl_18839 xfs_inobt_insert_rec fndecl 4 18839 NULL nohasharray
160069 +enable_so_DriverQueueDepth_DAC960_Controller_18839 DriverQueueDepth DAC960_Controller 0 18839 &enable_so_xfs_inobt_insert_rec_fndecl_18839
160070 +enable_so_rsn_ie_len_hostap_bss_info_18840 rsn_ie_len hostap_bss_info 0 18840 NULL
160071 +enable_so_number_snd_card_18845 number snd_card 0 18845 NULL
160072 +enable_so_n_targets_rsxx_cardinfo_18847 n_targets rsxx_cardinfo 0 18847 NULL
160073 +enable_so_private_data_len_ib_cm_req_param_18848 private_data_len ib_cm_req_param 0 18848 NULL
160074 +enable_so_master_xfer_i2c_algorithm_18849 master_xfer i2c_algorithm 0 18849 NULL nohasharray
160075 +enable_so_taglen_nfsd4_compoundargs_18849 taglen nfsd4_compoundargs 0 18849 &enable_so_master_xfer_i2c_algorithm_18849
160076 +enable_so_usb_descriptor_fillbuf_fndecl_18853 usb_descriptor_fillbuf fndecl 0 18853 NULL nohasharray
160077 +enable_so_sco_sock_sendmsg_fndecl_18853 sco_sock_sendmsg fndecl 3 18853 &enable_so_usb_descriptor_fillbuf_fndecl_18853
160078 +enable_so_nreaders_vardecl_rcutorture_c_18862 nreaders vardecl_rcutorture.c 0 18862 NULL
160079 +enable_so_length_acpi_resource_18863 length acpi_resource 0 18863 NULL
160080 +enable_so_max_payload_fwnet_packet_task_18867 max_payload fwnet_packet_task 0 18867 NULL
160081 +enable_so_alloc_cache_blocks_with_hash_fndecl_18870 alloc_cache_blocks_with_hash fndecl 2 18870 NULL
160082 +enable_so_osd_y_pan_yuv_playback_info_18877 osd_y_pan yuv_playback_info 0 18877 NULL
160083 +enable_so_rx_buffer_len_atl1_adapter_18882 rx_buffer_len atl1_adapter 0 18882 NULL nohasharray
160084 +enable_so_allocate_cnodes_fndecl_18882 allocate_cnodes fndecl 1 18882 &enable_so_rx_buffer_len_atl1_adapter_18882
160085 +enable_so_rxd_rfsw_s_smt_fp_rxd_18889 rxd_rfsw s_smt_fp_rxd 0 18889 NULL
160086 +enable_so_uinput_ioctl_fndecl_18893 uinput_ioctl fndecl 2 18893 NULL
160087 +enable_so_vm_insert_pfn_fndecl_18894 vm_insert_pfn fndecl 3 18894 NULL nohasharray
160088 +enable_so_count_objects_shrinker_18894 count_objects shrinker 0 18894 &enable_so_vm_insert_pfn_fndecl_18894
160089 +enable_so_nr_stripes_bcache_device_18895 nr_stripes bcache_device 0 18895 NULL
160090 +enable_so_rx_ps_hdr_size_igbvf_adapter_18896 rx_ps_hdr_size igbvf_adapter 0 18896 NULL nohasharray
160091 +enable_so_r592_write_fifo_pio_fndecl_18896 r592_write_fifo_pio fndecl 3 18896 &enable_so_rx_ps_hdr_size_igbvf_adapter_18896
160092 +enable_so_num_freq_table_entries_vardecl_sfi_cpufreq_c_18898 num_freq_table_entries vardecl_sfi-cpufreq.c 0 18898 NULL
160093 +enable_so_nilfs_max_size_fndecl_18901 nilfs_max_size fndecl 0-1 18901 NULL nohasharray
160094 +enable_so_op_dmaoff_rm_data_op_18901 op_dmaoff rm_data_op 0 18901 &enable_so_nilfs_max_size_fndecl_18901
160095 +enable_so_sbc_get_write_same_sectors_fndecl_18902 sbc_get_write_same_sectors fndecl 0 18902 NULL
160096 +enable_so_pep_sendmsg_fndecl_18903 pep_sendmsg fndecl 3 18903 NULL
160097 +enable_so_extent_invalidatepage_fndecl_18906 extent_invalidatepage fndecl 3 18906 NULL
160098 +enable_so_pwr_elp_enter_read_fndecl_18911 pwr_elp_enter_read fndecl 3 18911 NULL
160099 +enable_so_sectors_ssfdcr_record_18912 sectors ssfdcr_record 0 18912 NULL
160100 +enable_so_ps_pspoll_utilization_read_fndecl_18914 ps_pspoll_utilization_read fndecl 3 18914 NULL
160101 +enable_so_dccpd_opt_len_dccp_skb_cb_18917 dccpd_opt_len dccp_skb_cb 0 18917 NULL
160102 +enable_so_fuse_write_update_size_fndecl_18918 fuse_write_update_size fndecl 2 18918 NULL
160103 +enable_so_kvm_pin_pages_fndecl_18922 kvm_pin_pages fndecl 2 18922 NULL
160104 +enable_so_cciss_allocate_sg_chain_blocks_fndecl_18923 cciss_allocate_sg_chain_blocks fndecl 3-2 18923 NULL
160105 +enable_so_capacity_vmci_handle_arr_18924 capacity vmci_handle_arr 0 18924 NULL
160106 +enable_so_segment_size_kaweth_ethernet_configuration_18925 segment_size kaweth_ethernet_configuration 0 18925 NULL nohasharray
160107 +enable_so_vxfs_bread_fndecl_18925 vxfs_bread fndecl 2 18925 &enable_so_segment_size_kaweth_ethernet_configuration_18925
160108 +enable_so_size_gf100_gr_18928 size gf100_gr 0 18928 NULL
160109 +enable_so_ad714x_i2c_read_fndecl_18930 ad714x_i2c_read fndecl 4 18930 NULL
160110 +enable_so_spidev_get_ioc_message_fndecl_18931 spidev_get_ioc_message fndecl 1 18931 NULL
160111 +enable_so_maxReplyBytes_mpt_ioctl_command_18942 maxReplyBytes mpt_ioctl_command 0 18942 NULL
160112 +enable_so_read_pci_config_fndecl_18943 read_pci_config fndecl 0 18943 NULL
160113 +enable_so_rbd_segment_length_fndecl_18944 rbd_segment_length fndecl 0-2-3 18944 NULL
160114 +enable_so_cram_hmac_alg_len_net_conf_18947 cram_hmac_alg_len net_conf 0 18947 NULL
160115 +enable_so_i2c_hack_cx25840_fndecl_18948 i2c_hack_cx25840 fndecl 4-6 18948 NULL
160116 +enable_so_length_rsp_que_18950 length rsp_que 0 18950 NULL
160117 +enable_so_cookie_sg_count_realtek_pci_sdmmc_18954 cookie_sg_count realtek_pci_sdmmc 0 18954 NULL
160118 +enable_so_qla82xx_pci_mem_read_2M_fndecl_18955 qla82xx_pci_mem_read_2M fndecl 2 18955 NULL
160119 +enable_so_encx24j600_raw_write_fndecl_18957 encx24j600_raw_write fndecl 4 18957 NULL nohasharray
160120 +enable_so_rss_queues_igb_adapter_18957 rss_queues igb_adapter 0 18957 &enable_so_encx24j600_raw_write_fndecl_18957
160121 +enable_so_new_sync_read_fndecl_18960 new_sync_read fndecl 0-3 18960 NULL
160122 +enable_so_file_offset_btrfs_ordered_extent_18963 file_offset btrfs_ordered_extent 0 18963 NULL
160123 +enable_so_len_dm_target_18965 len dm_target 0 18965 NULL
160124 +enable_so_size_ceph_cap_snap_18977 size ceph_cap_snap 0 18977 NULL nohasharray
160125 +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
160126 +enable_so_read_off_videobuf_queue_18978 read_off videobuf_queue 0 18978 NULL
160127 +enable_so_rtsx_usb_read_register_fndecl_18981 rtsx_usb_read_register fndecl 0 18981 NULL
160128 +enable_so_edac_device_alloc_ctl_info_fndecl_18982 edac_device_alloc_ctl_info fndecl 1 18982 NULL
160129 +enable_so_rcount_mkiss_18984 rcount mkiss 0 18984 NULL nohasharray
160130 +enable_so_l2cap_sock_sendmsg_fndecl_18984 l2cap_sock_sendmsg fndecl 3 18984 &enable_so_rcount_mkiss_18984
160131 +enable_so_preferred_bpp_intel_fbdev_18985 preferred_bpp intel_fbdev 0 18985 NULL
160132 +enable_so_p9_get_mapped_pages_fndecl_18988 p9_get_mapped_pages fndecl 4-0 18988 NULL nohasharray
160133 +enable_so_ebcnt_vardecl_subpagetest_c_18988 ebcnt vardecl_subpagetest.c 0 18988 &enable_so_p9_get_mapped_pages_fndecl_18988
160134 +enable_so_ttm_bo_kmap_ttm_fndecl_18993 ttm_bo_kmap_ttm fndecl 3 18993 NULL
160135 +enable_so_virtio_gpu_alloc_cmd_resp_fndecl_18996 virtio_gpu_alloc_cmd_resp fndecl 4-5 18996 NULL
160136 +enable_so_end_sk_buff_18998 end sk_buff 0 18998 NULL
160137 +enable_so_usb_hcd_check_unlink_urb_fndecl_18999 usb_hcd_check_unlink_urb fndecl 3 18999 NULL
160138 +enable_so_lbs_highsnr_read_fndecl_19000 lbs_highsnr_read fndecl 3 19000 NULL
160139 +enable_so_dm_alloc_md_mempools_fndecl_19008 dm_alloc_md_mempools fndecl 4 19008 NULL
160140 +enable_so_max_sectors_ata_device_19016 max_sectors ata_device 0 19016 NULL
160141 +enable_so_generic_splice_sendpage_fndecl_19018 generic_splice_sendpage fndecl 4 19018 NULL
160142 +enable_so_prevUnitNo_inftl_unithead1_19020 prevUnitNo inftl_unithead1 0 19020 NULL
160143 +enable_so_SyS_semop_fndecl_19023 SyS_semop fndecl 3 19023 NULL
160144 +enable_so_rsxx_queue_discard_fndecl_19027 rsxx_queue_discard fndecl 0 19027 NULL
160145 +enable_so_tcp_recvmsg_fndecl_19029 tcp_recvmsg fndecl 3 19029 NULL
160146 +enable_so_sge_size_MPT3SAS_ADAPTER_19030 sge_size MPT3SAS_ADAPTER 0 19030 NULL nohasharray
160147 +enable_so_tipc_subseq_alloc_fndecl_19030 tipc_subseq_alloc fndecl 1 19030 &enable_so_sge_size_MPT3SAS_ADAPTER_19030
160148 +enable_so_ipv6_gro_complete_fndecl_19031 ipv6_gro_complete fndecl 2 19031 NULL
160149 +enable_so_ll_statahead_one_fndecl_19033 ll_statahead_one fndecl 3 19033 NULL
160150 +enable_so_scrollback_max_vardecl_fbcon_c_19040 scrollback_max vardecl_fbcon.c 0 19040 NULL nohasharray
160151 +enable_so_next_cnid_hfsplus_sb_info_19040 next_cnid hfsplus_sb_info 0 19040 &enable_so_scrollback_max_vardecl_fbcon_c_19040
160152 +enable_so_tsize_nfs2_fsstat_19041 tsize nfs2_fsstat 0 19041 NULL
160153 +enable_so_dma_usb_request_19054 dma usb_request 0 19054 NULL
160154 +enable_so_mod_len_extent_map_19058 mod_len extent_map 0 19058 NULL
160155 +enable_so_count_sgmapraw_19066 count sgmapraw 0 19066 NULL
160156 +enable_so_mem_size_memory_type_mapping_19073 mem_size memory_type_mapping 0 19073 NULL
160157 +enable_so_offs_ubifs_zbranch_19074 offs ubifs_zbranch 0 19074 NULL
160158 +enable_so_mei_cl_read_start_fndecl_19077 mei_cl_read_start fndecl 2-0 19077 NULL nohasharray
160159 +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
160160 +enable_so_s_blocksize_super_block_19081 s_blocksize super_block 0 19081 NULL
160161 +enable_so_gsi_kvm_assigned_msix_entry_19082 gsi kvm_assigned_msix_entry 0 19082 NULL
160162 +enable_so_data_size_hpi_msg_data_19086 data_size hpi_msg_data 0 19086 NULL
160163 +enable_so_mei_hbm_cl_flow_control_req_fndecl_19089 mei_hbm_cl_flow_control_req fndecl 0 19089 NULL
160164 +enable_so_duplex_pxa168_eth_platform_data_19097 duplex pxa168_eth_platform_data 0 19097 NULL
160165 +enable_so_sb_logsectsize_xfs_sb_19098 sb_logsectsize xfs_sb 0 19098 NULL
160166 +enable_so_btrfs_qgroup_inherit_fndecl_19103 btrfs_qgroup_inherit fndecl 4 19103 NULL
160167 +enable_so_walk_node_fndecl_19114 walk_node fndecl 2 19114 NULL nohasharray
160168 +enable_so_sctp_setsockopt_connectx_fndecl_19114 sctp_setsockopt_connectx fndecl 3 19114 &enable_so_walk_node_fndecl_19114
160169 +enable_so_ceph_entity_name_encode_fndecl_19115 ceph_entity_name_encode fndecl 0 19115 NULL nohasharray
160170 +enable_so_alloc_msg_fndecl_19115 alloc_msg fndecl 1 19115 &enable_so_ceph_entity_name_encode_fndecl_19115
160171 +enable_so_default_qos_mlx4_vport_state_19116 default_qos mlx4_vport_state 0 19116 NULL
160172 +enable_so_sel_make_class_dir_entries_fndecl_19123 sel_make_class_dir_entries fndecl 2 19123 NULL
160173 +enable_so_rx_keycache_size_p54_common_19128 rx_keycache_size p54_common 0 19128 NULL
160174 +enable_so_ssid_len_ieee80211_mgd_assoc_data_19143 ssid_len ieee80211_mgd_assoc_data 0 19143 NULL
160175 +enable_so_start_vivitar_cam_fndecl_19144 start_vivitar_cam fndecl 0 19144 NULL
160176 +enable_so_ctrl_set_res_hor_fndecl_19146 ctrl_set_res_hor fndecl 3 19146 NULL nohasharray
160177 +enable_so_count_c2_ring_19146 count c2_ring 0 19146 &enable_so_ctrl_set_res_hor_fndecl_19146
160178 +enable_so_ipmi_addr_length_fndecl_19149 ipmi_addr_length fndecl 0 19149 NULL
160179 +enable_so_pgbase_nfs_readlinkargs_19150 pgbase nfs_readlinkargs 0 19150 NULL
160180 +enable_so_inftl_write_oob_fndecl_19154 inftl_write_oob fndecl 2-3 19154 NULL
160181 +enable_so_alloc_indirect_fndecl_19156 alloc_indirect fndecl 2 19156 NULL
160182 +enable_so_do_get_thread_area_fndecl_19157 do_get_thread_area fndecl 2 19157 NULL
160183 +enable_so_page_array_size_firmware_buf_19163 page_array_size firmware_buf 0 19163 NULL
160184 +enable_so_ve_attrlen_nfsd4_verify_19164 ve_attrlen nfsd4_verify 0 19164 NULL
160185 +enable_so_ms_nvme_ns_19166 ms nvme_ns 0 19166 NULL
160186 +enable_so_dma_start_hi_rx_buf_desc_19167 dma_start_hi rx_buf_desc 0 19167 NULL
160187 +enable_so_isp116x_urb_dequeue_fndecl_19169 isp116x_urb_dequeue fndecl 3 19169 NULL
160188 +enable_so_max_pages_per_mr_srp_device_19171 max_pages_per_mr srp_device 0 19171 NULL
160189 +enable_so_lprocfs_alloc_stats_fndecl_19181 lprocfs_alloc_stats fndecl 1 19181 NULL
160190 +enable_so_mic_read_spad_fndecl_19184 mic_read_spad fndecl 0 19184 NULL
160191 +enable_so_dfs_global_file_write_fndecl_19187 dfs_global_file_write fndecl 3 19187 NULL
160192 +enable_so_vmw_user_shader_alloc_fndecl_19188 vmw_user_shader_alloc fndecl 3 19188 NULL
160193 +enable_so_st21nfca_hci_dm_get_info_fndecl_19189 st21nfca_hci_dm_get_info fndecl 3 19189 NULL nohasharray
160194 +enable_so_xen_max_p2m_pfn_vardecl_19189 xen_max_p2m_pfn vardecl 0 19189 &enable_so_st21nfca_hci_dm_get_info_fndecl_19189
160195 +enable_so_nci_allocate_device_fndecl_19192 nci_allocate_device fndecl 3 19192 NULL
160196 +enable_so_____smiapp_read_fndecl_19193 ____smiapp_read fndecl 3 19193 NULL
160197 +enable_so_slot_nr_nfs4_slot_19196 slot_nr nfs4_slot 0 19196 NULL nohasharray
160198 +enable_so_num_retune_mobile_texts_wm8996_priv_19196 num_retune_mobile_texts wm8996_priv 0 19196 &enable_so_slot_nr_nfs4_slot_19196
160199 +enable_so_decode_height_yuv_playback_info_19201 decode_height yuv_playback_info 0 19201 NULL
160200 +enable_so_irq_dma_handle_ttusb_dec_19208 irq_dma_handle ttusb_dec 0 19208 NULL nohasharray
160201 +enable_so_sd_tuning_phase_fndecl_19208 sd_tuning_phase fndecl 2 19208 &enable_so_irq_dma_handle_ttusb_dec_19208
160202 +enable_so_m25p80_write_reg_fndecl_19209 m25p80_write_reg fndecl 4 19209 NULL
160203 +enable_so_ext4_xattr_get_fndecl_19214 ext4_xattr_get fndecl 0 19214 NULL
160204 +enable_so_size_afs_file_status_19215 size afs_file_status 0 19215 NULL
160205 +enable_so_extensions_edid_19218 extensions edid 0 19218 NULL
160206 +enable_so_lfb_size_screen_info_19219 lfb_size screen_info 0 19219 NULL
160207 +enable_so_SYSC_fsetxattr_fndecl_19220 SYSC_fsetxattr fndecl 4 19220 NULL
160208 +enable_so_vmw_cmdbuf_alloc_fndecl_19226 vmw_cmdbuf_alloc fndecl 2 19226 NULL
160209 +enable_so___ai_size_pcpu_alloc_info_19229 __ai_size pcpu_alloc_info 0 19229 NULL
160210 +enable_so_cmds_vardecl_ambassador_c_19230 cmds vardecl_ambassador.c 0 19230 NULL
160211 +enable_so_spi_populate_ppr_msg_fndecl_19239 spi_populate_ppr_msg fndecl 0 19239 NULL
160212 +enable_so_matroxfb_pitch_adjust_fndecl_19243 matroxfb_pitch_adjust fndecl 0-2 19243 NULL nohasharray
160213 +enable_so_tcp_fastretrans_alert_fndecl_19243 tcp_fastretrans_alert fndecl 2 19243 &enable_so_matroxfb_pitch_adjust_fndecl_19243
160214 +enable_so_get_arg_fndecl_19245 get_arg fndecl 3 19245 NULL
160215 +enable_so_mthca_map_reg_fndecl_19251 mthca_map_reg fndecl 3-2 19251 NULL
160216 +enable_so_ieee802154_hdr_push_sechdr_fndecl_19265 ieee802154_hdr_push_sechdr fndecl 0 19265 NULL
160217 +enable_so_batadv_frag_create_fndecl_19270 batadv_frag_create fndecl 3 19270 NULL
160218 +enable_so_tail_aio_ring_19271 tail aio_ring 0 19271 NULL
160219 +enable_so_vmw_kms_readback_fndecl_19276 vmw_kms_readback fndecl 6 19276 NULL nohasharray
160220 +enable_so_sb_segnum_nilfs_segment_buffer_19276 sb_segnum nilfs_segment_buffer 0 19276 &enable_so_vmw_kms_readback_fndecl_19276
160221 +enable_so_early_init_dt_reserve_memory_arch_fndecl_19285 early_init_dt_reserve_memory_arch fndecl 2-1 19285 NULL
160222 +enable_so_inode_minix_dir_entry_19287 inode minix_dir_entry 0 19287 NULL
160223 +enable_so_virtio_gpu_cmd_resource_flush_fndecl_19291 virtio_gpu_cmd_resource_flush fndecl 5-6 19291 NULL nohasharray
160224 +enable_so_index_scsi_tape_19291 index scsi_tape 0 19291 &enable_so_virtio_gpu_cmd_resource_flush_fndecl_19291
160225 +enable_so_subbuf_read_actor_fndecl_19295 subbuf_read_actor fndecl 3 19295 NULL
160226 +enable_so_get_packet_fndecl_19296 get_packet fndecl 3 19296 NULL
160227 +enable_so_vxge_change_mtu_fndecl_19297 vxge_change_mtu fndecl 2 19297 NULL
160228 +enable_so_ext_len_xfs_extent_19299 ext_len xfs_extent 0 19299 NULL
160229 +enable_so_ubi_calc_fm_size_fndecl_19302 ubi_calc_fm_size fndecl 0 19302 NULL
160230 +enable_so_copy_vma_fndecl_19303 copy_vma fndecl 3-2-4 19303 NULL
160231 +enable_so_cl_cpg_ocfs2_chain_list_19308 cl_cpg ocfs2_chain_list 0 19308 NULL
160232 +enable_so_sys_sched_getattr_fndecl_19313 sys_sched_getattr fndecl 3 19313 NULL
160233 +enable_so_ve4_indsize_vxfs_ext4_19315 ve4_indsize vxfs_ext4 0 19315 NULL
160234 +enable_so_reply_sz_MPT3SAS_ADAPTER_19317 reply_sz MPT3SAS_ADAPTER 0 19317 NULL
160235 +enable_so_bpp_vardecl_nvidia_c_19325 bpp vardecl_nvidia.c 0 19325 NULL
160236 +enable_so_meta_dev_len_disk_conf_19326 meta_dev_len disk_conf 0 19326 NULL
160237 +enable_so_mlx4_alloc_resize_buf_fndecl_19329 mlx4_alloc_resize_buf fndecl 3 19329 NULL
160238 +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
160239 +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
160240 +enable_so_rule_size_fib_rules_ops_19335 rule_size fib_rules_ops 0 19335 NULL
160241 +enable_so___vxge_hw_blockpool_malloc_fndecl_19337 __vxge_hw_blockpool_malloc fndecl 2 19337 NULL
160242 +enable_so_compat_sys_writev_fndecl_19339 compat_sys_writev fndecl 3 19339 NULL
160243 +enable_so_NetworkInfoReceived_fndecl_19353 NetworkInfoReceived fndecl 2 19353 NULL
160244 +enable_so_sock_alloc_send_pskb_fndecl_19354 sock_alloc_send_pskb fndecl 3 19354 NULL
160245 +enable_so_data_sge_offset_mpt3_ioctl_command_19355 data_sge_offset mpt3_ioctl_command 0 19355 NULL
160246 +enable_so_qlcnic_83xx_sysfs_flash_read_handler_fndecl_19356 qlcnic_83xx_sysfs_flash_read_handler fndecl 6 19356 NULL nohasharray
160247 +enable_so_sctp_setsockopt_autoclose_fndecl_19356 sctp_setsockopt_autoclose fndecl 3 19356 &enable_so_qlcnic_83xx_sysfs_flash_read_handler_fndecl_19356
160248 +enable_so_ds_channels_snd_rme9652_19357 ds_channels snd_rme9652 0 19357 NULL
160249 +enable_so_of_fdt_is_compatible_fndecl_19359 of_fdt_is_compatible fndecl 2 19359 NULL nohasharray
160250 +enable_so_lpfc_sriov_nr_virtfn_init_fndecl_19359 lpfc_sriov_nr_virtfn_init fndecl 2 19359 &enable_so_of_fdt_is_compatible_fndecl_19359 nohasharray
160251 +enable_so_minimum_acpi_resource_io_19359 minimum acpi_resource_io 0 19359 &enable_so_lpfc_sriov_nr_virtfn_init_fndecl_19359
160252 +enable_so_nodesize_scrub_ctx_19371 nodesize scrub_ctx 0 19371 NULL
160253 +enable_so_size_mdu_array_info_s_19374 size mdu_array_info_s 0 19374 NULL
160254 +enable_so_nvme_trans_bdev_char_page_fndecl_19382 nvme_trans_bdev_char_page fndecl 3 19382 NULL
160255 +enable_so_do_anonymous_page_fndecl_19385 do_anonymous_page fndecl 3 19385 NULL
160256 +enable_so_cx25840_read_fndecl_19386 cx25840_read fndecl 0 19386 NULL nohasharray
160257 +enable_so_ControllerQueueDepth_DAC960_Controller_19386 ControllerQueueDepth DAC960_Controller 0 19386 &enable_so_cx25840_read_fndecl_19386
160258 +enable_so_padlen_ip_beet_phdr_19393 padlen ip_beet_phdr 0 19393 NULL
160259 +enable_so_ixgb_check_copybreak_fndecl_19396 ixgb_check_copybreak fndecl 3 19396 NULL nohasharray
160260 +enable_so_at25_bin_write_fndecl_19396 at25_bin_write fndecl 6-5 19396 &enable_so_ixgb_check_copybreak_fndecl_19396
160261 +enable_so_ceph_msg_new_fndecl_19397 ceph_msg_new fndecl 2 19397 NULL
160262 +enable_so_rx_filter_max_arp_queue_dep_read_fndecl_19400 rx_filter_max_arp_queue_dep_read fndecl 3 19400 NULL
160263 +enable_so_hash_chain_affs_tail_19402 hash_chain affs_tail 0 19402 NULL
160264 +enable_so_ext4_xattr_set_fndecl_19403 ext4_xattr_set fndecl 5 19403 NULL nohasharray
160265 +enable_so_setup_req_fndecl_19403 setup_req fndecl 3-0 19403 &enable_so_ext4_xattr_set_fndecl_19403
160266 +enable_so_max_sqes_bnx2i_hba_19405 max_sqes bnx2i_hba 0 19405 NULL
160267 +enable_so_rec_len_ocfs2_dir_entry_19408 rec_len ocfs2_dir_entry 0 19408 NULL
160268 +enable_so_ip_tot_len_net_lro_desc_19411 ip_tot_len net_lro_desc 0 19411 NULL
160269 +enable_so_proc_read_atmdev_ops_19414 proc_read atmdev_ops 0 19414 NULL
160270 +enable_so_num_ip_blocks_amdgpu_device_19419 num_ip_blocks amdgpu_device 0 19419 NULL
160271 +enable_so_size_mthca_resource_19420 size mthca_resource 0 19420 NULL
160272 +enable_so_fw_card_add_fndecl_19423 fw_card_add fndecl 2 19423 NULL
160273 +enable_so_mixer_nid_hda_gen_spec_19429 mixer_nid hda_gen_spec 0 19429 NULL
160274 +enable_so_config_buf_fndecl_19445 config_buf fndecl 0 19445 NULL nohasharray
160275 +enable_so_bfad_iocmd_ethboot_cfg_fndecl_19445 bfad_iocmd_ethboot_cfg fndecl 0 19445 &enable_so_config_buf_fndecl_19445 nohasharray
160276 +enable_so_sn9c2028_long_command_fndecl_19445 sn9c2028_long_command fndecl 0 19445 &enable_so_bfad_iocmd_ethboot_cfg_fndecl_19445
160277 +enable_so_compat_sys_move_pages_fndecl_19446 compat_sys_move_pages fndecl 2 19446 NULL nohasharray
160278 +enable_so_uinput_compat_ioctl_fndecl_19446 uinput_compat_ioctl fndecl 2 19446 &enable_so_compat_sys_move_pages_fndecl_19446
160279 +enable_so_i_parent_dir_hpfs_inode_info_19451 i_parent_dir hpfs_inode_info 0 19451 NULL
160280 +enable_so_ilf_ino_xfs_inode_log_format_19454 ilf_ino xfs_inode_log_format 0 19454 NULL
160281 +enable_so_dvb_ringbuffer_read_fndecl_19457 dvb_ringbuffer_read fndecl 3 19457 NULL
160282 +enable_so_sys_setdomainname_fndecl_19462 sys_setdomainname fndecl 2 19462 NULL
160283 +enable_so_i965_gtt_total_entries_fndecl_19464 i965_gtt_total_entries fndecl 0 19464 NULL
160284 +enable_so_vcc_connect_fndecl_19469 vcc_connect fndecl 4-3 19469 NULL nohasharray
160285 +enable_so_size_nvbios_image_19469 size nvbios_image 0 19469 &enable_so_vcc_connect_fndecl_19469
160286 +enable_so_dvb_ep_bulk_em28xx_19472 dvb_ep_bulk em28xx 0 19472 NULL nohasharray
160287 +enable_so_kclist_add_fndecl_19472 kclist_add fndecl 3 19472 &enable_so_dvb_ep_bulk_em28xx_19472
160288 +enable_so_dma_xfer_cnt_ivtv_buffer_19475 dma_xfer_cnt ivtv_buffer 0 19475 NULL
160289 +enable_so_orig_block_len_extent_map_19476 orig_block_len extent_map 0 19476 NULL
160290 +enable_so_ath6kl_wmi_ap_hidden_ssid_fndecl_19481 ath6kl_wmi_ap_hidden_ssid fndecl 2 19481 NULL
160291 +enable_so_fackets_out_tcp_sock_19484 fackets_out tcp_sock 0 19484 NULL
160292 +enable_so_ieee80211_change_mtu_fndecl_19486 ieee80211_change_mtu fndecl 2 19486 NULL nohasharray
160293 +enable_so_lookup_string_fndecl_19486 lookup_string fndecl 0 19486 &enable_so_ieee80211_change_mtu_fndecl_19486
160294 +enable_so_bfad_iocmd_preboot_query_fndecl_19487 bfad_iocmd_preboot_query fndecl 0 19487 NULL
160295 +enable_so_ath6kl_set_bitrate_mask32_fndecl_19488 ath6kl_set_bitrate_mask32 fndecl 2 19488 NULL
160296 +enable_so_drm_gtf_mode_fndecl_19489 drm_gtf_mode fndecl 3-2-4 19489 NULL nohasharray
160297 +enable_so_add_device_fndecl_19489 add_device fndecl 2 19489 &enable_so_drm_gtf_mode_fndecl_19489
160298 +enable_so_length_mwifiex_types_power_group_19491 length mwifiex_types_power_group 0 19491 NULL
160299 +enable_so_reg_read_fndecl_19498 reg_read fndecl 0 19498 NULL
160300 +enable_so_len_ib_ucm_sidr_req_19499 len ib_ucm_sidr_req 0 19499 NULL
160301 +enable_so_libfc_vport_create_fndecl_19500 libfc_vport_create fndecl 2 19500 NULL
160302 +enable_so_access_process_vm_fndecl_19503 access_process_vm fndecl 4-0-2 19503 NULL nohasharray
160303 +enable_so_cxacru_cm_get_array_fndecl_19503 cxacru_cm_get_array fndecl 4 19503 &enable_so_access_process_vm_fndecl_19503
160304 +enable_so_sctp_sendmsg_fndecl_19508 sctp_sendmsg fndecl 3 19508 NULL
160305 +enable_so_ecryptfs_write_tag_70_packet_fndecl_19510 ecryptfs_write_tag_70_packet fndecl 6 19510 NULL nohasharray
160306 +enable_so_dev_cdev_19510 dev cdev 0 19510 &enable_so_ecryptfs_write_tag_70_packet_fndecl_19510
160307 +enable_so_count_sgmap64_19513 count sgmap64 0 19513 NULL
160308 +enable_so_ndoms_cur_vardecl_core_c_19519 ndoms_cur vardecl_core.c 0 19519 NULL
160309 +enable_so_pglen_nfs_readlinkargs_19521 pglen nfs_readlinkargs 0 19521 NULL
160310 +enable_so_do_pages_stat_fndecl_19526 do_pages_stat fndecl 2 19526 NULL
160311 +enable_so_i40e_reconfig_rss_queues_fndecl_19528 i40e_reconfig_rss_queues fndecl 2 19528 NULL
160312 +enable_so_height_simplefb_platform_data_19532 height simplefb_platform_data 0 19532 NULL
160313 +enable_so_memparse_fndecl_19535 memparse fndecl 0 19535 NULL
160314 +enable_so_in_dma_usb_keyspan_19540 in_dma usb_keyspan 0 19540 NULL
160315 +enable_so_npins_chv_gpio_pinrange_19542 npins chv_gpio_pinrange 0 19542 NULL nohasharray
160316 +enable_so_rtw_android_get_rssi_fndecl_19542 rtw_android_get_rssi fndecl 0 19542 &enable_so_npins_chv_gpio_pinrange_19542
160317 +enable_so_nilfs_sufile_set_alloc_range_fndecl_19543 nilfs_sufile_set_alloc_range fndecl 3-2 19543 NULL nohasharray
160318 +enable_so_entries_size_ebt_table_info_19543 entries_size ebt_table_info 0 19543 &enable_so_nilfs_sufile_set_alloc_range_fndecl_19543
160319 +enable_so_get_response_hdac_bus_ops_19545 get_response hdac_bus_ops 0 19545 NULL
160320 +enable_so_read_code_fndecl_19550 read_code fndecl 4 19550 NULL
160321 +enable_so_send_size_send_ctx_19552 send_size send_ctx 0 19552 NULL
160322 +enable_so_softback_curr_vardecl_fbcon_c_19553 softback_curr vardecl_fbcon.c 0 19553 NULL
160323 +enable_so_at76_set_card_command_fndecl_19556 at76_set_card_command fndecl 4 19556 NULL
160324 +enable_so_cmpt_entry_sz_mlx4_dev_cap_19564 cmpt_entry_sz mlx4_dev_cap 0 19564 NULL
160325 +enable_so_Val_hfs_cat_dir_19565 Val hfs_cat_dir 0 19565 NULL
160326 +enable_so_rtsx_pci_card_exclusive_check_fndecl_19570 rtsx_pci_card_exclusive_check fndecl 0 19570 NULL
160327 +enable_so_uni16_to_x8_fndecl_19571 uni16_to_x8 fndecl 0 19571 NULL
160328 +enable_so_sd_pkt_scan_bayer_fndecl_19581 sd_pkt_scan_bayer fndecl 3 19581 NULL
160329 +enable_so_ath6kl_wmi_set_txe_notify_fndecl_19582 ath6kl_wmi_set_txe_notify fndecl 2 19582 NULL
160330 +enable_so_bytes_per_track_mspro_devinfo_19584 bytes_per_track mspro_devinfo 0 19584 NULL
160331 +enable_so_set_link_security_fndecl_19589 set_link_security fndecl 4 19589 NULL
160332 +enable_so_rx_max_pending_ethtool_ringparam_19591 rx_max_pending ethtool_ringparam 0 19591 NULL
160333 +enable_so_l1oip_socket_parse_fndecl_19592 l1oip_socket_parse fndecl 4 19592 NULL
160334 +enable_so_icc_empty_fifo_fndecl_19594 icc_empty_fifo fndecl 2 19594 NULL
160335 +enable_so_xdr_stream_pos_fndecl_19598 xdr_stream_pos fndecl 0 19598 NULL
160336 +enable_so_snd_seq_expand_var_event_fndecl_19602 snd_seq_expand_var_event fndecl 0 19602 NULL
160337 +enable_so_readpos_seq_buf_19607 readpos seq_buf 0 19607 NULL
160338 +enable_so_di_eattr_gfs2_dinode_19609 di_eattr gfs2_dinode 0 19609 NULL
160339 +enable_so_rs_user_bytes_rds_sock_19611 rs_user_bytes rds_sock 0 19611 NULL
160340 +enable_so_gspca_frame_add_fndecl_19612 gspca_frame_add fndecl 4 19612 NULL nohasharray
160341 +enable_so_vmbus_establish_gpadl_fndecl_19612 vmbus_establish_gpadl fndecl 3 19612 &enable_so_gspca_frame_add_fndecl_19612
160342 +enable_so_logical_btrfs_io_bio_19616 logical btrfs_io_bio 0 19616 NULL
160343 +enable_so___gfn_to_pfn_memslot_fndecl_19617 __gfn_to_pfn_memslot fndecl 2 19617 NULL
160344 +enable_so_fc_plogi_build_fndecl_19619 fc_plogi_build fndecl 8 19619 NULL
160345 +enable_so_sys_llistxattr_fndecl_19623 sys_llistxattr fndecl 3 19623 NULL
160346 +enable_so_name_len_ext4_dir_entry_2_19628 name_len ext4_dir_entry_2 0 19628 NULL
160347 +enable_so_logical_io_failure_record_19631 logical io_failure_record 0 19631 NULL
160348 +enable_so_softback_buf_vardecl_fbcon_c_19637 softback_buf vardecl_fbcon.c 0 19637 NULL
160349 +enable_so_sdio_io_rw_ext_helper_fndecl_19641 sdio_io_rw_ext_helper fndecl 6 19641 NULL
160350 +enable_so_set_fp_int_qed_common_ops_19644 set_fp_int qed_common_ops 0 19644 NULL nohasharray
160351 +enable_so_pcfg_ofsh_cyttsp4_sysinfo_data_19644 pcfg_ofsh cyttsp4_sysinfo_data 0 19644 &enable_so_set_fp_int_qed_common_ops_19644
160352 +enable_so_memory_maker_code_mspro_sys_info_19650 memory_maker_code mspro_sys_info 0 19650 NULL
160353 +enable_so_af9033_rd_regs_fndecl_19652 af9033_rd_regs fndecl 4 19652 NULL
160354 +enable_so_shadow_step_fndecl_19653 shadow_step fndecl 2 19653 NULL
160355 +enable_so_thermal_false_irq_read_fndecl_19654 thermal_false_irq_read fndecl 3 19654 NULL
160356 +enable_so_hr_itemcount_hsm_request_19657 hr_itemcount hsm_request 0 19657 NULL
160357 +enable_so_configfs_dir_lseek_fndecl_19658 configfs_dir_lseek fndecl 2 19658 NULL
160358 +enable_so_btrfs_file_extent_inline_item_len_fndecl_19660 btrfs_file_extent_inline_item_len fndecl 0 19660 NULL
160359 +enable_so_count_kernel_pbes_fndecl_19664 count_kernel_pbes fndecl 0 19664 NULL
160360 +enable_so_tty_register_device_fndecl_19667 tty_register_device fndecl 2 19667 NULL
160361 +enable_so_usdhi6_error_code_fndecl_19670 usdhi6_error_code fndecl 0 19670 NULL
160362 +enable_so_videobuf_vmalloc_to_sg_fndecl_19671 videobuf_vmalloc_to_sg fndecl 2 19671 NULL
160363 +enable_so_fsl_edma_prep_slave_sg_fndecl_19672 fsl_edma_prep_slave_sg fndecl 3 19672 NULL
160364 +enable_so_recv_intr_pipe_us_data_19678 recv_intr_pipe us_data 0 19678 NULL
160365 +enable_so_bch_alloc_fndecl_19682 bch_alloc fndecl 1 19682 NULL
160366 +enable_so_depth_em28xx_fmt_19696 depth em28xx_fmt 0 19696 NULL nohasharray
160367 +enable_so_size_pkt_hdr_19696 size pkt_hdr 0 19696 &enable_so_depth_em28xx_fmt_19696 nohasharray
160368 +enable_so_pcnt_bits_ubifs_info_19696 pcnt_bits ubifs_info 0 19696 &enable_so_size_pkt_hdr_19696 nohasharray
160369 +enable_so_prealloc_bufsz_comedi_async_19696 prealloc_bufsz comedi_async 0 19696 &enable_so_pcnt_bits_ubifs_info_19696
160370 +enable_so_st_fixed_buffer_size_vardecl_st_c_19699 st_fixed_buffer_size vardecl_st.c 0 19699 NULL
160371 +enable_so_xfs_buf_get_maps_fndecl_19702 xfs_buf_get_maps fndecl 2 19702 NULL
160372 +enable_so_gfs2_file_splice_write_fndecl_19705 gfs2_file_splice_write fndecl 4 19705 NULL
160373 +enable_so_acpi_read_fast_fndecl_19709 acpi_read_fast fndecl 3-2 19709 NULL
160374 +enable_so_max_blksize_sdio_func_19715 max_blksize sdio_func 0 19715 NULL
160375 +enable_so_LastFreeEUN_NFTLrecord_19717 LastFreeEUN NFTLrecord 0 19717 NULL
160376 +enable_so_slots_end_qxl_rom_19718 slots_end qxl_rom 0 19718 NULL
160377 +enable_so_fat32_info_sector_fat_bios_param_block_19727 fat32_info_sector fat_bios_param_block 0 19727 NULL
160378 +enable_so_msc_win_to_user_fndecl_19728 msc_win_to_user fndecl 3 19728 NULL
160379 +enable_so_small_smb_init_no_tc_fndecl_19738 small_smb_init_no_tc fndecl 2 19738 NULL
160380 +enable_so_max_active_conns_bnx2i_hba_19740 max_active_conns bnx2i_hba 0 19740 NULL
160381 +enable_so_bytesperline_v4l2_pix_format_19741 bytesperline v4l2_pix_format 0 19741 NULL
160382 +enable_so_writelen_iuu_private_19742 writelen iuu_private 0 19742 NULL
160383 +enable_so_dccph_ack_nr_low_dccp_hdr_ack_bits_19743 dccph_ack_nr_low dccp_hdr_ack_bits 0 19743 NULL
160384 +enable_so_ntb_netdev_change_mtu_fndecl_19744 ntb_netdev_change_mtu fndecl 2 19744 NULL
160385 +enable_so_nftl_write_oob_fndecl_19745 nftl_write_oob fndecl 2-3 19745 NULL nohasharray
160386 +enable_so_nmap_ib_umem_19745 nmap ib_umem 0 19745 &enable_so_nftl_write_oob_fndecl_19745
160387 +enable_so_tm6000_read_fndecl_19748 tm6000_read fndecl 3 19748 NULL
160388 +enable_so_mpt_raid_phys_disk_get_num_paths_fndecl_19752 mpt_raid_phys_disk_get_num_paths fndecl 0 19752 NULL
160389 +enable_so_instances_vardecl_iio_simple_dummy_c_19753 instances vardecl_iio_simple_dummy.c 0 19753 NULL
160390 +enable_so_si2168_i2c_master_send_unlocked_fndecl_19760 si2168_i2c_master_send_unlocked fndecl 3 19760 NULL
160391 +enable_so_c67x00_giveback_urb_fndecl_19761 c67x00_giveback_urb fndecl 3 19761 NULL
160392 +enable_so_vram_base_qxl_device_19773 vram_base qxl_device 0 19773 NULL
160393 +enable_so_onenand_read_ops_nolock_fndecl_19774 onenand_read_ops_nolock fndecl 2 19774 NULL
160394 +enable_so_fw_mem_block_size_wl1271_19784 fw_mem_block_size wl1271 0 19784 NULL
160395 +enable_so_gss_decrypt_xdr_buf_fndecl_19786 gss_decrypt_xdr_buf fndecl 3 19786 NULL
160396 +enable_so_get_alua_req_fndecl_19797 get_alua_req fndecl 3 19797 NULL
160397 +enable_so_pvscsi_get_max_targets_fndecl_19802 pvscsi_get_max_targets fndecl 0 19802 NULL
160398 +enable_so_fromlen_nfs3_symlinkargs_19803 fromlen nfs3_symlinkargs 0 19803 NULL
160399 +enable_so_exit_error_msb_data_19810 exit_error msb_data 0 19810 NULL
160400 +enable_so_len_rpcsec_gss_oid_19814 len rpcsec_gss_oid 0 19814 NULL
160401 +enable_so_eeprom_len_niu_19815 eeprom_len niu 0 19815 NULL
160402 +enable_so_size_vring_19817 size vring 0 19817 NULL
160403 +enable_so_ip_send_unicast_reply_fndecl_19820 ip_send_unicast_reply fndecl 7 19820 NULL
160404 +enable_so_packet_space_tso_state_19824 packet_space tso_state 0 19824 NULL
160405 +enable_so_vring_new_virtqueue_fndecl_19828 vring_new_virtqueue fndecl 2 19828 NULL
160406 +enable_so___nfs4_get_acl_uncached_fndecl_19830 __nfs4_get_acl_uncached fndecl 3 19830 NULL
160407 +enable_so__osd_req_list_objects_fndecl_19839 _osd_req_list_objects fndecl 6-2 19839 NULL
160408 +enable_so_buf_used_uvc_video_queue_19843 buf_used uvc_video_queue 0 19843 NULL
160409 +enable_so_rpos_cm4000_dev_19844 rpos cm4000_dev 0 19844 NULL
160410 +enable_so_fbmem_start_viafb_dev_19849 fbmem_start viafb_dev 0 19849 NULL
160411 +enable_so_num_jumbo_rxd_qlcnic_adapter_19850 num_jumbo_rxd qlcnic_adapter 0 19850 NULL
160412 +enable_so_xen_released_pages_vardecl_19851 xen_released_pages vardecl 0 19851 NULL
160413 +enable_so_qp_guest_endpoint_create_fndecl_19852 qp_guest_endpoint_create fndecl 5-4 19852 NULL nohasharray
160414 +enable_so_real_size_in_page_qed_ilt_cli_blk_19852 real_size_in_page qed_ilt_cli_blk 0 19852 &enable_so_qp_guest_endpoint_create_fndecl_19852
160415 +enable_so_i5k_channel_probe_fndecl_19853 i5k_channel_probe fndecl 2 19853 NULL
160416 +enable_so_ext4_direct_IO_fndecl_19865 ext4_direct_IO fndecl 3 19865 NULL
160417 +enable_so_max_msix_vectors_ixgbe_mac_info_19874 max_msix_vectors ixgbe_mac_info 0 19874 NULL
160418 +enable_so_ath6kl_force_roam_write_fndecl_19881 ath6kl_force_roam_write fndecl 3 19881 NULL
160419 +enable_so_msb_do_write_request_fndecl_19885 msb_do_write_request fndecl 0-2 19885 NULL
160420 +enable_so_size_sst_block_19887 size sst_block 0 19887 NULL nohasharray
160421 +enable_so_goldfish_audio_write_fndecl_19887 goldfish_audio_write fndecl 3 19887 &enable_so_size_sst_block_19887
160422 +enable_so_ide_find_dma_mode_fndecl_19889 ide_find_dma_mode fndecl 0 19889 NULL
160423 +enable_so_register_sound_midi_fndecl_19894 register_sound_midi fndecl 2 19894 NULL
160424 +enable_so_truncate_inline_extent_fndecl_19906 truncate_inline_extent fndecl 5 19906 NULL
160425 +enable_so___pool_find_fndecl_19911 __pool_find fndecl 3 19911 NULL
160426 +enable_so_count_strings_fndecl_19912 count_strings fndecl 0 19912 NULL
160427 +enable_so_slot_dlm_slot_19913 slot dlm_slot 0 19913 NULL
160428 +enable_so_maxLen_group_data_19920 maxLen group_data 0 19920 NULL nohasharray
160429 +enable_so_get_connectors_for_crtc_fndecl_19920 get_connectors_for_crtc fndecl 0 19920 &enable_so_maxLen_group_data_19920
160430 +enable_so_cp_change_mtu_fndecl_19922 cp_change_mtu fndecl 2 19922 NULL nohasharray
160431 +enable_so_xt_compat_add_offset_fndecl_19922 xt_compat_add_offset fndecl 0 19922 &enable_so_cp_change_mtu_fndecl_19922
160432 +enable_so_sector_number_phys_req_19923 sector_number phys_req 0 19923 NULL
160433 +enable_so_dev_init_pre_alt_sd_19924 dev_init_pre_alt sd 0 19924 NULL
160434 +enable_so_brcmu_dbg_hex_dump_fndecl_19925 brcmu_dbg_hex_dump fndecl 2 19925 NULL
160435 +enable_so___usbnet_read_cmd_fndecl_19928 __usbnet_read_cmd fndecl 7 19928 NULL
160436 +enable_so_iic_tpm_write_generic_fndecl_19931 iic_tpm_write_generic fndecl 3 19931 NULL
160437 +enable_so_dvb_ringbuffer_pkt_read_user_fndecl_19932 dvb_ringbuffer_pkt_read_user fndecl 2-3-5 19932 NULL
160438 +enable_so_ima_eventdigest_init_common_fndecl_19937 ima_eventdigest_init_common fndecl 2 19937 NULL
160439 +enable_so_unix_stream_sendmsg_fndecl_19940 unix_stream_sendmsg fndecl 3 19940 NULL
160440 +enable_so_max_buckets_crush_map_19942 max_buckets crush_map 0 19942 NULL
160441 +enable_so_ieee802154_nl_fill_phy_fndecl_19951 ieee802154_nl_fill_phy fndecl 0 19951 NULL
160442 +enable_so_wusbhc_giveback_urb_fndecl_19954 wusbhc_giveback_urb fndecl 3 19954 NULL
160443 +enable_so_check_crc_fndecl_19956 check_crc fndecl 2 19956 NULL
160444 +enable_so_snd_rawmidi_kernel_read_fndecl_19963 snd_rawmidi_kernel_read fndecl 3 19963 NULL
160445 +enable_so_ipoib_sendq_size_vardecl_19969 ipoib_sendq_size vardecl 0 19969 NULL
160446 +enable_so_src_len_ccp_passthru_engine_19970 src_len ccp_passthru_engine 0 19970 NULL
160447 +enable_so_vga_arb_read_fndecl_19973 vga_arb_read fndecl 3 19973 NULL
160448 +enable_so_le_max_key_size_read_fndecl_19975 le_max_key_size_read fndecl 3 19975 NULL
160449 +enable_so_cmd_hix5hd2_desc_19977 cmd hix5hd2_desc 0 19977 NULL
160450 +enable_so_protocol_gre_base_hdr_19981 protocol gre_base_hdr 0 19981 NULL
160451 +enable_so_size_packet_settings_19984 size packet_settings 0 19984 NULL
160452 +enable_so_m5mols_read_fndecl_19986 m5mols_read fndecl 2 19986 NULL
160453 +enable_so_palign_qib_devdata_19988 palign qib_devdata 0 19988 NULL
160454 +enable_so_f2fs_insert_range_fndecl_19990 f2fs_insert_range fndecl 2-3 19990 NULL
160455 +enable_so_hid_register_field_fndecl_19993 hid_register_field fndecl 3-2 19993 NULL
160456 +enable_so_ocfs2_defrag_extent_fndecl_19994 ocfs2_defrag_extent fndecl 3-2 19994 NULL
160457 +enable_so_of_get_nand_ecc_step_size_fndecl_20001 of_get_nand_ecc_step_size fndecl 0 20001 NULL
160458 +enable_so_move_extent_per_page_fndecl_20004 move_extent_per_page fndecl 6-5-4-3 20004 NULL
160459 +enable_so_copybreak_vardecl_sky2_c_20006 copybreak vardecl_sky2.c 0 20006 NULL
160460 +enable_so_def_bpp_sm501_platdata_fbsub_20007 def_bpp sm501_platdata_fbsub 0 20007 NULL
160461 +enable_so_tx_nr_rings_per_tc_bnxt_20008 tx_nr_rings_per_tc bnxt 0 20008 NULL
160462 +enable_so_i_inline_size_ext4_inode_info_20015 i_inline_size ext4_inode_info 0 20015 NULL
160463 +enable_so_y_drm_fb_helper_crtc_20016 y drm_fb_helper_crtc 0 20016 NULL nohasharray
160464 +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
160465 +enable_so_ctl_dma_cm109_dev_20023 ctl_dma cm109_dev 0 20023 NULL
160466 +enable_so_zone_absent_pages_in_node_fndecl_20027 zone_absent_pages_in_node fndecl 0 20027 NULL nohasharray
160467 +enable_so_build_skb_fndecl_20027 build_skb fndecl 2 20027 &enable_so_zone_absent_pages_in_node_fndecl_20027
160468 +enable_so_nr_max310x_devtype_20030 nr max310x_devtype 0 20030 NULL
160469 +enable_so_sample_rate_lola_20032 sample_rate lola 0 20032 NULL
160470 +enable_so_block_size_osst_tape_20034 block_size osst_tape 0 20034 NULL
160471 +enable_so_rcvhdrentsize_qib_devdata_20040 rcvhdrentsize qib_devdata 0 20040 NULL
160472 +enable_so_nr_luns_nvm_dev_20042 nr_luns nvm_dev 0 20042 NULL
160473 +enable_so_batadv_interface_change_mtu_fndecl_20043 batadv_interface_change_mtu fndecl 2 20043 NULL nohasharray
160474 +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
160475 +enable_so_ocrdma_alloc_lkey_fndecl_20045 ocrdma_alloc_lkey fndecl 5 20045 NULL
160476 +enable_so_sys_process_vm_writev_fndecl_20051 sys_process_vm_writev fndecl 3-5 20051 NULL
160477 +enable_so_bfad_iocmd_port_cfg_bbcr_fndecl_20055 bfad_iocmd_port_cfg_bbcr fndecl 0 20055 NULL
160478 +enable_so_prctl_set_auxv_fndecl_20068 prctl_set_auxv fndecl 3 20068 NULL
160479 +enable_so_bfad_iocmd_fcport_get_stats_fndecl_20078 bfad_iocmd_fcport_get_stats fndecl 0 20078 NULL
160480 +enable_so_max_rqst_sz_nfs4_channel_attrs_20083 max_rqst_sz nfs4_channel_attrs 0 20083 NULL nohasharray
160481 +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
160482 +enable_so_compat_rawv6_setsockopt_fndecl_20084 compat_rawv6_setsockopt fndecl 5 20084 NULL
160483 +enable_so_rxsize_grcan_device_config_20087 rxsize grcan_device_config 0 20087 NULL
160484 +enable_so_bnx2_set_rx_ring_size_fndecl_20092 bnx2_set_rx_ring_size fndecl 2 20092 NULL
160485 +enable_so_r8712_read32_fndecl_20095 r8712_read32 fndecl 0 20095 NULL
160486 +enable_so_reg_count_cs_extent_def_20096 reg_count cs_extent_def 0 20096 NULL
160487 +enable_so_dm_bufio_get_block_number_fndecl_20097 dm_bufio_get_block_number fndecl 0 20097 NULL nohasharray
160488 +enable_so_get_hwirq_msi_domain_ops_20097 get_hwirq msi_domain_ops 0 20097 &enable_so_dm_bufio_get_block_number_fndecl_20097
160489 +enable_so_qla82xx_pci_mem_write_direct_fndecl_20099 qla82xx_pci_mem_write_direct fndecl 2 20099 NULL
160490 +enable_so_minimum_v4l2_ctrl_20103 minimum v4l2_ctrl 0 20103 NULL
160491 +enable_so_do_mincore_fndecl_20105 do_mincore fndecl 0-2-1 20105 NULL
160492 +enable_so_max_acl_len_hci_rp_read_data_block_size_20119 max_acl_len hci_rp_read_data_block_size 0 20119 NULL
160493 +enable_so_source_sctphdr_20129 source sctphdr 0 20129 NULL nohasharray
160494 +enable_so_ao_chans_pci224_board_20129 ao_chans pci224_board 0 20129 &enable_so_source_sctphdr_20129
160495 +enable_so_btrfs_punch_hole_fndecl_20130 btrfs_punch_hole fndecl 2-3 20130 NULL
160496 +enable_so_in_ep_snd_usb_midi_endpoint_info_20132 in_ep snd_usb_midi_endpoint_info 0 20132 NULL
160497 +enable_so_data_sectors_per_block_partition_20138 data_sectors_per_block partition 0 20138 NULL
160498 +enable_so_pos_f_hidg_req_list_20147 pos f_hidg_req_list 0 20147 NULL
160499 +enable_so_sk_protocol_sock_20150 sk_protocol sock 0 20150 NULL
160500 +enable_so_ep_in_if_usb_card_20154 ep_in if_usb_card 0 20154 NULL
160501 +enable_so_tpci200_create_device_fndecl_20157 tpci200_create_device fndecl 2 20157 NULL
160502 +enable_so_trans_usbhs_pkt_20158 trans usbhs_pkt 0 20158 NULL nohasharray
160503 +enable_so_byte_cnt_mlx5_cqe64_20158 byte_cnt mlx5_cqe64 0 20158 &enable_so_trans_usbhs_pkt_20158
160504 +enable_so_snd_mixart_BA1_read_fndecl_20169 snd_mixart_BA1_read fndecl 5 20169 NULL
160505 +enable_so_nr_gpio_tle62x0_state_20178 nr_gpio tle62x0_state 0 20178 NULL
160506 +enable_so_snd_timer_user_status_fndecl_20180 snd_timer_user_status fndecl 0 20180 NULL
160507 +enable_so_usb_ftdi_elan_edset_single_fndecl_20181 usb_ftdi_elan_edset_single fndecl 0 20181 NULL nohasharray
160508 +enable_so_swapRB_sd_20181 swapRB sd 0 20181 &enable_so_usb_ftdi_elan_edset_single_fndecl_20181
160509 +enable_so___kmalloc_track_caller_fndecl_20188 __kmalloc_track_caller fndecl 1 20188 NULL
160510 +enable_so_lookup_memtype_fndecl_20192 lookup_memtype fndecl 1 20192 NULL
160511 +enable_so_agp_memory_reserved_vardecl_20196 agp_memory_reserved vardecl 0 20196 NULL nohasharray
160512 +enable_so_iram_base_intel_sst_drv_20196 iram_base intel_sst_drv 0 20196 &enable_so_agp_memory_reserved_vardecl_20196
160513 +enable_so_qxl_gem_object_create_with_handle_fndecl_20198 qxl_gem_object_create_with_handle fndecl 4 20198 NULL
160514 +enable_so_fpage_size_genwqe_sgl_20199 fpage_size genwqe_sgl 0 20199 NULL
160515 +enable_so_sectors_per_block_bits_dm_bufio_client_20202 sectors_per_block_bits dm_bufio_client 0 20202 NULL
160516 +enable_so_max_frame_size__mgslpc_info_20204 max_frame_size _mgslpc_info 0 20204 NULL
160517 +enable_so_sbq_len_rx_ring_20205 sbq_len rx_ring 0 20205 NULL
160518 +enable_so_kfifo_copy_from_user_fndecl_20208 kfifo_copy_from_user fndecl 3-4-0 20208 NULL
160519 +enable_so_dma_limit_tg3_20210 dma_limit tg3 0 20210 NULL
160520 +enable_so_objlayout_write_done_fndecl_20211 objlayout_write_done fndecl 2 20211 NULL nohasharray
160521 +enable_so_sglen_usbtest_param_20211 sglen usbtest_param 0 20211 &enable_so_objlayout_write_done_fndecl_20211
160522 +enable_so_compr_fill_fndecl_20214 compr_fill fndecl 2 20214 NULL
160523 +enable_so_rx_buffer_size_freelQ_20218 rx_buffer_size freelQ 0 20218 NULL
160524 +enable_so_dmah_acm_wb_20221 dmah acm_wb 0 20221 NULL nohasharray
160525 +enable_so_sound_write_fndecl_20221 sound_write fndecl 3 20221 &enable_so_dmah_acm_wb_20221
160526 +enable_so_produce_va_vmci_qp_page_file_info_20224 produce_va vmci_qp_page_file_info 0 20224 NULL
160527 +enable_so_use_sg_osst_buffer_20225 use_sg osst_buffer 0 20225 NULL
160528 +enable_so_ll_rw_extents_stats_seq_write_fndecl_20234 ll_rw_extents_stats_seq_write fndecl 3 20234 NULL
160529 +enable_so_setup_sgl_buf_fndecl_20237 setup_sgl_buf fndecl 4 20237 NULL
160530 +enable_so_phys_map_info_20239 phys map_info 0 20239 NULL
160531 +enable_so_mac_find_mode_fndecl_20243 mac_find_mode fndecl 4 20243 NULL
160532 +enable_so_rx_agg_bmap_size_bnxt_rx_ring_info_20244 rx_agg_bmap_size bnxt_rx_ring_info 0 20244 NULL
160533 +enable_so_vtotal_psb_pipe_20245 vtotal psb_pipe 0 20245 NULL
160534 +enable_so_nilfs_read_super_block_fndecl_20246 nilfs_read_super_block fndecl 3-2 20246 NULL
160535 +enable_so_size_drm_virtgpu_resource_create_20248 size drm_virtgpu_resource_create 0 20248 NULL nohasharray
160536 +enable_so_i2c_writebytes_fndecl_20248 i2c_writebytes fndecl 3 20248 &enable_so_size_drm_virtgpu_resource_create_20248
160537 +enable_so_max_size_inet_frag_queue_20249 max_size inet_frag_queue 0 20249 NULL
160538 +enable_so_ip_append_page_fndecl_20261 ip_append_page fndecl 5-4 20261 NULL
160539 +enable_so_value_len_ocfs2_security_xattr_info_20265 value_len ocfs2_security_xattr_info 0 20265 NULL
160540 +enable_so_build_header_fndecl_20275 build_header fndecl 4-2 20275 NULL
160541 +enable_so_y_skip_top_mt9t031_20278 y_skip_top mt9t031 0 20278 NULL
160542 +enable_so_fifo_size_eg20t_port_20279 fifo_size eg20t_port 0 20279 NULL
160543 +enable_so_size_vx_ibl_info_20282 size vx_ibl_info 0 20282 NULL
160544 +enable_so_soc_mbus_bytes_per_line_fndecl_20288 soc_mbus_bytes_per_line fndecl 0-1 20288 NULL
160545 +enable_so_kone_receive_fndecl_20289 kone_receive fndecl 4 20289 NULL
160546 +enable_so___gre_xmit_fndecl_20291 __gre_xmit fndecl 4 20291 NULL
160547 +enable_so_blk_queue_io_min_fndecl_20293 blk_queue_io_min fndecl 2 20293 NULL
160548 +enable_so_gen8_get_total_gtt_size_fndecl_20302 gen8_get_total_gtt_size fndecl 0-1 20302 NULL nohasharray
160549 +enable_so_total_blocks_partition_20302 total_blocks partition 0 20302 &enable_so_gen8_get_total_gtt_size_fndecl_20302 nohasharray
160550 +enable_so_round_pipe_size_fndecl_20302 round_pipe_size fndecl 0 20302 &enable_so_total_blocks_partition_20302
160551 +enable_so_mpegbufs_vardecl_cx231xx_417_c_20303 mpegbufs vardecl_cx231xx-417.c 0 20303 NULL
160552 +enable_so_fallback_aper_order_vardecl_20308 fallback_aper_order vardecl 0 20308 NULL
160553 +enable_so_xfs_dir2_leaf_trim_data_fndecl_20310 xfs_dir2_leaf_trim_data fndecl 3 20310 NULL nohasharray
160554 +enable_so_index_vardecl_nm256_c_20310 index vardecl_nm256.c 0 20310 &enable_so_xfs_dir2_leaf_trim_data_fndecl_20310
160555 +enable_so_cx18_read_pos_fndecl_20312 cx18_read_pos fndecl 3 20312 NULL
160556 +enable_so_cas_change_mtu_fndecl_20320 cas_change_mtu fndecl 2 20320 NULL
160557 +enable_so_ati_create_gatt_pages_fndecl_20321 ati_create_gatt_pages fndecl 1 20321 NULL
160558 +enable_so_max_rxsz_cxgbi_ddp_info_20322 max_rxsz cxgbi_ddp_info 0 20322 NULL nohasharray
160559 +enable_so_num_cvts_hdmi_spec_20322 num_cvts hdmi_spec 0 20322 &enable_so_max_rxsz_cxgbi_ddp_info_20322
160560 +enable_so_len_cpl_iscsi_hdr_norss_20324 len cpl_iscsi_hdr_norss 0 20324 NULL
160561 +enable_so_i_ecryptfs_parse_tag_70_packet_silly_stack_20325 i ecryptfs_parse_tag_70_packet_silly_stack 0 20325 NULL
160562 +enable_so_at24_eeprom_read_fndecl_20329 at24_eeprom_read fndecl 4-0 20329 NULL
160563 +enable_so_qlf_blkno_xfs_dq_logformat_20330 qlf_blkno xfs_dq_logformat 0 20330 NULL
160564 +enable_so_ext4_ext_put_gap_in_cache_fndecl_20333 ext4_ext_put_gap_in_cache fndecl 3 20333 NULL
160565 +enable_so_cxgbi_alloc_big_mem_fndecl_20336 cxgbi_alloc_big_mem fndecl 1 20336 NULL
160566 +enable_so_ss_out_channels_hdspm_20338 ss_out_channels hdspm 0 20338 NULL
160567 +enable_so_offset_videobuf_dmabuf_20339 offset videobuf_dmabuf 0 20339 NULL
160568 +enable_so_translate_gpa_kvm_mmu_20350 translate_gpa kvm_mmu 0 20350 NULL nohasharray
160569 +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
160570 +enable_so_sections_pe_hdr_20351 sections pe_hdr 0 20351 NULL
160571 +enable_so_snap_type_rfc1042_hdr_20355 snap_type rfc1042_hdr 0 20355 NULL
160572 +enable_so_memblock_find_in_range_fndecl_20356 memblock_find_in_range fndecl 0-4-3-1-2 20356 NULL
160573 +enable_so_chipshift_alauda_card_info_20364 chipshift alauda_card_info 0 20364 NULL
160574 +enable_so_type_usbdevfs_urb_20367 type usbdevfs_urb 0 20367 NULL
160575 +enable_so_scsi_debug_num_tgts_vardecl_scsi_debug_c_20370 scsi_debug_num_tgts vardecl_scsi_debug.c 0 20370 NULL
160576 +enable_so_ll_rw_offset_stats_seq_write_fndecl_20371 ll_rw_offset_stats_seq_write fndecl 3 20371 NULL
160577 +enable_so_hw_block_size_se_dev_attrib_20373 hw_block_size se_dev_attrib 0 20373 NULL nohasharray
160578 +enable_so_cfgctxts_qib_devdata_20373 cfgctxts qib_devdata 0 20373 &enable_so_hw_block_size_se_dev_attrib_20373
160579 +enable_so_nstamps_max_mask_recent_table_20374 nstamps_max_mask recent_table 0 20374 NULL
160580 +enable_so_drm_fb_helper_sys_read_fndecl_20376 drm_fb_helper_sys_read fndecl 3 20376 NULL
160581 +enable_so_xfs_qm_fill_state_fndecl_20384 xfs_qm_fill_state fndecl 4 20384 NULL nohasharray
160582 +enable_so_ms_transfer_data_fndecl_20384 ms_transfer_data fndecl 0 20384 &enable_so_xfs_qm_fill_state_fndecl_20384
160583 +enable_so_opts1_rx_desc_20387 opts1 rx_desc 0 20387 NULL
160584 +enable_so_btrfs_del_items_fndecl_20388 btrfs_del_items fndecl 5 20388 NULL
160585 +enable_so_sw_nchannels_stm_data_20389 sw_nchannels stm_data 0 20389 NULL
160586 +enable_so_periodic_size_fotg210_hcd_20395 periodic_size fotg210_hcd 0 20395 NULL
160587 +enable_so_leb_size_ubi_device_20396 leb_size ubi_device 0 20396 NULL
160588 +enable_so_inode_efs_dentry_20401 inode efs_dentry 0 20401 NULL
160589 +enable_so_xfs_qm_dqusage_adjust_fndecl_20403 xfs_qm_dqusage_adjust fndecl 2 20403 NULL nohasharray
160590 +enable_so_regulator_register_always_on_fndecl_20403 regulator_register_always_on fndecl 1 20403 &enable_so_xfs_qm_dqusage_adjust_fndecl_20403
160591 +enable_so_pwr_rcvd_bcns_cnt_read_fndecl_20405 pwr_rcvd_bcns_cnt_read fndecl 3 20405 NULL
160592 +enable_so_diversity_total_num_of_toggles_read_fndecl_20407 diversity_total_num_of_toggles_read fndecl 3 20407 NULL
160593 +enable_so_mc_rreg_radeon_device_20418 mc_rreg radeon_device 0 20418 NULL
160594 +enable_so_sd_log_head_gfs2_sbd_20435 sd_log_head gfs2_sbd 0 20435 NULL
160595 +enable_so_max_vblank_mt9v032_model_data_20437 max_vblank mt9v032_model_data 0 20437 NULL nohasharray
160596 +enable_so_blob_len_trusted_key_payload_20437 blob_len trusted_key_payload 0 20437 &enable_so_max_vblank_mt9v032_model_data_20437 nohasharray
160597 +enable_so_raw_skid_size_x509_certificate_20437 raw_skid_size x509_certificate 0 20437 &enable_so_blob_len_trusted_key_payload_20437
160598 +enable_so_ncp__vol2io_fndecl_20439 ncp__vol2io fndecl 5 20439 NULL
160599 +enable_so_gigaset_isoc_receive_fndecl_20447 gigaset_isoc_receive fndecl 2 20447 NULL
160600 +enable_so___smiapp_read_fndecl_20448 __smiapp_read fndecl 2 20448 NULL
160601 +enable_so_ib_max_size_mvumi_hba_20452 ib_max_size mvumi_hba 0 20452 NULL
160602 +enable_so_stride_banshee_reg_20459 stride banshee_reg 0 20459 NULL
160603 +enable_so_error_elp_while_rx_exch_read_fndecl_20460 error_elp_while_rx_exch_read fndecl 3 20460 NULL
160604 +enable_so_gigaset_if_receive_fndecl_20462 gigaset_if_receive fndecl 3 20462 NULL
160605 +enable_so_xfs_setsize_buftarg_fndecl_20465 xfs_setsize_buftarg fndecl 2 20465 NULL
160606 +enable_so_offset_scif_window_iter_20468 offset scif_window_iter 0 20468 NULL nohasharray
160607 +enable_so_scsi_end_request_fndecl_20468 scsi_end_request fndecl 3-4-2 20468 &enable_so_offset_scif_window_iter_20468
160608 +enable_so_tx_data_fndecl_20470 tx_data fndecl 4-3 20470 NULL
160609 +enable_so_wMaxCommand_usb_cdc_dmm_desc_20473 wMaxCommand usb_cdc_dmm_desc 0 20473 NULL
160610 +enable_so_iptunnel_pull_header_fndecl_20476 iptunnel_pull_header fndecl 3-2 20476 NULL nohasharray
160611 +enable_so_vlen_nfsd3_readargs_20476 vlen nfsd3_readargs 0 20476 &enable_so_iptunnel_pull_header_fndecl_20476
160612 +enable_so_gsm_control_rls_fndecl_20490 gsm_control_rls fndecl 3 20490 NULL
160613 +enable_so_rose_recvmsg_fndecl_20491 rose_recvmsg fndecl 3 20491 NULL
160614 +enable_so_ext4_ext_insert_index_fndecl_20492 ext4_ext_insert_index fndecl 4 20492 NULL
160615 +enable_so_pref_width_vmw_display_unit_20493 pref_width vmw_display_unit 0 20493 NULL
160616 +enable_so_pageshift_sddr09_card_info_20494 pageshift sddr09_card_info 0 20494 NULL
160617 +enable_so_nrbchan_mISDNdevice_20497 nrbchan mISDNdevice 0 20497 NULL
160618 +enable_so_ocfs2_extend_xattr_bucket_fndecl_20499 ocfs2_extend_xattr_bucket fndecl 4 20499 NULL
160619 +enable_so___f2fs_add_link_fndecl_20502 __f2fs_add_link fndecl 4 20502 NULL nohasharray
160620 +enable_so_aac_rkt_ioremap_fndecl_20502 aac_rkt_ioremap fndecl 2 20502 &enable_so___f2fs_add_link_fndecl_20502
160621 +enable_so_nzones_adfs_discrecord_20503 nzones adfs_discrecord 0 20503 NULL nohasharray
160622 +enable_so_max_pfn_mapped_vardecl_20503 max_pfn_mapped vardecl 0 20503 &enable_so_nzones_adfs_discrecord_20503 nohasharray
160623 +enable_so_id_platform_device_20503 id platform_device 0 20503 &enable_so_max_pfn_mapped_vardecl_20503
160624 +enable_so_sysfs_create_group_fndecl_20504 sysfs_create_group fndecl 0 20504 NULL
160625 +enable_so_tty_port_register_device_attr_fndecl_20510 tty_port_register_device_attr fndecl 3 20510 NULL
160626 +enable_so_data_len_icmp_bxm_20511 data_len icmp_bxm 0 20511 NULL
160627 +enable_so_newImageSize_mpt_ioctl_replace_fw_20513 newImageSize mpt_ioctl_replace_fw 0 20513 NULL
160628 +enable_so_cifs_write_fndecl_20515 cifs_write fndecl 4 20515 NULL
160629 +enable_so_vdc_mem_base_vml_par_20521 vdc_mem_base vml_par 0 20521 NULL
160630 +enable_so_tclass_flowlabel_mlx5_qp_path_20522 tclass_flowlabel mlx5_qp_path 0 20522 NULL
160631 +enable_so_xtAppend_fndecl_20525 xtAppend fndecl 4 20525 NULL
160632 +enable_so_x86_emulate_instruction_fndecl_20526 x86_emulate_instruction fndecl 2 20526 NULL
160633 +enable_so_expand_downwards_fndecl_20533 expand_downwards fndecl 2 20533 NULL nohasharray
160634 +enable_so_sr_read_fndecl_20533 sr_read fndecl 3 20533 &enable_so_expand_downwards_fndecl_20533
160635 +enable_so_pnfs_generic_pg_init_write_fndecl_20539 pnfs_generic_pg_init_write fndecl 3 20539 NULL
160636 +enable_so_mlx5_core_req_pages_handler_fndecl_20540 mlx5_core_req_pages_handler fndecl 3 20540 NULL
160637 +enable_so_s_first_data_block_ext2_super_block_20541 s_first_data_block ext2_super_block 0 20541 NULL
160638 +enable_so_dti_buf_size_wahc_20547 dti_buf_size wahc 0 20547 NULL
160639 +enable_so_crtc_hdisplay_drm_display_mode_20548 crtc_hdisplay drm_display_mode 0 20548 NULL nohasharray
160640 +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
160641 +enable_so_dataflash_write_fndecl_20550 dataflash_write fndecl 2-3 20550 NULL
160642 +enable_so_dma_base_sst_pdata_20554 dma_base sst_pdata 0 20554 NULL
160643 +enable_so_wacom_calc_hid_res_fndecl_20558 wacom_calc_hid_res fndecl 1 20558 NULL
160644 +enable_so_mtdchar_writeoob_fndecl_20562 mtdchar_writeoob fndecl 3-4 20562 NULL
160645 +enable_so_sg_write_fndecl_20563 sg_write fndecl 3 20563 NULL
160646 +enable_so_free_extents_btrfs_free_space_ctl_20566 free_extents btrfs_free_space_ctl 0 20566 NULL
160647 +enable_so_isdn_readbchan_fndecl_20570 isdn_readbchan fndecl 5-0 20570 NULL
160648 +enable_so_nullb_indexes_vardecl_null_blk_c_20571 nullb_indexes vardecl_null_blk.c 0 20571 NULL
160649 +enable_so_check_defrag_in_cache_fndecl_20573 check_defrag_in_cache fndecl 3-2 20573 NULL
160650 +enable_so_hp_outs_auto_pin_cfg_20574 hp_outs auto_pin_cfg 0 20574 NULL
160651 +enable_so_fifo_size_pxa_ep_20587 fifo_size pxa_ep 0 20587 NULL
160652 +enable_so_nrof_flowrings_brcmf_pcie_shared_info_20590 nrof_flowrings brcmf_pcie_shared_info 0 20590 NULL
160653 +enable_so_pci_add_cap_save_buffer_fndecl_20593 pci_add_cap_save_buffer fndecl 3 20593 NULL
160654 +enable_so_target_complete_cmd_with_length_fndecl_20597 target_complete_cmd_with_length fndecl 3 20597 NULL
160655 +enable_so_max_deviceinfo_size_pnfs_layoutdriver_type_20599 max_deviceinfo_size pnfs_layoutdriver_type 0 20599 NULL
160656 +enable_so_bblog_shift_mdp_superblock_1_20604 bblog_shift mdp_superblock_1 0 20604 NULL
160657 +enable_so_get_alt_usb_function_20605 get_alt usb_function 0 20605 NULL nohasharray
160658 +enable_so_cdrom_read_block_fndecl_20605 cdrom_read_block fndecl 4-6 20605 &enable_so_get_alt_usb_function_20605
160659 +enable_so_ext4_inode_table_set_fndecl_20611 ext4_inode_table_set fndecl 3 20611 NULL
160660 +enable_so_nilfs_cpfile_set_snapshot_fndecl_20616 nilfs_cpfile_set_snapshot fndecl 2 20616 NULL
160661 +enable_so_ocfs2_allocate_refcount_tree_fndecl_20626 ocfs2_allocate_refcount_tree fndecl 2 20626 NULL
160662 +enable_so___nla_put_nohdr_fndecl_20631 __nla_put_nohdr fndecl 2 20631 NULL
160663 +enable_so_snd_pcm_lib_readv_transfer_fndecl_20635 snd_pcm_lib_readv_transfer fndecl 5 20635 NULL
160664 +enable_so_gx1_frame_buffer_size_fndecl_20638 gx1_frame_buffer_size fndecl 0 20638 NULL
160665 +enable_so_num_comp_vectors_ib_device_20639 num_comp_vectors ib_device 0 20639 NULL
160666 +enable_so_cursor_size_fbcon_ops_20640 cursor_size fbcon_ops 0 20640 NULL
160667 +enable_so_hpi_outstream_write_buf_fndecl_20645 hpi_outstream_write_buf fndecl 3 20645 NULL
160668 +enable_so_offset_iscsi_seq_20646 offset iscsi_seq 0 20646 NULL
160669 +enable_so_nr_pages_ore_io_state_20648 nr_pages ore_io_state 0 20648 NULL
160670 +enable_so_m_pblk_ext4_map_blocks_20649 m_pblk ext4_map_blocks 0 20649 NULL
160671 +enable_so_security_context_to_sid_default_fndecl_20663 security_context_to_sid_default fndecl 2 20663 NULL
160672 +enable_so_dlm_process_incoming_buffer_fndecl_20665 dlm_process_incoming_buffer fndecl 0 20665 NULL nohasharray
160673 +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
160674 +enable_so_kvm_handle_bad_page_fndecl_20668 kvm_handle_bad_page fndecl 2 20668 NULL
160675 +enable_so_shim_size_sst_res_info_20670 shim_size sst_res_info 0 20670 NULL
160676 +enable_so_nilfs_load_super_root_fndecl_20676 nilfs_load_super_root fndecl 3 20676 NULL
160677 +enable_so_max_qp_wr_ib_device_attr_20681 max_qp_wr ib_device_attr 0 20681 NULL
160678 +enable_so_btrfs_dir_name_len_fndecl_20686 btrfs_dir_name_len fndecl 0 20686 NULL
160679 +enable_so_write_to_8820_fndecl_20687 write_to_8820 fndecl 3 20687 NULL
160680 +enable_so_num_evt_qs_be_adapter_20688 num_evt_qs be_adapter 0 20688 NULL
160681 +enable_so_SyS_semtimedop_fndecl_20703 SyS_semtimedop fndecl 3 20703 NULL
160682 +enable_so_erase_size_vardecl_mtdram_c_20704 erase_size vardecl_mtdram.c 0 20704 NULL
160683 +enable_so_evtchn_read_fndecl_20706 evtchn_read fndecl 3 20706 NULL
160684 +enable_so_err_dev_e752x_dev_info_20708 err_dev e752x_dev_info 0 20708 NULL
160685 +enable_so_nilfs_sufile_do_free_fndecl_20709 nilfs_sufile_do_free fndecl 2 20709 NULL
160686 +enable_so_src_len_ccp_rsa_engine_20712 src_len ccp_rsa_engine 0 20712 NULL
160687 +enable_so_w_s5p_jpeg_q_data_20716 w s5p_jpeg_q_data 0 20716 NULL
160688 +enable_so_ip_blkno_ocfs2_inode_info_20717 ip_blkno ocfs2_inode_info 0 20717 NULL nohasharray
160689 +enable_so_len_asymmetric_key_id_20717 len asymmetric_key_id 0 20717 &enable_so_ip_blkno_ocfs2_inode_info_20717
160690 +enable_so_dlc_rx_msg_20720 dlc rx_msg 0 20720 NULL
160691 +enable_so_add_range_fndecl_20721 add_range fndecl 5-4 20721 NULL
160692 +enable_so_txq_data_size_ieee80211_hw_20725 txq_data_size ieee80211_hw 0 20725 NULL
160693 +enable_so_sv_nrthreads_svc_serv_20732 sv_nrthreads svc_serv 0 20732 NULL
160694 +enable_so_alloc_smp_resp_fndecl_20733 alloc_smp_resp fndecl 1 20733 NULL
160695 +enable_so_flush_data_end_io_fndecl_20735 flush_data_end_io fndecl 2 20735 NULL nohasharray
160696 +enable_so_stv0680_set_video_mode_fndecl_20735 stv0680_set_video_mode fndecl 0 20735 &enable_so_flush_data_end_io_fndecl_20735
160697 +enable_so_max_io_length_ore_layout_20738 max_io_length ore_layout 0 20738 NULL
160698 +enable_so_read_data_done_iscsi_cmd_20745 read_data_done iscsi_cmd 0 20745 NULL
160699 +enable_so_max_sge_qib_rq_20746 max_sge qib_rq 0 20746 NULL nohasharray
160700 +enable_so_msgbuflen_blogic_adapter_20746 msgbuflen blogic_adapter 0 20746 &enable_so_max_sge_qib_rq_20746
160701 +enable_so_rb_alloc_fndecl_20749 rb_alloc fndecl 1 20749 NULL
160702 +enable_so_sb_pseg_start_nilfs_segment_buffer_20750 sb_pseg_start nilfs_segment_buffer 0 20750 NULL
160703 +enable_so_ath6kl_wmi_probedssid_cmd_fndecl_20751 ath6kl_wmi_probedssid_cmd fndecl 2 20751 NULL nohasharray
160704 +enable_so_ttusb2_msg_fndecl_20751 ttusb2_msg fndecl 4 20751 &enable_so_ath6kl_wmi_probedssid_cmd_fndecl_20751
160705 +enable_so_TransferCount__MPI2_SCSI_IO_REPLY_20759 TransferCount _MPI2_SCSI_IO_REPLY 0 20759 NULL
160706 +enable_so_do_numa_page_fndecl_20764 do_numa_page fndecl 3 20764 NULL nohasharray
160707 +enable_so_r_readdir_offset_ceph_mds_request_20764 r_readdir_offset ceph_mds_request 0 20764 &enable_so_do_numa_page_fndecl_20764
160708 +enable_so_read_in_block_fndecl_20766 read_in_block fndecl 3 20766 NULL
160709 +enable_so_simple_write_to_buffer_fndecl_20769 simple_write_to_buffer fndecl 2-5 20769 NULL
160710 +enable_so_channels_min_snd_soc_pcm_stream_20771 channels_min snd_soc_pcm_stream 0 20771 NULL nohasharray
160711 +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
160712 +enable_so_ltab_sz_ubifs_info_20776 ltab_sz ubifs_info 0 20776 NULL
160713 +enable_so_fat_fats_fat_bios_param_block_20785 fat_fats fat_bios_param_block 0 20785 NULL
160714 +enable_so_orig_x_screen_info_20787 orig_x screen_info 0 20787 NULL nohasharray
160715 +enable_so_ncp_search_for_fileset_fndecl_20787 ncp_search_for_fileset fndecl 6 20787 &enable_so_orig_x_screen_info_20787
160716 +enable_so_final_block_in_request_dio_submit_20788 final_block_in_request dio_submit 0 20788 NULL
160717 +enable_so_map_size_pcmcia_socket_20792 map_size pcmcia_socket 0 20792 NULL
160718 +enable_so_max_seg_size_mmc_host_20795 max_seg_size mmc_host 0 20795 NULL nohasharray
160719 +enable_so_pos_vb2_fileio_buf_20795 pos vb2_fileio_buf 0 20795 &enable_so_max_seg_size_mmc_host_20795
160720 +enable_so_rds_iw_ring_init_fndecl_20797 rds_iw_ring_init fndecl 2 20797 NULL
160721 +enable_so_namelen_xfs_da_args_20803 namelen xfs_da_args 0 20803 NULL nohasharray
160722 +enable_so_win_sz_wmi_addba_req_event_20803 win_sz wmi_addba_req_event 0 20803 &enable_so_namelen_xfs_da_args_20803
160723 +enable_so_compat_sys_migrate_pages_fndecl_20806 compat_sys_migrate_pages fndecl 2 20806 NULL
160724 +enable_so_mgmt_index_event_fndecl_20813 mgmt_index_event fndecl 4 20813 NULL
160725 +enable_so_rcvidx_isac_20815 rcvidx isac 0 20815 NULL
160726 +enable_so_filldir_fndecl_20820 filldir fndecl 3 20820 NULL
160727 +enable_so_fill_write_buffer_fndecl_20821 fill_write_buffer fndecl 3 20821 NULL
160728 +enable_so_irq_msi_desc_20822 irq msi_desc 0 20822 NULL
160729 +enable_so_via686a_device_add_fndecl_20823 via686a_device_add fndecl 1 20823 NULL
160730 +enable_so_aux_size_dm_bufio_client_20827 aux_size dm_bufio_client 0 20827 NULL
160731 +enable_so_drm_fb_helper_single_fb_probe_fndecl_20828 drm_fb_helper_single_fb_probe fndecl 2 20828 NULL
160732 +enable_so_compat_do_ip6t_set_ctl_fndecl_20835 compat_do_ip6t_set_ctl fndecl 4 20835 NULL
160733 +enable_so_mempool_create_node_fndecl_20836 mempool_create_node fndecl 1 20836 NULL
160734 +enable_so_adv_smbus_read_byte_data_check_fndecl_20838 adv_smbus_read_byte_data_check fndecl 0 20838 NULL nohasharray
160735 +enable_so_num_crtc_radeon_device_20838 num_crtc radeon_device 0 20838 &enable_so_adv_smbus_read_byte_data_check_fndecl_20838
160736 +enable_so_alloc_context_fndecl_20841 alloc_context fndecl 1 20841 NULL
160737 +enable_so_pathlen_nfs3_symlinkargs_20843 pathlen nfs3_symlinkargs 0 20843 NULL
160738 +enable_so_udp_sendpage_fndecl_20845 udp_sendpage fndecl 4-3 20845 NULL nohasharray
160739 +enable_so_shmem_pread_slow_fndecl_20845 shmem_pread_slow fndecl 2-3 20845 &enable_so_udp_sendpage_fndecl_20845
160740 +enable_so_acpi_copy_property_array_u64_fndecl_20846 acpi_copy_property_array_u64 fndecl 0 20846 NULL nohasharray
160741 +enable_so_dma_init_coherent_memory_fndecl_20846 dma_init_coherent_memory fndecl 3 20846 &enable_so_acpi_copy_property_array_u64_fndecl_20846
160742 +enable_so_store_limit_l_fscache_object_20847 store_limit_l fscache_object 0 20847 NULL
160743 +enable_so_cur_page_block_dio_submit_20851 cur_page_block dio_submit 0 20851 NULL
160744 +enable_so_pkcs7_sig_note_signature_fndecl_20857 pkcs7_sig_note_signature fndecl 5 20857 NULL
160745 +enable_so_lpfc_bg_setup_bpl_fndecl_20862 lpfc_bg_setup_bpl fndecl 0 20862 NULL nohasharray
160746 +enable_so_uinput_ioctl_handler_fndecl_20862 uinput_ioctl_handler fndecl 2 20862 &enable_so_lpfc_bg_setup_bpl_fndecl_20862 nohasharray
160747 +enable_so_uvc_video_stats_dump_fndecl_20862 uvc_video_stats_dump fndecl 0 20862 &enable_so_uinput_ioctl_handler_fndecl_20862
160748 +enable_so_beb_rsvd_pebs_ubi_device_20863 beb_rsvd_pebs ubi_device 0 20863 NULL
160749 +enable_so_num_rx_descs_octeon_nic_if_config_20865 num_rx_descs octeon_nic_if_config 0 20865 NULL
160750 +enable_so_offset44_cm_req_msg_20869 offset44 cm_req_msg 0 20869 NULL nohasharray
160751 +enable_so_num_mlx4_resource_20869 num mlx4_resource 0 20869 &enable_so_offset44_cm_req_msg_20869
160752 +enable_so_length_iwl_ucode_tlv_20871 length iwl_ucode_tlv 0 20871 NULL
160753 +enable_so_btrfs_prealloc_file_range_fndecl_20872 btrfs_prealloc_file_range fndecl 3 20872 NULL
160754 +enable_so_nr_hotspot_blocks_smq_policy_20876 nr_hotspot_blocks smq_policy 0 20876 NULL
160755 +enable_so_max_q_per_vf_rcb_common_cb_20877 max_q_per_vf rcb_common_cb 0 20877 NULL
160756 +enable_so_usb_stor_intr_transfer_fndecl_20883 usb_stor_intr_transfer fndecl 3 20883 NULL
160757 +enable_so_cl_local_node_o2nm_cluster_20896 cl_local_node o2nm_cluster 0 20896 NULL
160758 +enable_so_idiag_info_size_inet_diag_handler_20898 idiag_info_size inet_diag_handler 0 20898 NULL
160759 +enable_so_num_rows_vardecl_arcfb_c_20902 num_rows vardecl_arcfb.c 0 20902 NULL
160760 +enable_so_radeon_vm_directory_size_fndecl_20909 radeon_vm_directory_size fndecl 0 20909 NULL
160761 +enable_so_aggr_size_tx_agg_len_read_fndecl_20910 aggr_size_tx_agg_len_read fndecl 3 20910 NULL
160762 +enable_so_write_adapter_mem_fndecl_20913 write_adapter_mem fndecl 3 20913 NULL
160763 +enable_so_n_dir_band_hpfs_super_block_20914 n_dir_band hpfs_super_block 0 20914 NULL nohasharray
160764 +enable_so_dvb_ringbuffer_pkt_write_fndecl_20914 dvb_ringbuffer_pkt_write fndecl 3 20914 &enable_so_n_dir_band_hpfs_super_block_20914
160765 +enable_so_btrfs_next_leaf_fndecl_20915 btrfs_next_leaf fndecl 0 20915 NULL
160766 +enable_so_zisofs_uncompress_block_fndecl_20917 zisofs_uncompress_block fndecl 2-3-6-0-4 20917 NULL
160767 +enable_so_mmap_piobufs_fndecl_20927 mmap_piobufs fndecl 4 20927 NULL
160768 +enable_so_qbuf_scan_fndecl_20933 qbuf_scan fndecl 3 20933 NULL
160769 +enable_so_pkey_index_mlx4_qp_path_20950 pkey_index mlx4_qp_path 0 20950 NULL
160770 +enable_so_gid_table_len_mthca_limits_20957 gid_table_len mthca_limits 0 20957 NULL
160771 +enable_so_npages_mlx5_buf_20958 npages mlx5_buf 0 20958 NULL
160772 +enable_so_calc_plane_fndecl_20962 calc_plane fndecl 0-2-1 20962 NULL
160773 +enable_so_range_start_writeback_control_20965 range_start writeback_control 0 20965 NULL
160774 +enable_so_dbDiscardAG_fndecl_20969 dbDiscardAG fndecl 0-3 20969 NULL
160775 +enable_so_count_cma_20973 count cma 0 20973 NULL nohasharray
160776 +enable_so_compat_sys_setsockopt_fndecl_20973 compat_sys_setsockopt fndecl 5 20973 &enable_so_count_cma_20973
160777 +enable_so_skd_preop_sg_list_fndecl_20975 skd_preop_sg_list fndecl 0 20975 NULL
160778 +enable_so_ieee80211_if_write_beacon_loss_fndecl_20979 ieee80211_if_write_beacon_loss fndecl 3 20979 NULL
160779 +enable_so_offset_fuse_notify_store_out_20985 offset fuse_notify_store_out 0 20985 NULL
160780 +enable_so_spidev_compat_ioc_message_fndecl_20986 spidev_compat_ioc_message fndecl 2 20986 NULL
160781 +enable_so_dy_fb_image_20988 dy fb_image 0 20988 NULL
160782 +enable_so_gfn_guest_walker32_20990 gfn guest_walker32 0 20990 NULL
160783 +enable_so_do_set_pte_fndecl_20994 do_set_pte fndecl 2 20994 NULL
160784 +enable_so_rate_ib_sa_mcmember_rec_20997 rate ib_sa_mcmember_rec 0 20997 NULL
160785 +enable_so_udf_direct_IO_fndecl_20999 udf_direct_IO fndecl 3 20999 NULL
160786 +enable_so_get_fd_set_fndecl_21001 get_fd_set fndecl 1 21001 NULL
160787 +enable_so_sst_hsw_module_set_param_fndecl_21007 sst_hsw_module_set_param fndecl 5 21007 NULL
160788 +enable_so_cxns_per_ctrl_hba_parameters_21008 cxns_per_ctrl hba_parameters 0 21008 NULL
160789 +enable_so_controller_function_mspro_sys_info_21011 controller_function mspro_sys_info 0 21011 NULL
160790 +enable_so_s_log_cluster_size_ext4_super_block_21014 s_log_cluster_size ext4_super_block 0 21014 NULL
160791 +enable_so_shrink_zone_span_fndecl_21018 shrink_zone_span fndecl 3-2 21018 NULL
160792 +enable_so_create_one_cdev_fndecl_21023 create_one_cdev fndecl 2 21023 NULL
160793 +enable_so___build_skb_fndecl_21024 __build_skb fndecl 2 21024 NULL
160794 +enable_so_minix_new_block_fndecl_21026 minix_new_block fndecl 0 21026 NULL
160795 +enable_so_bfad_iocmd_lport_get_rports_fndecl_21027 bfad_iocmd_lport_get_rports fndecl 0 21027 NULL
160796 +enable_so_count_debug_buffer_21028 count debug_buffer 0 21028 NULL
160797 +enable_so_nvram_write_fndecl_21029 nvram_write fndecl 3 21029 NULL
160798 +enable_so_efivarfs_file_read_fndecl_21030 efivarfs_file_read fndecl 3 21030 NULL
160799 +enable_so_comedi_buf_read_n_available_fndecl_21032 comedi_buf_read_n_available fndecl 0 21032 NULL
160800 +enable_so_fw_resource_count_efi_system_resource_table_21033 fw_resource_count efi_system_resource_table 0 21033 NULL nohasharray
160801 +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
160802 +enable_so_start_range_21034 start range 0 21034 NULL
160803 +enable_so_crtc_vdisplay_drm_display_mode_21037 crtc_vdisplay drm_display_mode 0 21037 NULL
160804 +enable_so_garp_attr_create_fndecl_21048 garp_attr_create fndecl 3 21048 NULL
160805 +enable_so_prep_umr_reg_wqe_fndecl_21050 prep_umr_reg_wqe fndecl 5 21050 NULL
160806 +enable_so_erase_shift_onenand_chip_21052 erase_shift onenand_chip 0 21052 NULL nohasharray
160807 +enable_so_tx_queues_rt2x00_ops_21052 tx_queues rt2x00_ops 0 21052 &enable_so_erase_shift_onenand_chip_21052
160808 +enable_so_xfs_alloc_min_freelist_fndecl_21056 xfs_alloc_min_freelist fndecl 0 21056 NULL
160809 +enable_so_size_nvkm_memory_func_21058 size nvkm_memory_func 0 21058 NULL
160810 +enable_so_SyS_move_pages_fndecl_21059 SyS_move_pages fndecl 2 21059 NULL
160811 +enable_so_chaoskey_rng_read_fndecl_21064 chaoskey_rng_read fndecl 3 21064 NULL
160812 +enable_so___send_prepared_auth_request_fndecl_21067 __send_prepared_auth_request fndecl 2 21067 NULL
160813 +enable_so_ts_packet_count_cx231xx_tsport_21071 ts_packet_count cx231xx_tsport 0 21071 NULL
160814 +enable_so_usbip_recv_fndecl_21076 usbip_recv fndecl 3 21076 NULL
160815 +enable_so_vcs_write_fndecl_21077 vcs_write fndecl 3 21077 NULL
160816 +enable_so_thread_self_inum_vardecl_thread_self_c_21079 thread_self_inum vardecl_thread_self.c 0 21079 NULL
160817 +enable_so_consume_size_qp_entry_21087 consume_size qp_entry 0 21087 NULL
160818 +enable_so_queue_pages_test_walk_fndecl_21089 queue_pages_test_walk fndecl 2-1 21089 NULL
160819 +enable_so_max_counters_mlx4_caps_21095 max_counters mlx4_caps 0 21095 NULL
160820 +enable_so_ext4_block_truncate_page_fndecl_21098 ext4_block_truncate_page fndecl 3 21098 NULL
160821 +enable_so__fdt_node_end_offset_fndecl_21102 _fdt_node_end_offset fndecl 0-2 21102 NULL
160822 +enable_so_ext4_bg_has_super_fndecl_21104 ext4_bg_has_super fndecl 0 21104 NULL
160823 +enable_so_sge_size_ieee_MPT3SAS_ADAPTER_21108 sge_size_ieee MPT3SAS_ADAPTER 0 21108 NULL nohasharray
160824 +enable_so_rb_alloc_aux_fndecl_21108 rb_alloc_aux fndecl 4 21108 &enable_so_sge_size_ieee_MPT3SAS_ADAPTER_21108
160825 +enable_so___vfs_read_fndecl_21109 __vfs_read fndecl 0-3 21109 NULL nohasharray
160826 +enable_so_port_number_board_info_21109 port_number board_info 0 21109 &enable_so___vfs_read_fndecl_21109
160827 +enable_so_m5mols_read_u8_fndecl_21112 m5mols_read_u8 fndecl 2 21112 NULL nohasharray
160828 +enable_so_dm_rh_get_region_size_fndecl_21112 dm_rh_get_region_size fndecl 0 21112 &enable_so_m5mols_read_u8_fndecl_21112
160829 +enable_so_memblock_mark_hotplug_fndecl_21114 memblock_mark_hotplug fndecl 2-1 21114 NULL
160830 +enable_so_hdlc_irq_one_fndecl_21115 hdlc_irq_one fndecl 2 21115 NULL nohasharray
160831 +enable_so_max_slots_ocfs2_super_21115 max_slots ocfs2_super 0 21115 &enable_so_hdlc_irq_one_fndecl_21115
160832 +enable_so_header_length_scsi_mode_data_21117 header_length scsi_mode_data 0 21117 NULL
160833 +enable_so_hdrlen_ipv6_opt_hdr_21121 hdrlen ipv6_opt_hdr 0 21121 NULL nohasharray
160834 +enable_so_chunk_mask_dm_exception_store_21121 chunk_mask dm_exception_store 0 21121 &enable_so_hdrlen_ipv6_opt_hdr_21121
160835 +enable_so_produce_size_vmci_transport_21124 produce_size vmci_transport 0 21124 NULL nohasharray
160836 +enable_so_size_ndis_80211_key_21124 size ndis_80211_key 0 21124 &enable_so_produce_size_vmci_transport_21124
160837 +enable_so_virtfn_add_fndecl_21127 virtfn_add fndecl 2 21127 NULL
160838 +enable_so_s_desc_per_block_bits_ext4_sb_info_21130 s_desc_per_block_bits ext4_sb_info 0 21130 NULL
160839 +enable_so_do_add_counters_fndecl_21131 do_add_counters fndecl 3 21131 NULL
160840 +enable_so_xfs_bmbt_lookup_eq_fndecl_21134 xfs_bmbt_lookup_eq fndecl 3-2-4 21134 NULL
160841 +enable_so_metadata_dst_alloc_fndecl_21136 metadata_dst_alloc fndecl 1 21136 NULL
160842 +enable_so_clk_get_rate_fndecl_21147 clk_get_rate fndecl 0 21147 NULL nohasharray
160843 +enable_so_copied_iscsi_segment_21147 copied iscsi_segment 0 21147 &enable_so_clk_get_rate_fndecl_21147
160844 +enable_so_req_queue_pairs_i40e_vsi_21151 req_queue_pairs i40e_vsi 0 21151 NULL
160845 +enable_so_hsu_dma_prep_slave_sg_fndecl_21155 hsu_dma_prep_slave_sg fndecl 3 21155 NULL
160846 +enable_so_ext4_xattr_find_entry_fndecl_21162 ext4_xattr_find_entry fndecl 0 21162 NULL
160847 +enable_so_blk_end_request_fndecl_21163 blk_end_request fndecl 3-2 21163 NULL
160848 +enable_so_gfs2_dir_get_existing_buffer_fndecl_21172 gfs2_dir_get_existing_buffer fndecl 2 21172 NULL
160849 +enable_so_mei_write_fndecl_21174 mei_write fndecl 3 21174 NULL nohasharray
160850 +enable_so_xfs_check_block_fndecl_21174 xfs_check_block fndecl 4 21174 &enable_so_mei_write_fndecl_21174
160851 +enable_so_snd_hdsp_capture_copy_fndecl_21176 snd_hdsp_capture_copy fndecl 5 21176 NULL
160852 +enable_so_udf_try_read_meta_fndecl_21178 udf_try_read_meta fndecl 4 21178 NULL
160853 +enable_so_bfad_iocmd_lport_get_stats_fndecl_21180 bfad_iocmd_lport_get_stats fndecl 0 21180 NULL
160854 +enable_so_transport_lba_21_fndecl_21182 transport_lba_21 fndecl 0 21182 NULL
160855 +enable_so_usage_index_hid_local_21183 usage_index hid_local 0 21183 NULL
160856 +enable_so_init_ppi_data_fndecl_21184 init_ppi_data fndecl 2 21184 NULL
160857 +enable_so_major_vardecl_dm_c_21185 major vardecl_dm.c 0 21185 NULL
160858 +enable_so_crtc_hsync_end_drm_display_mode_21187 crtc_hsync_end drm_display_mode 0 21187 NULL
160859 +enable_so_ucNumEntries__ATOM_PPLIB_Clock_Voltage_Dependency_Table_21191 ucNumEntries _ATOM_PPLIB_Clock_Voltage_Dependency_Table 0 21191 NULL
160860 +enable_so_sb_inodesize_xfs_sb_21192 sb_inodesize xfs_sb 0 21192 NULL
160861 +enable_so_usbnet_write_cmd_async_fndecl_21200 usbnet_write_cmd_async fndecl 7 21200 NULL
160862 +enable_so_n_ir_fw_ohci_21205 n_ir fw_ohci 0 21205 NULL
160863 +enable_so_mtip_hw_read_registers_fndecl_21206 mtip_hw_read_registers fndecl 3 21206 NULL
160864 +enable_so_xfs_free_ag_extent_fndecl_21207 xfs_free_ag_extent fndecl 5 21207 NULL
160865 +enable_so_drm_plane_helper_update_fndecl_21218 drm_plane_helper_update fndecl 6-7 21218 NULL
160866 +enable_so___logfs_segment_write_fndecl_21219 __logfs_segment_write fndecl 5 21219 NULL
160867 +enable_so_length_nand_oobfree_21222 length nand_oobfree 0 21222 NULL
160868 +enable_so_hpfs_get_4sectors_fndecl_21224 hpfs_get_4sectors fndecl 2 21224 NULL
160869 +enable_so_tx_ptr_catc_21231 tx_ptr catc 0 21231 NULL nohasharray
160870 +enable_so_ext4_blks_to_allocate_fndecl_21231 ext4_blks_to_allocate fndecl 0-4-3 21231 &enable_so_tx_ptr_catc_21231
160871 +enable_so_ptr_mask_radeon_ring_21233 ptr_mask radeon_ring 0 21233 NULL
160872 +enable_so_bytes_xfered_mmc_data_21235 bytes_xfered mmc_data 0 21235 NULL
160873 +enable_so_RamAmountKBytes_nvidia_par_21238 RamAmountKBytes nvidia_par 0 21238 NULL nohasharray
160874 +enable_so_num_msix_qlcnic_hardware_context_21238 num_msix qlcnic_hardware_context 0 21238 &enable_so_RamAmountKBytes_nvidia_par_21238
160875 +enable_so_rp_buflen_nfs4_replay_21241 rp_buflen nfs4_replay 0 21241 NULL
160876 +enable_so_ring_size_amdgpu_ih_ring_21243 ring_size amdgpu_ih_ring 0 21243 NULL
160877 +enable_so_fbcon_do_set_font_fndecl_21244 fbcon_do_set_font fndecl 3-2 21244 NULL
160878 +enable_so_nilfs_cpfile_change_cpmode_fndecl_21246 nilfs_cpfile_change_cpmode fndecl 2 21246 NULL
160879 +enable_so_size_seq_buf_21247 size seq_buf 0 21247 NULL nohasharray
160880 +enable_so_rxq_depth_bnad_21247 rxq_depth bnad 0 21247 &enable_so_size_seq_buf_21247
160881 +enable_so_sctp_getsockopt_events_fndecl_21252 sctp_getsockopt_events fndecl 2 21252 NULL
160882 +enable_so_edac_mc_alloc_fndecl_21256 edac_mc_alloc fndecl 4 21256 NULL
160883 +enable_so_ufs_clear_frags_fndecl_21263 ufs_clear_frags fndecl 2 21263 NULL
160884 +enable_so_vc_resize_fndecl_21266 vc_resize fndecl 2-3 21266 NULL nohasharray
160885 +enable_so_num_fh_nfs4_filelayout_segment_21266 num_fh nfs4_filelayout_segment 0 21266 &enable_so_vc_resize_fndecl_21266
160886 +enable_so_elfcorebuf_sz_vardecl_vmcore_c_21270 elfcorebuf_sz vardecl_vmcore.c 0 21270 NULL
160887 +enable_so_object_name_len_compat_ncp_objectname_ioctl_21274 object_name_len compat_ncp_objectname_ioctl 0 21274 NULL
160888 +enable_so_gsi_top_vardecl_21275 gsi_top vardecl 0 21275 NULL
160889 +enable_so_nfs23_validate_mount_data_fndecl_21276 nfs23_validate_mount_data fndecl 0 21276 NULL
160890 +enable_so_hsync_len_fb_var_screeninfo_21279 hsync_len fb_var_screeninfo 0 21279 NULL
160891 +enable_so_height_simplefb_params_21280 height simplefb_params 0 21280 NULL nohasharray
160892 +enable_so_plen_nci_ctrl_hdr_21280 plen nci_ctrl_hdr 0 21280 &enable_so_height_simplefb_params_21280
160893 +enable_so_fm10k_alloc_q_vector_fndecl_21285 fm10k_alloc_q_vector fndecl 6-4 21285 NULL
160894 +enable_so_max_channels_atiixp_21295 max_channels atiixp 0 21295 NULL
160895 +enable_so_cmds_max_iscsi_session_21296 cmds_max iscsi_session 0 21296 NULL
160896 +enable_so_tx_tx_starts_read_fndecl_21298 tx_tx_starts_read fndecl 3 21298 NULL
160897 +enable_so_osd_yres_vardecl_ivtvfb_c_21299 osd_yres vardecl_ivtvfb.c 0 21299 NULL nohasharray
160898 +enable_so_count_nfsd3_readdirres_21299 count nfsd3_readdirres 0 21299 &enable_so_osd_yres_vardecl_ivtvfb_c_21299 nohasharray
160899 +enable_so_efx_rx_deliver_fndecl_21299 efx_rx_deliver fndecl 4 21299 &enable_so_count_nfsd3_readdirres_21299
160900 +enable_so_wSamplesPerFrame_uac_format_type_ii_discrete_descriptor_21300 wSamplesPerFrame uac_format_type_ii_discrete_descriptor 0 21300 NULL
160901 +enable_so_nvdimm_major_vardecl_21302 nvdimm_major vardecl 0 21302 NULL
160902 +enable_so_xblk_next_xblk_qnx4_xblk_21303 xblk_next_xblk qnx4_xblk 0 21303 NULL
160903 +enable_so_tx_num_pg_ch_pm_21307 tx_num_pg ch_pm 0 21307 NULL
160904 +enable_so_bfad_iocmd_cee_reset_stats_fndecl_21308 bfad_iocmd_cee_reset_stats fndecl 0 21308 NULL
160905 +enable_so_aligned_kmalloc_fndecl_21311 aligned_kmalloc fndecl 1 21311 NULL
160906 +enable_so_num_paths_bna_rx_config_21315 num_paths bna_rx_config 0 21315 NULL
160907 +enable_so_fuse_copy_page_fndecl_21316 fuse_copy_page fndecl 4-3 21316 NULL
160908 +enable_so_tcp_fragment_fndecl_21318 tcp_fragment fndecl 3 21318 NULL
160909 +enable_so_packet_present_len_cfg80211_wowlan_wakeup_21321 packet_present_len cfg80211_wowlan_wakeup 0 21321 NULL nohasharray
160910 +enable_so_sq_len_queue_set_21321 sq_len queue_set 0 21321 &enable_so_packet_present_len_cfg80211_wowlan_wakeup_21321
160911 +enable_so_mincore_unmapped_range_fndecl_21322 mincore_unmapped_range fndecl 1 21322 NULL
160912 +enable_so_UniformBlockSizeShift_qinfo_chip_21323 UniformBlockSizeShift qinfo_chip 0 21323 NULL
160913 +enable_so_word14_lpfc_mbx_read_config_21331 word14 lpfc_mbx_read_config 0 21331 NULL
160914 +enable_so_i915_compat_ioctl_fndecl_21339 i915_compat_ioctl fndecl 2 21339 NULL
160915 +enable_so_fl_dump_key_val_fndecl_21344 fl_dump_key_val fndecl 6 21344 NULL
160916 +enable_so_snd_util_mem_alloc_fndecl_21347 snd_util_mem_alloc fndecl 2 21347 NULL
160917 +enable_so_h_blkno_ocfs2_extent_block_21357 h_blkno ocfs2_extent_block 0 21357 NULL nohasharray
160918 +enable_so_nfs_direct_wait_fndecl_21357 nfs_direct_wait fndecl 0 21357 &enable_so_h_blkno_ocfs2_extent_block_21357
160919 +enable_so_videobuf_pages_to_sg_fndecl_21359 videobuf_pages_to_sg fndecl 3-4-2 21359 NULL
160920 +enable_so_igbvf_change_mtu_fndecl_21361 igbvf_change_mtu fndecl 2 21361 NULL
160921 +enable_so_ro_map_rpcrdma_memreg_ops_21369 ro_map rpcrdma_memreg_ops 0 21369 NULL
160922 +enable_so_dest_sctphdr_21370 dest sctphdr 0 21370 NULL
160923 +enable_so_len_idma64_hw_desc_21376 len idma64_hw_desc 0 21376 NULL nohasharray
160924 +enable_so_pad_ieee80211_vendor_radiotap_21376 pad ieee80211_vendor_radiotap 0 21376 &enable_so_len_idma64_hw_desc_21376
160925 +enable_so_omap_hsmmc_pre_dma_transfer_fndecl_21377 omap_hsmmc_pre_dma_transfer fndecl 0 21377 NULL
160926 +enable_so_chunk_size_dm_exception_store_21381 chunk_size dm_exception_store 0 21381 NULL
160927 +enable_so_inppos_net_local_21383 inppos net_local 0 21383 NULL
160928 +enable_so_num_vfs_enic_21386 num_vfs enic 0 21386 NULL
160929 +enable_so_temp_count_applesmc_registers_21387 temp_count applesmc_registers 0 21387 NULL
160930 +enable_so_ci_ll_write_fndecl_21391 ci_ll_write fndecl 4 21391 NULL
160931 +enable_so_vc_scan_lines_vc_data_21393 vc_scan_lines vc_data 0 21393 NULL
160932 +enable_so_digest_size_dm_verity_21399 digest_size dm_verity 0 21399 NULL
160933 +enable_so_pg_count_agp_allocate32_21404 pg_count agp_allocate32 0 21404 NULL
160934 +enable_so_v4l2_fh_open_fndecl_21406 v4l2_fh_open fndecl 0 21406 NULL
160935 +enable_so_ext4_inode_blocks_set_fndecl_21407 ext4_inode_blocks_set fndecl 0 21407 NULL nohasharray
160936 +enable_so_length_r3964_block_header_21407 length r3964_block_header 0 21407 &enable_so_ext4_inode_blocks_set_fndecl_21407
160937 +enable_so_mesh_id_len_ieee80211_if_mesh_21412 mesh_id_len ieee80211_if_mesh 0 21412 NULL
160938 +enable_so_ex_length_extent_s_21417 ex_length extent_s 0 21417 NULL
160939 +enable_so_ping_recvmsg_fndecl_21422 ping_recvmsg fndecl 3 21422 NULL
160940 +enable_so_managed_pages_zone_21425 managed_pages zone 0 21425 NULL
160941 +enable_so_intbufferhandle_kaweth_device_21438 intbufferhandle kaweth_device 0 21438 NULL nohasharray
160942 +enable_so_tool_spad_write_fndecl_21438 tool_spad_write fndecl 3 21438 &enable_so_intbufferhandle_kaweth_device_21438
160943 +enable_so_sctp_setsockopt_auth_key_fndecl_21442 sctp_setsockopt_auth_key fndecl 3 21442 NULL
160944 +enable_so_major_vardecl_pg_c_21451 major vardecl_pg.c 0 21451 NULL
160945 +enable_so_buffer_size_vardecl_event_buffer_c_21452 buffer_size vardecl_event_buffer.c 0 21452 NULL
160946 +enable_so_video_width_sis_video_info_21454 video_width sis_video_info 0 21454 NULL
160947 +enable_so_stripes_stripe_c_21457 stripes stripe_c 0 21457 NULL
160948 +enable_so_indirect2direct_fndecl_21459 indirect2direct fndecl 6 21459 NULL
160949 +enable_so_wp_pfn_shared_fndecl_21469 wp_pfn_shared fndecl 3 21469 NULL nohasharray
160950 +enable_so_acpi_current_gpe_count_vardecl_21469 acpi_current_gpe_count vardecl 0 21469 &enable_so_wp_pfn_shared_fndecl_21469
160951 +enable_so_msm_otg_mode_write_fndecl_21471 msm_otg_mode_write fndecl 3 21471 NULL
160952 +enable_so_ufs_inode_by_name_fndecl_21473 ufs_inode_by_name fndecl 0 21473 NULL
160953 +enable_so_ezusb_access_ltv_fndecl_21485 ezusb_access_ltv fndecl 3 21485 NULL
160954 +enable_so_mmio_start_fb_fix_screeninfo_21486 mmio_start fb_fix_screeninfo 0 21486 NULL
160955 +enable_so_fuse_do_ioctl_fndecl_21491 fuse_do_ioctl fndecl 2 21491 NULL
160956 +enable_so_hpfs_ea_ext_remove_fndecl_21492 hpfs_ea_ext_remove fndecl 4-2 21492 NULL
160957 +enable_so_num_iac_hci_cp_write_current_iac_lap_21493 num_iac hci_cp_write_current_iac_lap 0 21493 NULL nohasharray
160958 +enable_so_memsize_vgastate_21493 memsize vgastate 0 21493 &enable_so_num_iac_hci_cp_write_current_iac_lap_21493
160959 +enable_so_video_pbase_vivid_dev_21503 video_pbase vivid_dev 0 21503 NULL
160960 +enable_so_vmw_cmdbuf_set_pool_size_fndecl_21513 vmw_cmdbuf_set_pool_size fndecl 2 21513 NULL
160961 +enable_so_ocfs2_xattr_user_set_fndecl_21518 ocfs2_xattr_user_set fndecl 5 21518 NULL nohasharray
160962 +enable_so_module_load_offset_vardecl_module_c_21518 module_load_offset vardecl_module.c 0 21518 &enable_so_ocfs2_xattr_user_set_fndecl_21518
160963 +enable_so_max_io_support_mvumi_hs_page1_21519 max_io_support mvumi_hs_page1 0 21519 NULL
160964 +enable_so_fifo_size_hscx_hw_21522 fifo_size hscx_hw 0 21522 NULL nohasharray
160965 +enable_so_c67x00_urb_dequeue_fndecl_21522 c67x00_urb_dequeue fndecl 3 21522 &enable_so_fifo_size_hscx_hw_21522
160966 +enable_so_data_offset_mdp_superblock_1_21524 data_offset mdp_superblock_1 0 21524 NULL nohasharray
160967 +enable_so_intel_sdvo_set_value_fndecl_21524 intel_sdvo_set_value fndecl 4 21524 &enable_so_data_offset_mdp_superblock_1_21524
160968 +enable_so_kvm_clear_guest_page_fndecl_21527 kvm_clear_guest_page fndecl 2-4 21527 NULL
160969 +enable_so_xennet_max_queues_vardecl_xen_netfront_c_21530 xennet_max_queues vardecl_xen-netfront.c 0 21530 NULL
160970 +enable_so_ooblen_mtd_oob_ops_21531 ooblen mtd_oob_ops 0 21531 NULL
160971 +enable_so_hfsplus_find_init_fndecl_21533 hfsplus_find_init fndecl 0 21533 NULL nohasharray
160972 +enable_so_alloc_btrfs_bio_fndecl_21533 alloc_btrfs_bio fndecl 2-1 21533 &enable_so_hfsplus_find_init_fndecl_21533 nohasharray
160973 +enable_so_picolcd_fb_write_fndecl_21533 picolcd_fb_write fndecl 3 21533 &enable_so_alloc_btrfs_bio_fndecl_21533
160974 +enable_so_zr364xx_read_fndecl_21537 zr364xx_read fndecl 3 21537 NULL
160975 +enable_so_pvid_be_adapter_21538 pvid be_adapter 0 21538 NULL
160976 +enable_so_viafb_iga2_odev_proc_write_fndecl_21544 viafb_iga2_odev_proc_write fndecl 3 21544 NULL
160977 +enable_so_pcm_snd_oxfw_stream_formation_21546 pcm snd_oxfw_stream_formation 0 21546 NULL
160978 +enable_so_ql_get_full_dup_fndecl_21549 ql_get_full_dup fndecl 0 21549 NULL
160979 +enable_so_nSkipped_vardecl_gl860_c_21557 nSkipped vardecl_gl860.c 0 21557 NULL
160980 +enable_so___erst_read_to_erange_fndecl_21558 __erst_read_to_erange fndecl 0-1 21558 NULL
160981 +enable_so_sl_max_ip6_sf_socklist_21563 sl_max ip6_sf_socklist 0 21563 NULL
160982 +enable_so_log_sq_stride_mlx4_ib_create_qp_21564 log_sq_stride mlx4_ib_create_qp 0 21564 NULL
160983 +enable_so_total_len_ieee802_11_elems_21565 total_len ieee802_11_elems 0 21565 NULL
160984 +enable_so_ino_logfs_obj_alias_21569 ino logfs_obj_alias 0 21569 NULL
160985 +enable_so_rtl_port_map_fndecl_21570 rtl_port_map fndecl 2-1 21570 NULL
160986 +enable_so_start_resource_21572 start resource 0 21572 NULL nohasharray
160987 +enable_so_cont_extent_rock_state_21572 cont_extent rock_state 0 21572 &enable_so_start_resource_21572
160988 +enable_so_le_min_key_size_write_fndecl_21573 le_min_key_size_write fndecl 3 21573 NULL
160989 +enable_so_uv_possible_blades_vardecl_21579 uv_possible_blades vardecl 0 21579 NULL
160990 +enable_so_xfs_buf_map_from_irec_fndecl_21587 xfs_buf_map_from_irec fndecl 5 21587 NULL
160991 +enable_so_buf_len_wmi_mgmt_rx_hdr_v1_21592 buf_len wmi_mgmt_rx_hdr_v1 0 21592 NULL
160992 +enable_so_device_count_vardecl_portman2x4_c_21593 device_count vardecl_portman2x4.c 0 21593 NULL
160993 +enable_so_myri10ge_initial_mtu_vardecl_myri10ge_c_21595 myri10ge_initial_mtu vardecl_myri10ge.c 0 21595 NULL nohasharray
160994 +enable_so_virtnet_set_queues_fndecl_21595 virtnet_set_queues fndecl 2 21595 &enable_so_myri10ge_initial_mtu_vardecl_myri10ge_c_21595
160995 +enable_so_xcl_max_payload_svc_xprt_class_21596 xcl_max_payload svc_xprt_class 0 21596 NULL
160996 +enable_so_st_kim_recv_fndecl_21600 st_kim_recv fndecl 3 21600 NULL
160997 +enable_so_isdn_v110_open_fndecl_21601 isdn_v110_open fndecl 3 21601 NULL
160998 +enable_so_irq_dma_cm109_dev_21602 irq_dma cm109_dev 0 21602 NULL nohasharray
160999 +enable_so_do_otp_write_fndecl_21602 do_otp_write fndecl 2 21602 &enable_so_irq_dma_cm109_dev_21602
161000 +enable_so_p54spi_spi_write_dma_fndecl_21608 p54spi_spi_write_dma fndecl 4 21608 NULL nohasharray
161001 +enable_so_hfcpci_empty_fifo_fndecl_21608 hfcpci_empty_fifo fndecl 4 21608 &enable_so_p54spi_spi_write_dma_fndecl_21608 nohasharray
161002 +enable_so_snd_seq_pool_new_fndecl_21608 snd_seq_pool_new fndecl 1 21608 &enable_so_hfcpci_empty_fifo_fndecl_21608
161003 +enable_so_cw1200_spi_memcpy_toio_fndecl_21615 cw1200_spi_memcpy_toio fndecl 4 21615 NULL nohasharray
161004 +enable_so_alloc_irq_from_domain_fndecl_21615 alloc_irq_from_domain fndecl 3 21615 &enable_so_cw1200_spi_memcpy_toio_fndecl_21615
161005 +enable_so_rxpipe_rx_prep_beacon_drop_read_fndecl_21616 rxpipe_rx_prep_beacon_drop_read fndecl 3 21616 NULL
161006 +enable_so_size_meye_grab_buffer_21622 size meye_grab_buffer 0 21622 NULL
161007 +enable_so_num_snaps_ceph_snap_realm_21623 num_snaps ceph_snap_realm 0 21623 NULL
161008 +enable_so_sector_r1bio_21627 sector r1bio 0 21627 NULL
161009 +enable_so___lbtf_cmd_fndecl_21631 __lbtf_cmd fndecl 4 21631 NULL
161010 +enable_so_hlength_iscsi_hdr_21640 hlength iscsi_hdr 0 21640 NULL
161011 +enable_so_ioremap_nocache_fndecl_21652 ioremap_nocache fndecl 2-1 21652 NULL nohasharray
161012 +enable_so_nvram_npiv_size_qla_hw_data_21652 nvram_npiv_size qla_hw_data 0 21652 &enable_so_ioremap_nocache_fndecl_21652
161013 +enable_so_cxd2841er_write_regs_fndecl_21655 cxd2841er_write_regs fndecl 5 21655 NULL nohasharray
161014 +enable_so_arch_add_memory_fndecl_21655 arch_add_memory fndecl 3-2 21655 &enable_so_cxd2841er_write_regs_fndecl_21655
161015 +enable_so_tps6507x_i2c_read_device_fndecl_21660 tps6507x_i2c_read_device fndecl 3 21660 NULL
161016 +enable_so_overlay_cap_left_vivid_dev_21663 overlay_cap_left vivid_dev 0 21663 NULL
161017 +enable_so_update_pmkid_fndecl_21666 update_pmkid fndecl 4 21666 NULL
161018 +enable_so_affs_file_fsync_fndecl_21669 affs_file_fsync fndecl 2-3 21669 NULL
161019 +enable_so_length_ccp_dma_info_21671 length ccp_dma_info 0 21671 NULL nohasharray
161020 +enable_so_bio_alloc_bioset_fndecl_21671 bio_alloc_bioset fndecl 2 21671 &enable_so_length_ccp_dma_info_21671 nohasharray
161021 +enable_so_lwtunnel_state_alloc_fndecl_21671 lwtunnel_state_alloc fndecl 1 21671 &enable_so_bio_alloc_bioset_fndecl_21671
161022 +enable_so_start_data_prctl_mm_map_21673 start_data prctl_mm_map 0 21673 NULL
161023 +enable_so_btrfs_free_extent_fndecl_21683 btrfs_free_extent fndecl 3-4 21683 NULL
161024 +enable_so_in_min_chans_snd_card_asihpi_21686 in_min_chans snd_card_asihpi 0 21686 NULL
161025 +enable_so_mfw_mb_length_qed_mcp_info_21688 mfw_mb_length qed_mcp_info 0 21688 NULL
161026 +enable_so_put_free_pages_fndecl_21690 put_free_pages fndecl 2 21690 NULL nohasharray
161027 +enable_so_b43legacy_debugfs_read_fndecl_21690 b43legacy_debugfs_read fndecl 3 21690 &enable_so_put_free_pages_fndecl_21690
161028 +enable_so_fc_fcp_send_data_fndecl_21692 fc_fcp_send_data fndecl 4-3 21692 NULL
161029 +enable_so_resync_max_sectors_mddev_21693 resync_max_sectors mddev 0 21693 NULL
161030 +enable_so_max_pkt_size_pktgen_dev_21696 max_pkt_size pktgen_dev 0 21696 NULL nohasharray
161031 +enable_so_bsg_job_size_request_queue_21696 bsg_job_size request_queue 0 21696 &enable_so_max_pkt_size_pktgen_dev_21696
161032 +enable_so_ext4_get_inode_loc_fndecl_21703 ext4_get_inode_loc fndecl 0 21703 NULL
161033 +enable_so_nfsacl_encode_fndecl_21708 nfsacl_encode fndecl 2-0 21708 NULL nohasharray
161034 +enable_so_pread_dvb_ringbuffer_21708 pread dvb_ringbuffer 0 21708 &enable_so_nfsacl_encode_fndecl_21708
161035 +enable_so_get_rndis_request_fndecl_21709 get_rndis_request fndecl 3 21709 NULL
161036 +enable_so_batadv_tvlv_container_list_size_fndecl_21711 batadv_tvlv_container_list_size fndecl 0 21711 NULL
161037 +enable_so_buf_size_m5mols_capture_21716 buf_size m5mols_capture 0 21716 NULL
161038 +enable_so_residual_fcpio_icmnd_cmpl_21718 residual fcpio_icmnd_cmpl 0 21718 NULL
161039 +enable_so_set_blocksize_fndecl_21720 set_blocksize fndecl 2 21720 NULL
161040 +enable_so_squashfs_read_fragment_index_table_fndecl_21721 squashfs_read_fragment_index_table fndecl 4 21721 NULL
161041 +enable_so_len_nfs4_label_21722 len nfs4_label 0 21722 NULL
161042 +enable_so_buff_size_host_cmd_ds_txbuf_cfg_21725 buff_size host_cmd_ds_txbuf_cfg 0 21725 NULL
161043 +enable_so_hpfs_set_ea_fndecl_21731 hpfs_set_ea fndecl 5 21731 NULL
161044 +enable_so_amdgpu_cgs_gmap_kmem_fndecl_21734 amdgpu_cgs_gmap_kmem fndecl 3 21734 NULL
161045 +enable_so_cids_qed_qm_iids_21740 cids qed_qm_iids 0 21740 NULL
161046 +enable_so_groups_netlink_kernel_cfg_21741 groups netlink_kernel_cfg 0 21741 NULL
161047 +enable_so_blk_rq_map_integrity_sg_fndecl_21744 blk_rq_map_integrity_sg fndecl 0 21744 NULL nohasharray
161048 +enable_so_sdricoh_blockio_fndecl_21744 sdricoh_blockio fndecl 0 21744 &enable_so_blk_rq_map_integrity_sg_fndecl_21744
161049 +enable_so_smk_write_syslog_fndecl_21746 smk_write_syslog fndecl 3 21746 NULL
161050 +enable_so_skb_ts_get_next_block_fndecl_21748 skb_ts_get_next_block fndecl 1 21748 NULL
161051 +enable_so___ceph_setxattr_fndecl_21751 __ceph_setxattr fndecl 4 21751 NULL
161052 +enable_so_bufsiz_mousedev_client_21759 bufsiz mousedev_client 0 21759 NULL
161053 +enable_so_width_tm6000_fh_21761 width tm6000_fh 0 21761 NULL
161054 +enable_so_req_lim_delta_srp_login_rsp_21762 req_lim_delta srp_login_rsp 0 21762 NULL
161055 +enable_so_next_checkpoint_r5l_log_21765 next_checkpoint r5l_log 0 21765 NULL
161056 +enable_so_br_startblock_xfs_bmbt_irec_21769 br_startblock xfs_bmbt_irec 0 21769 NULL
161057 +enable_so_regmap_get_val_bytes_fndecl_21774 regmap_get_val_bytes fndecl 0 21774 NULL
161058 +enable_so_ath6kl_fwlog_mask_read_fndecl_21777 ath6kl_fwlog_mask_read fndecl 3 21777 NULL
161059 +enable_so_byte_len_spi_eeprom_21786 byte_len spi_eeprom 0 21786 NULL
161060 +enable_so_tpg_alloc_fndecl_21789 tpg_alloc fndecl 2 21789 NULL
161061 +enable_so_find_group_dir_fndecl_21790 find_group_dir fndecl 0 21790 NULL
161062 +enable_so_idetape_chrdev_read_fndecl_21794 idetape_chrdev_read fndecl 3 21794 NULL
161063 +enable_so_reg_stride_regmap_21801 reg_stride regmap 0 21801 NULL
161064 +enable_so_num_vss_hpf_cfgs_wm8994_pdata_21802 num_vss_hpf_cfgs wm8994_pdata 0 21802 NULL
161065 +enable_so___svc_create_fndecl_21804 __svc_create fndecl 2-3 21804 NULL
161066 +enable_so_ecryptfs_encrypt_and_encode_filename_fndecl_21806 ecryptfs_encrypt_and_encode_filename fndecl 6 21806 NULL
161067 +enable_so_vx_vni_vxlanhdr_21808 vx_vni vxlanhdr 0 21808 NULL
161068 +enable_so_hwi_ws_sz_hba_parameters_21815 hwi_ws_sz hba_parameters 0 21815 NULL
161069 +enable_so_mlx4_ib_process_mad_fndecl_21823 mlx4_ib_process_mad fndecl 3 21823 NULL
161070 +enable_so_m5mols_read_rational_fndecl_21825 m5mols_read_rational fndecl 2-3 21825 NULL
161071 +enable_so_numacb_vardecl_21828 numacb vardecl 0 21828 NULL
161072 +enable_so_snd_pcm_plug_slave_format_fndecl_21831 snd_pcm_plug_slave_format fndecl 0-1 21831 NULL
161073 +enable_so_check_load_and_stores_fndecl_21836 check_load_and_stores fndecl 2 21836 NULL nohasharray
161074 +enable_so_firm_cfg_version_AdapterControlBlock_21836 firm_cfg_version AdapterControlBlock 0 21836 &enable_so_check_load_and_stores_fndecl_21836
161075 +enable_so_device_create_vargs_fndecl_21838 device_create_vargs fndecl 3 21838 NULL nohasharray
161076 +enable_so_n_descsz_elf32_note_21838 n_descsz elf32_note 0 21838 &enable_so_device_create_vargs_fndecl_21838
161077 +enable_so_enable_read_fndecl_21846 enable_read fndecl 3 21846 NULL
161078 +enable_so_length_acpi_table_desc_21847 length acpi_table_desc 0 21847 NULL nohasharray
161079 +enable_so_btrfs_file_extent_inline_len_fndecl_21847 btrfs_file_extent_inline_len fndecl 0 21847 &enable_so_length_acpi_table_desc_21847
161080 +enable_so_sge_control2_sge_params_21854 sge_control2 sge_params 0 21854 NULL
161081 +enable_so_rtsx_pci_transfer_data_fndecl_21860 rtsx_pci_transfer_data fndecl 0 21860 NULL
161082 +enable_so__ore_get_io_state_fndecl_21861 _ore_get_io_state fndecl 5-4-3 21861 NULL nohasharray
161083 +enable_so_data_read_hwrng_21861 data_read hwrng 0 21861 &enable_so__ore_get_io_state_fndecl_21861
161084 +enable_so_update_hidden_ssid_fndecl_21871 update_hidden_ssid fndecl 0 21871 NULL
161085 +enable_so_sizeimage_vim2m_q_data_21875 sizeimage vim2m_q_data 0 21875 NULL nohasharray
161086 +enable_so_ext4_zero_partial_blocks_fndecl_21875 ext4_zero_partial_blocks fndecl 3-4 21875 &enable_so_sizeimage_vim2m_q_data_21875
161087 +enable_so_ad_sd_read_reg_fndecl_21876 ad_sd_read_reg fndecl 3 21876 NULL nohasharray
161088 +enable_so_mlx4_init_icm_table_fndecl_21876 mlx4_init_icm_table fndecl 4-5 21876 &enable_so_ad_sd_read_reg_fndecl_21876
161089 +enable_so__drbd_send_page_fndecl_21886 _drbd_send_page fndecl 4 21886 NULL nohasharray
161090 +enable_so___copy_to_user_ll_fndecl_21886 __copy_to_user_ll fndecl 0 21886 &enable_so__drbd_send_page_fndecl_21886
161091 +enable_so_bio_integrity_alloc_fndecl_21889 bio_integrity_alloc fndecl 3 21889 NULL
161092 +enable_so_ext4_xattr_trusted_set_fndecl_21891 ext4_xattr_trusted_set fndecl 5 21891 NULL
161093 +enable_so_npwm_pwm_chip_21895 npwm pwm_chip 0 21895 NULL
161094 +enable_so_fat_get_block_fndecl_21902 fat_get_block fndecl 2 21902 NULL
161095 +enable_so_max_torch_intensity_adp1653_platform_data_21907 max_torch_intensity adp1653_platform_data 0 21907 NULL
161096 +enable_so_nodesize_btrfs_super_block_21912 nodesize btrfs_super_block 0 21912 NULL
161097 +enable_so_ieee80211_build_preq_ies_fndecl_21915 ieee80211_build_preq_ies fndecl 0-6 21915 NULL
161098 +enable_so_sym_compute_residual_fndecl_21916 sym_compute_residual fndecl 0 21916 NULL
161099 +enable_so_error_bio_and_error_21918 error bio_and_error 0 21918 NULL
161100 +enable_so_addr_width_snd_dmaengine_dai_dma_data_21920 addr_width snd_dmaengine_dai_dma_data 0 21920 NULL
161101 +enable_so_ceph_osdc_new_request_fndecl_21921 ceph_osdc_new_request fndecl 7 21921 NULL
161102 +enable_so_membase_pm8001_hba_memspace_21924 membase pm8001_hba_memspace 0 21924 NULL
161103 +enable_so_ath6kl_sdio_bmi_read_fndecl_21930 ath6kl_sdio_bmi_read fndecl 3 21930 NULL
161104 +enable_so_error_memstick_request_21931 error memstick_request 0 21931 NULL nohasharray
161105 +enable_so_bfad_iocmd_rport_set_speed_fndecl_21931 bfad_iocmd_rport_set_speed fndecl 0 21931 &enable_so_error_memstick_request_21931 nohasharray
161106 +enable_so_rx_eth_fndecl_21931 rx_eth fndecl 4 21931 &enable_so_bfad_iocmd_rport_set_speed_fndecl_21931
161107 +enable_so_page_cache_async_readahead_fndecl_21944 page_cache_async_readahead fndecl 5 21944 NULL
161108 +enable_so_ssb_bus_ssbbus_register_fndecl_21946 ssb_bus_ssbbus_register fndecl 2 21946 NULL
161109 +enable_so_in_pipe_ttusb_dec_21947 in_pipe ttusb_dec 0 21947 NULL
161110 +enable_so_xprt_max_tcp_slot_table_entries_vardecl_xprtsock_c_21949 xprt_max_tcp_slot_table_entries vardecl_xprtsock.c 0 21949 NULL
161111 +enable_so_kvm_hv_set_msr_fndecl_21951 kvm_hv_set_msr fndecl 3 21951 NULL
161112 +enable_so_do_update_counters_fndecl_21952 do_update_counters fndecl 4 21952 NULL
161113 +enable_so_nrprocs_rpc_version_21954 nrprocs rpc_version 0 21954 NULL
161114 +enable_so_sel_write_avc_cache_threshold_fndecl_21955 sel_write_avc_cache_threshold fndecl 3 21955 NULL
161115 +enable_so_length_iscsi_datain_21959 length iscsi_datain 0 21959 NULL
161116 +enable_so_ocfs2_find_refcount_rec_in_rl_fndecl_21962 ocfs2_find_refcount_rec_in_rl fndecl 3-4 21962 NULL
161117 +enable_so_num_desc_qlcnic_host_rds_ring_21963 num_desc qlcnic_host_rds_ring 0 21963 NULL
161118 +enable_so_reg_page_map_set_fndecl_21967 reg_page_map_set fndecl 0 21967 NULL
161119 +enable_so_vram_size_ast_private_21971 vram_size ast_private 0 21971 NULL nohasharray
161120 +enable_so_dblock_gfs2_journal_extent_21971 dblock gfs2_journal_extent 0 21971 &enable_so_vram_size_ast_private_21971 nohasharray
161121 +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
161122 +enable_so_bulk_out_size_usb_cardstate_21974 bulk_out_size usb_cardstate 0 21974 NULL
161123 +enable_so_max_data_sg_nents_target_core_fabric_ops_21975 max_data_sg_nents target_core_fabric_ops 0 21975 NULL nohasharray
161124 +enable_so_fat_start_msdos_sb_info_21975 fat_start msdos_sb_info 0 21975 &enable_so_max_data_sg_nents_target_core_fabric_ops_21975 nohasharray
161125 +enable_so_mlx4_buddy_init_fndecl_21975 mlx4_buddy_init fndecl 2 21975 &enable_so_fat_start_msdos_sb_info_21975
161126 +enable_so_sched_queue_mlx4_qp_path_21976 sched_queue mlx4_qp_path 0 21976 NULL
161127 +enable_so_nxt200x_writebytes_fndecl_21977 nxt200x_writebytes fndecl 4 21977 NULL nohasharray
161128 +enable_so_donor_start_move_extent_21977 donor_start move_extent 0 21977 &enable_so_nxt200x_writebytes_fndecl_21977
161129 +enable_so_calc_fat_clusters_fndecl_21982 calc_fat_clusters fndecl 0 21982 NULL
161130 +enable_so__scif_send_fndecl_21987 _scif_send fndecl 3-0 21987 NULL
161131 +enable_so_split_nodes_interleave_fndecl_21988 split_nodes_interleave fndecl 3-5-4 21988 NULL
161132 +enable_so_skb_rx_extra_cxgbi_device_21990 skb_rx_extra cxgbi_device 0 21990 NULL
161133 +enable_so_process_ipsec_fndecl_21991 process_ipsec fndecl 3 21991 NULL
161134 +enable_so_sr_read_cmd_fndecl_21992 sr_read_cmd fndecl 5 21992 NULL
161135 +enable_so_sec_per_clus_msdos_sb_info_21995 sec_per_clus msdos_sb_info 0 21995 NULL
161136 +enable_so_len_tpm_info_21998 len tpm_info 0 21998 NULL
161137 +enable_so_ath6kl_wmi_bssinfo_event_rx_fndecl_22000 ath6kl_wmi_bssinfo_event_rx fndecl 3 22000 NULL
161138 +enable_so_ath6kl_wmi_set_tx_pwr_cmd_fndecl_22001 ath6kl_wmi_set_tx_pwr_cmd fndecl 2 22001 NULL
161139 +enable_so_length_ib_sge_22002 length ib_sge 0 22002 NULL
161140 +enable_so_video_v_stop_saa7134_tvnorm_22005 video_v_stop saa7134_tvnorm 0 22005 NULL nohasharray
161141 +enable_so_vpdma_alloc_desc_buf_fndecl_22005 vpdma_alloc_desc_buf fndecl 2 22005 &enable_so_video_v_stop_saa7134_tvnorm_22005
161142 +enable_so_num_pointers_user_acl_role_db_22011 num_pointers user_acl_role_db 0 22011 NULL
161143 +enable_so_itd1000_write_regs_fndecl_22013 itd1000_write_regs fndecl 4 22013 NULL
161144 +enable_so_atio_q_length_qlt_hw_data_22018 atio_q_length qlt_hw_data 0 22018 NULL
161145 +enable_so_buffer_size_nm256_22021 buffer_size nm256 0 22021 NULL
161146 +enable_so_GlobalCredits__MSG_IOC_FACTS_REPLY_22031 GlobalCredits _MSG_IOC_FACTS_REPLY 0 22031 NULL
161147 +enable_so_nv50_dmac_create_fndecl_22035 nv50_dmac_create fndecl 6 22035 NULL
161148 +enable_so_vmw_du_crtc_cursor_set2_fndecl_22036 vmw_du_crtc_cursor_set2 fndecl 5-4 22036 NULL
161149 +enable_so_rtl8723be_c2h_packet_handler_fndecl_22040 rtl8723be_c2h_packet_handler fndecl 3 22040 NULL
161150 +enable_so_dm_exception_store_set_chunk_size_fndecl_22042 dm_exception_store_set_chunk_size fndecl 2 22042 NULL
161151 +enable_so_roccat_connect_fndecl_22044 roccat_connect fndecl 3 22044 NULL
161152 +enable_so_sel_read_enforce_fndecl_22047 sel_read_enforce fndecl 3 22047 NULL
161153 +enable_so_mmc_queue_map_sg_fndecl_22053 mmc_queue_map_sg fndecl 0 22053 NULL
161154 +enable_so_held_root_thin_disk_superblock_22055 held_root thin_disk_superblock 0 22055 NULL
161155 +enable_so_zl10039_read_fndecl_22056 zl10039_read fndecl 4 22056 NULL
161156 +enable_so_w_input_res_22061 w input_res 0 22061 NULL
161157 +enable_so_param_sata_completion_resp_22065 param sata_completion_resp 0 22065 NULL
161158 +enable_so_i2c_wr_max_tda18218_config_22066 i2c_wr_max tda18218_config 0 22066 NULL nohasharray
161159 +enable_so_l2t_start_adapter_22066 l2t_start adapter 0 22066 &enable_so_i2c_wr_max_tda18218_config_22066
161160 +enable_so_rom_base_qxl_device_22067 rom_base qxl_device 0 22067 NULL
161161 +enable_so_ufs_free_fragments_fndecl_22074 ufs_free_fragments fndecl 2 22074 NULL
161162 +enable_so_irnet_ctrl_read_fndecl_22076 irnet_ctrl_read fndecl 4 22076 NULL
161163 +enable_so_sfq_alloc_fndecl_22078 sfq_alloc fndecl 1 22078 NULL
161164 +enable_so_iuu_uart_write_fndecl_22079 iuu_uart_write fndecl 4 22079 NULL
161165 +enable_so_xfs_bmse_shift_one_fndecl_22080 xfs_bmse_shift_one fndecl 3 22080 NULL
161166 +enable_so_absent_pages_in_range_fndecl_22083 absent_pages_in_range fndecl 0-1-2 22083 NULL nohasharray
161167 +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
161168 +enable_so_cmm_write_fndecl_22083 cmm_write fndecl 3 22083 &enable_so_rx_ring_size_mlx4_en_port_profile_22083
161169 +enable_so_horus3a_write_regs_fndecl_22092 horus3a_write_regs fndecl 4 22092 NULL
161170 +enable_so_mgt_response_to_str_fndecl_22094 mgt_response_to_str fndecl 0 22094 NULL
161171 +enable_so_size_drm_i915_gem_pread_22096 size drm_i915_gem_pread 0 22096 NULL nohasharray
161172 +enable_so_len_setup_data_node_22096 len setup_data_node 0 22096 &enable_so_size_drm_i915_gem_pread_22096 nohasharray
161173 +enable_so_frame_seq_number_osst_tape_22096 frame_seq_number osst_tape 0 22096 &enable_so_len_setup_data_node_22096
161174 +enable_so_allocsz_cfv_info_22104 allocsz cfv_info 0 22104 NULL
161175 +enable_so_size_perf_output_handle_22117 size perf_output_handle 0 22117 NULL
161176 +enable_so_xfs_da_get_buf_fndecl_22120 xfs_da_get_buf fndecl 3 22120 NULL
161177 +enable_so_qgroup_reserve_fndecl_22126 qgroup_reserve fndecl 0 22126 NULL
161178 +enable_so_ore_check_io_fndecl_22131 ore_check_io fndecl 0 22131 NULL nohasharray
161179 +enable_so_small_ttm_pool_opts_22131 small ttm_pool_opts 0 22131 &enable_so_ore_check_io_fndecl_22131 nohasharray
161180 +enable_so_xferlen_uioc_22131 xferlen uioc 0 22131 &enable_so_small_ttm_pool_opts_22131
161181 +enable_so_numa_add_memblk_fndecl_22136 numa_add_memblk fndecl 2-3 22136 NULL
161182 +enable_so_lo_rw_aio_fndecl_22138 lo_rw_aio fndecl 3 22138 NULL
161183 +enable_so_dm_tm_shadow_block_fndecl_22139 dm_tm_shadow_block fndecl 2 22139 NULL
161184 +enable_so_xfs_trans_get_buf_map_fndecl_22140 xfs_trans_get_buf_map fndecl 4 22140 NULL
161185 +enable_so_num_phys_eqs_mlx4_phys_caps_22142 num_phys_eqs mlx4_phys_caps 0 22142 NULL
161186 +enable_so_jffs2_scan_make_ino_cache_fndecl_22144 jffs2_scan_make_ino_cache fndecl 2 22144 NULL nohasharray
161187 +enable_so_radeon_benchmark_move_fndecl_22144 radeon_benchmark_move fndecl 2 22144 &enable_so_jffs2_scan_make_ino_cache_fndecl_22144
161188 +enable_so_moving_threshold_mms114_platform_data_22146 moving_threshold mms114_platform_data 0 22146 NULL nohasharray
161189 +enable_so_regmap_encx24j600_spi_write_fndecl_22146 regmap_encx24j600_spi_write fndecl 4 22146 &enable_so_moving_threshold_mms114_platform_data_22146 nohasharray
161190 +enable_so_svc_rdma_xdr_encode_error_fndecl_22146 svc_rdma_xdr_encode_error fndecl 0 22146 &enable_so_regmap_encx24j600_spi_write_fndecl_22146
161191 +enable_so_max_cos_bnx2x_22147 max_cos bnx2x 0 22147 NULL
161192 +enable_so_cmd_pipe_uas_dev_info_22148 cmd_pipe uas_dev_info 0 22148 NULL
161193 +enable_so_seg_size_ib_mad_send_buf_22149 seg_size ib_mad_send_buf 0 22149 NULL
161194 +enable_so_ppp_cp_event_fndecl_22150 ppp_cp_event fndecl 6-2 22150 NULL
161195 +enable_so_rxq_entries_efx_nic_22154 rxq_entries efx_nic 0 22154 NULL
161196 +enable_so_collect_rx_frame_fndecl_22155 collect_rx_frame fndecl 3 22155 NULL
161197 +enable_so_nes_read_indexed_fndecl_22161 nes_read_indexed fndecl 0 22161 NULL
161198 +enable_so_rs_datalen_ath5k_rx_status_22164 rs_datalen ath5k_rx_status 0 22164 NULL
161199 +enable_so_tm6000_i2c_recv_regs16_fndecl_22166 tm6000_i2c_recv_regs16 fndecl 5 22166 NULL
161200 +enable_so_set_fast_connectable_fndecl_22171 set_fast_connectable fndecl 4 22171 NULL
161201 +enable_so_tegra_spi_start_cpu_based_transfer_fndecl_22176 tegra_spi_start_cpu_based_transfer fndecl 0 22176 NULL
161202 +enable_so_name_len_ceph_inode_xattr_22177 name_len ceph_inode_xattr 0 22177 NULL
161203 +enable_so_rts51x_bulk_transport_special_fndecl_22181 rts51x_bulk_transport_special fndecl 6 22181 NULL
161204 +enable_so_buf_len_bu_info_22182 buf_len bu_info 0 22182 NULL nohasharray
161205 +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
161206 +enable_so_ieee80211_parse_bitrates_fndecl_22187 ieee80211_parse_bitrates fndecl 0 22187 NULL
161207 +enable_so_ch_count_vardecl_ib_srp_c_22190 ch_count vardecl_ib_srp.c 0 22190 NULL
161208 +enable_so_affs_alloc_block_fndecl_22192 affs_alloc_block fndecl 0-2 22192 NULL
161209 +enable_so_sector_packet_data_22197 sector packet_data 0 22197 NULL
161210 +enable_so_length_ntlmssp2_name_22211 length ntlmssp2_name 0 22211 NULL
161211 +enable_so_req_len_brcmf_cfg80211_assoc_ielen_le_22213 req_len brcmf_cfg80211_assoc_ielen_le 0 22213 NULL
161212 +enable_so_nreaders_stress_vardecl_locktorture_c_22217 nreaders_stress vardecl_locktorture.c 0 22217 NULL nohasharray
161213 +enable_so_xfrm_dst_alloc_copy_fndecl_22217 xfrm_dst_alloc_copy fndecl 3 22217 &enable_so_nreaders_stress_vardecl_locktorture_c_22217
161214 +enable_so_ram_size_async_extent_22219 ram_size async_extent 0 22219 NULL
161215 +enable_so_get_max_acpi_id_fndecl_22220 get_max_acpi_id fndecl 0 22220 NULL
161216 +enable_so_s_dirsize_minix_sb_info_22225 s_dirsize minix_sb_info 0 22225 NULL
161217 +enable_so_num_areas_prism2_download_param_22233 num_areas prism2_download_param 0 22233 NULL
161218 +enable_so_num_vlan_batadv_tvlv_tt_data_22234 num_vlan batadv_tvlv_tt_data 0 22234 NULL
161219 +enable_so_thermal_adc_source_unexpected_read_fndecl_22235 thermal_adc_source_unexpected_read fndecl 3 22235 NULL
161220 +enable_so_max_fingers_pixcir_i2c_ts_data_22237 max_fingers pixcir_i2c_ts_data 0 22237 NULL
161221 +enable_so_depth_write_fndecl_22238 depth_write fndecl 3 22238 NULL
161222 +enable_so_num_udav_mthca_profile_22243 num_udav mthca_profile 0 22243 NULL
161223 +enable_so_ieee80211_check_pending_bar_fndecl_22244 ieee80211_check_pending_bar fndecl 3 22244 NULL
161224 +enable_so_rf_suballoc_loc_ocfs2_refcount_block_22248 rf_suballoc_loc ocfs2_refcount_block 0 22248 NULL
161225 +enable_so_hfsplus_asc2uni_fndecl_22252 hfsplus_asc2uni fndecl 0 22252 NULL nohasharray
161226 +enable_so_dac960_user_command_proc_write_fndecl_22252 dac960_user_command_proc_write fndecl 3 22252 &enable_so_hfsplus_asc2uni_fndecl_22252
161227 +enable_so___blk_end_bidi_request_fndecl_22253 __blk_end_bidi_request fndecl 3-4-2 22253 NULL
161228 +enable_so_qp_alloc_ppn_set_fndecl_22255 qp_alloc_ppn_set fndecl 2-4 22255 NULL
161229 +enable_so_nr_free_buffer_pages_fndecl_22263 nr_free_buffer_pages fndecl 0 22263 NULL
161230 +enable_so_bbio_error_fndecl_22264 bbio_error fndecl 3 22264 NULL
161231 +enable_so_usCRTC_V_Total__ATOM_MODE_TIMING_22265 usCRTC_V_Total _ATOM_MODE_TIMING 0 22265 NULL
161232 +enable_so_mangle_contents_fndecl_22272 mangle_contents fndecl 4-6 22272 NULL
161233 +enable_so_reord_tcp_sacktag_state_22281 reord tcp_sacktag_state 0 22281 NULL nohasharray
161234 +enable_so_gtt_total_entries__intel_private_22281 gtt_total_entries _intel_private 0 22281 &enable_so_reord_tcp_sacktag_state_22281
161235 +enable_so_mgsl_write_fndecl_22284 mgsl_write fndecl 3 22284 NULL
161236 +enable_so_sn9c2028_read4_fndecl_22290 sn9c2028_read4 fndecl 0 22290 NULL
161237 +enable_so_scif_get_phys_fndecl_22295 scif_get_phys fndecl 0-1 22295 NULL
161238 +enable_so_gspca_dev_probe_fndecl_22297 gspca_dev_probe fndecl 4 22297 NULL
161239 +enable_so_gfs2_listxattr_fndecl_22298 gfs2_listxattr fndecl 3 22298 NULL nohasharray
161240 +enable_so_di_depth_gfs2_dinode_22298 di_depth gfs2_dinode 0 22298 &enable_so_gfs2_listxattr_fndecl_22298
161241 +enable_so_cb710_mmc_receive_fndecl_22303 cb710_mmc_receive fndecl 0 22303 NULL
161242 +enable_so_slot_bytes_fndecl_22306 slot_bytes fndecl 0 22306 NULL
161243 +enable_so_smk_write_logging_fndecl_22313 smk_write_logging fndecl 3 22313 NULL
161244 +enable_so_read_head_n_tty_data_22317 read_head n_tty_data 0 22317 NULL nohasharray
161245 +enable_so_index_start_nozomi_22317 index_start nozomi 0 22317 &enable_so_read_head_n_tty_data_22317
161246 +enable_so_swiotlb_late_init_with_default_size_fndecl_22319 swiotlb_late_init_with_default_size fndecl 1 22319 NULL
161247 +enable_so_sb_rbmino_xfs_sb_22320 sb_rbmino xfs_sb 0 22320 NULL nohasharray
161248 +enable_so_be_fill_queue_fndecl_22320 be_fill_queue fndecl 2 22320 &enable_so_sb_rbmino_xfs_sb_22320
161249 +enable_so_vc_size_row_vc_data_22325 vc_size_row vc_data 0 22325 NULL
161250 +enable_so_user_data_len_uioc_22327 user_data_len uioc 0 22327 NULL
161251 +enable_so_atmel_change_mtu_fndecl_22328 atmel_change_mtu fndecl 2 22328 NULL
161252 +enable_so_limit_sfq_sched_data_22334 limit sfq_sched_data 0 22334 NULL
161253 +enable_so_f2fs_getxattr_fndecl_22337 f2fs_getxattr fndecl 0 22337 NULL
161254 +enable_so_mtu_tipc_link_22341 mtu tipc_link 0 22341 NULL
161255 +enable_so_vid_batadv_orig_node_vlan_22342 vid batadv_orig_node_vlan 0 22342 NULL
161256 +enable_so_svc_recvfrom_fndecl_22345 svc_recvfrom fndecl 0-4-3 22345 NULL
161257 +enable_so_drv_info_size_mwifiex_adapter_22352 drv_info_size mwifiex_adapter 0 22352 NULL
161258 +enable_so_tlv_put_string_fndecl_22356 tlv_put_string fndecl 4-0 22356 NULL
161259 +enable_so_genwqe_alloc_sync_sgl_fndecl_22358 genwqe_alloc_sync_sgl fndecl 4 22358 NULL
161260 +enable_so__proc_do_string_fndecl_22363 _proc_do_string fndecl 2 22363 NULL
161261 +enable_so____pskb_trim_fndecl_22365 ___pskb_trim fndecl 2 22365 NULL
161262 +enable_so_kvm_gfn_to_hva_cache_init_fndecl_22367 kvm_gfn_to_hva_cache_init fndecl 3 22367 NULL
161263 +enable_so_drXTFlSize_hfs_mdb_22371 drXTFlSize hfs_mdb 0 22371 NULL nohasharray
161264 +enable_so_ffs_ep0_read_fndecl_22371 ffs_ep0_read fndecl 3 22371 &enable_so_drXTFlSize_hfs_mdb_22371
161265 +enable_so_digi_write_fndecl_22372 digi_write fndecl 4 22372 NULL
161266 +enable_so_nr_luns_rrpc_22379 nr_luns rrpc 0 22379 NULL
161267 +enable_so_exposure_step_sd_22386 exposure_step sd 0 22386 NULL
161268 +enable_so_ecc_size_persistent_ram_ecc_info_22390 ecc_size persistent_ram_ecc_info 0 22390 NULL
161269 +enable_so_phys_lcr_base_mgsl_struct_22391 phys_lcr_base mgsl_struct 0 22391 NULL
161270 +enable_so_clipt_end_adapter_22397 clipt_end adapter 0 22397 NULL
161271 +enable_so_nr_blocks_jffs2_sb_info_22399 nr_blocks jffs2_sb_info 0 22399 NULL
161272 +enable_so_size_dsp_segment_desc_22400 size dsp_segment_desc 0 22400 NULL
161273 +enable_so_rawsock_sendmsg_fndecl_22401 rawsock_sendmsg fndecl 3 22401 NULL
161274 +enable_so_udf_setsize_fndecl_22402 udf_setsize fndecl 2 22402 NULL
161275 +enable_so_lprocfs_stats_counter_size_fndecl_22407 lprocfs_stats_counter_size fndecl 0 22407 NULL
161276 +enable_so_use_inline_bio_fndecl_22408 use_inline_bio fndecl 3 22408 NULL
161277 +enable_so_do_truncate_fndecl_22411 do_truncate fndecl 2 22411 NULL nohasharray
161278 +enable_so_twl4030_init_sih_modules_fndecl_22411 twl4030_init_sih_modules fndecl 0 22411 &enable_so_do_truncate_fndecl_22411 nohasharray
161279 +enable_so_len_usbdevfs_bulktransfer_22411 len usbdevfs_bulktransfer 0 22411 &enable_so_twl4030_init_sih_modules_fndecl_22411
161280 +enable_so_max_ccb_vardecl_hpilo_c_22414 max_ccb vardecl_hpilo.c 0 22414 NULL
161281 +enable_so_oti6858_write_fndecl_22423 oti6858_write fndecl 4 22423 NULL
161282 +enable_so_bbRcvSizeMsb_csp_22425 bbRcvSizeMsb csp 0 22425 NULL
161283 +enable_so_nfc_llcp_send_ui_frame_fndecl_22429 nfc_llcp_send_ui_frame fndecl 5 22429 NULL
161284 +enable_so_add_size_pci_dev_resource_22434 add_size pci_dev_resource 0 22434 NULL
161285 +enable_so_start_async_cow_22445 start async_cow 0 22445 NULL
161286 +enable_so_do_send_fragment_fndecl_22447 do_send_fragment fndecl 3 22447 NULL
161287 +enable_so_frame_len_ksz_desc_rx_stat_22454 frame_len ksz_desc_rx_stat 0 22454 NULL
161288 +enable_so_ntfs_attr_vcn_to_lcn_nolock_fndecl_22455 ntfs_attr_vcn_to_lcn_nolock fndecl 2 22455 NULL
161289 +enable_so_llc_ui_recvmsg_fndecl_22457 llc_ui_recvmsg fndecl 3 22457 NULL
161290 +enable_so_ceph_zero_pagecache_range_fndecl_22464 ceph_zero_pagecache_range fndecl 3-2 22464 NULL nohasharray
161291 +enable_so_mon_bin_ioctl_fndecl_22464 mon_bin_ioctl fndecl 3 22464 &enable_so_ceph_zero_pagecache_range_fndecl_22464
161292 +enable_so_params1_mthca_qp_context_22465 params1 mthca_qp_context 0 22465 NULL
161293 +enable_so_fsl_edma_alloc_desc_fndecl_22466 fsl_edma_alloc_desc fndecl 2 22466 NULL
161294 +enable_so_s35390a_set_reg_fndecl_22468 s35390a_set_reg fndecl 4 22468 NULL
161295 +enable_so_vmbus_sendpacket_fndecl_22469 vmbus_sendpacket fndecl 3 22469 NULL nohasharray
161296 +enable_so__sctp_make_chunk_fndecl_22469 _sctp_make_chunk fndecl 2 22469 &enable_so_vmbus_sendpacket_fndecl_22469
161297 +enable_so_s_data_blksize_affs_sb_info_22478 s_data_blksize affs_sb_info 0 22478 NULL
161298 +enable_so_vram_size_aty128fb_par_22489 vram_size aty128fb_par 0 22489 NULL nohasharray
161299 +enable_so_hid_report_raw_event_fndecl_22489 hid_report_raw_event fndecl 4 22489 &enable_so_vram_size_aty128fb_par_22489
161300 +enable_so_find_group_other_fndecl_22490 find_group_other fndecl 0 22490 NULL
161301 +enable_so_xfs_readdir_fndecl_22492 xfs_readdir fndecl 3 22492 NULL
161302 +enable_so_offset_rbd_img_request_22494 offset rbd_img_request 0 22494 NULL
161303 +enable_so_tx_hr_cfv_info_22495 tx_hr cfv_info 0 22495 NULL
161304 +enable_so_size_drm_virtgpu_execbuffer_22498 size drm_virtgpu_execbuffer 0 22498 NULL
161305 +enable_so_hiface_pcm_init_urb_fndecl_22500 hiface_pcm_init_urb fndecl 3 22500 NULL
161306 +enable_so_iwl_dbgfs_clear_ucode_statistics_write_fndecl_22503 iwl_dbgfs_clear_ucode_statistics_write fndecl 3 22503 NULL
161307 +enable_so_irq_bcma_device_22505 irq bcma_device 0 22505 NULL
161308 +enable_so_cur_rx_pos_tegra_slink_data_22510 cur_rx_pos tegra_slink_data 0 22510 NULL
161309 +enable_so_ctx_len_xfrm_sec_ctx_22511 ctx_len xfrm_sec_ctx 0 22511 NULL
161310 +enable_so_h_mode_size_22514 h mode_size 0 22514 NULL
161311 +enable_so_len_bna_mem_info_22518 len bna_mem_info 0 22518 NULL
161312 +enable_so_rocker_dma_ring_bufs_alloc_fndecl_22520 rocker_dma_ring_bufs_alloc fndecl 4 22520 NULL
161313 +enable_so_ls_lvblen_dlm_ls_22525 ls_lvblen dlm_ls 0 22525 NULL
161314 +enable_so_ocfs2_bg_discontig_add_extent_fndecl_22531 ocfs2_bg_discontig_add_extent fndecl 4 22531 NULL
161315 +enable_so_count_pch_gbe_tx_ring_22534 count pch_gbe_tx_ring 0 22534 NULL
161316 +enable_so_pci_iomap_wc_range_fndecl_22536 pci_iomap_wc_range fndecl 4-3 22536 NULL
161317 +enable_so_last_checkpoint_r5l_log_22540 last_checkpoint r5l_log 0 22540 NULL
161318 +enable_so_submit_queue_fndecl_22542 submit_queue fndecl 5 22542 NULL
161319 +enable_so_SyS_flistxattr_fndecl_22548 SyS_flistxattr fndecl 3 22548 NULL
161320 +enable_so_clsb_isar_reg_22551 clsb isar_reg 0 22551 NULL
161321 +enable_so_tx_frag_in_process_called_read_fndecl_22553 tx_frag_in_process_called_read fndecl 3 22553 NULL nohasharray
161322 +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
161323 +enable_so_msg_done_handler_fndecl_22553 msg_done_handler fndecl 4 22553 &enable_so_sadb_x_ctx_len_sadb_x_sec_ctx_22553
161324 +enable_so_w9968cf_i2c_r_fndecl_22560 w9968cf_i2c_r fndecl 0 22560 NULL
161325 +enable_so_max_frame_size_pch_gbe_mac_info_22562 max_frame_size pch_gbe_mac_info 0 22562 NULL
161326 +enable_so_max_xor_dma_device_22564 max_xor dma_device 0 22564 NULL
161327 +enable_so_carl9170_rx_stream_fndecl_22565 carl9170_rx_stream fndecl 3 22565 NULL
161328 +enable_so_fsync_file_operations_22566 fsync file_operations 0 22566 NULL
161329 +enable_so_skd_next_devno_vardecl_skd_main_c_22569 skd_next_devno vardecl_skd_main.c 0 22569 NULL
161330 +enable_so_burst_fsl_edma_slave_config_22570 burst fsl_edma_slave_config 0 22570 NULL
161331 +enable_so_id_rfcomm_dev_22580 id rfcomm_dev 0 22580 NULL
161332 +enable_so_wm_adsp_buf_alloc_fndecl_22582 wm_adsp_buf_alloc fndecl 2 22582 NULL
161333 +enable_so_push_node_left_fndecl_22588 push_node_left fndecl 0 22588 NULL nohasharray
161334 +enable_so_qlcnic_pci_sriov_configure_fndecl_22588 qlcnic_pci_sriov_configure fndecl 2 22588 &enable_so_push_node_left_fndecl_22588 nohasharray
161335 +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
161336 +enable_so_scif_rb_get_next_fndecl_22601 scif_rb_get_next fndecl 3 22601 NULL nohasharray
161337 +enable_so_swevent_hlist_get_cpu_fndecl_22601 swevent_hlist_get_cpu fndecl 0 22601 &enable_so_scif_rb_get_next_fndecl_22601
161338 +enable_so_fw_stats_raw_read_fndecl_22602 fw_stats_raw_read fndecl 3 22602 NULL
161339 +enable_so_tx_data_max_size_sst_generic_ipc_22604 tx_data_max_size sst_generic_ipc 0 22604 NULL
161340 +enable_so_brcmf_fil_cmd_data_get_fndecl_22605 brcmf_fil_cmd_data_get fndecl 4 22605 NULL
161341 +enable_so_maxauthsize_aead_alg_22608 maxauthsize aead_alg 0 22608 NULL nohasharray
161342 +enable_so_btrfs_submit_compressed_write_fndecl_22608 btrfs_submit_compressed_write fndecl 4-5 22608 &enable_so_maxauthsize_aead_alg_22608
161343 +enable_so_count_mspro_attribute_22612 count mspro_attribute 0 22612 NULL
161344 +enable_so_len_aironet_ioctl_22615 len aironet_ioctl 0 22615 NULL
161345 +enable_so_ir_startino_xfs_inobt_rec_incore_22616 ir_startino xfs_inobt_rec_incore 0 22616 NULL
161346 +enable_so_mem_hole_size_fndecl_22619 mem_hole_size fndecl 0-1-2 22619 NULL nohasharray
161347 +enable_so_wil_write_pmccfg_fndecl_22619 wil_write_pmccfg fndecl 3 22619 &enable_so_mem_hole_size_fndecl_22619 nohasharray
161348 +enable_so_bond_verify_device_path_fndecl_22619 bond_verify_device_path fndecl 3 22619 &enable_so_wil_write_pmccfg_fndecl_22619
161349 +enable_so_curr_block_migrate_struct_22621 curr_block migrate_struct 0 22621 NULL
161350 +enable_so_length_obj_key_22626 length obj_key 0 22626 NULL
161351 +enable_so_SYSC_io_getevents_fndecl_22627 SYSC_io_getevents fndecl 3 22627 NULL
161352 +enable_so_n_compat_sel_arg_struct_22628 n compat_sel_arg_struct 0 22628 NULL
161353 +enable_so_buf_height_s5p_mfc_ctx_22637 buf_height s5p_mfc_ctx 0 22637 NULL
161354 +enable_so_hci_si_event_fndecl_22639 hci_si_event fndecl 3 22639 NULL
161355 +enable_so_scif_vwriteto_fndecl_22640 scif_vwriteto fndecl 4-3 22640 NULL
161356 +enable_so_logfs_write_header_fndecl_22642 logfs_write_header fndecl 3 22642 NULL
161357 +enable_so_num_rcv_bufs_visornic_devdata_22643 num_rcv_bufs visornic_devdata 0 22643 NULL
161358 +enable_so_sctp_setsockopt_initmsg_fndecl_22644 sctp_setsockopt_initmsg fndecl 3 22644 NULL
161359 +enable_so_queue_size_snd_timer_params_22646 queue_size snd_timer_params 0 22646 NULL
161360 +enable_so_do_msgsnd_fndecl_22648 do_msgsnd fndecl 4 22648 NULL
161361 +enable_so_isight_decode_fndecl_22650 isight_decode fndecl 4 22650 NULL
161362 +enable_so_sample_rate_usb_stream_config_22662 sample_rate usb_stream_config 0 22662 NULL
161363 +enable_so_sw_start_stm_data_22665 sw_start stm_data 0 22665 NULL
161364 +enable_so_md_probe_fndecl_22668 md_probe fndecl 1 22668 NULL
161365 +enable_so_init_rs_internal_fndecl_22671 init_rs_internal fndecl 6-1 22671 NULL
161366 +enable_so_create_huge_pmd_fndecl_22677 create_huge_pmd fndecl 3 22677 NULL
161367 +enable_so_ieee80211_mesh_rx_bcn_presp_fndecl_22678 ieee80211_mesh_rx_bcn_presp fndecl 4 22678 NULL
161368 +enable_so_fbcon_redraw_softback_fndecl_22679 fbcon_redraw_softback fndecl 3 22679 NULL nohasharray
161369 +enable_so_bop_propagate_nilfs_bmap_operations_22679 bop_propagate nilfs_bmap_operations 0 22679 &enable_so_fbcon_redraw_softback_fndecl_22679
161370 +enable_so_vlan_tag_bnx2x_agg_info_22683 vlan_tag bnx2x_agg_info 0 22683 NULL nohasharray
161371 +enable_so_cfs_trace_copyout_string_fndecl_22683 cfs_trace_copyout_string fndecl 2 22683 &enable_so_vlan_tag_bnx2x_agg_info_22683
161372 +enable_so_irq_pipe_ttusb_dec_22685 irq_pipe ttusb_dec 0 22685 NULL
161373 +enable_so_sctp_sf_abort_violation_fndecl_22687 sctp_sf_abort_violation fndecl 7 22687 NULL
161374 +enable_so_vidioc_s_input_fndecl_22689 vidioc_s_input fndecl 3 22689 NULL
161375 +enable_so_qca_recv_fndecl_22690 qca_recv fndecl 3 22690 NULL
161376 +enable_so_ino_nilfs_iget_args_22691 ino nilfs_iget_args 0 22691 NULL
161377 +enable_so_tx_queue_len_read_fndecl_22692 tx_queue_len_read fndecl 3 22692 NULL
161378 +enable_so_ctl_dma_yealink_dev_22696 ctl_dma yealink_dev 0 22696 NULL
161379 +enable_so_len_vring_desc_22700 len vring_desc 0 22700 NULL
161380 +enable_so_mxs_auart_dma_tx_fndecl_22702 mxs_auart_dma_tx fndecl 2 22702 NULL
161381 +enable_so_info_element_size_vardecl_host_interface_c_22708 info_element_size vardecl_host_interface.c 0 22708 NULL
161382 +enable_so_brcmf_sdio_read_control_fndecl_22712 brcmf_sdio_read_control fndecl 3 22712 NULL
161383 +enable_so_scif_rb_write_fndecl_22718 scif_rb_write fndecl 0-3 22718 NULL
161384 +enable_so_tail_inbuf_t_22719 tail inbuf_t 0 22719 NULL nohasharray
161385 +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
161386 +enable_so_SMB2_ioctl_fndecl_22721 SMB2_ioctl fndecl 8 22721 NULL
161387 +enable_so_ath6kl_wmi_get_tx_pwr_cmd_fndecl_22722 ath6kl_wmi_get_tx_pwr_cmd fndecl 2 22722 NULL nohasharray
161388 +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
161389 +enable_so_odm_mirror_cnt_pnfs_osd_data_map_22727 odm_mirror_cnt pnfs_osd_data_map 0 22727 NULL
161390 +enable_so_fcoe_hmc_cntx_num_i40e_pf_22730 fcoe_hmc_cntx_num i40e_pf 0 22730 NULL nohasharray
161391 +enable_so_fpregs_set_fndecl_22730 fpregs_set fndecl 4 22730 &enable_so_fcoe_hmc_cntx_num_i40e_pf_22730
161392 +enable_so___blk_bios_map_sg_fndecl_22734 __blk_bios_map_sg fndecl 0 22734 NULL
161393 +enable_so_xprt_alloc_fndecl_22736 xprt_alloc fndecl 4-3-2 22736 NULL
161394 +enable_so_num_fcoe_qps_i40e_pf_22740 num_fcoe_qps i40e_pf 0 22740 NULL
161395 +enable_so_SYSC_syslog_fndecl_22742 SYSC_syslog fndecl 3 22742 NULL
161396 +enable_so_iwlagn_pass_packet_to_mac80211_fndecl_22746 iwlagn_pass_packet_to_mac80211 fndecl 3 22746 NULL
161397 +enable_so_slave_num_ad7280_state_22755 slave_num ad7280_state 0 22755 NULL
161398 +enable_so_alloc_perm_bits_fndecl_22767 alloc_perm_bits fndecl 2 22767 NULL
161399 +enable_so_rambase_brcmf_chip_22773 rambase brcmf_chip 0 22773 NULL
161400 +enable_so_xfs_bmap_add_free_fndecl_22778 xfs_bmap_add_free fndecl 1-2 22778 NULL
161401 +enable_so_tomoyo_round2_fndecl_22781 tomoyo_round2 fndecl 0 22781 NULL
161402 +enable_so_orig_video_cols_screen_info_22783 orig_video_cols screen_info 0 22783 NULL
161403 +enable_so_len_cpl_iscsi_hdr_22787 len cpl_iscsi_hdr 0 22787 NULL
161404 +enable_so_h_start_saa7134_tvnorm_22798 h_start saa7134_tvnorm 0 22798 NULL
161405 +enable_so_i_next_section_block_iso_inode_info_22800 i_next_section_block iso_inode_info 0 22800 NULL nohasharray
161406 +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
161407 +enable_so_cp_rdfs_fc_els_cssp_22809 cp_rdfs fc_els_cssp 0 22809 NULL nohasharray
161408 +enable_so_my_inptr_vardecl_initramfs_c_22809 my_inptr vardecl_initramfs.c 0 22809 &enable_so_cp_rdfs_fc_els_cssp_22809
161409 +enable_so_agp_create_memory_fndecl_22816 agp_create_memory fndecl 1 22816 NULL
161410 +enable_so_aper_size_amdgpu_mc_22824 aper_size amdgpu_mc 0 22824 NULL
161411 +enable_so_tx_size_uart_8250_dma_22825 tx_size uart_8250_dma 0 22825 NULL
161412 +enable_so_pwr_sleep_cycle_avg_read_fndecl_22826 pwr_sleep_cycle_avg_read fndecl 3 22826 NULL
161413 +enable_so_nfs_pgarray_set_fndecl_22830 nfs_pgarray_set fndecl 2 22830 NULL
161414 +enable_so_ScsiStatus__ErrorInfo_struct_22836 ScsiStatus _ErrorInfo_struct 0 22836 NULL
161415 +enable_so_gigaset_initdriver_fndecl_22839 gigaset_initdriver fndecl 2-1 22839 NULL
161416 +enable_so_batadv_bla_del_claim_fndecl_22840 batadv_bla_del_claim fndecl 3 22840 NULL
161417 +enable_so_lan78xx_change_mtu_fndecl_22844 lan78xx_change_mtu fndecl 2 22844 NULL
161418 +enable_so_sys_mremap_fndecl_22848 sys_mremap fndecl 3-5-1-2 22848 NULL nohasharray
161419 +enable_so_clean_io_failure_fndecl_22848 clean_io_failure fndecl 4 22848 &enable_so_sys_mremap_fndecl_22848
161420 +enable_so_rlen_si2168_cmd_22851 rlen si2168_cmd 0 22851 NULL
161421 +enable_so_var2_apei_exec_context_22852 var2 apei_exec_context 0 22852 NULL
161422 +enable_so_utf8s_to_utf16s_fndecl_22856 utf8s_to_utf16s fndecl 0 22856 NULL
161423 +enable_so_size_proc_dir_entry_22859 size proc_dir_entry 0 22859 NULL
161424 +enable_so_sst_fill_and_send_cmd_unlocked_fndecl_22862 sst_fill_and_send_cmd_unlocked fndecl 7 22862 NULL
161425 +enable_so_xs_sendpages_fndecl_22864 xs_sendpages fndecl 5-3 22864 NULL
161426 +enable_so_hpfs_get_block_fndecl_22865 hpfs_get_block fndecl 2 22865 NULL
161427 +enable_so_usCRTC_H_SyncStart__ATOM_MODE_TIMING_22868 usCRTC_H_SyncStart _ATOM_MODE_TIMING 0 22868 NULL
161428 +enable_so_n_subbufs_rchan_22872 n_subbufs rchan 0 22872 NULL
161429 +enable_so_max_part_vardecl_brd_c_22873 max_part vardecl_brd.c 0 22873 NULL
161430 +enable_so_enc28j60_mem_read_fndecl_22875 enc28j60_mem_read fndecl 3 22875 NULL
161431 +enable_so_count_nfs3_readdirargs_22881 count nfs3_readdirargs 0 22881 NULL
161432 +enable_so_max_wrs_rds_iw_device_22882 max_wrs rds_iw_device 0 22882 NULL
161433 +enable_so_len_prism2_download_area_22884 len prism2_download_area 0 22884 NULL
161434 +enable_so_frag_len_atmel_private_22893 frag_len atmel_private 0 22893 NULL
161435 +enable_so_snap_names_len_rbd_image_header_ondisk_22898 snap_names_len rbd_image_header_ondisk 0 22898 NULL
161436 +enable_so___btrfs_cow_block_fndecl_22902 __btrfs_cow_block fndecl 0 22902 NULL
161437 +enable_so_lpfc_fcp_io_channel_init_fndecl_22903 lpfc_fcp_io_channel_init fndecl 2 22903 NULL
161438 +enable_so_count_ioctl_gntdev_map_grant_ref_22904 count ioctl_gntdev_map_grant_ref 0 22904 NULL nohasharray
161439 +enable_so_bcma_hcd_create_pdev_fndecl_22904 bcma_hcd_create_pdev fndecl 3 22904 &enable_so_count_ioctl_gntdev_map_grant_ref_22904
161440 +enable_so_membase_phys_efx_nic_22907 membase_phys efx_nic 0 22907 NULL
161441 +enable_so_vmalloc_32_fndecl_22908 vmalloc_32 fndecl 1 22908 NULL
161442 +enable_so_cfg80211_report_obss_beacon_fndecl_22910 cfg80211_report_obss_beacon fndecl 3 22910 NULL
161443 +enable_so_lmd_exclude_count_lustre_mount_data_22915 lmd_exclude_count lustre_mount_data 0 22915 NULL
161444 +enable_so_len_policy_load_memory_22916 len policy_load_memory 0 22916 NULL
161445 +enable_so_node_con_driver_22919 node con_driver 0 22919 NULL
161446 +enable_so_len_ext4_allocation_request_22920 len ext4_allocation_request 0 22920 NULL
161447 +enable_so_e_name_len_ext4_xattr_entry_22925 e_name_len ext4_xattr_entry 0 22925 NULL
161448 +enable_so_port100_send_frame_async_fndecl_22927 port100_send_frame_async fndecl 4 22927 NULL
161449 +enable_so_event_data_len_msgbuf_rx_event_22931 event_data_len msgbuf_rx_event 0 22931 NULL
161450 +enable_so_i2400m_rx_ctl_fndecl_22934 i2400m_rx_ctl fndecl 4 22934 NULL
161451 +enable_so_num_counters_ip6t_replace_22944 num_counters ip6t_replace 0 22944 NULL
161452 +enable_so_i2cdev_read_fndecl_22949 i2cdev_read fndecl 3 22949 NULL
161453 +enable_so_bulk_out_usbatm_driver_22950 bulk_out usbatm_driver 0 22950 NULL
161454 +enable_so_al_stripe_size_4k_drbd_md_22954 al_stripe_size_4k drbd_md 0 22954 NULL
161455 +enable_so_lov_ost_pool_init_fndecl_22956 lov_ost_pool_init fndecl 2 22956 NULL
161456 +enable_so_osd_full_h_yuv_playback_info_22967 osd_full_h yuv_playback_info 0 22967 NULL
161457 +enable_so_data_swap_cluster_info_22969 data swap_cluster_info 0 22969 NULL
161458 +enable_so_ipc_alloc_fndecl_22971 ipc_alloc fndecl 1 22971 NULL
161459 +enable_so_i2400m_rx_ctl_ack_fndecl_22972 i2400m_rx_ctl_ack fndecl 3 22972 NULL
161460 +enable_so_port_rcvegrbuf_chunks_ipath_portdata_22973 port_rcvegrbuf_chunks ipath_portdata 0 22973 NULL
161461 +enable_so_nilfs_palloc_init_blockgroup_fndecl_22978 nilfs_palloc_init_blockgroup fndecl 2 22978 NULL
161462 +enable_so_do_mmap_fndecl_22981 do_mmap fndecl 0-3-7 22981 NULL nohasharray
161463 +enable_so_kernfs_file_direct_read_fndecl_22981 kernfs_file_direct_read fndecl 3 22981 &enable_so_do_mmap_fndecl_22981
161464 +enable_so_max_pkt_size_stk1160_isoc_ctl_22983 max_pkt_size stk1160_isoc_ctl 0 22983 NULL
161465 +enable_so___do_huge_pmd_anonymous_page_fndecl_22987 __do_huge_pmd_anonymous_page fndecl 3 22987 NULL nohasharray
161466 +enable_so_acpi_battery_write_alarm_fndecl_22987 acpi_battery_write_alarm fndecl 3 22987 &enable_so___do_huge_pmd_anonymous_page_fndecl_22987
161467 +enable_so_max_bio_size_p_sizes_22989 max_bio_size p_sizes 0 22989 NULL
161468 +enable_so_sector_size_flash_info_22990 sector_size flash_info 0 22990 NULL nohasharray
161469 +enable_so_snd_hdac_read_fndecl_22990 snd_hdac_read fndecl 0 22990 &enable_so_sector_size_flash_info_22990
161470 +enable_so_p54spi_spi_write_fndecl_22994 p54spi_spi_write fndecl 4 22994 NULL
161471 +enable_so_total_xfs_da_args_22999 total xfs_da_args 0 22999 NULL nohasharray
161472 +enable_so_size_wil_memio_block_22999 size wil_memio_block 0 22999 &enable_so_total_xfs_da_args_22999
161473 +enable_so_dvb_register_adapter_fndecl_23000 dvb_register_adapter fndecl 0 23000 NULL
161474 +enable_so_ipw_packet_received_skb_fndecl_23005 ipw_packet_received_skb fndecl 2 23005 NULL
161475 +enable_so_memblock_alloc_range_fndecl_23015 memblock_alloc_range fndecl 2-1-3-4 23015 NULL nohasharray
161476 +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
161477 +enable_so_desc_size_data_queue_23015 desc_size data_queue 0 23015 &enable_so_fb_height_drm_fb_helper_surface_size_23015 nohasharray
161478 +enable_so_tx_size_iscsi_cmd_23015 tx_size iscsi_cmd 0 23015 &enable_so_desc_size_data_queue_23015
161479 +enable_so_bLength_usb_endpoint_descriptor_23016 bLength usb_endpoint_descriptor 0 23016 NULL
161480 +enable_so_tim_len_wmi_tim_info_arg_23018 tim_len wmi_tim_info_arg 0 23018 NULL nohasharray
161481 +enable_so_ioctl_private_iw_point_fndecl_23018 ioctl_private_iw_point fndecl 7 23018 &enable_so_tim_len_wmi_tim_info_arg_23018
161482 +enable_so_fw_vif_idx_ath6kl_vif_23020 fw_vif_idx ath6kl_vif 0 23020 NULL
161483 +enable_so_nested_get_page_fndecl_23031 nested_get_page fndecl 2 23031 NULL
161484 +enable_so_rx_frag_size_atl1c_adapter_23034 rx_frag_size atl1c_adapter 0 23034 NULL nohasharray
161485 +enable_so_remap_fndecl_23034 remap fndecl 3 23034 &enable_so_rx_frag_size_atl1c_adapter_23034
161486 +enable_so_io_tlb_start_vardecl_swiotlb_c_23035 io_tlb_start vardecl_swiotlb.c 0 23035 NULL
161487 +enable_so_ext4_xattr_user_set_fndecl_23036 ext4_xattr_user_set fndecl 5 23036 NULL
161488 +enable_so_in_ep_smsusb_device_t_23038 in_ep smsusb_device_t 0 23038 NULL
161489 +enable_so_lost_cnt_hint_tcp_sock_23039 lost_cnt_hint tcp_sock 0 23039 NULL
161490 +enable_so_num_comp_vectors_mlx5_eq_table_23047 num_comp_vectors mlx5_eq_table 0 23047 NULL
161491 +enable_so_y1_drm_clip_rect_23048 y1 drm_clip_rect 0 23048 NULL
161492 +enable_so_gnttab_free_count_vardecl_grant_table_c_23049 gnttab_free_count vardecl_grant-table.c 0 23049 NULL
161493 +enable_so_gfs2_read_super_fndecl_23055 gfs2_read_super fndecl 2 23055 NULL
161494 +enable_so_ueth_change_mtu_fndecl_23057 ueth_change_mtu fndecl 2 23057 NULL
161495 +enable_so_fcoe_ctlr_device_add_fndecl_23058 fcoe_ctlr_device_add fndecl 3 23058 NULL
161496 +enable_so_usb_dmac_desc_alloc_fndecl_23059 usb_dmac_desc_alloc fndecl 2 23059 NULL
161497 +enable_so_agp_base_radeon_mc_23066 agp_base radeon_mc 0 23066 NULL nohasharray
161498 +enable_so_fe_start_ext4_free_extent_23066 fe_start ext4_free_extent 0 23066 &enable_so_agp_base_radeon_mc_23066
161499 +enable_so_to_clkrc_fndecl_23074 to_clkrc fndecl 0-2-3 23074 NULL
161500 +enable_so_scif_rb_count_fndecl_23076 scif_rb_count fndecl 0 23076 NULL
161501 +enable_so_fm10k_iov_configure_fndecl_23078 fm10k_iov_configure fndecl 2 23078 NULL
161502 +enable_so_v9fs_xattr_handler_set_fndecl_23080 v9fs_xattr_handler_set fndecl 5 23080 NULL
161503 +enable_so_xfs_vm_write_end_fndecl_23085 xfs_vm_write_end fndecl 3-4 23085 NULL nohasharray
161504 +enable_so_ext_ofs_sym_ccb_23085 ext_ofs sym_ccb 0 23085 &enable_so_xfs_vm_write_end_fndecl_23085
161505 +enable_so_vicam_set_camera_power_fndecl_23091 vicam_set_camera_power fndecl 0 23091 NULL
161506 +enable_so_devfn_pci_dev_23093 devfn pci_dev 0 23093 NULL
161507 +enable_so_l2_len_ovs_frag_data_23095 l2_len ovs_frag_data 0 23095 NULL nohasharray
161508 +enable_so_s_cluster_ratio_ext4_sb_info_23095 s_cluster_ratio ext4_sb_info 0 23095 &enable_so_l2_len_ovs_frag_data_23095
161509 +enable_so_qla27xx_fwdt_template_default_size_fndecl_23103 qla27xx_fwdt_template_default_size fndecl 0 23103 NULL
161510 +enable_so___minimum_chunk_size_fndecl_23105 __minimum_chunk_size fndecl 0 23105 NULL
161511 +enable_so___netlink_create_fndecl_23110 __netlink_create fndecl 4 23110 NULL
161512 +enable_so_aim_vdev_read_fndecl_23120 aim_vdev_read fndecl 3 23120 NULL
161513 +enable_so_sq_max_sges_c4iw_qp_attributes_23123 sq_max_sges c4iw_qp_attributes 0 23123 NULL
161514 +enable_so_rtsx_usb_ms_issue_cmd_fndecl_23136 rtsx_usb_ms_issue_cmd fndecl 0 23136 NULL
161515 +enable_so_numchips_nand_chip_23137 numchips nand_chip 0 23137 NULL
161516 +enable_so_num_dv_ports_adv76xx_chip_info_23140 num_dv_ports adv76xx_chip_info 0 23140 NULL
161517 +enable_so_udf_load_pvoldesc_fndecl_23141 udf_load_pvoldesc fndecl 2 23141 NULL
161518 +enable_so_max_tx_urbs_kvaser_usb_23152 max_tx_urbs kvaser_usb 0 23152 NULL
161519 +enable_so_memblock_free_fndecl_23154 memblock_free fndecl 2-1 23154 NULL
161520 +enable_so_oxu_create_fndecl_23159 oxu_create fndecl 3-2 23159 NULL
161521 +enable_so_isdn_audio_xlaw2adpcm_fndecl_23162 isdn_audio_xlaw2adpcm fndecl 0 23162 NULL nohasharray
161522 +enable_so_rx_defrag_called_read_fndecl_23162 rx_defrag_called_read fndecl 3 23162 &enable_so_isdn_audio_xlaw2adpcm_fndecl_23162
161523 +enable_so_width_linux_logo_23166 width linux_logo 0 23166 NULL
161524 +enable_so_ip6_tnl_rcv_fndecl_23167 ip6_tnl_rcv fndecl 2 23167 NULL nohasharray
161525 +enable_so_SyS_add_key_fndecl_23167 SyS_add_key fndecl 4 23167 &enable_so_ip6_tnl_rcv_fndecl_23167
161526 +enable_so_memblock_alloc_base_fndecl_23169 memblock_alloc_base fndecl 2-1-0-3 23169 NULL nohasharray
161527 +enable_so_MaxIoCommands_aac_init_23169 MaxIoCommands aac_init 0 23169 &enable_so_memblock_alloc_base_fndecl_23169
161528 +enable_so_retry_count_ib_cm_req_param_23173 retry_count ib_cm_req_param 0 23173 NULL
161529 +enable_so_cyttsp_probe_fndecl_23175 cyttsp_probe fndecl 4 23175 NULL
161530 +enable_so_x_res_vbe_mode_ib_23177 x_res vbe_mode_ib 0 23177 NULL
161531 +enable_so_uhid_char_read_fndecl_23187 uhid_char_read fndecl 3 23187 NULL
161532 +enable_so_tx_tx_retry_data_read_fndecl_23189 tx_tx_retry_data_read fndecl 3 23189 NULL
161533 +enable_so_ir_context_mask_fw_ohci_23196 ir_context_mask fw_ohci 0 23196 NULL
161534 +enable_so_seq_lseek_fndecl_23197 seq_lseek fndecl 2 23197 NULL
161535 +enable_so_bdev_erase_fndecl_23198 bdev_erase fndecl 2-3 23198 NULL
161536 +enable_so_offs_aim_fh_23201 offs aim_fh 0 23201 NULL
161537 +enable_so_ib_uverbs_reg_mr_fndecl_23214 ib_uverbs_reg_mr fndecl 4 23214 NULL
161538 +enable_so_btt_major_vardecl_btt_c_23220 btt_major vardecl_btt.c 0 23220 NULL
161539 +enable_so_read_swap_header_fndecl_23222 read_swap_header fndecl 0 23222 NULL
161540 +enable_so_num_channels_sh_mtu2_device_23224 num_channels sh_mtu2_device 0 23224 NULL
161541 +enable_so_clk_core_get_rate_fndecl_23225 clk_core_get_rate fndecl 0 23225 NULL nohasharray
161542 +enable_so_vid_hdr_offset_ubi_device_23225 vid_hdr_offset ubi_device 0 23225 &enable_so_clk_core_get_rate_fndecl_23225
161543 +enable_so_iagnum_iag_23227 iagnum iag 0 23227 NULL
161544 +enable_so_nvkm_client_map_fndecl_23228 nvkm_client_map fndecl 3-2 23228 NULL
161545 +enable_so_ubifs_prep_grp_node_fndecl_23231 ubifs_prep_grp_node fndecl 3 23231 NULL nohasharray
161546 +enable_so_ivtv_v4l2_read_fndecl_23231 ivtv_v4l2_read fndecl 3 23231 &enable_so_ubifs_prep_grp_node_fndecl_23231
161547 +enable_so__major_vardecl_dm_c_23233 _major vardecl_dm.c 0 23233 NULL
161548 +enable_so_sb_min_blocksize_fndecl_23239 sb_min_blocksize fndecl 2-0 23239 NULL
161549 +enable_so_num_rxd_rx_ring_config_23240 num_rxd rx_ring_config 0 23240 NULL
161550 +enable_so_rx_rx_defrag_read_fndecl_23241 rx_rx_defrag_read fndecl 3 23241 NULL
161551 +enable_so_dir_per_block_bits_msdos_sb_info_23245 dir_per_block_bits msdos_sb_info 0 23245 NULL
161552 +enable_so_ksm_madvise_fndecl_23247 ksm_madvise fndecl 2 23247 NULL
161553 +enable_so___alloc_bootmem_node_fndecl_23259 __alloc_bootmem_node fndecl 3-2-4 23259 NULL
161554 +enable_so_fr_resid_fcp_resp_ext_23265 fr_resid fcp_resp_ext 0 23265 NULL
161555 +enable_so_avc_data_length_firedtv_23266 avc_data_length firedtv 0 23266 NULL
161556 +enable_so_mlx4_slave_convert_port_fndecl_23271 mlx4_slave_convert_port fndecl 0-3 23271 NULL nohasharray
161557 +enable_so_devm_ioremap_nocache_fndecl_23271 devm_ioremap_nocache fndecl 3-2 23271 &enable_so_mlx4_slave_convert_port_fndecl_23271
161558 +enable_so_cifs_read_fndecl_23274 cifs_read fndecl 3 23274 NULL
161559 +enable_so_udf_table_new_block_fndecl_23276 udf_table_new_block fndecl 0 23276 NULL
161560 +enable_so_start_blkpg_partition_23281 start blkpg_partition 0 23281 NULL
161561 +enable_so_n_tty_receive_buf2_fndecl_23286 n_tty_receive_buf2 fndecl 4 23286 NULL nohasharray
161562 +enable_so_write_flush_pipefs_fndecl_23286 write_flush_pipefs fndecl 3 23286 &enable_so_n_tty_receive_buf2_fndecl_23286
161563 +enable_so_ino_node_info_23289 ino node_info 0 23289 NULL nohasharray
161564 +enable_so_modedb_len_fb_monspecs_23289 modedb_len fb_monspecs 0 23289 &enable_so_ino_node_info_23289
161565 +enable_so_shmac_num_idents_sctp_hmacalgo_23292 shmac_num_idents sctp_hmacalgo 0 23292 NULL
161566 +enable_so_vtbl_slots_ubi_device_23293 vtbl_slots ubi_device 0 23293 NULL
161567 +enable_so_fnic_get_trace_data_fndecl_23305 fnic_get_trace_data fndecl 0 23305 NULL
161568 +enable_so_mlx4_alloc_priv_pages_fndecl_23308 mlx4_alloc_priv_pages fndecl 3 23308 NULL
161569 +enable_so_transfersize_scsi_cmnd_23314 transfersize scsi_cmnd 0 23314 NULL
161570 +enable_so_s_blocks_per_segment_nilfs_super_block_23318 s_blocks_per_segment nilfs_super_block 0 23318 NULL
161571 +enable_so_max_send_sge_ocrdma_dev_attr_23321 max_send_sge ocrdma_dev_attr 0 23321 NULL
161572 +enable_so_tail_userio_device_23332 tail userio_device 0 23332 NULL
161573 +enable_so_naces_nfs4_acl_23334 naces nfs4_acl 0 23334 NULL
161574 +enable_so_max_header_size_tsap_cb_23342 max_header_size tsap_cb 0 23342 NULL
161575 +enable_so_compat_sys_vmsplice_fndecl_23344 compat_sys_vmsplice fndecl 3 23344 NULL
161576 +enable_so_mark_block_processed_fndecl_23353 mark_block_processed fndecl 3-2 23353 NULL nohasharray
161577 +enable_so_pci_iov_virtfn_devfn_fndecl_23353 pci_iov_virtfn_devfn fndecl 0-2 23353 &enable_so_mark_block_processed_fndecl_23353
161578 +enable_so_bfad_iocmd_handler_fndecl_23357 bfad_iocmd_handler fndecl 0 23357 NULL
161579 +enable_so_vxres_crtc_23359 vxres crtc 0 23359 NULL
161580 +enable_so_v9fs_fid_xattr_get_fndecl_23361 v9fs_fid_xattr_get fndecl 0-4 23361 NULL
161581 +enable_so_default_blksize_st_modedef_23371 default_blksize st_modedef 0 23371 NULL
161582 +enable_so_packet_buffer_init_fndecl_23380 packet_buffer_init fndecl 2 23380 NULL
161583 +enable_so_kernel_map_sync_memtype_fndecl_23381 kernel_map_sync_memtype fndecl 1 23381 NULL
161584 +enable_so_length_dmi_header_23383 length dmi_header 0 23383 NULL
161585 +enable_so_pcpu_atom_size_vardecl_percpu_c_23384 pcpu_atom_size vardecl_percpu.c 0 23384 NULL
161586 +enable_so_sf_entsize_xfs_dir_ops_23386 sf_entsize xfs_dir_ops 0 23386 NULL nohasharray
161587 +enable_so_dstirq_mpc_intsrc_23386 dstirq mpc_intsrc 0 23386 &enable_so_sf_entsize_xfs_dir_ops_23386
161588 +enable_so_new_SSID_size_atmel_private_23387 new_SSID_size atmel_private 0 23387 NULL
161589 +enable_so___irlan_insert_param_fndecl_23389 __irlan_insert_param fndecl 7 23389 NULL
161590 +enable_so_xfs_alloc_file_space_fndecl_23394 xfs_alloc_file_space fndecl 2-3 23394 NULL
161591 +enable_so_ptr_mask_amdgpu_ring_23397 ptr_mask amdgpu_ring 0 23397 NULL
161592 +enable_so_de_name_len_gfs2_dirent_23398 de_name_len gfs2_dirent 0 23398 NULL
161593 +enable_so_kt_serial_setup_fndecl_23400 kt_serial_setup fndecl 4 23400 NULL
161594 +enable_so_max_cmds_ips_ha_23401 max_cmds ips_ha 0 23401 NULL nohasharray
161595 +enable_so_ikconfig_read_current_fndecl_23401 ikconfig_read_current fndecl 3 23401 &enable_so_max_cmds_ips_ha_23401
161596 +enable_so_calculate_xstate_size_fndecl_23404 calculate_xstate_size fndecl 0 23404 NULL
161597 +enable_so_s5p_jpeg_get_subsampling_mode_fndecl_23405 s5p_jpeg_get_subsampling_mode fndecl 0 23405 NULL nohasharray
161598 +enable_so_map_block_for_writepage_fndecl_23405 map_block_for_writepage fndecl 3 23405 &enable_so_s5p_jpeg_get_subsampling_mode_fndecl_23405
161599 +enable_so_nx_fw_cmd_set_gbe_port_fndecl_23412 nx_fw_cmd_set_gbe_port fndecl 3 23412 NULL
161600 +enable_so_numerator_v4l2_fract_23413 numerator v4l2_fract 0 23413 NULL
161601 +enable_so_logfs_safe_iget_fndecl_23415 logfs_safe_iget fndecl 2 23415 NULL
161602 +enable_so_cifs_write_end_fndecl_23416 cifs_write_end fndecl 5 23416 NULL
161603 +enable_so_max_snd_interval_23422 max snd_interval 0 23422 NULL
161604 +enable_so_r_caps_to_nethctrl_fw_pfvf_cmd_23424 r_caps_to_nethctrl fw_pfvf_cmd 0 23424 NULL nohasharray
161605 +enable_so_configfs_read_file_fndecl_23424 configfs_read_file fndecl 3 23424 &enable_so_r_caps_to_nethctrl_fw_pfvf_cmd_23424
161606 +enable_so___qib_get_user_pages_fndecl_23426 __qib_get_user_pages fndecl 1 23426 NULL
161607 +enable_so_nilfs_attach_snapshot_fndecl_23434 nilfs_attach_snapshot fndecl 2 23434 NULL
161608 +enable_so_ftdi_instances_vardecl_ftdi_elan_c_23438 ftdi_instances vardecl_ftdi-elan.c 0 23438 NULL
161609 +enable_so_set_xfer_rate_fndecl_23440 set_xfer_rate fndecl 2 23440 NULL
161610 +enable_so_seg_size_wa_xfer_23450 seg_size wa_xfer 0 23450 NULL
161611 +enable_so_name_len_ocfs2_dir_entry_23452 name_len ocfs2_dir_entry 0 23452 NULL nohasharray
161612 +enable_so_bytes_number_item_operations_23452 bytes_number item_operations 0 23452 &enable_so_name_len_ocfs2_dir_entry_23452
161613 +enable_so_btrfs_dir_data_len_fndecl_23457 btrfs_dir_data_len fndecl 0 23457 NULL
161614 +enable_so_max_size_virtio_gpu_drv_capset_23460 max_size virtio_gpu_drv_capset 0 23460 NULL nohasharray
161615 +enable_so_size_mwifiex_opt_sleep_confirm_23460 size mwifiex_opt_sleep_confirm 0 23460 &enable_so_max_size_virtio_gpu_drv_capset_23460
161616 +enable_so_rsi_sdio_write_register_multiple_fndecl_23471 rsi_sdio_write_register_multiple fndecl 4 23471 NULL
161617 +enable_so_offset_ttm_bus_placement_23475 offset ttm_bus_placement 0 23475 NULL
161618 +enable_so_gfn_to_hva_prot_fndecl_23484 gfn_to_hva_prot fndecl 2 23484 NULL nohasharray
161619 +enable_so_coda_psdev_write_fndecl_23484 coda_psdev_write fndecl 3 23484 &enable_so_gfn_to_hva_prot_fndecl_23484
161620 +enable_so_control_skge_rx_desc_23486 control skge_rx_desc 0 23486 NULL
161621 +enable_so_cyy_init_card_fndecl_23488 cyy_init_card fndecl 0 23488 NULL
161622 +enable_so_tx_frag_called_read_fndecl_23495 tx_frag_called_read fndecl 3 23495 NULL
161623 +enable_so_egr_sz_sge_23500 egr_sz sge 0 23500 NULL
161624 +enable_so_mxt_read_and_process_messages_fndecl_23502 mxt_read_and_process_messages fndecl 2-0 23502 NULL
161625 +enable_so_internal_create_group_fndecl_23510 internal_create_group fndecl 0 23510 NULL
161626 +enable_so_objectid_btrfs_disk_key_23513 objectid btrfs_disk_key 0 23513 NULL
161627 +enable_so_usb_ep_align_maybe_fndecl_23516 usb_ep_align_maybe fndecl 0-3 23516 NULL
161628 +enable_so_dev_irnet_read_fndecl_23518 dev_irnet_read fndecl 3 23518 NULL
161629 +enable_so_data_size_rxkad_level2_hdr_23519 data_size rxkad_level2_hdr 0 23519 NULL
161630 +enable_so_ieee80211_new_mesh_header_fndecl_23538 ieee80211_new_mesh_header fndecl 0 23538 NULL
161631 +enable_so_ring_size_per_user_data_23539 ring_size per_user_data 0 23539 NULL
161632 +enable_so_FbUsableSize_nvidia_par_23541 FbUsableSize nvidia_par 0 23541 NULL nohasharray
161633 +enable_so_mem_size_pch_dev_23541 mem_size pch_dev 0 23541 &enable_so_FbUsableSize_nvidia_par_23541
161634 +enable_so_max_pkt_size_cx231xx_bulk_ctl_23542 max_pkt_size cx231xx_bulk_ctl 0 23542 NULL
161635 +enable_so_ebt_size_mwt_fndecl_23547 ebt_size_mwt fndecl 0 23547 NULL
161636 +enable_so_cosa_write_fndecl_23549 cosa_write fndecl 3 23549 NULL
161637 +enable_so_ufs_inode_getblock_fndecl_23550 ufs_inode_getblock fndecl 4-3-2-0 23550 NULL nohasharray
161638 +enable_so_inode_no_exofs_dir_entry_23550 inode_no exofs_dir_entry 0 23550 &enable_so_ufs_inode_getblock_fndecl_23550
161639 +enable_so_ast_fbdev_set_base_fndecl_23556 ast_fbdev_set_base fndecl 2 23556 NULL
161640 +enable_so_xfs_dabuf_map_fndecl_23558 xfs_dabuf_map fndecl 2 23558 NULL
161641 +enable_so_p_chmask_f_uac2_opts_23559 p_chmask f_uac2_opts 0 23559 NULL
161642 +enable_so_max_length_axi_dmac_chan_23560 max_length axi_dmac_chan 0 23560 NULL
161643 +enable_so_bdx_change_mtu_fndecl_23561 bdx_change_mtu fndecl 2 23561 NULL
161644 +enable_so_lblock_gfs2_journal_extent_23574 lblock gfs2_journal_extent 0 23574 NULL
161645 +enable_so_e_next_omfs_extent_23580 e_next omfs_extent 0 23580 NULL nohasharray
161646 +enable_so_secblob_len_cifs_spnego_msg_23580 secblob_len cifs_spnego_msg 0 23580 &enable_so_e_next_omfs_extent_23580
161647 +enable_so_rx_max_size_cxgbi_device_23582 rx_max_size cxgbi_device 0 23582 NULL
161648 +enable_so_syslog_print_fndecl_23584 syslog_print fndecl 2 23584 NULL nohasharray
161649 +enable_so_resource_length_aml_resource_large_header_23584 resource_length aml_resource_large_header 0 23584 &enable_so_syslog_print_fndecl_23584
161650 +enable_so_jffs2_user_setxattr_fndecl_23586 jffs2_user_setxattr fndecl 5 23586 NULL
161651 +enable_so_tail_len_beacon_attr_23587 tail_len beacon_attr 0 23587 NULL
161652 +enable_so_nr_devices_ssb_bus_23589 nr_devices ssb_bus 0 23589 NULL
161653 +enable_so_max_cmd_size_ath6kl_bmi_23591 max_cmd_size ath6kl_bmi 0 23591 NULL
161654 +enable_so_dn_setsockopt_fndecl_23593 dn_setsockopt fndecl 5 23593 NULL
161655 +enable_so_hugetlb_no_page_fndecl_23597 hugetlb_no_page fndecl 5 23597 NULL
161656 +enable_so_c67x00_probe_sie_fndecl_23602 c67x00_probe_sie fndecl 3 23602 NULL
161657 +enable_so_read_file_war_stats_fndecl_23607 read_file_war_stats fndecl 3 23607 NULL
161658 +enable_so_nr_grant_frames_vardecl_grant_table_c_23609 nr_grant_frames vardecl_grant-table.c 0 23609 NULL
161659 +enable_so_mthca_alloc_icm_pages_fndecl_23615 mthca_alloc_icm_pages fndecl 2 23615 NULL nohasharray
161660 +enable_so_sctp_make_control_fndecl_23615 sctp_make_control fndecl 2 23615 &enable_so_mthca_alloc_icm_pages_fndecl_23615
161661 +enable_so_video_size_sis_video_info_23622 video_size sis_video_info 0 23622 NULL nohasharray
161662 +enable_so_mthca_alloc_fndecl_23622 mthca_alloc fndecl 0 23622 &enable_so_video_size_sis_video_info_23622
161663 +enable_so_blocksize_iso9660_options_23626 blocksize iso9660_options 0 23626 NULL
161664 +enable_so_skge_rx_setup_fndecl_23628 skge_rx_setup fndecl 4 23628 NULL
161665 +enable_so_vb_bytes_per_line_cx18_stream_23630 vb_bytes_per_line cx18_stream 0 23630 NULL nohasharray
161666 +enable_so_ll_zero_fndecl_23630 ll_zero fndecl 3-4 23630 &enable_so_vb_bytes_per_line_cx18_stream_23630
161667 +enable_so_ath9k_wmi_cmd_fndecl_23636 ath9k_wmi_cmd fndecl 4 23636 NULL
161668 +enable_so_nr_tags_blk_mq_tags_23638 nr_tags blk_mq_tags 0 23638 NULL
161669 +enable_so_packet_do_bind_fndecl_23642 packet_do_bind fndecl 4 23642 NULL
161670 +enable_so_ceph_sync_read_fndecl_23643 ceph_sync_read fndecl 0 23643 NULL
161671 +enable_so_map_urb_for_dma_fndecl_23647 map_urb_for_dma fndecl 0 23647 NULL
161672 +enable_so_size_crush_bucket_23650 size crush_bucket 0 23650 NULL
161673 +enable_so_piobcnt4k_qib_devdata_23655 piobcnt4k qib_devdata 0 23655 NULL
161674 +enable_so_viafb_bpp1_vardecl_viafbdev_c_23657 viafb_bpp1 vardecl_viafbdev.c 0 23657 NULL
161675 +enable_so_cmtp_send_interopmsg_fndecl_23659 cmtp_send_interopmsg fndecl 7 23659 NULL
161676 +enable_so_unix_stream_sendpage_fndecl_23660 unix_stream_sendpage fndecl 4-3 23660 NULL nohasharray
161677 +enable_so_elem_count_mlxsw_pci_queue_ops_23660 elem_count mlxsw_pci_queue_ops 0 23660 &enable_so_unix_stream_sendpage_fndecl_23660
161678 +enable_so_fat_length_msdos_sb_info_23672 fat_length msdos_sb_info 0 23672 NULL
161679 +enable_so_mlx5_core_access_reg_fndecl_23674 mlx5_core_access_reg fndecl 3-5 23674 NULL
161680 +enable_so_xfs_get_blocks_fndecl_23679 xfs_get_blocks fndecl 2 23679 NULL nohasharray
161681 +enable_so___send_discard_fndecl_23679 __send_discard fndecl 0 23679 &enable_so_xfs_get_blocks_fndecl_23679
161682 +enable_so_xfs_ialloc_next_ag_fndecl_23680 xfs_ialloc_next_ag fndecl 0 23680 NULL
161683 +enable_so_buf_size_vmci_ctx_chkpt_buf_info_23686 buf_size vmci_ctx_chkpt_buf_info 0 23686 NULL
161684 +enable_so_vxfs_bmap1_fndecl_23688 vxfs_bmap1 fndecl 0-2 23688 NULL
161685 +enable_so_aio_read_events_ring_fndecl_23689 aio_read_events_ring fndecl 3 23689 NULL
161686 +enable_so_aac_fib_adapter_complete_fndecl_23697 aac_fib_adapter_complete fndecl 2 23697 NULL
161687 +enable_so_size_ubifs_ino_node_23699 size ubifs_ino_node 0 23699 NULL
161688 +enable_so_rmtvaluelen_xfs_da_args_23709 rmtvaluelen xfs_da_args 0 23709 NULL nohasharray
161689 +enable_so_word_offset_bm_xfer_ctx_23709 word_offset bm_xfer_ctx 0 23709 &enable_so_rmtvaluelen_xfs_da_args_23709
161690 +enable_so_vgacon_scroll_fndecl_23715 vgacon_scroll fndecl 5 23715 NULL
161691 +enable_so_ath6kl_sdio_bmi_write_fndecl_23717 ath6kl_sdio_bmi_write fndecl 3 23717 NULL
161692 +enable_so_num_retune_mobile_texts_wm8904_priv_23719 num_retune_mobile_texts wm8904_priv 0 23719 NULL
161693 +enable_so_len_cmdbuf_t_23720 len cmdbuf_t 0 23720 NULL
161694 +enable_so_acpi_ev_create_gpe_block_fndecl_23722 acpi_ev_create_gpe_block fndecl 4 23722 NULL
161695 +enable_so_size_p9_fcall_23725 size p9_fcall 0 23725 NULL
161696 +enable_so_lbs_rdmac_read_fndecl_23729 lbs_rdmac_read fndecl 3 23729 NULL
161697 +enable_so_mlx4_set_vf_vlan_fndecl_23734 mlx4_set_vf_vlan fndecl 5 23734 NULL
161698 +enable_so_hugetlb_fault_fndecl_23735 hugetlb_fault fndecl 3 23735 NULL
161699 +enable_so_nvme_char_major_vardecl_pci_c_23741 nvme_char_major vardecl_pci.c 0 23741 NULL
161700 +enable_so_logfs_compress_fndecl_23746 logfs_compress fndecl 0-3-4 23746 NULL
161701 +enable_so__alloc_get_attr_desc_fndecl_23749 _alloc_get_attr_desc fndecl 2 23749 NULL
161702 +enable_so_writesize_acm_23756 writesize acm 0 23756 NULL
161703 +enable_so_dccp_manip_pkt_fndecl_23759 dccp_manip_pkt fndecl 4 23759 NULL
161704 +enable_so_fat_ent_bread_fndecl_23760 fat_ent_bread fndecl 4 23760 NULL
161705 +enable_so_fnic_max_trace_entries_vardecl_fnic_trace_c_23762 fnic_max_trace_entries vardecl_fnic_trace.c 0 23762 NULL
161706 +enable_so_i915_gem_create_fndecl_23768 i915_gem_create fndecl 3 23768 NULL
161707 +enable_so_size_romfs_inode_23773 size romfs_inode 0 23773 NULL
161708 +enable_so_dev_mem_seek_fndecl_23776 dev_mem_seek fndecl 2 23776 NULL nohasharray
161709 +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
161710 +enable_so_start_pnfs_block_dev_map_23776 start pnfs_block_dev_map 0 23776 &enable_so_rec_len_ext4_dir_entry_2_23776
161711 +enable_so_read_vbt_r0_fndecl_23780 read_vbt_r0 fndecl 1 23780 NULL
161712 +enable_so_tail_p9_rdir_23781 tail p9_rdir 0 23781 NULL nohasharray
161713 +enable_so_iwl_dbgfs_protection_mode_write_fndecl_23781 iwl_dbgfs_protection_mode_write fndecl 3 23781 &enable_so_tail_p9_rdir_23781
161714 +enable_so_count_uvc_debugfs_buffer_23783 count uvc_debugfs_buffer 0 23783 NULL
161715 +enable_so_rx_rx_defrag_end_read_fndecl_23786 rx_rx_defrag_end_read fndecl 3 23786 NULL
161716 +enable_so_read_buffer_length_lego_usb_tower_23787 read_buffer_length lego_usb_tower 0 23787 NULL
161717 +enable_so_nr_kvm_irq_routing_23794 nr kvm_irq_routing 0 23794 NULL
161718 +enable_so_ubi_attach_mtd_dev_fndecl_23797 ubi_attach_mtd_dev fndecl 3-4 23797 NULL nohasharray
161719 +enable_so_parity_devs_raid_type_23797 parity_devs raid_type 0 23797 &enable_so_ubi_attach_mtd_dev_fndecl_23797
161720 +enable_so_free_tiger_ch_23798 free tiger_ch 0 23798 NULL
161721 +enable_so_ra_offset_xfs_dir2_leaf_map_info_23799 ra_offset xfs_dir2_leaf_map_info 0 23799 NULL
161722 +enable_so_skip_tx_en_setup_fndecl_23801 skip_tx_en_setup fndecl 4 23801 NULL
161723 +enable_so_nr_node_ids_vardecl_23803 nr_node_ids vardecl 0 23803 NULL nohasharray
161724 +enable_so_nvme_trans_modesel_data_fndecl_23803 nvme_trans_modesel_data fndecl 4 23803 &enable_so_nr_node_ids_vardecl_23803
161725 +enable_so_desc_list_len_timb_dma_desc_23804 desc_list_len timb_dma_desc 0 23804 NULL
161726 +enable_so_sctp_skb_pull_fndecl_23806 sctp_skb_pull fndecl 2-0 23806 NULL
161727 +enable_so_cdrom_read_cdda_bpc_fndecl_23812 cdrom_read_cdda_bpc fndecl 4 23812 NULL nohasharray
161728 +enable_so_compat_sock_setsockopt_fndecl_23812 compat_sock_setsockopt fndecl 5 23812 &enable_so_cdrom_read_cdda_bpc_fndecl_23812
161729 +enable_so_sctp_init_cause_fndecl_23813 sctp_init_cause fndecl 3 23813 NULL nohasharray
161730 +enable_so_storvsc_connect_to_vsp_fndecl_23813 storvsc_connect_to_vsp fndecl 2 23813 &enable_so_sctp_init_cause_fndecl_23813
161731 +enable_so_carl9170_alloc_fndecl_23816 carl9170_alloc fndecl 1 23816 NULL
161732 +enable_so_ocfs2_get_refcount_tree_fndecl_23824 ocfs2_get_refcount_tree fndecl 2 23824 NULL
161733 +enable_so_intel_fake_agp_alloc_by_type_fndecl_23826 intel_fake_agp_alloc_by_type fndecl 1 23826 NULL nohasharray
161734 +enable_so_nbytes_ahash_request_23826 nbytes ahash_request 0 23826 &enable_so_intel_fake_agp_alloc_by_type_fndecl_23826
161735 +enable_so___xfs_dir3_free_read_fndecl_23827 __xfs_dir3_free_read fndecl 3 23827 NULL nohasharray
161736 +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
161737 +enable_so_vbi_v_stop_0_saa7134_tvnorm_23830 vbi_v_stop_0 saa7134_tvnorm 0 23830 NULL
161738 +enable_so_buffer_total_count_pvr2_stream_23834 buffer_total_count pvr2_stream 0 23834 NULL
161739 +enable_so_key_dm_region_23838 key dm_region 0 23838 NULL nohasharray
161740 +enable_so_dreq_gsr_dccp_request_sock_23838 dreq_gsr dccp_request_sock 0 23838 &enable_so_key_dm_region_23838
161741 +enable_so_compressed_bio_alloc_fndecl_23839 compressed_bio_alloc fndecl 2 23839 NULL
161742 +enable_so_rx_buf_size_skge_port_23843 rx_buf_size skge_port 0 23843 NULL
161743 +enable_so_padzero_fndecl_23844 padzero fndecl 1 23844 NULL nohasharray
161744 +enable_so_sel_read_policyvers_fndecl_23844 sel_read_policyvers fndecl 3 23844 &enable_so_padzero_fndecl_23844
161745 +enable_so_vlan_free_res_fndecl_23846 vlan_free_res fndecl 7 23846 NULL
161746 +enable_so_osd_request_async_done_fndecl_23847 osd_request_async_done fndecl 2 23847 NULL nohasharray
161747 +enable_so_pci_fastcom335_setup_fndecl_23847 pci_fastcom335_setup fndecl 4 23847 &enable_so_osd_request_async_done_fndecl_23847 nohasharray
161748 +enable_so_tidcnt_qib_tid_info_23847 tidcnt qib_tid_info 0 23847 &enable_so_pci_fastcom335_setup_fndecl_23847
161749 +enable_so_efx_ef10_sriov_configure_fndecl_23850 efx_ef10_sriov_configure fndecl 2 23850 NULL nohasharray
161750 +enable_so_SpareReplUnitNum_nftl_uci0_23850 SpareReplUnitNum nftl_uci0 0 23850 &enable_so_efx_ef10_sriov_configure_fndecl_23850
161751 +enable_so_am_length_compat_xfs_attr_multiop_23853 am_length compat_xfs_attr_multiop 0 23853 NULL
161752 +enable_so_max_srq_wqes_mlx4_caps_23857 max_srq_wqes mlx4_caps 0 23857 NULL
161753 +enable_so_clutsize_linux_logo_23865 clutsize linux_logo 0 23865 NULL
161754 +enable_so_vdisplay_drm_display_mode_23870 vdisplay drm_display_mode 0 23870 NULL
161755 +enable_so_ohead_offs_ubifs_info_23876 ohead_offs ubifs_info 0 23876 NULL nohasharray
161756 +enable_so_c_data_offs_pvr2_ioread_23876 c_data_offs pvr2_ioread 0 23876 &enable_so_ohead_offs_ubifs_info_23876
161757 +enable_so_operand_2_len_ccp_ecc_modular_math_23882 operand_2_len ccp_ecc_modular_math 0 23882 NULL
161758 +enable_so_load_msg_fndecl_23884 load_msg fndecl 2 23884 NULL
161759 +enable_so_snd_korg1212_copy_to_fndecl_23887 snd_korg1212_copy_to fndecl 6 23887 NULL
161760 +enable_so_bytes_snd_dma_buffer_23890 bytes snd_dma_buffer 0 23890 NULL nohasharray
161761 +enable_so_sb_dirband_size_hpfs_sb_info_23890 sb_dirband_size hpfs_sb_info 0 23890 &enable_so_bytes_snd_dma_buffer_23890
161762 +enable_so_batadv_backbone_hash_find_fndecl_23891 batadv_backbone_hash_find fndecl 3 23891 NULL
161763 +enable_so_in_base_pos_ceph_connection_23892 in_base_pos ceph_connection 0 23892 NULL
161764 +enable_so_vxfs_inode_by_name_fndecl_23899 vxfs_inode_by_name fndecl 0 23899 NULL nohasharray
161765 +enable_so___skb_to_sgvec_fndecl_23899 __skb_to_sgvec fndecl 0-4-3 23899 &enable_so_vxfs_inode_by_name_fndecl_23899
161766 +enable_so_block_log_squashfs_sb_info_23905 block_log squashfs_sb_info 0 23905 NULL
161767 +enable_so_status_adm8211_desc_23909 status adm8211_desc 0 23909 NULL nohasharray
161768 +enable_so_al_offset_drbd_md_23909 al_offset drbd_md 0 23909 &enable_so_status_adm8211_desc_23909
161769 +enable_so_ipath_verbs_send_fndecl_23910 ipath_verbs_send fndecl 5-3 23910 NULL
161770 +enable_so_num_pages_fuse_req_23911 num_pages fuse_req 0 23911 NULL
161771 +enable_so_avail_pebs_ubi_device_23916 avail_pebs ubi_device 0 23916 NULL
161772 +enable_so_rd_data_gfs2_rgrpd_23919 rd_data gfs2_rgrpd 0 23919 NULL
161773 +enable_so_nr_items_list_lru_one_23925 nr_items list_lru_one 0 23925 NULL
161774 +enable_so_p9_client_readdir_fndecl_23927 p9_client_readdir fndecl 0-3 23927 NULL
161775 +enable_so_disk_len_btrfs_ordered_extent_23932 disk_len btrfs_ordered_extent 0 23932 NULL
161776 +enable_so_smiapp_write_8_fndecl_23937 smiapp_write_8 fndecl 2 23937 NULL
161777 +enable_so_btrfs_setxattr_fndecl_23956 btrfs_setxattr fndecl 4 23956 NULL
161778 +enable_so_init_q_fndecl_23959 init_q fndecl 4 23959 NULL
161779 +enable_so_input_buffer_size_vardecl_seq_midi_c_23961 input_buffer_size vardecl_seq_midi.c 0 23961 NULL
161780 +enable_so_rx_ip_align_efx_nic_23965 rx_ip_align efx_nic 0 23965 NULL nohasharray
161781 +enable_so_memstick_alloc_host_fndecl_23965 memstick_alloc_host fndecl 1 23965 &enable_so_rx_ip_align_efx_nic_23965
161782 +enable_so_memblock_add_range_fndecl_23974 memblock_add_range fndecl 2-3 23974 NULL nohasharray
161783 +enable_so_fw_status_len_wl1271_23974 fw_status_len wl1271 0 23974 &enable_so_memblock_add_range_fndecl_23974
161784 +enable_so_li_channels__DIVA_CAPI_ADAPTER_23977 li_channels _DIVA_CAPI_ADAPTER 0 23977 NULL
161785 +enable_so_xfs_buf_item_get_format_fndecl_23982 xfs_buf_item_get_format fndecl 2 23982 NULL nohasharray
161786 +enable_so_sinfo_stream_sctp_sndrcvinfo_23982 sinfo_stream sctp_sndrcvinfo 0 23982 &enable_so_xfs_buf_item_get_format_fndecl_23982
161787 +enable_so_vsync_len_fb_var_screeninfo_23987 vsync_len fb_var_screeninfo 0 23987 NULL
161788 +enable_so_length_acpi_object_string_23992 length acpi_object_string 0 23992 NULL
161789 +enable_so_EventDataLength__MPI2_EVENT_NOTIFICATION_REPLY_23993 EventDataLength _MPI2_EVENT_NOTIFICATION_REPLY 0 23993 NULL
161790 +enable_so_usb_stream_next_packet_size_fndecl_23994 usb_stream_next_packet_size fndecl 0 23994 NULL nohasharray
161791 +enable_so_pci_request_selected_regions_fndecl_23994 pci_request_selected_regions fndecl 0 23994 &enable_so_usb_stream_next_packet_size_fndecl_23994
161792 +enable_so___pn533_send_async_fndecl_24001 __pn533_send_async fndecl 5 24001 NULL
161793 +enable_so_anchor_udf_options_24004 anchor udf_options 0 24004 NULL
161794 +enable_so_dir_band_start_hpfs_super_block_24005 dir_band_start hpfs_super_block 0 24005 NULL
161795 +enable_so_truncate_setsize_fndecl_24013 truncate_setsize fndecl 2 24013 NULL
161796 +enable_so_ath6kl_wmi_bssfilter_cmd_fndecl_24014 ath6kl_wmi_bssfilter_cmd fndecl 2 24014 NULL
161797 +enable_so_vlan_id_bond_vlan_tag_24019 vlan_id bond_vlan_tag 0 24019 NULL
161798 +enable_so_minimum_pcc_memory_resource_24022 minimum pcc_memory_resource 0 24022 NULL
161799 +enable_so_iscsi_session_setup_fndecl_24023 iscsi_session_setup fndecl 4-5-3 24023 NULL
161800 +enable_so_ip_base_len_tso_state_24026 ip_base_len tso_state 0 24026 NULL
161801 +enable_so_btt_map_write_fndecl_24029 btt_map_write fndecl 0 24029 NULL nohasharray
161802 +enable_so_fill_user_desc_fndecl_24029 fill_user_desc fndecl 2 24029 &enable_so_btt_map_write_fndecl_24029
161803 +enable_so_bpp__sisbios_mode_24033 bpp _sisbios_mode 0 24033 NULL
161804 +enable_so_mbo_offs_aim_channel_24035 mbo_offs aim_channel 0 24035 NULL
161805 +enable_so_namelen_cramfs_inode_24036 namelen cramfs_inode 0 24036 NULL
161806 +enable_so_obj_size_request_sock_ops_24037 obj_size request_sock_ops 0 24037 NULL
161807 +enable_so_chunk_mask_geom_24040 chunk_mask geom 0 24040 NULL
161808 +enable_so_start_block_v4l2_edid_24041 start_block v4l2_edid 0 24041 NULL
161809 +enable_so_fwnet_header_cache_fndecl_24043 fwnet_header_cache fndecl 3 24043 NULL
161810 +enable_so_vpdma_create_desc_list_fndecl_24044 vpdma_create_desc_list fndecl 2 24044 NULL
161811 +enable_so_start_switch_path_24046 start switch_path 0 24046 NULL nohasharray
161812 +enable_so_buf_size_conf_writedata_24046 buf_size conf_writedata 0 24046 &enable_so_start_switch_path_24046
161813 +enable_so_log_start_r5l_io_unit_24048 log_start r5l_io_unit 0 24048 NULL
161814 +enable_so_erase_shift_mmc_card_24051 erase_shift mmc_card 0 24051 NULL nohasharray
161815 +enable_so_size_pernet_operations_24051 size pernet_operations 0 24051 &enable_so_erase_shift_mmc_card_24051
161816 +enable_so_osst_int_ioctl_fndecl_24052 osst_int_ioctl fndecl 4 24052 NULL nohasharray
161817 +enable_so_bNumEndpoints_usb_interface_descriptor_24052 bNumEndpoints usb_interface_descriptor 0 24052 &enable_so_osst_int_ioctl_fndecl_24052
161818 +enable_so_inode_minix3_dir_entry_24054 inode minix3_dir_entry 0 24054 NULL
161819 +enable_so_shdma_init_fndecl_24059 shdma_init fndecl 3 24059 NULL
161820 +enable_so_ws_row_winsize_24064 ws_row winsize 0 24064 NULL
161821 +enable_so_jbd2_journal_dirty_metadata_fndecl_24067 jbd2_journal_dirty_metadata fndecl 0 24067 NULL
161822 +enable_so_ebx_v86_regs_24072 ebx v86_regs 0 24072 NULL
161823 +enable_so_fnic_get_stats_data_fndecl_24075 fnic_get_stats_data fndecl 0 24075 NULL
161824 +enable_so_tpg_get_default_depth_target_core_fabric_ops_24077 tpg_get_default_depth target_core_fabric_ops 0 24077 NULL
161825 +enable_so_h_sync_strt_wid_aty128_crtc_24079 h_sync_strt_wid aty128_crtc 0 24079 NULL nohasharray
161826 +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
161827 +enable_so_last_mark_lbn_os_aux_s_24082 last_mark_lbn os_aux_s 0 24082 NULL
161828 +enable_so_gfs2_meta_new_fndecl_24087 gfs2_meta_new fndecl 2 24087 NULL
161829 +enable_so_pat_pagerange_is_ram_fndecl_24089 pat_pagerange_is_ram fndecl 1-2 24089 NULL
161830 +enable_so_mw_count_ntb_transport_ctx_24094 mw_count ntb_transport_ctx 0 24094 NULL nohasharray
161831 +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
161832 +enable_so_irq_base_pm860x_chip_24096 irq_base pm860x_chip 0 24096 NULL
161833 +enable_so_sectors_md_rdev_24098 sectors md_rdev 0 24098 NULL
161834 +enable_so_capture_bufsize_vardecl_nm256_c_24100 capture_bufsize vardecl_nm256.c 0 24100 NULL
161835 +enable_so_dcbp_set_pad_bits_fndecl_24101 dcbp_set_pad_bits fndecl 2 24101 NULL
161836 +enable_so_bus_mtu_brcmf_usbdev_24102 bus_mtu brcmf_usbdev 0 24102 NULL
161837 +enable_so_max_ib_mtu_ipoib_dev_priv_24105 max_ib_mtu ipoib_dev_priv 0 24105 NULL nohasharray
161838 +enable_so_read_fifo_fndecl_24105 read_fifo fndecl 3 24105 &enable_so_max_ib_mtu_ipoib_dev_priv_24105
161839 +enable_so_add_td_to_list_fndecl_24113 add_td_to_list fndecl 3 24113 NULL nohasharray
161840 +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
161841 +enable_so_packet_multiplier_em28xx_24119 packet_multiplier em28xx 0 24119 NULL nohasharray
161842 +enable_so_rax_vmcb_save_area_24119 rax vmcb_save_area 0 24119 &enable_so_packet_multiplier_em28xx_24119
161843 +enable_so_size_sge_rspq_24120 size sge_rspq 0 24120 NULL
161844 +enable_so_srpt_build_cmd_rsp_fndecl_24126 srpt_build_cmd_rsp fndecl 0 24126 NULL
161845 +enable_so_um_idi_read_fndecl_24129 um_idi_read fndecl 3 24129 NULL
161846 +enable_so_e_cluster_omfs_extent_entry_24130 e_cluster omfs_extent_entry 0 24130 NULL
161847 +enable_so_ieee80211_assoc_success_fndecl_24131 ieee80211_assoc_success fndecl 4 24131 NULL
161848 +enable_so_radix_tree_locate_item_fndecl_24133 radix_tree_locate_item fndecl 0 24133 NULL
161849 +enable_so_num_snaps_ceph_snap_context_24136 num_snaps ceph_snap_context 0 24136 NULL nohasharray
161850 +enable_so_error_state_read_fndecl_24136 error_state_read fndecl 6 24136 &enable_so_num_snaps_ceph_snap_context_24136
161851 +enable_so_transp_elsa_hw_24137 transp elsa_hw 0 24137 NULL nohasharray
161852 +enable_so_scif_user_send_fndecl_24137 scif_user_send fndecl 3 24137 &enable_so_transp_elsa_hw_24137
161853 +enable_so_key_update_fndecl_24140 key_update fndecl 3 24140 NULL
161854 +enable_so_gnttab_free_pages_fndecl_24141 gnttab_free_pages fndecl 1 24141 NULL nohasharray
161855 +enable_so_sdram_size_solo_dev_24141 sdram_size solo_dev 0 24141 &enable_so_gnttab_free_pages_fndecl_24141 nohasharray
161856 +enable_so_segs_wa_xfer_24141 segs wa_xfer 0 24141 &enable_so_sdram_size_solo_dev_24141 nohasharray
161857 +enable_so_elem_size_v4l2_ctrl_config_24141 elem_size v4l2_ctrl_config 0 24141 &enable_so_segs_wa_xfer_24141
161858 +enable_so_t_task_nolb_se_cmd_24142 t_task_nolb se_cmd 0 24142 NULL
161859 +enable_so_len_event_data_24144 len event_data 0 24144 NULL
161860 +enable_so_fat_fat_length_fat_bios_param_block_24145 fat_fat_length fat_bios_param_block 0 24145 NULL
161861 +enable_so_d_size_lowpan_802154_cb_24147 d_size lowpan_802154_cb 0 24147 NULL
161862 +enable_so_memmap_phy_fsl_qspi_24148 memmap_phy fsl_qspi 0 24148 NULL
161863 +enable_so_initial_tsn_sctp_inithdr_host_24149 initial_tsn sctp_inithdr_host 0 24149 NULL
161864 +enable_so_lro_add_page_fndecl_24166 lro_add_page fndecl 4 24166 NULL
161865 +enable_so___alloc_extent_buffer_fndecl_24167 __alloc_extent_buffer fndecl 3-2 24167 NULL nohasharray
161866 +enable_so_ppp_sync_input_fndecl_24167 ppp_sync_input fndecl 4 24167 &enable_so___alloc_extent_buffer_fndecl_24167
161867 +enable_so_vd_tlb_preload_count_gru_vma_data_24168 vd_tlb_preload_count gru_vma_data 0 24168 NULL
161868 +enable_so_vram_start_radeon_mc_24170 vram_start radeon_mc 0 24170 NULL
161869 +enable_so_bpp_drm_mode_create_dumb_24171 bpp drm_mode_create_dumb 0 24171 NULL
161870 +enable_so_drop_count_codel_stats_24173 drop_count codel_stats 0 24173 NULL nohasharray
161871 +enable_so_ttymajor_vardecl_synclink_c_24173 ttymajor vardecl_synclink.c 0 24173 &enable_so_drop_count_codel_stats_24173
161872 +enable_so_top_v4l2_rect_24176 top v4l2_rect 0 24176 NULL
161873 +enable_so_ext4_split_extent_fndecl_24180 ext4_split_extent fndecl 0 24180 NULL
161874 +enable_so_st21nfca_hci_dm_get_data_fndecl_24183 st21nfca_hci_dm_get_data fndecl 3 24183 NULL
161875 +enable_so_o2net_send_message_vec_fndecl_24188 o2net_send_message_vec fndecl 4 24188 NULL
161876 +enable_so_iv_size_crypt_config_24199 iv_size crypt_config 0 24199 NULL
161877 +enable_so_kernel_sendpage_fndecl_24200 kernel_sendpage fndecl 0-4 24200 NULL nohasharray
161878 +enable_so_play_video_cb_fndecl_24200 play_video_cb fndecl 2 24200 &enable_so_kernel_sendpage_fndecl_24200 nohasharray
161879 +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
161880 +enable_so_f2fs_update_extent_tree_range_fndecl_24206 f2fs_update_extent_tree_range fndecl 4-2-3 24206 NULL
161881 +enable_so_bfad_iocmd_flash_get_attr_fndecl_24211 bfad_iocmd_flash_get_attr fndecl 0 24211 NULL nohasharray
161882 +enable_so_yenta_search_res_fndecl_24211 yenta_search_res fndecl 3 24211 &enable_so_bfad_iocmd_flash_get_attr_fndecl_24211
161883 +enable_so_erase_size_falcon_spi_device_24212 erase_size falcon_spi_device 0 24212 NULL
161884 +enable_so_amdgpu_benchmark_move_fndecl_24214 amdgpu_benchmark_move fndecl 2 24214 NULL
161885 +enable_so_size_drm_gem_object_24219 size drm_gem_object 0 24219 NULL
161886 +enable_so_stride_usbatm_channel_24224 stride usbatm_channel 0 24224 NULL
161887 +enable_so_carl9170_cmd_buf_fndecl_24229 carl9170_cmd_buf fndecl 3 24229 NULL
161888 +enable_so_get_ramdisk_size_fndecl_24233 get_ramdisk_size fndecl 0 24233 NULL
161889 +enable_so_udf_process_sequence_fndecl_24235 udf_process_sequence fndecl 2 24235 NULL
161890 +enable_so_num_tx_queues_fm10k_intfc_24236 num_tx_queues fm10k_intfc 0 24236 NULL
161891 +enable_so___nodes_weight_fndecl_24239 __nodes_weight fndecl 0 24239 NULL
161892 +enable_so_common_qdepth_blogic_adapter_24241 common_qdepth blogic_adapter 0 24241 NULL
161893 +enable_so_pcicfg_base_sst_pdata_24243 pcicfg_base sst_pdata 0 24243 NULL
161894 +enable_so_vlan_qos_vlan_ioctl_args_24244 vlan_qos vlan_ioctl_args 0 24244 NULL nohasharray
161895 +enable_so_qi_dqchunklen_xfs_quotainfo_24244 qi_dqchunklen xfs_quotainfo 0 24244 &enable_so_vlan_qos_vlan_ioctl_args_24244
161896 +enable_so_vmbus_sendpacket_mpb_desc_fndecl_24250 vmbus_sendpacket_mpb_desc fndecl 3-5 24250 NULL
161897 +enable_so_inode_ext2_dir_entry_2_24254 inode ext2_dir_entry_2 0 24254 NULL
161898 +enable_so_move_pfn_range_left_fndecl_24256 move_pfn_range_left fndecl 3-4 24256 NULL
161899 +enable_so_ali1535_offset_vardecl_i2c_ali1535_c_24257 ali1535_offset vardecl_i2c-ali1535.c 0 24257 NULL
161900 +enable_so_in_wm8994_fll_config_24259 in wm8994_fll_config 0 24259 NULL
161901 +enable_so_width_vpe_q_data_24262 width vpe_q_data 0 24262 NULL
161902 +enable_so_src_length_btrfs_ioctl_clone_range_args_24266 src_length btrfs_ioctl_clone_range_args 0 24266 NULL
161903 +enable_so_crtc_hblank_end_drm_display_mode_24268 crtc_hblank_end drm_display_mode 0 24268 NULL
161904 +enable_so_totalsize_microcode_header_intel_24274 totalsize microcode_header_intel 0 24274 NULL
161905 +enable_so_ccp_reverse_set_dm_area_fndecl_24279 ccp_reverse_set_dm_area fndecl 4-3 24279 NULL
161906 +enable_so_blockshift_alauda_card_info_24288 blockshift alauda_card_info 0 24288 NULL
161907 +enable_so_bop_delete_nilfs_bmap_operations_24290 bop_delete nilfs_bmap_operations 0 24290 NULL
161908 +enable_so_mlx4_set_alt_path_fndecl_24292 mlx4_set_alt_path fndecl 6 24292 NULL
161909 +enable_so__do_truncate_fndecl_24296 _do_truncate fndecl 2 24296 NULL
161910 +enable_so_sg_copy_buffer_fndecl_24297 sg_copy_buffer fndecl 0-5-4 24297 NULL
161911 +enable_so_smk_write_cipso2_fndecl_24302 smk_write_cipso2 fndecl 3 24302 NULL
161912 +enable_so_rf_our_slot_rcom_config_24309 rf_our_slot rcom_config 0 24309 NULL
161913 +enable_so_hdlcdev_rx_fndecl_24310 hdlcdev_rx fndecl 3 24310 NULL nohasharray
161914 +enable_so_ocfs2_info_scan_inode_alloc_fndecl_24310 ocfs2_info_scan_inode_alloc fndecl 3 24310 &enable_so_hdlcdev_rx_fndecl_24310 nohasharray
161915 +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
161916 +enable_so_udc_get_ppbdu_rxbytes_fndecl_24313 udc_get_ppbdu_rxbytes fndecl 0 24313 NULL nohasharray
161917 +enable_so_dm_accept_partial_bio_fndecl_24313 dm_accept_partial_bio fndecl 2 24313 &enable_so_udc_get_ppbdu_rxbytes_fndecl_24313 nohasharray
161918 +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
161919 +enable_so_pch_udc_create_dma_chain_fndecl_24314 pch_udc_create_dma_chain fndecl 3 24314 NULL nohasharray
161920 +enable_so_pstore_file_llseek_fndecl_24314 pstore_file_llseek fndecl 2 24314 &enable_so_pch_udc_create_dma_chain_fndecl_24314
161921 +enable_so_byte_per_page_nand_jedec_params_24315 byte_per_page nand_jedec_params 0 24315 NULL
161922 +enable_so_remove_monitor_info_fndecl_24319 remove_monitor_info fndecl 3 24319 NULL
161923 +enable_so_iova_qib_mregion_24323 iova qib_mregion 0 24323 NULL
161924 +enable_so_zlib_deflate_workspacesize_fndecl_24330 zlib_deflate_workspacesize fndecl 0-2-1 24330 NULL
161925 +enable_so_bfad_iocmd_diag_led_fndecl_24333 bfad_iocmd_diag_led fndecl 0 24333 NULL
161926 +enable_so_num_rports_bfa_iocfc_fwcfg_s_24334 num_rports bfa_iocfc_fwcfg_s 0 24334 NULL
161927 +enable_so_next_offset_ceph_file_info_24335 next_offset ceph_file_info 0 24335 NULL
161928 +enable_so_in_iso_pipe_usbtest_dev_24336 in_iso_pipe usbtest_dev 0 24336 NULL
161929 +enable_so_word2_lpfc_rcqe_24338 word2 lpfc_rcqe 0 24338 NULL
161930 +enable_so_smp_send_cmd_fndecl_24339 smp_send_cmd fndecl 3 24339 NULL
161931 +enable_so_blocks_v4l2_edid_24340 blocks v4l2_edid 0 24340 NULL nohasharray
161932 +enable_so_flags_rtl8187_rx_hdr_24340 flags rtl8187_rx_hdr 0 24340 &enable_so_blocks_v4l2_edid_24340
161933 +enable_so_airo_change_mtu_fndecl_24345 airo_change_mtu fndecl 2 24345 NULL
161934 +enable_so_stride_simplefb_params_24347 stride simplefb_params 0 24347 NULL
161935 +enable_so_ocfs2_validate_meta_ecc_bhs_fndecl_24348 ocfs2_validate_meta_ecc_bhs fndecl 0 24348 NULL
161936 +enable_so_sd_inptrs_gfs2_sbd_24356 sd_inptrs gfs2_sbd 0 24356 NULL
161937 +enable_so_start_isoc_chain_fndecl_24358 start_isoc_chain fndecl 4-2 24358 NULL
161938 +enable_so_isdn_header_cache_fndecl_24361 isdn_header_cache fndecl 3 24361 NULL
161939 +enable_so_ieee_il3945_rate_info_24363 ieee il3945_rate_info 0 24363 NULL
161940 +enable_so_dst_h_yuv_frame_info_24364 dst_h yuv_frame_info 0 24364 NULL
161941 +enable_so_ls_recover_size_lm_lockstruct_24365 ls_recover_size lm_lockstruct 0 24365 NULL
161942 +enable_so_plip_type_trans_fndecl_24367 plip_type_trans fndecl 0 24367 NULL
161943 +enable_so_len_ath6kl_mgmt_buff_24368 len ath6kl_mgmt_buff 0 24368 NULL
161944 +enable_so_atr_len_cm4000_dev_24376 atr_len cm4000_dev 0 24376 NULL
161945 +enable_so_virt_begin_dm_thin_new_mapping_24377 virt_begin dm_thin_new_mapping 0 24377 NULL
161946 +enable_so_sco_sock_setsockopt_fndecl_24379 sco_sock_setsockopt fndecl 5 24379 NULL
161947 +enable_so_wqe_shift_mthca_srq_24381 wqe_shift mthca_srq 0 24381 NULL
161948 +enable_so_read_reg_c_can_priv_24389 read_reg c_can_priv 0 24389 NULL
161949 +enable_so_demote_then_promote_fndecl_24392 demote_then_promote fndecl 5-3-4 24392 NULL
161950 +enable_so_ext4_rename_dir_finish_fndecl_24394 ext4_rename_dir_finish fndecl 3 24394 NULL nohasharray
161951 +enable_so_error_elp_while_nvic_pending_read_fndecl_24394 error_elp_while_nvic_pending_read fndecl 3 24394 &enable_so_ext4_rename_dir_finish_fndecl_24394
161952 +enable_so_tail_sk_buff_24399 tail sk_buff 0 24399 NULL
161953 +enable_so_fw_base_sst_pdata_24402 fw_base sst_pdata 0 24402 NULL
161954 +enable_so_compat_sys_preadv_fndecl_24404 compat_sys_preadv fndecl 3 24404 NULL
161955 +enable_so_max_frame_size_slgt_info_24405 max_frame_size slgt_info 0 24405 NULL
161956 +enable_so_ocfs2_alloc_write_ctxt_fndecl_24406 ocfs2_alloc_write_ctxt fndecl 3 24406 NULL nohasharray
161957 +enable_so_hfs_ext_find_block_fndecl_24406 hfs_ext_find_block fndecl 0-2 24406 &enable_so_ocfs2_alloc_write_ctxt_fndecl_24406
161958 +enable_so_completed_vringh_24407 completed vringh 0 24407 NULL
161959 +enable_so_max_scbs_hw_profile_24409 max_scbs hw_profile 0 24409 NULL
161960 +enable_so_smk_write_load_self2_fndecl_24412 smk_write_load_self2 fndecl 3 24412 NULL
161961 +enable_so_start_soundfont_sample_info_24413 start soundfont_sample_info 0 24413 NULL
161962 +enable_so_mtu_ArcProto_24415 mtu ArcProto 0 24415 NULL
161963 +enable_so_srq_entry_sz_mthca_dev_lim_24422 srq_entry_sz mthca_dev_lim 0 24422 NULL
161964 +enable_so_ni_gpct_device_construct_fndecl_24433 ni_gpct_device_construct fndecl 5 24433 NULL
161965 +enable_so_init_cdrom_command_fndecl_24438 init_cdrom_command fndecl 3 24438 NULL nohasharray
161966 +enable_so_size_tty_buffer_24438 size tty_buffer 0 24438 &enable_so_init_cdrom_command_fndecl_24438
161967 +enable_so_usHBlanking_Time__ATOM_DTD_FORMAT_24440 usHBlanking_Time _ATOM_DTD_FORMAT 0 24440 NULL
161968 +enable_so_fuse_request_alloc_nofs_fndecl_24442 fuse_request_alloc_nofs fndecl 1 24442 NULL
161969 +enable_so_dwTransferLength_wa_xfer_result_24445 dwTransferLength wa_xfer_result 0 24445 NULL
161970 +enable_so_ptlrpc_lprocfs_nrs_seq_write_fndecl_24446 ptlrpc_lprocfs_nrs_seq_write fndecl 3 24446 NULL
161971 +enable_so_batadv_tt_global_del_fndecl_24455 batadv_tt_global_del fndecl 4 24455 NULL
161972 +enable_so_s_last_pseg_nilfs_super_block_24457 s_last_pseg nilfs_super_block 0 24457 NULL
161973 +enable_so_wm8996_set_fll_fndecl_24459 wm8996_set_fll fndecl 4-5 24459 NULL
161974 +enable_so_drbd_bm_find_next_fndecl_24464 drbd_bm_find_next fndecl 0-2 24464 NULL nohasharray
161975 +enable_so_cfs_hash_bkt_size_fndecl_24464 cfs_hash_bkt_size fndecl 0 24464 &enable_so_drbd_bm_find_next_fndecl_24464
161976 +enable_so_remap_to_cache_fndecl_24467 remap_to_cache fndecl 3 24467 NULL
161977 +enable_so_unlink_queued_fndecl_24470 unlink_queued fndecl 4-2-3 24470 NULL
161978 +enable_so_rq_db_page_mthca_create_qp_24471 rq_db_page mthca_create_qp 0 24471 NULL
161979 +enable_so_get_filter_fndecl_24472 get_filter fndecl 0 24472 NULL
161980 +enable_so_qset_remove_urb_fndecl_24474 qset_remove_urb fndecl 4 24474 NULL nohasharray
161981 +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
161982 +enable_so_dtim_interval_read_fndecl_24477 dtim_interval_read fndecl 3 24477 NULL
161983 +enable_so_elog_base_vardecl_acpi_extlog_c_24485 elog_base vardecl_acpi_extlog.c 0 24485 NULL
161984 +enable_so_WriteBlock_fndecl_24489 WriteBlock fndecl 3 24489 NULL nohasharray
161985 +enable_so_shim_phy_add_intel_sst_drv_24489 shim_phy_add intel_sst_drv 0 24489 &enable_so_WriteBlock_fndecl_24489
161986 +enable_so_sensor_yres_em28xx_v4l2_24490 sensor_yres em28xx_v4l2 0 24490 NULL
161987 +enable_so_len_ceph_crypto_key_24496 len ceph_crypto_key 0 24496 NULL nohasharray
161988 +enable_so_drv_block_st_partstat_24496 drv_block st_partstat 0 24496 &enable_so_len_ceph_crypto_key_24496
161989 +enable_so_buf_sz_rx_info_24497 buf_sz rx_info 0 24497 NULL
161990 +enable_so_default_priority_binder_proc_24499 default_priority binder_proc 0 24499 NULL
161991 +enable_so_virtio_gpu_get_vbuf_fndecl_24501 virtio_gpu_get_vbuf fndecl 2-3 24501 NULL
161992 +enable_so_sys_sendfile64_fndecl_24508 sys_sendfile64 fndecl 4 24508 NULL
161993 +enable_so_octeon_allocate_device_fndecl_24509 octeon_allocate_device fndecl 2 24509 NULL
161994 +enable_so_max_size_usb_fifo_24517 max_size usb_fifo 0 24517 NULL
161995 +enable_so_vc_y_vc_data_24521 vc_y vc_data 0 24521 NULL
161996 +enable_so_size_firmware_24525 size firmware 0 24525 NULL
161997 +enable_so_rtl8169_try_rx_copy_fndecl_24530 rtl8169_try_rx_copy fndecl 3 24530 NULL nohasharray
161998 +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
161999 +enable_so_max_sgl_entries_vardecl_mpt3sas_base_c_24531 max_sgl_entries vardecl_mpt3sas_base.c 0 24531 NULL
162000 +enable_so_st_nci_hci_dm_put_data_fndecl_24538 st_nci_hci_dm_put_data fndecl 3 24538 NULL
162001 +enable_so_dvb_video_write_fndecl_24545 dvb_video_write fndecl 3 24545 NULL
162002 +enable_so_width_pcm_format_data_24546 width pcm_format_data 0 24546 NULL
162003 +enable_so_btrfs_issue_discard_fndecl_24553 btrfs_issue_discard fndecl 2-3 24553 NULL
162004 +enable_so_size_memblock_region_24555 size memblock_region 0 24555 NULL
162005 +enable_so_log_len_vardecl_verifier_c_24556 log_len vardecl_verifier.c 0 24556 NULL
162006 +enable_so_boot_size_il4965_firmware_pieces_24557 boot_size il4965_firmware_pieces 0 24557 NULL
162007 +enable_so_ocfs2_test_inode_bit_fndecl_24558 ocfs2_test_inode_bit fndecl 2 24558 NULL
162008 +enable_so_residual_count_se_cmd_24562 residual_count se_cmd 0 24562 NULL
162009 +enable_so_blksize_nbd_device_24565 blksize nbd_device 0 24565 NULL
162010 +enable_so_ddp_set_map_fndecl_24572 ddp_set_map fndecl 4 24572 NULL
162011 +enable_so_len_mlxsw_reg_info_24575 len mlxsw_reg_info 0 24575 NULL
162012 +enable_so_blk_extent_info_24576 blk extent_info 0 24576 NULL nohasharray
162013 +enable_so_port_subport_cnt_ipath_portdata_24576 port_subport_cnt ipath_portdata 0 24576 &enable_so_blk_extent_info_24576
162014 +enable_so_size_ceph_mds_caps_24581 size ceph_mds_caps 0 24581 NULL
162015 +enable_so_pkt_size_gspca_dev_24583 pkt_size gspca_dev 0 24583 NULL
162016 +enable_so_joydev_handle_JSIOCSBTNMAP_fndecl_24584 joydev_handle_JSIOCSBTNMAP fndecl 3 24584 NULL
162017 +enable_so_pipeline_hs_tx_stat_fifo_int_read_fndecl_24585 pipeline_hs_tx_stat_fifo_int_read fndecl 3 24585 NULL nohasharray
162018 +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
162019 +enable_so_ebcnt_vardecl_oobtest_c_24588 ebcnt vardecl_oobtest.c 0 24588 NULL
162020 +enable_so_chunk_shift_geom_24589 chunk_shift geom 0 24589 NULL
162021 +enable_so_st_int_write_fndecl_24593 st_int_write fndecl 0 24593 NULL
162022 +enable_so_img_width_zoran_jpg_settings_24594 img_width zoran_jpg_settings 0 24594 NULL
162023 +enable_so_head_TxFifo_24599 head TxFifo 0 24599 NULL nohasharray
162024 +enable_so_ea_size_l_fnode_24599 ea_size_l fnode 0 24599 &enable_so_head_TxFifo_24599
162025 +enable_so_dsp_cmx_send_member_fndecl_24602 dsp_cmx_send_member fndecl 2 24602 NULL
162026 +enable_so_root_level_kvm_mmu_24604 root_level kvm_mmu 0 24604 NULL
162027 +enable_so_ubifs_add_bud_to_log_fndecl_24607 ubifs_add_bud_to_log fndecl 4 24607 NULL
162028 +enable_so_raid_disks_mddev_24609 raid_disks mddev 0 24609 NULL nohasharray
162029 +enable_so_bnxt_setup_tc_fndecl_24609 bnxt_setup_tc fndecl 2 24609 &enable_so_raid_disks_mddev_24609
162030 +enable_so_datalen_ip_tunnel_prl_24610 datalen ip_tunnel_prl 0 24610 NULL
162031 +enable_so_unix_bind_fndecl_24615 unix_bind fndecl 3 24615 NULL
162032 +enable_so_irda_connect_indication_fndecl_24616 irda_connect_indication fndecl 4-5 24616 NULL
162033 +enable_so_dm_read_fndecl_24617 dm_read fndecl 3 24617 NULL
162034 +enable_so_s5k5baf_i2c_read_fndecl_24620 s5k5baf_i2c_read fndecl 0 24620 NULL
162035 +enable_so_ntfs_new_extent_inode_fndecl_24624 ntfs_new_extent_inode fndecl 2 24624 NULL
162036 +enable_so_fs_path_add_fndecl_24627 fs_path_add fndecl 3 24627 NULL
162037 +enable_so_qlcnic_process_rcv_diag_fndecl_24628 qlcnic_process_rcv_diag fndecl 3 24628 NULL
162038 +enable_so_compat_sys_fcntl_fndecl_24629 compat_sys_fcntl fndecl 3 24629 NULL
162039 +enable_so_xsd_read_fndecl_24630 xsd_read fndecl 3 24630 NULL
162040 +enable_so_elan_i2c_read_block_fndecl_24636 elan_i2c_read_block fndecl 4 24636 NULL nohasharray
162041 +enable_so_txq_depth_bnad_24636 txq_depth bnad 0 24636 &enable_so_elan_i2c_read_block_fndecl_24636
162042 +enable_so_len_n_flags_il_rx_pkt_24642 len_n_flags il_rx_pkt 0 24642 NULL
162043 +enable_so_agf_seqno_xfs_agf_24643 agf_seqno xfs_agf 0 24643 NULL
162044 +enable_so_data_mcp_cmd_response_24644 data mcp_cmd_response 0 24644 NULL
162045 +enable_so_array_len_xdr_array2_desc_24652 array_len xdr_array2_desc 0 24652 NULL
162046 +enable_so_cur_sg_ore_per_dev_state_24654 cur_sg ore_per_dev_state 0 24654 NULL
162047 +enable_so_intr_cnt_vxgedev_24656 intr_cnt vxgedev 0 24656 NULL
162048 +enable_so_offset_musb_qh_24658 offset musb_qh 0 24658 NULL
162049 +enable_so_lcd_hsync_dly_atyfb_par_24660 lcd_hsync_dly atyfb_par 0 24660 NULL
162050 +enable_so_out_iso_pipe_usbtest_dev_24664 out_iso_pipe usbtest_dev 0 24664 NULL
162051 +enable_so_spidev_read_fndecl_24668 spidev_read fndecl 3 24668 NULL nohasharray
162052 +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
162053 +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
162054 +enable_so_rx_pipe_brcmf_usbdev_info_24671 rx_pipe brcmf_usbdev_info 0 24671 NULL
162055 +enable_so_id_platform_device_info_24673 id platform_device_info 0 24673 NULL nohasharray
162056 +enable_so_pinctrl_utils_reserve_map_fndecl_24673 pinctrl_utils_reserve_map fndecl 5 24673 &enable_so_id_platform_device_info_24673
162057 +enable_so_uhci_fixup_short_transfer_fndecl_24676 uhci_fixup_short_transfer fndecl 0 24676 NULL
162058 +enable_so_src_width_tpg_data_24681 src_width tpg_data 0 24681 NULL nohasharray
162059 +enable_so_arizona_calc_fll_fndecl_24681 arizona_calc_fll fndecl 3 24681 &enable_so_src_width_tpg_data_24681
162060 +enable_so_inet_insert_ifa_fndecl_24688 inet_insert_ifa fndecl 0 24688 NULL
162061 +enable_so_nbits_nvmem_cell_24691 nbits nvmem_cell 0 24691 NULL
162062 +enable_so_full_height_mxr_crop_24694 full_height mxr_crop 0 24694 NULL
162063 +enable_so_ocfs2_split_tree_fndecl_24695 ocfs2_split_tree fndecl 5 24695 NULL
162064 +enable_so_transport_generic_map_mem_to_cmd_fndecl_24700 transport_generic_map_mem_to_cmd fndecl 3 24700 NULL
162065 +enable_so_rio_request_inb_dbell_fndecl_24701 rio_request_inb_dbell fndecl 4-3 24701 NULL
162066 +enable_so_size_aper_size_info_16_24703 size aper_size_info_16 0 24703 NULL
162067 +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
162068 +enable_so_start_qla_flt_region_24707 start qla_flt_region 0 24707 NULL
162069 +enable_so_udp4_gro_complete_fndecl_24711 udp4_gro_complete fndecl 2 24711 NULL
162070 +enable_so_queue_depth_blk_mq_tag_set_24719 queue_depth blk_mq_tag_set 0 24719 NULL
162071 +enable_so_qxl_ttm_tt_create_fndecl_24720 qxl_ttm_tt_create fndecl 2 24720 NULL
162072 +enable_so_drm_gem_cma_create_with_handle_fndecl_24721 drm_gem_cma_create_with_handle fndecl 3 24721 NULL
162073 +enable_so_bfs_get_block_fndecl_24726 bfs_get_block fndecl 2 24726 NULL
162074 +enable_so_VBP_kyrofb_info_24731 VBP kyrofb_info 0 24731 NULL nohasharray
162075 +enable_so_HiSax_readstatus_fndecl_24731 HiSax_readstatus fndecl 2 24731 &enable_so_VBP_kyrofb_info_24731
162076 +enable_so_next_idtentry_24734 next idtentry 0 24734 NULL
162077 +enable_so_sb_pquotino_xfs_sb_24739 sb_pquotino xfs_sb 0 24739 NULL
162078 +enable_so_shmem_undo_range_fndecl_24742 shmem_undo_range fndecl 2-3 24742 NULL
162079 +enable_so_smk_read_direct_fndecl_24744 smk_read_direct fndecl 3 24744 NULL
162080 +enable_so_set_ltab_fndecl_24745 set_ltab fndecl 3 24745 NULL
162081 +enable_so_ud_putcs_fndecl_24751 ud_putcs fndecl 4-6-5 24751 NULL
162082 +enable_so_data_dotdot_offset_xfs_dir_ops_24758 data_dotdot_offset xfs_dir_ops 0 24758 NULL
162083 +enable_so_n_ao_urbs_usbduxsigma_private_24760 n_ao_urbs usbduxsigma_private 0 24760 NULL
162084 +enable_so_scif_create_pinned_pages_fndecl_24761 scif_create_pinned_pages fndecl 1 24761 NULL nohasharray
162085 +enable_so_inftl_read_oob_fndecl_24761 inftl_read_oob fndecl 2-3 24761 &enable_so_scif_create_pinned_pages_fndecl_24761
162086 +enable_so_pending_deflate_state_24766 pending deflate_state 0 24766 NULL
162087 +enable_so_drbd_bm_total_weight_fndecl_24776 drbd_bm_total_weight fndecl 0 24776 NULL
162088 +enable_so_xlog_state_switch_iclogs_fndecl_24782 xlog_state_switch_iclogs fndecl 3 24782 NULL
162089 +enable_so__sdma_txadd_daddr_fndecl_24789 _sdma_txadd_daddr fndecl 5 24789 NULL
162090 +enable_so_gx1_read_conf_reg_fndecl_24794 gx1_read_conf_reg fndecl 0 24794 NULL nohasharray
162091 +enable_so_gnttab_expand_fndecl_24794 gnttab_expand fndecl 1 24794 &enable_so_gx1_read_conf_reg_fndecl_24794
162092 +enable_so_afs_proc_rootcell_write_fndecl_24797 afs_proc_rootcell_write fndecl 3 24797 NULL
162093 +enable_so_usHSyncWidth__ATOM_DTD_FORMAT_24801 usHSyncWidth _ATOM_DTD_FORMAT 0 24801 NULL nohasharray
162094 +enable_so_index_vardecl_atiixp_c_24801 index vardecl_atiixp.c 0 24801 &enable_so_usHSyncWidth__ATOM_DTD_FORMAT_24801
162095 +enable_so_mprotect_fixup_fndecl_24803 mprotect_fixup fndecl 4-3 24803 NULL
162096 +enable_so___read_extent_tree_block_fndecl_24804 __read_extent_tree_block fndecl 4 24804 NULL
162097 +enable_so_copy_to_urb_quirk_fndecl_24807 copy_to_urb_quirk fndecl 3-0-4 24807 NULL nohasharray
162098 +enable_so_num_q_vectors_i40e_vsi_24807 num_q_vectors i40e_vsi 0 24807 &enable_so_copy_to_urb_quirk_fndecl_24807
162099 +enable_so_ceph_auth_build_hello_fndecl_24808 ceph_auth_build_hello fndecl 0 24808 NULL
162100 +enable_so_analog_ep_isoc_em28xx_24810 analog_ep_isoc em28xx 0 24810 NULL
162101 +enable_so_ubi_io_write_fndecl_24813 ubi_io_write fndecl 5-4 24813 NULL nohasharray
162102 +enable_so_media_entity_init_fndecl_24813 media_entity_init fndecl 4-2 24813 &enable_so_ubi_io_write_fndecl_24813
162103 +enable_so_cdc_ncm_eth_hlen_fndecl_24814 cdc_ncm_eth_hlen fndecl 0 24814 NULL nohasharray
162104 +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
162105 +enable_so_RxLastCount_via_ircc_cb_24815 RxLastCount via_ircc_cb 0 24815 NULL nohasharray
162106 +enable_so_array_resync_offset_dm_raid_superblock_24815 array_resync_offset dm_raid_superblock 0 24815 &enable_so_RxLastCount_via_ircc_cb_24815
162107 +enable_so_HBP_kyrofb_info_24818 HBP kyrofb_info 0 24818 NULL
162108 +enable_so_insert_state_fndecl_24820 insert_state fndecl 0-4-3 24820 NULL
162109 +enable_so_readahead_cached_dev_24826 readahead cached_dev 0 24826 NULL
162110 +enable_so_fq_codel_zalloc_fndecl_24833 fq_codel_zalloc fndecl 1 24833 NULL
162111 +enable_so_alloc_fddidev_fndecl_24837 alloc_fddidev fndecl 1 24837 NULL
162112 +enable_so_cx88_alsa_dma_init_fndecl_24851 cx88_alsa_dma_init fndecl 2 24851 NULL nohasharray
162113 +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
162114 +enable_so_wLength_usbdevfs_ctrltransfer_24851 wLength usbdevfs_ctrltransfer 0 24851 &enable_so_acpi_ut_create_string_object_fndecl_24851
162115 +enable_so_pa_len_ext4_prealloc_space_24852 pa_len ext4_prealloc_space 0 24852 NULL
162116 +enable_so_body_len_vardecl_initramfs_c_24853 body_len vardecl_initramfs.c 0 24853 NULL
162117 +enable_so_usbhs_pipe_config_update_fndecl_24856 usbhs_pipe_config_update fndecl 4 24856 NULL
162118 +enable_so_compat_sys_process_vm_readv_fndecl_24861 compat_sys_process_vm_readv fndecl 5-3 24861 NULL nohasharray
162119 +enable_so_bgpio_init_fndecl_24861 bgpio_init fndecl 3 24861 &enable_so_compat_sys_process_vm_readv_fndecl_24861
162120 +enable_so_r592_transfer_fifo_dma_fndecl_24869 r592_transfer_fifo_dma fndecl 0 24869 NULL
162121 +enable_so___videobuf_copy_to_user_fndecl_24876 __videobuf_copy_to_user fndecl 4-0 24876 NULL
162122 +enable_so_x86_cache_alignment_cpuinfo_x86_24878 x86_cache_alignment cpuinfo_x86 0 24878 NULL
162123 +enable_so_rx_buf_per_pkt_vmxnet3_adapter_24879 rx_buf_per_pkt vmxnet3_adapter 0 24879 NULL
162124 +enable_so_zone_count_sm_ftl_24881 zone_count sm_ftl 0 24881 NULL
162125 +enable_so_nvme_cmb_qdepth_fndecl_24896 nvme_cmb_qdepth fndecl 0 24896 NULL
162126 +enable_so_i_truncate_size_ceph_inode_info_24902 i_truncate_size ceph_inode_info 0 24902 NULL
162127 +enable_so_blkif_setup_rw_req_grant_fndecl_24903 blkif_setup_rw_req_grant fndecl 2-3 24903 NULL
162128 +enable_so_memweight_fndecl_24905 memweight fndecl 0 24905 NULL
162129 +enable_so_io_limit_vardecl_at24_c_24907 io_limit vardecl_at24.c 0 24907 NULL
162130 +enable_so_iscsi_sw_tcp_send_linear_data_prep_fndecl_24908 iscsi_sw_tcp_send_linear_data_prep fndecl 3 24908 NULL
162131 +enable_so_ceph_tcp_recvpage_fndecl_24910 ceph_tcp_recvpage fndecl 0-4 24910 NULL nohasharray
162132 +enable_so_buffer_len_stats_debug_info_24910 buffer_len stats_debug_info 0 24910 &enable_so_ceph_tcp_recvpage_fndecl_24910
162133 +enable_so_len_fb_cmap_24911 len fb_cmap 0 24911 NULL
162134 +enable_so_num_tx_queues_igb_adapter_24917 num_tx_queues igb_adapter 0 24917 NULL
162135 +enable_so_data_len_ib_ucm_info_24922 data_len ib_ucm_info 0 24922 NULL
162136 +enable_so_scif_rb_init_fndecl_24923 scif_rb_init fndecl 5 24923 NULL
162137 +enable_so_tcp_mtu_to_mss_fndecl_24925 tcp_mtu_to_mss fndecl 0-2 24925 NULL
162138 +enable_so_current_area_pstore_24931 current_area pstore 0 24931 NULL
162139 +enable_so_max_sectors_per_io_vardecl_megaraid_c_24934 max_sectors_per_io vardecl_megaraid.c 0 24934 NULL
162140 +enable_so_msdc_execute_tuning_fndecl_24935 msdc_execute_tuning fndecl 2 24935 NULL
162141 +enable_so_unxz_fndecl_24936 unxz fndecl 2 24936 NULL
162142 +enable_so_rtl_download_firmware_fndecl_24937 rtl_download_firmware fndecl 3 24937 NULL
162143 +enable_so_key_len_cfg80211_connect_params_24952 key_len cfg80211_connect_params 0 24952 NULL
162144 +enable_so_vmalloc_fndecl_24955 vmalloc fndecl 1 24955 NULL nohasharray
162145 +enable_so_size_video_still_picture_24955 size video_still_picture 0 24955 &enable_so_vmalloc_fndecl_24955
162146 +enable_so_exp_row_interval_ov965x_24963 exp_row_interval ov965x 0 24963 NULL
162147 +enable_so_nilfs_cpfile_clear_snapshot_fndecl_24964 nilfs_cpfile_clear_snapshot fndecl 2 24964 NULL
162148 +enable_so_outmsg_len_hvutil_transport_24966 outmsg_len hvutil_transport 0 24966 NULL
162149 +enable_so_accent_table_size_vardecl_24972 accent_table_size vardecl 0 24972 NULL
162150 +enable_so_pppol2tp_sendmsg_fndecl_24975 pppol2tp_sendmsg fndecl 3 24975 NULL nohasharray
162151 +enable_so_system_dir_blkno_ocfs2_super_24975 system_dir_blkno ocfs2_super 0 24975 &enable_so_pppol2tp_sendmsg_fndecl_24975 nohasharray
162152 +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
162153 +enable_so_i_rbytes_ceph_inode_info_24976 i_rbytes ceph_inode_info 0 24976 NULL
162154 +enable_so_exofs_inode_by_name_fndecl_24982 exofs_inode_by_name fndecl 0 24982 NULL
162155 +enable_so_vringh_iov_pull_user_fndecl_24984 vringh_iov_pull_user fndecl 3 24984 NULL
162156 +enable_so___clone_and_map_data_bio_fndecl_24985 __clone_and_map_data_bio fndecl 3 24985 NULL
162157 +enable_so_batadv_tt_global_hash_find_fndecl_24987 batadv_tt_global_hash_find fndecl 3 24987 NULL
162158 +enable_so_dr_suballoc_bit_ocfs2_dx_root_block_24992 dr_suballoc_bit ocfs2_dx_root_block 0 24992 NULL
162159 +enable_so_ql_process_mac_rx_page_fndecl_24996 ql_process_mac_rx_page fndecl 5-4 24996 NULL
162160 +enable_so___rh_find_fndecl_24997 __rh_find fndecl 2 24997 NULL
162161 +enable_so_jfs_extendfs_fndecl_25001 jfs_extendfs fndecl 2-3 25001 NULL
162162 +enable_so_zero_the_pointer_fndecl_25003 zero_the_pointer fndecl 0 25003 NULL
162163 +enable_so_default_density_st_modedef_25006 default_density st_modedef 0 25006 NULL
162164 +enable_so_xfrm_state_mtu_fndecl_25007 xfrm_state_mtu fndecl 0-2 25007 NULL nohasharray
162165 +enable_so_sdp0length__SpiCfgData_25007 sdp0length _SpiCfgData 0 25007 &enable_so_xfrm_state_mtu_fndecl_25007
162166 +enable_so_memory_map_top_down_fndecl_25011 memory_map_top_down fndecl 1-2 25011 NULL
162167 +enable_so_ifx_spi_write_fndecl_25016 ifx_spi_write fndecl 3 25016 NULL
162168 +enable_so_rx_jumbo_pending_ethtool_ringparam_25018 rx_jumbo_pending ethtool_ringparam 0 25018 NULL
162169 +enable_so_rx_agg_ring_size_bnxt_25021 rx_agg_ring_size bnxt 0 25021 NULL
162170 +enable_so_bfad_iocmd_fabric_get_lports_fndecl_25022 bfad_iocmd_fabric_get_lports fndecl 0 25022 NULL nohasharray
162171 +enable_so_num_bd_ethoc_25022 num_bd ethoc 0 25022 &enable_so_bfad_iocmd_fabric_get_lports_fndecl_25022
162172 +enable_so__rtl_usb_tx_urb_setup_fndecl_25024 _rtl_usb_tx_urb_setup fndecl 3 25024 NULL
162173 +enable_so_shift_rtl8xxxu_rx_desc_25025 shift rtl8xxxu_rx_desc 0 25025 NULL
162174 +enable_so_height_fb_fillrect_25027 height fb_fillrect 0 25027 NULL
162175 +enable_so_vlan_cq_enet_rq_desc_25028 vlan cq_enet_rq_desc 0 25028 NULL nohasharray
162176 +enable_so_error_nfs_direct_req_25028 error nfs_direct_req 0 25028 &enable_so_vlan_cq_enet_rq_desc_25028
162177 +enable_so_crc_size_cas_25030 crc_size cas 0 25030 NULL nohasharray
162178 +enable_so_size_sym_tblmove_25030 size sym_tblmove 0 25030 &enable_so_crc_size_cas_25030
162179 +enable_so_pagesize_nand_flash_dev_25033 pagesize nand_flash_dev 0 25033 NULL
162180 +enable_so_bnx2fc_process_unsol_compl_fndecl_25035 bnx2fc_process_unsol_compl fndecl 2 25035 NULL
162181 +enable_so_dma_size_netup_unidvb_dev_25039 dma_size netup_unidvb_dev 0 25039 NULL
162182 +enable_so_db_free_next_ocfs2_dir_block_trailer_25041 db_free_next ocfs2_dir_block_trailer 0 25041 NULL
162183 +enable_so_stv0299_readregs_fndecl_25043 stv0299_readregs fndecl 4 25043 NULL
162184 +enable_so_ieee80211_amsdu_to_8023s_fndecl_25050 ieee80211_amsdu_to_8023s fndecl 5 25050 NULL
162185 +enable_so_aio_private_file_fndecl_25052 aio_private_file fndecl 2 25052 NULL nohasharray
162186 +enable_so_acpi_gpio_count_fndecl_25052 acpi_gpio_count fndecl 0 25052 &enable_so_aio_private_file_fndecl_25052
162187 +enable_so_bufsz_drm_radeon_kcmd_buffer_25056 bufsz drm_radeon_kcmd_buffer 0 25056 NULL
162188 +enable_so_size_object_info_25058 size object_info 0 25058 NULL
162189 +enable_so_in_max_chans_snd_card_asihpi_25063 in_max_chans snd_card_asihpi 0 25063 NULL
162190 +enable_so_cuse_file_compat_ioctl_fndecl_25067 cuse_file_compat_ioctl fndecl 2 25067 NULL
162191 +enable_so_ovl_alloc_entry_fndecl_25069 ovl_alloc_entry fndecl 1 25069 NULL
162192 +enable_so_buffer_size_snd_compr_runtime_25072 buffer_size snd_compr_runtime 0 25072 NULL nohasharray
162193 +enable_so_vme_user_write_fndecl_25072 vme_user_write fndecl 3 25072 &enable_so_buffer_size_snd_compr_runtime_25072
162194 +enable_so_rx_fifo_size_sh_msiof_spi_priv_25079 rx_fifo_size sh_msiof_spi_priv 0 25079 NULL nohasharray
162195 +enable_so_batadv_is_my_client_fndecl_25079 batadv_is_my_client fndecl 3 25079 &enable_so_rx_fifo_size_sh_msiof_spi_priv_25079
162196 +enable_so_ocfs2_truncate_rec_fndecl_25080 ocfs2_truncate_rec fndecl 7 25080 NULL
162197 +enable_so_transfer_snd_pcm_plugin_25081 transfer snd_pcm_plugin 0 25081 NULL
162198 +enable_so_length_bus_request_25082 length bus_request 0 25082 NULL
162199 +enable_so_len_ocrdma_sge_25084 len ocrdma_sge 0 25084 NULL nohasharray
162200 +enable_so_id_count_ocfs2_inline_data_25084 id_count ocfs2_inline_data 0 25084 &enable_so_len_ocrdma_sge_25084 nohasharray
162201 +enable_so_k_offset_offset_v1_25084 k_offset offset_v1 0 25084 &enable_so_id_count_ocfs2_inline_data_25084
162202 +enable_so_dwc3_prepare_one_trb_fndecl_25092 dwc3_prepare_one_trb fndecl 4 25092 NULL
162203 +enable_so_pix_clock_aptina_pll_25093 pix_clock aptina_pll 0 25093 NULL nohasharray
162204 +enable_so_hidp_send_intr_message_fndecl_25093 hidp_send_intr_message fndecl 4 25093 &enable_so_pix_clock_aptina_pll_25093
162205 +enable_so_ext4_xattr_block_get_fndecl_25095 ext4_xattr_block_get fndecl 0 25095 NULL
162206 +enable_so_coff_ddb_input_25097 coff ddb_input 0 25097 NULL
162207 +enable_so_namelen_xfs_attr_sf_entry_25099 namelen xfs_attr_sf_entry 0 25099 NULL
162208 +enable_so_mgmt_device_found_fndecl_25100 mgmt_device_found fndecl 11-9 25100 NULL
162209 +enable_so_TxDescriptors_vardecl_pch_gbe_param_c_25102 TxDescriptors vardecl_pch_gbe_param.c 0 25102 NULL nohasharray
162210 +enable_so_num_pbls_ocrdma_hw_mr_25102 num_pbls ocrdma_hw_mr 0 25102 &enable_so_TxDescriptors_vardecl_pch_gbe_param_c_25102
162211 +enable_so_compat_sys_select_fndecl_25104 compat_sys_select fndecl 1 25104 NULL
162212 +enable_so_vbi_height_au0828_dev_25107 vbi_height au0828_dev 0 25107 NULL
162213 +enable_so_fsm_init_fndecl_25109 fsm_init fndecl 2 25109 NULL
162214 +enable_so_blen_if_spi_packet_25117 blen if_spi_packet 0 25117 NULL
162215 +enable_so_svcrdma_max_requests_vardecl_25118 svcrdma_max_requests vardecl 0 25118 NULL nohasharray
162216 +enable_so_clipt_start_adapter_25118 clipt_start adapter 0 25118 &enable_so_svcrdma_max_requests_vardecl_25118
162217 +enable_so_minimum_acpi_resource_memory24_25122 minimum acpi_resource_memory24 0 25122 NULL
162218 +enable_so_i40e_allocate_virt_mem_d_fndecl_25132 i40e_allocate_virt_mem_d fndecl 3 25132 NULL nohasharray
162219 +enable_so_max_sge_ipath_rq_25132 max_sge ipath_rq 0 25132 &enable_so_i40e_allocate_virt_mem_d_fndecl_25132
162220 +enable_so_snd_interval_step_fndecl_25134 snd_interval_step fndecl 2 25134 NULL
162221 +enable_so_gb_len_nfc_hci_dev_25135 gb_len nfc_hci_dev 0 25135 NULL nohasharray
162222 +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
162223 +enable_so_bnx2i_get_cid_num_fndecl_25141 bnx2i_get_cid_num fndecl 0 25141 NULL
162224 +enable_so_ocfs2_init_xattr_bucket_fndecl_25146 ocfs2_init_xattr_bucket fndecl 2 25146 NULL
162225 +enable_so_rate_max_snd_pcm_hardware_25149 rate_max snd_pcm_hardware 0 25149 NULL nohasharray
162226 +enable_so_gnttab_alloc_pages_fndecl_25149 gnttab_alloc_pages fndecl 1 25149 &enable_so_rate_max_snd_pcm_hardware_25149
162227 +enable_so_SyS_pselect6_fndecl_25153 SyS_pselect6 fndecl 1 25153 NULL
162228 +enable_so_numchips_cfi_private_25154 numchips cfi_private 0 25154 NULL
162229 +enable_so_vram_base_cirrus_mc_25157 vram_base cirrus_mc 0 25157 NULL
162230 +enable_so_create_table_fndecl_25158 create_table fndecl 2 25158 NULL
162231 +enable_so_si476x_core_send_command_fndecl_25160 si476x_core_send_command fndecl 6-4 25160 NULL
162232 +enable_so_max_transfer_size_mvumi_hba_25161 max_transfer_size mvumi_hba 0 25161 NULL
162233 +enable_so_width_emmaprp_q_data_25163 width emmaprp_q_data 0 25163 NULL
162234 +enable_so_tcp_syn_options_fndecl_25174 tcp_syn_options fndecl 0 25174 NULL
162235 +enable_so_cipso_v4_map_cat_rng_hton_fndecl_25176 cipso_v4_map_cat_rng_hton fndecl 0 25176 NULL nohasharray
162236 +enable_so_s_writesize_logfs_super_25176 s_writesize logfs_super 0 25176 &enable_so_cipso_v4_map_cat_rng_hton_fndecl_25176
162237 +enable_so_btrfs_create_repair_bio_fndecl_25181 btrfs_create_repair_bio fndecl 5 25181 NULL
162238 +enable_so_heapstart_sis_video_info_25184 heapstart sis_video_info 0 25184 NULL
162239 +enable_so_coex_tx_win_size_mwifiex_adapter_25195 coex_tx_win_size mwifiex_adapter 0 25195 NULL
162240 +enable_so_run_filter_fndecl_25196 run_filter fndecl 0-3 25196 NULL
162241 +enable_so_iso_in_endp_ttusbir_25197 iso_in_endp ttusbir 0 25197 NULL nohasharray
162242 +enable_so_SyS_fgetxattr_fndecl_25197 SyS_fgetxattr fndecl 4 25197 &enable_so_iso_in_endp_ttusbir_25197
162243 +enable_so_do_shrink_fndecl_25198 do_shrink fndecl 3-2 25198 NULL
162244 +enable_so_backing_dev_len_disk_conf_25199 backing_dev_len disk_conf 0 25199 NULL
162245 +enable_so_size_ioc_sts_mv_dtd_25203 size_ioc_sts mv_dtd 0 25203 NULL
162246 +enable_so___exchange_data_block_fndecl_25208 __exchange_data_block fndecl 3-2 25208 NULL
162247 +enable_so_eth_get_headlen_fndecl_25213 eth_get_headlen fndecl 0-2 25213 NULL
162248 +enable_so_ext4_insert_range_fndecl_25217 ext4_insert_range fndecl 2-3 25217 NULL
162249 +enable_so_ocfs2_xattr_bucket_value_truncate_fndecl_25220 ocfs2_xattr_bucket_value_truncate fndecl 4 25220 NULL
162250 +enable_so_nand_bch_init_fndecl_25227 nand_bch_init fndecl 3-2 25227 NULL
162251 +enable_so_jumpshot_read_data_fndecl_25228 jumpshot_read_data fndecl 4 25228 NULL
162252 +enable_so_show_configfs_attribute_25232 show configfs_attribute 0 25232 NULL
162253 +enable_so_spy_number_iw_spy_data_25234 spy_number iw_spy_data 0 25234 NULL
162254 +enable_so_offset_zatm_pool_info_25250 offset zatm_pool_info 0 25250 NULL
162255 +enable_so_of_property_read_string_helper_fndecl_25257 of_property_read_string_helper fndecl 0-5 25257 NULL
162256 +enable_so_ar5523_cmd_fndecl_25261 ar5523_cmd fndecl 4 25261 NULL
162257 +enable_so_start_page_swap_extent_25262 start_page swap_extent 0 25262 NULL nohasharray
162258 +enable_so_first_cluster_group_blkno_ocfs2_super_25262 first_cluster_group_blkno ocfs2_super 0 25262 &enable_so_start_page_swap_extent_25262
162259 +enable_so_stk_allocate_buffers_fndecl_25264 stk_allocate_buffers fndecl 2 25264 NULL
162260 +enable_so_vol_id_ubi_mkvol_req_25267 vol_id ubi_mkvol_req 0 25267 NULL
162261 +enable_so_out_iovs_fuse_ioctl_out_25272 out_iovs fuse_ioctl_out 0 25272 NULL nohasharray
162262 +enable_so_get_fold_mark_fndecl_25272 get_fold_mark fndecl 2 25272 &enable_so_out_iovs_fuse_ioctl_out_25272 nohasharray
162263 +enable_so_register_count_acpi_gpe_block_info_25272 register_count acpi_gpe_block_info 0 25272 &enable_so_get_fold_mark_fndecl_25272
162264 +enable_so_authorizer_len_ceph_msg_connect_reply_25279 authorizer_len ceph_msg_connect_reply 0 25279 NULL
162265 +enable_so_collapse_huge_page_fndecl_25281 collapse_huge_page fndecl 2 25281 NULL
162266 +enable_so_dst_put_ci_fndecl_25284 dst_put_ci fndecl 3 25284 NULL
162267 +enable_so_exynos4_jpeg_get_frame_fmt_fndecl_25286 exynos4_jpeg_get_frame_fmt fndecl 0 25286 NULL
162268 +enable_so_ex_bn_extent_s_25293 ex_bn extent_s 0 25293 NULL
162269 +enable_so_string_length_acpi_resource_source_25296 string_length acpi_resource_source 0 25296 NULL
162270 +enable_so_part_start_hfs_sb_info_25310 part_start hfs_sb_info 0 25310 NULL
162271 +enable_so_vmw_cursor_update_image_fndecl_25311 vmw_cursor_update_image fndecl 4-3 25311 NULL nohasharray
162272 +enable_so_sz_m1_mlx5_wq_cyc_25311 sz_m1 mlx5_wq_cyc 0 25311 &enable_so_vmw_cursor_update_image_fndecl_25311
162273 +enable_so_cropw_val_pvr2_hdw_25312 cropw_val pvr2_hdw 0 25312 NULL
162274 +enable_so_resindex_dma_base_sst_acpi_desc_25313 resindex_dma_base sst_acpi_desc 0 25313 NULL
162275 +enable_so_fw_size_bcm203x_data_25314 fw_size bcm203x_data 0 25314 NULL
162276 +enable_so_num_desc_nx_host_rds_ring_25321 num_desc nx_host_rds_ring 0 25321 NULL
162277 +enable_so_cnt_i40e_hmc_obj_info_25322 cnt i40e_hmc_obj_info 0 25322 NULL
162278 +enable_so_iscsi_tcp_conn_setup_fndecl_25323 iscsi_tcp_conn_setup fndecl 2 25323 NULL
162279 +enable_so_max_outstanding_tx_usbcan_msg_softinfo_25327 max_outstanding_tx usbcan_msg_softinfo 0 25327 NULL
162280 +enable_so_bmv_count_getbmapx_25336 bmv_count getbmapx 0 25336 NULL
162281 +enable_so_width_deinterlace_q_data_25337 width deinterlace_q_data 0 25337 NULL
162282 +enable_so_vc_init_fndecl_25338 vc_init fndecl 3-2 25338 NULL
162283 +enable_so_sysfs_create_groups_fndecl_25339 sysfs_create_groups fndecl 0 25339 NULL
162284 +enable_so_enc_key_size_ecryptfs_key_record_25340 enc_key_size ecryptfs_key_record 0 25340 NULL nohasharray
162285 +enable_so_bytesperline_zoran_v4l_settings_25340 bytesperline zoran_v4l_settings 0 25340 &enable_so_enc_key_size_ecryptfs_key_record_25340 nohasharray
162286 +enable_so_xfs_inobt_lookup_fndecl_25340 xfs_inobt_lookup fndecl 2 25340 &enable_so_bytesperline_zoran_v4l_settings_25340
162287 +enable_so_svc_meta_len_htc_conn_service_msg_25346 svc_meta_len htc_conn_service_msg 0 25346 NULL nohasharray
162288 +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
162289 +enable_so_skb_add_rx_frag_fndecl_25355 skb_add_rx_frag fndecl 2-5-6-4 25355 NULL
162290 +enable_so_spi_rd_buf_fndecl_25357 spi_rd_buf fndecl 4 25357 NULL
162291 +enable_so___mptctl_ioctl_fndecl_25360 __mptctl_ioctl fndecl 2 25360 NULL
162292 +enable_so_bfs_move_block_fndecl_25369 bfs_move_block fndecl 1-2 25369 NULL
162293 +enable_so_encode_string_fndecl_25371 encode_string fndecl 2 25371 NULL
162294 +enable_so_sddr55_bulk_transport_fndecl_25377 sddr55_bulk_transport fndecl 4 25377 NULL nohasharray
162295 +enable_so_mt312_write_fndecl_25377 mt312_write fndecl 4 25377 &enable_so_sddr55_bulk_transport_fndecl_25377
162296 +enable_so_unix_dgram_recvmsg_fndecl_25379 unix_dgram_recvmsg fndecl 3 25379 NULL
162297 +enable_so_bio_copy_kern_fndecl_25382 bio_copy_kern fndecl 3 25382 NULL
162298 +enable_so_grefs_per_grant_frame_vardecl_grant_table_c_25386 grefs_per_grant_frame vardecl_grant-table.c 0 25386 NULL nohasharray
162299 +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
162300 +enable_so_nr_channels_timb_dma_platform_data_25387 nr_channels timb_dma_platform_data 0 25387 NULL
162301 +enable_so_tda18218_wr_regs_fndecl_25388 tda18218_wr_regs fndecl 4 25388 NULL
162302 +enable_so_xlog_write_start_rec_fndecl_25394 xlog_write_start_rec fndecl 0 25394 NULL
162303 +enable_so_atom_size_pcpu_alloc_info_25396 atom_size pcpu_alloc_info 0 25396 NULL
162304 +enable_so___reserved_mem_reserve_reg_fndecl_25400 __reserved_mem_reserve_reg fndecl 1 25400 NULL
162305 +enable_so_brcmf_pcie_read_tcm16_fndecl_25401 brcmf_pcie_read_tcm16 fndecl 0 25401 NULL
162306 +enable_so_metromem_dma_metronomefb_par_25407 metromem_dma metronomefb_par 0 25407 NULL
162307 +enable_so_memblock_virt_alloc_try_nid_fndecl_25409 memblock_virt_alloc_try_nid fndecl 2-1-3-4 25409 NULL nohasharray
162308 +enable_so_hfs_ext_build_key_fndecl_25409 hfs_ext_build_key fndecl 3 25409 &enable_so_memblock_virt_alloc_try_nid_fndecl_25409 nohasharray
162309 +enable_so_memsize_t4_cq_25409 memsize t4_cq 0 25409 &enable_so_hfs_ext_build_key_fndecl_25409
162310 +enable_so_pci_wch_ch353_setup_fndecl_25411 pci_wch_ch353_setup fndecl 4 25411 NULL nohasharray
162311 +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
162312 +enable_so_entries_size_ebt_replace_kernel_25413 entries_size ebt_replace_kernel 0 25413 NULL
162313 +enable_so_ptlrpcd_per_cpt_max_vardecl_ptlrpcd_c_25416 ptlrpcd_per_cpt_max vardecl_ptlrpcd.c 0 25416 NULL
162314 +enable_so_image_len_gspca_dev_25419 image_len gspca_dev 0 25419 NULL
162315 +enable_so_ib_init_ah_from_wc_fndecl_25420 ib_init_ah_from_wc fndecl 2 25420 NULL
162316 +enable_so_find_rsb_fndecl_25421 find_rsb fndecl 3 25421 NULL nohasharray
162317 +enable_so_remap_pci_mem_fndecl_25421 remap_pci_mem fndecl 2-1 25421 &enable_so_find_rsb_fndecl_25421
162318 +enable_so_num_bytes_btrfs_file_extent_item_25435 num_bytes btrfs_file_extent_item 0 25435 NULL
162319 +enable_so_def_rx_buf_size_octeon_config_25436 def_rx_buf_size octeon_config 0 25436 NULL
162320 +enable_so_i2c_write_fndecl_25439 i2c_write fndecl 4 25439 NULL nohasharray
162321 +enable_so_free_pfn_range_fndecl_25439 free_pfn_range fndecl 1-2 25439 &enable_so_i2c_write_fndecl_25439
162322 +enable_so_size_xen_netif_tx_request_25440 size xen_netif_tx_request 0 25440 NULL
162323 +enable_so_alloc_vm_area_fndecl_25446 alloc_vm_area fndecl 1 25446 NULL
162324 +enable_so_ds_nvme_lbaf_25461 ds nvme_lbaf 0 25461 NULL nohasharray
162325 +enable_so_smk_read_ptrace_fndecl_25461 smk_read_ptrace fndecl 3 25461 &enable_so_ds_nvme_lbaf_25461
162326 +enable_so_tx_count_slgt_info_25462 tx_count slgt_info 0 25462 NULL
162327 +enable_so_sddr09_send_scsi_command_fndecl_25467 sddr09_send_scsi_command fndecl 3 25467 NULL nohasharray
162328 +enable_so_id_stmpe_platform_data_25467 id stmpe_platform_data 0 25467 &enable_so_sddr09_send_scsi_command_fndecl_25467
162329 +enable_so_frame_alloc_fndecl_25470 frame_alloc fndecl 4 25470 NULL
162330 +enable_so_size_user_regset_25473 size user_regset 0 25473 NULL nohasharray
162331 +enable_so_viafb_vt1636_proc_write_fndecl_25473 viafb_vt1636_proc_write fndecl 3 25473 &enable_so_size_user_regset_25473
162332 +enable_so_playback_periodsize_rme96_25479 playback_periodsize rme96 0 25479 NULL
162333 +enable_so_chunk_sectors_mddev_25484 chunk_sectors mddev 0 25484 NULL
162334 +enable_so_got_frame_fndecl_25487 got_frame fndecl 2 25487 NULL
162335 +enable_so_rx_transfer_len_hif_device_usb_25494 rx_transfer_len hif_device_usb 0 25494 NULL nohasharray
162336 +enable_so_next_cmd_len_sg_fd_25494 next_cmd_len sg_fd 0 25494 &enable_so_rx_transfer_len_hif_device_usb_25494
162337 +enable_so_bfad_iocmd_vhba_query_fndecl_25495 bfad_iocmd_vhba_query fndecl 0 25495 NULL
162338 +enable_so_max_buckets_out_mpt_lan_priv_25498 max_buckets_out mpt_lan_priv 0 25498 NULL
162339 +enable_so_count_seq_file_25501 count seq_file 0 25501 NULL
162340 +enable_so_size_map_info_25510 size map_info 0 25510 NULL
162341 +enable_so_hidp_send_message_fndecl_25511 hidp_send_message fndecl 6 25511 NULL nohasharray
162342 +enable_so_blk_init_tags_fndecl_25511 blk_init_tags fndecl 1 25511 &enable_so_hidp_send_message_fndecl_25511
162343 +enable_so_btrfs_qgroup_reserve_meta_fndecl_25512 btrfs_qgroup_reserve_meta fndecl 0 25512 NULL
162344 +enable_so_SYSC_kexec_file_load_fndecl_25513 SYSC_kexec_file_load fndecl 3 25513 NULL
162345 +enable_so_pppoe_recvmsg_fndecl_25514 pppoe_recvmsg fndecl 3 25514 NULL nohasharray
162346 +enable_so_n_sg_list_25514 n sg_list 0 25514 &enable_so_pppoe_recvmsg_fndecl_25514 nohasharray
162347 +enable_so_read_file_spectral_period_fndecl_25514 read_file_spectral_period fndecl 3 25514 &enable_so_n_sg_list_25514
162348 +enable_so_bfad_iocmd_lport_get_attr_fndecl_25521 bfad_iocmd_lport_get_attr fndecl 0 25521 NULL
162349 +enable_so_base_aperture_25525 base aperture 0 25525 NULL
162350 +enable_so_cuse_file_ioctl_fndecl_25529 cuse_file_ioctl fndecl 2 25529 NULL
162351 +enable_so_smk_write_unconfined_fndecl_25530 smk_write_unconfined fndecl 3 25530 NULL
162352 +enable_so_screen_fb_size_vardecl_hyperv_fb_c_25531 screen_fb_size vardecl_hyperv_fb.c 0 25531 NULL
162353 +enable_so_size_i40e_hmc_obj_info_25536 size i40e_hmc_obj_info 0 25536 NULL
162354 +enable_so_ioh_gpio_setup_fndecl_25540 ioh_gpio_setup fndecl 2 25540 NULL
162355 +enable_so_f_adc_rtl2832_sdr_dev_25544 f_adc rtl2832_sdr_dev 0 25544 NULL
162356 +enable_so_width_efifb_dmi_info_25557 width efifb_dmi_info 0 25557 NULL
162357 +enable_so_iommu_map_mmio_space_fndecl_25569 iommu_map_mmio_space fndecl 2-1 25569 NULL
162358 +enable_so_max_beb_per1024_ubi_attach_req_25573 max_beb_per1024 ubi_attach_req 0 25573 NULL
162359 +enable_so_num_stations_iwl_priv_25574 num_stations iwl_priv 0 25574 NULL
162360 +enable_so_hpi_outstream_ancillary_read_fndecl_25575 hpi_outstream_ancillary_read fndecl 4 25575 NULL nohasharray
162361 +enable_so_wsm_write_mib_fndecl_25575 wsm_write_mib fndecl 4 25575 &enable_so_hpi_outstream_ancillary_read_fndecl_25575
162362 +enable_so_lpage_size_genwqe_sgl_25578 lpage_size genwqe_sgl 0 25578 NULL
162363 +enable_so_bytes_per_pixel_usbvision_v4l2_format_st_25584 bytes_per_pixel usbvision_v4l2_format_st 0 25584 NULL
162364 +enable_so_cifs_mapchar_fndecl_25586 cifs_mapchar fndecl 0 25586 NULL
162365 +enable_so_test_ofs_cyttsp4_sysinfo_ofs_25587 test_ofs cyttsp4_sysinfo_ofs 0 25587 NULL
162366 +enable_so_isr_tx_exch_complete_read_fndecl_25588 isr_tx_exch_complete_read fndecl 3 25588 NULL
162367 +enable_so_last_page_snd_emu10k1_memblk_25591 last_page snd_emu10k1_memblk 0 25591 NULL
162368 +enable_so_s_partition_len_udf_part_map_25593 s_partition_len udf_part_map 0 25593 NULL nohasharray
162369 +enable_so_MaxReplyDescriptorPostQueueDepth_mpt3sas_facts_25593 MaxReplyDescriptorPostQueueDepth mpt3sas_facts 0 25593 &enable_so_s_partition_len_udf_part_map_25593
162370 +enable_so_pcm_playback_analog_channels_snd_tscm_spec_25594 pcm_playback_analog_channels snd_tscm_spec 0 25594 NULL
162371 +enable_so_isr_hw_pm_mode_changes_read_fndecl_25597 isr_hw_pm_mode_changes_read fndecl 3 25597 NULL nohasharray
162372 +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
162373 +enable_so_max_cmd_sg_entries_ctlr_info_25601 max_cmd_sg_entries ctlr_info 0 25601 NULL
162374 +enable_so_matroxfb_test_and_set_rounding_fndecl_25619 matroxfb_test_and_set_rounding fndecl 0-2 25619 NULL nohasharray
162375 +enable_so_size_hpi_message_header_25619 size hpi_message_header 0 25619 &enable_so_matroxfb_test_and_set_rounding_fndecl_25619
162376 +enable_so_ceph_osdc_alloc_request_fndecl_25622 ceph_osdc_alloc_request fndecl 3 25622 NULL
162377 +enable_so_pmcraid_major_vardecl_pmcraid_c_25627 pmcraid_major vardecl_pmcraid.c 0 25627 NULL
162378 +enable_so_ocfs2_trim_group_fndecl_25634 ocfs2_trim_group fndecl 0 25634 NULL nohasharray
162379 +enable_so_status_xen_netif_rx_response_25634 status xen_netif_rx_response 0 25634 &enable_so_ocfs2_trim_group_fndecl_25634
162380 +enable_so_dib9000_risc_mem_read_fndecl_25636 dib9000_risc_mem_read fndecl 4 25636 NULL
162381 +enable_so_profile_replace_fndecl_25647 profile_replace fndecl 3 25647 NULL
162382 +enable_so_rpipe_get_by_ep_fndecl_25656 rpipe_get_by_ep fndecl 0 25656 NULL
162383 +enable_so_ocfs2_xattr_trusted_set_fndecl_25657 ocfs2_xattr_trusted_set fndecl 5 25657 NULL
162384 +enable_so_getxattr_inode_operations_25660 getxattr inode_operations 0 25660 NULL
162385 +enable_so_s5c73m3_spi_write_fndecl_25661 s5c73m3_spi_write fndecl 4-3 25661 NULL nohasharray
162386 +enable_so_btt_write_pg_fndecl_25661 btt_write_pg fndecl 0 25661 &enable_so_s5c73m3_spi_write_fndecl_25661
162387 +enable_so_eec_entry_sz_mthca_dev_lim_25665 eec_entry_sz mthca_dev_lim 0 25665 NULL
162388 +enable_so_m_ag_maxlevels_xfs_mount_25666 m_ag_maxlevels xfs_mount 0 25666 NULL nohasharray
162389 +enable_so_HWPartsNum_qinfo_chip_25666 HWPartsNum qinfo_chip 0 25666 &enable_so_m_ag_maxlevels_xfs_mount_25666
162390 +enable_so_bfad_iocmd_qos_reset_stats_fndecl_25670 bfad_iocmd_qos_reset_stats fndecl 0 25670 NULL nohasharray
162391 +enable_so_nvme_trans_log_info_exceptions_fndecl_25670 nvme_trans_log_info_exceptions fndecl 3 25670 &enable_so_bfad_iocmd_qos_reset_stats_fndecl_25670
162392 +enable_so_bnxt_change_mtu_fndecl_25675 bnxt_change_mtu fndecl 2 25675 NULL nohasharray
162393 +enable_so_pipeline_enc_tx_stat_fifo_int_read_fndecl_25675 pipeline_enc_tx_stat_fifo_int_read fndecl 3 25675 &enable_so_bnxt_change_mtu_fndecl_25675
162394 +enable_so_tsi148_master_set_fndecl_25678 tsi148_master_set fndecl 4 25678 NULL
162395 +enable_so_layout_mdp_superblock_s_25680 layout mdp_superblock_s 0 25680 NULL
162396 +enable_so_max_cmd_per_lun_vardecl_megaraid_c_25693 max_cmd_per_lun vardecl_megaraid.c 0 25693 NULL
162397 +enable_so_persistent_ram_ecc_string_fndecl_25699 persistent_ram_ecc_string fndecl 0 25699 NULL
162398 +enable_so_xh_num_buckets_ocfs2_xattr_header_25701 xh_num_buckets ocfs2_xattr_header 0 25701 NULL nohasharray
162399 +enable_so_chv_get_total_gtt_size_fndecl_25701 chv_get_total_gtt_size fndecl 0-1 25701 &enable_so_xh_num_buckets_ocfs2_xattr_header_25701
162400 +enable_so_val_ilt_cfg_pair_25703 val ilt_cfg_pair 0 25703 NULL
162401 +enable_so_sysctl_numa_balancing_scan_size_vardecl_25704 sysctl_numa_balancing_scan_size vardecl 0 25704 NULL nohasharray
162402 +enable_so_ir_post_altera_jtag_25704 ir_post altera_jtag 0 25704 &enable_so_sysctl_numa_balancing_scan_size_vardecl_25704
162403 +enable_so_metadata_bnxt_tpa_info_25705 metadata bnxt_tpa_info 0 25705 NULL nohasharray
162404 +enable_so_cmnd_out_ep_vub300_mmc_host_25705 cmnd_out_ep vub300_mmc_host 0 25705 &enable_so_metadata_bnxt_tpa_info_25705 nohasharray
162405 +enable_so_get_bio_block_fndecl_25705 get_bio_block fndecl 0 25705 &enable_so_cmnd_out_ep_vub300_mmc_host_25705
162406 +enable_so_ntfs_file_fsync_fndecl_25706 ntfs_file_fsync fndecl 2-3 25706 NULL
162407 +enable_so_max_cid_space_cnic_local_25708 max_cid_space cnic_local 0 25708 NULL
162408 +enable_so___sector_request_25709 __sector request 0 25709 NULL
162409 +enable_so_vfd_write_fndecl_25710 vfd_write fndecl 3 25710 NULL
162410 +enable_so_buf_count_drm_buf_entry_25716 buf_count drm_buf_entry 0 25716 NULL
162411 +enable_so_svc_max_payload_fndecl_25718 svc_max_payload fndecl 0 25718 NULL
162412 +enable_so_left_margin_fb_var_screeninfo_25722 left_margin fb_var_screeninfo 0 25722 NULL
162413 +enable_so_data_cnt_adv_scsi_req_q_25725 data_cnt adv_scsi_req_q 0 25725 NULL nohasharray
162414 +enable_so_SyS_fsetxattr_fndecl_25725 SyS_fsetxattr fndecl 4 25725 &enable_so_data_cnt_adv_scsi_req_q_25725
162415 +enable_so_nr_scanned_scan_control_25733 nr_scanned scan_control 0 25733 NULL
162416 +enable_so_raid1_resize_fndecl_25735 raid1_resize fndecl 2 25735 NULL
162417 +enable_so_res_cnt_common_sol_cqe_25739 res_cnt common_sol_cqe 0 25739 NULL
162418 +enable_so_ms_read_copyblock_fndecl_25740 ms_read_copyblock fndecl 7 25740 NULL
162419 +enable_so_ext4_da_map_blocks_fndecl_25744 ext4_da_map_blocks fndecl 2 25744 NULL
162420 +enable_so_iov_iter_kvec_fndecl_25747 iov_iter_kvec fndecl 5-4 25747 NULL
162421 +enable_so_tics_vardecl_hfcpci_c_25752 tics vardecl_hfcpci.c 0 25752 NULL
162422 +enable_so_burst_kirkwood_dma_data_25753 burst kirkwood_dma_data 0 25753 NULL
162423 +enable_so_pvr2_i2c_write_fndecl_25754 pvr2_i2c_write fndecl 4 25754 NULL nohasharray
162424 +enable_so___blk_end_request_fndecl_25754 __blk_end_request fndecl 3-2 25754 &enable_so_pvr2_i2c_write_fndecl_25754
162425 +enable_so_buffer_size_command_25757 buffer_size command 0 25757 NULL
162426 +enable_so_rh_urb_enqueue_fndecl_25758 rh_urb_enqueue fndecl 0 25758 NULL
162427 +enable_so_regmap_range_read_file_fndecl_25764 regmap_range_read_file fndecl 3 25764 NULL
162428 +enable_so_max_memblock_type_25766 max memblock_type 0 25766 NULL
162429 +enable_so_src_len_ccp_aes_engine_25770 src_len ccp_aes_engine 0 25770 NULL
162430 +enable_so_event_len_fanotify_event_metadata_25772 event_len fanotify_event_metadata 0 25772 NULL
162431 +enable_so_rx_rx_cmplt_read_fndecl_25778 rx_rx_cmplt_read fndecl 3 25778 NULL
162432 +enable_so_btrfs_inode_extref_name_len_fndecl_25779 btrfs_inode_extref_name_len fndecl 0 25779 NULL
162433 +enable_so_extension_affs_tail_25782 extension affs_tail 0 25782 NULL
162434 +enable_so___remove_pages_fndecl_25788 __remove_pages fndecl 3-2 25788 NULL
162435 +enable_so_qla82xx_pci_mem_write_2M_fndecl_25790 qla82xx_pci_mem_write_2M fndecl 2 25790 NULL
162436 +enable_so_hpet_readl_fndecl_25794 hpet_readl fndecl 0 25794 NULL
162437 +enable_so_num_prealloc_crypto_pages_vardecl_crypto_c_25796 num_prealloc_crypto_pages vardecl_crypto.c 0 25796 NULL
162438 +enable_so_pg_base_nfs_pgio_mirror_25798 pg_base nfs_pgio_mirror 0 25798 NULL
162439 +enable_so_stolen_base_i915_gem_mm_25807 stolen_base i915_gem_mm 0 25807 NULL
162440 +enable_so_sgentry_align_brcmf_sdio_25813 sgentry_align brcmf_sdio 0 25813 NULL nohasharray
162441 +enable_so_lf_depth_gfs2_leaf_25813 lf_depth gfs2_leaf 0 25813 &enable_so_sgentry_align_brcmf_sdio_25813
162442 +enable_so_keys_proc_write_fndecl_25819 keys_proc_write fndecl 3 25819 NULL
162443 +enable_so___kfifo_in_fndecl_25822 __kfifo_in fndecl 3-0 25822 NULL
162444 +enable_so_ext4_kvmalloc_fndecl_25823 ext4_kvmalloc fndecl 1 25823 NULL
162445 +enable_so_bfad_iocmd_tfru_read_fndecl_25830 bfad_iocmd_tfru_read fndecl 0 25830 NULL
162446 +enable_so_pages_per_rd_bio_scrub_ctx_25831 pages_per_rd_bio scrub_ctx 0 25831 NULL
162447 +enable_so_depth_cx25821_fmt_25832 depth cx25821_fmt 0 25832 NULL
162448 +enable_so_cookie_offset_nfsd4_readdir_25834 cookie_offset nfsd4_readdir 0 25834 NULL
162449 +enable_so_mmc_test_area_map_fndecl_25839 mmc_test_area_map fndecl 2-4 25839 NULL
162450 +enable_so_start_cxgb4_range_25845 start cxgb4_range 0 25845 NULL
162451 +enable_so_ric_ies_len_cfg80211_ft_event_params_25853 ric_ies_len cfg80211_ft_event_params 0 25853 NULL
162452 +enable_so_table_size_drm_ati_pcigart_info_25856 table_size drm_ati_pcigart_info 0 25856 NULL
162453 +enable_so_num_sg_lists_vardecl_25860 num_sg_lists vardecl 0 25860 NULL
162454 +enable_so_asize_mypriv_25864 asize mypriv 0 25864 NULL
162455 +enable_so_usVBlanking_Time__ATOM_DTD_FORMAT_25867 usVBlanking_Time _ATOM_DTD_FORMAT 0 25867 NULL nohasharray
162456 +enable_so_ether_type_efx_filter_spec_25867 ether_type efx_filter_spec 0 25867 &enable_so_usVBlanking_Time__ATOM_DTD_FORMAT_25867
162457 +enable_so_ndlc_probe_fndecl_25869 ndlc_probe fndecl 4 25869 NULL
162458 +enable_so_vlan_dev_change_mtu_fndecl_25871 vlan_dev_change_mtu fndecl 2 25871 NULL
162459 +enable_so_buf_size_regmap_format_25880 buf_size regmap_format 0 25880 NULL
162460 +enable_so_al_stripes_meta_data_on_disk_25883 al_stripes meta_data_on_disk 0 25883 NULL
162461 +enable_so_alloc_tx_struct_fndecl_25886 alloc_tx_struct fndecl 1 25886 NULL
162462 +enable_so_sb_agblocks_xfs_sb_25887 sb_agblocks xfs_sb 0 25887 NULL
162463 +enable_so_width_virtio_gpu_rect_25892 width virtio_gpu_rect 0 25892 NULL
162464 +enable_so_i915_gem_batch_pool_get_fndecl_25893 i915_gem_batch_pool_get fndecl 2 25893 NULL nohasharray
162465 +enable_so_offset_usnic_uiom_reg_25893 offset usnic_uiom_reg 0 25893 &enable_so_i915_gem_batch_pool_get_fndecl_25893 nohasharray
162466 +enable_so_intf_num_smi_info_25893 intf_num smi_info 0 25893 &enable_so_offset_usnic_uiom_reg_25893 nohasharray
162467 +enable_so_gid_tbl_len_ib_port_immutable_25893 gid_tbl_len ib_port_immutable 0 25893 &enable_so_intf_num_smi_info_25893
162468 +enable_so_walk_page_range_fndecl_25894 walk_page_range fndecl 0 25894 NULL
162469 +enable_so_ath6kl_regdump_read_fndecl_25898 ath6kl_regdump_read fndecl 3 25898 NULL
162470 +enable_so_vram_remap_vardecl_uvesafb_c_25907 vram_remap vardecl_uvesafb.c 0 25907 NULL
162471 +enable_so_kvm_vcpu_gfn_to_hva_prot_fndecl_25911 kvm_vcpu_gfn_to_hva_prot fndecl 2 25911 NULL
162472 +enable_so_acpi_get_override_irq_fndecl_25918 acpi_get_override_irq fndecl 1 25918 NULL
162473 +enable_so_mtd_concat_create_fndecl_25923 mtd_concat_create fndecl 2 25923 NULL
162474 +enable_so_get_kcore_size_fndecl_25930 get_kcore_size fndecl 0 25930 NULL
162475 +enable_so_ioat_ring_alloc_order_vardecl_25933 ioat_ring_alloc_order vardecl 0 25933 NULL
162476 +enable_so_ircomm_tty_connect_indication_fndecl_25936 ircomm_tty_connect_indication fndecl 4-5 25936 NULL
162477 +enable_so_smk_write_onlycap_fndecl_25939 smk_write_onlycap fndecl 3 25939 NULL
162478 +enable_so_kvm_hv_set_msr_common_fndecl_25940 kvm_hv_set_msr_common fndecl 3 25940 NULL nohasharray
162479 +enable_so_n_piobufs_efx_ef10_nic_data_25940 n_piobufs efx_ef10_nic_data 0 25940 &enable_so_kvm_hv_set_msr_common_fndecl_25940
162480 +enable_so___xfs_bmbt_get_all_fndecl_25952 __xfs_bmbt_get_all fndecl 2-1 25952 NULL
162481 +enable_so_cyttsp_spi_read_block_data_fndecl_25954 cyttsp_spi_read_block_data fndecl 4 25954 NULL
162482 +enable_so_len_xsd_sockmsg_25963 len xsd_sockmsg 0 25963 NULL
162483 +enable_so_ieee802154_hdr_get_sechdr_fndecl_25965 ieee802154_hdr_get_sechdr fndecl 0 25965 NULL
162484 +enable_so_memblock_remove_range_fndecl_25969 memblock_remove_range fndecl 3-2 25969 NULL
162485 +enable_so_tx_max_out_mpt_lan_priv_25974 tx_max_out mpt_lan_priv 0 25974 NULL
162486 +enable_so_pci_ni8430_setup_fndecl_25977 pci_ni8430_setup fndecl 4 25977 NULL
162487 +enable_so_ns_blocksize_bits_the_nilfs_25985 ns_blocksize_bits the_nilfs 0 25985 NULL
162488 +enable_so_split_state_fndecl_25992 split_state fndecl 0-4 25992 NULL
162489 +enable_so_vga_vram_size_vardecl_vgacon_c_25995 vga_vram_size vardecl_vgacon.c 0 25995 NULL
162490 +enable_so_len_ieee_types_header_26006 len ieee_types_header 0 26006 NULL
162491 +enable_so_udplite_getfrag_fndecl_26012 udplite_getfrag fndecl 4 26012 NULL
162492 +enable_so_core_name_size_vardecl_coredump_c_26013 core_name_size vardecl_coredump.c 0 26013 NULL
162493 +enable_so_ufs_load_cylinder_fndecl_26018 ufs_load_cylinder fndecl 2 26018 NULL
162494 +enable_so_platform_id_cb710_chip_26021 platform_id cb710_chip 0 26021 NULL
162495 +enable_so_touch_max_wacom_features_26029 touch_max wacom_features 0 26029 NULL
162496 +enable_so___gfs2_fallocate_fndecl_26035 __gfs2_fallocate fndecl 4-3 26035 NULL
162497 +enable_so_hex_dump_to_buffer_fndecl_26039 hex_dump_to_buffer fndecl 0-2-4-3 26039 NULL
162498 +enable_so_EraseSize_NFTLrecord_26040 EraseSize NFTLrecord 0 26040 NULL
162499 +enable_so_ll_recv_fndecl_26047 ll_recv fndecl 3 26047 NULL
162500 +enable_so_md_template_size_netxen_minidump_26050 md_template_size netxen_minidump 0 26050 NULL
162501 +enable_so_port_ipoib_dev_priv_26051 port ipoib_dev_priv 0 26051 NULL
162502 +enable_so_l2cap_send_cmd_fndecl_26055 l2cap_send_cmd fndecl 4 26055 NULL
162503 +enable_so__pcol_init_fndecl_26056 _pcol_init fndecl 2 26056 NULL
162504 +enable_so_physical_for_dev_replace_scrub_copy_nocow_ctx_26059 physical_for_dev_replace scrub_copy_nocow_ctx 0 26059 NULL
162505 +enable_so_nfc_hci_hcp_message_tx_fndecl_26069 nfc_hci_hcp_message_tx fndecl 6 26069 NULL
162506 +enable_so_dataflash_read_user_otp_fndecl_26075 dataflash_read_user_otp fndecl 3-2 26075 NULL nohasharray
162507 +enable_so_ep0_write_fndecl_26075 ep0_write fndecl 3 26075 &enable_so_dataflash_read_user_otp_fndecl_26075
162508 +enable_so_hfsplus_ext_build_key_fndecl_26076 hfsplus_ext_build_key fndecl 3 26076 NULL
162509 +enable_so_fratio_arizona_fll_cfg_26082 fratio arizona_fll_cfg 0 26082 NULL
162510 +enable_so_fdt_first_subnode_fndecl_26084 fdt_first_subnode fndecl 2 26084 NULL nohasharray
162511 +enable_so_remap_to_origin_then_cache_fndecl_26084 remap_to_origin_then_cache fndecl 4 26084 &enable_so_fdt_first_subnode_fndecl_26084
162512 +enable_so_max_flash_timeout_lm3560_platform_data_26088 max_flash_timeout lm3560_platform_data 0 26088 NULL nohasharray
162513 +enable_so_skb_buf_size_vmxnet3_adapter_26088 skb_buf_size vmxnet3_adapter 0 26088 &enable_so_max_flash_timeout_lm3560_platform_data_26088 nohasharray
162514 +enable_so_protocol_sk_buff_26088 protocol sk_buff 0 26088 &enable_so_skb_buf_size_vmxnet3_adapter_26088
162515 +enable_so_vmci_transport_set_max_buffer_size_fndecl_26089 vmci_transport_set_max_buffer_size fndecl 2 26089 NULL
162516 +enable_so_idmap_pipe_downcall_fndecl_26092 idmap_pipe_downcall fndecl 3 26092 NULL
162517 +enable_so___clear_extent_bit_fndecl_26097 __clear_extent_bit fndecl 2-3 26097 NULL nohasharray
162518 +enable_so_rds_ib_ring_resize_fndecl_26097 rds_ib_ring_resize fndecl 2 26097 &enable_so___clear_extent_bit_fndecl_26097
162519 +enable_so_qp_host_alloc_queue_fndecl_26101 qp_host_alloc_queue fndecl 1 26101 NULL
162520 +enable_so_used_bytes_ubi_volume_26113 used_bytes ubi_volume 0 26113 NULL
162521 +enable_so_multi_len_ssif_info_26118 multi_len ssif_info 0 26118 NULL nohasharray
162522 +enable_so_log_store_fndecl_26118 log_store fndecl 8 26118 &enable_so_multi_len_ssif_info_26118
162523 +enable_so_maxflows_sfq_sched_data_26122 maxflows sfq_sched_data 0 26122 NULL
162524 +enable_so_snd_fw_async_midi_port_init_fndecl_26127 snd_fw_async_midi_port_init fndecl 4 26127 NULL
162525 +enable_so_nf_nat_sdp_session_fndecl_26130 nf_nat_sdp_session fndecl 2 26130 NULL
162526 +enable_so_ipwireless_ppp_mru_fndecl_26146 ipwireless_ppp_mru fndecl 0 26146 NULL
162527 +enable_so_size_cyttsp4_tch_rec_params_26150 size cyttsp4_tch_rec_params 0 26150 NULL
162528 +enable_so_translate_compat_table_fndecl_26151 translate_compat_table fndecl 6 26151 NULL
162529 +enable_so_hid_register_report_fndecl_26154 hid_register_report fndecl 3 26154 NULL
162530 +enable_so_sense_len_megasas_iocpacket_26161 sense_len megasas_iocpacket 0 26161 NULL
162531 +enable_so_addr_smiapp_reg_limits_26169 addr smiapp_reg_limits 0 26169 NULL
162532 +enable_so_r_bitcnt_tiger_hw_26171 r_bitcnt tiger_hw 0 26171 NULL
162533 +enable_so_src_sz_max_ce_attr_26172 src_sz_max ce_attr 0 26172 NULL
162534 +enable_so_ci_buffer_size_dlm_config_info_26176 ci_buffer_size dlm_config_info 0 26176 NULL
162535 +enable_so_qcaspi_burst_len_vardecl_qca_spi_c_26179 qcaspi_burst_len vardecl_qca_spi.c 0 26179 NULL
162536 +enable_so_zram_major_vardecl_zram_drv_c_26180 zram_major vardecl_zram_drv.c 0 26180 NULL
162537 +enable_so_iscsi_create_endpoint_fndecl_26186 iscsi_create_endpoint fndecl 1 26186 NULL
162538 +enable_so_video_vsize_solo_dev_26188 video_vsize solo_dev 0 26188 NULL
162539 +enable_so_drm_atomic_plane_set_property_fndecl_26190 drm_atomic_plane_set_property fndecl 4 26190 NULL nohasharray
162540 +enable_so_level_guest_walkerEPT_26190 level guest_walkerEPT 0 26190 &enable_so_drm_atomic_plane_set_property_fndecl_26190
162541 +enable_so_len_ext4_encrypted_symlink_data_26199 len ext4_encrypted_symlink_data 0 26199 NULL
162542 +enable_so_ocontext_read_fndecl_26201 ocontext_read fndecl 0 26201 NULL
162543 +enable_so_gue_remcsum_fndecl_26202 gue_remcsum fndecl 4 26202 NULL
162544 +enable_so_et131x_change_mtu_fndecl_26203 et131x_change_mtu fndecl 2 26203 NULL
162545 +enable_so_SYSC_setdomainname_fndecl_26207 SYSC_setdomainname fndecl 2 26207 NULL
162546 +enable_so_data_len_kernel_ipmi_msg_26209 data_len kernel_ipmi_msg 0 26209 NULL nohasharray
162547 +enable_so_bfad_debugfs_write_regrd_fndecl_26209 bfad_debugfs_write_regrd fndecl 3 26209 &enable_so_data_len_kernel_ipmi_msg_26209
162548 +enable_so_s_log_zone_size_isofs_sb_info_26211 s_log_zone_size isofs_sb_info 0 26211 NULL
162549 +enable_so_clone_range_fndecl_26212 clone_range fndecl 6-5 26212 NULL
162550 +enable_so_dev_cnt_usnic_uiom_pd_26213 dev_cnt usnic_uiom_pd 0 26213 NULL
162551 +enable_so_hfsplus_submit_bio_fndecl_26217 hfsplus_submit_bio fndecl 2 26217 NULL nohasharray
162552 +enable_so_sst_wake_up_block_fndecl_26217 sst_wake_up_block fndecl 6 26217 &enable_so_hfsplus_submit_bio_fndecl_26217
162553 +enable_so_ufx_handle_damage_fndecl_26219 ufx_handle_damage fndecl 5-4 26219 NULL nohasharray
162554 +enable_so_dr_post_altera_jtag_26219 dr_post altera_jtag 0 26219 &enable_so_ufx_handle_damage_fndecl_26219
162555 +enable_so_base_snd_cs46xx_region_26223 base snd_cs46xx_region 0 26223 NULL
162556 +enable_so_vlan_tci_ovs_action_push_vlan_26224 vlan_tci ovs_action_push_vlan 0 26224 NULL
162557 +enable_so_blk_queue_init_tags_fndecl_26227 blk_queue_init_tags fndecl 2 26227 NULL
162558 +enable_so_match_length_deflate_state_26231 match_length deflate_state 0 26231 NULL
162559 +enable_so_command_setflickerctrl_fndecl_26233 command_setflickerctrl fndecl 0 26233 NULL
162560 +enable_so_tct_size_idt77252_dev_26240 tct_size idt77252_dev 0 26240 NULL
162561 +enable_so_max_srq_wr_ib_device_attr_26242 max_srq_wr ib_device_attr 0 26242 NULL
162562 +enable_so_ecp_write_data_parport_operations_26253 ecp_write_data parport_operations 0 26253 NULL
162563 +enable_so_can_gather_numa_stats_fndecl_26254 can_gather_numa_stats fndecl 3 26254 NULL
162564 +enable_so_iwl_dbgfs_sram_write_fndecl_26260 iwl_dbgfs_sram_write fndecl 3 26260 NULL
162565 +enable_so_den_snd_ratden_26264 den snd_ratden 0 26264 NULL
162566 +enable_so_check_pages_isolated_fndecl_26267 check_pages_isolated fndecl 0-1-2 26267 NULL
162567 +enable_so_jumbo_size_qset_params_26273 jumbo_size qset_params 0 26273 NULL
162568 +enable_so_fw_realloc_buffer_fndecl_26275 fw_realloc_buffer fndecl 2 26275 NULL
162569 +enable_so_width_stk1160_26279 width stk1160 0 26279 NULL nohasharray
162570 +enable_so_n_hdlc_tty_write_fndecl_26279 n_hdlc_tty_write fndecl 4 26279 &enable_so_width_stk1160_26279
162571 +enable_so_simple_io_fndecl_26280 simple_io fndecl 4 26280 NULL nohasharray
162572 +enable_so_xlate_dev_mem_ptr_fndecl_26280 xlate_dev_mem_ptr fndecl 1 26280 &enable_so_simple_io_fndecl_26280
162573 +enable_so_send_write_fndecl_26285 send_write fndecl 6-0-5-4 26285 NULL
162574 +enable_so_tx_data_length_hso_serial_26287 tx_data_length hso_serial 0 26287 NULL
162575 +enable_so_wacom_led_putimage_fndecl_26291 wacom_led_putimage fndecl 4 26291 NULL
162576 +enable_so_hub_port_connect_fndecl_26292 hub_port_connect fndecl 2 26292 NULL nohasharray
162577 +enable_so_sc_max_sge_svcxprt_rdma_26292 sc_max_sge svcxprt_rdma 0 26292 &enable_so_hub_port_connect_fndecl_26292
162578 +enable_so_members_count_dlm_space_26293 members_count dlm_space 0 26293 NULL
162579 +enable_so_devm_gen_pool_create_fndecl_26295 devm_gen_pool_create fndecl 2 26295 NULL
162580 +enable_so_xskip_mt9t031_26297 xskip mt9t031 0 26297 NULL
162581 +enable_so_xhci_common_hub_descriptor_fndecl_26304 xhci_common_hub_descriptor fndecl 3 26304 NULL nohasharray
162582 +enable_so_model_data_size_oxygen_model_26304 model_data_size oxygen_model 0 26304 &enable_so_xhci_common_hub_descriptor_fndecl_26304
162583 +enable_so_used_core_name_26313 used core_name 0 26313 NULL
162584 +enable_so_at25_mem_read_fndecl_26314 at25_mem_read fndecl 3-4 26314 NULL
162585 +enable_so_drxdap_fasi_write_block_fndecl_26315 drxdap_fasi_write_block fndecl 3 26315 NULL
162586 +enable_so_irlan_connect_indication_fndecl_26316 irlan_connect_indication fndecl 5 26316 NULL
162587 +enable_so_mc_mask_radeon_mc_26322 mc_mask radeon_mc 0 26322 NULL
162588 +enable_so_drNmAlBlks_hfs_mdb_26326 drNmAlBlks hfs_mdb 0 26326 NULL
162589 +enable_so_ocfs2_read_refcount_block_fndecl_26330 ocfs2_read_refcount_block fndecl 2 26330 NULL
162590 +enable_so_fcoe_ctlr_send_keep_alive_fndecl_26335 fcoe_ctlr_send_keep_alive fndecl 3 26335 NULL
162591 +enable_so_scif_pin_pages_fndecl_26337 scif_pin_pages fndecl 2 26337 NULL nohasharray
162592 +enable_so_maxchild_usb_device_26337 maxchild usb_device 0 26337 &enable_so_scif_pin_pages_fndecl_26337
162593 +enable_so_alloc_ring_fndecl_26338 alloc_ring fndecl 4-2 26338 NULL
162594 +enable_so_ept_prefetch_gpte_fndecl_26343 ept_prefetch_gpte fndecl 4 26343 NULL nohasharray
162595 +enable_so_broadcast_xmt_max_payload_fwnet_device_26343 broadcast_xmt_max_payload fwnet_device 0 26343 &enable_so_ept_prefetch_gpte_fndecl_26343
162596 +enable_so_vmw_cotable_resize_fndecl_26346 vmw_cotable_resize fndecl 2 26346 NULL
162597 +enable_so_i_sibling_omfs_inode_26348 i_sibling omfs_inode 0 26348 NULL
162598 +enable_so_blkdev_readpages_fndecl_26350 blkdev_readpages fndecl 4 26350 NULL nohasharray
162599 +enable_so_hugetlbfs_pagecache_present_fndecl_26350 hugetlbfs_pagecache_present fndecl 3 26350 &enable_so_blkdev_readpages_fndecl_26350
162600 +enable_so___ocfs2_remove_xattr_range_fndecl_26353 __ocfs2_remove_xattr_range fndecl 5-4-3 26353 NULL
162601 +enable_so_kovaplus_sysfs_read_fndecl_26362 kovaplus_sysfs_read fndecl 6 26362 NULL
162602 +enable_so_scsi_eh_prep_cmnd_fndecl_26365 scsi_eh_prep_cmnd fndecl 5 26365 NULL nohasharray
162603 +enable_so_ioread16_fndecl_26365 ioread16 fndecl 0 26365 &enable_so_scsi_eh_prep_cmnd_fndecl_26365
162604 +enable_so_max_mthca_alloc_26367 max mthca_alloc 0 26367 NULL
162605 +enable_so_xpnet_send_fndecl_26368 xpnet_send fndecl 3-4 26368 NULL nohasharray
162606 +enable_so_ts_tsid_gru_thread_state_26368 ts_tsid gru_thread_state 0 26368 &enable_so_xpnet_send_fndecl_26368
162607 +enable_so_buffer_length_TAG_TW_Ioctl_Driver_Command_26369 buffer_length TAG_TW_Ioctl_Driver_Command 0 26369 NULL
162608 +enable_so_ac_last_group_ocfs2_alloc_context_26384 ac_last_group ocfs2_alloc_context 0 26384 NULL
162609 +enable_so_dccp_sendmsg_fndecl_26385 dccp_sendmsg fndecl 3 26385 NULL
162610 +enable_so_mrp_attr_create_fndecl_26390 mrp_attr_create fndecl 3 26390 NULL
162611 +enable_so_dict_size_comp_opts_26391 dict_size comp_opts 0 26391 NULL
162612 +enable_so_maximum_num_physicals_aac_dev_26393 maximum_num_physicals aac_dev 0 26393 NULL
162613 +enable_so_lcd_write_fndecl_26394 lcd_write fndecl 3 26394 NULL nohasharray
162614 +enable_so___krealloc_fndecl_26394 __krealloc fndecl 2 26394 &enable_so_lcd_write_fndecl_26394
162615 +enable_so_transcnt_elsa_hw_26395 transcnt elsa_hw 0 26395 NULL
162616 +enable_so_get_user_cpu_mask_fndecl_26398 get_user_cpu_mask fndecl 2 26398 NULL
162617 +enable_so_convert_ctx_access_bpf_verifier_ops_26399 convert_ctx_access bpf_verifier_ops 0 26399 NULL
162618 +enable_so_ea_init_fndecl_26400 ea_init fndecl 5 26400 NULL
162619 +enable_so_gbuffers_vardecl_meye_c_26402 gbuffers vardecl_meye.c 0 26402 NULL
162620 +enable_so_xhci_giveback_urb_in_irq_fndecl_26403 xhci_giveback_urb_in_irq fndecl 3 26403 NULL nohasharray
162621 +enable_so_bad_peb_limit_ubi_device_26403 bad_peb_limit ubi_device 0 26403 &enable_so_xhci_giveback_urb_in_irq_fndecl_26403
162622 +enable_so_netlbl_catmap_walk_fndecl_26405 netlbl_catmap_walk fndecl 0-2 26405 NULL
162623 +enable_so_height_drm_mode_create_dumb_26406 height drm_mode_create_dumb 0 26406 NULL
162624 +enable_so_residualByteCnt_status_entry_26414 residualByteCnt status_entry 0 26414 NULL
162625 +enable_so_krealloc_fndecl_26415 krealloc fndecl 2 26415 NULL
162626 +enable_so_crtc_htotal_drm_display_mode_26418 crtc_htotal drm_display_mode 0 26418 NULL
162627 +enable_so_ext_clk_smiapp_platform_data_26420 ext_clk smiapp_platform_data 0 26420 NULL
162628 +enable_so_mmio_size_lpss_private_data_26423 mmio_size lpss_private_data 0 26423 NULL
162629 +enable_so_mmc_spi_readblock_fndecl_26424 mmc_spi_readblock fndecl 0 26424 NULL
162630 +enable_so_mod_start_extent_map_26431 mod_start extent_map 0 26431 NULL nohasharray
162631 +enable_so_acpi_os_allocate_fndecl_26431 acpi_os_allocate fndecl 1 26431 &enable_so_mod_start_extent_map_26431
162632 +enable_so_wtmax_nfs_fsinfo_26434 wtmax nfs_fsinfo 0 26434 NULL
162633 +enable_so___adjust_resource_fndecl_26436 __adjust_resource fndecl 3-2 26436 NULL
162634 +enable_so_packets_snd_urb_ctx_26437 packets snd_urb_ctx 0 26437 NULL
162635 +enable_so_map_capacity_cw1200_queue_stats_26439 map_capacity cw1200_queue_stats 0 26439 NULL
162636 +enable_so_start_cif_cam_fndecl_26442 start_cif_cam fndecl 0 26442 NULL
162637 +enable_so_compute_pipe_count_kgd2kfd_shared_resources_26445 compute_pipe_count kgd2kfd_shared_resources 0 26445 NULL
162638 +enable_so_sierra_net_change_mtu_fndecl_26446 sierra_net_change_mtu fndecl 2 26446 NULL nohasharray
162639 +enable_so_max_req_size_mmc_host_26446 max_req_size mmc_host 0 26446 &enable_so_sierra_net_change_mtu_fndecl_26446 nohasharray
162640 +enable_so_ri_data0_gfs2_rindex_26446 ri_data0 gfs2_rindex 0 26446 &enable_so_max_req_size_mmc_host_26446
162641 +enable_so_size_aper_size_info_fixed_26447 size aper_size_info_fixed 0 26447 NULL
162642 +enable_so_width_cobalt_stream_26451 width cobalt_stream 0 26451 NULL
162643 +enable_so___xfs_end_io_direct_write_fndecl_26454 __xfs_end_io_direct_write fndecl 4-3 26454 NULL
162644 +enable_so_qp_memcpy_to_queue_iov_fndecl_26456 qp_memcpy_to_queue_iov fndecl 5-2 26456 NULL
162645 +enable_so_global_irq_base_acpi_madt_io_apic_26467 global_irq_base acpi_madt_io_apic 0 26467 NULL
162646 +enable_so_usbat_bulk_read_fndecl_26469 usbat_bulk_read fndecl 3-4 26469 NULL
162647 +enable_so_tpg_reset_source_fndecl_26472 tpg_reset_source fndecl 2-3 26472 NULL
162648 +enable_so_pbufsctxt_qib_devdata_26473 pbufsctxt qib_devdata 0 26473 NULL
162649 +enable_so_iscsi_conn_context_id_iscsi_kcqe_26475 iscsi_conn_context_id iscsi_kcqe 0 26475 NULL
162650 +enable_so_nr_kioctx_table_26477 nr kioctx_table 0 26477 NULL
162651 +enable_so_btt_read_pg_fndecl_26478 btt_read_pg fndecl 0 26478 NULL
162652 +enable_so_len_seq_buf_26481 len seq_buf 0 26481 NULL
162653 +enable_so_page_cache_next_hole_fndecl_26482 page_cache_next_hole fndecl 0-2 26482 NULL
162654 +enable_so_max_osd_ceph_osdmap_26483 max_osd ceph_osdmap 0 26483 NULL
162655 +enable_so_queue_cnt_fndecl_26484 queue_cnt fndecl 0 26484 NULL
162656 +enable_so_count_xfs_dir2_sf_hdr_26486 count xfs_dir2_sf_hdr 0 26486 NULL
162657 +enable_so_setup_max_cpus_vardecl_26488 setup_max_cpus vardecl 0 26488 NULL
162658 +enable_so_tipc_bcast_get_mtu_fndecl_26493 tipc_bcast_get_mtu fndecl 0 26493 NULL nohasharray
162659 +enable_so_pa_lstart_ext4_prealloc_space_26493 pa_lstart ext4_prealloc_space 0 26493 &enable_so_tipc_bcast_get_mtu_fndecl_26493
162660 +enable_so_videobuf_read_stream_fndecl_26495 videobuf_read_stream fndecl 3 26495 NULL
162661 +enable_so_ndr_start_nd_region_26496 ndr_start nd_region 0 26496 NULL
162662 +enable_so_remap_and_issue_overwrite_fndecl_26499 remap_and_issue_overwrite fndecl 3 26499 NULL
162663 +enable_so_setkey_fndecl_26520 setkey fndecl 3 26520 NULL nohasharray
162664 +enable_so_num_tc_mlx5e_params_26520 num_tc mlx5e_params 0 26520 &enable_so_setkey_fndecl_26520
162665 +enable_so_t4_max_cq_depth_c4iw_hw_queue_26526 t4_max_cq_depth c4iw_hw_queue 0 26526 NULL
162666 +enable_so_devm_memremap_fndecl_26527 devm_memremap fndecl 3-2 26527 NULL
162667 +enable_so_vmap_fndecl_26530 vmap fndecl 2 26530 NULL
162668 +enable_so_header_assemble_fndecl_26534 header_assemble fndecl 4 26534 NULL nohasharray
162669 +enable_so_sync_buf_offs_pvr2_ioread_26534 sync_buf_offs pvr2_ioread 0 26534 &enable_so_header_assemble_fndecl_26534
162670 +enable_so_myri10ge_max_slices_vardecl_myri10ge_c_26536 myri10ge_max_slices vardecl_myri10ge.c 0 26536 NULL
162671 +enable_so_npages_kvm_memory_slot_26541 npages kvm_memory_slot 0 26541 NULL
162672 +enable_so_nfsd_drc_max_mem_vardecl_26544 nfsd_drc_max_mem vardecl 0 26544 NULL nohasharray
162673 +enable_so_sctp_setsockopt_default_sndinfo_fndecl_26544 sctp_setsockopt_default_sndinfo fndecl 3 26544 &enable_so_nfsd_drc_max_mem_vardecl_26544
162674 +enable_so_onenand_write_fndecl_26546 onenand_write fndecl 2 26546 NULL
162675 +enable_so_pci_irq_pcmcia_socket_26558 pci_irq pcmcia_socket 0 26558 NULL
162676 +enable_so_maxdepth_sfq_sched_data_26560 maxdepth sfq_sched_data 0 26560 NULL
162677 +enable_so_cld_pipe_downcall_fndecl_26561 cld_pipe_downcall fndecl 3 26561 NULL
162678 +enable_so_fifo_blocks_vxge_hw_fifo_config_26565 fifo_blocks vxge_hw_fifo_config 0 26565 NULL
162679 +enable_so_br_change_mtu_fndecl_26571 br_change_mtu fndecl 2 26571 NULL
162680 +enable_so_wMaxSegmentSize_usb_cdc_mbim_desc_26572 wMaxSegmentSize usb_cdc_mbim_desc 0 26572 NULL
162681 +enable_so_nfs4_write_cached_acl_fndecl_26573 nfs4_write_cached_acl fndecl 4 26573 NULL
162682 +enable_so_sd_log_flush_head_gfs2_sbd_26577 sd_log_flush_head gfs2_sbd 0 26577 NULL
162683 +enable_so_smbios_entry_point_size_vardecl_dmi_scan_c_26579 smbios_entry_point_size vardecl_dmi_scan.c 0 26579 NULL
162684 +enable_so_read_tree_block_fndecl_26587 read_tree_block fndecl 2 26587 NULL
162685 +enable_so_early_init_dt_scan_chosen_fndecl_26588 early_init_dt_scan_chosen fndecl 1 26588 NULL
162686 +enable_so_bytes_per_word_tegra_slink_data_26590 bytes_per_word tegra_slink_data 0 26590 NULL
162687 +enable_so_nvme_trans_completion_fndecl_26597 nvme_trans_completion fndecl 0 26597 NULL
162688 +enable_so_tx_desc_count_xgbe_prv_data_26603 tx_desc_count xgbe_prv_data 0 26603 NULL
162689 +enable_so_UMAsize_sis_video_info_26611 UMAsize sis_video_info 0 26611 NULL
162690 +enable_so_width_drm_vmw_size_26615 width drm_vmw_size 0 26615 NULL
162691 +enable_so_control_blocks_gru_create_context_req_26616 control_blocks gru_create_context_req 0 26616 NULL
162692 +enable_so_data_out_ep_vub300_mmc_host_26618 data_out_ep vub300_mmc_host 0 26618 NULL
162693 +enable_so_airspy_convert_stream_fndecl_26619 airspy_convert_stream fndecl 0-4 26619 NULL
162694 +enable_so_usb_rh_urb_dequeue_fndecl_26620 usb_rh_urb_dequeue fndecl 3 26620 NULL
162695 +enable_so_smscore_load_firmware_family2_fndecl_26621 smscore_load_firmware_family2 fndecl 3 26621 NULL
162696 +enable_so_hub_port_connect_change_fndecl_26625 hub_port_connect_change fndecl 2 26625 NULL
162697 +enable_so_xfs_qm_init_dquot_blk_fndecl_26626 xfs_qm_init_dquot_blk fndecl 3 26626 NULL nohasharray
162698 +enable_so_data_len_ipmi_msg_26626 data_len ipmi_msg 0 26626 &enable_so_xfs_qm_init_dquot_blk_fndecl_26626
162699 +enable_so_l2_fhdr_pkt_len_l2_fhdr_26630 l2_fhdr_pkt_len l2_fhdr 0 26630 NULL nohasharray
162700 +enable_so_cache_write_fndecl_26630 cache_write fndecl 3 26630 &enable_so_l2_fhdr_pkt_len_l2_fhdr_26630
162701 +enable_so_facs_acpi_table_fadt_26632 facs acpi_table_fadt 0 26632 NULL
162702 +enable_so_mpt_lan_receive_post_turbo_fndecl_26635 mpt_lan_receive_post_turbo fndecl 2 26635 NULL
162703 +enable_so_qxl_draw_dirty_fb_fndecl_26636 qxl_draw_dirty_fb fndecl 7 26636 NULL
162704 +enable_so_i40e_change_mtu_fndecl_26637 i40e_change_mtu fndecl 2 26637 NULL
162705 +enable_so_h_length_dlm_header_26639 h_length dlm_header 0 26639 NULL nohasharray
162706 +enable_so_irias_new_octseq_value_fndecl_26639 irias_new_octseq_value fndecl 2 26639 &enable_so_h_length_dlm_header_26639 nohasharray
162707 +enable_so_aac_sa_ioremap_fndecl_26639 aac_sa_ioremap fndecl 2 26639 &enable_so_irias_new_octseq_value_fndecl_26639
162708 +enable_so_fh_size_knfsd_fh_26641 fh_size knfsd_fh 0 26641 NULL
162709 +enable_so_sys_madvise_fndecl_26642 sys_madvise fndecl 2-1 26642 NULL nohasharray
162710 +enable_so_size_drm_global_reference_26642 size drm_global_reference 0 26642 &enable_so_sys_madvise_fndecl_26642
162711 +enable_so_platform_device_alloc_fndecl_26645 platform_device_alloc fndecl 2 26645 NULL nohasharray
162712 +enable_so_read_file_antenna_fndecl_26645 read_file_antenna fndecl 3 26645 &enable_so_platform_device_alloc_fndecl_26645
162713 +enable_so_n_namesz_elf64_note_26646 n_namesz elf64_note 0 26646 NULL
162714 +enable_so_max_wqes_mlx4_caps_26647 max_wqes mlx4_caps 0 26647 NULL
162715 +enable_so_spi_populate_width_msg_fndecl_26651 spi_populate_width_msg fndecl 0 26651 NULL
162716 +enable_so_front_len_ceph_msgpool_26653 front_len ceph_msgpool 0 26653 NULL
162717 +enable_so_pmcraid_get_minor_fndecl_26656 pmcraid_get_minor fndecl 0 26656 NULL
162718 +enable_so_nr_recvmsg_fndecl_26658 nr_recvmsg fndecl 3 26658 NULL
162719 +enable_so_jbd2_journal_begin_ordered_truncate_fndecl_26661 jbd2_journal_begin_ordered_truncate fndecl 3 26661 NULL
162720 +enable_so_iio_device_add_event_sysfs_fndecl_26664 iio_device_add_event_sysfs fndecl 0 26664 NULL
162721 +enable_so_qed_qm_pf_mem_size_fndecl_26667 qed_qm_pf_mem_size fndecl 0-4-6-3-5-2 26667 NULL
162722 +enable_so_hdlc_change_mtu_fndecl_26672 hdlc_change_mtu fndecl 2 26672 NULL
162723 +enable_so_oobsize_mtd_info_26683 oobsize mtd_info 0 26683 NULL
162724 +enable_so_swap_cgroup_swapon_fndecl_26685 swap_cgroup_swapon fndecl 2 26685 NULL
162725 +enable_so_omap1_spi100k_txrx_pio_fndecl_26692 omap1_spi100k_txrx_pio fndecl 0 26692 NULL
162726 +enable_so_rx_buff_len_amd8111e_priv_26693 rx_buff_len amd8111e_priv 0 26693 NULL
162727 +enable_so_raw_request_hid_ll_driver_26699 raw_request hid_ll_driver 0 26699 NULL
162728 +enable_so_packet_snd_fndecl_26705 packet_snd fndecl 3 26705 NULL
162729 +enable_so_musb_ep_program_fndecl_26707 musb_ep_program fndecl 7 26707 NULL
162730 +enable_so_x509_extract_name_segment_fndecl_26716 x509_extract_name_segment fndecl 5 26716 NULL
162731 +enable_so_i915_gem_obj_ggtt_offset_view_fndecl_26723 i915_gem_obj_ggtt_offset_view fndecl 0 26723 NULL
162732 +enable_so_wil_read_back_fndecl_26724 wil_read_back fndecl 3 26724 NULL
162733 +enable_so_max_transfer_size_rndis_init_c_26725 max_transfer_size rndis_init_c 0 26725 NULL
162734 +enable_so_fuse_copy_pages_fndecl_26731 fuse_copy_pages fndecl 2 26731 NULL
162735 +enable_so_ocfs2_xattr_set_handle_fndecl_26732 ocfs2_xattr_set_handle fndecl 7 26732 NULL
162736 +enable_so_cache_downcall_fndecl_26737 cache_downcall fndecl 3 26737 NULL
162737 +enable_so_minor_uart_driver_26739 minor uart_driver 0 26739 NULL
162738 +enable_so_xfs_filestream_lookup_ag_fndecl_26744 xfs_filestream_lookup_ag fndecl 0 26744 NULL nohasharray
162739 +enable_so_add_index_fndecl_26744 add_index fndecl 0 26744 &enable_so_xfs_filestream_lookup_ag_fndecl_26744
162740 +enable_so_block_size_befs_sb_info_26751 block_size befs_sb_info 0 26751 NULL
162741 +enable_so_len_osd_sg_entry_26755 len osd_sg_entry 0 26755 NULL
162742 +enable_so_number_of_pins_gpio_rcar_config_26759 number_of_pins gpio_rcar_config 0 26759 NULL
162743 +enable_so_raw_serial_size_pkcs7_parse_context_26761 raw_serial_size pkcs7_parse_context 0 26761 NULL
162744 +enable_so_flash_max_current_as3645a_platform_data_26764 flash_max_current as3645a_platform_data 0 26764 NULL
162745 +enable_so_num_phys_expander_device_26765 num_phys expander_device 0 26765 NULL
162746 +enable_so_nAcks_rxrpc_ackpacket_26767 nAcks rxrpc_ackpacket 0 26767 NULL
162747 +enable_so_tipc_send_stream_fndecl_26771 tipc_send_stream fndecl 3 26771 NULL
162748 +enable_so_hb_size_hashbin_t_26779 hb_size hashbin_t 0 26779 NULL nohasharray
162749 +enable_so_fw_iso_buffer_alloc_fndecl_26779 fw_iso_buffer_alloc fndecl 2 26779 &enable_so_hb_size_hashbin_t_26779
162750 +enable_so___perf_event_read_size_fndecl_26786 __perf_event_read_size fndecl 2 26786 NULL
162751 +enable_so_audit_unpack_string_fndecl_26791 audit_unpack_string fndecl 3 26791 NULL
162752 +enable_so_max_support_points_edt_ft5x06_ts_data_26799 max_support_points edt_ft5x06_ts_data 0 26799 NULL
162753 +enable_so_ocfs2_cache_block_dealloc_fndecl_26800 ocfs2_cache_block_dealloc fndecl 6-5-4 26800 NULL
162754 +enable_so_width_v4l2_rect_26802 width v4l2_rect 0 26802 NULL nohasharray
162755 +enable_so_sge_cnt_rdma_iu_26802 sge_cnt rdma_iu 0 26802 &enable_so_width_v4l2_rect_26802
162756 +enable_so_dwc2_hsotg_set_ep_maxpacket_fndecl_26815 dwc2_hsotg_set_ep_maxpacket fndecl 3 26815 NULL
162757 +enable_so_fb_sys_read_fndecl_26817 fb_sys_read fndecl 3 26817 NULL
162758 +enable_so_ramdisk_image_setup_header_26821 ramdisk_image setup_header 0 26821 NULL nohasharray
162759 +enable_so_do_read_fault_fndecl_26821 do_read_fault fndecl 3-5 26821 &enable_so_ramdisk_image_setup_header_26821
162760 +enable_so_qlcnic_max_rings_fndecl_26823 qlcnic_max_rings fndecl 0-2 26823 NULL
162761 +enable_so_l2tp_ip_recvmsg_fndecl_26826 l2tp_ip_recvmsg fndecl 3 26826 NULL
162762 +enable_so_ath6kl_mgmt_powersave_ap_fndecl_26828 ath6kl_mgmt_powersave_ap fndecl 6 26828 NULL
162763 +enable_so_bEndpointAddress_usb_endpoint_descriptor_26829 bEndpointAddress usb_endpoint_descriptor 0 26829 NULL
162764 +enable_so_vc_screenbuf_size_vc_data_26832 vc_screenbuf_size vc_data 0 26832 NULL nohasharray
162765 +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
162766 +enable_so_edid_size_ufx_data_26833 edid_size ufx_data 0 26833 NULL
162767 +enable_so_header_sectors_per_block_partition_26836 header_sectors_per_block partition 0 26836 NULL
162768 +enable_so_at24_write_fndecl_26838 at24_write fndecl 4-3 26838 NULL
162769 +enable_so_size_sram_reserve_26839 size sram_reserve 0 26839 NULL
162770 +enable_so_ipath_sdma_descq_cnt_ipath_devdata_26843 ipath_sdma_descq_cnt ipath_devdata 0 26843 NULL
162771 +enable_so_offset_resource_entry_26851 offset resource_entry 0 26851 NULL
162772 +enable_so_ethertype_hippi_snap_hdr_26852 ethertype hippi_snap_hdr 0 26852 NULL
162773 +enable_so_hsi_register_board_info_fndecl_26863 hsi_register_board_info fndecl 2 26863 NULL
162774 +enable_so_osd_req_add_get_attr_page_fndecl_26866 osd_req_add_get_attr_page fndecl 4 26866 NULL
162775 +enable_so_dlc_usb_8dev_rx_msg_26873 dlc usb_8dev_rx_msg 0 26873 NULL nohasharray
162776 +enable_so_pipe_in_lan78xx_net_26873 pipe_in lan78xx_net 0 26873 &enable_so_dlc_usb_8dev_rx_msg_26873
162777 +enable_so_pci_address_to_pio_fndecl_26876 pci_address_to_pio fndecl 0-1 26876 NULL
162778 +enable_so_mwifiex_sdio_card_to_host_mp_aggr_fndecl_26877 mwifiex_sdio_card_to_host_mp_aggr fndecl 2 26877 NULL
162779 +enable_so_n_allocated_vis_efx_ef10_nic_data_26878 n_allocated_vis efx_ef10_nic_data 0 26878 NULL
162780 +enable_so_sym_set_cam_result_error_fndecl_26882 sym_set_cam_result_error fndecl 3 26882 NULL nohasharray
162781 +enable_so_dev_bytenr_btrfsic_block_data_ctx_26882 dev_bytenr btrfsic_block_data_ctx 0 26882 &enable_so_sym_set_cam_result_error_fndecl_26882
162782 +enable_so_out_skip_ceph_connection_26886 out_skip ceph_connection 0 26886 NULL
162783 +enable_so_xdr_process_buf_fndecl_26887 xdr_process_buf fndecl 3-2 26887 NULL
162784 +enable_so_head_floppy_struct_26890 head floppy_struct 0 26890 NULL nohasharray
162785 +enable_so_kvm_read_nested_guest_page_fndecl_26890 kvm_read_nested_guest_page fndecl 5 26890 &enable_so_head_floppy_struct_26890
162786 +enable_so_agno_xfs_alloc_arg_26892 agno xfs_alloc_arg 0 26892 NULL
162787 +enable_so_async_io_fndecl_26900 async_io fndecl 0 26900 NULL
162788 +enable_so_read_file_phy_err_fndecl_26901 read_file_phy_err fndecl 3 26901 NULL
162789 +enable_so_find_get_pages_contig_fndecl_26902 find_get_pages_contig fndecl 0 26902 NULL
162790 +enable_so_raid_disks_r5conf_26904 raid_disks r5conf 0 26904 NULL
162791 +enable_so_reexecute_instruction_fndecl_26906 reexecute_instruction fndecl 2 26906 NULL
162792 +enable_so_ctx_len_xfrm_user_sec_ctx_26911 ctx_len xfrm_user_sec_ctx 0 26911 NULL nohasharray
162793 +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
162794 +enable_so_port_event_fndecl_26912 port_event fndecl 2 26912 NULL
162795 +enable_so_num_slots_rtsx_pcr_26914 num_slots rtsx_pcr 0 26914 NULL
162796 +enable_so_hscx_empty_fifo_fndecl_26915 hscx_empty_fifo fndecl 2 26915 NULL nohasharray
162797 +enable_so_jffs2_flash_writev_fndecl_26915 jffs2_flash_writev fndecl 4 26915 &enable_so_hscx_empty_fifo_fndecl_26915
162798 +enable_so_get_wep_key_fndecl_26919 get_wep_key fndecl 0-4 26919 NULL nohasharray
162799 +enable_so_cache_ctr_fndecl_26919 cache_ctr fndecl 2 26919 &enable_so_get_wep_key_fndecl_26919
162800 +enable_so_amdgpu_bo_create_restricted_fndecl_26920 amdgpu_bo_create_restricted fndecl 2 26920 NULL
162801 +enable_so_to_skip_sd_26922 to_skip sd 0 26922 NULL
162802 +enable_so_count_vnic_res_26925 count vnic_res 0 26925 NULL
162803 +enable_so_depth_vpdma_data_format_26927 depth vpdma_data_format 0 26927 NULL
162804 +enable_so_major_intel_th_26929 major intel_th 0 26929 NULL
162805 +enable_so_round_event_name_len_fndecl_26935 round_event_name_len fndecl 0 26935 NULL
162806 +enable_so_scsi_max_sectors_iser_conn_26937 scsi_max_sectors iser_conn 0 26937 NULL
162807 +enable_so_get_bits_fndecl_26938 get_bits fndecl 0-2 26938 NULL
162808 +enable_so_granularity_vx_ibl_info_26939 granularity vx_ibl_info 0 26939 NULL
162809 +enable_so_tx_nr_pages_bnxt_26942 tx_nr_pages bnxt 0 26942 NULL
162810 +enable_so_il4965_pass_packet_to_mac80211_fndecl_26945 il4965_pass_packet_to_mac80211 fndecl 3 26945 NULL
162811 +enable_so_br_vlan_set_default_pvid_fndecl_26946 br_vlan_set_default_pvid fndecl 2 26946 NULL nohasharray
162812 +enable_so_chunk_size_drxk_config_26946 chunk_size drxk_config 0 26946 &enable_so_br_vlan_set_default_pvid_fndecl_26946
162813 +enable_so_stripe_set_idx_fndecl_26948 stripe_set_idx fndecl 1 26948 NULL
162814 +enable_so_width_v4l2_pix_format_mplane_26950 width v4l2_pix_format_mplane 0 26950 NULL
162815 +enable_so_cid_cnic_context_26952 cid cnic_context 0 26952 NULL
162816 +enable_so_axi_dmac_prep_dma_cyclic_fndecl_26953 axi_dmac_prep_dma_cyclic fndecl 4-3 26953 NULL
162817 +enable_so_bulk_out_endp_ttusbir_26955 bulk_out_endp ttusbir 0 26955 NULL nohasharray
162818 +enable_so_id_tps6586x_subdev_info_26955 id tps6586x_subdev_info 0 26955 &enable_so_bulk_out_endp_ttusbir_26955
162819 +enable_so_sky2_receive_fndecl_26956 sky2_receive fndecl 2 26956 NULL
162820 +enable_so_kvm_vcpu_gfn_to_hva_fndecl_26957 kvm_vcpu_gfn_to_hva fndecl 2 26957 NULL
162821 +enable_so_fdt_add_subnode_fndecl_26958 fdt_add_subnode fndecl 2 26958 NULL nohasharray
162822 +enable_so_carl9170_rx_untie_data_fndecl_26958 carl9170_rx_untie_data fndecl 3 26958 &enable_so_fdt_add_subnode_fndecl_26958
162823 +enable_so_bulk_in_ep_bfusb_data_26959 bulk_in_ep bfusb_data 0 26959 NULL
162824 +enable_so_cfpkt_extr_trail_fndecl_26960 cfpkt_extr_trail fndecl 3 26960 NULL
162825 +enable_so_wep_key_not_found_read_fndecl_26962 wep_key_not_found_read fndecl 3 26962 NULL nohasharray
162826 +enable_so_iso_sched_alloc_fndecl_26962 iso_sched_alloc fndecl 1 26962 &enable_so_wep_key_not_found_read_fndecl_26962
162827 +enable_so_len_hidraw_report_26966 len hidraw_report 0 26966 NULL
162828 +enable_so_bt_sock_recvmsg_fndecl_26967 bt_sock_recvmsg fndecl 3 26967 NULL
162829 +enable_so_lov_mds_md_size_fndecl_26975 lov_mds_md_size fndecl 1-0 26975 NULL
162830 +enable_so_brk_mm_struct_26976 brk mm_struct 0 26976 NULL nohasharray
162831 +enable_so_init_allocator_fndecl_26976 init_allocator fndecl 3 26976 &enable_so_brk_mm_struct_26976
162832 +enable_so_ctrl_out_pipe_hfcusb_data_26981 ctrl_out_pipe hfcusb_data 0 26981 NULL
162833 +enable_so_skd_skreq_prep_buffering_fndecl_26987 skd_skreq_prep_buffering fndecl 3 26987 NULL
162834 +enable_so___tipc_send_stream_fndecl_26990 __tipc_send_stream fndecl 3 26990 NULL nohasharray
162835 +enable_so_smb_sendv_fndecl_26990 smb_sendv fndecl 3 26990 &enable_so___tipc_send_stream_fndecl_26990
162836 +enable_so_address_length_acpi_address64_attribute_26992 address_length acpi_address64_attribute 0 26992 NULL
162837 +enable_so_delete_empty_dnode_fndecl_26994 delete_empty_dnode fndecl 2 26994 NULL
162838 +enable_so_buffer_bytes_snd_card_asihpi_pcm_26997 buffer_bytes snd_card_asihpi_pcm 0 26997 NULL
162839 +enable_so_ser_write_chunk_vardecl_caif_serial_c_26999 ser_write_chunk vardecl_caif_serial.c 0 26999 NULL
162840 +enable_so_get_mpc_size_fndecl_27000 get_mpc_size fndecl 0 27000 NULL
162841 +enable_so_netxen_alloc_sds_rings_fndecl_27002 netxen_alloc_sds_rings fndecl 2 27002 NULL
162842 +enable_so_retry_cnt_ib_qp_attr_27003 retry_cnt ib_qp_attr 0 27003 NULL
162843 +enable_so_task_array_size_cnic_local_27004 task_array_size cnic_local 0 27004 NULL
162844 +enable_so_n_tty_receive_buf_common_fndecl_27013 n_tty_receive_buf_common fndecl 4 27013 NULL
162845 +enable_so_batadv_handle_request_fndecl_27018 batadv_handle_request fndecl 5 27018 NULL nohasharray
162846 +enable_so_nfs4_set_security_label_fndecl_27018 nfs4_set_security_label fndecl 3 27018 &enable_so_batadv_handle_request_fndecl_27018
162847 +enable_so_mclk_frequency_ov965x_27019 mclk_frequency ov965x 0 27019 NULL
162848 +enable_so_sit_gro_complete_fndecl_27020 sit_gro_complete fndecl 2 27020 NULL
162849 +enable_so_lpfcdiag_loop_self_reg_fndecl_27022 lpfcdiag_loop_self_reg fndecl 0 27022 NULL
162850 +enable_so_ath6kl_cfg80211_connect_event_fndecl_27024 ath6kl_cfg80211_connect_event fndecl 7-8-9 27024 NULL nohasharray
162851 +enable_so_cts_cbc_decrypt_fndecl_27024 cts_cbc_decrypt fndecl 5 27024 &enable_so_ath6kl_cfg80211_connect_event_fndecl_27024
162852 +enable_so_dx_fb_copyarea_27025 dx fb_copyarea 0 27025 NULL
162853 +enable_so___bufio_new_fndecl_27029 __bufio_new fndecl 2 27029 NULL
162854 +enable_so_overhead_sctp_packet_27032 overhead sctp_packet 0 27032 NULL
162855 +enable_so_read_capacity_16_fndecl_27039 read_capacity_16 fndecl 0 27039 NULL
162856 +enable_so_device_pci_dev_27044 device pci_dev 0 27044 NULL
162857 +enable_so_data_read_fndecl_27045 data_read fndecl 3 27045 NULL
162858 +enable_so_remains_vardecl_initramfs_c_27049 remains vardecl_initramfs.c 0 27049 NULL
162859 +enable_so_brcmf_sdiod_ramrw_fndecl_27055 brcmf_sdiod_ramrw fndecl 5-3 27055 NULL
162860 +enable_so_indices_fm10k_ring_feature_27057 indices fm10k_ring_feature 0 27057 NULL
162861 +enable_so_iscsi_post_host_event_fndecl_27058 iscsi_post_host_event fndecl 4 27058 NULL
162862 +enable_so_sb_init_dio_done_wq_fndecl_27065 sb_init_dio_done_wq fndecl 0 27065 NULL
162863 +enable_so_bfad_iocmd_fcpim_clr_modstats_fndecl_27068 bfad_iocmd_fcpim_clr_modstats fndecl 0 27068 NULL
162864 +enable_so_z_decompress_fndecl_27072 z_decompress fndecl 5-3 27072 NULL
162865 +enable_so_bm_init_fndecl_27082 bm_init fndecl 2 27082 NULL
162866 +enable_so_new_layout_mddev_27083 new_layout mddev 0 27083 NULL
162867 +enable_so_max_wqes_rqes_per_q_ocrdma_mbx_query_config_27086 max_wqes_rqes_per_q ocrdma_mbx_query_config 0 27086 NULL
162868 +enable_so_f2fs_xattr_generic_set_fndecl_27087 f2fs_xattr_generic_set fndecl 5 27087 NULL
162869 +enable_so_far_set_size_geom_27088 far_set_size geom 0 27088 NULL
162870 +enable_so_vid_hdr_aloffset_ubi_device_27089 vid_hdr_aloffset ubi_device 0 27089 NULL
162871 +enable_so_file_size_perf_mmap_event_27090 file_size perf_mmap_event 0 27090 NULL nohasharray
162872 +enable_so_mei_devt_vardecl_main_c_27090 mei_devt vardecl_main.c 0 27090 &enable_so_file_size_perf_mmap_event_27090
162873 +enable_so_num_counters_compat_arpt_replace_27091 num_counters compat_arpt_replace 0 27091 NULL
162874 +enable_so_smk_write_mapped_fndecl_27100 smk_write_mapped fndecl 3 27100 NULL
162875 +enable_so___btrfs_alloc_chunk_fndecl_27105 __btrfs_alloc_chunk fndecl 3 27105 NULL nohasharray
162876 +enable_so_i_suballoc_bit_ocfs2_dinode_27105 i_suballoc_bit ocfs2_dinode 0 27105 &enable_so___btrfs_alloc_chunk_fndecl_27105
162877 +enable_so_lastctxt_piobuf_qib_devdata_27106 lastctxt_piobuf qib_devdata 0 27106 NULL
162878 +enable_so_iser_max_sectors_vardecl_27108 iser_max_sectors vardecl 0 27108 NULL
162879 +enable_so_usb_hcd_link_urb_to_ep_fndecl_27115 usb_hcd_link_urb_to_ep fndecl 0 27115 NULL
162880 +enable_so_acpi_table_parse_entries_array_fndecl_27120 acpi_table_parse_entries_array fndecl 0 27120 NULL
162881 +enable_so_intel_th_alloc_fndecl_27123 intel_th_alloc fndecl 4 27123 NULL
162882 +enable_so_cnt_set_multicast_27125 cnt set_multicast 0 27125 NULL nohasharray
162883 +enable_so_gpa_gfn_to_hva_cache_27125 gpa gfn_to_hva_cache 0 27125 &enable_so_cnt_set_multicast_27125
162884 +enable_so_mwifiex_sdio_card_to_host_fndecl_27127 mwifiex_sdio_card_to_host fndecl 4 27127 NULL nohasharray
162885 +enable_so_non_atomic_pte_lookup_fndecl_27127 non_atomic_pte_lookup fndecl 2 27127 &enable_so_mwifiex_sdio_card_to_host_fndecl_27127
162886 +enable_so_pd_count_ocrdma_alloc_pd_range_rsp_27128 pd_count ocrdma_alloc_pd_range_rsp 0 27128 NULL
162887 +enable_so_sys32_fadvise64_fndecl_27136 sys32_fadvise64 fndecl 4 27136 NULL
162888 +enable_so_mtu_rfcomm_dlc_27139 mtu rfcomm_dlc 0 27139 NULL nohasharray
162889 +enable_so_do_proc_readlink_fndecl_27139 do_proc_readlink fndecl 3 27139 &enable_so_mtu_rfcomm_dlc_27139
162890 +enable_so_rxkad_sg_set_buf2_fndecl_27140 rxkad_sg_set_buf2 fndecl 3 27140 NULL
162891 +enable_so_rx_ps_bsize0_e1000_adapter_27144 rx_ps_bsize0 e1000_adapter 0 27144 NULL
162892 +enable_so_compat_sys_pselect6_fndecl_27146 compat_sys_pselect6 fndecl 1 27146 NULL
162893 +enable_so_nilfs_attach_checkpoint_fndecl_27152 nilfs_attach_checkpoint fndecl 2 27152 NULL
162894 +enable_so__nfs4_proc_readdir_fndecl_27153 _nfs4_proc_readdir fndecl 5 27153 NULL
162895 +enable_so_dgram_recvmsg_fndecl_27155 dgram_recvmsg fndecl 3 27155 NULL
162896 +enable_so_total_h_mt9m001_27157 total_h mt9m001 0 27157 NULL
162897 +enable_so_len_nf_ct_ext_type_27159 len nf_ct_ext_type 0 27159 NULL
162898 +enable_so_bbRcvSizeLsb_csp_27167 bbRcvSizeLsb csp 0 27167 NULL
162899 +enable_so_len_rdesc0_27169 len rdesc0 0 27169 NULL
162900 +enable_so_cow_start_ocfs2_cow_context_27171 cow_start ocfs2_cow_context 0 27171 NULL
162901 +enable_so_bnep_send_fndecl_27175 bnep_send fndecl 3 27175 NULL
162902 +enable_so_e100_change_mtu_fndecl_27180 e100_change_mtu fndecl 2 27180 NULL
162903 +enable_so_isku_sysfs_read_light_fndecl_27183 isku_sysfs_read_light fndecl 6 27183 NULL
162904 +enable_so_compat_sys_ftruncate_fndecl_27189 compat_sys_ftruncate fndecl 2 27189 NULL
162905 +enable_so_brcmf_sdio_bus_txctl_fndecl_27192 brcmf_sdio_bus_txctl fndecl 3 27192 NULL
162906 +enable_so_write_tty_operations_27198 write tty_operations 0 27198 NULL nohasharray
162907 +enable_so_caif_stream_recvmsg_fndecl_27198 caif_stream_recvmsg fndecl 3 27198 &enable_so_write_tty_operations_27198
162908 +enable_so_netup_unidvb_dma_init_fndecl_27199 netup_unidvb_dma_init fndecl 2 27199 NULL
162909 +enable_so_bfad_iocmd_ioc_enable_fndecl_27205 bfad_iocmd_ioc_enable fndecl 0 27205 NULL
162910 +enable_so_ath6kl_wmi_scanparams_cmd_fndecl_27208 ath6kl_wmi_scanparams_cmd fndecl 2 27208 NULL nohasharray
162911 +enable_so_cfs_hash_rehash_bits_fndecl_27208 cfs_hash_rehash_bits fndecl 0 27208 &enable_so_ath6kl_wmi_scanparams_cmd_fndecl_27208
162912 +enable_so___ext4_read_dirblock_fndecl_27210 __ext4_read_dirblock fndecl 2 27210 NULL
162913 +enable_so_block_size_scsi_tape_27212 block_size scsi_tape 0 27212 NULL
162914 +enable_so_num_prior_parent_snaps_ceph_mds_snap_realm_27215 num_prior_parent_snaps ceph_mds_snap_realm 0 27215 NULL
162915 +enable_so_sdio_memcpy_fromio_fndecl_27218 sdio_memcpy_fromio fndecl 4 27218 NULL
162916 +enable_so_sym_prepare_nego_fndecl_27219 sym_prepare_nego fndecl 0 27219 NULL
162917 +enable_so_em_canid_change_fndecl_27221 em_canid_change fndecl 3 27221 NULL
162918 +enable_so_bm_bn_xfs_buf_map_27223 bm_bn xfs_buf_map 0 27223 NULL
162919 +enable_so_gsm_dlci_data_fndecl_27224 gsm_dlci_data fndecl 3 27224 NULL
162920 +enable_so_arm_db_page_mthca_create_cq_27227 arm_db_page mthca_create_cq 0 27227 NULL
162921 +enable_so_iwl_store_ucode_sec_fndecl_27235 iwl_store_ucode_sec fndecl 4 27235 NULL
162922 +enable_so_qib_cfgctxts_vardecl_27236 qib_cfgctxts vardecl 0 27236 NULL nohasharray
162923 +enable_so_acks_winsz_rxrpc_call_27236 acks_winsz rxrpc_call 0 27236 &enable_so_qib_cfgctxts_vardecl_27236
162924 +enable_so_do_splice_fndecl_27239 do_splice fndecl 5 27239 NULL
162925 +enable_so_hfsplus_brec_find_fndecl_27243 hfsplus_brec_find fndecl 0 27243 NULL
162926 +enable_so_sisusb_recv_bulk_msg_fndecl_27246 sisusb_recv_bulk_msg fndecl 3-2 27246 NULL
162927 +enable_so_skb_read_pdu_data_fndecl_27249 skb_read_pdu_data fndecl 4 27249 NULL
162928 +enable_so_ocfs2_xattr_value_truncate_fndecl_27252 ocfs2_xattr_value_truncate fndecl 3 27252 NULL nohasharray
162929 +enable_so_zoneshift_alauda_card_info_27252 zoneshift alauda_card_info 0 27252 &enable_so_ocfs2_xattr_value_truncate_fndecl_27252
162930 +enable_so_amb_base_i5k_amb_data_27255 amb_base i5k_amb_data 0 27255 NULL
162931 +enable_so_datafab_read_data_fndecl_27257 datafab_read_data fndecl 4 27257 NULL
162932 +enable_so_mx_sb_len_sg_io_hdr_27261 mx_sb_len sg_io_hdr 0 27261 NULL
162933 +enable_so_sector_drbd_interval_27266 sector drbd_interval 0 27266 NULL
162934 +enable_so_truesize_iwl_rx_cmd_buffer_27273 truesize iwl_rx_cmd_buffer 0 27273 NULL
162935 +enable_so_ieee80211_if_write_uapsd_max_sp_len_fndecl_27274 ieee80211_if_write_uapsd_max_sp_len fndecl 3 27274 NULL
162936 +enable_so_bios_hardcoded_edid_size_amdgpu_mode_info_27277 bios_hardcoded_edid_size amdgpu_mode_info 0 27277 NULL
162937 +enable_so_netxen_process_rcv_fndecl_27279 netxen_process_rcv fndecl 4 27279 NULL
162938 +enable_so_alloc_async_fndecl_27283 alloc_async fndecl 1 27283 NULL
162939 +enable_so___nvme_alloc_iod_fndecl_27289 __nvme_alloc_iod fndecl 2-1 27289 NULL
162940 +enable_so_sys_kexec_load_fndecl_27293 sys_kexec_load fndecl 2 27293 NULL
162941 +enable_so_sector_r10bio_27298 sector r10bio 0 27298 NULL
162942 +enable_so_offset_mlx5_ib_wq_27302 offset mlx5_ib_wq 0 27302 NULL
162943 +enable_so_ath6kl_connect_event_fndecl_27304 ath6kl_connect_event fndecl 7-8-9 27304 NULL
162944 +enable_so_cifs_strict_fsync_fndecl_27308 cifs_strict_fsync fndecl 2-3 27308 NULL nohasharray
162945 +enable_so_gpu_mem_size_vml_par_27308 gpu_mem_size vml_par 0 27308 &enable_so_cifs_strict_fsync_fndecl_27308
162946 +enable_so_nrelocs_radeon_cs_parser_27313 nrelocs radeon_cs_parser 0 27313 NULL
162947 +enable_so_sctp_recvmsg_fndecl_27314 sctp_recvmsg fndecl 3 27314 NULL
162948 +enable_so_btrfs_token_file_extent_ram_bytes_fndecl_27316 btrfs_token_file_extent_ram_bytes fndecl 0 27316 NULL
162949 +enable_so_chunk_sectors_r5conf_27317 chunk_sectors r5conf 0 27317 NULL
162950 +enable_so_dma_declare_coherent_memory_fndecl_27319 dma_declare_coherent_memory fndecl 4 27319 NULL
162951 +enable_so_lpe_size_sst_pdata_27329 lpe_size sst_pdata 0 27329 NULL
162952 +enable_so_write_buffer_fndecl_27339 write_buffer fndecl 2-0 27339 NULL nohasharray
162953 +enable_so_port_num_ib_wc_27339 port_num ib_wc 0 27339 &enable_so_write_buffer_fndecl_27339
162954 +enable_so_align_pad_cqe_rx_t_27341 align_pad cqe_rx_t 0 27341 NULL nohasharray
162955 +enable_so_read_default_ldt_fndecl_27341 read_default_ldt fndecl 2 27341 &enable_so_align_pad_cqe_rx_t_27341
162956 +enable_so_sndbuf_tun_struct_27345 sndbuf tun_struct 0 27345 NULL
162957 +enable_so_acpi_os_map_iomem_fndecl_27346 acpi_os_map_iomem fndecl 2-1 27346 NULL nohasharray
162958 +enable_so_add_numbered_child_fndecl_27346 add_numbered_child fndecl 7-8-3 27346 &enable_so_acpi_os_map_iomem_fndecl_27346
162959 +enable_so_snd_seq_oss_readq_new_fndecl_27352 snd_seq_oss_readq_new fndecl 2 27352 NULL
162960 +enable_so_pix_format_set_size_fndecl_27356 pix_format_set_size fndecl 3-4 27356 NULL nohasharray
162961 +enable_so_offset_gtt_range_27356 offset gtt_range 0 27356 &enable_so_pix_format_set_size_fndecl_27356
162962 +enable_so_static_data_priv_len_wl1271_27357 static_data_priv_len wl1271 0 27357 NULL
162963 +enable_so_n_mcgrps_genl_family_27362 n_mcgrps genl_family 0 27362 NULL
162964 +enable_so_find_new_extents_fndecl_27368 find_new_extents fndecl 5 27368 NULL
162965 +enable_so_channels_pda_pa_curve_data_27369 channels pda_pa_curve_data 0 27369 NULL
162966 +enable_so_btrfs_add_delayed_tree_ref_fndecl_27370 btrfs_add_delayed_tree_ref fndecl 3 27370 NULL
162967 +enable_so_num_altsetting_usb_interface_27371 num_altsetting usb_interface 0 27371 NULL
162968 +enable_so_mod_len_ccp_rsa_engine_27374 mod_len ccp_rsa_engine 0 27374 NULL nohasharray
162969 +enable_so_urb_size_tm6000_core_27374 urb_size tm6000_core 0 27374 &enable_so_mod_len_ccp_rsa_engine_27374
162970 +enable_so_dwNtbOutMaxSize_usb_cdc_ncm_ntb_parameters_27384 dwNtbOutMaxSize usb_cdc_ncm_ntb_parameters 0 27384 NULL
162971 +enable_so_mem_base_pch_dev_27386 mem_base pch_dev 0 27386 NULL
162972 +enable_so_msg_namelen_msghdr_27389 msg_namelen msghdr 0 27389 NULL
162973 +enable_so_frame_size_audioformat_27394 frame_size audioformat 0 27394 NULL
162974 +enable_so_ccid_kmem_cache_create_fndecl_27397 ccid_kmem_cache_create fndecl 1 27397 NULL
162975 +enable_so_evdev_ioctl_compat_fndecl_27400 evdev_ioctl_compat fndecl 2 27400 NULL
162976 +enable_so_m_bsize_xfs_mount_27405 m_bsize xfs_mount 0 27405 NULL
162977 +enable_so_max_payload_rpc_xprt_27408 max_payload rpc_xprt 0 27408 NULL
162978 +enable_so_bucket_table_alloc_fndecl_27422 bucket_table_alloc fndecl 2 27422 NULL
162979 +enable_so_dst_frames_snd_pcm_plugin_27424 dst_frames snd_pcm_plugin 0 27424 NULL nohasharray
162980 +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
162981 +enable_so_build_virtual_key_fndecl_27427 build_virtual_key fndecl 2 27427 NULL
162982 +enable_so_ad9523_read_fndecl_27434 ad9523_read fndecl 2 27434 NULL
162983 +enable_so_qp_memcpy_to_queue_fndecl_27437 qp_memcpy_to_queue fndecl 5-2 27437 NULL nohasharray
162984 +enable_so___fsnotify_parent_fndecl_27437 __fsnotify_parent fndecl 0 27437 &enable_so_qp_memcpy_to_queue_fndecl_27437
162985 +enable_so_regmap_spi_async_write_fndecl_27439 regmap_spi_async_write fndecl 3-5 27439 NULL
162986 +enable_so_produce_size_vmci_qp_alloc_info_vmvm_27440 produce_size vmci_qp_alloc_info_vmvm 0 27440 NULL
162987 +enable_so_radeon_vm_block_size_vardecl_27445 radeon_vm_block_size vardecl 0 27445 NULL
162988 +enable_so_lpfc_sriov_nr_virtfn_vardecl_lpfc_attr_c_27446 lpfc_sriov_nr_virtfn vardecl_lpfc_attr.c 0 27446 NULL
162989 +enable_so_dm_table_get_num_targets_fndecl_27451 dm_table_get_num_targets fndecl 0 27451 NULL
162990 +enable_so_compat_ip_setsockopt_fndecl_27453 compat_ip_setsockopt fndecl 5 27453 NULL
162991 +enable_so_set_offset_v2_k_type_fndecl_27455 set_offset_v2_k_type fndecl 2 27455 NULL
162992 +enable_so_nilfs_bmap_do_truncate_fndecl_27459 nilfs_bmap_do_truncate fndecl 0 27459 NULL
162993 +enable_so_xfs_dir3_data_init_fndecl_27460 xfs_dir3_data_init fndecl 2 27460 NULL
162994 +enable_so_io_opt_queue_limits_27462 io_opt queue_limits 0 27462 NULL
162995 +enable_so_next_header_vardecl_initramfs_c_27464 next_header vardecl_initramfs.c 0 27464 NULL
162996 +enable_so_uar_page_sz_mlx4_init_hca_param_27465 uar_page_sz mlx4_init_hca_param 0 27465 NULL
162997 +enable_so_max_slots_nfs4_slot_table_27470 max_slots nfs4_slot_table 0 27470 NULL
162998 +enable_so_window_alignment_fndecl_27476 window_alignment fndecl 0 27476 NULL
162999 +enable_so_l2cap_sock_create_fndecl_27477 l2cap_sock_create fndecl 3 27477 NULL nohasharray
163000 +enable_so_size_btrfs_ioctl_ino_path_args_27477 size btrfs_ioctl_ino_path_args 0 27477 &enable_so_l2cap_sock_create_fndecl_27477
163001 +enable_so_mq_msgsize_default_ipc_namespace_27478 mq_msgsize_default ipc_namespace 0 27478 NULL
163002 +enable_so_min_pnp_mem_27484 min pnp_mem 0 27484 NULL
163003 +enable_so_kim_int_recv_fndecl_27486 kim_int_recv fndecl 3 27486 NULL nohasharray
163004 +enable_so_snd_seq_fifo_resize_fndecl_27486 snd_seq_fifo_resize fndecl 2 27486 &enable_so_kim_int_recv_fndecl_27486
163005 +enable_so_status_udc_data_dma_27488 status udc_data_dma 0 27488 NULL nohasharray
163006 +enable_so_exofs_parent_ino_fndecl_27488 exofs_parent_ino fndecl 0 27488 &enable_so_status_udc_data_dma_27488
163007 +enable_so_drbd_send_drequest_csum_fndecl_27489 drbd_send_drequest_csum fndecl 2-3-5 27489 NULL nohasharray
163008 +enable_so_local_nentries_xpc_channel_27489 local_nentries xpc_channel 0 27489 &enable_so_drbd_send_drequest_csum_fndecl_27489
163009 +enable_so_wb_index_nfs_page_27494 wb_index nfs_page 0 27494 NULL
163010 +enable_so_ocfs2_xa_value_truncate_fndecl_27495 ocfs2_xa_value_truncate fndecl 2 27495 NULL
163011 +enable_so_qib_mmap_mem_fndecl_27496 qib_mmap_mem fndecl 3 27496 NULL
163012 +enable_so_rq_size_srpt_rdma_ch_27500 rq_size srpt_rdma_ch 0 27500 NULL
163013 +enable_so_rx_buf_size_bnx2x_fastpath_27506 rx_buf_size bnx2x_fastpath 0 27506 NULL
163014 +enable_so_max_qp_sz_mthca_dev_lim_27511 max_qp_sz mthca_dev_lim 0 27511 NULL
163015 +enable_so_stripe_len_map_lookup_27512 stripe_len map_lookup 0 27512 NULL
163016 +enable_so_vis_h_yuv_frame_info_27514 vis_h yuv_frame_info 0 27514 NULL
163017 +enable_so_com90xx_found_fndecl_27525 com90xx_found fndecl 3 27525 NULL
163018 +enable_so_eeprom_size_netdev_private_27532 eeprom_size netdev_private 0 27532 NULL
163019 +enable_so_dvb_demux_read_fndecl_27534 dvb_demux_read fndecl 3 27534 NULL
163020 +enable_so_hlen_raw6_frag_vec_27535 hlen raw6_frag_vec 0 27535 NULL
163021 +enable_so_hsr_dev_change_mtu_fndecl_27537 hsr_dev_change_mtu fndecl 2 27537 NULL
163022 +enable_so_dwc2_hsotg_rx_data_fndecl_27540 dwc2_hsotg_rx_data fndecl 3 27540 NULL
163023 +enable_so_max_mem_ttm_mem_zone_27542 max_mem ttm_mem_zone 0 27542 NULL nohasharray
163024 +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
163025 +enable_so_snd_pcm_plug_slave_size_fndecl_27548 snd_pcm_plug_slave_size fndecl 0-2 27548 NULL
163026 +enable_so_remap_and_issue_fndecl_27555 remap_and_issue fndecl 3 27555 NULL
163027 +enable_so_svc_rdma_xdr_encode_array_chunk_fndecl_27563 svc_rdma_xdr_encode_array_chunk fndecl 5 27563 NULL
163028 +enable_so_pipe_in_rtl8xxxu_priv_27564 pipe_in rtl8xxxu_priv 0 27564 NULL
163029 +enable_so_sddr09_write_data_fndecl_27565 sddr09_write_data fndecl 3-2 27565 NULL
163030 +enable_so_size_gf100_gr_fuc_27570 size gf100_gr_fuc 0 27570 NULL
163031 +enable_so__wm8993_set_fll_fndecl_27571 _wm8993_set_fll fndecl 4-5 27571 NULL
163032 +enable_so_disabled_cpus_vardecl_27577 disabled_cpus vardecl 0 27577 NULL
163033 +enable_so_count_cxgbi_task_data_27578 count cxgbi_task_data 0 27578 NULL
163034 +enable_so_dev_count_vardecl_smsc_ircc2_c_27579 dev_count vardecl_smsc-ircc2.c 0 27579 NULL
163035 +enable_so_nregions_vhost_memory_27586 nregions vhost_memory 0 27586 NULL
163036 +enable_so_pci_add_ext_cap_save_buffer_fndecl_27587 pci_add_ext_cap_save_buffer fndecl 3 27587 NULL nohasharray
163037 +enable_so_active_key_id_sctp_association_27587 active_key_id sctp_association 0 27587 &enable_so_pci_add_ext_cap_save_buffer_fndecl_27587
163038 +enable_so_fc_pdisc_build_fndecl_27591 fc_pdisc_build fndecl 7 27591 NULL nohasharray
163039 +enable_so_dvb_usercopy_fndecl_27591 dvb_usercopy fndecl 2 27591 &enable_so_fc_pdisc_build_fndecl_27591
163040 +enable_so_md_alloc_fndecl_27600 md_alloc fndecl 1 27600 NULL
163041 +enable_so_btrfs_get_blocks_direct_fndecl_27603 btrfs_get_blocks_direct fndecl 2 27603 NULL
163042 +enable_so_iscsi_create_flashnode_conn_fndecl_27605 iscsi_create_flashnode_conn fndecl 4 27605 NULL
163043 +enable_so__rtl92s_firmware_downloadcode_fndecl_27606 _rtl92s_firmware_downloadcode fndecl 3 27606 NULL
163044 +enable_so_packet_length_gl_packet_27608 packet_length gl_packet 0 27608 NULL nohasharray
163045 +enable_so_EraseSize_INFTLrecord_27608 EraseSize INFTLrecord 0 27608 &enable_so_packet_length_gl_packet_27608
163046 +enable_so_read_isac_isac_27627 read_isac isac 0 27627 NULL nohasharray
163047 +enable_so_ino_logfs_disk_dentry_27627 ino logfs_disk_dentry 0 27627 &enable_so_read_isac_isac_27627
163048 +enable_so_data_length_se_cmd_27629 data_length se_cmd 0 27629 NULL
163049 +enable_so_group_size_rcv_array_data_27633 group_size rcv_array_data 0 27633 NULL
163050 +enable_so_snoop_urb_data_fndecl_27635 snoop_urb_data fndecl 2 27635 NULL
163051 +enable_so_st_scsi_execute_fndecl_27643 st_scsi_execute fndecl 5 27643 NULL
163052 +enable_so_bsize_videobuf_buffer_27645 bsize videobuf_buffer 0 27645 NULL
163053 +enable_so_u8NumRates_add_sta_param_27647 u8NumRates add_sta_param 0 27647 NULL
163054 +enable_so_error_res_proc_context_27648 error res_proc_context 0 27648 NULL
163055 +enable_so_nvkm_event_init_fndecl_27654 nvkm_event_init fndecl 2-3 27654 NULL
163056 +enable_so_period_frames_usb_stream_config_27656 period_frames usb_stream_config 0 27656 NULL
163057 +enable_so_WriteRegs_fndecl_27658 WriteRegs fndecl 4 27658 NULL
163058 +enable_so_xen_get_pages_limit_fndecl_27661 xen_get_pages_limit fndecl 0 27661 NULL
163059 +enable_so_efx_ef10_mem_map_size_fndecl_27664 efx_ef10_mem_map_size fndecl 0 27664 NULL
163060 +enable_so_mr_write_fndecl_27670 mr_write fndecl 0 27670 NULL
163061 +enable_so_size_compat_ip6t_replace_27672 size compat_ip6t_replace 0 27672 NULL
163062 +enable_so_ib_umem_get_fndecl_27678 ib_umem_get fndecl 2-3 27678 NULL
163063 +enable_so_tlbflush_write_file_fndecl_27685 tlbflush_write_file fndecl 3 27685 NULL
163064 +enable_so_bnx2x_iov_init_one_fndecl_27687 bnx2x_iov_init_one fndecl 3 27687 NULL
163065 +enable_so_mt9m111_get_global_gain_fndecl_27689 mt9m111_get_global_gain fndecl 0 27689 NULL
163066 +enable_so_ipv6_get_l4proto_fndecl_27691 ipv6_get_l4proto fndecl 2 27691 NULL
163067 +enable_so_vhci_put_user_fndecl_27695 vhci_put_user fndecl 4 27695 NULL
163068 +enable_so_hvc_alloc_fndecl_27696 hvc_alloc fndecl 4 27696 NULL
163069 +enable_so_mru_ppp_27697 mru ppp 0 27697 NULL
163070 +enable_so_rx_buf_sz_de_private_27701 rx_buf_sz de_private 0 27701 NULL
163071 +enable_so_snd_pcm_plugin_alloc_fndecl_27703 snd_pcm_plugin_alloc fndecl 2 27703 NULL
163072 +enable_so_actual_size_mlx4_en_rx_ring_27705 actual_size mlx4_en_rx_ring 0 27705 NULL
163073 +enable_so_sequence_num_usb_ftdi_27707 sequence_num usb_ftdi 0 27707 NULL
163074 +enable_so_niu_rx_skb_append_fndecl_27708 niu_rx_skb_append fndecl 4-5-3 27708 NULL
163075 +enable_so_pcpu_extend_area_map_fndecl_27710 pcpu_extend_area_map fndecl 2 27710 NULL
163076 +enable_so_ns83820_change_mtu_fndecl_27711 ns83820_change_mtu fndecl 2 27711 NULL
163077 +enable_so_sdhci_pltfm_init_fndecl_27712 sdhci_pltfm_init fndecl 3 27712 NULL
163078 +enable_so_min_out_pixsize_fimc_variant_27716 min_out_pixsize fimc_variant 0 27716 NULL
163079 +enable_so_fsblog_xfs_da_geometry_27717 fsblog xfs_da_geometry 0 27717 NULL
163080 +enable_so_create_xrc_srq_cmd_fndecl_27718 create_xrc_srq_cmd fndecl 0 27718 NULL
163081 +enable_so_pwr_rcvd_awake_bcns_cnt_read_fndecl_27723 pwr_rcvd_awake_bcns_cnt_read fndecl 3 27723 NULL
163082 +enable_so_xstate_size__fpx_sw_bytes_27731 xstate_size _fpx_sw_bytes 0 27731 NULL
163083 +enable_so_ioat_dca_count_dca_slots_fndecl_27732 ioat_dca_count_dca_slots fndecl 0 27732 NULL
163084 +enable_so_ieee80211_ie_split_vendor_fndecl_27738 ieee80211_ie_split_vendor fndecl 0-3 27738 NULL nohasharray
163085 +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
163086 +enable_so_word_size_e1000_eeprom_info_27741 word_size e1000_eeprom_info 0 27741 NULL
163087 +enable_so_si_blocks_ocfs2_slot_info_27753 si_blocks ocfs2_slot_info 0 27753 NULL
163088 +enable_so_sparse_mem_maps_populate_node_fndecl_27758 sparse_mem_maps_populate_node fndecl 4 27758 NULL nohasharray
163089 +enable_so_sel_read_class_fndecl_27758 sel_read_class fndecl 3 27758 &enable_so_sparse_mem_maps_populate_node_fndecl_27758
163090 +enable_so_nr_sendmsg_fndecl_27763 nr_sendmsg fndecl 3 27763 NULL
163091 +enable_so_h_drm_vmw_rect_27765 h drm_vmw_rect 0 27765 NULL
163092 +enable_so_instat_endpoint_keyspan_device_details_27768 instat_endpoint keyspan_device_details 0 27768 NULL nohasharray
163093 +enable_so_wb_create_fndecl_27768 wb_create fndecl 1 27768 &enable_so_instat_endpoint_keyspan_device_details_27768
163094 +enable_so_be_queue_alloc_fndecl_27771 be_queue_alloc fndecl 3 27771 NULL
163095 +enable_so_max_cyttsp4_tch_abs_params_27772 max cyttsp4_tch_abs_params 0 27772 NULL nohasharray
163096 +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
163097 +enable_so_rs_datalen_ath_rx_status_27774 rs_datalen ath_rx_status 0 27774 NULL
163098 +enable_so_vlan_qos_vlan_priority_tci_mapping_27789 vlan_qos vlan_priority_tci_mapping 0 27789 NULL nohasharray
163099 +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
163100 +enable_so_flags_mmio_74xx_gpio_priv_27797 flags mmio_74xx_gpio_priv 0 27797 NULL
163101 +enable_so_nilfs_segbuf_set_next_segnum_fndecl_27802 nilfs_segbuf_set_next_segnum fndecl 2 27802 NULL
163102 +enable_so_bm_offset_drbd_md_27803 bm_offset drbd_md 0 27803 NULL
163103 +enable_so_nr_ports_solos_card_27804 nr_ports solos_card 0 27804 NULL
163104 +enable_so_e1000_receive_skb_fndecl_27809 e1000_receive_skb fndecl 3 27809 NULL
163105 +enable_so_ivtv_write_fndecl_27810 ivtv_write fndecl 3 27810 NULL
163106 +enable_so_ule_sndu_remain_dvb_net_priv_27812 ule_sndu_remain dvb_net_priv 0 27812 NULL
163107 +enable_so_page_is_ram_fndecl_27814 page_is_ram fndecl 1 27814 NULL
163108 +enable_so_dm_block_manager_create_fndecl_27815 dm_block_manager_create fndecl 2 27815 NULL
163109 +enable_so_sizeimage_v4l2_pix_format_27824 sizeimage v4l2_pix_format 0 27824 NULL nohasharray
163110 +enable_so_iwl_dbgfs_calib_disabled_write_fndecl_27824 iwl_dbgfs_calib_disabled_write fndecl 3 27824 &enable_so_sizeimage_v4l2_pix_format_27824
163111 +enable_so_consumed_vringh_kiov_27828 consumed vringh_kiov 0 27828 NULL
163112 +enable_so_corruption_check_size_vardecl_check_c_27830 corruption_check_size vardecl_check.c 0 27830 NULL
163113 +enable_so_number_of_effective_blocks_ms_boot_attr_info_27832 number_of_effective_blocks ms_boot_attr_info 0 27832 NULL
163114 +enable_so_roundup_brcmf_sdio_27833 roundup brcmf_sdio 0 27833 NULL nohasharray
163115 +enable_so_type_kqid_27833 type kqid 0 27833 &enable_so_roundup_brcmf_sdio_27833
163116 +enable_so_num_bcma_bus_27835 num bcma_bus 0 27835 NULL
163117 +enable_so_adm8211_tx_raw_fndecl_27839 adm8211_tx_raw fndecl 3-4 27839 NULL
163118 +enable_so___getblk_slow_fndecl_27842 __getblk_slow fndecl 3-2 27842 NULL nohasharray
163119 +enable_so_cfg_niq_csio_hw_27842 cfg_niq csio_hw 0 27842 &enable_so___getblk_slow_fndecl_27842
163120 +enable_so_dd_bsg_size_fc_function_template_27852 dd_bsg_size fc_function_template 0 27852 NULL
163121 +enable_so_size_pnp_port_27856 size pnp_port 0 27856 NULL
163122 +enable_so_xfs_da3_node_read_fndecl_27858 xfs_da3_node_read fndecl 3 27858 NULL
163123 +enable_so_pb_count_s5p_mfc_ctx_27861 pb_count s5p_mfc_ctx 0 27861 NULL
163124 +enable_so_pkey_index_cm_av_27866 pkey_index cm_av 0 27866 NULL nohasharray
163125 +enable_so_vlan_proto_sk_buff_27866 vlan_proto sk_buff 0 27866 &enable_so_pkey_index_cm_av_27866
163126 +enable_so_ngroups_rcv_array_data_27872 ngroups rcv_array_data 0 27872 NULL
163127 +enable_so_lo_len_nfsd4_lookup_27874 lo_len nfsd4_lookup 0 27874 NULL
163128 +enable_so_l_blkno_lbuf_27876 l_blkno lbuf 0 27876 NULL
163129 +enable_so_msb_sg_copy_fndecl_27886 msb_sg_copy fndecl 5-4 27886 NULL
163130 +enable_so__rotate_left_fndecl_27889 _rotate_left fndecl 2 27889 NULL
163131 +enable_so_do_blktrans_request_fndecl_27890 do_blktrans_request fndecl 0 27890 NULL nohasharray
163132 +enable_so_listxattr_fndecl_27890 listxattr fndecl 3 27890 &enable_so_do_blktrans_request_fndecl_27890
163133 +enable_so_brcmf_debug_create_memdump_fndecl_27901 brcmf_debug_create_memdump fndecl 3 27901 NULL
163134 +enable_so___lbs_cmd_fndecl_27904 __lbs_cmd fndecl 4 27904 NULL
163135 +enable_so_reada_tree_block_flagged_fndecl_27912 reada_tree_block_flagged fndecl 2 27912 NULL
163136 +enable_so_lbq_len_rx_ring_27913 lbq_len rx_ring 0 27913 NULL
163137 +enable_so_tp_datalen_bcm5974_config_27927 tp_datalen bcm5974_config 0 27927 NULL
163138 +enable_so_numchips_lpddr_private_27938 numchips lpddr_private 0 27938 NULL
163139 +enable_so_get_burstcount_fndecl_27942 get_burstcount fndecl 0 27942 NULL nohasharray
163140 +enable_so_capacity_cdrom_device_info_27942 capacity cdrom_device_info 0 27942 &enable_so_get_burstcount_fndecl_27942
163141 +enable_so_usbat_hp8200e_rw_block_test_fndecl_27957 usbat_hp8200e_rw_block_test fndecl 5-12-13 27957 NULL
163142 +enable_so_size_plx_pci_channel_map_27958 size plx_pci_channel_map 0 27958 NULL
163143 +enable_so_pcbit_writecmd_fndecl_27967 pcbit_writecmd fndecl 2 27967 NULL
163144 +enable_so_msi_prepare_msi_domain_ops_27969 msi_prepare msi_domain_ops 0 27969 NULL
163145 +enable_so_fat_build_inode_fndecl_27970 fat_build_inode fndecl 3 27970 NULL
163146 +enable_so_parser_init_byte_stream_fndecl_27973 parser_init_byte_stream fndecl 2 27973 NULL
163147 +enable_so_iip_ubifs_znode_27974 iip ubifs_znode 0 27974 NULL
163148 +enable_so_sxgbe_init_rx_buffers_fndecl_27984 sxgbe_init_rx_buffers fndecl 4 27984 NULL nohasharray
163149 +enable_so_mptctl_ioctl_fndecl_27984 mptctl_ioctl fndecl 2 27984 &enable_so_sxgbe_init_rx_buffers_fndecl_27984
163150 +enable_so_snd_sb16_setup_rate_fndecl_27986 snd_sb16_setup_rate fndecl 2 27986 NULL
163151 +enable_so_ext4_seek_hole_fndecl_27990 ext4_seek_hole fndecl 2 27990 NULL
163152 +enable_so_write_mei_hw_ops_27991 write mei_hw_ops 0 27991 NULL
163153 +enable_so_alloc_ccbs_blogic_adapter_27993 alloc_ccbs blogic_adapter 0 27993 NULL
163154 +enable_so___nf_ct_ext_add_length_fndecl_27999 __nf_ct_ext_add_length fndecl 3 27999 NULL
163155 +enable_so_ubifs_end_scan_fndecl_28000 ubifs_end_scan fndecl 4 28000 NULL nohasharray
163156 +enable_so_page_count_scrub_block_28000 page_count scrub_block 0 28000 &enable_so_ubifs_end_scan_fndecl_28000
163157 +enable_so_max_x_fb_monspecs_28003 max_x fb_monspecs 0 28003 NULL
163158 +enable_so_bytes_str_to_int_fndecl_28004 bytes_str_to_int fndecl 0 28004 NULL
163159 +enable_so_scif_recv_fndecl_28006 scif_recv fndecl 3 28006 NULL
163160 +enable_so_resp_ie_len_brcmf_cfg80211_connect_info_28007 resp_ie_len brcmf_cfg80211_connect_info 0 28007 NULL
163161 +enable_so_memtest_fndecl_28012 memtest fndecl 2 28012 NULL
163162 +enable_so_ext4_bg_num_gdb_nometa_fndecl_28014 ext4_bg_num_gdb_nometa fndecl 0 28014 NULL
163163 +enable_so_xfs_iext_inline_to_direct_fndecl_28019 xfs_iext_inline_to_direct fndecl 2 28019 NULL
163164 +enable_so_write_file_dump_fndecl_28020 write_file_dump fndecl 3 28020 NULL
163165 +enable_so_evtchn_alloc_ring_fndecl_28034 evtchn_alloc_ring fndecl 1 28034 NULL
163166 +enable_so_cfs_array_alloc_fndecl_28042 cfs_array_alloc fndecl 2 28042 NULL
163167 +enable_so_min_size_vx_ibl_info_28043 min_size vx_ibl_info 0 28043 NULL
163168 +enable_so_new_chunk_dm_exception_28044 new_chunk dm_exception 0 28044 NULL
163169 +enable_so_num_intr_mic_intr_info_28048 num_intr mic_intr_info 0 28048 NULL
163170 +enable_so_vc_top_vc_data_28051 vc_top vc_data 0 28051 NULL
163171 +enable_so_virtio_gpu_cmd_set_scanout_fndecl_28053 virtio_gpu_cmd_set_scanout fndecl 4-5 28053 NULL
163172 +enable_so_maxpacket_usbnet_28054 maxpacket usbnet 0 28054 NULL
163173 +enable_so_cl_nodelen_rpc_clnt_28055 cl_nodelen rpc_clnt 0 28055 NULL
163174 +enable_so_s_imap_blocks_minix_sb_info_28062 s_imap_blocks minix_sb_info 0 28062 NULL
163175 +enable_so_gfs2_llseek_fndecl_28067 gfs2_llseek fndecl 2 28067 NULL
163176 +enable_so_xfs_qm_scall_setqlim_fndecl_28074 xfs_qm_scall_setqlim fndecl 2 28074 NULL
163177 +enable_so_rsi_prepare_skb_fndecl_28075 rsi_prepare_skb fndecl 4-3 28075 NULL
163178 +enable_so_qla4_82xx_pci_mem_write_direct_fndecl_28076 qla4_82xx_pci_mem_write_direct fndecl 2 28076 NULL
163179 +enable_so_abituguru_detect_fndecl_28078 abituguru_detect fndecl 0 28078 NULL
163180 +enable_so_bio_slab_max_vardecl_bio_c_28087 bio_slab_max vardecl_bio.c 0 28087 NULL
163181 +enable_so_buflen_qce_sha_reqctx_28088 buflen qce_sha_reqctx 0 28088 NULL nohasharray
163182 +enable_so_ddr_start_mthca_dev_28088 ddr_start mthca_dev 0 28088 &enable_so_buflen_qce_sha_reqctx_28088
163183 +enable_so_xlog_state_get_iclog_space_fndecl_28090 xlog_state_get_iclog_space fndecl 2 28090 NULL
163184 +enable_so_vxfs_read_olt_fndecl_28091 vxfs_read_olt fndecl 2 28091 NULL
163185 +enable_so_llcp_sock_recvmsg_fndecl_28095 llcp_sock_recvmsg fndecl 3 28095 NULL
163186 +enable_so_fnic_trace_ctrl_read_fndecl_28098 fnic_trace_ctrl_read fndecl 3 28098 NULL
163187 +enable_so___ceph_osdc_start_request_fndecl_28101 __ceph_osdc_start_request fndecl 0 28101 NULL nohasharray
163188 +enable_so_vmw_fb_create_bo_fndecl_28101 vmw_fb_create_bo fndecl 2 28101 &enable_so___ceph_osdc_start_request_fndecl_28101
163189 +enable_so_ath6kl_wmi_set_wmm_txop_fndecl_28102 ath6kl_wmi_set_wmm_txop fndecl 2 28102 NULL
163190 +enable_so_tool_peer_db_write_fndecl_28104 tool_peer_db_write fndecl 3 28104 NULL
163191 +enable_so_xlvbd_init_blk_queue_fndecl_28107 xlvbd_init_blk_queue fndecl 2-3-4 28107 NULL nohasharray
163192 +enable_so_udf_check_anchor_block_fndecl_28107 udf_check_anchor_block fndecl 2 28107 &enable_so_xlvbd_init_blk_queue_fndecl_28107
163193 +enable_so_gru_alloc_thread_state_fndecl_28109 gru_alloc_thread_state fndecl 2 28109 NULL
163194 +enable_so_ufs_inode_getfrag_fndecl_28110 ufs_inode_getfrag fndecl 3-0 28110 NULL
163195 +enable_so_stream_next_buffer_check_queue_fndecl_28114 stream_next_buffer_check_queue fndecl 0 28114 NULL
163196 +enable_so___iwl_read_prph_fndecl_28120 __iwl_read_prph fndecl 0 28120 NULL
163197 +enable_so_comm_base_mlx4_fw_28125 comm_base mlx4_fw 0 28125 NULL
163198 +enable_so_minimum_mfc_control_28126 minimum mfc_control 0 28126 NULL nohasharray
163199 +enable_so_mtip_send_trim_fndecl_28126 mtip_send_trim fndecl 0 28126 &enable_so_minimum_mfc_control_28126
163200 +enable_so_xfs_get_extsz_hint_fndecl_28128 xfs_get_extsz_hint fndecl 0 28128 NULL
163201 +enable_so_vlan_id_qlcnic_esw_func_cfg_28139 vlan_id qlcnic_esw_func_cfg 0 28139 NULL
163202 +enable_so_wLength_usb_ctrlrequest_28143 wLength usb_ctrlrequest 0 28143 NULL
163203 +enable_so_unit_size_pcpu_alloc_info_28146 unit_size pcpu_alloc_info 0 28146 NULL
163204 +enable_so_adv_smbus_read_byte_data_fndecl_28147 adv_smbus_read_byte_data fndecl 0 28147 NULL
163205 +enable_so_rc_framerate_denom_s5p_mfc_enc_params_28151 rc_framerate_denom s5p_mfc_enc_params 0 28151 NULL
163206 +enable_so_cur_page_offset_dio_submit_28153 cur_page_offset dio_submit 0 28153 NULL
163207 +enable_so_bNumPorts_usb_wa_descriptor_28154 bNumPorts usb_wa_descriptor 0 28154 NULL
163208 +enable_so_pipe_intr_lan78xx_net_28155 pipe_intr lan78xx_net 0 28155 NULL nohasharray
163209 +enable_so_cfg80211_disconnected_fndecl_28155 cfg80211_disconnected fndecl 4 28155 &enable_so_pipe_intr_lan78xx_net_28155
163210 +enable_so_af9013_rd_regs_fndecl_28157 af9013_rd_regs fndecl 4 28157 NULL
163211 +enable_so_sock_hlen_vhost_net_virtqueue_28159 sock_hlen vhost_net_virtqueue 0 28159 NULL
163212 +enable_so_aio_nbytes_iocb_28163 aio_nbytes iocb 0 28163 NULL
163213 +enable_so_x_drm_fb_helper_crtc_28166 x drm_fb_helper_crtc 0 28166 NULL
163214 +enable_so__ocfs2_free_suballoc_bits_fndecl_28174 _ocfs2_free_suballoc_bits fndecl 5 28174 NULL
163215 +enable_so___iscsi_conn_send_pdu_fndecl_28181 __iscsi_conn_send_pdu fndecl 4 28181 NULL
163216 +enable_so___dn_setsockopt_fndecl_28183 __dn_setsockopt fndecl 5 28183 NULL
163217 +enable_so_res_length_dlm_rsb_28184 res_length dlm_rsb 0 28184 NULL
163218 +enable_so_fw_cid_ep_handles_28190 fw_cid ep_handles 0 28190 NULL
163219 +enable_so_ixgbe_fcoe_get_tc_fndecl_28191 ixgbe_fcoe_get_tc fndecl 0 28191 NULL
163220 +enable_so_size_genwqe_mem_28192 size genwqe_mem 0 28192 NULL
163221 +enable_so_ttm_dma_pool_alloc_new_pages_fndecl_28194 ttm_dma_pool_alloc_new_pages fndecl 3 28194 NULL
163222 +enable_so_snd_rme96_playback_copy_fndecl_28196 snd_rme96_playback_copy fndecl 5 28196 NULL
163223 +enable_so_cirrus_gem_create_fndecl_28197 cirrus_gem_create fndecl 2 28197 NULL nohasharray
163224 +enable_so_next_power_fndecl_28197 next_power fndecl 0 28197 &enable_so_cirrus_gem_create_fndecl_28197
163225 +enable_so_snd_pcm_lib_preallocate_pages_for_all_fndecl_28203 snd_pcm_lib_preallocate_pages_for_all fndecl 4 28203 NULL
163226 +enable_so_bfad_debugfs_read_fndecl_28204 bfad_debugfs_read fndecl 3 28204 NULL
163227 +enable_so_region_shift_dm_region_hash_28205 region_shift dm_region_hash 0 28205 NULL
163228 +enable_so_ast_bo_create_fndecl_28209 ast_bo_create fndecl 2 28209 NULL nohasharray
163229 +enable_so_xattr_getsecurity_fndecl_28209 xattr_getsecurity fndecl 0 28209 &enable_so_ast_bo_create_fndecl_28209
163230 +enable_so_lec_change_mtu_fndecl_28213 lec_change_mtu fndecl 2 28213 NULL
163231 +enable_so_ext4_get_block_write_nolock_fndecl_28214 ext4_get_block_write_nolock fndecl 2 28214 NULL
163232 +enable_so_blk_rq_map_sg_fndecl_28215 blk_rq_map_sg fndecl 0 28215 NULL
163233 +enable_so_mpt_base_mthca_mr_table_28221 mpt_base mthca_mr_table 0 28221 NULL
163234 +enable_so_s_blocksize_bits_super_block_28225 s_blocksize_bits super_block 0 28225 NULL nohasharray
163235 +enable_so_wil_seq_hexdump_fndecl_28225 wil_seq_hexdump fndecl 3 28225 &enable_so_s_blocksize_bits_super_block_28225
163236 +enable_so_eth_type_ath6kl_llc_snap_hdr_28228 eth_type ath6kl_llc_snap_hdr 0 28228 NULL
163237 +enable_so_space_slots_btrfs_ioctl_space_args_28231 space_slots btrfs_ioctl_space_args 0 28231 NULL
163238 +enable_so_blk_update_request_fndecl_28233 blk_update_request fndecl 3-2 28233 NULL
163239 +enable_so_mux_device_request_fndecl_28235 mux_device_request fndecl 7 28235 NULL nohasharray
163240 +enable_so_l2cap_mtu_vardecl_core_c_28235 l2cap_mtu vardecl_core.c 0 28235 &enable_so_mux_device_request_fndecl_28235
163241 +enable_so_loop_end_patch_info_28242 loop_end patch_info 0 28242 NULL
163242 +enable_so_ino_bfs_dirent_28246 ino bfs_dirent 0 28246 NULL nohasharray
163243 +enable_so_btrfs_qgroup_free_data_fndecl_28246 btrfs_qgroup_free_data fndecl 2-3 28246 &enable_so_ino_bfs_dirent_28246
163244 +enable_so_tcpmss_mangle_packet_fndecl_28248 tcpmss_mangle_packet fndecl 0 28248 NULL
163245 +enable_so_rcv_fr_sz_fcoe_rdev_entry_28249 rcv_fr_sz fcoe_rdev_entry 0 28249 NULL
163246 +enable_so_ip_make_skb_fndecl_28250 ip_make_skb fndecl 6-5 28250 NULL
163247 +enable_so_ea_set_i_fndecl_28261 ea_set_i fndecl 5 28261 NULL nohasharray
163248 +enable_so_count_e1000_tx_ring_28261 count e1000_tx_ring 0 28261 &enable_so_ea_set_i_fndecl_28261
163249 +enable_so_of_setup_earlycon_fndecl_28264 of_setup_earlycon fndecl 1 28264 NULL
163250 +enable_so_ucs2_strlen_fndecl_28265 ucs2_strlen fndecl 0 28265 NULL
163251 +enable_so_x1_osd_cmd_s_28266 x1 osd_cmd_s 0 28266 NULL
163252 +enable_so_pwr_disable_ps_read_fndecl_28267 pwr_disable_ps_read fndecl 3 28267 NULL
163253 +enable_so_mt7601u_rx_process_seg_fndecl_28268 mt7601u_rx_process_seg fndecl 3 28268 NULL
163254 +enable_so_needed_headroom_net_device_28272 needed_headroom net_device 0 28272 NULL
163255 +enable_so_rxbufsize_dma_info_28275 rxbufsize dma_info 0 28275 NULL
163256 +enable_so_mtu_tipc_bearer_28279 mtu tipc_bearer 0 28279 NULL
163257 +enable_so_pio2k_bufbase_qib_devdata_28282 pio2k_bufbase qib_devdata 0 28282 NULL nohasharray
163258 +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
163259 +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
163260 +enable_so_mem_cgroup_try_charge_fndecl_28289 mem_cgroup_try_charge fndecl 0 28289 NULL
163261 +enable_so_read32_ssb_bus_ops_28292 read32 ssb_bus_ops 0 28292 NULL
163262 +enable_so_save_total_len_pch_spi_data_28296 save_total_len pch_spi_data 0 28296 NULL
163263 +enable_so_data_pad_ubi_vtbl_record_28297 data_pad ubi_vtbl_record 0 28297 NULL
163264 +enable_so_byte_count_il_rx_phy_res_28304 byte_count il_rx_phy_res 0 28304 NULL
163265 +enable_so_flags2_psb_s_28305 flags2 psb_s 0 28305 NULL
163266 +enable_so___xfs_get_blocks_fndecl_28308 __xfs_get_blocks fndecl 2 28308 NULL
163267 +enable_so_sst25l_read_fndecl_28315 sst25l_read fndecl 3 28315 NULL
163268 +enable_so_comedi_read_fndecl_28316 comedi_read fndecl 3 28316 NULL
163269 +enable_so_npages_mlx4_buf_28321 npages mlx4_buf 0 28321 NULL
163270 +enable_so_version_tclass_flow_ib_grh_28322 version_tclass_flow ib_grh 0 28322 NULL
163271 +enable_so_set_video_mode_Kiara_fndecl_28325 set_video_mode_Kiara fndecl 4 28325 NULL
163272 +enable_so_raw_descs_length_ffs_data_28328 raw_descs_length ffs_data 0 28328 NULL
163273 +enable_so_max_segment_size_brcmf_sdio_dev_28330 max_segment_size brcmf_sdio_dev 0 28330 NULL nohasharray
163274 +enable_so_size_videobuf_dmabuf_28330 size videobuf_dmabuf 0 28330 &enable_so_max_segment_size_brcmf_sdio_dev_28330
163275 +enable_so_asix_read_cmd_fndecl_28334 asix_read_cmd fndecl 5 28334 NULL
163276 +enable_so_ie_length_ndis_80211_bssid_ex_28346 ie_length ndis_80211_bssid_ex 0 28346 NULL
163277 +enable_so_irq_domain_alloc_irqs_recursive_fndecl_28349 irq_domain_alloc_irqs_recursive fndecl 0 28349 NULL
163278 +enable_so_fnic_trace_ctrl_write_fndecl_28350 fnic_trace_ctrl_write fndecl 3 28350 NULL
163279 +enable_so_j_blocksize_journal_s_28358 j_blocksize journal_s 0 28358 NULL nohasharray
163280 +enable_so_c4iw_reg_user_mr_fndecl_28358 c4iw_reg_user_mr fndecl 2-3 28358 &enable_so_j_blocksize_journal_s_28358
163281 +enable_so_pmcraid_notify_aen_fndecl_28361 pmcraid_notify_aen fndecl 3 28361 NULL
163282 +enable_so_carl9170_rx_fndecl_28363 carl9170_rx fndecl 3 28363 NULL
163283 +enable_so_kvm_lapic_enable_pv_eoi_fndecl_28370 kvm_lapic_enable_pv_eoi fndecl 2 28370 NULL
163284 +enable_so_snd_emu10k1_fx8010_tram_setup_fndecl_28371 snd_emu10k1_fx8010_tram_setup fndecl 2 28371 NULL
163285 +enable_so_hostap_80211_get_hdrlen_fndecl_28372 hostap_80211_get_hdrlen fndecl 0 28372 NULL nohasharray
163286 +enable_so_count_atl1e_tx_ring_28372 count atl1e_tx_ring 0 28372 &enable_so_hostap_80211_get_hdrlen_fndecl_28372
163287 +enable_so_usbat_multiple_write_fndecl_28375 usbat_multiple_write fndecl 4 28375 NULL nohasharray
163288 +enable_so_init_tid_tabs_fndecl_28375 init_tid_tabs fndecl 4-3-2 28375 &enable_so_usbat_multiple_write_fndecl_28375
163289 +enable_so_bio_integrity_trim_fndecl_28376 bio_integrity_trim fndecl 2-3 28376 NULL
163290 +enable_so_iova_ib_mr_28381 iova ib_mr 0 28381 NULL
163291 +enable_so_simple_attr_write_fndecl_28383 simple_attr_write fndecl 3 28383 NULL
163292 +enable_so_dst_uffdio_copy_28391 dst uffdio_copy 0 28391 NULL
163293 +enable_so___bpf_fill_ja_fndecl_28393 __bpf_fill_ja fndecl 2 28393 NULL
163294 +enable_so_interrupt_in_endpointAddress_usb_serial_port_28398 interrupt_in_endpointAddress usb_serial_port 0 28398 NULL
163295 +enable_so_cxd2820r_rd_regs_fndecl_28402 cxd2820r_rd_regs fndecl 4 28402 NULL
163296 +enable_so_channel_bc_state_28411 channel bc_state 0 28411 NULL
163297 +enable_so_sd_major_fndecl_28413 sd_major fndecl 0-1 28413 NULL
163298 +enable_so_xfs_inumbers_fmt_fndecl_28418 xfs_inumbers_fmt fndecl 3 28418 NULL nohasharray
163299 +enable_so___inet_insert_ifa_fndecl_28418 __inet_insert_ifa fndecl 0 28418 &enable_so_xfs_inumbers_fmt_fndecl_28418
163300 +enable_so_dma_size_cx25821_audio_dev_28423 dma_size cx25821_audio_dev 0 28423 NULL
163301 +enable_so_afs_fs_store_data64_fndecl_28429 afs_fs_store_data64 fndecl 5-6 28429 NULL
163302 +enable_so_hpi_init_messageV1_fndecl_28435 hpi_init_messageV1 fndecl 2 28435 NULL
163303 +enable_so_dw_mci_exynos_execute_tuning_fndecl_28437 dw_mci_exynos_execute_tuning fndecl 2 28437 NULL
163304 +enable_so_jfs_issue_discard_fndecl_28440 jfs_issue_discard fndecl 3-2 28440 NULL
163305 +enable_so_sb_agcount_xfs_sb_28441 sb_agcount xfs_sb 0 28441 NULL nohasharray
163306 +enable_so_mgmt_event_fndecl_28441 mgmt_event fndecl 4 28441 &enable_so_sb_agcount_xfs_sb_28441
163307 +enable_so_iscsi_iser_session_create_fndecl_28447 iscsi_iser_session_create fndecl 3 28447 NULL
163308 +enable_so_nilfs_bmap_do_insert_fndecl_28453 nilfs_bmap_do_insert fndecl 0 28453 NULL
163309 +enable_so_stripe_size_bcache_device_28454 stripe_size bcache_device 0 28454 NULL
163310 +enable_so_mi_entries_per_block_nilfs_mdt_info_28458 mi_entries_per_block nilfs_mdt_info 0 28458 NULL nohasharray
163311 +enable_so_st_nci_hci_dm_vdc_value_comparison_fndecl_28458 st_nci_hci_dm_vdc_value_comparison fndecl 3 28458 &enable_so_mi_entries_per_block_nilfs_mdt_info_28458
163312 +enable_so_irda_connect_confirm_fndecl_28460 irda_connect_confirm fndecl 4-5 28460 NULL
163313 +enable_so_pc87360_device_add_fndecl_28461 pc87360_device_add fndecl 1 28461 NULL
163314 +enable_so_s_alt_pkey_index_qib_qp_28462 s_alt_pkey_index qib_qp 0 28462 NULL
163315 +enable_so_SyS_add_key_fndecl_28465 SyS_add_key fndecl 4 28465 NULL
163316 +enable_so_md_offset_drbd_md_28466 md_offset drbd_md 0 28466 NULL
163317 +enable_so_data_out_size_mpt3_ioctl_command_28472 data_out_size mpt3_ioctl_command 0 28472 NULL
163318 +enable_so_osd_upper_vardecl_ivtvfb_c_28473 osd_upper vardecl_ivtvfb.c 0 28473 NULL nohasharray
163319 +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
163320 +enable_so_spidev_ioctl_fndecl_28477 spidev_ioctl fndecl 2 28477 NULL
163321 +enable_so_pa_pstart_ext4_prealloc_space_28478 pa_pstart ext4_prealloc_space 0 28478 NULL nohasharray
163322 +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
163323 +enable_so_block_size_sd_28480 block_size sd 0 28480 NULL
163324 +enable_so_rbuf_fill_level_slgt_info_28481 rbuf_fill_level slgt_info 0 28481 NULL
163325 +enable_so_amdgpu_align_pitch_fndecl_28483 amdgpu_align_pitch fndecl 0-2 28483 NULL
163326 +enable_so_service_map_len_wmi_svc_rdy_ev_arg_28484 service_map_len wmi_svc_rdy_ev_arg 0 28484 NULL
163327 +enable_so_csa_nrclists_cb_sequenceargs_28491 csa_nrclists cb_sequenceargs 0 28491 NULL
163328 +enable_so_wl1271_sdio_set_block_size_fndecl_28494 wl1271_sdio_set_block_size fndecl 2 28494 NULL
163329 +enable_so_get_leb_cnt_fndecl_28495 get_leb_cnt fndecl 0-2 28495 NULL
163330 +enable_so_len_sctp_tsnmap_28496 len sctp_tsnmap 0 28496 NULL
163331 +enable_so_xfs_rtallocate_extent_exact_fndecl_28498 xfs_rtallocate_extent_exact fndecl 3-5-9 28498 NULL nohasharray
163332 +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
163333 +enable_so_num_vmdq_msix_i40e_pf_28501 num_vmdq_msix i40e_pf 0 28501 NULL
163334 +enable_so_read_file_operations_28504 read file_operations 0 28504 NULL
163335 +enable_so_dln2_send_wait_fndecl_28510 dln2_send_wait fndecl 0 28510 NULL
163336 +enable_so_fll_fout_wm8993_priv_28516 fll_fout wm8993_priv 0 28516 NULL
163337 +enable_so_xen_add_extra_mem_fndecl_28519 xen_add_extra_mem fndecl 1-2 28519 NULL
163338 +enable_so_pkey_index_ib_qp_attr_28520 pkey_index ib_qp_attr 0 28520 NULL
163339 +enable_so_rds_pages_in_vec_fndecl_28521 rds_pages_in_vec fndecl 0 28521 NULL
163340 +enable_so_free_tind_blocks_fndecl_28525 free_tind_blocks fndecl 3 28525 NULL
163341 +enable_so_src_width_snd_pcm_plugin_28529 src_width snd_pcm_plugin 0 28529 NULL
163342 +enable_so_max_rds_rings_qlcnic_adapter_28536 max_rds_rings qlcnic_adapter 0 28536 NULL
163343 +enable_so_ext4_bread_fndecl_28538 ext4_bread fndecl 3 28538 NULL
163344 +enable_so_btcx_screen_clips_fndecl_28540 btcx_screen_clips fndecl 2-1-0-5 28540 NULL
163345 +enable_so_get_virtual_node_size_fndecl_28543 get_virtual_node_size fndecl 0 28543 NULL
163346 +enable_so_md_minor_mdp_superblock_s_28551 md_minor mdp_superblock_s 0 28551 NULL
163347 +enable_so_raw_cmd_copyin_fndecl_28554 raw_cmd_copyin fndecl 0 28554 NULL
163348 +enable_so_len_s3fwrn5_fw_header_28556 len s3fwrn5_fw_header 0 28556 NULL
163349 +enable_so_mwifiex_send_delba_fndecl_28557 mwifiex_send_delba fndecl 2 28557 NULL
163350 +enable_so_ci_ll_init_fndecl_28561 ci_ll_init fndecl 3 28561 NULL nohasharray
163351 +enable_so_num_pads_uvc_entity_28561 num_pads uvc_entity 0 28561 &enable_so_ci_ll_init_fndecl_28561
163352 +enable_so_PRO_RATE_DEFAULT_vardecl_ice1712_c_28563 PRO_RATE_DEFAULT vardecl_ice1712.c 0 28563 NULL
163353 +enable_so_wil_write_back_fndecl_28568 wil_write_back fndecl 3 28568 NULL
163354 +enable_so_nvme_npages_fndecl_28569 nvme_npages fndecl 0-1 28569 NULL
163355 +enable_so_out_max_chans_snd_card_asihpi_28574 out_max_chans snd_card_asihpi 0 28574 NULL nohasharray
163356 +enable_so_ufx_i2c_wait_busy_fndecl_28574 ufx_i2c_wait_busy fndecl 0 28574 &enable_so_out_max_chans_snd_card_asihpi_28574
163357 +enable_so_charcount_console_font_op_28585 charcount console_font_op 0 28585 NULL
163358 +enable_so_uhci_map_status_fndecl_28591 uhci_map_status fndecl 0 28591 NULL
163359 +enable_so_icsk_pmtu_cookie_inet_connection_sock_28598 icsk_pmtu_cookie inet_connection_sock 0 28598 NULL
163360 +enable_so_n_devs_pci_id_table_28599 n_devs pci_id_table 0 28599 NULL nohasharray
163361 +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
163362 +enable_so_bm_status_write_fndecl_28599 bm_status_write fndecl 3 28599 &enable_so_menu_count_uvc_xu_control_mapping_28599
163363 +enable_so_status_smsc9420_dma_desc_28600 status smsc9420_dma_desc 0 28600 NULL
163364 +enable_so_stride_usX2Ydev_28605 stride usX2Ydev 0 28605 NULL
163365 +enable_so_ubifs_scan_a_node_fndecl_28611 ubifs_scan_a_node fndecl 0 28611 NULL nohasharray
163366 +enable_so_hmac_id_sctp_authhdr_28611 hmac_id sctp_authhdr 0 28611 &enable_so_ubifs_scan_a_node_fndecl_28611
163367 +enable_so_msb_erase_block_fndecl_28612 msb_erase_block fndecl 0-2 28612 NULL
163368 +enable_so_ccmp_encrypt_skb_fndecl_28613 ccmp_encrypt_skb fndecl 3 28613 NULL
163369 +enable_so_gru_assign_context_number_fndecl_28616 gru_assign_context_number fndecl 0 28616 NULL
163370 +enable_so_hfi1_rcvarr_split_vardecl_init_c_28624 hfi1_rcvarr_split vardecl_init.c 0 28624 NULL
163371 +enable_so_s_inode_size_ext4_sb_info_28625 s_inode_size ext4_sb_info 0 28625 NULL
163372 +enable_so_cdc_ncm_min_dgram_size_fndecl_28632 cdc_ncm_min_dgram_size fndecl 0 28632 NULL nohasharray
163373 +enable_so_max_indicator_intensity_adp1653_platform_data_28632 max_indicator_intensity adp1653_platform_data 0 28632 &enable_so_cdc_ncm_min_dgram_size_fndecl_28632 nohasharray
163374 +enable_so__get_block_create_0_fndecl_28632 _get_block_create_0 fndecl 2 28632 &enable_so_max_indicator_intensity_adp1653_platform_data_28632
163375 +enable_so_drbd_recv_all_fndecl_28633 drbd_recv_all fndecl 3 28633 NULL nohasharray
163376 +enable_so_key_size_ethtool_rxfh_28633 key_size ethtool_rxfh 0 28633 &enable_so_drbd_recv_all_fndecl_28633
163377 +enable_so_log_max_len_server_hdr_28634 log_max_len server_hdr 0 28634 NULL
163378 +enable_so_device_count_vardecl_mts64_c_28635 device_count vardecl_mts64.c 0 28635 NULL
163379 +enable_so_usb_stream_new_fndecl_28646 usb_stream_new fndecl 6-8-5-7-3-4 28646 NULL nohasharray
163380 +enable_so_ocfs2_write_begin_fndecl_28646 ocfs2_write_begin fndecl 3 28646 &enable_so_usb_stream_new_fndecl_28646
163381 +enable_so_cw1200_spi_memcpy_fromio_fndecl_28649 cw1200_spi_memcpy_fromio fndecl 4 28649 NULL nohasharray
163382 +enable_so_desc_size_mlx5_ib_mr_28649 desc_size mlx5_ib_mr 0 28649 &enable_so_cw1200_spi_memcpy_fromio_fndecl_28649
163383 +enable_so_alt_port_num_ib_qp_attr_28655 alt_port_num ib_qp_attr 0 28655 NULL nohasharray
163384 +enable_so_cur_offset_drm_dp_sideband_msg_tx_28655 cur_offset drm_dp_sideband_msg_tx 0 28655 &enable_so_alt_port_num_ib_qp_attr_28655
163385 +enable_so_alloc_size_chunk_28657 alloc_size chunk 0 28657 NULL
163386 +enable_so_bfad_iocmd_lunmask_fndecl_28667 bfad_iocmd_lunmask fndecl 0 28667 NULL
163387 +enable_so_x25_create_facilities_fndecl_28684 x25_create_facilities fndecl 0 28684 NULL
163388 +enable_so_fill_isoc_urb_fndecl_28690 fill_isoc_urb fndecl 6-5-3 28690 NULL
163389 +enable_so_stolen_size_psb_gtt_28693 stolen_size psb_gtt 0 28693 NULL
163390 +enable_so_offset_cache_reader_28697 offset cache_reader 0 28697 NULL
163391 +enable_so_register_size_fe_priv_28698 register_size fe_priv 0 28698 NULL
163392 +enable_so_bclean_fndecl_28699 bclean fndecl 3 28699 NULL
163393 +enable_so_data_len_rndis_data_hdr_28701 data_len rndis_data_hdr 0 28701 NULL
163394 +enable_so_cw_bmove_fndecl_28704 cw_bmove fndecl 7-5-3-6-8-4 28704 NULL nohasharray
163395 +enable_so_size_fuse_notify_store_out_28704 size fuse_notify_store_out 0 28704 &enable_so_cw_bmove_fndecl_28704
163396 +enable_so_CIFSSMBWrite2_fndecl_28705 CIFSSMBWrite2 fndecl 5 28705 NULL
163397 +enable_so_mlx4_init_cmpt_table_fndecl_28706 mlx4_init_cmpt_table fndecl 3 28706 NULL
163398 +enable_so_nilfs_bmap_lookup_contig_fndecl_28717 nilfs_bmap_lookup_contig fndecl 0 28717 NULL nohasharray
163399 +enable_so_oprofilefs_ulong_to_user_fndecl_28717 oprofilefs_ulong_to_user fndecl 3 28717 &enable_so_nilfs_bmap_lookup_contig_fndecl_28717
163400 +enable_so_phys_smscore_buffer_t_28719 phys smscore_buffer_t 0 28719 NULL nohasharray
163401 +enable_so_start_fjes_hw_resource_28719 start fjes_hw_resource 0 28719 &enable_so_phys_smscore_buffer_t_28719
163402 +enable_so_getexposure_fndecl_28720 getexposure fndecl 0 28720 NULL nohasharray
163403 +enable_so_radix_tree_extend_fndecl_28720 radix_tree_extend fndecl 0 28720 &enable_so_getexposure_fndecl_28720
163404 +enable_so_xfs_rtcheck_alloc_range_fndecl_28722 xfs_rtcheck_alloc_range fndecl 3 28722 NULL
163405 +enable_so_note_last_dentry_fndecl_28724 note_last_dentry fndecl 4-3 28724 NULL
163406 +enable_so_skb_cow_data_fndecl_28734 skb_cow_data fndecl 0 28734 NULL
163407 +enable_so_num_pports_qib_devdata_28736 num_pports qib_devdata 0 28736 NULL
163408 +enable_so_size_mspro_sys_attr_28742 size mspro_sys_attr 0 28742 NULL
163409 +enable_so_batadv_iv_ogm_orig_del_if_fndecl_28743 batadv_iv_ogm_orig_del_if fndecl 2 28743 NULL
163410 +enable_so_ns_pseg_offset_the_nilfs_28744 ns_pseg_offset the_nilfs 0 28744 NULL
163411 +enable_so_batadv_iv_ogm_orig_add_if_fndecl_28753 batadv_iv_ogm_orig_add_if fndecl 2 28753 NULL
163412 +enable_so_pci_msi_setup_msi_irqs_fndecl_28755 pci_msi_setup_msi_irqs fndecl 0 28755 NULL
163413 +enable_so_src_h_yuv_frame_info_28759 src_h yuv_frame_info 0 28759 NULL
163414 +enable_so_fw_device_op_ioctl_fndecl_28760 fw_device_op_ioctl fndecl 2 28760 NULL
163415 +enable_so_enc28j60_packet_write_fndecl_28762 enc28j60_packet_write fndecl 2 28762 NULL
163416 +enable_so_ncp_write_kernel_fndecl_28776 ncp_write_kernel fndecl 4 28776 NULL
163417 +enable_so_snic_print_desc_fndecl_28784 snic_print_desc fndecl 3 28784 NULL
163418 +enable_so_C_SYSC_migrate_pages_fndecl_28785 C_SYSC_migrate_pages fndecl 2 28785 NULL
163419 +enable_so_tcp_parse_fastopen_option_fndecl_28793 tcp_parse_fastopen_option fndecl 1 28793 NULL
163420 +enable_so_fill_swm_input_fndecl_28799 fill_swm_input fndecl 0 28799 NULL
163421 +enable_so_psbfb_alloc_fndecl_28804 psbfb_alloc fndecl 2 28804 NULL
163422 +enable_so_ext4_nfs_get_inode_fndecl_28806 ext4_nfs_get_inode fndecl 2 28806 NULL nohasharray
163423 +enable_so_items_max_vxge_hw_mempool_28806 items_max vxge_hw_mempool 0 28806 &enable_so_ext4_nfs_get_inode_fndecl_28806 nohasharray
163424 +enable_so_brcmf_fil_bsscfg_data_set_fndecl_28806 brcmf_fil_bsscfg_data_set fndecl 4 28806 &enable_so_items_max_vxge_hw_mempool_28806
163425 +enable_so_e820_remove_range_fndecl_28810 e820_remove_range fndecl 1-2 28810 NULL nohasharray
163426 +enable_so_ide_queue_pc_tail_fndecl_28810 ide_queue_pc_tail fndecl 5 28810 &enable_so_e820_remove_range_fndecl_28810
163427 +enable_so_sisusb_send_bridge_packet_fndecl_28818 sisusb_send_bridge_packet fndecl 2 28818 NULL
163428 +enable_so_ceph_build_auth_fndecl_28825 ceph_build_auth fndecl 0 28825 NULL
163429 +enable_so_sdio_memcpy_toio_fndecl_28828 sdio_memcpy_toio fndecl 4 28828 NULL
163430 +enable_so_vram_end_radeon_mc_28831 vram_end radeon_mc 0 28831 NULL
163431 +enable_so_right_qxl_urect_28833 right qxl_urect 0 28833 NULL nohasharray
163432 +enable_so_ivtv_udma_get_page_info_fndecl_28833 ivtv_udma_get_page_info fndecl 2-3 28833 &enable_so_right_qxl_urect_28833
163433 +enable_so_dm_table_add_target_fndecl_28838 dm_table_add_target fndecl 4-3 28838 NULL
163434 +enable_so_dest_qp_num_ib_qp_attr_28844 dest_qp_num ib_qp_attr 0 28844 NULL
163435 +enable_so_sctp_setsockopt_hmac_ident_fndecl_28852 sctp_setsockopt_hmac_ident fndecl 3 28852 NULL
163436 +enable_so_dsp_buffer_alloc_fndecl_28855 dsp_buffer_alloc fndecl 2 28855 NULL
163437 +enable_so_split_fndecl_28856 split fndecl 2 28856 NULL
163438 +enable_so_snd_ctl_elem_user_tlv_fndecl_28860 snd_ctl_elem_user_tlv fndecl 3 28860 NULL
163439 +enable_so_mt9t031_set_params_fndecl_28862 mt9t031_set_params fndecl 4-3 28862 NULL
163440 +enable_so_tx_pending_ethtool_ringparam_28864 tx_pending ethtool_ringparam 0 28864 NULL
163441 +enable_so_ie_length_brcmf_bss_info_le_28867 ie_length brcmf_bss_info_le 0 28867 NULL
163442 +enable_so_usb_stor_access_xfer_buf_fndecl_28868 usb_stor_access_xfer_buf fndecl 0-2 28868 NULL
163443 +enable_so_i2c_master_recv_fndecl_28869 i2c_master_recv fndecl 3-0 28869 NULL
163444 +enable_so_ep_out_mcs_cb_28872 ep_out mcs_cb 0 28872 NULL nohasharray
163445 +enable_so_receive_new_fndecl_28872 receive_new fndecl 3 28872 &enable_so_ep_out_mcs_cb_28872
163446 +enable_so_TupleOffset_tuple_t_28876 TupleOffset tuple_t 0 28876 NULL
163447 +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
163448 +enable_so_zlib_inflateInit2_fndecl_28887 zlib_inflateInit2 fndecl 2 28887 NULL
163449 +enable_so_request_len_bsg_job_28889 request_len bsg_job 0 28889 NULL
163450 +enable_so_map_count_mm_struct_28894 map_count mm_struct 0 28894 NULL
163451 +enable_so_nci_set_config_fndecl_28899 nci_set_config fndecl 3 28899 NULL
163452 +enable_so_t_elist_cb_state_28900 t elist_cb_state 0 28900 NULL nohasharray
163453 +enable_so_capi_major_vardecl_capi_c_28900 capi_major vardecl_capi.c 0 28900 &enable_so_t_elist_cb_state_28900
163454 +enable_so_ss_in_channels_hdspm_28903 ss_in_channels hdspm 0 28903 NULL
163455 +enable_so_ngpios_sx150x_device_data_28905 ngpios sx150x_device_data 0 28905 NULL
163456 +enable_so_ieee80211_get_num_supported_channels_fndecl_28907 ieee80211_get_num_supported_channels fndecl 0 28907 NULL
163457 +enable_so_stat_rate_mlx4_av_28909 stat_rate mlx4_av 0 28909 NULL
163458 +enable_so_usb_pipe_handle_ath6kl_usb_pipe_28910 usb_pipe_handle ath6kl_usb_pipe 0 28910 NULL
163459 +enable_so_hslen_vardecl_matroxfb_base_c_28914 hslen vardecl_matroxfb_base.c 0 28914 NULL
163460 +enable_so_port_c67x00_urb_priv_28917 port c67x00_urb_priv 0 28917 NULL
163461 +enable_so_c_ssize_f_uac2_opts_28922 c_ssize f_uac2_opts 0 28922 NULL
163462 +enable_so_suspend_nvs_register_fndecl_28923 suspend_nvs_register fndecl 2-1 28923 NULL
163463 +enable_so_tegra_sflash_start_cpu_based_transfer_fndecl_28927 tegra_sflash_start_cpu_based_transfer fndecl 0 28927 NULL
163464 +enable_so_block_hfs_extent_28930 block hfs_extent 0 28930 NULL
163465 +enable_so_rpcrdma_count_chunks_fndecl_28931 rpcrdma_count_chunks fndecl 0 28931 NULL
163466 +enable_so_usbat_write_block_fndecl_28938 usbat_write_block fndecl 4-6 28938 NULL
163467 +enable_so_pgs_per_blk_nvm_dev_28942 pgs_per_blk nvm_dev 0 28942 NULL
163468 +enable_so_alsa_index_vardecl_thinkpad_acpi_c_28952 alsa_index vardecl_thinkpad_acpi.c 0 28952 NULL
163469 +enable_so_ath6kl_power_params_write_fndecl_28953 ath6kl_power_params_write fndecl 3 28953 NULL
163470 +enable_so_gb_len_pn533_28959 gb_len pn533 0 28959 NULL
163471 +enable_so_hpfs_alloc_anode_fndecl_28960 hpfs_alloc_anode fndecl 2 28960 NULL nohasharray
163472 +enable_so_hci_cmd_sync_fndecl_28960 hci_cmd_sync fndecl 3 28960 &enable_so_hpfs_alloc_anode_fndecl_28960
163473 +enable_so_usb_stor_bulk_transfer_buf_fndecl_28961 usb_stor_bulk_transfer_buf fndecl 4-2 28961 NULL
163474 +enable_so_split_vma_fndecl_28963 split_vma fndecl 3 28963 NULL
163475 +enable_so_tcp_send_rcvq_fndecl_28967 tcp_send_rcvq fndecl 3 28967 NULL
163476 +enable_so_ath6kl_wmi_set_wow_mode_cmd_fndecl_28969 ath6kl_wmi_set_wow_mode_cmd fndecl 2 28969 NULL
163477 +enable_so_sctp_transport_update_pmtu_fndecl_28973 sctp_transport_update_pmtu fndecl 3 28973 NULL
163478 +enable_so_syncmaxsize_snd_usb_endpoint_28987 syncmaxsize snd_usb_endpoint 0 28987 NULL
163479 +enable_so_aper_size_agp_kern_info_28990 aper_size agp_kern_info 0 28990 NULL
163480 +enable_so_klen_WepKeyRid_28997 klen WepKeyRid 0 28997 NULL
163481 +enable_so_handle_unit_fndecl_29000 handle_unit fndecl 0-1 29000 NULL nohasharray
163482 +enable_so_prio_io_fndecl_29000 prio_io fndecl 2 29000 &enable_so_handle_unit_fndecl_29000 nohasharray
163483 +enable_so_rawsize_nd_namespace_label_29000 rawsize nd_namespace_label 0 29000 &enable_so_prio_io_fndecl_29000
163484 +enable_so_len_p54p_desc_29001 len p54p_desc 0 29001 NULL nohasharray
163485 +enable_so_buf_read_ptr_comedi_async_29001 buf_read_ptr comedi_async 0 29001 &enable_so_len_p54p_desc_29001
163486 +enable_so_nl80211_send_mgmt_fndecl_29002 nl80211_send_mgmt fndecl 7 29002 NULL nohasharray
163487 +enable_so_sel_write_create_fndecl_29002 sel_write_create fndecl 3 29002 &enable_so_nl80211_send_mgmt_fndecl_29002
163488 +enable_so_num_lns_csio_hw_29004 num_lns csio_hw 0 29004 NULL
163489 +enable_so___kfifo_out_peek_fndecl_29010 __kfifo_out_peek fndecl 0-3 29010 NULL nohasharray
163490 +enable_so_construct_key_fndecl_29010 construct_key fndecl 3 29010 &enable_so___kfifo_out_peek_fndecl_29010
163491 +enable_so_ivtvfb_prep_dec_dma_to_device_fndecl_29011 ivtvfb_prep_dec_dma_to_device fndecl 4 29011 NULL
163492 +enable_so_seq_copy_in_user_fndecl_29019 seq_copy_in_user fndecl 3 29019 NULL
163493 +enable_so_sb_dmap_hpfs_sb_info_29020 sb_dmap hpfs_sb_info 0 29020 NULL
163494 +enable_so_j_len_reiserfs_journal_list_29021 j_len reiserfs_journal_list 0 29021 NULL
163495 +enable_so___spi_queued_transfer_fndecl_29024 __spi_queued_transfer fndecl 0 29024 NULL
163496 +enable_so_nft_value_dump_fndecl_29030 nft_value_dump fndecl 3 29030 NULL nohasharray
163497 +enable_so_tcf_register_action_fndecl_29030 tcf_register_action fndecl 2 29030 &enable_so_nft_value_dump_fndecl_29030
163498 +enable_so_at24_read_fndecl_29031 at24_read fndecl 4 29031 NULL
163499 +enable_so_drm_vblank_init_fndecl_29041 drm_vblank_init fndecl 2 29041 NULL
163500 +enable_so_of_get_available_child_count_fndecl_29042 of_get_available_child_count fndecl 0 29042 NULL
163501 +enable_so_batadv_skb_head_push_fndecl_29043 batadv_skb_head_push fndecl 2 29043 NULL
163502 +enable_so_memory_size_kvm_userspace_memory_region_29047 memory_size kvm_userspace_memory_region 0 29047 NULL
163503 +enable_so_qib_get_base_info_fndecl_29050 qib_get_base_info fndecl 3 29050 NULL
163504 +enable_so_scsi_debug_max_queue_vardecl_scsi_debug_c_29056 scsi_debug_max_queue vardecl_scsi_debug.c 0 29056 NULL nohasharray
163505 +enable_so_str_to_user_fndecl_29056 str_to_user fndecl 2 29056 &enable_so_scsi_debug_max_queue_vardecl_scsi_debug_c_29056
163506 +enable_so____alloc_bootmem_fndecl_29057 ___alloc_bootmem fndecl 2-1-3-4 29057 NULL
163507 +enable_so_fbcon_scroll_fndecl_29060 fbcon_scroll fndecl 5 29060 NULL nohasharray
163508 +enable_so_len_wmi_rx_mgmt_info_29060 len wmi_rx_mgmt_info 0 29060 &enable_so_fbcon_scroll_fndecl_29060
163509 +enable_so_nfs4_xattr_set_nfs4_acl_fndecl_29062 nfs4_xattr_set_nfs4_acl fndecl 5 29062 NULL
163510 +enable_so_use_dmio_fndecl_29065 use_dmio fndecl 3 29065 NULL
163511 +enable_so_ucFakeEDIDLength__ATOM_FAKE_EDID_PATCH_RECORD_29067 ucFakeEDIDLength _ATOM_FAKE_EDID_PATCH_RECORD 0 29067 NULL
163512 +enable_so_isku_sysfs_read_keys_capslock_fndecl_29075 isku_sysfs_read_keys_capslock fndecl 6 29075 NULL
163513 +enable_so_tse_change_mtu_fndecl_29076 tse_change_mtu fndecl 2 29076 NULL
163514 +enable_so_dev_irnet_write_fndecl_29077 dev_irnet_write fndecl 3 29077 NULL
163515 +enable_so_ath6kl_wmi_deletekey_cmd_fndecl_29086 ath6kl_wmi_deletekey_cmd fndecl 2 29086 NULL
163516 +enable_so_len_scifioctl_unreg_29093 len scifioctl_unreg 0 29093 NULL
163517 +enable_so_remote_qpn_mlx4_qp_context_29102 remote_qpn mlx4_qp_context 0 29102 NULL
163518 +enable_so_dlm_lowcomms_get_buffer_fndecl_29111 dlm_lowcomms_get_buffer fndecl 2 29111 NULL
163519 +enable_so_bttv_read_fndecl_29115 bttv_read fndecl 3 29115 NULL
163520 +enable_so_jfs_iget_fndecl_29122 jfs_iget fndecl 2 29122 NULL
163521 +enable_so_pci_set_power_state_fndecl_29124 pci_set_power_state fndecl 0 29124 NULL nohasharray
163522 +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
163523 +enable_so_ioctl_code_usbdevfs_ioctl_29134 ioctl_code usbdevfs_ioctl 0 29134 NULL
163524 +enable_so_max_dump_cnt_ramoops_context_29141 max_dump_cnt ramoops_context 0 29141 NULL
163525 +enable_so_pci_pericom_setup_fndecl_29142 pci_pericom_setup fndecl 4 29142 NULL
163526 +enable_so_y1_virtio_gpu_framebuffer_29147 y1 virtio_gpu_framebuffer 0 29147 NULL
163527 +enable_so_send_bulk_pipe_us_data_29148 send_bulk_pipe us_data 0 29148 NULL
163528 +enable_so_hidp_sock_create_fndecl_29151 hidp_sock_create fndecl 3 29151 NULL
163529 +enable_so_width_usbtv_29152 width usbtv 0 29152 NULL
163530 +enable_so_algorithm_raid_type_29156 algorithm raid_type 0 29156 NULL
163531 +enable_so_kmem_zalloc_fndecl_29157 kmem_zalloc fndecl 1 29157 NULL
163532 +enable_so_W6692B_empty_fifo_fndecl_29159 W6692B_empty_fifo fndecl 2 29159 NULL
163533 +enable_so_md_dump_size_qla_hw_data_29160 md_dump_size qla_hw_data 0 29160 NULL
163534 +enable_so_current_rx_bytes_printer_dev_29165 current_rx_bytes printer_dev 0 29165 NULL
163535 +enable_so_error_bio_list_fndecl_29166 error_bio_list fndecl 2 29166 NULL
163536 +enable_so_surface_height_drm_fb_helper_surface_size_29174 surface_height drm_fb_helper_surface_size 0 29174 NULL nohasharray
163537 +enable_so_dwc2_hsotg_send_reply_fndecl_29174 dwc2_hsotg_send_reply fndecl 4 29174 &enable_so_surface_height_drm_fb_helper_surface_size_29174
163538 +enable_so_dma_in_streamzap_ir_29180 dma_in streamzap_ir 0 29180 NULL nohasharray
163539 +enable_so_num_segments_acpi_namestring_info_29180 num_segments acpi_namestring_info 0 29180 &enable_so_dma_in_streamzap_ir_29180
163540 +enable_so_vp_try_to_find_vqs_fndecl_29181 vp_try_to_find_vqs fndecl 2 29181 NULL
163541 +enable_so_ircomm_control_indication_fndecl_29186 ircomm_control_indication fndecl 3 29186 NULL
163542 +enable_so_release_mem_region_adjustable_fndecl_29187 release_mem_region_adjustable fndecl 3-2 29187 NULL
163543 +enable_so_em28xx_i2c_read_block_fndecl_29188 em28xx_i2c_read_block fndecl 5 29188 NULL
163544 +enable_so_report_nb8800_rx_desc_29192 report nb8800_rx_desc 0 29192 NULL
163545 +enable_so_brcmf_config_wowl_pattern_fndecl_29198 brcmf_config_wowl_pattern fndecl 4 29198 NULL
163546 +enable_so_HFC_inw_nodebug_hfc_multi_29199 HFC_inw_nodebug hfc_multi 0 29199 NULL
163547 +enable_so_vcc_sendmsg_fndecl_29205 vcc_sendmsg fndecl 3 29205 NULL
163548 +enable_so_x25_parse_facilities_fndecl_29207 x25_parse_facilities fndecl 0 29207 NULL
163549 +enable_so_ftdi_elan_total_command_size_fndecl_29214 ftdi_elan_total_command_size fndecl 0 29214 NULL
163550 +enable_so_video_rbase_osd_info_29225 video_rbase osd_info 0 29225 NULL
163551 +enable_so_mpx_get_bt_entry_offset_bytes_fndecl_29230 mpx_get_bt_entry_offset_bytes fndecl 0-2 29230 NULL
163552 +enable_so_change_pte_range_fndecl_29232 change_pte_range fndecl 3 29232 NULL
163553 +enable_so_dvb_dmxdev_buffer_write_fndecl_29234 dvb_dmxdev_buffer_write fndecl 3-0 29234 NULL
163554 +enable_so_rq_pagesz_smb_rqst_29240 rq_pagesz smb_rqst 0 29240 NULL
163555 +enable_so_sb_dirband_start_hpfs_sb_info_29242 sb_dirband_start hpfs_sb_info 0 29242 NULL
163556 +enable_so_ubifs_recover_log_leb_fndecl_29244 ubifs_recover_log_leb fndecl 3 29244 NULL
163557 +enable_so_ptc_proc_write_fndecl_29247 ptc_proc_write fndecl 3 29247 NULL
163558 +enable_so_sg_pcopy_from_buffer_fndecl_29248 sg_pcopy_from_buffer fndecl 5-4 29248 NULL
163559 +enable_so_offset_rbd_obj_request_29253 offset rbd_obj_request 0 29253 NULL
163560 +enable_so_i_dir_acl_ext2_inode_29264 i_dir_acl ext2_inode 0 29264 NULL
163561 +enable_so_sisusb_lseek_fndecl_29268 sisusb_lseek fndecl 2 29268 NULL nohasharray
163562 +enable_so_maxlen_ctl_table_29268 maxlen ctl_table 0 29268 &enable_so_sisusb_lseek_fndecl_29268
163563 +enable_so_start_block_hfsplus_ext_key_29269 start_block hfsplus_ext_key 0 29269 NULL nohasharray
163564 +enable_so_rtw_malloc2d_fndecl_29269 rtw_malloc2d fndecl 3-2-1 29269 &enable_so_start_block_hfsplus_ext_key_29269
163565 +enable_so_ib_uverbs_open_xrcd_fndecl_29276 ib_uverbs_open_xrcd fndecl 4 29276 NULL
163566 +enable_so_offs_replay_entry_29277 offs replay_entry 0 29277 NULL
163567 +enable_so_convert_dma_width_fndecl_29278 convert_dma_width fndecl 0 29278 NULL
163568 +enable_so_reg_shift_sccnxp_pdata_29283 reg_shift sccnxp_pdata 0 29283 NULL
163569 +enable_so_sh_last_alloc_nilfs_sufile_header_29285 sh_last_alloc nilfs_sufile_header 0 29285 NULL
163570 +enable_so_vmbus_open_fndecl_29289 vmbus_open fndecl 3-2 29289 NULL
163571 +enable_so_data_len_ceph_msg_header_29290 data_len ceph_msg_header 0 29290 NULL
163572 +enable_so_btmrvl_sdio_host_to_card_fndecl_29291 btmrvl_sdio_host_to_card fndecl 3 29291 NULL
163573 +enable_so_leb_start_ubi_device_29292 leb_start ubi_device 0 29292 NULL
163574 +enable_so_user_ptr_drm_i915_gem_userptr_29294 user_ptr drm_i915_gem_userptr 0 29294 NULL
163575 +enable_so_set_powered_fndecl_29298 set_powered fndecl 4 29298 NULL
163576 +enable_so_xfs_handle_to_dentry_fndecl_29300 xfs_handle_to_dentry fndecl 3 29300 NULL
163577 +enable_so_ramoops_init_prz_fndecl_29301 ramoops_init_prz fndecl 5 29301 NULL
163578 +enable_so_mb_find_extent_fndecl_29303 mb_find_extent fndecl 2 29303 NULL
163579 +enable_so_generic_file_llseek_fndecl_29304 generic_file_llseek fndecl 2 29304 NULL
163580 +enable_so_read_w5300_priv_29306 read w5300_priv 0 29306 NULL nohasharray
163581 +enable_so_tail_ivtv_dma_page_info_29306 tail ivtv_dma_page_info 0 29306 &enable_so_read_w5300_priv_29306 nohasharray
163582 +enable_so_rawv6_seticmpfilter_fndecl_29306 rawv6_seticmpfilter fndecl 5-0 29306 &enable_so_tail_ivtv_dma_page_info_29306
163583 +enable_so_vmw_fifo_reserve_fndecl_29310 vmw_fifo_reserve fndecl 2 29310 NULL
163584 +enable_so_soc_mbus_image_size_fndecl_29311 soc_mbus_image_size fndecl 0-3-2 29311 NULL
163585 +enable_so_ddp_make_gl_fndecl_29312 ddp_make_gl fndecl 1 29312 NULL
163586 +enable_so_fnic_reset_stats_write_fndecl_29314 fnic_reset_stats_write fndecl 3 29314 NULL
163587 +enable_so_num_msix_roce_vec_be_adapter_29319 num_msix_roce_vec be_adapter 0 29319 NULL
163588 +enable_so_ip_generic_getfrag_fndecl_29320 ip_generic_getfrag fndecl 4 29320 NULL
163589 +enable_so_compat_do_arpt_set_ctl_fndecl_29323 compat_do_arpt_set_ctl fndecl 4 29323 NULL
163590 +enable_so_gather_pte_stats_fndecl_29329 gather_pte_stats fndecl 2 29329 NULL
163591 +enable_so_scan_map_fndecl_29331 scan_map fndecl 0 29331 NULL
163592 +enable_so_num_sge_ib_recv_wr_29333 num_sge ib_recv_wr 0 29333 NULL
163593 +enable_so_n_reg_rules_ieee80211_regdomain_29334 n_reg_rules ieee80211_regdomain 0 29334 NULL
163594 +enable_so_y_res_vbe_mode_ib_29340 y_res vbe_mode_ib 0 29340 NULL
163595 +enable_so_sctp_icmp_frag_needed_fndecl_29342 sctp_icmp_frag_needed fndecl 4 29342 NULL
163596 +enable_so_sgeCnt_aac_raw_io2_29350 sgeCnt aac_raw_io2 0 29350 NULL
163597 +enable_so_snd_pcm_kernel_ioctl_fndecl_29352 snd_pcm_kernel_ioctl fndecl 0 29352 NULL
163598 +enable_so_alloced_snd_array_29353 alloced snd_array 0 29353 NULL
163599 +enable_so_receive_copy_fndecl_29355 receive_copy fndecl 3 29355 NULL
163600 +enable_so_max_sgs_per_cmd_snic_fw_info_29357 max_sgs_per_cmd snic_fw_info 0 29357 NULL nohasharray
163601 +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
163602 +enable_so_fuse_get_req_fndecl_29358 fuse_get_req fndecl 2 29358 NULL
163603 +enable_so_s_dat_entry_size_nilfs_super_block_29359 s_dat_entry_size nilfs_super_block 0 29359 NULL
163604 +enable_so_qt2160_read_block_fndecl_29365 qt2160_read_block fndecl 4 29365 NULL
163605 +enable_so_dummy_perform_transfer_fndecl_29372 dummy_perform_transfer fndecl 0-3 29372 NULL nohasharray
163606 +enable_so_tx_ring_size_pxa168_eth_private_29372 tx_ring_size pxa168_eth_private 0 29372 &enable_so_dummy_perform_transfer_fndecl_29372
163607 +enable_so_n_devices_whc_29373 n_devices whc 0 29373 NULL
163608 +enable_so_l2bsize_jfs_sb_info_29377 l2bsize jfs_sb_info 0 29377 NULL nohasharray
163609 +enable_so_count_e1000_rx_ring_29377 count e1000_rx_ring 0 29377 &enable_so_l2bsize_jfs_sb_info_29377
163610 +enable_so_extHint_fndecl_29378 extHint fndecl 2 29378 NULL
163611 +enable_so_next_cluster_fat_boot_fsinfo_29380 next_cluster fat_boot_fsinfo 0 29380 NULL
163612 +enable_so_ib_uverbs_unmarshall_recv_fndecl_29384 ib_uverbs_unmarshall_recv fndecl 5 29384 NULL
163613 +enable_so_reiserfs_get_unused_objectid_fndecl_29387 reiserfs_get_unused_objectid fndecl 0 29387 NULL
163614 +enable_so_write_buffer_size_vardecl_ldusb_c_29393 write_buffer_size vardecl_ldusb.c 0 29393 NULL nohasharray
163615 +enable_so_acpi_id_xenpf_pcpuinfo_29393 acpi_id xenpf_pcpuinfo 0 29393 &enable_so_write_buffer_size_vardecl_ldusb_c_29393
163616 +enable_so_tun_net_change_mtu_fndecl_29398 tun_net_change_mtu fndecl 2 29398 NULL
163617 +enable_so___alloc_bootmem_low_nopanic_fndecl_29400 __alloc_bootmem_low_nopanic fndecl 2-1-3 29400 NULL nohasharray
163618 +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
163619 +enable_so_octeon_alloc_recv_info_fndecl_29400 octeon_alloc_recv_info fndecl 1 29400 &enable_so_irq_set_msi_desc_off_fndecl_29400
163620 +enable_so_hpfs_map_sector_fndecl_29402 hpfs_map_sector fndecl 2 29402 NULL
163621 +enable_so_udp_gro_complete_fndecl_29407 udp_gro_complete fndecl 2 29407 NULL
163622 +enable_so_sisfb_mem_sis_video_info_29418 sisfb_mem sis_video_info 0 29418 NULL
163623 +enable_so_xop_data_nents_xcopy_op_29423 xop_data_nents xcopy_op 0 29423 NULL
163624 +enable_so_block_extra_size_snd_util_memhdr_29432 block_extra_size snd_util_memhdr 0 29432 NULL
163625 +enable_so_size_vm_struct_29439 size vm_struct 0 29439 NULL
163626 +enable_so_xfs_attr3_rmt_blocks_fndecl_29445 xfs_attr3_rmt_blocks fndecl 0-2 29445 NULL
163627 +enable_so_ep_in_dln2_dev_29451 ep_in dln2_dev 0 29451 NULL
163628 +enable_so_ebt_buf_add_fndecl_29456 ebt_buf_add fndecl 0 29456 NULL
163629 +enable_so_vol_cdev_llseek_fndecl_29458 vol_cdev_llseek fndecl 2 29458 NULL
163630 +enable_so_read_into_pages_cifs_readdata_29473 read_into_pages cifs_readdata 0 29473 NULL
163631 +enable_so_i2c_hid_set_or_send_report_fndecl_29475 i2c_hid_set_or_send_report fndecl 5 29475 NULL
163632 +enable_so_macvtap_put_user_fndecl_29476 macvtap_put_user fndecl 0 29476 NULL
163633 +enable_so_rts51x_read_status_fndecl_29477 rts51x_read_status fndecl 4 29477 NULL
163634 +enable_so_tx_header_len_pn533_frame_ops_29478 tx_header_len pn533_frame_ops 0 29478 NULL nohasharray
163635 +enable_so_sctp_setsockopt_maxseg_fndecl_29478 sctp_setsockopt_maxseg fndecl 3 29478 &enable_so_tx_header_len_pn533_frame_ops_29478 nohasharray
163636 +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
163637 +enable_so_ns_last_pseg_the_nilfs_29482 ns_last_pseg the_nilfs 0 29482 NULL
163638 +enable_so_qs_out_channels_hdsp_29483 qs_out_channels hdsp 0 29483 NULL
163639 +enable_so_bsg_request_iscsi_transport_29485 bsg_request iscsi_transport 0 29485 NULL
163640 +enable_so_befs_bt_read_node_fndecl_29490 befs_bt_read_node fndecl 4 29490 NULL nohasharray
163641 +enable_so_phys_out_snd_efw_29490 phys_out snd_efw 0 29490 &enable_so_befs_bt_read_node_fndecl_29490 nohasharray
163642 +enable_so_gpiochip_add_pin_range_fndecl_29490 gpiochip_add_pin_range fndecl 5 29490 &enable_so_phys_out_snd_efw_29490
163643 +enable_so_mlx4_en_fill_qp_context_fndecl_29495 mlx4_en_fill_qp_context fndecl 8 29495 NULL
163644 +enable_so_pcpu_fc_alloc_fndecl_29497 pcpu_fc_alloc fndecl 3-2 29497 NULL
163645 +enable_so_cx23885_alsa_dma_init_fndecl_29499 cx23885_alsa_dma_init fndecl 2 29499 NULL
163646 +enable_so_raid_disks_mdu_array_info_s_29501 raid_disks mdu_array_info_s 0 29501 NULL
163647 +enable_so_type_length_fru_type_length_29503 type_length fru_type_length 0 29503 NULL
163648 +enable_so_nf_nat_sdp_media_fndecl_29508 nf_nat_sdp_media fndecl 2-9 29508 NULL
163649 +enable_so_ecryptfs_copy_filename_fndecl_29519 ecryptfs_copy_filename fndecl 4 29519 NULL
163650 +enable_so_nritems_btrfs_header_29521 nritems btrfs_header 0 29521 NULL
163651 +enable_so_unix_stream_connect_fndecl_29527 unix_stream_connect fndecl 3 29527 NULL
163652 +enable_so_h4_recv_buf_fndecl_29532 h4_recv_buf fndecl 4 29532 NULL nohasharray
163653 +enable_so_blocks_mmc_ioc_cmd_29532 blocks mmc_ioc_cmd 0 29532 &enable_so_h4_recv_buf_fndecl_29532
163654 +enable_so_nvme_error_status_fndecl_29541 nvme_error_status fndecl 0 29541 NULL
163655 +enable_so_forw_xfs_da3_icnode_hdr_29543 forw xfs_da3_icnode_hdr 0 29543 NULL
163656 +enable_so_ooboffs_mtd_oob_ops_29549 ooboffs mtd_oob_ops 0 29549 NULL
163657 +enable_so_local_max_bio_size_drbd_device_29550 local_max_bio_size drbd_device 0 29550 NULL
163658 +enable_so_zone_mem_ttm_mem_zone_29551 zone_mem ttm_mem_zone 0 29551 NULL
163659 +enable_so_befs_read_lsymlink_fndecl_29556 befs_read_lsymlink fndecl 4 29556 NULL
163660 +enable_so_l2cap_chan_send_fndecl_29557 l2cap_chan_send fndecl 3 29557 NULL
163661 +enable_so_iwl_mvm_send_cmd_pdu_fndecl_29560 iwl_mvm_send_cmd_pdu fndecl 0 29560 NULL
163662 +enable_so_calculate_iosize_fndecl_29562 calculate_iosize fndecl 0-4-5-3-2-1 29562 NULL
163663 +enable_so_ieee80211_rx_bss_info_fndecl_29564 ieee80211_rx_bss_info fndecl 3 29564 NULL
163664 +enable_so_addr_drm_amdgpu_gem_userptr_29582 addr drm_amdgpu_gem_userptr 0 29582 NULL
163665 +enable_so___allowed_ingress_fndecl_29584 __allowed_ingress fndecl 2 29584 NULL
163666 +enable_so_xstateregs_get_fndecl_29585 xstateregs_get fndecl 4 29585 NULL nohasharray
163667 +enable_so_valid_hooks_xt_table_29585 valid_hooks xt_table 0 29585 &enable_so_xstateregs_get_fndecl_29585
163668 +enable_so____mic_ioremap_fndecl_29587 ___mic_ioremap fndecl 3-2 29587 NULL
163669 +enable_so_num_rx_queues_e1000_adapter_29589 num_rx_queues e1000_adapter 0 29589 NULL
163670 +enable_so_ti_write_fndecl_29599 ti_write fndecl 4 29599 NULL
163671 +enable_so_btmrvl_download_cal_data_fndecl_29602 btmrvl_download_cal_data fndecl 3 29602 NULL
163672 +enable_so_read_b43_debugfs_fops_29607 read b43_debugfs_fops 0 29607 NULL nohasharray
163673 +enable_so_queue_size_snd_timer_user_29607 queue_size snd_timer_user 0 29607 &enable_so_read_b43_debugfs_fops_29607
163674 +enable_so_r1_sync_page_io_fndecl_29608 r1_sync_page_io fndecl 3-2 29608 NULL
163675 +enable_so_device_size_r5l_log_29609 device_size r5l_log 0 29609 NULL
163676 +enable_so_width_mxr_block_29613 width mxr_block 0 29613 NULL
163677 +enable_so_efd_group_ext4_free_data_29619 efd_group ext4_free_data 0 29619 NULL
163678 +enable_so_msb_exit_state_machine_fndecl_29622 msb_exit_state_machine fndecl 2 29622 NULL
163679 +enable_so_nr_cells_axp20x_dev_29628 nr_cells axp20x_dev 0 29628 NULL
163680 +enable_so_escd_size_escd_info_struc_29631 escd_size escd_info_struc 0 29631 NULL
163681 +enable_so_vbi_vlen_saa7134_dev_29640 vbi_vlen saa7134_dev 0 29640 NULL nohasharray
163682 +enable_so_nicvf_init_snd_queue_fndecl_29640 nicvf_init_snd_queue fndecl 3 29640 &enable_so_vbi_vlen_saa7134_dev_29640
163683 +enable_so_acpi_rs_set_resource_header_fndecl_29642 acpi_rs_set_resource_header fndecl 2 29642 NULL
163684 +enable_so_vb_bytes_per_frame_cx18_stream_29644 vb_bytes_per_frame cx18_stream 0 29644 NULL
163685 +enable_so_placement_offset_eth_fast_path_rx_cqe_29646 placement_offset eth_fast_path_rx_cqe 0 29646 NULL nohasharray
163686 +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
163687 +enable_so_num_counters_arpt_replace_29649 num_counters arpt_replace 0 29649 NULL nohasharray
163688 +enable_so_reserve_mc_sibling_devs_fndecl_29649 reserve_mc_sibling_devs fndecl 2-3 29649 &enable_so_num_counters_arpt_replace_29649 nohasharray
163689 +enable_so_control_read_fndecl_29649 control_read fndecl 6 29649 &enable_so_reserve_mc_sibling_devs_fndecl_29649
163690 +enable_so_max_dev_sectors_queue_limits_29654 max_dev_sectors queue_limits 0 29654 NULL
163691 +enable_so_count_vfio_pci_hot_reset_info_29655 count vfio_pci_hot_reset_info 0 29655 NULL
163692 +enable_so_split_node_fndecl_29659 split_node fndecl 0 29659 NULL nohasharray
163693 +enable_so_rdma_wr_num_isert_rdma_wr_29659 rdma_wr_num isert_rdma_wr 0 29659 &enable_so_split_node_fndecl_29659 nohasharray
163694 +enable_so_ls_num_lprocfs_stats_29659 ls_num lprocfs_stats 0 29659 &enable_so_rdma_wr_num_isert_rdma_wr_29659
163695 +enable_so_items_per_memblock_vxge_hw_mempool_29661 items_per_memblock vxge_hw_mempool 0 29661 NULL
163696 +enable_so_pci_cfg_space_size_fndecl_29666 pci_cfg_space_size fndecl 0 29666 NULL
163697 +enable_so_rtsx_usb_seq_read_register_fndecl_29680 rtsx_usb_seq_read_register fndecl 3-0 29680 NULL nohasharray
163698 +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
163699 +enable_so_comps_used_isert_device_29683 comps_used isert_device 0 29683 NULL
163700 +enable_so_APP_len_camera_data_29686 APP_len camera_data 0 29686 NULL
163701 +enable_so_i40e_pci_sriov_configure_fndecl_29688 i40e_pci_sriov_configure fndecl 2 29688 NULL
163702 +enable_so_osd_req_write_sg_kern_fndecl_29697 osd_req_write_sg_kern fndecl 5 29697 NULL
163703 +enable_so_qlcnic_pci_sriov_enable_fndecl_29700 qlcnic_pci_sriov_enable fndecl 2 29700 NULL
163704 +enable_so_rds_message_alloc_fndecl_29702 rds_message_alloc fndecl 1 29702 NULL
163705 +enable_so_get_vm_area_caller_fndecl_29708 get_vm_area_caller fndecl 1 29708 NULL
163706 +enable_so_of_flat_dt_is_compatible_fndecl_29709 of_flat_dt_is_compatible fndecl 1 29709 NULL nohasharray
163707 +enable_so_ocfs2_add_refcounted_extent_fndecl_29709 ocfs2_add_refcounted_extent fndecl 6-7-5 29709 &enable_so_of_flat_dt_is_compatible_fndecl_29709
163708 +enable_so_usdhi6_cmd_flags_fndecl_29713 usdhi6_cmd_flags fndecl 0 29713 NULL
163709 +enable_so_SGE_size__MPT_ADAPTER_29715 SGE_size _MPT_ADAPTER 0 29715 NULL
163710 +enable_so_first_sect_blkif_request_segment_29716 first_sect blkif_request_segment 0 29716 NULL
163711 +enable_so_ca91cx42_alloc_resource_fndecl_29717 ca91cx42_alloc_resource fndecl 2 29717 NULL
163712 +enable_so_ext4_itable_unused_count_fndecl_29718 ext4_itable_unused_count fndecl 0 29718 NULL
163713 +enable_so_maxframe_vardecl_n_hdlc_c_29719 maxframe vardecl_n_hdlc.c 0 29719 NULL
163714 +enable_so_bpp_aty128_crtc_29724 bpp aty128_crtc 0 29724 NULL nohasharray
163715 +enable_so_sel_write_disable_fndecl_29724 sel_write_disable fndecl 3 29724 &enable_so_bpp_aty128_crtc_29724
163716 +enable_so_Zlen_hfc_multi_29733 Zlen hfc_multi 0 29733 NULL nohasharray
163717 +enable_so_num_resources_mfd_cell_29733 num_resources mfd_cell 0 29733 &enable_so_Zlen_hfc_multi_29733
163718 +enable_so_target_pages_balloon_stats_29734 target_pages balloon_stats 0 29734 NULL
163719 +enable_so___ceph_tcp_sendpage_fndecl_29744 __ceph_tcp_sendpage fndecl 0-4 29744 NULL
163720 +enable_so_ba_param_set_wil_back_rx_29752 ba_param_set wil_back_rx 0 29752 NULL
163721 +enable_so_snd_pcm_lib_read_fndecl_29755 snd_pcm_lib_read fndecl 0 29755 NULL
163722 +enable_so_mmio_phys_ivhd_header_29762 mmio_phys ivhd_header 0 29762 NULL
163723 +enable_so_ext4_write_begin_fndecl_29763 ext4_write_begin fndecl 4-3 29763 NULL
163724 +enable_so_physical_scrub_bio_29776 physical scrub_bio 0 29776 NULL
163725 +enable_so_ath6kl_wmi_ap_set_dtim_cmd_fndecl_29779 ath6kl_wmi_ap_set_dtim_cmd fndecl 2 29779 NULL
163726 +enable_so_eqp_bdi_bd_list_29780 eqp_bdi bd_list 0 29780 NULL nohasharray
163727 +enable_so_starting_psn_ib_cm_req_param_29780 starting_psn ib_cm_req_param 0 29780 &enable_so_eqp_bdi_bd_list_29780
163728 +enable_so_io_min_queue_limits_29785 io_min queue_limits 0 29785 NULL
163729 +enable_so_serial_in_uart_port_29788 serial_in uart_port 0 29788 NULL nohasharray
163730 +enable_so_pipeline_defrag_to_rx_xfer_swi_read_fndecl_29788 pipeline_defrag_to_rx_xfer_swi_read fndecl 3 29788 &enable_so_serial_in_uart_port_29788
163731 +enable_so_first_index_zap_details_29790 first_index zap_details 0 29790 NULL
163732 +enable_so_blk_queue_max_discard_sectors_fndecl_29799 blk_queue_max_discard_sectors fndecl 2 29799 NULL
163733 +enable_so_ima_show_htable_violations_fndecl_29800 ima_show_htable_violations fndecl 3 29800 NULL
163734 +enable_so_cxgb3_get_cpl_reply_skb_fndecl_29807 cxgb3_get_cpl_reply_skb fndecl 2 29807 NULL nohasharray
163735 +enable_so_i_disksize_ext4_inode_info_29807 i_disksize ext4_inode_info 0 29807 &enable_so_cxgb3_get_cpl_reply_skb_fndecl_29807
163736 +enable_so_otp_read_fndecl_29809 otp_read fndecl 5-4-2 29809 NULL nohasharray
163737 +enable_so_vbe_state_size_uvesafb_par_29809 vbe_state_size uvesafb_par 0 29809 &enable_so_otp_read_fndecl_29809
163738 +enable_so_vmw_shader_define_fndecl_29819 vmw_shader_define fndecl 5 29819 NULL
163739 +enable_so_double_offset_smbios_cru64_info_29825 double_offset smbios_cru64_info 0 29825 NULL
163740 +enable_so_num_ports_ohci_hcd_29835 num_ports ohci_hcd 0 29835 NULL
163741 +enable_so_si_lasti_bfs_sb_info_29842 si_lasti bfs_sb_info 0 29842 NULL
163742 +enable_so_len_ethtool_dump_29843 len ethtool_dump 0 29843 NULL
163743 +enable_so_fq_alloc_node_fndecl_29850 fq_alloc_node fndecl 1 29850 NULL
163744 +enable_so_rr_len_rpcrdma_rep_29856 rr_len rpcrdma_rep 0 29856 NULL
163745 +enable_so_pvr2_buffer_get_count_fndecl_29860 pvr2_buffer_get_count fndecl 0 29860 NULL
163746 +enable_so_lower_vardecl_matroxfb_base_c_29861 lower vardecl_matroxfb_base.c 0 29861 NULL nohasharray
163747 +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
163748 +enable_so_bfs_add_entry_fndecl_29864 bfs_add_entry fndecl 4 29864 NULL
163749 +enable_so_alloc_vmap_area_fndecl_29865 alloc_vmap_area fndecl 1-2-3 29865 NULL
163750 +enable_so_ip6_nd_hdr_fndecl_29872 ip6_nd_hdr fndecl 5 29872 NULL
163751 +enable_so_xprt_complete_rqst_fndecl_29874 xprt_complete_rqst fndecl 2 29874 NULL
163752 +enable_so_fat_attach_fndecl_29877 fat_attach fndecl 2 29877 NULL
163753 +enable_so_nfs_idmap_lookup_id_fndecl_29879 nfs_idmap_lookup_id fndecl 2 29879 NULL
163754 +enable_so_current_size_ncp_server_29882 current_size ncp_server 0 29882 NULL
163755 +enable_so_parport_write_fndecl_29886 parport_write fndecl 0 29886 NULL
163756 +enable_so_length_ndis_80211_pmkid_29893 length ndis_80211_pmkid 0 29893 NULL
163757 +enable_so_selinux_inode_setxattr_fndecl_29895 selinux_inode_setxattr fndecl 4 29895 NULL
163758 +enable_so_residual_st_cmdstatus_29897 residual st_cmdstatus 0 29897 NULL
163759 +enable_so_be_pci_sriov_configure_fndecl_29900 be_pci_sriov_configure fndecl 2 29900 NULL
163760 +enable_so_data_in_res_cnt_srp_rsp_29904 data_in_res_cnt srp_rsp 0 29904 NULL
163761 +enable_so_edge_write_fndecl_29911 edge_write fndecl 4 29911 NULL
163762 +enable_so_io_error_dio_29914 io_error dio 0 29914 NULL
163763 +enable_so_fw_imem_len_rt_firmware_29916 fw_imem_len rt_firmware 0 29916 NULL nohasharray
163764 +enable_so_PageLength__CONFIG_PAGE_HEADER_29916 PageLength _CONFIG_PAGE_HEADER 0 29916 &enable_so_fw_imem_len_rt_firmware_29916
163765 +enable_so_base_sock_create_fndecl_29918 base_sock_create fndecl 3 29918 NULL
163766 +enable_so_error_error_frame_ctrl_read_fndecl_29919 error_error_frame_ctrl_read fndecl 3 29919 NULL
163767 +enable_so_size_ipt_replace_29921 size ipt_replace 0 29921 NULL
163768 +enable_so_sctp_getsockopt_maxseg_fndecl_29922 sctp_getsockopt_maxseg fndecl 2 29922 NULL
163769 +enable_so_nr_frags_skb_shared_info_29925 nr_frags skb_shared_info 0 29925 NULL
163770 +enable_so_mtt_base_mthca_mr_table_29926 mtt_base mthca_mr_table 0 29926 NULL
163771 +enable_so_sys_syslog_fndecl_29929 sys_syslog fndecl 3 29929 NULL
163772 +enable_so_fll_fref_wm8993_priv_29931 fll_fref wm8993_priv 0 29931 NULL
163773 +enable_so_read_pstore_info_29933 read pstore_info 0 29933 NULL
163774 +enable_so_pvr2_ioread_read_fndecl_29939 pvr2_ioread_read fndecl 3 29939 NULL
163775 +enable_so_titan_400l_800l_setup_fndecl_29940 titan_400l_800l_setup fndecl 4 29940 NULL
163776 +enable_so___iscsi_complete_pdu_fndecl_29941 __iscsi_complete_pdu fndecl 4 29941 NULL
163777 +enable_so_spi_sync_fndecl_29944 spi_sync fndecl 0 29944 NULL
163778 +enable_so_core_size_rx_module_29949 core_size_rx module 0 29949 NULL
163779 +enable_so_rx_endpoint_acm_29952 rx_endpoint acm 0 29952 NULL nohasharray
163780 +enable_so_s_min_extra_isize_ext4_super_block_29952 s_min_extra_isize ext4_super_block 0 29952 &enable_so_rx_endpoint_acm_29952 nohasharray
163781 +enable_so_cciss_proc_write_fndecl_29952 cciss_proc_write fndecl 3 29952 &enable_so_s_min_extra_isize_ext4_super_block_29952
163782 +enable_so_opts1_mask_rtl8169_private_29953 opts1_mask rtl8169_private 0 29953 NULL
163783 +enable_so_max_mlx5_core_srq_29956 max mlx5_core_srq 0 29956 NULL nohasharray
163784 +enable_so_state_count_Fsm_29956 state_count Fsm 0 29956 &enable_so_max_mlx5_core_srq_29956 nohasharray
163785 +enable_so_implemented_capacity_ms_boot_attr_info_29956 implemented_capacity ms_boot_attr_info 0 29956 &enable_so_state_count_Fsm_29956
163786 +enable_so_memconsole_length_vardecl_memconsole_c_29962 memconsole_length vardecl_memconsole.c 0 29962 NULL
163787 +enable_so_msi_setup_entry_fndecl_29969 msi_setup_entry fndecl 2 29969 NULL
163788 +enable_so_c_phys_ocfs2_write_cluster_desc_29971 c_phys ocfs2_write_cluster_desc 0 29971 NULL
163789 +enable_so_idef5upd_gru_control_block_extended_29974 idef5upd gru_control_block_extended 0 29974 NULL
163790 +enable_so_ds_in_channels_hdsp_29975 ds_in_channels hdsp 0 29975 NULL
163791 +enable_so_ubi_leb_change_fndecl_29986 ubi_leb_change fndecl 4 29986 NULL nohasharray
163792 +enable_so_i_suballoc_loc_ocfs2_dinode_29986 i_suballoc_loc ocfs2_dinode 0 29986 &enable_so_ubi_leb_change_fndecl_29986
163793 +enable_so_init_size_il4965_firmware_pieces_29990 init_size il4965_firmware_pieces 0 29990 NULL
163794 +enable_so_hfs_vbm_search_free_fndecl_30000 hfs_vbm_search_free fndecl 0-2 30000 NULL
163795 +enable_so_snd_pcm_lib_preallocate_pages1_fndecl_30002 snd_pcm_lib_preallocate_pages1 fndecl 2 30002 NULL
163796 +enable_so_btrfs_add_ordered_extent_compress_fndecl_30005 btrfs_add_ordered_extent_compress fndecl 4-2-5-3 30005 NULL
163797 +enable_so_msc_nfinalizers_lnet_msg_container_30006 msc_nfinalizers lnet_msg_container 0 30006 NULL
163798 +enable_so_obj_offset_ore_striping_info_30010 obj_offset ore_striping_info 0 30010 NULL nohasharray
163799 +enable_so___qlcnic_pci_sriov_enable_fndecl_30010 __qlcnic_pci_sriov_enable fndecl 2 30010 &enable_so_obj_offset_ore_striping_info_30010
163800 +enable_so_size_fstioc_write_30011 size fstioc_write 0 30011 NULL
163801 +enable_so_snd_rme9652_capture_copy_fndecl_30012 snd_rme9652_capture_copy fndecl 5 30012 NULL
163802 +enable_so_period_em28xx_audio_30017 period em28xx_audio 0 30017 NULL
163803 +enable_so_send_hole_fndecl_30019 send_hole fndecl 2 30019 NULL nohasharray
163804 +enable_so_read_file_spectral_count_fndecl_30019 read_file_spectral_count fndecl 3 30019 &enable_so_send_hole_fndecl_30019
163805 +enable_so_netlbl_catmap_setbit_fndecl_30024 netlbl_catmap_setbit fndecl 2 30024 NULL
163806 +enable_so_read_emulate_fndecl_30037 read_emulate fndecl 2-4 30037 NULL nohasharray
163807 +enable_so_max_wqes_mthca_limits_30037 max_wqes mthca_limits 0 30037 &enable_so_read_emulate_fndecl_30037
163808 +enable_so_ethertype_fcllc_30040 ethertype fcllc 0 30040 NULL
163809 +enable_so_xdr_set_scratch_buffer_fndecl_30045 xdr_set_scratch_buffer fndecl 3 30045 NULL
163810 +enable_so_ath6kl_listen_int_read_fndecl_30048 ath6kl_listen_int_read fndecl 3 30048 NULL
163811 +enable_so_max_header_proto_30054 max_header proto 0 30054 NULL
163812 +enable_so_io_throttle_count_vnic_fc_config_30064 io_throttle_count vnic_fc_config 0 30064 NULL
163813 +enable_so_add_swap_extent_fndecl_30065 add_swap_extent fndecl 2-4-3 30065 NULL nohasharray
163814 +enable_so_get_dump_page_fndecl_30065 get_dump_page fndecl 1 30065 &enable_so_add_swap_extent_fndecl_30065
163815 +enable_so___smb_init_fndecl_30067 __smb_init fndecl 2 30067 NULL
163816 +enable_so_psb_gem_create_fndecl_30068 psb_gem_create fndecl 3 30068 NULL nohasharray
163817 +enable_so_dio_read_error_fndecl_30068 dio_read_error fndecl 5-4 30068 &enable_so_psb_gem_create_fndecl_30068
163818 +enable_so_to_ifla_vlan_qos_mapping_30070 to ifla_vlan_qos_mapping 0 30070 NULL
163819 +enable_so_SenseLen__ErrorInfo_struct_30071 SenseLen _ErrorInfo_struct 0 30071 NULL nohasharray
163820 +enable_so_SYSC_io_setup_fndecl_30071 SYSC_io_setup fndecl 1 30071 &enable_so_SenseLen__ErrorInfo_struct_30071
163821 +enable_so_mwifiex_send_tdls_data_frame_fndecl_30072 mwifiex_send_tdls_data_frame fndecl 7 30072 NULL
163822 +enable_so_wapi_ie_len_mwifiex_private_30073 wapi_ie_len mwifiex_private 0 30073 NULL
163823 +enable_so_cur_pos_kobil_private_30076 cur_pos kobil_private 0 30076 NULL
163824 +enable_so_ufx_alloc_urb_list_fndecl_30078 ufx_alloc_urb_list fndecl 3 30078 NULL
163825 +enable_so_num_pages_vmw_mob_30089 num_pages vmw_mob 0 30089 NULL
163826 +enable_so_ie_len_ieee80211_mgd_assoc_data_30093 ie_len ieee80211_mgd_assoc_data 0 30093 NULL nohasharray
163827 +enable_so_do_compat_pselect_fndecl_30093 do_compat_pselect fndecl 1 30093 &enable_so_ie_len_ieee80211_mgd_assoc_data_30093
163828 +enable_so_id_watchdog_device_30094 id watchdog_device 0 30094 NULL
163829 +enable_so_length_ehci_qtd_30102 length ehci_qtd 0 30102 NULL
163830 +enable_so_ecryptfs_decode_and_decrypt_filename_fndecl_30104 ecryptfs_decode_and_decrypt_filename fndecl 5 30104 NULL
163831 +enable_so_mmc_test_seq_write_perf_fndecl_30107 mmc_test_seq_write_perf fndecl 2 30107 NULL
163832 +enable_so_of_translate_address_fndecl_30111 of_translate_address fndecl 0 30111 NULL
163833 +enable_so_read_iwl_rxq_30117 read iwl_rxq 0 30117 NULL
163834 +enable_so_bio_integrity_process_fndecl_30121 bio_integrity_process fndecl 0 30121 NULL
163835 +enable_so_if_real_bytes_xfs_ifork_30126 if_real_bytes xfs_ifork 0 30126 NULL
163836 +enable_so_max_total_qng_asc_dvc_var_30137 max_total_qng asc_dvc_var 0 30137 NULL
163837 +enable_so_hdr_len_ieee80211_fast_tx_30143 hdr_len ieee80211_fast_tx 0 30143 NULL
163838 +enable_so_map_mr_sg_ib_device_30147 map_mr_sg ib_device 0 30147 NULL
163839 +enable_so_chunk_len_nfcmrvl_fw_dnld_30149 chunk_len nfcmrvl_fw_dnld 0 30149 NULL
163840 +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
163841 +enable_so_hpfs_remove_fnode_fndecl_30151 hpfs_remove_fnode fndecl 2 30151 &enable_so_i915_gem_object_create_stolen_for_preallocated_fndecl_30151
163842 +enable_so_num_tx_queues_ixgbevf_adapter_30155 num_tx_queues ixgbevf_adapter 0 30155 NULL
163843 +enable_so_scif_get_node_ids_fndecl_30156 scif_get_node_ids fndecl 0 30156 NULL
163844 +enable_so_buffer_len_fnic_dbgfs_30157 buffer_len fnic_dbgfs 0 30157 NULL
163845 +enable_so_iobuf_dma_us_data_30159 iobuf_dma us_data 0 30159 NULL
163846 +enable_so_mmio_base_drm_mga_private_30161 mmio_base drm_mga_private 0 30161 NULL
163847 +enable_so_tool_peer_mask_read_fndecl_30164 tool_peer_mask_read fndecl 3 30164 NULL
163848 +enable_so_bulk_in_size_hdpvr_device_30165 bulk_in_size hdpvr_device 0 30165 NULL nohasharray
163849 +enable_so_pci_wch_ch38x_setup_fndecl_30165 pci_wch_ch38x_setup fndecl 4 30165 &enable_so_bulk_in_size_hdpvr_device_30165
163850 +enable_so_rx_buf_sz_epic_private_30166 rx_buf_sz epic_private 0 30166 NULL nohasharray
163851 +enable_so_send_section_size_netvsc_device_30166 send_section_size netvsc_device 0 30166 &enable_so_rx_buf_sz_epic_private_30166
163852 +enable_so_tailsz_cifs_writedata_30171 tailsz cifs_writedata 0 30171 NULL
163853 +enable_so_rx_ring_size_pxa168_eth_private_30172 rx_ring_size pxa168_eth_private 0 30172 NULL
163854 +enable_so_bnx2x_set_gro_params_fndecl_30177 bnx2x_set_gro_params fndecl 3 30177 NULL
163855 +enable_so_prism2_ap_get_sta_qual_fndecl_30181 prism2_ap_get_sta_qual fndecl 0 30181 NULL
163856 +enable_so_in_ep_num_rtl_hal_usbint_cfg_30182 in_ep_num rtl_hal_usbint_cfg 0 30182 NULL
163857 +enable_so_SyS_io_setup_fndecl_30191 SyS_io_setup fndecl 1 30191 NULL
163858 +enable_so_event_phy_transmit_error_read_fndecl_30196 event_phy_transmit_error_read fndecl 3 30196 NULL
163859 +enable_so_alloc_pci_root_info_fndecl_30198 alloc_pci_root_info fndecl 2-1 30198 NULL
163860 +enable_so_buf_len_uvesafb_task_30200 buf_len uvesafb_task 0 30200 NULL
163861 +enable_so_pipe_size_renesas_usbhs_driver_param_30206 pipe_size renesas_usbhs_driver_param 0 30206 NULL
163862 +enable_so_len_header_msg_30207 len header_msg 0 30207 NULL
163863 +enable_so_hrp_nthrs_ptlrpc_hr_partition_30214 hrp_nthrs ptlrpc_hr_partition 0 30214 NULL
163864 +enable_so_minor_rbd_device_30216 minor rbd_device 0 30216 NULL
163865 +enable_so_bm_bits_bm_xfer_ctx_30221 bm_bits bm_xfer_ctx 0 30221 NULL nohasharray
163866 +enable_so_rd_offset_nfsd4_read_30221 rd_offset nfsd4_read 0 30221 &enable_so_bm_bits_bm_xfer_ctx_30221
163867 +enable_so_le_mtu_hci_dev_30225 le_mtu hci_dev 0 30225 NULL
163868 +enable_so_tegra_spi_start_rx_dma_fndecl_30226 tegra_spi_start_rx_dma fndecl 0-2 30226 NULL
163869 +enable_so_major_vardecl_pt_c_30228 major vardecl_pt.c 0 30228 NULL
163870 +enable_so_vtag_atl1e_recv_ret_status_30229 vtag atl1e_recv_ret_status 0 30229 NULL
163871 +enable_so___add_keyed_refs_fndecl_30230 __add_keyed_refs fndecl 3 30230 NULL
163872 +enable_so_tcp_header_len_tcp_sock_30231 tcp_header_len tcp_sock 0 30231 NULL
163873 +enable_so__brk_start_vardecl_setup_c_30236 _brk_start vardecl_setup.c 0 30236 NULL nohasharray
163874 +enable_so_SetLineNumber_fndecl_30236 SetLineNumber fndecl 0 30236 &enable_so__brk_start_vardecl_setup_c_30236
163875 +enable_so_reiserfs_breada_fndecl_30247 reiserfs_breada fndecl 3-2 30247 NULL
163876 +enable_so_ndisc_fill_redirect_hdr_option_fndecl_30248 ndisc_fill_redirect_hdr_option fndecl 3 30248 NULL
163877 +enable_so_id_kern_ipc_perm_30249 id kern_ipc_perm 0 30249 NULL
163878 +enable_so_compat_sys_truncate_fndecl_30258 compat_sys_truncate fndecl 2 30258 NULL
163879 +enable_so_pci_msi_vec_count_fndecl_30261 pci_msi_vec_count fndecl 0 30261 NULL
163880 +enable_so_max_host_qng_adv_dvc_var_30264 max_host_qng adv_dvc_var 0 30264 NULL
163881 +enable_so_tda10048_writeregbulk_fndecl_30265 tda10048_writeregbulk fndecl 4 30265 NULL
163882 +enable_so_sys_sendfile_fndecl_30267 sys_sendfile fndecl 4 30267 NULL nohasharray
163883 +enable_so_rawsock_recvmsg_fndecl_30267 rawsock_recvmsg fndecl 3 30267 &enable_so_sys_sendfile_fndecl_30267
163884 +enable_so_tda665x_write_fndecl_30269 tda665x_write fndecl 3 30269 NULL
163885 +enable_so_minor_count_vardecl_30272 minor_count vardecl 0 30272 NULL
163886 +enable_so_data_size_netup_dma_30274 data_size netup_dma 0 30274 NULL
163887 +enable_so_blockshift_alauda_media_info_30287 blockshift alauda_media_info 0 30287 NULL
163888 +enable_so_xfs_collapse_file_space_fndecl_30288 xfs_collapse_file_space fndecl 2-3 30288 NULL
163889 +enable_so_blk_queue_dma_drain_fndecl_30290 blk_queue_dma_drain fndecl 4 30290 NULL
163890 +enable_so_tcp_send_mss_fndecl_30292 tcp_send_mss fndecl 0 30292 NULL
163891 +enable_so_t_tinc_hdr_rem_rds_tcp_connection_30296 t_tinc_hdr_rem rds_tcp_connection 0 30296 NULL nohasharray
163892 +enable_so_count_argc_fndecl_30296 count_argc fndecl 0 30296 &enable_so_t_tinc_hdr_rem_rds_tcp_connection_30296
163893 +enable_so_wlength_at76_rx_buffer_30301 wlength at76_rx_buffer 0 30301 NULL
163894 +enable_so_logi_dj_raw_event_fndecl_30304 logi_dj_raw_event fndecl 4 30304 NULL
163895 +enable_so_m_ts_msg_msg_30307 m_ts msg_msg 0 30307 NULL
163896 +enable_so_alloc_alien_cache_fndecl_30308 alloc_alien_cache fndecl 2 30308 NULL
163897 +enable_so_ki_pos_kiocb_30312 ki_pos kiocb 0 30312 NULL
163898 +enable_so_wbuf_pagesize_jffs2_sb_info_30318 wbuf_pagesize jffs2_sb_info 0 30318 NULL
163899 +enable_so_nfakewriters_vardecl_rcutorture_c_30320 nfakewriters vardecl_rcutorture.c 0 30320 NULL
163900 +enable_so_kvm_write_guest_cached_fndecl_30321 kvm_write_guest_cached fndecl 4 30321 NULL
163901 +enable_so_avc_stream_set_format_fndecl_30322 avc_stream_set_format fndecl 5 30322 NULL
163902 +enable_so_name_len_discovery_t_30331 name_len discovery_t 0 30331 NULL
163903 +enable_so_tc90522_master_xfer_fndecl_30332 tc90522_master_xfer fndecl 3 30332 NULL
163904 +enable_so_bfad_iocmd_vport_get_stats_fndecl_30341 bfad_iocmd_vport_get_stats fndecl 0 30341 NULL
163905 +enable_so_acpi_os_map_memory_fndecl_30346 acpi_os_map_memory fndecl 2-1 30346 NULL
163906 +enable_so_overflow_maj_vardecl_ucm_c_30347 overflow_maj vardecl_ucm.c 0 30347 NULL
163907 +enable_so_p_ssize_f_uac2_opts_30353 p_ssize f_uac2_opts 0 30353 NULL
163908 +enable_so_max_rq_sg_mlx4_caps_30357 max_rq_sg mlx4_caps 0 30357 NULL
163909 +enable_so_bt_datalen_bcm5974_config_30374 bt_datalen bcm5974_config 0 30374 NULL nohasharray
163910 +enable_so_len_snd_seq_ev_ext_30374 len snd_seq_ev_ext 0 30374 &enable_so_bt_datalen_bcm5974_config_30374
163911 +enable_so_ubifs_pad_fndecl_30375 ubifs_pad fndecl 3 30375 NULL
163912 +enable_so_max_r2t_iscsi_session_30376 max_r2t iscsi_session 0 30376 NULL
163913 +enable_so_vni_to_tunnel_id_fndecl_30379 vni_to_tunnel_id fndecl 0 30379 NULL
163914 +enable_so_pnp_add_bus_resource_fndecl_30381 pnp_add_bus_resource fndecl 3-2 30381 NULL
163915 +enable_so_qnx4_iget_fndecl_30383 qnx4_iget fndecl 2 30383 NULL
163916 +enable_so_get_callback_via_fndecl_30387 get_callback_via fndecl 0 30387 NULL
163917 +enable_so_ssid_len_cfg80211_ssid_30393 ssid_len cfg80211_ssid 0 30393 NULL
163918 +enable_so_datalen_port100_frame_30394 datalen port100_frame 0 30394 NULL
163919 +enable_so_ocfs2_dx_entry_list_insert_fndecl_30397 ocfs2_dx_entry_list_insert fndecl 3 30397 NULL
163920 +enable_so_sq_overhead_fndecl_30401 sq_overhead fndecl 0 30401 NULL
163921 +enable_so_clone_and_map_rq_target_type_30404 clone_and_map_rq target_type 0 30404 NULL
163922 +enable_so_dbgp_control_msg_fndecl_30405 dbgp_control_msg fndecl 7 30405 NULL
163923 +enable_so_nvec_used_msi_desc_30409 nvec_used msi_desc 0 30409 NULL
163924 +enable_so_hwm_tx_init_fndecl_30411 hwm_tx_init fndecl 4 30411 NULL
163925 +enable_so_decode_opaque_fixed_fndecl_30421 decode_opaque_fixed fndecl 3 30421 NULL
163926 +enable_so_width_bttv_fh_30432 width bttv_fh 0 30432 NULL
163927 +enable_so_bytes_committed_mlx5_pagefault_30434 bytes_committed mlx5_pagefault 0 30434 NULL
163928 +enable_so_of_irq_count_fndecl_30438 of_irq_count fndecl 0 30438 NULL
163929 +enable_so_ubifs_write_node_fndecl_30441 ubifs_write_node fndecl 3-5 30441 NULL
163930 +enable_so_count_snd_kcontrol_new_30443 count snd_kcontrol_new 0 30443 NULL
163931 +enable_so_pmd_entry_mm_walk_30448 pmd_entry mm_walk 0 30448 NULL
163932 +enable_so_comedi_alloc_spriv_fndecl_30449 comedi_alloc_spriv fndecl 2 30449 NULL
163933 +enable_so_num_channels_iio_dev_30451 num_channels iio_dev 0 30451 NULL
163934 +enable_so___add_zone_fndecl_30452 __add_zone fndecl 2 30452 NULL
163935 +enable_so_m5mols_write_fndecl_30453 m5mols_write fndecl 2 30453 NULL
163936 +enable_so_mmap_region_fndecl_30460 mmap_region fndecl 0-2-3-5 30460 NULL
163937 +enable_so_grow_pgdat_span_fndecl_30467 grow_pgdat_span fndecl 2 30467 NULL
163938 +enable_so_height_drm_qxl_alloc_surf_30468 height drm_qxl_alloc_surf 0 30468 NULL nohasharray
163939 +enable_so_rocker_port_kzalloc_fndecl_30468 rocker_port_kzalloc fndecl 4 30468 &enable_so_height_drm_qxl_alloc_surf_30468
163940 +enable_so___qp_memcpy_to_queue_fndecl_30472 __qp_memcpy_to_queue fndecl 4-2 30472 NULL
163941 +enable_so_nouveau_gem_new_fndecl_30476 nouveau_gem_new fndecl 2 30476 NULL nohasharray
163942 +enable_so_packet_size_ncp_server_30476 packet_size ncp_server 0 30476 &enable_so_nouveau_gem_new_fndecl_30476
163943 +enable_so_produce_size_vmci_qp_alloc_info_30480 produce_size vmci_qp_alloc_info 0 30480 NULL nohasharray
163944 +enable_so_btrfs_sync_file_fndecl_30480 btrfs_sync_file fndecl 2-3 30480 &enable_so_produce_size_vmci_qp_alloc_info_30480
163945 +enable_so_xfs_inode_alloc_fndecl_30482 xfs_inode_alloc fndecl 2 30482 NULL nohasharray
163946 +enable_so_additional_sense_code_scsi_sense_descriptor_based_30482 additional_sense_code scsi_sense_descriptor_based 0 30482 &enable_so_xfs_inode_alloc_fndecl_30482
163947 +enable_so_xdr_buf_trim_fndecl_30485 xdr_buf_trim fndecl 2 30485 NULL
163948 +enable_so_SyS_io_getevents_fndecl_30487 SyS_io_getevents fndecl 3 30487 NULL
163949 +enable_so_data_len_ib_ucm_sidr_rep_30488 data_len ib_ucm_sidr_rep 0 30488 NULL
163950 +enable_so_rd_build_prot_space_fndecl_30490 rd_build_prot_space fndecl 3-2 30490 NULL
163951 +enable_so_vhost_add_used_n_fndecl_30491 vhost_add_used_n fndecl 3 30491 NULL
163952 +enable_so_height_s2255_vc_30492 height s2255_vc 0 30492 NULL
163953 +enable_so_kvm_read_guest_atomic_fndecl_30494 kvm_read_guest_atomic fndecl 2-4 30494 NULL
163954 +enable_so_nfcwilink_send_bts_cmd_fndecl_30497 nfcwilink_send_bts_cmd fndecl 3 30497 NULL
163955 +enable_so_tolen_nfs3_linkargs_30505 tolen nfs3_linkargs 0 30505 NULL
163956 +enable_so___blkdev_issue_discard_async_fndecl_30509 __blkdev_issue_discard_async fndecl 2-3-0 30509 NULL
163957 +enable_so___skb_udp_tunnel_segment_fndecl_30522 __skb_udp_tunnel_segment fndecl 4 30522 NULL nohasharray
163958 +enable_so_ip_list_hash_size_vardecl_xt_recent_c_30522 ip_list_hash_size vardecl_xt_recent.c 0 30522 &enable_so___skb_udp_tunnel_segment_fndecl_30522
163959 +enable_so_buf_start_lo_rx_buf_desc_30523 buf_start_lo rx_buf_desc 0 30523 NULL
163960 +enable_so_ttm_dma_page_pool_free_fndecl_30527 ttm_dma_page_pool_free fndecl 2 30527 NULL
163961 +enable_so_nvme_submit_sync_cmd_fndecl_30530 nvme_submit_sync_cmd fndecl 4 30530 NULL
163962 +enable_so_send_command_fndecl_30531 send_command fndecl 4 30531 NULL
163963 +enable_so_len_nfsd_readlinkres_30541 len nfsd_readlinkres 0 30541 NULL
163964 +enable_so_num_ports_mlx4_ib_dev_30542 num_ports mlx4_ib_dev 0 30542 NULL
163965 +enable_so_xen_blkif_max_segments_vardecl_xen_blkfront_c_30543 xen_blkif_max_segments vardecl_xen-blkfront.c 0 30543 NULL
163966 +enable_so_pstore_compress_fndecl_30549 pstore_compress fndecl 3-4 30549 NULL
163967 +enable_so_nfcid_len_pn533_target_type_a_30554 nfcid_len pn533_target_type_a 0 30554 NULL
163968 +enable_so_left_vardecl_matroxfb_base_c_30557 left vardecl_matroxfb_base.c 0 30557 NULL
163969 +enable_so_min_size_rhashtable_params_30562 min_size rhashtable_params 0 30562 NULL
163970 +enable_so_wMaxCommand_wdm_device_30565 wMaxCommand wdm_device 0 30565 NULL
163971 +enable_so_entries_usb_sg_request_30570 entries usb_sg_request 0 30570 NULL
163972 +enable_so_snd_pcm_oss_write1_fndecl_30571 snd_pcm_oss_write1 fndecl 3 30571 NULL
163973 +enable_so_s_iblkno_ufs_sb_private_info_30572 s_iblkno ufs_sb_private_info 0 30572 NULL nohasharray
163974 +enable_so_key_len_ubifs_info_30572 key_len ubifs_info 0 30572 &enable_so_s_iblkno_ufs_sb_private_info_30572
163975 +enable_so_udf_get_pblock_virt20_fndecl_30574 udf_get_pblock_virt20 fndecl 4 30574 NULL
163976 +enable_so_pio_ide_pio_info_30575 pio ide_pio_info 0 30575 NULL nohasharray
163977 +enable_so_mid_get_vbt_data_r0_fndecl_30575 mid_get_vbt_data_r0 fndecl 2 30575 &enable_so_pio_ide_pio_info_30575
163978 +enable_so_userptr_amdgpu_ttm_tt_30577 userptr amdgpu_ttm_tt 0 30577 NULL
163979 +enable_so_fuse_conn_max_background_read_fndecl_30580 fuse_conn_max_background_read fndecl 3 30580 NULL
163980 +enable_so_delta_stack_mm_struct_30582 delta_stack mm_struct 0 30582 NULL nohasharray
163981 +enable_so_ida_get_new_above_fndecl_30582 ida_get_new_above fndecl 0 30582 &enable_so_delta_stack_mm_struct_30582
163982 +enable_so_max_intr_slots_myri10ge_priv_30588 max_intr_slots myri10ge_priv 0 30588 NULL nohasharray
163983 +enable_so_mbox_test_message_read_fndecl_30588 mbox_test_message_read fndecl 3 30588 &enable_so_max_intr_slots_myri10ge_priv_30588
163984 +enable_so_group_ext4_new_group_data_30590 group ext4_new_group_data 0 30590 NULL nohasharray
163985 +enable_so_rsize_cifs_sb_info_30590 rsize cifs_sb_info 0 30590 &enable_so_group_ext4_new_group_data_30590
163986 +enable_so_read_edid_block_fndecl_30591 read_edid_block fndecl 4 30591 NULL
163987 +enable_so_readsize_acm_30592 readsize acm 0 30592 NULL nohasharray
163988 +enable_so_size_drm_savage_cmdbuf_30592 size drm_savage_cmdbuf 0 30592 &enable_so_readsize_acm_30592
163989 +enable_so_get_scq_fndecl_30594 get_scq fndecl 2 30594 NULL
163990 +enable_so_tifm_alloc_adapter_fndecl_30596 tifm_alloc_adapter fndecl 1 30596 NULL
163991 +enable_so_sctp_addto_chunk_fndecl_30597 sctp_addto_chunk fndecl 2 30597 NULL
163992 +enable_so_ext4_collapse_range_fndecl_30598 ext4_collapse_range fndecl 2-3 30598 NULL
163993 +enable_so_offset_drm_i915_gem_pread_30601 offset drm_i915_gem_pread 0 30601 NULL
163994 +enable_so_update_backups_fndecl_30602 update_backups fndecl 2 30602 NULL
163995 +enable_so_add_ino_fndecl_30603 add_ino fndecl 2-4 30603 NULL
163996 +enable_so_rx_win_size_mwifiex_add_ba_param_30610 rx_win_size mwifiex_add_ba_param 0 30610 NULL
163997 +enable_so_total_data_placed_lpfc_wcqe_complete_30612 total_data_placed lpfc_wcqe_complete 0 30612 NULL nohasharray
163998 +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
163999 +enable_so_ieee802_11_parse_elems_crc_fndecl_30615 ieee802_11_parse_elems_crc fndecl 2 30615 NULL
164000 +enable_so_size_cmdQ_30622 size cmdQ 0 30622 NULL
164001 +enable_so_msc_buffer_win_alloc_fndecl_30624 msc_buffer_win_alloc fndecl 2 30624 NULL
164002 +enable_so_si2168_i2c_master_recv_unlocked_fndecl_30633 si2168_i2c_master_recv_unlocked fndecl 3 30633 NULL
164003 +enable_so_catc_ctrl_async_fndecl_30648 catc_ctrl_async fndecl 7 30648 NULL
164004 +enable_so_drbd_md_sync_page_io_fndecl_30651 drbd_md_sync_page_io fndecl 3 30651 NULL
164005 +enable_so_size_vmcore_30652 size vmcore 0 30652 NULL
164006 +enable_so_start_numa_memblk_30656 start numa_memblk 0 30656 NULL nohasharray
164007 +enable_so_shrink_pgdat_span_fndecl_30656 shrink_pgdat_span fndecl 3-2 30656 &enable_so_start_numa_memblk_30656
164008 +enable_so_ci_port_test_write_fndecl_30657 ci_port_test_write fndecl 3 30657 NULL
164009 +enable_so_ext4_mb_new_blocks_fndecl_30662 ext4_mb_new_blocks fndecl 0 30662 NULL
164010 +enable_so_tun_put_user_fndecl_30676 tun_put_user fndecl 0 30676 NULL
164011 +enable_so_host_int_add_wep_key_bss_sta_fndecl_30677 host_int_add_wep_key_bss_sta fndecl 3 30677 NULL
164012 +enable_so_max_count_pvr2_buffer_30678 max_count pvr2_buffer 0 30678 NULL
164013 +enable_so_nvme_cmd_size_fndecl_30679 nvme_cmd_size fndecl 0 30679 NULL
164014 +enable_so_log_num_srqs_mlx4_init_hca_param_30681 log_num_srqs mlx4_init_hca_param 0 30681 NULL
164015 +enable_so_ramsize_brcmf_chip_30687 ramsize brcmf_chip 0 30687 NULL nohasharray
164016 +enable_so_curr_queue_pairs_virtnet_info_30687 curr_queue_pairs virtnet_info 0 30687 &enable_so_ramsize_brcmf_chip_30687
164017 +enable_so_mac_drv_rx_complete_fndecl_30692 mac_drv_rx_complete fndecl 4 30692 NULL
164018 +enable_so_keybytes_gss_krb5_enctype_30694 keybytes gss_krb5_enctype 0 30694 NULL nohasharray
164019 +enable_so_xfrm_hash_alloc_fndecl_30694 xfrm_hash_alloc fndecl 1 30694 &enable_so_keybytes_gss_krb5_enctype_30694
164020 +enable_so_status_urb_30696 status urb 0 30696 NULL nohasharray
164021 +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
164022 +enable_so_hdsp_spdif_sample_rate_fndecl_30700 hdsp_spdif_sample_rate fndecl 0 30700 NULL
164023 +enable_so_bm_entry_read_fndecl_30707 bm_entry_read fndecl 3 30707 NULL
164024 +enable_so_sched_autogroup_write_fndecl_30715 sched_autogroup_write fndecl 3 30715 NULL
164025 +enable_so_numPhys_PVSCSIConfigPageController_30726 numPhys PVSCSIConfigPageController 0 30726 NULL
164026 +enable_so_lbs_threshold_write_fndecl_30733 lbs_threshold_write fndecl 5 30733 NULL
164027 +enable_so_sock_recvmsg_fndecl_30735 sock_recvmsg fndecl 0 30735 NULL nohasharray
164028 +enable_so_num_descriptors_pmc_ctx_30735 num_descriptors pmc_ctx 0 30735 &enable_so_sock_recvmsg_fndecl_30735
164029 +enable_so_bop_seek_key_nilfs_bmap_operations_30741 bop_seek_key nilfs_bmap_operations 0 30741 NULL nohasharray
164030 +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
164031 +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
164032 +enable_so_command_setvloffset_fndecl_30761 command_setvloffset fndecl 0 30761 NULL nohasharray
164033 +enable_so_n_scan_channels_iwl_ucode_capabilities_30761 n_scan_channels iwl_ucode_capabilities 0 30761 &enable_so_command_setvloffset_fndecl_30761
164034 +enable_so_lp_write_fndecl_30772 lp_write fndecl 3 30772 NULL
164035 +enable_so_ocrdma_alloc_mr_fndecl_30774 ocrdma_alloc_mr fndecl 3 30774 NULL
164036 +enable_so_leb_size_ubifs_info_30775 leb_size ubifs_info 0 30775 NULL
164037 +enable_so_nzones_high_adfs_discrecord_30776 nzones_high adfs_discrecord 0 30776 NULL
164038 +enable_so_isoc_in_pipe_ttusb_30778 isoc_in_pipe ttusb 0 30778 NULL
164039 +enable_so_hdrlen_brcmf_pub_30788 hdrlen brcmf_pub 0 30788 NULL nohasharray
164040 +enable_so_num_blk_nvm_id_group_30788 num_blk nvm_id_group 0 30788 &enable_so_hdrlen_brcmf_pub_30788 nohasharray
164041 +enable_so_fw_node_create_fndecl_30788 fw_node_create fndecl 2 30788 &enable_so_num_blk_nvm_id_group_30788
164042 +enable_so_batadv_send_roam_adv_fndecl_30791 batadv_send_roam_adv fndecl 3 30791 NULL
164043 +enable_so_netup_write_i2c_fndecl_30793 netup_write_i2c fndecl 5 30793 NULL
164044 +enable_so_kobj_map_fndecl_30797 kobj_map fndecl 2-3 30797 NULL
164045 +enable_so_wr_sz_csio_q_30799 wr_sz csio_q 0 30799 NULL
164046 +enable_so_remove_one_fndecl_30800 remove_one fndecl 2 30800 NULL
164047 +enable_so_write_va_iser_hdr_30802 write_va iser_hdr 0 30802 NULL
164048 +enable_so_extra_mpdu_postfix_len_lib80211_crypto_ops_30803 extra_mpdu_postfix_len lib80211_crypto_ops 0 30803 NULL nohasharray
164049 +enable_so_fwlen_mpt_fw_xfer_30803 fwlen mpt_fw_xfer 0 30803 &enable_so_extra_mpdu_postfix_len_lib80211_crypto_ops_30803
164050 +enable_so_ResidualCnt_ErrorInfo_30806 ResidualCnt ErrorInfo 0 30806 NULL
164051 +enable_so_buf_dma_gtco_30808 buf_dma gtco 0 30808 NULL nohasharray
164052 +enable_so_sadb_key_bits_sadb_key_30808 sadb_key_bits sadb_key 0 30808 &enable_so_buf_dma_gtco_30808
164053 +enable_so_unmerge_ksm_pages_fndecl_30809 unmerge_ksm_pages fndecl 2 30809 NULL
164054 +enable_so_si21_readregs_fndecl_30810 si21_readregs fndecl 4 30810 NULL nohasharray
164055 +enable_so_xfs_ialloc_read_agi_fndecl_30810 xfs_ialloc_read_agi fndecl 3 30810 &enable_so_si21_readregs_fndecl_30810
164056 +enable_so_totalram_sysinfo_30812 totalram sysinfo 0 30812 NULL
164057 +enable_so_num_mcg_mthca_profile_30814 num_mcg mthca_profile 0 30814 NULL
164058 +enable_so_offset16_cm_rep_msg_30815 offset16 cm_rep_msg 0 30815 NULL nohasharray
164059 +enable_so_audit_log_n_untrustedstring_fndecl_30815 audit_log_n_untrustedstring fndecl 3 30815 &enable_so_offset16_cm_rep_msg_30815
164060 +enable_so_orig_y_screen_info_30817 orig_y screen_info 0 30817 NULL nohasharray
164061 +enable_so_commit_head_n_tty_data_30817 commit_head n_tty_data 0 30817 &enable_so_orig_y_screen_info_30817
164062 +enable_so_shmem_write_begin_fndecl_30822 shmem_write_begin fndecl 3 30822 NULL
164063 +enable_so_report_count_hid_field_30826 report_count hid_field 0 30826 NULL
164064 +enable_so_s_root_blkno_ocfs2_super_block_30828 s_root_blkno ocfs2_super_block 0 30828 NULL
164065 +enable_so_add_memory_fndecl_30836 add_memory fndecl 3-2 30836 NULL
164066 +enable_so_f2fs_read_data_pages_fndecl_30837 f2fs_read_data_pages fndecl 4 30837 NULL
164067 +enable_so_shadow_root_level_kvm_mmu_30842 shadow_root_level kvm_mmu 0 30842 NULL
164068 +enable_so_resp_size_virtio_gpu_vbuffer_30847 resp_size virtio_gpu_vbuffer 0 30847 NULL
164069 +enable_so_wm2200_set_fll_fndecl_30852 wm2200_set_fll fndecl 4-5 30852 NULL
164070 +enable_so_notify_offset_multiplier_virtio_pci_device_30853 notify_offset_multiplier virtio_pci_device 0 30853 NULL
164071 +enable_so_default_pvid_net_bridge_30856 default_pvid net_bridge 0 30856 NULL nohasharray
164072 +enable_so_count_acpi_object_list_30856 count acpi_object_list 0 30856 &enable_so_default_pvid_net_bridge_30856 nohasharray
164073 +enable_so_saa7164_buffer_alloc_user_fndecl_30856 saa7164_buffer_alloc_user fndecl 2 30856 &enable_so_count_acpi_object_list_30856
164074 +enable_so_lov_ost_pool_add_fndecl_30857 lov_ost_pool_add fndecl 3 30857 NULL
164075 +enable_so_spi_sh_send_fndecl_30862 spi_sh_send fndecl 0 30862 NULL
164076 +enable_so_al_size_4k_drbd_md_30864 al_size_4k drbd_md 0 30864 NULL
164077 +enable_so_width_cx2341x_handler_30869 width cx2341x_handler 0 30869 NULL nohasharray
164078 +enable_so_memory_size_hp100_private_30869 memory_size hp100_private 0 30869 &enable_so_width_cx2341x_handler_30869
164079 +enable_so_batadv_send_skb_push_fill_unicast_fndecl_30870 batadv_send_skb_push_fill_unicast fndecl 2 30870 NULL nohasharray
164080 +enable_so_xfs_qm_dqattach_one_fndecl_30870 xfs_qm_dqattach_one fndecl 2 30870 &enable_so_batadv_send_skb_push_fill_unicast_fndecl_30870 nohasharray
164081 +enable_so_snd_emu10k1_fx8010_read_fndecl_30870 snd_emu10k1_fx8010_read fndecl 5 30870 &enable_so_xfs_qm_dqattach_one_fndecl_30870
164082 +enable_so_do_sync_fndecl_30871 do_sync fndecl 1 30871 NULL
164083 +enable_so_sddr09_send_command_fndecl_30873 sddr09_send_command fndecl 5 30873 NULL nohasharray
164084 +enable_so_r_clusters_ocfs2_refcount_rec_30873 r_clusters ocfs2_refcount_rec 0 30873 &enable_so_sddr09_send_command_fndecl_30873
164085 +enable_so_current_page_mspro_block_data_30876 current_page mspro_block_data 0 30876 NULL
164086 +enable_so_dma_buf_sz_stmmac_priv_30880 dma_buf_sz stmmac_priv 0 30880 NULL
164087 +enable_so_eq_textcnt_max98088_priv_30885 eq_textcnt max98088_priv 0 30885 NULL
164088 +enable_so_fifo_size_serial8250_config_30887 fifo_size serial8250_config 0 30887 NULL nohasharray
164089 +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 nohasharray
164090 +enable_so_ocfs2_xattr_get_rec_fndecl_30887 ocfs2_xattr_get_rec fndecl 0 30887 &enable_so_max_ti_iu_len_srpt_rdma_ch_30887
164091 +enable_so_queue_received_packet_fndecl_30890 queue_received_packet fndecl 5 30890 NULL
164092 +enable_so_ceph_copy_user_to_page_vector_fndecl_30896 ceph_copy_user_to_page_vector fndecl 3-4 30896 NULL
164093 +enable_so_compat_sys_keyctl_fndecl_30900 compat_sys_keyctl fndecl 4 30900 NULL
164094 +enable_so_st_nci_hci_dm_reset_fndecl_30904 st_nci_hci_dm_reset fndecl 3 30904 NULL
164095 +enable_so_host_addrlen_nfs4_mount_data_30905 host_addrlen nfs4_mount_data 0 30905 NULL
164096 +enable_so_word12_lpfc_mbx_read_config_30908 word12 lpfc_mbx_read_config 0 30908 NULL
164097 +enable_so_log_sq_bb_count_mlx4_ib_create_qp_30909 log_sq_bb_count mlx4_ib_create_qp 0 30909 NULL
164098 +enable_so_max_datagram_size_cdc_ncm_ctx_30918 max_datagram_size cdc_ncm_ctx 0 30918 NULL
164099 +enable_so___erst_read_from_storage_fndecl_30921 __erst_read_from_storage fndecl 0-2-1 30921 NULL
164100 +enable_so_rx_buffer_len_pch_gbe_adapter_30924 rx_buffer_len pch_gbe_adapter 0 30924 NULL nohasharray
164101 +enable_so_squashfs_export_iget_fndecl_30924 squashfs_export_iget fndecl 2 30924 &enable_so_rx_buffer_len_pch_gbe_adapter_30924
164102 +enable_so_cudlength_x25_calluserdata_30930 cudlength x25_calluserdata 0 30930 NULL
164103 +enable_so_cqe_size_mlx5_ib_resize_cq_30931 cqe_size mlx5_ib_resize_cq 0 30931 NULL
164104 +enable_so_cpci_hp_register_bus_fndecl_30935 cpci_hp_register_bus fndecl 2 30935 NULL
164105 +enable_so_id_virtio_console_control_30940 id virtio_console_control 0 30940 NULL
164106 +enable_so_dns_query_fndecl_30943 dns_query fndecl 3 30943 NULL
164107 +enable_so_cfg80211_tx_mlme_mgmt_fndecl_30944 cfg80211_tx_mlme_mgmt fndecl 3 30944 NULL nohasharray
164108 +enable_so_stride_mlx4_en_tx_ring_30944 stride mlx4_en_tx_ring 0 30944 &enable_so_cfg80211_tx_mlme_mgmt_fndecl_30944 nohasharray
164109 +enable_so_hwparams4_dwc3_hwparams_30944 hwparams4 dwc3_hwparams 0 30944 &enable_so_stride_mlx4_en_tx_ring_30944
164110 +enable_so_page_len_gssp_in_token_30948 page_len gssp_in_token 0 30948 NULL
164111 +enable_so_parse_uac2_sample_rate_range_fndecl_30949 parse_uac2_sample_rate_range fndecl 0 30949 NULL
164112 +enable_so_SYSC_ppoll_fndecl_30954 SYSC_ppoll fndecl 2 30954 NULL
164113 +enable_so_pvr2_stream_setup_fndecl_30955 pvr2_stream_setup fndecl 3 30955 NULL
164114 +enable_so_leaf_shift_right_fndecl_30957 leaf_shift_right fndecl 3 30957 NULL
164115 +enable_so_msi_domain_alloc_irqs_fndecl_30960 msi_domain_alloc_irqs fndecl 0 30960 NULL nohasharray
164116 +enable_so_lowpan_control_write_fndecl_30960 lowpan_control_write fndecl 3 30960 &enable_so_msi_domain_alloc_irqs_fndecl_30960
164117 +enable_so___list_lru_count_one_fndecl_30962 __list_lru_count_one fndecl 0 30962 NULL
164118 +enable_so_ring_start__drm_i810_init_30964 ring_start _drm_i810_init 0 30964 NULL
164119 +enable_so_tool_mask_write_fndecl_30968 tool_mask_write fndecl 3 30968 NULL
164120 +enable_so_max_sdu_atm_trafprm_30969 max_sdu atm_trafprm 0 30969 NULL
164121 +enable_so_mt7601u_rx_skb_from_seg_fndecl_30971 mt7601u_rx_skb_from_seg fndecl 5 30971 NULL
164122 +enable_so_get_leaf_fndecl_30972 get_leaf fndecl 2 30972 NULL
164123 +enable_so_avail_out_z_stream_s_30974 avail_out z_stream_s 0 30974 NULL
164124 +enable_so__usb_write_async_fndecl_30976 _usb_write_async fndecl 4 30976 NULL nohasharray
164125 +enable_so_l2tp_ip_sendmsg_fndecl_30976 l2tp_ip_sendmsg fndecl 3 30976 &enable_so__usb_write_async_fndecl_30976
164126 +enable_so_tid_mwifiex_tx_ba_stream_tbl_30977 tid mwifiex_tx_ba_stream_tbl 0 30977 NULL
164127 +enable_so_ext4_mark_iloc_dirty_fndecl_30980 ext4_mark_iloc_dirty fndecl 0 30980 NULL
164128 +enable_so_offset_nfsd_readargs_30989 offset nfsd_readargs 0 30989 NULL
164129 +enable_so_offset_isofs_fid_30994 offset isofs_fid 0 30994 NULL
164130 +enable_so_vti6_change_mtu_fndecl_30995 vti6_change_mtu fndecl 2 30995 NULL
164131 +enable_so_s_victim_ino_logfs_super_30996 s_victim_ino logfs_super 0 30996 NULL nohasharray
164132 +enable_so_xfs_xattr_set_fndecl_30996 xfs_xattr_set fndecl 5 30996 &enable_so_s_victim_ino_logfs_super_30996
164133 +enable_so_l2cap_create_connless_pdu_fndecl_30997 l2cap_create_connless_pdu fndecl 3 30997 NULL
164134 +enable_so_tx_tx_prepared_descs_read_fndecl_30998 tx_tx_prepared_descs_read fndecl 3 30998 NULL
164135 +enable_so_lro_append_pkt_fndecl_31003 lro_append_pkt fndecl 4 31003 NULL nohasharray
164136 +enable_so_alloc_xenballooned_pages_fndecl_31003 alloc_xenballooned_pages fndecl 1 31003 &enable_so_lro_append_pkt_fndecl_31003
164137 +enable_so_btrfs_search_slot_fndecl_31011 btrfs_search_slot fndecl 0 31011 NULL
164138 +enable_so_max_order_mthca_buddy_31017 max_order mthca_buddy 0 31017 NULL
164139 +enable_so_hdpvr_read_fndecl_31018 hdpvr_read fndecl 3 31018 NULL
164140 +enable_so_ipoib_change_mtu_fndecl_31020 ipoib_change_mtu fndecl 2 31020 NULL
164141 +enable_so_DevSize_cfi_ident_31031 DevSize cfi_ident 0 31031 NULL
164142 +enable_so_tcf_csum_ipv4_icmp_fndecl_31033 tcf_csum_ipv4_icmp fndecl 3 31033 NULL
164143 +enable_so_ocfs2_clear_ext_refcount_fndecl_31035 ocfs2_clear_ext_refcount fndecl 4-3 31035 NULL nohasharray
164144 +enable_so_internal_depth_MPT3SAS_ADAPTER_31035 internal_depth MPT3SAS_ADAPTER 0 31035 &enable_so_ocfs2_clear_ext_refcount_fndecl_31035
164145 +enable_so_hfsplus_bnode_read_u16_fndecl_31037 hfsplus_bnode_read_u16 fndecl 0 31037 NULL
164146 +enable_so_krb5_nfold_fndecl_31038 krb5_nfold fndecl 3-1 31038 NULL
164147 +enable_so_migrate_misplaced_transhuge_page_fndecl_31041 migrate_misplaced_transhuge_page fndecl 5 31041 NULL
164148 +enable_so_qla82xx_pci_set_window_fndecl_31044 qla82xx_pci_set_window fndecl 0-2 31044 NULL
164149 +enable_so_dsp_registers_phys_echoaudio_31045 dsp_registers_phys echoaudio 0 31045 NULL
164150 +enable_so_capset_max_size_virtio_gpu_resp_capset_info_31049 capset_max_size virtio_gpu_resp_capset_info 0 31049 NULL
164151 +enable_so_valueblk_xfs_attr_leaf_name_remote_31051 valueblk xfs_attr_leaf_name_remote 0 31051 NULL
164152 +enable_so_ceph_sync_setxattr_fndecl_31053 ceph_sync_setxattr fndecl 4 31053 NULL
164153 +enable_so_nr_bytes_scif_rma_req_31055 nr_bytes scif_rma_req 0 31055 NULL
164154 +enable_so_pci_sriov_get_totalvfs_fndecl_31059 pci_sriov_get_totalvfs fndecl 0 31059 NULL nohasharray
164155 +enable_so_t4_max_qp_depth_c4iw_hw_queue_31059 t4_max_qp_depth c4iw_hw_queue 0 31059 &enable_so_pci_sriov_get_totalvfs_fndecl_31059
164156 +enable_so_drbd_bm_bits_fndecl_31061 drbd_bm_bits fndecl 0 31061 NULL
164157 +enable_so_si_lf_eblk_bfs_sb_info_31064 si_lf_eblk bfs_sb_info 0 31064 NULL
164158 +enable_so_hdr_offset_xfrm_type_31067 hdr_offset xfrm_type 0 31067 NULL
164159 +enable_so_le_max_key_size_write_fndecl_31068 le_max_key_size_write fndecl 3 31068 NULL
164160 +enable_so_bulk_in_endpointAddress_usb_serial_port_31069 bulk_in_endpointAddress usb_serial_port 0 31069 NULL
164161 +enable_so_segsize_musb_qh_31074 segsize musb_qh 0 31074 NULL
164162 +enable_so_brcmf_sdiod_recv_buf_fndecl_31083 brcmf_sdiod_recv_buf fndecl 3 31083 NULL
164163 +enable_so_get_pipes_num_fndecl_31084 get_pipes_num fndecl 0 31084 NULL
164164 +enable_so_ocfs2_orphan_for_truncate_fndecl_31085 ocfs2_orphan_for_truncate fndecl 4 31085 NULL
164165 +enable_so_nvme_trans_fmt_get_parm_header_fndecl_31087 nvme_trans_fmt_get_parm_header fndecl 2 31087 NULL
164166 +enable_so_DAC960_ControllerCount_vardecl_DAC960_c_31089 DAC960_ControllerCount vardecl_DAC960.c 0 31089 NULL
164167 +enable_so_max_fingers_rmi_data_31091 max_fingers rmi_data 0 31091 NULL
164168 +enable_so_num_crtc_vgastate_31093 num_crtc vgastate 0 31093 NULL
164169 +enable_so_screen_depth_vardecl_hyperv_fb_c_31095 screen_depth vardecl_hyperv_fb.c 0 31095 NULL nohasharray
164170 +enable_so_regmap_i2c_read_fndecl_31095 regmap_i2c_read fndecl 3-5 31095 &enable_so_screen_depth_vardecl_hyperv_fb_c_31095
164171 +enable_so_s_segsize_logfs_super_31101 s_segsize logfs_super 0 31101 NULL
164172 +enable_so_max3421_transfer_in_done_fndecl_31109 max3421_transfer_in_done fndecl 0 31109 NULL
164173 +enable_so_status_tulip_desc_t_31113 status tulip_desc_t 0 31113 NULL
164174 +enable_so_name_len_inotify_event_info_31116 name_len inotify_event_info 0 31116 NULL
164175 +enable_so_reiserfs_write_end_fndecl_31117 reiserfs_write_end fndecl 5-3 31117 NULL
164176 +enable_so_dbgfs_sram_len_iwl_priv_31119 dbgfs_sram_len iwl_priv 0 31119 NULL
164177 +enable_so_udf_UTF8toCS0_fndecl_31120 udf_UTF8toCS0 fndecl 0 31120 NULL
164178 +enable_so_dm_bm_read_lock_fndecl_31121 dm_bm_read_lock fndecl 2-0 31121 NULL
164179 +enable_so_amdgpu_afmt_acr_fndecl_31127 amdgpu_afmt_acr fndecl 1 31127 NULL nohasharray
164180 +enable_so_nr_chips_dsa_platform_data_31127 nr_chips dsa_platform_data 0 31127 &enable_so_amdgpu_afmt_acr_fndecl_31127
164181 +enable_so_uhci_result_isochronous_fndecl_31133 uhci_result_isochronous fndecl 0 31133 NULL nohasharray
164182 +enable_so_write_device_fndecl_31133 write_device fndecl 3 31133 &enable_so_uhci_result_isochronous_fndecl_31133
164183 +enable_so_virtqueue_add_outbuf_fndecl_31136 virtqueue_add_outbuf fndecl 3 31136 NULL
164184 +enable_so__AscCopyLramScsiDoneQ_fndecl_31137 _AscCopyLramScsiDoneQ fndecl 4 31137 NULL
164185 +enable_so_read_fndecl_31142 read fndecl 3 31142 NULL
164186 +enable_so_mwifiex_get_supported_rates_fndecl_31144 mwifiex_get_supported_rates fndecl 0 31144 NULL
164187 +enable_so_batadv_handle_claim_fndecl_31148 batadv_handle_claim fndecl 5 31148 NULL
164188 +enable_so_irttp_connect_indication_fndecl_31149 irttp_connect_indication fndecl 4-5 31149 NULL
164189 +enable_so_hpfs_count_dnodes_fndecl_31152 hpfs_count_dnodes fndecl 2 31152 NULL
164190 +enable_so_max_rx_ip_filters_efx_nic_type_31156 max_rx_ip_filters efx_nic_type 0 31156 NULL
164191 +enable_so_max_seg_size_tsap_cb_31158 max_seg_size tsap_cb 0 31158 NULL
164192 +enable_so_size_stp_policy_id_31167 size stp_policy_id 0 31167 NULL
164193 +enable_so_ocfs2_direct_IO_zero_extend_fndecl_31171 ocfs2_direct_IO_zero_extend fndecl 4 31171 NULL
164194 +enable_so_bm_realloc_pages_fndecl_31172 bm_realloc_pages fndecl 2 31172 NULL
164195 +enable_so_rcvbuf_size_bas_cardstate_31177 rcvbuf_size bas_cardstate 0 31177 NULL
164196 +enable_so_bRPipeBlockSize_usb_wa_descriptor_31178 bRPipeBlockSize usb_wa_descriptor 0 31178 NULL
164197 +enable_so_ffs_ep0_write_fndecl_31181 ffs_ep0_write fndecl 3 31181 NULL
164198 +enable_so_op_size_ost_pool_31182 op_size ost_pool 0 31182 NULL
164199 +enable_so_con_do_clear_unimap_fndecl_31185 con_do_clear_unimap fndecl 0 31185 NULL
164200 +enable_so_slhc_compress_fndecl_31190 slhc_compress fndecl 0-3 31190 NULL
164201 +enable_so_nf_nat_sip_expect_fndecl_31193 nf_nat_sip_expect fndecl 2-8 31193 NULL
164202 +enable_so_alloc_huge_page_noerr_fndecl_31196 alloc_huge_page_noerr fndecl 2 31196 NULL nohasharray
164203 +enable_so_btrfs_drop_extents_fndecl_31196 btrfs_drop_extents fndecl 5-4 31196 &enable_so_alloc_huge_page_noerr_fndecl_31196 nohasharray
164204 +enable_so_st_int_recv_fndecl_31196 st_int_recv fndecl 3 31196 &enable_so_btrfs_drop_extents_fndecl_31196
164205 +enable_so_snoop_inline_pio_send_fndecl_31206 snoop_inline_pio_send fndecl 5 31206 NULL
164206 +enable_so_agp_generic_alloc_user_fndecl_31213 agp_generic_alloc_user fndecl 1 31213 NULL nohasharray
164207 +enable_so_get_registers_fndecl_31213 get_registers fndecl 4 31213 &enable_so_agp_generic_alloc_user_fndecl_31213
164208 +enable_so_wr_ep_alauda_info_31218 wr_ep alauda_info 0 31218 NULL
164209 +enable_so_io_size_smbus_lpc_sch_info_31219 io_size_smbus lpc_sch_info 0 31219 NULL
164210 +enable_so_iwch_alloc_mr_fndecl_31220 iwch_alloc_mr fndecl 3 31220 NULL
164211 +enable_so_kmalloc_array_fndecl_31223 kmalloc_array fndecl 1-2 31223 NULL
164212 +enable_so_put_pfn_fndecl_31225 put_pfn fndecl 0 31225 NULL
164213 +enable_so_fl_align_sge_31227 fl_align sge 0 31227 NULL
164214 +enable_so_mcs_unwrap_mir_fndecl_31228 mcs_unwrap_mir fndecl 3 31228 NULL nohasharray
164215 +enable_so_iscsi_tcp_segment_done_fndecl_31228 iscsi_tcp_segment_done fndecl 4 31228 &enable_so_mcs_unwrap_mir_fndecl_31228 nohasharray
164216 +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
164217 +enable_so_ceph_oloc_oid_to_pg_fndecl_31232 ceph_oloc_oid_to_pg fndecl 0 31232 NULL
164218 +enable_so_kaweth_control_fndecl_31233 kaweth_control fndecl 8-2 31233 NULL
164219 +enable_so_len_ip_vs_iphdr_31235 len ip_vs_iphdr 0 31235 NULL
164220 +enable_so_length_wdm_device_31248 length wdm_device 0 31248 NULL
164221 +enable_so_SYSC_move_pages_fndecl_31249 SYSC_move_pages fndecl 2 31249 NULL
164222 +enable_so_virtio_gpu_dirty_update_fndecl_31253 virtio_gpu_dirty_update fndecl 4-3-5-6 31253 NULL
164223 +enable_so_source_id_acpi_hest_header_31256 source_id acpi_hest_header 0 31256 NULL
164224 +enable_so_rbdr_len_queue_set_31258 rbdr_len queue_set 0 31258 NULL
164225 +enable_so_orig_video_lines_screen_info_31267 orig_video_lines screen_info 0 31267 NULL nohasharray
164226 +enable_so_data_dma_hanwang_31267 data_dma hanwang 0 31267 &enable_so_orig_video_lines_screen_info_31267
164227 +enable_so_vm_iomap_memory_fndecl_31269 vm_iomap_memory fndecl 2 31269 NULL
164228 +enable_so_end_incl_vringh_range_31272 end_incl vringh_range 0 31272 NULL
164229 +enable_so_ascot2e_read_regs_fndecl_31273 ascot2e_read_regs fndecl 4 31273 NULL
164230 +enable_so_packet_length_rc_config_31278 packet_length rc_config 0 31278 NULL
164231 +enable_so_irq_pcmcia_device_31283 irq pcmcia_device 0 31283 NULL nohasharray
164232 +enable_so_ecp_read_data_parport_operations_31283 ecp_read_data parport_operations 0 31283 &enable_so_irq_pcmcia_device_31283
164233 +enable_so_mmap_base_kioctx_31285 mmap_base kioctx 0 31285 NULL
164234 +enable_so_igb_enable_sriov_fndecl_31288 igb_enable_sriov fndecl 2 31288 NULL
164235 +enable_so_nfs_readdir_page_filler_fndecl_31292 nfs_readdir_page_filler fndecl 5 31292 NULL
164236 +enable_so_asymmetric_key_generate_id_fndecl_31299 asymmetric_key_generate_id fndecl 4-2 31299 NULL
164237 +enable_so_fs_shift_hfsplus_sb_info_31309 fs_shift hfsplus_sb_info 0 31309 NULL
164238 +enable_so_rxblen_brcmf_sdio_31317 rxblen brcmf_sdio 0 31317 NULL
164239 +enable_so_bio_integrity_add_page_fndecl_31320 bio_integrity_add_page fndecl 4-3 31320 NULL
164240 +enable_so_gsi_end_mp_ioapic_gsi_31327 gsi_end mp_ioapic_gsi 0 31327 NULL
164241 +enable_so_scatter_len_efx_rx_queue_31330 scatter_len efx_rx_queue 0 31330 NULL nohasharray
164242 +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
164243 +enable_so_ubifs_tnc_add_fndecl_31332 ubifs_tnc_add fndecl 5-4 31332 NULL
164244 +enable_so_cur_frames_osst_tape_31335 cur_frames osst_tape 0 31335 NULL
164245 +enable_so_size_ttm_bus_placement_31338 size ttm_bus_placement 0 31338 NULL
164246 +enable_so_get_elem_size_fndecl_31341 get_elem_size fndecl 0-2 31341 NULL
164247 +enable_so_block_sz_htc_target_31342 block_sz htc_target 0 31342 NULL
164248 +enable_so_sdio_writesb_fndecl_31345 sdio_writesb fndecl 4 31345 NULL
164249 +enable_so_bulk_in_size_usb_serial_driver_31350 bulk_in_size usb_serial_driver 0 31350 NULL
164250 +enable_so_cifs_llseek_fndecl_31352 cifs_llseek fndecl 2 31352 NULL
164251 +enable_so_nr_create_fndecl_31357 nr_create fndecl 3 31357 NULL nohasharray
164252 +enable_so_size_power_iwl_fw_dbg_dest_tlv_31357 size_power iwl_fw_dbg_dest_tlv 0 31357 &enable_so_nr_create_fndecl_31357
164253 +enable_so_device_acpiphp_slot_31359 device acpiphp_slot 0 31359 NULL
164254 +enable_so_romfs_dev_strcmp_fndecl_31365 romfs_dev_strcmp fndecl 4-2 31365 NULL nohasharray
164255 +enable_so_SyS_migrate_pages_fndecl_31365 SyS_migrate_pages fndecl 2 31365 &enable_so_romfs_dev_strcmp_fndecl_31365
164256 +enable_so_req_lim_delta_srp_rsp_31371 req_lim_delta srp_rsp 0 31371 NULL
164257 +enable_so_ioctl_fndecl_31375 ioctl fndecl 3 31375 NULL
164258 +enable_so_gfs2_meta_read_fndecl_31379 gfs2_meta_read fndecl 2 31379 NULL
164259 +enable_so_s_stripe_ext4_sb_info_31391 s_stripe ext4_sb_info 0 31391 NULL
164260 +enable_so_spi_populate_sync_msg_fndecl_31392 spi_populate_sync_msg fndecl 0 31392 NULL
164261 +enable_so_brcmf_msgbuf_init_pktids_fndecl_31395 brcmf_msgbuf_init_pktids fndecl 1 31395 NULL
164262 +enable_so_ip_tunnel_bind_dev_fndecl_31398 ip_tunnel_bind_dev fndecl 0 31398 NULL nohasharray
164263 +enable_so_asd_store_update_bios_fndecl_31398 asd_store_update_bios fndecl 4 31398 &enable_so_ip_tunnel_bind_dev_fndecl_31398
164264 +enable_so_persistent_ram_vmap_fndecl_31402 persistent_ram_vmap fndecl 1-2 31402 NULL
164265 +enable_so_number_xt_table_info_31404 number xt_table_info 0 31404 NULL
164266 +enable_so_num_types_amdgpu_irq_src_31405 num_types amdgpu_irq_src 0 31405 NULL
164267 +enable_so_proc_pid_attr_read_fndecl_31406 proc_pid_attr_read fndecl 3 31406 NULL nohasharray
164268 +enable_so_rxrpc_rx_window_size_vardecl_31406 rxrpc_rx_window_size vardecl 0 31406 &enable_so_proc_pid_attr_read_fndecl_31406
164269 +enable_so_data_offset_msgbuf_rx_complete_31409 data_offset msgbuf_rx_complete 0 31409 NULL
164270 +enable_so_zone_count_msb_data_31413 zone_count msb_data 0 31413 NULL
164271 +enable_so_sg_tablesize_sg_device_31415 sg_tablesize sg_device 0 31415 NULL
164272 +enable_so_unmap_region_fndecl_31420 unmap_region fndecl 5-4 31420 NULL
164273 +enable_so_bch_bucket_alloc_fndecl_31421 bch_bucket_alloc fndecl 0 31421 NULL
164274 +enable_so_rx_out_of_mem_read_fndecl_31422 rx_out_of_mem_read fndecl 3 31422 NULL
164275 +enable_so_len_brcmf_vs_tlv_31430 len brcmf_vs_tlv 0 31430 NULL nohasharray
164276 +enable_so_onenand_read_oob_nolock_fndecl_31430 onenand_read_oob_nolock fndecl 2 31430 &enable_so_len_brcmf_vs_tlv_31430
164277 +enable_so_mpx_unmap_tables_fndecl_31439 mpx_unmap_tables fndecl 2-3 31439 NULL
164278 +enable_so_vc_x_vc_data_31443 vc_x vc_data 0 31443 NULL
164279 +enable_so_fid_ino_xfs_fid_31445 fid_ino xfs_fid 0 31445 NULL
164280 +enable_so_gro_size_bnx2x_agg_info_31450 gro_size bnx2x_agg_info 0 31450 NULL
164281 +enable_so_tx_data_ep_usb_tx_data_port_31452 tx_data_ep usb_tx_data_port 0 31452 NULL nohasharray
164282 +enable_so_length_wsm_ssid_31452 length wsm_ssid 0 31452 &enable_so_tx_data_ep_usb_tx_data_port_31452
164283 +enable_so_max_sz_mmc_test_area_31453 max_sz mmc_test_area 0 31453 NULL
164284 +enable_so_i_eattr_gfs2_inode_31461 i_eattr gfs2_inode 0 31461 NULL
164285 +enable_so_length__diva_xdi_um_cfg_cmd_data_read_sdram_31465 length _diva_xdi_um_cfg_cmd_data_read_sdram 0 31465 NULL
164286 +enable_so_drbd_send_all_fndecl_31468 drbd_send_all fndecl 4 31468 NULL
164287 +enable_so_ip_encap_hlen_fndecl_31469 ip_encap_hlen fndecl 0 31469 NULL
164288 +enable_so_len_mmap_arg_struct32_31471 len mmap_arg_struct32 0 31471 NULL nohasharray
164289 +enable_so_videobuf_dma_init_overlay_fndecl_31471 videobuf_dma_init_overlay fndecl 4 31471 &enable_so_len_mmap_arg_struct32_31471
164290 +enable_so_wl12xx_spi_raw_write_fndecl_31482 wl12xx_spi_raw_write fndecl 4 31482 NULL
164291 +enable_so_old_dev_ioctl_fndecl_31483 old_dev_ioctl fndecl 0 31483 NULL
164292 +enable_so_nr_voices_seq_oss_synthinfo_31487 nr_voices seq_oss_synthinfo 0 31487 NULL
164293 +enable_so_length_rsd_31489 length rsd 0 31489 NULL
164294 +enable_so_regmap_multi_reg_write_bypassed_fndecl_31492 regmap_multi_reg_write_bypassed fndecl 3 31492 NULL
164295 +enable_so_dvb_dmxdev_ts_callback_fndecl_31494 dvb_dmxdev_ts_callback fndecl 2-4 31494 NULL
164296 +enable_so_size_intel_stolen_funcs_31503 size intel_stolen_funcs 0 31503 NULL
164297 +enable_so_PIXDEPTH_kyrofb_info_31509 PIXDEPTH kyrofb_info 0 31509 NULL
164298 +enable_so_fixed_size_llseek_fndecl_31512 fixed_size_llseek fndecl 2-4 31512 NULL
164299 +enable_so_bfad_iocmd_pcifn_bw_fndecl_31515 bfad_iocmd_pcifn_bw fndecl 0 31515 NULL
164300 +enable_so_ddb_input_read_fndecl_31516 ddb_input_read fndecl 3-0 31516 NULL
164301 +enable_so_shmem_replace_page_fndecl_31519 shmem_replace_page fndecl 4 31519 NULL
164302 +enable_so_tx_iovlen_ncp_request_reply_31522 tx_iovlen ncp_request_reply 0 31522 NULL
164303 +enable_so_ext4_mb_init_group_fndecl_31530 ext4_mb_init_group fndecl 0 31530 NULL
164304 +enable_so_port_mlx5_qp_path_31531 port mlx5_qp_path 0 31531 NULL nohasharray
164305 +enable_so_residual_datacnt_status_pkt_31531 residual_datacnt status_pkt 0 31531 &enable_so_port_mlx5_qp_path_31531
164306 +enable_so_rx_pipe_usbpn_dev_31540 rx_pipe usbpn_dev 0 31540 NULL
164307 +enable_so_tcp_tso_acked_fndecl_31549 tcp_tso_acked fndecl 0 31549 NULL
164308 +enable_so_stride_drm_qxl_alloc_surf_31551 stride drm_qxl_alloc_surf 0 31551 NULL nohasharray
164309 +enable_so_ks_rdreg16_fndecl_31551 ks_rdreg16 fndecl 0 31551 &enable_so_stride_drm_qxl_alloc_surf_31551
164310 +enable_so_start_genius_videocam_live_fndecl_31552 start_genius_videocam_live fndecl 0 31552 NULL
164311 +enable_so_resp_sas_pcd_m_spg_fndecl_31559 resp_sas_pcd_m_spg fndecl 0 31559 NULL
164312 +enable_so_kernel_physical_mapping_init_fndecl_31561 kernel_physical_mapping_init fndecl 0-2 31561 NULL
164313 +enable_so_qlcnic_validate_ringparam_fndecl_31569 qlcnic_validate_ringparam fndecl 0 31569 NULL
164314 +enable_so_bio_alloc_map_data_fndecl_31573 bio_alloc_map_data fndecl 1 31573 NULL
164315 +enable_so_vmcb_nested_state_31575 vmcb nested_state 0 31575 NULL
164316 +enable_so_can_change_mtu_fndecl_31583 can_change_mtu fndecl 2 31583 NULL nohasharray
164317 +enable_so_ib_uverbs_resize_cq_fndecl_31583 ib_uverbs_resize_cq fndecl 4 31583 &enable_so_can_change_mtu_fndecl_31583
164318 +enable_so_dvb_dvr_set_buffer_size_fndecl_31587 dvb_dvr_set_buffer_size fndecl 2 31587 NULL
164319 +enable_so_num_txq_bna_attr_31588 num_txq bna_attr 0 31588 NULL
164320 +enable_so_v_max_out_saa7146_standard_31591 v_max_out saa7146_standard 0 31591 NULL
164321 +enable_so_nbchannel_capi_profile_31592 nbchannel capi_profile 0 31592 NULL
164322 +enable_so_radeon_gart_size_auto_fndecl_31605 radeon_gart_size_auto fndecl 0 31605 NULL
164323 +enable_so_sys_mprotect_fndecl_31611 sys_mprotect fndecl 2-1 31611 NULL
164324 +enable_so_ino_logfs_object_header_31613 ino logfs_object_header 0 31613 NULL
164325 +enable_so_iterate_fd_fndecl_31615 iterate_fd fndecl 0 31615 NULL
164326 +enable_so_wil_read_file_ioblob_fndecl_31621 wil_read_file_ioblob fndecl 3 31621 NULL
164327 +enable_so_a_entry_exec_31622 a_entry exec 0 31622 NULL nohasharray
164328 +enable_so_PyLen_hfs_cat_file_31622 PyLen hfs_cat_file 0 31622 &enable_so_a_entry_exec_31622
164329 +enable_so_vma_merge_fndecl_31624 vma_merge fndecl 4-3 31624 NULL nohasharray
164330 +enable_so_ping_v4_sendmsg_fndecl_31624 ping_v4_sendmsg fndecl 3 31624 &enable_so_vma_merge_fndecl_31624
164331 +enable_so_port_num_ib_ah_attr_31626 port_num ib_ah_attr 0 31626 NULL
164332 +enable_so_num_gap_ack_blocks_sctp_sackhdr_31630 num_gap_ack_blocks sctp_sackhdr 0 31630 NULL
164333 +enable_so_eq_textcnt_max98095_priv_31635 eq_textcnt max98095_priv 0 31635 NULL
164334 +enable_so_nv04_fifo_new__fndecl_31639 nv04_fifo_new_ fndecl 4 31639 NULL
164335 +enable_so_segsize_dn_skb_cb_31640 segsize dn_skb_cb 0 31640 NULL
164336 +enable_so_pep_recvmsg_fndecl_31641 pep_recvmsg fndecl 3 31641 NULL
164337 +enable_so_pmcraid_alloc_sglist_fndecl_31643 pmcraid_alloc_sglist fndecl 1 31643 NULL
164338 +enable_so_ext4_free_blocks_fndecl_31648 ext4_free_blocks fndecl 4-5 31648 NULL nohasharray
164339 +enable_so_av_buf_tail_dccp_ackvec_31648 av_buf_tail dccp_ackvec 0 31648 &enable_so_ext4_free_blocks_fndecl_31648
164340 +enable_so_mwifiex_set_wpa_ie_helper_fndecl_31650 mwifiex_set_wpa_ie_helper fndecl 3 31650 NULL
164341 +enable_so_brk_prctl_mm_map_31652 brk prctl_mm_map 0 31652 NULL
164342 +enable_so_bpp_uvc_format_31654 bpp uvc_format 0 31654 NULL
164343 +enable_so_nonpaging_page_fault_fndecl_31655 nonpaging_page_fault fndecl 2 31655 NULL
164344 +enable_so_compat_sys_ipc_fndecl_31659 compat_sys_ipc fndecl 3 31659 NULL
164345 +enable_so_ext4_map_blocks_fndecl_31663 ext4_map_blocks fndecl 0 31663 NULL
164346 +enable_so_hp_hpet_phys_hpets_31664 hp_hpet_phys hpets 0 31664 NULL
164347 +enable_so_read_dma_ims_pcu_31667 read_dma ims_pcu 0 31667 NULL nohasharray
164348 +enable_so_len_hda_conn_list_31667 len hda_conn_list 0 31667 &enable_so_read_dma_ims_pcu_31667
164349 +enable_so_residual_count_iscsi_scsi_rsp_31668 residual_count iscsi_scsi_rsp 0 31668 NULL
164350 +enable_so_bm_register_write_fndecl_31670 bm_register_write fndecl 3 31670 NULL nohasharray
164351 +enable_so_snd_midi_event_new_fndecl_31670 snd_midi_event_new fndecl 1 31670 &enable_so_bm_register_write_fndecl_31670 nohasharray
164352 +enable_so_set_capacity_fndecl_31670 set_capacity fndecl 2 31670 &enable_so_snd_midi_event_new_fndecl_31670
164353 +enable_so_fragment_ufs_buffer_head_31676 fragment ufs_buffer_head 0 31676 NULL
164354 +enable_so_rx_header_len_pn533_frame_ops_31680 rx_header_len pn533_frame_ops 0 31680 NULL
164355 +enable_so_dsa_of_setup_routing_table_fndecl_31686 dsa_of_setup_routing_table fndecl 0 31686 NULL
164356 +enable_so_end_hdmi_pulse_31692 end hdmi_pulse 0 31692 NULL
164357 +enable_so_set_rxd_buffer_pointer_fndecl_31693 set_rxd_buffer_pointer fndecl 8 31693 NULL
164358 +enable_so_read_file_misc_fndecl_31695 read_file_misc fndecl 3 31695 NULL
164359 +enable_so_sr_write_cmd_async_fndecl_31698 sr_write_cmd_async fndecl 5 31698 NULL
164360 +enable_so_TargetsPerBus_aac_bus_info_response_31699 TargetsPerBus aac_bus_info_response 0 31699 NULL
164361 +enable_so_init_pipe_urbs_fndecl_31704 init_pipe_urbs fndecl 2-6 31704 NULL
164362 +enable_so_len_ib_ucm_lap_31705 len ib_ucm_lap 0 31705 NULL
164363 +enable_so_get_free_serial_index_fndecl_31714 get_free_serial_index fndecl 0 31714 NULL
164364 +enable_so_s5p_jpeg_compressed_size_fndecl_31715 s5p_jpeg_compressed_size fndecl 0 31715 NULL
164365 +enable_so_seg_count_ib_mad_send_buf_31716 seg_count ib_mad_send_buf 0 31716 NULL
164366 +enable_so_btrfs_add_link_fndecl_31718 btrfs_add_link fndecl 5 31718 NULL
164367 +enable_so_compat_import_iovec_fndecl_31721 compat_import_iovec fndecl 3 31721 NULL
164368 +enable_so_offset_nfs_pgio_args_31727 offset nfs_pgio_args 0 31727 NULL
164369 +enable_so_ext2_new_blocks_fndecl_31729 ext2_new_blocks fndecl 0-2 31729 NULL nohasharray
164370 +enable_so_channels_mask_sh_timer_config_31729 channels_mask sh_timer_config 0 31729 &enable_so_ext2_new_blocks_fndecl_31729
164371 +enable_so_recv_bm_rle_bits_fndecl_31731 recv_bm_rle_bits fndecl 4 31731 NULL
164372 +enable_so_nr_pages_rrpc_31736 nr_pages rrpc 0 31736 NULL nohasharray
164373 +enable_so_read_va_iser_hdr_31736 read_va iser_hdr 0 31736 &enable_so_nr_pages_rrpc_31736
164374 +enable_so_location_r5l_payload_data_parity_31741 location r5l_payload_data_parity 0 31741 NULL
164375 +enable_so_SyS_gethostname_fndecl_31743 SyS_gethostname fndecl 2 31743 NULL
164376 +enable_so_ih_ring_entry_size_kfd_device_info_31745 ih_ring_entry_size kfd_device_info 0 31745 NULL
164377 +enable_so_nxt200x_writereg_multibyte_fndecl_31757 nxt200x_writereg_multibyte fndecl 4 31757 NULL
164378 +enable_so_bio_readpage_error_fndecl_31761 bio_readpage_error fndecl 4-5 31761 NULL
164379 +enable_so_i_size_dio_31770 i_size dio 0 31770 NULL
164380 +enable_so_i40e_init_msix_fndecl_31776 i40e_init_msix fndecl 0 31776 NULL
164381 +enable_so_iommu_pgshift_gk20a_instmem_31778 iommu_pgshift gk20a_instmem 0 31778 NULL
164382 +enable_so_fore200e_chunk_alloc_fndecl_31782 fore200e_chunk_alloc fndecl 4-3 31782 NULL
164383 +enable_so_passdown_double_checking_shared_status_fndecl_31783 passdown_double_checking_shared_status fndecl 0 31783 NULL
164384 +enable_so_dev_config_fndecl_31785 dev_config fndecl 3 31785 NULL
164385 +enable_so_endpt_ubifs_scan_leb_31792 endpt ubifs_scan_leb 0 31792 NULL
164386 +enable_so_minix_V2_raw_inode_fndecl_31793 minix_V2_raw_inode fndecl 2 31793 NULL nohasharray
164387 +enable_so_irq_gpio_lpc_sch_info_31793 irq_gpio lpc_sch_info 0 31793 &enable_so_minix_V2_raw_inode_fndecl_31793 nohasharray
164388 +enable_so_afs_cell_lookup_fndecl_31793 afs_cell_lookup fndecl 2 31793 &enable_so_irq_gpio_lpc_sch_info_31793
164389 +enable_so_mml_isar_ch_31799 mml isar_ch 0 31799 NULL
164390 +enable_so_pcslen_udp_sock_31800 pcslen udp_sock 0 31800 NULL
164391 +enable_so_parent_i_pos_low_fat_fid_31802 parent_i_pos_low fat_fid 0 31802 NULL
164392 +enable_so_bg_inode_table_ext2_group_desc_31805 bg_inode_table ext2_group_desc 0 31805 NULL
164393 +enable_so_target_submit_cmd_map_sgls_fndecl_31806 target_submit_cmd_map_sgls fndecl 6-11-15 31806 NULL
164394 +enable_so_secure_dccp_sequence_number_fndecl_31815 secure_dccp_sequence_number fndecl 0 31815 NULL nohasharray
164395 +enable_so_track_pfn_insert_fndecl_31815 track_pfn_insert fndecl 3 31815 &enable_so_secure_dccp_sequence_number_fndecl_31815 nohasharray
164396 +enable_so_snd_malloc_sgbuf_pages_fndecl_31815 snd_malloc_sgbuf_pages fndecl 2 31815 &enable_so_track_pfn_insert_fndecl_31815
164397 +enable_so_NumPhys__MPI2_CONFIG_PAGE_EXPANDER_0_31816 NumPhys _MPI2_CONFIG_PAGE_EXPANDER_0 0 31816 NULL
164398 +enable_so_const_channel_count_hda_gen_spec_31817 const_channel_count hda_gen_spec 0 31817 NULL nohasharray
164399 +enable_so_spu_read_fndecl_31817 spu_read fndecl 4-0 31817 &enable_so_const_channel_count_hda_gen_spec_31817
164400 +enable_so___skb_get_poff_fndecl_31821 __skb_get_poff fndecl 0 31821 NULL
164401 +enable_so_needed_size_conf_writedata_31827 needed_size conf_writedata 0 31827 NULL
164402 +enable_so_fw_iocb_count_qla_hw_data_31830 fw_iocb_count qla_hw_data 0 31830 NULL
164403 +enable_so_byte_len_svc_rdma_op_ctxt_31832 byte_len svc_rdma_op_ctxt 0 31832 NULL nohasharray
164404 +enable_so_num_partition_entries__gpt_header_31832 num_partition_entries _gpt_header 0 31832 &enable_so_byte_len_svc_rdma_op_ctxt_31832
164405 +enable_so_num_tty_driver_31834 num tty_driver 0 31834 NULL
164406 +enable_so_mpls_rt_alloc_fndecl_31835 mpls_rt_alloc fndecl 1-2 31835 NULL
164407 +enable_so_locked_vm_mm_struct_31838 locked_vm mm_struct 0 31838 NULL nohasharray
164408 +enable_so_n_channels_efx_nic_31838 n_channels efx_nic 0 31838 &enable_so_locked_vm_mm_struct_31838
164409 +enable_so_opticon_process_data_packet_fndecl_31839 opticon_process_data_packet fndecl 3 31839 NULL
164410 +enable_so_ds_block_shift_logfs_disk_super_31840 ds_block_shift logfs_disk_super 0 31840 NULL
164411 +enable_so_cache_slow_downcall_fndecl_31849 cache_slow_downcall fndecl 2 31849 NULL
164412 +enable_so_sys_munlock_fndecl_31851 sys_munlock fndecl 1-2 31851 NULL
164413 +enable_so_isr_dma0_done_read_fndecl_31853 isr_dma0_done_read fndecl 3 31853 NULL
164414 +enable_so_vco_mult_arizona_fll_31858 vco_mult arizona_fll 0 31858 NULL
164415 +enable_so_msi2500_convert_stream_fndecl_31862 msi2500_convert_stream fndecl 0 31862 NULL
164416 +enable_so_LgLen_hfs_cat_file_31866 LgLen hfs_cat_file 0 31866 NULL
164417 +enable_so_profile_remove_fndecl_31871 profile_remove fndecl 3 31871 NULL
164418 +enable_so_maxp_usbhs_pipe_31872 maxp usbhs_pipe 0 31872 NULL
164419 +enable_so_gseg_gru_set_context_option_req_31876 gseg gru_set_context_option_req 0 31876 NULL
164420 +enable_so_i_lastfrag_ufs_inode_info_31879 i_lastfrag ufs_inode_info 0 31879 NULL
164421 +enable_so_sctp_user_addto_chunk_fndecl_31881 sctp_user_addto_chunk fndecl 2 31881 NULL
164422 +enable_so_reallocate_resource_fndecl_31885 reallocate_resource fndecl 3 31885 NULL
164423 +enable_so_first_user_ctxt_qib_devdata_31889 first_user_ctxt qib_devdata 0 31889 NULL
164424 +enable_so_max_tasks_bnx2fc_hba_31893 max_tasks bnx2fc_hba 0 31893 NULL
164425 +enable_so_tower_write_fndecl_31895 tower_write fndecl 3 31895 NULL
164426 +enable_so_max_packet_size_snd_line6_pcm_31899 max_packet_size snd_line6_pcm 0 31899 NULL
164427 +enable_so_ieee80211_get_hdrlen_from_buf_fndecl_31900 ieee80211_get_hdrlen_from_buf fndecl 0 31900 NULL
164428 +enable_so_size_macb_tx_skb_31904 size macb_tx_skb 0 31904 NULL
164429 +enable_so_vram_vardecl_atyfb_base_c_31909 vram vardecl_atyfb_base.c 0 31909 NULL nohasharray
164430 +enable_so_lengthExtendedAttr_fileEntry_31909 lengthExtendedAttr fileEntry 0 31909 &enable_so_vram_vardecl_atyfb_base_c_31909
164431 +enable_so_it821x_firmware_command_fndecl_31911 it821x_firmware_command fndecl 3 31911 NULL
164432 +enable_so_num_packets_em28xx_usb_bufs_31912 num_packets em28xx_usb_bufs 0 31912 NULL nohasharray
164433 +enable_so_rxkad_secure_packet_fndecl_31912 rxkad_secure_packet fndecl 3 31912 &enable_so_num_packets_em28xx_usb_bufs_31912
164434 +enable_so_drvr_qdepth_blogic_adapter_31915 drvr_qdepth blogic_adapter 0 31915 NULL nohasharray
164435 +enable_so_scsi_dma_map_fndecl_31915 scsi_dma_map fndecl 0 31915 &enable_so_drvr_qdepth_blogic_adapter_31915
164436 +enable_so_mtu_gsm_mux_31917 mtu gsm_mux 0 31917 NULL
164437 +enable_so_fuse_send_write_pages_fndecl_31919 fuse_send_write_pages fndecl 0-5 31919 NULL
164438 +enable_so_db_to_fdindex_xfs_dir_ops_31920 db_to_fdindex xfs_dir_ops 0 31920 NULL
164439 +enable_so_bus_bm_wait_for_ack_i2400m_31925 bus_bm_wait_for_ack i2400m 0 31925 NULL
164440 +enable_so_cfs_cpt_number_fndecl_31929 cfs_cpt_number fndecl 0 31929 NULL
164441 +enable_so_physical_block_size_scsi_disk_31931 physical_block_size scsi_disk 0 31931 NULL
164442 +enable_so_rmmio_size_radeon_device_31934 rmmio_size radeon_device 0 31934 NULL
164443 +enable_so_mthca_rate_to_ib_fndecl_31936 mthca_rate_to_ib fndecl 0 31936 NULL nohasharray
164444 +enable_so_tool_spad_read_fndecl_31936 tool_spad_read fndecl 3 31936 &enable_so_mthca_rate_to_ib_fndecl_31936
164445 +enable_so_channel_iio_chan_spec_31939 channel iio_chan_spec 0 31939 NULL nohasharray
164446 +enable_so_mesh_rx_plink_frame_fndecl_31939 mesh_rx_plink_frame fndecl 3 31939 &enable_so_channel_iio_chan_spec_31939
164447 +enable_so_mlx5_vzalloc_fndecl_31940 mlx5_vzalloc fndecl 1 31940 NULL
164448 +enable_so_ptr_i915_gem_userptr_31948 ptr i915_gem_userptr 0 31948 NULL
164449 +enable_so__read_mtd_info_31950 _read mtd_info 0 31950 NULL
164450 +enable_so_buf_height_tpg_data_31953 buf_height tpg_data 0 31953 NULL
164451 +enable_so_udp6_gro_complete_fndecl_31954 udp6_gro_complete fndecl 2 31954 NULL
164452 +enable_so_usHSyncOffset__ATOM_DTD_FORMAT_31956 usHSyncOffset _ATOM_DTD_FORMAT 0 31956 NULL
164453 +enable_so_ufs_add_fragments_fndecl_31963 ufs_add_fragments fndecl 2-0 31963 NULL nohasharray
164454 +enable_so_ieee80211_if_write_tdls_wider_bw_fndecl_31963 ieee80211_if_write_tdls_wider_bw fndecl 3 31963 &enable_so_ufs_add_fragments_fndecl_31963
164455 +enable_so_isdn_tty_write_fndecl_31972 isdn_tty_write fndecl 3 31972 NULL
164456 +enable_so_se_dev_align_max_sectors_fndecl_31975 se_dev_align_max_sectors fndecl 0-2-1 31975 NULL
164457 +enable_so_buffer_max_vardecl_floppy_c_31976 buffer_max vardecl_floppy.c 0 31976 NULL
164458 +enable_so_i_size_read_fndecl_31980 i_size_read fndecl 0 31980 NULL
164459 +enable_so_arcfb_write_fndecl_31981 arcfb_write fndecl 3 31981 NULL
164460 +enable_so_max_commands_ctlr_info_31984 max_commands ctlr_info 0 31984 NULL
164461 +enable_so_record_size_ramoops_context_31989 record_size ramoops_context 0 31989 NULL nohasharray
164462 +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
164463 +enable_so_lbs_bcnmiss_read_fndecl_31989 lbs_bcnmiss_read fndecl 3 31989 &enable_so_flash_offset_jffs2_raw_node_ref_31989
164464 +enable_so_e_blocks_omfs_extent_entry_31992 e_blocks omfs_extent_entry 0 31992 NULL
164465 +enable_so_link_duplex_qlcnic_hardware_context_31996 link_duplex qlcnic_hardware_context 0 31996 NULL
164466 +enable_so_rproc_trace_read_fndecl_31997 rproc_trace_read fndecl 3 31997 NULL
164467 +enable_so_isofs_get_block_fndecl_32000 isofs_get_block fndecl 2 32000 NULL
164468 +enable_so_blocksize_sddr09_card_info_32003 blocksize sddr09_card_info 0 32003 NULL nohasharray
164469 +enable_so_bg_next_group_ocfs2_group_desc_32003 bg_next_group ocfs2_group_desc 0 32003 &enable_so_blocksize_sddr09_card_info_32003 nohasharray
164470 +enable_so_bfad_iocmd_port_enable_fndecl_32003 bfad_iocmd_port_enable fndecl 0 32003 &enable_so_bg_next_group_ocfs2_group_desc_32003
164471 +enable_so_ss_descs_count_ffs_data_32006 ss_descs_count ffs_data 0 32006 NULL
164472 +enable_so_play_iframe_fndecl_32008 play_iframe fndecl 3 32008 NULL
164473 +enable_so_ad7879_spi_multi_read_fndecl_32009 ad7879_spi_multi_read fndecl 3 32009 NULL
164474 +enable_so_size_tiger_dma_32013 size tiger_dma 0 32013 NULL nohasharray
164475 +enable_so_elants_i2c_read_fndecl_32013 elants_i2c_read fndecl 3 32013 &enable_so_size_tiger_dma_32013
164476 +enable_so_m_lblk_f2fs_map_blocks_32016 m_lblk f2fs_map_blocks 0 32016 NULL
164477 +enable_so_blocksize_udf_options_32019 blocksize udf_options 0 32019 NULL
164478 +enable_so_depth_zr364xx_fmt_32028 depth zr364xx_fmt 0 32028 NULL
164479 +enable_so_recent_mt_proc_write_fndecl_32029 recent_mt_proc_write fndecl 3 32029 NULL
164480 +enable_so_check_xattr_ref_inode_fndecl_32039 check_xattr_ref_inode fndecl 0 32039 NULL
164481 +enable_so_base_efifb_dmi_info_32041 base efifb_dmi_info 0 32041 NULL
164482 +enable_so_balloon_set_new_target_fndecl_32044 balloon_set_new_target fndecl 1 32044 NULL
164483 +enable_so_next_free_pstore_32049 next_free pstore 0 32049 NULL
164484 +enable_so_kvm_mmu_page_set_gfn_fndecl_32050 kvm_mmu_page_set_gfn fndecl 2 32050 NULL
164485 +enable_so_g_num_of_iommus_vardecl_intel_iommu_c_32059 g_num_of_iommus vardecl_intel-iommu.c 0 32059 NULL
164486 +enable_so_assoc_sta_del_all_sta_32069 assoc_sta del_all_sta 0 32069 NULL
164487 +enable_so_config_size_nd_cmd_get_config_size_32073 config_size nd_cmd_get_config_size 0 32073 NULL
164488 +enable_so_rproc_recovery_write_fndecl_32074 rproc_recovery_write fndecl 3 32074 NULL
164489 +enable_so_add_rx_skb_fndecl_32082 add_rx_skb fndecl 3 32082 NULL
164490 +enable_so_s_first_data_block_nilfs_super_block_32083 s_first_data_block nilfs_super_block 0 32083 NULL nohasharray
164491 +enable_so_chunk_size_irctl_32083 chunk_size irctl 0 32083 &enable_so_s_first_data_block_nilfs_super_block_32083
164492 +enable_so_ip6_tnl_err_fndecl_32086 ip6_tnl_err fndecl 8 32086 NULL nohasharray
164493 +enable_so_t3_init_l2t_fndecl_32086 t3_init_l2t fndecl 1 32086 &enable_so_ip6_tnl_err_fndecl_32086
164494 +enable_so_omfs_clear_range_fndecl_32087 omfs_clear_range fndecl 2 32087 NULL
164495 +enable_so_write_tty_ldisc_ops_32094 write tty_ldisc_ops 0 32094 NULL
164496 +enable_so_ocfs2_ilookup_fndecl_32100 ocfs2_ilookup fndecl 2 32100 NULL
164497 +enable_so_pci_scan_slot_fndecl_32102 pci_scan_slot fndecl 2 32102 NULL
164498 +enable_so_rate_min_audioformat_32106 rate_min audioformat 0 32106 NULL
164499 +enable_so_offset_p9_fcall_32116 offset p9_fcall 0 32116 NULL nohasharray
164500 +enable_so_jffs2_sum_scan_sumnode_fndecl_32116 jffs2_sum_scan_sumnode fndecl 4 32116 &enable_so_offset_p9_fcall_32116
164501 +enable_so_config_rom_length_fw_device_32117 config_rom_length fw_device 0 32117 NULL
164502 +enable_so_height_drm_mode_fb_cmd2_32120 height drm_mode_fb_cmd2 0 32120 NULL
164503 +enable_so_rcvegrcnt_qib_ctxtdata_32127 rcvegrcnt qib_ctxtdata 0 32127 NULL
164504 +enable_so_ip6_make_skb_fndecl_32129 ip6_make_skb fndecl 5-4 32129 NULL nohasharray
164505 +enable_so_first_slot_vardecl_cpcihp_generic_c_32129 first_slot vardecl_cpcihp_generic.c 0 32129 &enable_so_ip6_make_skb_fndecl_32129
164506 +enable_so_sb_gquotino_xfs_sb_32131 sb_gquotino xfs_sb 0 32131 NULL
164507 +enable_so_sync_request_fndecl_32141 sync_request fndecl 2 32141 NULL nohasharray
164508 +enable_so_fsector_t_vardecl_floppy_c_32141 fsector_t vardecl_floppy.c 0 32141 &enable_so_sync_request_fndecl_32141
164509 +enable_so_prof_shift_vardecl_profile_c_32143 prof_shift vardecl_profile.c 0 32143 NULL
164510 +enable_so_mlx4_en_complete_rx_desc_fndecl_32150 mlx4_en_complete_rx_desc fndecl 0 32150 NULL
164511 +enable_so_ipwireless_send_packet_fndecl_32155 ipwireless_send_packet fndecl 4 32155 NULL
164512 +enable_so_s_clustersize_ocfs2_super_32156 s_clustersize ocfs2_super 0 32156 NULL nohasharray
164513 +enable_so_pwm_buf_sz_usbduxsigma_private_32156 pwm_buf_sz usbduxsigma_private 0 32156 &enable_so_s_clustersize_ocfs2_super_32156
164514 +enable_so_num_entries_msg_get_chap_32158 num_entries msg_get_chap 0 32158 NULL
164515 +enable_so_insert_zbranch_fndecl_32159 insert_zbranch fndecl 3 32159 NULL
164516 +enable_so_max_recv_dlength_iscsi_conn_32168 max_recv_dlength iscsi_conn 0 32168 NULL
164517 +enable_so_current_pages_balloon_stats_32169 current_pages balloon_stats 0 32169 NULL
164518 +enable_so_nfs41_maxwrite_overhead_vardecl_32172 nfs41_maxwrite_overhead vardecl 0 32172 NULL
164519 +enable_so_length_vring_rx_dma_32178 length vring_rx_dma 0 32178 NULL
164520 +enable_so_resp_format_pg_fndecl_32182 resp_format_pg fndecl 0 32182 NULL
164521 +enable_so_vmalloc_usercopy_fndecl_32186 vmalloc_usercopy fndecl 1 32186 NULL
164522 +enable_so_ping_getfrag_fndecl_32187 ping_getfrag fndecl 4 32187 NULL
164523 +enable_so_init_page_buffers_fndecl_32189 init_page_buffers fndecl 3 32189 NULL nohasharray
164524 +enable_so_len_sigma_action_32189 len sigma_action 0 32189 &enable_so_init_page_buffers_fndecl_32189
164525 +enable_so_tail_len_beacon_data_32194 tail_len beacon_data 0 32194 NULL
164526 +enable_so_batadv_bla_tx_fndecl_32195 batadv_bla_tx fndecl 3 32195 NULL
164527 +enable_so_s_system_dir_blkno_ocfs2_super_block_32196 s_system_dir_blkno ocfs2_super_block 0 32196 NULL
164528 +enable_so_smk_write_change_rule_fndecl_32200 smk_write_change_rule fndecl 3 32200 NULL
164529 +enable_so_ioat_alloc_ring_fndecl_32201 ioat_alloc_ring fndecl 2 32201 NULL
164530 +enable_so_nr_registers_ioapic_32204 nr_registers ioapic 0 32204 NULL
164531 +enable_so_len_bnep_ext_hdr_32205 len bnep_ext_hdr 0 32205 NULL
164532 +enable_so_dma_buf_size_tegra_slink_data_32206 dma_buf_size tegra_slink_data 0 32206 NULL
164533 +enable_so_ocfs2_decrease_refcount_rec_fndecl_32210 ocfs2_decrease_refcount_rec fndecl 6-7 32210 NULL
164534 +enable_so_k_offset_in_core_key_32212 k_offset in_core_key 0 32212 NULL
164535 +enable_so_seq_hex_dump_fndecl_32213 seq_hex_dump fndecl 7-4-5 32213 NULL
164536 +enable_so_num_sbs_pf_vf_resc_32216 num_sbs pf_vf_resc 0 32216 NULL nohasharray
164537 +enable_so_xdi_copy_from_user_fndecl_32216 xdi_copy_from_user fndecl 4 32216 &enable_so_num_sbs_pf_vf_resc_32216
164538 +enable_so_mag_length_ssp_sensorhub_info_32219 mag_length ssp_sensorhub_info 0 32219 NULL
164539 +enable_so_residual_task_status_struct_32220 residual task_status_struct 0 32220 NULL
164540 +enable_so_count_igb_ring_32225 count igb_ring 0 32225 NULL
164541 +enable_so_sys_munmap_fndecl_32226 sys_munmap fndecl 1-2 32226 NULL
164542 +enable_so_fragments_snd_compressed_buffer_32230 fragments snd_compressed_buffer 0 32230 NULL
164543 +enable_so_endpoint_usbatm_channel_32232 endpoint usbatm_channel 0 32232 NULL
164544 +enable_so_generic_bin_search_fndecl_32235 generic_bin_search fndecl 0 32235 NULL
164545 +enable_so_ts_packet_count_cx8802_dev_32239 ts_packet_count cx8802_dev 0 32239 NULL
164546 +enable_so_nasync_board_t_32240 nasync board_t 0 32240 NULL
164547 +enable_so_roccat_common2_sysfs_read_fndecl_32252 roccat_common2_sysfs_read fndecl 6 32252 NULL
164548 +enable_so_n_ids_vport_portids_32258 n_ids vport_portids 0 32258 NULL
164549 +enable_so_fsl_qspi_read_fndecl_32259 fsl_qspi_read fndecl 3-2 32259 NULL
164550 +enable_so_report_count_hid_global_32260 report_count hid_global 0 32260 NULL
164551 +enable_so_sony_register_touchpad_fndecl_32262 sony_register_touchpad fndecl 2 32262 NULL
164552 +enable_so_msb_verify_block_fndecl_32264 msb_verify_block fndecl 0-2 32264 NULL nohasharray
164553 +enable_so_oslec_create_fndecl_32264 oslec_create fndecl 1 32264 &enable_so_msb_verify_block_fndecl_32264
164554 +enable_so_venus_mkdir_fndecl_32276 venus_mkdir fndecl 4 32276 NULL
164555 +enable_so_qib_qsfp_dump_fndecl_32277 qib_qsfp_dump fndecl 0 32277 NULL
164556 +enable_so___v4l2_ctrl_s_ctrl_fndecl_32278 __v4l2_ctrl_s_ctrl fndecl 2 32278 NULL nohasharray
164557 +enable_so_buf_len_lpfc_sli_config_hbd_32278 buf_len lpfc_sli_config_hbd 0 32278 &enable_so___v4l2_ctrl_s_ctrl_fndecl_32278
164558 +enable_so_usb_allocate_stream_buffers_fndecl_32279 usb_allocate_stream_buffers fndecl 3 32279 NULL
164559 +enable_so_find_num_cache_leaves_fndecl_32280 find_num_cache_leaves fndecl 0 32280 NULL
164560 +enable_so_mapsize_uart_port_32282 mapsize uart_port 0 32282 NULL
164561 +enable_so_vol_cdev_read_fndecl_32283 vol_cdev_read fndecl 3 32283 NULL nohasharray
164562 +enable_so_seq_open_net_fndecl_32283 seq_open_net fndecl 4 32283 &enable_so_vol_cdev_read_fndecl_32283
164563 +enable_so_get_pipes_fndecl_32291 get_pipes fndecl 0 32291 NULL
164564 +enable_so_num_gpes_vardecl_sysfs_c_32294 num_gpes vardecl_sysfs.c 0 32294 NULL
164565 +enable_so_IA_TX_BUF_SZ_vardecl_iphase_c_32295 IA_TX_BUF_SZ vardecl_iphase.c 0 32295 NULL nohasharray
164566 +enable_so_dma_size_sst_pdata_32295 dma_size sst_pdata 0 32295 &enable_so_IA_TX_BUF_SZ_vardecl_iphase_c_32295
164567 +enable_so_rept_size_usbtouch_device_info_32306 rept_size usbtouch_device_info 0 32306 NULL
164568 +enable_so_sizeof_namespace_index_fndecl_32312 sizeof_namespace_index fndecl 0 32312 NULL
164569 +enable_so_snd_info_text_entry_write_fndecl_32315 snd_info_text_entry_write fndecl 3 32315 NULL
164570 +enable_so_nla_put_fndecl_32321 nla_put fndecl 3 32321 NULL
164571 +enable_so_khugepaged_scan_pmd_fndecl_32330 khugepaged_scan_pmd fndecl 3 32330 NULL
164572 +enable_so_bochs_ttm_tt_create_fndecl_32333 bochs_ttm_tt_create fndecl 2 32333 NULL nohasharray
164573 +enable_so_datablock_size_btrfsic_state_32333 datablock_size btrfsic_state 0 32333 &enable_so_bochs_ttm_tt_create_fndecl_32333
164574 +enable_so_mem_start_net_device_32337 mem_start net_device 0 32337 NULL
164575 +enable_so_fd_ioctl_fndecl_32343 fd_ioctl fndecl 3 32343 NULL
164576 +enable_so_fib_info_hash_alloc_fndecl_32352 fib_info_hash_alloc fndecl 1 32352 NULL
164577 +enable_so_scrub_raid56_parity_fndecl_32354 scrub_raid56_parity fndecl 5 32354 NULL nohasharray
164578 +enable_so_brcmf_fws_hdrpull_fndecl_32354 brcmf_fws_hdrpull fndecl 2 32354 &enable_so_scrub_raid56_parity_fndecl_32354
164579 +enable_so_max_q_vectors_ixgbe_adapter_32359 max_q_vectors ixgbe_adapter 0 32359 NULL
164580 +enable_so_end_crash_mem_range_32361 end crash_mem_range 0 32361 NULL
164581 +enable_so_netlbl_catmap_setlong_fndecl_32363 netlbl_catmap_setlong fndecl 2 32363 NULL nohasharray
164582 +enable_so_backlight_sd_gl860_32363 backlight sd_gl860 0 32363 &enable_so_netlbl_catmap_setlong_fndecl_32363
164583 +enable_so_datalen_ncp_request_reply_32365 datalen ncp_request_reply 0 32365 NULL
164584 +enable_so_xfs_setfilesize_fndecl_32370 xfs_setfilesize fndecl 4-3 32370 NULL
164585 +enable_so_snd_gus_dram_peek_fndecl_32373 snd_gus_dram_peek fndecl 4 32373 NULL
164586 +enable_so_snd_emu10k1_synth_copy_from_user_fndecl_32374 snd_emu10k1_synth_copy_from_user fndecl 5-3 32374 NULL
164587 +enable_so_hci_req_add_fndecl_32376 hci_req_add fndecl 3 32376 NULL
164588 +enable_so_transport_get_sectors_16_fndecl_32385 transport_get_sectors_16 fndecl 0 32385 NULL
164589 +enable_so_datablk_xfs_da_geometry_32386 datablk xfs_da_geometry 0 32386 NULL
164590 +enable_so_header_size_smb_version_values_32387 header_size smb_version_values 0 32387 NULL
164591 +enable_so_INFTL_formatblock_fndecl_32390 INFTL_formatblock fndecl 2 32390 NULL
164592 +enable_so_adxl34x_spi_read_block_fndecl_32391 adxl34x_spi_read_block fndecl 3 32391 NULL
164593 +enable_so_reco_default_priority_be_async_event_grp5_cos_priority_32392 reco_default_priority be_async_event_grp5_cos_priority 0 32392 NULL
164594 +enable_so_offset_pnfs_layout_range_32403 offset pnfs_layout_range 0 32403 NULL nohasharray
164595 +enable_so_create_queues_fndecl_32403 create_queues fndecl 3-2 32403 &enable_so_offset_pnfs_layout_range_32403
164596 +enable_so_ftdi_prepare_write_buffer_fndecl_32406 ftdi_prepare_write_buffer fndecl 3 32406 NULL
164597 +enable_so_cont_add_fndecl_32409 cont_add fndecl 4 32409 NULL
164598 +enable_so_agbno_xfs_alloc_arg_32410 agbno xfs_alloc_arg 0 32410 NULL
164599 +enable_so_ext4_list_backups_fndecl_32417 ext4_list_backups fndecl 0 32417 NULL
164600 +enable_so_nxt200x_readreg_multibyte_fndecl_32418 nxt200x_readreg_multibyte fndecl 4 32418 NULL
164601 +enable_so_ci_rsbtbl_size_dlm_config_info_32423 ci_rsbtbl_size dlm_config_info 0 32423 NULL
164602 +enable_so_srpt_build_tskmgmt_rsp_fndecl_32427 srpt_build_tskmgmt_rsp fndecl 0 32427 NULL
164603 +enable_so_qib_skip_sge_fndecl_32432 qib_skip_sge fndecl 2 32432 NULL
164604 +enable_so_di_next_index_dinode_32437 di_next_index dinode 0 32437 NULL nohasharray
164605 +enable_so_xs_udp_set_buffer_size_fndecl_32437 xs_udp_set_buffer_size fndecl 2 32437 &enable_so_di_next_index_dinode_32437 nohasharray
164606 +enable_so_gso_size_xenvif_rx_meta_32437 gso_size xenvif_rx_meta 0 32437 &enable_so_xs_udp_set_buffer_size_fndecl_32437
164607 +enable_so_btrfs_get_extent_fndecl_32440 btrfs_get_extent fndecl 4-3-5 32440 NULL nohasharray
164608 +enable_so_truncated_len_btrfs_ordered_extent_32440 truncated_len btrfs_ordered_extent 0 32440 &enable_so_btrfs_get_extent_fndecl_32440
164609 +enable_so_t_blk_res_used_xfs_trans_32443 t_blk_res_used xfs_trans 0 32443 NULL
164610 +enable_so_mlx4_alloc_resize_umem_fndecl_32447 mlx4_alloc_resize_umem fndecl 3 32447 NULL
164611 +enable_so_permission_inode_operations_32455 permission inode_operations 0 32455 NULL
164612 +enable_so_ext4_da_write_inline_data_end_fndecl_32456 ext4_da_write_inline_data_end fndecl 2-4 32456 NULL
164613 +enable_so_snd_buf_bytes_vardecl_usbatm_c_32457 snd_buf_bytes vardecl_usbatm.c 0 32457 NULL
164614 +enable_so_isr_irqs_read_fndecl_32462 isr_irqs_read fndecl 3 32462 NULL nohasharray
164615 +enable_so_ddata_ofs_cyttsp4_sysinfo_ofs_32462 ddata_ofs cyttsp4_sysinfo_ofs 0 32462 &enable_so_isr_irqs_read_fndecl_32462
164616 +enable_so_neighbormtu_mastersmsl_ib_port_info_32464 neighbormtu_mastersmsl ib_port_info 0 32464 NULL
164617 +enable_so_blk_execute_rq_fndecl_32470 blk_execute_rq fndecl 0 32470 NULL nohasharray
164618 +enable_so_out_kvec_left_ceph_connection_32470 out_kvec_left ceph_connection 0 32470 &enable_so_blk_execute_rq_fndecl_32470
164619 +enable_so_start_ordered_ops_fndecl_32475 start_ordered_ops fndecl 2-3 32475 NULL
164620 +enable_so_skb_shift_fndecl_32480 skb_shift fndecl 3 32480 NULL
164621 +enable_so_flctl_dma_fifo0_transfer_fndecl_32481 flctl_dma_fifo0_transfer fndecl 3 32481 NULL nohasharray
164622 +enable_so_j_len_reiserfs_journal_desc_32481 j_len reiserfs_journal_desc 0 32481 &enable_so_flctl_dma_fifo0_transfer_fndecl_32481
164623 +enable_so_sigmadsp_write_i2c_fndecl_32482 sigmadsp_write_i2c fndecl 4 32482 NULL
164624 +enable_so_s_fshift_ufs_sb_private_info_32491 s_fshift ufs_sb_private_info 0 32491 NULL
164625 +enable_so_posix_acl_xattr_set_fndecl_32497 posix_acl_xattr_set fndecl 5 32497 NULL
164626 +enable_so_read_pci_config_16_fndecl_32499 read_pci_config_16 fndecl 0 32499 NULL
164627 +enable_so_reply_nvif_notify_req_v0_32501 reply nvif_notify_req_v0 0 32501 NULL
164628 +enable_so_altera_swap_ir_fndecl_32505 altera_swap_ir fndecl 2 32505 NULL nohasharray
164629 +enable_so_alloc_group_attrs_fndecl_32505 alloc_group_attrs fndecl 2 32505 &enable_so_altera_swap_ir_fndecl_32505
164630 +enable_so_opa_smi_get_fwd_port_fndecl_32506 opa_smi_get_fwd_port fndecl 0 32506 NULL nohasharray
164631 +enable_so_lmLogFormat_fndecl_32506 lmLogFormat fndecl 2 32506 &enable_so_opa_smi_get_fwd_port_fndecl_32506 nohasharray
164632 +enable_so_acpi_unmap_fndecl_32506 acpi_unmap fndecl 1 32506 &enable_so_lmLogFormat_fndecl_32506
164633 +enable_so_num_tgtdevs_btrfs_bio_32507 num_tgtdevs btrfs_bio 0 32507 NULL
164634 +enable_so_transport_get_sectors_12_fndecl_32508 transport_get_sectors_12 fndecl 0 32508 NULL
164635 +enable_so_gx1_gx_base_fndecl_32509 gx1_gx_base fndecl 0 32509 NULL
164636 +enable_so_set_16kib_bfsize_stmmac_mode_ops_32520 set_16kib_bfsize stmmac_mode_ops 0 32520 NULL
164637 +enable_so_fc_flogi_acc_build_fndecl_32521 fc_flogi_acc_build fndecl 7-9 32521 NULL nohasharray
164638 +enable_so_f_dupfd_fndecl_32521 f_dupfd fndecl 1 32521 &enable_so_fc_flogi_acc_build_fndecl_32521
164639 +enable_so_jffs2_acl_count_fndecl_32522 jffs2_acl_count fndecl 0-1 32522 NULL
164640 +enable_so_asrc_rate_fsl_asoc_card_priv_32525 asrc_rate fsl_asoc_card_priv 0 32525 NULL nohasharray
164641 +enable_so_frameoffset_b43_dmaring_32525 frameoffset b43_dmaring 0 32525 &enable_so_asrc_rate_fsl_asoc_card_priv_32525
164642 +enable_so_map_iommu_fndecl_32528 map_iommu fndecl 2 32528 NULL
164643 +enable_so_BBAR_rio_detail_32529 BBAR rio_detail 0 32529 NULL
164644 +enable_so_xenvif_max_queues_vardecl_32530 xenvif_max_queues vardecl 0 32530 NULL
164645 +enable_so_HDLC_irq_fndecl_32534 HDLC_irq fndecl 2 32534 NULL nohasharray
164646 +enable_so_num_comp_vectors_mlx4_caps_32534 num_comp_vectors mlx4_caps 0 32534 &enable_so_HDLC_irq_fndecl_32534
164647 +enable_so_ctrl_out_fndecl_32539 ctrl_out fndecl 5-3 32539 NULL
164648 +enable_so_ev_next_dev_data_32542 ev_next dev_data 0 32542 NULL
164649 +enable_so_wm8900_set_dai_pll_fndecl_32543 wm8900_set_dai_pll fndecl 4-5 32543 NULL
164650 +enable_so_rq_auth_slack_svc_rqst_32548 rq_auth_slack svc_rqst 0 32548 NULL
164651 +enable_so_TransferCount__MSG_SCSI_IO_REPLY_32554 TransferCount _MSG_SCSI_IO_REPLY 0 32554 NULL nohasharray
164652 +enable_so_yurex_write_fndecl_32554 yurex_write fndecl 3 32554 &enable_so_TransferCount__MSG_SCSI_IO_REPLY_32554
164653 +enable_so_x32_arch_ptrace_fndecl_32556 x32_arch_ptrace fndecl 3 32556 NULL
164654 +enable_so_sys_prctl_fndecl_32557 sys_prctl fndecl 3-4 32557 NULL
164655 +enable_so_pkey_table_len_mlx5_port_caps_32558 pkey_table_len mlx5_port_caps 0 32558 NULL nohasharray
164656 +enable_so_joydev_compat_ioctl_fndecl_32558 joydev_compat_ioctl fndecl 2 32558 &enable_so_pkey_table_len_mlx5_port_caps_32558
164657 +enable_so_bcd2000_midi_handle_input_fndecl_32572 bcd2000_midi_handle_input fndecl 3 32572 NULL
164658 +enable_so_tx_tx_exch_expiry_read_fndecl_32574 tx_tx_exch_expiry_read fndecl 3 32574 NULL nohasharray
164659 +enable_so_syt_interval_amdtp_stream_32574 syt_interval amdtp_stream 0 32574 &enable_so_tx_tx_exch_expiry_read_fndecl_32574
164660 +enable_so_iov_iter_zero_fndecl_32575 iov_iter_zero fndecl 1-0 32575 NULL
164661 +enable_so_ext4_try_to_write_inline_data_fndecl_32578 ext4_try_to_write_inline_data fndecl 4-3 32578 NULL
164662 +enable_so_msg_print_ext_header_fndecl_32580 msg_print_ext_header fndecl 0 32580 NULL
164663 +enable_so_check_right_item_operations_32585 check_right item_operations 0 32585 NULL nohasharray
164664 +enable_so_fnic_fc_trace_get_data_fndecl_32585 fnic_fc_trace_get_data fndecl 0 32585 &enable_so_check_right_item_operations_32585
164665 +enable_so_bop_assign_nilfs_bmap_operations_32598 bop_assign nilfs_bmap_operations 0 32598 NULL
164666 +enable_so_paging32_prefetch_gpte_fndecl_32604 paging32_prefetch_gpte fndecl 4 32604 NULL
164667 +enable_so_channel_num_sh_dmae_pdata_32606 channel_num sh_dmae_pdata 0 32606 NULL
164668 +enable_so_resp_len_brcmf_cfg80211_assoc_ielen_le_32607 resp_len brcmf_cfg80211_assoc_ielen_le 0 32607 NULL
164669 +enable_so_vlan_tag_atl1c_recv_ret_status_32608 vlan_tag atl1c_recv_ret_status 0 32608 NULL nohasharray
164670 +enable_so__osd_req_encode_common_fndecl_32608 _osd_req_encode_common fndecl 2 32608 &enable_so_vlan_tag_atl1c_recv_ret_status_32608
164671 +enable_so_maxdevUnits_ore_striping_info_32610 maxdevUnits ore_striping_info 0 32610 NULL
164672 +enable_so_metronomefb_write_fndecl_32612 metronomefb_write fndecl 3 32612 NULL
164673 +enable_so_xennet_make_one_txreq_fndecl_32614 xennet_make_one_txreq fndecl 3-2 32614 NULL
164674 +enable_so_ceph_osd_data_length_fndecl_32615 ceph_osd_data_length fndecl 0 32615 NULL
164675 +enable_so_hfsplus_direct_IO_fndecl_32619 hfsplus_direct_IO fndecl 3 32619 NULL nohasharray
164676 +enable_so_SyS_llistxattr_fndecl_32619 SyS_llistxattr fndecl 3 32619 &enable_so_hfsplus_direct_IO_fndecl_32619
164677 +enable_so_ntfs_commit_pages_after_write_fndecl_32634 ntfs_commit_pages_after_write fndecl 0-4-3 32634 NULL
164678 +enable_so_pagesz_cifs_writedata_32638 pagesz cifs_writedata 0 32638 NULL
164679 +enable_so_do_page_add_anon_rmap_fndecl_32642 do_page_add_anon_rmap fndecl 3 32642 NULL
164680 +enable_so_digest_decode_fndecl_32644 digest_decode fndecl 0 32644 NULL
164681 +enable_so_wa_nep_queue_fndecl_32649 wa_nep_queue fndecl 2 32649 NULL
164682 +enable_so_phys_sca_base__synclinkmp_info_32654 phys_sca_base _synclinkmp_info 0 32654 NULL
164683 +enable_so_mgmt_generic_event_fndecl_32657 mgmt_generic_event fndecl 4 32657 NULL nohasharray
164684 +enable_so_dvb_ringbuffer_pkt_next_fndecl_32657 dvb_ringbuffer_pkt_next fndecl 0-2 32657 &enable_so_mgmt_generic_event_fndecl_32657
164685 +enable_so_icmpv6_manip_pkt_fndecl_32658 icmpv6_manip_pkt fndecl 4 32658 NULL
164686 +enable_so_mmc_wait_for_cmd_fndecl_32659 mmc_wait_for_cmd fndecl 0 32659 NULL
164687 +enable_so_nrof_flowrings_brcmf_msgbuf_32666 nrof_flowrings brcmf_msgbuf 0 32666 NULL
164688 +enable_so_rtsx_usb_transfer_data_fndecl_32669 rtsx_usb_transfer_data fndecl 4-2-0-5 32669 NULL
164689 +enable_so_compressed_bio_size_fndecl_32676 compressed_bio_size fndecl 0-2 32676 NULL
164690 +enable_so_engine_start_viafb_dev_32681 engine_start viafb_dev 0 32681 NULL
164691 +enable_so_length_ib_umem_32690 length ib_umem 0 32690 NULL
164692 +enable_so_radeon_drm_ioctl_fndecl_32696 radeon_drm_ioctl fndecl 2 32696 NULL
164693 +enable_so_ubifs_prepare_node_fndecl_32700 ubifs_prepare_node fndecl 3 32700 NULL
164694 +enable_so_ext4_get_block_dax_fndecl_32702 ext4_get_block_dax fndecl 2 32702 NULL
164695 +enable_so_write_file_ani_fndecl_32709 write_file_ani fndecl 3 32709 NULL
164696 +enable_so_dma_common_contiguous_remap_fndecl_32714 dma_common_contiguous_remap fndecl 2 32714 NULL
164697 +enable_so_size_hid_report_32715 size hid_report 0 32715 NULL
164698 +enable_so_layout_commit_fndecl_32717 layout_commit fndecl 3 32717 NULL
164699 +enable_so_f71882fg_device_add_fndecl_32719 f71882fg_device_add fndecl 1 32719 NULL
164700 +enable_so_residual_len_sts_entry_24xx_32720 residual_len sts_entry_24xx 0 32720 NULL
164701 +enable_so_ks8995_registers_read_fndecl_32738 ks8995_registers_read fndecl 6 32738 NULL
164702 +enable_so_driver_stats_read_fndecl_32739 driver_stats_read fndecl 3 32739 NULL
164703 +enable_so_goto_low_power_fndecl_32741 goto_low_power fndecl 0 32741 NULL
164704 +enable_so_requested_nr_virtfn_bnx2x_32742 requested_nr_virtfn bnx2x 0 32742 NULL
164705 +enable_so_read_file_tgt_stats_fndecl_32748 read_file_tgt_stats fndecl 3 32748 NULL
164706 +enable_so_vga_video_num_columns_vardecl_vgacon_c_32749 vga_video_num_columns vardecl_vgacon.c 0 32749 NULL nohasharray
164707 +enable_so_rds_tcp_xmit_fndecl_32749 rds_tcp_xmit fndecl 3 32749 &enable_so_vga_video_num_columns_vardecl_vgacon_c_32749
164708 +enable_so_lookup_zone_fndecl_32751 lookup_zone fndecl 0 32751 NULL
164709 +enable_so_adjust_priv_size_fndecl_32756 adjust_priv_size fndecl 0-1 32756 NULL
164710 +enable_so_cp2112_hid_get_fndecl_32758 cp2112_hid_get fndecl 4 32758 NULL
164711 +enable_so_fuse_file_ioctl_fndecl_32760 fuse_file_ioctl fndecl 2 32760 NULL
164712 +enable_so_i2400m_rx_edata_fndecl_32764 i2400m_rx_edata fndecl 5 32764 NULL
164713 +enable_so_gro_pull_from_frag0_fndecl_32770 gro_pull_from_frag0 fndecl 2 32770 NULL
164714 +enable_so_sm501_create_mem_fndecl_32778 sm501_create_mem fndecl 4 32778 NULL
164715 +enable_so_test_ofsl_cyttsp4_sysinfo_data_32781 test_ofsl cyttsp4_sysinfo_data 0 32781 NULL
164716 +enable_so_ack_to_rnr_rtc_dest_qpn_ocrdma_qp_params_32783 ack_to_rnr_rtc_dest_qpn ocrdma_qp_params 0 32783 NULL
164717 +enable_so_xfs_fsb_to_db_fndecl_32785 xfs_fsb_to_db fndecl 0-2 32785 NULL
164718 +enable_so_hpi_instream_ancillary_write_fndecl_32786 hpi_instream_ancillary_write fndecl 4 32786 NULL nohasharray
164719 +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
164720 +enable_so_portcntrs_2_read_fndecl_32793 portcntrs_2_read fndecl 3 32793 NULL
164721 +enable_so_mp_register_ioapic_fndecl_32802 mp_register_ioapic fndecl 3 32802 NULL
164722 +enable_so_pipe_usb_fifo_32805 pipe usb_fifo 0 32805 NULL nohasharray
164723 +enable_so_nfc_allocate_device_fndecl_32805 nfc_allocate_device fndecl 3 32805 &enable_so_pipe_usb_fifo_32805
164724 +enable_so_info_len_ib_ucm_info_32807 info_len ib_ucm_info 0 32807 NULL
164725 +enable_so_m_len_f2fs_map_blocks_32808 m_len f2fs_map_blocks 0 32808 NULL
164726 +enable_so_l_start_xfs_flock64_32809 l_start xfs_flock64 0 32809 NULL
164727 +enable_so_length_ppp_option_data_32814 length ppp_option_data 0 32814 NULL
164728 +enable_so_namelen_jfs_ea_32820 namelen jfs_ea 0 32820 NULL
164729 +enable_so_nvme_trans_log_temperature_fndecl_32822 nvme_trans_log_temperature fndecl 3 32822 NULL
164730 +enable_so_scrub_fixup_readpage_fndecl_32830 scrub_fixup_readpage fndecl 2 32830 NULL nohasharray
164731 +enable_so_num_rcv_urbs_vardecl_usbatm_c_32830 num_rcv_urbs vardecl_usbatm.c 0 32830 &enable_so_scrub_fixup_readpage_fndecl_32830
164732 +enable_so_ds_out_channels_hdspm_32836 ds_out_channels hdspm 0 32836 NULL nohasharray
164733 +enable_so_lpfc_sli4_bsg_set_link_diag_state_fndecl_32836 lpfc_sli4_bsg_set_link_diag_state fndecl 0 32836 &enable_so_ds_out_channels_hdspm_32836
164734 +enable_so_num_amgms_mthca_limits_32845 num_amgms mthca_limits 0 32845 NULL
164735 +enable_so_s_inodes_per_block_bits_sysv_sb_info_32849 s_inodes_per_block_bits sysv_sb_info 0 32849 NULL
164736 +enable_so_gather_array_fndecl_32850 gather_array fndecl 3 32850 NULL
164737 +enable_so_ep_in_mcs_cb_32852 ep_in mcs_cb 0 32852 NULL
164738 +enable_so_br_startoff_xfs_bmbt_irec_32854 br_startoff xfs_bmbt_irec 0 32854 NULL
164739 +enable_so_size_mem_cgroup_threshold_ary_32855 size mem_cgroup_threshold_ary 0 32855 NULL
164740 +enable_so_uvc_debugfs_stats_read_fndecl_32856 uvc_debugfs_stats_read fndecl 3 32856 NULL
164741 +enable_so_should_defrag_range_fndecl_32859 should_defrag_range fndecl 2 32859 NULL
164742 +enable_so_hfi1_qp_table_size_vardecl_qp_c_32860 hfi1_qp_table_size vardecl_qp.c 0 32860 NULL
164743 +enable_so_tx_buf_clear_used_ks959_cb_32864 tx_buf_clear_used ks959_cb 0 32864 NULL
164744 +enable_so_duplex_phy_device_32869 duplex phy_device 0 32869 NULL
164745 +enable_so_wTotalLength_usb_security_descriptor_32872 wTotalLength usb_security_descriptor 0 32872 NULL
164746 +enable_so_buffer_len_bfad_debug_info_32873 buffer_len bfad_debug_info 0 32873 NULL
164747 +enable_so_dvb_ringbuffer_read_user_fndecl_32877 dvb_ringbuffer_read_user fndecl 3-0 32877 NULL nohasharray
164748 +enable_so_dz_divisor_dn_zone_32877 dz_divisor dn_zone 0 32877 &enable_so_dvb_ringbuffer_read_user_fndecl_32877
164749 +enable_so_mem_cgroup_move_charge_pte_range_fndecl_32885 mem_cgroup_move_charge_pte_range fndecl 2 32885 NULL nohasharray
164750 +enable_so_btrfs_cow_block_fndecl_32885 btrfs_cow_block fndecl 0 32885 &enable_so_mem_cgroup_move_charge_pte_range_fndecl_32885
164751 +enable_so_m_ialloc_inos_xfs_mount_32889 m_ialloc_inos xfs_mount 0 32889 NULL
164752 +enable_so_snoop_table_size_ib_mad_qp_info_32891 snoop_table_size ib_mad_qp_info 0 32891 NULL
164753 +enable_so_snd_gus_dram_read_fndecl_32893 snd_gus_dram_read fndecl 4 32893 NULL
164754 +enable_so_min_dump_alloc_netlink_callback_32897 min_dump_alloc netlink_callback 0 32897 NULL
164755 +enable_so___wa_xfer_setup_segs_fndecl_32902 __wa_xfer_setup_segs fndecl 2 32902 NULL
164756 +enable_so_wm831x_num_wm831x_pdata_32904 wm831x_num wm831x_pdata 0 32904 NULL
164757 +enable_so_adnp_gpio_setup_fndecl_32910 adnp_gpio_setup fndecl 2 32910 NULL
164758 +enable_so_space_init_fndecl_32911 space_init fndecl 2 32911 NULL
164759 +enable_so_max_r2t_iscsi_bus_flash_session_32912 max_r2t iscsi_bus_flash_session 0 32912 NULL
164760 +enable_so_num_vfs_qlcnic_sriov_32913 num_vfs qlcnic_sriov 0 32913 NULL
164761 +enable_so_ipv6_getsockopt_sticky_fndecl_32916 ipv6_getsockopt_sticky fndecl 5-0 32916 NULL
164762 +enable_so_proto_ipoib_header_32917 proto ipoib_header 0 32917 NULL
164763 +enable_so_conn_send_command_fndecl_32918 conn_send_command fndecl 6-4 32918 NULL
164764 +enable_so_pci_get_related_function_fndecl_32920 pci_get_related_function fndecl 2 32920 NULL
164765 +enable_so_nr_events_kioctx_32925 nr_events kioctx 0 32925 NULL
164766 +enable_so_vram_base_mga_mc_32927 vram_base mga_mc 0 32927 NULL
164767 +enable_so___add_action_fndecl_32937 __add_action fndecl 4 32937 NULL
164768 +enable_so___copy_from_user_ll_fndecl_32945 __copy_from_user_ll fndecl 0 32945 NULL
164769 +enable_so_al_stripes_resize_parms_32950 al_stripes resize_parms 0 32950 NULL
164770 +enable_so_diva_data_q_init_fndecl_32954 diva_data_q_init fndecl 2 32954 NULL
164771 +enable_so_btrfsic_map_block_fndecl_32956 btrfsic_map_block fndecl 3 32956 NULL
164772 +enable_so_drm_agp_bind_pages_fndecl_32959 drm_agp_bind_pages fndecl 3 32959 NULL
164773 +enable_so___carl9170_rx_fndecl_32963 __carl9170_rx fndecl 3 32963 NULL
164774 +enable_so_bop_gather_data_nilfs_bmap_operations_32964 bop_gather_data nilfs_bmap_operations 0 32964 NULL
164775 +enable_so_total_data_buflen_hv_netvsc_packet_32967 total_data_buflen hv_netvsc_packet 0 32967 NULL
164776 +enable_so_ttm_alloc_new_pages_fndecl_32971 ttm_alloc_new_pages fndecl 5 32971 NULL
164777 +enable_so_s_max_slots_ocfs2_super_block_32972 s_max_slots ocfs2_super_block 0 32972 NULL
164778 +enable_so_proc_bus_pci_lseek_fndecl_32974 proc_bus_pci_lseek fndecl 2 32974 NULL
164779 +enable_so_p_replen_rpc_procinfo_32991 p_replen rpc_procinfo 0 32991 NULL nohasharray
164780 +enable_so_bn_read_lock_fndecl_32991 bn_read_lock fndecl 2-0 32991 &enable_so_p_replen_rpc_procinfo_32991
164781 +enable_so_resid_len_request_32994 resid_len request 0 32994 NULL
164782 +enable_so_wtpref_nfs_fsinfo_33003 wtpref nfs_fsinfo 0 33003 NULL
164783 +enable_so_mtdchar_write_fndecl_33004 mtdchar_write fndecl 3 33004 NULL
164784 +enable_so_dwNtbInMaxSize_usb_cdc_ncm_ntb_parameters_33006 dwNtbInMaxSize usb_cdc_ncm_ntb_parameters 0 33006 NULL
164785 +enable_so_pktshift_sge_33011 pktshift sge 0 33011 NULL nohasharray
164786 +enable_so_offset_fl_pg_chunk_33011 offset fl_pg_chunk 0 33011 &enable_so_pktshift_sge_33011
164787 +enable_so_size_qlcnic_82xx_dump_template_hdr_33013 size qlcnic_82xx_dump_template_hdr 0 33013 NULL nohasharray
164788 +enable_so_ion_ioctl_fndecl_33013 ion_ioctl fndecl 2 33013 &enable_so_size_qlcnic_82xx_dump_template_hdr_33013
164789 +enable_so_nr_regions_amd_flash_info_33022 nr_regions amd_flash_info 0 33022 NULL
164790 +enable_so_rq_size_nes_hw_qp_33024 rq_size nes_hw_qp 0 33024 NULL
164791 +enable_so_snd_rawmidi_read_fndecl_33026 snd_rawmidi_read fndecl 3 33026 NULL
164792 +enable_so_offset_xen_netif_rx_response_33028 offset xen_netif_rx_response 0 33028 NULL
164793 +enable_so_bfad_iocmd_set_port_cfg_fndecl_33030 bfad_iocmd_set_port_cfg fndecl 0 33030 NULL
164794 +enable_so_amdgpu_afmt_calc_cts_fndecl_33031 amdgpu_afmt_calc_cts fndecl 1-4 33031 NULL
164795 +enable_so_rsi_sdio_read_register_multiple_fndecl_33035 rsi_sdio_read_register_multiple fndecl 3 33035 NULL
164796 +enable_so_sacked_out_tcp_sock_33038 sacked_out tcp_sock 0 33038 NULL
164797 +enable_so_pipeline_pre_to_defrag_swi_read_fndecl_33042 pipeline_pre_to_defrag_swi_read fndecl 3 33042 NULL
164798 +enable_so_files_ceph_mds_reply_inode_33047 files ceph_mds_reply_inode 0 33047 NULL
164799 +enable_so_svc_rdma_xdr_get_reply_hdr_len_fndecl_33056 svc_rdma_xdr_get_reply_hdr_len fndecl 0 33056 NULL
164800 +enable_so_dev_read_fndecl_33058 dev_read fndecl 3 33058 NULL
164801 +enable_so_iov_iter_copy_from_user_atomic_fndecl_33059 iov_iter_copy_from_user_atomic fndecl 4-0 33059 NULL nohasharray
164802 +enable_so_gfs2_qstr2dirent_fndecl_33059 gfs2_qstr2dirent fndecl 2 33059 &enable_so_iov_iter_copy_from_user_atomic_fndecl_33059
164803 +enable_so_rxbufsz_ar5523_33060 rxbufsz ar5523 0 33060 NULL nohasharray
164804 +enable_so_nfilters_mc5_params_33060 nfilters mc5_params 0 33060 &enable_so_rxbufsz_ar5523_33060
164805 +enable_so_size_ec168_req_33061 size ec168_req 0 33061 NULL
164806 +enable_so_iio_device_add_info_mask_type_fndecl_33062 iio_device_add_info_mask_type fndecl 0 33062 NULL
164807 +enable_so_compress_compressor_33066 compress compressor 0 33066 NULL
164808 +enable_so_wil_read_pmccfg_fndecl_33071 wil_read_pmccfg fndecl 3 33071 NULL
164809 +enable_so_prepare_inurb_fndecl_33073 prepare_inurb fndecl 1 33073 NULL
164810 +enable_so___fat_nfs_get_inode_fndecl_33079 __fat_nfs_get_inode fndecl 4 33079 NULL
164811 +enable_so_default_size_vmw_cmdbuf_man_33080 default_size vmw_cmdbuf_man 0 33080 NULL
164812 +enable_so_descriptor_size_pmc_ctx_33081 descriptor_size pmc_ctx 0 33081 NULL
164813 +enable_so_e1000_alloc_rx_skb_fndecl_33089 e1000_alloc_rx_skb fndecl 2 33089 NULL nohasharray
164814 +enable_so_tx_headroom_llc_shdlc_33089 tx_headroom llc_shdlc 0 33089 &enable_so_e1000_alloc_rx_skb_fndecl_33089
164815 +enable_so_sl_tclass_flowlabel_mlx4_eth_av_33090 sl_tclass_flowlabel mlx4_eth_av 0 33090 NULL
164816 +enable_so_spu_base_info_size_qib_user_info_33091 spu_base_info_size qib_user_info 0 33091 NULL
164817 +enable_so_vram_size_cirrus_mc_33094 vram_size cirrus_mc 0 33094 NULL nohasharray
164818 +enable_so_ocfs2_control_read_fndecl_33094 ocfs2_control_read fndecl 3 33094 &enable_so_vram_size_cirrus_mc_33094
164819 +enable_so_write_gssp_fndecl_33095 write_gssp fndecl 3 33095 NULL
164820 +enable_so_do_get_write_access_fndecl_33097 do_get_write_access fndecl 0 33097 NULL
164821 +enable_so_return_wc_byte_len_ib_mad_local_private_33101 return_wc_byte_len ib_mad_local_private 0 33101 NULL
164822 +enable_so___snd_util_memblk_new_fndecl_33112 __snd_util_memblk_new fndecl 2 33112 NULL
164823 +enable_so_nla_strlcpy_fndecl_33113 nla_strlcpy fndecl 0 33113 NULL
164824 +enable_so_hdr_len_virtnet_info_33118 hdr_len virtnet_info 0 33118 NULL
164825 +enable_so_len_cfg80211_mgmt_tx_params_33119 len cfg80211_mgmt_tx_params 0 33119 NULL
164826 +enable_so_fl_create_fndecl_33120 fl_create fndecl 5 33120 NULL
164827 +enable_so_hw_token_ehci_qtd_33122 hw_token ehci_qtd 0 33122 NULL
164828 +enable_so_omninet_write_fndecl_33123 omninet_write fndecl 4 33123 NULL nohasharray
164829 +enable_so_ring_size_amdgpu_ring_33123 ring_size amdgpu_ring 0 33123 &enable_so_omninet_write_fndecl_33123
164830 +enable_so_gnttab_map_fndecl_33124 gnttab_map fndecl 2 33124 NULL
164831 +enable_so_max_resp_sz_nfs4_channel_attrs_33127 max_resp_sz nfs4_channel_attrs 0 33127 NULL nohasharray
164832 +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
164833 +enable_so_masklength_iio_dev_33129 masklength iio_dev 0 33129 NULL
164834 +enable_so_hvutil_transport_send_fndecl_33131 hvutil_transport_send fndecl 3 33131 NULL nohasharray
164835 +enable_so_readrids_fndecl_33131 readrids fndecl 0 33131 &enable_so_hvutil_transport_send_fndecl_33131
164836 +enable_so_trebleinit_CHIPDESC_33133 trebleinit CHIPDESC 0 33133 NULL
164837 +enable_so_in_words_ib_uverbs_cmd_hdr_33134 in_words ib_uverbs_cmd_hdr 0 33134 NULL
164838 +enable_so_store_msg_fndecl_33138 store_msg fndecl 3 33138 NULL
164839 +enable_so_acpi_os_write_memory_fndecl_33139 acpi_os_write_memory fndecl 3-1 33139 NULL nohasharray
164840 +enable_so___get_vm_area_caller_fndecl_33139 __get_vm_area_caller fndecl 1-3 33139 &enable_so_acpi_os_write_memory_fndecl_33139
164841 +enable_so_size_bmp_header_33141 size bmp_header 0 33141 NULL nohasharray
164842 +enable_so_hostname_len_nlm_lookup_host_info_33141 hostname_len nlm_lookup_host_info 0 33141 &enable_so_size_bmp_header_33141
164843 +enable_so_fm_extent_count_fiemap_33144 fm_extent_count fiemap 0 33144 NULL
164844 +enable_so_l2cap_segment_le_sdu_fndecl_33145 l2cap_segment_le_sdu fndecl 4 33145 NULL
164845 +enable_so_putused_user_fndecl_33152 putused_user fndecl 3 33152 NULL
164846 +enable_so_osd_req_list_partition_objects_fndecl_33155 osd_req_list_partition_objects fndecl 5 33155 NULL nohasharray
164847 +enable_so_starting_cid_cnic_eth_dev_33155 starting_cid cnic_eth_dev 0 33155 &enable_so_osd_req_list_partition_objects_fndecl_33155
164848 +enable_so_lbs_rdmac_write_fndecl_33156 lbs_rdmac_write fndecl 3 33156 NULL
164849 +enable_so_len_ip_set_ext_type_33164 len ip_set_ext_type 0 33164 NULL
164850 +enable_so_mml_isar_hw_33168 mml isar_hw 0 33168 NULL
164851 +enable_so_walk_pgd_range_fndecl_33169 walk_pgd_range fndecl 0 33169 NULL
164852 +enable_so_cx231xx_init_isoc_fndecl_33174 cx231xx_init_isoc fndecl 4-2-3 33174 NULL
164853 +enable_so_hcs_params2_xhci_hcd_33175 hcs_params2 xhci_hcd 0 33175 NULL
164854 +enable_so_set_connectable_fndecl_33177 set_connectable fndecl 4 33177 NULL
164855 +enable_so_rw_devices_btrfs_fs_devices_33182 rw_devices btrfs_fs_devices 0 33182 NULL
164856 +enable_so_arp_filter_size_mwifiex_adapter_33183 arp_filter_size mwifiex_adapter 0 33183 NULL
164857 +enable_so_niqflint_vf_resources_33189 niqflint vf_resources 0 33189 NULL
164858 +enable_so_ath6kl_wmi_set_ip_cmd_fndecl_33191 ath6kl_wmi_set_ip_cmd fndecl 2 33191 NULL
164859 +enable_so_Memhscx_empty_fifo_fndecl_33197 Memhscx_empty_fifo fndecl 2 33197 NULL
164860 +enable_so_data_avail_vardecl_core_c_33198 data_avail vardecl_core.c 0 33198 NULL
164861 +enable_so_ieee80211_rx_mgmt_probe_beacon_fndecl_33208 ieee80211_rx_mgmt_probe_beacon fndecl 3 33208 NULL
164862 +enable_so_mmc_blk_ioctl_multi_cmd_fndecl_33215 mmc_blk_ioctl_multi_cmd fndecl 0 33215 NULL
164863 +enable_so_block_size_dm_bufio_client_33221 block_size dm_bufio_client 0 33221 NULL
164864 +enable_so_num_lan_msix_i40e_pf_33223 num_lan_msix i40e_pf 0 33223 NULL
164865 +enable_so_ip_options_get_fndecl_33225 ip_options_get fndecl 4 33225 NULL
164866 +enable_so_l1oip_socket_recv_fndecl_33226 l1oip_socket_recv fndecl 6 33226 NULL
164867 +enable_so_segment_count_main_f2fs_super_block_33230 segment_count_main f2fs_super_block 0 33230 NULL
164868 +enable_so_cfg80211_connect_result_fndecl_33232 cfg80211_connect_result fndecl 4-6 33232 NULL
164869 +enable_so_ext4_zeroout_es_fndecl_33233 ext4_zeroout_es fndecl 0 33233 NULL
164870 +enable_so_nsumblk_nilfs_segsum_info_33238 nsumblk nilfs_segsum_info 0 33238 NULL
164871 +enable_so_udf_load_partdesc_fndecl_33239 udf_load_partdesc fndecl 2 33239 NULL
164872 +enable_so_error_mmc_command_33242 error mmc_command 0 33242 NULL
164873 +enable_so_save_tx_buffer_request_fndecl_33245 save_tx_buffer_request fndecl 3 33245 NULL
164874 +enable_so_mfs_fc_lport_33249 mfs fc_lport 0 33249 NULL
164875 +enable_so_alloc_apertures_fndecl_33250 alloc_apertures fndecl 1 33250 NULL
164876 +enable_so_metadata_size_ecryptfs_crypt_stat_33252 metadata_size ecryptfs_crypt_stat 0 33252 NULL
164877 +enable_so_wb_offset_nfs_page_33255 wb_offset nfs_page 0 33255 NULL
164878 +enable_so_handle_bytes_file_handle_33261 handle_bytes file_handle 0 33261 NULL
164879 +enable_so_mem_size_ramoops_platform_data_33263 mem_size ramoops_platform_data 0 33263 NULL
164880 +enable_so_ip_vs_prepare_tunneled_skb_fndecl_33269 ip_vs_prepare_tunneled_skb fndecl 3 33269 NULL
164881 +enable_so_ocfs2_change_extent_flag_fndecl_33270 ocfs2_change_extent_flag fndecl 5-3 33270 NULL nohasharray
164882 +enable_so_mem_end_net_device_33270 mem_end net_device 0 33270 &enable_so_ocfs2_change_extent_flag_fndecl_33270
164883 +enable_so_rbd_img_request_fill_fndecl_33274 rbd_img_request_fill fndecl 0 33274 NULL
164884 +enable_so_drv_file_st_partstat_33277 drv_file st_partstat 0 33277 NULL
164885 +enable_so_ep_msg_out_peak_usb_device_33281 ep_msg_out peak_usb_device 0 33281 NULL nohasharray
164886 +enable_so_hpfs_readpages_fndecl_33281 hpfs_readpages fndecl 4 33281 &enable_so_ep_msg_out_peak_usb_device_33281 nohasharray
164887 +enable_so_sbsector_iso9660_options_33281 sbsector iso9660_options 0 33281 &enable_so_hpfs_readpages_fndecl_33281
164888 +enable_so_mappable_end_i915_gtt_33282 mappable_end i915_gtt 0 33282 NULL
164889 +enable_so_cipso_v4_gentag_loc_fndecl_33292 cipso_v4_gentag_loc fndecl 0 33292 NULL nohasharray
164890 +enable_so_frame_size_camera_data_33292 frame_size camera_data 0 33292 &enable_so_cipso_v4_gentag_loc_fndecl_33292
164891 +enable_so_port_mlx4_ib_qp_33295 port mlx4_ib_qp 0 33295 NULL
164892 +enable_so_num_vls_vardecl_33298 num_vls vardecl 0 33298 NULL
164893 +enable_so_vlen_nfsd_readargs_33302 vlen nfsd_readargs 0 33302 NULL
164894 +enable_so_e_phnum_elf64_hdr_33305 e_phnum elf64_hdr 0 33305 NULL
164895 +enable_so_max_width_vsp1_rwpf_33314 max_width vsp1_rwpf 0 33314 NULL
164896 +enable_so_nl80211_send_deauth_fndecl_33315 nl80211_send_deauth fndecl 4 33315 NULL nohasharray
164897 +enable_so_ima_show_htable_value_fndecl_33315 ima_show_htable_value fndecl 2 33315 &enable_so_nl80211_send_deauth_fndecl_33315
164898 +enable_so_static_rate_ib_ah_attr_33316 static_rate ib_ah_attr 0 33316 NULL
164899 +enable_so_index_vardecl_via82xx_modem_c_33320 index vardecl_via82xx_modem.c 0 33320 NULL
164900 +enable_so_acpi_gsb_i2c_read_bytes_fndecl_33322 acpi_gsb_i2c_read_bytes fndecl 4 33322 NULL
164901 +enable_so_hlen_h4_recv_pkt_33324 hlen h4_recv_pkt 0 33324 NULL
164902 +enable_so_ahd_sg_setup_fndecl_33341 ahd_sg_setup fndecl 4-5 33341 NULL
164903 +enable_so_dump_packet_fndecl_33346 dump_packet fndecl 2 33346 NULL
164904 +enable_so_stk_prepare_sio_buffers_fndecl_33347 stk_prepare_sio_buffers fndecl 2 33347 NULL
164905 +enable_so_max_vpi_lpfc_max_cfg_param_33350 max_vpi lpfc_max_cfg_param 0 33350 NULL
164906 +enable_so_rx_hw_stuck_read_fndecl_33352 rx_hw_stuck_read fndecl 3 33352 NULL
164907 +enable_so_netlink_create_fndecl_33353 netlink_create fndecl 3 33353 NULL
164908 +enable_so_dvb_register_device_fndecl_33363 dvb_register_device fndecl 0 33363 NULL
164909 +enable_so_udl_prime_create_fndecl_33364 udl_prime_create fndecl 2 33364 NULL nohasharray
164910 +enable_so_scanlength_usbvision_frame_33364 scanlength usbvision_frame 0 33364 &enable_so_udl_prime_create_fndecl_33364
164911 +enable_so_ihandlen_xfs_fsop_handlereq_33370 ihandlen xfs_fsop_handlereq 0 33370 NULL
164912 +enable_so_lpfc_sg_seg_cnt_init_fndecl_33371 lpfc_sg_seg_cnt_init fndecl 2 33371 NULL
164913 +enable_so_ib_qib_max_srq_wrs_vardecl_33376 ib_qib_max_srq_wrs vardecl 0 33376 NULL
164914 +enable_so_sys_io_getevents_fndecl_33381 sys_io_getevents fndecl 3 33381 NULL
164915 +enable_so_join_req_size_vardecl_33387 join_req_size vardecl 0 33387 NULL nohasharray
164916 +enable_so_xfs_map_direct_fndecl_33387 xfs_map_direct fndecl 4 33387 &enable_so_join_req_size_vardecl_33387
164917 +enable_so_length_mac_configuration_hdr_33392 length mac_configuration_hdr 0 33392 NULL
164918 +enable_so_sys_poll_fndecl_33397 sys_poll fndecl 2 33397 NULL
164919 +enable_so_data_offset_rndis_packet_33403 data_offset rndis_packet 0 33403 NULL
164920 +enable_so_drbg_blocklen_fndecl_33412 drbg_blocklen fndecl 0 33412 NULL
164921 +enable_so_dma_fifo_alloc_fndecl_33415 dma_fifo_alloc fndecl 2-3-5 33415 NULL
164922 +enable_so_flush_space_fndecl_33418 flush_space fndecl 0 33418 NULL
164923 +enable_so_lbmRead_fndecl_33420 lbmRead fndecl 2 33420 NULL
164924 +enable_so_dreq_gss_dccp_request_sock_33423 dreq_gss dccp_request_sock 0 33423 NULL nohasharray
164925 +enable_so_rsxx_cram_write_fndecl_33423 rsxx_cram_write fndecl 3 33423 &enable_so_dreq_gss_dccp_request_sock_33423
164926 +enable_so_tt3650_ci_msg_fndecl_33424 tt3650_ci_msg fndecl 4 33424 NULL
164927 +enable_so_offset_vb2_dma_sg_buf_33426 offset vb2_dma_sg_buf 0 33426 NULL
164928 +enable_so_intr_dma_usb_pcwd_private_33427 intr_dma usb_pcwd_private 0 33427 NULL
164929 +enable_so_change_mtu_fndecl_33432 change_mtu fndecl 2 33432 NULL nohasharray
164930 +enable_so_vlan_id_fnic_33432 vlan_id fnic 0 33432 &enable_so_change_mtu_fndecl_33432 nohasharray
164931 +enable_so_in_nextiag_dinomap_33432 in_nextiag dinomap 0 33432 &enable_so_vlan_id_fnic_33432
164932 +enable_so__nfs4_proc_readlink_fndecl_33436 _nfs4_proc_readlink fndecl 4-3 33436 NULL
164933 +enable_so_wqe_size_ib_uverbs_post_send_33437 wqe_size ib_uverbs_post_send 0 33437 NULL
164934 +enable_so_nilfs_set_nsegments_fndecl_33438 nilfs_set_nsegments fndecl 2 33438 NULL
164935 +enable_so_mmc_test_area_io_seq_fndecl_33440 mmc_test_area_io_seq fndecl 2-9 33440 NULL
164936 +enable_so_w_dloarea_33444 w dloarea 0 33444 NULL
164937 +enable_so_sys_mlock2_fndecl_33449 sys_mlock2 fndecl 1-2 33449 NULL
164938 +enable_so_mt7601u_mcu_msg_alloc_fndecl_33453 mt7601u_mcu_msg_alloc fndecl 3 33453 NULL
164939 +enable_so_ocfs2_divide_xattr_bucket_fndecl_33455 ocfs2_divide_xattr_bucket fndecl 3-4 33455 NULL
164940 +enable_so_oprofilefs_ulong_from_user_fndecl_33456 oprofilefs_ulong_from_user fndecl 3 33456 NULL
164941 +enable_so_alloc_flex_gd_fndecl_33464 alloc_flex_gd fndecl 1 33464 NULL
164942 +enable_so_tx_pipe_usbpn_dev_33474 tx_pipe usbpn_dev 0 33474 NULL
164943 +enable_so_packets_out_tcp_sock_33478 packets_out tcp_sock 0 33478 NULL
164944 +enable_so___nbd_ioctl_fndecl_33480 __nbd_ioctl fndecl 4 33480 NULL
164945 +enable_so_pci_asix_setup_fndecl_33482 pci_asix_setup fndecl 4 33482 NULL
164946 +enable_so_ath6kl_buf_alloc_fndecl_33483 ath6kl_buf_alloc fndecl 1 33483 NULL
164947 +enable_so_ftdi_elan_write_fndecl_33486 ftdi_elan_write fndecl 3 33486 NULL
164948 +enable_so_ath6kl_wmi_cmd_send_fndecl_33493 ath6kl_wmi_cmd_send fndecl 2 33493 NULL
164949 +enable_so_root_size_adfs_discrecord_33498 root_size adfs_discrecord 0 33498 NULL
164950 +enable_so_pstore_file_read_fndecl_33499 pstore_file_read fndecl 3 33499 NULL nohasharray
164951 +enable_so_num_rx_descs_iser_conn_33499 num_rx_descs iser_conn 0 33499 &enable_so_pstore_file_read_fndecl_33499
164952 +enable_so_remote_vni_vxlan_rdst_33505 remote_vni vxlan_rdst 0 33505 NULL
164953 +enable_so_ocfs2_xattr_shrink_size_fndecl_33507 ocfs2_xattr_shrink_size fndecl 3 33507 NULL
164954 +enable_so_chunk_io_fndecl_33510 chunk_io fndecl 3 33510 NULL
164955 +enable_so_pcigart_offset_drm_radeon_private_33512 pcigart_offset drm_radeon_private 0 33512 NULL
164956 +enable_so_error_rx_excessive_frame_len_read_fndecl_33513 error_rx_excessive_frame_len_read fndecl 3 33513 NULL nohasharray
164957 +enable_so___asymmetric_key_hex_to_key_id_fndecl_33513 __asymmetric_key_hex_to_key_id fndecl 3 33513 &enable_so_error_rx_excessive_frame_len_read_fndecl_33513
164958 +enable_so_check_mirror_fndecl_33517 check_mirror fndecl 2-1 33517 NULL nohasharray
164959 +enable_so_usblp_read_fndecl_33517 usblp_read fndecl 3 33517 &enable_so_check_mirror_fndecl_33517
164960 +enable_so_len_writequeue_entry_33522 len writequeue_entry 0 33522 NULL
164961 +enable_so_evdev_set_mask_fndecl_33528 evdev_set_mask fndecl 4-0 33528 NULL
164962 +enable_so_offset_port_buffer_33530 offset port_buffer 0 33530 NULL
164963 +enable_so___mxt_write_reg_fndecl_33533 __mxt_write_reg fndecl 3 33533 NULL
164964 +enable_so_ieee802154_hdr_addr_len_fndecl_33535 ieee802154_hdr_addr_len fndecl 0 33535 NULL
164965 +enable_so_si476x_radio_read_agc_blob_fndecl_33538 si476x_radio_read_agc_blob fndecl 3 33538 NULL
164966 +enable_so_sq_size_nes_hw_qp_33544 sq_size nes_hw_qp 0 33544 NULL nohasharray
164967 +enable_so_num_seq_vgastate_33544 num_seq vgastate 0 33544 &enable_so_sq_size_nes_hw_qp_33544
164968 +enable_so_tx_queues_nicvf_33546 tx_queues nicvf 0 33546 NULL
164969 +enable_so_dlfb_setup_modes_fndecl_33548 dlfb_setup_modes fndecl 4 33548 NULL
164970 +enable_so_kvm_vcpu_read_guest_fndecl_33552 kvm_vcpu_read_guest fndecl 2-4 33552 NULL
164971 +enable_so_hns_nic_change_mtu_fndecl_33553 hns_nic_change_mtu fndecl 2 33553 NULL nohasharray
164972 +enable_so_tcf_hash_create_fndecl_33553 tcf_hash_create fndecl 4 33553 &enable_so_hns_nic_change_mtu_fndecl_33553
164973 +enable_so_mwifiex_create_ba_tbl_fndecl_33555 mwifiex_create_ba_tbl fndecl 3 33555 NULL
164974 +enable_so_cpb_s5p_mfc_buf_size_33560 cpb s5p_mfc_buf_size 0 33560 NULL
164975 +enable_so_nfc_llcp_build_sdreq_tlv_fndecl_33563 nfc_llcp_build_sdreq_tlv fndecl 3 33563 NULL
164976 +enable_so_snd_rawmidi_kernel_write1_fndecl_33564 snd_rawmidi_kernel_write1 fndecl 4-0 33564 NULL
164977 +enable_so_snb_pci2phy_map_init_fndecl_33565 snb_pci2phy_map_init fndecl 1 33565 NULL
164978 +enable_so_recv_buf_size_netvsc_device_33569 recv_buf_size netvsc_device 0 33569 NULL nohasharray
164979 +enable_so_qlen_status_event_list_33569 qlen status_event_list 0 33569 &enable_so_recv_buf_size_netvsc_device_33569
164980 +enable_so_source_irq_acpi_madt_interrupt_override_33574 source_irq acpi_madt_interrupt_override 0 33574 NULL
164981 +enable_so_lcm_fndecl_33580 lcm fndecl 0-2-1 33580 NULL nohasharray
164982 +enable_so_self_dnode_33580 self dnode 0 33580 &enable_so_lcm_fndecl_33580 nohasharray
164983 +enable_so_batadv_tt_update_changes_fndecl_33580 batadv_tt_update_changes fndecl 3 33580 &enable_so_self_dnode_33580
164984 +enable_so_btt_do_bvec_fndecl_33585 btt_do_bvec fndecl 0 33585 NULL
164985 +enable_so_btrfs_direct_IO_fndecl_33586 btrfs_direct_IO fndecl 3 33586 NULL
164986 +enable_so_bfad_iocmd_port_cfg_mode_fndecl_33588 bfad_iocmd_port_cfg_mode fndecl 0 33588 NULL
164987 +enable_so_i2c_readregs_fndecl_33590 i2c_readregs fndecl 5 33590 NULL
164988 +enable_so_hci_mgmt_cmd_fndecl_33591 hci_mgmt_cmd fndecl 4 33591 NULL
164989 +enable_so_num_ae_requests_vardecl_33594 num_ae_requests vardecl 0 33594 NULL
164990 +enable_so_lde_namelen_lu_dirent_33595 lde_namelen lu_dirent 0 33595 NULL
164991 +enable_so_copy_range_nfulnl_msg_config_mode_33596 copy_range nfulnl_msg_config_mode 0 33596 NULL
164992 +enable_so_fsl_spi_bufs_fndecl_33599 fsl_spi_bufs fndecl 0 33599 NULL
164993 +enable_so_max_header_size_iriap_cb_33603 max_header_size iriap_cb 0 33603 NULL
164994 +enable_so_ext2_xattr_security_set_fndecl_33606 ext2_xattr_security_set fndecl 5 33606 NULL
164995 +enable_so___kfifo_out_fndecl_33612 __kfifo_out fndecl 0-3 33612 NULL nohasharray
164996 +enable_so_drm_prime_pages_to_sg_fndecl_33612 drm_prime_pages_to_sg fndecl 2 33612 &enable_so___kfifo_out_fndecl_33612
164997 +enable_so_hfsplus_find_cat_fndecl_33616 hfsplus_find_cat fndecl 0 33616 NULL nohasharray
164998 +enable_so_names_size_ceph_inode_xattrs_info_33616 names_size ceph_inode_xattrs_info 0 33616 &enable_so_hfsplus_find_cat_fndecl_33616
164999 +enable_so_lpfc_gen_req_fndecl_33617 lpfc_gen_req fndecl 8 33617 NULL
165000 +enable_so_num_retune_mobile_texts_wm8994_priv_33620 num_retune_mobile_texts wm8994_priv 0 33620 NULL
165001 +enable_so_rc_framerate_num_s5p_mfc_enc_params_33630 rc_framerate_num s5p_mfc_enc_params 0 33630 NULL nohasharray
165002 +enable_so_nf_getsockopt_fndecl_33630 nf_getsockopt fndecl 0 33630 &enable_so_rc_framerate_num_s5p_mfc_enc_params_33630 nohasharray
165003 +enable_so_scif_setup_qp_accept_fndecl_33630 scif_setup_qp_accept fndecl 4 33630 &enable_so_nf_getsockopt_fndecl_33630
165004 +enable_so_data_size_kretprobe_33633 data_size kretprobe 0 33633 NULL
165005 +enable_so_find_smallest_section_pfn_fndecl_33641 find_smallest_section_pfn fndecl 0-3 33641 NULL
165006 +enable_so_memblock_size_vxge_hw_mempool_33647 memblock_size vxge_hw_mempool 0 33647 NULL
165007 +enable_so_size_dma_buf_33648 size dma_buf 0 33648 NULL nohasharray
165008 +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
165009 +enable_so_check_header_fndecl_33649 check_header fndecl 2 33649 NULL
165010 +enable_so_intel_engine_create_ringbuffer_fndecl_33650 intel_engine_create_ringbuffer fndecl 2 33650 NULL
165011 +enable_so_tool_peer_spad_write_fndecl_33652 tool_peer_spad_write fndecl 3 33652 NULL
165012 +enable_so_hfs_inode_read_fork_fndecl_33654 hfs_inode_read_fork fndecl 4-3 33654 NULL
165013 +enable_so_savage_init_hw_fndecl_33678 savage_init_hw fndecl 0 33678 NULL
165014 +enable_so_data_size_vxge_rx_priv_33684 data_size vxge_rx_priv 0 33684 NULL
165015 +enable_so_port_mlx4_net_trans_rule_hw_ctrl_33685 port mlx4_net_trans_rule_hw_ctrl 0 33685 NULL
165016 +enable_so_len_scif_copy_work_33687 len scif_copy_work 0 33687 NULL
165017 +enable_so_mb_find_order_for_block_fndecl_33691 mb_find_order_for_block fndecl 0 33691 NULL
165018 +enable_so_ide_cdrom_probe_capabilities_fndecl_33699 ide_cdrom_probe_capabilities fndecl 0 33699 NULL
165019 +enable_so_alignment_offset_queue_limits_33701 alignment_offset queue_limits 0 33701 NULL
165020 +enable_so_jffs2_sum_write_data_fndecl_33705 jffs2_sum_write_data fndecl 3-4 33705 NULL nohasharray
165021 +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
165022 +enable_so_calculate_memsize_fndecl_33706 calculate_memsize fndecl 0-5-3-4-2-1 33706 NULL
165023 +enable_so_network_header_sk_buff_33708 network_header sk_buff 0 33708 NULL
165024 +enable_so_out_phase_usb_stream_kernel_33720 out_phase usb_stream_kernel 0 33720 NULL nohasharray
165025 +enable_so_vlsi_alloc_ring_fndecl_33720 vlsi_alloc_ring fndecl 3-4 33720 &enable_so_out_phase_usb_stream_kernel_33720
165026 +enable_so_video_height_sis_video_info_33732 video_height sis_video_info 0 33732 NULL nohasharray
165027 +enable_so_atwrite_submit_fndecl_33732 atwrite_submit fndecl 3 33732 &enable_so_video_height_sis_video_info_33732
165028 +enable_so_amdgpu_bo_create_fndecl_33733 amdgpu_bo_create fndecl 2 33733 NULL nohasharray
165029 +enable_so_hpfs_bmap_fndecl_33733 hpfs_bmap fndecl 2-0 33733 &enable_so_amdgpu_bo_create_fndecl_33733
165030 +enable_so_xres_fb_var_screeninfo_33734 xres fb_var_screeninfo 0 33734 NULL
165031 +enable_so_ovl_copy_up_data_fndecl_33738 ovl_copy_up_data fndecl 3 33738 NULL
165032 +enable_so_stub_chips_nr_vardecl_i2c_stub_c_33739 stub_chips_nr vardecl_i2c-stub.c 0 33739 NULL
165033 +enable_so_raw_cmd_copyout_fndecl_33741 raw_cmd_copyout fndecl 0 33741 NULL
165034 +enable_so_xfs_buf_read_map_fndecl_33742 xfs_buf_read_map fndecl 3 33742 NULL
165035 +enable_so_aircable_process_packet_fndecl_33744 aircable_process_packet fndecl 4 33744 NULL
165036 +enable_so_lengthComponentIdent_pathComponent_33758 lengthComponentIdent pathComponent 0 33758 NULL
165037 +enable_so_avr_ack_ptr_dccp_ackvec_record_33759 avr_ack_ptr dccp_ackvec_record 0 33759 NULL
165038 +enable_so_efx_farch_dimension_resources_fndecl_33764 efx_farch_dimension_resources fndecl 2 33764 NULL
165039 +enable_so_default_bpp_vardecl_sm501fb_c_33765 default_bpp vardecl_sm501fb.c 0 33765 NULL
165040 +enable_so_wmi_send_fndecl_33768 wmi_send fndecl 4 33768 NULL
165041 +enable_so_f_height_gsc_frame_33772 f_height gsc_frame 0 33772 NULL
165042 +enable_so_cx2341x_ctrl_new_std_fndecl_33782 cx2341x_ctrl_new_std fndecl 4-3-6 33782 NULL
165043 +enable_so_max_gpios_rdc321x_gpio_pdata_33783 max_gpios rdc321x_gpio_pdata 0 33783 NULL
165044 +enable_so_do_jit_fndecl_33785 do_jit fndecl 0 33785 NULL nohasharray
165045 +enable_so_pcmcia_replace_cis_fndecl_33785 pcmcia_replace_cis fndecl 3 33785 &enable_so_do_jit_fndecl_33785 nohasharray
165046 +enable_so_fm_mapped_extents_ll_user_fiemap_33785 fm_mapped_extents ll_user_fiemap 0 33785 &enable_so_pcmcia_replace_cis_fndecl_33785
165047 +enable_so_sca3000_read_data_fndecl_33787 sca3000_read_data fndecl 4 33787 NULL
165048 +enable_so_sis190_try_rx_copy_fndecl_33790 sis190_try_rx_copy fndecl 3 33790 NULL
165049 +enable_so_sd_write_data_fndecl_33792 sd_write_data fndecl 5-0 33792 NULL
165050 +enable_so_icv_truncbits_xfrm_algo_auth_info_33798 icv_truncbits xfrm_algo_auth_info 0 33798 NULL
165051 +enable_so___ip_tun_to_nlattr_fndecl_33801 __ip_tun_to_nlattr fndecl 4 33801 NULL
165052 +enable_so_page_size_vmw_cmdbuf_alloc_info_33815 page_size vmw_cmdbuf_alloc_info 0 33815 NULL nohasharray
165053 +enable_so_next_send_psn_mthca_qp_context_33815 next_send_psn mthca_qp_context 0 33815 &enable_so_page_size_vmw_cmdbuf_alloc_info_33815
165054 +enable_so_custom_length_iscsi_stats_33819 custom_length iscsi_stats 0 33819 NULL
165055 +enable_so_snd_find_free_minor_fndecl_33820 snd_find_free_minor fndecl 0 33820 NULL
165056 +enable_so_dn_ide_drive_s_33823 dn ide_drive_s 0 33823 NULL
165057 +enable_so_SyS_keyctl_fndecl_33825 SyS_keyctl fndecl 4 33825 NULL
165058 +enable_so_mult_usb_ep_33831 mult usb_ep 0 33831 NULL
165059 +enable_so_selinux_setprocattr_fndecl_33832 selinux_setprocattr fndecl 4 33832 NULL
165060 +enable_so_blk_size_ide_tape_obj_33837 blk_size ide_tape_obj 0 33837 NULL
165061 +enable_so_targetsize_xt_target_33840 targetsize xt_target 0 33840 NULL
165062 +enable_so_depth_drm_vmw_size_33842 depth drm_vmw_size 0 33842 NULL
165063 +enable_so_mgmt_cmd_complete_fndecl_33845 mgmt_cmd_complete fndecl 6 33845 NULL
165064 +enable_so_add_partition_fndecl_33847 add_partition fndecl 3-4-2 33847 NULL
165065 +enable_so_sctp_addto_chunk_fixed_fndecl_33853 sctp_addto_chunk_fixed fndecl 2 33853 NULL
165066 +enable_so_xfs_qm_scall_trunc_qfile_fndecl_33855 xfs_qm_scall_trunc_qfile fndecl 2 33855 NULL
165067 +enable_so_rx_buf_total_size__mgslpc_info_33856 rx_buf_total_size _mgslpc_info 0 33856 NULL
165068 +enable_so_valuelen_xfs_attr_leaf_name_remote_33863 valuelen xfs_attr_leaf_name_remote 0 33863 NULL
165069 +enable_so_dvb_dmxdev_set_buffer_size_fndecl_33864 dvb_dmxdev_set_buffer_size fndecl 2 33864 NULL
165070 +enable_so_root_adfs_discrecord_33866 root adfs_discrecord 0 33866 NULL nohasharray
165071 +enable_so_h5_link_control_fndecl_33866 h5_link_control fndecl 3 33866 &enable_so_root_adfs_discrecord_33866
165072 +enable_so_edge_tty_recv_fndecl_33877 edge_tty_recv fndecl 3 33877 NULL
165073 +enable_so_tolen_nfs_linkargs_33881 tolen nfs_linkargs 0 33881 NULL nohasharray
165074 +enable_so_walk_system_ram_res_fndecl_33881 walk_system_ram_res fndecl 2-1 33881 &enable_so_tolen_nfs_linkargs_33881
165075 +enable_so_len_gsm_control_33882 len gsm_control 0 33882 NULL
165076 +enable_so_reiserfs_xattr_get_fndecl_33887 reiserfs_xattr_get fndecl 0 33887 NULL nohasharray
165077 +enable_so_pktgen_if_write_fndecl_33887 pktgen_if_write fndecl 3 33887 &enable_so_reiserfs_xattr_get_fndecl_33887
165078 +enable_so_src_len_ccp_xts_aes_engine_33899 src_len ccp_xts_aes_engine 0 33899 NULL
165079 +enable_so_init_stripe_fndecl_33902 init_stripe fndecl 2 33902 NULL nohasharray
165080 +enable_so_direct2indirect_fndecl_33902 direct2indirect fndecl 5 33902 &enable_so_init_stripe_fndecl_33902
165081 +enable_so_xfs_bmbt_maxrecs_fndecl_33906 xfs_bmbt_maxrecs fndecl 0-2 33906 NULL
165082 +enable_so__install_special_mapping_fndecl_33907 _install_special_mapping fndecl 3-2 33907 NULL
165083 +enable_so_vxlan_fdb_append_fndecl_33909 vxlan_fdb_append fndecl 4 33909 NULL
165084 +enable_so_rx_desc_count_xgbe_prv_data_33915 rx_desc_count xgbe_prv_data 0 33915 NULL
165085 +enable_so_w83627hf_device_add_fndecl_33919 w83627hf_device_add fndecl 1 33919 NULL
165086 +enable_so_wil_vring_alloc_skb_fndecl_33924 wil_vring_alloc_skb fndecl 4 33924 NULL
165087 +enable_so_size_cmdline_vardecl_dma_contiguous_c_33925 size_cmdline vardecl_dma-contiguous.c 0 33925 NULL
165088 +enable_so_ad9389b_rd_fndecl_33927 ad9389b_rd fndecl 0 33927 NULL nohasharray
165089 +enable_so_seq_num_rdma_id_private_33927 seq_num rdma_id_private 0 33927 &enable_so_ad9389b_rd_fndecl_33927
165090 +enable_so_genl_allocate_reserve_groups_fndecl_33930 genl_allocate_reserve_groups fndecl 1 33930 NULL
165091 +enable_so_max_channels_snd_midi_channel_set_33931 max_channels snd_midi_channel_set 0 33931 NULL
165092 +enable_so_numa_add_memblk_to_fndecl_33934 numa_add_memblk_to fndecl 2-3 33934 NULL nohasharray
165093 +enable_so_isl1208_i2c_set_regs_fndecl_33934 isl1208_i2c_set_regs fndecl 4 33934 &enable_so_numa_add_memblk_to_fndecl_33934 nohasharray
165094 +enable_so_tcp_push_fndecl_33934 tcp_push fndecl 3 33934 &enable_so_isl1208_i2c_set_regs_fndecl_33934
165095 +enable_so_pci_scan_device_fndecl_33935 pci_scan_device fndecl 2 33935 NULL
165096 +enable_so_iwl_dbgfs_plcp_delta_write_fndecl_33937 iwl_dbgfs_plcp_delta_write fndecl 3 33937 NULL
165097 +enable_so_get_info_fndecl_33938 get_info fndecl 3 33938 NULL
165098 +enable_so_bulk_in_usbatm_driver_33939 bulk_in usbatm_driver 0 33939 NULL
165099 +enable_so_wMaxPacketSize_usb_endpoint_descriptor_33942 wMaxPacketSize usb_endpoint_descriptor 0 33942 NULL
165100 +enable_so_ext4_alloc_file_blocks_fndecl_33946 ext4_alloc_file_blocks fndecl 2-3 33946 NULL
165101 +enable_so_i_first_extent_iso_inode_info_33947 i_first_extent iso_inode_info 0 33947 NULL
165102 +enable_so_num_rsp_hci_inquiry_req_33953 num_rsp hci_inquiry_req 0 33953 NULL
165103 +enable_so_lpfc_sg_seg_cnt_vardecl_lpfc_attr_c_33956 lpfc_sg_seg_cnt vardecl_lpfc_attr.c 0 33956 NULL
165104 +enable_so_ext4_get_block_fndecl_33967 ext4_get_block fndecl 2 33967 NULL
165105 +enable_so_nfc_hci_send_cmd_fndecl_33969 nfc_hci_send_cmd fndecl 5 33969 NULL
165106 +enable_so_ocfs2_lock_refcount_tree_fndecl_33972 ocfs2_lock_refcount_tree fndecl 2 33972 NULL nohasharray
165107 +enable_so_mtdswap_init_fndecl_33972 mtdswap_init fndecl 2 33972 &enable_so_ocfs2_lock_refcount_tree_fndecl_33972
165108 +enable_so_st_nci_hci_dm_get_info_fndecl_33973 st_nci_hci_dm_get_info fndecl 3 33973 NULL
165109 +enable_so_pm8001_store_update_fw_fndecl_33975 pm8001_store_update_fw fndecl 4 33975 NULL
165110 +enable_so_max_indirect_segments_blkfront_info_33976 max_indirect_segments blkfront_info 0 33976 NULL
165111 +enable_so_cwarn_cm4000_dev_33978 cwarn cm4000_dev 0 33978 NULL
165112 +enable_so_buf_len_wmi_tlv_mgmt_rx_ev_33979 buf_len wmi_tlv_mgmt_rx_ev 0 33979 NULL
165113 +enable_so_usbat_bulk_write_fndecl_33983 usbat_bulk_write fndecl 3-4 33983 NULL
165114 +enable_so_unit_off_ore_striping_info_33989 unit_off ore_striping_info 0 33989 NULL
165115 +enable_so_size_fjes_hw_resource_33991 size fjes_hw_resource 0 33991 NULL
165116 +enable_so_sectorsize_scrub_ctx_33993 sectorsize scrub_ctx 0 33993 NULL
165117 +enable_so_num_ioim_reqs_bfa_iocfc_fwcfg_s_33994 num_ioim_reqs bfa_iocfc_fwcfg_s 0 33994 NULL nohasharray
165118 +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
165119 +enable_so_count_xfs_attr_sf_hdr_33996 count xfs_attr_sf_hdr 0 33996 NULL
165120 +enable_so_dib9000_risc_apb_access_write_fndecl_34004 dib9000_risc_apb_access_write fndecl 5 34004 NULL
165121 +enable_so_batadv_tvlv_unicast_send_fndecl_34005 batadv_tvlv_unicast_send fndecl 7 34005 NULL
165122 +enable_so_rxextrahdrroom_dma_info_34007 rxextrahdrroom dma_info 0 34007 NULL
165123 +enable_so_ctxtcnt_qib_devdata_34012 ctxtcnt qib_devdata 0 34012 NULL
165124 +enable_so_size_vmw_cotable_info_34013 size vmw_cotable_info 0 34013 NULL nohasharray
165125 +enable_so_periodic_size_ehci_hcd_34013 periodic_size ehci_hcd 0 34013 &enable_so_size_vmw_cotable_info_34013
165126 +enable_so_wl12xx_spi_raw_read_fndecl_34014 wl12xx_spi_raw_read fndecl 4 34014 NULL nohasharray
165127 +enable_so_set_local_name_fndecl_34014 set_local_name fndecl 4 34014 &enable_so_wl12xx_spi_raw_read_fndecl_34014
165128 +enable_so_parent_len_fndecl_34020 parent_len fndecl 0 34020 NULL nohasharray
165129 +enable_so_uwb_rc_neh_grok_event_fndecl_34020 uwb_rc_neh_grok_event fndecl 3 34020 &enable_so_parent_len_fndecl_34020
165130 +enable_so___kvm_write_guest_page_fndecl_34021 __kvm_write_guest_page fndecl 2-5 34021 NULL
165131 +enable_so_membase_jsm_board_34030 membase jsm_board 0 34030 NULL
165132 +enable_so_size_edac_mc_layer_34031 size edac_mc_layer 0 34031 NULL nohasharray
165133 +enable_so_b_cnt_chip_select_34031 b_cnt chip_select 0 34031 &enable_so_size_edac_mc_layer_34031
165134 +enable_so_strlen_fndecl_34033 strlen fndecl 0 34033 NULL
165135 +enable_so_mmc_switch_status_fndecl_34034 mmc_switch_status fndecl 0 34034 NULL
165136 +enable_so_blksize_sdio_cis_34036 blksize sdio_cis 0 34036 NULL
165137 +enable_so_sector_number_blkif_request_discard_34039 sector_number blkif_request_discard 0 34039 NULL nohasharray
165138 +enable_so_wil_addba_tx_request_fndecl_34039 wil_addba_tx_request fndecl 3 34039 &enable_so_sector_number_blkif_request_discard_34039
165139 +enable_so_req_bio_endio_fndecl_34041 req_bio_endio fndecl 3-4 34041 NULL nohasharray
165140 +enable_so_conf_read_fndecl_34041 conf_read fndecl 3 34041 &enable_so_req_bio_endio_fndecl_34041
165141 +enable_so_len_hdlcdrv_hdlcrx_34043 len hdlcdrv_hdlcrx 0 34043 NULL
165142 +enable_so_dma_size_nx_host_rds_ring_34047 dma_size nx_host_rds_ring 0 34047 NULL
165143 +enable_so_ide_do_setfeature_fndecl_34050 ide_do_setfeature fndecl 3 34050 NULL
165144 +enable_so_sys_mmap_pgoff_fndecl_34056 sys_mmap_pgoff fndecl 2 34056 NULL
165145 +enable_so_cdc_ncm_change_mtu_fndecl_34062 cdc_ncm_change_mtu fndecl 2 34062 NULL
165146 +enable_so_lov_get_stripecnt_fndecl_34066 lov_get_stripecnt fndecl 0-3 34066 NULL
165147 +enable_so_gsm_control_modem_fndecl_34068 gsm_control_modem fndecl 3 34068 NULL
165148 +enable_so_memmap_exclude_ranges_fndecl_34071 memmap_exclude_ranges fndecl 3-4 34071 NULL nohasharray
165149 +enable_so_wb_bytes_nfs_page_34071 wb_bytes nfs_page 0 34071 &enable_so_memmap_exclude_ranges_fndecl_34071 nohasharray
165150 +enable_so_opt_val_tcp_repair_opt_34071 opt_val tcp_repair_opt 0 34071 &enable_so_wb_bytes_nfs_page_34071 nohasharray
165151 +enable_so_RLgLen_hfs_cat_file_34071 RLgLen hfs_cat_file 0 34071 &enable_so_opt_val_tcp_repair_opt_34071
165152 +enable_so_qp_alloc_guest_work_fndecl_34074 qp_alloc_guest_work fndecl 5-3 34074 NULL nohasharray
165153 +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
165154 +enable_so_bfad_iocmd_fruvpd_get_max_size_fndecl_34082 bfad_iocmd_fruvpd_get_max_size fndecl 0 34082 NULL
165155 +enable_so_isert_build_rdma_wr_fndecl_34085 isert_build_rdma_wr fndecl 5-6 34085 NULL
165156 +enable_so_rec_len_ext2_dir_entry_2_34086 rec_len ext2_dir_entry_2 0 34086 NULL nohasharray
165157 +enable_so_get_info_tcp_congestion_ops_34086 get_info tcp_congestion_ops 0 34086 &enable_so_rec_len_ext2_dir_entry_2_34086
165158 +enable_so_mst_node_alsz_ubifs_info_34087 mst_node_alsz ubifs_info 0 34087 NULL
165159 +enable_so_LFBsize_sis_video_info_34089 LFBsize sis_video_info 0 34089 NULL
165160 +enable_so___memblock_alloc_base_fndecl_34092 __memblock_alloc_base fndecl 2-1-0-3 34092 NULL
165161 +enable_so_dccm_len_iwl_cfg_34095 dccm_len iwl_cfg 0 34095 NULL
165162 +enable_so_max_frame_ft_sess_34098 max_frame ft_sess 0 34098 NULL nohasharray
165163 +enable_so_compat_SyS_mbind_fndecl_34098 compat_SyS_mbind fndecl 5 34098 &enable_so_max_frame_ft_sess_34098
165164 +enable_so_c_chmask_f_uac2_opts_34103 c_chmask f_uac2_opts 0 34103 NULL
165165 +enable_so_vme_user_read_fndecl_34105 vme_user_read fndecl 3 34105 NULL
165166 +enable_so_reg_read_fndecl_34106 reg_read fndecl 0 34106 NULL
165167 +enable_so_do_shmat_fndecl_34107 do_shmat fndecl 5 34107 NULL
165168 +enable_so___wa_xfer_setup_sizes_fndecl_34109 __wa_xfer_setup_sizes fndecl 0 34109 NULL
165169 +enable_so_lcd_right_margin_atyfb_par_34110 lcd_right_margin atyfb_par 0 34110 NULL
165170 +enable_so_reserved_eq_mlx4_func_cap_34117 reserved_eq mlx4_func_cap 0 34117 NULL
165171 +enable_so_chunk_size_lirc_driver_34118 chunk_size lirc_driver 0 34118 NULL
165172 +enable_so_qxl_alloc_bo_reserved_fndecl_34119 qxl_alloc_bo_reserved fndecl 3 34119 NULL
165173 +enable_so_nf_nat_ipv4_manip_pkt_fndecl_34120 nf_nat_ipv4_manip_pkt fndecl 2 34120 NULL
165174 +enable_so_cw1200_sdio_align_size_fndecl_34124 cw1200_sdio_align_size fndecl 2 34124 NULL nohasharray
165175 +enable_so_size_qlcnic_fw_dump_34124 size qlcnic_fw_dump 0 34124 &enable_so_cw1200_sdio_align_size_fndecl_34124
165176 +enable_so_nfs_vmtruncate_fndecl_34126 nfs_vmtruncate fndecl 2 34126 NULL
165177 +enable_so_ovs_fragment_fndecl_34127 ovs_fragment fndecl 4 34127 NULL
165178 +enable_so_do_command_fndecl_34128 do_command fndecl 0 34128 NULL
165179 +enable_so_digestsize_hash_tfm_34135 digestsize hash_tfm 0 34135 NULL
165180 +enable_so_dst_width_snd_pcm_plugin_34144 dst_width snd_pcm_plugin 0 34144 NULL
165181 +enable_so_substream_count_snd_pcm_str_34149 substream_count snd_pcm_str 0 34149 NULL
165182 +enable_so_object_size_kmem_cache_34151 object_size kmem_cache 0 34151 NULL
165183 +enable_so_vmax_packet_size_pwc_device_34153 vmax_packet_size pwc_device 0 34153 NULL
165184 +enable_so_sky2_change_mtu_fndecl_34157 sky2_change_mtu fndecl 2 34157 NULL nohasharray
165185 +enable_so_data_size_dm_ulog_request_34157 data_size dm_ulog_request 0 34157 &enable_so_sky2_change_mtu_fndecl_34157
165186 +enable_so_nb_if_sdio_packet_34158 nb if_sdio_packet 0 34158 NULL nohasharray
165187 +enable_so_usb_pipe_ua101_stream_34158 usb_pipe ua101_stream 0 34158 &enable_so_nb_if_sdio_packet_34158 nohasharray
165188 +enable_so_max_requests_rpcrdma_create_data_internal_34158 max_requests rpcrdma_create_data_internal 0 34158 &enable_so_usb_pipe_ua101_stream_34158
165189 +enable_so_krb5_decrypt_fndecl_34166 krb5_decrypt fndecl 5 34166 NULL
165190 +enable_so_save_mr_fndecl_34167 save_mr fndecl 4 34167 NULL
165191 +enable_so_blockmask_sddr55_card_info_34172 blockmask sddr55_card_info 0 34172 NULL
165192 +enable_so_osst_seek_sector_fndecl_34173 osst_seek_sector fndecl 3 34173 NULL
165193 +enable_so_bfad_iocmd_phy_update_fndecl_34178 bfad_iocmd_phy_update fndecl 0 34178 NULL
165194 +enable_so_buffers_pipe_inode_info_34187 buffers pipe_inode_info 0 34187 NULL
165195 +enable_so_sys_recv_fndecl_34188 sys_recv fndecl 3 34188 NULL
165196 +enable_so_new_oblock_dm_cache_migration_34189 new_oblock dm_cache_migration 0 34189 NULL
165197 +enable_so_si476x_radio_read_rds_blckcnt_blob_fndecl_34192 si476x_radio_read_rds_blckcnt_blob fndecl 3 34192 NULL
165198 +enable_so_length_dm_target_spec_34193 length dm_target_spec 0 34193 NULL
165199 +enable_so_map_length_scrub_recover_34196 map_length scrub_recover 0 34196 NULL
165200 +enable_so_write_room_tty_operations_34200 write_room tty_operations 0 34200 NULL
165201 +enable_so_cxgb4vf_change_mtu_fndecl_34204 cxgb4vf_change_mtu fndecl 2 34204 NULL
165202 +enable_so_cx23888_ir_rx_read_fndecl_34210 cx23888_ir_rx_read fndecl 3 34210 NULL nohasharray
165203 +enable_so_usbip_dump_buffer_fndecl_34210 usbip_dump_buffer fndecl 2 34210 &enable_so_cx23888_ir_rx_read_fndecl_34210
165204 +enable_so_xen_evtchn_max_channels_fndecl_34213 xen_evtchn_max_channels fndecl 0 34213 NULL
165205 +enable_so_snd_pcm_lib_write_fndecl_34216 snd_pcm_lib_write fndecl 0 34216 NULL
165206 +enable_so_new_sync_write_fndecl_34217 new_sync_write fndecl 0-3 34217 NULL
165207 +enable_so_total_out_z_stream_s_34221 total_out z_stream_s 0 34221 NULL
165208 +enable_so_ext4_expand_extra_isize_fndecl_34225 ext4_expand_extra_isize fndecl 2 34225 NULL
165209 +enable_so_ath6kl_wmi_simple_cmd_fndecl_34229 ath6kl_wmi_simple_cmd fndecl 2 34229 NULL nohasharray
165210 +enable_so___vxge_hw_channel_allocate_fndecl_34229 __vxge_hw_channel_allocate fndecl 3 34229 &enable_so_ath6kl_wmi_simple_cmd_fndecl_34229
165211 +enable_so_isdn_net_type_trans_fndecl_34232 isdn_net_type_trans fndecl 0 34232 NULL
165212 +enable_so_isdnhdlc_decode_fndecl_34233 isdnhdlc_decode fndecl 0 34233 NULL nohasharray
165213 +enable_so_m_len_s_mbuf_34233 m_len s_mbuf 0 34233 &enable_so_isdnhdlc_decode_fndecl_34233
165214 +enable_so_max_devs_supported_ipr_ioa_cfg_34240 max_devs_supported ipr_ioa_cfg 0 34240 NULL
165215 +enable_so_cfpkt_pad_trail_fndecl_34244 cfpkt_pad_trail fndecl 2 34244 NULL nohasharray
165216 +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
165217 +enable_so_agno_xfs_extent_busy_34245 agno xfs_extent_busy 0 34245 NULL
165218 +enable_so_pktgen_finalize_skb_fndecl_34253 pktgen_finalize_skb fndecl 3 34253 NULL nohasharray
165219 +enable_so_rss_cpus_vardecl_efx_c_34253 rss_cpus vardecl_efx.c 0 34253 &enable_so_pktgen_finalize_skb_fndecl_34253
165220 +enable_so___reserve_region_with_split_fndecl_34259 __reserve_region_with_split fndecl 3-2 34259 NULL nohasharray
165221 +enable_so_regmap_encx24j600_spi_read_fndecl_34259 regmap_encx24j600_spi_read fndecl 4 34259 &enable_so___reserve_region_with_split_fndecl_34259
165222 +enable_so_status_tulip_rx_desc_34260 status tulip_rx_desc 0 34260 NULL
165223 +enable_so_MaxTransactSize_smb2_negotiate_rsp_34261 MaxTransactSize smb2_negotiate_rsp 0 34261 NULL
165224 +enable_so_count_igbvf_ring_34264 count igbvf_ring 0 34264 NULL
165225 +enable_so_smiapp_read_8only_fndecl_34265 smiapp_read_8only fndecl 2 34265 NULL
165226 +enable_so_reg_read_smsc911x_ops_34274 reg_read smsc911x_ops 0 34274 NULL nohasharray
165227 +enable_so_dst_offset_scif_copy_work_34274 dst_offset scif_copy_work 0 34274 &enable_so_reg_read_smsc911x_ops_34274
165228 +enable_so_port_qib_pportdata_34275 port qib_pportdata 0 34275 NULL
165229 +enable_so_max_segs_mmc_host_34276 max_segs mmc_host 0 34276 NULL nohasharray
165230 +enable_so_tty_port_register_device_fndecl_34276 tty_port_register_device fndecl 3 34276 &enable_so_max_segs_mmc_host_34276
165231 +enable_so_vb2_core_queue_init_fndecl_34278 vb2_core_queue_init fndecl 0 34278 NULL
165232 +enable_so_btt_map_read_fndecl_34281 btt_map_read fndecl 0 34281 NULL
165233 +enable_so_buf_len_wmi_10_4_mgmt_rx_hdr_34285 buf_len wmi_10_4_mgmt_rx_hdr 0 34285 NULL
165234 +enable_so_ea_get_fndecl_34289 ea_get fndecl 3 34289 NULL nohasharray
165235 +enable_so_ocfs2_group_from_res_fndecl_34289 ocfs2_group_from_res fndecl 0 34289 &enable_so_ea_get_fndecl_34289
165236 +enable_so_cpu_msix_table_sz_MPT3SAS_ADAPTER_34295 cpu_msix_table_sz MPT3SAS_ADAPTER 0 34295 NULL
165237 +enable_so_skb_coalesce_rx_frag_fndecl_34296 skb_coalesce_rx_frag fndecl 3-4 34296 NULL
165238 +enable_so_edid_blocks_written_tc358743_state_34303 edid_blocks_written tc358743_state 0 34303 NULL
165239 +enable_so_fl_pg_order_sge_34307 fl_pg_order sge 0 34307 NULL
165240 +enable_so_p1_FS_QENTRY_34311 p1 FS_QENTRY 0 34311 NULL
165241 +enable_so_usb6fire_pcm_init_urb_fndecl_34318 usb6fire_pcm_init_urb fndecl 4 34318 NULL
165242 +enable_so_acm_tty_write_fndecl_34323 acm_tty_write fndecl 3 34323 NULL
165243 +enable_so_dccpd_ack_seq_dccp_skb_cb_34331 dccpd_ack_seq dccp_skb_cb 0 34331 NULL
165244 +enable_so_usb_alloc_stream_buffers_fndecl_34344 usb_alloc_stream_buffers fndecl 3 34344 NULL
165245 +enable_so_blkdev_minors_vardecl_dev_c_34365 blkdev_minors vardecl_dev.c 0 34365 NULL
165246 +enable_so_write_file_frameerrors_fndecl_34370 write_file_frameerrors fndecl 3 34370 NULL
165247 +enable_so_get_bad_peb_limit_fndecl_34374 get_bad_peb_limit fndecl 0-2 34374 NULL
165248 +enable_so_r_minimode_34384 r minimode 0 34384 NULL
165249 +enable_so_pfn_mthca_uar_34385 pfn mthca_uar 0 34385 NULL
165250 +enable_so_vd_blocknr_nilfs_vdesc_34386 vd_blocknr nilfs_vdesc 0 34386 NULL
165251 +enable_so_max_sge_rds_iw_device_34387 max_sge rds_iw_device 0 34387 NULL
165252 +enable_so_sel_read_handle_status_fndecl_34392 sel_read_handle_status fndecl 3 34392 NULL
165253 +enable_so_ath6kl_wmi_set_inact_period_fndecl_34398 ath6kl_wmi_set_inact_period fndecl 2 34398 NULL
165254 +enable_so_min_scaled_height_bttv_crop_34408 min_scaled_height bttv_crop 0 34408 NULL
165255 +enable_so___i2c_transfer_fndecl_34417 __i2c_transfer fndecl 0 34417 NULL
165256 +enable_so_w_minimode_34418 w minimode 0 34418 NULL
165257 +enable_so_rawv6_setsockopt_fndecl_34422 rawv6_setsockopt fndecl 5 34422 NULL
165258 +enable_so_fragsize_inet_cork_34425 fragsize inet_cork 0 34425 NULL
165259 +enable_so_vs_xdrsize_svc_version_34426 vs_xdrsize svc_version 0 34426 NULL
165260 +enable_so_meta_ino_num_f2fs_sb_info_34435 meta_ino_num f2fs_sb_info 0 34435 NULL
165261 +enable_so_ctrl_set_res_ver_fndecl_34447 ctrl_set_res_ver fndecl 3 34447 NULL
165262 +enable_so_window_len_regmap_range_node_34449 window_len regmap_range_node 0 34449 NULL
165263 +enable_so_copy_size_vmxnet3_tx_ctx_34453 copy_size vmxnet3_tx_ctx 0 34453 NULL
165264 +enable_so_exceptions_per_area_pstore_34460 exceptions_per_area pstore 0 34460 NULL
165265 +enable_so_offsets_size_binder_transaction_data_34461 offsets_size binder_transaction_data 0 34461 NULL nohasharray
165266 +enable_so_len_gsm_msg_34461 len gsm_msg 0 34461 &enable_so_offsets_size_binder_transaction_data_34461
165267 +enable_so_num_regs_regmap_irq_chip_34465 num_regs regmap_irq_chip 0 34465 NULL
165268 +enable_so_fd_copyin_fndecl_34468 fd_copyin fndecl 3 34468 NULL
165269 +enable_so_MaxCommands_DAC960_V1_Enquiry_34475 MaxCommands DAC960_V1_Enquiry 0 34475 NULL
165270 +enable_so_start_btrfs_ordered_extent_34479 start btrfs_ordered_extent 0 34479 NULL
165271 +enable_so_num_rx_queues_net_device_34480 num_rx_queues net_device 0 34480 NULL
165272 +enable_so_i2c_hid_command_fndecl_34481 i2c_hid_command fndecl 4 34481 NULL
165273 +enable_so_ocfs2_find_xe_in_bucket_fndecl_34483 ocfs2_find_xe_in_bucket fndecl 0 34483 NULL
165274 +enable_so_cp210x_get_config_fndecl_34486 cp210x_get_config fndecl 4 34486 NULL
165275 +enable_so_dma_bd_table_34490 dma bd_table 0 34490 NULL
165276 +enable_so_do_ipt_set_ctl_fndecl_34493 do_ipt_set_ctl fndecl 4 34493 NULL
165277 +enable_so_acpi_ex_get_serial_access_length_fndecl_34496 acpi_ex_get_serial_access_length fndecl 0-2 34496 NULL
165278 +enable_so_w_virtio_gpu_box_34509 w virtio_gpu_box 0 34509 NULL
165279 +enable_so_buf_len_rx_sci_port_34512 buf_len_rx sci_port 0 34512 NULL
165280 +enable_so_count_res_proc_context_34514 count res_proc_context 0 34514 NULL
165281 +enable_so_clk_enable_fndecl_34522 clk_enable fndecl 0 34522 NULL
165282 +enable_so_overflow_maj_vardecl_user_mad_c_34524 overflow_maj vardecl_user_mad.c 0 34524 NULL
165283 +enable_so_srp_free_req_fndecl_34531 srp_free_req fndecl 4 34531 NULL
165284 +enable_so_SavagePanelHeight_savagefb_par_34532 SavagePanelHeight savagefb_par 0 34532 NULL nohasharray
165285 +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
165286 +enable_so_speakup_file_write_fndecl_34533 speakup_file_write fndecl 3 34533 NULL
165287 +enable_so_bfad_iocmd_itnim_get_itnstats_fndecl_34534 bfad_iocmd_itnim_get_itnstats fndecl 0 34534 NULL nohasharray
165288 +enable_so_track_pfn_remap_fndecl_34534 track_pfn_remap fndecl 3-5 34534 &enable_so_bfad_iocmd_itnim_get_itnstats_fndecl_34534
165289 +enable_so_resid_sg_io_hdr_34541 resid sg_io_hdr 0 34541 NULL
165290 +enable_so_host_size_scsi_transport_template_34551 host_size scsi_transport_template 0 34551 NULL
165291 +enable_so_dvb_aplay_fndecl_34555 dvb_aplay fndecl 3 34555 NULL
165292 +enable_so_maximum_mfc_control_34558 maximum mfc_control 0 34558 NULL
165293 +enable_so_maxpacket_limit_usb_ep_34566 maxpacket_limit usb_ep 0 34566 NULL
165294 +enable_so_rx_ring_num_config_param_34571 rx_ring_num config_param 0 34571 NULL
165295 +enable_so_sb16_copy_from_user_fndecl_34575 sb16_copy_from_user fndecl 10-7-6 34575 NULL
165296 +enable_so_blkno_range2trim_34581 blkno range2trim 0 34581 NULL
165297 +enable_so_inum_ubifs_dent_node_34584 inum ubifs_dent_node 0 34584 NULL
165298 +enable_so_dwc3_ep0_start_trans_fndecl_34586 dwc3_ep0_start_trans fndecl 4 34586 NULL
165299 +enable_so_blk_queue_alignment_offset_fndecl_34591 blk_queue_alignment_offset fndecl 2 34591 NULL
165300 +enable_so_hcd_alloc_coherent_fndecl_34597 hcd_alloc_coherent fndecl 0-5 34597 NULL
165301 +enable_so_min_resource_constraint_34598 min resource_constraint 0 34598 NULL
165302 +enable_so_shmem_setxattr_fndecl_34600 shmem_setxattr fndecl 4 34600 NULL
165303 +enable_so_ath6kl_wmi_data_hdr_add_fndecl_34601 ath6kl_wmi_data_hdr_add fndecl 8 34601 NULL
165304 +enable_so_sys_sync_file_range_fndecl_34604 sys_sync_file_range fndecl 2-3 34604 NULL
165305 +enable_so___check_block_validity_fndecl_34606 __check_block_validity fndecl 0 34606 NULL
165306 +enable_so_end_shift_iwl_fw_dbg_dest_tlv_34608 end_shift iwl_fw_dbg_dest_tlv 0 34608 NULL
165307 +enable_so_bcm63xx_hsspi_do_txrx_fndecl_34614 bcm63xx_hsspi_do_txrx fndecl 0 34614 NULL nohasharray
165308 +enable_so_fip_dlen_fip_desc_34614 fip_dlen fip_desc 0 34614 &enable_so_bcm63xx_hsspi_do_txrx_fndecl_34614
165309 +enable_so_vram_total_vardecl_vesafb_c_34615 vram_total vardecl_vesafb.c 0 34615 NULL nohasharray
165310 +enable_so_size_vb2_vmalloc_buf_34615 size vb2_vmalloc_buf 0 34615 &enable_so_vram_total_vardecl_vesafb_c_34615
165311 +enable_so_ip_hdrlen_fndecl_34618 ip_hdrlen fndecl 0 34618 NULL
165312 +enable_so_cpu_npartitions_vardecl_linux_cpu_c_34622 cpu_npartitions vardecl_linux-cpu.c 0 34622 NULL
165313 +enable_so_batadv_tt_global_is_isolated_fndecl_34623 batadv_tt_global_is_isolated fndecl 3 34623 NULL
165314 +enable_so_pm_qos_power_read_fndecl_34624 pm_qos_power_read fndecl 3 34624 NULL
165315 +enable_so_ace_change_mtu_fndecl_34639 ace_change_mtu fndecl 2 34639 NULL
165316 +enable_so_hsc_write_fndecl_34640 hsc_write fndecl 3 34640 NULL
165317 +enable_so_idef6cpy_gru_control_block_extended_34646 idef6cpy gru_control_block_extended 0 34646 NULL
165318 +enable_so_ramdisk_store_fndecl_34654 ramdisk_store fndecl 4 34654 NULL
165319 +enable_so_uwb_est_used_vardecl_est_c_34662 uwb_est_used vardecl_est.c 0 34662 NULL
165320 +enable_so_init_evtlog_size_iwl_fw_34663 init_evtlog_size iwl_fw 0 34663 NULL
165321 +enable_so_ext4_convert_unwritten_extents_endio_fndecl_34667 ext4_convert_unwritten_extents_endio fndecl 0 34667 NULL
165322 +enable_so_num_leaves_cpu_cacheinfo_34676 num_leaves cpu_cacheinfo 0 34676 NULL
165323 +enable_so_inode_ext4_dir_entry_2_34680 inode ext4_dir_entry_2 0 34680 NULL nohasharray
165324 +enable_so_acpi_copy_property_array_string_fndecl_34680 acpi_copy_property_array_string fndecl 0 34680 &enable_so_inode_ext4_dir_entry_2_34680
165325 +enable_so_pnp_add_mem_resource_fndecl_34681 pnp_add_mem_resource fndecl 3-2 34681 NULL
165326 +enable_so_offset_ethtool_eeprom_34683 offset ethtool_eeprom 0 34683 NULL
165327 +enable_so_snd_pcm_hw_param_value_min_fndecl_34686 snd_pcm_hw_param_value_min fndecl 0 34686 NULL
165328 +enable_so_bassinit_CHIPDESC_34688 bassinit CHIPDESC 0 34688 NULL nohasharray
165329 +enable_so_slip_maxdev_vardecl_slip_c_34688 slip_maxdev vardecl_slip.c 0 34688 &enable_so_bassinit_CHIPDESC_34688
165330 +enable_so_radeon_ring_init_fndecl_34693 radeon_ring_init fndecl 3 34693 NULL
165331 +enable_so_simple_read_from_buffer_fndecl_34694 simple_read_from_buffer fndecl 2-5 34694 NULL
165332 +enable_so_ceph_get_direct_page_vector_fndecl_34695 ceph_get_direct_page_vector fndecl 2 34695 NULL
165333 +enable_so_max_payload_fc_fcp_pkt_34696 max_payload fc_fcp_pkt 0 34696 NULL
165334 +enable_so_out_clock_max_aptina_pll_limits_34698 out_clock_max aptina_pll_limits 0 34698 NULL
165335 +enable_so_writesize_mtd_info_34702 writesize mtd_info 0 34702 NULL
165336 +enable_so_efi_memmap_efi_info_34704 efi_memmap efi_info 0 34704 NULL
165337 +enable_so_sel_read_policy_fndecl_34712 sel_read_policy fndecl 3 34712 NULL
165338 +enable_so_gfs2_log_alloc_bio_fndecl_34714 gfs2_log_alloc_bio fndecl 2 34714 NULL
165339 +enable_so_kvm_write_guest_virt_system_fndecl_34715 kvm_write_guest_virt_system fndecl 4-2 34715 NULL
165340 +enable_so_in_sector_offset_vardecl_floppy_c_34720 in_sector_offset vardecl_floppy.c 0 34720 NULL
165341 +enable_so_cache_word_size_regmap_34722 cache_word_size regmap 0 34722 NULL
165342 +enable_so_W6692_empty_Dfifo_fndecl_34725 W6692_empty_Dfifo fndecl 2 34725 NULL nohasharray
165343 +enable_so_tx_num_pgs_tp_params_34725 tx_num_pgs tp_params 0 34725 &enable_so_W6692_empty_Dfifo_fndecl_34725
165344 +enable_so_ocfs2_dx_dir_format_cluster_fndecl_34730 ocfs2_dx_dir_format_cluster fndecl 6 34730 NULL nohasharray
165345 +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
165346 +enable_so_wa_xfer_create_subset_sg_fndecl_34731 wa_xfer_create_subset_sg fndecl 2-3 34731 NULL
165347 +enable_so_memblock_double_array_fndecl_34732 memblock_double_array fndecl 3-2 34732 NULL
165348 +enable_so_trunc_start_fndecl_34735 trunc_start fndecl 3-2 34735 NULL nohasharray
165349 +enable_so__c4iw_write_mem_inline_fndecl_34735 _c4iw_write_mem_inline fndecl 3 34735 &enable_so_trunc_start_fndecl_34735
165350 +enable_so_flags_rtl8187b_rx_hdr_34741 flags rtl8187b_rx_hdr 0 34741 NULL
165351 +enable_so_inbuf_dma_usbhid_device_34742 inbuf_dma usbhid_device 0 34742 NULL
165352 +enable_so_blockshift_sddr09_card_info_34748 blockshift sddr09_card_info 0 34748 NULL
165353 +enable_so_u132_hcd_bulk_input_recv_fndecl_34756 u132_hcd_bulk_input_recv fndecl 4 34756 NULL nohasharray
165354 +enable_so_acct_stack_growth_fndecl_34756 acct_stack_growth fndecl 3-2 34756 &enable_so_u132_hcd_bulk_input_recv_fndecl_34756 nohasharray
165355 +enable_so_nfs4_validate_mount_data_fndecl_34756 nfs4_validate_mount_data fndecl 0 34756 &enable_so_acct_stack_growth_fndecl_34756
165356 +enable_so_extent_size_ecryptfs_crypt_stat_34757 extent_size ecryptfs_crypt_stat 0 34757 NULL nohasharray
165357 +enable_so_zone_spare_adfs_discrecord_34757 zone_spare adfs_discrecord 0 34757 &enable_so_extent_size_ecryptfs_crypt_stat_34757
165358 +enable_so_ssb_bus_pcmciabus_register_fndecl_34759 ssb_bus_pcmciabus_register fndecl 3 34759 NULL
165359 +enable_so_qla2x00_mem_alloc_fndecl_34771 qla2x00_mem_alloc fndecl 3-2 34771 NULL
165360 +enable_so_add_ballooned_pages_fndecl_34773 add_ballooned_pages fndecl 1 34773 NULL
165361 +enable_so_hvt_op_write_fndecl_34774 hvt_op_write fndecl 3 34774 NULL
165362 +enable_so_cyapa_i2c_pip_read_fndecl_34788 cyapa_i2c_pip_read fndecl 3 34788 NULL
165363 +enable_so_qxl_image_alloc_objects_fndecl_34790 qxl_image_alloc_objects fndecl 4-5 34790 NULL
165364 +enable_so_sizeimage_soc_camera_device_34794 sizeimage soc_camera_device 0 34794 NULL nohasharray
165365 +enable_so_addrlen_svc_deferred_req_34794 addrlen svc_deferred_req 0 34794 &enable_so_sizeimage_soc_camera_device_34794
165366 +enable_so_rq_count_st_card_info_34798 rq_count st_card_info 0 34798 NULL
165367 +enable_so_nfs_write_end_fndecl_34801 nfs_write_end fndecl 3-5 34801 NULL nohasharray
165368 +enable_so_num_atmel_uart_data_34801 num atmel_uart_data 0 34801 &enable_so_nfs_write_end_fndecl_34801
165369 +enable_so_num_q_vectors_ixgbe_adapter_34808 num_q_vectors ixgbe_adapter 0 34808 NULL
165370 +enable_so_wBlockID_ms_bootblock_header_34809 wBlockID ms_bootblock_header 0 34809 NULL
165371 +enable_so_page_size_flash_info_34810 page_size flash_info 0 34810 NULL
165372 +enable_so_rcv_array_groups_hfi1_ctxtdata_34813 rcv_array_groups hfi1_ctxtdata 0 34813 NULL
165373 +enable_so_blk_cnt_os_dat_entry_s_34817 blk_cnt os_dat_entry_s 0 34817 NULL
165374 +enable_so_lbs_lowsnr_write_fndecl_34822 lbs_lowsnr_write fndecl 3 34822 NULL
165375 +enable_so_wps_ie_len_mwifiex_private_34823 wps_ie_len mwifiex_private 0 34823 NULL nohasharray
165376 +enable_so_alg_key_len_xfrm_algo_34823 alg_key_len xfrm_algo 0 34823 &enable_so_wps_ie_len_mwifiex_private_34823
165377 +enable_so_madvise_behavior_fndecl_34827 madvise_behavior fndecl 4-3 34827 NULL
165378 +enable_so_mwifiex_usb_submit_rx_urb_fndecl_34829 mwifiex_usb_submit_rx_urb fndecl 2 34829 NULL
165379 +enable_so_rcvegrbufs_perchunk_qib_ctxtdata_34831 rcvegrbufs_perchunk qib_ctxtdata 0 34831 NULL
165380 +enable_so_xenvif_check_gop_fndecl_34832 xenvif_check_gop fndecl 0 34832 NULL
165381 +enable_so_unix_dgram_connect_fndecl_34836 unix_dgram_connect fndecl 3 34836 NULL
165382 +enable_so_eblks_mtdswap_dev_34840 eblks mtdswap_dev 0 34840 NULL nohasharray
165383 +enable_so_setsockopt_fndecl_34840 setsockopt fndecl 5 34840 &enable_so_eblks_mtdswap_dev_34840
165384 +enable_so_in_usbnet_34842 in usbnet 0 34842 NULL
165385 +enable_so_vma_end_reservation_fndecl_34848 vma_end_reservation fndecl 3 34848 NULL nohasharray
165386 +enable_so_ath6kl_wmi_create_pstream_cmd_fndecl_34848 ath6kl_wmi_create_pstream_cmd fndecl 2 34848 &enable_so_vma_end_reservation_fndecl_34848
165387 +enable_so_nfsd_vfs_write_fndecl_34850 nfsd_vfs_write fndecl 6 34850 NULL
165388 +enable_so_good_peb_count_ubi_device_34853 good_peb_count ubi_device 0 34853 NULL nohasharray
165389 +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
165390 +enable_so_fw_iso_buffer_init_fndecl_34853 fw_iso_buffer_init fndecl 3 34853 &enable_so_log_sz_mlx5_flow_table_group_34853
165391 +enable_so_nilfs_ioctl_do_get_suinfo_fndecl_34854 nilfs_ioctl_do_get_suinfo fndecl 6 34854 NULL
165392 +enable_so_max_msix_vectors_fm10k_mac_info_34860 max_msix_vectors fm10k_mac_info 0 34860 NULL
165393 +enable_so_tipc_link_set_mtu_fndecl_34861 tipc_link_set_mtu fndecl 2 34861 NULL nohasharray
165394 +enable_so_gk20a_instobj_ctor_iommu_fndecl_34861 gk20a_instobj_ctor_iommu fndecl 2 34861 &enable_so_tipc_link_set_mtu_fndecl_34861
165395 +enable_so_pfkey_recvmsg_fndecl_34863 pfkey_recvmsg fndecl 3 34863 NULL nohasharray
165396 +enable_so_s_map_size_adfs_sb_info_34863 s_map_size adfs_sb_info 0 34863 &enable_so_pfkey_recvmsg_fndecl_34863
165397 +enable_so_odm_num_comps_pnfs_osd_data_map_34865 odm_num_comps pnfs_osd_data_map 0 34865 NULL
165398 +enable_so_size_g2d_frame_34866 size g2d_frame 0 34866 NULL
165399 +enable_so_sddr09_writeX_fndecl_34870 sddr09_writeX fndecl 5-7 34870 NULL
165400 +enable_so_in_len_tso_state_34871 in_len tso_state 0 34871 NULL
165401 +enable_so_dout_xfer_len_sg_io_v4_34879 dout_xfer_len sg_io_v4 0 34879 NULL
165402 +enable_so_mmc_flush_cache_fndecl_34882 mmc_flush_cache fndecl 0 34882 NULL
165403 +enable_so_bgx_get_lmac_count_fndecl_34883 bgx_get_lmac_count fndecl 0 34883 NULL
165404 +enable_so_drm_cvt_mode_fndecl_34886 drm_cvt_mode fndecl 3-2-4 34886 NULL
165405 +enable_so_Wa_tvnorm_34892 Wa tvnorm 0 34892 NULL
165406 +enable_so_vb2_dma_sg_alloc_fndecl_34894 vb2_dma_sg_alloc fndecl 2 34894 NULL nohasharray
165407 +enable_so_len_coda_ioctl_out_34894 len coda_ioctl_out 0 34894 &enable_so_vb2_dma_sg_alloc_fndecl_34894
165408 +enable_so_soc_tplg_create_tlv_db_scale_fndecl_34898 soc_tplg_create_tlv_db_scale fndecl 0 34898 NULL
165409 +enable_so_sb_logstart_xfs_sb_34900 sb_logstart xfs_sb 0 34900 NULL
165410 +enable_so_fat_ent_read_fndecl_34902 fat_ent_read fndecl 0-3 34902 NULL
165411 +enable_so_block_size_ath6kl_mbox_info_34904 block_size ath6kl_mbox_info 0 34904 NULL
165412 +enable_so_vxlan_fdb_replace_fndecl_34912 vxlan_fdb_replace fndecl 4 34912 NULL
165413 +enable_so_irq_of_parse_and_map_fndecl_34917 irq_of_parse_and_map fndecl 0 34917 NULL nohasharray
165414 +enable_so_num_channels_ad5380_chip_info_34917 num_channels ad5380_chip_info 0 34917 &enable_so_irq_of_parse_and_map_fndecl_34917
165415 +enable_so_ath10k_htc_alloc_skb_fndecl_34920 ath10k_htc_alloc_skb fndecl 2 34920 NULL
165416 +enable_so_consume_size_vmci_qp_alloc_info_34922 consume_size vmci_qp_alloc_info 0 34922 NULL
165417 +enable_so_rcc__DMABUFFERENTRY_34925 rcc _DMABUFFERENTRY 0 34925 NULL
165418 +enable_so_shared_secret_len_net_conf_34926 shared_secret_len net_conf 0 34926 NULL
165419 +enable_so_port_fops_write_fndecl_34928 port_fops_write fndecl 3 34928 NULL
165420 +enable_so_len_wil6210_mbox_hdr_34930 len wil6210_mbox_hdr 0 34930 NULL
165421 +enable_so_swiotlb_init_with_tbl_fndecl_34935 swiotlb_init_with_tbl fndecl 2 34935 NULL
165422 +enable_so_register_sound_special_fndecl_34937 register_sound_special fndecl 2 34937 NULL
165423 +enable_so_recv_resync_read_fndecl_34939 recv_resync_read fndecl 2 34939 NULL
165424 +enable_so_max_receive_fw_card_34941 max_receive fw_card 0 34941 NULL
165425 +enable_so_host_int_add_wep_key_bss_ap_fndecl_34945 host_int_add_wep_key_bss_ap fndecl 3 34945 NULL nohasharray
165426 +enable_so_evm_read_key_fndecl_34945 evm_read_key fndecl 3 34945 &enable_so_host_int_add_wep_key_bss_ap_fndecl_34945
165427 +enable_so_ips_scmd_buf_write_fndecl_34946 ips_scmd_buf_write fndecl 3 34946 NULL
165428 +enable_so_bio_kmalloc_fndecl_34947 bio_kmalloc fndecl 2 34947 NULL
165429 +enable_so_reiserfs_get_block_create_0_fndecl_34954 reiserfs_get_block_create_0 fndecl 2 34954 NULL
165430 +enable_so_fs_path_add_path_fndecl_34955 fs_path_add_path fndecl 0 34955 NULL
165431 +enable_so_dns_resolver_read_fndecl_34961 dns_resolver_read fndecl 3 34961 NULL
165432 +enable_so_n_it_fw_ohci_34963 n_it fw_ohci 0 34963 NULL
165433 +enable_so_simple_alloc_urb_fndecl_34966 simple_alloc_urb fndecl 3-2 34966 NULL
165434 +enable_so_s35390a_get_reg_fndecl_34971 s35390a_get_reg fndecl 4 34971 NULL
165435 +enable_so_items_snd_soc_tplg_enum_control_34973 items snd_soc_tplg_enum_control 0 34973 NULL nohasharray
165436 +enable_so_cw1200_queue_stats_init_fndecl_34973 cw1200_queue_stats_init fndecl 2 34973 &enable_so_items_snd_soc_tplg_enum_control_34973
165437 +enable_so_at24_bin_write_fndecl_34977 at24_bin_write fndecl 6-5 34977 NULL nohasharray
165438 +enable_so_gcr_base_intel_pmc_ipc_dev_34977 gcr_base intel_pmc_ipc_dev 0 34977 &enable_so_at24_bin_write_fndecl_34977
165439 +enable_so_rfkill_fop_read_fndecl_34980 rfkill_fop_read fndecl 3 34980 NULL
165440 +enable_so_amdgpu_cgs_add_irq_source_fndecl_34994 amdgpu_cgs_add_irq_source fndecl 3 34994 NULL
165441 +enable_so_kfd_gtt_sa_init_fndecl_34996 kfd_gtt_sa_init fndecl 3-2 34996 NULL
165442 +enable_so_error_elp_while_tx_read_fndecl_35002 error_elp_while_tx_read fndecl 3 35002 NULL
165443 +enable_so_rx_ring_count_ixgbe_adapter_35004 rx_ring_count ixgbe_adapter 0 35004 NULL
165444 +enable_so_amb_len_i5k_amb_data_35007 amb_len i5k_amb_data 0 35007 NULL
165445 +enable_so_num_snaps_ceph_mds_snap_realm_35009 num_snaps ceph_mds_snap_realm 0 35009 NULL
165446 +enable_so_ocfs2_control_write_fndecl_35010 ocfs2_control_write fndecl 3 35010 NULL
165447 +enable_so_fc_set_mfs_fndecl_35014 fc_set_mfs fndecl 2 35014 NULL
165448 +enable_so_kzalloc_fndecl_35015 kzalloc fndecl 1 35015 NULL
165449 +enable_so_skb_zerocopy_fndecl_35016 skb_zerocopy fndecl 4-3 35016 NULL
165450 +enable_so_read_capacity_10_fndecl_35017 read_capacity_10 fndecl 0 35017 NULL
165451 +enable_so_no_ids_squashfs_super_block_35022 no_ids squashfs_super_block 0 35022 NULL
165452 +enable_so__add_sg_continuation_descriptor_fndecl_35026 _add_sg_continuation_descriptor fndecl 3 35026 NULL
165453 +enable_so_vSync_width_panel_info_35029 vSync_width panel_info 0 35029 NULL nohasharray
165454 +enable_so_set_nservers_fndecl_35029 set_nservers fndecl 2 35029 &enable_so_vSync_width_panel_info_35029
165455 +enable_so_vid_net_bridge_vlan_35032 vid net_bridge_vlan 0 35032 NULL
165456 +enable_so_w_nr_rds_ib_work_ring_35048 w_nr rds_ib_work_ring 0 35048 NULL
165457 +enable_so_uarc_size_mthca_profile_35053 uarc_size mthca_profile 0 35053 NULL
165458 +enable_so_n_ports_rp2_card_35055 n_ports rp2_card 0 35055 NULL
165459 +enable_so_tda18218_rd_reg_fndecl_35057 tda18218_rd_reg fndecl 2 35057 NULL
165460 +enable_so_iio_event_chrdev_read_fndecl_35062 iio_event_chrdev_read fndecl 3 35062 NULL
165461 +enable_so_ring_size_radeon_ring_35063 ring_size radeon_ring 0 35063 NULL
165462 +enable_so_pci_create_root_bus_fndecl_35065 pci_create_root_bus fndecl 2 35065 NULL
165463 +enable_so_jffs2_flash_direct_write_fndecl_35070 jffs2_flash_direct_write fndecl 3 35070 NULL
165464 +enable_so_altera_set_dr_post_fndecl_35072 altera_set_dr_post fndecl 2 35072 NULL
165465 +enable_so_set_video_mode_Timon_fndecl_35074 set_video_mode_Timon fndecl 4 35074 NULL
165466 +enable_so_number_scales_vardecl_powernow_k7_c_35080 number_scales vardecl_powernow-k7.c 0 35080 NULL
165467 +enable_so_get_iovec_page_array_fndecl_35081 get_iovec_page_array fndecl 0 35081 NULL
165468 +enable_so_inbuf_dma_ati_remote_35083 inbuf_dma ati_remote 0 35083 NULL nohasharray
165469 +enable_so_sys_kexec_file_load_fndecl_35083 sys_kexec_file_load fndecl 3 35083 &enable_so_inbuf_dma_ati_remote_35083 nohasharray
165470 +enable_so_dlm_alloc_pagevec_fndecl_35083 dlm_alloc_pagevec fndecl 1 35083 &enable_so_sys_kexec_file_load_fndecl_35083
165471 +enable_so_agi_newino_xfs_agi_35086 agi_newino xfs_agi 0 35086 NULL nohasharray
165472 +enable_so_ieee80211_add_rx_radiotap_header_fndecl_35086 ieee80211_add_rx_radiotap_header fndecl 4 35086 &enable_so_agi_newino_xfs_agi_35086 nohasharray
165473 +enable_so_reclaim_pages_fndecl_35086 reclaim_pages fndecl 3 35086 &enable_so_ieee80211_add_rx_radiotap_header_fndecl_35086
165474 +enable_so_nr_handles_xenbus_map_node_35091 nr_handles xenbus_map_node 0 35091 NULL
165475 +enable_so_ubi_calc_data_len_fndecl_35092 ubi_calc_data_len fndecl 0-3 35092 NULL
165476 +enable_so_er_data_len_gfs2_ea_request_35098 er_data_len gfs2_ea_request 0 35098 NULL
165477 +enable_so_num_vf_qps_i40e_pf_35102 num_vf_qps i40e_pf 0 35102 NULL
165478 +enable_so_prot_length_se_device_35103 prot_length se_device 0 35103 NULL nohasharray
165479 +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
165480 +enable_so_dma_common_get_sgtable_fndecl_35105 dma_common_get_sgtable fndecl 5 35105 NULL
165481 +enable_so___do_page_fault_fndecl_35107 __do_page_fault fndecl 3 35107 NULL
165482 +enable_so_ath6kl_wmi_set_bitrate_mask_fndecl_35108 ath6kl_wmi_set_bitrate_mask fndecl 2 35108 NULL nohasharray
165483 +enable_so_size_kcore_list_35108 size kcore_list 0 35108 &enable_so_ath6kl_wmi_set_bitrate_mask_fndecl_35108
165484 +enable_so_pn_raw_send_fndecl_35113 pn_raw_send fndecl 2 35113 NULL
165485 +enable_so_d_ino_vxfs_direct_35117 d_ino vxfs_direct 0 35117 NULL
165486 +enable_so_max_uc_mac_be_resources_35119 max_uc_mac be_resources 0 35119 NULL
165487 +enable_so_vxfs_bmap_indir_fndecl_35120 vxfs_bmap_indir fndecl 2-0-4 35120 NULL
165488 +enable_so_sm501_alloc_mem_fndecl_35125 sm501_alloc_mem fndecl 4 35125 NULL
165489 +enable_so_bch_empty_fifo_fndecl_35126 bch_empty_fifo fndecl 2 35126 NULL
165490 +enable_so_vmw_mob_create_fndecl_35127 vmw_mob_create fndecl 1 35127 NULL nohasharray
165491 +enable_so_path_setxattr_fndecl_35127 path_setxattr fndecl 4 35127 &enable_so_vmw_mob_create_fndecl_35127 nohasharray
165492 +enable_so_nilfs_sufile_get_suinfo_fndecl_35127 nilfs_sufile_get_suinfo fndecl 5-2 35127 &enable_so_path_setxattr_fndecl_35127
165493 +enable_so_FbMapSize_nvidia_par_35128 FbMapSize nvidia_par 0 35128 NULL nohasharray
165494 +enable_so_mlx4_en_create_rx_ring_fndecl_35128 mlx4_en_create_rx_ring fndecl 3-4 35128 &enable_so_FbMapSize_nvidia_par_35128
165495 +enable_so_channels_min_snd_pcm_hardware_35132 channels_min snd_pcm_hardware 0 35132 NULL nohasharray
165496 +enable_so_bio_add_pc_page_fndecl_35132 bio_add_pc_page fndecl 5-4 35132 &enable_so_channels_min_snd_pcm_hardware_35132
165497 +enable_so_xdr_restrict_buflen_fndecl_35133 xdr_restrict_buflen fndecl 2 35133 NULL
165498 +enable_so__osd_realloc_seg_fndecl_35139 _osd_realloc_seg fndecl 3 35139 NULL nohasharray
165499 +enable_so___get_free_pages_fndecl_35139 __get_free_pages fndecl 0 35139 &enable_so__osd_realloc_seg_fndecl_35139
165500 +enable_so_blockoffset_hfsplus_sb_info_35140 blockoffset hfsplus_sb_info 0 35140 NULL
165501 +enable_so_tx_ring_size_adm8211_priv_35143 tx_ring_size adm8211_priv 0 35143 NULL
165502 +enable_so_len_mwifiex_ie_types_header_35146 len mwifiex_ie_types_header 0 35146 NULL
165503 +enable_so_read_file_credit_dist_stats_fndecl_35148 read_file_credit_dist_stats fndecl 3 35148 NULL
165504 +enable_so_num_usb3_ports_xhci_hcd_35149 num_usb3_ports xhci_hcd 0 35149 NULL nohasharray
165505 +enable_so_readlink_copy_fndecl_35149 readlink_copy fndecl 2 35149 &enable_so_num_usb3_ports_xhci_hcd_35149
165506 +enable_so_br_fdb_fillbuf_fndecl_35152 br_fdb_fillbuf fndecl 0 35152 NULL
165507 +enable_so_pageshift_alauda_card_info_35154 pageshift alauda_card_info 0 35154 NULL
165508 +enable_so___alloc_dev_table_fndecl_35156 __alloc_dev_table fndecl 2 35156 NULL
165509 +enable_so_num_rx_qp_i40e_hw_capabilities_35165 num_rx_qp i40e_hw_capabilities 0 35165 NULL
165510 +enable_so_snd_pcm_oss_read2_fndecl_35168 snd_pcm_oss_read2 fndecl 3-0 35168 NULL nohasharray
165511 +enable_so_count_sgmap_35168 count sgmap 0 35168 &enable_so_snd_pcm_oss_read2_fndecl_35168
165512 +enable_so_aux_ulist_node_35169 aux ulist_node 0 35169 NULL
165513 +enable_so_mlx4_en_hwtstamp_get_fndecl_35174 mlx4_en_hwtstamp_get fndecl 0 35174 NULL
165514 +enable_so_memblock_size_vxge_hw_fifo_config_35179 memblock_size vxge_hw_fifo_config 0 35179 NULL nohasharray
165515 +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
165516 +enable_so_blk_rq_count_integrity_sg_fndecl_35185 blk_rq_count_integrity_sg fndecl 0 35185 NULL
165517 +enable_so___sound_insert_unit_fndecl_35186 __sound_insert_unit fndecl 4-5 35186 NULL
165518 +enable_so_wHeight_uvc_frame_35189 wHeight uvc_frame 0 35189 NULL
165519 +enable_so_ah_alloc_tmp_fndecl_35193 ah_alloc_tmp fndecl 2-3 35193 NULL
165520 +enable_so_do_dccp_setsockopt_fndecl_35194 do_dccp_setsockopt fndecl 5 35194 NULL nohasharray
165521 +enable_so_intel_sdvo_write_cmd_fndecl_35194 intel_sdvo_write_cmd fndecl 4 35194 &enable_so_do_dccp_setsockopt_fndecl_35194
165522 +enable_so_jffs2_security_setxattr_fndecl_35199 jffs2_security_setxattr fndecl 5 35199 NULL
165523 +enable_so_copy_gadget_strings_fndecl_35202 copy_gadget_strings fndecl 3-2 35202 NULL
165524 +enable_so_new_lockspace_fndecl_35208 new_lockspace fndecl 4 35208 NULL
165525 +enable_so_tx_ring_size_pcnet32_private_35210 tx_ring_size pcnet32_private 0 35210 NULL
165526 +enable_so_xfs_ialloc_inode_init_fndecl_35212 xfs_ialloc_inode_init fndecl 6-5 35212 NULL
165527 +enable_so_maxpacksize_snd_usb_endpoint_35216 maxpacksize snd_usb_endpoint 0 35216 NULL nohasharray
165528 +enable_so_sset_mask_ethtool_sset_info_35216 sset_mask ethtool_sset_info 0 35216 &enable_so_maxpacksize_snd_usb_endpoint_35216
165529 +enable_so_snd_pcm_add_chmap_ctls_fndecl_35223 snd_pcm_add_chmap_ctls fndecl 4 35223 NULL
165530 +enable_so_vmbus_sendpacket_ctl_fndecl_35225 vmbus_sendpacket_ctl fndecl 3 35225 NULL
165531 +enable_so_root_blkno_ocfs2_super_35227 root_blkno ocfs2_super 0 35227 NULL
165532 +enable_so_d_off_p9_dirent_35247 d_off p9_dirent 0 35247 NULL nohasharray
165533 +enable_so_policy_idx_hmask_netns_xfrm_35247 policy_idx_hmask netns_xfrm 0 35247 &enable_so_d_off_p9_dirent_35247
165534 +enable_so_whc_urb_dequeue_fndecl_35255 whc_urb_dequeue fndecl 3 35255 NULL nohasharray
165535 +enable_so_oprofile_buffer_size_vardecl_35255 oprofile_buffer_size vardecl 0 35255 &enable_so_whc_urb_dequeue_fndecl_35255
165536 +enable_so_max_gs_mthca_srq_35258 max_gs mthca_srq 0 35258 NULL
165537 +enable_so_dm_bm_write_lock_fndecl_35261 dm_bm_write_lock fndecl 2 35261 NULL
165538 +enable_so_gss_unwrap_kerberos_fndecl_35263 gss_unwrap_kerberos fndecl 2 35263 NULL
165539 +enable_so_wstatus_usblp_35266 wstatus usblp 0 35266 NULL
165540 +enable_so_r592_test_io_error_fndecl_35267 r592_test_io_error fndecl 0 35267 NULL
165541 +enable_so_sparse_early_mem_maps_alloc_node_fndecl_35270 sparse_early_mem_maps_alloc_node fndecl 4 35270 NULL
165542 +enable_so_rsp_size_ipmi_smi_msg_35282 rsp_size ipmi_smi_msg 0 35282 NULL
165543 +enable_so_maxburst_snd_dmaengine_dai_dma_data_35287 maxburst snd_dmaengine_dai_dma_data 0 35287 NULL
165544 +enable_so_ceph_msg_data_advance_fndecl_35288 ceph_msg_data_advance fndecl 2 35288 NULL
165545 +enable_so_offs_ubifs_wbuf_35290 offs ubifs_wbuf 0 35290 NULL
165546 +enable_so_xc_send_i2c_data_fndecl_35297 xc_send_i2c_data fndecl 3 35297 NULL
165547 +enable_so_maybe_indirect_to_direct_fndecl_35307 maybe_indirect_to_direct fndecl 6 35307 NULL
165548 +enable_so_p54_parse_default_country_fndecl_35309 p54_parse_default_country fndecl 3 35309 NULL nohasharray
165549 +enable_so_viacam_read_fndecl_35309 viacam_read fndecl 3 35309 &enable_so_p54_parse_default_country_fndecl_35309
165550 +enable_so_vmci_transport_dgram_enqueue_fndecl_35310 vmci_transport_dgram_enqueue fndecl 4 35310 NULL nohasharray
165551 +enable_so_walk_pud_range_fndecl_35310 walk_pud_range fndecl 0 35310 &enable_so_vmci_transport_dgram_enqueue_fndecl_35310
165552 +enable_so_ieee80211_tdls_mgmt_setup_fndecl_35316 ieee80211_tdls_mgmt_setup fndecl 10 35316 NULL
165553 +enable_so_btrfs_ordered_sum_size_fndecl_35326 btrfs_ordered_sum_size fndecl 0-2 35326 NULL
165554 +enable_so_l2cap_create_basic_pdu_fndecl_35327 l2cap_create_basic_pdu fndecl 3 35327 NULL
165555 +enable_so_channels_twl4030_priv_35329 channels twl4030_priv 0 35329 NULL nohasharray
165556 +enable_so_ssid_len_cfg80211_ibss_params_35329 ssid_len cfg80211_ibss_params 0 35329 &enable_so_channels_twl4030_priv_35329
165557 +enable_so_xb_suballoc_bit_ocfs2_xattr_block_35331 xb_suballoc_bit ocfs2_xattr_block 0 35331 NULL
165558 +enable_so_extra_msdu_postfix_len_lib80211_crypto_ops_35341 extra_msdu_postfix_len lib80211_crypto_ops 0 35341 NULL
165559 +enable_so_drCTFlSize_hfs_mdb_35349 drCTFlSize hfs_mdb 0 35349 NULL
165560 +enable_so_nr_pages_bts_buffer_35350 nr_pages bts_buffer 0 35350 NULL
165561 +enable_so_num_reg_mic_smpt_hw_info_35353 num_reg mic_smpt_hw_info 0 35353 NULL
165562 +enable_so_udf_get_pblock_meta25_fndecl_35356 udf_get_pblock_meta25 fndecl 4 35356 NULL
165563 +enable_so_cache_mode_control_mms114_data_35358 cache_mode_control mms114_data 0 35358 NULL
165564 +enable_so_efw_transaction_fndecl_35359 efw_transaction fndecl 5-7 35359 NULL
165565 +enable_so_hx8357_spi_write_array_fndecl_35364 hx8357_spi_write_array fndecl 3 35364 NULL
165566 +enable_so_IA_RX_BUF_SZ_vardecl_iphase_c_35365 IA_RX_BUF_SZ vardecl_iphase.c 0 35365 NULL
165567 +enable_so_previous_raid_disks_r5conf_35368 previous_raid_disks r5conf 0 35368 NULL nohasharray
165568 +enable_so_count_param_range_35368 count param_range 0 35368 &enable_so_previous_raid_disks_r5conf_35368 nohasharray
165569 +enable_so_input_pool_snd_seq_client_pool_35368 input_pool snd_seq_client_pool 0 35368 &enable_so_count_param_range_35368
165570 +enable_so_num_channels_ad7266_chan_info_35372 num_channels ad7266_chan_info 0 35372 NULL
165571 +enable_so_update_raid_disks_fndecl_35375 update_raid_disks fndecl 2 35375 NULL
165572 +enable_so_apei_exec_run_fndecl_35376 apei_exec_run fndecl 0 35376 NULL
165573 +enable_so_microcode_B_fe_size_dib9000_config_35377 microcode_B_fe_size dib9000_config 0 35377 NULL nohasharray
165574 +enable_so_drm_dp_mst_topology_mgr_init_fndecl_35377 drm_dp_mst_topology_mgr_init fndecl 4-5 35377 &enable_so_microcode_B_fe_size_dib9000_config_35377
165575 +enable_so_mmio_base_phys_radeonfb_info_35378 mmio_base_phys radeonfb_info 0 35378 NULL
165576 +enable_so_virtio_gpu_cmd_submit_fndecl_35382 virtio_gpu_cmd_submit fndecl 3 35382 NULL
165577 +enable_so_hc_erase_size_mmc_ext_csd_35384 hc_erase_size mmc_ext_csd 0 35384 NULL
165578 +enable_so_ath9k_hw_read_array_fndecl_35386 ath9k_hw_read_array fndecl 3 35386 NULL
165579 +enable_so_read_dma_fndecl_35389 read_dma fndecl 3 35389 NULL
165580 +enable_so_writeback_fndecl_35390 writeback fndecl 4-3 35390 NULL
165581 +enable_so_corrupt_data_fndecl_35395 corrupt_data fndecl 0-3 35395 NULL nohasharray
165582 +enable_so_sg_set_page_fndecl_35395 sg_set_page fndecl 3 35395 &enable_so_corrupt_data_fndecl_35395
165583 +enable_so_blk_queue_io_opt_fndecl_35405 blk_queue_io_opt fndecl 2 35405 NULL
165584 +enable_so_use_sg_st_buffer_35407 use_sg st_buffer 0 35407 NULL
165585 +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
165586 +enable_so__drbd_md_sync_page_io_fndecl_35411 _drbd_md_sync_page_io fndecl 3 35411 NULL
165587 +enable_so_cdce925_pll_set_rate_fndecl_35418 cdce925_pll_set_rate fndecl 3-2 35418 NULL
165588 +enable_so_ali15x3_smba_vardecl_i2c_ali15x3_c_35421 ali15x3_smba vardecl_i2c-ali15x3.c 0 35421 NULL
165589 +enable_so_cqc_entry_sz_mthca_dev_lim_35422 cqc_entry_sz mthca_dev_lim 0 35422 NULL
165590 +enable_so_fb_width_drm_fb_helper_surface_size_35426 fb_width drm_fb_helper_surface_size 0 35426 NULL
165591 +enable_so_btrfs_fdatawrite_range_fndecl_35427 btrfs_fdatawrite_range fndecl 2-3 35427 NULL
165592 +enable_so_xfs_bulkstat_one_compat_fndecl_35428 xfs_bulkstat_one_compat fndecl 2 35428 NULL
165593 +enable_so_offset_tx_buf_35429 offset tx_buf 0 35429 NULL
165594 +enable_so_bmAttributes_usb_ss_ep_comp_descriptor_35434 bmAttributes usb_ss_ep_comp_descriptor 0 35434 NULL
165595 +enable_so_ocfs2_prepare_refcount_change_for_del_fndecl_35442 ocfs2_prepare_refcount_change_for_del fndecl 4-3-2 35442 NULL
165596 +enable_so_major_gendisk_35443 major gendisk 0 35443 NULL
165597 +enable_so_wake_len_cfg80211_wowlan_tcp_35448 wake_len cfg80211_wowlan_tcp 0 35448 NULL nohasharray
165598 +enable_so_len_he_buff_35448 len he_buff 0 35448 &enable_so_wake_len_cfg80211_wowlan_tcp_35448
165599 +enable_so_ocfs2_truncate_file_fndecl_35455 ocfs2_truncate_file fndecl 3 35455 NULL
165600 +enable_so_octeon_create_droq_fndecl_35457 octeon_create_droq fndecl 4-3 35457 NULL
165601 +enable_so_bytes_to_read_mpt3_diag_read_buffer_35460 bytes_to_read mpt3_diag_read_buffer 0 35460 NULL
165602 +enable_so_drbd_send_fndecl_35461 drbd_send fndecl 4 35461 NULL
165603 +enable_so_sel_write_relabel_fndecl_35464 sel_write_relabel fndecl 3 35464 NULL
165604 +enable_so_width_physmap_flash_data_35470 width physmap_flash_data 0 35470 NULL
165605 +enable_so_qxl_monitors_config_set_fndecl_35471 qxl_monitors_config_set fndecl 6-5 35471 NULL nohasharray
165606 +enable_so_max_links_media_entity_35471 max_links media_entity 0 35471 &enable_so_qxl_monitors_config_set_fndecl_35471
165607 +enable_so___rpipe_set_descr_fndecl_35478 __rpipe_set_descr fndecl 0 35478 NULL
165608 +enable_so_length_wl1251_rx_descriptor_35483 length wl1251_rx_descriptor 0 35483 NULL
165609 +enable_so_ieee80211_report_disconnect_fndecl_35488 ieee80211_report_disconnect fndecl 3 35488 NULL
165610 +enable_so_onenand_read_fndecl_35491 onenand_read fndecl 2 35491 NULL nohasharray
165611 +enable_so_qxl_alloc_client_monitors_config_fndecl_35491 qxl_alloc_client_monitors_config fndecl 2 35491 &enable_so_onenand_read_fndecl_35491 nohasharray
165612 +enable_so_ptlrpcd_partner_group_size_vardecl_ptlrpcd_c_35491 ptlrpcd_partner_group_size vardecl_ptlrpcd.c 0 35491 &enable_so_qxl_alloc_client_monitors_config_fndecl_35491
165613 +enable_so_alloc_clips_fndecl_35492 alloc_clips fndecl 3 35492 NULL nohasharray
165614 +enable_so_f71805f_device_add_fndecl_35492 f71805f_device_add fndecl 1 35492 &enable_so_alloc_clips_fndecl_35492
165615 +enable_so_firm_send_command_fndecl_35493 firm_send_command fndecl 4 35493 NULL nohasharray
165616 +enable_so_nbox_drm_savage_cmdbuf_35493 nbox drm_savage_cmdbuf 0 35493 &enable_so_firm_send_command_fndecl_35493
165617 +enable_so_sched_feat_write_fndecl_35505 sched_feat_write fndecl 3 35505 NULL
165618 +enable_so_cnt_usnic_vnic_res_desc_35511 cnt usnic_vnic_res_desc 0 35511 NULL
165619 +enable_so___kfifo_dma_out_prepare_r_fndecl_35512 __kfifo_dma_out_prepare_r fndecl 4-5 35512 NULL
165620 +enable_so_dlci_change_mtu_fndecl_35513 dlci_change_mtu fndecl 2 35513 NULL
165621 +enable_so_acpi_nvs_register_fndecl_35515 acpi_nvs_register fndecl 2-1 35515 NULL
165622 +enable_so_do_raw_setsockopt_fndecl_35516 do_raw_setsockopt fndecl 5-0 35516 NULL
165623 +enable_so_install_special_mapping_fndecl_35519 install_special_mapping fndecl 3-2 35519 NULL
165624 +enable_so_count_atl1_rfd_ring_35523 count atl1_rfd_ring 0 35523 NULL
165625 +enable_so_shift_mlxsw_item_35524 shift mlxsw_item 0 35524 NULL
165626 +enable_so_clr_int_base_mlx4_fw_35529 clr_int_base mlx4_fw 0 35529 NULL
165627 +enable_so_additional_cdb_length_scsi_varlen_cdb_hdr_35533 additional_cdb_length scsi_varlen_cdb_hdr 0 35533 NULL
165628 +enable_so_find_inode_fndecl_35534 find_inode fndecl 2 35534 NULL
165629 +enable_so_gigaset_tty_receive_fndecl_35535 gigaset_tty_receive fndecl 4 35535 NULL
165630 +enable_so_phys_ck804xrom_window_35536 phys ck804xrom_window 0 35536 NULL
165631 +enable_so_ssp_send_instruction_fndecl_35549 ssp_send_instruction fndecl 5 35549 NULL
165632 +enable_so_inet_sendpage_fndecl_35554 inet_sendpage fndecl 4 35554 NULL
165633 +enable_so_vsync_ast_vbios_enhtable_35556 vsync ast_vbios_enhtable 0 35556 NULL
165634 +enable_so_rx_streaming_interval_read_fndecl_35560 rx_streaming_interval_read fndecl 3 35560 NULL
165635 +enable_so_ptrace_request_fndecl_35563 ptrace_request fndecl 3 35563 NULL
165636 +enable_so_data_offset_brcmf_proto_bcdc_header_35569 data_offset brcmf_proto_bcdc_header 0 35569 NULL nohasharray
165637 +enable_so_find_min_pfn_for_node_fndecl_35569 find_min_pfn_for_node fndecl 0 35569 &enable_so_data_offset_brcmf_proto_bcdc_header_35569
165638 +enable_so_edma_readl_fndecl_35573 edma_readl fndecl 0 35573 NULL
165639 +enable_so_cfg80211_mlme_auth_fndecl_35577 cfg80211_mlme_auth fndecl 14-9 35577 NULL
165640 +enable_so_cur_blksize_sdio_func_35582 cur_blksize sdio_func 0 35582 NULL nohasharray
165641 +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
165642 +enable_so_lbs_failcount_write_fndecl_35583 lbs_failcount_write fndecl 3 35583 NULL
165643 +enable_so_offset_inflate_state_35587 offset inflate_state 0 35587 NULL
165644 +enable_so_actual_length_usb_iso_packet_descriptor_35588 actual_length usb_iso_packet_descriptor 0 35588 NULL
165645 +enable_so_cyttsp_i2c_read_block_data_fndecl_35590 cyttsp_i2c_read_block_data fndecl 4 35590 NULL
165646 +enable_so_minor_start_rp2_card_35592 minor_start rp2_card 0 35592 NULL
165647 +enable_so_nfsd_write_fndecl_35594 nfsd_write fndecl 6 35594 NULL
165648 +enable_so_ext2_iget_fndecl_35598 ext2_iget fndecl 2 35598 NULL
165649 +enable_so_xfs_rtallocate_extent_block_fndecl_35604 xfs_rtallocate_extent_block fndecl 5-10 35604 NULL
165650 +enable_so_hback_porch_videomode_35606 hback_porch videomode 0 35606 NULL nohasharray
165651 +enable_so_count_nfs_direct_req_35606 count nfs_direct_req 0 35606 &enable_so_hback_porch_videomode_35606
165652 +enable_so_copy_ctl_value_to_user_fndecl_35608 copy_ctl_value_to_user fndecl 5 35608 NULL
165653 +enable_so_f2fs_iget_fndecl_35610 f2fs_iget fndecl 2 35610 NULL nohasharray
165654 +enable_so_flexcop_device_kmalloc_fndecl_35610 flexcop_device_kmalloc fndecl 1 35610 &enable_so_f2fs_iget_fndecl_35610
165655 +enable_so_blocksize_brcmf_sdio_35612 blocksize brcmf_sdio 0 35612 NULL
165656 +enable_so_sqp_demux_mlx4_caps_35613 sqp_demux mlx4_caps 0 35613 NULL nohasharray
165657 +enable_so_maxcontacts_mt_device_35613 maxcontacts mt_device 0 35613 &enable_so_sqp_demux_mlx4_caps_35613
165658 +enable_so_offset_lv_35617 offset lv 0 35617 NULL
165659 +enable_so_generic_perform_write_fndecl_35619 generic_perform_write fndecl 0-3 35619 NULL nohasharray
165660 +enable_so_ext4_update_final_de_fndecl_35619 ext4_update_final_de fndecl 2-3 35619 &enable_so_generic_perform_write_fndecl_35619 nohasharray
165661 +enable_so_count_fm10k_ring_35619 count fm10k_ring 0 35619 &enable_so_ext4_update_final_de_fndecl_35619
165662 +enable_so_ips_scmd_buf_read_fndecl_35622 ips_scmd_buf_read fndecl 3 35622 NULL nohasharray
165663 +enable_so_write_rio_fndecl_35622 write_rio fndecl 3 35622 &enable_so_ips_scmd_buf_read_fndecl_35622
165664 +enable_so_netxen_process_lro_fndecl_35630 netxen_process_lro fndecl 5-4 35630 NULL
165665 +enable_so_cciss_add_gendisk_fndecl_35636 cciss_add_gendisk fndecl 0 35636 NULL
165666 +enable_so_smsc47b397_device_add_fndecl_35649 smsc47b397_device_add fndecl 1 35649 NULL
165667 +enable_so_prism_build_supp_rates_fndecl_35650 prism_build_supp_rates fndecl 0 35650 NULL
165668 +enable_so_viafb_second_xres_vardecl_35651 viafb_second_xres vardecl 0 35651 NULL nohasharray
165669 +enable_so_broadsheet_spiflash_rewrite_sector_fndecl_35651 broadsheet_spiflash_rewrite_sector fndecl 2 35651 &enable_so_viafb_second_xres_vardecl_35651
165670 +enable_so_urb_size_uvc_streaming_35654 urb_size uvc_streaming 0 35654 NULL
165671 +enable_so_urb_enqueue_hc_driver_35656 urb_enqueue hc_driver 0 35656 NULL
165672 +enable_so_max_cmd_sgentries_ctlr_info_35659 max_cmd_sgentries ctlr_info 0 35659 NULL
165673 +enable_so_xfs_alloc_read_agfl_fndecl_35660 xfs_alloc_read_agfl fndecl 3 35660 NULL
165674 +enable_so_xfs_vm_direct_IO_fndecl_35663 xfs_vm_direct_IO fndecl 3 35663 NULL nohasharray
165675 +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
165676 +enable_so_printer_read_fndecl_35664 printer_read fndecl 3 35664 NULL
165677 +enable_so_ufx_ops_write_fndecl_35667 ufx_ops_write fndecl 3 35667 NULL
165678 +enable_so_numdevs_ore_components_35671 numdevs ore_components 0 35671 NULL
165679 +enable_so_qib_reg_user_mr_fndecl_35673 qib_reg_user_mr fndecl 2-3-4 35673 NULL
165680 +enable_so_ncntrs_qib_chip_specific_35675 ncntrs qib_chip_specific 0 35675 NULL
165681 +enable_so_rate_clk_core_35677 rate clk_core 0 35677 NULL
165682 +enable_so_read_into_fndecl_35681 read_into fndecl 2 35681 NULL nohasharray
165683 +enable_so_size_xpnet_message_35681 size xpnet_message 0 35681 &enable_so_read_into_fndecl_35681
165684 +enable_so_id_mfd_cell_35684 id mfd_cell 0 35684 NULL
165685 +enable_so_do_io_nd_blk_region_35687 do_io nd_blk_region 0 35687 NULL nohasharray
165686 +enable_so_rx_words_eob_pch_gbe_rx_desc_35687 rx_words_eob pch_gbe_rx_desc 0 35687 &enable_so_do_io_nd_blk_region_35687
165687 +enable_so_affs_extent_file_ofs_fndecl_35690 affs_extent_file_ofs fndecl 2 35690 NULL
165688 +enable_so_at_max_vardecl_35692 at_max vardecl 0 35692 NULL
165689 +enable_so_width_drm_radeon_tex_image_35693 width drm_radeon_tex_image 0 35693 NULL
165690 +enable_so_isert_map_data_buf_fndecl_35701 isert_map_data_buf fndecl 6-5-4 35701 NULL
165691 +enable_so_wil_pmc_alloc_fndecl_35702 wil_pmc_alloc fndecl 2-3 35702 NULL
165692 +enable_so_gfs2_write_alloc_required_fndecl_35708 gfs2_write_alloc_required fndecl 3-2 35708 NULL
165693 +enable_so_gcr_size_intel_pmc_ipc_dev_35709 gcr_size intel_pmc_ipc_dev 0 35709 NULL
165694 +enable_so_bnx2x_change_mtu_fndecl_35710 bnx2x_change_mtu fndecl 2 35710 NULL
165695 +enable_so_srp_post_send_fndecl_35713 srp_post_send fndecl 3 35713 NULL
165696 +enable_so_remote_nentries_xpc_channel_35714 remote_nentries xpc_channel 0 35714 NULL
165697 +enable_so_len_igb_tx_buffer_35715 len igb_tx_buffer 0 35715 NULL nohasharray
165698 +enable_so_credits_csio_q_35715 credits csio_q 0 35715 &enable_so_len_igb_tx_buffer_35715
165699 +enable_so_bio_add_page_fndecl_35718 bio_add_page fndecl 4-0-3 35718 NULL nohasharray
165700 +enable_so_RequestCredit_mpt3sas_facts_35718 RequestCredit mpt3sas_facts 0 35718 &enable_so_bio_add_page_fndecl_35718
165701 +enable_so_mxms_structlen_fndecl_35720 mxms_structlen fndecl 0 35720 NULL
165702 +enable_so_mod_num_sdma_vardecl_35721 mod_num_sdma vardecl 0 35721 NULL
165703 +enable_so_fdt_translate_address_fndecl_35726 fdt_translate_address fndecl 2-0 35726 NULL nohasharray
165704 +enable_so_add_port_fndecl_35726 add_port fndecl 2 35726 &enable_so_fdt_translate_address_fndecl_35726
165705 +enable_so_size_irq_routing_options_35727 size irq_routing_options 0 35727 NULL
165706 +enable_so_last_xfer_len_ide_cmd_35728 last_xfer_len ide_cmd 0 35728 NULL
165707 +enable_so_iscsi_pool_init_fndecl_35730 iscsi_pool_init fndecl 2-4 35730 NULL
165708 +enable_so_mwifiex_append_rate_tlv_fndecl_35735 mwifiex_append_rate_tlv fndecl 0 35735 NULL
165709 +enable_so_priv_size_data_queue_35740 priv_size data_queue 0 35740 NULL
165710 +enable_so_offset_ext4_io_end_35743 offset ext4_io_end 0 35743 NULL
165711 +enable_so_qib_uc_rcv_fndecl_35744 qib_uc_rcv fndecl 5 35744 NULL nohasharray
165712 +enable_so_ggtt_probe_common_fndecl_35744 ggtt_probe_common fndecl 2 35744 &enable_so_qib_uc_rcv_fndecl_35744
165713 +enable_so_alauda_write_data_fndecl_35748 alauda_write_data fndecl 3-2 35748 NULL
165714 +enable_so_goodix_i2c_read_fndecl_35755 goodix_i2c_read fndecl 4 35755 NULL nohasharray
165715 +enable_so__drbd_bm_total_weight_fndecl_35755 _drbd_bm_total_weight fndecl 0 35755 &enable_so_goodix_i2c_read_fndecl_35755 nohasharray
165716 +enable_so_c4_add_card_fndecl_35755 c4_add_card fndecl 3 35755 &enable_so__drbd_bm_total_weight_fndecl_35755
165717 +enable_so_left_qxl_urect_35760 left qxl_urect 0 35760 NULL
165718 +enable_so_scsi_sg_tablesize_iser_conn_35762 scsi_sg_tablesize iser_conn 0 35762 NULL
165719 +enable_so_fh_epd_frame_35764 fh epd_frame 0 35764 NULL
165720 +enable_so_channels_snd_usb_substream_35767 channels snd_usb_substream 0 35767 NULL
165721 +enable_so_virtscsi_compute_resid_fndecl_35772 virtscsi_compute_resid fndecl 2 35772 NULL nohasharray
165722 +enable_so_s_hdrwords_qib_qp_35772 s_hdrwords qib_qp 0 35772 &enable_so_virtscsi_compute_resid_fndecl_35772
165723 +enable_so_data0_sisusb_command_35773 data0 sisusb_command 0 35773 NULL
165724 +enable_so_arizona_find_fratio_fndecl_35779 arizona_find_fratio fndecl 0 35779 NULL
165725 +enable_so_mem_vardecl_matroxfb_base_c_35780 mem vardecl_matroxfb_base.c 0 35780 NULL
165726 +enable_so_uv_systab_efi_35786 uv_systab efi 0 35786 NULL
165727 +enable_so_encap_size_brnf_frag_data_35787 encap_size brnf_frag_data 0 35787 NULL
165728 +enable_so_alloc_mon_bin_get_35804 alloc mon_bin_get 0 35804 NULL
165729 +enable_so_send_ctrl_pipe_us_data_35813 send_ctrl_pipe us_data 0 35813 NULL
165730 +enable_so_used_tty_buffer_35815 used tty_buffer 0 35815 NULL
165731 +enable_so_number_of_controls_controlcache_6205_35817 number_of_controls controlcache_6205 0 35817 NULL
165732 +enable_so_rbio_orig_end_io_fndecl_35820 rbio_orig_end_io fndecl 2 35820 NULL
165733 +enable_so_headroom_caifsock_35821 headroom caifsock 0 35821 NULL
165734 +enable_so_leaf_cut_from_buffer_fndecl_35824 leaf_cut_from_buffer fndecl 4 35824 NULL
165735 +enable_so_rx_buffer_padding_efx_nic_type_35825 rx_buffer_padding efx_nic_type 0 35825 NULL
165736 +enable_so_VFP_kyrofb_info_35826 VFP kyrofb_info 0 35826 NULL
165737 +enable_so_cx231xx_v4l2_read_fndecl_35829 cx231xx_v4l2_read fndecl 3 35829 NULL nohasharray
165738 +enable_so_length_hfi1_packet_filter_command_35829 length hfi1_packet_filter_command 0 35829 &enable_so_cx231xx_v4l2_read_fndecl_35829
165739 +enable_so_env_end_mm_struct_35831 env_end mm_struct 0 35831 NULL nohasharray
165740 +enable_so_twl_load_sgl_fndecl_35831 twl_load_sgl fndecl 5 35831 &enable_so_env_end_mm_struct_35831 nohasharray
165741 +enable_so_num_pmkids_ndis_80211_capability_35831 num_pmkids ndis_80211_capability 0 35831 &enable_so_twl_load_sgl_fndecl_35831
165742 +enable_so_blocksize_hfsplus_vh_35832 blocksize hfsplus_vh 0 35832 NULL
165743 +enable_so_srq_size_srpt_device_35833 srq_size srpt_device 0 35833 NULL
165744 +enable_so_request_sz_MPT3SAS_ADAPTER_35834 request_sz MPT3SAS_ADAPTER 0 35834 NULL
165745 +enable_so_paging32_get_level1_sp_gpa_fndecl_35837 paging32_get_level1_sp_gpa fndecl 0 35837 NULL
165746 +enable_so_clk_core_enable_fndecl_35844 clk_core_enable fndecl 0 35844 NULL
165747 +enable_so_l_iclog_size_xlog_35849 l_iclog_size xlog 0 35849 NULL
165748 +enable_so_snd_pcm_format_physical_width_fndecl_35858 snd_pcm_format_physical_width fndecl 0 35858 NULL
165749 +enable_so_ipw_write_packet_sent_callback_fndecl_35859 ipw_write_packet_sent_callback fndecl 2 35859 NULL
165750 +enable_so_start_vga_cam_fndecl_35860 start_vga_cam fndecl 0 35860 NULL
165751 +enable_so_check_acl_fndecl_35867 check_acl fndecl 0 35867 NULL
165752 +enable_so_usb_stor_bulk_transfer_sglist_fndecl_35871 usb_stor_bulk_transfer_sglist fndecl 5-2-4 35871 NULL
165753 +enable_so_pcol_add_page_fndecl_35872 pcol_add_page fndecl 3 35872 NULL nohasharray
165754 +enable_so_processed_length_mbo_35872 processed_length mbo 0 35872 &enable_so_pcol_add_page_fndecl_35872
165755 +enable_so_snd_hdsp_midi_output_possible_fndecl_35873 snd_hdsp_midi_output_possible fndecl 0 35873 NULL
165756 +enable_so_shared_out_nid_ca0132_spec_35876 shared_out_nid ca0132_spec 0 35876 NULL
165757 +enable_so_h_proto_fwnet_header_35877 h_proto fwnet_header 0 35877 NULL
165758 +enable_so_st_sensors_spi_read_fndecl_35890 st_sensors_spi_read fndecl 4 35890 NULL
165759 +enable_so_lpuart_dma_tx_fndecl_35902 lpuart_dma_tx fndecl 2 35902 NULL nohasharray
165760 +enable_so_nft_data_dump_fndecl_35902 nft_data_dump fndecl 5 35902 &enable_so_lpuart_dma_tx_fndecl_35902
165761 +enable_so_fe_group_ext4_free_extent_35905 fe_group ext4_free_extent 0 35905 NULL nohasharray
165762 +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
165763 +enable_so_lirc_base_dev_vardecl_lirc_dev_c_35907 lirc_base_dev vardecl_lirc_dev.c 0 35907 NULL
165764 +enable_so_cifs_utf16_bytes_fndecl_35914 cifs_utf16_bytes fndecl 0 35914 NULL
165765 +enable_so_num_sensors_fimc_md_35915 num_sensors fimc_md 0 35915 NULL
165766 +enable_so_right_vardecl_matroxfb_base_c_35916 right vardecl_matroxfb_base.c 0 35916 NULL
165767 +enable_so_packet_count_efx_loopback_state_35918 packet_count efx_loopback_state 0 35918 NULL
165768 +enable_so_max_height_sh_mobile_ceu_dev_35922 max_height sh_mobile_ceu_dev 0 35922 NULL nohasharray
165769 +enable_so_sigma_fw_load_control_fndecl_35922 sigma_fw_load_control fndecl 3 35922 &enable_so_max_height_sh_mobile_ceu_dev_35922
165770 +enable_so_softback_end_vardecl_fbcon_c_35923 softback_end vardecl_fbcon.c 0 35923 NULL
165771 +enable_so_n_algs_wmfw_adsp1_id_hdr_35926 n_algs wmfw_adsp1_id_hdr 0 35926 NULL
165772 +enable_so_ieee802154_hdr_minlen_fndecl_35927 ieee802154_hdr_minlen fndecl 0 35927 NULL
165773 +enable_so_bytes_written_cq_fcp_rq_desc_35931 bytes_written cq_fcp_rq_desc 0 35931 NULL
165774 +enable_so_length_isp1362_ep_35933 length isp1362_ep 0 35933 NULL nohasharray
165775 +enable_so_dma_buf_size_ddb_input_35933 dma_buf_size ddb_input 0 35933 &enable_so_length_isp1362_ep_35933 nohasharray
165776 +enable_so_width_drm_radeon_texture_35933 width drm_radeon_texture 0 35933 &enable_so_dma_buf_size_ddb_input_35933
165777 +enable_so_snd_pcm_new_stream_fndecl_35934 snd_pcm_new_stream fndecl 3 35934 NULL
165778 +enable_so_disk_stack_limits_fndecl_35936 disk_stack_limits fndecl 3 35936 NULL
165779 +enable_so_dib9000_mbx_send_attr_fndecl_35937 dib9000_mbx_send_attr fndecl 4 35937 NULL
165780 +enable_so_wMaxPacketSize_wdm_device_35940 wMaxPacketSize wdm_device 0 35940 NULL
165781 +enable_so____alloc_bootmem_nopanic_fndecl_35945 ___alloc_bootmem_nopanic fndecl 2-1-3-4 35945 NULL nohasharray
165782 +enable_so_wil_write_file_txmgmt_fndecl_35945 wil_write_file_txmgmt fndecl 3 35945 &enable_so____alloc_bootmem_nopanic_fndecl_35945
165783 +enable_so_isl1208_i2c_read_regs_fndecl_35952 isl1208_i2c_read_regs fndecl 4 35952 NULL
165784 +enable_so_nx_fw_cmd_set_mtu_fndecl_35954 nx_fw_cmd_set_mtu fndecl 2 35954 NULL
165785 +enable_so_fat_uni_to_x8_fndecl_35959 fat_uni_to_x8 fndecl 0 35959 NULL
165786 +enable_so_s_root_block_affs_sb_info_35962 s_root_block affs_sb_info 0 35962 NULL
165787 +enable_so_snoop_urb_fndecl_35965 snoop_urb fndecl 8 35965 NULL
165788 +enable_so_num_entries_compat_ip6t_replace_35966 num_entries compat_ip6t_replace 0 35966 NULL nohasharray
165789 +enable_so_buf_size_si470x_device_35966 buf_size si470x_device 0 35966 &enable_so_num_entries_compat_ip6t_replace_35966
165790 +enable_so_flows_tc_sfq_qopt_35973 flows tc_sfq_qopt 0 35973 NULL
165791 +enable_so_max_df_size_ipq_35974 max_df_size ipq 0 35974 NULL nohasharray
165792 +enable_so_pf_num_bnx2x_35974 pf_num bnx2x 0 35974 &enable_so_max_df_size_ipq_35974
165793 +enable_so_bus_myri10ge_rx_done_35977 bus myri10ge_rx_done 0 35977 NULL
165794 +enable_so_pn_sendmsg_fndecl_35979 pn_sendmsg fndecl 3 35979 NULL
165795 +enable_so_num_dacs_hda_multi_out_35981 num_dacs hda_multi_out 0 35981 NULL
165796 +enable_so_ccid_getsockopt_builtin_ccids_fndecl_35985 ccid_getsockopt_builtin_ccids fndecl 2 35985 NULL
165797 +enable_so_if_spi_prog_main_firmware_check_len_fndecl_35990 if_spi_prog_main_firmware_check_len fndecl 0 35990 NULL
165798 +enable_so_perf_output_skip_fndecl_35994 perf_output_skip fndecl 2 35994 NULL
165799 +enable_so_mss_cache_tcp_sock_35995 mss_cache tcp_sock 0 35995 NULL
165800 +enable_so_daddr_fsl_edma_hw_tcd_35996 daddr fsl_edma_hw_tcd 0 35996 NULL nohasharray
165801 +enable_so_address_acpi_nfit_system_address_35996 address acpi_nfit_system_address 0 35996 &enable_so_daddr_fsl_edma_hw_tcd_35996
165802 +enable_so_poll_vardecl_hfcpci_c_36001 poll vardecl_hfcpci.c 0 36001 NULL nohasharray
165803 +enable_so_fuse_fill_write_pages_fndecl_36001 fuse_fill_write_pages fndecl 4-0 36001 &enable_so_poll_vardecl_hfcpci_c_36001 nohasharray
165804 +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
165805 +enable_so_v4l2_event_subscribe_fndecl_36004 v4l2_event_subscribe fndecl 3 36004 NULL
165806 +enable_so_ntb_transport_max_size_fndecl_36009 ntb_transport_max_size fndecl 0 36009 NULL nohasharray
165807 +enable_so_max_rx_kingsun_cb_36009 max_rx kingsun_cb 0 36009 &enable_so_ntb_transport_max_size_fndecl_36009 nohasharray
165808 +enable_so_bfad_iocmd_fcpim_get_modstats_fndecl_36009 bfad_iocmd_fcpim_get_modstats fndecl 0 36009 &enable_so_max_rx_kingsun_cb_36009 nohasharray
165809 +enable_so_igb_alloc_q_vector_fndecl_36009 igb_alloc_q_vector fndecl 4-6 36009 &enable_so_bfad_iocmd_fcpim_get_modstats_fndecl_36009 nohasharray
165810 +enable_so_bdev_logical_block_size_fndecl_36009 bdev_logical_block_size fndecl 0 36009 &enable_so_igb_alloc_q_vector_fndecl_36009
165811 +enable_so___nfs4_proc_set_acl_fndecl_36018 __nfs4_proc_set_acl fndecl 3 36018 NULL
165812 +enable_so_n_sg_vscsibk_pend_36028 n_sg vscsibk_pend 0 36028 NULL
165813 +enable_so_setup_efi_info_memmap_fndecl_36029 setup_efi_info_memmap fndecl 4-3-2 36029 NULL
165814 +enable_so_count_sgentry64_36033 count sgentry64 0 36033 NULL
165815 +enable_so_NumEraseUnits_NFTLMediaHeader_36036 NumEraseUnits NFTLMediaHeader 0 36036 NULL
165816 +enable_so_insert_bio_sectors_search_36037 insert_bio_sectors search 0 36037 NULL
165817 +enable_so_update_ind_extent_range_fndecl_36049 update_ind_extent_range fndecl 3 36049 NULL
165818 +enable_so_rx_status_len_bcm_rsb_36064 rx_status_len bcm_rsb 0 36064 NULL
165819 +enable_so_piobcnt2k_qib_devdata_36065 piobcnt2k qib_devdata 0 36065 NULL
165820 +enable_so_xfrm_compile_policy_fndecl_36070 xfrm_compile_policy fndecl 4 36070 NULL
165821 +enable_so_usb_stor_control_msg_fndecl_36073 usb_stor_control_msg fndecl 8-2 36073 NULL
165822 +enable_so_wa_populate_buf_in_urb_fndecl_36077 wa_populate_buf_in_urb fndecl 4-3 36077 NULL
165823 +enable_so_blocksize_alauda_media_info_36080 blocksize alauda_media_info 0 36080 NULL nohasharray
165824 +enable_so_nwriters_stress_vardecl_locktorture_c_36080 nwriters_stress vardecl_locktorture.c 0 36080 &enable_so_blocksize_alauda_media_info_36080
165825 +enable_so_wdm_write_fndecl_36084 wdm_write fndecl 3 36084 NULL
165826 +enable_so_xfs_extent_busy_insert_fndecl_36087 xfs_extent_busy_insert fndecl 3-4-2 36087 NULL
165827 +enable_so_smq_create_fndecl_36088 smq_create fndecl 1 36088 NULL
165828 +enable_so_wil_write_file_ssid_fndecl_36097 wil_write_file_ssid fndecl 3 36097 NULL
165829 +enable_so_avc_recv_fndecl_36099 avc_recv fndecl 3 36099 NULL
165830 +enable_so_set_extent_uptodate_fndecl_36117 set_extent_uptodate fndecl 3-2 36117 NULL nohasharray
165831 +enable_so_nr_requests_request_queue_36117 nr_requests request_queue 0 36117 &enable_so_set_extent_uptodate_fndecl_36117
165832 +enable_so_xfs_trans_read_buf_map_fndecl_36121 xfs_trans_read_buf_map fndecl 5 36121 NULL
165833 +enable_so_dictionary_size_disk_comp_opts_36125 dictionary_size disk_comp_opts 0 36125 NULL
165834 +enable_so_bytesperline_v4l2_plane_pix_format_36133 bytesperline v4l2_plane_pix_format 0 36133 NULL
165835 +enable_so___i2400m_bm_ack_verify_fndecl_36139 __i2400m_bm_ack_verify fndecl 0-4 36139 NULL
165836 +enable_so_x25_sendmsg_fndecl_36140 x25_sendmsg fndecl 3 36140 NULL
165837 +enable_so_f2fs_fiemap_fndecl_36141 f2fs_fiemap fndecl 3-4 36141 NULL
165838 +enable_so_lirc_buffer_init_fndecl_36145 lirc_buffer_init fndecl 2 36145 NULL
165839 +enable_so_spi_xcomm_sync_config_fndecl_36146 spi_xcomm_sync_config fndecl 0 36146 NULL
165840 +enable_so_create_empty_buffers_fndecl_36152 create_empty_buffers fndecl 2 36152 NULL
165841 +enable_so_payload_camif_vp_36153 payload camif_vp 0 36153 NULL
165842 +enable_so_ad9523_reg_access_fndecl_36157 ad9523_reg_access fndecl 2 36157 NULL
165843 +enable_so_ieee80211_send_probe_req_fndecl_36159 ieee80211_send_probe_req fndecl 7-5 36159 NULL
165844 +enable_so_next_nilfs_segsum_info_36161 next nilfs_segsum_info 0 36161 NULL
165845 +enable_so_clone_sources_count_btrfs_ioctl_send_args_36165 clone_sources_count btrfs_ioctl_send_args 0 36165 NULL
165846 +enable_so_gsm_control_reply_fndecl_36166 gsm_control_reply fndecl 4 36166 NULL
165847 +enable_so_vm_mmap_fndecl_36168 vm_mmap fndecl 3-0 36168 NULL
165848 +enable_so_qd2offset_fndecl_36177 qd2offset fndecl 0 36177 NULL
165849 +enable_so_length_octeon_droq_info_36178 length octeon_droq_info 0 36178 NULL
165850 +enable_so_nr_ion_platform_data_36179 nr ion_platform_data 0 36179 NULL
165851 +enable_so_sm_sl_ib_port_attr_36181 sm_sl ib_port_attr 0 36181 NULL
165852 +enable_so_len_ib_ucm_mra_36185 len ib_ucm_mra 0 36185 NULL
165853 +enable_so_flash_size_jffs2_sb_info_36187 flash_size jffs2_sb_info 0 36187 NULL
165854 +enable_so_batadv_interface_rx_fndecl_36190 batadv_interface_rx fndecl 4 36190 NULL
165855 +enable_so_prealloc_buffer_size_snd_dmaengine_pcm_config_36192 prealloc_buffer_size snd_dmaengine_pcm_config 0 36192 NULL
165856 +enable_so_objlayout_read_done_fndecl_36193 objlayout_read_done fndecl 2 36193 NULL
165857 +enable_so_range_min_regmap_range_36196 range_min regmap_range 0 36196 NULL
165858 +enable_so_n_cap_bufs_via_camera_36198 n_cap_bufs via_camera 0 36198 NULL
165859 +enable_so_ubifs_write_end_fndecl_36202 ubifs_write_end fndecl 4-3 36202 NULL nohasharray
165860 +enable_so_sock_setbindtodevice_fndecl_36202 sock_setbindtodevice fndecl 3 36202 &enable_so_ubifs_write_end_fndecl_36202
165861 +enable_so_hmask_xfrm_policy_hash_36203 hmask xfrm_policy_hash 0 36203 NULL
165862 +enable_so_f2fs_zero_range_fndecl_36204 f2fs_zero_range fndecl 2-3 36204 NULL
165863 +enable_so_blksz_mmc_ioc_cmd_36207 blksz mmc_ioc_cmd 0 36207 NULL
165864 +enable_so_xfs_vm_write_begin_fndecl_36211 xfs_vm_write_begin fndecl 3-4 36211 NULL
165865 +enable_so_nfs_try_to_update_request_fndecl_36213 nfs_try_to_update_request fndecl 3-4 36213 NULL nohasharray
165866 +enable_so_btrfs_find_all_roots_fndecl_36213 btrfs_find_all_roots fndecl 3 36213 &enable_so_nfs_try_to_update_request_fndecl_36213
165867 +enable_so_v4l2_ctrl_g_ctrl_fndecl_36216 v4l2_ctrl_g_ctrl fndecl 0 36216 NULL
165868 +enable_so_bnx2i_send_nl_mesg_fndecl_36218 bnx2i_send_nl_mesg fndecl 4 36218 NULL
165869 +enable_so_alloc_xen_mmio_fndecl_36220 alloc_xen_mmio fndecl 0-1 36220 NULL
165870 +enable_so_page_size_spi_eeprom_36227 page_size spi_eeprom 0 36227 NULL nohasharray
165871 +enable_so_MaxDevHandle_mpt3sas_facts_36227 MaxDevHandle mpt3sas_facts 0 36227 &enable_so_page_size_spi_eeprom_36227
165872 +enable_so_reserve_space_fndecl_36229 reserve_space fndecl 2 36229 NULL
165873 +enable_so_add_async_extent_fndecl_36239 add_async_extent fndecl 3-2 36239 NULL
165874 +enable_so_surfaceram_base_qxl_device_36241 surfaceram_base qxl_device 0 36241 NULL nohasharray
165875 +enable_so_data_queues_rt2x00_dev_36241 data_queues rt2x00_dev 0 36241 &enable_so_surfaceram_base_qxl_device_36241
165876 +enable_so_l2cap_sock_alloc_fndecl_36242 l2cap_sock_alloc fndecl 3 36242 NULL nohasharray
165877 +enable_so_vhost_kvzalloc_fndecl_36242 vhost_kvzalloc fndecl 1 36242 &enable_so_l2cap_sock_alloc_fndecl_36242
165878 +enable_so_histogram_alloc_size_dm_stat_36247 histogram_alloc_size dm_stat 0 36247 NULL nohasharray
165879 +enable_so_fpage_offs_genwqe_sgl_36247 fpage_offs genwqe_sgl 0 36247 &enable_so_histogram_alloc_size_dm_stat_36247
165880 +enable_so_xfs_imap_fndecl_36254 xfs_imap fndecl 3 36254 NULL
165881 +enable_so_dma_nv_skb_map_36260 dma nv_skb_map 0 36260 NULL
165882 +enable_so_size_sge_txq_36261 size sge_txq 0 36261 NULL
165883 +enable_so_isr_cmd_cmplt_read_fndecl_36268 isr_cmd_cmplt_read fndecl 3 36268 NULL nohasharray
165884 +enable_so_msb_mark_bad_fndecl_36268 msb_mark_bad fndecl 2 36268 &enable_so_isr_cmd_cmplt_read_fndecl_36268
165885 +enable_so_pwc_get_fps_Timon_fndecl_36269 pwc_get_fps_Timon fndecl 0 36269 NULL nohasharray
165886 +enable_so_cydata_ofsl_cyttsp4_sysinfo_data_36269 cydata_ofsl cyttsp4_sysinfo_data 0 36269 &enable_so_pwc_get_fps_Timon_fndecl_36269
165887 +enable_so_scsi_alloc_sgtable_fndecl_36270 scsi_alloc_sgtable fndecl 2 36270 NULL
165888 +enable_so_num_uf_bufs_bfa_iocfc_fwcfg_s_36271 num_uf_bufs bfa_iocfc_fwcfg_s 0 36271 NULL
165889 +enable_so_s_clusters_per_group_ext4_sb_info_36278 s_clusters_per_group ext4_sb_info 0 36278 NULL nohasharray
165890 +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
165891 +enable_so_hci_check_pending_name_fndecl_36282 hci_check_pending_name fndecl 5 36282 NULL
165892 +enable_so_calc_sectors_fndecl_36288 calc_sectors fndecl 2 36288 NULL nohasharray
165893 +enable_so_len_ethtool_tunable_36288 len ethtool_tunable 0 36288 &enable_so_calc_sectors_fndecl_36288
165894 +enable_so_collection_size_hid_device_36289 collection_size hid_device 0 36289 NULL
165895 +enable_so___btrfs_lookup_bio_sums_fndecl_36290 __btrfs_lookup_bio_sums fndecl 4 36290 NULL
165896 +enable_so_offs_h_fimc_frame_36295 offs_h fimc_frame 0 36295 NULL nohasharray
165897 +enable_so_iscsi_tcp_recv_skb_fndecl_36295 iscsi_tcp_recv_skb fndecl 3-0 36295 &enable_so_offs_h_fimc_frame_36295
165898 +enable_so_mru_ovs_skb_cb_36300 mru ovs_skb_cb 0 36300 NULL
165899 +enable_so_vertical_smiapp_binning_subtype_36302 vertical smiapp_binning_subtype 0 36302 NULL nohasharray
165900 +enable_so_ssl_next_nilfs_snapshot_list_36302 ssl_next nilfs_snapshot_list 0 36302 &enable_so_vertical_smiapp_binning_subtype_36302
165901 +enable_so_paging64_prefetch_gpte_fndecl_36303 paging64_prefetch_gpte fndecl 4 36303 NULL
165902 +enable_so_command_size_drm_vmw_execbuf_arg_36305 command_size drm_vmw_execbuf_arg 0 36305 NULL
165903 +enable_so_size_kernfs_elem_attr_36307 size kernfs_elem_attr 0 36307 NULL
165904 +enable_so_snd_dma_alloc_pages_fndecl_36308 snd_dma_alloc_pages fndecl 3 36308 NULL
165905 +enable_so_max_transfer_snd_usb_midi_out_endpoint_36311 max_transfer snd_usb_midi_out_endpoint 0 36311 NULL
165906 +enable_so_chunk_size_mdp_superblock_s_36313 chunk_size mdp_superblock_s 0 36313 NULL
165907 +enable_so_n_descsz_elf64_note_36314 n_descsz elf64_note 0 36314 NULL
165908 +enable_so_dpdData_size_wsm_configuration_36315 dpdData_size wsm_configuration 0 36315 NULL
165909 +enable_so_acpi_tb_parse_root_table_fndecl_36316 acpi_tb_parse_root_table fndecl 1 36316 NULL
165910 +enable_so_fsbno_xfs_alloc_arg_36318 fsbno xfs_alloc_arg 0 36318 NULL nohasharray
165911 +enable_so_move_buffer_data_fndecl_36318 move_buffer_data fndecl 2 36318 &enable_so_fsbno_xfs_alloc_arg_36318
165912 +enable_so_apei_exec_run_optional_fndecl_36319 apei_exec_run_optional fndecl 0 36319 NULL
165913 +enable_so_file_size_squashfs_lreg_inode_36323 file_size squashfs_lreg_inode 0 36323 NULL
165914 +enable_so_client_channels_snd_pcm_plugin_36324 client_channels snd_pcm_plugin 0 36324 NULL
165915 +enable_so_xfs_symlink_blocks_fndecl_36326 xfs_symlink_blocks fndecl 0-2 36326 NULL nohasharray
165916 +enable_so_xferred_rbd_obj_request_36326 xferred rbd_obj_request 0 36326 &enable_so_xfs_symlink_blocks_fndecl_36326
165917 +enable_so_do_verify_xattr_datum_fndecl_36328 do_verify_xattr_datum fndecl 0 36328 NULL
165918 +enable_so_ima_write_template_field_data_fndecl_36336 ima_write_template_field_data fndecl 2 36336 NULL
165919 +enable_so_c_size_p_sizes_36338 c_size p_sizes 0 36338 NULL nohasharray
165920 +enable_so_hidp_send_frame_fndecl_36338 hidp_send_frame fndecl 3 36338 &enable_so_c_size_p_sizes_36338
165921 +enable_so_digest_encode_fndecl_36340 digest_encode fndecl 0 36340 NULL
165922 +enable_so_rds_tcp_data_recv_fndecl_36343 rds_tcp_data_recv fndecl 3-4 36343 NULL
165923 +enable_so_iowarrior_read_fndecl_36344 iowarrior_read fndecl 3 36344 NULL
165924 +enable_so_osd_req_write_kern_fndecl_36349 osd_req_write_kern fndecl 5 36349 NULL
165925 +enable_so_inode_blocks_efs_sb_info_36351 inode_blocks efs_sb_info 0 36351 NULL
165926 +enable_so_num_crtc_cirrus_device_36358 num_crtc cirrus_device 0 36358 NULL
165927 +enable_so_ipxrtr_route_packet_fndecl_36359 ipxrtr_route_packet fndecl 4 36359 NULL
165928 +enable_so_snd_pcm_lib_write_transfer_fndecl_36369 snd_pcm_lib_write_transfer fndecl 5 36369 NULL
165929 +enable_so_kvm_vcpu_read_guest_atomic_fndecl_36372 kvm_vcpu_read_guest_atomic fndecl 2-4 36372 NULL
165930 +enable_so_addr_len_ipmi_req_36374 addr_len ipmi_req 0 36374 NULL
165931 +enable_so_rx_ring_size_adm8211_priv_36391 rx_ring_size adm8211_priv 0 36391 NULL
165932 +enable_so_mtu_l2cap_le_conn_rsp_36399 mtu l2cap_le_conn_rsp 0 36399 NULL nohasharray
165933 +enable_so_max_rxsz_ulp_iscsi_info_36399 max_rxsz ulp_iscsi_info 0 36399 &enable_so_mtu_l2cap_le_conn_rsp_36399
165934 +enable_so_batadv_tt_update_orig_fndecl_36402 batadv_tt_update_orig fndecl 4-6 36402 NULL
165935 +enable_so_iser_calc_scsi_params_fndecl_36403 iser_calc_scsi_params fndecl 2 36403 NULL
165936 +enable_so_pipeline_dec_packet_out_read_fndecl_36407 pipeline_dec_packet_out_read fndecl 3 36407 NULL
165937 +enable_so_rproc_state_read_fndecl_36410 rproc_state_read fndecl 3 36410 NULL
165938 +enable_so_nl80211_send_disconnected_fndecl_36411 nl80211_send_disconnected fndecl 5 36411 NULL
165939 +enable_so_iter_file_splice_write_fndecl_36415 iter_file_splice_write fndecl 4 36415 NULL
165940 +enable_so_data_len_hfa384x_rx_frame_36417 data_len hfa384x_rx_frame 0 36417 NULL
165941 +enable_so_altera_set_ir_pre_fndecl_36420 altera_set_ir_pre fndecl 2 36420 NULL nohasharray
165942 +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
165943 +enable_so_create_xattr_fndecl_36425 create_xattr fndecl 5 36425 NULL
165944 +enable_so_essid_len_ipw2100_priv_36426 essid_len ipw2100_priv 0 36426 NULL
165945 +enable_so_mt2266_writeregs_fndecl_36430 mt2266_writeregs fndecl 3 36430 NULL
165946 +enable_so_rx_fifo_override_sh_msiof_spi_info_36440 rx_fifo_override sh_msiof_spi_info 0 36440 NULL
165947 +enable_so_reserved_page_order_st_buffer_36445 reserved_page_order st_buffer 0 36445 NULL
165948 +enable_so_size_packet_info_36454 size packet_info 0 36454 NULL
165949 +enable_so_hSync_width_panel_info_36455 hSync_width panel_info 0 36455 NULL
165950 +enable_so_ov511_i2c_r_fndecl_36459 ov511_i2c_r fndecl 0 36459 NULL nohasharray
165951 +enable_so_isr_host_acknowledges_read_fndecl_36459 isr_host_acknowledges_read fndecl 3 36459 &enable_so_ov511_i2c_r_fndecl_36459
165952 +enable_so_avail_snd_compr_avail_36463 avail snd_compr_avail 0 36463 NULL
165953 +enable_so_strn_len_fndecl_36473 strn_len fndecl 0 36473 NULL
165954 +enable_so_rlim_max_rlimit_36476 rlim_max rlimit 0 36476 NULL nohasharray
165955 +enable_so_v9fs_xattr_get_fndecl_36476 v9fs_xattr_get fndecl 4 36476 &enable_so_rlim_max_rlimit_36476
165956 +enable_so_portnum_lvs_rh_36480 portnum lvs_rh 0 36480 NULL
165957 +enable_so_rx_len_yam_port_36481 rx_len yam_port 0 36481 NULL
165958 +enable_so_fb_show_logo_line_fndecl_36485 fb_show_logo_line fndecl 4 36485 NULL nohasharray
165959 +enable_so_t_task_lba_se_cmd_36485 t_task_lba se_cmd 0 36485 &enable_so_fb_show_logo_line_fndecl_36485 nohasharray
165960 +enable_so_i2400m_zrealloc_2x_fndecl_36485 i2400m_zrealloc_2x fndecl 3 36485 &enable_so_t_task_lba_se_cmd_36485
165961 +enable_so_p9_client_prepare_req_fndecl_36492 p9_client_prepare_req fndecl 3 36492 NULL
165962 +enable_so_tipc_msg_make_bundle_fndecl_36497 tipc_msg_make_bundle fndecl 3 36497 NULL
165963 +enable_so_do_fault_around_fndecl_36500 do_fault_around fndecl 2-4 36500 NULL
165964 +enable_so_queue_rx_frame_fndecl_36501 queue_rx_frame fndecl 2 36501 NULL nohasharray
165965 +enable_so_sg_max_nents_hwif_s_36501 sg_max_nents hwif_s 0 36501 &enable_so_queue_rx_frame_fndecl_36501
165966 +enable_so_start_nid_hdac_device_36504 start_nid hdac_device 0 36504 NULL
165967 +enable_so_create_pinned_em_fndecl_36508 create_pinned_em fndecl 3-2-4-5-7-6 36508 NULL
165968 +enable_so_skge_change_mtu_fndecl_36510 skge_change_mtu fndecl 2 36510 NULL
165969 +enable_so_byte_count_vmtransfer_page_range_36511 byte_count vmtransfer_page_range 0 36511 NULL
165970 +enable_so_hpfs_map_4sectors_fndecl_36523 hpfs_map_4sectors fndecl 2 36523 NULL
165971 +enable_so_igu_sb_cnt_bnx2x_36525 igu_sb_cnt bnx2x 0 36525 NULL
165972 +enable_so_ue_num_asd_bios_chim_struct_36526 ue_num asd_bios_chim_struct 0 36526 NULL nohasharray
165973 +enable_so_sdma_descq_cnt_vardecl_sdma_c_36526 sdma_descq_cnt vardecl_sdma.c 0 36526 &enable_so_ue_num_asd_bios_chim_struct_36526
165974 +enable_so_ftdi_elan_edset_output_fndecl_36530 ftdi_elan_edset_output fndecl 0 36530 NULL
165975 +enable_so_sk_tcplen_svc_sock_36531 sk_tcplen svc_sock 0 36531 NULL
165976 +enable_so_nbpf_bytes_left_fndecl_36536 nbpf_bytes_left fndecl 0 36536 NULL
165977 +enable_so_acpi_os_read_memory_fndecl_36537 acpi_os_read_memory fndecl 3-1 36537 NULL
165978 +enable_so_actual_resp_len_be_cmd_resp_hdr_36543 actual_resp_len be_cmd_resp_hdr 0 36543 NULL
165979 +enable_so_pi_read_regr_fndecl_36548 pi_read_regr fndecl 0 36548 NULL
165980 +enable_so_net2272_write_packet_fndecl_36550 net2272_write_packet fndecl 4 36550 NULL
165981 +enable_so_max_sg_segs_vardecl_st_c_36551 max_sg_segs vardecl_st.c 0 36551 NULL
165982 +enable_so_ocfs2_fallocate_fndecl_36555 ocfs2_fallocate fndecl 3-4 36555 NULL nohasharray
165983 +enable_so_capture_chips_pcxhr_mgr_36555 capture_chips pcxhr_mgr 0 36555 &enable_so_ocfs2_fallocate_fndecl_36555
165984 +enable_so_fb_try_mode_fndecl_36560 fb_try_mode fndecl 4 36560 NULL
165985 +enable_so_fuse_file_compat_ioctl_fndecl_36564 fuse_file_compat_ioctl fndecl 2 36564 NULL
165986 +enable_so_sc_sq_depth_svcxprt_rdma_36568 sc_sq_depth svcxprt_rdma 0 36568 NULL
165987 +enable_so_vlan_tag_eth_fast_path_rx_cqe_36569 vlan_tag eth_fast_path_rx_cqe 0 36569 NULL
165988 +enable_so_frag_thresh_orinoco_private_36570 frag_thresh orinoco_private 0 36570 NULL
165989 +enable_so_page_count_agp_memory_36571 page_count agp_memory 0 36571 NULL
165990 +enable_so___register_chrdev_fndecl_36572 __register_chrdev fndecl 0-2-1-3 36572 NULL
165991 +enable_so_do_sys_poll_fndecl_36574 do_sys_poll fndecl 2 36574 NULL
165992 +enable_so_ceph_msgpool_get_fndecl_36577 ceph_msgpool_get fndecl 2 36577 NULL
165993 +enable_so_num_shared_regs_intel_uncore_type_36581 num_shared_regs intel_uncore_type 0 36581 NULL
165994 +enable_so_wusb_prf_fndecl_36582 wusb_prf fndecl 7 36582 NULL nohasharray
165995 +enable_so_audio_write_fndecl_36582 audio_write fndecl 4 36582 &enable_so_wusb_prf_fndecl_36582
165996 +enable_so_rx_ring_size_pcnet32_private_36586 rx_ring_size pcnet32_private 0 36586 NULL nohasharray
165997 +enable_so_vmw_user_dmabuf_alloc_fndecl_36586 vmw_user_dmabuf_alloc fndecl 3 36586 &enable_so_rx_ring_size_pcnet32_private_36586
165998 +enable_so_scan_cnt_ad7280_state_36592 scan_cnt ad7280_state 0 36592 NULL
165999 +enable_so_alloc_fw_event_work_fndecl_36593 alloc_fw_event_work fndecl 1 36593 NULL
166000 +enable_so_bgrt_image_size_vardecl_36594 bgrt_image_size vardecl 0 36594 NULL
166001 +enable_so_reada_add_block_fndecl_36596 reada_add_block fndecl 2 36596 NULL
166002 +enable_so_num_max_snd_ratden_36597 num_max snd_ratden 0 36597 NULL nohasharray
166003 +enable_so_mcp23s08_read_regs_fndecl_36597 mcp23s08_read_regs fndecl 4 36597 &enable_so_num_max_snd_ratden_36597 nohasharray
166004 +enable_so_UnitSizeFactor_NFTLMediaHeader_36597 UnitSizeFactor NFTLMediaHeader 0 36597 &enable_so_mcp23s08_read_regs_fndecl_36597
166005 +enable_so_update_block_group_fndecl_36600 update_block_group fndecl 4-3 36600 NULL
166006 +enable_so_write_file_spec_scan_ctl_fndecl_36603 write_file_spec_scan_ctl fndecl 3 36603 NULL
166007 +enable_so_xfs_dir2_sf_addname_hard_fndecl_36605 xfs_dir2_sf_addname_hard fndecl 3 36605 NULL nohasharray
166008 +enable_so_reply_len_sg_header_36605 reply_len sg_header 0 36605 &enable_so_xfs_dir2_sf_addname_hard_fndecl_36605
166009 +enable_so_drm_mm_insert_node_generic_fndecl_36608 drm_mm_insert_node_generic fndecl 3 36608 NULL
166010 +enable_so_set_user_nice_fndecl_36618 set_user_nice fndecl 2 36618 NULL
166011 +enable_so_f_pos_file_36619 f_pos file 0 36619 NULL
166012 +enable_so_gamma_size_drm_mode_crtc_lut_36622 gamma_size drm_mode_crtc_lut 0 36622 NULL
166013 +enable_so_raw_serial_size_x509_certificate_36629 raw_serial_size x509_certificate 0 36629 NULL
166014 +enable_so_block_count_mspro_sys_info_36630 block_count mspro_sys_info 0 36630 NULL
166015 +enable_so_i915_gem_execbuffer_parse_fndecl_36633 i915_gem_execbuffer_parse fndecl 6-5 36633 NULL nohasharray
166016 +enable_so_opcfg_ofsh_cyttsp4_sysinfo_data_36633 opcfg_ofsh cyttsp4_sysinfo_data 0 36633 &enable_so_i915_gem_execbuffer_parse_fndecl_36633
166017 +enable_so_read_super_block_fndecl_36638 read_super_block fndecl 2 36638 NULL
166018 +enable_so_f2fs_kvzalloc_fndecl_36641 f2fs_kvzalloc fndecl 1 36641 NULL
166019 +enable_so_nls_nullsize_fndecl_36644 nls_nullsize fndecl 0 36644 NULL
166020 +enable_so_dm_done_fndecl_36648 dm_done fndecl 2 36648 NULL
166021 +enable_so_pvr2_encoder_write_words_fndecl_36653 pvr2_encoder_write_words fndecl 4 36653 NULL nohasharray
166022 +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
166023 +enable_so_setup_data_read_fndecl_36653 setup_data_read fndecl 3 36653 &enable_so_context_id_iscsi_kwqe_conn_destroy_36653
166024 +enable_so___kfifo_dma_in_prepare_r_fndecl_36659 __kfifo_dma_in_prepare_r fndecl 4-5 36659 NULL nohasharray
166025 +enable_so_shmem_alloc_page_fndecl_36659 shmem_alloc_page fndecl 3 36659 &enable_so___kfifo_dma_in_prepare_r_fndecl_36659
166026 +enable_so___tty_alloc_driver_fndecl_36660 __tty_alloc_driver fndecl 1 36660 NULL
166027 +enable_so_qp_alloc_host_work_fndecl_36661 qp_alloc_host_work fndecl 3-5 36661 NULL
166028 +enable_so_dac_channels_mixer_oxygen_model_36662 dac_channels_mixer oxygen_model 0 36662 NULL
166029 +enable_so_roffset_scifioctl_copy_36667 roffset scifioctl_copy 0 36667 NULL
166030 +enable_so_max_queue_pairs_virtnet_info_36669 max_queue_pairs virtnet_info 0 36669 NULL
166031 +enable_so_i_file_acl_lo_ext4_inode_36684 i_file_acl_lo ext4_inode 0 36684 NULL
166032 +enable_so_size_drm_map_36685 size drm_map 0 36685 NULL
166033 +enable_so_size_drm_agp_buffer_36687 size drm_agp_buffer 0 36687 NULL
166034 +enable_so_esas2r_max_sectors_vardecl_36688 esas2r_max_sectors vardecl 0 36688 NULL nohasharray
166035 +enable_so_nnode_sz_ubifs_info_36688 nnode_sz ubifs_info 0 36688 &enable_so_esas2r_max_sectors_vardecl_36688 nohasharray
166036 +enable_so_out_kvec_bytes_ceph_connection_36688 out_kvec_bytes ceph_connection 0 36688 &enable_so_nnode_sz_ubifs_info_36688
166037 +enable_so_rx_buffer_len_atl1c_adapter_36691 rx_buffer_len atl1c_adapter 0 36691 NULL
166038 +enable_so_expected_pages_page_collect_36693 expected_pages page_collect 0 36693 NULL
166039 +enable_so_total_len_snoop_packet_36694 total_len snoop_packet 0 36694 NULL
166040 +enable_so_hga_vram_len_vardecl_hgafb_c_36700 hga_vram_len vardecl_hgafb.c 0 36700 NULL
166041 +enable_so_btrfs_free_reserved_extent_fndecl_36706 btrfs_free_reserved_extent fndecl 3-2 36706 NULL
166042 +enable_so_map_szh_cyttsp4_sysinfo_data_36711 map_szh cyttsp4_sysinfo_data 0 36711 NULL
166043 +enable_so_dev_num_tpm_chip_36718 dev_num tpm_chip 0 36718 NULL nohasharray
166044 +enable_so_null_major_vardecl_null_blk_c_36718 null_major vardecl_null_blk.c 0 36718 &enable_so_dev_num_tpm_chip_36718
166045 +enable_so_reply_usif_notify_36722 reply usif_notify 0 36722 NULL
166046 +enable_so_alloc_blocks_hfsplus_inode_info_36725 alloc_blocks hfsplus_inode_info 0 36725 NULL nohasharray
166047 +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
166048 +enable_so_drAlBlSt_hfs_mdb_36727 drAlBlSt hfs_mdb 0 36727 NULL
166049 +enable_so_id_hfsplus_cat_folder_36733 id hfsplus_cat_folder 0 36733 NULL nohasharray
166050 +enable_so_pnfs_update_layout_fndecl_36733 pnfs_update_layout fndecl 3-4 36733 &enable_so_id_hfsplus_cat_folder_36733
166051 +enable_so_common_buffer_phys_smscore_device_t_36739 common_buffer_phys smscore_device_t 0 36739 NULL
166052 +enable_so_batadv_tt_tvlv_ogm_handler_v1_fndecl_36742 batadv_tt_tvlv_ogm_handler_v1 fndecl 5 36742 NULL
166053 +enable_so_early_reserve_e820_fndecl_36744 early_reserve_e820 fndecl 2-1 36744 NULL
166054 +enable_so_s2255_got_frame_fndecl_36746 s2255_got_frame fndecl 2 36746 NULL
166055 +enable_so_channel_hwif_s_36751 channel hwif_s 0 36751 NULL
166056 +enable_so_saved_raid_disk_md_rdev_36752 saved_raid_disk md_rdev 0 36752 NULL
166057 +enable_so_SyS_sched_getattr_fndecl_36760 SyS_sched_getattr fndecl 3 36760 NULL
166058 +enable_so_ath6kl_wmi_add_krk_cmd_fndecl_36763 ath6kl_wmi_add_krk_cmd fndecl 2 36763 NULL nohasharray
166059 +enable_so_bufsiz_vardecl_spidev_c_36763 bufsiz vardecl_spidev.c 0 36763 &enable_so_ath6kl_wmi_add_krk_cmd_fndecl_36763
166060 +enable_so_iget_xattr_fndecl_36765 iget_xattr fndecl 2 36765 NULL nohasharray
166061 +enable_so_netdev_flow_limit_table_len_vardecl_36765 netdev_flow_limit_table_len vardecl 0 36765 &enable_so_iget_xattr_fndecl_36765
166062 +enable_so_last_index_zap_details_36766 last_index zap_details 0 36766 NULL
166063 +enable_so_ocfs2_rm_xattr_cluster_fndecl_36767 ocfs2_rm_xattr_cluster fndecl 5-4-3 36767 NULL nohasharray
166064 +enable_so_SyS_setgroups_fndecl_36767 SyS_setgroups fndecl 1 36767 &enable_so_ocfs2_rm_xattr_cluster_fndecl_36767
166065 +enable_so_ocfs2_make_clusters_writable_fndecl_36769 ocfs2_make_clusters_writable fndecl 5-4-3 36769 NULL
166066 +enable_so_num_nodes_crush_bucket_tree_36776 num_nodes crush_bucket_tree 0 36776 NULL
166067 +enable_so_usb_serial_generic_write_fndecl_36788 usb_serial_generic_write fndecl 4 36788 NULL
166068 +enable_so_mmio_base_controller_36793 mmio_base controller 0 36793 NULL
166069 +enable_so_rx_count_cooked_sixpack_36794 rx_count_cooked sixpack 0 36794 NULL
166070 +enable_so_pad_bytes_regmap_format_36795 pad_bytes regmap_format 0 36795 NULL
166071 +enable_so_efi_runtime_map_setup_fndecl_36796 efi_runtime_map_setup fndecl 3-2 36796 NULL
166072 +enable_so_sector_stripe_head_36797 sector stripe_head 0 36797 NULL nohasharray
166073 +enable_so_copy_io_fndecl_36797 copy_io fndecl 3 36797 &enable_so_sector_stripe_head_36797
166074 +enable_so_v4l_bufsize_vardecl_36803 v4l_bufsize vardecl 0 36803 NULL
166075 +enable_so_idetape_chrdev_write_fndecl_36811 idetape_chrdev_write fndecl 3 36811 NULL
166076 +enable_so_mthca_reg_user_mr_fndecl_36815 mthca_reg_user_mr fndecl 2-3 36815 NULL
166077 +enable_so_mthca_setup_cmd_doorbells_fndecl_36817 mthca_setup_cmd_doorbells fndecl 2 36817 NULL
166078 +enable_so_card_type_nozomi_36822 card_type nozomi 0 36822 NULL
166079 +enable_so_ir_pre_altera_jtag_36823 ir_pre altera_jtag 0 36823 NULL
166080 +enable_so_orig_nents_sg_table_36824 orig_nents sg_table 0 36824 NULL
166081 +enable_so_mlx4_num_eq_uar_fndecl_36830 mlx4_num_eq_uar fndecl 0 36830 NULL
166082 +enable_so_acpi_initialize_tables_fndecl_36832 acpi_initialize_tables fndecl 2 36832 NULL
166083 +enable_so_rx_pg_ring_size_bnx2_36835 rx_pg_ring_size bnx2 0 36835 NULL
166084 +enable_so_total_bytes_btrfs_super_block_36845 total_bytes btrfs_super_block 0 36845 NULL
166085 +enable_so_hfsplus_attr_build_key_fndecl_36846 hfsplus_attr_build_key fndecl 0 36846 NULL
166086 +enable_so_raid5_compute_sector_fndecl_36860 raid5_compute_sector fndecl 0-2 36860 NULL
166087 +enable_so_acpi_register_gsi_pic_fndecl_36869 acpi_register_gsi_pic fndecl 0-2 36869 NULL
166088 +enable_so_vtotal_drm_display_mode_36870 vtotal drm_display_mode 0 36870 NULL
166089 +enable_so_qlcnic_83xx_sysfs_flash_write_fndecl_36872 qlcnic_83xx_sysfs_flash_write fndecl 4 36872 NULL
166090 +enable_so_self_inum_vardecl_self_c_36873 self_inum vardecl_self.c 0 36873 NULL nohasharray
166091 +enable_so_txd_size_bdx_priv_36873 txd_size bdx_priv 0 36873 &enable_so_self_inum_vardecl_self_c_36873 nohasharray
166092 +enable_so_netlbl_unlabel_init_fndecl_36873 netlbl_unlabel_init fndecl 1 36873 &enable_so_txd_size_bdx_priv_36873
166093 +enable_so_uwb_est_size_vardecl_est_c_36881 uwb_est_size vardecl_est.c 0 36881 NULL
166094 +enable_so_tipc_sendmsg_fndecl_36882 tipc_sendmsg fndecl 3 36882 NULL nohasharray
166095 +enable_so_buf_ptr_size_iscsi_cmd_36882 buf_ptr_size iscsi_cmd 0 36882 &enable_so_tipc_sendmsg_fndecl_36882
166096 +enable_so_h_self_omfs_header_36891 h_self omfs_header 0 36891 NULL
166097 +enable_so_size_cxgb4_range_36893 size cxgb4_range 0 36893 NULL
166098 +enable_so_sge_congestion_control_sge_params_36896 sge_congestion_control sge_params 0 36896 NULL
166099 +enable_so_hwdep_read_locked_fndecl_36897 hwdep_read_locked fndecl 3 36897 NULL
166100 +enable_so_limit_ixgbe_ring_feature_36904 limit ixgbe_ring_feature 0 36904 NULL
166101 +enable_so_actual_usb_request_36913 actual usb_request 0 36913 NULL
166102 +enable_so_tool_spadfn_write_fndecl_36915 tool_spadfn_write fndecl 3 36915 NULL
166103 +enable_so_dup_variable_bug_fndecl_36926 dup_variable_bug fndecl 3 36926 NULL
166104 +enable_so_len_xfs_name_36929 len xfs_name 0 36929 NULL nohasharray
166105 +enable_so_ocfs2_make_right_split_rec_fndecl_36929 ocfs2_make_right_split_rec fndecl 3 36929 &enable_so_len_xfs_name_36929
166106 +enable_so_nfsacl_decode_fndecl_36931 nfsacl_decode fndecl 2-0 36931 NULL
166107 +enable_so_page_base_gssp_in_token_36935 page_base gssp_in_token 0 36935 NULL
166108 +enable_so_debug_level_proc_write_fndecl_36943 debug_level_proc_write fndecl 3 36943 NULL
166109 +enable_so_end_offset_xilly_buffer_36946 end_offset xilly_buffer 0 36946 NULL
166110 +enable_so_priv_size_rtnl_link_ops_36947 priv_size rtnl_link_ops 0 36947 NULL
166111 +enable_so_ntfs_prepare_pages_for_non_resident_write_fndecl_36959 ntfs_prepare_pages_for_non_resident_write fndecl 0 36959 NULL
166112 +enable_so_s_rename_dir_logfs_super_36976 s_rename_dir logfs_super 0 36976 NULL nohasharray
166113 +enable_so_reserved_kmem_cache_36976 reserved kmem_cache 0 36976 &enable_so_s_rename_dir_logfs_super_36976
166114 +enable_so_rx_bufsize_ath_common_36977 rx_bufsize ath_common 0 36977 NULL
166115 +enable_so_loopend_soundfont_sample_info_36981 loopend soundfont_sample_info 0 36981 NULL
166116 +enable_so_usbvision_frames_alloc_fndecl_36983 usbvision_frames_alloc fndecl 0-2 36983 NULL
166117 +enable_so_isku_sysfs_read_macro_fndecl_36984 isku_sysfs_read_macro fndecl 6 36984 NULL
166118 +enable_so_v_sync_strt_wid_aty128_crtc_36987 v_sync_strt_wid aty128_crtc 0 36987 NULL
166119 +enable_so_lbmAllocate_fndecl_36995 lbmAllocate fndecl 2 36995 NULL
166120 +enable_so_exp_len_ccp_rsa_engine_36998 exp_len ccp_rsa_engine 0 36998 NULL
166121 +enable_so_ll_sa_entry_alloc_fndecl_37008 ll_sa_entry_alloc fndecl 4 37008 NULL
166122 +enable_so_num_rxp_per_rx_bnad_37010 num_rxp_per_rx bnad 0 37010 NULL
166123 +enable_so_ip6_mc_hdr_fndecl_37013 ip6_mc_hdr fndecl 7 37013 NULL
166124 +enable_so_to_fw_map_37020 to fw_map 0 37020 NULL
166125 +enable_so_cb_group_width_exofs_dt_data_map_37027 cb_group_width exofs_dt_data_map 0 37027 NULL
166126 +enable_so_result_fc_bsg_reply_37029 result fc_bsg_reply 0 37029 NULL
166127 +enable_so_dirty_poll_interval_fndecl_37038 dirty_poll_interval fndecl 0 37038 NULL nohasharray
166128 +enable_so_mmio_size_vmw_private_37038 mmio_size vmw_private 0 37038 &enable_so_dirty_poll_interval_fndecl_37038
166129 +enable_so_adjust_resource_fndecl_37046 adjust_resource fndecl 3-2 37046 NULL
166130 +enable_so_setcc_fndecl_37048 setcc fndecl 1 37048 NULL
166131 +enable_so_yres__sisbios_mode_37051 yres _sisbios_mode 0 37051 NULL nohasharray
166132 +enable_so_update_sm_ah_fndecl_37051 update_sm_ah fndecl 4-2 37051 &enable_so_yres__sisbios_mode_37051
166133 +enable_so_memory_model_code_mspro_sys_info_37057 memory_model_code mspro_sys_info 0 37057 NULL
166134 +enable_so_neq_vf_resources_37066 neq vf_resources 0 37066 NULL
166135 +enable_so_vmw_cmdbuf_reserve_fndecl_37071 vmw_cmdbuf_reserve fndecl 2 37071 NULL
166136 +enable_so_driver_data_acpi_device_id_37074 driver_data acpi_device_id 0 37074 NULL
166137 +enable_so_SYSC_gethostname_fndecl_37078 SYSC_gethostname fndecl 2 37078 NULL
166138 +enable_so_rq_xprt_hlen_svc_rqst_37082 rq_xprt_hlen svc_rqst 0 37082 NULL
166139 +enable_so_rtc_devt_vardecl_rtc_dev_c_37090 rtc_devt vardecl_rtc-dev.c 0 37090 NULL
166140 +enable_so_filter_get_rx_ids_efx_nic_type_37093 filter_get_rx_ids efx_nic_type 0 37093 NULL
166141 +enable_so_cx25840_ir_rx_read_fndecl_37095 cx25840_ir_rx_read fndecl 3 37095 NULL
166142 +enable_so_last_eb_bytes_ubi_fm_volhdr_37099 last_eb_bytes ubi_fm_volhdr 0 37099 NULL
166143 +enable_so_relay_alloc_page_array_fndecl_37100 relay_alloc_page_array fndecl 1 37100 NULL
166144 +enable_so_gfs2_meta_ra_fndecl_37101 gfs2_meta_ra fndecl 2 37101 NULL
166145 +enable_so_filled_kobil_private_37104 filled kobil_private 0 37104 NULL
166146 +enable_so___frwr_init_fndecl_37114 __frwr_init fndecl 4 37114 NULL
166147 +enable_so_vlan_tag_rx_return_desc_37115 vlan_tag rx_return_desc 0 37115 NULL nohasharray
166148 +enable_so_rx_ring_size_bnxt_37115 rx_ring_size bnxt 0 37115 &enable_so_vlan_tag_rx_return_desc_37115
166149 +enable_so_fuse_request_alloc_fndecl_37120 fuse_request_alloc fndecl 1 37120 NULL nohasharray
166150 +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
166151 +enable_so_probe_memory_block_size_fndecl_37124 probe_memory_block_size fndecl 0 37124 NULL
166152 +enable_so_ocfs2_check_if_ancestor_fndecl_37125 ocfs2_check_if_ancestor fndecl 2 37125 NULL nohasharray
166153 +enable_so_find_biggest_section_pfn_fndecl_37125 find_biggest_section_pfn fndecl 0-4 37125 &enable_so_ocfs2_check_if_ancestor_fndecl_37125
166154 +enable_so_sc_blk_cnt_nilfs_sc_info_37130 sc_blk_cnt nilfs_sc_info 0 37130 NULL nohasharray
166155 +enable_so___rh_alloc_fndecl_37130 __rh_alloc fndecl 2 37130 &enable_so_sc_blk_cnt_nilfs_sc_info_37130
166156 +enable_so_nfs_updatepage_fndecl_37131 nfs_updatepage fndecl 3-4 37131 NULL
166157 +enable_so_num_report_ids_mxt_object_37133 num_report_ids mxt_object 0 37133 NULL
166158 +enable_so_audio_mute_fndecl_37139 audio_mute fndecl 2 37139 NULL
166159 +enable_so_m5mols_busy_wait_fndecl_37140 m5mols_busy_wait fndecl 2 37140 NULL
166160 +enable_so_wdata_send_pages_fndecl_37142 wdata_send_pages fndecl 2 37142 NULL
166161 +enable_so_acpi_data_prop_read_single_fndecl_37152 acpi_data_prop_read_single fndecl 0 37152 NULL
166162 +enable_so_pd_num_mthca_pd_37155 pd_num mthca_pd 0 37155 NULL
166163 +enable_so_mlx5_query_port_pvlc_fndecl_37159 mlx5_query_port_pvlc fndecl 3 37159 NULL
166164 +enable_so_max_pdu_size_l2cap_conf_rfc_37161 max_pdu_size l2cap_conf_rfc 0 37161 NULL
166165 +enable_so_pcm_channels_amdtp_tscm_37163 pcm_channels amdtp_tscm 0 37163 NULL nohasharray
166166 +enable_so_ld_tgt_count_lov_desc_37163 ld_tgt_count lov_desc 0 37163 &enable_so_pcm_channels_amdtp_tscm_37163
166167 +enable_so_l_logBBstart_xlog_37164 l_logBBstart xlog 0 37164 NULL
166168 +enable_so_txCredits_edgeport_port_37166 txCredits edgeport_port 0 37166 NULL
166169 +enable_so_read_mmp_block_fndecl_37168 read_mmp_block fndecl 3 37168 NULL nohasharray
166170 +enable_so_mdiobus_alloc_size_fndecl_37168 mdiobus_alloc_size fndecl 1 37168 &enable_so_read_mmp_block_fndecl_37168
166171 +enable_so_t_blk_res_xfs_trans_37169 t_blk_res xfs_trans 0 37169 NULL
166172 +enable_so_expect_bt_skb_cb_37170 expect bt_skb_cb 0 37170 NULL
166173 +enable_so_hva_to_pfn_slow_fndecl_37173 hva_to_pfn_slow fndecl 1 37173 NULL nohasharray
166174 +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
166175 +enable_so_copy_pte_range_fndecl_37175 copy_pte_range fndecl 6 37175 NULL
166176 +enable_so_sisusbcon_do_font_op_fndecl_37180 sisusbcon_do_font_op fndecl 9 37180 NULL nohasharray
166177 +enable_so_octeon_init_droq_fndecl_37180 octeon_init_droq fndecl 4-3 37180 &enable_so_sisusbcon_do_font_op_fndecl_37180
166178 +enable_so_of_address_to_resource_fndecl_37191 of_address_to_resource fndecl 2 37191 NULL
166179 +enable_so_ssd1307fb_write_fndecl_37192 ssd1307fb_write fndecl 3 37192 NULL
166180 +enable_so_rx_status_0_ath5k_hw_rx_status_37197 rx_status_0 ath5k_hw_rx_status 0 37197 NULL
166181 +enable_so_nbperpage_jfs_sb_info_37199 nbperpage jfs_sb_info 0 37199 NULL
166182 +enable_so_gva_to_gpa_kvm_mmu_37200 gva_to_gpa kvm_mmu 0 37200 NULL
166183 +enable_so_digestsize_shash_alg_37203 digestsize shash_alg 0 37203 NULL
166184 +enable_so_last_message_count_mxt_data_37205 last_message_count mxt_data 0 37205 NULL
166185 +enable_so_offset_jffs2_eraseblock_37206 offset jffs2_eraseblock 0 37206 NULL
166186 +enable_so_num_VFs_pci_sriov_37207 num_VFs pci_sriov 0 37207 NULL
166187 +enable_so_hur_len_fndecl_37216 hur_len fndecl 0 37216 NULL
166188 +enable_so_xfs_dir2_node_trim_free_fndecl_37218 xfs_dir2_node_trim_free fndecl 2 37218 NULL
166189 +enable_so_gsc_set_frame_size_fndecl_37233 gsc_set_frame_size fndecl 3-2 37233 NULL
166190 +enable_so_height_fb_image_37238 height fb_image 0 37238 NULL
166191 +enable_so_write_max_at24_data_37243 write_max at24_data 0 37243 NULL
166192 +enable_so_csum_and_copy_to_iter_fndecl_37244 csum_and_copy_to_iter fndecl 2 37244 NULL
166193 +enable_so_test_unaligned_bulk_fndecl_37246 test_unaligned_bulk fndecl 3-2 37246 NULL
166194 +enable_so_i_refcount_loc_ocfs2_dinode_37249 i_refcount_loc ocfs2_dinode 0 37249 NULL
166195 +enable_so_hfsplus_find_attr_fndecl_37253 hfsplus_find_attr fndecl 0 37253 NULL
166196 +enable_so_ath6kl_wmi_ap_set_beacon_intvl_cmd_fndecl_37254 ath6kl_wmi_ap_set_beacon_intvl_cmd fndecl 2 37254 NULL
166197 +enable_so_pfkey_sockaddr_pair_size_fndecl_37257 pfkey_sockaddr_pair_size fndecl 0 37257 NULL
166198 +enable_so_isdn_writebuf_stub_fndecl_37260 isdn_writebuf_stub fndecl 4 37260 NULL
166199 +enable_so___pskb_trim_head_fndecl_37267 __pskb_trim_head fndecl 2 37267 NULL
166200 +enable_so_ieee80211_rx_radiotap_hdrlen_fndecl_37268 ieee80211_rx_radiotap_hdrlen fndecl 0 37268 NULL
166201 +enable_so_blk_queue_update_dma_pad_fndecl_37275 blk_queue_update_dma_pad fndecl 2 37275 NULL
166202 +enable_so_copy_entries_to_user_fndecl_37276 copy_entries_to_user fndecl 1 37276 NULL
166203 +enable_so_max_packet_sz_rx_musb_hw_ep_37278 max_packet_sz_rx musb_hw_ep 0 37278 NULL
166204 +enable_so_scrollback_current_vardecl_fbcon_c_37279 scrollback_current vardecl_fbcon.c 0 37279 NULL
166205 +enable_so_reg_end_ath6kl_diag_reg_info_37280 reg_end ath6kl_diag_reg_info 0 37280 NULL
166206 +enable_so_do_ncp_rpc_call_fndecl_37285 do_ncp_rpc_call fndecl 2-4 37285 NULL
166207 +enable_so_aac_rx_ioremap_fndecl_37289 aac_rx_ioremap fndecl 2 37289 NULL nohasharray
166208 +enable_so_buf_size_mlx4_en_tx_ring_37289 buf_size mlx4_en_tx_ring 0 37289 &enable_so_aac_rx_ioremap_fndecl_37289
166209 +enable_so_cyz_load_fw_fndecl_37290 cyz_load_fw fndecl 0 37290 NULL
166210 +enable_so_num_bna_mem_info_37294 num bna_mem_info 0 37294 NULL
166211 +enable_so_lcd_hsync_len_atyfb_par_37297 lcd_hsync_len atyfb_par 0 37297 NULL
166212 +enable_so_jfs_setxattr_fndecl_37302 jfs_setxattr fndecl 4 37302 NULL
166213 +enable_so_aer_inject_write_fndecl_37308 aer_inject_write fndecl 3 37308 NULL
166214 +enable_so_svc_partial_recvfrom_fndecl_37311 svc_partial_recvfrom fndecl 0-5-4-3 37311 NULL
166215 +enable_so_ath6kl_delete_qos_write_fndecl_37312 ath6kl_delete_qos_write fndecl 3 37312 NULL
166216 +enable_so_fbcon_scrolldelta_fndecl_37317 fbcon_scrolldelta fndecl 2 37317 NULL nohasharray
166217 +enable_so_batadv_handle_unclaim_fndecl_37317 batadv_handle_unclaim fndecl 5 37317 &enable_so_fbcon_scrolldelta_fndecl_37317 nohasharray
166218 +enable_so_tx_win_size_mwifiex_ie_types_btcoex_aggr_win_size_37317 tx_win_size mwifiex_ie_types_btcoex_aggr_win_size 0 37317 &enable_so_batadv_handle_unclaim_fndecl_37317
166219 +enable_so_size_dm_header_37319 size dm_header 0 37319 NULL
166220 +enable_so_mt76_mac_process_rx_fndecl_37334 mt76_mac_process_rx fndecl 0 37334 NULL
166221 +enable_so_ie_len_cfg80211_sched_scan_request_37335 ie_len cfg80211_sched_scan_request 0 37335 NULL nohasharray
166222 +enable_so_ufs_change_blocknr_fndecl_37335 ufs_change_blocknr fndecl 2-4-5 37335 &enable_so_ie_len_cfg80211_sched_scan_request_37335
166223 +enable_so_ud_cursor_fndecl_37338 ud_cursor fndecl 4 37338 NULL nohasharray
166224 +enable_so_line6_midibuf_init_fndecl_37338 line6_midibuf_init fndecl 2 37338 &enable_so_ud_cursor_fndecl_37338
166225 +enable_so_mdio_mii_ioctl_fndecl_37342 mdio_mii_ioctl fndecl 0 37342 NULL
166226 +enable_so_hso_serial_common_create_fndecl_37343 hso_serial_common_create fndecl 3-4 37343 NULL
166227 +enable_so_dlen_pg_read_hdr_37352 dlen pg_read_hdr 0 37352 NULL
166228 +enable_so_blksize_fuse_mount_data_37357 blksize fuse_mount_data 0 37357 NULL
166229 +enable_so_ieee80211_alloc_txb_fndecl_37358 ieee80211_alloc_txb fndecl 1 37358 NULL
166230 +enable_so_pdev_id_sm501_devdata_37360 pdev_id sm501_devdata 0 37360 NULL
166231 +enable_so_rc_len_whcrc_37363 rc_len whcrc 0 37363 NULL
166232 +enable_so_gsm_change_mtu_fndecl_37364 gsm_change_mtu fndecl 2 37364 NULL
166233 +enable_so_loff_scifioctl_fence_signal_37366 loff scifioctl_fence_signal 0 37366 NULL
166234 +enable_so_alauda_read_data_fndecl_37367 alauda_read_data fndecl 3-2 37367 NULL
166235 +enable_so_bt_alloc_fndecl_37370 bt_alloc fndecl 2 37370 NULL
166236 +enable_so_peer_addr_len_drbd_connection_37371 peer_addr_len drbd_connection 0 37371 NULL
166237 +enable_so_orig_bi_size_usb_idmouse_37372 orig_bi_size usb_idmouse 0 37372 NULL
166238 +enable_so_virtscsi_add_cmd_fndecl_37379 virtscsi_add_cmd fndecl 3-4 37379 NULL
166239 +enable_so_gotoxay_fndecl_37380 gotoxay fndecl 2-3 37380 NULL
166240 +enable_so_nvkm_ramht_new_fndecl_37381 nvkm_ramht_new fndecl 2 37381 NULL
166241 +enable_so_size_pnp_mem_37384 size pnp_mem 0 37384 NULL
166242 +enable_so_tx_tx_exch_pending_read_fndecl_37385 tx_tx_exch_pending_read fndecl 3 37385 NULL
166243 +enable_so_btrfs_free_and_pin_reserved_extent_fndecl_37387 btrfs_free_and_pin_reserved_extent fndecl 3-2 37387 NULL
166244 +enable_so_alloc_blksz_hfs_sb_info_37390 alloc_blksz hfs_sb_info 0 37390 NULL nohasharray
166245 +enable_so_smscore_createbuffer_fndecl_37390 smscore_createbuffer fndecl 3 37390 &enable_so_alloc_blksz_hfs_sb_info_37390
166246 +enable_so_batadv_check_management_packet_fndecl_37394 batadv_check_management_packet fndecl 3 37394 NULL
166247 +enable_so_hsc_msg_len_set_fndecl_37398 hsc_msg_len_set fndecl 2 37398 NULL
166248 +enable_so_jdvbt90502_reg_read_fndecl_37400 jdvbt90502_reg_read fndecl 4 37400 NULL
166249 +enable_so_ieee80211_send_null_response_fndecl_37403 ieee80211_send_null_response fndecl 3 37403 NULL
166250 +enable_so_num_msix_vectors_i40e_hw_capabilities_37406 num_msix_vectors i40e_hw_capabilities 0 37406 NULL
166251 +enable_so_ath6kl_wmi_implicit_create_pstream_fndecl_37407 ath6kl_wmi_implicit_create_pstream fndecl 2 37407 NULL
166252 +enable_so_xfs_rtfree_extent_fndecl_37427 xfs_rtfree_extent fndecl 3-2 37427 NULL
166253 +enable_so_hr_block_bits_o2hb_region_37433 hr_block_bits o2hb_region 0 37433 NULL
166254 +enable_so_radeon_gart_size_vardecl_37434 radeon_gart_size vardecl 0 37434 NULL nohasharray
166255 +enable_so_inode_table_ext4_new_group_data_37434 inode_table ext4_new_group_data 0 37434 &enable_so_radeon_gart_size_vardecl_37434
166256 +enable_so_nice_workqueue_attrs_37437 nice workqueue_attrs 0 37437 NULL
166257 +enable_so_dib0700_ctrl_rd_fndecl_37445 dib0700_ctrl_rd fndecl 0 37445 NULL
166258 +enable_so_size_erst_record_id_cache_37450 size erst_record_id_cache 0 37450 NULL
166259 +enable_so_right_margin_fb_var_screeninfo_37453 right_margin fb_var_screeninfo 0 37453 NULL nohasharray
166260 +enable_so_file_size_squashfs_dir_inode_37453 file_size squashfs_dir_inode 0 37453 &enable_so_right_margin_fb_var_screeninfo_37453
166261 +enable_so_header_size_rxrpc_connection_37458 header_size rxrpc_connection 0 37458 NULL
166262 +enable_so_get_user_pages_locked_fndecl_37465 get_user_pages_locked fndecl 3 37465 NULL nohasharray
166263 +enable_so_devnum_mtd_blktrans_dev_37465 devnum mtd_blktrans_dev 0 37465 &enable_so_get_user_pages_locked_fndecl_37465 nohasharray
166264 +enable_so_cfi_read_query_fndecl_37465 cfi_read_query fndecl 0 37465 &enable_so_devnum_mtd_blktrans_dev_37465
166265 +enable_so_bi_sector_bvec_iter_37467 bi_sector bvec_iter 0 37467 NULL
166266 +enable_so_rate_ua101_37469 rate ua101 0 37469 NULL
166267 +enable_so_length_drm_event_37471 length drm_event 0 37471 NULL
166268 +enable_so_s_apbshift_ufs_sb_private_info_37473 s_apbshift ufs_sb_private_info 0 37473 NULL
166269 +enable_so_TupleLink_tuple_t_37482 TupleLink tuple_t 0 37482 NULL
166270 +enable_so_squashfs_iget_fndecl_37485 squashfs_iget fndecl 3 37485 NULL nohasharray
166271 +enable_so_ath10k_mac_create_fndecl_37485 ath10k_mac_create fndecl 1 37485 &enable_so_squashfs_iget_fndecl_37485
166272 +enable_so_qib_resize_cq_fndecl_37489 qib_resize_cq fndecl 2 37489 NULL
166273 +enable_so_params_len_nfc_evt_transaction_37500 params_len nfc_evt_transaction 0 37500 NULL
166274 +enable_so_lines_ivtv_osd_coords_37504 lines ivtv_osd_coords 0 37504 NULL nohasharray
166275 +enable_so_heads_mspro_devinfo_37504 heads mspro_devinfo 0 37504 &enable_so_lines_ivtv_osd_coords_37504
166276 +enable_so_ipoib_add_port_fndecl_37508 ipoib_add_port fndecl 3 37508 NULL
166277 +enable_so_ks8851_rdfifo_fndecl_37510 ks8851_rdfifo fndecl 3 37510 NULL
166278 +enable_so_inode_newsize_ok_fndecl_37511 inode_newsize_ok fndecl 0-2 37511 NULL
166279 +enable_so_ncpus_vardecl_aoecmd_c_37517 ncpus vardecl_aoecmd.c 0 37517 NULL nohasharray
166280 +enable_so_copy_user_segment_list_fndecl_37517 copy_user_segment_list fndecl 2 37517 &enable_so_ncpus_vardecl_aoecmd_c_37517
166281 +enable_so_etherMtu_mac_eeprom_port_cfg_37523 etherMtu_mac eeprom_port_cfg 0 37523 NULL nohasharray
166282 +enable_so___data_len_request_37523 __data_len request 0 37523 &enable_so_etherMtu_mac_eeprom_port_cfg_37523
166283 +enable_so_efx_realloc_channels_fndecl_37528 efx_realloc_channels fndecl 2-3 37528 NULL
166284 +enable_so_num_txd_netxen_adapter_37529 num_txd netxen_adapter 0 37529 NULL
166285 +enable_so_parent_ino_xfs_fid64_37533 parent_ino xfs_fid64 0 37533 NULL
166286 +enable_so_ieee80211_bss_info_update_fndecl_37537 ieee80211_bss_info_update fndecl 4 37537 NULL nohasharray
166287 +enable_so_dwords_qib_verbs_txreq_37537 dwords qib_verbs_txreq 0 37537 &enable_so_ieee80211_bss_info_update_fndecl_37537
166288 +enable_so_fuse_fsync_common_fndecl_37543 fuse_fsync_common fndecl 2-3 37543 NULL
166289 +enable_so_btrfs_io_bio_alloc_fndecl_37544 btrfs_io_bio_alloc fndecl 2 37544 NULL
166290 +enable_so_keylen_ppp_mppe_state_37546 keylen ppp_mppe_state 0 37546 NULL nohasharray
166291 +enable_so_divisor_sfq_sched_data_37546 divisor sfq_sched_data 0 37546 &enable_so_keylen_ppp_mppe_state_37546
166292 +enable_so_extent_shift_ecryptfs_crypt_stat_37548 extent_shift ecryptfs_crypt_stat 0 37548 NULL nohasharray
166293 +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
166294 +enable_so_srp_map_desc_fndecl_37569 srp_map_desc fndecl 3 37569 NULL
166295 +enable_so_dln2_transfer_fndecl_37576 dln2_transfer fndecl 0 37576 NULL
166296 +enable_so_fixup_user_fault_fndecl_37577 fixup_user_fault fndecl 3 37577 NULL
166297 +enable_so_len_efx_rx_buffer_37579 len efx_rx_buffer 0 37579 NULL
166298 +enable_so_catas_offset_mlx4_fw_37594 catas_offset mlx4_fw 0 37594 NULL
166299 +enable_so_n_ai_urbs_usbdux_private_37595 n_ai_urbs usbdux_private 0 37595 NULL
166300 +enable_so_ocfs2_cp_xattr_bucket_fndecl_37598 ocfs2_cp_xattr_bucket fndecl 3-4 37598 NULL
166301 +enable_so_data_sock_create_fndecl_37606 data_sock_create fndecl 3 37606 NULL
166302 +enable_so_v9fs_xattr_set_acl_fndecl_37607 v9fs_xattr_set_acl fndecl 5 37607 NULL
166303 +enable_so_tun_do_read_fndecl_37614 tun_do_read fndecl 0 37614 NULL
166304 +enable_so_tx_tx_start_data_read_fndecl_37616 tx_tx_start_data_read fndecl 3 37616 NULL nohasharray
166305 +enable_so_eeprom_len_fmc_device_37616 eeprom_len fmc_device 0 37616 &enable_so_tx_tx_start_data_read_fndecl_37616
166306 +enable_so_dcbp_set_code_fndecl_37633 dcbp_set_code fndecl 2 37633 NULL
166307 +enable_so_lfb_height_screen_info_37634 lfb_height screen_info 0 37634 NULL
166308 +enable_so_rmtblkcnt2_xfs_da_args_37635 rmtblkcnt2 xfs_da_args 0 37635 NULL
166309 +enable_so_b_in_mon_reader_bin_37636 b_in mon_reader_bin 0 37636 NULL
166310 +enable_so_usb_stor_bulk_srb_fndecl_37641 usb_stor_bulk_srb fndecl 2 37641 NULL
166311 +enable_so_copy_ctr_args_fndecl_37642 copy_ctr_args fndecl 2 37642 NULL
166312 +enable_so_addrlen_rpc_xprt_37643 addrlen rpc_xprt 0 37643 NULL
166313 +enable_so_bufsize_vardecl_pagetest_c_37645 bufsize vardecl_pagetest.c 0 37645 NULL
166314 +enable_so_alloc_ldt_struct_fndecl_37649 alloc_ldt_struct fndecl 1 37649 NULL
166315 +enable_so_cache_size_cache_37650 cache_size cache 0 37650 NULL
166316 +enable_so_r5l_append_payload_meta_fndecl_37651 r5l_append_payload_meta fndecl 3 37651 NULL
166317 +enable_so_spu_subport_cnt_ipath_user_info_37652 spu_subport_cnt ipath_user_info 0 37652 NULL
166318 +enable_so_bop_check_insert_nilfs_bmap_operations_37658 bop_check_insert nilfs_bmap_operations 0 37658 NULL nohasharray
166319 +enable_so_hfcsusb_rx_frame_fndecl_37658 hfcsusb_rx_frame fndecl 3 37658 &enable_so_bop_check_insert_nilfs_bmap_operations_37658
166320 +enable_so_efi_nextents_xfs_efi_log_format_37664 efi_nextents xfs_efi_log_format 0 37664 NULL
166321 +enable_so_early_bytes_rchan_buf_37669 early_bytes rchan_buf 0 37669 NULL
166322 +enable_so_lsave_sz_ubifs_info_37672 lsave_sz ubifs_info 0 37672 NULL
166323 +enable_so_len_ethtool_eeprom_37676 len ethtool_eeprom 0 37676 NULL
166324 +enable_so_eeprom_blob_size_iwl_priv_37680 eeprom_blob_size iwl_priv 0 37680 NULL
166325 +enable_so_lastextent_efs_inode_info_37681 lastextent efs_inode_info 0 37681 NULL
166326 +enable_so_nvme_trans_ext_inq_page_fndecl_37691 nvme_trans_ext_inq_page fndecl 3 37691 NULL
166327 +enable_so_zm_wmfw_adsp2_alg_hdr_37694 zm wmfw_adsp2_alg_hdr 0 37694 NULL
166328 +enable_so_usb_ftdi_elan_edset_setup_fndecl_37695 usb_ftdi_elan_edset_setup fndecl 0 37695 NULL
166329 +enable_so_orig_video_points_screen_info_37702 orig_video_points screen_info 0 37702 NULL
166330 +enable_so_num_tx_ring_sh_eth_private_37717 num_tx_ring sh_eth_private 0 37717 NULL
166331 +enable_so_regset_tls_get_fndecl_37721 regset_tls_get fndecl 3 37721 NULL
166332 +enable_so_zap_bt_entries_mapping_fndecl_37722 zap_bt_entries_mapping fndecl 3-4-2 37722 NULL
166333 +enable_so_run_start_commands_fndecl_37723 run_start_commands fndecl 0 37723 NULL
166334 +enable_so_bfad_debugfs_lseek_fndecl_37724 bfad_debugfs_lseek fndecl 2 37724 NULL
166335 +enable_so_des3_dwceqos_dma_desc_37725 des3 dwceqos_dma_desc 0 37725 NULL
166336 +enable_so_cciss_geometry_inquiry_fndecl_37730 cciss_geometry_inquiry fndecl 4 37730 NULL
166337 +enable_so_sk_wmem_queued_sock_37733 sk_wmem_queued sock 0 37733 NULL
166338 +enable_so_len_cap_mon_bin_hdr_37739 len_cap mon_bin_hdr 0 37739 NULL
166339 +enable_so_mon_bin_get_event_fndecl_37740 mon_bin_get_event fndecl 6-4 37740 NULL
166340 +enable_so_pwr_rcvd_beacons_read_fndecl_37751 pwr_rcvd_beacons_read fndecl 3 37751 NULL
166341 +enable_so_num_enh_eq_cfgs_wm8994_pdata_37752 num_enh_eq_cfgs wm8994_pdata 0 37752 NULL
166342 +enable_so_vmw_kms_ldu_do_dmabuf_dirty_fndecl_37757 vmw_kms_ldu_do_dmabuf_dirty fndecl 6 37757 NULL
166343 +enable_so_ath6kl_dbg_dump_fndecl_37760 ath6kl_dbg_dump fndecl 5 37760 NULL
166344 +enable_so_cache_read_procfs_fndecl_37761 cache_read_procfs fndecl 3 37761 NULL
166345 +enable_so_length_acpi_object_buffer_37768 length acpi_object_buffer 0 37768 NULL
166346 +enable_so_prot_length_se_cmd_37769 prot_length se_cmd 0 37769 NULL
166347 +enable_so_per_bio_data_size_dm_target_37772 per_bio_data_size dm_target 0 37772 NULL
166348 +enable_so_kvm_kvzalloc_fndecl_37773 kvm_kvzalloc fndecl 1 37773 NULL
166349 +enable_so_access_length_acpi_object_region_field_37774 access_length acpi_object_region_field 0 37774 NULL
166350 +enable_so_block_size_mspro_sys_info_37775 block_size mspro_sys_info 0 37775 NULL
166351 +enable_so_buf_size_usb_data_stream_37781 buf_size usb_data_stream 0 37781 NULL
166352 +enable_so_ext4_init_dot_dotdot_fndecl_37792 ext4_init_dot_dotdot fndecl 4-3-5 37792 NULL
166353 +enable_so_update_interval_frames_snd_card_asihpi_37794 update_interval_frames snd_card_asihpi 0 37794 NULL
166354 +enable_so_bytes_per_block_svga3d_surface_desc_37798 bytes_per_block svga3d_surface_desc 0 37798 NULL
166355 +enable_so_nilfs_sufile_read_fndecl_37800 nilfs_sufile_read fndecl 2 37800 NULL
166356 +enable_so_eo_get_last_eb_blk_ocfs2_extent_tree_operations_37802 eo_get_last_eb_blk ocfs2_extent_tree_operations 0 37802 NULL
166357 +enable_so_exec_verb_hdac_device_37803 exec_verb hdac_device 0 37803 NULL
166358 +enable_so_word_4_ns_rsqe_37805 word_4 ns_rsqe 0 37805 NULL
166359 +enable_so_gid_tbl_len_ib_port_attr_37809 gid_tbl_len ib_port_attr 0 37809 NULL nohasharray
166360 +enable_so_devnum_genwqe_genwqe_dev_37809 devnum_genwqe genwqe_dev 0 37809 &enable_so_gid_tbl_len_ib_port_attr_37809
166361 +enable_so_buf_size_mlx5_ib_qp_37812 buf_size mlx5_ib_qp 0 37812 NULL
166362 +enable_so_page_shift_qib_mregion_37818 page_shift qib_mregion 0 37818 NULL
166363 +enable_so_out_ep_snd_usb_midi_endpoint_info_37819 out_ep snd_usb_midi_endpoint_info 0 37819 NULL
166364 +enable_so_max_header_size_ircomm_tty_cb_37822 max_header_size ircomm_tty_cb 0 37822 NULL
166365 +enable_so_my_addr_len_drbd_connection_37828 my_addr_len drbd_connection 0 37828 NULL
166366 +enable_so_rbd_img_request_create_fndecl_37833 rbd_img_request_create fndecl 2-3 37833 NULL
166367 +enable_so_mru_syncppp_37835 mru syncppp 0 37835 NULL
166368 +enable_so_slot_width_mvs_chip_info_37839 slot_width mvs_chip_info 0 37839 NULL nohasharray
166369 +enable_so_ifc_len_ifconf_37839 ifc_len ifconf 0 37839 &enable_so_slot_width_mvs_chip_info_37839
166370 +enable_so___kfifo_skip_r_fndecl_37849 __kfifo_skip_r fndecl 2 37849 NULL
166371 +enable_so_iblock_get_bio_fndecl_37851 iblock_get_bio fndecl 2-3 37851 NULL
166372 +enable_so_sctp_init_cause_fixed_fndecl_37853 sctp_init_cause_fixed fndecl 3 37853 NULL
166373 +enable_so_ioread16be_fndecl_37854 ioread16be fndecl 0 37854 NULL
166374 +enable_so_nofill_fndecl_37857 nofill fndecl 0 37857 NULL
166375 +enable_so_usbat_read_block_fndecl_37858 usbat_read_block fndecl 3-4 37858 NULL
166376 +enable_so_nents_usnic_uiom_chunk_37860 nents usnic_uiom_chunk 0 37860 NULL
166377 +enable_so_tx_tx_exch_read_fndecl_37865 tx_tx_exch_read fndecl 3 37865 NULL
166378 +enable_so_assoclen_aead_request_37866 assoclen aead_request 0 37866 NULL
166379 +enable_so_xdr_copy_to_scratch_fndecl_37868 xdr_copy_to_scratch fndecl 2 37868 NULL
166380 +enable_so_btrfs_set_header_nritems_fndecl_37869 btrfs_set_header_nritems fndecl 2 37869 NULL
166381 +enable_so_sd_write_long_data_fndecl_37870 sd_write_long_data fndecl 0 37870 NULL nohasharray
166382 +enable_so_num_node_state_fndecl_37870 num_node_state fndecl 0 37870 &enable_so_sd_write_long_data_fndecl_37870
166383 +enable_so_hx8357_spi_write_then_read_fndecl_37879 hx8357_spi_write_then_read fndecl 3-5 37879 NULL
166384 +enable_so_leaf_delete_items_fndecl_37885 leaf_delete_items fndecl 5 37885 NULL
166385 +enable_so_____alloc_ei_netdev_fndecl_37888 ____alloc_ei_netdev fndecl 1 37888 NULL
166386 +enable_so_dm_bufio_client_create_fndecl_37889 dm_bufio_client_create fndecl 2-4 37889 NULL
166387 +enable_so_gss_wrap_kerberos_fndecl_37890 gss_wrap_kerberos fndecl 2 37890 NULL
166388 +enable_so_bulk_in_ipheth_device_37894 bulk_in ipheth_device 0 37894 NULL nohasharray
166389 +enable_so_xfs_buf_get_uncached_fndecl_37894 xfs_buf_get_uncached fndecl 2 37894 &enable_so_bulk_in_ipheth_device_37894
166390 +enable_so_prod_xfs_alloc_arg_37897 prod xfs_alloc_arg 0 37897 NULL
166391 +enable_so_calc_send_wqe_fndecl_37899 calc_send_wqe fndecl 0 37899 NULL nohasharray
166392 +enable_so_logi_dj_hidpp_event_fndecl_37899 logi_dj_hidpp_event fndecl 4 37899 &enable_so_calc_send_wqe_fndecl_37899
166393 +enable_so_datalen_user_key_payload_37906 datalen user_key_payload 0 37906 NULL
166394 +enable_so_pasid_kfd_process_37907 pasid kfd_process 0 37907 NULL
166395 +enable_so_pvr2_i2c_basic_op_fndecl_37917 pvr2_i2c_basic_op fndecl 4-6 37917 NULL
166396 +enable_so_spk_ye_vardecl_37920 spk_ye vardecl 0 37920 NULL
166397 +enable_so_ep_urb_context_37938 ep urb_context 0 37938 NULL nohasharray
166398 +enable_so_num_escbs_asd_seq_data_37938 num_escbs asd_seq_data 0 37938 &enable_so_ep_urb_context_37938
166399 +enable_so_kvm_fetch_guest_virt_fndecl_37942 kvm_fetch_guest_virt fndecl 2-4 37942 NULL
166400 +enable_so_seq_write_fndecl_37946 seq_write fndecl 3 37946 NULL
166401 +enable_so_phys_memory_base_mgsl_struct_37952 phys_memory_base mgsl_struct 0 37952 NULL
166402 +enable_so_wpa_ie_len_islpci_bss_wpa_ie_37953 wpa_ie_len islpci_bss_wpa_ie 0 37953 NULL nohasharray
166403 +enable_so___handle_mm_fault_fndecl_37953 __handle_mm_fault fndecl 3 37953 &enable_so_wpa_ie_len_islpci_bss_wpa_ie_37953
166404 +enable_so_rx_ring_count_fm10k_intfc_37957 rx_ring_count fm10k_intfc 0 37957 NULL
166405 +enable_so_cleanmarker_size_jffs2_sb_info_37959 cleanmarker_size jffs2_sb_info 0 37959 NULL
166406 +enable_so_num_kcontrols_snd_soc_tplg_dapm_widget_37960 num_kcontrols snd_soc_tplg_dapm_widget 0 37960 NULL
166407 +enable_so_consume_size_vmci_qp_alloc_info_vmvm_37962 consume_size vmci_qp_alloc_info_vmvm 0 37962 NULL
166408 +enable_so_unmap_vmas_fndecl_37967 unmap_vmas fndecl 4-3 37967 NULL
166409 +enable_so_ieee80211_if_write_uapsd_queues_fndecl_37973 ieee80211_if_write_uapsd_queues fndecl 3 37973 NULL
166410 +enable_so_vortex_core_init_fndecl_37980 vortex_core_init fndecl 0 37980 NULL
166411 +enable_so_key_search_fndecl_37982 key_search fndecl 0 37982 NULL
166412 +enable_so_count_nfsd_readres_37988 count nfsd_readres 0 37988 NULL
166413 +enable_so_nlmsvc_lookup_host_fndecl_37992 nlmsvc_lookup_host fndecl 3 37992 NULL
166414 +enable_so_data_size_cyttsp4_sysinfo_ofs_37994 data_size cyttsp4_sysinfo_ofs 0 37994 NULL
166415 +enable_so_size_qla_flt_region_37995 size qla_flt_region 0 37995 NULL
166416 +enable_so_arizona_set_fll_fndecl_37996 arizona_set_fll fndecl 4 37996 NULL nohasharray
166417 +enable_so_key_size_bpf_map_37996 key_size bpf_map 0 37996 &enable_so_arizona_set_fll_fndecl_37996
166418 +enable_so_bt_sock_stream_recvmsg_fndecl_37997 bt_sock_stream_recvmsg fndecl 3 37997 NULL
166419 +enable_so_icmp_manip_pkt_fndecl_38011 icmp_manip_pkt fndecl 4 38011 NULL
166420 +enable_so_rfcomm_tty_write_fndecl_38016 rfcomm_tty_write fndecl 3 38016 NULL
166421 +enable_so_l_len_xfs_flock64_38022 l_len xfs_flock64 0 38022 NULL nohasharray
166422 +enable_so_max_cmnds_vardecl_aic94xx_hwi_c_38022 max_cmnds vardecl_aic94xx_hwi.c 0 38022 &enable_so_l_len_xfs_flock64_38022
166423 +enable_so_num_entries_ipt_replace_38023 num_entries ipt_replace 0 38023 NULL
166424 +enable_so_start_tpm_info_38024 start tpm_info 0 38024 NULL
166425 +enable_so_iriap_connect_confirm_fndecl_38027 iriap_connect_confirm fndecl 5 38027 NULL
166426 +enable_so_length_mcp_slot_38029 length mcp_slot 0 38029 NULL nohasharray
166427 +enable_so_ath6kl_set_bitrate_mask64_fndecl_38029 ath6kl_set_bitrate_mask64 fndecl 2 38029 &enable_so_length_mcp_slot_38029
166428 +enable_so_tsn_sctp_datahdr_38032 tsn sctp_datahdr 0 38032 NULL
166429 +enable_so_sensb_res_len_nfc_target_38034 sensb_res_len nfc_target 0 38034 NULL
166430 +enable_so_get_cur_path_fndecl_38038 get_cur_path fndecl 0 38038 NULL
166431 +enable_so_ip6_tnl_change_mtu_fndecl_38041 ip6_tnl_change_mtu fndecl 2 38041 NULL
166432 +enable_so_DataUnits_partition_t_38043 DataUnits partition_t 0 38043 NULL
166433 +enable_so_x25_negotiate_facilities_fndecl_38044 x25_negotiate_facilities fndecl 0 38044 NULL
166434 +enable_so_aac_convert_sgraw2_fndecl_38045 aac_convert_sgraw2 fndecl 2-4 38045 NULL nohasharray
166435 +enable_so_open_devices_btrfs_fs_devices_38045 open_devices btrfs_fs_devices 0 38045 &enable_so_aac_convert_sgraw2_fndecl_38045
166436 +enable_so_get_vmcore_size_fndecl_38046 get_vmcore_size fndecl 0-2-1 38046 NULL
166437 +enable_so_reference_rate_vardecl_xfi_c_38047 reference_rate vardecl_xfi.c 0 38047 NULL
166438 +enable_so_group_devt_vfio_38048 group_devt vfio 0 38048 NULL
166439 +enable_so_node_present_pages_pglist_data_38050 node_present_pages pglist_data 0 38050 NULL
166440 +enable_so_pending_buf_size_deflate_state_38053 pending_buf_size deflate_state 0 38053 NULL
166441 +enable_so_offset_drm_local_map_38055 offset drm_local_map 0 38055 NULL
166442 +enable_so_isd200_set_srb_fndecl_38056 isd200_set_srb fndecl 4 38056 NULL nohasharray
166443 +enable_so_nrpacks_vardecl_usbusx2yaudio_c_38056 nrpacks vardecl_usbusx2yaudio.c 0 38056 &enable_so_isd200_set_srb_fndecl_38056
166444 +enable_so_length_ipw_rx_packet_38058 length ipw_rx_packet 0 38058 NULL nohasharray
166445 +enable_so_sctp_auth_create_key_fndecl_38058 sctp_auth_create_key fndecl 1 38058 &enable_so_length_ipw_rx_packet_38058
166446 +enable_so_iscsi_create_session_fndecl_38060 iscsi_create_session fndecl 3 38060 NULL
166447 +enable_so_ubifs_iget_fndecl_38065 ubifs_iget fndecl 2 38065 NULL
166448 +enable_so_add_vol_fndecl_38066 add_vol fndecl 3-6 38066 NULL
166449 +enable_so_extent_fiemap_fndecl_38070 extent_fiemap fndecl 4-3 38070 NULL
166450 +enable_so_numPartitionMaps_logicalVolDesc_38073 numPartitionMaps logicalVolDesc 0 38073 NULL
166451 +enable_so_length_wpa_param_38074 length wpa_param 0 38074 NULL
166452 +enable_so_fb_bpp_vardecl_udl_fb_c_38075 fb_bpp vardecl_udl_fb.c 0 38075 NULL
166453 +enable_so_ps_upsd_utilization_read_fndecl_38086 ps_upsd_utilization_read fndecl 3 38086 NULL
166454 +enable_so_driver_data_pca953x_chip_38096 driver_data pca953x_chip 0 38096 NULL
166455 +enable_so_bd_group_ext4_buddy_38101 bd_group ext4_buddy 0 38101 NULL nohasharray
166456 +enable_so_la_bm_off_ocfs2_local_alloc_38101 la_bm_off ocfs2_local_alloc 0 38101 &enable_so_bd_group_ext4_buddy_38101
166457 +enable_so_softingcs_index_vardecl_softing_cs_c_38102 softingcs_index vardecl_softing_cs.c 0 38102 NULL
166458 +enable_so_data_size_il4965_firmware_pieces_38105 data_size il4965_firmware_pieces 0 38105 NULL
166459 +enable_so_host_mapping_level_fndecl_38115 host_mapping_level fndecl 0-2 38115 NULL
166460 +enable_so_length_floppy_raw_cmd_38116 length floppy_raw_cmd 0 38116 NULL
166461 +enable_so_wm8994_get_fll_config_fndecl_38117 wm8994_get_fll_config fndecl 3-4 38117 NULL
166462 +enable_so_rmtblkno_xfs_da_args_38121 rmtblkno xfs_da_args 0 38121 NULL
166463 +enable_so_sel_write_access_fndecl_38123 sel_write_access fndecl 3 38123 NULL
166464 +enable_so_actual_usbhs_pkt_38126 actual usbhs_pkt 0 38126 NULL
166465 +enable_so_len_rxd_desc_38127 len rxd_desc 0 38127 NULL
166466 +enable_so_usbhs_pipe_get_maxpacket_fndecl_38131 usbhs_pipe_get_maxpacket fndecl 0 38131 NULL
166467 +enable_so_crtc_h_drm_plane_state_38132 crtc_h drm_plane_state 0 38132 NULL
166468 +enable_so_sctp_setsockopt_associnfo_fndecl_38135 sctp_setsockopt_associnfo fndecl 3 38135 NULL
166469 +enable_so_sfi_sysfs_install_table_fndecl_38139 sfi_sysfs_install_table fndecl 1 38139 NULL
166470 +enable_so_rtw_os_xmit_resource_alloc23a_fndecl_38142 rtw_os_xmit_resource_alloc23a fndecl 3 38142 NULL
166471 +enable_so_nentries_ebt_replace_kernel_38149 nentries ebt_replace_kernel 0 38149 NULL
166472 +enable_so_btrfs_get_io_failure_record_fndecl_38153 btrfs_get_io_failure_record fndecl 3-2 38153 NULL
166473 +enable_so_st_read_fndecl_38176 st_read fndecl 3 38176 NULL
166474 +enable_so___mxt_read_reg_fndecl_38178 __mxt_read_reg fndecl 3-0 38178 NULL
166475 +enable_so_compat_dccp_setsockopt_fndecl_38188 compat_dccp_setsockopt fndecl 5 38188 NULL
166476 +enable_so_zone_end_strip_zone_38191 zone_end strip_zone 0 38191 NULL
166477 +enable_so_nf_ct_ext_create_fndecl_38195 nf_ct_ext_create fndecl 3 38195 NULL
166478 +enable_so_drm_property_create_fndecl_38196 drm_property_create fndecl 4 38196 NULL
166479 +enable_so_nilfs_cpfile_checkpoints_in_block_fndecl_38197 nilfs_cpfile_checkpoints_in_block fndecl 0-2-3 38197 NULL
166480 +enable_so_goto_high_power_fndecl_38198 goto_high_power fndecl 0 38198 NULL
166481 +enable_so_driver_data_i2c_device_id_38200 driver_data i2c_device_id 0 38200 NULL
166482 +enable_so_raw_sig_size_x509_certificate_38211 raw_sig_size x509_certificate 0 38211 NULL
166483 +enable_so_ath6kl_wmi_del_wow_pattern_cmd_fndecl_38224 ath6kl_wmi_del_wow_pattern_cmd fndecl 2 38224 NULL nohasharray
166484 +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
166485 +enable_so_target_alloc_sgl_fndecl_38227 target_alloc_sgl fndecl 3 38227 NULL
166486 +enable_so_sh_mmcif_error_manage_fndecl_38230 sh_mmcif_error_manage fndecl 0 38230 NULL
166487 +enable_so_dvb_audio_write_fndecl_38232 dvb_audio_write fndecl 3 38232 NULL
166488 +enable_so_max_buf_size_tegra_spi_data_38233 max_buf_size tegra_spi_data 0 38233 NULL
166489 +enable_so_firm_numbers_queue_AdapterControlBlock_38236 firm_numbers_queue AdapterControlBlock 0 38236 NULL
166490 +enable_so_ipwireless_network_packet_received_fndecl_38238 ipwireless_network_packet_received fndecl 4 38238 NULL
166491 +enable_so_periodic_bytes_fndecl_38241 periodic_bytes fndecl 0 38241 NULL
166492 +enable_so_submit_bio_start_async_submit_bio_38242 submit_bio_start async_submit_bio 0 38242 NULL
166493 +enable_so_i2400m_bm_cmd_fndecl_38243 i2400m_bm_cmd fndecl 0-5 38243 NULL
166494 +enable_so_get_cell_fndecl_38247 get_cell fndecl 2 38247 NULL
166495 +enable_so_isd200_try_enum_fndecl_38250 isd200_try_enum fndecl 2 38250 NULL nohasharray
166496 +enable_so_name_len_ext2_dir_entry_2_38250 name_len ext2_dir_entry_2 0 38250 &enable_so_isd200_try_enum_fndecl_38250
166497 +enable_so_alloc_hippi_dev_fndecl_38251 alloc_hippi_dev fndecl 1 38251 NULL
166498 +enable_so_ext2_xattr_get_fndecl_38252 ext2_xattr_get fndecl 0 38252 NULL
166499 +enable_so_bdbars_count_intel8x0m_38253 bdbars_count intel8x0m 0 38253 NULL
166500 +enable_so_mwifiex_11n_delba_fndecl_38254 mwifiex_11n_delba fndecl 2 38254 NULL
166501 +enable_so_rsize_nfs_server_38256 rsize nfs_server 0 38256 NULL nohasharray
166502 +enable_so_bLength_usb_cdc_country_functional_desc_38256 bLength usb_cdc_country_functional_desc 0 38256 &enable_so_rsize_nfs_server_38256
166503 +enable_so__osd_req_cdb_len_fndecl_38259 _osd_req_cdb_len fndecl 0 38259 NULL
166504 +enable_so_security_set_fndecl_38262 security_set fndecl 5 38262 NULL
166505 +enable_so_prepare_header100_fndecl_38275 prepare_header100 fndecl 3-0 38275 NULL
166506 +enable_so_min_pnp_port_38276 min pnp_port 0 38276 NULL
166507 +enable_so_numpmkid_host_if_pmkid_attr_38277 numpmkid host_if_pmkid_attr 0 38277 NULL nohasharray
166508 +enable_so_irnet_connect_confirm_fndecl_38277 irnet_connect_confirm fndecl 5 38277 &enable_so_numpmkid_host_if_pmkid_attr_38277
166509 +enable_so_ipath_rcvegrbufsize_ipath_devdata_38283 ipath_rcvegrbufsize ipath_devdata 0 38283 NULL
166510 +enable_so_len_osd_attr_38284 len osd_attr 0 38284 NULL nohasharray
166511 +enable_so_header_length_fw_iso_packet_38284 header_length fw_iso_packet 0 38284 &enable_so_len_osd_attr_38284
166512 +enable_so_pci_cardbus_mem_size_vardecl_38290 pci_cardbus_mem_size vardecl 0 38290 NULL
166513 +enable_so_smk_write_ptrace_fndecl_38294 smk_write_ptrace fndecl 3 38294 NULL
166514 +enable_so_compat_arch_ptrace_fndecl_38298 compat_arch_ptrace fndecl 3 38298 NULL nohasharray
166515 +enable_so_alloc_smp_req_fndecl_38298 alloc_smp_req fndecl 1 38298 &enable_so_compat_arch_ptrace_fndecl_38298
166516 +enable_so_num_kcontrols_snd_soc_dapm_widget_38302 num_kcontrols snd_soc_dapm_widget 0 38302 NULL nohasharray
166517 +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
166518 +enable_so_img_width_s5p_mfc_ctx_38303 img_width s5p_mfc_ctx 0 38303 NULL
166519 +enable_so_height_zoran_v4l_settings_38307 height zoran_v4l_settings 0 38307 NULL
166520 +enable_so_bad_peb_count_ubi_attach_info_38310 bad_peb_count ubi_attach_info 0 38310 NULL
166521 +enable_so_ext4_get_block_write_fndecl_38313 ext4_get_block_write fndecl 2 38313 NULL nohasharray
166522 +enable_so_ftid_base_tid_info_38313 ftid_base tid_info 0 38313 &enable_so_ext4_get_block_write_fndecl_38313
166523 +enable_so_nr_siblings_perf_event_38320 nr_siblings perf_event 0 38320 NULL
166524 +enable_so_ob_max_size_mvumi_hba_38327 ob_max_size mvumi_hba 0 38327 NULL
166525 +enable_so_radeon_kms_compat_ioctl_fndecl_38328 radeon_kms_compat_ioctl fndecl 2 38328 NULL
166526 +enable_so_xfs_vn_fiemap_fndecl_38336 xfs_vn_fiemap fndecl 3-4 38336 NULL
166527 +enable_so_ext_lfb_base_screen_info_38337 ext_lfb_base screen_info 0 38337 NULL nohasharray
166528 +enable_so_iov_len_sg_iovec_38337 iov_len sg_iovec 0 38337 &enable_so_ext_lfb_base_screen_info_38337
166529 +enable_so_num_sys_eqs_mlx4_dev_cap_38340 num_sys_eqs mlx4_dev_cap 0 38340 NULL
166530 +enable_so_get_first_ref_fndecl_38342 get_first_ref fndecl 0 38342 NULL
166531 +enable_so_record_size_vardecl_mtdoops_c_38343 record_size vardecl_mtdoops.c 0 38343 NULL
166532 +enable_so_len_nft_data_desc_38346 len nft_data_desc 0 38346 NULL
166533 +enable_so_shim_offset_sst_res_info_38347 shim_offset sst_res_info 0 38347 NULL
166534 +enable_so_pf_fhlen_nfsd4_putfh_38348 pf_fhlen nfsd4_putfh 0 38348 NULL
166535 +enable_so_len_ethtool_regs_38354 len ethtool_regs 0 38354 NULL
166536 +enable_so_xfs_dir3_free_get_buf_fndecl_38355 xfs_dir3_free_get_buf fndecl 2 38355 NULL
166537 +enable_so_rate_snd_soc_dai_38358 rate snd_soc_dai 0 38358 NULL
166538 +enable_so_pci_sriov_resource_alignment_fndecl_38365 pci_sriov_resource_alignment fndecl 0 38365 NULL
166539 +enable_so_flush_buffer_fndecl_38367 flush_buffer fndecl 2 38367 NULL
166540 +enable_so_ri_length_gfs2_rindex_38375 ri_length gfs2_rindex 0 38375 NULL
166541 +enable_so_wsm_handle_exception_fndecl_38377 wsm_handle_exception fndecl 3 38377 NULL
166542 +enable_so_options_len_ip_tunnel_info_38380 options_len ip_tunnel_info 0 38380 NULL
166543 +enable_so_dvb_register_frontend_fndecl_38382 dvb_register_frontend fndecl 0 38382 NULL
166544 +enable_so_chrdev_setup_rx_fndecl_38384 chrdev_setup_rx fndecl 2 38384 NULL
166545 +enable_so_blk_register_region_fndecl_38387 blk_register_region fndecl 1-2 38387 NULL
166546 +enable_so_ext4_ext_rm_leaf_fndecl_38397 ext4_ext_rm_leaf fndecl 5 38397 NULL
166547 +enable_so_hfsplus_brec_read_fndecl_38399 hfsplus_brec_read fndecl 0 38399 NULL
166548 +enable_so_ath6kl_sdio_alloc_prep_scat_req_fndecl_38401 ath6kl_sdio_alloc_prep_scat_req fndecl 2 38401 NULL
166549 +enable_so_sl_tclass_flowlabel_mthca_qp_path_38402 sl_tclass_flowlabel mthca_qp_path 0 38402 NULL
166550 +enable_so__c4iw_write_mem_dma_fndecl_38404 _c4iw_write_mem_dma fndecl 3 38404 NULL
166551 +enable_so_parent_offset_isofs_fid_38408 parent_offset isofs_fid 0 38408 NULL
166552 +enable_so_xdr_xcode_array2_fndecl_38417 xdr_xcode_array2 fndecl 2 38417 NULL
166553 +enable_so_count_grant_map_38422 count grant_map 0 38422 NULL
166554 +enable_so_bond_next_port_mlx4_ib_dev_38423 bond_next_port mlx4_ib_dev 0 38423 NULL nohasharray
166555 +enable_so_read_page_fndecl_38423 read_page fndecl 2 38423 &enable_so_bond_next_port_mlx4_ib_dev_38423 nohasharray
166556 +enable_so_todo_dmxdev_filter_38423 todo dmxdev_filter 0 38423 &enable_so_read_page_fndecl_38423
166557 +enable_so_remap_exception_fndecl_38426 remap_exception fndecl 4 38426 NULL
166558 +enable_so_mwifiex_get_rates_from_cfg80211_fndecl_38427 mwifiex_get_rates_from_cfg80211 fndecl 0 38427 NULL
166559 +enable_so_ide_set_dma_mode_fndecl_38428 ide_set_dma_mode fndecl 2 38428 NULL
166560 +enable_so_lpfc_issue_reg_vfi_fndecl_38430 lpfc_issue_reg_vfi fndecl 0 38430 NULL
166561 +enable_so_m_chunk_size_drxk_state_38431 m_chunk_size drxk_state 0 38431 NULL
166562 +enable_so_num_total_adcs_snd_ice1712_38432 num_total_adcs snd_ice1712 0 38432 NULL
166563 +enable_so_r820t_write_fndecl_38436 r820t_write fndecl 4 38436 NULL
166564 +enable_so_ocfs2_iterate_xattr_buckets_fndecl_38437 ocfs2_iterate_xattr_buckets fndecl 2 38437 NULL
166565 +enable_so_cw1200_sdio_memcpy_toio_fndecl_38442 cw1200_sdio_memcpy_toio fndecl 4 38442 NULL
166566 +enable_so_vxge_rx_alloc_fndecl_38443 vxge_rx_alloc fndecl 3 38443 NULL
166567 +enable_so___ieee80211_tx_skb_tid_band_fndecl_38444 __ieee80211_tx_skb_tid_band fndecl 3 38444 NULL nohasharray
166568 +enable_so_test_ofsh_cyttsp4_sysinfo_data_38444 test_ofsh cyttsp4_sysinfo_data 0 38444 &enable_so___ieee80211_tx_skb_tid_band_fndecl_38444
166569 +enable_so_dvb_ringbuffer_avail_fndecl_38474 dvb_ringbuffer_avail fndecl 0 38474 NULL
166570 +enable_so_blocksize_gss_krb5_enctype_38477 blocksize gss_krb5_enctype 0 38477 NULL
166571 +enable_so___fuse_request_alloc_fndecl_38479 __fuse_request_alloc fndecl 1 38479 NULL
166572 +enable_so_min_pfn_mapped_vardecl_init_c_38481 min_pfn_mapped vardecl_init.c 0 38481 NULL
166573 +enable_so_irda_create_fndecl_38489 irda_create fndecl 3 38489 NULL
166574 +enable_so_dma_rx_errors_read_fndecl_38494 dma_rx_errors_read fndecl 3 38494 NULL
166575 +enable_so_copy_block_fndecl_38500 copy_block fndecl 3 38500 NULL
166576 +enable_so_create_rcom_fndecl_38501 create_rcom fndecl 4 38501 NULL nohasharray
166577 +enable_so_info_len_ib_ucm_sidr_rep_38501 info_len ib_ucm_sidr_rep 0 38501 &enable_so_create_rcom_fndecl_38501
166578 +enable_so_host_int_add_rx_gtk_fndecl_38503 host_int_add_rx_gtk fndecl 5-3 38503 NULL
166579 +enable_so_udp_recvmsg_fndecl_38509 udp_recvmsg fndecl 3 38509 NULL nohasharray
166580 +enable_so_msdu_len_htt_rx_offload_msdu_38509 msdu_len htt_rx_offload_msdu 0 38509 &enable_so_udp_recvmsg_fndecl_38509
166581 +enable_so_isofs_readpages_fndecl_38512 isofs_readpages fndecl 4 38512 NULL
166582 +enable_so_prepare_merge_dm_exception_store_type_38515 prepare_merge dm_exception_store_type 0 38515 NULL
166583 +enable_so_max_sg_mthca_limits_38517 max_sg mthca_limits 0 38517 NULL
166584 +enable_so_if_broot_bytes_xfs_ifork_38518 if_broot_bytes xfs_ifork 0 38518 NULL
166585 +enable_so_mxuport_process_read_urb_data_fndecl_38523 mxuport_process_read_urb_data fndecl 3 38523 NULL nohasharray
166586 +enable_so_octeon_init_instr_queue_fndecl_38523 octeon_init_instr_queue fndecl 3 38523 &enable_so_mxuport_process_read_urb_data_fndecl_38523
166587 +enable_so_emu_setup_memblk_fndecl_38524 emu_setup_memblk fndecl 5 38524 NULL
166588 +enable_so_set_extent_dirty_fndecl_38529 set_extent_dirty fndecl 3-2 38529 NULL
166589 +enable_so_max_pde_used_radeon_vm_38536 max_pde_used radeon_vm 0 38536 NULL
166590 +enable_so_amdgpu_sa_bo_manager_init_fndecl_38537 amdgpu_sa_bo_manager_init fndecl 3 38537 NULL
166591 +enable_so_prism2_ap_translate_scan_fndecl_38540 prism2_ap_translate_scan fndecl 0 38540 NULL
166592 +enable_so_cx18_av_read_fndecl_38542 cx18_av_read fndecl 0 38542 NULL
166593 +enable_so_hw_channels_sh_cmt_device_38544 hw_channels sh_cmt_device 0 38544 NULL
166594 +enable_so_snd_timer_user_tselect_fndecl_38545 snd_timer_user_tselect fndecl 0 38545 NULL
166595 +enable_so_ulist_add_merge_fndecl_38547 ulist_add_merge fndecl 0-2-3 38547 NULL nohasharray
166596 +enable_so_krb5_encrypt_fndecl_38547 krb5_encrypt fndecl 5 38547 &enable_so_ulist_add_merge_fndecl_38547
166597 +enable_so_fb_base_phys_radeonfb_info_38551 fb_base_phys radeonfb_info 0 38551 NULL
166598 +enable_so_set_stream_hw_fndecl_38553 set_stream_hw fndecl 3 38553 NULL nohasharray
166599 +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
166600 +enable_so_rx_max_size_rtl_usb_38560 rx_max_size rtl_usb 0 38560 NULL
166601 +enable_so_ext2_alloc_blocks_fndecl_38562 ext2_alloc_blocks fndecl 2 38562 NULL nohasharray
166602 +enable_so_hysdn_conf_write_fndecl_38562 hysdn_conf_write fndecl 3 38562 &enable_so_ext2_alloc_blocks_fndecl_38562
166603 +enable_so_offset_writequeue_entry_38565 offset writequeue_entry 0 38565 NULL
166604 +enable_so_this_header_vardecl_initramfs_c_38567 this_header vardecl_initramfs.c 0 38567 NULL nohasharray
166605 +enable_so_gfs2_dir_read_leaf_fndecl_38567 gfs2_dir_read_leaf fndecl 5 38567 &enable_so_this_header_vardecl_initramfs_c_38567 nohasharray
166606 +enable_so_htable_size_fndecl_38567 htable_size fndecl 0-1 38567 &enable_so_gfs2_dir_read_leaf_fndecl_38567
166607 +enable_so_memblock_alloc_base_nid_fndecl_38568 memblock_alloc_base_nid fndecl 2-1-0-3 38568 NULL nohasharray
166608 +enable_so_smk_write_load2_fndecl_38568 smk_write_load2 fndecl 3 38568 &enable_so_memblock_alloc_base_nid_fndecl_38568
166609 +enable_so_geneve6_build_skb_fndecl_38573 geneve6_build_skb fndecl 5 38573 NULL nohasharray
166610 +enable_so_setup_dma_urb_38573 setup_dma urb 0 38573 &enable_so_geneve6_build_skb_fndecl_38573 nohasharray
166611 +enable_so_len_port_buffer_38573 len port_buffer 0 38573 &enable_so_setup_dma_urb_38573
166612 +enable_so_block_mtu_hci_dev_38575 block_mtu hci_dev 0 38575 NULL
166613 +enable_so_data_dma_aiptek_38577 data_dma aiptek 0 38577 NULL
166614 +enable_so_rsr_ct_atc_38578 rsr ct_atc 0 38578 NULL nohasharray
166615 +enable_so_bfad_iocmd_port_get_bbcr_attr_fndecl_38578 bfad_iocmd_port_get_bbcr_attr fndecl 0 38578 &enable_so_rsr_ct_atc_38578 nohasharray
166616 +enable_so_retry_count_read_fndecl_38578 retry_count_read fndecl 3 38578 &enable_so_bfad_iocmd_port_get_bbcr_attr_fndecl_38578
166617 +enable_so_usVActive__ATOM_DTD_FORMAT_38581 usVActive _ATOM_DTD_FORMAT 0 38581 NULL
166618 +enable_so_gdm_usb_hci_send_fndecl_38585 gdm_usb_hci_send fndecl 3 38585 NULL
166619 +enable_so_rx_tpa_start_cmp_len_flags_type_rx_tpa_start_cmp_38587 rx_tpa_start_cmp_len_flags_type rx_tpa_start_cmp 0 38587 NULL
166620 +enable_so_sub_alloc_fndecl_38591 sub_alloc fndecl 0 38591 NULL
166621 +enable_so_print_prefix_fndecl_38595 print_prefix fndecl 0 38595 NULL
166622 +enable_so_set_nfilters_fndecl_38597 set_nfilters fndecl 2 38597 NULL
166623 +enable_so_proc_pid_readlink_fndecl_38601 proc_pid_readlink fndecl 3 38601 NULL
166624 +enable_so_s_cgmask_ufs_sb_private_info_38603 s_cgmask ufs_sb_private_info 0 38603 NULL
166625 +enable_so_reiserfs_posix_acl_from_disk_fndecl_38604 reiserfs_posix_acl_from_disk fndecl 2 38604 NULL nohasharray
166626 +enable_so_v_offset_v2_38604 v offset_v2 0 38604 &enable_so_reiserfs_posix_acl_from_disk_fndecl_38604 nohasharray
166627 +enable_so_maxburst_usb_ep_38604 maxburst usb_ep 0 38604 &enable_so_v_offset_v2_38604
166628 +enable_so_fpWidth_nvidia_par_38605 fpWidth nvidia_par 0 38605 NULL
166629 +enable_so_p_arglen_rpc_procinfo_38611 p_arglen rpc_procinfo 0 38611 NULL
166630 +enable_so_objectid_reiserfs_iget_args_38612 objectid reiserfs_iget_args 0 38612 NULL
166631 +enable_so_mga_compat_ioctl_fndecl_38617 mga_compat_ioctl fndecl 2 38617 NULL
166632 +enable_so_max_wqe_rqe_ocrdma_create_qp_rsp_38618 max_wqe_rqe ocrdma_create_qp_rsp 0 38618 NULL
166633 +enable_so_pageshift_sddr55_card_info_38623 pageshift sddr55_card_info 0 38623 NULL
166634 +enable_so_ar5523_config_multi_fndecl_38630 ar5523_config_multi fndecl 4 38630 NULL
166635 +enable_so_level_kvm_shadow_walk_iterator_38631 level kvm_shadow_walk_iterator 0 38631 NULL
166636 +enable_so_next_burst_len_iscsi_datain_req_38632 next_burst_len iscsi_datain_req 0 38632 NULL nohasharray
166637 +enable_so_iscsi_if_send_reply_fndecl_38632 iscsi_if_send_reply fndecl 7 38632 &enable_so_next_burst_len_iscsi_datain_req_38632
166638 +enable_so_vmci_qp_broker_alloc_fndecl_38635 vmci_qp_broker_alloc fndecl 5-6 38635 NULL
166639 +enable_so_size_bucket_table_38640 size bucket_table 0 38640 NULL
166640 +enable_so_f2fs_seek_block_fndecl_38641 f2fs_seek_block fndecl 2 38641 NULL
166641 +enable_so_uart_offset_pciserial_board_38647 uart_offset pciserial_board 0 38647 NULL nohasharray
166642 +enable_so_max_ssns_csio_fcoe_res_info_38647 max_ssns csio_fcoe_res_info 0 38647 &enable_so_uart_offset_pciserial_board_38647
166643 +enable_so_truncate_pagecache_range_fndecl_38652 truncate_pagecache_range fndecl 2-3 38652 NULL
166644 +enable_so_str_read_fndecl_38656 str_read fndecl 4 38656 NULL
166645 +enable_so_tcp_metrics_hash_log_vardecl_tcp_metrics_c_38657 tcp_metrics_hash_log vardecl_tcp_metrics.c 0 38657 NULL
166646 +enable_so_rx_buffer_len_igbvf_adapter_38659 rx_buffer_len igbvf_adapter 0 38659 NULL
166647 +enable_so_fll_in_wm8900_priv_38661 fll_in wm8900_priv 0 38661 NULL
166648 +enable_so_ext4_setent_fndecl_38662 ext4_setent fndecl 3 38662 NULL
166649 +enable_so_cm4040_read_fndecl_38663 cm4040_read fndecl 3 38663 NULL
166650 +enable_so_hid_parse_report_fndecl_38666 hid_parse_report fndecl 3 38666 NULL
166651 +enable_so_def_bpp_mb862xx_gc_mode_38668 def_bpp mb862xx_gc_mode 0 38668 NULL nohasharray
166652 +enable_so_end_clone_request_fndecl_38668 end_clone_request fndecl 2 38668 &enable_so_def_bpp_mb862xx_gc_mode_38668
166653 +enable_so_tty_cdev_add_fndecl_38673 tty_cdev_add fndecl 2-4 38673 NULL
166654 +enable_so_drm_compat_ioctl_fndecl_38678 drm_compat_ioctl fndecl 2 38678 NULL
166655 +enable_so_v9fs_alloc_rdir_buf_fndecl_38679 v9fs_alloc_rdir_buf fndecl 2 38679 NULL
166656 +enable_so_txq_max_tg3_38686 txq_max tg3 0 38686 NULL
166657 +enable_so_sg_read_oxfer_fndecl_38687 sg_read_oxfer fndecl 3 38687 NULL
166658 +enable_so_sc_uaddr_len_nfs4_setclientid_38689 sc_uaddr_len nfs4_setclientid 0 38689 NULL
166659 +enable_so_len_irda_device_list_38690 len irda_device_list 0 38690 NULL
166660 +enable_so_iio_buffer_add_channel_sysfs_fndecl_38693 iio_buffer_add_channel_sysfs fndecl 0 38693 NULL
166661 +enable_so_ioremap_prot_fndecl_38695 ioremap_prot fndecl 2-1 38695 NULL
166662 +enable_so_bulk_in_ep_irda_usb_cb_38699 bulk_in_ep irda_usb_cb 0 38699 NULL
166663 +enable_so_get_user_pages_fast_fndecl_38708 get_user_pages_fast fndecl 0-1 38708 NULL
166664 +enable_so_cxgbi_ddp_init_fndecl_38714 cxgbi_ddp_init fndecl 4-5 38714 NULL
166665 +enable_so_ifx_spi_insert_flip_string_fndecl_38715 ifx_spi_insert_flip_string fndecl 3 38715 NULL
166666 +enable_so_free_index_fndecl_38718 free_index fndecl 3 38718 NULL
166667 +enable_so_if_write_fndecl_38719 if_write fndecl 3 38719 NULL
166668 +enable_so_esrt_data_vardecl_esrt_c_38729 esrt_data vardecl_esrt.c 0 38729 NULL
166669 +enable_so_acpi_table_parse_entries_fndecl_38730 acpi_table_parse_entries fndecl 0 38730 NULL
166670 +enable_so_vram_vardecl_lxfb_core_c_38739 vram vardecl_lxfb_core.c 0 38739 NULL
166671 +enable_so_ports_max_wusbhc_38743 ports_max wusbhc 0 38743 NULL
166672 +enable_so___page_file_index_fndecl_38744 __page_file_index fndecl 0 38744 NULL
166673 +enable_so_ds_cc_ravb_ex_rx_desc_38745 ds_cc ravb_ex_rx_desc 0 38745 NULL nohasharray
166674 +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
166675 +enable_so_ssd1307fb_alloc_array_fndecl_38751 ssd1307fb_alloc_array fndecl 1 38751 NULL
166676 +enable_so_ts_tlb_preload_count_gru_thread_state_38752 ts_tlb_preload_count gru_thread_state 0 38752 NULL nohasharray
166677 +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
166678 +enable_so_length_snd_hwdep_dsp_image_38752 length snd_hwdep_dsp_image 0 38752 &enable_so_myri10ge_small_bytes_vardecl_myri10ge_c_38752
166679 +enable_so_buffer_from_user_fndecl_38753 buffer_from_user fndecl 3 38753 NULL
166680 +enable_so_tag_ctrl_info_amd8111e_rx_dr_38754 tag_ctrl_info amd8111e_rx_dr 0 38754 NULL
166681 +enable_so_t4_max_iq_size_c4iw_hw_queue_38756 t4_max_iq_size c4iw_hw_queue 0 38756 NULL
166682 +enable_so_nr_pages_max_splice_pipe_desc_38758 nr_pages_max splice_pipe_desc 0 38758 NULL
166683 +enable_so_o_height_g2d_frame_38760 o_height g2d_frame 0 38760 NULL
166684 +enable_so_egr_start_sge_38761 egr_start sge 0 38761 NULL
166685 +enable_so_default_advmss_dst_ops_38765 default_advmss dst_ops 0 38765 NULL
166686 +enable_so_midi_snd_oxfw_stream_formation_38770 midi snd_oxfw_stream_formation 0 38770 NULL
166687 +enable_so_az6007_read_fndecl_38771 az6007_read fndecl 6 38771 NULL
166688 +enable_so_inet_gro_complete_fndecl_38772 inet_gro_complete fndecl 2 38772 NULL
166689 +enable_so_qib_alloc_devdata_fndecl_38776 qib_alloc_devdata fndecl 2 38776 NULL
166690 +enable_so_sw_end_stm_data_38777 sw_end stm_data 0 38777 NULL
166691 +enable_so_ih_blkno_ocfs2_inode_handle_38779 ih_blkno ocfs2_inode_handle 0 38779 NULL
166692 +enable_so_height_cx231xx_38782 height cx231xx 0 38782 NULL
166693 +enable_so_create_rmp_cmd_fndecl_38783 create_rmp_cmd fndecl 0 38783 NULL
166694 +enable_so_pointer_size_read_fndecl_38788 pointer_size_read fndecl 3 38788 NULL
166695 +enable_so_spi_read_buf_fndecl_38792 spi_read_buf fndecl 2 38792 NULL
166696 +enable_so_get_indirect_ea_fndecl_38798 get_indirect_ea fndecl 4-3 38798 NULL
166697 +enable_so_ioread32_fndecl_38804 ioread32 fndecl 0 38804 NULL nohasharray
166698 +enable_so_size_esb2rom_window_38804 size esb2rom_window 0 38804 &enable_so_ioread32_fndecl_38804
166699 +enable_so_raw6_getfrag_fndecl_38805 raw6_getfrag fndecl 3-4 38805 NULL
166700 +enable_so_taglen_compound_hdr_38807 taglen compound_hdr 0 38807 NULL
166701 +enable_so_nb8800_receive_fndecl_38808 nb8800_receive fndecl 3 38808 NULL nohasharray
166702 +enable_so_maxpacksize_snd_usX2Y_substream_38808 maxpacksize snd_usX2Y_substream 0 38808 &enable_so_nb8800_receive_fndecl_38808
166703 +enable_so_do_readv_writev_fndecl_38810 do_readv_writev fndecl 4 38810 NULL
166704 +enable_so_tx_ring_size_bnxt_38811 tx_ring_size bnxt 0 38811 NULL nohasharray
166705 +enable_so_pad_ib_mad_send_wr_private_38811 pad ib_mad_send_wr_private 0 38811 &enable_so_tx_ring_size_bnxt_38811
166706 +enable_so_ConnReqIEsLen_user_conn_req_38822 ConnReqIEsLen user_conn_req 0 38822 NULL
166707 +enable_so_vlan_tci_sk_buff_38825 vlan_tci sk_buff 0 38825 NULL
166708 +enable_so_algorithm_r5conf_38831 algorithm r5conf 0 38831 NULL
166709 +enable_so_count_hfs_extent_38834 count hfs_extent 0 38834 NULL
166710 +enable_so_user_read_fndecl_38842 user_read fndecl 3 38842 NULL
166711 +enable_so_do_fault_fndecl_38845 do_fault fndecl 3 38845 NULL
166712 +enable_so_memblock_alloc_fndecl_38847 memblock_alloc fndecl 2-1-0 38847 NULL
166713 +enable_so_logfs_fsync_fndecl_38849 logfs_fsync fndecl 2-3 38849 NULL
166714 +enable_so_datablob_len_encrypted_key_payload_38850 datablob_len encrypted_key_payload 0 38850 NULL
166715 +enable_so_srs_nslot_sptlrpc_rule_set_38854 srs_nslot sptlrpc_rule_set 0 38854 NULL
166716 +enable_so_count_ixgbevf_ring_38867 count ixgbevf_ring 0 38867 NULL
166717 +enable_so_sectors_per_track_mspro_devinfo_38870 sectors_per_track mspro_devinfo 0 38870 NULL
166718 +enable_so_mask_mthca_alloc_38874 mask mthca_alloc 0 38874 NULL nohasharray
166719 +enable_so_if_sdio_handle_data_fndecl_38874 if_sdio_handle_data fndecl 3 38874 &enable_so_mask_mthca_alloc_38874
166720 +enable_so_wmi_set_ie_fndecl_38876 wmi_set_ie fndecl 3 38876 NULL
166721 +enable_so_mmc_spi_skip_fndecl_38879 mmc_spi_skip fndecl 3-0 38879 NULL nohasharray
166722 +enable_so_error_dvb_ringbuffer_38879 error dvb_ringbuffer 0 38879 &enable_so_mmc_spi_skip_fndecl_38879
166723 +enable_so_static_prio_task_struct_38880 static_prio task_struct 0 38880 NULL
166724 +enable_so_atalk_route_packet_fndecl_38886 atalk_route_packet fndecl 4-5 38886 NULL
166725 +enable_so_read_dummy_spi_nor_38888 read_dummy spi_nor 0 38888 NULL
166726 +enable_so_num_bna_intr_info_38889 num bna_intr_info 0 38889 NULL
166727 +enable_so_beb_rsvd_level_ubi_device_38898 beb_rsvd_level ubi_device 0 38898 NULL nohasharray
166728 +enable_so_reg_phys_intel_iommu_38898 reg_phys intel_iommu 0 38898 &enable_so_beb_rsvd_level_ubi_device_38898
166729 +enable_so_sg_width_mvs_chip_info_38900 sg_width mvs_chip_info 0 38900 NULL
166730 +enable_so_wr_buflen_nfsd4_write_38903 wr_buflen nfsd4_write 0 38903 NULL
166731 +enable_so_generic_elem_len_local_info_38904 generic_elem_len local_info 0 38904 NULL
166732 +enable_so_surface_bpp_drm_fb_helper_surface_size_38906 surface_bpp drm_fb_helper_surface_size 0 38906 NULL
166733 +enable_so_vid_batadv_tvlv_tt_change_38907 vid batadv_tvlv_tt_change 0 38907 NULL
166734 +enable_so_dst_ci_command_fndecl_38908 dst_ci_command fndecl 4 38908 NULL nohasharray
166735 +enable_so_scsi_get_vpd_page_fndecl_38908 scsi_get_vpd_page fndecl 4 38908 &enable_so_dst_ci_command_fndecl_38908
166736 +enable_so_pgctrl_write_fndecl_38918 pgctrl_write fndecl 3 38918 NULL
166737 +enable_so_qlcnic_diag_free_res_fndecl_38922 qlcnic_diag_free_res fndecl 2 38922 NULL
166738 +enable_so_max_window_tcp_sock_38923 max_window tcp_sock 0 38923 NULL
166739 +enable_so_data_size_ms_system_item_38924 data_size ms_system_item 0 38924 NULL
166740 +enable_so_usb_sg_init_fndecl_38925 usb_sg_init fndecl 7-3-6 38925 NULL nohasharray
166741 +enable_so_num_txqs_octeon_nic_if_config_38925 num_txqs octeon_nic_if_config 0 38925 &enable_so_usb_sg_init_fndecl_38925
166742 +enable_so_refresh_drm_cmdline_mode_38926 refresh drm_cmdline_mode 0 38926 NULL
166743 +enable_so_seek_holedata_direct_fndecl_38928 seek_holedata_direct fndecl 0-2 38928 NULL
166744 +enable_so_tx_queues_vardecl_bond_main_c_38932 tx_queues vardecl_bond_main.c 0 38932 NULL
166745 +enable_so_fdt_open_into_fndecl_38935 fdt_open_into fndecl 3 38935 NULL
166746 +enable_so_qib_restart_rc_fndecl_38939 qib_restart_rc fndecl 2 38939 NULL
166747 +enable_so_depth_cx231xx_fmt_38940 depth cx231xx_fmt 0 38940 NULL
166748 +enable_so_pcm_open_fndecl_38941 pcm_open fndecl 2 38941 NULL
166749 +enable_so_ecryptfs_write_lower_page_segment_fndecl_38943 ecryptfs_write_lower_page_segment fndecl 4 38943 NULL
166750 +enable_so_drm_fb_helper_sys_write_fndecl_38945 drm_fb_helper_sys_write fndecl 3 38945 NULL
166751 +enable_so_sc_page_off_o2net_sock_container_38950 sc_page_off o2net_sock_container 0 38950 NULL
166752 +enable_so_in_length_nd_cmd_set_config_hdr_38954 in_length nd_cmd_set_config_hdr 0 38954 NULL
166753 +enable_so_of_irq_parse_one_fndecl_38957 of_irq_parse_one fndecl 0 38957 NULL
166754 +enable_so_tcp_copied_sock_xprt_38964 tcp_copied sock_xprt 0 38964 NULL
166755 +enable_so_uregbase_qib_devdata_38972 uregbase qib_devdata 0 38972 NULL nohasharray
166756 +enable_so_wm8350_register_regulator_fndecl_38972 wm8350_register_regulator fndecl 2 38972 &enable_so_uregbase_qib_devdata_38972
166757 +enable_so_cdrom_read_cdda_fndecl_38973 cdrom_read_cdda fndecl 4 38973 NULL
166758 +enable_so_register_buffer_fndecl_38990 register_buffer fndecl 3 38990 NULL
166759 +enable_so_hsc_read_fndecl_38991 hsc_read fndecl 3 38991 NULL
166760 +enable_so_pcm_buf_elapsed_dma_ofs_snd_card_asihpi_pcm_38998 pcm_buf_elapsed_dma_ofs snd_card_asihpi_pcm 0 38998 NULL
166761 +enable_so_maxqlen_vardecl_seq_oss_init_c_39001 maxqlen vardecl_seq_oss_init.c 0 39001 NULL
166762 +enable_so_sh_mmcif_data_trans_fndecl_39002 sh_mmcif_data_trans fndecl 0 39002 NULL nohasharray
166763 +enable_so_pwr_rcvd_awake_beacons_read_fndecl_39002 pwr_rcvd_awake_beacons_read fndecl 3 39002 &enable_so_sh_mmcif_data_trans_fndecl_39002
166764 +enable_so_tlv_len_nfc_llcp_sdp_tlv_39007 tlv_len nfc_llcp_sdp_tlv 0 39007 NULL
166765 +enable_so_dram_end_intel_sst_drv_39008 dram_end intel_sst_drv 0 39008 NULL
166766 +enable_so_xfs_dialloc_ag_inobt_fndecl_39015 xfs_dialloc_ag_inobt fndecl 3 39015 NULL nohasharray
166767 +enable_so_trigger_request_store_fndecl_39015 trigger_request_store fndecl 4 39015 &enable_so_xfs_dialloc_ag_inobt_fndecl_39015
166768 +enable_so_usbat_flash_write_data_fndecl_39018 usbat_flash_write_data fndecl 4 39018 NULL
166769 +enable_so_dlfb_submit_urb_fndecl_39028 dlfb_submit_urb fndecl 3 39028 NULL
166770 +enable_so_alloc_send_rmpp_list_fndecl_39029 alloc_send_rmpp_list fndecl 2 39029 NULL
166771 +enable_so_at25_ee_read_fndecl_39032 at25_ee_read fndecl 3-4 39032 NULL nohasharray
166772 +enable_so_video_pbase_osd_info_39032 video_pbase osd_info 0 39032 &enable_so_at25_ee_read_fndecl_39032 nohasharray
166773 +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
166774 +enable_so_fwnet_receive_packet_fndecl_39034 fwnet_receive_packet fndecl 9 39034 NULL
166775 +enable_so_error_burst_mismatch_read_fndecl_39035 error_burst_mismatch_read fndecl 3 39035 NULL
166776 +enable_so_reserve_st_proto_s_39036 reserve st_proto_s 0 39036 NULL
166777 +enable_so_free_ubifs_lprops_39039 free ubifs_lprops 0 39039 NULL
166778 +enable_so_fat_readpages_fndecl_39045 fat_readpages fndecl 4 39045 NULL nohasharray
166779 +enable_so_pep_reply_fndecl_39045 pep_reply fndecl 5 39045 &enable_so_fat_readpages_fndecl_39045
166780 +enable_so_num_ports_u132_39052 num_ports u132 0 39052 NULL
166781 +enable_so_ttm_agp_tt_create_fndecl_39056 ttm_agp_tt_create fndecl 3 39056 NULL nohasharray
166782 +enable_so_get_key_fscache_cookie_def_39056 get_key fscache_cookie_def 0 39056 &enable_so_ttm_agp_tt_create_fndecl_39056
166783 +enable_so_ncp_fsync_fndecl_39057 ncp_fsync fndecl 2-3 39057 NULL
166784 +enable_so_frameLen_rx_desc_39058 frameLen rx_desc 0 39058 NULL nohasharray
166785 +enable_so_minor_gigaset_driver_39058 minor gigaset_driver 0 39058 &enable_so_frameLen_rx_desc_39058
166786 +enable_so_send_set_xattr_fndecl_39062 send_set_xattr fndecl 6-4 39062 NULL
166787 +enable_so_bnxt_get_max_irq_fndecl_39067 bnxt_get_max_irq fndecl 0 39067 NULL nohasharray
166788 +enable_so_n_buckets_bpf_htab_39067 n_buckets bpf_htab 0 39067 &enable_so_bnxt_get_max_irq_fndecl_39067
166789 +enable_so_iscsit_handle_immediate_data_fndecl_39071 iscsit_handle_immediate_data fndecl 3 39071 NULL
166790 +enable_so_max_rules_crush_map_39073 max_rules crush_map 0 39073 NULL
166791 +enable_so_usbatm_write_cells_fndecl_39074 usbatm_write_cells fndecl 0 39074 NULL
166792 +enable_so_block_id_ms_boot_header_39075 block_id ms_boot_header 0 39075 NULL
166793 +enable_so_frame_len_b43_rxhdr_fw4_39076 frame_len b43_rxhdr_fw4 0 39076 NULL
166794 +enable_so_inode_sysv_dir_entry_39082 inode sysv_dir_entry 0 39082 NULL
166795 +enable_so_sparse_early_usemaps_alloc_node_fndecl_39084 sparse_early_usemaps_alloc_node fndecl 4 39084 NULL
166796 +enable_so_msb_run_state_machine_fndecl_39085 msb_run_state_machine fndecl 0 39085 NULL
166797 +enable_so_pop_mpls_fndecl_39086 pop_mpls fndecl 3 39086 NULL
166798 +enable_so_sge_rx_fndecl_39089 sge_rx fndecl 3 39089 NULL
166799 +enable_so_d0_vring_rx_dma_39093 d0 vring_rx_dma 0 39093 NULL
166800 +enable_so_negotiate_rsize_smb_version_operations_39094 negotiate_rsize smb_version_operations 0 39094 NULL
166801 +enable_so_xillybus_write_fndecl_39102 xillybus_write fndecl 3 39102 NULL
166802 +enable_so_grow_zone_span_fndecl_39112 grow_zone_span fndecl 2-3 39112 NULL nohasharray
166803 +enable_so_audio_ins_vx_core_39112 audio_ins vx_core 0 39112 &enable_so_grow_zone_span_fndecl_39112
166804 +enable_so_array_size_drm_vmw_gb_surface_create_req_39114 array_size drm_vmw_gb_surface_create_req 0 39114 NULL
166805 +enable_so_bg_bits_ocfs2_group_desc_39116 bg_bits ocfs2_group_desc 0 39116 NULL
166806 +enable_so_fat_direct_IO_fndecl_39117 fat_direct_IO fndecl 3 39117 NULL
166807 +enable_so_rds_ib_sysctl_max_send_wr_vardecl_39120 rds_ib_sysctl_max_send_wr vardecl 0 39120 NULL
166808 +enable_so_rl_namelen_rcom_lock_39122 rl_namelen rcom_lock 0 39122 NULL
166809 +enable_so_user_block_count_mspro_sys_info_39124 user_block_count mspro_sys_info 0 39124 NULL
166810 +enable_so_bytes_per_datum_iio_buffer_39125 bytes_per_datum iio_buffer 0 39125 NULL
166811 +enable_so_acpi_data_get_property_array_fndecl_39128 acpi_data_get_property_array fndecl 0 39128 NULL
166812 +enable_so_calc_memmap_size_fndecl_39130 calc_memmap_size fndecl 0-2-1 39130 NULL nohasharray
166813 +enable_so_l2t_end_adapter_39130 l2t_end adapter 0 39130 &enable_so_calc_memmap_size_fndecl_39130 nohasharray
166814 +enable_so_simple_transaction_get_fndecl_39130 simple_transaction_get fndecl 3 39130 &enable_so_l2t_end_adapter_39130
166815 +enable_so_syst_pa_vardecl_sfi_core_c_39133 syst_pa vardecl_sfi_core.c 0 39133 NULL
166816 +enable_so_ceph_build_auth_request_fndecl_39135 ceph_build_auth_request fndecl 0 39135 NULL
166817 +enable_so_system_sample_rate_hdsp_39140 system_sample_rate hdsp 0 39140 NULL
166818 +enable_so_drvr_sglimit_blogic_adapter_39142 drvr_sglimit blogic_adapter 0 39142 NULL
166819 +enable_so_mmc_test_buffer_transfer_fndecl_39150 mmc_test_buffer_transfer fndecl 4 39150 NULL
166820 +enable_so_raid56_parity_alloc_scrub_rbio_fndecl_39153 raid56_parity_alloc_scrub_rbio fndecl 4 39153 NULL
166821 +enable_so_port_srpt_port_39154 port srpt_port 0 39154 NULL
166822 +enable_so_size_intel_initial_plane_config_39155 size intel_initial_plane_config 0 39155 NULL
166823 +enable_so_log_root_btrfs_super_block_39157 log_root btrfs_super_block 0 39157 NULL
166824 +enable_so_fcoe_start_cid_cnic_local_39162 fcoe_start_cid cnic_local 0 39162 NULL
166825 +enable_so_ath6kl_tm_rx_event_fndecl_39163 ath6kl_tm_rx_event fndecl 3 39163 NULL nohasharray
166826 +enable_so_sys_readv_fndecl_39163 sys_readv fndecl 3 39163 &enable_so_ath6kl_tm_rx_event_fndecl_39163
166827 +enable_so_num_mcg_mlx4_profile_39164 num_mcg mlx4_profile 0 39164 NULL
166828 +enable_so_ext2_try_to_allocate_with_rsv_fndecl_39166 ext2_try_to_allocate_with_rsv fndecl 0-4 39166 NULL
166829 +enable_so_ast_gem_create_fndecl_39167 ast_gem_create fndecl 2 39167 NULL
166830 +enable_so_blf_len_xfs_buf_log_format_39169 blf_len xfs_buf_log_format 0 39169 NULL
166831 +enable_so_qsize_inet_frags_39172 qsize inet_frags 0 39172 NULL nohasharray
166832 +enable_so_lib80211_michael_mic_verify_fndecl_39172 lib80211_michael_mic_verify fndecl 3 39172 &enable_so_qsize_inet_frags_39172
166833 +enable_so_cfg80211_roamed_bss_fndecl_39173 cfg80211_roamed_bss fndecl 4-6 39173 NULL
166834 +enable_so_cyttsp4_probe_fndecl_39178 cyttsp4_probe fndecl 4 39178 NULL
166835 +enable_so_l2cap_sock_setsockopt_fndecl_39180 l2cap_sock_setsockopt fndecl 5 39180 NULL
166836 +enable_so_mthca_buddy_init_fndecl_39181 mthca_buddy_init fndecl 2 39181 NULL
166837 +enable_so_skb_put_fndecl_39184 skb_put fndecl 2 39184 NULL
166838 +enable_so_ttymajor_vardecl_mxser_c_39193 ttymajor vardecl_mxser.c 0 39193 NULL
166839 +enable_so_udc_create_dma_chain_fndecl_39194 udc_create_dma_chain fndecl 3 39194 NULL
166840 +enable_so_maxentry_xtheader_39202 maxentry xtheader 0 39202 NULL
166841 +enable_so_port_num_ib_mad_agent_39205 port_num ib_mad_agent 0 39205 NULL
166842 +enable_so_mon_bin_compat_ioctl_fndecl_39209 mon_bin_compat_ioctl fndecl 3 39209 NULL
166843 +enable_so_len_vmci_datagram_snd_rcv_info_39211 len vmci_datagram_snd_rcv_info 0 39211 NULL
166844 +enable_so_ieee80211_skb_resize_fndecl_39216 ieee80211_skb_resize fndecl 3 39216 NULL
166845 +enable_so_num_gpu_pages_amdgpu_gart_39218 num_gpu_pages amdgpu_gart 0 39218 NULL
166846 +enable_so_lpfc_bg_setup_bpl_prot_fndecl_39221 lpfc_bg_setup_bpl_prot fndecl 0 39221 NULL
166847 +enable_so_seq_buf_to_user_fndecl_39222 seq_buf_to_user fndecl 3 39222 NULL
166848 +enable_so_max_reqs_kioctx_39227 max_reqs kioctx 0 39227 NULL
166849 +enable_so_forw_xfs_da_blkinfo_39230 forw xfs_da_blkinfo 0 39230 NULL
166850 +enable_so_vlan_dev_hard_header_fndecl_39236 vlan_dev_hard_header fndecl 3-6 39236 NULL
166851 +enable_so_afs_extract_data_fndecl_39238 afs_extract_data fndecl 5 39238 NULL
166852 +enable_so_sel_start_vardecl_selection_c_39245 sel_start vardecl_selection.c 0 39245 NULL
166853 +enable_so_ext_clock_aptina_pll_39246 ext_clock aptina_pll 0 39246 NULL
166854 +enable_so_remote_mps_l2cap_chan_39250 remote_mps l2cap_chan 0 39250 NULL nohasharray
166855 +enable_so_mon_buff_area_fill_fndecl_39250 mon_buff_area_fill fndecl 3 39250 &enable_so_remote_mps_l2cap_chan_39250
166856 +enable_so_sg_kmalloc_fndecl_39251 sg_kmalloc fndecl 1 39251 NULL
166857 +enable_so_raid5_get_active_stripe_fndecl_39252 raid5_get_active_stripe fndecl 2 39252 NULL
166858 +enable_so_num_cons_qed_eth_pf_params_39260 num_cons qed_eth_pf_params 0 39260 NULL
166859 +enable_so_data_offset_napi_gro_cb_39263 data_offset napi_gro_cb 0 39263 NULL
166860 +enable_so_fdt_get_phandle_fndecl_39273 fdt_get_phandle fndecl 2 39273 NULL
166861 +enable_so_sky2_rx_tag_fndecl_39276 sky2_rx_tag fndecl 2 39276 NULL
166862 +enable_so_idata_dma_usb_xpad_39278 idata_dma usb_xpad 0 39278 NULL
166863 +enable_so_size_tomoyo_condition_39281 size tomoyo_condition 0 39281 NULL
166864 +enable_so_find_parent_nodes_fndecl_39282 find_parent_nodes fndecl 3 39282 NULL
166865 +enable_so_rxrpc_setsockopt_fndecl_39293 rxrpc_setsockopt fndecl 5 39293 NULL
166866 +enable_so_len_hsu_dma_sg_39295 len hsu_dma_sg 0 39295 NULL
166867 +enable_so_page_size_msb_data_39297 page_size msb_data 0 39297 NULL nohasharray
166868 +enable_so_encoding_p_compressed_bm_39297 encoding p_compressed_bm 0 39297 &enable_so_page_size_msb_data_39297 nohasharray
166869 +enable_so_max_vfi_lpfc_max_cfg_param_39297 max_vfi lpfc_max_cfg_param 0 39297 &enable_so_encoding_p_compressed_bm_39297
166870 +enable_so_sel_make_perm_files_fndecl_39298 sel_make_perm_files fndecl 2 39298 NULL
166871 +enable_so_m5mols_read_u16_fndecl_39305 m5mols_read_u16 fndecl 2 39305 NULL
166872 +enable_so_do_launder_page_fndecl_39306 do_launder_page fndecl 0 39306 NULL
166873 +enable_so_SYSC_flistxattr_fndecl_39312 SYSC_flistxattr fndecl 3 39312 NULL
166874 +enable_so_e820_end_of_ram_pfn_fndecl_39315 e820_end_of_ram_pfn fndecl 0 39315 NULL nohasharray
166875 +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
166876 +enable_so_SYSC_sched_setaffinity_fndecl_39317 SYSC_sched_setaffinity fndecl 2 39317 NULL
166877 +enable_so_len_buflist_39320 len buflist 0 39320 NULL
166878 +enable_so_depth_tw68_format_39322 depth tw68_format 0 39322 NULL
166879 +enable_so_soc_camera_read_fndecl_39324 soc_camera_read fndecl 3 39324 NULL nohasharray
166880 +enable_so_ri_data_gfs2_rindex_39324 ri_data gfs2_rindex 0 39324 &enable_so_soc_camera_read_fndecl_39324 nohasharray
166881 +enable_so_rx_dataoffset_brcmf_msgbuf_39324 rx_dataoffset brcmf_msgbuf 0 39324 &enable_so_ri_data_gfs2_rindex_39324
166882 +enable_so_test_queue_fndecl_39329 test_queue fndecl 5-3 39329 NULL
166883 +enable_so_size_bts_action_39331 size bts_action 0 39331 NULL
166884 +enable_so_page_jfs_log_39335 page jfs_log 0 39335 NULL nohasharray
166885 +enable_so_isdn_ppp_read_fndecl_39335 isdn_ppp_read fndecl 4 39335 &enable_so_page_jfs_log_39335
166886 +enable_so_nilfs_sufile_segment_usages_in_block_fndecl_39336 nilfs_sufile_segment_usages_in_block fndecl 0-2-3 39336 NULL
166887 +enable_so_tx_pipe_brcmf_usbdev_info_39337 tx_pipe brcmf_usbdev_info 0 39337 NULL nohasharray
166888 +enable_so_num_channels_hw_mode_spec_39337 num_channels hw_mode_spec 0 39337 &enable_so_tx_pipe_brcmf_usbdev_info_39337 nohasharray
166889 +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
166890 +enable_so_setbrightness_fndecl_39342 setbrightness fndecl 0 39342 NULL
166891 +enable_so_svc_create_fndecl_39343 svc_create fndecl 2 39343 NULL
166892 +enable_so_nhead_offs_ubifs_info_39346 nhead_offs ubifs_info 0 39346 NULL
166893 +enable_so_root_offs_ubifs_mst_node_39347 root_offs ubifs_mst_node 0 39347 NULL
166894 +enable_so_ksm_might_need_to_copy_fndecl_39350 ksm_might_need_to_copy fndecl 3 39350 NULL
166895 +enable_so_efs_validate_vh_fndecl_39352 efs_validate_vh fndecl 0 39352 NULL
166896 +enable_so_nsize_jffs2_sum_dirent_mem_39355 nsize jffs2_sum_dirent_mem 0 39355 NULL nohasharray
166897 +enable_so_tpm_read_fndecl_39355 tpm_read fndecl 3 39355 &enable_so_nsize_jffs2_sum_dirent_mem_39355
166898 +enable_so_hub_status_data_hc_driver_39357 hub_status_data hc_driver 0 39357 NULL nohasharray
166899 +enable_so_rbd_obj_request_create_fndecl_39357 rbd_obj_request_create fndecl 3-2 39357 &enable_so_hub_status_data_hc_driver_39357
166900 +enable_so_max_sge_hfi1_rq_39362 max_sge hfi1_rq 0 39362 NULL
166901 +enable_so_tx_ndp_modulus_cdc_ncm_ctx_39369 tx_ndp_modulus cdc_ncm_ctx 0 39369 NULL
166902 +enable_so_nftl_read_oob_fndecl_39370 nftl_read_oob fndecl 2-3 39370 NULL
166903 +enable_so_num_frames_camera_data_39372 num_frames camera_data 0 39372 NULL
166904 +enable_so_length_btrfs_ioctl_same_args_39374 length btrfs_ioctl_same_args 0 39374 NULL
166905 +enable_so_roccat_common2_receive_fndecl_39378 roccat_common2_receive fndecl 4 39378 NULL
166906 +enable_so_vsi_fshino_vxfs_sb_info_39379 vsi_fshino vxfs_sb_info 0 39379 NULL
166907 +enable_so_height_v4l2_mbus_framefmt_39383 height v4l2_mbus_framefmt 0 39383 NULL
166908 +enable_so_tx_count_ethtool_channels_39384 tx_count ethtool_channels 0 39384 NULL nohasharray
166909 +enable_so_from_offset_text_match_39384 from_offset text_match 0 39384 &enable_so_tx_count_ethtool_channels_39384
166910 +enable_so_lfb_depth_screen_info_39385 lfb_depth screen_info 0 39385 NULL
166911 +enable_so_read16_ssb_bus_ops_39388 read16 ssb_bus_ops 0 39388 NULL
166912 +enable_so_sl_alloc_bufs_fndecl_39391 sl_alloc_bufs fndecl 2 39391 NULL
166913 +enable_so___page_set_anon_rmap_fndecl_39401 __page_set_anon_rmap fndecl 3 39401 NULL
166914 +enable_so_iscsi_create_conn_fndecl_39402 iscsi_create_conn fndecl 2 39402 NULL
166915 +enable_so_userptr_radeon_ttm_tt_39408 userptr radeon_ttm_tt 0 39408 NULL
166916 +enable_so_total_vfs_fm10k_iov_info_39412 total_vfs fm10k_iov_info 0 39412 NULL
166917 +enable_so_payld_len_htc_frame_hdr_39418 payld_len htc_frame_hdr 0 39418 NULL
166918 +enable_so_vramsize_sisusb_usb_data_39419 vramsize sisusb_usb_data 0 39419 NULL
166919 +enable_so_board_sample_rate_lx6464es_39420 board_sample_rate lx6464es 0 39420 NULL nohasharray
166920 +enable_so_stretch_height_usb_usbvision_39420 stretch_height usb_usbvision 0 39420 &enable_so_board_sample_rate_lx6464es_39420
166921 +enable_so_read_eeprom_fndecl_39423 read_eeprom fndecl 4 39423 NULL
166922 +enable_so_cros_ec_spi_receive_response_fndecl_39426 cros_ec_spi_receive_response fndecl 2 39426 NULL
166923 +enable_so_nftl_writeblock_fndecl_39428 nftl_writeblock fndecl 2 39428 NULL
166924 +enable_so_jpeg_len_solo_enc_dev_39431 jpeg_len solo_enc_dev 0 39431 NULL
166925 +enable_so_btrfs_del_csums_fndecl_39434 btrfs_del_csums fndecl 3-4 39434 NULL
166926 +enable_so_ring_size__drm_i810_init_39437 ring_size _drm_i810_init 0 39437 NULL nohasharray
166927 +enable_so_iov_len_iovec_39437 iov_len iovec 0 39437 &enable_so_ring_size__drm_i810_init_39437
166928 +enable_so_show_device_status_fndecl_39440 show_device_status fndecl 0 39440 NULL
166929 +enable_so_virtio_cread16_fndecl_39444 virtio_cread16 fndecl 0 39444 NULL
166930 +enable_so_sdio_uart_write_fndecl_39449 sdio_uart_write fndecl 3 39449 NULL
166931 +enable_so_zl10036_write_fndecl_39451 zl10036_write fndecl 3 39451 NULL nohasharray
166932 +enable_so_ocfs2_add_refcount_flag_fndecl_39451 ocfs2_add_refcount_flag fndecl 6-7-5 39451 &enable_so_zl10036_write_fndecl_39451
166933 +enable_so_SyS_setxattr_fndecl_39454 SyS_setxattr fndecl 4 39454 NULL
166934 +enable_so_recovery_cp_mddev_39459 recovery_cp mddev 0 39459 NULL
166935 +enable_so_security_load_policy_fndecl_39462 security_load_policy fndecl 2 39462 NULL
166936 +enable_so_proc_write_fndecl_39464 proc_write fndecl 3 39464 NULL
166937 +enable_so_LMC_PKT_BUF_SZ_vardecl_lmc_main_c_39465 LMC_PKT_BUF_SZ vardecl_lmc_main.c 0 39465 NULL
166938 +enable_so_num_buffers_vardecl_cpia2_v4l_c_39466 num_buffers vardecl_cpia2_v4l.c 0 39466 NULL
166939 +enable_so_max_count_octeon_droq_39475 max_count octeon_droq 0 39475 NULL
166940 +enable_so_qib_verbs_send_pio_fndecl_39482 qib_verbs_send_pio fndecl 5 39482 NULL
166941 +enable_so_address_length_acpi_resource_fixed_memory32_39483 address_length acpi_resource_fixed_memory32 0 39483 NULL
166942 +enable_so_iov_iter_bvec_fndecl_39493 iov_iter_bvec fndecl 5-4 39493 NULL
166943 +enable_so_fuse_conn_congestion_threshold_read_fndecl_39495 fuse_conn_congestion_threshold_read fndecl 3 39495 NULL
166944 +enable_so_network_header_len_dwceqos_tx_39500 network_header_len dwceqos_tx 0 39500 NULL
166945 +enable_so_map_rq_target_type_39503 map_rq target_type 0 39503 NULL
166946 +enable_so_pktdev_major_vardecl_pktcdvd_c_39506 pktdev_major vardecl_pktcdvd.c 0 39506 NULL
166947 +enable_so_rds_iw_sysctl_max_recv_wr_vardecl_39508 rds_iw_sysctl_max_recv_wr vardecl 0 39508 NULL
166948 +enable_so_ppp_read_fndecl_39514 ppp_read fndecl 3 39514 NULL
166949 +enable_so_lbs_dev_info_fndecl_39516 lbs_dev_info fndecl 3 39516 NULL
166950 +enable_so_error_tx_resume_failure_read_fndecl_39521 error_tx_resume_failure_read fndecl 3 39521 NULL
166951 +enable_so_len_batadv_tvlv_hdr_39527 len batadv_tvlv_hdr 0 39527 NULL nohasharray
166952 +enable_so_txsize_grcan_device_config_39527 txsize grcan_device_config 0 39527 &enable_so_len_batadv_tvlv_hdr_39527
166953 +enable_so_rsc_mgr_init_fndecl_39528 rsc_mgr_init fndecl 3 39528 NULL
166954 +enable_so_wusb_prf_64_fndecl_39530 wusb_prf_64 fndecl 7 39530 NULL
166955 +enable_so_num_queues_bnx2x_39531 num_queues bnx2x 0 39531 NULL
166956 +enable_so_reply_len_bsg_job_39533 reply_len bsg_job 0 39533 NULL
166957 +enable_so_hugepage_add_new_anon_rmap_fndecl_39534 hugepage_add_new_anon_rmap fndecl 3 39534 NULL
166958 +enable_so_srpt_alloc_ioctx_fndecl_39537 srpt_alloc_ioctx fndecl 2-3 39537 NULL
166959 +enable_so_elem_size_v4l2_ctrl_39540 elem_size v4l2_ctrl 0 39540 NULL
166960 +enable_so_sqn_mlx5e_sq_39542 sqn mlx5e_sq 0 39542 NULL
166961 +enable_so_do_arpt_set_ctl_fndecl_39550 do_arpt_set_ctl fndecl 4 39550 NULL
166962 +enable_so_kaweth_internal_control_msg_fndecl_39552 kaweth_internal_control_msg fndecl 5-2 39552 NULL nohasharray
166963 +enable_so_do_trim_fndecl_39552 do_trim fndecl 4-5-3-2 39552 &enable_so_kaweth_internal_control_msg_fndecl_39552
166964 +enable_so_from_fw_map_39555 from fw_map 0 39555 NULL nohasharray
166965 +enable_so_jbd2_journal_init_revoke_fndecl_39555 jbd2_journal_init_revoke fndecl 2 39555 &enable_so_from_fw_map_39555
166966 +enable_so_l2specific_len_l2tp_session_39558 l2specific_len l2tp_session 0 39558 NULL
166967 +enable_so_build_backref_tree_fndecl_39561 build_backref_tree fndecl 4 39561 NULL nohasharray
166968 +enable_so_ci_flags_ext4_crypt_info_39561 ci_flags ext4_crypt_info 0 39561 &enable_so_build_backref_tree_fndecl_39561
166969 +enable_so___ocfs2_find_path_fndecl_39563 __ocfs2_find_path fndecl 0 39563 NULL
166970 +enable_so_disk_size_disk_conf_39567 disk_size disk_conf 0 39567 NULL
166971 +enable_so_qp_table_size_hfi1_qp_ibdev_39571 qp_table_size hfi1_qp_ibdev 0 39571 NULL
166972 +enable_so_sys32_pwrite_fndecl_39572 sys32_pwrite fndecl 3 39572 NULL
166973 +enable_so_oh_len_omninet_header_39576 oh_len omninet_header 0 39576 NULL
166974 +enable_so_additional_memory_resource_fndecl_39577 additional_memory_resource fndecl 1 39577 NULL
166975 +enable_so_nfs4_file_llseek_fndecl_39578 nfs4_file_llseek fndecl 2 39578 NULL
166976 +enable_so_flush_mtd_blktrans_ops_39582 flush mtd_blktrans_ops 0 39582 NULL nohasharray
166977 +enable_so_snbep_pci2phy_map_init_fndecl_39582 snbep_pci2phy_map_init fndecl 1 39582 &enable_so_flush_mtd_blktrans_ops_39582
166978 +enable_so_len_ubifs_scan_node_39584 len ubifs_scan_node 0 39584 NULL
166979 +enable_so_iunique_fndecl_39586 iunique fndecl 0-2 39586 NULL
166980 +enable_so_req_que_len_qla_hw_data_39587 req_que_len qla_hw_data 0 39587 NULL
166981 +enable_so_buf_size_fm_rds_39590 buf_size fm_rds 0 39590 NULL
166982 +enable_so_rq_bytes_sent_rpc_rqst_39591 rq_bytes_sent rpc_rqst 0 39591 NULL
166983 +enable_so_count_snd_ctl_elem_info_39594 count snd_ctl_elem_info 0 39594 NULL
166984 +enable_so_amanda_help_fndecl_39598 amanda_help fndecl 2 39598 NULL
166985 +enable_so_dm_consult_userspace_fndecl_39601 dm_consult_userspace fndecl 5 39601 NULL
166986 +enable_so_ti_recv_fndecl_39605 ti_recv fndecl 3 39605 NULL nohasharray
166987 +enable_so_midi_ports_snd_emux_39605 midi_ports snd_emux 0 39605 &enable_so_ti_recv_fndecl_39605
166988 +enable_so_double_length_smbios_cru64_info_39607 double_length smbios_cru64_info 0 39607 NULL nohasharray
166989 +enable_so_e1000e_hwtstamp_set_fndecl_39607 e1000e_hwtstamp_set fndecl 0 39607 &enable_so_double_length_smbios_cru64_info_39607
166990 +enable_so_of_clk_get_parent_count_fndecl_39609 of_clk_get_parent_count fndecl 0 39609 NULL
166991 +enable_so_iscsi_nop_out_rsp_fndecl_39614 iscsi_nop_out_rsp fndecl 4 39614 NULL
166992 +enable_so_rx_buffer_order_efx_nic_39620 rx_buffer_order efx_nic 0 39620 NULL
166993 +enable_so_cookie_len_l2tp_session_39629 cookie_len l2tp_session 0 39629 NULL
166994 +enable_so_max_cq_sz_mthca_dev_lim_39630 max_cq_sz mthca_dev_lim 0 39630 NULL
166995 +enable_so_fb_phys_ocfb_dev_39632 fb_phys ocfb_dev 0 39632 NULL
166996 +enable_so_xfs_bmbt_lookup_ge_fndecl_39633 xfs_bmbt_lookup_ge fndecl 3-2-4 39633 NULL
166997 +enable_so_saa7134_alsa_dma_init_fndecl_39636 saa7134_alsa_dma_init fndecl 2 39636 NULL
166998 +enable_so_simple_xattr_set_fndecl_39639 simple_xattr_set fndecl 4 39639 NULL
166999 +enable_so_compat_sys_pwritev64_fndecl_39644 compat_sys_pwritev64 fndecl 3 39644 NULL
167000 +enable_so_setup_arg_pages_fndecl_39645 setup_arg_pages fndecl 2 39645 NULL
167001 +enable_so_xfs_trans_get_efd_fndecl_39647 xfs_trans_get_efd fndecl 3 39647 NULL
167002 +enable_so_tx_len_hw_modul_39649 tx_len hw_modul 0 39649 NULL
167003 +enable_so_v9fs_listxattr_fndecl_39654 v9fs_listxattr fndecl 3 39654 NULL
167004 +enable_so_skb_copy_datagram_iter_fndecl_39662 skb_copy_datagram_iter fndecl 4-2-0 39662 NULL
167005 +enable_so_viafb_get_fb_size_from_pci_fndecl_39663 viafb_get_fb_size_from_pci fndecl 0 39663 NULL
167006 +enable_so_timeout_max_as3645a_platform_data_39664 timeout_max as3645a_platform_data 0 39664 NULL
167007 +enable_so_mq_bytes_user_struct_39665 mq_bytes user_struct 0 39665 NULL
167008 +enable_so_snd_rawmidi_transmit_peek_fndecl_39668 snd_rawmidi_transmit_peek fndecl 0-3 39668 NULL
167009 +enable_so_vendor_diag_read_fndecl_39671 vendor_diag_read fndecl 3 39671 NULL
167010 +enable_so_der_length_size_fndecl_39673 der_length_size fndecl 0 39673 NULL
167011 +enable_so_sectorsize_btrfs_super_block_39674 sectorsize btrfs_super_block 0 39674 NULL
167012 +enable_so_rdma_read_chunk_frmr_fndecl_39676 rdma_read_chunk_frmr fndecl 7-8 39676 NULL
167013 +enable_so_num_q_vectors_fm10k_intfc_39681 num_q_vectors fm10k_intfc 0 39681 NULL nohasharray
167014 +enable_so_dev_mem_read_fndecl_39681 dev_mem_read fndecl 3 39681 &enable_so_num_q_vectors_fm10k_intfc_39681
167015 +enable_so_fd_block_size_fd_dev_39692 fd_block_size fd_dev 0 39692 NULL nohasharray
167016 +enable_so_priv_size_Qdisc_ops_39692 priv_size Qdisc_ops 0 39692 &enable_so_fd_block_size_fd_dev_39692
167017 +enable_so_badblockpos_nand_chip_39700 badblockpos nand_chip 0 39700 NULL
167018 +enable_so_at24_macc_write_fndecl_39705 at24_macc_write fndecl 4-3 39705 NULL
167019 +enable_so_xfs_growfs_get_hdr_buf_fndecl_39706 xfs_growfs_get_hdr_buf fndecl 2-3 39706 NULL
167020 +enable_so_blk_check_plugged_fndecl_39715 blk_check_plugged fndecl 3 39715 NULL
167021 +enable_so_e1000_change_mtu_fndecl_39722 e1000_change_mtu fndecl 2 39722 NULL
167022 +enable_so_pglen_pnfs_device_39724 pglen pnfs_device 0 39724 NULL
167023 +enable_so_epool_init_fndecl_39728 epool_init fndecl 2 39728 NULL
167024 +enable_so_btrfs_truncate_page_fndecl_39735 btrfs_truncate_page fndecl 2 39735 NULL nohasharray
167025 +enable_so_max_wrs_iwch_rnic_attributes_39735 max_wrs iwch_rnic_attributes 0 39735 &enable_so_btrfs_truncate_page_fndecl_39735
167026 +enable_so___hostap_add_bss_fndecl_39739 __hostap_add_bss fndecl 4 39739 NULL nohasharray
167027 +enable_so_bfad_iocmd_faa_query_fndecl_39739 bfad_iocmd_faa_query fndecl 0 39739 &enable_so___hostap_add_bss_fndecl_39739
167028 +enable_so_scif_unregister_fndecl_39743 scif_unregister fndecl 3 39743 NULL
167029 +enable_so__ubh_bread__fndecl_39744 _ubh_bread_ fndecl 3 39744 NULL
167030 +enable_so_pipe_handler_request_fndecl_39749 pipe_handler_request fndecl 5 39749 NULL nohasharray
167031 +enable_so_tm6000_read_write_usb_fndecl_39749 tm6000_read_write_usb fndecl 7 39749 &enable_so_pipe_handler_request_fndecl_39749
167032 +enable_so_ocfs2_xattr_block_get_fndecl_39750 ocfs2_xattr_block_get fndecl 0 39750 NULL nohasharray
167033 +enable_so_total_blocks_hfsplus_sb_info_39750 total_blocks hfsplus_sb_info 0 39750 &enable_so_ocfs2_xattr_block_get_fndecl_39750 nohasharray
167034 +enable_so_devpts_new_index_fndecl_39750 devpts_new_index fndecl 0 39750 &enable_so_total_blocks_hfsplus_sb_info_39750
167035 +enable_so_drm_gtf2_2j_fndecl_39751 drm_gtf2_2j fndecl 0 39751 NULL
167036 +enable_so_am_length_xfs_attr_multiop_39754 am_length xfs_attr_multiop 0 39754 NULL
167037 +enable_so_delta_disks_mddev_39759 delta_disks mddev 0 39759 NULL
167038 +enable_so_free_full_branch_fndecl_39768 free_full_branch fndecl 2 39768 NULL nohasharray
167039 +enable_so_map_swap_page_fndecl_39768 map_swap_page fndecl 0 39768 &enable_so_free_full_branch_fndecl_39768
167040 +enable_so_write_flush_fndecl_39776 write_flush fndecl 3 39776 NULL
167041 +enable_so_add_range_with_merge_fndecl_39778 add_range_with_merge fndecl 5-4 39778 NULL
167042 +enable_so___collapse_huge_page_isolate_fndecl_39784 __collapse_huge_page_isolate fndecl 2 39784 NULL
167043 +enable_so_dvb_play_fndecl_39789 dvb_play fndecl 3 39789 NULL
167044 +enable_so_buf_rte_log_le_39791 buf rte_log_le 0 39791 NULL
167045 +enable_so_digital_dep_link_up_fndecl_39793 digital_dep_link_up fndecl 5 39793 NULL
167046 +enable_so_den_max_snd_ratnum_39802 den_max snd_ratnum 0 39802 NULL
167047 +enable_so_root_ino_num_f2fs_sb_info_39805 root_ino_num f2fs_sb_info 0 39805 NULL nohasharray
167048 +enable_so_tpm_write_fndecl_39805 tpm_write fndecl 3 39805 &enable_so_root_ino_num_f2fs_sb_info_39805
167049 +enable_so_meta_dev_idx_disk_conf_39810 meta_dev_idx disk_conf 0 39810 NULL
167050 +enable_so_videobuf_dma_init_user_fndecl_39812 videobuf_dma_init_user fndecl 4-3 39812 NULL
167051 +enable_so_nft_trans_alloc_fndecl_39815 nft_trans_alloc fndecl 3 39815 NULL
167052 +enable_so_btrfs_search_slot_for_read_fndecl_39816 btrfs_search_slot_for_read fndecl 0 39816 NULL
167053 +enable_so_jffs2_link_node_ref_fndecl_39817 jffs2_link_node_ref fndecl 3-4 39817 NULL nohasharray
167054 +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
167055 +enable_so_pan_y_yuv_frame_info_39830 pan_y yuv_frame_info 0 39830 NULL
167056 +enable_so_init_rx_ring_fndecl_39832 init_rx_ring fndecl 4 39832 NULL
167057 +enable_so_sb_inopblock_xfs_sb_39837 sb_inopblock xfs_sb 0 39837 NULL nohasharray
167058 +enable_so_io_vardecl_arc_rimi_c_39837 io vardecl_arc-rimi.c 0 39837 &enable_so_sb_inopblock_xfs_sb_39837 nohasharray
167059 +enable_so_pci_scan_root_bus_fndecl_39837 pci_scan_root_bus fndecl 2 39837 &enable_so_io_vardecl_arc_rimi_c_39837
167060 +enable_so__offset_iwl_rx_cmd_buffer_39841 _offset iwl_rx_cmd_buffer 0 39841 NULL nohasharray
167061 +enable_so_maxattr_genl_family_39841 maxattr genl_family 0 39841 &enable_so__offset_iwl_rx_cmd_buffer_39841
167062 +enable_so_da_last_ino_logfs_je_anchor_39843 da_last_ino logfs_je_anchor 0 39843 NULL
167063 +enable_so_ref_div_factor_adf4350_platform_data_39844 ref_div_factor adf4350_platform_data 0 39844 NULL
167064 +enable_so_digi_write_inb_command_fndecl_39846 digi_write_inb_command fndecl 3 39846 NULL
167065 +enable_so_height_cx25821_channel_39847 height cx25821_channel 0 39847 NULL
167066 +enable_so_xres_panel_info_39849 xres panel_info 0 39849 NULL
167067 +enable_so_di_nextents_xfs_dinode_39855 di_nextents xfs_dinode 0 39855 NULL
167068 +enable_so_imtu_l2cap_chan_39857 imtu l2cap_chan 0 39857 NULL
167069 +enable_so_usb_stor_reset_common_fndecl_39866 usb_stor_reset_common fndecl 7 39866 NULL
167070 +enable_so_self_check_write_fndecl_39867 self_check_write fndecl 5 39867 NULL
167071 +enable_so___bdev_writeseg_fndecl_39876 __bdev_writeseg fndecl 2-4 39876 NULL
167072 +enable_so_do_shrink_slab_fndecl_39881 do_shrink_slab fndecl 4-3 39881 NULL
167073 +enable_so_resync_offset_mdp_superblock_1_39883 resync_offset mdp_superblock_1 0 39883 NULL
167074 +enable_so_btrfs_bio_wq_end_io_fndecl_39884 btrfs_bio_wq_end_io fndecl 0 39884 NULL
167075 +enable_so_xfs_iext_remove_fndecl_39886 xfs_iext_remove fndecl 3 39886 NULL
167076 +enable_so_osd_req_write_sg_fndecl_39887 osd_req_write_sg fndecl 5 39887 NULL nohasharray
167077 +enable_so_debug_fcp_fndecl_39887 debug_fcp fndecl 2 39887 &enable_so_osd_req_write_sg_fndecl_39887
167078 +enable_so_len_cache_request_39888 len cache_request 0 39888 NULL
167079 +enable_so_video_base_sis_video_info_39896 video_base sis_video_info 0 39896 NULL
167080 +enable_so_SyS_lgetxattr_fndecl_39898 SyS_lgetxattr fndecl 4 39898 NULL
167081 +enable_so_s_inodes_per_group_ext4_sb_info_39910 s_inodes_per_group ext4_sb_info 0 39910 NULL
167082 +enable_so_frame_vector_create_fndecl_39918 frame_vector_create fndecl 1 39918 NULL
167083 +enable_so_spi_map_buf_fndecl_39919 spi_map_buf fndecl 0-5 39919 NULL
167084 +enable_so_i_eoffset_bfs_inode_39921 i_eoffset bfs_inode 0 39921 NULL
167085 +enable_so___logfs_write_header_fndecl_39923 __logfs_write_header fndecl 3-4 39923 NULL
167086 +enable_so_max_mp_regs_mwifiex_sdio_card_reg_39936 max_mp_regs mwifiex_sdio_card_reg 0 39936 NULL
167087 +enable_so_height_font_desc_39938 height font_desc 0 39938 NULL nohasharray
167088 +enable_so_btrfs_i_size_write_fndecl_39938 btrfs_i_size_write fndecl 2 39938 &enable_so_height_font_desc_39938
167089 +enable_so_fc_fdisc_build_fndecl_39940 fc_fdisc_build fndecl 7 39940 NULL
167090 +enable_so_row_shift_omap4_keypad_39944 row_shift omap4_keypad 0 39944 NULL
167091 +enable_so_find_ts_ops_39950 find ts_ops 0 39950 NULL nohasharray
167092 +enable_so_pid_proto_39950 pid proto 0 39950 &enable_so_find_ts_ops_39950
167093 +enable_so_inode2sd_v1_fndecl_39954 inode2sd_v1 fndecl 3 39954 NULL
167094 +enable_so_msg_length_pcnet32_rx_head_39975 msg_length pcnet32_rx_head 0 39975 NULL nohasharray
167095 +enable_so___hfsplus_getxattr_fndecl_39975 __hfsplus_getxattr fndecl 0 39975 &enable_so_msg_length_pcnet32_rx_head_39975 nohasharray
167096 +enable_so_cn_size_x509_parse_context_39975 cn_size x509_parse_context 0 39975 &enable_so___hfsplus_getxattr_fndecl_39975
167097 +enable_so_readbuf_size_tomoyo_io_buffer_39976 readbuf_size tomoyo_io_buffer 0 39976 NULL
167098 +enable_so_agp_3_5_isochronous_node_enable_fndecl_39978 agp_3_5_isochronous_node_enable fndecl 3 39978 NULL
167099 +enable_so_btrfs_pin_extent_fndecl_39983 btrfs_pin_extent fndecl 3-2 39983 NULL
167100 +enable_so_compat_do_msg_fill_fndecl_39987 compat_do_msg_fill fndecl 3 39987 NULL
167101 +enable_so_btrfs_free_reserved_data_space_fndecl_39989 btrfs_free_reserved_data_space fndecl 2-3 39989 NULL
167102 +enable_so_spi_tcnt_fsl_dspi_39994 spi_tcnt fsl_dspi 0 39994 NULL
167103 +enable_so_playback_bufsize_vardecl_nm256_c_39995 playback_bufsize vardecl_nm256.c 0 39995 NULL
167104 +enable_so_pitch_drm_radeon_texture_39996 pitch drm_radeon_texture 0 39996 NULL
167105 +enable_so_start_sram_reserve_39999 start sram_reserve 0 39999 NULL
167106 +enable_so_dm_btree_lookup_next_single_fndecl_40001 dm_btree_lookup_next_single fndecl 2-0 40001 NULL nohasharray
167107 +enable_so_isr_decrypt_done_read_fndecl_40001 isr_decrypt_done_read fndecl 3 40001 &enable_so_dm_btree_lookup_next_single_fndecl_40001
167108 +enable_so_mld2q_nsrcs_mld2_query_40004 mld2q_nsrcs mld2_query 0 40004 NULL
167109 +enable_so_r820t_read_fndecl_40007 r820t_read fndecl 4 40007 NULL
167110 +enable_so_memblock_isolate_range_fndecl_40008 memblock_isolate_range fndecl 3-2 40008 NULL
167111 +enable_so_dch_empty_fifo_fndecl_40013 dch_empty_fifo fndecl 2 40013 NULL nohasharray
167112 +enable_so_cifs_dump_mem_fndecl_40013 cifs_dump_mem fndecl 3 40013 &enable_so_dch_empty_fifo_fndecl_40013
167113 +enable_so_ieee80211_ie_split_fndecl_40017 ieee80211_ie_split fndecl 5-0 40017 NULL
167114 +enable_so_zlib_compress_pages_fndecl_40018 zlib_compress_pages fndecl 4 40018 NULL
167115 +enable_so_xfs_iformat_local_fndecl_40019 xfs_iformat_local fndecl 4 40019 NULL
167116 +enable_so_verify_alg_len_net_conf_40020 verify_alg_len net_conf 0 40020 NULL
167117 +enable_so_vmw_mob_calculate_pt_pages_fndecl_40022 vmw_mob_calculate_pt_pages fndecl 0-1 40022 NULL
167118 +enable_so_esp4_get_mtu_fndecl_40024 esp4_get_mtu fndecl 0-2 40024 NULL
167119 +enable_so_emulator_write_phys_fndecl_40035 emulator_write_phys fndecl 2-4 40035 NULL
167120 +enable_so_pos_splice_desc_40040 pos splice_desc 0 40040 NULL
167121 +enable_so_memdiff_vardecl_tridentfb_c_40043 memdiff vardecl_tridentfb.c 0 40043 NULL nohasharray
167122 +enable_so_read_partial_fndecl_40043 read_partial fndecl 2 40043 &enable_so_memdiff_vardecl_tridentfb_c_40043
167123 +enable_so_bind_cmd_count_vmw_ctx_binding_state_40054 bind_cmd_count vmw_ctx_binding_state 0 40054 NULL
167124 +enable_so_SyS_listxattr_fndecl_40060 SyS_listxattr fndecl 3 40060 NULL
167125 +enable_so_smp_execute_task_fndecl_40062 smp_execute_task fndecl 3-5-0 40062 NULL
167126 +enable_so_region_size_switch_ctx_40069 region_size switch_ctx 0 40069 NULL
167127 +enable_so_max_pq_dma_device_40070 max_pq dma_device 0 40070 NULL
167128 +enable_so_smk_write_access_fndecl_40074 smk_write_access fndecl 3 40074 NULL nohasharray
167129 +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
167130 +enable_so_tda18271_write_regs_fndecl_40082 tda18271_write_regs fndecl 3 40082 NULL
167131 +enable_so_num_parents_clk_core_40091 num_parents clk_core 0 40091 NULL
167132 +enable_so_wIELength_uwb_rc_cmd_set_ie_40094 wIELength uwb_rc_cmd_set_ie 0 40094 NULL nohasharray
167133 +enable_so_rx_buf_use_size_bnx2_40094 rx_buf_use_size bnx2 0 40094 &enable_so_wIELength_uwb_rc_cmd_set_ie_40094
167134 +enable_so_zap_page_range_fndecl_40097 zap_page_range fndecl 3-2 40097 NULL
167135 +enable_so_vma_needs_reservation_fndecl_40101 vma_needs_reservation fndecl 3 40101 NULL
167136 +enable_so_num_ibs_amdgpu_cs_parser_40104 num_ibs amdgpu_cs_parser 0 40104 NULL
167137 +enable_so_lh_blkno_gfs2_log_header_host_40105 lh_blkno gfs2_log_header_host 0 40105 NULL nohasharray
167138 +enable_so_evm_inode_setattr_fndecl_40105 evm_inode_setattr fndecl 0 40105 &enable_so_lh_blkno_gfs2_log_header_host_40105
167139 +enable_so_frag_rx_path_fndecl_40106 frag_rx_path fndecl 3 40106 NULL nohasharray
167140 +enable_so_u_dsize_user32_40106 u_dsize user32 0 40106 &enable_so_frag_rx_path_fndecl_40106 nohasharray
167141 +enable_so_allocation_floor_vardecl_dell_rbu_c_40106 allocation_floor vardecl_dell_rbu.c 0 40106 &enable_so_u_dsize_user32_40106
167142 +enable_so_r8a66597_urb_dequeue_fndecl_40110 r8a66597_urb_dequeue fndecl 3 40110 NULL
167143 +enable_so_alloc_chunk_fndecl_40116 alloc_chunk fndecl 1 40116 NULL nohasharray
167144 +enable_so_drv_data_size_rt2x00_ops_40116 drv_data_size rt2x00_ops 0 40116 &enable_so_alloc_chunk_fndecl_40116
167145 +enable_so_usdhi6_rq_start_fndecl_40120 usdhi6_rq_start fndecl 0 40120 NULL
167146 +enable_so_byte_count_vardecl_initramfs_c_40121 byte_count vardecl_initramfs.c 0 40121 NULL nohasharray
167147 +enable_so_sd_pkt_scan_fndecl_40121 sd_pkt_scan fndecl 3 40121 &enable_so_byte_count_vardecl_initramfs_c_40121 nohasharray
167148 +enable_so_sctp_setsockopt_default_send_param_fndecl_40121 sctp_setsockopt_default_send_param fndecl 3 40121 &enable_so_sd_pkt_scan_fndecl_40121
167149 +enable_so_smk_write_doi_fndecl_40134 smk_write_doi fndecl 3 40134 NULL
167150 +enable_so_mspi_apply_qe_mode_quirks_fndecl_40137 mspi_apply_qe_mode_quirks fndecl 0-3 40137 NULL nohasharray
167151 +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
167152 +enable_so_port_fops_read_fndecl_40137 port_fops_read fndecl 3 40137 &enable_so_num_jumbo_rxd_netxen_adapter_40137
167153 +enable_so_off_fuse_notify_inval_inode_out_40142 off fuse_notify_inval_inode_out 0 40142 NULL
167154 +enable_so_isr_wakeups_read_fndecl_40148 isr_wakeups_read fndecl 3 40148 NULL
167155 +enable_so_fdt_appendprop_fndecl_40157 fdt_appendprop fndecl 2-5 40157 NULL nohasharray
167156 +enable_so_ftdi_elan_edset_single_fndecl_40157 ftdi_elan_edset_single fndecl 0 40157 &enable_so_fdt_appendprop_fndecl_40157
167157 +enable_so_xfs_ialloc_get_rec_fndecl_40163 xfs_ialloc_get_rec fndecl 2 40163 NULL
167158 +enable_so_sh_size_elf64_shdr_40164 sh_size elf64_shdr 0 40164 NULL
167159 +enable_so_at24_bin_read_fndecl_40165 at24_bin_read fndecl 6 40165 NULL
167160 +enable_so_pge_ctl_drm_psb_private_40167 pge_ctl drm_psb_private 0 40167 NULL
167161 +enable_so_dev_stripes_btrfs_raid_attr_40170 dev_stripes btrfs_raid_attr 0 40170 NULL
167162 +enable_so_bluecard_write_fndecl_40179 bluecard_write fndecl 0-4 40179 NULL
167163 +enable_so_status_boom_rx_desc_40185 status boom_rx_desc 0 40185 NULL
167164 +enable_so_protocol_inet_protosw_40187 protocol inet_protosw 0 40187 NULL nohasharray
167165 +enable_so_command_setlights_fndecl_40187 command_setlights fndecl 0 40187 &enable_so_protocol_inet_protosw_40187
167166 +enable_so_reshape_progress_r5conf_40192 reshape_progress r5conf 0 40192 NULL
167167 +enable_so_peb_size_ubi_device_40195 peb_size ubi_device 0 40195 NULL
167168 +enable_so_dma_contiguous_reserve_area_fndecl_40196 dma_contiguous_reserve_area fndecl 1-2-3 40196 NULL nohasharray
167169 +enable_so___jfs_setxattr_fndecl_40196 __jfs_setxattr fndecl 5 40196 &enable_so_dma_contiguous_reserve_area_fndecl_40196
167170 +enable_so_vga_video_num_lines_vardecl_vgacon_c_40199 vga_video_num_lines vardecl_vgacon.c 0 40199 NULL
167171 +enable_so_ath6kl_bgscan_int_write_fndecl_40201 ath6kl_bgscan_int_write fndecl 3 40201 NULL
167172 +enable_so_pvr2_ctrl_get_min_fndecl_40204 pvr2_ctrl_get_min fndecl 0 40204 NULL
167173 +enable_so_dvb_dvr_ioctl_fndecl_40205 dvb_dvr_ioctl fndecl 2 40205 NULL
167174 +enable_so_num_amgms_mlx4_caps_40207 num_amgms mlx4_caps 0 40207 NULL
167175 +enable_so_ipwireless_tty_received_fndecl_40209 ipwireless_tty_received fndecl 3 40209 NULL
167176 +enable_so_kbuf_alloc_2_sgl_fndecl_40216 kbuf_alloc_2_sgl fndecl 1 40216 NULL
167177 +enable_so_ipw_queue_tx_init_fndecl_40218 ipw_queue_tx_init fndecl 3 40218 NULL
167178 +enable_so_len_p80211ioctl_req_40220 len p80211ioctl_req 0 40220 NULL
167179 +enable_so_bochs_bo_create_fndecl_40223 bochs_bo_create fndecl 2 40223 NULL
167180 +enable_so_do_jffs2_getxattr_fndecl_40233 do_jffs2_getxattr fndecl 0 40233 NULL
167181 +enable_so_find_gmch_fndecl_40235 find_gmch fndecl 1 40235 NULL
167182 +enable_so_ndr_size_nd_region_40243 ndr_size nd_region 0 40243 NULL
167183 +enable_so_lola_init_stream_fndecl_40245 lola_init_stream fndecl 3 40245 NULL
167184 +enable_so_default_value_mfc_control_40246 default_value mfc_control 0 40246 NULL
167185 +enable_so_dec_src_buf_size_s5p_mfc_ctx_40247 dec_src_buf_size s5p_mfc_ctx 0 40247 NULL
167186 +enable_so_mmap_file_operations_40250 mmap file_operations 0 40250 NULL nohasharray
167187 +enable_so_layoutupdate_len_nfs4_layoutcommit_args_40250 layoutupdate_len nfs4_layoutcommit_args 0 40250 &enable_so_mmap_file_operations_40250
167188 +enable_so_max_sectors_queue_limits_40252 max_sectors queue_limits 0 40252 NULL
167189 +enable_so_ucNumOfPowerModeEntries__ATOM_POWERPLAY_INFO_40261 ucNumOfPowerModeEntries _ATOM_POWERPLAY_INFO 0 40261 NULL
167190 +enable_so_stop_discovery_fndecl_40262 stop_discovery fndecl 4 40262 NULL
167191 +enable_so_ino_jffs2_inode_cache_40264 ino jffs2_inode_cache 0 40264 NULL
167192 +enable_so_es_len_extent_status_40276 es_len extent_status 0 40276 NULL
167193 +enable_so_memcg_nr_cache_ids_vardecl_40280 memcg_nr_cache_ids vardecl 0 40280 NULL
167194 +enable_so_mask___kfifo_40288 mask __kfifo 0 40288 NULL
167195 +enable_so_isku_sysfs_read_keys_media_fndecl_40295 isku_sysfs_read_keys_media fndecl 6 40295 NULL
167196 +enable_so_update_end_of_memory_vars_fndecl_40298 update_end_of_memory_vars fndecl 2-1 40298 NULL
167197 +enable_so_rx_filter_beacon_filter_read_fndecl_40300 rx_filter_beacon_filter_read fndecl 3 40300 NULL
167198 +enable_so_osd_req_add_get_attr_list_fndecl_40301 osd_req_add_get_attr_list fndecl 3 40301 NULL
167199 +enable_so_hw_token_ehci_qh_40302 hw_token ehci_qh 0 40302 NULL
167200 +enable_so_cyttsp_spi_xfer_fndecl_40307 cyttsp_spi_xfer fndecl 6 40307 NULL
167201 +enable_so_gfs2_free_meta_fndecl_40312 gfs2_free_meta fndecl 2 40312 NULL
167202 +enable_so_max_scaled_width_bttv_crop_40325 max_scaled_width bttv_crop 0 40325 NULL
167203 +enable_so_uio_read_fndecl_40327 uio_read fndecl 3 40327 NULL
167204 +enable_so_cur_pos_tegra_spi_data_40338 cur_pos tegra_spi_data 0 40338 NULL
167205 +enable_so_dm_rh_get_region_key_fndecl_40342 dm_rh_get_region_key fndecl 0 40342 NULL nohasharray
167206 +enable_so_nvif_notify_init_fndecl_40342 nvif_notify_init fndecl 7-6 40342 &enable_so_dm_rh_get_region_key_fndecl_40342
167207 +enable_so_sector_p_block_req_40343 sector p_block_req 0 40343 NULL nohasharray
167208 +enable_so___ext4_ext_dirty_fndecl_40343 __ext4_ext_dirty fndecl 0 40343 &enable_so_sector_p_block_req_40343 nohasharray
167209 +enable_so_minimum_acpi_resource_memory32_40343 minimum acpi_resource_memory32 0 40343 &enable_so___ext4_ext_dirty_fndecl_40343
167210 +enable_so_free_ubifs_lpt_lprops_40346 free ubifs_lpt_lprops 0 40346 NULL
167211 +enable_so_default_llseek_fndecl_40353 default_llseek fndecl 2 40353 NULL nohasharray
167212 +enable_so_srpt_alloc_ioctx_ring_fndecl_40353 srpt_alloc_ioctx_ring fndecl 3-4-2 40353 &enable_so_default_llseek_fndecl_40353
167213 +enable_so_pgbase_pnfs_device_40355 pgbase pnfs_device 0 40355 NULL
167214 +enable_so_rbd_img_request_submit_fndecl_40356 rbd_img_request_submit fndecl 0 40356 NULL
167215 +enable_so_cblock_dm_cache_migration_40361 cblock dm_cache_migration 0 40361 NULL
167216 +enable_so_cfpkt_setlen_fndecl_40364 cfpkt_setlen fndecl 2 40364 NULL nohasharray
167217 +enable_so_max_wrs_rds_ib_device_40364 max_wrs rds_ib_device 0 40364 &enable_so_cfpkt_setlen_fndecl_40364
167218 +enable_so_isku_sysfs_read_keys_macro_fndecl_40371 isku_sysfs_read_keys_macro fndecl 6 40371 NULL
167219 +enable_so_SYSC_mincore_fndecl_40372 SYSC_mincore fndecl 2-1 40372 NULL
167220 +enable_so_pages_per_wr_bio_scrub_wr_ctx_40374 pages_per_wr_bio scrub_wr_ctx 0 40374 NULL
167221 +enable_so_align_kmem_cache_40377 align kmem_cache 0 40377 NULL
167222 +enable_so_ilm_len_mt76_fw_header_40389 ilm_len mt76_fw_header 0 40389 NULL
167223 +enable_so_px_raw_event_fndecl_40392 px_raw_event fndecl 4 40392 NULL
167224 +enable_so_file_secno_bplus_leaf_node_40394 file_secno bplus_leaf_node 0 40394 NULL nohasharray
167225 +enable_so_sb_root_hpfs_sb_info_40394 sb_root hpfs_sb_info 0 40394 &enable_so_file_secno_bplus_leaf_node_40394
167226 +enable_so_snd_ak4113_external_rate_fndecl_40404 snd_ak4113_external_rate fndecl 0 40404 NULL nohasharray
167227 +enable_so_max_scaled_height_bttv_crop_40404 max_scaled_height bttv_crop 0 40404 &enable_so_snd_ak4113_external_rate_fndecl_40404 nohasharray
167228 +enable_so_prli_len_fc_els_prli_40404 prli_len fc_els_prli 0 40404 &enable_so_max_scaled_height_bttv_crop_40404
167229 +enable_so_line_no_pch_uart_driver_data_40410 line_no pch_uart_driver_data 0 40410 NULL
167230 +enable_so_level3cnt_capi_register_params_40411 level3cnt capi_register_params 0 40411 NULL
167231 +enable_so_bulk_out_epnum_usb_cardstate_40412 bulk_out_epnum usb_cardstate 0 40412 NULL nohasharray
167232 +enable_so_joydev_ioctl_common_fndecl_40412 joydev_ioctl_common fndecl 2 40412 &enable_so_bulk_out_epnum_usb_cardstate_40412
167233 +enable_so_vm_end_vm_area_struct_40413 vm_end vm_area_struct 0 40413 NULL nohasharray
167234 +enable_so_vma_commit_reservation_fndecl_40413 vma_commit_reservation fndecl 3 40413 &enable_so_vm_end_vm_area_struct_40413
167235 +enable_so___ioremap_caller_fndecl_40419 __ioremap_caller fndecl 2-1 40419 NULL nohasharray
167236 +enable_so_applesmc_create_nodes_fndecl_40419 applesmc_create_nodes fndecl 2 40419 &enable_so___ioremap_caller_fndecl_40419
167237 +enable_so_rx_streaming_always_read_fndecl_40426 rx_streaming_always_read fndecl 3 40426 NULL
167238 +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
167239 +enable_so_readisac_IsdnCardState_40429 readisac IsdnCardState 0 40429 NULL
167240 +enable_so_skb_partial_csum_set_fndecl_40436 skb_partial_csum_set fndecl 2 40436 NULL nohasharray
167241 +enable_so_write_tag_block_fndecl_40436 write_tag_block fndecl 3 40436 &enable_so_skb_partial_csum_set_fndecl_40436
167242 +enable_so_begin_switchdev_vlan_dump_40443 begin switchdev_vlan_dump 0 40443 NULL
167243 +enable_so_iscsi_alloc_session_fndecl_40445 iscsi_alloc_session fndecl 3 40445 NULL
167244 +enable_so_qd2index_fndecl_40449 qd2index fndecl 0 40449 NULL
167245 +enable_so_gnttab_setup_auto_xlat_frames_fndecl_40455 gnttab_setup_auto_xlat_frames fndecl 1 40455 NULL
167246 +enable_so_curpacksize_snd_usb_endpoint_40462 curpacksize snd_usb_endpoint 0 40462 NULL
167247 +enable_so_nr_i2c_adapter_40466 nr i2c_adapter 0 40466 NULL
167248 +enable_so_bfad_iocmd_boot_cfg_fndecl_40470 bfad_iocmd_boot_cfg fndecl 0 40470 NULL
167249 +enable_so_di_size_logfs_disk_inode_40484 di_size logfs_disk_inode 0 40484 NULL nohasharray
167250 +enable_so_memblock_add_node_fndecl_40484 memblock_add_node fndecl 1-2 40484 &enable_so_di_size_logfs_disk_inode_40484
167251 +enable_so_eh_depth_ext4_extent_header_40488 eh_depth ext4_extent_header 0 40488 NULL
167252 +enable_so_s_cgoffset_ufs_sb_private_info_40490 s_cgoffset ufs_sb_private_info 0 40490 NULL
167253 +enable_so_tx_max_cdc_ncm_ctx_40493 tx_max cdc_ncm_ctx 0 40493 NULL nohasharray
167254 +enable_so_length_mtd_oob_buf32_40493 length mtd_oob_buf32 0 40493 &enable_so_tx_max_cdc_ncm_ctx_40493 nohasharray
167255 +enable_so_num_mtts_mlx4_caps_40493 num_mtts mlx4_caps 0 40493 &enable_so_length_mtd_oob_buf32_40493
167256 +enable_so_len_tx_buf_40498 len tx_buf 0 40498 NULL
167257 +enable_so_header_length_datalink_proto_40501 header_length datalink_proto 0 40501 NULL
167258 +enable_so_size_iscsi_segment_40510 size iscsi_segment 0 40510 NULL nohasharray
167259 +enable_so_start_cnic_id_tbl_40510 start cnic_id_tbl 0 40510 &enable_so_size_iscsi_segment_40510
167260 +enable_so_max_soc_bytes_ext_40512 max soc_bytes_ext 0 40512 NULL
167261 +enable_so_dn_mss_from_pmtu_fndecl_40520 dn_mss_from_pmtu fndecl 0-2 40520 NULL
167262 +enable_so_rx_cmp_len_flags_type_rx_cmp_40525 rx_cmp_len_flags_type rx_cmp 0 40525 NULL
167263 +enable_so_num_substreams_snd_m3_40528 num_substreams snd_m3 0 40528 NULL
167264 +enable_so_bnx2x_change_num_queues_fndecl_40532 bnx2x_change_num_queues fndecl 2 40532 NULL
167265 +enable_so_rsxx_queue_dma_fndecl_40533 rsxx_queue_dma fndecl 0 40533 NULL nohasharray
167266 +enable_so_w_size_deflate_state_40533 w_size deflate_state 0 40533 &enable_so_rsxx_queue_dma_fndecl_40533 nohasharray
167267 +enable_so_smb2_lockv_fndecl_40533 smb2_lockv fndecl 6 40533 &enable_so_w_size_deflate_state_40533 nohasharray
167268 +enable_so_drm_buffer_copy_from_user_fndecl_40533 drm_buffer_copy_from_user fndecl 3 40533 &enable_so_smb2_lockv_fndecl_40533
167269 +enable_so_xfs_qm_reset_dqcounts_fndecl_40540 xfs_qm_reset_dqcounts fndecl 3 40540 NULL nohasharray
167270 +enable_so_is_acpi_reserved_fndecl_40540 is_acpi_reserved fndecl 2-1 40540 &enable_so_xfs_qm_reset_dqcounts_fndecl_40540
167271 +enable_so_truncate_hole_fndecl_40543 truncate_hole fndecl 2-3 40543 NULL
167272 +enable_so_sky2_get_rx_data_size_fndecl_40544 sky2_get_rx_data_size fndecl 0 40544 NULL nohasharray
167273 +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
167274 +enable_so_base_start_aac_dev_40550 base_start aac_dev 0 40550 NULL nohasharray
167275 +enable_so_num_ios_vardecl_40550 num_ios vardecl 0 40550 &enable_so_base_start_aac_dev_40550
167276 +enable_so_read_partial_message_section_fndecl_40551 read_partial_message_section fndecl 3 40551 NULL
167277 +enable_so_nf_sockopt_fndecl_40555 nf_sockopt fndecl 0 40555 NULL
167278 +enable_so_alloc_ebda_hpc_fndecl_40557 alloc_ebda_hpc fndecl 1-2 40557 NULL
167279 +enable_so_security_context_to_sid_fndecl_40560 security_context_to_sid fndecl 2 40560 NULL
167280 +enable_so_mmc_retune_fndecl_40561 mmc_retune fndecl 0 40561 NULL
167281 +enable_so_maxpacket_isp1362_ep_40564 maxpacket isp1362_ep 0 40564 NULL
167282 +enable_so_isdn_read_fndecl_40566 isdn_read fndecl 3 40566 NULL
167283 +enable_so_ptrace_readdata_fndecl_40567 ptrace_readdata fndecl 4-2 40567 NULL
167284 +enable_so_ucNumStates__ATOM_PPLIB_POWERPLAYTABLE_40568 ucNumStates _ATOM_PPLIB_POWERPLAYTABLE 0 40568 NULL
167285 +enable_so_caif_stream_sendmsg_fndecl_40573 caif_stream_sendmsg fndecl 3 40573 NULL
167286 +enable_so_xlog_recovery_process_trans_fndecl_40575 xlog_recovery_process_trans fndecl 4 40575 NULL nohasharray
167287 +enable_so_qp_alloc_queue_fndecl_40575 qp_alloc_queue fndecl 1 40575 &enable_so_xlog_recovery_process_trans_fndecl_40575
167288 +enable_so_dm_bufio_read_fndecl_40577 dm_bufio_read fndecl 2 40577 NULL
167289 +enable_so_bfad_iocmd_ablk_optrom_fndecl_40586 bfad_iocmd_ablk_optrom fndecl 0 40586 NULL
167290 +enable_so_ioread8_fndecl_40594 ioread8 fndecl 0 40594 NULL
167291 +enable_so_dram_size_sst_res_info_40602 dram_size sst_res_info 0 40602 NULL nohasharray
167292 +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
167293 +enable_so_value_len_ext4_xattr_info_40604 value_len ext4_xattr_info 0 40604 NULL
167294 +enable_so_rf_size_rt2x00_ops_40605 rf_size rt2x00_ops 0 40605 NULL
167295 +enable_so_vyres_aty128_crtc_40610 vyres aty128_crtc 0 40610 NULL
167296 +enable_so_android_set_cntry_fndecl_40615 android_set_cntry fndecl 0 40615 NULL
167297 +enable_so_num_queues_qed_dev_eth_info_40624 num_queues qed_dev_eth_info 0 40624 NULL nohasharray
167298 +enable_so_mailbox_start_sst_info_40624 mailbox_start sst_info 0 40624 &enable_so_num_queues_qed_dev_eth_info_40624
167299 +enable_so___kfifo_dma_in_prepare_fndecl_40626 __kfifo_dma_in_prepare fndecl 4 40626 NULL
167300 +enable_so_libcfs_ioctl_popdata_fndecl_40628 libcfs_ioctl_popdata fndecl 3 40628 NULL
167301 +enable_so_pcpu_get_vm_areas_fndecl_40630 pcpu_get_vm_areas fndecl 4-3 40630 NULL
167302 +enable_so_dev_set_alias_fndecl_40631 dev_set_alias fndecl 3 40631 NULL
167303 +enable_so_cf_uniqueid_cifs_fattr_40632 cf_uniqueid cifs_fattr 0 40632 NULL
167304 +enable_so_altera_swap_dr_fndecl_40633 altera_swap_dr fndecl 2 40633 NULL
167305 +enable_so_map_dirent_fndecl_40635 map_dirent fndecl 2 40635 NULL nohasharray
167306 +enable_so_cfg_fcp_io_channel_lpfc_hba_40635 cfg_fcp_io_channel lpfc_hba 0 40635 &enable_so_map_dirent_fndecl_40635 nohasharray
167307 +enable_so_sock_setsockopt_fndecl_40635 sock_setsockopt fndecl 5 40635 &enable_so_cfg_fcp_io_channel_lpfc_hba_40635
167308 +enable_so_rotate_buf_a_little_fndecl_40654 rotate_buf_a_little fndecl 2 40654 NULL
167309 +enable_so_rq_rcvsize_rpc_rqst_40660 rq_rcvsize rpc_rqst 0 40660 NULL
167310 +enable_so_ipoib_ib_dev_init_fndecl_40661 ipoib_ib_dev_init fndecl 3 40661 NULL nohasharray
167311 +enable_so_number_xt_af_40661 number xt_af 0 40661 &enable_so_ipoib_ib_dev_init_fndecl_40661
167312 +enable_so_ocrdma_dbgfs_ops_write_fndecl_40664 ocrdma_dbgfs_ops_write fndecl 3 40664 NULL
167313 +enable_so___ext_tree_remove_fndecl_40666 __ext_tree_remove fndecl 2-3 40666 NULL
167314 +enable_so_coded_len_batadv_coded_packet_40670 coded_len batadv_coded_packet 0 40670 NULL
167315 +enable_so_aac_nark_ioremap_fndecl_40672 aac_nark_ioremap fndecl 2 40672 NULL nohasharray
167316 +enable_so_kmalloc_node_fndecl_40672 kmalloc_node fndecl 1 40672 &enable_so_aac_nark_ioremap_fndecl_40672
167317 +enable_so_rx_filter_ibss_filter_read_fndecl_40676 rx_filter_ibss_filter_read fndecl 3 40676 NULL
167318 +enable_so_odev_update_fndecl_40682 odev_update fndecl 2 40682 NULL nohasharray
167319 +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
167320 +enable_so_ahd_probe_stack_size_fndecl_40683 ahd_probe_stack_size fndecl 0 40683 NULL
167321 +enable_so_ubi_resize_volume_fndecl_40687 ubi_resize_volume fndecl 2 40687 NULL nohasharray
167322 +enable_so_xfs_get_blocks_direct_fndecl_40687 xfs_get_blocks_direct fndecl 2 40687 &enable_so_ubi_resize_volume_fndecl_40687
167323 +enable_so_tx_frag_need_fragmentation_read_fndecl_40698 tx_frag_need_fragmentation_read fndecl 3 40698 NULL
167324 +enable_so_height_timblogiw_tvnorm_40699 height timblogiw_tvnorm 0 40699 NULL
167325 +enable_so_errors_request_40701 errors request 0 40701 NULL
167326 +enable_so_aa_simple_write_to_buffer_fndecl_40704 aa_simple_write_to_buffer fndecl 3-4 40704 NULL
167327 +enable_so_max_znode_sz_ubifs_info_40705 max_znode_sz ubifs_info 0 40705 NULL
167328 +enable_so_ctrl_out_pipe_hfcsusb_40706 ctrl_out_pipe hfcsusb 0 40706 NULL
167329 +enable_so___x86_set_memory_region_fndecl_40708 __x86_set_memory_region fndecl 4 40708 NULL nohasharray
167330 +enable_so_nTxBlock_vardecl_jfs_txnmgr_c_40708 nTxBlock vardecl_jfs_txnmgr.c 0 40708 &enable_so___x86_set_memory_region_fndecl_40708
167331 +enable_so_lfb_linelength_screen_info_40728 lfb_linelength screen_info 0 40728 NULL
167332 +enable_so_cryptlen_aead_request_40734 cryptlen aead_request 0 40734 NULL
167333 +enable_so_NumberOfLogBlock_ms_lib_ctrl_40736 NumberOfLogBlock ms_lib_ctrl 0 40736 NULL
167334 +enable_so_do_splice_to_fndecl_40737 do_splice_to fndecl 4-0 40737 NULL
167335 +enable_so_sisfb_getheapstart_fndecl_40740 sisfb_getheapstart fndecl 0 40740 NULL nohasharray
167336 +enable_so_intel_gtt_mappable_entries_fndecl_40740 intel_gtt_mappable_entries fndecl 0 40740 &enable_so_sisfb_getheapstart_fndecl_40740
167337 +enable_so_write_pool_fndecl_40741 write_pool fndecl 3 40741 NULL
167338 +enable_so_IELength_wlan_bssid_ex_40743 IELength wlan_bssid_ex 0 40743 NULL
167339 +enable_so_smsc47b397_find_fndecl_40748 smsc47b397_find fndecl 0 40748 NULL
167340 +enable_so_ctrl_macb_dma_desc_40750 ctrl macb_dma_desc 0 40750 NULL
167341 +enable_so_sys_gethostname_fndecl_40753 sys_gethostname fndecl 2 40753 NULL
167342 +enable_so_read_reg_isac_hw_40755 read_reg isac_hw 0 40755 NULL
167343 +enable_so_snd_usb_endpoint_set_params_fndecl_40756 snd_usb_endpoint_set_params fndecl 3-4 40756 NULL
167344 +enable_so_vfs_iter_write_fndecl_40761 vfs_iter_write fndecl 0 40761 NULL
167345 +enable_so_total_xfer_length_ScsiReqBlk_40768 total_xfer_length ScsiReqBlk 0 40768 NULL
167346 +enable_so_btrfs_chunk_num_stripes_fndecl_40772 btrfs_chunk_num_stripes fndecl 0 40772 NULL
167347 +enable_so_snd_hdac_get_connections_fndecl_40773 snd_hdac_get_connections fndecl 0 40773 NULL
167348 +enable_so_pdu_write_fndecl_40774 pdu_write fndecl 3 40774 NULL
167349 +enable_so_xprt_tcp_slot_table_entries_vardecl_xprtsock_c_40779 xprt_tcp_slot_table_entries vardecl_xprtsock.c 0 40779 NULL
167350 +enable_so_s_bpfshift_ufs_sb_private_info_40782 s_bpfshift ufs_sb_private_info 0 40782 NULL
167351 +enable_so_scsi_log_print_sense_fndecl_40783 scsi_log_print_sense fndecl 5 40783 NULL
167352 +enable_so_sys_fsetxattr_fndecl_40795 sys_fsetxattr fndecl 4 40795 NULL
167353 +enable_so_private_data_len_rdma_conn_param_40796 private_data_len rdma_conn_param 0 40796 NULL
167354 +enable_so_check_frame_fndecl_40798 check_frame fndecl 0 40798 NULL nohasharray
167355 +enable_so_ext4_multi_mount_protect_fndecl_40798 ext4_multi_mount_protect fndecl 2 40798 &enable_so_check_frame_fndecl_40798
167356 +enable_so_multi_write_idx_wmi_40801 multi_write_idx wmi 0 40801 NULL nohasharray
167357 +enable_so_cmd_len_request_40801 cmd_len request 0 40801 &enable_so_multi_write_idx_wmi_40801 nohasharray
167358 +enable_so_num_channels_hpb_dmae_pdata_40801 num_channels hpb_dmae_pdata 0 40801 &enable_so_cmd_len_request_40801
167359 +enable_so_sz_m1_mlx5_wq_ll_40805 sz_m1 mlx5_wq_ll 0 40805 NULL
167360 +enable_so_ceph_osdc_readpages_fndecl_40814 ceph_osdc_readpages fndecl 0 40814 NULL nohasharray
167361 +enable_so_sysctl_wmem_max_vardecl_40814 sysctl_wmem_max vardecl 0 40814 &enable_so_ceph_osdc_readpages_fndecl_40814
167362 +enable_so_dma_pad_mask_request_queue_40816 dma_pad_mask request_queue 0 40816 NULL
167363 +enable_so_fuse_conn_waiting_read_fndecl_40817 fuse_conn_waiting_read fndecl 3 40817 NULL
167364 +enable_so_INFTL_findfreeblock_fndecl_40819 INFTL_findfreeblock fndecl 0 40819 NULL
167365 +enable_so_length_sst_dsp_header_40829 length sst_dsp_header 0 40829 NULL
167366 +enable_so_l2_fhdr_ip_xsum_l2_fhdr_40843 l2_fhdr_ip_xsum l2_fhdr 0 40843 NULL
167367 +enable_so_v9fs_file_fsync_dotl_fndecl_40845 v9fs_file_fsync_dotl fndecl 2-3 40845 NULL
167368 +enable_so_newblocks_xfs_growfs_data_40847 newblocks xfs_growfs_data 0 40847 NULL
167369 +enable_so_nfs_file_fsync_fndecl_40851 nfs_file_fsync fndecl 2-3 40851 NULL
167370 +enable_so___of_parse_phandle_with_args_fndecl_40860 __of_parse_phandle_with_args fndecl 0 40860 NULL
167371 +enable_so_ov_left_drbd_device_40861 ov_left drbd_device 0 40861 NULL nohasharray
167372 +enable_so_extended_capabilities_len_wiphy_40861 extended_capabilities_len wiphy 0 40861 &enable_so_ov_left_drbd_device_40861
167373 +enable_so_resize_zone_fndecl_40862 resize_zone fndecl 2-3 40862 NULL
167374 +enable_so_ext2_splice_branch_fndecl_40864 ext2_splice_branch fndecl 5 40864 NULL
167375 +enable_so_iraw_loop_fndecl_40865 iraw_loop fndecl 0-1 40865 NULL
167376 +enable_so_nvram_llseek_fndecl_40869 nvram_llseek fndecl 2 40869 NULL
167377 +enable_so_reply_queue_count_MPT3SAS_ADAPTER_40870 reply_queue_count MPT3SAS_ADAPTER 0 40870 NULL
167378 +enable_so_sector_count_partition_40874 sector_count partition 0 40874 NULL
167379 +enable_so_config_len_mic_device_desc_40877 config_len mic_device_desc 0 40877 NULL
167380 +enable_so_min_agbno_xfs_alloc_arg_40884 min_agbno xfs_alloc_arg 0 40884 NULL nohasharray
167381 +enable_so_osst_set_options_fndecl_40884 osst_set_options fndecl 2 40884 &enable_so_min_agbno_xfs_alloc_arg_40884
167382 +enable_so_tcf_csum_ipv4_tcp_fndecl_40889 tcf_csum_ipv4_tcp fndecl 3 40889 NULL
167383 +enable_so_size_drm_i915_gem_mmap_40890 size drm_i915_gem_mmap 0 40890 NULL nohasharray
167384 +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
167385 +enable_so_pci_add_dynid_fndecl_40893 pci_add_dynid fndecl 3-8 40893 NULL
167386 +enable_so_ath6kl_fwlog_block_read_fndecl_40895 ath6kl_fwlog_block_read fndecl 3 40895 NULL
167387 +enable_so_uart_write_fndecl_40916 uart_write fndecl 3 40916 NULL
167388 +enable_so_vmw_cmdbuf_send_device_command_fndecl_40925 vmw_cmdbuf_send_device_command fndecl 3 40925 NULL nohasharray
167389 +enable_so_sctp_setsockopt_bindx_fndecl_40925 sctp_setsockopt_bindx fndecl 3 40925 &enable_so_vmw_cmdbuf_send_device_command_fndecl_40925
167390 +enable_so_ea_put_fndecl_40928 ea_put fndecl 4 40928 NULL nohasharray
167391 +enable_so_platform_mmio_vardecl_platform_pci_c_40928 platform_mmio vardecl_platform-pci.c 0 40928 &enable_so_ea_put_fndecl_40928
167392 +enable_so_opcount_xfs_fsop_attrmulti_handlereq_40929 opcount xfs_fsop_attrmulti_handlereq 0 40929 NULL
167393 +enable_so_scsiback_do_resp_with_sense_fndecl_40934 scsiback_do_resp_with_sense fndecl 3 40934 NULL
167394 +enable_so_fuse_send_write_fndecl_40936 fuse_send_write fndecl 0-4 40936 NULL
167395 +enable_so_ecryptfs_filldir_fndecl_40939 ecryptfs_filldir fndecl 3 40939 NULL
167396 +enable_so_len_set_config_param_40942 len set_config_param 0 40942 NULL
167397 +enable_so_s_log_groups_per_flex_ext4_sb_info_40945 s_log_groups_per_flex ext4_sb_info 0 40945 NULL
167398 +enable_so_az6007_write_fndecl_40948 az6007_write fndecl 6 40948 NULL
167399 +enable_so_size_v4l2_ext_control_40952 size v4l2_ext_control 0 40952 NULL
167400 +enable_so_intel_fbc_alloc_cfb_fndecl_40957 intel_fbc_alloc_cfb fndecl 2 40957 NULL
167401 +enable_so_ns_segnum_the_nilfs_40959 ns_segnum the_nilfs 0 40959 NULL
167402 +enable_so_data_init_array_raw_hdr_40962 data init_array_raw_hdr 0 40962 NULL
167403 +enable_so_ext4_fill_fiemap_extents_fndecl_40966 ext4_fill_fiemap_extents fndecl 2-3 40966 NULL nohasharray
167404 +enable_so_isr_low_rssi_read_fndecl_40966 isr_low_rssi_read fndecl 3 40966 &enable_so_ext4_fill_fiemap_extents_fndecl_40966
167405 +enable_so_bottom_qxl_urect_40968 bottom qxl_urect 0 40968 NULL
167406 +enable_so_arena_read_bytes_fndecl_40973 arena_read_bytes fndecl 0 40973 NULL nohasharray
167407 +enable_so_regmap_reg_ranges_read_file_fndecl_40973 regmap_reg_ranges_read_file fndecl 3 40973 &enable_so_arena_read_bytes_fndecl_40973
167408 +enable_so_a_text_exec_40977 a_text exec 0 40977 NULL
167409 +enable_so_compat_sys_recvfrom_fndecl_40978 compat_sys_recvfrom fndecl 3 40978 NULL
167410 +enable_so_read_iter_file_operations_40980 read_iter file_operations 0 40980 NULL
167411 +enable_so_s_psn_qib_qp_40983 s_psn qib_qp 0 40983 NULL
167412 +enable_so_blk_mq_init_tags_fndecl_40986 blk_mq_init_tags fndecl 2-1 40986 NULL
167413 +enable_so_hwdep_write_fndecl_40987 hwdep_write fndecl 3 40987 NULL
167414 +enable_so_ecryptfs_send_miscdev_fndecl_40995 ecryptfs_send_miscdev fndecl 2 40995 NULL
167415 +enable_so_gfn_to_page_fndecl_41001 gfn_to_page fndecl 2 41001 NULL nohasharray
167416 +enable_so_start_fb_cmap_41001 start fb_cmap 0 41001 &enable_so_gfn_to_page_fndecl_41001
167417 +enable_so_selfballoon_min_usable_mb_vardecl_xen_selfballoon_c_41004 selfballoon_min_usable_mb vardecl_xen-selfballoon.c 0 41004 NULL
167418 +enable_so_bfad_iocmd_itnim_get_ioprofile_fndecl_41011 bfad_iocmd_itnim_get_ioprofile fndecl 0 41011 NULL nohasharray
167419 +enable_so_nfsctl_transaction_write_fndecl_41011 nfsctl_transaction_write fndecl 3 41011 &enable_so_bfad_iocmd_itnim_get_ioprofile_fndecl_41011
167420 +enable_so_ath6kl_target_config_wlan_params_fndecl_41017 ath6kl_target_config_wlan_params fndecl 2 41017 NULL nohasharray
167421 +enable_so_proc_projid_map_write_fndecl_41017 proc_projid_map_write fndecl 3 41017 &enable_so_ath6kl_target_config_wlan_params_fndecl_41017
167422 +enable_so_rfkill_fop_write_fndecl_41019 rfkill_fop_write fndecl 3 41019 NULL
167423 +enable_so_dma_handle_videobuf_dma_contig_memory_41025 dma_handle videobuf_dma_contig_memory 0 41025 NULL
167424 +enable_so_store_mfn_start_info_41034 store_mfn start_info 0 41034 NULL
167425 +enable_so_altera_set_dr_pre_fndecl_41037 altera_set_dr_pre fndecl 2 41037 NULL
167426 +enable_so_fofs_extent_info_41041 fofs extent_info 0 41041 NULL
167427 +enable_so_d0_vring_rx_mac_41042 d0 vring_rx_mac 0 41042 NULL
167428 +enable_so_ieee802154_hdr_pull_fndecl_41051 ieee802154_hdr_pull fndecl 0 41051 NULL
167429 +enable_so_resp_len_bnx2fc_mp_req_41057 resp_len bnx2fc_mp_req 0 41057 NULL
167430 +enable_so_lprocfs_write_u64_helper_fndecl_41059 lprocfs_write_u64_helper fndecl 2 41059 NULL
167431 +enable_so_bits_per_word_spi_transfer_41063 bits_per_word spi_transfer 0 41063 NULL nohasharray
167432 +enable_so_st21nfca_hci_dm_update_aid_fndecl_41063 st21nfca_hci_dm_update_aid fndecl 3 41063 &enable_so_bits_per_word_spi_transfer_41063
167433 +enable_so_userio_char_read_fndecl_41065 userio_char_read fndecl 3 41065 NULL
167434 +enable_so_vdc_mem_size_vml_par_41069 vdc_mem_size vml_par 0 41069 NULL
167435 +enable_so_gfn_to_pfn_fndecl_41077 gfn_to_pfn fndecl 2 41077 NULL
167436 +enable_so_DirID_hfs_cat_dir_41079 DirID hfs_cat_dir 0 41079 NULL
167437 +enable_so_shtc1_update_values_fndecl_41080 shtc1_update_values fndecl 4 41080 NULL
167438 +enable_so_zl10039_write_fndecl_41082 zl10039_write fndecl 4 41082 NULL
167439 +enable_so_pci_vc_do_save_buffer_fndecl_41087 pci_vc_do_save_buffer fndecl 0 41087 NULL
167440 +enable_so_wdt87xx_get_feature_fndecl_41089 wdt87xx_get_feature fndecl 3 41089 NULL nohasharray
167441 +enable_so_iq_autocal_len_p54_common_41089 iq_autocal_len p54_common 0 41089 &enable_so_wdt87xx_get_feature_fndecl_41089
167442 +enable_so_pskb_put_fndecl_41096 pskb_put fndecl 3 41096 NULL nohasharray
167443 +enable_so_sigma_fw_load_data_fndecl_41096 sigma_fw_load_data fndecl 3 41096 &enable_so_pskb_put_fndecl_41096
167444 +enable_so_nr_gpio_sc16is7xx_devtype_41097 nr_gpio sc16is7xx_devtype 0 41097 NULL
167445 +enable_so_input_leds_get_count_fndecl_41102 input_leds_get_count fndecl 0 41102 NULL
167446 +enable_so_scrub_chunk_fndecl_41105 scrub_chunk fndecl 3 41105 NULL
167447 +enable_so_res_ver_val_pvr2_hdw_41107 res_ver_val pvr2_hdw 0 41107 NULL
167448 +enable_so_physical_start_stripe_41108 physical_start stripe 0 41108 NULL
167449 +enable_so_xfs_imap_lookup_fndecl_41113 xfs_imap_lookup fndecl 4-3 41113 NULL
167450 +enable_so_in_iovs_fuse_ioctl_out_41117 in_iovs fuse_ioctl_out 0 41117 NULL
167451 +enable_so_ubifs_wbuf_write_nolock_fndecl_41121 ubifs_wbuf_write_nolock fndecl 3 41121 NULL nohasharray
167452 +enable_so_bfad_iocmd_diag_dport_disable_fndecl_41121 bfad_iocmd_diag_dport_disable fndecl 0 41121 &enable_so_ubifs_wbuf_write_nolock_fndecl_41121
167453 +enable_so_datalen_brcmf_event_msg_41123 datalen brcmf_event_msg 0 41123 NULL
167454 +enable_so_ip_options_get_from_user_fndecl_41133 ip_options_get_from_user fndecl 4 41133 NULL
167455 +enable_so_data_out_pipe_uas_dev_info_41134 data_out_pipe uas_dev_info 0 41134 NULL
167456 +enable_so_data_len_b43_dfs_file_41135 data_len b43_dfs_file 0 41135 NULL
167457 +enable_so_qcaspi_read_burst_fndecl_41137 qcaspi_read_burst fndecl 3 41137 NULL
167458 +enable_so_nilfs_sufile_get_blkoff_fndecl_41139 nilfs_sufile_get_blkoff fndecl 0-2 41139 NULL
167459 +enable_so_hidp_process_report_fndecl_41140 hidp_process_report fndecl 4 41140 NULL
167460 +enable_so_usb_reset_and_verify_device_fndecl_41142 usb_reset_and_verify_device fndecl 0 41142 NULL
167461 +enable_so_ieee80211_cs_headroom_fndecl_41144 ieee80211_cs_headroom fndecl 0 41144 NULL
167462 +enable_so_rx_drvinfo_size_rtl_stats_41161 rx_drvinfo_size rtl_stats 0 41161 NULL
167463 +enable_so___blk_recalc_rq_segments_fndecl_41164 __blk_recalc_rq_segments fndecl 0 41164 NULL
167464 +enable_so_l2tp_ip6_sendmsg_fndecl_41166 l2tp_ip6_sendmsg fndecl 3 41166 NULL nohasharray
167465 +enable_so_major_stm_device_41166 major stm_device 0 41166 &enable_so_l2tp_ip6_sendmsg_fndecl_41166
167466 +enable_so_get_blocks_target_backend_ops_41168 get_blocks target_backend_ops 0 41168 NULL
167467 +enable_so_calib_fail_count_read_fndecl_41171 calib_fail_count_read fndecl 3 41171 NULL
167468 +enable_so_suspend_dtim_interval_read_fndecl_41176 suspend_dtim_interval_read fndecl 3 41176 NULL
167469 +enable_so_size_brnf_frag_data_41177 size brnf_frag_data 0 41177 NULL
167470 +enable_so_start_flakey_c_41178 start flakey_c 0 41178 NULL
167471 +enable_so_lro_wqe_sz_mlx5e_params_41180 lro_wqe_sz mlx5e_params 0 41180 NULL
167472 +enable_so_gfn_guest_walker64_41182 gfn guest_walker64 0 41182 NULL
167473 +enable_so_index_vardecl_via82xx_c_41183 index vardecl_via82xx.c 0 41183 NULL
167474 +enable_so_binder_set_nice_fndecl_41184 binder_set_nice fndecl 1 41184 NULL
167475 +enable_so_nr_pages_page_collect_41197 nr_pages page_collect 0 41197 NULL
167476 +enable_so_bfad_iocmd_qos_fndecl_41198 bfad_iocmd_qos fndecl 0 41198 NULL
167477 +enable_so_msb_cache_flush_fndecl_41200 msb_cache_flush fndecl 0 41200 NULL
167478 +enable_so_sq905_command_fndecl_41201 sq905_command fndecl 0 41201 NULL
167479 +enable_so_nr_acpi_bits_vardecl_xen_acpi_processor_c_41210 nr_acpi_bits vardecl_xen-acpi-processor.c 0 41210 NULL
167480 +enable_so_fanout_set_data_fndecl_41219 fanout_set_data fndecl 3 41219 NULL
167481 +enable_so_qib_n_krcv_queues_vardecl_41222 qib_n_krcv_queues vardecl 0 41222 NULL
167482 +enable_so_p9_client_read_fndecl_41223 p9_client_read fndecl 0 41223 NULL
167483 +enable_so_prctl_set_mm_fndecl_41225 prctl_set_mm fndecl 2-3 41225 NULL
167484 +enable_so_enic_change_mtu_fndecl_41227 enic_change_mtu fndecl 2 41227 NULL nohasharray
167485 +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
167486 +enable_so_out_count_mdc800_data_41228 out_count mdc800_data 0 41228 NULL
167487 +enable_so_ies_len_connect_attr_41234 ies_len connect_attr 0 41234 NULL
167488 +enable_so_len_driver_data_41237 len driver_data 0 41237 NULL
167489 +enable_so_opera1_usb_i2c_msgxfer_fndecl_41242 opera1_usb_i2c_msgxfer fndecl 4 41242 NULL
167490 +enable_so_ses_send_diag_fndecl_41244 ses_send_diag fndecl 4 41244 NULL
167491 +enable_so_iwl_dbgfs_ucode_tracing_write_fndecl_41247 iwl_dbgfs_ucode_tracing_write fndecl 3 41247 NULL
167492 +enable_so___apei_exec_run_fndecl_41248 __apei_exec_run fndecl 0 41248 NULL
167493 +enable_so___spi_sync_fndecl_41250 __spi_sync fndecl 0 41250 NULL nohasharray
167494 +enable_so_init_size_rx_module_41250 init_size_rx module 0 41250 &enable_so___spi_sync_fndecl_41250
167495 +enable_so_croph_val_pvr2_hdw_41253 croph_val pvr2_hdw 0 41253 NULL
167496 +enable_so_get_res_add_align_fndecl_41257 get_res_add_align fndecl 0 41257 NULL
167497 +enable_so_qlen_sk_buff_head_41259 qlen sk_buff_head 0 41259 NULL nohasharray
167498 +enable_so_diva_os_alloc_message_buffer_fndecl_41259 diva_os_alloc_message_buffer fndecl 1 41259 &enable_so_qlen_sk_buff_head_41259
167499 +enable_so_byte_cnt_mlx4_cqe_41260 byte_cnt mlx4_cqe 0 41260 NULL
167500 +enable_so_do_erase_fndecl_41261 do_erase fndecl 2-4 41261 NULL nohasharray
167501 +enable_so_num_threads_acpi_db_method_info_41261 num_threads acpi_db_method_info 0 41261 &enable_so_do_erase_fndecl_41261
167502 +enable_so_lm8323_read_fndecl_41264 lm8323_read fndecl 4 41264 NULL
167503 +enable_so_blkdev_issue_zeroout_fndecl_41272 blkdev_issue_zeroout fndecl 3-2-0 41272 NULL
167504 +enable_so_rbd_obj_read_sync_fndecl_41273 rbd_obj_read_sync fndecl 4-3 41273 NULL
167505 +enable_so___btrfs_prealloc_file_range_fndecl_41278 __btrfs_prealloc_file_range fndecl 3 41278 NULL
167506 +enable_so_size_data_s_41281 size data_s 0 41281 NULL
167507 +enable_so_num_reg_defaults_raw_regmap_41282 num_reg_defaults_raw regmap 0 41282 NULL
167508 +enable_so_centre_horizontally_fndecl_41284 centre_horizontally fndecl 2 41284 NULL nohasharray
167509 +enable_so_vxfs_getblk_fndecl_41284 vxfs_getblk fndecl 2 41284 &enable_so_centre_horizontally_fndecl_41284
167510 +enable_so_dy_fb_fillrect_41289 dy fb_fillrect 0 41289 NULL nohasharray
167511 +enable_so_tcp_write_xmit_fndecl_41289 tcp_write_xmit fndecl 2 41289 &enable_so_dy_fb_fillrect_41289
167512 +enable_so_vb2_queue_init_fndecl_41292 vb2_queue_init fndecl 0 41292 NULL
167513 +enable_so_uni2char_nls_table_41293 uni2char nls_table 0 41293 NULL
167514 +enable_so_kfd_set_pasid_limit_fndecl_41300 kfd_set_pasid_limit fndecl 1 41300 NULL
167515 +enable_so_bop_check_delete_nilfs_bmap_operations_41302 bop_check_delete nilfs_bmap_operations 0 41302 NULL
167516 +enable_so_register_vlan_device_fndecl_41310 register_vlan_device fndecl 2 41310 NULL
167517 +enable_so_img_SRAM_size_fw_hdr_41311 img_SRAM_size fw_hdr 0 41311 NULL
167518 +enable_so_cma_declare_contiguous_fndecl_41316 cma_declare_contiguous fndecl 4-2-1-3-5 41316 NULL nohasharray
167519 +enable_so_block_start_extent_map_41316 block_start extent_map 0 41316 &enable_so_cma_declare_contiguous_fndecl_41316
167520 +enable_so_pc_len_s_pcon_41324 pc_len s_pcon 0 41324 NULL
167521 +enable_so_alt_port_mlx5_ib_qp_41327 alt_port mlx5_ib_qp 0 41327 NULL
167522 +enable_so_fdt_subnode_offset_fndecl_41332 fdt_subnode_offset fndecl 2 41332 NULL
167523 +enable_so_max_fcoe_exchanges_cnic_dev_41335 max_fcoe_exchanges cnic_dev 0 41335 NULL
167524 +enable_so_last_alloc_physical_block_ext2_block_alloc_info_41336 last_alloc_physical_block ext2_block_alloc_info 0 41336 NULL
167525 +enable_so_fanotify_write_fndecl_41340 fanotify_write fndecl 3 41340 NULL
167526 +enable_so_regmap_read_debugfs_fndecl_41345 regmap_read_debugfs fndecl 5 41345 NULL
167527 +enable_so_key_len_wmi_vdev_install_key_arg_41347 key_len wmi_vdev_install_key_arg 0 41347 NULL
167528 +enable_so_transport_lba_64_fndecl_41348 transport_lba_64 fndecl 0 41348 NULL
167529 +enable_so_size_snd_info_entry_41350 size snd_info_entry 0 41350 NULL nohasharray
167530 +enable_so_pool_create_fndecl_41350 pool_create fndecl 3 41350 &enable_so_size_snd_info_entry_41350 nohasharray
167531 +enable_so_ocfs2_read_xattr_block_fndecl_41350 ocfs2_read_xattr_block fndecl 0-2 41350 &enable_so_pool_create_fndecl_41350 nohasharray
167532 +enable_so_tlbflush_read_file_fndecl_41350 tlbflush_read_file fndecl 3 41350 &enable_so_ocfs2_read_xattr_block_fndecl_41350
167533 +enable_so_efx_tsoh_get_buffer_fndecl_41355 efx_tsoh_get_buffer fndecl 3 41355 NULL
167534 +enable_so_usb_stor_probe1_fndecl_41357 usb_stor_probe1 fndecl 0 41357 NULL
167535 +enable_so_rx_rx_out_of_mpdu_nodes_read_fndecl_41359 rx_rx_out_of_mpdu_nodes_read fndecl 3 41359 NULL
167536 +enable_so_sl_ocrdma_dev_41367 sl ocrdma_dev 0 41367 NULL
167537 +enable_so_num_eq_entries_hba_parameters_41369 num_eq_entries hba_parameters 0 41369 NULL
167538 +enable_so_wrsent_cyberjack_private_41371 wrsent cyberjack_private 0 41371 NULL
167539 +enable_so_snic_dump_desc_fndecl_41372 snic_dump_desc fndecl 3 41372 NULL
167540 +enable_so_do_device_access_fndecl_41373 do_device_access fndecl 0-2-3 41373 NULL
167541 +enable_so_max_frame_size_mgsl_struct_41374 max_frame_size mgsl_struct 0 41374 NULL
167542 +enable_so_mremap_to_fndecl_41376 mremap_to fndecl 4-3-1-2 41376 NULL nohasharray
167543 +enable_so_sectors_per_block_era_41376 sectors_per_block era 0 41376 &enable_so_mremap_to_fndecl_41376 nohasharray
167544 +enable_so_TupleDataMax_tuple_t_41376 TupleDataMax tuple_t 0 41376 &enable_so_sectors_per_block_era_41376
167545 +enable_so_wsize_nfs_server_41387 wsize nfs_server 0 41387 NULL nohasharray
167546 +enable_so_atomic_write_len_kernfs_ops_41387 atomic_write_len kernfs_ops 0 41387 &enable_so_wsize_nfs_server_41387
167547 +enable_so_l_tree_depth_ocfs2_extent_list_41398 l_tree_depth ocfs2_extent_list 0 41398 NULL
167548 +enable_so_fat32_root_cluster_fat_bios_param_block_41399 fat32_root_cluster fat_bios_param_block 0 41399 NULL
167549 +enable_so_nr_free_zone_pages_fndecl_41403 nr_free_zone_pages fndecl 0 41403 NULL
167550 +enable_so_i2400m_msg_to_dev_fndecl_41409 i2400m_msg_to_dev fndecl 3 41409 NULL
167551 +enable_so_num_channels_fndecl_41411 num_channels fndecl 0-1 41411 NULL
167552 +enable_so_virtio_cread8_fndecl_41431 virtio_cread8 fndecl 0 41431 NULL
167553 +enable_so_snd_pcm_oss_capture_position_fixup_fndecl_41434 snd_pcm_oss_capture_position_fixup fndecl 0 41434 NULL
167554 +enable_so_l1_size_vardecl_acpi_extlog_c_41440 l1_size vardecl_acpi_extlog.c 0 41440 NULL
167555 +enable_so_vram_remap_vardecl_vesafb_c_41441 vram_remap vardecl_vesafb.c 0 41441 NULL
167556 +enable_so_udf_NLStoCS0_fndecl_41451 udf_NLStoCS0 fndecl 0 41451 NULL
167557 +enable_so_rf_blkno_ocfs2_refcount_tree_41452 rf_blkno ocfs2_refcount_tree 0 41452 NULL
167558 +enable_so_dm_wmfw_adsp1_alg_hdr_41454 dm wmfw_adsp1_alg_hdr 0 41454 NULL
167559 +enable_so_sensor_write_reg_fndecl_41455 sensor_write_reg fndecl 0 41455 NULL
167560 +enable_so_squashfs_read_inode_lookup_table_fndecl_41456 squashfs_read_inode_lookup_table fndecl 4 41456 NULL nohasharray
167561 +enable_so_max_pd_ib_device_attr_41456 max_pd ib_device_attr 0 41456 &enable_so_squashfs_read_inode_lookup_table_fndecl_41456
167562 +enable_so_mem_lseek_fndecl_41457 mem_lseek fndecl 2 41457 NULL nohasharray
167563 +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
167564 +enable_so_tx_fifo_override_sh_msiof_spi_info_41461 tx_fifo_override sh_msiof_spi_info 0 41461 NULL
167565 +enable_so_bio_map_kern_fndecl_41468 bio_map_kern fndecl 3 41468 NULL
167566 +enable_so_pageshift_alauda_media_info_41469 pageshift alauda_media_info 0 41469 NULL nohasharray
167567 +enable_so_sd_qc_per_block_gfs2_sbd_41469 sd_qc_per_block gfs2_sbd 0 41469 &enable_so_pageshift_alauda_media_info_41469
167568 +enable_so_s_len_qib_qp_41471 s_len qib_qp 0 41471 NULL nohasharray
167569 +enable_so_major_nr_vardecl_umem_c_41471 major_nr vardecl_umem.c 0 41471 &enable_so_s_len_qib_qp_41471
167570 +enable_so_redirected_tty_write_fndecl_41474 redirected_tty_write fndecl 3 41474 NULL
167571 +enable_so_get_var_len_fndecl_41483 get_var_len fndecl 0 41483 NULL
167572 +enable_so_video_offset_sis_video_info_41491 video_offset sis_video_info 0 41491 NULL
167573 +enable_so_lpddr_info_query_fndecl_41492 lpddr_info_query fndecl 0 41492 NULL
167574 +enable_so_compat_core_sys_select_fndecl_41494 compat_core_sys_select fndecl 1 41494 NULL
167575 +enable_so_dir_entries_fat_floppy_defaults_41499 dir_entries fat_floppy_defaults 0 41499 NULL
167576 +enable_so_mpi_set_buffer_fndecl_41501 mpi_set_buffer fndecl 3 41501 NULL
167577 +enable_so_irda_param_insert_fndecl_41502 irda_param_insert fndecl 0 41502 NULL
167578 +enable_so_max_shutter_mt9v032_model_data_41509 max_shutter mt9v032_model_data 0 41509 NULL
167579 +enable_so_b_fifo_size_hfcSX_hw_41512 b_fifo_size hfcSX_hw 0 41512 NULL
167580 +enable_so_dccp_setsockopt_service_fndecl_41515 dccp_setsockopt_service fndecl 4 41515 NULL
167581 +enable_so_vpi_atm_vcc_41519 vpi atm_vcc 0 41519 NULL
167582 +enable_so_nfc_hci_execute_cmd_async_fndecl_41521 nfc_hci_execute_cmd_async fndecl 5 41521 NULL
167583 +enable_so_lv_niovecs_xfs_log_vec_41525 lv_niovecs xfs_log_vec 0 41525 NULL nohasharray
167584 +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
167585 +enable_so_unpack_array_fndecl_41525 unpack_array fndecl 0 41525 &enable_so_pcpu_unit_pages_vardecl_percpu_c_41525
167586 +enable_so_max_targets_orc_host_41530 max_targets orc_host 0 41530 NULL
167587 +enable_so_pci_vpd_find_tag_fndecl_41534 pci_vpd_find_tag fndecl 0-2 41534 NULL
167588 +enable_so_alloc_cpu_rmap_fndecl_41536 alloc_cpu_rmap fndecl 1 41536 NULL
167589 +enable_so_sv_xdrsize_svc_serv_41544 sv_xdrsize svc_serv 0 41544 NULL
167590 +enable_so_velocity_change_mtu_fndecl_41548 velocity_change_mtu fndecl 2 41548 NULL
167591 +enable_so_nr_online_nodes_vardecl_41549 nr_online_nodes vardecl 0 41549 NULL
167592 +enable_so_ntargets_aoedev_41550 ntargets aoedev 0 41550 NULL
167593 +enable_so_set_extent_defrag_fndecl_41558 set_extent_defrag fndecl 3-2 41558 NULL
167594 +enable_so_max_nr_ports_virtio_console_config_41559 max_nr_ports virtio_console_config 0 41559 NULL
167595 +enable_so_dma_rx_requested_read_fndecl_41561 dma_rx_requested_read fndecl 3 41561 NULL
167596 +enable_so_stv0680_handle_error_fndecl_41563 stv0680_handle_error fndecl 0-2 41563 NULL
167597 +enable_so_sb_blocklog_xfs_sb_41568 sb_blocklog xfs_sb 0 41568 NULL
167598 +enable_so___alloc_bootmem_nopanic_fndecl_41574 __alloc_bootmem_nopanic fndecl 2-1-3 41574 NULL
167599 +enable_so___read_vmcore_fndecl_41577 __read_vmcore fndecl 2 41577 NULL
167600 +enable_so_mtd_get_device_size_fndecl_41579 mtd_get_device_size fndecl 0 41579 NULL
167601 +enable_so_FirstBurstLength_iscsi_sess_ops_41581 FirstBurstLength iscsi_sess_ops 0 41581 NULL nohasharray
167602 +enable_so_iio_device_add_channel_sysfs_fndecl_41581 iio_device_add_channel_sysfs fndecl 0 41581 &enable_so_FirstBurstLength_iscsi_sess_ops_41581
167603 +enable_so_rx_buffersize_b43legacy_dmaring_41583 rx_buffersize b43legacy_dmaring 0 41583 NULL
167604 +enable_so_fuse_write_end_fndecl_41587 fuse_write_end fndecl 5-3 41587 NULL
167605 +enable_so_pwr_sleep_percent_read_fndecl_41600 pwr_sleep_percent_read fndecl 3 41600 NULL
167606 +enable_so_vmw_gb_shader_init_fndecl_41607 vmw_gb_shader_init fndecl 3 41607 NULL
167607 +enable_so_xpc_kzalloc_cacheline_aligned_fndecl_41610 xpc_kzalloc_cacheline_aligned fndecl 1 41610 NULL
167608 +enable_so_vmalloc_to_pfn_fndecl_41614 vmalloc_to_pfn fndecl 0 41614 NULL
167609 +enable_so_ocfs2_write_begin_nolock_fndecl_41617 ocfs2_write_begin_nolock fndecl 3 41617 NULL nohasharray
167610 +enable_so_hba_queue_depth_MPT3SAS_ADAPTER_41617 hba_queue_depth MPT3SAS_ADAPTER 0 41617 &enable_so_ocfs2_write_begin_nolock_fndecl_41617
167611 +enable_so_jffs2_gc_fetch_inode_fndecl_41629 jffs2_gc_fetch_inode fndecl 2 41629 NULL
167612 +enable_so_drm_calloc_large_fndecl_41630 drm_calloc_large fndecl 1-2 41630 NULL
167613 +enable_so_read_buf_fndecl_41631 read_buf fndecl 3-0 41631 NULL
167614 +enable_so_dev_major_cuse_init_out_41635 dev_major cuse_init_out 0 41635 NULL
167615 +enable_so_dm_bm_prefetch_fndecl_41636 dm_bm_prefetch fndecl 2 41636 NULL
167616 +enable_so_tx_ring_size_jme_adapter_41640 tx_ring_size jme_adapter 0 41640 NULL
167617 +enable_so_bfad_iocmd_diag_temp_fndecl_41641 bfad_iocmd_diag_temp fndecl 0 41641 NULL
167618 +enable_so_rate_twl4030_priv_41642 rate twl4030_priv 0 41642 NULL
167619 +enable_so_fnode_hpfs_dirent_41643 fnode hpfs_dirent 0 41643 NULL
167620 +enable_so_clear_user_fndecl_41645 clear_user fndecl 2 41645 NULL
167621 +enable_so_rx_buffer_len_e1000_adapter_41647 rx_buffer_len e1000_adapter 0 41647 NULL
167622 +enable_so_usb_alloc_coherent_fndecl_41655 usb_alloc_coherent fndecl 2 41655 NULL
167623 +enable_so_data_length_bnx2i_reject_msg_41661 data_length bnx2i_reject_msg 0 41661 NULL
167624 +enable_so_blk_mq_end_request_fndecl_41663 blk_mq_end_request fndecl 2 41663 NULL
167625 +enable_so_error_null_frame_cts_start_read_fndecl_41668 error_null_frame_cts_start_read fndecl 3 41668 NULL
167626 +enable_so_selnl_msglen_fndecl_41672 selnl_msglen fndecl 0 41672 NULL
167627 +enable_so_qib_create_ctxtdata_fndecl_41674 qib_create_ctxtdata fndecl 2 41674 NULL
167628 +enable_so_vram_start_vmw_private_41679 vram_start vmw_private 0 41679 NULL
167629 +enable_so_link_frequency_ov2659_platform_data_41684 link_frequency ov2659_platform_data 0 41684 NULL
167630 +enable_so_encrypted_filename_size_ecryptfs_filename_41686 encrypted_filename_size ecryptfs_filename 0 41686 NULL nohasharray
167631 +enable_so_firstUnit_INFTLPartition_41686 firstUnit INFTLPartition 0 41686 &enable_so_encrypted_filename_size_ecryptfs_filename_41686
167632 +enable_so_mem_zatm_dev_41696 mem zatm_dev 0 41696 NULL
167633 +enable_so_nvme_trans_standard_inquiry_page_fndecl_41701 nvme_trans_standard_inquiry_page fndecl 4 41701 NULL
167634 +enable_so_length_usbtest_param_41702 length usbtest_param 0 41702 NULL
167635 +enable_so_zoran_v4l2_calc_bufsize_fndecl_41703 zoran_v4l2_calc_bufsize fndecl 0 41703 NULL
167636 +enable_so_bfs_move_blocks_fndecl_41706 bfs_move_blocks fndecl 2-4 41706 NULL
167637 +enable_so_tree_mod_log_eb_copy_fndecl_41708 tree_mod_log_eb_copy fndecl 6 41708 NULL
167638 +enable_so_mac_free_res_fndecl_41714 mac_free_res fndecl 7 41714 NULL nohasharray
167639 +enable_so_ax25_recvmsg_fndecl_41714 ax25_recvmsg fndecl 3 41714 &enable_so_mac_free_res_fndecl_41714
167640 +enable_so_l_curr_block_xlog_41718 l_curr_block xlog 0 41718 NULL
167641 +enable_so_strstart_deflate_state_41719 strstart deflate_state 0 41719 NULL
167642 +enable_so_hlen_ip_tunnel_41720 hlen ip_tunnel 0 41720 NULL
167643 +enable_so_width_tw68_dev_41726 width tw68_dev 0 41726 NULL
167644 +enable_so_pci_enable_msi_range_fndecl_41728 pci_enable_msi_range fndecl 3 41728 NULL nohasharray
167645 +enable_so_xp_max_npartitions_vardecl_41728 xp_max_npartitions vardecl 0 41728 &enable_so_pci_enable_msi_range_fndecl_41728
167646 +enable_so_gfs2_dir_mvino_fndecl_41733 gfs2_dir_mvino fndecl 4 41733 NULL
167647 +enable_so_sb_sectlog_xfs_sb_41740 sb_sectlog xfs_sb 0 41740 NULL
167648 +enable_so_v4l2_ctrl_handler_init_class_fndecl_41742 v4l2_ctrl_handler_init_class fndecl 2 41742 NULL
167649 +enable_so_cxgb3i_max_connect_vardecl_cxgb3i_c_41744 cxgb3i_max_connect vardecl_cxgb3i.c 0 41744 NULL
167650 +enable_so_val_xfs_sysctl_val_41747 val xfs_sysctl_val 0 41747 NULL
167651 +enable_so_iic_tpm_read_fndecl_41748 iic_tpm_read fndecl 3 41748 NULL
167652 +enable_so_intel_fb_align_height_fndecl_41750 intel_fb_align_height fndecl 0-2 41750 NULL
167653 +enable_so_bm_key_affs_bm_info_41751 bm_key affs_bm_info 0 41751 NULL
167654 +enable_so_encode_filename3_fndecl_41752 encode_filename3 fndecl 3 41752 NULL
167655 +enable_so_insert_dent_fndecl_41753 insert_dent fndecl 3-4-7 41753 NULL
167656 +enable_so_i_metasize_romfs_inode_info_41756 i_metasize romfs_inode_info 0 41756 NULL
167657 +enable_so_ovs_nla_add_action_fndecl_41757 ovs_nla_add_action fndecl 4-0 41757 NULL
167658 +enable_so_bnx2fc_process_l2_frame_compl_fndecl_41763 bnx2fc_process_l2_frame_compl fndecl 3 41763 NULL nohasharray
167659 +enable_so_size_port_buffer_41763 size port_buffer 0 41763 &enable_so_bnx2fc_process_l2_frame_compl_fndecl_41763
167660 +enable_so_len_cbuf_41764 len cbuf 0 41764 NULL nohasharray
167661 +enable_so_bbt_erase_shift_nand_chip_41764 bbt_erase_shift nand_chip 0 41764 &enable_so_len_cbuf_41764
167662 +enable_so___alloc_bootmem_node_high_fndecl_41767 __alloc_bootmem_node_high fndecl 3-2-4 41767 NULL
167663 +enable_so_batadv_socket_write_fndecl_41768 batadv_socket_write fndecl 3 41768 NULL
167664 +enable_so_ocfs2_truncate_cluster_pages_fndecl_41773 ocfs2_truncate_cluster_pages fndecl 2-3 41773 NULL
167665 +enable_so_pcibios_enable_device_fndecl_41776 pcibios_enable_device fndecl 0 41776 NULL
167666 +enable_so_ath9k_multi_regread_fndecl_41779 ath9k_multi_regread fndecl 4 41779 NULL
167667 +enable_so_dma_rx_size_stmmac_priv_41781 dma_rx_size stmmac_priv 0 41781 NULL nohasharray
167668 +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
167669 +enable_so_scif_get_pages_fndecl_41783 scif_get_pages fndecl 2-3 41783 NULL
167670 +enable_so_numtx_velocity_opt_41785 numtx velocity_opt 0 41785 NULL
167671 +enable_so_num_bytes_drm_dp_remote_i2c_write_41786 num_bytes drm_dp_remote_i2c_write 0 41786 NULL
167672 +enable_so_make_idx_node_fndecl_41791 make_idx_node fndecl 6-5 41791 NULL nohasharray
167673 +enable_so_max_msg_length_mei_client_properties_41791 max_msg_length mei_client_properties 0 41791 &enable_so_make_idx_node_fndecl_41791
167674 +enable_so_rx_pkt_length_rxpd_41805 rx_pkt_length rxpd 0 41805 NULL
167675 +enable_so_alloc_ksz_desc_info_41806 alloc ksz_desc_info 0 41806 NULL nohasharray
167676 +enable_so_outlen_mlx5_cmd_debug_41806 outlen mlx5_cmd_debug 0 41806 &enable_so_alloc_ksz_desc_info_41806
167677 +enable_so_udf_get_pblock_fndecl_41813 udf_get_pblock fndecl 0-4-2 41813 NULL nohasharray
167678 +enable_so_T9_reportid_min_mxt_data_41813 T9_reportid_min mxt_data 0 41813 &enable_so_udf_get_pblock_fndecl_41813
167679 +enable_so_sisusb_num_columns_sisusb_usb_data_41814 sisusb_num_columns sisusb_usb_data 0 41814 NULL nohasharray
167680 +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
167681 +enable_so_nports_cxgb4_lld_info_41815 nports cxgb4_lld_info 0 41815 NULL
167682 +enable_so_vmw_cmdbuf_alloc_space_fndecl_41823 vmw_cmdbuf_alloc_space fndecl 3 41823 NULL
167683 +enable_so_n_ssids_wmi_start_scan_arg_41826 n_ssids wmi_start_scan_arg 0 41826 NULL
167684 +enable_so_fcs_del_mlx4_en_rx_ring_41830 fcs_del mlx4_en_rx_ring 0 41830 NULL
167685 +enable_so_wdt87xx_get_string_fndecl_41835 wdt87xx_get_string fndecl 4 41835 NULL
167686 +enable_so_root_btrfs_super_block_41846 root btrfs_super_block 0 41846 NULL
167687 +enable_so_al_tr_number_drbd_device_41847 al_tr_number drbd_device 0 41847 NULL
167688 +enable_so_ar5523_cmd_write_fndecl_41852 ar5523_cmd_write fndecl 4 41852 NULL nohasharray
167689 +enable_so_free_bootmem_node_fndecl_41852 free_bootmem_node fndecl 3-2 41852 &enable_so_ar5523_cmd_write_fndecl_41852 nohasharray
167690 +enable_so_nf_setsockopt_fndecl_41852 nf_setsockopt fndecl 0 41852 &enable_so_free_bootmem_node_fndecl_41852
167691 +enable_so_tx_headroom_nfc_dev_41854 tx_headroom nfc_dev 0 41854 NULL nohasharray
167692 +enable_so_compatsize_xt_target_41854 compatsize xt_target 0 41854 &enable_so_tx_headroom_nfc_dev_41854
167693 +enable_so_max_header_size_smb_version_values_41855 max_header_size smb_version_values 0 41855 NULL
167694 +enable_so_dm_add_exception_fndecl_41858 dm_add_exception fndecl 3-2 41858 NULL nohasharray
167695 +enable_so_ino_nilfs_fid_41858 ino nilfs_fid 0 41858 &enable_so_dm_add_exception_fndecl_41858
167696 +enable_so_ext_tree_mark_written_fndecl_41860 ext_tree_mark_written fndecl 2-3 41860 NULL nohasharray
167697 +enable_so_nla_reserve_nohdr_fndecl_41860 nla_reserve_nohdr fndecl 2 41860 &enable_so_ext_tree_mark_written_fndecl_41860
167698 +enable_so_i2c_smbus_xfer_emulated_fndecl_41868 i2c_smbus_xfer_emulated fndecl 0 41868 NULL nohasharray
167699 +enable_so_ssb_bus_register_fndecl_41868 ssb_bus_register fndecl 3 41868 &enable_so_i2c_smbus_xfer_emulated_fndecl_41868
167700 +enable_so_snd_rme96_capture_getrate_fndecl_41874 snd_rme96_capture_getrate fndecl 0 41874 NULL
167701 +enable_so_md_size_sect_drbd_md_41886 md_size_sect drbd_md 0 41886 NULL
167702 +enable_so_rcvidx_fritz_bcs_41889 rcvidx fritz_bcs 0 41889 NULL
167703 +enable_so_qib_rcvhdrcnt_vardecl_qib_iba7322_c_41890 qib_rcvhdrcnt vardecl_qib_iba7322.c 0 41890 NULL
167704 +enable_so_RequestFrameSize__MSG_IOC_FACTS_REPLY_41895 RequestFrameSize _MSG_IOC_FACTS_REPLY 0 41895 NULL
167705 +enable_so_from_seq_file_41897 from seq_file 0 41897 NULL
167706 +enable_so_mem_unit_sysinfo_41901 mem_unit sysinfo 0 41901 NULL
167707 +enable_so_wm8900_set_fll_fndecl_41903 wm8900_set_fll fndecl 3-4 41903 NULL
167708 +enable_so_length_zoran_sync_41909 length zoran_sync 0 41909 NULL
167709 +enable_so_vid_batadv_tvlv_tt_vlan_data_41912 vid batadv_tvlv_tt_vlan_data 0 41912 NULL
167710 +enable_so_raw_decoder_line_size_vbi_info_41920 raw_decoder_line_size vbi_info 0 41920 NULL
167711 +enable_so_b_read_mon_reader_bin_41923 b_read mon_reader_bin 0 41923 NULL nohasharray
167712 +enable_so_print_endpoint_stat_fndecl_41923 print_endpoint_stat fndecl 0-4 41923 &enable_so_b_read_mon_reader_bin_41923
167713 +enable_so_wil_pmc_llseek_fndecl_41924 wil_pmc_llseek fndecl 2 41924 NULL
167714 +enable_so_dm_complete_request_fndecl_41925 dm_complete_request fndecl 2 41925 NULL
167715 +enable_so_byte_cnt_mthca_cqe_41927 byte_cnt mthca_cqe 0 41927 NULL
167716 +enable_so_regmap_encx24j600_sfr_read_fndecl_41930 regmap_encx24j600_sfr_read fndecl 4 41930 NULL
167717 +enable_so_whci_n_caps_fndecl_41932 whci_n_caps fndecl 0 41932 NULL
167718 +enable_so_ss_nblocks_nilfs_segment_summary_41935 ss_nblocks nilfs_segment_summary 0 41935 NULL
167719 +enable_so_rx_rx_done_read_fndecl_41938 rx_rx_done_read fndecl 3 41938 NULL
167720 +enable_so_n_sel_arg_struct_41940 n sel_arg_struct 0 41940 NULL
167721 +enable_so_rmmio_size_cirrus_device_41950 rmmio_size cirrus_device 0 41950 NULL
167722 +enable_so_smb_buf_length_smb_hdr_41959 smb_buf_length smb_hdr 0 41959 NULL nohasharray
167723 +enable_so_kmem_zalloc_greedy_fndecl_41959 kmem_zalloc_greedy fndecl 3-2 41959 &enable_so_smb_buf_length_smb_hdr_41959
167724 +enable_so_ide_init_sg_cmd_fndecl_41962 ide_init_sg_cmd fndecl 2 41962 NULL
167725 +enable_so_xfs_hex_dump_fndecl_41963 xfs_hex_dump fndecl 2 41963 NULL
167726 +enable_so_relay_open_fndecl_41964 relay_open fndecl 3-4 41964 NULL nohasharray
167727 +enable_so_ccp_reverse_get_dm_area_fndecl_41964 ccp_reverse_get_dm_area fndecl 3 41964 &enable_so_relay_open_fndecl_41964 nohasharray
167728 +enable_so_connector_dcb_output_41964 connector dcb_output 0 41964 &enable_so_ccp_reverse_get_dm_area_fndecl_41964 nohasharray
167729 +enable_so_kmalloc_parameter_fndecl_41964 kmalloc_parameter fndecl 1 41964 &enable_so_connector_dcb_output_41964
167730 +enable_so_n_rbuf_srpt_send_ioctx_41965 n_rbuf srpt_send_ioctx 0 41965 NULL
167731 +enable_so_length_ccp_dm_workarea_41966 length ccp_dm_workarea 0 41966 NULL
167732 +enable_so_ctl_mapbase_timberdale_device_41969 ctl_mapbase timberdale_device 0 41969 NULL
167733 +enable_so_width_fb_copyarea_41973 width fb_copyarea 0 41973 NULL
167734 +enable_so_hsync_ast_vbios_enhtable_41977 hsync ast_vbios_enhtable 0 41977 NULL nohasharray
167735 +enable_so_max_req_queues_qla_hw_data_41977 max_req_queues qla_hw_data 0 41977 &enable_so_hsync_ast_vbios_enhtable_41977
167736 +enable_so_f3_id_amd64_family_type_41979 f3_id amd64_family_type 0 41979 NULL
167737 +enable_so___send_control_msg_fndecl_41986 __send_control_msg fndecl 2-0 41986 NULL
167738 +enable_so_va_end_vmap_area_41988 va_end vmap_area 0 41988 NULL
167739 +enable_so_snd_pcm_oss_read1_fndecl_41992 snd_pcm_oss_read1 fndecl 3 41992 NULL
167740 +enable_so_snd_opl4_mem_proc_read_fndecl_41997 snd_opl4_mem_proc_read fndecl 5 41997 NULL
167741 +enable_so_total_byte_count_els_sts_entry_24xx_41999 total_byte_count els_sts_entry_24xx 0 41999 NULL
167742 +enable_so_vb2_vmalloc_attach_dmabuf_fndecl_42001 vb2_vmalloc_attach_dmabuf fndecl 3 42001 NULL
167743 +enable_so_selinux_secctx_to_secid_fndecl_42003 selinux_secctx_to_secid fndecl 2 42003 NULL
167744 +enable_so_set_flicker_fndecl_42011 set_flicker fndecl 0 42011 NULL
167745 +enable_so_batadv_tt_global_hash_count_fndecl_42014 batadv_tt_global_hash_count fndecl 3 42014 NULL
167746 +enable_so_svc_rdma_xdr_decode_req_fndecl_42015 svc_rdma_xdr_decode_req fndecl 0 42015 NULL nohasharray
167747 +enable_so_pci_add_new_bus_fndecl_42015 pci_add_new_bus fndecl 3 42015 &enable_so_svc_rdma_xdr_decode_req_fndecl_42015
167748 +enable_so___ieee80211_start_rx_ba_session_fndecl_42023 __ieee80211_start_rx_ba_session fndecl 7 42023 NULL
167749 +enable_so_seq_ports_snd_emu10k1_synth_arg_42026 seq_ports snd_emu10k1_synth_arg 0 42026 NULL
167750 +enable_so_do_mem_probe_fndecl_42028 do_mem_probe fndecl 3-2 42028 NULL nohasharray
167751 +enable_so_copy_nodes_to_user_fndecl_42028 copy_nodes_to_user fndecl 2 42028 &enable_so_do_mem_probe_fndecl_42028
167752 +enable_so_mwifiex_11n_create_rx_reorder_tbl_fndecl_42029 mwifiex_11n_create_rx_reorder_tbl fndecl 4 42029 NULL
167753 +enable_so_spidev_compat_ioctl_fndecl_42033 spidev_compat_ioctl fndecl 2 42033 NULL
167754 +enable_so_ctrl_frame_len_brcmf_sdio_42037 ctrl_frame_len brcmf_sdio 0 42037 NULL
167755 +enable_so_reiserfs_new_inode_fndecl_42039 reiserfs_new_inode fndecl 5 42039 NULL
167756 +enable_so_rx_hr_cfv_info_42044 rx_hr cfv_info 0 42044 NULL
167757 +enable_so_num_tx_qp_i40e_hw_capabilities_42045 num_tx_qp i40e_hw_capabilities 0 42045 NULL nohasharray
167758 +enable_so_num_tid_range_42045 num tid_range 0 42045 &enable_so_num_tx_qp_i40e_hw_capabilities_42045
167759 +enable_so_PortSCSIID__MSG_PORT_FACTS_REPLY_42048 PortSCSIID _MSG_PORT_FACTS_REPLY 0 42048 NULL
167760 +enable_so_regmap_multi_reg_write_fndecl_42049 regmap_multi_reg_write fndecl 3 42049 NULL
167761 +enable_so_sel_write_load_fndecl_42053 sel_write_load fndecl 3 42053 NULL
167762 +enable_so_kvm_init_fndecl_42057 kvm_init fndecl 2-3 42057 NULL nohasharray
167763 +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
167764 +enable_so_fat_add_new_entries_fndecl_42062 fat_add_new_entries fndecl 0 42062 NULL
167765 +enable_so_blk_limits_io_min_fndecl_42065 blk_limits_io_min fndecl 2 42065 NULL nohasharray
167766 +enable_so_b_flags_ivtv_buffer_42065 b_flags ivtv_buffer 0 42065 &enable_so_blk_limits_io_min_fndecl_42065
167767 +enable_so_frag_size_ipv6_pinfo_42073 frag_size ipv6_pinfo 0 42073 NULL
167768 +enable_so_nci_hci_send_event_fndecl_42074 nci_hci_send_event fndecl 5 42074 NULL
167769 +enable_so_ieee80211_scan_results_fndecl_42078 ieee80211_scan_results fndecl 0 42078 NULL
167770 +enable_so_mlx4_ib_rereg_user_mr_fndecl_42079 mlx4_ib_rereg_user_mr fndecl 3-4 42079 NULL nohasharray
167771 +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
167772 +enable_so_i2c_bus_vardecl_i2c_kempld_c_42082 i2c_bus vardecl_i2c-kempld.c 0 42082 NULL
167773 +enable_so_namelen_xenpf_symdata_42085 namelen xenpf_symdata 0 42085 NULL
167774 +enable_so_raw_issuer_size_x509_certificate_42091 raw_issuer_size x509_certificate 0 42091 NULL
167775 +enable_so_rtsx_pci_send_cmd_fndecl_42093 rtsx_pci_send_cmd fndecl 0 42093 NULL
167776 +enable_so_outsize_cros_ec_command_42095 outsize cros_ec_command 0 42095 NULL
167777 +enable_so_do_syslog_fndecl_42100 do_syslog fndecl 3 42100 NULL
167778 +enable_so_gtt_size_radeon_mc_42102 gtt_size radeon_mc 0 42102 NULL nohasharray
167779 +enable_so_proc_pid_attr_write_fndecl_42102 proc_pid_attr_write fndecl 3 42102 &enable_so_gtt_size_radeon_mc_42102
167780 +enable_so_value_xen_hvm_param_42103 value xen_hvm_param 0 42103 NULL
167781 +enable_so_image_offset_sd_42111 image_offset sd 0 42111 NULL
167782 +enable_so_efs_bmap_fndecl_42112 efs_bmap fndecl 0-2 42112 NULL
167783 +enable_so_jbd2_journal_init_dev_fndecl_42115 jbd2_journal_init_dev fndecl 5-3 42115 NULL
167784 +enable_so_ceph_tcp_sendmsg_fndecl_42116 ceph_tcp_sendmsg fndecl 0-4-3 42116 NULL
167785 +enable_so_xhci_alloc_stream_info_fndecl_42125 xhci_alloc_stream_info fndecl 3 42125 NULL
167786 +enable_so_divas_write_fndecl_42126 divas_write fndecl 3 42126 NULL
167787 +enable_so_mlx4_en_init_netdev_fndecl_42133 mlx4_en_init_netdev fndecl 2 42133 NULL
167788 +enable_so_smb2_sync_write_fndecl_42139 smb2_sync_write fndecl 6 42139 NULL
167789 +enable_so_snd_compr_write_fndecl_42144 snd_compr_write fndecl 3 42144 NULL
167790 +enable_so_uvc_alloc_urb_buffers_fndecl_42145 uvc_alloc_urb_buffers fndecl 0-3-2 42145 NULL
167791 +enable_so_ath6kl_wmi_set_lpreamble_cmd_fndecl_42153 ath6kl_wmi_set_lpreamble_cmd fndecl 2 42153 NULL
167792 +enable_so_remote_addr_rds_atomic_args_42154 remote_addr rds_atomic_args 0 42154 NULL
167793 +enable_so_channels_audioformat_42156 channels audioformat 0 42156 NULL nohasharray
167794 +enable_so_cnic_support_bnx2x_42156 cnic_support bnx2x 0 42156 &enable_so_channels_audioformat_42156
167795 +enable_so_bfad_iocmd_cfg_trunk_fndecl_42157 bfad_iocmd_cfg_trunk fndecl 0 42157 NULL
167796 +enable_so_status_de4x5_desc_42161 status de4x5_desc 0 42161 NULL
167797 +enable_so_height_em28xx_v4l2_42166 height em28xx_v4l2 0 42166 NULL
167798 +enable_so_s_root_block_reiserfs_super_block_v1_42167 s_root_block reiserfs_super_block_v1 0 42167 NULL
167799 +enable_so_copy_from_iter_nocache_fndecl_42168 copy_from_iter_nocache fndecl 2 42168 NULL
167800 +enable_so_next_bucket_prio_set_42171 next_bucket prio_set 0 42171 NULL
167801 +enable_so_start_file_extent_cluster_42173 start file_extent_cluster 0 42173 NULL
167802 +enable_so_block_size_msb_data_42179 block_size msb_data 0 42179 NULL
167803 +enable_so_id_sh_mobile_ceu_companion_42182 id sh_mobile_ceu_companion 0 42182 NULL
167804 +enable_so_stv0367_writeregs_fndecl_42183 stv0367_writeregs fndecl 4 42183 NULL
167805 +enable_so_s2255_fillbuff_fndecl_42189 s2255_fillbuff fndecl 3 42189 NULL
167806 +enable_so___team_options_register_fndecl_42198 __team_options_register fndecl 3 42198 NULL
167807 +enable_so_mc_handle_present_pte_fndecl_42199 mc_handle_present_pte fndecl 2 42199 NULL nohasharray
167808 +enable_so_afs_send_simple_reply_fndecl_42199 afs_send_simple_reply fndecl 3 42199 &enable_so_mc_handle_present_pte_fndecl_42199
167809 +enable_so_udl_alloc_urb_list_fndecl_42203 udl_alloc_urb_list fndecl 3 42203 NULL
167810 +enable_so_construct_key_and_link_fndecl_42210 construct_key_and_link fndecl 3 42210 NULL
167811 +enable_so_skb_push_fndecl_42213 skb_push fndecl 2 42213 NULL
167812 +enable_so_scan_padding_bytes_fndecl_42218 scan_padding_bytes fndecl 0 42218 NULL
167813 +enable_so_proto_tnl_ptk_info_42224 proto tnl_ptk_info 0 42224 NULL
167814 +enable_so_set_bredr_fndecl_42228 set_bredr fndecl 4 42228 NULL nohasharray
167815 +enable_so_diva_xdi_write_fndecl_42228 diva_xdi_write fndecl 4 42228 &enable_so_set_bredr_fndecl_42228
167816 +enable_so_dwMaxVideoFrameBufferSize_uvc_frame_42230 dwMaxVideoFrameBufferSize uvc_frame 0 42230 NULL
167817 +enable_so_nr_map_efi_memory_map_42232 nr_map efi_memory_map 0 42232 NULL nohasharray
167818 +enable_so_num_q_vectors_igb_adapter_42232 num_q_vectors igb_adapter 0 42232 &enable_so_nr_map_efi_memory_map_42232
167819 +enable_so_chunksize_mdp_superblock_1_42236 chunksize mdp_superblock_1 0 42236 NULL nohasharray
167820 +enable_so_max_data_size_irda_sock_42236 max_data_size irda_sock 0 42236 &enable_so_chunksize_mdp_superblock_1_42236
167821 +enable_so_scrollback_phys_max_vardecl_fbcon_c_42241 scrollback_phys_max vardecl_fbcon.c 0 42241 NULL
167822 +enable_so_len_wmi_tlv_42244 len wmi_tlv 0 42244 NULL
167823 +enable_so_buf_write_ptr_comedi_async_42247 buf_write_ptr comedi_async 0 42247 NULL
167824 +enable_so_nchunks_radeon_cs_parser_42251 nchunks radeon_cs_parser 0 42251 NULL
167825 +enable_so_read_kcore_fndecl_42259 read_kcore fndecl 3 42259 NULL
167826 +enable_so_bfad_iocmd_rport_get_attr_fndecl_42263 bfad_iocmd_rport_get_attr fndecl 0 42263 NULL
167827 +enable_so_snd_pcm_plug_write_transfer_fndecl_42268 snd_pcm_plug_write_transfer fndecl 3-0 42268 NULL
167828 +enable_so_sge_length_qib_sge_42274 sge_length qib_sge 0 42274 NULL
167829 +enable_so_write_file_spectral_period_fndecl_42275 write_file_spectral_period fndecl 3 42275 NULL
167830 +enable_so_if_sdio_read_scratch_fndecl_42279 if_sdio_read_scratch fndecl 0 42279 NULL
167831 +enable_so_cfg_sriov_nr_virtfn_lpfc_hba_42280 cfg_sriov_nr_virtfn lpfc_hba 0 42280 NULL nohasharray
167832 +enable_so_rx_pending_ethtool_ringparam_42280 rx_pending ethtool_ringparam 0 42280 &enable_so_cfg_sriov_nr_virtfn_lpfc_hba_42280
167833 +enable_so_append_to_buffer_fndecl_42285 append_to_buffer fndecl 3 42285 NULL
167834 +enable_so_reiserfs_xattr_set_handle_fndecl_42289 reiserfs_xattr_set_handle fndecl 5 42289 NULL
167835 +enable_so_pll_multiplier_smiapp_pll_42292 pll_multiplier smiapp_pll 0 42292 NULL
167836 +enable_so_efx_mcdi_rpc_async_fndecl_42298 efx_mcdi_rpc_async fndecl 4-5 42298 NULL
167837 +enable_so_generic_cont_expand_simple_fndecl_42301 generic_cont_expand_simple fndecl 2 42301 NULL nohasharray
167838 +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
167839 +enable_so_dcache_dir_lseek_fndecl_42308 dcache_dir_lseek fndecl 2 42308 NULL nohasharray
167840 +enable_so_iwch_reg_user_mr_fndecl_42308 iwch_reg_user_mr fndecl 2-3 42308 &enable_so_dcache_dir_lseek_fndecl_42308
167841 +enable_so_rproc_alloc_fndecl_42314 rproc_alloc fndecl 5 42314 NULL
167842 +enable_so_log_pg_sz_remote_qpn_mlx5_qp_context_42315 log_pg_sz_remote_qpn mlx5_qp_context 0 42315 NULL
167843 +enable_so_num_rcv_contexts_hfi1_devdata_42317 num_rcv_contexts hfi1_devdata 0 42317 NULL
167844 +enable_so_kvm_write_guest_page_fndecl_42320 kvm_write_guest_page fndecl 2-5 42320 NULL nohasharray
167845 +enable_so_pg_test_nfs_pageio_ops_42320 pg_test nfs_pageio_ops 0 42320 &enable_so_kvm_write_guest_page_fndecl_42320 nohasharray
167846 +enable_so_dbg_leb_write_fndecl_42320 dbg_leb_write fndecl 5-4 42320 &enable_so_pg_test_nfs_pageio_ops_42320
167847 +enable_so_gsi_base_mp_ioapic_gsi_42330 gsi_base mp_ioapic_gsi 0 42330 NULL
167848 +enable_so_ib_register_mad_agent_fndecl_42332 ib_register_mad_agent fndecl 2 42332 NULL
167849 +enable_so_soc_tplg_dapm_widget_dbytes_create_fndecl_42336 soc_tplg_dapm_widget_dbytes_create fndecl 2 42336 NULL
167850 +enable_so_mlx4_ib_alloc_cq_buf_fndecl_42345 mlx4_ib_alloc_cq_buf fndecl 3 42345 NULL
167851 +enable_so_fw_xcb_count_qla_hw_data_42354 fw_xcb_count qla_hw_data 0 42354 NULL
167852 +enable_so_nftl_readblock_fndecl_42358 nftl_readblock fndecl 2 42358 NULL
167853 +enable_so_gart_start_crash_elf_data_42365 gart_start crash_elf_data 0 42365 NULL nohasharray
167854 +enable_so_mixer_channels_device_info_42365 mixer_channels device_info 0 42365 &enable_so_gart_start_crash_elf_data_42365
167855 +enable_so_minor_mei_device_42366 minor mei_device 0 42366 NULL
167856 +enable_so_inbufBitCount_bunzip_data_42367 inbufBitCount bunzip_data 0 42367 NULL
167857 +enable_so_symbol_build_supp_rates_fndecl_42369 symbol_build_supp_rates fndecl 0 42369 NULL
167858 +enable_so_acc_len_rcv_sli3_42370 acc_len rcv_sli3 0 42370 NULL
167859 +enable_so_devpts_pty_new_fndecl_42373 devpts_pty_new fndecl 3 42373 NULL
167860 +enable_so_hid_report_len_fndecl_42374 hid_report_len fndecl 0 42374 NULL
167861 +enable_so_ext4_ext_get_access_fndecl_42377 ext4_ext_get_access fndecl 0 42377 NULL nohasharray
167862 +enable_so_salt_size_dm_verity_42377 salt_size dm_verity 0 42377 &enable_so_ext4_ext_get_access_fndecl_42377
167863 +enable_so_mlx5_wq_ll_get_size_fndecl_42379 mlx5_wq_ll_get_size fndecl 0 42379 NULL
167864 +enable_so_placement_offset_bnx2x_agg_info_42380 placement_offset bnx2x_agg_info 0 42380 NULL
167865 +enable_so___spi_validate_fndecl_42385 __spi_validate fndecl 0 42385 NULL
167866 +enable_so_num_cache_leaves_vardecl_intel_cacheinfo_c_42390 num_cache_leaves vardecl_intel_cacheinfo.c 0 42390 NULL
167867 +enable_so_remote_payload_max_nfc_digital_dev_42391 remote_payload_max nfc_digital_dev 0 42391 NULL
167868 +enable_so_no_of_vpath_vxgedev_42396 no_of_vpath vxgedev 0 42396 NULL
167869 +enable_so_module_alloc_fndecl_42397 module_alloc fndecl 1 42397 NULL
167870 +enable_so_prof_len_vardecl_profile_c_42405 prof_len vardecl_profile.c 0 42405 NULL
167871 +enable_so_maximum_v4l2_ctrl_42407 maximum v4l2_ctrl 0 42407 NULL
167872 +enable_so_dma_rxsize_vardecl_stmmac_main_c_42409 dma_rxsize vardecl_stmmac_main.c 0 42409 NULL
167873 +enable_so_vbi_read_fndecl_42410 vbi_read fndecl 3 42410 NULL
167874 +enable_so_length_mei_msg_hdr_42413 length mei_msg_hdr 0 42413 NULL
167875 +enable_so_data_offset_iscsi_r2t_info_42419 data_offset iscsi_r2t_info 0 42419 NULL
167876 +enable_so_defrag_lookup_extent_fndecl_42423 defrag_lookup_extent fndecl 2 42423 NULL
167877 +enable_so_hidraw_ioctl_fndecl_42425 hidraw_ioctl fndecl 2 42425 NULL
167878 +enable_so_bin_search_fndecl_42434 bin_search fndecl 0 42434 NULL
167879 +enable_so_write_file_spectral_fft_period_fndecl_42435 write_file_spectral_fft_period fndecl 3 42435 NULL
167880 +enable_so_s_sys_blocksize_omfs_sb_info_42439 s_sys_blocksize omfs_sb_info 0 42439 NULL
167881 +enable_so_rx_ring_size_jme_adapter_42440 rx_ring_size jme_adapter 0 42440 NULL
167882 +enable_so_max_srqs_mthca_dev_lim_42450 max_srqs mthca_dev_lim 0 42450 NULL nohasharray
167883 +enable_so_buffer_chain_size_fndecl_42450 buffer_chain_size fndecl 0 42450 &enable_so_max_srqs_mthca_dev_lim_42450
167884 +enable_so_rx_size_uart_8250_dma_42452 rx_size uart_8250_dma 0 42452 NULL nohasharray
167885 +enable_so_read_b43legacy_debugfs_fops_42452 read b43legacy_debugfs_fops 0 42452 &enable_so_rx_size_uart_8250_dma_42452
167886 +enable_so_inquiry_cache_dump_fndecl_42455 inquiry_cache_dump fndecl 0 42455 NULL
167887 +enable_so_s_cssize_ufs_sb_private_info_42456 s_cssize ufs_sb_private_info 0 42456 NULL
167888 +enable_so_num_srqs_mlx4_caps_42462 num_srqs mlx4_caps 0 42462 NULL
167889 +enable_so_rxq_max_tg3_42464 rxq_max tg3 0 42464 NULL
167890 +enable_so_rtl92ee_c2h_packet_handler_fndecl_42467 rtl92ee_c2h_packet_handler fndecl 3 42467 NULL
167891 +enable_so_amdgpu_vm_block_size_vardecl_42475 amdgpu_vm_block_size vardecl 0 42475 NULL nohasharray
167892 +enable_so_ext4_get_journal_fndecl_42475 ext4_get_journal fndecl 2 42475 &enable_so_amdgpu_vm_block_size_vardecl_42475
167893 +enable_so_wm9081_set_fll_fndecl_42479 wm9081_set_fll fndecl 3-4 42479 NULL
167894 +enable_so_ip_tunnel_xmit_fndecl_42480 ip_tunnel_xmit fndecl 4 42480 NULL
167895 +enable_so_num_adc_nids_hda_gen_spec_42481 num_adc_nids hda_gen_spec 0 42481 NULL nohasharray
167896 +enable_so_max_allowed_qxl_monitors_config_42481 max_allowed qxl_monitors_config 0 42481 &enable_so_num_adc_nids_hda_gen_spec_42481
167897 +enable_so_snd_vxpocket_new_fndecl_42483 snd_vxpocket_new fndecl 2 42483 NULL
167898 +enable_so_block_shift_befs_sb_info_42485 block_shift befs_sb_info 0 42485 NULL
167899 +enable_so_tot_len_pkt_gl_42487 tot_len pkt_gl 0 42487 NULL
167900 +enable_so_hid_sensor_client_cnt_sensor_hub_data_42488 hid_sensor_client_cnt sensor_hub_data 0 42488 NULL
167901 +enable_so_keylength_gss_krb5_enctype_42493 keylength gss_krb5_enctype 0 42493 NULL
167902 +enable_so_bnxt_rx_skb_fndecl_42495 bnxt_rx_skb fndecl 7 42495 NULL
167903 +enable_so_hsi_alloc_msg_fndecl_42496 hsi_alloc_msg fndecl 1 42496 NULL
167904 +enable_so_bpf_check_classic_fndecl_42501 bpf_check_classic fndecl 2 42501 NULL
167905 +enable_so_DataTransferLength_DAC960_V1_UserCommand_42502 DataTransferLength DAC960_V1_UserCommand 0 42502 NULL
167906 +enable_so_ath6kl_sdio_read_write_sync_fndecl_42504 ath6kl_sdio_read_write_sync fndecl 4 42504 NULL
167907 +enable_so_fs_start_efs_sb_info_42506 fs_start efs_sb_info 0 42506 NULL
167908 +enable_so_st21nfca_hci_dm_load_fndecl_42509 st21nfca_hci_dm_load fndecl 3 42509 NULL
167909 +enable_so_dec_cluster_info_page_fndecl_42521 dec_cluster_info_page fndecl 3 42521 NULL
167910 +enable_so_xfs_rtmodify_summary_fndecl_42522 xfs_rtmodify_summary fndecl 4-3 42522 NULL
167911 +enable_so_cn_netlink_send_mult_fndecl_42523 cn_netlink_send_mult fndecl 2 42523 NULL
167912 +enable_so_maxframe_size_fc_rport_priv_42527 maxframe_size fc_rport_priv 0 42527 NULL
167913 +enable_so_size_rx_desc_42538 size rx_desc 0 42538 NULL
167914 +enable_so_max_payload_len_pn533_frame_ops_42544 max_payload_len pn533_frame_ops 0 42544 NULL
167915 +enable_so_fdt_num_mem_rsv_fndecl_42546 fdt_num_mem_rsv fndecl 0 42546 NULL nohasharray
167916 +enable_so_num_reg_channel_bounds_42546 num reg_channel_bounds 0 42546 &enable_so_fdt_num_mem_rsv_fndecl_42546
167917 +enable_so_xfs_dir_cilookup_result_fndecl_42547 xfs_dir_cilookup_result fndecl 3 42547 NULL
167918 +enable_so_mr_page_size_srp_device_42550 mr_page_size srp_device 0 42550 NULL
167919 +enable_so_ocfs2_block_check_validate_bhs_fndecl_42557 ocfs2_block_check_validate_bhs fndecl 0 42557 NULL
167920 +enable_so_bfad_iocmd_diag_dport_start_fndecl_42560 bfad_iocmd_diag_dport_start fndecl 0 42560 NULL
167921 +enable_so_qla8044_write_optrom_data_fndecl_42561 qla8044_write_optrom_data fndecl 4 42561 NULL
167922 +enable_so_mtu_max_vardecl_42563 mtu_max vardecl 0 42563 NULL nohasharray
167923 +enable_so_ts_write_fndecl_42563 ts_write fndecl 3 42563 &enable_so_mtu_max_vardecl_42563
167924 +enable_so_do_write_orph_node_fndecl_42564 do_write_orph_node fndecl 2 42564 NULL nohasharray
167925 +enable_so_s_block_base_sysv_sb_info_42564 s_block_base sysv_sb_info 0 42564 &enable_so_do_write_orph_node_fndecl_42564 nohasharray
167926 +enable_so_qib_map_phys_fmr_fndecl_42564 qib_map_phys_fmr fndecl 4 42564 &enable_so_s_block_base_sysv_sb_info_42564
167927 +enable_so_usbtmc_write_fndecl_42567 usbtmc_write fndecl 3 42567 NULL
167928 +enable_so_mwifiex_send_addba_fndecl_42572 mwifiex_send_addba fndecl 2 42572 NULL
167929 +enable_so_ufs_read_cylinder_fndecl_42577 ufs_read_cylinder fndecl 2 42577 NULL
167930 +enable_so_max_target_id_mvumi_hba_42578 max_target_id mvumi_hba 0 42578 NULL
167931 +enable_so_irq_create_of_mapping_fndecl_42583 irq_create_of_mapping fndecl 0 42583 NULL
167932 +enable_so_tipc_send_packet_fndecl_42584 tipc_send_packet fndecl 3 42584 NULL
167933 +enable_so_sisusbcon_clear_fndecl_42586 sisusbcon_clear fndecl 5-3-4 42586 NULL
167934 +enable_so_map_region_fndecl_42587 map_region fndecl 1 42587 NULL
167935 +enable_so_bcm3510_readbytes_fndecl_42592 bcm3510_readbytes fndecl 4 42592 NULL
167936 +enable_so_name_len_jffs2_xattr_datum_42593 name_len jffs2_xattr_datum 0 42593 NULL
167937 +enable_so_cdc_ncm_set_dgram_size_fndecl_42594 cdc_ncm_set_dgram_size fndecl 2 42594 NULL nohasharray
167938 +enable_so_offset_dmi_ipmi_data_42594 offset dmi_ipmi_data 0 42594 &enable_so_cdc_ncm_set_dgram_size_fndecl_42594
167939 +enable_so_bsize_nfs_parsed_mount_data_42598 bsize nfs_parsed_mount_data 0 42598 NULL
167940 +enable_so_wrap_bcma_device_42599 wrap bcma_device 0 42599 NULL nohasharray
167941 +enable_so_reg_create_fndecl_42599 reg_create fndecl 5 42599 &enable_so_wrap_bcma_device_42599
167942 +enable_so_maxSenseBytes_mpt_ioctl_command_42600 maxSenseBytes mpt_ioctl_command 0 42600 NULL
167943 +enable_so_ilo_write_fndecl_42601 ilo_write fndecl 3 42601 NULL nohasharray
167944 +enable_so_ndev_init_isr_fndecl_42601 ndev_init_isr fndecl 3 42601 &enable_so_ilo_write_fndecl_42601
167945 +enable_so_nilfs_alloc_seg_bio_fndecl_42604 nilfs_alloc_seg_bio fndecl 2-3 42604 NULL
167946 +enable_so_qlcnic_82xx_calculate_msix_vector_fndecl_42609 qlcnic_82xx_calculate_msix_vector fndecl 0 42609 NULL
167947 +enable_so_n_channels_wmi_start_scan_arg_42610 n_channels wmi_start_scan_arg 0 42610 NULL
167948 +enable_so_vendor_diag_write_fndecl_42612 vendor_diag_write fndecl 3 42612 NULL
167949 +enable_so_hashsize_Qdisc_class_hash_42616 hashsize Qdisc_class_hash 0 42616 NULL
167950 +enable_so_size_ck804xrom_window_42617 size ck804xrom_window 0 42617 NULL
167951 +enable_so_HFP_kyrofb_info_42618 HFP kyrofb_info 0 42618 NULL
167952 +enable_so_user_regset_copyin_fndecl_42619 user_regset_copyin fndecl 7 42619 NULL
167953 +enable_so_vmw_kms_sou_do_surface_dirty_fndecl_42620 vmw_kms_sou_do_surface_dirty fndecl 8 42620 NULL nohasharray
167954 +enable_so_wlc_phy_loadsampletable_nphy_fndecl_42620 wlc_phy_loadsampletable_nphy fndecl 3 42620 &enable_so_vmw_kms_sou_do_surface_dirty_fndecl_42620
167955 +enable_so_opt_len_genevehdr_42621 opt_len genevehdr 0 42621 NULL
167956 +enable_so_nfs42_proc_deallocate_fndecl_42622 nfs42_proc_deallocate fndecl 2-3 42622 NULL
167957 +enable_so_ir_lirc_transmit_ir_fndecl_42624 ir_lirc_transmit_ir fndecl 3 42624 NULL
167958 +enable_so_length_bplus_leaf_node_42626 length bplus_leaf_node 0 42626 NULL
167959 +enable_so_rx_hdr_overflow_read_fndecl_42628 rx_hdr_overflow_read fndecl 3 42628 NULL
167960 +enable_so_pidlist_allocate_fndecl_42631 pidlist_allocate fndecl 1 42631 NULL
167961 +enable_so_dm_set_device_limits_fndecl_42632 dm_set_device_limits fndecl 3 42632 NULL
167962 +enable_so_lbs_cmd_async_fndecl_42634 lbs_cmd_async fndecl 4 42634 NULL
167963 +enable_so_valid_ide_tape_obj_42635 valid ide_tape_obj 0 42635 NULL
167964 +enable_so_find_rsb_dir_fndecl_42636 find_rsb_dir fndecl 3 42636 NULL
167965 +enable_so_snd_emu10k1_create_fndecl_42637 snd_emu10k1_create fndecl 5 42637 NULL nohasharray
167966 +enable_so_n_algs_wmfw_adsp2_id_hdr_42637 n_algs wmfw_adsp2_id_hdr 0 42637 &enable_so_snd_emu10k1_create_fndecl_42637
167967 +enable_so_brcmf_sdio_download_nvram_fndecl_42648 brcmf_sdio_download_nvram fndecl 3 42648 NULL
167968 +enable_so_fuse_getxattr_fndecl_42649 fuse_getxattr fndecl 4 42649 NULL
167969 +enable_so___kfifo_dma_out_finish_r_fndecl_42656 __kfifo_dma_out_finish_r fndecl 2 42656 NULL
167970 +enable_so_type_packet_type_42658 type packet_type 0 42658 NULL
167971 +enable_so_jffs2_scan_dirty_space_fndecl_42666 jffs2_scan_dirty_space fndecl 3 42666 NULL
167972 +enable_so_vOver_plus_panel_info_42670 vOver_plus panel_info 0 42670 NULL
167973 +enable_so_keyctl_get_security_fndecl_42673 keyctl_get_security fndecl 3 42673 NULL
167974 +enable_so_max_probe_length_iwl_ucode_capabilities_42674 max_probe_length iwl_ucode_capabilities 0 42674 NULL
167975 +enable_so_fdt_check_header_fndecl_42681 fdt_check_header fndecl 0 42681 NULL nohasharray
167976 +enable_so_mxm_shadow_rom_fetch_fndecl_42681 mxm_shadow_rom_fetch fndecl 4 42681 &enable_so_fdt_check_header_fndecl_42681
167977 +enable_so_num_rx_bds_bcm_sysport_priv_42683 num_rx_bds bcm_sysport_priv 0 42683 NULL
167978 +enable_so_ext4_trim_extent_fndecl_42684 ext4_trim_extent fndecl 0-3-4-2 42684 NULL nohasharray
167979 +enable_so_n_sections_pefile_context_42684 n_sections pefile_context 0 42684 &enable_so_ext4_trim_extent_fndecl_42684 nohasharray
167980 +enable_so_read_file_spectral_short_repeat_fndecl_42684 read_file_spectral_short_repeat fndecl 3 42684 &enable_so_n_sections_pefile_context_42684
167981 +enable_so_oom_adj_write_fndecl_42687 oom_adj_write fndecl 3 42687 NULL
167982 +enable_so_ccp_update_sg_workarea_fndecl_42688 ccp_update_sg_workarea fndecl 2 42688 NULL
167983 +enable_so_BufferLength_respQ_e_42691 BufferLength respQ_e 0 42691 NULL
167984 +enable_so_data_size_dm_ioctl_42701 data_size dm_ioctl 0 42701 NULL
167985 +enable_so_transport_lba_64_ext_fndecl_42705 transport_lba_64_ext fndecl 0 42705 NULL
167986 +enable_so_len_nfs4_layoutdriver_data_42714 len nfs4_layoutdriver_data 0 42714 NULL nohasharray
167987 +enable_so_reordering_tcp_sock_42714 reordering tcp_sock 0 42714 &enable_so_len_nfs4_layoutdriver_data_42714
167988 +enable_so_start_sect_hd_struct_42718 start_sect hd_struct 0 42718 NULL
167989 +enable_so_rcvtidcnt_qib_devdata_42719 rcvtidcnt qib_devdata 0 42719 NULL
167990 +enable_so_clsb_isar_hw_42720 clsb isar_hw 0 42720 NULL
167991 +enable_so_status_full_rx_done_desc_42726 status full_rx_done_desc 0 42726 NULL
167992 +enable_so_brcmf_fil_bsscfg_data_get_fndecl_42728 brcmf_fil_bsscfg_data_get fndecl 4 42728 NULL
167993 +enable_so_handle_abnormal_pfn_fndecl_42730 handle_abnormal_pfn fndecl 3 42730 NULL
167994 +enable_so_maxbcnt_aoedev_42731 maxbcnt aoedev 0 42731 NULL
167995 +enable_so_irq_domain_alloc_descs_fndecl_42732 irq_domain_alloc_descs fndecl 0 42732 NULL
167996 +enable_so_single_open_size_fndecl_42736 single_open_size fndecl 4 42736 NULL
167997 +enable_so_nilfs_skip_summary_info_fndecl_42739 nilfs_skip_summary_info fndecl 4-5 42739 NULL
167998 +enable_so_head_hid_debug_list_42742 head hid_debug_list 0 42742 NULL
167999 +enable_so_Ha_tvnorm_42743 Ha tvnorm 0 42743 NULL nohasharray
168000 +enable_so_tcp_adjust_pcount_fndecl_42743 tcp_adjust_pcount fndecl 3 42743 &enable_so_Ha_tvnorm_42743 nohasharray
168001 +enable_so_hfi1_sdma_comp_ring_size_vardecl_user_sdma_c_42743 hfi1_sdma_comp_ring_size vardecl_user_sdma.c 0 42743 &enable_so_tcp_adjust_pcount_fndecl_42743
168002 +enable_so_p54_parse_rssical_fndecl_42750 p54_parse_rssical fndecl 3 42750 NULL
168003 +enable_so_SyS_rt_sigpending_fndecl_42753 SyS_rt_sigpending fndecl 2 42753 NULL
168004 +enable_so_unmap_entire_bt_fndecl_42755 unmap_entire_bt fndecl 3 42755 NULL
168005 +enable_so_tcf_csum_skb_nextlayer_fndecl_42762 tcf_csum_skb_nextlayer fndecl 3 42762 NULL
168006 +enable_so_elems_v4l2_ctrl_42763 elems v4l2_ctrl 0 42763 NULL
168007 +enable_so_maxdev_blogic_adapter_42764 maxdev blogic_adapter 0 42764 NULL
168008 +enable_so_dc_block_number_disk_child_42766 dc_block_number disk_child 0 42766 NULL
168009 +enable_so_cmd_idx_rtsx_ucr_42770 cmd_idx rtsx_ucr 0 42770 NULL nohasharray
168010 +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
168011 +enable_so_read_file_frameerrors_fndecl_42770 read_file_frameerrors fndecl 3 42770 &enable_so_ie_len_wmi_start_scan_arg_42770
168012 +enable_so_fw_len_mwifiex_fw_image_42772 fw_len mwifiex_fw_image 0 42772 NULL
168013 +enable_so_sync_maxlen_ipvs_sync_daemon_cfg_42773 sync_maxlen ipvs_sync_daemon_cfg 0 42773 NULL
168014 +enable_so_skb_size_pxa168_eth_private_42775 skb_size pxa168_eth_private 0 42775 NULL
168015 +enable_so_hsr_get_max_mtu_fndecl_42776 hsr_get_max_mtu fndecl 0 42776 NULL
168016 +enable_so_lov_tgt_size_lov_obd_42782 lov_tgt_size lov_obd 0 42782 NULL
168017 +enable_so_rx_data_length_hso_serial_42783 rx_data_length hso_serial 0 42783 NULL
168018 +enable_so_usbnet_change_mtu_fndecl_42784 usbnet_change_mtu fndecl 2 42784 NULL nohasharray
168019 +enable_so_ssid_len_ath6kl_vif_42784 ssid_len ath6kl_vif 0 42784 &enable_so_usbnet_change_mtu_fndecl_42784
168020 +enable_so_offset_fuse_page_desc_42785 offset fuse_page_desc 0 42785 NULL
168021 +enable_so_memblock_add_region_fndecl_42790 memblock_add_region fndecl 1-2 42790 NULL
168022 +enable_so_xdr_encode_word_fndecl_42802 xdr_encode_word fndecl 2 42802 NULL
168023 +enable_so_SyS_fsetxattr_fndecl_42804 SyS_fsetxattr fndecl 4 42804 NULL
168024 +enable_so_ext4_quota_write_fndecl_42809 ext4_quota_write fndecl 5 42809 NULL nohasharray
168025 +enable_so_len_il3945_rx_frame_hdr_42809 len il3945_rx_frame_hdr 0 42809 &enable_so_ext4_quota_write_fndecl_42809
168026 +enable_so_nl80211_send_rx_assoc_fndecl_42811 nl80211_send_rx_assoc fndecl 4 42811 NULL
168027 +enable_so_fc_header_fndecl_42816 fc_header fndecl 3 42816 NULL
168028 +enable_so_usb_hcd_unlink_urb_fndecl_42819 usb_hcd_unlink_urb fndecl 2 42819 NULL
168029 +enable_so_sl_realloc_bufs_fndecl_42821 sl_realloc_bufs fndecl 2 42821 NULL
168030 +enable_so_m_agino_log_xfs_mount_42823 m_agino_log xfs_mount 0 42823 NULL
168031 +enable_so_lbs_highrssi_read_fndecl_42826 lbs_highrssi_read fndecl 3 42826 NULL
168032 +enable_so_clear_update_marker_fndecl_42827 clear_update_marker fndecl 3 42827 NULL
168033 +enable_so_ezusb_program_bytes_fndecl_42828 ezusb_program_bytes fndecl 4 42828 NULL
168034 +enable_so_rrpc_init_fndecl_42834 rrpc_init fndecl 3-4 42834 NULL
168035 +enable_so_dev_addr_fsl_edma_slave_config_42835 dev_addr fsl_edma_slave_config 0 42835 NULL
168036 +enable_so_pcifront_bus_write_fndecl_42836 pcifront_bus_write fndecl 5 42836 NULL
168037 +enable_so_decompress_compressor_42840 decompress compressor 0 42840 NULL
168038 +enable_so_memory_block_size_bytes_fndecl_42846 memory_block_size_bytes fndecl 0 42846 NULL
168039 +enable_so_old_oblock_dm_cache_migration_42847 old_oblock dm_cache_migration 0 42847 NULL
168040 +enable_so_int_in_endpointAddr_usb_yurex_42850 int_in_endpointAddr usb_yurex 0 42850 NULL
168041 +enable_so_ipoib_hard_header_fndecl_42855 ipoib_hard_header fndecl 3 42855 NULL nohasharray
168042 +enable_so_rdma_addr_size_fndecl_42855 rdma_addr_size fndecl 0 42855 &enable_so_ipoib_hard_header_fndecl_42855
168043 +enable_so_vxlan_remcsum_fndecl_42858 vxlan_remcsum fndecl 4-3 42858 NULL
168044 +enable_so_ext4_prepare_inline_data_fndecl_42863 ext4_prepare_inline_data fndecl 3 42863 NULL nohasharray
168045 +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
168046 +enable_so_SyS_set_mempolicy_fndecl_42867 SyS_set_mempolicy fndecl 3 42867 NULL
168047 +enable_so_mmio_start_vmw_private_42869 mmio_start vmw_private 0 42869 NULL
168048 +enable_so_register_memory_resource_fndecl_42873 register_memory_resource fndecl 2-1 42873 NULL
168049 +enable_so_dlfb_ops_write_fndecl_42885 dlfb_ops_write fndecl 3 42885 NULL
168050 +enable_so_snic_req_init_fndecl_42890 snic_req_init fndecl 2 42890 NULL
168051 +enable_so_reset_poll_ide_port_ops_42895 reset_poll ide_port_ops 0 42895 NULL nohasharray
168052 +enable_so_number_of_tds_fndecl_42895 number_of_tds fndecl 0 42895 &enable_so_reset_poll_ide_port_ops_42895
168053 +enable_so_init_bch_fndecl_42897 init_bch fndecl 1-2 42897 NULL
168054 +enable_so_memblock_find_in_range_node_fndecl_42905 memblock_find_in_range_node fndecl 0-2-1-3-4 42905 NULL
168055 +enable_so_name_length_spar_controlvm_parameters_header_42909 name_length spar_controlvm_parameters_header 0 42909 NULL
168056 +enable_so_vd_vblocknr_nilfs_vdesc_42910 vd_vblocknr nilfs_vdesc 0 42910 NULL
168057 +enable_so_rts51x_bulk_transport_fndecl_42911 rts51x_bulk_transport fndecl 6 42911 NULL
168058 +enable_so_length_drm_property_blob_42912 length drm_property_blob 0 42912 NULL
168059 +enable_so_do_command_extended_fndecl_42913 do_command_extended fndecl 0 42913 NULL
168060 +enable_so_clkin_adf4350_state_42914 clkin adf4350_state 0 42914 NULL
168061 +enable_so_i915_gem_stolen_insert_node_fndecl_42918 i915_gem_stolen_insert_node fndecl 3 42918 NULL
168062 +enable_so_st21nfca_hci_dm_field_generator_fndecl_42926 st21nfca_hci_dm_field_generator fndecl 3 42926 NULL
168063 +enable_so_carl9170_handle_command_response_fndecl_42930 carl9170_handle_command_response fndecl 3 42930 NULL
168064 +enable_so_wMaxInputLength_i2c_hid_desc_42932 wMaxInputLength i2c_hid_desc 0 42932 NULL
168065 +enable_so_bnx2x_vf_mcast_fndecl_42933 bnx2x_vf_mcast fndecl 4 42933 NULL
168066 +enable_so_max_mad_size_ib_port_immutable_42934 max_mad_size ib_port_immutable 0 42934 NULL
168067 +enable_so_nblocks_nvme_user_io_42935 nblocks nvme_user_io 0 42935 NULL
168068 +enable_so_mc_vram_size_radeon_mc_42937 mc_vram_size radeon_mc 0 42937 NULL
168069 +enable_so_spi_bpw_vardecl_ifx6x60_c_42939 spi_bpw vardecl_ifx6x60.c 0 42939 NULL
168070 +enable_so_length__SCADESC_42942 length _SCADESC 0 42942 NULL
168071 +enable_so_hippi_change_mtu_fndecl_42953 hippi_change_mtu fndecl 2 42953 NULL
168072 +enable_so_vb2_dc_get_userptr_fndecl_42957 vb2_dc_get_userptr fndecl 2-3 42957 NULL
168073 +enable_so_brcmf_usb_tx_ctlpkt_fndecl_42958 brcmf_usb_tx_ctlpkt fndecl 3 42958 NULL
168074 +enable_so_kernfs_iop_setxattr_fndecl_42959 kernfs_iop_setxattr fndecl 4 42959 NULL
168075 +enable_so_gpio_count_async_state_42965 gpio_count async_state 0 42965 NULL nohasharray
168076 +enable_so_udf_get_block_fndecl_42965 udf_get_block fndecl 2 42965 &enable_so_gpio_count_async_state_42965
168077 +enable_so___pskb_copy_fclone_fndecl_42969 __pskb_copy_fclone fndecl 2 42969 NULL
168078 +enable_so_periods_max_snd_pcm_hardware_42979 periods_max snd_pcm_hardware 0 42979 NULL
168079 +enable_so_brcmf_sdiod_send_buf_fndecl_42982 brcmf_sdiod_send_buf fndecl 3 42982 NULL
168080 +enable_so_len_kvaser_msg_42994 len kvaser_msg 0 42994 NULL
168081 +enable_so_hw_token_fotg210_qh_hw_42995 hw_token fotg210_qh_hw 0 42995 NULL
168082 +enable_so_num_mappings_nd_region_desc_42998 num_mappings nd_region_desc 0 42998 NULL nohasharray
168083 +enable_so_ea_len_fndecl_42998 ea_len fndecl 0 42998 &enable_so_num_mappings_nd_region_desc_42998
168084 +enable_so_buf_size_ivtv_stream_43002 buf_size ivtv_stream 0 43002 NULL
168085 +enable_so_header_len_fndecl_43003 header_len fndecl 0 43003 NULL
168086 +enable_so_drm_mm_insert_helper_fndecl_43005 drm_mm_insert_helper fndecl 3 43005 NULL
168087 +enable_so_btrfs_check_shared_fndecl_43007 btrfs_check_shared fndecl 5 43007 NULL
168088 +enable_so_pkt_size_be_rx_compl_info_43008 pkt_size be_rx_compl_info 0 43008 NULL
168089 +enable_so_ide_inb_fndecl_43010 ide_inb fndecl 0 43010 NULL
168090 +enable_so_icl_agbno_xfs_icreate_log_43012 icl_agbno xfs_icreate_log 0 43012 NULL
168091 +enable_so_len_i2c_msg_43014 len i2c_msg 0 43014 NULL nohasharray
168092 +enable_so_obd_ioctl_popdata_fndecl_43014 obd_ioctl_popdata fndecl 3 43014 &enable_so_len_i2c_msg_43014
168093 +enable_so_ath6kl_wmi_reconnect_cmd_fndecl_43017 ath6kl_wmi_reconnect_cmd fndecl 2 43017 NULL nohasharray
168094 +enable_so_phonet_rxq_size_vardecl_f_phonet_c_43017 phonet_rxq_size vardecl_f_phonet.c 0 43017 &enable_so_ath6kl_wmi_reconnect_cmd_fndecl_43017
168095 +enable_so_r5l_log_write_empty_meta_block_fndecl_43018 r5l_log_write_empty_meta_block fndecl 2 43018 NULL
168096 +enable_so_PacketLength__MSG_LAN_RECEIVE_POST_REPLY_43028 PacketLength _MSG_LAN_RECEIVE_POST_REPLY 0 43028 NULL
168097 +enable_so_a_bss_exec_43030 a_bss exec 0 43030 NULL
168098 +enable_so_usHActive__ATOM_DTD_FORMAT_43031 usHActive _ATOM_DTD_FORMAT 0 43031 NULL nohasharray
168099 +enable_so_count_ixgbe_ring_43031 count ixgbe_ring 0 43031 &enable_so_usHActive__ATOM_DTD_FORMAT_43031
168100 +enable_so_pagl_leftrec_xfs_perag_43033 pagl_leftrec xfs_perag 0 43033 NULL
168101 +enable_so_channels_max_snd_usb_substream_43034 channels_max snd_usb_substream 0 43034 NULL
168102 +enable_so_qpc_entry_sz_mthca_dev_lim_43040 qpc_entry_sz mthca_dev_lim 0 43040 NULL
168103 +enable_so_copy_page_to_iter_iovec_fndecl_43041 copy_page_to_iter_iovec fndecl 3 43041 NULL
168104 +enable_so_init_chip_wc_pat_fndecl_43043 init_chip_wc_pat fndecl 2 43043 NULL
168105 +enable_so_stmmac_change_mtu_fndecl_43052 stmmac_change_mtu fndecl 2 43052 NULL
168106 +enable_so_logical_block_size_queue_limits_43053 logical_block_size queue_limits 0 43053 NULL
168107 +enable_so_s_reserved_gdt_blocks_ext4_super_block_43054 s_reserved_gdt_blocks ext4_super_block 0 43054 NULL
168108 +enable_so_inode_number_squashfs_base_inode_43062 inode_number squashfs_base_inode 0 43062 NULL nohasharray
168109 +enable_so_acpi_dev_get_ioresource_fndecl_43062 acpi_dev_get_ioresource fndecl 3-2 43062 &enable_so_inode_number_squashfs_base_inode_43062
168110 +enable_so_len_ib_ucm_rep_43064 len ib_ucm_rep 0 43064 NULL
168111 +enable_so_len_srp_direct_buf_43066 len srp_direct_buf 0 43066 NULL
168112 +enable_so_raw_skid_size_pkcs7_parse_context_43081 raw_skid_size pkcs7_parse_context 0 43081 NULL
168113 +enable_so_output_buffer_size_vardecl_seq_midi_c_43084 output_buffer_size vardecl_seq_midi.c 0 43084 NULL
168114 +enable_so_bttv_prepare_buffer_fndecl_43088 bttv_prepare_buffer fndecl 6-5 43088 NULL
168115 +enable_so_SyS_sched_getaffinity_fndecl_43089 SyS_sched_getaffinity fndecl 2 43089 NULL
168116 +enable_so_i2c_wr_max_cx24116_config_43094 i2c_wr_max cx24116_config 0 43094 NULL
168117 +enable_so__create_message_fndecl_43096 _create_message fndecl 2 43096 NULL
168118 +enable_so_printf_size_mon_reader_text_43097 printf_size mon_reader_text 0 43097 NULL
168119 +enable_so_if_sdio_read_rx_unit_fndecl_43099 if_sdio_read_rx_unit fndecl 0 43099 NULL
168120 +enable_so_sector_badblocks_43102 sector badblocks 0 43102 NULL
168121 +enable_so_cyttsp_i2c_write_block_data_fndecl_43104 cyttsp_i2c_write_block_data fndecl 4 43104 NULL
168122 +enable_so_xlog_recover_add_to_trans_fndecl_43108 xlog_recover_add_to_trans fndecl 4 43108 NULL
168123 +enable_so___rounddown_pow_of_two_fndecl_43111 __rounddown_pow_of_two fndecl 0 43111 NULL
168124 +enable_so_ore_verify_layout_fndecl_43114 ore_verify_layout fndecl 1 43114 NULL nohasharray
168125 +enable_so_valuelen_hi_extended_attribute_43114 valuelen_hi extended_attribute 0 43114 &enable_so_ore_verify_layout_fndecl_43114
168126 +enable_so_range_max_regmap_range_43116 range_max regmap_range 0 43116 NULL
168127 +enable_so_rx_fcs_err_read_fndecl_43119 rx_fcs_err_read fndecl 3 43119 NULL
168128 +enable_so_meta_prod_netrx_pending_operations_43121 meta_prod netrx_pending_operations 0 43121 NULL nohasharray
168129 +enable_so_of_alias_get_id_fndecl_43121 of_alias_get_id fndecl 0 43121 &enable_so_meta_prod_netrx_pending_operations_43121
168130 +enable_so_prepare_elf64_ram_headers_callback_fndecl_43123 prepare_elf64_ram_headers_callback fndecl 1-2 43123 NULL
168131 +enable_so_output_pool_snd_seq_client_pool_43126 output_pool snd_seq_client_pool 0 43126 NULL
168132 +enable_so_fm10k_change_mtu_fndecl_43135 fm10k_change_mtu fndecl 2 43135 NULL
168133 +enable_so_pcf8563_read_block_data_fndecl_43139 pcf8563_read_block_data fndecl 3 43139 NULL
168134 +enable_so_Size_aac_fibhdr_43144 Size aac_fibhdr 0 43144 NULL
168135 +enable_so_btrfs_create_subvol_root_fndecl_43148 btrfs_create_subvol_root fndecl 4 43148 NULL
168136 +enable_so_xfs_rtmodify_range_fndecl_43150 xfs_rtmodify_range fndecl 3 43150 NULL
168137 +enable_so_bblog_offset_mdp_superblock_1_43154 bblog_offset mdp_superblock_1 0 43154 NULL
168138 +enable_so_kvm_vcpu_gfn_to_pfn_fndecl_43158 kvm_vcpu_gfn_to_pfn fndecl 2 43158 NULL
168139 +enable_so___f2fs_setxattr_fndecl_43162 __f2fs_setxattr fndecl 5 43162 NULL
168140 +enable_so_filename_size_ecryptfs_filename_43164 filename_size ecryptfs_filename 0 43164 NULL nohasharray
168141 +enable_so_doc_config_location_vardecl_diskonchip_c_43164 doc_config_location vardecl_diskonchip.c 0 43164 &enable_so_filename_size_ecryptfs_filename_43164
168142 +enable_so_hpi_read_word_fndecl_43165 hpi_read_word fndecl 0 43165 NULL
168143 +enable_so_xlog_bread_noalign_fndecl_43170 xlog_bread_noalign fndecl 2 43170 NULL
168144 +enable_so_byte_count_il_rx_mpdu_res_start_43171 byte_count il_rx_mpdu_res_start 0 43171 NULL
168145 +enable_so_packetizeRx_fndecl_43175 packetizeRx fndecl 3 43175 NULL
168146 +enable_so_getdqbuf_fndecl_43183 getdqbuf fndecl 1 43183 NULL
168147 +enable_so_unxlate_dev_mem_ptr_fndecl_43184 unxlate_dev_mem_ptr fndecl 1 43184 NULL nohasharray
168148 +enable_so_aoechr_write_fndecl_43184 aoechr_write fndecl 3 43184 &enable_so_unxlate_dev_mem_ptr_fndecl_43184
168149 +enable_so_length_ib_mac_iocb_rsp_43186 length ib_mac_iocb_rsp 0 43186 NULL
168150 +enable_so_block_end_dm_cell_key_43191 block_end dm_cell_key 0 43191 NULL
168151 +enable_so_if_spi_host_to_card_fndecl_43193 if_spi_host_to_card fndecl 4 43193 NULL
168152 +enable_so_msi_assign_ce_max_ath10k_hw_values_43194 msi_assign_ce_max ath10k_hw_values 0 43194 NULL
168153 +enable_so_nilfs_cpfile_block_get_snapshot_list_fndecl_43198 nilfs_cpfile_block_get_snapshot_list fndecl 2 43198 NULL
168154 +enable_so_tidno_ath_atx_tid_43202 tidno ath_atx_tid 0 43202 NULL nohasharray
168155 +enable_so_rx_data_eaten_rxrpc_call_43202 rx_data_eaten rxrpc_call 0 43202 &enable_so_tidno_ath_atx_tid_43202
168156 +enable_so_root_id___prelim_ref_43204 root_id __prelim_ref 0 43204 NULL
168157 +enable_so_dm_bufio_release_move_fndecl_43207 dm_bufio_release_move fndecl 2 43207 NULL
168158 +enable_so_device_id_ipmi_device_id_43213 device_id ipmi_device_id 0 43213 NULL
168159 +enable_so_nr_efi_runtime_map_vardecl_runtime_map_c_43216 nr_efi_runtime_map vardecl_runtime-map.c 0 43216 NULL nohasharray
168160 +enable_so_tc_to_nexactf_fw_pfvf_cmd_43216 tc_to_nexactf fw_pfvf_cmd 0 43216 &enable_so_nr_efi_runtime_map_vardecl_runtime_map_c_43216
168161 +enable_so_ramdisk_size_setup_header_43217 ramdisk_size setup_header 0 43217 NULL nohasharray
168162 +enable_so_try_async_pf_fndecl_43217 try_async_pf fndecl 3 43217 &enable_so_ramdisk_size_setup_header_43217
168163 +enable_so_get_data_block_dio_fndecl_43221 get_data_block_dio fndecl 2 43221 NULL
168164 +enable_so_i2c_add_mux_adapter_fndecl_43222 i2c_add_mux_adapter fndecl 4 43222 NULL
168165 +enable_so_mic_len_ieee80211_cipher_scheme_43227 mic_len ieee80211_cipher_scheme 0 43227 NULL
168166 +enable_so_nvif_object_mthd_fndecl_43235 nvif_object_mthd fndecl 4 43235 NULL
168167 +enable_so_vlan_tag_be_async_event_qnq_43239 vlan_tag be_async_event_qnq 0 43239 NULL
168168 +enable_so_send_write_fndecl_43242 send_write fndecl 2-0 43242 NULL
168169 +enable_so_actual_size_rfd_43243 actual_size rfd 0 43243 NULL
168170 +enable_so_sb_rextents_xfs_sb_43244 sb_rextents xfs_sb 0 43244 NULL
168171 +enable_so_num_vc_iadev_priv_43250 num_vc iadev_priv 0 43250 NULL
168172 +enable_so_agp_create_user_memory_fndecl_43256 agp_create_user_memory fndecl 1 43256 NULL
168173 +enable_so_regspacing_si_sm_io_43277 regspacing si_sm_io 0 43277 NULL
168174 +enable_so_persistent_ram_new_fndecl_43278 persistent_ram_new fndecl 2-1 43278 NULL
168175 +enable_so_tx_modulus_cdc_ncm_ctx_43289 tx_modulus cdc_ncm_ctx 0 43289 NULL
168176 +enable_so_size_oid_t_43292 size oid_t 0 43292 NULL
168177 +enable_so_ip_vs_icmp_xmit_v6_fndecl_43294 ip_vs_icmp_xmit_v6 fndecl 4 43294 NULL nohasharray
168178 +enable_so_of_property_read_string_array_fndecl_43294 of_property_read_string_array fndecl 0 43294 &enable_so_ip_vs_icmp_xmit_v6_fndecl_43294
168179 +enable_so_transfer_dma_urb_43305 transfer_dma urb 0 43305 NULL
168180 +enable_so_total_nic_func_qlcnic_hardware_context_43307 total_nic_func qlcnic_hardware_context 0 43307 NULL
168181 +enable_so_rio_request_outb_mbox_fndecl_43309 rio_request_outb_mbox fndecl 3 43309 NULL
168182 +enable_so_add_to_list_fndecl_43311 add_to_list fndecl 5-4 43311 NULL
168183 +enable_so_header_len_gether_43313 header_len gether 0 43313 NULL
168184 +enable_so_smsc9420_rx_handoff_fndecl_43315 smsc9420_rx_handoff fndecl 3 43315 NULL
168185 +enable_so_group_count_ore_layout_43325 group_count ore_layout 0 43325 NULL
168186 +enable_so_qib_refresh_qsfp_cache_fndecl_43328 qib_refresh_qsfp_cache fndecl 0 43328 NULL
168187 +enable_so_lpddr_write_buffers_fndecl_43330 lpddr_write_buffers fndecl 3 43330 NULL
168188 +enable_so_max_packet_bytes_ua101_stream_43333 max_packet_bytes ua101_stream 0 43333 NULL
168189 +enable_so_s5c73m3_spi_read_fndecl_43335 s5c73m3_spi_read fndecl 4-3 43335 NULL
168190 +enable_so_b_num_l1oip_43336 b_num l1oip 0 43336 NULL
168191 +enable_so_file_size_hpfs_dirent_43338 file_size hpfs_dirent 0 43338 NULL
168192 +enable_so_vactive_videomode_43345 vactive videomode 0 43345 NULL
168193 +enable_so_wake_packet_bufsize_iwl_wowlan_status_data_43348 wake_packet_bufsize iwl_wowlan_status_data 0 43348 NULL nohasharray
168194 +enable_so_debugfs_read_fndecl_43348 debugfs_read fndecl 3 43348 &enable_so_wake_packet_bufsize_iwl_wowlan_status_data_43348
168195 +enable_so___kmalloc_node_track_caller_fndecl_43349 __kmalloc_node_track_caller fndecl 1 43349 NULL
168196 +enable_so_pktsz_fifo_43351 pktsz fifo 0 43351 NULL nohasharray
168197 +enable_so_entry_size_xpc_channel_43351 entry_size xpc_channel 0 43351 &enable_so_pktsz_fifo_43351
168198 +enable_so_header_len_dst_entry_43355 header_len dst_entry 0 43355 NULL nohasharray
168199 +enable_so_get_module_load_offset_fndecl_43355 get_module_load_offset fndecl 0 43355 &enable_so_header_len_dst_entry_43355
168200 +enable_so_inftl_write_fndecl_43357 inftl_write fndecl 2 43357 NULL
168201 +enable_so_bulk_out_endpoint_edgeport_serial_43358 bulk_out_endpoint edgeport_serial 0 43358 NULL
168202 +enable_so_get_subdir_fndecl_43366 get_subdir fndecl 3 43366 NULL
168203 +enable_so_compat_SyS_rt_sigpending_fndecl_43367 compat_SyS_rt_sigpending fndecl 2 43367 NULL
168204 +enable_so_port_count_rocker_43373 port_count rocker 0 43373 NULL
168205 +enable_so_snd_usb_endpoint_next_packet_size_fndecl_43377 snd_usb_endpoint_next_packet_size fndecl 0 43377 NULL
168206 +enable_so_dtcs033_pkt_scan_fndecl_43381 dtcs033_pkt_scan fndecl 3 43381 NULL
168207 +enable_so_tci_Vmxnet3_RxCompDesc_43383 tci Vmxnet3_RxCompDesc 0 43383 NULL
168208 +enable_so_mthca_alloc_sqp_fndecl_43386 mthca_alloc_sqp fndecl 8 43386 NULL
168209 +enable_so_sca_detect_ram_fndecl_43387 sca_detect_ram fndecl 0 43387 NULL
168210 +enable_so_x509_note_signature_fndecl_43388 x509_note_signature fndecl 5 43388 NULL
168211 +enable_so_xfrm_user_policy_fndecl_43390 xfrm_user_policy fndecl 4 43390 NULL
168212 +enable_so_lpt_spc_bits_ubifs_info_43392 lpt_spc_bits ubifs_info 0 43392 NULL
168213 +enable_so_offset_isert_data_buf_43395 offset isert_data_buf 0 43395 NULL
168214 +enable_so_vlan_proto_net_bridge_43397 vlan_proto net_bridge 0 43397 NULL
168215 +enable_so_id_via_isa_bridge_43399 id via_isa_bridge 0 43399 NULL
168216 +enable_so_base_nr_i2c_mux_gpio_platform_data_43400 base_nr i2c_mux_gpio_platform_data 0 43400 NULL
168217 +enable_so_depth_saa7146_format_43402 depth saa7146_format 0 43402 NULL
168218 +enable_so_teql_master_mtu_fndecl_43403 teql_master_mtu fndecl 2 43403 NULL
168219 +enable_so_i2c_readbytes_fndecl_43409 i2c_readbytes fndecl 4 43409 NULL
168220 +enable_so_init_range_memory_mapping_fndecl_43414 init_range_memory_mapping fndecl 1-2 43414 NULL
168221 +enable_so_gss_wrap_kerberos_v1_fndecl_43417 gss_wrap_kerberos_v1 fndecl 2 43417 NULL nohasharray
168222 +enable_so_packet_alloc_skb_fndecl_43417 packet_alloc_skb fndecl 5-4-3 43417 &enable_so_gss_wrap_kerberos_v1_fndecl_43417
168223 +enable_so_pof_write_open_fndecl_43418 pof_write_open fndecl 0 43418 NULL
168224 +enable_so_tegra_spi_start_dma_based_transfer_fndecl_43421 tegra_spi_start_dma_based_transfer fndecl 0 43421 NULL
168225 +enable_so_prism2_send_mgmt_fndecl_43422 prism2_send_mgmt fndecl 4 43422 NULL
168226 +enable_so_status_fealnx_desc_43423 status fealnx_desc 0 43423 NULL
168227 +enable_so_ath6kl_wmi_set_apsd_bfrd_traf_fndecl_43427 ath6kl_wmi_set_apsd_bfrd_traf fndecl 2 43427 NULL
168228 +enable_so_lpfc_sli4_queue_alloc_fndecl_43429 lpfc_sli4_queue_alloc fndecl 3 43429 NULL
168229 +enable_so_offset_afs_call_43431 offset afs_call 0 43431 NULL
168230 +enable_so_nfs4_proc_set_acl_fndecl_43435 nfs4_proc_set_acl fndecl 3 43435 NULL
168231 +enable_so_XRES_kyrofb_info_43436 XRES kyrofb_info 0 43436 NULL
168232 +enable_so_bfad_fcxp_bsg_send_fndecl_43437 bfad_fcxp_bsg_send fndecl 0 43437 NULL
168233 +enable_so_memblock_alloc_nid_fndecl_43439 memblock_alloc_nid fndecl 2-1 43439 NULL nohasharray
168234 +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
168235 +enable_so_ems_pcmcia_add_card_fndecl_43440 ems_pcmcia_add_card fndecl 2 43440 NULL nohasharray
168236 +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
168237 +enable_so_per_txdl_space_vxge_hw_fifo_attr_43441 per_txdl_space vxge_hw_fifo_attr 0 43441 NULL nohasharray
168238 +enable_so___offline_pages_fndecl_43441 __offline_pages fndecl 1-2 43441 &enable_so_per_txdl_space_vxge_hw_fifo_attr_43441
168239 +enable_so_dut_mode_write_fndecl_43445 dut_mode_write fndecl 3 43445 NULL nohasharray
168240 +enable_so_len_imgchunk_43445 len imgchunk 0 43445 &enable_so_dut_mode_write_fndecl_43445
168241 +enable_so_max_pkt_tipc_sock_43446 max_pkt tipc_sock 0 43446 NULL
168242 +enable_so_wReportDescLength_i2c_hid_desc_43447 wReportDescLength i2c_hid_desc 0 43447 NULL
168243 +enable_so_vfs_fsync_range_fndecl_43448 vfs_fsync_range fndecl 0 43448 NULL
168244 +enable_so_vary_usbtest_param_43450 vary usbtest_param 0 43450 NULL
168245 +enable_so_eeprom_len_adm8211_priv_43457 eeprom_len adm8211_priv 0 43457 NULL
168246 +enable_so_aper_base_radeon_mc_43460 aper_base radeon_mc 0 43460 NULL
168247 +enable_so_l_start_ocfs2_space_resv_43461 l_start ocfs2_space_resv 0 43461 NULL
168248 +enable_so_meta_dev_idx_drbd_md_43468 meta_dev_idx drbd_md 0 43468 NULL nohasharray
168249 +enable_so_pda_size_fw_info_43468 pda_size fw_info 0 43468 &enable_so_meta_dev_idx_drbd_md_43468 nohasharray
168250 +enable_so_printer_req_alloc_fndecl_43468 printer_req_alloc fndecl 2 43468 &enable_so_pda_size_fw_info_43468
168251 +enable_so_xfrm_count_pfkey_auth_supported_fndecl_43471 xfrm_count_pfkey_auth_supported fndecl 0 43471 NULL
168252 +enable_so_nfs_pgio_rpcsetup_fndecl_43472 nfs_pgio_rpcsetup fndecl 2-3 43472 NULL
168253 +enable_so_max_VF_buses_pci_sriov_43475 max_VF_buses pci_sriov 0 43475 NULL
168254 +enable_so_mmio_base_phys_mb862xxfb_par_43476 mmio_base_phys mb862xxfb_par 0 43476 NULL
168255 +enable_so_read_pci_config_byte_fndecl_43477 read_pci_config_byte fndecl 0 43477 NULL nohasharray
168256 +enable_so_cmd_drm_ioctl_desc_43477 cmd drm_ioctl_desc 0 43477 &enable_so_read_pci_config_byte_fndecl_43477
168257 +enable_so_total_size_vardecl_mtdram_c_43478 total_size vardecl_mtdram.c 0 43478 NULL nohasharray
168258 +enable_so_length_cpcs_trailer_43478 length cpcs_trailer 0 43478 &enable_so_total_size_vardecl_mtdram_c_43478
168259 +enable_so_sd_jbsize_gfs2_sbd_43480 sd_jbsize gfs2_sbd 0 43480 NULL
168260 +enable_so_pcm_capture_analog_channels_snd_tscm_spec_43483 pcm_capture_analog_channels snd_tscm_spec 0 43483 NULL nohasharray
168261 +enable_so_sysv_iget_fndecl_43483 sysv_iget fndecl 2 43483 &enable_so_pcm_capture_analog_channels_snd_tscm_spec_43483
168262 +enable_so_atl1e_change_mtu_fndecl_43485 atl1e_change_mtu fndecl 2 43485 NULL
168263 +enable_so_secondary_bin_count_drm_mga_dma_bootstrap_43491 secondary_bin_count drm_mga_dma_bootstrap 0 43491 NULL
168264 +enable_so_bioset_integrity_create_fndecl_43495 bioset_integrity_create fndecl 2 43495 NULL
168265 +enable_so_size_TxFifo_43497 size TxFifo 0 43497 NULL
168266 +enable_so_netlink_recvmsg_fndecl_43499 netlink_recvmsg fndecl 3 43499 NULL
168267 +enable_so_Count_smb_com_write_rsp_43500 Count smb_com_write_rsp 0 43500 NULL
168268 +enable_so_gfs2_log_write_fndecl_43502 gfs2_log_write fndecl 4-3 43502 NULL nohasharray
168269 +enable_so_max_reqs_rpc_xprt_43502 max_reqs rpc_xprt 0 43502 &enable_so_gfs2_log_write_fndecl_43502
168270 +enable_so_adxl34x_i2c_read_block_fndecl_43504 adxl34x_i2c_read_block fndecl 3 43504 NULL nohasharray
168271 +enable_so_limit_cmdline_vardecl_dma_contiguous_c_43504 limit_cmdline vardecl_dma-contiguous.c 0 43504 &enable_so_adxl34x_i2c_read_block_fndecl_43504
168272 +enable_so_ext4_ind_map_blocks_fndecl_43505 ext4_ind_map_blocks fndecl 0 43505 NULL
168273 +enable_so_ioremap_wc_fndecl_43508 ioremap_wc fndecl 2-1 43508 NULL
168274 +enable_so_size_compat_ipt_replace_43509 size compat_ipt_replace 0 43509 NULL
168275 +enable_so_size_uvc_control_info_43512 size uvc_control_info 0 43512 NULL
168276 +enable_so_snd_es1968_new_memory_fndecl_43515 snd_es1968_new_memory fndecl 2 43515 NULL
168277 +enable_so_fddi_header_fndecl_43519 fddi_header fndecl 3 43519 NULL nohasharray
168278 +enable_so_ieee80211_set_probe_resp_fndecl_43519 ieee80211_set_probe_resp fndecl 3 43519 &enable_so_fddi_header_fndecl_43519
168279 +enable_so_sb_rextslog_xfs_sb_43520 sb_rextslog xfs_sb 0 43520 NULL nohasharray
168280 +enable_so_ptp_read_fndecl_43520 ptp_read fndecl 4 43520 &enable_so_sb_rextslog_xfs_sb_43520
168281 +enable_so_fifo_pool_size_snd_seq_user_client_43523 fifo_pool_size snd_seq_user_client 0 43523 NULL
168282 +enable_so_xfs_dir2_leaf_getdents_fndecl_43533 xfs_dir2_leaf_getdents fndecl 3 43533 NULL
168283 +enable_so_mei_amthif_read_start_fndecl_43534 mei_amthif_read_start fndecl 0 43534 NULL
168284 +enable_so_dccps_gsr_dccp_sock_43535 dccps_gsr dccp_sock 0 43535 NULL
168285 +enable_so_points_per_channel_pda_pa_curve_data_43548 points_per_channel pda_pa_curve_data 0 43548 NULL
168286 +enable_so_offset_qcafrm_handle_43553 offset qcafrm_handle 0 43553 NULL
168287 +enable_so_bg_inode_table_lo_ext4_group_desc_43555 bg_inode_table_lo ext4_group_desc 0 43555 NULL
168288 +enable_so_hdrlen_hip_hdr_43556 hdrlen hip_hdr 0 43556 NULL
168289 +enable_so_buffer_size_budget_43564 buffer_size budget 0 43564 NULL
168290 +enable_so_tx_buf_clear_sent_ks959_cb_43565 tx_buf_clear_sent ks959_cb 0 43565 NULL
168291 +enable_so_ib_create_send_mad_fndecl_43569 ib_create_send_mad fndecl 6-5 43569 NULL
168292 +enable_so_wMemorySize_ms_bootblock_sysinf_43576 wMemorySize ms_bootblock_sysinf 0 43576 NULL
168293 +enable_so_ccp_fill_queue_buf_fndecl_43580 ccp_fill_queue_buf fndecl 0 43580 NULL
168294 +enable_so_xfs_difree_fndecl_43581 xfs_difree fndecl 2 43581 NULL
168295 +enable_so___br_vlan_set_default_pvid_fndecl_43587 __br_vlan_set_default_pvid fndecl 2 43587 NULL
168296 +enable_so_size_ext4_io_end_43590 size ext4_io_end 0 43590 NULL
168297 +enable_so_recv_data_fndecl_43596 recv_data fndecl 3 43596 NULL
168298 +enable_so_rem_len_hci_rp_read_local_amp_assoc_43602 rem_len hci_rp_read_local_amp_assoc 0 43602 NULL nohasharray
168299 +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
168300 +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
168301 +enable_so_nfsd_vfs_read_fndecl_43608 nfsd_vfs_read fndecl 3-5 43608 NULL
168302 +enable_so_raid5_resize_fndecl_43609 raid5_resize fndecl 2 43609 NULL
168303 +enable_so_ssize_datafab_info_43610 ssize datafab_info 0 43610 NULL
168304 +enable_so_minor_usb_serial_port_43611 minor usb_serial_port 0 43611 NULL
168305 +enable_so_phys_ctlmem_fst_card_info_43612 phys_ctlmem fst_card_info 0 43612 NULL
168306 +enable_so_sg_limit_blogic_ext_setup_43615 sg_limit blogic_ext_setup 0 43615 NULL nohasharray
168307 +enable_so_qnx4_block_map_fndecl_43615 qnx4_block_map fndecl 0-2 43615 &enable_so_sg_limit_blogic_ext_setup_43615
168308 +enable_so_camera_fbmem_size_viafb_dev_43616 camera_fbmem_size viafb_dev 0 43616 NULL
168309 +enable_so_ceph_fill_file_size_fndecl_43619 ceph_fill_file_size fndecl 4-5 43619 NULL
168310 +enable_so_drm_format_plane_cpp_fndecl_43621 drm_format_plane_cpp fndecl 0 43621 NULL nohasharray
168311 +enable_so_chipshift_cfi_private_43621 chipshift cfi_private 0 43621 &enable_so_drm_format_plane_cpp_fndecl_43621
168312 +enable_so_btusb_recv_isoc_fndecl_43628 btusb_recv_isoc fndecl 3 43628 NULL
168313 +enable_so_drm_gtf2_k_fndecl_43638 drm_gtf2_k fndecl 0 43638 NULL nohasharray
168314 +enable_so_technisat_usb2_eeprom_lrc_read_fndecl_43638 technisat_usb2_eeprom_lrc_read fndecl 4 43638 &enable_so_drm_gtf2_k_fndecl_43638
168315 +enable_so_sdricoh_mmc_cmd_fndecl_43641 sdricoh_mmc_cmd fndecl 0 43641 NULL
168316 +enable_so_info_server_fndecl_43644 info_server fndecl 4 43644 NULL
168317 +enable_so_bfad_iocmd_pcifn_create_fndecl_43645 bfad_iocmd_pcifn_create fndecl 0 43645 NULL
168318 +enable_so_nf_nat_sip_fndecl_43657 nf_nat_sip fndecl 2 43657 NULL
168319 +enable_so_usbnet_read_cmd_nopm_fndecl_43663 usbnet_read_cmd_nopm fndecl 7 43663 NULL nohasharray
168320 +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
168321 +enable_so_bop_last_key_nilfs_bmap_operations_43669 bop_last_key nilfs_bmap_operations 0 43669 NULL
168322 +enable_so_gsi_kvm_irq_routing_entry_43676 gsi kvm_irq_routing_entry 0 43676 NULL
168323 +enable_so_idmouse_read_fndecl_43677 idmouse_read fndecl 3 43677 NULL
168324 +enable_so_header_size_perf_event_43679 header_size perf_event 0 43679 NULL
168325 +enable_so_width_mxr_crop_43682 width mxr_crop 0 43682 NULL
168326 +enable_so_data_offset_nfsd4_compound_state_43684 data_offset nfsd4_compound_state 0 43684 NULL
168327 +enable_so_ingr_sz_sge_43689 ingr_sz sge 0 43689 NULL
168328 +enable_so_nxt200x_readbytes_fndecl_43693 nxt200x_readbytes fndecl 4 43693 NULL
168329 +enable_so_num_tx_descs_octeon_nic_if_config_43704 num_tx_descs octeon_nic_if_config 0 43704 NULL
168330 +enable_so_rx_buf_len_bcmgenet_priv_43705 rx_buf_len bcmgenet_priv 0 43705 NULL
168331 +enable_so_verity_verify_level_fndecl_43710 verity_verify_level fndecl 0 43710 NULL nohasharray
168332 +enable_so_gtk_icvlen_iwl_mvm_43710 gtk_icvlen iwl_mvm 0 43710 &enable_so_verity_verify_level_fndecl_43710 nohasharray
168333 +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
168334 +enable_so_of_irq_get_fndecl_43712 of_irq_get fndecl 0 43712 NULL
168335 +enable_so_data_block_quadlets_amdtp_stream_43723 data_block_quadlets amdtp_stream 0 43723 NULL
168336 +enable_so_in_size_xz_buf_43724 in_size xz_buf 0 43724 NULL
168337 +enable_so_ReplyFrameSize_mpt3sas_facts_43736 ReplyFrameSize mpt3sas_facts 0 43736 NULL
168338 +enable_so_gfn_to_hva_many_fndecl_43742 gfn_to_hva_many fndecl 2 43742 NULL
168339 +enable_so_acpi_rs_strcpy_fndecl_43746 acpi_rs_strcpy fndecl 0 43746 NULL
168340 +enable_so_used_map_cnt_verifier_env_43747 used_map_cnt verifier_env 0 43747 NULL
168341 +enable_so_stat_end_vardecl_drv_c_43748 stat_end vardecl_drv.c 0 43748 NULL
168342 +enable_so_sas_host_smp_write_gpio_fndecl_43749 sas_host_smp_write_gpio fndecl 0 43749 NULL
168343 +enable_so_rrpc_update_map_fndecl_43752 rrpc_update_map fndecl 2 43752 NULL
168344 +enable_so_osd_req_encode_op_fndecl_43755 osd_req_encode_op fndecl 0 43755 NULL
168345 +enable_so_data1_sisusb_command_43756 data1 sisusb_command 0 43756 NULL nohasharray
168346 +enable_so_len_meta_value_43756 len meta_value 0 43756 &enable_so_data1_sisusb_command_43756 nohasharray
168347 +enable_so___copy_from_user_ll_nocache_fndecl_43756 __copy_from_user_ll_nocache fndecl 0 43756 &enable_so_len_meta_value_43756
168348 +enable_so_reada_find_extent_fndecl_43757 reada_find_extent fndecl 2 43757 NULL
168349 +enable_so_firstEUN_INFTLrecord_43763 firstEUN INFTLrecord 0 43763 NULL
168350 +enable_so_tipc_connect_fndecl_43766 tipc_connect fndecl 3 43766 NULL
168351 +enable_so_cached_start_hfsplus_inode_info_43773 cached_start hfsplus_inode_info 0 43773 NULL
168352 +enable_so_mlx4_ib_alloc_demux_ctx_fndecl_43775 mlx4_ib_alloc_demux_ctx fndecl 3 43775 NULL
168353 +enable_so___smiapp_pll_calculate_fndecl_43779 __smiapp_pll_calculate fndecl 7-6 43779 NULL nohasharray
168354 +enable_so_hwdep_read_fndecl_43779 hwdep_read fndecl 3 43779 &enable_so___smiapp_pll_calculate_fndecl_43779
168355 +enable_so_generic_file_fsync_fndecl_43780 generic_file_fsync fndecl 2-3 43780 NULL
168356 +enable_so_clipcount_cap_vivid_dev_43781 clipcount_cap vivid_dev 0 43781 NULL
168357 +enable_so_prepare_packet_fndecl_43783 prepare_packet fndecl 0 43783 NULL
168358 +enable_so_data_pad_ubi_volume_43787 data_pad ubi_volume 0 43787 NULL
168359 +enable_so_smsc47m1_device_add_fndecl_43796 smsc47m1_device_add fndecl 1 43796 NULL
168360 +enable_so_uhci_urb_dequeue_fndecl_43804 uhci_urb_dequeue fndecl 3 43804 NULL
168361 +enable_so_xfs_trans_reserve_fndecl_43809 xfs_trans_reserve fndecl 3 43809 NULL
168362 +enable_so_len_nft_set_ext_tmpl_43815 len nft_set_ext_tmpl 0 43815 NULL
168363 +enable_so_rdes0_rx_desc_43817 rdes0 rx_desc 0 43817 NULL
168364 +enable_so___vb2_perform_fileio_fndecl_43818 __vb2_perform_fileio fndecl 3 43818 NULL
168365 +enable_so__save_mc_fndecl_43819 _save_mc fndecl 0-3 43819 NULL
168366 +enable_so_i915_gem_object_create_stolen_fndecl_43837 i915_gem_object_create_stolen fndecl 2 43837 NULL
168367 +enable_so_unlink1_fndecl_43840 unlink1 fndecl 3-2 43840 NULL nohasharray
168368 +enable_so_snd_timer_user_info_fndecl_43840 snd_timer_user_info fndecl 0 43840 &enable_so_unlink1_fndecl_43840
168369 +enable_so_ath6kl_wmi_enable_sched_scan_cmd_fndecl_43841 ath6kl_wmi_enable_sched_scan_cmd fndecl 2 43841 NULL
168370 +enable_so_bfad_iocmd_diag_lb_stat_fndecl_43844 bfad_iocmd_diag_lb_stat fndecl 0 43844 NULL
168371 +enable_so_initrd_start_vardecl_43848 initrd_start vardecl 0 43848 NULL nohasharray
168372 +enable_so_parport_ieee1284_ecp_write_data_fndecl_43848 parport_ieee1284_ecp_write_data fndecl 0 43848 &enable_so_initrd_start_vardecl_43848
168373 +enable_so_xen_set_nslabs_fndecl_43849 xen_set_nslabs fndecl 0-1 43849 NULL
168374 +enable_so_wlcore_scan_fndecl_43850 wlcore_scan fndecl 4 43850 NULL
168375 +enable_so_scsi_host_alloc_fndecl_43858 scsi_host_alloc fndecl 2 43858 NULL
168376 +enable_so_indat_endpoint_keyspan_device_details_43860 indat_endpoint keyspan_device_details 0 43860 NULL
168377 +enable_so_get_sset_count_ethtool_ops_43861 get_sset_count ethtool_ops 0 43861 NULL
168378 +enable_so_s_l2bsize_jfs_superblock_43870 s_l2bsize jfs_superblock 0 43870 NULL
168379 +enable_so_Xdsdt_acpi_table_fadt_43871 Xdsdt acpi_table_fadt 0 43871 NULL
168380 +enable_so_bulk_in_endpointAddr_hdpvr_device_43874 bulk_in_endpointAddr hdpvr_device 0 43874 NULL nohasharray
168381 +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
168382 +enable_so_iovec_count_sg_io_hdr_43875 iovec_count sg_io_hdr 0 43875 NULL
168383 +enable_so_ts_ctxnum_gru_thread_state_43878 ts_ctxnum gru_thread_state 0 43878 NULL
168384 +enable_so_m_logbsize_xfs_mount_43888 m_logbsize xfs_mount 0 43888 NULL
168385 +enable_so_zap_page_range_single_fndecl_43890 zap_page_range_single fndecl 3-2 43890 NULL
168386 +enable_so_len_libipw_info_element_43892 len libipw_info_element 0 43892 NULL
168387 +enable_so_ocfs2_decrease_refcount_fndecl_43893 ocfs2_decrease_refcount fndecl 4-3 43893 NULL
168388 +enable_so_skb_vlan_push_fndecl_43895 skb_vlan_push fndecl 3-2 43895 NULL nohasharray
168389 +enable_so_device_id_onenand_chip_43895 device_id onenand_chip 0 43895 &enable_so_skb_vlan_push_fndecl_43895
168390 +enable_so_xstats_len_gnet_dump_43898 xstats_len gnet_dump 0 43898 NULL
168391 +enable_so_bfad_iocmd_vf_clr_stats_fndecl_43899 bfad_iocmd_vf_clr_stats fndecl 0 43899 NULL
168392 +enable_so_pnp_add_dma_resource_fndecl_43903 pnp_add_dma_resource fndecl 2 43903 NULL
168393 +enable_so_lc_up_len_nfsd4_layoutcommit_43904 lc_up_len nfsd4_layoutcommit 0 43904 NULL
168394 +enable_so_sta_data_size_ieee80211_hw_43910 sta_data_size ieee80211_hw 0 43910 NULL
168395 +enable_so_xres_drm_cmdline_mode_43915 xres drm_cmdline_mode 0 43915 NULL
168396 +enable_so_vcount_snd_emu10k1_fx8010_ctl_43917 vcount snd_emu10k1_fx8010_ctl 0 43917 NULL
168397 +enable_so_in_int_pipe_usbtest_dev_43922 in_int_pipe usbtest_dev 0 43922 NULL
168398 +enable_so_phys_statctrl_base__synclinkmp_info_43923 phys_statctrl_base _synclinkmp_info 0 43923 NULL
168399 +enable_so_rd_length_nfsd4_read_43924 rd_length nfsd4_read 0 43924 NULL
168400 +enable_so_mbind_range_fndecl_43926 mbind_range fndecl 3-2 43926 NULL
168401 +enable_so_req_fiv_s5k5baf_43938 req_fiv s5k5baf 0 43938 NULL
168402 +enable_so_max_threads_vardecl_43940 max_threads vardecl 0 43940 NULL nohasharray
168403 +enable_so_queue_pages_pte_range_fndecl_43940 queue_pages_pte_range fndecl 2 43940 &enable_so_max_threads_vardecl_43940
168404 +enable_so_ubifs_change_one_lp_fndecl_43942 ubifs_change_one_lp fndecl 3 43942 NULL
168405 +enable_so_dce_pvc_count_frad_state_43946 dce_pvc_count frad_state 0 43946 NULL
168406 +enable_so_carm_handle_scan_chan_fndecl_43950 carm_handle_scan_chan fndecl 4 43950 NULL
168407 +enable_so_sddr09_readX_fndecl_43951 sddr09_readX fndecl 5-7 43951 NULL
168408 +enable_so_brcmf_fil_cmd_data_set_fndecl_43952 brcmf_fil_cmd_data_set fndecl 4 43952 NULL
168409 +enable_so_size_soundfont_sample_info_43957 size soundfont_sample_info 0 43957 NULL
168410 +enable_so_primary_offset88_cm_req_msg_43962 primary_offset88 cm_req_msg 0 43962 NULL
168411 +enable_so_num_drc_cfgs_wm8904_pdata_43963 num_drc_cfgs wm8904_pdata 0 43963 NULL
168412 +enable_so_rx_ring_count_igb_adapter_43964 rx_ring_count igb_adapter 0 43964 NULL
168413 +enable_so_tpacket_fill_skb_fndecl_43967 tpacket_fill_skb fndecl 6-8 43967 NULL
168414 +enable_so_s_firstdatazone_isofs_sb_info_43968 s_firstdatazone isofs_sb_info 0 43968 NULL
168415 +enable_so_csum_start_virtio_net_hdr_43969 csum_start virtio_net_hdr 0 43969 NULL nohasharray
168416 +enable_so_hfsplus_file_fsync_fndecl_43969 hfsplus_file_fsync fndecl 2-3 43969 &enable_so_csum_start_virtio_net_hdr_43969
168417 +enable_so_len_diag_pkt_43974 len diag_pkt 0 43974 NULL
168418 +enable_so_nilfs_get_dentry_fndecl_43979 nilfs_get_dentry fndecl 3 43979 NULL
168419 +enable_so_s_first_cluster_group_ocfs2_super_block_43980 s_first_cluster_group ocfs2_super_block 0 43980 NULL nohasharray
168420 +enable_so_value_size_bpf_map_43980 value_size bpf_map 0 43980 &enable_so_s_first_cluster_group_ocfs2_super_block_43980
168421 +enable_so_security_policydb_len_fndecl_43981 security_policydb_len fndecl 0 43981 NULL
168422 +enable_so_cur_size_zr364xx_framei_43985 cur_size zr364xx_framei 0 43985 NULL
168423 +enable_so_free_memtype_fndecl_43986 free_memtype fndecl 1-2 43986 NULL
168424 +enable_so_smk_write_revoke_subj_fndecl_43990 smk_write_revoke_subj fndecl 3 43990 NULL
168425 +enable_so_SyS_syslog_fndecl_43993 SyS_syslog fndecl 3 43993 NULL
168426 +enable_so_nsize_jffs2_raw_dirent_43995 nsize jffs2_raw_dirent 0 43995 NULL nohasharray
168427 +enable_so_pvm_determine_end_fndecl_43995 pvm_determine_end fndecl 0-3 43995 &enable_so_nsize_jffs2_raw_dirent_43995
168428 +enable_so_copy_templates_fndecl_43996 copy_templates fndecl 3 43996 NULL
168429 +enable_so_snd_pcm_lib_malloc_pages_fndecl_43997 snd_pcm_lib_malloc_pages fndecl 2 43997 NULL
168430 +enable_so___e820_add_region_fndecl_44001 __e820_add_region fndecl 3 44001 NULL
168431 +enable_so_vme_master_read_fndecl_44006 vme_master_read fndecl 0 44006 NULL
168432 +enable_so_SyS_gethostname_fndecl_44008 SyS_gethostname fndecl 2 44008 NULL
168433 +enable_so_max_io_sz_snic_fw_info_44009 max_io_sz snic_fw_info 0 44009 NULL
168434 +enable_so_rbd_img_obj_exists_submit_fndecl_44011 rbd_img_obj_exists_submit fndecl 0 44011 NULL
168435 +enable_so_ext2_direct_IO_fndecl_44012 ext2_direct_IO fndecl 3 44012 NULL
168436 +enable_so_level_pid_namespace_44021 level pid_namespace 0 44021 NULL
168437 +enable_so_nr_chnls_nvm_dev_44026 nr_chnls nvm_dev 0 44026 NULL
168438 +enable_so_rx_buffer_truesize_efx_nic_44027 rx_buffer_truesize efx_nic 0 44027 NULL
168439 +enable_so_response_length_ib_uverbs_ex_create_qp_resp_44030 response_length ib_uverbs_ex_create_qp_resp 0 44030 NULL
168440 +enable_so_SyS_kexec_file_load_fndecl_44032 SyS_kexec_file_load fndecl 3 44032 NULL
168441 +enable_so_regsize_octeon_mdiobus_44041 regsize octeon_mdiobus 0 44041 NULL
168442 +enable_so_convert_extent_bit_fndecl_44046 convert_extent_bit fndecl 2-3 44046 NULL
168443 +enable_so_ahc_linux_map_seg_fndecl_44059 ahc_linux_map_seg fndecl 4-5 44059 NULL nohasharray
168444 +enable_so_btrfs_submit_direct_fndecl_44059 btrfs_submit_direct fndecl 4 44059 &enable_so_ahc_linux_map_seg_fndecl_44059
168445 +enable_so_prog_page_fndecl_44060 prog_page fndecl 2 44060 NULL
168446 +enable_so_blksize_xfs_da_geometry_44068 blksize xfs_da_geometry 0 44068 NULL
168447 +enable_so_xen_io_tlb_nslabs_vardecl_swiotlb_xen_c_44077 xen_io_tlb_nslabs vardecl_swiotlb-xen.c 0 44077 NULL
168448 +enable_so_maxports_board_t_44081 maxports board_t 0 44081 NULL
168449 +enable_so_debug_pmt_fndecl_44082 debug_pmt fndecl 2 44082 NULL
168450 +enable_so_netup_read_i2c_fndecl_44096 netup_read_i2c fndecl 5 44096 NULL
168451 +enable_so_ipoib_cm_create_srq_fndecl_44098 ipoib_cm_create_srq fndecl 2 44098 NULL
168452 +enable_so_xdr_decode_array2_fndecl_44099 xdr_decode_array2 fndecl 2-0 44099 NULL
168453 +enable_so_m_inode_cluster_size_xfs_mount_44101 m_inode_cluster_size xfs_mount 0 44101 NULL
168454 +enable_so_payload_sz_storvsc_cmd_request_44107 payload_sz storvsc_cmd_request 0 44107 NULL
168455 +enable_so_fats_fat_boot_sector_44112 fats fat_boot_sector 0 44112 NULL
168456 +enable_so_ext4_mb_get_buddy_page_lock_fndecl_44127 ext4_mb_get_buddy_page_lock fndecl 0 44127 NULL
168457 +enable_so_udp_sendmsg_fndecl_44135 udp_sendmsg fndecl 3 44135 NULL nohasharray
168458 +enable_so_mls_compute_context_len_fndecl_44135 mls_compute_context_len fndecl 0 44135 &enable_so_udp_sendmsg_fndecl_44135
168459 +enable_so_base_nforce2_smbus_44136 base nforce2_smbus 0 44136 NULL
168460 +enable_so_tps65912_i2c_read_fndecl_44137 tps65912_i2c_read fndecl 3 44137 NULL
168461 +enable_so_key_maxval_mcs_platform_data_44139 key_maxval mcs_platform_data 0 44139 NULL
168462 +enable_so_npins_pinctrl_gpio_range_44148 npins pinctrl_gpio_range 0 44148 NULL
168463 +enable_so_batadv_dat_snoop_incoming_arp_reply_fndecl_44154 batadv_dat_snoop_incoming_arp_reply fndecl 3 44154 NULL
168464 +enable_so_octeon_setup_droq_fndecl_44160 octeon_setup_droq fndecl 4-3 44160 NULL
168465 +enable_so_bfad_debugfs_write_regwr_fndecl_44162 bfad_debugfs_write_regwr fndecl 3 44162 NULL
168466 +enable_so_recvmsg_proto_ops_44163 recvmsg proto_ops 0 44163 NULL
168467 +enable_so_sizeimage_v4l2_plane_pix_format_44168 sizeimage v4l2_plane_pix_format 0 44168 NULL nohasharray
168468 +enable_so_y_len_ccp_ecc_point_44168 y_len ccp_ecc_point 0 44168 &enable_so_sizeimage_v4l2_plane_pix_format_44168
168469 +enable_so_size_drm_mode_create_dumb_44176 size drm_mode_create_dumb 0 44176 NULL
168470 +enable_so_tcfp_nkeys_tcf_pedit_44184 tcfp_nkeys tcf_pedit 0 44184 NULL nohasharray
168471 +enable_so_error_tx_abort_failure_read_fndecl_44184 error_tx_abort_failure_read fndecl 3 44184 &enable_so_tcfp_nkeys_tcf_pedit_44184
168472 +enable_so_qlcnic_change_mtu_fndecl_44186 qlcnic_change_mtu fndecl 2 44186 NULL
168473 +enable_so_btrfs_file_llseek_fndecl_44189 btrfs_file_llseek fndecl 2 44189 NULL
168474 +enable_so_btrfs_ioctl_clone_fndecl_44205 btrfs_ioctl_clone fndecl 5-3-4 44205 NULL
168475 +enable_so_wm8993_set_fll_fndecl_44206 wm8993_set_fll fndecl 4-5 44206 NULL
168476 +enable_so_evdev_compute_buffer_size_fndecl_44212 evdev_compute_buffer_size fndecl 0 44212 NULL
168477 +enable_so_len_scifioctl_copy_44214 len scifioctl_copy 0 44214 NULL
168478 +enable_so_s_bsize_jfs_superblock_44215 s_bsize jfs_superblock 0 44215 NULL
168479 +enable_so_ext2_inode_by_name_fndecl_44217 ext2_inode_by_name fndecl 0 44217 NULL nohasharray
168480 +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
168481 +enable_so_SYSC_lsetxattr_fndecl_44222 SYSC_lsetxattr fndecl 4 44222 NULL
168482 +enable_so_len_args_fndecl_44226 len_args fndecl 0 44226 NULL
168483 +enable_so_clear_refs_write_fndecl_44227 clear_refs_write fndecl 3 44227 NULL
168484 +enable_so_ufs_extend_tail_fndecl_44228 ufs_extend_tail fndecl 2 44228 NULL
168485 +enable_so_it_context_support_fw_ohci_44232 it_context_support fw_ohci 0 44232 NULL
168486 +enable_so_rx_filter_arp_filter_read_fndecl_44233 rx_filter_arp_filter_read fndecl 3 44233 NULL
168487 +enable_so_usbhsf_fifo_rcv_len_fndecl_44234 usbhsf_fifo_rcv_len fndecl 0 44234 NULL
168488 +enable_so_au0828_init_isoc_fndecl_44238 au0828_init_isoc fndecl 4-2-3 44238 NULL nohasharray
168489 +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
168490 +enable_so_iriap_connect_indication_fndecl_44238 iriap_connect_indication fndecl 5 44238 &enable_so_ns_first_data_block_the_nilfs_44238
168491 +enable_so_irda_sendmsg_fndecl_44239 irda_sendmsg fndecl 3 44239 NULL nohasharray
168492 +enable_so_frag_stride_mlx4_en_frag_info_44239 frag_stride mlx4_en_frag_info 0 44239 &enable_so_irda_sendmsg_fndecl_44239
168493 +enable_so_num_pages_vb2_dma_sg_buf_44241 num_pages vb2_dma_sg_buf 0 44241 NULL
168494 +enable_so_spk_xs_vardecl_44242 spk_xs vardecl 0 44242 NULL
168495 +enable_so_cxgb4_pktgl_to_skb_fndecl_44248 cxgb4_pktgl_to_skb fndecl 2-3 44248 NULL nohasharray
168496 +enable_so_ax25_addr_size_fndecl_44248 ax25_addr_size fndecl 0 44248 &enable_so_cxgb4_pktgl_to_skb_fndecl_44248
168497 +enable_so_num_reg_defaults_raw_regmap_config_44249 num_reg_defaults_raw regmap_config 0 44249 NULL
168498 +enable_so_lprocfs_write_frac_u64_helper_fndecl_44250 lprocfs_write_frac_u64_helper fndecl 2 44250 NULL
168499 +enable_so_nolb_xcopy_op_44252 nolb xcopy_op 0 44252 NULL
168500 +enable_so_s_cur_size_qib_qp_44254 s_cur_size qib_qp 0 44254 NULL nohasharray
168501 +enable_so_roundup_ring_size_fndecl_44254 roundup_ring_size fndecl 0 44254 &enable_so_s_cur_size_qib_qp_44254
168502 +enable_so_gfn_to_pfn_memslot_atomic_fndecl_44264 gfn_to_pfn_memslot_atomic fndecl 2 44264 NULL nohasharray
168503 +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
168504 +enable_so_SyS_kexec_load_fndecl_44265 SyS_kexec_load fndecl 2 44265 NULL
168505 +enable_so_length_ceph_pagelist_44267 length ceph_pagelist 0 44267 NULL
168506 +enable_so_s_blocks_per_group_ext2_sb_info_44270 s_blocks_per_group ext2_sb_info 0 44270 NULL nohasharray
168507 +enable_so_skb_put_frags_fndecl_44270 skb_put_frags fndecl 3-2 44270 &enable_so_s_blocks_per_group_ext2_sb_info_44270
168508 +enable_so_efi_get_runtime_map_size_fndecl_44276 efi_get_runtime_map_size fndecl 0 44276 NULL
168509 +enable_so_new_raid_disk_md_rdev_44282 new_raid_disk md_rdev 0 44282 NULL
168510 +enable_so_rsp_len_bfad_fcxp_44290 rsp_len bfad_fcxp 0 44290 NULL
168511 +enable_so_pbus_size_mem_fndecl_44293 pbus_size_mem fndecl 6 44293 NULL
168512 +enable_so_NumberOfPorts_mpt3sas_facts_44306 NumberOfPorts mpt3sas_facts 0 44306 NULL
168513 +enable_so_mlx5e_build_netdev_priv_fndecl_44314 mlx5e_build_netdev_priv fndecl 3 44314 NULL
168514 +enable_so_plen_iwch_ep_44317 plen iwch_ep 0 44317 NULL
168515 +enable_so_rq_num_entries_c4iw_qp_attributes_44321 rq_num_entries c4iw_qp_attributes 0 44321 NULL
168516 +enable_so_produce_size_qp_entry_44325 produce_size qp_entry 0 44325 NULL
168517 +enable_so_encode_op_hdr_fndecl_44327 encode_op_hdr fndecl 3 44327 NULL
168518 +enable_so_size_drm_radeon_gem_userptr_44334 size drm_radeon_gem_userptr 0 44334 NULL
168519 +enable_so_bytesused_cx18_buffer_44339 bytesused cx18_buffer 0 44339 NULL
168520 +enable_so_snd_pcm_lib_writev_transfer_fndecl_44344 snd_pcm_lib_writev_transfer fndecl 5 44344 NULL
168521 +enable_so_tail_circ_buf_44346 tail circ_buf 0 44346 NULL nohasharray
168522 +enable_so_count_v4l2_ext_controls_44346 count v4l2_ext_controls 0 44346 &enable_so_tail_circ_buf_44346
168523 +enable_so_vb2_dvb_register_bus_fndecl_44349 vb2_dvb_register_bus fndecl 0 44349 NULL
168524 +enable_so_btrfs_item_size_fndecl_44350 btrfs_item_size fndecl 0 44350 NULL
168525 +enable_so_query_xrc_srq_cmd_fndecl_44353 query_xrc_srq_cmd fndecl 0 44353 NULL
168526 +enable_so_brcmf_sdio_txpkt_prep_sg_fndecl_44354 brcmf_sdio_txpkt_prep_sg fndecl 4-0 44354 NULL
168527 +enable_so_irlan_connect_confirm_fndecl_44361 irlan_connect_confirm fndecl 5 44361 NULL
168528 +enable_so_jffs2_write_end_fndecl_44362 jffs2_write_end fndecl 3 44362 NULL
168529 +enable_so_data_size_ubi_vid_hdr_44367 data_size ubi_vid_hdr 0 44367 NULL
168530 +enable_so___logfs_iget_fndecl_44371 __logfs_iget fndecl 2 44371 NULL
168531 +enable_so_pwm_buf_sz_usbdux_private_44375 pwm_buf_sz usbdux_private 0 44375 NULL
168532 +enable_so_ocfs2_get_refcount_rec_fndecl_44377 ocfs2_get_refcount_rec fndecl 3-4 44377 NULL
168533 +enable_so_rnr_retry_count_cm_id_private_44380 rnr_retry_count cm_id_private 0 44380 NULL
168534 +enable_so_tipc_link_bc_create_fndecl_44381 tipc_link_bc_create fndecl 4 44381 NULL
168535 +enable_so_epp_read_data_parport_operations_44383 epp_read_data parport_operations 0 44383 NULL
168536 +enable_so_ip_gre_calc_hlen_fndecl_44386 ip_gre_calc_hlen fndecl 0 44386 NULL
168537 +enable_so_dvb_net_ioctl_fndecl_44388 dvb_net_ioctl fndecl 2 44388 NULL
168538 +enable_so_reiserfs_xattr_set_fndecl_44389 reiserfs_xattr_set fndecl 4 44389 NULL nohasharray
168539 +enable_so_bfad_iocmd_ioc_get_attr_fndecl_44389 bfad_iocmd_ioc_get_attr fndecl 0 44389 &enable_so_reiserfs_xattr_set_fndecl_44389
168540 +enable_so_hidpp_prefix_name_fndecl_44393 hidpp_prefix_name fndecl 2 44393 NULL
168541 +enable_so_s_raid_stripe_width_ext4_super_block_44401 s_raid_stripe_width ext4_super_block 0 44401 NULL
168542 +enable_so_num_iscsi_tasks_cnic_local_44404 num_iscsi_tasks cnic_local 0 44404 NULL
168543 +enable_so_compat_SyS_select_fndecl_44405 compat_SyS_select fndecl 1 44405 NULL
168544 +enable_so_child_mtu_cached_xfrm_dst_44407 child_mtu_cached xfrm_dst 0 44407 NULL
168545 +enable_so_drbd_create_device_fndecl_44410 drbd_create_device fndecl 2 44410 NULL
168546 +enable_so_yres_virtual_fb_var_screeninfo_44414 yres_virtual fb_var_screeninfo 0 44414 NULL
168547 +enable_so_count_configfs_buffer_44416 count configfs_buffer 0 44416 NULL
168548 +enable_so_ept_gpte_to_gfn_lvl_fndecl_44420 ept_gpte_to_gfn_lvl fndecl 0-2-1 44420 NULL
168549 +enable_so_seq_open_private_fndecl_44422 seq_open_private fndecl 3 44422 NULL
168550 +enable_so___get_vm_area_fndecl_44428 __get_vm_area fndecl 1-3 44428 NULL nohasharray
168551 +enable_so_rq_ecount_lpfc_sli4_hba_44428 rq_ecount lpfc_sli4_hba 0 44428 &enable_so___get_vm_area_fndecl_44428
168552 +enable_so_fan_proc_write_fndecl_44434 fan_proc_write fndecl 3 44434 NULL
168553 +enable_so_fd_do_rw_fndecl_44435 fd_do_rw fndecl 5 44435 NULL
168554 +enable_so_nchunks_amdgpu_cs_parser_44436 nchunks amdgpu_cs_parser 0 44436 NULL
168555 +enable_so_nbd_ioctl_fndecl_44444 nbd_ioctl fndecl 4 44444 NULL
168556 +enable_so_ivsize_crypto_skcipher_44448 ivsize crypto_skcipher 0 44448 NULL
168557 +enable_so_get_pages_array_fndecl_44453 get_pages_array fndecl 1 44453 NULL
168558 +enable_so_configfs_write_file_fndecl_44454 configfs_write_file fndecl 3 44454 NULL
168559 +enable_so_hh_len_hh_cache_44455 hh_len hh_cache 0 44455 NULL
168560 +enable_so___get_inode_info_fndecl_44463 __get_inode_info fndecl 0 44463 NULL
168561 +enable_so_cx2341x_handler_init_fndecl_44466 cx2341x_handler_init fndecl 2 44466 NULL
168562 +enable_so_bfa_fcport_get_maxfrsize_fndecl_44467 bfa_fcport_get_maxfrsize fndecl 0 44467 NULL nohasharray
168563 +enable_so_cap_height_usbtv_norm_params_44467 cap_height usbtv_norm_params 0 44467 &enable_so_bfa_fcport_get_maxfrsize_fndecl_44467
168564 +enable_so_get_data_block_bmap_fndecl_44468 get_data_block_bmap fndecl 2 44468 NULL
168565 +enable_so_address_length_acpi_address32_attribute_44471 address_length acpi_address32_attribute 0 44471 NULL
168566 +enable_so_seq_count_iscsi_cmd_44476 seq_count iscsi_cmd 0 44476 NULL
168567 +enable_so_resize_stripes_fndecl_44481 resize_stripes fndecl 2 44481 NULL nohasharray
168568 +enable_so_skb_find_text_fndecl_44481 skb_find_text fndecl 2-0 44481 &enable_so_resize_stripes_fndecl_44481
168569 +enable_so_virtio_gpu_gem_create_fndecl_44491 virtio_gpu_gem_create fndecl 3 44491 NULL
168570 +enable_so_s_first_data_block_ext4_super_block_44495 s_first_data_block ext4_super_block 0 44495 NULL
168571 +enable_so_mmcies_max_wusbhc_44498 mmcies_max wusbhc 0 44498 NULL
168572 +enable_so_pci_cardbus_io_size_vardecl_44500 pci_cardbus_io_size vardecl 0 44500 NULL
168573 +enable_so_io_start_nfs_pgio_header_44501 io_start nfs_pgio_header 0 44501 NULL
168574 +enable_so_omfs_bread_fndecl_44502 omfs_bread fndecl 2 44502 NULL nohasharray
168575 +enable_so_skb_append_pagefrags_fndecl_44502 skb_append_pagefrags fndecl 3 44502 &enable_so_omfs_bread_fndecl_44502
168576 +enable_so_snd_pcm_oss_read3_fndecl_44504 snd_pcm_oss_read3 fndecl 0 44504 NULL
168577 +enable_so_btrfs_add_ordered_extent_fndecl_44505 btrfs_add_ordered_extent fndecl 4-2-5-3 44505 NULL
168578 +enable_so_len_de4x5_ioctl_44508 len de4x5_ioctl 0 44508 NULL
168579 +enable_so_ftdi_elan_edset_setup_fndecl_44513 ftdi_elan_edset_setup fndecl 0 44513 NULL nohasharray
168580 +enable_so_ubifs_add_snod_fndecl_44513 ubifs_add_snod fndecl 4 44513 &enable_so_ftdi_elan_edset_setup_fndecl_44513
168581 +enable_so_li_height_logfs_inode_44514 li_height logfs_inode 0 44514 NULL nohasharray
168582 +enable_so_lock_loop_fndecl_44514 lock_loop fndecl 1-0 44514 &enable_so_li_height_logfs_inode_44514
168583 +enable_so_sco_sock_create_fndecl_44517 sco_sock_create fndecl 3 44517 NULL
168584 +enable_so_sddr09_read20_fndecl_44519 sddr09_read20 fndecl 4-3-6 44519 NULL nohasharray
168585 +enable_so___do_tune_cpucache_fndecl_44519 __do_tune_cpucache fndecl 3-2-4 44519 &enable_so_sddr09_read20_fndecl_44519
168586 +enable_so_video_bpp_sis_video_info_44522 video_bpp sis_video_info 0 44522 NULL nohasharray
168587 +enable_so_length_mtd_oob_buf_44522 length mtd_oob_buf 0 44522 &enable_so_video_bpp_sis_video_info_44522
168588 +enable_so_rbytes_tree_balance_44523 rbytes tree_balance 0 44523 NULL
168589 +enable_so_set_le_key_k_type_fndecl_44525 set_le_key_k_type fndecl 3 44525 NULL
168590 +enable_so_xlog_recover_clear_agi_bucket_fndecl_44526 xlog_recover_clear_agi_bucket fndecl 2 44526 NULL
168591 +enable_so_filter_read_fndecl_44527 filter_read fndecl 3 44527 NULL
168592 +enable_so_yenta_search_one_res_fndecl_44533 yenta_search_one_res fndecl 3 44533 NULL
168593 +enable_so_max_cqes_mthca_limits_44535 max_cqes mthca_limits 0 44535 NULL
168594 +enable_so_consume_size_vmci_transport_44542 consume_size vmci_transport 0 44542 NULL
168595 +enable_so_smk_read_syslog_fndecl_44544 smk_read_syslog fndecl 3 44544 NULL
168596 +enable_so_numps_powernow_k8_data_44546 numps powernow_k8_data 0 44546 NULL
168597 +enable_so_mmc_execute_tuning_fndecl_44557 mmc_execute_tuning fndecl 0 44557 NULL nohasharray
168598 +enable_so_chanctx_data_size_ieee80211_hw_44557 chanctx_data_size ieee80211_hw 0 44557 &enable_so_mmc_execute_tuning_fndecl_44557
168599 +enable_so_hpfs_fnode_dno_fndecl_44569 hpfs_fnode_dno fndecl 0-2 44569 NULL nohasharray
168600 +enable_so_wTotalLength_usb_config_descriptor_44569 wTotalLength usb_config_descriptor 0 44569 &enable_so_hpfs_fnode_dno_fndecl_44569
168601 +enable_so_parent_i_pos_hi_fat_fid_44570 parent_i_pos_hi fat_fid 0 44570 NULL
168602 +enable_so_tw_transfer_internal_fndecl_44581 tw_transfer_internal fndecl 4 44581 NULL nohasharray
168603 +enable_so_ion_handle_test_dma_fndecl_44581 ion_handle_test_dma fndecl 4-5 44581 &enable_so_tw_transfer_internal_fndecl_44581
168604 +enable_so_smsc47m1_find_fndecl_44589 smsc47m1_find fndecl 0 44589 NULL
168605 +enable_so_rd_data0_gfs2_rgrpd_44591 rd_data0 gfs2_rgrpd 0 44591 NULL
168606 +enable_so_maxcontacts_pm_44593 maxcontacts pm 0 44593 NULL
168607 +enable_so_allocate_partition_fndecl_44598 allocate_partition fndecl 4 44598 NULL
168608 +enable_so_len_poll_list_44603 len poll_list 0 44603 NULL
168609 +enable_so_of_io_request_and_map_fndecl_44605 of_io_request_and_map fndecl 2 44605 NULL
168610 +enable_so_bop_mark_nilfs_bmap_operations_44618 bop_mark nilfs_bmap_operations 0 44618 NULL
168611 +enable_so_hns_nic_get_headlen_fndecl_44621 hns_nic_get_headlen fndecl 0-3 44621 NULL
168612 +enable_so_vid_hdr_offset_ubi_attach_req_44622 vid_hdr_offset ubi_attach_req 0 44622 NULL nohasharray
168613 +enable_so_irq_cros_ec_device_44622 irq cros_ec_device 0 44622 &enable_so_vid_hdr_offset_ubi_attach_req_44622
168614 +enable_so_security_file_permission_fndecl_44629 security_file_permission fndecl 0 44629 NULL
168615 +enable_so_max_sectors_Scsi_Host_44630 max_sectors Scsi_Host 0 44630 NULL nohasharray
168616 +enable_so_sel_last_ino_vardecl_selinuxfs_c_44630 sel_last_ino vardecl_selinuxfs.c 0 44630 &enable_so_max_sectors_Scsi_Host_44630
168617 +enable_so_msdc_tune_data_fndecl_44632 msdc_tune_data fndecl 2 44632 NULL
168618 +enable_so_data_len_krb5_tagged_data_44634 data_len krb5_tagged_data 0 44634 NULL
168619 +enable_so_bd_block_size_block_device_44635 bd_block_size block_device 0 44635 NULL
168620 +enable_so_osst_write_error_recovery_fndecl_44636 osst_write_error_recovery fndecl 3 44636 NULL
168621 +enable_so_chunk_root_btrfs_super_block_44639 chunk_root btrfs_super_block 0 44639 NULL
168622 +enable_so_hfcpci_empty_bfifo_fndecl_44640 hfcpci_empty_bfifo fndecl 4 44640 NULL
168623 +enable_so_nb_dev_strip_zone_44645 nb_dev strip_zone 0 44645 NULL
168624 +enable_so_len_nlm_lock_44646 len nlm_lock 0 44646 NULL
168625 +enable_so_bank_mask_stub_chip_44647 bank_mask stub_chip 0 44647 NULL
168626 +enable_so_cp_payload_f2fs_super_block_44648 cp_payload f2fs_super_block 0 44648 NULL
168627 +enable_so_rel_sectors_mmc_ext_csd_44650 rel_sectors mmc_ext_csd 0 44650 NULL
168628 +enable_so_cm_cno_nilfs_cpmode_44654 cm_cno nilfs_cpmode 0 44654 NULL nohasharray
168629 +enable_so_iscsi_segment_init_linear_fndecl_44654 iscsi_segment_init_linear fndecl 3 44654 &enable_so_cm_cno_nilfs_cpmode_44654
168630 +enable_so_nr_sectors_blkif_request_discard_44655 nr_sectors blkif_request_discard 0 44655 NULL nohasharray
168631 +enable_so_bLength_usb_interface_descriptor_44655 bLength usb_interface_descriptor 0 44655 &enable_so_nr_sectors_blkif_request_discard_44655
168632 +enable_so_sparse_early_usemaps_alloc_pgdat_section_fndecl_44659 sparse_early_usemaps_alloc_pgdat_section fndecl 2 44659 NULL
168633 +enable_so_import_single_range_fndecl_44662 import_single_range fndecl 3 44662 NULL
168634 +enable_so_max_rqe_pdid_ocrdma_query_srq_rsp_44663 max_rqe_pdid ocrdma_query_srq_rsp 0 44663 NULL
168635 +enable_so_udf_sb_alloc_partition_maps_fndecl_44666 udf_sb_alloc_partition_maps fndecl 2 44666 NULL nohasharray
168636 +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
168637 +enable_so_fe_len_ext4_free_extent_44669 fe_len ext4_free_extent 0 44669 NULL
168638 +enable_so_lfb_width_screen_info_44670 lfb_width screen_info 0 44670 NULL
168639 +enable_so_overlay_cap_top_vivid_dev_44672 overlay_cap_top vivid_dev 0 44672 NULL
168640 +enable_so_mad_sendq_size_vardecl_mad_c_44673 mad_sendq_size vardecl_mad.c 0 44673 NULL nohasharray
168641 +enable_so_flash_write_fndecl_44673 flash_write fndecl 3 44673 &enable_so_mad_sendq_size_vardecl_mad_c_44673
168642 +enable_so_pipes_psb_ops_44679 pipes psb_ops 0 44679 NULL nohasharray
168643 +enable_so_sys_io_setup_fndecl_44679 sys_io_setup fndecl 1 44679 &enable_so_pipes_psb_ops_44679
168644 +enable_so_xfpregs_set_fndecl_44680 xfpregs_set fndecl 4 44680 NULL
168645 +enable_so_COM_len_camera_data_44681 COM_len camera_data 0 44681 NULL nohasharray
168646 +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
168647 +enable_so_length_ore_striping_info_44681 length ore_striping_info 0 44681 &enable_so_setup_swap_map_and_extents_fndecl_44681
168648 +enable_so_msg_size_ecryptfs_msg_ctx_44687 msg_size ecryptfs_msg_ctx 0 44687 NULL
168649 +enable_so_offset_drm_map_44692 offset drm_map 0 44692 NULL
168650 +enable_so_start_linear_c_44708 start linear_c 0 44708 NULL
168651 +enable_so_au_rslack_rpc_auth_44712 au_rslack rpc_auth 0 44712 NULL
168652 +enable_so_altera_irscan_fndecl_44719 altera_irscan fndecl 2 44719 NULL
168653 +enable_so___nilfs_get_page_block_fndecl_44723 __nilfs_get_page_block fndecl 4 44723 NULL
168654 +enable_so_inlen_mimd_44727 inlen mimd 0 44727 NULL nohasharray
168655 +enable_so_kmalloc_order_fndecl_44727 kmalloc_order fndecl 1 44727 &enable_so_inlen_mimd_44727
168656 +enable_so_nd_blk_rw_integrity_fndecl_44728 nd_blk_rw_integrity fndecl 0 44728 NULL
168657 +enable_so_assoc_req_ies_len_station_info_44731 assoc_req_ies_len station_info 0 44731 NULL nohasharray
168658 +enable_so_buffer_size_st_buffer_44731 buffer_size st_buffer 0 44731 &enable_so_assoc_req_ies_len_station_info_44731
168659 +enable_so_ino_nilfs_recovery_block_44737 ino nilfs_recovery_block 0 44737 NULL
168660 +enable_so_name_len_name_cache_entry_44739 name_len name_cache_entry 0 44739 NULL
168661 +enable_so_lpfc_hba_init_link_fc_topology_fndecl_44740 lpfc_hba_init_link_fc_topology fndecl 0 44740 NULL
168662 +enable_so_erst_clearer_fndecl_44743 erst_clearer fndecl 2 44743 NULL
168663 +enable_so_page_size_mspro_sys_info_44749 page_size mspro_sys_info 0 44749 NULL
168664 +enable_so_max_phy_id_vardecl_x86_pkg_temp_thermal_c_44750 max_phy_id vardecl_x86_pkg_temp_thermal.c 0 44750 NULL
168665 +enable_so_dev_sectors_mddev_44756 dev_sectors mddev 0 44756 NULL
168666 +enable_so_brd_probe_fndecl_44758 brd_probe fndecl 1 44758 NULL
168667 +enable_so_set_ssp_fndecl_44760 set_ssp fndecl 4 44760 NULL
168668 +enable_so_p_memsz_elf64_phdr_44763 p_memsz elf64_phdr 0 44763 NULL
168669 +enable_so_mt9m111_reg_read_fndecl_44764 mt9m111_reg_read fndecl 0 44764 NULL
168670 +enable_so_sys_tee_fndecl_44769 sys_tee fndecl 3 44769 NULL
168671 +enable_so_cb710_mmc_send_fndecl_44773 cb710_mmc_send fndecl 0 44773 NULL nohasharray
168672 +enable_so_count_snd_kcontrol_44773 count snd_kcontrol 0 44773 &enable_so_cb710_mmc_send_fndecl_44773
168673 +enable_so_dce_v8_0_afmt_update_ACR_fndecl_44781 dce_v8_0_afmt_update_ACR fndecl 2 44781 NULL
168674 +enable_so_nbp_vlan_add_fndecl_44783 nbp_vlan_add fndecl 2-0 44783 NULL
168675 +enable_so_ocfs2_handle_error_fndecl_44785 ocfs2_handle_error fndecl 0 44785 NULL nohasharray
168676 +enable_so_vb2_vmalloc_alloc_fndecl_44785 vb2_vmalloc_alloc fndecl 2 44785 &enable_so_ocfs2_handle_error_fndecl_44785
168677 +enable_so_btt_data_write_fndecl_44793 btt_data_write fndecl 0 44793 NULL
168678 +enable_so_truncate_size_ceph_mds_caps_44794 truncate_size ceph_mds_caps 0 44794 NULL
168679 +enable_so_sg_used_ccp_sg_workarea_44796 sg_used ccp_sg_workarea 0 44796 NULL
168680 +enable_so_n_caps_whci_card_44799 n_caps whci_card 0 44799 NULL nohasharray
168681 +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
168682 +enable_so_tclass_sq_psn_ocrdma_qp_params_44805 tclass_sq_psn ocrdma_qp_params 0 44805 NULL
168683 +enable_so_cow_file_range_fndecl_44808 cow_file_range fndecl 3-4 44808 NULL
168684 +enable_so_fd_locked_ioctl_fndecl_44809 fd_locked_ioctl fndecl 3 44809 NULL
168685 +enable_so_raw_getfrag_fndecl_44811 raw_getfrag fndecl 3-4 44811 NULL nohasharray
168686 +enable_so___remove_privs_fndecl_44811 __remove_privs fndecl 0 44811 &enable_so_raw_getfrag_fndecl_44811 nohasharray
168687 +enable_so_resp_ctrl_m_pg_fndecl_44811 resp_ctrl_m_pg fndecl 0 44811 &enable_so___remove_privs_fndecl_44811
168688 +enable_so_ndev_debugfs_read_fndecl_44812 ndev_debugfs_read fndecl 3 44812 NULL
168689 +enable_so_set_extent_delalloc_fndecl_44813 set_extent_delalloc fndecl 3-2 44813 NULL
168690 +enable_so_st21nfca_hci_dm_reset_fndecl_44819 st21nfca_hci_dm_reset fndecl 3 44819 NULL
168691 +enable_so_sb_uquotino_xfs_sb_44820 sb_uquotino xfs_sb 0 44820 NULL
168692 +enable_so_loffset_scifioctl_copy_44823 loffset scifioctl_copy 0 44823 NULL nohasharray
168693 +enable_so_cluster_pages_for_defrag_fndecl_44823 cluster_pages_for_defrag fndecl 0-4-3 44823 &enable_so_loffset_scifioctl_copy_44823
168694 +enable_so_bytesize_nbd_device_44824 bytesize nbd_device 0 44824 NULL nohasharray
168695 +enable_so_count_atl1c_tpd_ring_44824 count atl1c_tpd_ring 0 44824 &enable_so_bytesize_nbd_device_44824
168696 +enable_so_squashfs_read_id_index_table_fndecl_44826 squashfs_read_id_index_table fndecl 4 44826 NULL
168697 +enable_so_vlan_tag_be_rx_compl_info_44830 vlan_tag be_rx_compl_info 0 44830 NULL nohasharray
168698 +enable_so_fix_read_error_fndecl_44830 fix_read_error fndecl 4-3 44830 &enable_so_vlan_tag_be_rx_compl_info_44830
168699 +enable_so_dequeue_event_fndecl_44835 dequeue_event fndecl 3 44835 NULL
168700 +enable_so_name_len_exofs_dir_entry_44838 name_len exofs_dir_entry 0 44838 NULL
168701 +enable_so_xt_compat_match_offset_fndecl_44840 xt_compat_match_offset fndecl 0 44840 NULL nohasharray
168702 +enable_so_acpi_parse_entries_array_fndecl_44840 acpi_parse_entries_array fndecl 0 44840 &enable_so_xt_compat_match_offset_fndecl_44840
168703 +enable_so_exofs_readpages_fndecl_44841 exofs_readpages fndecl 4 44841 NULL
168704 +enable_so_submit_bh_wbc_fndecl_44843 submit_bh_wbc fndecl 0 44843 NULL
168705 +enable_so_num_zones_quirk_entry_44844 num_zones quirk_entry 0 44844 NULL
168706 +enable_so_btrfs_shrink_device_fndecl_44845 btrfs_shrink_device fndecl 2 44845 NULL
168707 +enable_so_spi_sh_receive_fndecl_44846 spi_sh_receive fndecl 0 44846 NULL
168708 +enable_so_ext4_da_get_block_prep_fndecl_44848 ext4_da_get_block_prep fndecl 2 44848 NULL
168709 +enable_so_primary_size_drm_mga_dma_bootstrap_44851 primary_size drm_mga_dma_bootstrap 0 44851 NULL
168710 +enable_so_viafb_second_yres_vardecl_44862 viafb_second_yres vardecl 0 44862 NULL nohasharray
168711 +enable_so_offset_isofs_iget5_callback_data_44862 offset isofs_iget5_callback_data 0 44862 &enable_so_viafb_second_yres_vardecl_44862
168712 +enable_so_pmcraid_build_passthrough_ioadls_fndecl_44865 pmcraid_build_passthrough_ioadls fndecl 2 44865 NULL
168713 +enable_so_crypt_extent_fndecl_44866 crypt_extent fndecl 4 44866 NULL nohasharray
168714 +enable_so_h4_recv_fndecl_44866 h4_recv fndecl 3 44866 &enable_so_crypt_extent_fndecl_44866
168715 +enable_so_intel_setup_irq_remapping_fndecl_44868 intel_setup_irq_remapping fndecl 0 44868 NULL
168716 +enable_so_alloc_rc_map_44870 alloc rc_map 0 44870 NULL
168717 +enable_so_romfs_blk_read_fndecl_44875 romfs_blk_read fndecl 4-2 44875 NULL
168718 +enable_so_ppp_tx_cp_fndecl_44879 ppp_tx_cp fndecl 5-2 44879 NULL
168719 +enable_so_SyS_setxattr_fndecl_44880 SyS_setxattr fndecl 4 44880 NULL
168720 +enable_so_port_mlx4_en_priv_44883 port mlx4_en_priv 0 44883 NULL
168721 +enable_so___cookie_v4_check_fndecl_44887 __cookie_v4_check fndecl 0 44887 NULL nohasharray
168722 +enable_so_jffs2_do_unlink_fndecl_44887 jffs2_do_unlink fndecl 4 44887 &enable_so___cookie_v4_check_fndecl_44887
168723 +enable_so_code_length_lirc_driver_44888 code_length lirc_driver 0 44888 NULL
168724 +enable_so_deh_len_hops_ddpehdr_44891 deh_len_hops ddpehdr 0 44891 NULL nohasharray
168725 +enable_so_msg_len_rndis_data_hdr_44891 msg_len rndis_data_hdr 0 44891 &enable_so_deh_len_hops_ddpehdr_44891 nohasharray
168726 +enable_so_SYSC_select_fndecl_44891 SYSC_select fndecl 1 44891 &enable_so_msg_len_rndis_data_hdr_44891
168727 +enable_so_inst_evtlog_size_iwl_fw_44893 inst_evtlog_size iwl_fw 0 44893 NULL
168728 +enable_so_FormattedSize_NFTLMediaHeader_44896 FormattedSize NFTLMediaHeader 0 44896 NULL
168729 +enable_so_io_size_gpio_lpc_sch_info_44898 io_size_gpio lpc_sch_info 0 44898 NULL
168730 +enable_so_pcpu_alloc_bootmem_fndecl_44905 pcpu_alloc_bootmem fndecl 3-2 44905 NULL
168731 +enable_so_gotoxy_fndecl_44908 gotoxy fndecl 2-3 44908 NULL
168732 +enable_so_write_packet_fndecl_44910 write_packet fndecl 3 44910 NULL
168733 +enable_so_catas_size_mlx4_fw_44916 catas_size mlx4_fw 0 44916 NULL
168734 +enable_so_do_pselect_fndecl_44926 do_pselect fndecl 1 44926 NULL
168735 +enable_so_bvec_iter_advance_fndecl_44933 bvec_iter_advance fndecl 3 44933 NULL
168736 +enable_so_data_dev_block_bits_dm_verity_44943 data_dev_block_bits dm_verity 0 44943 NULL
168737 +enable_so_data_block_dm_thin_new_mapping_44944 data_block dm_thin_new_mapping 0 44944 NULL nohasharray
168738 +enable_so_acpiphp_max_busnr_fndecl_44944 acpiphp_max_busnr fndecl 0 44944 &enable_so_data_block_dm_thin_new_mapping_44944
168739 +enable_so_srp_sq_size_srpt_port_attrib_44947 srp_sq_size srpt_port_attrib 0 44947 NULL
168740 +enable_so_sd_diptrs_gfs2_sbd_44954 sd_diptrs gfs2_sbd 0 44954 NULL
168741 +enable_so_coff_ddb_output_44962 coff ddb_output 0 44962 NULL
168742 +enable_so_mlx4_ib_alloc_mr_fndecl_44964 mlx4_ib_alloc_mr fndecl 3 44964 NULL
168743 +enable_so_qib_diag_write_fndecl_44966 qib_diag_write fndecl 3 44966 NULL
168744 +enable_so_fat12_ent_bread_fndecl_44968 fat12_ent_bread fndecl 4 44968 NULL
168745 +enable_so_i915_pages_create_for_stolen_fndecl_44970 i915_pages_create_for_stolen fndecl 3 44970 NULL
168746 +enable_so_x0_osd_cmd_s_44978 x0 osd_cmd_s 0 44978 NULL
168747 +enable_so_length_mtd_oob_buf64_44979 length mtd_oob_buf64 0 44979 NULL
168748 +enable_so_ip_recv_error_fndecl_44982 ip_recv_error fndecl 3 44982 NULL nohasharray
168749 +enable_so_num_free_virtqueue_44982 num_free virtqueue 0 44982 &enable_so_ip_recv_error_fndecl_44982
168750 +enable_so_generic_block_fiemap_fndecl_44985 generic_block_fiemap fndecl 4 44985 NULL
168751 +enable_so_snd_ak4114_external_rate_fndecl_44987 snd_ak4114_external_rate fndecl 0 44987 NULL
168752 +enable_so_num_carats_acpi_namestring_info_44990 num_carats acpi_namestring_info 0 44990 NULL
168753 +enable_so_transport_lba_32_fndecl_44994 transport_lba_32 fndecl 0 44994 NULL
168754 +enable_so_fts_libipw_device_44996 fts libipw_device 0 44996 NULL
168755 +enable_so_iscsi_max_outsnd_r2t_dev_db_entry_44997 iscsi_max_outsnd_r2t dev_db_entry 0 44997 NULL nohasharray
168756 +enable_so_SyS_getxattr_fndecl_44997 SyS_getxattr fndecl 4 44997 &enable_so_iscsi_max_outsnd_r2t_dev_db_entry_44997
168757 +enable_so_host_int_set_join_req_fndecl_44998 host_int_set_join_req fndecl 6-4 44998 NULL nohasharray
168758 +enable_so_eeprom_size_il_cfg_44998 eeprom_size il_cfg 0 44998 &enable_so_host_int_set_join_req_fndecl_44998
168759 +enable_so_ocfs2_list_xattr_tree_rec_fndecl_45001 ocfs2_list_xattr_tree_rec fndecl 3 45001 NULL
168760 +enable_so_prism54_wpa_bss_ie_get_fndecl_45006 prism54_wpa_bss_ie_get fndecl 0 45006 NULL
168761 +enable_so_bnx2fc_initiate_els_fndecl_45008 bnx2fc_initiate_els fndecl 4 45008 NULL
168762 +enable_so_video_usercopy_fndecl_45012 video_usercopy fndecl 2 45012 NULL
168763 +enable_so_size_e820entry_45018 size e820entry 0 45018 NULL
168764 +enable_so_num_cqs_mthca_limits_45021 num_cqs mthca_limits 0 45021 NULL
168765 +enable_so_membase_vgastate_45022 membase vgastate 0 45022 NULL
168766 +enable_so_rd_size_hidp_session_45023 rd_size hidp_session 0 45023 NULL
168767 +enable_so_nvalid_xfs_dir3_icfree_hdr_45035 nvalid xfs_dir3_icfree_hdr 0 45035 NULL
168768 +enable_so_sock_kmalloc_fndecl_45038 sock_kmalloc fndecl 2 45038 NULL
168769 +enable_so_alloc_upcall_fndecl_45049 alloc_upcall fndecl 2 45049 NULL nohasharray
168770 +enable_so_ib_uverbs_rereg_mr_fndecl_45049 ib_uverbs_rereg_mr fndecl 4 45049 &enable_so_alloc_upcall_fndecl_45049
168771 +enable_so_hs_extra_bytes_cfs_hash_45050 hs_extra_bytes cfs_hash 0 45050 NULL
168772 +enable_so_bfad_iocmd_debug_fw_core_fndecl_45051 bfad_iocmd_debug_fw_core fndecl 0 45051 NULL nohasharray
168773 +enable_so_small_smb_init_fndecl_45051 small_smb_init fndecl 2 45051 &enable_so_bfad_iocmd_debug_fw_core_fndecl_45051
168774 +enable_so_tx_ring_count_e1000_adapter_45060 tx_ring_count e1000_adapter 0 45060 NULL
168775 +enable_so_sd_sgentry_align_brcmfmac_sdio_platform_data_45061 sd_sgentry_align brcmfmac_sdio_platform_data 0 45061 NULL
168776 +enable_so_write_buffer_size_vardecl_legousbtower_c_45062 write_buffer_size vardecl_legousbtower.c 0 45062 NULL
168777 +enable_so_read_vbt_r10_fndecl_45076 read_vbt_r10 fndecl 1 45076 NULL
168778 +enable_so_sendpage_iscsi_sw_tcp_conn_45081 sendpage iscsi_sw_tcp_conn 0 45081 NULL
168779 +enable_so_unmap_mapping_range_vma_fndecl_45084 unmap_mapping_range_vma fndecl 2-3 45084 NULL
168780 +enable_so_regshift_uart_port_45089 regshift uart_port 0 45089 NULL
168781 +enable_so_revmap_size_irq_domain_45091 revmap_size irq_domain 0 45091 NULL
168782 +enable_so_ocfs2_lock_reflink_xattr_rec_allocators_fndecl_45097 ocfs2_lock_reflink_xattr_rec_allocators fndecl 3 45097 NULL
168783 +enable_so_bblog_size_mdp_superblock_1_45102 bblog_size mdp_superblock_1 0 45102 NULL
168784 +enable_so_nd_cmd_out_size_fndecl_45105 nd_cmd_out_size fndecl 0 45105 NULL nohasharray
168785 +enable_so_pitch_tmHWStreamParameters_45105 pitch tmHWStreamParameters 0 45105 &enable_so_nd_cmd_out_size_fndecl_45105 nohasharray
168786 +enable_so_head_timestamp_event_queue_45105 head timestamp_event_queue 0 45105 &enable_so_pitch_tmHWStreamParameters_45105
168787 +enable_so_skb_tx_rsvd_cxgbi_device_45109 skb_tx_rsvd cxgbi_device 0 45109 NULL
168788 +enable_so_init_data_container_fndecl_45110 init_data_container fndecl 1 45110 NULL nohasharray
168789 +enable_so_watchdog_devt_vardecl_watchdog_dev_c_45110 watchdog_devt vardecl_watchdog_dev.c 0 45110 &enable_so_init_data_container_fndecl_45110
168790 +enable_so_ea_size_s_fnode_45115 ea_size_s fnode 0 45115 NULL nohasharray
168791 +enable_so_handle_error_msi_domain_ops_45115 handle_error msi_domain_ops 0 45115 &enable_so_ea_size_s_fnode_45115
168792 +enable_so_ov518_pkt_scan_fndecl_45121 ov518_pkt_scan fndecl 3 45121 NULL
168793 +enable_so_vblk_size_vmdb_45123 vblk_size vmdb 0 45123 NULL
168794 +enable_so_early_init_dt_scan_root_fndecl_45127 early_init_dt_scan_root fndecl 1 45127 NULL nohasharray
168795 +enable_so_key_len_mwifiex_ds_encrypt_key_45127 key_len mwifiex_ds_encrypt_key 0 45127 &enable_so_early_init_dt_scan_root_fndecl_45127 nohasharray
168796 +enable_so_offset_nb8800_rx_buf_45127 offset nb8800_rx_buf 0 45127 &enable_so_key_len_mwifiex_ds_encrypt_key_45127
168797 +enable_so_img_x_zoran_jpg_settings_45135 img_x zoran_jpg_settings 0 45135 NULL
168798 +enable_so_offset_mlx4_clock_params_45137 offset mlx4_clock_params 0 45137 NULL
168799 +enable_so_specified_table_size_vardecl_45152 specified_table_size vardecl 0 45152 NULL
168800 +enable_so_MaxLanBuckets__MSG_PORT_FACTS_REPLY_45155 MaxLanBuckets _MSG_PORT_FACTS_REPLY 0 45155 NULL
168801 +enable_so_ocfs2_set_refcount_tree_fndecl_45158 ocfs2_set_refcount_tree fndecl 3 45158 NULL
168802 +enable_so_pwc_get_fps_Nala_fndecl_45162 pwc_get_fps_Nala fndecl 0 45162 NULL
168803 +enable_so_cmd_sg_cnt_srp_target_port_45169 cmd_sg_cnt srp_target_port 0 45169 NULL
168804 +enable_so_pkcs7_sig_note_issuer_fndecl_45170 pkcs7_sig_note_issuer fndecl 5 45170 NULL
168805 +enable_so_hpfs_remove_dirent_fndecl_45171 hpfs_remove_dirent fndecl 2 45171 NULL nohasharray
168806 +enable_so_remove_nearest_fndecl_45171 remove_nearest fndecl 4 45171 &enable_so_hpfs_remove_dirent_fndecl_45171 nohasharray
168807 +enable_so_n_ao_urbs_usbdux_private_45171 n_ao_urbs usbdux_private 0 45171 &enable_so_remove_nearest_fndecl_45171
168808 +enable_so_opticon_write_fndecl_45172 opticon_write fndecl 4 45172 NULL
168809 +enable_so_sel_write_checkreqprot_fndecl_45173 sel_write_checkreqprot fndecl 3 45173 NULL
168810 +enable_so_leaf_cut_entries_fndecl_45176 leaf_cut_entries fndecl 0-4 45176 NULL
168811 +enable_so_acl_alloc_num_fndecl_45177 acl_alloc_num fndecl 2-1 45177 NULL
168812 +enable_so_nfsd_splice_read_fndecl_45181 nfsd_splice_read fndecl 3 45181 NULL nohasharray
168813 +enable_so_quirk_awe32_add_ports_fndecl_45181 quirk_awe32_add_ports fndecl 3 45181 &enable_so_nfsd_splice_read_fndecl_45181
168814 +enable_so_n_namesz_elf32_note_45186 n_namesz elf32_note 0 45186 NULL
168815 +enable_so_gfs2_bmap_alloc_fndecl_45189 gfs2_bmap_alloc fndecl 7 45189 NULL
168816 +enable_so_mtu_l2cap_conn_45195 mtu l2cap_conn 0 45195 NULL
168817 +enable_so_count_user_sgentry_45207 count user_sgentry 0 45207 NULL
168818 +enable_so_pwr_tx_with_ps_read_fndecl_45216 pwr_tx_with_ps_read fndecl 3 45216 NULL
168819 +enable_so_l2cap_sock_recvmsg_fndecl_45221 l2cap_sock_recvmsg fndecl 3 45221 NULL
168820 +enable_so_ep_out_usbtest_info_45222 ep_out usbtest_info 0 45222 NULL
168821 +enable_so_nwords_xdr_stream_45223 nwords xdr_stream 0 45223 NULL
168822 +enable_so_hsu_dma_alloc_desc_fndecl_45228 hsu_dma_alloc_desc fndecl 1 45228 NULL
168823 +enable_so_cmt_orphans_ubifs_info_45232 cmt_orphans ubifs_info 0 45232 NULL
168824 +enable_so_packet_buffer_put_fndecl_45234 packet_buffer_put fndecl 3 45234 NULL
168825 +enable_so_ensure_zone_is_initialized_fndecl_45235 ensure_zone_is_initialized fndecl 2 45235 NULL
168826 +enable_so_max_cqes_mlx4_caps_45237 max_cqes mlx4_caps 0 45237 NULL
168827 +enable_so_internal_dev_change_mtu_fndecl_45242 internal_dev_change_mtu fndecl 2 45242 NULL
168828 +enable_so_aggregate_new_rx_fndecl_45246 aggregate_new_rx fndecl 4 45246 NULL
168829 +enable_so_st_nci_hci_dm_fwupd_start_fndecl_45248 st_nci_hci_dm_fwupd_start fndecl 3 45248 NULL
168830 +enable_so_f_height_fimc_frame_45250 f_height fimc_frame 0 45250 NULL
168831 +enable_so_base_erst_erange_45255 base erst_erange 0 45255 NULL
168832 +enable_so_ext4_update_inline_data_fndecl_45259 ext4_update_inline_data fndecl 3 45259 NULL
168833 +enable_so_nameLen_nw_info_struct_45260 nameLen nw_info_struct 0 45260 NULL
168834 +enable_so_check_sectors_in_chain_fndecl_45261 check_sectors_in_chain fndecl 2 45261 NULL
168835 +enable_so_num_rx_ring_sh_eth_private_45262 num_rx_ring sh_eth_private 0 45262 NULL
168836 +enable_so_alloc_buf_fndecl_45267 alloc_buf fndecl 2-3 45267 NULL
168837 +enable_so_generic_writepages_fndecl_45268 generic_writepages fndecl 0 45268 NULL nohasharray
168838 +enable_so_vmw_dmabuf_init_fndecl_45268 vmw_dmabuf_init fndecl 3 45268 &enable_so_generic_writepages_fndecl_45268
168839 +enable_so_uart_input_count_oxygen_45274 uart_input_count oxygen 0 45274 NULL
168840 +enable_so_mq_msgsize_mq_attr_45276 mq_msgsize mq_attr 0 45276 NULL
168841 +enable_so_rss_size_max_i40e_pf_45282 rss_size_max i40e_pf 0 45282 NULL
168842 +enable_so_mgt_set_varlen_fndecl_45287 mgt_set_varlen fndecl 4 45287 NULL
168843 +enable_so_ath6kl_sdio_write_async_fndecl_45290 ath6kl_sdio_write_async fndecl 4 45290 NULL
168844 +enable_so_rcvhdrcnt_qib_devdata_45297 rcvhdrcnt qib_devdata 0 45297 NULL
168845 +enable_so_hugetlbfs_read_actor_fndecl_45304 hugetlbfs_read_actor fndecl 0-4-2 45304 NULL
168846 +enable_so_atl1_change_mtu_fndecl_45313 atl1_change_mtu fndecl 2 45313 NULL nohasharray
168847 +enable_so_rx_count_ethtool_channels_45313 rx_count ethtool_channels 0 45313 &enable_so_atl1_change_mtu_fndecl_45313 nohasharray
168848 +enable_so_rx_ring_count_xgbe_prv_data_45313 rx_ring_count xgbe_prv_data 0 45313 &enable_so_rx_count_ethtool_channels_45313
168849 +enable_so_tstats_write_fndecl_45315 tstats_write fndecl 3 45315 NULL
168850 +enable_so_tipc_buf_acquire_fndecl_45318 tipc_buf_acquire fndecl 1 45318 NULL
168851 +enable_so_rx_data_fndecl_45321 rx_data fndecl 4 45321 NULL
168852 +enable_so_len_qib_diag_xpkt_45322 len qib_diag_xpkt 0 45322 NULL
168853 +enable_so_tipc_recv_stream_fndecl_45323 tipc_recv_stream fndecl 3 45323 NULL
168854 +enable_so_back_xfs_dir3_icleaf_hdr_45324 back xfs_dir3_icleaf_hdr 0 45324 NULL
168855 +enable_so_tcf_csum_ipv4_igmp_fndecl_45325 tcf_csum_ipv4_igmp fndecl 3 45325 NULL
168856 +enable_so_ubi_eba_read_leb_sg_fndecl_45326 ubi_eba_read_leb_sg fndecl 0 45326 NULL
168857 +enable_so_excessive_retries_read_fndecl_45338 excessive_retries_read fndecl 3 45338 NULL
168858 +enable_so_peer_chan_len_wmi_tdls_peer_capab_arg_45339 peer_chan_len wmi_tdls_peer_capab_arg 0 45339 NULL
168859 +enable_so_vm_munmap_fndecl_45341 vm_munmap fndecl 1-2 45341 NULL
168860 +enable_so_fdt_node_offset_by_compatible_fndecl_45345 fdt_node_offset_by_compatible fndecl 2 45345 NULL
168861 +enable_so___snd_util_mem_alloc_fndecl_45349 __snd_util_mem_alloc fndecl 2 45349 NULL
168862 +enable_so_uar_size_mlx4_dev_cap_45351 uar_size mlx4_dev_cap 0 45351 NULL
168863 +enable_so_fps_timblogiw_tvnorm_45355 fps timblogiw_tvnorm 0 45355 NULL
168864 +enable_so_reserve_bad_mem_fndecl_45356 reserve_bad_mem fndecl 2-3 45356 NULL
168865 +enable_so_icq_size_elevator_type_45359 icq_size elevator_type 0 45359 NULL
168866 +enable_so_mad_recvq_size_vardecl_mad_c_45372 mad_recvq_size vardecl_mad.c 0 45372 NULL
168867 +enable_so_get_urb_status_from_qtd_fndecl_45378 get_urb_status_from_qtd fndecl 0 45378 NULL
168868 +enable_so_txq_entries_efx_nic_45383 txq_entries efx_nic 0 45383 NULL
168869 +enable_so_verity_finish_io_fndecl_45387 verity_finish_io fndecl 2 45387 NULL nohasharray
168870 +enable_so_nchildren_retu_data_45387 nchildren retu_data 0 45387 &enable_so_verity_finish_io_fndecl_45387
168871 +enable_so_min_hblank_mt9v032_model_data_45392 min_hblank mt9v032_model_data 0 45392 NULL
168872 +enable_so_mmc_do_erase_fndecl_45393 mmc_do_erase fndecl 0 45393 NULL
168873 +enable_so_ebcnt_vardecl_speedtest_c_45398 ebcnt vardecl_speedtest.c 0 45398 NULL
168874 +enable_so_get_dpb_count_s5p_mfc_hw_ops_45399 get_dpb_count s5p_mfc_hw_ops 0 45399 NULL
168875 +enable_so_xpc_nasid_mask_nbytes_vardecl_xpc_partition_c_45405 xpc_nasid_mask_nbytes vardecl_xpc_partition.c 0 45405 NULL
168876 +enable_so_mtu_l2cap_le_conn_req_45411 mtu l2cap_le_conn_req 0 45411 NULL
168877 +enable_so_brcmf_init_nvram_parser_fndecl_45415 brcmf_init_nvram_parser fndecl 3 45415 NULL
168878 +enable_so_lastUnit_INFTLPartition_45416 lastUnit INFTLPartition 0 45416 NULL
168879 +enable_so_pos_c4iw_debugfs_data_45424 pos c4iw_debugfs_data 0 45424 NULL
168880 +enable_so_fats_msdos_sb_info_45426 fats msdos_sb_info 0 45426 NULL
168881 +enable_so___munlock_pagevec_fill_fndecl_45430 __munlock_pagevec_fill fndecl 0-4 45430 NULL
168882 +enable_so_compat_SyS_get_mempolicy_fndecl_45436 compat_SyS_get_mempolicy fndecl 3 45436 NULL
168883 +enable_so_rn_tnamelen_nfsd4_rename_45437 rn_tnamelen nfsd4_rename 0 45437 NULL
168884 +enable_so_radeon_ttm_tt_set_userptr_fndecl_45438 radeon_ttm_tt_set_userptr fndecl 2 45438 NULL
168885 +enable_so_nfsd_hashsize_fndecl_45441 nfsd_hashsize fndecl 0 45441 NULL
168886 +enable_so_qcaspi_netdev_change_mtu_fndecl_45450 qcaspi_netdev_change_mtu fndecl 2 45450 NULL
168887 +enable_so_start_bdi_bd_transfer_45454 start_bdi bd_transfer 0 45454 NULL
168888 +enable_so_wTotalLength_usb_bos_descriptor_45455 wTotalLength usb_bos_descriptor 0 45455 NULL
168889 +enable_so_nonpaging_map_fndecl_45460 nonpaging_map fndecl 4 45460 NULL
168890 +enable_so_cfrfml_create_fndecl_45463 cfrfml_create fndecl 3 45463 NULL
168891 +enable_so_ssize_jumpshot_info_45467 ssize jumpshot_info 0 45467 NULL
168892 +enable_so_index_nullb_45470 index nullb 0 45470 NULL
168893 +enable_so_sockaddr_len_audit_context_45471 sockaddr_len audit_context 0 45471 NULL
168894 +enable_so_elf_load_addr_kimage_arch_45472 elf_load_addr kimage_arch 0 45472 NULL
168895 +enable_so_gx_line_delta_fndecl_45476 gx_line_delta fndecl 0-2-1 45476 NULL
168896 +enable_so_i_pos_fat_slot_info_45481 i_pos fat_slot_info 0 45481 NULL
168897 +enable_so_hdisplay_drm_display_mode_45484 hdisplay drm_display_mode 0 45484 NULL
168898 +enable_so_memblock_virt_alloc_try_nid_nopanic_fndecl_45487 memblock_virt_alloc_try_nid_nopanic fndecl 2-1-3-4 45487 NULL
168899 +enable_so_convert_initialized_extent_fndecl_45492 convert_initialized_extent fndecl 0-6 45492 NULL
168900 +enable_so_pipe_out_lan78xx_net_45497 pipe_out lan78xx_net 0 45497 NULL nohasharray
168901 +enable_so_isofs_bmap_fndecl_45497 isofs_bmap fndecl 0-2 45497 &enable_so_pipe_out_lan78xx_net_45497
168902 +enable_so_bdeSize_ULP_BDL_45501 bdeSize ULP_BDL 0 45501 NULL
168903 +enable_so_nci_uart_default_recv_buf_fndecl_45502 nci_uart_default_recv_buf fndecl 4 45502 NULL
168904 +enable_so_mwifiex_set_gen_ie_fndecl_45504 mwifiex_set_gen_ie fndecl 3 45504 NULL
168905 +enable_so_acl_alloc_stack_init_fndecl_45509 acl_alloc_stack_init fndecl 1 45509 NULL
168906 +enable_so_free_dind_blocks_fndecl_45512 free_dind_blocks fndecl 3 45512 NULL
168907 +enable_so_ubifs_recover_leb_fndecl_45516 ubifs_recover_leb fndecl 3 45516 NULL
168908 +enable_so_stv6110_write_regs_fndecl_45517 stv6110_write_regs fndecl 4 45517 NULL nohasharray
168909 +enable_so_buffer_size_vardecl_cpia2_v4l_c_45517 buffer_size vardecl_cpia2_v4l.c 0 45517 &enable_so_stv6110_write_regs_fndecl_45517
168910 +enable_so_inode_change_ok_fndecl_45525 inode_change_ok fndecl 0 45525 NULL
168911 +enable_so_cifs_partialpagewrite_fndecl_45527 cifs_partialpagewrite fndecl 2-3 45527 NULL nohasharray
168912 +enable_so_callback_via_vardecl_platform_pci_c_45527 callback_via vardecl_platform-pci.c 0 45527 &enable_so_cifs_partialpagewrite_fndecl_45527
168913 +enable_so_ssb_hcd_create_pdev_fndecl_45528 ssb_hcd_create_pdev fndecl 4-3 45528 NULL
168914 +enable_so_sizeof_dev_private_peak_usb_adapter_45529 sizeof_dev_private peak_usb_adapter 0 45529 NULL
168915 +enable_so_hpfs_trim_fs_fndecl_45531 hpfs_trim_fs fndecl 2-3 45531 NULL
168916 +enable_so_wl1273_fm_fops_write_fndecl_45534 wl1273_fm_fops_write fndecl 3 45534 NULL
168917 +enable_so_rtsx_usb_bulk_transfer_sglist_fndecl_45538 rtsx_usb_bulk_transfer_sglist fndecl 5-2-0-4 45538 NULL
168918 +enable_so_size_nft_expr_ops_45543 size nft_expr_ops 0 45543 NULL
168919 +enable_so_if_sdio_host_to_card_fndecl_45545 if_sdio_host_to_card fndecl 4 45545 NULL
168920 +enable_so_mp_agg_pkt_limit_sdio_mmc_card_45546 mp_agg_pkt_limit sdio_mmc_card 0 45546 NULL
168921 +enable_so_driver_max_VFs_pci_sriov_45552 driver_max_VFs pci_sriov 0 45552 NULL
168922 +enable_so_bpp_via_format_45554 bpp via_format 0 45554 NULL
168923 +enable_so_pci_quatech_setup_fndecl_45560 pci_quatech_setup fndecl 4 45560 NULL
168924 +enable_so_syncinterval_snd_usb_endpoint_45567 syncinterval snd_usb_endpoint 0 45567 NULL
168925 +enable_so_SyS_prctl_fndecl_45569 SyS_prctl fndecl 4 45569 NULL
168926 +enable_so_height_pwc_device_45570 height pwc_device 0 45570 NULL nohasharray
168927 +enable_so_amdtp_tscm_init_fndecl_45570 amdtp_tscm_init fndecl 4 45570 &enable_so_height_pwc_device_45570
168928 +enable_so_get_gate_page_fndecl_45571 get_gate_page fndecl 2 45571 NULL
168929 +enable_so_srp_create_fr_pool_fndecl_45572 srp_create_fr_pool fndecl 3 45572 NULL
168930 +enable_so_s_partition_func_udf_part_map_45579 s_partition_func udf_part_map 0 45579 NULL
168931 +enable_so_f2fs_sync_file_fndecl_45585 f2fs_sync_file fndecl 2-3 45585 NULL
168932 +enable_so_wpan_phy_new_fndecl_45593 wpan_phy_new fndecl 2 45593 NULL
168933 +enable_so_h_len_rds_header_45594 h_len rds_header 0 45594 NULL
168934 +enable_so_upd_received_ubi_volume_45595 upd_received ubi_volume 0 45595 NULL
168935 +enable_so_slave_init_fndecl_45597 slave_init fndecl 0 45597 NULL
168936 +enable_so_readpos_cx18_buffer_45604 readpos cx18_buffer 0 45604 NULL
168937 +enable_so_l_logBBsize_xlog_45614 l_logBBsize xlog 0 45614 NULL
168938 +enable_so_crtc_vblank_end_drm_display_mode_45620 crtc_vblank_end drm_display_mode 0 45620 NULL
168939 +enable_so_smk_read_ambient_fndecl_45623 smk_read_ambient fndecl 3 45623 NULL
168940 +enable_so_image_size_nvbios_npdeT_45624 image_size nvbios_npdeT 0 45624 NULL
168941 +enable_so_blocknr_disk_index_entry_45635 blocknr disk_index_entry 0 45635 NULL
168942 +enable_so_advmss_tcp_sock_45637 advmss tcp_sock 0 45637 NULL nohasharray
168943 +enable_so_btrfs_bio_alloc_fndecl_45637 btrfs_bio_alloc fndecl 2-3 45637 &enable_so_advmss_tcp_sock_45637 nohasharray
168944 +enable_so_ifalias_store_fndecl_45637 ifalias_store fndecl 4 45637 &enable_so_btrfs_bio_alloc_fndecl_45637
168945 +enable_so_tcfv_push_vid_tcf_vlan_45639 tcfv_push_vid tcf_vlan 0 45639 NULL
168946 +enable_so_ib_uverbs_modify_srq_fndecl_45645 ib_uverbs_modify_srq fndecl 4 45645 NULL
168947 +enable_so_inftl_writeblock_fndecl_45653 inftl_writeblock fndecl 2 45653 NULL
168948 +enable_so_preproc_res_proc_context_45654 preproc res_proc_context 0 45654 NULL
168949 +enable_so_size_core_name_45656 size core_name 0 45656 NULL
168950 +enable_so_submit_bh_fndecl_45660 submit_bh fndecl 0 45660 NULL nohasharray
168951 +enable_so_bnxt_alloc_vf_resources_fndecl_45660 bnxt_alloc_vf_resources fndecl 2 45660 &enable_so_submit_bh_fndecl_45660
168952 +enable_so_jfs_direct_IO_fndecl_45661 jfs_direct_IO fndecl 3 45661 NULL
168953 +enable_so_blockmask_alauda_media_info_45662 blockmask alauda_media_info 0 45662 NULL
168954 +enable_so_xfer_from_user_fndecl_45672 xfer_from_user fndecl 3 45672 NULL
168955 +enable_so_dmi_base_vardecl_dmi_scan_c_45673 dmi_base vardecl_dmi_scan.c 0 45673 NULL nohasharray
168956 +enable_so_videobuf_dqbuf_fndecl_45673 videobuf_dqbuf fndecl 0 45673 &enable_so_dmi_base_vardecl_dmi_scan_c_45673
168957 +enable_so__snd_pcm_hw_param_min_fndecl_45677 _snd_pcm_hw_param_min fndecl 3 45677 NULL
168958 +enable_so_ocfs2_get_sector_fndecl_45678 ocfs2_get_sector fndecl 4-3 45678 NULL
168959 +enable_so_ib_umem_odp_map_dma_pages_fndecl_45679 ib_umem_odp_map_dma_pages fndecl 0-2 45679 NULL nohasharray
168960 +enable_so_lhead_offs_ubifs_info_45679 lhead_offs ubifs_info 0 45679 &enable_so_ib_umem_odp_map_dma_pages_fndecl_45679
168961 +enable_so_hfsplus_getxattr_finder_info_fndecl_45680 hfsplus_getxattr_finder_info fndecl 0 45680 NULL
168962 +enable_so_src_y_yuv_frame_info_45681 src_y yuv_frame_info 0 45681 NULL
168963 +enable_so_sys_add_key_fndecl_45691 sys_add_key fndecl 4 45691 NULL nohasharray
168964 +enable_so_nvme_trans_copy_to_user_fndecl_45691 nvme_trans_copy_to_user fndecl 3 45691 &enable_so_sys_add_key_fndecl_45691
168965 +enable_so_endpt_ubifs_unclean_leb_45692 endpt ubifs_unclean_leb 0 45692 NULL nohasharray
168966 +enable_so_hd_end_request_cur_fndecl_45692 hd_end_request_cur fndecl 1 45692 &enable_so_endpt_ubifs_unclean_leb_45692
168967 +enable_so___netdev_adjacent_dev_insert_fndecl_45697 __netdev_adjacent_dev_insert fndecl 0 45697 NULL
168968 +enable_so_write_file_spectral_short_repeat_fndecl_45700 write_file_spectral_short_repeat fndecl 3 45700 NULL
168969 +enable_so_shift_badblocks_45703 shift badblocks 0 45703 NULL
168970 +enable_so_offset_ixgbe_ring_feature_45704 offset ixgbe_ring_feature 0 45704 NULL
168971 +enable_so_data_transfer_length_hpt_iop_request_get_config_45705 data_transfer_length hpt_iop_request_get_config 0 45705 NULL
168972 +enable_so_do_splice_direct_fndecl_45710 do_splice_direct fndecl 5-0 45710 NULL nohasharray
168973 +enable_so_fi_nblocks_nilfs_finfo_45710 fi_nblocks nilfs_finfo 0 45710 &enable_so_do_splice_direct_fndecl_45710
168974 +enable_so_st5481_setup_isocpipes_fndecl_45711 st5481_setup_isocpipes fndecl 6-4 45711 NULL
168975 +enable_so_width_cx23885_dev_45714 width cx23885_dev 0 45714 NULL
168976 +enable_so_ocfs2_xattr_set_fndecl_45720 ocfs2_xattr_set fndecl 5 45720 NULL
168977 +enable_so_num_cqs_mlx4_caps_45727 num_cqs mlx4_caps 0 45727 NULL
168978 +enable_so_len_bnx2x_fw_file_section_45732 len bnx2x_fw_file_section 0 45732 NULL
168979 +enable_so_sys_ptrace_fndecl_45738 sys_ptrace fndecl 3 45738 NULL
168980 +enable_so___add_inline_refs_fndecl_45744 __add_inline_refs fndecl 3 45744 NULL
168981 +enable_so_get_args_iw_priv_args_45748 get_args iw_priv_args 0 45748 NULL
168982 +enable_so_wil_write_file_recovery_fndecl_45753 wil_write_file_recovery fndecl 3 45753 NULL
168983 +enable_so_vslen_vardecl_matroxfb_base_c_45755 vslen vardecl_matroxfb_base.c 0 45755 NULL
168984 +enable_so_extra_postfix_len_ieee80211_crypto_ops_45763 extra_postfix_len ieee80211_crypto_ops 0 45763 NULL
168985 +enable_so_blk_end_request_all_fndecl_45767 blk_end_request_all fndecl 2 45767 NULL nohasharray
168986 +enable_so_count_n_hdlc_buf_45767 count n_hdlc_buf 0 45767 &enable_so_blk_end_request_all_fndecl_45767
168987 +enable_so_mlx4_set_sched_fndecl_45771 mlx4_set_sched fndecl 2 45771 NULL nohasharray
168988 +enable_so_size_entry_mwt_fndecl_45771 size_entry_mwt fndecl 0 45771 &enable_so_mlx4_set_sched_fndecl_45771
168989 +enable_so_set_acoustic_fndecl_45772 set_acoustic fndecl 2 45772 NULL
168990 +enable_so_flows_cnt_fq_codel_sched_data_45775 flows_cnt fq_codel_sched_data 0 45775 NULL
168991 +enable_so_r592_wait_status_fndecl_45781 r592_wait_status fndecl 0 45781 NULL nohasharray
168992 +enable_so_len_ch_mem_range_45781 len ch_mem_range 0 45781 &enable_so_r592_wait_status_fndecl_45781
168993 +enable_so_get_inode_info_fndecl_45784 get_inode_info fndecl 0 45784 NULL nohasharray
168994 +enable_so_ath6kl_wmi_set_htcap_cmd_fndecl_45784 ath6kl_wmi_set_htcap_cmd fndecl 2 45784 &enable_so_get_inode_info_fndecl_45784
168995 +enable_so_online_pages_fndecl_45786 online_pages fndecl 1-2 45786 NULL
168996 +enable_so_change_xattr_fndecl_45789 change_xattr fndecl 5 45789 NULL
168997 +enable_so_i2c_r_fndecl_45804 i2c_r fndecl 0 45804 NULL
168998 +enable_so_h_suballoc_loc_ocfs2_extent_block_45805 h_suballoc_loc ocfs2_extent_block 0 45805 NULL
168999 +enable_so_len_sync_pt_info_45809 len sync_pt_info 0 45809 NULL
169000 +enable_so_max_node_size_pnp_dev_node_info_45813 max_node_size pnp_dev_node_info 0 45813 NULL
169001 +enable_so_xfs_zero_remaining_bytes_fndecl_45820 xfs_zero_remaining_bytes fndecl 3-2 45820 NULL
169002 +enable_so_smk_write_net4addr_fndecl_45821 smk_write_net4addr fndecl 3 45821 NULL
169003 +enable_so_msg_init_fndecl_45825 msg_init fndecl 4 45825 NULL
169004 +enable_so_tx_cmd_ep_usb_card_rec_45833 tx_cmd_ep usb_card_rec 0 45833 NULL
169005 +enable_so_max_channels_evtchn_ops_45841 max_channels evtchn_ops 0 45841 NULL
169006 +enable_so_width_zr364xx_camera_45844 width zr364xx_camera 0 45844 NULL nohasharray
169007 +enable_so_mwifiex_cfg80211_assoc_fndecl_45844 mwifiex_cfg80211_assoc fndecl 2 45844 &enable_so_width_zr364xx_camera_45844
169008 +enable_so_sys_mlock_fndecl_45847 sys_mlock fndecl 1-2 45847 NULL nohasharray
169009 +enable_so_bochs_gem_create_fndecl_45847 bochs_gem_create fndecl 2 45847 &enable_so_sys_mlock_fndecl_45847
169010 +enable_so_xfs_rtallocate_extent_size_fndecl_45848 xfs_rtallocate_extent_size fndecl 4-8 45848 NULL
169011 +enable_so_num_fault_mutexes_vardecl_hugetlb_c_45857 num_fault_mutexes vardecl_hugetlb.c 0 45857 NULL
169012 +enable_so_num_wsm_udp_port_filter_hdr_45858 num wsm_udp_port_filter_hdr 0 45858 NULL
169013 +enable_so_st21nfca_hci_dm_put_data_fndecl_45859 st21nfca_hci_dm_put_data fndecl 3 45859 NULL nohasharray
169014 +enable_so_data_used_cx18_mdl_ack_45859 data_used cx18_mdl_ack 0 45859 &enable_so_st21nfca_hci_dm_put_data_fndecl_45859
169015 +enable_so_pipe_interrupt_rtl8xxxu_priv_45862 pipe_interrupt rtl8xxxu_priv 0 45862 NULL
169016 +enable_so_net_header_len_inet_connection_sock_af_ops_45863 net_header_len inet_connection_sock_af_ops 0 45863 NULL
169017 +enable_so___a2mp_build_fndecl_45864 __a2mp_build fndecl 3 45864 NULL
169018 +enable_so_xfrm_nr_xfrm_policy_45865 xfrm_nr xfrm_policy 0 45865 NULL
169019 +enable_so_parity_ore_layout_45869 parity ore_layout 0 45869 NULL nohasharray
169020 +enable_so_hsc_msg_alloc_fndecl_45869 hsc_msg_alloc fndecl 1 45869 &enable_so_parity_ore_layout_45869
169021 +enable_so_fpfd_adf4350_state_45870 fpfd adf4350_state 0 45870 NULL
169022 +enable_so_aead_sendpage_fndecl_45873 aead_sendpage fndecl 4-3 45873 NULL
169023 +enable_so_mwifiex_alloc_sdio_mpa_buffers_fndecl_45874 mwifiex_alloc_sdio_mpa_buffers fndecl 2-3 45874 NULL
169024 +enable_so_pti_char_write_fndecl_45875 pti_char_write fndecl 3 45875 NULL
169025 +enable_so_ext4_es_remove_extent_fndecl_45877 ext4_es_remove_extent fndecl 3-2 45877 NULL
169026 +enable_so_quality_v4l2_jpegcompression_45881 quality v4l2_jpegcompression 0 45881 NULL nohasharray
169027 +enable_so_alloc_wr_fndecl_45881 alloc_wr fndecl 2-1 45881 &enable_so_quality_v4l2_jpegcompression_45881
169028 +enable_so_max_buffer_sectors_vardecl_floppy_c_45884 max_buffer_sectors vardecl_floppy.c 0 45884 NULL
169029 +enable_so_index_cnt_btrfs_inode_45890 index_cnt btrfs_inode 0 45890 NULL
169030 +enable_so_do_shared_fault_fndecl_45891 do_shared_fault fndecl 3-5 45891 NULL
169031 +enable_so___absent_pages_in_range_fndecl_45892 __absent_pages_in_range fndecl 0-2-3 45892 NULL nohasharray
169032 +enable_so_map_target_type_45892 map target_type 0 45892 &enable_so___absent_pages_in_range_fndecl_45892
169033 +enable_so_smbase_kvm_vcpu_arch_45895 smbase kvm_vcpu_arch 0 45895 NULL nohasharray
169034 +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
169035 +enable_so_ath6kl_lrssi_roam_read_fndecl_45901 ath6kl_lrssi_roam_read fndecl 3 45901 NULL
169036 +enable_so_dfs_num_of_radar_detections_read_fndecl_45903 dfs_num_of_radar_detections_read fndecl 3 45903 NULL
169037 +enable_so_generic_file_direct_write_fndecl_45904 generic_file_direct_write fndecl 3-0 45904 NULL nohasharray
169038 +enable_so_bLength_usb_descriptor_header_45904 bLength usb_descriptor_header 0 45904 &enable_so_generic_file_direct_write_fndecl_45904
169039 +enable_so_jhead_cnt_ubifs_info_45905 jhead_cnt ubifs_info 0 45905 NULL
169040 +enable_so_vce_v1_0_bo_size_fndecl_45909 vce_v1_0_bo_size fndecl 0 45909 NULL
169041 +enable_so_bg_itable_unused_hi_ext4_group_desc_45918 bg_itable_unused_hi ext4_group_desc 0 45918 NULL
169042 +enable_so_alloc_sglist_fndecl_45919 alloc_sglist fndecl 3-2-1 45919 NULL
169043 +enable_so_wl1271_tx_allocate_fndecl_45921 wl1271_tx_allocate fndecl 4 45921 NULL
169044 +enable_so_mru_asyncppp_45929 mru asyncppp 0 45929 NULL
169045 +enable_so_range_ccu_data_45932 range ccu_data 0 45932 NULL
169046 +enable_so_fan_count_applesmc_registers_45934 fan_count applesmc_registers 0 45934 NULL
169047 +enable_so_num_ports_pciserial_board_45938 num_ports pciserial_board 0 45938 NULL
169048 +enable_so_sdhci_pltfm_register_fndecl_45940 sdhci_pltfm_register fndecl 3 45940 NULL
169049 +enable_so_ath6kl_wmi_setpmkid_cmd_fndecl_45949 ath6kl_wmi_setpmkid_cmd fndecl 2 45949 NULL nohasharray
169050 +enable_so_num_vfs_be_pcie_res_desc_45949 num_vfs be_pcie_res_desc 0 45949 &enable_so_ath6kl_wmi_setpmkid_cmd_fndecl_45949 nohasharray
169051 +enable_so_smbus_base_vardecl_i2c_sis630_c_45949 smbus_base vardecl_i2c-sis630.c 0 45949 &enable_so_num_vfs_be_pcie_res_desc_45949
169052 +enable_so_fraglen_decryptor_desc_45950 fraglen decryptor_desc 0 45950 NULL
169053 +enable_so_sigma_fw_load_samplerates_fndecl_45951 sigma_fw_load_samplerates fndecl 3 45951 NULL
169054 +enable_so_max_sge_ib_srq_attr_45956 max_sge ib_srq_attr 0 45956 NULL
169055 +enable_so_qnx6_find_entry_fndecl_45969 qnx6_find_entry fndecl 0 45969 NULL nohasharray
169056 +enable_so_len_ippp_buf_queue_45969 len ippp_buf_queue 0 45969 &enable_so_qnx6_find_entry_fndecl_45969
169057 +enable_so_ext_tree_split_fndecl_45973 ext_tree_split fndecl 3 45973 NULL
169058 +enable_so_addr_rrpc_rev_addr_45978 addr rrpc_rev_addr 0 45978 NULL
169059 +enable_so_dbdma_cmd_yellowfin_desc_45980 dbdma_cmd yellowfin_desc 0 45980 NULL nohasharray
169060 +enable_so_target_size_ebt_entry_target_45980 target_size ebt_entry_target 0 45980 &enable_so_dbdma_cmd_yellowfin_desc_45980
169061 +enable_so_i40e_calculate_l2fpm_size_fndecl_45987 i40e_calculate_l2fpm_size fndecl 0-1-2-3-4 45987 NULL
169062 +enable_so_up_fnode_45991 up fnode 0 45991 NULL
169063 +enable_so_alloc_chrdev_region_fndecl_45995 alloc_chrdev_region fndecl 0 45995 NULL
169064 +enable_so___probe_kernel_read_fndecl_45996 __probe_kernel_read fndecl 3 45996 NULL
169065 +enable_so_sctp_v4_err_fndecl_45997 sctp_v4_err fndecl 2 45997 NULL nohasharray
169066 +enable_so_num_total_dacs_snd_ice1712_45997 num_total_dacs snd_ice1712 0 45997 &enable_so_sctp_v4_err_fndecl_45997
169067 +enable_so_finish_request_fndecl_46010 finish_request fndecl 5 46010 NULL
169068 +enable_so_pcs_duplex_stmmac_extra_stats_46013 pcs_duplex stmmac_extra_stats 0 46013 NULL
169069 +enable_so_get_derived_key_fndecl_46015 get_derived_key fndecl 4 46015 NULL
169070 +enable_so_afs_proc_cells_write_fndecl_46016 afs_proc_cells_write fndecl 3 46016 NULL
169071 +enable_so_vmemmap_alloc_block_buf_fndecl_46037 vmemmap_alloc_block_buf fndecl 1 46037 NULL
169072 +enable_so_acl_mtu_hci_dev_46038 acl_mtu hci_dev 0 46038 NULL
169073 +enable_so_dma_size_qlcnic_host_rds_ring_46045 dma_size qlcnic_host_rds_ring 0 46045 NULL
169074 +enable_so___vmalloc_fndecl_46051 __vmalloc fndecl 1 46051 NULL
169075 +enable_so_pair_device_fndecl_46052 pair_device fndecl 4 46052 NULL nohasharray
169076 +enable_so_event_oom_late_read_fndecl_46052 event_oom_late_read fndecl 3 46052 &enable_so_pair_device_fndecl_46052 nohasharray
169077 +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
169078 +enable_so_sys_lsetxattr_fndecl_46058 sys_lsetxattr fndecl 4 46058 NULL
169079 +enable_so_data_len_fc_fcp_pkt_46059 data_len fc_fcp_pkt 0 46059 NULL
169080 +enable_so_sisfb_parm_mem_sis_video_info_46063 sisfb_parm_mem sis_video_info 0 46063 NULL nohasharray
169081 +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
169082 +enable_so_MaxBurstLength_iscsi_sess_ops_46064 MaxBurstLength iscsi_sess_ops 0 46064 NULL nohasharray
169083 +enable_so_s_start_bfs_super_block_46064 s_start bfs_super_block 0 46064 &enable_so_MaxBurstLength_iscsi_sess_ops_46064
169084 +enable_so_seg_count_drm_buf_entry_46065 seg_count drm_buf_entry 0 46065 NULL
169085 +enable_so_piobufs_qib_ctxtdata_46066 piobufs qib_ctxtdata 0 46066 NULL
169086 +enable_so_FirstPhysicalEUN_NFTLMediaHeader_46068 FirstPhysicalEUN NFTLMediaHeader 0 46068 NULL
169087 +enable_so___devcgroup_check_permission_fndecl_46082 __devcgroup_check_permission fndecl 0 46082 NULL
169088 +enable_so_wSamplesPerFrame_uac_format_type_ii_ext_descriptor_46084 wSamplesPerFrame uac_format_type_ii_ext_descriptor 0 46084 NULL
169089 +enable_so_alloc_dca_provider_fndecl_46085 alloc_dca_provider fndecl 2 46085 NULL
169090 +enable_so_dm_startblk_adfs_discmap_46088 dm_startblk adfs_discmap 0 46088 NULL
169091 +enable_so_nr_pages_splice_pipe_desc_46095 nr_pages splice_pipe_desc 0 46095 NULL
169092 +enable_so_ubifs_setxattr_fndecl_46097 ubifs_setxattr fndecl 4 46097 NULL nohasharray
169093 +enable_so_len_sfi_table_header_46097 len sfi_table_header 0 46097 &enable_so_ubifs_setxattr_fndecl_46097 nohasharray
169094 +enable_so_hidraw_read_fndecl_46097 hidraw_read fndecl 3 46097 &enable_so_len_sfi_table_header_46097
169095 +enable_so_rxsz_fc_plogi_csp_s_46103 rxsz fc_plogi_csp_s 0 46103 NULL nohasharray
169096 +enable_so_jbd2_journal_write_metadata_buffer_fndecl_46103 jbd2_journal_write_metadata_buffer fndecl 4 46103 &enable_so_rxsz_fc_plogi_csp_s_46103 nohasharray
169097 +enable_so_ym_wmfw_adsp2_alg_hdr_46103 ym wmfw_adsp2_alg_hdr 0 46103 &enable_so_jbd2_journal_write_metadata_buffer_fndecl_46103 nohasharray
169098 +enable_so_control_write_fndecl_46103 control_write fndecl 6 46103 &enable_so_ym_wmfw_adsp2_alg_hdr_46103
169099 +enable_so_bs_vardecl_null_blk_c_46104 bs vardecl_null_blk.c 0 46104 NULL
169100 +enable_so_page_add_new_anon_rmap_fndecl_46112 page_add_new_anon_rmap fndecl 3 46112 NULL
169101 +enable_so_ioperm_get_fndecl_46118 ioperm_get fndecl 4-3 46118 NULL
169102 +enable_so_mic_calc_failure_read_fndecl_46119 mic_calc_failure_read fndecl 3 46119 NULL
169103 +enable_so_len_eeprom_private_46124 len eeprom_private 0 46124 NULL
169104 +enable_so_height_saa7134_dev_46126 height saa7134_dev 0 46126 NULL nohasharray
169105 +enable_so_tx_totallen_ncp_request_reply_46126 tx_totallen ncp_request_reply 0 46126 &enable_so_height_saa7134_dev_46126
169106 +enable_so_len_cp_header_46128 len cp_header 0 46128 NULL nohasharray
169107 +enable_so_get_mctgt_type_fndecl_46128 get_mctgt_type fndecl 2 46128 &enable_so_len_cp_header_46128
169108 +enable_so_sriov_enable_fndecl_46138 sriov_enable fndecl 2 46138 NULL
169109 +enable_so_prism2_info_scanresults_fndecl_46146 prism2_info_scanresults fndecl 3 46146 NULL
169110 +enable_so_memblock_alloc_range_nid_fndecl_46147 memblock_alloc_range_nid fndecl 2-1-3-0-4 46147 NULL nohasharray
169111 +enable_so_next_read_size_fdp_i2c_phy_46147 next_read_size fdp_i2c_phy 0 46147 &enable_so_memblock_alloc_range_nid_fndecl_46147
169112 +enable_so_port_mthca_qp_46155 port mthca_qp 0 46155 NULL
169113 +enable_so_udf_put_filename_fndecl_46157 udf_put_filename fndecl 0 46157 NULL
169114 +enable_so_bfad_iocmd_diag_sfp_fndecl_46160 bfad_iocmd_diag_sfp fndecl 0 46160 NULL
169115 +enable_so_transfer_len_xhci_transfer_event_46161 transfer_len xhci_transfer_event 0 46161 NULL
169116 +enable_so_max_segs_mmc_test_area_46176 max_segs mmc_test_area 0 46176 NULL
169117 +enable_so_key_size_ecryptfs_private_key_46181 key_size ecryptfs_private_key 0 46181 NULL
169118 +enable_so_mlock_fixup_fndecl_46182 mlock_fixup fndecl 4-3 46182 NULL
169119 +enable_so_fuse_file_llseek_fndecl_46193 fuse_file_llseek fndecl 2 46193 NULL nohasharray
169120 +enable_so_size_aper_size_info_32_46193 size aper_size_info_32 0 46193 &enable_so_fuse_file_llseek_fndecl_46193
169121 +enable_so_length_usb_iso_packet_descriptor_46197 length usb_iso_packet_descriptor 0 46197 NULL
169122 +enable_so_sctp_manip_pkt_fndecl_46198 sctp_manip_pkt fndecl 4 46198 NULL
169123 +enable_so_musb_readb_vardecl_46199 musb_readb vardecl 0 46199 NULL nohasharray
169124 +enable_so_snd_interval_refine_set_fndecl_46199 snd_interval_refine_set fndecl 2 46199 &enable_so_musb_readb_vardecl_46199
169125 +enable_so_efx_rx_packet_gro_fndecl_46201 efx_rx_packet_gro fndecl 3 46201 NULL
169126 +enable_so_count_raw_sock_46204 count raw_sock 0 46204 NULL
169127 +enable_so_bfad_iocmd_boot_query_fndecl_46207 bfad_iocmd_boot_query fndecl 0 46207 NULL
169128 +enable_so_hdrlen_ip_beet_phdr_46210 hdrlen ip_beet_phdr 0 46210 NULL nohasharray
169129 +enable_so_sync_request_md_personality_46210 sync_request md_personality 0 46210 &enable_so_hdrlen_ip_beet_phdr_46210
169130 +enable_so_assocresp_ies_len_cfg80211_beacon_data_46212 assocresp_ies_len cfg80211_beacon_data 0 46212 NULL
169131 +enable_so_modify_index_fndecl_46216 modify_index fndecl 3 46216 NULL
169132 +enable_so_unuse_pte_fndecl_46217 unuse_pte fndecl 3 46217 NULL
169133 +enable_so_cob_size_savagefb_par_46219 cob_size savagefb_par 0 46219 NULL nohasharray
169134 +enable_so_mult_to_ib_rate_fndecl_46219 mult_to_ib_rate fndecl 0 46219 &enable_so_cob_size_savagefb_par_46219
169135 +enable_so_ipw_write_fndecl_46220 ipw_write fndecl 3 46220 NULL
169136 +enable_so_bLength_usb_interface_assoc_descriptor_46229 bLength usb_interface_assoc_descriptor 0 46229 NULL
169137 +enable_so_venus_remove_fndecl_46230 venus_remove fndecl 4 46230 NULL nohasharray
169138 +enable_so_batadv_tt_local_hash_find_fndecl_46230 batadv_tt_local_hash_find fndecl 3 46230 &enable_so_venus_remove_fndecl_46230
169139 +enable_so_mei_nfc_recv_fndecl_46235 mei_nfc_recv fndecl 0-3 46235 NULL
169140 +enable_so_rsn_ie_len_libipw_network_46238 rsn_ie_len libipw_network 0 46238 NULL nohasharray
169141 +enable_so_xlog_do_recover_fndecl_46238 xlog_do_recover fndecl 3 46238 &enable_so_rsn_ie_len_libipw_network_46238
169142 +enable_so_response_length_mlx4_uverbs_ex_query_device_resp_46245 response_length mlx4_uverbs_ex_query_device_resp 0 46245 NULL
169143 +enable_so_node_acl_size_target_core_fabric_ops_46247 node_acl_size target_core_fabric_ops 0 46247 NULL
169144 +enable_so_erst_clear_fndecl_46248 erst_clear fndecl 1 46248 NULL
169145 +enable_so_proc_pid_cmdline_read_fndecl_46249 proc_pid_cmdline_read fndecl 3 46249 NULL
169146 +enable_so_gspca_dev_probe2_fndecl_46250 gspca_dev_probe2 fndecl 4 46250 NULL
169147 +enable_so_extra_beacon_tailroom_ieee80211_hw_46256 extra_beacon_tailroom ieee80211_hw 0 46256 NULL
169148 +enable_so_rocker_port_change_mtu_fndecl_46262 rocker_port_change_mtu fndecl 2 46262 NULL nohasharray
169149 +enable_so_len_ath10k_fw_ie_46262 len ath10k_fw_ie 0 46262 &enable_so_rocker_port_change_mtu_fndecl_46262
169150 +enable_so_size_xenvif_rx_meta_46270 size xenvif_rx_meta 0 46270 NULL
169151 +enable_so_qla27xx_fwdt_template_size_fndecl_46273 qla27xx_fwdt_template_size fndecl 0 46273 NULL
169152 +enable_so_onenand_read_oob_fndecl_46274 onenand_read_oob fndecl 2 46274 NULL
169153 +enable_so_smem_len_iwl_cfg_46276 smem_len iwl_cfg 0 46276 NULL
169154 +enable_so_desc_nr_md_rdev_46281 desc_nr md_rdev 0 46281 NULL
169155 +enable_so_xi_value_len_ocfs2_xattr_info_46285 xi_value_len ocfs2_xattr_info 0 46285 NULL
169156 +enable_so_dq_local_phys_blk_ocfs2_dquot_46292 dq_local_phys_blk ocfs2_dquot 0 46292 NULL
169157 +enable_so_len_nfs3_setaclargs_46293 len nfs3_setaclargs 0 46293 NULL
169158 +enable_so_tx_data_size_ircomm_tty_cb_46294 tx_data_size ircomm_tty_cb 0 46294 NULL
169159 +enable_so_omfs_allocate_block_fndecl_46295 omfs_allocate_block fndecl 2 46295 NULL
169160 +enable_so_status2_ar9003_rxs_46299 status2 ar9003_rxs 0 46299 NULL
169161 +enable_so_offset_nfsd3_readargs_46311 offset nfsd3_readargs 0 46311 NULL nohasharray
169162 +enable_so_ffs_prepare_buffer_fndecl_46311 ffs_prepare_buffer fndecl 2 46311 &enable_so_offset_nfsd3_readargs_46311
169163 +enable_so_num_vci_lanai_dev_46318 num_vci lanai_dev 0 46318 NULL
169164 +enable_so_biovec_create_pool_fndecl_46325 biovec_create_pool fndecl 1 46325 NULL nohasharray
169165 +enable_so_unit_qib_devdata_46325 unit qib_devdata 0 46325 &enable_so_biovec_create_pool_fndecl_46325
169166 +enable_so_i_size_inode_46327 i_size inode 0 46327 NULL
169167 +enable_so_pvr2_ioread_set_sync_key_fndecl_46329 pvr2_ioread_set_sync_key fndecl 3 46329 NULL
169168 +enable_so_shmem_zero_setup_fndecl_46334 shmem_zero_setup fndecl 0 46334 NULL nohasharray
169169 +enable_so_max_vnic_func_qlcnic_hardware_context_46334 max_vnic_func qlcnic_hardware_context 0 46334 &enable_so_shmem_zero_setup_fndecl_46334
169170 +enable_so_mwifiex_cfg80211_tdls_mgmt_fndecl_46335 mwifiex_cfg80211_tdls_mgmt fndecl 10 46335 NULL
169171 +enable_so_fh_ox_id_fc_frame_header_46336 fh_ox_id fc_frame_header 0 46336 NULL
169172 +enable_so_stv6110_read_regs_fndecl_46339 stv6110_read_regs fndecl 4 46339 NULL
169173 +enable_so_af9013_rd_regs_i2c_fndecl_46343 af9013_rd_regs_i2c fndecl 5 46343 NULL nohasharray
169174 +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
169175 +enable_so_recently_deleted_fndecl_46346 recently_deleted fndecl 3 46346 NULL
169176 +enable_so_zoran_v4l_set_format_fndecl_46347 zoran_v4l_set_format fndecl 2-3 46347 NULL
169177 +enable_so_fc_frame_alloc_fill_fndecl_46353 fc_frame_alloc_fill fndecl 2 46353 NULL
169178 +enable_so_dvb_ep_isoc_em28xx_46357 dvb_ep_isoc em28xx 0 46357 NULL
169179 +enable_so_shadow_image_fndecl_46361 shadow_image fndecl 3 46361 NULL
169180 +enable_so_debilen_av7110_46363 debilen av7110 0 46363 NULL
169181 +enable_so_ring_cons_per_user_data_46365 ring_cons per_user_data 0 46365 NULL
169182 +enable_so_max_write_size_ubifs_info_46369 max_write_size ubifs_info 0 46369 NULL
169183 +enable_so_device_create_with_groups_fndecl_46371 device_create_with_groups fndecl 3 46371 NULL
169184 +enable_so_descriptor_loc_fndecl_46373 descriptor_loc fndecl 0-3-2 46373 NULL
169185 +enable_so_bnx2_change_mtu_fndecl_46374 bnx2_change_mtu fndecl 2 46374 NULL nohasharray
169186 +enable_so_fs_path_ensure_buf_fndecl_46374 fs_path_ensure_buf fndecl 2 46374 &enable_so_bnx2_change_mtu_fndecl_46374
169187 +enable_so_acpi_ds_build_internal_buffer_obj_fndecl_46379 acpi_ds_build_internal_buffer_obj fndecl 3 46379 NULL
169188 +enable_so_gb_vardecl_null_blk_c_46399 gb vardecl_null_blk.c 0 46399 NULL
169189 +enable_so_max_loop_vardecl_loop_c_46402 max_loop vardecl_loop.c 0 46402 NULL
169190 +enable_so_piosize4k_qib_devdata_46406 piosize4k qib_devdata 0 46406 NULL
169191 +enable_so_SavagePanelWidth_savagefb_par_46407 SavagePanelWidth savagefb_par 0 46407 NULL
169192 +enable_so_skb_maybe_pull_tail_fndecl_46422 skb_maybe_pull_tail fndecl 3 46422 NULL
169193 +enable_so_proberesp_ies_len_cfg80211_beacon_data_46424 proberesp_ies_len cfg80211_beacon_data 0 46424 NULL
169194 +enable_so_qtd_copy_status_fndecl_46425 qtd_copy_status fndecl 4-3 46425 NULL
169195 +enable_so_rds_pin_pages_fndecl_46432 rds_pin_pages fndecl 1-0 46432 NULL
169196 +enable_so_st21nfca_hci_dep_link_up_fndecl_46438 st21nfca_hci_dep_link_up fndecl 5 46438 NULL nohasharray
169197 +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
169198 +enable_so_vid_bridge_vlan_info_46442 vid bridge_vlan_info 0 46442 NULL nohasharray
169199 +enable_so_len_acm_wb_46442 len acm_wb 0 46442 &enable_so_vid_bridge_vlan_info_46442 nohasharray
169200 +enable_so_nframes_gspca_dev_46442 nframes gspca_dev 0 46442 &enable_so_len_acm_wb_46442
169201 +enable_so_btrfsic_process_superblock_dev_mirror_fndecl_46444 btrfsic_process_superblock_dev_mirror fndecl 4 46444 NULL nohasharray
169202 +enable_so_iblock_execute_unmap_fndecl_46444 iblock_execute_unmap fndecl 3-2 46444 &enable_so_btrfsic_process_superblock_dev_mirror_fndecl_46444
169203 +enable_so_C_SYSC_get_mempolicy_fndecl_46447 C_SYSC_get_mempolicy fndecl 3 46447 NULL
169204 +enable_so_fb_base_phys_mb862xxfb_par_46449 fb_base_phys mb862xxfb_par 0 46449 NULL
169205 +enable_so_untranslate_fndecl_46453 untranslate fndecl 3 46453 NULL
169206 +enable_so_snd_seq_oss_writeq_new_fndecl_46455 snd_seq_oss_writeq_new fndecl 2 46455 NULL
169207 +enable_so_nfsd_nrpools_fndecl_46460 nfsd_nrpools fndecl 0 46460 NULL
169208 +enable_so_ib_copy_from_udata_fndecl_46461 ib_copy_from_udata fndecl 3 46461 NULL
169209 +enable_so_size_drm_local_map_46462 size drm_local_map 0 46462 NULL
169210 +enable_so_get_znode_fndecl_46463 get_znode fndecl 3 46463 NULL
169211 +enable_so_ssid_len_hfa384x_hostscan_result_46466 ssid_len hfa384x_hostscan_result 0 46466 NULL
169212 +enable_so_ext4_resize_fs_fndecl_46468 ext4_resize_fs fndecl 2 46468 NULL
169213 +enable_so_kmalloc_large_node_fndecl_46469 kmalloc_large_node fndecl 1 46469 NULL
169214 +enable_so_hpfs_add_de_fndecl_46472 hpfs_add_de fndecl 4 46472 NULL
169215 +enable_so_idr_alloc_fndecl_46474 idr_alloc fndecl 0 46474 NULL
169216 +enable_so_mpi_get_nbits_fndecl_46476 mpi_get_nbits fndecl 0 46476 NULL
169217 +enable_so_nla_put_nohdr_fndecl_46479 nla_put_nohdr fndecl 2 46479 NULL
169218 +enable_so_hr_num_pages_o2hb_region_46481 hr_num_pages o2hb_region 0 46481 NULL nohasharray
169219 +enable_so_ro_slot_rcom_slot_46481 ro_slot rcom_slot 0 46481 &enable_so_hr_num_pages_o2hb_region_46481
169220 +enable_so_ssid_len_ieee80211_bss_conf_46483 ssid_len ieee80211_bss_conf 0 46483 NULL
169221 +enable_so_xen_early_virt_to_phys_fndecl_46486 xen_early_virt_to_phys fndecl 0 46486 NULL
169222 +enable_so_usb_wwan_write_fndecl_46494 usb_wwan_write fndecl 4 46494 NULL
169223 +enable_so___copy_from_user_ll_nozero_fndecl_46496 __copy_from_user_ll_nozero fndecl 0 46496 NULL
169224 +enable_so_afs_fsync_fndecl_46498 afs_fsync fndecl 2-3 46498 NULL
169225 +enable_so_iram_size_sst_res_info_46499 iram_size sst_res_info 0 46499 NULL
169226 +enable_so_align_ieee80211_vendor_radiotap_46503 align ieee80211_vendor_radiotap 0 46503 NULL
169227 +enable_so_write_pbl_fndecl_46508 write_pbl fndecl 4 46508 NULL
169228 +enable_so_pagesz_cifs_readdata_46514 pagesz cifs_readdata 0 46514 NULL
169229 +enable_so_tunables_write_fndecl_46520 tunables_write fndecl 3 46520 NULL
169230 +enable_so_free_bootmem_with_active_regions_fndecl_46521 free_bootmem_with_active_regions fndecl 2 46521 NULL
169231 +enable_so_bio_split_fndecl_46527 bio_split fndecl 2 46527 NULL
169232 +enable_so_sddr09_request_sense_fndecl_46529 sddr09_request_sense fndecl 3 46529 NULL
169233 +enable_so_dr_suballoc_loc_ocfs2_dx_root_block_46531 dr_suballoc_loc ocfs2_dx_root_block 0 46531 NULL
169234 +enable_so_fcoe_ctlr_vn_send_fndecl_46532 fcoe_ctlr_vn_send fndecl 4 46532 NULL
169235 +enable_so_bNrChannels_uac_format_type_i_continuous_descriptor_46536 bNrChannels uac_format_type_i_continuous_descriptor 0 46536 NULL
169236 +enable_so_contrast_sd_gl860_46538 contrast sd_gl860 0 46538 NULL
169237 +enable_so_hsub_vsp1_format_info_46540 hsub vsp1_format_info 0 46540 NULL
169238 +enable_so_size_kstat_46541 size kstat 0 46541 NULL
169239 +enable_so_resp_write_same_fndecl_46544 resp_write_same fndecl 2 46544 NULL
169240 +enable_so_sc18is602_check_transfer_fndecl_46545 sc18is602_check_transfer fndecl 0 46545 NULL
169241 +enable_so_size_p_trim_46549 size p_trim 0 46549 NULL nohasharray
169242 +enable_so_memdup_user_fndecl_46549 memdup_user fndecl 2 46549 &enable_so_size_p_trim_46549
169243 +enable_so_erasesize_shift_mtd_info_46565 erasesize_shift mtd_info 0 46565 NULL nohasharray
169244 +enable_so_xt_compat_init_offsets_fndecl_46565 xt_compat_init_offsets fndecl 2 46565 &enable_so_erasesize_shift_mtd_info_46565
169245 +enable_so_max_msix_vectors_vardecl_mpt3sas_base_c_46566 max_msix_vectors vardecl_mpt3sas_base.c 0 46566 NULL
169246 +enable_so_SyS_setdomainname_fndecl_46573 SyS_setdomainname fndecl 2 46573 NULL
169247 +enable_so_sock_sendpage_fndecl_46581 sock_sendpage fndecl 4 46581 NULL
169248 +enable_so_f2fs_nfs_get_inode_fndecl_46582 f2fs_nfs_get_inode fndecl 2 46582 NULL
169249 +enable_so_qxl_num_crtc_vardecl_46583 qxl_num_crtc vardecl 0 46583 NULL
169250 +enable_so___f2fs_replace_block_fndecl_46588 __f2fs_replace_block fndecl 4 46588 NULL
169251 +enable_so_sg_build_sgat_fndecl_46592 sg_build_sgat fndecl 3-0 46592 NULL nohasharray
169252 +enable_so_jffs2_alloc_full_dirent_fndecl_46592 jffs2_alloc_full_dirent fndecl 1 46592 &enable_so_sg_build_sgat_fndecl_46592
169253 +enable_so_back_xfs_attr3_icleaf_hdr_46595 back xfs_attr3_icleaf_hdr 0 46595 NULL
169254 +enable_so_fuse_async_req_send_fndecl_46596 fuse_async_req_send fndecl 0-3 46596 NULL nohasharray
169255 +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
169256 +enable_so_cfpkt_extr_head_fndecl_46598 cfpkt_extr_head fndecl 3 46598 NULL
169257 +enable_so_len_ext4_str_46600 len ext4_str 0 46600 NULL
169258 +enable_so_cma_init_reserved_mem_fndecl_46602 cma_init_reserved_mem fndecl 3-2 46602 NULL
169259 +enable_so_init_state_fndecl_46614 init_state fndecl 2 46614 NULL
169260 +enable_so_pci_scan_bridge_fndecl_46615 pci_scan_bridge fndecl 3-0 46615 NULL nohasharray
169261 +enable_so_jmb38x_ms_count_slots_fndecl_46615 jmb38x_ms_count_slots fndecl 0 46615 &enable_so_pci_scan_bridge_fndecl_46615
169262 +enable_so_snd_usb_parse_datainterval_fndecl_46616 snd_usb_parse_datainterval fndecl 0 46616 NULL nohasharray
169263 +enable_so_emulator_set_smbase_fndecl_46616 emulator_set_smbase fndecl 2 46616 &enable_so_snd_usb_parse_datainterval_fndecl_46616
169264 +enable_so_fw_cdev_major_vardecl_46618 fw_cdev_major vardecl 0 46618 NULL
169265 +enable_so_usbvision_read_reg_fndecl_46623 usbvision_read_reg fndecl 0 46623 NULL nohasharray
169266 +enable_so_num_ppns_qp_guest_endpoint_46623 num_ppns qp_guest_endpoint 0 46623 &enable_so_usbvision_read_reg_fndecl_46623
169267 +enable_so_cl_maxproc_rpc_clnt_46627 cl_maxproc rpc_clnt 0 46627 NULL
169268 +enable_so_start_ipack_region_46628 start ipack_region 0 46628 NULL
169269 +enable_so_qlcnic_83xx_diag_free_res_fndecl_46632 qlcnic_83xx_diag_free_res fndecl 2 46632 NULL
169270 +enable_so_alloc_size_nf_ct_ext_type_46634 alloc_size nf_ct_ext_type 0 46634 NULL
169271 +enable_so_ccp_queue_buf_fndecl_46635 ccp_queue_buf fndecl 0 46635 NULL
169272 +enable_so_btrfs_get_token_16_fndecl_46639 btrfs_get_token_16 fndecl 0 46639 NULL
169273 +enable_so_data_offset_iscsi_tcp_task_46641 data_offset iscsi_tcp_task 0 46641 NULL
169274 +enable_so_arch_setup_msi_irqs_fndecl_46642 arch_setup_msi_irqs fndecl 0 46642 NULL nohasharray
169275 +enable_so_rx_rx_tkip_replays_read_fndecl_46642 rx_rx_tkip_replays_read fndecl 3 46642 &enable_so_arch_setup_msi_irqs_fndecl_46642
169276 +enable_so_roaming_rssi_level_read_fndecl_46643 roaming_rssi_level_read fndecl 3 46643 NULL
169277 +enable_so_qib_reg_phys_mr_fndecl_46649 qib_reg_phys_mr fndecl 3 46649 NULL
169278 +enable_so_mwifiex_set_wps_ie_fndecl_46650 mwifiex_set_wps_ie fndecl 3 46650 NULL
169279 +enable_so_transfer_buffer_length_usbip_header_cmd_submit_46658 transfer_buffer_length usbip_header_cmd_submit 0 46658 NULL
169280 +enable_so_btrfs_get_extent_fiemap_fndecl_46659 btrfs_get_extent_fiemap fndecl 5-4-3 46659 NULL
169281 +enable_so_bmap_fndecl_46663 bmap fndecl 0 46663 NULL
169282 +enable_so_physical_block_size_queue_limits_46666 physical_block_size queue_limits 0 46666 NULL
169283 +enable_so_mpx_notify_unmap_fndecl_46669 mpx_notify_unmap fndecl 3-4 46669 NULL
169284 +enable_so_xfs_difree_inode_chunk_fndecl_46677 xfs_difree_inode_chunk fndecl 2 46677 NULL
169285 +enable_so_got_bytes_cifs_readdata_46678 got_bytes cifs_readdata 0 46678 NULL
169286 +enable_so_max_wr_ib_srq_attr_46680 max_wr ib_srq_attr 0 46680 NULL
169287 +enable_so_selfballoon_uphysteresis_vardecl_xen_selfballoon_c_46686 selfballoon_uphysteresis vardecl_xen-selfballoon.c 0 46686 NULL
169288 +enable_so_usb_ftdi_elan_edset_input_fndecl_46689 usb_ftdi_elan_edset_input fndecl 0 46689 NULL
169289 +enable_so_display_crc_ctl_write_fndecl_46690 display_crc_ctl_write fndecl 3 46690 NULL
169290 +enable_so_printer_write_fndecl_46695 printer_write fndecl 3 46695 NULL
169291 +enable_so___pskb_pull_tail_fndecl_46700 __pskb_pull_tail fndecl 2 46700 NULL
169292 +enable_so_compat_sys_fcntl64_fndecl_46707 compat_sys_fcntl64 fndecl 3 46707 NULL
169293 +enable_so_cmsg_len_cmsghdr_46711 cmsg_len cmsghdr 0 46711 NULL
169294 +enable_so_length_ib_mr_46713 length ib_mr 0 46713 NULL nohasharray
169295 +enable_so_extra_priv_size_ehci_driver_overrides_46713 extra_priv_size ehci_driver_overrides 0 46713 &enable_so_length_ib_mr_46713
169296 +enable_so_irq_alloc_domain_generic_chips_fndecl_46715 irq_alloc_domain_generic_chips fndecl 3-2 46715 NULL
169297 +enable_so_nor_size_fsl_qspi_46716 nor_size fsl_qspi 0 46716 NULL nohasharray
169298 +enable_so_length_page_collect_46716 length page_collect 0 46716 &enable_so_nor_size_fsl_qspi_46716
169299 +enable_so_peer_max_bio_size_drbd_device_46722 peer_max_bio_size drbd_device 0 46722 NULL
169300 +enable_so_first_ino_xfs_icluster_46725 first_ino xfs_icluster 0 46725 NULL
169301 +enable_so_virtio_gpu_cmd_resource_attach_backing_fndecl_46726 virtio_gpu_cmd_resource_attach_backing fndecl 4 46726 NULL
169302 +enable_so_wm8994_set_fll_fndecl_46745 wm8994_set_fll fndecl 4-5 46745 NULL
169303 +enable_so_rxsz_fc_plogi_clp_s_46751 rxsz fc_plogi_clp_s 0 46751 NULL
169304 +enable_so_cvmx_bootmem_phy_named_block_find_fndecl_46752 cvmx_bootmem_phy_named_block_find fndecl 0 46752 NULL
169305 +enable_so_count_nfs_readdirargs_46759 count nfs_readdirargs 0 46759 NULL
169306 +enable_so___kfifo_from_user_r_fndecl_46762 __kfifo_from_user_r fndecl 3-5 46762 NULL nohasharray
169307 +enable_so_perf_aux_output_skip_fndecl_46762 perf_aux_output_skip fndecl 2 46762 &enable_so___kfifo_from_user_r_fndecl_46762
169308 +enable_so_wptr_amdgpu_ring_46763 wptr amdgpu_ring 0 46763 NULL
169309 +enable_so_s_bshift_ufs_sb_private_info_46773 s_bshift ufs_sb_private_info 0 46773 NULL nohasharray
169310 +enable_so_target_begin_dm_region_hash_46773 target_begin dm_region_hash 0 46773 &enable_so_s_bshift_ufs_sb_private_info_46773
169311 +enable_so_mc_groups_longs_vardecl_genetlink_c_46774 mc_groups_longs vardecl_genetlink.c 0 46774 NULL
169312 +enable_so_bytes_remaining_parser_context_46791 bytes_remaining parser_context 0 46791 NULL
169313 +enable_so_ubi_eba_atomic_leb_change_fndecl_46792 ubi_eba_atomic_leb_change fndecl 5 46792 NULL
169314 +enable_so_brcmf_usb_rx_ctlpkt_fndecl_46799 brcmf_usb_rx_ctlpkt fndecl 3 46799 NULL nohasharray
169315 +enable_so_drbd_alloc_peer_req_fndecl_46799 drbd_alloc_peer_req fndecl 4-3 46799 &enable_so_brcmf_usb_rx_ctlpkt_fndecl_46799
169316 +enable_so_be_cmd_set_sriov_config_fndecl_46800 be_cmd_set_sriov_config fndecl 3 46800 NULL
169317 +enable_so_ceph_msg_data_bio_advance_fndecl_46804 ceph_msg_data_bio_advance fndecl 2 46804 NULL
169318 +enable_so_mlx4_en_change_mtu_fndecl_46805 mlx4_en_change_mtu fndecl 2 46805 NULL
169319 +enable_so_mesh_rx_csa_frame_fndecl_46810 mesh_rx_csa_frame fndecl 3 46810 NULL
169320 +enable_so_dccp_setsockopt_fndecl_46812 dccp_setsockopt fndecl 5 46812 NULL
169321 +enable_so_buffer_size_snd_rawmidi_params_46813 buffer_size snd_rawmidi_params 0 46813 NULL
169322 +enable_so_nfulnl_set_mode_fndecl_46818 nfulnl_set_mode fndecl 3 46818 NULL
169323 +enable_so_frame_size_ipw2100_status_46819 frame_size ipw2100_status 0 46819 NULL
169324 +enable_so_major_hwif_s_46820 major hwif_s 0 46820 NULL
169325 +enable_so_numberoflines_tmHWStreamParameters_46824 numberoflines tmHWStreamParameters 0 46824 NULL
169326 +enable_so_residue_c67x00_td_46828 residue c67x00_td 0 46828 NULL
169327 +enable_so_extra_priv_size_xhci_driver_overrides_46837 extra_priv_size xhci_driver_overrides 0 46837 NULL
169328 +enable_so_hexdump_fndecl_46840 hexdump fndecl 3 46840 NULL
169329 +enable_so_num_prior_parent_snaps_ceph_snap_realm_46841 num_prior_parent_snaps ceph_snap_realm 0 46841 NULL nohasharray
169330 +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
169331 +enable_so_n_channels_wmi_scan_chan_list_arg_46842 n_channels wmi_scan_chan_list_arg 0 46842 NULL
169332 +enable_so_len_wl12xx_rx_filter_field_46843 len wl12xx_rx_filter_field 0 46843 NULL
169333 +enable_so_driver_names_read_fndecl_46844 driver_names_read fndecl 3 46844 NULL
169334 +enable_so_tveeprom_read_fndecl_46846 tveeprom_read fndecl 3 46846 NULL nohasharray
169335 +enable_so_vt596_smba_vardecl_i2c_viapro_c_46846 vt596_smba vardecl_i2c-viapro.c 0 46846 &enable_so_tveeprom_read_fndecl_46846
169336 +enable_so_flags_f2fs_encryption_context_46847 flags f2fs_encryption_context 0 46847 NULL
169337 +enable_so___bread_gfp_fndecl_46858 __bread_gfp fndecl 3-2 46858 NULL
169338 +enable_so_xwrite_fndecl_46865 xwrite fndecl 3 46865 NULL
169339 +enable_so_lookup_node_fndecl_46882 lookup_node fndecl 2 46882 NULL
169340 +enable_so_len_nfsd3_readlinkres_46888 len nfsd3_readlinkres 0 46888 NULL
169341 +enable_so_ksi_nthreads_max_ksock_sched_info_46891 ksi_nthreads_max ksock_sched_info 0 46891 NULL
169342 +enable_so_buffer_size_snd_urb_ctx_46897 buffer_size snd_urb_ctx 0 46897 NULL
169343 +enable_so_cb_break_head_afs_server_46900 cb_break_head afs_server 0 46900 NULL
169344 +enable_so_ql_process_mac_rx_gro_page_fndecl_46902 ql_process_mac_rx_gro_page fndecl 5-4 46902 NULL
169345 +enable_so_ipoib_recvq_size_vardecl_46904 ipoib_recvq_size vardecl 0 46904 NULL
169346 +enable_so_size_vbt_r0_46913 size vbt_r0 0 46913 NULL
169347 +enable_so_num_sacks_tcp_options_received_46914 num_sacks tcp_options_received 0 46914 NULL nohasharray
169348 +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
169349 +enable_so_rd_size_hidp_connadd_req_46916 rd_size hidp_connadd_req 0 46916 NULL
169350 +enable_so_osd_req_read_kern_fndecl_46917 osd_req_read_kern fndecl 5 46917 NULL
169351 +enable_so_tot_len_ipv6_txoptions_46931 tot_len ipv6_txoptions 0 46931 NULL
169352 +enable_so_c_iusedoff_ufs_cg_private_info_46933 c_iusedoff ufs_cg_private_info 0 46933 NULL
169353 +enable_so___free_pages_bootmem_fndecl_46937 __free_pages_bootmem fndecl 3 46937 NULL nohasharray
169354 +enable_so_squashfs_max_decompressors_fndecl_46937 squashfs_max_decompressors fndecl 0 46937 &enable_so___free_pages_bootmem_fndecl_46937
169355 +enable_so_devblksize_squashfs_sb_info_46950 devblksize squashfs_sb_info 0 46950 NULL
169356 +enable_so_osd_req_list_dev_partitions_fndecl_46952 osd_req_list_dev_partitions fndecl 4 46952 NULL
169357 +enable_so_tx_ring_num_mlx4_en_priv_46953 tx_ring_num mlx4_en_priv 0 46953 NULL
169358 +enable_so_xlog_bread_offset_fndecl_46957 xlog_bread_offset fndecl 2-3 46957 NULL nohasharray
169359 +enable_so_steer_qpn_count_mlx4_ib_dev_46957 steer_qpn_count mlx4_ib_dev 0 46957 &enable_so_xlog_bread_offset_fndecl_46957
169360 +enable_so_s_desc_per_block_ext2_sb_info_46964 s_desc_per_block ext2_sb_info 0 46964 NULL nohasharray
169361 +enable_so_vmw_piter_start_fndecl_46964 vmw_piter_start fndecl 3 46964 &enable_so_s_desc_per_block_ext2_sb_info_46964 nohasharray
169362 +enable_so_cy_next_channel_vardecl_cyclades_c_46964 cy_next_channel vardecl_cyclades.c 0 46964 &enable_so_vmw_piter_start_fndecl_46964
169363 +enable_so_can_queue_Scsi_Host_46966 can_queue Scsi_Host 0 46966 NULL
169364 +enable_so_mthca_init_cq_fndecl_46968 mthca_init_cq fndecl 2 46968 NULL
169365 +enable_so_fsl_spi_cpu_bufs_fndecl_46969 fsl_spi_cpu_bufs fndecl 3-0 46969 NULL
169366 +enable_so_register_device_fndecl_46972 register_device fndecl 3-2 46972 NULL
169367 +enable_so_f71882fg_find_fndecl_46975 f71882fg_find fndecl 0 46975 NULL
169368 +enable_so_vcs_size_fndecl_46977 vcs_size fndecl 0 46977 NULL
169369 +enable_so_numbers_count_tomoyo_condition_46984 numbers_count tomoyo_condition 0 46984 NULL
169370 +enable_so_size_dwc3_trb_46986 size dwc3_trb 0 46986 NULL
169371 +enable_so_gru_alloc_gts_fndecl_46987 gru_alloc_gts fndecl 4-6-3-2 46987 NULL nohasharray
169372 +enable_so_ri_max_frmr_depth_rpcrdma_ia_46987 ri_max_frmr_depth rpcrdma_ia 0 46987 &enable_so_gru_alloc_gts_fndecl_46987
169373 +enable_so_compat_writev_fndecl_46988 compat_writev fndecl 3 46988 NULL nohasharray
169374 +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
169375 +enable_so_msb_cache_write_fndecl_46992 msb_cache_write fndecl 0-6-2 46992 NULL
169376 +enable_so_lrg_buffer_len_ql3_adapter_46994 lrg_buffer_len ql3_adapter 0 46994 NULL nohasharray
169377 +enable_so_sys_sched_getaffinity_fndecl_46994 sys_sched_getaffinity fndecl 2 46994 &enable_so_lrg_buffer_len_ql3_adapter_46994
169378 +enable_so_buflen_cdrom_generic_command_47000 buflen cdrom_generic_command 0 47000 NULL
169379 +enable_so_do_ip6t_set_ctl_fndecl_47003 do_ip6t_set_ctl fndecl 4 47003 NULL
169380 +enable_so_y_offset_mxr_crop_47012 y_offset mxr_crop 0 47012 NULL
169381 +enable_so_vmw_kms_update_proxy_fndecl_47016 vmw_kms_update_proxy fndecl 3 47016 NULL nohasharray
169382 +enable_so_va_start_vmap_area_47016 va_start vmap_area 0 47016 &enable_so_vmw_kms_update_proxy_fndecl_47016
169383 +enable_so_bytesused_uvc_buffer_47017 bytesused uvc_buffer 0 47017 NULL
169384 +enable_so_length_acpi_buffer_47024 length acpi_buffer 0 47024 NULL
169385 +enable_so_ath6kl_listen_int_write_fndecl_47025 ath6kl_listen_int_write fndecl 3 47025 NULL
169386 +enable_so_length_ixgb_rx_desc_47027 length ixgb_rx_desc 0 47027 NULL
169387 +enable_so_usb_os_desc_prepare_interf_dir_fndecl_47032 usb_os_desc_prepare_interf_dir fndecl 2 47032 NULL
169388 +enable_so_desc_size_shdma_dev_47035 desc_size shdma_dev 0 47035 NULL
169389 +enable_so_rtl2832_regmap_read_fndecl_47037 rtl2832_regmap_read fndecl 3-5 47037 NULL
169390 +enable_so_minor_index_cardstate_47038 minor_index cardstate 0 47038 NULL
169391 +enable_so_fdt_add_subnode_namelen_fndecl_47039 fdt_add_subnode_namelen fndecl 2-4 47039 NULL
169392 +enable_so_ttm_bo_kmap_fndecl_47045 ttm_bo_kmap fndecl 3-2 47045 NULL
169393 +enable_so_icds_per_ctrl_hba_parameters_47047 icds_per_ctrl hba_parameters 0 47047 NULL
169394 +enable_so_amdgpu_drm_ioctl_fndecl_47050 amdgpu_drm_ioctl fndecl 2 47050 NULL
169395 +enable_so_ip_set_max_ip_set_net_47054 ip_set_max ip_set_net 0 47054 NULL
169396 +enable_so_nfs_idmap_request_key_fndecl_47055 nfs_idmap_request_key fndecl 2 47055 NULL
169397 +enable_so_width_tm6000_core_47057 width tm6000_core 0 47057 NULL nohasharray
169398 +enable_so_vbi_width_em28xx_v4l2_47057 vbi_width em28xx_v4l2 0 47057 &enable_so_width_tm6000_core_47057
169399 +enable_so_sect_ide_drive_s_47062 sect ide_drive_s 0 47062 NULL
169400 +enable_so_len_Vmxnet3_RxCompDesc_47066 len Vmxnet3_RxCompDesc 0 47066 NULL
169401 +enable_so___remove_zone_fndecl_47073 __remove_zone fndecl 2 47073 NULL
169402 +enable_so_ext_clk_mt9t001_platform_data_47078 ext_clk mt9t001_platform_data 0 47078 NULL
169403 +enable_so_buf_size_usbatm_channel_47081 buf_size usbatm_channel 0 47081 NULL
169404 +enable_so_epnum_isp116x_ep_47082 epnum isp116x_ep 0 47082 NULL
169405 +enable_so_yres_fb_videomode_47087 yres fb_videomode 0 47087 NULL nohasharray
169406 +enable_so_authorizer_buf_len_ceph_auth_handshake_47087 authorizer_buf_len ceph_auth_handshake 0 47087 &enable_so_yres_fb_videomode_47087 nohasharray
169407 +enable_so_ld_usb_read_fndecl_47087 ld_usb_read fndecl 3 47087 &enable_so_authorizer_buf_len_ceph_auth_handshake_47087
169408 +enable_so_ext2_get_inode_fndecl_47089 ext2_get_inode fndecl 2 47089 NULL
169409 +enable_so___send_empty_flush_fndecl_47094 __send_empty_flush fndecl 0 47094 NULL nohasharray
169410 +enable_so_pcpu_need_to_extend_fndecl_47094 pcpu_need_to_extend fndecl 0 47094 &enable_so___send_empty_flush_fndecl_47094
169411 +enable_so_begin_dm_target_47098 begin dm_target 0 47098 NULL
169412 +enable_so_spu_wait_for_u16_fndecl_47101 spu_wait_for_u16 fndecl 0 47101 NULL
169413 +enable_so_len_wmi_rx_action_event_47102 len wmi_rx_action_event 0 47102 NULL
169414 +enable_so___scsi_print_sense_fndecl_47105 __scsi_print_sense fndecl 4 47105 NULL
169415 +enable_so_agp_size_drm_mga_dma_bootstrap_47108 agp_size drm_mga_dma_bootstrap 0 47108 NULL
169416 +enable_so_vc4_bo_create_fndecl_47110 vc4_bo_create fndecl 2 47110 NULL
169417 +enable_so_f_height_camif_frame_47111 f_height camif_frame 0 47111 NULL
169418 +enable_so_total_len_lro_47113 total_len lro 0 47113 NULL
169419 +enable_so_num_mthca_resource_47114 num mthca_resource 0 47114 NULL nohasharray
169420 +enable_so_num_outstanding_cmds_req_que_47114 num_outstanding_cmds req_que 0 47114 &enable_so_num_mthca_resource_47114
169421 +enable_so_tx_tx_start_fw_gen_read_fndecl_47115 tx_tx_start_fw_gen_read fndecl 3 47115 NULL
169422 +enable_so_iwl_dbgfs_rx_handlers_write_fndecl_47116 iwl_dbgfs_rx_handlers_write fndecl 3 47116 NULL
169423 +enable_so_nportcntrs_qib_chip_specific_47118 nportcntrs qib_chip_specific 0 47118 NULL
169424 +enable_so_usnic_uiom_reg_get_fndecl_47120 usnic_uiom_reg_get fndecl 2-3 47120 NULL
169425 +enable_so_j_len_reiserfs_journal_47121 j_len reiserfs_journal 0 47121 NULL
169426 +enable_so_filemap_fdatawrite_range_fndecl_47125 filemap_fdatawrite_range fndecl 2-3 47125 NULL
169427 +enable_so_i2400m_rx_fake_eth_header_fndecl_47128 i2400m_rx_fake_eth_header fndecl 3 47128 NULL
169428 +enable_so_efi_ioremap_fndecl_47129 efi_ioremap fndecl 2-1 47129 NULL
169429 +enable_so_bfad_iocmd_ratelim_fndecl_47133 bfad_iocmd_ratelim fndecl 0 47133 NULL
169430 +enable_so_target_xcopy_write_destination_fndecl_47134 target_xcopy_write_destination fndecl 5 47134 NULL
169431 +enable_so_of_fdt_is_big_endian_fndecl_47137 of_fdt_is_big_endian fndecl 2 47137 NULL
169432 +enable_so_data_len_nvme_passthru_cmd_47145 data_len nvme_passthru_cmd 0 47145 NULL nohasharray
169433 +enable_so_param_data_size_skl_ipc_init_instance_msg_47145 param_data_size skl_ipc_init_instance_msg 0 47145 &enable_so_data_len_nvme_passthru_cmd_47145
169434 +enable_so_do_otp_lock_fndecl_47148 do_otp_lock fndecl 3 47148 NULL
169435 +enable_so_vmw_kms_sou_readback_fndecl_47150 vmw_kms_sou_readback fndecl 6 47150 NULL nohasharray
169436 +enable_so_mcs7830_set_reg_async_fndecl_47150 mcs7830_set_reg_async fndecl 3 47150 &enable_so_vmw_kms_sou_readback_fndecl_47150
169437 +enable_so_ttm_dma_tt_init_fndecl_47159 ttm_dma_tt_init fndecl 3 47159 NULL nohasharray
169438 +enable_so_req_xfer_ide_atapi_pc_47159 req_xfer ide_atapi_pc 0 47159 &enable_so_ttm_dma_tt_init_fndecl_47159
169439 +enable_so_mlxsw_sx_port_change_mtu_fndecl_47160 mlxsw_sx_port_change_mtu fndecl 2 47160 NULL nohasharray
169440 +enable_so_mspro_block_complete_req_fndecl_47160 mspro_block_complete_req fndecl 2 47160 &enable_so_mlxsw_sx_port_change_mtu_fndecl_47160
169441 +enable_so_bfad_iocmd_itnim_reset_stats_fndecl_47168 bfad_iocmd_itnim_reset_stats fndecl 0 47168 NULL
169442 +enable_so_issue_discard_fndecl_47169 issue_discard fndecl 2-3-0 47169 NULL nohasharray
169443 +enable_so_e1000e_hwtstamp_get_fndecl_47169 e1000e_hwtstamp_get fndecl 0 47169 &enable_so_issue_discard_fndecl_47169
169444 +enable_so_start_block_hfsplus_extent_47172 start_block hfsplus_extent 0 47172 NULL
169445 +enable_so_max_blk_size_mmc_host_47174 max_blk_size mmc_host 0 47174 NULL
169446 +enable_so_value_drm_radeon_setparam_47185 value drm_radeon_setparam 0 47185 NULL
169447 +enable_so_msix_count_qla_hw_data_47192 msix_count qla_hw_data 0 47192 NULL
169448 +enable_so_max_sq_sg_mlx4_caps_47193 max_sq_sg mlx4_caps 0 47193 NULL
169449 +enable_so_block_count_msb_data_47194 block_count msb_data 0 47194 NULL
169450 +enable_so_max_inline_data_ib_qp_cap_47196 max_inline_data ib_qp_cap 0 47196 NULL
169451 +enable_so_rnr_retry_ib_qp_attr_47198 rnr_retry ib_qp_attr 0 47198 NULL
169452 +enable_so_vmalloc_node_fndecl_47199 vmalloc_node fndecl 1 47199 NULL
169453 +enable_so_bi_phys_segments_bio_47200 bi_phys_segments bio 0 47200 NULL
169454 +enable_so_wpos_p9_conn_47212 wpos p9_conn 0 47212 NULL
169455 +enable_so_ieee80211_if_write_tkip_mic_test_fndecl_47215 ieee80211_if_write_tkip_mic_test fndecl 3 47215 NULL
169456 +enable_so_authsize_crypto_aead_47219 authsize crypto_aead 0 47219 NULL nohasharray
169457 +enable_so_smb_init_nttransact_fndecl_47219 smb_init_nttransact fndecl 2 47219 &enable_so_authsize_crypto_aead_47219
169458 +enable_so_mwifiex_form_mgmt_frame_fndecl_47220 mwifiex_form_mgmt_frame fndecl 3 47220 NULL
169459 +enable_so_fdt_setprop_fndecl_47221 fdt_setprop fndecl 2-5 47221 NULL
169460 +enable_so_acpi_map_fndecl_47222 acpi_map fndecl 2-1 47222 NULL
169461 +enable_so_get_byte_fndecl_47224 get_byte fndecl 0 47224 NULL
169462 +enable_so_csum_exist_in_range_fndecl_47225 csum_exist_in_range fndecl 3-2 47225 NULL
169463 +enable_so_at25_mem_write_fndecl_47235 at25_mem_write fndecl 4-3 47235 NULL
169464 +enable_so_mac_alloc_res_fndecl_47236 mac_alloc_res fndecl 7 47236 NULL
169465 +enable_so_qlf_id_xfs_dq_logformat_47243 qlf_id xfs_dq_logformat 0 47243 NULL
169466 +enable_so_decrease_reservation_fndecl_47244 decrease_reservation fndecl 1 47244 NULL
169467 +enable_so_fuse_reverse_inval_inode_fndecl_47245 fuse_reverse_inval_inode fndecl 4-3 47245 NULL
169468 +enable_so_translate_desc_fndecl_47247 translate_desc fndecl 3-2-0 47247 NULL
169469 +enable_so___do_config_autodelink_fndecl_47256 __do_config_autodelink fndecl 3 47256 NULL nohasharray
169470 +enable_so_seek_holedata_loop_fndecl_47256 seek_holedata_loop fndecl 0-2 47256 &enable_so___do_config_autodelink_fndecl_47256
169471 +enable_so_agp_allocate_memory_fndecl_47258 agp_allocate_memory fndecl 2 47258 NULL
169472 +enable_so_num_srqs_mthca_limits_47260 num_srqs mthca_limits 0 47260 NULL
169473 +enable_so_ring_size_dw_mci_47261 ring_size dw_mci 0 47261 NULL
169474 +enable_so_num_ifaces_batadv_priv_47263 num_ifaces batadv_priv 0 47263 NULL
169475 +enable_so_isku_sysfs_read_fndecl_47269 isku_sysfs_read fndecl 5 47269 NULL
169476 +enable_so_bts_buffer_setup_aux_fndecl_47274 bts_buffer_setup_aux fndecl 3 47274 NULL
169477 +enable_so_progress_btrfs_caching_control_47276 progress btrfs_caching_control 0 47276 NULL
169478 +enable_so_write_file_fndecl_47279 write_file fndecl 4 47279 NULL
169479 +enable_so_rom_size_qxl_device_47287 rom_size qxl_device 0 47287 NULL
169480 +enable_so___wa_xfer_submit_fndecl_47289 __wa_xfer_submit fndecl 0 47289 NULL nohasharray
169481 +enable_so_ipx_sendmsg_fndecl_47289 ipx_sendmsg fndecl 3 47289 &enable_so___wa_xfer_submit_fndecl_47289
169482 +enable_so_dev_number_mdp_superblock_1_47292 dev_number mdp_superblock_1 0 47292 NULL
169483 +enable_so_fwnode_property_read_string_array_fndecl_47300 fwnode_property_read_string_array fndecl 0 47300 NULL
169484 +enable_so_pppol2tp_recvmsg_fndecl_47301 pppol2tp_recvmsg fndecl 3 47301 NULL
169485 +enable_so_command_write_fndecl_47306 command_write fndecl 3 47306 NULL
169486 +enable_so_qed_cxt_ilt_shadow_size_fndecl_47308 qed_cxt_ilt_shadow_size fndecl 0 47308 NULL
169487 +enable_so_bigdirsize_adfs_bigdirheader_47315 bigdirsize adfs_bigdirheader 0 47315 NULL
169488 +enable_so_special_e1000_rx_desc_47320 special e1000_rx_desc 0 47320 NULL
169489 +enable_so_nr_pages_swap_extent_47325 nr_pages swap_extent 0 47325 NULL
169490 +enable_so_nr_pages_scif_window_47329 nr_pages scif_window 0 47329 NULL
169491 +enable_so_dma_buffer_size_vardecl_budget_core_c_47332 dma_buffer_size vardecl_budget-core.c 0 47332 NULL
169492 +enable_so_words_nf_conn_labels_47334 words nf_conn_labels 0 47334 NULL
169493 +enable_so_thermal_irq_thr_low_read_fndecl_47339 thermal_irq_thr_low_read fndecl 3 47339 NULL
169494 +enable_so_brcmf_chip_core_read32_fndecl_47346 brcmf_chip_core_read32 fndecl 0 47346 NULL
169495 +enable_so_nd_label_active_count_fndecl_47348 nd_label_active_count fndecl 0 47348 NULL
169496 +enable_so_myri10ge_change_mtu_fndecl_47351 myri10ge_change_mtu fndecl 2 47351 NULL nohasharray
169497 +enable_so_gtt_base_align_amdgpu_mc_47351 gtt_base_align amdgpu_mc 0 47351 &enable_so_myri10ge_change_mtu_fndecl_47351
169498 +enable_so_dmi_memdev_nr_vardecl_dmi_scan_c_47352 dmi_memdev_nr vardecl_dmi_scan.c 0 47352 NULL
169499 +enable_so_dump_midi_fndecl_47356 dump_midi fndecl 3 47356 NULL
169500 +enable_so_erasesize_mtd_info_47358 erasesize mtd_info 0 47358 NULL
169501 +enable_so_ath6kl_wmi_send_action_cmd_fndecl_47359 ath6kl_wmi_send_action_cmd fndecl 7-2 47359 NULL nohasharray
169502 +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
169503 +enable_so_ie_len_ieee80211_if_mesh_47360 ie_len ieee80211_if_mesh 0 47360 NULL nohasharray
169504 +enable_so_get_vaddr_frames_fndecl_47360 get_vaddr_frames fndecl 1 47360 &enable_so_ie_len_ieee80211_if_mesh_47360
169505 +enable_so_SYSC_sched_getattr_fndecl_47361 SYSC_sched_getattr fndecl 3 47361 NULL
169506 +enable_so_nr_sects_hd_struct_47364 nr_sects hd_struct 0 47364 NULL
169507 +enable_so_rx_position_r3964_info_47365 rx_position r3964_info 0 47365 NULL
169508 +enable_so_batadv_iv_ogm_aggregate_fndecl_47372 batadv_iv_ogm_aggregate fndecl 3 47372 NULL
169509 +enable_so_btt_data_read_fndecl_47374 btt_data_read fndecl 0 47374 NULL
169510 +enable_so_max_fibre_devices_qla_hw_data_47375 max_fibre_devices qla_hw_data 0 47375 NULL
169511 +enable_so_nilfs_bmap_convert_error_fndecl_47376 nilfs_bmap_convert_error fndecl 0-3 47376 NULL
169512 +enable_so_vmw_ttm_tt_create_fndecl_47378 vmw_ttm_tt_create fndecl 2 47378 NULL
169513 +enable_so_data_in_pipe_uas_dev_info_47380 data_in_pipe uas_dev_info 0 47380 NULL
169514 +enable_so_max_tx_length_macb_47385 max_tx_length macb 0 47385 NULL nohasharray
169515 +enable_so_do_huge_pmd_anonymous_page_fndecl_47385 do_huge_pmd_anonymous_page fndecl 3 47385 &enable_so_max_tx_length_macb_47385
169516 +enable_so_memblocks_max_vxge_hw_mempool_47387 memblocks_max vxge_hw_mempool 0 47387 NULL
169517 +enable_so_access_vm_operations_struct_47395 access vm_operations_struct 0 47395 NULL
169518 +enable_so_sr_bg_stable_blkno_ocfs2_suballoc_result_47398 sr_bg_stable_blkno ocfs2_suballoc_result 0 47398 NULL
169519 +enable_so_efd_start_cluster_ext4_free_data_47399 efd_start_cluster ext4_free_data 0 47399 NULL
169520 +enable_so_ino_cifs_dirent_47402 ino cifs_dirent 0 47402 NULL nohasharray
169521 +enable_so_iscsi_offload_mesg_fndecl_47402 iscsi_offload_mesg fndecl 5 47402 &enable_so_ino_cifs_dirent_47402
169522 +enable_so_datalen_key_preparsed_payload_47406 datalen key_preparsed_payload 0 47406 NULL
169523 +enable_so_vmw_kms_generic_present_fndecl_47407 vmw_kms_generic_present fndecl 9 47407 NULL
169524 +enable_so_tp_len_tpacket_hdr_47410 tp_len tpacket_hdr 0 47410 NULL
169525 +enable_so_idetape_pad_zeros_fndecl_47413 idetape_pad_zeros fndecl 2 47413 NULL
169526 +enable_so_cdc_ncm_update_rxtx_max_fndecl_47421 cdc_ncm_update_rxtx_max fndecl 3-2 47421 NULL
169527 +enable_so_ctx_index_i915_guc_client_47425 ctx_index i915_guc_client 0 47425 NULL nohasharray
169528 +enable_so_move_pfn_range_right_fndecl_47425 move_pfn_range_right fndecl 3-4 47425 &enable_so_ctx_index_i915_guc_client_47425
169529 +enable_so_sinit_max_instreams_sctp_cookie_47433 sinit_max_instreams sctp_cookie 0 47433 NULL
169530 +enable_so_capabilities_read_fndecl_47434 capabilities_read fndecl 3 47434 NULL
169531 +enable_so_usnic_vnic_get_resources_fndecl_47437 usnic_vnic_get_resources fndecl 3 47437 NULL
169532 +enable_so_depth_bttv_format_47442 depth bttv_format 0 47442 NULL nohasharray
169533 +enable_so_ufs_frag_map_fndecl_47442 ufs_frag_map fndecl 0 47442 &enable_so_depth_bttv_format_47442
169534 +enable_so_part_bits_mtd_blktrans_ops_47462 part_bits mtd_blktrans_ops 0 47462 NULL
169535 +enable_so_len_wmfw_region_47463 len wmfw_region 0 47463 NULL nohasharray
169536 +enable_so_snd_rme96_capture_copy_fndecl_47463 snd_rme96_capture_copy fndecl 5 47463 &enable_so_len_wmfw_region_47463
169537 +enable_so_batadv_bla_is_backbone_gw_fndecl_47467 batadv_bla_is_backbone_gw fndecl 3 47467 NULL
169538 +enable_so_memblock_alloc_try_nid_fndecl_47470 memblock_alloc_try_nid fndecl 2-1 47470 NULL
169539 +enable_so_compat_do_ipt_set_ctl_fndecl_47473 compat_do_ipt_set_ctl fndecl 4 47473 NULL
169540 +enable_so_maxDataSize__mpt_ioctl_header_47477 maxDataSize _mpt_ioctl_header 0 47477 NULL
169541 +enable_so_fifo_len_tx_fifo_config_47480 fifo_len tx_fifo_config 0 47480 NULL
169542 +enable_so_affs_write_end_ofs_fndecl_47486 affs_write_end_ofs fndecl 4-3 47486 NULL
169543 +enable_so_value_acpi_rsconvert_info_47488 value acpi_rsconvert_info 0 47488 NULL nohasharray
169544 +enable_so_report_length_f_hidg_47488 report_length f_hidg 0 47488 &enable_so_value_acpi_rsconvert_info_47488
169545 +enable_so_mac_offset_skb_gso_cb_47491 mac_offset skb_gso_cb 0 47491 NULL
169546 +enable_so_page_size_cas_47493 page_size cas 0 47493 NULL
169547 +enable_so_first_block_efs_sb_info_47499 first_block efs_sb_info 0 47499 NULL
169548 +enable_so_cifs_write_from_iter_fndecl_47501 cifs_write_from_iter fndecl 1-2 47501 NULL
169549 +enable_so_gr_ep_init_fndecl_47502 gr_ep_init fndecl 4 47502 NULL
169550 +enable_so_try_unmap_single_bt_fndecl_47503 try_unmap_single_bt fndecl 2-3 47503 NULL
169551 +enable_so_btrfs_cont_expand_fndecl_47505 btrfs_cont_expand fndecl 3-2 47505 NULL
169552 +enable_so_romfs_blk_strcmp_fndecl_47510 romfs_blk_strcmp fndecl 4-2 47510 NULL
169553 +enable_so_setcontrast_fndecl_47513 setcontrast fndecl 0 47513 NULL
169554 +enable_so_elf_header_exclude_ranges_fndecl_47518 elf_header_exclude_ranges fndecl 2-3 47518 NULL nohasharray
169555 +enable_so_gfs2_dir_get_new_buffer_fndecl_47518 gfs2_dir_get_new_buffer fndecl 2 47518 &enable_so_elf_header_exclude_ranges_fndecl_47518 nohasharray
169556 +enable_so_num_connector_drm_mode_config_47518 num_connector drm_mode_config 0 47518 &enable_so_gfs2_dir_get_new_buffer_fndecl_47518
169557 +enable_so_horizontal_smiapp_binning_subtype_47521 horizontal smiapp_binning_subtype 0 47521 NULL nohasharray
169558 +enable_so_ib_uverbs_create_qp_fndecl_47521 ib_uverbs_create_qp fndecl 4 47521 &enable_so_horizontal_smiapp_binning_subtype_47521
169559 +enable_so_xbf_count_xfs_bmap_free_47529 xbf_count xfs_bmap_free 0 47529 NULL
169560 +enable_so_rome_tlv_send_segment_fndecl_47531 rome_tlv_send_segment fndecl 3 47531 NULL
169561 +enable_so_pq_sources_dmatest_params_47534 pq_sources dmatest_params 0 47534 NULL
169562 +enable_so_llcp_sock_sendmsg_fndecl_47535 llcp_sock_sendmsg fndecl 3 47535 NULL
169563 +enable_so_bytes_nvmem_cell_47539 bytes nvmem_cell 0 47539 NULL
169564 +enable_so_skb_headers_offset_update_fndecl_47543 skb_headers_offset_update fndecl 2 47543 NULL
169565 +enable_so_show_sysfs_ops_47546 show sysfs_ops 0 47546 NULL
169566 +enable_so_relocs_num_drm_qxl_command_47550 relocs_num drm_qxl_command 0 47550 NULL
169567 +enable_so_add_replay_bud_fndecl_47552 add_replay_bud fndecl 3 47552 NULL
169568 +enable_so_max_concur_ios_snic_fw_info_47556 max_concur_ios snic_fw_info 0 47556 NULL
169569 +enable_so_cur_wm_latency_write_fndecl_47558 cur_wm_latency_write fndecl 3 47558 NULL
169570 +enable_so_tx_dma_len_sci_port_47562 tx_dma_len sci_port 0 47562 NULL
169571 +enable_so_max_xmit_dlength_iscsi_bus_flash_conn_47565 max_xmit_dlength iscsi_bus_flash_conn 0 47565 NULL nohasharray
169572 +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
169573 +enable_so_ubh_bread_uspi_fndecl_47568 ubh_bread_uspi fndecl 3 47568 NULL
169574 +enable_so_wep_decrypt_fail_read_fndecl_47572 wep_decrypt_fail_read fndecl 3 47572 NULL
169575 +enable_so_bnx2x_calc_num_queues_fndecl_47576 bnx2x_calc_num_queues fndecl 0 47576 NULL
169576 +enable_so_traffic_class_ib_global_route_47589 traffic_class ib_global_route 0 47589 NULL nohasharray
169577 +enable_so_i_start_msdos_inode_info_47589 i_start msdos_inode_info 0 47589 &enable_so_traffic_class_ib_global_route_47589
169578 +enable_so_acpi_check_region_fndecl_47594 acpi_check_region fndecl 2-1 47594 NULL
169579 +enable_so_dir_logfs_transaction_47599 dir logfs_transaction 0 47599 NULL
169580 +enable_so_ecryptfs_write_end_fndecl_47601 ecryptfs_write_end fndecl 5-3 47601 NULL
169581 +enable_so_rx_page_order_iwl_trans_pcie_47605 rx_page_order iwl_trans_pcie 0 47605 NULL
169582 +enable_so_ebt_buf_count_fndecl_47612 ebt_buf_count fndecl 2 47612 NULL
169583 +enable_so_control_1_vxge_hw_ring_rxd_1_47616 control_1 vxge_hw_ring_rxd_1 0 47616 NULL
169584 +enable_so_mincore_pte_range_fndecl_47625 mincore_pte_range fndecl 2 47625 NULL nohasharray
169585 +enable_so_len_ib_ucm_req_47625 len ib_ucm_req 0 47625 &enable_so_mincore_pte_range_fndecl_47625
169586 +enable_so_ubifs_load_znode_fndecl_47628 ubifs_load_znode fndecl 4 47628 NULL
169587 +enable_so_allocate_resource_fndecl_47629 allocate_resource fndecl 4-3-5-6 47629 NULL
169588 +enable_so___iio_add_event_config_attrs_fndecl_47635 __iio_add_event_config_attrs fndecl 0 47635 NULL
169589 +enable_so_nentries_ebt_table_info_47639 nentries ebt_table_info 0 47639 NULL
169590 +enable_so_buffer_alignment_fore200e_bus_47640 buffer_alignment fore200e_bus 0 47640 NULL
169591 +enable_so_num_phys_hw_profile_47641 num_phys hw_profile 0 47641 NULL
169592 +enable_so_nilfs_cpfile_get_offset_fndecl_47642 nilfs_cpfile_get_offset fndecl 0-2 47642 NULL nohasharray
169593 +enable_so_framebuffer_alloc_fndecl_47642 framebuffer_alloc fndecl 1 47642 &enable_so_nilfs_cpfile_get_offset_fndecl_47642
169594 +enable_so_pch_gbe_change_mtu_fndecl_47643 pch_gbe_change_mtu fndecl 2 47643 NULL
169595 +enable_so_radeon_compat_ioctl_fndecl_47645 radeon_compat_ioctl fndecl 2 47645 NULL
169596 +enable_so_ocfs2_move_extent_fndecl_47648 ocfs2_move_extent fndecl 5-3-2 47648 NULL nohasharray
169597 +enable_so_fetch_to_dev_buffer_fndecl_47648 fetch_to_dev_buffer fndecl 3 47648 &enable_so_ocfs2_move_extent_fndecl_47648
169598 +enable_so_rate_max_snd_soc_pcm_stream_47650 rate_max snd_soc_pcm_stream 0 47650 NULL
169599 +enable_so_lpfc_sli_issue_iocb_fndecl_47651 lpfc_sli_issue_iocb fndecl 0 47651 NULL
169600 +enable_so_max_sge_rqe_allocated_ocrdma_create_srq_rsp_47654 max_sge_rqe_allocated ocrdma_create_srq_rsp 0 47654 NULL
169601 +enable_so_height_console_font_47655 height console_font 0 47655 NULL
169602 +enable_so_length_fw_cdev_add_descriptor_47656 length fw_cdev_add_descriptor 0 47656 NULL
169603 +enable_so_atomic_write_len_kernfs_open_file_47658 atomic_write_len kernfs_open_file 0 47658 NULL
169604 +enable_so___of_address_to_resource_fndecl_47662 __of_address_to_resource fndecl 3 47662 NULL
169605 +enable_so_wPropertyNameLength_usb_ext_prop_desc_47663 wPropertyNameLength usb_ext_prop_desc 0 47663 NULL
169606 +enable_so_xfs_qm_quotacheck_dqadjust_fndecl_47666 xfs_qm_quotacheck_dqadjust fndecl 2 47666 NULL
169607 +enable_so_dlm_rcom_names_fndecl_47668 dlm_rcom_names fndecl 4 47668 NULL nohasharray
169608 +enable_so_frame_seq_num_os_aux_s_47668 frame_seq_num os_aux_s 0 47668 &enable_so_dlm_rcom_names_fndecl_47668
169609 +enable_so_chans_zatm_dev_47669 chans zatm_dev 0 47669 NULL
169610 +enable_so_setup_window_fndecl_47673 setup_window fndecl 3-2-7-5-4 47673 NULL
169611 +enable_so_rtsx_pci_write_register_fndecl_47674 rtsx_pci_write_register fndecl 0 47674 NULL
169612 +enable_so_ksize_fndecl_47675 ksize fndecl 0 47675 NULL
169613 +enable_so_height_v4l2_pix_format_47682 height v4l2_pix_format 0 47682 NULL
169614 +enable_so_rs_length_rpcrdma_segment_47683 rs_length rpcrdma_segment 0 47683 NULL
169615 +enable_so_pci_iov_bus_range_fndecl_47686 pci_iov_bus_range fndecl 0 47686 NULL
169616 +enable_so_maxframesize_snd_usb_endpoint_47687 maxframesize snd_usb_endpoint 0 47687 NULL
169617 +enable_so_batadv_hardif_min_mtu_fndecl_47691 batadv_hardif_min_mtu fndecl 0 47691 NULL nohasharray
169618 +enable_so_cno_nilfs_super_data_47691 cno nilfs_super_data 0 47691 &enable_so_batadv_hardif_min_mtu_fndecl_47691 nohasharray
169619 +enable_so_max_active_ib_mad_queue_47691 max_active ib_mad_queue 0 47691 &enable_so_cno_nilfs_super_data_47691
169620 +enable_so_virtblk_queue_depth_vardecl_virtio_blk_c_47692 virtblk_queue_depth vardecl_virtio_blk.c 0 47692 NULL
169621 +enable_so_paging64_gpte_to_gfn_lvl_fndecl_47694 paging64_gpte_to_gfn_lvl fndecl 0-2-1 47694 NULL
169622 +enable_so_afavlab_setup_fndecl_47698 afavlab_setup fndecl 4 47698 NULL
169623 +enable_so_gpu_mem_base_vml_par_47703 gpu_mem_base vml_par 0 47703 NULL
169624 +enable_so_xfs_iext_realloc_indirect_fndecl_47704 xfs_iext_realloc_indirect fndecl 2 47704 NULL nohasharray
169625 +enable_so_onenand_bbt_read_oob_fndecl_47704 onenand_bbt_read_oob fndecl 2 47704 &enable_so_xfs_iext_realloc_indirect_fndecl_47704
169626 +enable_so_ino_fuse_attr_47705 ino fuse_attr 0 47705 NULL nohasharray
169627 +enable_so_report_size_roccat_device_47705 report_size roccat_device 0 47705 &enable_so_ino_fuse_attr_47705
169628 +enable_so_ppp_sync_receive_fndecl_47706 ppp_sync_receive fndecl 4 47706 NULL
169629 +enable_so_nilfs_iget_for_gc_fndecl_47708 nilfs_iget_for_gc fndecl 2 47708 NULL
169630 +enable_so_i2c_hid_raw_request_fndecl_47709 i2c_hid_raw_request fndecl 4 47709 NULL nohasharray
169631 +enable_so_fast_rx_path_fndecl_47709 fast_rx_path fndecl 3 47709 &enable_so_i2c_hid_raw_request_fndecl_47709 nohasharray
169632 +enable_so_small_bytes_myri10ge_priv_47709 small_bytes myri10ge_priv 0 47709 &enable_so_fast_rx_path_fndecl_47709
169633 +enable_so_oxu_init_fndecl_47714 oxu_init fndecl 3-2 47714 NULL
169634 +enable_so_tegra_sflash_start_transfer_one_fndecl_47723 tegra_sflash_start_transfer_one fndecl 0 47723 NULL
169635 +enable_so_max_size_ttm_pool_opts_47726 max_size ttm_pool_opts 0 47726 NULL
169636 +enable_so_bdev_stack_limits_fndecl_47732 bdev_stack_limits fndecl 3 47732 NULL
169637 +enable_so_copy_nocow_pages_for_inode_fndecl_47736 copy_nocow_pages_for_inode fndecl 2 47736 NULL
169638 +enable_so_geneve_build_skb_fndecl_47741 geneve_build_skb fndecl 5 47741 NULL nohasharray
169639 +enable_so_SMB2_write_fndecl_47741 SMB2_write fndecl 5 47741 &enable_so_geneve_build_skb_fndecl_47741
169640 +enable_so_eccbytes_nand_ecclayout_47742 eccbytes nand_ecclayout 0 47742 NULL
169641 +enable_so_minbcnt_aoetgt_47744 minbcnt aoetgt 0 47744 NULL
169642 +enable_so_acpi_tb_install_fixed_table_fndecl_47749 acpi_tb_install_fixed_table fndecl 1 47749 NULL
169643 +enable_so_width_ssd1307fb_par_47753 width ssd1307fb_par 0 47753 NULL nohasharray
169644 +enable_so_buffer_size_snd_emu10k1_fx8010_pcm_47753 buffer_size snd_emu10k1_fx8010_pcm 0 47753 &enable_so_width_ssd1307fb_par_47753
169645 +enable_so_fixed_out_len_gether_47754 fixed_out_len gether 0 47754 NULL
169646 +enable_so_key_instantiate_and_link_fndecl_47756 key_instantiate_and_link fndecl 3 47756 NULL
169647 +enable_so_num_def_rx_descs_octeon_config_47759 num_def_rx_descs octeon_config 0 47759 NULL
169648 +enable_so_write_chunk_fndecl_47763 write_chunk fndecl 4 47763 NULL
169649 +enable_so_build_smp_wc_fndecl_47764 build_smp_wc fndecl 5 47764 NULL nohasharray
169650 +enable_so_ticket_length_rxrpc_key_data_v1_47764 ticket_length rxrpc_key_data_v1 0 47764 &enable_so_build_smp_wc_fndecl_47764
169651 +enable_so_mq_ecount_lpfc_sli4_hba_47770 mq_ecount lpfc_sli4_hba 0 47770 NULL
169652 +enable_so_rx_count_ll_struct_47772 rx_count ll_struct 0 47772 NULL nohasharray
169653 +enable_so_minor_osd_uld_device_47772 minor osd_uld_device 0 47772 &enable_so_rx_count_ll_struct_47772
169654 +enable_so_fill_func_debug_buffer_47773 fill_func debug_buffer 0 47773 NULL
169655 +enable_so_dma1_shift_es1938_47776 dma1_shift es1938 0 47776 NULL
169656 +enable_so_rx_ring_size_bnx2x_47784 rx_ring_size bnx2x 0 47784 NULL nohasharray
169657 +enable_so_fd_copyout_fndecl_47784 fd_copyout fndecl 3 47784 &enable_so_rx_ring_size_bnx2x_47784
169658 +enable_so_bg_blkno_ocfs2_group_desc_47785 bg_blkno ocfs2_group_desc 0 47785 NULL
169659 +enable_so_nfs4_xattr_get_nfs4_acl_fndecl_47789 nfs4_xattr_get_nfs4_acl fndecl 5 47789 NULL
169660 +enable_so_skb_prepare_seq_read_fndecl_47790 skb_prepare_seq_read fndecl 2 47790 NULL nohasharray
169661 +enable_so_max_cmds_mlx4_cmd_47790 max_cmds mlx4_cmd 0 47790 &enable_so_skb_prepare_seq_read_fndecl_47790
169662 +enable_so_do_otp_read_fndecl_47794 do_otp_read fndecl 2 47794 NULL
169663 +enable_so_num_vmdq_qps_i40e_pf_47795 num_vmdq_qps i40e_pf 0 47795 NULL
169664 +enable_so_mxt_bootloader_read_fndecl_47796 mxt_bootloader_read fndecl 3 47796 NULL nohasharray
169665 +enable_so_major_vardecl_sound_c_47796 major vardecl_sound.c 0 47796 &enable_so_mxt_bootloader_read_fndecl_47796
169666 +enable_so_get_key_haup_common_fndecl_47797 get_key_haup_common fndecl 5 47797 NULL nohasharray
169667 +enable_so___push_leaf_right_fndecl_47797 __push_leaf_right fndecl 8 47797 &enable_so_get_key_haup_common_fndecl_47797
169668 +enable_so_i_eblock_bfs_inode_47799 i_eblock bfs_inode 0 47799 NULL
169669 +enable_so_h_suballoc_bit_ocfs2_extent_block_47802 h_suballoc_bit ocfs2_extent_block 0 47802 NULL
169670 +enable_so_odd_byte_adjustment_sym_ccb_47803 odd_byte_adjustment sym_ccb 0 47803 NULL
169671 +enable_so_xfs_attrmulti_attr_set_fndecl_47809 xfs_attrmulti_attr_set fndecl 4 47809 NULL nohasharray
169672 +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
169673 +enable_so___map_request_fndecl_47813 __map_request fndecl 0 47813 NULL
169674 +enable_so_size_ncp_ioctl_request_47816 size ncp_ioctl_request 0 47816 NULL
169675 +enable_so_fuse_copy_do_fndecl_47822 fuse_copy_do fndecl 0 47822 NULL
169676 +enable_so_rom_length_fw_cdev_get_info_47831 rom_length fw_cdev_get_info 0 47831 NULL
169677 +enable_so_rx_defrag_in_process_called_read_fndecl_47833 rx_defrag_in_process_called_read fndecl 3 47833 NULL
169678 +enable_so_f2fs_fallocate_fndecl_47842 f2fs_fallocate fndecl 3-4 47842 NULL nohasharray
169679 +enable_so_tcp_check_reno_reordering_fndecl_47842 tcp_check_reno_reordering fndecl 2 47842 &enable_so_f2fs_fallocate_fndecl_47842
169680 +enable_so_assoc_len_amp_ctrl_47844 assoc_len amp_ctrl 0 47844 NULL nohasharray
169681 +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
169682 +enable_so_rl_rgrps_gfs2_rgrp_list_47847 rl_rgrps gfs2_rgrp_list 0 47847 NULL
169683 +enable_so_ch_t_tlevel_jsm_channel_47848 ch_t_tlevel jsm_channel 0 47848 NULL
169684 +enable_so_s_mmp_block_ext4_super_block_47865 s_mmp_block ext4_super_block 0 47865 NULL
169685 +enable_so_nilfs_cpfile_find_checkpoint_block_fndecl_47868 nilfs_cpfile_find_checkpoint_block fndecl 2-3 47868 NULL
169686 +enable_so_length_ar9170_stream_47870 length ar9170_stream 0 47870 NULL
169687 +enable_so_smssdio_sendrequest_fndecl_47873 smssdio_sendrequest fndecl 3 47873 NULL
169688 +enable_so_len_nlm_cookie_47875 len nlm_cookie 0 47875 NULL nohasharray
169689 +enable_so_ivtv_convert_ivtv_vbi_fndecl_47875 ivtv_convert_ivtv_vbi fndecl 0 47875 &enable_so_len_nlm_cookie_47875
169690 +enable_so_smt_send_ecf_fndecl_47881 smt_send_ecf fndecl 6 47881 NULL
169691 +enable_so_gs_alloc_req_fndecl_47888 gs_alloc_req fndecl 2 47888 NULL
169692 +enable_so_end_bus_number_acpi_mcfg_allocation_47894 end_bus_number acpi_mcfg_allocation 0 47894 NULL
169693 +enable_so_sb_inoalignmt_xfs_sb_47899 sb_inoalignmt xfs_sb 0 47899 NULL
169694 +enable_so_set_offset_v2_k_offset_fndecl_47902 set_offset_v2_k_offset fndecl 2 47902 NULL
169695 +enable_so_msize_p9_client_47905 msize p9_client 0 47905 NULL
169696 +enable_so_write_pmsg_fndecl_47911 write_pmsg fndecl 3 47911 NULL
169697 +enable_so_spi_map_msg_fndecl_47912 spi_map_msg fndecl 0 47912 NULL
169698 +enable_so_nbytes_fsl_edma_hw_tcd_47913 nbytes fsl_edma_hw_tcd 0 47913 NULL
169699 +enable_so_compat_fillonedir_fndecl_47921 compat_fillonedir fndecl 3 47921 NULL
169700 +enable_so_phys_esb2rom_window_47933 phys esb2rom_window 0 47933 NULL
169701 +enable_so_fddi_change_mtu_fndecl_47942 fddi_change_mtu fndecl 2 47942 NULL
169702 +enable_so_rxd_vlan_rxd_desc_47943 rxd_vlan rxd_desc 0 47943 NULL
169703 +enable_so_max_param_range_47945 max param_range 0 47945 NULL
169704 +enable_so_produce_q_size_vmci_qp_47948 produce_q_size vmci_qp 0 47948 NULL
169705 +enable_so_dlm_new_lockspace_fndecl_47954 dlm_new_lockspace fndecl 4 47954 NULL
169706 +enable_so_l2bsize_jfs_log_47956 l2bsize jfs_log 0 47956 NULL
169707 +enable_so_depth_pitch_drm_r128_private_47959 depth_pitch drm_r128_private 0 47959 NULL
169708 +enable_so_netpoll_send_udp_fndecl_47960 netpoll_send_udp fndecl 3 47960 NULL
169709 +enable_so_st5481_isoc_flatten_fndecl_47963 st5481_isoc_flatten fndecl 0 47963 NULL
169710 +enable_so_handle_rx_packet_fndecl_47970 handle_rx_packet fndecl 3 47970 NULL
169711 +enable_so_encap_hlen_ip_tunnel_encap_ops_47971 encap_hlen ip_tunnel_encap_ops 0 47971 NULL nohasharray
169712 +enable_so_length_xfs_bmalloca_47971 length xfs_bmalloca 0 47971 &enable_so_encap_hlen_ip_tunnel_encap_ops_47971 nohasharray
169713 +enable_so_reg_size_sci_port_47971 reg_size sci_port 0 47971 &enable_so_length_xfs_bmalloca_47971
169714 +enable_so_le_ih_k_offset_fndecl_47992 le_ih_k_offset fndecl 0 47992 NULL
169715 +enable_so_remap_to_cache_dirty_fndecl_47996 remap_to_cache_dirty fndecl 4 47996 NULL
169716 +enable_so_size_sc_config_sizes_47998 size sc_config_sizes 0 47998 NULL
169717 +enable_so_blocks_num_c2port_ops_47999 blocks_num c2port_ops 0 47999 NULL
169718 +enable_so__fdt_check_node_offset_fndecl_48002 _fdt_check_node_offset fndecl 0-2 48002 NULL
169719 +enable_so_width_console_font_op_48005 width console_font_op 0 48005 NULL
169720 +enable_so_setgain_fndecl_48010 setgain fndecl 0 48010 NULL nohasharray
169721 +enable_so_init_pci_cap_msi_perm_fndecl_48010 init_pci_cap_msi_perm fndecl 2 48010 &enable_so_setgain_fndecl_48010
169722 +enable_so_size_netlbl_unlhsh_tbl_48011 size netlbl_unlhsh_tbl 0 48011 NULL
169723 +enable_so_selinux_transaction_write_fndecl_48013 selinux_transaction_write fndecl 3 48013 NULL
169724 +enable_so_size_nfs_fh_48014 size nfs_fh 0 48014 NULL
169725 +enable_so_temp_end_applesmc_registers_48016 temp_end applesmc_registers 0 48016 NULL
169726 +enable_so_mdiobus_read_nested_fndecl_48017 mdiobus_read_nested fndecl 0 48017 NULL
169727 +enable_so_original_mtu_slave_48025 original_mtu slave 0 48025 NULL
169728 +enable_so_hmac_len_sctp_hmac_48030 hmac_len sctp_hmac 0 48030 NULL
169729 +enable_so_aim_write_fndecl_48032 aim_write fndecl 3 48032 NULL
169730 +enable_so_dlci_header_fndecl_48034 dlci_header fndecl 3 48034 NULL
169731 +enable_so_init_page_array_fndecl_48038 init_page_array fndecl 2 48038 NULL
169732 +enable_so_rm_namelen_nfsd4_remove_48040 rm_namelen nfsd4_remove 0 48040 NULL
169733 +enable_so_fc_flogi_build_fndecl_48042 fc_flogi_build fndecl 7 48042 NULL
169734 +enable_so_s_reserved_affs_sb_info_48043 s_reserved affs_sb_info 0 48043 NULL
169735 +enable_so_sb_size_md_rdev_48046 sb_size md_rdev 0 48046 NULL
169736 +enable_so_num_pages_ttm_buffer_object_48047 num_pages ttm_buffer_object 0 48047 NULL
169737 +enable_so_num_privcmd_mmapbatch_v2_48051 num privcmd_mmapbatch_v2 0 48051 NULL
169738 +enable_so_rds_buf_vardecl_radio_si470x_i2c_c_48053 rds_buf vardecl_radio-si470x-i2c.c 0 48053 NULL
169739 +enable_so_ioctl_datasize_ips_ha_48058 ioctl_datasize ips_ha 0 48058 NULL
169740 +enable_so_lso_max_fc_lport_48064 lso_max fc_lport 0 48064 NULL
169741 +enable_so_zonesize_alauda_media_info_48068 zonesize alauda_media_info 0 48068 NULL
169742 +enable_so_sc16is7xx_alloc_line_fndecl_48075 sc16is7xx_alloc_line fndecl 0 48075 NULL
169743 +enable_so_xfs_zero_eof_fndecl_48076 xfs_zero_eof fndecl 3-2 48076 NULL
169744 +enable_so_mt9t031_skip_fndecl_48078 mt9t031_skip fndecl 0-3-2 48078 NULL
169745 +enable_so_blocksize_sddr55_card_info_48082 blocksize sddr55_card_info 0 48082 NULL nohasharray
169746 +enable_so_setup_irq_msi_controller_48082 setup_irq msi_controller 0 48082 &enable_so_blocksize_sddr55_card_info_48082
169747 +enable_so_osst_max_dev_vardecl_osst_c_48086 osst_max_dev vardecl_osst.c 0 48086 NULL
169748 +enable_so_ipath_rcvegrcnt_ipath_devdata_48089 ipath_rcvegrcnt ipath_devdata 0 48089 NULL
169749 +enable_so_count_atl1c_rfd_ring_48095 count atl1c_rfd_ring 0 48095 NULL
169750 +enable_so_scsi_io_completion_fndecl_48097 scsi_io_completion fndecl 2 48097 NULL nohasharray
169751 +enable_so_seg_count_agp_region32_48097 seg_count agp_region32 0 48097 &enable_so_scsi_io_completion_fndecl_48097
169752 +enable_so_icq_align_elevator_type_48098 icq_align elevator_type 0 48098 NULL
169753 +enable_so_ep_out_mts_desc_48099 ep_out mts_desc 0 48099 NULL
169754 +enable_so___lbs_cmd_async_fndecl_48102 __lbs_cmd_async fndecl 4 48102 NULL
169755 +enable_so_pre_pll_clk_div_smiapp_pll_48103 pre_pll_clk_div smiapp_pll 0 48103 NULL
169756 +enable_so_nfc_llcp_send_i_frame_fndecl_48105 nfc_llcp_send_i_frame fndecl 3 48105 NULL nohasharray
169757 +enable_so_bit_offset_nvmem_cell_info_48105 bit_offset nvmem_cell_info 0 48105 &enable_so_nfc_llcp_send_i_frame_fndecl_48105 nohasharray
169758 +enable_so___cvmx_bootmem_desc_get_fndecl_48105 __cvmx_bootmem_desc_get fndecl 0 48105 &enable_so_bit_offset_nvmem_cell_info_48105
169759 +enable_so_max_pkt_size_cx231xx_audio_48117 max_pkt_size cx231xx_audio 0 48117 NULL nohasharray
169760 +enable_so_namelen_xensyms_48117 namelen xensyms 0 48117 &enable_so_max_pkt_size_cx231xx_audio_48117
169761 +enable_so_discard_granularity_queue_limits_48119 discard_granularity queue_limits 0 48119 NULL
169762 +enable_so_curr_dma_words_tegra_slink_data_48129 curr_dma_words tegra_slink_data 0 48129 NULL nohasharray
169763 +enable_so_gfs2_write_begin_fndecl_48129 gfs2_write_begin fndecl 4-3 48129 &enable_so_curr_dma_words_tegra_slink_data_48129
169764 +enable_so_vma_kernel_pagesize_fndecl_48131 vma_kernel_pagesize fndecl 0 48131 NULL
169765 +enable_so_tx_tx_retry_template_read_fndecl_48132 tx_tx_retry_template_read fndecl 3 48132 NULL
169766 +enable_so_mem_read_fndecl_48140 mem_read fndecl 3 48140 NULL
169767 +enable_so_sisusbcon_putcs_fndecl_48141 sisusbcon_putcs fndecl 3 48141 NULL nohasharray
169768 +enable_so_osdmap_set_max_osd_fndecl_48141 osdmap_set_max_osd fndecl 2 48141 &enable_so_sisusbcon_putcs_fndecl_48141
169769 +enable_so_max_gs_mlx5_core_srq_48153 max_gs mlx5_core_srq 0 48153 NULL
169770 +enable_so_fdt_get_property_fndecl_48155 fdt_get_property fndecl 2 48155 NULL nohasharray
169771 +enable_so_isdnhdlc_encode_fndecl_48155 isdnhdlc_encode fndecl 0-6 48155 &enable_so_fdt_get_property_fndecl_48155
169772 +enable_so_usb_endpoint_data_queue_48158 usb_endpoint data_queue 0 48158 NULL nohasharray
169773 +enable_so_update_res_fndecl_48158 update_res fndecl 3-2 48158 &enable_so_usb_endpoint_data_queue_48158 nohasharray
169774 +enable_so_hpi_cobranet_hmi_write_fndecl_48158 hpi_cobranet_hmi_write fndecl 3 48158 &enable_so_update_res_fndecl_48158
169775 +enable_so_qs_in_channels_hdsp_48166 qs_in_channels hdsp 0 48166 NULL
169776 +enable_so_r3964_write_fndecl_48173 r3964_write fndecl 4 48173 NULL
169777 +enable_so_hub_control_hc_driver_48178 hub_control hc_driver 0 48178 NULL
169778 +enable_so_mwifiex_parse_cal_cfg_fndecl_48179 mwifiex_parse_cal_cfg fndecl 0 48179 NULL
169779 +enable_so_mr_read_fndecl_48180 mr_read fndecl 0 48180 NULL
169780 +enable_so_num_pages_vmw_sg_table_48192 num_pages vmw_sg_table 0 48192 NULL
169781 +enable_so_qcafrm_fsm_decode_fndecl_48193 qcafrm_fsm_decode fndecl 0-4 48193 NULL nohasharray
169782 +enable_so_data_transfer_length_pmcraid_ioarcb_48193 data_transfer_length pmcraid_ioarcb 0 48193 &enable_so_qcafrm_fsm_decode_fndecl_48193
169783 +enable_so_xres_virtual_fb_var_screeninfo_48196 xres_virtual fb_var_screeninfo 0 48196 NULL nohasharray
169784 +enable_so_sy_fb_copyarea_48196 sy fb_copyarea 0 48196 &enable_so_xres_virtual_fb_var_screeninfo_48196
169785 +enable_so_snd_rawmidi_transmit_ack_fndecl_48200 snd_rawmidi_transmit_ack fndecl 0-2 48200 NULL
169786 +enable_so_rxoffset_dma_info_48202 rxoffset dma_info 0 48202 NULL
169787 +enable_so_btusb_recv_bulk_intel_fndecl_48211 btusb_recv_bulk_intel fndecl 3 48211 NULL nohasharray
169788 +enable_so_proc_ns_readlink_fndecl_48211 proc_ns_readlink fndecl 3 48211 &enable_so_btusb_recv_bulk_intel_fndecl_48211
169789 +enable_so___lgwrite_fndecl_48214 __lgwrite fndecl 4 48214 NULL
169790 +enable_so_ramoops_console_size_vardecl_ram_c_48215 ramoops_console_size vardecl_ram.c 0 48215 NULL
169791 +enable_so_srp_response_common_fndecl_48216 srp_response_common fndecl 4-2 48216 NULL nohasharray
169792 +enable_so_ax88179_read_cmd_nopm_fndecl_48216 ax88179_read_cmd_nopm fndecl 5 48216 &enable_so_srp_response_common_fndecl_48216
169793 +enable_so_cur_inode_last_extent_send_ctx_48219 cur_inode_last_extent send_ctx 0 48219 NULL
169794 +enable_so_qib_rkey_ok_fndecl_48221 qib_rkey_ok fndecl 3-4 48221 NULL
169795 +enable_so_b_map_count_xfs_buf_48228 b_map_count xfs_buf 0 48228 NULL
169796 +enable_so_sys_nice_fndecl_48229 sys_nice fndecl 1 48229 NULL
169797 +enable_so_xdr_buf_read_netobj_fndecl_48238 xdr_buf_read_netobj fndecl 3 48238 NULL
169798 +enable_so_num_rx_rings_bnx2_48240 num_rx_rings bnx2 0 48240 NULL
169799 +enable_so_qib_make_grh_fndecl_48250 qib_make_grh fndecl 0 48250 NULL
169800 +enable_so_height_cx88_core_48255 height cx88_core 0 48255 NULL
169801 +enable_so_ib_uverbs_create_xsrq_fndecl_48257 ib_uverbs_create_xsrq fndecl 4 48257 NULL
169802 +enable_so_vrows_display_48275 vrows display 0 48275 NULL
169803 +enable_so_qdisc_tree_decrease_qlen_fndecl_48281 qdisc_tree_decrease_qlen fndecl 2 48281 NULL
169804 +enable_so_compat_sys_set_mempolicy_fndecl_48285 compat_sys_set_mempolicy fndecl 3 48285 NULL
169805 +enable_so_reg_shift_pciserial_board_48293 reg_shift pciserial_board 0 48293 NULL
169806 +enable_so_add_packet_fndecl_48295 add_packet fndecl 3 48295 NULL
169807 +enable_so_next_dtslot_48300 next dtslot 0 48300 NULL
169808 +enable_so_ofs_atmel_dma_buffer_48310 ofs atmel_dma_buffer 0 48310 NULL
169809 +enable_so_nep_buffer_size_wahc_48313 nep_buffer_size wahc 0 48313 NULL
169810 +enable_so_ci_flags_f2fs_crypt_info_48318 ci_flags f2fs_crypt_info 0 48318 NULL
169811 +enable_so_ngroups_group_info_48320 ngroups group_info 0 48320 NULL
169812 +enable_so_pin_down_extent_fndecl_48324 pin_down_extent fndecl 4-3 48324 NULL
169813 +enable_so_acpi_efi_48328 acpi efi 0 48328 NULL nohasharray
169814 +enable_so_btn_rec_size_cyttsp4_sysinfo_ofs_48328 btn_rec_size cyttsp4_sysinfo_ofs 0 48328 &enable_so_acpi_efi_48328
169815 +enable_so_vga_scan_lines_vardecl_vgacon_c_48330 vga_scan_lines vardecl_vgacon.c 0 48330 NULL
169816 +enable_so_region_table_entry_bits_switch_ctx_48332 region_table_entry_bits switch_ctx 0 48332 NULL
169817 +enable_so_tch_rec_size_cyttsp4_opcfg_48339 tch_rec_size cyttsp4_opcfg 0 48339 NULL
169818 +enable_so_ion_test_ioctl_fndecl_48340 ion_test_ioctl fndecl 2 48340 NULL
169819 +enable_so_ivtv_read_fndecl_48343 ivtv_read fndecl 3 48343 NULL
169820 +enable_so_spare_bytes_per_page_nand_jedec_params_48344 spare_bytes_per_page nand_jedec_params 0 48344 NULL
169821 +enable_so_bno_xfs_extent_busy_48346 bno xfs_extent_busy 0 48346 NULL
169822 +enable_so_generic_ptrace_peekdata_fndecl_48349 generic_ptrace_peekdata fndecl 2 48349 NULL
169823 +enable_so_hwahc_op_urb_dequeue_fndecl_48351 hwahc_op_urb_dequeue fndecl 3 48351 NULL
169824 +enable_so_flash_read_fndecl_48352 flash_read fndecl 3 48352 NULL
169825 +enable_so_kiblnd_create_tx_pool_fndecl_48357 kiblnd_create_tx_pool fndecl 2 48357 NULL
169826 +enable_so_qib_make_rc_ack_fndecl_48361 qib_make_rc_ack fndecl 4 48361 NULL
169827 +enable_so_ule_sndu_len_dvb_net_priv_48367 ule_sndu_len dvb_net_priv 0 48367 NULL
169828 +enable_so_xlog_write_setup_copy_fndecl_48368 xlog_write_setup_copy fndecl 0-4-3 48368 NULL
169829 +enable_so_gmch_chip_id_intel_gtt_driver_description_48370 gmch_chip_id intel_gtt_driver_description 0 48370 NULL
169830 +enable_so_bfad_debugfs_read_regrd_fndecl_48373 bfad_debugfs_read_regrd fndecl 3 48373 NULL
169831 +enable_so_width_dt3155_priv_48375 width dt3155_priv 0 48375 NULL
169832 +enable_so_copy_to_user_fndecl_48376 copy_to_user fndecl 3-0 48376 NULL
169833 +enable_so_driver_data_pci_device_id_48380 driver_data pci_device_id 0 48380 NULL
169834 +enable_so_hfs_ext_read_extent_fndecl_48383 hfs_ext_read_extent fndecl 2 48383 NULL nohasharray
169835 +enable_so_punit_size_intel_pmc_ipc_dev_48383 punit_size intel_pmc_ipc_dev 0 48383 &enable_so_hfs_ext_read_extent_fndecl_48383
169836 +enable_so__snd_pcm_hw_param_set_fndecl_48394 _snd_pcm_hw_param_set fndecl 3 48394 NULL
169837 +enable_so_mlxsw_cmd_mbox_query_aq_cap_max_num_rdqs_get_fndecl_48399 mlxsw_cmd_mbox_query_aq_cap_max_num_rdqs_get fndecl 0 48399 NULL
169838 +enable_so_blk_queue_dma_pad_fndecl_48409 blk_queue_dma_pad fndecl 2 48409 NULL
169839 +enable_so_osd_depth_vardecl_ivtvfb_c_48413 osd_depth vardecl_ivtvfb.c 0 48413 NULL
169840 +enable_so___install_special_mapping_fndecl_48415 __install_special_mapping fndecl 3-2 48415 NULL
169841 +enable_so_seq_buf_putmem_fndecl_48421 seq_buf_putmem fndecl 3 48421 NULL
169842 +enable_so_max_kioc_mraid_mmadp_48422 max_kioc mraid_mmadp 0 48422 NULL
169843 +enable_so_sys_fadvise64_64_fndecl_48424 sys_fadvise64_64 fndecl 2-3 48424 NULL nohasharray
169844 +enable_so_stex_copy_data_fndecl_48424 stex_copy_data fndecl 3 48424 &enable_so_sys_fadvise64_64_fndecl_48424
169845 +enable_so_bMaxBurst_usb_wireless_ep_comp_descriptor_48430 bMaxBurst usb_wireless_ep_comp_descriptor 0 48430 NULL
169846 +enable_so_mmio_phys_end_amd_iommu_48432 mmio_phys_end amd_iommu 0 48432 NULL
169847 +enable_so_tty_register_device_attr_fndecl_48438 tty_register_device_attr fndecl 2 48438 NULL
169848 +enable_so_natids_tid_info_48439 natids tid_info 0 48439 NULL
169849 +enable_so_bzImage64_load_fndecl_48447 bzImage64_load fndecl 5-7 48447 NULL
169850 +enable_so_compat_keyctl_instantiate_key_iov_fndecl_48452 compat_keyctl_instantiate_key_iov fndecl 3 48452 NULL
169851 +enable_so_read_file_eeprom_fndecl_48455 read_file_eeprom fndecl 3 48455 NULL
169852 +enable_so_dp_out_buf_len_digi_port_48457 dp_out_buf_len digi_port 0 48457 NULL nohasharray
169853 +enable_so_xen_align_and_add_e820_region_fndecl_48457 xen_align_and_add_e820_region fndecl 2-1 48457 &enable_so_dp_out_buf_len_digi_port_48457 nohasharray
169854 +enable_so_pwr_ap_sleep_active_conf_read_fndecl_48457 pwr_ap_sleep_active_conf_read fndecl 3 48457 &enable_so_xen_align_and_add_e820_region_fndecl_48457
169855 +enable_so_copy_to_user_fromio_fndecl_48459 copy_to_user_fromio fndecl 3 48459 NULL
169856 +enable_so_len_rx_header_48462 len rx_header 0 48462 NULL
169857 +enable_so___nla_reserve_nohdr_fndecl_48468 __nla_reserve_nohdr fndecl 2 48468 NULL nohasharray
169858 +enable_so_carl9170_read_mreg_fndecl_48468 carl9170_read_mreg fndecl 2 48468 &enable_so___nla_reserve_nohdr_fndecl_48468
169859 +enable_so_length_acpi_ipmi_buffer_48471 length acpi_ipmi_buffer 0 48471 NULL nohasharray
169860 +enable_so_enclosure_register_fndecl_48471 enclosure_register fndecl 3 48471 &enable_so_length_acpi_ipmi_buffer_48471
169861 +enable_so_gre_manip_pkt_fndecl_48475 gre_manip_pkt fndecl 4 48475 NULL
169862 +enable_so_parport_ieee1284_epp_read_data_fndecl_48478 parport_ieee1284_epp_read_data fndecl 0 48478 NULL
169863 +enable_so_nr_domains_rapl_package_48482 nr_domains rapl_package 0 48482 NULL
169864 +enable_so_xe_value_size_ocfs2_xattr_entry_48485 xe_value_size ocfs2_xattr_entry 0 48485 NULL
169865 +enable_so___roundup_pow_of_two_fndecl_48486 __roundup_pow_of_two fndecl 0 48486 NULL
169866 +enable_so___origin_write_fndecl_48487 __origin_write fndecl 2 48487 NULL nohasharray
169867 +enable_so_addidata_apci7800_setup_fndecl_48487 addidata_apci7800_setup fndecl 4 48487 &enable_so___origin_write_fndecl_48487
169868 +enable_so_sisusb_clear_vram_fndecl_48489 sisusb_clear_vram fndecl 2-3 48489 NULL
169869 +enable_so_l_len_ocfs2_space_resv_48490 l_len ocfs2_space_resv 0 48490 NULL
169870 +enable_so_ydepth_sh_veu_format_48498 ydepth sh_veu_format 0 48498 NULL
169871 +enable_so_ping_v6_sendmsg_fndecl_48499 ping_v6_sendmsg fndecl 3 48499 NULL
169872 +enable_so_encode_filename_fndecl_48501 encode_filename fndecl 3 48501 NULL
169873 +enable_so_len_cfg80211_bss_ies_48503 len cfg80211_bss_ies 0 48503 NULL
169874 +enable_so_sys_pselect6_fndecl_48506 sys_pselect6 fndecl 1 48506 NULL
169875 +enable_so_channels_snd_soc_dai_48509 channels snd_soc_dai 0 48509 NULL
169876 +enable_so_rx_count_kim_data_s_48513 rx_count kim_data_s 0 48513 NULL
169877 +enable_so_get_lr_context_size_fndecl_48518 get_lr_context_size fndecl 0 48518 NULL
169878 +enable_so_octeon_read_device_mem32_fndecl_48520 octeon_read_device_mem32 fndecl 0 48520 NULL
169879 +enable_so_fcoe_get_paged_crc_eof_fndecl_48522 fcoe_get_paged_crc_eof fndecl 2 48522 NULL
169880 +enable_so_copy_in_user_fndecl_48525 copy_in_user fndecl 3 48525 NULL
169881 +enable_so_receive_buf_fndecl_48528 receive_buf fndecl 4 48528 NULL nohasharray
169882 +enable_so_max_sense_bytes_mpt3_ioctl_command_48528 max_sense_bytes mpt3_ioctl_command 0 48528 &enable_so_receive_buf_fndecl_48528
169883 +enable_so_dxfer_len_sg_io_hdr_48532 dxfer_len sg_io_hdr 0 48532 NULL
169884 +enable_so_nilfs_sufile_update_fndecl_48533 nilfs_sufile_update fndecl 2 48533 NULL
169885 +enable_so_ocfs2_write_cluster_fndecl_48536 ocfs2_write_cluster fndecl 2-8 48536 NULL
169886 +enable_so_discard_block_size_cache_48539 discard_block_size cache 0 48539 NULL
169887 +enable_so_total_pages_balloon_stats_48541 total_pages balloon_stats 0 48541 NULL nohasharray
169888 +enable_so_tot_len_iphdr_48541 tot_len iphdr 0 48541 &enable_so_total_pages_balloon_stats_48541
169889 +enable_so_fack_count_tcp_sacktag_state_48543 fack_count tcp_sacktag_state 0 48543 NULL
169890 +enable_so_aid_len_nfc_evt_transaction_48544 aid_len nfc_evt_transaction 0 48544 NULL
169891 +enable_so_cmm_read_fndecl_48547 cmm_read fndecl 3 48547 NULL
169892 +enable_so_dm_stats_create_fndecl_48550 dm_stats_create fndecl 4-2-3-6 48550 NULL
169893 +enable_so_inode_permission_fndecl_48552 inode_permission fndecl 0 48552 NULL
169894 +enable_so_dccp_sync_mss_fndecl_48556 dccp_sync_mss fndecl 2 48556 NULL
169895 +enable_so_acpi_dev_get_resources_fndecl_48557 acpi_dev_get_resources fndecl 0 48557 NULL
169896 +enable_so___vlan_vid_add_fndecl_48559 __vlan_vid_add fndecl 3 48559 NULL
169897 +enable_so_eth_header_cache_fndecl_48564 eth_header_cache fndecl 3 48564 NULL
169898 +enable_so_init_tag_map_fndecl_48568 init_tag_map fndecl 3 48568 NULL
169899 +enable_so_start_spy_cam_fndecl_48570 start_spy_cam fndecl 0 48570 NULL
169900 +enable_so_len_wep_key_t_48574 len wep_key_t 0 48574 NULL nohasharray
169901 +enable_so_wil_read_file_ssid_fndecl_48574 wil_read_file_ssid fndecl 3 48574 &enable_so_len_wep_key_t_48574
169902 +enable_so_iomem_reg_shift_old_serial_port_48579 iomem_reg_shift old_serial_port 0 48579 NULL nohasharray
169903 +enable_so_dynamic_fw_traces_read_fndecl_48579 dynamic_fw_traces_read fndecl 3 48579 &enable_so_iomem_reg_shift_old_serial_port_48579
169904 +enable_so_vce_v2_0_bo_size_fndecl_48581 vce_v2_0_bo_size fndecl 0 48581 NULL
169905 +enable_so_tx_ring_size_bnx2x_48584 tx_ring_size bnx2x 0 48584 NULL
169906 +enable_so_rc_position_rpcrdma_read_chunk_48586 rc_position rpcrdma_read_chunk 0 48586 NULL
169907 +enable_so_flow_label_ib_sa_path_rec_48590 flow_label ib_sa_path_rec 0 48590 NULL nohasharray
169908 +enable_so_backup_size_vmw_resource_48590 backup_size vmw_resource 0 48590 &enable_so_flow_label_ib_sa_path_rec_48590
169909 +enable_so_driver_register_fndecl_48593 driver_register fndecl 0 48593 NULL
169910 +enable_so_len_isert_data_buf_48596 len isert_data_buf 0 48596 NULL
169911 +enable_so_datalen_atp_info_48607 datalen atp_info 0 48607 NULL nohasharray
169912 +enable_so_aggr_size_tx_agg_rate_read_fndecl_48607 aggr_size_tx_agg_rate_read fndecl 3 48607 &enable_so_datalen_atp_info_48607
169913 +enable_so_count_e8390_pkt_hdr_48610 count e8390_pkt_hdr 0 48610 NULL
169914 +enable_so_mmc_test_prepare_mrq_fndecl_48612 mmc_test_prepare_mrq fndecl 7-6-4 48612 NULL
169915 +enable_so_read_file_spectral_fft_period_fndecl_48618 read_file_spectral_fft_period fndecl 3 48618 NULL
169916 +enable_so_xen_get_max_pages_fndecl_48626 xen_get_max_pages fndecl 0 48626 NULL
169917 +enable_so_crc_eof_offset_fcoe_percpu_s_48630 crc_eof_offset fcoe_percpu_s 0 48630 NULL
169918 +enable_so_bcma_of_get_irq_fndecl_48631 bcma_of_get_irq fndecl 0 48631 NULL
169919 +enable_so_ili210x_read_reg_fndecl_48632 ili210x_read_reg fndecl 4 48632 NULL nohasharray
169920 +enable_so_get_bridge_ifindices_fndecl_48632 get_bridge_ifindices fndecl 0 48632 &enable_so_ili210x_read_reg_fndecl_48632
169921 +enable_so_srcbusirq_mpc_intsrc_48636 srcbusirq mpc_intsrc 0 48636 NULL
169922 +enable_so_igu_sb_cnt_qed_igu_info_48638 igu_sb_cnt qed_igu_info 0 48638 NULL nohasharray
169923 +enable_so_nsymbols_dsp_symbol_desc_48638 nsymbols dsp_symbol_desc 0 48638 &enable_so_igu_sb_cnt_qed_igu_info_48638
169924 +enable_so_check_next_phase_fndecl_48641 check_next_phase fndecl 2 48641 NULL
169925 +enable_so_submit_extent_page_fndecl_48642 submit_extent_page fndecl 7-5-6 48642 NULL nohasharray
169926 +enable_so_savemem_fndecl_48642 savemem fndecl 3 48642 &enable_so_submit_extent_page_fndecl_48642
169927 +enable_so_w_panel_info_48643 w panel_info 0 48643 NULL
169928 +enable_so_ipv6_flowlabel_opt_fndecl_48644 ipv6_flowlabel_opt fndecl 3 48644 NULL nohasharray
169929 +enable_so_slhc_init_fndecl_48644 slhc_init fndecl 1-2 48644 &enable_so_ipv6_flowlabel_opt_fndecl_48644
169930 +enable_so_origin_sectors_cache_48650 origin_sectors cache 0 48650 NULL
169931 +enable_so_libcfs_kvzalloc_cpt_fndecl_48651 libcfs_kvzalloc_cpt fndecl 3 48651 NULL
169932 +enable_so_tx_pvid_qlcnic_adapter_48655 tx_pvid qlcnic_adapter 0 48655 NULL
169933 +enable_so_pkt_len_eth_end_agg_rx_cqe_48658 pkt_len eth_end_agg_rx_cqe 0 48658 NULL nohasharray
169934 +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
169935 +enable_so_mmc_test_rnd_perf_fndecl_48660 mmc_test_rnd_perf fndecl 4 48660 NULL
169936 +enable_so_nn_rs_control_48667 nn rs_control 0 48667 NULL
169937 +enable_so_brcmf_sdio_bus_get_memdump_fndecl_48669 brcmf_sdio_bus_get_memdump fndecl 3 48669 NULL
169938 +enable_so_snd_seq_fifo_new_fndecl_48670 snd_seq_fifo_new fndecl 1 48670 NULL
169939 +enable_so_ep_out_if_usb_card_48678 ep_out if_usb_card 0 48678 NULL
169940 +enable_so_vscan_drm_display_mode_48680 vscan drm_display_mode 0 48680 NULL nohasharray
169941 +enable_so_ext4_bg_num_gdb_fndecl_48680 ext4_bg_num_gdb fndecl 0 48680 &enable_so_vscan_drm_display_mode_48680
169942 +enable_so_simple_transaction_set_fndecl_48684 simple_transaction_set fndecl 2 48684 NULL
169943 +enable_so_max_eqs_mlx4_dev_cap_48689 max_eqs mlx4_dev_cap 0 48689 NULL
169944 +enable_so_sb_dblocks_xfs_sb_48691 sb_dblocks xfs_sb 0 48691 NULL
169945 +enable_so_usCRTC_H_Disp__ATOM_MODE_TIMING_48694 usCRTC_H_Disp _ATOM_MODE_TIMING 0 48694 NULL nohasharray
169946 +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
169947 +enable_so_max_rds_rings_netxen_adapter_48699 max_rds_rings netxen_adapter 0 48699 NULL nohasharray
169948 +enable_so_make_cpu_key_fndecl_48699 make_cpu_key fndecl 3 48699 &enable_so_max_rds_rings_netxen_adapter_48699
169949 +enable_so_tx_load_fndecl_48707 tx_load fndecl 3 48707 NULL nohasharray
169950 +enable_so_cqe_ib_cq_init_attr_48707 cqe ib_cq_init_attr 0 48707 &enable_so_tx_load_fndecl_48707
169951 +enable_so_xfs_zero_extent_fndecl_48709 xfs_zero_extent fndecl 2-3 48709 NULL
169952 +enable_so_sect_count_hfsplus_sb_info_48715 sect_count hfsplus_sb_info 0 48715 NULL
169953 +enable_so_base_gfn_kvm_memory_slot_48716 base_gfn kvm_memory_slot 0 48716 NULL
169954 +enable_so_nci_send_cmd_fndecl_48717 nci_send_cmd fndecl 3 48717 NULL nohasharray
169955 +enable_so_num_cols_vardecl_arcfb_c_48717 num_cols vardecl_arcfb.c 0 48717 &enable_so_nci_send_cmd_fndecl_48717
169956 +enable_so_rx_max_cdc_ncm_ctx_48720 rx_max cdc_ncm_ctx 0 48720 NULL nohasharray
169957 +enable_so_mdata_ofs_cyttsp4_sysinfo_ofs_48720 mdata_ofs cyttsp4_sysinfo_ofs 0 48720 &enable_so_rx_max_cdc_ncm_ctx_48720
169958 +enable_so_ceph_tcp_recvmsg_fndecl_48722 ceph_tcp_recvmsg fndecl 0-3 48722 NULL
169959 +enable_so_mbox_test_signal_write_fndecl_48729 mbox_test_signal_write fndecl 3 48729 NULL
169960 +enable_so_vmw_view_add_fndecl_48730 vmw_view_add fndecl 7 48730 NULL
169961 +enable_so_garmin_write_bulk_fndecl_48732 garmin_write_bulk fndecl 3 48732 NULL
169962 +enable_so_can_dlc_can_frame_48738 can_dlc can_frame 0 48738 NULL
169963 +enable_so_bad_peb_count_ubi_device_48741 bad_peb_count ubi_device 0 48741 NULL nohasharray
169964 +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
169965 +enable_so_iommu_size_vardecl_amd_gart_64_c_48749 iommu_size vardecl_amd_gart_64.c 0 48749 NULL
169966 +enable_so_default_value_v4l2_ctrl_48751 default_value v4l2_ctrl 0 48751 NULL
169967 +enable_so_i40evf_allocate_virt_mem_d_fndecl_48753 i40evf_allocate_virt_mem_d fndecl 3 48753 NULL
169968 +enable_so_e_blkno_ocfs2_extent_rec_48756 e_blkno ocfs2_extent_rec 0 48756 NULL nohasharray
169969 +enable_so_bfad_iocmd_port_get_stats_fndecl_48756 bfad_iocmd_port_get_stats fndecl 0 48756 &enable_so_e_blkno_ocfs2_extent_rec_48756
169970 +enable_so_string_escape_mem_fndecl_48758 string_escape_mem fndecl 0 48758 NULL
169971 +enable_so_ide_rate_filter_fndecl_48764 ide_rate_filter fndecl 0 48764 NULL
169972 +enable_so_nfree_arena_info_48769 nfree arena_info 0 48769 NULL
169973 +enable_so_read_file_debug_fndecl_48771 read_file_debug fndecl 3 48771 NULL
169974 +enable_so_xmit_size_modem_info_48775 xmit_size modem_info 0 48775 NULL
169975 +enable_so_usable_leb_size_ubi_volume_info_48776 usable_leb_size ubi_volume_info 0 48776 NULL nohasharray
169976 +enable_so_profile_load_fndecl_48776 profile_load fndecl 3 48776 &enable_so_usable_leb_size_ubi_volume_info_48776
169977 +enable_so_cfg80211_mgmt_tx_status_fndecl_48777 cfg80211_mgmt_tx_status fndecl 4 48777 NULL
169978 +enable_so_acpi_ds_build_internal_package_obj_fndecl_48780 acpi_ds_build_internal_package_obj fndecl 3 48780 NULL
169979 +enable_so_height_drm_framebuffer_48781 height drm_framebuffer 0 48781 NULL
169980 +enable_so_mwifiex_host_to_card_mp_aggr_fndecl_48786 mwifiex_host_to_card_mp_aggr fndecl 3 48786 NULL nohasharray
169981 +enable_so_value_len_jffs2_xattr_datum_48786 value_len jffs2_xattr_datum 0 48786 &enable_so_mwifiex_host_to_card_mp_aggr_fndecl_48786 nohasharray
169982 +enable_so_hva_to_pfn_fndecl_48786 hva_to_pfn fndecl 1 48786 &enable_so_value_len_jffs2_xattr_datum_48786
169983 +enable_so_head_len_cfg80211_beacon_data_48794 head_len cfg80211_beacon_data 0 48794 NULL
169984 +enable_so_unit_size_mspro_sys_info_48796 unit_size mspro_sys_info 0 48796 NULL
169985 +enable_so_len_spi_transfer_48802 len spi_transfer 0 48802 NULL
169986 +enable_so_twl6030_init_irq_fndecl_48804 twl6030_init_irq fndecl 0 48804 NULL
169987 +enable_so_iscsi_decode_text_input_fndecl_48807 iscsi_decode_text_input fndecl 4 48807 NULL
169988 +enable_so_dev_id_rbd_device_48813 dev_id rbd_device 0 48813 NULL
169989 +enable_so_len_pci_vpd_48814 len pci_vpd 0 48814 NULL
169990 +enable_so_r100_mm_rreg_fndecl_48823 r100_mm_rreg fndecl 0 48823 NULL
169991 +enable_so_sharpness_sd_gl860_48824 sharpness sd_gl860 0 48824 NULL
169992 +enable_so_endpoint_pvr2_stream_48828 endpoint pvr2_stream 0 48828 NULL
169993 +enable_so_xbofs_irda_skb_cb_48831 xbofs irda_skb_cb 0 48831 NULL nohasharray
169994 +enable_so_num_vring_48831 num vring 0 48831 &enable_so_xbofs_irda_skb_cb_48831
169995 +enable_so_mic_virtio_copy_from_user_fndecl_48832 mic_virtio_copy_from_user fndecl 3 48832 NULL
169996 +enable_so___generic_file_fsync_fndecl_48835 __generic_file_fsync fndecl 2-3 48835 NULL
169997 +enable_so_osst_init_aux_fndecl_48837 osst_init_aux fndecl 5-6-3 48837 NULL
169998 +enable_so_tx_tx_start_int_templates_read_fndecl_48839 tx_tx_start_int_templates_read fndecl 3 48839 NULL
169999 +enable_so_bfad_iocmd_flash_update_part_fndecl_48840 bfad_iocmd_flash_update_part fndecl 0 48840 NULL
170000 +enable_so_busnum_usb_bus_48843 busnum usb_bus 0 48843 NULL
170001 +enable_so_agf_flcount_xfs_agf_48844 agf_flcount xfs_agf 0 48844 NULL
170002 +enable_so_pcim_iomap_fndecl_48845 pcim_iomap fndecl 3 48845 NULL
170003 +enable_so_end_io_target_type_48863 end_io target_type 0 48863 NULL
170004 +enable_so_pagefault_single_data_segment_fndecl_48864 pagefault_single_data_segment fndecl 4 48864 NULL
170005 +enable_so_vmalloc_to_sg_fndecl_48865 vmalloc_to_sg fndecl 2 48865 NULL
170006 +enable_so_mpls_count_nexthops_fndecl_48869 mpls_count_nexthops fndecl 0 48869 NULL
170007 +enable_so_num_desc_i40e_vsi_48872 num_desc i40e_vsi 0 48872 NULL
170008 +enable_so_log_mtts_per_seg_vardecl_48880 log_mtts_per_seg vardecl 0 48880 NULL
170009 +enable_so_ax25_create_fndecl_48882 ax25_create fndecl 3 48882 NULL nohasharray
170010 +enable_so_skb_ensure_writable_fndecl_48882 skb_ensure_writable fndecl 2 48882 &enable_so_ax25_create_fndecl_48882 nohasharray
170011 +enable_so___copy_from_user_swizzled_fndecl_48882 __copy_from_user_swizzled fndecl 2-4 48882 &enable_so_skb_ensure_writable_fndecl_48882
170012 +enable_so_diva_init_dma_map_fndecl_48883 diva_init_dma_map fndecl 3 48883 NULL nohasharray
170013 +enable_so_memblock_clear_hotplug_fndecl_48883 memblock_clear_hotplug fndecl 2-1 48883 &enable_so_diva_init_dma_map_fndecl_48883
170014 +enable_so_cl_in_max_entry_size_mvumi_hs_page1_48890 cl_in_max_entry_size mvumi_hs_page1 0 48890 NULL nohasharray
170015 +enable_so_bylength_atto_vda_ae_hdr_48890 bylength atto_vda_ae_hdr 0 48890 &enable_so_cl_in_max_entry_size_mvumi_hs_page1_48890
170016 +enable_so_nr_buffers_drm_nouveau_gem_pushbuf_48902 nr_buffers drm_nouveau_gem_pushbuf 0 48902 NULL
170017 +enable_so_RPyLen_hfs_cat_file_48906 RPyLen hfs_cat_file 0 48906 NULL
170018 +enable_so_offset_scatterlist_48908 offset scatterlist 0 48908 NULL nohasharray
170019 +enable_so_max_devices_support_mvumi_hs_page1_48908 max_devices_support mvumi_hs_page1 0 48908 &enable_so_offset_scatterlist_48908
170020 +enable_so_ucNumEntries__StateArray_48910 ucNumEntries _StateArray 0 48910 NULL
170021 +enable_so_iscsit_tpg_set_initiator_node_queue_depth_fndecl_48914 iscsit_tpg_set_initiator_node_queue_depth fndecl 3 48914 NULL
170022 +enable_so_s_groups_count_ext2_sb_info_48915 s_groups_count ext2_sb_info 0 48915 NULL
170023 +enable_so_tailsz_cifs_readdata_48919 tailsz cifs_readdata 0 48919 NULL
170024 +enable_so_minix_iget_fndecl_48927 minix_iget fndecl 2 48927 NULL
170025 +enable_so__scif_nodeqp_send_fndecl_48929 _scif_nodeqp_send fndecl 0 48929 NULL
170026 +enable_so_write_file_operations_48930 write file_operations 0 48930 NULL nohasharray
170027 +enable_so_rx_ring_count_ixgbevf_adapter_48930 rx_ring_count ixgbevf_adapter 0 48930 &enable_so_write_file_operations_48930
170028 +enable_so_iio_read_first_n_kfifo_fndecl_48933 iio_read_first_n_kfifo fndecl 2 48933 NULL
170029 +enable_so_min_inp_pixsize_fimc_variant_48943 min_inp_pixsize fimc_variant 0 48943 NULL nohasharray
170030 +enable_so_w1_reply_len_fndecl_48943 w1_reply_len fndecl 0 48943 &enable_so_min_inp_pixsize_fimc_variant_48943
170031 +enable_so_set_dma_reserve_fndecl_48948 set_dma_reserve fndecl 1 48948 NULL nohasharray
170032 +enable_so_start_mthca_resource_48948 start mthca_resource 0 48948 &enable_so_set_dma_reserve_fndecl_48948
170033 +enable_so_to_index_fndecl_48953 to_index fndecl 0 48953 NULL
170034 +enable_so_xt_alloc_table_info_fndecl_48956 xt_alloc_table_info fndecl 1 48956 NULL
170035 +enable_so_user_dlm_lock_fndecl_48959 user_dlm_lock fndecl 6 48959 NULL nohasharray
170036 +enable_so_wptr_radeon_ring_48959 wptr radeon_ring 0 48959 &enable_so_user_dlm_lock_fndecl_48959
170037 +enable_so_xfs_mru_cache_create_fndecl_48964 xfs_mru_cache_create fndecl 3 48964 NULL nohasharray
170038 +enable_so_num_requests_vardecl_48964 num_requests vardecl 0 48964 &enable_so_xfs_mru_cache_create_fndecl_48964 nohasharray
170039 +enable_so_snd_timer_user_gparams_fndecl_48964 snd_timer_user_gparams fndecl 0 48964 &enable_so_num_requests_vardecl_48964
170040 +enable_so_SyS_io_setup_fndecl_48965 SyS_io_setup fndecl 1 48965 NULL
170041 +enable_so_block_size_sm_ftl_48967 block_size sm_ftl 0 48967 NULL
170042 +enable_so_rx_fndecl_48971 rx fndecl 4 48971 NULL
170043 +enable_so_twl_i2c_write_fndecl_48976 twl_i2c_write fndecl 0 48976 NULL
170044 +enable_so_num_packet_sock_48980 num packet_sock 0 48980 NULL
170045 +enable_so_pkt_overhead_pktgen_dev_48989 pkt_overhead pktgen_dev 0 48989 NULL
170046 +enable_so_sel_read_handle_unknown_fndecl_48990 sel_read_handle_unknown fndecl 3 48990 NULL
170047 +enable_so_iov_iter_npages_fndecl_49000 iov_iter_npages fndecl 0-2 49000 NULL nohasharray
170048 +enable_so_pid_task_struct_49000 pid task_struct 0 49000 &enable_so_iov_iter_npages_fndecl_49000
170049 +enable_so_rec_len_exofs_dir_entry_49002 rec_len exofs_dir_entry 0 49002 NULL
170050 +enable_so_size_mlx4_en_tx_ring_49005 size mlx4_en_tx_ring 0 49005 NULL
170051 +enable_so_ip_set_alloc_fndecl_49010 ip_set_alloc fndecl 1 49010 NULL
170052 +enable_so_mmio_addr_stm_data_49015 mmio_addr stm_data 0 49015 NULL
170053 +enable_so_bm_len_xfs_buf_map_49022 bm_len xfs_buf_map 0 49022 NULL
170054 +enable_so_rx_reset_counter_read_fndecl_49026 rx_reset_counter_read fndecl 3 49026 NULL
170055 +enable_so_usb_dmac_prep_slave_sg_fndecl_49027 usb_dmac_prep_slave_sg fndecl 3 49027 NULL
170056 +enable_so_size_vmw_otable_49032 size vmw_otable 0 49032 NULL
170057 +enable_so___ip6_append_data_fndecl_49037 __ip6_append_data fndecl 10-9 49037 NULL
170058 +enable_so_dev_id_rfcomm_dev_req_49039 dev_id rfcomm_dev_req 0 49039 NULL
170059 +enable_so_reg_r_fndecl_49040 reg_r fndecl 0 49040 NULL
170060 +enable_so_dwMaxVideoFrameSize_uvc_streaming_control_49044 dwMaxVideoFrameSize uvc_streaming_control 0 49044 NULL
170061 +enable_so_devices_per_bus__MPT_ADAPTER_49051 devices_per_bus _MPT_ADAPTER 0 49051 NULL nohasharray
170062 +enable_so_devno_skd_device_49051 devno skd_device 0 49051 &enable_so_devices_per_bus__MPT_ADAPTER_49051
170063 +enable_so_cxacru_cm_fndecl_49052 cxacru_cm fndecl 4 49052 NULL
170064 +enable_so_iguanair_send_fndecl_49054 iguanair_send fndecl 2 49054 NULL
170065 +enable_so_route_key_size_nf_afinfo_49055 route_key_size nf_afinfo 0 49055 NULL
170066 +enable_so_ide_pio_bytes_fndecl_49063 ide_pio_bytes fndecl 4 49063 NULL
170067 +enable_so_cm_size_tp_params_49065 cm_size tp_params 0 49065 NULL
170068 +enable_so_transport_mtu_vardecl_ntb_transport_c_49067 transport_mtu vardecl_ntb_transport.c 0 49067 NULL
170069 +enable_so_do_writepage_fndecl_49068 do_writepage fndecl 2 49068 NULL
170070 +enable_so_ccid_hc_tx_obj_size_ccid_operations_49077 ccid_hc_tx_obj_size ccid_operations 0 49077 NULL
170071 +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
170072 +enable_so_tty_major_vardecl_hso_c_49084 tty_major vardecl_hso.c 0 49084 NULL
170073 +enable_so_dev_priv_size_drm_buf_49086 dev_priv_size drm_buf 0 49086 NULL
170074 +enable_so_optrom_region_size_qla_hw_data_49087 optrom_region_size qla_hw_data 0 49087 NULL
170075 +enable_so_ocfs2_find_leaf_fndecl_49090 ocfs2_find_leaf fndecl 0 49090 NULL nohasharray
170076 +enable_so_bi_vcnt_bio_49090 bi_vcnt bio 0 49090 &enable_so_ocfs2_find_leaf_fndecl_49090
170077 +enable_so_ocfs2_mv_xattr_bucket_cross_cluster_fndecl_49091 ocfs2_mv_xattr_bucket_cross_cluster fndecl 5-6 49091 NULL
170078 +enable_so_end_sector_dev_info_49096 end_sector dev_info 0 49096 NULL nohasharray
170079 +enable_so_misc_sbp_command_block_orb_49096 misc sbp_command_block_orb 0 49096 &enable_so_end_sector_dev_info_49096
170080 +enable_so_u132_hcd_interrupt_recv_fndecl_49098 u132_hcd_interrupt_recv fndecl 4 49098 NULL
170081 +enable_so_usb_stor_acquire_resources_fndecl_49100 usb_stor_acquire_resources fndecl 0 49100 NULL nohasharray
170082 +enable_so_cm4040_write_fndecl_49100 cm4040_write fndecl 3 49100 &enable_so_usb_stor_acquire_resources_fndecl_49100
170083 +enable_so_xdr_align_pages_fndecl_49102 xdr_align_pages fndecl 0-2 49102 NULL
170084 +enable_so_ri_super_root_nilfs_recovery_info_49105 ri_super_root nilfs_recovery_info 0 49105 NULL
170085 +enable_so_vmci_qpair_alloc_fndecl_49107 vmci_qpair_alloc fndecl 4-3 49107 NULL nohasharray
170086 +enable_so_qnx6_block_map_fndecl_49107 qnx6_block_map fndecl 0 49107 &enable_so_vmci_qpair_alloc_fndecl_49107
170087 +enable_so_ino_kernfs_node_49113 ino kernfs_node 0 49113 NULL
170088 +enable_so_vxlan_fdb_create_fndecl_49127 vxlan_fdb_create fndecl 7 49127 NULL
170089 +enable_so_alloc_rbio_fndecl_49128 alloc_rbio fndecl 3 49128 NULL
170090 +enable_so_m_ialloc_min_blks_xfs_mount_49129 m_ialloc_min_blks xfs_mount 0 49129 NULL
170091 +enable_so_mad_seg_size_ib_mad_recv_wc_49134 mad_seg_size ib_mad_recv_wc 0 49134 NULL
170092 +enable_so_neo_init_hw_fndecl_49135 neo_init_hw fndecl 0 49135 NULL
170093 +enable_so_snd_pcm_hw_param_min_fndecl_49139 snd_pcm_hw_param_min fndecl 4 49139 NULL
170094 +enable_so_scif_rma_list_mmap_fndecl_49142 scif_rma_list_mmap fndecl 2 49142 NULL
170095 +enable_so_batch_len_drm_i915_gem_execbuffer2_49145 batch_len drm_i915_gem_execbuffer2 0 49145 NULL
170096 +enable_so_fll_out_wm8900_priv_49147 fll_out wm8900_priv 0 49147 NULL
170097 +enable_so_max_dev_mdp_superblock_1_49148 max_dev mdp_superblock_1 0 49148 NULL
170098 +enable_so_ufx_reg_clear_and_set_bits_fndecl_49150 ufx_reg_clear_and_set_bits fndecl 0 49150 NULL
170099 +enable_so_ecryptfs_inode_newsize_ok_fndecl_49153 ecryptfs_inode_newsize_ok fndecl 2 49153 NULL
170100 +enable_so_port_mlx4_ib_demux_pv_ctx_49165 port mlx4_ib_demux_pv_ctx 0 49165 NULL
170101 +enable_so_size_uv_intel_rotation_info_49166 size_uv intel_rotation_info 0 49166 NULL
170102 +enable_so_d_size_p_sizes_49167 d_size p_sizes 0 49167 NULL
170103 +enable_so_tx_tr_cfv_info_49171 tx_tr cfv_info 0 49171 NULL
170104 +enable_so_ipr_alloc_ucode_buffer_fndecl_49172 ipr_alloc_ucode_buffer fndecl 1 49172 NULL
170105 +enable_so_guc_fw_size_intel_guc_fw_49177 guc_fw_size intel_guc_fw 0 49177 NULL
170106 +enable_so_nilfs_sufile_do_cancel_free_fndecl_49183 nilfs_sufile_do_cancel_free fndecl 2 49183 NULL
170107 +enable_so_s_last_ino_logfs_super_49185 s_last_ino logfs_super 0 49185 NULL
170108 +enable_so_len_fb_cmap_user_49195 len fb_cmap_user 0 49195 NULL
170109 +enable_so_fsl_edma_prep_dma_cyclic_fndecl_49197 fsl_edma_prep_dma_cyclic fndecl 4-2-3 49197 NULL nohasharray
170110 +enable_so_of_get_child_count_fndecl_49197 of_get_child_count fndecl 0 49197 &enable_so_fsl_edma_prep_dma_cyclic_fndecl_49197
170111 +enable_so_offset_page_chunk_49201 offset page_chunk 0 49201 NULL
170112 +enable_so_ocrdma_dbgfs_ops_read_fndecl_49211 ocrdma_dbgfs_ops_read fndecl 3 49211 NULL
170113 +enable_so_osst_read_fndecl_49214 osst_read fndecl 3 49214 NULL
170114 +enable_so_i_pos_low_fat_fid_49216 i_pos_low fat_fid 0 49216 NULL nohasharray
170115 +enable_so_nleft_ide_cmd_49216 nleft ide_cmd 0 49216 &enable_so_i_pos_low_fat_fid_49216 nohasharray
170116 +enable_so_usbnet_read_cmd_fndecl_49216 usbnet_read_cmd fndecl 7 49216 &enable_so_nleft_ide_cmd_49216
170117 +enable_so_rx_xfr_hint_trig_read_fndecl_49224 rx_xfr_hint_trig_read fndecl 3 49224 NULL
170118 +enable_so_offset_rq_map_data_49234 offset rq_map_data 0 49234 NULL nohasharray
170119 +enable_so_bfad_iocmd_fcpim_cfg_profile_fndecl_49234 bfad_iocmd_fcpim_cfg_profile fndecl 0 49234 &enable_so_offset_rq_map_data_49234
170120 +enable_so_ext_ramdisk_image_boot_params_49238 ext_ramdisk_image boot_params 0 49238 NULL
170121 +enable_so_mos7840_write_fndecl_49240 mos7840_write fndecl 4 49240 NULL
170122 +enable_so_persistent_ram_iomap_fndecl_49243 persistent_ram_iomap fndecl 2-1 49243 NULL
170123 +enable_so_ext2_fiemap_fndecl_49244 ext2_fiemap fndecl 4 49244 NULL
170124 +enable_so_dmpt_entry_sz_mlx4_dev_cap_49245 dmpt_entry_sz mlx4_dev_cap 0 49245 NULL
170125 +enable_so_xfs_map_buffer_fndecl_49246 xfs_map_buffer fndecl 4 49246 NULL
170126 +enable_so_mppe_compress_fndecl_49248 mppe_compress fndecl 4 49248 NULL
170127 +enable_so_nfs_file_llseek_fndecl_49249 nfs_file_llseek fndecl 2 49249 NULL
170128 +enable_so_fifo_reserve_size_vmw_kms_dirty_49255 fifo_reserve_size vmw_kms_dirty 0 49255 NULL
170129 +enable_so_rdmarc_shift_mlx4_qp_table_49259 rdmarc_shift mlx4_qp_table 0 49259 NULL
170130 +enable_so_di_size_qnx4_inode_entry_49263 di_size qnx4_inode_entry 0 49263 NULL
170131 +enable_so_rate_floppy_struct_49273 rate floppy_struct 0 49273 NULL
170132 +enable_so_dwDefaultFrameInterval_uvc_frame_49276 dwDefaultFrameInterval uvc_frame 0 49276 NULL
170133 +enable_so_name_len_audit_names_49277 name_len audit_names 0 49277 NULL
170134 +enable_so_of_irq_parse_raw_fndecl_49280 of_irq_parse_raw fndecl 0 49280 NULL
170135 +enable_so_ib_get_mad_data_offset_fndecl_49283 ib_get_mad_data_offset fndecl 0 49283 NULL
170136 +enable_so_idetape_blkdev_ioctl_fndecl_49292 idetape_blkdev_ioctl fndecl 0 49292 NULL
170137 +enable_so_header_length_ipr_ucode_image_header_49294 header_length ipr_ucode_image_header 0 49294 NULL nohasharray
170138 +enable_so_alloc_dev_fndecl_49294 alloc_dev fndecl 1 49294 &enable_so_header_length_ipr_ucode_image_header_49294
170139 +enable_so_bTransferSegment_wa_xfer_result_49303 bTransferSegment wa_xfer_result 0 49303 NULL
170140 +enable_so_SAL_nasids_size_xpc_rsvd_page_49304 SAL_nasids_size xpc_rsvd_page 0 49304 NULL
170141 +enable_so_splice_direct_to_actor_fndecl_49310 splice_direct_to_actor fndecl 0 49310 NULL
170142 +enable_so_membase_avmcard_49314 membase avmcard 0 49314 NULL
170143 +enable_so_get_chars_fndecl_49318 get_chars fndecl 3 49318 NULL
170144 +enable_so_filternum_dmxdev_49322 filternum dmxdev 0 49322 NULL nohasharray
170145 +enable_so_via_cputemp_device_add_fndecl_49322 via_cputemp_device_add fndecl 1 49322 &enable_so_filternum_dmxdev_49322
170146 +enable_so_cmtp_sock_create_fndecl_49326 cmtp_sock_create fndecl 3 49326 NULL
170147 +enable_so_fwnet_incoming_packet_fndecl_49327 fwnet_incoming_packet fndecl 3 49327 NULL
170148 +enable_so_ocfs2_release_clusters_fndecl_49328 ocfs2_release_clusters fndecl 4 49328 NULL
170149 +enable_so_length_iwl_wipan_noa_data_49332 length iwl_wipan_noa_data 0 49332 NULL
170150 +enable_so_cmnd_res_ep_vub300_mmc_host_49334 cmnd_res_ep vub300_mmc_host 0 49334 NULL
170151 +enable_so_event_rx_mem_empty_read_fndecl_49336 event_rx_mem_empty_read fndecl 3 49336 NULL
170152 +enable_so_s3fwrn5_fw_enter_update_mode_fndecl_49342 s3fwrn5_fw_enter_update_mode fndecl 3-5 49342 NULL
170153 +enable_so___iterate_backrefs_fndecl_49345 __iterate_backrefs fndecl 2 49345 NULL nohasharray
170154 +enable_so_vxlan_xmit_skb_fndecl_49345 vxlan_xmit_skb fndecl 11 49345 &enable_so___iterate_backrefs_fndecl_49345
170155 +enable_so_db_handle_buf_size_vmci_ctx_notify_recv_info_49346 db_handle_buf_size vmci_ctx_notify_recv_info 0 49346 NULL
170156 +enable_so_mute_bttv_49358 mute bttv 0 49358 NULL
170157 +enable_so_num_msix_entries_qib_chip_specific_49373 num_msix_entries qib_chip_specific 0 49373 NULL
170158 +enable_so_fsbcount_xfs_da_geometry_49380 fsbcount xfs_da_geometry 0 49380 NULL nohasharray
170159 +enable_so_x509_akid_note_serial_fndecl_49380 x509_akid_note_serial fndecl 5 49380 &enable_so_fsbcount_xfs_da_geometry_49380
170160 +enable_so_pe_data_len_ip_vs_conn_49384 pe_data_len ip_vs_conn 0 49384 NULL
170161 +enable_so_short_mark_sd_49388 short_mark sd 0 49388 NULL
170162 +enable_so_pci_iov_resource_size_fndecl_49389 pci_iov_resource_size fndecl 0 49389 NULL
170163 +enable_so_exofs_nfs_get_inode_fndecl_49391 exofs_nfs_get_inode fndecl 2 49391 NULL
170164 +enable_so_ecryptfs_read_lower_fndecl_49392 ecryptfs_read_lower fndecl 3 49392 NULL
170165 +enable_so_current_font_height_sisusb_usb_data_49394 current_font_height sisusb_usb_data 0 49394 NULL nohasharray
170166 +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
170167 +enable_so_send_cmd_iwl_trans_ops_49394 send_cmd iwl_trans_ops 0 49394 &enable_so_usb_ftdi_elan_edset_empty_fndecl_49394
170168 +enable_so_btrfs_delalloc_release_space_fndecl_49397 btrfs_delalloc_release_space fndecl 2-3 49397 NULL
170169 +enable_so_max_exp_lines_ov965x_framesize_49400 max_exp_lines ov965x_framesize 0 49400 NULL
170170 +enable_so_tty_prepare_flip_string_fndecl_49408 tty_prepare_flip_string fndecl 3 49408 NULL
170171 +enable_so_ss_next_nilfs_segment_summary_49410 ss_next nilfs_segment_summary 0 49410 NULL nohasharray
170172 +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
170173 +enable_so_lstcon_group_list_fndecl_49413 lstcon_group_list fndecl 2 49413 NULL
170174 +enable_so_base_doorbell_index_nes_device_49415 base_doorbell_index nes_device 0 49415 NULL nohasharray
170175 +enable_so_size_efx_farch_filter_table_49415 size efx_farch_filter_table 0 49415 &enable_so_base_doorbell_index_nes_device_49415
170176 +enable_so_bio_chain_clone_range_fndecl_49420 bio_chain_clone_range fndecl 3 49420 NULL
170177 +enable_so_tipc_msg_build_fndecl_49424 tipc_msg_build fndecl 4-5 49424 NULL
170178 +enable_so_ds_out_channels_hdsp_49429 ds_out_channels hdsp 0 49429 NULL
170179 +enable_so_onenand_write_oob_fndecl_49431 onenand_write_oob fndecl 2 49431 NULL
170180 +enable_so_fwnet_pd_new_fndecl_49432 fwnet_pd_new fndecl 4 49432 NULL nohasharray
170181 +enable_so_set_run_fndecl_49432 set_run fndecl 2 49432 &enable_so_fwnet_pd_new_fndecl_49432 nohasharray
170182 +enable_so_bytenr_tree_block_49432 bytenr tree_block 0 49432 &enable_so_set_run_fndecl_49432
170183 +enable_so_main_segments_f2fs_sm_info_49433 main_segments f2fs_sm_info 0 49433 NULL
170184 +enable_so_nr_ndevs_vardecl_af_netrom_c_49435 nr_ndevs vardecl_af_netrom.c 0 49435 NULL
170185 +enable_so_mthca_array_init_fndecl_49440 mthca_array_init fndecl 2 49440 NULL
170186 +enable_so_fw_device_op_read_fndecl_49445 fw_device_op_read fndecl 3 49445 NULL
170187 +enable_so_perf_output_copy_fndecl_49448 perf_output_copy fndecl 3 49448 NULL
170188 +enable_so_global_irq_acpi_madt_interrupt_override_49451 global_irq acpi_madt_interrupt_override 0 49451 NULL
170189 +enable_so_get_setup_data_total_num_fndecl_49455 get_setup_data_total_num fndecl 1 49455 NULL nohasharray
170190 +enable_so_dwc3_readl_fndecl_49455 dwc3_readl fndecl 0 49455 &enable_so_get_setup_data_total_num_fndecl_49455
170191 +enable_so_rtl2832_regmap_write_fndecl_49456 rtl2832_regmap_write fndecl 3 49456 NULL
170192 +enable_so_dma_push_rx_fndecl_49462 dma_push_rx fndecl 2 49462 NULL
170193 +enable_so_minix_inode_by_name_fndecl_49464 minix_inode_by_name fndecl 0 49464 NULL
170194 +enable_so_ch_count_srp_target_port_49465 ch_count srp_target_port 0 49465 NULL
170195 +enable_so_usb_tx_block_fndecl_49466 usb_tx_block fndecl 3 49466 NULL
170196 +enable_so_broadsheetfb_write_fndecl_49467 broadsheetfb_write fndecl 3 49467 NULL
170197 +enable_so_len_r6040_descriptor_49471 len r6040_descriptor 0 49471 NULL
170198 +enable_so_s_cblkno_ufs_sb_private_info_49472 s_cblkno ufs_sb_private_info 0 49472 NULL
170199 +enable_so_xen_hvm_config_fndecl_49473 xen_hvm_config fndecl 2 49473 NULL
170200 +enable_so_ks8995_read_fndecl_49475 ks8995_read fndecl 4 49475 NULL
170201 +enable_so_nf_nat_icmpv6_reply_translation_fndecl_49476 nf_nat_icmpv6_reply_translation fndecl 5 49476 NULL nohasharray
170202 +enable_so_ivtvfb_write_fndecl_49476 ivtvfb_write fndecl 3 49476 &enable_so_nf_nat_icmpv6_reply_translation_fndecl_49476
170203 +enable_so_make_rx_response_fndecl_49477 make_rx_response fndecl 5-3-4 49477 NULL
170204 +enable_so_rpc_max_payload_fndecl_49478 rpc_max_payload fndecl 0 49478 NULL nohasharray
170205 +enable_so_mc_mask_amdgpu_mc_49478 mc_mask amdgpu_mc 0 49478 &enable_so_rpc_max_payload_fndecl_49478
170206 +enable_so_i2c_readn_fndecl_49490 i2c_readn fndecl 4 49490 NULL
170207 +enable_so_xfs_file_llseek_fndecl_49492 xfs_file_llseek fndecl 2 49492 NULL
170208 +enable_so_din_xfer_len_sg_io_v4_49498 din_xfer_len sg_io_v4 0 49498 NULL
170209 +enable_so_smb_send_fndecl_49500 smb_send fndecl 3 49500 NULL
170210 +enable_so_usCRTC_H_Total__ATOM_MODE_TIMING_49501 usCRTC_H_Total _ATOM_MODE_TIMING 0 49501 NULL
170211 +enable_so_intel_framebuffer_create_for_mode_fndecl_49508 intel_framebuffer_create_for_mode fndecl 4 49508 NULL nohasharray
170212 +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
170213 +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
170214 +enable_so_add_tty_fndecl_49508 add_tty fndecl 1 49508 &enable_so___bnx2x_get_preset_regs_len_fndecl_49508
170215 +enable_so_tx_blk_size_rsi_91x_sdiodev_49511 tx_blk_size rsi_91x_sdiodev 0 49511 NULL
170216 +enable_so_usbvision_write_reg_irq_fndecl_49516 usbvision_write_reg_irq fndecl 4 49516 NULL
170217 +enable_so_buf_size_sge_fl_49517 buf_size sge_fl 0 49517 NULL
170218 +enable_so_Zmin_hfc_multi_49520 Zmin hfc_multi 0 49520 NULL
170219 +enable_so_log_mtts_per_seg_vardecl_mthca_main_c_49524 log_mtts_per_seg vardecl_mthca_main.c 0 49524 NULL
170220 +enable_so_num_eps_bdc_49525 num_eps bdc 0 49525 NULL nohasharray
170221 +enable_so_datablob_hmac_append_fndecl_49525 datablob_hmac_append fndecl 3 49525 &enable_so_num_eps_bdc_49525
170222 +enable_so_mtt_entry_sz_mlx4_caps_49531 mtt_entry_sz mlx4_caps 0 49531 NULL
170223 +enable_so_consume_bytes_snd_fw_async_midi_port_49542 consume_bytes snd_fw_async_midi_port 0 49542 NULL nohasharray
170224 +enable_so_num_connector_drm_atomic_state_49542 num_connector drm_atomic_state 0 49542 &enable_so_consume_bytes_snd_fw_async_midi_port_49542
170225 +enable_so_disk_offset_pnfs_block_dev_map_49546 disk_offset pnfs_block_dev_map 0 49546 NULL
170226 +enable_so_oobavail_nand_ecclayout_49548 oobavail nand_ecclayout 0 49548 NULL
170227 +enable_so_ioremap_wt_fndecl_49562 ioremap_wt fndecl 2-1 49562 NULL
170228 +enable_so_nrs_num_pols_ptlrpc_nrs_49564 nrs_num_pols ptlrpc_nrs 0 49564 NULL
170229 +enable_so_nilfs_mdt_delete_block_fndecl_49565 nilfs_mdt_delete_block fndecl 2 49565 NULL
170230 +enable_so_max_cm_mtu_ipoib_cm_dev_priv_49566 max_cm_mtu ipoib_cm_dev_priv 0 49566 NULL
170231 +enable_so_xfs_insert_file_space_fndecl_49569 xfs_insert_file_space fndecl 2-3 49569 NULL
170232 +enable_so_hpi_cmd_mmc_ext_csd_49585 hpi_cmd mmc_ext_csd 0 49585 NULL
170233 +enable_so_ncp_request2_fndecl_49589 ncp_request2 fndecl 4 49589 NULL
170234 +enable_so_ssid_length_beacon_format_49591 ssid_length beacon_format 0 49591 NULL
170235 +enable_so_xfs_rtbuf_get_fndecl_49592 xfs_rtbuf_get fndecl 3 49592 NULL
170236 +enable_so_tag_enabled_ocrdma_ae_pvid_mcqe_49596 tag_enabled ocrdma_ae_pvid_mcqe 0 49596 NULL
170237 +enable_so_width_vim2m_q_data_49600 width vim2m_q_data 0 49600 NULL
170238 +enable_so_pt_write_fndecl_49612 pt_write fndecl 3 49612 NULL
170239 +enable_so_hsync_start_drm_display_mode_49613 hsync_start drm_display_mode 0 49613 NULL nohasharray
170240 +enable_so_start_drm_mm_node_49613 start drm_mm_node 0 49613 &enable_so_hsync_start_drm_display_mode_49613
170241 +enable_so_ocfs2_sync_file_fndecl_49614 ocfs2_sync_file fndecl 2-3 49614 NULL
170242 +enable_so_spare_bytes_per_page_nand_onfi_params_49617 spare_bytes_per_page nand_onfi_params 0 49617 NULL
170243 +enable_so_lengthExtendedAttr_extendedFileEntry_49618 lengthExtendedAttr extendedFileEntry 0 49618 NULL
170244 +enable_so_write_cmd_usb_fndecl_49619 write_cmd_usb fndecl 3 49619 NULL
170245 +enable_so_ieee80211_tdls_add_setup_cfm_ies_fndecl_49620 ieee80211_tdls_add_setup_cfm_ies fndecl 6 49620 NULL
170246 +enable_so_size_ethtool_perm_addr_49621 size ethtool_perm_addr 0 49621 NULL
170247 +enable_so_reg_read_range_fndecl_49623 reg_read_range fndecl 4-0 49623 NULL nohasharray
170248 +enable_so_dwc2_max_desc_num_fndecl_49623 dwc2_max_desc_num fndecl 0 49623 &enable_so_reg_read_range_fndecl_49623
170249 +enable_so_end_async_cow_49625 end async_cow 0 49625 NULL nohasharray
170250 +enable_so_nn_nvme_id_ctrl_49625 nn nvme_id_ctrl 0 49625 &enable_so_end_async_cow_49625
170251 +enable_so_srsize_brcmf_chip_49639 srsize brcmf_chip 0 49639 NULL
170252 +enable_so_list_size_of_flash_49643 list_size of_flash 0 49643 NULL
170253 +enable_so_stride_mlx4_en_priv_49644 stride mlx4_en_priv 0 49644 NULL
170254 +enable_so_start_io_failure_record_49645 start io_failure_record 0 49645 NULL
170255 +enable_so_align_resource_constraint_49647 align resource_constraint 0 49647 NULL nohasharray
170256 +enable_so_iocbq_lookup_len_lpfc_sli_49647 iocbq_lookup_len lpfc_sli 0 49647 &enable_so_align_resource_constraint_49647
170257 +enable_so_mlx4_alloc_icm_pages_fndecl_49658 mlx4_alloc_icm_pages fndecl 2 49658 NULL
170258 +enable_so_dwMaxPayloadTransferSize_uvc_streaming_control_49668 dwMaxPayloadTransferSize uvc_streaming_control 0 49668 NULL
170259 +enable_so_bytes_ubi_leb_change_req_49669 bytes ubi_leb_change_req 0 49669 NULL
170260 +enable_so_smiapp_read_no_quirk_fndecl_49670 smiapp_read_no_quirk fndecl 2 49670 NULL
170261 +enable_so_size_unit_element_struct_49673 size unit_element_struct 0 49673 NULL
170262 +enable_so_placement_offset_eth_fast_path_rx_reg_cqe_49676 placement_offset eth_fast_path_rx_reg_cqe 0 49676 NULL
170263 +enable_so_intel_gtt_map_memory_fndecl_49677 intel_gtt_map_memory fndecl 2 49677 NULL
170264 +enable_so_port_priv_size_team_mode_49682 port_priv_size team_mode 0 49682 NULL
170265 +enable_so_clk_core_get_rate_nolock_fndecl_49685 clk_core_get_rate_nolock fndecl 0 49685 NULL
170266 +enable_so_subsampling_s5p_jpeg_fmt_49688 subsampling s5p_jpeg_fmt 0 49688 NULL nohasharray
170267 +enable_so___seq_open_private_fndecl_49688 __seq_open_private fndecl 3 49688 &enable_so_subsampling_s5p_jpeg_fmt_49688
170268 +enable_so_report_size_iowarrior_49692 report_size iowarrior 0 49692 NULL nohasharray
170269 +enable_so_set_extent_bit_fndecl_49692 set_extent_bit fndecl 3-2 49692 &enable_so_report_size_iowarrior_49692
170270 +enable_so_security_inode_listxattr_fndecl_49699 security_inode_listxattr fndecl 0 49699 NULL
170271 +enable_so_s_segshift_logfs_super_49707 s_segshift logfs_super 0 49707 NULL
170272 +enable_so_pg_write_fndecl_49709 pg_write fndecl 3 49709 NULL
170273 +enable_so_end_resource_49712 end resource 0 49712 NULL
170274 +enable_so_fuse_readpages_fndecl_49714 fuse_readpages fndecl 4 49714 NULL
170275 +enable_so_brd_init_one_fndecl_49718 brd_init_one fndecl 1 49718 NULL
170276 +enable_so_xfs_iext_remove_direct_fndecl_49723 xfs_iext_remove_direct fndecl 3 49723 NULL
170277 +enable_so_sof_len_sd_49729 sof_len sd 0 49729 NULL
170278 +enable_so_num_uars_mthca_limits_49735 num_uars mthca_limits 0 49735 NULL
170279 +enable_so_pyra_sysfs_read_fndecl_49736 pyra_sysfs_read fndecl 6 49736 NULL
170280 +enable_so_wqe_size_ib_uverbs_post_recv_49738 wqe_size ib_uverbs_post_recv 0 49738 NULL
170281 +enable_so_xfs_bmap_split_extent_fndecl_49740 xfs_bmap_split_extent fndecl 2 49740 NULL
170282 +enable_so_kernfs_fop_read_fndecl_49745 kernfs_fop_read fndecl 3 49745 NULL
170283 +enable_so_hpfs_add_dirent_fndecl_49754 hpfs_add_dirent fndecl 3 49754 NULL
170284 +enable_so_provider_in_words_ib_uverbs_ex_cmd_hdr_49757 provider_in_words ib_uverbs_ex_cmd_hdr 0 49757 NULL
170285 +enable_so_ngroups_netlink_sock_49758 ngroups netlink_sock 0 49758 NULL nohasharray
170286 +enable_so_mlx5_alloc_priv_descs_fndecl_49758 mlx5_alloc_priv_descs fndecl 3-4 49758 &enable_so_ngroups_netlink_sock_49758
170287 +enable_so_match_size_compat_ebt_entry_mwt_49763 match_size compat_ebt_entry_mwt 0 49763 NULL
170288 +enable_so_nl80211_send_roamed_fndecl_49770 nl80211_send_roamed fndecl 5-7 49770 NULL
170289 +enable_so_dwFrameInterval_uvc_streaming_control_49771 dwFrameInterval uvc_streaming_control 0 49771 NULL
170290 +enable_so_cifs_sign_smbv_fndecl_49776 cifs_sign_smbv fndecl 2 49776 NULL
170291 +enable_so_hci_sock_create_fndecl_49778 hci_sock_create fndecl 3 49778 NULL nohasharray
170292 +enable_so_rtw_add_beacon_fndecl_49778 rtw_add_beacon fndecl 5-3 49778 &enable_so_hci_sock_create_fndecl_49778
170293 +enable_so_sprom_size_ssb_bus_49781 sprom_size ssb_bus 0 49781 NULL
170294 +enable_so_page2_len_ses_device_49783 page2_len ses_device 0 49783 NULL
170295 +enable_so_scale_factor_s5p_jpeg_ctx_49787 scale_factor s5p_jpeg_ctx 0 49787 NULL
170296 +enable_so_seeks_shrinker_49793 seeks shrinker 0 49793 NULL
170297 +enable_so_nilfs_mdt_init_fndecl_49794 nilfs_mdt_init fndecl 3 49794 NULL
170298 +enable_so_outlen_mimd_49796 outlen mimd 0 49796 NULL
170299 +enable_so_substream_alloc_pages_fndecl_49800 substream_alloc_pages fndecl 3 49800 NULL
170300 +enable_so_n_mmc_ies_whc_49802 n_mmc_ies whc 0 49802 NULL
170301 +enable_so_ocfs2_zero_partial_clusters_fndecl_49803 ocfs2_zero_partial_clusters fndecl 2-3 49803 NULL
170302 +enable_so_max_fib_size_aac_dev_49804 max_fib_size aac_dev 0 49804 NULL
170303 +enable_so_logfs_seek_hole_fndecl_49805 logfs_seek_hole fndecl 0-2 49805 NULL
170304 +enable_so_num_uar_mthca_profile_49807 num_uar mthca_profile 0 49807 NULL
170305 +enable_so___free_pages_boot_core_fndecl_49810 __free_pages_boot_core fndecl 3 49810 NULL
170306 +enable_so_fat_chain_add_fndecl_49812 fat_chain_add fndecl 2 49812 NULL
170307 +enable_so_fat_bits_msdos_sb_info_49817 fat_bits msdos_sb_info 0 49817 NULL
170308 +enable_so_reserved_fat_boot_sector_49818 reserved fat_boot_sector 0 49818 NULL
170309 +enable_so_nr_pages_flash_info_49822 nr_pages flash_info 0 49822 NULL
170310 +enable_so_elemsize_nft_set_ops_49830 elemsize nft_set_ops 0 49830 NULL
170311 +enable_so_response_length_ib_uverbs_ex_query_device_resp_49831 response_length ib_uverbs_ex_query_device_resp 0 49831 NULL
170312 +enable_so_wl12xx_cmd_build_probe_req_fndecl_49835 wl12xx_cmd_build_probe_req fndecl 10-8-6 49835 NULL
170313 +enable_so_read_file_queue_fndecl_49836 read_file_queue fndecl 3 49836 NULL
170314 +enable_so_fifosize_uart_port_49843 fifosize uart_port 0 49843 NULL
170315 +enable_so_read_endpoint_s2255_dev_49848 read_endpoint s2255_dev 0 49848 NULL
170316 +enable_so_scsi_send_eh_cmnd_fndecl_49849 scsi_send_eh_cmnd fndecl 5 49849 NULL
170317 +enable_so_bytes_per_word_tegra_spi_data_49851 bytes_per_word tegra_spi_data 0 49851 NULL
170318 +enable_so_plen_c4iw_ep_49856 plen c4iw_ep 0 49856 NULL nohasharray
170319 +enable_so_vol_cdev_write_fndecl_49856 vol_cdev_write fndecl 3 49856 &enable_so_plen_c4iw_ep_49856
170320 +enable_so_kempld_gpio_pincount_fndecl_49860 kempld_gpio_pincount fndecl 0 49860 NULL
170321 +enable_so___kfifo_init_fndecl_49861 __kfifo_init fndecl 4 49861 NULL nohasharray
170322 +enable_so_r592_stop_dma_fndecl_49861 r592_stop_dma fndecl 2 49861 &enable_so___kfifo_init_fndecl_49861
170323 +enable_so_si_get_csb_size_fndecl_49864 si_get_csb_size fndecl 0 49864 NULL
170324 +enable_so_bucket_bits_cache_set_49869 bucket_bits cache_set 0 49869 NULL
170325 +enable_so_record_inode_for_nocow_fndecl_49872 record_inode_for_nocow fndecl 2 49872 NULL
170326 +enable_so_waiters_read_fndecl_49877 waiters_read fndecl 3 49877 NULL
170327 +enable_so_isdn_add_channels_fndecl_49882 isdn_add_channels fndecl 3 49882 NULL
170328 +enable_so_head_len_beacon_attr_49884 head_len beacon_attr 0 49884 NULL
170329 +enable_so_tty_audit_add_data_fndecl_49885 tty_audit_add_data fndecl 3 49885 NULL
170330 +enable_so_path_listxattr_fndecl_49894 path_listxattr fndecl 3 49894 NULL nohasharray
170331 +enable_so_walk_iomem_res_fndecl_49894 walk_iomem_res fndecl 4-3 49894 &enable_so_path_listxattr_fndecl_49894
170332 +enable_so_sg_alloc_table_fndecl_49895 sg_alloc_table fndecl 0-2 49895 NULL nohasharray
170333 +enable_so_snd_vx_create_fndecl_49895 snd_vx_create fndecl 4 49895 &enable_so_sg_alloc_table_fndecl_49895
170334 +enable_so_offset_drm_i915_gem_pwrite_49896 offset drm_i915_gem_pwrite 0 49896 NULL nohasharray
170335 +enable_so_max_sds_rings_netxen_adapter_49896 max_sds_rings netxen_adapter 0 49896 &enable_so_offset_drm_i915_gem_pwrite_49896
170336 +enable_so_max_desc_sz_mthca_dev_lim_49905 max_desc_sz mthca_dev_lim 0 49905 NULL
170337 +enable_so_block_descriptor_length_scsi_mode_data_49918 block_descriptor_length scsi_mode_data 0 49918 NULL
170338 +enable_so_SyS_select_fndecl_49930 SyS_select fndecl 1 49930 NULL
170339 +enable_so_skd_max_queue_depth_vardecl_skd_main_c_49938 skd_max_queue_depth vardecl_skd_main.c 0 49938 NULL
170340 +enable_so_cx18_prepare_buffer_fndecl_49942 cx18_prepare_buffer fndecl 6-5 49942 NULL
170341 +enable_so_inode_number_squashfs_dir_entry_49943 inode_number squashfs_dir_entry 0 49943 NULL nohasharray
170342 +enable_so_repair_io_failure_fndecl_49943 repair_io_failure fndecl 6-3 49943 &enable_so_inode_number_squashfs_dir_entry_49943
170343 +enable_so_internal_ewma_pkt_len_49944 internal ewma_pkt_len 0 49944 NULL nohasharray
170344 +enable_so_mmc_switch_fndecl_49944 mmc_switch fndecl 0 49944 &enable_so_internal_ewma_pkt_len_49944
170345 +enable_so_tomoyo_update_policy_fndecl_49945 tomoyo_update_policy fndecl 2 49945 NULL
170346 +enable_so_rcvcnt_elsa_hw_49949 rcvcnt elsa_hw 0 49949 NULL
170347 +enable_so_segsize_rem_dn_scp_49951 segsize_rem dn_scp 0 49951 NULL
170348 +enable_so_smbus_xfer_i2c_algorithm_49954 smbus_xfer i2c_algorithm 0 49954 NULL
170349 +enable_so_zlib_decompress_fndecl_49955 zlib_decompress fndecl 5 49955 NULL
170350 +enable_so_len_lmc_xilinx_control_49960 len lmc_xilinx_control 0 49960 NULL
170351 +enable_so_ceph_inode_set_size_fndecl_49962 ceph_inode_set_size fndecl 2 49962 NULL
170352 +enable_so___ethtool_get_sset_count_fndecl_49964 __ethtool_get_sset_count fndecl 0 49964 NULL
170353 +enable_so_pcm512x_find_pll_coeff_fndecl_49973 pcm512x_find_pll_coeff fndecl 2-3 49973 NULL
170354 +enable_so_afs_fs_store_data_fndecl_49975 afs_fs_store_data fndecl 5-6 49975 NULL
170355 +enable_so_mms114_write_reg_fndecl_49977 mms114_write_reg fndecl 3 49977 NULL
170356 +enable_so_dig_in_nid_hda_gen_spec_49979 dig_in_nid hda_gen_spec 0 49979 NULL
170357 +enable_so_subtract_range_fndecl_49980 subtract_range fndecl 3-4 49980 NULL nohasharray
170358 +enable_so_tty_write_room_fndecl_49980 tty_write_room fndecl 0 49980 &enable_so_subtract_range_fndecl_49980
170359 +enable_so_mbox_size_wl1271_49981 mbox_size wl1271 0 49981 NULL
170360 +enable_so___mms114_read_reg_fndecl_49983 __mms114_read_reg fndecl 3-0 49983 NULL
170361 +enable_so_eqc_entry_sz_mthca_dev_lim_49984 eqc_entry_sz mthca_dev_lim 0 49984 NULL
170362 +enable_so_pgbase_nfs3_readlinkargs_49993 pgbase nfs3_readlinkargs 0 49993 NULL
170363 +enable_so_buffer_target_count_pvr2_stream_49996 buffer_target_count pvr2_stream 0 49996 NULL
170364 +enable_so_leafblk_xfs_da_geometry_49997 leafblk xfs_da_geometry 0 49997 NULL
170365 +enable_so_ff_effects_max_uinput_device_49998 ff_effects_max uinput_device 0 49998 NULL
170366 +enable_so_make_checksum_fndecl_49999 make_checksum fndecl 3-5 49999 NULL
170367 +enable_so_block_isofs_iget5_callback_data_50000 block isofs_iget5_callback_data 0 50000 NULL
170368 +enable_so_vbi_v_start_0_saa7134_tvnorm_50002 vbi_v_start_0 saa7134_tvnorm 0 50002 NULL
170369 +enable_so_tcm_qla2xxx_handle_cmd_fndecl_50016 tcm_qla2xxx_handle_cmd fndecl 4 50016 NULL nohasharray
170370 +enable_so_nci_core_cmd_fndecl_50016 nci_core_cmd fndecl 3 50016 &enable_so_tcm_qla2xxx_handle_cmd_fndecl_50016
170371 +enable_so_bi_size_bvec_iter_50026 bi_size bvec_iter 0 50026 NULL nohasharray
170372 +enable_so_bl_alloc_init_bio_fndecl_50026 bl_alloc_init_bio fndecl 3-1 50026 &enable_so_bi_size_bvec_iter_50026
170373 +enable_so_snd_oss_kernel_minor_fndecl_50028 snd_oss_kernel_minor fndecl 0 50028 NULL
170374 +enable_so_length_fotg210_qtd_50029 length fotg210_qtd 0 50029 NULL
170375 +enable_so_BlockMultiplierBits_INFTLMediaHeader_50032 BlockMultiplierBits INFTLMediaHeader 0 50032 NULL
170376 +enable_so_depth_zoran_format_50033 depth zoran_format 0 50033 NULL
170377 +enable_so_f_dac_hackrf_dev_50035 f_dac hackrf_dev 0 50035 NULL nohasharray
170378 +enable_so_c_plan_ahead_p_rs_param_95_50035 c_plan_ahead p_rs_param_95 0 50035 &enable_so_f_dac_hackrf_dev_50035
170379 +enable_so_qed_rd_fndecl_50037 qed_rd fndecl 0 50037 NULL
170380 +enable_so_ima_write_policy_fndecl_50039 ima_write_policy fndecl 3 50039 NULL
170381 +enable_so_esp_alloc_tmp_fndecl_50045 esp_alloc_tmp fndecl 2-3 50045 NULL
170382 +enable_so_pwc_vidioc_fill_fmt_fndecl_50048 pwc_vidioc_fill_fmt fndecl 2-3 50048 NULL
170383 +enable_so_len_nft_userdata_50052 len nft_userdata 0 50052 NULL
170384 +enable_so_skge_rx_get_fndecl_50053 skge_rx_get fndecl 3 50053 NULL
170385 +enable_so_num_crtc_amdgpu_mode_info_50055 num_crtc amdgpu_mode_info 0 50055 NULL
170386 +enable_so_pf_end_request_fndecl_50064 pf_end_request fndecl 1 50064 NULL
170387 +enable_so_lba_to_map_index_fndecl_50071 lba_to_map_index fndecl 0-1 50071 NULL
170388 +enable_so_rtsx_pci_read_ppbuf_fndecl_50078 rtsx_pci_read_ppbuf fndecl 0 50078 NULL
170389 +enable_so_memblock_reserve_region_fndecl_50083 memblock_reserve_region fndecl 1-2 50083 NULL
170390 +enable_so_sem_nsems_sem_array_50085 sem_nsems sem_array 0 50085 NULL nohasharray
170391 +enable_so_sch56xx_find_fndecl_50085 sch56xx_find fndecl 0 50085 &enable_so_sem_nsems_sem_array_50085
170392 +enable_so_bfad_iocmd_ioc_get_stats_fndecl_50095 bfad_iocmd_ioc_get_stats fndecl 0 50095 NULL
170393 +enable_so_get_priv_descr_and_size_fndecl_50103 get_priv_descr_and_size fndecl 0 50103 NULL
170394 +enable_so_total_len_splice_desc_50112 total_len splice_desc 0 50112 NULL
170395 +enable_so_fst_rx_dma_complete_fndecl_50118 fst_rx_dma_complete fndecl 3 50118 NULL
170396 +enable_so_pipeline_rx_complete_stat_fifo_int_read_fndecl_50124 pipeline_rx_complete_stat_fifo_int_read fndecl 3 50124 NULL
170397 +enable_so_usb_set_interface_fndecl_50126 usb_set_interface fndecl 0 50126 NULL
170398 +enable_so___cfg80211_roamed_fndecl_50127 __cfg80211_roamed fndecl 4-6 50127 NULL
170399 +enable_so_max_burst_whc_qset_50130 max_burst whc_qset 0 50130 NULL
170400 +enable_so_i_files_ceph_inode_info_50132 i_files ceph_inode_info 0 50132 NULL
170401 +enable_so_tool_peer_db_read_fndecl_50135 tool_peer_db_read fndecl 3 50135 NULL
170402 +enable_so_num_entries_ip6t_replace_50138 num_entries ip6t_replace 0 50138 NULL
170403 +enable_so_pid_nr_ns_fndecl_50141 pid_nr_ns fndecl 0 50141 NULL
170404 +enable_so_usb_tx_block_fndecl_50144 usb_tx_block fndecl 3 50144 NULL
170405 +enable_so_vendpoint_pwc_device_50145 vendpoint pwc_device 0 50145 NULL
170406 +enable_so_htotal_drm_display_mode_50148 htotal drm_display_mode 0 50148 NULL
170407 +enable_so_nfc_hci_set_param_fndecl_50154 nfc_hci_set_param fndecl 5 50154 NULL nohasharray
170408 +enable_so_size_ubifs_data_node_50154 size ubifs_data_node 0 50154 &enable_so_nfc_hci_set_param_fndecl_50154
170409 +enable_so_idr_get_empty_slot_fndecl_50161 idr_get_empty_slot fndecl 0 50161 NULL
170410 +enable_so_ext4_mark_inode_dirty_fndecl_50162 ext4_mark_inode_dirty fndecl 0 50162 NULL
170411 +enable_so_length_ib_ip_iocb_rsp_50163 length ib_ip_iocb_rsp 0 50163 NULL nohasharray
170412 +enable_so_fops_read_fndecl_50163 fops_read fndecl 3 50163 &enable_so_length_ib_ip_iocb_rsp_50163
170413 +enable_so_videobuf_dma_init_user_locked_fndecl_50165 videobuf_dma_init_user_locked fndecl 4-3 50165 NULL
170414 +enable_so_next_burst_len_iscsi_cmd_50168 next_burst_len iscsi_cmd 0 50168 NULL
170415 +enable_so_pci_enable_resources_fndecl_50171 pci_enable_resources fndecl 0 50171 NULL nohasharray
170416 +enable_so_rd_buf_size_xilly_channel_50171 rd_buf_size xilly_channel 0 50171 &enable_so_pci_enable_resources_fndecl_50171
170417 +enable_so_xfs_qm_scall_getquota_fndecl_50173 xfs_qm_scall_getquota fndecl 2 50173 NULL
170418 +enable_so_mclk_rate_wm9081_priv_50176 mclk_rate wm9081_priv 0 50176 NULL
170419 +enable_so_hdr_len_atm_flow_data_50178 hdr_len atm_flow_data 0 50178 NULL
170420 +enable_so_nested_cr3_nested_state_50183 nested_cr3 nested_state 0 50183 NULL
170421 +enable_so_gfs2_create_inode_fndecl_50184 gfs2_create_inode fndecl 7 50184 NULL
170422 +enable_so_echo_client_kbrw_fndecl_50193 echo_client_kbrw fndecl 6 50193 NULL
170423 +enable_so___isofs_iget_fndecl_50194 __isofs_iget fndecl 2-3 50194 NULL
170424 +enable_so_gbufsize_vardecl_meye_c_50205 gbufsize vardecl_meye.c 0 50205 NULL
170425 +enable_so_s_zmap_blocks_minix_sb_info_50206 s_zmap_blocks minix_sb_info 0 50206 NULL
170426 +enable_so_ivtv_v4l2_write_fndecl_50217 ivtv_v4l2_write fndecl 3 50217 NULL
170427 +enable_so_sched_priority_sched_attr_50220 sched_priority sched_attr 0 50220 NULL
170428 +enable_so_length_dfw_binrec_50222 length dfw_binrec 0 50222 NULL
170429 +enable_so_pin_pci_dev_50231 pin pci_dev 0 50231 NULL
170430 +enable_so_qla4_82xx_pci_mem_read_direct_fndecl_50235 qla4_82xx_pci_mem_read_direct fndecl 2 50235 NULL
170431 +enable_so_efi_memmap_size_efi_info_50236 efi_memmap_size efi_info 0 50236 NULL
170432 +enable_so_vd_ino_nilfs_vdesc_50241 vd_ino nilfs_vdesc 0 50241 NULL nohasharray
170433 +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
170434 +enable_so_r128_compat_ioctl_fndecl_50241 r128_compat_ioctl fndecl 2 50241 &enable_so_pwr_cont_miss_bcns_spread_read_fndecl_50241
170435 +enable_so_chip_base_addr_fsl_qspi_50246 chip_base_addr fsl_qspi 0 50246 NULL nohasharray
170436 +enable_so_fnic_trace_max_pages_vardecl_50246 fnic_trace_max_pages vardecl 0 50246 &enable_so_chip_base_addr_fsl_qspi_50246
170437 +enable_so_h_tot_disp_crtc_50258 h_tot_disp crtc 0 50258 NULL
170438 +enable_so_posix_acl_to_xattr_fndecl_50262 posix_acl_to_xattr fndecl 0 50262 NULL nohasharray
170439 +enable_so_len_mrp_attr_50262 len mrp_attr 0 50262 &enable_so_posix_acl_to_xattr_fndecl_50262
170440 +enable_so_buf_struct_size_vb2_queue_50266 buf_struct_size vb2_queue 0 50266 NULL
170441 +enable_so_end_range_50270 end range 0 50270 NULL nohasharray
170442 +enable_so_bLength_usb_ss_ep_comp_descriptor_50270 bLength usb_ss_ep_comp_descriptor 0 50270 &enable_so_end_range_50270
170443 +enable_so_vframes_pwc_device_50272 vframes pwc_device 0 50272 NULL
170444 +enable_so_curr_resync_completed_mddev_50273 curr_resync_completed mddev 0 50273 NULL nohasharray
170445 +enable_so_rx_filter_protection_filter_read_fndecl_50273 rx_filter_protection_filter_read fndecl 3 50273 &enable_so_curr_resync_completed_mddev_50273
170446 +enable_so_count_defcmd_set_50274 count defcmd_set 0 50274 NULL
170447 +enable_so_phys_amd76xrom_window_50277 phys amd76xrom_window 0 50277 NULL
170448 +enable_so___rocker_port_mem_alloc_fndecl_50278 __rocker_port_mem_alloc fndecl 4 50278 NULL
170449 +enable_so_ath6kl_wmi_set_appie_cmd_fndecl_50289 ath6kl_wmi_set_appie_cmd fndecl 5-2 50289 NULL
170450 +enable_so_mwifiex_append_rsn_ie_wpa_wpa2_fndecl_50296 mwifiex_append_rsn_ie_wpa_wpa2 fndecl 0 50296 NULL nohasharray
170451 +enable_so_wptr_old_amdgpu_ring_50296 wptr_old amdgpu_ring 0 50296 &enable_so_mwifiex_append_rsn_ie_wpa_wpa2_fndecl_50296
170452 +enable_so_insert_reserved_file_extent_fndecl_50316 insert_reserved_file_extent fndecl 6-3-7 50316 NULL
170453 +enable_so___cfg80211_connect_result_fndecl_50317 __cfg80211_connect_result fndecl 4-6 50317 NULL nohasharray
170454 +enable_so_fs_cgfsize_efs_super_50317 fs_cgfsize efs_super 0 50317 &enable_so___cfg80211_connect_result_fndecl_50317
170455 +enable_so_scif_rma_copy_fndecl_50320 scif_rma_copy fndecl 2-5-4-3 50320 NULL
170456 +enable_so_rbytes_ceph_mds_reply_inode_50321 rbytes ceph_mds_reply_inode 0 50321 NULL
170457 +enable_so_VST_kyrofb_info_50324 VST kyrofb_info 0 50324 NULL
170458 +enable_so_level_guest_walker64_50325 level guest_walker64 0 50325 NULL
170459 +enable_so_ucNumEntries__ATOM_PPLIB_CAC_Leakage_Table_50326 ucNumEntries _ATOM_PPLIB_CAC_Leakage_Table 0 50326 NULL
170460 +enable_so_pos_r5l_recovery_ctx_50328 pos r5l_recovery_ctx 0 50328 NULL
170461 +enable_so___vmalloc_node_fndecl_50335 __vmalloc_node fndecl 1-2 50335 NULL nohasharray
170462 +enable_so_size_nand_ecc_ctrl_50335 size nand_ecc_ctrl 0 50335 &enable_so___vmalloc_node_fndecl_50335
170463 +enable_so_aim_read_fndecl_50336 aim_read fndecl 3 50336 NULL
170464 +enable_so___copy_from_user_nocache_fndecl_50340 __copy_from_user_nocache fndecl 0-3 50340 NULL
170465 +enable_so_ide_complete_rq_fndecl_50345 ide_complete_rq fndecl 3-2 50345 NULL
170466 +enable_so_vb2_core_dqbuf_fndecl_50346 vb2_core_dqbuf fndecl 0 50346 NULL
170467 +enable_so_nextindex_xtheader_50354 nextindex xtheader 0 50354 NULL
170468 +enable_so_next_minor_vardecl_md_c_50357 next_minor vardecl_md.c 0 50357 NULL
170469 +enable_so_wimax_msg_alloc_fndecl_50364 wimax_msg_alloc fndecl 4 50364 NULL
170470 +enable_so_fnic_trace_debugfs_read_fndecl_50375 fnic_trace_debugfs_read fndecl 3 50375 NULL
170471 +enable_so___send_to_port_fndecl_50377 __send_to_port fndecl 3 50377 NULL
170472 +enable_so_table_size_amdgpu_gart_50380 table_size amdgpu_gart 0 50380 NULL
170473 +enable_so_num_tc_qede_dev_50384 num_tc qede_dev 0 50384 NULL
170474 +enable_so_NumberOfReferrals_smb_com_transaction_get_dfs_refer_rsp_50387 NumberOfReferrals smb_com_transaction_get_dfs_refer_rsp 0 50387 NULL
170475 +enable_so_len_udphdr_50395 len udphdr 0 50395 NULL
170476 +enable_so_max_write_len_cftype_50399 max_write_len cftype 0 50399 NULL
170477 +enable_so_init_urbs_fndecl_50408 init_urbs fndecl 2-4-5 50408 NULL
170478 +enable_so_sgx_offset_psb_ops_50417 sgx_offset psb_ops 0 50417 NULL
170479 +enable_so_size_uvc_clock_50418 size uvc_clock 0 50418 NULL
170480 +enable_so_length_acpi_srat_mem_affinity_50419 length acpi_srat_mem_affinity 0 50419 NULL
170481 +enable_so___initramfs_size_vardecl_50420 __initramfs_size vardecl 0 50420 NULL nohasharray
170482 +enable_so_jffs2_scan_xattr_node_fndecl_50420 jffs2_scan_xattr_node fndecl 4 50420 &enable_so___initramfs_size_vardecl_50420
170483 +enable_so_sd_max_rg_data_gfs2_sbd_50430 sd_max_rg_data gfs2_sbd 0 50430 NULL
170484 +enable_so___vcc_connect_fndecl_50431 __vcc_connect fndecl 4-3 50431 NULL
170485 +enable_so_nilfs_gccache_submit_read_data_fndecl_50434 nilfs_gccache_submit_read_data fndecl 3-4 50434 NULL
170486 +enable_so_pkt_size_asender_cmd_50437 pkt_size asender_cmd 0 50437 NULL
170487 +enable_so_sbp_count_se_tpg_luns_fndecl_50444 sbp_count_se_tpg_luns fndecl 0 50444 NULL
170488 +enable_so_nfsd4_encode_fattr_to_buf_fndecl_50449 nfsd4_encode_fattr_to_buf fndecl 2 50449 NULL nohasharray
170489 +enable_so_nr_phys_segments_request_50449 nr_phys_segments request 0 50449 &enable_so_nfsd4_encode_fattr_to_buf_fndecl_50449
170490 +enable_so_nfsd_drc_mem_used_vardecl_50456 nfsd_drc_mem_used vardecl 0 50456 NULL
170491 +enable_so_extra_tx_headroom_ieee802154_hw_50457 extra_tx_headroom ieee802154_hw 0 50457 NULL
170492 +enable_so_iscsi_iolen_cxgb4_lld_info_50467 iscsi_iolen cxgb4_lld_info 0 50467 NULL
170493 +enable_so_vmw_cmdbuf_reserve_cur_fndecl_50468 vmw_cmdbuf_reserve_cur fndecl 2 50468 NULL
170494 +enable_so___ath6kl_wmi_send_mgmt_cmd_fndecl_50472 __ath6kl_wmi_send_mgmt_cmd fndecl 7-2 50472 NULL
170495 +enable_so_buf_size_dmatest_params_50477 buf_size dmatest_params 0 50477 NULL
170496 +enable_so_len_fuse_ioctl_iovec_50481 len fuse_ioctl_iovec 0 50481 NULL
170497 +enable_so_consume_va_vmci_qp_page_file_info_50487 consume_va vmci_qp_page_file_info 0 50487 NULL
170498 +enable_so_br_multicast_has_querier_anywhere_fndecl_50488 br_multicast_has_querier_anywhere fndecl 2 50488 NULL
170499 +enable_so_snd_sbmixer_add_ctl_fndecl_50491 snd_sbmixer_add_ctl fndecl 5 50491 NULL
170500 +enable_so_max_pages_nilfs_write_info_50494 max_pages nilfs_write_info 0 50494 NULL
170501 +enable_so_udf_new_block_fndecl_50500 udf_new_block fndecl 0 50500 NULL
170502 +enable_so_bio_clone_range_fndecl_50502 bio_clone_range fndecl 2-3 50502 NULL
170503 +enable_so_mwifiex_read_data_sync_fndecl_50504 mwifiex_read_data_sync fndecl 3 50504 NULL
170504 +enable_so_readahead_tree_block_fndecl_50505 readahead_tree_block fndecl 2 50505 NULL
170505 +enable_so_listxattr_inode_operations_50507 listxattr inode_operations 0 50507 NULL
170506 +enable_so_i2c_hid_output_report_fndecl_50508 i2c_hid_output_report fndecl 3 50508 NULL
170507 +enable_so_t4vf_pktgl_to_skb_fndecl_50510 t4vf_pktgl_to_skb fndecl 3 50510 NULL
170508 +enable_so_adfs_fplus_read_fndecl_50514 adfs_fplus_read fndecl 2 50514 NULL nohasharray
170509 +enable_so_usb_maxpacket_fndecl_50514 usb_maxpacket fndecl 0 50514 &enable_so_adfs_fplus_read_fndecl_50514
170510 +enable_so_len_nfs3_mkdirargs_50515 len nfs3_mkdirargs 0 50515 NULL
170511 +enable_so_nframes_cdrom_read_audio_50517 nframes cdrom_read_audio 0 50517 NULL
170512 +enable_so_OSDSetBlock_fndecl_50521 OSDSetBlock fndecl 2-4 50521 NULL
170513 +enable_so_iwl_mvm_pass_packet_to_mac80211_fndecl_50528 iwl_mvm_pass_packet_to_mac80211 fndecl 7-5 50528 NULL
170514 +enable_so_ohci_urb_dequeue_fndecl_50529 ohci_urb_dequeue fndecl 3 50529 NULL
170515 +enable_so_rtmax_nfs_fsinfo_50537 rtmax nfs_fsinfo 0 50537 NULL nohasharray
170516 +enable_so_dccpd_seq_dccp_skb_cb_50537 dccpd_seq dccp_skb_cb 0 50537 &enable_so_rtmax_nfs_fsinfo_50537
170517 +enable_so_get_nodes_fndecl_50551 get_nodes fndecl 3 50551 NULL
170518 +enable_so_blk_flush_complete_seq_fndecl_50552 blk_flush_complete_seq fndecl 4 50552 NULL
170519 +enable_so_spi_rd8_fndecl_50555 spi_rd8 fndecl 0 50555 NULL
170520 +enable_so_frag_threshold_wiphy_50556 frag_threshold wiphy 0 50556 NULL
170521 +enable_so___blkdev_issue_zeroout_fndecl_50559 __blkdev_issue_zeroout fndecl 3-2-0 50559 NULL
170522 +enable_so_gen_pool_create_fndecl_50571 gen_pool_create fndecl 1 50571 NULL
170523 +enable_so_img_y_zoran_jpg_settings_50573 img_y zoran_jpg_settings 0 50573 NULL nohasharray
170524 +enable_so_W6692_empty_fifo_fndecl_50573 W6692_empty_fifo fndecl 2 50573 &enable_so_img_y_zoran_jpg_settings_50573
170525 +enable_so_hdr_len_ib_mad_send_buf_50577 hdr_len ib_mad_send_buf 0 50577 NULL nohasharray
170526 +enable_so__osd_req_alist_size_fndecl_50577 _osd_req_alist_size fndecl 0 50577 &enable_so_hdr_len_ib_mad_send_buf_50577
170527 +enable_so_xfs_attr_calc_size_fndecl_50579 xfs_attr_calc_size fndecl 0 50579 NULL
170528 +enable_so_length_fuse_page_desc_50581 length fuse_page_desc 0 50581 NULL
170529 +enable_so_do_write_kmem_fndecl_50584 do_write_kmem fndecl 1-3-0 50584 NULL
170530 +enable_so_do_huge_pmd_wp_page_fallback_fndecl_50585 do_huge_pmd_wp_page_fallback fndecl 7 50585 NULL
170531 +enable_so_off2_xad_50592 off2 xad 0 50592 NULL
170532 +enable_so_pwrite_dvb_ringbuffer_50594 pwrite dvb_ringbuffer 0 50594 NULL
170533 +enable_so_intel_gtt_total_entries_fndecl_50599 intel_gtt_total_entries fndecl 0 50599 NULL
170534 +enable_so___i915_gem_userptr_set_pages_fndecl_50600 __i915_gem_userptr_set_pages fndecl 3 50600 NULL
170535 +enable_so_count_slgt_desc_50607 count slgt_desc 0 50607 NULL
170536 +enable_so_ipoib_max_conn_qp_vardecl_50615 ipoib_max_conn_qp vardecl 0 50615 NULL
170537 +enable_so_len_fuse_notify_inval_inode_out_50619 len fuse_notify_inval_inode_out 0 50619 NULL nohasharray
170538 +enable_so_dle_count__isdn_audio_data_50619 dle_count _isdn_audio_data 0 50619 &enable_so_len_fuse_notify_inval_inode_out_50619
170539 +enable_so_cb_mirror_cnt_exofs_dt_data_map_50623 cb_mirror_cnt exofs_dt_data_map 0 50623 NULL nohasharray
170540 +enable_so_zr364xx_fillbuff_fndecl_50623 zr364xx_fillbuff fndecl 3 50623 &enable_so_cb_mirror_cnt_exofs_dt_data_map_50623
170541 +enable_so___kfifo_to_user_r_fndecl_50624 __kfifo_to_user_r fndecl 5-3 50624 NULL
170542 +enable_so_phys_port_cnt_ib_device_50625 phys_port_cnt ib_device 0 50625 NULL
170543 +enable_so_pglen_nfs3_readlinkargs_50630 pglen nfs3_readlinkargs 0 50630 NULL nohasharray
170544 +enable_so_data_len_pmcraid_hcam_hdr_50630 data_len pmcraid_hcam_hdr 0 50630 &enable_so_pglen_nfs3_readlinkargs_50630
170545 +enable_so_l2tp_ip6_recvmsg_fndecl_50633 l2tp_ip6_recvmsg fndecl 3 50633 NULL
170546 +enable_so_ircomm_tty_write_fndecl_50642 ircomm_tty_write fndecl 3 50642 NULL nohasharray
170547 +enable_so_tomoyo_truncate_fndecl_50642 tomoyo_truncate fndecl 0 50642 &enable_so_ircomm_tty_write_fndecl_50642
170548 +enable_so_num_regs_soc_bytes_50648 num_regs soc_bytes 0 50648 NULL
170549 +enable_so_usb_hcd_giveback_urb_fndecl_50649 usb_hcd_giveback_urb fndecl 3 50649 NULL
170550 +enable_so_pvid_net_bridge_vlan_group_50651 pvid net_bridge_vlan_group 0 50651 NULL
170551 +enable_so_xor_sources_dmatest_params_50653 xor_sources dmatest_params 0 50653 NULL
170552 +enable_so_recalc_rate_clk_ops_50655 recalc_rate clk_ops 0 50655 NULL
170553 +enable_so_io_size_tulip_chip_table_50656 io_size tulip_chip_table 0 50656 NULL
170554 +enable_so_proc_coredump_filter_read_fndecl_50658 proc_coredump_filter_read fndecl 3 50658 NULL
170555 +enable_so_da9150_i2c_write_device_fndecl_50670 da9150_i2c_write_device fndecl 3 50670 NULL
170556 +enable_so_i915_gem_alloc_context_obj_fndecl_50671 i915_gem_alloc_context_obj fndecl 2 50671 NULL
170557 +enable_so_nclips_bttv_overlay_50673 nclips bttv_overlay 0 50673 NULL
170558 +enable_so_dig_in_ca0132_spec_50677 dig_in ca0132_spec 0 50677 NULL
170559 +enable_so___kernfs_create_file_fndecl_50679 __kernfs_create_file fndecl 4 50679 NULL nohasharray
170560 +enable_so_pci_iomap_wc_fndecl_50679 pci_iomap_wc fndecl 3 50679 &enable_so___kernfs_create_file_fndecl_50679 nohasharray
170561 +enable_so_size_snd_util_memblk_50679 size snd_util_memblk 0 50679 &enable_so_pci_iomap_wc_fndecl_50679
170562 +enable_so_count_dm_io_region_50683 count dm_io_region 0 50683 NULL
170563 +enable_so_sr_offset_nfs42_seek_res_50684 sr_offset nfs42_seek_res 0 50684 NULL nohasharray
170564 +enable_so_alloc_ring_fndecl_50684 alloc_ring fndecl 4-2 50684 &enable_so_sr_offset_nfs42_seek_res_50684
170565 +enable_so_generic_permission_fndecl_50685 generic_permission fndecl 0 50685 NULL
170566 +enable_so_rxkad_secure_packet_encrypt_fndecl_50687 rxkad_secure_packet_encrypt fndecl 3 50687 NULL nohasharray
170567 +enable_so_hv_mem_hot_add_fndecl_50687 hv_mem_hot_add fndecl 1 50687 &enable_so_rxkad_secure_packet_encrypt_fndecl_50687
170568 +enable_so_dm_bm_read_try_lock_fndecl_50688 dm_bm_read_try_lock fndecl 2-0 50688 NULL
170569 +enable_so___find_rev_next_bit_fndecl_50712 __find_rev_next_bit fndecl 0-3-2 50712 NULL
170570 +enable_so_back_xfs_da3_icnode_hdr_50715 back xfs_da3_icnode_hdr 0 50715 NULL
170571 +enable_so_sc18is602_wait_ready_fndecl_50717 sc18is602_wait_ready fndecl 0 50717 NULL
170572 +enable_so_get_device_info_fndecl_50718 get_device_info fndecl 0 50718 NULL
170573 +enable_so_ibnl_put_msg_fndecl_50721 ibnl_put_msg fndecl 4 50721 NULL nohasharray
170574 +enable_so_num_lbufq_entries_ql3_adapter_50721 num_lbufq_entries ql3_adapter 0 50721 &enable_so_ibnl_put_msg_fndecl_50721
170575 +enable_so_mpdu_header_off_wcn36xx_pdu_50723 mpdu_header_off wcn36xx_pdu 0 50723 NULL
170576 +enable_so_print_hex_dump_bytes_fndecl_50726 print_hex_dump_bytes fndecl 4 50726 NULL
170577 +enable_so_i915_gem_alloc_object_fndecl_50728 i915_gem_alloc_object fndecl 2 50728 NULL
170578 +enable_so_max_table_count_acpi_table_list_50733 max_table_count acpi_table_list 0 50733 NULL
170579 +enable_so_agg_wsize_vardecl_50735 agg_wsize vardecl 0 50735 NULL nohasharray
170580 +enable_so_max_mr_size_ib_device_attr_50735 max_mr_size ib_device_attr 0 50735 &enable_so_agg_wsize_vardecl_50735
170581 +enable_so_data_size_usbtouch_usb_50738 data_size usbtouch_usb 0 50738 NULL
170582 +enable_so_MaximumDataTransferSizeInBlocks_DAC960_V2_ControllerInfo_50742 MaximumDataTransferSizeInBlocks DAC960_V2_ControllerInfo 0 50742 NULL nohasharray
170583 +enable_so_rx_count_st_data_s_50742 rx_count st_data_s 0 50742 &enable_so_MaximumDataTransferSizeInBlocks_DAC960_V2_ControllerInfo_50742
170584 +enable_so_opt_flen_ipv6_txoptions_50747 opt_flen ipv6_txoptions 0 50747 NULL
170585 +enable_so_nicvf_change_mtu_fndecl_50748 nicvf_change_mtu fndecl 2 50748 NULL nohasharray
170586 +enable_so_sd_tuning_rx_fndecl_50748 sd_tuning_rx fndecl 2 50748 &enable_so_nicvf_change_mtu_fndecl_50748
170587 +enable_so_dm_create_fndecl_50754 dm_create fndecl 1 50754 NULL
170588 +enable_so_i_dataoffset_romfs_inode_info_50755 i_dataoffset romfs_inode_info 0 50755 NULL
170589 +enable_so_root_len_ubifs_mst_node_50757 root_len ubifs_mst_node 0 50757 NULL
170590 +enable_so_cluster_bits_msdos_sb_info_50763 cluster_bits msdos_sb_info 0 50763 NULL
170591 +enable_so_usb_hcd_map_urb_for_dma_fndecl_50765 usb_hcd_map_urb_for_dma fndecl 0 50765 NULL
170592 +enable_so_cifs_readpages_read_into_pages_fndecl_50770 cifs_readpages_read_into_pages fndecl 3 50770 NULL
170593 +enable_so_hpfs_get_sector_fndecl_50776 hpfs_get_sector fndecl 2 50776 NULL
170594 +enable_so_cmd_size_blk_mq_tag_set_50782 cmd_size blk_mq_tag_set 0 50782 NULL
170595 +enable_so_readdir_nfs_rpc_ops_50783 readdir nfs_rpc_ops 0 50783 NULL
170596 +enable_so_ip_vs_sync_buff_create_fndecl_50787 ip_vs_sync_buff_create fndecl 2 50787 NULL
170597 +enable_so_remove_pmkid_fndecl_50793 remove_pmkid fndecl 4 50793 NULL
170598 +enable_so_ib_uverbs_get_context_fndecl_50799 ib_uverbs_get_context fndecl 4 50799 NULL
170599 +enable_so_len_rfd_50801 len rfd 0 50801 NULL
170600 +enable_so_persistent_ram_buffer_map_fndecl_50803 persistent_ram_buffer_map fndecl 2-1 50803 NULL
170601 +enable_so_malloc_size__BIG_IOCTL_Command_struct_50805 malloc_size _BIG_IOCTL_Command_struct 0 50805 NULL
170602 +enable_so_cmdQueueSize_sis_video_info_50807 cmdQueueSize sis_video_info 0 50807 NULL nohasharray
170603 +enable_so_argslen_svc_deferred_req_50807 argslen svc_deferred_req 0 50807 &enable_so_cmdQueueSize_sis_video_info_50807
170604 +enable_so_port_num_cm_port_50808 port_num cm_port 0 50808 NULL
170605 +enable_so_hpfs_map_dnode_fndecl_50813 hpfs_map_dnode fndecl 2 50813 NULL nohasharray
170606 +enable_so_ocfs2_pages_per_cluster_fndecl_50813 ocfs2_pages_per_cluster fndecl 0 50813 &enable_so_hpfs_map_dnode_fndecl_50813
170607 +enable_so_clkrc_ov7670_info_50815 clkrc ov7670_info 0 50815 NULL
170608 +enable_so_sys_migrate_pages_fndecl_50818 sys_migrate_pages fndecl 2 50818 NULL
170609 +enable_so_cdce925_regmap_i2c_read_fndecl_50819 cdce925_regmap_i2c_read fndecl 5 50819 NULL
170610 +enable_so_rq_nvec_smb_rqst_50820 rq_nvec smb_rqst 0 50820 NULL
170611 +enable_so_get_priv_size_fndecl_50823 get_priv_size fndecl 0-1 50823 NULL
170612 +enable_so_xdr_read_pages_fndecl_50824 xdr_read_pages fndecl 2 50824 NULL nohasharray
170613 +enable_so_bcast_ring_order_vardecl_main_c_50824 bcast_ring_order vardecl_main.c 0 50824 &enable_so_xdr_read_pages_fndecl_50824
170614 +enable_so_t_tinc_data_rem_rds_tcp_connection_50828 t_tinc_data_rem rds_tcp_connection 0 50828 NULL
170615 +enable_so_bssid_info_count_ndis_80211_pmkid_50829 bssid_info_count ndis_80211_pmkid 0 50829 NULL
170616 +enable_so_filelayout_get_dserver_offset_fndecl_50833 filelayout_get_dserver_offset fndecl 0-2 50833 NULL
170617 +enable_so_security_inode_listsecurity_fndecl_50839 security_inode_listsecurity fndecl 0 50839 NULL
170618 +enable_so_m_rsumlevels_xfs_mount_50843 m_rsumlevels xfs_mount 0 50843 NULL
170619 +enable_so_exynos3250_jpeg_compressed_size_fndecl_50845 exynos3250_jpeg_compressed_size fndecl 0 50845 NULL
170620 +enable_so_decrypted_key_size_ecryptfs_session_key_50847 decrypted_key_size ecryptfs_session_key 0 50847 NULL
170621 +enable_so_pwr_ap_sleep_user_conf_read_fndecl_50848 pwr_ap_sleep_user_conf_read fndecl 3 50848 NULL
170622 +enable_so__brk_end_vardecl_50849 _brk_end vardecl 0 50849 NULL
170623 +enable_so_journal_read_transaction_fndecl_50853 journal_read_transaction fndecl 2 50853 NULL
170624 +enable_so_x2_drm_clip_rect_50854 x2 drm_clip_rect 0 50854 NULL
170625 +enable_so_force_bredr_smp_read_fndecl_50855 force_bredr_smp_read fndecl 3 50855 NULL
170626 +enable_so_dat_offset_brcmf_sdio_hdrinfo_50859 dat_offset brcmf_sdio_hdrinfo 0 50859 NULL
170627 +enable_so_alloc_disk_fndecl_50861 alloc_disk fndecl 1 50861 NULL
170628 +enable_so_rrpc_l2p_update_fndecl_50868 rrpc_l2p_update fndecl 1 50868 NULL
170629 +enable_so_alg_key_len_xfrm_algo_auth_50871 alg_key_len xfrm_algo_auth 0 50871 NULL
170630 +enable_so_mtu_adj_ipvl_dev_50874 mtu_adj ipvl_dev 0 50874 NULL
170631 +enable_so_mmc_select_hs400_fndecl_50875 mmc_select_hs400 fndecl 0 50875 NULL
170632 +enable_so_qib_read_kreg64_fndecl_50881 qib_read_kreg64 fndecl 0 50881 NULL
170633 +enable_so___nvme_submit_sync_cmd_fndecl_50882 __nvme_submit_sync_cmd fndecl 5 50882 NULL
170634 +enable_so_get_ramdisk_image_fndecl_50888 get_ramdisk_image fndecl 0 50888 NULL
170635 +enable_so_pkt_add_fndecl_50890 pkt_add fndecl 3 50890 NULL nohasharray
170636 +enable_so_size_t4_sq_50890 size t4_sq 0 50890 &enable_so_pkt_add_fndecl_50890 nohasharray
170637 +enable_so_ie_len_ieee80211_if_ibss_50890 ie_len ieee80211_if_ibss 0 50890 &enable_so_size_t4_sq_50890
170638 +enable_so_nvkm_vm_create_fndecl_50895 nvkm_vm_create fndecl 3-2 50895 NULL
170639 +enable_so_get_result_si_sm_handlers_50904 get_result si_sm_handlers 0 50904 NULL
170640 +enable_so_netlbl_catmap_walkrng_fndecl_50910 netlbl_catmap_walkrng fndecl 2-0 50910 NULL
170641 +enable_so_exofs_read_kern_fndecl_50914 exofs_read_kern fndecl 6 50914 NULL nohasharray
170642 +enable_so_oom_score_adj_read_fndecl_50914 oom_score_adj_read fndecl 3 50914 &enable_so_exofs_read_kern_fndecl_50914
170643 +enable_so_vnet_hdr_sz_tun_struct_50916 vnet_hdr_sz tun_struct 0 50916 NULL
170644 +enable_so_num_chunks_drm_radeon_cs_50925 num_chunks drm_radeon_cs 0 50925 NULL nohasharray
170645 +enable_so_first_minor_gendisk_50925 first_minor gendisk 0 50925 &enable_so_num_chunks_drm_radeon_cs_50925
170646 +enable_so___spi_async_fndecl_50927 __spi_async fndecl 0 50927 NULL
170647 +enable_so_j_start_reiserfs_journal_50930 j_start reiserfs_journal 0 50930 NULL
170648 +enable_so_ssidLen_BSSListRid_50931 ssidLen BSSListRid 0 50931 NULL
170649 +enable_so_efs_map_block_fndecl_50932 efs_map_block fndecl 0-2 50932 NULL
170650 +enable_so_read_file_modal_eeprom_fndecl_50934 read_file_modal_eeprom fndecl 3 50934 NULL
170651 +enable_so_sge_pktshift_cxgb4_lld_info_50935 sge_pktshift cxgb4_lld_info 0 50935 NULL
170652 +enable_so_dw210x_op_rw_fndecl_50936 dw210x_op_rw fndecl 6 50936 NULL
170653 +enable_so_gen_pool_add_virt_fndecl_50938 gen_pool_add_virt fndecl 4 50938 NULL
170654 +enable_so_wil_rx_init_fndecl_50939 wil_rx_init fndecl 2 50939 NULL
170655 +enable_so_ubi_start_update_fndecl_50948 ubi_start_update fndecl 3 50948 NULL
170656 +enable_so_sync_key_len_pvr2_ioread_50952 sync_key_len pvr2_ioread 0 50952 NULL
170657 +enable_so_iser_prepare_write_cmd_fndecl_50953 iser_prepare_write_cmd fndecl 2-3 50953 NULL
170658 +enable_so_reg_list_size_radeon_rlc_50955 reg_list_size radeon_rlc 0 50955 NULL
170659 +enable_so_alloc_agpphysmem_i8xx_fndecl_50960 alloc_agpphysmem_i8xx fndecl 1 50960 NULL
170660 +enable_so_nsegments_dsp_module_desc_50965 nsegments dsp_module_desc 0 50965 NULL
170661 +enable_so_gamma_sd_gl860_50970 gamma sd_gl860 0 50970 NULL
170662 +enable_so_sdma_get_descq_cnt_fndecl_50975 sdma_get_descq_cnt fndecl 0 50975 NULL
170663 +enable_so_irq_ssb_device_50977 irq ssb_device 0 50977 NULL nohasharray
170664 +enable_so_setkey_unaligned_fndecl_50977 setkey_unaligned fndecl 3 50977 &enable_so_irq_ssb_device_50977
170665 +enable_so_n_hdlc_tty_receive_fndecl_50980 n_hdlc_tty_receive fndecl 4 50980 NULL
170666 +enable_so_seq_start_offset_iscsi_cmd_50983 seq_start_offset iscsi_cmd 0 50983 NULL
170667 +enable_so_usif_ioctl_fndecl_50986 usif_ioctl fndecl 3 50986 NULL
170668 +enable_so_first_burst_len_iscsi_cmd_50987 first_burst_len iscsi_cmd 0 50987 NULL
170669 +enable_so_do_get_mempolicy_fndecl_50990 do_get_mempolicy fndecl 3 50990 NULL
170670 +enable_so_pa_mic_mw_51003 pa mic_mw 0 51003 NULL nohasharray
170671 +enable_so_cb_break_tail_afs_server_51003 cb_break_tail afs_server 0 51003 &enable_so_pa_mic_mw_51003
170672 +enable_so_resize_size_resize_parms_51005 resize_size resize_parms 0 51005 NULL
170673 +enable_so_room_ceph_pagelist_51016 room ceph_pagelist 0 51016 NULL
170674 +enable_so_sg_count_realtek_pci_sdmmc_51022 sg_count realtek_pci_sdmmc 0 51022 NULL
170675 +enable_so_num_of_queues_il_cfg_51023 num_of_queues il_cfg 0 51023 NULL
170676 +enable_so_ib_uverbs_create_srq_fndecl_51025 ib_uverbs_create_srq fndecl 4 51025 NULL
170677 +enable_so_img_sram_size_fw_hdr_51027 img_sram_size fw_hdr 0 51027 NULL
170678 +enable_so_int_proc_write_fndecl_51045 int_proc_write fndecl 3 51045 NULL
170679 +enable_so_setattr_inode_operations_51054 setattr inode_operations 0 51054 NULL
170680 +enable_so_vfs_truncate_fndecl_51056 vfs_truncate fndecl 2 51056 NULL nohasharray
170681 +enable_so_cl_req_alloc_fndecl_51056 cl_req_alloc fndecl 4 51056 &enable_so_vfs_truncate_fndecl_51056
170682 +enable_so_xfs_trans_log_efi_extent_fndecl_51058 xfs_trans_log_efi_extent fndecl 3-4 51058 NULL nohasharray
170683 +enable_so_romfs_dev_strnlen_fndecl_51058 romfs_dev_strnlen fndecl 2-3-0 51058 &enable_so_xfs_trans_log_efi_extent_fndecl_51058
170684 +enable_so_index_vardecl_atiixp_modem_c_51061 index vardecl_atiixp_modem.c 0 51061 NULL
170685 +enable_so_crtc_vtotal_drm_display_mode_51070 crtc_vtotal drm_display_mode 0 51070 NULL
170686 +enable_so_fbmem_len_viafb_dev_51071 fbmem_len viafb_dev 0 51071 NULL
170687 +enable_so_datablob_format_fndecl_51072 datablob_format fndecl 2 51072 NULL
170688 +enable_so_size_p9_wstat_51083 size p9_wstat 0 51083 NULL
170689 +enable_so_td_end_whc_qset_51089 td_end whc_qset 0 51089 NULL nohasharray
170690 +enable_so_pp_write_fndecl_51089 pp_write fndecl 3 51089 &enable_so_td_end_whc_qset_51089
170691 +enable_so_order_mmc_test_pages_51098 order mmc_test_pages 0 51098 NULL
170692 +enable_so_namelen_hpfs_dirent_51099 namelen hpfs_dirent 0 51099 NULL
170693 +enable_so_ocfs2_file_llseek_fndecl_51102 ocfs2_file_llseek fndecl 2 51102 NULL
170694 +enable_so_copy_chunked_from_user_fndecl_51106 copy_chunked_from_user fndecl 3 51106 NULL
170695 +enable_so_memblock_virt_alloc_internal_fndecl_51107 memblock_virt_alloc_internal fndecl 2-1-3-4 51107 NULL nohasharray
170696 +enable_so_bu_blocks_ocfs2_xattr_bucket_51107 bu_blocks ocfs2_xattr_bucket 0 51107 &enable_so_memblock_virt_alloc_internal_fndecl_51107
170697 +enable_so_msb_read_page_fndecl_51110 msb_read_page fndecl 0-6-2 51110 NULL
170698 +enable_so_elog_size_vardecl_acpi_extlog_c_51112 elog_size vardecl_acpi_extlog.c 0 51112 NULL
170699 +enable_so_fbmem_free_viafb_par_51115 fbmem_free viafb_par 0 51115 NULL
170700 +enable_so_len_garp_attr_hdr_51119 len garp_attr_hdr 0 51119 NULL
170701 +enable_so_ls_num_slots_dlm_ls_51120 ls_num_slots dlm_ls 0 51120 NULL
170702 +enable_so_new_read_fndecl_51123 new_read fndecl 2 51123 NULL
170703 +enable_so_adau1373_set_pll_fndecl_51130 adau1373_set_pll fndecl 4-5 51130 NULL
170704 +enable_so_igb_pci_enable_sriov_fndecl_51131 igb_pci_enable_sriov fndecl 2 51131 NULL
170705 +enable_so_wqe_cnt_mlx4_ib_wq_51135 wqe_cnt mlx4_ib_wq 0 51135 NULL
170706 +enable_so_cachelsz_ath_common_51138 cachelsz ath_common 0 51138 NULL
170707 +enable_so_length_sky2_status_le_51139 length sky2_status_le 0 51139 NULL
170708 +enable_so_fm_send_cmd_fndecl_51140 fm_send_cmd fndecl 0-5 51140 NULL nohasharray
170709 +enable_so_arg_start_mm_struct_51140 arg_start mm_struct 0 51140 &enable_so_fm_send_cmd_fndecl_51140 nohasharray
170710 +enable_so_pin_2_irq_fndecl_51140 pin_2_irq fndecl 3 51140 &enable_so_arg_start_mm_struct_51140 nohasharray
170711 +enable_so_drm_dp_send_dpcd_write_fndecl_51140 drm_dp_send_dpcd_write fndecl 4 51140 &enable_so_pin_2_irq_fndecl_51140
170712 +enable_so_num_rx_bnad_51141 num_rx bnad 0 51141 NULL
170713 +enable_so_set_dev_class_fndecl_51150 set_dev_class fndecl 4 51150 NULL nohasharray
170714 +enable_so_dm_exception_table_init_fndecl_51150 dm_exception_table_init fndecl 2 51150 &enable_so_set_dev_class_fndecl_51150
170715 +enable_so_mss_net_lro_desc_51151 mss net_lro_desc 0 51151 NULL
170716 +enable_so_sdio_readb_fndecl_51153 sdio_readb fndecl 0 51153 NULL
170717 +enable_so_nfs_idmap_get_key_fndecl_51155 nfs_idmap_get_key fndecl 2 51155 NULL
170718 +enable_so_n_krcvqs_vardecl_51157 n_krcvqs vardecl 0 51157 NULL
170719 +enable_so_nvme_major_vardecl_pci_c_51159 nvme_major vardecl_pci.c 0 51159 NULL
170720 +enable_so_num_backlights_lm3533_platform_data_51165 num_backlights lm3533_platform_data 0 51165 NULL
170721 +enable_so_bytes_per_pixel_osd_info_51169 bytes_per_pixel osd_info 0 51169 NULL nohasharray
170722 +enable_so_max_sge_rd_ib_device_attr_51169 max_sge_rd ib_device_attr 0 51169 &enable_so_bytes_per_pixel_osd_info_51169 nohasharray
170723 +enable_so_kvm_read_guest_cached_fndecl_51169 kvm_read_guest_cached fndecl 4 51169 &enable_so_max_sge_rd_ib_device_attr_51169
170724 +enable_so_raid10_takeover_raid0_fndecl_51171 raid10_takeover_raid0 fndecl 3-2 51171 NULL
170725 +enable_so_v4l_stk_read_fndecl_51179 v4l_stk_read fndecl 3 51179 NULL
170726 +enable_so_splice_write_null_fndecl_51181 splice_write_null fndecl 4 51181 NULL
170727 +enable_so_snd_rme32_capture_copy_fndecl_51190 snd_rme32_capture_copy fndecl 5 51190 NULL
170728 +enable_so_prism2_info_hostscanresults_fndecl_51194 prism2_info_hostscanresults fndecl 3 51194 NULL nohasharray
170729 +enable_so_fip_op_fip_header_51194 fip_op fip_header 0 51194 &enable_so_prism2_info_hostscanresults_fndecl_51194
170730 +enable_so_mlx5_ib_invalidate_range_fndecl_51195 mlx5_ib_invalidate_range fndecl 2 51195 NULL
170731 +enable_so_pfkey_sockaddr_size_fndecl_51198 pfkey_sockaddr_size fndecl 0 51198 NULL
170732 +enable_so_btrfs_extent_same_fndecl_51200 btrfs_extent_same fndecl 2-5-3 51200 NULL
170733 +enable_so_max_num_vringh_kiov_51202 max_num vringh_kiov 0 51202 NULL
170734 +enable_so_cirrus_ttm_tt_create_fndecl_51204 cirrus_ttm_tt_create fndecl 2 51204 NULL
170735 +enable_so_vcc_recvmsg_fndecl_51205 vcc_recvmsg fndecl 3 51205 NULL
170736 +enable_so_kvm_clear_guest_fndecl_51207 kvm_clear_guest fndecl 2-3 51207 NULL
170737 +enable_so_phys_vram_area_51217 phys vram_area 0 51217 NULL
170738 +enable_so_mt9v032_calc_ratio_fndecl_51219 mt9v032_calc_ratio fndecl 0 51219 NULL
170739 +enable_so_vsi_oltext_vxfs_sb_info_51222 vsi_oltext vxfs_sb_info 0 51222 NULL
170740 +enable_so_mem_cgroup_count_precharge_pte_range_fndecl_51229 mem_cgroup_count_precharge_pte_range fndecl 2 51229 NULL
170741 +enable_so_stb0899_read_regs_fndecl_51234 stb0899_read_regs fndecl 4 51234 NULL nohasharray
170742 +enable_so_pte_entry_mm_walk_51234 pte_entry mm_walk 0 51234 &enable_so_stb0899_read_regs_fndecl_51234
170743 +enable_so_proc_set_size_fndecl_51237 proc_set_size fndecl 2 51237 NULL
170744 +enable_so_get_ucode_user_fndecl_51241 get_ucode_user fndecl 3 51241 NULL
170745 +enable_so_key_tnl_ptk_info_51242 key tnl_ptk_info 0 51242 NULL
170746 +enable_so_unlinked_urb_51246 unlinked urb 0 51246 NULL
170747 +enable_so_max_desc_sz_mthca_limits_51248 max_desc_sz mthca_limits 0 51248 NULL
170748 +enable_so_max_gs_mlx4_ib_wq_51251 max_gs mlx4_ib_wq 0 51251 NULL nohasharray
170749 +enable_so_cdev_add_fndecl_51251 cdev_add fndecl 2-3 51251 &enable_so_max_gs_mlx4_ib_wq_51251
170750 +enable_so_create_srq_user_fndecl_51260 create_srq_user fndecl 5 51260 NULL
170751 +enable_so_maxdatafieldsize_vnic_fc_config_51275 maxdatafieldsize vnic_fc_config 0 51275 NULL
170752 +enable_so_ceph_decode_16_fndecl_51276 ceph_decode_16 fndecl 0 51276 NULL
170753 +enable_so_xfs_rtallocate_range_fndecl_51292 xfs_rtallocate_range fndecl 3-4 51292 NULL nohasharray
170754 +enable_so_osd_req_list_partition_collections_fndecl_51292 osd_req_list_partition_collections fndecl 5 51292 &enable_so_xfs_rtallocate_range_fndecl_51292
170755 +enable_so_first_burst_iscsi_bus_flash_session_51294 first_burst iscsi_bus_flash_session 0 51294 NULL
170756 +enable_so_size_autofs_dev_ioctl_51298 size autofs_dev_ioctl 0 51298 NULL
170757 +enable_so_iscsi_ping_comp_event_fndecl_51300 iscsi_ping_comp_event fndecl 5 51300 NULL nohasharray
170758 +enable_so_ramoops_read_kmsg_hdr_fndecl_51300 ramoops_read_kmsg_hdr fndecl 0 51300 &enable_so_iscsi_ping_comp_event_fndecl_51300
170759 +enable_so_xfs_qm_dqrepair_fndecl_51301 xfs_qm_dqrepair fndecl 4 51301 NULL
170760 +enable_so_vmci_qp_broker_set_page_store_fndecl_51303 vmci_qp_broker_set_page_store fndecl 2-3 51303 NULL
170761 +enable_so_y2_virtio_gpu_framebuffer_51309 y2 virtio_gpu_framebuffer 0 51309 NULL
170762 +enable_so_mthca_alloc_icm_table_fndecl_51311 mthca_alloc_icm_table fndecl 3-4 51311 NULL
170763 +enable_so__ipw_read_reg32_fndecl_51318 _ipw_read_reg32 fndecl 0 51318 NULL
170764 +enable_so_drv_sds_rings_qlcnic_adapter_51319 drv_sds_rings qlcnic_adapter 0 51319 NULL
170765 +enable_so_size_bts_phys_51332 size bts_phys 0 51332 NULL
170766 +enable_so_sync_dma_snd_usb_endpoint_51333 sync_dma snd_usb_endpoint 0 51333 NULL
170767 +enable_so_counter_vardecl_inode_c_51334 counter vardecl_inode.c 0 51334 NULL
170768 +enable_so_skb_put_frags_fndecl_51337 skb_put_frags fndecl 2-3 51337 NULL
170769 +enable_so_s_first_meta_bg_ext4_super_block_51338 s_first_meta_bg ext4_super_block 0 51338 NULL
170770 +enable_so_zd_mac_rx_fndecl_51339 zd_mac_rx fndecl 3 51339 NULL nohasharray
170771 +enable_so_C_SYSC_pselect6_fndecl_51339 C_SYSC_pselect6 fndecl 1 51339 &enable_so_zd_mac_rx_fndecl_51339
170772 +enable_so_xfs_bmbt_to_bmdr_fndecl_51344 xfs_bmbt_to_bmdr fndecl 3 51344 NULL nohasharray
170773 +enable_so_xfs_bmdr_to_bmbt_fndecl_51344 xfs_bmdr_to_bmbt fndecl 5 51344 &enable_so_xfs_bmbt_to_bmdr_fndecl_51344
170774 +enable_so_dev_change_flags_fndecl_51349 dev_change_flags fndecl 0 51349 NULL
170775 +enable_so_omap1_spi100k_setup_transfer_fndecl_51353 omap1_spi100k_setup_transfer fndecl 0 51353 NULL
170776 +enable_so_ftdi_process_packet_fndecl_51354 ftdi_process_packet fndecl 4 51354 NULL nohasharray
170777 +enable_so_size_seq_file_51354 size seq_file 0 51354 &enable_so_ftdi_process_packet_fndecl_51354
170778 +enable_so_get_frame_size_fndecl_51358 get_frame_size fndecl 0 51358 NULL
170779 +enable_so_length_mpc_table_51364 length mpc_table 0 51364 NULL
170780 +enable_so_ida_simple_get_fndecl_51365 ida_simple_get fndecl 0 51365 NULL nohasharray
170781 +enable_so_la_size_sect_drbd_md_51365 la_size_sect drbd_md 0 51365 &enable_so_ida_simple_get_fndecl_51365
170782 +enable_so_isr_rx_headers_read_fndecl_51366 isr_rx_headers_read fndecl 3 51366 NULL
170783 +enable_so_uvc_try_frame_interval_fndecl_51372 uvc_try_frame_interval fndecl 0-2 51372 NULL nohasharray
170784 +enable_so_sb_logblocks_xfs_sb_51372 sb_logblocks xfs_sb 0 51372 &enable_so_uvc_try_frame_interval_fndecl_51372
170785 +enable_so_callNumber_rxrpc_header_51373 callNumber rxrpc_header 0 51373 NULL
170786 +enable_so_bfad_iocmd_rport_clr_stats_fndecl_51377 bfad_iocmd_rport_clr_stats fndecl 0 51377 NULL
170787 +enable_so_ucma_query_path_fndecl_51378 ucma_query_path fndecl 3 51378 NULL
170788 +enable_so_i915_ggtt_view_size_fndecl_51385 i915_ggtt_view_size fndecl 0 51385 NULL
170789 +enable_so_num_queues_virtio_scsi_51387 num_queues virtio_scsi 0 51387 NULL
170790 +enable_so_ath6kl_wmi_addkey_cmd_fndecl_51389 ath6kl_wmi_addkey_cmd fndecl 2 51389 NULL
170791 +enable_so_reshape_progress_r10conf_51390 reshape_progress r10conf 0 51390 NULL
170792 +enable_so_size_hbucket_51397 size hbucket 0 51397 NULL
170793 +enable_so_rss_size_i40e_pf_51407 rss_size i40e_pf 0 51407 NULL
170794 +enable_so_ext4_ext_next_allocated_block_fndecl_51410 ext4_ext_next_allocated_block fndecl 0 51410 NULL
170795 +enable_so_bcm63xx_txrx_bufs_fndecl_51413 bcm63xx_txrx_bufs fndecl 0 51413 NULL
170796 +enable_so_max_header_size_irnet_socket_51423 max_header_size irnet_socket 0 51423 NULL
170797 +enable_so_base_memblock_region_51424 base memblock_region 0 51424 NULL
170798 +enable_so_num_rx_queues_ixgbevf_adapter_51428 num_rx_queues ixgbevf_adapter 0 51428 NULL
170799 +enable_so_hns_nic_reuse_page_fndecl_51437 hns_nic_reuse_page fndecl 2 51437 NULL
170800 +enable_so_send_extent_data_fndecl_51438 send_extent_data fndecl 2 51438 NULL nohasharray
170801 +enable_so_nethctrl_vf_resources_51438 nethctrl vf_resources 0 51438 &enable_so_send_extent_data_fndecl_51438
170802 +enable_so_max_cmds_ipr_ioa_cfg_51439 max_cmds ipr_ioa_cfg 0 51439 NULL
170803 +enable_so_xfs_free_file_space_fndecl_51452 xfs_free_file_space fndecl 2-3 51452 NULL
170804 +enable_so_pcpu_fc_free_fndecl_51456 pcpu_fc_free fndecl 2 51456 NULL
170805 +enable_so_nr_segments_blkif_request_indirect_51457 nr_segments blkif_request_indirect 0 51457 NULL
170806 +enable_so_size_hashlimit_cfg1_51460 size hashlimit_cfg1 0 51460 NULL
170807 +enable_so_rx_urb_size_usbnet_51461 rx_urb_size usbnet 0 51461 NULL
170808 +enable_so_nTxLock_vardecl_jfs_txnmgr_c_51464 nTxLock vardecl_jfs_txnmgr.c 0 51464 NULL
170809 +enable_so_orig_offset_iscsi_seq_51477 orig_offset iscsi_seq 0 51477 NULL
170810 +enable_so_write_ec_fiforeg_fndecl_51478 write_ec_fiforeg fndecl 2 51478 NULL
170811 +enable_so_compat_sys_rt_sigpending_fndecl_51480 compat_sys_rt_sigpending fndecl 2 51480 NULL
170812 +enable_so_finish_urb_fndecl_51484 finish_urb fndecl 3 51484 NULL
170813 +enable_so_num_vectors_mic_irq_info_51485 num_vectors mic_irq_info 0 51485 NULL
170814 +enable_so_xlog_alloc_log_fndecl_51486 xlog_alloc_log fndecl 3-4 51486 NULL
170815 +enable_so_log_blocksize_f2fs_super_block_51487 log_blocksize f2fs_super_block 0 51487 NULL
170816 +enable_so_dm_kill_unmapped_request_fndecl_51490 dm_kill_unmapped_request fndecl 2 51490 NULL
170817 +enable_so_end_soundfont_sample_info_51497 end soundfont_sample_info 0 51497 NULL
170818 +enable_so_height_drm_radeon_tex_image_51500 height drm_radeon_tex_image 0 51500 NULL
170819 +enable_so_inftl_readblock_fndecl_51508 inftl_readblock fndecl 2 51508 NULL
170820 +enable_so_xfer_len_scb_platform_data_51509 xfer_len scb_platform_data 0 51509 NULL
170821 +enable_so_count_atl1_tpd_ring_51510 count atl1_tpd_ring 0 51510 NULL
170822 +enable_so_pkt_alloc_packet_data_fndecl_51515 pkt_alloc_packet_data fndecl 1 51515 NULL nohasharray
170823 +enable_so__rtw_malloc_fndecl_51515 _rtw_malloc fndecl 1 51515 &enable_so_pkt_alloc_packet_data_fndecl_51515
170824 +enable_so_size_fb_pixmap_51528 size fb_pixmap 0 51528 NULL
170825 +enable_so_index_v4l2_subdev_frame_interval_enum_51537 index v4l2_subdev_frame_interval_enum 0 51537 NULL
170826 +enable_so_mft_no__ntfs_inode_51541 mft_no _ntfs_inode 0 51541 NULL
170827 +enable_so_len_hfa384x_info_frame_51543 len hfa384x_info_frame 0 51543 NULL
170828 +enable_so_scan_bytes_iio_dev_51546 scan_bytes iio_dev 0 51546 NULL nohasharray
170829 +enable_so_fifo_alloc_fndecl_51546 fifo_alloc fndecl 1 51546 &enable_so_scan_bytes_iio_dev_51546
170830 +enable_so_segCnt_Vmxnet3_RxCompDescExt_51547 segCnt Vmxnet3_RxCompDescExt 0 51547 NULL
170831 +enable_so_buffer_size_snd_emu10k1_fx8010_pcm_rec_51548 buffer_size snd_emu10k1_fx8010_pcm_rec 0 51548 NULL
170832 +enable_so_rcv_buf_bytes_vardecl_usbatm_c_51558 rcv_buf_bytes vardecl_usbatm.c 0 51558 NULL
170833 +enable_so_residual_len_vscsiif_response_51559 residual_len vscsiif_response 0 51559 NULL
170834 +enable_so_vfs_readv_fndecl_51560 vfs_readv fndecl 3 51560 NULL
170835 +enable_so_tegra_slink_start_tx_dma_fndecl_51568 tegra_slink_start_tx_dma fndecl 2 51568 NULL
170836 +enable_so_FABN_hfs_ext_key_51569 FABN hfs_ext_key 0 51569 NULL
170837 +enable_so_size_mdp_superblock_1_51572 size mdp_superblock_1 0 51572 NULL
170838 +enable_so_netxen_nic_change_mtu_fndecl_51573 netxen_nic_change_mtu fndecl 2 51573 NULL nohasharray
170839 +enable_so_rds_rdma_extra_size_fndecl_51573 rds_rdma_extra_size fndecl 0 51573 &enable_so_netxen_nic_change_mtu_fndecl_51573
170840 +enable_so_aio_setup_vectored_rw_fndecl_51577 aio_setup_vectored_rw fndecl 3 51577 NULL
170841 +enable_so_ino_f2fs_dir_entry_51578 ino f2fs_dir_entry 0 51578 NULL nohasharray
170842 +enable_so_s_writeshift_logfs_super_51578 s_writeshift logfs_super 0 51578 &enable_so_ino_f2fs_dir_entry_51578
170843 +enable_so_lbasize_nd_namespace_blk_51579 lbasize nd_namespace_blk 0 51579 NULL
170844 +enable_so_i_blkno_ocfs2_dinode_51582 i_blkno ocfs2_dinode 0 51582 NULL nohasharray
170845 +enable_so_persistent_ram_old_size_fndecl_51582 persistent_ram_old_size fndecl 0 51582 &enable_so_i_blkno_ocfs2_dinode_51582
170846 +enable_so_octeon_download_firmware_fndecl_51583 octeon_download_firmware fndecl 3 51583 NULL
170847 +enable_so_aggr_recv_addba_req_evt_fndecl_51590 aggr_recv_addba_req_evt fndecl 4 51590 NULL
170848 +enable_so_rx_buf_missing_hso_net_51595 rx_buf_missing hso_net 0 51595 NULL
170849 +enable_so_klsi_105_prepare_write_buffer_fndecl_51599 klsi_105_prepare_write_buffer fndecl 3 51599 NULL nohasharray
170850 +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
170851 +enable_so_ep_count_bytes_remain_fndecl_51599 ep_count_bytes_remain fndecl 0 51599 &enable_so_af9013_wr_regs_i2c_fndecl_51599
170852 +enable_so_receive_mergeable_fndecl_51601 receive_mergeable fndecl 5-4 51601 NULL
170853 +enable_so_va_for_temp_scif_window_51603 va_for_temp scif_window 0 51603 NULL
170854 +enable_so_data_transfer_length_vmscsi_request_51616 data_transfer_length vmscsi_request 0 51616 NULL nohasharray
170855 +enable_so_cur_vfio_pci_fill_info_51616 cur vfio_pci_fill_info 0 51616 &enable_so_data_transfer_length_vmscsi_request_51616
170856 +enable_so_alloc_ltalkdev_fndecl_51620 alloc_ltalkdev fndecl 1 51620 NULL
170857 +enable_so_ioc_plen1_obd_ioctl_data_51625 ioc_plen1 obd_ioctl_data 0 51625 NULL
170858 +enable_so_btuart_write_fndecl_51627 btuart_write fndecl 0 51627 NULL
170859 +enable_so_cifs_send_async_read_fndecl_51630 cifs_send_async_read fndecl 2 51630 NULL
170860 +enable_so_m25p80_read_fndecl_51631 m25p80_read fndecl 3 51631 NULL
170861 +enable_so_nodesize_btrfs_root_51633 nodesize btrfs_root 0 51633 NULL nohasharray
170862 +enable_so_wil_vring_init_bcast_fndecl_51633 wil_vring_init_bcast fndecl 3 51633 &enable_so_nodesize_btrfs_root_51633
170863 +enable_so_SyS_llistxattr_fndecl_51635 SyS_llistxattr fndecl 3 51635 NULL
170864 +enable_so_SsidLength_ndis_802_11_ssid_51638 SsidLength ndis_802_11_ssid 0 51638 NULL
170865 +enable_so_remap_cell_to_cache_dirty_fndecl_51640 remap_cell_to_cache_dirty fndecl 4 51640 NULL
170866 +enable_so__xfs_buf_alloc_fndecl_51641 _xfs_buf_alloc fndecl 3 51641 NULL
170867 +enable_so_hsu_dma_desc_size_fndecl_51647 hsu_dma_desc_size fndecl 0 51647 NULL nohasharray
170868 +enable_so_nsm_create_handle_fndecl_51647 nsm_create_handle fndecl 4 51647 &enable_so_hsu_dma_desc_size_fndecl_51647
170869 +enable_so_kernfs_dir_fop_llseek_fndecl_51649 kernfs_dir_fop_llseek fndecl 2 51649 NULL
170870 +enable_so_max_txsz_cxgbi_ddp_info_51655 max_txsz cxgbi_ddp_info 0 51655 NULL
170871 +enable_so_o2hb_read_slots_fndecl_51658 o2hb_read_slots fndecl 2 51658 NULL
170872 +enable_so_create_cache_fndecl_51660 create_cache fndecl 3-4-2 51660 NULL
170873 +enable_so_inet_set_ifa_fndecl_51661 inet_set_ifa fndecl 0 51661 NULL
170874 +enable_so_snd_pcm_oss_write_fndecl_51663 snd_pcm_oss_write fndecl 3 51663 NULL
170875 +enable_so_xfs_buf_readahead_map_fndecl_51666 xfs_buf_readahead_map fndecl 3 51666 NULL nohasharray
170876 +enable_so_wcn36xx_smd_rsp_process_fndecl_51666 wcn36xx_smd_rsp_process fndecl 3 51666 &enable_so_xfs_buf_readahead_map_fndecl_51666
170877 +enable_so_phys_mdio_mux_mmioreg_state_51673 phys mdio_mux_mmioreg_state 0 51673 NULL nohasharray
170878 +enable_so_resource_list_create_entry_fndecl_51673 resource_list_create_entry fndecl 2 51673 &enable_so_phys_mdio_mux_mmioreg_state_51673
170879 +enable_so_tcf_csum_ipv4_udp_fndecl_51674 tcf_csum_ipv4_udp fndecl 3 51674 NULL nohasharray
170880 +enable_so_seq_create_client1_fndecl_51674 seq_create_client1 fndecl 2 51674 &enable_so_tcf_csum_ipv4_udp_fndecl_51674
170881 +enable_so_nr_dirtied_task_struct_51675 nr_dirtied task_struct 0 51675 NULL
170882 +enable_so_ep0_read_fndecl_51676 ep0_read fndecl 3 51676 NULL
170883 +enable_so_proc_self_readlink_fndecl_51677 proc_self_readlink fndecl 3 51677 NULL
170884 +enable_so_request_key_auth_new_fndecl_51679 request_key_auth_new fndecl 3 51679 NULL
170885 +enable_so_vmw_kms_present_fndecl_51681 vmw_kms_present fndecl 9 51681 NULL nohasharray
170886 +enable_so_ls_num_nodes_dlm_ls_51681 ls_num_nodes dlm_ls 0 51681 &enable_so_vmw_kms_present_fndecl_51681
170887 +enable_so_virtio_gpu_object_create_fndecl_51692 virtio_gpu_object_create fndecl 2 51692 NULL nohasharray
170888 +enable_so_extsize_xfs_growfs_rt_51692 extsize xfs_growfs_rt 0 51692 &enable_so_virtio_gpu_object_create_fndecl_51692
170889 +enable_so_rtl8169_change_mtu_fndecl_51693 rtl8169_change_mtu fndecl 2 51693 NULL
170890 +enable_so_ms_os_descs_ext_prop_data_len_ffs_data_51698 ms_os_descs_ext_prop_data_len ffs_data 0 51698 NULL
170891 +enable_so_gfx_v7_0_get_csb_size_fndecl_51701 gfx_v7_0_get_csb_size fndecl 0 51701 NULL
170892 +enable_so_bb_numrecs_xfs_bmdr_block_51702 bb_numrecs xfs_bmdr_block 0 51702 NULL
170893 +enable_so_bNumMMCIEs_usb_wa_descriptor_51706 bNumMMCIEs usb_wa_descriptor 0 51706 NULL
170894 +enable_so_num_req_context_skd_device_51707 num_req_context skd_device 0 51707 NULL
170895 +enable_so_reqsize_crypto_skcipher_51708 reqsize crypto_skcipher 0 51708 NULL
170896 +enable_so_ubifs_scan_fndecl_51715 ubifs_scan fndecl 3 51715 NULL nohasharray
170897 +enable_so_mwifiex_cmd_append_11n_tlv_fndecl_51715 mwifiex_cmd_append_11n_tlv fndecl 0 51715 &enable_so_ubifs_scan_fndecl_51715
170898 +enable_so_iscsit_dump_data_payload_fndecl_51720 iscsit_dump_data_payload fndecl 2 51720 NULL
170899 +enable_so_do_wp_page_fndecl_51721 do_wp_page fndecl 3 51721 NULL nohasharray
170900 +enable_so_nlimbs_gcry_mpi_51721 nlimbs gcry_mpi 0 51721 &enable_so_do_wp_page_fndecl_51721 nohasharray
170901 +enable_so_ib_uverbs_modify_qp_fndecl_51721 ib_uverbs_modify_qp fndecl 4 51721 &enable_so_nlimbs_gcry_mpi_51721
170902 +enable_so_rx_ring_num_mlx4_en_priv_51723 rx_ring_num mlx4_en_priv 0 51723 NULL
170903 +enable_so_MaxChainDepth__MSG_IOC_FACTS_REPLY_51731 MaxChainDepth _MSG_IOC_FACTS_REPLY 0 51731 NULL
170904 +enable_so_type_learning_pkt_51733 type learning_pkt 0 51733 NULL
170905 +enable_so_xfs_da3_node_create_fndecl_51737 xfs_da3_node_create fndecl 2 51737 NULL
170906 +enable_so_start_falloc_range_51744 start falloc_range 0 51744 NULL nohasharray
170907 +enable_so_acpi_copy_property_array_u32_fndecl_51744 acpi_copy_property_array_u32 fndecl 0 51744 &enable_so_start_falloc_range_51744
170908 +enable_so_bnx2_change_ring_size_fndecl_51748 bnx2_change_ring_size fndecl 3-2 51748 NULL
170909 +enable_so_sie_num_c67x00_sie_51754 sie_num c67x00_sie 0 51754 NULL
170910 +enable_so_sd_size_stat_data_v1_51758 sd_size stat_data_v1 0 51758 NULL
170911 +enable_so_find_next_usable_block_fndecl_51759 find_next_usable_block fndecl 0 51759 NULL
170912 +enable_so_rxbuf_size_alx_priv_51766 rxbuf_size alx_priv 0 51766 NULL nohasharray
170913 +enable_so_z_compress_fndecl_51766 z_compress fndecl 4-5 51766 &enable_so_rxbuf_size_alx_priv_51766
170914 +enable_so_num_var_ranges_vardecl_51769 num_var_ranges vardecl 0 51769 NULL
170915 +enable_so_ls_slot_dlm_ls_51774 ls_slot dlm_ls 0 51774 NULL
170916 +enable_so_rbio_add_io_page_fndecl_51775 rbio_add_io_page fndecl 5-6 51775 NULL
170917 +enable_so_s_blocksize_reiserfs_super_block_v1_51777 s_blocksize reiserfs_super_block_v1 0 51777 NULL
170918 +enable_so_SSID_size_atmel_private_51778 SSID_size atmel_private 0 51778 NULL
170919 +enable_so_snd_rme32_capture_getrate_fndecl_51779 snd_rme32_capture_getrate fndecl 0 51779 NULL
170920 +enable_so_btusb_qca_send_vendor_req_fndecl_51785 btusb_qca_send_vendor_req fndecl 4 51785 NULL
170921 +enable_so_msb_do_read_request_fndecl_51789 msb_do_read_request fndecl 0-2 51789 NULL
170922 +enable_so_pci_bar2_map_lpfc_hba_51792 pci_bar2_map lpfc_hba 0 51792 NULL
170923 +enable_so_ns_nextnum_the_nilfs_51797 ns_nextnum the_nilfs 0 51797 NULL
170924 +enable_so_uar_page_size_mlx4_caps_51798 uar_page_size mlx4_caps 0 51798 NULL
170925 +enable_so_fs_cgisize_efs_super_51811 fs_cgisize efs_super 0 51811 NULL
170926 +enable_so_si476x_core_i2c_xfer_fndecl_51818 si476x_core_i2c_xfer fndecl 4 51818 NULL
170927 +enable_so_val_ulist_node_51819 val ulist_node 0 51819 NULL
170928 +enable_so___pdp_init_fndecl_51821 __pdp_init fndecl 0 51821 NULL
170929 +enable_so_bcache_device_init_fndecl_51822 bcache_device_init fndecl 2-3 51822 NULL nohasharray
170930 +enable_so_port_num_ib_ud_wr_51822 port_num ib_ud_wr 0 51822 &enable_so_bcache_device_init_fndecl_51822
170931 +enable_so_isac_empty_fifo_fndecl_51832 isac_empty_fifo fndecl 2 51832 NULL
170932 +enable_so_udf_readpages_fndecl_51834 udf_readpages fndecl 4 51834 NULL
170933 +enable_so_hde_ast_vbios_enhtable_51835 hde ast_vbios_enhtable 0 51835 NULL
170934 +enable_so_do_pci_enable_device_fndecl_51841 do_pci_enable_device fndecl 0 51841 NULL
170935 +enable_so_mmio_len_mb862xxfb_par_51844 mmio_len mb862xxfb_par 0 51844 NULL
170936 +enable_so_xfs_qm_dqiter_bufs_fndecl_51846 xfs_qm_dqiter_bufs fndecl 3-2 51846 NULL
170937 +enable_so_max_bdi_bd_list_51847 max_bdi bd_list 0 51847 NULL
170938 +enable_so_free_size_jffs2_eraseblock_51848 free_size jffs2_eraseblock 0 51848 NULL
170939 +enable_so_xprt_rdma_max_inline_read_vardecl_transport_c_51852 xprt_rdma_max_inline_read vardecl_transport.c 0 51852 NULL
170940 +enable_so_ipv6_renew_option_fndecl_51854 ipv6_renew_option fndecl 3 51854 NULL
170941 +enable_so_gfs2_xattr_set_fndecl_51860 gfs2_xattr_set fndecl 5 51860 NULL
170942 +enable_so_nr_dma_pages_drm_savage_private_51862 nr_dma_pages drm_savage_private 0 51862 NULL
170943 +enable_so_TupleDataLen_tuple_t_51870 TupleDataLen tuple_t 0 51870 NULL
170944 +enable_so_efs_get_block_fndecl_51871 efs_get_block fndecl 2 51871 NULL
170945 +enable_so_MaxFrameSize_s_smt_os_51875 MaxFrameSize s_smt_os 0 51875 NULL
170946 +enable_so_vbi_height_em28xx_v4l2_51876 vbi_height em28xx_v4l2 0 51876 NULL
170947 +enable_so_lright_ext4_allocation_request_51877 lright ext4_allocation_request 0 51877 NULL
170948 +enable_so_compat_udp_setsockopt_fndecl_51883 compat_udp_setsockopt fndecl 5 51883 NULL
170949 +enable_so_skb_headroom_port100_51893 skb_headroom port100 0 51893 NULL
170950 +enable_so_sys_select_fndecl_51896 sys_select fndecl 1 51896 NULL
170951 +enable_so_len_sdla_mem_51902 len sdla_mem 0 51902 NULL
170952 +enable_so_datainterval_audioformat_51903 datainterval audioformat 0 51903 NULL
170953 +enable_so_rx_buf_sz_yellowfin_private_51912 rx_buf_sz yellowfin_private 0 51912 NULL
170954 +enable_so_len_nfs3_diropargs_51913 len nfs3_diropargs 0 51913 NULL
170955 +enable_so_port_pkey_mthca_qp_path_51919 port_pkey mthca_qp_path 0 51919 NULL
170956 +enable_so_pgbase_nfs4_readlink_51921 pgbase nfs4_readlink 0 51921 NULL
170957 +enable_so_aead_sendmsg_fndecl_51926 aead_sendmsg fndecl 3 51926 NULL
170958 +enable_so_interfaces_fndecl_51928 interfaces fndecl 2 51928 NULL
170959 +enable_so_start_discovery_fndecl_51929 start_discovery fndecl 4 51929 NULL
170960 +enable_so_btrfs_read_dev_one_super_fndecl_51932 btrfs_read_dev_one_super fndecl 2 51932 NULL
170961 +enable_so_xfs_dir_createname_fndecl_51936 xfs_dir_createname fndecl 7 51936 NULL
170962 +enable_so___fswab16_fndecl_51937 __fswab16 fndecl 0-1 51937 NULL
170963 +enable_so_traverse_fndecl_51938 traverse fndecl 2 51938 NULL
170964 +enable_so_len_probe_resp_51942 len probe_resp 0 51942 NULL nohasharray
170965 +enable_so_probe_parport_driver_51942 probe parport_driver 0 51942 &enable_so_len_probe_resp_51942
170966 +enable_so_vram_vardecl_gxfb_core_c_51945 vram vardecl_gxfb_core.c 0 51945 NULL nohasharray
170967 +enable_so_tidcnt_ipath_tid_info_51945 tidcnt ipath_tid_info 0 51945 &enable_so_vram_vardecl_gxfb_core_c_51945
170968 +enable_so_nci_core_conn_create_fndecl_51946 nci_core_conn_create fndecl 4 51946 NULL
170969 +enable_so_rsi_mgmt_pkt_to_core_fndecl_51950 rsi_mgmt_pkt_to_core fndecl 3 51950 NULL
170970 +enable_so_size_mdp_superblock_s_51954 size mdp_superblock_s 0 51954 NULL
170971 +enable_so___remaining_sg_mapping_iter_51955 __remaining sg_mapping_iter 0 51955 NULL nohasharray
170972 +enable_so_max_channels_efx_nic_51955 max_channels efx_nic 0 51955 &enable_so___remaining_sg_mapping_iter_51955 nohasharray
170973 +enable_so_num_mpt_mlx4_profile_51955 num_mpt mlx4_profile 0 51955 &enable_so_max_channels_efx_nic_51955
170974 +enable_so___blk_queue_init_tags_fndecl_51956 __blk_queue_init_tags fndecl 2 51956 NULL
170975 +enable_so_meta_total_blocks_r5l_recovery_ctx_51960 meta_total_blocks r5l_recovery_ctx 0 51960 NULL
170976 +enable_so_pipe_src_w_intel_crtc_state_51963 pipe_src_w intel_crtc_state 0 51963 NULL nohasharray
170977 +enable_so_num_eqs_mthca_limits_51963 num_eqs mthca_limits 0 51963 &enable_so_pipe_src_w_intel_crtc_state_51963
170978 +enable_so_bufsize_usbhid_device_51964 bufsize usbhid_device 0 51964 NULL nohasharray
170979 +enable_so_max_data_size_mpt3_ioctl_header_51964 max_data_size mpt3_ioctl_header 0 51964 &enable_so_bufsize_usbhid_device_51964
170980 +enable_so_should_error_unserviceable_bio_fndecl_51968 should_error_unserviceable_bio fndecl 0 51968 NULL nohasharray
170981 +enable_so_pad_bits_regmap_config_51968 pad_bits regmap_config 0 51968 &enable_so_should_error_unserviceable_bio_fndecl_51968
170982 +enable_so_req_lim_delta_srp_cred_req_51971 req_lim_delta srp_cred_req 0 51971 NULL
170983 +enable_so_asix_write_cmd_async_fndecl_51975 asix_write_cmd_async fndecl 5 51975 NULL
170984 +enable_so_insert_one_name_fndecl_51977 insert_one_name fndecl 6 51977 NULL
170985 +enable_so_pmcraid_copy_sglist_fndecl_51980 pmcraid_copy_sglist fndecl 3 51980 NULL
170986 +enable_so_result_rbd_obj_request_51982 result rbd_obj_request 0 51982 NULL
170987 +enable_so_pcnet32_realloc_tx_ring_fndecl_51983 pcnet32_realloc_tx_ring fndecl 3 51983 NULL
170988 +enable_so_bus_num_sm501_platdata_gpio_i2c_51989 bus_num sm501_platdata_gpio_i2c 0 51989 NULL
170989 +enable_so_f2fs_inode_by_name_fndecl_51991 f2fs_inode_by_name fndecl 0 51991 NULL
170990 +enable_so_ocfs2_which_cluster_group_fndecl_51998 ocfs2_which_cluster_group fndecl 0-2 51998 NULL
170991 +enable_so_mlx5_query_port_ptys_fndecl_52003 mlx5_query_port_ptys fndecl 3 52003 NULL
170992 +enable_so_kvm_write_guest_fndecl_52005 kvm_write_guest fndecl 2-4 52005 NULL
170993 +enable_so_s_last_psn_qib_qp_52008 s_last_psn qib_qp 0 52008 NULL nohasharray
170994 +enable_so_videobuf_waiton_fndecl_52008 videobuf_waiton fndecl 0 52008 &enable_so_s_last_psn_qib_qp_52008
170995 +enable_so_mISDN_sock_create_fndecl_52009 mISDN_sock_create fndecl 3 52009 NULL
170996 +enable_so_immediate_data_length_iscsi_build_list_52017 immediate_data_length iscsi_build_list 0 52017 NULL nohasharray
170997 +enable_so_size_fuse_write_out_52017 size fuse_write_out 0 52017 &enable_so_immediate_data_length_iscsi_build_list_52017
170998 +enable_so_batadv_iv_ogm_aggregate_new_fndecl_52022 batadv_iv_ogm_aggregate_new fndecl 2 52022 NULL
170999 +enable_so_seq_commit_fndecl_52023 seq_commit fndecl 2 52023 NULL
171000 +enable_so_dev_set_mtu_fndecl_52028 dev_set_mtu fndecl 2 52028 NULL
171001 +enable_so_blk_end_bidi_request_fndecl_52033 blk_end_bidi_request fndecl 3-4-2 52033 NULL
171002 +enable_so_kvm_arch_setup_async_pf_fndecl_52034 kvm_arch_setup_async_pf fndecl 3 52034 NULL
171003 +enable_so_c_height_g2d_frame_52036 c_height g2d_frame 0 52036 NULL
171004 +enable_so_ttm_dma_page_alloc_init_fndecl_52037 ttm_dma_page_alloc_init fndecl 2 52037 NULL nohasharray
171005 +enable_so_oobavail_mtd_info_52037 oobavail mtd_info 0 52037 &enable_so_ttm_dma_page_alloc_init_fndecl_52037
171006 +enable_so_gfs2_setattr_size_fndecl_52038 gfs2_setattr_size fndecl 2 52038 NULL nohasharray
171007 +enable_so_mapbase_priv_52038 mapbase priv 0 52038 &enable_so_gfs2_setattr_size_fndecl_52038
171008 +enable_so_xdr_shrink_pagelen_fndecl_52043 xdr_shrink_pagelen fndecl 2 52043 NULL nohasharray
171009 +enable_so_sysctl_sync_sock_size_netns_ipvs_52043 sysctl_sync_sock_size netns_ipvs 0 52043 &enable_so_xdr_shrink_pagelen_fndecl_52043
171010 +enable_so_num_controls_op_x86_model_spec_52044 num_controls op_x86_model_spec 0 52044 NULL
171011 +enable_so_min_initial_entries_vmw_cotable_info_52048 min_initial_entries vmw_cotable_info 0 52048 NULL
171012 +enable_so_btrfs_next_old_leaf_fndecl_52050 btrfs_next_old_leaf fndecl 0 52050 NULL nohasharray
171013 +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
171014 +enable_so_cxgb_change_mtu_fndecl_52055 cxgb_change_mtu fndecl 2 52055 NULL
171015 +enable_so_scif_register_fndecl_52065 scif_register fndecl 3 52065 NULL
171016 +enable_so_event_rx_mismatch_read_fndecl_52069 event_rx_mismatch_read fndecl 3 52069 NULL
171017 +enable_so_lpfc_bsg_copy_data_fndecl_52084 lpfc_bsg_copy_data fndecl 0-3 52084 NULL
171018 +enable_so_iscsi_create_iface_fndecl_52093 iscsi_create_iface fndecl 5 52093 NULL
171019 +enable_so_dev_names_read_fndecl_52094 dev_names_read fndecl 3 52094 NULL
171020 +enable_so_assoc_rem_len_amp_ctrl_52099 assoc_rem_len amp_ctrl 0 52099 NULL
171021 +enable_so_drv_tx_rings_qlcnic_adapter_52102 drv_tx_rings qlcnic_adapter 0 52102 NULL
171022 +enable_so_btindex_jfs_inode_info_52105 btindex jfs_inode_info 0 52105 NULL nohasharray
171023 +enable_so_ceph_handle_auth_reply_fndecl_52105 ceph_handle_auth_reply fndecl 0 52105 &enable_so_btindex_jfs_inode_info_52105
171024 +enable_so_attr_bytes_osdv1_attributes_list_element_52106 attr_bytes osdv1_attributes_list_element 0 52106 NULL
171025 +enable_so_logical_offset_btrfs_ioctl_same_args_52108 logical_offset btrfs_ioctl_same_args 0 52108 NULL
171026 +enable_so_mmc_test_nonblock_transfer_fndecl_52112 mmc_test_nonblock_transfer fndecl 6-5-3 52112 NULL nohasharray
171027 +enable_so_MaxDevices__MSG_PORT_FACTS_REPLY_52112 MaxDevices _MSG_PORT_FACTS_REPLY 0 52112 &enable_so_mmc_test_nonblock_transfer_fndecl_52112
171028 +enable_so_mlx4_ib_db_map_user_fndecl_52114 mlx4_ib_db_map_user fndecl 2 52114 NULL
171029 +enable_so_logfs_new_meta_inode_fndecl_52119 logfs_new_meta_inode fndecl 2 52119 NULL
171030 +enable_so_max3421_transfer_out_done_fndecl_52121 max3421_transfer_out_done fndecl 0 52121 NULL nohasharray
171031 +enable_so_length_wsm_update_ie_52121 length wsm_update_ie 0 52121 &enable_so_max3421_transfer_out_done_fndecl_52121
171032 +enable_so_db_page_mthca_create_srq_52122 db_page mthca_create_srq 0 52122 NULL
171033 +enable_so_bfad_iocmd_trunk_get_attr_fndecl_52123 bfad_iocmd_trunk_get_attr fndecl 0 52123 NULL
171034 +enable_so_mtu_cmtp_session_52125 mtu cmtp_session 0 52125 NULL
171035 +enable_so_prepare_header95_fndecl_52127 prepare_header95 fndecl 3-0 52127 NULL
171036 +enable_so_fjes_hw_get_max_epid_fndecl_52129 fjes_hw_get_max_epid fndecl 0 52129 NULL
171037 +enable_so_iscsi_sw_tcp_recv_fndecl_52131 iscsi_sw_tcp_recv fndecl 3 52131 NULL
171038 +enable_so_s_inode_size_ext2_sb_info_52134 s_inode_size ext2_sb_info 0 52134 NULL
171039 +enable_so_copy_ctl_value_to_user_fndecl_52136 copy_ctl_value_to_user fndecl 4 52136 NULL
171040 +enable_so_isofs_export_iget_fndecl_52144 isofs_export_iget fndecl 2-3 52144 NULL
171041 +enable_so_qib_rc_rcv_fndecl_52145 qib_rc_rcv fndecl 5 52145 NULL
171042 +enable_so_tcp_sendmsg_fndecl_52147 tcp_sendmsg fndecl 3 52147 NULL nohasharray
171043 +enable_so_tcp_update_reordering_fndecl_52147 tcp_update_reordering fndecl 2 52147 &enable_so_tcp_sendmsg_fndecl_52147
171044 +enable_so_snd_nm256_playback_copy_fndecl_52148 snd_nm256_playback_copy fndecl 5 52148 NULL
171045 +enable_so_set_le_ih_k_type_fndecl_52149 set_le_ih_k_type fndecl 2 52149 NULL
171046 +enable_so_pep_indicate_fndecl_52160 pep_indicate fndecl 5 52160 NULL
171047 +enable_so_indirect_sg_entries_vardecl_ib_srp_c_52165 indirect_sg_entries vardecl_ib_srp.c 0 52165 NULL
171048 +enable_so_mpx_mmap_fndecl_52167 mpx_mmap fndecl 0-1 52167 NULL
171049 +enable_so_nf_ct_sack_adjust_fndecl_52168 nf_ct_sack_adjust fndecl 2 52168 NULL
171050 +enable_so_mtdchar_lseek_fndecl_52170 mtdchar_lseek fndecl 2 52170 NULL
171051 +enable_so_di_numextents_efs_dinode_52171 di_numextents efs_dinode 0 52171 NULL
171052 +enable_so_compat_sys_ptrace_fndecl_52176 compat_sys_ptrace fndecl 3 52176 NULL
171053 +enable_so_b_length_xfs_buf_52177 b_length xfs_buf 0 52177 NULL
171054 +enable_so_log_sq_size_mlx5e_params_52182 log_sq_size mlx5e_params 0 52182 NULL
171055 +enable_so_smb_send_kvec_fndecl_52185 smb_send_kvec fndecl 3 52185 NULL
171056 +enable_so_rd_allocate_sgl_table_fndecl_52188 rd_allocate_sgl_table fndecl 3 52188 NULL
171057 +enable_so_virtfn_add_bus_fndecl_52190 virtfn_add_bus fndecl 2 52190 NULL
171058 +enable_so_ext2_readpages_fndecl_52195 ext2_readpages fndecl 4 52195 NULL nohasharray
171059 +enable_so_regmap_calc_reg_len_fndecl_52195 regmap_calc_reg_len fndecl 0 52195 &enable_so_ext2_readpages_fndecl_52195
171060 +enable_so_qp_broker_alloc_fndecl_52197 qp_broker_alloc fndecl 5-6 52197 NULL nohasharray
171061 +enable_so_patch_regs_regmap_52197 patch_regs regmap 0 52197 &enable_so_qp_broker_alloc_fndecl_52197
171062 +enable_so_audit_init_entry_fndecl_52199 audit_init_entry fndecl 1 52199 NULL
171063 +enable_so_metapage_get_blocks_fndecl_52200 metapage_get_blocks fndecl 0-2 52200 NULL
171064 +enable_so_mmc_send_cxd_data_fndecl_52204 mmc_send_cxd_data fndecl 5-3 52204 NULL
171065 +enable_so_hd29l2_rd_regs_fndecl_52207 hd29l2_rd_regs fndecl 4 52207 NULL
171066 +enable_so_num_lro_rxd_netxen_adapter_52211 num_lro_rxd netxen_adapter 0 52211 NULL
171067 +enable_so_write_enabled_file_bool_fndecl_52213 write_enabled_file_bool fndecl 3 52213 NULL
171068 +enable_so_num_dtv_properties_52216 num dtv_properties 0 52216 NULL
171069 +enable_so_numlower_ovl_entry_52218 numlower ovl_entry 0 52218 NULL
171070 +enable_so_BlockSize_erase_unit_header_t_52231 BlockSize erase_unit_header_t 0 52231 NULL
171071 +enable_so_lpc_sch_get_io_fndecl_52232 lpc_sch_get_io fndecl 5 52232 NULL
171072 +enable_so_nfs3_proc_readlink_fndecl_52235 nfs3_proc_readlink fndecl 4-3 52235 NULL
171073 +enable_so_num_ports_mthca_limits_52246 num_ports mthca_limits 0 52246 NULL
171074 +enable_so_efs_iget_fndecl_52247 efs_iget fndecl 2 52247 NULL
171075 +enable_so_paddr_drm_gem_cma_object_52250 paddr drm_gem_cma_object 0 52250 NULL
171076 +enable_so_snd_hda_get_conn_list_fndecl_52255 snd_hda_get_conn_list fndecl 0 52255 NULL
171077 +enable_so_bufsize_brcmf_console_52266 bufsize brcmf_console 0 52266 NULL
171078 +enable_so_value_len_xattr_52269 value_len xattr 0 52269 NULL nohasharray
171079 +enable_so_pd_idx_stripe_head_52269 pd_idx stripe_head 0 52269 &enable_so_value_len_xattr_52269
171080 +enable_so_hdsp_set_rate_fndecl_52271 hdsp_set_rate fndecl 2 52271 NULL nohasharray
171081 +enable_so_hfsplus_ext_find_block_fndecl_52271 hfsplus_ext_find_block fndecl 0-2 52271 &enable_so_hdsp_set_rate_fndecl_52271 nohasharray
171082 +enable_so_req_depth_pvscsi_adapter_52271 req_depth pvscsi_adapter 0 52271 &enable_so_hfsplus_ext_find_block_fndecl_52271
171083 +enable_so_set_multcount_fndecl_52272 set_multcount fndecl 2 52272 NULL
171084 +enable_so_hlen_raw_frag_vec_52276 hlen raw_frag_vec 0 52276 NULL
171085 +enable_so_num_alt_cx231xx_audio_52283 num_alt cx231xx_audio 0 52283 NULL
171086 +enable_so_length_sigma_fw_chunk_52285 length sigma_fw_chunk 0 52285 NULL
171087 +enable_so_hpfs_alloc_dnode_fndecl_52288 hpfs_alloc_dnode fndecl 2 52288 NULL
171088 +enable_so_read_pointer_osst_buffer_52292 read_pointer osst_buffer 0 52292 NULL
171089 +enable_so_reserve_low_vardecl_setup_c_52293 reserve_low vardecl_setup.c 0 52293 NULL
171090 +enable_so_rts51x_get_max_lun_fndecl_52294 rts51x_get_max_lun fndecl 0 52294 NULL
171091 +enable_so_npage_vwork_52298 npage vwork 0 52298 NULL
171092 +enable_so_slot_legacy_probe_52300 slot legacy_probe 0 52300 NULL
171093 +enable_so_setup_items_for_insert_fndecl_52301 setup_items_for_insert fndecl 7 52301 NULL
171094 +enable_so_origin_size_thin_c_52302 origin_size thin_c 0 52302 NULL
171095 +enable_so_longest_match_fndecl_52304 longest_match fndecl 0 52304 NULL
171096 +enable_so_alloc_page_ext_fndecl_52310 alloc_page_ext fndecl 1 52310 NULL
171097 +enable_so_h_stop_saa7134_tvnorm_52311 h_stop saa7134_tvnorm 0 52311 NULL
171098 +enable_so_rss_table_entry_width_i40e_hw_capabilities_52312 rss_table_entry_width i40e_hw_capabilities 0 52312 NULL
171099 +enable_so_btrfs_delalloc_reserve_space_fndecl_52314 btrfs_delalloc_reserve_space fndecl 0-3-2 52314 NULL
171100 +enable_so_ep_out_kingsun_cb_52317 ep_out kingsun_cb 0 52317 NULL
171101 +enable_so_pglen_nfs4_readlink_52318 pglen nfs4_readlink 0 52318 NULL
171102 +enable_so_cmd_len_c2h_evt_hdr_52322 cmd_len c2h_evt_hdr 0 52322 NULL
171103 +enable_so_rx_filter_dup_filter_read_fndecl_52325 rx_filter_dup_filter_read fndecl 3 52325 NULL
171104 +enable_so_cxgbi_conn_init_pdu_fndecl_52327 cxgbi_conn_init_pdu fndecl 3 52327 NULL
171105 +enable_so_inline_rsize_rpcrdma_create_data_internal_52331 inline_rsize rpcrdma_create_data_internal 0 52331 NULL nohasharray
171106 +enable_so_user_set_fndecl_52331 user_set fndecl 5 52331 &enable_so_inline_rsize_rpcrdma_create_data_internal_52331
171107 +enable_so_luns_per_chnl_nvm_dev_52339 luns_per_chnl nvm_dev 0 52339 NULL
171108 +enable_so_regmap_access_read_file_fndecl_52340 regmap_access_read_file fndecl 3 52340 NULL
171109 +enable_so___do_replace_fndecl_52344 __do_replace fndecl 5 52344 NULL
171110 +enable_so_xpc_connect_fndecl_52346 xpc_connect fndecl 5 52346 NULL
171111 +enable_so_mac_header_sk_buff_52356 mac_header sk_buff 0 52356 NULL
171112 +enable_so_pipe_src_h_intel_crtc_state_52358 pipe_src_h intel_crtc_state 0 52358 NULL nohasharray
171113 +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
171114 +enable_so_rtl_read_byte_fndecl_52358 rtl_read_byte fndecl 0 52358 &enable_so_blk_queue_max_hw_sectors_fndecl_52358
171115 +enable_so_nested_svm_map_fndecl_52359 nested_svm_map fndecl 2 52359 NULL
171116 +enable_so_nr_upid_52360 nr upid 0 52360 NULL
171117 +enable_so_lro_add_common_fndecl_52363 lro_add_common fndecl 4 52363 NULL
171118 +enable_so_r_cpos_ocfs2_refcount_rec_52365 r_cpos ocfs2_refcount_rec 0 52365 NULL nohasharray
171119 +enable_so_create_cq_user_fndecl_52365 create_cq_user fndecl 5 52365 &enable_so_r_cpos_ocfs2_refcount_rec_52365
171120 +enable_so_se_callback_netid_len_nfsd4_setclientid_52366 se_callback_netid_len nfsd4_setclientid 0 52366 NULL
171121 +enable_so_req_depth__MPT_ADAPTER_52375 req_depth _MPT_ADAPTER 0 52375 NULL nohasharray
171122 +enable_so_num_phys_mptsas_portinfo_52375 num_phys mptsas_portinfo 0 52375 &enable_so_req_depth__MPT_ADAPTER_52375
171123 +enable_so_rh_string_fndecl_52376 rh_string fndecl 0-4 52376 NULL nohasharray
171124 +enable_so_nrealreaders_vardecl_rcutorture_c_52376 nrealreaders vardecl_rcutorture.c 0 52376 &enable_so_rh_string_fndecl_52376
171125 +enable_so_bMaxBurst_usb_ss_ep_comp_descriptor_52382 bMaxBurst usb_ss_ep_comp_descriptor 0 52382 NULL
171126 +enable_so_ath6kl_wmi_set_ie_cmd_fndecl_52383 ath6kl_wmi_set_ie_cmd fndecl 6-2 52383 NULL nohasharray
171127 +enable_so_sg_pgoffset_sg_page_iter_52383 sg_pgoffset sg_page_iter 0 52383 &enable_so_ath6kl_wmi_set_ie_cmd_fndecl_52383
171128 +enable_so_error_tbc_exch_mismatch_read_fndecl_52388 error_tbc_exch_mismatch_read fndecl 3 52388 NULL
171129 +enable_so_jffs2_write_dirent_fndecl_52396 jffs2_write_dirent fndecl 5 52396 NULL
171130 +enable_so_u132_hcd_initial_input_recv_fndecl_52397 u132_hcd_initial_input_recv fndecl 4 52397 NULL
171131 +enable_so_srp_map_idb_fndecl_52402 srp_map_idb fndecl 5-0 52402 NULL
171132 +enable_so_length_TAG_TW_SG_Entry_52403 length TAG_TW_SG_Entry 0 52403 NULL
171133 +enable_so_eapol_len_wmi_eapol_rx_event_52408 eapol_len wmi_eapol_rx_event 0 52408 NULL
171134 +enable_so_command_fndecl_52411 command fndecl 0 52411 NULL
171135 +enable_so_wm8904_set_fll_fndecl_52413 wm8904_set_fll fndecl 4-5 52413 NULL nohasharray
171136 +enable_so_type_sctp_chunkhdr_52413 type sctp_chunkhdr 0 52413 &enable_so_wm8904_set_fll_fndecl_52413
171137 +enable_so_drm_fbdev_cma_init_fndecl_52417 drm_fbdev_cma_init fndecl 2-3-4 52417 NULL nohasharray
171138 +enable_so_scsi_mode_select_fndecl_52417 scsi_mode_select fndecl 6 52417 &enable_so_drm_fbdev_cma_init_fndecl_52417 nohasharray
171139 +enable_so_agp_return_size_fndecl_52417 agp_return_size fndecl 0 52417 &enable_so_scsi_mode_select_fndecl_52417
171140 +enable_so_sddr09_read_control_fndecl_52418 sddr09_read_control fndecl 3-5 52418 NULL
171141 +enable_so_offset_scif_window_52420 offset scif_window 0 52420 NULL
171142 +enable_so_group_ocfs2_new_group_input_52421 group ocfs2_new_group_input 0 52421 NULL
171143 +enable_so_move_vma_fndecl_52430 move_vma fndecl 4-5-2-3 52430 NULL
171144 +enable_so_zap_pte_range_fndecl_52434 zap_pte_range fndecl 4-0 52434 NULL
171145 +enable_so_min_scaled_width_bttv_crop_52442 min_scaled_width bttv_crop 0 52442 NULL
171146 +enable_so_alt_offset132_cm_req_msg_52443 alt_offset132 cm_req_msg 0 52443 NULL
171147 +enable_so_dvb_max_pkt_size_isoc_em28xx_52444 dvb_max_pkt_size_isoc em28xx 0 52444 NULL nohasharray
171148 +enable_so_map_nth_dirent_fndecl_52444 map_nth_dirent fndecl 2 52444 &enable_so_dvb_max_pkt_size_isoc_em28xx_52444
171149 +enable_so_read_rsp_size_smb_version_values_52446 read_rsp_size smb_version_values 0 52446 NULL
171150 +enable_so_bulk_out_size_usb_serial_port_52448 bulk_out_size usb_serial_port 0 52448 NULL
171151 +enable_so_wl1251_spi_write_fndecl_52450 wl1251_spi_write fndecl 4 52450 NULL nohasharray
171152 +enable_so_corr_peb_count_ubi_device_52450 corr_peb_count ubi_device 0 52450 &enable_so_wl1251_spi_write_fndecl_52450
171153 +enable_so_end_bus_pci_mmcfg_region_52468 end_bus pci_mmcfg_region 0 52468 NULL
171154 +enable_so_nvi_vf_resources_52470 nvi vf_resources 0 52470 NULL
171155 +enable_so_sz_field_t_52472 sz field_t 0 52472 NULL
171156 +enable_so_security_inode_getsecurity_fndecl_52473 security_inode_getsecurity fndecl 0 52473 NULL
171157 +enable_so_metadata_snap_era_metadata_52475 metadata_snap era_metadata 0 52475 NULL
171158 +enable_so_ppp_hard_header_fndecl_52482 ppp_hard_header fndecl 3 52482 NULL
171159 +enable_so_ib_ucm_alloc_data_fndecl_52486 ib_ucm_alloc_data fndecl 3 52486 NULL
171160 +enable_so_num_clks_qcom_cc_desc_52487 num_clks qcom_cc_desc 0 52487 NULL
171161 +enable_so_rx_buf_size_hip04_priv_52495 rx_buf_size hip04_priv 0 52495 NULL
171162 +enable_so_eqpc_entry_sz_mthca_dev_lim_52498 eqpc_entry_sz mthca_dev_lim 0 52498 NULL
171163 +enable_so_s_clustersize_bits_ocfs2_super_52499 s_clustersize_bits ocfs2_super 0 52499 NULL
171164 +enable_so_tx_tx_data_programmed_read_fndecl_52500 tx_tx_data_programmed_read fndecl 3 52500 NULL
171165 +enable_so_ControllerNumber_DAC960_Controller_52503 ControllerNumber DAC960_Controller 0 52503 NULL nohasharray
171166 +enable_so_ipath_portcnt_ipath_devdata_52503 ipath_portcnt ipath_devdata 0 52503 &enable_so_ControllerNumber_DAC960_Controller_52503
171167 +enable_so_used_ubifs_wbuf_52504 used ubifs_wbuf 0 52504 NULL
171168 +enable_so_xfs_vm_kill_delalloc_range_fndecl_52505 xfs_vm_kill_delalloc_range fndecl 2 52505 NULL
171169 +enable_so_svc_setsockopt_fndecl_52511 svc_setsockopt fndecl 5 52511 NULL
171170 +enable_so_num_sprole_pws_gr_arg_52515 num_sprole_pws gr_arg 0 52515 NULL
171171 +enable_so_size_virtio_gpu_vbuffer_52521 size virtio_gpu_vbuffer 0 52521 NULL
171172 +enable_so_copy_batch_fndecl_52524 copy_batch fndecl 3-4 52524 NULL
171173 +enable_so_mode_data_length_mode_page_header_52525 mode_data_length mode_page_header 0 52525 NULL
171174 +enable_so_refcount_loc_ocfs2_move_extents_context_52526 refcount_loc ocfs2_move_extents_context 0 52526 NULL
171175 +enable_so_vm_cmdline_id_vardecl_virtio_mmio_c_52527 vm_cmdline_id vardecl_virtio_mmio.c 0 52527 NULL
171176 +enable_so_tas5086_register_size_fndecl_52528 tas5086_register_size fndecl 0 52528 NULL
171177 +enable_so_fps_solo_dev_52530 fps solo_dev 0 52530 NULL
171178 +enable_so_selinux_inode_notifysecctx_fndecl_52531 selinux_inode_notifysecctx fndecl 3 52531 NULL
171179 +enable_so_iov_offset_iov_iter_52535 iov_offset iov_iter 0 52535 NULL
171180 +enable_so_rx_buf_sz_hamachi_private_52536 rx_buf_sz hamachi_private 0 52536 NULL
171181 +enable_so_psn_ib_ucm_req_52539 psn ib_ucm_req 0 52539 NULL
171182 +enable_so_queue_pair_size_vmci_transport_52540 queue_pair_size vmci_transport 0 52540 NULL
171183 +enable_so_packet_sendmsg_spkt_fndecl_52542 packet_sendmsg_spkt fndecl 3 52542 NULL
171184 +enable_so_rdb_shift_mthca_qp_table_52547 rdb_shift mthca_qp_table 0 52547 NULL
171185 +enable_so_bfad_iocmd_phy_get_stats_fndecl_52549 bfad_iocmd_phy_get_stats fndecl 0 52549 NULL
171186 +enable_so_dccp_insert_option_fndecl_52554 dccp_insert_option fndecl 4 52554 NULL
171187 +enable_so_ovfx2_i2c_r_fndecl_52555 ovfx2_i2c_r fndecl 0 52555 NULL
171188 +enable_so_write_leb_fndecl_52558 write_leb fndecl 5 52558 NULL
171189 +enable_so_num_mtt_mlx4_profile_52565 num_mtt mlx4_profile 0 52565 NULL
171190 +enable_so_data_size_binder_transaction_data_52567 data_size binder_transaction_data 0 52567 NULL
171191 +enable_so_nents_isert_data_buf_52570 nents isert_data_buf 0 52570 NULL
171192 +enable_so_end_logsuper_52574 end logsuper 0 52574 NULL
171193 +enable_so_amdgpu_ttm_tt_set_userptr_fndecl_52575 amdgpu_ttm_tt_set_userptr fndecl 2 52575 NULL nohasharray
171194 +enable_so_data_length_iscsi_r2t_info_52575 data_length iscsi_r2t_info 0 52575 &enable_so_amdgpu_ttm_tt_set_userptr_fndecl_52575
171195 +enable_so_device_create_groups_vargs_fndecl_52576 device_create_groups_vargs fndecl 3 52576 NULL
171196 +enable_so___mincore_unmapped_range_fndecl_52595 __mincore_unmapped_range fndecl 1 52595 NULL
171197 +enable_so_xfs_shift_file_space_fndecl_52596 xfs_shift_file_space fndecl 2-3 52596 NULL
171198 +enable_so_cached_dev_init_fndecl_52600 cached_dev_init fndecl 2 52600 NULL
171199 +enable_so_length_usbdevfs_iso_packet_desc_52610 length usbdevfs_iso_packet_desc 0 52610 NULL
171200 +enable_so_ondemand_readahead_fndecl_52612 ondemand_readahead fndecl 5 52612 NULL
171201 +enable_so_datalen_tcf_ematch_52613 datalen tcf_ematch 0 52613 NULL
171202 +enable_so_wl1251_spi_read_fndecl_52615 wl1251_spi_read fndecl 4 52615 NULL
171203 +enable_so___logfs_write_je_fndecl_52617 __logfs_write_je fndecl 4 52617 NULL nohasharray
171204 +enable_so_max_sge_ib_device_attr_52617 max_sge ib_device_attr 0 52617 &enable_so___logfs_write_je_fndecl_52617
171205 +enable_so__set_error_resid_fndecl_52623 _set_error_resid fndecl 3 52623 NULL
171206 +enable_so_lo_rw_aio_complete_fndecl_52629 lo_rw_aio_complete fndecl 2 52629 NULL nohasharray
171207 +enable_so_drbd_new_dev_size_fndecl_52629 drbd_new_dev_size fndecl 0-3 52629 &enable_so_lo_rw_aio_complete_fndecl_52629
171208 +enable_so_auok190xfb_write_fndecl_52634 auok190xfb_write fndecl 3 52634 NULL
171209 +enable_so_burst_len_qcaspi_52637 burst_len qcaspi 0 52637 NULL nohasharray
171210 +enable_so_setxattr_fndecl_52637 setxattr fndecl 4 52637 &enable_so_burst_len_qcaspi_52637
171211 +enable_so___do_fault_fndecl_52642 __do_fault fndecl 3 52642 NULL
171212 +enable_so_page_count_drm_device_dma_52645 page_count drm_device_dma 0 52645 NULL
171213 +enable_so_num_txq_per_tx_bnad_52646 num_txq_per_tx bnad 0 52646 NULL
171214 +enable_so_figure_loop_size_fndecl_52648 figure_loop_size fndecl 2 52648 NULL
171215 +enable_so_vni_vxlan_config_52649 vni vxlan_config 0 52649 NULL
171216 +enable_so_bop_insert_nilfs_bmap_operations_52653 bop_insert nilfs_bmap_operations 0 52653 NULL
171217 +enable_so_qp_broker_create_fndecl_52654 qp_broker_create fndecl 5-6 52654 NULL
171218 +enable_so_extra_bytes_sym_ccb_52656 extra_bytes sym_ccb 0 52656 NULL
171219 +enable_so_block_size_ms_boot_attr_info_52659 block_size ms_boot_attr_info 0 52659 NULL
171220 +enable_so_ieee80211_chsw_switch_vifs_fndecl_52661 ieee80211_chsw_switch_vifs fndecl 2 52661 NULL
171221 +enable_so_ec_i2c_xfer_fndecl_52662 ec_i2c_xfer fndecl 3 52662 NULL
171222 +enable_so_snd_hdac_get_sub_nodes_fndecl_52668 snd_hdac_get_sub_nodes fndecl 0 52668 NULL
171223 +enable_so_vt_ast_vbios_enhtable_52669 vt ast_vbios_enhtable 0 52669 NULL nohasharray
171224 +enable_so_command_file_read_fndecl_52669 command_file_read fndecl 3 52669 &enable_so_vt_ast_vbios_enhtable_52669
171225 +enable_so_vmap_batch_fndecl_52675 vmap_batch fndecl 2-3 52675 NULL
171226 +enable_so_parse_command_fndecl_52676 parse_command fndecl 2 52676 NULL
171227 +enable_so_pcm512x_sck_max_fndecl_52677 pcm512x_sck_max fndecl 0 52677 NULL nohasharray
171228 +enable_so_SYSC_setxattr_fndecl_52677 SYSC_setxattr fndecl 4 52677 &enable_so_pcm512x_sck_max_fndecl_52677
171229 +enable_so_drm_mode_create_rotation_property_fndecl_52681 drm_mode_create_rotation_property fndecl 2 52681 NULL
171230 +enable_so_lvb_iclusters_ocfs2_meta_lvb_52684 lvb_iclusters ocfs2_meta_lvb 0 52684 NULL
171231 +enable_so_num_snd_urbs_vardecl_usbatm_c_52685 num_snd_urbs vardecl_usbatm.c 0 52685 NULL
171232 +enable_so_btrfs_double_extent_unlock_fndecl_52687 btrfs_double_extent_unlock fndecl 2-4-5 52687 NULL
171233 +enable_so_fpHeight_nvidia_par_52691 fpHeight nvidia_par 0 52691 NULL nohasharray
171234 +enable_so_urb_done_max3421_hcd_52691 urb_done max3421_hcd 0 52691 &enable_so_fpHeight_nvidia_par_52691
171235 +enable_so_max_data_link_payload_nfc_hci_dev_52699 max_data_link_payload nfc_hci_dev 0 52699 NULL
171236 +enable_so_count_vfio_pci_hot_reset_52708 count vfio_pci_hot_reset 0 52708 NULL
171237 +enable_so_gen_ie_buf_len_mwifiex_private_52710 gen_ie_buf_len mwifiex_private 0 52710 NULL
171238 +enable_so_s_je_fill_logfs_super_52713 s_je_fill logfs_super 0 52713 NULL
171239 +enable_so_videomemorysize_vardecl_vfb_c_52716 videomemorysize vardecl_vfb.c 0 52716 NULL nohasharray
171240 +enable_so_wptr_old_radeon_ring_52716 wptr_old radeon_ring 0 52716 &enable_so_videomemorysize_vardecl_vfb_c_52716
171241 +enable_so_cifs_min_small_vardecl_52732 cifs_min_small vardecl 0 52732 NULL
171242 +enable_so_hmac_id_sctp_hmac_52747 hmac_id sctp_hmac 0 52747 NULL
171243 +enable_so_vmw_framebuffer_dmabuf_dirty_fndecl_52750 vmw_framebuffer_dmabuf_dirty fndecl 6 52750 NULL
171244 +enable_so_dd_fcrport_size_fc_function_template_52753 dd_fcrport_size fc_function_template 0 52753 NULL
171245 +enable_so_SyS_mbind_fndecl_52757 SyS_mbind fndecl 5 52757 NULL
171246 +enable_so_num_btns_cyttsp4_sysinfo_ofs_52758 num_btns cyttsp4_sysinfo_ofs 0 52758 NULL
171247 +enable_so_usbhs_pkt_push_fndecl_52759 usbhs_pkt_push fndecl 5 52759 NULL nohasharray
171248 +enable_so_dr_blkno_ocfs2_dx_root_block_52759 dr_blkno ocfs2_dx_root_block 0 52759 &enable_so_usbhs_pkt_push_fndecl_52759
171249 +enable_so_playback_frlog_rme96_52763 playback_frlog rme96 0 52763 NULL
171250 +enable_so_height_drm_radeon_texture_52764 height drm_radeon_texture 0 52764 NULL
171251 +enable_so_wIDIbytesPerSector_ms_bootblock_idi_52770 wIDIbytesPerSector ms_bootblock_idi 0 52770 NULL
171252 +enable_so_size_drm_i915_gem_create_52771 size drm_i915_gem_create 0 52771 NULL
171253 +enable_so_maxBuf_TCP_Server_Info_52774 maxBuf TCP_Server_Info 0 52774 NULL nohasharray
171254 +enable_so_regmap_map_read_file_fndecl_52774 regmap_map_read_file fndecl 3 52774 &enable_so_maxBuf_TCP_Server_Info_52774
171255 +enable_so_SYSC_get_mempolicy_fndecl_52787 SYSC_get_mempolicy fndecl 3 52787 NULL
171256 +enable_so_avc_ca_pmt_fndecl_52789 avc_ca_pmt fndecl 3 52789 NULL
171257 +enable_so_qxl_allocate_chunk_fndecl_52791 qxl_allocate_chunk fndecl 4 52791 NULL nohasharray
171258 +enable_so_tcp_mss_split_point_fndecl_52791 tcp_mss_split_point fndecl 0 52791 &enable_so_qxl_allocate_chunk_fndecl_52791
171259 +enable_so_batadv_get_vid_fndecl_52792 batadv_get_vid fndecl 0-2 52792 NULL
171260 +enable_so___wa_seg_calculate_isoc_frame_count_fndecl_52795 __wa_seg_calculate_isoc_frame_count fndecl 0 52795 NULL
171261 +enable_so_buffer_size_vardecl_ethoc_c_52796 buffer_size vardecl_ethoc.c 0 52796 NULL
171262 +enable_so_payload_len_bfa_bsg_data_52800 payload_len bfa_bsg_data 0 52800 NULL
171263 +enable_so_parport_ieee1284_epp_write_data_fndecl_52806 parport_ieee1284_epp_write_data fndecl 0 52806 NULL
171264 +enable_so_ule_sndu_type_dvb_net_priv_52811 ule_sndu_type dvb_net_priv 0 52811 NULL
171265 +enable_so_mmc_test_map_sg_fndecl_52812 mmc_test_map_sg fndecl 6-5-8-2 52812 NULL
171266 +enable_so_brcmf_sdiod_recv_chain_fndecl_52822 brcmf_sdiod_recv_chain fndecl 3 52822 NULL
171267 +enable_so_wiphy_new_nm_fndecl_52833 wiphy_new_nm fndecl 2 52833 NULL
171268 +enable_so_xdr_encode_array2_fndecl_52834 xdr_encode_array2 fndecl 0-2 52834 NULL
171269 +enable_so_ocfs2_control_cfu_fndecl_52837 ocfs2_control_cfu fndecl 2 52837 NULL
171270 +enable_so_xfs_read_agf_fndecl_52838 xfs_read_agf fndecl 3 52838 NULL nohasharray
171271 +enable_so_ocfs2_duplicate_clusters_by_jbd_fndecl_52838 ocfs2_duplicate_clusters_by_jbd fndecl 4-5 52838 &enable_so_xfs_read_agf_fndecl_52838
171272 +enable_so_xfs_cross_rename_fndecl_52839 xfs_cross_rename fndecl 10 52839 NULL
171273 +enable_so_ext2_fsync_fndecl_52850 ext2_fsync fndecl 2-3 52850 NULL
171274 +enable_so_netxen_validate_ringparam_fndecl_52863 netxen_validate_ringparam fndecl 0 52863 NULL
171275 +enable_so_wqe_shift_mlx5_ib_wq_52867 wqe_shift mlx5_ib_wq 0 52867 NULL nohasharray
171276 +enable_so_mlx4_load_one_fndecl_52867 mlx4_load_one fndecl 3 52867 &enable_so_wqe_shift_mlx5_ib_wq_52867
171277 +enable_so_video_ram_radeonfb_info_52868 video_ram radeonfb_info 0 52868 NULL
171278 +enable_so_ddata_ofsh_cyttsp4_sysinfo_data_52870 ddata_ofsh cyttsp4_sysinfo_data 0 52870 NULL
171279 +enable_so_scsi_debug_sector_size_vardecl_scsi_debug_c_52879 scsi_debug_sector_size vardecl_scsi_debug.c 0 52879 NULL
171280 +enable_so_offset_pipe_buffer_52880 offset pipe_buffer 0 52880 NULL
171281 +enable_so_address_length_acpi_resource_memory24_52885 address_length acpi_resource_memory24 0 52885 NULL nohasharray
171282 +enable_so_dccp_setsockopt_cscov_fndecl_52885 dccp_setsockopt_cscov fndecl 2-0 52885 &enable_so_address_length_acpi_resource_memory24_52885
171283 +enable_so_nvram_len_nvram_parser_52887 nvram_len nvram_parser 0 52887 NULL
171284 +enable_so_buffer_size_vardecl_ir_usb_c_52893 buffer_size vardecl_ir-usb.c 0 52893 NULL
171285 +enable_so_ino_jffs2_full_dirent_52898 ino jffs2_full_dirent 0 52898 NULL nohasharray
171286 +enable_so_max_pde_used_amdgpu_vm_52898 max_pde_used amdgpu_vm 0 52898 &enable_so_ino_jffs2_full_dirent_52898
171287 +enable_so_data_len_hermes_rx_descriptor_52909 data_len hermes_rx_descriptor 0 52909 NULL
171288 +enable_so_rx_decrypt_key_not_found_read_fndecl_52911 rx_decrypt_key_not_found_read fndecl 3 52911 NULL
171289 +enable_so_buf_width_s5p_mfc_ctx_52912 buf_width s5p_mfc_ctx 0 52912 NULL
171290 +enable_so_dir_seek_data_fndecl_52916 dir_seek_data fndecl 2-0 52916 NULL nohasharray
171291 +enable_so_of_alias_add_fndecl_52916 of_alias_add fndecl 3 52916 &enable_so_dir_seek_data_fndecl_52916 nohasharray
171292 +enable_so_cqc_entry_sz_mlx4_dev_cap_52916 cqc_entry_sz mlx4_dev_cap 0 52916 &enable_so_of_alias_add_fndecl_52916
171293 +enable_so_num_tx_queues_e1000_adapter_52922 num_tx_queues e1000_adapter 0 52922 NULL
171294 +enable_so_smk_read_logging_fndecl_52927 smk_read_logging fndecl 3 52927 NULL
171295 +enable_so_swd_swregs_state_52928 swd swregs_state 0 52928 NULL
171296 +enable_so_max_write_shift_ubifs_info_52936 max_write_shift ubifs_info 0 52936 NULL nohasharray
171297 +enable_so_count_i40e_ring_52936 count i40e_ring 0 52936 &enable_so_max_write_shift_ubifs_info_52936
171298 +enable_so_si2165_write_fndecl_52941 si2165_write fndecl 4 52941 NULL
171299 +enable_so_rules_count_canid_match_52943 rules_count canid_match 0 52943 NULL nohasharray
171300 +enable_so_num_rx_ethoc_52943 num_rx ethoc 0 52943 &enable_so_rules_count_canid_match_52943
171301 +enable_so_ext2_xattr_user_set_fndecl_52946 ext2_xattr_user_set fndecl 5 52946 NULL
171302 +enable_so_pipe_urb_52947 pipe urb 0 52947 NULL
171303 +enable_so_minor_drbd_genlmsghdr_52949 minor drbd_genlmsghdr 0 52949 NULL
171304 +enable_so_position_jfs_dirent_52952 position jfs_dirent 0 52952 NULL
171305 +enable_so_trigger_level_eg20t_port_52953 trigger_level eg20t_port 0 52953 NULL
171306 +enable_so_i2c_read_demod_bytes_fndecl_52958 i2c_read_demod_bytes fndecl 4 52958 NULL
171307 +enable_so_bnx2fc_get_paged_crc_eof_fndecl_52960 bnx2fc_get_paged_crc_eof fndecl 2 52960 NULL
171308 +enable_so_fw_size_pvr2_hdw_52961 fw_size pvr2_hdw 0 52961 NULL
171309 +enable_so_rsp_size_srpt_rdma_ch_52963 rsp_size srpt_rdma_ch 0 52963 NULL
171310 +enable_so_musb_h_ep0_continue_fndecl_52966 musb_h_ep0_continue fndecl 2 52966 NULL
171311 +enable_so_sys_setxattr_fndecl_52971 sys_setxattr fndecl 4 52971 NULL
171312 +enable_so_dma_start_lo_rx_buf_desc_52972 dma_start_lo rx_buf_desc 0 52972 NULL
171313 +enable_so_dataOutSize_mpt_ioctl_command_52974 dataOutSize mpt_ioctl_command 0 52974 NULL
171314 +enable_so_dvb_net_sec_fndecl_52975 dvb_net_sec fndecl 3 52975 NULL nohasharray
171315 +enable_so_xdr_truncate_encode_fndecl_52975 xdr_truncate_encode fndecl 2 52975 &enable_so_dvb_net_sec_fndecl_52975 nohasharray
171316 +enable_so_scif_readfrom_fndecl_52975 scif_readfrom fndecl 2-4-3 52975 &enable_so_xdr_truncate_encode_fndecl_52975
171317 +enable_so_scatter_n_efx_rx_queue_52988 scatter_n efx_rx_queue 0 52988 NULL
171318 +enable_so_xfs_dir2_block_to_sf_fndecl_52991 xfs_dir2_block_to_sf fndecl 3 52991 NULL
171319 +enable_so_max_rx_agg_size_iwl_cfg_52997 max_rx_agg_size iwl_cfg 0 52997 NULL
171320 +enable_so_hidp_output_report_fndecl_53002 hidp_output_report fndecl 3 53002 NULL
171321 +enable_so_actual_length_urb_53003 actual_length urb 0 53003 NULL nohasharray
171322 +enable_so_rx_nr_pages_bnxt_53003 rx_nr_pages bnxt 0 53003 &enable_so_actual_length_urb_53003
171323 +enable_so___shadow_block_fndecl_53011 __shadow_block fndecl 2 53011 NULL nohasharray
171324 +enable_so_max_mlx4_srq_53011 max mlx4_srq 0 53011 &enable_so___shadow_block_fndecl_53011
171325 +enable_so_gfs2_direct_IO_fndecl_53014 gfs2_direct_IO fndecl 3 53014 NULL
171326 +enable_so_BC_Read_Reg_IsdnCardState_53020 BC_Read_Reg IsdnCardState 0 53020 NULL
171327 +enable_so_bytesused_ivtv_buffer_53021 bytesused ivtv_buffer 0 53021 NULL
171328 +enable_so_tty_insert_flip_string_fixed_flag_fndecl_53031 tty_insert_flip_string_fixed_flag fndecl 4-0 53031 NULL
171329 +enable_so_xfs_filestream_pick_ag_fndecl_53040 xfs_filestream_pick_ag fndecl 2 53040 NULL nohasharray
171330 +enable_so_nports0_adapter_info_53040 nports0 adapter_info 0 53040 &enable_so_xfs_filestream_pick_ag_fndecl_53040
171331 +enable_so_xmit_fifo_size_serial_struct_53048 xmit_fifo_size serial_struct 0 53048 NULL
171332 +enable_so_fcoe_alloc_paged_crc_eof_fndecl_53049 fcoe_alloc_paged_crc_eof fndecl 2 53049 NULL nohasharray
171333 +enable_so_sys_getxattr_fndecl_53049 sys_getxattr fndecl 4 53049 &enable_so_fcoe_alloc_paged_crc_eof_fndecl_53049
171334 +enable_so_rqsize_hwif_s_53050 rqsize hwif_s 0 53050 NULL
171335 +enable_so_rx_pad_len_hif_device_usb_53051 rx_pad_len hif_device_usb 0 53051 NULL
171336 +enable_so_dm_bm_write_lock_zero_fndecl_53053 dm_bm_write_lock_zero fndecl 2 53053 NULL nohasharray
171337 +enable_so_acpi_os_allocate_zeroed_fndecl_53053 acpi_os_allocate_zeroed fndecl 1 53053 &enable_so_dm_bm_write_lock_zero_fndecl_53053
171338 +enable_so_cols_cros_ec_keyb_53054 cols cros_ec_keyb 0 53054 NULL
171339 +enable_so_m_len_ext4_map_blocks_53056 m_len ext4_map_blocks 0 53056 NULL
171340 +enable_so_s_inode_size_nilfs_super_block_53064 s_inode_size nilfs_super_block 0 53064 NULL
171341 +enable_so_get_pdev_same_bus_fndecl_53069 get_pdev_same_bus fndecl 2 53069 NULL
171342 +enable_so_kvm_vcpu_write_guest_page_fndecl_53070 kvm_vcpu_write_guest_page fndecl 2-5 53070 NULL
171343 +enable_so_rcvegrcnt_qib_chip_specific_53071 rcvegrcnt qib_chip_specific 0 53071 NULL
171344 +enable_so_fru_alloc_fndecl_53073 fru_alloc fndecl 1 53073 NULL
171345 +enable_so_get_rx_frame_len_sxgbe_desc_ops_53074 get_rx_frame_len sxgbe_desc_ops 0 53074 NULL
171346 +enable_so_wMTU_usb_cdc_mbim_extended_desc_53075 wMTU usb_cdc_mbim_extended_desc 0 53075 NULL nohasharray
171347 +enable_so_tty_audit_log_fndecl_53075 tty_audit_log fndecl 5 53075 &enable_so_wMTU_usb_cdc_mbim_extended_desc_53075
171348 +enable_so_params1_mlx4_qp_context_53076 params1 mlx4_qp_context 0 53076 NULL
171349 +enable_so_vmw_shader_alloc_fndecl_53077 vmw_shader_alloc fndecl 3 53077 NULL
171350 +enable_so_tcp_established_options_fndecl_53081 tcp_established_options fndecl 0 53081 NULL nohasharray
171351 +enable_so_map_swap_entry_fndecl_53081 map_swap_entry fndecl 0 53081 &enable_so_tcp_established_options_fndecl_53081 nohasharray
171352 +enable_so_request_len_sg_io_v4_53081 request_len sg_io_v4 0 53081 &enable_so_map_swap_entry_fndecl_53081 nohasharray
171353 +enable_so_ravb_hwtstamp_get_fndecl_53081 ravb_hwtstamp_get fndecl 0 53081 &enable_so_request_len_sg_io_v4_53081
171354 +enable_so___hci_cmd_sync_ev_fndecl_53090 __hci_cmd_sync_ev fndecl 3 53090 NULL nohasharray
171355 +enable_so_kmem_realloc_fndecl_53090 kmem_realloc fndecl 2 53090 &enable_so___hci_cmd_sync_ev_fndecl_53090
171356 +enable_so_ext4_itable_unused_set_fndecl_53091 ext4_itable_unused_set fndecl 3 53091 NULL
171357 +enable_so_ntfs_dir_fsync_fndecl_53093 ntfs_dir_fsync fndecl 2-3 53093 NULL
171358 +enable_so_length_tpm_output_header_53094 length tpm_output_header 0 53094 NULL
171359 +enable_so_h_vlan_TCI_vlan_ethhdr_53095 h_vlan_TCI vlan_ethhdr 0 53095 NULL
171360 +enable_so_packet_create_fndecl_53098 packet_create fndecl 3 53098 NULL nohasharray
171361 +enable_so_size_fuse_attr_53098 size fuse_attr 0 53098 &enable_so_packet_create_fndecl_53098
171362 +enable_so_s_blocksize_minix3_super_block_53099 s_blocksize minix3_super_block 0 53099 NULL
171363 +enable_so_brcmf_fw_nvram_strip_fndecl_53102 brcmf_fw_nvram_strip fndecl 2 53102 NULL
171364 +enable_so_prepare_header80_fndecl_53108 prepare_header80 fndecl 3-0 53108 NULL nohasharray
171365 +enable_so_rx_nr_rings_bnxt_53108 rx_nr_rings bnxt 0 53108 &enable_so_prepare_header80_fndecl_53108
171366 +enable_so_count_vbi_info_53110 count vbi_info 0 53110 NULL
171367 +enable_so_fb_max_width_vmw_private_53114 fb_max_width vmw_private 0 53114 NULL
171368 +enable_so_reserve_region_with_split_fndecl_53115 reserve_region_with_split fndecl 3-2 53115 NULL
171369 +enable_so_logi_dj_recv_forward_hidpp_fndecl_53117 logi_dj_recv_forward_hidpp fndecl 3 53117 NULL
171370 +enable_so_bfad_iocmd_vf_get_stats_fndecl_53119 bfad_iocmd_vf_get_stats fndecl 0 53119 NULL
171371 +enable_so_xz_dec_test_write_fndecl_53124 xz_dec_test_write fndecl 3 53124 NULL
171372 +enable_so_real_vram_size_radeon_mc_53132 real_vram_size radeon_mc 0 53132 NULL
171373 +enable_so_data_dma_td_53137 data_dma td 0 53137 NULL
171374 +enable_so_snd_timer_user_params_fndecl_53139 snd_timer_user_params fndecl 0 53139 NULL
171375 +enable_so_log_rq_size_mlx5e_params_53140 log_rq_size mlx5e_params 0 53140 NULL
171376 +enable_so_mmc_spi_readbytes_fndecl_53146 mmc_spi_readbytes fndecl 2-0 53146 NULL
171377 +enable_so_zlib_tr_stored_block_fndecl_53147 zlib_tr_stored_block fndecl 3 53147 NULL
171378 +enable_so_bdev_writeseg_fndecl_53148 bdev_writeseg fndecl 2-3 53148 NULL nohasharray
171379 +enable_so_vmalloc_32_user_fndecl_53148 vmalloc_32_user fndecl 1 53148 &enable_so_bdev_writeseg_fndecl_53148
171380 +enable_so_private_data_len_ib_cm_sidr_req_param_53150 private_data_len ib_cm_sidr_req_param 0 53150 NULL
171381 +enable_so_xoffset_fb_var_screeninfo_53153 xoffset fb_var_screeninfo 0 53153 NULL
171382 +enable_so_fat_cont_expand_fndecl_53155 fat_cont_expand fndecl 2 53155 NULL
171383 +enable_so_sb_blocksize_xfs_sb_53160 sb_blocksize xfs_sb 0 53160 NULL
171384 +enable_so_buf_size_mwifiex_event_scan_result_53175 buf_size mwifiex_event_scan_result 0 53175 NULL
171385 +enable_so_tegra_spi_start_tx_dma_fndecl_53177 tegra_spi_start_tx_dma fndecl 0-2 53177 NULL
171386 +enable_so_offset_page_frag_53180 offset page_frag 0 53180 NULL
171387 +enable_so_rx_tpa_start_cmp_metadata_rx_tpa_start_cmp_ext_53181 rx_tpa_start_cmp_metadata rx_tpa_start_cmp_ext 0 53181 NULL
171388 +enable_so_tpm_devt_vardecl_53182 tpm_devt vardecl 0 53182 NULL nohasharray
171389 +enable_so_batadv_tt_global_client_is_roaming_fndecl_53182 batadv_tt_global_client_is_roaming fndecl 3 53182 &enable_so_tpm_devt_vardecl_53182
171390 +enable_so_PID_frhdr_53185 PID frhdr 0 53185 NULL nohasharray
171391 +enable_so_xhci_alloc_streams_fndecl_53185 xhci_alloc_streams fndecl 5 53185 &enable_so_PID_frhdr_53185
171392 +enable_so_rate_min_snd_soc_pcm_stream_53186 rate_min snd_soc_pcm_stream 0 53186 NULL
171393 +enable_so_len_nxtfrm_brcmf_sdio_hdrinfo_53193 len_nxtfrm brcmf_sdio_hdrinfo 0 53193 NULL
171394 +enable_so_mpage_process_page_bufs_fndecl_53197 mpage_process_page_bufs fndecl 4 53197 NULL
171395 +enable_so_minor_start_tty_driver_53214 minor_start tty_driver 0 53214 NULL
171396 +enable_so_write_iter_file_operations_53218 write_iter file_operations 0 53218 NULL
171397 +enable_so_SYSC_mbind_fndecl_53221 SYSC_mbind fndecl 5 53221 NULL
171398 +enable_so_udf_block_map_fndecl_53224 udf_block_map fndecl 0 53224 NULL nohasharray
171399 +enable_so_aio_run_iocb_fndecl_53224 aio_run_iocb fndecl 4 53224 &enable_so_udf_block_map_fndecl_53224
171400 +enable_so_blksize_p_block_req_53230 blksize p_block_req 0 53230 NULL nohasharray
171401 +enable_so_meta_slots_used_xenvif_rx_cb_53230 meta_slots_used xenvif_rx_cb 0 53230 &enable_so_blksize_p_block_req_53230
171402 +enable_so_bnx2x_sriov_configure_fndecl_53235 bnx2x_sriov_configure fndecl 2 53235 NULL nohasharray
171403 +enable_so_debugfs_reg_len_regmap_53235 debugfs_reg_len regmap 0 53235 &enable_so_bnx2x_sriov_configure_fndecl_53235
171404 +enable_so_mlx4_get_mgm_entry_size_fndecl_53236 mlx4_get_mgm_entry_size fndecl 0 53236 NULL
171405 +enable_so_svcxdr_init_encode_from_buffer_fndecl_53239 svcxdr_init_encode_from_buffer fndecl 4 53239 NULL nohasharray
171406 +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
171407 +enable_so_kvm_read_guest_page_mmu_fndecl_53240 kvm_read_guest_page_mmu fndecl 6 53240 NULL
171408 +enable_so_sys_sync_file_range2_fndecl_53247 sys_sync_file_range2 fndecl 3-4 53247 NULL
171409 +enable_so_vga_arb_write_fndecl_53251 vga_arb_write fndecl 3 53251 NULL
171410 +enable_so_xpc_nasid_mask_nlongs_vardecl_53252 xpc_nasid_mask_nlongs vardecl 0 53252 NULL
171411 +enable_so_simple_xattr_alloc_fndecl_53253 simple_xattr_alloc fndecl 2 53253 NULL
171412 +enable_so_rawv6_geticmpfilter_fndecl_53256 rawv6_geticmpfilter fndecl 0 53256 NULL
171413 +enable_so_readpos_ivtv_buffer_53258 readpos ivtv_buffer 0 53258 NULL
171414 +enable_so_qxl_bo_create_fndecl_53261 qxl_bo_create fndecl 2 53261 NULL nohasharray
171415 +enable_so_num_cq_mlx4_profile_53261 num_cq mlx4_profile 0 53261 &enable_so_qxl_bo_create_fndecl_53261
171416 +enable_so_rx_enable_fndecl_53262 rx_enable fndecl 2 53262 NULL
171417 +enable_so_add_new_ctl_fndecl_53263 add_new_ctl fndecl 8 53263 NULL
171418 +enable_so_asl_urb_dequeue_fndecl_53268 asl_urb_dequeue fndecl 3 53268 NULL
171419 +enable_so_update_dind_extent_range_fndecl_53271 update_dind_extent_range fndecl 3 53271 NULL
171420 +enable_so_length_pppoe_hdr_53272 length pppoe_hdr 0 53272 NULL
171421 +enable_so_wp_huge_pmd_fndecl_53275 wp_huge_pmd fndecl 3 53275 NULL
171422 +enable_so_rx_pkt_n_frags_efx_channel_53276 rx_pkt_n_frags efx_channel 0 53276 NULL
171423 +enable_so_vb2_dc_attach_dmabuf_fndecl_53278 vb2_dc_attach_dmabuf fndecl 3 53278 NULL nohasharray
171424 +enable_so_nr_cmds_ctlr_info_53278 nr_cmds ctlr_info 0 53278 &enable_so_vb2_dc_attach_dmabuf_fndecl_53278
171425 +enable_so_enc_dst_buf_size_s5p_mfc_ctx_53279 enc_dst_buf_size s5p_mfc_ctx 0 53279 NULL
171426 +enable_so_maxreqs_nfsd4_channel_attrs_53285 maxreqs nfsd4_channel_attrs 0 53285 NULL
171427 +enable_so_alloc_vm_area_fndecl_53286 alloc_vm_area fndecl 1 53286 NULL
171428 +enable_so_b1_alloc_card_fndecl_53288 b1_alloc_card fndecl 1 53288 NULL
171429 +enable_so_alignment_acpi_resource_memory32_53289 alignment acpi_resource_memory32 0 53289 NULL
171430 +enable_so_compat_ptrace_request_fndecl_53296 compat_ptrace_request fndecl 3 53296 NULL
171431 +enable_so_vmalloc_exec_fndecl_53303 vmalloc_exec fndecl 1 53303 NULL
171432 +enable_so_fuse_ioctl_common_fndecl_53305 fuse_ioctl_common fndecl 2 53305 NULL
171433 +enable_so_bfad_iocmd_qos_get_vc_attr_fndecl_53307 bfad_iocmd_qos_get_vc_attr fndecl 0 53307 NULL nohasharray
171434 +enable_so_dma_size_cx23885_audio_dev_53307 dma_size cx23885_audio_dev 0 53307 &enable_so_bfad_iocmd_qos_get_vc_attr_fndecl_53307 nohasharray
171435 +enable_so_gtt_start_radeon_mc_53307 gtt_start radeon_mc 0 53307 &enable_so_dma_size_cx23885_audio_dev_53307
171436 +enable_so_isoc_in_usbatm_driver_53310 isoc_in usbatm_driver 0 53310 NULL nohasharray
171437 +enable_so___gfs2_free_blocks_fndecl_53310 __gfs2_free_blocks fndecl 2 53310 &enable_so_isoc_in_usbatm_driver_53310
171438 +enable_so___sync_dirty_buffer_fndecl_53315 __sync_dirty_buffer fndecl 0 53315 NULL
171439 +enable_so_nfsd4_block_get_device_info_simple_fndecl_53320 nfsd4_block_get_device_info_simple fndecl 0 53320 NULL
171440 +enable_so_sys_send_fndecl_53330 sys_send fndecl 3 53330 NULL
171441 +enable_so___drm_gem_cma_create_fndecl_53334 __drm_gem_cma_create fndecl 2 53334 NULL
171442 +enable_so_s_inode_readahead_blks_ext4_sb_info_53337 s_inode_readahead_blks ext4_sb_info 0 53337 NULL
171443 +enable_so_snd_korg1212_copy_from_fndecl_53338 snd_korg1212_copy_from fndecl 6 53338 NULL
171444 +enable_so_v9fs_xattr_set_fndecl_53342 v9fs_xattr_set fndecl 4 53342 NULL
171445 +enable_so_SYSC_sched_getaffinity_fndecl_53347 SYSC_sched_getaffinity fndecl 2 53347 NULL
171446 +enable_so_ioc_len_libcfs_ioctl_hdr_53352 ioc_len libcfs_ioctl_hdr 0 53352 NULL
171447 +enable_so_ali1563_smba_vardecl_i2c_ali1563_c_53362 ali1563_smba vardecl_i2c-ali1563.c 0 53362 NULL
171448 +enable_so___xdr_inline_decode_fndecl_53363 __xdr_inline_decode fndecl 2 53363 NULL
171449 +enable_so_ramoops_init_przs_fndecl_53364 ramoops_init_przs fndecl 4 53364 NULL
171450 +enable_so_rsize_hid_device_53365 rsize hid_device 0 53365 NULL
171451 +enable_so_ubiblock_read_fndecl_53366 ubiblock_read fndecl 0 53366 NULL
171452 +enable_so_xattr_len_ceph_mds_reply_info_in_53369 xattr_len ceph_mds_reply_info_in 0 53369 NULL
171453 +enable_so_CIFSMaxBufSize_vardecl_53372 CIFSMaxBufSize vardecl 0 53372 NULL
171454 +enable_so_xdr_inline_pages_fndecl_53377 xdr_inline_pages fndecl 5-4-2 53377 NULL nohasharray
171455 +enable_so_SYSC_getxattr_fndecl_53377 SYSC_getxattr fndecl 4 53377 &enable_so_xdr_inline_pages_fndecl_53377
171456 +enable_so_viafb_iga1_odev_proc_write_fndecl_53378 viafb_iga1_odev_proc_write fndecl 3 53378 NULL
171457 +enable_so_dummy_urb_dequeue_fndecl_53380 dummy_urb_dequeue fndecl 3 53380 NULL
171458 +enable_so_vmsplice_to_user_fndecl_53382 vmsplice_to_user fndecl 3 53382 NULL nohasharray
171459 +enable_so_rproc_recovery_read_fndecl_53382 rproc_recovery_read fndecl 3 53382 &enable_so_vmsplice_to_user_fndecl_53382
171460 +enable_so_scrub_stripe_fndecl_53387 scrub_stripe fndecl 5 53387 NULL
171461 +enable_so_isd200_action_fndecl_53390 isd200_action fndecl 4 53390 NULL
171462 +enable_so_command_setformat_fndecl_53392 command_setformat fndecl 0 53392 NULL
171463 +enable_so_nfqnl_mangle_fndecl_53393 nfqnl_mangle fndecl 2-4 53393 NULL
171464 +enable_so_wil_agg_size_fndecl_53398 wil_agg_size fndecl 0-2 53398 NULL
171465 +enable_so_irda_recvmsg_stream_fndecl_53403 irda_recvmsg_stream fndecl 3 53403 NULL
171466 +enable_so_num_entries_s2io_nic_53404 num_entries s2io_nic 0 53404 NULL
171467 +enable_so_len_nft_cmp_fast_expr_53407 len nft_cmp_fast_expr 0 53407 NULL
171468 +enable_so_dib9000_firmware_download_fndecl_53415 dib9000_firmware_download fndecl 5 53415 NULL nohasharray
171469 +enable_so_cfs_hash_buckets_realloc_fndecl_53415 cfs_hash_buckets_realloc fndecl 4 53415 &enable_so_dib9000_firmware_download_fndecl_53415
171470 +enable_so_vlan_dev_set_egress_priority_fndecl_53418 vlan_dev_set_egress_priority fndecl 3 53418 NULL nohasharray
171471 +enable_so_rxHeader3_edgeport_serial_53418 rxHeader3 edgeport_serial 0 53418 &enable_so_vlan_dev_set_egress_priority_fndecl_53418
171472 +enable_so_expand_stack_fndecl_53426 expand_stack fndecl 2 53426 NULL nohasharray
171473 +enable_so_nbits_nvmem_cell_info_53426 nbits nvmem_cell_info 0 53426 &enable_so_expand_stack_fndecl_53426
171474 +enable_so_compat_sys_mbind_fndecl_53427 compat_sys_mbind fndecl 2-1-5 53427 NULL nohasharray
171475 +enable_so_dn_mk_ack_header_fndecl_53427 dn_mk_ack_header fndecl 4 53427 &enable_so_compat_sys_mbind_fndecl_53427 nohasharray
171476 +enable_so_mq_maxmsg_mq_attr_53427 mq_maxmsg mq_attr 0 53427 &enable_so_dn_mk_ack_header_fndecl_53427
171477 +enable_so_len_type_frame_head_53438 len type_frame_head 0 53438 NULL nohasharray
171478 +enable_so_chipsize_nand_chip_53438 chipsize nand_chip 0 53438 &enable_so_len_type_frame_head_53438
171479 +enable_so_cfg80211_rx_mlme_mgmt_fndecl_53441 cfg80211_rx_mlme_mgmt fndecl 3 53441 NULL
171480 +enable_so_ad7879_spi_xfer_fndecl_53444 ad7879_spi_xfer fndecl 3 53444 NULL
171481 +enable_so_first_offset_pciserial_board_53452 first_offset pciserial_board 0 53452 NULL
171482 +enable_so_nouveau_cli_create_fndecl_53462 nouveau_cli_create fndecl 3 53462 NULL
171483 +enable_so_c_blkno_ocfs2_chain_rec_53466 c_blkno ocfs2_chain_rec 0 53466 NULL
171484 +enable_so_jbd2_journal_init_revoke_table_fndecl_53475 jbd2_journal_init_revoke_table fndecl 1 53475 NULL
171485 +enable_so_isku_sysfs_read_key_mask_fndecl_53476 isku_sysfs_read_key_mask fndecl 6 53476 NULL
171486 +enable_so_new_chunk_sectors_mddev_53479 new_chunk_sectors mddev 0 53479 NULL
171487 +enable_so_ext2_nfs_get_inode_fndecl_53480 ext2_nfs_get_inode fndecl 2 53480 NULL
171488 +enable_so_map_sector_fndecl_53483 map_sector fndecl 0 53483 NULL
171489 +enable_so_nfs4_proc_readlink_fndecl_53484 nfs4_proc_readlink fndecl 4-3 53484 NULL nohasharray
171490 +enable_so_ath6kl_regwrite_write_fndecl_53484 ath6kl_regwrite_write fndecl 3 53484 &enable_so_nfs4_proc_readlink_fndecl_53484
171491 +enable_so_ramoops_ecc_vardecl_ram_c_53486 ramoops_ecc vardecl_ram.c 0 53486 NULL
171492 +enable_so_size_mthca_catas_err_53487 size mthca_catas_err 0 53487 NULL
171493 +enable_so_oper_log_mgm_entry_size_mlx4_dev_53488 oper_log_mgm_entry_size mlx4_dev 0 53488 NULL
171494 +enable_so_usCRTC_V_SyncWidth__ATOM_MODE_TIMING_53489 usCRTC_V_SyncWidth _ATOM_MODE_TIMING 0 53489 NULL nohasharray
171495 +enable_so_len_rx_pool_53489 len rx_pool 0 53489 &enable_so_usCRTC_V_SyncWidth__ATOM_MODE_TIMING_53489
171496 +enable_so_len_nft_cmp_expr_53491 len nft_cmp_expr 0 53491 NULL
171497 +enable_so_isdn_getnum_fndecl_53492 isdn_getnum fndecl 0 53492 NULL
171498 +enable_so_subctxt_cnt_qib_ctxtdata_53495 subctxt_cnt qib_ctxtdata 0 53495 NULL nohasharray
171499 +enable_so_get_allocated_memblock_memory_regions_info_fndecl_53495 get_allocated_memblock_memory_regions_info fndecl 0 53495 &enable_so_subctxt_cnt_qib_ctxtdata_53495
171500 +enable_so___blk_end_request_err_fndecl_53498 __blk_end_request_err fndecl 2 53498 NULL
171501 +enable_so___compat_sys_pwritev64_fndecl_53499 __compat_sys_pwritev64 fndecl 3 53499 NULL
171502 +enable_so_lc_create_fndecl_53503 lc_create fndecl 4 53503 NULL
171503 +enable_so_tipc_link_mtu_fndecl_53508 tipc_link_mtu fndecl 0 53508 NULL
171504 +enable_so_mthca_buf_alloc_fndecl_53510 mthca_buf_alloc fndecl 2 53510 NULL
171505 +enable_so_mmc_io_rw_extended_fndecl_53515 mmc_io_rw_extended fndecl 8-7 53515 NULL
171506 +enable_so_dme1737_isa_device_add_fndecl_53516 dme1737_isa_device_add fndecl 1 53516 NULL
171507 +enable_so_max_dev_vardecl_osst_c_53523 max_dev vardecl_osst.c 0 53523 NULL
171508 +enable_so_fsinfo_sector_msdos_sb_info_53531 fsinfo_sector msdos_sb_info 0 53531 NULL nohasharray
171509 +enable_so_m_max_mds_ceph_mdsmap_53531 m_max_mds ceph_mdsmap 0 53531 &enable_so_fsinfo_sector_msdos_sb_info_53531
171510 +enable_so_tx_tx_cmplt_read_fndecl_53533 tx_tx_cmplt_read fndecl 3 53533 NULL
171511 +enable_so_unix_seqpacket_sendmsg_fndecl_53534 unix_seqpacket_sendmsg fndecl 3 53534 NULL
171512 +enable_so_tcp_mark_head_lost_fndecl_53540 tcp_mark_head_lost fndecl 2 53540 NULL nohasharray
171513 +enable_so_e820_add_region_fndecl_53540 e820_add_region fndecl 2 53540 &enable_so_tcp_mark_head_lost_fndecl_53540
171514 +enable_so_crtc_w_drm_plane_state_53541 crtc_w drm_plane_state 0 53541 NULL
171515 +enable_so_smi_num_vardecl_ipmi_si_intf_c_53542 smi_num vardecl_ipmi_si_intf.c 0 53542 NULL
171516 +enable_so_uwb_rc_cmd_done_fndecl_53543 uwb_rc_cmd_done fndecl 4 53543 NULL
171517 +enable_so_start_extent_state_53546 start extent_state 0 53546 NULL
171518 +enable_so_block_size_partition_53549 block_size partition 0 53549 NULL
171519 +enable_so_height_rcar_vin_cam_53550 height rcar_vin_cam 0 53550 NULL
171520 +enable_so_num_req_vfs_i40e_pf_53554 num_req_vfs i40e_pf 0 53554 NULL
171521 +enable_so_r_result_ceph_osd_request_53555 r_result ceph_osd_request 0 53555 NULL
171522 +enable_so_vnode_afs_fid_53569 vnode afs_fid 0 53569 NULL
171523 +enable_so_balance_node_right_fndecl_53571 balance_node_right fndecl 0 53571 NULL
171524 +enable_so_sctp_tsnmap_mark_fndecl_53578 sctp_tsnmap_mark fndecl 2 53578 NULL
171525 +enable_so_rx_defrag_init_called_read_fndecl_53580 rx_defrag_init_called_read fndecl 3 53580 NULL
171526 +enable_so_log_mpt_sz_mlx4_init_hca_param_53586 log_mpt_sz mlx4_init_hca_param 0 53586 NULL
171527 +enable_so_tokens_size_cfg80211_wowlan_tcp_53588 tokens_size cfg80211_wowlan_tcp 0 53588 NULL nohasharray
171528 +enable_so_num_ports_mlx4_caps_53588 num_ports mlx4_caps 0 53588 &enable_so_tokens_size_cfg80211_wowlan_tcp_53588
171529 +enable_so_mlx5_get_gid_table_len_fndecl_53590 mlx5_get_gid_table_len fndecl 0-1 53590 NULL
171530 +enable_so_nr_labels_pktgen_dev_53591 nr_labels pktgen_dev 0 53591 NULL
171531 +enable_so_ocfs2_orphan_filldir_fndecl_53593 ocfs2_orphan_filldir fndecl 5 53593 NULL
171532 +enable_so_kernel_setsockopt_fndecl_53594 kernel_setsockopt fndecl 5 53594 NULL
171533 +enable_so_cow_file_range_async_fndecl_53595 cow_file_range_async fndecl 4-3 53595 NULL
171534 +enable_so_nilfs_load_super_block_fndecl_53596 nilfs_load_super_block fndecl 3 53596 NULL
171535 +enable_so_ramoops_pmsg_size_vardecl_ram_c_53601 ramoops_pmsg_size vardecl_ram.c 0 53601 NULL
171536 +enable_so_xfs_add_to_ioend_fndecl_53604 xfs_add_to_ioend fndecl 3 53604 NULL
171537 +enable_so_hwptr_done_snd_usb_substream_53606 hwptr_done snd_usb_substream 0 53606 NULL
171538 +enable_so_pcfg_ofsl_cyttsp4_sysinfo_data_53607 pcfg_ofsl cyttsp4_sysinfo_data 0 53607 NULL
171539 +enable_so_md_dump_size_netxen_minidump_53611 md_dump_size netxen_minidump 0 53611 NULL
171540 +enable_so_put_cmsg_compat_fndecl_53618 put_cmsg_compat fndecl 4 53618 NULL nohasharray
171541 +enable_so_len_rproc_vring_53618 len rproc_vring 0 53618 &enable_so_put_cmsg_compat_fndecl_53618
171542 +enable_so_header_len_tso_state_53620 header_len tso_state 0 53620 NULL
171543 +enable_so_qcaspi_write_legacy_fndecl_53623 qcaspi_write_legacy fndecl 3 53623 NULL
171544 +enable_so_btt_flog_write_fndecl_53628 btt_flog_write fndecl 0 53628 NULL
171545 +enable_so_num_channels_mlx5e_params_53632 num_channels mlx5e_params 0 53632 NULL
171546 +enable_so_selfballoon_downhysteresis_vardecl_xen_selfballoon_c_53636 selfballoon_downhysteresis vardecl_xen-selfballoon.c 0 53636 NULL
171547 +enable_so_remote_nentries_xpc_openclose_args_53643 remote_nentries xpc_openclose_args 0 53643 NULL
171548 +enable_so_locks_mandatory_area_fndecl_53644 locks_mandatory_area fndecl 0 53644 NULL nohasharray
171549 +enable_so_ticket2_len_rxk5_key_53644 ticket2_len rxk5_key 0 53644 &enable_so_locks_mandatory_area_fndecl_53644
171550 +enable_so_write_file_antenna_fndecl_53645 write_file_antenna fndecl 3 53645 NULL
171551 +enable_so_ioc_plen2_obd_ioctl_data_53648 ioc_plen2 obd_ioctl_data 0 53648 NULL
171552 +enable_so_extra_tx_headroom_rt2x00_dev_53650 extra_tx_headroom rt2x00_dev 0 53650 NULL
171553 +enable_so_ceph_buffer_new_fndecl_53653 ceph_buffer_new fndecl 1 53653 NULL nohasharray
171554 +enable_so_generic_ocp_read_fndecl_53653 generic_ocp_read fndecl 3 53653 &enable_so_ceph_buffer_new_fndecl_53653
171555 +enable_so_acl_alloc_fndecl_53656 acl_alloc fndecl 1 53656 NULL
171556 +enable_so_dlist_count_vc4_plane_state_53658 dlist_count vc4_plane_state 0 53658 NULL
171557 +enable_so_ethertype_fddi_snap_hdr_53659 ethertype fddi_snap_hdr 0 53659 NULL
171558 +enable_so_page_add_anon_rmap_fndecl_53660 page_add_anon_rmap fndecl 3 53660 NULL
171559 +enable_so_hr_data_len_hsm_request_53666 hr_data_len hsm_request 0 53666 NULL
171560 +enable_so_num_sge_ib_uverbs_send_wr_53667 num_sge ib_uverbs_send_wr 0 53667 NULL
171561 +enable_so_cpu_addr_of_pci_range_53670 cpu_addr of_pci_range 0 53670 NULL
171562 +enable_so_kvec_array_init_fndecl_53672 kvec_array_init fndecl 4-0-3 53672 NULL
171563 +enable_so___videobuf_alloc_fndecl_53676 __videobuf_alloc fndecl 1 53676 NULL
171564 +enable_so_ubi_eba_write_leb_fndecl_53678 ubi_eba_write_leb fndecl 6-5 53678 NULL nohasharray
171565 +enable_so_sesskey_len_cifs_spnego_msg_53678 sesskey_len cifs_spnego_msg 0 53678 &enable_so_ubi_eba_write_leb_fndecl_53678
171566 +enable_so_list_lru_count_one_fndecl_53682 list_lru_count_one fndecl 0 53682 NULL
171567 +enable_so_console_store_fndecl_53684 console_store fndecl 4 53684 NULL
171568 +enable_so_length_acpi_memory_info_53691 length acpi_memory_info 0 53691 NULL nohasharray
171569 +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
171570 +enable_so_i_depth_gfs2_inode_53692 i_depth gfs2_inode 0 53692 NULL
171571 +enable_so_ql_is_full_dup_fndecl_53694 ql_is_full_dup fndecl 0 53694 NULL nohasharray
171572 +enable_so_carl9170_rx_untie_cmds_fndecl_53694 carl9170_rx_untie_cmds fndecl 3 53694 &enable_so_ql_is_full_dup_fndecl_53694
171573 +enable_so_length_iscsi_pdu_53695 length iscsi_pdu 0 53695 NULL
171574 +enable_so_vgt_balloon_space_fndecl_53697 vgt_balloon_space fndecl 3-4 53697 NULL
171575 +enable_so_gpio_power_read_fndecl_53704 gpio_power_read fndecl 3 53704 NULL nohasharray
171576 +enable_so_check_revision_fndecl_53704 check_revision fndecl 0 53704 &enable_so_gpio_power_read_fndecl_53704
171577 +enable_so_qlge_change_mtu_fndecl_53706 qlge_change_mtu fndecl 2 53706 NULL
171578 +enable_so_pos_hdpvr_buffer_53708 pos hdpvr_buffer 0 53708 NULL
171579 +enable_so_create_header_ops_53712 create header_ops 0 53712 NULL
171580 +enable_so_xdr_inline_decode_fndecl_53721 xdr_inline_decode fndecl 2 53721 NULL
171581 +enable_so_sys_init_module_fndecl_53724 sys_init_module fndecl 2 53724 NULL nohasharray
171582 +enable_so_onenand_write_ops_nolock_fndecl_53724 onenand_write_ops_nolock fndecl 2 53724 &enable_so_sys_init_module_fndecl_53724
171583 +enable_so_btt_rw_integrity_fndecl_53727 btt_rw_integrity fndecl 0 53727 NULL
171584 +enable_so_mtip_hw_read_device_status_fndecl_53729 mtip_hw_read_device_status fndecl 3 53729 NULL
171585 +enable_so_r_rcv_len_qib_qp_53730 r_rcv_len qib_qp 0 53730 NULL nohasharray
171586 +enable_so_ino_xfs_fid64_53730 ino xfs_fid64 0 53730 &enable_so_r_rcv_len_qib_qp_53730
171587 +enable_so_snd_pcm_plug_read_transfer_fndecl_53731 snd_pcm_plug_read_transfer fndecl 3-0 53731 NULL
171588 +enable_so_dnode_scif_peer_dev_53733 dnode scif_peer_dev 0 53733 NULL nohasharray
171589 +enable_so_adp5588_build_gpiomap_fndecl_53733 adp5588_build_gpiomap fndecl 0 53733 &enable_so_dnode_scif_peer_dev_53733
171590 +enable_so_max_data_size_vardecl_hsi_char_c_53736 max_data_size vardecl_hsi_char.c 0 53736 NULL
171591 +enable_so_map_capability_fndecl_53738 map_capability fndecl 5 53738 NULL
171592 +enable_so_chunk_size_stripe_c_53745 chunk_size stripe_c 0 53745 NULL
171593 +enable_so_write_emulate_fndecl_53746 write_emulate fndecl 2-4 53746 NULL
171594 +enable_so_get_crop_info_h_s5p_mfc_hw_ops_53747 get_crop_info_h s5p_mfc_hw_ops 0 53747 NULL
171595 +enable_so_count_user_sgmap_53748 count user_sgmap 0 53748 NULL
171596 +enable_so_SenderSize_aac_fibhdr_53758 SenderSize aac_fibhdr 0 53758 NULL nohasharray
171597 +enable_so_ieee80211_if_write_tsf_fndecl_53758 ieee80211_if_write_tsf fndecl 3 53758 &enable_so_SenderSize_aac_fibhdr_53758
171598 +enable_so_seg_num_mad_rmpp_recv_53761 seg_num mad_rmpp_recv 0 53761 NULL
171599 +enable_so_dies_onenand_chip_53762 dies onenand_chip 0 53762 NULL
171600 +enable_so_padding_iscsi_cmd_53768 padding iscsi_cmd 0 53768 NULL
171601 +enable_so_end_nilfs_write_info_53770 end nilfs_write_info 0 53770 NULL
171602 +enable_so_msb_read_oob_fndecl_53772 msb_read_oob fndecl 2 53772 NULL
171603 +enable_so_vxge_config_vpaths_fndecl_53775 vxge_config_vpaths fndecl 0 53775 NULL nohasharray
171604 +enable_so_get_slot_from_bitmask_fndecl_53775 get_slot_from_bitmask fndecl 0-1 53775 &enable_so_vxge_config_vpaths_fndecl_53775
171605 +enable_so_do_sendfile_fndecl_53777 do_sendfile fndecl 5-4 53777 NULL
171606 +enable_so_index_nsc_ircc_cb_53782 index nsc_ircc_cb 0 53782 NULL
171607 +enable_so_src_maxburst_dma_slave_config_53783 src_maxburst dma_slave_config 0 53783 NULL
171608 +enable_so_locations_count_nfsd4_fs_locations_53786 locations_count nfsd4_fs_locations 0 53786 NULL
171609 +enable_so_resp_iec_m_pg_fndecl_53792 resp_iec_m_pg fndecl 0 53792 NULL
171610 +enable_so_Control_2_RxD_t_53794 Control_2 RxD_t 0 53794 NULL nohasharray
171611 +enable_so_qlcnic_process_rcv_fndecl_53794 qlcnic_process_rcv fndecl 4 53794 &enable_so_Control_2_RxD_t_53794
171612 +enable_so_st21nfca_hci_loopback_fndecl_53795 st21nfca_hci_loopback fndecl 3 53795 NULL
171613 +enable_so_epnum_isp1362_ep_53803 epnum isp1362_ep 0 53803 NULL nohasharray
171614 +enable_so_osd_req_list_collection_objects_fndecl_53803 osd_req_list_collection_objects fndecl 5 53803 &enable_so_epnum_isp1362_ep_53803 nohasharray
171615 +enable_so_mgmt_send_event_fndecl_53803 mgmt_send_event fndecl 5 53803 &enable_so_osd_req_list_collection_objects_fndecl_53803
171616 +enable_so_iscsi_host_alloc_fndecl_53804 iscsi_host_alloc fndecl 2 53804 NULL
171617 +enable_so_ring_size_netvsc_device_info_53811 ring_size netvsc_device_info 0 53811 NULL
171618 +enable_so_msix_count_xhci_hcd_53816 msix_count xhci_hcd 0 53816 NULL
171619 +enable_so_jffs2_flash_write_fndecl_53819 jffs2_flash_write fndecl 3-2 53819 NULL nohasharray
171620 +enable_so_tty_copy_to_user_fndecl_53819 tty_copy_to_user fndecl 4 53819 &enable_so_jffs2_flash_write_fndecl_53819
171621 +enable_so_doorbell_start_nes_device_53820 doorbell_start nes_device 0 53820 NULL nohasharray
171622 +enable_so_logical_minimum_hid_field_53820 logical_minimum hid_field 0 53820 &enable_so_doorbell_start_nes_device_53820
171623 +enable_so_choose_rate_fndecl_53821 choose_rate fndecl 3 53821 NULL
171624 +enable_so_smem_len_fb_fix_screeninfo_53824 smem_len fb_fix_screeninfo 0 53824 NULL
171625 +enable_so_cam_get_response16_fndecl_53836 cam_get_response16 fndecl 0 53836 NULL
171626 +enable_so_gsmtty_write_fndecl_53837 gsmtty_write fndecl 3 53837 NULL
171627 +enable_so_num_sensors_ibmpex_bmc_data_53838 num_sensors ibmpex_bmc_data 0 53838 NULL
171628 +enable_so_resp_ie_length_ndis_80211_assoc_info_53840 resp_ie_length ndis_80211_assoc_info 0 53840 NULL
171629 +enable_so_xillybus_read_fndecl_53845 xillybus_read fndecl 3 53845 NULL
171630 +enable_so_ext4_mb_discard_group_preallocations_fndecl_53854 ext4_mb_discard_group_preallocations fndecl 2 53854 NULL
171631 +enable_so_minleft_xfs_alloc_arg_53855 minleft xfs_alloc_arg 0 53855 NULL
171632 +enable_so_saa7134_i2c_eeprom_fndecl_53866 saa7134_i2c_eeprom fndecl 3 53866 NULL
171633 +enable_so_data_len_msgbuf_rx_complete_53868 data_len msgbuf_rx_complete 0 53868 NULL
171634 +enable_so_discard_alignment_hd_struct_53874 discard_alignment hd_struct 0 53874 NULL
171635 +enable_so_br_fill_ifvlaninfo_range_fndecl_53875 br_fill_ifvlaninfo_range fndecl 2-3 53875 NULL
171636 +enable_so_buffer_blocks_st_buffer_53878 buffer_blocks st_buffer 0 53878 NULL
171637 +enable_so_lnum_bits_ubifs_info_53884 lnum_bits ubifs_info 0 53884 NULL
171638 +enable_so_nilfs_sufile_set_segment_usage_fndecl_53885 nilfs_sufile_set_segment_usage fndecl 2 53885 NULL
171639 +enable_so_cx25821_alsa_dma_init_fndecl_53886 cx25821_alsa_dma_init fndecl 2 53886 NULL nohasharray
171640 +enable_so_path_getxattr_fndecl_53886 path_getxattr fndecl 4 53886 &enable_so_cx25821_alsa_dma_init_fndecl_53886
171641 +enable_so_drbd_setbufsize_fndecl_53887 drbd_setbufsize fndecl 2 53887 NULL
171642 +enable_so_amdgpu_vce_sw_init_fndecl_53888 amdgpu_vce_sw_init fndecl 2 53888 NULL
171643 +enable_so_br_vlan_set_proto_fndecl_53897 br_vlan_set_proto fndecl 2 53897 NULL
171644 +enable_so_total_read_TCP_Server_Info_53900 total_read TCP_Server_Info 0 53900 NULL
171645 +enable_so_e1000_consume_page_fndecl_53903 e1000_consume_page fndecl 3 53903 NULL nohasharray
171646 +enable_so_alignf_resource_constraint_53903 alignf resource_constraint 0 53903 &enable_so_e1000_consume_page_fndecl_53903
171647 +enable_so_image_len_brcmf_usbdev_info_53909 image_len brcmf_usbdev_info 0 53909 NULL
171648 +enable_so_vop_len_solo_enc_dev_53910 vop_len solo_enc_dev 0 53910 NULL
171649 +enable_so_snd_rawmidi_kernel_read1_fndecl_53911 snd_rawmidi_kernel_read1 fndecl 4-0 53911 NULL nohasharray
171650 +enable_so_oobavail_jffs2_sb_info_53911 oobavail jffs2_sb_info 0 53911 &enable_so_snd_rawmidi_kernel_read1_fndecl_53911
171651 +enable_so_cxgbi_device_register_fndecl_53913 cxgbi_device_register fndecl 2-1 53913 NULL
171652 +enable_so___remove_range_fndecl_53925 __remove_range fndecl 0 53925 NULL
171653 +enable_so_vlan_info_mlx5_cqe64_53926 vlan_info mlx5_cqe64 0 53926 NULL
171654 +enable_so_usb_stor_sg_tablesize_fndecl_53929 usb_stor_sg_tablesize fndecl 0 53929 NULL
171655 +enable_so_of_iomap_fndecl_53930 of_iomap fndecl 2 53930 NULL
171656 +enable_so_chip_sdma_engines_hfi1_devdata_53934 chip_sdma_engines hfi1_devdata 0 53934 NULL
171657 +enable_so_i40e_init_lan_hmc_fndecl_53935 i40e_init_lan_hmc fndecl 2-3-4-5 53935 NULL
171658 +enable_so_depth_tm6000_fmt_53938 depth tm6000_fmt 0 53938 NULL
171659 +enable_so_ip4ip6_err_fndecl_53943 ip4ip6_err fndecl 5 53943 NULL
171660 +enable_so_llc_mac_header_len_fndecl_53947 llc_mac_header_len fndecl 0 53947 NULL
171661 +enable_so_buffer_end_nm256_53949 buffer_end nm256 0 53949 NULL
171662 +enable_so_swiotlb_nr_tbl_fndecl_53950 swiotlb_nr_tbl fndecl 0 53950 NULL
171663 +enable_so_p_size_drbd_device_53954 p_size drbd_device 0 53954 NULL
171664 +enable_so_hiddev_ioctl_fndecl_53955 hiddev_ioctl fndecl 2 53955 NULL
171665 +enable_so_tcf_csum_ipv6_tcp_fndecl_53957 tcf_csum_ipv6_tcp fndecl 3 53957 NULL
171666 +enable_so_vmw_sou_backing_alloc_fndecl_53962 vmw_sou_backing_alloc fndecl 3 53962 NULL nohasharray
171667 +enable_so_c_srate_f_uac2_opts_53962 c_srate f_uac2_opts 0 53962 &enable_so_vmw_sou_backing_alloc_fndecl_53962
171668 +enable_so_recover_orphan_inode_fndecl_53969 recover_orphan_inode fndecl 2 53969 NULL nohasharray
171669 +enable_so_proc_fault_inject_read_fndecl_53969 proc_fault_inject_read fndecl 3 53969 &enable_so_recover_orphan_inode_fndecl_53969
171670 +enable_so_dib9000_fw_boot_fndecl_53978 dib9000_fw_boot fndecl 3-5 53978 NULL
171671 +enable_so_rx_buf_sz_cp_private_53982 rx_buf_sz cp_private 0 53982 NULL
171672 +enable_so_assoc_resp_len_wmi_connect_event_53983 assoc_resp_len wmi_connect_event 0 53983 NULL
171673 +enable_so_nfs_proc_mknod_fndecl_53987 nfs_proc_mknod fndecl 4 53987 NULL
171674 +enable_so_hfsplus_create_cat_fndecl_53990 hfsplus_create_cat fndecl 1 53990 NULL nohasharray
171675 +enable_so_cfpkt_add_head_fndecl_53990 cfpkt_add_head fndecl 3 53990 &enable_so_hfsplus_create_cat_fndecl_53990
171676 +enable_so_cm_write_fndecl_53993 cm_write fndecl 3 53993 NULL
171677 +enable_so_btrfs_init_new_buffer_fndecl_53996 btrfs_init_new_buffer fndecl 3 53996 NULL
171678 +enable_so_size_drbd_interval_54002 size drbd_interval 0 54002 NULL
171679 +enable_so_ax88179_change_mtu_fndecl_54007 ax88179_change_mtu fndecl 2 54007 NULL
171680 +enable_so_nonstatic_find_io_fndecl_54015 nonstatic_find_io fndecl 4 54015 NULL
171681 +enable_so_submit_stripe_bio_fndecl_54016 submit_stripe_bio fndecl 4 54016 NULL
171682 +enable_so_rsi_setblocklength_fndecl_54024 rsi_setblocklength fndecl 2 54024 NULL
171683 +enable_so_xz_dec_lzma2_create_fndecl_54034 xz_dec_lzma2_create fndecl 2 54034 NULL
171684 +enable_so_sum_size_jffs2_summary_54035 sum_size jffs2_summary 0 54035 NULL
171685 +enable_so_s_nextid_exofs_sb_info_54042 s_nextid exofs_sb_info 0 54042 NULL
171686 +enable_so_sierra_write_fndecl_54049 sierra_write fndecl 4 54049 NULL
171687 +enable_so_sci_probe_single_fndecl_54053 sci_probe_single fndecl 2 54053 NULL
171688 +enable_so_storvsc_ringbuffer_size_vardecl_storvsc_drv_c_54060 storvsc_ringbuffer_size vardecl_storvsc_drv.c 0 54060 NULL
171689 +enable_so_msb_update_block_fndecl_54063 msb_update_block fndecl 0-4-2 54063 NULL
171690 +enable_so_tunables_read_fndecl_54066 tunables_read fndecl 3 54066 NULL
171691 +enable_so_process_ptload_program_headers_elf32_fndecl_54067 process_ptload_program_headers_elf32 fndecl 3-2 54067 NULL
171692 +enable_so_width_fb_image_54071 width fb_image 0 54071 NULL
171693 +enable_so_i_next_section_offset_iso_inode_info_54074 i_next_section_offset iso_inode_info 0 54074 NULL nohasharray
171694 +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
171695 +enable_so_xennet_change_mtu_fndecl_54076 xennet_change_mtu fndecl 2 54076 NULL nohasharray
171696 +enable_so_afs_alloc_flat_call_fndecl_54076 afs_alloc_flat_call fndecl 2-3 54076 &enable_so_xennet_change_mtu_fndecl_54076
171697 +enable_so_qed_cxt_cdu_iids_fndecl_54088 qed_cxt_cdu_iids fndecl 0 54088 NULL
171698 +enable_so_bytes_cifs_writedata_54089 bytes cifs_writedata 0 54089 NULL
171699 +enable_so_get_mtu_xfrm_type_54090 get_mtu xfrm_type 0 54090 NULL
171700 +enable_so_align_pnp_port_54093 align pnp_port 0 54093 NULL nohasharray
171701 +enable_so_sctp_tsnmap_init_fndecl_54093 sctp_tsnmap_init fndecl 3-2 54093 &enable_so_align_pnp_port_54093
171702 +enable_so_port_num_ib_qp_init_attr_54099 port_num ib_qp_init_attr 0 54099 NULL
171703 +enable_so_fat_ent_write_fndecl_54100 fat_ent_write fndecl 0 54100 NULL
171704 +enable_so_bytes_read_usbvision_frame_54101 bytes_read usbvision_frame 0 54101 NULL
171705 +enable_so_br_min_mtu_fndecl_54113 br_min_mtu fndecl 0 54113 NULL
171706 +enable_so_bfad_iocmd_pcifn_delete_fndecl_54115 bfad_iocmd_pcifn_delete fndecl 0 54115 NULL
171707 +enable_so_xfs_rtmodify_summary_int_fndecl_54118 xfs_rtmodify_summary_int fndecl 4-3 54118 NULL nohasharray
171708 +enable_so_rio_request_inb_mbox_fndecl_54118 rio_request_inb_mbox fndecl 3 54118 &enable_so_xfs_rtmodify_summary_int_fndecl_54118
171709 +enable_so_vringh_iov_push_kern_fndecl_54119 vringh_iov_push_kern fndecl 3 54119 NULL
171710 +enable_so_s5p_jpeg_to_user_subsampling_fndecl_54125 s5p_jpeg_to_user_subsampling fndecl 0 54125 NULL
171711 +enable_so_alloc_etherdev_mqs_fndecl_54129 alloc_etherdev_mqs fndecl 2-1-3 54129 NULL
171712 +enable_so_skb_trim_fndecl_54132 skb_trim fndecl 2 54132 NULL
171713 +enable_so_io_offset_xfs_ioend_54137 io_offset xfs_ioend 0 54137 NULL nohasharray
171714 +enable_so_bdx_fifo_init_fndecl_54137 bdx_fifo_init fndecl 3 54137 &enable_so_io_offset_xfs_ioend_54137
171715 +enable_so_tcf_csum_ipv6_udp_fndecl_54138 tcf_csum_ipv6_udp fndecl 3 54138 NULL
171716 +enable_so_change_protection_range_fndecl_54141 change_protection_range fndecl 3-2 54141 NULL nohasharray
171717 +enable_so_carl9170_exec_cmd_fndecl_54141 carl9170_exec_cmd fndecl 3 54141 &enable_so_change_protection_range_fndecl_54141 nohasharray
171718 +enable_so_gfs2_inode_ra_len_fndecl_54141 gfs2_inode_ra_len fndecl 0 54141 &enable_so_carl9170_exec_cmd_fndecl_54141
171719 +enable_so_netvsc_change_mtu_fndecl_54142 netvsc_change_mtu fndecl 2 54142 NULL
171720 +enable_so_f2fs_do_collapse_fndecl_54143 f2fs_do_collapse fndecl 2-3 54143 NULL
171721 +enable_so_brcmf_usb_dl_writeimage_fndecl_54144 brcmf_usb_dl_writeimage fndecl 3 54144 NULL
171722 +enable_so_hs_cur_bits_cfs_hash_54147 hs_cur_bits cfs_hash 0 54147 NULL
171723 +enable_so_sp2_write_i2c_fndecl_54157 sp2_write_i2c fndecl 4 54157 NULL nohasharray
171724 +enable_so___hwahc_op_set_ptk_fndecl_54157 __hwahc_op_set_ptk fndecl 5 54157 &enable_so_sp2_write_i2c_fndecl_54157
171725 +enable_so_nval_property_entry_54158 nval property_entry 0 54158 NULL
171726 +enable_so_num_qp_mthca_profile_54160 num_qp mthca_profile 0 54160 NULL
171727 +enable_so_b43_nphy_load_samples_fndecl_54162 b43_nphy_load_samples fndecl 3 54162 NULL
171728 +enable_so_lock_and_cleanup_extent_if_need_fndecl_54163 lock_and_cleanup_extent_if_need fndecl 3-4 54163 NULL
171729 +enable_so_buf_len_lpfc_sli_config_mse_54165 buf_len lpfc_sli_config_mse 0 54165 NULL
171730 +enable_so_cmd_loop_fndecl_54168 cmd_loop fndecl 0 54168 NULL
171731 +enable_so_ip6_append_data_fndecl_54169 ip6_append_data fndecl 5-4 54169 NULL nohasharray
171732 +enable_so_writebuf_size_tomoyo_io_buffer_54169 writebuf_size tomoyo_io_buffer 0 54169 &enable_so_ip6_append_data_fndecl_54169
171733 +enable_so_st_nci_probe_fndecl_54170 st_nci_probe fndecl 2 54170 NULL
171734 +enable_so_handle_one_ule_extension_fndecl_54174 handle_one_ule_extension fndecl 0 54174 NULL
171735 +enable_so__osd_req_encode_partition_fndecl_54177 _osd_req_encode_partition fndecl 2 54177 NULL
171736 +enable_so_num_bytes_drm_dp_remote_dpcd_write_54181 num_bytes drm_dp_remote_dpcd_write 0 54181 NULL
171737 +enable_so_len_xfs_alloc_arg_54187 len xfs_alloc_arg 0 54187 NULL
171738 +enable_so_cpu_type_read_fndecl_54191 cpu_type_read fndecl 3 54191 NULL
171739 +enable_so_nfs_llseek_dir_fndecl_54192 nfs_llseek_dir fndecl 2 54192 NULL
171740 +enable_so_tp_ep_bcm5974_config_54193 tp_ep bcm5974_config 0 54193 NULL
171741 +enable_so_current_speed_ide_drive_s_54197 current_speed ide_drive_s 0 54197 NULL
171742 +enable_so_ipw2100_set_essid_fndecl_54200 ipw2100_set_essid fndecl 3 54200 NULL
171743 +enable_so_p_filesz_elf32_phdr_54204 p_filesz elf32_phdr 0 54204 NULL nohasharray
171744 +enable_so_contexts_nouveau_fence_priv_54204 contexts nouveau_fence_priv 0 54204 &enable_so_p_filesz_elf32_phdr_54204 nohasharray
171745 +enable_so_ath6kl_interface_add_fndecl_54204 ath6kl_interface_add fndecl 5 54204 &enable_so_contexts_nouveau_fence_priv_54204
171746 +enable_so_min_priority_binder_node_54207 min_priority binder_node 0 54207 NULL nohasharray
171747 +enable_so_nframes_bcm_msg_head_54207 nframes bcm_msg_head 0 54207 &enable_so_min_priority_binder_node_54207
171748 +enable_so_mxt_bootloader_write_fndecl_54210 mxt_bootloader_write fndecl 3 54210 NULL nohasharray
171749 +enable_so___lock_page_killable_fndecl_54210 __lock_page_killable fndecl 0 54210 &enable_so_mxt_bootloader_write_fndecl_54210
171750 +enable_so_ep93xx_spi_enable_fndecl_54214 ep93xx_spi_enable fndecl 0 54214 NULL nohasharray
171751 +enable_so_page_offset_ixgbe_rx_buffer_54214 page_offset ixgbe_rx_buffer 0 54214 &enable_so_ep93xx_spi_enable_fndecl_54214
171752 +enable_so_post_send_ib_device_54215 post_send ib_device 0 54215 NULL
171753 +enable_so_append_frame_to_pkt_fndecl_54220 append_frame_to_pkt fndecl 2 54220 NULL nohasharray
171754 +enable_so_tx_ring_size_ql_adapter_54220 tx_ring_size ql_adapter 0 54220 &enable_so_append_frame_to_pkt_fndecl_54220
171755 +enable_so_lib80211_tkip_encrypt_fndecl_54222 lib80211_tkip_encrypt fndecl 2 54222 NULL
171756 +enable_so_btrfs_get_token_64_fndecl_54223 btrfs_get_token_64 fndecl 0 54223 NULL nohasharray
171757 +enable_so_numeraseregions_mtd_info_54223 numeraseregions mtd_info 0 54223 &enable_so_btrfs_get_token_64_fndecl_54223
171758 +enable_so_num_boxes_intel_uncore_type_54227 num_boxes intel_uncore_type 0 54227 NULL
171759 +enable_so_vbi_hlen_saa7134_dev_54228 vbi_hlen saa7134_dev 0 54228 NULL
171760 +enable_so___kfifo_to_user_fndecl_54232 __kfifo_to_user fndecl 3 54232 NULL
171761 +enable_so_skb_copy_and_csum_datagram_msg_fndecl_54237 skb_copy_and_csum_datagram_msg fndecl 2 54237 NULL
171762 +enable_so_fdt_next_node_fndecl_54242 fdt_next_node fndecl 0-2 54242 NULL nohasharray
171763 +enable_so_tcp_queue_rcv_fndecl_54242 tcp_queue_rcv fndecl 3 54242 &enable_so_fdt_next_node_fndecl_54242
171764 +enable_so_upper_margin_fb_var_screeninfo_54245 upper_margin fb_var_screeninfo 0 54245 NULL nohasharray
171765 +enable_so_pcnet32_realloc_rx_ring_fndecl_54245 pcnet32_realloc_rx_ring fndecl 3 54245 &enable_so_upper_margin_fb_var_screeninfo_54245
171766 +enable_so_la_last_gd_ocfs2_super_54246 la_last_gd ocfs2_super 0 54246 NULL
171767 +enable_so_num_counters_compat_ipt_replace_54249 num_counters compat_ipt_replace 0 54249 NULL
171768 +enable_so_ttm_object_device_init_fndecl_54252 ttm_object_device_init fndecl 2 54252 NULL
171769 +enable_so_fl_size_qset_params_54254 fl_size qset_params 0 54254 NULL
171770 +enable_so___erst_read_fndecl_54256 __erst_read fndecl 0-1 54256 NULL
171771 +enable_so_ssb_bus_scan_fndecl_54257 ssb_bus_scan fndecl 2 54257 NULL
171772 +enable_so_qnx6_iget_fndecl_54262 qnx6_iget fndecl 2 54262 NULL
171773 +enable_so_put_cmsg_fndecl_54270 put_cmsg fndecl 4 54270 NULL
171774 +enable_so_msdu_len_htt_rx_in_ord_msdu_desc_54278 msdu_len htt_rx_in_ord_msdu_desc 0 54278 NULL
171775 +enable_so_key_size_crypt_config_54287 key_size crypt_config 0 54287 NULL
171776 +enable_so_fat_file_fsync_fndecl_54291 fat_file_fsync fndecl 2-3 54291 NULL
171777 +enable_so_thoff_flow_dissector_key_control_54299 thoff flow_dissector_key_control 0 54299 NULL
171778 +enable_so_ntfs_attr_extend_initialized_fndecl_54303 ntfs_attr_extend_initialized fndecl 2 54303 NULL nohasharray
171779 +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
171780 +enable_so_ceph_osdc_start_request_fndecl_54305 ceph_osdc_start_request fndecl 0 54305 NULL
171781 +enable_so_pvr2_issue_simple_cmd_fndecl_54313 pvr2_issue_simple_cmd fndecl 2 54313 NULL
171782 +enable_so_capi_write_fndecl_54323 capi_write fndecl 3 54323 NULL nohasharray
171783 +enable_so_tx_tx_done_template_read_fndecl_54323 tx_tx_done_template_read fndecl 3 54323 &enable_so_capi_write_fndecl_54323
171784 +enable_so_ide_settings_proc_write_fndecl_54325 ide_settings_proc_write fndecl 3 54325 NULL
171785 +enable_so_nla_alloc_flow_actions_fndecl_54328 nla_alloc_flow_actions fndecl 1 54328 NULL
171786 +enable_so_determine_backup_region_fndecl_54330 determine_backup_region fndecl 1-2 54330 NULL
171787 +enable_so_length_acpi_table_header_54332 length acpi_table_header 0 54332 NULL
171788 +enable_so_vringh_iov_push_user_fndecl_54340 vringh_iov_push_user fndecl 3 54340 NULL nohasharray
171789 +enable_so_iscsi_conn_setup_fndecl_54340 iscsi_conn_setup fndecl 2 54340 &enable_so_vringh_iov_push_user_fndecl_54340
171790 +enable_so_max_rcvbuf_size_tipc_server_54342 max_rcvbuf_size tipc_server 0 54342 NULL
171791 +enable_so_max_raw_minors_vardecl_raw_c_54348 max_raw_minors vardecl_raw.c 0 54348 NULL
171792 +enable_so_wm8997_set_fll_fndecl_54349 wm8997_set_fll fndecl 5 54349 NULL
171793 +enable_so_k_objectid_in_core_key_54352 k_objectid in_core_key 0 54352 NULL nohasharray
171794 +enable_so_p_offset_elf32_phdr_54352 p_offset elf32_phdr 0 54352 &enable_so_k_objectid_in_core_key_54352
171795 +enable_so_hfsplus_block_allocate_fndecl_54353 hfsplus_block_allocate fndecl 0-3-2 54353 NULL
171796 +enable_so_s_fpbmask_ufs_sb_private_info_54354 s_fpbmask ufs_sb_private_info 0 54354 NULL
171797 +enable_so_encode_netobj_fndecl_54356 encode_netobj fndecl 3 54356 NULL
171798 +enable_so_radeon_vram_limit_vardecl_54357 radeon_vram_limit vardecl 0 54357 NULL
171799 +enable_so_tpm_tis_i2c_send_fndecl_54358 tpm_tis_i2c_send fndecl 3 54358 NULL
171800 +enable_so_rocker_group_l2_flood_fndecl_54359 rocker_group_l2_flood fndecl 5 54359 NULL
171801 +enable_so_pkt_size_rx_pkt_status_54360 pkt_size rx_pkt_status 0 54360 NULL
171802 +enable_so_gntdev_alloc_map_fndecl_54362 gntdev_alloc_map fndecl 2 54362 NULL
171803 +enable_so_ceph_get_caps_fndecl_54363 ceph_get_caps fndecl 0 54363 NULL
171804 +enable_so_size_ramoops_context_54365 size ramoops_context 0 54365 NULL
171805 +enable_so_usb_cdc_wdm_register_fndecl_54371 usb_cdc_wdm_register fndecl 3 54371 NULL nohasharray
171806 +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
171807 +enable_so_num_cpu_pages_radeon_gart_54371 num_cpu_pages radeon_gart 0 54371 &enable_so_mlx4_ib_get_cq_umem_fndecl_54371
171808 +enable_so_scif_setup_qp_connect_fndecl_54372 scif_setup_qp_connect fndecl 3 54372 NULL
171809 +enable_so_saved_priority_binder_transaction_54377 saved_priority binder_transaction 0 54377 NULL
171810 +enable_so_bt878_adr_bt878_54384 bt878_adr bt878 0 54384 NULL
171811 +enable_so_mt7601u_rx_next_seg_len_fndecl_54390 mt7601u_rx_next_seg_len fndecl 0 54390 NULL
171812 +enable_so_nbufs_mlx4_buf_54391 nbufs mlx4_buf 0 54391 NULL
171813 +enable_so_ring_size_netvsc_device_54397 ring_size netvsc_device 0 54397 NULL
171814 +enable_so_memsize_viafb_par_54399 memsize viafb_par 0 54399 NULL nohasharray
171815 +enable_so_SyS_init_module_fndecl_54399 SyS_init_module fndecl 2 54399 &enable_so_memsize_viafb_par_54399
171816 +enable_so_leaf_shift_left_fndecl_54401 leaf_shift_left fndecl 3 54401 NULL nohasharray
171817 +enable_so_striped_read_fndecl_54401 striped_read fndecl 0-2 54401 &enable_so_leaf_shift_left_fndecl_54401 nohasharray
171818 +enable_so_security_key_getsecurity_fndecl_54401 security_key_getsecurity fndecl 0 54401 &enable_so_striped_read_fndecl_54401
171819 +enable_so__osd_req_alist_elem_size_fndecl_54403 _osd_req_alist_elem_size fndecl 0-2 54403 NULL
171820 +enable_so_gr_ep0_respond_fndecl_54405 gr_ep0_respond fndecl 3 54405 NULL
171821 +enable_so_len_a2mp_cmd_54407 len a2mp_cmd 0 54407 NULL
171822 +enable_so_vmw_execbuf_submit_fifo_fndecl_54409 vmw_execbuf_submit_fifo fndecl 3 54409 NULL nohasharray
171823 +enable_so_xfs_ialloc_ag_select_fndecl_54409 xfs_ialloc_ag_select fndecl 2-0 54409 &enable_so_vmw_execbuf_submit_fifo_fndecl_54409 nohasharray
171824 +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
171825 +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
171826 +enable_so_mthca_alloc_icm_coherent_fndecl_54412 mthca_alloc_icm_coherent fndecl 3 54412 NULL
171827 +enable_so_qat_hal_get_ins_num_fndecl_54416 qat_hal_get_ins_num fndecl 0 54416 NULL nohasharray
171828 +enable_so_compat_SyS_pselect6_fndecl_54416 compat_SyS_pselect6 fndecl 1 54416 &enable_so_qat_hal_get_ins_num_fndecl_54416
171829 +enable_so_user_height_soc_camera_device_54417 user_height soc_camera_device 0 54417 NULL nohasharray
171830 +enable_so_nrof_flowrings_brcmf_bus_msgbuf_54417 nrof_flowrings brcmf_bus_msgbuf 0 54417 &enable_so_user_height_soc_camera_device_54417
171831 +enable_so_subsampling_s5p_jpeg_ctx_54418 subsampling s5p_jpeg_ctx 0 54418 NULL nohasharray
171832 +enable_so_qlcnic_process_lro_fndecl_54418 qlcnic_process_lro fndecl 4-3 54418 &enable_so_subsampling_s5p_jpeg_ctx_54418
171833 +enable_so_oxygen_pci_probe_fndecl_54423 oxygen_pci_probe fndecl 2 54423 NULL
171834 +enable_so_follow_page_mask_fndecl_54427 follow_page_mask fndecl 2 54427 NULL
171835 +enable_so_qnx6_get_devblock_fndecl_54428 qnx6_get_devblock fndecl 0 54428 NULL
171836 +enable_so_startbit_netlbl_lsm_catmap_54432 startbit netlbl_lsm_catmap 0 54432 NULL
171837 +enable_so_set_fd_set_fndecl_54434 set_fd_set fndecl 1 54434 NULL
171838 +enable_so_ieee80211_add_tx_radiotap_header_fndecl_54443 ieee80211_add_tx_radiotap_header fndecl 5 54443 NULL
171839 +enable_so_jbd2_journal_get_write_access_fndecl_54444 jbd2_journal_get_write_access fndecl 0 54444 NULL
171840 +enable_so_gfn_to_page_many_atomic_fndecl_54449 gfn_to_page_many_atomic fndecl 2 54449 NULL
171841 +enable_so_kimage_file_prepare_segments_fndecl_54451 kimage_file_prepare_segments fndecl 5 54451 NULL
171842 +enable_so_upd_ltab_fndecl_54459 upd_ltab fndecl 3 54459 NULL
171843 +enable_so_a_count_posix_acl_54461 a_count posix_acl 0 54461 NULL nohasharray
171844 +enable_so_vringh_init_kern_fndecl_54461 vringh_init_kern fndecl 3 54461 &enable_so_a_count_posix_acl_54461
171845 +enable_so_s_rnr_retry_cnt_qib_qp_54462 s_rnr_retry_cnt qib_qp 0 54462 NULL nohasharray
171846 +enable_so_ide_mm_inb_fndecl_54462 ide_mm_inb fndecl 0 54462 &enable_so_s_rnr_retry_cnt_qib_qp_54462
171847 +enable_so_isr_rx_rdys_read_fndecl_54464 isr_rx_rdys_read fndecl 3 54464 NULL nohasharray
171848 +enable_so_nvkm_notify_init_fndecl_54464 nvkm_notify_init fndecl 7 54464 &enable_so_isr_rx_rdys_read_fndecl_54464
171849 +enable_so_max_flash_timeout_adp1653_platform_data_54465 max_flash_timeout adp1653_platform_data 0 54465 NULL
171850 +enable_so_mlxsw_emad_alloc_fndecl_54469 mlxsw_emad_alloc fndecl 2 54469 NULL
171851 +enable_so_memory_device_code_ms_boot_attr_info_54474 memory_device_code ms_boot_attr_info 0 54474 NULL
171852 +enable_so_ocfs2_divide_xattr_cluster_fndecl_54477 ocfs2_divide_xattr_cluster fndecl 3-4 54477 NULL
171853 +enable_so_initial_height_vmw_private_54479 initial_height vmw_private 0 54479 NULL
171854 +enable_so_spi_write_buf_fndecl_54490 spi_write_buf fndecl 2 54490 NULL
171855 +enable_so_n_chan_comedi_subdevice_54496 n_chan comedi_subdevice 0 54496 NULL
171856 +enable_so_dev_start_strip_zone_54501 dev_start strip_zone 0 54501 NULL
171857 +enable_so_max_fds_fdtable_54502 max_fds fdtable 0 54502 NULL
171858 +enable_so_mwifiex_set_gen_ie_helper_fndecl_54506 mwifiex_set_gen_ie_helper fndecl 3 54506 NULL
171859 +enable_so_sys_setsockopt_fndecl_54507 sys_setsockopt fndecl 5 54507 NULL
171860 +enable_so_m_agfrotor_xfs_mount_54510 m_agfrotor xfs_mount 0 54510 NULL nohasharray
171861 +enable_so_get_rxfh_indir_size_ethtool_ops_54510 get_rxfh_indir_size ethtool_ops 0 54510 &enable_so_m_agfrotor_xfs_mount_54510
171862 +enable_so_depth_camif_fmt_54512 depth camif_fmt 0 54512 NULL
171863 +enable_so_btrfs_map_bio_fndecl_54519 btrfs_map_bio fndecl 0 54519 NULL
171864 +enable_so___btrfs_buffered_write_fndecl_54524 __btrfs_buffered_write fndecl 3 54524 NULL
171865 +enable_so_ocfs2_read_dir_block_direct_fndecl_54528 ocfs2_read_dir_block_direct fndecl 2 54528 NULL
171866 +enable_so_bio_segments_fndecl_54531 bio_segments fndecl 0 54531 NULL
171867 +enable_so_b43_debugfs_write_fndecl_54533 b43_debugfs_write fndecl 3 54533 NULL
171868 +enable_so_num_ccells_cnic_local_54538 num_ccells cnic_local 0 54538 NULL
171869 +enable_so_v_sync_strt_wid_crtc_54541 v_sync_strt_wid crtc 0 54541 NULL nohasharray
171870 +enable_so_bandlength_Kiara_table_entry_54541 bandlength Kiara_table_entry 0 54541 &enable_so_v_sync_strt_wid_crtc_54541
171871 +enable_so_s_dev_table_count_exofs_fscb_54542 s_dev_table_count exofs_fscb 0 54542 NULL
171872 +enable_so_dvb_dmxdev_section_callback_fndecl_54550 dvb_dmxdev_section_callback fndecl 2-4 54550 NULL
171873 +enable_so_pages_snd_sg_buf_54557 pages snd_sg_buf 0 54557 NULL
171874 +enable_so_interval_exp_blk_integrity_54558 interval_exp blk_integrity 0 54558 NULL
171875 +enable_so_cp_nr_rings_bnxt_54565 cp_nr_rings bnxt 0 54565 NULL
171876 +enable_so_ath6kl_wmi_probe_report_req_cmd_fndecl_54576 ath6kl_wmi_probe_report_req_cmd fndecl 2 54576 NULL
171877 +enable_so_qnx6_check_first_superblock_fndecl_54577 qnx6_check_first_superblock fndecl 2 54577 NULL
171878 +enable_so_priority_sk_buff_54581 priority sk_buff 0 54581 NULL
171879 +enable_so_acpi_system_write_wakeup_device_fndecl_54582 acpi_system_write_wakeup_device fndecl 3 54582 NULL
171880 +enable_so_size_acpi_gpio_mapping_54583 size acpi_gpio_mapping 0 54583 NULL
171881 +enable_so_usb_serial_generic_prepare_write_buffer_fndecl_54586 usb_serial_generic_prepare_write_buffer fndecl 3 54586 NULL
171882 +enable_so_erase_size_mmc_card_54587 erase_size mmc_card 0 54587 NULL
171883 +enable_so_pci_netmos_9900_setup_fndecl_54589 pci_netmos_9900_setup fndecl 4 54589 NULL
171884 +enable_so_near_copies_geom_54591 near_copies geom 0 54591 NULL nohasharray
171885 +enable_so_width_cx231xx_54591 width cx231xx 0 54591 &enable_so_near_copies_geom_54591
171886 +enable_so_viafb_i2c_readbytes_fndecl_54593 viafb_i2c_readbytes fndecl 5 54593 NULL
171887 +enable_so_rfcomm_sock_create_fndecl_54598 rfcomm_sock_create fndecl 3 54598 NULL
171888 +enable_so_vmw_local_fifo_reserve_fndecl_54601 vmw_local_fifo_reserve fndecl 2 54601 NULL
171889 +enable_so_x25_create_fndecl_54604 x25_create fndecl 3 54604 NULL
171890 +enable_so_mipi_dsi_dcs_write_fndecl_54605 mipi_dsi_dcs_write fndecl 4 54605 NULL
171891 +enable_so_fat32_length_fat_bios_param_block_54606 fat32_length fat_bios_param_block 0 54606 NULL
171892 +enable_so_nfs4_get_acl_uncached_fndecl_54608 nfs4_get_acl_uncached fndecl 3 54608 NULL
171893 +enable_so_adfs_f_read_fndecl_54612 adfs_f_read fndecl 2 54612 NULL
171894 +enable_so_msg_print_text_fndecl_54618 msg_print_text fndecl 0 54618 NULL
171895 +enable_so_ieee80211_if_write_fndecl_54621 ieee80211_if_write fndecl 3 54621 NULL
171896 +enable_so_pages_in_unit___stripe_pages_2d_54623 pages_in_unit __stripe_pages_2d 0 54623 NULL
171897 +enable_so_fb_aper_offset_drm_radeon_private_54625 fb_aper_offset drm_radeon_private 0 54625 NULL
171898 +enable_so_ext4_new_meta_blocks_fndecl_54631 ext4_new_meta_blocks fndecl 0 54631 NULL
171899 +enable_so_len_ncp_privatedata_ioctl_54632 len ncp_privatedata_ioctl 0 54632 NULL
171900 +enable_so_vt1211_device_add_fndecl_54634 vt1211_device_add fndecl 1 54634 NULL
171901 +enable_so_bits_per_sample_soc_mbus_pixelfmt_54636 bits_per_sample soc_mbus_pixelfmt 0 54636 NULL nohasharray
171902 +enable_so_text_len_printk_log_54636 text_len printk_log 0 54636 &enable_so_bits_per_sample_soc_mbus_pixelfmt_54636
171903 +enable_so_scif_create_remote_window_fndecl_54638 scif_create_remote_window fndecl 2 54638 NULL nohasharray
171904 +enable_so_n_tx_channels_efx_nic_54638 n_tx_channels efx_nic 0 54638 &enable_so_scif_create_remote_window_fndecl_54638
171905 +enable_so_extra_mpdu_prefix_len_lib80211_crypto_ops_54644 extra_mpdu_prefix_len lib80211_crypto_ops 0 54644 NULL nohasharray
171906 +enable_so_nchannels_cosa_data_54644 nchannels cosa_data 0 54644 &enable_so_extra_mpdu_prefix_len_lib80211_crypto_ops_54644
171907 +enable_so_MaxChainDepth_mpt3sas_facts_54646 MaxChainDepth mpt3sas_facts 0 54646 NULL
171908 +enable_so_write_msg_fndecl_54647 write_msg fndecl 3 54647 NULL nohasharray
171909 +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
171910 +enable_so___inode_permission_fndecl_54654 __inode_permission fndecl 0 54654 NULL
171911 +enable_so_tx_flags_fe_priv_54658 tx_flags fe_priv 0 54658 NULL
171912 +enable_so_target_freq_mt9p031_platform_data_54660 target_freq mt9p031_platform_data 0 54660 NULL nohasharray
171913 +enable_so_truncate_pagecache_fndecl_54660 truncate_pagecache fndecl 2 54660 &enable_so_target_freq_mt9p031_platform_data_54660 nohasharray
171914 +enable_so_reshape_position_mddev_54660 reshape_position mddev 0 54660 &enable_so_truncate_pagecache_fndecl_54660
171915 +enable_so_s_session_udf_sb_info_54662 s_session udf_sb_info 0 54662 NULL
171916 +enable_so_qed_cxt_set_proto_cid_count_fndecl_54663 qed_cxt_set_proto_cid_count fndecl 3 54663 NULL
171917 +enable_so_ssid_len_hostap_bss_info_54670 ssid_len hostap_bss_info 0 54670 NULL
171918 +enable_so_sb_imax_pct_xfs_sb_54671 sb_imax_pct xfs_sb 0 54671 NULL
171919 +enable_so_compat_SyS_kexec_load_fndecl_54672 compat_SyS_kexec_load fndecl 2 54672 NULL
171920 +enable_so_id_pps_device_54684 id pps_device 0 54684 NULL
171921 +enable_so_i2c_transfer_fndecl_54685 i2c_transfer fndecl 0 54685 NULL
171922 +enable_so___lpfc_sli_issue_iocb_fndecl_54687 __lpfc_sli_issue_iocb fndecl 0 54687 NULL
171923 +enable_so_fwbulkwritelen_tda10048_config_54693 fwbulkwritelen tda10048_config 0 54693 NULL
171924 +enable_so_num_queue_pairs_i40e_vsi_54696 num_queue_pairs i40e_vsi 0 54696 NULL nohasharray
171925 +enable_so_mlx4_en_create_cq_fndecl_54696 mlx4_en_create_cq fndecl 3 54696 &enable_so_num_queue_pairs_i40e_vsi_54696
171926 +enable_so_rx_rx_hdr_overflow_read_fndecl_54697 rx_rx_hdr_overflow_read fndecl 3 54697 NULL
171927 +enable_so_max_pages_per_frmr_ocrdma_dev_attr_54699 max_pages_per_frmr ocrdma_dev_attr 0 54699 NULL
171928 +enable_so_lookahead_deflate_state_54700 lookahead deflate_state 0 54700 NULL
171929 +enable_so_bo_number_drm_amdgpu_bo_list_in_54706 bo_number drm_amdgpu_bo_list_in 0 54706 NULL
171930 +enable_so_read_endpoint_zr364xx_camera_54710 read_endpoint zr364xx_camera 0 54710 NULL
171931 +enable_so_mpls_ethertype_ovs_action_push_mpls_54711 mpls_ethertype ovs_action_push_mpls 0 54711 NULL
171932 +enable_so_min_shutter_mt9v032_model_data_54716 min_shutter mt9v032_model_data 0 54716 NULL
171933 +enable_so_process_rcvd_status_fndecl_54722 process_rcvd_status fndecl 3 54722 NULL nohasharray
171934 +enable_so_status_usb_sg_request_54722 status usb_sg_request 0 54722 &enable_so_process_rcvd_status_fndecl_54722
171935 +enable_so_coda_psdev_read_fndecl_54726 coda_psdev_read fndecl 3 54726 NULL
171936 +enable_so_proc_setgroups_write_fndecl_54732 proc_setgroups_write fndecl 3 54732 NULL
171937 +enable_so_queue_size_eata_info_54734 queue_size eata_info 0 54734 NULL nohasharray
171938 +enable_so_hwdep_read_locked_fndecl_54734 hwdep_read_locked fndecl 3 54734 &enable_so_queue_size_eata_info_54734
171939 +enable_so_wBytesPerInterval_usb_ss_ep_comp_descriptor_54739 wBytesPerInterval usb_ss_ep_comp_descriptor 0 54739 NULL
171940 +enable_so_sisusb_copy_memory_fndecl_54747 sisusb_copy_memory fndecl 4 54747 NULL
171941 +enable_so_end_writequeue_entry_54752 end writequeue_entry 0 54752 NULL
171942 +enable_so_mei_cldev_send_fndecl_54754 mei_cldev_send fndecl 3 54754 NULL nohasharray
171943 +enable_so_lpfc_hba_queue_depth_init_fndecl_54754 lpfc_hba_queue_depth_init fndecl 2 54754 &enable_so_mei_cldev_send_fndecl_54754
171944 +enable_so_size__drm_via_cmdbuffer_54755 size _drm_via_cmdbuffer 0 54755 NULL
171945 +enable_so_spi_xcomm_setup_transfer_fndecl_54757 spi_xcomm_setup_transfer fndecl 0 54757 NULL
171946 +enable_so_pwr_connection_out_of_sync_read_fndecl_54758 pwr_connection_out_of_sync_read fndecl 3 54758 NULL
171947 +enable_so_ds_rename_dir_logfs_je_dynsb_54760 ds_rename_dir logfs_je_dynsb 0 54760 NULL
171948 +enable_so_hsc_major_vardecl_hsi_char_c_54769 hsc_major vardecl_hsi_char.c 0 54769 NULL
171949 +enable_so_x_len_ccp_ecc_point_54774 x_len ccp_ecc_point 0 54774 NULL
171950 +enable_so_start_fstrim_range_54775 start fstrim_range 0 54775 NULL
171951 +enable_so_append_cnt_ixgbe_cb_54776 append_cnt ixgbe_cb 0 54776 NULL
171952 +enable_so_ext_channel_count_hda_gen_spec_54778 ext_channel_count hda_gen_spec 0 54778 NULL
171953 +enable_so_xfs_rtallocate_extent_fndecl_54783 xfs_rtallocate_extent fndecl 2-8-4 54783 NULL
171954 +enable_so_rcvegrbuf_chunks_qib_ctxtdata_54789 rcvegrbuf_chunks qib_ctxtdata 0 54789 NULL
171955 +enable_so_size_dvb_ringbuffer_54794 size dvb_ringbuffer 0 54794 NULL
171956 +enable_so_num_sg_agp_memory_54800 num_sg agp_memory 0 54800 NULL
171957 +enable_so_spk_msg_set_fndecl_54801 spk_msg_set fndecl 3 54801 NULL
171958 +enable_so_num_snd_bebob_meter_spec_54805 num snd_bebob_meter_spec 0 54805 NULL
171959 +enable_so_unlock_extent_cached_fndecl_54806 unlock_extent_cached fndecl 2-3 54806 NULL nohasharray
171960 +enable_so_buf_size__BIG_IOCTL_Command_struct_54806 buf_size _BIG_IOCTL_Command_struct 0 54806 &enable_so_unlock_extent_cached_fndecl_54806
171961 +enable_so_dma_reserve_vardecl_page_alloc_c_54807 dma_reserve vardecl_page_alloc.c 0 54807 NULL
171962 +enable_so_nr_cached_objects_super_operations_54808 nr_cached_objects super_operations 0 54808 NULL
171963 +enable_so_fsx_extsize_fsxattr_54812 fsx_extsize fsxattr 0 54812 NULL
171964 +enable_so_pci_request_regions_fndecl_54816 pci_request_regions fndecl 0 54816 NULL
171965 +enable_so_ep_out_ksdazzle_cb_54817 ep_out ksdazzle_cb 0 54817 NULL nohasharray
171966 +enable_so_nv50_vm_create_fndecl_54817 nv50_vm_create fndecl 3-2 54817 &enable_so_ep_out_ksdazzle_cb_54817
171967 +enable_so_target_count_dm_ioctl_54826 target_count dm_ioctl 0 54826 NULL
171968 +enable_so_last_adv_data_len_discovery_state_54833 last_adv_data_len discovery_state 0 54833 NULL
171969 +enable_so_kernel_readv_fndecl_54834 kernel_readv fndecl 3 54834 NULL
171970 +enable_so_ixgbe_pci_sriov_configure_fndecl_54843 ixgbe_pci_sriov_configure fndecl 2 54843 NULL
171971 +enable_so_reiserfs_readpages_fndecl_54846 reiserfs_readpages fndecl 4 54846 NULL
171972 +enable_so_blkdev_direct_IO_fndecl_54850 blkdev_direct_IO fndecl 3 54850 NULL
171973 +enable_so_request_lock_fndecl_54853 request_lock fndecl 4 54853 NULL
171974 +enable_so_addr_len_net_device_54857 addr_len net_device 0 54857 NULL nohasharray
171975 +enable_so_compat_sys_kexec_load_fndecl_54857 compat_sys_kexec_load fndecl 2 54857 &enable_so_addr_len_net_device_54857
171976 +enable_so_batadv_bla_get_backbone_gw_fndecl_54858 batadv_bla_get_backbone_gw fndecl 3 54858 NULL
171977 +enable_so_sr_blkno_ocfs2_suballoc_result_54860 sr_blkno ocfs2_suballoc_result 0 54860 NULL
171978 +enable_so_vb2_vmalloc_get_userptr_fndecl_54862 vb2_vmalloc_get_userptr fndecl 2-3 54862 NULL
171979 +enable_so_mru_ippp_struct_54863 mru ippp_struct 0 54863 NULL nohasharray
171980 +enable_so_shmem_file_llseek_fndecl_54863 shmem_file_llseek fndecl 2 54863 &enable_so_mru_ippp_struct_54863
171981 +enable_so_spi_register_board_info_fndecl_54864 spi_register_board_info fndecl 2 54864 NULL
171982 +enable_so_usb_dmac_desc_get_fndecl_54869 usb_dmac_desc_get fndecl 2 54869 NULL
171983 +enable_so_leaf_copy_boundary_item_fndecl_54870 leaf_copy_boundary_item fndecl 4 54870 NULL
171984 +enable_so_bufsize_nm256_stream_54875 bufsize nm256_stream 0 54875 NULL
171985 +enable_so_tt_stat_ofs_cyttsp4_opcfg_54880 tt_stat_ofs cyttsp4_opcfg 0 54880 NULL
171986 +enable_so_md_super_write_fndecl_54884 md_super_write fndecl 4-3 54884 NULL
171987 +enable_so_compress_sliced_buf_fndecl_54891 compress_sliced_buf fndecl 0 54891 NULL
171988 +enable_so_lmc_proto_type_fndecl_54893 lmc_proto_type fndecl 0 54893 NULL
171989 +enable_so___breadahead_fndecl_54896 __breadahead fndecl 3-2 54896 NULL
171990 +enable_so_num_uars_mlx5_uuar_info_54898 num_uars mlx5_uuar_info 0 54898 NULL
171991 +enable_so_dm_table_create_fndecl_54900 dm_table_create fndecl 3 54900 NULL
171992 +enable_so_buffer_size_qcaspi_54902 buffer_size qcaspi 0 54902 NULL nohasharray
171993 +enable_so_sr_read_tochdr_fndecl_54902 sr_read_tochdr fndecl 0 54902 &enable_so_buffer_size_qcaspi_54902
171994 +enable_so_rds_page_copy_user_fndecl_54904 rds_page_copy_user fndecl 4 54904 NULL
171995 +enable_so_ext4_es_cache_extent_fndecl_54906 ext4_es_cache_extent fndecl 2-3 54906 NULL
171996 +enable_so_numa_distance_cnt_vardecl_numa_c_54911 numa_distance_cnt vardecl_numa.c 0 54911 NULL
171997 +enable_so_pcan_dump_mem_fndecl_54915 pcan_dump_mem fndecl 3 54915 NULL
171998 +enable_so_iscsit_build_pdu_and_seq_lists_fndecl_54916 iscsit_build_pdu_and_seq_lists fndecl 2 54916 NULL
171999 +enable_so_ib_init_ah_from_path_fndecl_54917 ib_init_ah_from_path fndecl 2 54917 NULL
172000 +enable_so_sd_start_ov361x_fndecl_54922 sd_start_ov361x fndecl 0 54922 NULL
172001 +enable_so_line_length_fb_fix_screeninfo_54923 line_length fb_fix_screeninfo 0 54923 NULL nohasharray
172002 +enable_so_ipr_copy_ucode_buffer_fndecl_54923 ipr_copy_ucode_buffer fndecl 3 54923 &enable_so_line_length_fb_fix_screeninfo_54923
172003 +enable_so_sector_dm_io_region_54924 sector dm_io_region 0 54924 NULL
172004 +enable_so_cc2520_write_txfifo_fndecl_54930 cc2520_write_txfifo fndecl 3 54930 NULL
172005 +enable_so_xfs_end_io_direct_write_fndecl_54936 xfs_end_io_direct_write fndecl 3-2 54936 NULL
172006 +enable_so_hfs_find_set_zero_bits_fndecl_54937 hfs_find_set_zero_bits fndecl 0-3-2 54937 NULL
172007 +enable_so_blk_queue_logical_block_size_fndecl_54946 blk_queue_logical_block_size fndecl 2 54946 NULL
172008 +enable_so_encx24j600_cmdn_fndecl_54953 encx24j600_cmdn fndecl 4 54953 NULL nohasharray
172009 +enable_so_per_rxd_space_vxge_hw_ring_attr_54953 per_rxd_space vxge_hw_ring_attr 0 54953 &enable_so_encx24j600_cmdn_fndecl_54953
172010 +enable_so_log_blocks_per_seg_f2fs_super_block_54960 log_blocks_per_seg f2fs_super_block 0 54960 NULL
172011 +enable_so_pci_enable_sriov_fndecl_54962 pci_enable_sriov fndecl 2 54962 NULL
172012 +enable_so_offset_usb_iso_packet_descriptor_54977 offset usb_iso_packet_descriptor 0 54977 NULL
172013 +enable_so_v4l2_src_w_yuv_playback_info_54979 v4l2_src_w yuv_playback_info 0 54979 NULL
172014 +enable_so_len_cn_msg_54981 len cn_msg 0 54981 NULL
172015 +enable_so_fence_wait_any_timeout_fndecl_54982 fence_wait_any_timeout fndecl 2 54982 NULL
172016 +enable_so_size_qib_rq_54983 size qib_rq 0 54983 NULL
172017 +enable_so_ocfs2_direct_IO_write_fndecl_54985 ocfs2_direct_IO_write fndecl 3 54985 NULL
172018 +enable_so_alloc_netdev_mqs_fndecl_54989 alloc_netdev_mqs fndecl 5-1-6 54989 NULL
172019 +enable_so_rx_frame_size_pn533_frame_ops_54990 rx_frame_size pn533_frame_ops 0 54990 NULL
172020 +enable_so_ns_last_cno_the_nilfs_54997 ns_last_cno the_nilfs 0 54997 NULL
172021 +enable_so_rx_bufsize_bc_state_54999 rx_bufsize bc_state 0 54999 NULL nohasharray
172022 +enable_so_send_wqe_overhead_fndecl_54999 send_wqe_overhead fndecl 0 54999 &enable_so_rx_bufsize_bc_state_54999
172023 +enable_so_udf_alloc_i_data_fndecl_55001 udf_alloc_i_data fndecl 2 55001 NULL
172024 +enable_so_of_irq_to_resource_fndecl_55008 of_irq_to_resource fndecl 2 55008 NULL
172025 +enable_so_pvr2_hdw_cpufw_get_fndecl_55011 pvr2_hdw_cpufw_get fndecl 0-2-4 55011 NULL
172026 +enable_so_reply_payload_rcv_len_iscsi_bsg_reply_55012 reply_payload_rcv_len iscsi_bsg_reply 0 55012 NULL
172027 +enable_so_of_pci_get_host_bridge_resources_fndecl_55015 of_pci_get_host_bridge_resources fndecl 3-2 55015 NULL
172028 +enable_so_cz_smu_populate_single_scratch_entry_fndecl_55022 cz_smu_populate_single_scratch_entry fndecl 3 55022 NULL
172029 +enable_so_spec_romfs_inode_55023 spec romfs_inode 0 55023 NULL
172030 +enable_so_command_setcompressionparams_fndecl_55026 command_setcompressionparams fndecl 0 55026 NULL
172031 +enable_so_get_memsize_fndecl_55032 get_memsize fndecl 0 55032 NULL
172032 +enable_so_flash_timeout_lm3646_platform_data_55033 flash_timeout lm3646_platform_data 0 55033 NULL
172033 +enable_so_ov518_i2c_r_fndecl_55039 ov518_i2c_r fndecl 0 55039 NULL
172034 +enable_so_length_i2400m_tlv_hdr_55043 length i2400m_tlv_hdr 0 55043 NULL
172035 +enable_so_ieee80211_rx_mgmt_deauth_fndecl_55044 ieee80211_rx_mgmt_deauth fndecl 3 55044 NULL nohasharray
172036 +enable_so_hpi_alloc_control_cache_fndecl_55044 hpi_alloc_control_cache fndecl 1 55044 &enable_so_ieee80211_rx_mgmt_deauth_fndecl_55044
172037 +enable_so_vram_end_amdgpu_mc_55051 vram_end amdgpu_mc 0 55051 NULL
172038 +enable_so_h_panel_info_55057 h panel_info 0 55057 NULL nohasharray
172039 +enable_so_osd_xres_vardecl_ivtvfb_c_55057 osd_xres vardecl_ivtvfb.c 0 55057 &enable_so_h_panel_info_55057
172040 +enable_so_olo_num_comps_pnfs_osd_layout_55062 olo_num_comps pnfs_osd_layout 0 55062 NULL nohasharray
172041 +enable_so___mic_dma_alloc_fndecl_55062 __mic_dma_alloc fndecl 2 55062 &enable_so_olo_num_comps_pnfs_osd_layout_55062
172042 +enable_so_mlx4_alloc_hwq_res_fndecl_55064 mlx4_alloc_hwq_res fndecl 3 55064 NULL
172043 +enable_so_restart_sge_fndecl_55067 restart_sge fndecl 0-4-3 55067 NULL
172044 +enable_so_size_netup_unidvb_buffer_55068 size netup_unidvb_buffer 0 55068 NULL
172045 +enable_so_sddr55_get_capacity_fndecl_55072 sddr55_get_capacity fndecl 0 55072 NULL
172046 +enable_so_p9_virtio_zc_request_fndecl_55074 p9_virtio_zc_request fndecl 6-5-7 55074 NULL
172047 +enable_so_dev_dm_ioctl_55075 dev dm_ioctl 0 55075 NULL
172048 +enable_so_cp_pad_len_eata_info_55079 cp_pad_len eata_info 0 55079 NULL
172049 +enable_so_ext4_iget_normal_fndecl_55086 ext4_iget_normal fndecl 2 55086 NULL nohasharray
172050 +enable_so_frame_len_b43legacy_rxhdr_fw3_55086 frame_len b43legacy_rxhdr_fw3 0 55086 &enable_so_ext4_iget_normal_fndecl_55086
172051 +enable_so_width_smiapp_csi_data_format_55090 width smiapp_csi_data_format 0 55090 NULL
172052 +enable_so_vlan_rx_desc_55097 vlan rx_desc 0 55097 NULL
172053 +enable_so_read_kmem_fndecl_55103 read_kmem fndecl 3 55103 NULL
172054 +enable_so_fat_mirror_bhs_fndecl_55104 fat_mirror_bhs fndecl 0 55104 NULL nohasharray
172055 +enable_so_nftids_tid_info_55104 nftids tid_info 0 55104 &enable_so_fat_mirror_bhs_fndecl_55104
172056 +enable_so_fat_dir_entries_fat_bios_param_block_55106 fat_dir_entries fat_bios_param_block 0 55106 NULL nohasharray
172057 +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
172058 +enable_so_pnfs_num_cont_bytes_fndecl_55107 pnfs_num_cont_bytes fndecl 0-2 55107 NULL nohasharray
172059 +enable_so_SyS_getxattr_fndecl_55107 SyS_getxattr fndecl 4 55107 &enable_so_pnfs_num_cont_bytes_fndecl_55107
172060 +enable_so_min_channel_count_hda_gen_spec_55108 min_channel_count hda_gen_spec 0 55108 NULL
172061 +enable_so_scatterwalk_ffwd_fndecl_55110 scatterwalk_ffwd fndecl 3 55110 NULL
172062 +enable_so_y_zoran_overlay_settings_55113 y zoran_overlay_settings 0 55113 NULL
172063 +enable_so_unpack_to_rootfs_fndecl_55124 unpack_to_rootfs fndecl 2 55124 NULL
172064 +enable_so_length_dw_radeon_cs_chunk_55128 length_dw radeon_cs_chunk 0 55128 NULL
172065 +enable_so_btrfs_search_old_slot_fndecl_55133 btrfs_search_old_slot fndecl 0 55133 NULL
172066 +enable_so_ea_data_len_gfs2_ea_header_55134 ea_data_len gfs2_ea_header 0 55134 NULL
172067 +enable_so_namelen_dlm_lock_params_55146 namelen dlm_lock_params 0 55146 NULL
172068 +enable_so_gigaset_isowbuf_getbytes_fndecl_55147 gigaset_isowbuf_getbytes fndecl 0-2 55147 NULL
172069 +enable_so_befs_find_brun_dblindirect_fndecl_55152 befs_find_brun_dblindirect fndecl 3 55152 NULL
172070 +enable_so_offset_req_ies_ndis_80211_assoc_info_55155 offset_req_ies ndis_80211_assoc_info 0 55155 NULL
172071 +enable_so_sb_start_md_rdev_55161 sb_start md_rdev 0 55161 NULL
172072 +enable_so_buffer_to_user_fndecl_55164 buffer_to_user fndecl 3 55164 NULL
172073 +enable_so_len_replay_entry_55168 len replay_entry 0 55168 NULL
172074 +enable_so_pid_filter_count_dvb_usb_adapter_fe_properties_55180 pid_filter_count dvb_usb_adapter_fe_properties 0 55180 NULL
172075 +enable_so_hpfs_load_code_page_fndecl_55184 hpfs_load_code_page fndecl 2 55184 NULL
172076 +enable_so_virtqueue_get_vring_size_fndecl_55188 virtqueue_get_vring_size fndecl 0 55188 NULL
172077 +enable_so_result_dio_55189 result dio 0 55189 NULL
172078 +enable_so_efx_mcdi_rpc_async_quiet_fndecl_55191 efx_mcdi_rpc_async_quiet fndecl 4-5 55191 NULL
172079 +enable_so_vmxnet3_change_mtu_fndecl_55195 vmxnet3_change_mtu fndecl 2 55195 NULL
172080 +enable_so_seg_count_agp_region_55196 seg_count agp_region 0 55196 NULL
172081 +enable_so_drm_gtf2_2c_fndecl_55202 drm_gtf2_2c fndecl 0 55202 NULL
172082 +enable_so_len_uffdio_range_55211 len uffdio_range 0 55211 NULL
172083 +enable_so_num_eqs_mlx4_caps_55225 num_eqs mlx4_caps 0 55225 NULL
172084 +enable_so_adv_instance_cnt_hci_dev_55228 adv_instance_cnt hci_dev 0 55228 NULL
172085 +enable_so_iwl_read_prph_fndecl_55229 iwl_read_prph fndecl 0 55229 NULL
172086 +enable_so_btrfs_prealloc_file_range_trans_fndecl_55231 btrfs_prealloc_file_range_trans fndecl 4 55231 NULL
172087 +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
172088 +enable_so_offset56_cm_lap_msg_55235 offset56 cm_lap_msg 0 55235 NULL nohasharray
172089 +enable_so_pstore_mkfile_fndecl_55235 pstore_mkfile fndecl 7 55235 &enable_so_offset56_cm_lap_msg_55235
172090 +enable_so_sb_logsunit_xfs_sb_55236 sb_logsunit xfs_sb 0 55236 NULL
172091 +enable_so_ibnl_put_attr_fndecl_55238 ibnl_put_attr fndecl 3 55238 NULL
172092 +enable_so_ieee80211_if_write_smps_fndecl_55245 ieee80211_if_write_smps fndecl 3 55245 NULL
172093 +enable_so_mwifiex_set_encode_fndecl_55247 mwifiex_set_encode fndecl 4 55247 NULL
172094 +enable_so_async_setkey_fndecl_55250 async_setkey fndecl 3 55250 NULL
172095 +enable_so_req_ring_size_srp_target_port_55251 req_ring_size srp_target_port 0 55251 NULL
172096 +enable_so_d_reclen_venus_dirent_55253 d_reclen venus_dirent 0 55253 NULL
172097 +enable_so_size_pci_cap_saved_data_55258 size pci_cap_saved_data 0 55258 NULL
172098 +enable_so___filemap_fdatawrite_range_fndecl_55259 __filemap_fdatawrite_range fndecl 0-2-3 55259 NULL
172099 +enable_so_bpf_convert_filter_fndecl_55264 bpf_convert_filter fndecl 2 55264 NULL
172100 +enable_so_mbox_count_blogic_adapter_55274 mbox_count blogic_adapter 0 55274 NULL
172101 +enable_so_bSubframeSize_uac_format_type_i_discrete_descriptor_55277 bSubframeSize uac_format_type_i_discrete_descriptor 0 55277 NULL nohasharray
172102 +enable_so_sgoffset_cxgbi_task_data_55277 sgoffset cxgbi_task_data 0 55277 &enable_so_bSubframeSize_uac_format_type_i_discrete_descriptor_55277
172103 +enable_so_apic_phys_vardecl_apic_c_55279 apic_phys vardecl_apic.c 0 55279 NULL nohasharray
172104 +enable_so_ext2_acl_from_disk_fndecl_55279 ext2_acl_from_disk fndecl 2 55279 &enable_so_apic_phys_vardecl_apic_c_55279 nohasharray
172105 +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
172106 +enable_so_ld_default_stripe_count_lov_desc_55281 ld_default_stripe_count lov_desc 0 55281 NULL
172107 +enable_so_copy_to_urb_fndecl_55284 copy_to_urb fndecl 5-4 55284 NULL nohasharray
172108 +enable_so_vb2_dqbuf_fndecl_55284 vb2_dqbuf fndecl 0 55284 &enable_so_copy_to_urb_fndecl_55284
172109 +enable_so_hdrlen_ipv6_rt_hdr_55289 hdrlen ipv6_rt_hdr 0 55289 NULL nohasharray
172110 +enable_so_readlen_proc_data_55289 readlen proc_data 0 55289 &enable_so_hdrlen_ipv6_rt_hdr_55289
172111 +enable_so_c_can_read_msg_object_fndecl_55291 c_can_read_msg_object fndecl 3 55291 NULL
172112 +enable_so_sq905c_command_fndecl_55293 sq905c_command fndecl 0 55293 NULL
172113 +enable_so_regmap_irq_chip_get_base_fndecl_55298 regmap_irq_chip_get_base fndecl 0 55298 NULL
172114 +enable_so_upd_bytes_ubi_volume_55301 upd_bytes ubi_volume 0 55301 NULL
172115 +enable_so_memcg_update_all_caches_fndecl_55303 memcg_update_all_caches fndecl 1 55303 NULL
172116 +enable_so_tgt_cnt_snic_report_tgts_cmpl_55306 tgt_cnt snic_report_tgts_cmpl 0 55306 NULL
172117 +enable_so_xfs_dialloc_fndecl_55309 xfs_dialloc fndecl 2 55309 NULL
172118 +enable_so_xfs_log_mount_fndecl_55312 xfs_log_mount fndecl 3-4 55312 NULL
172119 +enable_so_dataflash_read_fndecl_55313 dataflash_read fndecl 3 55313 NULL nohasharray
172120 +enable_so_bm_page_io_async_fndecl_55313 bm_page_io_async fndecl 2 55313 &enable_so_dataflash_read_fndecl_55313
172121 +enable_so_mon_buff_area_shrink_fndecl_55317 mon_buff_area_shrink fndecl 2 55317 NULL
172122 +enable_so_pcibios_iov_resource_alignment_fndecl_55327 pcibios_iov_resource_alignment fndecl 0 55327 NULL
172123 +enable_so_proc_scsi_host_write_fndecl_55336 proc_scsi_host_write fndecl 3 55336 NULL
172124 +enable_so_pipeline_pipeline_fifo_full_read_fndecl_55356 pipeline_pipeline_fifo_full_read fndecl 3 55356 NULL nohasharray
172125 +enable_so_alc_alloc_spec_fndecl_55356 alc_alloc_spec fndecl 2 55356 &enable_so_pipeline_pipeline_fifo_full_read_fndecl_55356
172126 +enable_so_fdt_del_node_fndecl_55357 fdt_del_node fndecl 2 55357 NULL
172127 +enable_so_islpci_mgt_transmit_fndecl_55366 islpci_mgt_transmit fndecl 5 55366 NULL
172128 +enable_so_btrfs_csum_one_bio_fndecl_55370 btrfs_csum_one_bio fndecl 0 55370 NULL
172129 +enable_so_cdc_mbim_process_dgram_fndecl_55371 cdc_mbim_process_dgram fndecl 4-3 55371 NULL nohasharray
172130 +enable_so_sctp_addto_param_fndecl_55371 sctp_addto_param fndecl 2 55371 &enable_so_cdc_mbim_process_dgram_fndecl_55371
172131 +enable_so_connect_frontend_dmx_demux_55378 connect_frontend dmx_demux 0 55378 NULL
172132 +enable_so_DataLength_smb2_write_rsp_55389 DataLength smb2_write_rsp 0 55389 NULL
172133 +enable_so_st_sensors_spi_read_multiple_byte_fndecl_55393 st_sensors_spi_read_multiple_byte fndecl 4 55393 NULL
172134 +enable_so_dxfer_len_skd_sg_io_55394 dxfer_len skd_sg_io 0 55394 NULL
172135 +enable_so_nprim_symtab_55398 nprim symtab 0 55398 NULL
172136 +enable_so_skb_to_sgvec_fndecl_55400 skb_to_sgvec fndecl 0-4-3 55400 NULL
172137 +enable_so_periodic_size_oxu_hcd_55401 periodic_size oxu_hcd 0 55401 NULL
172138 +enable_so_data_len_nf_conntrack_helper_55405 data_len nf_conntrack_helper 0 55405 NULL
172139 +enable_so_shmem_pread_fast_fndecl_55408 shmem_pread_fast fndecl 3 55408 NULL
172140 +enable_so_mpt_lan_type_trans_fndecl_55419 mpt_lan_type_trans fndecl 0 55419 NULL nohasharray
172141 +enable_so_min_param_range_55419 min param_range 0 55419 &enable_so_mpt_lan_type_trans_fndecl_55419
172142 +enable_so_memblock_trim_memory_fndecl_55423 memblock_trim_memory fndecl 1 55423 NULL
172143 +enable_so_snd_pcm_format_width_fndecl_55426 snd_pcm_format_width fndecl 0 55426 NULL
172144 +enable_so_hidp_set_raw_report_fndecl_55427 hidp_set_raw_report fndecl 4 55427 NULL
172145 +enable_so_rate_via_rate_lock_55434 rate via_rate_lock 0 55434 NULL
172146 +enable_so_rbd_osd_req_create_fndecl_55437 rbd_osd_req_create fndecl 3 55437 NULL
172147 +enable_so_wake_packet_length_iwl_wowlan_status_data_55438 wake_packet_length iwl_wowlan_status_data 0 55438 NULL
172148 +enable_so_nilfs_read_log_header_fndecl_55445 nilfs_read_log_header fndecl 2 55445 NULL nohasharray
172149 +enable_so_scan_read32_fndecl_55445 scan_read32 fndecl 0 55445 &enable_so_nilfs_read_log_header_fndecl_55445
172150 +enable_so_nilfs_direct_IO_fndecl_55447 nilfs_direct_IO fndecl 3 55447 NULL nohasharray
172151 +enable_so_dma_length_scatterlist_55447 dma_length scatterlist 0 55447 &enable_so_nilfs_direct_IO_fndecl_55447 nohasharray
172152 +enable_so_klen_nft_set_55447 klen nft_set 0 55447 &enable_so_dma_length_scatterlist_55447
172153 +enable_so_set_sample_rate_fndecl_55451 set_sample_rate fndecl 2 55451 NULL
172154 +enable_so_acpi_register_gsi_fndecl_55453 acpi_register_gsi fndecl 0 55453 NULL
172155 +enable_so_len_wm_coeff_parsed_coeff_55454 len wm_coeff_parsed_coeff 0 55454 NULL
172156 +enable_so_n_tty_receive_buf_fndecl_55457 n_tty_receive_buf fndecl 4 55457 NULL
172157 +enable_so_bcma_bus_next_num_vardecl_main_c_55461 bcma_bus_next_num vardecl_main.c 0 55461 NULL
172158 +enable_so_rx_ring2_size_vmxnet3_adapter_55465 rx_ring2_size vmxnet3_adapter 0 55465 NULL
172159 +enable_so_dma_buf_size_tegra_spi_data_55467 dma_buf_size tegra_spi_data 0 55467 NULL
172160 +enable_so_start_genius_cam_fndecl_55469 start_genius_cam fndecl 0 55469 NULL nohasharray
172161 +enable_so_macvtap_major_vardecl_macvtap_c_55469 macvtap_major vardecl_macvtap.c 0 55469 &enable_so_start_genius_cam_fndecl_55469
172162 +enable_so_hfsplus_cat_build_record_fndecl_55471 hfsplus_cat_build_record fndecl 2 55471 NULL
172163 +enable_so_xfs_bmapi_write_fndecl_55475 xfs_bmapi_write fndecl 4-3 55475 NULL nohasharray
172164 +enable_so_len_inet_frag_queue_55475 len inet_frag_queue 0 55475 &enable_so_xfs_bmapi_write_fndecl_55475
172165 +enable_so_ext4_da_write_begin_fndecl_55476 ext4_da_write_begin fndecl 4-3 55476 NULL
172166 +enable_so_vrefresh_drm_display_mode_55481 vrefresh drm_display_mode 0 55481 NULL nohasharray
172167 +enable_so___send_command_fndecl_55481 __send_command fndecl 7-5 55481 &enable_so_vrefresh_drm_display_mode_55481
172168 +enable_so_ocfs2_read_dx_leaf_fndecl_55488 ocfs2_read_dx_leaf fndecl 2 55488 NULL nohasharray
172169 +enable_so_data_offset_rndis_data_hdr_55488 data_offset rndis_data_hdr 0 55488 &enable_so_ocfs2_read_dx_leaf_fndecl_55488
172170 +enable_so_nft_set_ext_add_length_fndecl_55489 nft_set_ext_add_length fndecl 3 55489 NULL
172171 +enable_so_rx_jumbo_thresh_bnx2_55494 rx_jumbo_thresh bnx2 0 55494 NULL nohasharray
172172 +enable_so_r_offset_rds_page_remainder_55494 r_offset rds_page_remainder 0 55494 &enable_so_rx_jumbo_thresh_bnx2_55494 nohasharray
172173 +enable_so_data_length_iscsi_data_count_55494 data_length iscsi_data_count 0 55494 &enable_so_r_offset_rds_page_remainder_55494
172174 +enable_so_bl_pipe_downcall_fndecl_55499 bl_pipe_downcall fndecl 3 55499 NULL
172175 +enable_so_setup_nodes_for_search_fndecl_55515 setup_nodes_for_search fndecl 0 55515 NULL
172176 +enable_so_iram_offset_sst_res_info_55518 iram_offset sst_res_info 0 55518 NULL
172177 +enable_so_reg_bits_regmap_config_55521 reg_bits regmap_config 0 55521 NULL
172178 +enable_so_NumBlockTypes_cfi_intelext_regioninfo_55526 NumBlockTypes cfi_intelext_regioninfo 0 55526 NULL
172179 +enable_so_bofs_count_irlap_cb_55531 bofs_count irlap_cb 0 55531 NULL nohasharray
172180 +enable_so_iscsi_login_rx_data_fndecl_55531 iscsi_login_rx_data fndecl 3 55531 &enable_so_bofs_count_irlap_cb_55531
172181 +enable_so_blkdev_max_hw_sectors_vardecl_dev_c_55533 blkdev_max_hw_sectors vardecl_dev.c 0 55533 NULL
172182 +enable_so_irq_intel_lpss_platform_info_55538 irq intel_lpss_platform_info 0 55538 NULL
172183 +enable_so_crtcs_psb_ops_55540 crtcs psb_ops 0 55540 NULL
172184 +enable_so_rf_blkno_ocfs2_refcount_block_55545 rf_blkno ocfs2_refcount_block 0 55545 NULL
172185 +enable_so_isoc_enable_fndecl_55546 isoc_enable fndecl 0 55546 NULL
172186 +enable_so_tmp_afs_call_55554 tmp afs_call 0 55554 NULL
172187 +enable_so_usVSyncOffset__ATOM_DTD_FORMAT_55558 usVSyncOffset _ATOM_DTD_FORMAT 0 55558 NULL
172188 +enable_so_read_reg_fndecl_55560 read_reg fndecl 0 55560 NULL nohasharray
172189 +enable_so_filter_write_fndecl_55560 filter_write fndecl 3 55560 &enable_so_read_reg_fndecl_55560
172190 +enable_so_iv_len_ieee80211_key_conf_55561 iv_len ieee80211_key_conf 0 55561 NULL
172191 +enable_so_io_tlb_overflow_vardecl_swiotlb_c_55570 io_tlb_overflow vardecl_swiotlb.c 0 55570 NULL
172192 +enable_so_if_sdio_read_rx_len_fndecl_55579 if_sdio_read_rx_len fndecl 0 55579 NULL
172193 +enable_so_index_vardecl_pcsp_c_55582 index vardecl_pcsp.c 0 55582 NULL
172194 +enable_so_bfad_iocmd_phy_read_fndecl_55583 bfad_iocmd_phy_read fndecl 0 55583 NULL
172195 +enable_so_coh_page_bufsize_cl_object_header_55585 coh_page_bufsize cl_object_header 0 55585 NULL
172196 +enable_so_exofs_file_fsync_fndecl_55588 exofs_file_fsync fndecl 2-3 55588 NULL
172197 +enable_so_ext4_punch_hole_fndecl_55604 ext4_punch_hole fndecl 2-3 55604 NULL
172198 +enable_so_overlay_out_top_vivid_dev_55610 overlay_out_top vivid_dev 0 55610 NULL nohasharray
172199 +enable_so_amdgpu_vm_bo_map_fndecl_55610 amdgpu_vm_bo_map fndecl 5-3 55610 &enable_so_overlay_out_top_vivid_dev_55610
172200 +enable_so_udplite_manip_pkt_fndecl_55611 udplite_manip_pkt fndecl 4 55611 NULL
172201 +enable_so_length_ipw_rx_frame_55612 length ipw_rx_frame 0 55612 NULL
172202 +enable_so_alg_trunc_len_xfrm_algo_auth_55613 alg_trunc_len xfrm_algo_auth 0 55613 NULL
172203 +enable_so_initial_width_vmw_private_55615 initial_width vmw_private 0 55615 NULL nohasharray
172204 +enable_so_ybpp_camif_fmt_55615 ybpp camif_fmt 0 55615 &enable_so_initial_width_vmw_private_55615
172205 +enable_so_vmci_transport_dgram_dequeue_fndecl_55628 vmci_transport_dgram_dequeue fndecl 3 55628 NULL
172206 +enable_so_bin_string_fndecl_55631 bin_string fndecl 5-3 55631 NULL
172207 +enable_so_hfsplus_ext_read_extent_fndecl_55633 hfsplus_ext_read_extent fndecl 2 55633 NULL
172208 +enable_so_tcfv_push_proto_tcf_vlan_55635 tcfv_push_proto tcf_vlan 0 55635 NULL
172209 +enable_so_max_pkt_size_cx231xx_isoc_ctl_55637 max_pkt_size cx231xx_isoc_ctl 0 55637 NULL
172210 +enable_so_extra_tx_headroom_ieee80211_hw_55638 extra_tx_headroom ieee80211_hw 0 55638 NULL
172211 +enable_so_vmw_setup_otable_base_fndecl_55639 vmw_setup_otable_base fndecl 4 55639 NULL
172212 +enable_so_rcvidx_isar_hw_55643 rcvidx isar_hw 0 55643 NULL
172213 +enable_so_sr_read_sector_fndecl_55647 sr_read_sector fndecl 3 55647 NULL
172214 +enable_so_start_sector_mspro_sys_info_55650 start_sector mspro_sys_info 0 55650 NULL
172215 +enable_so_sg_nents_fndecl_55654 sg_nents fndecl 0 55654 NULL
172216 +enable_so_get_user_pages_fndecl_55655 get_user_pages fndecl 0-3 55655 NULL
172217 +enable_so_ath6kl_roam_mode_write_fndecl_55659 ath6kl_roam_mode_write fndecl 3 55659 NULL
172218 +enable_so_queue_logical_block_size_fndecl_55661 queue_logical_block_size fndecl 0 55661 NULL
172219 +enable_so_ath6kl_sdio_io_fndecl_55662 ath6kl_sdio_io fndecl 5 55662 NULL
172220 +enable_so_hfs_ext_lastblock_fndecl_55665 hfs_ext_lastblock fndecl 0 55665 NULL
172221 +enable_so_pagl_rightrec_xfs_perag_55670 pagl_rightrec xfs_perag 0 55670 NULL
172222 +enable_so_smsc47m1_handle_resources_fndecl_55676 smsc47m1_handle_resources fndecl 1 55676 NULL
172223 +enable_so_al_stripes_drbd_md_55679 al_stripes drbd_md 0 55679 NULL
172224 +enable_so_sel_read_avc_cache_threshold_fndecl_55685 sel_read_avc_cache_threshold fndecl 3 55685 NULL
172225 +enable_so_stv06xx_write_bridge_fndecl_55690 stv06xx_write_bridge fndecl 0 55690 NULL
172226 +enable_so_omfs_iget_fndecl_55693 omfs_iget fndecl 2 55693 NULL
172227 +enable_so_st_nci_hci_dm_update_aid_fndecl_55699 st_nci_hci_dm_update_aid fndecl 3 55699 NULL
172228 +enable_so_unique_pos_vardecl_jfs_dtree_c_55709 unique_pos vardecl_jfs_dtree.c 0 55709 NULL
172229 +enable_so_inline_wsize_rpcrdma_create_data_internal_55719 inline_wsize rpcrdma_create_data_internal 0 55719 NULL
172230 +enable_so_fbcon_resize_fndecl_55724 fbcon_resize fndecl 3-2 55724 NULL
172231 +enable_so_kvm_vcpu_gfn_to_page_fndecl_55725 kvm_vcpu_gfn_to_page fndecl 2 55725 NULL
172232 +enable_so_dst_command_fndecl_55728 dst_command fndecl 3 55728 NULL
172233 +enable_so_vsi_iext_vxfs_sb_info_55734 vsi_iext vxfs_sb_info 0 55734 NULL nohasharray
172234 +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
172235 +enable_so_btrfs_delalloc_reserve_metadata_fndecl_55736 btrfs_delalloc_reserve_metadata fndecl 0 55736 NULL
172236 +enable_so_cnt_mon_text_ptr_55741 cnt mon_text_ptr 0 55741 NULL
172237 +enable_so_max_eq_mlx4_func_55747 max_eq mlx4_func 0 55747 NULL
172238 +enable_so_pad_len_ubifs_pad_node_55751 pad_len ubifs_pad_node 0 55751 NULL nohasharray
172239 +enable_so_nilfs_mdt_set_entry_size_fndecl_55751 nilfs_mdt_set_entry_size fndecl 2-3 55751 &enable_so_pad_len_ubifs_pad_node_55751
172240 +enable_so_idma64_active_desc_size_fndecl_55752 idma64_active_desc_size fndecl 0 55752 NULL nohasharray
172241 +enable_so___az6007_read_fndecl_55752 __az6007_read fndecl 6 55752 &enable_so_idma64_active_desc_size_fndecl_55752
172242 +enable_so_nilfs_cpfile_read_fndecl_55758 nilfs_cpfile_read fndecl 2 55758 NULL
172243 +enable_so_vga_switcheroo_debugfs_write_fndecl_55763 vga_switcheroo_debugfs_write fndecl 3 55763 NULL
172244 +enable_so_offset_xfs_bmalloca_55767 offset xfs_bmalloca 0 55767 NULL
172245 +enable_so_s_next_psn_qib_qp_55768 s_next_psn qib_qp 0 55768 NULL
172246 +enable_so_flag_lpfc_dmabufext_55771 flag lpfc_dmabufext 0 55771 NULL
172247 +enable_so_dump_emit_fndecl_55772 dump_emit fndecl 3 55772 NULL
172248 +enable_so_ppp_write_fndecl_55777 ppp_write fndecl 3 55777 NULL
172249 +enable_so_rx_rx_xfr_read_fndecl_55779 rx_rx_xfr_read fndecl 3 55779 NULL
172250 +enable_so_width_cx25821_channel_55782 width cx25821_channel 0 55782 NULL
172251 +enable_so_MaxLiteCmds_vardecl_ips_c_55793 MaxLiteCmds vardecl_ips.c 0 55793 NULL
172252 +enable_so_lbs_lowrssi_write_fndecl_55802 lbs_lowrssi_write fndecl 3 55802 NULL
172253 +enable_so_media_dev_t_vardecl_media_devnode_c_55805 media_dev_t vardecl_media-devnode.c 0 55805 NULL
172254 +enable_so_xennet_tx_setup_grant_fndecl_55807 xennet_tx_setup_grant fndecl 3-2 55807 NULL
172255 +enable_so_velocity_rx_copy_fndecl_55812 velocity_rx_copy fndecl 2 55812 NULL
172256 +enable_so_init_send_hfcd_fndecl_55817 init_send_hfcd fndecl 1 55817 NULL
172257 +enable_so_encx24j600_raw_read_fndecl_55819 encx24j600_raw_read fndecl 4 55819 NULL
172258 +enable_so_result_status_yellowfin_desc_55822 result_status yellowfin_desc 0 55822 NULL
172259 +enable_so_sd_blksz_fw_dl_btmrvl_sdio_card_55832 sd_blksz_fw_dl btmrvl_sdio_card 0 55832 NULL
172260 +enable_so_dvb_ringbuffer_init_fndecl_55834 dvb_ringbuffer_init fndecl 3 55834 NULL
172261 +enable_so_or51132_readbuf_fndecl_55836 or51132_readbuf fndecl 3 55836 NULL
172262 +enable_so_rd_host_buf_pos_xilly_channel_55837 rd_host_buf_pos xilly_channel 0 55837 NULL
172263 +enable_so___jffs2_ref_totlen_fndecl_55842 __jffs2_ref_totlen fndecl 0 55842 NULL
172264 +enable_so_dr_free_blk_ocfs2_dx_root_block_55848 dr_free_blk ocfs2_dx_root_block 0 55848 NULL
172265 +enable_so_s_segment_usage_size_nilfs_super_block_55851 s_segment_usage_size nilfs_super_block 0 55851 NULL
172266 +enable_so___cfg80211_disconnected_fndecl_55853 __cfg80211_disconnected fndecl 3 55853 NULL
172267 +enable_so_ceph_msgpool_init_fndecl_55860 ceph_msgpool_init fndecl 3-4 55860 NULL nohasharray
172268 +enable_so_cw1200_queue_init_fndecl_55860 cw1200_queue_init fndecl 4 55860 &enable_so_ceph_msgpool_init_fndecl_55860
172269 +enable_so_do_raw_getsockopt_fndecl_55863 do_raw_getsockopt fndecl 0 55863 NULL
172270 +enable_so_cramino_fndecl_55864 cramino fndecl 0-2 55864 NULL
172271 +enable_so_nports_cyclades_card_55865 nports cyclades_card 0 55865 NULL
172272 +enable_so___find_pending_exception_fndecl_55867 __find_pending_exception fndecl 3 55867 NULL
172273 +enable_so___nonstatic_find_io_region_fndecl_55871 __nonstatic_find_io_region fndecl 2-3 55871 NULL
172274 +enable_so_cnic_alloc_dma_fndecl_55874 cnic_alloc_dma fndecl 3 55874 NULL
172275 +enable_so_usVSyncWidth__ATOM_DTD_FORMAT_55875 usVSyncWidth _ATOM_DTD_FORMAT 0 55875 NULL
172276 +enable_so_frame_size_usb_stream_config_55876 frame_size usb_stream_config 0 55876 NULL
172277 +enable_so_gtt_phys_start_psb_gtt_55877 gtt_phys_start psb_gtt 0 55877 NULL
172278 +enable_so_cp_table_size_amdgpu_rlc_55879 cp_table_size amdgpu_rlc 0 55879 NULL
172279 +enable_so_tomoyo_dump_page_fndecl_55882 tomoyo_dump_page fndecl 2 55882 NULL
172280 +enable_so_tlclk_major_vardecl_tlclk_c_55901 tlclk_major vardecl_tlclk.c 0 55901 NULL
172281 +enable_so_fragment_size_snd_compressed_buffer_55903 fragment_size snd_compressed_buffer 0 55903 NULL
172282 +enable_so_major_char_device_struct_55907 major char_device_struct 0 55907 NULL
172283 +enable_so_ad7280_chain_setup_fndecl_55912 ad7280_chain_setup fndecl 0 55912 NULL
172284 +enable_so_rocker_port_kcalloc_fndecl_55915 rocker_port_kcalloc fndecl 5-4 55915 NULL
172285 +enable_so_isr_fiqs_read_fndecl_55916 isr_fiqs_read fndecl 3 55916 NULL
172286 +enable_so_mrf24j40_long_regmap_read_fndecl_55922 mrf24j40_long_regmap_read fndecl 3-5 55922 NULL
172287 +enable_so_nf_nat_mangle_udp_packet_fndecl_55926 nf_nat_mangle_udp_packet fndecl 4-6-8 55926 NULL
172288 +enable_so_change_prot_numa_fndecl_55935 change_prot_numa fndecl 3-2 55935 NULL
172289 +enable_so_pktlen_pkt_attrib_55936 pktlen pkt_attrib 0 55936 NULL
172290 +enable_so__fdt_add_property_fndecl_55938 _fdt_add_property fndecl 2-4 55938 NULL
172291 +enable_so_autofs4_write_fndecl_55944 autofs4_write fndecl 4 55944 NULL
172292 +enable_so_image_size_nvbios_pcirT_55946 image_size nvbios_pcirT 0 55946 NULL
172293 +enable_so_rate_snd_oxfw_stream_formation_55949 rate snd_oxfw_stream_formation 0 55949 NULL nohasharray
172294 +enable_so_ib_create_ah_from_wc_fndecl_55949 ib_create_ah_from_wc fndecl 4 55949 &enable_so_rate_snd_oxfw_stream_formation_55949
172295 +enable_so_osst_seek_logical_blk_fndecl_55950 osst_seek_logical_blk fndecl 3 55950 NULL
172296 +enable_so_batadv_tvlv_realloc_packet_buff_fndecl_55955 batadv_tvlv_realloc_packet_buff fndecl 4-3 55955 NULL
172297 +enable_so___generic_file_write_iter_fndecl_55960 __generic_file_write_iter fndecl 0 55960 NULL
172298 +enable_so_pkey_table_len_mthca_limits_55962 pkey_table_len mthca_limits 0 55962 NULL
172299 +enable_so_transfer_buffer_length_urb_55970 transfer_buffer_length urb 0 55970 NULL nohasharray
172300 +enable_so_data2_sisusb_command_55970 data2 sisusb_command 0 55970 &enable_so_transfer_buffer_length_urb_55970 nohasharray
172301 +enable_so_sctp_make_datafrag_empty_fndecl_55970 sctp_make_datafrag_empty fndecl 5 55970 &enable_so_data2_sisusb_command_55970
172302 +enable_so_reg_w_ixbuf_fndecl_55971 reg_w_ixbuf fndecl 4 55971 NULL
172303 +enable_so_host_int_scan_fndecl_55976 host_int_scan fndecl 5-7 55976 NULL
172304 +enable_so_hippi_type_trans_fndecl_55978 hippi_type_trans fndecl 0 55978 NULL
172305 +enable_so_subbuf_size_rchan_55979 subbuf_size rchan 0 55979 NULL nohasharray
172306 +enable_so_scsi_sense_length_se_cmd_55979 scsi_sense_length se_cmd 0 55979 &enable_so_subbuf_size_rchan_55979
172307 +enable_so_mon_bin_get_data_fndecl_55998 mon_bin_get_data fndecl 0-4 55998 NULL
172308 +enable_so_mmc_send_cxd_native_fndecl_56003 mmc_send_cxd_native fndecl 4 56003 NULL
172309 +enable_so_max_degraded_r5conf_56004 max_degraded r5conf 0 56004 NULL
172310 +enable_so_len_pipe_buffer_56007 len pipe_buffer 0 56007 NULL
172311 +enable_so_qib_cdev_init_fndecl_56009 qib_cdev_init fndecl 1 56009 NULL
172312 +enable_so_midi_snd_bebob_stream_formation_56012 midi snd_bebob_stream_formation 0 56012 NULL
172313 +enable_so_usbtest_alloc_urb_fndecl_56013 usbtest_alloc_urb fndecl 3-5-2 56013 NULL nohasharray
172314 +enable_so__osdv1_req_encode_common_fndecl_56013 _osdv1_req_encode_common fndecl 2 56013 &enable_so_usbtest_alloc_urb_fndecl_56013
172315 +enable_so_i2400m_change_mtu_fndecl_56021 i2400m_change_mtu fndecl 2 56021 NULL
172316 +enable_so_num_pins_lola_pin_array_56022 num_pins lola_pin_array 0 56022 NULL
172317 +enable_so___ocfs2_change_file_space_fndecl_56023 __ocfs2_change_file_space fndecl 3 56023 NULL
172318 +enable_so_vm_memory_committed_fndecl_56024 vm_memory_committed fndecl 0 56024 NULL
172319 +enable_so_vlan_id_ib_mac_iocb_rsp_56025 vlan_id ib_mac_iocb_rsp 0 56025 NULL nohasharray
172320 +enable_so_bootmode_store_fndecl_56025 bootmode_store fndecl 4 56025 &enable_so_vlan_id_ib_mac_iocb_rsp_56025
172321 +enable_so_ov519_pkt_scan_fndecl_56026 ov519_pkt_scan fndecl 3 56026 NULL
172322 +enable_so___iio_device_attr_init_fndecl_56028 __iio_device_attr_init fndecl 0 56028 NULL
172323 +enable_so_bfad_iocmd_itnim_get_attr_fndecl_56032 bfad_iocmd_itnim_get_attr fndecl 0 56032 NULL
172324 +enable_so_can_nocow_extent_fndecl_56034 can_nocow_extent fndecl 2 56034 NULL
172325 +enable_so_SYSC_keyctl_fndecl_56035 SYSC_keyctl fndecl 4 56035 NULL
172326 +enable_so_vbi_pixel_to_capture_vardecl_saa7146_vbi_c_56037 vbi_pixel_to_capture vardecl_saa7146_vbi.c 0 56037 NULL nohasharray
172327 +enable_so_sg_update_list_fndecl_56037 sg_update_list fndecl 2 56037 &enable_so_vbi_pixel_to_capture_vardecl_saa7146_vbi_c_56037
172328 +enable_so_totalram_pages_vardecl_56043 totalram_pages vardecl 0 56043 NULL
172329 +enable_so_hpi_instream_read_buf_fndecl_56045 hpi_instream_read_buf fndecl 3 56045 NULL
172330 +enable_so_punit_base_intel_pmc_ipc_dev_56048 punit_base intel_pmc_ipc_dev 0 56048 NULL
172331 +enable_so_status_whc_qtd_56049 status whc_qtd 0 56049 NULL
172332 +enable_so_usb_wwan_setup_urb_fndecl_56054 usb_wwan_setup_urb fndecl 6-3-2 56054 NULL
172333 +enable_so_mod_xfs_alloc_arg_56058 mod xfs_alloc_arg 0 56058 NULL
172334 +enable_so_drm_mm_insert_helper_range_fndecl_56060 drm_mm_insert_helper_range fndecl 3 56060 NULL
172335 +enable_so_chainsize_ctlr_info_56067 chainsize ctlr_info 0 56067 NULL
172336 +enable_so_iov_iter_single_seg_count_fndecl_56069 iov_iter_single_seg_count fndecl 0 56069 NULL
172337 +enable_so_frag_ceph_mds_reply_dirfrag_56070 frag ceph_mds_reply_dirfrag 0 56070 NULL
172338 +enable_so_full_page_bnx2x_agg_info_56071 full_page bnx2x_agg_info 0 56071 NULL
172339 +enable_so_batch_start_offset_drm_i915_gem_execbuffer2_56077 batch_start_offset drm_i915_gem_execbuffer2 0 56077 NULL nohasharray
172340 +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
172341 +enable_so_fdt_first_property_offset_fndecl_56079 fdt_first_property_offset fndecl 2 56079 NULL
172342 +enable_so_gprs_type_trans_fndecl_56082 gprs_type_trans fndecl 0 56082 NULL
172343 +enable_so_bfad_iocmd_ioc_get_pcifn_cfg_fndecl_56085 bfad_iocmd_ioc_get_pcifn_cfg fndecl 0 56085 NULL nohasharray
172344 +enable_so_cb710_wait_for_event_fndecl_56085 cb710_wait_for_event fndecl 0 56085 &enable_so_bfad_iocmd_ioc_get_pcifn_cfg_fndecl_56085
172345 +enable_so_num_chunks_drm_amdgpu_cs_in_56088 num_chunks drm_amdgpu_cs_in 0 56088 NULL
172346 +enable_so_acpi_data_get_property_fndecl_56093 acpi_data_get_property fndecl 0 56093 NULL
172347 +enable_so_xprt_udp_slot_table_entries_vardecl_xprtsock_c_56096 xprt_udp_slot_table_entries vardecl_xprtsock.c 0 56096 NULL nohasharray
172348 +enable_so_size_perf_event_header_56096 size perf_event_header 0 56096 &enable_so_xprt_udp_slot_table_entries_vardecl_xprtsock_c_56096
172349 +enable_so_datalength_fwheader_56097 datalength fwheader 0 56097 NULL
172350 +enable_so_proc_thread_self_readlink_fndecl_56102 proc_thread_self_readlink fndecl 3 56102 NULL
172351 +enable_so_l_sectBBsize_xlog_56103 l_sectBBsize xlog 0 56103 NULL
172352 +enable_so_max_frame_size__synclinkmp_info_56104 max_frame_size _synclinkmp_info 0 56104 NULL nohasharray
172353 +enable_so_sync_page_io_fndecl_56104 sync_page_io fndecl 3-2 56104 &enable_so_max_frame_size__synclinkmp_info_56104
172354 +enable_so_play_audio_cb_fndecl_56108 play_audio_cb fndecl 2 56108 NULL nohasharray
172355 +enable_so_maximum_input_absinfo_56108 maximum input_absinfo 0 56108 &enable_so_play_audio_cb_fndecl_56108
172356 +enable_so_p54_alloc_skb_fndecl_56109 p54_alloc_skb fndecl 3 56109 NULL
172357 +enable_so_zlib_inflate_blob_fndecl_56117 zlib_inflate_blob fndecl 2-4 56117 NULL nohasharray
172358 +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
172359 +enable_so_ssl_prev_nilfs_snapshot_list_56120 ssl_prev nilfs_snapshot_list 0 56120 NULL
172360 +enable_so_q0_depth_bna_rx_config_56122 q0_depth bna_rx_config 0 56122 NULL
172361 +enable_so_ath5k_setup_channels_fndecl_56123 ath5k_setup_channels fndecl 0 56123 NULL nohasharray
172362 +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
172363 +enable_so_usbvision_v4l2_read_fndecl_56129 usbvision_v4l2_read fndecl 3 56129 NULL
172364 +enable_so_size_direct_56131 size direct 0 56131 NULL nohasharray
172365 +enable_so_av7110_vbi_write_fndecl_56131 av7110_vbi_write fndecl 3 56131 &enable_so_size_direct_56131
172366 +enable_so_sl_max_ip_sf_socklist_56140 sl_max ip_sf_socklist 0 56140 NULL
172367 +enable_so_prepare_add_efi_setup_data_fndecl_56147 prepare_add_efi_setup_data fndecl 3-2 56147 NULL
172368 +enable_so_reiserfs_resize_fndecl_56154 reiserfs_resize fndecl 2 56154 NULL
172369 +enable_so_i2c_hid_get_raw_report_fndecl_56155 i2c_hid_get_raw_report fndecl 4 56155 NULL
172370 +enable_so_ipx_pktsize_ipxhdr_56157 ipx_pktsize ipxhdr 0 56157 NULL
172371 +enable_so_bfa_fcport_cfg_maxfrsize_fndecl_56160 bfa_fcport_cfg_maxfrsize fndecl 2 56160 NULL nohasharray
172372 +enable_so_nd_num_o2nm_node_56160 nd_num o2nm_node 0 56160 &enable_so_bfa_fcport_cfg_maxfrsize_fndecl_56160
172373 +enable_so_lpfc_do_offline_fndecl_56165 lpfc_do_offline fndecl 0 56165 NULL
172374 +enable_so_block_len_extent_map_56171 block_len extent_map 0 56171 NULL nohasharray
172375 +enable_so_nl80211_send_disassoc_fndecl_56171 nl80211_send_disassoc fndecl 4 56171 &enable_so_block_len_extent_map_56171
172376 +enable_so_ivtv_read_pos_fndecl_56179 ivtv_read_pos fndecl 3 56179 NULL nohasharray
172377 +enable_so_iwl_calib_set_fndecl_56179 iwl_calib_set fndecl 3 56179 &enable_so_ivtv_read_pos_fndecl_56179
172378 +enable_so_csum_offset_virtio_net_hdr_56180 csum_offset virtio_net_hdr 0 56180 NULL
172379 +enable_so_sccb_reg_read_fndecl_56181 sccb_reg_read fndecl 0 56181 NULL nohasharray
172380 +enable_so_ivsize_vardecl_encrypted_c_56181 ivsize vardecl_encrypted.c 0 56181 &enable_so_sccb_reg_read_fndecl_56181
172381 +enable_so_sctp_make_heartbeat_ack_fndecl_56184 sctp_make_heartbeat_ack fndecl 4 56184 NULL
172382 +enable_so_rx_ring_size_bnx2_56185 rx_ring_size bnx2 0 56185 NULL
172383 +enable_so_size_netlbl_domhsh_tbl_56186 size netlbl_domhsh_tbl 0 56186 NULL
172384 +enable_so_wl1271_tx_fill_hdr_fndecl_56191 wl1271_tx_fill_hdr fndecl 4 56191 NULL
172385 +enable_so_bfad_iocmd_diag_loopback_fndecl_56192 bfad_iocmd_diag_loopback fndecl 0 56192 NULL
172386 +enable_so_qgroupid_btrfs_qgroup_56202 qgroupid btrfs_qgroup 0 56202 NULL nohasharray
172387 +enable_so_rx_data_fndecl_56202 rx_data fndecl 4-3 56202 &enable_so_qgroupid_btrfs_qgroup_56202
172388 +enable_so_dma_rx_size_sxgbe_priv_data_56205 dma_rx_size sxgbe_priv_data 0 56205 NULL
172389 +enable_so_dlen_pg_56210 dlen pg 0 56210 NULL
172390 +enable_so_jffs2_fill_wbuf_fndecl_56212 jffs2_fill_wbuf fndecl 3 56212 NULL
172391 +enable_so_width_v4l2_mbus_framefmt_56214 width v4l2_mbus_framefmt 0 56214 NULL
172392 +enable_so_sample_stack_user_perf_event_attr_56220 sample_stack_user perf_event_attr 0 56220 NULL
172393 +enable_so_offset_cifs_writedata_56222 offset cifs_writedata 0 56222 NULL nohasharray
172394 +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
172395 +enable_so_offset_iscsi_data_rsp_56223 offset iscsi_data_rsp 0 56223 NULL
172396 +enable_so_depth_s2255_fmt_56229 depth s2255_fmt 0 56229 NULL
172397 +enable_so_ocfs2_mv_xattr_buckets_fndecl_56231 ocfs2_mv_xattr_buckets fndecl 6-3-5-4 56231 NULL
172398 +enable_so_security_inode_permission_fndecl_56235 security_inode_permission fndecl 0 56235 NULL
172399 +enable_so_wm8350_register_led_fndecl_56237 wm8350_register_led fndecl 2-4-3 56237 NULL
172400 +enable_so_max_recv_dlength_iscsi_bus_flash_conn_56238 max_recv_dlength iscsi_bus_flash_conn 0 56238 NULL
172401 +enable_so_af9013_wr_regs_fndecl_56239 af9013_wr_regs fndecl 4 56239 NULL
172402 +enable_so_wBlockNumber_ms_bootblock_sysinf_56240 wBlockNumber ms_bootblock_sysinf 0 56240 NULL
172403 +enable_so_qlcnic_set_tx_ring_count_fndecl_56242 qlcnic_set_tx_ring_count fndecl 2 56242 NULL
172404 +enable_so_cfpkt_peek_head_fndecl_56245 cfpkt_peek_head fndecl 3 56245 NULL nohasharray
172405 +enable_so_dt_gpio_count_fndecl_56245 dt_gpio_count fndecl 0 56245 &enable_so_cfpkt_peek_head_fndecl_56245
172406 +enable_so_qtd_fill_fndecl_56249 qtd_fill fndecl 5-6-3-0-4 56249 NULL
172407 +enable_so_size_uvc_xu_control_query_56263 size uvc_xu_control_query 0 56263 NULL
172408 +enable_so_dmreq_start_crypt_config_56268 dmreq_start crypt_config 0 56268 NULL
172409 +enable_so_qp_alloc_res_fndecl_56275 qp_alloc_res fndecl 5 56275 NULL
172410 +enable_so_vyres_crtc_56276 vyres crtc 0 56276 NULL
172411 +enable_so_s_raid_stride_ext4_super_block_56277 s_raid_stride ext4_super_block 0 56277 NULL
172412 +enable_so_fi_ino_ocfs2_find_inode_args_56279 fi_ino ocfs2_find_inode_args 0 56279 NULL nohasharray
172413 +enable_so_pci_mmconfig_add_fndecl_56279 pci_mmconfig_add fndecl 2-3-4 56279 &enable_so_fi_ino_ocfs2_find_inode_args_56279
172414 +enable_so_dram_base_intel_sst_drv_56282 dram_base intel_sst_drv 0 56282 NULL
172415 +enable_so_x_max_wacom_features_56285 x_max wacom_features 0 56285 NULL
172416 +enable_so_header_length_txentry_desc_56288 header_length txentry_desc 0 56288 NULL
172417 +enable_so_nr_rates_audioformat_56293 nr_rates audioformat 0 56293 NULL
172418 +enable_so_ttymajor_vardecl_synclink_gt_c_56300 ttymajor vardecl_synclink_gt.c 0 56300 NULL
172419 +enable_so_ext4_fallocate_fndecl_56314 ext4_fallocate fndecl 3-4 56314 NULL
172420 +enable_so_essid_len_ipw_priv_56318 essid_len ipw_priv 0 56318 NULL
172421 +enable_so_SYSC_lgetxattr_fndecl_56330 SYSC_lgetxattr fndecl 4 56330 NULL
172422 +enable_so_ebt_compat_match_offset_fndecl_56334 ebt_compat_match_offset fndecl 0-2 56334 NULL
172423 +enable_so_pipeline_dec_packet_in_fifo_full_read_fndecl_56335 pipeline_dec_packet_in_fifo_full_read fndecl 3 56335 NULL
172424 +enable_so_ath6kl_wmi_ap_set_apsd_fndecl_56339 ath6kl_wmi_ap_set_apsd fndecl 2 56339 NULL
172425 +enable_so_drm_atomic_helper_plane_set_property_fndecl_56340 drm_atomic_helper_plane_set_property fndecl 3 56340 NULL
172426 +enable_so_tx_ring_size_bnx2_56345 tx_ring_size bnx2 0 56345 NULL
172427 +enable_so_blksize_vardecl_encrypted_c_56348 blksize vardecl_encrypted.c 0 56348 NULL
172428 +enable_so_mapping_level_fndecl_56350 mapping_level fndecl 0-2 56350 NULL
172429 +enable_so_dccp_ackvec_add_new_fndecl_56359 dccp_ackvec_add_new fndecl 2-3 56359 NULL
172430 +enable_so_acl_permission_check_fndecl_56360 acl_permission_check fndecl 0 56360 NULL
172431 +enable_so_interrupt_out_endpointAddress_usb_serial_port_56364 interrupt_out_endpointAddress usb_serial_port 0 56364 NULL
172432 +enable_so_ide_set_pio_mode_fndecl_56371 ide_set_pio_mode fndecl 2 56371 NULL
172433 +enable_so_len_asd_ha_addrspace_56381 len asd_ha_addrspace 0 56381 NULL
172434 +enable_so_sel_read_checkreqprot_fndecl_56383 sel_read_checkreqprot fndecl 3 56383 NULL
172435 +enable_so_nd_cmd_in_size_fndecl_56386 nd_cmd_in_size fndecl 0 56386 NULL
172436 +enable_so_stride_geom_56394 stride geom 0 56394 NULL
172437 +enable_so_ieee80211_fragment_fndecl_56395 ieee80211_fragment fndecl 4-3 56395 NULL
172438 +enable_so_lost_out_tcp_sock_56397 lost_out tcp_sock 0 56397 NULL
172439 +enable_so_buf_count_drm_device_dma_56399 buf_count drm_device_dma 0 56399 NULL
172440 +enable_so_ccw_clear_fndecl_56408 ccw_clear fndecl 3-5-6-4 56408 NULL
172441 +enable_so_f2fs_llseek_fndecl_56409 f2fs_llseek fndecl 2 56409 NULL
172442 +enable_so_ieee80211_auth_challenge_fndecl_56418 ieee80211_auth_challenge fndecl 3 56418 NULL
172443 +enable_so_notify_change_fndecl_56420 notify_change fndecl 0 56420 NULL
172444 +enable_so_max_recv_wr_ib_qp_cap_56426 max_recv_wr ib_qp_cap 0 56426 NULL
172445 +enable_so_max_eps_mv_u3d_56428 max_eps mv_u3d 0 56428 NULL
172446 +enable_so_llc_ui_sendmsg_fndecl_56432 llc_ui_sendmsg fndecl 3 56432 NULL nohasharray
172447 +enable_so_stat_len_sge_56432 stat_len sge 0 56432 &enable_so_llc_ui_sendmsg_fndecl_56432
172448 +enable_so_write_node_fndecl_56434 write_node fndecl 4 56434 NULL nohasharray
172449 +enable_so_ath6kl_wmi_cancel_remain_on_chnl_cmd_fndecl_56434 ath6kl_wmi_cancel_remain_on_chnl_cmd fndecl 2 56434 &enable_so_write_node_fndecl_56434
172450 +enable_so_hsync_end_drm_display_mode_56439 hsync_end drm_display_mode 0 56439 NULL nohasharray
172451 +enable_so_bdbars_count_intel8x0_56439 bdbars_count intel8x0 0 56439 &enable_so_hsync_end_drm_display_mode_56439 nohasharray
172452 +enable_so_idx_lebs_ubifs_lp_stats_56439 idx_lebs ubifs_lp_stats 0 56439 &enable_so_bdbars_count_intel8x0_56439
172453 +enable_so_vlan_tag_lro_56441 vlan_tag lro 0 56441 NULL nohasharray
172454 +enable_so_fb_sys_write_fndecl_56441 fb_sys_write fndecl 0-3 56441 &enable_so_vlan_tag_lro_56441
172455 +enable_so_gtk_ivlen_iwl_mvm_56442 gtk_ivlen iwl_mvm 0 56442 NULL nohasharray
172456 +enable_so_num_rx_queues_igb_adapter_56442 num_rx_queues igb_adapter 0 56442 &enable_so_gtk_ivlen_iwl_mvm_56442
172457 +enable_so_alloc_gid_table_fndecl_56444 alloc_gid_table fndecl 1 56444 NULL
172458 +enable_so_DataTransferLength_bulk_cb_wrap_56447 DataTransferLength bulk_cb_wrap 0 56447 NULL
172459 +enable_so___ocfs2_increase_refcount_fndecl_56450 __ocfs2_increase_refcount fndecl 5-4 56450 NULL
172460 +enable_so_size_tcp_fastopen_request_56457 size tcp_fastopen_request 0 56457 NULL nohasharray
172461 +enable_so_block_dm_thin_lookup_result_56457 block dm_thin_lookup_result 0 56457 &enable_so_size_tcp_fastopen_request_56457
172462 +enable_so_winfo_size_data_queue_56462 winfo_size data_queue 0 56462 NULL nohasharray
172463 +enable_so_scnt_aoe_cfghdr_56462 scnt aoe_cfghdr 0 56462 &enable_so_winfo_size_data_queue_56462
172464 +enable_so_tpg_init_fndecl_56464 tpg_init fndecl 2-3 56464 NULL
172465 +enable_so_packet_sendmsg_fndecl_56465 packet_sendmsg fndecl 3 56465 NULL nohasharray
172466 +enable_so_ia_size_iattr_56465 ia_size iattr 0 56465 &enable_so_packet_sendmsg_fndecl_56465
172467 +enable_so__pci_add_cap_save_buffer_fndecl_56466 _pci_add_cap_save_buffer fndecl 4 56466 NULL
172468 +enable_so_SyS_poll_fndecl_56467 SyS_poll fndecl 2 56467 NULL
172469 +enable_so_banks_mca_config_56472 banks mca_config 0 56472 NULL
172470 +enable_so___erst_clear_from_storage_fndecl_56476 __erst_clear_from_storage fndecl 1 56476 NULL
172471 +enable_so_func_suspend_usb_function_56478 func_suspend usb_function 0 56478 NULL
172472 +enable_so_dataflash_read_fact_otp_fndecl_56487 dataflash_read_fact_otp fndecl 3-2 56487 NULL
172473 +enable_so_xen_allocate_irqs_dynamic_fndecl_56489 xen_allocate_irqs_dynamic fndecl 0 56489 NULL nohasharray
172474 +enable_so_pp_read_fndecl_56489 pp_read fndecl 3 56489 &enable_so_xen_allocate_irqs_dynamic_fndecl_56489
172475 +enable_so_ext4_split_convert_extents_fndecl_56493 ext4_split_convert_extents fndecl 0 56493 NULL
172476 +enable_so_nci_hci_send_cmd_fndecl_56495 nci_hci_send_cmd fndecl 5 56495 NULL
172477 +enable_so_free_bit_ocfs2_cached_block_free_56500 free_bit ocfs2_cached_block_free 0 56500 NULL
172478 +enable_so_choose_mtu_fndecl_56503 choose_mtu fndecl 0 56503 NULL nohasharray
172479 +enable_so_len_audit_proctitle_56503 len audit_proctitle 0 56503 &enable_so_choose_mtu_fndecl_56503
172480 +enable_so_process_ptload_program_headers_elf64_fndecl_56505 process_ptload_program_headers_elf64 fndecl 3-2 56505 NULL
172481 +enable_so_batadv_socket_receive_packet_fndecl_56509 batadv_socket_receive_packet fndecl 2 56509 NULL
172482 +enable_so_stream_size_yuv_playback_info_56511 stream_size yuv_playback_info 0 56511 NULL
172483 +enable_so_error_retry_list_with_code_fndecl_56518 error_retry_list_with_code fndecl 2 56518 NULL nohasharray
172484 +enable_so_ntb_netdev_rx_handler_fndecl_56518 ntb_netdev_rx_handler fndecl 4 56518 &enable_so_error_retry_list_with_code_fndecl_56518
172485 +enable_so___vb2_wait_for_done_vb_fndecl_56525 __vb2_wait_for_done_vb fndecl 0 56525 NULL
172486 +enable_so_xbfi_startblock_xfs_bmap_free_item_56529 xbfi_startblock xfs_bmap_free_item 0 56529 NULL
172487 +enable_so_vp_modern_find_vqs_fndecl_56530 vp_modern_find_vqs fndecl 2 56530 NULL nohasharray
172488 +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
172489 +enable_so_core_size_rw_module_56544 core_size_rw module 0 56544 NULL nohasharray
172490 +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
172491 +enable_so_max_ethqsets_sge_56552 max_ethqsets sge 0 56552 NULL
172492 +enable_so_cachefiles_cook_key_fndecl_56553 cachefiles_cook_key fndecl 2 56553 NULL
172493 +enable_so_sctp_tsnmap_grow_fndecl_56579 sctp_tsnmap_grow fndecl 2 56579 NULL
172494 +enable_so_rss_table_size_i40e_pf_56586 rss_table_size i40e_pf 0 56586 NULL
172495 +enable_so_buf_bytes_mmc_blk_ioc_data_56589 buf_bytes mmc_blk_ioc_data 0 56589 NULL
172496 +enable_so_offset_cramfs_inode_56601 offset cramfs_inode 0 56601 NULL
172497 +enable_so_qt2_write_fndecl_56603 qt2_write fndecl 4 56603 NULL
172498 +enable_so_cb_irq_yenta_socket_56604 cb_irq yenta_socket 0 56604 NULL
172499 +enable_so_q_num_hnae_handle_56609 q_num hnae_handle 0 56609 NULL
172500 +enable_so_security_size_rxrpc_connection_56613 security_size rxrpc_connection 0 56613 NULL
172501 +enable_so_pll_op_clk_freq_hz_smiapp_pll_56615 pll_op_clk_freq_hz smiapp_pll 0 56615 NULL
172502 +enable_so_pci_map_size_iadev_priv_56617 pci_map_size iadev_priv 0 56617 NULL
172503 +enable_so_ieee80211_tdls_mgmt_fndecl_56618 ieee80211_tdls_mgmt fndecl 10 56618 NULL
172504 +enable_so_memremap_fndecl_56619 memremap fndecl 2-1 56619 NULL
172505 +enable_so_afs_dir_iterate_block_fndecl_56630 afs_dir_iterate_block fndecl 3 56630 NULL nohasharray
172506 +enable_so_rproc_name_read_fndecl_56630 rproc_name_read fndecl 3 56630 &enable_so_afs_dir_iterate_block_fndecl_56630
172507 +enable_so_x509_note_issuer_fndecl_56631 x509_note_issuer fndecl 5 56631 NULL
172508 +enable_so_max_blk_count_mmc_host_56634 max_blk_count mmc_host 0 56634 NULL nohasharray
172509 +enable_so_get_register_page_interruptible_fndecl_56634 get_register_page_interruptible fndecl 5 56634 &enable_so_max_blk_count_mmc_host_56634 nohasharray
172510 +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
172511 +enable_so_arena_write_bytes_fndecl_56636 arena_write_bytes fndecl 0 56636 NULL
172512 +enable_so_devt_device_56638 devt device 0 56638 NULL
172513 +enable_so_last_sect_blkif_request_segment_56644 last_sect blkif_request_segment 0 56644 NULL
172514 +enable_so_count_v4l2_requestbuffers_56650 count v4l2_requestbuffers 0 56650 NULL
172515 +enable_so_bytenr_btrfs_root_item_56657 bytenr btrfs_root_item 0 56657 NULL
172516 +enable_so___ksize_fndecl_56662 __ksize fndecl 0 56662 NULL
172517 +enable_so___memblock_find_range_top_down_fndecl_56669 __memblock_find_range_top_down fndecl 0-4-3-1-2 56669 NULL nohasharray
172518 +enable_so_csio_scsi_iqlen_vardecl_56669 csio_scsi_iqlen vardecl 0 56669 &enable_so___memblock_find_range_top_down_fndecl_56669
172519 +enable_so_fdt_supernode_atdepth_offset_fndecl_56670 fdt_supernode_atdepth_offset fndecl 0 56670 NULL
172520 +enable_so_cifs_writedata_alloc_fndecl_56675 cifs_writedata_alloc fndecl 1 56675 NULL nohasharray
172521 +enable_so_ath6kl_usb_submit_ctrl_in_fndecl_56675 ath6kl_usb_submit_ctrl_in fndecl 6 56675 &enable_so_cifs_writedata_alloc_fndecl_56675
172522 +enable_so_len_fw_desc_56676 len fw_desc 0 56676 NULL
172523 +enable_so_vp702x_usb_inout_cmd_fndecl_56679 vp702x_usb_inout_cmd fndecl 4-6 56679 NULL
172524 +enable_so_pbl_top_rdma_info_56683 pbl_top rdma_info 0 56683 NULL
172525 +enable_so_max_channels_hda_multi_out_56686 max_channels hda_multi_out 0 56686 NULL nohasharray
172526 +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
172527 +enable_so_ath6kl_usb_post_recv_transfers_fndecl_56687 ath6kl_usb_post_recv_transfers fndecl 2 56687 NULL nohasharray
172528 +enable_so_npages_in_use_dma_pool_56687 npages_in_use dma_pool 0 56687 &enable_so_ath6kl_usb_post_recv_transfers_fndecl_56687
172529 +enable_so_new_tape_buffer_fndecl_56689 new_tape_buffer fndecl 2 56689 NULL
172530 +enable_so_ks8851_rdreg_fndecl_56695 ks8851_rdreg fndecl 4 56695 NULL
172531 +enable_so_remove_migration_pte_fndecl_56701 remove_migration_pte fndecl 3 56701 NULL nohasharray
172532 +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
172533 +enable_so_usb_err_gspca_dev_56706 usb_err gspca_dev 0 56706 NULL
172534 +enable_so_mmc_erase_fndecl_56707 mmc_erase fndecl 0 56707 NULL
172535 +enable_so_zlib_inflate_workspacesize_fndecl_56716 zlib_inflate_workspacesize fndecl 0 56716 NULL
172536 +enable_so_qgroupid_btrfs_ioctl_qgroup_create_args_56717 qgroupid btrfs_ioctl_qgroup_create_args 0 56717 NULL
172537 +enable_so_munlock_vma_pages_range_fndecl_56718 munlock_vma_pages_range fndecl 2 56718 NULL
172538 +enable_so_mmc_hs400_to_hs200_fndecl_56719 mmc_hs400_to_hs200 fndecl 0 56719 NULL
172539 +enable_so_ext4_get_group_number_fndecl_56720 ext4_get_group_number fndecl 0 56720 NULL nohasharray
172540 +enable_so_rcvegrbuf_size_qib_ctxtdata_56720 rcvegrbuf_size qib_ctxtdata 0 56720 &enable_so_ext4_get_group_number_fndecl_56720
172541 +enable_so_opcnt_nfsd4_compoundargs_56722 opcnt nfsd4_compoundargs 0 56722 NULL
172542 +enable_so_offset_cw1200_txpriv_56729 offset cw1200_txpriv 0 56729 NULL
172543 +enable_so_search_empty_fndecl_56737 search_empty fndecl 2 56737 NULL
172544 +enable_so_drm_gem_cma_create_fndecl_56742 drm_gem_cma_create fndecl 2 56742 NULL nohasharray
172545 +enable_so_val_len_ceph_inode_xattr_56742 val_len ceph_inode_xattr 0 56742 &enable_so_drm_gem_cma_create_fndecl_56742
172546 +enable_so_sb_logsectlog_xfs_sb_56750 sb_logsectlog xfs_sb 0 56750 NULL
172547 +enable_so_page_offset_skb_frag_struct_56751 page_offset skb_frag_struct 0 56751 NULL
172548 +enable_so_read_pipe_ezusb_priv_56753 read_pipe ezusb_priv 0 56753 NULL nohasharray
172549 +enable_so_xprt_complete_bc_request_fndecl_56753 xprt_complete_bc_request fndecl 2 56753 &enable_so_read_pipe_ezusb_priv_56753
172550 +enable_so_length_scatterlist_56760 length scatterlist 0 56760 NULL nohasharray
172551 +enable_so_cfg_fof_lpfc_hba_56760 cfg_fof lpfc_hba 0 56760 &enable_so_length_scatterlist_56760
172552 +enable_so_npkt_cam_56768 npkt cam 0 56768 NULL
172553 +enable_so_arch_ptrace_fndecl_56774 arch_ptrace fndecl 3 56774 NULL
172554 +enable_so_max_rpi_lpfc_max_cfg_param_56782 max_rpi lpfc_max_cfg_param 0 56782 NULL
172555 +enable_so_mlx5_set_path_fndecl_56783 mlx5_set_path fndecl 4 56783 NULL
172556 +enable_so_mem_size_mxt_data_56785 mem_size mxt_data 0 56785 NULL
172557 +enable_so_vc_saved_y_vc_data_56792 vc_saved_y vc_data 0 56792 NULL nohasharray
172558 +enable_so_ext4_group_overhead_blocks_fndecl_56792 ext4_group_overhead_blocks fndecl 0 56792 &enable_so_vc_saved_y_vc_data_56792
172559 +enable_so_ib_uverbs_create_cq_fndecl_56793 ib_uverbs_create_cq fndecl 4 56793 NULL
172560 +enable_so_context_id_bnx2fc_rport_56807 context_id bnx2fc_rport 0 56807 NULL nohasharray
172561 +enable_so_state_count_acpi_processor_performance_56807 state_count acpi_processor_performance 0 56807 &enable_so_context_id_bnx2fc_rport_56807
172562 +enable_so_num_pages_vmci_queue_kern_if_56812 num_pages vmci_queue_kern_if 0 56812 NULL
172563 +enable_so_di_entries_gfs2_dinode_56817 di_entries gfs2_dinode 0 56817 NULL
172564 +enable_so_dm_thin_remove_range_fndecl_56819 dm_thin_remove_range fndecl 0 56819 NULL
172565 +enable_so_hugetlbfs_pagecache_page_fndecl_56822 hugetlbfs_pagecache_page fndecl 3 56822 NULL
172566 +enable_so_page_base_xdr_buf_56823 page_base xdr_buf 0 56823 NULL
172567 +enable_so_netdev_change_mtu_fndecl_56827 netdev_change_mtu fndecl 2 56827 NULL
172568 +enable_so_SyS_syslog_fndecl_56828 SyS_syslog fndecl 3 56828 NULL
172569 +enable_so_ds_victim_ino_logfs_je_dynsb_56832 ds_victim_ino logfs_je_dynsb 0 56832 NULL nohasharray
172570 +enable_so_io_size_smi_info_56832 io_size smi_info 0 56832 &enable_so_ds_victim_ino_logfs_je_dynsb_56832
172571 +enable_so_truesize_sk_buff_56834 truesize sk_buff 0 56834 NULL
172572 +enable_so_sc_max_requests_svcxprt_rdma_56840 sc_max_requests svcxprt_rdma 0 56840 NULL
172573 +enable_so_tail_TxFifo_56844 tail TxFifo 0 56844 NULL
172574 +enable_so_capacity_alauda_media_info_56845 capacity alauda_media_info 0 56845 NULL
172575 +enable_so_tomoyo_read_self_fndecl_56848 tomoyo_read_self fndecl 3 56848 NULL
172576 +enable_so_blocks_mmc_test_area_56853 blocks mmc_test_area 0 56853 NULL
172577 +enable_so_transfer_one_spi_master_56858 transfer_one spi_master 0 56858 NULL
172578 +enable_so_dup_array_fndecl_56860 dup_array fndecl 3 56860 NULL
172579 +enable_so_max_cq_sz_mlx4_dev_cap_56868 max_cq_sz mlx4_dev_cap 0 56868 NULL nohasharray
172580 +enable_so_count_subheaders_fndecl_56868 count_subheaders fndecl 0 56868 &enable_so_max_cq_sz_mlx4_dev_cap_56868
172581 +enable_so_status_pipe_uas_dev_info_56869 status_pipe uas_dev_info 0 56869 NULL
172582 +enable_so_combined_count_ethtool_channels_56871 combined_count ethtool_channels 0 56871 NULL
172583 +enable_so_freecom_writedata_fndecl_56872 freecom_writedata fndecl 4 56872 NULL
172584 +enable_so_read_aperture_fndecl_56876 read_aperture fndecl 0 56876 NULL
172585 +enable_so_fat_rebuild_parent_fndecl_56877 fat_rebuild_parent fndecl 2 56877 NULL nohasharray
172586 +enable_so_ath6kl_wmi_set_pvb_cmd_fndecl_56877 ath6kl_wmi_set_pvb_cmd fndecl 2 56877 &enable_so_fat_rebuild_parent_fndecl_56877
172587 +enable_so_xfs_itruncate_extents_fndecl_56879 xfs_itruncate_extents fndecl 4 56879 NULL nohasharray
172588 +enable_so_scsi_execute_fndecl_56879 scsi_execute fndecl 5 56879 &enable_so_xfs_itruncate_extents_fndecl_56879
172589 +enable_so___btrfs_set_prop_fndecl_56883 __btrfs_set_prop fndecl 5 56883 NULL
172590 +enable_so_dx_dirent_blk_ocfs2_dx_entry_56884 dx_dirent_blk ocfs2_dx_entry 0 56884 NULL
172591 +enable_so_cmtp_send_frame_fndecl_56890 cmtp_send_frame fndecl 3 56890 NULL
172592 +enable_so_zr364xx_got_frame_fndecl_56891 zr364xx_got_frame fndecl 2 56891 NULL
172593 +enable_so_byte_count_drm_device_dma_56892 byte_count drm_device_dma 0 56892 NULL nohasharray
172594 +enable_so_total_size_qed_ilt_cli_blk_56892 total_size qed_ilt_cli_blk 0 56892 &enable_so_byte_count_drm_device_dma_56892 nohasharray
172595 +enable_so_prev_adaption_gsm_dlci_56892 prev_adaption gsm_dlci 0 56892 &enable_so_total_size_qed_ilt_cli_blk_56892
172596 +enable_so_width_font_desc_56899 width font_desc 0 56899 NULL
172597 +enable_so_xen_find_free_area_fndecl_56905 xen_find_free_area fndecl 0-1 56905 NULL
172598 +enable_so___process_new_xattr_fndecl_56906 __process_new_xattr fndecl 6-4 56906 NULL nohasharray
172599 +enable_so_length_fw_cdev_send_response_56906 length fw_cdev_send_response 0 56906 &enable_so___process_new_xattr_fndecl_56906
172600 +enable_so_max_port_number_tb_regs_switch_header_56907 max_port_number tb_regs_switch_header 0 56907 NULL
172601 +enable_so_mcopy_atomic_pte_fndecl_56913 mcopy_atomic_pte fndecl 4 56913 NULL
172602 +enable_so_diff_objects_assoc_array_ops_56914 diff_objects assoc_array_ops 0 56914 NULL
172603 +enable_so_cifs_fsync_fndecl_56917 cifs_fsync fndecl 2-3 56917 NULL nohasharray
172604 +enable_so_total_size_hfsplus_fork_raw_56917 total_size hfsplus_fork_raw 0 56917 &enable_so_cifs_fsync_fndecl_56917
172605 +enable_so_comedi_buf_write_n_allocated_fndecl_56919 comedi_buf_write_n_allocated fndecl 0 56919 NULL
172606 +enable_so_ip6_find_1stfragopt_fndecl_56923 ip6_find_1stfragopt fndecl 0 56923 NULL nohasharray
172607 +enable_so_xt_compat_target_offset_fndecl_56923 xt_compat_target_offset fndecl 0 56923 &enable_so_ip6_find_1stfragopt_fndecl_56923
172608 +enable_so_usb_gstrings_attach_fndecl_56924 usb_gstrings_attach fndecl 3 56924 NULL
172609 +enable_so_vram_vardecl_nvidia_c_56925 vram vardecl_nvidia.c 0 56925 NULL
172610 +enable_so_beiscsi_process_async_pdu_fndecl_56929 beiscsi_process_async_pdu fndecl 6 56929 NULL
172611 +enable_so_data_len_ib_mac_iocb_rsp_56930 data_len ib_mac_iocb_rsp 0 56930 NULL
172612 +enable_so_align_buffer_sz_sdhci_host_56931 align_buffer_sz sdhci_host 0 56931 NULL
172613 +enable_so_csize_jffs2_tmp_dnode_info_56933 csize jffs2_tmp_dnode_info 0 56933 NULL
172614 +enable_so_max_tar_initio_host_56934 max_tar initio_host 0 56934 NULL
172615 +enable_so_hotadd_new_pgdat_fndecl_56936 hotadd_new_pgdat fndecl 2 56936 NULL
172616 +enable_so_vmw_gmr_bind_fndecl_56940 vmw_gmr_bind fndecl 3 56940 NULL
172617 +enable_so_drm_property_replace_global_blob_fndecl_56945 drm_property_replace_global_blob fndecl 3 56945 NULL
172618 +enable_so_len_rx_hdr_56949 len rx_hdr 0 56949 NULL
172619 +enable_so_target_submit_cmd_fndecl_56950 target_submit_cmd fndecl 6 56950 NULL
172620 +enable_so_memblock_set_node_fndecl_56955 memblock_set_node fndecl 2-1 56955 NULL
172621 +enable_so_DevSizeShift_qinfo_chip_56957 DevSizeShift qinfo_chip 0 56957 NULL
172622 +enable_so_i_lastalloc_affs_inode_info_56961 i_lastalloc affs_inode_info 0 56961 NULL
172623 +enable_so_cur_pkt_size_pktgen_dev_56962 cur_pkt_size pktgen_dev 0 56962 NULL
172624 +enable_so_n_mem_slots_qxl_device_56964 n_mem_slots qxl_device 0 56964 NULL
172625 +enable_so_maxresp_cached_nfsd4_channel_attrs_56966 maxresp_cached nfsd4_channel_attrs 0 56966 NULL
172626 +enable_so_spanned_pages_zone_56972 spanned_pages zone 0 56972 NULL
172627 +enable_so_ceph_write_end_fndecl_56973 ceph_write_end fndecl 5-3 56973 NULL
172628 +enable_so_irq_blk_threshold_read_fndecl_56977 irq_blk_threshold_read fndecl 3 56977 NULL
172629 +enable_so_fddi_type_trans_fndecl_56978 fddi_type_trans fndecl 0 56978 NULL
172630 +enable_so_arp_hdr_len_fndecl_56980 arp_hdr_len fndecl 0 56980 NULL
172631 +enable_so_find_next_chunk_fndecl_56983 find_next_chunk fndecl 0 56983 NULL
172632 +enable_so_ath6kl_wmi_startscan_cmd_fndecl_56985 ath6kl_wmi_startscan_cmd fndecl 8-2 56985 NULL
172633 +enable_so_i2c_hid_alloc_buffers_fndecl_56986 i2c_hid_alloc_buffers fndecl 2 56986 NULL
172634 +enable_so_max_packet_whc_qset_56991 max_packet whc_qset 0 56991 NULL nohasharray
172635 +enable_so_btrfs_dio_bio_alloc_fndecl_56991 btrfs_dio_bio_alloc fndecl 2 56991 &enable_so_max_packet_whc_qset_56991
172636 +enable_so_lpfc_selective_reset_fndecl_56994 lpfc_selective_reset fndecl 0 56994 NULL
172637 +enable_so_pvr2_stream_buffer_count_fndecl_56996 pvr2_stream_buffer_count fndecl 2 56996 NULL
172638 +enable_so_write_file_spectral_count_fndecl_57000 write_file_spectral_count fndecl 3 57000 NULL
172639 +enable_so_num_tx_rings_bnx2_57001 num_tx_rings bnx2 0 57001 NULL nohasharray
172640 +enable_so_file_remove_privs_fndecl_57001 file_remove_privs fndecl 0 57001 &enable_so_num_tx_rings_bnx2_57001
172641 +enable_so_edid_size_dlfb_data_57003 edid_size dlfb_data 0 57003 NULL
172642 +enable_so_ext4_clear_blocks_fndecl_57012 ext4_clear_blocks fndecl 4-5 57012 NULL
172643 +enable_so_i2c_hack_wm8775_fndecl_57014 i2c_hack_wm8775 fndecl 4-6 57014 NULL
172644 +enable_so_expand_corename_fndecl_57021 expand_corename fndecl 2 57021 NULL
172645 +enable_so_buffer_bytes_max_snd_pcm_substream_57022 buffer_bytes_max snd_pcm_substream 0 57022 NULL
172646 +enable_so_sys_keyctl_fndecl_57023 sys_keyctl fndecl 4 57023 NULL nohasharray
172647 +enable_so_xs_send_kvec_fndecl_57023 xs_send_kvec fndecl 5-3 57023 &enable_so_sys_keyctl_fndecl_57023
172648 +enable_so_nfs_idmap_instantiate_fndecl_57026 nfs_idmap_instantiate fndecl 4 57026 NULL
172649 +enable_so_usb_packet_maxlen_usb_fifo_57029 usb_packet_maxlen usb_fifo 0 57029 NULL
172650 +enable_so_s_pkey_index_qib_qp_57031 s_pkey_index qib_qp 0 57031 NULL nohasharray
172651 +enable_so_xfrm_count_pfkey_enc_supported_fndecl_57031 xfrm_count_pfkey_enc_supported fndecl 0 57031 &enable_so_s_pkey_index_qib_qp_57031 nohasharray
172652 +enable_so_stacksize_xt_table_info_57031 stacksize xt_table_info 0 57031 &enable_so_xfrm_count_pfkey_enc_supported_fndecl_57031
172653 +enable_so_do_munmap_fndecl_57035 do_munmap fndecl 2-3 57035 NULL
172654 +enable_so_port_pd_mthca_av_57038 port_pd mthca_av 0 57038 NULL
172655 +enable_so_ib_qib_max_cqes_vardecl_57049 ib_qib_max_cqes vardecl 0 57049 NULL
172656 +enable_so_i_subdirs_ceph_inode_info_57052 i_subdirs ceph_inode_info 0 57052 NULL
172657 +enable_so_index_scsi_disk_57053 index scsi_disk 0 57053 NULL
172658 +enable_so_nsindex_size_nvdimm_drvdata_57060 nsindex_size nvdimm_drvdata 0 57060 NULL
172659 +enable_so___btrfs_free_reserved_extent_fndecl_57061 __btrfs_free_reserved_extent fndecl 3-2 57061 NULL nohasharray
172660 +enable_so_size_garmin_packet_57061 size garmin_packet 0 57061 &enable_so___btrfs_free_reserved_extent_fndecl_57061
172661 +enable_so_log_blocks_per_seg_f2fs_sb_info_57063 log_blocks_per_seg f2fs_sb_info 0 57063 NULL
172662 +enable_so_dm_pool_block_is_used_fndecl_57067 dm_pool_block_is_used fndecl 0 57067 NULL
172663 +enable_so_ezusb_write_ltv_fndecl_57071 ezusb_write_ltv fndecl 4 57071 NULL
172664 +enable_so_vifs_state_read_fndecl_57073 vifs_state_read fndecl 3 57073 NULL
172665 +enable_so_set_one_prio_fndecl_57075 set_one_prio fndecl 2 57075 NULL
172666 +enable_so_mem_map_size_efx_nic_type_57089 mem_map_size efx_nic_type 0 57089 NULL
172667 +enable_so_num_uars_mlx4_caps_57093 num_uars mlx4_caps 0 57093 NULL
172668 +enable_so_part_shift_vardecl_loop_c_57103 part_shift vardecl_loop.c 0 57103 NULL nohasharray
172669 +enable_so_mcs7830_get_reg_fndecl_57103 mcs7830_get_reg fndecl 3 57103 &enable_so_part_shift_vardecl_loop_c_57103
172670 +enable_so_sync_pt_create_fndecl_57105 sync_pt_create fndecl 2 57105 NULL
172671 +enable_so_total_sections_f2fs_sb_info_57118 total_sections f2fs_sb_info 0 57118 NULL
172672 +enable_so_size_nvif_notify_57130 size nvif_notify 0 57130 NULL
172673 +enable_so_gsm_mux_rx_netchar_fndecl_57131 gsm_mux_rx_netchar fndecl 3 57131 NULL
172674 +enable_so_ath10k_htt_rx_crypto_tail_len_fndecl_57132 ath10k_htt_rx_crypto_tail_len fndecl 0 57132 NULL nohasharray
172675 +enable_so_joydev_ioctl_fndecl_57132 joydev_ioctl fndecl 2 57132 &enable_so_ath10k_htt_rx_crypto_tail_len_fndecl_57132
172676 +enable_so_msg_controllen_msghdr_57136 msg_controllen msghdr 0 57136 NULL
172677 +enable_so_max_write_same_sectors_queue_limits_57138 max_write_same_sectors queue_limits 0 57138 NULL
172678 +enable_so_ha_end_pfn_hv_hotadd_state_57139 ha_end_pfn hv_hotadd_state 0 57139 NULL
172679 +enable_so_pci_set_dma_max_seg_size_fndecl_57140 pci_set_dma_max_seg_size fndecl 2 57140 NULL
172680 +enable_so_isku_sysfs_read_keys_easyzone_fndecl_57141 isku_sysfs_read_keys_easyzone fndecl 6 57141 NULL
172681 +enable_so_pack_sg_list_p_fndecl_57142 pack_sg_list_p fndecl 7-6 57142 NULL
172682 +enable_so_sb_agblklog_xfs_sb_57145 sb_agblklog xfs_sb 0 57145 NULL
172683 +enable_so_error_dm_rq_target_io_57148 error dm_rq_target_io 0 57148 NULL
172684 +enable_so_vlan_dev_vlan_id_fndecl_57152 vlan_dev_vlan_id fndecl 0 57152 NULL
172685 +enable_so_ofs_in_node_dnode_of_data_57156 ofs_in_node dnode_of_data 0 57156 NULL
172686 +enable_so_sd_rw_multi_fndecl_57157 sd_rw_multi fndecl 0 57157 NULL
172687 +enable_so_bytes_written_flags_cq_enet_rq_desc_57164 bytes_written_flags cq_enet_rq_desc 0 57164 NULL
172688 +enable_so_spi_wr_buf_fndecl_57169 spi_wr_buf fndecl 4 57169 NULL
172689 +enable_so_alloc_len_xps_map_57174 alloc_len xps_map 0 57174 NULL
172690 +enable_so_pd_points_ath5k_pdgain_info_57180 pd_points ath5k_pdgain_info 0 57180 NULL
172691 +enable_so_dpcm_playback_snd_soc_dai_link_57182 dpcm_playback snd_soc_dai_link 0 57182 NULL
172692 +enable_so_create_xattr_datum_fndecl_57183 create_xattr_datum fndecl 5 57183 NULL nohasharray
172693 +enable_so_irq_pkt_threshold_read_fndecl_57183 irq_pkt_threshold_read fndecl 3 57183 &enable_so_create_xattr_datum_fndecl_57183
172694 +enable_so_num_vfs_mlx4_dev_persistent_57187 num_vfs mlx4_dev_persistent 0 57187 NULL
172695 +enable_so_h_datalen_logfs_journal_header_57189 h_datalen logfs_journal_header 0 57189 NULL nohasharray
172696 +enable_so_z1_zt_57189 z1 zt 0 57189 &enable_so_h_datalen_logfs_journal_header_57189
172697 +enable_so_cfs_trace_copyin_string_fndecl_57191 cfs_trace_copyin_string fndecl 4 57191 NULL
172698 +enable_so_OutputCount_smb2_ioctl_rsp_57198 OutputCount smb2_ioctl_rsp 0 57198 NULL
172699 +enable_so_sector_dm_crypt_io_57208 sector dm_crypt_io 0 57208 NULL
172700 +enable_so_frag_max_size_inet6_skb_parm_57210 frag_max_size inet6_skb_parm 0 57210 NULL
172701 +enable_so_osd_req_op_xattr_init_fndecl_57211 osd_req_op_xattr_init fndecl 6 57211 NULL
172702 +enable_so_mon_buff_area_free_fndecl_57212 mon_buff_area_free fndecl 2 57212 NULL
172703 +enable_so_le_min_key_size_read_fndecl_57214 le_min_key_size_read fndecl 3 57214 NULL
172704 +enable_so_overflow_maj_vardecl_uverbs_main_c_57216 overflow_maj vardecl_uverbs_main.c 0 57216 NULL
172705 +enable_so_mss_Vmxnet3_RxCompDescExt_57228 mss Vmxnet3_RxCompDescExt 0 57228 NULL
172706 +enable_so_RxDescriptors_vardecl_pch_gbe_param_c_57229 RxDescriptors vardecl_pch_gbe_param.c 0 57229 NULL
172707 +enable_so_sm_sl_qib_ibport_57230 sm_sl qib_ibport 0 57230 NULL
172708 +enable_so_ufs_getfrag_block_fndecl_57234 ufs_getfrag_block fndecl 2 57234 NULL nohasharray
172709 +enable_so_len_setup_data_57234 len setup_data 0 57234 &enable_so_ufs_getfrag_block_fndecl_57234
172710 +enable_so_ext4_meta_bg_first_block_no_fndecl_57235 ext4_meta_bg_first_block_no fndecl 0-2 57235 NULL
172711 +enable_so_header_asix_rx_fixup_info_57237 header asix_rx_fixup_info 0 57237 NULL nohasharray
172712 +enable_so_li_namelen_nfsd4_link_57237 li_namelen nfsd4_link 0 57237 &enable_so_header_asix_rx_fixup_info_57237
172713 +enable_so_memfree_rate_to_ib_fndecl_57240 memfree_rate_to_ib fndecl 0 57240 NULL
172714 +enable_so_offset_ion_test_rw_data_57241 offset ion_test_rw_data 0 57241 NULL
172715 +enable_so_sys_dup3_fndecl_57246 sys_dup3 fndecl 2 57246 NULL
172716 +enable_so_maxlen_xfs_alloc_arg_57260 maxlen xfs_alloc_arg 0 57260 NULL
172717 +enable_so_si2165_read_fndecl_57262 si2165_read fndecl 4 57262 NULL
172718 +enable_so_sc18is602_setup_transfer_fndecl_57266 sc18is602_setup_transfer fndecl 0 57266 NULL
172719 +enable_so_fuse_dev_do_write_fndecl_57267 fuse_dev_do_write fndecl 3 57267 NULL
172720 +enable_so_port_srp_host_57271 port srp_host 0 57271 NULL
172721 +enable_so_mps_l2cap_le_conn_rsp_57280 mps l2cap_le_conn_rsp 0 57280 NULL
172722 +enable_so_entry_nr_kvm_assigned_msix_nr_57282 entry_nr kvm_assigned_msix_nr 0 57282 NULL
172723 +enable_so_dds_flags_p_sizes_57290 dds_flags p_sizes 0 57290 NULL
172724 +enable_so_h_vlan_encapsulated_proto_vlan_hdr_57295 h_vlan_encapsulated_proto vlan_hdr 0 57295 NULL
172725 +enable_so_packet_sz_musb_ep_57296 packet_sz musb_ep 0 57296 NULL nohasharray
172726 +enable_so_ovs_vport_alloc_fndecl_57296 ovs_vport_alloc fndecl 1 57296 &enable_so_packet_sz_musb_ep_57296
172727 +enable_so_ie_len_parsed_vndr_ie_info_57299 ie_len parsed_vndr_ie_info 0 57299 NULL
172728 +enable_so_create_entry_fndecl_57300 create_entry fndecl 2 57300 NULL
172729 +enable_so_pldbuflen_qid_rsp_ctrl_57301 pldbuflen_qid rsp_ctrl 0 57301 NULL
172730 +enable_so_tcp_off_tso_state_57305 tcp_off tso_state 0 57305 NULL
172731 +enable_so_qtd_copy_status_fndecl_57306 qtd_copy_status fndecl 0-4-3 57306 NULL
172732 +enable_so_ptk_ivlen_iwl_mvm_57307 ptk_ivlen iwl_mvm 0 57307 NULL
172733 +enable_so_elf_map_fndecl_57308 elf_map fndecl 6 57308 NULL nohasharray
172734 +enable_so_usCRTC_V_SyncStart__ATOM_MODE_TIMING_57308 usCRTC_V_SyncStart _ATOM_MODE_TIMING 0 57308 &enable_so_elf_map_fndecl_57308 nohasharray
172735 +enable_so_ip_setsockopt_fndecl_57308 ip_setsockopt fndecl 5-0 57308 &enable_so_usCRTC_V_SyncStart__ATOM_MODE_TIMING_57308
172736 +enable_so_orinoco_hw_get_essid_fndecl_57314 orinoco_hw_get_essid fndecl 0 57314 NULL
172737 +enable_so_aggr_size_rx_size_read_fndecl_57317 aggr_size_rx_size_read fndecl 3 57317 NULL
172738 +enable_so_interrupt_in_endpoint_size_ld_usb_57321 interrupt_in_endpoint_size ld_usb 0 57321 NULL
172739 +enable_so_acpi_gsi_to_irq_fndecl_57326 acpi_gsi_to_irq fndecl 1 57326 NULL
172740 +enable_so_fb_read_fndecl_57329 fb_read fndecl 3 57329 NULL
172741 +enable_so_ext4_expand_extra_isize_ea_fndecl_57344 ext4_expand_extra_isize_ea fndecl 2 57344 NULL
172742 +enable_so_root_hpfs_super_block_57345 root hpfs_super_block 0 57345 NULL
172743 +enable_so_align_nf_ct_ext_type_57348 align nf_ct_ext_type 0 57348 NULL
172744 +enable_so_ixgbe_pci_sriov_enable_fndecl_57353 ixgbe_pci_sriov_enable fndecl 2 57353 NULL
172745 +enable_so_lbs_debugfs_write_fndecl_57358 lbs_debugfs_write fndecl 3 57358 NULL
172746 +enable_so_usFirmwareUseInKb__ATOM_FIRMWARE_VRAM_RESERVE_INFO_57360 usFirmwareUseInKb _ATOM_FIRMWARE_VRAM_RESERVE_INFO 0 57360 NULL
172747 +enable_so_next_burst_len_iscsi_seq_57361 next_burst_len iscsi_seq 0 57361 NULL
172748 +enable_so_nfs_create_request_fndecl_57363 nfs_create_request fndecl 5-4 57363 NULL
172749 +enable_so_au_sd_ssr_57367 au sd_ssr 0 57367 NULL
172750 +enable_so_dqi_giblk_ocfs2_mem_dqinfo_57374 dqi_giblk ocfs2_mem_dqinfo 0 57374 NULL
172751 +enable_so_rcount_slip_57376 rcount slip 0 57376 NULL
172752 +enable_so_kfd_pasid_alloc_fndecl_57381 kfd_pasid_alloc fndecl 0 57381 NULL
172753 +enable_so_icl_ag_xfs_icreate_log_57387 icl_ag xfs_icreate_log 0 57387 NULL
172754 +enable_so_rs_total_drbd_device_57388 rs_total drbd_device 0 57388 NULL
172755 +enable_so_div64_u64_rem_fndecl_57393 div64_u64_rem fndecl 0 57393 NULL
172756 +enable_so_uhid_event_from_user_fndecl_57394 uhid_event_from_user fndecl 2 57394 NULL
172757 +enable_so_ocfs2_reflink_xattr_bucket_fndecl_57395 ocfs2_reflink_xattr_bucket fndecl 2-6-3 57395 NULL
172758 +enable_so_radeon_audio_acr_fndecl_57396 radeon_audio_acr fndecl 1 57396 NULL nohasharray
172759 +enable_so_pwr_tx_without_ps_read_fndecl_57396 pwr_tx_without_ps_read fndecl 3 57396 &enable_so_radeon_audio_acr_fndecl_57396
172760 +enable_so_kfd_ioctl_fndecl_57397 kfd_ioctl fndecl 2 57397 NULL
172761 +enable_so_nr_cpu_ids_vardecl_57399 nr_cpu_ids vardecl 0 57399 NULL
172762 +enable_so_nfs4_alloc_pages_fndecl_57401 nfs4_alloc_pages fndecl 1 57401 NULL
172763 +enable_so_skb_pull_fndecl_57408 skb_pull fndecl 2 57408 NULL nohasharray
172764 +enable_so_cryptlen_chachapoly_req_ctx_57408 cryptlen chachapoly_req_ctx 0 57408 &enable_so_skb_pull_fndecl_57408
172765 +enable_so_copy_page_from_iter_iovec_fndecl_57409 copy_page_from_iter_iovec fndecl 3 57409 NULL
172766 +enable_so_numbered_hid_report_enum_57419 numbered hid_report_enum 0 57419 NULL
172767 +enable_so_blkdev_get_block_fndecl_57432 blkdev_get_block fndecl 2 57432 NULL
172768 +enable_so_key_size_ecryptfs_crypt_stat_57436 key_size ecryptfs_crypt_stat 0 57436 NULL
172769 +enable_so_pci_hp_diva_setup_fndecl_57437 pci_hp_diva_setup fndecl 4 57437 NULL
172770 +enable_so_send_control_msg_fndecl_57441 send_control_msg fndecl 6 57441 NULL
172771 +enable_so_convert_tail_for_hole_fndecl_57444 convert_tail_for_hole fndecl 3 57444 NULL
172772 +enable_so_segsize_loc_dn_scp_57445 segsize_loc dn_scp 0 57445 NULL
172773 +enable_so_dln2_i2c_read_fndecl_57452 dln2_i2c_read fndecl 0-4 57452 NULL
172774 +enable_so_diva_os_copy_to_user_fndecl_57455 diva_os_copy_to_user fndecl 4 57455 NULL
172775 +enable_so_pix_clock_mt9m032_platform_data_57458 pix_clock mt9m032_platform_data 0 57458 NULL
172776 +enable_so_cp_table_size_radeon_rlc_57462 cp_table_size radeon_rlc 0 57462 NULL
172777 +enable_so_ib_ipath_lkey_table_size_vardecl_57463 ib_ipath_lkey_table_size vardecl 0 57463 NULL
172778 +enable_so_r8712_usbctrl_vendorreq_fndecl_57466 r8712_usbctrl_vendorreq fndecl 6 57466 NULL
172779 +enable_so_drbd_bm_capacity_fndecl_57473 drbd_bm_capacity fndecl 0 57473 NULL
172780 +enable_so_hfs_add_extent_fndecl_57475 hfs_add_extent fndecl 4-3 57475 NULL
172781 +enable_so_leaf_copy_dir_entries_fndecl_57477 leaf_copy_dir_entries fndecl 6 57477 NULL
172782 +enable_so_nutrs_ufs_hba_57478 nutrs ufs_hba 0 57478 NULL
172783 +enable_so_data_len_ib_mad_send_buf_57480 data_len ib_mad_send_buf 0 57480 NULL
172784 +enable_so_item_udata_fndecl_57481 item_udata fndecl 0 57481 NULL nohasharray
172785 +enable_so_gfs2_log_get_bio_fndecl_57481 gfs2_log_get_bio fndecl 2 57481 &enable_so_item_udata_fndecl_57481
172786 +enable_so_lrc_setup_wa_ctx_obj_fndecl_57482 lrc_setup_wa_ctx_obj fndecl 2 57482 NULL
172787 +enable_so_brcmf_sdio_glom_len_fndecl_57483 brcmf_sdio_glom_len fndecl 0 57483 NULL
172788 +enable_so_mps_l2cap_le_conn_req_57484 mps l2cap_le_conn_req 0 57484 NULL
172789 +enable_so_phantom_get_free_fndecl_57489 phantom_get_free fndecl 0 57489 NULL
172790 +enable_so_consume_q_size_vmci_qp_57492 consume_q_size vmci_qp 0 57492 NULL
172791 +enable_so_max_srq_rqe_sge_ocrdma_mbx_query_config_57494 max_srq_rqe_sge ocrdma_mbx_query_config 0 57494 NULL
172792 +enable_so_r8a66597_urb_done_fndecl_57497 r8a66597_urb_done fndecl 3 57497 NULL
172793 +enable_so_usnic_uiom_get_pages_fndecl_57510 usnic_uiom_get_pages fndecl 1-2 57510 NULL nohasharray
172794 +enable_so_truncate_data_blocks_range_fndecl_57510 truncate_data_blocks_range fndecl 2 57510 &enable_so_usnic_uiom_get_pages_fndecl_57510 nohasharray
172795 +enable_so_command_resume_fndecl_57510 command_resume fndecl 0 57510 &enable_so_truncate_data_blocks_range_fndecl_57510
172796 +enable_so_raid10_size_fndecl_57512 raid10_size fndecl 0-3-2 57512 NULL
172797 +enable_so_s_log_block_size_ext4_super_block_57520 s_log_block_size ext4_super_block 0 57520 NULL
172798 +enable_so_igb_rd32_fndecl_57524 igb_rd32 fndecl 0 57524 NULL
172799 +enable_so_nvbios_extend_fndecl_57525 nvbios_extend fndecl 2 57525 NULL
172800 +enable_so_temp_begin_applesmc_registers_57532 temp_begin applesmc_registers 0 57532 NULL
172801 +enable_so_f2fs_direct_IO_fndecl_57535 f2fs_direct_IO fndecl 3 57535 NULL nohasharray
172802 +enable_so_height_tw68_dev_57535 height tw68_dev 0 57535 &enable_so_f2fs_direct_IO_fndecl_57535
172803 +enable_so_diFindFree_fndecl_57537 diFindFree fndecl 0-2 57537 NULL
172804 +enable_so_trimmed_cp_control_57542 trimmed cp_control 0 57542 NULL
172805 +enable_so_i_file_sec_hpfs_inode_info_57545 i_file_sec hpfs_inode_info 0 57545 NULL nohasharray
172806 +enable_so_y_max_wacom_features_57545 y_max wacom_features 0 57545 &enable_so_i_file_sec_hpfs_inode_info_57545
172807 +enable_so_fdp_nci_probe_fndecl_57547 fdp_nci_probe fndecl 4 57547 NULL
172808 +enable_so_ext4_ind_direct_IO_fndecl_57548 ext4_ind_direct_IO fndecl 3 57548 NULL nohasharray
172809 +enable_so_is_zd1211b_zd_usb_57548 is_zd1211b zd_usb 0 57548 &enable_so_ext4_ind_direct_IO_fndecl_57548
172810 +enable_so_last_to_afs_call_57563 last_to afs_call 0 57563 NULL
172811 +enable_so_ocfs2_increase_refcount_fndecl_57564 ocfs2_increase_refcount fndecl 5-4 57564 NULL
172812 +enable_so_resp_len_ql4_task_data_57567 resp_len ql4_task_data 0 57567 NULL
172813 +enable_so_offset_mtd_part_57572 offset mtd_part 0 57572 NULL
172814 +enable_so_i40e_receive_skb_fndecl_57575 i40e_receive_skb fndecl 3 57575 NULL nohasharray
172815 +enable_so_pvr2_ctrl_get_max_fndecl_57575 pvr2_ctrl_get_max fndecl 0 57575 &enable_so_i40e_receive_skb_fndecl_57575
172816 +enable_so_do_mpage_readpage_fndecl_57577 do_mpage_readpage fndecl 3 57577 NULL nohasharray
172817 +enable_so_blkstol2_fndecl_57577 blkstol2 fndecl 0 57577 &enable_so_do_mpage_readpage_fndecl_57577
172818 +enable_so_opt_optl_optdata_dn_57580 opt_optl optdata_dn 0 57580 NULL
172819 +enable_so_shared_max_reservation_object_list_57587 shared_max reservation_object_list 0 57587 NULL
172820 +enable_so_unmap_blk_desc_data_len_scsi_unmap_parm_list_57591 unmap_blk_desc_data_len scsi_unmap_parm_list 0 57591 NULL nohasharray
172821 +enable_so_data_dot_offset_xfs_dir_ops_57591 data_dot_offset xfs_dir_ops 0 57591 &enable_so_unmap_blk_desc_data_len_scsi_unmap_parm_list_57591
172822 +enable_so_usCRTC_V_Disp__ATOM_MODE_TIMING_57594 usCRTC_V_Disp _ATOM_MODE_TIMING 0 57594 NULL
172823 +enable_so_parent_ino_nilfs_fid_57597 parent_ino nilfs_fid 0 57597 NULL
172824 +enable_so_update_regset_xstate_info_fndecl_57602 update_regset_xstate_info fndecl 1 57602 NULL nohasharray
172825 +enable_so_dn_fib_count_nhs_fndecl_57602 dn_fib_count_nhs fndecl 0 57602 &enable_so_update_regset_xstate_info_fndecl_57602
172826 +enable_so_sc_pwd_len_wl18xx_event_mailbox_57604 sc_pwd_len wl18xx_event_mailbox 0 57604 NULL nohasharray
172827 +enable_so_buffer_bytes_osst_buffer_57604 buffer_bytes osst_buffer 0 57604 &enable_so_sc_pwd_len_wl18xx_event_mailbox_57604
172828 +enable_so___tcp_push_pending_frames_fndecl_57607 __tcp_push_pending_frames fndecl 2 57607 NULL nohasharray
172829 +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
172830 +enable_so_data_xfer_len_bnx2fc_cmd_57611 data_xfer_len bnx2fc_cmd 0 57611 NULL nohasharray
172831 +enable_so__add_to_r4w_fndecl_57611 _add_to_r4w fndecl 4 57611 &enable_so_data_xfer_len_bnx2fc_cmd_57611
172832 +enable_so_isr_dma1_done_read_fndecl_57612 isr_dma1_done_read fndecl 3 57612 NULL
172833 +enable_so_wWidth_uvc_frame_57615 wWidth uvc_frame 0 57615 NULL
172834 +enable_so_vmw_framebuffer_surface_dirty_fndecl_57623 vmw_framebuffer_surface_dirty fndecl 6 57623 NULL
172835 +enable_so_f2fs_collapse_range_fndecl_57627 f2fs_collapse_range fndecl 2-3 57627 NULL
172836 +enable_so_memblock_enforce_memory_limit_fndecl_57628 memblock_enforce_memory_limit fndecl 1 57628 NULL
172837 +enable_so_ieee80211_mesh_rx_probe_req_fndecl_57630 ieee80211_mesh_rx_probe_req fndecl 3 57630 NULL nohasharray
172838 +enable_so_set_discoverable_fndecl_57630 set_discoverable fndecl 4 57630 &enable_so_ieee80211_mesh_rx_probe_req_fndecl_57630
172839 +enable_so_ieee80211_ie_split_ric_fndecl_57640 ieee80211_ie_split_ric fndecl 0-7 57640 NULL nohasharray
172840 +enable_so_init_ipath_fndecl_57640 init_ipath fndecl 1 57640 &enable_so_ieee80211_ie_split_ric_fndecl_57640
172841 +enable_so_alloc_cc770dev_fndecl_57641 alloc_cc770dev fndecl 1 57641 NULL
172842 +enable_so_node_ino_f2fs_super_block_57645 node_ino f2fs_super_block 0 57645 NULL
172843 +enable_so_num_stripes_btrfs_bio_57647 num_stripes btrfs_bio 0 57647 NULL
172844 +enable_so_ctl_out_pipe_brcmf_usbdev_info_57648 ctl_out_pipe brcmf_usbdev_info 0 57648 NULL nohasharray
172845 +enable_so_c4iw_id_table_alloc_fndecl_57648 c4iw_id_table_alloc fndecl 3 57648 &enable_so_ctl_out_pipe_brcmf_usbdev_info_57648
172846 +enable_so_ttymajor_vardecl_moxa_c_57652 ttymajor vardecl_moxa.c 0 57652 NULL
172847 +enable_so_tc358743_get_reg_size_fndecl_57653 tc358743_get_reg_size fndecl 0 57653 NULL nohasharray
172848 +enable_so_ql2xmaxqueues_vardecl_57653 ql2xmaxqueues vardecl 0 57653 &enable_so_tc358743_get_reg_size_fndecl_57653
172849 +enable_so_bnx2x_gunzip_fndecl_57655 bnx2x_gunzip fndecl 3 57655 NULL
172850 +enable_so_fuse_request_init_fndecl_57656 fuse_request_init fndecl 4 57656 NULL
172851 +enable_so_rbd_obj_method_sync_fndecl_57657 rbd_obj_method_sync fndecl 8-6 57657 NULL
172852 +enable_so_btrfs_qgroup_release_data_fndecl_57660 btrfs_qgroup_release_data fndecl 2-3 57660 NULL nohasharray
172853 +enable_so_setup_irqs_msi_controller_57660 setup_irqs msi_controller 0 57660 &enable_so_btrfs_qgroup_release_data_fndecl_57660
172854 +enable_so_curheight_usb_usbvision_57669 curheight usb_usbvision 0 57669 NULL
172855 +enable_so_len_pn533_poll_modulations_57671 len pn533_poll_modulations 0 57671 NULL
172856 +enable_so_PQTAG_rdesc1_57683 PQTAG rdesc1 0 57683 NULL nohasharray
172857 +enable_so_xfs_dir3_data_readahead_fndecl_57683 xfs_dir3_data_readahead fndecl 2 57683 &enable_so_PQTAG_rdesc1_57683
172858 +enable_so_data_dma_kbtab_57688 data_dma kbtab 0 57688 NULL
172859 +enable_so_length_ib_reth_57691 length ib_reth 0 57691 NULL nohasharray
172860 +enable_so_cfg80211_process_deauth_fndecl_57691 cfg80211_process_deauth fndecl 3 57691 &enable_so_length_ib_reth_57691
172861 +enable_so_conflen_gss_krb5_enctype_57693 conflen gss_krb5_enctype 0 57693 NULL nohasharray
172862 +enable_so_phys_base_ptr_vbe_mode_ib_57693 phys_base_ptr vbe_mode_ib 0 57693 &enable_so_conflen_gss_krb5_enctype_57693
172863 +enable_so_nfsctl_transaction_read_fndecl_57705 nfsctl_transaction_read fndecl 3 57705 NULL
172864 +enable_so_residual_datacnt_initiator_status_57708 residual_datacnt initiator_status 0 57708 NULL nohasharray
172865 +enable_so_qla2x00_bsg_job_done_fndecl_57708 qla2x00_bsg_job_done fndecl 3 57708 &enable_so_residual_datacnt_initiator_status_57708
172866 +enable_so_uv_blade_nr_possible_cpus_fndecl_57713 uv_blade_nr_possible_cpus fndecl 0 57713 NULL
172867 +enable_so_de_size_fndecl_57715 de_size fndecl 0-1 57715 NULL
172868 +enable_so_ttm_bo_create_fndecl_57717 ttm_bo_create fndecl 2 57717 NULL
172869 +enable_so_nilfs_readpages_fndecl_57718 nilfs_readpages fndecl 4 57718 NULL
172870 +enable_so_nports_adap_ports_57721 nports adap_ports 0 57721 NULL
172871 +enable_so_read_file_recv_fndecl_57723 read_file_recv fndecl 3 57723 NULL
172872 +enable_so_x509_akid_note_kid_fndecl_57725 x509_akid_note_kid fndecl 5 57725 NULL
172873 +enable_so_partition_sched_domains_fndecl_57727 partition_sched_domains fndecl 1 57727 NULL
172874 +enable_so_byte_read_data_parport_operations_57730 byte_read_data parport_operations 0 57730 NULL
172875 +enable_so_max_devs_vardecl_aic94xx_hwi_c_57731 max_devs vardecl_aic94xx_hwi.c 0 57731 NULL
172876 +enable_so_opts1_cp_desc_57736 opts1 cp_desc 0 57736 NULL nohasharray
172877 +enable_so_compat_sys_io_getevents_fndecl_57736 compat_sys_io_getevents fndecl 3 57736 &enable_so_opts1_cp_desc_57736
172878 +enable_so_buffer_width_budget_57739 buffer_width budget 0 57739 NULL
172879 +enable_so_prepare_message_spi_master_57743 prepare_message spi_master 0 57743 NULL nohasharray
172880 +enable_so_used_ebs_ubi_ainf_volume_57743 used_ebs ubi_ainf_volume 0 57743 &enable_so_prepare_message_spi_master_57743
172881 +enable_so_residue_bfi_ioim_rsp_s_57746 residue bfi_ioim_rsp_s 0 57746 NULL nohasharray
172882 +enable_so_batadv_socket_read_fndecl_57746 batadv_socket_read fndecl 3 57746 &enable_so_residue_bfi_ioim_rsp_s_57746
172883 +enable_so_usb_hcd_submit_urb_fndecl_57747 usb_hcd_submit_urb fndecl 0 57747 NULL
172884 +enable_so_acpi_ex_convert_to_ascii_fndecl_57750 acpi_ex_convert_to_ascii fndecl 0 57750 NULL
172885 +enable_so___videobuf_free_fndecl_57751 __videobuf_free fndecl 0 57751 NULL
172886 +enable_so_res_hor_val_pvr2_hdw_57754 res_hor_val pvr2_hdw 0 57754 NULL
172887 +enable_so_remove_memory_fndecl_57755 remove_memory fndecl 3-2 57755 NULL
172888 +enable_so_cache_write_pipefs_fndecl_57757 cache_write_pipefs fndecl 3 57757 NULL
172889 +enable_so_timblogiw_read_fndecl_57762 timblogiw_read fndecl 3 57762 NULL
172890 +enable_so_kernel_sendmsg_fndecl_57763 kernel_sendmsg fndecl 0-5-4 57763 NULL
172891 +enable_so_numEntries__ATOM_PPLIB_ACPClk_Voltage_Limit_Table_57767 numEntries _ATOM_PPLIB_ACPClk_Voltage_Limit_Table 0 57767 NULL nohasharray
172892 +enable_so_pset_prop_read_array_fndecl_57767 pset_prop_read_array fndecl 0 57767 &enable_so_numEntries__ATOM_PPLIB_ACPClk_Voltage_Limit_Table_57767
172893 +enable_so_mdp_major_vardecl_57774 mdp_major vardecl 0 57774 NULL nohasharray
172894 +enable_so_minor_media_devnode_57774 minor media_devnode 0 57774 &enable_so_mdp_major_vardecl_57774
172895 +enable_so_read_data_parport_operations_57776 read_data parport_operations 0 57776 NULL
172896 +enable_so_send_set_info_fndecl_57779 send_set_info fndecl 7 57779 NULL
172897 +enable_so_height_fb_copyarea_57780 height fb_copyarea 0 57780 NULL nohasharray
172898 +enable_so_end_numa_memblk_57780 end numa_memblk 0 57780 &enable_so_height_fb_copyarea_57780
172899 +enable_so_fp_array_size_bnx2x_57781 fp_array_size bnx2x 0 57781 NULL
172900 +enable_so_bfad_iocmd_phy_get_attr_fndecl_57786 bfad_iocmd_phy_get_attr fndecl 0 57786 NULL
172901 +enable_so_mp_rx_agg_buf_size_sdio_mmc_card_57794 mp_rx_agg_buf_size sdio_mmc_card 0 57794 NULL
172902 +enable_so_pos_lzma_header_57804 pos lzma_header 0 57804 NULL nohasharray
172903 +enable_so_spk_xe_vardecl_57804 spk_xe vardecl 0 57804 &enable_so_pos_lzma_header_57804
172904 +enable_so_nic_num_sqs_en_fndecl_57805 nic_num_sqs_en fndecl 0-2 57805 NULL
172905 +enable_so_blocks_mmc_data_57821 blocks mmc_data 0 57821 NULL
172906 +enable_so_eth_proto_xfrm_state_afinfo_57827 eth_proto xfrm_state_afinfo 0 57827 NULL nohasharray
172907 +enable_so_force_size_vardecl_pcmciamtd_c_57827 force_size vardecl_pcmciamtd.c 0 57827 &enable_so_eth_proto_xfrm_state_afinfo_57827
172908 +enable_so_ioc_count_obd_ioctl_data_57830 ioc_count obd_ioctl_data 0 57830 NULL
172909 +enable_so_vxfs_bmap_ext4_fndecl_57831 vxfs_bmap_ext4 fndecl 0-2 57831 NULL nohasharray
172910 +enable_so_iscsi_complete_pdu_fndecl_57831 iscsi_complete_pdu fndecl 4 57831 &enable_so_vxfs_bmap_ext4_fndecl_57831
172911 +enable_so_tx_frag_init_called_read_fndecl_57834 tx_frag_init_called_read fndecl 3 57834 NULL
172912 +enable_so___pn533_send_frame_async_fndecl_57850 __pn533_send_frame_async fndecl 4 57850 NULL nohasharray
172913 +enable_so_i_pos_hi_fat_fid_57850 i_pos_hi fat_fid 0 57850 &enable_so___pn533_send_frame_async_fndecl_57850
172914 +enable_so_vd_dsr_au_count_gru_vma_data_57855 vd_dsr_au_count gru_vma_data 0 57855 NULL
172915 +enable_so_nilfs_resize_fs_fndecl_57861 nilfs_resize_fs fndecl 2 57861 NULL
172916 +enable_so_len_splice_desc_57862 len splice_desc 0 57862 NULL
172917 +enable_so_cid_count_qed_conn_type_cfg_57865 cid_count qed_conn_type_cfg 0 57865 NULL
172918 +enable_so__usbctrl_vendorreq_async_write_fndecl_57866 _usbctrl_vendorreq_async_write fndecl 6 57866 NULL
172919 +enable_so_lpfc_sli4_get_els_iocb_cnt_fndecl_57869 lpfc_sli4_get_els_iocb_cnt fndecl 0 57869 NULL
172920 +enable_so_fsl_spi_setup_transfer_fndecl_57873 fsl_spi_setup_transfer fndecl 0 57873 NULL nohasharray
172921 +enable_so_mac_drv_rx_init_fndecl_57873 mac_drv_rx_init fndecl 2 57873 &enable_so_fsl_spi_setup_transfer_fndecl_57873 nohasharray
172922 +enable_so_joydev_handle_JSIOCSAXMAP_fndecl_57873 joydev_handle_JSIOCSAXMAP fndecl 3 57873 &enable_so_mac_drv_rx_init_fndecl_57873
172923 +enable_so_len_wmfw_coeff_item_57875 len wmfw_coeff_item 0 57875 NULL nohasharray
172924 +enable_so_length_ib_umad_packet_57875 length ib_umad_packet 0 57875 &enable_so_len_wmfw_coeff_item_57875 nohasharray
172925 +enable_so_init_pci_serial_quirk_57875 init pci_serial_quirk 0 57875 &enable_so_length_ib_umad_packet_57875
172926 +enable_so_v4l2_src_h_yuv_playback_info_57877 v4l2_src_h yuv_playback_info 0 57877 NULL
172927 +enable_so_num_dup_tsns_sctp_sackhdr_57878 num_dup_tsns sctp_sackhdr 0 57878 NULL
172928 +enable_so_xdi_copy_to_user_fndecl_57879 xdi_copy_to_user fndecl 4 57879 NULL
172929 +enable_so_max_devices_hpt_iop_request_get_config_57889 max_devices hpt_iop_request_get_config 0 57889 NULL
172930 +enable_so_psn_qib_swqe_57901 psn qib_swqe 0 57901 NULL
172931 +enable_so_fat_sectors_fat_bios_param_block_57917 fat_sectors fat_bios_param_block 0 57917 NULL
172932 +enable_so_MaxXmitDataSegmentLength_iscsi_conn_ops_57926 MaxXmitDataSegmentLength iscsi_conn_ops 0 57926 NULL
172933 +enable_so_radeon_audio_update_acr_fndecl_57929 radeon_audio_update_acr fndecl 2 57929 NULL
172934 +enable_so__alloc_set_attr_list_fndecl_57932 _alloc_set_attr_list fndecl 4 57932 NULL
172935 +enable_so_memblock_set_current_limit_fndecl_57935 memblock_set_current_limit fndecl 1 57935 NULL
172936 +enable_so_event_heart_beat_read_fndecl_57938 event_heart_beat_read fndecl 3 57938 NULL
172937 +enable_so_nand_ecc_test_run_fndecl_57941 nand_ecc_test_run fndecl 1 57941 NULL
172938 +enable_so_ilf_size_xfs_inode_log_format_57942 ilf_size xfs_inode_log_format 0 57942 NULL
172939 +enable_so_vmci_handle_arr_create_fndecl_57944 vmci_handle_arr_create fndecl 1 57944 NULL
172940 +enable_so_eeprom_size_rt2x00_ops_57953 eeprom_size rt2x00_ops 0 57953 NULL
172941 +enable_so_logical_block_count_msb_data_57955 logical_block_count msb_data 0 57955 NULL
172942 +enable_so_i2c_read_fndecl_57956 i2c_read fndecl 0 57956 NULL
172943 +enable_so_ticket_len_rxkad_response_57960 ticket_len rxkad_response 0 57960 NULL
172944 +enable_so_filemap_check_errors_fndecl_57965 filemap_check_errors fndecl 0 57965 NULL
172945 +enable_so_mei_cl_alloc_cb_fndecl_57971 mei_cl_alloc_cb fndecl 2 57971 NULL
172946 +enable_so_sel_write_enforce_fndecl_57973 sel_write_enforce fndecl 3 57973 NULL
172947 +enable_so_rds_rm_size_fndecl_57975 rds_rm_size fndecl 0-2 57975 NULL
172948 +enable_so_hpfs_map_anode_fndecl_57993 hpfs_map_anode fndecl 2 57993 NULL
172949 +enable_so_faultin_page_fndecl_57994 faultin_page fndecl 3 57994 NULL
172950 +enable_so_perf_sample_ustack_size_fndecl_57995 perf_sample_ustack_size fndecl 0-2-1 57995 NULL
172951 +enable_so_codes_size_input_mask_57996 codes_size input_mask 0 57996 NULL
172952 +enable_so_max_idx_node_sz_ubifs_info_57997 max_idx_node_sz ubifs_info 0 57997 NULL
172953 +enable_so_SSIDlen_StatusRid_58002 SSIDlen StatusRid 0 58002 NULL nohasharray
172954 +enable_so_di_size_dinode_58002 di_size dinode 0 58002 &enable_so_SSIDlen_StatusRid_58002
172955 +enable_so_set_alt_usb_function_58003 set_alt usb_function 0 58003 NULL
172956 +enable_so_max_master_fs_adau1977_58013 max_master_fs adau1977 0 58013 NULL
172957 +enable_so_atl2_change_mtu_fndecl_58020 atl2_change_mtu fndecl 2 58020 NULL nohasharray
172958 +enable_so_wdata_prepare_pages_fndecl_58020 wdata_prepare_pages fndecl 0 58020 &enable_so_atl2_change_mtu_fndecl_58020
172959 +enable_so_xdr_buf_subsegment_fndecl_58027 xdr_buf_subsegment fndecl 4-3 58027 NULL
172960 +enable_so_xfs_extent_busy_reuse_fndecl_58034 xfs_extent_busy_reuse fndecl 4-3 58034 NULL
172961 +enable_so_reserve_btrfs_dio_data_58035 reserve btrfs_dio_data 0 58035 NULL
172962 +enable_so_rindex_sc18is602_58043 rindex sc18is602 0 58043 NULL nohasharray
172963 +enable_so_rtw_check_beacon_data23a_fndecl_58043 rtw_check_beacon_data23a fndecl 3 58043 &enable_so_rindex_sc18is602_58043
172964 +enable_so_len_mic_vring_58048 len mic_vring 0 58048 NULL nohasharray
172965 +enable_so_num_sqsets_csio_hw_58048 num_sqsets csio_hw 0 58048 &enable_so_len_mic_vring_58048
172966 +enable_so_acpi_gbl_integer_byte_width_vardecl_58054 acpi_gbl_integer_byte_width vardecl 0 58054 NULL
172967 +enable_so_cylinders_mspro_devinfo_58057 cylinders mspro_devinfo 0 58057 NULL
172968 +enable_so_offset_m48t59_plat_data_58063 offset m48t59_plat_data 0 58063 NULL nohasharray
172969 +enable_so_buffer_size_octeon_droq_58063 buffer_size octeon_droq 0 58063 &enable_so_offset_m48t59_plat_data_58063 nohasharray
172970 +enable_so_wpa_ie_len_hostap_bss_info_58063 wpa_ie_len hostap_bss_info 0 58063 &enable_so_buffer_size_octeon_droq_58063
172971 +enable_so_deflate_decompress_fndecl_58064 deflate_decompress fndecl 3 58064 NULL
172972 +enable_so_ath10k_htt_rx_nwifi_hdrlen_fndecl_58065 ath10k_htt_rx_nwifi_hdrlen fndecl 0 58065 NULL
172973 +enable_so_n_dma_bufs_vardecl_mcam_core_c_58067 n_dma_bufs vardecl_mcam-core.c 0 58067 NULL
172974 +enable_so_scsi_register_fndecl_58069 scsi_register fndecl 2 58069 NULL
172975 +enable_so_max_fast_reg_page_list_len_ib_device_attr_58072 max_fast_reg_page_list_len ib_device_attr 0 58072 NULL
172976 +enable_so_compat_do_readv_writev_fndecl_58077 compat_do_readv_writev fndecl 4 58077 NULL
172977 +enable_so_read_file_fndecl_58082 read_file fndecl 4 58082 NULL
172978 +enable_so_qib_user_sdma_pin_pages_fndecl_58083 qib_user_sdma_pin_pages fndecl 5-4 58083 NULL nohasharray
172979 +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
172980 +enable_so_pt_read_fndecl_58083 pt_read fndecl 3 58083 &enable_so_netxen_setup_msi_interrupts_fndecl_58083
172981 +enable_so_buffer_count_drm_i915_gem_execbuffer2_58084 buffer_count drm_i915_gem_execbuffer2 0 58084 NULL
172982 +enable_so_nentries_xpc_registration_58085 nentries xpc_registration 0 58085 NULL
172983 +enable_so_next_bofs_irlap_cb_58088 next_bofs irlap_cb 0 58088 NULL
172984 +enable_so_chipsize_onenand_chip_58089 chipsize onenand_chip 0 58089 NULL
172985 +enable_so_p9_client_zc_rpc_fndecl_58092 p9_client_zc_rpc fndecl 7 58092 NULL nohasharray
172986 +enable_so_atyfb_setup_generic_fndecl_58092 atyfb_setup_generic fndecl 3 58092 &enable_so_p9_client_zc_rpc_fndecl_58092
172987 +enable_so_floppy_end_request_fndecl_58094 floppy_end_request fndecl 2 58094 NULL
172988 +enable_so_done_scsi_driver_58095 done scsi_driver 0 58095 NULL
172989 +enable_so_ll_max_cached_mb_seq_write_fndecl_58097 ll_max_cached_mb_seq_write fndecl 3 58097 NULL
172990 +enable_so_walk_pmd_range_fndecl_58100 walk_pmd_range fndecl 0 58100 NULL
172991 +enable_so_lf_next_gfs2_leaf_58104 lf_next gfs2_leaf 0 58104 NULL
172992 +enable_so_head_p9_rdir_58110 head p9_rdir 0 58110 NULL
172993 +enable_so_usb_stor_ctrl_transfer_fndecl_58117 usb_stor_ctrl_transfer fndecl 8-2 58117 NULL
172994 +enable_so_ore_get_rw_state_fndecl_58120 ore_get_rw_state fndecl 4-5 58120 NULL
172995 +enable_so_nvkm_disp_new__fndecl_58125 nvkm_disp_new_ fndecl 4 58125 NULL
172996 +enable_so_sys_setgroups_fndecl_58127 sys_setgroups fndecl 1 58127 NULL nohasharray
172997 +enable_so_sm501_create_subdev_fndecl_58127 sm501_create_subdev fndecl 4-3 58127 &enable_so_sys_setgroups_fndecl_58127 nohasharray
172998 +enable_so_mlx4_en_hwtstamp_set_fndecl_58127 mlx4_en_hwtstamp_set fndecl 0 58127 &enable_so_sm501_create_subdev_fndecl_58127
172999 +enable_so_bufsize_vardecl_subpagetest_c_58128 bufsize vardecl_subpagetest.c 0 58128 NULL
173000 +enable_so_l_pn_lbuf_58130 l_pn lbuf 0 58130 NULL nohasharray
173001 +enable_so_do_ip_vs_set_ctl_fndecl_58130 do_ip_vs_set_ctl fndecl 4 58130 &enable_so_l_pn_lbuf_58130
173002 +enable_so_n_bitrates_ieee80211_supported_band_58136 n_bitrates ieee80211_supported_band 0 58136 NULL nohasharray
173003 +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
173004 +enable_so_nvif_object_init_fndecl_58137 nvif_object_init fndecl 5 58137 NULL
173005 +enable_so_mtd_read_fndecl_58140 mtd_read fndecl 0 58140 NULL
173006 +enable_so_pci_alloc_child_bus_fndecl_58142 pci_alloc_child_bus fndecl 3 58142 NULL
173007 +enable_so_packet_recvmsg_fndecl_58143 packet_recvmsg fndecl 3 58143 NULL
173008 +enable_so_hr_block_bytes_o2hb_region_58145 hr_block_bytes o2hb_region 0 58145 NULL
173009 +enable_so_security_inode_setattr_fndecl_58146 security_inode_setattr fndecl 0 58146 NULL nohasharray
173010 +enable_so_nroutes_mc5_params_58146 nroutes mc5_params 0 58146 &enable_so_security_inode_setattr_fndecl_58146
173011 +enable_so_sci_init_single_fndecl_58149 sci_init_single fndecl 3 58149 NULL
173012 +enable_so_i_clusters_ocfs2_dinode_58151 i_clusters ocfs2_dinode 0 58151 NULL
173013 +enable_so_altera_drscan_fndecl_58153 altera_drscan fndecl 2 58153 NULL
173014 +enable_so_rx_status_rx_desc_58154 rx_status rx_desc 0 58154 NULL
173015 +enable_so_f2fs_mpage_readpages_fndecl_58161 f2fs_mpage_readpages fndecl 4 58161 NULL nohasharray
173016 +enable_so_size_drm_i915_gem_pwrite_58161 size drm_i915_gem_pwrite 0 58161 &enable_so_f2fs_mpage_readpages_fndecl_58161
173017 +enable_so_l2cap_build_cmd_fndecl_58167 l2cap_build_cmd fndecl 4 58167 NULL
173018 +enable_so_init_size_rw_module_58168 init_size_rw module 0 58168 NULL
173019 +enable_so_head_len_beacon_data_58173 head_len beacon_data 0 58173 NULL
173020 +enable_so_num_clips_drm_vmw_present_readback_arg_58182 num_clips drm_vmw_present_readback_arg 0 58182 NULL
173021 +enable_so_total_num_uuars_mlx5_ib_alloc_ucontext_req_v2_58191 total_num_uuars mlx5_ib_alloc_ucontext_req_v2 0 58191 NULL
173022 +enable_so_virtfn_remove_fndecl_58193 virtfn_remove fndecl 2 58193 NULL
173023 +enable_so_npages_ttm_page_pool_58200 npages ttm_page_pool 0 58200 NULL
173024 +enable_so_o2net_init_msg_fndecl_58204 o2net_init_msg fndecl 2 58204 NULL nohasharray
173025 +enable_so_SyS_lgetxattr_fndecl_58204 SyS_lgetxattr fndecl 4 58204 &enable_so_o2net_init_msg_fndecl_58204
173026 +enable_so_maxOutstanding_AdapterControlBlock_58208 maxOutstanding AdapterControlBlock 0 58208 NULL
173027 +enable_so_rx_pipe_at76_priv_58217 rx_pipe at76_priv 0 58217 NULL
173028 +enable_so_size_skb_frag_struct_58222 size skb_frag_struct 0 58222 NULL
173029 +enable_so_xfs_attr_set_fndecl_58225 xfs_attr_set fndecl 4 58225 NULL
173030 +enable_so_ubifs_jnl_write_data_fndecl_58229 ubifs_jnl_write_data fndecl 5 58229 NULL
173031 +enable_so_ath6kl_regwrite_read_fndecl_58232 ath6kl_regwrite_read fndecl 3 58232 NULL
173032 +enable_so_ath6kl_usb_bmi_read_fndecl_58234 ath6kl_usb_bmi_read fndecl 3 58234 NULL
173033 +enable_so_len_on_bd_bnx2x_agg_info_58236 len_on_bd bnx2x_agg_info 0 58236 NULL
173034 +enable_so_i915_displayport_test_active_write_fndecl_58241 i915_displayport_test_active_write fndecl 3 58241 NULL
173035 +enable_so_num_rx_queues_fm10k_intfc_58243 num_rx_queues fm10k_intfc 0 58243 NULL
173036 +enable_so_font_backup_height_sisusb_usb_data_58247 font_backup_height sisusb_usb_data 0 58247 NULL
173037 +enable_so_ies_len_cfg80211_ft_event_params_58259 ies_len cfg80211_ft_event_params 0 58259 NULL
173038 +enable_so_gpiod_count_fndecl_58262 gpiod_count fndecl 0 58262 NULL
173039 +enable_so_l2cap_segment_sdu_fndecl_58263 l2cap_segment_sdu fndecl 4 58263 NULL
173040 +enable_so_cb710_mmc_transfer_data_fndecl_58265 cb710_mmc_transfer_data fndecl 0 58265 NULL
173041 +enable_so_file_size_fnode_58268 file_size fnode 0 58268 NULL
173042 +enable_so_em28xx_set_video_format_fndecl_58273 em28xx_set_video_format fndecl 3-4 58273 NULL
173043 +enable_so_tcp_push_one_fndecl_58275 tcp_push_one fndecl 2 58275 NULL nohasharray
173044 +enable_so_pages_in_block_msb_data_58275 pages_in_block msb_data 0 58275 &enable_so_tcp_push_one_fndecl_58275
173045 +enable_so_iso_size_usbtv_58278 iso_size usbtv 0 58278 NULL
173046 +enable_so_vmw_fifo_reserve_dx_fndecl_58283 vmw_fifo_reserve_dx fndecl 2 58283 NULL
173047 +enable_so_lib80211_michael_mic_add_fndecl_58285 lib80211_michael_mic_add fndecl 2 58285 NULL
173048 +enable_so_tx_desc_count_i40evf_adapter_58286 tx_desc_count i40evf_adapter 0 58286 NULL
173049 +enable_so_v9fs_fid_xattr_set_fndecl_58288 v9fs_fid_xattr_set fndecl 4 58288 NULL nohasharray
173050 +enable_so_unique_len_drm_unique_58288 unique_len drm_unique 0 58288 &enable_so_v9fs_fid_xattr_set_fndecl_58288
173051 +enable_so_balloon_add_region_fndecl_58290 balloon_add_region fndecl 2-1 58290 NULL
173052 +enable_so_adfs_map_lookup_fndecl_58299 adfs_map_lookup fndecl 0-3 58299 NULL
173053 +enable_so_y2_drm_clip_rect_58302 y2 drm_clip_rect 0 58302 NULL
173054 +enable_so_buffer_size_snd_pcm_runtime_58304 buffer_size snd_pcm_runtime 0 58304 NULL
173055 +enable_so_CountHigh_smb_com_write_rsp_58306 CountHigh smb_com_write_rsp 0 58306 NULL
173056 +enable_so_protocol_iphdr_58316 protocol iphdr 0 58316 NULL
173057 +enable_so_adau1977_set_tdm_slot_fndecl_58318 adau1977_set_tdm_slot fndecl 4-5 58318 NULL
173058 +enable_so_vc_do_resize_fndecl_58329 vc_do_resize fndecl 3-4 58329 NULL nohasharray
173059 +enable_so_num_tx_ethoc_58329 num_tx ethoc 0 58329 &enable_so_vc_do_resize_fndecl_58329
173060 +enable_so_sys_setgroups16_fndecl_58337 sys_setgroups16 fndecl 1 58337 NULL
173061 +enable_so_smp_handler_sas_function_template_58339 smp_handler sas_function_template 0 58339 NULL
173062 +enable_so_nlmon_change_mtu_fndecl_58340 nlmon_change_mtu fndecl 2 58340 NULL nohasharray
173063 +enable_so_start_crypt_config_58340 start crypt_config 0 58340 &enable_so_nlmon_change_mtu_fndecl_58340
173064 +enable_so_s2io_change_mtu_fndecl_58344 s2io_change_mtu fndecl 2 58344 NULL
173065 +enable_so_ext2_alloc_branch_fndecl_58346 ext2_alloc_branch fndecl 4 58346 NULL
173066 +enable_so_actions_len_sw_flow_actions_58353 actions_len sw_flow_actions 0 58353 NULL
173067 +enable_so_viafb_dvp1_proc_write_fndecl_58355 viafb_dvp1_proc_write fndecl 3 58355 NULL
173068 +enable_so_xgmac_change_mtu_fndecl_58357 xgmac_change_mtu fndecl 2 58357 NULL nohasharray
173069 +enable_so_mms114_read_reg_fndecl_58357 mms114_read_reg fndecl 0 58357 &enable_so_xgmac_change_mtu_fndecl_58357
173070 +enable_so___ffs_ep0_read_events_fndecl_58359 __ffs_ep0_read_events fndecl 3 58359 NULL
173071 +enable_so_length_qib_swqe_58364 length qib_swqe 0 58364 NULL
173072 +enable_so_add_regulator_fndecl_58367 add_regulator fndecl 1 58367 NULL
173073 +enable_so_tun_recvmsg_fndecl_58372 tun_recvmsg fndecl 3 58372 NULL
173074 +enable_so_ingr_start_sge_58376 ingr_start sge 0 58376 NULL
173075 +enable_so_esas2r_log_hexdump_fndecl_58381 esas2r_log_hexdump fndecl 3 58381 NULL
173076 +enable_so_dma_contiguous_reserve_fndecl_58386 dma_contiguous_reserve fndecl 1 58386 NULL
173077 +enable_so_max_resource_constraint_58388 max resource_constraint 0 58388 NULL
173078 +enable_so_kvm_arch_create_memslot_fndecl_58391 kvm_arch_create_memslot fndecl 3 58391 NULL
173079 +enable_so_window_vardecl_tcp_cdg_c_58396 window vardecl_tcp_cdg.c 0 58396 NULL
173080 +enable_so_hci_prepare_cmd_fndecl_58399 hci_prepare_cmd fndecl 3 58399 NULL
173081 +enable_so_ip_vs_sync_buff_create_v0_fndecl_58401 ip_vs_sync_buff_create_v0 fndecl 2 58401 NULL
173082 +enable_so_lbs_wrrf_write_fndecl_58409 lbs_wrrf_write fndecl 3 58409 NULL
173083 +enable_so_amdtp_stream_init_fndecl_58410 amdtp_stream_init fndecl 7 58410 NULL
173084 +enable_so_remove_raw_fndecl_58413 remove_raw fndecl 4 58413 NULL
173085 +enable_so_vzalloc_fndecl_58414 vzalloc fndecl 1 58414 NULL nohasharray
173086 +enable_so_offset_snd_util_memblk_58414 offset snd_util_memblk 0 58414 &enable_so_vzalloc_fndecl_58414 nohasharray
173087 +enable_so_bufsize_vardecl_tcp_probe_c_58414 bufsize vardecl_tcp_probe.c 0 58414 &enable_so_offset_snd_util_memblk_58414
173088 +enable_so_skip_to_level_assoc_array_shortcut_58418 skip_to_level assoc_array_shortcut 0 58418 NULL
173089 +enable_so_channels__isdn_driver_58419 channels _isdn_driver 0 58419 NULL
173090 +enable_so_gfn_to_pfn_prot_fndecl_58421 gfn_to_pfn_prot fndecl 2 58421 NULL
173091 +enable_so_align4k_qib_devdata_58424 align4k qib_devdata 0 58424 NULL
173092 +enable_so_walk_pte_range_fndecl_58425 walk_pte_range fndecl 0 58425 NULL
173093 +enable_so_lbs_wrmac_write_fndecl_58427 lbs_wrmac_write fndecl 3 58427 NULL
173094 +enable_so_sys32_ftruncate64_fndecl_58429 sys32_ftruncate64 fndecl 2-3 58429 NULL
173095 +enable_so_SiS_GetReg_fndecl_58436 SiS_GetReg fndecl 0 58436 NULL
173096 +enable_so_exynos3250_jpeg_get_subsampling_mode_fndecl_58438 exynos3250_jpeg_get_subsampling_mode fndecl 0 58438 NULL nohasharray
173097 +enable_so_deflate_compress_fndecl_58438 deflate_compress fndecl 3 58438 &enable_so_exynos3250_jpeg_get_subsampling_mode_fndecl_58438
173098 +enable_so_environ_read_fndecl_58440 environ_read fndecl 3 58440 NULL
173099 +enable_so_params1_mlx5_qp_context_58441 params1 mlx5_qp_context 0 58441 NULL
173100 +enable_so_nr_pages_fuse_fill_data_58443 nr_pages fuse_fill_data 0 58443 NULL
173101 +enable_so_num_vhost_virtqueue_58446 num vhost_virtqueue 0 58446 NULL nohasharray
173102 +enable_so_len_ethtool_test_58446 len ethtool_test 0 58446 &enable_so_num_vhost_virtqueue_58446
173103 +enable_so_val_bytes_snd_soc_component_58447 val_bytes snd_soc_component 0 58447 NULL nohasharray
173104 +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
173105 +enable_so_f_adc_msi2500_dev_58451 f_adc msi2500_dev 0 58451 NULL
173106 +enable_so_fwlen_mpt_fw_xfer32_58453 fwlen mpt_fw_xfer32 0 58453 NULL
173107 +enable_so_di_anextents_xfs_icdinode_58455 di_anextents xfs_icdinode 0 58455 NULL
173108 +enable_so_caif_seqpkt_sendmsg_fndecl_58458 caif_seqpkt_sendmsg fndecl 3 58458 NULL
173109 +enable_so_NumProtectionFields_cfi_pri_intelext_58461 NumProtectionFields cfi_pri_intelext 0 58461 NULL
173110 +enable_so_btrfs_clone_fndecl_58462 btrfs_clone fndecl 5-3-6 58462 NULL
173111 +enable_so_ebcnt_vardecl_torturetest_c_58475 ebcnt vardecl_torturetest.c 0 58475 NULL
173112 +enable_so_newpart_fndecl_58478 newpart fndecl 6-4 58478 NULL
173113 +enable_so_nbchan_capidrv_contr_58481 nbchan capidrv_contr 0 58481 NULL
173114 +enable_so_highest_ino_jffs2_sb_info_58485 highest_ino jffs2_sb_info 0 58485 NULL
173115 +enable_so_C_SYSC_set_mempolicy_fndecl_58489 C_SYSC_set_mempolicy fndecl 3 58489 NULL
173116 +enable_so_try_lock_extent_fndecl_58490 try_lock_extent fndecl 3-2 58490 NULL nohasharray
173117 +enable_so_r2tq_size_cnic_local_58490 r2tq_size cnic_local 0 58490 &enable_so_try_lock_extent_fndecl_58490
173118 +enable_so_set_console_size_fndecl_58495 set_console_size fndecl 3-2 58495 NULL
173119 +enable_so_unlink_simple_fndecl_58497 unlink_simple fndecl 3-2 58497 NULL nohasharray
173120 +enable_so_unit_minor_sound_unit_58497 unit_minor sound_unit 0 58497 &enable_so_unlink_simple_fndecl_58497
173121 +enable_so_alloc_arraycache_fndecl_58498 alloc_arraycache fndecl 2 58498 NULL
173122 +enable_so_pstore_decompress_fndecl_58501 pstore_decompress fndecl 0-3-4 58501 NULL
173123 +enable_so_max_segment_size_device_dma_parameters_58507 max_segment_size device_dma_parameters 0 58507 NULL
173124 +enable_so_ec_i2c_count_response_fndecl_58509 ec_i2c_count_response fndecl 0 58509 NULL
173125 +enable_so_mcp23s17_read_regs_fndecl_58512 mcp23s17_read_regs fndecl 4 58512 NULL nohasharray
173126 +enable_so_phys_in_snd_efw_58512 phys_in snd_efw 0 58512 &enable_so_mcp23s17_read_regs_fndecl_58512
173127 +enable_so_pixel_stride_ivtv_osd_coords_58513 pixel_stride ivtv_osd_coords 0 58513 NULL
173128 +enable_so_pmsg_size_ramoops_platform_data_58514 pmsg_size ramoops_platform_data 0 58514 NULL
173129 +enable_so_len_bnxt_tpa_info_58516 len bnxt_tpa_info 0 58516 NULL
173130 +enable_so___frontswap_curr_pages_fndecl_58517 __frontswap_curr_pages fndecl 0 58517 NULL nohasharray
173131 +enable_so_brcmf_vndr_ie_fndecl_58517 brcmf_vndr_ie fndecl 0-4 58517 &enable_so___frontswap_curr_pages_fndecl_58517 nohasharray
173132 +enable_so_core_sys_select_fndecl_58517 core_sys_select fndecl 1 58517 &enable_so_brcmf_vndr_ie_fndecl_58517
173133 +enable_so_sco_sock_alloc_fndecl_58518 sco_sock_alloc fndecl 3 58518 NULL
173134 +enable_so_read_block_for_search_fndecl_58525 read_block_for_search fndecl 0 58525 NULL
173135 +enable_so_rx_frag_size_bnx2x_fastpath_58531 rx_frag_size bnx2x_fastpath 0 58531 NULL
173136 +enable_so_cfpkt_split_fndecl_58534 cfpkt_split fndecl 2 58534 NULL
173137 +enable_so_remote_qpn_cm_id_private_58535 remote_qpn cm_id_private 0 58535 NULL
173138 +enable_so_leb_read_sanity_check_fndecl_58540 leb_read_sanity_check fndecl 0 58540 NULL nohasharray
173139 +enable_so_drbg_statelen_fndecl_58540 drbg_statelen fndecl 0 58540 &enable_so_leb_read_sanity_check_fndecl_58540
173140 +enable_so_populate_vma_page_range_fndecl_58544 populate_vma_page_range fndecl 2-0 58544 NULL
173141 +enable_so_volinit_CHIPDESC_58545 volinit CHIPDESC 0 58545 NULL
173142 +enable_so_ddata_ofsl_cyttsp4_sysinfo_data_58549 ddata_ofsl cyttsp4_sysinfo_data 0 58549 NULL
173143 +enable_so_usb_hcd_alloc_bandwidth_fndecl_58550 usb_hcd_alloc_bandwidth fndecl 0 58550 NULL
173144 +enable_so_size_vram_area_58552 size vram_area 0 58552 NULL
173145 +enable_so_xfs_inobt_insert_fndecl_58558 xfs_inobt_insert fndecl 4 58558 NULL nohasharray
173146 +enable_so_process_vm_rw_fndecl_58558 process_vm_rw fndecl 3-5 58558 &enable_so_xfs_inobt_insert_fndecl_58558
173147 +enable_so_read_ldt_fndecl_58561 read_ldt fndecl 2 58561 NULL
173148 +enable_so_remaining_asix_rx_fixup_info_58562 remaining asix_rx_fixup_info 0 58562 NULL
173149 +enable_so_pci_iomap_fndecl_58564 pci_iomap fndecl 3 58564 NULL
173150 +enable_so_qib_copy_from_sge_fndecl_58565 qib_copy_from_sge fndecl 3 58565 NULL
173151 +enable_so_isku_sysfs_read_last_set_fndecl_58567 isku_sysfs_read_last_set fndecl 6 58567 NULL
173152 +enable_so_gsmld_output_fndecl_58570 gsmld_output fndecl 3 58570 NULL
173153 +enable_so_llc_shdlc_init_fndecl_58573 llc_shdlc_init fndecl 4 58573 NULL nohasharray
173154 +enable_so_index_vardecl_intel8x0m_c_58573 index vardecl_intel8x0m.c 0 58573 &enable_so_llc_shdlc_init_fndecl_58573
173155 +enable_so_acpi_gpio_package_count_fndecl_58585 acpi_gpio_package_count fndecl 0 58585 NULL
173156 +enable_so_sysctl_tcp_reordering_vardecl_58592 sysctl_tcp_reordering vardecl 0 58592 NULL
173157 +enable_so_ext4_kvzalloc_fndecl_58598 ext4_kvzalloc fndecl 1 58598 NULL
173158 +enable_so_aoe_maxsectors_vardecl_aoeblk_c_58600 aoe_maxsectors vardecl_aoeblk.c 0 58600 NULL
173159 +enable_so_sctp_ssnmap_new_fndecl_58603 sctp_ssnmap_new fndecl 1-2 58603 NULL
173160 +enable_so_cache_read_pipefs_fndecl_58604 cache_read_pipefs fndecl 3 58604 NULL
173161 +enable_so_rd_count_ring_descr_hw_58616 rd_count ring_descr_hw 0 58616 NULL nohasharray
173162 +enable_so_thermal_tx_resume_read_fndecl_58616 thermal_tx_resume_read fndecl 3 58616 &enable_so_rd_count_ring_descr_hw_58616
173163 +enable_so_mousedev_read_fndecl_58624 mousedev_read fndecl 3 58624 NULL
173164 +enable_so_wusb_key_dump_fndecl_58627 wusb_key_dump fndecl 2 58627 NULL nohasharray
173165 +enable_so___erst_write_to_storage_fndecl_58627 __erst_write_to_storage fndecl 1 58627 &enable_so_wusb_key_dump_fndecl_58627
173166 +enable_so_dccps_gss_dccp_sock_58634 dccps_gss dccp_sock 0 58634 NULL
173167 +enable_so_layout_mdu_array_info_s_58636 layout mdu_array_info_s 0 58636 NULL nohasharray
173168 +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
173169 +enable_so_mei_cldev_recv_fndecl_58637 mei_cldev_recv fndecl 0-3 58637 NULL
173170 +enable_so_pgbase_nfs4_readdir_arg_58643 pgbase nfs4_readdir_arg 0 58643 NULL nohasharray
173171 +enable_so_offset_qib_mregion_58643 offset qib_mregion 0 58643 &enable_so_pgbase_nfs4_readdir_arg_58643
173172 +enable_so_msc_single_to_user_fndecl_58646 msc_single_to_user fndecl 4-3 58646 NULL
173173 +enable_so_report_id_hid_global_58647 report_id hid_global 0 58647 NULL
173174 +enable_so_page10_len_ses_device_58648 page10_len ses_device 0 58648 NULL
173175 +enable_so_mwifiex_alloc_dma_align_buf_fndecl_58656 mwifiex_alloc_dma_align_buf fndecl 1 58656 NULL nohasharray
173176 +enable_so_highest_bit_swap_info_struct_58656 highest_bit swap_info_struct 0 58656 &enable_so_mwifiex_alloc_dma_align_buf_fndecl_58656
173177 +enable_so_mxms_headerlen_fndecl_58666 mxms_headerlen fndecl 0 58666 NULL
173178 +enable_so_rx_rx_rts_timeout_read_fndecl_58667 rx_rx_rts_timeout_read fndecl 3 58667 NULL
173179 +enable_so_max_key_len_hfs_btree_58671 max_key_len hfs_btree 0 58671 NULL
173180 +enable_so_sb_inopblog_xfs_sb_58672 sb_inopblog xfs_sb 0 58672 NULL
173181 +enable_so_s_dirblksize_ufs_sb_private_info_58675 s_dirblksize ufs_sb_private_info 0 58675 NULL
173182 +enable_so_ses_recv_diag_fndecl_58676 ses_recv_diag fndecl 4 58676 NULL nohasharray
173183 +enable_so_acpi_ut_initialize_buffer_fndecl_58676 acpi_ut_initialize_buffer fndecl 2 58676 &enable_so_ses_recv_diag_fndecl_58676
173184 +enable_so_s_partition_size_affs_sb_info_58677 s_partition_size affs_sb_info 0 58677 NULL
173185 +enable_so_sctp_get_port_fndecl_58684 sctp_get_port fndecl 2 58684 NULL
173186 +enable_so_ramoops_ftrace_size_vardecl_ram_c_58686 ramoops_ftrace_size vardecl_ram.c 0 58686 NULL
173187 +enable_so_head_userio_device_58687 head userio_device 0 58687 NULL nohasharray
173188 +enable_so_max_response_len_sg_io_v4_58687 max_response_len sg_io_v4 0 58687 &enable_so_head_userio_device_58687
173189 +enable_so_subdirs_ceph_mds_reply_inode_58689 subdirs ceph_mds_reply_inode 0 58689 NULL
173190 +enable_so_ioremap_cache_fndecl_58694 ioremap_cache fndecl 2-1 58694 NULL
173191 +enable_so_rx_dma_len_efx_nic_58695 rx_dma_len efx_nic 0 58695 NULL
173192 +enable_so_s5k5baf_read_fndecl_58696 s5k5baf_read fndecl 0 58696 NULL
173193 +enable_so_root_ino_f2fs_super_block_58700 root_ino f2fs_super_block 0 58700 NULL
173194 +enable_so_wdt87xx_get_desc_fndecl_58707 wdt87xx_get_desc fndecl 4 58707 NULL
173195 +enable_so_fw_emem_len_rt_firmware_58718 fw_emem_len rt_firmware 0 58718 NULL nohasharray
173196 +enable_so_btrfs_del_inode_ref_fndecl_58718 btrfs_del_inode_ref fndecl 4 58718 &enable_so_fw_emem_len_rt_firmware_58718 nohasharray
173197 +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
173198 +enable_so_length_nhlt_resource_desc_58730 length nhlt_resource_desc 0 58730 NULL
173199 +enable_so_read_va_isert_cmd_58733 read_va isert_cmd 0 58733 NULL
173200 +enable_so_valid_chaoskey_58736 valid chaoskey 0 58736 NULL
173201 +enable_so_Residue_bulk_cs_wrap_58746 Residue bulk_cs_wrap 0 58746 NULL
173202 +enable_so_imaxpct_xfs_growfs_data_58747 imaxpct xfs_growfs_data 0 58747 NULL
173203 +enable_so___rds_create_fndecl_58751 __rds_create fndecl 3 58751 NULL
173204 +enable_so_skb_copy_datagram_from_iter_fndecl_58758 skb_copy_datagram_from_iter fndecl 4-2 58758 NULL nohasharray
173205 +enable_so_portcntrs_1_read_fndecl_58758 portcntrs_1_read fndecl 3 58758 &enable_so_skb_copy_datagram_from_iter_fndecl_58758
173206 +enable_so_ocfs2_xattr_free_block_fndecl_58767 ocfs2_xattr_free_block fndecl 2 58767 NULL
173207 +enable_so_port_fops_splice_write_fndecl_58771 port_fops_splice_write fndecl 4 58771 NULL
173208 +enable_so_snd_ctl_enum_info_fndecl_58778 snd_ctl_enum_info fndecl 2 58778 NULL
173209 +enable_so_bi_bvec_done_bvec_iter_58781 bi_bvec_done bvec_iter 0 58781 NULL nohasharray
173210 +enable_so_ucNumEntries__ATOM_PPLIB_PhaseSheddingLimits_Table_58781 ucNumEntries _ATOM_PPLIB_PhaseSheddingLimits_Table 0 58781 &enable_so_bi_bvec_done_bvec_iter_58781
173211 +enable_so_get_formats_soc_camera_host_ops_58784 get_formats soc_camera_host_ops 0 58784 NULL
173212 +enable_so_meta_ino_f2fs_super_block_58785 meta_ino f2fs_super_block 0 58785 NULL nohasharray
173213 +enable_so_off1_xad_58785 off1 xad 0 58785 &enable_so_meta_ino_f2fs_super_block_58785
173214 +enable_so_gfs2_readpages_fndecl_58790 gfs2_readpages fndecl 4 58790 NULL nohasharray
173215 +enable_so_cache_shift_qed_dev_58790 cache_shift qed_dev 0 58790 &enable_so_gfs2_readpages_fndecl_58790
173216 +enable_so_at24_macc_read_fndecl_58791 at24_macc_read fndecl 4 58791 NULL
173217 +enable_so_vsnprintf_fndecl_58792 vsnprintf fndecl 0 58792 NULL
173218 +enable_so_mppe_decompress_fndecl_58795 mppe_decompress fndecl 3 58795 NULL
173219 +enable_so_blkbits_dio_submit_58797 blkbits dio_submit 0 58797 NULL
173220 +enable_so_wNumRPipes_usb_wa_descriptor_58804 wNumRPipes usb_wa_descriptor 0 58804 NULL
173221 +enable_so_snd_pcm_hw_constraint_minmax_fndecl_58816 snd_pcm_hw_constraint_minmax fndecl 4-3 58816 NULL
173222 +enable_so_data_size_iser_page_vec_58817 data_size iser_page_vec 0 58817 NULL
173223 +enable_so_slen_snap_58819 slen snap 0 58819 NULL
173224 +enable_so_num_counters_op_x86_model_spec_58827 num_counters op_x86_model_spec 0 58827 NULL
173225 +enable_so_set_db_page_mthca_create_cq_58830 set_db_page mthca_create_cq 0 58830 NULL nohasharray
173226 +enable_so_al_stripe_size_4k_meta_data_on_disk_58830 al_stripe_size_4k meta_data_on_disk 0 58830 &enable_so_set_db_page_mthca_create_cq_58830
173227 +enable_so_f2fs_replace_block_fndecl_58838 f2fs_replace_block fndecl 4 58838 NULL
173228 +enable_so_tx_internal_desc_overflow_read_fndecl_58839 tx_internal_desc_overflow_read fndecl 3 58839 NULL
173229 +enable_so_virtqueue_add_fndecl_58841 virtqueue_add fndecl 3 58841 NULL
173230 +enable_so_nr_scratch_dwc3_58852 nr_scratch dwc3 0 58852 NULL
173231 +enable_so_ms_lib_read_extrablock_fndecl_58857 ms_lib_read_extrablock fndecl 4 58857 NULL
173232 +enable_so_ucs2_utf8size_fndecl_58859 ucs2_utf8size fndecl 0 58859 NULL
173233 +enable_so_exofs_iget_fndecl_58862 exofs_iget fndecl 2 58862 NULL
173234 +enable_so_vid_batadv_softif_vlan_58864 vid batadv_softif_vlan 0 58864 NULL nohasharray
173235 +enable_so_pd_groupsize_ptlrpcd_58864 pd_groupsize ptlrpcd 0 58864 &enable_so_vid_batadv_softif_vlan_58864
173236 +enable_so_channel_num_sudmac_pdata_58865 channel_num sudmac_pdata 0 58865 NULL
173237 +enable_so_uvc_ctrl_add_info_fndecl_58870 uvc_ctrl_add_info fndecl 0 58870 NULL
173238 +enable_so_hfp_ast_vbios_enhtable_58872 hfp ast_vbios_enhtable 0 58872 NULL
173239 +enable_so_gbuffers_vardecl_bttv_driver_c_58873 gbuffers vardecl_bttv-driver.c 0 58873 NULL
173240 +enable_so_xm_wmfw_adsp2_alg_hdr_58884 xm wmfw_adsp2_alg_hdr 0 58884 NULL
173241 +enable_so_rx_buf_sz_fe_priv_58888 rx_buf_sz fe_priv 0 58888 NULL
173242 +enable_so_max_xfer_nd_cmd_get_config_size_58894 max_xfer nd_cmd_get_config_size 0 58894 NULL
173243 +enable_so_usb_stor_bulk_transfer_sg_fndecl_58896 usb_stor_bulk_transfer_sg fndecl 4-2-5 58896 NULL
173244 +enable_so_size__iohandle_58897 size _iohandle 0 58897 NULL
173245 +enable_so_v9fs_file_fsync_fndecl_58898 v9fs_file_fsync fndecl 2-3 58898 NULL
173246 +enable_so_vhci_read_fndecl_58901 vhci_read fndecl 3 58901 NULL
173247 +enable_so_mwifiex_write_data_sync_fndecl_58903 mwifiex_write_data_sync fndecl 3 58903 NULL nohasharray
173248 +enable_so_xfs_nfs_get_inode_fndecl_58903 xfs_nfs_get_inode fndecl 2 58903 &enable_so_mwifiex_write_data_sync_fndecl_58903
173249 +enable_so_rpos_p9_conn_58910 rpos p9_conn 0 58910 NULL
173250 +enable_so_cmodio_setup_subdevice_fndecl_58913 cmodio_setup_subdevice fndecl 4 58913 NULL
173251 +enable_so_comedi_write_fndecl_58917 comedi_write fndecl 3 58917 NULL
173252 +enable_so_befs_bread_fndecl_58922 befs_bread fndecl 2 58922 NULL
173253 +enable_so_rfcomm_sock_alloc_fndecl_58926 rfcomm_sock_alloc fndecl 3 58926 NULL nohasharray
173254 +enable_so_parent_block_isofs_fid_58926 parent_block isofs_fid 0 58926 &enable_so_rfcomm_sock_alloc_fndecl_58926
173255 +enable_so_fore200e_pca_dma_chunk_alloc_fndecl_58927 fore200e_pca_dma_chunk_alloc fndecl 4-3 58927 NULL
173256 +enable_so_osd_req_read_sg_fndecl_58930 osd_req_read_sg fndecl 5 58930 NULL
173257 +enable_so_send_reply_chunks_fndecl_58933 send_reply_chunks fndecl 0 58933 NULL
173258 +enable_so_leaf_item_bottle_fndecl_58937 leaf_item_bottle fndecl 5 58937 NULL
173259 +enable_so_cfs_percpt_alloc_fndecl_58941 cfs_percpt_alloc fndecl 2 58941 NULL
173260 +enable_so_lpe_base_sst_pdata_58946 lpe_base sst_pdata 0 58946 NULL
173261 +enable_so_arch_setup_msi_irq_fndecl_58948 arch_setup_msi_irq fndecl 0 58948 NULL
173262 +enable_so_num_req_rx_rings_bnx2_58949 num_req_rx_rings bnx2 0 58949 NULL
173263 +enable_so_size_drm_nouveau_gem_info_58954 size drm_nouveau_gem_info 0 58954 NULL
173264 +enable_so__ext4_get_block_fndecl_58959 _ext4_get_block fndecl 2 58959 NULL
173265 +enable_so_query_len_tomoyo_query_58960 query_len tomoyo_query 0 58960 NULL
173266 +enable_so_mq_flush_data_end_io_fndecl_58961 mq_flush_data_end_io fndecl 2 58961 NULL
173267 +enable_so_integrity_alg_len_net_conf_58973 integrity_alg_len net_conf 0 58973 NULL
173268 +enable_so_adjust_managed_page_count_fndecl_58974 adjust_managed_page_count fndecl 2 58974 NULL
173269 +enable_so_pglen_nfs4_layoutdriver_data_58977 pglen nfs4_layoutdriver_data 0 58977 NULL nohasharray
173270 +enable_so_info0_rx_msdu_start_common_58977 info0 rx_msdu_start_common 0 58977 &enable_so_pglen_nfs4_layoutdriver_data_58977
173271 +enable_so_nent_mthca_eq_58979 nent mthca_eq 0 58979 NULL
173272 +enable_so_len_extent_buffer_58980 len extent_buffer 0 58980 NULL nohasharray
173273 +enable_so_ptk_icvlen_iwl_mvm_58980 ptk_icvlen iwl_mvm 0 58980 &enable_so_len_extent_buffer_58980
173274 +enable_so_sg_miter_skip_fndecl_58982 sg_miter_skip fndecl 2 58982 NULL
173275 +enable_so_len_cont_58983 len cont 0 58983 NULL
173276 +enable_so_megasas_mgmt_ioctl_fw_fndecl_58984 megasas_mgmt_ioctl_fw fndecl 0 58984 NULL
173277 +enable_so_ib_umad_write_fndecl_58986 ib_umad_write fndecl 3 58986 NULL
173278 +enable_so___tda18271_write_regs_fndecl_58989 __tda18271_write_regs fndecl 3 58989 NULL nohasharray
173279 +enable_so_index_ldtentry_58989 index ldtentry 0 58989 &enable_so___tda18271_write_regs_fndecl_58989
173280 +enable_so_mpi_read_raw_from_sgl_fndecl_58990 mpi_read_raw_from_sgl fndecl 2 58990 NULL
173281 +enable_so_nfs4_proc_get_acl_fndecl_58998 nfs4_proc_get_acl fndecl 3 58998 NULL
173282 +enable_so_trace_max_pages_vardecl_59000 trace_max_pages vardecl 0 59000 NULL
173283 +enable_so_private_value_snd_kcontrol_59001 private_value snd_kcontrol 0 59001 NULL nohasharray
173284 +enable_so_num_lun_nvm_id_group_59001 num_lun nvm_id_group 0 59001 &enable_so_private_value_snd_kcontrol_59001
173285 +enable_so_wa_urb_dequeue_fndecl_59008 wa_urb_dequeue fndecl 3 59008 NULL
173286 +enable_so_numextents_efs_inode_info_59009 numextents efs_inode_info 0 59009 NULL
173287 +enable_so_amdgpu_vram_location_fndecl_59010 amdgpu_vram_location fndecl 3 59010 NULL
173288 +enable_so___kvm_read_guest_atomic_fndecl_59011 __kvm_read_guest_atomic fndecl 2-5 59011 NULL
173289 +enable_so_dccpsl_nr_dccp_service_list_59022 dccpsl_nr dccp_service_list 0 59022 NULL
173290 +enable_so_lustre_cfg_len_fndecl_59025 lustre_cfg_len fndecl 0 59025 NULL
173291 +enable_so_frag_max_size_inet_skb_parm_59029 frag_max_size inet_skb_parm 0 59029 NULL
173292 +enable_so_frags_len_lro_59030 frags_len lro 0 59030 NULL
173293 +enable_so_nclips_saa7146_overlay_59032 nclips saa7146_overlay 0 59032 NULL
173294 +enable_so_in_epnum_usb_gadget_59033 in_epnum usb_gadget 0 59033 NULL
173295 +enable_so_max_inbound_frames__i2o_status_block_59034 max_inbound_frames _i2o_status_block 0 59034 NULL
173296 +enable_so_iwl_mvm_fw_dbg_collect_fndecl_59043 iwl_mvm_fw_dbg_collect fndecl 4 59043 NULL
173297 +enable_so_head_inbuf_t_59044 head inbuf_t 0 59044 NULL
173298 +enable_so_len_nand_bbt_descr_59045 len nand_bbt_descr 0 59045 NULL
173299 +enable_so_ref_node_alsz_ubifs_info_59046 ref_node_alsz ubifs_info 0 59046 NULL
173300 +enable_so_data0_myri10ge_cmd_59049 data0 myri10ge_cmd 0 59049 NULL
173301 +enable_so_max_block_docg3_59051 max_block docg3 0 59051 NULL nohasharray
173302 +enable_so_aligned_pep_sock_59051 aligned pep_sock 0 59051 &enable_so_max_block_docg3_59051
173303 +enable_so_posix_acl_alloc_fndecl_59052 posix_acl_alloc fndecl 1 59052 NULL nohasharray
173304 +enable_so_nr_strip_zones_r0conf_59052 nr_strip_zones r0conf 0 59052 &enable_so_posix_acl_alloc_fndecl_59052
173305 +enable_so_len_ar5523_rx_desc_59055 len ar5523_rx_desc 0 59055 NULL
173306 +enable_so_s_block_count_reiserfs_super_block_v1_59058 s_block_count reiserfs_super_block_v1 0 59058 NULL
173307 +enable_so_mpeglinesize_vardecl_cx231xx_417_c_59059 mpeglinesize vardecl_cx231xx-417.c 0 59059 NULL
173308 +enable_so_sys32_pread_fndecl_59062 sys32_pread fndecl 3 59062 NULL
173309 +enable_so_piobufbase_qib_devdata_59067 piobufbase qib_devdata 0 59067 NULL
173310 +enable_so_axi_dmac_prep_slave_sg_fndecl_59073 axi_dmac_prep_slave_sg fndecl 3 59073 NULL
173311 +enable_so_bmv_offset_getbmapx_59079 bmv_offset getbmapx 0 59079 NULL nohasharray
173312 +enable_so_write_va_isert_cmd_59079 write_va isert_cmd 0 59079 &enable_so_bmv_offset_getbmapx_59079
173313 +enable_so_i915_gem_stolen_insert_node_in_range_fndecl_59083 i915_gem_stolen_insert_node_in_range fndecl 3 59083 NULL
173314 +enable_so_buffer_mousedev_client_59098 buffer mousedev_client 0 59098 NULL
173315 +enable_so_rcvidx_hscx_hw_59100 rcvidx hscx_hw 0 59100 NULL
173316 +enable_so_ctrl_dma_ims_pcu_59106 ctrl_dma ims_pcu 0 59106 NULL
173317 +enable_so_out_wm8994_fll_config_59112 out wm8994_fll_config 0 59112 NULL
173318 +enable_so_remap_and_issue_shared_cell_fndecl_59114 remap_and_issue_shared_cell fndecl 3 59114 NULL
173319 +enable_so_wm_latency_write_fndecl_59118 wm_latency_write fndecl 3 59118 NULL
173320 +enable_so_sec_per_clus_fat_floppy_defaults_59119 sec_per_clus fat_floppy_defaults 0 59119 NULL
173321 +enable_so_mmc_alloc_host_fndecl_59122 mmc_alloc_host fndecl 1 59122 NULL
173322 +enable_so_width_em28xx_v4l2_59127 width em28xx_v4l2 0 59127 NULL nohasharray
173323 +enable_so_xfs_read_agi_fndecl_59127 xfs_read_agi fndecl 3 59127 &enable_so_width_em28xx_v4l2_59127
173324 +enable_so_bitrate_ieee80211_rate_59130 bitrate ieee80211_rate 0 59130 NULL
173325 +enable_so_wrt_pass_cntr_os_partition_s_59135 wrt_pass_cntr os_partition_s 0 59135 NULL
173326 +enable_so_retry_count_cm_id_private_59136 retry_count cm_id_private 0 59136 NULL nohasharray
173327 +enable_so_do_sys_ftruncate_fndecl_59136 do_sys_ftruncate fndecl 2 59136 &enable_so_retry_count_cm_id_private_59136
173328 +enable_so_tx_count__synclinkmp_info_59147 tx_count _synclinkmp_info 0 59147 NULL
173329 +enable_so_h_vlan_TCI_vlan_hdr_59149 h_vlan_TCI vlan_hdr 0 59149 NULL
173330 +enable_so_rx_data_ep_usb_card_rec_59150 rx_data_ep usb_card_rec 0 59150 NULL
173331 +enable_so_get_desc_rtl_hal_ops_59151 get_desc rtl_hal_ops 0 59151 NULL
173332 +enable_so_blk_mq_complete_request_fndecl_59157 blk_mq_complete_request fndecl 2 59157 NULL
173333 +enable_so_free_low_memory_core_early_fndecl_59160 free_low_memory_core_early fndecl 0 59160 NULL
173334 +enable_so_log_buf_len_vardecl_printk_c_59170 log_buf_len vardecl_printk.c 0 59170 NULL
173335 +enable_so_address_length_acpi_resource_io_59176 address_length acpi_resource_io 0 59176 NULL
173336 +enable_so_read_mii_bus_59181 read mii_bus 0 59181 NULL
173337 +enable_so_av_buf_ackno_dccp_ackvec_59183 av_buf_ackno dccp_ackvec 0 59183 NULL
173338 +enable_so_comps_used_iser_device_59187 comps_used iser_device 0 59187 NULL
173339 +enable_so_img_height_zoran_jpg_settings_59188 img_height zoran_jpg_settings 0 59188 NULL
173340 +enable_so_isl12022_read_regs_fndecl_59190 isl12022_read_regs fndecl 4 59190 NULL
173341 +enable_so_vtag_rx_pkt_status_59191 vtag rx_pkt_status 0 59191 NULL
173342 +enable_so_cdc_ncm_check_rx_max_fndecl_59192 cdc_ncm_check_rx_max fndecl 0-2 59192 NULL
173343 +enable_so_gr_learn_resource_fndecl_59200 gr_learn_resource fndecl 3 59200 NULL
173344 +enable_so_ms_os_descs_ext_prop_name_len_ffs_data_59205 ms_os_descs_ext_prop_name_len ffs_data 0 59205 NULL
173345 +enable_so_s_bmap_bits_affs_sb_info_59206 s_bmap_bits affs_sb_info 0 59206 NULL
173346 +enable_so_fat_sector_size_fat_bios_param_block_59207 fat_sector_size fat_bios_param_block 0 59207 NULL nohasharray
173347 +enable_so_nblocks_nilfs_segsum_info_59207 nblocks nilfs_segsum_info 0 59207 &enable_so_fat_sector_size_fat_bios_param_block_59207
173348 +enable_so_jade_empty_fifo_fndecl_59210 jade_empty_fifo fndecl 2 59210 NULL
173349 +enable_so_usCRTC_H_SyncWidth__ATOM_MODE_TIMING_59211 usCRTC_H_SyncWidth _ATOM_MODE_TIMING 0 59211 NULL nohasharray
173350 +enable_so_wbits_inflate_state_59211 wbits inflate_state 0 59211 &enable_so_usCRTC_H_SyncWidth__ATOM_MODE_TIMING_59211
173351 +enable_so_xfs_bmapi_trim_map_fndecl_59212 xfs_bmapi_trim_map fndecl 6 59212 NULL nohasharray
173352 +enable_so_mpdu_len_wcn36xx_pdu_59212 mpdu_len wcn36xx_pdu 0 59212 &enable_so_xfs_bmapi_trim_map_fndecl_59212
173353 +enable_so_cqe_size_mlx5_ib_create_cq_59213 cqe_size mlx5_ib_create_cq 0 59213 NULL
173354 +enable_so_lock_extent_direct_fndecl_59219 lock_extent_direct fndecl 3-2 59219 NULL
173355 +enable_so_fbmem_used_viafb_par_59221 fbmem_used viafb_par 0 59221 NULL nohasharray
173356 +enable_so_rtl8723b_parse_firmware_fndecl_59221 rtl8723b_parse_firmware fndecl 0 59221 &enable_so_fbmem_used_viafb_par_59221
173357 +enable_so_gprs_set_mtu_fndecl_59222 gprs_set_mtu fndecl 2 59222 NULL
173358 +enable_so_up_anode_59225 up anode 0 59225 NULL
173359 +enable_so_sci_dma_rx_push_fndecl_59232 sci_dma_rx_push fndecl 3 59232 NULL nohasharray
173360 +enable_so_walk_page_test_fndecl_59232 walk_page_test fndecl 0 59232 &enable_so_sci_dma_rx_push_fndecl_59232
173361 +enable_so_sierra_net_skb_clone_fndecl_59236 sierra_net_skb_clone fndecl 3 59236 NULL
173362 +enable_so_nfs_direct_IO_fndecl_59238 nfs_direct_IO fndecl 3 59238 NULL nohasharray
173363 +enable_so_bits_to_user_fndecl_59238 bits_to_user fndecl 3-2-0 59238 &enable_so_nfs_direct_IO_fndecl_59238
173364 +enable_so_nr_segs_iov_iter_59239 nr_segs iov_iter 0 59239 NULL
173365 +enable_so_num_mbc_cfgs_wm8994_pdata_59240 num_mbc_cfgs wm8994_pdata 0 59240 NULL
173366 +enable_so_nlp_maxframe_lpfc_nodelist_59242 nlp_maxframe lpfc_nodelist 0 59242 NULL
173367 +enable_so_req_it_iu_len_srp_login_req_59250 req_it_iu_len srp_login_req 0 59250 NULL
173368 +enable_so_save_microcode_fndecl_59254 save_microcode fndecl 3 59254 NULL
173369 +enable_so_rcvidx_hdlc_hw_59264 rcvidx hdlc_hw 0 59264 NULL nohasharray
173370 +enable_so_nilfs_sufile_get_offset_fndecl_59264 nilfs_sufile_get_offset fndecl 0-2 59264 &enable_so_rcvidx_hdlc_hw_59264
173371 +enable_so_indir_size_ethtool_rxfh_59267 indir_size ethtool_rxfh 0 59267 NULL
173372 +enable_so_h_lsn_xlog_rec_header_59275 h_lsn xlog_rec_header 0 59275 NULL
173373 +enable_so_bfad_iocmd_lport_reset_stats_fndecl_59279 bfad_iocmd_lport_reset_stats fndecl 0 59279 NULL nohasharray
173374 +enable_so_data_length_bnx2i_cmd_response_59279 data_length bnx2i_cmd_response 0 59279 &enable_so_bfad_iocmd_lport_reset_stats_fndecl_59279
173375 +enable_so_ir_prepare_write_buffer_fndecl_59280 ir_prepare_write_buffer fndecl 3 59280 NULL
173376 +enable_so_nentries_afs_dir_pagehdr_59283 nentries afs_dir_pagehdr 0 59283 NULL
173377 +enable_so_used_snd_array_59285 used snd_array 0 59285 NULL nohasharray
173378 +enable_so_mvumi_alloc_mem_resource_fndecl_59285 mvumi_alloc_mem_resource fndecl 3 59285 &enable_so_used_snd_array_59285
173379 +enable_so_written_coredump_params_59286 written coredump_params 0 59286 NULL
173380 +enable_so_alloc_sched_domains_fndecl_59295 alloc_sched_domains fndecl 1 59295 NULL
173381 +enable_so_posix_acl_fix_xattr_from_user_fndecl_59298 posix_acl_fix_xattr_from_user fndecl 2 59298 NULL
173382 +enable_so_sb_rootino_xfs_sb_59299 sb_rootino xfs_sb 0 59299 NULL nohasharray
173383 +enable_so_range_oid_t_59299 range oid_t 0 59299 &enable_so_sb_rootino_xfs_sb_59299
173384 +enable_so_jffs2_write_dnode_fndecl_59301 jffs2_write_dnode fndecl 5 59301 NULL
173385 +enable_so_next_segno_curseg_info_59302 next_segno curseg_info 0 59302 NULL
173386 +enable_so_stretch_width_usb_usbvision_59304 stretch_width usb_usbvision 0 59304 NULL
173387 +enable_so_W6692_empty_Bfifo_fndecl_59311 W6692_empty_Bfifo fndecl 2 59311 NULL
173388 +enable_so_frame_bytes_ua101_stream_59312 frame_bytes ua101_stream 0 59312 NULL
173389 +enable_so_befs_fblock2brun_fndecl_59313 befs_fblock2brun fndecl 3 59313 NULL
173390 +enable_so_qib_copy_sge_fndecl_59314 qib_copy_sge fndecl 3 59314 NULL
173391 +enable_so_pcpu_nr_units_vardecl_percpu_c_59323 pcpu_nr_units vardecl_percpu.c 0 59323 NULL
173392 +enable_so_nv_getlen_fndecl_59327 nv_getlen fndecl 0-3 59327 NULL
173393 +enable_so_i2c_inb_fndecl_59328 i2c_inb fndecl 0 59328 NULL
173394 +enable_so_stmmac_set_bfsize_fndecl_59337 stmmac_set_bfsize fndecl 0 59337 NULL
173395 +enable_so_raw_sendmsg_fndecl_59341 raw_sendmsg fndecl 3 59341 NULL
173396 +enable_so_affs_iget_fndecl_59342 affs_iget fndecl 2 59342 NULL
173397 +enable_so_mbox_size_sst_res_info_59343 mbox_size sst_res_info 0 59343 NULL
173398 +enable_so_ttymajor_vardecl_synclinkmp_c_59344 ttymajor vardecl_synclinkmp.c 0 59344 NULL
173399 +enable_so_lov_packmd_fndecl_59345 lov_packmd fndecl 0 59345 NULL
173400 +enable_so_offset_first_afs_writeback_59348 offset_first afs_writeback 0 59348 NULL
173401 +enable_so_rtl_cmd_width_vardecl_ibm_rtl_c_59349 rtl_cmd_width vardecl_ibm_rtl.c 0 59349 NULL
173402 +enable_so_size_s5p_jpeg_q_data_59350 size s5p_jpeg_q_data 0 59350 NULL
173403 +enable_so_vc_cols_vc_data_59351 vc_cols vc_data 0 59351 NULL
173404 +enable_so_r5l_write_super_and_discard_space_fndecl_59352 r5l_write_super_and_discard_space fndecl 2 59352 NULL nohasharray
173405 +enable_so_mw_count_ntb_dev_ops_59352 mw_count ntb_dev_ops 0 59352 &enable_so_r5l_write_super_and_discard_space_fndecl_59352
173406 +enable_so_vsync_end_drm_display_mode_59355 vsync_end drm_display_mode 0 59355 NULL nohasharray
173407 +enable_so_ov_start_sector_drbd_device_59355 ov_start_sector drbd_device 0 59355 &enable_so_vsync_end_drm_display_mode_59355
173408 +enable_so_hpfs_alloc_fnode_fndecl_59356 hpfs_alloc_fnode fndecl 2 59356 NULL nohasharray
173409 +enable_so_tree_mod_log_insert_move_fndecl_59356 tree_mod_log_insert_move fndecl 5 59356 &enable_so_hpfs_alloc_fnode_fndecl_59356
173410 +enable_so_omap_hsmmc_prepare_data_fndecl_59357 omap_hsmmc_prepare_data fndecl 0 59357 NULL
173411 +enable_so_base_tsn_sctp_tsnmap_59358 base_tsn sctp_tsnmap 0 59358 NULL
173412 +enable_so_ie_len_cfg80211_assoc_request_59359 ie_len cfg80211_assoc_request 0 59359 NULL
173413 +enable_so_sys_mmap_fndecl_59360 sys_mmap fndecl 2 59360 NULL
173414 +enable_so_ixgbe_change_mtu_fndecl_59370 ixgbe_change_mtu fndecl 2 59370 NULL nohasharray
173415 +enable_so_buf_len_i40e_arq_event_info_59370 buf_len i40e_arq_event_info 0 59370 &enable_so_ixgbe_change_mtu_fndecl_59370
173416 +enable_so_default_drvbuffer_scsi_tape_59374 default_drvbuffer scsi_tape 0 59374 NULL
173417 +enable_so_max_size_drm_vmw_get_3d_cap_arg_59378 max_size drm_vmw_get_3d_cap_arg 0 59378 NULL
173418 +enable_so_frag_point_sctp_association_59379 frag_point sctp_association 0 59379 NULL
173419 +enable_so_num_fcxp_reqs_bfa_iocfc_fwcfg_s_59383 num_fcxp_reqs bfa_iocfc_fwcfg_s 0 59383 NULL
173420 +enable_so_free_list_size_eni_dev_59386 free_list_size eni_dev 0 59386 NULL
173421 +enable_so_line_outs_auto_pin_cfg_59389 line_outs auto_pin_cfg 0 59389 NULL nohasharray
173422 +enable_so_tso_build_hdr_fndecl_59389 tso_build_hdr fndecl 4 59389 &enable_so_line_outs_auto_pin_cfg_59389
173423 +enable_so_batadv_iv_ogm_queue_add_fndecl_59398 batadv_iv_ogm_queue_add fndecl 3 59398 NULL nohasharray
173424 +enable_so_size_freelQ_59398 size freelQ 0 59398 &enable_so_batadv_iv_ogm_queue_add_fndecl_59398
173425 +enable_so_fm_size_ubi_device_59399 fm_size ubi_device 0 59399 NULL
173426 +enable_so_max_tx_channels_efx_nic_59400 max_tx_channels efx_nic 0 59400 NULL nohasharray
173427 +enable_so_smk_write_direct_fndecl_59400 smk_write_direct fndecl 3 59400 &enable_so_max_tx_channels_efx_nic_59400
173428 +enable_so_drm_legacy_addmap_fndecl_59402 drm_legacy_addmap fndecl 3-2 59402 NULL nohasharray
173429 +enable_so_type_trans_hdlc_proto_59402 type_trans hdlc_proto 0 59402 &enable_so_drm_legacy_addmap_fndecl_59402
173430 +enable_so_btrfs_lookup_bio_sums_fndecl_59404 btrfs_lookup_bio_sums fndecl 0 59404 NULL
173431 +enable_so_alloc_mad_private_fndecl_59408 alloc_mad_private fndecl 1 59408 NULL
173432 +enable_so_elem_size_bpf_htab_59409 elem_size bpf_htab 0 59409 NULL
173433 +enable_so_secure_dccpv6_sequence_number_fndecl_59410 secure_dccpv6_sequence_number fndecl 0 59410 NULL
173434 +enable_so_optlen_xfrm_mode_skb_cb_59411 optlen xfrm_mode_skb_cb 0 59411 NULL
173435 +enable_so_fotg210_urb_dequeue_fndecl_59414 fotg210_urb_dequeue fndecl 3 59414 NULL nohasharray
173436 +enable_so_num_vfs_ixgbe_adapter_59414 num_vfs ixgbe_adapter 0 59414 &enable_so_fotg210_urb_dequeue_fndecl_59414
173437 +enable_so_desc_elems_timb_dma_chan_59416 desc_elems timb_dma_chan 0 59416 NULL
173438 +enable_so_start_crash_mem_range_59421 start crash_mem_range 0 59421 NULL
173439 +enable_so_vma_adjust_fndecl_59429 vma_adjust fndecl 3-4-2 59429 NULL
173440 +enable_so_mmap_ureg_fndecl_59431 mmap_ureg fndecl 3 59431 NULL
173441 +enable_so_s_checkpoint_size_nilfs_super_block_59433 s_checkpoint_size nilfs_super_block 0 59433 NULL
173442 +enable_so_nilfs_cpfile_block_get_checkpoint_fndecl_59441 nilfs_cpfile_block_get_checkpoint fndecl 2 59441 NULL
173443 +enable_so_offset_ipfrag_skb_cb_59445 offset ipfrag_skb_cb 0 59445 NULL
173444 +enable_so_z2_zt_59452 z2 zt 0 59452 NULL
173445 +enable_so_rng_get_data_fndecl_59453 rng_get_data fndecl 0 59453 NULL
173446 +enable_so_ubi_dump_flash_fndecl_59454 ubi_dump_flash fndecl 4 59454 NULL
173447 +enable_so_btrfs_add_delayed_data_ref_fndecl_59457 btrfs_add_delayed_data_ref fndecl 3 59457 NULL
173448 +enable_so_platform_gpio_count_fndecl_59459 platform_gpio_count fndecl 0 59459 NULL
173449 +enable_so_vmbus_sendpacket_pagebuffer_fndecl_59463 vmbus_sendpacket_pagebuffer fndecl 5 59463 NULL
173450 +enable_so_ath6kl_wmi_mcast_filter_cmd_fndecl_59465 ath6kl_wmi_mcast_filter_cmd fndecl 2 59465 NULL
173451 +enable_so_ttm_page_pool_get_pages_fndecl_59468 ttm_page_pool_get_pages fndecl 5-0 59468 NULL
173452 +enable_so__pmcraid_io_done_fndecl_59469 _pmcraid_io_done fndecl 2 59469 NULL
173453 +enable_so_common_ie_len_ieee80211_scan_ies_59478 common_ie_len ieee80211_scan_ies 0 59478 NULL
173454 +enable_so_host_int_add_beacon_fndecl_59479 host_int_add_beacon fndecl 6-4 59479 NULL
173455 +enable_so_phys_acpi_ioremap_59485 phys acpi_ioremap 0 59485 NULL
173456 +enable_so_i2c_hid_output_raw_report_fndecl_59486 i2c_hid_output_raw_report fndecl 3 59486 NULL
173457 +enable_so_length_acpi_pnp_device_id_59493 length acpi_pnp_device_id 0 59493 NULL
173458 +enable_so_vma_to_resize_fndecl_59495 vma_to_resize fndecl 2-3 59495 NULL
173459 +enable_so_rx_ringsz_alx_priv_59496 rx_ringsz alx_priv 0 59496 NULL
173460 +enable_so_src_addr_width_dma_slave_config_59497 src_addr_width dma_slave_config 0 59497 NULL
173461 +enable_so_hd29l2_wr_regs_fndecl_59501 hd29l2_wr_regs fndecl 4 59501 NULL nohasharray
173462 +enable_so_pci_frontend_enable_msix_fndecl_59501 pci_frontend_enable_msix fndecl 3 59501 &enable_so_hd29l2_wr_regs_fndecl_59501
173463 +enable_so_lastbuf_for_pio_qib_chip_specific_59509 lastbuf_for_pio qib_chip_specific 0 59509 NULL
173464 +enable_so_wdata_alloc_and_fillpages_fndecl_59510 wdata_alloc_and_fillpages fndecl 1 59510 NULL
173465 +enable_so_rmtblkno2_xfs_da_args_59516 rmtblkno2 xfs_da_args 0 59516 NULL nohasharray
173466 +enable_so_cp210x_set_config_fndecl_59516 cp210x_set_config fndecl 4 59516 &enable_so_rmtblkno2_xfs_da_args_59516
173467 +enable_so_qlcnic_get_vnic_func_count_fndecl_59521 qlcnic_get_vnic_func_count fndecl 0 59521 NULL
173468 +enable_so_queue_length_vardecl_ua101_c_59524 queue_length vardecl_ua101.c 0 59524 NULL
173469 +enable_so_resultsize_vardecl_floppy_c_59525 resultsize vardecl_floppy.c 0 59525 NULL nohasharray
173470 +enable_so_limit_data_queue_59525 limit data_queue 0 59525 &enable_so_resultsize_vardecl_floppy_c_59525
173471 +enable_so_ocfs2_adjust_xattr_cross_cluster_fndecl_59528 ocfs2_adjust_xattr_cross_cluster fndecl 5-6 59528 NULL
173472 +enable_so_handle_ule_extensions_fndecl_59533 handle_ule_extensions fndecl 0 59533 NULL
173473 +enable_so_type_trans_fndecl_59541 type_trans fndecl 0 59541 NULL
173474 +enable_so_mmc_spi_writeblock_fndecl_59545 mmc_spi_writeblock fndecl 0 59545 NULL
173475 +enable_so___btrfs_map_block_fndecl_59552 __btrfs_map_block fndecl 0 59552 NULL
173476 +enable_so_snd_pcm_oss_format_from_fndecl_59553 snd_pcm_oss_format_from fndecl 0 59553 NULL nohasharray
173477 +enable_so_kmsg_read_fndecl_59553 kmsg_read fndecl 3 59553 &enable_so_snd_pcm_oss_format_from_fndecl_59553 nohasharray
173478 +enable_so_nouveau_drm_ioctl_fndecl_59553 nouveau_drm_ioctl fndecl 2 59553 &enable_so_kmsg_read_fndecl_59553
173479 +enable_so_pci_get_subsys_fndecl_59555 pci_get_subsys fndecl 2 59555 NULL nohasharray
173480 +enable_so_mthca_alloc_cq_buf_fndecl_59555 mthca_alloc_cq_buf fndecl 3 59555 &enable_so_pci_get_subsys_fndecl_59555
173481 +enable_so_num_stripes_btrfs_chunk_59557 num_stripes btrfs_chunk 0 59557 NULL
173482 +enable_so_nlm_end_grace_write_fndecl_59558 nlm_end_grace_write fndecl 3 59558 NULL
173483 +enable_so_rest_blocks_nilfs_write_info_59560 rest_blocks nilfs_write_info 0 59560 NULL
173484 +enable_so_chunk_size_disk_header_59563 chunk_size disk_header 0 59563 NULL
173485 +enable_so_bdx_rxdb_create_fndecl_59566 bdx_rxdb_create fndecl 1 59566 NULL
173486 +enable_so_sd_response_type_fndecl_59567 sd_response_type fndecl 0 59567 NULL
173487 +enable_so_fill_in_write_vector_fndecl_59569 fill_in_write_vector fndecl 0 59569 NULL nohasharray
173488 +enable_so_vringh_complete_multi_user_fndecl_59569 vringh_complete_multi_user fndecl 3 59569 &enable_so_fill_in_write_vector_fndecl_59569
173489 +enable_so_unmap_mapping_range_fndecl_59573 unmap_mapping_range fndecl 2-3 59573 NULL
173490 +enable_so_pin_code_reply_fndecl_59581 pin_code_reply fndecl 4 59581 NULL
173491 +enable_so_key_count_applesmc_registers_59587 key_count applesmc_registers 0 59587 NULL
173492 +enable_so_length_sctp_paramhdr_59588 length sctp_paramhdr 0 59588 NULL
173493 +enable_so_port_num_ib_umad_port_59589 port_num ib_umad_port 0 59589 NULL
173494 +enable_so_reserved_tags_blk_mq_tag_set_59594 reserved_tags blk_mq_tag_set 0 59594 NULL
173495 +enable_so_bMaxPacketSize0_usb_device_descriptor_59595 bMaxPacketSize0 usb_device_descriptor 0 59595 NULL
173496 +enable_so_last_sgs_total_ore_per_dev_state_59596 last_sgs_total ore_per_dev_state 0 59596 NULL nohasharray
173497 +enable_so_size_amd76xrom_window_59596 size amd76xrom_window 0 59596 &enable_so_last_sgs_total_ore_per_dev_state_59596
173498 +enable_so_tipc_link_create_fndecl_59597 tipc_link_create fndecl 6 59597 NULL
173499 +enable_so_min_coredump_linux_binfmt_59604 min_coredump linux_binfmt 0 59604 NULL
173500 +enable_so_height_mxr_crop_59619 height mxr_crop 0 59619 NULL
173501 +enable_so_serverworks_create_gatt_pages_fndecl_59621 serverworks_create_gatt_pages fndecl 1 59621 NULL
173502 +enable_so_ndescs_mlx5_ib_mr_59624 ndescs mlx5_ib_mr 0 59624 NULL
173503 +enable_so_unmap_single_vma_fndecl_59634 unmap_single_vma fndecl 4-3 59634 NULL
173504 +enable_so_gpio_count_tle62x0_pdata_59637 gpio_count tle62x0_pdata 0 59637 NULL
173505 +enable_so_q_fileoffset_xfs_dquot_59638 q_fileoffset xfs_dquot 0 59638 NULL
173506 +enable_so_trf7970a_transmit_fndecl_59648 trf7970a_transmit fndecl 5-3 59648 NULL
173507 +enable_so_SSID_len_brcmf_pno_net_info_le_59653 SSID_len brcmf_pno_net_info_le 0 59653 NULL
173508 +enable_so_xfs_trim_extents_fndecl_59654 xfs_trim_extents fndecl 2 59654 NULL
173509 +enable_so_num_subchannels_nvsp_5_subchannel_complete_59660 num_subchannels nvsp_5_subchannel_complete 0 59660 NULL
173510 +enable_so_fat_free_clusters_fndecl_59665 fat_free_clusters fndecl 2 59665 NULL
173511 +enable_so_mgmt_remote_name_fndecl_59667 mgmt_remote_name fndecl 7 59667 NULL nohasharray
173512 +enable_so_amdgpu_kms_compat_ioctl_fndecl_59667 amdgpu_kms_compat_ioctl fndecl 2 59667 &enable_so_mgmt_remote_name_fndecl_59667
173513 +enable_so_ipmi_pci_probe_regspacing_fndecl_59668 ipmi_pci_probe_regspacing fndecl 0 59668 NULL
173514 +enable_so_ms_read_bytes_fndecl_59672 ms_read_bytes fndecl 4-0 59672 NULL
173515 +enable_so_old_block_size_swap_info_struct_59674 old_block_size swap_info_struct 0 59674 NULL
173516 +enable_so_xprt_hlen_svc_deferred_req_59683 xprt_hlen svc_deferred_req 0 59683 NULL
173517 +enable_so_rtw_buf_update_fndecl_59689 rtw_buf_update fndecl 4 59689 NULL
173518 +enable_so_capacity_sddr55_card_info_59695 capacity sddr55_card_info 0 59695 NULL
173519 +enable_so_flt_region_bootload_ql82xx_hw_data_59701 flt_region_bootload ql82xx_hw_data 0 59701 NULL
173520 +enable_so_remote_qpn_mthca_qp_context_59707 remote_qpn mthca_qp_context 0 59707 NULL
173521 +enable_so_atalk_sendmsg_fndecl_59718 atalk_sendmsg fndecl 3 59718 NULL nohasharray
173522 +enable_so_aux_entry_sz_mlx4_dev_cap_59718 aux_entry_sz mlx4_dev_cap 0 59718 &enable_so_atalk_sendmsg_fndecl_59718
173523 +enable_so_dock_station_count_vardecl_dock_c_59728 dock_station_count vardecl_dock.c 0 59728 NULL
173524 +enable_so___walk_page_range_fndecl_59729 __walk_page_range fndecl 0 59729 NULL
173525 +enable_so_nilfs_btnode_create_block_fndecl_59734 nilfs_btnode_create_block fndecl 2 59734 NULL
173526 +enable_so_val_i2400m_pld_59735 val i2400m_pld 0 59735 NULL
173527 +enable_so_ddp_clear_map_fndecl_59739 ddp_clear_map fndecl 4 59739 NULL
173528 +enable_so_original_affs_tail_59741 original affs_tail 0 59741 NULL nohasharray
173529 +enable_so_offset_bts_phys_59741 offset bts_phys 0 59741 &enable_so_original_affs_tail_59741
173530 +enable_so_l_iclog_hsize_xlog_59743 l_iclog_hsize xlog 0 59743 NULL nohasharray
173531 +enable_so___netlink_change_ngroups_fndecl_59743 __netlink_change_ngroups fndecl 2 59743 &enable_so_l_iclog_hsize_xlog_59743
173532 +enable_so_ocfs2_read_dx_leaves_fndecl_59744 ocfs2_read_dx_leaves fndecl 2 59744 NULL nohasharray
173533 +enable_so_fq_resize_fndecl_59744 fq_resize fndecl 2 59744 &enable_so_ocfs2_read_dx_leaves_fndecl_59744
173534 +enable_so_nx_fw_cmd_set_phy_fndecl_59745 nx_fw_cmd_set_phy fndecl 3 59745 NULL
173535 +enable_so_mt_count_mtop_59746 mt_count mtop 0 59746 NULL
173536 +enable_so_xlog_write_calc_vec_length_fndecl_59749 xlog_write_calc_vec_length fndecl 0 59749 NULL
173537 +enable_so_request_size_afs_call_59750 request_size afs_call 0 59750 NULL nohasharray
173538 +enable_so_add_conn_list_fndecl_59750 add_conn_list fndecl 3 59750 &enable_so_request_size_afs_call_59750
173539 +enable_so_addr_phys_netup_dma_59759 addr_phys netup_dma 0 59759 NULL
173540 +enable_so_ib_mad_port_open_fndecl_59763 ib_mad_port_open fndecl 2 59763 NULL
173541 +enable_so_mtu_dst_ops_59765 mtu dst_ops 0 59765 NULL
173542 +enable_so_au_cslack_rpc_auth_59766 au_cslack rpc_auth 0 59766 NULL
173543 +enable_so__fdt_splice_mem_rsv_fndecl_59770 _fdt_splice_mem_rsv fndecl 3-4 59770 NULL
173544 +enable_so_vxge_os_dma_malloc_fndecl_59771 vxge_os_dma_malloc fndecl 2 59771 NULL
173545 +enable_so_tipc_msg_create_fndecl_59776 tipc_msg_create fndecl 4-3 59776 NULL
173546 +enable_so_tx_tx_cfe1_read_fndecl_59777 tx_tx_cfe1_read fndecl 3 59777 NULL
173547 +enable_so_osd_full_w_yuv_playback_info_59778 osd_full_w yuv_playback_info 0 59778 NULL
173548 +enable_so_reiserfs_new_symlink_fndecl_59783 reiserfs_new_symlink fndecl 6 59783 NULL nohasharray
173549 +enable_so_max_segments_queue_limits_59783 max_segments queue_limits 0 59783 &enable_so_reiserfs_new_symlink_fndecl_59783
173550 +enable_so_mlx4_buf_alloc_fndecl_59788 mlx4_buf_alloc fndecl 2 59788 NULL
173551 +enable_so_sdio_set_block_size_fndecl_59792 sdio_set_block_size fndecl 2 59792 NULL
173552 +enable_so_bandlength_Timon_table_entry_59793 bandlength Timon_table_entry 0 59793 NULL nohasharray
173553 +enable_so_num_leds_lm3533_platform_data_59793 num_leds lm3533_platform_data 0 59793 &enable_so_bandlength_Timon_table_entry_59793
173554 +enable_so_tm6000_i2c_recv_regs_fndecl_59796 tm6000_i2c_recv_regs fndecl 5 59796 NULL
173555 +enable_so_length_lv_59797 length lv 0 59797 NULL
173556 +enable_so_i2400m_op_msg_from_user_fndecl_59798 i2400m_op_msg_from_user fndecl 4 59798 NULL
173557 +enable_so_br_vlan_get_master_fndecl_59799 br_vlan_get_master fndecl 2 59799 NULL nohasharray
173558 +enable_so_NumPhys__CONFIG_PAGE_SAS_IO_UNIT_0_59799 NumPhys _CONFIG_PAGE_SAS_IO_UNIT_0 0 59799 &enable_so_br_vlan_get_master_fndecl_59799
173559 +enable_so_rcount_sixpack_59806 rcount sixpack 0 59806 NULL
173560 +enable_so_vcan_change_mtu_fndecl_59807 vcan_change_mtu fndecl 2 59807 NULL
173561 +enable_so_vmw_surface_gb_priv_define_fndecl_59811 vmw_surface_gb_priv_define fndecl 8 59811 NULL
173562 +enable_so_to_last_afs_writeback_59812 to_last afs_writeback 0 59812 NULL
173563 +enable_so_drbd_setup_queue_param_fndecl_59813 drbd_setup_queue_param fndecl 3 59813 NULL nohasharray
173564 +enable_so_setup_sgtable_fndecl_59813 setup_sgtable fndecl 4 59813 &enable_so_drbd_setup_queue_param_fndecl_59813
173565 +enable_so_frsz_gspca_dev_59816 frsz gspca_dev 0 59816 NULL
173566 +enable_so_nf_nat_ftp_fndecl_59818 nf_nat_ftp fndecl 6 59818 NULL
173567 +enable_so_num_entries_arpt_replace_59819 num_entries arpt_replace 0 59819 NULL
173568 +enable_so_numpstates_pst_s_59820 numpstates pst_s 0 59820 NULL
173569 +enable_so_xen_setup_msi_irqs_fndecl_59830 xen_setup_msi_irqs fndecl 2 59830 NULL
173570 +enable_so_length_inflate_state_59831 length inflate_state 0 59831 NULL
173571 +enable_so_dig_outs_auto_pin_cfg_59832 dig_outs auto_pin_cfg 0 59832 NULL
173572 +enable_so_mpi_read_raw_data_fndecl_59835 mpi_read_raw_data fndecl 2 59835 NULL
173573 +enable_so_plen_hci_command_hdr_59837 plen hci_command_hdr 0 59837 NULL
173574 +enable_so_dvb_net_init_fndecl_59840 dvb_net_init fndecl 0 59840 NULL
173575 +enable_so_max_len_xc2028_ctrl_59842 max_len xc2028_ctrl 0 59842 NULL
173576 +enable_so_tcp_sendmsg_fastopen_fndecl_59843 tcp_sendmsg_fastopen fndecl 4 59843 NULL
173577 +enable_so_f2fs_fill_dentries_fndecl_59844 f2fs_fill_dentries fndecl 3 59844 NULL
173578 +enable_so_status_mei_cl_cb_59845 status mei_cl_cb 0 59845 NULL
173579 +enable_so_sst_fill_byte_control_fndecl_59850 sst_fill_byte_control fndecl 6 59850 NULL
173580 +enable_so_acpi_rs_decode_bitmask_fndecl_59851 acpi_rs_decode_bitmask fndecl 0 59851 NULL
173581 +enable_so_dce_v11_0_afmt_update_ACR_fndecl_59852 dce_v11_0_afmt_update_ACR fndecl 2 59852 NULL nohasharray
173582 +enable_so_pep_alloc_skb_fndecl_59852 pep_alloc_skb fndecl 3 59852 &enable_so_dce_v11_0_afmt_update_ACR_fndecl_59852
173583 +enable_so_count_audit_chunk_59856 count audit_chunk 0 59856 NULL
173584 +enable_so_im_blkno_xfs_imap_59866 im_blkno xfs_imap 0 59866 NULL nohasharray
173585 +enable_so_length_pm8001_ioctl_payload_59866 length pm8001_ioctl_payload 0 59866 &enable_so_im_blkno_xfs_imap_59866
173586 +enable_so_arch_remove_memory_fndecl_59869 arch_remove_memory fndecl 2-1 59869 NULL
173587 +enable_so___process_changed_deleted_xattr_fndecl_59870 __process_changed_deleted_xattr fndecl 4 59870 NULL
173588 +enable_so_max_loop_vardecl_lloop_c_59872 max_loop vardecl_lloop.c 0 59872 NULL
173589 +enable_so_qlcnic_83xx_sysfs_flash_bulk_write_fndecl_59875 qlcnic_83xx_sysfs_flash_bulk_write fndecl 4 59875 NULL
173590 +enable_so_src_offset_btrfs_ioctl_clone_range_args_59876 src_offset btrfs_ioctl_clone_range_args 0 59876 NULL
173591 +enable_so_ide_scan_pio_blacklist_fndecl_59877 ide_scan_pio_blacklist fndecl 0 59877 NULL
173592 +enable_so_dx_fb_fillrect_59878 dx fb_fillrect 0 59878 NULL
173593 +enable_so___hwahc_dev_set_key_fndecl_59883 __hwahc_dev_set_key fndecl 5 59883 NULL
173594 +enable_so_vfs_allocated_count_igb_adapter_59900 vfs_allocated_count igb_adapter 0 59900 NULL
173595 +enable_so_mos7720_write_fndecl_59901 mos7720_write fndecl 4 59901 NULL nohasharray
173596 +enable_so_rxbuffersize_rtl_pci_59901 rxbuffersize rtl_pci 0 59901 &enable_so_mos7720_write_fndecl_59901
173597 +enable_so_num_gpio_wm831x_59907 num_gpio wm831x 0 59907 NULL
173598 +enable_so_x86_set_memory_region_fndecl_59911 x86_set_memory_region fndecl 4 59911 NULL
173599 +enable_so_qp_memcpy_from_queue_iov_fndecl_59913 qp_memcpy_from_queue_iov fndecl 5-4 59913 NULL
173600 +enable_so_rvmalloc_fndecl_59914 rvmalloc fndecl 1 59914 NULL
173601 +enable_so_video_endp_usb_usbvision_59918 video_endp usb_usbvision 0 59918 NULL
173602 +enable_so_nr_virtfn_bnx2x_sriov_59919 nr_virtfn bnx2x_sriov 0 59919 NULL nohasharray
173603 +enable_so_lov_iocontrol_fndecl_59919 lov_iocontrol fndecl 3 59919 &enable_so_nr_virtfn_bnx2x_sriov_59919
173604 +enable_so_wOverTheAirPacketSize_usb_wireless_ep_comp_descriptor_59926 wOverTheAirPacketSize usb_wireless_ep_comp_descriptor 0 59926 NULL
173605 +enable_so_n_user_regset_59935 n user_regset 0 59935 NULL nohasharray
173606 +enable_so_bfad_iocmd_vport_get_attr_fndecl_59935 bfad_iocmd_vport_get_attr fndecl 0 59935 &enable_so_n_user_regset_59935
173607 +enable_so_maximum_acpi_address32_attribute_59936 maximum acpi_address32_attribute 0 59936 NULL
173608 +enable_so_blk_queue_max_write_same_sectors_fndecl_59954 blk_queue_max_write_same_sectors fndecl 2 59954 NULL
173609 +enable_so_bpl_cx25821_buffer_59964 bpl cx25821_buffer 0 59964 NULL
173610 +enable_so_size_wid_59965 size wid 0 59965 NULL nohasharray
173611 +enable_so_pull_to_netfront_cb_59965 pull_to netfront_cb 0 59965 &enable_so_size_wid_59965
173612 +enable_so_acpi_os_create_cache_fndecl_59968 acpi_os_create_cache fndecl 2 59968 NULL
173613 +enable_so_mwifiex_set_wapi_ie_fndecl_59972 mwifiex_set_wapi_ie fndecl 3 59972 NULL
173614 +enable_so_calc_line_length_fndecl_59973 calc_line_length fndecl 0-3-2 59973 NULL
173615 +enable_so_fuse_file_fallocate_fndecl_59983 fuse_file_fallocate fndecl 3-4 59983 NULL nohasharray
173616 +enable_so_scrub_pages_fndecl_59983 scrub_pages fndecl 3-2-11-4 59983 &enable_so_fuse_file_fallocate_fndecl_59983
173617 +enable_so_wlcore_alloc_hw_fndecl_59990 wlcore_alloc_hw fndecl 1-3 59990 NULL
173618 +enable_so_affs_write_begin_ofs_fndecl_59991 affs_write_begin_ofs fndecl 3 59991 NULL
173619 +enable_so_real_stripes_btrfs_raid_bio_59993 real_stripes btrfs_raid_bio 0 59993 NULL
173620 +enable_so_count_drm_buf_desc_59998 count drm_buf_desc 0 59998 NULL
173621 +enable_so_fb_write_fndecl_59999 fb_write fndecl 3 59999 NULL
173622 +enable_so_size_fuse_arg_60001 size fuse_arg 0 60001 NULL
173623 +enable_so_SYSC_poll_fndecl_60006 SYSC_poll fndecl 2 60006 NULL
173624 +enable_so___find_resource_fndecl_60011 __find_resource fndecl 4 60011 NULL
173625 +enable_so_len_ubifs_ch_60014 len ubifs_ch 0 60014 NULL
173626 +enable_so_skb_priority_pktgen_dev_60015 skb_priority pktgen_dev 0 60015 NULL nohasharray
173627 +enable_so_prlo_len_fc_els_prlo_60015 prlo_len fc_els_prlo 0 60015 &enable_so_skb_priority_pktgen_dev_60015
173628 +enable_so_portnum_usb_device_60022 portnum usb_device 0 60022 NULL nohasharray
173629 +enable_so___sctp_setsockopt_connectx_fndecl_60022 __sctp_setsockopt_connectx fndecl 3 60022 &enable_so_portnum_usb_device_60022
173630 +enable_so_ntfs_truncate_fndecl_60026 ntfs_truncate fndecl 0 60026 NULL nohasharray
173631 +enable_so_qla4xxx_post_aen_work_fndecl_60026 qla4xxx_post_aen_work fndecl 3 60026 &enable_so_ntfs_truncate_fndecl_60026
173632 +enable_so_alloc_in_bmp_fndecl_60028 alloc_in_bmp fndecl 0-4-3-2 60028 NULL
173633 +enable_so_calculate_alignment_fndecl_60029 calculate_alignment fndecl 0-2 60029 NULL nohasharray
173634 +enable_so_coda_fsync_fndecl_60029 coda_fsync fndecl 2-3 60029 &enable_so_calculate_alignment_fndecl_60029
173635 +enable_so_write_tx_buf_fndecl_60032 write_tx_buf fndecl 4 60032 NULL
173636 +enable_so_print_bad_pte_fndecl_60036 print_bad_pte fndecl 2 60036 NULL
173637 +enable_so_hdrlen_ip_auth_hdr_60037 hdrlen ip_auth_hdr 0 60037 NULL
173638 +enable_so_sel_write_bool_fndecl_60039 sel_write_bool fndecl 3 60039 NULL
173639 +enable_so_MaxMSIxVectors_mpt3sas_facts_60045 MaxMSIxVectors mpt3sas_facts 0 60045 NULL
173640 +enable_so_blk_rq_map_kern_fndecl_60047 blk_rq_map_kern fndecl 4 60047 NULL
173641 +enable_so_mgmt_pending_add_fndecl_60051 mgmt_pending_add fndecl 5 60051 NULL
173642 +enable_so___br_vlan_set_proto_fndecl_60058 __br_vlan_set_proto fndecl 2 60058 NULL
173643 +enable_so_drm_atomic_helper_update_plane_fndecl_60059 drm_atomic_helper_update_plane fndecl 6-7 60059 NULL
173644 +enable_so_cx231xx_init_bulk_fndecl_60067 cx231xx_init_bulk fndecl 4-2-3 60067 NULL
173645 +enable_so_level_ubifs_znode_60069 level ubifs_znode 0 60069 NULL
173646 +enable_so_lpfc_hba_queue_depth_vardecl_lpfc_attr_c_60071 lpfc_hba_queue_depth vardecl_lpfc_attr.c 0 60071 NULL
173647 +enable_so_hpi_outstream_host_buffer_allocate_fndecl_60074 hpi_outstream_host_buffer_allocate fndecl 2 60074 NULL
173648 +enable_so_debugfs_create_u32_array_fndecl_60082 debugfs_create_u32_array fndecl 5 60082 NULL
173649 +enable_so_dram_offset_sst_res_info_60089 dram_offset sst_res_info 0 60089 NULL
173650 +enable_so_f2fs_issue_discard_fndecl_60090 f2fs_issue_discard fndecl 3-2 60090 NULL
173651 +enable_so_persistent_gnts_c_blkfront_info_60091 persistent_gnts_c blkfront_info 0 60091 NULL
173652 +enable_so_udpv6_sendmsg_fndecl_60103 udpv6_sendmsg fndecl 3 60103 NULL
173653 +enable_so_sample_rate_min_lola_60104 sample_rate_min lola 0 60104 NULL
173654 +enable_so_vxfs_iget_fndecl_60105 vxfs_iget fndecl 2 60105 NULL
173655 +enable_so_ufs_new_fragments_fndecl_60109 ufs_new_fragments fndecl 4-5-3 60109 NULL
173656 +enable_so_tegra_slink_start_rx_dma_fndecl_60111 tegra_slink_start_rx_dma fndecl 2 60111 NULL
173657 +enable_so_raid10_find_virt_fndecl_60115 raid10_find_virt fndecl 0-3-2 60115 NULL nohasharray
173658 +enable_so_num_tx_bnad_60115 num_tx bnad 0 60115 &enable_so_raid10_find_virt_fndecl_60115
173659 +enable_so_display_height_vivid_dev_60116 display_height vivid_dev 0 60116 NULL
173660 +enable_so_ht_ast_vbios_enhtable_60121 ht ast_vbios_enhtable 0 60121 NULL
173661 +enable_so_vga_vram_end_vardecl_vgacon_c_60130 vga_vram_end vardecl_vgacon.c 0 60130 NULL
173662 +enable_so_fb_base_drm_mode_config_60135 fb_base drm_mode_config 0 60135 NULL
173663 +enable_so_external_rate_fndecl_60138 external_rate fndecl 0 60138 NULL
173664 +enable_so_pci_xr17c154_setup_fndecl_60140 pci_xr17c154_setup fndecl 4 60140 NULL
173665 +enable_so_data_len_ib_ucm_event_60142 data_len ib_ucm_event 0 60142 NULL
173666 +enable_so_scalar_len_ccp_ecc_point_math_60144 scalar_len ccp_ecc_point_math 0 60144 NULL
173667 +enable_so_index_drm_minor_60149 index drm_minor 0 60149 NULL
173668 +enable_so_pipeline_dec_packet_in_read_fndecl_60151 pipeline_dec_packet_in_read fndecl 3 60151 NULL
173669 +enable_so_skb_checksum_setup_ip_fndecl_60154 skb_checksum_setup_ip fndecl 3 60154 NULL
173670 +enable_so_dt_mem_next_cell_fndecl_60162 dt_mem_next_cell fndecl 0 60162 NULL
173671 +enable_so_drm_fb_helper_initial_config_fndecl_60163 drm_fb_helper_initial_config fndecl 2 60163 NULL nohasharray
173672 +enable_so_smem_start_fb_fix_screeninfo_60163 smem_start fb_fix_screeninfo 0 60163 &enable_so_drm_fb_helper_initial_config_fndecl_60163
173673 +enable_so_num_pages_mlx5_eqe_page_req_60166 num_pages mlx5_eqe_page_req 0 60166 NULL nohasharray
173674 +enable_so_stream_start_fndecl_60166 stream_start fndecl 0 60166 &enable_so_num_pages_mlx5_eqe_page_req_60166
173675 +enable_so_wm8962_set_fll_fndecl_60167 wm8962_set_fll fndecl 4-5 60167 NULL
173676 +enable_so_vscnprintf_fndecl_60170 vscnprintf fndecl 0 60170 NULL
173677 +enable_so___kfifo_out_r_fndecl_60172 __kfifo_out_r fndecl 4 60172 NULL
173678 +enable_so_dccp_ackvec_buflen_fndecl_60177 dccp_ackvec_buflen fndecl 0 60177 NULL nohasharray
173679 +enable_so_ec_device_read_fndecl_60177 ec_device_read fndecl 3 60177 &enable_so_dccp_ackvec_buflen_fndecl_60177
173680 +enable_so_snd_compr_write_data_fndecl_60179 snd_compr_write_data fndecl 3 60179 NULL
173681 +enable_so_cc2520_write_ram_fndecl_60183 cc2520_write_ram fndecl 3 60183 NULL
173682 +enable_so_priority_binder_transaction_60184 priority binder_transaction 0 60184 NULL
173683 +enable_so_unlink1_fndecl_60188 unlink1 fndecl 3 60188 NULL
173684 +enable_so_pci_enable_device_fndecl_60193 pci_enable_device fndecl 0 60193 NULL
173685 +enable_so_vsub_vsp1_format_info_60198 vsub vsp1_format_info 0 60198 NULL
173686 +enable_so_esrt_efi_60200 esrt efi 0 60200 NULL
173687 +enable_so_vfs_getxattr_alloc_fndecl_60202 vfs_getxattr_alloc fndecl 0 60202 NULL
173688 +enable_so_av7110_ipack_init_fndecl_60204 av7110_ipack_init fndecl 2 60204 NULL
173689 +enable_so_bio_advance_iter_fndecl_60205 bio_advance_iter fndecl 3 60205 NULL
173690 +enable_so_src_frames_snd_pcm_plugin_60210 src_frames snd_pcm_plugin 0 60210 NULL nohasharray
173691 +enable_so_iuu_read_buf_fndecl_60210 iuu_read_buf fndecl 2 60210 &enable_so_src_frames_snd_pcm_plugin_60210
173692 +enable_so_request_key_async_with_auxdata_fndecl_60211 request_key_async_with_auxdata fndecl 4 60211 NULL
173693 +enable_so_lpfc_fcp_io_channel_vardecl_lpfc_attr_c_60216 lpfc_fcp_io_channel vardecl_lpfc_attr.c 0 60216 NULL
173694 +enable_so_iget_locked_fndecl_60218 iget_locked fndecl 2 60218 NULL nohasharray
173695 +enable_so_rmmio_base_radeon_device_60218 rmmio_base radeon_device 0 60218 &enable_so_iget_locked_fndecl_60218
173696 +enable_so_btusb_recv_bulk_fndecl_60219 btusb_recv_bulk fndecl 3 60219 NULL
173697 +enable_so_MaximumParallelCommands_DAC960_V2_ControllerInfo_60222 MaximumParallelCommands DAC960_V2_ControllerInfo 0 60222 NULL
173698 +enable_so_l2cap_parse_conf_rsp_fndecl_60232 l2cap_parse_conf_rsp fndecl 0 60232 NULL
173699 +enable_so_l2cap_create_le_flowctl_pdu_fndecl_60233 l2cap_create_le_flowctl_pdu fndecl 3 60233 NULL
173700 +enable_so_dlfb_alloc_urb_list_fndecl_60234 dlfb_alloc_urb_list fndecl 3 60234 NULL
173701 +enable_so_bttv_crop_adjust_fndecl_60236 bttv_crop_adjust fndecl 4-3 60236 NULL nohasharray
173702 +enable_so_irnet_connect_indication_fndecl_60236 irnet_connect_indication fndecl 5 60236 &enable_so_bttv_crop_adjust_fndecl_60236
173703 +enable_so_mwifiex_usb_host_to_card_fndecl_60239 mwifiex_usb_host_to_card fndecl 2 60239 NULL
173704 +enable_so_frag_len_pau_fpdu_frag_60242 frag_len pau_fpdu_frag 0 60242 NULL
173705 +enable_so_max_pages_per_fmr_ib_fmr_pool_param_60248 max_pages_per_fmr ib_fmr_pool_param 0 60248 NULL
173706 +enable_so_length_squashfs_page_actor_60249 length squashfs_page_actor 0 60249 NULL
173707 +enable_so_ah_rf_banks_size_ath5k_hw_60250 ah_rf_banks_size ath5k_hw 0 60250 NULL
173708 +enable_so_dirty_bytes_extent_io_tree_60254 dirty_bytes extent_io_tree 0 60254 NULL
173709 +enable_so_sector_size_jffs2_sb_info_60255 sector_size jffs2_sb_info 0 60255 NULL
173710 +enable_so_xenvif_change_mtu_fndecl_60258 xenvif_change_mtu fndecl 2 60258 NULL
173711 +enable_so_len_mwifiex_assoc_event_60259 len mwifiex_assoc_event 0 60259 NULL
173712 +enable_so_size_of_priv_dvb_usb_adapter_properties_60261 size_of_priv dvb_usb_adapter_properties 0 60261 NULL
173713 +enable_so_data_len_sym_ccb_60262 data_len sym_ccb 0 60262 NULL
173714 +enable_so_erst_dbg_write_fndecl_60264 erst_dbg_write fndecl 3 60264 NULL
173715 +enable_so_rotate_left_fndecl_60276 rotate_left fndecl 3-1 60276 NULL
173716 +enable_so_empty_dir_llseek_fndecl_60280 empty_dir_llseek fndecl 2 60280 NULL
173717 +enable_so_alloc_data_packet_fndecl_60281 alloc_data_packet fndecl 1 60281 NULL
173718 +enable_so_f2fs_update_dentry_fndecl_60285 f2fs_update_dentry fndecl 1 60285 NULL
173719 +enable_so___receive_buf_fndecl_60286 __receive_buf fndecl 4 60286 NULL
173720 +enable_so_length_ore_per_dev_state_60287 length ore_per_dev_state 0 60287 NULL
173721 +enable_so_s_retry_cnt_qib_qp_60301 s_retry_cnt qib_qp 0 60301 NULL
173722 +enable_so_recv_actor_unix_stream_read_state_60306 recv_actor unix_stream_read_state 0 60306 NULL nohasharray
173723 +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
173724 +enable_so_area_whcrc_60320 area whcrc 0 60320 NULL
173725 +enable_so_inet6_create_fndecl_60321 inet6_create fndecl 3 60321 NULL nohasharray
173726 +enable_so_pnp_add_irq_resource_fndecl_60321 pnp_add_irq_resource fndecl 2 60321 &enable_so_inet6_create_fndecl_60321
173727 +enable_so_kvm_vcpu_write_guest_fndecl_60323 kvm_vcpu_write_guest fndecl 2-4 60323 NULL
173728 +enable_so_pg_count_nfs_pgio_mirror_60324 pg_count nfs_pgio_mirror 0 60324 NULL
173729 +enable_so_transfer_fndecl_60326 transfer fndecl 4-0 60326 NULL
173730 +enable_so_eor_jfs_log_60327 eor jfs_log 0 60327 NULL
173731 +enable_so_rq_addrlen_svc_rqst_60328 rq_addrlen svc_rqst 0 60328 NULL
173732 +enable_so_upper_vardecl_matroxfb_base_c_60329 upper vardecl_matroxfb_base.c 0 60329 NULL
173733 +enable_so_bd_add_to_bdi_fndecl_60336 bd_add_to_bdi fndecl 0-2 60336 NULL
173734 +enable_so_buf_size__IOCTL_Command_struct_60338 buf_size _IOCTL_Command_struct 0 60338 NULL
173735 +enable_so_offset_nvkm_mem_60339 offset nvkm_mem 0 60339 NULL
173736 +enable_so_qib_rc_rcv_resp_fndecl_60341 qib_rc_rcv_resp fndecl 7-9-8-4 60341 NULL
173737 +enable_so_h_dloarea_60342 h dloarea 0 60342 NULL nohasharray
173738 +enable_so_raid5_compute_blocknr_fndecl_60342 raid5_compute_blocknr fndecl 0-2 60342 &enable_so_h_dloarea_60342
173739 +enable_so_pagesize_alauda_media_info_60348 pagesize alauda_media_info 0 60348 NULL
173740 +enable_so_hest_ghes_dev_register_fndecl_60349 hest_ghes_dev_register fndecl 1 60349 NULL
173741 +enable_so_setup_geo_fndecl_60351 setup_geo fndecl 0 60351 NULL nohasharray
173742 +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
173743 +enable_so_softback_lines_vardecl_fbcon_c_60357 softback_lines vardecl_fbcon.c 0 60357 NULL
173744 +enable_so_length_dfw_pllrec_60358 length dfw_pllrec 0 60358 NULL
173745 +enable_so_string_escape_str_fndecl_60365 string_escape_str fndecl 0 60365 NULL
173746 +enable_so_num_counters_vardecl_sysfs_c_60371 num_counters vardecl_sysfs.c 0 60371 NULL
173747 +enable_so_idd_bar0_ioc4_driver_data_60385 idd_bar0 ioc4_driver_data 0 60385 NULL
173748 +enable_so_s_inodes_per_group_ext4_super_block_60387 s_inodes_per_group ext4_super_block 0 60387 NULL
173749 +enable_so_acpi_dev_get_memresource_fndecl_60389 acpi_dev_get_memresource fndecl 3-2 60389 NULL
173750 +enable_so_count_tx_ring_60390 count tx_ring 0 60390 NULL
173751 +enable_so_shmem_pwrite_fast_fndecl_60393 shmem_pwrite_fast fndecl 3 60393 NULL
173752 +enable_so_block_in_file_dio_submit_60403 block_in_file dio_submit 0 60403 NULL
173753 +enable_so_btrfs_insert_empty_items_fndecl_60405 btrfs_insert_empty_items fndecl 6 60405 NULL
173754 +enable_so_max_vfs_vardecl_ixgbe_main_c_60408 max_vfs vardecl_ixgbe_main.c 0 60408 NULL
173755 +enable_so_xfs_iroot_realloc_fndecl_60409 xfs_iroot_realloc fndecl 2 60409 NULL
173756 +enable_so_xfs_bulkstat_one_int_fndecl_60410 xfs_bulkstat_one_int fndecl 2 60410 NULL
173757 +enable_so_da_num_tokens_vardecl_dell_laptop_c_60413 da_num_tokens vardecl_dell-laptop.c 0 60413 NULL
173758 +enable_so_sched_nice_sched_attr_60426 sched_nice sched_attr 0 60426 NULL
173759 +enable_so___ocfs2_mknod_locked_fndecl_60427 __ocfs2_mknod_locked fndecl 8-9-10 60427 NULL
173760 +enable_so_hippi_header_fndecl_60434 hippi_header fndecl 3 60434 NULL
173761 +enable_so___i2c_hid_command_fndecl_60442 __i2c_hid_command fndecl 6-8 60442 NULL
173762 +enable_so_minimum_cx88_ctrl_60444 minimum cx88_ctrl 0 60444 NULL
173763 +enable_so_digestsize_hash_alg_common_60446 digestsize hash_alg_common 0 60446 NULL
173764 +enable_so_count_hscx_hw_60448 count hscx_hw 0 60448 NULL
173765 +enable_so_lib80211_tkip_decrypt_fndecl_60450 lib80211_tkip_decrypt fndecl 2 60450 NULL
173766 +enable_so_maxsgentries_ctlr_info_60455 maxsgentries ctlr_info 0 60455 NULL
173767 +enable_so_clone_copy_inline_extent_fndecl_60461 clone_copy_inline_extent fndecl 7-6 60461 NULL
173768 +enable_so_sd_quota_slots_gfs2_sbd_60466 sd_quota_slots gfs2_sbd 0 60466 NULL
173769 +enable_so_write_fndecl_60467 write fndecl 3 60467 NULL
173770 +enable_so_ath10k_dbg_dump_fndecl_60482 ath10k_dbg_dump fndecl 6 60482 NULL
173771 +enable_so_drm_vma_offset_add_fndecl_60483 drm_vma_offset_add fndecl 3 60483 NULL nohasharray
173772 +enable_so_osd_left_vardecl_ivtvfb_c_60483 osd_left vardecl_ivtvfb.c 0 60483 &enable_so_drm_vma_offset_add_fndecl_60483
173773 +enable_so_lane2_associate_req_fndecl_60485 lane2_associate_req fndecl 4 60485 NULL
173774 +enable_so_v_nmembs_nilfs_argv_60498 v_nmembs nilfs_argv 0 60498 NULL
173775 +enable_so_stat_rate_sl_mlx5_av_60503 stat_rate_sl mlx5_av 0 60503 NULL
173776 +enable_so_cap_intel_iommu_60508 cap intel_iommu 0 60508 NULL
173777 +enable_so_tiadc_channel_init_fndecl_60514 tiadc_channel_init fndecl 2 60514 NULL
173778 +enable_so_rpcrdma_convert_iovs_fndecl_60516 rpcrdma_convert_iovs fndecl 0 60516 NULL
173779 +enable_so_n_host_mvs_chip_info_60517 n_host mvs_chip_info 0 60517 NULL nohasharray
173780 +enable_so_ll_iocontrol_register_fndecl_60517 ll_iocontrol_register fndecl 2 60517 &enable_so_n_host_mvs_chip_info_60517
173781 +enable_so_tty_buffer_alloc_fndecl_60526 tty_buffer_alloc fndecl 2 60526 NULL
173782 +enable_so_b44_change_mtu_fndecl_60528 b44_change_mtu fndecl 2 60528 NULL
173783 +enable_so_hso_serial_write_fndecl_60530 hso_serial_write fndecl 3 60530 NULL nohasharray
173784 +enable_so_ima_store_measurement_fndecl_60530 ima_store_measurement fndecl 5 60530 &enable_so_hso_serial_write_fndecl_60530
173785 +enable_so_sock_recv_errqueue_fndecl_60535 sock_recv_errqueue fndecl 3 60535 NULL
173786 +enable_so_qib_sdma_verbs_send_fndecl_60539 qib_sdma_verbs_send fndecl 3 60539 NULL
173787 +enable_so_mic_card_map_fndecl_60546 mic_card_map fndecl 3-2 60546 NULL nohasharray
173788 +enable_so_device_size_scsi_transport_template_60546 device_size scsi_transport_template 0 60546 &enable_so_mic_card_map_fndecl_60546
173789 +enable_so_dma_tx_bytes_lpuart_port_60550 dma_tx_bytes lpuart_port 0 60550 NULL
173790 +enable_so_udp_manip_pkt_fndecl_60552 udp_manip_pkt fndecl 4 60552 NULL
173791 +enable_so_PSize_RxDesc_60553 PSize RxDesc 0 60553 NULL
173792 +enable_so___calc_request_pg_fndecl_60557 __calc_request_pg fndecl 0 60557 NULL
173793 +enable_so_max_response_cros_ec_device_60558 max_response cros_ec_device 0 60558 NULL
173794 +enable_so_nilfs_palloc_delete_block_fndecl_60568 nilfs_palloc_delete_block fndecl 2 60568 NULL
173795 +enable_so_chr_major_ports_device_60572 chr_major ports_device 0 60572 NULL
173796 +enable_so_slot_dlm_member_60581 slot dlm_member 0 60581 NULL
173797 +enable_so_nibble_read_data_parport_operations_60589 nibble_read_data parport_operations 0 60589 NULL
173798 +enable_so_xfs_dir2_free_try_read_fndecl_60591 xfs_dir2_free_try_read fndecl 3 60591 NULL
173799 +enable_so_assoclen_chachapoly_req_ctx_60596 assoclen chachapoly_req_ctx 0 60596 NULL
173800 +enable_so_in_size_ide_task_request_s_60603 in_size ide_task_request_s 0 60603 NULL
173801 +enable_so___split_vma_fndecl_60609 __split_vma fndecl 3 60609 NULL
173802 +enable_so_fuse_ref_page_fndecl_60613 fuse_ref_page fndecl 4-3 60613 NULL nohasharray
173803 +enable_so_first_page_mpage_da_data_60613 first_page mpage_da_data 0 60613 &enable_so_fuse_ref_page_fndecl_60613
173804 +enable_so_sys_lgetxattr_fndecl_60616 sys_lgetxattr fndecl 4 60616 NULL
173805 +enable_so_qpc_entry_sz_mlx4_dev_cap_60618 qpc_entry_sz mlx4_dev_cap 0 60618 NULL
173806 +enable_so_dqi_usable_bs_qtree_mem_dqinfo_60619 dqi_usable_bs qtree_mem_dqinfo 0 60619 NULL
173807 +enable_so_copy_macs_fndecl_60621 copy_macs fndecl 4 60621 NULL
173808 +enable_so_copy_nocow_pages_fndecl_60628 copy_nocow_pages fndecl 3-5 60628 NULL nohasharray
173809 +enable_so_i40e_alloc_vfs_fndecl_60628 i40e_alloc_vfs fndecl 2 60628 &enable_so_copy_nocow_pages_fndecl_60628 nohasharray
173810 +enable_so_htable_bits_htable_60628 htable_bits htable 0 60628 &enable_so_i40e_alloc_vfs_fndecl_60628
173811 +enable_so_gso_size_skb_shared_info_60636 gso_size skb_shared_info 0 60636 NULL nohasharray
173812 +enable_so_num_tx_desc_iadev_priv_60636 num_tx_desc iadev_priv 0 60636 &enable_so_gso_size_skb_shared_info_60636
173813 +enable_so_btrfs_new_extent_direct_fndecl_60642 btrfs_new_extent_direct fndecl 2 60642 NULL
173814 +enable_so_fill_snd_fw_async_midi_port_60647 fill snd_fw_async_midi_port 0 60647 NULL
173815 +enable_so_num_mpts_mthca_limits_60648 num_mpts mthca_limits 0 60648 NULL
173816 +enable_so_psi_count_xhci_hub_60651 psi_count xhci_hub 0 60651 NULL
173817 +enable_so_venus_rmdir_fndecl_60655 venus_rmdir fndecl 4 60655 NULL
173818 +enable_so_neo_map_video_fndecl_60656 neo_map_video fndecl 3 60656 NULL
173819 +enable_so_i_extra_isize_ext4_inode_info_60659 i_extra_isize ext4_inode_info 0 60659 NULL nohasharray
173820 +enable_so___ax88179_read_cmd_fndecl_60659 __ax88179_read_cmd fndecl 5 60659 &enable_so_i_extra_isize_ext4_inode_info_60659
173821 +enable_so_eld_size_hdmi_eld_60661 eld_size hdmi_eld 0 60661 NULL
173822 +enable_so_secondary_head_adu_device_60665 secondary_head adu_device 0 60665 NULL
173823 +enable_so_cxd2820r_rd_regs_i2c_fndecl_60668 cxd2820r_rd_regs_i2c fndecl 5 60668 NULL
173824 +enable_so_cx18_copy_mdl_to_user_fndecl_60670 cx18_copy_mdl_to_user fndecl 4 60670 NULL
173825 +enable_so_set_extent_bits_fndecl_60673 set_extent_bits fndecl 3-2 60673 NULL nohasharray
173826 +enable_so_h_mspro_block_setup_cmd_fndecl_60673 h_mspro_block_setup_cmd fndecl 3 60673 &enable_so_set_extent_bits_fndecl_60673
173827 +enable_so_tx_tx_cfe2_read_fndecl_60677 tx_tx_cfe2_read fndecl 3 60677 NULL
173828 +enable_so_pos_saa7164_user_buffer_60678 pos saa7164_user_buffer 0 60678 NULL
173829 +enable_so_bytenr_btrfs_qgroup_extent_record_60692 bytenr btrfs_qgroup_extent_record 0 60692 NULL
173830 +enable_so_vnic_dev_mtu_fndecl_60693 vnic_dev_mtu fndecl 0 60693 NULL nohasharray
173831 +enable_so_MaxBufSize_lanman_neg_rsp_60693 MaxBufSize lanman_neg_rsp 0 60693 &enable_so_vnic_dev_mtu_fndecl_60693
173832 +enable_so_mon_bin_collate_isodesc_fndecl_60695 mon_bin_collate_isodesc fndecl 0 60695 NULL nohasharray
173833 +enable_so_sel_write_user_fndecl_60695 sel_write_user fndecl 3 60695 &enable_so_mon_bin_collate_isodesc_fndecl_60695
173834 +enable_so_ubifs_fsync_fndecl_60696 ubifs_fsync fndecl 2-3 60696 NULL
173835 +enable_so_max_size_vx_ibl_info_60702 max_size vx_ibl_info 0 60702 NULL nohasharray
173836 +enable_so_snd_mixart_BA0_read_fndecl_60702 snd_mixart_BA0_read fndecl 5 60702 &enable_so_max_size_vx_ibl_info_60702
173837 +enable_so_count_vma_pages_range_fndecl_60705 count_vma_pages_range fndecl 0-2-3 60705 NULL
173838 +enable_so_snd_card_new_fndecl_60707 snd_card_new fndecl 2-5 60707 NULL
173839 +enable_so_kvm_mmu_page_get_gfn_fndecl_60709 kvm_mmu_page_get_gfn fndecl 0-2 60709 NULL
173840 +enable_so_usbdev_read_fndecl_60713 usbdev_read fndecl 3 60713 NULL
173841 +enable_so_pwr_missing_bcns_cnt_read_fndecl_60714 pwr_missing_bcns_cnt_read fndecl 3 60714 NULL
173842 +enable_so_sock_sendmsg_fndecl_60718 sock_sendmsg fndecl 0 60718 NULL
173843 +enable_so_bsg_request_fc_function_template_60721 bsg_request fc_function_template 0 60721 NULL nohasharray
173844 +enable_so_HighPriorityCredit_mpt3sas_facts_60721 HighPriorityCredit mpt3sas_facts 0 60721 &enable_so_bsg_request_fc_function_template_60721
173845 +enable_so_reserved_pebs_ubi_volume_60725 reserved_pebs ubi_volume 0 60725 NULL
173846 +enable_so_count_ptd_60735 count ptd 0 60735 NULL nohasharray
173847 +enable_so_splice_from_pipe_fndecl_60735 splice_from_pipe fndecl 4 60735 &enable_so_count_ptd_60735
173848 +enable_so___vlan_vid_del_fndecl_60738 __vlan_vid_del fndecl 3 60738 NULL
173849 +enable_so_hwarc_filter_cmd_set_drp_ie_WUSB_0100_fndecl_60739 hwarc_filter_cmd_set_drp_ie_WUSB_0100 fndecl 0 60739 NULL
173850 +enable_so_command_setapcor_fndecl_60740 command_setapcor fndecl 0 60740 NULL
173851 +enable_so_ns_inode_size_the_nilfs_60742 ns_inode_size the_nilfs 0 60742 NULL nohasharray
173852 +enable_so_send_to_tty_fndecl_60742 send_to_tty fndecl 3 60742 &enable_so_ns_inode_size_the_nilfs_60742
173853 +enable_so_cfs_trace_daemon_command_usrstr_fndecl_60744 cfs_trace_daemon_command_usrstr fndecl 2 60744 NULL
173854 +enable_so_io_size_wdt_lpc_sch_info_60747 io_size_wdt lpc_sch_info 0 60747 NULL
173855 +enable_so_max_cluster_msdos_sb_info_60753 max_cluster msdos_sb_info 0 60753 NULL
173856 +enable_so_index_vardecl_intel8x0_c_60756 index vardecl_intel8x0.c 0 60756 NULL nohasharray
173857 +enable_so_index_hpi_adapter_obj_60756 index hpi_adapter_obj 0 60756 &enable_so_index_vardecl_intel8x0_c_60756
173858 +enable_so_chipshift_nand_flash_dev_60758 chipshift nand_flash_dev 0 60758 NULL
173859 +enable_so_jpg_bufsize_vardecl_60761 jpg_bufsize vardecl 0 60761 NULL
173860 +enable_so_devid_intel_lpss_60766 devid intel_lpss 0 60766 NULL
173861 +enable_so_base_ttm_bus_placement_60769 base ttm_bus_placement 0 60769 NULL
173862 +enable_so_i_block_group_ext2_inode_info_60771 i_block_group ext2_inode_info 0 60771 NULL
173863 +enable_so_a_channels_libipw_geo_60784 a_channels libipw_geo 0 60784 NULL nohasharray
173864 +enable_so_sd_read_long_data_fndecl_60784 sd_read_long_data fndecl 0 60784 &enable_so_a_channels_libipw_geo_60784
173865 +enable_so_length_blkpg_partition_60788 length blkpg_partition 0 60788 NULL
173866 +enable_so_x2_virtio_gpu_framebuffer_60789 x2 virtio_gpu_framebuffer 0 60789 NULL
173867 +enable_so_ocfs2_remove_inode_range_fndecl_60791 ocfs2_remove_inode_range fndecl 3-4 60791 NULL nohasharray
173868 +enable_so_device_write_fndecl_60791 device_write fndecl 3 60791 &enable_so_ocfs2_remove_inode_range_fndecl_60791
173869 +enable_so_full_width_mxr_crop_60792 full_width mxr_crop 0 60792 NULL
173870 +enable_so_tomoyo_write_self_fndecl_60794 tomoyo_write_self fndecl 3 60794 NULL
173871 +enable_so_count_hdlc_hw_60796 count hdlc_hw 0 60796 NULL
173872 +enable_so_in_modifier_mlx4_vhcr_60797 in_modifier mlx4_vhcr 0 60797 NULL
173873 +enable_so_sta_agg_status_write_fndecl_60799 sta_agg_status_write fndecl 3 60799 NULL
173874 +enable_so_iso_alloc_urb_fndecl_60805 iso_alloc_urb fndecl 4-5-2 60805 NULL
173875 +enable_so_mpt_lan_change_mtu_fndecl_60806 mpt_lan_change_mtu fndecl 2 60806 NULL
173876 +enable_so_perdev_minors_vardecl_block_c_60809 perdev_minors vardecl_block.c 0 60809 NULL
173877 +enable_so_min_addr_nhlt_resource_desc_60819 min_addr nhlt_resource_desc 0 60819 NULL
173878 +enable_so_sctp_pack_cookie_fndecl_60821 sctp_pack_cookie fndecl 6 60821 NULL
173879 +enable_so_new_log_buf_len_vardecl_printk_c_60824 new_log_buf_len vardecl_printk.c 0 60824 NULL
173880 +enable_so___radix_tree_preload_fndecl_60830 __radix_tree_preload fndecl 0 60830 NULL
173881 +enable_so_beacon_ies_len_cfg80211_beacon_data_60831 beacon_ies_len cfg80211_beacon_data 0 60831 NULL
173882 +enable_so_register_sound_dsp_fndecl_60835 register_sound_dsp fndecl 2 60835 NULL
173883 +enable_so_bInterval_usb_endpoint_descriptor_60843 bInterval usb_endpoint_descriptor 0 60843 NULL nohasharray
173884 +enable_so_limit_fm10k_ring_feature_60843 limit fm10k_ring_feature 0 60843 &enable_so_bInterval_usb_endpoint_descriptor_60843
173885 +enable_so_prism2_pda_proc_read_fndecl_60845 prism2_pda_proc_read fndecl 3 60845 NULL
173886 +enable_so_wlen_si2168_cmd_60850 wlen si2168_cmd 0 60850 NULL
173887 +enable_so_spi_alloc_master_fndecl_60852 spi_alloc_master fndecl 2 60852 NULL
173888 +enable_so_channels_max_snd_pcm_hardware_60854 channels_max snd_pcm_hardware 0 60854 NULL
173889 +enable_so_cb710_mmc_receive_pio_fndecl_60864 cb710_mmc_receive_pio fndecl 0 60864 NULL
173890 +enable_so_dev_priv_size_drm_driver_60870 dev_priv_size drm_driver 0 60870 NULL
173891 +enable_so_sectors_per_block_cache_60872 sectors_per_block cache 0 60872 NULL
173892 +enable_so_input_mt_init_slots_fndecl_60876 input_mt_init_slots fndecl 2 60876 NULL
173893 +enable_so_reiserfs_bmap_fndecl_60877 reiserfs_bmap fndecl 2 60877 NULL
173894 +enable_so_map_size_tpm_inf_dev_60880 map_size tpm_inf_dev 0 60880 NULL
173895 +enable_so_osd_y_offset_yuv_playback_info_60883 osd_y_offset yuv_playback_info 0 60883 NULL
173896 +enable_so_xenvif_add_frag_responses_fndecl_60886 xenvif_add_frag_responses fndecl 2 60886 NULL
173897 +enable_so_last_data_size_ubi_ainf_volume_60887 last_data_size ubi_ainf_volume 0 60887 NULL nohasharray
173898 +enable_so_msg_size_c2_mq_60887 msg_size c2_mq 0 60887 &enable_so_last_data_size_ubi_ainf_volume_60887
173899 +enable_so_snd_pcm_oss_sync1_fndecl_60897 snd_pcm_oss_sync1 fndecl 2 60897 NULL nohasharray
173900 +enable_so_orig_start_extent_map_60897 orig_start extent_map 0 60897 &enable_so_snd_pcm_oss_sync1_fndecl_60897 nohasharray
173901 +enable_so_sn9c2028_short_command_fndecl_60897 sn9c2028_short_command fndecl 0 60897 &enable_so_orig_start_extent_map_60897
173902 +enable_so_btmrvl_send_sync_cmd_fndecl_60899 btmrvl_send_sync_cmd fndecl 4 60899 NULL
173903 +enable_so_bNrChannels_uac_input_terminal_descriptor_60901 bNrChannels uac_input_terminal_descriptor 0 60901 NULL
173904 +enable_so_xdr_shrink_bufhead_fndecl_60908 xdr_shrink_bufhead fndecl 2 60908 NULL
173905 +enable_so_gfs2_fiemap_fndecl_60913 gfs2_fiemap fndecl 4 60913 NULL
173906 +enable_so_mlxsw_cmd_mbox_query_aq_cap_max_num_sdqs_get_fndecl_60914 mlxsw_cmd_mbox_query_aq_cap_max_num_sdqs_get fndecl 0 60914 NULL
173907 +enable_so_ctrl_set_cropw_fndecl_60918 ctrl_set_cropw fndecl 3 60918 NULL
173908 +enable_so_blf_blkno_xfs_buf_log_format_60925 blf_blkno xfs_buf_log_format 0 60925 NULL
173909 +enable_so_tool_peer_mask_write_fndecl_60928 tool_peer_mask_write fndecl 3 60928 NULL
173910 +enable_so_tclass_flowlabel_mlx4_qp_path_60935 tclass_flowlabel mlx4_qp_path 0 60935 NULL
173911 +enable_so_read_ltv_hermes_ops_60939 read_ltv hermes_ops 0 60939 NULL
173912 +enable_so_x509_process_extension_fndecl_60941 x509_process_extension fndecl 5 60941 NULL
173913 +enable_so_msix_vector_count_MPT3SAS_ADAPTER_60944 msix_vector_count MPT3SAS_ADAPTER 0 60944 NULL
173914 +enable_so_low_ino_proc_dir_entry_60945 low_ino proc_dir_entry 0 60945 NULL
173915 +enable_so_segments_adv7511_state_edid_60947 segments adv7511_state_edid 0 60947 NULL
173916 +enable_so_ipv6_recv_rxpmtu_fndecl_60949 ipv6_recv_rxpmtu fndecl 3 60949 NULL
173917 +enable_so_efi_memmap_hi_efi_info_60951 efi_memmap_hi efi_info 0 60951 NULL
173918 +enable_so_audit_make_reply_fndecl_60952 audit_make_reply fndecl 7 60952 NULL
173919 +enable_so_ocfs2_dx_dir_new_cluster_fndecl_60953 ocfs2_dx_dir_new_cluster fndecl 3 60953 NULL
173920 +enable_so_s_partition_root_udf_part_map_60954 s_partition_root udf_part_map 0 60954 NULL
173921 +enable_so_get_rdac_req_fndecl_60969 get_rdac_req fndecl 3 60969 NULL
173922 +enable_so_tx_remainder_cdc_ncm_ctx_60973 tx_remainder cdc_ncm_ctx 0 60973 NULL
173923 +enable_so_xfs_extent_busy_update_extent_fndecl_60975 xfs_extent_busy_update_extent fndecl 5-4 60975 NULL
173924 +enable_so_hcs_params1_xhci_hcd_60979 hcs_params1 xhci_hcd 0 60979 NULL
173925 +enable_so_isdn_write_fndecl_60980 isdn_write fndecl 3 60980 NULL nohasharray
173926 +enable_so_count_nvif_ioctl_sclass_v0_60980 count nvif_ioctl_sclass_v0 0 60980 &enable_so_isdn_write_fndecl_60980
173927 +enable_so_first_block_migrate_struct_60989 first_block migrate_struct 0 60989 NULL nohasharray
173928 +enable_so_weight_dlm_member_60989 weight dlm_member 0 60989 &enable_so_first_block_migrate_struct_60989
173929 +enable_so_rtl8152_change_mtu_fndecl_60996 rtl8152_change_mtu fndecl 2 60996 NULL
173930 +enable_so_endp_out_zd1201_61001 endp_out zd1201 0 61001 NULL
173931 +enable_so_ocfs2_xattr_block_find_fndecl_61008 ocfs2_xattr_block_find fndecl 0 61008 NULL
173932 +enable_so_cfs_cpt_weight_fndecl_61020 cfs_cpt_weight fndecl 0 61020 NULL
173933 +enable_so_size_page_frag_61029 size page_frag 0 61029 NULL
173934 +enable_so_setup_possible_cpus_vardecl_smpboot_c_61040 setup_possible_cpus vardecl_smpboot.c 0 61040 NULL nohasharray
173935 +enable_so_ath6kl_wmi_listeninterval_cmd_fndecl_61040 ath6kl_wmi_listeninterval_cmd fndecl 2 61040 &enable_so_setup_possible_cpus_vardecl_smpboot_c_61040
173936 +enable_so_nports1_adapter_info_61044 nports1 adapter_info 0 61044 NULL
173937 +enable_so_nf_nat_ftp_fmt_cmd_fndecl_61045 nf_nat_ftp_fmt_cmd fndecl 0 61045 NULL
173938 +enable_so__dln2_transfer_fndecl_61049 _dln2_transfer fndecl 0 61049 NULL
173939 +enable_so_alloc_mr_fndecl_61052 alloc_mr fndecl 1 61052 NULL
173940 +enable_so_len_tcp_fastopen_cookie_61053 len tcp_fastopen_cookie 0 61053 NULL
173941 +enable_so_copy_to_fndecl_61058 copy_to fndecl 3 61058 NULL
173942 +enable_so_regmap_encx24j600_read_fndecl_61061 regmap_encx24j600_read fndecl 5 61061 NULL
173943 +enable_so_get_rx_packet_len_wlcore_ops_61070 get_rx_packet_len wlcore_ops 0 61070 NULL
173944 +enable_so_untag_qdepth_blogic_adapter_61071 untag_qdepth blogic_adapter 0 61071 NULL
173945 +enable_so_dccph_seq_dccp_hdr_61073 dccph_seq dccp_hdr 0 61073 NULL
173946 +enable_so_blk_end_request_cur_fndecl_61075 blk_end_request_cur fndecl 2 61075 NULL
173947 +enable_so_s_root_block_omfs_super_block_61078 s_root_block omfs_super_block 0 61078 NULL
173948 +enable_so_tavor_rate_to_ib_fndecl_61079 tavor_rate_to_ib fndecl 0 61079 NULL
173949 +enable_so_reply_len_fc_bsg_job_61088 reply_len fc_bsg_job 0 61088 NULL
173950 +enable_so_left_v4l2_rect_61093 left v4l2_rect 0 61093 NULL
173951 +enable_so_rtl2832_regmap_gather_write_fndecl_61096 rtl2832_regmap_gather_write fndecl 5 61096 NULL
173952 +enable_so_snd_hdac_exec_verb_fndecl_61100 snd_hdac_exec_verb fndecl 0 61100 NULL
173953 +enable_so_current_write_offset_scif_rb_61107 current_write_offset scif_rb 0 61107 NULL
173954 +enable_so_bv_offset_bio_vec_61109 bv_offset bio_vec 0 61109 NULL
173955 +enable_so_f2fs_fname_crypto_alloc_buffer_fndecl_61116 f2fs_fname_crypto_alloc_buffer fndecl 2 61116 NULL
173956 +enable_so_tcp_adjust_fackets_out_fndecl_61118 tcp_adjust_fackets_out fndecl 3 61118 NULL
173957 +enable_so_nilfs_bmap_do_delete_fndecl_61120 nilfs_bmap_do_delete fndecl 0 61120 NULL
173958 +enable_so_blocknr_nilfs_write_info_61124 blocknr nilfs_write_info 0 61124 NULL
173959 +enable_so_rx_hdr_len_i40e_ring_61127 rx_hdr_len i40e_ring 0 61127 NULL
173960 +enable_so_insert_node_fndecl_61132 insert_node fndecl 3-4 61132 NULL
173961 +enable_so_atr_len_retry_cm4000_dev_61135 atr_len_retry cm4000_dev 0 61135 NULL
173962 +enable_so_ore_calc_stripe_info_fndecl_61140 ore_calc_stripe_info fndecl 3 61140 NULL
173963 +enable_so_display_byte_stride_osd_info_61141 display_byte_stride osd_info 0 61141 NULL
173964 +enable_so___access_remote_vm_fndecl_61148 __access_remote_vm fndecl 5-0-3 61148 NULL
173965 +enable_so_get_free_entries_fndecl_61149 get_free_entries fndecl 1 61149 NULL nohasharray
173966 +enable_so_fnic_reset_stats_read_fndecl_61149 fnic_reset_stats_read fndecl 3 61149 &enable_so_get_free_entries_fndecl_61149
173967 +enable_so_sierra_setup_urb_fndecl_61150 sierra_setup_urb fndecl 5-3-2 61150 NULL
173968 +enable_so_slhc_toss_fndecl_61153 slhc_toss fndecl 0 61153 NULL
173969 +enable_so_ctl_mt7601u_rxwi_61155 ctl mt7601u_rxwi 0 61155 NULL
173970 +enable_so___vmalloc_node_range_fndecl_61157 __vmalloc_node_range fndecl 1-3-2 61157 NULL nohasharray
173971 +enable_so_max_rsp_queues_qla_hw_data_61157 max_rsp_queues qla_hw_data 0 61157 &enable_so___vmalloc_node_range_fndecl_61157
173972 +enable_so_addr_kcore_list_61158 addr kcore_list 0 61158 NULL
173973 +enable_so_ceph_locks_to_pagelist_fndecl_61162 ceph_locks_to_pagelist fndecl 3-4 61162 NULL
173974 +enable_so_sel_commit_bools_write_fndecl_61166 sel_commit_bools_write fndecl 3 61166 NULL
173975 +enable_so_ftdi_elan_edset_empty_fndecl_61170 ftdi_elan_edset_empty fndecl 0 61170 NULL nohasharray
173976 +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
173977 +enable_so_in_length_nd_cmd_vendor_hdr_61172 in_length nd_cmd_vendor_hdr 0 61172 NULL
173978 +enable_so_phys_memory_base__synclinkmp_info_61174 phys_memory_base _synclinkmp_info 0 61174 NULL
173979 +enable_so_pvr2_buffer_set_buffer_fndecl_61176 pvr2_buffer_set_buffer fndecl 3 61176 NULL
173980 +enable_so_register_sound_mixer_fndecl_61179 register_sound_mixer fndecl 2 61179 NULL
173981 +enable_so___ocfs2_move_extent_fndecl_61183 __ocfs2_move_extent fndecl 4-5-6-3 61183 NULL nohasharray
173982 +enable_so_dma_tx_errors_read_fndecl_61183 dma_tx_errors_read fndecl 3 61183 &enable_so___ocfs2_move_extent_fndecl_61183
173983 +enable_so_fbcon_softback_size_vardecl_fbcon_c_61184 fbcon_softback_size vardecl_fbcon.c 0 61184 NULL
173984 +enable_so_pos_dir_context_61195 pos dir_context 0 61195 NULL nohasharray
173985 +enable_so_rdma_set_ib_paths_fndecl_61195 rdma_set_ib_paths fndecl 3 61195 &enable_so_pos_dir_context_61195
173986 +enable_so_port_id_ssp_device_61196 port_id ssp_device 0 61196 NULL nohasharray
173987 +enable_so_spk_ys_vardecl_61196 spk_ys vardecl 0 61196 &enable_so_port_id_ssp_device_61196
173988 +enable_so_add_qgroup_rb_fndecl_61197 add_qgroup_rb fndecl 2 61197 NULL
173989 +enable_so_num_qps_mthca_limits_61203 num_qps mthca_limits 0 61203 NULL
173990 +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
173991 +enable_so_ts_nr_packets_vardecl_saa7134_ts_c_61205 ts_nr_packets vardecl_saa7134-ts.c 0 61205 NULL
173992 +enable_so_of_get_flat_dt_prop_fndecl_61207 of_get_flat_dt_prop fndecl 1 61207 NULL
173993 +enable_so_audit_log_n_hex_fndecl_61218 audit_log_n_hex fndecl 3 61218 NULL
173994 +enable_so_rx_buffersize_b43_dmaring_61223 rx_buffersize b43_dmaring 0 61223 NULL nohasharray
173995 +enable_so_rmtblkcnt_xfs_da_args_61223 rmtblkcnt xfs_da_args 0 61223 &enable_so_rx_buffersize_b43_dmaring_61223 nohasharray
173996 +enable_so_register_chrdev_region_fndecl_61223 register_chrdev_region fndecl 2-1 61223 &enable_so_rmtblkcnt_xfs_da_args_61223
173997 +enable_so_rx_tail_len_pn533_frame_ops_61226 rx_tail_len pn533_frame_ops 0 61226 NULL
173998 +enable_so_resource_clip_fndecl_61231 resource_clip fndecl 2-3 61231 NULL
173999 +enable_so_isert_rx_opcode_fndecl_61234 isert_rx_opcode fndecl 4-6 61234 NULL
174000 +enable_so_size_ceph_mds_reply_inode_61235 size ceph_mds_reply_inode 0 61235 NULL
174001 +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
174002 +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
174003 +enable_so_tipc_add_tlv_fndecl_61239 tipc_add_tlv fndecl 4 61239 NULL
174004 +enable_so_hidraw_get_report_fndecl_61242 hidraw_get_report fndecl 3 61242 NULL
174005 +enable_so_rcar_dmac_prep_dma_cyclic_fndecl_61249 rcar_dmac_prep_dma_cyclic fndecl 4-3 61249 NULL
174006 +enable_so_ext4_reserve_inode_write_fndecl_61253 ext4_reserve_inode_write fndecl 0 61253 NULL nohasharray
174007 +enable_so_CombinedStatusBufferLength_DAC960_Controller_61253 CombinedStatusBufferLength DAC960_Controller 0 61253 &enable_so_ext4_reserve_inode_write_fndecl_61253
174008 +enable_so_primary_traffic_class_cm_req_msg_61255 primary_traffic_class cm_req_msg 0 61255 NULL
174009 +enable_so_b_blocknr_buffer_head_61260 b_blocknr buffer_head 0 61260 NULL
174010 +enable_so_key_create_or_update_fndecl_61266 key_create_or_update fndecl 5 61266 NULL
174011 +enable_so_split_boundary_dm_origin_61269 split_boundary dm_origin 0 61269 NULL
174012 +enable_so___filemap_fdatawait_range_fndecl_61278 __filemap_fdatawait_range fndecl 0 61278 NULL
174013 +enable_so_len_ubifs_zbranch_61279 len ubifs_zbranch 0 61279 NULL
174014 +enable_so_h_minimode_61280 h minimode 0 61280 NULL
174015 +enable_so_i_file_acl_ext4_inode_info_61282 i_file_acl ext4_inode_info 0 61282 NULL
174016 +enable_so_smk_write_ambient_fndecl_61288 smk_write_ambient fndecl 3 61288 NULL
174017 +enable_so_dataSgeOffset_mpt_ioctl_command_61289 dataSgeOffset mpt_ioctl_command 0 61289 NULL
174018 +enable_so_jpg_nbufs_vardecl_61299 jpg_nbufs vardecl 0 61299 NULL nohasharray
174019 +enable_so_it87_device_add_fndecl_61299 it87_device_add fndecl 1 61299 &enable_so_jpg_nbufs_vardecl_61299
174020 +enable_so_u_size_p_sizes_61300 u_size p_sizes 0 61300 NULL nohasharray
174021 +enable_so_compat_mpctl_ioctl_fndecl_61300 compat_mpctl_ioctl fndecl 2 61300 &enable_so_u_size_p_sizes_61300
174022 +enable_so_efs_nfs_get_inode_fndecl_61302 efs_nfs_get_inode fndecl 2 61302 NULL
174023 +enable_so_fat_length_fat_floppy_defaults_61308 fat_length fat_floppy_defaults 0 61308 NULL
174024 +enable_so_ufx_i2c_configure_fndecl_61311 ufx_i2c_configure fndecl 0 61311 NULL
174025 +enable_so_wlcore_smart_config_decode_event_fndecl_61313 wlcore_smart_config_decode_event fndecl 2-4 61313 NULL
174026 +enable_so_dvb_ca_en50221_init_fndecl_61317 dvb_ca_en50221_init fndecl 4 61317 NULL
174027 +enable_so_ufs_iget_fndecl_61332 ufs_iget fndecl 2 61332 NULL
174028 +enable_so_rtl2830_regmap_write_fndecl_61335 rtl2830_regmap_write fndecl 3 61335 NULL
174029 +enable_so_wbuf_len_jffs2_sb_info_61340 wbuf_len jffs2_sb_info 0 61340 NULL
174030 +enable_so_iscsit_put_login_tx_fndecl_61345 iscsit_put_login_tx fndecl 3 61345 NULL
174031 +enable_so_v4l2_ctrl_new_std_fndecl_61351 v4l2_ctrl_new_std fndecl 5-4-7 61351 NULL nohasharray
174032 +enable_so_rw_copy_check_uvector_fndecl_61351 rw_copy_check_uvector fndecl 0-3 61351 &enable_so_v4l2_ctrl_new_std_fndecl_61351
174033 +enable_so_fdt_get_property_namelen_fndecl_61353 fdt_get_property_namelen fndecl 2 61353 NULL nohasharray
174034 +enable_so_size_sge_fl_61353 size sge_fl 0 61353 &enable_so_fdt_get_property_namelen_fndecl_61353
174035 +enable_so_conn_num_hci_conn_list_req_61354 conn_num hci_conn_list_req 0 61354 NULL
174036 +enable_so_hfs_get_block_fndecl_61360 hfs_get_block fndecl 2 61360 NULL
174037 +enable_so_snd_cs46xx_io_read_fndecl_61365 snd_cs46xx_io_read fndecl 5 61365 NULL
174038 +enable_so_handle_response_icmp_fndecl_61366 handle_response_icmp fndecl 7 61366 NULL
174039 +enable_so_tx_headroom_libipw_device_61370 tx_headroom libipw_device 0 61370 NULL
174040 +enable_so_sync_dirty_buffer_fndecl_61371 sync_dirty_buffer fndecl 0 61371 NULL
174041 +enable_so_data_dma_usb_onetouch_61372 data_dma usb_onetouch 0 61372 NULL
174042 +enable_so_devs_max_btrfs_raid_attr_61376 devs_max btrfs_raid_attr 0 61376 NULL
174043 +enable_so_bfa_cb_ioim_done_fndecl_61381 bfa_cb_ioim_done fndecl 7 61381 NULL
174044 +enable_so_ip6gre_tunnel_change_mtu_fndecl_61385 ip6gre_tunnel_change_mtu fndecl 2 61385 NULL
174045 +enable_so_sections_per_block_vardecl_memory_c_61386 sections_per_block vardecl_memory.c 0 61386 NULL nohasharray
174046 +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
174047 +enable_so_xfs_dir3_data_read_fndecl_61387 xfs_dir3_data_read fndecl 3 61387 NULL
174048 +enable_so_npages_nfs_page_array_61390 npages nfs_page_array 0 61390 NULL nohasharray
174049 +enable_so_num_msix_vectors_i40evf_adapter_61390 num_msix_vectors i40evf_adapter 0 61390 &enable_so_npages_nfs_page_array_61390
174050 +enable_so_byte_len_at24_platform_data_61393 byte_len at24_platform_data 0 61393 NULL
174051 +enable_so_fpg_sz_nvm_id_group_61394 fpg_sz nvm_id_group 0 61394 NULL
174052 +enable_so___pci_register_driver_fndecl_61400 __pci_register_driver fndecl 0 61400 NULL
174053 +enable_so_parent_affs_tail_61402 parent affs_tail 0 61402 NULL
174054 +enable_so_alloc_ts_config_fndecl_61404 alloc_ts_config fndecl 1 61404 NULL
174055 +enable_so_h_virtio_gpu_box_61407 h virtio_gpu_box 0 61407 NULL
174056 +enable_so_buf_sz_vardecl_stmmac_main_c_61408 buf_sz vardecl_stmmac_main.c 0 61408 NULL
174057 +enable_so_pcpu_alloc_alloc_info_fndecl_61414 pcpu_alloc_alloc_info fndecl 1-2 61414 NULL nohasharray
174058 +enable_so_keylen_tcp_md5sig_key_61414 keylen tcp_md5sig_key 0 61414 &enable_so_pcpu_alloc_alloc_info_fndecl_61414
174059 +enable_so_size_aper_size_info_lvl2_61417 size aper_size_info_lvl2 0 61417 NULL nohasharray
174060 +enable_so_get_pas_size_fndecl_61417 get_pas_size fndecl 0 61417 &enable_so_size_aper_size_info_lvl2_61417
174061 +enable_so_nservers_mc5_params_61428 nservers mc5_params 0 61428 NULL nohasharray
174062 +enable_so_tst_size_idt77252_dev_61428 tst_size idt77252_dev 0 61428 &enable_so_nservers_mc5_params_61428
174063 +enable_so_raw_setsockopt_fndecl_61435 raw_setsockopt fndecl 5 61435 NULL nohasharray
174064 +enable_so_pkey_index_mlx5_qp_path_61435 pkey_index mlx5_qp_path 0 61435 &enable_so_raw_setsockopt_fndecl_61435 nohasharray
174065 +enable_so_length_drm_mode_create_blob_61435 length drm_mode_create_blob 0 61435 &enable_so_pkey_index_mlx5_qp_path_61435 nohasharray
174066 +enable_so_rows_omap4_keypad_61435 rows omap4_keypad 0 61435 &enable_so_length_drm_mode_create_blob_61435
174067 +enable_so_nd_opt_len_nd_opt_hdr_61437 nd_opt_len nd_opt_hdr 0 61437 NULL
174068 +enable_so_lbs_rdbbp_read_fndecl_61438 lbs_rdbbp_read fndecl 3 61438 NULL
174069 +enable_so_group_size_efs_sb_info_61441 group_size efs_sb_info 0 61441 NULL
174070 +enable_so_bulk_out_size_usb_serial_driver_61450 bulk_out_size usb_serial_driver 0 61450 NULL
174071 +enable_so_total_size_iscsi_segment_61454 total_size iscsi_segment 0 61454 NULL
174072 +enable_so_ocfs2_zero_range_for_truncate_fndecl_61461 ocfs2_zero_range_for_truncate fndecl 3-4 61461 NULL nohasharray
174073 +enable_so_next_interface_id_usb_configuration_61461 next_interface_id usb_configuration 0 61461 &enable_so_ocfs2_zero_range_for_truncate_fndecl_61461
174074 +enable_so_ath6kl_keepalive_read_fndecl_61468 ath6kl_keepalive_read fndecl 3 61468 NULL
174075 +enable_so_irlan_client_ctrl_connect_confirm_fndecl_61475 irlan_client_ctrl_connect_confirm fndecl 5 61475 NULL
174076 +enable_so_ubi_eba_write_leb_st_fndecl_61476 ubi_eba_write_leb_st fndecl 5 61476 NULL
174077 +enable_so_buf_kern_offset_ebt_entries_buf_state_61478 buf_kern_offset ebt_entries_buf_state 0 61478 NULL
174078 +enable_so_dreq_iss_dccp_request_sock_61480 dreq_iss dccp_request_sock 0 61480 NULL
174079 +enable_so_radix_tree_maybe_preload_fndecl_61481 radix_tree_maybe_preload fndecl 0 61481 NULL
174080 +enable_so_new_chunk_mdp_superblock_s_61482 new_chunk mdp_superblock_s 0 61482 NULL
174081 +enable_so_nmatches_tcf_ematch_tree_hdr_61486 nmatches tcf_ematch_tree_hdr 0 61486 NULL
174082 +enable_so_nlen_ubifs_dent_node_61488 nlen ubifs_dent_node 0 61488 NULL
174083 +enable_so_adau17x1_set_dai_pll_fndecl_61491 adau17x1_set_dai_pll fndecl 4-5 61491 NULL nohasharray
174084 +enable_so_generic_file_read_iter_fndecl_61491 generic_file_read_iter fndecl 0 61491 &enable_so_adau17x1_set_dai_pll_fndecl_61491 nohasharray
174085 +enable_so_dispatch_proc_write_fndecl_61491 dispatch_proc_write fndecl 3 61491 &enable_so_generic_file_read_iter_fndecl_61491
174086 +enable_so_rs_init_fndecl_61492 rs_init fndecl 6-1 61492 NULL
174087 +enable_so_f_adc_hackrf_dev_61493 f_adc hackrf_dev 0 61493 NULL
174088 +enable_so_ccp_init_data_fndecl_61495 ccp_init_data fndecl 5-4 61495 NULL nohasharray
174089 +enable_so_writing_st_buffer_61495 writing st_buffer 0 61495 &enable_so_ccp_init_data_fndecl_61495
174090 +enable_so_vb_size_drm_savage_cmdbuf_61501 vb_size drm_savage_cmdbuf 0 61501 NULL
174091 +enable_so_mgag200_gem_create_fndecl_61507 mgag200_gem_create fndecl 2 61507 NULL nohasharray
174092 +enable_so_width_pwc_device_61507 width pwc_device 0 61507 &enable_so_mgag200_gem_create_fndecl_61507
174093 +enable_so_count_sgentry_61508 count sgentry 0 61508 NULL
174094 +enable_so_depth_cx8800_fmt_61510 depth cx8800_fmt 0 61510 NULL
174095 +enable_so_maxcontacts_wtp_data_61511 maxcontacts wtp_data 0 61511 NULL
174096 +enable_so_total_sect_fat_boot_sector_61513 total_sect fat_boot_sector 0 61513 NULL
174097 +enable_so_nfs_fscache_get_super_cookie_fndecl_61520 nfs_fscache_get_super_cookie fndecl 3 61520 NULL
174098 +enable_so_sys_write_fndecl_61526 sys_write fndecl 3-0 61526 NULL
174099 +enable_so_scif_register_temp_fndecl_61529 scif_register_temp fndecl 3-2 61529 NULL
174100 +enable_so_irq_base_regmap_irq_chip_data_61532 irq_base regmap_irq_chip_data 0 61532 NULL
174101 +enable_so_strlcpy_fndecl_61539 strlcpy fndecl 0 61539 NULL
174102 +enable_so_tag_be_async_event_grp5_pvid_state_61541 tag be_async_event_grp5_pvid_state 0 61541 NULL
174103 +enable_so_drm_buffer_alloc_fndecl_61542 drm_buffer_alloc fndecl 2 61542 NULL
174104 +enable_so_osst_do_scsi_fndecl_61545 osst_do_scsi fndecl 4 61545 NULL
174105 +enable_so_iterate_dir_item_fndecl_61553 iterate_dir_item fndecl 0 61553 NULL
174106 +enable_so_datalen_iscsi_tcp_recv_61556 datalen iscsi_tcp_recv 0 61556 NULL
174107 +enable_so_xdr_init_decode_pages_fndecl_61557 xdr_init_decode_pages fndecl 4 61557 NULL nohasharray
174108 +enable_so_regmap_encx24j600_sfr_update_fndecl_61557 regmap_encx24j600_sfr_update fndecl 4 61557 &enable_so_xdr_init_decode_pages_fndecl_61557
174109 +enable_so_get_gart_ranges_callback_fndecl_61560 get_gart_ranges_callback fndecl 1-2 61560 NULL
174110 +enable_so_aoedev_flush_fndecl_61565 aoedev_flush fndecl 2 61565 NULL
174111 +enable_so_ei_block_ext4_extent_idx_61567 ei_block ext4_extent_idx 0 61567 NULL nohasharray
174112 +enable_so_mtip_hw_read_flags_fndecl_61567 mtip_hw_read_flags fndecl 3 61567 &enable_so_ei_block_ext4_extent_idx_61567
174113 +enable_so__fdt_splice_struct_fndecl_61570 _fdt_splice_struct fndecl 3-4 61570 NULL
174114 +enable_so_smiapp_read_fndecl_61581 smiapp_read fndecl 2 61581 NULL
174115 +enable_so_pos_in_item_tree_balance_61583 pos_in_item tree_balance 0 61583 NULL
174116 +enable_so_usb_internal_control_msg_fndecl_61589 usb_internal_control_msg fndecl 5-2 61589 NULL
174117 +enable_so_blkdev_issue_write_same_fndecl_61596 blkdev_issue_write_same fndecl 2-3 61596 NULL
174118 +enable_so_hdisplay_moderec_61597 hdisplay moderec 0 61597 NULL
174119 +enable_so___hci_cmd_sync_fndecl_61598 __hci_cmd_sync fndecl 3 61598 NULL
174120 +enable_so_ext4_max_size_fndecl_61600 ext4_max_size fndecl 0-1 61600 NULL
174121 +enable_so_head_align_brcmf_sdio_61610 head_align brcmf_sdio 0 61610 NULL nohasharray
174122 +enable_so_filternum_dvb_demux_61610 filternum dvb_demux 0 61610 &enable_so_head_align_brcmf_sdio_61610
174123 +enable_so_mic_virtio_copy_to_user_fndecl_61611 mic_virtio_copy_to_user fndecl 3-4 61611 NULL nohasharray
174124 +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
174125 +enable_so_btrfs_chunk_item_size_fndecl_61613 btrfs_chunk_item_size fndecl 0-1 61613 NULL
174126 +enable_so_write_file_debug_fndecl_61615 write_file_debug fndecl 3 61615 NULL
174127 +enable_so_eth_change_mtu_fndecl_61617 eth_change_mtu fndecl 2 61617 NULL
174128 +enable_so_af_alg_make_sg_fndecl_61624 af_alg_make_sg fndecl 0-3 61624 NULL
174129 +enable_so_efx_tx_max_skb_descs_fndecl_61628 efx_tx_max_skb_descs fndecl 0 61628 NULL
174130 +enable_so_ext4_xattr_shift_entries_fndecl_61629 ext4_xattr_shift_entries fndecl 2 61629 NULL
174131 +enable_so____alloc_bootmem_node_nopanic_fndecl_61630 ___alloc_bootmem_node_nopanic fndecl 3-2-4-5 61630 NULL
174132 +enable_so_nr_slots_b43_dmaring_61631 nr_slots b43_dmaring 0 61631 NULL
174133 +enable_so_bio_advance_fndecl_61635 bio_advance fndecl 2 61635 NULL
174134 +enable_so_btrfsic_process_written_block_fndecl_61638 btrfsic_process_written_block fndecl 2 61638 NULL
174135 +enable_so_security_getprocattr_fndecl_61642 security_getprocattr fndecl 0 61642 NULL
174136 +enable_so_spidev_write_fndecl_61645 spidev_write fndecl 3 61645 NULL
174137 +enable_so_vc_bottom_vc_data_61647 vc_bottom vc_data 0 61647 NULL nohasharray
174138 +enable_so_sci_req_tx_bytes_fndecl_61647 sci_req_tx_bytes fndecl 0 61647 &enable_so_vc_bottom_vc_data_61647 nohasharray
174139 +enable_so_index_count_applesmc_registers_61647 index_count applesmc_registers 0 61647 &enable_so_sci_req_tx_bytes_fndecl_61647
174140 +enable_so_f2fs_kvmalloc_fndecl_61650 f2fs_kvmalloc fndecl 1 61650 NULL
174141 +enable_so_height_cx23885_dev_61651 height cx23885_dev 0 61651 NULL
174142 +enable_so_mem_start_pci_params_61652 mem_start pci_params 0 61652 NULL
174143 +enable_so_security_socket_sendmsg_fndecl_61654 security_socket_sendmsg fndecl 0 61654 NULL
174144 +enable_so_anode_lookup_fndecl_61656 anode_lookup fndecl 0-3-2 61656 NULL
174145 +enable_so_sdio_align_size_fndecl_61658 sdio_align_size fndecl 0-2 61658 NULL
174146 +enable_so_min_io_size_ubi_device_info_61673 min_io_size ubi_device_info 0 61673 NULL
174147 +enable_so_sys_msgsnd_fndecl_61674 sys_msgsnd fndecl 3 61674 NULL nohasharray
174148 +enable_so_comm_write_fndecl_61674 comm_write fndecl 3 61674 &enable_so_sys_msgsnd_fndecl_61674
174149 +enable_so_len_l2cap_cmd_hdr_61676 len l2cap_cmd_hdr 0 61676 NULL
174150 +enable_so_sd_fsb2bb_shift_gfs2_sbd_61677 sd_fsb2bb_shift gfs2_sbd 0 61677 NULL
174151 +enable_so_page_size_ms_boot_attr_info_61681 page_size ms_boot_attr_info 0 61681 NULL
174152 +enable_so_sv_max_mesg_svc_serv_61683 sv_max_mesg svc_serv 0 61683 NULL
174153 +enable_so_SyS_io_getevents_fndecl_61684 SyS_io_getevents fndecl 3 61684 NULL
174154 +enable_so_ip_clusters_ocfs2_inode_info_61689 ip_clusters ocfs2_inode_info 0 61689 NULL
174155 +enable_so_cma_set_req_event_data_fndecl_61691 cma_set_req_event_data fndecl 4 61691 NULL
174156 +enable_so_batadv_transtable_search_fndecl_61693 batadv_transtable_search fndecl 4 61693 NULL
174157 +enable_so_ieee80211_rx_mgmt_assoc_resp_fndecl_61694 ieee80211_rx_mgmt_assoc_resp fndecl 3 61694 NULL
174158 +enable_so_qib_ud_rcv_fndecl_61701 qib_ud_rcv fndecl 5 61701 NULL
174159 +enable_so_segnum_nilfs_segment_entry_61704 segnum nilfs_segment_entry 0 61704 NULL
174160 +enable_so_find_key_fndecl_61711 find_key fndecl 2 61711 NULL
174161 +enable_so_paclen_ax25_cb_61712 paclen ax25_cb 0 61712 NULL
174162 +enable_so_xtypecpy_gru_control_block_extended_61714 xtypecpy gru_control_block_extended 0 61714 NULL
174163 +enable_so_bfad_iocmd_cfg_fcpim_fndecl_61715 bfad_iocmd_cfg_fcpim fndecl 0 61715 NULL
174164 +enable_so_BytesPerSector_ms_lib_ctrl_61717 BytesPerSector ms_lib_ctrl 0 61717 NULL
174165 +enable_so_do_lfb_size_fndecl_61720 do_lfb_size fndecl 0 61720 NULL
174166 +enable_so_dm_bufio_new_fndecl_61727 dm_bufio_new fndecl 2 61727 NULL
174167 +enable_so_btrfs_prev_leaf_fndecl_61728 btrfs_prev_leaf fndecl 0 61728 NULL
174168 +enable_so_n_patterns_cfg80211_wowlan_61737 n_patterns cfg80211_wowlan 0 61737 NULL
174169 +enable_so_pci_msix_vec_count_fndecl_61742 pci_msix_vec_count fndecl 0 61742 NULL
174170 +enable_so_nvkm_disp_ctor_fndecl_61743 nvkm_disp_ctor fndecl 4 61743 NULL
174171 +enable_so_count_nfs_pgio_args_61745 count nfs_pgio_args 0 61745 NULL nohasharray
174172 +enable_so_wmi_call_fndecl_61745 wmi_call fndecl 4 61745 &enable_so_count_nfs_pgio_args_61745
174173 +enable_so_h_len_xlog_rec_header_61748 h_len xlog_rec_header 0 61748 NULL nohasharray
174174 +enable_so_drbd_recv_short_fndecl_61748 drbd_recv_short fndecl 3-0 61748 &enable_so_h_len_xlog_rec_header_61748 nohasharray
174175 +enable_so_smt_add_frame_len_fndecl_61748 smt_add_frame_len fndecl 2 61748 &enable_so_drbd_recv_short_fndecl_61748
174176 +enable_so_mon_buff_area_alloc_fndecl_61752 mon_buff_area_alloc fndecl 2 61752 NULL
174177 +enable_so_SYSC_add_key_fndecl_61756 SYSC_add_key fndecl 4 61756 NULL
174178 +enable_so_sl_count_ip_sf_socklist_61758 sl_count ip_sf_socklist 0 61758 NULL
174179 +enable_so_rsp_residual_count_sts_entry_24xx_61762 rsp_residual_count sts_entry_24xx 0 61762 NULL
174180 +enable_so_len_s_skfp_ioctl_61764 len s_skfp_ioctl 0 61764 NULL
174181 +enable_so_dvb_net_sec_callback_fndecl_61767 dvb_net_sec_callback fndecl 2 61767 NULL
174182 +enable_so_height_zr364xx_camera_61781 height zr364xx_camera 0 61781 NULL nohasharray
174183 +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
174184 +enable_so_pclk_max_ov6650_61784 pclk_max ov6650 0 61784 NULL
174185 +enable_so_xdr_enter_page_fndecl_61791 xdr_enter_page fndecl 2 61791 NULL
174186 +enable_so_num_gpios_htcpld_chip_platform_data_61792 num_gpios htcpld_chip_platform_data 0 61792 NULL
174187 +enable_so_address_length_pcc_memory_resource_61793 address_length pcc_memory_resource 0 61793 NULL
174188 +enable_so_num_arfs_vnic_enet_config_61794 num_arfs vnic_enet_config 0 61794 NULL
174189 +enable_so_size_snd_cs46xx_region_61796 size snd_cs46xx_region 0 61796 NULL
174190 +enable_so_vxfs_bmap_typed_fndecl_61801 vxfs_bmap_typed fndecl 0-2 61801 NULL
174191 +enable_so_imm_count_iscsi_task_61804 imm_count iscsi_task 0 61804 NULL
174192 +enable_so_fat_alloc_clusters_fndecl_61813 fat_alloc_clusters fndecl 0 61813 NULL nohasharray
174193 +enable_so_end_map_range_61813 end map_range 0 61813 &enable_so_fat_alloc_clusters_fndecl_61813
174194 +enable_so_len_nfs_createargs_61814 len nfs_createargs 0 61814 NULL
174195 +enable_so_m_rsumsize_xfs_mount_61815 m_rsumsize xfs_mount 0 61815 NULL
174196 +enable_so_ttm_get_pages_fndecl_61821 ttm_get_pages fndecl 2 61821 NULL
174197 +enable_so_bnx2x_init_wr_zp_fndecl_61822 bnx2x_init_wr_zp fndecl 3 61822 NULL
174198 +enable_so_mmc_switch_status_error_fndecl_61826 mmc_switch_status_error fndecl 0 61826 NULL
174199 +enable_so_SYSC_set_mempolicy_fndecl_61827 SYSC_set_mempolicy fndecl 3 61827 NULL
174200 +enable_so_txq_req_tg3_61834 txq_req tg3 0 61834 NULL nohasharray
174201 +enable_so_xfs_bulkstat_one_fndecl_61834 xfs_bulkstat_one fndecl 2 61834 &enable_so_txq_req_tg3_61834
174202 +enable_so_num_virt_counters_op_x86_model_spec_61835 num_virt_counters op_x86_model_spec 0 61835 NULL
174203 +enable_so_size_rocker_dma_ring_info_61839 size rocker_dma_ring_info 0 61839 NULL
174204 +enable_so_start_segno_free_segmap_info_61843 start_segno free_segmap_info 0 61843 NULL
174205 +enable_so_dib9000_read16_attr_fndecl_61850 dib9000_read16_attr fndecl 4 61850 NULL
174206 +enable_so_ocfs2_xattr_bucket_find_fndecl_61853 ocfs2_xattr_bucket_find fndecl 0-5 61853 NULL
174207 +enable_so_dma_len_rx_fst_card_info_61862 dma_len_rx fst_card_info 0 61862 NULL
174208 +enable_so_num_mpts_mlx4_caps_61866 num_mpts mlx4_caps 0 61866 NULL
174209 +enable_so_f_read_portcntrs_qib_devdata_61868 f_read_portcntrs qib_devdata 0 61868 NULL
174210 +enable_so___section_nr_fndecl_61869 __section_nr fndecl 0 61869 NULL
174211 +enable_so_nfs4_file_fsync_fndecl_61872 nfs4_file_fsync fndecl 2-3 61872 NULL
174212 +enable_so_handle_eviocgbit_fndecl_61874 handle_eviocgbit fndecl 3 61874 NULL
174213 +enable_so_wm5100_set_fll_fndecl_61876 wm5100_set_fll fndecl 4-5 61876 NULL nohasharray
174214 +enable_so_wil_vring_init_tx_fndecl_61876 wil_vring_init_tx fndecl 3 61876 &enable_so_wm5100_set_fll_fndecl_61876
174215 +enable_so_bq_textcnt_max98095_priv_61877 bq_textcnt max98095_priv 0 61877 NULL
174216 +enable_so_virtinput_cfg_select_fndecl_61880 virtinput_cfg_select fndecl 0 61880 NULL
174217 +enable_so_ehci_urb_done_fndecl_61889 ehci_urb_done fndecl 3 61889 NULL
174218 +enable_so_vp_find_vqs_fndecl_61892 vp_find_vqs fndecl 2 61892 NULL
174219 +enable_so__fdt_packblocks_fndecl_61894 _fdt_packblocks fndecl 4-3 61894 NULL
174220 +enable_so_find_group_orlov_fndecl_61896 find_group_orlov fndecl 0 61896 NULL
174221 +enable_so_srp_alloc_iu_fndecl_61904 srp_alloc_iu fndecl 2 61904 NULL nohasharray
174222 +enable_so_MaxRecvDataSegmentLength_iscsi_conn_ops_61904 MaxRecvDataSegmentLength iscsi_conn_ops 0 61904 &enable_so_srp_alloc_iu_fndecl_61904
174223 +enable_so_maxframe_size_fc_rport_61909 maxframe_size fc_rport 0 61909 NULL
174224 +enable_so_rxsize_channel_data_61912 rxsize channel_data 0 61912 NULL
174225 +enable_so_cxd2820r_wr_regs_i2c_fndecl_61922 cxd2820r_wr_regs_i2c fndecl 5 61922 NULL
174226 +enable_so_raid_disks_mdp_superblock_1_61927 raid_disks mdp_superblock_1 0 61927 NULL
174227 +enable_so_pino_nlink_jffs2_inode_cache_61933 pino_nlink jffs2_inode_cache 0 61933 NULL
174228 +enable_so_net2272_ep_read_fndecl_61935 net2272_ep_read fndecl 0 61935 NULL
174229 +enable_so_alloc_size_ttm_pool_opts_61945 alloc_size ttm_pool_opts 0 61945 NULL
174230 +enable_so_rx_std_ring_mask_tg3_61948 rx_std_ring_mask tg3 0 61948 NULL
174231 +enable_so_pfid_bnx2x_61952 pfid bnx2x 0 61952 NULL
174232 +enable_so_next_ldtentry_61954 next ldtentry 0 61954 NULL
174233 +enable_so_ntrips___thermal_zone_61955 ntrips __thermal_zone 0 61955 NULL
174234 +enable_so_hsu_dma_active_desc_size_fndecl_61956 hsu_dma_active_desc_size fndecl 0 61956 NULL
174235 +enable_so_indirect_size_srp_target_port_61962 indirect_size srp_target_port 0 61962 NULL
174236 +enable_so_s_maxbytes_super_block_61963 s_maxbytes super_block 0 61963 NULL
174237 +enable_so_periods_min_snd_pcm_hardware_61965 periods_min snd_pcm_hardware 0 61965 NULL
174238 +enable_so_radeon_audio_calc_cts_fndecl_61966 radeon_audio_calc_cts fndecl 1-4 61966 NULL
174239 +enable_so_nfs_set_pgio_error_fndecl_61975 nfs_set_pgio_error fndecl 3 61975 NULL
174240 +enable_so_physical_for_dev_replace_scrub_page_61977 physical_for_dev_replace scrub_page 0 61977 NULL
174241 +enable_so_qla4xxx_alloc_work_fndecl_61982 qla4xxx_alloc_work fndecl 2 61982 NULL
174242 +enable_so_x25_pacsize_to_bytes_fndecl_61983 x25_pacsize_to_bytes fndecl 0 61983 NULL
174243 +enable_so_qib_verbs_send_dma_fndecl_61985 qib_verbs_send_dma fndecl 7-5-6-3 61985 NULL
174244 +enable_so_opts1_de_desc_61986 opts1 de_desc 0 61986 NULL nohasharray
174245 +enable_so_sub_stripes_map_lookup_61986 sub_stripes map_lookup 0 61986 &enable_so_opts1_de_desc_61986
174246 +enable_so_copydesc_user_fndecl_61988 copydesc_user fndecl 3 61988 NULL
174247 +enable_so_vblank_panel_info_61990 vblank panel_info 0 61990 NULL
174248 +enable_so_num_srq_mlx4_profile_61993 num_srq mlx4_profile 0 61993 NULL
174249 +enable_so_iscsi_login_tx_data_fndecl_61998 iscsi_login_tx_data fndecl 4 61998 NULL
174250 +enable_so_sisusb_write_fndecl_62001 sisusb_write fndecl 3 62001 NULL
174251 +enable_so_sc_reader_svcxprt_rdma_62004 sc_reader svcxprt_rdma 0 62004 NULL
174252 +enable_so___add_discard_entry_fndecl_62006 __add_discard_entry fndecl 4-5 62006 NULL
174253 +enable_so_ext4_ext_convert_to_initialized_fndecl_62009 ext4_ext_convert_to_initialized fndecl 0 62009 NULL
174254 +enable_so_length_snd_efw_transaction_62012 length snd_efw_transaction 0 62012 NULL
174255 +enable_so_memblock_setclr_flag_fndecl_62013 memblock_setclr_flag fndecl 2-1 62013 NULL
174256 +enable_so_bfad_iocmd_diag_dport_enable_fndecl_62020 bfad_iocmd_diag_dport_enable fndecl 0 62020 NULL
174257 +enable_so_size_mtd_blktrans_dev_62024 size mtd_blktrans_dev 0 62024 NULL
174258 +enable_so_nf_bridge_encap_header_len_fndecl_62025 nf_bridge_encap_header_len fndecl 0 62025 NULL
174259 +enable_so_filter_count_rx_used_efx_nic_type_62026 filter_count_rx_used efx_nic_type 0 62026 NULL
174260 +enable_so_encode_diropargs_fndecl_62031 encode_diropargs fndecl 4 62031 NULL
174261 +enable_so_num_qps_mlx4_caps_62033 num_qps mlx4_caps 0 62033 NULL
174262 +enable_so_n_rx_channels_efx_nic_62034 n_rx_channels efx_nic 0 62034 NULL
174263 +enable_so_dev_sectors_r10conf_62035 dev_sectors r10conf 0 62035 NULL
174264 +enable_so_set_advertising_fndecl_62037 set_advertising fndecl 4 62037 NULL
174265 +enable_so_tfcpad_xfrm_state_62038 tfcpad xfrm_state 0 62038 NULL
174266 +enable_so_init_rs_fndecl_62042 init_rs fndecl 5-1 62042 NULL nohasharray
174267 +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
174268 +enable_so_online_queues_nvme_dev_62043 online_queues nvme_dev 0 62043 NULL
174269 +enable_so_flag_count_sg_simple_element_62044 flag_count sg_simple_element 0 62044 NULL
174270 +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
174271 +enable_so_entries_size_ebt_replace_62051 entries_size ebt_replace 0 62051 NULL
174272 +enable_so_regmap_spi_read_fndecl_62058 regmap_spi_read fndecl 3-5 62058 NULL
174273 +enable_so_ex_offset_extent_s_62059 ex_offset extent_s 0 62059 NULL
174274 +enable_so_num_attr_vgastate_62064 num_attr vgastate 0 62064 NULL
174275 +enable_so_cfg80211_inform_bss_data_fndecl_62065 cfg80211_inform_bss_data fndecl 9 62065 NULL
174276 +enable_so_do_tty_write_fndecl_62067 do_tty_write fndecl 5 62067 NULL
174277 +enable_so_cb_stripe_unit_exofs_dt_data_map_62068 cb_stripe_unit exofs_dt_data_map 0 62068 NULL
174278 +enable_so_ip_vs_send_async_fndecl_62075 ip_vs_send_async fndecl 3 62075 NULL
174279 +enable_so_wBlockSize_ms_bootblock_sysinf_62081 wBlockSize ms_bootblock_sysinf 0 62081 NULL
174280 +enable_so_ieee80211_build_probe_req_fndecl_62084 ieee80211_build_probe_req fndecl 9-7 62084 NULL
174281 +enable_so_rtsx_usb_seq_write_register_fndecl_62088 rtsx_usb_seq_write_register fndecl 3-0 62088 NULL
174282 +enable_so_cur_rx_pos_tegra_spi_data_62091 cur_rx_pos tegra_spi_data 0 62091 NULL
174283 +enable_so_init_shash_alg_62095 init shash_alg 0 62095 NULL
174284 +enable_so_max_xid_bnx2fc_hba_62096 max_xid bnx2fc_hba 0 62096 NULL
174285 +enable_so_bcm_recvmsg_fndecl_62099 bcm_recvmsg fndecl 3 62099 NULL nohasharray
174286 +enable_so_word3_atl1c_recv_ret_status_62099 word3 atl1c_recv_ret_status 0 62099 &enable_so_bcm_recvmsg_fndecl_62099
174287 +enable_so_task_ctx_size_pmu_62102 task_ctx_size pmu 0 62102 NULL
174288 +enable_so_yoffset_fb_var_screeninfo_62110 yoffset fb_var_screeninfo 0 62110 NULL nohasharray
174289 +enable_so_bulk_out_ep_bfusb_data_62110 bulk_out_ep bfusb_data 0 62110 &enable_so_yoffset_fb_var_screeninfo_62110
174290 +enable_so_tx_queue_status_read_fndecl_62113 tx_queue_status_read fndecl 3 62113 NULL
174291 +enable_so_bo_offset_vmw_surface_offset_62116 bo_offset vmw_surface_offset 0 62116 NULL
174292 +enable_so_st_nci_hci_dm_vdc_measurement_value_fndecl_62123 st_nci_hci_dm_vdc_measurement_value fndecl 3 62123 NULL nohasharray
174293 +enable_so_sched_read_attr_fndecl_62123 sched_read_attr fndecl 3 62123 &enable_so_st_nci_hci_dm_vdc_measurement_value_fndecl_62123
174294 +enable_so_vcs_lseek_fndecl_62125 vcs_lseek fndecl 2 62125 NULL
174295 +enable_so___process_deleted_xattr_fndecl_62133 __process_deleted_xattr fndecl 4 62133 NULL
174296 +enable_so_hfs_cat_create_fndecl_62139 hfs_cat_create fndecl 1 62139 NULL
174297 +enable_so_next_setup_data_62142 next setup_data 0 62142 NULL
174298 +enable_so_drbd_recv_all_warn_fndecl_62144 drbd_recv_all_warn fndecl 3 62144 NULL
174299 +enable_so_cciss_tape_cmds_vardecl_cciss_c_62147 cciss_tape_cmds vardecl_cciss.c 0 62147 NULL
174300 +enable_so_tcp_trim_head_fndecl_62157 tcp_trim_head fndecl 3 62157 NULL
174301 +enable_so_ptrace_writedata_fndecl_62158 ptrace_writedata fndecl 4-3 62158 NULL
174302 +enable_so_map_index_to_lba_fndecl_62162 map_index_to_lba fndecl 0-1 62162 NULL
174303 +enable_so_user_frag_sctp_association_62167 user_frag sctp_association 0 62167 NULL nohasharray
174304 +enable_so_alloc_huge_page_fndecl_62167 alloc_huge_page fndecl 2 62167 &enable_so_user_frag_sctp_association_62167
174305 +enable_so_len_scrub_copy_nocow_ctx_62170 len scrub_copy_nocow_ctx 0 62170 NULL
174306 +enable_so_clear_record_extent_bits_fndecl_62179 clear_record_extent_bits fndecl 2-3 62179 NULL
174307 +enable_so_igb_change_mtu_fndecl_62189 igb_change_mtu fndecl 2 62189 NULL
174308 +enable_so_agent_send_response_fndecl_62193 agent_send_response fndecl 7-5 62193 NULL nohasharray
174309 +enable_so_eps_count_ffs_data_62193 eps_count ffs_data 0 62193 &enable_so_agent_send_response_fndecl_62193
174310 +enable_so_rose_sendmsg_fndecl_62194 rose_sendmsg fndecl 3 62194 NULL nohasharray
174311 +enable_so_dm_kvzalloc_fndecl_62194 dm_kvzalloc fndecl 1 62194 &enable_so_rose_sendmsg_fndecl_62194
174312 +enable_so_max_pkt_size_em28xx_62196 max_pkt_size em28xx 0 62196 NULL
174313 +enable_so_maxframe_caifsock_62201 maxframe caifsock 0 62201 NULL nohasharray
174314 +enable_so_wm_adsp_create_control_fndecl_62201 wm_adsp_create_control fndecl 4 62201 &enable_so_maxframe_caifsock_62201
174315 +enable_so_param_count_acpi_evaluate_info_62202 param_count acpi_evaluate_info 0 62202 NULL
174316 +enable_so_inum_size_entry_62204 inum size_entry 0 62204 NULL
174317 +enable_so_locked_rate_snd_sb_62221 locked_rate snd_sb 0 62221 NULL
174318 +enable_so_datainterval_snd_usb_endpoint_62227 datainterval snd_usb_endpoint 0 62227 NULL
174319 +enable_so_sense_len_request_62229 sense_len request 0 62229 NULL
174320 +enable_so_shmem_getpage_gfp_fndecl_62239 shmem_getpage_gfp fndecl 2 62239 NULL
174321 +enable_so_snd_pcm_alloc_vmalloc_buffer_fndecl_62240 snd_pcm_alloc_vmalloc_buffer fndecl 2 62240 NULL
174322 +enable_so_soc_tplg_dapm_widget_dmixer_create_fndecl_62241 soc_tplg_dapm_widget_dmixer_create fndecl 2 62241 NULL
174323 +enable_so_btrfs_set_extent_delalloc_fndecl_62264 btrfs_set_extent_delalloc fndecl 3-2 62264 NULL
174324 +enable_so_num_rxqs_octeon_nic_if_config_62266 num_rxqs octeon_nic_if_config 0 62266 NULL
174325 +enable_so_usable_leb_size_ubi_volume_62272 usable_leb_size ubi_volume 0 62272 NULL
174326 +enable_so_cfpkt_add_body_fndecl_62277 cfpkt_add_body fndecl 3 62277 NULL
174327 +enable_so_msb_get_free_block_fndecl_62282 msb_get_free_block fndecl 0 62282 NULL
174328 +enable_so_email_size_x509_parse_context_62283 email_size x509_parse_context 0 62283 NULL
174329 +enable_so_gx1_line_delta_fndecl_62286 gx1_line_delta fndecl 0 62286 NULL
174330 +enable_so_omfs_scan_list_fndecl_62289 omfs_scan_list fndecl 2 62289 NULL
174331 +enable_so___kvm_read_guest_page_fndecl_62291 __kvm_read_guest_page fndecl 2-5 62291 NULL
174332 +enable_so_num_arq_entries_i40e_adminq_info_62293 num_arq_entries i40e_adminq_info 0 62293 NULL
174333 +enable_so_max_io_mvumi_hba_62301 max_io mvumi_hba 0 62301 NULL
174334 +enable_so_ceph_llseek_fndecl_62305 ceph_llseek fndecl 2 62305 NULL
174335 +enable_so_sb_rbmblocks_xfs_sb_62307 sb_rbmblocks xfs_sb 0 62307 NULL
174336 +enable_so_rtl2832_sdr_convert_stream_fndecl_62308 rtl2832_sdr_convert_stream fndecl 0-4 62308 NULL
174337 +enable_so_ircomm_tty_connect_confirm_fndecl_62310 ircomm_tty_connect_confirm fndecl 4-5 62310 NULL nohasharray
174338 +enable_so_iov_data_count_iscsi_cmd_62310 iov_data_count iscsi_cmd 0 62310 &enable_so_ircomm_tty_connect_confirm_fndecl_62310
174339 +enable_so_map_extent_mft_record_fndecl_62312 map_extent_mft_record fndecl 2 62312 NULL nohasharray
174340 +enable_so_alloc_ctrl_packet_fndecl_62312 alloc_ctrl_packet fndecl 1 62312 &enable_so_map_extent_mft_record_fndecl_62312
174341 +enable_so_ss_channels_snd_rme9652_62315 ss_channels snd_rme9652 0 62315 NULL
174342 +enable_so_erst_writer_fndecl_62318 erst_writer fndecl 7 62318 NULL
174343 +enable_so_vlan_tag_ocrdma_eth_vlan_62320 vlan_tag ocrdma_eth_vlan 0 62320 NULL
174344 +enable_so_ext2_new_block_fndecl_62326 ext2_new_block fndecl 0-2 62326 NULL
174345 +enable_so_qib_get_user_pages_fndecl_62338 qib_get_user_pages fndecl 1 62338 NULL nohasharray
174346 +enable_so_hdrlen_adm8211_tx_ring_info_62338 hdrlen adm8211_tx_ring_info 0 62338 &enable_so_qib_get_user_pages_fndecl_62338 nohasharray
174347 +enable_so_bbtskipbytes_denali_nand_info_62338 bbtskipbytes denali_nand_info 0 62338 &enable_so_hdrlen_adm8211_tx_ring_info_62338
174348 +enable_so_pagf_flcount_xfs_perag_62340 pagf_flcount xfs_perag 0 62340 NULL
174349 +enable_so_reiserfs_update_sd_size_fndecl_62345 reiserfs_update_sd_size fndecl 3 62345 NULL nohasharray
174350 +enable_so_lov_emerg_alloc_fndecl_62345 lov_emerg_alloc fndecl 1 62345 &enable_so_reiserfs_update_sd_size_fndecl_62345
174351 +enable_so_switchdev_obj_size_fndecl_62346 switchdev_obj_size fndecl 0 62346 NULL
174352 +enable_so_pcl_status_pcl_62348 pcl_status pcl 0 62348 NULL
174353 +enable_so_C_SYSC_select_fndecl_62350 C_SYSC_select fndecl 1 62350 NULL
174354 +enable_so_mpi_resize_fndecl_62353 mpi_resize fndecl 2 62353 NULL
174355 +enable_so_raid56_parity_write_fndecl_62355 raid56_parity_write fndecl 0-4 62355 NULL
174356 +enable_so_reglen_bfad_s_62360 reglen bfad_s 0 62360 NULL
174357 +enable_so_rawv6_sendmsg_fndecl_62363 rawv6_sendmsg fndecl 3 62363 NULL
174358 +enable_so_ts_read_fndecl_62364 ts_read fndecl 3 62364 NULL
174359 +enable_so_drxbsp_i2c_write_read_fndecl_62366 drxbsp_i2c_write_read fndecl 5-2 62366 NULL
174360 +enable_so_punit_base2_intel_pmc_ipc_dev_62373 punit_base2 intel_pmc_ipc_dev 0 62373 NULL
174361 +enable_so_num_subauth_cifs_sid_62374 num_subauth cifs_sid 0 62374 NULL
174362 +enable_so_num_entries_compat_arpt_replace_62377 num_entries compat_arpt_replace 0 62377 NULL nohasharray
174363 +enable_so_fib_count_nexthops_fndecl_62377 fib_count_nexthops fndecl 0 62377 &enable_so_num_entries_compat_arpt_replace_62377
174364 +enable_so_clusterip_proc_write_fndecl_62378 clusterip_proc_write fndecl 3 62378 NULL
174365 +enable_so_new_chunk_mdp_superblock_1_62380 new_chunk mdp_superblock_1 0 62380 NULL
174366 +enable_so_efx_wanted_parallelism_fndecl_62383 efx_wanted_parallelism fndecl 0 62383 NULL nohasharray
174367 +enable_so_max_cnt_ocrdma_qp_hwq_info_62383 max_cnt ocrdma_qp_hwq_info 0 62383 &enable_so_efx_wanted_parallelism_fndecl_62383
174368 +enable_so_ivsize_aead_alg_62386 ivsize aead_alg 0 62386 NULL
174369 +enable_so_m_blkbb_log_xfs_mount_62391 m_blkbb_log xfs_mount 0 62391 NULL
174370 +enable_so___generic_block_fiemap_fndecl_62394 __generic_block_fiemap fndecl 4 62394 NULL nohasharray
174371 +enable_so_xfer_to_user_fndecl_62394 xfer_to_user fndecl 3 62394 &enable_so___generic_block_fiemap_fndecl_62394
174372 +enable_so_hwCBP_td_62396 hwCBP td 0 62396 NULL
174373 +enable_so_len_scifioctl_node_ids_62402 len scifioctl_node_ids 0 62402 NULL
174374 +enable_so_pty_write_fndecl_62406 pty_write fndecl 3 62406 NULL
174375 +enable_so_segment_acpi_pci_root_62407 segment acpi_pci_root 0 62407 NULL
174376 +enable_so_rtsx_usb_get_rsp_fndecl_62408 rtsx_usb_get_rsp fndecl 2-0 62408 NULL nohasharray
174377 +enable_so_do_huge_pmd_wp_page_fndecl_62408 do_huge_pmd_wp_page fndecl 3 62408 &enable_so_rtsx_usb_get_rsp_fndecl_62408 nohasharray
174378 +enable_so_fill_holes_fndecl_62408 fill_holes fndecl 4-5 62408 &enable_so_do_huge_pmd_wp_page_fndecl_62408
174379 +enable_so_gfs2_log_bmap_fndecl_62411 gfs2_log_bmap fndecl 0 62411 NULL
174380 +enable_so_unmap_page_range_fndecl_62415 unmap_page_range fndecl 4-3 62415 NULL
174381 +enable_so_adap_id_pca954x_platform_mode_62418 adap_id pca954x_platform_mode 0 62418 NULL
174382 +enable_so_data_offset_v4l2_plane_62423 data_offset v4l2_plane 0 62423 NULL
174383 +enable_so_WIL_GET_BITS_fndecl_62424 WIL_GET_BITS fndecl 0-3-2-1 62424 NULL
174384 +enable_so_set_brk_fndecl_62430 set_brk fndecl 2 62430 NULL nohasharray
174385 +enable_so_io_size_xfs_ioend_62430 io_size xfs_ioend 0 62430 &enable_so_set_brk_fndecl_62430
174386 +enable_so_sctp_setsockopt_fndecl_62439 sctp_setsockopt fndecl 5 62439 NULL
174387 +enable_so_hns_ae_get_q_num_per_vf_fndecl_62440 hns_ae_get_q_num_per_vf fndecl 0 62440 NULL
174388 +enable_so_rx_urb_size_lan78xx_net_62443 rx_urb_size lan78xx_net 0 62443 NULL nohasharray
174389 +enable_so_sum_link_node_ref_fndecl_62443 sum_link_node_ref fndecl 3-4 62443 &enable_so_rx_urb_size_lan78xx_net_62443
174390 +enable_so_rx_dropped_read_fndecl_62444 rx_dropped_read fndecl 3 62444 NULL
174391 +enable_so___videobuf_copy_stream_fndecl_62450 __videobuf_copy_stream fndecl 0-4 62450 NULL
174392 +enable_so_lpfc_sli4_diag_fcport_reg_setup_fndecl_62456 lpfc_sli4_diag_fcport_reg_setup fndecl 0 62456 NULL
174393 +enable_so_btrfs_new_inode_fndecl_62463 btrfs_new_inode fndecl 7 62463 NULL
174394 +enable_so_lower_offset_skb_seq_state_62465 lower_offset skb_seq_state 0 62465 NULL
174395 +enable_so_ipx_recvmsg_fndecl_62469 ipx_recvmsg fndecl 3 62469 NULL nohasharray
174396 +enable_so_get_pad_size_fndecl_62469 get_pad_size fndecl 0-2-1-3 62469 &enable_so_ipx_recvmsg_fndecl_62469
174397 +enable_so_ram_alignment_fndecl_62470 ram_alignment fndecl 0 62470 NULL
174398 +enable_so_payload_bytes_controlvm_message_header_62474 payload_bytes controlvm_message_header 0 62474 NULL
174399 +enable_so_page_size_mspro_block_data_62479 page_size mspro_block_data 0 62479 NULL
174400 +enable_so___netlink_kernel_create_fndecl_62480 __netlink_kernel_create fndecl 2 62480 NULL
174401 +enable_so_fw_stats_bus_myri10ge_slice_state_62482 fw_stats_bus myri10ge_slice_state 0 62482 NULL
174402 +enable_so_ide_end_rq_fndecl_62486 ide_end_rq fndecl 4-3 62486 NULL nohasharray
174403 +enable_so_rx_ring_tail_sc92031_priv_62486 rx_ring_tail sc92031_priv 0 62486 &enable_so_ide_end_rq_fndecl_62486
174404 +enable_so_mlx5_ib_reg_user_mr_fndecl_62488 mlx5_ib_reg_user_mr fndecl 4-2-3 62488 NULL nohasharray
174405 +enable_so_oh_len_xlog_op_header_62488 oh_len xlog_op_header 0 62488 &enable_so_mlx5_ib_reg_user_mr_fndecl_62488
174406 +enable_so_symsize_persistent_ram_ecc_info_62489 symsize persistent_ram_ecc_info 0 62489 NULL
174407 +enable_so_residual_len_sts_entry_fx00_62491 residual_len sts_entry_fx00 0 62491 NULL nohasharray
174408 +enable_so_dlen_ippp_ccp_reset_state_62491 dlen ippp_ccp_reset_state 0 62491 &enable_so_residual_len_sts_entry_fx00_62491
174409 +enable_so_filemap_write_and_wait_range_fndecl_62492 filemap_write_and_wait_range fndecl 0-2-3 62492 NULL nohasharray
174410 +enable_so_svc_sock_setbufsize_fndecl_62492 svc_sock_setbufsize fndecl 2 62492 &enable_so_filemap_write_and_wait_range_fndecl_62492
174411 +enable_so_evtchn_write_fndecl_62493 evtchn_write fndecl 3 62493 NULL
174412 +enable_so_try_charge_fndecl_62496 try_charge fndecl 0 62496 NULL
174413 +enable_so_vmci_transport_set_buffer_size_fndecl_62498 vmci_transport_set_buffer_size fndecl 2 62498 NULL
174414 +enable_so_de_type_gfs2_dirent_62502 de_type gfs2_dirent 0 62502 NULL
174415 +enable_so_max_enic_rfs_flw_tbl_62505 max enic_rfs_flw_tbl 0 62505 NULL
174416 +enable_so_rq_tailsz_smb_rqst_62506 rq_tailsz smb_rqst 0 62506 NULL
174417 +enable_so_jade_ale_bkm_hw_62507 jade_ale bkm_hw 0 62507 NULL
174418 +enable_so_sgs_per_request_skd_device_62508 sgs_per_request skd_device 0 62508 NULL
174419 +enable_so_mpage_alloc_fndecl_62512 mpage_alloc fndecl 2-3 62512 NULL
174420 +enable_so_dma_phys_netup_unidvb_dev_62519 dma_phys netup_unidvb_dev 0 62519 NULL
174421 +enable_so_batadv_is_ap_isolated_fndecl_62523 batadv_is_ap_isolated fndecl 4 62523 NULL
174422 +enable_so_rx_buf_sz_iadev_priv_62524 rx_buf_sz iadev_priv 0 62524 NULL
174423 +enable_so_local_len_t3_rdma_read_wr_62533 local_len t3_rdma_read_wr 0 62533 NULL
174424 +enable_so_kvm_host_page_size_fndecl_62535 kvm_host_page_size fndecl 0-2 62535 NULL
174425 +enable_so_len_ErrMsg_62547 len ErrMsg 0 62547 NULL
174426 +enable_so___ext4_get_inode_loc_fndecl_62551 __ext4_get_inode_loc fndecl 0 62551 NULL
174427 +enable_so_num_cq_entries_hba_parameters_62556 num_cq_entries hba_parameters 0 62556 NULL
174428 +enable_so_rsi_sdio_host_intf_read_pkt_fndecl_62557 rsi_sdio_host_intf_read_pkt fndecl 3 62557 NULL
174429 +enable_so_lx_framebuffer_size_fndecl_62562 lx_framebuffer_size fndecl 0 62562 NULL
174430 +enable_so_wDatagramLength_usb_cdc_ncm_dpe16_62564 wDatagramLength usb_cdc_ncm_dpe16 0 62564 NULL
174431 +enable_so_outbuf_dma_ati_remote_62567 outbuf_dma ati_remote 0 62567 NULL
174432 +enable_so_svc_pool_map_get_fndecl_62569 svc_pool_map_get fndecl 0 62569 NULL
174433 +enable_so_numscales_vardecl_longhaul_c_62570 numscales vardecl_longhaul.c 0 62570 NULL
174434 +enable_so_btrfs_check_data_free_space_fndecl_62583 btrfs_check_data_free_space fndecl 0-3-2 62583 NULL
174435 +enable_so_xenfb_write_fndecl_62599 xenfb_write fndecl 3 62599 NULL
174436 +enable_so_mon_bin_dev0_vardecl_mon_bin_c_62600 mon_bin_dev0 vardecl_mon_bin.c 0 62600 NULL
174437 +enable_so_i2c_rd_fndecl_62601 i2c_rd fndecl 4 62601 NULL
174438 +enable_so___alloc_bootmem_low_fndecl_62604 __alloc_bootmem_low fndecl 2-1-3 62604 NULL nohasharray
174439 +enable_so_max_header_size_irlan_cb_62604 max_header_size irlan_cb 0 62604 &enable_so___alloc_bootmem_low_fndecl_62604 nohasharray
174440 +enable_so_msi_capability_init_fndecl_62604 msi_capability_init fndecl 2-0 62604 &enable_so_max_header_size_irlan_cb_62604
174441 +enable_so_ext4_xattr_check_names_fndecl_62605 ext4_xattr_check_names fndecl 0 62605 NULL
174442 +enable_so_agi_root_xfs_agi_62607 agi_root xfs_agi 0 62607 NULL
174443 +enable_so_get_user_pages_unlocked_fndecl_62612 get_user_pages_unlocked fndecl 0-3 62612 NULL
174444 +enable_so_pci_sriov_set_totalvfs_fndecl_62615 pci_sriov_set_totalvfs fndecl 2 62615 NULL
174445 +enable_so_cell_locker_fndecl_62618 cell_locker fndecl 2 62618 NULL
174446 +enable_so_hor_offs_align_fimc_variant_62619 hor_offs_align fimc_variant 0 62619 NULL
174447 +enable_so_usb_string_fndecl_62624 usb_string fndecl 0 62624 NULL
174448 +enable_so_l2linesize_linelock_62626 l2linesize linelock 0 62626 NULL
174449 +enable_so_min_pkt_size_pktgen_dev_62629 min_pkt_size pktgen_dev 0 62629 NULL
174450 +enable_so_get_vm_area_size_fndecl_62631 get_vm_area_size fndecl 0 62631 NULL
174451 +enable_so_virtio_gpu_ttm_tt_create_fndecl_62636 virtio_gpu_ttm_tt_create fndecl 2 62636 NULL nohasharray
174452 +enable_so_wil_change_mtu_fndecl_62636 wil_change_mtu fndecl 2 62636 &enable_so_virtio_gpu_ttm_tt_create_fndecl_62636
174453 +enable_so_fs_path_prepare_for_add_fndecl_62638 fs_path_prepare_for_add fndecl 0-2 62638 NULL nohasharray
174454 +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
174455 +enable_so_fts_rtllib_device_62643 fts rtllib_device 0 62643 NULL
174456 +enable_so_cfg_sg_seg_cnt_lpfc_hba_62646 cfg_sg_seg_cnt lpfc_hba 0 62646 NULL nohasharray
174457 +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
174458 +enable_so_usb_alloc_urb_fndecl_62655 usb_alloc_urb fndecl 1 62655 NULL
174459 +enable_so_curr_len_max3421_hcd_62658 curr_len max3421_hcd 0 62658 NULL
174460 +enable_so_count_pch_gbe_rx_ring_62662 count pch_gbe_rx_ring 0 62662 NULL
174461 +enable_so_irq_max_tg3_62664 irq_max tg3 0 62664 NULL
174462 +enable_so_calculate_discard_block_size_fndecl_62667 calculate_discard_block_size fndecl 0-1 62667 NULL nohasharray
174463 +enable_so_alloc_new_reservation_fndecl_62667 alloc_new_reservation fndecl 0 62667 &enable_so_calculate_discard_block_size_fndecl_62667 nohasharray
174464 +enable_so_base_i40e_hmc_obj_info_62667 base i40e_hmc_obj_info 0 62667 &enable_so_alloc_new_reservation_fndecl_62667
174465 +enable_so_qxl_gem_object_create_fndecl_62668 qxl_gem_object_create fndecl 2 62668 NULL
174466 +enable_so_max_outstanding_tx_leaf_msg_softinfo_62669 max_outstanding_tx leaf_msg_softinfo 0 62669 NULL nohasharray
174467 +enable_so_bss_priv_size_wiphy_62669 bss_priv_size wiphy 0 62669 &enable_so_max_outstanding_tx_leaf_msg_softinfo_62669
174468 +enable_so_pci_cfg_space_size_ext_fndecl_62679 pci_cfg_space_size_ext fndecl 0 62679 NULL
174469 +enable_so_encode_rpcb_string_fndecl_62680 encode_rpcb_string fndecl 3 62680 NULL
174470 +enable_so_nvme_trans_device_id_page_fndecl_62681 nvme_trans_device_id_page fndecl 4 62681 NULL
174471 +enable_so_bpp_sh_vou_fmt_62683 bpp sh_vou_fmt 0 62683 NULL
174472 +enable_so_num_vsis_i40e_hw_capabilities_62685 num_vsis i40e_hw_capabilities 0 62685 NULL
174473 +enable_so_start_ttm_mem_reg_62688 start ttm_mem_reg 0 62688 NULL
174474 +enable_so_vmemdup_fndecl_62706 vmemdup fndecl 2 62706 NULL
174475 +enable_so_curwidth_usb_usbvision_62710 curwidth usb_usbvision 0 62710 NULL
174476 +enable_so_tx_tx_data_prepared_read_fndecl_62714 tx_tx_data_prepared_read fndecl 3 62714 NULL
174477 +enable_so_mtu_ring_info_62721 mtu ring_info 0 62721 NULL
174478 +enable_so_isr_rx_mem_overflow_read_fndecl_62722 isr_rx_mem_overflow_read fndecl 3 62722 NULL
174479 +enable_so_srp_map_finish_fr_fndecl_62727 srp_map_finish_fr fndecl 0 62727 NULL
174480 +enable_so_jffs2_write_begin_fndecl_62728 jffs2_write_begin fndecl 3 62728 NULL nohasharray
174481 +enable_so_limit_tc_sfq_qopt_62728 limit tc_sfq_qopt 0 62728 &enable_so_jffs2_write_begin_fndecl_62728 nohasharray
174482 +enable_so_wep_default_key_count_read_fndecl_62728 wep_default_key_count_read fndecl 3 62728 &enable_so_limit_tc_sfq_qopt_62728
174483 +enable_so_total_len_android_wifi_priv_cmd_62735 total_len android_wifi_priv_cmd 0 62735 NULL
174484 +enable_so_smi_read_eeprom_fndecl_62737 smi_read_eeprom fndecl 4 62737 NULL
174485 +enable_so_match_size_ebt_entry_match_62738 match_size ebt_entry_match 0 62738 NULL nohasharray
174486 +enable_so_hpi_init_message_responseV1_fndecl_62738 hpi_init_message_responseV1 fndecl 4-2 62738 &enable_so_match_size_ebt_entry_match_62738
174487 +enable_so_xfs_da_read_buf_fndecl_62739 xfs_da_read_buf fndecl 3 62739 NULL
174488 +enable_so_payload_size_hv_message_header_62742 payload_size hv_message_header 0 62742 NULL
174489 +enable_so_twa_load_sgl_fndecl_62743 twa_load_sgl fndecl 5 62743 NULL
174490 +enable_so_fs_wm9081_priv_62744 fs wm9081_priv 0 62744 NULL
174491 +enable_so_clear_extent_dirty_fndecl_62746 clear_extent_dirty fndecl 2-3 62746 NULL
174492 +enable_so_mi_first_entry_offset_nilfs_mdt_info_62749 mi_first_entry_offset nilfs_mdt_info 0 62749 NULL
174493 +enable_so_num_counters_vardecl_op_model_amd_c_62750 num_counters vardecl_op_model_amd.c 0 62750 NULL
174494 +enable_so___bioset_create_fndecl_62752 __bioset_create fndecl 2-1 62752 NULL
174495 +enable_so_min_align_pci_dev_resource_62768 min_align pci_dev_resource 0 62768 NULL
174496 +enable_so_st_nci_hci_dm_fwupd_end_fndecl_62777 st_nci_hci_dm_fwupd_end fndecl 3 62777 NULL
174497 +enable_so_e_value_size_ext4_xattr_entry_62783 e_value_size ext4_xattr_entry 0 62783 NULL
174498 +enable_so_tomoyo_read_fndecl_62786 tomoyo_read fndecl 3 62786 NULL
174499 +enable_so_mt2131_writeregs_fndecl_62788 mt2131_writeregs fndecl 3 62788 NULL
174500 +enable_so_dump_skip_fndecl_62793 dump_skip fndecl 2 62793 NULL
174501 +enable_so_buffer_size_tx_holding_buffer_62794 buffer_size tx_holding_buffer 0 62794 NULL
174502 +enable_so_len_cx24120_cmd_62796 len cx24120_cmd 0 62796 NULL
174503 +enable_so_mmc_start_request_fndecl_62798 mmc_start_request fndecl 0 62798 NULL
174504 +enable_so_cur_tx_netdev_private_62799 cur_tx netdev_private 0 62799 NULL
174505 +enable_so_v9fs_qid2ino_fndecl_62801 v9fs_qid2ino fndecl 0 62801 NULL
174506 +enable_so_xattr_len_ima_event_data_62811 xattr_len ima_event_data 0 62811 NULL
174507 +enable_so_mlx4_ib_send_to_slave_fndecl_62812 mlx4_ib_send_to_slave fndecl 3 62812 NULL nohasharray
174508 +enable_so_head_aio_ring_62812 head aio_ring 0 62812 &enable_so_mlx4_ib_send_to_slave_fndecl_62812
174509 +enable_so_min_pll_multiplier_smiapp_pll_limits_62814 min_pll_multiplier smiapp_pll_limits 0 62814 NULL
174510 +enable_so_capture_frlog_rme32_62817 capture_frlog rme32 0 62817 NULL
174511 +enable_so_coex_rx_win_size_mwifiex_adapter_62818 coex_rx_win_size mwifiex_adapter 0 62818 NULL
174512 +enable_so_tlen_hfi1_packet_62825 tlen hfi1_packet 0 62825 NULL
174513 +enable_so_wq_len_tx_ring_62826 wq_len tx_ring 0 62826 NULL
174514 +enable_so_gfs2_journaled_truncate_fndecl_62839 gfs2_journaled_truncate fndecl 3-2 62839 NULL
174515 +enable_so_ix2505v_write_fndecl_62840 ix2505v_write fndecl 3 62840 NULL
174516 +enable_so_calculate_node_totalpages_fndecl_62845 calculate_node_totalpages fndecl 2-3 62845 NULL
174517 +enable_so_fuse_read_fill_fndecl_62851 fuse_read_fill fndecl 4 62851 NULL
174518 +enable_so_cfs_cpt_table_alloc_fndecl_62852 cfs_cpt_table_alloc fndecl 1 62852 NULL
174519 +enable_so_func_num_vardecl_g_ffs_c_62856 func_num vardecl_g_ffs.c 0 62856 NULL
174520 +enable_so_vlan_cpl_rx_pkt_62857 vlan cpl_rx_pkt 0 62857 NULL nohasharray
174521 +enable_so_max_register_regmap_62857 max_register regmap 0 62857 &enable_so_vlan_cpl_rx_pkt_62857
174522 +enable_so_nr_vecs_nilfs_write_info_62858 nr_vecs nilfs_write_info 0 62858 NULL
174523 +enable_so_spi_xcomm_txrx_bufs_fndecl_62860 spi_xcomm_txrx_bufs fndecl 0 62860 NULL
174524 +enable_so_bfad_iocmd_lport_get_iostats_fndecl_62861 bfad_iocmd_lport_get_iostats fndecl 0 62861 NULL
174525 +enable_so_height_tm6000_core_62864 height tm6000_core 0 62864 NULL
174526 +enable_so_c67x00_td_to_error_fndecl_62867 c67x00_td_to_error fndecl 0 62867 NULL
174527 +enable_so_ext2_max_size_fndecl_62871 ext2_max_size fndecl 0-1 62871 NULL
174528 +enable_so_wPageSize_ms_bootblock_sysinf_62873 wPageSize ms_bootblock_sysinf 0 62873 NULL
174529 +enable_so_i2c_hid_get_report_fndecl_62874 i2c_hid_get_report fndecl 5 62874 NULL
174530 +enable_so_qp_count_ntb_transport_ctx_62876 qp_count ntb_transport_ctx 0 62876 NULL
174531 +enable_so_xfs_dir3_leaf_read_fndecl_62878 xfs_dir3_leaf_read fndecl 3 62878 NULL
174532 +enable_so_ath6kl_set_assoc_req_ies_fndecl_62882 ath6kl_set_assoc_req_ies fndecl 3 62882 NULL
174533 +enable_so_create_kmalloc_cache_fndecl_62883 create_kmalloc_cache fndecl 2 62883 NULL
174534 +enable_so_valueblk_xfs_attr_inactive_list_62884 valueblk xfs_attr_inactive_list 0 62884 NULL
174535 +enable_so_phys_start_nvs_page_62885 phys_start nvs_page 0 62885 NULL
174536 +enable_so_send_cmd_fndecl_62899 send_cmd fndecl 0 62899 NULL
174537 +enable_so_midi_in_ports_snd_efw_62902 midi_in_ports snd_efw 0 62902 NULL
174538 +enable_so_arg2__cdrp_cmd_62906 arg2 _cdrp_cmd 0 62906 NULL
174539 +enable_so_length_uvc_buffer_62907 length uvc_buffer 0 62907 NULL
174540 +enable_so_buflen_xdr_buf_62914 buflen xdr_buf 0 62914 NULL nohasharray
174541 +enable_so_n_subdevices_comedi_device_62914 n_subdevices comedi_device 0 62914 &enable_so_buflen_xdr_buf_62914
174542 +enable_so_elf_core_extra_phdrs_fndecl_62917 elf_core_extra_phdrs fndecl 0 62917 NULL
174543 +enable_so_out_size_ide_task_request_s_62924 out_size ide_task_request_s 0 62924 NULL
174544 +enable_so_uar_size_mthca_dev_lim_62925 uar_size mthca_dev_lim 0 62925 NULL
174545 +enable_so_uio_write_fndecl_62929 uio_write fndecl 3 62929 NULL
174546 +enable_so_teiup_create_fndecl_62930 teiup_create fndecl 3 62930 NULL nohasharray
174547 +enable_so_queue_size_srp_target_port_62930 queue_size srp_target_port 0 62930 &enable_so_teiup_create_fndecl_62930
174548 +enable_so_ext4_xattr_ibody_get_fndecl_62931 ext4_xattr_ibody_get fndecl 0 62931 NULL
174549 +enable_so_regmap_encx24j600_sfr_write_fndecl_62935 regmap_encx24j600_sfr_write fndecl 4 62935 NULL
174550 +enable_so_bfad_send_fcpt_cb_fndecl_62936 bfad_send_fcpt_cb fndecl 5 62936 NULL
174551 +enable_so_f2fs_acl_from_disk_fndecl_62937 f2fs_acl_from_disk fndecl 2 62937 NULL
174552 +enable_so_iso_callback_fndecl_62939 iso_callback fndecl 3 62939 NULL
174553 +enable_so_ovl_split_lowerdirs_fndecl_62941 ovl_split_lowerdirs fndecl 0 62941 NULL
174554 +enable_so_mtu_atmlec_config_msg_62946 mtu atmlec_config_msg 0 62946 NULL
174555 +enable_so_ax88178_change_mtu_fndecl_62947 ax88178_change_mtu fndecl 2 62947 NULL
174556 +enable_so_fixup_leb_fndecl_62955 fixup_leb fndecl 3 62955 NULL
174557 +enable_so_bfad_iocmd_diag_memtest_fndecl_62963 bfad_iocmd_diag_memtest fndecl 0 62963 NULL
174558 +enable_so_batadv_tt_tvlv_unicast_handler_v1_fndecl_62964 batadv_tt_tvlv_unicast_handler_v1 fndecl 5 62964 NULL
174559 +enable_so_adfs_get_block_fndecl_62966 adfs_get_block fndecl 2 62966 NULL
174560 +enable_so_bfad_iocmd_flash_erase_part_fndecl_62968 bfad_iocmd_flash_erase_part fndecl 0 62968 NULL nohasharray
174561 +enable_so_i_sblock_bfs_inode_62968 i_sblock bfs_inode 0 62968 &enable_so_bfad_iocmd_flash_erase_part_fndecl_62968
174562 +enable_so_io_tlb_nslabs_vardecl_swiotlb_c_62972 io_tlb_nslabs vardecl_swiotlb.c 0 62972 NULL
174563 +enable_so_vmemmap_alloc_block_fndecl_62974 vmemmap_alloc_block fndecl 1 62974 NULL
174564 +enable_so_max_requests_hpt_iop_request_get_config_62975 max_requests hpt_iop_request_get_config 0 62975 NULL
174565 +enable_so_pt_firstlbn_partition_table_62980 pt_firstlbn partition_table 0 62980 NULL
174566 +enable_so_move_to_top_fndecl_62981 move_to_top fndecl 2-3 62981 NULL
174567 +enable_so_memblock_insert_region_fndecl_62987 memblock_insert_region fndecl 3-4 62987 NULL
174568 +enable_so_btrfs_copy_from_user_fndecl_62989 btrfs_copy_from_user fndecl 1-0-3 62989 NULL
174569 +enable_so_integrity_kernel_read_fndecl_62991 integrity_kernel_read fndecl 4 62991 NULL
174570 +enable_so_layout_mddev_62992 layout mddev 0 62992 NULL
174571 +enable_so_i2c_smbus_write_word_data_fndecl_62993 i2c_smbus_write_word_data fndecl 0 62993 NULL
174572 +enable_so_alloc_name_seq_62994 alloc name_seq 0 62994 NULL
174573 +enable_so_ocfs2_xattr_get_value_outside_fndecl_63000 ocfs2_xattr_get_value_outside fndecl 0 63000 NULL
174574 +enable_so_pagesize_flash_info_63006 pagesize flash_info 0 63006 NULL nohasharray
174575 +enable_so_print_hex_dump_fndecl_63006 print_hex_dump fndecl 7-4-5 63006 &enable_so_pagesize_flash_info_63006
174576 +enable_so_cache_size_raw_regmap_63010 cache_size_raw regmap 0 63010 NULL
174577 +enable_so_get_rsb_struct_fndecl_63014 get_rsb_struct fndecl 3 63014 NULL
174578 +enable_so_vb2_dc_alloc_fndecl_63021 vb2_dc_alloc fndecl 2 63021 NULL
174579 +enable_so_packets_per_second_ua101_63022 packets_per_second ua101 0 63022 NULL
174580 +enable_so_mmio_size_controller_63024 mmio_size controller 0 63024 NULL
174581 +enable_so_hci_send_cmd_fndecl_63025 hci_send_cmd fndecl 3 63025 NULL
174582 +enable_so_gspca_coarse_grained_expo_autogain_fndecl_63033 gspca_coarse_grained_expo_autogain fndecl 4-2-3 63033 NULL
174583 +enable_so_rsi_sdio_host_intf_write_pkt_fndecl_63034 rsi_sdio_host_intf_write_pkt fndecl 3 63034 NULL
174584 +enable_so_size_align_rxrpc_connection_63035 size_align rxrpc_connection 0 63035 NULL
174585 +enable_so_display_width_vivid_dev_63040 display_width vivid_dev 0 63040 NULL
174586 +enable_so_reset_psn_fndecl_63045 reset_psn fndecl 2 63045 NULL
174587 +enable_so_ttymajor_vardecl_synclink_cs_c_63046 ttymajor vardecl_synclink_cs.c 0 63046 NULL
174588 +enable_so_len_ixgbe_tx_buffer_63047 len ixgbe_tx_buffer 0 63047 NULL
174589 +enable_so_sizeimage_deinterlace_q_data_63050 sizeimage deinterlace_q_data 0 63050 NULL
174590 +enable_so_atl1c_change_mtu_fndecl_63051 atl1c_change_mtu fndecl 2 63051 NULL
174591 +enable_so_irq_create_fwspec_mapping_fndecl_63056 irq_create_fwspec_mapping fndecl 0 63056 NULL
174592 +enable_so_p54_download_eeprom_fndecl_63057 p54_download_eeprom fndecl 4 63057 NULL
174593 +enable_so_nr_perf_branch_stack_63058 nr perf_branch_stack 0 63058 NULL nohasharray
174594 +enable_so_q0_num_vecs_bna_rx_config_63058 q0_num_vecs bna_rx_config 0 63058 &enable_so_nr_perf_branch_stack_63058
174595 +enable_so_pcibios_scan_root_fndecl_63059 pcibios_scan_root fndecl 1 63059 NULL
174596 +enable_so_read_flush_fndecl_63064 read_flush fndecl 3 63064 NULL
174597 +enable_so_if_bytes_xfs_ifork_63066 if_bytes xfs_ifork 0 63066 NULL
174598 +enable_so_writesize_onenand_chip_63069 writesize onenand_chip 0 63069 NULL
174599 +enable_so_dm_ring_size_vardecl_hv_balloon_c_63071 dm_ring_size vardecl_hv_balloon.c 0 63071 NULL
174600 +enable_so_prev_algo_r5conf_63075 prev_algo r5conf 0 63075 NULL
174601 +enable_so_start_bus_pci_mmcfg_region_63086 start_bus pci_mmcfg_region 0 63086 NULL
174602 +enable_so_width_saa7134_dev_63087 width saa7134_dev 0 63087 NULL nohasharray
174603 +enable_so_s_anchor_udf_sb_info_63087 s_anchor udf_sb_info 0 63087 &enable_so_width_saa7134_dev_63087 nohasharray
174604 +enable_so_init_labels_fndecl_63087 init_labels fndecl 2 63087 &enable_so_s_anchor_udf_sb_info_63087
174605 +enable_so_nfc_hci_execute_cmd_fndecl_63097 nfc_hci_execute_cmd fndecl 5 63097 NULL
174606 +enable_so_rd_page_count_rd_dev_63098 rd_page_count rd_dev 0 63098 NULL
174607 +enable_so_get_registry_size_bnx2x_mcast_obj_63102 get_registry_size bnx2x_mcast_obj 0 63102 NULL
174608 +enable_so_drxdap_fasi_read_block_fndecl_63113 drxdap_fasi_read_block fndecl 3 63113 NULL
174609 +enable_so_ticket_len_rxkad_key_63114 ticket_len rxkad_key 0 63114 NULL
174610 +enable_so_reiserfs_get_dentry_fndecl_63118 reiserfs_get_dentry fndecl 2 63118 NULL nohasharray
174611 +enable_so_max_recv_sge_ib_qp_cap_63118 max_recv_sge ib_qp_cap 0 63118 &enable_so_reiserfs_get_dentry_fndecl_63118
174612 +enable_so_max_cqe_ib_device_attr_63121 max_cqe ib_device_attr 0 63121 NULL
174613 +enable_so_txf_size_bdx_priv_63122 txf_size bdx_priv 0 63122 NULL
174614 +enable_so_uvc_video_decode_data_fndecl_63124 uvc_video_decode_data fndecl 4 63124 NULL
174615 +enable_so_elements_array_data_63130 elements array_data 0 63130 NULL
174616 +enable_so_in_width_sh_vou_geometry_63131 in_width sh_vou_geometry 0 63131 NULL
174617 +enable_so_prism2_sta_send_mgmt_fndecl_63135 prism2_sta_send_mgmt fndecl 5 63135 NULL
174618 +enable_so_peer_cookie_len_l2tp_session_63142 peer_cookie_len l2tp_session 0 63142 NULL
174619 +enable_so_bfad_iocmd_ioc_set_name_fndecl_63147 bfad_iocmd_ioc_set_name fndecl 0 63147 NULL
174620 +enable_so_gk104_fifo_new__fndecl_63149 gk104_fifo_new_ fndecl 4 63149 NULL
174621 +enable_so_vback_porch_videomode_63152 vback_porch videomode 0 63152 NULL
174622 +enable_so_obj_order_rbd_image_header_63156 obj_order rbd_image_header 0 63156 NULL
174623 +enable_so_reiserfs_get_blocks_direct_io_fndecl_63157 reiserfs_get_blocks_direct_io fndecl 2 63157 NULL
174624 +enable_so_length_req_que_63158 length req_que 0 63158 NULL
174625 +enable_so_inode_nilfs_dir_entry_63159 inode nilfs_dir_entry 0 63159 NULL
174626 +enable_so_dst_y_yuv_frame_info_63162 dst_y yuv_frame_info 0 63162 NULL
174627 +enable_so_get_pattern_len_ts_ops_63165 get_pattern_len ts_ops 0 63165 NULL
174628 +enable_so_nports_ahci_host_priv_63166 nports ahci_host_priv 0 63166 NULL
174629 +enable_so_word_4_rsq_entry_63169 word_4 rsq_entry 0 63169 NULL
174630 +enable_so_nla_reserve_fndecl_63171 nla_reserve fndecl 3 63171 NULL
174631 +enable_so_vma_hugecache_offset_fndecl_63172 vma_hugecache_offset fndecl 0-3 63172 NULL
174632 +enable_so___clkdev_alloc_fndecl_63173 __clkdev_alloc fndecl 1 63173 NULL
174633 +enable_so_ulist_add_fndecl_63177 ulist_add fndecl 0-2-3 63177 NULL nohasharray
174634 +enable_so_mlxsw_cmd_mbox_query_fw_fw_pages_get_fndecl_63177 mlxsw_cmd_mbox_query_fw_fw_pages_get fndecl 0 63177 &enable_so_ulist_add_fndecl_63177
174635 +enable_so_send_repeat_remove_fndecl_63179 send_repeat_remove fndecl 3 63179 NULL nohasharray
174636 +enable_so_kvm_read_guest_virt_fndecl_63179 kvm_read_guest_virt fndecl 4-2 63179 &enable_so_send_repeat_remove_fndecl_63179 nohasharray
174637 +enable_so_scsi_command_size_fndecl_63179 scsi_command_size fndecl 0 63179 &enable_so_kvm_read_guest_virt_fndecl_63179
174638 +enable_so_size_dib9000_fe_memory_map_63180 size dib9000_fe_memory_map 0 63180 NULL
174639 +enable_so_nr_to_scan_shrink_control_63181 nr_to_scan shrink_control 0 63181 NULL
174640 +enable_so_srpt_srq_size_vardecl_ib_srpt_c_63183 srpt_srq_size vardecl_ib_srpt.c 0 63183 NULL
174641 +enable_so_cache_request_fndecl_63187 cache_request fndecl 0 63187 NULL
174642 +enable_so_csums_alg_len_net_conf_63190 csums_alg_len net_conf 0 63190 NULL nohasharray
174643 +enable_so___sg_page_iter_start_fndecl_63190 __sg_page_iter_start fndecl 4 63190 &enable_so_csums_alg_len_net_conf_63190
174644 +enable_so_squashfs_xz_uncompress_fndecl_63193 squashfs_xz_uncompress fndecl 6-5 63193 NULL
174645 +enable_so_val_v4l2_ctrl_63196 val v4l2_ctrl 0 63196 NULL
174646 +enable_so___get_required_blob_size_fndecl_63199 __get_required_blob_size fndecl 0-3-2 63199 NULL
174647 +enable_so_mwl8k_add_dma_header_fndecl_63203 mwl8k_add_dma_header fndecl 3 63203 NULL
174648 +enable_so_lcd_lower_margin_atyfb_par_63209 lcd_lower_margin atyfb_par 0 63209 NULL nohasharray
174649 +enable_so_selfballoon_reserved_mb_vardecl_xen_selfballoon_c_63209 selfballoon_reserved_mb vardecl_xen-selfballoon.c 0 63209 &enable_so_lcd_lower_margin_atyfb_par_63209
174650 +enable_so_sizeimage_emmaprp_q_data_63224 sizeimage emmaprp_q_data 0 63224 NULL nohasharray
174651 +enable_so_write_flush_procfs_fndecl_63224 write_flush_procfs fndecl 3 63224 &enable_so_sizeimage_emmaprp_q_data_63224
174652 +enable_so_amdgpu_cgs_alloc_gpu_mem_fndecl_63225 amdgpu_cgs_alloc_gpu_mem fndecl 3 63225 NULL
174653 +enable_so_ufs_alloccg_block_fndecl_63239 ufs_alloccg_block fndecl 0-3 63239 NULL nohasharray
174654 +enable_so_tx_frag_failed_read_fndecl_63239 tx_frag_failed_read fndecl 3 63239 &enable_so_ufs_alloccg_block_fndecl_63239 nohasharray
174655 +enable_so_npins_intel_pinctrl_soc_data_63239 npins intel_pinctrl_soc_data 0 63239 &enable_so_tx_frag_failed_read_fndecl_63239
174656 +enable_so_mod_len_start_info_63244 mod_len start_info 0 63244 NULL
174657 +enable_so_acpi_ut_get_resource_length_fndecl_63256 acpi_ut_get_resource_length fndecl 0 63256 NULL
174658 +enable_so_ep_image_mts_desc_63258 ep_image mts_desc 0 63258 NULL
174659 +enable_so_cachefiles_daemon_write_fndecl_63260 cachefiles_daemon_write fndecl 3 63260 NULL
174660 +enable_so_pdu_write_u_fndecl_63261 pdu_write_u fndecl 3 63261 NULL nohasharray
174661 +enable_so_read_events_fndecl_63261 read_events fndecl 3 63261 &enable_so_pdu_write_u_fndecl_63261
174662 +enable_so_dvb_ca_en50221_io_write_fndecl_63262 dvb_ca_en50221_io_write fndecl 3 63262 NULL
174663 +enable_so_sch56xx_device_add_fndecl_63264 sch56xx_device_add fndecl 1 63264 NULL
174664 +enable_so__fc_frame_alloc_fndecl_63267 _fc_frame_alloc fndecl 1 63267 NULL
174665 +enable_so_rpc_malloc_fndecl_63270 rpc_malloc fndecl 2 63270 NULL
174666 +enable_so_btrfs_inc_extent_ref_fndecl_63274 btrfs_inc_extent_ref fndecl 3 63274 NULL
174667 +enable_so_sb_rsumino_xfs_sb_63283 sb_rsumino xfs_sb 0 63283 NULL nohasharray
174668 +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
174669 +enable_so_length_sctp_errhdr_63285 length sctp_errhdr 0 63285 NULL
174670 +enable_so_num_counters_ebt_replace_63286 num_counters ebt_replace 0 63286 NULL
174671 +enable_so_xprt_rdma_slot_table_entries_vardecl_transport_c_63290 xprt_rdma_slot_table_entries vardecl_transport.c 0 63290 NULL
174672 +enable_so_video_buffer_size_osd_info_63299 video_buffer_size osd_info 0 63299 NULL
174673 +enable_so_num_req_tx_rings_bnx2_63306 num_req_tx_rings bnx2 0 63306 NULL
174674 +enable_so_xfs_map_blocks_fndecl_63308 xfs_map_blocks fndecl 2 63308 NULL
174675 +enable_so_valuelen_jfs_ea_63309 valuelen jfs_ea 0 63309 NULL nohasharray
174676 +enable_so_proc_read_fndecl_63309 proc_read fndecl 3 63309 &enable_so_valuelen_jfs_ea_63309
174677 +enable_so_adv7511_rd_fndecl_63313 adv7511_rd fndecl 0 63313 NULL
174678 +enable_so_con_out_kvec_add_fndecl_63316 con_out_kvec_add fndecl 2 63316 NULL
174679 +enable_so_pkt_len_eth_fast_path_rx_reg_cqe_63328 pkt_len eth_fast_path_rx_reg_cqe 0 63328 NULL
174680 +enable_so_doorbell_start_offset_kgd2kfd_shared_resources_63332 doorbell_start_offset kgd2kfd_shared_resources 0 63332 NULL
174681 +enable_so_gf100_vm_create_fndecl_63335 gf100_vm_create fndecl 3-2 63335 NULL
174682 +enable_so_bulk_out_endpointAddress_usb_serial_port_63340 bulk_out_endpointAddress usb_serial_port 0 63340 NULL
174683 +enable_so_clipcount_out_vivid_dev_63343 clipcount_out vivid_dev 0 63343 NULL
174684 +enable_so_len_n_flags_iwl_rx_packet_63345 len_n_flags iwl_rx_packet 0 63345 NULL
174685 +enable_so_src_offset_scif_copy_work_63353 src_offset scif_copy_work 0 63353 NULL
174686 +enable_so_alloc_thread_groups_fndecl_63354 alloc_thread_groups fndecl 2 63354 NULL
174687 +enable_so_x_zoran_overlay_settings_63359 x zoran_overlay_settings 0 63359 NULL
174688 +enable_so_lbq_buf_size_rx_ring_63363 lbq_buf_size rx_ring 0 63363 NULL
174689 +enable_so_phys_mem_fst_card_info_63365 phys_mem fst_card_info 0 63365 NULL
174690 +enable_so_ascot2e_write_regs_fndecl_63369 ascot2e_write_regs fndecl 4 63369 NULL
174691 +enable_so_start_ms350_cam_fndecl_63372 start_ms350_cam fndecl 0 63372 NULL
174692 +enable_so_alloc_irq_domain_ops_63379 alloc irq_domain_ops 0 63379 NULL
174693 +enable_so_max_lun_rts51x_chip_63381 max_lun rts51x_chip 0 63381 NULL
174694 +enable_so_data_len_ubifs_inode_63396 data_len ubifs_inode 0 63396 NULL
174695 +enable_so_buflen_audit_rule_data_63397 buflen audit_rule_data 0 63397 NULL nohasharray
174696 +enable_so_h_vlan_encapsulated_proto_vlan_ethhdr_63397 h_vlan_encapsulated_proto vlan_ethhdr 0 63397 &enable_so_buflen_audit_rule_data_63397 nohasharray
174697 +enable_so_hidp_send_ctrl_message_fndecl_63397 hidp_send_ctrl_message fndecl 4 63397 &enable_so_h_vlan_encapsulated_proto_vlan_ethhdr_63397
174698 +enable_so_efi_memdesc_size_vardecl_runtime_map_c_63399 efi_memdesc_size vardecl_runtime-map.c 0 63399 NULL nohasharray
174699 +enable_so_max_cqes_per_cq_iwch_rnic_attributes_63399 max_cqes_per_cq iwch_rnic_attributes 0 63399 &enable_so_efi_memdesc_size_vardecl_runtime_map_c_63399
174700 +enable_so_e820_end_pfn_fndecl_63402 e820_end_pfn fndecl 0-1 63402 NULL nohasharray
174701 +enable_so_bnx2_find_max_ring_fndecl_63402 bnx2_find_max_ring fndecl 0-2 63402 &enable_so_e820_end_pfn_fndecl_63402
174702 +enable_so_flt_chap_size_ql82xx_hw_data_63406 flt_chap_size ql82xx_hw_data 0 63406 NULL
174703 +enable_so__drbd_no_send_page_fndecl_63409 _drbd_no_send_page fndecl 4 63409 NULL
174704 +enable_so_lib80211_wep_decrypt_fndecl_63419 lib80211_wep_decrypt fndecl 2 63419 NULL
174705 +enable_so_write_midi_fndecl_63421 write_midi fndecl 0-3 63421 NULL
174706 +enable_so_xfs_buf_set_empty_fndecl_63425 xfs_buf_set_empty fndecl 2 63425 NULL
174707 +enable_so_i2400m_tx_fndecl_63427 i2400m_tx fndecl 3-4 63427 NULL
174708 +enable_so_brcmf_sdio_download_firmware_fndecl_63429 brcmf_sdio_download_firmware fndecl 4 63429 NULL nohasharray
174709 +enable_so___alloc_alien_cache_fndecl_63429 __alloc_alien_cache fndecl 2 63429 &enable_so_brcmf_sdio_download_firmware_fndecl_63429
174710 +enable_so_tas571x_register_size_fndecl_63430 tas571x_register_size fndecl 0 63430 NULL nohasharray
174711 +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
174712 +enable_so_ocfs2_replace_clusters_fndecl_63430 ocfs2_replace_clusters fndecl 5-3 63430 &enable_so_ad_sd_read_reg_raw_fndecl_63430
174713 +enable_so_snd_rme32_playback_copy_fndecl_63431 snd_rme32_playback_copy fndecl 5 63431 NULL
174714 +enable_so_mem_len_bfa_mem_kva_s_63432 mem_len bfa_mem_kva_s 0 63432 NULL
174715 +enable_so_resp_sas_sf_m_pg_fndecl_63437 resp_sas_sf_m_pg fndecl 0 63437 NULL
174716 +enable_so_check_bandwidth_hc_driver_63438 check_bandwidth hc_driver 0 63438 NULL
174717 +enable_so_m_max_file_size_ceph_mdsmap_63449 m_max_file_size ceph_mdsmap 0 63449 NULL
174718 +enable_so_max_send_wr_ib_qp_cap_63450 max_send_wr ib_qp_cap 0 63450 NULL
174719 +enable_so_vb2_create_framevec_fndecl_63451 vb2_create_framevec fndecl 1-2 63451 NULL
174720 +enable_so_cmd_status_netdev_desc_63452 cmd_status netdev_desc 0 63452 NULL
174721 +enable_so_fuse_send_read_fndecl_63454 fuse_send_read fndecl 4 63454 NULL
174722 +enable_so_sysv_raw_inode_fndecl_63458 sysv_raw_inode fndecl 2 63458 NULL
174723 +enable_so_c_width_g2d_frame_63459 c_width g2d_frame 0 63459 NULL
174724 +enable_so_btrfs_drop_extent_cache_fndecl_63461 btrfs_drop_extent_cache fndecl 3-2 63461 NULL
174725 +enable_so_skb_read_pdu_bhs_fndecl_63463 skb_read_pdu_bhs fndecl 0 63463 NULL
174726 +enable_so_biter_fsl_edma_hw_tcd_63464 biter fsl_edma_hw_tcd 0 63464 NULL
174727 +enable_so_count_ceph_inode_xattrs_info_63465 count ceph_inode_xattrs_info 0 63465 NULL
174728 +enable_so_rcvhdrq_size_qib_ctxtdata_63468 rcvhdrq_size qib_ctxtdata 0 63468 NULL
174729 +enable_so_srq_lmt_max_sge_ocrdma_query_srq_rsp_63477 srq_lmt_max_sge ocrdma_query_srq_rsp 0 63477 NULL
174730 +enable_so___bm_find_next_fndecl_63479 __bm_find_next fndecl 0-2 63479 NULL
174731 +enable_so_mlx5_ib_read_user_wqe_fndecl_63480 mlx5_ib_read_user_wqe fndecl 3-5 63480 NULL nohasharray
174732 +enable_so_sctp_setsockopt_active_key_fndecl_63480 sctp_setsockopt_active_key fndecl 3 63480 &enable_so_mlx5_ib_read_user_wqe_fndecl_63480
174733 +enable_so_gigaset_initcs_fndecl_63482 gigaset_initcs fndecl 2 63482 NULL nohasharray
174734 +enable_so_length_dw_amdgpu_cs_chunk_63482 length_dw amdgpu_cs_chunk 0 63482 &enable_so_gigaset_initcs_fndecl_63482
174735 +enable_so_width_v4l2_pix_format_63491 width v4l2_pix_format 0 63491 NULL
174736 +enable_so_sb_spino_align_xfs_sb_63492 sb_spino_align xfs_sb 0 63492 NULL
174737 +enable_so_find_last_bit_fndecl_63495 find_last_bit fndecl 0-2 63495 NULL
174738 +enable_so___pcpu_size_to_slot_fndecl_63500 __pcpu_size_to_slot fndecl 0 63500 NULL
174739 +enable_so_read_data_offset_smb_version_operations_63502 read_data_offset smb_version_operations 0 63502 NULL
174740 +enable_so_ufs_nfs_get_inode_fndecl_63508 ufs_nfs_get_inode fndecl 2 63508 NULL
174741 +enable_so_xfs_rtfree_range_fndecl_63511 xfs_rtfree_range fndecl 3-4 63511 NULL
174742 +enable_so_bNrChannels_uac_format_type_i_discrete_descriptor_63512 bNrChannels uac_format_type_i_discrete_descriptor 0 63512 NULL
174743 +enable_so_num_usb2_ports_xhci_hcd_63514 num_usb2_ports xhci_hcd 0 63514 NULL
174744 +enable_so_rx_defrag_need_decrypt_read_fndecl_63518 rx_defrag_need_decrypt_read fndecl 3 63518 NULL
174745 +enable_so_wIELength_uwb_rc_cmd_set_drp_ie_63528 wIELength uwb_rc_cmd_set_drp_ie 0 63528 NULL
174746 +enable_so_wq_sig_mlx5_ib_qp_63533 wq_sig mlx5_ib_qp 0 63533 NULL nohasharray
174747 +enable_so_sel_read_perm_fndecl_63533 sel_read_perm fndecl 3 63533 &enable_so_wq_sig_mlx5_ib_qp_63533
174748 +enable_so_maxvram_video_board_63535 maxvram video_board 0 63535 NULL
174749 +enable_so_num_wsm_ether_type_filter_hdr_63536 num wsm_ether_type_filter_hdr 0 63536 NULL
174750 +enable_so_num_clips_drm_mode_fb_dirty_cmd_63540 num_clips drm_mode_fb_dirty_cmd 0 63540 NULL
174751 +enable_so___tty_buffer_request_room_fndecl_63543 __tty_buffer_request_room fndecl 0-2 63543 NULL
174752 +enable_so_snd_pcm_hw_param_value_max_fndecl_63547 snd_pcm_hw_param_value_max fndecl 0 63547 NULL
174753 +enable_so_tlv_data_size_user_element_63549 tlv_data_size user_element 0 63549 NULL
174754 +enable_so_ath10k_htc_process_trailer_fndecl_63552 ath10k_htc_process_trailer fndecl 3 63552 NULL
174755 +enable_so_word_size_ixgbe_eeprom_info_63556 word_size ixgbe_eeprom_info 0 63556 NULL
174756 +enable_so_multi_rmw_idx_wmi_63557 multi_rmw_idx wmi 0 63557 NULL
174757 +enable_so_tcp_sync_mss_fndecl_63561 tcp_sync_mss fndecl 0-2 63561 NULL
174758 +enable_so_gfn_to_hva_fndecl_63570 gfn_to_hva fndecl 2 63570 NULL
174759 +enable_so_ulong_read_file_fndecl_63571 ulong_read_file fndecl 3 63571 NULL nohasharray
174760 +enable_so_sctp_setsockopt_del_key_fndecl_63571 sctp_setsockopt_del_key fndecl 3 63571 &enable_so_ulong_read_file_fndecl_63571
174761 +enable_so_unmap_granularity_scsi_disk_63574 unmap_granularity scsi_disk 0 63574 NULL
174762 +enable_so_xfs_vm_readpages_fndecl_63575 xfs_vm_readpages fndecl 4 63575 NULL
174763 +enable_so_bnep_sock_create_fndecl_63577 bnep_sock_create fndecl 3 63577 NULL
174764 +enable_so_num_ethernet_queues_bnx2x_63578 num_ethernet_queues bnx2x 0 63578 NULL
174765 +enable_so_xfs_vm_write_failed_fndecl_63582 xfs_vm_write_failed fndecl 3 63582 NULL
174766 +enable_so__mlx4_set_path_fndecl_63583 _mlx4_set_path fndecl 7 63583 NULL
174767 +enable_so_ide_raw_taskfile_fndecl_63584 ide_raw_taskfile fndecl 4 63584 NULL
174768 +enable_so_cit_get_packet_size_fndecl_63585 cit_get_packet_size fndecl 0 63585 NULL
174769 +enable_so_qp_num_ib_cm_req_param_63588 qp_num ib_cm_req_param 0 63588 NULL
174770 +enable_so_width_console_font_63590 width console_font 0 63590 NULL
174771 +enable_so_fbmem_viafb_par_63594 fbmem viafb_par 0 63594 NULL nohasharray
174772 +enable_so_ri_cno_nilfs_recovery_info_63594 ri_cno nilfs_recovery_info 0 63594 &enable_so_fbmem_viafb_par_63594
174773 +enable_so_srp_map_data_fndecl_63596 srp_map_data fndecl 0 63596 NULL
174774 +enable_so_size_dmaengine_unmap_pool_63599 size dmaengine_unmap_pool 0 63599 NULL nohasharray
174775 +enable_so_dbFree_fndecl_63599 dbFree fndecl 3-2 63599 &enable_so_size_dmaengine_unmap_pool_63599
174776 +enable_so_snd_pcm_plug_alloc_fndecl_63600 snd_pcm_plug_alloc fndecl 2 63600 NULL
174777 +enable_so_offset_pci_sriov_63604 offset pci_sriov 0 63604 NULL
174778 +enable_so_zone_start_pfn_zone_63616 zone_start_pfn zone 0 63616 NULL
174779 +enable_so_rx_mtu_p54_common_63619 rx_mtu p54_common 0 63619 NULL
174780 +enable_so_w_nr_rds_iw_work_ring_63620 w_nr rds_iw_work_ring 0 63620 NULL
174781 +enable_so_buf_len_mwifiex_sdio_mpa_rx_63636 buf_len mwifiex_sdio_mpa_rx 0 63636 NULL nohasharray
174782 +enable_so_find_run_fndecl_63636 find_run fndecl 0 63636 &enable_so_buf_len_mwifiex_sdio_mpa_rx_63636
174783 +enable_so_be_v_offset_pnfs_block_extent_63637 be_v_offset pnfs_block_extent 0 63637 NULL
174784 +enable_so_o_height_fimc_frame_63639 o_height fimc_frame 0 63639 NULL nohasharray
174785 +enable_so_snic_queue_wq_desc_fndecl_63639 snic_queue_wq_desc fndecl 3 63639 &enable_so_o_height_fimc_frame_63639
174786 +enable_so_mlxsw_pci_fw_area_init_fndecl_63657 mlxsw_pci_fw_area_init fndecl 3 63657 NULL
174787 +enable_so_id_nvdimm_63666 id nvdimm 0 63666 NULL
174788 +enable_so_msnd_fifo_read_fndecl_63669 msnd_fifo_read fndecl 0 63669 NULL
174789 +enable_so_r_len_qib_qp_63672 r_len qib_qp 0 63672 NULL
174790 +enable_so_nr_map_e820map_63674 nr_map e820map 0 63674 NULL
174791 +enable_so_min_vblank_mt9v032_model_data_63675 min_vblank mt9v032_model_data 0 63675 NULL
174792 +enable_so_nfs_writepage_setup_fndecl_63682 nfs_writepage_setup fndecl 3-4 63682 NULL
174793 +enable_so_height_ssd1307fb_par_63688 height ssd1307fb_par 0 63688 NULL nohasharray
174794 +enable_so_alloc_gen8_temp_bitmaps_fndecl_63688 alloc_gen8_temp_bitmaps fndecl 3 63688 &enable_so_height_ssd1307fb_par_63688
174795 +enable_so_pci_get_device_func_fndecl_63689 pci_get_device_func fndecl 2 63689 NULL nohasharray
174796 +enable_so_fanout_set_data_cbpf_fndecl_63689 fanout_set_data_cbpf fndecl 3 63689 &enable_so_pci_get_device_func_fndecl_63689
174797 +enable_so_nr_pages_msc_63690 nr_pages msc 0 63690 NULL
174798 +enable_so_cell_error_with_code_fndecl_63693 cell_error_with_code fndecl 3 63693 NULL
174799 +enable_so_obj_size_proto_63697 obj_size proto 0 63697 NULL nohasharray
174800 +enable_so___iio_add_chan_devattr_fndecl_63697 __iio_add_chan_devattr fndecl 0 63697 &enable_so_obj_size_proto_63697
174801 +enable_so_gsm_data_alloc_fndecl_63702 gsm_data_alloc fndecl 3 63702 NULL
174802 +enable_so_spr_wm_latency_write_fndecl_63706 spr_wm_latency_write fndecl 3 63706 NULL
174803 +enable_so_real_trim_memory_fndecl_63709 real_trim_memory fndecl 1-2 63709 NULL
174804 +enable_so_owner_snd_ctl_elem_info_63711 owner snd_ctl_elem_info 0 63711 NULL
174805 +enable_so_index_dtsplit_63712 index dtsplit 0 63712 NULL nohasharray
174806 +enable_so_xfs_alloc_compute_aligned_fndecl_63712 xfs_alloc_compute_aligned fndecl 3-2 63712 &enable_so_index_dtsplit_63712
174807 +enable_so_kernel_recvmsg_fndecl_63713 kernel_recvmsg fndecl 0-5-4 63713 NULL
174808 +enable_so_omfs_readpages_fndecl_63721 omfs_readpages fndecl 4 63721 NULL
174809 +enable_so_osd_vis_h_yuv_playback_info_63734 osd_vis_h yuv_playback_info 0 63734 NULL
174810 +enable_so_pci_hotplug_mem_size_vardecl_63735 pci_hotplug_mem_size vardecl 0 63735 NULL
174811 +enable_so_get_mergeable_buf_len_fndecl_63736 get_mergeable_buf_len fndecl 0 63736 NULL
174812 +enable_so___simple_xattr_set_fndecl_63737 __simple_xattr_set fndecl 4 63737 NULL
174813 +enable_so_print_section_fndecl_63738 print_section fndecl 3 63738 NULL
174814 +enable_so___register_chrdev_region_fndecl_63741 __register_chrdev_region fndecl 1 63741 NULL
174815 +enable_so_len_ath10k_hif_sg_item_63747 len ath10k_hif_sg_item 0 63747 NULL
174816 +enable_so_size_vb2_dc_buf_63751 size vb2_dc_buf 0 63751 NULL
174817 +enable_so_target_size_scsi_transport_template_63753 target_size scsi_transport_template 0 63753 NULL
174818 +enable_so_smtc_map_smem_fndecl_63754 smtc_map_smem fndecl 3 63754 NULL
174819 +enable_so_spidev_sync_read_fndecl_63757 spidev_sync_read fndecl 0 63757 NULL
174820 +enable_so_mp_irqdomain_get_attr_fndecl_63759 mp_irqdomain_get_attr fndecl 1 63759 NULL nohasharray
174821 +enable_so_pool_allocate_fndecl_63759 pool_allocate fndecl 3 63759 &enable_so_mp_irqdomain_get_attr_fndecl_63759
174822 +enable_so_ath6kl_wmi_remain_on_chnl_cmd_fndecl_63760 ath6kl_wmi_remain_on_chnl_cmd fndecl 2 63760 NULL nohasharray
174823 +enable_so_msix_count_skd_device_63760 msix_count skd_device 0 63760 &enable_so_ath6kl_wmi_remain_on_chnl_cmd_fndecl_63760
174824 +enable_so_xfs_qm_dqalloc_fndecl_63762 xfs_qm_dqalloc fndecl 5 63762 NULL nohasharray
174825 +enable_so_index_isi_board_63762 index isi_board 0 63762 &enable_so_xfs_qm_dqalloc_fndecl_63762
174826 +enable_so___hwahc_op_set_gtk_fndecl_63781 __hwahc_op_set_gtk fndecl 4 63781 NULL
174827 +enable_so_items_priv_size_vxge_hw_mempool_63785 items_priv_size vxge_hw_mempool 0 63785 NULL
174828 +enable_so_num_slices_myri10ge_priv_63789 num_slices myri10ge_priv 0 63789 NULL
174829 +enable_so_order_pmcraid_sglist_63792 order pmcraid_sglist 0 63792 NULL nohasharray
174830 +enable_so_orinoco_mic_fndecl_63792 orinoco_mic fndecl 7 63792 &enable_so_order_pmcraid_sglist_63792 nohasharray
174831 +enable_so__scif_recv_fndecl_63792 _scif_recv fndecl 0-3 63792 &enable_so_orinoco_mic_fndecl_63792
174832 +enable_so_modem_write_cmd_fndecl_63794 modem_write_cmd fndecl 3 63794 NULL nohasharray
174833 +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
174834 +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
174835 +enable_so_ioaccel_maxsg_ctlr_info_63798 ioaccel_maxsg ctlr_info 0 63798 NULL
174836 +enable_so_read_prph_iwl_trans_ops_63799 read_prph iwl_trans_ops 0 63799 NULL
174837 +enable_so_nouveau_ttm_tt_create_fndecl_63801 nouveau_ttm_tt_create fndecl 2 63801 NULL nohasharray
174838 +enable_so_nbds_max_vardecl_nbd_c_63801 nbds_max vardecl_nbd.c 0 63801 &enable_so_nouveau_ttm_tt_create_fndecl_63801
174839 +enable_so_acpi_ut_create_buffer_object_fndecl_63805 acpi_ut_create_buffer_object fndecl 1 63805 NULL
174840 +enable_so_bfad_iocmd_fruvpd_read_fndecl_63808 bfad_iocmd_fruvpd_read fndecl 0 63808 NULL
174841 +enable_so_ncp_add_mem_fndecl_63822 ncp_add_mem fndecl 3 63822 NULL nohasharray
174842 +enable_so_named_prepare_buf_fndecl_63822 named_prepare_buf fndecl 3 63822 &enable_so_ncp_add_mem_fndecl_63822
174843 +enable_so_len_extent_map_63823 len extent_map 0 63823 NULL
174844 +enable_so_jffs2_do_link_fndecl_63827 jffs2_do_link fndecl 6 63827 NULL
174845 +enable_so_compat_sys_sendfile_fndecl_63828 compat_sys_sendfile fndecl 4 63828 NULL
174846 +enable_so_alt_mem_k_boot_params_63829 alt_mem_k boot_params 0 63829 NULL
174847 +enable_so_rpipe_aim_fndecl_63832 rpipe_aim fndecl 0 63832 NULL nohasharray
174848 +enable_so_bfad_iocmd_port_get_attr_fndecl_63832 bfad_iocmd_port_get_attr fndecl 0 63832 &enable_so_rpipe_aim_fndecl_63832
174849 +enable_so_p_end_nilfs_period_63833 p_end nilfs_period 0 63833 NULL
174850 +enable_so_iwl_mvm_scan_size_fndecl_63834 iwl_mvm_scan_size fndecl 0 63834 NULL
174851 +enable_so_error_elp_while_tx_exch_read_fndecl_63835 error_elp_while_tx_exch_read fndecl 3 63835 NULL
174852 +enable_so_flags_flat_binder_object_63836 flags flat_binder_object 0 63836 NULL
174853 +enable_so_rx_ring_order_vardecl_main_c_63838 rx_ring_order vardecl_main.c 0 63838 NULL
174854 +enable_so_ext4_sync_file_fndecl_63847 ext4_sync_file fndecl 2-3 63847 NULL
174855 +enable_so_yskip_mt9t031_63853 yskip mt9t031 0 63853 NULL
174856 +enable_so_rx_data_size_sky2_port_63855 rx_data_size sky2_port 0 63855 NULL nohasharray
174857 +enable_so_submit_inquiry_fndecl_63855 submit_inquiry fndecl 3 63855 &enable_so_rx_data_size_sky2_port_63855
174858 +enable_so_addrlen_at25_data_63857 addrlen at25_data 0 63857 NULL
174859 +enable_so_da_height_logfs_je_anchor_63858 da_height logfs_je_anchor 0 63858 NULL
174860 +enable_so_out_phase_peeked_usb_stream_kernel_63871 out_phase_peeked usb_stream_kernel 0 63871 NULL
174861 +enable_so_ssid_len_ieee80211_if_ibss_63872 ssid_len ieee80211_if_ibss 0 63872 NULL nohasharray
174862 +enable_so_Read_hfc16_stable_fndecl_63872 Read_hfc16_stable fndecl 0 63872 &enable_so_ssid_len_ieee80211_if_ibss_63872
174863 +enable_so_xlvbd_alloc_gendisk_fndecl_63874 xlvbd_alloc_gendisk fndecl 4-5 63874 NULL
174864 +enable_so_di_size_xfs_dinode_63875 di_size xfs_dinode 0 63875 NULL
174865 +enable_so_srqn_mlx5_cqe64_63883 srqn mlx5_cqe64 0 63883 NULL
174866 +enable_so___btrfs_unlink_inode_fndecl_63889 __btrfs_unlink_inode fndecl 6 63889 NULL
174867 +enable_so_dw_dma_cyclic_prep_fndecl_63890 dw_dma_cyclic_prep fndecl 4-3 63890 NULL
174868 +enable_so_lmWriteRecord_fndecl_63896 lmWriteRecord fndecl 0 63896 NULL
174869 +enable_so_ext4_do_update_inode_fndecl_63900 ext4_do_update_inode fndecl 0 63900 NULL
174870 +enable_so_tx_cnt_fritz_bcs_63901 tx_cnt fritz_bcs 0 63901 NULL
174871 +enable_so_mmc_align_data_size_fndecl_63906 mmc_align_data_size fndecl 0-2 63906 NULL nohasharray
174872 +enable_so_fraglen_encryptor_desc_63906 fraglen encryptor_desc 0 63906 &enable_so_mmc_align_data_size_fndecl_63906
174873 +enable_so_len_sock_fprog_kern_63914 len sock_fprog_kern 0 63914 NULL
174874 +enable_so_read_file_base_eeprom_fndecl_63915 read_file_base_eeprom fndecl 3 63915 NULL nohasharray
174875 +enable_so_fw_stats_len_wl1271_stats_63915 fw_stats_len wl1271_stats 0 63915 &enable_so_read_file_base_eeprom_fndecl_63915
174876 +enable_so_iwl_mvm_send_cmd_fndecl_63918 iwl_mvm_send_cmd fndecl 0 63918 NULL
174877 +enable_so_new_data_offset_md_rdev_63919 new_data_offset md_rdev 0 63919 NULL nohasharray
174878 +enable_so_align_nft_set_ext_type_63919 align nft_set_ext_type 0 63919 &enable_so_new_data_offset_md_rdev_63919
174879 +enable_so_nilfs_ifile_read_fndecl_63921 nilfs_ifile_read fndecl 3 63921 NULL
174880 +enable_so_start_btrfs_ioctl_defrag_range_args_63924 start btrfs_ioctl_defrag_range_args 0 63924 NULL
174881 +enable_so_efx_change_mtu_fndecl_63926 efx_change_mtu fndecl 2 63926 NULL
174882 +enable_so_cqm_max_rmid_vardecl_perf_event_intel_cqm_c_63930 cqm_max_rmid vardecl_perf_event_intel_cqm.c 0 63930 NULL
174883 +enable_so_dentry_needs_remove_privs_fndecl_63934 dentry_needs_remove_privs fndecl 0 63934 NULL
174884 +enable_so_ro_maxpages_rpcrdma_memreg_ops_63937 ro_maxpages rpcrdma_memreg_ops 0 63937 NULL nohasharray
174885 +enable_so_filemark_cnt_osst_tape_63937 filemark_cnt osst_tape 0 63937 &enable_so_ro_maxpages_rpcrdma_memreg_ops_63937
174886 +enable_so_Xfacs_acpi_table_fadt_63943 Xfacs acpi_table_fadt 0 63943 NULL
174887 +enable_so_replen_compound_hdr_63944 replen compound_hdr 0 63944 NULL
174888 +enable_so_get_znodes_to_commit_fndecl_63946 get_znodes_to_commit fndecl 0 63946 NULL nohasharray
174889 +enable_so_hdr_dwords_qib_verbs_txreq_63946 hdr_dwords qib_verbs_txreq 0 63946 &enable_so_get_znodes_to_commit_fndecl_63946
174890 +enable_so_map_szl_cyttsp4_sysinfo_data_63948 map_szl cyttsp4_sysinfo_data 0 63948 NULL
174891 +enable_so_pcfg_ofs_cyttsp4_sysinfo_ofs_63956 pcfg_ofs cyttsp4_sysinfo_ofs 0 63956 NULL
174892 +enable_so_oprofilefs_str_to_user_fndecl_63957 oprofilefs_str_to_user fndecl 3 63957 NULL
174893 +enable_so_pvr2_send_request_fndecl_63959 pvr2_send_request fndecl 3-5 63959 NULL nohasharray
174894 +enable_so_add_delayed_ref_head_fndecl_63959 add_delayed_ref_head fndecl 5 63959 &enable_so_pvr2_send_request_fndecl_63959
174895 +enable_so_write_file_beacon_fndecl_63962 write_file_beacon fndecl 3 63962 NULL
174896 +enable_so_psb_gtt_alloc_range_fndecl_63966 psb_gtt_alloc_range fndecl 2-5 63966 NULL
174897 +enable_so_len_wm_coeff_ctl_63967 len wm_coeff_ctl 0 63967 NULL
174898 +enable_so_pla_ocp_read_fndecl_63976 pla_ocp_read fndecl 3 63976 NULL
174899 +enable_so_bt_ep_bcm5974_config_63978 bt_ep bcm5974_config 0 63978 NULL
174900 +enable_so_pos_pagemapread_63988 pos pagemapread 0 63988 NULL
174901 +enable_so_befs_iget_fndecl_63989 befs_iget fndecl 2 63989 NULL
174902 +enable_so_max_lba_sm_ftl_63992 max_lba sm_ftl 0 63992 NULL
174903 +enable_so_ihandlen_compat_xfs_fsop_handlereq_63994 ihandlen compat_xfs_fsop_handlereq 0 63994 NULL
174904 +enable_so_subctxt_qib_filedata_63995 subctxt qib_filedata 0 63995 NULL
174905 +enable_so_vram_start_amdgpu_mc_63998 vram_start amdgpu_mc 0 63998 NULL
174906 +enable_so_iscsi_conn_send_pdu_fndecl_64002 iscsi_conn_send_pdu fndecl 4 64002 NULL
174907 +enable_so_pvr2_send_request_ex_fndecl_64004 pvr2_send_request_ex fndecl 5-7 64004 NULL
174908 +enable_so_field_count_audit_krule_64007 field_count audit_krule 0 64007 NULL
174909 +enable_so_rx_ring_size_fe_priv_64012 rx_ring_size fe_priv 0 64012 NULL
174910 +enable_so_wBlocks_usb_rpipe_descriptor_64014 wBlocks usb_rpipe_descriptor 0 64014 NULL nohasharray
174911 +enable_so_isku_sysfs_read_info_fndecl_64014 isku_sysfs_read_info fndecl 6 64014 &enable_so_wBlocks_usb_rpipe_descriptor_64014
174912 +enable_so_ext4_orphan_get_fndecl_64015 ext4_orphan_get fndecl 2 64015 NULL nohasharray
174913 +enable_so_snd_midi_event_decode_fndecl_64015 snd_midi_event_decode fndecl 0 64015 &enable_so_ext4_orphan_get_fndecl_64015
174914 +enable_so_space_snd_ctl_elem_list_64016 space snd_ctl_elem_list 0 64016 NULL
174915 +enable_so_n_sectors_flash_info_64017 n_sectors flash_info 0 64017 NULL
174916 +enable_so_dma_drain_size_request_queue_64023 dma_drain_size request_queue 0 64023 NULL
174917 +enable_so_extAlloc_fndecl_64026 extAlloc fndecl 3 64026 NULL
174918 +enable_so_fw_device_op_compat_ioctl_fndecl_64039 fw_device_op_compat_ioctl fndecl 2 64039 NULL
174919 +enable_so_kxtj9_i2c_read_fndecl_64041 kxtj9_i2c_read fndecl 4 64041 NULL
174920 +enable_so_ieee80211_request_ibss_scan_fndecl_64043 ieee80211_request_ibss_scan fndecl 3 64043 NULL
174921 +enable_so_xdr_partial_copy_from_skb_fndecl_64046 xdr_partial_copy_from_skb fndecl 0 64046 NULL nohasharray
174922 +enable_so_drm_ioctl_fndecl_64046 drm_ioctl fndecl 2 64046 &enable_so_xdr_partial_copy_from_skb_fndecl_64046
174923 +enable_so_devs_increment_btrfs_raid_attr_64050 devs_increment btrfs_raid_attr 0 64050 NULL
174924 +enable_so_koneplus_sysfs_read_fndecl_64059 koneplus_sysfs_read fndecl 6 64059 NULL
174925 +enable_so_claim_region_fndecl_64076 claim_region fndecl 3-2 64076 NULL
174926 +enable_so_link_duplex_pch_gbe_mac_info_64077 link_duplex pch_gbe_mac_info 0 64077 NULL
174927 +enable_so_dma_size_cx88_audio_dev_64082 dma_size cx88_audio_dev 0 64082 NULL
174928 +enable_so_xfs_iomap_eof_prealloc_initial_size_fndecl_64085 xfs_iomap_eof_prealloc_initial_size fndecl 3 64085 NULL
174929 +enable_so_si476x_radio_read_rsq_blob_fndecl_64088 si476x_radio_read_rsq_blob fndecl 3 64088 NULL
174930 +enable_so_size_mxr_block_64090 size mxr_block 0 64090 NULL
174931 +enable_so_set_arg_fndecl_64091 set_arg fndecl 3 64091 NULL
174932 +enable_so_s_end_bfs_super_block_64092 s_end bfs_super_block 0 64092 NULL
174933 +enable_so_act_len_htc_packet_64101 act_len htc_packet 0 64101 NULL
174934 +enable_so_cxgbi_hbas_add_fndecl_64102 cxgbi_hbas_add fndecl 3 64102 NULL
174935 +enable_so_rx_mini_pending_ethtool_ringparam_64104 rx_mini_pending ethtool_ringparam 0 64104 NULL
174936 +enable_so_ubiblock_major_vardecl_block_c_64105 ubiblock_major vardecl_block.c 0 64105 NULL
174937 +enable_so_j_first_unflushed_offset_reiserfs_journal_header_64107 j_first_unflushed_offset reiserfs_journal_header 0 64107 NULL
174938 +enable_so_ncells_nvmem_config_64108 ncells nvmem_config 0 64108 NULL nohasharray
174939 +enable_so_nvme_trans_unit_serial_page_fndecl_64108 nvme_trans_unit_serial_page fndecl 4 64108 &enable_so_ncells_nvmem_config_64108
174940 +enable_so_lmac_count_bgx_64109 lmac_count bgx 0 64109 NULL
174941 +enable_so_fc_copy_buffer_to_sglist_fndecl_64115 fc_copy_buffer_to_sglist fndecl 0-2 64115 NULL
174942 +enable_so_compat_write_data_parport_operations_64123 compat_write_data parport_operations 0 64123 NULL
174943 +enable_so_of_property_count_strings_fndecl_64124 of_property_count_strings fndecl 0 64124 NULL
174944 +enable_so_tx_shift_at91_devtype_data_64126 tx_shift at91_devtype_data 0 64126 NULL
174945 +enable_so_gigaset_fill_inbuf_fndecl_64130 gigaset_fill_inbuf fndecl 3 64130 NULL
174946 +enable_so_gru_alloc_locked_gts_fndecl_64132 gru_alloc_locked_gts fndecl 1 64132 NULL nohasharray
174947 +enable_so_test_walk_mm_walk_64132 test_walk mm_walk 0 64132 &enable_so_gru_alloc_locked_gts_fndecl_64132
174948 +enable_so_rds_create_fndecl_64136 rds_create fndecl 3 64136 NULL
174949 +enable_so_alx_change_mtu_fndecl_64137 alx_change_mtu fndecl 2 64137 NULL
174950 +enable_so_ieee80211_tdls_mgmt_teardown_fndecl_64138 ieee80211_tdls_mgmt_teardown fndecl 10 64138 NULL
174951 +enable_so_hd_end_request_fndecl_64139 hd_end_request fndecl 2-1 64139 NULL
174952 +enable_so_sl_tclass_flowlabel_mlx4_av_64141 sl_tclass_flowlabel mlx4_av 0 64141 NULL
174953 +enable_so_pskb_expand_head_fndecl_64146 pskb_expand_head fndecl 2 64146 NULL
174954 +enable_so_free_bootmem_fndecl_64150 free_bootmem fndecl 2-1 64150 NULL
174955 +enable_so_xpc_kmalloc_cacheline_aligned_fndecl_64156 xpc_kmalloc_cacheline_aligned fndecl 1 64156 NULL
174956 +enable_so_btrfs_readpage_end_io_hook_fndecl_64160 btrfs_readpage_end_io_hook fndecl 4-5 64160 NULL
174957 +enable_so_drbd_header_size_fndecl_64163 drbd_header_size fndecl 0 64163 NULL
174958 +enable_so_max_gs_mthca_wq_64165 max_gs mthca_wq 0 64165 NULL
174959 +enable_so_ext4_get_stripe_size_fndecl_64170 ext4_get_stripe_size fndecl 0 64170 NULL
174960 +enable_so_sctp_getsockopt_maxburst_fndecl_64174 sctp_getsockopt_maxburst fndecl 2-0 64174 NULL
174961 +enable_so_max_fcoe_conn_cnic_dev_64181 max_fcoe_conn cnic_dev 0 64181 NULL
174962 +enable_so_nfcid1_len_nfc_target_64182 nfcid1_len nfc_target 0 64182 NULL
174963 +enable_so_lba_to_arena_fndecl_64185 lba_to_arena fndecl 0 64185 NULL
174964 +enable_so_phys_pcm_format_data_64188 phys pcm_format_data 0 64188 NULL nohasharray
174965 +enable_so_min_pll_op_freq_hz_smiapp_pll_limits_64188 min_pll_op_freq_hz smiapp_pll_limits 0 64188 &enable_so_phys_pcm_format_data_64188
174966 +enable_so_bi_error_bio_64189 bi_error bio 0 64189 NULL
174967 +enable_so_out___kfifo_64192 out __kfifo 0 64192 NULL
174968 +enable_so_sys_sethostname_fndecl_64193 sys_sethostname fndecl 2 64193 NULL
174969 +enable_so_bulk_out_endpointAddr_usb_ftdi_64197 bulk_out_endpointAddr usb_ftdi 0 64197 NULL
174970 +enable_so_contact_threshold_mms114_platform_data_64198 contact_threshold mms114_platform_data 0 64198 NULL
174971 +enable_so_pcibios_scan_specific_bus_fndecl_64203 pcibios_scan_specific_bus fndecl 1 64203 NULL
174972 +enable_so_ath6kl_wmi_pmparams_cmd_fndecl_64204 ath6kl_wmi_pmparams_cmd fndecl 2 64204 NULL
174973 +enable_so_st_set_options_fndecl_64214 st_set_options fndecl 2 64214 NULL
174974 +enable_so_mlx5e_change_mtu_fndecl_64217 mlx5e_change_mtu fndecl 2 64217 NULL
174975 +enable_so_outbuf_dma_usbhid_device_64218 outbuf_dma usbhid_device 0 64218 NULL
174976 +enable_so_start_pfn_xen_memory_region_64226 start_pfn xen_memory_region 0 64226 NULL
174977 +enable_so_balance_dirty_pages_fndecl_64228 balance_dirty_pages fndecl 3 64228 NULL
174978 +enable_so_hfs_free_extents_fndecl_64234 hfs_free_extents fndecl 4 64234 NULL
174979 +enable_so_format_chain_fndecl_64242 format_chain fndecl 2 64242 NULL
174980 +enable_so_bNbrPorts_usb_hub_descriptor_64245 bNbrPorts usb_hub_descriptor 0 64245 NULL
174981 +enable_so_compat_udpv6_setsockopt_fndecl_64246 compat_udpv6_setsockopt fndecl 5 64246 NULL
174982 +enable_so_payload_sz_status_msg_64247 payload_sz status_msg 0 64247 NULL
174983 +enable_so_pwr_ap_sleep_counter_read_fndecl_64248 pwr_ap_sleep_counter_read fndecl 3 64248 NULL
174984 +enable_so_adf4350_tune_r_cnt_fndecl_64249 adf4350_tune_r_cnt fndecl 2-0 64249 NULL
174985 +enable_so_nfs_idmap_get_desc_fndecl_64253 nfs_idmap_get_desc fndecl 2-4 64253 NULL nohasharray
174986 +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
174987 +enable_so_ccid_hc_rx_obj_size_ccid_operations_64257 ccid_hc_rx_obj_size ccid_operations 0 64257 NULL
174988 +enable_so_num_entries_wmi_target_roam_tbl_64263 num_entries wmi_target_roam_tbl 0 64263 NULL
174989 +enable_so_getxattr_cb_ceph_vxattr_64271 getxattr_cb ceph_vxattr 0 64271 NULL nohasharray
174990 +enable_so_dio_bio_complete_fndecl_64271 dio_bio_complete fndecl 0 64271 &enable_so_getxattr_cb_ceph_vxattr_64271
174991 +enable_so_dm_tm_read_lock_fndecl_64272 dm_tm_read_lock fndecl 2-0 64272 NULL
174992 +enable_so_denominator_v4l2_fract_64280 denominator v4l2_fract 0 64280 NULL
174993 +enable_so_t_prot_nents_se_cmd_64282 t_prot_nents se_cmd 0 64282 NULL
174994 +enable_so_SyS_mincore_fndecl_64284 SyS_mincore fndecl 2-1 64284 NULL
174995 +enable_so_dev_minor_cuse_init_out_64292 dev_minor cuse_init_out 0 64292 NULL
174996 +enable_so_ath6kl_wmi_proc_events_vif_fndecl_64294 ath6kl_wmi_proc_events_vif fndecl 5 64294 NULL
174997 +enable_so_fdt_getprop_fndecl_64301 fdt_getprop fndecl 2 64301 NULL
174998 +enable_so_num_bds_table_bd_list_64306 num_bds_table bd_list 0 64306 NULL
174999 +enable_so_vfp_ast_vbios_enhtable_64307 vfp ast_vbios_enhtable 0 64307 NULL nohasharray
175000 +enable_so_sq_size_vardecl_64307 sq_size vardecl 0 64307 &enable_so_vfp_ast_vbios_enhtable_64307
175001 +enable_so_sys_vmsplice_fndecl_64310 sys_vmsplice fndecl 3 64310 NULL nohasharray
175002 +enable_so_snd_emux_create_port_fndecl_64310 snd_emux_create_port fndecl 3 64310 &enable_so_sys_vmsplice_fndecl_64310
175003 +enable_so_cw_putcs_fndecl_64311 cw_putcs fndecl 5-4-6 64311 NULL
175004 +enable_so___wa_xfer_setup_fndecl_64316 __wa_xfer_setup fndecl 0 64316 NULL
175005 +enable_so_smk_read_unconfined_fndecl_64317 smk_read_unconfined fndecl 3 64317 NULL
175006 +enable_so_st_nci_hci_loopback_fndecl_64326 st_nci_hci_loopback fndecl 3 64326 NULL
175007 +enable_so_hs_descs_count_ffs_data_64332 hs_descs_count ffs_data 0 64332 NULL
175008 +enable_so_cciss_add_disk_fndecl_64338 cciss_add_disk fndecl 3 64338 NULL
175009 +enable_so_tx_padding_usbatm_driver_64341 tx_padding usbatm_driver 0 64341 NULL
175010 +enable_so_vif_data_size_ieee80211_hw_64342 vif_data_size ieee80211_hw 0 64342 NULL
175011 +enable_so_apply_vma_lock_flags_fndecl_64346 apply_vma_lock_flags fndecl 2-1 64346 NULL
175012 +enable_so_part_start_hfsplus_sb_info_64347 part_start hfsplus_sb_info 0 64347 NULL
175013 +enable_so_bytesperline_au0828_dev_64350 bytesperline au0828_dev 0 64350 NULL
175014 +enable_so_r592_test_fifo_empty_fndecl_64351 r592_test_fifo_empty fndecl 0 64351 NULL
175015 +enable_so_opcount_compat_xfs_fsop_attrmulti_handlereq_64355 opcount compat_xfs_fsop_attrmulti_handlereq 0 64355 NULL
175016 +enable_so_logfs_truncate_fndecl_64356 logfs_truncate fndecl 2 64356 NULL
175017 +enable_so_cur_tx_pos_tegra_spi_data_64362 cur_tx_pos tegra_spi_data 0 64362 NULL
175018 +enable_so_isofs_get_blocks_fndecl_64368 isofs_get_blocks fndecl 2 64368 NULL nohasharray
175019 +enable_so_hpi_instream_host_buffer_allocate_fndecl_64368 hpi_instream_host_buffer_allocate fndecl 2 64368 &enable_so_isofs_get_blocks_fndecl_64368
175020 +enable_so_oom_score_adj_write_fndecl_64369 oom_score_adj_write fndecl 3 64369 NULL
175021 +enable_so_ext_freq_mt9p031_platform_data_64376 ext_freq mt9p031_platform_data 0 64376 NULL
175022 +enable_so_map_state_fndecl_64377 map_state fndecl 1 64377 NULL
175023 +enable_so_hdr_len_ib_mac_iocb_rsp_64379 hdr_len ib_mac_iocb_rsp 0 64379 NULL nohasharray
175024 +enable_so_hpi_init_responseV1_fndecl_64379 hpi_init_responseV1 fndecl 2 64379 &enable_so_hdr_len_ib_mac_iocb_rsp_64379
175025 +enable_so_num_rxd_qlcnic_adapter_64380 num_rxd qlcnic_adapter 0 64380 NULL
175026 +enable_so_segments_ad9389b_state_edid_64384 segments ad9389b_state_edid 0 64384 NULL
175027 +enable_so_endio_readpage_release_extent_fndecl_64387 endio_readpage_release_extent fndecl 3-2 64387 NULL
175028 +enable_so_s_max_sge_qib_qp_64390 s_max_sge qib_qp 0 64390 NULL
175029 +enable_so_tvlv_len_batadv_ogm_packet_64392 tvlv_len batadv_ogm_packet 0 64392 NULL
175030 +enable_so_mem_kexec_segment_64393 mem kexec_segment 0 64393 NULL
175031 +enable_so_MemoryWindowSize_DAC960_privdata_64399 MemoryWindowSize DAC960_privdata 0 64399 NULL
175032 +enable_so_fdt_node_check_compatible_fndecl_64400 fdt_node_check_compatible fndecl 2 64400 NULL nohasharray
175033 +enable_so_diversity_num_of_packets_per_ant_read_fndecl_64400 diversity_num_of_packets_per_ant_read fndecl 3 64400 &enable_so_fdt_node_check_compatible_fndecl_64400 nohasharray
175034 +enable_so_oobretlen_mtd_oob_ops_64400 oobretlen mtd_oob_ops 0 64400 &enable_so_diversity_num_of_packets_per_ant_read_fndecl_64400
175035 +enable_so_sys_move_pages_fndecl_64401 sys_move_pages fndecl 2 64401 NULL
175036 +enable_so_init_data_si_sm_handlers_64406 init_data si_sm_handlers 0 64406 NULL
175037 +enable_so___get_user_pages_unlocked_fndecl_64409 __get_user_pages_unlocked fndecl 3 64409 NULL nohasharray
175038 +enable_so___blk_end_request_cur_fndecl_64409 __blk_end_request_cur fndecl 2 64409 &enable_so___get_user_pages_unlocked_fndecl_64409
175039 +enable_so_cdc_ncm_max_dgram_size_fndecl_64415 cdc_ncm_max_dgram_size fndecl 0 64415 NULL
175040 +enable_so_l2tp_xmit_skb_fndecl_64419 l2tp_xmit_skb fndecl 3 64419 NULL
175041 +enable_so_ssid_len_cfg80211_ap_settings_64422 ssid_len cfg80211_ap_settings 0 64422 NULL
175042 +enable_so_head_len_icmp_bxm_64424 head_len icmp_bxm 0 64424 NULL
175043 +enable_so_nfs4_new_slot_fndecl_64436 nfs4_new_slot fndecl 2 64436 NULL
175044 +enable_so_batadv_dat_get_vid_fndecl_64442 batadv_dat_get_vid fndecl 0 64442 NULL nohasharray
175045 +enable_so_index_v4l2_frmivalenum_64442 index v4l2_frmivalenum 0 64442 &enable_so_batadv_dat_get_vid_fndecl_64442
175046 +enable_so_bfad_iocmd_sfp_media_fndecl_64444 bfad_iocmd_sfp_media fndecl 0 64444 NULL
175047 +enable_so_bLength_uvc_control_endpoint_descriptor_64456 bLength uvc_control_endpoint_descriptor 0 64456 NULL
175048 +enable_so_jpg_size_s2255_vc_64457 jpg_size s2255_vc 0 64457 NULL
175049 +enable_so_num_ch_st_sensor_settings_64459 num_ch st_sensor_settings 0 64459 NULL
175050 +enable_so___ocfs2_decrease_refcount_fndecl_64462 __ocfs2_decrease_refcount fndecl 5-4 64462 NULL
175051 +enable_so_new_node_page_fndecl_64464 new_node_page fndecl 2 64464 NULL
175052 +enable_so_send_write_chunks_fndecl_64466 send_write_chunks fndecl 0 64466 NULL
175053 +enable_so_btrfs_grow_device_fndecl_64468 btrfs_grow_device fndecl 3 64468 NULL
175054 +enable_so_acpi_dev_get_irqresource_fndecl_64469 acpi_dev_get_irqresource fndecl 2 64469 NULL
175055 +enable_so_request_key_and_link_fndecl_64470 request_key_and_link fndecl 4 64470 NULL
175056 +enable_so_nilfs_btnode_submit_block_fndecl_64473 nilfs_btnode_submit_block fndecl 3-2 64473 NULL
175057 +enable_so_switchdev_deferred_enqueue_fndecl_64474 switchdev_deferred_enqueue fndecl 3 64474 NULL
175058 +enable_so_vb2_read_fndecl_64476 vb2_read fndecl 3 64476 NULL
175059 +enable_so_nr_dirtied_pause_task_struct_64480 nr_dirtied_pause task_struct 0 64480 NULL nohasharray
175060 +enable_so_pid_vnr_fndecl_64480 pid_vnr fndecl 0 64480 &enable_so_nr_dirtied_pause_task_struct_64480
175061 +enable_so_set_aoe_iflist_fndecl_64482 set_aoe_iflist fndecl 2 64482 NULL
175062 +enable_so_transport_header_sk_buff_64483 transport_header sk_buff 0 64483 NULL
175063 +enable_so_SendReceive2_fndecl_64485 SendReceive2 fndecl 4 64485 NULL
175064 +enable_so_ax25_setsockopt_fndecl_64487 ax25_setsockopt fndecl 5 64487 NULL
175065 +enable_so_vhost_hlen_vhost_net_virtqueue_64488 vhost_hlen vhost_net_virtqueue 0 64488 NULL
175066 +enable_so_scif_fence_signal_fndecl_64490 scif_fence_signal fndecl 2-4 64490 NULL
175067 +enable_so_val_reginit_item_64493 val reginit_item 0 64493 NULL
175068 +enable_so_mrf24j40_long_regmap_write_fndecl_64494 mrf24j40_long_regmap_write fndecl 3 64494 NULL nohasharray
175069 +enable_so___FIXADDR_TOP_vardecl_64494 __FIXADDR_TOP vardecl 0 64494 &enable_so_mrf24j40_long_regmap_write_fndecl_64494
175070 +enable_so_ddr_end_intel_sst_drv_64496 ddr_end intel_sst_drv 0 64496 NULL
175071 +enable_so_read_status_fndecl_64497 read_status fndecl 0 64497 NULL
175072 +enable_so_ext_ramdisk_size_boot_params_64498 ext_ramdisk_size boot_params 0 64498 NULL
175073 +enable_so_num_def_tx_descs_octeon_config_64501 num_def_tx_descs octeon_config 0 64501 NULL
175074 +enable_so_omap_hsmmc_dma_cleanup_fndecl_64504 omap_hsmmc_dma_cleanup fndecl 2 64504 NULL
175075 +enable_so_dvb_demux_ioctl_fndecl_64510 dvb_demux_ioctl fndecl 2 64510 NULL
175076 +enable_so_fc_plogi_get_maxframe_fndecl_64511 fc_plogi_get_maxframe fndecl 0-2 64511 NULL
175077 +enable_so_reg_smiapp_reg_8_64519 reg smiapp_reg_8 0 64519 NULL
175078 +enable_so_insize_cros_ec_command_64521 insize cros_ec_command 0 64521 NULL
175079 +enable_so_hdr_len_st_proto_s_64523 hdr_len st_proto_s 0 64523 NULL
175080 +enable_so_tun_alloc_skb_fndecl_64531 tun_alloc_skb fndecl 4-3-2 64531 NULL
175081 +enable_so_txq_cnt_tg3_64539 txq_cnt tg3 0 64539 NULL
175082 +enable_so_cfg80211_process_disassoc_fndecl_64540 cfg80211_process_disassoc fndecl 3 64540 NULL
175083 +enable_so_fw_dump_tmplt_size_scsi_qla_host_64541 fw_dump_tmplt_size scsi_qla_host 0 64541 NULL
175084 +enable_so_xfs_icreate_log_fndecl_64543 xfs_icreate_log fndecl 3-2 64543 NULL
175085 +enable_so_phys_size_ntb_transport_mw_64544 phys_size ntb_transport_mw 0 64544 NULL
175086 +enable_so_id_nfc_protocol_64548 id nfc_protocol 0 64548 NULL nohasharray
175087 +enable_so_ath10k_p2p_noa_ie_len_compute_fndecl_64548 ath10k_p2p_noa_ie_len_compute fndecl 0 64548 &enable_so_id_nfc_protocol_64548
175088 +enable_so_dccph_ack_nr_high_dccp_hdr_ack_bits_64553 dccph_ack_nr_high dccp_hdr_ack_bits 0 64553 NULL
175089 +enable_so_minix_V1_raw_inode_fndecl_64554 minix_V1_raw_inode fndecl 2 64554 NULL
175090 +enable_so_num_channels_sh_tmu_device_64556 num_channels sh_tmu_device 0 64556 NULL
175091 +enable_so_expected_count_hfi1_ctxtdata_64557 expected_count hfi1_ctxtdata 0 64557 NULL
175092 +enable_so_xfs_zero_last_block_fndecl_64560 xfs_zero_last_block fndecl 3 64560 NULL nohasharray
175093 +enable_so_valid_tty_audit_buf_64560 valid tty_audit_buf 0 64560 &enable_so_xfs_zero_last_block_fndecl_64560
175094 +enable_so_stv090x_write_regs_fndecl_64562 stv090x_write_regs fndecl 4 64562 NULL
175095 +enable_so_hiddev_compat_ioctl_fndecl_64564 hiddev_compat_ioctl fndecl 2 64564 NULL
175096 +enable_so_blockshift_nand_flash_dev_64570 blockshift nand_flash_dev 0 64570 NULL
175097 +enable_so_offset_seg_buf_64571 offset seg_buf 0 64571 NULL
175098 +enable_so___fprog_create_fndecl_64572 __fprog_create fndecl 2 64572 NULL
175099 +enable_so_rq_enc_pages_num_rpc_rqst_64573 rq_enc_pages_num rpc_rqst 0 64573 NULL
175100 +enable_so_mirrors_p1_ore_layout_64575 mirrors_p1 ore_layout 0 64575 NULL nohasharray
175101 +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
175102 +enable_so_erst_read_fndecl_64575 erst_read fndecl 0-1 64575 &enable_so_cdc_ncm_align_tail_fndecl_64575
175103 +enable_so_hfsplus_iget_fndecl_64576 hfsplus_iget fndecl 2 64576 NULL nohasharray
175104 +enable_so_msb_set_overwrite_flag_fndecl_64576 msb_set_overwrite_flag fndecl 2 64576 &enable_so_hfsplus_iget_fndecl_64576
175105 +enable_so_len_fuse_copy_state_64585 len fuse_copy_state 0 64585 NULL nohasharray
175106 +enable_so_long_len_fat_ioctl_filldir_callback_64585 long_len fat_ioctl_filldir_callback 0 64585 &enable_so_len_fuse_copy_state_64585
175107 +enable_so_blocks_per_seg_f2fs_sb_info_64587 blocks_per_seg f2fs_sb_info 0 64587 NULL
175108 +enable_so_t4_init_l2t_fndecl_64588 t4_init_l2t fndecl 1-2 64588 NULL
175109 +enable_so_udl_gem_create_fndecl_64590 udl_gem_create fndecl 3 64590 NULL
175110 +enable_so_alloc_context_fndecl_64592 alloc_context fndecl 1 64592 NULL
175111 +enable_so_isp1362_urb_dequeue_fndecl_64595 isp1362_urb_dequeue fndecl 3 64595 NULL
175112 +enable_so_of_count_phandle_with_args_fndecl_64600 of_count_phandle_with_args fndecl 0 64600 NULL
175113 +enable_so_logical_offset_btrfs_ioctl_same_extent_info_64608 logical_offset btrfs_ioctl_same_extent_info 0 64608 NULL
175114 +enable_so_s_gdb_count_ext4_sb_info_64617 s_gdb_count ext4_sb_info 0 64617 NULL
175115 +enable_so_o2hb_setup_one_bio_fndecl_64622 o2hb_setup_one_bio fndecl 4 64622 NULL nohasharray
175116 +enable_so_vid_batadv_tvlv_roam_adv_64622 vid batadv_tvlv_roam_adv 0 64622 &enable_so_o2hb_setup_one_bio_fndecl_64622
175117 +enable_so_xfs_iext_remove_indirect_fndecl_64624 xfs_iext_remove_indirect fndecl 3 64624 NULL
175118 +enable_so_objio_alloc_io_state_fndecl_64631 objio_alloc_io_state fndecl 6-7 64631 NULL
175119 +enable_so_bsg_job_done_fndecl_64640 bsg_job_done fndecl 3-2 64640 NULL
175120 +enable_so_netlink_alloc_large_skb_fndecl_64652 netlink_alloc_large_skb fndecl 1 64652 NULL
175121 +enable_so_kmp_init_fndecl_64654 kmp_init fndecl 2 64654 NULL
175122 +enable_so_num_allowed_vlans_qlcnic_sriov_64661 num_allowed_vlans qlcnic_sriov 0 64661 NULL
175123 +enable_so_cnic_init_id_tbl_fndecl_64665 cnic_init_id_tbl fndecl 3-2 64665 NULL
175124 +enable_so_usnic_ib_reg_mr_fndecl_64668 usnic_ib_reg_mr fndecl 2-3 64668 NULL nohasharray
175125 +enable_so_jbd2_alloc_fndecl_64668 jbd2_alloc fndecl 1 64668 &enable_so_usnic_ib_reg_mr_fndecl_64668
175126 +enable_so_maximum_num_containers_aac_dev_64672 maximum_num_containers aac_dev 0 64672 NULL
175127 +enable_so_isr_commands_read_fndecl_64677 isr_commands_read fndecl 3 64677 NULL nohasharray
175128 +enable_so_cciss_update_drive_info_fndecl_64677 cciss_update_drive_info fndecl 2 64677 &enable_so_isr_commands_read_fndecl_64677
175129 +enable_so_mapbase_uart_port_64681 mapbase uart_port 0 64681 NULL
175130 +enable_so_xfs_trans_mod_sb_fndecl_64682 xfs_trans_mod_sb fndecl 3 64682 NULL
175131 +enable_so_sys_flistxattr_fndecl_64684 sys_flistxattr fndecl 3 64684 NULL
175132 +enable_so_num_fields_ima_template_desc_64688 num_fields ima_template_desc 0 64688 NULL nohasharray
175133 +enable_so_get_base_info_fndecl_64688 get_base_info fndecl 3 64688 &enable_so_num_fields_ima_template_desc_64688
175134 +enable_so_srp_sg_tablesize_vardecl_ib_srp_c_64692 srp_sg_tablesize vardecl_ib_srp.c 0 64692 NULL
175135 +enable_so_size_cramfs_inode_64704 size cramfs_inode 0 64704 NULL
175136 +enable_so_lbs_rdrf_read_fndecl_64708 lbs_rdrf_read fndecl 3 64708 NULL
175137 +enable_so_alloc_bytenr_btrfs_root_64709 alloc_bytenr btrfs_root 0 64709 NULL
175138 +enable_so_bfad_iocmd_port_cfg_maxfrsize_fndecl_64711 bfad_iocmd_port_cfg_maxfrsize fndecl 0 64711 NULL nohasharray
175139 +enable_so_isdn_ppp_fill_rq_fndecl_64711 isdn_ppp_fill_rq fndecl 2 64711 &enable_so_bfad_iocmd_port_cfg_maxfrsize_fndecl_64711
175140 +enable_so_base_cmdline_vardecl_dma_contiguous_c_64713 base_cmdline vardecl_dma-contiguous.c 0 64713 NULL
175141 +enable_so_rcount_x25_asy_64715 rcount x25_asy 0 64715 NULL
175142 +enable_so_width_drm_framebuffer_64716 width drm_framebuffer 0 64716 NULL
175143 +enable_so_spc_modesense_long_blockdesc_fndecl_64717 spc_modesense_long_blockdesc fndecl 0 64717 NULL
175144 +enable_so_vs_bsize_vxfs_sb_64718 vs_bsize vxfs_sb 0 64718 NULL
175145 +enable_so_mt7601u_dma_fw_fndecl_64719 mt7601u_dma_fw fndecl 4 64719 NULL
175146 +enable_so_rx_defrag_decrypt_failed_read_fndecl_64720 rx_defrag_decrypt_failed_read fndecl 3 64720 NULL
175147 +enable_so_size_host_cmd_ds_command_64722 size host_cmd_ds_command 0 64722 NULL
175148 +enable_so_max_touch_num_goodix_ts_data_64725 max_touch_num goodix_ts_data 0 64725 NULL
175149 +enable_so_xfs_iext_add_fndecl_64733 xfs_iext_add fndecl 3 64733 NULL
175150 +enable_so_last_mgmt_tx_frame_len_wmi_64739 last_mgmt_tx_frame_len wmi 0 64739 NULL
175151 +enable_so_se_io_cb_fndecl_64742 se_io_cb fndecl 3 64742 NULL
175152 +enable_so_ulite_assign_fndecl_64744 ulite_assign fndecl 3-2 64744 NULL
175153 +enable_so_net_frag_header_len_inet_connection_sock_af_ops_64745 net_frag_header_len inet_connection_sock_af_ops 0 64745 NULL
175154 +enable_so_layout_leb_in_gaps_fndecl_64749 layout_leb_in_gaps fndecl 0 64749 NULL
175155 +enable_so_tun_id_ip_tunnel_key_64751 tun_id ip_tunnel_key 0 64751 NULL
175156 +enable_so_pcpu_build_alloc_info_fndecl_64752 pcpu_build_alloc_info fndecl 3-2-1 64752 NULL
175157 +enable_so_create_pid_cachep_fndecl_64753 create_pid_cachep fndecl 1 64753 NULL
175158 +enable_so_ocfs2_fill_initial_dirents_fndecl_64755 ocfs2_fill_initial_dirents fndecl 4 64755 NULL nohasharray
175159 +enable_so_iio_device_alloc_fndecl_64755 iio_device_alloc fndecl 1 64755 &enable_so_ocfs2_fill_initial_dirents_fndecl_64755
175160 +enable_so_datasz_memelfnote_64760 datasz memelfnote 0 64760 NULL
175161 +enable_so_raid_disk_mdp_device_descriptor_s_64762 raid_disk mdp_device_descriptor_s 0 64762 NULL
175162 +enable_so_smtcfb_read_fndecl_64764 smtcfb_read fndecl 3 64764 NULL
175163 +enable_so_vid_begin_switchdev_obj_port_vlan_64767 vid_begin switchdev_obj_port_vlan 0 64767 NULL
175164 +enable_so_ima_appraise_measurement_fndecl_64769 ima_appraise_measurement fndecl 6 64769 NULL
175165 +enable_so_jfs_get_block_fndecl_64772 jfs_get_block fndecl 2 64772 NULL
175166 +enable_so_at24_eeprom_write_fndecl_64775 at24_eeprom_write fndecl 3-0-4 64775 NULL nohasharray
175167 +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
175168 +enable_so_ib_qib_max_srq_sges_vardecl_64786 ib_qib_max_srq_sges vardecl 0 64786 NULL nohasharray
175169 +enable_so_bfad_iocmd_ethboot_query_fndecl_64786 bfad_iocmd_ethboot_query fndecl 0 64786 &enable_so_ib_qib_max_srq_sges_vardecl_64786
175170 +enable_so_tun_hlen_ip_tunnel_64791 tun_hlen ip_tunnel 0 64791 NULL
175171 +enable_so_fw_size_sst_pdata_64793 fw_size sst_pdata 0 64793 NULL
175172 +enable_so__update_journal_header_block_fndecl_64803 _update_journal_header_block fndecl 2 64803 NULL nohasharray
175173 +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
175174 +enable_so_pmsg_size_ramoops_context_64804 pmsg_size ramoops_context 0 64804 NULL
175175 +enable_so_tx_headroom_nci_dev_64805 tx_headroom nci_dev 0 64805 NULL
175176 +enable_so_alloc_align_snd_array_64806 alloc_align snd_array 0 64806 NULL
175177 +enable_so_xen_count_remap_pages_fndecl_64820 xen_count_remap_pages fndecl 0-1 64820 NULL
175178 +enable_so_reg_list_size_amdgpu_rlc_64826 reg_list_size amdgpu_rlc 0 64826 NULL
175179 +enable_so_atr_csum_cm4000_dev_64828 atr_csum cm4000_dev 0 64828 NULL
175180 +enable_so_ocfs2_xattr_index_block_find_fndecl_64835 ocfs2_xattr_index_block_find fndecl 0 64835 NULL
175181 +enable_so_lprocfs_write_frac_helper_fndecl_64841 lprocfs_write_frac_helper fndecl 2 64841 NULL
175182 +enable_so_smsc75xx_change_mtu_fndecl_64845 smsc75xx_change_mtu fndecl 2 64845 NULL nohasharray
175183 +enable_so_ngpio_gpio_chip_64845 ngpio gpio_chip 0 64845 &enable_so_smsc75xx_change_mtu_fndecl_64845
175184 +enable_so__send_fndecl_64846 _send fndecl 3 64846 NULL nohasharray
175185 +enable_so_ath6kl_wmi_sta_bmiss_enhance_cmd_fndecl_64846 ath6kl_wmi_sta_bmiss_enhance_cmd fndecl 2 64846 &enable_so__send_fndecl_64846
175186 +enable_so__req_append_segment_fndecl_64852 _req_append_segment fndecl 2 64852 NULL nohasharray
175187 +enable_so_tool_dbfn_write_fndecl_64852 tool_dbfn_write fndecl 3 64852 &enable_so__req_append_segment_fndecl_64852
175188 +enable_so_log_max_len_client_hdr_64853 log_max_len client_hdr 0 64853 NULL nohasharray
175189 +enable_so_E_info_CARD_PROPERTIES_64853 E_info CARD_PROPERTIES 0 64853 &enable_so_log_max_len_client_hdr_64853
175190 +enable_so_bud_wbuf_callback_fndecl_64863 bud_wbuf_callback fndecl 3 64863 NULL
175191 +enable_so_rh_inc_fndecl_64864 rh_inc fndecl 2 64864 NULL
175192 +enable_so_raw_recvmsg_fndecl_64866 raw_recvmsg fndecl 3 64866 NULL nohasharray
175193 +enable_so_len_discard_entry_64866 len discard_entry 0 64866 &enable_so_raw_recvmsg_fndecl_64866
175194 +enable_so_p_linux_binprm_64868 p linux_binprm 0 64868 NULL
175195 +enable_so_rq_count_enic_64875 rq_count enic 0 64875 NULL
175196 +enable_so_tx_ring_size_fe_priv_64876 tx_ring_size fe_priv 0 64876 NULL
175197 +enable_so_tx_max_frame_ntb_transport_qp_64878 tx_max_frame ntb_transport_qp 0 64878 NULL
175198 +enable_so_logfs_read_meta_inode_fndecl_64880 logfs_read_meta_inode fndecl 2 64880 NULL
175199 +enable_so_vfs_listxattr_fndecl_64885 vfs_listxattr fndecl 0 64885 NULL
175200 +enable_so_snd_pcm_hw_param_max_fndecl_64887 snd_pcm_hw_param_max fndecl 4 64887 NULL nohasharray
175201 +enable_so_qs_in_channels_hdspm_64887 qs_in_channels hdspm 0 64887 &enable_so_snd_pcm_hw_param_max_fndecl_64887 nohasharray
175202 +enable_so_xbfi_blockcount_xfs_bmap_free_item_64887 xbfi_blockcount xfs_bmap_free_item 0 64887 &enable_so_qs_in_channels_hdspm_64887
175203 +enable_so_ks8995_write_fndecl_64889 ks8995_write fndecl 4 64889 NULL nohasharray
175204 +enable_so_count_ioctl_gntalloc_alloc_gref_64889 count ioctl_gntalloc_alloc_gref 0 64889 &enable_so_ks8995_write_fndecl_64889
175205 +enable_so_reserve_sfa_size_fndecl_64893 reserve_sfa_size fndecl 2 64893 NULL
175206 +enable_so_mpeglinesize_vardecl_cx23885_417_c_64898 mpeglinesize vardecl_cx23885-417.c 0 64898 NULL nohasharray
175207 +enable_so_provide_user_output_fndecl_64898 provide_user_output fndecl 3 64898 &enable_so_mpeglinesize_vardecl_cx23885_417_c_64898
175208 +enable_so_f_audio_buffer_alloc_fndecl_64901 f_audio_buffer_alloc fndecl 1 64901 NULL
175209 +enable_so_unuse_pte_range_fndecl_64903 unuse_pte_range fndecl 3 64903 NULL
175210 +enable_so_maxctl_brcmf_bus_64907 maxctl brcmf_bus 0 64907 NULL
175211 +enable_so_data_size_event_reader_64909 data_size event_reader 0 64909 NULL
175212 +enable_so_nmsgs_i2c_rdwr_ioctl_data_64911 nmsgs i2c_rdwr_ioctl_data 0 64911 NULL
175213 +enable_so_next_block_for_io_dio_submit_64914 next_block_for_io dio_submit 0 64914 NULL
175214 +enable_so_rd_size_uhid_create_req_64916 rd_size uhid_create_req 0 64916 NULL
175215 +enable_so_dma_attach_fndecl_64917 dma_attach fndecl 8-7-10-5-6 64917 NULL
175216 +enable_so_roccat_read_fndecl_64918 roccat_read fndecl 3 64918 NULL
175217 +enable_so_nl80211_send_mlme_event_fndecl_64920 nl80211_send_mlme_event fndecl 4 64920 NULL
175218 +enable_so_ath10k_wmi_tlv_op_gen_bcn_tmpl_fndecl_64938 ath10k_wmi_tlv_op_gen_bcn_tmpl fndecl 8 64938 NULL nohasharray
175219 +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
175220 +enable_so_pci_iov_virtfn_bus_fndecl_64949 pci_iov_virtfn_bus fndecl 0-2 64949 NULL
175221 +enable_so_ieee80211_tdls_add_ies_fndecl_64954 ieee80211_tdls_add_ies fndecl 8 64954 NULL
175222 +enable_so_status_spi_message_64956 status spi_message 0 64956 NULL
175223 +enable_so_BlockCount_DAC960_Command_64957 BlockCount DAC960_Command 0 64957 NULL
175224 +enable_so_dvb_ca_write_fndecl_64960 dvb_ca_write fndecl 3 64960 NULL
175225 +enable_so_count_acpi_processor_power_64969 count acpi_processor_power 0 64969 NULL
175226 +enable_so_len_ctrl_queue_64975 len ctrl_queue 0 64975 NULL
175227 +enable_so_io_init_fndecl_64981 io_init fndecl 2 64981 NULL nohasharray
175228 +enable_so_print_pkt_fndecl_64981 print_pkt fndecl 2 64981 &enable_so_io_init_fndecl_64981
175229 +enable_so_rp2_alloc_ports_fndecl_64987 rp2_alloc_ports fndecl 0-1 64987 NULL nohasharray
175230 +enable_so_hq_size_cnic_local_64987 hq_size cnic_local 0 64987 &enable_so_rp2_alloc_ports_fndecl_64987
175231 +enable_so_tx_frag_mpdu_alloc_failed_read_fndecl_64988 tx_frag_mpdu_alloc_failed_read fndecl 3 64988 NULL
175232 +enable_so_maxTxCredits_edgeport_port_64991 maxTxCredits edgeport_port 0 64991 NULL
175233 +enable_so_UpdateRegs_fndecl_64995 UpdateRegs fndecl 2-3 64995 NULL nohasharray
175234 +enable_so_vt8231_device_add_fndecl_64995 vt8231_device_add fndecl 1 64995 &enable_so_UpdateRegs_fndecl_64995
175235 +enable_so_get_regs_len_hnae_ae_ops_64999 get_regs_len hnae_ae_ops 0 64999 NULL nohasharray
175236 +enable_so___mlxsw_item_get32_fndecl_64999 __mlxsw_item_get32 fndecl 0 64999 &enable_so_get_regs_len_hnae_ae_ops_64999
175237 +enable_so_access_length_acpi_connection_info_65000 access_length acpi_connection_info 0 65000 NULL nohasharray
175238 +enable_so_shkey_id_sctp_authhdr_65000 shkey_id sctp_authhdr 0 65000 &enable_so_access_length_acpi_connection_info_65000
175239 +enable_so_mask_cbuf_65001 mask cbuf 0 65001 NULL
175240 +enable_so_cc2520_read_rxfifo_fndecl_65006 cc2520_read_rxfifo fndecl 3 65006 NULL
175241 +enable_so_netif_get_num_default_rss_queues_fndecl_65008 netif_get_num_default_rss_queues fndecl 0 65008 NULL
175242 +enable_so_actual_size_saa7164_user_buffer_65010 actual_size saa7164_user_buffer 0 65010 NULL
175243 +enable_so_compat_sys_process_vm_writev_fndecl_65017 compat_sys_process_vm_writev fndecl 5-3 65017 NULL
175244 +enable_so_cmd_len_sg_io_hdr_65018 cmd_len sg_io_hdr 0 65018 NULL
175245 +enable_so_dfs_file_write_fndecl_65023 dfs_file_write fndecl 3 65023 NULL
175246 +enable_so_intr_size_usb_pcwd_private_65024 intr_size usb_pcwd_private 0 65024 NULL
175247 +enable_so_au8522_rc_read_fndecl_65026 au8522_rc_read fndecl 5 65026 NULL
175248 +enable_so_ocfs2_block_group_fill_fndecl_65027 ocfs2_block_group_fill fndecl 4 65027 NULL
175249 +enable_so_prev_length_deflate_state_65029 prev_length deflate_state 0 65029 NULL
175250 +enable_so_xfs_calc_dquots_per_chunk_fndecl_65040 xfs_calc_dquots_per_chunk fndecl 0-1 65040 NULL
175251 +enable_so_rtsx_pci_ms_issue_cmd_fndecl_65049 rtsx_pci_ms_issue_cmd fndecl 0 65049 NULL
175252 +enable_so_brcmf_cfg80211_vndr_cmds_dcmd_handler_fndecl_65059 brcmf_cfg80211_vndr_cmds_dcmd_handler fndecl 4 65059 NULL
175253 +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
175254 +enable_so_xen_free_ro_pages_fndecl_65060 xen_free_ro_pages fndecl 2-1 65060 &enable_so_iscsi_max_rcv_data_seg_len_dev_db_entry_65060 nohasharray
175255 +enable_so_bus_add_driver_fndecl_65060 bus_add_driver fndecl 0 65060 &enable_so_xen_free_ro_pages_fndecl_65060
175256 +enable_so_flag_node_footer_65063 flag node_footer 0 65063 NULL
175257 +enable_so_ResidualCnt__ErrorInfo_struct_65074 ResidualCnt _ErrorInfo_struct 0 65074 NULL
175258 +enable_so_mmc_test_transfer_fndecl_65076 mmc_test_transfer fndecl 6-5-3 65076 NULL
175259 +enable_so_xfs_growfs_rt_alloc_fndecl_65079 xfs_growfs_rt_alloc fndecl 2-3 65079 NULL
175260 +enable_so_SyS_bpf_fndecl_65081 SyS_bpf fndecl 3 65081 NULL
175261 +enable_so_len_scifioctl_reg_65083 len scifioctl_reg 0 65083 NULL
175262 +enable_so_frame_size_pwc_device_65084 frame_size pwc_device 0 65084 NULL
175263 +enable_so_fcoe_len_fcoe_rport_65085 fcoe_len fcoe_rport 0 65085 NULL
175264 +enable_so_width_cx88_core_65086 width cx88_core 0 65086 NULL nohasharray
175265 +enable_so_capi_ttyminors_vardecl_capi_c_65086 capi_ttyminors vardecl_capi.c 0 65086 &enable_so_width_cx88_core_65086
175266 +enable_so_num_tx_bds_bcmgenet_priv_65087 num_tx_bds bcmgenet_priv 0 65087 NULL
175267 +enable_so_size_ion_test_rw_data_65088 size ion_test_rw_data 0 65088 NULL
175268 +enable_so_queue_depth_se_node_acl_65089 queue_depth se_node_acl 0 65089 NULL
175269 +enable_so_max_write_send_sge_ocrdma_mbx_query_config_65090 max_write_send_sge ocrdma_mbx_query_config 0 65090 NULL
175270 +enable_so_sco_send_frame_fndecl_65092 sco_send_frame fndecl 3 65092 NULL
175271 +enable_so_rtw_android_get_macaddr_fndecl_65095 rtw_android_get_macaddr fndecl 0 65095 NULL
175272 +enable_so_cfg_num_qs_be_adapter_65098 cfg_num_qs be_adapter 0 65098 NULL
175273 +enable_so_ecryptfs_write_begin_fndecl_65099 ecryptfs_write_begin fndecl 3 65099 NULL
175274 +enable_so_ieee802154_hdr_push_fndecl_65100 ieee802154_hdr_push fndecl 0 65100 NULL nohasharray
175275 +enable_so_max_xri_lpfc_max_cfg_param_65100 max_xri lpfc_max_cfg_param 0 65100 &enable_so_ieee802154_hdr_push_fndecl_65100
175276 +enable_so_sndsize_sock_xprt_65105 sndsize sock_xprt 0 65105 NULL
175277 +enable_so_x25_recvmsg_fndecl_65106 x25_recvmsg fndecl 3 65106 NULL nohasharray
175278 +enable_so_ocfs2_dx_dir_rebalance_fndecl_65106 ocfs2_dx_dir_rebalance fndecl 7-0 65106 &enable_so_x25_recvmsg_fndecl_65106
175279 +enable_so_ntb_mw_count_fndecl_65108 ntb_mw_count fndecl 0 65108 NULL
175280 +enable_so_nilfs_cpfile_is_snapshot_fndecl_65110 nilfs_cpfile_is_snapshot fndecl 2 65110 NULL
175281 +enable_so_mmc_test_seq_read_perf_fndecl_65111 mmc_test_seq_read_perf fndecl 2 65111 NULL
175282 +enable_so_hsi_alloc_controller_fndecl_65113 hsi_alloc_controller fndecl 1 65113 NULL
175283 +enable_so_fat_alloc_new_dir_fndecl_65115 fat_alloc_new_dir fndecl 0 65115 NULL
175284 +enable_so_amdgpu_bo_list_set_fndecl_65117 amdgpu_bo_list_set fndecl 5 65117 NULL
175285 +enable_so_wpa_ie_len_libipw_device_65120 wpa_ie_len libipw_device 0 65120 NULL
175286 +enable_so_scrub_extent_for_parity_fndecl_65123 scrub_extent_for_parity fndecl 3-2-4 65123 NULL
175287 +enable_so_keyctl_instantiate_key_fndecl_65132 keyctl_instantiate_key fndecl 3 65132 NULL
175288 +enable_so_qib_rcvhdrentsize_vardecl_qib_iba7322_c_65133 qib_rcvhdrentsize vardecl_qib_iba7322.c 0 65133 NULL
175289 +enable_so_do_ip_setsockopt_fndecl_65135 do_ip_setsockopt fndecl 5 65135 NULL
175290 +enable_so_kimage_file_alloc_init_fndecl_65136 kimage_file_alloc_init fndecl 5 65136 NULL
175291 +enable_so_num_pipe_drm_psb_private_65138 num_pipe drm_psb_private 0 65138 NULL
175292 +enable_so_depth_sh_veu_format_65150 depth sh_veu_format 0 65150 NULL
175293 +enable_so___recover_dot_dentries_fndecl_65151 __recover_dot_dentries fndecl 2 65151 NULL
175294 +enable_so_pci_mem_end_qed_dev_info_65160 pci_mem_end qed_dev_info 0 65160 NULL
175295 +enable_so_piocnt_qib_ctxtdata_65161 piocnt qib_ctxtdata 0 65161 NULL nohasharray
175296 +enable_so_nexthdrlen_lowpan_nhc_65161 nexthdrlen lowpan_nhc 0 65161 &enable_so_piocnt_qib_ctxtdata_65161 nohasharray
175297 +enable_so_dma_txsize_vardecl_stmmac_main_c_65161 dma_txsize vardecl_stmmac_main.c 0 65161 &enable_so_nexthdrlen_lowpan_nhc_65161
175298 +enable_so_mwifiex_cmd_append_vsie_tlv_fndecl_65164 mwifiex_cmd_append_vsie_tlv fndecl 0 65164 NULL
175299 +enable_so_ccp_get_dm_area_fndecl_65170 ccp_get_dm_area fndecl 4 65170 NULL
175300 +enable_so___ext4_block_zero_page_range_fndecl_65173 __ext4_block_zero_page_range fndecl 3 65173 NULL
175301 +enable_so_crb_read_netxen_adapter_65178 crb_read netxen_adapter 0 65178 NULL
175302 +enable_so_xfs_rtget_summary_fndecl_65179 xfs_rtget_summary fndecl 4-3 65179 NULL
175303 +enable_so_usb_gadget_get_string_fndecl_65180 usb_gadget_get_string fndecl 0 65180 NULL
175304 +enable_so_fat_total_sect_fat_bios_param_block_65184 fat_total_sect fat_bios_param_block 0 65184 NULL
175305 +enable_so_svc_tcp_restore_pages_fndecl_65189 svc_tcp_restore_pages fndecl 0 65189 NULL
175306 +enable_so_free_blk_ocfs2_cached_block_free_65195 free_blk ocfs2_cached_block_free 0 65195 NULL
175307 +enable_so_get_fdb_entries_fndecl_65199 get_fdb_entries fndecl 3 65199 NULL
175308 +enable_so_xfs_bmap_shift_extents_fndecl_65200 xfs_bmap_shift_extents fndecl 4 65200 NULL
175309 +enable_so_NumIdentPartitions_cfi_intelext_regioninfo_65201 NumIdentPartitions cfi_intelext_regioninfo 0 65201 NULL
175310 +enable_so_SyS_sched_getattr_fndecl_65202 SyS_sched_getattr fndecl 3 65202 NULL
175311 +enable_so_ackr_win_top_rxrpc_call_65205 ackr_win_top rxrpc_call 0 65205 NULL
175312 +enable_so_height_dt3155_priv_65206 height dt3155_priv 0 65206 NULL nohasharray
175313 +enable_so_nilfs_palloc_entry_blkoff_fndecl_65206 nilfs_palloc_entry_blkoff fndecl 0 65206 &enable_so_height_dt3155_priv_65206 nohasharray
175314 +enable_so_fat_shortname2uni_fndecl_65206 fat_shortname2uni fndecl 0 65206 &enable_so_nilfs_palloc_entry_blkoff_fndecl_65206
175315 +enable_so_aper_size_radeon_mc_65212 aper_size radeon_mc 0 65212 NULL
175316 +enable_so_get_regs_len_ethtool_ops_65213 get_regs_len ethtool_ops 0 65213 NULL nohasharray
175317 +enable_so_rx_agg_ring_mask_bnxt_65213 rx_agg_ring_mask bnxt 0 65213 &enable_so_get_regs_len_ethtool_ops_65213
175318 +enable_so_i40evf_change_mtu_fndecl_65220 i40evf_change_mtu fndecl 2 65220 NULL nohasharray
175319 +enable_so_port_num_ib_qp_attr_65220 port_num ib_qp_attr 0 65220 &enable_so_i40evf_change_mtu_fndecl_65220
175320 +enable_so_maxresp_sz_nfsd4_channel_attrs_65221 maxresp_sz nfsd4_channel_attrs 0 65221 NULL
175321 +enable_so_read_gssp_fndecl_65224 read_gssp fndecl 3 65224 NULL nohasharray
175322 +enable_so_memory_manufacturer_code_ms_boot_attr_info_65224 memory_manufacturer_code ms_boot_attr_info 0 65224 &enable_so_read_gssp_fndecl_65224
175323 +enable_so_sci_rxfill_fndecl_65226 sci_rxfill fndecl 0 65226 NULL
175324 +enable_so_ssid_len_connect_attr_65228 ssid_len connect_attr 0 65228 NULL
175325 +enable_so_ocfs2_xattr_bucket_get_name_value_fndecl_65230 ocfs2_xattr_bucket_get_name_value fndecl 0 65230 NULL
175326 +enable_so_iscsi_iser_recv_fndecl_65231 iscsi_iser_recv fndecl 4 65231 NULL
175327 +enable_so_fb_max_height_vmw_private_65243 fb_max_height vmw_private 0 65243 NULL
175328 +enable_so_ext4_da_write_inline_data_begin_fndecl_65244 ext4_da_write_inline_data_begin fndecl 4-3 65244 NULL nohasharray
175329 +enable_so_word3_alx_rrd_65244 word3 alx_rrd 0 65244 &enable_so_ext4_da_write_inline_data_begin_fndecl_65244
175330 +enable_so_range_end_writeback_control_65245 range_end writeback_control 0 65245 NULL
175331 +enable_so_bytes_dump_iterator_65249 bytes dump_iterator 0 65249 NULL
175332 +enable_so_cx24116_writeregN_fndecl_65252 cx24116_writeregN fndecl 4 65252 NULL
175333 +enable_so_ctx_blk_size_cnic_eth_dev_65262 ctx_blk_size cnic_eth_dev 0 65262 NULL
175334 +enable_so_tool_peer_spad_read_fndecl_65263 tool_peer_spad_read fndecl 3 65263 NULL
175335 +enable_so_get_dir_index_using_offset_fndecl_65267 get_dir_index_using_offset fndecl 0-7 65267 NULL
175336 +enable_so_ubi_self_check_all_ff_fndecl_65268 ubi_self_check_all_ff fndecl 4 65268 NULL
175337 +enable_so_portnames_read_fndecl_65269 portnames_read fndecl 3 65269 NULL
175338 +enable_so_m_ialloc_blks_xfs_mount_65284 m_ialloc_blks xfs_mount 0 65284 NULL
175339 +enable_so_size_t4_rq_65285 size t4_rq 0 65285 NULL
175340 +enable_so_update_stat_data_fndecl_65289 update_stat_data fndecl 3 65289 NULL
175341 +enable_so_hpfs_translate_name_fndecl_65290 hpfs_translate_name fndecl 3 65290 NULL
175342 +enable_so_wear_eb_count_vardecl_nandsim_c_65291 wear_eb_count vardecl_nandsim.c 0 65291 NULL
175343 +enable_so_usb_stor_probe2_fndecl_65298 usb_stor_probe2 fndecl 0 65298 NULL
175344 +enable_so_txfifo_size_lpuart_port_65300 txfifo_size lpuart_port 0 65300 NULL nohasharray
175345 +enable_so_ntfs_bmap_fndecl_65300 ntfs_bmap fndecl 2 65300 &enable_so_txfifo_size_lpuart_port_65300
175346 +enable_so_memory_lseek_fndecl_65306 memory_lseek fndecl 2 65306 NULL
175347 +enable_so_in_param_mlx4_vhcr_65311 in_param mlx4_vhcr 0 65311 NULL
175348 +enable_so_mt312_read_fndecl_65312 mt312_read fndecl 4 65312 NULL
175349 +enable_so_max_pfn_vardecl_65317 max_pfn vardecl 0 65317 NULL
175350 +enable_so_ExtPageLength__MPI2_CONFIG_REPLY_65319 ExtPageLength _MPI2_CONFIG_REPLY 0 65319 NULL
175351 +enable_so_data_length_iscsi_scsi_req_65321 data_length iscsi_scsi_req 0 65321 NULL nohasharray
175352 +enable_so_info_arc_emac_bd_65321 info arc_emac_bd 0 65321 &enable_so_data_length_iscsi_scsi_req_65321
175353 +enable_so_dm_get_reserved_rq_based_ios_fndecl_65322 dm_get_reserved_rq_based_ios fndecl 0 65322 NULL
175354 +enable_so_brcmf_flowring_attach_fndecl_65325 brcmf_flowring_attach fndecl 2 65325 NULL
175355 +enable_so_align_size_hwbus_ops_65327 align_size hwbus_ops 0 65327 NULL
175356 +enable_so_ath10k_wmi_start_scan_tlvs_len_fndecl_65331 ath10k_wmi_start_scan_tlvs_len fndecl 0 65331 NULL
175357 +enable_so_alloc_in_dirband_fndecl_65332 alloc_in_dirband fndecl 2 65332 NULL
175358 +enable_so_panel_count_vbt_r10_65334 panel_count vbt_r10 0 65334 NULL
175359 +enable_so_ldisc_receive_fndecl_65343 ldisc_receive fndecl 4 65343 NULL
175360 +enable_so_ath6kl_endpoint_stats_read_fndecl_65345 ath6kl_endpoint_stats_read fndecl 3 65345 NULL
175361 +enable_so_gss_krb5_cts_crypt_fndecl_65346 gss_krb5_cts_crypt fndecl 3 65346 NULL
175362 +enable_so_si476x_radio_fops_read_fndecl_65348 si476x_radio_fops_read fndecl 3 65348 NULL nohasharray
175363 +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
175364 +enable_so_len_rpc_pipe_msg_65361 len rpc_pipe_msg 0 65361 NULL
175365 +enable_so_dma_out_iguanair_65368 dma_out iguanair 0 65368 NULL nohasharray
175366 +enable_so_add_excluded_extent_fndecl_65368 add_excluded_extent fndecl 3-2 65368 &enable_so_dma_out_iguanair_65368
175367 +enable_so_fbucket_size_qlcnic_filter_hash_65369 fbucket_size qlcnic_filter_hash 0 65369 NULL
175368 +enable_so_drbd_send_command_fndecl_65377 drbd_send_command fndecl 6-4 65377 NULL
175369 +enable_so_nfsd_readv_fndecl_65378 nfsd_readv fndecl 4 65378 NULL
175370 +enable_so_edid_max_blocks_vivid_dev_65383 edid_max_blocks vivid_dev 0 65383 NULL nohasharray
175371 +enable_so_batadv_tvlv_container_ogm_append_fndecl_65383 batadv_tvlv_container_ogm_append fndecl 0-4 65383 &enable_so_edid_max_blocks_vivid_dev_65383
175372 +enable_so_rpcrdma_tail_pullup_fndecl_65388 rpcrdma_tail_pullup fndecl 0 65388 NULL nohasharray
175373 +enable_so_dio_get_pagev_size_fndecl_65388 dio_get_pagev_size fndecl 0 65388 &enable_so_rpcrdma_tail_pullup_fndecl_65388
175374 +enable_so_may_expand_vm_fndecl_65389 may_expand_vm fndecl 2 65389 NULL
175375 +enable_so_max_rx_aggregation_subframes_ieee80211_hw_65391 max_rx_aggregation_subframes ieee80211_hw 0 65391 NULL
175376 +enable_so_rcvegrbufsize_qib_devdata_65397 rcvegrbufsize qib_devdata 0 65397 NULL
175377 +enable_so_digital_in_send_atr_req_fndecl_65398 digital_in_send_atr_req fndecl 5 65398 NULL
175378 +enable_so_num_rx_queues_ixgbe_adapter_65402 num_rx_queues ixgbe_adapter 0 65402 NULL
175379 +enable_so_wl12xx_sdio_raw_write_fndecl_65406 wl12xx_sdio_raw_write fndecl 4 65406 NULL nohasharray
175380 +enable_so_bfad_iocmd_diag_beacon_lport_fndecl_65406 bfad_iocmd_diag_beacon_lport fndecl 0 65406 &enable_so_wl12xx_sdio_raw_write_fndecl_65406 nohasharray
175381 +enable_so_rng_dev_read_fndecl_65406 rng_dev_read fndecl 3 65406 &enable_so_bfad_iocmd_diag_beacon_lport_fndecl_65406
175382 +enable_so___napi_alloc_skb_fndecl_65409 __napi_alloc_skb fndecl 2 65409 NULL
175383 +enable_so_macb_init_rx_buffer_size_fndecl_65410 macb_init_rx_buffer_size fndecl 2 65410 NULL
175384 +enable_so_lstcon_batch_list_fndecl_65416 lstcon_batch_list fndecl 2 65416 NULL
175385 +enable_so_fat_zeroed_cluster_fndecl_65422 fat_zeroed_cluster fndecl 3-2-0 65422 NULL
175386 +enable_so_free_bud_entry_65425 free bud_entry 0 65425 NULL nohasharray
175387 +enable_so_fq_trees_log_fq_sched_data_65425 fq_trees_log fq_sched_data 0 65425 &enable_so_free_bud_entry_65425
175388 +enable_so_block_size_card_cfg_data_65426 block_size card_cfg_data 0 65426 NULL
175389 +enable_so_fdt_get_name_fndecl_65428 fdt_get_name fndecl 2 65428 NULL
175390 +enable_so_period_bytes_snd_usb_substream_65430 period_bytes snd_usb_substream 0 65430 NULL
175391 +enable_so_tcp_hdrlen_fndecl_65433 tcp_hdrlen fndecl 0 65433 NULL
175392 +enable_so_data_in_size_mpt3_ioctl_command_65434 data_in_size mpt3_ioctl_command 0 65434 NULL
175393 +enable_so_a2mp_send_fndecl_65436 a2mp_send fndecl 4 65436 NULL
175394 +enable_so_lbs_bcnmiss_write_fndecl_65438 lbs_bcnmiss_write fndecl 3 65438 NULL
175395 +enable_so_rx_rx_pre_complt_read_fndecl_65446 rx_rx_pre_complt_read fndecl 3 65446 NULL
175396 +enable_so_carm_handle_generic_fndecl_65450 carm_handle_generic fndecl 3 65450 NULL
175397 +enable_so_squashfs_cache_init_fndecl_65451 squashfs_cache_init fndecl 3-2 65451 NULL
175398 +enable_so_xfs_dir3_data_block_free_fndecl_65456 xfs_dir3_data_block_free fndecl 5-4 65456 NULL
175399 +enable_so_wNtbOutMaxDatagrams_usb_cdc_ncm_ntb_parameters_65459 wNtbOutMaxDatagrams usb_cdc_ncm_ntb_parameters 0 65459 NULL
175400 +enable_so_lfb_base_screen_info_65479 lfb_base screen_info 0 65479 NULL
175401 +enable_so_pci_hotplug_io_size_vardecl_65480 pci_hotplug_io_size vardecl 0 65480 NULL
175402 +enable_so_isoc_size_wa_seg_65482 isoc_size wa_seg 0 65482 NULL
175403 +enable_so_aac_src_ioremap_fndecl_65483 aac_src_ioremap fndecl 2 65483 NULL
175404 +enable_so_logical_tree_mod_root_65499 logical tree_mod_root 0 65499 NULL
175405 +enable_so_rw_bytes_nd_namespace_common_65501 rw_bytes nd_namespace_common 0 65501 NULL
175406 +enable_so_xfs_dir2_shrink_inode_fndecl_65502 xfs_dir2_shrink_inode fndecl 2 65502 NULL
175407 +enable_so_bdx_tx_db_init_fndecl_65508 bdx_tx_db_init fndecl 2 65508 NULL
175408 +enable_so_remove_device_fndecl_65513 remove_device fndecl 4 65513 NULL nohasharray
175409 +enable_so_sys_pwritev_fndecl_65513 sys_pwritev fndecl 3 65513 &enable_so_remove_device_fndecl_65513
175410 +enable_so__recv_fndecl_65526 _recv fndecl 0-3 65526 NULL nohasharray
175411 +enable_so_cts_cbc_encrypt_fndecl_65526 cts_cbc_encrypt fndecl 5 65526 &enable_so__recv_fndecl_65526
175412 +enable_so_write_page_nocow_fndecl_65527 write_page_nocow fndecl 2 65527 NULL
175413 +enable_so_size_mei_msg_data_65529 size mei_msg_data 0 65529 NULL
175414 +enable_so_connector_write_fndecl_65534 connector_write fndecl 3 65534 NULL
175415 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_hash_aux.data b/tools/gcc/size_overflow_plugin/size_overflow_hash_aux.data
175416 new file mode 100644
175417 index 0000000..17bc0d8
175418 --- /dev/null
175419 +++ b/tools/gcc/size_overflow_plugin/size_overflow_hash_aux.data
175420 @@ -0,0 +1,92 @@
175421 +enable_so_spa_set_aux_vdevs_fndecl_746 spa_set_aux_vdevs fndecl 3 746 NULL
175422 +enable_so_zfs_lookup_fndecl_2144 zfs_lookup fndecl 0 2144 NULL
175423 +enable_so_mappedread_fndecl_2627 mappedread fndecl 2 2627 NULL
175424 +enable_so_vdev_disk_dio_alloc_fndecl_2957 vdev_disk_dio_alloc fndecl 1 2957 NULL
175425 +enable_so_nv_alloc_pushpage_spl_fndecl_4286 nv_alloc_pushpage_spl fndecl 2 4286 NULL
175426 +enable_so_zpl_xattr_get_fndecl_4574 zpl_xattr_get fndecl 0 4574 NULL
175427 +enable_so_sa_replace_all_by_template_fndecl_5699 sa_replace_all_by_template fndecl 3 5699 NULL
175428 +enable_so_dmu_write_fndecl_6048 dmu_write fndecl 4-3 6048 NULL
175429 +enable_so_dmu_buf_hold_array_fndecl_6095 dmu_buf_hold_array fndecl 4-3 6095 NULL
175430 +enable_so_update_pages_fndecl_6225 update_pages fndecl 2-3 6225 NULL
175431 +enable_so_bio_nr_pages_fndecl_7117 bio_nr_pages fndecl 0-2 7117 NULL
175432 +enable_so_dmu_buf_hold_array_by_bonus_fndecl_8562 dmu_buf_hold_array_by_bonus fndecl 3-2 8562 NULL
175433 +enable_so_zpios_dmu_write_fndecl_8858 zpios_dmu_write fndecl 4-5 8858 NULL
175434 +enable_so_ddi_copyout_fndecl_9401 ddi_copyout fndecl 3 9401 NULL
175435 +enable_so_avl_numnodes_fndecl_12384 avl_numnodes fndecl 0 12384 NULL
175436 +enable_so_dmu_write_uio_dnode_fndecl_12473 dmu_write_uio_dnode fndecl 3 12473 NULL
175437 +enable_so_dmu_xuio_init_fndecl_12866 dmu_xuio_init fndecl 2 12866 NULL
175438 +enable_so_zpl_read_common_fndecl_14389 zpl_read_common fndecl 0 14389 NULL
175439 +enable_so_dmu_snapshot_realname_fndecl_14632 dmu_snapshot_realname fndecl 4 14632 NULL
175440 +enable_so_kmem_alloc_debug_fndecl_14852 kmem_alloc_debug fndecl 1 14852 NULL
175441 +enable_so_kmalloc_node_nofail_fndecl_15151 kmalloc_node_nofail fndecl 1 15151 NULL
175442 +enable_so_dmu_write_uio_fndecl_16351 dmu_write_uio fndecl 4 16351 NULL
175443 +enable_so_zfs_log_write_fndecl_16524 zfs_log_write fndecl 6-5 16524 NULL
175444 +enable_so_sa_build_layouts_fndecl_16910 sa_build_layouts fndecl 3 16910 NULL
175445 +enable_so_dsl_dir_namelen_fndecl_17053 dsl_dir_namelen fndecl 0 17053 NULL
175446 +enable_so_kcopy_copy_to_user_fndecl_17336 kcopy_copy_to_user fndecl 5 17336 NULL
175447 +enable_so_sa_add_layout_entry_fndecl_17507 sa_add_layout_entry fndecl 3 17507 NULL
175448 +enable_so_sa_attr_table_setup_fndecl_18029 sa_attr_table_setup fndecl 3 18029 NULL
175449 +enable_so_uiocopy_fndecl_18680 uiocopy fndecl 2 18680 NULL
175450 +enable_so_dmu_buf_hold_array_by_dnode_fndecl_19125 dmu_buf_hold_array_by_dnode fndecl 2-3 19125 NULL
175451 +enable_so_zpl_acl_from_xattr_fndecl_21141 zpl_acl_from_xattr fndecl 2 21141 NULL
175452 +enable_so_dsl_pool_tx_assign_init_fndecl_22518 dsl_pool_tx_assign_init fndecl 2 22518 NULL
175453 +enable_so_nvlist_lookup_byte_array_fndecl_22527 nvlist_lookup_byte_array fndecl 0 22527 NULL
175454 +enable_so_sa_replace_all_by_template_locked_fndecl_22533 sa_replace_all_by_template_locked fndecl 3 22533 NULL
175455 +enable_so_tsd_hash_table_init_fndecl_22559 tsd_hash_table_init fndecl 1 22559 NULL
175456 +enable_so_spa_vdev_remove_aux_fndecl_23966 spa_vdev_remove_aux fndecl 4 23966 NULL
175457 +enable_so_zpl_xattr_acl_set_access_fndecl_24129 zpl_xattr_acl_set_access fndecl 4 24129 NULL
175458 +enable_so_dmu_assign_arcbuf_fndecl_24622 dmu_assign_arcbuf fndecl 2 24622 NULL
175459 +enable_so_zap_lookup_norm_fndecl_25166 zap_lookup_norm fndecl 9 25166 NULL
175460 +enable_so_dmu_prealloc_fndecl_25456 dmu_prealloc fndecl 4-3 25456 NULL
175461 +enable_so_kmalloc_nofail_fndecl_26347 kmalloc_nofail fndecl 1 26347 NULL
175462 +enable_so_zfsctl_snapshot_zpath_fndecl_27578 zfsctl_snapshot_zpath fndecl 2 27578 NULL
175463 +enable_so_zpios_dmu_read_fndecl_30015 zpios_dmu_read fndecl 4-5 30015 NULL
175464 +enable_so_splat_write_fndecl_30943 splat_write fndecl 3 30943 NULL
175465 +enable_so_zpl_xattr_get_sa_fndecl_31183 zpl_xattr_get_sa fndecl 0 31183 NULL
175466 +enable_so_dmu_read_uio_fndecl_31467 dmu_read_uio fndecl 4 31467 NULL
175467 +enable_so_zfs_replay_fuids_fndecl_31479 zfs_replay_fuids fndecl 4 31479 NULL
175468 +enable_so_spa_history_log_to_phys_fndecl_31632 spa_history_log_to_phys fndecl 0-1 31632 NULL
175469 +enable_so___zpl_xattr_get_fndecl_32601 __zpl_xattr_get fndecl 0 32601 NULL
175470 +enable_so_proc_copyout_string_fndecl_34049 proc_copyout_string fndecl 2 34049 NULL
175471 +enable_so_nv_alloc_sleep_spl_fndecl_34544 nv_alloc_sleep_spl fndecl 2 34544 NULL
175472 +enable_so_nv_alloc_nosleep_spl_fndecl_34761 nv_alloc_nosleep_spl fndecl 2 34761 NULL
175473 +enable_so_zap_leaf_array_match_fndecl_36922 zap_leaf_array_match fndecl 4 36922 NULL
175474 +enable_so_copyinstr_fndecl_36980 copyinstr fndecl 3 36980 NULL
175475 +enable_so_zpl_xattr_acl_set_default_fndecl_37864 zpl_xattr_acl_set_default fndecl 4 37864 NULL
175476 +enable_so_splat_read_fndecl_38116 splat_read fndecl 3 38116 NULL
175477 +enable_so_sa_setup_fndecl_38756 sa_setup fndecl 4 38756 NULL
175478 +enable_so_vdev_disk_physio_fndecl_39898 vdev_disk_physio fndecl 3 39898 NULL
175479 +enable_so_arc_buf_size_fndecl_39982 arc_buf_size fndecl 0 39982 NULL
175480 +enable_so_kzalloc_nofail_fndecl_40719 kzalloc_nofail fndecl 1 40719 NULL
175481 +enable_so_fuidstr_to_sid_fndecl_40777 fuidstr_to_sid fndecl 4 40777 NULL
175482 +enable_so_vdev_raidz_matrix_reconstruct_fndecl_40852 vdev_raidz_matrix_reconstruct fndecl 2-3 40852 NULL
175483 +enable_so_sa_find_layout_fndecl_40892 sa_find_layout fndecl 4 40892 NULL
175484 +enable_so_zpl_xattr_get_dir_fndecl_41918 zpl_xattr_get_dir fndecl 0 41918 NULL
175485 +enable_so_zfs_sa_get_xattr_fndecl_42600 zfs_sa_get_xattr fndecl 0 42600 NULL
175486 +enable_so_zpl_xattr_acl_set_fndecl_42808 zpl_xattr_acl_set fndecl 4 42808 NULL
175487 +enable_so_xdr_dec_array_fndecl_43091 xdr_dec_array fndecl 5 43091 NULL
175488 +enable_so_dsl_dataset_namelen_fndecl_43136 dsl_dataset_namelen fndecl 0 43136 NULL
175489 +enable_so_kcopy_write_fndecl_43683 kcopy_write fndecl 3 43683 NULL
175490 +enable_so_uiomove_fndecl_44355 uiomove fndecl 2 44355 NULL
175491 +enable_so_dmu_read_fndecl_44418 dmu_read fndecl 4-3 44418 NULL
175492 +enable_so_ddi_copyin_fndecl_44846 ddi_copyin fndecl 3 44846 NULL
175493 +enable_so_kcopy_do_get_fndecl_45061 kcopy_do_get fndecl 5 45061 NULL
175494 +enable_so_copyin_fndecl_45945 copyin fndecl 3 45945 NULL
175495 +enable_so_zil_itx_create_fndecl_46555 zil_itx_create fndecl 2 46555 NULL
175496 +enable_so_dmu_write_uio_dbuf_fndecl_48064 dmu_write_uio_dbuf fndecl 3 48064 NULL
175497 +enable_so_blk_rq_pos_fndecl_48233 blk_rq_pos fndecl 0 48233 NULL
175498 +enable_so_spa_history_write_fndecl_49650 spa_history_write fndecl 3 49650 NULL
175499 +enable_so_kcopy_copy_pages_to_user_fndecl_49823 kcopy_copy_pages_to_user fndecl 3-4 49823 NULL
175500 +enable_so_zfs_log_write_fndecl_50162 zfs_log_write fndecl 6-5 50162 NULL
175501 +enable_so_i_fm_alloc_fndecl_51038 i_fm_alloc fndecl 2 51038 NULL
175502 +enable_so_copyout_fndecl_51409 copyout fndecl 3 51409 NULL
175503 +enable_so_zvol_log_write_fndecl_54898 zvol_log_write fndecl 4-3 54898 NULL
175504 +enable_so_zfs_acl_node_alloc_fndecl_55641 zfs_acl_node_alloc fndecl 1 55641 NULL
175505 +enable_so_get_nvlist_fndecl_56685 get_nvlist fndecl 2 56685 NULL
175506 +enable_so_zprop_get_numprops_fndecl_56820 zprop_get_numprops fndecl 0 56820 NULL
175507 +enable_so_splat_taskq_test4_common_fndecl_59829 splat_taskq_test4_common fndecl 5 59829 NULL
175508 +enable_so_zfs_replay_domain_cnt_fndecl_61399 zfs_replay_domain_cnt fndecl 0 61399 NULL
175509 +enable_so_zpios_write_fndecl_61823 zpios_write fndecl 3 61823 NULL
175510 +enable_so_proc_copyin_string_fndecl_62019 proc_copyin_string fndecl 4 62019 NULL
175511 +enable_so_random_get_pseudo_bytes_fndecl_64611 random_get_pseudo_bytes fndecl 2 64611 NULL
175512 +enable_so_zpios_read_fndecl_64734 zpios_read fndecl 3 64734 NULL
175513 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_ipa.c b/tools/gcc/size_overflow_plugin/size_overflow_ipa.c
175514 new file mode 100644
175515 index 0000000..758edea
175516 --- /dev/null
175517 +++ b/tools/gcc/size_overflow_plugin/size_overflow_ipa.c
175518 @@ -0,0 +1,1163 @@
175519 +/*
175520 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
175521 + * Licensed under the GPL v2, or (at your option) v3
175522 + *
175523 + * Homepage:
175524 + * https://github.com/ephox-gcc-plugins/size_overflow
175525 + *
175526 + * Documentation:
175527 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
175528 + *
175529 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
175530 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
175531 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
175532 + *
175533 + * Usage:
175534 + * $ make
175535 + * $ make run
175536 + */
175537 +
175538 +#include "size_overflow.h"
175539 +#include <libgen.h>
175540 +
175541 +static void walk_use_def_next_functions(struct walk_use_def_data *use_def_data, tree lhs);
175542 +
175543 +next_interesting_function_t global_next_interesting_function[GLOBAL_NIFN_LEN];
175544 +static bool global_changed;
175545 +#define PRINT_DATA_FLOW true
175546 +#define NO_PRINT_DATA_FLOW false
175547 +
175548 +static struct cgraph_node_hook_list *function_insertion_hook_holder;
175549 +static struct cgraph_2node_hook_list *node_duplication_hook_holder;
175550 +
175551 +struct cgraph_node *get_cnode(const_tree fndecl)
175552 +{
175553 + gcc_assert(TREE_CODE(fndecl) == FUNCTION_DECL);
175554 +#if BUILDING_GCC_VERSION <= 4005
175555 + return cgraph_get_node(CONST_CAST_TREE(fndecl));
175556 +#else
175557 + return cgraph_get_node(fndecl);
175558 +#endif
175559 +}
175560 +
175561 +static bool compare_next_interesting_functions(next_interesting_function_t cur_node, const char *decl_name, const char *context, unsigned int num)
175562 +{
175563 + // Ignore num without a value
175564 + if (num != NONE_ARGNUM && cur_node->num != num)
175565 + return false;
175566 + if (strcmp(cur_node->context, context))
175567 + return false;
175568 + return !strcmp(cur_node->decl_name, decl_name);
175569 +}
175570 +
175571 +// Return the context of vardecl. If it is in a file scope then the context is vardecl_filebasename
175572 +static const char* get_vardecl_context(const_tree decl)
175573 +{
175574 + expanded_location xloc;
175575 + char *buf, *path;
175576 + const char *bname;
175577 + int len;
175578 +
175579 + xloc = expand_location(DECL_SOURCE_LOCATION(decl));
175580 + gcc_assert(xloc.file);
175581 + path = xstrdup(xloc.file);
175582 + bname = basename(path);
175583 +
175584 + len = asprintf(&buf, "vardecl_%s", bname);
175585 + gcc_assert(len > 0);
175586 + return buf;
175587 +}
175588 +
175589 +// Return the type name for a function pointer (or "fielddecl" if the type has no name), otherwise either "vardecl" or "fndecl"
175590 +const char* get_decl_context(const_tree decl)
175591 +{
175592 + switch (TREE_CODE(decl)) {
175593 + case FUNCTION_DECL:
175594 + return "fndecl";
175595 + // TODO: Ignore anonymous types for now
175596 + case FIELD_DECL:
175597 + return get_type_name_from_field(decl);
175598 + case VAR_DECL:
175599 + if (TREE_PUBLIC(decl) || DECL_EXTERNAL(decl))
175600 + return "vardecl";
175601 + if (TREE_STATIC(decl) && !TREE_PUBLIC(decl))
175602 + return get_vardecl_context(decl);
175603 + // ignore local variable
175604 + if (!TREE_STATIC(decl) && !DECL_EXTERNAL(decl))
175605 + return NULL;
175606 + default:
175607 + debug_tree(decl);
175608 + gcc_unreachable();
175609 + }
175610 +}
175611 +
175612 +// Find the function with the specified argument in the list
175613 +next_interesting_function_t get_global_next_interesting_function_entry(struct fn_raw_data *raw_data)
175614 +{
175615 + next_interesting_function_t cur_node, head;
175616 +
175617 + head = global_next_interesting_function[raw_data->hash];
175618 + for (cur_node = head; cur_node; cur_node = cur_node->next) {
175619 + if (raw_data->marked != ASM_STMT_SO_MARK && cur_node->marked == ASM_STMT_SO_MARK)
175620 + continue;
175621 + if (compare_next_interesting_functions(cur_node, raw_data->decl_str, raw_data->context, raw_data->num))
175622 + return cur_node;
175623 + }
175624 + return NULL;
175625 +}
175626 +
175627 +next_interesting_function_t get_global_next_interesting_function_entry_with_hash(struct fn_raw_data *raw_data)
175628 +{
175629 + raw_data->hash = get_decl_hash(raw_data->decl, raw_data->decl_str);
175630 + if (raw_data->hash == NO_HASH)
175631 + return NULL;
175632 +
175633 + raw_data->context = get_decl_context(raw_data->decl);
175634 + if (!raw_data->context)
175635 + return NULL;
175636 + return get_global_next_interesting_function_entry(raw_data);
175637 +}
175638 +
175639 +next_interesting_function_t create_new_next_interesting_entry(struct fn_raw_data *raw_data, next_interesting_function_t orig_next_node)
175640 +{
175641 + next_interesting_function_t new_node;
175642 +
175643 + new_node = (next_interesting_function_t)xmalloc(sizeof(*new_node));
175644 + new_node->decl_name = xstrdup(raw_data->decl_str);
175645 +
175646 + gcc_assert(raw_data->context);
175647 + new_node->context = xstrdup(raw_data->context);
175648 + new_node->hash = raw_data->hash;
175649 + new_node->num = raw_data->num;
175650 + new_node->next = NULL;
175651 + new_node->children = NULL;
175652 + new_node->marked = raw_data->marked;
175653 + new_node->orig_next_node = orig_next_node;
175654 + return new_node;
175655 +}
175656 +
175657 +// Ignore these functions to not explode coverage (+strncmp+fndecl+3+35130+)
175658 +static bool temporary_skip_these_functions(struct fn_raw_data *raw_data)
175659 +{
175660 + if (raw_data->hash == 35130 && !strcmp(raw_data->decl_str, "strncmp"))
175661 + return true;
175662 + if (raw_data->hash == 46193 && !strcmp(raw_data->decl_str, "strnlen"))
175663 + return true;
175664 + if (raw_data->hash == 43267 && !strcmp(raw_data->decl_str, "strncpy"))
175665 + return true;
175666 + if (raw_data->hash == 10300 && !strcmp(raw_data->decl_str, "strncpy_from_user"))
175667 + return true;
175668 + if (raw_data->hash == 26117 && !strcmp(raw_data->decl_str, "memchr"))
175669 + return true;
175670 + if (raw_data->hash == 16203 && !strcmp(raw_data->decl_str, "memchr_inv"))
175671 + return true;
175672 + if (raw_data->hash == 24269 && !strcmp(raw_data->decl_str, "memcmp"))
175673 + return true;
175674 + if (raw_data->hash == 60390 && !strcmp(raw_data->decl_str, "memcpy"))
175675 + return true;
175676 + if (raw_data->hash == 25040 && !strcmp(raw_data->decl_str, "memmove"))
175677 + return true;
175678 + if (raw_data->hash == 29763 && !strcmp(raw_data->decl_str, "memset"))
175679 + return true;
175680 + return false;
175681 +}
175682 +
175683 +// Create the main data structure
175684 +next_interesting_function_t create_new_next_interesting_decl(struct fn_raw_data *raw_data, next_interesting_function_t orig_next_node)
175685 +{
175686 + enum tree_code decl_code = TREE_CODE(raw_data->decl);
175687 +
175688 + gcc_assert(decl_code == FIELD_DECL || decl_code == FUNCTION_DECL || decl_code == VAR_DECL);
175689 +
175690 + if (is_vararg(raw_data->decl, raw_data->num))
175691 + return NULL;
175692 +
175693 + raw_data->hash = get_decl_hash(raw_data->decl, raw_data->decl_str);
175694 + if (raw_data->hash == NO_HASH)
175695 + return NULL;
175696 + if (get_size_overflow_hash_entry_tree(raw_data->decl, raw_data->num, DISABLE_SIZE_OVERFLOW))
175697 + return NULL;
175698 + if (temporary_skip_these_functions(raw_data))
175699 + return NULL;
175700 +
175701 + gcc_assert(raw_data->num <= MAX_PARAM);
175702 + // Clones must have an orig_next_node
175703 + gcc_assert(!made_by_compiler(raw_data->decl) || orig_next_node);
175704 +
175705 + raw_data->context = get_decl_context(raw_data->decl);
175706 + if (!raw_data->context)
175707 + return NULL;
175708 + return create_new_next_interesting_entry(raw_data, orig_next_node);
175709 +}
175710 +
175711 +void add_to_global_next_interesting_function(next_interesting_function_t new_entry)
175712 +{
175713 + next_interesting_function_t cur_global_head, cur_global, cur_global_end = NULL;
175714 +
175715 + // new_entry is appended to the end of a list
175716 + new_entry->next = NULL;
175717 +
175718 + cur_global_head = global_next_interesting_function[new_entry->hash];
175719 + if (!cur_global_head) {
175720 + global_next_interesting_function[new_entry->hash] = new_entry;
175721 + return;
175722 + }
175723 +
175724 +
175725 + for (cur_global = cur_global_head; cur_global; cur_global = cur_global->next) {
175726 + if (!cur_global->next)
175727 + cur_global_end = cur_global;
175728 +
175729 + if (compare_next_interesting_functions(cur_global, new_entry->decl_name, new_entry->context, new_entry->num))
175730 + return;
175731 + }
175732 +
175733 + gcc_assert(cur_global_end);
175734 + cur_global_end->next = new_entry;
175735 +}
175736 +
175737 +/* If the interesting function is a clone then find or create its original next_interesting_function_t node
175738 + * and add it to global_next_interesting_function
175739 + */
175740 +static next_interesting_function_t create_orig_next_node_for_a_clone(struct fn_raw_data *clone_raw_data)
175741 +{
175742 + struct fn_raw_data orig_raw_data;
175743 + next_interesting_function_t orig_next_node;
175744 + enum tree_code decl_code;
175745 +
175746 + orig_raw_data.decl = get_orig_fndecl(clone_raw_data->decl);
175747 +
175748 + if (DECL_BUILT_IN(orig_raw_data.decl) || DECL_BUILT_IN_CLASS(orig_raw_data.decl) == BUILT_IN_NORMAL)
175749 + return NULL;
175750 +
175751 + if (made_by_compiler(orig_raw_data.decl))
175752 + return NULL;
175753 +
175754 + decl_code = TREE_CODE(orig_raw_data.decl);
175755 + if (decl_code == FIELD_DECL || decl_code == VAR_DECL)
175756 + orig_raw_data.num = clone_raw_data->num;
175757 + else
175758 + orig_raw_data.num = get_correct_argnum(clone_raw_data->decl, orig_raw_data.decl, clone_raw_data->num);
175759 +
175760 + // Skip over ISRA.162 parm decls
175761 + if (orig_raw_data.num == CANNOT_FIND_ARG)
175762 + return NULL;
175763 +
175764 + orig_raw_data.decl_str = get_orig_decl_name(orig_raw_data.decl);
175765 + orig_raw_data.marked = NO_SO_MARK;
175766 + orig_next_node = get_global_next_interesting_function_entry_with_hash(&orig_raw_data);
175767 + if (orig_next_node)
175768 + return orig_next_node;
175769 +
175770 + orig_raw_data.marked = clone_raw_data->marked;
175771 + orig_next_node = create_new_next_interesting_decl(&orig_raw_data, NULL);
175772 + if (!orig_next_node)
175773 + return NULL;
175774 +
175775 + add_to_global_next_interesting_function(orig_next_node);
175776 + return orig_next_node;
175777 +}
175778 +
175779 +// Find or create the next_interesting_function_t node for decl and num
175780 +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)
175781 +{
175782 + next_interesting_function_t cur_next_cnode;
175783 +
175784 + if (DECL_NAME(raw_data->decl) == NULL_TREE)
175785 + return NULL;
175786 + raw_data->decl_str = DECL_NAME_POINTER(raw_data->decl);
175787 +
175788 + cur_next_cnode = get_global_next_interesting_function_entry_with_hash(raw_data);
175789 + if (cur_next_cnode)
175790 + goto out;
175791 +
175792 + if (!orig_next_node && made_by_compiler(raw_data->decl)) {
175793 + orig_next_node = create_orig_next_node_for_a_clone(raw_data);
175794 + if (!orig_next_node)
175795 + return NULL;
175796 + }
175797 +
175798 + cur_next_cnode = create_new_next_interesting_decl(raw_data, orig_next_node);
175799 + if (!cur_next_cnode)
175800 + return NULL;
175801 +
175802 + add_to_global_next_interesting_function(cur_next_cnode);
175803 +out:
175804 + if (cur_next_cnode->marked != raw_data->marked && cur_next_cnode->marked != NO_SO_MARK)
175805 + return cur_next_cnode;
175806 +
175807 + if (raw_data->marked != NO_SO_MARK && cur_next_cnode->marked == NO_SO_MARK)
175808 + cur_next_cnode->marked = raw_data->marked;
175809 +
175810 + return cur_next_cnode;
175811 +}
175812 +
175813 +static bool has_next_interesting_function_chain_node(next_interesting_function_t next_cnodes_head, struct fn_raw_data *raw_data)
175814 +{
175815 + next_interesting_function_t cur_node;
175816 +
175817 + raw_data->decl_str = DECL_NAME_POINTER(raw_data->decl);
175818 + raw_data->context = get_decl_context(raw_data->decl);
175819 + // Ignore function if there is no context
175820 + if (!raw_data->context)
175821 + return true;
175822 +
175823 + for (cur_node = next_cnodes_head; cur_node; cur_node = cur_node->next) {
175824 + if (compare_next_interesting_functions(cur_node, raw_data->decl_str, raw_data->context, raw_data->num))
175825 + return true;
175826 + }
175827 + return false;
175828 +}
175829 +
175830 +static void handle_function(struct walk_use_def_data *use_def_data, tree fndecl, const_tree arg)
175831 +{
175832 + struct fn_raw_data raw_data;
175833 + next_interesting_function_t orig_next_node, new_node;
175834 +
175835 + gcc_assert(fndecl != NULL_TREE);
175836 +
175837 + // ignore builtins to not explode coverage (e.g., memcpy)
175838 + if (DECL_BUILT_IN(fndecl) || DECL_BUILT_IN_CLASS(fndecl) == BUILT_IN_NORMAL)
175839 + return;
175840 +
175841 + if (get_intentional_attr_type(fndecl) == MARK_TURN_OFF)
175842 + return;
175843 +
175844 + raw_data.decl = fndecl;
175845 + raw_data.decl_str = DECL_NAME_POINTER(fndecl);
175846 + raw_data.marked = NO_SO_MARK;
175847 +
175848 + // convert arg into its position
175849 + if (arg == NULL_TREE)
175850 + raw_data.num = 0;
175851 + else
175852 + raw_data.num = find_arg_number_tree(arg, raw_data.decl);
175853 + if (raw_data.num == CANNOT_FIND_ARG)
175854 + return;
175855 +
175856 + if (has_next_interesting_function_chain_node(use_def_data->next_cnodes_head, &raw_data))
175857 + return;
175858 +
175859 + if (made_by_compiler(raw_data.decl)) {
175860 + orig_next_node = create_orig_next_node_for_a_clone(&raw_data);
175861 + if (!orig_next_node)
175862 + return;
175863 + } else
175864 + orig_next_node = NULL;
175865 +
175866 + new_node = create_new_next_interesting_decl(&raw_data, orig_next_node);
175867 + if (!new_node)
175868 + return;
175869 + new_node->next = use_def_data->next_cnodes_head;
175870 + use_def_data->next_cnodes_head = new_node;
175871 +}
175872 +
175873 +static void walk_use_def_next_functions_phi(struct walk_use_def_data *use_def_data, const_tree result)
175874 +{
175875 + gphi *phi = as_a_gphi(get_def_stmt(result));
175876 + unsigned int i, n = gimple_phi_num_args(phi);
175877 +
175878 + pointer_set_insert(use_def_data->visited, phi);
175879 + for (i = 0; i < n; i++) {
175880 + tree arg = gimple_phi_arg_def(phi, i);
175881 +
175882 + walk_use_def_next_functions(use_def_data, arg);
175883 + }
175884 +}
175885 +
175886 +static void walk_use_def_next_functions_binary(struct walk_use_def_data *use_def_data, const_tree lhs)
175887 +{
175888 + gassign *def_stmt = as_a_gassign(get_def_stmt(lhs));
175889 + tree rhs1, rhs2;
175890 +
175891 + rhs1 = gimple_assign_rhs1(def_stmt);
175892 + rhs2 = gimple_assign_rhs2(def_stmt);
175893 +
175894 + walk_use_def_next_functions(use_def_data, rhs1);
175895 + walk_use_def_next_functions(use_def_data, rhs2);
175896 +}
175897 +
175898 +static void walk_use_def_next_functions_unary(struct walk_use_def_data *use_def_data, const gassign *stmt)
175899 +{
175900 + tree rhs1 = gimple_assign_rhs1(stmt);
175901 +
175902 + walk_use_def_next_functions(use_def_data, rhs1);
175903 +}
175904 +
175905 +void __attribute__((weak)) handle_function_ptr_ret(struct walk_use_def_data *use_def_data __unused, const_tree fn_ptr __unused)
175906 +{
175907 +}
175908 +
175909 +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)
175910 +{
175911 + next_interesting_function_t new_node;
175912 +
175913 + if (raw_data->decl == NULL_TREE)
175914 + return;
175915 +
175916 + if (DECL_NAME(raw_data->decl) == NULL_TREE)
175917 + return;
175918 +
175919 + raw_data->decl_str = DECL_NAME_POINTER(raw_data->decl);
175920 + raw_data->num = 0;
175921 + raw_data->marked = NO_SO_MARK;
175922 +
175923 + new_node = create_new_next_interesting_decl(raw_data, NULL);
175924 + if (!new_node)
175925 + return;
175926 + new_node->next = use_def_data->next_cnodes_head;
175927 + use_def_data->next_cnodes_head = new_node;
175928 +}
175929 +
175930 +static void handle_struct_fields(struct walk_use_def_data *use_def_data, const_tree node)
175931 +{
175932 + struct fn_raw_data raw_data;
175933 +
175934 + switch (TREE_CODE(node)) {
175935 + case ARRAY_REF:
175936 +#if BUILDING_GCC_VERSION >= 4006
175937 + case MEM_REF:
175938 +#endif
175939 + case INDIRECT_REF:
175940 + case COMPONENT_REF:
175941 + raw_data.decl = get_ref_field(node);
175942 + break;
175943 + // TODO
175944 + case BIT_FIELD_REF:
175945 + case VIEW_CONVERT_EXPR:
175946 + case REALPART_EXPR:
175947 + case IMAGPART_EXPR:
175948 + return;
175949 + default:
175950 + debug_tree(node);
175951 + gcc_unreachable();
175952 + }
175953 +
175954 + if (get_intentional_attr_type(raw_data.decl) == MARK_TURN_OFF)
175955 + return;
175956 +
175957 + create_and_append_new_next_interesting_field_var_decl(use_def_data, &raw_data);
175958 +}
175959 +
175960 +static void handle_vardecl(struct walk_use_def_data *use_def_data, tree node)
175961 +{
175962 + struct fn_raw_data raw_data;
175963 +
175964 + raw_data.decl = node;
175965 + create_and_append_new_next_interesting_field_var_decl(use_def_data, &raw_data);
175966 +}
175967 +
175968 +/* Find all functions that influence lhs
175969 + *
175970 + * Encountered functions are added to the children vector (next_interesting_function_t).
175971 + */
175972 +static void walk_use_def_next_functions(struct walk_use_def_data *use_def_data, tree lhs)
175973 +{
175974 + enum tree_code code;
175975 + const_gimple def_stmt;
175976 +
175977 + if (skip_types(lhs))
175978 + return;
175979 +
175980 + if (VAR_P(lhs)) {
175981 + handle_vardecl(use_def_data, lhs);
175982 + return;
175983 + }
175984 +
175985 + code = TREE_CODE(lhs);
175986 + if (code == PARM_DECL) {
175987 + handle_function(use_def_data, current_function_decl, lhs);
175988 + return;
175989 + }
175990 +
175991 + if (TREE_CODE_CLASS(code) == tcc_reference) {
175992 + handle_struct_fields(use_def_data, lhs);
175993 + return;
175994 + }
175995 +
175996 + if (code != SSA_NAME)
175997 + return;
175998 +
175999 + def_stmt = get_def_stmt(lhs);
176000 + if (!def_stmt)
176001 + return;
176002 +
176003 + if (pointer_set_insert(use_def_data->visited, def_stmt))
176004 + return;
176005 +
176006 + switch (gimple_code(def_stmt)) {
176007 + case GIMPLE_NOP:
176008 + walk_use_def_next_functions(use_def_data, SSA_NAME_VAR(lhs));
176009 + return;
176010 + case GIMPLE_ASM:
176011 + if (!is_size_overflow_asm(def_stmt))
176012 + return;
176013 + walk_use_def_next_functions(use_def_data, get_size_overflow_asm_input(as_a_const_gasm(def_stmt)));
176014 + return;
176015 + case GIMPLE_CALL: {
176016 + tree fndecl = gimple_call_fndecl(def_stmt);
176017 +
176018 + if (fndecl != NULL_TREE) {
176019 + handle_function(use_def_data, fndecl, NULL_TREE);
176020 + return;
176021 + }
176022 + fndecl = gimple_call_fn(def_stmt);
176023 + handle_function_ptr_ret(use_def_data, fndecl);
176024 + return;
176025 + }
176026 + case GIMPLE_PHI:
176027 + walk_use_def_next_functions_phi(use_def_data, lhs);
176028 + return;
176029 + case GIMPLE_ASSIGN:
176030 + switch (gimple_num_ops(def_stmt)) {
176031 + case 2:
176032 + walk_use_def_next_functions_unary(use_def_data, as_a_const_gassign(def_stmt));
176033 + return;
176034 + case 3:
176035 + walk_use_def_next_functions_binary(use_def_data, lhs);
176036 + return;
176037 + }
176038 + default:
176039 + debug_gimple_stmt((gimple)def_stmt);
176040 + error("%s: unknown gimple code", __func__);
176041 + gcc_unreachable();
176042 + }
176043 +}
176044 +
176045 +// Start the search for next_interesting_function_t children based on the (next_interesting_function_t) parent node
176046 +static next_interesting_function_t search_next_functions(tree node, next_interesting_function_t parent)
176047 +{
176048 + struct walk_use_def_data use_def_data;
176049 +
176050 + use_def_data.parent = parent;
176051 + use_def_data.next_cnodes_head = NULL;
176052 + use_def_data.visited = pointer_set_create();
176053 +
176054 + walk_use_def_next_functions(&use_def_data, node);
176055 +
176056 + pointer_set_destroy(use_def_data.visited);
176057 + return use_def_data.next_cnodes_head;
176058 +}
176059 +
176060 +// True if child already exists in the next_interesting_function_t children vector
176061 +bool has_next_interesting_function_vec(next_interesting_function_t target, next_interesting_function_t next_node)
176062 +{
176063 + unsigned int i;
176064 + next_interesting_function_t cur;
176065 +
176066 + gcc_assert(next_node);
176067 + // handle recursion
176068 + if (!strcmp(target->decl_name, next_node->decl_name) && target->num == next_node->num)
176069 + return true;
176070 +
176071 +#if BUILDING_GCC_VERSION <= 4007
176072 + if (VEC_empty(next_interesting_function_t, target->children))
176073 + return false;
176074 + FOR_EACH_VEC_ELT(next_interesting_function_t, target->children, i, cur) {
176075 +#else
176076 + FOR_EACH_VEC_SAFE_ELT(target->children, i, cur) {
176077 +#endif
176078 + if (compare_next_interesting_functions(cur, next_node->decl_name, next_node->context, next_node->num))
176079 + return true;
176080 + }
176081 + return false;
176082 +}
176083 +
176084 +void push_child(next_interesting_function_t parent, next_interesting_function_t child)
176085 +{
176086 + if (!has_next_interesting_function_vec(parent, child)) {
176087 +#if BUILDING_GCC_VERSION <= 4007
176088 + VEC_safe_push(next_interesting_function_t, heap, parent->children, child);
176089 +#else
176090 + vec_safe_push(parent->children, child);
176091 +#endif
176092 + }
176093 +}
176094 +
176095 +void __attribute__((weak)) check_local_variables(next_interesting_function_t next_node __unused) {}
176096 +
176097 +// Add children to parent and global_next_interesting_function
176098 +static void collect_data_for_execute(next_interesting_function_t parent, next_interesting_function_t children)
176099 +{
176100 + next_interesting_function_t cur = children;
176101 +
176102 + gcc_assert(parent);
176103 +
176104 + while (cur) {
176105 + struct fn_raw_data child_raw_data;
176106 + next_interesting_function_t next, child;
176107 +
176108 + next = cur->next;
176109 +
176110 + child_raw_data.decl_str = cur->decl_name;
176111 + child_raw_data.context = cur->context;
176112 + child_raw_data.hash = cur->hash;
176113 + child_raw_data.num = cur->num;
176114 + child_raw_data.marked = NO_SO_MARK;
176115 + child = get_global_next_interesting_function_entry(&child_raw_data);
176116 + if (!child) {
176117 + add_to_global_next_interesting_function(cur);
176118 + child = cur;
176119 + }
176120 +
176121 + check_local_variables(child);
176122 +
176123 + push_child(parent, child);
176124 +
176125 + cur = next;
176126 + }
176127 +
176128 + check_local_variables(parent);
176129 +}
176130 +
176131 +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)
176132 +{
176133 + return NULL;
176134 +}
176135 +
176136 +static next_interesting_function_t create_parent_next_cnode(const_gimple stmt, unsigned int num)
176137 +{
176138 + struct fn_raw_data raw_data;
176139 +
176140 + raw_data.num = num;
176141 + raw_data.marked = NO_SO_MARK;
176142 +
176143 + switch (gimple_code(stmt)) {
176144 + case GIMPLE_ASM:
176145 + raw_data.decl = current_function_decl;
176146 + raw_data.marked = ASM_STMT_SO_MARK;
176147 + return get_and_create_next_node_from_global_next_nodes(&raw_data, NULL);
176148 + case GIMPLE_CALL:
176149 + raw_data.decl = gimple_call_fndecl(stmt);
176150 + if (raw_data.decl != NULL_TREE)
176151 + return get_and_create_next_node_from_global_next_nodes(&raw_data, NULL);
176152 + raw_data.decl = gimple_call_fn(stmt);
176153 + return get_and_create_next_node_from_global_next_nodes_fnptr(raw_data.decl, &raw_data);
176154 + case GIMPLE_RETURN:
176155 + raw_data.decl = current_function_decl;
176156 + return get_and_create_next_node_from_global_next_nodes(&raw_data, NULL);
176157 + case GIMPLE_ASSIGN: {
176158 + tree lhs = gimple_assign_lhs(stmt);
176159 +
176160 + if (VAR_P(lhs))
176161 + raw_data.decl = lhs;
176162 + else
176163 + raw_data.decl = get_ref_field(lhs);
176164 + if (raw_data.decl == NULL_TREE)
176165 + return NULL;
176166 + return get_and_create_next_node_from_global_next_nodes(&raw_data, NULL);
176167 + }
176168 + default:
176169 + debug_gimple_stmt((gimple)stmt);
176170 + gcc_unreachable();
176171 + }
176172 +}
176173 +
176174 +// Handle potential next_interesting_function_t parent if its argument has an integer type
176175 +static void collect_all_possible_size_overflow_fns(const_gimple stmt, tree start_var, unsigned int num)
176176 +{
176177 + next_interesting_function_t children_next_cnode, parent_next_cnode;
176178 +
176179 + // skip void return values
176180 + if (start_var == NULL_TREE)
176181 + return;
176182 +
176183 + if (skip_types(start_var))
176184 + return;
176185 +
176186 + // handle intentional MARK_TURN_OFF
176187 + if (check_intentional_size_overflow_asm_and_attribute(start_var) == MARK_TURN_OFF)
176188 + return;
176189 +
176190 + parent_next_cnode = create_parent_next_cnode(stmt, num);
176191 + if (!parent_next_cnode)
176192 + return;
176193 +
176194 + children_next_cnode = search_next_functions(start_var, parent_next_cnode);
176195 + collect_data_for_execute(parent_next_cnode, children_next_cnode);
176196 +}
176197 +
176198 +static void collect_all_possible_size_overflow_fields_and_vars(const gassign *assign)
176199 +{
176200 + tree start_var, decl, lhs = gimple_assign_lhs(assign);
176201 +
176202 + if (VAR_P(lhs))
176203 + decl = lhs;
176204 + else
176205 + decl = get_ref_field(lhs);
176206 + if (decl == NULL_TREE)
176207 + return;
176208 +
176209 + if (get_intentional_attr_type(decl) == MARK_TURN_OFF)
176210 + return;
176211 +
176212 + start_var = gimple_assign_rhs1(assign);
176213 + collect_all_possible_size_overflow_fns(assign, start_var, 0);
176214 +
176215 + start_var = gimple_assign_rhs2(assign);
176216 + collect_all_possible_size_overflow_fns(assign, start_var, 0);
176217 +
176218 +#if BUILDING_GCC_VERSION >= 4006
176219 + start_var = gimple_assign_rhs3(assign);
176220 + collect_all_possible_size_overflow_fns(assign, start_var, 0);
176221 +#endif
176222 +}
176223 +
176224 +// Find potential next_interesting_function_t parents
176225 +static void handle_cgraph_node(struct cgraph_node *node)
176226 +{
176227 + basic_block bb;
176228 + tree cur_fndecl = NODE_DECL(node);
176229 +
176230 + set_current_function_decl(cur_fndecl);
176231 +
176232 + FOR_EACH_BB_FN(bb, cfun) {
176233 + gimple_stmt_iterator gsi;
176234 +
176235 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
176236 + tree start_var;
176237 + gimple stmt = gsi_stmt(gsi);
176238 +
176239 + switch (gimple_code(stmt)) {
176240 + case GIMPLE_RETURN: {
176241 + const greturn *return_stmt = as_a_const_greturn(stmt);
176242 +
176243 + start_var = gimple_return_retval(return_stmt);
176244 + collect_all_possible_size_overflow_fns(return_stmt, start_var, 0);
176245 + break;
176246 + }
176247 + case GIMPLE_ASM: {
176248 + const gasm *asm_stmt = as_a_const_gasm(stmt);
176249 +
176250 + if (!is_size_overflow_insert_check_asm(asm_stmt))
176251 + break;
176252 + start_var = get_size_overflow_asm_input(asm_stmt);
176253 + collect_all_possible_size_overflow_fns(asm_stmt, start_var, 0);
176254 + break;
176255 + }
176256 + case GIMPLE_CALL: {
176257 + unsigned int i, len;
176258 + const gcall *call = as_a_const_gcall(stmt);
176259 + tree fndecl = gimple_call_fndecl(call);
176260 +
176261 + if (fndecl != NULL_TREE && (DECL_BUILT_IN(fndecl) || DECL_BUILT_IN_CLASS(fndecl) == BUILT_IN_NORMAL))
176262 + break;
176263 +
176264 + len = gimple_call_num_args(call);
176265 + for (i = 0; i < len; i++) {
176266 + start_var = gimple_call_arg(call, i);
176267 + collect_all_possible_size_overflow_fns(call, start_var, i + 1);
176268 + }
176269 + break;
176270 + }
176271 + case GIMPLE_ASSIGN:
176272 + collect_all_possible_size_overflow_fields_and_vars(as_a_const_gassign(stmt));
176273 + break;
176274 + default:
176275 + break;
176276 + }
176277 + }
176278 + }
176279 +
176280 + unset_current_function_decl();
176281 +}
176282 +
176283 +/* Collect all potentially interesting function parameters and return values of integer types
176284 + * and store their data flow dependencies
176285 + */
176286 +static void size_overflow_generate_summary(void)
176287 +{
176288 + struct cgraph_node *node;
176289 +
176290 + size_overflow_register_hooks();
176291 +
176292 + FOR_EACH_FUNCTION(node) {
176293 + if (is_valid_cgraph_node(node))
176294 + handle_cgraph_node(node);
176295 + }
176296 +}
176297 +
176298 +static void size_overflow_function_insertion_hook(struct cgraph_node *node __unused, void *data __unused)
176299 +{
176300 + debug_cgraph_node(node);
176301 + gcc_unreachable();
176302 +}
176303 +
176304 +/* Handle dst if src is in the global_next_interesting_function list.
176305 + * If src is a clone then dst inherits the orig_next_node of src otherwise
176306 + * src will become the orig_next_node of dst.
176307 + */
176308 +static void size_overflow_node_duplication_hook(struct cgraph_node *src, struct cgraph_node *dst, void *data __unused)
176309 +{
176310 + next_interesting_function_t head, cur;
176311 + struct fn_raw_data src_raw_data;
176312 +
176313 + src_raw_data.decl = NODE_DECL(src);
176314 + src_raw_data.decl_str = DECL_NAME_POINTER(src_raw_data.decl);
176315 + src_raw_data.context = get_decl_context(src_raw_data.decl);
176316 + if (!src_raw_data.context)
176317 + return;
176318 +
176319 + src_raw_data.num = NONE_ARGNUM;
176320 + src_raw_data.marked = NO_SO_MARK;
176321 +
176322 + head = get_global_next_interesting_function_entry_with_hash(&src_raw_data);
176323 + if (!head)
176324 + return;
176325 +
176326 + for (cur = head; cur; cur = cur->next) {
176327 + struct fn_raw_data dst_raw_data;
176328 + next_interesting_function_t orig_next_node, next_node;
176329 +
176330 + if (!compare_next_interesting_functions(cur, src_raw_data.decl_str, src_raw_data.context, src_raw_data.num))
176331 + continue;
176332 +
176333 + dst_raw_data.decl = NODE_DECL(dst);
176334 + dst_raw_data.decl_str = cgraph_node_name(dst);
176335 + dst_raw_data.marked = cur->marked;
176336 +
176337 + if (!made_by_compiler(dst_raw_data.decl))
176338 + break;
176339 +
176340 + // For clones use the original node instead
176341 + if (cur->orig_next_node)
176342 + orig_next_node = cur->orig_next_node;
176343 + else
176344 + orig_next_node = cur;
176345 +
176346 + dst_raw_data.num = get_correct_argnum_fndecl(src_raw_data.decl, dst_raw_data.decl, cur->num);
176347 + if (dst_raw_data.num == CANNOT_FIND_ARG)
176348 + continue;
176349 +
176350 + next_node = create_new_next_interesting_decl(&dst_raw_data, orig_next_node);
176351 + if (next_node)
176352 + add_to_global_next_interesting_function(next_node);
176353 + }
176354 +}
176355 +
176356 +void size_overflow_register_hooks(void)
176357 +{
176358 + static bool init_p = false;
176359 +
176360 + if (init_p)
176361 + return;
176362 + init_p = true;
176363 +
176364 + function_insertion_hook_holder = cgraph_add_function_insertion_hook(&size_overflow_function_insertion_hook, NULL);
176365 + node_duplication_hook_holder = cgraph_add_node_duplication_hook(&size_overflow_node_duplication_hook, NULL);
176366 +}
176367 +
176368 +static void set_yes_so_mark(next_interesting_function_t next_node)
176369 +{
176370 + if (next_node->marked == NO_SO_MARK) {
176371 + next_node->marked = YES_SO_MARK;
176372 + global_changed = true;
176373 + }
176374 + // Mark the orig decl as well if it's a clone
176375 + if (next_node->orig_next_node && next_node->orig_next_node->marked == NO_SO_MARK) {
176376 + next_node->orig_next_node->marked = YES_SO_MARK;
176377 + global_changed = true;
176378 + }
176379 +}
176380 +
176381 +// Determine whether node or orig node is part of a tracked data flow
176382 +static bool marked_fn(next_interesting_function_t next_node)
176383 +{
176384 + bool is_marked_fn, is_marked_orig = false;
176385 +
176386 + is_marked_fn = next_node->marked != NO_SO_MARK;
176387 +
176388 + if (next_node->orig_next_node)
176389 + is_marked_orig = next_node->orig_next_node->marked != NO_SO_MARK;
176390 +
176391 + return is_marked_fn || is_marked_orig;
176392 +}
176393 +
176394 +// Determine whether node or orig node is in the hash table already
176395 +static bool already_in_the_hashtable(next_interesting_function_t next_node)
176396 +{
176397 + if (next_node->orig_next_node)
176398 + next_node = next_node->orig_next_node;
176399 + return get_size_overflow_hash_entry(next_node->hash, next_node->decl_name, next_node->context, next_node->num) != NULL;
176400 +}
176401 +
176402 +// Propagate the size_overflow marks up the use-def chains
176403 +static bool has_marked_child(next_interesting_function_t next_node)
176404 +{
176405 + bool ret = false;
176406 + unsigned int i;
176407 + next_interesting_function_t child;
176408 +
176409 +#if BUILDING_GCC_VERSION <= 4007
176410 + if (VEC_empty(next_interesting_function_t, next_node->children))
176411 + return false;
176412 + FOR_EACH_VEC_ELT(next_interesting_function_t, next_node->children, i, child) {
176413 +#else
176414 + FOR_EACH_VEC_SAFE_ELT(next_node->children, i, child) {
176415 +#endif
176416 + if (marked_fn(child) || already_in_the_hashtable(child))
176417 + ret = true;
176418 + }
176419 +
176420 + return ret;
176421 +}
176422 +
176423 +/* Set YES_SO_MARK on the function, its orig node and children if:
176424 + * * the function or its orig node or one of its children is in the hash table already
176425 + * * the function's orig node is marked with YES_SO_MARK or ASM_STMT_SO_MARK
176426 + * * one of the children is marked with YES_SO_MARK or ASM_STMT_SO_MARK
176427 + */
176428 +static bool set_fn_so_mark(next_interesting_function_t next_node)
176429 +{
176430 + bool so_fn, so_hashtable, so_child;
176431 +
176432 + so_hashtable = already_in_the_hashtable(next_node);
176433 + so_fn = marked_fn(next_node);
176434 + so_child = has_marked_child(next_node);
176435 +
176436 + if (!so_fn && !so_hashtable && !so_child)
176437 + return false;
176438 + set_yes_so_mark(next_node);
176439 + return true;
176440 +}
176441 +
176442 +// Determine if any of the function pointer targets have data flow between the return value and one of the arguments
176443 +static next_interesting_function_t get_same_not_ret_child(next_interesting_function_t parent)
176444 +{
176445 + unsigned int i;
176446 + next_interesting_function_t child;
176447 +
176448 +#if BUILDING_GCC_VERSION <= 4007
176449 + if (VEC_empty(next_interesting_function_t, parent->children))
176450 + return NULL;
176451 + FOR_EACH_VEC_ELT(next_interesting_function_t, parent->children, i, child) {
176452 +#else
176453 + FOR_EACH_VEC_SAFE_ELT(parent->children, i, child) {
176454 +#endif
176455 + if (child->num == 0)
176456 + continue;
176457 + if (strcmp(parent->decl_name, child->decl_name))
176458 + continue;
176459 + if (!strcmp(child->context, "fndecl"))
176460 + return child;
176461 + }
176462 + return NULL;
176463 +}
176464 +
176465 +/* Trace a return value of function pointer type back to an argument via a concrete function
176466 + fnptr 0 && fn 0 && (fn 0 -> fn 2) => fnptr 2 */
176467 +static void search_missing_fptr_arg(next_interesting_function_t parent)
176468 +{
176469 + next_interesting_function_t child;
176470 + unsigned int i;
176471 +#if BUILDING_GCC_VERSION <= 4007
176472 + VEC(next_interesting_function_t, heap) *new_children = NULL;
176473 +#else
176474 + vec<next_interesting_function_t, va_heap, vl_embed> *new_children = NULL;
176475 +#endif
176476 +
176477 + if (parent->num != 0)
176478 + return;
176479 + if (!strcmp(parent->context, "fndecl"))
176480 + return;
176481 + if (!strncmp(parent->context, "vardecl", sizeof("vardecl") - 1))
176482 + return;
176483 +
176484 + // fnptr 0 && fn 0
176485 +#if BUILDING_GCC_VERSION <= 4007
176486 + if (VEC_empty(next_interesting_function_t, parent->children))
176487 + return;
176488 + FOR_EACH_VEC_ELT(next_interesting_function_t, parent->children, i, child) {
176489 +#else
176490 + FOR_EACH_VEC_SAFE_ELT(parent->children, i, child) {
176491 +#endif
176492 + next_interesting_function_t cur_next_node, tracked_fn;
176493 +
176494 + if (child->num != 0)
176495 + continue;
176496 + // (fn 0 -> fn 2)
176497 + tracked_fn = get_same_not_ret_child(child);
176498 + if (!tracked_fn)
176499 + continue;
176500 +
176501 + // fn 2 => fnptr 2
176502 + for (cur_next_node = global_next_interesting_function[parent->hash]; cur_next_node; cur_next_node = cur_next_node->next) {
176503 + if (cur_next_node->num != tracked_fn->num)
176504 + continue;
176505 +
176506 + if (strcmp(parent->decl_name, cur_next_node->decl_name))
176507 + continue;
176508 +
176509 + if (!has_next_interesting_function_vec(parent, cur_next_node)) {
176510 +#if BUILDING_GCC_VERSION <= 4007
176511 + VEC_safe_push(next_interesting_function_t, heap, new_children, cur_next_node);
176512 +#else
176513 + vec_safe_push(new_children, cur_next_node);
176514 +#endif
176515 + }
176516 + }
176517 + }
176518 +
176519 +#if BUILDING_GCC_VERSION == 4005
176520 + if (VEC_empty(next_interesting_function_t, new_children))
176521 + return;
176522 + FOR_EACH_VEC_ELT(next_interesting_function_t, new_children, i, child)
176523 + VEC_safe_push(next_interesting_function_t, heap, parent->children, child);
176524 +#elif BUILDING_GCC_VERSION <= 4007
176525 + VEC_safe_splice(next_interesting_function_t, heap, parent->children, new_children);
176526 +#else
176527 + vec_safe_splice(parent->children, new_children);
176528 +#endif
176529 +}
176530 +
176531 +static void walk_so_marked_fns(next_interesting_function_set *visited, next_interesting_function_t parent, bool debug)
176532 +{
176533 + unsigned int i;
176534 + next_interesting_function_t child;
176535 +
176536 + gcc_assert(parent);
176537 + if (!set_fn_so_mark(parent))
176538 + return;
176539 +
176540 +#if BUILDING_GCC_VERSION <= 4007
176541 + if (VEC_empty(next_interesting_function_t, parent->children))
176542 + return;
176543 + FOR_EACH_VEC_ELT(next_interesting_function_t, parent->children, i, child) {
176544 +#else
176545 + FOR_EACH_VEC_SAFE_ELT(parent->children, i, child) {
176546 +#endif
176547 + set_yes_so_mark(child);
176548 +
176549 + if (in_lto_p && debug == PRINT_DATA_FLOW) {
176550 + fprintf(stderr, " PARENT: decl: %s-%u context: %s %p\n", parent->decl_name, parent->num, parent->context, parent);
176551 + fprintf(stderr, " \tCHILD: decl: %s-%u context: %s %p\n", child->decl_name, child->num, child->context, child);
176552 + }
176553 +
176554 + if (!pointer_set_insert(visited, child))
176555 + walk_so_marked_fns(visited, child, debug);
176556 + }
176557 +}
176558 +
176559 +// Do a depth-first recursive dump of the next_interesting_function_t children vector
176560 +static void print_missing_functions(next_interesting_function_set *visited, next_interesting_function_t parent)
176561 +{
176562 + unsigned int i;
176563 + next_interesting_function_t child;
176564 +
176565 + gcc_assert(parent);
176566 + gcc_assert(parent->marked != NO_SO_MARK);
176567 + print_missing_function(parent);
176568 +
176569 +#if BUILDING_GCC_VERSION <= 4007
176570 + if (VEC_empty(next_interesting_function_t, parent->children))
176571 + return;
176572 + FOR_EACH_VEC_ELT(next_interesting_function_t, parent->children, i, child) {
176573 +#else
176574 + FOR_EACH_VEC_SAFE_ELT(parent->children, i, child) {
176575 +#endif
176576 + gcc_assert(child->marked != NO_SO_MARK);
176577 + if (!pointer_set_insert(visited, child))
176578 + print_missing_functions(visited, child);
176579 + }
176580 +}
176581 +
176582 +// Set YES_SO_MARK on functions that will be emitted into the hash table
176583 +static void search_so_marked_fns(bool debug)
176584 +{
176585 +
176586 + unsigned int i;
176587 + next_interesting_function_set *visited;
176588 + next_interesting_function_t cur_global;
176589 +
176590 + visited = next_interesting_function_pointer_set_create();
176591 + for (i = 0; i < GLOBAL_NIFN_LEN; i++) {
176592 + for (cur_global = global_next_interesting_function[i]; cur_global; cur_global = cur_global->next) {
176593 + if (cur_global->marked == NO_SO_MARK || pointer_set_insert(visited, cur_global))
176594 + continue;
176595 +
176596 + if (in_lto_p && debug == PRINT_DATA_FLOW)
176597 + fprintf(stderr, "Data flow: decl: %s-%u context: %s %p\n", cur_global->decl_name, cur_global->num, cur_global->context, cur_global);
176598 +
176599 + walk_so_marked_fns(visited, cur_global, debug);
176600 +
176601 + if (in_lto_p && debug == PRINT_DATA_FLOW)
176602 + fprintf(stderr, "\n");
176603 + }
176604 + }
176605 + pointer_set_destroy(visited);
176606 +}
176607 +
176608 +// Print functions missing from the hash table
176609 +static void print_so_marked_fns(void)
176610 +{
176611 + unsigned int i;
176612 + next_interesting_function_set *visited;
176613 + next_interesting_function_t cur_global;
176614 +
176615 + visited = next_interesting_function_pointer_set_create();
176616 + for (i = 0; i < GLOBAL_NIFN_LEN; i++) {
176617 + for (cur_global = global_next_interesting_function[i]; cur_global; cur_global = cur_global->next) {
176618 + if (cur_global->marked != NO_SO_MARK && !pointer_set_insert(visited, cur_global))
176619 + print_missing_functions(visited, cur_global);
176620 + }
176621 + }
176622 + pointer_set_destroy(visited);
176623 +}
176624 +
176625 +void __attribute__((weak)) check_global_variables(next_interesting_function_t cur_global __unused) {}
176626 +
176627 +// Print all missing interesting functions
176628 +static unsigned int size_overflow_execute(void)
176629 +{
176630 + unsigned int i;
176631 + next_interesting_function_t cur_global;
176632 +
176633 + if (flag_lto && !in_lto_p)
176634 + return 0;
176635 +
176636 + // Collect vardecls and funtions reachable by function pointers
176637 + for (i = 0; i < GLOBAL_NIFN_LEN; i++) {
176638 + for (cur_global = global_next_interesting_function[i]; cur_global; cur_global = cur_global->next) {
176639 + check_global_variables(cur_global);
176640 + search_missing_fptr_arg(cur_global);
176641 + }
176642 + }
176643 +
176644 + search_so_marked_fns(PRINT_DATA_FLOW);
176645 + while (global_changed) {
176646 + global_changed = false;
176647 + search_so_marked_fns(NO_PRINT_DATA_FLOW);
176648 + }
176649 +
176650 + print_so_marked_fns();
176651 +
176652 + if (in_lto_p) {
176653 + fprintf(stderr, "%s: SIZE_OVERFLOW EXECUTE\n", __func__);
176654 + print_global_next_interesting_functions();
176655 + }
176656 +
176657 + return 0;
176658 +}
176659 +
176660 +// Omit the IPA/LTO callbacks until https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61311 gets fixed (license concerns)
176661 +#if BUILDING_GCC_VERSION >= 4008
176662 +void __attribute__((weak)) size_overflow_write_summary(void) {}
176663 +void __attribute__((weak)) size_overflow_write_optimization_summary(void) {}
176664 +#elif BUILDING_GCC_VERSION >= 4006
176665 +void __attribute__((weak)) size_overflow_write_summary(cgraph_node_set set __unused, varpool_node_set vset __unused) {}
176666 +void __attribute__((weak)) size_overflow_write_optimization_summary(cgraph_node_set set __unused, varpool_node_set vset __unused) {}
176667 +#else
176668 +void __attribute__((weak)) size_overflow_write_summary(cgraph_node_set set __unused) {}
176669 +void __attribute__((weak)) size_overflow_write_optimization_summary(cgraph_node_set set __unused) {}
176670 +#endif
176671 +
176672 +void __attribute__((weak)) size_overflow_read_summary(void);
176673 +void __attribute__((weak)) size_overflow_read_optimization_summary(void);
176674 +
176675 +#define PASS_NAME size_overflow
176676 +
176677 +#define NO_STMT_FIXUP
176678 +#define NO_VARIABLE_TRANSFORM
176679 +#define NO_GATE
176680 +
176681 +#include "gcc-generate-ipa-pass.h"
176682 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_misc.c b/tools/gcc/size_overflow_plugin/size_overflow_misc.c
176683 new file mode 100644
176684 index 0000000..a44ea14
176685 --- /dev/null
176686 +++ b/tools/gcc/size_overflow_plugin/size_overflow_misc.c
176687 @@ -0,0 +1,505 @@
176688 +/*
176689 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
176690 + * Licensed under the GPL v2, or (at your option) v3
176691 + *
176692 + * Homepage:
176693 + * https://github.com/ephox-gcc-plugins/size_overflow
176694 + *
176695 + * Documentation:
176696 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
176697 + *
176698 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
176699 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
176700 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
176701 + *
176702 + * Usage:
176703 + * $ make
176704 + * $ make run
176705 + */
176706 +
176707 +#include "size_overflow.h"
176708 +
176709 +bool is_vararg(const_tree fn, unsigned int num)
176710 +{
176711 + tree arg_list;
176712 +
176713 + if (num == 0)
176714 + return false;
176715 + if (fn == NULL_TREE)
176716 + return false;
176717 + if (TREE_CODE(fn) != FUNCTION_DECL)
176718 + return false;
176719 +
176720 + arg_list = TYPE_ARG_TYPES(TREE_TYPE(fn));
176721 + if (arg_list == NULL_TREE)
176722 + return false;
176723 +
176724 + if (tree_last(arg_list) == void_list_node)
176725 + return false;
176726 +
176727 + return num >= (unsigned int)list_length(arg_list);
176728 +}
176729 +
176730 +// Extract the field decl from memory references
176731 +tree get_ref_field(const_tree ref)
176732 +{
176733 + tree field;
176734 +
176735 + // TODO: handle nested memory references
176736 + switch (TREE_CODE(ref)) {
176737 + case ARRAY_REF:
176738 + return NULL_TREE;
176739 +#if BUILDING_GCC_VERSION >= 4006
176740 + case MEM_REF:
176741 +#endif
176742 + case INDIRECT_REF:
176743 + field = TREE_OPERAND(ref, 0);
176744 + break;
176745 + case COMPONENT_REF:
176746 + field = TREE_OPERAND(ref, 1);
176747 + break;
176748 + default:
176749 + return NULL_TREE;
176750 + }
176751 +
176752 + // TODO
176753 + if (TREE_CODE(field) == SSA_NAME)
176754 + return NULL_TREE;
176755 + // TODO
176756 + if (TREE_CODE(field) != FIELD_DECL)
176757 + return NULL_TREE;
176758 + // TODO
176759 + if (TREE_CODE(field) == ADDR_EXPR)
176760 + return NULL_TREE;
176761 +
176762 + return field;
176763 +}
176764 +
176765 +const char *get_type_name_from_field(const_tree field_decl)
176766 +{
176767 + const_tree context, type_name;
176768 +
176769 + if (TREE_CODE(field_decl) != FIELD_DECL)
176770 + return NULL;
176771 +
176772 + context = DECL_CONTEXT(field_decl);
176773 + // TODO
176774 + if (TREE_CODE(context) != RECORD_TYPE)
176775 + return NULL;
176776 + gcc_assert(TREE_CODE(context) == RECORD_TYPE);
176777 + type_name = TYPE_NAME(TYPE_MAIN_VARIANT(context));
176778 + if (type_name == NULL_TREE)
176779 + return NULL;
176780 +
176781 + if (TREE_CODE(type_name) == IDENTIFIER_NODE)
176782 + return IDENTIFIER_POINTER(type_name);
176783 + else if (TREE_CODE(type_name) == TYPE_DECL)
176784 + return DECL_NAME_POINTER(type_name);
176785 +
176786 + debug_tree(field_decl);
176787 + debug_tree(type_name);
176788 + gcc_unreachable();
176789 +}
176790 +
176791 +// Was the function created by the compiler itself?
176792 +bool made_by_compiler(const_tree decl)
176793 +{
176794 + enum tree_code decl_code;
176795 + struct cgraph_node *node;
176796 +
176797 + if (FUNCTION_PTR_P(decl))
176798 + return false;
176799 + decl_code = TREE_CODE(decl);
176800 + if (decl_code == VAR_DECL || decl_code == FIELD_DECL)
176801 + return false;
176802 +
176803 + gcc_assert(decl_code == FUNCTION_DECL);
176804 + if (DECL_ABSTRACT_ORIGIN(decl) != NULL_TREE && DECL_ABSTRACT_ORIGIN(decl) != decl)
176805 + return true;
176806 + if (DECL_ARTIFICIAL(decl))
176807 + return true;
176808 +
176809 + node = get_cnode(decl);
176810 + if (!node)
176811 + return false;
176812 + return node->clone_of != NULL;
176813 +}
176814 +
176815 +bool skip_types(const_tree var)
176816 +{
176817 + const_tree type;
176818 +
176819 + type = TREE_TYPE(var);
176820 + if (type == NULL_TREE)
176821 + return true;
176822 +
176823 + switch (TREE_CODE(type)) {
176824 + case INTEGER_TYPE:
176825 + case ENUMERAL_TYPE:
176826 + return false;
176827 + default:
176828 + return true;
176829 + }
176830 +}
176831 +
176832 +gimple get_fnptr_def_stmt(const_tree fn_ptr)
176833 +{
176834 + gimple def_stmt;
176835 +
176836 + gcc_assert(fn_ptr != NULL_TREE);
176837 + gcc_assert(FUNCTION_PTR_P(fn_ptr));
176838 +
176839 + if (is_gimple_constant(fn_ptr))
176840 + return NULL;
176841 +
176842 + def_stmt = get_def_stmt(fn_ptr);
176843 + gcc_assert(def_stmt);
176844 + return def_stmt;
176845 +}
176846 +
176847 +gimple get_def_stmt(const_tree node)
176848 +{
176849 + gcc_assert(node != NULL_TREE);
176850 +
176851 + if (TREE_CODE(node) != SSA_NAME)
176852 + return NULL;
176853 + return SSA_NAME_DEF_STMT(node);
176854 +}
176855 +
176856 +tree create_new_var(tree type)
176857 +{
176858 + tree new_var = create_tmp_var(type, "cicus");
176859 +
176860 + add_referenced_var(new_var);
176861 + return new_var;
176862 +}
176863 +
176864 +static bool skip_cast(tree dst_type, const_tree rhs, bool force)
176865 +{
176866 + const_gimple def_stmt = get_def_stmt(rhs);
176867 +
176868 + if (force)
176869 + return false;
176870 +
176871 + if (is_gimple_constant(rhs))
176872 + return false;
176873 +
176874 + if (!def_stmt || gimple_code(def_stmt) == GIMPLE_NOP)
176875 + return false;
176876 +
176877 + if (!types_compatible_p(dst_type, TREE_TYPE(rhs)))
176878 + return false;
176879 +
176880 + // DI type can be on 32 bit (from create_assign) but overflow type stays DI
176881 + if (LONG_TYPE_SIZE == GET_MODE_BITSIZE(SImode))
176882 + return false;
176883 +
176884 + return true;
176885 +}
176886 +
176887 +tree cast_a_tree(tree type, tree var)
176888 +{
176889 + gcc_assert(type != NULL_TREE);
176890 + gcc_assert(var != NULL_TREE);
176891 + gcc_assert(fold_convertible_p(type, var));
176892 +
176893 + return fold_convert(type, var);
176894 +}
176895 +
176896 +gimple build_cast_stmt(struct visited *visited, tree dst_type, tree rhs, tree lhs, gimple_stmt_iterator *gsi, bool before, bool force)
176897 +{
176898 + gassign *assign;
176899 + gimple def_stmt;
176900 +
176901 + gcc_assert(dst_type != NULL_TREE && rhs != NULL_TREE);
176902 + gcc_assert(!is_gimple_constant(rhs));
176903 + if (gsi_end_p(*gsi) && before == AFTER_STMT)
176904 + gcc_unreachable();
176905 +
176906 + def_stmt = get_def_stmt(rhs);
176907 + if (def_stmt && gimple_code(def_stmt) != GIMPLE_NOP && skip_cast(dst_type, rhs, force) && pointer_set_contains(visited->my_stmts, def_stmt))
176908 + return def_stmt;
176909 +
176910 + if (lhs == CREATE_NEW_VAR)
176911 + lhs = create_new_var(dst_type);
176912 +
176913 + assign = gimple_build_assign(lhs, cast_a_tree(dst_type, rhs));
176914 +
176915 + if (!gsi_end_p(*gsi)) {
176916 + location_t loc = gimple_location(gsi_stmt(*gsi));
176917 + gimple_set_location(assign, loc);
176918 + }
176919 +
176920 + gimple_assign_set_lhs(assign, make_ssa_name(lhs, assign));
176921 +
176922 + if (before)
176923 + gsi_insert_before(gsi, assign, GSI_NEW_STMT);
176924 + else
176925 + gsi_insert_after(gsi, assign, GSI_NEW_STMT);
176926 + update_stmt(assign);
176927 + return assign;
176928 +}
176929 +
176930 +bool is_size_overflow_type(const_tree var)
176931 +{
176932 + const char *name;
176933 + const_tree type_name, type;
176934 +
176935 + if (var == NULL_TREE)
176936 + return false;
176937 +
176938 + type = TREE_TYPE(var);
176939 + type_name = TYPE_NAME(type);
176940 + if (type_name == NULL_TREE)
176941 + return false;
176942 +
176943 + if (DECL_P(type_name))
176944 + name = DECL_NAME_POINTER(type_name);
176945 + else
176946 + name = IDENTIFIER_POINTER(type_name);
176947 +
176948 + if (!strncmp(name, "size_overflow_type", 18))
176949 + return true;
176950 + return false;
176951 +}
176952 +
176953 +// Determine if a cloned function has all the original arguments
176954 +static bool unchanged_arglist(struct cgraph_node *new_node, struct cgraph_node *old_node)
176955 +{
176956 + const_tree new_decl_list, old_decl_list;
176957 +
176958 + if (new_node->clone_of && new_node->clone.tree_map)
176959 + return !new_node->clone.args_to_skip;
176960 +
176961 + new_decl_list = DECL_ARGUMENTS(NODE_DECL(new_node));
176962 + old_decl_list = DECL_ARGUMENTS(NODE_DECL(old_node));
176963 + if (new_decl_list != NULL_TREE && old_decl_list != NULL_TREE)
176964 + gcc_assert(list_length(new_decl_list) == list_length(old_decl_list));
176965 +
176966 + return true;
176967 +}
176968 +
176969 +unsigned int get_correct_argnum_fndecl(const_tree fndecl, const_tree correct_argnum_of_fndecl, unsigned int num)
176970 +{
176971 + unsigned int new_num;
176972 + const_tree fndecl_arg;
176973 + tree fndecl_arglist = DECL_ARGUMENTS(fndecl);
176974 + const_tree arg, target_fndecl_arglist;
176975 +
176976 + if (num == 0)
176977 + return num;
176978 +
176979 + if (fndecl == correct_argnum_of_fndecl && !DECL_ARTIFICIAL(fndecl))
176980 + return num;
176981 + else if (fndecl == correct_argnum_of_fndecl && DECL_ARTIFICIAL(fndecl))
176982 + return CANNOT_FIND_ARG;
176983 +
176984 + target_fndecl_arglist = DECL_ARGUMENTS(correct_argnum_of_fndecl);
176985 + if (fndecl_arglist == NULL_TREE || target_fndecl_arglist == NULL_TREE)
176986 + return CANNOT_FIND_ARG;
176987 +
176988 + fndecl_arg = chain_index(num - 1, fndecl_arglist);
176989 + if (fndecl_arg == NULL_TREE)
176990 + return CANNOT_FIND_ARG;
176991 +
176992 + for (arg = target_fndecl_arglist, new_num = 1; arg; arg = TREE_CHAIN(arg), new_num++) {
176993 + if (arg == fndecl_arg || !strcmp(DECL_NAME_POINTER(arg), DECL_NAME_POINTER(fndecl_arg)))
176994 + return new_num;
176995 + }
176996 +
176997 + return CANNOT_FIND_ARG;
176998 +}
176999 +
177000 +// Find the specified argument in the originally cloned function
177001 +static unsigned int clone_argnum_on_orig(struct cgraph_node *new_node, struct cgraph_node *old_node, unsigned int clone_argnum)
177002 +{
177003 + bitmap args_to_skip;
177004 + unsigned int i, new_argnum = clone_argnum;
177005 +
177006 + if (unchanged_arglist(new_node, old_node))
177007 + return clone_argnum;
177008 +
177009 + gcc_assert(new_node->clone_of && new_node->clone.tree_map);
177010 + args_to_skip = new_node->clone.args_to_skip;
177011 + for (i = 0; i < clone_argnum; i++) {
177012 + if (bitmap_bit_p(args_to_skip, i))
177013 + new_argnum++;
177014 + }
177015 + return new_argnum;
177016 +}
177017 +
177018 +// Find the specified argument in the clone
177019 +static unsigned int orig_argnum_on_clone(struct cgraph_node *new_node, struct cgraph_node *old_node, unsigned int orig_argnum)
177020 +{
177021 + bitmap args_to_skip;
177022 + unsigned int i, new_argnum = orig_argnum;
177023 +
177024 + if (unchanged_arglist(new_node, old_node))
177025 + return orig_argnum;
177026 +
177027 + gcc_assert(new_node->clone_of && new_node->clone.tree_map);
177028 + args_to_skip = new_node->clone.args_to_skip;
177029 + if (bitmap_bit_p(args_to_skip, orig_argnum - 1))
177030 + // XXX torolni kellene a nodeot
177031 + return CANNOT_FIND_ARG;
177032 +
177033 + for (i = 0; i < orig_argnum; i++) {
177034 + if (bitmap_bit_p(args_to_skip, i))
177035 + new_argnum--;
177036 + }
177037 + return new_argnum;
177038 +}
177039 +
177040 +// Associate the argument between a clone and a cloned function
177041 +static unsigned int get_correct_argnum_cnode(struct cgraph_node *node, struct cgraph_node *correct_argnum_of_node, unsigned int argnum)
177042 +{
177043 + bool node_clone, correct_argnum_of_node_clone;
177044 + const_tree correct_argnum_of_node_decl, node_decl;
177045 +
177046 + if (node == correct_argnum_of_node)
177047 + return argnum;
177048 + if (argnum == 0)
177049 + return argnum;
177050 +
177051 + correct_argnum_of_node_decl = NODE_DECL(correct_argnum_of_node);
177052 + gcc_assert(correct_argnum_of_node_decl != NULL_TREE);
177053 + gcc_assert(correct_argnum_of_node && !DECL_ARTIFICIAL(correct_argnum_of_node_decl));
177054 +
177055 + if (node) {
177056 + node_decl = NODE_DECL(node);
177057 + gcc_assert(!DECL_ARTIFICIAL(node_decl));
177058 + node_clone = made_by_compiler(node_decl);
177059 + } else {
177060 + node_decl = NULL_TREE;
177061 + node_clone = false;
177062 + }
177063 +
177064 + if (correct_argnum_of_node_decl == node_decl)
177065 + return argnum;
177066 +
177067 + correct_argnum_of_node_clone = made_by_compiler(correct_argnum_of_node_decl);
177068 + // the original decl is lost if both nodes are clones
177069 + if (node_clone && correct_argnum_of_node_clone) {
177070 + gcc_assert(unchanged_arglist(node, correct_argnum_of_node));
177071 + return argnum;
177072 + }
177073 +
177074 + if (node_clone && !correct_argnum_of_node_clone)
177075 + return clone_argnum_on_orig(correct_argnum_of_node, node, argnum);
177076 + else if (!node_clone && correct_argnum_of_node_clone)
177077 + return orig_argnum_on_clone(correct_argnum_of_node, node, argnum);
177078 +
177079 + if (node)
177080 + debug_tree(NODE_DECL(node));
177081 + debug_tree(correct_argnum_of_node_decl);
177082 + gcc_unreachable();
177083 +}
177084 +
177085 +unsigned int get_correct_argnum(const_tree decl, const_tree correct_argnum_of_decl, unsigned int argnum)
177086 +{
177087 + struct cgraph_node *node, *correct_argnum_of_node;
177088 +
177089 + gcc_assert(decl != NULL_TREE);
177090 + gcc_assert(correct_argnum_of_decl != NULL_TREE);
177091 +
177092 + correct_argnum_of_node = get_cnode(correct_argnum_of_decl);
177093 + if (!correct_argnum_of_node || DECL_ARTIFICIAL(decl) || DECL_ARTIFICIAL(correct_argnum_of_decl))
177094 + return get_correct_argnum_fndecl(decl, correct_argnum_of_decl, argnum);
177095 +
177096 + node = get_cnode(decl);
177097 + return get_correct_argnum_cnode(node, correct_argnum_of_node, argnum);
177098 +}
177099 +
177100 +// Find the original cloned function
177101 +tree get_orig_fndecl(const_tree clone_fndecl)
177102 +{
177103 + struct cgraph_node *node;
177104 +
177105 + gcc_assert(TREE_CODE(clone_fndecl) == FUNCTION_DECL);
177106 +
177107 + if (DECL_ABSTRACT_ORIGIN(clone_fndecl))
177108 + return CONST_CAST_TREE(DECL_ABSTRACT_ORIGIN(clone_fndecl));
177109 + node = get_cnode(clone_fndecl);
177110 + if (!node)
177111 + return CONST_CAST_TREE(clone_fndecl);
177112 +
177113 + while (node->clone_of)
177114 + node = node->clone_of;
177115 + if (!made_by_compiler(NODE_DECL(node)))
177116 + return NODE_DECL(node);
177117 + // Return the cloned decl because it is needed for the transform callback
177118 + return CONST_CAST_TREE(clone_fndecl);
177119 +}
177120 +
177121 +static tree get_interesting_fndecl_from_stmt(const gcall *stmt)
177122 +{
177123 + if (gimple_call_num_args(stmt) == 0)
177124 + return NULL_TREE;
177125 + return gimple_call_fndecl(stmt);
177126 +}
177127 +
177128 +tree get_interesting_orig_fndecl_from_stmt(const gcall *stmt)
177129 +{
177130 + tree fndecl;
177131 +
177132 + fndecl = get_interesting_fndecl_from_stmt(stmt);
177133 + if (fndecl == NULL_TREE)
177134 + return NULL_TREE;
177135 + return get_orig_fndecl(fndecl);
177136 +}
177137 +
177138 +void set_dominance_info(void)
177139 +{
177140 + calculate_dominance_info(CDI_DOMINATORS);
177141 + calculate_dominance_info(CDI_POST_DOMINATORS);
177142 +}
177143 +
177144 +void unset_dominance_info(void)
177145 +{
177146 + free_dominance_info(CDI_DOMINATORS);
177147 + free_dominance_info(CDI_POST_DOMINATORS);
177148 +}
177149 +
177150 +void set_current_function_decl(tree fndecl)
177151 +{
177152 + gcc_assert(fndecl != NULL_TREE);
177153 +
177154 + push_cfun(DECL_STRUCT_FUNCTION(fndecl));
177155 +#if BUILDING_GCC_VERSION <= 4007
177156 + current_function_decl = fndecl;
177157 +#endif
177158 + set_dominance_info();
177159 +}
177160 +
177161 +void unset_current_function_decl(void)
177162 +{
177163 + unset_dominance_info();
177164 +#if BUILDING_GCC_VERSION <= 4007
177165 + current_function_decl = NULL_TREE;
177166 +#endif
177167 + pop_cfun();
177168 +}
177169 +
177170 +bool is_valid_cgraph_node(struct cgraph_node *node)
177171 +{
177172 + if (cgraph_function_body_availability(node) == AVAIL_NOT_AVAILABLE)
177173 + return false;
177174 + if (node->thunk.thunk_p || node->alias)
177175 + return false;
177176 + return true;
177177 +}
177178 +
177179 +tree get_lhs(const_gimple stmt)
177180 +{
177181 + switch (gimple_code(stmt)) {
177182 + case GIMPLE_ASSIGN:
177183 + case GIMPLE_CALL:
177184 + return gimple_get_lhs(stmt);
177185 + case GIMPLE_PHI:
177186 + return gimple_phi_result(stmt);
177187 + default:
177188 + debug_gimple_stmt((gimple)stmt);
177189 + gcc_unreachable();
177190 + }
177191 +}
177192 +
177193 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_plugin.c b/tools/gcc/size_overflow_plugin/size_overflow_plugin.c
177194 new file mode 100644
177195 index 0000000..21e7d5c
177196 --- /dev/null
177197 +++ b/tools/gcc/size_overflow_plugin/size_overflow_plugin.c
177198 @@ -0,0 +1,290 @@
177199 +/*
177200 + * Copyright 2011-2016 by Emese Revfy <re.emese@gmail.com>
177201 + * Licensed under the GPL v2, or (at your option) v3
177202 + *
177203 + * Homepage:
177204 + * https://github.com/ephox-gcc-plugins/size_overflow
177205 + *
177206 + * Documentation:
177207 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
177208 + *
177209 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
177210 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
177211 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
177212 + *
177213 + * Usage:
177214 + * $ make
177215 + * $ make run
177216 + */
177217 +
177218 +#include "size_overflow.h"
177219 +
177220 +int plugin_is_GPL_compatible;
177221 +
177222 +tree report_size_overflow_decl;
177223 +
177224 +tree size_overflow_type_HI;
177225 +tree size_overflow_type_SI;
177226 +tree size_overflow_type_DI;
177227 +tree size_overflow_type_TI;
177228 +
177229 +static struct plugin_info size_overflow_plugin_info = {
177230 + .version = "20160306",
177231 + .help = "no-size-overflow\tturn off size overflow checking\n",
177232 +};
177233 +
177234 +static tree handle_size_overflow_attribute(tree *node, tree __unused name, tree args, int __unused flags, bool *no_add_attrs)
177235 +{
177236 + unsigned int arg_count;
177237 + enum tree_code code = TREE_CODE(*node);
177238 +
177239 + switch (code) {
177240 + case FUNCTION_DECL:
177241 + arg_count = type_num_arguments(TREE_TYPE(*node));
177242 + break;
177243 + case FUNCTION_TYPE:
177244 + case METHOD_TYPE:
177245 + arg_count = type_num_arguments(*node);
177246 + break;
177247 + default:
177248 + *no_add_attrs = true;
177249 + debug_tree(*node);
177250 + error("%s: %qE attribute only applies to functions", __func__, name);
177251 + return NULL_TREE;
177252 + }
177253 +
177254 + for (; args; args = TREE_CHAIN(args)) {
177255 + int cur_val;
177256 + tree position = TREE_VALUE(args);
177257 +
177258 + if (TREE_CODE(position) != INTEGER_CST) {
177259 + error("%s: parameter isn't an integer", __func__);
177260 + debug_tree(args);
177261 + *no_add_attrs = true;
177262 + return NULL_TREE;
177263 + }
177264 +
177265 + cur_val = tree_to_shwi(position);
177266 + if (cur_val < 0 || arg_count < (unsigned int)cur_val) {
177267 + error("%s: parameter %d is outside range.", __func__, cur_val);
177268 + *no_add_attrs = true;
177269 + return NULL_TREE;
177270 + }
177271 + }
177272 + return NULL_TREE;
177273 +}
177274 +
177275 +static tree handle_intentional_overflow_attribute(tree *node, tree __unused name, tree args, int __unused flags, bool *no_add_attrs)
177276 +{
177277 + unsigned int arg_count;
177278 + HOST_WIDE_INT s_first_arg;
177279 + enum tree_code code = TREE_CODE(*node);
177280 +
177281 + switch (code) {
177282 + case FUNCTION_DECL:
177283 + arg_count = type_num_arguments(TREE_TYPE(*node));
177284 + break;
177285 + case FUNCTION_TYPE:
177286 + case METHOD_TYPE:
177287 + arg_count = type_num_arguments(*node);
177288 + break;
177289 + case VAR_DECL:
177290 + case FIELD_DECL:
177291 + return NULL_TREE;
177292 + default:
177293 + *no_add_attrs = true;
177294 + debug_tree(*node);
177295 + error("%qE attribute only applies to functions, fields or vars", name);
177296 + return NULL_TREE;
177297 + }
177298 +
177299 + s_first_arg = tree_to_shwi(TREE_VALUE(args));
177300 + if (s_first_arg == -1)
177301 + return NULL_TREE;
177302 + if (s_first_arg < -1)
177303 + error("%s: parameter %d is outside range.", __func__, (int)s_first_arg);
177304 +
177305 + for (; args; args = TREE_CHAIN(args)) {
177306 + unsigned int cur_val;
177307 +
177308 + if (TREE_CODE(TREE_VALUE(args)) != INTEGER_CST) {
177309 + error("%s: parameter isn't an integer", __func__);
177310 + debug_tree(args);
177311 + *no_add_attrs = true;
177312 + return NULL_TREE;
177313 + }
177314 +
177315 + cur_val = (unsigned int)tree_to_uhwi(TREE_VALUE(args));
177316 + if (cur_val > arg_count ) {
177317 + error("%s: parameter %u is outside range. (arg_count: %u)", __func__, cur_val, arg_count);
177318 + *no_add_attrs = true;
177319 + return NULL_TREE;
177320 + }
177321 + }
177322 + return NULL_TREE;
177323 +}
177324 +
177325 +static struct attribute_spec size_overflow_attr = {
177326 + .name = "size_overflow",
177327 + .min_length = 1,
177328 + .max_length = -1,
177329 + .decl_required = true,
177330 + .type_required = false,
177331 + .function_type_required = false,
177332 + .handler = handle_size_overflow_attribute,
177333 +#if BUILDING_GCC_VERSION >= 4007
177334 + .affects_type_identity = false
177335 +#endif
177336 +};
177337 +
177338 +static struct attribute_spec intentional_overflow_attr = {
177339 + .name = "intentional_overflow",
177340 + .min_length = 1,
177341 + .max_length = -1,
177342 + .decl_required = true,
177343 + .type_required = false,
177344 + .function_type_required = false,
177345 + .handler = handle_intentional_overflow_attribute,
177346 +#if BUILDING_GCC_VERSION >= 4007
177347 + .affects_type_identity = false
177348 +#endif
177349 +};
177350 +
177351 +static void register_attributes(void __unused *event_data, void __unused *data)
177352 +{
177353 + register_attribute(&size_overflow_attr);
177354 + register_attribute(&intentional_overflow_attr);
177355 +}
177356 +
177357 +static tree create_typedef(tree type, const char* ident)
177358 +{
177359 + tree new_type, decl;
177360 +
177361 + new_type = build_variant_type_copy(type);
177362 + decl = build_decl(BUILTINS_LOCATION, TYPE_DECL, get_identifier(ident), new_type);
177363 + DECL_ORIGINAL_TYPE(decl) = type;
177364 + TYPE_NAME(new_type) = decl;
177365 + return new_type;
177366 +}
177367 +
177368 +// Create the noreturn report_size_overflow() function decl.
177369 +static void size_overflow_start_unit(void __unused *gcc_data, void __unused *user_data)
177370 +{
177371 + tree const_char_ptr_type_node;
177372 + tree fntype;
177373 +
177374 + const_char_ptr_type_node = build_pointer_type(build_type_variant(char_type_node, 1, 0));
177375 +
177376 + size_overflow_type_HI = create_typedef(intHI_type_node, "size_overflow_type_HI");
177377 + size_overflow_type_SI = create_typedef(intSI_type_node, "size_overflow_type_SI");
177378 + size_overflow_type_DI = create_typedef(intDI_type_node, "size_overflow_type_DI");
177379 + size_overflow_type_TI = create_typedef(intTI_type_node, "size_overflow_type_TI");
177380 +
177381 + // void report_size_overflow(const char *loc_file, unsigned int loc_line, const char *current_func, const char *ssa_var)
177382 + fntype = build_function_type_list(void_type_node,
177383 + const_char_ptr_type_node,
177384 + unsigned_type_node,
177385 + const_char_ptr_type_node,
177386 + const_char_ptr_type_node,
177387 + NULL_TREE);
177388 + report_size_overflow_decl = build_fn_decl("report_size_overflow", fntype);
177389 +
177390 + DECL_ASSEMBLER_NAME(report_size_overflow_decl);
177391 + TREE_PUBLIC(report_size_overflow_decl) = 1;
177392 + DECL_EXTERNAL(report_size_overflow_decl) = 1;
177393 + DECL_ARTIFICIAL(report_size_overflow_decl) = 1;
177394 +// TREE_THIS_VOLATILE(report_size_overflow_decl) = 1;
177395 +// !!!
177396 + DECL_PRESERVE_P(report_size_overflow_decl) = 1;
177397 + DECL_UNINLINABLE(report_size_overflow_decl) = 1;
177398 + TREE_USED(report_size_overflow_decl) = 1;
177399 + TREE_NOTHROW(report_size_overflow_decl) = 1;
177400 +}
177401 +
177402 +static bool disable_ubsan_si_overflow_gate(void)
177403 +{
177404 +#if BUILDING_GCC_VERSION >= 4009
177405 + flag_sanitize &= ~SANITIZE_SI_OVERFLOW;
177406 +#endif
177407 + return true;
177408 +}
177409 +
177410 +#define PASS_NAME disable_ubsan_si_overflow
177411 +
177412 +#define NO_EXECUTE
177413 +
177414 +#include "gcc-generate-gimple-pass.h"
177415 +
177416 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
177417 +{
177418 + int i;
177419 + const char * const plugin_name = plugin_info->base_name;
177420 + const int argc = plugin_info->argc;
177421 + const struct plugin_argument * const argv = plugin_info->argv;
177422 + bool enable = true;
177423 + struct register_pass_info insert_size_overflow_asm_pass_info;
177424 + struct register_pass_info size_overflow_pass_info;
177425 +#if BUILDING_GCC_VERSION >= 4009
177426 + struct register_pass_info disable_ubsan_si_overflow_pass_info;
177427 +#endif
177428 +
177429 + static const struct ggc_root_tab gt_ggc_r_gt_size_overflow[] = {
177430 + {
177431 + .base = &report_size_overflow_decl,
177432 + .nelt = 1,
177433 + .stride = sizeof(report_size_overflow_decl),
177434 + .cb = &gt_ggc_mx_tree_node,
177435 + .pchw = &gt_pch_nx_tree_node
177436 + },
177437 + LAST_GGC_ROOT_TAB
177438 + };
177439 +
177440 + insert_size_overflow_asm_pass_info.pass = make_insert_size_overflow_asm_pass();
177441 + insert_size_overflow_asm_pass_info.reference_pass_name = "ssa";
177442 + insert_size_overflow_asm_pass_info.ref_pass_instance_number = 1;
177443 + insert_size_overflow_asm_pass_info.pos_op = PASS_POS_INSERT_AFTER;
177444 +
177445 + size_overflow_pass_info.pass = make_size_overflow_pass();
177446 + size_overflow_pass_info.reference_pass_name = "inline";
177447 + size_overflow_pass_info.ref_pass_instance_number = 1;
177448 + size_overflow_pass_info.pos_op = PASS_POS_INSERT_AFTER;
177449 +
177450 + if (!plugin_default_version_check(version, &gcc_version)) {
177451 + error(G_("incompatible gcc/plugin versions"));
177452 + return 1;
177453 + }
177454 +
177455 + for (i = 0; i < argc; ++i) {
177456 + if (!strcmp(argv[i].key, "no-size-overflow")) {
177457 + enable = false;
177458 + continue;
177459 + }
177460 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
177461 + }
177462 +
177463 + register_callback(plugin_name, PLUGIN_INFO, NULL, &size_overflow_plugin_info);
177464 + if (enable) {
177465 +#if BUILDING_GCC_VERSION >= 4009
177466 + if (flag_sanitize & SANITIZE_SI_OVERFLOW) {
177467 + error(G_("ubsan SANITIZE_SI_OVERFLOW option is unsupported"));
177468 + return 1;
177469 + }
177470 +#endif
177471 + register_callback(plugin_name, PLUGIN_START_UNIT, &size_overflow_start_unit, NULL);
177472 + register_callback(plugin_name, PLUGIN_REGISTER_GGC_ROOTS, NULL, (void *)&gt_ggc_r_gt_size_overflow);
177473 +#if BUILDING_GCC_VERSION >= 4009
177474 + flag_sanitize |= SANITIZE_SI_OVERFLOW;
177475 + disable_ubsan_si_overflow_pass_info.pass = make_disable_ubsan_si_overflow_pass();
177476 + disable_ubsan_si_overflow_pass_info.reference_pass_name = "ubsan";
177477 + disable_ubsan_si_overflow_pass_info.ref_pass_instance_number = 1;
177478 + disable_ubsan_si_overflow_pass_info.pos_op = PASS_POS_REPLACE;
177479 +
177480 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &disable_ubsan_si_overflow_pass_info);
177481 +#endif
177482 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &insert_size_overflow_asm_pass_info);
177483 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &size_overflow_pass_info);
177484 + }
177485 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
177486 +
177487 + return 0;
177488 +}
177489 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_plugin_hash.c b/tools/gcc/size_overflow_plugin/size_overflow_plugin_hash.c
177490 new file mode 100644
177491 index 0000000..4ac5098
177492 --- /dev/null
177493 +++ b/tools/gcc/size_overflow_plugin/size_overflow_plugin_hash.c
177494 @@ -0,0 +1,352 @@
177495 +/*
177496 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
177497 + * Licensed under the GPL v2, or (at your option) v3
177498 + *
177499 + * Homepage:
177500 + * https://github.com/ephox-gcc-plugins/size_overflow
177501 + *
177502 + * Documentation:
177503 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
177504 + *
177505 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
177506 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
177507 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
177508 + *
177509 + * Usage:
177510 + * $ make
177511 + * $ make run
177512 + */
177513 +
177514 +#include "size_overflow.h"
177515 +
177516 +#include "size_overflow_hash.h"
177517 +#include "disable_size_overflow_hash.h"
177518 +#include "size_overflow_hash_aux.h"
177519 +
177520 +static const_tree get_function_type(const_tree decl)
177521 +{
177522 + if (FUNCTION_PTR_P(decl))
177523 + return TREE_TYPE(TREE_TYPE(decl));
177524 + gcc_assert(TREE_CODE(decl) == FUNCTION_DECL);
177525 + return TREE_TYPE(decl);
177526 +}
177527 +
177528 +static unsigned char get_tree_code(const_tree type)
177529 +{
177530 + switch (TREE_CODE(type)) {
177531 + case ARRAY_TYPE:
177532 + return 0;
177533 + case BOOLEAN_TYPE:
177534 + return 1;
177535 + case ENUMERAL_TYPE:
177536 + return 2;
177537 + case FUNCTION_TYPE:
177538 + return 3;
177539 + case INTEGER_TYPE:
177540 + return 4;
177541 + case POINTER_TYPE:
177542 + return 5;
177543 + case RECORD_TYPE:
177544 + return 6;
177545 + case UNION_TYPE:
177546 + return 7;
177547 + case VOID_TYPE:
177548 + return 8;
177549 + case REAL_TYPE:
177550 + return 9;
177551 + case VECTOR_TYPE:
177552 + return 10;
177553 + case REFERENCE_TYPE:
177554 + return 11;
177555 + case OFFSET_TYPE:
177556 + return 12;
177557 + case COMPLEX_TYPE:
177558 + return 13;
177559 + default:
177560 + debug_tree(type);
177561 + gcc_unreachable();
177562 + }
177563 +}
177564 +
177565 +// http://www.team5150.com/~andrew/noncryptohashzoo2~/CrapWow.html
177566 +static unsigned int CrapWow(const char *key, unsigned int len, unsigned int seed)
177567 +{
177568 +#define cwfold( a, b, lo, hi ) { p = (unsigned int)(a) * (unsigned long long)(b); lo ^= (unsigned int)p; hi ^= (unsigned int)(p >> 32); }
177569 +#define cwmixa( in ) { cwfold( in, m, k, h ); }
177570 +#define cwmixb( in ) { cwfold( in, n, h, k ); }
177571 +
177572 + unsigned int m = 0x57559429;
177573 + unsigned int n = 0x5052acdb;
177574 + const unsigned int *key4 = (const unsigned int *)key;
177575 + unsigned int h = len;
177576 + unsigned int k = len + seed + n;
177577 + unsigned long long p;
177578 +
177579 + while (len >= 8) {
177580 + cwmixb(key4[0]) cwmixa(key4[1]) key4 += 2;
177581 + len -= 8;
177582 + }
177583 + if (len >= 4) {
177584 + cwmixb(key4[0]) key4 += 1;
177585 + len -= 4;
177586 + }
177587 + if (len)
177588 + cwmixa(key4[0] & ((1 << (len * 8)) - 1 ));
177589 + cwmixb(h ^ (k + n));
177590 + return k ^ h;
177591 +
177592 +#undef cwfold
177593 +#undef cwmixa
177594 +#undef cwmixb
177595 +}
177596 +
177597 +static void set_hash(struct decl_hash *decl_hash_data)
177598 +{
177599 + unsigned int fn, type, codes, seed = 0;
177600 +
177601 + fn = CrapWow(decl_hash_data->fn_name, strlen(decl_hash_data->fn_name), seed) & 0xffff;
177602 + codes = CrapWow((const char*)decl_hash_data->tree_codes, decl_hash_data->tree_codes_len, seed) & 0xffff;
177603 + type = CrapWow(decl_hash_data->context, strlen(decl_hash_data->context), 0) & 0xffff;
177604 + decl_hash_data->hash = type ^ fn ^ codes;
177605 +}
177606 +
177607 +static void set_decl_type_codes(const_tree type, struct decl_hash *decl_hash_data)
177608 +{
177609 + gcc_assert(type != NULL_TREE);
177610 + gcc_assert(TREE_CODE_CLASS(TREE_CODE(type)) == tcc_type);
177611 +
177612 + while (type && decl_hash_data->tree_codes_len < CODES_LIMIT) {
177613 + decl_hash_data->tree_codes[decl_hash_data->tree_codes_len] = get_tree_code(type);
177614 + decl_hash_data->tree_codes_len++;
177615 + type = TREE_TYPE(type);
177616 + }
177617 +}
177618 +
177619 +static void set_result_codes(const_tree node, struct decl_hash *decl_hash_data)
177620 +{
177621 + const_tree result;
177622 +
177623 + gcc_assert(node != NULL_TREE);
177624 +
177625 + if (DECL_P(node)) {
177626 + result = DECL_RESULT(node);
177627 + if (result != NULL_TREE)
177628 + return set_decl_type_codes(TREE_TYPE(result), decl_hash_data);
177629 + return set_result_codes(TREE_TYPE(node), decl_hash_data);
177630 + }
177631 +
177632 + gcc_assert(TYPE_P(node));
177633 +
177634 + if (TREE_CODE(node) == FUNCTION_TYPE)
177635 + return set_result_codes(TREE_TYPE(node), decl_hash_data);
177636 +
177637 + return set_decl_type_codes(node, decl_hash_data);
177638 +}
177639 +
177640 +static void set_decl_codes(struct decl_hash *decl_hash_data)
177641 +{
177642 + const_tree arg, type;
177643 + enum tree_code code;
177644 +
177645 + if (TREE_CODE(decl_hash_data->decl) == VAR_DECL || TREE_CODE(decl_hash_data->decl) == FIELD_DECL) {
177646 + set_decl_type_codes(TREE_TYPE(decl_hash_data->decl), decl_hash_data);
177647 + return;
177648 + }
177649 +
177650 + type = get_function_type(decl_hash_data->decl);
177651 + code = TREE_CODE(type);
177652 + gcc_assert(code == FUNCTION_TYPE || code == METHOD_TYPE);
177653 +
177654 + if (FUNCTION_PTR_P(decl_hash_data->decl))
177655 + set_result_codes(type, decl_hash_data);
177656 + else
177657 + set_result_codes(decl_hash_data->decl, decl_hash_data);
177658 +
177659 + for (arg = TYPE_ARG_TYPES(type); arg != NULL_TREE && decl_hash_data->tree_codes_len < CODES_LIMIT; arg = TREE_CHAIN(arg))
177660 + set_decl_type_codes(TREE_VALUE(arg), decl_hash_data);
177661 +}
177662 +
177663 +static const struct size_overflow_hash *get_proper_hash_chain(const struct size_overflow_hash *entry, const char *func_name, const char *context)
177664 +{
177665 + for (; entry; entry = entry->next) {
177666 + if (strcmp(entry->name, func_name))
177667 + continue;
177668 + if (!strcmp(entry->context, context))
177669 + return entry;
177670 + }
177671 + return NULL;
177672 +}
177673 +
177674 +unsigned int get_decl_hash(const_tree decl, const char *decl_name)
177675 +{
177676 + struct decl_hash decl_hash_data;
177677 + enum tree_code code = TREE_CODE(decl);
177678 +
177679 + gcc_assert(code == FIELD_DECL || code == FUNCTION_DECL || code == VAR_DECL);
177680 +
177681 + // skip builtins __builtin_constant_p
177682 + if (code == FUNCTION_DECL && (DECL_BUILT_IN(decl) || DECL_BUILT_IN_CLASS(decl) == BUILT_IN_NORMAL))
177683 + return NO_HASH;
177684 +
177685 + decl_hash_data.fn_name = decl_name;
177686 + decl_hash_data.decl = decl;
177687 + decl_hash_data.context = get_decl_context(decl);
177688 + if (!decl_hash_data.context)
177689 + return NO_HASH;
177690 + decl_hash_data.tree_codes_len = 0;
177691 +
177692 + set_decl_codes(&decl_hash_data);
177693 + gcc_assert(decl_hash_data.tree_codes_len != 0);
177694 + set_hash(&decl_hash_data);
177695 + return decl_hash_data.hash;
177696 +}
177697 +
177698 +const char *get_orig_decl_name(const_tree decl)
177699 +{
177700 + const char *name;
177701 + unsigned int len;
177702 + const void *end;
177703 + const_tree orig_decl;
177704 +
177705 + if (TREE_CODE(decl) == FUNCTION_DECL)
177706 + orig_decl = DECL_ORIGIN(decl);
177707 + else
177708 + orig_decl = decl;
177709 +
177710 + len = DECL_NAME_LENGTH(orig_decl);
177711 + name = DECL_NAME_POINTER(orig_decl);
177712 +
177713 + /* Sometimes gcc loses the original cgraph node leaving only clones behind.
177714 + * In such cases we will extract the name from the clone and use it in the hash table
177715 + * without checking the parameter number on the original (unavailable) decl.
177716 + */
177717 +
177718 + if (made_by_compiler(orig_decl)) {
177719 + end = memchr(name, '.', len);
177720 + if (!end)
177721 + return xstrndup(name, len);
177722 + len = (long)end - (long)name;
177723 + gcc_assert(len > 0);
177724 + }
177725 +
177726 + return xstrndup(name, len);
177727 +}
177728 +
177729 +const struct size_overflow_hash *get_disable_size_overflow_hash_entry(unsigned int hash, const char *decl_name, const char *context, unsigned int argnum)
177730 +{
177731 + const struct size_overflow_hash *entry, *entry_node;
177732 +
177733 + entry = disable_size_overflow_hash[hash];
177734 + entry_node = get_proper_hash_chain(entry, decl_name, context);
177735 + if (entry_node && entry_node->param & (1U << argnum))
177736 + return entry_node;
177737 + return NULL;
177738 +}
177739 +
177740 +const struct size_overflow_hash *get_size_overflow_hash_entry(unsigned int hash, const char *decl_name, const char *context, unsigned int argnum)
177741 +{
177742 + const struct size_overflow_hash *entry, *entry_node;
177743 +
177744 + entry = size_overflow_hash[hash];
177745 + entry_node = get_proper_hash_chain(entry, decl_name, context);
177746 + if (entry_node && entry_node->param & (1U << argnum))
177747 + return entry_node;
177748 +
177749 + entry = size_overflow_hash_aux[hash];
177750 + entry_node = get_proper_hash_chain(entry, decl_name, context);
177751 + if (entry_node && entry_node->param & (1U << argnum))
177752 + return entry_node;
177753 + return NULL;
177754 +}
177755 +
177756 +const struct size_overflow_hash *get_size_overflow_hash_entry_tree(const_tree fndecl, unsigned int argnum, bool hash_table)
177757 +{
177758 + const_tree orig_decl;
177759 + unsigned int orig_argnum, hash;
177760 + const char *decl_name, *context;
177761 +
177762 + if (made_by_compiler(fndecl)) {
177763 + orig_decl = get_orig_fndecl(fndecl);
177764 + orig_argnum = get_correct_argnum(fndecl, orig_decl, argnum);
177765 + } else {
177766 + orig_decl = fndecl;
177767 + orig_argnum = argnum;
177768 + }
177769 +
177770 + if (orig_argnum == CANNOT_FIND_ARG)
177771 + return NULL;
177772 +
177773 + decl_name = get_orig_decl_name(orig_decl);
177774 + hash = get_decl_hash(orig_decl, decl_name);
177775 + if (hash == NO_HASH)
177776 + return NULL;
177777 +
177778 + context = get_decl_context(orig_decl);
177779 + if (!context)
177780 + return NULL;
177781 +
177782 + if (hash_table == SIZE_OVERFLOW)
177783 + return get_size_overflow_hash_entry(hash, decl_name, context, orig_argnum);
177784 + return get_disable_size_overflow_hash_entry(hash, decl_name, context, orig_argnum);
177785 +}
177786 +
177787 +unsigned int find_arg_number_tree(const_tree arg, const_tree func)
177788 +{
177789 + tree var;
177790 + unsigned int argnum = 1;
177791 +
177792 + if (DECL_ARGUMENTS(func) == NULL_TREE)
177793 + return CANNOT_FIND_ARG;
177794 +
177795 + if (TREE_CODE(arg) == SSA_NAME)
177796 + arg = SSA_NAME_VAR(arg);
177797 +
177798 + for (var = DECL_ARGUMENTS(func); var; var = TREE_CHAIN(var), argnum++) {
177799 + if (!operand_equal_p(arg, var, 0) && strcmp(DECL_NAME_POINTER(var), DECL_NAME_POINTER(arg)))
177800 + continue;
177801 + if (!skip_types(var))
177802 + return argnum;
177803 + }
177804 +
177805 + return CANNOT_FIND_ARG;
177806 +}
177807 +
177808 +const_tree get_attribute(const char* attr_name, const_tree decl)
177809 +{
177810 + const_tree attr = lookup_attribute(attr_name, DECL_ATTRIBUTES(decl));
177811 + if (attr && TREE_VALUE(attr))
177812 + return attr;
177813 + return NULL_TREE;
177814 +}
177815 +
177816 +/* Check if the function has a size_overflow attribute or it is in the size_overflow hash table.
177817 + * If the function is missing everywhere then print the missing message into stderr.
177818 + */
177819 +void print_missing_function(next_interesting_function_t node)
177820 +{
177821 + unsigned int argnum, hash;
177822 + const struct size_overflow_hash *entry;
177823 + const char *decl_name;
177824 +
177825 + if (node->marked == ASM_STMT_SO_MARK)
177826 + return;
177827 +
177828 + if (node->orig_next_node) {
177829 + hash = node->orig_next_node->hash;
177830 + decl_name = node->orig_next_node->decl_name;
177831 + argnum = node->orig_next_node->num;
177832 + gcc_assert(!strcmp(node->context, node->orig_next_node->context));
177833 + } else {
177834 + hash = node->hash;
177835 + decl_name = node->decl_name;
177836 + argnum = node->num;
177837 + }
177838 +
177839 + entry = get_size_overflow_hash_entry(hash, decl_name, node->context, argnum);
177840 + if (entry)
177841 + return;
177842 +
177843 + // inform() would be too slow
177844 + 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);
177845 +}
177846 +
177847 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_transform.c b/tools/gcc/size_overflow_plugin/size_overflow_transform.c
177848 new file mode 100644
177849 index 0000000..c958d66
177850 --- /dev/null
177851 +++ b/tools/gcc/size_overflow_plugin/size_overflow_transform.c
177852 @@ -0,0 +1,745 @@
177853 +/*
177854 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
177855 + * Licensed under the GPL v2, or (at your option) v3
177856 + *
177857 + * Homepage:
177858 + * https://github.com/ephox-gcc-plugins/size_overflow
177859 + *
177860 + * Documentation:
177861 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
177862 + *
177863 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
177864 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
177865 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
177866 + *
177867 + * Usage:
177868 + * $ make
177869 + * $ make run
177870 + */
177871 +
177872 +#include "size_overflow.h"
177873 +
177874 +static tree cast_to_orig_type(struct visited *visited, gimple stmt, const_tree orig_node, tree new_node)
177875 +{
177876 + gimple def_stmt;
177877 + const_gimple assign;
177878 + tree result, orig_type = TREE_TYPE(orig_node);
177879 + gimple_stmt_iterator gsi;
177880 +
177881 + if (gimple_code(stmt) != GIMPLE_PHI) {
177882 + gsi = gsi_for_stmt(stmt);
177883 + assign = build_cast_stmt(visited, orig_type, new_node, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false);
177884 + return get_lhs(assign);
177885 + }
177886 +
177887 + def_stmt = get_def_stmt(new_node);
177888 + if (gimple_code(def_stmt) == GIMPLE_PHI)
177889 + gsi = gsi_after_labels(gimple_bb(def_stmt));
177890 + else
177891 + gsi = gsi_for_stmt(def_stmt);
177892 +
177893 + result = gimple_phi_result(stmt);
177894 + assign = build_cast_stmt(visited, orig_type, new_node, SSA_NAME_VAR(result), &gsi, AFTER_STMT, false);
177895 + return get_lhs(assign);
177896 +}
177897 +
177898 +static void change_size_overflow_asm_input(gasm *stmt, tree new_input)
177899 +{
177900 + tree list;
177901 +
177902 + gcc_assert(is_size_overflow_insert_check_asm(stmt));
177903 +
177904 + list = build_tree_list(NULL_TREE, build_string(3, "rm"));
177905 + list = chainon(NULL_TREE, build_tree_list(list, new_input));
177906 + gimple_asm_set_input_op(stmt, 0, list);
177907 +}
177908 +
177909 +static void change_field_write_rhs(gassign *assign, const_tree orig_rhs, tree new_rhs)
177910 +{
177911 + const_tree rhs1, rhs2, rhs3 = NULL_TREE;
177912 +
177913 + rhs1 = gimple_assign_rhs1(assign);
177914 + if (rhs1 == orig_rhs) {
177915 + gimple_assign_set_rhs1(assign, new_rhs);
177916 + return;
177917 + }
177918 +
177919 + rhs2 = gimple_assign_rhs2(assign);
177920 + if (rhs2 == orig_rhs) {
177921 + gimple_assign_set_rhs2(assign, new_rhs);
177922 + return;
177923 + }
177924 +
177925 +#if BUILDING_GCC_VERSION >= 4006
177926 + rhs3 = gimple_assign_rhs3(assign);
177927 + if (rhs3 == orig_rhs) {
177928 + gimple_assign_set_rhs3(assign, new_rhs);
177929 + return;
177930 + }
177931 +#endif
177932 +
177933 + debug_gimple_stmt(assign);
177934 + fprintf(stderr, "orig_rhs:\n");
177935 + debug_tree(orig_rhs);
177936 + fprintf(stderr, "rhs1:\n");
177937 + debug_tree(rhs1);
177938 + fprintf(stderr, "rhs2:\n");
177939 + debug_tree(rhs2);
177940 + fprintf(stderr, "rhs3:\n");
177941 + debug_tree(rhs3);
177942 + gcc_unreachable();
177943 +}
177944 +
177945 +static void change_phi_arg(gphi *phi, tree new_node, unsigned int num)
177946 +{
177947 + unsigned int i;
177948 + location_t loc = gimple_location(phi);
177949 +
177950 + for (i = 0; i < gimple_phi_num_args(phi); i++) {
177951 + if (i == num)
177952 + add_phi_arg(phi, new_node, gimple_phi_arg_edge(phi, i), loc);
177953 + }
177954 +}
177955 +
177956 +static void change_orig_node(struct visited *visited, gimple stmt, const_tree orig_node, tree new_node, unsigned int num)
177957 +{
177958 + tree cast_lhs = cast_to_orig_type(visited, stmt, orig_node, new_node);
177959 +
177960 + switch (gimple_code(stmt)) {
177961 + case GIMPLE_RETURN:
177962 + gimple_return_set_retval(as_a_greturn(stmt), cast_lhs);
177963 + break;
177964 + case GIMPLE_CALL:
177965 + gimple_call_set_arg(as_a_gcall(stmt), num - 1, cast_lhs);
177966 + break;
177967 + case GIMPLE_ASM:
177968 + change_size_overflow_asm_input(as_a_gasm(stmt), cast_lhs);
177969 + break;
177970 + case GIMPLE_ASSIGN:
177971 + change_field_write_rhs(as_a_gassign(stmt), orig_node, cast_lhs);
177972 + break;
177973 + case GIMPLE_PHI:
177974 + change_phi_arg(as_a_gphi(stmt), cast_lhs, num);
177975 + break;
177976 + default:
177977 + debug_gimple_stmt(stmt);
177978 + gcc_unreachable();
177979 + }
177980 +
177981 + update_stmt(stmt);
177982 +}
177983 +
177984 +// e.g., 3.8.2, 64, arch/x86/ia32/ia32_signal.c copy_siginfo_from_user32(): compat_ptr() u32 max
177985 +static bool skip_asm_cast(const_tree arg)
177986 +{
177987 + gimple def_stmt = get_def_stmt(arg);
177988 +
177989 + if (!def_stmt || !gimple_assign_cast_p(def_stmt))
177990 + return false;
177991 +
177992 + def_stmt = get_def_stmt(gimple_assign_rhs1(def_stmt));
177993 + if (is_size_overflow_asm(def_stmt))
177994 + return false;
177995 + return def_stmt && gimple_code(def_stmt) == GIMPLE_ASM;
177996 +}
177997 +
177998 +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)
177999 +{
178000 + interesting_stmts_t new_node;
178001 +
178002 + new_node = (interesting_stmts_t )xmalloc(sizeof(*new_node));
178003 + new_node->first_stmt = first_stmt;
178004 + new_node->num = num;
178005 + new_node->orig_node = orig_node;
178006 + new_node->next = head;
178007 + new_node->next_node = next_node;
178008 + return new_node;
178009 +}
178010 +
178011 +static void free_interesting_stmts(interesting_stmts_t head)
178012 +{
178013 + while (head) {
178014 + interesting_stmts_t cur = head->next;
178015 + free(head);
178016 + head = cur;
178017 + }
178018 +}
178019 +
178020 +/* This function calls the main recursion function (expand) that duplicates the stmts. Before that it checks the intentional_overflow attribute,
178021 + * it decides whether the duplication is necessary or not. After expand() it changes the orig node to the duplicated node
178022 + * in the original stmt (first stmt) and it inserts the overflow check for the arg of the callee or for the return value.
178023 + */
178024 +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)
178025 +{
178026 + enum tree_code orig_code;
178027 +
178028 + gcc_assert(orig_node != NULL_TREE);
178029 +
178030 + if (is_gimple_constant(orig_node))
178031 + return head;
178032 +
178033 + orig_code = TREE_CODE(orig_node);
178034 + gcc_assert(orig_code != FIELD_DECL && orig_code != FUNCTION_DECL);
178035 +
178036 + if (skip_types(orig_node))
178037 + return head;
178038 +
178039 + // find a defining marked caller argument or struct field for arg
178040 + if (check_intentional_size_overflow_asm_and_attribute(orig_node) != MARK_NO)
178041 + return head;
178042 +
178043 + if (skip_asm_cast(orig_node))
178044 + return head;
178045 +
178046 + return create_interesting_stmts(head, next_node, orig_node, first_stmt, num);
178047 +}
178048 +
178049 +static bool is_signed_error_code_const(const_tree node)
178050 +{
178051 + HOST_WIDE_INT constant = tree_to_shwi(node);
178052 +
178053 + return constant >= -4095 && constant <= -1;
178054 +}
178055 +
178056 +static bool is_unsigned_error_code_const(const_tree node)
178057 +{
178058 + unsigned HOST_WIDE_INT constant = tree_to_uhwi(node);
178059 +
178060 + // ulong -4095
178061 + if (constant >= 0xfffffffffffff001)
178062 + return true;
178063 + // uint -4095
178064 + return constant >= 0xfffff001;
178065 +}
178066 +
178067 +static bool is_error_code_const(const_tree node)
178068 +{
178069 + enum machine_mode mode;
178070 +
178071 + if (!is_gimple_constant(node))
178072 + return false;
178073 + mode = TYPE_MODE(TREE_TYPE(node));
178074 + if (mode != SImode && mode != DImode)
178075 + return false;
178076 +
178077 + if (!TYPE_UNSIGNED(TREE_TYPE(node)) && is_signed_error_code_const(node))
178078 + return true;
178079 + return TYPE_UNSIGNED(TREE_TYPE(node)) && is_unsigned_error_code_const(node);
178080 +}
178081 +
178082 +static bool has_error_code(gphi *phi)
178083 +{
178084 + unsigned int i, len = gimple_phi_num_args(phi);
178085 +
178086 + for (i = 0; i < len; i++) {
178087 + const_tree arg = gimple_phi_arg_def(phi, i);
178088 +
178089 + if (is_error_code_const(arg))
178090 + return true;
178091 + }
178092 +
178093 + return false;
178094 +}
178095 +
178096 +static interesting_stmts_t search_interesting_rets(interesting_stmts_t head, next_interesting_function_t next_node_ret, greturn *ret)
178097 +{
178098 + tree first_node;
178099 +
178100 + if (!next_node_ret || next_node_ret->marked == ASM_STMT_SO_MARK)
178101 + return head;
178102 +
178103 + first_node = gimple_return_retval(ret);
178104 + if (first_node == NULL_TREE)
178105 + return head;
178106 +
178107 + return search_interesting_stmt(head, next_node_ret, ret, first_node, 0);
178108 +}
178109 +
178110 +static void handle_binary_assign(struct visited *visited, interesting_stmts_t expand_from, gassign *assign, tree rhs)
178111 +{
178112 + tree new_node;
178113 + gimple def_orig_node;
178114 +
178115 + new_node = expand(visited, expand_from, rhs);
178116 + if (new_node == NULL_TREE)
178117 + return;
178118 +
178119 + def_orig_node = get_def_stmt(rhs);
178120 + change_orig_node(visited, assign, rhs, new_node, 0);
178121 +
178122 + if (pointer_set_contains(visited->no_cast_check, def_orig_node))
178123 + return;
178124 + check_size_overflow(expand_from, assign, TREE_TYPE(new_node), new_node, rhs, BEFORE_STMT);
178125 +}
178126 +
178127 +static bool search_error_codes(struct visited *visited, gimple_set *visited_error_codes, interesting_stmts_t expand_from, tree lhs, bool error_code)
178128 +{
178129 + gimple def_stmt;
178130 +
178131 + def_stmt = get_def_stmt(lhs);
178132 + if (!def_stmt || gimple_code(def_stmt) == GIMPLE_NOP)
178133 + return error_code;
178134 +
178135 + if (pointer_set_insert(visited_error_codes, def_stmt))
178136 + return error_code;
178137 +
178138 + if (is_gimple_constant(lhs))
178139 + return error_code;
178140 + if (skip_types(lhs))
178141 + return is_error_code_const(lhs);
178142 +
178143 + switch (gimple_code(def_stmt)) {
178144 + case GIMPLE_CALL:
178145 + case GIMPLE_ASM:
178146 + return error_code;
178147 + case GIMPLE_ASSIGN: {
178148 + tree rhs1, rhs2;
178149 + gassign *assign = as_a_gassign(def_stmt);
178150 +
178151 + switch (gimple_num_ops(assign)) {
178152 + case 2:
178153 + return search_error_codes(visited, visited_error_codes, expand_from, gimple_assign_rhs1(def_stmt), error_code);
178154 + case 3:
178155 + if (!error_code)
178156 + return error_code;
178157 +
178158 + /* Run stmt duplication from the binary assignment ops (rhs1 and rhs2)
178159 + * so that size_overflow checking skips the lhs of the last binary assignment
178160 + * before the error code PHI.
178161 + */
178162 + rhs1 = gimple_assign_rhs1(assign);
178163 + handle_binary_assign(visited, expand_from, assign, rhs1);
178164 + rhs2 = gimple_assign_rhs2(assign);
178165 + handle_binary_assign(visited, expand_from, assign, rhs2);
178166 + return error_code;
178167 + }
178168 + gcc_unreachable();
178169 + }
178170 + case GIMPLE_PHI: {
178171 + unsigned int i;
178172 +
178173 + error_code = has_error_code(as_a_gphi(def_stmt));
178174 + for (i = 0; i < gimple_phi_num_args(def_stmt); i++) {
178175 + error_code = search_error_codes(visited, visited_error_codes, expand_from, gimple_phi_arg_def(def_stmt, i), error_code);
178176 + }
178177 + return error_code;
178178 + }
178179 + default:
178180 + debug_gimple_stmt(def_stmt);
178181 + error("%s: unknown gimple code", __func__);
178182 + gcc_unreachable();
178183 + }
178184 +}
178185 +
178186 +static bool handle_error_codes(struct visited *visited, interesting_stmts_t expand_from)
178187 +{
178188 + bool error_code;
178189 + gimple_set *visited_error_codes;
178190 +
178191 + // expand the data flow from a return stmt
178192 + if (expand_from->next_node->num != 0 || strcmp(expand_from->next_node->context, "fndecl"))
178193 + return false;
178194 +
178195 + visited_error_codes = pointer_set_create();
178196 + error_code = search_error_codes(visited, visited_error_codes, expand_from, expand_from->orig_node, false);
178197 + pointer_set_destroy(visited_error_codes);
178198 +
178199 + return error_code;
178200 +}
178201 +
178202 +static void handle_interesting_stmt(struct visited *visited, interesting_stmts_t head)
178203 +{
178204 + interesting_stmts_t cur;
178205 +
178206 + for (cur = head; cur; cur = cur->next) {
178207 + tree new_node;
178208 + gimple orig_def_stmt;
178209 +
178210 + if (handle_error_codes(visited, cur))
178211 + continue;
178212 +
178213 + new_node = expand(visited, cur, cur->orig_node);
178214 + if (new_node == NULL_TREE)
178215 + continue;
178216 +
178217 + orig_def_stmt = get_def_stmt(cur->orig_node);
178218 +
178219 + change_orig_node(visited, cur->first_stmt, cur->orig_node, new_node, cur->num);
178220 +
178221 + if (pointer_set_contains(visited->no_cast_check, orig_def_stmt))
178222 + continue;
178223 + check_size_overflow(cur, cur->first_stmt, TREE_TYPE(new_node), new_node, cur->orig_node, BEFORE_STMT);
178224 + }
178225 +}
178226 +
178227 +static next_interesting_function_t get_interesting_function_next_node(tree decl, unsigned int num)
178228 +{
178229 + next_interesting_function_t next_node;
178230 + const struct size_overflow_hash *so_hash;
178231 + struct fn_raw_data raw_data;
178232 +
178233 + raw_data.decl = decl;
178234 + raw_data.decl_str = DECL_NAME_POINTER(decl);
178235 + raw_data.num = num;
178236 + raw_data.marked = YES_SO_MARK;
178237 +
178238 + next_node = get_global_next_interesting_function_entry_with_hash(&raw_data);
178239 + if (next_node && next_node->marked != NO_SO_MARK)
178240 + return next_node;
178241 +
178242 + so_hash = get_size_overflow_hash_entry_tree(raw_data.decl, raw_data.num, SIZE_OVERFLOW);
178243 + if (so_hash)
178244 + return get_and_create_next_node_from_global_next_nodes(&raw_data, NULL);
178245 + return NULL;
178246 +}
178247 +
178248 +tree handle_fnptr_assign(const_gimple stmt)
178249 +{
178250 + tree field, rhs, op0;
178251 + const_tree op0_type;
178252 + enum tree_code rhs_code;
178253 +
178254 + // TODO skip binary assignments for now (fs/sync.c _591 = __bpf_call_base + _590;)
178255 + if (gimple_num_ops(stmt) != 2)
178256 + return NULL_TREE;
178257 +
178258 + gcc_assert(gimple_num_ops(stmt) == 2);
178259 + // TODO skip asm_stmt for now
178260 + if (gimple_code(stmt) == GIMPLE_ASM)
178261 + return NULL_TREE;
178262 + rhs = gimple_assign_rhs1(stmt);
178263 + if (is_gimple_constant(rhs))
178264 + return NULL_TREE;
178265 +
178266 + rhs_code = TREE_CODE(rhs);
178267 + if (rhs_code == VAR_DECL)
178268 + return rhs;
178269 +
178270 + switch (rhs_code) {
178271 + case ADDR_EXPR:
178272 + op0 = TREE_OPERAND(rhs, 0);
178273 + gcc_assert(TREE_CODE(op0) == FUNCTION_DECL);
178274 + return op0;
178275 + case COMPONENT_REF:
178276 + break;
178277 + // TODO skip array_ref for now
178278 + case ARRAY_REF:
178279 + return NULL_TREE;
178280 + // TODO skip ssa_name because it can lead to parm_decl
178281 + case SSA_NAME:
178282 + return NULL_TREE;
178283 + // TODO skip mem_ref and indirect_ref for now
178284 +#if BUILDING_GCC_VERSION >= 4006
178285 + case MEM_REF:
178286 +#endif
178287 + case INDIRECT_REF:
178288 + return NULL_TREE;
178289 + default:
178290 + debug_tree(rhs);
178291 + debug_gimple_stmt((gimple)stmt);
178292 + gcc_unreachable();
178293 + }
178294 +
178295 + op0 = TREE_OPERAND(rhs, 0);
178296 + switch (TREE_CODE(op0)) {
178297 + // TODO skip array_ref and parm_decl for now
178298 + case ARRAY_REF:
178299 + case PARM_DECL:
178300 + return NULL_TREE;
178301 + case COMPONENT_REF:
178302 +#if BUILDING_GCC_VERSION >= 4006
178303 + case MEM_REF:
178304 +#endif
178305 + case INDIRECT_REF:
178306 + case VAR_DECL:
178307 + break;
178308 + default:
178309 + debug_tree(op0);
178310 + gcc_unreachable();
178311 + }
178312 +
178313 + op0_type = TREE_TYPE(op0);
178314 + // TODO skip unions for now
178315 + if (TREE_CODE(op0_type) == UNION_TYPE)
178316 + return NULL_TREE;
178317 + gcc_assert(TREE_CODE(op0_type) == RECORD_TYPE);
178318 +
178319 + field = TREE_OPERAND(rhs, 1);
178320 + gcc_assert(TREE_CODE(field) == FIELD_DECL);
178321 + return field;
178322 +}
178323 +
178324 +static tree get_fn_or_fnptr_decl(const gcall *call_stmt)
178325 +{
178326 + const_tree fnptr;
178327 + const_gimple def_stmt;
178328 + tree decl = gimple_call_fndecl(call_stmt);
178329 +
178330 + if (decl != NULL_TREE)
178331 + return decl;
178332 +
178333 + fnptr = gimple_call_fn(call_stmt);
178334 + if (fnptr == NULL_TREE)
178335 + return NULL_TREE;
178336 +
178337 + // !!! assertot kell irni 0-ra, mert csak az lehet ott
178338 + if (is_gimple_constant(fnptr))
178339 + return NULL_TREE;
178340 + def_stmt = get_fnptr_def_stmt(fnptr);
178341 + return handle_fnptr_assign(def_stmt);
178342 +}
178343 +
178344 +// Start stmt duplication on marked function parameters
178345 +static interesting_stmts_t search_interesting_calls(interesting_stmts_t head, gcall *call_stmt)
178346 +{
178347 + tree decl;
178348 + unsigned int i, len;
178349 +
178350 + len = gimple_call_num_args(call_stmt);
178351 + if (len == 0)
178352 + return head;
178353 +
178354 + decl = get_fn_or_fnptr_decl(call_stmt);
178355 + if (decl == NULL_TREE)
178356 + return head;
178357 +
178358 + for (i = 0; i < len; i++) {
178359 + tree arg;
178360 + next_interesting_function_t next_node;
178361 +
178362 + arg = gimple_call_arg(call_stmt, i);
178363 + if (is_gimple_constant(arg))
178364 + continue;
178365 + if (skip_types(arg))
178366 + continue;
178367 + next_node = get_interesting_function_next_node(decl, i + 1);
178368 + if (next_node)
178369 + head = search_interesting_stmt(head, next_node, call_stmt, arg, i + 1);
178370 + }
178371 +
178372 + return head;
178373 +}
178374 +
178375 +// Find assignements to structure fields and vardecls
178376 +static interesting_stmts_t search_interesting_structs_vardecls(interesting_stmts_t head, gassign *assign)
178377 +{
178378 + enum intentional_mark mark;
178379 + next_interesting_function_t next_node;
178380 + tree rhs1, rhs2, lhs, decl;
178381 +#if BUILDING_GCC_VERSION >= 4006
178382 + tree rhs3;
178383 +#endif
178384 +
178385 + lhs = gimple_assign_lhs(assign);
178386 +
178387 + if (VAR_P(lhs))
178388 + decl = lhs;
178389 + else
178390 + decl = get_ref_field(lhs);
178391 + if (decl == NULL_TREE)
178392 + return head;
178393 + if (DECL_NAME(decl) == NULL_TREE)
178394 + return head;
178395 +
178396 + if (is_bitfield_unnamed_cast(decl, assign))
178397 + return head;
178398 +
178399 + next_node = get_interesting_function_next_node(decl, 0);
178400 + if (!next_node)
178401 + return head;
178402 +
178403 + mark = get_intentional_attr_type(decl);
178404 + if (mark != MARK_NO)
178405 + return head;
178406 +
178407 + rhs1 = gimple_assign_rhs1(assign);
178408 + head = search_interesting_stmt(head, next_node, assign, rhs1, 0);
178409 +
178410 + rhs2 = gimple_assign_rhs2(assign);
178411 + if (rhs2)
178412 + head = search_interesting_stmt(head, next_node, assign, rhs2, 0);
178413 +
178414 +#if BUILDING_GCC_VERSION >= 4006
178415 + rhs3 = gimple_assign_rhs3(assign);
178416 + if (rhs3)
178417 + head = search_interesting_stmt(head, next_node, assign, rhs3, 0);
178418 +#endif
178419 + return head;
178420 +}
178421 +
178422 +static next_interesting_function_t create_so_asm_next_interesting_function_node(const gasm *stmt)
178423 +{
178424 + next_interesting_function_t next_node;
178425 + struct fn_raw_data raw_data;
178426 +
178427 + raw_data.decl = NULL_TREE;
178428 + raw_data.decl_str = gimple_asm_string(stmt);
178429 + raw_data.context = "attr";
178430 + raw_data.hash = 0;
178431 + raw_data.num = 0;
178432 + raw_data.marked = ASM_STMT_SO_MARK;
178433 +
178434 + next_node = get_global_next_interesting_function_entry(&raw_data);
178435 + if (next_node)
178436 + return next_node;
178437 + next_node = create_new_next_interesting_entry(&raw_data, NULL);
178438 + gcc_assert(next_node);
178439 +
178440 + add_to_global_next_interesting_function(next_node);
178441 + return next_node;
178442 +}
178443 +
178444 +// Collect interesting stmts for duplication
178445 +static void search_interesting_stmts(struct visited *visited)
178446 +{
178447 + basic_block bb;
178448 + next_interesting_function_t next_node_ret;
178449 + interesting_stmts_t head = NULL;
178450 +
178451 + next_node_ret = get_interesting_function_next_node(current_function_decl, 0);
178452 +
178453 + FOR_EACH_BB_FN(bb, cfun) {
178454 + gimple_stmt_iterator gsi;
178455 +
178456 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
178457 + gimple stmt = gsi_stmt(gsi);
178458 +
178459 + switch (gimple_code(stmt)) {
178460 + case GIMPLE_ASM: {
178461 + tree first_node;
178462 + next_interesting_function_t next_node;
178463 + const gasm *asm_stmt = as_a_gasm(stmt);
178464 +
178465 + if (!is_size_overflow_insert_check_asm(asm_stmt))
178466 + continue;
178467 + next_node = create_so_asm_next_interesting_function_node(asm_stmt);
178468 + first_node = get_size_overflow_asm_input(asm_stmt);
178469 + head = search_interesting_stmt(head, next_node, stmt, first_node, 0);
178470 + break;
178471 + }
178472 + case GIMPLE_RETURN:
178473 + head = search_interesting_rets(head, next_node_ret, as_a_greturn(stmt));
178474 + break;
178475 + case GIMPLE_CALL:
178476 + head = search_interesting_calls(head, as_a_gcall(stmt));
178477 + break;
178478 + case GIMPLE_ASSIGN:
178479 + /* !!! TODO LTO modeban nincs duplikalas a globalis valtozora, mert a tree mergek
178480 + * utan mar nem lehet megkulonboztetni attol a globalis valtozotol, aminek a scopeja csak a file
178481 + * igy a context nem vardecl lesz, hanem vardecl_filenev. De execute-ban kiirja, ha hianyzik a hash tablabol
178482 + * IPA-ban van duplikalas.
178483 + */
178484 + head = search_interesting_structs_vardecls(head, as_a_gassign(stmt));
178485 + break;
178486 + default:
178487 + break;
178488 + }
178489 + }
178490 + }
178491 +
178492 + handle_interesting_stmt(visited, head);
178493 + free_interesting_stmts(head);
178494 +}
178495 +
178496 +static struct visited *create_visited(void)
178497 +{
178498 + struct visited *new_node;
178499 +
178500 + new_node = (struct visited *)xmalloc(sizeof(*new_node));
178501 + new_node->stmts = pointer_set_create();
178502 + new_node->my_stmts = pointer_set_create();
178503 + new_node->skip_expr_casts = pointer_set_create();
178504 + new_node->no_cast_check = pointer_set_create();
178505 + return new_node;
178506 +}
178507 +
178508 +static void free_visited(struct visited *visited)
178509 +{
178510 + pointer_set_destroy(visited->stmts);
178511 + pointer_set_destroy(visited->my_stmts);
178512 + pointer_set_destroy(visited->skip_expr_casts);
178513 + pointer_set_destroy(visited->no_cast_check);
178514 +
178515 + free(visited);
178516 +}
178517 +
178518 +// Remove the size_overflow asm stmt and create an assignment from the input and output of the asm
178519 +static void replace_size_overflow_asm_with_assign(gasm *asm_stmt, tree lhs, tree rhs)
178520 +{
178521 + gassign *assign;
178522 + gimple_stmt_iterator gsi;
178523 +
178524 + // already removed
178525 + if (gimple_bb(asm_stmt) == NULL)
178526 + return;
178527 + gsi = gsi_for_stmt(asm_stmt);
178528 +
178529 + assign = gimple_build_assign(lhs, rhs);
178530 + gsi_insert_before(&gsi, assign, GSI_SAME_STMT);
178531 + SSA_NAME_DEF_STMT(lhs) = assign;
178532 +
178533 + gsi_remove(&gsi, true);
178534 +}
178535 +
178536 +// Replace our asm stmts with assignments (they are no longer needed and may interfere with later optimizations)
178537 +static void remove_size_overflow_asm(gimple stmt)
178538 +{
178539 + gimple_stmt_iterator gsi;
178540 + tree input, output;
178541 +
178542 + if (!is_size_overflow_asm(stmt))
178543 + return;
178544 +
178545 + if (gimple_asm_noutputs(as_a_gasm(stmt)) == 0) {
178546 + gsi = gsi_for_stmt(stmt);
178547 +
178548 + ipa_remove_stmt_references(cgraph_get_node(current_function_decl), stmt);
178549 + gsi_remove(&gsi, true);
178550 + return;
178551 + }
178552 +
178553 + input = gimple_asm_input_op(as_a_gasm(stmt), 0);
178554 + output = gimple_asm_output_op(as_a_gasm(stmt), 0);
178555 + replace_size_overflow_asm_with_assign(as_a_gasm(stmt), TREE_VALUE(output), TREE_VALUE(input));
178556 +}
178557 +
178558 +static void remove_all_size_overflow_asm(void)
178559 +{
178560 + basic_block bb;
178561 +
178562 + FOR_EACH_BB_FN(bb, cfun) {
178563 + gimple_stmt_iterator si;
178564 +
178565 + for (si = gsi_start_bb(bb); !gsi_end_p(si); gsi_next(&si))
178566 + remove_size_overflow_asm(gsi_stmt(si));
178567 + }
178568 +}
178569 +
178570 +unsigned int size_overflow_function_transform(struct cgraph_node *node __unused)
178571 +{
178572 + struct visited *visited;
178573 +
178574 +#if BUILDING_GCC_VERSION >= 4008
178575 + if (dump_file) {
178576 + fprintf(dump_file, "BEFORE TRANSFORM -------------------------\n");
178577 + size_overflow_dump_function(dump_file, node);
178578 + }
178579 +#endif
178580 + visited = create_visited();
178581 + set_dominance_info();
178582 +
178583 + search_interesting_stmts(visited);
178584 +
178585 + remove_all_size_overflow_asm();
178586 +
178587 + unset_dominance_info();
178588 + free_visited(visited);
178589 +
178590 +#if BUILDING_GCC_VERSION >= 4008
178591 + if (dump_file) {
178592 + fprintf(dump_file, "AFTER TRANSFORM -------------------------\n");
178593 + size_overflow_dump_function(dump_file, node);
178594 + }
178595 +#endif
178596 + return TODO_dump_func | TODO_verify_stmts | TODO_remove_unused_locals | TODO_update_ssa_no_phi | TODO_ggc_collect | TODO_verify_flow;
178597 +}
178598 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_transform_core.c b/tools/gcc/size_overflow_plugin/size_overflow_transform_core.c
178599 new file mode 100644
178600 index 0000000..9162fe5
178601 --- /dev/null
178602 +++ b/tools/gcc/size_overflow_plugin/size_overflow_transform_core.c
178603 @@ -0,0 +1,1015 @@
178604 +/*
178605 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
178606 + * Licensed under the GPL v2, or (at your option) v3
178607 + *
178608 + * Homepage:
178609 + * https://github.com/ephox-gcc-plugins/size_overflow
178610 + *
178611 + * Documentation:
178612 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
178613 + *
178614 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
178615 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
178616 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
178617 + *
178618 + * Usage:
178619 + * $ make
178620 + * $ make run
178621 + */
178622 +
178623 +#include "size_overflow.h"
178624 +
178625 +#define MIN_CHECK true
178626 +#define MAX_CHECK false
178627 +
178628 +unsigned int call_count = 0;
178629 +
178630 +tree get_size_overflow_type(struct visited *visited, const_gimple stmt, const_tree node)
178631 +{
178632 + const_tree type;
178633 + tree new_type;
178634 +
178635 + gcc_assert(node != NULL_TREE);
178636 +
178637 + type = TREE_TYPE(node);
178638 +
178639 + if (pointer_set_contains(visited->my_stmts, stmt))
178640 + return TREE_TYPE(node);
178641 +
178642 + switch (TYPE_MODE(type)) {
178643 + case QImode:
178644 + case HImode:
178645 + new_type = size_overflow_type_SI;
178646 + break;
178647 + case SImode:
178648 + new_type = size_overflow_type_DI;
178649 + break;
178650 + case DImode:
178651 + if (LONG_TYPE_SIZE == GET_MODE_BITSIZE(SImode))
178652 + new_type = TYPE_UNSIGNED(type) ? unsigned_intDI_type_node : intDI_type_node;
178653 + else
178654 + new_type = size_overflow_type_TI;
178655 + break;
178656 + case TImode:
178657 + gcc_assert(!TYPE_UNSIGNED(type));
178658 + new_type = size_overflow_type_TI;
178659 + break;
178660 + default:
178661 + debug_tree(node);
178662 + error("%s: unsupported gcc configuration (%qE).", __func__, current_function_decl);
178663 + gcc_unreachable();
178664 + }
178665 +
178666 + if (TYPE_QUALS(type) != 0)
178667 + return build_qualified_type(new_type, TYPE_QUALS(type));
178668 + return new_type;
178669 +}
178670 +
178671 +tree cast_to_new_size_overflow_type(struct visited *visited, gimple stmt, tree rhs, tree size_overflow_type, bool before)
178672 +{
178673 + gimple_stmt_iterator gsi;
178674 + gimple new_stmt;
178675 +
178676 + if (rhs == NULL_TREE)
178677 + return NULL_TREE;
178678 +
178679 + gsi = gsi_for_stmt(stmt);
178680 + new_stmt = build_cast_stmt(visited, size_overflow_type, rhs, CREATE_NEW_VAR, &gsi, before, false);
178681 + if (gimple_assign_cast_p(new_stmt))
178682 + gimple_assign_set_rhs_code(new_stmt, CONVERT_EXPR);
178683 + pointer_set_insert(visited->my_stmts, new_stmt);
178684 +
178685 + return get_lhs(new_stmt);
178686 +}
178687 +
178688 +tree create_assign(struct visited *visited, gimple oldstmt, tree rhs1, bool before)
178689 +{
178690 + tree lhs, dst_type;
178691 + gimple_stmt_iterator gsi;
178692 +
178693 + if (rhs1 == NULL_TREE) {
178694 + debug_gimple_stmt(oldstmt);
178695 + error("%s: rhs1 is NULL_TREE", __func__);
178696 + gcc_unreachable();
178697 + }
178698 +
178699 + switch (gimple_code(oldstmt)) {
178700 + case GIMPLE_ASM:
178701 + lhs = rhs1;
178702 + break;
178703 + case GIMPLE_CALL:
178704 + case GIMPLE_ASSIGN:
178705 + lhs = gimple_get_lhs(oldstmt);
178706 + break;
178707 + default:
178708 + debug_gimple_stmt(oldstmt);
178709 + gcc_unreachable();
178710 + }
178711 +
178712 + gsi = gsi_for_stmt(oldstmt);
178713 + pointer_set_insert(visited->stmts, oldstmt);
178714 + if (lookup_stmt_eh_lp(oldstmt) != 0) {
178715 + basic_block next_bb, cur_bb;
178716 + const_edge e;
178717 +
178718 + gcc_assert(before == false);
178719 + gcc_assert(stmt_can_throw_internal(oldstmt));
178720 + gcc_assert(gimple_code(oldstmt) == GIMPLE_CALL);
178721 + gcc_assert(!gsi_end_p(gsi));
178722 +
178723 + cur_bb = gimple_bb(oldstmt);
178724 + next_bb = cur_bb->next_bb;
178725 + e = find_edge(cur_bb, next_bb);
178726 + gcc_assert(e != NULL);
178727 + gcc_assert(e->flags & EDGE_FALLTHRU);
178728 +
178729 + gsi = gsi_after_labels(next_bb);
178730 + gcc_assert(!gsi_end_p(gsi));
178731 +
178732 + before = true;
178733 + oldstmt = gsi_stmt(gsi);
178734 + }
178735 +
178736 + if (is_gimple_constant(rhs1) && TREE_CODE_CLASS(gimple_assign_rhs_code(oldstmt)) == tcc_comparison)
178737 + dst_type = get_size_overflow_type(visited, oldstmt, rhs1);
178738 + else
178739 + dst_type = get_size_overflow_type(visited, oldstmt, lhs);
178740 +
178741 + if (is_gimple_constant(rhs1))
178742 + return cast_a_tree(dst_type, rhs1);
178743 + return cast_to_new_size_overflow_type(visited, oldstmt, rhs1, dst_type, before);
178744 +}
178745 +
178746 +tree dup_assign(struct visited *visited, gassign *oldstmt, const_tree node, tree rhs1, tree rhs2, tree __unused rhs3)
178747 +{
178748 + gassign *stmt;
178749 + gimple_stmt_iterator gsi;
178750 + tree size_overflow_type, new_var, lhs = gimple_assign_lhs(oldstmt);
178751 +
178752 + if (pointer_set_contains(visited->my_stmts, oldstmt))
178753 + return lhs;
178754 +
178755 + if (gimple_num_ops(oldstmt) != 4 && rhs1 == NULL_TREE) {
178756 + rhs1 = gimple_assign_rhs1(oldstmt);
178757 + rhs1 = create_assign(visited, oldstmt, rhs1, BEFORE_STMT);
178758 + }
178759 + if (gimple_num_ops(oldstmt) == 3 && rhs2 == NULL_TREE) {
178760 + rhs2 = gimple_assign_rhs2(oldstmt);
178761 + rhs2 = create_assign(visited, oldstmt, rhs2, BEFORE_STMT);
178762 + }
178763 +
178764 + stmt = as_a_gassign(gimple_copy(oldstmt));
178765 + gimple_set_location(stmt, gimple_location(oldstmt));
178766 + pointer_set_insert(visited->my_stmts, stmt);
178767 +
178768 + if (gimple_assign_rhs_code(oldstmt) == WIDEN_MULT_EXPR)
178769 + gimple_assign_set_rhs_code(stmt, MULT_EXPR);
178770 +
178771 + size_overflow_type = get_size_overflow_type(visited, oldstmt, node);
178772 +
178773 + new_var = create_new_var(size_overflow_type);
178774 + new_var = make_ssa_name(new_var, stmt);
178775 + gimple_assign_set_lhs(stmt, new_var);
178776 +
178777 + if (rhs1 != NULL_TREE)
178778 + gimple_assign_set_rhs1(stmt, rhs1);
178779 +
178780 + if (rhs2 != NULL_TREE)
178781 + gimple_assign_set_rhs2(stmt, rhs2);
178782 +#if BUILDING_GCC_VERSION >= 4006
178783 + if (rhs3 != NULL_TREE)
178784 + gimple_assign_set_rhs3(stmt, rhs3);
178785 +#endif
178786 + gimple_set_vuse(stmt, gimple_vuse(oldstmt));
178787 + gimple_set_vdef(stmt, gimple_vdef(oldstmt));
178788 +
178789 + gsi = gsi_for_stmt(oldstmt);
178790 + gsi_insert_after(&gsi, stmt, GSI_SAME_STMT);
178791 + update_stmt(stmt);
178792 + pointer_set_insert(visited->stmts, oldstmt);
178793 + return gimple_assign_lhs(stmt);
178794 +}
178795 +
178796 +static tree cast_parm_decl(struct visited *visited, tree phi_ssa_name, tree arg, tree size_overflow_type, basic_block bb)
178797 +{
178798 + const_gimple assign;
178799 + gimple_stmt_iterator gsi;
178800 + basic_block first_bb;
178801 +
178802 + gcc_assert(SSA_NAME_IS_DEFAULT_DEF(arg));
178803 +
178804 + if (bb->index == 0) {
178805 + first_bb = split_block_after_labels(ENTRY_BLOCK_PTR_FOR_FN(cfun))->dest;
178806 + gcc_assert(dom_info_available_p(CDI_DOMINATORS));
178807 + set_immediate_dominator(CDI_DOMINATORS, first_bb, ENTRY_BLOCK_PTR_FOR_FN(cfun));
178808 + bb = first_bb;
178809 + }
178810 +
178811 + gsi = gsi_after_labels(bb);
178812 + assign = build_cast_stmt(visited, size_overflow_type, arg, phi_ssa_name, &gsi, BEFORE_STMT, false);
178813 + pointer_set_insert(visited->my_stmts, assign);
178814 + return get_lhs(assign);
178815 +}
178816 +
178817 +static tree use_phi_ssa_name(struct visited *visited, tree ssa_name_var, tree new_arg)
178818 +{
178819 + gimple_stmt_iterator gsi;
178820 + const_gimple assign;
178821 + gimple def_stmt = get_def_stmt(new_arg);
178822 +
178823 + if (gimple_code(def_stmt) == GIMPLE_PHI) {
178824 + gsi = gsi_after_labels(gimple_bb(def_stmt));
178825 + assign = build_cast_stmt(visited, TREE_TYPE(new_arg), new_arg, ssa_name_var, &gsi, BEFORE_STMT, true);
178826 + } else {
178827 + gsi = gsi_for_stmt(def_stmt);
178828 + assign = build_cast_stmt(visited, TREE_TYPE(new_arg), new_arg, ssa_name_var, &gsi, AFTER_STMT, true);
178829 + }
178830 +
178831 + pointer_set_insert(visited->my_stmts, assign);
178832 + return get_lhs(assign);
178833 +}
178834 +
178835 +static tree cast_visited_phi_arg(struct visited *visited, tree ssa_name_var, tree arg, tree size_overflow_type)
178836 +{
178837 + basic_block bb;
178838 + gimple_stmt_iterator gsi;
178839 + const_gimple def_stmt;
178840 + const_gimple assign;
178841 +
178842 + def_stmt = get_def_stmt(arg);
178843 + bb = gimple_bb(def_stmt);
178844 + gcc_assert(bb->index != 0);
178845 + gsi = gsi_after_labels(bb);
178846 +
178847 + assign = build_cast_stmt(visited, size_overflow_type, arg, ssa_name_var, &gsi, BEFORE_STMT, false);
178848 + pointer_set_insert(visited->my_stmts, assign);
178849 + return get_lhs(assign);
178850 +}
178851 +
178852 +static tree create_new_phi_arg(struct visited *visited, tree ssa_name_var, tree new_arg, gphi *oldstmt, unsigned int i)
178853 +{
178854 + tree size_overflow_type;
178855 + tree arg;
178856 + const_gimple def_stmt;
178857 +
178858 + if (new_arg != NULL_TREE && is_gimple_constant(new_arg))
178859 + return new_arg;
178860 +
178861 + arg = gimple_phi_arg_def(oldstmt, i);
178862 + def_stmt = get_def_stmt(arg);
178863 + gcc_assert(def_stmt != NULL);
178864 + size_overflow_type = get_size_overflow_type(visited, oldstmt, arg);
178865 +
178866 + switch (gimple_code(def_stmt)) {
178867 + case GIMPLE_PHI:
178868 + return cast_visited_phi_arg(visited, ssa_name_var, arg, size_overflow_type);
178869 + case GIMPLE_NOP: {
178870 + basic_block bb;
178871 +
178872 + bb = gimple_phi_arg_edge(oldstmt, i)->src;
178873 + return cast_parm_decl(visited, ssa_name_var, arg, size_overflow_type, bb);
178874 + }
178875 + case GIMPLE_ASM: {
178876 + gimple_stmt_iterator gsi;
178877 + const_gimple assign;
178878 + gimple stmt = get_def_stmt(arg);
178879 +
178880 + gsi = gsi_for_stmt(stmt);
178881 + assign = build_cast_stmt(visited, size_overflow_type, arg, ssa_name_var, &gsi, AFTER_STMT, false);
178882 + pointer_set_insert(visited->my_stmts, assign);
178883 + return get_lhs(assign);
178884 + }
178885 + default:
178886 + gcc_assert(new_arg != NULL_TREE);
178887 + gcc_assert(types_compatible_p(TREE_TYPE(new_arg), size_overflow_type));
178888 + return use_phi_ssa_name(visited, ssa_name_var, new_arg);
178889 + }
178890 +}
178891 +
178892 +static gphi *overflow_create_phi_node(struct visited *visited, gphi *oldstmt, tree result)
178893 +{
178894 + basic_block bb;
178895 + gphi *phi;
178896 + gimple_seq seq;
178897 + gimple_stmt_iterator gsi = gsi_for_stmt(oldstmt);
178898 +
178899 + bb = gsi_bb(gsi);
178900 +
178901 + if (result == NULL_TREE) {
178902 + tree old_result = gimple_phi_result(oldstmt);
178903 + tree size_overflow_type = get_size_overflow_type(visited, oldstmt, old_result);
178904 +
178905 + result = create_new_var(size_overflow_type);
178906 + }
178907 +
178908 + phi = as_a_gphi(create_phi_node(result, bb));
178909 + gimple_phi_set_result(phi, make_ssa_name(result, phi));
178910 + seq = phi_nodes(bb);
178911 + gsi = gsi_last(seq);
178912 + gsi_remove(&gsi, false);
178913 +
178914 + gsi = gsi_for_stmt(oldstmt);
178915 + gsi_insert_after(&gsi, phi, GSI_NEW_STMT);
178916 + gimple_set_bb(phi, bb);
178917 + return phi;
178918 +}
178919 +
178920 +#if BUILDING_GCC_VERSION <= 4007
178921 +static tree create_new_phi_node(struct visited *visited, VEC(tree, heap) **args, tree ssa_name_var, gimple oldstmt)
178922 +#else
178923 +static tree create_new_phi_node(struct visited *visited, vec<tree, va_heap, vl_embed> *&args, tree ssa_name_var, gphi *oldstmt)
178924 +#endif
178925 +{
178926 + gphi *new_phi;
178927 + unsigned int i;
178928 + tree arg, result;
178929 + location_t loc = gimple_location(oldstmt);
178930 +
178931 +#if BUILDING_GCC_VERSION <= 4007
178932 + gcc_assert(!VEC_empty(tree, *args));
178933 +#else
178934 + gcc_assert(!args->is_empty());
178935 +#endif
178936 +
178937 + new_phi = overflow_create_phi_node(visited, oldstmt, ssa_name_var);
178938 + result = gimple_phi_result(new_phi);
178939 + ssa_name_var = SSA_NAME_VAR(result);
178940 +
178941 +#if BUILDING_GCC_VERSION <= 4007
178942 + FOR_EACH_VEC_ELT(tree, *args, i, arg) {
178943 +#else
178944 + FOR_EACH_VEC_SAFE_ELT(args, i, arg) {
178945 +#endif
178946 + arg = create_new_phi_arg(visited, ssa_name_var, arg, oldstmt, i);
178947 + add_phi_arg(new_phi, arg, gimple_phi_arg_edge(oldstmt, i), loc);
178948 + }
178949 +
178950 +#if BUILDING_GCC_VERSION <= 4007
178951 + VEC_free(tree, heap, *args);
178952 +#else
178953 + vec_free(args);
178954 +#endif
178955 + update_stmt(new_phi);
178956 + pointer_set_insert(visited->my_stmts, new_phi);
178957 + return result;
178958 +}
178959 +
178960 +static tree handle_phi(struct visited *visited, interesting_stmts_t expand_from, tree orig_result)
178961 +{
178962 +#if BUILDING_GCC_VERSION <= 4007
178963 + VEC(tree, heap) *args = NULL;
178964 +#else
178965 + vec<tree, va_heap, vl_embed> *args = NULL;
178966 +#endif
178967 + unsigned int i, len;
178968 + tree ssa_name_var = NULL_TREE;
178969 + gphi *oldstmt = as_a_gphi(get_def_stmt(orig_result));
178970 +
178971 + len = gimple_phi_num_args(oldstmt);
178972 + pointer_set_insert(visited->stmts, oldstmt);
178973 + for (i = 0; i < len; i++) {
178974 + tree arg, new_arg;
178975 +
178976 + arg = gimple_phi_arg_def(oldstmt, i);
178977 + new_arg = expand(visited, expand_from, arg);
178978 +
178979 + if (ssa_name_var == NULL_TREE && new_arg != NULL_TREE)
178980 + ssa_name_var = SSA_NAME_VAR(new_arg);
178981 +
178982 + if (is_gimple_constant(arg)) {
178983 + tree size_overflow_type = get_size_overflow_type(visited, oldstmt, arg);
178984 +
178985 + new_arg = cast_a_tree(size_overflow_type, arg);
178986 + }
178987 +
178988 +#if BUILDING_GCC_VERSION <= 4007
178989 + VEC_safe_push(tree, heap, args, new_arg);
178990 +#else
178991 + vec_safe_push(args, new_arg);
178992 +#endif
178993 + }
178994 +
178995 +#if BUILDING_GCC_VERSION <= 4007
178996 + return create_new_phi_node(visited, &args, ssa_name_var, oldstmt);
178997 +#else
178998 + return create_new_phi_node(visited, args, ssa_name_var, oldstmt);
178999 +#endif
179000 +}
179001 +
179002 +static tree create_cast_assign(struct visited *visited, gassign *stmt)
179003 +{
179004 + tree rhs1 = gimple_assign_rhs1(stmt);
179005 + tree lhs = gimple_assign_lhs(stmt);
179006 + const_tree rhs1_type = TREE_TYPE(rhs1);
179007 + const_tree lhs_type = TREE_TYPE(lhs);
179008 +
179009 + if (TYPE_UNSIGNED(rhs1_type) == TYPE_UNSIGNED(lhs_type))
179010 + return create_assign(visited, stmt, lhs, AFTER_STMT);
179011 +
179012 + return create_assign(visited, stmt, rhs1, AFTER_STMT);
179013 +}
179014 +
179015 +static bool skip_lhs_cast_check(const gassign *stmt)
179016 +{
179017 + const_tree rhs = gimple_assign_rhs1(stmt);
179018 + const_gimple def_stmt = get_def_stmt(rhs);
179019 +
179020 + // 3.8.2 kernel/futex_compat.c compat_exit_robust_list(): get_user() 64 ulong -> int (compat_long_t), int max
179021 + if (gimple_code(def_stmt) == GIMPLE_ASM)
179022 + return true;
179023 +
179024 + if (is_const_plus_unsigned_signed_truncation(rhs))
179025 + return true;
179026 +
179027 + return false;
179028 +}
179029 +
179030 +static tree create_string_param(tree string)
179031 +{
179032 + tree i_type, a_type;
179033 + const int length = TREE_STRING_LENGTH(string);
179034 +
179035 + gcc_assert(length > 0);
179036 +
179037 + i_type = build_index_type(build_int_cst(NULL_TREE, length - 1));
179038 + a_type = build_array_type(char_type_node, i_type);
179039 +
179040 + TREE_TYPE(string) = a_type;
179041 + TREE_CONSTANT(string) = 1;
179042 + TREE_READONLY(string) = 1;
179043 +
179044 + return build1(ADDR_EXPR, ptr_type_node, string);
179045 +}
179046 +
179047 +static void insert_cond(basic_block cond_bb, tree arg, enum tree_code cond_code, tree type_value)
179048 +{
179049 + gcond *cond_stmt;
179050 + gimple_stmt_iterator gsi = gsi_last_bb(cond_bb);
179051 +
179052 + cond_stmt = gimple_build_cond(cond_code, arg, type_value, NULL_TREE, NULL_TREE);
179053 + gsi_insert_after(&gsi, cond_stmt, GSI_CONTINUE_LINKING);
179054 + update_stmt(cond_stmt);
179055 +}
179056 +
179057 +static void insert_cond_result(interesting_stmts_t expand_from, basic_block bb_true, const_gimple stmt, const_tree arg, bool min)
179058 +{
179059 + gcall *func_stmt;
179060 + const_gimple def_stmt;
179061 + const_tree loc_line;
179062 + tree loc_file, ssa_name, current_func;
179063 + expanded_location xloc;
179064 + char *ssa_name_buf;
179065 + int len;
179066 + struct cgraph_edge *edge;
179067 + struct cgraph_node *report_node;
179068 + int frequency;
179069 + gimple_stmt_iterator gsi = gsi_start_bb(bb_true);
179070 +
179071 + def_stmt = get_def_stmt(arg);
179072 + if (gimple_has_location(def_stmt))
179073 + xloc = expand_location(gimple_location(def_stmt));
179074 + else if (gimple_has_location(stmt))
179075 + xloc = expand_location(gimple_location(stmt));
179076 + else
179077 + xloc = expand_location(DECL_SOURCE_LOCATION(current_function_decl));
179078 +
179079 + loc_line = build_int_cstu(unsigned_type_node, xloc.line);
179080 +
179081 + loc_file = build_string(strlen(xloc.file) + 1, xloc.file);
179082 + loc_file = create_string_param(loc_file);
179083 +
179084 + current_func = build_string(DECL_NAME_LENGTH(current_function_decl) + 1, DECL_NAME_POINTER(current_function_decl));
179085 + current_func = create_string_param(current_func);
179086 +
179087 + gcc_assert(DECL_NAME(SSA_NAME_VAR(arg)) != NULL);
179088 + call_count++;
179089 + 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);
179090 + gcc_assert(len > 0);
179091 + ssa_name = build_string(len + 1, ssa_name_buf);
179092 + free(ssa_name_buf);
179093 + ssa_name = create_string_param(ssa_name);
179094 +
179095 + // void report_size_overflow(const char *file, unsigned int line, const char *func, const char *ssa_name)
179096 + func_stmt = as_a_gcall(gimple_build_call(report_size_overflow_decl, 4, loc_file, loc_line, current_func, ssa_name));
179097 + gsi_insert_after(&gsi, func_stmt, GSI_CONTINUE_LINKING);
179098 +
179099 + report_node = cgraph_get_create_node(report_size_overflow_decl);
179100 + gcc_assert(report_node);
179101 + frequency = compute_call_stmt_bb_frequency(current_function_decl, bb_true);
179102 +
179103 + edge = cgraph_create_edge(get_cnode(current_function_decl), report_node, func_stmt, bb_true->count, frequency, bb_true->loop_depth);
179104 + gcc_assert(edge != NULL);
179105 +}
179106 +
179107 +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)
179108 +{
179109 + basic_block cond_bb, join_bb, bb_true;
179110 + edge e;
179111 + gimple_stmt_iterator gsi = gsi_for_stmt(stmt);
179112 +
179113 + cond_bb = gimple_bb(stmt);
179114 + if (before)
179115 + gsi_prev(&gsi);
179116 + if (gsi_end_p(gsi))
179117 + e = split_block_after_labels(cond_bb);
179118 + else
179119 + e = split_block(cond_bb, gsi_stmt(gsi));
179120 + cond_bb = e->src;
179121 + join_bb = e->dest;
179122 + e->flags = EDGE_FALSE_VALUE;
179123 + e->probability = REG_BR_PROB_BASE;
179124 +
179125 + bb_true = create_empty_bb(cond_bb);
179126 + make_edge(cond_bb, bb_true, EDGE_TRUE_VALUE);
179127 + make_edge(cond_bb, join_bb, EDGE_FALSE_VALUE);
179128 + make_edge(bb_true, join_bb, EDGE_FALLTHRU);
179129 +
179130 + gcc_assert(dom_info_available_p(CDI_DOMINATORS));
179131 + set_immediate_dominator(CDI_DOMINATORS, bb_true, cond_bb);
179132 + set_immediate_dominator(CDI_DOMINATORS, join_bb, cond_bb);
179133 +
179134 + if (current_loops != NULL) {
179135 + gcc_assert(cond_bb->loop_father == join_bb->loop_father);
179136 + add_bb_to_loop(bb_true, cond_bb->loop_father);
179137 + }
179138 +
179139 + insert_cond(cond_bb, arg, cond_code, type_value);
179140 + insert_cond_result(expand_from, bb_true, stmt, arg, min);
179141 +
179142 +// print_the_code_insertions(stmt);
179143 +}
179144 +
179145 +void check_size_overflow(interesting_stmts_t expand_from, gimple stmt, tree size_overflow_type, tree cast_rhs, tree rhs, bool before)
179146 +{
179147 + const_tree rhs_type = TREE_TYPE(rhs);
179148 + tree cast_rhs_type, type_max_type, type_min_type, type_max, type_min;
179149 +
179150 + gcc_assert(rhs_type != NULL_TREE);
179151 + if (TREE_CODE(rhs_type) == POINTER_TYPE)
179152 + return;
179153 +
179154 + gcc_assert(TREE_CODE(rhs_type) == INTEGER_TYPE || TREE_CODE(rhs_type) == ENUMERAL_TYPE);
179155 +
179156 + if (is_const_plus_unsigned_signed_truncation(rhs))
179157 + return;
179158 + if (is_gimple_assign(stmt) && neg_short_add_intentional_overflow(as_a_gassign(stmt)))
179159 + return;
179160 +
179161 + type_max = cast_a_tree(size_overflow_type, TYPE_MAX_VALUE(rhs_type));
179162 + // typemax (-1) < typemin (0)
179163 + if (TREE_OVERFLOW(type_max))
179164 + return;
179165 +
179166 + type_min = cast_a_tree(size_overflow_type, TYPE_MIN_VALUE(rhs_type));
179167 +
179168 + cast_rhs_type = TREE_TYPE(cast_rhs);
179169 + type_max_type = TREE_TYPE(type_max);
179170 + gcc_assert(types_compatible_p(cast_rhs_type, type_max_type));
179171 +
179172 + insert_check_size_overflow(expand_from, stmt, GT_EXPR, cast_rhs, type_max, before, MAX_CHECK);
179173 +
179174 + // special case: get_size_overflow_type(), 32, u64->s
179175 + if (LONG_TYPE_SIZE == GET_MODE_BITSIZE(SImode) && TYPE_UNSIGNED(size_overflow_type) && !TYPE_UNSIGNED(rhs_type))
179176 + return;
179177 +
179178 + type_min_type = TREE_TYPE(type_min);
179179 + gcc_assert(types_compatible_p(type_max_type, type_min_type));
179180 + insert_check_size_overflow(expand_from, stmt, LT_EXPR, cast_rhs, type_min, before, MIN_CHECK);
179181 +}
179182 +
179183 +static tree get_my_stmt_lhs(struct visited *visited, gimple stmt)
179184 +{
179185 + gimple_stmt_iterator gsi;
179186 + gimple next_stmt = NULL;
179187 +
179188 + gsi = gsi_for_stmt(stmt);
179189 +
179190 + do {
179191 + gsi_next(&gsi);
179192 + next_stmt = gsi_stmt(gsi);
179193 +
179194 + if (gimple_code(stmt) == GIMPLE_PHI && !pointer_set_contains(visited->my_stmts, next_stmt))
179195 + return NULL_TREE;
179196 +
179197 + if (pointer_set_contains(visited->my_stmts, next_stmt) && !pointer_set_contains(visited->skip_expr_casts, next_stmt))
179198 + break;
179199 +
179200 + gcc_assert(pointer_set_contains(visited->my_stmts, next_stmt));
179201 + } while (!gsi_end_p(gsi));
179202 +
179203 + gcc_assert(next_stmt);
179204 + return get_lhs(next_stmt);
179205 +}
179206 +
179207 +/* When the result of the negation is cast to a signed type then move
179208 + * the size_overflow cast check before negation.
179209 + * ssa:
179210 + * unsigned _588
179211 + * _588 = _587 >> 12;
179212 + * _589 = -_588;
179213 + * _590 = (long int) _589;
179214 + */
179215 +static bool handle_unsigned_neg_or_bit_not(struct visited *visited, interesting_stmts_t expand_from, const gassign *stmt)
179216 +{
179217 + gimple def_neg_stmt, neg_stmt;
179218 + tree lhs, new_neg_rhs;
179219 + const_tree rhs, neg_rhs;
179220 + enum tree_code rhs_code;
179221 +
179222 + rhs = gimple_assign_rhs1(stmt);
179223 + lhs = gimple_assign_lhs(stmt);
179224 + if (TYPE_UNSIGNED(TREE_TYPE(lhs)) || !TYPE_UNSIGNED(TREE_TYPE(rhs)))
179225 + return false;
179226 +
179227 + neg_stmt = get_def_stmt(rhs);
179228 + if (!neg_stmt || !is_gimple_assign(neg_stmt))
179229 + return false;
179230 +
179231 + rhs_code = gimple_assign_rhs_code(neg_stmt);
179232 + if (rhs_code != BIT_NOT_EXPR && rhs_code != NEGATE_EXPR)
179233 + return false;
179234 +
179235 + neg_rhs = gimple_assign_rhs1(neg_stmt);
179236 + def_neg_stmt = get_def_stmt(neg_rhs);
179237 + if (!def_neg_stmt)
179238 + return false;
179239 +
179240 + new_neg_rhs = get_my_stmt_lhs(visited, def_neg_stmt);
179241 + check_size_overflow(expand_from, neg_stmt, TREE_TYPE(new_neg_rhs), new_neg_rhs, lhs, BEFORE_STMT);
179242 + pointer_set_insert(visited->no_cast_check, stmt);
179243 + return true;
179244 +}
179245 +
179246 +static tree create_cast_overflow_check(struct visited *visited, interesting_stmts_t expand_from, tree new_rhs1, gassign *stmt)
179247 +{
179248 + bool cast_lhs, cast_rhs;
179249 + tree lhs = gimple_assign_lhs(stmt);
179250 + tree rhs = gimple_assign_rhs1(stmt);
179251 + const_tree lhs_type = TREE_TYPE(lhs);
179252 + const_tree rhs_type = TREE_TYPE(rhs);
179253 + enum machine_mode lhs_mode = TYPE_MODE(lhs_type);
179254 + enum machine_mode rhs_mode = TYPE_MODE(rhs_type);
179255 + unsigned int lhs_size = GET_MODE_BITSIZE(lhs_mode);
179256 + unsigned int rhs_size = GET_MODE_BITSIZE(rhs_mode);
179257 +
179258 + static bool check_lhs[3][4] = {
179259 + // ss su us uu
179260 + { false, true, true, false }, // lhs > rhs
179261 + { false, false, false, false }, // lhs = rhs
179262 + { true, true, true, true }, // lhs < rhs
179263 + };
179264 +
179265 + static bool check_rhs[3][4] = {
179266 + // ss su us uu
179267 + { true, false, true, true }, // lhs > rhs
179268 + { true, false, true, true }, // lhs = rhs
179269 + { true, false, true, true }, // lhs < rhs
179270 + };
179271 +
179272 + if (handle_unsigned_neg_or_bit_not(visited, expand_from, stmt))
179273 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
179274 +
179275 + // skip lhs check on HI -> QI cast
179276 + if (rhs_mode == HImode && lhs_mode == QImode) {
179277 + pointer_set_insert(visited->no_cast_check, stmt);
179278 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
179279 + }
179280 +
179281 + // skip lhs check on signed SI -> HI cast or signed SI -> QI cast
179282 + if (rhs_mode == SImode && !TYPE_UNSIGNED(rhs_type) && (lhs_mode == HImode || lhs_mode == QImode))
179283 + return create_assign(visited, stmt, lhs, AFTER_STMT);
179284 +
179285 + if (lhs_size > rhs_size) {
179286 + cast_lhs = check_lhs[0][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
179287 + cast_rhs = check_rhs[0][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
179288 + } else if (lhs_size == rhs_size) {
179289 + cast_lhs = check_lhs[1][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
179290 + cast_rhs = check_rhs[1][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
179291 + } else {
179292 + cast_lhs = check_lhs[2][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
179293 + cast_rhs = check_rhs[2][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
179294 + }
179295 +
179296 + if (!cast_lhs && !cast_rhs)
179297 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
179298 +
179299 + if (cast_lhs && !skip_lhs_cast_check(stmt))
179300 + check_size_overflow(expand_from, stmt, TREE_TYPE(new_rhs1), new_rhs1, lhs, BEFORE_STMT);
179301 +
179302 + if (cast_rhs)
179303 + check_size_overflow(expand_from, stmt, TREE_TYPE(new_rhs1), new_rhs1, rhs, BEFORE_STMT);
179304 +
179305 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
179306 +}
179307 +
179308 +static tree handle_unary_rhs(struct visited *visited, interesting_stmts_t expand_from, gassign *stmt)
179309 +{
179310 + enum tree_code rhs_code;
179311 + tree rhs1, new_rhs1, lhs = gimple_assign_lhs(stmt);
179312 +
179313 + if (pointer_set_contains(visited->my_stmts, stmt))
179314 + return lhs;
179315 +
179316 + rhs1 = gimple_assign_rhs1(stmt);
179317 + if (TREE_CODE(TREE_TYPE(rhs1)) == POINTER_TYPE)
179318 + return create_assign(visited, stmt, lhs, AFTER_STMT);
179319 +
179320 + new_rhs1 = expand(visited, expand_from, rhs1);
179321 +
179322 + if (new_rhs1 == NULL_TREE)
179323 + return create_cast_assign(visited, stmt);
179324 +
179325 + if (pointer_set_contains(visited->no_cast_check, stmt))
179326 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
179327 +
179328 + rhs_code = gimple_assign_rhs_code(stmt);
179329 + if (rhs_code == BIT_NOT_EXPR || rhs_code == NEGATE_EXPR) {
179330 + tree size_overflow_type = get_size_overflow_type(visited, stmt, rhs1);
179331 +
179332 + new_rhs1 = cast_to_new_size_overflow_type(visited, stmt, new_rhs1, size_overflow_type, BEFORE_STMT);
179333 + check_size_overflow(expand_from, stmt, size_overflow_type, new_rhs1, rhs1, BEFORE_STMT);
179334 + return create_assign(visited, stmt, lhs, AFTER_STMT);
179335 + }
179336 +
179337 + if (!gimple_assign_cast_p(stmt))
179338 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
179339 +
179340 + return create_cast_overflow_check(visited, expand_from, new_rhs1, stmt);
179341 +}
179342 +
179343 +static tree handle_unary_ops(struct visited *visited, interesting_stmts_t expand_from, gassign *stmt)
179344 +{
179345 + tree rhs1, lhs = gimple_assign_lhs(stmt);
179346 + gimple def_stmt = get_def_stmt(lhs);
179347 +
179348 + gcc_assert(gimple_code(def_stmt) != GIMPLE_NOP);
179349 + rhs1 = gimple_assign_rhs1(def_stmt);
179350 +
179351 + if (is_gimple_constant(rhs1))
179352 + return create_assign(visited, def_stmt, lhs, AFTER_STMT);
179353 +
179354 + switch (TREE_CODE(rhs1)) {
179355 + case SSA_NAME: {
179356 + tree ret = handle_unary_rhs(visited, expand_from, as_a_gassign(def_stmt));
179357 +
179358 + if (gimple_assign_cast_p(stmt))
179359 + unsigned_signed_cast_intentional_overflow(visited, stmt);
179360 + return ret;
179361 + }
179362 + case ARRAY_REF:
179363 + case BIT_FIELD_REF:
179364 + case ADDR_EXPR:
179365 + case COMPONENT_REF:
179366 + case INDIRECT_REF:
179367 +#if BUILDING_GCC_VERSION >= 4006
179368 + case MEM_REF:
179369 +#endif
179370 + case TARGET_MEM_REF:
179371 + case VIEW_CONVERT_EXPR:
179372 + return create_assign(visited, def_stmt, lhs, AFTER_STMT);
179373 + case PARM_DECL:
179374 + case VAR_DECL:
179375 + return create_assign(visited, stmt, lhs, AFTER_STMT);
179376 +
179377 + default:
179378 + debug_gimple_stmt(def_stmt);
179379 + debug_tree(rhs1);
179380 + gcc_unreachable();
179381 + }
179382 +}
179383 +
179384 +static void __unused print_the_code_insertions(const_gimple stmt)
179385 +{
179386 + location_t loc = gimple_location(stmt);
179387 +
179388 + inform(loc, "Integer size_overflow check applied here.");
179389 +}
179390 +
179391 +static bool is_from_cast(const_tree node)
179392 +{
179393 + gimple def_stmt = get_def_stmt(node);
179394 +
179395 + if (!def_stmt)
179396 + return false;
179397 +
179398 + if (gimple_assign_cast_p(def_stmt))
179399 + return true;
179400 +
179401 + return false;
179402 +}
179403 +
179404 +// Skip duplication when there is a minus expr and the type of rhs1 or rhs2 is a pointer_type.
179405 +static bool is_ptr_diff(gassign *stmt)
179406 +{
179407 + const_tree rhs1, rhs2, ptr1_rhs, ptr2_rhs;
179408 +
179409 + if (gimple_assign_rhs_code(stmt) != MINUS_EXPR)
179410 + return false;
179411 +
179412 + rhs1 = gimple_assign_rhs1(stmt);
179413 + if (!is_from_cast(rhs1))
179414 + return false;
179415 +
179416 + rhs2 = gimple_assign_rhs2(stmt);
179417 + if (!is_from_cast(rhs2))
179418 + return false;
179419 +
179420 + ptr1_rhs = gimple_assign_rhs1(get_def_stmt(rhs1));
179421 + ptr2_rhs = gimple_assign_rhs1(get_def_stmt(rhs2));
179422 +
179423 + if (TREE_CODE(TREE_TYPE(ptr1_rhs)) != POINTER_TYPE && TREE_CODE(TREE_TYPE(ptr2_rhs)) != POINTER_TYPE)
179424 + return false;
179425 +
179426 + return true;
179427 +}
179428 +
179429 +static tree handle_comparison_code_class(struct visited *visited, interesting_stmts_t expand_from, gassign *stmt, tree new_rhs1, tree new_rhs2)
179430 +{
179431 + tree rhs1, rhs2, lhs;
179432 +
179433 + rhs1 = gimple_assign_rhs1(stmt);
179434 + if (!is_gimple_constant(rhs1) && new_rhs1 != NULL_TREE)
179435 + check_size_overflow(expand_from, stmt, TREE_TYPE(new_rhs1), new_rhs1, rhs1, BEFORE_STMT);
179436 +
179437 + lhs = gimple_assign_lhs(stmt);
179438 + if (new_rhs2 == NULL_TREE)
179439 + return create_assign(visited, stmt, lhs, AFTER_STMT);
179440 +
179441 + rhs2 = gimple_assign_rhs2(stmt);
179442 + if (!is_gimple_constant(rhs2))
179443 + check_size_overflow(expand_from, stmt, TREE_TYPE(new_rhs2), new_rhs2, rhs2, BEFORE_STMT);
179444 + return create_assign(visited, stmt, lhs, AFTER_STMT);
179445 +}
179446 +
179447 +static tree handle_binary_ops(struct visited *visited, interesting_stmts_t expand_from, tree lhs)
179448 +{
179449 + enum intentional_overflow_type res;
179450 + tree rhs1, rhs2, new_lhs;
179451 + gassign *def_stmt = as_a_gassign(get_def_stmt(lhs));
179452 + tree new_rhs1 = NULL_TREE;
179453 + tree new_rhs2 = NULL_TREE;
179454 +
179455 + if (is_ptr_diff(def_stmt))
179456 + return create_assign(visited, def_stmt, lhs, AFTER_STMT);
179457 +
179458 + rhs1 = gimple_assign_rhs1(def_stmt);
179459 + rhs2 = gimple_assign_rhs2(def_stmt);
179460 +
179461 + /* no DImode/TImode division in the 32/64 bit kernel */
179462 + switch (gimple_assign_rhs_code(def_stmt)) {
179463 + case RDIV_EXPR:
179464 + case TRUNC_DIV_EXPR:
179465 + case CEIL_DIV_EXPR:
179466 + case FLOOR_DIV_EXPR:
179467 + case ROUND_DIV_EXPR:
179468 + case TRUNC_MOD_EXPR:
179469 + case CEIL_MOD_EXPR:
179470 + case FLOOR_MOD_EXPR:
179471 + case ROUND_MOD_EXPR:
179472 + case EXACT_DIV_EXPR:
179473 + case POINTER_PLUS_EXPR:
179474 + case BIT_AND_EXPR:
179475 + return create_assign(visited, def_stmt, lhs, AFTER_STMT);
179476 + default:
179477 + break;
179478 + }
179479 +
179480 + new_lhs = handle_integer_truncation(visited, expand_from, lhs);
179481 + if (new_lhs != NULL_TREE)
179482 + return new_lhs;
179483 +
179484 + if (TREE_CODE(rhs1) == SSA_NAME)
179485 + new_rhs1 = expand(visited, expand_from, rhs1);
179486 + if (TREE_CODE(rhs2) == SSA_NAME)
179487 + new_rhs2 = expand(visited, expand_from, rhs2);
179488 +
179489 + res = add_mul_intentional_overflow(def_stmt);
179490 + if (res != NO_INTENTIONAL_OVERFLOW) {
179491 + new_lhs = dup_assign(visited, def_stmt, lhs, new_rhs1, new_rhs2, NULL_TREE);
179492 + insert_cast_expr(visited, as_a_gassign(get_def_stmt(new_lhs)), res);
179493 + return new_lhs;
179494 + }
179495 +
179496 + if (skip_expr_on_double_type(def_stmt)) {
179497 + new_lhs = dup_assign(visited, def_stmt, lhs, new_rhs1, new_rhs2, NULL_TREE);
179498 + insert_cast_expr(visited, as_a_gassign(get_def_stmt(new_lhs)), NO_INTENTIONAL_OVERFLOW);
179499 + return new_lhs;
179500 + }
179501 +
179502 + if (is_a_neg_overflow(def_stmt, rhs2))
179503 + return handle_intentional_overflow(visited, expand_from, true, def_stmt, new_rhs1, NULL_TREE);
179504 + if (is_a_neg_overflow(def_stmt, rhs1))
179505 + return handle_intentional_overflow(visited, expand_from, true, def_stmt, new_rhs2, new_rhs2);
179506 +
179507 +
179508 + if (is_a_constant_overflow(def_stmt, rhs2))
179509 + return handle_intentional_overflow(visited, expand_from, !is_a_cast_and_const_overflow(rhs1), def_stmt, new_rhs1, NULL_TREE);
179510 + if (is_a_constant_overflow(def_stmt, rhs1))
179511 + return handle_intentional_overflow(visited, expand_from, !is_a_cast_and_const_overflow(rhs2), def_stmt, new_rhs2, new_rhs2);
179512 +
179513 + // the const is between 0 and (signed) MAX
179514 + if (is_gimple_constant(rhs1))
179515 + new_rhs1 = create_assign(visited, def_stmt, rhs1, BEFORE_STMT);
179516 + if (is_gimple_constant(rhs2))
179517 + new_rhs2 = create_assign(visited, def_stmt, rhs2, BEFORE_STMT);
179518 +
179519 + if (TREE_CODE_CLASS(gimple_assign_rhs_code(def_stmt)) == tcc_comparison)
179520 + return handle_comparison_code_class(visited, expand_from, def_stmt, new_rhs1, new_rhs2);
179521 +
179522 + if (uconst_neg_intentional_overflow(def_stmt)) {
179523 + inform(gimple_location(def_stmt), "%s: gcc intentional overflow", __func__);
179524 + gcc_unreachable();
179525 + }
179526 +
179527 + return dup_assign(visited, def_stmt, lhs, new_rhs1, new_rhs2, NULL_TREE);
179528 +}
179529 +
179530 +#if BUILDING_GCC_VERSION >= 4006
179531 +static tree get_new_rhs(struct visited *visited, interesting_stmts_t expand_from, tree size_overflow_type, tree rhs)
179532 +{
179533 + if (is_gimple_constant(rhs))
179534 + return cast_a_tree(size_overflow_type, rhs);
179535 + if (TREE_CODE(rhs) != SSA_NAME)
179536 + return NULL_TREE;
179537 + return expand(visited, expand_from, rhs);
179538 +}
179539 +
179540 +static tree handle_ternary_ops(struct visited *visited, interesting_stmts_t expand_from, tree lhs)
179541 +{
179542 + tree rhs1, rhs2, rhs3, new_rhs1, new_rhs2, new_rhs3, size_overflow_type;
179543 + gassign *def_stmt = as_a_gassign(get_def_stmt(lhs));
179544 +
179545 + size_overflow_type = get_size_overflow_type(visited, def_stmt, lhs);
179546 +
179547 + rhs1 = gimple_assign_rhs1(def_stmt);
179548 + rhs2 = gimple_assign_rhs2(def_stmt);
179549 + rhs3 = gimple_assign_rhs3(def_stmt);
179550 + new_rhs1 = get_new_rhs(visited, expand_from, size_overflow_type, rhs1);
179551 + new_rhs2 = get_new_rhs(visited, expand_from, size_overflow_type, rhs2);
179552 + new_rhs3 = get_new_rhs(visited, expand_from, size_overflow_type, rhs3);
179553 +
179554 + return dup_assign(visited, def_stmt, lhs, new_rhs1, new_rhs2, new_rhs3);
179555 +}
179556 +#endif
179557 +
179558 +static tree expand_visited(struct visited *visited, gimple def_stmt)
179559 +{
179560 + gimple_stmt_iterator gsi;
179561 + enum gimple_code code = gimple_code(def_stmt);
179562 +
179563 + if (code == GIMPLE_ASM)
179564 + return NULL_TREE;
179565 +
179566 + gsi = gsi_for_stmt(def_stmt);
179567 + gsi_next(&gsi);
179568 +
179569 + if (gimple_code(def_stmt) == GIMPLE_PHI && gsi_end_p(gsi))
179570 + return NULL_TREE;
179571 + return get_my_stmt_lhs(visited, def_stmt);
179572 +}
179573 +
179574 +tree expand(struct visited *visited, interesting_stmts_t expand_from, tree lhs)
179575 +{
179576 + gimple def_stmt;
179577 +
179578 + def_stmt = get_def_stmt(lhs);
179579 +
179580 + if (!def_stmt || gimple_code(def_stmt) == GIMPLE_NOP)
179581 + return NULL_TREE;
179582 +
179583 + if (pointer_set_contains(visited->my_stmts, def_stmt))
179584 + return lhs;
179585 +
179586 + if (pointer_set_contains(visited->stmts, def_stmt))
179587 + return expand_visited(visited, def_stmt);
179588 +
179589 + if (is_gimple_constant(lhs))
179590 + return NULL_TREE;
179591 + if (skip_types(lhs))
179592 + return NULL_TREE;
179593 +
179594 + switch (gimple_code(def_stmt)) {
179595 + case GIMPLE_PHI:
179596 + return handle_phi(visited, expand_from, lhs);
179597 + case GIMPLE_CALL:
179598 + case GIMPLE_ASM:
179599 + if (is_size_overflow_asm(def_stmt))
179600 + return expand(visited, expand_from, get_size_overflow_asm_input(as_a_gasm(def_stmt)));
179601 + return create_assign(visited, def_stmt, lhs, AFTER_STMT);
179602 + case GIMPLE_ASSIGN:
179603 + switch (gimple_num_ops(def_stmt)) {
179604 + case 2:
179605 + return handle_unary_ops(visited, expand_from, as_a_gassign(def_stmt));
179606 + case 3:
179607 + return handle_binary_ops(visited, expand_from, lhs);
179608 +#if BUILDING_GCC_VERSION >= 4006
179609 + case 4:
179610 + return handle_ternary_ops(visited, expand_from, lhs);
179611 +#endif
179612 + }
179613 + default:
179614 + debug_gimple_stmt(def_stmt);
179615 + error("%s: unknown gimple code", __func__);
179616 + gcc_unreachable();
179617 + }
179618 +}
179619 diff --git a/tools/gcc/stackleak_plugin.c b/tools/gcc/stackleak_plugin.c
179620 new file mode 100644
179621 index 0000000..8b69bd4
179622 --- /dev/null
179623 +++ b/tools/gcc/stackleak_plugin.c
179624 @@ -0,0 +1,350 @@
179625 +/*
179626 + * Copyright 2011-2016 by the PaX Team <pageexec@freemail.hu>
179627 + * Licensed under the GPL v2
179628 + *
179629 + * Note: the choice of the license means that the compilation process is
179630 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
179631 + * but for the kernel it doesn't matter since it doesn't link against
179632 + * any of the gcc libraries
179633 + *
179634 + * gcc plugin to help implement various PaX features
179635 + *
179636 + * - track lowest stack pointer
179637 + *
179638 + * TODO:
179639 + * - initialize all local variables
179640 + *
179641 + * BUGS:
179642 + * - none known
179643 + */
179644 +
179645 +#include "gcc-common.h"
179646 +
179647 +int plugin_is_GPL_compatible;
179648 +
179649 +static int track_frame_size = -1;
179650 +static const char track_function[] = "pax_track_stack";
179651 +static const char check_function[] = "pax_check_alloca";
179652 +static GTY(()) tree track_function_decl;
179653 +static GTY(()) tree check_function_decl;
179654 +static bool init_locals;
179655 +
179656 +static struct plugin_info stackleak_plugin_info = {
179657 + .version = "201602181345",
179658 + .help = "track-lowest-sp=nn\ttrack sp in functions whose frame size is at least nn bytes\n"
179659 +// "initialize-locals\t\tforcibly initialize all stack frames\n"
179660 +};
179661 +
179662 +static void stackleak_check_alloca(gimple_stmt_iterator *gsi)
179663 +{
179664 + gimple stmt;
179665 + gcall *check_alloca;
179666 + tree alloca_size;
179667 + cgraph_node_ptr node;
179668 + int frequency;
179669 + basic_block bb;
179670 +
179671 + // insert call to void pax_check_alloca(unsigned long size)
179672 + alloca_size = gimple_call_arg(gsi_stmt(*gsi), 0);
179673 + stmt = gimple_build_call(check_function_decl, 1, alloca_size);
179674 + check_alloca = as_a_gcall(stmt);
179675 + gsi_insert_before(gsi, check_alloca, GSI_SAME_STMT);
179676 +
179677 + // update the cgraph
179678 + bb = gimple_bb(check_alloca);
179679 + node = cgraph_get_create_node(check_function_decl);
179680 + gcc_assert(node);
179681 + frequency = compute_call_stmt_bb_frequency(current_function_decl, bb);
179682 + cgraph_create_edge(cgraph_get_node(current_function_decl), node, check_alloca, bb->count, frequency, bb->loop_depth);
179683 +}
179684 +
179685 +static void stackleak_add_instrumentation(gimple_stmt_iterator *gsi, bool after)
179686 +{
179687 + gimple stmt;
179688 + gcall *track_stack;
179689 + cgraph_node_ptr node;
179690 + int frequency;
179691 + basic_block bb;
179692 +
179693 + // insert call to void pax_track_stack(void)
179694 + stmt = gimple_build_call(track_function_decl, 0);
179695 + track_stack = as_a_gcall(stmt);
179696 + if (after)
179697 + gsi_insert_after(gsi, track_stack, GSI_CONTINUE_LINKING);
179698 + else
179699 + gsi_insert_before(gsi, track_stack, GSI_SAME_STMT);
179700 +
179701 + // update the cgraph
179702 + bb = gimple_bb(track_stack);
179703 + node = cgraph_get_create_node(track_function_decl);
179704 + gcc_assert(node);
179705 + frequency = compute_call_stmt_bb_frequency(current_function_decl, bb);
179706 + cgraph_create_edge(cgraph_get_node(current_function_decl), node, track_stack, bb->count, frequency, bb->loop_depth);
179707 +}
179708 +
179709 +static bool is_alloca(gimple stmt)
179710 +{
179711 + if (gimple_call_builtin_p(stmt, BUILT_IN_ALLOCA))
179712 + return true;
179713 +
179714 +#if BUILDING_GCC_VERSION >= 4007
179715 + if (gimple_call_builtin_p(stmt, BUILT_IN_ALLOCA_WITH_ALIGN))
179716 + return true;
179717 +#endif
179718 +
179719 + return false;
179720 +}
179721 +
179722 +static unsigned int stackleak_tree_instrument_execute(void)
179723 +{
179724 + basic_block bb, entry_bb;
179725 + bool prologue_instrumented = false, is_leaf = true;
179726 +
179727 + entry_bb = ENTRY_BLOCK_PTR_FOR_FN(cfun)->next_bb;
179728 +
179729 + // 1. loop through BBs and GIMPLE statements
179730 + FOR_EACH_BB_FN(bb, cfun) {
179731 + gimple_stmt_iterator gsi;
179732 +
179733 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
179734 + gimple stmt;
179735 +
179736 + stmt = gsi_stmt(gsi);
179737 +
179738 + if (is_gimple_call(stmt))
179739 + is_leaf = false;
179740 +
179741 + // gimple match: align 8 built-in BUILT_IN_NORMAL:BUILT_IN_ALLOCA attributes <tree_list 0xb7576450>
179742 + if (!is_alloca(stmt))
179743 + continue;
179744 +
179745 + // 2. insert stack overflow check before each __builtin_alloca call
179746 + stackleak_check_alloca(&gsi);
179747 +
179748 + // 3. insert track call after each __builtin_alloca call
179749 + stackleak_add_instrumentation(&gsi, true);
179750 + if (bb == entry_bb)
179751 + prologue_instrumented = true;
179752 + }
179753 + }
179754 +
179755 + // special cases for some bad linux code: taking the address of static inline functions will materialize them
179756 + // but we mustn't instrument some of them as the resulting stack alignment required by the function call ABI
179757 + // will break other assumptions regarding the expected (but not otherwise enforced) register clobbering ABI.
179758 + // case in point: native_save_fl on amd64 when optimized for size clobbers rdx if it were instrumented here.
179759 + if (is_leaf && !TREE_PUBLIC(current_function_decl) && DECL_DECLARED_INLINE_P(current_function_decl))
179760 + return 0;
179761 + if (is_leaf && !strncmp(IDENTIFIER_POINTER(DECL_NAME(current_function_decl)), "_paravirt_", 10))
179762 + return 0;
179763 +
179764 + // 4. insert track call at the beginning
179765 + if (!prologue_instrumented) {
179766 + gimple_stmt_iterator gsi;
179767 +
179768 + gcc_assert(single_succ_p(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
179769 + bb = single_succ(ENTRY_BLOCK_PTR_FOR_FN(cfun));
179770 + if (!single_pred_p(bb)) {
179771 +// gcc_assert(bb_loop_depth(bb) || (bb->flags & BB_IRREDUCIBLE_LOOP));
179772 + split_edge(single_succ_edge(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
179773 + gcc_assert(single_succ_p(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
179774 + bb = single_succ(ENTRY_BLOCK_PTR_FOR_FN(cfun));
179775 + }
179776 + gsi = gsi_after_labels(bb);
179777 + stackleak_add_instrumentation(&gsi, false);
179778 + }
179779 +
179780 + return 0;
179781 +}
179782 +
179783 +static unsigned int stackleak_final_execute(void)
179784 +{
179785 + rtx_insn *insn, *next;
179786 +
179787 + if (cfun->calls_alloca)
179788 + return 0;
179789 +
179790 + // keep calls only if function frame is big enough
179791 + if (get_frame_size() >= track_frame_size)
179792 + return 0;
179793 +
179794 + // 1. find pax_track_stack calls
179795 + for (insn = get_insns(); insn; insn = next) {
179796 + // 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))
179797 + rtx body;
179798 +
179799 + next = NEXT_INSN(insn);
179800 + if (!CALL_P(insn))
179801 + continue;
179802 + body = PATTERN(insn);
179803 + if (GET_CODE(body) != CALL)
179804 + continue;
179805 + body = XEXP(body, 0);
179806 + if (GET_CODE(body) != MEM)
179807 + continue;
179808 + body = XEXP(body, 0);
179809 + if (GET_CODE(body) != SYMBOL_REF)
179810 + continue;
179811 +// if (strcmp(XSTR(body, 0), track_function))
179812 + if (SYMBOL_REF_DECL(body) != track_function_decl)
179813 + continue;
179814 +// warning(0, "track_frame_size: %d %ld %d", cfun->calls_alloca, get_frame_size(), track_frame_size);
179815 + // 2. delete call
179816 + delete_insn_and_edges(insn);
179817 +#if BUILDING_GCC_VERSION >= 4007
179818 + if (GET_CODE(next) == NOTE && NOTE_KIND(next) == NOTE_INSN_CALL_ARG_LOCATION) {
179819 + insn = next;
179820 + next = NEXT_INSN(insn);
179821 + delete_insn_and_edges(insn);
179822 + }
179823 +#endif
179824 + }
179825 +
179826 +// print_simple_rtl(stderr, get_insns());
179827 +// print_rtl(stderr, get_insns());
179828 +// warning(0, "track_frame_size: %d %ld %d", cfun->calls_alloca, get_frame_size(), track_frame_size);
179829 +
179830 + return 0;
179831 +}
179832 +
179833 +static bool stackleak_track_stack_gate(void)
179834 +{
179835 + tree section;
179836 +
179837 + if (ix86_cmodel != CM_KERNEL)
179838 + return false;
179839 +
179840 + section = lookup_attribute("section", DECL_ATTRIBUTES(current_function_decl));
179841 + if (section && TREE_VALUE(section)) {
179842 + section = TREE_VALUE(TREE_VALUE(section));
179843 +
179844 + if (!strncmp(TREE_STRING_POINTER(section), ".init.text", 10))
179845 + return false;
179846 + if (!strncmp(TREE_STRING_POINTER(section), ".devinit.text", 13))
179847 + return false;
179848 + if (!strncmp(TREE_STRING_POINTER(section), ".cpuinit.text", 13))
179849 + return false;
179850 + if (!strncmp(TREE_STRING_POINTER(section), ".meminit.text", 13))
179851 + return false;
179852 + }
179853 +
179854 + return track_frame_size >= 0;
179855 +}
179856 +
179857 +static void stackleak_start_unit(void *gcc_data, void *user_data)
179858 +{
179859 + tree fntype;
179860 +
179861 + // void pax_track_stack(void)
179862 + fntype = build_function_type_list(void_type_node, NULL_TREE);
179863 + track_function_decl = build_fn_decl(track_function, fntype);
179864 + DECL_ASSEMBLER_NAME(track_function_decl); // for LTO
179865 + TREE_PUBLIC(track_function_decl) = 1;
179866 + TREE_USED(track_function_decl) = 1;
179867 + DECL_EXTERNAL(track_function_decl) = 1;
179868 + DECL_ARTIFICIAL(track_function_decl) = 1;
179869 + DECL_PRESERVE_P(track_function_decl) = 1;
179870 +
179871 + // void pax_check_alloca(unsigned long)
179872 + fntype = build_function_type_list(void_type_node, long_unsigned_type_node, NULL_TREE);
179873 + check_function_decl = build_fn_decl(check_function, fntype);
179874 + DECL_ASSEMBLER_NAME(check_function_decl); // for LTO
179875 + TREE_PUBLIC(check_function_decl) = 1;
179876 + TREE_USED(check_function_decl) = 1;
179877 + DECL_EXTERNAL(check_function_decl) = 1;
179878 + DECL_ARTIFICIAL(check_function_decl) = 1;
179879 + DECL_PRESERVE_P(check_function_decl) = 1;
179880 +}
179881 +
179882 +static bool stackleak_tree_instrument_gate(void)
179883 +{
179884 + return stackleak_track_stack_gate();
179885 +}
179886 +
179887 +#define PASS_NAME stackleak_tree_instrument
179888 +#define PROPERTIES_REQUIRED PROP_gimple_leh | PROP_cfg
179889 +#define TODO_FLAGS_START TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts
179890 +#define TODO_FLAGS_FINISH TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_update_ssa | TODO_rebuild_cgraph_edges
179891 +#include "gcc-generate-gimple-pass.h"
179892 +
179893 +static bool stackleak_final_gate(void)
179894 +{
179895 + return stackleak_track_stack_gate();
179896 +}
179897 +
179898 +#define PASS_NAME stackleak_final
179899 +#define TODO_FLAGS_FINISH TODO_dump_func
179900 +#include "gcc-generate-rtl-pass.h"
179901 +
179902 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
179903 +{
179904 + const char * const plugin_name = plugin_info->base_name;
179905 + const int argc = plugin_info->argc;
179906 + const struct plugin_argument * const argv = plugin_info->argv;
179907 + int i;
179908 + struct register_pass_info stackleak_tree_instrument_pass_info;
179909 + struct register_pass_info stackleak_final_pass_info;
179910 + static const struct ggc_root_tab gt_ggc_r_gt_stackleak[] = {
179911 + {
179912 + .base = &track_function_decl,
179913 + .nelt = 1,
179914 + .stride = sizeof(track_function_decl),
179915 + .cb = &gt_ggc_mx_tree_node,
179916 + .pchw = &gt_pch_nx_tree_node
179917 + },
179918 + {
179919 + .base = &check_function_decl,
179920 + .nelt = 1,
179921 + .stride = sizeof(check_function_decl),
179922 + .cb = &gt_ggc_mx_tree_node,
179923 + .pchw = &gt_pch_nx_tree_node
179924 + },
179925 + LAST_GGC_ROOT_TAB
179926 + };
179927 +
179928 + stackleak_tree_instrument_pass_info.pass = make_stackleak_tree_instrument_pass();
179929 +// stackleak_tree_instrument_pass_info.reference_pass_name = "tree_profile";
179930 + stackleak_tree_instrument_pass_info.reference_pass_name = "optimized";
179931 + stackleak_tree_instrument_pass_info.ref_pass_instance_number = 1;
179932 + stackleak_tree_instrument_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
179933 +
179934 + stackleak_final_pass_info.pass = make_stackleak_final_pass();
179935 + stackleak_final_pass_info.reference_pass_name = "final";
179936 + stackleak_final_pass_info.ref_pass_instance_number = 1;
179937 + stackleak_final_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
179938 +
179939 + if (!plugin_default_version_check(version, &gcc_version)) {
179940 + error(G_("incompatible gcc/plugin versions"));
179941 + return 1;
179942 + }
179943 +
179944 + register_callback(plugin_name, PLUGIN_INFO, NULL, &stackleak_plugin_info);
179945 +
179946 + for (i = 0; i < argc; ++i) {
179947 + if (!strcmp(argv[i].key, "track-lowest-sp")) {
179948 + if (!argv[i].value) {
179949 + error(G_("no value supplied for option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
179950 + continue;
179951 + }
179952 + track_frame_size = atoi(argv[i].value);
179953 + if (argv[i].value[0] < '0' || argv[i].value[0] > '9' || track_frame_size < 0)
179954 + error(G_("invalid option argument '-fplugin-arg-%s-%s=%s'"), plugin_name, argv[i].key, argv[i].value);
179955 + continue;
179956 + }
179957 + if (!strcmp(argv[i].key, "initialize-locals")) {
179958 + if (argv[i].value) {
179959 + error(G_("invalid option argument '-fplugin-arg-%s-%s=%s'"), plugin_name, argv[i].key, argv[i].value);
179960 + continue;
179961 + }
179962 + init_locals = true;
179963 + continue;
179964 + }
179965 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
179966 + }
179967 +
179968 + register_callback(plugin_name, PLUGIN_START_UNIT, &stackleak_start_unit, NULL);
179969 + register_callback(plugin_name, PLUGIN_REGISTER_GGC_ROOTS, NULL, (void *)&gt_ggc_r_gt_stackleak);
179970 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &stackleak_tree_instrument_pass_info);
179971 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &stackleak_final_pass_info);
179972 +
179973 + return 0;
179974 +}
179975 diff --git a/tools/gcc/structleak_plugin.c b/tools/gcc/structleak_plugin.c
179976 new file mode 100644
179977 index 0000000..d7596e6
179978 --- /dev/null
179979 +++ b/tools/gcc/structleak_plugin.c
179980 @@ -0,0 +1,239 @@
179981 +/*
179982 + * Copyright 2013-2016 by PaX Team <pageexec@freemail.hu>
179983 + * Licensed under the GPL v2
179984 + *
179985 + * Note: the choice of the license means that the compilation process is
179986 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
179987 + * but for the kernel it doesn't matter since it doesn't link against
179988 + * any of the gcc libraries
179989 + *
179990 + * gcc plugin to forcibly initialize certain local variables that could
179991 + * otherwise leak kernel stack to userland if they aren't properly initialized
179992 + * by later code
179993 + *
179994 + * Homepage: http://pax.grsecurity.net/
179995 + *
179996 + * Usage:
179997 + * $ # for 4.5/4.6/C based 4.7
179998 + * $ 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
179999 + * $ # for C++ based 4.7/4.8+
180000 + * $ 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
180001 + * $ gcc -fplugin=./structleak_plugin.so test.c -O2
180002 + *
180003 + * TODO: eliminate redundant initializers
180004 + * increase type coverage
180005 + */
180006 +
180007 +#include "gcc-common.h"
180008 +
180009 +// unused C type flag in all versions 4.5-6
180010 +#define TYPE_USERSPACE(TYPE) TYPE_LANG_FLAG_5(TYPE)
180011 +
180012 +int plugin_is_GPL_compatible;
180013 +
180014 +static struct plugin_info structleak_plugin_info = {
180015 + .version = "201602181345",
180016 + .help = "disable\tdo not activate plugin\n",
180017 +};
180018 +
180019 +static tree handle_user_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
180020 +{
180021 + *no_add_attrs = true;
180022 +
180023 + // check for types? for now accept everything linux has to offer
180024 + if (TREE_CODE(*node) != FIELD_DECL)
180025 + return NULL_TREE;
180026 +
180027 + *no_add_attrs = false;
180028 + return NULL_TREE;
180029 +}
180030 +
180031 +static struct attribute_spec user_attr = {
180032 + .name = "user",
180033 + .min_length = 0,
180034 + .max_length = 0,
180035 + .decl_required = false,
180036 + .type_required = false,
180037 + .function_type_required = false,
180038 + .handler = handle_user_attribute,
180039 +#if BUILDING_GCC_VERSION >= 4007
180040 + .affects_type_identity = true
180041 +#endif
180042 +};
180043 +
180044 +static void register_attributes(void *event_data, void *data)
180045 +{
180046 + register_attribute(&user_attr);
180047 +// register_attribute(&force_attr);
180048 +}
180049 +
180050 +static tree get_field_type(tree field)
180051 +{
180052 + return strip_array_types(TREE_TYPE(field));
180053 +}
180054 +
180055 +static bool is_userspace_type(tree type)
180056 +{
180057 + tree field;
180058 +
180059 + for (field = TYPE_FIELDS(type); field; field = TREE_CHAIN(field)) {
180060 + tree fieldtype = get_field_type(field);
180061 + enum tree_code code = TREE_CODE(fieldtype);
180062 +
180063 + if (code == RECORD_TYPE || code == UNION_TYPE)
180064 + if (is_userspace_type(fieldtype))
180065 + return true;
180066 +
180067 + if (lookup_attribute("user", DECL_ATTRIBUTES(field)))
180068 + return true;
180069 + }
180070 + return false;
180071 +}
180072 +
180073 +static void finish_type(void *event_data, void *data)
180074 +{
180075 + tree type = (tree)event_data;
180076 +
180077 + if (type == NULL_TREE || type == error_mark_node)
180078 + return;
180079 +
180080 +#if BUILDING_GCC_VERSION >= 5000
180081 + if (TREE_CODE(type) == ENUMERAL_TYPE)
180082 + return;
180083 +#endif
180084 +
180085 + if (TYPE_USERSPACE(type))
180086 + return;
180087 +
180088 + if (is_userspace_type(type))
180089 + TYPE_USERSPACE(type) = 1;
180090 +}
180091 +
180092 +static void initialize(tree var)
180093 +{
180094 + basic_block bb;
180095 + gimple_stmt_iterator gsi;
180096 + tree initializer;
180097 + gimple init_stmt;
180098 +
180099 + // this is the original entry bb before the forced split
180100 + bb = single_succ(ENTRY_BLOCK_PTR_FOR_FN(cfun));
180101 +
180102 + // first check if the variable is already initialized, warn otherwise
180103 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
180104 + gimple stmt = gsi_stmt(gsi);
180105 + tree rhs1;
180106 +
180107 + // we're looking for an assignment of a single rhs...
180108 + if (!gimple_assign_single_p(stmt))
180109 + continue;
180110 + rhs1 = gimple_assign_rhs1(stmt);
180111 +#if BUILDING_GCC_VERSION >= 4007
180112 + // ... of a non-clobbering expression...
180113 + if (TREE_CLOBBER_P(rhs1))
180114 + continue;
180115 +#endif
180116 + // ... to our variable...
180117 + if (gimple_get_lhs(stmt) != var)
180118 + continue;
180119 + // if it's an initializer then we're good
180120 + if (TREE_CODE(rhs1) == CONSTRUCTOR)
180121 + return;
180122 + }
180123 +
180124 + // these aren't the 0days you're looking for
180125 +// inform(DECL_SOURCE_LOCATION(var), "userspace variable will be forcibly initialized");
180126 +
180127 + // build the initializer expression
180128 + initializer = build_constructor(TREE_TYPE(var), NULL);
180129 +
180130 + // build the initializer stmt
180131 + init_stmt = gimple_build_assign(var, initializer);
180132 + gsi = gsi_after_labels(single_succ(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
180133 + gsi_insert_before(&gsi, init_stmt, GSI_NEW_STMT);
180134 + update_stmt(init_stmt);
180135 +}
180136 +
180137 +static unsigned int structleak_execute(void)
180138 +{
180139 + basic_block bb;
180140 + unsigned int ret = 0;
180141 + tree var;
180142 + unsigned int i;
180143 +
180144 + // split the first bb where we can put the forced initializers
180145 + gcc_assert(single_succ_p(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
180146 + bb = single_succ(ENTRY_BLOCK_PTR_FOR_FN(cfun));
180147 + if (!single_pred_p(bb)) {
180148 +// gcc_assert(bb_loop_depth(bb) || (bb->flags & BB_IRREDUCIBLE_LOOP));
180149 + split_edge(single_succ_edge(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
180150 + gcc_assert(single_succ_p(ENTRY_BLOCK_PTR_FOR_FN(cfun)));
180151 + }
180152 +
180153 + // enumarate all local variables and forcibly initialize our targets
180154 + FOR_EACH_LOCAL_DECL(cfun, i, var) {
180155 + tree type = TREE_TYPE(var);
180156 +
180157 + gcc_assert(DECL_P(var));
180158 + if (!auto_var_in_fn_p(var, current_function_decl))
180159 + continue;
180160 +
180161 + // only care about structure types
180162 + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE)
180163 + continue;
180164 +
180165 + // if the type is of interest, examine the variable
180166 + if (TYPE_USERSPACE(type))
180167 + initialize(var);
180168 + }
180169 +
180170 + return ret;
180171 +}
180172 +
180173 +#define PASS_NAME structleak
180174 +#define NO_GATE
180175 +#define PROPERTIES_REQUIRED PROP_cfg
180176 +#define TODO_FLAGS_FINISH TODO_verify_il | TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa | TODO_ggc_collect | TODO_verify_flow
180177 +#include "gcc-generate-gimple-pass.h"
180178 +
180179 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
180180 +{
180181 + int i;
180182 + const char * const plugin_name = plugin_info->base_name;
180183 + const int argc = plugin_info->argc;
180184 + const struct plugin_argument * const argv = plugin_info->argv;
180185 + bool enable = true;
180186 + struct register_pass_info structleak_pass_info;
180187 +
180188 + structleak_pass_info.pass = make_structleak_pass();
180189 + structleak_pass_info.reference_pass_name = "ssa";
180190 + structleak_pass_info.ref_pass_instance_number = 1;
180191 + structleak_pass_info.pos_op = PASS_POS_INSERT_AFTER;
180192 +
180193 + if (!plugin_default_version_check(version, &gcc_version)) {
180194 + error(G_("incompatible gcc/plugin versions"));
180195 + return 1;
180196 + }
180197 +
180198 + if (strncmp(lang_hooks.name, "GNU C", 5) && !strncmp(lang_hooks.name, "GNU C+", 6)) {
180199 + inform(UNKNOWN_LOCATION, G_("%s supports C only, not %s"), plugin_name, lang_hooks.name);
180200 + enable = false;
180201 + }
180202 +
180203 + for (i = 0; i < argc; ++i) {
180204 + if (!strcmp(argv[i].key, "disable")) {
180205 + enable = false;
180206 + continue;
180207 + }
180208 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
180209 + }
180210 +
180211 + register_callback(plugin_name, PLUGIN_INFO, NULL, &structleak_plugin_info);
180212 + if (enable) {
180213 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &structleak_pass_info);
180214 + register_callback(plugin_name, PLUGIN_FINISH_TYPE, finish_type, NULL);
180215 + }
180216 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
180217 +
180218 + return 0;
180219 +}
180220 diff --git a/tools/include/linux/compiler.h b/tools/include/linux/compiler.h
180221 index fa7208a..d568e71 100644
180222 --- a/tools/include/linux/compiler.h
180223 +++ b/tools/include/linux/compiler.h
180224 @@ -39,6 +39,14 @@
180225 # define unlikely(x) __builtin_expect(!!(x), 0)
180226 #endif
180227
180228 +#ifndef __size_overflow
180229 +# define __size_overflow(...)
180230 +#endif
180231 +
180232 +#ifndef __intentional_overflow
180233 +# define __intentional_overflow(...)
180234 +#endif
180235 +
180236 #define ACCESS_ONCE(x) (*(volatile typeof(x) *)&(x))
180237
180238 #include <linux/types.h>
180239 diff --git a/tools/perf/util/include/asm/alternative-asm.h b/tools/perf/util/include/asm/alternative-asm.h
180240 index 3a3a0f1..6cf679d 100644
180241 --- a/tools/perf/util/include/asm/alternative-asm.h
180242 +++ b/tools/perf/util/include/asm/alternative-asm.h
180243 @@ -6,4 +6,7 @@
180244 #define altinstruction_entry #
180245 #define ALTERNATIVE_2 #
180246
180247 + .macro pax_force_retaddr rip=0, reload=0
180248 + .endm
180249 +
180250 #endif
180251 diff --git a/tools/virtio/linux/uaccess.h b/tools/virtio/linux/uaccess.h
180252 index 0a578fe..b81f62d 100644
180253 --- a/tools/virtio/linux/uaccess.h
180254 +++ b/tools/virtio/linux/uaccess.h
180255 @@ -13,7 +13,7 @@ static inline void __chk_user_ptr(const volatile void *p, size_t size)
180256 ({ \
180257 typeof(ptr) __pu_ptr = (ptr); \
180258 __chk_user_ptr(__pu_ptr, sizeof(*__pu_ptr)); \
180259 - ACCESS_ONCE(*(__pu_ptr)) = x; \
180260 + ACCESS_ONCE_RW(*(__pu_ptr)) = x; \
180261 0; \
180262 })
180263
180264 diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
180265 index 484079e..70365d0 100644
180266 --- a/virt/kvm/kvm_main.c
180267 +++ b/virt/kvm/kvm_main.c
180268 @@ -90,12 +90,17 @@ LIST_HEAD(vm_list);
180269
180270 static cpumask_var_t cpus_hardware_enabled;
180271 static int kvm_usage_count;
180272 -static atomic_t hardware_enable_failed;
180273 +static atomic_unchecked_t hardware_enable_failed;
180274
180275 struct kmem_cache *kvm_vcpu_cache;
180276 EXPORT_SYMBOL_GPL(kvm_vcpu_cache);
180277
180278 -static __read_mostly struct preempt_ops kvm_preempt_ops;
180279 +static void kvm_sched_in(struct preempt_notifier *pn, int cpu);
180280 +static void kvm_sched_out(struct preempt_notifier *pn, struct task_struct *next);
180281 +static struct preempt_ops kvm_preempt_ops = {
180282 + .sched_in = kvm_sched_in,
180283 + .sched_out = kvm_sched_out,
180284 +};
180285
180286 struct dentry *kvm_debugfs_dir;
180287 EXPORT_SYMBOL_GPL(kvm_debugfs_dir);
180288 @@ -842,7 +847,7 @@ int __kvm_set_memory_region(struct kvm *kvm,
180289 /* We can read the guest memory with __xxx_user() later on. */
180290 if ((id < KVM_USER_MEM_SLOTS) &&
180291 ((mem->userspace_addr & (PAGE_SIZE - 1)) ||
180292 - !access_ok(VERIFY_WRITE,
180293 + !access_ok_noprefault(VERIFY_WRITE,
180294 (void __user *)(unsigned long)mem->userspace_addr,
180295 mem->memory_size)))
180296 goto out;
180297 @@ -1897,9 +1902,17 @@ EXPORT_SYMBOL_GPL(kvm_read_guest_cached);
180298
180299 int kvm_clear_guest_page(struct kvm *kvm, gfn_t gfn, int offset, int len)
180300 {
180301 - const void *zero_page = (const void *) __va(page_to_phys(ZERO_PAGE(0)));
180302 + int r;
180303 + unsigned long addr;
180304
180305 - return kvm_write_guest_page(kvm, gfn, zero_page, offset, len);
180306 + addr = gfn_to_hva(kvm, gfn);
180307 + if (kvm_is_error_hva(addr))
180308 + return -EFAULT;
180309 + r = __clear_user((void __user *)addr + offset, len);
180310 + if (r)
180311 + return -EFAULT;
180312 + mark_page_dirty(kvm, gfn);
180313 + return 0;
180314 }
180315 EXPORT_SYMBOL_GPL(kvm_clear_guest_page);
180316
180317 @@ -2233,7 +2246,7 @@ static int kvm_vcpu_release(struct inode *inode, struct file *filp)
180318 return 0;
180319 }
180320
180321 -static struct file_operations kvm_vcpu_fops = {
180322 +static file_operations_no_const kvm_vcpu_fops __read_only = {
180323 .release = kvm_vcpu_release,
180324 .unlocked_ioctl = kvm_vcpu_ioctl,
180325 #ifdef CONFIG_KVM_COMPAT
180326 @@ -2949,7 +2962,7 @@ out:
180327 }
180328 #endif
180329
180330 -static struct file_operations kvm_vm_fops = {
180331 +static file_operations_no_const kvm_vm_fops __read_only = {
180332 .release = kvm_vm_release,
180333 .unlocked_ioctl = kvm_vm_ioctl,
180334 #ifdef CONFIG_KVM_COMPAT
180335 @@ -3020,7 +3033,7 @@ out:
180336 return r;
180337 }
180338
180339 -static struct file_operations kvm_chardev_ops = {
180340 +static file_operations_no_const kvm_chardev_ops __read_only = {
180341 .unlocked_ioctl = kvm_dev_ioctl,
180342 .compat_ioctl = kvm_dev_ioctl,
180343 .llseek = noop_llseek,
180344 @@ -3046,7 +3059,7 @@ static void hardware_enable_nolock(void *junk)
180345
180346 if (r) {
180347 cpumask_clear_cpu(cpu, cpus_hardware_enabled);
180348 - atomic_inc(&hardware_enable_failed);
180349 + atomic_inc_unchecked(&hardware_enable_failed);
180350 pr_info("kvm: enabling virtualization on CPU%d failed\n", cpu);
180351 }
180352 }
180353 @@ -3101,10 +3114,10 @@ static int hardware_enable_all(void)
180354
180355 kvm_usage_count++;
180356 if (kvm_usage_count == 1) {
180357 - atomic_set(&hardware_enable_failed, 0);
180358 + atomic_set_unchecked(&hardware_enable_failed, 0);
180359 on_each_cpu(hardware_enable_nolock, NULL, 1);
180360
180361 - if (atomic_read(&hardware_enable_failed)) {
180362 + if (atomic_read_unchecked(&hardware_enable_failed)) {
180363 hardware_disable_all_nolock();
180364 r = -EBUSY;
180365 }
180366 @@ -3568,7 +3581,7 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
180367 if (!vcpu_align)
180368 vcpu_align = __alignof__(struct kvm_vcpu);
180369 kvm_vcpu_cache = kmem_cache_create("kvm_vcpu", vcpu_size, vcpu_align,
180370 - 0, NULL);
180371 + SLAB_USERCOPY, NULL);
180372 if (!kvm_vcpu_cache) {
180373 r = -ENOMEM;
180374 goto out_free_3;
180375 @@ -3578,9 +3591,11 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
180376 if (r)
180377 goto out_free;
180378
180379 + pax_open_kernel();
180380 kvm_chardev_ops.owner = module;
180381 kvm_vm_fops.owner = module;
180382 kvm_vcpu_fops.owner = module;
180383 + pax_close_kernel();
180384
180385 r = misc_register(&kvm_dev);
180386 if (r) {
180387 @@ -3590,9 +3605,6 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
180388
180389 register_syscore_ops(&kvm_syscore_ops);
180390
180391 - kvm_preempt_ops.sched_in = kvm_sched_in;
180392 - kvm_preempt_ops.sched_out = kvm_sched_out;
180393 -
180394 r = kvm_init_debug();
180395 if (r) {
180396 pr_err("kvm: create debugfs files failed\n");